nvis-fe-cms-libs 2.0.3 → 2.0.5

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.
@@ -374,17 +374,42 @@ var __async = (__this, __arguments, generator) => {
374
374
  return jsxRuntime.exports;
375
375
  }
376
376
  var jsxRuntimeExports = requireJsxRuntime();
377
- function ThemeIcon({ name, className = "" }) {
377
+ function ThemeIcon({
378
+ name,
379
+ className = "",
380
+ color,
381
+ folder = "common",
382
+ // ← Thêm prop folder, mặc định là "common"
383
+ useOriginalColor = false
384
+ }) {
378
385
  if (!name) return null;
379
- const iconUrl = `/icons/${name}.svg`;
386
+ const iconUrl = `/icons/${folder}/${name}.svg`;
387
+ if (useOriginalColor) {
388
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
389
+ "img",
390
+ {
391
+ src: iconUrl,
392
+ alt: name,
393
+ className: `icon ${className}`,
394
+ onError: (e) => {
395
+ e.target.style.display = "none";
396
+ console.warn(`Icon not found: ${iconUrl}`);
397
+ }
398
+ }
399
+ );
400
+ }
380
401
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
381
- "img",
402
+ "span",
382
403
  {
383
- src: iconUrl,
384
- alt: name,
385
404
  className: `icon ${className}`,
405
+ style: {
406
+ maskImage: `url(${iconUrl})`,
407
+ WebkitMaskImage: `url(${iconUrl})`,
408
+ backgroundColor: color || "currentColor"
409
+ },
386
410
  onError: (e) => {
387
411
  e.target.style.display = "none";
412
+ console.warn(`Icon not found: ${iconUrl}`);
388
413
  }
389
414
  }
390
415
  );
@@ -408,19 +433,19 @@ var __async = (__this, __arguments, generator) => {
408
433
  };
409
434
  const items = [
410
435
  {
411
- icon: "light_bulb",
436
+ icon: "icon-companyValueLightBulb",
412
437
  title: t("about.companyValues.vision") || "Tầm nhìn",
413
438
  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.",
414
439
  bgClass: "bg-gradient-brand"
415
440
  },
416
441
  {
417
- icon: "rocket",
442
+ icon: "icon-companyValueRocket",
418
443
  title: t("about.companyValues.mission") || "Sứ mệnh",
419
444
  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.",
420
445
  bgClass: "bg-gradient-accent"
421
446
  },
422
447
  {
423
- icon: "diamond",
448
+ icon: "icon-companyValueDiamond",
424
449
  title: t("about.companyValues.coreValues") || "Giá trị cốt lõi",
425
450
  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.",
426
451
  bgClass: "bg-gradient-brand"
@@ -470,7 +495,7 @@ var __async = (__this, __arguments, generator) => {
470
495
  "div",
471
496
  {
472
497
  className: `w-10 h-10 rounded-lg flex items-center justify-center text-white text-xl flex-shrink-0 ${item.bgClass}`,
473
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: item.icon, className: "w-6 h-6" })
498
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: item.icon, folder: "AboutCompanySection", className: "w-6 h-6", useOriginalColor: true })
474
499
  }
475
500
  ),
