@affinda/wc 0.0.13 → 0.0.14

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.
Files changed (126) hide show
  1. package/dist/affinda/af-contact-item.entry.esm.js.map +1 -0
  2. package/dist/affinda/af-footer-column.entry.esm.js.map +1 -0
  3. package/dist/affinda/af-footer-link.entry.esm.js.map +1 -0
  4. package/dist/affinda/af-footer.entry.esm.js.map +1 -1
  5. package/dist/affinda/af-social-link.entry.esm.js.map +1 -0
  6. package/dist/affinda/affinda.esm.js +1 -1
  7. package/dist/affinda/{p-1d00696b.entry.js → p-4a39ddec.entry.js} +2 -2
  8. package/dist/affinda/{p-e0ce24ab.entry.js → p-52f7ea33.entry.js} +2 -2
  9. package/dist/affinda/{p-00214c08.entry.js → p-924e6def.entry.js} +2 -2
  10. package/dist/affinda/p-97f9f774.entry.js +2 -0
  11. package/dist/affinda/p-97f9f774.entry.js.map +1 -0
  12. package/dist/affinda/p-a49dc8ac.entry.js +2 -0
  13. package/dist/affinda/p-a49dc8ac.entry.js.map +1 -0
  14. package/dist/affinda/{p-456e933c.entry.js → p-b67bbaf7.entry.js} +2 -2
  15. package/dist/affinda/{p-46e32b6d.entry.js → p-b7c63852.entry.js} +2 -2
  16. package/dist/affinda/{p-ed9af653.entry.js → p-b7efbfff.entry.js} +2 -2
  17. package/dist/affinda/{p-0835ca39.entry.js → p-bf4543ff.entry.js} +2 -2
  18. package/dist/affinda/{p-83f1f94c.entry.js → p-c2b6199e.entry.js} +2 -2
  19. package/dist/affinda/p-c5aba33f.entry.js +2 -0
  20. package/dist/affinda/p-c5aba33f.entry.js.map +1 -0
  21. package/dist/affinda/p-ce89c4f1.entry.js +2 -0
  22. package/dist/affinda/p-ce89c4f1.entry.js.map +1 -0
  23. package/dist/affinda/p-de52b175.entry.js +2 -0
  24. package/dist/affinda/p-de52b175.entry.js.map +1 -0
  25. package/dist/cjs/af-contact-item.cjs.entry.js +22 -0
  26. package/dist/cjs/af-contact-item.entry.cjs.js.map +1 -0
  27. package/dist/cjs/af-cta-section.cjs.entry.js +1 -1
  28. package/dist/cjs/af-feature-accordion.cjs.entry.js +2 -2
  29. package/dist/cjs/af-footer-column.cjs.entry.js +20 -0
  30. package/dist/cjs/af-footer-column.entry.cjs.js.map +1 -0
  31. package/dist/cjs/af-footer-link.cjs.entry.js +22 -0
  32. package/dist/cjs/af-footer-link.entry.cjs.js.map +1 -0
  33. package/dist/cjs/af-footer.cjs.entry.js +9 -15
  34. package/dist/cjs/af-footer.entry.cjs.js.map +1 -1
  35. package/dist/cjs/af-hero-section.cjs.entry.js +1 -1
  36. package/dist/cjs/af-logo-well.cjs.entry.js +1 -1
  37. package/dist/cjs/af-section.cjs.entry.js +2 -2
  38. package/dist/cjs/af-social-link.cjs.entry.js +40 -0
  39. package/dist/cjs/af-social-link.entry.cjs.js.map +1 -0
  40. package/dist/cjs/af-testimonial-carousel.cjs.entry.js +2 -2
  41. package/dist/cjs/af-testimonial-stat.cjs.entry.js +1 -1
  42. package/dist/cjs/af-testimonial.cjs.entry.js +1 -1
  43. package/dist/cjs/affinda.cjs.js +1 -1
  44. package/dist/cjs/loader.cjs.js +1 -1
  45. package/dist/collection/collection-manifest.json +4 -0
  46. package/dist/collection/components/af-contact-item/af-contact-item.css +26 -0
  47. package/dist/collection/components/af-contact-item/af-contact-item.js +73 -0
  48. package/dist/collection/components/af-contact-item/af-contact-item.js.map +1 -0
  49. package/dist/collection/components/af-cta-section/af-cta-section.js +1 -1
  50. package/dist/collection/components/af-feature-accordion/af-feature-accordion.js +2 -2
  51. package/dist/collection/components/af-footer/af-footer.js +29 -94
  52. package/dist/collection/components/af-footer/af-footer.js.map +1 -1
  53. package/dist/collection/components/af-footer-column/af-footer-column.css +32 -0
  54. package/dist/collection/components/af-footer-column/af-footer-column.js +51 -0
  55. package/dist/collection/components/af-footer-column/af-footer-column.js.map +1 -0
  56. package/dist/collection/components/af-footer-link/af-footer-link.css +30 -0
  57. package/dist/collection/components/af-footer-link/af-footer-link.js +73 -0
  58. package/dist/collection/components/af-footer-link/af-footer-link.js.map +1 -0
  59. package/dist/collection/components/af-hero-section/af-hero-section.js +1 -1
  60. package/dist/collection/components/af-logo-well/af-logo-well.js +1 -1
  61. package/dist/collection/components/af-section/af-section.js +2 -2
  62. package/dist/collection/components/af-social-link/af-social-link.css +21 -0
  63. package/dist/collection/components/af-social-link/af-social-link.js +111 -0
  64. package/dist/collection/components/af-social-link/af-social-link.js.map +1 -0
  65. package/dist/collection/components/af-testimonial/af-testimonial.js +1 -1
  66. package/dist/collection/components/af-testimonial-carousel/af-testimonial-carousel.js +2 -2
  67. package/dist/collection/components/af-testimonial-stat/af-testimonial-stat.js +1 -1
  68. package/dist/components/af-contact-item.d.ts +11 -0
  69. package/dist/components/af-contact-item.js +44 -0
  70. package/dist/components/af-contact-item.js.map +1 -0
  71. package/dist/components/af-cta-section.js +1 -1
  72. package/dist/components/af-feature-accordion.js +2 -2
  73. package/dist/components/af-footer-column.d.ts +11 -0
  74. package/dist/components/af-footer-column.js +41 -0
  75. package/dist/components/af-footer-column.js.map +1 -0
  76. package/dist/components/af-footer-link.d.ts +11 -0
  77. package/dist/components/af-footer-link.js +44 -0
  78. package/dist/components/af-footer-link.js.map +1 -0
  79. package/dist/components/af-footer.js +12 -21
  80. package/dist/components/af-footer.js.map +1 -1
  81. package/dist/components/af-hero-section.js +1 -1
  82. package/dist/components/af-logo-well.js +1 -1
  83. package/dist/components/af-section.js +2 -2
  84. package/dist/components/af-social-link.d.ts +11 -0
  85. package/dist/components/af-social-link.js +63 -0
  86. package/dist/components/af-social-link.js.map +1 -0
  87. package/dist/components/af-testimonial-carousel.js +2 -2
  88. package/dist/components/af-testimonial-stat.js +1 -1
  89. package/dist/components/af-testimonial.js +1 -1
  90. package/dist/esm/af-contact-item.entry.js +20 -0
  91. package/dist/esm/af-contact-item.entry.js.map +1 -0
  92. package/dist/esm/af-cta-section.entry.js +1 -1
  93. package/dist/esm/af-feature-accordion.entry.js +2 -2
  94. package/dist/esm/af-footer-column.entry.js +18 -0
  95. package/dist/esm/af-footer-column.entry.js.map +1 -0
  96. package/dist/esm/af-footer-link.entry.js +20 -0
  97. package/dist/esm/af-footer-link.entry.js.map +1 -0
  98. package/dist/esm/af-footer.entry.js +9 -15
  99. package/dist/esm/af-footer.entry.js.map +1 -1
  100. package/dist/esm/af-hero-section.entry.js +1 -1
  101. package/dist/esm/af-logo-well.entry.js +1 -1
  102. package/dist/esm/af-section.entry.js +2 -2
  103. package/dist/esm/af-social-link.entry.js +38 -0
  104. package/dist/esm/af-social-link.entry.js.map +1 -0
  105. package/dist/esm/af-testimonial-carousel.entry.js +2 -2
  106. package/dist/esm/af-testimonial-stat.entry.js +1 -1
  107. package/dist/esm/af-testimonial.entry.js +1 -1
  108. package/dist/esm/affinda.js +1 -1
  109. package/dist/esm/loader.js +1 -1
  110. package/dist/types/components/af-contact-item/af-contact-item.d.ts +11 -0
  111. package/dist/types/components/af-footer/af-footer.d.ts +10 -15
  112. package/dist/types/components/af-footer-column/af-footer-column.d.ts +9 -0
  113. package/dist/types/components/af-footer-link/af-footer-link.d.ts +11 -0
  114. package/dist/types/components/af-social-link/af-social-link.d.ts +14 -0
  115. package/dist/types/components.d.ts +226 -56
  116. package/package.json +1 -1
  117. package/dist/affinda/p-b3fe032d.entry.js +0 -2
  118. package/dist/affinda/p-b3fe032d.entry.js.map +0 -1
  119. /package/dist/affinda/{p-1d00696b.entry.js.map → p-4a39ddec.entry.js.map} +0 -0
  120. /package/dist/affinda/{p-e0ce24ab.entry.js.map → p-52f7ea33.entry.js.map} +0 -0
  121. /package/dist/affinda/{p-00214c08.entry.js.map → p-924e6def.entry.js.map} +0 -0
  122. /package/dist/affinda/{p-456e933c.entry.js.map → p-b67bbaf7.entry.js.map} +0 -0
  123. /package/dist/affinda/{p-46e32b6d.entry.js.map → p-b7c63852.entry.js.map} +0 -0
  124. /package/dist/affinda/{p-ed9af653.entry.js.map → p-b7efbfff.entry.js.map} +0 -0
  125. /package/dist/affinda/{p-0835ca39.entry.js.map → p-bf4543ff.entry.js.map} +0 -0
  126. /package/dist/affinda/{p-83f1f94c.entry.js.map → p-c2b6199e.entry.js.map} +0 -0
