nvis-fe-cms-libs 2.0.3 → 2.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -371,15 +371,37 @@ function requireJsxRuntime() {
371
371
  return jsxRuntime.exports;
372
372
  }
373
373
  var jsxRuntimeExports = requireJsxRuntime();
374
- function ThemeIcon({ name, className = "" }) {
374
+ function ThemeIcon({
375
+ name,
376
+ className = "",
377
+ color,
378
+ useOriginalColor = false
379
+ // ← Prop mới để chọn chế độ
380
+ }) {
375
381
  if (!name) return null;
376
382
  const iconUrl = `/icons/${name}.svg`;
383
+ if (useOriginalColor) {
384
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
385
+ "img",
386
+ {
387
+ src: iconUrl,
388
+ alt: name,
389
+ className: `icon ${className}`,
390
+ onError: (e) => {
391
+ e.target.style.display = "none";
392
+ }
393
+ }
394
+ );
395
+ }
377
396
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
378
- "img",
397
+ "span",
379
398
  {
380
- src: iconUrl,
381
- alt: name,
382
399
  className: `icon ${className}`,
400
+ style: {
401
+ maskImage: `url(${iconUrl})`,
402
+ WebkitMaskImage: `url(${iconUrl})`,
403
+ backgroundColor: color || "currentColor"
404
+ },
383
405
  onError: (e) => {
384
406
  e.target.style.display = "none";
385
407
  }
@@ -405,19 +427,19 @@ const CompanyValues = ({ companyData, t, isDarkMode }) => {
405
427
  };
406
428
  const items = [
407
429
  {
408
- icon: "light_bulb",
430
+ icon: "icon-companyValueLightBulb",
409
431
  title: t("about.companyValues.vision") || "Tầm nhìn",
410
432
  text: cleanHtmlContent(safeCompanyData.vision) || "Tầm nhìn của chúng tôi sẽ được cập nhật trong thời gian tới.",
411
433
  bgClass: "bg-gradient-brand"
412
434
  },
413
435
  {
414
- icon: "rocket",
436
+ icon: "icon-companyValueRocket",
415
437
  title: t("about.companyValues.mission") || "Sứ mệnh",
416
438
  text: cleanHtmlContent(safeCompanyData.mission) || "Sứ mệnh của chúng tôi sẽ được cập nhật trong thời gian tới.",
417
439
  bgClass: "bg-gradient-accent"
418
440
  },
419
441
  {
420
- icon: "diamond",
442
+ icon: "icon-companyValueDiamond",
421
443
  title: t("about.companyValues.coreValues") || "Giá trị cốt lõi",
422
444
  text: cleanHtmlContent(safeCompanyData.coreValues) || "Giá trị cốt lõi của chúng tôi sẽ được cập nhật trong thời gian tới.",
423
445
  bgClass: "bg-gradient-brand"
@@ -467,7 +489,7 @@ const CompanyValues = ({ companyData, t, isDarkMode }) => {
467
489
  "div",
468
490
  {
469
491
  className: `w-10 h-10 rounded-lg flex items-center justify-center text-white text-xl flex-shrink-0 ${item.bgClass}`,
470
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: item.icon, className: "w-6 h-6" })
492
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: item.icon, folder: "AboutCompanySection", className: "w-6 h-6", useOriginalColor: true })
471
493
  }
472
494
  ),
473
495
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex-1 min-w-0", children: [
@@ -592,7 +614,8 @@ const AboutCompanySection = ({ data, t, isDarkMode, imageBaseUrl = "" }) => {
592
614
  /* @__PURE__ */ jsxRuntimeExports.jsx(SectionWrapper, { isDarkMode, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid lg:grid-cols-2 gap-12 items-center", children: [
593
615
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
594
616
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "inline-block px-4 py-2 rounded-full text-small font-semibold mb-4 bg-surface text-brand-primary border f-border", children: [
595
- "📖 ",
617
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-aboutCompanyBook", folder: "AboutCompanySection", className: "w-6 h-6", useOriginalColor: true }),
618
+ " ",
596
619
  safeT("aboutCompany.story.badge")
597
620
  ] }),
598
621
  /* @__PURE__ */ jsxRuntimeExports.jsxs("h2", { className: "text-3xl lg:text-4xl font-bold mb-6 text-main", children: [
@@ -660,7 +683,8 @@ const TimelineSection = ({ data, t, section }) => {
660
683
  }
661
684
  return /* @__PURE__ */ jsxRuntimeExports.jsx(SectionWrapper, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: [
662
685
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-center mb-12", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "inline-block px-4 py-2 rounded-full border border-[var(--border-color)] bg-surface text-subtitle font-semibold text-brand-primary shadow-sm hover:shadow-md transition-all duration-300", children: [
663
- "📈 ",
686
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-timeLineChart", folder: "TimlineSection", className: "w-5 h-5 icon-gradient" }),
687
+ " ",
664
688
  sectionTitle
665
689
  ] }) }),
666
690
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative", children: [
@@ -881,7 +905,8 @@ const PartnersSection = ({ data, t, imageBaseUrl = "", section }) => {
881
905
  if (!partnersData.length) return null;
882
906
  return /* @__PURE__ */ jsxRuntimeExports.jsx(SectionWrapper, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: [
883
907
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-center mb-12", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "inline-block px-4 py-2 rounded-full border border-[var(--border-color)] bg-surface text-subtitle font-semibold text-brand-primary shadow-sm", children: [
884
- "🤝 ",
908
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-partner", folder: "PartnersSection", className: "w-4 h-4 icon-gradient" }),
909
+ " ",
885
910
  sectionTitle
886
911
  ] }) }),
887
912
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref: partnersRef, className: "relative overflow-hidden", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
@@ -984,7 +1009,8 @@ const MilestoneSection = ({ data, t, isDarkMode, getMilestoneTimeline, section }
984
1009
  }
985
1010
  return /* @__PURE__ */ jsxRuntimeExports.jsx(SectionWrapper, { isDarkMode, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: [
986
1011
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-center mb-12", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative inline-block px-4 py-2 rounded-full text-lg font-semibold mb-4 border border-[var(--border-color)] bg-surface text-main shadow-sm hover:shadow-md transition-all duration-300", children: [
987
- "📈 ",
1012
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-timeLineChart", folder: "TimlineSection", className: "w-5 h-5 icon-gradient" }),
1013
+ " ",
988
1014
  sectionTitle
989
1015
  ] }) }),
990
1016
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative", children: [
@@ -1050,7 +1076,8 @@ const TestimonialsSection = ({ data, t, section }) => {
1050
1076
  }
1051
1077
  return /* @__PURE__ */ jsxRuntimeExports.jsx(SectionWrapper, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 text-center", children: [
1052
1078
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "inline-block px-4 py-2 rounded-full border border-[var(--border-color)] bg-surface text-subtitle font-semibold mb-8 text-brand-primary shadow-sm", children: [
1053
- "💬 ",
1079
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-testimonials", folder: "TestimonialsSection", className: "w-4 h-4 icon-gradient" }),
1080
+ " ",
1054
1081
  sectionTitle
1055
1082
  ] }),
1056
1083
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative", children: [
@@ -1069,7 +1096,7 @@ const TestimonialsSection = ({ data, t, section }) => {
1069
1096
  '"'
1070
1097
  ] }),
1071
1098
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-center space-x-4", children: [
1072
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-3xl", children: "👤" }),
1099
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-3xl", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-testimonialsUser", folder: "TestimonialsSection", className: "w-4 h-4 icon-gradient" }) }),
1073
1100
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-left", children: [
1074
1101
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "card-title", children: testimonials[currentIndex].author }),
1075
1102
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "card-text", children: testimonials[currentIndex].position }),
@@ -1267,7 +1294,8 @@ const PartnerListSection = ({ t, getPartnerList, imageBaseUrl = "", section }) =
1267
1294
  if (!partnersData.length) return null;
1268
1295
  return /* @__PURE__ */ jsxRuntimeExports.jsx(SectionWrapper, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: [
1269
1296
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-center mb-12", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "inline-block px-4 py-2 rounded-full border border-[var(--border-color)] bg-surface text-subtitle font-semibold text-brand-primary shadow-sm", children: [
1270
- "🤝 ",
1297
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-partner", folder: "PartnersSection", className: "w-4 h-4 icon-gradient" }),
1298
+ " ",
1271
1299
  sectionTitle
1272
1300
  ] }) }),
1273
1301
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref: partnersRef, className: "relative", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
@@ -1332,692 +1360,71 @@ const PartnerListSection = ({ t, getPartnerList, imageBaseUrl = "", section }) =
1332
1360
  ) })
1333
1361
  ] }) });
1334
1362
  };
