nvis-fe-cms-libs 2.0.2 → 2.0.4

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