@@ -0,0 +1,73 @@
1
+ import { h, Host } from "@stencil/core";
2
+ /**
3
+ * Contact item component for footer
4
+ * Displays a label and value pair (e.g., "Sales enquiries" / "contact@example.com")
5
+ */
6
+ export class AfContactItem {
7
+ constructor() {
8
+ /** Contact label (e.g., "Sales enquiries") */
9
+ this.label = '';
10
+ /** Contact value (e.g., email address) */
11
+ this.value = '';
12
+ }
13
+ render() {
14
+ return (h(Host, { key: 'd7028d8cf36ac49af112610cb75183bf6abf13a3' }, h("div", { key: '810bf1b96babcb480cd2aa2ba367646b9c4cc88a', class: "contact-item" }, this.label && (h("h5", { key: '1dabbf6e3c53d537645b3db0593f5653f9ca5f2b', class: "contact-item__label" }, this.label)), this.value && (h("p", { key: '73ab6e021d479b54f6341a9fa2fac5bb09e57d8d', class: "contact-item__value" }, this.value)), h("slot", { key: '787187f21f16576b62638aed8ddcc4dd38f0ac21' }))));
15
+ }
16
+ static get is() { return "af-contact-item"; }
17
+ static get encapsulation() { return "scoped"; }
18
+ static get originalStyleUrls() {
19
+ return {
20
+ "$": ["af-contact-item.css"]
21
+ };
22
+ }
23
+ static get styleUrls() {
24
+ return {
25
+ "$": ["af-contact-item.css"]
26
+ };
27
+ }
28
+ static get properties() {
29
+ return {
30
+ "label": {
31
+ "type": "string",
32
+ "mutable": false,
33
+ "complexType": {
34
+ "original": "string",
35
+ "resolved": "string",
36
+ "references": {}
37
+ },
38
+ "required": false,
39
+ "optional": false,
40
+ "docs": {
41
+ "tags": [],
42
+ "text": "Contact label (e.g., \"Sales enquiries\")"
43
+ },
44
+ "getter": false,
45
+ "setter": false,
46
+ "reflect": false,
47
+ "attribute": "label",
48
+ "defaultValue": "''"
49
+ },
50
+ "value": {
51
+ "type": "string",
52
+ "mutable": false,
53
+ "complexType": {
54
+ "original": "string",
55
+ "resolved": "string",
56
+ "references": {}
57
+ },
58
+ "required": false,
59
+ "optional": false,
60
+ "docs": {
61
+ "tags": [],
62
+ "text": "Contact value (e.g., email address)"
63
+ },
64
+ "getter": false,
65
+ "setter": false,
66
+ "reflect": false,
67
+ "attribute": "value",
68
+ "defaultValue": "''"
69
+ }
70
+ };
71
+ }
72
+ }
73
+ //# sourceMappingURL=af-contact-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"af-contact-item.js","sourceRoot":"","sources":["../../../src/components/af-contact-item/af-contact-item.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEzD;;;GAGG;AAOH,MAAM,OAAO,aAAa;IAN1B;QAOE,8CAA8C;QACtC,UAAK,GAAW,EAAE,CAAC;QAE3B,0CAA0C;QAClC,UAAK,GAAW,EAAE,CAAC;KAiB5B;IAfC,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH,4DAAK,KAAK,EAAC,cAAc;gBACtB,IAAI,CAAC,KAAK,IAAI,CACb,2DAAI,KAAK,EAAC,qBAAqB,IAAE,IAAI,CAAC,KAAK,CAAM,CAClD;gBACA,IAAI,CAAC,KAAK,IAAI,CACb,0DAAG,KAAK,EAAC,qBAAqB,IAAE,IAAI,CAAC,KAAK,CAAK,CAChD;gBACD,8DAAa,CACT,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Host, Prop } from '@stencil/core';\n\n/**\n * Contact item component for footer\n * Displays a label and value pair (e.g., \"Sales enquiries\" / \"contact@example.com\")\n */\n@Component({\n tag: 'af-contact-item',\n styleUrl: 'af-contact-item.css',\n shadow: false,\n scoped: true,\n})\nexport class AfContactItem {\n /** Contact label (e.g., \"Sales enquiries\") */\n @Prop() label: string = '';\n\n /** Contact value (e.g., email address) */\n @Prop() value: string = '';\n\n render() {\n return (\n <Host>\n <div class=\"contact-item\">\n {this.label && (\n <h5 class=\"contact-item__label\">{this.label}</h5>\n )}\n {this.value && (\n <p class=\"contact-item__value\">{this.value}</p>\n )}\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n\n"]}
@@ -21,7 +21,7 @@ export class AfCtaSection {
21
21
  this.illustrationUrl = '';
22
22
  }
23
23
  render() {
24
- return (h(Host, { key: '4799cecb74e6ed366615d0f6431b801b697104c1' }, h("div", { key: '5ec289c687484ea343bbe235b8e5ff275834bb1c', class: "cta-section" }, h("div", { key: 'd4ace70049c68d389e4ad6bfa0c33df90e40228c', class: "cta-section__container" }, h("div", { key: '44bff410dfa32e62d71d07a083ac796d8f2c4701', class: "cta-section__wave-bg" }, h("svg", { key: 'eaaa575510c3c9eb0151c3a9b429b05d63f091d2', viewBox: "0 0 1200 400", preserveAspectRatio: "none", class: "cta-section__wave-svg" }, h("ellipse", { key: '3efdf781f5d90f3a6171ce89d05b47d031dba87d', cx: "900", cy: "450", rx: "600", ry: "350", fill: "rgba(255,255,255,0.2)" }), h("ellipse", { key: '1b8bb8fe8629e8c1a38401a437f9ebc81448fd89', cx: "1000", cy: "500", rx: "400", ry: "250", fill: "rgba(255,255,255,0.15)" }))), h("div", { key: 'd5b18a8738c88cebe47501bbd3f4f8cb21e5b570', class: "cta-section__illustration" }, this.illustrationUrl ? (h("img", { src: this.illustrationUrl, alt: "", class: "cta-section__illustration-img" })) : (h("slot", { name: "illustration" }))), h("div", { key: 'a1aaf9056f0f4efbc1e8932c2bd7499c2109fe53', class: "cta-section__content" }, h("h2", { key: '6615663e27005aceab17e23cfc393b4d34c2eeec', class: "cta-section__heading" }, this.heading), h("p", { key: '13cd23b082ff90d2aaefcded32695ab64c0be51a', class: "cta-section__description" }, this.description), h("div", { key: '60c1b7e486fabc5bca71e1d4ec6e7ef5a88250e7', class: "cta-section__buttons" }, h("a", { key: '8b38088923d1b558bf9600957c36ea21468ea4f7', href: this.primaryButtonUrl, class: "cta-section__button cta-section__button--primary" }, this.primaryButtonText), h("a", { key: '9f38363587db152fb6cc04f0349ba4e7a8eac125', href: this.secondaryButtonUrl, class: "cta-section__button cta-section__button--secondary" }, this.secondaryButtonText)))))));
24
+ return (h(Host, { key: '8cf3c9274e0913f7ce160b296734e73c4d2d3734' }, h("div", { key: 'a538dac4d55527fea4341e6e5742e8f950161bf1', class: "cta-section" }, h("div", { key: '9c1d051adf987b36563a48185e91ad245fc1eab1', class: "cta-section__container" }, h("div", { key: '343f5022b9178f72d53b04ae3131f8d3ef3313a1', class: "cta-section__wave-bg" }, h("svg", { key: '7d66a29c84ee16d9cddecae3eea3bf7ef04a32a4', viewBox: "0 0 1200 400", preserveAspectRatio: "none", class: "cta-section__wave-svg" }, h("ellipse", { key: '83f3a06010d898eb107d8c85c70e7af1340a7ab1', cx: "900", cy: "450", rx: "600", ry: "350", fill: "rgba(255,255,255,0.2)" }), h("ellipse", { key: 'e74e9f443057d6af20af44ae48af382d79598c83', cx: "1000", cy: "500", rx: "400", ry: "250", fill: "rgba(255,255,255,0.15)" }))), h("div", { key: 'ce574daa6ff34cea13621508445a684ec02d07a6', class: "cta-section__illustration" }, this.illustrationUrl ? (h("img", { src: this.illustrationUrl, alt: "", class: "cta-section__illustration-img" })) : (h("slot", { name: "illustration" }))), h("div", { key: '07ad207e4ff04493da5d65f8abf93b55fba14fa0', class: "cta-section__content" }, h("h2", { key: '18f0f9f50bf1dcef7de2ef6613523b1ab7875cb0', class: "cta-section__heading" }, this.heading), h("p", { key: '08600c4a40d127c2b24adc43ad490f1a2c1f2211', class: "cta-section__description" }, this.description), h("div", { key: 'ab487ba8609a834d61c3804ef11a671406f7b570', class: "cta-section__buttons" }, h("a", { key: '60f3d7bcc62f11ff303ca706a32e3a400f6bb33a', href: this.primaryButtonUrl, class: "cta-section__button cta-section__button--primary" }, this.primaryButtonText), h("a", { key: '06f735171e0e3f7b1bc783d0917967b591b3d455', href: this.secondaryButtonUrl, class: "cta-section__button cta-section__button--secondary" }, this.secondaryButtonText)))))));
25
25
  }
