@windrun-huaiin/base-ui 5.2.0 → 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
@@ -1128,6 +1238,7 @@ __export(limited_lucide_icons_exports, {
1128
1238
  GitPullRequestArrow: () => GitPullRequestArrow,
1129
1239
  Globe: () => Globe,
1130
1240
  GlobeLock: () => GlobeLock,
1241
+ Grip: () => Grip,
1131
1242
  GripVertical: () => GripVertical,
1132
1243
  HandHeart: () => HandHeart,
1133
1244
  Handshake: () => Handshake,
@@ -1136,6 +1247,7 @@ __export(limited_lucide_icons_exports, {
1136
1247
  ImageDown: () => ImageDown,
1137
1248
  ImageOff: () => ImageOff,
1138
1249
  ImageUp: () => ImageUp,
1250
+ Infinity: () => Infinity,
1139
1251
  Info: () => Info,
1140
1252
  Keyboard: () => Keyboard,
1141
1253
  LandPlot: () => LandPlot,
@@ -1153,28 +1265,34 @@ __export(limited_lucide_icons_exports, {
1153
1265
  Palette: () => Palette,
1154
1266
  PanelLeft: () => PanelLeft,
1155
1267
  PanelsTopLeft: () => PanelsTopLeft,
1268
+ PawPrint: () => PawPrint,
1156
1269
  Pencil: () => Pencil,
1157
1270
  Pi: () => Pi,
1271
+ QrCode: () => QrCode,
1158
1272
  ReceiptText: () => ReceiptText,
1159
1273
  RefreshCcw: () => RefreshCcw,
1160
1274
  Regex: () => Regex,
1161
1275
  Replace: () => Replace,
1276
+ Rocket: () => Rocket,
1162
1277
  Rss: () => Rss,
1163
1278
  Scale: () => Scale,
1164
1279
  Search: () => Search,
1165
1280
  SendHorizontal: () => SendHorizontal,
1166
1281
  Server: () => Server,
1167
1282
  Share: () => Share,
1283
+ Shield: () => Shield,
1168
1284
  ShieldUser: () => ShieldUser,
1169
1285
  Sigma: () => Sigma,
1170
1286
  Sparkles: () => Sparkles,
1171
1287
  SplinePointer: () => SplinePointer,
1288
+ Sprout: () => Sprout,
1172
1289
  SquareDashedBottomCode: () => SquareDashedBottomCode,
1173
1290
  SquareTerminal: () => SquareTerminal,
1174
1291
  Star: () => Star,
1175
1292
  Tablets: () => Tablets,
1176
1293
  Terminal: () => Terminal,
1177
1294
  Twitter: () => Twitter,
1295
+ Workflow: () => Workflow,
1178
1296
  X: () => X,
1179
1297
  Zap: () => Zap
1180
1298
  });
@@ -1209,6 +1327,7 @@ import {
1209
1327
  Eye,
1210
1328
  ExternalLink,
1211
1329
  Facebook,
1330
+ Shield,
1212
1331
  File,
1213
1332
  FileDown,
1214
1333
  FileInput,
@@ -1221,11 +1340,13 @@ import {
1221
1340
  GitPullRequestArrow,
1222
1341
  Globe,
1223
1342
  GlobeLock,
1343
+ Grip,
1224
1344
  GripVertical,
1225
1345
  HandHeart,
1226
1346
  Handshake,
1227
1347
  Highlighter,
1228
1348
  HousePlus,
1349
+ Infinity,
1229
1350
  Info,
1230
1351
  ImageDown,
1231
1352
  ImageOff,
@@ -1243,15 +1364,18 @@ import {
1243
1364
  Mail,
1244
1365
  MoreHorizontal,
1245
1366
  MousePointerClick,
1367
+ Palette,
1246
1368
  PanelLeft,
1247
1369
  PanelsTopLeft,
1370
+ PawPrint,
1248
1371
  Pencil,
1249
1372
  Pi,
1250
- Palette,
1373
+ QrCode,
1251
1374
  ReceiptText,
1252
1375
  RefreshCcw,
1253
1376
  Regex,
1254
1377
  Replace,
1378
+ Rocket,
1255
1379
  Rss,
1256
1380
  Scale,
1257
1381
  Search,
@@ -1259,6 +1383,7 @@ import {
1259
1383
  Share,
1260
1384
  Sigma,
1261
1385
  ShieldUser,
1386
+ Sprout,
1262
1387
  SquareDashedBottomCode,
1263
1388
  SquareTerminal,
1264
1389
  Server,
@@ -1268,13 +1393,14 @@ import {
1268
1393
  Tablets,
1269
1394
  Terminal,
1270
1395
  Twitter,
1396
+ Workflow,
1271
1397
  X,
1272
1398
  Zap
1273
1399
  } from "lucide-react";
1274
1400
 
1275
1401
  // src/components/global-icon.tsx
1276
- import React29 from "react";
1277
- import { jsx as jsx29 } from "react/jsx-runtime";
1402
+ import React32 from "react";
1403
+ import { jsx as jsx32 } from "react/jsx-runtime";
1278
1404
  var tempStyledLimitedIcons = {};
1279
1405
  for (const iconNameKey in limited_lucide_icons_exports) {
1280
1406
  if (Object.prototype.hasOwnProperty.call(limited_lucide_icons_exports, iconNameKey)) {
@@ -1294,7 +1420,7 @@ for (const iconNameKey in limited_lucide_icons_exports) {
1294
1420
  height: props.size || themeSvgIconSize
1295
1421
  }, props.style)
1296
1422
  });
1297
- return /* @__PURE__ */ jsx29(ComponentToRender, __spreadValues({}, finalProps));
1423
+ return /* @__PURE__ */ jsx32(ComponentToRender, __spreadValues({}, finalProps));
1298
1424
  };
1299
1425
  StyledIcon.displayName = `Styled(${iconName})`;
1300
1426
  tempStyledLimitedIcons[iconName] = StyledIcon;
@@ -1318,18 +1444,18 @@ for (const [iconName, IconComponent] of Object.entries(BUILTIN_ICON_COMPONENTS))
1318
1444
  height: props.size || themeSvgIconSize
1319
1445
  }, props.style)
1320
1446
  });
1321
- return /* @__PURE__ */ jsx29(IconComponent, __spreadValues({}, finalProps));
1447
+ return /* @__PURE__ */ jsx32(IconComponent, __spreadValues({}, finalProps));
1322
1448
  };
1323
1449
  WrappedIcon.displayName = `Wrapped(${iconName})`;
1324
1450
  tempWrappedBuiltinIcons[iconName] = WrappedIcon;
1325
1451
  }
