@windrun-huaiin/base-ui 5.1.2 → 5.3.0

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
@@ -1099,6 +1209,7 @@ __export(limited_lucide_icons_exports, {
1099
1209
  Building2: () => Building2,
1100
1210
  Car: () => Car,
1101
1211
  Check: () => Check,
1212
+ CheckCheck: () => CheckCheck,
1102
1213
  ChevronDown: () => ChevronDown,
1103
1214
  ChevronLeft: () => ChevronLeft,
1104
1215
  ChevronRight: () => ChevronRight,
@@ -1107,6 +1218,7 @@ __export(limited_lucide_icons_exports, {
1107
1218
  CircleAlert: () => CircleAlert,
1108
1219
  CircleSmall: () => CircleSmall,
1109
1220
  ComponentIcon: () => ComponentIcon,
1221
+ Copy: () => Copy,
1110
1222
  Cpu: () => Cpu,
1111
1223
  DatabaseZap: () => DatabaseZap,
1112
1224
  Dot: () => Dot,
@@ -1114,12 +1226,19 @@ __export(limited_lucide_icons_exports, {
1114
1226
  ExternalLink: () => ExternalLink,
1115
1227
  Eye: () => Eye,
1116
1228
  Facebook: () => Facebook,
1229
+ File: () => File,
1230
+ FileDown: () => FileDown,
1231
+ FileInput: () => FileInput,
1117
1232
  FileLock2: () => FileLock2,
1233
+ FileUp: () => FileUp,
1118
1234
  Fingerprint: () => Fingerprint,
1235
+ Folder: () => Folder,
1236
+ FolderOpen: () => FolderOpen,
1119
1237
  Gift: () => Gift,
1120
1238
  GitPullRequestArrow: () => GitPullRequestArrow,
1121
1239
  Globe: () => Globe,
1122
1240
  GlobeLock: () => GlobeLock,
1241
+ Grip: () => Grip,
1123
1242
  GripVertical: () => GripVertical,
1124
1243
  HandHeart: () => HandHeart,
1125
1244
  Handshake: () => Handshake,
@@ -1128,6 +1247,7 @@ __export(limited_lucide_icons_exports, {
1128
1247
  ImageDown: () => ImageDown,
1129
1248
  ImageOff: () => ImageOff,
1130
1249
  ImageUp: () => ImageUp,
1250
+ Infinity: () => Infinity,
1131
1251
  Info: () => Info,
1132
1252
  Keyboard: () => Keyboard,
1133
1253
  LandPlot: () => LandPlot,
@@ -1135,33 +1255,44 @@ __export(limited_lucide_icons_exports, {
1135
1255
  LayoutTemplate: () => LayoutTemplate,
1136
1256
  LibraryIcon: () => LibraryIcon,
1137
1257
  Link: () => Link,
1258
+ ListTodo: () => ListTodo,
1138
1259
  Loader2: () => Loader2,
1139
1260
  LogIn: () => LogIn,
1140
1261
  LogOut: () => LogOut,
1262
+ Mail: () => Mail,
1141
1263
  MoreHorizontal: () => MoreHorizontal,
1142
1264
  MousePointerClick: () => MousePointerClick,
1143
1265
  Palette: () => Palette,
1144
1266
  PanelLeft: () => PanelLeft,
1145
1267
  PanelsTopLeft: () => PanelsTopLeft,
1268
+ PawPrint: () => PawPrint,
1146
1269
  Pencil: () => Pencil,
1147
1270
  Pi: () => Pi,
1271
+ QrCode: () => QrCode,
1148
1272
  ReceiptText: () => ReceiptText,
1273
+ RefreshCcw: () => RefreshCcw,
1149
1274
  Regex: () => Regex,
1150
1275
  Replace: () => Replace,
1276
+ Rocket: () => Rocket,
1151
1277
  Rss: () => Rss,
1152
1278
  Scale: () => Scale,
1153
1279
  Search: () => Search,
1280
+ SendHorizontal: () => SendHorizontal,
1154
1281
  Server: () => Server,
1155
1282
  Share: () => Share,
1283
+ Shield: () => Shield,
1156
1284
  ShieldUser: () => ShieldUser,
1285
+ Sigma: () => Sigma,
1157
1286
  Sparkles: () => Sparkles,
1158
1287
  SplinePointer: () => SplinePointer,
1288
+ Sprout: () => Sprout,
1159
1289
  SquareDashedBottomCode: () => SquareDashedBottomCode,
1160
1290
  SquareTerminal: () => SquareTerminal,
1161
1291
  Star: () => Star,
1162
1292
  Tablets: () => Tablets,
1163
1293
  Terminal: () => Terminal,
1164
1294
  Twitter: () => Twitter,
1295
+ Workflow: () => Workflow,
1165
1296
  X: () => X,
1166
1297
  Zap: () => Zap
1167
1298
  });
@@ -1182,11 +1313,13 @@ import {
1182
1313
  CircleAlert,
1183
1314
  CircleSmall,
1184
1315
  Check,
1316
+ CheckCheck,
1185
1317
  ChevronDown,
1186
1318
  ChevronLeft,
1187
1319
  ChevronRight,
1188
1320
  ChevronUp,
1189
1321
  Cpu,
1322
+ Copy,
1190
1323
  ComponentIcon,
1191
1324
  DatabaseZap,
1192
1325
  Dot,
@@ -1194,17 +1327,26 @@ import {
1194
1327
  Eye,
1195
1328
  ExternalLink,
1196
1329
  Facebook,
1330
+ Shield,
1331
+ File,
1332
+ FileDown,
1333
+ FileInput,
1197
1334
  FileLock2,
1335
+ FileUp,
1198
1336
  Fingerprint,
1337
+ Folder,
1338
+ FolderOpen,
1199
1339
  Gift,
1200
1340
  GitPullRequestArrow,
1201
1341
  Globe,
1202
1342
  GlobeLock,
1343
+ Grip,
1203
1344
  GripVertical,
1204
1345
  HandHeart,
1205
1346
  Handshake,
1206
1347
  Highlighter,
1207
1348
  HousePlus,
1349
+ Infinity,
1208
1350
  Info,
1209
1351
  ImageDown,
1210
1352
  ImageOff,
@@ -1215,24 +1357,33 @@ import {
1215
1357
  LayoutTemplate,
1216
1358
  LibraryIcon,
1217
1359
  Link,
1360
+ ListTodo,
1218
1361
  Loader2,
1219
1362
  LogIn,
1220
1363
  LogOut,
1364
+ Mail,
1221
1365
  MoreHorizontal,
1222
1366
  MousePointerClick,
1367
+ Palette,
1223
1368
  PanelLeft,
1224
1369
  PanelsTopLeft,
1370
+ PawPrint,
1225
1371
  Pencil,
1226
1372
  Pi,
1227
- Palette,
1373
+ QrCode,
1228
1374
  ReceiptText,
1375
+ RefreshCcw,
1229
1376
  Regex,
1230
1377
  Replace,
1378
+ Rocket,
1231
1379
  Rss,
1232
1380
  Scale,
1233
1381
  Search,
1382
+ SendHorizontal,
1234
1383
  Share,
1384
+ Sigma,
1235
1385
  ShieldUser,
1386
+ Sprout,
1236
1387
  SquareDashedBottomCode,
1237
1388
  SquareTerminal,
1238
1389
  Server,
@@ -1242,13 +1393,14 @@ import {
1242
1393
  Tablets,
1243
1394
  Terminal,
1244
1395
  Twitter,
1396
+ Workflow,
1245
1397
  X,
1246
1398
  Zap
1247
1399
  } from "lucide-react";
1248
1400
 
1249
1401
  // src/components/global-icon.tsx
1250
- import React29 from "react";
1251
- import { jsx as jsx29 } from "react/jsx-runtime";
1402
+ import React32 from "react";
1403
+ import { jsx as jsx32 } from "react/jsx-runtime";
1252
1404
  var tempStyledLimitedIcons = {};
1253
1405
  for (const iconNameKey in limited_lucide_icons_exports) {
1254
1406
  if (Object.prototype.hasOwnProperty.call(limited_lucide_icons_exports, iconNameKey)) {
@@ -1268,7 +1420,7 @@ for (const iconNameKey in limited_lucide_icons_exports) {
1268
1420
  height: props.size || themeSvgIconSize
1269
1421
  }, props.style)
1270
1422
  });
1271
- return /* @__PURE__ */ jsx29(ComponentToRender, __spreadValues({}, finalProps));
1423
+ return /* @__PURE__ */ jsx32(ComponentToRender, __spreadValues({}, finalProps));
1272
1424
  };
1273
1425
  StyledIcon.displayName = `Styled(${iconName})`;
1274
1426
  tempStyledLimitedIcons[iconName] = StyledIcon;
@@ -1292,18 +1444,18 @@ for (const [iconName, IconComponent] of Object.entries(BUILTIN_ICON_COMPONENTS))
1292
1444
  height: props.size || themeSvgIconSize
1293
1445
  }, props.style)
1294
1446
  });
1295
- return /* @__PURE__ */ jsx29(IconComponent, __spreadValues({}, finalProps));
1447
+ return /* @__PURE__ */ jsx32(IconComponent, __spreadValues({}, finalProps));
1296
1448
  };
1297
1449
  WrappedIcon.displayName = `Wrapped(${iconName})`;
1298
1450
  tempWrappedBuiltinIcons[iconName] = WrappedIcon;
1299
1451
  }
1300
1452
  var wrappedBuiltinIconsPart = tempWrappedBuiltinIcons;
1301
1453
  var globalLucideIcons = __spreadValues(__spreadValues({}, styledLimitedIconsPart), wrappedBuiltinIconsPart);
1302
- 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}` });
1454
+ 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}` });
1303
1455
 