26
26
  static get is() { return "af-cta-section"; }
27
27
  static get encapsulation() { return "scoped"; }
@@ -88,13 +88,13 @@ export class AfFeatureAccordion {
88
88
  render() {
89
89
  const items = this.getItems();
90
90
  const currentItem = items[this.expandedIndex];
91
- return (h(Host, { key: '7825aa3ce7bc01d0a2ca8d9bda5b8198aa76271c' }, h("div", { key: '0f6256791b7f0df695b73fbbfac13062441efe5d', class: "feature-accordion" }, h("div", { key: '325051f2986b59513be4911ebb74ea07e06d51aa', class: "feature-accordion__container" }, h("h2", { key: '03d56b844bb0683030cf180ad73c861411be6d97', class: "feature-accordion__heading" }, this.heading), h("div", { key: '3016a08061e853af3886c147f1cdead2e275da47', class: "feature-accordion__content" }, h("div", { key: '2810385a3c67d49dc4a7c5516aa88764c31cea38', class: "feature-accordion__list" }, items.map((item, index) => (h("div", { class: {
91
+ return (h(Host, { key: 'a6fc5618dfb0cafedbabfa8695eb6834e22f7915' }, h("div", { key: '30f3c9877b645a2e55fb59686826cd1f9a9554d2', class: "feature-accordion" }, h("div", { key: 'c7a1e31676fb44e7cf826be75c909e5755b4fb47', class: "feature-accordion__container" }, h("h2", { key: 'a86fc105621891bbf0ad735093d52aeaf5d77a45', class: "feature-accordion__heading" }, this.heading), h("div", { key: '19cf92b1a8ffb56fa6fedb26a01ab3ddde54ca9b', class: "feature-accordion__content" }, h("div", { key: '7eb7a385f98aecc1ea2e95067f0ed06d37b8adf2', class: "feature-accordion__list" }, items.map((item, index) => (h("div", { class: {
92
92
  'accordion-item': true,
93
93
  'accordion-item--expanded': this.expandedIndex === index
94
94
  }, key: index }, h("button", { class: "accordion-item__header", onClick: () => this.handleItemClick(index), "aria-expanded": this.expandedIndex === index ? 'true' : 'false' }, h("h4", { class: "accordion-item__title" }, item.title), h("span", { class: "accordion-item__icon" }, this.expandedIndex === index ? (h("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { d: "M5 12H19", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" }))) : (h("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { d: "M12 5V19M5 12H19", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" }))))), h("div", { class: "accordion-item__content", style: {
95
95
  maxHeight: this.expandedIndex === index ? '200px' : '0',
96
96
  opacity: this.expandedIndex === index ? '1' : '0'
97
- } }, h("p", { class: "accordion-item__description" }, item.description), this.expandedIndex === index && this.autoCycle && (h("div", { class: "accordion-item__timer-track" }, h("div", { class: "accordion-item__timer-progress", style: { width: `${this.timerProgress}%` } })))))))), h("div", { key: '91407477630dfe4287aa84750a3ec344d4d929fe', class: "feature-accordion__image-container" }, h("div", { key: '5a5f537b6e38f250ed821e0dfaecf059e88e4251', class: "feature-accordion__image-wrapper" }, currentItem?.imageUrl && (h("img", { key: 'e974ce7cc07d28768447a106eeb7f714e93069a9', src: currentItem.imageUrl, alt: currentItem.imageAlt || currentItem.title, class: "feature-accordion__image" })), !currentItem?.imageUrl && (h("div", { key: '4e0e981e30d9ad3a10048715f71681dfacff76b4', class: "feature-accordion__image-placeholder" }, h("slot", { key: 'c98c9302c6fdd0db75b63ae20a56273bf64638b6', name: "image" }))))))))));
97
+ } }, h("p", { class: "accordion-item__description" }, item.description), this.expandedIndex === index && this.autoCycle && (h("div", { class: "accordion-item__timer-track" }, h("div", { class: "accordion-item__timer-progress", style: { width: `${this.timerProgress}%` } })))))))), h("div", { key: '25d9abb394e6fc3027b8646fc3e86f157aa50849', class: "feature-accordion__image-container" }, h("div", { key: '9a697e0b33a744d092f0d4c467c65649d88896bc', class: "feature-accordion__image-wrapper" }, currentItem?.imageUrl && (h("img", { key: '1c506ddbaa60c00071cc9421cbbc3e42ba81694a', src: currentItem.imageUrl, alt: currentItem.imageAlt || currentItem.title, class: "feature-accordion__image" })), !currentItem?.imageUrl && (h("div", { key: 'dd9af6189d504abc163c25fe804445fac8b91e97', class: "feature-accordion__image-placeholder" }, h("slot", { key: '46bdaf5f99dd570cb43f198d40b52d85b5da7ab0', name: "image" }))))))))));
98
98
  }
99
99
  static get is() { return "af-feature-accordion"; }
100
100
  static get encapsulation() { return "scoped"; }
@@ -1,29 +1,24 @@
1
1
  import { h, Host } from "@stencil/core";
2
2
  /**
3
- * Footer component for Affinda marketing pages
4
- * Features a dark inkwell background with logo, social links, navigation columns, and legal info
3
+ * Footer component for marketing pages
4
+ * Provides a flexible, slot-based layout for footer content
5
+ * All content is passed via slots - no hardcoded links or content
5
6
  */