1326
1452
  var wrappedBuiltinIconsPart = tempWrappedBuiltinIcons;
1327
1453
  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}` });
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}` });
1329
1455
 
1330
1456
  // src/components/404-page.tsx
1331
1457
  import { useEffect, useState } from "react";
1332
- import { jsx as jsx30, jsxs as jsxs7 } from "react/jsx-runtime";
1458
+ import { jsx as jsx33, jsxs as jsxs10 } from "react/jsx-runtime";
1333
1459
  function NotFoundPage({ siteIcon }) {
1334
1460
  const [glitchText, setGlitchText] = useState("404");
1335
1461
  useEffect(() => {
@@ -1347,10 +1473,10 @@ function NotFoundPage({ siteIcon }) {
1347
1473
  }, 600);
1348
1474
  return () => clearInterval(interval);
1349
1475
  }, []);
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(
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(
1354
1480
  "h1",
1355
1481
  {
1356
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",
@@ -1362,26 +1488,26 @@ function NotFoundPage({ siteIcon }) {
1362
1488
  children: glitchText
1363
1489
  }
1364
1490
  ),
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" }) })
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" }) })
1366
1492
  ] }),
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" })
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" })
1370
1496
  ] }),
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: [
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: [
1373
1499
  siteIcon,
1374
- /* @__PURE__ */ jsx30("span", { children: "Woops!" })
1500
+ /* @__PURE__ */ jsx33("span", { children: "Woops!" })
1375
1501
  ] }),
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" })
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" })
1380
1506
  ] })
1381
1507
  ] })
1382
1508
  ] }),
