import { defineComponent, mergeProps, unref, ref, watchEffect, watch, withCtx, createTextVNode, toDisplayString, createBlock, createVNode, openBlock, createCommentVNode, useSSRContext } from 'vue';
import { ssrRenderAttrs, ssrRenderComponent, ssrInterpolate, ssrRenderAttr, ssrRenderClass } from 'vue/server-renderer';
import { _ as _sfc_main$a } from './Skeleton-CRkCoUmX.mjs';
import { _ as _sfc_main$3$1, a as _sfc_main$1$1, c as _sfc_main$b, b as _sfc_main$2$1 } from './CardTitle-CK392g0A.mjs';
import { _ as _sfc_main$c } from './CardDescription-SL_8-N0k.mjs';
import { a as _export_sfc, g as _sfc_main$d } from './server.mjs';
import { _ as _sfc_main$e } from './index-m9AqQ9dr.mjs';

const _sfc_main$9 = /* @__PURE__ */ defineComponent({
  __name: "TestimonialCardSkeleton",
  __ssrInlineRender: true,
  setup(__props) {
    return (_ctx, _push, _parent, _attrs) => {
      _push(`<div${ssrRenderAttrs(mergeProps({ class: "ws-gradient-border flex h-[446px] flex-col items-center justify-center gap-6 w-full" }, _attrs))}><div class="w-[60%] justify-items-center">`);
      _push(ssrRenderComponent(unref(_sfc_main$a), { class: "h-[90px] w-[90px] rounded-full" }, null, _parent));
      _push(ssrRenderComponent(unref(_sfc_main$a), { class: "my-2 h-[25px] w-[100%]" }, null, _parent));
      _push(ssrRenderComponent(unref(_sfc_main$a), { class: "my-2 h-[25px] w-[100%]" }, null, _parent));
      _push(`</div>`);
      _push(ssrRenderComponent(unref(_sfc_main$a), { class: "rounded-ws-rounded mx-10 h-[50%] w-[90%]" }, null, _parent));
      _push(`</div>`);
    };
  }
});
const _sfc_setup$9 = _sfc_main$9.setup;
_sfc_main$9.setup = (props, ctx) => {
  const ssrContext = useSSRContext();
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/skeletons/TestimonialCardSkeleton.vue");
  return _sfc_setup$9 ? _sfc_setup$9(props, ctx) : void 0;
};
const _sfc_main$8 = /* @__PURE__ */ defineComponent({
  __name: "CommentIcon",
  __ssrInlineRender: true,
  props: {
    isGradient: {
      type: Boolean,
      default: false
    }
  },
  setup(__props) {
    const props = __props;
    const stroke = () => {
      return props.isGradient ? "url(#paint1_linear_389_16949)" : "currentColor";
    };
    return (_ctx, _push, _parent, _attrs) => {
      _push(`<svg${ssrRenderAttrs(mergeProps({
        width: "26",
        height: "26",
        viewBox: "0 0 26 26",
        fill: "none",
        xmlns: "http://www.w3.org/2000/svg"
      }, _attrs))}><path d="M8.3125 9.09375H17.6875M8.3125 12.2188H13M2.84375 13.7917C2.84375 15.4583 4.01354 16.9104 5.66354 17.1531C6.83958 17.326 8.02812 17.4583 9.22917 17.5479C9.59375 17.575 9.92708 17.7667 10.1302 18.0698L13 22.375L15.8698 18.0698C15.9705 17.9201 16.1039 17.7953 16.2601 17.7048C16.4162 17.6144 16.5909 17.5607 16.7708 17.5479C17.9637 17.4589 19.153 17.3272 20.3365 17.1531C21.9865 16.9104 23.1562 15.4594 23.1562 13.7906V7.52188C23.1562 5.85313 21.9865 4.40209 20.3365 4.15938C17.9072 3.80283 15.4552 3.62423 13 3.625C10.5083 3.625 8.05833 3.80729 5.66354 4.15938C4.01354 4.40209 2.84375 5.85417 2.84375 7.52188V13.7906V13.7917Z"${ssrRenderAttr("stroke", stroke())} stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>`);
      if (__props.isGradient) {
        _push(`<defs><linearGradient id="paint0_linear_389_16949" x1="3.625" y1="13" x2="22.375" y2="13" gradientUnits="userSpaceOnUse"><stop stop-color="#00BED7"></stop><stop offset="1" stop-color="#C853EF"></stop></linearGradient><linearGradient id="paint1_linear_389_16949" x1="10.6562" y1="13.0001" x2="17.2742" y2="13.0001" gradientUnits="userSpaceOnUse"><stop stop-color="#00BED7"></stop><stop offset="1" stop-color="#C853EF"></stop></linearGradient></defs>`);
      } else {
        _push(`<!---->`);
      }
      _push(`</svg>`);
    };
  }
});
const _sfc_setup$8 = _sfc_main$8.setup;
_sfc_main$8.setup = (props, ctx) => {
  const ssrContext = useSSRContext();
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/svg/CommentIcon.vue");
  return _sfc_setup$8 ? _sfc_setup$8(props, ctx) : void 0;
};
const _sfc_main$7 = /* @__PURE__ */ defineComponent({
  __name: "GradientPlayIcon",
  __ssrInlineRender: true,
  props: {
    isGradient: {
      type: Boolean,
      default: false
    }
  },
  setup(__props) {
    const props = __props;
    const stroke = () => {
      return props.isGradient ? "url(#paint1_linear_389_16949)" : "currentColor";
    };
    return (_ctx, _push, _parent, _attrs) => {
      _push(`<svg${ssrRenderAttrs(mergeProps({
        width: "26",
        height: "26",
        viewBox: "0 0 26 26",
        fill: "none",
        xmlns: "http://www.w3.org/2000/svg"
      }, _attrs))}><path d="M22.375 13C22.375 14.2311 22.1325 15.4502 21.6614 16.5877C21.1902 17.7251 20.4997 18.7586 19.6291 19.6291C18.7586 20.4997 17.7251 21.1902 16.5877 21.6614C15.4502 22.1325 14.2311 22.375 13 22.375C11.7689 22.375 10.5498 22.1325 9.41234 21.6614C8.27492 21.1902 7.24142 20.4997 6.37087 19.6291C5.50032 18.7586 4.80977 17.7251 4.33863 16.5877C3.86749 15.4502 3.625 14.2311 3.625 13C3.625 10.5136 4.61272 8.12903 6.37087 6.37087C8.12903 4.61272 10.5136 3.625 13 3.625C15.4864 3.625 17.871 4.61272 19.6291 6.37087C21.3873 8.12903 22.375 10.5136 22.375 13Z"${ssrRenderAttr("stroke", stroke())} stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M17.0729 12.6583C17.1339 12.6921 17.1847 12.7416 17.2201 12.8017C17.2555 12.8617 17.2742 12.9302 17.2742 12.9999C17.2742 13.0697 17.2555 13.1381 17.2201 13.1982C17.1847 13.2583 17.1339 13.3078 17.0729 13.3416L11.2365 16.5843C11.177 16.6173 11.1099 16.6342 11.0419 16.6334C10.9739 16.6325 10.9073 16.6139 10.8487 16.5794C10.79 16.5449 10.7415 16.4956 10.7077 16.4366C10.674 16.3775 10.6562 16.3107 10.6563 16.2426V9.75723C10.6563 9.45931 10.976 9.27181 11.2365 9.41661L17.0729 12.6583Z"${ssrRenderAttr("stroke", stroke())} stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>`);
      if (__props.isGradient) {
        _push(`<defs><linearGradient id="paint0_linear_389_16949" x1="3.625" y1="13" x2="22.375" y2="13" gradientUnits="userSpaceOnUse"><stop stop-color="#00BED7"></stop><stop offset="1" stop-color="#C853EF"></stop></linearGradient><linearGradient id="paint1_linear_389_16949" x1="10.6562" y1="13.0001" x2="17.2742" y2="13.0001" gradientUnits="userSpaceOnUse"><stop stop-color="#00BED7"></stop><stop offset="1" stop-color="#C853EF"></stop></linearGradient></defs>`);
      } else {
        _push(`<!---->`);
      }
      _push(`</svg>`);
    };
  }
});
const _sfc_setup$7 = _sfc_main$7.setup;
_sfc_main$7.setup = (props, ctx) => {
  const ssrContext = useSSRContext();
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/svg/GradientPlayIcon.vue");
  return _sfc_setup$7 ? _sfc_setup$7(props, ctx) : void 0;
};
const _sfc_main$6 = /* @__PURE__ */ defineComponent({
  __name: "MicrophoneIcon",
  __ssrInlineRender: true,
  props: {
    isGradient: {
      type: Boolean,
      default: false
    }
  },
  setup(__props) {
    const props = __props;
    const stroke = () => {
      return props.isGradient ? "url(#paint1_linear_389_16949)" : "currentColor";
    };
    return (_ctx, _push, _parent, _attrs) => {
      _push(`<svg${ssrRenderAttrs(mergeProps({
        width: "26",
        height: "26",
        viewBox: "0 0 26 26",
        fill: "none",
        xmlns: "http://www.w3.org/2000/svg"
      }, _attrs))}><path d="M13 20.0312C14.6576 20.0312 16.2473 19.3728 17.4194 18.2007C18.5915 17.0286 19.25 15.4389 19.25 13.7812V12.2187M13 20.0312C11.3424 20.0312 9.75269 19.3728 8.58058 18.2007C7.40848 17.0286 6.75 15.4389 6.75 13.7812V12.2187M13 20.0312V23.9375M9.09375 23.9375H16.9062M13 16.9062C12.1712 16.9062 11.3763 16.577 10.7903 15.991C10.2042 15.4049 9.875 14.6101 9.875 13.7812V5.1875C9.875 4.3587 10.2042 3.56384 10.7903 2.97779C11.3763 2.39174 12.1712 2.0625 13 2.0625C13.8288 2.0625 14.6237 2.39174 15.2097 2.97779C15.7958 3.56384 16.125 4.3587 16.125 5.1875V13.7812C16.125 14.6101 15.7958 15.4049 15.2097 15.991C14.6237 16.577 13.8288 16.9062 13 16.9062Z"${ssrRenderAttr("stroke", stroke())} stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>`);
      if (__props.isGradient) {
        _push(`<defs><linearGradient id="paint0_linear_389_16949" x1="3.625" y1="13" x2="22.375" y2="13" gradientUnits="userSpaceOnUse"><stop stop-color="#00BED7"></stop><stop offset="1" stop-color="#C853EF"></stop></linearGradient><linearGradient id="paint1_linear_389_16949" x1="10.6562" y1="13.0001" x2="17.2742" y2="13.0001" gradientUnits="userSpaceOnUse"><stop stop-color="#00BED7"></stop><stop offset="1" stop-color="#C853EF"></stop></linearGradient></defs>`);
      } else {
        _push(`<!---->`);
      }
      _push(`</svg>`);
    };
  }
});
const _sfc_setup$6 = _sfc_main$6.setup;
_sfc_main$6.setup = (props, ctx) => {
  const ssrContext = useSSRContext();
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/svg/MicrophoneIcon.vue");
  return _sfc_setup$6 ? _sfc_setup$6(props, ctx) : void 0;
};
const _sfc_main$5 = {};
function _sfc_ssrRender$2(_ctx, _push, _parent, _attrs) {
  _push(`<svg${ssrRenderAttrs(mergeProps({
    width: "24",
    height: "24",
    viewBox: "0 0 24 24",
    fill: "none",
    xmlns: "http://www.w3.org/2000/svg"
  }, _attrs))}><path d="M12.0381 19.5C9.94425 19.5 8.17084 18.7736 6.71784 17.3207C5.26467 15.8679 4.53809 14.0948 4.53809 12.0015C4.53809 9.90817 5.26467 8.13458 6.71784 6.68075C8.17084 5.22692 9.94425 4.5 12.0381 4.5C13.2073 4.5 14.3137 4.75992 15.3573 5.27975C16.4008 5.79975 17.2688 6.53342 17.9611 7.48075V4.5H19.4611V10.6152H13.3458V9.1155H17.2958C16.7688 8.15 16.038 7.38942 15.1033 6.83375C14.1688 6.27792 13.1471 6 12.0381 6C10.3714 6 8.95475 6.58333 7.78809 7.75C6.62142 8.91667 6.03809 10.3333 6.03809 12C6.03809 13.6667 6.62142 15.0833 7.78809 16.25C8.95475 17.4167 10.3714 18 12.0381 18C13.3214 18 14.4798 17.6333 15.5131 16.9C16.5464 16.1667 17.2714 15.2 17.6881 14H19.2688C18.815 15.632 17.9211 16.9567 16.5871 17.974C15.2531 18.9913 13.7368 19.5 12.0381 19.5Z" fill="currentColor"></path></svg>`);
}
const _sfc_setup$5 = _sfc_main$5.setup;
_sfc_main$5.setup = (props, ctx) => {
  const ssrContext = useSSRContext();
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/svg/ResetIcon.vue");
  return _sfc_setup$5 ? _sfc_setup$5(props, ctx) : void 0;
};
const __nuxt_component_10 = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["ssrRender", _sfc_ssrRender$2]]);
const _sfc_main$4 = {};
function _sfc_ssrRender$1(_ctx, _push, _parent, _attrs) {
  _push(`<svg${ssrRenderAttrs(mergeProps({
    width: "24",
    height: "24",
    viewBox: "0 0 24 24",
    fill: "none",
    xmlns: "http://www.w3.org/2000/svg"
  }, _attrs))}><path d="M13.25 18.5V5.5H18.5V18.5H13.25ZM5.5 18.5V5.5H10.75V18.5H5.5ZM14.75 17H17V7H14.75V17ZM7 17H9.25V7H7V17Z" fill="currentColor"></path></svg>`);
}
const _sfc_setup$4 = _sfc_main$4.setup;
_sfc_main$4.setup = (props, ctx) => {
  const ssrContext = useSSRContext();
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/svg/PauseIcon.vue");
  return _sfc_setup$4 ? _sfc_setup$4(props, ctx) : void 0;
};
const __nuxt_component_11 = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["ssrRender", _sfc_ssrRender$1]]);
const _sfc_main$3 = {};
function _sfc_ssrRender(_ctx, _push, _parent, _attrs) {
  _push(`<svg${ssrRenderAttrs(mergeProps({
    width: "24",
    height: "24",
    viewBox: "0 0 24 24",
    fill: "none",
    xmlns: "http://www.w3.org/2000/svg"
  }, _attrs))}><path d="M8 5V19L19 12L8 5Z" fill="currentColor"></path></svg>`);
}
const _sfc_setup$3 = _sfc_main$3.setup;
_sfc_main$3.setup = (props, ctx) => {
  const ssrContext = useSSRContext();
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/svg/PlayIcon.vue");
  return _sfc_setup$3 ? _sfc_setup$3(props, ctx) : void 0;
};
const __nuxt_component_12 = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["ssrRender", _sfc_ssrRender]]);
const _sfc_main$2 = /* @__PURE__ */ defineComponent({
  __name: "Waveform",
  __ssrInlineRender: true,
  props: {
    audioUrl: { type: String, default: "" }
  },
  emits: ["play", "pause"],
  setup(__props, { expose: __expose, emit: __emit }) {
    ref(null);
    const isPlaying = ref(false);
    const isLoading = ref(true);
    const ws = ref(null);
    const emit = __emit;
    const playPause = () => {
      var _a, _b;
      if (!ws.value) return;
      ws.value.playPause();
      isPlaying.value = !!((_b = (_a = ws.value).isPlaying) == null ? void 0 : _b.call(_a));
      if (isPlaying.value) emit("play");
      else emit("pause");
    };
    const reset = () => {
      if (ws.value) {
        ws.value.stop();
        isPlaying.value = false;
      }
    };
    __expose({
      playPause,
      reset,
      isPlaying
    });
    return (_ctx, _push, _parent, _attrs) => {
      const _component_Skeleton = _sfc_main$a;
      _push(`<div${ssrRenderAttrs(mergeProps({ class: "relative" }, _attrs))}><div class="h-[100px] w-full">`);
      if (unref(isLoading)) {
        _push(ssrRenderComponent(_component_Skeleton, { class: "h-full w-full" }, null, _parent));
      } else {
        _push(`<!---->`);
      }
      _push(`<div class="h-full w-full"></div></div></div>`);
    };
  }
});
const _sfc_setup$2 = _sfc_main$2.setup;
_sfc_main$2.setup = (props, ctx) => {
  const ssrContext = useSSRContext();
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/testimonials/Waveform.vue");
  return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0;
};
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
  __name: "VideoPlayer",
  __ssrInlineRender: true,
  props: {
    videoUrl: {},
    thumbnailClass: {},
    videoClass: {}
  },
  emits: ["play", "pause"],
  setup(__props, { emit: __emit }) {
    const props = __props;
    const YOUTUBE_REGEX = /(?:youtube\.com\/(?:watch\?v=|shorts\/)|youtu\.be\/)([a-zA-Z0-9_-]{11})/;
    const isYouTubeVideo = (url) => {
      return url.includes("youtube") || url.includes("youtu.be");
    };
    const getYouTubeVideoId = (url) => {
      const match = url.match(YOUTUBE_REGEX);
      return match ? match[1] : null;
    };
    const getYouTubeThumbnail = (url) => {
      const videoId = getYouTubeVideoId(url);
      return videoId ? `https://img.youtube.com/vi/${videoId}/maxresdefault.jpg` : "";
    };
    const hasStarted = ref(false);
    const embedUrl = ref("");
    return (_ctx, _push, _parent, _attrs) => {
      const _component_NuxtImg = _sfc_main$d;
      const _component_SvgPlayIcon = __nuxt_component_12;
      _push(`<div${ssrRenderAttrs(mergeProps({ class: "rounded-ws-rounded bg-surface-background relative flex w-full items-center justify-center overflow-hidden" }, _attrs))}>`);
      if (!unref(hasStarted) && isYouTubeVideo(props.videoUrl)) {
        _push(`<div class="${ssrRenderClass([["rounded-ws-rounded object-cover", props.videoClass], "relative flex cursor-pointer"])}">`);
        _push(ssrRenderComponent(_component_NuxtImg, {
          src: getYouTubeThumbnail(props.videoUrl),
          alt: "YouTube thumbnail"
        }, null, _parent));
        _push(`<div class="absolute inset-0 flex items-center justify-center bg-black/40">`);
        _push(ssrRenderComponent(_component_SvgPlayIcon, { class: "size-14 text-white" }, null, _parent));
        _push(`</div></div>`);
      } else {
        _push(`<iframe${ssrRenderAttr("src", unref(embedUrl))} class="${ssrRenderClass(["rounded-ws-rounded object-cover", props.videoClass])}" frameborder="0" allow="autoplay; encrypted-media; fullscreen" allowfullscreen></iframe>`);
      }
      _push(`</div>`);
    };
  }
});
const _sfc_setup$1 = _sfc_main$1.setup;
_sfc_main$1.setup = (props, ctx) => {
  const ssrContext = useSSRContext();
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/testimonials/VideoPlayer.vue");
  return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
};
const _sfc_main = /* @__PURE__ */ defineComponent({
  __name: "TestimonialsCard",
  __ssrInlineRender: true,
  props: {
    id: {},
    fullName: {},
    image: {},
    jobPosition: {},
    videoUrl: {},
    audioUrl: {},
    comment: {},
    videoResetToken: {},
    audioResetToken: {}
  },
  emits: ["play", "pause"],
  setup(__props, { emit: __emit }) {
    const props = __props;
    const waveformRef = ref(null);
    const emit = __emit;
    const showOpinion = ref(false);
    const showAudio = ref(false);
    const showVideo = ref(true);
    watchEffect(() => {
      if (props.videoUrl) {
        showVideo.value = true;
        showAudio.value = false;
        showOpinion.value = false;
      } else if (props.audioUrl) {
        showAudio.value = true;
        showVideo.value = false;
        showOpinion.value = false;
      } else if (props.comment) {
        showOpinion.value = true;
        showVideo.value = false;
        showAudio.value = false;
      }
    });
    watch(
      () => props.audioResetToken,
      () => {
        if (waveformRef.value) {
          waveformRef.value.reset();
        }
      }
    );
    return (_ctx, _push, _parent, _attrs) => {
      const _component_Card = _sfc_main$3$1;
      const _component_CardHeader = _sfc_main$1$1;
      const _component_NuxtImg = _sfc_main$d;
      const _component_CardTitle = _sfc_main$b;
      const _component_CardDescription = _sfc_main$c;
      const _component_CardContent = _sfc_main$2$1;
      const _component_Button = _sfc_main$e;
      const _component_SvgCommentIcon = _sfc_main$8;
      const _component_SvgGradientPlayIcon = _sfc_main$7;
      const _component_SvgMicrophoneIcon = _sfc_main$6;
      const _component_SvgResetIcon = __nuxt_component_10;
      const _component_SvgPauseIcon = __nuxt_component_11;
      const _component_SvgPlayIcon = __nuxt_component_12;
      _push(ssrRenderComponent(_component_Card, mergeProps({ class: "ws-gradient-border h-[446px] flex-1 gap-6" }, _attrs), {
        default: withCtx((_, _push2, _parent2, _scopeId) => {
          if (_push2) {
            _push2(ssrRenderComponent(_component_CardHeader, { class: "flex flex-col items-center text-center" }, {
              default: withCtx((_2, _push3, _parent3, _scopeId2) => {
                if (_push3) {
                  if (props.image) {
                    _push3(ssrRenderComponent(_component_NuxtImg, {
                      src: props.image,
                      class: "h-[66px] w-[66px] rounded-full object-contain",
                      alt: props.fullName
                    }, null, _parent3, _scopeId2));
                  } else {
                    _push3(ssrRenderComponent(_component_NuxtImg, {
                      src: "/images/placeholders/image-fallback.png",
                      class: "h-[66px] w-[66px] rounded-full object-contain",
                      alt: props.fullName
                    }, null, _parent3, _scopeId2));
                  }
                  _push3(ssrRenderComponent(_component_CardTitle, null, {
                    default: withCtx((_3, _push4, _parent4, _scopeId3) => {
                      if (_push4) {
                        _push4(`${ssrInterpolate(props.fullName)}`);
                      } else {
                        return [
                          createTextVNode(toDisplayString(props.fullName), 1)
                        ];
                      }
                    }),
                    _: 1
                  }, _parent3, _scopeId2));
                  _push3(ssrRenderComponent(_component_CardDescription, null, {
                    default: withCtx((_3, _push4, _parent4, _scopeId3) => {
                      if (_push4) {
                        _push4(`${ssrInterpolate(props.jobPosition)}`);
                      } else {
                        return [
                          createTextVNode(toDisplayString(props.jobPosition), 1)
                        ];
                      }
                    }),
                    _: 1
                  }, _parent3, _scopeId2));
                } else {
                  return [
                    props.image ? (openBlock(), createBlock(_component_NuxtImg, {
                      key: 0,
                      src: props.image,
                      class: "h-[66px] w-[66px] rounded-full object-contain",
                      alt: props.fullName
                    }, null, 8, ["src", "alt"])) : (openBlock(), createBlock(_component_NuxtImg, {
                      key: 1,
                      src: "/images/placeholders/image-fallback.png",
                      class: "h-[66px] w-[66px] rounded-full object-contain",
                      alt: props.fullName
                    }, null, 8, ["alt"])),
                    createVNode(_component_CardTitle, null, {
                      default: withCtx(() => [
                        createTextVNode(toDisplayString(props.fullName), 1)
                      ]),
                      _: 1
                    }),
                    createVNode(_component_CardDescription, null, {
                      default: withCtx(() => [
                        createTextVNode(toDisplayString(props.jobPosition), 1)
                      ]),
                      _: 1
                    })
                  ];
                }
              }),
              _: 1
            }, _parent2, _scopeId));
            _push2(ssrRenderComponent(_component_CardContent, { class: "flex h-full flex-col items-center justify-center gap-6" }, {
              default: withCtx((_2, _push3, _parent3, _scopeId2) => {
                if (_push3) {
                  _push3(`<div class="my-2 flex h-[10%] items-center justify-center gap-2" data-v-a03b4a7f${_scopeId2}>`);
                  if (props.comment) {
                    _push3(ssrRenderComponent(_component_Button, {
                      "aria-label": _ctx.$t("ariaLabels.testimonalComment"),
                      variant: "wsIcon",
                      size: "wsIcon",
                      class: [unref(showOpinion) ? "ws-gradient-border" : "", "cursor-pointer"],
                      onClick: ($event) => {
                        showOpinion.value = true;
                        showAudio.value = false;
                        showVideo.value = false;
                      }
                    }, {
                      default: withCtx((_3, _push4, _parent4, _scopeId3) => {
                        if (_push4) {
                          _push4(ssrRenderComponent(_component_SvgCommentIcon, {
                            class: "size-[25px]",
                            "is-gradient": unref(showOpinion) ? true : false
                          }, null, _parent4, _scopeId3));
                        } else {
                          return [
                            createVNode(_component_SvgCommentIcon, {
                              class: "size-[25px]",
                              "is-gradient": unref(showOpinion) ? true : false
                            }, null, 8, ["is-gradient"])
                          ];
                        }
                      }),
                      _: 1
                    }, _parent3, _scopeId2));
                  } else {
                    _push3(`<!---->`);
                  }
                  if (props.videoUrl) {
                    _push3(ssrRenderComponent(_component_Button, {
                      "aria-label": _ctx.$t("ariaLabels.testimonialVideo"),
                      class: [unref(showVideo) ? "ws-gradient-border" : "", "cursor-pointer"],
                      variant: "wsIcon",
                      size: "wsIcon",
                      onClick: ($event) => {
                        showVideo.value = true;
                        showAudio.value = false;
                        showOpinion.value = false;
                      }
                    }, {
                      default: withCtx((_3, _push4, _parent4, _scopeId3) => {
                        if (_push4) {
                          _push4(ssrRenderComponent(_component_SvgGradientPlayIcon, {
                            class: "size-[25px]",
                            "is-gradient": unref(showVideo) ? true : false
                          }, null, _parent4, _scopeId3));
                        } else {
                          return [
                            createVNode(_component_SvgGradientPlayIcon, {
                              class: "size-[25px]",
                              "is-gradient": unref(showVideo) ? true : false
                            }, null, 8, ["is-gradient"])
                          ];
                        }
                      }),
                      _: 1
                    }, _parent3, _scopeId2));
                  } else {
                    _push3(`<!---->`);
                  }
                  if (props.audioUrl) {
                    _push3(ssrRenderComponent(_component_Button, {
                      "aria-label": _ctx.$t("ariaLabels.testimonialSound"),
                      class: [unref(showAudio) ? "ws-gradient-border" : "", "cursor-pointer"],
                      variant: "wsIcon",
                      size: "wsIcon",
                      onClick: ($event) => {
                        showAudio.value = true;
                        showVideo.value = false;
                        showOpinion.value = false;
                      }
                    }, {
                      default: withCtx((_3, _push4, _parent4, _scopeId3) => {
                        if (_push4) {
                          _push4(ssrRenderComponent(_component_SvgMicrophoneIcon, {
                            class: "size-[25px]",
                            "is-gradient": unref(showAudio) ? true : false
                          }, null, _parent4, _scopeId3));
                        } else {
                          return [
                            createVNode(_component_SvgMicrophoneIcon, {
                              class: "size-[25px]",
                              "is-gradient": unref(showAudio) ? true : false
                            }, null, 8, ["is-gradient"])
                          ];
                        }
                      }),
                      _: 1
                    }, _parent3, _scopeId2));
                  } else {
                    _push3(`<!---->`);
                  }
                  _push3(`</div><div class="flex h-[80%] items-center justify-center gap-2" data-v-a03b4a7f${_scopeId2}>`);
                  if (unref(showOpinion)) {
                    _push3(`<div class="scrollable-list max-h-[180px] w-full overflow-y-auto" data-v-a03b4a7f${_scopeId2}><p class="text-justify text-base leading-8 font-normal" data-v-a03b4a7f${_scopeId2}>${ssrInterpolate(props.comment)}</p></div>`);
                  } else {
                    _push3(`<!---->`);
                  }
                  if (unref(showVideo) && props.videoUrl) {
                    _push3(ssrRenderComponent(_sfc_main$1, {
                      key: props.videoResetToken,
                      "video-url": props.videoUrl,
                      "video-class": "h-[150px] w-[260px]",
                      "thumbnail-class": "h-[150px] w-[260px]",
                      onPlay: ($event) => emit("play"),
                      onPause: ($event) => emit("pause")
                    }, null, _parent3, _scopeId2));
                  } else {
                    _push3(`<!---->`);
                  }
                  if (unref(showAudio)) {
                    _push3(ssrRenderComponent(_sfc_main$2, {
                      ref_key: "waveformRef",
                      ref: waveformRef,
                      "audio-url": props.audioUrl,
                      class: "w-[300px]",
                      onPlay: ($event) => emit("play"),
                      onPause: ($event) => emit("pause")
                    }, null, _parent3, _scopeId2));
                  } else {
                    _push3(`<!---->`);
                  }
                  _push3(`</div>`);
                  if (unref(showAudio)) {
                    _push3(`<div class="flex items-center justify-center gap-2" data-v-a03b4a7f${_scopeId2}>`);
                    _push3(ssrRenderComponent(_component_Button, {
                      variant: "wsIcon",
                      size: "wsIcon",
                      class: "cursor-pointer",
                      onClick: ($event) => {
                        var _a;
                        return (_a = unref(waveformRef)) == null ? void 0 : _a.reset();
                      }
                    }, {
                      default: withCtx((_3, _push4, _parent4, _scopeId3) => {
                        if (_push4) {
                          _push4(ssrRenderComponent(_component_SvgResetIcon, { class: "size-6" }, null, _parent4, _scopeId3));
                        } else {
                          return [
                            createVNode(_component_SvgResetIcon, { class: "size-6" })
                          ];
                        }
                      }),
                      _: 1
                    }, _parent3, _scopeId2));
                    _push3(ssrRenderComponent(_component_Button, {
                      variant: "wsIcon",
                      size: "wsIcon",
                      class: "cursor-pointer",
                      onClick: ($event) => {
                        var _a;
                        return (_a = unref(waveformRef)) == null ? void 0 : _a.playPause();
                      }
                    }, {
                      default: withCtx((_3, _push4, _parent4, _scopeId3) => {
                        var _a, _b;
                        if (_push4) {
                          if ((_a = unref(waveformRef)) == null ? void 0 : _a.isPlaying) {
                            _push4(ssrRenderComponent(_component_SvgPauseIcon, { class: "size-6" }, null, _parent4, _scopeId3));
                          } else {
                            _push4(ssrRenderComponent(_component_SvgPlayIcon, { class: "size-6" }, null, _parent4, _scopeId3));
                          }
                        } else {
                          return [
                            ((_b = unref(waveformRef)) == null ? void 0 : _b.isPlaying) ? (openBlock(), createBlock(_component_SvgPauseIcon, {
                              key: 0,
                              class: "size-6"
                            })) : (openBlock(), createBlock(_component_SvgPlayIcon, {
                              key: 1,
                              class: "size-6"
                            }))
                          ];
                        }
                      }),
                      _: 1
                    }, _parent3, _scopeId2));
                    _push3(`</div>`);
                  } else {
                    _push3(`<!---->`);
                  }
                } else {
                  return [
                    createVNode("div", { class: "my-2 flex h-[10%] items-center justify-center gap-2" }, [
                      props.comment ? (openBlock(), createBlock(_component_Button, {
                        key: 0,
                        "aria-label": _ctx.$t("ariaLabels.testimonalComment"),
                        variant: "wsIcon",
                        size: "wsIcon",
                        class: [unref(showOpinion) ? "ws-gradient-border" : "", "cursor-pointer"],
                        onClick: ($event) => {
                          showOpinion.value = true;
                          showAudio.value = false;
                          showVideo.value = false;
                        }
                      }, {
                        default: withCtx(() => [
                          createVNode(_component_SvgCommentIcon, {
                            class: "size-[25px]",
                            "is-gradient": unref(showOpinion) ? true : false
                          }, null, 8, ["is-gradient"])
                        ]),
                        _: 1
                      }, 8, ["aria-label", "class", "onClick"])) : createCommentVNode("", true),
                      props.videoUrl ? (openBlock(), createBlock(_component_Button, {
                        key: 1,
                        "aria-label": _ctx.$t("ariaLabels.testimonialVideo"),
                        class: [unref(showVideo) ? "ws-gradient-border" : "", "cursor-pointer"],
                        variant: "wsIcon",
                        size: "wsIcon",
                        onClick: ($event) => {
                          showVideo.value = true;
                          showAudio.value = false;
                          showOpinion.value = false;
                        }
                      }, {
                        default: withCtx(() => [
                          createVNode(_component_SvgGradientPlayIcon, {
                            class: "size-[25px]",
                            "is-gradient": unref(showVideo) ? true : false
                          }, null, 8, ["is-gradient"])
                        ]),
                        _: 1
                      }, 8, ["aria-label", "class", "onClick"])) : createCommentVNode("", true),
                      props.audioUrl ? (openBlock(), createBlock(_component_Button, {
                        key: 2,
                        "aria-label": _ctx.$t("ariaLabels.testimonialSound"),
                        class: [unref(showAudio) ? "ws-gradient-border" : "", "cursor-pointer"],
                        variant: "wsIcon",
                        size: "wsIcon",
                        onClick: ($event) => {
                          showAudio.value = true;
                          showVideo.value = false;
                          showOpinion.value = false;
                        }
                      }, {
                        default: withCtx(() => [
                          createVNode(_component_SvgMicrophoneIcon, {
                            class: "size-[25px]",
                            "is-gradient": unref(showAudio) ? true : false
                          }, null, 8, ["is-gradient"])
                        ]),
                        _: 1
                      }, 8, ["aria-label", "class", "onClick"])) : createCommentVNode("", true)
                    ]),
                    createVNode("div", { class: "flex h-[80%] items-center justify-center gap-2" }, [
                      unref(showOpinion) ? (openBlock(), createBlock("div", {
                        key: 0,
                        class: "scrollable-list max-h-[180px] w-full overflow-y-auto"
                      }, [
                        createVNode("p", { class: "text-justify text-base leading-8 font-normal" }, toDisplayString(props.comment), 1)
                      ])) : createCommentVNode("", true),
                      unref(showVideo) && props.videoUrl ? (openBlock(), createBlock(_sfc_main$1, {
                        key: props.videoResetToken,
                        "video-url": props.videoUrl,
                        "video-class": "h-[150px] w-[260px]",
                        "thumbnail-class": "h-[150px] w-[260px]",
                        onPlay: ($event) => emit("play"),
                        onPause: ($event) => emit("pause")
                      }, null, 8, ["video-url", "onPlay", "onPause"])) : createCommentVNode("", true),
                      unref(showAudio) ? (openBlock(), createBlock(_sfc_main$2, {
                        key: 2,
                        ref_key: "waveformRef",
                        ref: waveformRef,
                        "audio-url": props.audioUrl,
                        class: "w-[300px]",
                        onPlay: ($event) => emit("play"),
                        onPause: ($event) => emit("pause")
                      }, null, 8, ["audio-url", "onPlay", "onPause"])) : createCommentVNode("", true)
                    ]),
                    unref(showAudio) ? (openBlock(), createBlock("div", {
                      key: 0,
                      class: "flex items-center justify-center gap-2"
                    }, [
                      createVNode(_component_Button, {
                        variant: "wsIcon",
                        size: "wsIcon",
                        class: "cursor-pointer",
                        onClick: ($event) => {
                          var _a;
                          return (_a = unref(waveformRef)) == null ? void 0 : _a.reset();
                        }
                      }, {
                        default: withCtx(() => [
                          createVNode(_component_SvgResetIcon, { class: "size-6" })
                        ]),
                        _: 1
                      }, 8, ["onClick"]),
                      createVNode(_component_Button, {
                        variant: "wsIcon",
                        size: "wsIcon",
                        class: "cursor-pointer",
                        onClick: ($event) => {
                          var _a;
                          return (_a = unref(waveformRef)) == null ? void 0 : _a.playPause();
                        }
                      }, {
                        default: withCtx(() => {
                          var _a;
                          return [
                            ((_a = unref(waveformRef)) == null ? void 0 : _a.isPlaying) ? (openBlock(), createBlock(_component_SvgPauseIcon, {
                              key: 0,
                              class: "size-6"
                            })) : (openBlock(), createBlock(_component_SvgPlayIcon, {
                              key: 1,
                              class: "size-6"
                            }))
                          ];
                        }),
                        _: 1
                      }, 8, ["onClick"])
                    ])) : createCommentVNode("", true)
                  ];
                }
              }),
              _: 1
            }, _parent2, _scopeId));
          } else {
            return [
              createVNode(_component_CardHeader, { class: "flex flex-col items-center text-center" }, {
                default: withCtx(() => [
                  props.image ? (openBlock(), createBlock(_component_NuxtImg, {
                    key: 0,
                    src: props.image,
                    class: "h-[66px] w-[66px] rounded-full object-contain",
                    alt: props.fullName
                  }, null, 8, ["src", "alt"])) : (openBlock(), createBlock(_component_NuxtImg, {
                    key: 1,
                    src: "/images/placeholders/image-fallback.png",
                    class: "h-[66px] w-[66px] rounded-full object-contain",
                    alt: props.fullName
                  }, null, 8, ["alt"])),
                  createVNode(_component_CardTitle, null, {
                    default: withCtx(() => [
                      createTextVNode(toDisplayString(props.fullName), 1)
                    ]),
                    _: 1
                  }),
                  createVNode(_component_CardDescription, null, {
                    default: withCtx(() => [
                      createTextVNode(toDisplayString(props.jobPosition), 1)
                    ]),
                    _: 1
                  })
                ]),
                _: 1
              }),
              createVNode(_component_CardContent, { class: "flex h-full flex-col items-center justify-center gap-6" }, {
                default: withCtx(() => [
                  createVNode("div", { class: "my-2 flex h-[10%] items-center justify-center gap-2" }, [
                    props.comment ? (openBlock(), createBlock(_component_Button, {
                      key: 0,
                      "aria-label": _ctx.$t("ariaLabels.testimonalComment"),
                      variant: "wsIcon",
                      size: "wsIcon",
                      class: [unref(showOpinion) ? "ws-gradient-border" : "", "cursor-pointer"],
                      onClick: ($event) => {
                        showOpinion.value = true;
                        showAudio.value = false;
                        showVideo.value = false;
                      }
                    }, {
                      default: withCtx(() => [
                        createVNode(_component_SvgCommentIcon, {
                          class: "size-[25px]",
                          "is-gradient": unref(showOpinion) ? true : false
                        }, null, 8, ["is-gradient"])
                      ]),
                      _: 1
                    }, 8, ["aria-label", "class", "onClick"])) : createCommentVNode("", true),
                    props.videoUrl ? (openBlock(), createBlock(_component_Button, {
                      key: 1,
                      "aria-label": _ctx.$t("ariaLabels.testimonialVideo"),
                      class: [unref(showVideo) ? "ws-gradient-border" : "", "cursor-pointer"],
                      variant: "wsIcon",
                      size: "wsIcon",
                      onClick: ($event) => {
                        showVideo.value = true;
                        showAudio.value = false;
                        showOpinion.value = false;
                      }
                    }, {
                      default: withCtx(() => [
                        createVNode(_component_SvgGradientPlayIcon, {
                          class: "size-[25px]",
                          "is-gradient": unref(showVideo) ? true : false
                        }, null, 8, ["is-gradient"])
                      ]),
                      _: 1
                    }, 8, ["aria-label", "class", "onClick"])) : createCommentVNode("", true),
                    props.audioUrl ? (openBlock(), createBlock(_component_Button, {
                      key: 2,
                      "aria-label": _ctx.$t("ariaLabels.testimonialSound"),
                      class: [unref(showAudio) ? "ws-gradient-border" : "", "cursor-pointer"],
                      variant: "wsIcon",
                      size: "wsIcon",
                      onClick: ($event) => {
                        showAudio.value = true;
                        showVideo.value = false;
                        showOpinion.value = false;
                      }
                    }, {
                      default: withCtx(() => [
                        createVNode(_component_SvgMicrophoneIcon, {
                          class: "size-[25px]",
                          "is-gradient": unref(showAudio) ? true : false
                        }, null, 8, ["is-gradient"])
                      ]),
                      _: 1
                    }, 8, ["aria-label", "class", "onClick"])) : createCommentVNode("", true)
                  ]),
                  createVNode("div", { class: "flex h-[80%] items-center justify-center gap-2" }, [
                    unref(showOpinion) ? (openBlock(), createBlock("div", {
                      key: 0,
                      class: "scrollable-list max-h-[180px] w-full overflow-y-auto"
                    }, [
                      createVNode("p", { class: "text-justify text-base leading-8 font-normal" }, toDisplayString(props.comment), 1)
                    ])) : createCommentVNode("", true),
                    unref(showVideo) && props.videoUrl ? (openBlock(), createBlock(_sfc_main$1, {
                      key: props.videoResetToken,
                      "video-url": props.videoUrl,
                      "video-class": "h-[150px] w-[260px]",
                      "thumbnail-class": "h-[150px] w-[260px]",
                      onPlay: ($event) => emit("play"),
                      onPause: ($event) => emit("pause")
                    }, null, 8, ["video-url", "onPlay", "onPause"])) : createCommentVNode("", true),
                    unref(showAudio) ? (openBlock(), createBlock(_sfc_main$2, {
                      key: 2,
                      ref_key: "waveformRef",
                      ref: waveformRef,
                      "audio-url": props.audioUrl,
                      class: "w-[300px]",
                      onPlay: ($event) => emit("play"),
                      onPause: ($event) => emit("pause")
                    }, null, 8, ["audio-url", "onPlay", "onPause"])) : createCommentVNode("", true)
                  ]),
                  unref(showAudio) ? (openBlock(), createBlock("div", {
                    key: 0,
                    class: "flex items-center justify-center gap-2"
                  }, [
                    createVNode(_component_Button, {
                      variant: "wsIcon",
                      size: "wsIcon",
                      class: "cursor-pointer",
                      onClick: ($event) => {
                        var _a;
                        return (_a = unref(waveformRef)) == null ? void 0 : _a.reset();
                      }
                    }, {
                      default: withCtx(() => [
                        createVNode(_component_SvgResetIcon, { class: "size-6" })
                      ]),
                      _: 1
                    }, 8, ["onClick"]),
                    createVNode(_component_Button, {
                      variant: "wsIcon",
                      size: "wsIcon",
                      class: "cursor-pointer",
                      onClick: ($event) => {
                        var _a;
                        return (_a = unref(waveformRef)) == null ? void 0 : _a.playPause();
                      }
                    }, {
                      default: withCtx(() => {
                        var _a;
                        return [
                          ((_a = unref(waveformRef)) == null ? void 0 : _a.isPlaying) ? (openBlock(), createBlock(_component_SvgPauseIcon, {
                            key: 0,
                            class: "size-6"
                          })) : (openBlock(), createBlock(_component_SvgPlayIcon, {
                            key: 1,
                            class: "size-6"
                          }))
                        ];
                      }),
                      _: 1
                    }, 8, ["onClick"])
                  ])) : createCommentVNode("", true)
                ]),
                _: 1
              })
            ];
          }
        }),
        _: 1
      }, _parent));
    };
  }
});
const _sfc_setup = _sfc_main.setup;
_sfc_main.setup = (props, ctx) => {
  const ssrContext = useSSRContext();
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/testimonials/TestimonialsCard.vue");
  return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
};
const __nuxt_component_1 = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-a03b4a7f"]]);

export { _sfc_main$9 as _, __nuxt_component_1 as a };
//# sourceMappingURL=TestimonialsCard-en9WoMcd.mjs.map
