{"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/components/case-studies/index.cjs","../../../src/components/case-studies/share-experience-section.tsx"],"names":[],"mappings":"AAAA,qFAAY;AACZ;AACE;AACF,4DAAiC;AACjC;AACE;AACA;AACF,4DAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC;AACE;AACA;AACA;AACA;AACF,4DAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC;AACA;AC+BE,+CAAA;AADF,IAAM,cAAA,kBACJ,8BAAA,oBAAA,EAAA,EAAE,QAAA,EAAA;AAAA,EAAA,uBAAA;AAAA,kBAEA,6BAAA,IAAC,EAAA,CAAA,CAAG,CAAA;AAAA,EAAE,kBAAA;AAAA,kBACU,6BAAA,MAAC,EAAA,EAAK,SAAA,EAAU,iBAAA,EAAkB,QAAA,EAAA,IAAA,CAAC;AAAA,EAAA,CACrD,CAAA;AAGF,IAAM,iBAAA,kBACJ,6BAAA,oBAAA,EAAA,EAAE,QAAA,EAAA,+QAAA,CAKF,CAAA;AAGF,IAAM,2BAAA,kBACJ,8BAAA,oBAAA,EAAA,EAAE,QAAA,EAAA;AAAA,EAAA,cAAA;AAAA,kBACY,6BAAA,MAAC,EAAA,EAAK,SAAA,EAAU,iBAAA,EAAkB,QAAA,EAAA,IAAA,CAAC;AAAA,EAAA,CACjD,CAAA;AAGF,IAAM,0BAAA,kBACJ,6BAAA,oBAAA,EAAA,EAAE,QAAA,EAAA,8IAAA,CAIF,CAAA;AAKF,IAAM,2BAAA,EAA6B;AAAA,EACjC,eAAA,EAAiB,2BAAA;AAAA,EACjB,gBAAA,EAAkB,2BAAA;AAAA,EAClB,UAAA,EAAY,CAAC,aAAA,EAAe,gBAAA,EAAkB,cAAA,EAAgB,SAAS,CAAA;AAAA,EACvE,KAAA,EAAO,EAAA;AAAA,EACP,QAAA,EAAU,EAAA;AAAA,EACV,UAAA,EAAY,EAAA;AAAA,EACZ,QAAA,EAAU,IAAA;AAAA,EACV,SAAA,EAAW,IAAA;AAAA,EACX,aAAA,EAAe,SAAA;AAAA,EACf,eAAA,EAAiB,QAAA;AAAA,EACjB,mBAAA,EAAqB;AACvB,CAAA;AAEO,SAAS,sBAAA,CAAuB;AAAA,EACrC,MAAA,EAAQ,aAAA;AAAA,EACR,SAAA,EAAW,gBAAA;AAAA,EACX,gBAAA,EAAkB,0BAAA;AAAA,EAClB,eAAA,EAAiB,yBAAA;AAAA,EACjB,gBAAA;AAAA,EACA;AACF,EAAA,EAAiC,CAAC,CAAA,EAAG;AACnC,EAAA,uBACE,8BAAA,SAAC,EAAA,EAAQ,SAAA,EAAW,CAAA,oBAAA,EAAuB,UAAA,EAAY,CAAA,CAAA,EAAI,SAAS,CAAA,EAAA;AAEhE,oBAAA;AAAqD,sBAAA;AACD,sBAAA;AACtD,IAAA;AAGE,oBAAA;AAEI,sBAAA;AAAyC,wBAAA;AACF,wBAAA;AACzC,MAAA;AAGE,sBAAA;AAAA,wBAAA;AAAC,UAAA;AAAA,UAAA;AAEkB,YAAA;AAIX,YAAA;AACM,YAAA;AACJ,YAAA;AAAA,UAAA;AACV,QAAA;AACA,wBAAA;AAAC,UAAA;AAAA,UAAA;AAEkB,YAAA;AAIX,YAAA;AACM,YAAA;AACJ,YAAA;AAAA,UAAA;AACV,QAAA;AACA,wBAAA;AAAC,UAAA;AAAA,UAAA;AAEkB,YAAA;AAIX,YAAA;AACM,YAAA;AACJ,YAAA;AAAA,UAAA;AACV,QAAA;AACA,wBAAA;AAAC,UAAA;AAAA,UAAA;AAEkB,YAAA;AAIX,YAAA;AACM,YAAA;AACJ,YAAA;AAAA,UAAA;AACV,QAAA;AACF,MAAA;AAMA,sBAAA;AAAC,QAAA;AAAA,QAAA;AACK,UAAA;AACA,UAAA;AAAA,QAAA;AACN,MAAA;AAEJ,IAAA;AACF,EAAA;AAEJ;AD7DuG;AACA;AACA","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/components/case-studies/index.cjs","sourcesContent":[null,"'use client'\n\nimport React from 'react'\nimport { BenefitCard, BenefitCardGrid } from '../ui'\nimport {\n  G2Icon,\n  CapterraIcon,\n  TrustpilotIcon,\n  GetAppIcon,\n} from '../icons'\nimport {\n  ContactForm,\n  type ContactFormProps,\n} from '../contact'\n\n/**\n * `<ShareExperienceSection>` — the case-studies \"Share Your Experience\"\n * CTA block.\n *\n * Hub usage: rendered inside the unified case-studies chrome (between\n * the search bar and the case-study card grid) so it stays at the same\n * y-offset + gutters as the rest of the page content.\n *\n * Embedders mount this anywhere they like. The inner `<ContactForm>`\n * submits through the AMBIENT `EndpointsRuntime.contactUrl` (same proxy\n * seam every other embed-aware form uses), so embedders behind a\n * `/content` reverse proxy get a working submission with no per-call-\n * site wiring.\n *\n * **Copy is overridable.** Every string is a prop with a sensible\n * \"Flamingo case-studies\" default so the hub keeps its existing copy\n * verbatim; embedders override what they need.\n *\n * **Contact-form integration is configurable.** Hub auto-resolves\n * `userId` / `helpCategoryOptions` / `rdtCid` / `onSubmitSuccess` from\n * its app context and passes them down via `contactFormProps`;\n * embedders without that context just omit them. All other\n * `ContactFormProps` are forwarded too, so the host can adjust prefill,\n * success redirect, hidden fields, etc. without forking this component.\n */\nexport interface ShareExperienceSectionProps {\n  /** Override the section heading. JSX so the host can break lines /\n   *  colorize the accent the same way the hub does. Default: the\n   *  hub's two-line \"Share Your Experience / with Fellow MSPs:\" copy. */\n  title?: React.ReactNode\n  /** Override the lead paragraph. Default: the hub's review-incentive\n   *  copy referencing Flamingo. Pass a brand-neutral string in embeds. */\n  subtitle?: React.ReactNode\n  /** Override the \"How it works?\" sub-heading. */\n  howItWorksTitle?: React.ReactNode\n  /** Override the \"How it works?\" body copy. */\n  howItWorksBody?: React.ReactNode\n  /** Forwarded to the inner `<ContactForm>`. The hub passes its\n   *  auto-resolved `userId` / `helpCategoryOptions` / `rdtCid` /\n   *  `onSubmitSuccess` here. Embedders pass overrides like\n   *  `successRedirectUrl` or extra prefill copy. */\n  contactFormProps?: Partial<ContactFormProps>\n  className?: string\n}\n\nconst DEFAULT_TITLE: React.ReactNode = (\n  <>\n    Share Your Experience\n    <br />\n    with Fellow MSPs<span className=\"text-ods-accent\">:</span>\n  </>\n)\n\nconst DEFAULT_SUBTITLE: React.ReactNode = (\n  <>\n    We know your time is valuable. When you leave an honest review about\n    your Flamingo experience, we&apos;d like to thank you with a gift\n    certificate – not as payment for a review, but as appreciation for\n    the time you invest in helping other MSPs make informed decisions.\n  </>\n)\n\nconst DEFAULT_HOW_IT_WORKS_TITLE: React.ReactNode = (\n  <>\n    How it works<span className=\"text-ods-accent\">?</span>\n  </>\n)\n\nconst DEFAULT_HOW_IT_WORKS_BODY: React.ReactNode = (\n  <>\n    Share your name and email with us, and we&apos;ll reach out to guide\n    you through the review process and arrange your thank-you gift\n    certificate.\n  </>\n)\n\n/** Defaults that match the hub's existing /case-studies behavior. Host\n *  overrides via `contactFormProps` win over these. */\nconst DEFAULT_CONTACT_FORM_PROPS = {\n  prefilledReason: 'I want to do a case study',\n  prefilledMessage: 'I want to do a case study',\n  hideFields: ['companySize', 'referralSource', 'helpCategory', 'message'] as ContactFormProps['hideFields'],\n  title: '',\n  subtitle: '',\n  footerText: '',\n  noBorder: true,\n  noPadding: true,\n  buttonVariant: 'outline' as ContactFormProps['buttonVariant'],\n  buttonClassName: 'w-full',\n  successToastMessage: \"Thank you! We'll reach out to schedule your case study.\",\n} satisfies Partial<ContactFormProps>\n\nexport function ShareExperienceSection({\n  title = DEFAULT_TITLE,\n  subtitle = DEFAULT_SUBTITLE,\n  howItWorksTitle = DEFAULT_HOW_IT_WORKS_TITLE,\n  howItWorksBody = DEFAULT_HOW_IT_WORKS_BODY,\n  contactFormProps,\n  className,\n}: ShareExperienceSectionProps = {}) {\n  return (\n    <section className={`flex flex-col gap-10${className ? ` ${className}` : ''}`}>\n      <div className=\"text-ods-text-primary\">\n        <h2 className=\"text-h1 text-ods-text-primary\">{title}</h2>\n        <p className=\"text-h4 mt-6 max-w-[765px]\">{subtitle}</p>\n      </div>\n\n      <div className=\"bg-ods-bg border border-ods-border rounded-md p-10\">\n        <div className=\"flex flex-col gap-10\">\n          <div className=\"flex flex-col gap-6 text-ods-text-primary\">\n            <h3 className=\"text-h2\">{howItWorksTitle}</h3>\n            <p className=\"text-h4\">{howItWorksBody}</p>\n          </div>\n\n          <BenefitCardGrid columns={4}>\n            <BenefitCard\n              icon={\n                <div className=\"bg-ods-bg border border-ods-border rounded-md p-2 w-12 h-12 flex items-center justify-center\">\n                  <G2Icon width={24} height={24} />\n                </div>\n              }\n              title=\"G2\"\n              description=\"g2.com\"\n              variant=\"auth-figma\"\n            />\n            <BenefitCard\n              icon={\n                <div className=\"bg-ods-bg border border-ods-border rounded-md p-2 w-12 h-12 flex items-center justify-center\">\n                  <CapterraIcon width={24} height={24} />\n                </div>\n              }\n              title=\"Capterra\"\n              description=\"capterra.com\"\n              variant=\"auth-figma\"\n            />\n            <BenefitCard\n              icon={\n                <div className=\"bg-ods-bg border border-ods-border rounded-md p-2 w-12 h-12 flex items-center justify-center\">\n                  <TrustpilotIcon width={24} height={24} />\n                </div>\n              }\n              title=\"TrustPilot\"\n              description=\"trustpilot.com\"\n              variant=\"auth-figma\"\n            />\n            <BenefitCard\n              icon={\n                <div className=\"bg-ods-bg border border-ods-border rounded-md p-2 w-12 h-12 flex items-center justify-center\">\n                  <GetAppIcon width={24} height={24} />\n                </div>\n              }\n              title=\"GetApp\"\n              description=\"getapp.com\"\n              variant=\"auth-figma\"\n            />\n          </BenefitCardGrid>\n\n          {/* Submission proxies through ambient EndpointsRuntime.contactUrl —\n           *  no per-call-site wiring needed for embeds behind a reverse\n           *  proxy. Hub's auto-resolving wrapper passes userId / rdtCid /\n           *  onSubmitSuccess via `contactFormProps`. */}\n          <ContactForm\n            {...DEFAULT_CONTACT_FORM_PROPS}\n            {...contactFormProps}\n          />\n        </div>\n      </div>\n    </section>\n  )\n}\n"]}