1383
- /* @__PURE__ */ jsxs7("div", { className: "fixed inset-0 pointer-events-none overflow-hidden -z-10", children: [
1384
- /* @__PURE__ */ jsx30(
1509
+ /* @__PURE__ */ jsxs10("div", { className: "fixed inset-0 pointer-events-none overflow-hidden -z-10", children: [
1510
+ /* @__PURE__ */ jsx33(
1385
1511
  "div",
1386
1512
  {
1387
1513
  className: "absolute inset-0 opacity-[0.02] dark:opacity-[0.05]",
@@ -1394,7 +1520,7 @@ function NotFoundPage({ siteIcon }) {
1394
1520
  }
1395
1521
  }
1396
1522
  ),
1397
- Array.from({ length: 6 }).map((_, i) => /* @__PURE__ */ jsx30(
1523
+ Array.from({ length: 6 }).map((_, i) => /* @__PURE__ */ jsx33(
1398
1524
  "div",
1399
1525
  {
1400
1526
  className: "absolute w-2 h-2 bg-purple-500/20 rounded-full animate-bounce",
@@ -1411,23 +1537,19 @@ function NotFoundPage({ siteIcon }) {
1411
1537
  ] });
1412
1538
  }
1413
1539
 
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
1540
  // src/components/language-detector.tsx
1419
1541
  import { useLocale, useTranslations } from "next-intl";
1420
1542
  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";
1543
+ import { useEffect as useEffect2, useState as useState2 } from "react";
1544
+ import { jsx as jsx34, jsxs as jsxs11 } from "react/jsx-runtime";
1423
1545
  function LanguageDetector({ i18nConfig }) {
1424
- const [show, setShow] = useState3(false);
1425
- const [detectedLocale, setDetectedLocale] = useState3(null);
1546
+ const [show, setShow] = useState2(false);
1547
+ const [detectedLocale, setDetectedLocale] = useState2(null);
1426
1548
  const currentLocale = useLocale();
1427
1549
  const router = useRouter();
1428
1550
  const t = useTranslations("languageDetection");
1429
1551
  const LANGUAGE_PREFERENCE_KEY = `${i18nConfig.detector.storagePrefix}-${i18nConfig.detector.storageKey}`;
1430
- useEffect3(() => {
1552
+ useEffect2(() => {
1431
1553
  const browserLang = navigator.language.split("-")[0];
1432
1554
  const savedPreference = localStorage.getItem(LANGUAGE_PREFERENCE_KEY);
1433
1555
  const preference = savedPreference ? JSON.parse(savedPreference) : null;
@@ -1475,31 +1597,31 @@ function LanguageDetector({ i18nConfig }) {
1475
1597
  setShow(false);
1476
1598
  };
1477
1599
  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"}
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"}
1479
1601
  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: [
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: [
1486
1608
  t("description"),
1487
1609
  " ",
1488
- /* @__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" }),
1489
1611
  "?"
1490
1612
  ] })
1491
1613
  ] }),
1492
- /* @__PURE__ */ jsx32(
1614
+ /* @__PURE__ */ jsx34(
1493
1615
  "button",
1494
1616
  {
1495
1617
  onClick: handleClose,
1496
1618
  className: "text-gray-500 hover:text-gray-700",
1497
- children: /* @__PURE__ */ jsx32(globalLucideIcons.X, { className: "h-5 w-5" })
1619
+ children: /* @__PURE__ */ jsx34(globalLucideIcons.X, { className: "h-5 w-5" })
1498
1620
  }
1499
1621
  )
1500
1622
  ] }),
1501
- /* @__PURE__ */ jsxs8("div", { className: "flex items-center gap-3", children: [
1502
- /* @__PURE__ */ jsx32(
1623
+ /* @__PURE__ */ jsxs11("div", { className: "flex items-center gap-3", children: [
1624
+ /* @__PURE__ */ jsx34(
1503
1625
  "button",
1504
1626
  {
1505
1627
  onClick: handleClose,
@@ -1507,7 +1629,7 @@ function LanguageDetector({ i18nConfig }) {
1507
1629
  children: t("close")
1508
1630
  }
1509
1631
  ),
1510
- /* @__PURE__ */ jsx32(
1632
+ /* @__PURE__ */ jsx34(
1511
1633
  "button",
1512
1634
  {
1513
1635
  onClick: handleLanguageChange,
@@ -1517,7 +1639,7 @@ function LanguageDetector({ i18nConfig }) {
1517
1639
  )
1518
1640
  ] })
1519
1641
  ] }),
1520
- /* @__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" })
1521
1643
  ] }) }) });
1522
1644
  }
1523
1645
 
@@ -1526,7 +1648,7 @@ import { usePathname, useRouter as useRouter2 } from "next/navigation";
1526
1648
  import { useLocale as useLocale2 } from "next-intl";
1527
1649
 
1528
1650
  // src/ui/dropdown-menu.tsx
1529
- import * as React30 from "react";
1651
+ import * as React33 from "react";
1530
1652
  import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
1531
1653
 
1532
1654
  // ../lib/src/utils.ts
@@ -1537,12 +1659,12 @@ function cn(...inputs) {
1537
1659
  }
1538
1660
 
1539
1661
  // src/ui/dropdown-menu.tsx
1540
- import { jsx as jsx33, jsxs as jsxs9 } from "react/jsx-runtime";
1662
+ import { jsx as jsx35, jsxs as jsxs12 } from "react/jsx-runtime";
1541
1663
  var DropdownMenu = DropdownMenuPrimitive.Root;
1542
1664
  var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
1543
- var DropdownMenuSubTrigger = React30.forwardRef((_a, ref) => {
1665
+ var DropdownMenuSubTrigger = React33.forwardRef((_a, ref) => {
1544
1666
  var _b = _a, { className, inset, children } = _b, props = __objRest(_b, ["className", "inset", "children"]);
1545
- return /* @__PURE__ */ jsxs9(
1667
+ return /* @__PURE__ */ jsxs12(
1546
1668
  DropdownMenuPrimitive.SubTrigger,
1547
1669
  __spreadProps(__spreadValues({
1548
1670
  ref,
@@ -1554,15 +1676,15 @@ var DropdownMenuSubTrigger = React30.forwardRef((_a, ref) => {
1554
1676
  }, props), {
1555
1677
  children: [
1556
1678
  children,
1557
- /* @__PURE__ */ jsx33(globalLucideIcons.ChevronRight, { className: "ml-auto" })
1679
+ /* @__PURE__ */ jsx35(globalLucideIcons.ChevronRight, { className: "ml-auto" })
1558
1680
  ]
1559
1681
  })
1560
1682
  );
1561
1683
  });
1562
1684
  DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
1563
- var DropdownMenuSubContent = React30.forwardRef((_a, ref) => {
1685
+ var DropdownMenuSubContent = React33.forwardRef((_a, ref) => {
1564
1686
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1565
- return /* @__PURE__ */ jsx33(
1687
+ return /* @__PURE__ */ jsx35(
1566
1688
  DropdownMenuPrimitive.SubContent,
1567
1689
  __spreadValues({
1568
1690
  ref,
@@ -1574,9 +1696,9 @@ var DropdownMenuSubContent = React30.forwardRef((_a, ref) => {
1574
1696
  );
1575
1697
  });
1576
1698
  DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
1577
- var DropdownMenuContent = React30.forwardRef((_a, ref) => {
1699
+ var DropdownMenuContent = React33.forwardRef((_a, ref) => {
1578
1700
  var _b = _a, { className, sideOffset = 4 } = _b, props = __objRest(_b, ["className", "sideOffset"]);
1579
- return /* @__PURE__ */ jsx33(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx33(
1701
+ return /* @__PURE__ */ jsx35(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx35(
1580
1702
  DropdownMenuPrimitive.Content,
1581
1703
  __spreadValues({
1582
1704
  ref,
@@ -1589,9 +1711,9 @@ var DropdownMenuContent = React30.forwardRef((_a, ref) => {
1589
1711
  ) });
1590
1712
  });
1591
1713
  DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
1592
- var DropdownMenuItem = React30.forwardRef((_a, ref) => {
1714
+ var DropdownMenuItem = React33.forwardRef((_a, ref) => {
1593
1715
  var _b = _a, { className, inset } = _b, props = __objRest(_b, ["className", "inset"]);
1594
- return /* @__PURE__ */ jsx33(
1716
+ return /* @__PURE__ */ jsx35(
1595
1717
  DropdownMenuPrimitive.Item,
1596
1718
  __spreadValues({
1597
1719
  ref,
@@ -1604,9 +1726,9 @@ var DropdownMenuItem = React30.forwardRef((_a, ref) => {
1604
1726
  );
1605
1727
  });
1606
1728
  DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
1607
- var DropdownMenuCheckboxItem = React30.forwardRef((_a, ref) => {
1729
+ var DropdownMenuCheckboxItem = React33.forwardRef((_a, ref) => {
1608
1730
  var _b = _a, { className, children, checked } = _b, props = __objRest(_b, ["className", "children", "checked"]);
1609
- return /* @__PURE__ */ jsxs9(
1731
+ return /* @__PURE__ */ jsxs12(
1610
1732
  DropdownMenuPrimitive.CheckboxItem,
1611
1733
  __spreadProps(__spreadValues({
1612
1734
  ref,
@@ -1617,16 +1739,16 @@ var DropdownMenuCheckboxItem = React30.forwardRef((_a, ref) => {
1617
1739
  checked
1618
1740
  }, props), {
1619
1741
  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" }) }) }),
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" }) }) }),
1621
1743
  children
1622
1744
  ]
1623
1745
  })
1624
1746
  );
1625
1747
  });
1626
1748
  DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
1627
- var DropdownMenuRadioItem = React30.forwardRef((_a, ref) => {
1749
+ var DropdownMenuRadioItem = React33.forwardRef((_a, ref) => {
1628
1750
  var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
1629
- return /* @__PURE__ */ jsxs9(
1751
+ return /* @__PURE__ */ jsxs12(
1630
1752
  DropdownMenuPrimitive.RadioItem,
1631
1753
  __spreadProps(__spreadValues({
1632
1754
  ref,
@@ -1636,16 +1758,16 @@ var DropdownMenuRadioItem = React30.forwardRef((_a, ref) => {
1636
1758
  )
1637
1759
  }, props), {
1638
1760
  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" }) }) }),
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" }) }) }),
1640
1762
  children
1641
1763
  ]
1642
1764
  })
1643
1765
  );
1644
1766
  });
1645
1767
  DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
1646
- var DropdownMenuLabel = React30.forwardRef((_a, ref) => {
1768
+ var DropdownMenuLabel = React33.forwardRef((_a, ref) => {
1647
1769
  var _b = _a, { className, inset } = _b, props = __objRest(_b, ["className", "inset"]);
1648
- return /* @__PURE__ */ jsx33(
1770
+ return /* @__PURE__ */ jsx35(
1649
1771
  DropdownMenuPrimitive.Label,
1650
1772
  __spreadValues({
1651
1773
  ref,
@@ -1658,9 +1780,9 @@ var DropdownMenuLabel = React30.forwardRef((_a, ref) => {
1658
1780
  );
1659
1781
  });
1660
1782
  DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
1661
- var DropdownMenuSeparator = React30.forwardRef((_a, ref) => {
1783
+ var DropdownMenuSeparator = React33.forwardRef((_a, ref) => {
1662
1784
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1663
- return /* @__PURE__ */ jsx33(
1785
+ return /* @__PURE__ */ jsx35(
1664
1786
  DropdownMenuPrimitive.Separator,
1665
1787
  __spreadValues({
1666
1788
  ref,
@@ -1675,7 +1797,7 @@ var DropdownMenuShortcut = (_a) => {
1675
1797
  } = _b, props = __objRest(_b, [
1676
1798
  "className"
1677
1799
  ]);
1678
- return /* @__PURE__ */ jsx33(
1800
+ return /* @__PURE__ */ jsx35(
1679
1801
  "span",
1680
1802
  __spreadValues({
1681
1803
  className: cn("ml-auto text-xs tracking-widest opacity-60", className)
@@ -1685,12 +1807,12 @@ var DropdownMenuShortcut = (_a) => {
1685
1807
  DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
1686
1808
 
1687
1809
  // 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(
1810
+ import * as React34 from "react";
1811
+ import { jsx as jsx36 } from "react/jsx-runtime";
1812
+ var LanguageButton = React34.forwardRef(
1691
1813
  (_a, ref) => {
1692
1814
  var _b = _a, { className, variant = "default", size = "default" } = _b, props = __objRest(_b, ["className", "variant", "size"]);
1693
- return /* @__PURE__ */ jsx34(
1815
+ return /* @__PURE__ */ jsx36(
1694
1816
  "button",
1695
1817
  __spreadValues({
1696
1818
  className: cn(
@@ -1713,7 +1835,7 @@ var LanguageButton = React31.forwardRef(
1713
1835
  LanguageButton.displayName = "Button";
1714
1836
 
1715
1837
  // src/components/language-switcher.tsx
1716
- import { jsx as jsx35, jsxs as jsxs10 } from "react/jsx-runtime";
1838
+ import { jsx as jsx37, jsxs as jsxs13 } from "react/jsx-runtime";
1717
1839
  function LanguageSwitcher({ locales, localeLabels }) {
1718
1840
  const locale = useLocale2();
1719
1841
  const router = useRouter2();
@@ -1722,23 +1844,23 @@ function LanguageSwitcher({ locales, localeLabels }) {
1722
1844
  const newPathname = pathname.replace(`/${locale}`, `/${newLocale}`);
1723
1845
  router.push(newPathname);
1724
1846
  };
1725
- return /* @__PURE__ */ jsxs10(DropdownMenu, { children: [
1726
- /* @__PURE__ */ jsx35(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx35(
1847
+ return /* @__PURE__ */ jsxs13(DropdownMenu, { children: [
1848
+ /* @__PURE__ */ jsx37(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx37(
1727
1849
  LanguageButton,
1728
1850
  {
1729
1851
  variant: "ghost",
1730
1852
  size: "icon",
1731
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",
1732
- children: /* @__PURE__ */ jsx35(globalLucideIcons.Globe, { className: "h-5 w-5" })
1854
+ children: /* @__PURE__ */ jsx37(globalLucideIcons.Globe, { className: "h-5 w-5" })
1733
1855
  }
1734
1856
  ) }),
1735
- /* @__PURE__ */ jsx35(
1857
+ /* @__PURE__ */ jsx37(
1736
1858
  DropdownMenuContent,
1737
1859
  {
1738
1860
  align: "end",
1739
1861
  sideOffset: 5,
1740
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]",
1741
- 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(
1742
1864
  DropdownMenuItem,
1743
1865
  {
1744
1866
  className: `
@@ -1760,21 +1882,21 @@ function LanguageSwitcher({ locales, localeLabels }) {
1760
1882
 
1761
1883
  // src/components/script/google-analytics-script.tsx
1762
1884
  import Script from "next/script";
1763
- 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";
1764
1886
  var googleAnalyticsId = process.env.NEXT_PUBLIC_GOOGLE_ANALYTICS_ID;
1765
1887
  function GoogleAnalyticsScript() {
1766
1888
  if (process.env.NODE_ENV !== "production") {
1767
1889
  return null;
1768
1890
  }
1769
- return /* @__PURE__ */ jsxs11(Fragment2, { children: [
1770
- /* @__PURE__ */ jsx36(
1891
+ return /* @__PURE__ */ jsxs14(Fragment, { children: [
1892
+ /* @__PURE__ */ jsx38(
1771
1893
  Script,
1772
1894
  {
1773
1895
  strategy: "afterInteractive",
1774
1896
  src: `https://www.googletagmanager.com/gtag/js?id=${googleAnalyticsId}`
1775
1897
  }
1776
1898
  ),
1777
- /* @__PURE__ */ jsx36(
1899
+ /* @__PURE__ */ jsx38(
1778
1900
  Script,
1779
1901
  {
1780
1902
  id: "google-analytics",
@@ -1805,13 +1927,13 @@ function useGoogleAnalytics() {
1805
1927
 
1806
1928
  // src/components/script/microsoft-clarity-script.tsx
1807
1929
  import Script2 from "next/script";
1808
- import { jsx as jsx37 } from "react/jsx-runtime";
1930
+ import { jsx as jsx39 } from "react/jsx-runtime";
1809
1931
  var microsoftClarityId = process.env.NEXT_PUBLIC_MICROSOFT_CLARITY_ID;
1810
1932
  function MicrosoftClarityScript() {
1811
1933
  if (process.env.NODE_ENV !== "production") {
1812
1934
  return null;
1813
1935
  }
1814
- return /* @__PURE__ */ jsx37(Script2, { id: "microsoft-clarity", strategy: "afterInteractive", children: `
1936
+ return /* @__PURE__ */ jsx39(Script2, { id: "microsoft-clarity", strategy: "afterInteractive", children: `
1815
1937
  (function(c,l,a,r,i,t,y){
1816
1938
  c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
1817
1939
  t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;