@aws505/sheetsite 1.0.2 → 1.0.3

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.
package/dist/index.mjs CHANGED
@@ -4169,7 +4169,7 @@ function Services({
4169
4169
  4: "md:grid-cols-2 lg:grid-cols-4"
4170
4170
  };
4171
4171
  if (variant === "list") {
4172
- return /* @__PURE__ */ jsx5("section", { id, className: `py-16 ${className}`, children: /* @__PURE__ */ jsxs5("div", { className: "container mx-auto px-4", children: [
4172
+ return /* @__PURE__ */ jsx5("section", { id, className: `py-16 scroll-mt-20 ${className}`, children: /* @__PURE__ */ jsxs5("div", { className: "container mx-auto px-4", children: [
4173
4173
  /* @__PURE__ */ jsx5(SectionHeader, { title, subtitle }),
4174
4174
  /* @__PURE__ */ jsx5("div", { className: "max-w-3xl mx-auto divide-y divide-gray-200", children: displayedServices.map((service) => /* @__PURE__ */ jsx5(
4175
4175
  ServiceListItem,
@@ -4183,7 +4183,7 @@ function Services({
4183
4183
  ] }) });
4184
4184
  }
4185
4185
  if (variant === "minimal") {
4186
- return /* @__PURE__ */ jsx5("section", { id, className: `py-16 ${className}`, children: /* @__PURE__ */ jsxs5("div", { className: "container mx-auto px-4", children: [
4186
+ return /* @__PURE__ */ jsx5("section", { id, className: `py-16 scroll-mt-20 ${className}`, children: /* @__PURE__ */ jsxs5("div", { className: "container mx-auto px-4", children: [
4187
4187
  /* @__PURE__ */ jsx5(SectionHeader, { title, subtitle }),
4188
4188
  /* @__PURE__ */ jsx5("div", { className: `grid gap-6 ${gridCols[columns]}`, children: displayedServices.map((service) => /* @__PURE__ */ jsx5(
4189
4189
  ServiceMinimalCard,
@@ -4195,7 +4195,7 @@ function Services({
4195
4195
  )) })
4196
4196
  ] }) });
4197
4197
  }
4198
- return /* @__PURE__ */ jsx5("section", { id, className: `py-16 bg-gray-50 ${className}`, children: /* @__PURE__ */ jsxs5("div", { className: "container mx-auto px-4", children: [
4198
+ return /* @__PURE__ */ jsx5("section", { id, className: `py-16 scroll-mt-20 bg-gray-50 ${className}`, children: /* @__PURE__ */ jsxs5("div", { className: "container mx-auto px-4", children: [
4199
4199
  /* @__PURE__ */ jsx5(SectionHeader, { title, subtitle }),
4200
4200
  /* @__PURE__ */ jsx5("div", { className: `grid gap-6 ${gridCols[columns]}`, children: displayedServices.map((service) => /* @__PURE__ */ jsx5(
4201
4201
  ServiceCard,
@@ -4278,7 +4278,7 @@ function Testimonials({
4278
4278
  2: "md:grid-cols-2 max-w-4xl mx-auto",
4279
4279
  3: "md:grid-cols-2 lg:grid-cols-3"
4280
4280
  };
4281
- return /* @__PURE__ */ jsx6("section", { id, className: `py-16 ${className}`, children: /* @__PURE__ */ jsxs6("div", { className: "container mx-auto px-4", children: [
4281
+ return /* @__PURE__ */ jsx6("section", { id, className: `py-16 scroll-mt-20 ${className}`, children: /* @__PURE__ */ jsxs6("div", { className: "container mx-auto px-4", children: [
4282
4282
  /* @__PURE__ */ jsxs6("div", { className: "text-center mb-12", children: [
4283
4283
  /* @__PURE__ */ jsx6("h2", { className: "text-3xl md:text-4xl font-bold text-gray-900 mb-4", children: title }),
4284
4284
  subtitle && /* @__PURE__ */ jsx6("p", { className: "text-lg text-gray-600 max-w-2xl mx-auto", children: subtitle })
@@ -4398,18 +4398,18 @@ function FAQ({
4398
4398
  }
4399
4399
  };
4400
4400
  if (variant === "cards") {
4401
- return /* @__PURE__ */ jsx7("section", { id, className: `py-16 ${className}`, children: /* @__PURE__ */ jsxs7("div", { className: "container mx-auto px-4", children: [
4401
+ return /* @__PURE__ */ jsx7("section", { id, className: `py-16 scroll-mt-20 ${className}`, children: /* @__PURE__ */ jsxs7("div", { className: "container mx-auto px-4", children: [
4402
4402
  /* @__PURE__ */ jsx7(SectionHeader2, { title, subtitle }),
4403
4403
  /* @__PURE__ */ jsx7("div", { className: "grid md:grid-cols-2 gap-6 max-w-4xl mx-auto", children: items.map((item) => /* @__PURE__ */ jsx7(FAQCard, { item }, item.id || item.question)) })
4404
4404
  ] }) });
4405
4405
  }
4406
4406
  if (variant === "simple") {
4407
- return /* @__PURE__ */ jsx7("section", { id, className: `py-16 ${className}`, children: /* @__PURE__ */ jsxs7("div", { className: "container mx-auto px-4", children: [
4407
+ return /* @__PURE__ */ jsx7("section", { id, className: `py-16 scroll-mt-20 ${className}`, children: /* @__PURE__ */ jsxs7("div", { className: "container mx-auto px-4", children: [
4408
4408
  /* @__PURE__ */ jsx7(SectionHeader2, { title, subtitle }),
4409
4409
  /* @__PURE__ */ jsx7("div", { className: "max-w-3xl mx-auto space-y-8", children: items.map((item) => /* @__PURE__ */ jsx7(FAQSimple, { item }, item.id || item.question)) })
4410
4410
  ] }) });
4411
4411
  }
4412
- return /* @__PURE__ */ jsx7("section", { id, className: `py-16 bg-gray-50 ${className}`, children: /* @__PURE__ */ jsxs7("div", { className: "container mx-auto px-4", children: [
4412
+ return /* @__PURE__ */ jsx7("section", { id, className: `py-16 scroll-mt-20 bg-gray-50 ${className}`, children: /* @__PURE__ */ jsxs7("div", { className: "container mx-auto px-4", children: [
4413
4413
  /* @__PURE__ */ jsx7(SectionHeader2, { title, subtitle }),
4414
4414
  /* @__PURE__ */ jsx7("div", { className: "max-w-3xl mx-auto", children: items.map((item, index) => /* @__PURE__ */ jsx7(
4415
4415
  FAQAccordionItem,
@@ -4621,53 +4621,155 @@ function Gallery({
4621
4621
  columns = 3,
4622
4622
  variant = "grid",
4623
4623
  showCaptions = true,
4624
+ enableLightbox = true,
4624
4625
  limit,
4625
- className = ""
4626
+ className = "",
4627
+ id = "gallery"
4626
4628
  }) {
4627
4629
  const displayedItems = limit ? items.slice(0, limit) : items;
4628
4630
  const [failedImages, setFailedImages] = useState3(/* @__PURE__ */ new Set());
4629
- const handleImageError = (id) => {
4630
- setFailedImages((prev) => new Set(prev).add(id));
4631
+ const [lightboxIndex, setLightboxIndex] = useState3(null);
4632
+ const handleImageError = (id2) => {
4633
+ setFailedImages((prev) => new Set(prev).add(id2));
4631
4634
  };
4632
4635
  const gridCols = {
4633
4636
  2: "grid-cols-1 sm:grid-cols-2",
4634
4637
  3: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3",
4635
4638
  4: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-4"
4636
4639
  };
4637
- return /* @__PURE__ */ jsx9("section", { className: `py-16 ${className}`, children: /* @__PURE__ */ jsxs9("div", { className: "container mx-auto px-4", children: [
4638
- (title || subtitle) && /* @__PURE__ */ jsxs9("div", { className: "text-center mb-12", children: [
4639
- title && /* @__PURE__ */ jsx9("h2", { className: "text-3xl md:text-4xl font-bold text-gray-900 mb-4", children: title }),
4640
- subtitle && /* @__PURE__ */ jsx9("p", { className: "text-lg text-gray-600 max-w-2xl mx-auto", children: subtitle })
4640
+ const openLightbox = (index) => {
4641
+ if (enableLightbox) {
4642
+ setLightboxIndex(index);
4643
+ }
4644
+ };
4645
+ const closeLightbox = () => setLightboxIndex(null);
4646
+ const goToPrevious = () => {
4647
+ if (lightboxIndex !== null) {
4648
+ setLightboxIndex(lightboxIndex === 0 ? displayedItems.length - 1 : lightboxIndex - 1);
4649
+ }
4650
+ };
4651
+ const goToNext = () => {
4652
+ if (lightboxIndex !== null) {
4653
+ setLightboxIndex(lightboxIndex === displayedItems.length - 1 ? 0 : lightboxIndex + 1);
4654
+ }
4655
+ };
4656
+ return /* @__PURE__ */ jsxs9("section", { id, className: `py-16 scroll-mt-20 ${className}`, children: [
4657
+ /* @__PURE__ */ jsxs9("div", { className: "container mx-auto px-4", children: [
4658
+ (title || subtitle) && /* @__PURE__ */ jsxs9("div", { className: "text-center mb-12", children: [
4659
+ title && /* @__PURE__ */ jsx9("h2", { className: "text-3xl md:text-4xl font-bold text-gray-900 mb-4", children: title }),
4660
+ subtitle && /* @__PURE__ */ jsx9("p", { className: "text-lg text-gray-600 max-w-2xl mx-auto", children: subtitle })
4661
+ ] }),
4662
+ /* @__PURE__ */ jsx9("div", { className: `grid gap-4 ${gridCols[columns]}`, children: displayedItems.map((item, index) => {
4663
+ const itemId = item.id || item.imageUrl;
4664
+ const hasFailed = failedImages.has(itemId);
4665
+ return /* @__PURE__ */ jsx9(
4666
+ "div",
4667
+ {
4668
+ className: `group relative aspect-square overflow-hidden rounded-lg bg-gray-100 ${enableLightbox ? "cursor-pointer" : ""}`,
4669
+ onClick: () => openLightbox(index),
4670
+ role: enableLightbox ? "button" : void 0,
4671
+ tabIndex: enableLightbox ? 0 : void 0,
4672
+ onKeyDown: enableLightbox ? (e) => e.key === "Enter" && openLightbox(index) : void 0,
4673
+ children: hasFailed ? /* @__PURE__ */ jsx9("div", { className: "absolute inset-0 flex items-center justify-center text-gray-400", children: /* @__PURE__ */ jsx9("span", { children: "Image unavailable" }) }) : /* @__PURE__ */ jsxs9(Fragment, { children: [
4674
+ /* @__PURE__ */ jsx9(
4675
+ "img",
4676
+ {
4677
+ src: item.imageUrl,
4678
+ alt: item.alt || "",
4679
+ loading: "lazy",
4680
+ className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105",
4681
+ onError: () => handleImageError(itemId)
4682
+ }
4683
+ ),
4684
+ enableLightbox && /* @__PURE__ */ jsx9("div", { className: "absolute inset-0 bg-black/30 opacity-0 group-hover:opacity-100 transition-opacity duration-300 flex items-center justify-center", children: /* @__PURE__ */ jsx9("svg", { className: "w-10 h-10 text-white", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx9("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0zM10 7v3m0 0v3m0-3h3m-3 0H7" }) }) }),
4685
+ showCaptions && item.caption && !enableLightbox && /* @__PURE__ */ jsx9("div", { className: "absolute inset-0 bg-gradient-to-t from-black/60 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300", children: /* @__PURE__ */ jsx9("div", { className: "absolute bottom-0 left-0 right-0 p-4", children: /* @__PURE__ */ jsx9("p", { className: "text-white text-sm", children: item.caption }) }) })
4686
+ ] })
4687
+ },
4688
+ itemId
4689
+ );
4690
+ }) })
4641
4691
  ] }),
4642
- /* @__PURE__ */ jsx9("div", { className: `grid gap-4 ${gridCols[columns]}`, children: displayedItems.map((item) => {
4643
- const itemId = item.id || item.imageUrl;
4644
- const hasFailed = failedImages.has(itemId);
4645
- return /* @__PURE__ */ jsx9(
4646
- "div",
4647
- {
4648
- className: "group relative aspect-square overflow-hidden rounded-lg bg-gray-100",
4649
- children: hasFailed ? /* @__PURE__ */ jsx9("div", { className: "absolute inset-0 flex items-center justify-center text-gray-400", children: /* @__PURE__ */ jsx9("span", { children: "Image unavailable" }) }) : /* @__PURE__ */ jsxs9(Fragment, { children: [
4650
- /* @__PURE__ */ jsx9(
4651
- "img",
4652
- {
4653
- src: item.imageUrl,
4654
- alt: item.alt || "",
4655
- loading: "lazy",
4656
- className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105",
4657
- onError: () => handleImageError(itemId)
4658
- }
4659
- ),
4660
- showCaptions && item.caption && /* @__PURE__ */ jsx9("div", { className: "absolute inset-0 bg-gradient-to-t from-black/60 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300", children: /* @__PURE__ */ jsx9("div", { className: "absolute bottom-0 left-0 right-0 p-4", children: /* @__PURE__ */ jsx9("p", { className: "text-white text-sm", children: item.caption }) }) })
4692
+ enableLightbox && lightboxIndex !== null && /* @__PURE__ */ jsxs9(
4693
+ "div",
4694
+ {
4695
+ className: "fixed inset-0 z-50 bg-black/90 flex items-center justify-center",
4696
+ onClick: closeLightbox,
4697
+ children: [
4698
+ /* @__PURE__ */ jsx9(
4699
+ "button",
4700
+ {
4701
+ onClick: closeLightbox,
4702
+ className: "absolute top-4 right-4 text-white hover:text-gray-300 transition-colors z-10",
4703
+ "aria-label": "Close lightbox",
4704
+ children: /* @__PURE__ */ jsx9("svg", { className: "w-8 h-8", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx9("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) })
4705
+ }
4706
+ ),
4707
+ /* @__PURE__ */ jsx9(
4708
+ "button",
4709
+ {
4710
+ onClick: (e) => {
4711
+ e.stopPropagation();
4712
+ goToPrevious();
4713
+ },
4714
+ className: "absolute left-4 top-1/2 -translate-y-1/2 text-white hover:text-gray-300 transition-colors z-10",
4715
+ "aria-label": "Previous image",
4716
+ children: /* @__PURE__ */ jsx9("svg", { className: "w-10 h-10", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx9("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" }) })
4717
+ }
4718
+ ),
4719
+ /* @__PURE__ */ jsx9(
4720
+ "button",
4721
+ {
4722
+ onClick: (e) => {
4723
+ e.stopPropagation();
4724
+ goToNext();
4725
+ },
4726
+ className: "absolute right-4 top-1/2 -translate-y-1/2 text-white hover:text-gray-300 transition-colors z-10",
4727
+ "aria-label": "Next image",
4728
+ children: /* @__PURE__ */ jsx9("svg", { className: "w-10 h-10", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx9("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }) })
4729
+ }
4730
+ ),
4731
+ /* @__PURE__ */ jsxs9(
4732
+ "div",
4733
+ {
4734
+ className: "max-w-5xl max-h-[85vh] mx-4",
4735
+ onClick: (e) => e.stopPropagation(),
4736
+ children: [
4737
+ /* @__PURE__ */ jsx9(
4738
+ "img",
4739
+ {
4740
+ src: displayedItems[lightboxIndex].imageUrl,
4741
+ alt: displayedItems[lightboxIndex].alt || "",
4742
+ className: "max-w-full max-h-[85vh] object-contain"
4743
+ }
4744
+ ),
4745
+ showCaptions && displayedItems[lightboxIndex].caption && /* @__PURE__ */ jsx9("p", { className: "text-white text-center mt-4 text-lg", children: displayedItems[lightboxIndex].caption })
4746
+ ]
4747
+ }
4748
+ ),
4749
+ /* @__PURE__ */ jsxs9("div", { className: "absolute bottom-4 left-1/2 -translate-x-1/2 text-white text-sm", children: [
4750
+ lightboxIndex + 1,
4751
+ " / ",
4752
+ displayedItems.length
4661
4753
  ] })
4662
- },
4663
- itemId
4664
- );
4665
- }) })
4666
- ] }) });
4754
+ ]
4755
+ }
4756
+ )
4757
+ ] });
4667
4758
  }
4668
4759
 
4760
+ // src/components/sections/Menu.tsx
4761
+ import { useState as useState4 } from "react";
4762
+ import { jsx as jsx10, jsxs as jsxs10 } from "react/jsx-runtime";
4763
+
4764
+ // src/components/sections/TrustBadges.tsx
4765
+ import { jsx as jsx11, jsxs as jsxs11 } from "react/jsx-runtime";
4766
+
4767
+ // src/components/sections/BeforeAfter.tsx
4768
+ import { useState as useState5, useRef, useCallback } from "react";
4769
+ import { jsx as jsx12, jsxs as jsxs12 } from "react/jsx-runtime";
4770
+
4669
4771
  // src/components/ui/Button.tsx
4670
- import { Fragment as Fragment2, jsx as jsx10, jsxs as jsxs10 } from "react/jsx-runtime";
4772
+ import { Fragment as Fragment2, jsx as jsx13, jsxs as jsxs13 } from "react/jsx-runtime";
4671
4773
  function getButtonClasses(props) {
4672
4774
  const { variant = "primary", size = "md", fullWidth, disabled } = props;
4673
4775
  const baseClasses = [
@@ -4709,16 +4811,16 @@ function Button({
4709
4811
  ...props
4710
4812
  }) {
4711
4813
  const classes = getButtonClasses({ variant, size, fullWidth, disabled: disabled || loading });
4712
- return /* @__PURE__ */ jsx10(
4814
+ return /* @__PURE__ */ jsx13(
4713
4815
  "button",
4714
4816
  {
4715
4817
  className: `${classes} ${className}`,
4716
4818
  disabled: disabled || loading,
4717
4819
  ...props,
4718
- children: loading ? /* @__PURE__ */ jsx10(LoadingSpinner, { size }) : /* @__PURE__ */ jsxs10(Fragment2, { children: [
4719
- leftIcon && /* @__PURE__ */ jsx10("span", { className: "mr-2", children: leftIcon }),
4820
+ children: loading ? /* @__PURE__ */ jsx13(LoadingSpinner, { size }) : /* @__PURE__ */ jsxs13(Fragment2, { children: [
4821
+ leftIcon && /* @__PURE__ */ jsx13("span", { className: "mr-2", children: leftIcon }),
4720
4822
  children,
4721
- rightIcon && /* @__PURE__ */ jsx10("span", { className: "ml-2", children: rightIcon })
4823
+ rightIcon && /* @__PURE__ */ jsx13("span", { className: "ml-2", children: rightIcon })
4722
4824
  ] })
4723
4825
  }
4724
4826
  );
@@ -4729,7 +4831,7 @@ function LoadingSpinner({ size }) {
4729
4831
  md: "w-5 h-5",
4730
4832
  lg: "w-6 h-6"
4731
4833
  };
4732
- return /* @__PURE__ */ jsxs10(
4834
+ return /* @__PURE__ */ jsxs13(
4733
4835
  "svg",
4734
4836
  {
4735
4837
  className: `animate-spin ${sizeClasses[size || "md"]}`,
@@ -4737,7 +4839,7 @@ function LoadingSpinner({ size }) {
4737
4839
  fill: "none",
4738
4840
  viewBox: "0 0 24 24",
4739
4841
  children: [
4740
- /* @__PURE__ */ jsx10(
4842
+ /* @__PURE__ */ jsx13(
4741
4843
  "circle",
4742
4844
  {
4743
4845
  className: "opacity-25",
@@ -4748,7 +4850,7 @@ function LoadingSpinner({ size }) {
4748
4850
  strokeWidth: "4"
4749
4851
  }
4750
4852
  ),
4751
- /* @__PURE__ */ jsx10(
4853
+ /* @__PURE__ */ jsx13(
4752
4854
  "path",
4753
4855
  {
4754
4856
  className: "opacity-75",
@@ -4771,15 +4873,15 @@ function ButtonLink({
4771
4873
  ...props
4772
4874
  }) {
4773
4875
  const classes = getButtonClasses({ variant, size, fullWidth, disabled: false });
4774
- return /* @__PURE__ */ jsxs10("a", { className: `${classes} ${className}`, ...props, children: [
4775
- leftIcon && /* @__PURE__ */ jsx10("span", { className: "mr-2", children: leftIcon }),
4876
+ return /* @__PURE__ */ jsxs13("a", { className: `${classes} ${className}`, ...props, children: [
4877
+ leftIcon && /* @__PURE__ */ jsx13("span", { className: "mr-2", children: leftIcon }),
4776
4878
  children,
4777
- rightIcon && /* @__PURE__ */ jsx10("span", { className: "ml-2", children: rightIcon })
4879
+ rightIcon && /* @__PURE__ */ jsx13("span", { className: "ml-2", children: rightIcon })
4778
4880
  ] });
4779
4881
  }
4780
4882
 
4781
4883
  // src/components/ui/Card.tsx
4782
- import { jsx as jsx11, jsxs as jsxs11 } from "react/jsx-runtime";
4884
+ import { jsx as jsx14, jsxs as jsxs14 } from "react/jsx-runtime";
4783
4885
  function getCardClasses(props) {
4784
4886
  const { variant = "default", padding = "md", hover = false } = props;
4785
4887
  const baseClasses = ["rounded-lg", "overflow-hidden"];
@@ -4812,7 +4914,7 @@ function Card({
4812
4914
  ...props
4813
4915
  }) {
4814
4916
  const classes = getCardClasses({ variant, padding, hover });
4815
- return /* @__PURE__ */ jsx11("div", { className: `${classes} ${className}`, ...props, children });
4917
+ return /* @__PURE__ */ jsx14("div", { className: `${classes} ${className}`, ...props, children });
4816
4918
  }
4817
4919
  function CardHeader({
4818
4920
  title,
@@ -4822,13 +4924,13 @@ function CardHeader({
4822
4924
  className = "",
4823
4925
  ...props
4824
4926
  }) {
4825
- return /* @__PURE__ */ jsxs11("div", { className: `flex items-start justify-between ${className}`, ...props, children: [
4826
- /* @__PURE__ */ jsxs11("div", { children: [
4827
- title && /* @__PURE__ */ jsx11("h3", { className: "text-lg font-semibold text-gray-900", children: title }),
4828
- subtitle && /* @__PURE__ */ jsx11("p", { className: "mt-1 text-sm text-gray-500", children: subtitle }),
4927
+ return /* @__PURE__ */ jsxs14("div", { className: `flex items-start justify-between ${className}`, ...props, children: [
4928
+ /* @__PURE__ */ jsxs14("div", { children: [
4929
+ title && /* @__PURE__ */ jsx14("h3", { className: "text-lg font-semibold text-gray-900", children: title }),
4930
+ subtitle && /* @__PURE__ */ jsx14("p", { className: "mt-1 text-sm text-gray-500", children: subtitle }),
4829
4931
  children
4830
4932
  ] }),
4831
- action && /* @__PURE__ */ jsx11("div", { className: "flex-shrink-0 ml-4", children: action })
4933
+ action && /* @__PURE__ */ jsx14("div", { className: "flex-shrink-0 ml-4", children: action })
4832
4934
  ] });
4833
4935
  }
4834
4936
  function CardBody({
@@ -4836,14 +4938,14 @@ function CardBody({
4836
4938
  className = "",
4837
4939
  ...props
4838
4940
  }) {
4839
- return /* @__PURE__ */ jsx11("div", { className: `mt-4 ${className}`, ...props, children });
4941
+ return /* @__PURE__ */ jsx14("div", { className: `mt-4 ${className}`, ...props, children });
4840
4942
  }
4841
4943
  function CardFooter({
4842
4944
  children,
4843
4945
  className = "",
4844
4946
  ...props
4845
4947
  }) {
4846
- return /* @__PURE__ */ jsx11("div", { className: `mt-4 pt-4 border-t border-gray-100 ${className}`, ...props, children });
4948
+ return /* @__PURE__ */ jsx14("div", { className: `mt-4 pt-4 border-t border-gray-100 ${className}`, ...props, children });
4847
4949
  }
4848
4950
  function CardImage({
4849
4951
  aspectRatio = "video",
@@ -4857,7 +4959,7 @@ function CardImage({
4857
4959
  wide: "aspect-[2/1]",
4858
4960
  auto: ""
4859
4961
  };
4860
- return /* @__PURE__ */ jsx11("div", { className: `-m-5 mb-4 ${aspectClasses[aspectRatio]} overflow-hidden`, children: /* @__PURE__ */ jsx11(
4962
+ return /* @__PURE__ */ jsx14("div", { className: `-m-5 mb-4 ${aspectClasses[aspectRatio]} overflow-hidden`, children: /* @__PURE__ */ jsx14(
4861
4963
  "img",
4862
4964
  {
4863
4965
  className: `w-full h-full object-cover ${className}`,
@@ -4867,6 +4969,10 @@ function CardImage({
4867
4969
  ) });
4868
4970
  }
4869
4971
 
4972
+ // src/components/ui/AnimatedSection.tsx
4973
+ import React6, { useEffect, useRef as useRef2, useState as useState6 } from "react";
4974
+ import { jsx as jsx15 } from "react/jsx-runtime";
4975
+
4870
4976
  // src/seo/index.ts
4871
4977
  function generateMetadata(business, pageTitle, pageDescription, options = {}) {
4872
4978
  const { titleTemplate = "%s", baseUrl } = options;