476
501
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex-1 min-w-0", children: [
@@ -595,7 +620,8 @@ var __async = (__this, __arguments, generator) => {
595
620
  /* @__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: [
596
621
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
597
622
  /* @__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: [
598
- "📖 ",
623
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-aboutCompanyBook", folder: "AboutCompanySection", className: "w-6 h-6", useOriginalColor: true }),
624
+ " ",
599
625
  safeT("aboutCompany.story.badge")
600
626
  ] }),
601
627
  /* @__PURE__ */ jsxRuntimeExports.jsxs("h2", { className: "text-3xl lg:text-4xl font-bold mb-6 text-main", children: [
@@ -663,7 +689,8 @@ var __async = (__this, __arguments, generator) => {
663
689
  }
664
690
  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: [
665
691
  /* @__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: [
666
- "📈 ",
692
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-timeLineChart", folder: "TimlineSection", className: "w-5 h-5 icon-gradient" }),
693
+ " ",
667
694
  sectionTitle
668
695
  ] }) }),
669
696
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative", children: [
@@ -884,7 +911,8 @@ var __async = (__this, __arguments, generator) => {
884
911
  if (!partnersData.length) return null;
885
912
  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: [
886
913
  /* @__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: [
887
- "🤝 ",
914
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-partner", folder: "PartnersSection", className: "w-4 h-4 icon-gradient" }),
915
+ " ",
888
916
  sectionTitle
889
917
  ] }) }),
890
918
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref: partnersRef, className: "relative overflow-hidden", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
@@ -987,7 +1015,8 @@ var __async = (__this, __arguments, generator) => {
987
1015
  }
988
1016
  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: [
989
1017
  /* @__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: [
990
- "📈 ",
1018
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-timeLineChart", folder: "TimlineSection", className: "w-5 h-5 icon-gradient" }),
1019
+ " ",
991
1020
  sectionTitle
992
1021
  ] }) }),
993
1022
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative", children: [
@@ -1053,7 +1082,8 @@ var __async = (__this, __arguments, generator) => {
1053
1082
  }
1054
1083
  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: [
1055
1084
  /* @__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: [
1056
- "💬 ",
1085
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-testimonials", folder: "TestimonialsSection", className: "w-4 h-4 icon-gradient" }),
1086
+ " ",
1057
1087
  sectionTitle
1058
1088
  ] }),
1059
1089
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative", children: [
@@ -1072,7 +1102,7 @@ var __async = (__this, __arguments, generator) => {
1072
1102
  '"'
1073
1103
  ] }),
1074
1104
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-center space-x-4", children: [
1075
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-3xl", children: "👤" }),
1105
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-3xl", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-testimonialsUser", folder: "TestimonialsSection", className: "w-4 h-4 icon-gradient" }) }),
1076
1106
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-left", children: [
1077
1107
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "card-title", children: testimonials[currentIndex].author }),
1078
1108
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "card-text", children: testimonials[currentIndex].position }),
@@ -1270,7 +1300,8 @@ var __async = (__this, __arguments, generator) => {
1270
1300
  if (!partnersData.length) return null;
1271
1301
  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: [
1272
1302
  /* @__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: [
1273
- "🤝 ",
1303
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-partner", folder: "PartnersSection", className: "w-4 h-4 icon-gradient" }),
1304
+ " ",
1274
1305
  sectionTitle
1275
1306
  ] }) }),
1276
1307
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref: partnersRef, className: "relative", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
@@ -1335,692 +1366,71 @@ var __async = (__this, __arguments, generator) => {
1335
1366
  ) })
1336
1367
  ] }) });
1337
1368
  };
1338
- /**
1339
- * @license lucide-react v0.536.0 - ISC
1340
- *
1341
- * This source code is licensed under the ISC license.
1342
- * See the LICENSE file in the root directory of this source tree.
1343
- */
1344
- const toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
1345
- const toCamelCase = (string) => string.replace(
1346
- /^([A-Z])|[\s-_]+(\w)/g,
1347
- (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()
1348
- );
1349
- const toPascalCase = (string) => {
1350
- const camelCase = toCamelCase(string);
1351
- return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);
1352
- };
1353
- const mergeClasses = (...classes) => classes.filter((className, index2, array) => {
1354
- return Boolean(className) && className.trim() !== "" && array.indexOf(className) === index2;
1355
- }).join(" ").trim();
1356
- const hasA11yProp = (props) => {
1357
- for (const prop in props) {
1358
- if (prop.startsWith("aria-") || prop === "role" || prop === "title") {
1359
- return true;
1369
+ const ContactFormSection = ({ data, t, isDarkMode, consultationRequestService }) => {
1370
+ const [formData, setFormData] = require$$0.useState({
1371
+ fullName: "",
1372
+ workEmail: "",
1373
+ phoneNumber: "",
1374
+ companyName: "",
1375
+ jobTitle: "",
1376
+ businessType: "",
1377
+ expectedBudget: "",
1378
+ expectedTimeline: "",
1379
+ requestTitle: "",
1380
+ requestDescription: ""
1381
+ });
1382
+ const [formErrors, setFormErrors] = require$$0.useState({});
1383
+ const [isSubmitting, setIsSubmitting] = require$$0.useState(false);
1384
+ const [submitStatus, setSubmitStatus] = require$$0.useState(null);
1385
+ const [submitMessage, setSubmitMessage] = require$$0.useState("");
1386
+ const validateField = (name, value) => {
1387
+ const errors = {};
1388
+ switch (name) {
1389
+ case "fullName":
1390
+ if (!(value == null ? void 0 : value.trim())) errors.fullName = "Họ và tên là bắt buộc";
1391
+ else if (value.trim().length < 2) errors.fullName = "Tên phải có ít nhất 2 ký tự";
1392
+ break;
1393
+ case "workEmail":
1394
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
1395
+ if (!(value == null ? void 0 : value.trim())) errors.workEmail = "Email là bắt buộc";
1396
+ else if (!emailRegex.test(value.trim())) errors.workEmail = "Email không hợp lệ";
1397
+ break;
1398
+ case "phoneNumber":
1399
+ const phoneRegex = /^[0-9\s\-\+\(\)]{10,15}$/;
1400
+ if (value && !phoneRegex.test(value.trim())) errors.phoneNumber = "Số điện thoại không hợp lệ";
1401
+ break;
1402
+ case "requestTitle":
1403
+ if (!(value == null ? void 0 : value.trim())) errors.requestTitle = "Tiêu đề yêu cầu là bắt buộc";
1404
+ else if (value.trim().length < 5) errors.requestTitle = "Tiêu đề phải có ít nhất 5 ký tự";
1405
+ break;
1406
+ case "requestDescription":
1407
+ if (!(value == null ? void 0 : value.trim())) errors.requestDescription = "Mô tả yêu cầu là bắt buộc";
1408
+ else if (value.trim().length < 10) errors.requestDescription = "Mô tả phải có ít nhất 10 ký tự";
1409
+ break;
1410
+ case "companyName":
1411
+ if (value && value.trim().length > 0 && value.trim().length < 2) {
1412
+ errors.companyName = "Tên công ty phải có ít nhất 2 ký tự";
1413
+ }
1414
+ break;
1415
+ case "jobTitle":
1416
+ if (value && value.trim().length > 0 && value.trim().length < 2) {
1417
+ errors.jobTitle = "Chức vụ phải có ít nhất 2 ký tự";
1418
+ }
1419
+ break;
1360
1420
  }
1361
- }
1362
- };
1363
- /**
1364
- * @license lucide-react v0.536.0 - ISC
1365
- *
1366
- * This source code is licensed under the ISC license.
1367
- * See the LICENSE file in the root directory of this source tree.
1368
- */
1369
- var defaultAttributes = {
1370
- xmlns: "http://www.w3.org/2000/svg",
1371
- width: 24,
1372
- height: 24,
1373
- viewBox: "0 0 24 24",
1374
- fill: "none",
1375
- stroke: "currentColor",
1376
- strokeWidth: 2,
1377
- strokeLinecap: "round",
1378
- strokeLinejoin: "round"
1379
- };
1380
- /**
1381
- * @license lucide-react v0.536.0 - ISC
1382
- *
1383
- * This source code is licensed under the ISC license.
1384
- * See the LICENSE file in the root directory of this source tree.
1385
- */
1386
- const Icon = require$$0.forwardRef(
1387
- (_a, ref) => {
1388
- var _b = _a, {
1389
- color = "currentColor",
1390
- size = 24,
1391
- strokeWidth = 2,
1392
- absoluteStrokeWidth,
1393
- className = "",
1394
- children,
1395
- iconNode
1396
- } = _b, rest = __objRest(_b, [
1397
- "color",
1398
- "size",
1399
- "strokeWidth",
1400
- "absoluteStrokeWidth",
1401
- "className",
1402
- "children",
1403
- "iconNode"
1404
- ]);
1405
- return require$$0.createElement(
1406
- "svg",
1407
- __spreadValues(__spreadValues(__spreadProps(__spreadValues({
1408
- ref
1409
- }, defaultAttributes), {
1410
- width: size,
1411
- height: size,
1412
- stroke: color,
1413
- strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,
1414
- className: mergeClasses("lucide", className)
1415
- }), !children && !hasA11yProp(rest) && { "aria-hidden": "true" }), rest),
1416
- [
1417
- ...iconNode.map(([tag, attrs]) => require$$0.createElement(tag, attrs)),
1418
- ...Array.isArray(children) ? children : [children]
1419
- ]
1420
- );
1421
- }
1422
- );
1423
- /**
1424
- * @license lucide-react v0.536.0 - ISC
1425
- *
1426
- * This source code is licensed under the ISC license.
1427
- * See the LICENSE file in the root directory of this source tree.
1428
- */
1429
- const createLucideIcon = (iconName, iconNode) => {
1430
- const Component = require$$0.forwardRef(
1431
- (_a, ref) => {
1432
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1433
- return require$$0.createElement(Icon, __spreadValues({
1434
- ref,
1435
- iconNode,
1436
- className: mergeClasses(
1437
- `lucide-${toKebabCase(toPascalCase(iconName))}`,
1438
- `lucide-${iconName}`,
1439
- className
1440
- )
1441
- }, props));
1442
- }
1443
- );
1444
- Component.displayName = toPascalCase(iconName);
1445
- return Component;
1446
- };
1447
- /**
1448
- * @license lucide-react v0.536.0 - ISC
1449
- *
1450
- * This source code is licensed under the ISC license.
1451
- * See the LICENSE file in the root directory of this source tree.
1452
- */
1453
- const __iconNode$z = [
1454
- ["path", { d: "M5 12h14", key: "1ays0h" }],
1455
- ["path", { d: "m12 5 7 7-7 7", key: "xquz4c" }]
1456
- ];
1457
- const ArrowRight = createLucideIcon("arrow-right", __iconNode$z);
1458
- /**
1459
- * @license lucide-react v0.536.0 - ISC
1460
- *
1461
- * This source code is licensed under the ISC license.
1462
- * See the LICENSE file in the root directory of this source tree.
1463
- */
1464
- const __iconNode$y = [
1465
- ["path", { d: "M2 4v16", key: "vw9hq8" }],
1466
- ["path", { d: "M2 8h18a2 2 0 0 1 2 2v10", key: "1dgv2r" }],
1467
- ["path", { d: "M2 17h20", key: "18nfp3" }],
1468
- ["path", { d: "M6 8v9", key: "1yriud" }]
1469
- ];
1470
- const Bed = createLucideIcon("bed", __iconNode$y);
1471
- /**
1472
- * @license lucide-react v0.536.0 - ISC
1473
- *
1474
- * This source code is licensed under the ISC license.
1475
- * See the LICENSE file in the root directory of this source tree.
1476
- */
1477
- const __iconNode$x = [
1478
- ["path", { d: "M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16", key: "jecpp" }],
1479
- ["rect", { width: "20", height: "14", x: "2", y: "6", rx: "2", key: "i6l2r4" }]
1480
- ];
1481
- const Briefcase = createLucideIcon("briefcase", __iconNode$x);
1482
- /**
1483
- * @license lucide-react v0.536.0 - ISC
1484
- *
1485
- * This source code is licensed under the ISC license.
1486
- * See the LICENSE file in the root directory of this source tree.
1487
- */
1488
- const __iconNode$w = [
1489
- ["path", { d: "M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z", key: "1b4qmf" }],
1490
- ["path", { d: "M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2", key: "i71pzd" }],
1491
- ["path", { d: "M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2", key: "10jefs" }],
1492
- ["path", { d: "M10 6h4", key: "1itunk" }],
1493
- ["path", { d: "M10 10h4", key: "tcdvrf" }],
1494
- ["path", { d: "M10 14h4", key: "kelpxr" }],
1495
- ["path", { d: "M10 18h4", key: "1ulq68" }]
1496
- ];
1497
- const Building2 = createLucideIcon("building-2", __iconNode$w);
1498
- /**
1499
- * @license lucide-react v0.536.0 - ISC
1500
- *
1501
- * This source code is licensed under the ISC license.
1502
- * See the LICENSE file in the root directory of this source tree.
1503
- */
1504
- const __iconNode$v = [
1505
- ["rect", { width: "16", height: "20", x: "4", y: "2", rx: "2", ry: "2", key: "76otgf" }],
1506
- ["path", { d: "M9 22v-4h6v4", key: "r93iot" }],
1507
- ["path", { d: "M8 6h.01", key: "1dz90k" }],
1508
- ["path", { d: "M16 6h.01", key: "1x0f13" }],
1509
- ["path", { d: "M12 6h.01", key: "1vi96p" }],
1510
- ["path", { d: "M12 10h.01", key: "1nrarc" }],
1511
- ["path", { d: "M12 14h.01", key: "1etili" }],
1512
- ["path", { d: "M16 10h.01", key: "1m94wz" }],
1513
- ["path", { d: "M16 14h.01", key: "1gbofw" }],
1514
- ["path", { d: "M8 10h.01", key: "19clt8" }],
1515
- ["path", { d: "M8 14h.01", key: "6423bh" }]
1516
- ];
1517
- const Building = createLucideIcon("building", __iconNode$v);
1518
- /**
1519
- * @license lucide-react v0.536.0 - ISC
1520
- *
1521
- * This source code is licensed under the ISC license.
1522
- * See the LICENSE file in the root directory of this source tree.
1523
- */
1524
- const __iconNode$u = [
1525
- ["rect", { width: "16", height: "20", x: "4", y: "2", rx: "2", key: "1nb95v" }],
1526
- ["line", { x1: "8", x2: "16", y1: "6", y2: "6", key: "x4nwl0" }],
1527
- ["line", { x1: "16", x2: "16", y1: "14", y2: "18", key: "wjye3r" }],
1528
- ["path", { d: "M16 10h.01", key: "1m94wz" }],
1529
- ["path", { d: "M12 10h.01", key: "1nrarc" }],
1530
- ["path", { d: "M8 10h.01", key: "19clt8" }],
1531
- ["path", { d: "M12 14h.01", key: "1etili" }],
1532
- ["path", { d: "M8 14h.01", key: "6423bh" }],
1533
- ["path", { d: "M12 18h.01", key: "mhygvu" }],
1534
- ["path", { d: "M8 18h.01", key: "lrp35t" }]
1535
- ];
1536
- const Calculator = createLucideIcon("calculator", __iconNode$u);
1537
- /**
1538
- * @license lucide-react v0.536.0 - ISC
1539
- *
1540
- * This source code is licensed under the ISC license.
1541
- * See the LICENSE file in the root directory of this source tree.
1542
- */
1543
- const __iconNode$t = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
1544
- const ChevronDown = createLucideIcon("chevron-down", __iconNode$t);
1545
- /**
1546
- * @license lucide-react v0.536.0 - ISC
1547
- *
1548
- * This source code is licensed under the ISC license.
1549
- * See the LICENSE file in the root directory of this source tree.
1550
- */
1551
- const __iconNode$s = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
1552
- const ChevronRight = createLucideIcon("chevron-right", __iconNode$s);
1553
- /**
1554
- * @license lucide-react v0.536.0 - ISC
1555
- *
1556
- * This source code is licensed under the ISC license.
1557
- * See the LICENSE file in the root directory of this source tree.
1558
- */
1559
- const __iconNode$r = [
1560
- ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
1561
- ["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
1562
- ["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }]
1563
- ];
1564
- const CircleAlert = createLucideIcon("circle-alert", __iconNode$r);
1565
- /**
1566
- * @license lucide-react v0.536.0 - ISC
1567
- *
1568
- * This source code is licensed under the ISC license.
1569
- * See the LICENSE file in the root directory of this source tree.
1570
- */
1571
- const __iconNode$q = [
1572
- ["path", { d: "M21.801 10A10 10 0 1 1 17 3.335", key: "yps3ct" }],
1573
- ["path", { d: "m9 11 3 3L22 4", key: "1pflzl" }]
1574
- ];
1575
- const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$q);
1576
- /**
1577
- * @license lucide-react v0.536.0 - ISC
1578
- *
1579
- * This source code is licensed under the ISC license.
1580
- * See the LICENSE file in the root directory of this source tree.
1581
- */
1582
- const __iconNode$p = [
1583
- ["path", { d: "M12 6v6l4 2", key: "mmk7yg" }],
1584
- ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
1585
- ];
1586
- const Clock = createLucideIcon("clock", __iconNode$p);
1587
- /**
1588
- * @license lucide-react v0.536.0 - ISC
1589
- *
1590
- * This source code is licensed under the ISC license.
1591
- * See the LICENSE file in the root directory of this source tree.
1592
- */
1593
- const __iconNode$o = [
1594
- ["path", { d: "M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z", key: "p7xjir" }]
1595
- ];
1596
- const Cloud = createLucideIcon("cloud", __iconNode$o);
1597
- /**
1598
- * @license lucide-react v0.536.0 - ISC
1599
- *
1600
- * This source code is licensed under the ISC license.
1601
- * See the LICENSE file in the root directory of this source tree.
1602
- */
1603
- const __iconNode$n = [
1604
- ["ellipse", { cx: "12", cy: "5", rx: "9", ry: "3", key: "msslwz" }],
1605
- ["path", { d: "M3 5V19A9 3 0 0 0 21 19V5", key: "1wlel7" }],
1606
- ["path", { d: "M3 12A9 3 0 0 0 21 12", key: "mv7ke4" }]
1607
- ];
1608
- const Database = createLucideIcon("database", __iconNode$n);
1609
- /**
1610
- * @license lucide-react v0.536.0 - ISC
1611
- *
1612
- * This source code is licensed under the ISC license.
1613
- * See the LICENSE file in the root directory of this source tree.
1614
- */
1615
- const __iconNode$m = [
1616
- ["path", { d: "M12 16h.01", key: "1drbdi" }],
1617
- ["path", { d: "M16 16h.01", key: "1f9h7w" }],
1618
- [
1619
- "path",
1620
- {
1621
- 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",
1622
- key: "1iv0i2"
1623
- }
1624
- ],
1625
- ["path", { d: "M8 16h.01", key: "18s6g9" }]
1626
- ];
1627
- const Factory = createLucideIcon("factory", __iconNode$m);
1628
- /**
1629
- * @license lucide-react v0.536.0 - ISC
1630
- *
1631
- * This source code is licensed under the ISC license.
1632
- * See the LICENSE file in the root directory of this source tree.
1633
- */
1634
- const __iconNode$l = [
1635
- ["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
1636
- ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
1637
- ["path", { d: "M10 9H8", key: "b1mrlr" }],
1638
- ["path", { d: "M16 13H8", key: "t4e002" }],
1639
- ["path", { d: "M16 17H8", key: "z1uh3a" }]
1640
- ];
1641
- const FileText = createLucideIcon("file-text", __iconNode$l);
1642
- /**
1643
- * @license lucide-react v0.536.0 - ISC
1644
- *
1645
- * This source code is licensed under the ISC license.
1646
- * See the LICENSE file in the root directory of this source tree.
1647
- */
1648
- const __iconNode$k = [
1649
- ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
1650
- ["path", { d: "M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20", key: "13o1zl" }],
1651
- ["path", { d: "M2 12h20", key: "9i4pu4" }]
1652
- ];
1653
- const Globe = createLucideIcon("globe", __iconNode$k);
1654
- /**
1655
- * @license lucide-react v0.536.0 - ISC
1656
- *
1657
- * This source code is licensed under the ISC license.
1658
- * See the LICENSE file in the root directory of this source tree.
1659
- */
1660
- const __iconNode$j = [
1661
- [
1662
- "path",
1663
- {
1664
- 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",
1665
- key: "j76jl0"
1666
- }
1667
- ],
1668
- ["path", { d: "M22 10v6", key: "1lu8f3" }],
1669
- ["path", { d: "M6 12.5V16a6 3 0 0 0 12 0v-3.5", key: "1r8lef" }]
1670
- ];
1671
- const GraduationCap = createLucideIcon("graduation-cap", __iconNode$j);
1672
- /**
1673
- * @license lucide-react v0.536.0 - ISC
1674
- *
1675
- * This source code is licensed under the ISC license.
1676
- * See the LICENSE file in the root directory of this source tree.
1677
- */
1678
- const __iconNode$i = [
1679
- [
1680
- "path",
1681
- {
1682
- 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",
1683
- key: "mvr1a0"
1684
- }
1685
- ]
1686
- ];
1687
- const Heart = createLucideIcon("heart", __iconNode$i);
1688
- /**
1689
- * @license lucide-react v0.536.0 - ISC
1690
- *
1691
- * This source code is licensed under the ISC license.
1692
- * See the LICENSE file in the root directory of this source tree.
1693
- */
1694
- const __iconNode$h = [
1695
- ["path", { d: "M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8", key: "5wwlr5" }],
1696
- [
1697
- "path",
1698
- {
1699
- 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",
1700
- key: "1d0kgt"
1701
- }
1702
- ]
1703
- ];
1704
- const House = createLucideIcon("house", __iconNode$h);
1705
- /**
1706
- * @license lucide-react v0.536.0 - ISC
1707
- *
1708
- * This source code is licensed under the ISC license.
1709
- * See the LICENSE file in the root directory of this source tree.
1710
- */
1711
- const __iconNode$g = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]];
1712
- const LoaderCircle = createLucideIcon("loader-circle", __iconNode$g);
1713
- /**
1714
- * @license lucide-react v0.536.0 - ISC
1715
- *
1716
- * This source code is licensed under the ISC license.
1717
- * See the LICENSE file in the root directory of this source tree.
1718
- */
1719
- const __iconNode$f = [
1720
- ["path", { d: "m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7", key: "132q7q" }],
1721
- ["rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", key: "izxlao" }]
1722
- ];
1723
- const Mail = createLucideIcon("mail", __iconNode$f);
1724
- /**
1725
- * @license lucide-react v0.536.0 - ISC
1726
- *
1727
- * This source code is licensed under the ISC license.
1728
- * See the LICENSE file in the root directory of this source tree.
1729
- */
1730
- const __iconNode$e = [
1731
- [
1732
- "path",
1733
- {
1734
- 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",
1735
- key: "q8bfy3"
1736
- }
1737
- ],
1738
- ["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" }],
1739
- ["path", { d: "M8 6v8", key: "15ugcq" }]
1740
- ];
1741
- const Megaphone = createLucideIcon("megaphone", __iconNode$e);
1742
- /**
1743
- * @license lucide-react v0.536.0 - ISC
1744
- *
1745
- * This source code is licensed under the ISC license.
1746
- * See the LICENSE file in the root directory of this source tree.
1747
- */
1748
- const __iconNode$d = [
1749
- [
1750
- "path",
1751
- {
1752
- 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",
1753
- key: "1a0edw"
1754
- }
1755
- ],
1756
- ["path", { d: "M12 22V12", key: "d0xqtd" }],
1757
- ["polyline", { points: "3.29 7 12 12 20.71 7", key: "ousv84" }],
1758
- ["path", { d: "m7.5 4.27 9 5.15", key: "1c824w" }]
1759
- ];
1760
- const Package = createLucideIcon("package", __iconNode$d);
1761
- /**
1762
- * @license lucide-react v0.536.0 - ISC
1763
- *
1764
- * This source code is licensed under the ISC license.
1765
- * See the LICENSE file in the root directory of this source tree.
1766
- */
1767
- const __iconNode$c = [
1768
- [
1769
- "path",
1770
- {
1771
- 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",
1772
- key: "9njp5v"
1773
- }
1774
- ]
1775
- ];
1776
- const Phone = createLucideIcon("phone", __iconNode$c);
1777
- /**
1778
- * @license lucide-react v0.536.0 - ISC
1779
- *
1780
- * This source code is licensed under the ISC license.
1781
- * See the LICENSE file in the root directory of this source tree.
1782
- */
1783
- const __iconNode$b = [
1784
- [
1785
- "path",
1786
- {
1787
- 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",
1788
- key: "1v9wt8"
1789
- }
1790
- ]
1791
- ];
1792
- const Plane = createLucideIcon("plane", __iconNode$b);
1793
- /**
1794
- * @license lucide-react v0.536.0 - ISC
1795
- *
1796
- * This source code is licensed under the ISC license.
1797
- * See the LICENSE file in the root directory of this source tree.
1798
- */
1799
- const __iconNode$a = [
1800
- [
1801
- "path",
1802
- {
1803
- 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",
1804
- key: "1ffxy3"
1805
- }
1806
- ],
1807
- ["path", { d: "m21.854 2.147-10.94 10.939", key: "12cjpa" }]
1808
- ];
1809
- const Send = createLucideIcon("send", __iconNode$a);
1810
- /**
1811
- * @license lucide-react v0.536.0 - ISC
1812
- *
1813
- * This source code is licensed under the ISC license.
1814
- * See the LICENSE file in the root directory of this source tree.
1815
- */
1816
- const __iconNode$9 = [
1817
- [
1818
- "path",
1819
- {
1820
- 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",
1821
- key: "1i5ecw"
1822
- }
1823
- ],
1824
- ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
1825
- ];
1826
- const Settings = createLucideIcon("settings", __iconNode$9);
1827
- /**
1828
- * @license lucide-react v0.536.0 - ISC
1829
- *
1830
- * This source code is licensed under the ISC license.
1831
- * See the LICENSE file in the root directory of this source tree.
1832
- */
1833
- const __iconNode$8 = [
1834
- [
1835
- "path",
1836
- {
1837
- 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",
1838
- key: "oel41y"
1839
- }
1840
- ]
1841
- ];
1842
- const Shield = createLucideIcon("shield", __iconNode$8);
1843
- /**
1844
- * @license lucide-react v0.536.0 - ISC
1845
- *
1846
- * This source code is licensed under the ISC license.
1847
- * See the LICENSE file in the root directory of this source tree.
1848
- */
1849
- const __iconNode$7 = [
1850
- ["circle", { cx: "8", cy: "21", r: "1", key: "jimo8o" }],
1851
- ["circle", { cx: "19", cy: "21", r: "1", key: "13723u" }],
1852
- [
1853
- "path",
1854
- {
1855
- 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",
1856
- key: "9zh506"
1857
- }
1858
- ]
1859
- ];
1860
- const ShoppingCart = createLucideIcon("shopping-cart", __iconNode$7);
1861
- /**
1862
- * @license lucide-react v0.536.0 - ISC
1863
- *
1864
- * This source code is licensed under the ISC license.
1865
- * See the LICENSE file in the root directory of this source tree.
1866
- */
1867
- const __iconNode$6 = [
1868
- ["rect", { width: "14", height: "20", x: "5", y: "2", rx: "2", ry: "2", key: "1yt0o3" }],
1869
- ["path", { d: "M12 18h.01", key: "mhygvu" }]
1870
- ];
1871
- const Smartphone = createLucideIcon("smartphone", __iconNode$6);
1872
- /**
1873
- * @license lucide-react v0.536.0 - ISC
1874
- *
1875
- * This source code is licensed under the ISC license.
1876
- * See the LICENSE file in the root directory of this source tree.
1877
- */
1878
- const __iconNode$5 = [
1879
- ["path", { d: "M16 7h6v6", key: "box55l" }],
1880
- ["path", { d: "m22 7-8.5 8.5-5-5L2 17", key: "1t1m79" }]
1881
- ];
1882
- const TrendingUp = createLucideIcon("trending-up", __iconNode$5);
1883
- /**
1884
- * @license lucide-react v0.536.0 - ISC
1885
- *
1886
- * This source code is licensed under the ISC license.
1887
- * See the LICENSE file in the root directory of this source tree.
1888
- */
1889
- const __iconNode$4 = [
1890
- ["path", { d: "M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2", key: "wrbu53" }],
1891
- ["path", { d: "M15 18H9", key: "1lyqi6" }],
1892
- [
1893
- "path",
1894
- {
1895
- 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",
1896
- key: "lysw3i"
1897
- }
1898
- ],
1899
- ["circle", { cx: "17", cy: "18", r: "2", key: "332jqn" }],
1900
- ["circle", { cx: "7", cy: "18", r: "2", key: "19iecd" }]
1901
- ];
1902
- const Truck = createLucideIcon("truck", __iconNode$4);
1903
- /**
1904
- * @license lucide-react v0.536.0 - ISC
1905
- *
1906
- * This source code is licensed under the ISC license.
1907
- * See the LICENSE file in the root directory of this source tree.
1908
- */
1909
- const __iconNode$3 = [
1910
- ["path", { d: "M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2", key: "975kel" }],
1911
- ["circle", { cx: "12", cy: "7", r: "4", key: "17ys0d" }]
1912
- ];
1913
- const User = createLucideIcon("user", __iconNode$3);
1914
- /**
1915
- * @license lucide-react v0.536.0 - ISC
1916
- *
1917
- * This source code is licensed under the ISC license.
1918
- * See the LICENSE file in the root directory of this source tree.
1919
- */
1920
- const __iconNode$2 = [
1921
- ["path", { d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2", key: "1yyitq" }],
1922
- ["path", { d: "M16 3.128a4 4 0 0 1 0 7.744", key: "16gr8j" }],
1923
- ["path", { d: "M22 21v-2a4 4 0 0 0-3-3.87", key: "kshegd" }],
1924
- ["circle", { cx: "9", cy: "7", r: "4", key: "nufk8" }]
1925
- ];
1926
- const Users = createLucideIcon("users", __iconNode$2);
1927
- /**
1928
- * @license lucide-react v0.536.0 - ISC
1929
- *
1930
- * This source code is licensed under the ISC license.
1931
- * See the LICENSE file in the root directory of this source tree.
1932
- */
1933
- const __iconNode$1 = [
1934
- [
1935
- "path",
1936
- {
1937
- 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",
1938
- key: "1ngwbx"
1939
- }
1940
- ]
1941
- ];
1942
- const Wrench = createLucideIcon("wrench", __iconNode$1);
1943
- /**
1944
- * @license lucide-react v0.536.0 - ISC
1945
- *
1946
- * This source code is licensed under the ISC license.
1947
- * See the LICENSE file in the root directory of this source tree.
1948
- */
1949
- const __iconNode = [
1950
- [
1951
- "path",
1952
- {
1953
- 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",
1954
- key: "1xq2db"
1955
- }
1956
- ]
1957
- ];
1958
- const Zap = createLucideIcon("zap", __iconNode);
1959
- const ContactFormSection = ({ data, t, isDarkMode, consultationRequestService }) => {
1960
- const [formData, setFormData] = require$$0.useState({
1961
- fullName: "",
1962
- workEmail: "",
1963
- phoneNumber: "",
1964
- companyName: "",
1965
- jobTitle: "",
1966
- businessType: "",
1967
- expectedBudget: "",
1968
- expectedTimeline: "",
1969
- requestTitle: "",
1970
- requestDescription: ""
1971
- });
1972
- const [formErrors, setFormErrors] = require$$0.useState({});
1973
- const [isSubmitting, setIsSubmitting] = require$$0.useState(false);
1974
- const [submitStatus, setSubmitStatus] = require$$0.useState(null);
1975
- const [submitMessage, setSubmitMessage] = require$$0.useState("");
1976
- const validateField = (name, value) => {
1977
- const errors = {};
1978
- switch (name) {
1979
- case "fullName":
1980
- if (!(value == null ? void 0 : value.trim())) errors.fullName = "Họ và tên là bắt buộc";
1981
- else if (value.trim().length < 2) errors.fullName = "Tên phải có ít nhất 2 ký tự";
1982
- break;
1983
- case "workEmail":
1984
- const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
1985
- if (!(value == null ? void 0 : value.trim())) errors.workEmail = "Email là bắt buộc";
1986
- else if (!emailRegex.test(value.trim())) errors.workEmail = "Email không hợp lệ";
1987
- break;
1988
- case "phoneNumber":
1989
- const phoneRegex = /^[0-9\s\-\+\(\)]{10,15}$/;
1990
- if (value && !phoneRegex.test(value.trim())) errors.phoneNumber = "Số điện thoại không hợp lệ";
1991
- break;
1992
- case "requestTitle":
1993
- if (!(value == null ? void 0 : value.trim())) errors.requestTitle = "Tiêu đề yêu cầu là bắt buộc";
1994
- else if (value.trim().length < 5) errors.requestTitle = "Tiêu đề phải có ít nhất 5 ký tự";
1995
- break;
1996
- case "requestDescription":
1997
- if (!(value == null ? void 0 : value.trim())) errors.requestDescription = "Mô tả yêu cầu là bắt buộc";
1998
- else if (value.trim().length < 10) errors.requestDescription = "Mô tả phải có ít nhất 10 ký tự";
1999
- break;
2000
- case "companyName":
2001
- if (value && value.trim().length > 0 && value.trim().length < 2) {
2002
- errors.companyName = "Tên công ty phải có ít nhất 2 ký tự";
2003
- }
2004
- break;
2005
- case "jobTitle":
2006
- if (value && value.trim().length > 0 && value.trim().length < 2) {
2007
- errors.jobTitle = "Chức vụ phải có ít nhất 2 ký tự";
2008
- }
2009
- break;
2010
- }
2011
- return errors;
2012
- };
2013
- const handleInputChange = (e) => {
2014
- const { name, value } = e.target;
2015
- setFormData((prev) => __spreadProps(__spreadValues({}, prev), {
2016
- [name]: value || ""
2017
- }));
2018
- if (formErrors[name]) {
2019
- setFormErrors((prev) => {
2020
- const newErrors = __spreadValues({}, prev);
2021
- delete newErrors[name];
2022
- return newErrors;
2023
- });
1421
+ return errors;
1422
+ };
1423
+ const handleInputChange = (e) => {
1424
+ const { name, value } = e.target;
1425
+ setFormData((prev) => __spreadProps(__spreadValues({}, prev), {
1426
+ [name]: value || ""
1427
+ }));
1428
+ if (formErrors[name]) {
1429
+ setFormErrors((prev) => {
1430
+ const newErrors = __spreadValues({}, prev);
1431
+ delete newErrors[name];
1432
+ return newErrors;
1433
+ });
2024
1434
  }
2025
1435
  };
2026
1436
  const handleBlur = (e) => {
@@ -2092,14 +1502,14 @@ var __async = (__this, __arguments, generator) => {
2092
1502
  `;
2093
1503
  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: [
2094
1504
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center mb-6", children: [
2095
- /* @__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" }) }),
1505
+ /* @__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" }) }),
2096
1506
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
2097
1507
  /* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "text-subtitle font-bold text-main", children: t("form.title") || "Gửi yêu cầu tư vấn" }),
2098
1508
  /* @__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" })
2099
1509
  ] })
2100
1510
  ] }),
2101
1511
  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: [
2102
- 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" }),
1512
+ 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" }),
2103
1513
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-small font-medium", children: submitMessage })
2104
1514
  ] }) }),
2105
1515
  /* @__PURE__ */ jsxRuntimeExports.jsxs("form", { onSubmit: handleSubmit, className: "space-y-6", children: [
@@ -2124,7 +1534,7 @@ var __async = (__this, __arguments, generator) => {
2124
1534
  }
2125
1535
  ),
2126
1536
  formErrors.fullName && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-small text-red-500 flex items-center", children: [
2127
- /* @__PURE__ */ jsxRuntimeExports.jsx(CircleAlert, { size: 14, className: "mr-1" }),
1537
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", className: "w-4 h-4 icon-gradient" }),
2128
1538
  formErrors.fullName
2129
1539
  ] })
2130
1540
  ] }),
@@ -2148,7 +1558,7 @@ var __async = (__this, __arguments, generator) => {
2148
1558
  }
2149
1559
  ),
2150
1560
  formErrors.workEmail && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-small text-red-500 flex items-center", children: [
2151
- /* @__PURE__ */ jsxRuntimeExports.jsx(CircleAlert, { size: 14, className: "mr-1" }),
1561
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", className: "w-4 h-4 icon-gradient" }),
2152
1562
  formErrors.workEmail
2153
1563
  ] })
2154
1564
  ] })
@@ -2170,7 +1580,7 @@ var __async = (__this, __arguments, generator) => {
2170
1580
  }
2171
1581
  ),
2172
1582
  formErrors.phoneNumber && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-small text-red-500 flex items-center", children: [
2173
- /* @__PURE__ */ jsxRuntimeExports.jsx(CircleAlert, { size: 14, className: "mr-1" }),
1583
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", className: "w-4 h-4 icon-gradient" }),
2174
1584
  formErrors.phoneNumber
2175
1585
  ] })
2176
1586
  ] }),
@@ -2190,7 +1600,7 @@ var __async = (__this, __arguments, generator) => {
2190
1600
  }
2191
1601
  ),
2192
1602
  formErrors.companyName && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-small text-red-500 flex items-center", children: [
2193
- /* @__PURE__ */ jsxRuntimeExports.jsx(CircleAlert, { size: 14, className: "mr-1" }),
1603
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", className: "w-4 h-4 icon-gradient" }),
2194
1604
  formErrors.companyName
2195
1605
  ] })
2196
1606
  ] })
@@ -2212,7 +1622,7 @@ var __async = (__this, __arguments, generator) => {
2212
1622
  }
2213
1623
  ),
2214
1624
  formErrors.jobTitle && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-small text-red-500 flex items-center", children: [
2215
- /* @__PURE__ */ jsxRuntimeExports.jsx(CircleAlert, { size: 14, className: "mr-1" }),
1625
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", className: "w-4 h-4 icon-gradient" }),
2216
1626
  formErrors.jobTitle
2217
1627
  ] })
2218
1628
  ] }),
@@ -2284,7 +1694,7 @@ var __async = (__this, __arguments, generator) => {
2284
1694
  }
2285
1695
  ),
2286
1696
  formErrors.requestTitle && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-small text-red-500 flex items-center", children: [
2287
- /* @__PURE__ */ jsxRuntimeExports.jsx(CircleAlert, { size: 14, className: "mr-1" }),
1697
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", className: "w-4 h-4 icon-gradient" }),
2288
1698
  formErrors.requestTitle
2289
1699
  ] })
2290
1700
  ] }),
@@ -2308,7 +1718,7 @@ var __async = (__this, __arguments, generator) => {
2308
1718
  }
2309
1719
  ),
2310
1720
  formErrors.requestDescription && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-small text-red-500 flex items-center", children: [
2311
- /* @__PURE__ */ jsxRuntimeExports.jsx(CircleAlert, { size: 14, className: "mr-1" }),
1721
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", className: "w-4 h-4 icon-gradient" }),
2312
1722
  formErrors.requestDescription
2313
1723
  ] })
2314
1724
  ] }),
@@ -2319,10 +1729,10 @@ var __async = (__this, __arguments, generator) => {
2319
1729
  disabled: isSubmitting,
2320
1730
  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",
2321
1731
  children: isSubmitting ? /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
2322
- /* @__PURE__ */ jsxRuntimeExports.jsx(LoaderCircle, { className: "animate-spin h-5 w-5 mr-2" }),
1732
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormLoader2", className: "w-4 h-4 icon-muted" }),
2323
1733
  t("form.submitting") || "Đang gửi..."
2324
1734
  ] }) : /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
2325
- /* @__PURE__ */ jsxRuntimeExports.jsx(Send, { size: 20, className: "mr-2" }),
1735
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactFormSend", className: "w-4 h-4 icon-gradient" }),
2326
1736
  t("form.submit") || "Gửi yêu cầu"
2327
1737
  ] })
2328
1738
  }
@@ -2337,7 +1747,7 @@ var __async = (__this, __arguments, generator) => {
2337
1747
  if (!contactData.length) return null;
2338
1748
  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: [
2339
1749
  /* @__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: [
2340
- /* @__PURE__ */ jsxRuntimeExports.jsx(User, { size: 22, className: "mr-2 text-brand-primary" }),
1750
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoUser", className: "w-4 h-4 icon-gradient" }),
2341
1751
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-main", children: sectionTitle })
2342
1752
  ] }) }),
2343
1753
  /* @__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: [
@@ -2350,7 +1760,7 @@ var __async = (__this, __arguments, generator) => {
2350
1760
  display: "flex",
2351
1761
  alignItems: "center",
2352
1762
  justifyContent: "center"
2353
- }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(User, { size: 32, style: { color: "white" } }) }),
1763
+ }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoUser", className: "w-4 h-4 icon-gradient" }) }),
2354
1764
  /* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "card-title text-subtitle mb-2", children: contact.name }),
2355
1765
  /* @__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 })
2356
1766
  ] }),
@@ -2377,7 +1787,7 @@ var __async = (__this, __arguments, generator) => {
2377
1787
  alignItems: "center",
2378
1788
  justifyContent: "center",
2379
1789
  marginRight: "0.75rem"
2380
- }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Phone, { size: 18, style: { color: "white" } }) }),
1790
+ }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoPhone", className: "w-4 h-4 icon-gradient" }) }),
2381
1791
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { flex: 1 }, children: [
2382
1792
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-small text-muted", style: { marginBottom: "0.25rem" }, children: t("contact.info.phone") || "Điện thoại" }),
2383
1793
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-body text-main", style: { fontWeight: 600 }, children: contact.phone })
@@ -2407,7 +1817,7 @@ var __async = (__this, __arguments, generator) => {
2407
1817
  alignItems: "center",
2408
1818
  justifyContent: "center",
2409
1819
  marginRight: "0.75rem"
2410
- }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Mail, { size: 18, style: { color: "white" } }) }),
1820
+ }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoEmail", className: "w-4 h-4 icon-gradient" }) }),
2411
1821
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { flex: 1 }, children: [
2412
1822
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-small text-muted", style: { marginBottom: "0.25rem" }, children: "Email" }),
2413
1823
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-body text-main", style: { fontWeight: 600 }, children: contact.email })
@@ -2432,7 +1842,7 @@ var __async = (__this, __arguments, generator) => {
2432
1842
  alignItems: "center",
2433
1843
  justifyContent: "center",
2434
1844
  marginRight: "0.75rem"
2435
- }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Clock, { size: 18, style: { color: "white" } }) }),
1845
+ }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoClock", className: "w-4 h-4 icon-muted" }) }),
2436
1846
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { flex: 1 }, children: [
2437
1847
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-small text-muted", style: { marginBottom: "0.25rem" }, children: t("contact.info.workingHours") || "Giờ làm việc" }),
2438
1848
  /* @__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" })
@@ -2490,7 +1900,7 @@ var __async = (__this, __arguments, generator) => {
2490
1900
  }
2491
1901
  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: [
2492
1902
  /* @__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: [
2493
- /* @__PURE__ */ jsxRuntimeExports.jsx(User, { size: 22, className: "mr-2 text-brand-primary" }),
1903
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoUser", className: "w-4 h-4 icon-gradient" }),
2494
1904
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-main", children: sectionTitle })
2495
1905
  ] }) }),
2496
1906
  /* @__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)) })
@@ -2507,7 +1917,7 @@ var __async = (__this, __arguments, generator) => {
2507
1917
  display: "flex",
2508
1918
  alignItems: "center",
2509
1919
  justifyContent: "center"
2510
- }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(User, { size: 32, style: { color: "white" } }) }),
1920
+ }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoUser", className: "w-4 h-4 icon-gradient" }) }),
2511
1921
  /* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "card-title text-subtitle mb-2", children: contact.name || t("contactList.card.noName") || "Không có tên" }),
2512
1922
  /* @__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ụ" })
2513
1923
  ] }),
@@ -2534,7 +1944,7 @@ var __async = (__this, __arguments, generator) => {
2534
1944
  alignItems: "center",
2535
1945
  justifyContent: "center",
2536
1946
  marginRight: "0.75rem"
2537
- }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Phone, { size: 18, style: { color: "white" } }) }),
1947
+ }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoPhone", className: "w-4 h-4 icon-gradient" }) }),
2538
1948
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { flex: 1 }, children: [
2539
1949
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-small text-muted", style: { marginBottom: "0.25rem" }, children: t("contactList.card.phone") || "Điện thoại" }),
2540
1950
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-body text-main", style: { fontWeight: 600 }, children: contact.phone })
@@ -2564,7 +1974,7 @@ var __async = (__this, __arguments, generator) => {
2564
1974
  alignItems: "center",
2565
1975
  justifyContent: "center",
2566
1976
  marginRight: "0.75rem"
2567
- }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Mail, { size: 18, style: { color: "white" } }) }),
1977
+ }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoEmail", className: "w-4 h-4 icon-gradient" }) }),
2568
1978
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { flex: 1 }, children: [
2569
1979
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-small text-muted", style: { marginBottom: "0.25rem" }, children: "Email" }),
2570
1980
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-body text-main", style: { fontWeight: 600 }, children: contact.email })
@@ -2589,7 +1999,7 @@ var __async = (__this, __arguments, generator) => {
2589
1999
  alignItems: "center",
2590
2000
  justifyContent: "center",
2591
2001
  marginRight: "0.75rem"
2592
- }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Clock, { size: 18, style: { color: "white" } }) }),
2002
+ }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoClock", className: "w-4 h-4 icon-muted" }) }),
2593
2003
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { flex: 1 }, children: [
2594
2004
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-small text-muted", style: { marginBottom: "0.25rem" }, children: t("contactList.card.workingHours") || "Giờ làm việc" }),
2595
2005
  /* @__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" })
@@ -2682,7 +2092,8 @@ var __async = (__this, __arguments, generator) => {
2682
2092
  {
2683
2093
  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 ",
2684
2094
  children: [
2685
- "💬 ",
2095
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-testimonials", folder: "TestimonialsSection", className: "w-4 h-4 icon-gradient" }),
2096
+ " ",
2686
2097
  sectionTitle
2687
2098
  ]
2688
2099
  }
@@ -2699,7 +2110,7 @@ var __async = (__this, __arguments, generator) => {
2699
2110
  '"'
2700
2111
  ] }),
2701
2112
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-center space-x-4", children: [
2702
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-3xl", children: "👤" }),
2113
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-3xl", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-testimonialsUser", folder: "TestimonialsSection", className: "w-4 h-4 icon-gradient" }) }),
2703
2114
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-left", children: [
2704
2115
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "card-title text-base mb-1", children: currentFeedback.customerName }),
2705
2116
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "card-link text-sm", children: currentFeedback.customerTitle }),
@@ -2720,281 +2131,778 @@ var __async = (__this, __arguments, generator) => {
2720
2131
  ${index2 === currentIndex ? "bg-brand-secondary" : "bg-surface hover:bg-brand-primary"}
2721
2132
  `
2722
2133
  },
2723
- index2
2724
- )) })
2725
- ] })
2726
- ] }),
2727
- /* @__PURE__ */ jsxRuntimeExports.jsx("style", { jsx: true, children: `
2728
- .animate-fadeIn {
2729
- animation: fadeIn 0.5s ease-in-out;
2730
- }
2731
- @keyframes fadeIn {
2732
- from {
2733
- opacity: 0;
2734
- transform: translateY(10px);
2735
- }
2736
- to {
2737
- opacity: 1;
2738
- transform: translateY(0);
2739
- }
2740
- }
2741
- ` })
2742
- ] });
2134
+ index2
2135
+ )) })
2136
+ ] })
2137
+ ] }),
2138
+ /* @__PURE__ */ jsxRuntimeExports.jsx("style", { jsx: true, children: `
2139
+ .animate-fadeIn {
2140
+ animation: fadeIn 0.5s ease-in-out;
2141
+ }
2142
+ @keyframes fadeIn {
2143
+ from {
2144
+ opacity: 0;
2145
+ transform: translateY(10px);
2146
+ }
2147
+ to {
2148
+ opacity: 1;
2149
+ transform: translateY(0);
2150
+ }
2151
+ }
2152
+ ` })
2153
+ ] });
2154
+ };
2155
+ const ProductListSection = ({ data, t, isDarkMode, getProductList }) => {
2156
+ const [products, setProducts] = require$$0.useState([]);
2157
+ const [loading, setLoading] = require$$0.useState(true);
2158
+ const [error, setError] = require$$0.useState(null);
2159
+ require$$0.useEffect(() => {
2160
+ const fetchProducts = () => __async(null, null, function* () {
2161
+ try {
2162
+ setLoading(true);
2163
+ const result = yield getProductList();
2164
+ if (result.success) {
2165
+ setProducts(result.data || []);
2166
+ } else {
2167
+ setError(result.error || t("productList.errors.loadFailed"));
2168
+ }
2169
+ } catch (err) {
2170
+ console.error("Error fetching products:", err);
2171
+ setError(t("productList.errors.loadError"));
2172
+ } finally {
2173
+ setLoading(false);
2174
+ }
2175
+ });
2176
+ fetchProducts();
2177
+ }, [t]);
2178
+ if (loading) {
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: `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` }),
2181
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: `mt-2.5 text-base ${isDarkMode ? "text-gray-400" : "text-gray-600"}`, children: t("productList.loading") })
2182
+ ] });
2183
+ }
2184
+ if (error) {
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-red-500 text-5xl mb-4", children: "⚠️" }),
2187
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-red-500 text-base m-0", children: error })
2188
+ ] });
2189
+ }
2190
+ if (!products || products.length === 0) {
2191
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `py-16 px-5 text-center ${isDarkMode ? "bg-gray-900" : "bg-gray-50"}`, children: [
2192
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `text-5xl mb-4 ${isDarkMode ? "text-gray-400" : "text-gray-500"}`, children: "📦" }),
2193
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: `text-base m-0 ${isDarkMode ? "text-gray-400" : "text-gray-600"}`, children: t("productList.noProducts") })
2194
+ ] });
2195
+ }
2196
+ 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)) }) }) });
2197
+ };
2198
+ const ProductCard = ({ product, t, isDarkMode }) => {
2199
+ var _a, _b, _c, _d, _e, _f, _g;
2200
+ const [activeTab, setActiveTab] = require$$0.useState("overview");
2201
+ const [isHovered, setIsHovered] = require$$0.useState(false);
2202
+ 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";
2203
+ const tabs = [
2204
+ { id: "overview", label: t("productCard.tabs.overview"), count: null },
2205
+ { id: "features", label: t("productCard.tabs.features"), count: ((_e = product.features) == null ? void 0 : _e.length) || 0 },
2206
+ { id: "contacts", label: t("productCard.tabs.contacts"), count: ((_f = product.contacts) == null ? void 0 : _f.length) || 0 },
2207
+ { id: "downloads", label: t("productCard.tabs.downloads"), count: ((_g = product.productDownloads) == null ? void 0 : _g.length) || 0 }
2208
+ ];
2209
+ const renderOverview = () => /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "p-5", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
2210
+ "div",
2211
+ {
2212
+ className: `text-sm leading-relaxed ${isDarkMode ? "text-gray-300" : "text-gray-700"}`,
2213
+ dangerouslySetInnerHTML: {
2214
+ __html: product.overviewContent || product.description || t("productCard.noOverview")
2215
+ }
2216
+ }
2217
+ ) });
2218
+ const renderFeatures = () => {
2219
+ const features = product.features || [];
2220
+ if (features.length === 0) {
2221
+ 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") }) });
2222
+ }
2223
+ const sortedFeatures = [...features].sort((a, b) => (a.order || 0) - (b.order || 0));
2224
+ 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(
2225
+ "div",
2226
+ {
2227
+ className: `p-4 rounded-lg border-l-4 border-blue-500 ${isDarkMode ? "bg-gray-700" : "bg-gray-100"}`,
2228
+ children: [
2229
+ /* @__PURE__ */ jsxRuntimeExports.jsx("h4", { className: `m-0 mb-2 text-sm font-bold ${isDarkMode ? "text-white" : "text-gray-900"}`, children: feature.title }),
2230
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: `m-0 text-xs leading-relaxed ${isDarkMode ? "text-gray-400" : "text-gray-600"}`, children: feature.description })
2231
+ ]
2232
+ },
2233
+ index2
2234
+ )) }) });
2235
+ };
2236
+ const renderContacts = () => {
2237
+ const contacts = product.contacts || [];
2238
+ if (contacts.length === 0) {
2239
+ 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") }) });
2240
+ }
2241
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "p-5", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-col gap-4", children: contacts.map((contact, index2) => {
2242
+ var _a2, _b2;
2243
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(
2244
+ "div",
2245
+ {
2246
+ className: `p-4 rounded-lg border ${isDarkMode ? "bg-gray-700 border-gray-600" : "bg-gray-100 border-gray-200"}`,
2247
+ children: [
2248
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center mb-2", children: [
2249
+ /* @__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()) || "?" }) }),
2250
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
2251
+ /* @__PURE__ */ jsxRuntimeExports.jsx("h4", { className: `m-0 mb-0.5 text-sm font-bold ${isDarkMode ? "text-white" : "text-gray-900"}`, children: contact.name }),
2252
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: `m-0 text-xs ${isDarkMode ? "text-gray-400" : "text-gray-600"}`, children: contact.position })
2253
+ ] })
2254
+ ] }),
2255
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-1", children: [
2256
+ contact.phone && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2", children: [
2257
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: `text-sm ${isDarkMode ? "text-blue-400" : "text-blue-500"}`, children: "📞" }),
2258
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
2259
+ "a",
2260
+ {
2261
+ href: `tel:${contact.phone}`,
2262
+ className: `text-xs no-underline hover:underline ${isDarkMode ? "text-blue-400" : "text-blue-500"}`,
2263
+ children: contact.phone
2264
+ }
2265
+ )
2266
+ ] }),
2267
+ contact.email && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2", children: [
2268
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: `text-sm ${isDarkMode ? "text-blue-400" : "text-blue-500"}`, children: "✉️" }),
2269
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
2270
+ "a",
2271
+ {
2272
+ href: `mailto:${contact.email}`,
2273
+ className: `text-xs no-underline hover:underline ${isDarkMode ? "text-blue-400" : "text-blue-500"}`,
2274
+ children: contact.email
2275
+ }
2276
+ )
2277
+ ] })
2278
+ ] })
2279
+ ]
2280
+ },
2281
+ contact.id || index2
2282
+ );
2283
+ }) }) });
2284
+ };
2285
+ const renderDownloads = () => {
2286
+ const downloads = product.productDownloads || [];
2287
+ if (downloads.length === 0) {
2288
+ 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") }) });
2289
+ }
2290
+ const handleDownload = (fileUrl, title) => {
2291
+ try {
2292
+ const link = document.createElement("a");
2293
+ link.href = fileUrl;
2294
+ link.download = title || "download";
2295
+ link.target = "_blank";
2296
+ document.body.appendChild(link);
2297
+ link.click();
2298
+ document.body.removeChild(link);
2299
+ } catch (error) {
2300
+ console.error("Download error:", error);
2301
+ }
2302
+ };
2303
+ 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(
2304
+ "div",
2305
+ {
2306
+ onClick: () => handleDownload(download.fileUrl, download.title),
2307
+ 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"}`,
2308
+ children: [
2309
+ /* @__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: "📄" }) }),
2310
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex-1 min-w-0", children: [
2311
+ /* @__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 }),
2312
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: `m-0 text-xs ${isDarkMode ? "text-gray-400" : "text-gray-600"}`, children: t("productCard.downloadClick") })
2313
+ ] }),
2314
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `flex-shrink-0 text-base ${isDarkMode ? "text-blue-400" : "text-blue-500"}`, children: "⬇️" })
2315
+ ]
2316
+ },
2317
+ index2
2318
+ )) }) });
2319
+ };
2320
+ const renderTabContent = () => {
2321
+ switch (activeTab) {
2322
+ case "overview":
2323
+ return renderOverview();
2324
+ case "features":
2325
+ return renderFeatures();
2326
+ case "contacts":
2327
+ return renderContacts();
2328
+ case "downloads":
2329
+ return renderDownloads();
2330
+ default:
2331
+ return null;
2332
+ }
2333
+ };
2334
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(
2335
+ "div",
2336
+ {
2337
+ className: `
2338
+ rounded-xl overflow-hidden cursor-pointer transition-all duration-300 border
2339
+ ${isDarkMode ? "bg-gray-800 border-gray-700" : "bg-white border-gray-200"}
2340
+ ${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"}`}
2341
+ `,
2342
+ onMouseEnter: () => setIsHovered(true),
2343
+ onMouseLeave: () => setIsHovered(false),
2344
+ children: [
2345
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
2346
+ "div",
2347
+ {
2348
+ className: `relative h-48 bg-cover bg-center ${isDarkMode ? "bg-gray-700" : "bg-gray-200"}`,
2349
+ style: {
2350
+ backgroundImage: `url(${mainImage})`
2351
+ },
2352
+ 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: [
2353
+ /* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "m-0 mb-2 text-lg font-bold", children: product.name }),
2354
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "m-0 text-sm opacity-90", children: product.description })
2355
+ ] })
2356
+ }
2357
+ ),
2358
+ /* @__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(
2359
+ "button",
2360
+ {
2361
+ onClick: () => setActiveTab(tab.id),
2362
+ className: `
2363
+ 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
2364
+ ${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"}`}
2365
+ `,
2366
+ children: [
2367
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: tab.label }),
2368
+ tab.count !== null && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: `
2369
+ text-xs py-0.5 px-1.5 rounded-full min-w-[18px] text-center
2370
+ ${activeTab === tab.id ? "bg-white/20 text-white" : `${isDarkMode ? "bg-gray-600 text-gray-400" : "bg-gray-200 text-gray-600"}`}
2371
+ `, children: tab.count })
2372
+ ]
2373
+ },
2374
+ tab.id
2375
+ )) }) }),
2376
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "min-h-[200px] max-h-[300px] overflow-y-auto", children: renderTabContent() })
2377
+ ]
2378
+ }
2379
+ );
2743
2380
  };
2744
- const ProductListSection = ({ data, t, isDarkMode, getProductList }) => {
2745
- const [products, setProducts] = require$$0.useState([]);
2746
- const [loading, setLoading] = require$$0.useState(true);
2747
- const [error, setError] = require$$0.useState(null);
2748
- require$$0.useEffect(() => {
2749
- const fetchProducts = () => __async(null, null, function* () {
2750
- try {
2751
- setLoading(true);
2752
- const result = yield getProductList();
2753
- if (result.success) {
2754
- setProducts(result.data || []);
2755
- } else {
2756
- setError(result.error || t("productList.errors.loadFailed"));
2757
- }
2758
- } catch (err) {
2759
- console.error("Error fetching products:", err);
2760
- setError(t("productList.errors.loadError"));
2761
- } finally {
2762
- setLoading(false);
2763
- }
2764
- });
2765
- fetchProducts();
2766
- }, [t]);
2767
- if (loading) {
2768
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `py-16 px-5 text-center ${isDarkMode ? "bg-gray-900" : "bg-gray-50"}`, children: [
2769
- /* @__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` }),
2770
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: `mt-2.5 text-base ${isDarkMode ? "text-gray-400" : "text-gray-600"}`, children: t("productList.loading") })
2771
- ] });
2772
- }
2773
- if (error) {
2774
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `py-16 px-5 text-center ${isDarkMode ? "bg-gray-900" : "bg-gray-50"}`, children: [
2775
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-red-500 text-5xl mb-4", children: "⚠️" }),
2776
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-red-500 text-base m-0", children: error })
2777
- ] });
2381
+ const TextWithTitleSection = ({ section, data, isDarkMode }) => {
2382
+ var _a;
2383
+ const textItems = (data == null ? void 0 : data.sectionDataBindingItems) || [];
2384
+ const title = ((_a = textItems[0]) == null ? void 0 : _a.value) || "";
2385
+ const descriptions = textItems.slice(1);
2386
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(SectionWrapper, { isDarkMode, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "max-w-6xl mx-auto", children: [
2387
+ title && /* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "text-title font-black mb-4 leading-tight text-left text-main", children: title }),
2388
+ descriptions.map((item, index2) => /* @__PURE__ */ jsxRuntimeExports.jsx(
2389
+ "div",
2390
+ {
2391
+ className: `text-body leading-relaxed text-left font-normal text-muted ${index2 < descriptions.length - 1 ? "mb-4" : ""}`,
2392
+ children: item.value
2393
+ },
2394
+ item.id || index2
2395
+ ))
2396
+ ] }) });
2397
+ };
2398
+ const TextSection = ({ data, isDarkMode }) => {
2399
+ const textItems = (data == null ? void 0 : data.sectionDataBindingItems) || [];
2400
+ 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(
2401
+ "div",
2402
+ {
2403
+ className: "mb-5 text-subtitle font-black leading-snug text-left text-main",
2404
+ children: item.value
2405
+ },
2406
+ item.id || index2
2407
+ )) }) });
2408
+ };
2409
+ /**
2410
+ * @license lucide-react v0.536.0 - ISC
2411
+ *
2412
+ * This source code is licensed under the ISC license.
2413
+ * See the LICENSE file in the root directory of this source tree.
2414
+ */
2415
+ const toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
2416
+ const toCamelCase = (string) => string.replace(
2417
+ /^([A-Z])|[\s-_]+(\w)/g,
2418
+ (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()
2419
+ );
2420
+ const toPascalCase = (string) => {
2421
+ const camelCase = toCamelCase(string);
2422
+ return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);
2423
+ };
2424
+ const mergeClasses = (...classes) => classes.filter((className, index2, array) => {
2425
+ return Boolean(className) && className.trim() !== "" && array.indexOf(className) === index2;
2426
+ }).join(" ").trim();
2427
+ const hasA11yProp = (props) => {
2428
+ for (const prop in props) {
2429
+ if (prop.startsWith("aria-") || prop === "role" || prop === "title") {
2430
+ return true;
2431
+ }
2778
2432
  }
2779
- if (!products || products.length === 0) {
2780
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `py-16 px-5 text-center ${isDarkMode ? "bg-gray-900" : "bg-gray-50"}`, children: [
2781
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `text-5xl mb-4 ${isDarkMode ? "text-gray-400" : "text-gray-500"}`, children: "📦" }),
2782
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: `text-base m-0 ${isDarkMode ? "text-gray-400" : "text-gray-600"}`, children: t("productList.noProducts") })
2783
- ] });
2433
+ };
2434
+ /**
2435
+ * @license lucide-react v0.536.0 - ISC
2436
+ *
2437
+ * This source code is licensed under the ISC license.
2438
+ * See the LICENSE file in the root directory of this source tree.
2439
+ */
2440
+ var defaultAttributes = {
2441
+ xmlns: "http://www.w3.org/2000/svg",
2442
+ width: 24,
2443
+ height: 24,
2444
+ viewBox: "0 0 24 24",
2445
+ fill: "none",
2446
+ stroke: "currentColor",
2447
+ strokeWidth: 2,
2448
+ strokeLinecap: "round",
2449
+ strokeLinejoin: "round"
2450
+ };
2451
+ /**
2452
+ * @license lucide-react v0.536.0 - ISC
2453
+ *
2454
+ * This source code is licensed under the ISC license.
2455
+ * See the LICENSE file in the root directory of this source tree.
2456
+ */
2457
+ const Icon = require$$0.forwardRef(
2458
+ (_a, ref) => {
2459
+ var _b = _a, {
2460
+ color = "currentColor",
2461
+ size = 24,
2462
+ strokeWidth = 2,
2463
+ absoluteStrokeWidth,
2464
+ className = "",
2465
+ children,
2466
+ iconNode
2467
+ } = _b, rest = __objRest(_b, [
2468
+ "color",
2469
+ "size",
2470
+ "strokeWidth",
2471
+ "absoluteStrokeWidth",
2472
+ "className",
2473
+ "children",
2474
+ "iconNode"
2475
+ ]);
2476
+ return require$$0.createElement(
2477
+ "svg",
2478
+ __spreadValues(__spreadValues(__spreadProps(__spreadValues({
2479
+ ref
2480
+ }, defaultAttributes), {
2481
+ width: size,
2482
+ height: size,
2483
+ stroke: color,
2484
+ strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,
2485
+ className: mergeClasses("lucide", className)
2486
+ }), !children && !hasA11yProp(rest) && { "aria-hidden": "true" }), rest),
2487
+ [
2488
+ ...iconNode.map(([tag, attrs]) => require$$0.createElement(tag, attrs)),
2489
+ ...Array.isArray(children) ? children : [children]
2490
+ ]
2491
+ );
2784
2492
  }
2785
- 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)) }) }) });
2493
+ );
2494
+ /**
2495
+ * @license lucide-react v0.536.0 - ISC
2496
+ *
2497
+ * This source code is licensed under the ISC license.
2498
+ * See the LICENSE file in the root directory of this source tree.
2499
+ */
2500
+ const createLucideIcon = (iconName, iconNode) => {
2501
+ const Component = require$$0.forwardRef(
2502
+ (_a, ref) => {
2503
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2504
+ return require$$0.createElement(Icon, __spreadValues({
2505
+ ref,
2506
+ iconNode,
2507
+ className: mergeClasses(
2508
+ `lucide-${toKebabCase(toPascalCase(iconName))}`,
2509
+ `lucide-${iconName}`,
2510
+ className
2511
+ )
2512
+ }, props));
2513
+ }
2514
+ );
2515
+ Component.displayName = toPascalCase(iconName);
2516
+ return Component;
2786
2517
  };