6
7
  export class AfFooter {
7
8
  constructor() {
8
- /** Sales email address */
9
- this.salesEmail = 'contact@affinda.com';
10
- /** Support email address */
11
- this.supportEmail = 'support@affinda.com';
12
- /** Copyright year */
13
- this.copyrightYear = new Date().getFullYear().toString();
9
+ /** Copyright text (e.g., "© 2025 Company Name. All rights reserved.") */
10
+ this.copyrightText = '';
11
+ /** Status message text */
12
+ this.statusText = '';
14
13
  /** Status page URL */
15
- this.statusUrl = 'https://status.affinda.com';
16
- /** Whether all systems are operational */
14
+ this.statusUrl = '';
15
+ /** Whether systems are operational (shows green/red indicator) */
17
16
  this.systemsOperational = true;
18
- /** LinkedIn URL */
19
- this.linkedinUrl = 'https://www.linkedin.com/company/affinda/';
20
- /** YouTube URL */
21
- this.youtubeUrl = 'https://www.youtube.com/@affinda';
22
- /** GitHub URL */
23
- this.githubUrl = 'https://github.com/affinda';
17
+ /** Whether to show the status indicator */
18
+ this.showStatus = true;
24
19
  }
25
20
  render() {
26
- return (h(Host, { key: '9d009ef32ef2d3a02a73534642cfac11124a021f' }, h("footer", { key: '9a15bc43554ff8e01710166a06d670648f1a63f9', class: "footer" }, h("div", { key: '123bc6641fd50dccc612a8c0e2ae03c1246cb7d3', class: "footer__container" }, h("div", { key: 'a2873b726170cedba26c3e68af6f0d0c4cfe83ad', class: "footer__top" }, h("div", { key: 'e0fb266adea854029fc6a8aa1003c82703b2d05c', class: "footer__brand" }, h("div", { key: 'cd7f8942f32d91500ec4a4676e9e0f140fb1cab6', class: "footer__brand-card" }, h("div", { key: '2ec8af97528776c09f91f9c6436c4ef002751f90', class: "footer__logo" }, h("slot", { key: 'df60c6030e452738a21ab2451feacf2b16b36c27', name: "logo" }, h("svg", { key: 'cfa7e88427109d5e44c03e92fa6db599daa302a9', width: "140", height: "32", viewBox: "0 0 140 32", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: '934857a327a1aa73944dceb45b17f1c9b7e10d89', d: "M16 0C7.163 0 0 7.163 0 16s7.163 16 16 16 16-7.163 16-16S24.837 0 16 0zm0 24c-4.418 0-8-3.582-8-8s3.582-8 8-8 8 3.582 8 8-3.582 8-8 8z", fill: "#C6D5D1" }), h("text", { key: '73cf1cd7fd3fd3fd85741ce7661fde09e2768840', x: "40", y: "22", fill: "#C6D5D1", "font-family": "NeuSans, sans-serif", "font-size": "20", "font-weight": "500" }, "affinda")))), h("div", { key: 'fee5f9ae35bcdbce0f757537fa330ccbcee36ec7', class: "footer__social" }, h("a", { key: '1dd47b104eef96d88df54fdfdb99302f5b731579', href: this.linkedinUrl, target: "_blank", rel: "noopener noreferrer", class: "footer__social-link", "aria-label": "LinkedIn" }, h("svg", { key: '5b0925eb82f5ecbc24310c0a733e8faaa73e9b31', width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "1.5" }, h("path", { key: '3b3be2e724b5de798eef3700db7577ade534952a', d: "M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z" }), h("rect", { key: '561369255a60efb96698a712d293822043c67960', x: "2", y: "9", width: "4", height: "12" }), h("circle", { key: '69641757ebd881056951192d21e36acb974a32a6', cx: "4", cy: "4", r: "2" }))), h("a", { key: '93c78373a62004b20edc2a436184afea029d40b2', href: this.youtubeUrl, target: "_blank", rel: "noopener noreferrer", class: "footer__social-link", "aria-label": "YouTube" }, h("svg", { key: '8a9bd363371a478c298afaf309b9209dd74a95e2', width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "1.5" }, h("path", { key: '09be0bd05dbe2d2836a8f8bd40b3bbb4c3328f74', d: "M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.25 29 29 0 0 0-.46-5.33z" }), h("polygon", { key: '6d3abfd00c36b8fa207c3a4034ebd30ffc0dcfa9', points: "9.75,15.02 15.5,11.75 9.75,8.48", fill: "currentColor", stroke: "none" }))), h("a", { key: '12eb2941c5a0cd2d43aa5e4bbf3ca68c9f6e64a1', href: this.githubUrl, target: "_blank", rel: "noopener noreferrer", class: "footer__social-link", "aria-label": "GitHub" }, h("svg", { key: '7dad99278cd95a82235bce64c0c48d18743350d5', width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "1.5" }, h("path", { key: '2ae90cbeb291d9326a5b4b9fe5f5e0b8ba0bf176', d: "M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22" }))))), h("div", { key: '308edfd162be480ce06dc13d6cc3cee5f56ba1e4', class: "footer__contact-card" }, h("div", { key: '31b7465b193fdbc7fd3b547b3024e516ca9730c9', class: "footer__contact-item" }, h("h5", { key: '1af87d6ba8d55dffb4a096e081c7575b8b81f611', class: "footer__contact-label" }, "Sales enquiries"), h("p", { key: '20e5f723226b597593a303f32c784db7e4b61e6e', class: "footer__contact-value" }, this.salesEmail)), h("div", { key: 'ee4d28d31e45700c3f505f84663a6309fa8e8144', class: "footer__contact-item" }, h("h5", { key: 'bd36693af223e71fa6522abc8ad6c050235f3aac', class: "footer__contact-label" }, "Support"), h("p", { key: 'e7a7468f65247c84610c2b360c923cbff57d2ccd', class: "footer__contact-value" }, this.supportEmail)))), h("div", { key: '8e4a2957dda89c67ee8e670515e87563aa1aca5e', class: "footer__nav" }, h("div", { key: 'aa05658c3cd62f24179db9bb5610fe34fb3fa4d4', class: "footer__nav-columns" }, h("slot", { key: 'fc4c5c493eff381965d4ea7233d9bec4c3697cac', name: "nav-columns" }, h("div", { key: '6358c92f788927646a599f67d4a3ca4705354958', class: "footer__nav-column" }, h("h5", { key: 'f356843b9c094f07483a252f1c288f4743f66fc1', class: "footer__nav-heading" }, "Explore"), h("ul", { key: '76c13d87e00ff9efccbdd94f57ead39bcb153868', class: "footer__nav-list" }, h("li", { key: '831b35251740578ca45226ea1a7c54102e298f1a' }, h("a", { key: 'fd128375e061b9b027571840299fd6567b587355', href: "/platform" }, "Platform")), h("li", { key: '53e7f312418def66d1fab445d9aecf024cdfff66' }, h("a", { key: 'af6558aff8a2e79f573922aa5af52c25e21fa57b', href: "/industries" }, "Industries")), h("li", { key: '9e0208a0c9d3b735ae3de5d77700a8cb99a53a44' }, h("a", { key: '02365c6b8f7cc8281b86549acbaed3ea967944fe', href: "/use-cases" }, "Use cases")), h("li", { key: '5475c2013c4fa862e346e5b0ad00772d6c4497d7' }, h("a", { key: '1a30dacf3c00e738c83ea189dfc851c0540a0d45', href: "/documents" }, "Document types")), h("li", { key: '59fcc181483eba0a64a7331021e00a5d019e783e' }, h("a", { key: 'fa09d2be553b67e6842ff14da264397d34ca37c5', href: "/resume-parser" }, "Resume Parser")))), h("div", { key: '3cedaccbf551c0f823c75edda0611ac190066a66', class: "footer__nav-column" }, h("h5", { key: '25c90b695d1f93121e8a45680e6b4d386e6c160c', class: "footer__nav-heading" }, "Pricing"), h("ul", { key: '0a4e1fda6589e89bfe48b1dcc7345f1721485ba7', class: "footer__nav-list" }, h("li", { key: '85cc5dfea398d8f3a2c7050fdfb760b808978252' }, h("a", { key: '29cb2a166e31b55b0b304434b5ecef310538fd52', href: "/pricing-plans" }, "Platform pricing")), h("li", { key: '922cbb456dd451587575af269bc36f9f9cd0aa6d' }, h("a", { key: '4afded0564653d0f64ce11988c4f824021793b8c', href: "/recruitment-ai-pricing" }, "Resume Parser pricing")))), h("div", { key: 'ac0b8a6cb71ee08d7c707ca231dc4d109eb5cd56', class: "footer__nav-column" }, h("h5", { key: 'dc1030561031dfebb6cba5ce4986bc987e275e1b', class: "footer__nav-heading" }, "Company"), h("ul", { key: 'dd2f31792aa3e7bf9d89debbf0f9a292326d9f1d', class: "footer__nav-list" }, h("li", { key: '8b960c5b652663826b5ca8b096c500eb41473088' }, h("a", { key: 'f5ffe17af65db0d004930c83271b3e2c8c2a45c3', href: "/about-us" }, "About")), h("li", { key: '15383db8132cb54113c82f0e984ab2456f68ab67' }, h("a", { key: '06e49b29807bfaec53d639d0586c042a75aa6da8', href: "/careers" }, "Careers")), h("li", { key: 'd6b5802dbdde8237e18d442544a4ddcab3e938ba' }, h("a", { key: 'd6f2b1dda3e345e4881012111407b9868191cae8', href: "/partners" }, "Partners")), h("li", { key: '3b1b383567fb9f3ebcf34674945b50ea34d707c4' }, h("a", { key: 'e3792eb407636a04acd13e537d1192e325e0bf28', href: "/contact" }, "Contact us")), h("li", { key: 'bddc9b5fde22e7bbae0ac37664899bdd7ac577b9' }, h("a", { key: '5f7c16c277ee3e52994a4d3b675e90be914d4210', href: "/security" }, "Security")), h("li", { key: 'f873de499deba836dcd4cd25558b839521975fc7' }, h("a", { key: 'ca0bcca09d3bcc6c26f0e48bc0d8fe67725e2fd9', href: "https://www.affindagroup.com/", target: "_blank", rel: "noopener noreferrer" }, "Affinda Group", h("svg", { key: 'e27156d4a31906cf106939fb160c06aa7ed0cc0a', class: "footer__external-icon", width: "12", height: "12", viewBox: "0 0 12 12", fill: "none" }, h("path", { key: 'ae63d3e1f0e5a8dc52c41fa915b9927daa357412', d: "M10 6.5v3a1 1 0 0 1-1 1H2.5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h3M7.5 1.5h3v3M5.5 6.5l5-5", stroke: "currentColor", "stroke-width": "1.2", "stroke-linecap": "round", "stroke-linejoin": "round" })))), h("li", { key: 'fa6ddff07db042e41b11cdc41d098c54181144c4' }, h("a", { key: '7bb51d2e9c27dac57e099fd1570f155ac626825b', href: "https://www.draftable.com/", target: "_blank", rel: "noopener noreferrer" }, "Draftable", h("svg", { key: 'c07bf4f900036a85ea1c662d63f88b1c544f567b', class: "footer__external-icon", width: "12", height: "12", viewBox: "0 0 12 12", fill: "none" }, h("path", { key: 'a32e00e84fada8224ca32793debbb8023980f6dc', d: "M10 6.5v3a1 1 0 0 1-1 1H2.5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h3M7.5 1.5h3v3M5.5 6.5l5-5", stroke: "currentColor", "stroke-width": "1.2", "stroke-linecap": "round", "stroke-linejoin": "round" })))))), h("div", { key: '5b07294489371095d0f8447efe2a0e09f62bb6d7', class: "footer__nav-column" }, h("h5", { key: 'd723c2b1593f1f20da228e9daa01e83652422992', class: "footer__nav-heading" }, "Learn more"), h("ul", { key: '4c3a4e2d43987d724a8f76086f777ab1aeee0c33', class: "footer__nav-list" }, h("li", { key: '0cec40b18dbd3fccb9ae014928d3814ee19125ee' }, h("a", { key: '9e25f6abca961fa29fd397f88eaeb2fd33362e5b', href: "/blog" }, "Blog")), h("li", { key: 'b338d7027eddf27d5ec5db843c6d5841a6d17fee' }, h("a", { key: 'a6eae199076bf399ab3ceafedbb3c7ba27db3dee', href: "/case-studies" }, "Customer stories")), h("li", { key: '4c73a20a0e02e5d4abb8d5f79f472fdcd32b0b1d' }, h("a", { key: '07b39e1a1a6f2b6c8ca0800572ea8e61c50ffac7', href: "https://docs.affinda.com/", target: "_blank", rel: "noopener noreferrer" }, "Affinda Academy", h("svg", { key: '859ff2bd393a8a6ddf5d8321cd7d8fa8c72aca70', class: "footer__external-icon", width: "12", height: "12", viewBox: "0 0 12 12", fill: "none" }, h("path", { key: 'd875653fb59d80f8116ec5ec78f92dc7adad1ed8', d: "M10 6.5v3a1 1 0 0 1-1 1H2.5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h3M7.5 1.5h3v3M5.5 6.5l5-5", stroke: "currentColor", "stroke-width": "1.2", "stroke-linecap": "round", "stroke-linejoin": "round" })))), h("li", { key: '02c1a5bd7963fe3ee94eff5ac0ca4d4959f09331' }, h("a", { key: '161212bbed131e2ff200c64bc0aaf3eff1af3568', href: "https://docs.affinda.com/reference/", target: "_blank", rel: "noopener noreferrer" }, "API reference", h("svg", { key: 'f4bb636f1acb30e4af91ad4603afbbd795f63ddd', class: "footer__external-icon", width: "12", height: "12", viewBox: "0 0 12 12", fill: "none" }, h("path", { key: '1dd731e2797d43dbc026b655aeaefc3504bfb6d7', d: "M10 6.5v3a1 1 0 0 1-1 1H2.5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h3M7.5 1.5h3v3M5.5 6.5l5-5", stroke: "currentColor", "stroke-width": "1.2", "stroke-linecap": "round", "stroke-linejoin": "round" })))), h("li", { key: '849c447969e7aef8d8bf80c5b87fffbf51018c29' }, h("a", { key: 'ba859d73e047d98595c7ed96421bd831ca815ea8', href: "https://docs.affinda.com/updates", target: "_blank", rel: "noopener noreferrer" }, "Product updates", h("svg", { key: 'ee5fdfd1df9dffb9eb313363e5eed4e1438c00d3', class: "footer__external-icon", width: "12", height: "12", viewBox: "0 0 12 12", fill: "none" }, h("path", { key: '9aaf89eb40c5ae6b71a6e62c313ee2acdef626c4', d: "M10 6.5v3a1 1 0 0 1-1 1H2.5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h3M7.5 1.5h3v3M5.5 6.5l5-5", stroke: "currentColor", "stroke-width": "1.2", "stroke-linecap": "round", "stroke-linejoin": "round" })))))))), h("div", { key: '6ebb4c4f8abd11c43f9a5b8a3d722bd4210fd31d', class: "footer__status" }, h("span", { key: 'c48f28a6515b6634c09dea8433fe77e8b3827fad', class: `footer__status-dot ${this.systemsOperational ? 'footer__status-dot--operational' : 'footer__status-dot--issue'}` }), h("span", { key: 'a710886e3c1ba335586899fd9bd41493da3e9c92', class: "footer__status-text" }, this.systemsOperational ? 'All systems are operational' : 'System issues detected'), h("a", { key: 'd4dcdbc1a0b3884703f01af06acc6b03ed2f477c', href: this.statusUrl, target: "_blank", rel: "noopener noreferrer", class: "footer__status-link" }, "Learn more")))), h("div", { key: '01652e175f0d60ea2298d9b118ca2d599f3df3ed', class: "footer__bottom" }, h("p", { key: '6d90e7996ec3a39fb5fa75de1cedbac7bff09e40', class: "footer__copyright" }, "\u00A9 ", this.copyrightYear, " Affinda. All rights reserved."), h("div", { key: '578940724f6f8ccc40e3bc9d7d90b48776904a20', class: "footer__legal" }, h("a", { key: 'fa1f810f98dc02141436a8f4d1addd7423f94a43', href: "/privacy-and-data-protection-policy" }, "Privacy policy"), h("a", { key: '5f40b79c933794f82499663080e5039e2ec3729a', href: "/website-terms" }, "Website terms"), h("a", { key: 'de48b81b13a4169dd0b25bbca315b283172b59ff', href: "/product-terms" }, "Product terms")), h("div", { key: '1e3b2738dfd2b2874b514fa11f24322b0edad7e7', class: "footer__badges" }, h("slot", { key: 'f27200be911fb2bba954b91ee304b57bc1be3483', name: "badges" }, h("div", { key: '1c1e0f88d0efc96a2bf5ff99eaab001c7dade962', class: "footer__badge", title: "GDPR Compliant" }, h("svg", { key: 'e1f7b274367a9a4c87ecb503bae4ef0c664a3b99', width: "40", height: "40", viewBox: "0 0 40 40", fill: "none" }, h("circle", { key: '2f6724b6c664bbdfb8eb6363aeb9ca2699a0b804', cx: "20", cy: "20", r: "18", stroke: "#FFD700", "stroke-width": "2", fill: "#003399" }), h("text", { key: 'b5213657f0f5bfd4ea1786a1319b5a0e97f4c1fc', x: "20", y: "24", "text-anchor": "middle", fill: "white", "font-size": "8", "font-weight": "bold" }, "GDPR"))), h("div", { key: 'ae247cc61144a16212a38e56acddbd9d7893a060', class: "footer__badge", title: "SOC 2 Compliant" }, h("svg", { key: '5ff33c5885e2b4c271305d042ba18407eaa7f77a', width: "40", height: "40", viewBox: "0 0 40 40", fill: "none" }, h("circle", { key: '78033711f6bcae76c25b1fbb3e6f5368079bdfee', cx: "20", cy: "20", r: "18", stroke: "#0066CC", "stroke-width": "2", fill: "white" }), h("text", { key: '56456237779a0f9ccc5558d638d63d5daabbf524', x: "20", y: "18", "text-anchor": "middle", fill: "#0066CC", "font-size": "6", "font-weight": "bold" }, "AICPA"), h("text", { key: 'f38621118751089036a0423a0f2ce200686f5a6c', x: "20", y: "26", "text-anchor": "middle", fill: "#0066CC", "font-size": "8", "font-weight": "bold" }, "SOC"))), h("div", { key: '6a0ca86b597d51fac9b9f4ef18ecf2a982980428', class: "footer__badge", title: "ISO 27001:2022" }, h("svg", { key: '1d1bc52ca35785f3836fe944ed7c1f0d1b5798ff', width: "40", height: "40", viewBox: "0 0 40 40", fill: "none" }, h("circle", { key: '7cc2ad4046e81e59edd6e80709965d8577029b4b', cx: "20", cy: "20", r: "18", stroke: "#333", "stroke-width": "2", fill: "white" }), h("text", { key: '04ed5d7ed451ec74e6a9ff44e16f5f25f2630aed', x: "20", y: "18", "text-anchor": "middle", fill: "#333", "font-size": "8", "font-weight": "bold" }, "ISO"), h("text", { key: '20502ad4c80bf5d454278d2167b596319e9f33ec', x: "20", y: "28", "text-anchor": "middle", fill: "#333", "font-size": "5" }, "27001:2022"))))))))));
21
+ return (h(Host, { key: '37ff278a4e94d6a530143e49a7d2cd89bf4b2108' }, h("footer", { key: '1465dbc7c890329e248ee6f15b6082b63cc6d66f', class: "footer" }, h("div", { key: '5e1b29375b3f14c3ebe451e56f70d0726e9af0ae', class: "footer__container" }, h("div", { key: 'a36ec8ae9f0f211347b2ccdd47dbe45599eaf43c', class: "footer__top" }, h("div", { key: '3f749c08a7a0866748e5818156db2bf6c9fd2d8e', class: "footer__brand" }, h("div", { key: 'a71e240e851ec6348fa80eff89cb319f2126ae6f', class: "footer__brand-card" }, h("div", { key: '1e2b46f8bc10ad4be3b41a5545445ca421d93614', class: "footer__logo" }, h("slot", { key: '55a6b9f5181e3e19e91dc8bbf9d94283e2805d1b', name: "logo" })), h("div", { key: 'd0f58f0b8f8449b62f7fb9cb22dbf44d990c274c', class: "footer__social" }, h("slot", { key: '14995e1b89c281dcb618cc5044171dc5e770df78', name: "social" }))), h("div", { key: '9ee5c6a384a5915c7d25d5b7918737eb3aedd457', class: "footer__contact-card" }, h("slot", { key: '669c0f2dec223e8e964a117be3ed1f1b626284ea', name: "contact" }))), h("div", { key: 'e5c055d705f12e9f4389f6a5d342d594b20636b7', class: "footer__nav" }, h("div", { key: 'b8ba3f9e42996210094d6962888fd380645c83e0', class: "footer__nav-columns" }, h("slot", { key: 'be54e86e7a3dadcf9dd01006cbbca1124bcfb1df', name: "nav" })), this.showStatus && (h("div", { key: 'c949887c44f734c93c679a72aa07362fea9b939c', class: "footer__status" }, h("span", { key: '2d8e3df717e880ad71e8af9591699fee7b50e711', class: `footer__status-dot ${this.systemsOperational ? 'footer__status-dot--operational' : 'footer__status-dot--issue'}` }), h("span", { key: '743707f9b7750dc2312262028b2d6d0ca86f6e60', class: "footer__status-text" }, this.statusText), this.statusUrl && (h("a", { key: 'f667c9ecb73d4c17645afc24ad09c4b58fa0d265', href: this.statusUrl, target: "_blank", rel: "noopener noreferrer", class: "footer__status-link" }, "Learn more")))))), h("div", { key: '3935d821d1ccf1563de444e244802c500b7ba9db', class: "footer__bottom" }, this.copyrightText && (h("p", { key: '9bbf076b86d2d221a65f7f19e325a0f79fb42cd3', class: "footer__copyright" }, this.copyrightText)), h("div", { key: 'b671070b4274c1d0b8fdc21ad33b211ad8d37390', class: "footer__legal" }, h("slot", { key: '24338a5e5fea9b88352e47680ef18160f52e9ee2', name: "legal" })), h("div", { key: '772913b85cf9b1f2f93b649c01c11b71a27d64a4', class: "footer__badges" }, h("slot", { key: '9a40bc862ed3512ee94398da5ac0e754dbd33240', name: "badges" })))))));
27
22
  }