1335
- /**
1336
- * @license lucide-react v0.536.0 - ISC
1337
- *
1338
- * This source code is licensed under the ISC license.
1339
- * See the LICENSE file in the root directory of this source tree.
1340
- */
1341
- const toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
1342
- const toCamelCase = (string) => string.replace(
1343
- /^([A-Z])|[\s-_]+(\w)/g,
1344
- (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()
1345
- );
1346
- const toPascalCase = (string) => {
1347
- const camelCase = toCamelCase(string);
1348
- return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);
1349
- };
1350
- const mergeClasses = (...classes) => classes.filter((className, index2, array) => {
1351
- return Boolean(className) && className.trim() !== "" && array.indexOf(className) === index2;
1352
- }).join(" ").trim();
1353
- const hasA11yProp = (props) => {
1354
- for (const prop in props) {
1355
- if (prop.startsWith("aria-") || prop === "role" || prop === "title") {
1356
- return true;
1363
+ const ContactFormSection = ({ data, t, isDarkMode, consultationRequestService }) => {
1364
+ const [formData, setFormData] = useState({
1365
+ fullName: "",
1366
+ workEmail: "",
1367
+ phoneNumber: "",
1368
+ companyName: "",
1369
+ jobTitle: "",
1370
+ businessType: "",
1371
+ expectedBudget: "",
1372
+ expectedTimeline: "",
1373
+ requestTitle: "",
1374
+ requestDescription: ""
1375
+ });
1376
+ const [formErrors, setFormErrors] = useState({});
1377
+ const [isSubmitting, setIsSubmitting] = useState(false);
1378
+ const [submitStatus, setSubmitStatus] = useState(null);
1379
+ const [submitMessage, setSubmitMessage] = useState("");
1380
+ const validateField = (name, value) => {
1381
+ const errors = {};
1382
+ switch (name) {
1383
+ case "fullName":
1384
+ if (!(value == null ? void 0 : value.trim())) errors.fullName = "Họ và tên là bắt buộc";
1385
+ else if (value.trim().length < 2) errors.fullName = "Tên phải có ít nhất 2 ký tự";
1386
+ break;
1387
+ case "workEmail":
1388
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
1389
+ if (!(value == null ? void 0 : value.trim())) errors.workEmail = "Email là bắt buộc";
1390
+ else if (!emailRegex.test(value.trim())) errors.workEmail = "Email không hợp lệ";
1391
+ break;
1392
+ case "phoneNumber":
1393
+ const phoneRegex = /^[0-9\s\-\+\(\)]{10,15}$/;
1394
+ if (value && !phoneRegex.test(value.trim())) errors.phoneNumber = "Số điện thoại không hợp lệ";
1395
+ break;
1396
+ case "requestTitle":
1397
+ if (!(value == null ? void 0 : value.trim())) errors.requestTitle = "Tiêu đề yêu cầu là bắt buộc";
1398
+ else if (value.trim().length < 5) errors.requestTitle = "Tiêu đề phải có ít nhất 5 ký tự";
1399
+ break;
1400
+ case "requestDescription":
1401
+ if (!(value == null ? void 0 : value.trim())) errors.requestDescription = "Mô tả yêu cầu là bắt buộc";
1402
+ else if (value.trim().length < 10) errors.requestDescription = "Mô tả phải có ít nhất 10 ký tự";
1403
+ break;
1404
+ case "companyName":
1405
+ if (value && value.trim().length > 0 && value.trim().length < 2) {
1406
+ errors.companyName = "Tên công ty phải có ít nhất 2 ký tự";
1407
+ }
1408
+ break;
1409
+ case "jobTitle":
1410
+ if (value && value.trim().length > 0 && value.trim().length < 2) {
1411
+ errors.jobTitle = "Chức vụ phải có ít nhất 2 ký tự";
1412
+ }
1413
+ break;
1357
1414
  }
1358
- }
1359
- };
1360
- /**
1361
- * @license lucide-react v0.536.0 - ISC
1362
- *
1363
- * This source code is licensed under the ISC license.
1364
- * See the LICENSE file in the root directory of this source tree.
1365
- */
1366
- var defaultAttributes = {
1367
- xmlns: "http://www.w3.org/2000/svg",
1368
- width: 24,
1369
- height: 24,
1370
- viewBox: "0 0 24 24",
1371
- fill: "none",
1372
- stroke: "currentColor",
1373
- strokeWidth: 2,
1374
- strokeLinecap: "round",
1375
- strokeLinejoin: "round"
1376
- };
1377
- /**
1378
- * @license lucide-react v0.536.0 - ISC
1379
- *
1380
- * This source code is licensed under the ISC license.
1381
- * See the LICENSE file in the root directory of this source tree.
1382
- */
1383
- const Icon = forwardRef(
1384
- (_a, ref) => {
1385
- var _b = _a, {
1386
- color = "currentColor",
1387
- size = 24,
1388
- strokeWidth = 2,
1389
- absoluteStrokeWidth,
1390
- className = "",
1391
- children,
1392
- iconNode
1393
- } = _b, rest = __objRest(_b, [
1394
- "color",
1395
- "size",
1396
- "strokeWidth",
1397
- "absoluteStrokeWidth",
1398
- "className",
1399
- "children",
1400
- "iconNode"
1401
- ]);
1402
- return createElement(
1403
- "svg",
1404
- __spreadValues(__spreadValues(__spreadProps(__spreadValues({
1405
- ref
1406
- }, defaultAttributes), {
1407
- width: size,
1408
- height: size,
1409
- stroke: color,
1410
- strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,
1411
- className: mergeClasses("lucide", className)
1412
- }), !children && !hasA11yProp(rest) && { "aria-hidden": "true" }), rest),
1413
- [
1414
- ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),
1415
- ...Array.isArray(children) ? children : [children]
1416
- ]
1417
- );
1418
- }
1419
- );
1420
- /**
1421
- * @license lucide-react v0.536.0 - ISC
1422
- *
1423
- * This source code is licensed under the ISC license.
1424
- * See the LICENSE file in the root directory of this source tree.
1425
- */
1426
- const createLucideIcon = (iconName, iconNode) => {
1427
- const Component = forwardRef(
1428
- (_a, ref) => {
1429
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1430
- return createElement(Icon, __spreadValues({
1431
- ref,
1432
- iconNode,
1433
- className: mergeClasses(
1434
- `lucide-${toKebabCase(toPascalCase(iconName))}`,
1435
- `lucide-${iconName}`,
1436
- className
1437
- )
1438
- }, props));
1439
- }
1440
- );
1441
- Component.displayName = toPascalCase(iconName);
1442
- return Component;
1443
- };
1444
- /**
1445
- * @license lucide-react v0.536.0 - ISC
1446
- *
1447
- * This source code is licensed under the ISC license.
1448
- * See the LICENSE file in the root directory of this source tree.
1449
- */
1450
- const __iconNode$z = [
1451
- ["path", { d: "M5 12h14", key: "1ays0h" }],
1452
- ["path", { d: "m12 5 7 7-7 7", key: "xquz4c" }]
1453
- ];
1454
- const ArrowRight = createLucideIcon("arrow-right", __iconNode$z);
1455
- /**
1456
- * @license lucide-react v0.536.0 - ISC
1457
- *
1458
- * This source code is licensed under the ISC license.
1459
- * See the LICENSE file in the root directory of this source tree.
1460
- */
1461
- const __iconNode$y = [
1462
- ["path", { d: "M2 4v16", key: "vw9hq8" }],
1463
- ["path", { d: "M2 8h18a2 2 0 0 1 2 2v10", key: "1dgv2r" }],
1464
- ["path", { d: "M2 17h20", key: "18nfp3" }],
1465
- ["path", { d: "M6 8v9", key: "1yriud" }]
1466
- ];
1467
- const Bed = createLucideIcon("bed", __iconNode$y);
1468
- /**
1469
- * @license lucide-react v0.536.0 - ISC
1470
- *
1471
- * This source code is licensed under the ISC license.
1472
- * See the LICENSE file in the root directory of this source tree.
1473
- */
1474
- const __iconNode$x = [
1475
- ["path", { d: "M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16", key: "jecpp" }],
1476
- ["rect", { width: "20", height: "14", x: "2", y: "6", rx: "2", key: "i6l2r4" }]
1477
- ];
1478
- const Briefcase = createLucideIcon("briefcase", __iconNode$x);
1479
- /**
1480
- * @license lucide-react v0.536.0 - ISC
1481
- *
1482
- * This source code is licensed under the ISC license.
1483
- * See the LICENSE file in the root directory of this source tree.
1484
- */
1485
- const __iconNode$w = [
1486
- ["path", { d: "M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z", key: "1b4qmf" }],
1487
- ["path", { d: "M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2", key: "i71pzd" }],
1488
- ["path", { d: "M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2", key: "10jefs" }],
1489
- ["path", { d: "M10 6h4", key: "1itunk" }],
1490
- ["path", { d: "M10 10h4", key: "tcdvrf" }],
1491
- ["path", { d: "M10 14h4", key: "kelpxr" }],
1492
- ["path", { d: "M10 18h4", key: "1ulq68" }]
1493
- ];
1494
- const Building2 = createLucideIcon("building-2", __iconNode$w);
1495
- /**
1496
- * @license lucide-react v0.536.0 - ISC
1497
- *
1498
- * This source code is licensed under the ISC license.
1499
- * See the LICENSE file in the root directory of this source tree.
1500
- */
1501
- const __iconNode$v = [
1502
- ["rect", { width: "16", height: "20", x: "4", y: "2", rx: "2", ry: "2", key: "76otgf" }],
1503
- ["path", { d: "M9 22v-4h6v4", key: "r93iot" }],
1504
- ["path", { d: "M8 6h.01", key: "1dz90k" }],
1505
- ["path", { d: "M16 6h.01", key: "1x0f13" }],
1506
- ["path", { d: "M12 6h.01", key: "1vi96p" }],
1507
- ["path", { d: "M12 10h.01", key: "1nrarc" }],
1508
- ["path", { d: "M12 14h.01", key: "1etili" }],
1509
- ["path", { d: "M16 10h.01", key: "1m94wz" }],
1510
- ["path", { d: "M16 14h.01", key: "1gbofw" }],
1511
- ["path", { d: "M8 10h.01", key: "19clt8" }],
1512
- ["path", { d: "M8 14h.01", key: "6423bh" }]
1513
- ];
1514
- const Building = createLucideIcon("building", __iconNode$v);
1515
- /**
1516
- * @license lucide-react v0.536.0 - ISC
1517
- *
1518
- * This source code is licensed under the ISC license.
1519
- * See the LICENSE file in the root directory of this source tree.
1520
- */
1521
- const __iconNode$u = [
1522
- ["rect", { width: "16", height: "20", x: "4", y: "2", rx: "2", key: "1nb95v" }],
1523
- ["line", { x1: "8", x2: "16", y1: "6", y2: "6", key: "x4nwl0" }],
1524
- ["line", { x1: "16", x2: "16", y1: "14", y2: "18", key: "wjye3r" }],
1525
- ["path", { d: "M16 10h.01", key: "1m94wz" }],
1526
- ["path", { d: "M12 10h.01", key: "1nrarc" }],
1527
- ["path", { d: "M8 10h.01", key: "19clt8" }],
1528
- ["path", { d: "M12 14h.01", key: "1etili" }],
1529
- ["path", { d: "M8 14h.01", key: "6423bh" }],
1530
- ["path", { d: "M12 18h.01", key: "mhygvu" }],
1531
- ["path", { d: "M8 18h.01", key: "lrp35t" }]
1532
- ];
1533
- const Calculator = createLucideIcon("calculator", __iconNode$u);
1534
- /**
1535
- * @license lucide-react v0.536.0 - ISC
1536
- *
1537
- * This source code is licensed under the ISC license.
1538
- * See the LICENSE file in the root directory of this source tree.
1539
- */
1540
- const __iconNode$t = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
1541
- const ChevronDown = createLucideIcon("chevron-down", __iconNode$t);
1542
- /**
1543
- * @license lucide-react v0.536.0 - ISC
1544
- *
1545
- * This source code is licensed under the ISC license.
1546
- * See the LICENSE file in the root directory of this source tree.
1547
- */
1548
- const __iconNode$s = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
1549
- const ChevronRight = createLucideIcon("chevron-right", __iconNode$s);
1550
- /**
1551
- * @license lucide-react v0.536.0 - ISC
1552
- *
1553
- * This source code is licensed under the ISC license.
1554
- * See the LICENSE file in the root directory of this source tree.
1555
- */
1556
- const __iconNode$r = [
1557
- ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
1558
- ["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
1559
- ["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }]
1560
- ];
1561
- const CircleAlert = createLucideIcon("circle-alert", __iconNode$r);
1562
- /**
1563
- * @license lucide-react v0.536.0 - ISC
1564
- *
1565
- * This source code is licensed under the ISC license.
1566
- * See the LICENSE file in the root directory of this source tree.
1567
- */
1568
- const __iconNode$q = [
1569
- ["path", { d: "M21.801 10A10 10 0 1 1 17 3.335", key: "yps3ct" }],
1570
- ["path", { d: "m9 11 3 3L22 4", key: "1pflzl" }]
1571
- ];
1572
- const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$q);
1573
- /**
1574
- * @license lucide-react v0.536.0 - ISC
1575
- *
1576
- * This source code is licensed under the ISC license.
1577
- * See the LICENSE file in the root directory of this source tree.
1578
- */
1579
- const __iconNode$p = [
1580
- ["path", { d: "M12 6v6l4 2", key: "mmk7yg" }],
1581
- ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
1582
- ];
1583
- const Clock = createLucideIcon("clock", __iconNode$p);
1584
- /**
1585
- * @license lucide-react v0.536.0 - ISC
1586
- *
1587
- * This source code is licensed under the ISC license.
1588
- * See the LICENSE file in the root directory of this source tree.
1589
- */
1590
- const __iconNode$o = [
1591
- ["path", { d: "M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z", key: "p7xjir" }]
1592
- ];
1593
- const Cloud = createLucideIcon("cloud", __iconNode$o);
1594
- /**
1595
- * @license lucide-react v0.536.0 - ISC
1596
- *
1597
- * This source code is licensed under the ISC license.
1598
- * See the LICENSE file in the root directory of this source tree.
1599
- */
1600
- const __iconNode$n = [
1601
- ["ellipse", { cx: "12", cy: "5", rx: "9", ry: "3", key: "msslwz" }],
1602
- ["path", { d: "M3 5V19A9 3 0 0 0 21 19V5", key: "1wlel7" }],
1603
- ["path", { d: "M3 12A9 3 0 0 0 21 12", key: "mv7ke4" }]
1604
- ];
1605
- const Database = createLucideIcon("database", __iconNode$n);
1606
- /**
1607
- * @license lucide-react v0.536.0 - ISC
1608
- *
1609
- * This source code is licensed under the ISC license.
1610
- * See the LICENSE file in the root directory of this source tree.
1611
- */
1612
- const __iconNode$m = [
1613
- ["path", { d: "M12 16h.01", key: "1drbdi" }],
1614
- ["path", { d: "M16 16h.01", key: "1f9h7w" }],
1615
- [
1616
- "path",
1617
- {
1618
- d: "M3 19a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V8.5a.5.5 0 0 0-.769-.422l-4.462 2.844A.5.5 0 0 1 15 10.5v-2a.5.5 0 0 0-.769-.422L9.77 10.922A.5.5 0 0 1 9 10.5V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2z",
1619
- key: "1iv0i2"
1620
- }
1621
- ],
1622
- ["path", { d: "M8 16h.01", key: "18s6g9" }]
1623
- ];
1624
- const Factory = createLucideIcon("factory", __iconNode$m);
1625
- /**
1626
- * @license lucide-react v0.536.0 - ISC
1627
- *
1628
- * This source code is licensed under the ISC license.
1629
- * See the LICENSE file in the root directory of this source tree.
1630
- */
1631
- const __iconNode$l = [
1632
- ["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
1633
- ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
1634
- ["path", { d: "M10 9H8", key: "b1mrlr" }],
1635
- ["path", { d: "M16 13H8", key: "t4e002" }],
1636
- ["path", { d: "M16 17H8", key: "z1uh3a" }]
1637
- ];
1638
- const FileText = createLucideIcon("file-text", __iconNode$l);
1639
- /**
1640
- * @license lucide-react v0.536.0 - ISC
1641
- *
1642
- * This source code is licensed under the ISC license.
1643
- * See the LICENSE file in the root directory of this source tree.
1644
- */
1645
- const __iconNode$k = [
1646
- ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
1647
- ["path", { d: "M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20", key: "13o1zl" }],
1648
- ["path", { d: "M2 12h20", key: "9i4pu4" }]
1649
- ];
1650
- const Globe = createLucideIcon("globe", __iconNode$k);
1651
- /**
1652
- * @license lucide-react v0.536.0 - ISC
1653
- *
1654
- * This source code is licensed under the ISC license.
1655
- * See the LICENSE file in the root directory of this source tree.
1656
- */
1657
- const __iconNode$j = [
1658
- [
1659
- "path",
1660
- {
1661
- d: "M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z",
1662
- key: "j76jl0"
1663
- }
1664
- ],
1665
- ["path", { d: "M22 10v6", key: "1lu8f3" }],
1666
- ["path", { d: "M6 12.5V16a6 3 0 0 0 12 0v-3.5", key: "1r8lef" }]
1667
- ];
1668
- const GraduationCap = createLucideIcon("graduation-cap", __iconNode$j);
1669
- /**
1670
- * @license lucide-react v0.536.0 - ISC
1671
- *
1672
- * This source code is licensed under the ISC license.
1673
- * See the LICENSE file in the root directory of this source tree.
1674
- */
1675
- const __iconNode$i = [
1676
- [
1677
- "path",
1678
- {
1679
- d: "M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5",
1680
- key: "mvr1a0"
1681
- }
1682
- ]
1683
- ];
1684
- const Heart = createLucideIcon("heart", __iconNode$i);
1685
- /**
1686
- * @license lucide-react v0.536.0 - ISC
1687
- *
1688
- * This source code is licensed under the ISC license.
1689
- * See the LICENSE file in the root directory of this source tree.
1690
- */
1691
- const __iconNode$h = [
1692
- ["path", { d: "M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8", key: "5wwlr5" }],
1693
- [
1694
- "path",
1695
- {
1696
- d: "M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",
1697
- key: "1d0kgt"
1698
- }
1699
- ]
1700
- ];
1701
- const House = createLucideIcon("house", __iconNode$h);
1702
- /**
1703
- * @license lucide-react v0.536.0 - ISC
1704
- *
1705
- * This source code is licensed under the ISC license.
1706
- * See the LICENSE file in the root directory of this source tree.
1707
- */
1708
- const __iconNode$g = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]];
1709
- const LoaderCircle = createLucideIcon("loader-circle", __iconNode$g);
1710
- /**
1711
- * @license lucide-react v0.536.0 - ISC
1712
- *
1713
- * This source code is licensed under the ISC license.
1714
- * See the LICENSE file in the root directory of this source tree.
1715
- */
1716
- const __iconNode$f = [
1717
- ["path", { d: "m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7", key: "132q7q" }],
1718
- ["rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", key: "izxlao" }]
1719
- ];
1720
- const Mail = createLucideIcon("mail", __iconNode$f);
1721
- /**
1722
- * @license lucide-react v0.536.0 - ISC
1723
- *
1724
- * This source code is licensed under the ISC license.
1725
- * See the LICENSE file in the root directory of this source tree.
1726
- */
1727
- const __iconNode$e = [
1728
- [
1729
- "path",
1730
- {
1731
- d: "M11 6a13 13 0 0 0 8.4-2.8A1 1 0 0 1 21 4v12a1 1 0 0 1-1.6.8A13 13 0 0 0 11 14H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z",
1732
- key: "q8bfy3"
1733
- }
1734
- ],
1735
- ["path", { d: "M6 14a12 12 0 0 0 2.4 7.2 2 2 0 0 0 3.2-2.4A8 8 0 0 1 10 14", key: "1853fq" }],
1736
- ["path", { d: "M8 6v8", key: "15ugcq" }]
1737
- ];
1738
- const Megaphone = createLucideIcon("megaphone", __iconNode$e);
1739
- /**
1740
- * @license lucide-react v0.536.0 - ISC
1741
- *
1742
- * This source code is licensed under the ISC license.
1743
- * See the LICENSE file in the root directory of this source tree.
1744
- */
1745
- const __iconNode$d = [
1746
- [
1747
- "path",
1748
- {
1749
- d: "M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",
1750
- key: "1a0edw"
1751
- }
1752
- ],
1753
- ["path", { d: "M12 22V12", key: "d0xqtd" }],
1754
- ["polyline", { points: "3.29 7 12 12 20.71 7", key: "ousv84" }],
1755
- ["path", { d: "m7.5 4.27 9 5.15", key: "1c824w" }]
1756
- ];
1757
- const Package = createLucideIcon("package", __iconNode$d);
1758
- /**
1759
- * @license lucide-react v0.536.0 - ISC
1760
- *
1761
- * This source code is licensed under the ISC license.
1762
- * See the LICENSE file in the root directory of this source tree.
1763
- */
1764
- const __iconNode$c = [
1765
- [
1766
- "path",
1767
- {
1768
- d: "M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384",
1769
- key: "9njp5v"
1770
- }
1771
- ]
1772
- ];
1773
- const Phone = createLucideIcon("phone", __iconNode$c);
1774
- /**
1775
- * @license lucide-react v0.536.0 - ISC
1776
- *
1777
- * This source code is licensed under the ISC license.
1778
- * See the LICENSE file in the root directory of this source tree.
1779
- */
1780
- const __iconNode$b = [
1781
- [
1782
- "path",
1783
- {
1784
- d: "M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z",
1785
- key: "1v9wt8"
1786
- }
1787
- ]
1788
- ];
1789
- const Plane = createLucideIcon("plane", __iconNode$b);
1790
- /**
1791
- * @license lucide-react v0.536.0 - ISC
1792
- *
1793
- * This source code is licensed under the ISC license.
1794
- * See the LICENSE file in the root directory of this source tree.
1795
- */
1796
- const __iconNode$a = [
1797
- [
1798
- "path",
1799
- {
1800
- d: "M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",
1801
- key: "1ffxy3"
1802
- }
1803
- ],
1804
- ["path", { d: "m21.854 2.147-10.94 10.939", key: "12cjpa" }]
1805
- ];
1806
- const Send = createLucideIcon("send", __iconNode$a);
1807
- /**
1808
- * @license lucide-react v0.536.0 - ISC
1809
- *
1810
- * This source code is licensed under the ISC license.
1811
- * See the LICENSE file in the root directory of this source tree.
1812
- */
1813
- const __iconNode$9 = [
1814
- [
1815
- "path",
1816
- {
1817
- d: "M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",
1818
- key: "1i5ecw"
1819
- }
1820
- ],
1821
- ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
1822
- ];
1823
- const Settings = createLucideIcon("settings", __iconNode$9);
1824
- /**
1825
- * @license lucide-react v0.536.0 - ISC
1826
- *
1827
- * This source code is licensed under the ISC license.
1828
- * See the LICENSE file in the root directory of this source tree.
1829
- */
1830
- const __iconNode$8 = [
1831
- [
1832
- "path",
1833
- {
1834
- 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",
1835
- key: "oel41y"
1836
- }
1837
- ]
1838
- ];
1839
- const Shield = createLucideIcon("shield", __iconNode$8);
1840
- /**
1841
- * @license lucide-react v0.536.0 - ISC
1842
- *
1843
- * This source code is licensed under the ISC license.
1844
- * See the LICENSE file in the root directory of this source tree.
1845
- */
1846
- const __iconNode$7 = [
1847
- ["circle", { cx: "8", cy: "21", r: "1", key: "jimo8o" }],
1848
- ["circle", { cx: "19", cy: "21", r: "1", key: "13723u" }],
1849
- [
1850
- "path",
1851
- {
1852
- d: "M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12",
1853
- key: "9zh506"
1854
- }
1855
- ]
1856
- ];
1857
- const ShoppingCart = createLucideIcon("shopping-cart", __iconNode$7);
1858
- /**
1859
- * @license lucide-react v0.536.0 - ISC
1860
- *
1861
- * This source code is licensed under the ISC license.
1862
- * See the LICENSE file in the root directory of this source tree.
1863
- */
1864
- const __iconNode$6 = [
1865
- ["rect", { width: "14", height: "20", x: "5", y: "2", rx: "2", ry: "2", key: "1yt0o3" }],
1866
- ["path", { d: "M12 18h.01", key: "mhygvu" }]
1867
- ];
1868
- const Smartphone = createLucideIcon("smartphone", __iconNode$6);
1869
- /**
1870
- * @license lucide-react v0.536.0 - ISC
1871
- *
1872
- * This source code is licensed under the ISC license.
1873
- * See the LICENSE file in the root directory of this source tree.
1874
- */
1875
- const __iconNode$5 = [
1876
- ["path", { d: "M16 7h6v6", key: "box55l" }],
1877
- ["path", { d: "m22 7-8.5 8.5-5-5L2 17", key: "1t1m79" }]
1878
- ];
1879
- const TrendingUp = createLucideIcon("trending-up", __iconNode$5);
1880
- /**
1881
- * @license lucide-react v0.536.0 - ISC
1882
- *
1883
- * This source code is licensed under the ISC license.
1884
- * See the LICENSE file in the root directory of this source tree.
1885
- */
1886
- const __iconNode$4 = [
1887
- ["path", { d: "M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2", key: "wrbu53" }],
1888
- ["path", { d: "M15 18H9", key: "1lyqi6" }],
1889
- [
1890
- "path",
1891
- {
1892
- d: "M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14",
1893
- key: "lysw3i"
1894
- }
1895
- ],
1896
- ["circle", { cx: "17", cy: "18", r: "2", key: "332jqn" }],
1897
- ["circle", { cx: "7", cy: "18", r: "2", key: "19iecd" }]
1898
- ];
1899
- const Truck = createLucideIcon("truck", __iconNode$4);
1900
- /**
1901
- * @license lucide-react v0.536.0 - ISC
1902
- *
1903
- * This source code is licensed under the ISC license.
1904
- * See the LICENSE file in the root directory of this source tree.
1905
- */
1906
- const __iconNode$3 = [
1907
- ["path", { d: "M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2", key: "975kel" }],
1908
- ["circle", { cx: "12", cy: "7", r: "4", key: "17ys0d" }]
1909
- ];
1910
- const User = createLucideIcon("user", __iconNode$3);
1911
- /**
1912
- * @license lucide-react v0.536.0 - ISC
1913
- *
1914
- * This source code is licensed under the ISC license.
1915
- * See the LICENSE file in the root directory of this source tree.
1916
- */
1917
- const __iconNode$2 = [
1918
- ["path", { d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2", key: "1yyitq" }],
1919
- ["path", { d: "M16 3.128a4 4 0 0 1 0 7.744", key: "16gr8j" }],
1920
- ["path", { d: "M22 21v-2a4 4 0 0 0-3-3.87", key: "kshegd" }],
1921
- ["circle", { cx: "9", cy: "7", r: "4", key: "nufk8" }]
1922
- ];
1923
- const Users = createLucideIcon("users", __iconNode$2);
1924
- /**
1925
- * @license lucide-react v0.536.0 - ISC
1926
- *
1927
- * This source code is licensed under the ISC license.
1928
- * See the LICENSE file in the root directory of this source tree.
1929
- */
1930
- const __iconNode$1 = [
1931
- [
1932
- "path",
1933
- {
1934
- d: "M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",
1935
- key: "1ngwbx"
1936
- }
1937
- ]
1938
- ];
1939
- const Wrench = createLucideIcon("wrench", __iconNode$1);
1940
- /**
1941
- * @license lucide-react v0.536.0 - ISC
1942
- *
1943
- * This source code is licensed under the ISC license.
1944
- * See the LICENSE file in the root directory of this source tree.
1945
- */
1946
- const __iconNode = [
1947
- [
1948
- "path",
1949
- {
1950
- d: "M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",
1951
- key: "1xq2db"
1952
- }
1953
- ]
1954
- ];
1955
- const Zap = createLucideIcon("zap", __iconNode);
1956
- const ContactFormSection = ({ data, t, isDarkMode, consultationRequestService }) => {
1957
- const [formData, setFormData] = useState({
1958
- fullName: "",
1959
- workEmail: "",
1960
- phoneNumber: "",
1961
- companyName: "",
1962
- jobTitle: "",
1963
- businessType: "",
1964
- expectedBudget: "",
1965
- expectedTimeline: "",
1966
- requestTitle: "",
1967
- requestDescription: ""
1968
- });
1969
- const [formErrors, setFormErrors] = useState({});
1970
- const [isSubmitting, setIsSubmitting] = useState(false);
1971
- const [submitStatus, setSubmitStatus] = useState(null);
1972
- const [submitMessage, setSubmitMessage] = useState("");
1973
- const validateField = (name, value) => {
1974
- const errors = {};
1975
- switch (name) {
1976
- case "fullName":
1977
- if (!(value == null ? void 0 : value.trim())) errors.fullName = "Họ và tên là bắt buộc";
1978
- else if (value.trim().length < 2) errors.fullName = "Tên phải có ít nhất 2 ký tự";
1979
- break;
1980
- case "workEmail":
1981
- const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
1982
- if (!(value == null ? void 0 : value.trim())) errors.workEmail = "Email là bắt buộc";
1983
- else if (!emailRegex.test(value.trim())) errors.workEmail = "Email không hợp lệ";
1984
- break;
1985
- case "phoneNumber":
1986
- const phoneRegex = /^[0-9\s\-\+\(\)]{10,15}$/;
1987
- if (value && !phoneRegex.test(value.trim())) errors.phoneNumber = "Số điện thoại không hợp lệ";
1988
- break;
1989
- case "requestTitle":
1990
- if (!(value == null ? void 0 : value.trim())) errors.requestTitle = "Tiêu đề yêu cầu là bắt buộc";
1991
- else if (value.trim().length < 5) errors.requestTitle = "Tiêu đề phải có ít nhất 5 ký tự";
1992
- break;
1993
- case "requestDescription":
1994
- if (!(value == null ? void 0 : value.trim())) errors.requestDescription = "Mô tả yêu cầu là bắt buộc";
1995
- else if (value.trim().length < 10) errors.requestDescription = "Mô tả phải có ít nhất 10 ký tự";
1996
- break;
1997
- case "companyName":
1998
- if (value && value.trim().length > 0 && value.trim().length < 2) {
1999
- errors.companyName = "Tên công ty phải có ít nhất 2 ký tự";
2000
- }
2001
- break;
2002
- case "jobTitle":
2003
- if (value && value.trim().length > 0 && value.trim().length < 2) {
2004
- errors.jobTitle = "Chức vụ phải có ít nhất 2 ký tự";
2005
- }
2006
- break;
2007
- }
2008
- return errors;
2009
- };
2010
- const handleInputChange = (e) => {
2011
- const { name, value } = e.target;
2012
- setFormData((prev) => __spreadProps(__spreadValues({}, prev), {
2013
- [name]: value || ""
2014
- }));
2015
- if (formErrors[name]) {
2016
- setFormErrors((prev) => {
2017
- const newErrors = __spreadValues({}, prev);
2018
- delete newErrors[name];
2019
- return newErrors;
2020
- });
1415
+ return errors;
1416
+ };
1417
+ const handleInputChange = (e) => {
1418
+ const { name, value } = e.target;
1419
+ setFormData((prev) => __spreadProps(__spreadValues({}, prev), {
1420
+ [name]: value || ""
1421
+ }));
1422
+ if (formErrors[name]) {
1423
+ setFormErrors((prev) => {
1424
+ const newErrors = __spreadValues({}, prev);
1425
+ delete newErrors[name];
1426
+ return newErrors;
1427
+ });
2021
1428
  }
2022
1429
  };
2023
1430
  const handleBlur = (e) => {
@@ -2089,14 +1496,14 @@ const ContactFormSection = ({ data, t, isDarkMode, consultationRequestService })
2089
1496
  `;
2090
1497
  return /* @__PURE__ */ jsxRuntimeExports.jsx(SectionWrapper, { isDarkMode, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "grid lg:grid-cols-3 gap-12", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "lg:col-span-4", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "bg-surface rounded-2xl p-8 shadow-lg border transition-colors duration-200", style: { borderColor: "var(--border-color)" }, children: [
2091
1498
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center mb-6", children: [
2092
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-10 h-10 rounded-lg bg-gradient-brand flex items-center justify-center mr-4", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Send, { size: 20, className: "text-white" }) }),
1499
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-10 h-10 rounded-lg bg-gradient-brand flex items-center justify-center mr-4", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactFormSend", className: "w-4 h-4 icon-gradient" }) }),
2093
1500
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
2094
1501
  /* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "text-subtitle font-bold text-main", children: t("form.title") || "Gửi yêu cầu tư vấn" }),
2095
1502
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-small text-muted", children: t("form.subtitle") || "Điền thông tin để nhận tư vấn miễn phí từ chuyên gia" })
2096
1503
  ] })
2097
1504
  ] }),
2098
1505
  submitStatus && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `mb-6 p-4 rounded-xl border transition-colors duration-200 ${submitStatus === "success" ? "bg-emerald-50 dark:bg-emerald-900/30 text-emerald-800 dark:text-emerald-300" : "bg-red-50 dark:bg-red-900/30 text-red-800 dark:text-red-300"}`, style: { borderColor: submitStatus === "success" ? "#10b981" : "#ef4444" }, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center", children: [
2099
- submitStatus === "success" ? /* @__PURE__ */ jsxRuntimeExports.jsx(CircleCheckBig, { size: 20, className: "mr-2 flex-shrink-0" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(CircleAlert, { size: 20, className: "mr-2 flex-shrink-0" }),
1506
+ submitStatus === "success" ? /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactFormCheck", className: "w-4 h-4 icon-gradient" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", className: "w-4 h-4 icon-gradient" }),
2100
1507
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-small font-medium", children: submitMessage })
2101
1508
  ] }) }),
2102
1509
  /* @__PURE__ */ jsxRuntimeExports.jsxs("form", { onSubmit: handleSubmit, className: "space-y-6", children: [
@@ -2121,7 +1528,7 @@ const ContactFormSection = ({ data, t, isDarkMode, consultationRequestService })
2121
1528
  }
2122
1529
  ),
2123
1530
  formErrors.fullName && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-small text-red-500 flex items-center", children: [
2124
- /* @__PURE__ */ jsxRuntimeExports.jsx(CircleAlert, { size: 14, className: "mr-1" }),
1531
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", className: "w-4 h-4 icon-gradient" }),
2125
1532
  formErrors.fullName
2126
1533
  ] })
2127
1534
  ] }),
@@ -2145,7 +1552,7 @@ const ContactFormSection = ({ data, t, isDarkMode, consultationRequestService })
2145
1552
  }
2146
1553
  ),
2147
1554
  formErrors.workEmail && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-small text-red-500 flex items-center", children: [
2148
- /* @__PURE__ */ jsxRuntimeExports.jsx(CircleAlert, { size: 14, className: "mr-1" }),
1555
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", className: "w-4 h-4 icon-gradient" }),
2149
1556
  formErrors.workEmail
2150
1557
  ] })
2151
1558
  ] })
@@ -2167,7 +1574,7 @@ const ContactFormSection = ({ data, t, isDarkMode, consultationRequestService })
2167
1574
  }
2168
1575
  ),
2169
1576
  formErrors.phoneNumber && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-small text-red-500 flex items-center", children: [
2170
- /* @__PURE__ */ jsxRuntimeExports.jsx(CircleAlert, { size: 14, className: "mr-1" }),
1577
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", className: "w-4 h-4 icon-gradient" }),
2171
1578
  formErrors.phoneNumber
2172
1579
  ] })
2173
1580
  ] }),
@@ -2187,7 +1594,7 @@ const ContactFormSection = ({ data, t, isDarkMode, consultationRequestService })
2187
1594
  }
2188
1595
  ),
2189
1596
  formErrors.companyName && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-small text-red-500 flex items-center", children: [
2190
- /* @__PURE__ */ jsxRuntimeExports.jsx(CircleAlert, { size: 14, className: "mr-1" }),
1597
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", className: "w-4 h-4 icon-gradient" }),
2191
1598
  formErrors.companyName
2192
1599
  ] })
2193
1600
  ] })
@@ -2209,7 +1616,7 @@ const ContactFormSection = ({ data, t, isDarkMode, consultationRequestService })
2209
1616
  }
2210
1617
  ),
2211
1618
  formErrors.jobTitle && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-small text-red-500 flex items-center", children: [
2212
- /* @__PURE__ */ jsxRuntimeExports.jsx(CircleAlert, { size: 14, className: "mr-1" }),
1619
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", className: "w-4 h-4 icon-gradient" }),
2213
1620
  formErrors.jobTitle
2214
1621
  ] })
2215
1622
  ] }),
@@ -2281,7 +1688,7 @@ const ContactFormSection = ({ data, t, isDarkMode, consultationRequestService })
2281
1688
  }
2282
1689
  ),
2283
1690
  formErrors.requestTitle && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-small text-red-500 flex items-center", children: [
2284
- /* @__PURE__ */ jsxRuntimeExports.jsx(CircleAlert, { size: 14, className: "mr-1" }),
1691
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", className: "w-4 h-4 icon-gradient" }),
2285
1692
  formErrors.requestTitle
2286
1693
  ] })
2287
1694
  ] }),
@@ -2305,7 +1712,7 @@ const ContactFormSection = ({ data, t, isDarkMode, consultationRequestService })
2305
1712
  }
2306
1713
  ),
2307
1714
  formErrors.requestDescription && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-small text-red-500 flex items-center", children: [
2308
- /* @__PURE__ */ jsxRuntimeExports.jsx(CircleAlert, { size: 14, className: "mr-1" }),
1715
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", className: "w-4 h-4 icon-gradient" }),
2309
1716
  formErrors.requestDescription
2310
1717
  ] })
2311
1718
  ] }),
@@ -2316,10 +1723,10 @@ const ContactFormSection = ({ data, t, isDarkMode, consultationRequestService })
2316
1723
  disabled: isSubmitting,
2317
1724
  className: "flex-1 btn-primary text-white py-4 px-6 rounded-xl transition-all disabled:opacity-50 disabled:cursor-not-allowed flex items-center justify-center font-semibold",
2318
1725
  children: isSubmitting ? /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
2319
- /* @__PURE__ */ jsxRuntimeExports.jsx(LoaderCircle, { className: "animate-spin h-5 w-5 mr-2" }),
1726
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormLoader2", className: "w-4 h-4 icon-muted" }),
2320
1727
  t("form.submitting") || "Đang gửi..."
2321
1728
  ] }) : /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
2322
- /* @__PURE__ */ jsxRuntimeExports.jsx(Send, { size: 20, className: "mr-2" }),
1729
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactFormSend", className: "w-4 h-4 icon-gradient" }),
2323
1730
  t("form.submit") || "Gửi yêu cầu"
2324
1731
  ] })
2325
1732
  }
@@ -2334,7 +1741,7 @@ const ContactInfoSection = ({ data, t, isDarkMode, section }) => {
2334
1741
  if (!contactData.length) return null;
2335
1742
  return /* @__PURE__ */ jsxRuntimeExports.jsx(SectionWrapper, { isDarkMode, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: [
2336
1743
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-center mb-12", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "inline-flex items-center px-4 py-2 rounded-full text-lg font-semibold mb-4 bg-surface", style: { borderWidth: "1px", borderColor: "var(--border-color)" }, children: [
2337
- /* @__PURE__ */ jsxRuntimeExports.jsx(User, { size: 22, className: "mr-2 text-brand-primary" }),
1744
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoUser", className: "w-4 h-4 icon-gradient" }),
2338
1745
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-main", children: sectionTitle })
2339
1746
  ] }) }),
2340
1747
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "grid md:grid-cols-2 lg:grid-cols-3 gap-8", children: contactData.map((contact, index2) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "card", children: [
@@ -2347,7 +1754,7 @@ const ContactInfoSection = ({ data, t, isDarkMode, section }) => {
2347
1754
  display: "flex",
2348
1755
  alignItems: "center",
2349
1756
  justifyContent: "center"
2350
- }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(User, { size: 32, style: { color: "white" } }) }),
1757
+ }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoUser", className: "w-4 h-4 icon-gradient" }) }),
2351
1758
  /* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "card-title text-subtitle mb-2", children: contact.name }),
2352
1759
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "inline-block px-3 py-1 rounded-full text-small font-semibold bg-surface text-brand-primary", style: { borderWidth: "1px", borderColor: "var(--border-color)" }, children: contact.position })
2353
1760
  ] }),
@@ -2374,7 +1781,7 @@ const ContactInfoSection = ({ data, t, isDarkMode, section }) => {
2374
1781
  alignItems: "center",
2375
1782
  justifyContent: "center",
2376
1783
  marginRight: "0.75rem"
2377
- }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Phone, { size: 18, style: { color: "white" } }) }),
1784
+ }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoPhone", className: "w-4 h-4 icon-gradient" }) }),
2378
1785
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { flex: 1 }, children: [
2379
1786
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-small text-muted", style: { marginBottom: "0.25rem" }, children: t("contact.info.phone") || "Điện thoại" }),
2380
1787
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-body text-main", style: { fontWeight: 600 }, children: contact.phone })
@@ -2404,7 +1811,7 @@ const ContactInfoSection = ({ data, t, isDarkMode, section }) => {
2404
1811
  alignItems: "center",
2405
1812
  justifyContent: "center",
2406
1813
  marginRight: "0.75rem"
2407
- }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Mail, { size: 18, style: { color: "white" } }) }),
1814
+ }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoEmail", className: "w-4 h-4 icon-gradient" }) }),
2408
1815
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { flex: 1 }, children: [
2409
1816
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-small text-muted", style: { marginBottom: "0.25rem" }, children: "Email" }),
2410
1817
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-body text-main", style: { fontWeight: 600 }, children: contact.email })
@@ -2429,7 +1836,7 @@ const ContactInfoSection = ({ data, t, isDarkMode, section }) => {
2429
1836
  alignItems: "center",
2430
1837
  justifyContent: "center",
2431
1838
  marginRight: "0.75rem"
2432
- }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Clock, { size: 18, style: { color: "white" } }) }),
1839
+ }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoClock", className: "w-4 h-4 icon-muted" }) }),
2433
1840
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { flex: 1 }, children: [
2434
1841
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-small text-muted", style: { marginBottom: "0.25rem" }, children: t("contact.info.workingHours") || "Giờ làm việc" }),
2435
1842
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-body text-main", style: { fontWeight: 600 }, children: contact.workingHours || t("contact.info.defaultWorkingHours") || "T2-T6: 8:00-18:00" })
@@ -2487,7 +1894,7 @@ const ContactListAutoSection = ({ data, t, isDarkMode, getContactList, section }
2487
1894
  }
2488
1895
  return /* @__PURE__ */ jsxRuntimeExports.jsx(SectionWrapper, { isDarkMode, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: [
2489
1896
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-center mb-12", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "inline-flex items-center px-4 py-2 rounded-full text-lg font-semibold mb-4 bg-surface", style: { borderWidth: "1px", borderColor: "var(--border-color)" }, children: [
2490
- /* @__PURE__ */ jsxRuntimeExports.jsx(User, { size: 22, className: "mr-2 text-brand-primary" }),
1897
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoUser", className: "w-4 h-4 icon-gradient" }),
2491
1898
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-main", children: sectionTitle })
2492
1899
  ] }) }),
2493
1900
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "grid md:grid-cols-2 lg:grid-cols-3 gap-8", children: contacts.map((contact, index2) => /* @__PURE__ */ jsxRuntimeExports.jsx(ContactCard, { contact, t, isDarkMode }, contact.id || index2)) })
@@ -2504,7 +1911,7 @@ const ContactCard = ({ contact, t, isDarkMode }) => {
2504
1911
  display: "flex",
2505
1912
  alignItems: "center",
2506
1913
  justifyContent: "center"
2507
- }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(User, { size: 32, style: { color: "white" } }) }),
1914
+ }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoUser", className: "w-4 h-4 icon-gradient" }) }),
2508
1915
  /* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "card-title text-subtitle mb-2", children: contact.name || t("contactList.card.noName") || "Không có tên" }),
2509
1916
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "inline-block px-3 py-1 rounded-full text-small font-semibold bg-surface text-brand-primary", style: { borderWidth: "1px", borderColor: "var(--border-color)" }, children: contact.position || t("contactList.card.noPosition") || "Chưa có chức vụ" })
2510
1917
  ] }),
@@ -2531,7 +1938,7 @@ const ContactCard = ({ contact, t, isDarkMode }) => {
2531
1938
  alignItems: "center",
2532
1939
  justifyContent: "center",
2533
1940
  marginRight: "0.75rem"
2534
- }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Phone, { size: 18, style: { color: "white" } }) }),
1941
+ }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoPhone", className: "w-4 h-4 icon-gradient" }) }),
2535
1942
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { flex: 1 }, children: [
2536
1943
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-small text-muted", style: { marginBottom: "0.25rem" }, children: t("contactList.card.phone") || "Điện thoại" }),
2537
1944
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-body text-main", style: { fontWeight: 600 }, children: contact.phone })
@@ -2561,7 +1968,7 @@ const ContactCard = ({ contact, t, isDarkMode }) => {
2561
1968
  alignItems: "center",
2562
1969
  justifyContent: "center",
2563
1970
  marginRight: "0.75rem"
2564
- }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Mail, { size: 18, style: { color: "white" } }) }),
1971
+ }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoEmail", className: "w-4 h-4 icon-gradient" }) }),
2565
1972
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { flex: 1 }, children: [
2566
1973
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-small text-muted", style: { marginBottom: "0.25rem" }, children: "Email" }),
2567
1974
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-body text-main", style: { fontWeight: 600 }, children: contact.email })
@@ -2586,7 +1993,7 @@ const ContactCard = ({ contact, t, isDarkMode }) => {
2586
1993
  alignItems: "center",
2587
1994
  justifyContent: "center",
2588
1995
  marginRight: "0.75rem"
2589
- }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Clock, { size: 18, style: { color: "white" } }) }),
1996
+ }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoClock", className: "w-4 h-4 icon-muted" }) }),
2590
1997
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { flex: 1 }, children: [
2591
1998
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-small text-muted", style: { marginBottom: "0.25rem" }, children: t("contactList.card.workingHours") || "Giờ làm việc" }),
2592
1999
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-body text-main", style: { fontWeight: 600 }, children: contact.workingHours || t("contactList.card.defaultWorkingHours") || "T2-T6: 8:00-18:00" })
@@ -2679,7 +2086,8 @@ const CustomerFeedbackAutoSection = ({ data, t, isDarkMode, loadCustomerFeedback
2679
2086
  {
2680
2087
  className: "\r\n inline-block px-4 py-2 rounded-full text-lg font-semibold mb-4 \r\n border shadow-sm \r\n section-badge\r\n ",
2681
2088
  children: [
2682
- "💬 ",
2089
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-testimonials", folder: "TestimonialsSection", className: "w-4 h-4 icon-gradient" }),
2090
+ " ",
2683
2091
  sectionTitle
2684
2092
  ]
2685
2093
  }
@@ -2696,7 +2104,7 @@ const CustomerFeedbackAutoSection = ({ data, t, isDarkMode, loadCustomerFeedback
2696
2104
  '"'
2697
2105
  ] }),
2698
2106
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-center space-x-4", children: [
2699
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-3xl", children: "👤" }),
2107
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-3xl", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-testimonialsUser", folder: "TestimonialsSection", className: "w-4 h-4 icon-gradient" }) }),
2700
2108
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-left", children: [
2701
2109
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "card-title text-base mb-1", children: currentFeedback.customerName }),
2702
2110
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "card-link text-sm", children: currentFeedback.customerTitle }),
@@ -2734,264 +2142,761 @@ const CustomerFeedbackAutoSection = ({ data, t, isDarkMode, loadCustomerFeedback
2734
2142
  opacity: 1;
2735
2143
  transform: translateY(0);
2736
2144
  }
2737
- }
2738
- ` })
2739
- ] });
2145
+ }
2146
+ ` })
2147
+ ] });
2148
+ };
2149
+ const ProductListSection = ({ data, t, isDarkMode, getProductList }) => {
2150
+ const [products, setProducts] = useState([]);
2151
+ const [loading, setLoading] = useState(true);
2152
+ const [error, setError] = useState(null);
2153
+ useEffect(() => {
2154
+ const fetchProducts = () => __async(null, null, function* () {
2155
+ try {
2156
+ setLoading(true);
2157
+ const result = yield getProductList();
2158
+ if (result.success) {
2159
+ setProducts(result.data || []);
2160
+ } else {
2161
+ setError(result.error || t("productList.errors.loadFailed"));
2162
+ }
2163
+ } catch (err) {
2164
+ console.error("Error fetching products:", err);
2165
+ setError(t("productList.errors.loadError"));
2166
+ } finally {
2167
+ setLoading(false);
2168
+ }
2169
+ });
2170
+ fetchProducts();
2171
+ }, [t]);
2172
+ if (loading) {
2173
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `py-16 px-5 text-center ${isDarkMode ? "bg-gray-900" : "bg-gray-50"}`, children: [
2174
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `inline-block w-10 h-10 border-4 ${isDarkMode ? "border-gray-600 border-t-blue-400" : "border-gray-300 border-t-blue-500"} rounded-full animate-spin` }),
2175
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: `mt-2.5 text-base ${isDarkMode ? "text-gray-400" : "text-gray-600"}`, children: t("productList.loading") })
2176
+ ] });
2177
+ }
2178
+ if (error) {
2179
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `py-16 px-5 text-center ${isDarkMode ? "bg-gray-900" : "bg-gray-50"}`, children: [
2180
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-red-500 text-5xl mb-4", children: "⚠️" }),
2181
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-red-500 text-base m-0", children: error })
2182
+ ] });
2183
+ }
2184
+ if (!products || products.length === 0) {
2185
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `py-16 px-5 text-center ${isDarkMode ? "bg-gray-900" : "bg-gray-50"}`, children: [
2186
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `text-5xl mb-4 ${isDarkMode ? "text-gray-400" : "text-gray-500"}`, children: "📦" }),
2187
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: `text-base m-0 ${isDarkMode ? "text-gray-400" : "text-gray-600"}`, children: t("productList.noProducts") })
2188
+ ] });
2189
+ }
2190
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `py-16 px-5 transition-colors duration-300 ${isDarkMode ? "bg-gray-900" : "bg-gray-50"}`, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "max-w-6xl mx-auto", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-8 items-start", children: products.map((product, index2) => /* @__PURE__ */ jsxRuntimeExports.jsx(ProductCard, { product, t, isDarkMode }, product.id || index2)) }) }) });
2191
+ };
2192
+ const ProductCard = ({ product, t, isDarkMode }) => {
2193
+ var _a, _b, _c, _d, _e, _f, _g;
2194
+ const [activeTab, setActiveTab] = useState("overview");
2195
+ const [isHovered, setIsHovered] = useState(false);
2196
+ const mainImage = ((_b = (_a = product.images) == null ? void 0 : _a.find((img) => img.isMain)) == null ? void 0 : _b.imageUrl) || ((_d = (_c = product.images) == null ? void 0 : _c[0]) == null ? void 0 : _d.imageUrl) || "/placeholder-product.png";
2197
+ const tabs = [
2198
+ { id: "overview", label: t("productCard.tabs.overview"), count: null },
2199
+ { id: "features", label: t("productCard.tabs.features"), count: ((_e = product.features) == null ? void 0 : _e.length) || 0 },
2200
+ { id: "contacts", label: t("productCard.tabs.contacts"), count: ((_f = product.contacts) == null ? void 0 : _f.length) || 0 },
2201
+ { id: "downloads", label: t("productCard.tabs.downloads"), count: ((_g = product.productDownloads) == null ? void 0 : _g.length) || 0 }
2202
+ ];
2203
+ const renderOverview = () => /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "p-5", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
2204
+ "div",
2205
+ {
2206
+ className: `text-sm leading-relaxed ${isDarkMode ? "text-gray-300" : "text-gray-700"}`,
2207
+ dangerouslySetInnerHTML: {
2208
+ __html: product.overviewContent || product.description || t("productCard.noOverview")
2209
+ }
2210
+ }
2211
+ ) });
2212
+ const renderFeatures = () => {
2213
+ const features = product.features || [];
2214
+ if (features.length === 0) {
2215
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `p-5 text-center ${isDarkMode ? "text-gray-400" : "text-gray-600"}`, children: /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "m-0", children: t("productCard.noFeatures") }) });
2216
+ }
2217
+ const sortedFeatures = [...features].sort((a, b) => (a.order || 0) - (b.order || 0));
2218
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "p-5", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-col gap-4", children: sortedFeatures.map((feature, index2) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
2219
+ "div",
2220
+ {
2221
+ className: `p-4 rounded-lg border-l-4 border-blue-500 ${isDarkMode ? "bg-gray-700" : "bg-gray-100"}`,
2222
+ children: [
2223
+ /* @__PURE__ */ jsxRuntimeExports.jsx("h4", { className: `m-0 mb-2 text-sm font-bold ${isDarkMode ? "text-white" : "text-gray-900"}`, children: feature.title }),
2224
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: `m-0 text-xs leading-relaxed ${isDarkMode ? "text-gray-400" : "text-gray-600"}`, children: feature.description })
2225
+ ]
2226
+ },
2227
+ index2
2228
+ )) }) });
2229
+ };
2230
+ const renderContacts = () => {
2231
+ const contacts = product.contacts || [];
2232
+ if (contacts.length === 0) {
2233
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `p-5 text-center ${isDarkMode ? "text-gray-400" : "text-gray-600"}`, children: /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "m-0", children: t("productCard.noContacts") }) });
2234
+ }
2235
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "p-5", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-col gap-4", children: contacts.map((contact, index2) => {
2236
+ var _a2, _b2;
2237
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(
2238
+ "div",
2239
+ {
2240
+ className: `p-4 rounded-lg border ${isDarkMode ? "bg-gray-700 border-gray-600" : "bg-gray-100 border-gray-200"}`,
2241
+ children: [
2242
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center mb-2", children: [
2243
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `w-10 h-10 rounded-full flex items-center justify-center mr-3 ${isDarkMode ? "bg-blue-600" : "bg-blue-500"}`, children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-white font-bold text-base", children: ((_b2 = (_a2 = contact.name) == null ? void 0 : _a2.charAt(0)) == null ? void 0 : _b2.toUpperCase()) || "?" }) }),
2244
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
2245
+ /* @__PURE__ */ jsxRuntimeExports.jsx("h4", { className: `m-0 mb-0.5 text-sm font-bold ${isDarkMode ? "text-white" : "text-gray-900"}`, children: contact.name }),
2246
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: `m-0 text-xs ${isDarkMode ? "text-gray-400" : "text-gray-600"}`, children: contact.position })
2247
+ ] })
2248
+ ] }),
2249
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-1", children: [
2250
+ contact.phone && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2", children: [
2251
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: `text-sm ${isDarkMode ? "text-blue-400" : "text-blue-500"}`, children: "📞" }),
2252
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
2253
+ "a",
2254
+ {
2255
+ href: `tel:${contact.phone}`,
2256
+ className: `text-xs no-underline hover:underline ${isDarkMode ? "text-blue-400" : "text-blue-500"}`,
2257
+ children: contact.phone
2258
+ }
2259
+ )
2260
+ ] }),
2261
+ contact.email && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2", children: [
2262
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: `text-sm ${isDarkMode ? "text-blue-400" : "text-blue-500"}`, children: "✉️" }),
2263
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
2264
+ "a",
2265
+ {
2266
+ href: `mailto:${contact.email}`,
2267
+ className: `text-xs no-underline hover:underline ${isDarkMode ? "text-blue-400" : "text-blue-500"}`,
2268
+ children: contact.email
2269
+ }
2270
+ )
2271
+ ] })
2272
+ ] })
2273
+ ]
2274
+ },
2275
+ contact.id || index2
2276
+ );
2277
+ }) }) });
2278
+ };
2279
+ const renderDownloads = () => {
2280
+ const downloads = product.productDownloads || [];
2281
+ if (downloads.length === 0) {
2282
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `p-5 text-center ${isDarkMode ? "text-gray-400" : "text-gray-600"}`, children: /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "m-0", children: t("productCard.noDownloads") }) });
2283
+ }
2284
+ const handleDownload = (fileUrl, title) => {
2285
+ try {
2286
+ const link = document.createElement("a");
2287
+ link.href = fileUrl;
2288
+ link.download = title || "download";
2289
+ link.target = "_blank";
2290
+ document.body.appendChild(link);
2291
+ link.click();
2292
+ document.body.removeChild(link);
2293
+ } catch (error) {
2294
+ console.error("Download error:", error);
2295
+ }
2296
+ };
2297
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "p-5", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-col gap-3", children: downloads.map((download, index2) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
2298
+ "div",
2299
+ {
2300
+ onClick: () => handleDownload(download.fileUrl, download.title),
2301
+ className: `p-4 rounded-lg border cursor-pointer flex items-center gap-3 transition-all duration-200 hover:translate-x-1 ${isDarkMode ? "bg-gray-700 border-gray-600 hover:bg-gray-600" : "bg-gray-100 border-gray-200 hover:bg-gray-200"}`,
2302
+ children: [
2303
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `w-10 h-10 rounded-lg flex items-center justify-center flex-shrink-0 ${isDarkMode ? "bg-blue-600" : "bg-blue-500"}`, children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-white text-lg", children: "📄" }) }),
2304
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex-1 min-w-0", children: [
2305
+ /* @__PURE__ */ jsxRuntimeExports.jsx("h4", { className: `m-0 mb-1 text-sm font-bold overflow-hidden text-ellipsis whitespace-nowrap ${isDarkMode ? "text-white" : "text-gray-900"}`, children: download.title }),
2306
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: `m-0 text-xs ${isDarkMode ? "text-gray-400" : "text-gray-600"}`, children: t("productCard.downloadClick") })
2307
+ ] }),
2308
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `flex-shrink-0 text-base ${isDarkMode ? "text-blue-400" : "text-blue-500"}`, children: "⬇️" })
2309
+ ]
2310
+ },
2311
+ index2
2312
+ )) }) });
2313
+ };
2314
+ const renderTabContent = () => {
2315
+ switch (activeTab) {
2316
+ case "overview":
2317
+ return renderOverview();
2318
+ case "features":
2319
+ return renderFeatures();
2320
+ case "contacts":
2321
+ return renderContacts();
2322
+ case "downloads":
2323
+ return renderDownloads();
2324
+ default:
2325
+ return null;
2326
+ }
2327
+ };
2328
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(
2329
+ "div",
2330
+ {
2331
+ className: `
2332
+ rounded-xl overflow-hidden cursor-pointer transition-all duration-300 border
2333
+ ${isDarkMode ? "bg-gray-800 border-gray-700" : "bg-white border-gray-200"}
2334
+ ${isHovered ? `shadow-xl -translate-y-2 ${isDarkMode ? "shadow-gray-900/40" : "shadow-gray-500/20"}` : `shadow-lg ${isDarkMode ? "shadow-gray-900/20" : "shadow-gray-500/10"}`}
2335
+ `,
2336
+ onMouseEnter: () => setIsHovered(true),
2337
+ onMouseLeave: () => setIsHovered(false),
2338
+ children: [
2339
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
2340
+ "div",
2341
+ {
2342
+ className: `relative h-48 bg-cover bg-center ${isDarkMode ? "bg-gray-700" : "bg-gray-200"}`,
2343
+ style: {
2344
+ backgroundImage: `url(${mainImage})`
2345
+ },
2346
+ children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/70 via-black/30 to-transparent p-5 text-white", children: [
2347
+ /* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "m-0 mb-2 text-lg font-bold", children: product.name }),
2348
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "m-0 text-sm opacity-90", children: product.description })
2349
+ ] })
2350
+ }
2351
+ ),
2352
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `border-b ${isDarkMode ? "border-gray-600" : "border-gray-200"}`, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex overflow-x-auto", children: tabs.map((tab) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
2353
+ "button",
2354
+ {
2355
+ onClick: () => setActiveTab(tab.id),
2356
+ className: `
2357
+ flex-1 min-w-[100px] py-4 px-2 border-none text-xs font-medium cursor-pointer transition-all duration-300 flex items-center justify-center gap-1
2358
+ ${activeTab === tab.id ? `${isDarkMode ? "bg-blue-600" : "bg-blue-500"} text-white font-bold` : `bg-transparent ${isDarkMode ? "text-gray-400 hover:bg-gray-700" : "text-gray-600 hover:bg-gray-100"}`}
2359
+ `,
2360
+ children: [
2361
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: tab.label }),
2362
+ tab.count !== null && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: `
2363
+ text-xs py-0.5 px-1.5 rounded-full min-w-[18px] text-center
2364
+ ${activeTab === tab.id ? "bg-white/20 text-white" : `${isDarkMode ? "bg-gray-600 text-gray-400" : "bg-gray-200 text-gray-600"}`}
2365
+ `, children: tab.count })
2366
+ ]
2367
+ },
2368
+ tab.id
2369
+ )) }) }),
2370
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "min-h-[200px] max-h-[300px] overflow-y-auto", children: renderTabContent() })
2371
+ ]
2372
+ }
2373
+ );
2740
2374
  };
2741
- const ProductListSection = ({ data, t, isDarkMode, getProductList }) => {
2742
- const [products, setProducts] = useState([]);
2743
- const [loading, setLoading] = useState(true);
2744
- const [error, setError] = useState(null);
2745
- useEffect(() => {
2746
- const fetchProducts = () => __async(null, null, function* () {
2747
- try {
2748
- setLoading(true);
2749
- const result = yield getProductList();
2750
- if (result.success) {
2751
- setProducts(result.data || []);
2752
- } else {
2753
- setError(result.error || t("productList.errors.loadFailed"));
2754
- }
2755
- } catch (err) {
2756
- console.error("Error fetching products:", err);
2757
- setError(t("productList.errors.loadError"));
2758
- } finally {
2759
- setLoading(false);
2760
- }
2761
- });
2762
- fetchProducts();
2763
- }, [t]);
2764
- if (loading) {
2765
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `py-16 px-5 text-center ${isDarkMode ? "bg-gray-900" : "bg-gray-50"}`, children: [
2766
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `inline-block w-10 h-10 border-4 ${isDarkMode ? "border-gray-600 border-t-blue-400" : "border-gray-300 border-t-blue-500"} rounded-full animate-spin` }),
2767
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: `mt-2.5 text-base ${isDarkMode ? "text-gray-400" : "text-gray-600"}`, children: t("productList.loading") })
2768
- ] });
2769
- }
2770
- if (error) {
2771
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `py-16 px-5 text-center ${isDarkMode ? "bg-gray-900" : "bg-gray-50"}`, children: [
2772
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-red-500 text-5xl mb-4", children: "⚠️" }),
2773
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-red-500 text-base m-0", children: error })
2774
- ] });
2375
+ const TextWithTitleSection = ({ section, data, isDarkMode }) => {
2376
+ var _a;
2377
+ const textItems = (data == null ? void 0 : data.sectionDataBindingItems) || [];
2378
+ const title = ((_a = textItems[0]) == null ? void 0 : _a.value) || "";
2379
+ const descriptions = textItems.slice(1);
2380
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(SectionWrapper, { isDarkMode, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "max-w-6xl mx-auto", children: [
2381
+ title && /* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "text-title font-black mb-4 leading-tight text-left text-main", children: title }),
2382
+ descriptions.map((item, index2) => /* @__PURE__ */ jsxRuntimeExports.jsx(
2383
+ "div",
2384
+ {
2385
+ className: `text-body leading-relaxed text-left font-normal text-muted ${index2 < descriptions.length - 1 ? "mb-4" : ""}`,
2386
+ children: item.value
2387
+ },
2388
+ item.id || index2
2389
+ ))
2390
+ ] }) });
2391
+ };
2392
+ const TextSection = ({ data, isDarkMode }) => {
2393
+ const textItems = (data == null ? void 0 : data.sectionDataBindingItems) || [];
2394
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(SectionWrapper, { isDarkMode, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "max-w-3xl mx-auto", children: textItems.map((item, index2) => /* @__PURE__ */ jsxRuntimeExports.jsx(
2395
+ "div",
2396
+ {
2397
+ className: "mb-5 text-subtitle font-black leading-snug text-left text-main",
2398
+ children: item.value
2399
+ },
2400
+ item.id || index2
2401
+ )) }) });
2402
+ };
2403
+ /**
2404
+ * @license lucide-react v0.536.0 - ISC
2405
+ *
2406
+ * This source code is licensed under the ISC license.
2407
+ * See the LICENSE file in the root directory of this source tree.
2408
+ */
2409
+ const toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
2410
+ const toCamelCase = (string) => string.replace(
2411
+ /^([A-Z])|[\s-_]+(\w)/g,
2412
+ (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()
2413
+ );
2414
+ const toPascalCase = (string) => {
2415
+ const camelCase = toCamelCase(string);
2416
+ return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);
2417
+ };
2418
+ const mergeClasses = (...classes) => classes.filter((className, index2, array) => {
2419
+ return Boolean(className) && className.trim() !== "" && array.indexOf(className) === index2;
2420
+ }).join(" ").trim();
2421
+ const hasA11yProp = (props) => {
2422
+ for (const prop in props) {
2423
+ if (prop.startsWith("aria-") || prop === "role" || prop === "title") {
2424
+ return true;
2425
+ }
2775
2426
  }
2776
- if (!products || products.length === 0) {
2777
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `py-16 px-5 text-center ${isDarkMode ? "bg-gray-900" : "bg-gray-50"}`, children: [
2778
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `text-5xl mb-4 ${isDarkMode ? "text-gray-400" : "text-gray-500"}`, children: "📦" }),
2779
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: `text-base m-0 ${isDarkMode ? "text-gray-400" : "text-gray-600"}`, children: t("productList.noProducts") })
2780
- ] });
2427
+ };
2428
+ /**
2429
+ * @license lucide-react v0.536.0 - ISC
2430
+ *
2431
+ * This source code is licensed under the ISC license.
2432
+ * See the LICENSE file in the root directory of this source tree.
2433
+ */
2434
+ var defaultAttributes = {
2435
+ xmlns: "http://www.w3.org/2000/svg",
2436
+ width: 24,
2437
+ height: 24,
2438
+ viewBox: "0 0 24 24",
2439
+ fill: "none",
2440
+ stroke: "currentColor",
2441
+ strokeWidth: 2,
2442
+ strokeLinecap: "round",
2443
+ strokeLinejoin: "round"
2444
+ };
2445
+ /**
2446
+ * @license lucide-react v0.536.0 - ISC
2447
+ *
2448
+ * This source code is licensed under the ISC license.
2449
+ * See the LICENSE file in the root directory of this source tree.
2450
+ */
2451
+ const Icon = forwardRef(
2452
+ (_a, ref) => {
2453
+ var _b = _a, {
2454
+ color = "currentColor",
2455
+ size = 24,
2456
+ strokeWidth = 2,
2457
+ absoluteStrokeWidth,
2458
+ className = "",
2459
+ children,
2460
+ iconNode
2461
+ } = _b, rest = __objRest(_b, [
2462
+ "color",
2463
+ "size",
2464
+ "strokeWidth",
2465
+ "absoluteStrokeWidth",
2466
+ "className",
2467
+ "children",
2468
+ "iconNode"
2469
+ ]);
2470
+ return createElement(
2471
+ "svg",
2472
+ __spreadValues(__spreadValues(__spreadProps(__spreadValues({
2473
+ ref
2474
+ }, defaultAttributes), {
2475
+ width: size,
2476
+ height: size,
2477
+ stroke: color,
2478
+ strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,
2479
+ className: mergeClasses("lucide", className)
2480
+ }), !children && !hasA11yProp(rest) && { "aria-hidden": "true" }), rest),
2481
+ [
2482
+ ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),
2483
+ ...Array.isArray(children) ? children : [children]
2484
+ ]
2485
+ );
2781
2486
  }
2782
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `py-16 px-5 transition-colors duration-300 ${isDarkMode ? "bg-gray-900" : "bg-gray-50"}`, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "max-w-6xl mx-auto", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-8 items-start", children: products.map((product, index2) => /* @__PURE__ */ jsxRuntimeExports.jsx(ProductCard, { product, t, isDarkMode }, product.id || index2)) }) }) });
2487
+ );
2488
+ /**
2489
+ * @license lucide-react v0.536.0 - ISC
2490
+ *
2491
+ * This source code is licensed under the ISC license.
2492
+ * See the LICENSE file in the root directory of this source tree.
2493
+ */
2494
+ const createLucideIcon = (iconName, iconNode) => {
2495
+ const Component = forwardRef(
2496
+ (_a, ref) => {
2497
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2498
+ return createElement(Icon, __spreadValues({
2499
+ ref,
2500
+ iconNode,
2501
+ className: mergeClasses(
2502
+ `lucide-${toKebabCase(toPascalCase(iconName))}`,
2503
+ `lucide-${iconName}`,
2504
+ className
2505
+ )
2506
+ }, props));
2507
+ }
2508
+ );
2509
+ Component.displayName = toPascalCase(iconName);
2510
+ return Component;
2783
2511
  };
2784
- const ProductCard = ({ product, t, isDarkMode }) => {
2785
- var _a, _b, _c, _d, _e, _f, _g;
2786
- const [activeTab, setActiveTab] = useState("overview");
2787
- const [isHovered, setIsHovered] = useState(false);
2788
- const mainImage = ((_b = (_a = product.images) == null ? void 0 : _a.find((img) => img.isMain)) == null ? void 0 : _b.imageUrl) || ((_d = (_c = product.images) == null ? void 0 : _c[0]) == null ? void 0 : _d.imageUrl) || "/placeholder-product.png";
2789
- const tabs = [
2790
- { id: "overview", label: t("productCard.tabs.overview"), count: null },
2791
- { id: "features", label: t("productCard.tabs.features"), count: ((_e = product.features) == null ? void 0 : _e.length) || 0 },
2792
- { id: "contacts", label: t("productCard.tabs.contacts"), count: ((_f = product.contacts) == null ? void 0 : _f.length) || 0 },
2793
- { id: "downloads", label: t("productCard.tabs.downloads"), count: ((_g = product.productDownloads) == null ? void 0 : _g.length) || 0 }
2794
- ];
2795
- const renderOverview = () => /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "p-5", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
2796
- "div",
2512
+ /**
2513
+ * @license lucide-react v0.536.0 - ISC
2514
+ *
2515
+ * This source code is licensed under the ISC license.
2516
+ * See the LICENSE file in the root directory of this source tree.
2517
+ */
2518
+ const __iconNode$o = [
2519
+ ["path", { d: "M2 4v16", key: "vw9hq8" }],
2520
+ ["path", { d: "M2 8h18a2 2 0 0 1 2 2v10", key: "1dgv2r" }],
2521
+ ["path", { d: "M2 17h20", key: "18nfp3" }],
2522
+ ["path", { d: "M6 8v9", key: "1yriud" }]
2523
+ ];
2524
+ const Bed = createLucideIcon("bed", __iconNode$o);
2525
+ /**
2526
+ * @license lucide-react v0.536.0 - ISC
2527
+ *
2528
+ * This source code is licensed under the ISC license.
2529
+ * See the LICENSE file in the root directory of this source tree.
2530
+ */
2531
+ const __iconNode$n = [
2532
+ ["path", { d: "M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16", key: "jecpp" }],
2533
+ ["rect", { width: "20", height: "14", x: "2", y: "6", rx: "2", key: "i6l2r4" }]
2534
+ ];
2535
+ const Briefcase = createLucideIcon("briefcase", __iconNode$n);
2536
+ /**
2537
+ * @license lucide-react v0.536.0 - ISC
2538
+ *
2539
+ * This source code is licensed under the ISC license.
2540
+ * See the LICENSE file in the root directory of this source tree.
2541
+ */
2542
+ const __iconNode$m = [
2543
+ ["path", { d: "M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z", key: "1b4qmf" }],
2544
+ ["path", { d: "M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2", key: "i71pzd" }],
2545
+ ["path", { d: "M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2", key: "10jefs" }],
2546
+ ["path", { d: "M10 6h4", key: "1itunk" }],
2547
+ ["path", { d: "M10 10h4", key: "tcdvrf" }],
2548
+ ["path", { d: "M10 14h4", key: "kelpxr" }],
2549
+ ["path", { d: "M10 18h4", key: "1ulq68" }]
2550
+ ];
2551
+ const Building2 = createLucideIcon("building-2", __iconNode$m);
2552
+ /**
2553
+ * @license lucide-react v0.536.0 - ISC
2554
+ *
2555
+ * This source code is licensed under the ISC license.
2556
+ * See the LICENSE file in the root directory of this source tree.
2557
+ */
2558
+ const __iconNode$l = [
2559
+ ["rect", { width: "16", height: "20", x: "4", y: "2", rx: "2", ry: "2", key: "76otgf" }],
2560
+ ["path", { d: "M9 22v-4h6v4", key: "r93iot" }],
2561
+ ["path", { d: "M8 6h.01", key: "1dz90k" }],
2562
+ ["path", { d: "M16 6h.01", key: "1x0f13" }],
2563
+ ["path", { d: "M12 6h.01", key: "1vi96p" }],
2564
+ ["path", { d: "M12 10h.01", key: "1nrarc" }],
2565
+ ["path", { d: "M12 14h.01", key: "1etili" }],
2566
+ ["path", { d: "M16 10h.01", key: "1m94wz" }],
2567
+ ["path", { d: "M16 14h.01", key: "1gbofw" }],
2568
+ ["path", { d: "M8 10h.01", key: "19clt8" }],
2569
+ ["path", { d: "M8 14h.01", key: "6423bh" }]
2570
+ ];
2571
+ const Building = createLucideIcon("building", __iconNode$l);
2572
+ /**
2573
+ * @license lucide-react v0.536.0 - ISC
2574
+ *
2575
+ * This source code is licensed under the ISC license.
2576
+ * See the LICENSE file in the root directory of this source tree.
2577
+ */
2578
+ const __iconNode$k = [
2579
+ ["rect", { width: "16", height: "20", x: "4", y: "2", rx: "2", key: "1nb95v" }],
2580
+ ["line", { x1: "8", x2: "16", y1: "6", y2: "6", key: "x4nwl0" }],
2581
+ ["line", { x1: "16", x2: "16", y1: "14", y2: "18", key: "wjye3r" }],
2582
+ ["path", { d: "M16 10h.01", key: "1m94wz" }],
2583
+ ["path", { d: "M12 10h.01", key: "1nrarc" }],
2584
+ ["path", { d: "M8 10h.01", key: "19clt8" }],
2585
+ ["path", { d: "M12 14h.01", key: "1etili" }],
2586
+ ["path", { d: "M8 14h.01", key: "6423bh" }],
2587
+ ["path", { d: "M12 18h.01", key: "mhygvu" }],
2588
+ ["path", { d: "M8 18h.01", key: "lrp35t" }]
2589
+ ];
2590
+ const Calculator = createLucideIcon("calculator", __iconNode$k);
2591
+ /**
2592
+ * @license lucide-react v0.536.0 - ISC
2593
+ *
2594
+ * This source code is licensed under the ISC license.
2595
+ * See the LICENSE file in the root directory of this source tree.
2596
+ */
2597
+ const __iconNode$j = [
2598
+ ["path", { d: "M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z", key: "p7xjir" }]
2599
+ ];
2600
+ const Cloud = createLucideIcon("cloud", __iconNode$j);
2601
+ /**
2602
+ * @license lucide-react v0.536.0 - ISC
2603
+ *
2604
+ * This source code is licensed under the ISC license.
2605
+ * See the LICENSE file in the root directory of this source tree.
2606
+ */
2607
+ const __iconNode$i = [
2608
+ ["ellipse", { cx: "12", cy: "5", rx: "9", ry: "3", key: "msslwz" }],
2609
+ ["path", { d: "M3 5V19A9 3 0 0 0 21 19V5", key: "1wlel7" }],
2610
+ ["path", { d: "M3 12A9 3 0 0 0 21 12", key: "mv7ke4" }]
2611
+ ];
2612
+ const Database = createLucideIcon("database", __iconNode$i);
2613
+ /**
2614
+ * @license lucide-react v0.536.0 - ISC
2615
+ *
2616
+ * This source code is licensed under the ISC license.
2617
+ * See the LICENSE file in the root directory of this source tree.
2618
+ */
2619
+ const __iconNode$h = [
2620
+ ["path", { d: "M12 16h.01", key: "1drbdi" }],
2621
+ ["path", { d: "M16 16h.01", key: "1f9h7w" }],
2622
+ [
2623
+ "path",
2797
2624
  {
2798
- className: `text-sm leading-relaxed ${isDarkMode ? "text-gray-300" : "text-gray-700"}`,
2799
- dangerouslySetInnerHTML: {
2800
- __html: product.overviewContent || product.description || t("productCard.noOverview")
2801
- }
2625
+ d: "M3 19a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V8.5a.5.5 0 0 0-.769-.422l-4.462 2.844A.5.5 0 0 1 15 10.5v-2a.5.5 0 0 0-.769-.422L9.77 10.922A.5.5 0 0 1 9 10.5V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2z",
2626
+ key: "1iv0i2"
2802
2627
  }
2803
- ) });
2804
- const renderFeatures = () => {
2805
- const features = product.features || [];
2806
- if (features.length === 0) {
2807
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `p-5 text-center ${isDarkMode ? "text-gray-400" : "text-gray-600"}`, children: /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "m-0", children: t("productCard.noFeatures") }) });
2628
+ ],
2629
+ ["path", { d: "M8 16h.01", key: "18s6g9" }]
2630
+ ];
2631
+ const Factory = createLucideIcon("factory", __iconNode$h);
2632
+ /**
2633
+ * @license lucide-react v0.536.0 - ISC
2634
+ *
2635
+ * This source code is licensed under the ISC license.
2636
+ * See the LICENSE file in the root directory of this source tree.
2637
+ */
2638
+ const __iconNode$g = [
2639
+ ["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
2640
+ ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
2641
+ ["path", { d: "M10 9H8", key: "b1mrlr" }],
2642
+ ["path", { d: "M16 13H8", key: "t4e002" }],
2643
+ ["path", { d: "M16 17H8", key: "z1uh3a" }]
2644
+ ];
2645
+ const FileText = createLucideIcon("file-text", __iconNode$g);
2646
+ /**
2647
+ * @license lucide-react v0.536.0 - ISC
2648
+ *
2649
+ * This source code is licensed under the ISC license.
2650
+ * See the LICENSE file in the root directory of this source tree.
2651
+ */
2652
+ const __iconNode$f = [
2653
+ ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
2654
+ ["path", { d: "M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20", key: "13o1zl" }],
2655
+ ["path", { d: "M2 12h20", key: "9i4pu4" }]
2656
+ ];
2657
+ const Globe = createLucideIcon("globe", __iconNode$f);
2658
+ /**
2659
+ * @license lucide-react v0.536.0 - ISC
2660
+ *
2661
+ * This source code is licensed under the ISC license.
2662
+ * See the LICENSE file in the root directory of this source tree.
2663
+ */
2664
+ const __iconNode$e = [
2665
+ [
2666
+ "path",
2667
+ {
2668
+ d: "M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z",
2669
+ key: "j76jl0"
2808
2670
  }
2809
- const sortedFeatures = [...features].sort((a, b) => (a.order || 0) - (b.order || 0));
2810
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "p-5", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-col gap-4", children: sortedFeatures.map((feature, index2) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
2811
- "div",
2812
- {
2813
- className: `p-4 rounded-lg border-l-4 border-blue-500 ${isDarkMode ? "bg-gray-700" : "bg-gray-100"}`,
2814
- children: [
2815
- /* @__PURE__ */ jsxRuntimeExports.jsx("h4", { className: `m-0 mb-2 text-sm font-bold ${isDarkMode ? "text-white" : "text-gray-900"}`, children: feature.title }),
2816
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: `m-0 text-xs leading-relaxed ${isDarkMode ? "text-gray-400" : "text-gray-600"}`, children: feature.description })
2817
- ]
2818
- },
2819
- index2
2820
- )) }) });
2821
- };
2822
- const renderContacts = () => {
2823
- const contacts = product.contacts || [];
2824
- if (contacts.length === 0) {
2825
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `p-5 text-center ${isDarkMode ? "text-gray-400" : "text-gray-600"}`, children: /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "m-0", children: t("productCard.noContacts") }) });
2671
+ ],
2672
+ ["path", { d: "M22 10v6", key: "1lu8f3" }],
2673
+ ["path", { d: "M6 12.5V16a6 3 0 0 0 12 0v-3.5", key: "1r8lef" }]
2674
+ ];
2675
+ const GraduationCap = createLucideIcon("graduation-cap", __iconNode$e);
2676
+ /**
2677
+ * @license lucide-react v0.536.0 - ISC
2678
+ *
2679
+ * This source code is licensed under the ISC license.
2680
+ * See the LICENSE file in the root directory of this source tree.
2681
+ */
2682
+ const __iconNode$d = [
2683
+ [
2684
+ "path",
2685
+ {
2686
+ d: "M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5",
2687
+ key: "mvr1a0"
2826
2688
  }
2827
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "p-5", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-col gap-4", children: contacts.map((contact, index2) => {
2828
- var _a2, _b2;
2829
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(
2830
- "div",
2831
- {
2832
- className: `p-4 rounded-lg border ${isDarkMode ? "bg-gray-700 border-gray-600" : "bg-gray-100 border-gray-200"}`,
2833
- children: [
2834
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center mb-2", children: [
2835
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `w-10 h-10 rounded-full flex items-center justify-center mr-3 ${isDarkMode ? "bg-blue-600" : "bg-blue-500"}`, children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-white font-bold text-base", children: ((_b2 = (_a2 = contact.name) == null ? void 0 : _a2.charAt(0)) == null ? void 0 : _b2.toUpperCase()) || "?" }) }),
2836
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
2837
- /* @__PURE__ */ jsxRuntimeExports.jsx("h4", { className: `m-0 mb-0.5 text-sm font-bold ${isDarkMode ? "text-white" : "text-gray-900"}`, children: contact.name }),
2838
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: `m-0 text-xs ${isDarkMode ? "text-gray-400" : "text-gray-600"}`, children: contact.position })
2839
- ] })
2840
- ] }),
2841
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-1", children: [
2842
- contact.phone && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2", children: [
2843
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: `text-sm ${isDarkMode ? "text-blue-400" : "text-blue-500"}`, children: "📞" }),
2844
- /* @__PURE__ */ jsxRuntimeExports.jsx(
2845
- "a",
2846
- {
2847
- href: `tel:${contact.phone}`,
2848
- className: `text-xs no-underline hover:underline ${isDarkMode ? "text-blue-400" : "text-blue-500"}`,
2849
- children: contact.phone
2850
- }
2851
- )
2852
- ] }),
2853
- contact.email && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2", children: [
2854
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: `text-sm ${isDarkMode ? "text-blue-400" : "text-blue-500"}`, children: "✉️" }),
2855
- /* @__PURE__ */ jsxRuntimeExports.jsx(
2856
- "a",
2857
- {
2858
- href: `mailto:${contact.email}`,
2859
- className: `text-xs no-underline hover:underline ${isDarkMode ? "text-blue-400" : "text-blue-500"}`,
2860
- children: contact.email
2861
- }
2862
- )
2863
- ] })
2864
- ] })
2865
- ]
2866
- },
2867
- contact.id || index2
2868
- );
2869
- }) }) });
2870
- };
2871
- const renderDownloads = () => {
2872
- const downloads = product.productDownloads || [];
2873
- if (downloads.length === 0) {
2874
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `p-5 text-center ${isDarkMode ? "text-gray-400" : "text-gray-600"}`, children: /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "m-0", children: t("productCard.noDownloads") }) });
2689
+ ]
2690
+ ];
2691
+ const Heart = createLucideIcon("heart", __iconNode$d);
2692
+ /**
2693
+ * @license lucide-react v0.536.0 - ISC
2694
+ *
2695
+ * This source code is licensed under the ISC license.
2696
+ * See the LICENSE file in the root directory of this source tree.
2697
+ */
2698
+ const __iconNode$c = [
2699
+ ["path", { d: "M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8", key: "5wwlr5" }],
2700
+ [
2701
+ "path",
2702
+ {
2703
+ d: "M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",
2704
+ key: "1d0kgt"
2705
+ }
2706
+ ]
2707
+ ];
2708
+ const House = createLucideIcon("house", __iconNode$c);
2709
+ /**
2710
+ * @license lucide-react v0.536.0 - ISC
2711
+ *
2712
+ * This source code is licensed under the ISC license.
2713
+ * See the LICENSE file in the root directory of this source tree.
2714
+ */
2715
+ const __iconNode$b = [
2716
+ [
2717
+ "path",
2718
+ {
2719
+ d: "M11 6a13 13 0 0 0 8.4-2.8A1 1 0 0 1 21 4v12a1 1 0 0 1-1.6.8A13 13 0 0 0 11 14H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z",
2720
+ key: "q8bfy3"
2721
+ }
2722
+ ],
2723
+ ["path", { d: "M6 14a12 12 0 0 0 2.4 7.2 2 2 0 0 0 3.2-2.4A8 8 0 0 1 10 14", key: "1853fq" }],
2724
+ ["path", { d: "M8 6v8", key: "15ugcq" }]
2725
+ ];
2726
+ const Megaphone = createLucideIcon("megaphone", __iconNode$b);
2727
+ /**
2728
+ * @license lucide-react v0.536.0 - ISC
2729
+ *
2730
+ * This source code is licensed under the ISC license.
2731
+ * See the LICENSE file in the root directory of this source tree.
2732
+ */
2733
+ const __iconNode$a = [
2734
+ [
2735
+ "path",
2736
+ {
2737
+ d: "M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",
2738
+ key: "1a0edw"
2739
+ }
2740
+ ],
2741
+ ["path", { d: "M12 22V12", key: "d0xqtd" }],
2742
+ ["polyline", { points: "3.29 7 12 12 20.71 7", key: "ousv84" }],
2743
+ ["path", { d: "m7.5 4.27 9 5.15", key: "1c824w" }]
2744
+ ];
2745
+ const Package = createLucideIcon("package", __iconNode$a);
2746
+ /**
2747
+ * @license lucide-react v0.536.0 - ISC
2748
+ *
2749
+ * This source code is licensed under the ISC license.
2750
+ * See the LICENSE file in the root directory of this source tree.
2751
+ */
2752
+ const __iconNode$9 = [
2753
+ [
2754
+ "path",
2755
+ {
2756
+ d: "M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z",
2757
+ key: "1v9wt8"
2875
2758
  }
2876
- const handleDownload = (fileUrl, title) => {
2877
- try {
2878
- const link = document.createElement("a");
2879
- link.href = fileUrl;
2880
- link.download = title || "download";
2881
- link.target = "_blank";
2882
- document.body.appendChild(link);
2883
- link.click();
2884
- document.body.removeChild(link);
2885
- } catch (error) {
2886
- console.error("Download error:", error);
2887
- }
2888
- };
2889
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "p-5", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-col gap-3", children: downloads.map((download, index2) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
2890
- "div",
2891
- {
2892
- onClick: () => handleDownload(download.fileUrl, download.title),
2893
- className: `p-4 rounded-lg border cursor-pointer flex items-center gap-3 transition-all duration-200 hover:translate-x-1 ${isDarkMode ? "bg-gray-700 border-gray-600 hover:bg-gray-600" : "bg-gray-100 border-gray-200 hover:bg-gray-200"}`,
2894
- children: [
2895
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `w-10 h-10 rounded-lg flex items-center justify-center flex-shrink-0 ${isDarkMode ? "bg-blue-600" : "bg-blue-500"}`, children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-white text-lg", children: "📄" }) }),
2896
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex-1 min-w-0", children: [
2897
- /* @__PURE__ */ jsxRuntimeExports.jsx("h4", { className: `m-0 mb-1 text-sm font-bold overflow-hidden text-ellipsis whitespace-nowrap ${isDarkMode ? "text-white" : "text-gray-900"}`, children: download.title }),
2898
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: `m-0 text-xs ${isDarkMode ? "text-gray-400" : "text-gray-600"}`, children: t("productCard.downloadClick") })
2899
- ] }),
2900
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `flex-shrink-0 text-base ${isDarkMode ? "text-blue-400" : "text-blue-500"}`, children: "⬇️" })
2901
- ]
2902
- },
2903
- index2
2904
- )) }) });
2905
- };
2906
- const renderTabContent = () => {
2907
- switch (activeTab) {
2908
- case "overview":
2909
- return renderOverview();
2910
- case "features":
2911
- return renderFeatures();
2912
- case "contacts":
2913
- return renderContacts();
2914
- case "downloads":
2915
- return renderDownloads();
2916
- default:
2917
- return null;
2759
+ ]
2760
+ ];
2761
+ const Plane = createLucideIcon("plane", __iconNode$9);
2762
+ /**
2763
+ * @license lucide-react v0.536.0 - ISC
2764
+ *
2765
+ * This source code is licensed under the ISC license.
2766
+ * See the LICENSE file in the root directory of this source tree.
2767
+ */
2768
+ const __iconNode$8 = [
2769
+ [
2770
+ "path",
2771
+ {
2772
+ d: "M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",
2773
+ key: "1i5ecw"
2918
2774
  }
2919
- };
2920
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(
2921
- "div",
2775
+ ],
2776
+ ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
2777
+ ];
2778
+ const Settings = createLucideIcon("settings", __iconNode$8);
2779
+ /**
2780
+ * @license lucide-react v0.536.0 - ISC
2781
+ *
2782
+ * This source code is licensed under the ISC license.
2783
+ * See the LICENSE file in the root directory of this source tree.
2784
+ */
2785
+ const __iconNode$7 = [
2786
+ [
2787
+ "path",
2922
2788
  {
2923
- className: `
2924
- rounded-xl overflow-hidden cursor-pointer transition-all duration-300 border
2925
- ${isDarkMode ? "bg-gray-800 border-gray-700" : "bg-white border-gray-200"}
2926
- ${isHovered ? `shadow-xl -translate-y-2 ${isDarkMode ? "shadow-gray-900/40" : "shadow-gray-500/20"}` : `shadow-lg ${isDarkMode ? "shadow-gray-900/20" : "shadow-gray-500/10"}`}
2927
- `,
2928
- onMouseEnter: () => setIsHovered(true),
2929
- onMouseLeave: () => setIsHovered(false),
2930
- children: [
2931
- /* @__PURE__ */ jsxRuntimeExports.jsx(
2932
- "div",
2933
- {
2934
- className: `relative h-48 bg-cover bg-center ${isDarkMode ? "bg-gray-700" : "bg-gray-200"}`,
2935
- style: {
2936
- backgroundImage: `url(${mainImage})`
2937
- },
2938
- children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/70 via-black/30 to-transparent p-5 text-white", children: [
2939
- /* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "m-0 mb-2 text-lg font-bold", children: product.name }),
2940
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "m-0 text-sm opacity-90", children: product.description })
2941
- ] })
2942
- }
2943
- ),
2944
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `border-b ${isDarkMode ? "border-gray-600" : "border-gray-200"}`, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex overflow-x-auto", children: tabs.map((tab) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
2945
- "button",
2946
- {
2947
- onClick: () => setActiveTab(tab.id),
2948
- className: `
2949
- flex-1 min-w-[100px] py-4 px-2 border-none text-xs font-medium cursor-pointer transition-all duration-300 flex items-center justify-center gap-1
2950
- ${activeTab === tab.id ? `${isDarkMode ? "bg-blue-600" : "bg-blue-500"} text-white font-bold` : `bg-transparent ${isDarkMode ? "text-gray-400 hover:bg-gray-700" : "text-gray-600 hover:bg-gray-100"}`}
2951
- `,
2952
- children: [
2953
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: tab.label }),
2954
- tab.count !== null && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: `
2955
- text-xs py-0.5 px-1.5 rounded-full min-w-[18px] text-center
2956
- ${activeTab === tab.id ? "bg-white/20 text-white" : `${isDarkMode ? "bg-gray-600 text-gray-400" : "bg-gray-200 text-gray-600"}`}
2957
- `, children: tab.count })
2958
- ]
2959
- },
2960
- tab.id
2961
- )) }) }),
2962
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "min-h-[200px] max-h-[300px] overflow-y-auto", children: renderTabContent() })
2963
- ]
2789
+ 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",
2790
+ key: "oel41y"
2964
2791
  }
2965
- );
2966
- };
2967
- const TextWithTitleSection = ({ section, data, isDarkMode }) => {
2968
- var _a;
2969
- const textItems = (data == null ? void 0 : data.sectionDataBindingItems) || [];
2970
- const title = ((_a = textItems[0]) == null ? void 0 : _a.value) || "";
2971
- const descriptions = textItems.slice(1);
2972
- return /* @__PURE__ */ jsxRuntimeExports.jsx(SectionWrapper, { isDarkMode, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "max-w-6xl mx-auto", children: [
2973
- title && /* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "text-title font-black mb-4 leading-tight text-left text-main", children: title }),
2974
- descriptions.map((item, index2) => /* @__PURE__ */ jsxRuntimeExports.jsx(
2975
- "div",
2976
- {
2977
- className: `text-body leading-relaxed text-left font-normal text-muted ${index2 < descriptions.length - 1 ? "mb-4" : ""}`,
2978
- children: item.value
2979
- },
2980
- item.id || index2
2981
- ))
2982
- ] }) });
2983
- };
2984
- const TextSection = ({ data, isDarkMode }) => {
2985
- const textItems = (data == null ? void 0 : data.sectionDataBindingItems) || [];
2986
- return /* @__PURE__ */ jsxRuntimeExports.jsx(SectionWrapper, { isDarkMode, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "max-w-3xl mx-auto", children: textItems.map((item, index2) => /* @__PURE__ */ jsxRuntimeExports.jsx(
2987
- "div",
2792
+ ]
2793
+ ];
2794
+ const Shield = createLucideIcon("shield", __iconNode$7);
2795
+ /**
2796
+ * @license lucide-react v0.536.0 - ISC
2797
+ *
2798
+ * This source code is licensed under the ISC license.
2799
+ * See the LICENSE file in the root directory of this source tree.
2800
+ */
2801
+ const __iconNode$6 = [
2802
+ ["circle", { cx: "8", cy: "21", r: "1", key: "jimo8o" }],
2803
+ ["circle", { cx: "19", cy: "21", r: "1", key: "13723u" }],
2804
+ [
2805
+ "path",
2988
2806
  {
2989
- className: "mb-5 text-subtitle font-black leading-snug text-left text-main",
2990
- children: item.value
2991
- },
2992
- item.id || index2
2993
- )) }) });
2994
- };
2807
+ d: "M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12",
2808
+ key: "9zh506"
2809
+ }
2810
+ ]
2811
+ ];
2812
+ const ShoppingCart = createLucideIcon("shopping-cart", __iconNode$6);
2813
+ /**
2814
+ * @license lucide-react v0.536.0 - ISC
2815
+ *
2816
+ * This source code is licensed under the ISC license.
2817
+ * See the LICENSE file in the root directory of this source tree.
2818
+ */
2819
+ const __iconNode$5 = [
2820
+ ["rect", { width: "14", height: "20", x: "5", y: "2", rx: "2", ry: "2", key: "1yt0o3" }],
2821
+ ["path", { d: "M12 18h.01", key: "mhygvu" }]
2822
+ ];
2823
+ const Smartphone = createLucideIcon("smartphone", __iconNode$5);
2824
+ /**
2825
+ * @license lucide-react v0.536.0 - ISC
2826
+ *
2827
+ * This source code is licensed under the ISC license.
2828
+ * See the LICENSE file in the root directory of this source tree.
2829
+ */
2830
+ const __iconNode$4 = [
2831
+ ["path", { d: "M16 7h6v6", key: "box55l" }],
2832
+ ["path", { d: "m22 7-8.5 8.5-5-5L2 17", key: "1t1m79" }]
2833
+ ];
2834
+ const TrendingUp = createLucideIcon("trending-up", __iconNode$4);
2835
+ /**
2836
+ * @license lucide-react v0.536.0 - ISC
2837
+ *
2838
+ * This source code is licensed under the ISC license.
2839
+ * See the LICENSE file in the root directory of this source tree.
2840
+ */
2841
+ const __iconNode$3 = [
2842
+ ["path", { d: "M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2", key: "wrbu53" }],
2843
+ ["path", { d: "M15 18H9", key: "1lyqi6" }],
2844
+ [
2845
+ "path",
2846
+ {
2847
+ d: "M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14",
2848
+ key: "lysw3i"
2849
+ }
2850
+ ],
2851
+ ["circle", { cx: "17", cy: "18", r: "2", key: "332jqn" }],
2852
+ ["circle", { cx: "7", cy: "18", r: "2", key: "19iecd" }]
2853
+ ];
2854
+ const Truck = createLucideIcon("truck", __iconNode$3);
2855
+ /**
2856
+ * @license lucide-react v0.536.0 - ISC
2857
+ *
2858
+ * This source code is licensed under the ISC license.
2859
+ * See the LICENSE file in the root directory of this source tree.
2860
+ */
2861
+ const __iconNode$2 = [
2862
+ ["path", { d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2", key: "1yyitq" }],
2863
+ ["path", { d: "M16 3.128a4 4 0 0 1 0 7.744", key: "16gr8j" }],
2864
+ ["path", { d: "M22 21v-2a4 4 0 0 0-3-3.87", key: "kshegd" }],
2865
+ ["circle", { cx: "9", cy: "7", r: "4", key: "nufk8" }]
2866
+ ];
2867
+ const Users = createLucideIcon("users", __iconNode$2);
2868
+ /**
2869
+ * @license lucide-react v0.536.0 - ISC
2870
+ *
2871
+ * This source code is licensed under the ISC license.
2872
+ * See the LICENSE file in the root directory of this source tree.
2873
+ */
2874
+ const __iconNode$1 = [
2875
+ [
2876
+ "path",
2877
+ {
2878
+ d: "M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",
2879
+ key: "1ngwbx"
2880
+ }
2881
+ ]
2882
+ ];
2883
+ const Wrench = createLucideIcon("wrench", __iconNode$1);
2884
+ /**
2885
+ * @license lucide-react v0.536.0 - ISC
2886
+ *
2887
+ * This source code is licensed under the ISC license.
2888
+ * See the LICENSE file in the root directory of this source tree.
2889
+ */
2890
+ const __iconNode = [
2891
+ [
2892
+ "path",
2893
+ {
2894
+ d: "M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",
2895
+ key: "1xq2db"
2896
+ }
2897
+ ]
2898
+ ];
2899
+ const Zap = createLucideIcon("zap", __iconNode);
2995
2900
  const DiagramSection = ({ data, t, isDarkMode }) => {
2996
2901
  var _a, _b;
2997
2902
  const [mounted, setMounted] = useState(false);
@@ -3618,7 +3523,7 @@ const MindMapNode = ({ id, icon: Icon2, text, color, position, delay = 0, onDrag
3618
3523
  style: {
3619
3524
  background: isHovered || isDragging ? colorStyle.gradientHover : colorStyle.gradient,
3620
3525
  borderColor: colorStyle.border + "80",
3621
- boxShadow: `0 10px 40px ${colorStyle.shadowColor}4D`,
3526
+ boxShadow: `0 10px 40px rgba(var(--brand-primary), 0.3)`,
3622
3527
  transform: isHovered || isDragging ? "scale(1.1)" : "scale(1)",
3623
3528
  filter: isHovered || isDragging ? "brightness(1.1)" : "brightness(1)",
3624
3529
  rotate: isDragging ? "2deg" : "0deg"
@@ -4072,8 +3977,7 @@ const DiagramSection2 = ({ data, t, isDarkMode }) => {
4072
3977
  {
4073
3978
  className: "relative px-6 sm:px-10 py-3 sm:py-5 rounded-3xl shadow-2xl border-4 flex items-center gap-3 sm:gap-4 backdrop-blur-md bg-gradient-brand",
4074
3979
  style: {
4075
- borderColor: "var(--brand-primary)",
4076
- borderOpacity: 0.5,
3980
+ borderColor: "rgba(var(--brand-primary-rgb), 0.5)",
4077
3981
  transform: isDragging ? "scale(1.1)" : "scale(1)",
4078
3982
  transition: "transform 0.3s ease"
4079
3983
  },
@@ -4148,7 +4052,14 @@ const FaqItem = ({ faq, index: index2, isActive, onToggle, t }) => {
4148
4052
  flex-shrink-0 w-10 h-10 rounded-full flex items-center justify-center
4149
4053
  transition-all duration-500 transform
4150
4054
  ${isActive ? "bg-gradient-to-br from-blue-500 to-purple-600 text-white shadow-lg shadow-blue-500/50 rotate-180 scale-110" : "bg-gray-700/50 text-gray-400 group-hover:bg-gray-600 group-hover:scale-110"}
4151
- `, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronDown, { className: `w-5 h-5 transition-transform duration-500 ${isActive ? "rotate-180" : ""}` }) })
4055
+ `, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
4056
+ ThemeIcon,
4057
+ {
4058
+ name: "icon-faqChevronDown",
4059
+ folder: "common",
4060
+ className: `w-5 h-5 icon-muted transition-transform duration-500 ${isActive ? "rotate-180" : ""}`
4061
+ }
4062
+ ) })
4152
4063
  ]
4153
4064
  }
4154
4065
  ),
@@ -4227,15 +4138,7 @@ const FaqSection = ({ data, t, isDarkMode, section }) => {
4227
4138
  },
4228
4139
  onMouseEnter: (e) => e.currentTarget.style.transform = "scale(1.1)",
4229
4140
  onMouseLeave: (e) => e.currentTarget.style.transform = "scale(1)",
4230
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(
4231
- "svg",
4232
- {
4233
- className: "w-6 h-6 text-white",
4234
- fill: "currentColor",
4235
- viewBox: "0 0 24 24",
4236
- children: /* @__PURE__ */ jsxRuntimeExports.jsx("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z" })
4237
- }
4238
- )
4141
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-faqQuestion", className: "w-4 h-4 icon-gradient" })
4239
4142
  }
4240
4143
  ) }),
4241
4144
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-center mb-12 animate-fade-in", children: [
@@ -4608,7 +4511,7 @@ const PageChildrenSelectSection = ({ data, isDarkMode, t, section, imageBaseUrl
4608
4511
  },
4609
4512
  children: [
4610
4513
  t("pageChildrenSelect.moreInsights"),
4611
- /* @__PURE__ */ jsxRuntimeExports.jsx(ArrowRight, { size: 18 })
4514
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-pageChildrenSelectArrowRight", folder: "PageChildrenSelectSection", className: "w-4 h-4 icon-muted" })
4612
4515
  ]
4613
4516
  }
4614
4517
  ) })
@@ -4683,13 +4586,7 @@ const PageChildrenSelectSection1 = ({ data, isDarkMode, t, section, imageBaseUrl
4683
4586
  display: "flex",
4684
4587
  alignItems: "center",
4685
4588
  paddingLeft: "16px"
4686
- }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
4687
- ChevronRight,
4688
- {
4689
- size: 20,
4690
- className: "card-text"
4691
- }
4692
- ) })
4589
+ }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-pageChildrenSelectChevronRight", folder: "PageChildrenSelectSection", className: "w-4 h-4 card-text" }) })
4693
4590
  ]
4694
4591
  },
4695
4592
  page.id
@@ -4714,7 +4611,7 @@ const PageChildrenSelectSection1 = ({ data, isDarkMode, t, section, imageBaseUrl
4714
4611
  },
4715
4612
  children: [
4716
4613
  t("pageChildrenSelect.moreInsights"),
4717
- /* @__PURE__ */ jsxRuntimeExports.jsx(ArrowRight, { size: 18 })
4614
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-pageChildrenSelectArrowRight", folder: "PageChildrenSelectSection", className: "w-4 h-4 icon-muted" })
4718
4615
  ]
4719
4616
  }
4720
4617
  ) })
@@ -4824,7 +4721,7 @@ const PageChildrenSelectSection2 = ({ data, isDarkMode, t, section, imageBaseUrl
4824
4721
  },
4825
4722
  children: [
4826
4723
  t("pageChildrenSelect.moreInsights"),
4827
- /* @__PURE__ */ jsxRuntimeExports.jsx(ArrowRight, { size: 18 })
4724
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-pageChildrenSelectArrowRight", folder: "PageChildrenSelectSection", className: "w-4 h-4 icon-muted" })
4828
4725
  ]
4829
4726
  }
4830
4727
  ) })