@affinda/wc 0.0.6 → 0.0.8
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/affinda/af-button.entry.esm.js.map +1 -1
- package/dist/affinda/af-card.entry.esm.js.map +1 -1
- package/dist/affinda/af-client-carousel.entry.esm.js.map +1 -0
- package/dist/affinda/af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.esm.js.map +1 -1
- package/dist/affinda/af-hero-section.entry.esm.js.map +1 -0
- package/dist/affinda/af-logo-well.entry.esm.js.map +1 -0
- package/dist/affinda/af-section.entry.esm.js.map +1 -0
- package/dist/affinda/af-testimonial-carousel.entry.esm.js.map +1 -0
- package/dist/affinda/af-testimonial-stat.entry.esm.js.map +1 -0
- package/dist/affinda/af-testimonial.entry.esm.js.map +1 -0
- package/dist/affinda/af-typography-lockup.entry.esm.js.map +1 -1
- package/dist/affinda/affinda.css +1 -1
- package/dist/affinda/affinda.esm.js +1 -1
- package/dist/affinda/index.esm.js +1 -1
- package/dist/affinda/p-0c4a30a4.entry.js +2 -0
- package/dist/affinda/p-0c4a30a4.entry.js.map +1 -0
- package/dist/affinda/p-0fb55acf.entry.js +2 -0
- package/dist/affinda/p-0fb55acf.entry.js.map +1 -0
- package/dist/affinda/p-10288f13.entry.js +2 -0
- package/dist/affinda/p-10288f13.entry.js.map +1 -0
- package/dist/affinda/p-13c30dd8.entry.js +2 -0
- package/dist/affinda/p-13c30dd8.entry.js.map +1 -0
- package/dist/affinda/{p-47629246.entry.js → p-23aedaa4.entry.js} +2 -2
- package/dist/affinda/{p-9c22948a.entry.js → p-39e917eb.entry.js} +2 -2
- package/dist/affinda/{p-bf697823.entry.js → p-430127fa.entry.js} +2 -2
- package/dist/affinda/{p-b79f976e.entry.js → p-45d0f3e3.entry.js} +2 -2
- package/dist/affinda/p-45d0f3e3.entry.js.map +1 -0
- package/dist/affinda/p-46edc753.entry.js +2 -0
- package/dist/affinda/p-46edc753.entry.js.map +1 -0
- package/dist/affinda/{p-d33de48f.entry.js → p-56a15842.entry.js} +2 -2
- package/dist/affinda/p-7c115698.entry.js +2 -0
- package/dist/affinda/p-7c115698.entry.js.map +1 -0
- package/dist/affinda/p-867c5141.entry.js +2 -0
- package/dist/affinda/p-Agei6ZJQ.js +3 -0
- package/dist/affinda/p-Agei6ZJQ.js.map +1 -0
- package/dist/affinda/{p-f8d89fb6.entry.js → p-d7ff9fd9.entry.js} +2 -2
- package/dist/affinda/{p-a8d223ca.entry.js → p-e2c40f4e.entry.js} +2 -2
- package/dist/affinda/{p-a8d223ca.entry.js.map → p-e2c40f4e.entry.js.map} +1 -1
- package/dist/affinda/p-e56182e4.entry.js +2 -0
- package/dist/affinda/p-e56182e4.entry.js.map +1 -0
- package/dist/affinda/p-f6f2f1c4.entry.js +2 -0
- package/dist/affinda/p-f6f2f1c4.entry.js.map +1 -0
- package/dist/cjs/af-aspect-ratio.cjs.entry.js +1 -1
- package/dist/cjs/af-button-group.cjs.entry.js +2 -2
- package/dist/cjs/af-button.cjs.entry.js +7 -2
- package/dist/cjs/af-button.entry.cjs.js.map +1 -1
- package/dist/cjs/af-card.cjs.entry.js +3 -3
- package/dist/cjs/af-card.entry.cjs.js.map +1 -1
- package/dist/cjs/af-client-carousel.cjs.entry.js +22 -0
- package/dist/cjs/af-client-carousel.entry.cjs.js.map +1 -0
- package/dist/cjs/af-color-swatch.cjs.entry.js +1 -1
- package/dist/cjs/af-container.cjs.entry.js +1 -1
- package/dist/cjs/af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.cjs.js.map +1 -1
- package/dist/cjs/af-heading_5.cjs.entry.js +22 -12
- package/dist/cjs/af-hero-section.cjs.entry.js +24 -0
- package/dist/cjs/af-hero-section.entry.cjs.js.map +1 -0
- package/dist/cjs/af-icon-button.cjs.entry.js +1 -1
- package/dist/cjs/af-logo-well.cjs.entry.js +18 -0
- package/dist/cjs/af-logo-well.entry.cjs.js.map +1 -0
- package/dist/cjs/af-section.cjs.entry.js +25 -0
- package/dist/cjs/af-section.entry.cjs.js.map +1 -0
- package/dist/cjs/af-testimonial-carousel.cjs.entry.js +90 -0
- package/dist/cjs/af-testimonial-carousel.entry.cjs.js.map +1 -0
- package/dist/cjs/af-testimonial-stat.cjs.entry.js +22 -0
- package/dist/cjs/af-testimonial-stat.entry.cjs.js.map +1 -0
- package/dist/cjs/af-testimonial.cjs.entry.js +18 -0
- package/dist/cjs/af-testimonial.entry.cjs.js.map +1 -0
- package/dist/cjs/af-typography-lockup.cjs.entry.js +3 -3
- package/dist/cjs/af-typography-lockup.entry.cjs.js.map +1 -1
- package/dist/cjs/affinda.cjs.js +2 -2
- package/dist/cjs/{index-1GcSSOS3.js → index-D_ItFcqt.js} +58 -8
- package/dist/cjs/index-D_ItFcqt.js.map +1 -0
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/collection/assets/paperclip-decoration.svg +3 -0
- package/dist/collection/collection-manifest.json +8 -1
- package/dist/collection/components/af-button/af-button.js +26 -1
- package/dist/collection/components/af-button/af-button.js.map +1 -1
- package/dist/collection/components/af-button-group/af-button-group.js +1 -1
- package/dist/collection/components/af-card/af-card.css +10 -7
- package/dist/collection/components/af-card/af-card.js +1 -1
- package/dist/collection/components/af-client-carousel/af-client-carousel.css +112 -0
- package/dist/collection/components/af-client-carousel/af-client-carousel.js +72 -0
- package/dist/collection/components/af-client-carousel/af-client-carousel.js.map +1 -0
- package/dist/collection/components/af-heading/af-heading.css +10 -1
- package/dist/collection/components/af-heading/af-heading.js +26 -3
- package/dist/collection/components/af-heading/af-heading.js.map +1 -1
- package/dist/collection/components/af-hero-section/af-hero-section.css +69 -0
- package/dist/collection/components/af-hero-section/af-hero-section.js +94 -0
- package/dist/collection/components/af-hero-section/af-hero-section.js.map +1 -0
- package/dist/collection/components/af-logo/af-logo.js +1 -1
- package/dist/collection/components/af-logo-well/af-logo-well.css +27 -0
- package/dist/collection/components/af-logo-well/af-logo-well.js +22 -0
- package/dist/collection/components/af-logo-well/af-logo-well.js.map +1 -0
- package/dist/collection/components/af-navbar/af-navbar.css +40 -3
- package/dist/collection/components/af-navbar/af-navbar.js +13 -1
- package/dist/collection/components/af-navbar/af-navbar.js.map +1 -1
- package/dist/collection/components/af-section/af-section.css +52 -0
- package/dist/collection/components/af-section/af-section.js +95 -0
- package/dist/collection/components/af-section/af-section.js.map +1 -0
- package/dist/collection/components/af-testimonial/af-testimonial.css +143 -0
- package/dist/collection/components/af-testimonial/af-testimonial.js +118 -0
- package/dist/collection/components/af-testimonial/af-testimonial.js.map +1 -0
- package/dist/collection/components/af-testimonial-carousel/af-testimonial-carousel.css +97 -0
- package/dist/collection/components/af-testimonial-carousel/af-testimonial-carousel.js +100 -0
- package/dist/collection/components/af-testimonial-carousel/af-testimonial-carousel.js.map +1 -0
- package/dist/collection/components/af-testimonial-stat/af-testimonial-stat.css +41 -0
- package/dist/collection/components/af-testimonial-stat/af-testimonial-stat.js +87 -0
- package/dist/collection/components/af-testimonial-stat/af-testimonial-stat.js.map +1 -0
- package/dist/collection/components/af-text/af-text.css +10 -1
- package/dist/collection/components/af-text/af-text.js +26 -3
- package/dist/collection/components/af-text/af-text.js.map +1 -1
- package/dist/collection/components/af-typography-lockup/af-typography-lockup.css +1 -1
- package/dist/collection/components/af-typography-lockup/af-typography-lockup.js +1 -1
- package/dist/components/af-aspect-ratio.js +1 -1
- package/dist/components/af-button-group.js +1 -1
- package/dist/components/af-button.js +1 -1
- package/dist/components/af-card.js +3 -3
- package/dist/components/af-card.js.map +1 -1
- package/dist/components/af-client-carousel.d.ts +11 -0
- package/dist/components/af-client-carousel.js +45 -0
- package/dist/components/af-client-carousel.js.map +1 -0
- package/dist/components/af-color-swatch.js +1 -1
- package/dist/components/af-container.js +1 -1
- package/dist/components/af-heading.js +1 -1
- package/dist/components/af-hero-section.d.ts +11 -0
- package/dist/components/af-hero-section.js +53 -0
- package/dist/components/af-hero-section.js.map +1 -0
- package/dist/components/af-icon-button.js +1 -1
- package/dist/components/af-logo-well.d.ts +11 -0
- package/dist/components/af-logo-well.js +38 -0
- package/dist/components/af-logo-well.js.map +1 -0
- package/dist/components/af-logo.js +1 -1
- package/dist/components/af-nav-item.js +1 -1
- package/dist/components/af-navbar.js +1 -1
- package/dist/components/af-section.d.ts +11 -0
- package/dist/components/af-section.js +54 -0
- package/dist/components/af-section.js.map +1 -0
- package/dist/components/af-testimonial-carousel.d.ts +11 -0
- package/dist/components/af-testimonial-carousel.js +113 -0
- package/dist/components/af-testimonial-carousel.js.map +1 -0
- package/dist/components/af-testimonial-stat.d.ts +11 -0
- package/dist/components/af-testimonial-stat.js +45 -0
- package/dist/components/af-testimonial-stat.js.map +1 -0
- package/dist/components/af-testimonial.d.ts +11 -0
- package/dist/components/af-testimonial.js +43 -0
- package/dist/components/af-testimonial.js.map +1 -0
- package/dist/components/af-text.js +1 -1
- package/dist/components/af-typography-lockup.js +1 -1
- package/dist/components/index.js +13 -13
- package/dist/components/{p-C6idwlD-.js → p-BMl1ggbQ.js} +3 -3
- package/dist/components/{p-C6idwlD-.js.map → p-BMl1ggbQ.js.map} +1 -1
- package/dist/components/{p-DSAo7rhE.js → p-BSewwIfD.js} +3 -3
- package/dist/components/{p-DSAo7rhE.js.map → p-BSewwIfD.js.map} +1 -1
- package/dist/components/{p-Cjv046iG.js → p-BeQlNDyY.js} +4 -4
- package/dist/components/{p-Cjv046iG.js.map → p-BeQlNDyY.js.map} +1 -1
- package/dist/components/{p-CRgPNvxI.js → p-BpXkQGDQ.js} +3 -3
- package/dist/components/{p-CRgPNvxI.js.map → p-BpXkQGDQ.js.map} +1 -1
- package/dist/components/p-C1C1Him5.js +54 -0
- package/dist/components/p-C1C1Him5.js.map +1 -0
- package/dist/components/{p-CJWIieDU.js → p-CUr7n62X.js} +3 -3
- package/dist/components/{p-CJWIieDU.js.map → p-CUr7n62X.js.map} +1 -1
- package/dist/components/{p-zwrcq-N2.js → p-CZlTvZAm.js} +53 -8
- package/dist/components/p-CZlTvZAm.js.map +1 -0
- package/dist/components/{p-cKSy1B8M.js → p-CcNomA2o.js} +11 -5
- package/dist/components/p-CcNomA2o.js.map +1 -0
- package/dist/components/p-Csie_upq.js +41 -0
- package/dist/components/p-Csie_upq.js.map +1 -0
- package/dist/components/{p-DuXQZGjc.js → p-D4NomvK5.js} +5 -5
- package/dist/components/{p-DuXQZGjc.js.map → p-D4NomvK5.js.map} +1 -1
- package/dist/components/{p-DIyOg-i_.js → p-Vu-NeL7U.js} +12 -8
- package/dist/components/p-Vu-NeL7U.js.map +1 -0
- package/dist/components/{p-CaqzUz5o.js → p-sJI0-JlJ.js} +4 -4
- package/dist/components/{p-CaqzUz5o.js.map → p-sJI0-JlJ.js.map} +1 -1
- package/dist/components/{p-Dw33Xm_t.js → p-tFlyM2Th.js} +3 -3
- package/dist/components/{p-Dw33Xm_t.js.map → p-tFlyM2Th.js.map} +1 -1
- package/dist/esm/af-aspect-ratio.entry.js +1 -1
- package/dist/esm/af-button-group.entry.js +2 -2
- package/dist/esm/af-button.entry.js +7 -2
- package/dist/esm/af-button.entry.js.map +1 -1
- package/dist/esm/af-card.entry.js +3 -3
- package/dist/esm/af-card.entry.js.map +1 -1
- package/dist/esm/af-client-carousel.entry.js +20 -0
- package/dist/esm/af-client-carousel.entry.js.map +1 -0
- package/dist/esm/af-color-swatch.entry.js +1 -1
- package/dist/esm/af-container.entry.js +1 -1
- package/dist/esm/af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.js.map +1 -1
- package/dist/esm/af-heading_5.entry.js +22 -12
- package/dist/esm/af-hero-section.entry.js +22 -0
- package/dist/esm/af-hero-section.entry.js.map +1 -0
- package/dist/esm/af-icon-button.entry.js +1 -1
- package/dist/esm/af-logo-well.entry.js +16 -0
- package/dist/esm/af-logo-well.entry.js.map +1 -0
- package/dist/esm/af-section.entry.js +23 -0
- package/dist/esm/af-section.entry.js.map +1 -0
- package/dist/esm/af-testimonial-carousel.entry.js +88 -0
- package/dist/esm/af-testimonial-carousel.entry.js.map +1 -0
- package/dist/esm/af-testimonial-stat.entry.js +20 -0
- package/dist/esm/af-testimonial-stat.entry.js.map +1 -0
- package/dist/esm/af-testimonial.entry.js +16 -0
- package/dist/esm/af-testimonial.entry.js.map +1 -0
- package/dist/esm/af-typography-lockup.entry.js +3 -3
- package/dist/esm/af-typography-lockup.entry.js.map +1 -1
- package/dist/esm/affinda.js +3 -3
- package/dist/esm/{index-Dmaq2rkg.js → index-Agei6ZJQ.js} +58 -9
- package/dist/esm/index-Agei6ZJQ.js.map +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/types/components/af-button/af-button.d.ts +4 -0
- package/dist/types/components/af-client-carousel/af-client-carousel.d.ts +10 -0
- package/dist/types/components/af-heading/af-heading.d.ts +2 -0
- package/dist/types/components/af-hero-section/af-hero-section.d.ts +12 -0
- package/dist/types/components/af-logo-well/af-logo-well.d.ts +6 -0
- package/dist/types/components/af-navbar/af-navbar.d.ts +3 -0
- package/dist/types/components/af-section/af-section.d.ts +12 -0
- package/dist/types/components/af-testimonial/af-testimonial.d.ts +23 -0
- package/dist/types/components/af-testimonial-carousel/af-testimonial-carousel.d.ts +15 -0
- package/dist/types/components/af-testimonial-stat/af-testimonial-stat.d.ts +15 -0
- package/dist/types/components/af-text/af-text.d.ts +2 -0
- package/dist/types/components.d.ts +319 -0
- package/package.json +14 -10
- package/dist/affinda/p-92f5a5d5.entry.js +0 -2
- package/dist/affinda/p-92f5a5d5.entry.js.map +0 -1
- package/dist/affinda/p-Dmaq2rkg.js +0 -3
- package/dist/affinda/p-Dmaq2rkg.js.map +0 -1
- package/dist/affinda/p-b79f976e.entry.js.map +0 -1
- package/dist/affinda/p-cb218d26.entry.js +0 -2
- package/dist/cjs/index-1GcSSOS3.js.map +0 -1
- package/dist/components/p-BHNNF4PT.js +0 -35
- package/dist/components/p-BHNNF4PT.js.map +0 -1
- package/dist/components/p-BpGDzCRf.js +0 -50
- package/dist/components/p-BpGDzCRf.js.map +0 -1
- package/dist/components/p-DIyOg-i_.js.map +0 -1
- package/dist/components/p-cKSy1B8M.js.map +0 -1
- package/dist/components/p-zwrcq-N2.js.map +0 -1
- package/dist/esm/index-Dmaq2rkg.js.map +0 -1
- /package/dist/affinda/{p-47629246.entry.js.map → p-23aedaa4.entry.js.map} +0 -0
- /package/dist/affinda/{p-9c22948a.entry.js.map → p-39e917eb.entry.js.map} +0 -0
- /package/dist/affinda/{p-bf697823.entry.js.map → p-430127fa.entry.js.map} +0 -0
- /package/dist/affinda/{p-d33de48f.entry.js.map → p-56a15842.entry.js.map} +0 -0
- /package/dist/affinda/{p-cb218d26.entry.js.map → p-867c5141.entry.js.map} +0 -0
- /package/dist/affinda/{p-f8d89fb6.entry.js.map → p-d7ff9fd9.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.js","sources":["src/components/af-heading/af-heading.css?tag=af-heading&encapsulation=shadow","src/components/af-heading/af-heading.tsx","src/components/af-text/af-text.css?tag=af-text&encapsulation=shadow","src/components/af-text/af-text.tsx","src/components/af-nav-item/af-nav-item.css?tag=af-nav-item&encapsulation=shadow","src/components/af-nav-item/af-nav-item.tsx","src/components/af-navbar/af-navbar.css?tag=af-navbar&encapsulation=shadow","src/components/af-navbar/af-navbar.tsx","src/components/af-logo/af-logo.css?tag=af-logo&encapsulation=shadow","src/components/af-logo/af-logo.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.heading {\n margin: 0;\n padding: 0;\n font-family: 'NeuSans', 'Inter', 'Segoe UI', system-ui, sans-serif;\n font-weight: 500;\n color: var(--colour-typography-heading-primary, #14343b);\n letter-spacing: -0.02em;\n}\n\n/* Alignment */\n.align-left {\n text-align: left;\n}\n\n.align-center {\n text-align: center;\n}\n\n.align-right {\n text-align: right;\n}\n\n/* Heading XL */\n.level-xl {\n font-size: 50px;\n line-height: 1;\n}\n\n@media (min-width: 768px) {\n .level-xl {\n font-size: 80px;\n }\n}\n\n/* Heading 1 */\n.level-1 {\n font-size: 38px;\n line-height: 1;\n}\n\n@media (min-width: 768px) {\n .level-1 {\n font-size: 56px;\n }\n}\n\n/* Heading 2 */\n.level-2 {\n font-size: 32px;\n line-height: 1;\n}\n\n@media (min-width: 768px) {\n .level-2 {\n font-size: 44px;\n }\n}\n\n/* Heading 3 */\n.level-3 {\n font-size: 25px;\n line-height: 1;\n}\n\n@media (min-width: 768px) {\n .level-3 {\n font-size: 34px;\n }\n}\n\n/* Heading 4 */\n.level-4 {\n font-size: 20px;\n line-height: 1.1;\n}\n\n@media (min-width: 768px) {\n .level-4 {\n font-size: 24px;\n line-height: 1.2;\n }\n}\n\n/* Heading 5 */\n.level-5 {\n font-size: 18px;\n line-height: 1.1;\n}\n\n@media (min-width: 768px) {\n .level-5 {\n font-size: 20px;\n line-height: 1.2;\n }\n}\n","import { Component, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'af-heading',\n styleUrl: 'af-heading.css',\n shadow: true\n})\nexport class AfHeading {\n /** Heading level */\n @Prop() level: 'xl' | '1' | '2' | '3' | '4' | '5' = '1';\n\n /** Visual alignment */\n @Prop() align: 'left' | 'center' | 'right' = 'left';\n\n private getHeadingTag() {\n // Map display levels to semantic HTML tags\n const tagMap: Record<string, string> = {\n 'xl': 'h1',\n '1': 'h1',\n '2': 'h2',\n '3': 'h3',\n '4': 'h4',\n '5': 'h5'\n };\n return tagMap[this.level] || 'h1';\n }\n\n render() {\n const Tag = this.getHeadingTag() as any;\n\n return (\n <Tag\n class={{\n 'heading': true,\n [`level-${this.level}`]: true,\n [`align-${this.align}`]: true\n }}\n part=\"base\"\n >\n <slot />\n </Tag>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.text {\n margin: 0;\n padding: 0;\n font-family: 'Helvetica', 'Inter', 'Segoe UI', system-ui, sans-serif;\n font-weight: 400;\n color: var(--colour-typography-body-default, #14343b);\n letter-spacing: 0;\n}\n\n/* Alignment */\n.align-left {\n text-align: left;\n}\n\n.align-center {\n text-align: center;\n}\n\n.align-right {\n text-align: right;\n}\n\n/* Body variants */\n.variant-xlarge {\n font-size: 22px;\n line-height: 28px;\n}\n\n.variant-large {\n font-size: 18px;\n line-height: 26px;\n}\n\n.variant-medium {\n font-size: 16px;\n line-height: 24px;\n}\n\n.variant-small {\n font-size: 14px;\n line-height: 20px;\n}\n\n/* Label variants - use NeuSans Book */\n.variant-label-button {\n font-family: 'NeuSans', 'Inter', 'Segoe UI', system-ui, sans-serif;\n font-weight: 500;\n font-size: 17px;\n line-height: 20px;\n}\n\n.variant-label-tag {\n font-family: 'NeuSans', 'Inter', 'Segoe UI', system-ui, sans-serif;\n font-weight: 500;\n font-size: 14px;\n line-height: 1;\n}\n","import { Component, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'af-text',\n styleUrl: 'af-text.css',\n shadow: true\n})\nexport class AfText {\n /** Text variant */\n @Prop() variant: 'xlarge' | 'large' | 'medium' | 'small' | 'label-button' | 'label-tag' = 'medium';\n\n /** Visual alignment */\n @Prop() align: 'left' | 'center' | 'right' = 'left';\n\n /** Semantic element to render */\n @Prop() as: 'p' | 'span' | 'div' | 'label' = 'p';\n\n render() {\n const Tag = this.as as any;\n\n return (\n <Tag\n class={{\n 'text': true,\n [`variant-${this.variant}`]: true,\n [`align-${this.align}`]: true\n }}\n part=\"base\"\n >\n <slot />\n </Tag>\n );\n }\n}\n",":host {\n display: inline-block;\n}\n\n.nav-link {\n text-decoration: none;\n color: inherit;\n display: block;\n}\n\n.nav-item {\n display: flex;\n align-items: center;\n gap: 8px;\n box-sizing: border-box;\n cursor: pointer;\n}\n\n/* Primary hierarchy - bold main navigation */\n.hierarchy-primary {\n padding: 12px;\n justify-content: center;\n}\n\n.hierarchy-primary .label-container {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 24px;\n gap: 10px;\n}\n\n/* Primary variant 01 - darker */\n.hierarchy-primary.variant-01 {\n font-family: var(--typography-headingfont, 'NeuSans', 'Inter', system-ui, sans-serif);\n font-size: 16px;\n font-weight: var(--font-weight-book, 500);\n line-height: 20px;\n color: var(--colour-typography-nav-item-primary, #14343b);\n}\n\n/* Primary variant 02 - lighter for light backgrounds */\n.hierarchy-primary.variant-02 {\n font-family: var(--typography-bodyfont, 'Helvetica', 'Inter', system-ui, sans-serif);\n font-size: 16px;\n font-weight: var(--font-weight-regular, 400);\n line-height: 20px;\n color: var(--colour-typography-nav-item-secondary, #2b484f);\n}\n\n/* Hover state for primary variant-01 (dark backgrounds) - underline */\n.hierarchy-primary.variant-01:hover .label-container {\n border-bottom: 1px solid currentColor;\n}\n\n/* Active state for primary variant-01 - thicker border */\n.hierarchy-primary.variant-01.active .label-container {\n border-bottom: 2px solid #8a7049;\n}\n\n/* Hover and active states for variant-02 (light backgrounds) - no border */\n.hierarchy-primary.variant-02:hover {\n background-color: rgba(20, 52, 59, 0.04);\n border-radius: 8px;\n}\n\n.hierarchy-primary.variant-02.active {\n background-color: rgba(20, 52, 59, 0.08);\n border-radius: 8px;\n}\n\n/* Secondary hierarchy - smaller sub-navigation */\n.hierarchy-secondary {\n padding: 4px 0;\n}\n\n.hierarchy-secondary .label-container {\n display: flex;\n align-items: center;\n flex: 1;\n min-height: 24px;\n gap: 8px;\n}\n\n/* Secondary variant 01 - medium weight */\n.hierarchy-secondary.variant-01 {\n font-family: 'NeuSans', 'Inter', system-ui, sans-serif;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n color: #14343b;\n}\n\n/* Secondary variant 02 - regular weight */\n.hierarchy-secondary.variant-02 {\n font-family: 'NeuSans', 'Inter', system-ui, sans-serif;\n font-size: 14px;\n font-weight: 400;\n line-height: 20px;\n color: #2b484f;\n}\n\n/* Hover state for secondary - underline text */\n.hierarchy-secondary:hover ::slotted(*) {\n text-decoration: underline;\n}\n\n/* Mobile styles */\n@media (max-width: 767px) {\n .hierarchy-primary {\n padding: 20px 12px;\n border-bottom: 1px solid #e8eeed;\n width: 100%;\n }\n\n .hierarchy-primary .label-container {\n flex: 1;\n justify-content: flex-start;\n }\n\n .hierarchy-primary.variant-01 {\n font-size: 20px;\n line-height: 1.1;\n letter-spacing: -0.4px;\n }\n\n .hierarchy-primary.variant-02 {\n font-size: 20px;\n line-height: 1.1;\n letter-spacing: -0.4px;\n color: #60767b;\n }\n}\n\n/* Icon sizing */\n::slotted([slot=\"icon-left\"]),\n::slotted([slot=\"icon-right\"]) {\n width: 24px;\n height: 24px;\n flex-shrink: 0;\n}\n\n.hierarchy-secondary ::slotted([slot=\"icon-right\"]) {\n width: 20px;\n height: 20px;\n}\n","import { Component, h, Prop, Host } from '@stencil/core';\n\n/**\n * A generic navigation item component that can be used in navigation bars, menus, and sidebars.\n * Supports multiple hierarchy levels, variants, and states (active, hover).\n */\n@Component({\n tag: 'af-nav-item',\n styleUrl: 'af-nav-item.css',\n shadow: true\n})\nexport class AfNavItem {\n /**\n * Visual hierarchy level of the navigation item\n * - 'primary': Bold, main navigation (larger text, prominent styling)\n * - 'secondary': Lighter, sub-navigation (smaller text, subtle styling)\n */\n @Prop() hierarchy: 'primary' | 'secondary' = 'primary';\n\n /**\n * Visual variant within the hierarchy level\n * - '01': Darker/more prominent styling\n * - '02': Lighter/more subtle styling\n */\n @Prop() variant: '01' | '02' = '01';\n\n /**\n * URL to navigate to when clicked\n */\n @Prop() href?: string;\n\n /**\n * Whether this nav item is currently active/selected\n */\n @Prop() active: boolean = false;\n\n render() {\n const classes = {\n 'nav-item': true,\n [`hierarchy-${this.hierarchy}`]: true,\n [`variant-${this.variant}`]: true,\n 'active': this.active\n };\n\n const content = (\n <div class={classes}>\n <slot name=\"icon-left\"></slot>\n <div class=\"label-container\">\n <slot></slot>\n </div>\n <slot name=\"icon-right\"></slot>\n </div>\n );\n\n if (this.href) {\n return (\n <Host>\n <a href={this.href} class=\"nav-link\">\n {content}\n </a>\n </Host>\n );\n }\n\n return <Host>{content}</Host>;\n }\n}\n",":host {\n display: block;\n width: 100%;\n position: absolute;\n top: 32px;\n left: 0;\n right: 0;\n z-index: 10;\n}\n\n.navbar-container {\n padding: 0 80px;\n box-sizing: border-box;\n position: relative;\n}\n\n.navbar {\n background: var(--colour-background-white, #ffffff);\n border-radius: 9999px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 8px 8px 40px;\n box-sizing: border-box;\n}\n\n/* Left section */\n.navbar-left {\n display: flex;\n align-items: center;\n gap: 32px;\n}\n\n.logo {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n.nav-links {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n/* Right section */\n.navbar-right {\n display: flex;\n align-items: center;\n gap: 20px;\n}\n\n.nav-actions {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.nav-button {\n display: flex;\n align-items: center;\n}\n\n/* Tablet adjustments */\n@media (max-width: 1024px) {\n .navbar-container {\n padding: 24px 40px 0;\n }\n\n .navbar-left {\n gap: 24px;\n }\n\n .nav-links {\n gap: 4px;\n }\n}\n\n/* Mobile adjustments */\n@media (max-width: 767px) {\n .navbar-container {\n padding: 16px 16px 0;\n }\n\n .navbar {\n padding: 8px 16px;\n flex-direction: column;\n border-radius: 16px;\n gap: 16px;\n }\n\n .navbar-left {\n width: 100%;\n flex-direction: column;\n gap: 16px;\n align-items: flex-start;\n }\n\n .nav-links {\n width: 100%;\n flex-direction: column;\n align-items: stretch;\n gap: 0;\n }\n\n .navbar-right {\n width: 100%;\n flex-direction: column;\n gap: 12px;\n align-items: stretch;\n }\n\n .nav-actions {\n width: 100%;\n flex-direction: column;\n align-items: stretch;\n gap: 0;\n }\n\n .nav-button {\n width: 100%;\n }\n}\n","import { Component, h, Host } from '@stencil/core';\n\n/**\n * A full-width navigation bar component that provides the main site navigation.\n * Features a pill-shaped container with logo, navigation links, and action buttons.\n */\n@Component({\n tag: 'af-navbar',\n styleUrl: 'af-navbar.css',\n shadow: true\n})\nexport class AfNavbar {\n render() {\n return (\n <Host>\n <nav class=\"navbar-container\">\n <div class=\"navbar\">\n {/* Left section: Logo + Nav Links */}\n <div class=\"navbar-left\">\n <div class=\"logo\">\n <slot name=\"logo\"></slot>\n </div>\n <div class=\"nav-links\">\n <slot name=\"start\"></slot>\n </div>\n </div>\n\n {/* Right section: Actions + Button */}\n <div class=\"navbar-right\">\n <div class=\"nav-actions\">\n <slot name=\"end\"></slot>\n </div>\n <div class=\"nav-button\">\n <slot name=\"button\"></slot>\n </div>\n </div>\n </div>\n </nav>\n </Host>\n );\n }\n}\n",":host {\n display: inline-block;\n}\n\n.logo-img {\n display: block;\n height: 22px;\n width: 141px;\n object-fit: contain;\n}\n","import { Component, h, Host } from '@stencil/core';\n\n/**\n * Affinda logo component\n */\n@Component({\n tag: 'af-logo',\n styleUrl: 'af-logo.css',\n shadow: true\n})\nexport class AfLogo {\n render() {\n return (\n <Host>\n <img\n src=\"https://www.figma.com/api/mcp/asset/2cfec484-7ba9-4258-94f3-ef4d0ba1e8fe\"\n alt=\"Affinda\"\n class=\"logo-img\"\n />\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.js","sources":["src/components/af-heading/af-heading.css?tag=af-heading&encapsulation=shadow","src/components/af-heading/af-heading.tsx","src/components/af-text/af-text.css?tag=af-text&encapsulation=shadow","src/components/af-text/af-text.tsx","src/components/af-nav-item/af-nav-item.css?tag=af-nav-item&encapsulation=shadow","src/components/af-nav-item/af-nav-item.tsx","src/components/af-navbar/af-navbar.css?tag=af-navbar&encapsulation=shadow","src/components/af-navbar/af-navbar.tsx","src/components/af-logo/af-logo.css?tag=af-logo&encapsulation=shadow","src/components/af-logo/af-logo.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.heading {\n margin: 0;\n padding: 0;\n font-family: 'NeuSans', 'Inter', 'Segoe UI', system-ui, sans-serif;\n font-weight: 400;\n color: var(--colour-typography-heading-primary, #14343b);\n letter-spacing: -0.02em;\n}\n\n/* Alignment */\n.align-left {\n text-align: left;\n}\n\n.align-center {\n text-align: center;\n}\n\n.align-right {\n text-align: right;\n}\n\n/* Theme variants */\n.theme-dark {\n color: var(--colour-brand-mist-green, #C6D5D1);\n}\n\n.theme-light {\n color: var(--colour-typography-heading-primary, #14343b);\n}\n\n/* Heading XL */\n.level-xl {\n font-size: 50px;\n line-height: 1;\n}\n\n@media (min-width: 768px) {\n .level-xl {\n font-size: 80px;\n }\n}\n\n/* Heading 1 */\n.level-1 {\n font-size: 38px;\n line-height: 1;\n}\n\n@media (min-width: 768px) {\n .level-1 {\n font-size: 56px;\n }\n}\n\n/* Heading 2 */\n.level-2 {\n font-size: 32px;\n line-height: 1;\n}\n\n@media (min-width: 768px) {\n .level-2 {\n font-size: 44px;\n }\n}\n\n/* Heading 3 */\n.level-3 {\n font-size: 25px;\n line-height: 1;\n}\n\n@media (min-width: 768px) {\n .level-3 {\n font-size: 34px;\n }\n}\n\n/* Heading 4 */\n.level-4 {\n font-size: 20px;\n line-height: 1.1;\n}\n\n@media (min-width: 768px) {\n .level-4 {\n font-size: 24px;\n line-height: 1.2;\n }\n}\n\n/* Heading 5 */\n.level-5 {\n font-size: 18px;\n line-height: 1.1;\n}\n\n@media (min-width: 768px) {\n .level-5 {\n font-size: 20px;\n line-height: 1.2;\n }\n}\n","import { Component, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'af-heading',\n styleUrl: 'af-heading.css',\n shadow: true\n})\nexport class AfHeading {\n /** Heading level */\n @Prop() level: 'xl' | '1' | '2' | '3' | '4' | '5' = '1';\n\n /** Visual alignment */\n @Prop() align: 'left' | 'center' | 'right' = 'left';\n \n /** Theme for dark backgrounds */\n @Prop() theme: 'light' | 'dark' = 'light';\n\n private getHeadingTag() {\n // Map display levels to semantic HTML tags\n const tagMap: Record<string, string> = {\n 'xl': 'h1',\n '1': 'h1',\n '2': 'h2',\n '3': 'h3',\n '4': 'h4',\n '5': 'h5'\n };\n return tagMap[this.level] || 'h1';\n }\n\n render() {\n const Tag = this.getHeadingTag() as any;\n\n return (\n <Tag\n class={{\n 'heading': true,\n [`level-${this.level}`]: true,\n [`align-${this.align}`]: true,\n [`theme-${this.theme}`]: true\n }}\n part=\"base\"\n >\n <slot />\n </Tag>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.text {\n margin: 0;\n padding: 0;\n font-family: 'NeuSans', 'Inter', 'Segoe UI', system-ui, sans-serif;\n font-weight: 400;\n color: var(--colour-typography-body-default, #14343b);\n letter-spacing: 0;\n}\n\n/* Alignment */\n.align-left {\n text-align: left;\n}\n\n.align-center {\n text-align: center;\n}\n\n.align-right {\n text-align: right;\n}\n\n/* Theme variants */\n.theme-dark {\n color: var(--colour-brand-mist-green, #C6D5D1);\n}\n\n.theme-light {\n color: var(--colour-typography-body-default, #14343b);\n}\n\n/* Body variants */\n.variant-xlarge {\n font-size: 22px;\n line-height: 28px;\n}\n\n.variant-large {\n font-size: 18px;\n line-height: 26px;\n}\n\n.variant-medium {\n font-size: 16px;\n line-height: 24px;\n}\n\n.variant-small {\n font-size: 14px;\n line-height: 20px;\n}\n\n/* Label variants - use NeuSans Book */\n.variant-label-button {\n font-family: 'NeuSans', 'Inter', 'Segoe UI', system-ui, sans-serif;\n font-weight: 500;\n font-size: 17px;\n line-height: 20px;\n}\n\n.variant-label-tag {\n font-family: 'NeuSans', 'Inter', 'Segoe UI', system-ui, sans-serif;\n font-weight: 500;\n font-size: 14px;\n line-height: 1;\n}\n","import { Component, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'af-text',\n styleUrl: 'af-text.css',\n shadow: true\n})\nexport class AfText {\n /** Text variant */\n @Prop() variant: 'xlarge' | 'large' | 'medium' | 'small' | 'label-button' | 'label-tag' = 'medium';\n\n /** Visual alignment */\n @Prop() align: 'left' | 'center' | 'right' = 'left';\n\n /** Semantic element to render */\n @Prop() as: 'p' | 'span' | 'div' | 'label' = 'p';\n \n /** Theme for dark backgrounds */\n @Prop() theme: 'light' | 'dark' = 'light';\n\n render() {\n const Tag = this.as as any;\n\n return (\n <Tag\n class={{\n 'text': true,\n [`variant-${this.variant}`]: true,\n [`align-${this.align}`]: true,\n [`theme-${this.theme}`]: true\n }}\n part=\"base\"\n >\n <slot />\n </Tag>\n );\n }\n}\n",":host {\n display: inline-block;\n}\n\n.nav-link {\n text-decoration: none;\n color: inherit;\n display: block;\n}\n\n.nav-item {\n display: flex;\n align-items: center;\n gap: 8px;\n box-sizing: border-box;\n cursor: pointer;\n}\n\n/* Primary hierarchy - bold main navigation */\n.hierarchy-primary {\n padding: 12px;\n justify-content: center;\n}\n\n.hierarchy-primary .label-container {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 24px;\n gap: 10px;\n}\n\n/* Primary variant 01 - darker */\n.hierarchy-primary.variant-01 {\n font-family: var(--typography-headingfont, 'NeuSans', 'Inter', system-ui, sans-serif);\n font-size: 16px;\n font-weight: var(--font-weight-book, 500);\n line-height: 20px;\n color: var(--colour-typography-nav-item-primary, #14343b);\n}\n\n/* Primary variant 02 - lighter for light backgrounds */\n.hierarchy-primary.variant-02 {\n font-family: var(--typography-bodyfont, 'Helvetica', 'Inter', system-ui, sans-serif);\n font-size: 16px;\n font-weight: var(--font-weight-regular, 400);\n line-height: 20px;\n color: var(--colour-typography-nav-item-secondary, #2b484f);\n}\n\n/* Hover state for primary variant-01 (dark backgrounds) - underline */\n.hierarchy-primary.variant-01:hover .label-container {\n border-bottom: 1px solid currentColor;\n}\n\n/* Active state for primary variant-01 - thicker border */\n.hierarchy-primary.variant-01.active .label-container {\n border-bottom: 2px solid #8a7049;\n}\n\n/* Hover and active states for variant-02 (light backgrounds) - no border */\n.hierarchy-primary.variant-02:hover {\n background-color: rgba(20, 52, 59, 0.04);\n border-radius: 8px;\n}\n\n.hierarchy-primary.variant-02.active {\n background-color: rgba(20, 52, 59, 0.08);\n border-radius: 8px;\n}\n\n/* Secondary hierarchy - smaller sub-navigation */\n.hierarchy-secondary {\n padding: 4px 0;\n}\n\n.hierarchy-secondary .label-container {\n display: flex;\n align-items: center;\n flex: 1;\n min-height: 24px;\n gap: 8px;\n}\n\n/* Secondary variant 01 - medium weight */\n.hierarchy-secondary.variant-01 {\n font-family: 'NeuSans', 'Inter', system-ui, sans-serif;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n color: #14343b;\n}\n\n/* Secondary variant 02 - regular weight */\n.hierarchy-secondary.variant-02 {\n font-family: 'NeuSans', 'Inter', system-ui, sans-serif;\n font-size: 14px;\n font-weight: 400;\n line-height: 20px;\n color: #2b484f;\n}\n\n/* Hover state for secondary - underline text */\n.hierarchy-secondary:hover ::slotted(*) {\n text-decoration: underline;\n}\n\n/* Mobile styles */\n@media (max-width: 767px) {\n .hierarchy-primary {\n padding: 20px 12px;\n border-bottom: 1px solid #e8eeed;\n width: 100%;\n }\n\n .hierarchy-primary .label-container {\n flex: 1;\n justify-content: flex-start;\n }\n\n .hierarchy-primary.variant-01 {\n font-size: 20px;\n line-height: 1.1;\n letter-spacing: -0.4px;\n }\n\n .hierarchy-primary.variant-02 {\n font-size: 20px;\n line-height: 1.1;\n letter-spacing: -0.4px;\n color: #60767b;\n }\n}\n\n/* Icon sizing */\n::slotted([slot=\"icon-left\"]),\n::slotted([slot=\"icon-right\"]) {\n width: 24px;\n height: 24px;\n flex-shrink: 0;\n}\n\n.hierarchy-secondary ::slotted([slot=\"icon-right\"]) {\n width: 20px;\n height: 20px;\n}\n","import { Component, h, Prop, Host } from '@stencil/core';\n\n/**\n * A generic navigation item component that can be used in navigation bars, menus, and sidebars.\n * Supports multiple hierarchy levels, variants, and states (active, hover).\n */\n@Component({\n tag: 'af-nav-item',\n styleUrl: 'af-nav-item.css',\n shadow: true\n})\nexport class AfNavItem {\n /**\n * Visual hierarchy level of the navigation item\n * - 'primary': Bold, main navigation (larger text, prominent styling)\n * - 'secondary': Lighter, sub-navigation (smaller text, subtle styling)\n */\n @Prop() hierarchy: 'primary' | 'secondary' = 'primary';\n\n /**\n * Visual variant within the hierarchy level\n * - '01': Darker/more prominent styling\n * - '02': Lighter/more subtle styling\n */\n @Prop() variant: '01' | '02' = '01';\n\n /**\n * URL to navigate to when clicked\n */\n @Prop() href?: string;\n\n /**\n * Whether this nav item is currently active/selected\n */\n @Prop() active: boolean = false;\n\n render() {\n const classes = {\n 'nav-item': true,\n [`hierarchy-${this.hierarchy}`]: true,\n [`variant-${this.variant}`]: true,\n 'active': this.active\n };\n\n const content = (\n <div class={classes}>\n <slot name=\"icon-left\"></slot>\n <div class=\"label-container\">\n <slot></slot>\n </div>\n <slot name=\"icon-right\"></slot>\n </div>\n );\n\n if (this.href) {\n return (\n <Host>\n <a href={this.href} class=\"nav-link\">\n {content}\n </a>\n </Host>\n );\n }\n\n return <Host>{content}</Host>;\n }\n}\n",":host {\n display: block;\n width: 100%;\n position: absolute;\n top: 32px;\n left: 0;\n right: 0;\n z-index: 10;\n}\n\n.navbar-container {\n padding: 0 80px;\n box-sizing: border-box;\n position: relative;\n}\n\n.navbar {\n background: var(--colour-background-white, #ffffff);\n border-radius: 9999px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 8px 8px 40px;\n box-sizing: border-box;\n}\n\n/* Left section */\n.navbar-left {\n display: flex;\n align-items: center;\n gap: 32px;\n}\n\n.logo {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n/* Mobile menu toggle button */\n.mobile-menu-toggle {\n display: none;\n background: none;\n border: none;\n padding: 8px;\n cursor: pointer;\n color: var(--colour-brand-inkwell, #14343b);\n margin-left: auto;\n}\n\n.mobile-menu-toggle svg {\n display: block;\n}\n\n.nav-links {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n/* Right section */\n.navbar-right {\n display: flex;\n align-items: center;\n gap: 20px;\n}\n\n.nav-actions {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.nav-button {\n display: flex;\n align-items: center;\n}\n\n/* Tablet adjustments */\n@media (max-width: 1024px) {\n .navbar-container {\n padding: 24px 40px 0;\n }\n\n .navbar-left {\n gap: 24px;\n }\n\n .nav-links {\n gap: 4px;\n }\n}\n\n/* Mobile adjustments */\n@media (max-width: 767px) {\n .navbar-container {\n padding: 16px 16px 0;\n }\n\n .navbar {\n padding: 8px 16px;\n flex-direction: column;\n border-radius: 16px;\n gap: 0;\n }\n\n .navbar-left {\n width: 100%;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n gap: 16px;\n }\n\n /* Show hamburger button on mobile */\n .mobile-menu-toggle {\n display: flex;\n }\n\n /* Hide nav links by default on mobile */\n .nav-links {\n display: none;\n width: 100%;\n flex-direction: column;\n align-items: stretch;\n gap: 0;\n margin-top: 16px;\n }\n\n /* Show nav links when menu is open */\n .nav-links.mobile-open {\n display: flex;\n }\n\n /* Hide right section by default on mobile */\n .navbar-right {\n display: none;\n width: 100%;\n flex-direction: column;\n gap: 12px;\n align-items: stretch;\n margin-top: 16px;\n }\n\n /* Show right section when menu is open */\n .navbar-right.mobile-open {\n display: flex;\n }\n\n .nav-actions {\n width: 100%;\n flex-direction: column;\n align-items: stretch;\n gap: 0;\n }\n\n .nav-button {\n width: 100%;\n }\n}\n","import { Component, State, h, Host } from '@stencil/core';\n\n/**\n * A full-width navigation bar component that provides the main site navigation.\n * Features a pill-shaped container with logo, navigation links, and action buttons.\n * Includes mobile hamburger menu.\n */\n@Component({\n tag: 'af-navbar',\n styleUrl: 'af-navbar.css',\n shadow: true\n})\nexport class AfNavbar {\n @State() mobileMenuOpen: boolean = false;\n\n private toggleMobileMenu = () => {\n this.mobileMenuOpen = !this.mobileMenuOpen;\n };\n\n render() {\n return (\n <Host>\n <nav class=\"navbar-container\">\n <div class=\"navbar\">\n {/* Left section: Logo + Nav Links */}\n <div class=\"navbar-left\">\n <div class=\"logo\">\n <slot name=\"logo\"></slot>\n </div>\n \n {/* Hamburger menu button - mobile only */}\n <button \n class=\"mobile-menu-toggle\"\n onClick={this.toggleMobileMenu}\n aria-label=\"Toggle navigation menu\"\n aria-expanded={this.mobileMenuOpen ? 'true' : 'false'}\n >\n {this.mobileMenuOpen ? (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\">\n <path d=\"M18 6L6 18M6 6l12 12\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n ) : (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\">\n <path d=\"M3 12h18M3 6h18M3 18h18\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n )}\n </button>\n \n <div class={`nav-links ${this.mobileMenuOpen ? 'mobile-open' : ''}`}>\n <slot name=\"start\"></slot>\n </div>\n </div>\n\n {/* Right section: Actions + Button */}\n <div class={`navbar-right ${this.mobileMenuOpen ? 'mobile-open' : ''}`}>\n <div class=\"nav-actions\">\n <slot name=\"end\"></slot>\n </div>\n <div class=\"nav-button\">\n <slot name=\"button\"></slot>\n </div>\n </div>\n </div>\n </nav>\n </Host>\n );\n }\n}\n",":host {\n display: inline-block;\n}\n\n.logo-img {\n display: block;\n height: 22px;\n width: 141px;\n object-fit: contain;\n}\n","import { Component, h, Host } from '@stencil/core';\n\n/**\n * Affinda logo component\n */\n@Component({\n tag: 'af-logo',\n styleUrl: 'af-logo.css',\n shadow: true\n})\nexport class AfLogo {\n render() {\n return (\n <Host>\n <img\n src=\"https://www.figma.com/api/mcp/asset/2cfec484-7ba9-4258-94f3-ef4d0ba1e8fe\"\n alt=\"Affinda\"\n class=\"logo-img\"\n />\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { r as registerInstance, h, H as Host } from './index-
|
|
1
|
+
import { r as registerInstance, h, H as Host } from './index-Agei6ZJQ.js';
|
|
2
2
|
|
|
3
|
-
const afHeadingCss = ":host{display:block}.heading{margin:0;padding:0;font-family:'NeuSans', 'Inter', 'Segoe UI', system-ui, sans-serif;font-weight:
|
|
3
|
+
const afHeadingCss = ":host{display:block}.heading{margin:0;padding:0;font-family:'NeuSans', 'Inter', 'Segoe UI', system-ui, sans-serif;font-weight:400;color:var(--colour-typography-heading-primary, #14343b);letter-spacing:-0.02em}.align-left{text-align:left}.align-center{text-align:center}.align-right{text-align:right}.theme-dark{color:var(--colour-brand-mist-green, #C6D5D1)}.theme-light{color:var(--colour-typography-heading-primary, #14343b)}.level-xl{font-size:50px;line-height:1}@media (min-width: 768px){.level-xl{font-size:80px}}.level-1{font-size:38px;line-height:1}@media (min-width: 768px){.level-1{font-size:56px}}.level-2{font-size:32px;line-height:1}@media (min-width: 768px){.level-2{font-size:44px}}.level-3{font-size:25px;line-height:1}@media (min-width: 768px){.level-3{font-size:34px}}.level-4{font-size:20px;line-height:1.1}@media (min-width: 768px){.level-4{font-size:24px;line-height:1.2}}.level-5{font-size:18px;line-height:1.1}@media (min-width: 768px){.level-5{font-size:20px;line-height:1.2}}";
|
|
4
4
|
|
|
5
5
|
const AfHeading = class {
|
|
6
6
|
constructor(hostRef) {
|
|
@@ -9,6 +9,8 @@ const AfHeading = class {
|
|
|
9
9
|
this.level = '1';
|
|
10
10
|
/** Visual alignment */
|
|
11
11
|
this.align = 'left';
|
|
12
|
+
/** Theme for dark backgrounds */
|
|
13
|
+
this.theme = 'light';
|
|
12
14
|
}
|
|
13
15
|
getHeadingTag() {
|
|
14
16
|
// Map display levels to semantic HTML tags
|
|
@@ -24,16 +26,17 @@ const AfHeading = class {
|
|
|
24
26
|
}
|
|
25
27
|
render() {
|
|
26
28
|
const Tag = this.getHeadingTag();
|
|
27
|
-
return (h(Tag, { key: '
|
|
29
|
+
return (h(Tag, { key: '2cc4b5d43b85fbc8251d61e822deb22641f69683', class: {
|
|
28
30
|
'heading': true,
|
|
29
31
|
[`level-${this.level}`]: true,
|
|
30
|
-
[`align-${this.align}`]: true
|
|
31
|
-
|
|
32
|
+
[`align-${this.align}`]: true,
|
|
33
|
+
[`theme-${this.theme}`]: true
|
|
34
|
+
}, part: "base" }, h("slot", { key: '0ac282842c61ec6c16929574a5ffd6530aab9759' })));
|
|
32
35
|
}
|
|
33
36
|
};
|
|
34
37
|
AfHeading.style = afHeadingCss;
|
|
35
38
|
|
|
36
|
-
const afTextCss = ":host{display:block}.text{margin:0;padding:0;font-family:'
|
|
39
|
+
const afTextCss = ":host{display:block}.text{margin:0;padding:0;font-family:'NeuSans', 'Inter', 'Segoe UI', system-ui, sans-serif;font-weight:400;color:var(--colour-typography-body-default, #14343b);letter-spacing:0}.align-left{text-align:left}.align-center{text-align:center}.align-right{text-align:right}.theme-dark{color:var(--colour-brand-mist-green, #C6D5D1)}.theme-light{color:var(--colour-typography-body-default, #14343b)}.variant-xlarge{font-size:22px;line-height:28px}.variant-large{font-size:18px;line-height:26px}.variant-medium{font-size:16px;line-height:24px}.variant-small{font-size:14px;line-height:20px}.variant-label-button{font-family:'NeuSans', 'Inter', 'Segoe UI', system-ui, sans-serif;font-weight:500;font-size:17px;line-height:20px}.variant-label-tag{font-family:'NeuSans', 'Inter', 'Segoe UI', system-ui, sans-serif;font-weight:500;font-size:14px;line-height:1}";
|
|
37
40
|
|
|
38
41
|
const AfText = class {
|
|
39
42
|
constructor(hostRef) {
|
|
@@ -44,14 +47,17 @@ const AfText = class {
|
|
|
44
47
|
this.align = 'left';
|
|
45
48
|
/** Semantic element to render */
|
|
46
49
|
this.as = 'p';
|
|
50
|
+
/** Theme for dark backgrounds */
|
|
51
|
+
this.theme = 'light';
|
|
47
52
|
}
|
|
48
53
|
render() {
|
|
49
54
|
const Tag = this.as;
|
|
50
|
-
return (h(Tag, { key: '
|
|
55
|
+
return (h(Tag, { key: 'd24094cc876bf871972eb35651c2c145d135722f', class: {
|
|
51
56
|
'text': true,
|
|
52
57
|
[`variant-${this.variant}`]: true,
|
|
53
|
-
[`align-${this.align}`]: true
|
|
54
|
-
|
|
58
|
+
[`align-${this.align}`]: true,
|
|
59
|
+
[`theme-${this.theme}`]: true
|
|
60
|
+
}, part: "base" }, h("slot", { key: 'bb1f690d3b11f76d926da7bc7655fbce9df9973c' })));
|
|
55
61
|
}
|
|
56
62
|
};
|
|
57
63
|
AfText.style = afTextCss;
|
|
@@ -94,14 +100,18 @@ const AfNavItem = class {
|
|
|
94
100
|
};
|
|
95
101
|
AfNavItem.style = afNavItemCss;
|
|
96
102
|
|
|
97
|
-
const afNavbarCss = ":host{display:block;width:100%;position:absolute;top:32px;left:0;right:0;z-index:10}.navbar-container{padding:0 80px;box-sizing:border-box;position:relative}.navbar{background:var(--colour-background-white, #ffffff);border-radius:9999px;display:flex;align-items:center;justify-content:space-between;padding:8px 8px 8px 40px;box-sizing:border-box}.navbar-left{display:flex;align-items:center;gap:32px}.logo{display:flex;align-items:center;flex-shrink:0}.nav-links{display:flex;align-items:center;gap:8px}.navbar-right{display:flex;align-items:center;gap:20px}.nav-actions{display:flex;align-items:center;gap:12px}.nav-button{display:flex;align-items:center}@media (max-width: 1024px){.navbar-container{padding:24px 40px 0}.navbar-left{gap:24px}.nav-links{gap:4px}}@media (max-width: 767px){.navbar-container{padding:16px 16px 0}.navbar{padding:8px 16px;flex-direction:column;border-radius:16px;gap:
|
|
103
|
+
const afNavbarCss = ":host{display:block;width:100%;position:absolute;top:32px;left:0;right:0;z-index:10}.navbar-container{padding:0 80px;box-sizing:border-box;position:relative}.navbar{background:var(--colour-background-white, #ffffff);border-radius:9999px;display:flex;align-items:center;justify-content:space-between;padding:8px 8px 8px 40px;box-sizing:border-box}.navbar-left{display:flex;align-items:center;gap:32px}.logo{display:flex;align-items:center;flex-shrink:0}.mobile-menu-toggle{display:none;background:none;border:none;padding:8px;cursor:pointer;color:var(--colour-brand-inkwell, #14343b);margin-left:auto}.mobile-menu-toggle svg{display:block}.nav-links{display:flex;align-items:center;gap:8px}.navbar-right{display:flex;align-items:center;gap:20px}.nav-actions{display:flex;align-items:center;gap:12px}.nav-button{display:flex;align-items:center}@media (max-width: 1024px){.navbar-container{padding:24px 40px 0}.navbar-left{gap:24px}.nav-links{gap:4px}}@media (max-width: 767px){.navbar-container{padding:16px 16px 0}.navbar{padding:8px 16px;flex-direction:column;border-radius:16px;gap:0}.navbar-left{width:100%;flex-direction:row;justify-content:space-between;align-items:center;gap:16px}.mobile-menu-toggle{display:flex}.nav-links{display:none;width:100%;flex-direction:column;align-items:stretch;gap:0;margin-top:16px}.nav-links.mobile-open{display:flex}.navbar-right{display:none;width:100%;flex-direction:column;gap:12px;align-items:stretch;margin-top:16px}.navbar-right.mobile-open{display:flex}.nav-actions{width:100%;flex-direction:column;align-items:stretch;gap:0}.nav-button{width:100%}}";
|
|
98
104
|
|
|
99
105
|
const AfNavbar = class {
|
|
100
106
|
constructor(hostRef) {
|
|
101
107
|
registerInstance(this, hostRef);
|
|
108
|
+
this.mobileMenuOpen = false;
|
|
109
|
+
this.toggleMobileMenu = () => {
|
|
110
|
+
this.mobileMenuOpen = !this.mobileMenuOpen;
|
|
111
|
+
};
|
|
102
112
|
}
|
|
103
113
|
render() {
|
|
104
|
-
return (h(Host, { key: '
|
|
114
|
+
return (h(Host, { key: '305d9415a3c14b2dc352588171d4677f4be4a1af' }, h("nav", { key: 'c509365f0056b0f26d8e3aea98acda04d29d4387', class: "navbar-container" }, h("div", { key: '722fd37a76e7367f0e7cd22729f711e8164b9d60', class: "navbar" }, h("div", { key: 'e0e8d341394b30f4badf5062b899123d691123a1', class: "navbar-left" }, h("div", { key: '145ab6a0ff46f0e21b429b8e2d881404d1d6c24c', class: "logo" }, h("slot", { key: '447d9abfa74c008afac07d3d0386b26ef292ec23', name: "logo" })), h("button", { key: '1f3e5512ea1ab6ca5b6a3a1455a9ff9fa9a2c8e3', class: "mobile-menu-toggle", onClick: this.toggleMobileMenu, "aria-label": "Toggle navigation menu", "aria-expanded": this.mobileMenuOpen ? 'true' : 'false' }, this.mobileMenuOpen ? (h("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor" }, h("path", { d: "M18 6L6 18M6 6l12 12", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }))) : (h("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor" }, h("path", { d: "M3 12h18M3 6h18M3 18h18", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" })))), h("div", { key: '277226e4c433ad4377810c1e3e894b0d9de11b05', class: `nav-links ${this.mobileMenuOpen ? 'mobile-open' : ''}` }, h("slot", { key: 'f95617e99651d0e2a4fa28a08fbe5452a8f95aa3', name: "start" }))), h("div", { key: 'ad7b9cf31ce290303df0af868e369bc79983fff4', class: `navbar-right ${this.mobileMenuOpen ? 'mobile-open' : ''}` }, h("div", { key: '817c73031c45579ec13da6d53bfe1753bcd1e0ef', class: "nav-actions" }, h("slot", { key: 'e18d0c55b346722784640c37bbb5e5fe05fec5c0', name: "end" })), h("div", { key: '296dd2c84f0a59c54741b40a6333cfff5ec7d200', class: "nav-button" }, h("slot", { key: 'd94063758598f14888587d93b5b299f593b2cd31', name: "button" })))))));
|
|
105
115
|
}
|
|
106
116
|
};
|
|
107
117
|
AfNavbar.style = afNavbarCss;
|
|
@@ -113,7 +123,7 @@ const AfLogo = class {
|
|
|
113
123
|
registerInstance(this, hostRef);
|
|
114
124
|
}
|
|
115
125
|
render() {
|
|
116
|
-
return (h(Host, { key: '
|
|
126
|
+
return (h(Host, { key: '6e7a2dd46fa7143bdac4dee8d7146649ff3c7f57' }, h("img", { key: '03fb48e53218c6207927f9337851e3d39c5ca4a7', src: "https://www.figma.com/api/mcp/asset/2cfec484-7ba9-4258-94f3-ef4d0ba1e8fe", alt: "Affinda", class: "logo-img" })));
|
|
117
127
|
}
|
|
118
128
|
};
|
|
119
129
|
AfLogo.style = afLogoCss;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { r as registerInstance, h, H as Host } from './index-Agei6ZJQ.js';
|
|
2
|
+
|
|
3
|
+
const afHeroSectionCss = ".sc-af-hero-section-h{display:block;width:100%}.hero-section.sc-af-hero-section{width:100%;padding-top:calc(32px + 8px + 22px + 4rem);padding-bottom:4rem;display:flex;align-items:center;justify-content:center;margin-top:0;position:relative;z-index:1;overflow:hidden}.variant-light.sc-af-hero-section{background-color:var(--colour-background-white, #FFFFFF)}.variant-dark.sc-af-hero-section{background-color:var(--colour-brand-inkwell, #14343B)}.variant-dark.sc-af-hero-section af-heading.sc-af-hero-section,.variant-dark.sc-af-hero-section af-text.sc-af-hero-section{--typography-heading-primary:var(--colour-brand-mist-green, #C6D5D1);--typography-body-default:var(--colour-brand-mist-green, #C6D5D1)}.hero-decoration.sc-af-hero-section{position:absolute;inset:0;pointer-events:none;z-index:0;height:0;width:0;overflow:visible}.hero-decoration.sc-af-hero-section-s>*,.hero-decoration .sc-af-hero-section-s>*{position:absolute !important;bottom:208px;right:-557px;width:1212px;height:753px;opacity:0.5}.hero-content.sc-af-hero-section{text-align:center;max-width:1000px;margin:0 auto;position:relative;z-index:1}@media (max-width: 768px){.hero-section.sc-af-hero-section{padding:2rem 1rem}}";
|
|
4
|
+
|
|
5
|
+
const AfHeroSection = class {
|
|
6
|
+
constructor(hostRef) {
|
|
7
|
+
registerInstance(this, hostRef);
|
|
8
|
+
/** Hero variant */
|
|
9
|
+
this.variant = 'dark';
|
|
10
|
+
/** Show decorative paperclip */
|
|
11
|
+
this.withDecoration = false;
|
|
12
|
+
/** Minimum height */
|
|
13
|
+
this.minHeight = '60vh';
|
|
14
|
+
}
|
|
15
|
+
render() {
|
|
16
|
+
return (h(Host, { key: '85061979e5f4d2a766574cbc355e2f833160050b' }, h("div", { key: 'f0c1f36c7f5f241d5a3ce590a2eff5b5e9c6f3bc', class: `hero-section variant-${this.variant}`, style: { minHeight: this.minHeight } }, this.withDecoration && (h("div", { key: '4a680dcbb970ea9c31fdcd1d4e16ec9b43e859b6', class: "hero-decoration" }, h("slot", { key: 'f8c629d60b6fbb0627e0720967bbc5bfeecbfecd', name: "decoration" }))), h("af-container", { key: '07ed025ef1b11880896a0ca72916592f4b36dddf' }, h("div", { key: 'dbe586394c6e10ed672d12326e21832376661ed1', class: "hero-content" }, h("slot", { key: 'd3906e6fd0bdb1439df2c4e6b48e090472bcc2e5' }))))));
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
AfHeroSection.style = afHeroSectionCss;
|
|
20
|
+
|
|
21
|
+
export { AfHeroSection as af_hero_section };
|
|
22
|
+
//# sourceMappingURL=af-hero-section.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"af-hero-section.entry.js","sources":["src/components/af-hero-section/af-hero-section.css?tag=af-hero-section&encapsulation=scoped","src/components/af-hero-section/af-hero-section.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n}\n\n.hero-section {\n width: 100%;\n padding-top: calc(32px + 8px + 22px + 4rem); /* navbar top offset + navbar height + gap + content padding */\n padding-bottom: 4rem;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-top: 0;\n position: relative;\n z-index: 1;\n overflow: hidden;\n}\n\n/* Light variant */\n.variant-light {\n background-color: var(--colour-background-white, #FFFFFF);\n}\n\n/* Dark variant */\n.variant-dark {\n background-color: var(--colour-brand-inkwell, #14343B);\n}\n\n/* Set theme colors on dark backgrounds */\n.variant-dark af-heading,\n.variant-dark af-text {\n --typography-heading-primary: var(--colour-brand-mist-green, #C6D5D1);\n --typography-body-default: var(--colour-brand-mist-green, #C6D5D1);\n}\n\n.hero-decoration {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 0;\n height: 0;\n width: 0;\n overflow: visible;\n}\n\n.hero-decoration ::slotted(*) {\n position: absolute !important;\n bottom: 208px;\n right: -557px;\n width: 1212px;\n height: 753px;\n opacity: 0.5;\n}\n\n.hero-content {\n text-align: center;\n max-width: 1000px;\n margin: 0 auto;\n position: relative;\n z-index: 1;\n}\n\n/* Mobile adjustments */\n@media (max-width: 768px) {\n .hero-section {\n padding: 2rem 1rem;\n }\n}\n\n","import { Component, h, Host, Prop } from '@stencil/core';\n\n/**\n * Hero section component for marketing pages\n */\n@Component({\n tag: 'af-hero-section',\n styleUrl: 'af-hero-section.css',\n shadow: false,\n scoped: true,\n})\nexport class AfHeroSection {\n /** Hero variant */\n @Prop() variant: 'light' | 'dark' = 'dark';\n \n /** Show decorative paperclip */\n @Prop() withDecoration: boolean = false;\n \n /** Minimum height */\n @Prop() minHeight: string = '60vh';\n\n render() {\n return (\n <Host>\n <div class={`hero-section variant-${this.variant}`} style={{ minHeight: this.minHeight }}>\n {this.withDecoration && (\n <div class=\"hero-decoration\">\n <slot name=\"decoration\"></slot>\n </div>\n )}\n <af-container>\n <div class=\"hero-content\">\n <slot></slot>\n </div>\n </af-container>\n </div>\n </Host>\n );\n }\n}\n\n"],"names":[],"mappings":";;AAAA,MAAM,gBAAgB,GAAG,wqCAAwqC;;MCWprC,aAAa,GAAA,MAAA;AAN1B,IAAA,WAAA,CAAA,OAAA,EAAA;;;AAQU,QAAA,IAAO,CAAA,OAAA,GAAqB,MAAM;;AAGlC,QAAA,IAAc,CAAA,cAAA,GAAY,KAAK;;AAG/B,QAAA,IAAS,CAAA,SAAA,GAAW,MAAM;AAoBnC;IAlBC,MAAM,GAAA;QACJ,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAE,CAAA,qBAAA,EAAwB,IAAI,CAAC,OAAO,CAAA,CAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,EAAA,EACrF,IAAI,CAAC,cAAc,KAClB,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,iBAAiB,EAAA,EAC1B,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,YAAY,EAAA,CAAQ,CAC3B,CACP,EACD,CAAA,CAAA,cAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACE,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,cAAc,EAAA,EACvB,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAa,CACT,CACO,CACX,CACD;;;;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance, h, H as Host } from './index-
|
|
1
|
+
import { r as registerInstance, h, H as Host } from './index-Agei6ZJQ.js';
|
|
2
2
|
|
|
3
3
|
const afIconButtonCss = ":host{display:inline-block}.icon-button{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;cursor:pointer;transition:all 0.2s ease;border:1px solid transparent;box-sizing:border-box;flex-shrink:0;text-decoration:none;padding:0}.size-large{width:72px;height:72px;padding:24px}.size-large .icon{width:24px;height:24px}.size-medium{width:48px;height:48px;padding:12px}.size-medium .icon{width:24px;height:24px}.size-small{width:36px;height:36px;padding:8px}.size-small .icon{width:20px;height:20px}.icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.icon ::slotted(svg){width:100%;height:100%}.variant-primary{background:var(--colour-brand-ice, #A6FFFB);border-color:var(--colour-brand-inkwell, #14343B);color:var(--colour-brand-inkwell, #14343B)}.variant-primary:hover:not(.disabled){background:#8FEBE3;transform:translateY(-1px);box-shadow:0 2px 8px rgba(20, 52, 59, 0.15)}.variant-primary:active:not(.disabled){background:#7FE2D4;transform:translateY(0)}.variant-secondary{background:var(--colour-brand-white, #FFFFFF);border-color:var(--colour-brand-inkwell, #14343B);color:var(--colour-brand-inkwell, #14343B)}.variant-secondary:hover:not(.disabled){background:#F6FAF9;transform:translateY(-1px);box-shadow:0 2px 8px rgba(20, 52, 59, 0.15)}.variant-secondary:active:not(.disabled){background:#E8F1EF;transform:translateY(0)}.variant-outline{background:transparent;border-color:var(--colour-brand-inkwell, #14343B);color:var(--colour-brand-inkwell, #14343B)}.variant-outline:hover:not(.disabled){background:rgba(20, 52, 59, 0.04);transform:translateY(-1px)}.variant-outline:active:not(.disabled){background:rgba(20, 52, 59, 0.08);transform:translateY(0)}.variant-ghost{background:transparent;border-color:transparent;color:var(--colour-brand-inkwell, #14343B)}.variant-ghost:hover:not(.disabled){background:rgba(20, 52, 59, 0.04)}.variant-ghost:active:not(.disabled){background:rgba(20, 52, 59, 0.08)}.disabled{opacity:0.4;cursor:not-allowed;pointer-events:none}button.icon-button{background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer}button.icon-button.variant-primary{background:var(--colour-brand-ice, #A6FFFB);border:1px solid var(--colour-brand-inkwell, #14343B)}button.icon-button.variant-secondary{background:var(--colour-brand-white, #FFFFFF);border:1px solid var(--colour-brand-inkwell, #14343B)}button.icon-button.variant-outline{background:transparent;border:1px solid var(--colour-brand-inkwell, #14343B)}button.icon-button.variant-ghost{background:transparent;border:1px solid transparent}";
|
|
4
4
|
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { r as registerInstance, h, H as Host } from './index-Agei6ZJQ.js';
|
|
2
|
+
|
|
3
|
+
const afLogoWellCss = ":host{display:inline-block}.logo-well{background:var(--colour-tints-inkwell-600, #1A3038);border-radius:16px;height:88px;display:flex;align-items:center;justify-content:center;padding:24px 40px;box-sizing:border-box;min-width:120px}::slotted(img){max-height:40px;width:auto;display:block;filter:brightness(0) invert(1);}::slotted(div){white-space:nowrap}";
|
|
4
|
+
|
|
5
|
+
const AfLogoWell = class {
|
|
6
|
+
constructor(hostRef) {
|
|
7
|
+
registerInstance(this, hostRef);
|
|
8
|
+
}
|
|
9
|
+
render() {
|
|
10
|
+
return (h(Host, { key: '6443fda91c37fd9f2efd49fbd10b1899f311cd54' }, h("div", { key: '30ec1e2891dfd89af7cc310986d3c5c48e05c556', class: "logo-well" }, h("slot", { key: '4601797d3cef6ed117dc6c93083652dd22f51f05' }))));
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
AfLogoWell.style = afLogoWellCss;
|
|
14
|
+
|
|
15
|
+
export { AfLogoWell as af_logo_well };
|
|
16
|
+
//# sourceMappingURL=af-logo-well.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"af-logo-well.entry.js","sources":["src/components/af-logo-well/af-logo-well.css?tag=af-logo-well&encapsulation=shadow","src/components/af-logo-well/af-logo-well.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\n.logo-well {\n background: var(--colour-tints-inkwell-600, #1A3038);\n border-radius: 16px;\n height: 88px;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 24px 40px;\n box-sizing: border-box;\n min-width: 120px;\n}\n\n::slotted(img) {\n max-height: 40px;\n width: auto;\n display: block;\n filter: brightness(0) invert(1); /* Make logos white */\n}\n\n::slotted(div) {\n white-space: nowrap;\n}\n\n","import { Component, h, Host } from '@stencil/core';\n\n/**\n * A rounded container for displaying client logos\n */\n@Component({\n tag: 'af-logo-well',\n styleUrl: 'af-logo-well.css',\n shadow: true,\n})\nexport class AfLogoWell {\n render() {\n return (\n <Host>\n <div class=\"logo-well\">\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n\n"],"names":[],"mappings":";;AAAA,MAAM,aAAa,GAAG,oWAAoW;;MCU7W,UAAU,GAAA,MAAA;;;;IACrB,MAAM,GAAA;AACJ,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,WAAW,EAAA,EACpB,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACT,CACD;;;;;;;"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { r as registerInstance, h, H as Host } from './index-Agei6ZJQ.js';
|
|
2
|
+
|
|
3
|
+
const afSectionCss = ".sc-af-section-h{display:block;width:100%}.section.sc-af-section{width:100%;position:relative}.padding-tight.sc-af-section{padding:48px 0}.padding-default.sc-af-section{padding:96px 0}.padding-loose.sc-af-section{padding:120px 0 96px}.bg-white.sc-af-section{background-color:var(--colour-background-white, #FFFFFF)}.bg-level1.sc-af-section{background-color:var(--colour-background-level-1, #E8EEED)}.bg-dark.sc-af-section,.bg-inkwell.sc-af-section{background-color:var(--colour-brand-inkwell, #14343B)}@media (max-width: 768px){.padding-tight.sc-af-section{padding:32px 0}.padding-default.sc-af-section{padding:64px 0}.padding-loose.sc-af-section{padding:80px 0 64px}}";
|
|
4
|
+
|
|
5
|
+
const AfSection = class {
|
|
6
|
+
constructor(hostRef) {
|
|
7
|
+
registerInstance(this, hostRef);
|
|
8
|
+
/** Padding variant */
|
|
9
|
+
this.padding = 'default';
|
|
10
|
+
/** Background color */
|
|
11
|
+
this.background = 'white';
|
|
12
|
+
/** Whether to include a Container wrapper */
|
|
13
|
+
this.container = true;
|
|
14
|
+
}
|
|
15
|
+
render() {
|
|
16
|
+
const content = h("slot", { key: '269517d1852d1e459db9dc2673b88b4d8042f61b' });
|
|
17
|
+
return (h(Host, { key: 'a080f296f2f7178db29e973cce05048847e66c83' }, h("div", { key: '54bdca28715bdd18e38d85e2ed95a5699f793d3e', class: `section padding-${this.padding} bg-${this.background}` }, this.container ? (h("af-container", null, content)) : content)));
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
AfSection.style = afSectionCss;
|
|
21
|
+
|
|
22
|
+
export { AfSection as af_section };
|
|
23
|
+
//# sourceMappingURL=af-section.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"af-section.entry.js","sources":["src/components/af-section/af-section.css?tag=af-section&encapsulation=scoped","src/components/af-section/af-section.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n}\n\n.section {\n width: 100%;\n position: relative;\n}\n\n/* Padding variants */\n.padding-tight {\n padding: 48px 0;\n}\n\n.padding-default {\n padding: 96px 0;\n}\n\n.padding-loose {\n padding: 120px 0 96px;\n}\n\n/* Background variants */\n.bg-white {\n background-color: var(--colour-background-white, #FFFFFF);\n}\n\n.bg-level1 {\n background-color: var(--colour-background-level-1, #E8EEED);\n}\n\n.bg-dark,\n.bg-inkwell {\n background-color: var(--colour-brand-inkwell, #14343B);\n}\n\n/* Mobile adjustments */\n@media (max-width: 768px) {\n .padding-tight {\n padding: 32px 0;\n }\n \n .padding-default {\n padding: 64px 0;\n }\n \n .padding-loose {\n padding: 80px 0 64px;\n }\n}\n\n","import { Component, h, Host, Prop } from '@stencil/core';\n\n/**\n * Section layout component for consistent spacing and backgrounds\n */\n@Component({\n tag: 'af-section',\n styleUrl: 'af-section.css',\n shadow: false,\n scoped: true,\n})\nexport class AfSection {\n /** Padding variant */\n @Prop() padding: 'tight' | 'default' | 'loose' = 'default';\n \n /** Background color */\n @Prop() background: 'white' | 'level1' | 'dark' | 'inkwell' = 'white';\n \n /** Whether to include a Container wrapper */\n @Prop() container: boolean = true;\n\n render() {\n const content = <slot></slot>;\n \n return (\n <Host>\n <div class={`section padding-${this.padding} bg-${this.background}`}>\n {this.container ? (\n <af-container>{content}</af-container>\n ) : content}\n </div>\n </Host>\n );\n }\n}\n\n"],"names":[],"mappings":";;AAAA,MAAM,YAAY,GAAG,8pBAA8pB;;MCWtqB,SAAS,GAAA,MAAA;AANtB,IAAA,WAAA,CAAA,OAAA,EAAA;;;AAQU,QAAA,IAAO,CAAA,OAAA,GAAkC,SAAS;;AAGlD,QAAA,IAAU,CAAA,UAAA,GAA4C,OAAO;;AAG7D,QAAA,IAAS,CAAA,SAAA,GAAY,IAAI;AAelC;IAbC,MAAM,GAAA;AACJ,QAAA,MAAM,OAAO,GAAG,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAa;QAE7B,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAE,CAAmB,gBAAA,EAAA,IAAI,CAAC,OAAO,CAAO,IAAA,EAAA,IAAI,CAAC,UAAU,CAAA,CAAE,EAAA,EAChE,IAAI,CAAC,SAAS,IACb,CAAe,CAAA,cAAA,EAAA,IAAA,EAAA,OAAO,CAAgB,IACpC,OAAO,CACP,CACD;;;;;;;"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { r as registerInstance, h, H as Host, a as getElement } from './index-Agei6ZJQ.js';
|
|
2
|
+
|
|
3
|
+
const afTestimonialCarouselCss = ".sc-af-testimonial-carousel-h{display:block;width:100%;overflow:hidden}.testimonial-carousel.sc-af-testimonial-carousel{position:relative;width:100%}.testimonial-slides.sc-af-testimonial-carousel{position:relative;width:100%;min-height:544px;overflow:hidden}.testimonial-slides.sc-af-testimonial-carousel-s>af-testimonial,.testimonial-slides .sc-af-testimonial-carousel-s>af-testimonial{position:absolute;top:0;left:0;width:100%;transition:transform 0.5s ease-in-out, opacity 0.5s ease-in-out}.testimonial-progress.sc-af-testimonial-carousel{display:flex;gap:12px;justify-content:center;margin-top:32px;padding:0 220px}.progress-dot.sc-af-testimonial-carousel{width:100%;max-width:840px;height:3px;background:var(--colour-background-border-default, #d1ddda);border-radius:2px;cursor:pointer;transition:background 0.3s ease;position:relative;overflow:hidden}.progress-dot.active.sc-af-testimonial-carousel{background:var(--colour-background-border-active, #8a7049)}.progress-dot.sc-af-testimonial-carousel:hover:not(.active){background:var(--colour-background-border-default, #c1cdc9)}.carousel-navigation.sc-af-testimonial-carousel{position:absolute;bottom:48px;left:50%;margin-left:48px;display:flex;gap:12px;align-items:center;z-index:10}.nav-button.sc-af-testimonial-carousel{width:48px;height:48px;border-radius:50%;border:1px solid var(--colour-brand-inkwell, #14343b);background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.2s ease;color:var(--colour-brand-inkwell, #14343b)}.nav-button.sc-af-testimonial-carousel:hover:not(:disabled){background:rgba(255, 255, 255, 0.1);transform:translateY(-2px)}.nav-button.sc-af-testimonial-carousel:disabled{opacity:0.4;cursor:not-allowed;border-color:var(--colour-brand-inkwell, #14343b)}.nav-button.sc-af-testimonial-carousel svg.sc-af-testimonial-carousel{width:24px;height:24px}";
|
|
4
|
+
|
|
5
|
+
const AfTestimonialCarousel = class {
|
|
6
|
+
constructor(hostRef) {
|
|
7
|
+
registerInstance(this, hostRef);
|
|
8
|
+
this.currentIndex = 0;
|
|
9
|
+
this.isAnimating = false;
|
|
10
|
+
this.testimonialCount = 0;
|
|
11
|
+
this.testimonials = [];
|
|
12
|
+
this.goToPrevious = () => {
|
|
13
|
+
if (this.isAnimating || this.currentIndex === 0)
|
|
14
|
+
return;
|
|
15
|
+
this.isAnimating = true;
|
|
16
|
+
this.currentIndex = this.currentIndex - 1;
|
|
17
|
+
this.updateVisibleTestimonial();
|
|
18
|
+
setTimeout(() => {
|
|
19
|
+
this.isAnimating = false;
|
|
20
|
+
}, 500);
|
|
21
|
+
};
|
|
22
|
+
this.goToNext = () => {
|
|
23
|
+
if (this.isAnimating || this.currentIndex >= this.testimonialCount - 1)
|
|
24
|
+
return;
|
|
25
|
+
this.isAnimating = true;
|
|
26
|
+
this.currentIndex = this.currentIndex + 1;
|
|
27
|
+
this.updateVisibleTestimonial();
|
|
28
|
+
setTimeout(() => {
|
|
29
|
+
this.isAnimating = false;
|
|
30
|
+
}, 500);
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
componentDidLoad() {
|
|
34
|
+
this.detectTestimonials();
|
|
35
|
+
// Watch for testimonials being added (for React async rendering)
|
|
36
|
+
this.observer = new MutationObserver(() => {
|
|
37
|
+
this.detectTestimonials();
|
|
38
|
+
});
|
|
39
|
+
this.observer.observe(this.host, {
|
|
40
|
+
childList: true,
|
|
41
|
+
subtree: true
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
disconnectedCallback() {
|
|
45
|
+
if (this.observer) {
|
|
46
|
+
this.observer.disconnect();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
detectTestimonials() {
|
|
50
|
+
const newTestimonials = Array.from(this.host.querySelectorAll('af-testimonial'));
|
|
51
|
+
if (newTestimonials.length !== this.testimonials.length) {
|
|
52
|
+
this.testimonials = newTestimonials;
|
|
53
|
+
this.testimonialCount = newTestimonials.length;
|
|
54
|
+
console.log('Found testimonials:', this.testimonials.length);
|
|
55
|
+
if (this.testimonials.length > 0) {
|
|
56
|
+
this.currentIndex = 0;
|
|
57
|
+
this.updateVisibleTestimonial();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
updateVisibleTestimonial() {
|
|
62
|
+
this.testimonials.forEach((testimonial, index) => {
|
|
63
|
+
const offset = (index - this.currentIndex) * 100;
|
|
64
|
+
testimonial.style.transform = `translateX(${offset}%)`;
|
|
65
|
+
testimonial.style.opacity = index === this.currentIndex ? '1' : '0';
|
|
66
|
+
testimonial.style.pointerEvents = index === this.currentIndex ? 'auto' : 'none';
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
render() {
|
|
70
|
+
const hasPrev = this.currentIndex > 0;
|
|
71
|
+
const hasNext = this.currentIndex < this.testimonialCount - 1;
|
|
72
|
+
return (h(Host, { key: '93e4222eaa683eda0e5d68d445691e5dcf764b10' }, h("div", { key: '8679d282c0644b463eee86fa90282f59ba1c6cb5', class: "testimonial-carousel" }, h("div", { key: '6779793a882493c73b31bdf5742e2d068b8db72f', class: "testimonial-slides" }, h("slot", { key: '4326f6b06a60174edc2ba74c3d5704707965bf5d' })), this.testimonialCount > 1 && (h("div", { key: 'ba63a40e6a0789df3af7ff51d36a0f9c2e0651c6', class: "testimonial-progress" }, Array.from({ length: this.testimonialCount }).map((_, index) => (h("div", { class: `progress-dot ${index === this.currentIndex ? 'active' : ''}`, onClick: () => {
|
|
73
|
+
if (!this.isAnimating && index !== this.currentIndex) {
|
|
74
|
+
this.isAnimating = true;
|
|
75
|
+
this.currentIndex = index;
|
|
76
|
+
this.updateVisibleTestimonial();
|
|
77
|
+
setTimeout(() => {
|
|
78
|
+
this.isAnimating = false;
|
|
79
|
+
}, 500);
|
|
80
|
+
}
|
|
81
|
+
} }))))), this.testimonialCount > 1 && (h("div", { key: 'e15676334f291d496302381e3625b8c18f46626d', class: "carousel-navigation" }, h("button", { key: '511c7cf3b514d07ec4b2c6e9a6a2231a6c98b1d3', class: "nav-button prev", disabled: !hasPrev, onClick: this.goToPrevious, "aria-label": "Previous testimonial" }, h("svg", { key: '477016d99fb337bed5ae757ff14dc290819450ba', width: "24", height: "24", viewBox: "0 0 24 24", fill: "none" }, h("path", { key: '989e2119171bb332ca39a45d9b18d46736e0a82f', d: "M19 12H5M5 12L12 19M5 12L12 5", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }))), h("button", { key: '5b52c2b3d6aef2b17e144ae30eebd6c6a3c07323', class: "nav-button next", disabled: !hasNext, onClick: this.goToNext, "aria-label": "Next testimonial" }, h("svg", { key: '9d03ebe923108338a4fdab149d02c04e19df6e5e', width: "24", height: "24", viewBox: "0 0 24 24", fill: "none" }, h("path", { key: 'a90a52e8cfb3df339d42894448b184b1229f429d', d: "M5 12H19M19 12L12 5M19 12L12 19", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }))))))));
|
|
82
|
+
}
|
|
83
|
+
get host() { return getElement(this); }
|
|
84
|
+
};
|
|
85
|
+
AfTestimonialCarousel.style = afTestimonialCarouselCss;
|
|
86
|
+
|
|
87
|
+
export { AfTestimonialCarousel as af_testimonial_carousel };
|
|
88
|
+
//# sourceMappingURL=af-testimonial-carousel.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"af-testimonial-carousel.entry.js","sources":["src/components/af-testimonial-carousel/af-testimonial-carousel.css?tag=af-testimonial-carousel&encapsulation=scoped","src/components/af-testimonial-carousel/af-testimonial-carousel.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n overflow: hidden;\n}\n\n.testimonial-carousel {\n position: relative;\n width: 100%;\n}\n\n.testimonial-slides {\n position: relative;\n width: 100%;\n min-height: 544px;\n overflow: hidden;\n}\n\n.testimonial-slides ::slotted(af-testimonial) {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n transition: transform 0.5s ease-in-out, opacity 0.5s ease-in-out;\n}\n\n/* Progress indicator */\n.testimonial-progress {\n display: flex;\n gap: 12px;\n justify-content: center;\n margin-top: 32px;\n padding: 0 220px;\n}\n\n.progress-dot {\n width: 100%;\n max-width: 840px;\n height: 3px;\n background: var(--colour-background-border-default, #d1ddda);\n border-radius: 2px;\n cursor: pointer;\n transition: background 0.3s ease;\n position: relative;\n overflow: hidden;\n}\n\n.progress-dot.active {\n background: var(--colour-background-border-active, #8a7049);\n}\n\n.progress-dot:hover:not(.active) {\n background: var(--colour-background-border-default, #c1cdc9);\n}\n\n/* Navigation buttons - positioned bottom left of content area (not on image) */\n.carousel-navigation {\n position: absolute;\n bottom: 48px;\n left: 50%;\n margin-left: 48px;\n display: flex;\n gap: 12px;\n align-items: center;\n z-index: 10;\n}\n\n.nav-button {\n width: 48px;\n height: 48px;\n border-radius: 50%;\n border: 1px solid var(--colour-brand-inkwell, #14343b);\n background: transparent;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: var(--colour-brand-inkwell, #14343b);\n}\n\n.nav-button:hover:not(:disabled) {\n background: rgba(255, 255, 255, 0.1);\n transform: translateY(-2px);\n}\n\n.nav-button:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n border-color: var(--colour-brand-inkwell, #14343b);\n}\n\n.nav-button svg {\n width: 24px;\n height: 24px;\n}\n\n","import { Component, State, h, Host, Element } from '@stencil/core';\n\n@Component({\n tag: 'af-testimonial-carousel',\n styleUrl: 'af-testimonial-carousel.css',\n shadow: false,\n scoped: true,\n})\nexport class AfTestimonialCarousel {\n @Element() host!: HTMLElement;\n @State() currentIndex: number = 0;\n @State() isAnimating: boolean = false;\n @State() testimonialCount: number = 0;\n\n private testimonials: HTMLElement[] = [];\n private observer: MutationObserver | undefined;\n\n componentDidLoad() {\n this.detectTestimonials();\n \n // Watch for testimonials being added (for React async rendering)\n this.observer = new MutationObserver(() => {\n this.detectTestimonials();\n });\n \n this.observer.observe(this.host, {\n childList: true,\n subtree: true\n });\n }\n\n disconnectedCallback() {\n if (this.observer) {\n this.observer.disconnect();\n }\n }\n\n private detectTestimonials() {\n const newTestimonials = Array.from(this.host.querySelectorAll('af-testimonial')) as HTMLElement[];\n \n if (newTestimonials.length !== this.testimonials.length) {\n this.testimonials = newTestimonials;\n this.testimonialCount = newTestimonials.length;\n console.log('Found testimonials:', this.testimonials.length);\n \n if (this.testimonials.length > 0) {\n this.currentIndex = 0;\n this.updateVisibleTestimonial();\n }\n }\n }\n\n private updateVisibleTestimonial() {\n this.testimonials.forEach((testimonial, index) => {\n const offset = (index - this.currentIndex) * 100;\n testimonial.style.transform = `translateX(${offset}%)`;\n testimonial.style.opacity = index === this.currentIndex ? '1' : '0';\n testimonial.style.pointerEvents = index === this.currentIndex ? 'auto' : 'none';\n });\n }\n\n private goToPrevious = () => {\n if (this.isAnimating || this.currentIndex === 0) return;\n \n this.isAnimating = true;\n this.currentIndex = this.currentIndex - 1;\n this.updateVisibleTestimonial();\n \n setTimeout(() => {\n this.isAnimating = false;\n }, 500);\n };\n\n private goToNext = () => {\n if (this.isAnimating || this.currentIndex >= this.testimonialCount - 1) return;\n \n this.isAnimating = true;\n this.currentIndex = this.currentIndex + 1;\n this.updateVisibleTestimonial();\n \n setTimeout(() => {\n this.isAnimating = false;\n }, 500);\n };\n\n render() {\n const hasPrev = this.currentIndex > 0;\n const hasNext = this.currentIndex < this.testimonialCount - 1;\n\n return (\n <Host>\n <div class=\"testimonial-carousel\">\n <div class=\"testimonial-slides\">\n <slot></slot>\n </div>\n \n {/* Progress indicator */}\n {this.testimonialCount > 1 && (\n <div class=\"testimonial-progress\">\n {Array.from({ length: this.testimonialCount }).map((_, index) => (\n <div \n class={`progress-dot ${index === this.currentIndex ? 'active' : ''}`}\n onClick={() => {\n if (!this.isAnimating && index !== this.currentIndex) {\n this.isAnimating = true;\n this.currentIndex = index;\n this.updateVisibleTestimonial();\n setTimeout(() => {\n this.isAnimating = false;\n }, 500);\n }\n }}\n />\n ))}\n </div>\n )}\n\n {/* Navigation buttons */}\n {this.testimonialCount > 1 && (\n <div class=\"carousel-navigation\">\n <button \n class=\"nav-button prev\" \n disabled={!hasPrev}\n onClick={this.goToPrevious}\n aria-label=\"Previous testimonial\"\n >\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M19 12H5M5 12L12 19M5 12L12 5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </button>\n <button \n class=\"nav-button next\" \n disabled={!hasNext}\n onClick={this.goToNext}\n aria-label=\"Next testimonial\"\n >\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M5 12H19M19 12L12 5M19 12L12 19\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </button>\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { r as registerInstance, h, H as Host } from './index-Agei6ZJQ.js';
|
|
2
|
+
|
|
3
|
+
const afTestimonialStatCss = ".sc-af-testimonial-stat-h{display:block;flex:1;min-width:0}.stat.sc-af-testimonial-stat{display:flex;flex-direction:column;gap:8px}.stat--accent.sc-af-testimonial-stat{border-left:2px solid var(--colour-background-border-active, #8a7049);padding-left:16px;min-height:76px;justify-content:center}.stat-value.sc-af-testimonial-stat{font-family:'NeuSans', 'Inter', 'Segoe UI', system-ui, sans-serif;font-size:44px;font-weight:400;line-height:1;letter-spacing:-0.88px;color:var(--colour-typography-heading-secondary, #8a7049);margin:0}.stat-description.sc-af-testimonial-stat{font-family:'NeuSans', 'Inter', 'Segoe UI', system-ui, sans-serif;font-size:16px;font-weight:400;line-height:24px;color:var(--colour-typography-body-dark, #14343b);margin:0;overflow:hidden;text-overflow:ellipsis}";
|
|
4
|
+
|
|
5
|
+
const AfTestimonialStat = class {
|
|
6
|
+
constructor(hostRef) {
|
|
7
|
+
registerInstance(this, hostRef);
|
|
8
|
+
/**
|
|
9
|
+
* Whether to show left accent border
|
|
10
|
+
*/
|
|
11
|
+
this.accentBorder = false;
|
|
12
|
+
}
|
|
13
|
+
render() {
|
|
14
|
+
return (h(Host, { key: '38055fcad76047030e7907ad11933c229e33fe05' }, h("div", { key: 'ae01845c6494f9da213f7b823aa5a57b51d94e96', class: `stat ${this.accentBorder ? 'stat--accent' : ''}` }, h("p", { key: 'd1ee0c278a840f343e442178fa2c8ae35e04304e', class: "stat-value" }, this.value), h("p", { key: '29322d5a6e3048f6c1a3df68393f6367bb4b6631', class: "stat-description" }, this.description))));
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
AfTestimonialStat.style = afTestimonialStatCss;
|
|
18
|
+
|
|
19
|
+
export { AfTestimonialStat as af_testimonial_stat };
|
|
20
|
+
//# sourceMappingURL=af-testimonial-stat.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"af-testimonial-stat.entry.js","sources":["src/components/af-testimonial-stat/af-testimonial-stat.css?tag=af-testimonial-stat&encapsulation=scoped","src/components/af-testimonial-stat/af-testimonial-stat.tsx"],"sourcesContent":[":host {\n display: block;\n flex: 1;\n min-width: 0;\n}\n\n.stat {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.stat--accent {\n border-left: 2px solid var(--colour-background-border-active, #8a7049);\n padding-left: 16px;\n min-height: 76px;\n justify-content: center;\n}\n\n.stat-value {\n font-family: 'NeuSans', 'Inter', 'Segoe UI', system-ui, sans-serif;\n font-size: 44px;\n font-weight: 400;\n line-height: 1;\n letter-spacing: -0.88px;\n color: var(--colour-typography-heading-secondary, #8a7049);\n margin: 0;\n}\n\n.stat-description {\n font-family: 'NeuSans', 'Inter', 'Segoe UI', system-ui, sans-serif;\n font-size: 16px;\n font-weight: 400;\n line-height: 24px;\n color: var(--colour-typography-body-dark, #14343b);\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n\n","import { Component, Prop, h, Host } from '@stencil/core';\n\n@Component({\n tag: 'af-testimonial-stat',\n styleUrl: 'af-testimonial-stat.css',\n shadow: false,\n scoped: true,\n})\nexport class AfTestimonialStat {\n /**\n * The statistic value (e.g., \"95%\", \"10×\", \"120,000\")\n */\n @Prop() value!: string;\n\n /**\n * Description text for the statistic\n */\n @Prop() description!: string;\n\n /**\n * Whether to show left accent border\n */\n @Prop() accentBorder: boolean = false;\n\n render() {\n return (\n <Host>\n <div class={`stat ${this.accentBorder ? 'stat--accent' : ''}`}>\n <p class=\"stat-value\">{this.value}</p>\n <p class=\"stat-description\">{this.description}</p>\n </div>\n </Host>\n );\n }\n}\n\n\n"],"names":[],"mappings":";;AAAA,MAAM,oBAAoB,GAAG,kxBAAkxB;;MCQlyB,iBAAiB,GAAA,MAAA;AAN9B,IAAA,WAAA,CAAA,OAAA,EAAA;;AAiBE;;AAEG;AACK,QAAA,IAAY,CAAA,YAAA,GAAY,KAAK;AAYtC;IAVC,MAAM,GAAA;AACJ,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAE,CAAA,KAAA,EAAQ,IAAI,CAAC,YAAY,GAAG,cAAc,GAAG,EAAE,CAAA,CAAE,EAAA,EAC3D,CAAA,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAG,KAAK,EAAC,YAAY,IAAE,IAAI,CAAC,KAAK,CAAK,EACtC,CAAG,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,kBAAkB,EAAE,EAAA,IAAI,CAAC,WAAW,CAAK,CAC9C,CACD;;;;;;;"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { r as registerInstance, h, H as Host } from './index-Agei6ZJQ.js';
|
|
2
|
+
|
|
3
|
+
const afTestimonialCss = ".sc-af-testimonial-h{display:block;width:100%}.testimonial-card.sc-af-testimonial{background:var(--colour-background-level-1, #e8eeed);border-radius:var(--border-radius-card-level-1, 32px);overflow:hidden;display:flex;height:544px;box-sizing:border-box}.testimonial-image.sc-af-testimonial{position:relative;width:519px;height:100%;background:#000000;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.testimonial-bg-image.sc-af-testimonial{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0.7}.testimonial-logo.sc-af-testimonial{position:relative;z-index:1;padding:0 108px;max-width:100%}.testimonial-logo.sc-af-testimonial img.sc-af-testimonial{width:100%;height:auto;display:block}.testimonial-content.sc-af-testimonial{flex:1;display:flex;flex-direction:column;gap:32px;padding:48px;border:1px solid rgba(255, 255, 255, 0.08);border-left:1px solid rgba(255, 255, 255, 0.08);box-sizing:border-box}.testimonial-quote-section.sc-af-testimonial{flex:1;display:flex;flex-direction:column;gap:12px}.testimonial-quote-icon.sc-af-testimonial{width:48px;height:48px;color:var(--colour-brand-inkwell, #14343b);flex-shrink:0}.testimonial-text.sc-af-testimonial{font-family:'NeuSans', 'Inter', 'Segoe UI', system-ui, sans-serif;font-size:22px;font-weight:400;line-height:1.4;color:var(--colour-typography-body-default, #2b484f);margin:0;max-height:155px;overflow:hidden;text-overflow:ellipsis}.testimonial-attribution.sc-af-testimonial{font-family:'NeuSans', 'Inter', 'Segoe UI', system-ui, sans-serif;font-size:22px;font-weight:400;line-height:1.4;color:var(--colour-typography-body-dark, #14343b);margin:0}.testimonial-stats.sc-af-testimonial{display:flex;gap:32px;width:100%}.testimonial-footer.sc-af-testimonial{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--colour-background-border-default, #d1ddda);padding-top:32px}.testimonial-nav.sc-af-testimonial{display:flex;gap:12px}.testimonial-cta.sc-af-testimonial{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;border:1px solid var(--colour-brand-inkwell, #14343b);border-radius:9999px;font-family:'NeuSans', 'Inter', 'Segoe UI', system-ui, sans-serif;font-size:17px;font-weight:500;line-height:20px;color:var(--colour-brand-inkwell, #14343b);text-decoration:none;cursor:pointer;transition:all 0.2s ease}.testimonial-cta.sc-af-testimonial:hover{background:var(--colour-background-level-1, #e8eeed);transform:translateY(-1px)}.testimonial-cta.sc-af-testimonial svg.sc-af-testimonial{width:24px;height:24px}";
|
|
4
|
+
|
|
5
|
+
const AfTestimonial = class {
|
|
6
|
+
constructor(hostRef) {
|
|
7
|
+
registerInstance(this, hostRef);
|
|
8
|
+
}
|
|
9
|
+
render() {
|
|
10
|
+
return (h(Host, { key: 'b4a23c841092c119b7e8abd4249b75985f8edf95' }, h("div", { key: '65fec4f695a746ef51d4539b33dc166d4f1cb95c', class: "testimonial-card" }, h("div", { key: 'ad5ec6edb4fd3577f14d9cbcce925c1c68d6262e', class: "testimonial-image" }, this.backgroundImage && (h("img", { key: '4e51da94bd106ae50c63186c7cbedee3e86d341e', src: this.backgroundImage, alt: "", class: "testimonial-bg-image" })), this.logoImage && (h("div", { key: '68eea0c228eb7d3e92a3cbab11ee4d1b3d9e590e', class: "testimonial-logo" }, h("img", { key: '5f2225a849003d6b4b5ccc08073da121e3d27cf4', src: this.logoImage, alt: "Company logo" })))), h("div", { key: '9e6dbb02f4d87829af74c66029bd93ce3f3c65dd', class: "testimonial-content" }, h("div", { key: 'efd25f8dc722d79006835406a972da0d5fd7f77f', class: "testimonial-quote-section" }, h("div", { key: '46064d44eeed1712130c6c24007f5481b9cc3cf7', class: "testimonial-quote-icon" }, h("slot", { key: 'e1389d94a5cbb1181862963fd799d7c14b2d3ee5', name: "quote-icon" }, h("svg", { key: '6a935e48920b1964036f02fbc830b1319a20f057', width: "48", height: "48", viewBox: "0 0 48 48", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: 'cf0de3883bdf5a39cd377591ec34a02d75afd39c', d: "M10.5 25.5C10.5 23.0147 12.5147 21 15 21H18C18.8284 21 19.5 20.3284 19.5 19.5V15C19.5 12.5147 17.4853 10.5 15 10.5H10.5C6.35786 10.5 3 13.8579 3 18V33C3 35.4853 5.01472 37.5 7.5 37.5H15C17.4853 37.5 19.5 35.4853 19.5 33V25.5C19.5 23.0147 17.4853 21 15 21H10.5ZM33 25.5C33 23.0147 35.0147 21 37.5 21H40.5C41.3284 21 42 20.3284 42 19.5V15C42 12.5147 39.9853 10.5 37.5 10.5H33C28.8579 10.5 25.5 13.8579 25.5 18V33C25.5 35.4853 27.5147 37.5 30 37.5H37.5C39.9853 37.5 42 35.4853 42 33V25.5C42 23.0147 39.9853 21 37.5 21H33Z", fill: "currentColor" })))), h("p", { key: 'db71848c9ae10a2a24cdcb6797f8f2b4fbf6cea9', class: "testimonial-text" }, this.quote), h("p", { key: 'ad7c4fd0a91a1c2ea42d4abcc3ab949e51c3d313', class: "testimonial-attribution" }, this.attribution)), h("div", { key: '8042208ced311c39c8d91968ac1bc37c76971ec1', class: "testimonial-stats" }, h("slot", { key: 'b5c40fdb83b6776b2de0a57e37045a1fde50e78f', name: "stats" })), h("div", { key: '1b19fc1264136cf90cb0c32841678129f5dd711d', class: "testimonial-footer" }, h("div", { key: '77058648a8e25ed63b622c7bbf873c299e39e42d', class: "testimonial-nav" }, h("slot", { key: '9231316a8dd17ae30c754e1ff1ba9ea70c327c82', name: "navigation" })), this.readMoreLink && (h("a", { key: '01072189417f44da780b5c5a8849e9e66a2a9b0d', href: this.readMoreLink, class: "testimonial-cta" }, h("span", { key: '8c5008a42d4c4160bb4950f562872a67ac26c15c' }, "Read full story"), h("svg", { key: '881176b723a0f4c3d941d2be0f8983ddc0468ee6', width: "24", height: "24", viewBox: "0 0 24 24", fill: "none" }, h("path", { key: 'd8fd8469aa2c45286891751b269c692ee90426c0', d: "M5 12H19M19 12L12 5M19 12L12 19", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" })))))))));
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
AfTestimonial.style = afTestimonialCss;
|
|
14
|
+
|
|
15
|
+
export { AfTestimonial as af_testimonial };
|
|
16
|
+
//# sourceMappingURL=af-testimonial.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"af-testimonial.entry.js","sources":["src/components/af-testimonial/af-testimonial.css?tag=af-testimonial&encapsulation=scoped","src/components/af-testimonial/af-testimonial.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n}\n\n.testimonial-card {\n background: var(--colour-background-level-1, #e8eeed);\n border-radius: var(--border-radius-card-level-1, 32px);\n overflow: hidden;\n display: flex;\n height: 544px;\n box-sizing: border-box;\n}\n\n/* Image side - 519px wide */\n.testimonial-image {\n position: relative;\n width: 519px;\n height: 100%;\n background: #000000;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n overflow: hidden;\n}\n\n.testimonial-bg-image {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n opacity: 0.7;\n}\n\n.testimonial-logo {\n position: relative;\n z-index: 1;\n padding: 0 108px;\n max-width: 100%;\n}\n\n.testimonial-logo img {\n width: 100%;\n height: auto;\n display: block;\n}\n\n/* Content side */\n.testimonial-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 32px;\n padding: 48px;\n border: 1px solid rgba(255, 255, 255, 0.08);\n border-left: 1px solid rgba(255, 255, 255, 0.08);\n box-sizing: border-box;\n}\n\n.testimonial-quote-section {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.testimonial-quote-icon {\n width: 48px;\n height: 48px;\n color: var(--colour-brand-inkwell, #14343b);\n flex-shrink: 0;\n}\n\n.testimonial-text {\n font-family: 'NeuSans', 'Inter', 'Segoe UI', system-ui, sans-serif;\n font-size: 22px;\n font-weight: 400;\n line-height: 1.4;\n color: var(--colour-typography-body-default, #2b484f);\n margin: 0;\n max-height: 155px;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.testimonial-attribution {\n font-family: 'NeuSans', 'Inter', 'Segoe UI', system-ui, sans-serif;\n font-size: 22px;\n font-weight: 400;\n line-height: 1.4;\n color: var(--colour-typography-body-dark, #14343b);\n margin: 0;\n}\n\n.testimonial-stats {\n display: flex;\n gap: 32px;\n width: 100%;\n}\n\n.testimonial-footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-top: 1px solid var(--colour-background-border-default, #d1ddda);\n padding-top: 32px;\n}\n\n.testimonial-nav {\n display: flex;\n gap: 12px;\n}\n\n.testimonial-cta {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 12px 24px;\n border: 1px solid var(--colour-brand-inkwell, #14343b);\n border-radius: 9999px;\n font-family: 'NeuSans', 'Inter', 'Segoe UI', system-ui, sans-serif;\n font-size: 17px;\n font-weight: 500;\n line-height: 20px;\n color: var(--colour-brand-inkwell, #14343b);\n text-decoration: none;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.testimonial-cta:hover {\n background: var(--colour-background-level-1, #e8eeed);\n transform: translateY(-1px);\n}\n\n.testimonial-cta svg {\n width: 24px;\n height: 24px;\n}\n\n\n","import { Component, Prop, h, Host } from '@stencil/core';\n\n@Component({\n tag: 'af-testimonial',\n styleUrl: 'af-testimonial.css',\n shadow: false,\n scoped: true,\n})\nexport class AfTestimonial {\n /**\n * Background image URL for the testimonial card\n */\n @Prop() backgroundImage?: string;\n\n /**\n * Company logo URL\n */\n @Prop() logoImage?: string;\n\n /**\n * Testimonial quote text\n */\n @Prop() quote!: string;\n\n /**\n * Attribution text (e.g., \"– Nathaniel Barrs, CTO, PSC Insurance\")\n */\n @Prop() attribution!: string;\n\n /**\n * Link to full case study\n */\n @Prop() readMoreLink?: string;\n\n render() {\n return (\n <Host>\n <div class=\"testimonial-card\">\n {/* Image side */}\n <div class=\"testimonial-image\">\n {this.backgroundImage && (\n <img src={this.backgroundImage} alt=\"\" class=\"testimonial-bg-image\" />\n )}\n {this.logoImage && (\n <div class=\"testimonial-logo\">\n <img src={this.logoImage} alt=\"Company logo\" />\n </div>\n )}\n </div>\n\n {/* Content side */}\n <div class=\"testimonial-content\">\n <div class=\"testimonial-quote-section\">\n {/* Quote icon - using slot for flexibility */}\n <div class=\"testimonial-quote-icon\">\n <slot name=\"quote-icon\">\n <svg width=\"48\" height=\"48\" viewBox=\"0 0 48 48\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M10.5 25.5C10.5 23.0147 12.5147 21 15 21H18C18.8284 21 19.5 20.3284 19.5 19.5V15C19.5 12.5147 17.4853 10.5 15 10.5H10.5C6.35786 10.5 3 13.8579 3 18V33C3 35.4853 5.01472 37.5 7.5 37.5H15C17.4853 37.5 19.5 35.4853 19.5 33V25.5C19.5 23.0147 17.4853 21 15 21H10.5ZM33 25.5C33 23.0147 35.0147 21 37.5 21H40.5C41.3284 21 42 20.3284 42 19.5V15C42 12.5147 39.9853 10.5 37.5 10.5H33C28.8579 10.5 25.5 13.8579 25.5 18V33C25.5 35.4853 27.5147 37.5 30 37.5H37.5C39.9853 37.5 42 35.4853 42 33V25.5C42 23.0147 39.9853 21 37.5 21H33Z\" fill=\"currentColor\"/>\n </svg>\n </slot>\n </div>\n\n <p class=\"testimonial-text\">{this.quote}</p>\n <p class=\"testimonial-attribution\">{this.attribution}</p>\n </div>\n\n {/* Statistics slot */}\n <div class=\"testimonial-stats\">\n <slot name=\"stats\"></slot>\n </div>\n\n {/* Footer with navigation and CTA */}\n <div class=\"testimonial-footer\">\n <div class=\"testimonial-nav\">\n <slot name=\"navigation\"></slot>\n </div>\n {this.readMoreLink && (\n <a href={this.readMoreLink} class=\"testimonial-cta\">\n <span>Read full story</span>\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M5 12H19M19 12L12 5M19 12L12 19\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </a>\n )}\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n\n\n"],"names":[],"mappings":";;AAAA,MAAM,gBAAgB,GAAG,0gFAA0gF;;MCQthF,aAAa,GAAA,MAAA;;;;IA0BxB,MAAM,GAAA;QACJ,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,kBAAkB,EAAA,EAE3B,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,mBAAmB,EAAA,EAC3B,IAAI,CAAC,eAAe,KACnB,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,GAAG,EAAC,EAAE,EAAC,KAAK,EAAC,sBAAsB,GAAG,CACvE,EACA,IAAI,CAAC,SAAS,KACb,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,kBAAkB,EAAA,EAC3B,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,EAAC,cAAc,EAAA,CAAG,CAC3C,CACP,CACG,EAGN,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,qBAAqB,EAAA,EAC9B,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,2BAA2B,EAAA,EAEpC,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,wBAAwB,EAAA,EACjC,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,YAAY,EAAA,EACrB,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B,EAAA,EAC5F,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAC,EAAC,wgBAAwgB,EAAC,IAAI,EAAC,cAAc,EAAA,CAAE,CACliB,CACD,CACH,EAEN,CAAA,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAG,KAAK,EAAC,kBAAkB,IAAE,IAAI,CAAC,KAAK,CAAK,EAC5C,CAAG,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,yBAAyB,EAAA,EAAE,IAAI,CAAC,WAAW,CAAK,CACrD,EAGN,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,mBAAmB,EAAA,EAC5B,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,OAAO,EAAA,CAAQ,CACtB,EAGN,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,oBAAoB,EAAA,EAC7B,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,iBAAiB,EAAA,EAC1B,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,YAAY,EAAA,CAAQ,CAC3B,EACL,IAAI,CAAC,YAAY,KAChB,CAAG,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,EAAC,iBAAiB,EAAA,EACjD,CAA4B,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAA,iBAAA,CAAA,EAC5B,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAA,EACzD,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAC,EAAC,iCAAiC,EAAC,MAAM,EAAC,cAAc,EAAc,cAAA,EAAA,GAAG,EAAgB,gBAAA,EAAA,OAAO,qBAAiB,OAAO,EAAA,CAAE,CAC7H,CACJ,CACL,CACG,CACF,CACF,CACD;;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { r as registerInstance, h, H as Host } from './index-
|
|
1
|
+
import { r as registerInstance, h, H as Host } from './index-Agei6ZJQ.js';
|
|
2
2
|
|
|
3
|
-
const afTypographyLockupCss = ":host{display:block}.lockup{display:flex;flex-direction:column;gap:40px}.text-left{align-items:flex-start}.text-center{align-items:center}.text-left .copy,.text-left .heading,.text-left .description{text-align:left}.text-center .copy,.text-center .heading,.text-center .description{text-align:center}.copy{display:flex;flex-direction:column;gap:16px;width:100%}.heading{font-family:var(--typography-primaryfont, 'NeuSans', sans-serif);font-weight:
|
|
3
|
+
const afTypographyLockupCss = ":host{display:block}.lockup{display:flex;flex-direction:column;gap:40px}.text-left{align-items:flex-start}.text-center{align-items:center}.text-left .copy,.text-left .heading,.text-left .description{text-align:left}.text-center .copy,.text-center .heading,.text-center .description{text-align:center}.copy{display:flex;flex-direction:column;gap:16px;width:100%}.heading{font-family:var(--typography-primaryfont, 'NeuSans', sans-serif);font-weight:400;color:var(--typography-heading-primary, #14343B);line-height:1;white-space:pre-wrap}.breakpoint-desktop.heading-1 .heading{font-size:56px;letter-spacing:-1.12px}.breakpoint-desktop.heading-2 .heading{font-size:44px;letter-spacing:-0.88px}.breakpoint-desktop.heading-3 .heading{font-size:34px;letter-spacing:-0.68px}.breakpoint-desktop.heading-4 .heading{font-size:24px;letter-spacing:-0.48px;line-height:1.2}.breakpoint-desktop.heading-5 .heading{font-size:20px;letter-spacing:-0.4px;line-height:1.2}.breakpoint-mobile.heading-1 .heading{font-size:38px;letter-spacing:-0.76px}.breakpoint-mobile.heading-2 .heading{font-size:32px;letter-spacing:-0.64px}.breakpoint-mobile.heading-3 .heading{font-size:25px;letter-spacing:-0.5px}.breakpoint-mobile.heading-4 .heading{font-size:20px;letter-spacing:-0.4px;line-height:1.1}.breakpoint-mobile.heading-5 .heading{font-size:18px;letter-spacing:-0.36px;line-height:1.1}.description{font-family:'Helvetica', var(--typography-primaryfont, 'NeuSans', sans-serif), sans-serif;font-size:18px;font-weight:400;line-height:26px;color:var(--typography-body-default, #2B484F);white-space:pre-wrap}.description:empty{display:none}.buttons{display:flex;gap:12px}.buttons:empty{display:none}.button-horizontal .buttons{flex-direction:row;align-items:center}.text-left.button-horizontal{flex-direction:row;align-items:center;gap:16px}.text-left.button-horizontal .copy{flex:1 0 0;max-width:950px}.text-left.button-horizontal .buttons{flex-shrink:0}.button-vertical .buttons{flex-direction:row;align-items:flex-start}.text-center.button-vertical .buttons{align-items:center}.text-center .copy{max-width:840px}::slotted(*){margin:0}";
|
|
4
4
|
|
|
5
5
|
const AfTypographyLockup = class {
|
|
6
6
|
constructor(hostRef) {
|
|
@@ -34,7 +34,7 @@ const AfTypographyLockup = class {
|
|
|
34
34
|
[`breakpoint-${this.breakpoint}`]: true
|
|
35
35
|
};
|
|
36
36
|
const copyStyle = this.maxWidth ? { maxWidth: `${this.maxWidth}px` } : {};
|
|
37
|
-
return (h(Host, { key: '
|
|
37
|
+
return (h(Host, { key: '108f59f3983487b19e059fa0f9c9c33cfb9b47ba' }, h("div", { key: '4dd1ece34095b91fcf9f41355a16eb4fb4b83ef0', class: containerClasses }, h("div", { key: '3a472b7ccfe7192ca9f2867e91b366469c030442', class: copyClasses, style: copyStyle }, h("div", { key: '578aa5a20e857a1d822d60a3f8dfb16ddd64f423', class: "heading" }, h("slot", { key: 'd38c8f2572e16f6f158b37c1a547c5482f1a3351' })), h("div", { key: '4d59415dac2a10f2443b2186e8f71026e9c70e71', class: "description" }, h("slot", { key: 'e1b4d336405cdf08b7fcb451f7e09811c736a955', name: "description" }))), h("div", { key: '955dda0ad363656d54dca5f9327329a91ee2a96e', class: "buttons" }, h("slot", { key: 'e6582595577adeb312cb726ea6708c23a46d6ec1', name: "buttons" })))));
|
|
38
38
|
}
|
|
39
39
|
};
|
|
40
40
|
AfTypographyLockup.style = afTypographyLockupCss;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"af-typography-lockup.entry.js","sources":["src/components/af-typography-lockup/af-typography-lockup.css?tag=af-typography-lockup&encapsulation=shadow","src/components/af-typography-lockup/af-typography-lockup.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.lockup {\n display: flex;\n flex-direction: column;\n gap: 40px;\n}\n\n/* Text alignment */\n.text-left {\n align-items: flex-start;\n}\n\n.text-center {\n align-items: center;\n}\n\n.text-left .copy,\n.text-left .heading,\n.text-left .description {\n text-align: left;\n}\n\n.text-center .copy,\n.text-center .heading,\n.text-center .description {\n text-align: center;\n}\n\n/* Copy section */\n.copy {\n display: flex;\n flex-direction: column;\n gap: 16px;\n width: 100%;\n}\n\n/* Heading styles */\n.heading {\n font-family: var(--typography-primaryfont, 'NeuSans', sans-serif);\n font-weight:
|
|
1
|
+
{"version":3,"file":"af-typography-lockup.entry.js","sources":["src/components/af-typography-lockup/af-typography-lockup.css?tag=af-typography-lockup&encapsulation=shadow","src/components/af-typography-lockup/af-typography-lockup.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.lockup {\n display: flex;\n flex-direction: column;\n gap: 40px;\n}\n\n/* Text alignment */\n.text-left {\n align-items: flex-start;\n}\n\n.text-center {\n align-items: center;\n}\n\n.text-left .copy,\n.text-left .heading,\n.text-left .description {\n text-align: left;\n}\n\n.text-center .copy,\n.text-center .heading,\n.text-center .description {\n text-align: center;\n}\n\n/* Copy section */\n.copy {\n display: flex;\n flex-direction: column;\n gap: 16px;\n width: 100%;\n}\n\n/* Heading styles */\n.heading {\n font-family: var(--typography-primaryfont, 'NeuSans', sans-serif);\n font-weight: 400;\n color: var(--typography-heading-primary, #14343B);\n line-height: 1;\n white-space: pre-wrap;\n}\n\n/* Desktop heading sizes */\n.breakpoint-desktop.heading-1 .heading {\n font-size: 56px;\n letter-spacing: -1.12px;\n}\n\n.breakpoint-desktop.heading-2 .heading {\n font-size: 44px;\n letter-spacing: -0.88px;\n}\n\n.breakpoint-desktop.heading-3 .heading {\n font-size: 34px;\n letter-spacing: -0.68px;\n}\n\n.breakpoint-desktop.heading-4 .heading {\n font-size: 24px;\n letter-spacing: -0.48px;\n line-height: 1.2;\n}\n\n.breakpoint-desktop.heading-5 .heading {\n font-size: 20px;\n letter-spacing: -0.4px;\n line-height: 1.2;\n}\n\n/* Mobile heading sizes */\n.breakpoint-mobile.heading-1 .heading {\n font-size: 38px;\n letter-spacing: -0.76px;\n}\n\n.breakpoint-mobile.heading-2 .heading {\n font-size: 32px;\n letter-spacing: -0.64px;\n}\n\n.breakpoint-mobile.heading-3 .heading {\n font-size: 25px;\n letter-spacing: -0.5px;\n}\n\n.breakpoint-mobile.heading-4 .heading {\n font-size: 20px;\n letter-spacing: -0.4px;\n line-height: 1.1;\n}\n\n.breakpoint-mobile.heading-5 .heading {\n font-size: 18px;\n letter-spacing: -0.36px;\n line-height: 1.1;\n}\n\n/* Description/body text */\n.description {\n font-family: 'Helvetica', var(--typography-primaryfont, 'NeuSans', sans-serif), sans-serif;\n font-size: 18px;\n font-weight: 400;\n line-height: 26px;\n color: var(--typography-body-default, #2B484F);\n white-space: pre-wrap;\n}\n\n.description:empty {\n display: none;\n}\n\n/* Buttons section */\n.buttons {\n display: flex;\n gap: 12px;\n}\n\n.buttons:empty {\n display: none;\n}\n\n/* Button alignment - horizontal */\n.button-horizontal .buttons {\n flex-direction: row;\n align-items: center;\n}\n\n.text-left.button-horizontal {\n flex-direction: row;\n align-items: center;\n gap: 16px;\n}\n\n.text-left.button-horizontal .copy {\n flex: 1 0 0;\n max-width: 950px;\n}\n\n.text-left.button-horizontal .buttons {\n flex-shrink: 0;\n}\n\n/* Button alignment - vertical */\n.button-vertical .buttons {\n flex-direction: row;\n align-items: flex-start;\n}\n\n.text-center.button-vertical .buttons {\n align-items: center;\n}\n\n/* Max width constraints for centered layouts */\n.text-center .copy {\n max-width: 840px;\n}\n\n/* Slot content styling */\n::slotted(*) {\n margin: 0;\n}\n","import { Component, h, Prop, Host } from '@stencil/core';\n\n@Component({\n tag: 'af-typography-lockup',\n styleUrl: 'af-typography-lockup.css',\n shadow: true\n})\nexport class AfTypographyLockup {\n /**\n * The heading size (1-5, where 1 is largest)\n */\n @Prop() headingSize: 1 | 2 | 3 | 4 | 5 = 2;\n\n /**\n * The breakpoint for responsive typography\n */\n @Prop() breakpoint: 'desktop' | 'mobile' = 'desktop';\n\n /**\n * Text alignment\n */\n @Prop() textAlignment: 'left' | 'center' = 'left';\n\n /**\n * Button alignment (horizontal or vertical stacking)\n */\n @Prop() buttonAlignment: 'horizontal' | 'vertical' = 'vertical';\n\n /**\n * Maximum width for the copy section (in pixels)\n */\n @Prop() maxWidth?: number;\n\n render() {\n const containerClasses = {\n 'lockup': true,\n [`text-${this.textAlignment}`]: true,\n [`button-${this.buttonAlignment}`]: true\n };\n\n const copyClasses = {\n 'copy': true,\n [`heading-${this.headingSize}`]: true,\n [`breakpoint-${this.breakpoint}`]: true\n };\n\n const copyStyle = this.maxWidth ? { maxWidth: `${this.maxWidth}px` } : {};\n\n return (\n <Host>\n <div class={containerClasses}>\n <div class={copyClasses} style={copyStyle}>\n <div class=\"heading\">\n <slot></slot>\n </div>\n <div class=\"description\">\n <slot name=\"description\"></slot>\n </div>\n </div>\n <div class=\"buttons\">\n <slot name=\"buttons\"></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;AAAA,MAAM,qBAAqB,GAAG,8jEAA8jE;;MCO/kE,kBAAkB,GAAA,MAAA;AAL/B,IAAA,WAAA,CAAA,OAAA,EAAA;;AAME;;AAEG;AACK,QAAA,IAAW,CAAA,WAAA,GAAsB,CAAC;AAE1C;;AAEG;AACK,QAAA,IAAU,CAAA,UAAA,GAAyB,SAAS;AAEpD;;AAEG;AACK,QAAA,IAAa,CAAA,aAAA,GAAsB,MAAM;AAEjD;;AAEG;AACK,QAAA,IAAe,CAAA,eAAA,GAA8B,UAAU;AAwChE;IAjCC,MAAM,GAAA;AACJ,QAAA,MAAM,gBAAgB,GAAG;AACvB,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,CAAC,QAAQ,IAAI,CAAC,aAAa,CAAE,CAAA,GAAG,IAAI;AACpC,YAAA,CAAC,UAAU,IAAI,CAAC,eAAe,CAAE,CAAA,GAAG;SACrC;AAED,QAAA,MAAM,WAAW,GAAG;AAClB,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,CAAC,WAAW,IAAI,CAAC,WAAW,CAAE,CAAA,GAAG,IAAI;AACrC,YAAA,CAAC,cAAc,IAAI,CAAC,UAAU,CAAE,CAAA,GAAG;SACpC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE,QAAQ,EAAE,CAAG,EAAA,IAAI,CAAC,QAAQ,CAAA,EAAA,CAAI,EAAE,GAAG,EAAE;AAEzE,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,gBAAgB,EAAA,EAC1B,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAA,EACvC,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,SAAS,EAAA,EAClB,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAa,CACT,EACN,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,aAAa,EAAA,EACtB,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,aAAa,EAAA,CAAQ,CAC5B,CACF,EACN,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,SAAS,EAAA,EAClB,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,SAAS,EAAA,CAAQ,CACxB,CACF,CACD;;;;;;;"}
|