28
23
  static get is() { return "af-footer"; }
29
24
  static get encapsulation() { return "scoped"; }
@@ -39,7 +34,7 @@ export class AfFooter {
39
34
  }
40
35
  static get properties() {
41
36
  return {
42
- "salesEmail": {
37
+ "copyrightText": {
43
38
  "type": "string",
44
39
  "mutable": false,
45
40
  "complexType": {
@@ -51,15 +46,15 @@ export class AfFooter {
51
46
  "optional": false,
52
47
  "docs": {
53
48
  "tags": [],
54
- "text": "Sales email address"
49
+ "text": "Copyright text (e.g., \"\u00A9 2025 Company Name. All rights reserved.\")"
55
50
  },
56
51
  "getter": false,
57
52
  "setter": false,
58
53
  "reflect": false,
59
- "attribute": "sales-email",
60
- "defaultValue": "'contact@affinda.com'"
54
+ "attribute": "copyright-text",
55
+ "defaultValue": "''"
61
56
  },
62
- "supportEmail": {
57
+ "statusText": {
63
58
  "type": "string",
64
59
  "mutable": false,
65
60
  "complexType": {
@@ -71,33 +66,13 @@ export class AfFooter {
71
66
  "optional": false,
72
67
  "docs": {
73
68
  "tags": [],
74
- "text": "Support email address"
69
+ "text": "Status message text"
75
70
  },
76
71
  "getter": false,
77
72
  "setter": false,
78
73
  "reflect": false,
79
- "attribute": "support-email",
80
- "defaultValue": "'support@affinda.com'"
81
- },
82
- "copyrightYear": {
83
- "type": "string",
84
- "mutable": false,
85
- "complexType": {
86
- "original": "string",
87
- "resolved": "string",
88
- "references": {}
89
- },
90
- "required": false,
91
- "optional": false,
92
- "docs": {
93
- "tags": [],
94
- "text": "Copyright year"
95
- },
96
- "getter": false,
97
- "setter": false,
98
- "reflect": false,
99
- "attribute": "copyright-year",
100
- "defaultValue": "new Date().getFullYear().toString()"
74
+ "attribute": "status-text",
75
+ "defaultValue": "''"
101
76
  },
102
77
  "statusUrl": {
103
78
  "type": "string",
@@ -117,7 +92,7 @@ export class AfFooter {
117
92
  "setter": false,
118
93
  "reflect": false,
119
94
  "attribute": "status-url",
120
- "defaultValue": "'https://status.affinda.com'"
95
+ "defaultValue": "''"
121
96
  },
122
97
  "systemsOperational": {
123
98
  "type": "boolean",
@@ -131,7 +106,7 @@ export class AfFooter {
131
106
  "optional": false,
132
107
  "docs": {
133
108
  "tags": [],
134
- "text": "Whether all systems are operational"
109
+ "text": "Whether systems are operational (shows green/red indicator)"
135
110
  },
136
111
  "getter": false,
137
112
  "setter": false,
@@ -139,65 +114,25 @@ export class AfFooter {
139
114
  "attribute": "systems-operational",
140
115
  "defaultValue": "true"
141
116
  },
142
- "linkedinUrl": {
143
- "type": "string",
144
- "mutable": false,
145
- "complexType": {
146
- "original": "string",
147
- "resolved": "string",
148
- "references": {}
149
- },
150
- "required": false,
151
- "optional": false,
152
- "docs": {
153
- "tags": [],
154
- "text": "LinkedIn URL"
155
- },
156
- "getter": false,
157
- "setter": false,
158
- "reflect": false,
159
- "attribute": "linkedin-url",
160
- "defaultValue": "'https://www.linkedin.com/company/affinda/'"
161
- },
162
- "youtubeUrl": {
163
- "type": "string",
164
- "mutable": false,
165
- "complexType": {
166
- "original": "string",
167
- "resolved": "string",
168
- "references": {}
169
- },
170
- "required": false,
171
- "optional": false,
172
- "docs": {
173
- "tags": [],
174
- "text": "YouTube URL"
175
- },
176
- "getter": false,
177
- "setter": false,
178
- "reflect": false,
179
- "attribute": "youtube-url",
180
- "defaultValue": "'https://www.youtube.com/@affinda'"
181
- },
182
- "githubUrl": {
183
- "type": "string",
117
+ "showStatus": {
118
+ "type": "boolean",
184
119
  "mutable": false,
185
120
  "complexType": {
186
- "original": "string",
187
- "resolved": "string",
121
+ "original": "boolean",
122
+ "resolved": "boolean",
188
123
  "references": {}
189
124
  },
190
125
  "required": false,
191
126
  "optional": false,
192
127
  "docs": {
193
128
  "tags": [],
194
- "text": "GitHub URL"
129
+ "text": "Whether to show the status indicator"
195
130
  },
196
131
  "getter": false,
197
132
  "setter": false,
198
133
  "reflect": false,
199
- "attribute": "github-url",
200
- "defaultValue": "'https://github.com/affinda'"
134
+ "attribute": "show-status",
135
+ "defaultValue": "true"
201
136
  }
202
137
  };
203
138
  }
@@ -1 +1 @@
1
- {"version":3,"file":"af-footer.js","sourceRoot":"","sources":["../../../src/components/af-footer/af-footer.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, Host, Prop } from '@stencil/core';\n\n/**\n * Footer component for Affinda marketing pages\n * Features a dark inkwell background with logo, social links, navigation columns, and legal info\n */\n@Component({\n tag: 'af-footer',\n styleUrl: 'af-footer.css',\n shadow: false,\n scoped: true,\n})\nexport class AfFooter {\n /** Sales email address */\n @Prop() salesEmail: string = 'contact@affinda.com';\n\n /** Support email address */\n @Prop() supportEmail: string = 'support@affinda.com';\n\n /** Copyright year */\n @Prop() copyrightYear: string = new Date().getFullYear().toString();\n\n /** Status page URL */\n @Prop() statusUrl: string = 'https://status.affinda.com';\n\n /** Whether all systems are operational */\n @Prop() systemsOperational: boolean = true;\n\n /** LinkedIn URL */\n @Prop() linkedinUrl: string = 'https://www.linkedin.com/company/affinda/';\n\n /** YouTube URL */\n @Prop() youtubeUrl: string = 'https://www.youtube.com/@affinda';\n\n /** GitHub URL */\n @Prop() githubUrl: string = 'https://github.com/affinda';\n\n render() {\n return (\n <Host>\n <footer class=\"footer\">\n <div class=\"footer__container\">\n {/* Top section */}\n <div class=\"footer__top\">\n {/* Left column - Logo, social, contact */}\n <div class=\"footer__brand\">\n <div class=\"footer__brand-card\">\n <div class=\"footer__logo\">\n <slot name=\"logo\">\n <svg width=\"140\" height=\"32\" viewBox=\"0 0 140 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M16 0C7.163 0 0 7.163 0 16s7.163 16 16 16 16-7.163 16-16S24.837 0 16 0zm0 24c-4.418 0-8-3.582-8-8s3.582-8 8-8 8 3.582 8 8-3.582 8-8 8z\" fill=\"#C6D5D1\"/>\n <text x=\"40\" y=\"22\" fill=\"#C6D5D1\" font-family=\"NeuSans, sans-serif\" font-size=\"20\" font-weight=\"500\">affinda</text>\n </svg>\n </slot>\n </div>\n \n <div class=\"footer__social\">\n <a href={this.linkedinUrl} target=\"_blank\" rel=\"noopener noreferrer\" class=\"footer__social-link\" aria-label=\"LinkedIn\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\">\n <path d=\"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z\"/>\n <rect x=\"2\" y=\"9\" width=\"4\" height=\"12\"/>\n <circle cx=\"4\" cy=\"4\" r=\"2\"/>\n </svg>\n </a>\n <a href={this.youtubeUrl} target=\"_blank\" rel=\"noopener noreferrer\" class=\"footer__social-link\" aria-label=\"YouTube\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\">\n <path d=\"M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.25 29 29 0 0 0-.46-5.33z\"/>\n <polygon points=\"9.75,15.02 15.5,11.75 9.75,8.48\" fill=\"currentColor\" stroke=\"none\"/>\n </svg>\n </a>\n <a href={this.githubUrl} target=\"_blank\" rel=\"noopener noreferrer\" class=\"footer__social-link\" aria-label=\"GitHub\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\">\n <path d=\"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22\"/>\n </svg>\n </a>\n </div>\n </div>\n\n <div class=\"footer__contact-card\">\n <div class=\"footer__contact-item\">\n <h5 class=\"footer__contact-label\">Sales enquiries</h5>\n <p class=\"footer__contact-value\">{this.salesEmail}</p>\n </div>\n <div class=\"footer__contact-item\">\n <h5 class=\"footer__contact-label\">Support</h5>\n <p class=\"footer__contact-value\">{this.supportEmail}</p>\n </div>\n </div>\n </div>\n\n {/* Right section - Navigation columns */}\n <div class=\"footer__nav\">\n <div class=\"footer__nav-columns\">\n <slot name=\"nav-columns\">\n {/* Default navigation columns */}\n <div class=\"footer__nav-column\">\n <h5 class=\"footer__nav-heading\">Explore</h5>\n <ul class=\"footer__nav-list\">\n <li><a href=\"/platform\">Platform</a></li>\n <li><a href=\"/industries\">Industries</a></li>\n <li><a href=\"/use-cases\">Use cases</a></li>\n <li><a href=\"/documents\">Document types</a></li>\n <li><a href=\"/resume-parser\">Resume Parser</a></li>\n </ul>\n </div>\n\n <div class=\"footer__nav-column\">\n <h5 class=\"footer__nav-heading\">Pricing</h5>\n <ul class=\"footer__nav-list\">\n <li><a href=\"/pricing-plans\">Platform pricing</a></li>\n <li><a href=\"/recruitment-ai-pricing\">Resume Parser pricing</a></li>\n </ul>\n </div>\n\n <div class=\"footer__nav-column\">\n <h5 class=\"footer__nav-heading\">Company</h5>\n <ul class=\"footer__nav-list\">\n <li><a href=\"/about-us\">About</a></li>\n <li><a href=\"/careers\">Careers</a></li>\n <li><a href=\"/partners\">Partners</a></li>\n <li><a href=\"/contact\">Contact us</a></li>\n <li><a href=\"/security\">Security</a></li>\n <li>\n <a href=\"https://www.affindagroup.com/\" target=\"_blank\" rel=\"noopener noreferrer\">\n Affinda Group\n <svg class=\"footer__external-icon\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\n <path d=\"M10 6.5v3a1 1 0 0 1-1 1H2.5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h3M7.5 1.5h3v3M5.5 6.5l5-5\" stroke=\"currentColor\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </a>\n </li>\n <li>\n <a href=\"https://www.draftable.com/\" target=\"_blank\" rel=\"noopener noreferrer\">\n Draftable\n <svg class=\"footer__external-icon\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\n <path d=\"M10 6.5v3a1 1 0 0 1-1 1H2.5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h3M7.5 1.5h3v3M5.5 6.5l5-5\" stroke=\"currentColor\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </a>\n </li>\n </ul>\n </div>\n\n <div class=\"footer__nav-column\">\n <h5 class=\"footer__nav-heading\">Learn more</h5>\n <ul class=\"footer__nav-list\">\n <li><a href=\"/blog\">Blog</a></li>\n <li><a href=\"/case-studies\">Customer stories</a></li>\n <li>\n <a href=\"https://docs.affinda.com/\" target=\"_blank\" rel=\"noopener noreferrer\">\n Affinda Academy\n <svg class=\"footer__external-icon\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\n <path d=\"M10 6.5v3a1 1 0 0 1-1 1H2.5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h3M7.5 1.5h3v3M5.5 6.5l5-5\" stroke=\"currentColor\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </a>\n </li>\n <li>\n <a href=\"https://docs.affinda.com/reference/\" target=\"_blank\" rel=\"noopener noreferrer\">\n API reference\n <svg class=\"footer__external-icon\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\n <path d=\"M10 6.5v3a1 1 0 0 1-1 1H2.5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h3M7.5 1.5h3v3M5.5 6.5l5-5\" stroke=\"currentColor\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </a>\n </li>\n <li>\n <a href=\"https://docs.affinda.com/updates\" target=\"_blank\" rel=\"noopener noreferrer\">\n Product updates\n <svg class=\"footer__external-icon\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\n <path d=\"M10 6.5v3a1 1 0 0 1-1 1H2.5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h3M7.5 1.5h3v3M5.5 6.5l5-5\" stroke=\"currentColor\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </a>\n </li>\n </ul>\n </div>\n </slot>\n </div>\n\n {/* Status indicator */}\n <div class=\"footer__status\">\n <span class={`footer__status-dot ${this.systemsOperational ? 'footer__status-dot--operational' : 'footer__status-dot--issue'}`}></span>\n <span class=\"footer__status-text\">\n {this.systemsOperational ? 'All systems are operational' : 'System issues detected'}\n </span>\n <a href={this.statusUrl} target=\"_blank\" rel=\"noopener noreferrer\" class=\"footer__status-link\">\n Learn more\n </a>\n </div>\n </div>\n </div>\n\n {/* Bottom section */}\n <div class=\"footer__bottom\">\n <p class=\"footer__copyright\">\n © {this.copyrightYear} Affinda. All rights reserved.\n </p>\n \n <div class=\"footer__legal\">\n <a href=\"/privacy-and-data-protection-policy\">Privacy policy</a>\n <a href=\"/website-terms\">Website terms</a>\n <a href=\"/product-terms\">Product terms</a>\n </div>\n\n <div class=\"footer__badges\">\n <slot name=\"badges\">\n {/* GDPR Badge */}\n <div class=\"footer__badge\" title=\"GDPR Compliant\">\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\">\n <circle cx=\"20\" cy=\"20\" r=\"18\" stroke=\"#FFD700\" stroke-width=\"2\" fill=\"#003399\"/>\n <text x=\"20\" y=\"24\" text-anchor=\"middle\" fill=\"white\" font-size=\"8\" font-weight=\"bold\">GDPR</text>\n </svg>\n </div>\n {/* SOC Badge */}\n <div class=\"footer__badge\" title=\"SOC 2 Compliant\">\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\">\n <circle cx=\"20\" cy=\"20\" r=\"18\" stroke=\"#0066CC\" stroke-width=\"2\" fill=\"white\"/>\n <text x=\"20\" y=\"18\" text-anchor=\"middle\" fill=\"#0066CC\" font-size=\"6\" font-weight=\"bold\">AICPA</text>\n <text x=\"20\" y=\"26\" text-anchor=\"middle\" fill=\"#0066CC\" font-size=\"8\" font-weight=\"bold\">SOC</text>\n </svg>\n </div>\n {/* ISO Badge */}\n <div class=\"footer__badge\" title=\"ISO 27001:2022\">\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\">\n <circle cx=\"20\" cy=\"20\" r=\"18\" stroke=\"#333\" stroke-width=\"2\" fill=\"white\"/>\n <text x=\"20\" y=\"18\" text-anchor=\"middle\" fill=\"#333\" font-size=\"8\" font-weight=\"bold\">ISO</text>\n <text x=\"20\" y=\"28\" text-anchor=\"middle\" fill=\"#333\" font-size=\"5\">27001:2022</text>\n </svg>\n </div>\n </slot>\n </div>\n </div>\n </div>\n </footer>\n </Host>\n );\n }\n}\n\n"]}
1
+ {"version":3,"file":"af-footer.js","sourceRoot":"","sources":["../../../src/components/af-footer/af-footer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEzD;;;;GAIG;AAOH,MAAM,OAAO,QAAQ;IANrB;QAOE,yEAAyE;QACjE,kBAAa,GAAW,EAAE,CAAC;QAEnC,0BAA0B;QAClB,eAAU,GAAW,EAAE,CAAC;QAEhC,sBAAsB;QACd,cAAS,GAAW,EAAE,CAAC;QAE/B,kEAAkE;QAC1D,uBAAkB,GAAY,IAAI,CAAC;QAE3C,2CAA2C;QACnC,eAAU,GAAY,IAAI,CAAC;KAmEpC;IAjEC,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH,+DAAQ,KAAK,EAAC,QAAQ;gBACpB,4DAAK,KAAK,EAAC,mBAAmB;oBAE5B,4DAAK,KAAK,EAAC,aAAa;wBAEtB,4DAAK,KAAK,EAAC,eAAe;4BACxB,4DAAK,KAAK,EAAC,oBAAoB;gCAC7B,4DAAK,KAAK,EAAC,cAAc;oCACvB,6DAAM,IAAI,EAAC,MAAM,GAAQ,CACrB;gCACN,4DAAK,KAAK,EAAC,gBAAgB;oCACzB,6DAAM,IAAI,EAAC,QAAQ,GAAQ,CACvB,CACF;4BAEN,4DAAK,KAAK,EAAC,sBAAsB;gCAC/B,6DAAM,IAAI,EAAC,SAAS,GAAQ,CACxB,CACF;wBAGN,4DAAK,KAAK,EAAC,aAAa;4BACtB,4DAAK,KAAK,EAAC,qBAAqB;gCAC9B,6DAAM,IAAI,EAAC,KAAK,GAAQ,CACpB;4BAGL,IAAI,CAAC,UAAU,IAAI,CAClB,4DAAK,KAAK,EAAC,gBAAgB;gCACzB,6DAAM,KAAK,EAAE,sBAAsB,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,2BAA2B,EAAE,GAAS;gCACvI,6DAAM,KAAK,EAAC,qBAAqB,IAC9B,IAAI,CAAC,UAAU,CACX;gCACN,IAAI,CAAC,SAAS,IAAI,CACjB,0DAAG,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAC,QAAQ,EAAC,GAAG,EAAC,qBAAqB,EAAC,KAAK,EAAC,qBAAqB,iBAE1F,CACL,CACG,CACP,CACG,CACF;oBAGN,4DAAK,KAAK,EAAC,gBAAgB;wBACxB,IAAI,CAAC,aAAa,IAAI,CACrB,0DAAG,KAAK,EAAC,mBAAmB,IAAE,IAAI,CAAC,aAAa,CAAK,CACtD;wBAED,4DAAK,KAAK,EAAC,eAAe;4BACxB,6DAAM,IAAI,EAAC,OAAO,GAAQ,CACtB;wBAEN,4DAAK,KAAK,EAAC,gBAAgB;4BACzB,6DAAM,IAAI,EAAC,QAAQ,GAAQ,CACvB,CACF,CACF,CACC,CACJ,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Host, Prop } from '@stencil/core';\n\n/**\n * Footer component for marketing pages\n * Provides a flexible, slot-based layout for footer content\n * All content is passed via slots - no hardcoded links or content\n */\n@Component({\n tag: 'af-footer',\n styleUrl: 'af-footer.css',\n shadow: false,\n scoped: true,\n})\nexport class AfFooter {\n /** Copyright text (e.g., \"© 2025 Company Name. All rights reserved.\") */\n @Prop() copyrightText: string = '';\n\n /** Status message text */\n @Prop() statusText: string = '';\n\n /** Status page URL */\n @Prop() statusUrl: string = '';\n\n /** Whether systems are operational (shows green/red indicator) */\n @Prop() systemsOperational: boolean = true;\n\n /** Whether to show the status indicator */\n @Prop() showStatus: boolean = true;\n\n render() {\n return (\n <Host>\n <footer class=\"footer\">\n <div class=\"footer__container\">\n {/* Top section */}\n <div class=\"footer__top\">\n {/* Left column - Brand area */}\n <div class=\"footer__brand\">\n <div class=\"footer__brand-card\">\n <div class=\"footer__logo\">\n <slot name=\"logo\"></slot>\n </div>\n <div class=\"footer__social\">\n <slot name=\"social\"></slot>\n </div>\n </div>\n\n <div class=\"footer__contact-card\">\n <slot name=\"contact\"></slot>\n </div>\n </div>\n\n {/* Right section - Navigation columns */}\n <div class=\"footer__nav\">\n <div class=\"footer__nav-columns\">\n <slot name=\"nav\"></slot>\n </div>\n\n {/* Status indicator */}\n {this.showStatus && (\n <div class=\"footer__status\">\n <span class={`footer__status-dot ${this.systemsOperational ? 'footer__status-dot--operational' : 'footer__status-dot--issue'}`}></span>\n <span class=\"footer__status-text\">\n {this.statusText}\n </span>\n {this.statusUrl && (\n <a href={this.statusUrl} target=\"_blank\" rel=\"noopener noreferrer\" class=\"footer__status-link\">\n Learn more\n </a>\n )}\n </div>\n )}\n </div>\n </div>\n\n {/* Bottom section */}\n <div class=\"footer__bottom\">\n {this.copyrightText && (\n <p class=\"footer__copyright\">{this.copyrightText}</p>\n )}\n \n <div class=\"footer__legal\">\n <slot name=\"legal\"></slot>\n </div>\n\n <div class=\"footer__badges\">\n <slot name=\"badges\"></slot>\n </div>\n </div>\n </div>\n </footer>\n </Host>\n );\n }\n}\n"]}
@@ -0,0 +1,32 @@
1
+ :host {
2
+ display: block;
3
+ }
4
+
5
+ .footer-column {
6
+ display: flex;
7
+ flex-direction: column;
8
+ gap: 16px;
9
+ }
10
+
11
+ .footer-column__heading {
12
+ font-family: var(--typography-primaryfont, 'NeuSans', sans-serif);
13
+ font-size: 14px;
14
+ font-weight: 600;
15
+ color: var(--colour-tints-mistGreen-200, #C6D5D1);
16
+ margin: 0;
17
+ text-transform: none;
18
+ }
19
+
20
+ .footer-column__list {
21
+ list-style: none;
22
+ margin: 0;
23
+ padding: 0;
24
+ display: flex;
25
+ flex-direction: column;
26
+ gap: 12px;
27
+ }
28
+
29
+ .footer-column__list ::slotted(li) {
30
+ margin: 0;
31
+ }
32
+
@@ -0,0 +1,51 @@
1
+ import { h, Host } from "@stencil/core";
2
+ /**
3
+ * Footer navigation column component
4
+ * Used within af-footer to create navigation link groups
5
+ */
6
+ export class AfFooterColumn {
7
+ constructor() {
8
+ /** Column heading */
9
+ this.heading = '';
10
+ }
11
+ render() {
12
+ return (h(Host, { key: '8ba73f2f7a90d6a6b7ee33a04d4533b750624256' }, h("div", { key: '5b3f50b63fd0461d64dca4c7a6cbb6ee94ab98f6', class: "footer-column" }, this.heading && (h("h5", { key: '3583cd3ef323471dd2a106281e1522bba5e8dec6', class: "footer-column__heading" }, this.heading)), h("ul", { key: '35334470d9c1fd1832d52169a757a2d5a11cab10', class: "footer-column__list" }, h("slot", { key: 'e37bd4e38617d11fe8bbf931f71d0ff71123770c' })))));
13
+ }
14
+ static get is() { return "af-footer-column"; }
15
+ static get encapsulation() { return "scoped"; }
16
+ static get originalStyleUrls() {
17
+ return {
18
+ "$": ["af-footer-column.css"]
19
+ };
20
+ }
21
+ static get styleUrls() {
22
+ return {
23
+ "$": ["af-footer-column.css"]
24
+ };
25
+ }
26
+ static get properties() {
27
+ return {
28
+ "heading": {
29
+ "type": "string",
30
+ "mutable": false,
31
+ "complexType": {
32
+ "original": "string",
33
+ "resolved": "string",
34
+ "references": {}
35
+ },
36
+ "required": false,
37
+ "optional": false,
38
+ "docs": {
39
+ "tags": [],
40
+ "text": "Column heading"
41
+ },
42
+ "getter": false,
43
+ "setter": false,
44
+ "reflect": false,
45
+ "attribute": "heading",
46
+ "defaultValue": "''"
47
+ }
48
+ };
49
+ }
50
+ }
51
+ //# sourceMappingURL=af-footer-column.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"af-footer-column.js","sourceRoot":"","sources":["../../../src/components/af-footer-column/af-footer-column.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEzD;;;GAGG;AAOH,MAAM,OAAO,cAAc;IAN3B;QAOE,qBAAqB;QACb,YAAO,GAAW,EAAE,CAAC;KAgB9B;IAdC,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH,4DAAK,KAAK,EAAC,eAAe;gBACvB,IAAI,CAAC,OAAO,IAAI,CACf,2DAAI,KAAK,EAAC,wBAAwB,IAAE,IAAI,CAAC,OAAO,CAAM,CACvD;gBACD,2DAAI,KAAK,EAAC,qBAAqB;oBAC7B,8DAAa,CACV,CACD,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Host, Prop } from '@stencil/core';\n\n/**\n * Footer navigation column component\n * Used within af-footer to create navigation link groups\n */\n@Component({\n tag: 'af-footer-column',\n styleUrl: 'af-footer-column.css',\n shadow: false,\n scoped: true,\n})\nexport class AfFooterColumn {\n /** Column heading */\n @Prop() heading: string = '';\n\n render() {\n return (\n <Host>\n <div class=\"footer-column\">\n {this.heading && (\n <h5 class=\"footer-column__heading\">{this.heading}</h5>\n )}\n <ul class=\"footer-column__list\">\n <slot></slot>\n </ul>\n </div>\n </Host>\n );\n }\n}\n\n"]}
@@ -0,0 +1,30 @@
1
+ :host {
2
+ display: contents;
3
+ }
4
+
5
+ li {
6
+ margin: 0;
7
+ list-style: none;
8
+ }
9
+
10
+ .footer-link {
11
+ font-family: var(--typography-primaryfont, 'NeuSans', sans-serif);
12
+ font-size: 14px;
13
+ font-weight: 400;
14
+ color: rgba(198, 213, 209, 0.7);
15
+ text-decoration: none;
16
+ transition: color 0.2s ease;
17
+ display: inline-flex;
18
+ align-items: center;
19
+ gap: 6px;
20
+ }
21
+
22
+ .footer-link:hover {
23
+ color: var(--colour-tints-mistGreen-200, #C6D5D1);
24
+ }
25
+
26
+ .footer-link__external-icon {
27
+ opacity: 0.7;
28
+ flex-shrink: 0;
29
+ }
30
+