1304
1456
  // src/components/404-page.tsx
1305
1457
  import { useEffect, useState } from "react";
1306
- import { jsx as jsx30, jsxs as jsxs7 } from "react/jsx-runtime";
1458
+ import { jsx as jsx33, jsxs as jsxs10 } from "react/jsx-runtime";
1307
1459
  function NotFoundPage({ siteIcon }) {
1308
1460
  const [glitchText, setGlitchText] = useState("404");
1309
1461
  useEffect(() => {
@@ -1321,10 +1473,10 @@ function NotFoundPage({ siteIcon }) {
1321
1473
  }, 600);
1322
1474
  return () => clearInterval(interval);
1323
1475
  }, []);
1324
- return /* @__PURE__ */ jsxs7("div", { className: "flex flex-col items-center justify-center min-h-[75vh] w-full px-4 py-8", children: [
1325
- /* @__PURE__ */ jsxs7("div", { className: "text-center space-y-8 max-w-2xl", children: [
1326
- /* @__PURE__ */ jsxs7("div", { className: "relative flex justify-center", children: [
1327
- /* @__PURE__ */ jsx30(
1476
+ return /* @__PURE__ */ jsxs10("div", { className: "flex flex-col items-center justify-center min-h-[75vh] w-full px-4 py-8", children: [
1477
+ /* @__PURE__ */ jsxs10("div", { className: "text-center space-y-8 max-w-2xl", children: [
1478
+ /* @__PURE__ */ jsxs10("div", { className: "relative flex justify-center", children: [
1479
+ /* @__PURE__ */ jsx33(
1328
1480
  "h1",
1329
1481
  {
1330
1482
  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",
@@ -1336,26 +1488,26 @@ function NotFoundPage({ siteIcon }) {
1336
1488
  children: glitchText
1337
1489
  }
1338
1490
  ),
1339
- /* @__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" }) })
1491
+ /* @__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" }) })
1340
1492
  ] }),
1341
- /* @__PURE__ */ jsxs7("div", { className: "space-y-4", children: [
1342
- /* @__PURE__ */ jsx30("h2", { className: "text-2xl md:text-3xl font-semibold text-foreground", children: "Page Not Found" }),
1343
- /* @__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" })
1493
+ /* @__PURE__ */ jsxs10("div", { className: "space-y-4", children: [
1494
+ /* @__PURE__ */ jsx33("h2", { className: "text-2xl md:text-3xl font-semibold text-foreground", children: "Page Not Found" }),
1495
+ /* @__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" })
1344
1496
  ] }),
1345
- /* @__PURE__ */ jsxs7("div", { className: "flex justify-center items-center gap-8 pt-8 opacity-60", children: [
1346
- /* @__PURE__ */ jsxs7("div", { className: "flex items-center gap-2 text-sm text-muted-foreground", children: [
1497
+ /* @__PURE__ */ jsxs10("div", { className: "flex justify-center items-center gap-8 pt-8 opacity-60", children: [
1498
+ /* @__PURE__ */ jsxs10("div", { className: "flex items-center gap-2 text-sm text-muted-foreground", children: [
1347
1499
  siteIcon,
1348
- /* @__PURE__ */ jsx30("span", { children: "Woops!" })
1500
+ /* @__PURE__ */ jsx33("span", { children: "Woops!" })
1349
1501
  ] }),
1350
- /* @__PURE__ */ jsx30("div", { className: "w-1 h-1 bg-purple-500 rounded-full animate-ping" }),
1351
- /* @__PURE__ */ jsxs7("div", { className: "flex items-center gap-2 text-sm text-muted-foreground", children: [
1352
- /* @__PURE__ */ jsx30(NotFoundIcon, {}),
1353
- /* @__PURE__ */ jsx30("span", { children: "Error Code: 404" })
1502
+ /* @__PURE__ */ jsx33("div", { className: "w-1 h-1 bg-purple-500 rounded-full animate-ping" }),
1503
+ /* @__PURE__ */ jsxs10("div", { className: "flex items-center gap-2 text-sm text-muted-foreground", children: [
1504
+ /* @__PURE__ */ jsx33(NotFoundIcon, {}),
1505
+ /* @__PURE__ */ jsx33("span", { children: "Error Code: 404" })
1354
1506
  ] })
1355
1507
  ] })
1356
1508
  ] }),
1357
- /* @__PURE__ */ jsxs7("div", { className: "fixed inset-0 pointer-events-none overflow-hidden -z-10", children: [
1358
- /* @__PURE__ */ jsx30(
1509
+ /* @__PURE__ */ jsxs10("div", { className: "fixed inset-0 pointer-events-none overflow-hidden -z-10", children: [
1510
+ /* @__PURE__ */ jsx33(
1359
1511
  "div",
1360
1512
  {
1361
1513
  className: "absolute inset-0 opacity-[0.02] dark:opacity-[0.05]",
@@ -1368,7 +1520,7 @@ function NotFoundPage({ siteIcon }) {
1368
1520
  }
1369
1521
  }
1370
1522
  ),
1371
- Array.from({ length: 6 }).map((_, i) => /* @__PURE__ */ jsx30(
1523
+ Array.from({ length: 6 }).map((_, i) => /* @__PURE__ */ jsx33(
1372
1524
  "div",
1373
1525
  {
1374
1526
  className: "absolute w-2 h-2 bg-purple-500/20 rounded-full animate-bounce",
@@ -1385,23 +1537,19 @@ function NotFoundPage({ siteIcon }) {
1385
1537
  ] });
1386
1538
  }
1387
1539
 
1388
- // src/components/go-to-top.tsx
1389
- import { useState as useState2, useEffect as useEffect2 } from "react";
1390
- import { Fragment, jsx as jsx31 } from "react/jsx-runtime";
1391
-
1392
1540
  // src/components/language-detector.tsx
1393
1541
  import { useLocale, useTranslations } from "next-intl";
1394
1542
  import { useRouter } from "next/navigation";
1395
- import { useEffect as useEffect3, useState as useState3 } from "react";
1396
- import { jsx as jsx32, jsxs as jsxs8 } from "react/jsx-runtime";
1543
+ import { useEffect as useEffect2, useState as useState2 } from "react";
1544
+ import { jsx as jsx34, jsxs as jsxs11 } from "react/jsx-runtime";
1397
1545
  function LanguageDetector({ i18nConfig }) {
1398
- const [show, setShow] = useState3(false);
1399
- const [detectedLocale, setDetectedLocale] = useState3(null);
1546
+ const [show, setShow] = useState2(false);
1547
+ const [detectedLocale, setDetectedLocale] = useState2(null);
1400
1548
  const currentLocale = useLocale();
1401
1549
  const router = useRouter();
1402
1550
  const t = useTranslations("languageDetection");
1403
1551
  const LANGUAGE_PREFERENCE_KEY = `${i18nConfig.detector.storagePrefix}-${i18nConfig.detector.storageKey}`;
1404
- useEffect3(() => {
1552
+ useEffect2(() => {
1405
1553
  const browserLang = navigator.language.split("-")[0];
1406
1554
  const savedPreference = localStorage.getItem(LANGUAGE_PREFERENCE_KEY);
1407
1555
  const preference = savedPreference ? JSON.parse(savedPreference) : null;
@@ -1449,31 +1597,31 @@ function LanguageDetector({ i18nConfig }) {
1449
1597
  setShow(false);
1450
1598
  };
1451
1599
  if (!detectedLocale || !show) return null;
1452
- 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"}
1600
+ 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"}
1453
1601
  bg-linear-to-r from-purple-100/95 via-white/95 to-purple-100/95 backdrop-blur-xs
1454
- animate-gradient-x`, children: /* @__PURE__ */ jsxs8("div", { className: "relative px-6 py-4 overflow-hidden", children: [
1455
- /* @__PURE__ */ jsxs8("div", { className: "relative z-10 flex flex-col gap-3", children: [
1456
- /* @__PURE__ */ jsxs8("div", { className: "flex items-start justify-between gap-4", children: [
1457
- /* @__PURE__ */ jsxs8("div", { className: "flex flex-col gap-1.5", children: [
1458
- /* @__PURE__ */ jsx32("h3", { className: "text-lg font-semibold text-gray-900", children: t("title") }),
1459
- /* @__PURE__ */ jsxs8("p", { className: "text-base text-gray-600", children: [
1602
+ animate-gradient-x`, children: /* @__PURE__ */ jsxs11("div", { className: "relative px-6 py-4 overflow-hidden", children: [
1603
+ /* @__PURE__ */ jsxs11("div", { className: "relative z-10 flex flex-col gap-3", children: [
1604
+ /* @__PURE__ */ jsxs11("div", { className: "flex items-start justify-between gap-4", children: [
1605
+ /* @__PURE__ */ jsxs11("div", { className: "flex flex-col gap-1.5", children: [
1606
+ /* @__PURE__ */ jsx34("h3", { className: "text-lg font-semibold text-gray-900", children: t("title") }),
1607
+ /* @__PURE__ */ jsxs11("p", { className: "text-base text-gray-600", children: [
1460
1608
  t("description"),
1461
1609
  " ",
1462
- /* @__PURE__ */ jsx32("span", { className: "text-purple-500 font-semibold", children: detectedLocale === "zh" ? "\u4E2D\u6587" : "English" }),
1610
+ /* @__PURE__ */ jsx34("span", { className: "text-purple-500 font-semibold", children: detectedLocale === "zh" ? "\u4E2D\u6587" : "English" }),
1463
1611
  "?"
1464
1612
  ] })
1465
1613
  ] }),
1466
- /* @__PURE__ */ jsx32(
1614
+ /* @__PURE__ */ jsx34(
1467
1615
  "button",
1468
1616
  {
1469
1617
  onClick: handleClose,
1470
1618
  className: "text-gray-500 hover:text-gray-700",
1471
- children: /* @__PURE__ */ jsx32(globalLucideIcons.X, { className: "h-5 w-5" })
1619
+ children: /* @__PURE__ */ jsx34(globalLucideIcons.X, { className: "h-5 w-5" })
1472
1620
  }
1473
1621
  )
1474
1622
  ] }),
1475
- /* @__PURE__ */ jsxs8("div", { className: "flex items-center gap-3", children: [
1476
- /* @__PURE__ */ jsx32(
1623
+ /* @__PURE__ */ jsxs11("div", { className: "flex items-center gap-3", children: [
1624
+ /* @__PURE__ */ jsx34(
1477
1625
  "button",
1478
1626
  {
1479
1627
  onClick: handleClose,
@@ -1481,7 +1629,7 @@ function LanguageDetector({ i18nConfig }) {
1481
1629
  children: t("close")
1482
1630
  }
1483
1631
  ),
1484
- /* @__PURE__ */ jsx32(
1632
+ /* @__PURE__ */ jsx34(
1485
1633
  "button",
1486
1634
  {
1487
1635
  onClick: handleLanguageChange,
@@ -1491,7 +1639,7 @@ function LanguageDetector({ i18nConfig }) {
1491
1639
  )
1492
1640
  ] })
1493
1641
  ] }),
1494
- /* @__PURE__ */ jsx32("div", { className: "absolute inset-0 bg-linear-to-r from-transparent via-purple-200/30 to-transparent animate-shimmer" })
1642
+ /* @__PURE__ */ jsx34("div", { className: "absolute inset-0 bg-linear-to-r from-transparent via-purple-200/30 to-transparent animate-shimmer" })
1495
1643
  ] }) }) });
1496
1644
  }
1497
1645
 
@@ -1500,7 +1648,7 @@ import { usePathname, useRouter as useRouter2 } from "next/navigation";
1500
1648
  import { useLocale as useLocale2 } from "next-intl";
1501
1649
 
1502
1650
  // src/ui/dropdown-menu.tsx
1503
- import * as React30 from "react";
1651
+ import * as React33 from "react";
1504
1652
  import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
1505
1653
 
1506
1654
  // ../lib/src/utils.ts
@@ -1511,12 +1659,12 @@ function cn(...inputs) {
1511
1659
  }
1512
1660
 
1513
1661
  // src/ui/dropdown-menu.tsx
1514
- import { jsx as jsx33, jsxs as jsxs9 } from "react/jsx-runtime";
1662
+ import { jsx as jsx35, jsxs as jsxs12 } from "react/jsx-runtime";
1515
1663
  var DropdownMenu = DropdownMenuPrimitive.Root;
1516
1664
  var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
1517
- var DropdownMenuSubTrigger = React30.forwardRef((_a, ref) => {
1665
+ var DropdownMenuSubTrigger = React33.forwardRef((_a, ref) => {
1518
1666
  var _b = _a, { className, inset, children } = _b, props = __objRest(_b, ["className", "inset", "children"]);
1519
- return /* @__PURE__ */ jsxs9(
1667
+ return /* @__PURE__ */ jsxs12(
1520
1668
  DropdownMenuPrimitive.SubTrigger,
1521
1669
  __spreadProps(__spreadValues({
1522
1670
  ref,
@@ -1528,15 +1676,15 @@ var DropdownMenuSubTrigger = React30.forwardRef((_a, ref) => {
1528
1676
  }, props), {
1529
1677
  children: [
1530
1678
  children,
1531
- /* @__PURE__ */ jsx33(globalLucideIcons.ChevronRight, { className: "ml-auto" })
1679
+ /* @__PURE__ */ jsx35(globalLucideIcons.ChevronRight, { className: "ml-auto" })
1532
1680
  ]
1533
1681
  })
1534
1682
  );
1535
1683
  });
1536
1684
  DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
1537
- var DropdownMenuSubContent = React30.forwardRef((_a, ref) => {
1685
+ var DropdownMenuSubContent = React33.forwardRef((_a, ref) => {
1538
1686
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1539
- return /* @__PURE__ */ jsx33(
1687
+ return /* @__PURE__ */ jsx35(
1540
1688
  DropdownMenuPrimitive.SubContent,
1541
1689
  __spreadValues({
1542
1690
  ref,
@@ -1548,9 +1696,9 @@ var DropdownMenuSubContent = React30.forwardRef((_a, ref) => {
1548
1696
  );
1549
1697
  });
1550
1698
  DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
1551
- var DropdownMenuContent = React30.forwardRef((_a, ref) => {
1699
+ var DropdownMenuContent = React33.forwardRef((_a, ref) => {
1552
1700
  var _b = _a, { className, sideOffset = 4 } = _b, props = __objRest(_b, ["className", "sideOffset"]);
1553
- return /* @__PURE__ */ jsx33(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx33(
1701
+ return /* @__PURE__ */ jsx35(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx35(
1554
1702
  DropdownMenuPrimitive.Content,
1555
1703
  __spreadValues({
1556
1704
  ref,
@@ -1563,9 +1711,9 @@ var DropdownMenuContent = React30.forwardRef((_a, ref) => {
1563
1711
  ) });
1564
1712
  });
1565
1713
  DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
1566
- var DropdownMenuItem = React30.forwardRef((_a, ref) => {
1714
+ var DropdownMenuItem = React33.forwardRef((_a, ref) => {
1567
1715
  var _b = _a, { className, inset } = _b, props = __objRest(_b, ["className", "inset"]);
1568
- return /* @__PURE__ */ jsx33(
1716
+ return /* @__PURE__ */ jsx35(
1569
1717
  DropdownMenuPrimitive.Item,
1570
1718
  __spreadValues({
1571
1719
  ref,
@@ -1578,9 +1726,9 @@ var DropdownMenuItem = React30.forwardRef((_a, ref) => {
1578
1726
  );
1579
1727
  });
1580
1728
  DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
1581
- var DropdownMenuCheckboxItem = React30.forwardRef((_a, ref) => {
1729
+ var DropdownMenuCheckboxItem = React33.forwardRef((_a, ref) => {
1582
1730
  var _b = _a, { className, children, checked } = _b, props = __objRest(_b, ["className", "children", "checked"]);
1583
- return /* @__PURE__ */ jsxs9(
1731
+ return /* @__PURE__ */ jsxs12(
1584
1732
  DropdownMenuPrimitive.CheckboxItem,
1585
1733
  __spreadProps(__spreadValues({
1586
1734
  ref,
@@ -1591,16 +1739,16 @@ var DropdownMenuCheckboxItem = React30.forwardRef((_a, ref) => {
1591
1739
  checked
1592
1740
  }, props), {
1593
1741
  children: [
1594
- /* @__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" }) }) }),
1742
+ /* @__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" }) }) }),
1595
1743
  children
1596
1744
  ]
1597
1745
  })
1598
1746
  );
1599
1747
  });
1600
1748
  DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
1601
- var DropdownMenuRadioItem = React30.forwardRef((_a, ref) => {
1749
+ var DropdownMenuRadioItem = React33.forwardRef((_a, ref) => {
1602
1750
  var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
1603
- return /* @__PURE__ */ jsxs9(
1751
+ return /* @__PURE__ */ jsxs12(
1604
1752
  DropdownMenuPrimitive.RadioItem,
1605
1753
  __spreadProps(__spreadValues({
1606
1754
  ref,
@@ -1610,16 +1758,16 @@ var DropdownMenuRadioItem = React30.forwardRef((_a, ref) => {
1610
1758
  )
1611
1759
  }, props), {
1612
1760
  children: [
1613
- /* @__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" }) }) }),
1761
+ /* @__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" }) }) }),
1614
1762
  children
1615
1763
  ]
1616
1764
  })
1617
1765
  );
1618
1766
  });
1619
1767
  DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
1620
- var DropdownMenuLabel = React30.forwardRef((_a, ref) => {
1768
+ var DropdownMenuLabel = React33.forwardRef((_a, ref) => {
1621
1769
  var _b = _a, { className, inset } = _b, props = __objRest(_b, ["className", "inset"]);
1622
- return /* @__PURE__ */ jsx33(
1770
+ return /* @__PURE__ */ jsx35(
1623
1771
  DropdownMenuPrimitive.Label,
1624
1772
  __spreadValues({
1625
1773
  ref,
@@ -1632,9 +1780,9 @@ var DropdownMenuLabel = React30.forwardRef((_a, ref) => {
1632
1780
  );
1633
1781
  });
1634
1782
  DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
1635
- var DropdownMenuSeparator = React30.forwardRef((_a, ref) => {
1783
+ var DropdownMenuSeparator = React33.forwardRef((_a, ref) => {
1636
1784
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1637
- return /* @__PURE__ */ jsx33(
1785
+ return /* @__PURE__ */ jsx35(
1638
1786
  DropdownMenuPrimitive.Separator,
1639
1787
  __spreadValues({
1640
1788
  ref,
@@ -1649,7 +1797,7 @@ var DropdownMenuShortcut = (_a) => {
1649
1797
  } = _b, props = __objRest(_b, [
1650
1798
  "className"
1651
1799
  ]);
1652
- return /* @__PURE__ */ jsx33(
1800
+ return /* @__PURE__ */ jsx35(
1653
1801
  "span",
1654
1802
  __spreadValues({
1655
1803
  className: cn("ml-auto text-xs tracking-widest opacity-60", className)
@@ -1659,12 +1807,12 @@ var DropdownMenuShortcut = (_a) => {
1659
1807
  DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
1660
1808
 
1661
1809
  // src/ui/language-button.tsx
1662
- import * as React31 from "react";
1663
- import { jsx as jsx34 } from "react/jsx-runtime";
1664
- var LanguageButton = React31.forwardRef(
1810
+ import * as React34 from "react";
1811
+ import { jsx as jsx36 } from "react/jsx-runtime";
1812
+ var LanguageButton = React34.forwardRef(
1665
1813
  (_a, ref) => {
1666
1814
  var _b = _a, { className, variant = "default", size = "default" } = _b, props = __objRest(_b, ["className", "variant", "size"]);
1667
- return /* @__PURE__ */ jsx34(
1815
+ return /* @__PURE__ */ jsx36(
1668
1816
  "button",
1669
1817
  __spreadValues({
1670
1818
  className: cn(
@@ -1687,7 +1835,7 @@ var LanguageButton = React31.forwardRef(
1687
1835
  LanguageButton.displayName = "Button";
1688
1836
 
1689
1837
  // src/components/language-switcher.tsx
1690
- import { jsx as jsx35, jsxs as jsxs10 } from "react/jsx-runtime";
1838
+ import { jsx as jsx37, jsxs as jsxs13 } from "react/jsx-runtime";
1691
1839
  function LanguageSwitcher({ locales, localeLabels }) {
1692
1840
  const locale = useLocale2();
1693
1841
  const router = useRouter2();
@@ -1696,23 +1844,23 @@ function LanguageSwitcher({ locales, localeLabels }) {
1696
1844
  const newPathname = pathname.replace(`/${locale}`, `/${newLocale}`);
1697
1845
  router.push(newPathname);
1698
1846
  };
1699
- return /* @__PURE__ */ jsxs10(DropdownMenu, { children: [
1700
- /* @__PURE__ */ jsx35(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx35(
1847
+ return /* @__PURE__ */ jsxs13(DropdownMenu, { children: [
1848
+ /* @__PURE__ */ jsx37(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx37(
1701
1849
  LanguageButton,
1702
1850
  {
1703
1851
  variant: "ghost",
1704
1852
  size: "icon",
1705
1853
  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",
1706
- children: /* @__PURE__ */ jsx35(globalLucideIcons.Globe, { className: "h-5 w-5" })
1854
+ children: /* @__PURE__ */ jsx37(globalLucideIcons.Globe, { className: "h-5 w-5" })
1707
1855
  }
1708
1856
  ) }),
1709
- /* @__PURE__ */ jsx35(
1857
+ /* @__PURE__ */ jsx37(
1710
1858
  DropdownMenuContent,
1711
1859
  {
1712
1860
  align: "end",
1713
1861
  sideOffset: 5,
1714
1862
  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]",
1715
- children: /* @__PURE__ */ jsx35("div", { className: "grid grid-cols-2 gap-1", children: locales.map((loc) => /* @__PURE__ */ jsx35(
1863
+ children: /* @__PURE__ */ jsx37("div", { className: "grid grid-cols-2 gap-1", children: locales.map((loc) => /* @__PURE__ */ jsx37(
1716
1864
  DropdownMenuItem,
1717
1865
  {
1718
1866
  className: `
@@ -1734,21 +1882,21 @@ function LanguageSwitcher({ locales, localeLabels }) {
1734
1882
 
1735
1883
  // src/components/script/google-analytics-script.tsx
1736
1884
  import Script from "next/script";
1737
- import { Fragment as Fragment2, jsx as jsx36, jsxs as jsxs11 } from "react/jsx-runtime";
1885
+ import { Fragment, jsx as jsx38, jsxs as jsxs14 } from "react/jsx-runtime";
1738
1886
  var googleAnalyticsId = process.env.NEXT_PUBLIC_GOOGLE_ANALYTICS_ID;
1739
1887
  function GoogleAnalyticsScript() {
1740
1888
  if (process.env.NODE_ENV !== "production") {
1741
1889
  return null;
1742
1890
  }
1743
- return /* @__PURE__ */ jsxs11(Fragment2, { children: [
1744
- /* @__PURE__ */ jsx36(
1891
+ return /* @__PURE__ */ jsxs14(Fragment, { children: [
1892
+ /* @__PURE__ */ jsx38(
1745
1893
  Script,
1746
1894
  {
1747
1895
  strategy: "afterInteractive",
1748
1896
  src: `https://www.googletagmanager.com/gtag/js?id=${googleAnalyticsId}`
1749
1897
  }
1750
1898
  ),
1751
- /* @__PURE__ */ jsx36(
1899
+ /* @__PURE__ */ jsx38(
1752
1900
  Script,
1753
1901
  {
1754
1902
  id: "google-analytics",
@@ -1779,13 +1927,13 @@ function useGoogleAnalytics() {
1779
1927
 
1780
1928
  // src/components/script/microsoft-clarity-script.tsx
1781
1929
  import Script2 from "next/script";
1782
- import { jsx as jsx37 } from "react/jsx-runtime";
1930
+ import { jsx as jsx39 } from "react/jsx-runtime";
1783
1931
  var microsoftClarityId = process.env.NEXT_PUBLIC_MICROSOFT_CLARITY_ID;
1784
1932
  function MicrosoftClarityScript() {
1785
1933
  if (process.env.NODE_ENV !== "production") {
1786
1934
  return null;
1787
1935
  }
1788
- return /* @__PURE__ */ jsx37(Script2, { id: "microsoft-clarity", strategy: "afterInteractive", children: `
1936
+ return /* @__PURE__ */ jsx39(Script2, { id: "microsoft-clarity", strategy: "afterInteractive", children: `
1789
1937
  (function(c,l,a,r,i,t,y){
1790
1938
  c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
1791
1939
  t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;