2787
- const ProductCard = ({ product, t, isDarkMode }) => {
2788
- var _a, _b, _c, _d, _e, _f, _g;
2789
- const [activeTab, setActiveTab] = require$$0.useState("overview");
2790
- const [isHovered, setIsHovered] = require$$0.useState(false);
2791
- 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";
2792
- const tabs = [
2793
- { id: "overview", label: t("productCard.tabs.overview"), count: null },
2794
- { id: "features", label: t("productCard.tabs.features"), count: ((_e = product.features) == null ? void 0 : _e.length) || 0 },
2795
- { id: "contacts", label: t("productCard.tabs.contacts"), count: ((_f = product.contacts) == null ? void 0 : _f.length) || 0 },
2796
- { id: "downloads", label: t("productCard.tabs.downloads"), count: ((_g = product.productDownloads) == null ? void 0 : _g.length) || 0 }
2797
- ];
2798
- const renderOverview = () => /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "p-5", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
2799
- "div",
2518
+ /**
2519
+ * @license lucide-react v0.536.0 - ISC
2520
+ *
2521
+ * This source code is licensed under the ISC license.
2522
+ * See the LICENSE file in the root directory of this source tree.
2523
+ */
2524
+ const __iconNode$o = [
2525
+ ["path", { d: "M2 4v16", key: "vw9hq8" }],
2526
+ ["path", { d: "M2 8h18a2 2 0 0 1 2 2v10", key: "1dgv2r" }],
2527
+ ["path", { d: "M2 17h20", key: "18nfp3" }],
2528
+ ["path", { d: "M6 8v9", key: "1yriud" }]
2529
+ ];
2530
+ const Bed = createLucideIcon("bed", __iconNode$o);
2531
+ /**
2532
+ * @license lucide-react v0.536.0 - ISC
2533
+ *
2534
+ * This source code is licensed under the ISC license.
2535
+ * See the LICENSE file in the root directory of this source tree.
2536
+ */
2537
+ const __iconNode$n = [
2538
+ ["path", { d: "M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16", key: "jecpp" }],
2539
+ ["rect", { width: "20", height: "14", x: "2", y: "6", rx: "2", key: "i6l2r4" }]
2540
+ ];
2541
+ const Briefcase = createLucideIcon("briefcase", __iconNode$n);
2542
+ /**
2543
+ * @license lucide-react v0.536.0 - ISC
2544
+ *
2545
+ * This source code is licensed under the ISC license.
2546
+ * See the LICENSE file in the root directory of this source tree.
2547
+ */
2548
+ const __iconNode$m = [
2549
+ ["path", { d: "M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z", key: "1b4qmf" }],
2550
+ ["path", { d: "M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2", key: "i71pzd" }],
2551
+ ["path", { d: "M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2", key: "10jefs" }],
2552
+ ["path", { d: "M10 6h4", key: "1itunk" }],
2553
+ ["path", { d: "M10 10h4", key: "tcdvrf" }],
2554
+ ["path", { d: "M10 14h4", key: "kelpxr" }],
2555
+ ["path", { d: "M10 18h4", key: "1ulq68" }]
2556
+ ];
2557
+ const Building2 = createLucideIcon("building-2", __iconNode$m);
2558
+ /**
2559
+ * @license lucide-react v0.536.0 - ISC
2560
+ *
2561
+ * This source code is licensed under the ISC license.
2562
+ * See the LICENSE file in the root directory of this source tree.
2563
+ */
2564
+ const __iconNode$l = [
2565
+ ["rect", { width: "16", height: "20", x: "4", y: "2", rx: "2", ry: "2", key: "76otgf" }],
2566
+ ["path", { d: "M9 22v-4h6v4", key: "r93iot" }],
2567
+ ["path", { d: "M8 6h.01", key: "1dz90k" }],
2568
+ ["path", { d: "M16 6h.01", key: "1x0f13" }],
2569
+ ["path", { d: "M12 6h.01", key: "1vi96p" }],
2570
+ ["path", { d: "M12 10h.01", key: "1nrarc" }],
2571
+ ["path", { d: "M12 14h.01", key: "1etili" }],
2572
+ ["path", { d: "M16 10h.01", key: "1m94wz" }],
2573
+ ["path", { d: "M16 14h.01", key: "1gbofw" }],
2574
+ ["path", { d: "M8 10h.01", key: "19clt8" }],
2575
+ ["path", { d: "M8 14h.01", key: "6423bh" }]
2576
+ ];
2577
+ const Building = createLucideIcon("building", __iconNode$l);
2578
+ /**
2579
+ * @license lucide-react v0.536.0 - ISC
2580
+ *
2581
+ * This source code is licensed under the ISC license.
2582
+ * See the LICENSE file in the root directory of this source tree.
2583
+ */
2584
+ const __iconNode$k = [
2585
+ ["rect", { width: "16", height: "20", x: "4", y: "2", rx: "2", key: "1nb95v" }],
2586
+ ["line", { x1: "8", x2: "16", y1: "6", y2: "6", key: "x4nwl0" }],
2587
+ ["line", { x1: "16", x2: "16", y1: "14", y2: "18", key: "wjye3r" }],
2588
+ ["path", { d: "M16 10h.01", key: "1m94wz" }],
2589
+ ["path", { d: "M12 10h.01", key: "1nrarc" }],
2590
+ ["path", { d: "M8 10h.01", key: "19clt8" }],
2591
+ ["path", { d: "M12 14h.01", key: "1etili" }],
2592
+ ["path", { d: "M8 14h.01", key: "6423bh" }],
2593
+ ["path", { d: "M12 18h.01", key: "mhygvu" }],
2594
+ ["path", { d: "M8 18h.01", key: "lrp35t" }]
2595
+ ];
2596
+ const Calculator = createLucideIcon("calculator", __iconNode$k);
2597
+ /**
2598
+ * @license lucide-react v0.536.0 - ISC
2599
+ *
2600
+ * This source code is licensed under the ISC license.
2601
+ * See the LICENSE file in the root directory of this source tree.
2602
+ */
2603
+ const __iconNode$j = [
2604
+ ["path", { d: "M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z", key: "p7xjir" }]
2605
+ ];
2606
+ const Cloud = createLucideIcon("cloud", __iconNode$j);
2607
+ /**
2608
+ * @license lucide-react v0.536.0 - ISC
2609
+ *
2610
+ * This source code is licensed under the ISC license.
2611
+ * See the LICENSE file in the root directory of this source tree.
2612
+ */
2613
+ const __iconNode$i = [
2614
+ ["ellipse", { cx: "12", cy: "5", rx: "9", ry: "3", key: "msslwz" }],
2615
+ ["path", { d: "M3 5V19A9 3 0 0 0 21 19V5", key: "1wlel7" }],
2616
+ ["path", { d: "M3 12A9 3 0 0 0 21 12", key: "mv7ke4" }]
2617
+ ];
2618
+ const Database = createLucideIcon("database", __iconNode$i);
2619
+ /**
2620
+ * @license lucide-react v0.536.0 - ISC
2621
+ *
2622
+ * This source code is licensed under the ISC license.
2623
+ * See the LICENSE file in the root directory of this source tree.
2624
+ */
2625
+ const __iconNode$h = [
2626
+ ["path", { d: "M12 16h.01", key: "1drbdi" }],
2627
+ ["path", { d: "M16 16h.01", key: "1f9h7w" }],
2628
+ [
2629
+ "path",
2800
2630
  {
2801
- className: `text-sm leading-relaxed ${isDarkMode ? "text-gray-300" : "text-gray-700"}`,
2802
- dangerouslySetInnerHTML: {
2803
- __html: product.overviewContent || product.description || t("productCard.noOverview")
2804
- }
2631
+ 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",
2632
+ key: "1iv0i2"
2805
2633
  }
2806
- ) });
2807
- const renderFeatures = () => {
2808
- const features = product.features || [];
2809
- if (features.length === 0) {
2810
- 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") }) });
2634
+ ],
2635
+ ["path", { d: "M8 16h.01", key: "18s6g9" }]
2636
+ ];
2637
+ const Factory = createLucideIcon("factory", __iconNode$h);
2638
+ /**
2639
+ * @license lucide-react v0.536.0 - ISC
2640
+ *
2641
+ * This source code is licensed under the ISC license.
2642
+ * See the LICENSE file in the root directory of this source tree.
2643
+ */
2644
+ const __iconNode$g = [
2645
+ ["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
2646
+ ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
2647
+ ["path", { d: "M10 9H8", key: "b1mrlr" }],
2648
+ ["path", { d: "M16 13H8", key: "t4e002" }],
2649
+ ["path", { d: "M16 17H8", key: "z1uh3a" }]
2650
+ ];
2651
+ const FileText = createLucideIcon("file-text", __iconNode$g);
2652
+ /**
2653
+ * @license lucide-react v0.536.0 - ISC
2654
+ *
2655
+ * This source code is licensed under the ISC license.
2656
+ * See the LICENSE file in the root directory of this source tree.
2657
+ */
2658
+ const __iconNode$f = [
2659
+ ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
2660
+ ["path", { d: "M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20", key: "13o1zl" }],
2661
+ ["path", { d: "M2 12h20", key: "9i4pu4" }]
2662
+ ];
2663
+ const Globe = createLucideIcon("globe", __iconNode$f);
2664
+ /**
2665
+ * @license lucide-react v0.536.0 - ISC
2666
+ *
2667
+ * This source code is licensed under the ISC license.
2668
+ * See the LICENSE file in the root directory of this source tree.
2669
+ */
2670
+ const __iconNode$e = [
2671
+ [
2672
+ "path",
2673
+ {
2674
+ 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",
2675
+ key: "j76jl0"
2811
2676
  }
2812
- const sortedFeatures = [...features].sort((a, b) => (a.order || 0) - (b.order || 0));
2813
- 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(
2814
- "div",
2815
- {
2816
- className: `p-4 rounded-lg border-l-4 border-blue-500 ${isDarkMode ? "bg-gray-700" : "bg-gray-100"}`,
2817
- children: [
2818
- /* @__PURE__ */ jsxRuntimeExports.jsx("h4", { className: `m-0 mb-2 text-sm font-bold ${isDarkMode ? "text-white" : "text-gray-900"}`, children: feature.title }),
2819
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: `m-0 text-xs leading-relaxed ${isDarkMode ? "text-gray-400" : "text-gray-600"}`, children: feature.description })
2820
- ]
2821
- },
2822
- index2
2823
- )) }) });
2824
- };
2825
- const renderContacts = () => {
2826
- const contacts = product.contacts || [];
2827
- if (contacts.length === 0) {
2828
- 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") }) });
2677
+ ],
2678
+ ["path", { d: "M22 10v6", key: "1lu8f3" }],
2679
+ ["path", { d: "M6 12.5V16a6 3 0 0 0 12 0v-3.5", key: "1r8lef" }]
2680
+ ];
2681
+ const GraduationCap = createLucideIcon("graduation-cap", __iconNode$e);
2682
+ /**
2683
+ * @license lucide-react v0.536.0 - ISC
2684
+ *
2685
+ * This source code is licensed under the ISC license.
2686
+ * See the LICENSE file in the root directory of this source tree.
2687
+ */
2688
+ const __iconNode$d = [
2689
+ [
2690
+ "path",
2691
+ {
2692
+ 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",
2693
+ key: "mvr1a0"
2829
2694
  }
2830
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "p-5", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-col gap-4", children: contacts.map((contact, index2) => {
2831
- var _a2, _b2;
2832
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(
2833
- "div",
2834
- {
2835
- className: `p-4 rounded-lg border ${isDarkMode ? "bg-gray-700 border-gray-600" : "bg-gray-100 border-gray-200"}`,
2836
- children: [
2837
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center mb-2", children: [
2838
- /* @__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()) || "?" }) }),
2839
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
2840
- /* @__PURE__ */ jsxRuntimeExports.jsx("h4", { className: `m-0 mb-0.5 text-sm font-bold ${isDarkMode ? "text-white" : "text-gray-900"}`, children: contact.name }),
2841
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: `m-0 text-xs ${isDarkMode ? "text-gray-400" : "text-gray-600"}`, children: contact.position })
2842
- ] })
2843
- ] }),
2844
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-1", children: [
2845
- contact.phone && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2", children: [
2846
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: `text-sm ${isDarkMode ? "text-blue-400" : "text-blue-500"}`, children: "📞" }),
2847
- /* @__PURE__ */ jsxRuntimeExports.jsx(
2848
- "a",
2849
- {
2850
- href: `tel:${contact.phone}`,
2851
- className: `text-xs no-underline hover:underline ${isDarkMode ? "text-blue-400" : "text-blue-500"}`,
2852
- children: contact.phone
2853
- }
2854
- )
2855
- ] }),
2856
- contact.email && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2", children: [
2857
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: `text-sm ${isDarkMode ? "text-blue-400" : "text-blue-500"}`, children: "✉️" }),
2858
- /* @__PURE__ */ jsxRuntimeExports.jsx(
2859
- "a",
2860
- {
2861
- href: `mailto:${contact.email}`,
2862
- className: `text-xs no-underline hover:underline ${isDarkMode ? "text-blue-400" : "text-blue-500"}`,
2863
- children: contact.email
2864
- }
2865
- )
2866
- ] })
2867
- ] })
2868
- ]
2869
- },
2870
- contact.id || index2
2871
- );
2872
- }) }) });
2873
- };
2874
- const renderDownloads = () => {
2875
- const downloads = product.productDownloads || [];
2876
- if (downloads.length === 0) {
2877
- 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") }) });
2695
+ ]
2696
+ ];
2697
+ const Heart = createLucideIcon("heart", __iconNode$d);
2698
+ /**
2699
+ * @license lucide-react v0.536.0 - ISC
2700
+ *
2701
+ * This source code is licensed under the ISC license.
2702
+ * See the LICENSE file in the root directory of this source tree.
2703
+ */
2704
+ const __iconNode$c = [
2705
+ ["path", { d: "M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8", key: "5wwlr5" }],
2706
+ [
2707
+ "path",
2708
+ {
2709
+ 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",
2710
+ key: "1d0kgt"
2711
+ }
2712
+ ]
2713
+ ];
2714
+ const House = createLucideIcon("house", __iconNode$c);
2715
+ /**
2716
+ * @license lucide-react v0.536.0 - ISC
2717
+ *
2718
+ * This source code is licensed under the ISC license.
2719
+ * See the LICENSE file in the root directory of this source tree.
2720
+ */
2721
+ const __iconNode$b = [
2722
+ [
2723
+ "path",
2724
+ {
2725
+ 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",
2726
+ key: "q8bfy3"
2727
+ }
2728
+ ],
2729
+ ["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" }],
2730
+ ["path", { d: "M8 6v8", key: "15ugcq" }]
2731
+ ];
2732
+ const Megaphone = createLucideIcon("megaphone", __iconNode$b);
2733
+ /**
2734
+ * @license lucide-react v0.536.0 - ISC
2735
+ *
2736
+ * This source code is licensed under the ISC license.
2737
+ * See the LICENSE file in the root directory of this source tree.
2738
+ */
2739
+ const __iconNode$a = [
2740
+ [
2741
+ "path",
2742
+ {
2743
+ 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",
2744
+ key: "1a0edw"
2745
+ }
2746
+ ],
2747
+ ["path", { d: "M12 22V12", key: "d0xqtd" }],
2748
+ ["polyline", { points: "3.29 7 12 12 20.71 7", key: "ousv84" }],
2749
+ ["path", { d: "m7.5 4.27 9 5.15", key: "1c824w" }]
2750
+ ];
2751
+ const Package = createLucideIcon("package", __iconNode$a);
2752
+ /**
2753
+ * @license lucide-react v0.536.0 - ISC
2754
+ *
2755
+ * This source code is licensed under the ISC license.
2756
+ * See the LICENSE file in the root directory of this source tree.
2757
+ */
2758
+ const __iconNode$9 = [
2759
+ [
2760
+ "path",
2761
+ {
2762
+ 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",
2763
+ key: "1v9wt8"
2878
2764
  }
2879
- const handleDownload = (fileUrl, title) => {
2880
- try {
2881
- const link = document.createElement("a");
2882
- link.href = fileUrl;
2883
- link.download = title || "download";
2884
- link.target = "_blank";
2885
- document.body.appendChild(link);
2886
- link.click();
2887
- document.body.removeChild(link);
2888
- } catch (error) {
2889
- console.error("Download error:", error);
2890
- }
2891
- };
2892
- 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(
2893
- "div",
2894
- {
2895
- onClick: () => handleDownload(download.fileUrl, download.title),
2896
- 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"}`,
2897
- children: [
2898
- /* @__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: "📄" }) }),
2899
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex-1 min-w-0", children: [
2900
- /* @__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 }),
2901
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: `m-0 text-xs ${isDarkMode ? "text-gray-400" : "text-gray-600"}`, children: t("productCard.downloadClick") })
2902
- ] }),
2903
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `flex-shrink-0 text-base ${isDarkMode ? "text-blue-400" : "text-blue-500"}`, children: "⬇️" })
2904
- ]
2905
- },
2906
- index2
2907
- )) }) });
2908
- };
2909
- const renderTabContent = () => {
2910
- switch (activeTab) {
2911
- case "overview":
2912
- return renderOverview();
2913
- case "features":
2914
- return renderFeatures();
2915
- case "contacts":
2916
- return renderContacts();
2917
- case "downloads":
2918
- return renderDownloads();
2919
- default:
2920
- return null;
2765
+ ]
2766
+ ];
2767
+ const Plane = createLucideIcon("plane", __iconNode$9);
2768
+ /**
2769
+ * @license lucide-react v0.536.0 - ISC
2770
+ *
2771
+ * This source code is licensed under the ISC license.
2772
+ * See the LICENSE file in the root directory of this source tree.
2773
+ */
2774
+ const __iconNode$8 = [
2775
+ [
2776
+ "path",
2777
+ {
2778
+ 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",
2779
+ key: "1i5ecw"
2921
2780
  }
2922
- };
2923
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(
2924
- "div",
2781
+ ],
2782
+ ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
2783
+ ];
2784
+ const Settings = createLucideIcon("settings", __iconNode$8);
2785
+ /**
2786
+ * @license lucide-react v0.536.0 - ISC
2787
+ *
2788
+ * This source code is licensed under the ISC license.
2789
+ * See the LICENSE file in the root directory of this source tree.
2790
+ */
2791
+ const __iconNode$7 = [
2792
+ [
2793
+ "path",
2925
2794
  {
2926
- className: `
2927
- rounded-xl overflow-hidden cursor-pointer transition-all duration-300 border
2928
- ${isDarkMode ? "bg-gray-800 border-gray-700" : "bg-white border-gray-200"}
2929
- ${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"}`}
2930
- `,
2931
- onMouseEnter: () => setIsHovered(true),
2932
- onMouseLeave: () => setIsHovered(false),
2933
- children: [
2934
- /* @__PURE__ */ jsxRuntimeExports.jsx(
2935
- "div",
2936
- {
2937
- className: `relative h-48 bg-cover bg-center ${isDarkMode ? "bg-gray-700" : "bg-gray-200"}`,
2938
- style: {
2939
- backgroundImage: `url(${mainImage})`
2940
- },
2941
- 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: [
2942
- /* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "m-0 mb-2 text-lg font-bold", children: product.name }),
2943
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "m-0 text-sm opacity-90", children: product.description })
2944
- ] })
2945
- }
2946
- ),
2947
- /* @__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(
2948
- "button",
2949
- {
2950
- onClick: () => setActiveTab(tab.id),
2951
- className: `
2952
- 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
2953
- ${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"}`}
2954
- `,
2955
- children: [
2956
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: tab.label }),
2957
- tab.count !== null && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: `
2958
- text-xs py-0.5 px-1.5 rounded-full min-w-[18px] text-center
2959
- ${activeTab === tab.id ? "bg-white/20 text-white" : `${isDarkMode ? "bg-gray-600 text-gray-400" : "bg-gray-200 text-gray-600"}`}
2960
- `, children: tab.count })
2961
- ]
2962
- },
2963
- tab.id
2964
- )) }) }),
2965
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "min-h-[200px] max-h-[300px] overflow-y-auto", children: renderTabContent() })
2966
- ]
2795
+ 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",
2796
+ key: "oel41y"
2967
2797
  }
2968
- );
2969
- };
2970
- const TextWithTitleSection = ({ section, data, isDarkMode }) => {
2971
- var _a;
2972
- const textItems = (data == null ? void 0 : data.sectionDataBindingItems) || [];
2973
- const title = ((_a = textItems[0]) == null ? void 0 : _a.value) || "";
2974
- const descriptions = textItems.slice(1);
2975
- return /* @__PURE__ */ jsxRuntimeExports.jsx(SectionWrapper, { isDarkMode, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "max-w-6xl mx-auto", children: [
2976
- title && /* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "text-title font-black mb-4 leading-tight text-left text-main", children: title }),
2977
- descriptions.map((item, index2) => /* @__PURE__ */ jsxRuntimeExports.jsx(
2978
- "div",
2979
- {
2980
- className: `text-body leading-relaxed text-left font-normal text-muted ${index2 < descriptions.length - 1 ? "mb-4" : ""}`,
2981
- children: item.value
2982
- },
2983
- item.id || index2
2984
- ))
2985
- ] }) });
2986
- };
2987
- const TextSection = ({ data, isDarkMode }) => {
2988
- const textItems = (data == null ? void 0 : data.sectionDataBindingItems) || [];
2989
- 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(
2990
- "div",
2798
+ ]
2799
+ ];
2800
+ const Shield = createLucideIcon("shield", __iconNode$7);
2801
+ /**
2802
+ * @license lucide-react v0.536.0 - ISC
2803
+ *
2804
+ * This source code is licensed under the ISC license.
2805
+ * See the LICENSE file in the root directory of this source tree.
2806
+ */
2807
+ const __iconNode$6 = [
2808
+ ["circle", { cx: "8", cy: "21", r: "1", key: "jimo8o" }],
2809
+ ["circle", { cx: "19", cy: "21", r: "1", key: "13723u" }],
2810
+ [
2811
+ "path",
2991
2812
  {
2992
- className: "mb-5 text-subtitle font-black leading-snug text-left text-main",
2993
- children: item.value
2994
- },
2995
- item.id || index2
2996
- )) }) });
2997
- };
2813
+ 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",
2814
+ key: "9zh506"
2815
+ }
2816
+ ]
2817
+ ];
2818
+ const ShoppingCart = createLucideIcon("shopping-cart", __iconNode$6);
2819
+ /**
2820
+ * @license lucide-react v0.536.0 - ISC
2821
+ *
2822
+ * This source code is licensed under the ISC license.
2823
+ * See the LICENSE file in the root directory of this source tree.
2824
+ */
2825
+ const __iconNode$5 = [
2826
+ ["rect", { width: "14", height: "20", x: "5", y: "2", rx: "2", ry: "2", key: "1yt0o3" }],
2827
+ ["path", { d: "M12 18h.01", key: "mhygvu" }]
2828
+ ];
2829
+ const Smartphone = createLucideIcon("smartphone", __iconNode$5);
2830
+ /**
2831
+ * @license lucide-react v0.536.0 - ISC
2832
+ *
2833
+ * This source code is licensed under the ISC license.
2834
+ * See the LICENSE file in the root directory of this source tree.
2835
+ */
2836
+ const __iconNode$4 = [
2837
+ ["path", { d: "M16 7h6v6", key: "box55l" }],
2838
+ ["path", { d: "m22 7-8.5 8.5-5-5L2 17", key: "1t1m79" }]
2839
+ ];
2840
+ const TrendingUp = createLucideIcon("trending-up", __iconNode$4);
2841
+ /**
2842
+ * @license lucide-react v0.536.0 - ISC
2843
+ *
2844
+ * This source code is licensed under the ISC license.
2845
+ * See the LICENSE file in the root directory of this source tree.
2846
+ */
2847
+ const __iconNode$3 = [
2848
+ ["path", { d: "M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2", key: "wrbu53" }],
2849
+ ["path", { d: "M15 18H9", key: "1lyqi6" }],
2850
+ [
2851
+ "path",
2852
+ {
2853
+ 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",
2854
+ key: "lysw3i"
2855
+ }
2856
+ ],
2857
+ ["circle", { cx: "17", cy: "18", r: "2", key: "332jqn" }],
2858
+ ["circle", { cx: "7", cy: "18", r: "2", key: "19iecd" }]
2859
+ ];
2860
+ const Truck = createLucideIcon("truck", __iconNode$3);
2861
+ /**
2862
+ * @license lucide-react v0.536.0 - ISC
2863
+ *
2864
+ * This source code is licensed under the ISC license.
2865
+ * See the LICENSE file in the root directory of this source tree.
2866
+ */
2867
+ const __iconNode$2 = [
2868
+ ["path", { d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2", key: "1yyitq" }],
2869
+ ["path", { d: "M16 3.128a4 4 0 0 1 0 7.744", key: "16gr8j" }],
2870
+ ["path", { d: "M22 21v-2a4 4 0 0 0-3-3.87", key: "kshegd" }],
2871
+ ["circle", { cx: "9", cy: "7", r: "4", key: "nufk8" }]
2872
+ ];
2873
+ const Users = createLucideIcon("users", __iconNode$2);
2874
+ /**
2875
+ * @license lucide-react v0.536.0 - ISC
2876
+ *
2877
+ * This source code is licensed under the ISC license.
2878
+ * See the LICENSE file in the root directory of this source tree.
2879
+ */
2880
+ const __iconNode$1 = [
2881
+ [
2882
+ "path",
2883
+ {
2884
+ 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",
2885
+ key: "1ngwbx"
2886
+ }
2887
+ ]
2888
+ ];
2889
+ const Wrench = createLucideIcon("wrench", __iconNode$1);
2890
+ /**
2891
+ * @license lucide-react v0.536.0 - ISC
2892
+ *
2893
+ * This source code is licensed under the ISC license.
2894
+ * See the LICENSE file in the root directory of this source tree.
2895
+ */
2896
+ const __iconNode = [
2897
+ [
2898
+ "path",
2899
+ {
2900
+ 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",
2901
+ key: "1xq2db"
2902
+ }
2903
+ ]
2904
+ ];
2905
+ const Zap = createLucideIcon("zap", __iconNode);
2998
2906
  const DiagramSection = ({ data, t, isDarkMode }) => {
2999
2907
  var _a, _b;
3000
2908
  const [mounted, setMounted] = require$$0.useState(false);
@@ -3621,7 +3529,7 @@ var __async = (__this, __arguments, generator) => {
3621
3529
  style: {
3622
3530
  background: isHovered || isDragging ? colorStyle.gradientHover : colorStyle.gradient,
3623
3531
  borderColor: colorStyle.border + "80",
3624
- boxShadow: `0 10px 40px ${colorStyle.shadowColor}4D`,
3532
+ boxShadow: `0 10px 40px rgba(var(--brand-primary), 0.3)`,
3625
3533
  transform: isHovered || isDragging ? "scale(1.1)" : "scale(1)",
3626
3534
  filter: isHovered || isDragging ? "brightness(1.1)" : "brightness(1)",
3627
3535
  rotate: isDragging ? "2deg" : "0deg"
@@ -4075,8 +3983,7 @@ var __async = (__this, __arguments, generator) => {
4075
3983
  {
4076
3984
  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",
4077
3985
  style: {
4078
- borderColor: "var(--brand-primary)",
4079
- borderOpacity: 0.5,
3986
+ borderColor: "rgba(var(--brand-primary-rgb), 0.5)",
4080
3987
  transform: isDragging ? "scale(1.1)" : "scale(1)",
4081
3988
  transition: "transform 0.3s ease"
4082
3989
  },
@@ -4151,7 +4058,14 @@ var __async = (__this, __arguments, generator) => {
4151
4058
  flex-shrink-0 w-10 h-10 rounded-full flex items-center justify-center
4152
4059
  transition-all duration-500 transform
4153
4060
  ${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"}
4154
- `, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronDown, { className: `w-5 h-5 transition-transform duration-500 ${isActive ? "rotate-180" : ""}` }) })
4061
+ `, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
4062
+ ThemeIcon,
4063
+ {
4064
+ name: "icon-faqChevronDown",
4065
+ folder: "common",
4066
+ className: `w-5 h-5 icon-muted transition-transform duration-500 ${isActive ? "rotate-180" : ""}`
4067
+ }
4068
+ ) })
4155
4069
  ]
4156
4070
  }
4157
4071
  ),
@@ -4230,15 +4144,7 @@ var __async = (__this, __arguments, generator) => {
4230
4144
  },
4231
4145
  onMouseEnter: (e) => e.currentTarget.style.transform = "scale(1.1)",
4232
4146
  onMouseLeave: (e) => e.currentTarget.style.transform = "scale(1)",
4233
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(
4234
- "svg",
4235
- {
4236
- className: "w-6 h-6 text-white",
4237
- fill: "currentColor",
4238
- viewBox: "0 0 24 24",
4239
- 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" })
4240
- }
4241
- )
4147
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-faqQuestion", className: "w-4 h-4 icon-gradient" })
4242
4148
  }
4243
4149
  ) }),
4244
4150
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-center mb-12 animate-fade-in", children: [
@@ -4611,7 +4517,7 @@ var __async = (__this, __arguments, generator) => {
4611
4517
  },
4612
4518
  children: [
4613
4519
  t("pageChildrenSelect.moreInsights"),
4614
- /* @__PURE__ */ jsxRuntimeExports.jsx(ArrowRight, { size: 18 })
4520
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-pageChildrenSelectArrowRight", folder: "PageChildrenSelectSection", className: "w-4 h-4 icon-muted" })
4615
4521
  ]
4616
4522
  }
4617
4523
  ) })
@@ -4686,13 +4592,7 @@ var __async = (__this, __arguments, generator) => {
4686
4592
  display: "flex",
4687
4593
  alignItems: "center",
4688
4594
  paddingLeft: "16px"
4689
- }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
4690
- ChevronRight,
4691
- {
4692
- size: 20,
4693
- className: "card-text"
4694
- }
4695
- ) })
4595
+ }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-pageChildrenSelectChevronRight", folder: "PageChildrenSelectSection", className: "w-4 h-4 card-text" }) })
4696
4596
  ]
4697
4597
  },
4698
4598
  page.id
@@ -4717,7 +4617,7 @@ var __async = (__this, __arguments, generator) => {
4717
4617
  },
4718
4618
  children: [
4719
4619
  t("pageChildrenSelect.moreInsights"),
4720
- /* @__PURE__ */ jsxRuntimeExports.jsx(ArrowRight, { size: 18 })
4620
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-pageChildrenSelectArrowRight", folder: "PageChildrenSelectSection", className: "w-4 h-4 icon-muted" })
4721
4621
  ]
4722
4622
  }
4723
4623
  ) })
@@ -4827,7 +4727,7 @@ var __async = (__this, __arguments, generator) => {
4827
4727
  },
4828
4728
  children: [
4829
4729
  t("pageChildrenSelect.moreInsights"),
4830
- /* @__PURE__ */ jsxRuntimeExports.jsx(ArrowRight, { size: 18 })
4730
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-pageChildrenSelectArrowRight", folder: "PageChildrenSelectSection", className: "w-4 h-4 icon-muted" })
4831
4731
  ]
4832
4732
  }
4833
4733
  ) })