@forjacms/sections 1.2.6

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 (211) hide show
  1. package/README.md +185 -0
  2. package/dist/cjs/a11y-IAJPjMwx.js +27 -0
  3. package/dist/cjs/app-globals-V2Kpy_OQ.js +5 -0
  4. package/dist/cjs/forja-blog.cjs.entry.js +16 -0
  5. package/dist/cjs/forja-contact.cjs.entry.js +25 -0
  6. package/dist/cjs/forja-cta.cjs.entry.js +15 -0
  7. package/dist/cjs/forja-divider.cjs.entry.js +19 -0
  8. package/dist/cjs/forja-faq.cjs.entry.js +16 -0
  9. package/dist/cjs/forja-features.cjs.entry.js +16 -0
  10. package/dist/cjs/forja-footer.cjs.entry.js +38 -0
  11. package/dist/cjs/forja-gallery.cjs.entry.js +16 -0
  12. package/dist/cjs/forja-hero.cjs.entry.js +20 -0
  13. package/dist/cjs/forja-legal.cjs.entry.js +46 -0
  14. package/dist/cjs/forja-logo-cloud.cjs.entry.js +20 -0
  15. package/dist/cjs/forja-nav.cjs.entry.js +53 -0
  16. package/dist/cjs/forja-newsletter.cjs.entry.js +24 -0
  17. package/dist/cjs/forja-portfolio.cjs.entry.js +37 -0
  18. package/dist/cjs/forja-pricing.cjs.entry.js +16 -0
  19. package/dist/cjs/forja-projects.cjs.entry.js +16 -0
  20. package/dist/cjs/forja-section-renderer.cjs.entry.js +42 -0
  21. package/dist/cjs/forja-sections.cjs.js +25 -0
  22. package/dist/cjs/forja-stats.cjs.entry.js +20 -0
  23. package/dist/cjs/forja-tag-cloud.cjs.entry.js +16 -0
  24. package/dist/cjs/forja-team.cjs.entry.js +18 -0
  25. package/dist/cjs/forja-testimonials.cjs.entry.js +16 -0
  26. package/dist/cjs/forja-text-block.cjs.entry.js +22 -0
  27. package/dist/cjs/forja-timeline.cjs.entry.js +19 -0
  28. package/dist/cjs/forja-video.cjs.entry.js +30 -0
  29. package/dist/cjs/index-Bp-SZu2Y.js +1754 -0
  30. package/dist/cjs/index.cjs.js +15 -0
  31. package/dist/cjs/loader.cjs.js +13 -0
  32. package/dist/collection/collection-manifest.json +36 -0
  33. package/dist/collection/components/forja-blog/forja-blog.js +132 -0
  34. package/dist/collection/components/forja-contact/forja-contact.js +165 -0
  35. package/dist/collection/components/forja-cta/forja-cta.js +126 -0
  36. package/dist/collection/components/forja-divider/forja-divider.js +57 -0
  37. package/dist/collection/components/forja-faq/forja-faq.js +75 -0
  38. package/dist/collection/components/forja-features/forja-features.js +94 -0
  39. package/dist/collection/components/forja-footer/forja-footer.js +184 -0
  40. package/dist/collection/components/forja-gallery/forja-gallery.js +94 -0
  41. package/dist/collection/components/forja-hero/forja-hero.js +169 -0
  42. package/dist/collection/components/forja-legal/forja-legal.js +289 -0
  43. package/dist/collection/components/forja-logo-cloud/forja-logo-cloud.js +117 -0
  44. package/dist/collection/components/forja-nav/forja-nav.js +215 -0
  45. package/dist/collection/components/forja-newsletter/forja-newsletter.js +141 -0
  46. package/dist/collection/components/forja-portfolio/forja-portfolio.js +163 -0
  47. package/dist/collection/components/forja-pricing/forja-pricing.js +94 -0
  48. package/dist/collection/components/forja-projects/forja-projects.js +94 -0
  49. package/dist/collection/components/forja-section-renderer/forja-section-renderer.js +218 -0
  50. package/dist/collection/components/forja-stats/forja-stats.js +117 -0
  51. package/dist/collection/components/forja-tag-cloud/forja-tag-cloud.js +75 -0
  52. package/dist/collection/components/forja-team/forja-team.js +138 -0
  53. package/dist/collection/components/forja-testimonials/forja-testimonials.js +94 -0
  54. package/dist/collection/components/forja-text-block/forja-text-block.js +99 -0
  55. package/dist/collection/components/forja-timeline/forja-timeline.js +120 -0
  56. package/dist/collection/components/forja-video/forja-video.js +146 -0
  57. package/dist/collection/index.js +4 -0
  58. package/dist/collection/types.js +7 -0
  59. package/dist/collection/utils/a11y.js +22 -0
  60. package/dist/collection/utils/a11y.unit.js +46 -0
  61. package/dist/components/forja-blog.d.ts +11 -0
  62. package/dist/components/forja-blog.js +1 -0
  63. package/dist/components/forja-contact.d.ts +11 -0
  64. package/dist/components/forja-contact.js +1 -0
  65. package/dist/components/forja-cta.d.ts +11 -0
  66. package/dist/components/forja-cta.js +1 -0
  67. package/dist/components/forja-divider.d.ts +11 -0
  68. package/dist/components/forja-divider.js +1 -0
  69. package/dist/components/forja-faq.d.ts +11 -0
  70. package/dist/components/forja-faq.js +1 -0
  71. package/dist/components/forja-features.d.ts +11 -0
  72. package/dist/components/forja-features.js +1 -0
  73. package/dist/components/forja-footer.d.ts +11 -0
  74. package/dist/components/forja-footer.js +1 -0
  75. package/dist/components/forja-gallery.d.ts +11 -0
  76. package/dist/components/forja-gallery.js +1 -0
  77. package/dist/components/forja-hero.d.ts +11 -0
  78. package/dist/components/forja-hero.js +1 -0
  79. package/dist/components/forja-legal.d.ts +11 -0
  80. package/dist/components/forja-legal.js +1 -0
  81. package/dist/components/forja-logo-cloud.d.ts +11 -0
  82. package/dist/components/forja-logo-cloud.js +1 -0
  83. package/dist/components/forja-nav.d.ts +11 -0
  84. package/dist/components/forja-nav.js +1 -0
  85. package/dist/components/forja-newsletter.d.ts +11 -0
  86. package/dist/components/forja-newsletter.js +1 -0
  87. package/dist/components/forja-portfolio.d.ts +11 -0
  88. package/dist/components/forja-portfolio.js +1 -0
  89. package/dist/components/forja-pricing.d.ts +11 -0
  90. package/dist/components/forja-pricing.js +1 -0
  91. package/dist/components/forja-projects.d.ts +11 -0
  92. package/dist/components/forja-projects.js +1 -0
  93. package/dist/components/forja-section-renderer.d.ts +11 -0
  94. package/dist/components/forja-section-renderer.js +1 -0
  95. package/dist/components/forja-stats.d.ts +11 -0
  96. package/dist/components/forja-stats.js +1 -0
  97. package/dist/components/forja-tag-cloud.d.ts +11 -0
  98. package/dist/components/forja-tag-cloud.js +1 -0
  99. package/dist/components/forja-team.d.ts +11 -0
  100. package/dist/components/forja-team.js +1 -0
  101. package/dist/components/forja-testimonials.d.ts +11 -0
  102. package/dist/components/forja-testimonials.js +1 -0
  103. package/dist/components/forja-text-block.d.ts +11 -0
  104. package/dist/components/forja-text-block.js +1 -0
  105. package/dist/components/forja-timeline.d.ts +11 -0
  106. package/dist/components/forja-timeline.js +1 -0
  107. package/dist/components/forja-video.d.ts +11 -0
  108. package/dist/components/forja-video.js +1 -0
  109. package/dist/components/index.d.ts +35 -0
  110. package/dist/components/index.js +1 -0
  111. package/dist/components/p-CTbyYfdB.js +1 -0
  112. package/dist/components/p-DTKnQcqm.js +1 -0
  113. package/dist/define-all.d.ts +2 -0
  114. package/dist/define-all.js +24 -0
  115. package/dist/esm/a11y-CTbyYfdB.js +24 -0
  116. package/dist/esm/app-globals-DQuL1Twl.js +3 -0
  117. package/dist/esm/forja-blog.entry.js +14 -0
  118. package/dist/esm/forja-contact.entry.js +23 -0
  119. package/dist/esm/forja-cta.entry.js +13 -0
  120. package/dist/esm/forja-divider.entry.js +17 -0
  121. package/dist/esm/forja-faq.entry.js +14 -0
  122. package/dist/esm/forja-features.entry.js +14 -0
  123. package/dist/esm/forja-footer.entry.js +36 -0
  124. package/dist/esm/forja-gallery.entry.js +14 -0
  125. package/dist/esm/forja-hero.entry.js +18 -0
  126. package/dist/esm/forja-legal.entry.js +44 -0
  127. package/dist/esm/forja-logo-cloud.entry.js +18 -0
  128. package/dist/esm/forja-nav.entry.js +51 -0
  129. package/dist/esm/forja-newsletter.entry.js +22 -0
  130. package/dist/esm/forja-portfolio.entry.js +35 -0
  131. package/dist/esm/forja-pricing.entry.js +14 -0
  132. package/dist/esm/forja-projects.entry.js +14 -0
  133. package/dist/esm/forja-section-renderer.entry.js +40 -0
  134. package/dist/esm/forja-sections.js +21 -0
  135. package/dist/esm/forja-stats.entry.js +18 -0
  136. package/dist/esm/forja-tag-cloud.entry.js +14 -0
  137. package/dist/esm/forja-team.entry.js +16 -0
  138. package/dist/esm/forja-testimonials.entry.js +14 -0
  139. package/dist/esm/forja-text-block.entry.js +20 -0
  140. package/dist/esm/forja-timeline.entry.js +17 -0
  141. package/dist/esm/forja-video.entry.js +28 -0
  142. package/dist/esm/index-WdE4YutY.js +1747 -0
  143. package/dist/esm/index.js +11 -0
  144. package/dist/esm/loader.js +11 -0
  145. package/dist/forja-sections/forja-sections.esm.js +1 -0
  146. package/dist/forja-sections/index.esm.js +1 -0
  147. package/dist/forja-sections/p-0a820467.entry.js +1 -0
  148. package/dist/forja-sections/p-1b0b71f5.entry.js +1 -0
  149. package/dist/forja-sections/p-1e7249c1.entry.js +1 -0
  150. package/dist/forja-sections/p-27f014b1.entry.js +1 -0
  151. package/dist/forja-sections/p-2834de40.entry.js +1 -0
  152. package/dist/forja-sections/p-2a7f54c6.entry.js +1 -0
  153. package/dist/forja-sections/p-2b3d6388.entry.js +1 -0
  154. package/dist/forja-sections/p-4180bd91.entry.js +1 -0
  155. package/dist/forja-sections/p-57c10a67.entry.js +1 -0
  156. package/dist/forja-sections/p-6e48a255.entry.js +1 -0
  157. package/dist/forja-sections/p-6fa65e05.entry.js +1 -0
  158. package/dist/forja-sections/p-732e854c.entry.js +1 -0
  159. package/dist/forja-sections/p-8787f878.entry.js +1 -0
  160. package/dist/forja-sections/p-9b242e13.entry.js +1 -0
  161. package/dist/forja-sections/p-CTbyYfdB.js +1 -0
  162. package/dist/forja-sections/p-DQuL1Twl.js +1 -0
  163. package/dist/forja-sections/p-WdE4YutY.js +2 -0
  164. package/dist/forja-sections/p-a2cdb548.entry.js +1 -0
  165. package/dist/forja-sections/p-aa20264b.entry.js +1 -0
  166. package/dist/forja-sections/p-b5280312.entry.js +1 -0
  167. package/dist/forja-sections/p-c2c2e0ba.entry.js +1 -0
  168. package/dist/forja-sections/p-c4bccd7e.entry.js +1 -0
  169. package/dist/forja-sections/p-d1b739dd.entry.js +1 -0
  170. package/dist/forja-sections/p-d762878f.entry.js +1 -0
  171. package/dist/forja-sections/p-de808791.entry.js +1 -0
  172. package/dist/forja-sections/p-f24d6578.entry.js +1 -0
  173. package/dist/forja-sections/p-fd969566.entry.js +1 -0
  174. package/dist/index.cjs.js +1 -0
  175. package/dist/index.js +1 -0
  176. package/dist/types/components/forja-blog/forja-blog.d.ts +10 -0
  177. package/dist/types/components/forja-contact/forja-contact.d.ts +13 -0
  178. package/dist/types/components/forja-cta/forja-cta.d.ts +9 -0
  179. package/dist/types/components/forja-divider/forja-divider.d.ts +5 -0
  180. package/dist/types/components/forja-faq/forja-faq.d.ts +7 -0
  181. package/dist/types/components/forja-features/forja-features.d.ts +8 -0
  182. package/dist/types/components/forja-footer/forja-footer.d.ts +11 -0
  183. package/dist/types/components/forja-gallery/forja-gallery.d.ts +8 -0
  184. package/dist/types/components/forja-hero/forja-hero.d.ts +11 -0
  185. package/dist/types/components/forja-legal/forja-legal.d.ts +35 -0
  186. package/dist/types/components/forja-logo-cloud/forja-logo-cloud.d.ts +9 -0
  187. package/dist/types/components/forja-nav/forja-nav.d.ts +23 -0
  188. package/dist/types/components/forja-newsletter/forja-newsletter.d.ts +11 -0
  189. package/dist/types/components/forja-portfolio/forja-portfolio.d.ts +13 -0
  190. package/dist/types/components/forja-pricing/forja-pricing.d.ts +8 -0
  191. package/dist/types/components/forja-projects/forja-projects.d.ts +8 -0
  192. package/dist/types/components/forja-section-renderer/forja-section-renderer.d.ts +13 -0
  193. package/dist/types/components/forja-stats/forja-stats.d.ts +9 -0
  194. package/dist/types/components/forja-tag-cloud/forja-tag-cloud.d.ts +7 -0
  195. package/dist/types/components/forja-team/forja-team.d.ts +10 -0
  196. package/dist/types/components/forja-testimonials/forja-testimonials.d.ts +8 -0
  197. package/dist/types/components/forja-text-block/forja-text-block.d.ts +7 -0
  198. package/dist/types/components/forja-timeline/forja-timeline.d.ts +9 -0
  199. package/dist/types/components/forja-video/forja-video.d.ts +11 -0
  200. package/dist/types/components.d.ts +1010 -0
  201. package/dist/types/index.d.ts +3 -0
  202. package/dist/types/stencil-public-runtime.d.ts +1860 -0
  203. package/dist/types/types.d.ts +235 -0
  204. package/dist/types/utils/a11y.d.ts +11 -0
  205. package/dist/types/utils/a11y.unit.d.ts +1 -0
  206. package/loader/cdn.js +1 -0
  207. package/loader/index.cjs.js +1 -0
  208. package/loader/index.d.ts +24 -0
  209. package/loader/index.es2017.js +1 -0
  210. package/loader/index.js +2 -0
  211. package/package.json +66 -0
@@ -0,0 +1,36 @@
1
+ import { r as registerInstance, h } from './index-WdE4YutY.js';
2
+
3
+ /** SVG path data for known social platforms (24x24 viewBox, fill). */
4
+ const SOCIAL_ICONS = {
5
+ github: '<path d="M12 2C6.477 2 2 6.477 2 12c0 4.42 2.865 8.166 6.839 9.49.5.09.682-.217.682-.482 0-.237-.009-.866-.013-1.7-2.782.603-3.369-1.342-3.369-1.342-.454-1.155-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.003.07 1.531 1.03 1.531 1.03.892 1.529 2.341 1.088 2.91.832.091-.647.35-1.088.636-1.338-2.22-.253-4.555-1.11-4.555-4.943 0-1.091.39-1.984 1.029-2.683-.103-.253-.446-1.27.098-2.647 0 0 .84-.269 2.75 1.025A9.578 9.578 0 0112 6.836c.85.004 1.705.114 2.504.336 1.909-1.294 2.747-1.025 2.747-1.025.546 1.377.203 2.394.1 2.647.64.699 1.028 1.592 1.028 2.683 0 3.842-2.339 4.687-4.566 4.935.359.309.678.919.678 1.852 0 1.336-.012 2.415-.012 2.743 0 .267.18.577.688.48C19.138 20.163 22 16.418 22 12c0-5.523-4.477-10-10-10z"/>',
6
+ twitter: '<path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/>',
7
+ x: '<path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/>',
8
+ linkedin: '<path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 01-2.063-2.065 2.064 2.064 0 112.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/>',
9
+ youtube: '<path d="M23.498 6.186a3.016 3.016 0 00-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 00.502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 002.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 002.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"/>',
10
+ instagram: '<path d="M12 0C8.74 0 8.333.015 7.053.072 5.775.132 4.905.333 4.14.63c-.789.306-1.459.717-2.126 1.384S.935 3.35.63 4.14C.333 4.905.131 5.775.072 7.053.012 8.333 0 8.74 0 12s.015 3.667.072 4.947c.06 1.277.261 2.148.558 2.913a5.885 5.885 0 001.384 2.126A5.868 5.868 0 004.14 23.37c.766.296 1.636.499 2.913.558C8.333 23.988 8.74 24 12 24s3.667-.015 4.947-.072c1.277-.06 2.148-.262 2.913-.558a5.898 5.898 0 002.126-1.384 5.86 5.86 0 001.384-2.126c.296-.765.499-1.636.558-2.913.06-1.28.072-1.687.072-4.947s-.015-3.667-.072-4.947c-.06-1.277-.262-2.149-.558-2.913a5.89 5.89 0 00-1.384-2.126A5.847 5.847 0 0019.86.63c-.765-.297-1.636-.499-2.913-.558C15.667.012 15.26 0 12 0zm0 2.16c3.203 0 3.585.016 4.85.071 1.17.055 1.805.249 2.227.415.562.217.96.477 1.382.896.419.42.679.819.896 1.381.164.422.36 1.057.413 2.227.057 1.266.07 1.646.07 4.85s-.015 3.585-.074 4.85c-.061 1.17-.256 1.805-.421 2.227a3.81 3.81 0 01-.899 1.382 3.744 3.744 0 01-1.38.896c-.42.164-1.065.36-2.235.413-1.274.057-1.649.07-4.859.07-3.211 0-3.586-.015-4.859-.074-1.171-.061-1.816-.256-2.236-.421a3.716 3.716 0 01-1.379-.899 3.644 3.644 0 01-.9-1.38c-.165-.42-.359-1.065-.42-2.235-.045-1.26-.061-1.649-.061-4.844 0-3.196.016-3.586.061-4.861.061-1.17.255-1.814.42-2.234.21-.57.479-.96.9-1.381.419-.419.81-.689 1.379-.898.42-.166 1.051-.361 2.221-.421 1.275-.045 1.65-.06 4.859-.06l.045.03zm0 3.678a6.162 6.162 0 100 12.324 6.162 6.162 0 100-12.324zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm7.846-10.405a1.441 1.441 0 11-2.882 0 1.441 1.441 0 012.882 0z"/>',
11
+ mastodon: '<path d="M23.268 5.313c-.35-2.578-2.617-4.61-5.304-5.004C17.51.242 15.792 0 11.813 0h-.03c-3.98 0-4.835.242-5.288.309C3.882.692 1.496 2.518.917 5.127.64 6.412.61 7.837.661 9.143c.074 1.874.088 3.745.26 5.611.118 1.24.325 2.47.62 3.68.55 2.237 2.777 4.098 4.96 4.857 2.336.792 4.849.923 7.256.38.265-.061.527-.132.786-.213.585-.184 1.27-.39 1.774-.753a.057.057 0 00.023-.043v-1.809a.052.052 0 00-.02-.041.053.053 0 00-.046-.01 20.282 20.282 0 01-4.709.547c-2.73 0-3.463-1.284-3.674-1.818a5.593 5.593 0 01-.319-1.433.053.053 0 01.066-.054 19.648 19.648 0 004.622.536h.348c1.587 0 3.187-.109 4.75-.409 0-.012.035-.013.042-.017 2.1-.407 4.1-1.679 4.309-5.084.008-.138.04-1.46.04-1.602.001-.489.14-3.473-.067-5.309z"/>',
12
+ bluesky: '<path d="M12 10.8c-1.087-2.114-4.046-6.053-6.798-7.995C2.566.944 1.561 1.266.902 1.565.139 1.908 0 3.08 0 3.768c0 .69.378 5.65.624 6.479.785 2.627 3.57 3.493 6.164 3.18-3.636.58-6.84 1.996-2.678 7.035 4.956 5.048 6.564-.485 7.89-3.597.064-.15.114-.266.143-.183.03-.083.08.033.143.183 1.326 3.112 2.934 8.645 7.89 3.597 4.163-5.04.958-6.455-2.678-7.035 2.593.313 5.379-.553 6.164-3.18.246-.829.624-5.789.624-6.479 0-.688-.139-1.86-.902-2.203-.66-.299-1.664-.621-4.3 1.24C16.046 4.748 13.087 8.687 12 10.8z"/>',
13
+ email: '<path d="M1.5 8.67v8.58a3 3 0 003 3h15a3 3 0 003-3V8.67l-8.928 5.493a3 3 0 01-3.144 0L1.5 8.67z"/><path d="M22.5 6.908V6.75a3 3 0 00-3-3h-15a3 3 0 00-3 3v.158l9.714 5.978a1.5 1.5 0 001.572 0L22.5 6.908z"/>',
14
+ };
15
+ const FALLBACK_ICON = '<path d="M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101" stroke="currentColor" stroke-width="2" fill="none"/><path d="M10.172 13.828a4 4 0 005.656 0l4-4a4 4 0 10-5.656-5.656l-1.102 1.101" stroke="currentColor" stroke-width="2" fill="none"/>';
16
+ function getSocialIcon(slug) {
17
+ const key = slug.toLowerCase().replace(/[^a-z]/g, '');
18
+ return SOCIAL_ICONS[key] || FALLBACK_ICON;
19
+ }
20
+ const ForjaFooter = class {
21
+ constructor(hostRef) {
22
+ registerInstance(this, hostRef);
23
+ this.homeHref = '/';
24
+ this.showRss = true;
25
+ this.showSitemap = true;
26
+ this.tagline = 'Built with Forja';
27
+ }
28
+ render() {
29
+ const year = new Date().getFullYear();
30
+ const hasItems = this.items && this.items.length > 0;
31
+ const hasSocial = this.socialLinks && this.socialLinks.length > 0;
32
+ return (h("footer", { key: '1779882162fb8ba27cdf21d26faac13638a4de83', class: "forja-footer" }, h("div", { key: 'b6881c29c09d4b17adc8f328694d9cd7478046c7', class: "forja-footer__content" }, h("div", { key: 'ba569c1ae094dce6c47bfcc85a9d0122b6b0f691', class: "forja-footer__brand" }, this.siteName && (h("a", { key: '1f976458dcdec89824792d27e89177266bd3e253', href: this.homeHref, class: "forja-footer__brand-link" }, this.siteName)), this.tagline && h("p", { key: '0656d9fe9946ab5f5ecc51893a62149ff754e55e', class: "forja-footer__tagline" }, this.tagline)), hasItems && (h("nav", { key: '04e7795e7294f5844f340882a74da59b0e656130', class: "forja-footer__nav", "aria-label": "Footer navigation" }, h("p", { key: 'c4802164c33cf91b85efdb1f2fbda4028ca6809e', class: "forja-footer__nav-heading" }, "Links"), h("ul", { key: '3f8e1d71d014a5fc37df4729a7357bc71f20d2de', class: "forja-footer__nav-list" }, this.items.map(item => (h("li", null, h("a", { href: item.href, target: item.openInNewTab ? '_blank' : undefined, rel: item.openInNewTab ? 'noopener noreferrer' : undefined, class: "forja-footer__nav-link" }, item.title))))))), hasSocial && (h("div", { key: '72d42c4542ad1eca6ebc08a1d251656c9b7575e8', class: "forja-footer__social" }, h("p", { key: 'd78b27344cf900fb2d64106539184709331852f0', class: "forja-footer__nav-heading" }, "Connect"), h("div", { key: 'c1c9009bd10672fd8e19269cc6dd774985d0f7cf', class: "forja-footer__social-links", role: "list", "aria-label": "Social links" }, this.socialLinks.map(link => (h("a", { href: link.url, class: "forja-footer__social-link", target: "_blank", rel: "noopener noreferrer", title: link.title, role: "listitem" }, h("span", { class: "forja-footer__social-icon", "aria-hidden": "true", innerHTML: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16" fill="currentColor">${getSocialIcon(link.icon)}</svg>` }), h("span", { class: "forja-footer__sr-only" }, link.title)))))))), h("div", { key: '604a27ffdbc5bd7b286ca35f649fd9e72c62824f', class: "forja-footer__bottom" }, h("p", { key: '93edabccfab07cacdf5570ac841e4025e58e98a2', class: "forja-footer__copyright" }, "\u00A9 ", year, " ", this.siteName || 'Site', ". All rights reserved."), h("div", { key: '8fc15c5d9e76a21889ce6e8402cf711dc534e608', class: "forja-footer__bottom-links" }, this.showRss && (h("a", { key: '91766e4997d76d43bbfe696eb7ba527615de82ce', href: "/rss.xml", class: "forja-footer__bottom-link", "aria-label": "RSS Feed" }, h("svg", { key: 'c9cb4ee4546eded881660739ad8a9ef39cfb0c19', xmlns: "http://www.w3.org/2000/svg", width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }, h("path", { key: 'e06f360397b49644dde50b094f951b00c2967171', d: "M4 11a9 9 0 0 1 9 9" }), h("path", { key: 'be15bf6ec870c88719d77c50b97ba19f97fa4ba5', d: "M4 4a16 16 0 0 1 16 16" }), h("circle", { key: 'fcfc19bc0c1e28b96cb0002edada579d51d57801', cx: "5", cy: "19", r: "1" })))), this.showSitemap && (h("a", { key: 'c2795cf4063da2bf88b1241ddb93b1d400a1f7ec', href: "/sitemap.xml", class: "forja-footer__bottom-link" }, "Sitemap"))))));
33
+ }
34
+ };
35
+
36
+ export { ForjaFooter as forja_footer };
@@ -0,0 +1,14 @@
1
+ import { r as registerInstance, h } from './index-WdE4YutY.js';
2
+ import { s as sectionLabel } from './a11y-CTbyYfdB.js';
3
+
4
+ const ForjaGallery = class {
5
+ constructor(hostRef) {
6
+ registerInstance(this, hostRef);
7
+ }
8
+ render() {
9
+ const hasItems = this.items && this.items.length > 0;
10
+ return (h("section", { key: 'b895958acc335c7a586411465baa3e5f63b96298', class: "forja-gallery", "aria-label": sectionLabel(this.sectionTitle, 'Gallery') }, h("slot", { key: 'b11fe68eba917a5ba6494211ebfece03088c1d12', name: "before" }), this.sectionTitle && h("h2", { key: 'fd8b6ba0c5a51a4add4d1f4bada6691efe1ccaba', class: "forja-gallery__title" }, this.sectionTitle), this.text && h("div", { key: '99e0f4a727481d965f08c6e6028bd43472908f28', class: "forja-gallery__text", innerHTML: this.text }), hasItems ? (h("div", { class: "forja-gallery__grid", role: "list", "data-columns": this.columns }, this.items.map(item => (h("figure", { class: "forja-gallery__item", role: "listitem" }, h("img", { src: item.imageUrl, alt: item.alt || '', class: "forja-gallery__image", loading: "lazy" }), item.caption && h("figcaption", { class: "forja-gallery__caption" }, item.caption)))))) : (h("div", { class: "forja-gallery__grid", role: "list", "data-columns": this.columns }, h("slot", null))), h("slot", { key: '6aabc6822879290b15894b9f02b58e43205a9d75', name: "after" })));
11
+ }
12
+ };
13
+
14
+ export { ForjaGallery as forja_gallery };
@@ -0,0 +1,18 @@
1
+ import { r as registerInstance, h } from './index-WdE4YutY.js';
2
+ import { s as sectionLabel } from './a11y-CTbyYfdB.js';
3
+
4
+ const ForjaHero = class {
5
+ constructor(hostRef) {
6
+ registerInstance(this, hostRef);
7
+ }
8
+ render() {
9
+ const classes = [
10
+ 'forja-hero',
11
+ this.fullWidth && 'forja-hero--full-width',
12
+ this.gradient && 'forja-hero--gradient',
13
+ ].filter(Boolean).join(' ');
14
+ return (h("section", { key: '43ec04aba0825c70330d5a9f22d6a7c4168cabad', class: classes, "aria-label": sectionLabel(this.sectionTitle, 'Hero') }, h("slot", { key: 'be9b16694a02aee3fe1ae96ab4bdd822ad1c0b96', name: "before" }), this.imageUrl && (h("img", { key: 'd41247eb3ddb7d6782f6fdbb6df7545e20c66c2b', src: this.imageUrl, alt: this.imageAlt || '', class: "forja-hero__image", loading: "eager" })), h("div", { key: '9545c4a55a85f3309a61afa5c7249ae84c183e86', class: "forja-hero__content" }, this.sectionTitle && h("h2", { key: '1f77acc32f1aae7af9d8afaabd09fc8d2a940af6', class: "forja-hero__title" }, this.sectionTitle), this.text && h("div", { key: '9d95c5669bd63d68a82206740e18edace7b22ef4', class: "forja-hero__text", innerHTML: this.text }), this.buttonText && this.buttonHref && (h("a", { key: 'ae33f3e16544486aef89a2f33e4e0361a9a1a3ca', href: this.buttonHref, class: "forja-hero__cta" }, this.buttonText))), h("slot", { key: '9fce9221736717aa80332eea4b981233a896a38c', name: "after" })));
15
+ }
16
+ };
17
+
18
+ export { ForjaHero as forja_hero };
@@ -0,0 +1,44 @@
1
+ import { r as registerInstance, h } from './index-WdE4YutY.js';
2
+ import { s as sectionLabel } from './a11y-CTbyYfdB.js';
3
+ import { LEGAL_DOC_TYPE_LABELS } from './index.js';
4
+
5
+ const ForjaLegal = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ // ── Visibility toggles ─────────────────────────────────
9
+ /** Show the document type badge. Default: true. */
10
+ this.showDocumentType = true;
11
+ /** Show the version number. Default: true. */
12
+ this.showVersion = true;
13
+ /** Show the effective / updated date. Default: true. */
14
+ this.showDates = true;
15
+ /** Show the introductory summary above the body. Default: true. */
16
+ this.showIntro = true;
17
+ }
18
+ formatDate(iso) {
19
+ try {
20
+ return new Date(iso).toLocaleDateString(undefined, {
21
+ year: 'numeric',
22
+ month: 'long',
23
+ day: 'numeric',
24
+ });
25
+ }
26
+ catch (_a) {
27
+ return iso;
28
+ }
29
+ }
30
+ hasMetadata() {
31
+ return ((this.showDocumentType && !!this.documentType) ||
32
+ (this.showVersion && this.version != null) ||
33
+ (this.showDates && !!(this.effectiveDate || this.updatedAt || this.createdAt)));
34
+ }
35
+ render() {
36
+ const typeLabel = this.documentType
37
+ ? LEGAL_DOC_TYPE_LABELS[this.documentType] || this.documentType
38
+ : undefined;
39
+ const displayDate = this.effectiveDate || this.updatedAt || this.createdAt;
40
+ return (h("article", { key: 'cc8f30680c29057c92c9974711069119d486baf0', class: "forja-legal", "aria-label": sectionLabel(this.sectionTitle, 'Legal document') }, h("header", { key: '4722e587aaaa5aafd1d5b87373366e037cb56f9f', class: "forja-legal__header" }, this.sectionTitle && h("h1", { key: '8ddda4f7eb1e06edcf0fb2ef151858f6359ed954', class: "forja-legal__title" }, this.sectionTitle), this.hasMetadata() && (h("div", { key: '5c344b92507b3961ba809c5c5ed2b3d436712a4a', class: "forja-legal__meta" }, this.showDocumentType && typeLabel && (h("span", { key: '18ee032889dc39068301751885f0077777095779', class: "forja-legal__type" }, typeLabel)), this.showVersion && this.version != null && (h("span", { key: '62cddb2b691bd00ac0f81e58a5707d9bce43b91c', class: "forja-legal__version" }, "Version ", this.version)), this.showDates && displayDate && (h("time", { key: 'e631e74a06ef96fb3e6d663516e2a8d7e55332cb', class: "forja-legal__date", dateTime: displayDate }, this.effectiveDate ? 'Effective ' : 'Updated ', this.formatDate(displayDate)))))), this.showIntro && this.intro && (h("div", { key: 'e621eccaf2fa1c0059cc7699de0a80c833c2bb8b', class: "forja-legal__intro", innerHTML: this.intro })), this.body ? (h("div", { class: "forja-legal__body", innerHTML: this.body })) : (h("div", { class: "forja-legal__body" }, h("slot", null)))));
41
+ }
42
+ };
43
+
44
+ export { ForjaLegal as forja_legal };
@@ -0,0 +1,18 @@
1
+ import { r as registerInstance, h } from './index-WdE4YutY.js';
2
+ import { s as sectionLabel } from './a11y-CTbyYfdB.js';
3
+
4
+ const ForjaLogoCloud = class {
5
+ constructor(hostRef) {
6
+ registerInstance(this, hostRef);
7
+ }
8
+ render() {
9
+ const hasLogos = this.logos && this.logos.length > 0;
10
+ const classes = [
11
+ 'forja-logo-cloud',
12
+ this.grayscale && 'forja-logo-cloud--grayscale',
13
+ ].filter(Boolean).join(' ');
14
+ return (h("section", { key: 'cd65ea26049ceb3de18436c961990573c548b8ae', class: classes, "aria-label": sectionLabel(this.sectionTitle, 'Partners') }, h("slot", { key: '8477f0f53553d808a63b3fe241541b0625248828', name: "before" }), this.sectionTitle && h("h2", { key: '09e073ab7deb7ce27bf0f7e5801b10f60840b732', class: "forja-logo-cloud__title" }, this.sectionTitle), this.text && h("div", { key: 'ab4cd6049231cfda659fc191fd560143027bb3c0', class: "forja-logo-cloud__text", innerHTML: this.text }), hasLogos ? (h("ul", { class: "forja-logo-cloud__grid", role: "list", "data-columns": this.columns }, this.logos.map(logo => (h("li", { class: "forja-logo-cloud__item" }, logo.href ? (h("a", { href: logo.href, class: "forja-logo-cloud__link", target: "_blank", rel: "noopener" }, h("img", { src: logo.imageUrl, alt: logo.alt, class: "forja-logo-cloud__image", loading: "lazy" }))) : (h("img", { src: logo.imageUrl, alt: logo.alt, class: "forja-logo-cloud__image", loading: "lazy" }))))))) : (h("slot", null)), h("slot", { key: 'a56c182cd2090916395563b0c30fe21c929d1353', name: "after" })));
15
+ }
16
+ };
17
+
18
+ export { ForjaLogoCloud as forja_logo_cloud };
@@ -0,0 +1,51 @@
1
+ import { r as registerInstance, c as createEvent, h } from './index-WdE4YutY.js';
2
+
3
+ const ForjaNav = class {
4
+ constructor(hostRef) {
5
+ registerInstance(this, hostRef);
6
+ this.forjaThemeToggle = createEvent(this, "forjaThemeToggle");
7
+ this.forjaLocaleChange = createEvent(this, "forjaLocaleChange");
8
+ this.homeHref = '/';
9
+ this.showThemeToggle = true;
10
+ this.mobileOpen = false;
11
+ this.localeDropdownOpen = false;
12
+ this.toggleMobile = () => {
13
+ this.mobileOpen = !this.mobileOpen;
14
+ };
15
+ this.toggleLocaleDropdown = () => {
16
+ this.localeDropdownOpen = !this.localeDropdownOpen;
17
+ };
18
+ this.selectLocale = (code) => {
19
+ this.localeDropdownOpen = false;
20
+ this.forjaLocaleChange.emit(code);
21
+ };
22
+ this.handleThemeToggle = () => {
23
+ this.forjaThemeToggle.emit();
24
+ };
25
+ }
26
+ renderNavLink(item) {
27
+ return (h("a", { href: item.href, target: item.openInNewTab ? '_blank' : undefined, rel: item.openInNewTab ? 'noopener noreferrer' : undefined, class: "forja-nav__link" }, item.title));
28
+ }
29
+ renderDesktopItem(item) {
30
+ if (item.children && item.children.length > 0) {
31
+ return (h("div", { class: "forja-nav__dropdown" }, h("a", { href: item.href, target: item.openInNewTab ? '_blank' : undefined, rel: item.openInNewTab ? 'noopener noreferrer' : undefined, class: "forja-nav__link" }, item.title), h("div", { class: "forja-nav__dropdown-menu" }, item.children.map(child => (h("a", { href: child.href, target: child.openInNewTab ? '_blank' : undefined, rel: child.openInNewTab ? 'noopener noreferrer' : undefined, class: "forja-nav__dropdown-item" }, child.title))))));
32
+ }
33
+ return this.renderNavLink(item);
34
+ }
35
+ renderThemeToggle() {
36
+ if (!this.showThemeToggle)
37
+ return null;
38
+ return (h("button", { type: "button", "aria-label": "Toggle dark mode", class: "forja-nav__theme-toggle", onClick: this.handleThemeToggle }, h("svg", { class: "forja-nav__icon-moon", xmlns: "http://www.w3.org/2000/svg", width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }, h("path", { d: "M21 12.79A9 9 0 1111.21 3a7 7 0 009.79 9.79z" })), h("svg", { class: "forja-nav__icon-sun", xmlns: "http://www.w3.org/2000/svg", width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }, h("circle", { cx: "12", cy: "12", r: "5" }), h("line", { x1: "12", y1: "1", x2: "12", y2: "3" }), h("line", { x1: "12", y1: "21", x2: "12", y2: "23" }), h("line", { x1: "4.22", y1: "4.22", x2: "5.64", y2: "5.64" }), h("line", { x1: "18.36", y1: "18.36", x2: "19.78", y2: "19.78" }), h("line", { x1: "1", y1: "12", x2: "3", y2: "12" }), h("line", { x1: "21", y1: "12", x2: "23", y2: "12" }), h("line", { x1: "4.22", y1: "19.78", x2: "5.64", y2: "18.36" }), h("line", { x1: "18.36", y1: "5.64", x2: "19.78", y2: "4.22" }))));
39
+ }
40
+ renderLocaleSwitcher() {
41
+ if (!this.locales || this.locales.length <= 1)
42
+ return null;
43
+ return (h("div", { class: "forja-nav__locale-switcher" }, h("button", { type: "button", "aria-label": "Switch language", class: "forja-nav__locale-toggle", onClick: this.toggleLocaleDropdown }, this.currentLocale || 'en'), this.localeDropdownOpen && (h("div", { class: "forja-nav__locale-dropdown" }, this.locales.map(locale => (h("button", { type: "button", class: `forja-nav__locale-option${locale.code === this.currentLocale ? ' forja-nav__locale-option--active' : ''}`, onClick: () => this.selectLocale(locale.code) }, locale.name)))))));
44
+ }
45
+ render() {
46
+ const navItems = this.items || [];
47
+ return (h("nav", { key: 'd53286c5cb8ab3a53d319bfc4f56261f14bbd0e7', class: "forja-nav", "aria-label": "Main navigation" }, h("div", { key: 'f6ddbb63413194a4c9b65f28685c856794da9085', class: "forja-nav__container" }, this.siteName && (h("a", { key: '18bf629d717e2bf64da5705900bde85958a4efcc', href: this.homeHref, class: "forja-nav__brand" }, this.siteName)), h("div", { key: '60df3ad46c3d3d8c69ad94956d40e50713143fe1', class: "forja-nav__desktop" }, navItems.map(item => this.renderDesktopItem(item)), this.renderLocaleSwitcher(), this.renderThemeToggle()), h("button", { key: '5a11fece72449bb05dfab14a49dc0e4cb08b3030', type: "button", "aria-label": "Toggle navigation", class: "forja-nav__hamburger", onClick: this.toggleMobile }, h("svg", { key: '19ca0c78e8a9d2c0566f5722e058fe6bfdfa5e26', xmlns: "http://www.w3.org/2000/svg", width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }, h("line", { key: '1a61567b4a0e80d1b924a8ddd82e6565e9c87896', x1: "3", y1: "12", x2: "21", y2: "12" }), h("line", { key: 'd57ae9589e5369942d48698b0842bd3390130747', x1: "3", y1: "6", x2: "21", y2: "6" }), h("line", { key: 'dc58d5f24249e2989ce33f7a366d6926a7408496', x1: "3", y1: "18", x2: "21", y2: "18" })))), this.mobileOpen && (h("div", { key: 'c2ae6b8da7095d8851196fc22b2e10bf7abce3b9', class: "forja-nav__mobile" }, navItems.map(item => (h("a", { href: item.href, target: item.openInNewTab ? '_blank' : undefined, rel: item.openInNewTab ? 'noopener noreferrer' : undefined, class: "forja-nav__mobile-link" }, item.title))), this.renderThemeToggle()))));
48
+ }
49
+ };
50
+
51
+ export { ForjaNav as forja_nav };
@@ -0,0 +1,22 @@
1
+ import { r as registerInstance, c as createEvent, h } from './index-WdE4YutY.js';
2
+ import { a as sectionId, s as sectionLabel } from './a11y-CTbyYfdB.js';
3
+
4
+ const ForjaNewsletter = class {
5
+ constructor(hostRef) {
6
+ registerInstance(this, hostRef);
7
+ this.forjaSubmit = createEvent(this, "forjaSubmit");
8
+ this.buttonText = 'Subscribe';
9
+ this.handleSubmit = (e) => {
10
+ e.preventDefault();
11
+ const form = e.target;
12
+ this.forjaSubmit.emit(new FormData(form));
13
+ };
14
+ }
15
+ render() {
16
+ const emailId = sectionId(this.sectionTitle, 'newsletter-email');
17
+ const nameId = sectionId(this.sectionTitle, 'newsletter-name');
18
+ return (h("section", { key: '2b01646d3aa10d12c9568551edc2f8836a1e6199', class: "forja-newsletter", "aria-label": sectionLabel(this.sectionTitle, 'Newsletter') }, h("slot", { key: '020fd3a2e10a86f6bec4f9499e217818c534885f', name: "before" }), this.sectionTitle && h("h2", { key: 'e540517a30deb49e8d3b1271b8099fe2c5167f02', class: "forja-newsletter__title" }, this.sectionTitle), this.text && h("div", { key: 'c31f0ad333733992f426ca1b564a609603ce7f43', class: "forja-newsletter__text", innerHTML: this.text }), h("form", { key: '08ba3a98b082670794797a08048ab1cc683aaef4', class: "forja-newsletter__form", action: this.formAction, method: this.formAction ? 'post' : undefined, onSubmit: this.handleSubmit }, this.showName && (h("div", { key: '9537213f04bdd4d2e2008a783bc70a7e7a268865', class: "forja-newsletter__field" }, h("label", { key: '8feb551b009eb8f288cbcb54b18360c9fe09a694', class: "forja-newsletter__label", htmlFor: nameId }, "Name"), h("input", { key: 'b2df119a4d000e46a8e1cfb1ab2a2514be2f28a4', id: nameId, name: "name", type: "text", class: "forja-newsletter__input" }))), h("div", { key: '7fff741fe589ee3bc7f5eb278f07dfb78a4363c1', class: "forja-newsletter__field" }, h("label", { key: '2dda48f90d5303de371101b1da09e0402291a704', class: "forja-newsletter__label", htmlFor: emailId }, "Email"), h("input", { key: '7c913bcd86483511926cd2c6df3b2d8fae202a3b', id: emailId, name: "email", type: "email", class: "forja-newsletter__input", required: true, "aria-required": "true" })), h("button", { key: '374357cafdc13172944199b9537f32fa252fa274', type: "submit", class: "forja-newsletter__submit" }, this.buttonText)), h("slot", { key: '253f3650ec3839083c2ef1a768c78627fef141b3', name: "after" })));
19
+ }
20
+ };
21
+
22
+ export { ForjaNewsletter as forja_newsletter };
@@ -0,0 +1,35 @@
1
+ import { r as registerInstance, h } from './index-WdE4YutY.js';
2
+ import { s as sectionLabel } from './a11y-CTbyYfdB.js';
3
+
4
+ const ForjaPortfolio = class {
5
+ constructor(hostRef) {
6
+ registerInstance(this, hostRef);
7
+ }
8
+ renderExperiences() {
9
+ if (!this.experiences || this.experiences.length === 0)
10
+ return null;
11
+ return (h("div", { class: "forja-portfolio__experiences" }, h("h3", { class: "forja-portfolio__group-title" }, "Experience"), h("ol", { class: "forja-portfolio__list" }, this.experiences.map(exp => (h("li", { class: "forja-portfolio__entry" }, h("article", { class: "forja-portfolio__card" }, exp.logoUrl && (h("img", { src: exp.logoUrl, alt: "", class: "forja-portfolio__logo", loading: "lazy" })), h("div", { class: "forja-portfolio__details" }, h("h4", { class: "forja-portfolio__role" }, exp.role), h("p", { class: "forja-portfolio__company" }, exp.company), exp.period && h("time", { class: "forja-portfolio__period" }, exp.period), exp.description && (h("div", { class: "forja-portfolio__description", innerHTML: exp.description }))))))))));
12
+ }
13
+ renderEducation() {
14
+ if (!this.education || this.education.length === 0)
15
+ return null;
16
+ return (h("div", { class: "forja-portfolio__education" }, h("h3", { class: "forja-portfolio__group-title" }, "Education"), h("ol", { class: "forja-portfolio__list" }, this.education.map(edu => (h("li", { class: "forja-portfolio__entry" }, h("article", { class: "forja-portfolio__card" }, h("div", { class: "forja-portfolio__details" }, h("h4", { class: "forja-portfolio__role" }, edu.degree), h("p", { class: "forja-portfolio__company" }, edu.institution), edu.period && h("time", { class: "forja-portfolio__period" }, edu.period), edu.description && (h("div", { class: "forja-portfolio__description", innerHTML: edu.description }))))))))));
17
+ }
18
+ renderSkills() {
19
+ if (!this.skills || this.skills.length === 0)
20
+ return null;
21
+ const grouped = this.skills.reduce((acc, skill) => {
22
+ const cat = skill.category || 'General';
23
+ if (!acc[cat])
24
+ acc[cat] = [];
25
+ acc[cat].push(skill);
26
+ return acc;
27
+ }, {});
28
+ return (h("div", { class: "forja-portfolio__skills" }, h("h3", { class: "forja-portfolio__group-title" }, "Skills"), Object.entries(grouped).map(([category, items]) => (h("div", { class: "forja-portfolio__skill-group" }, Object.keys(grouped).length > 1 && (h("h4", { class: "forja-portfolio__skill-category" }, category)), h("ul", { class: "forja-portfolio__skill-list", "data-columns": this.columns }, items.map(skill => (h("li", { class: "forja-portfolio__skill" }, skill.name)))))))));
29
+ }
30
+ render() {
31
+ return (h("section", { key: '96e2ad1a4250c58f0785ccf1dcf38c7ac5b8d53a', class: "forja-portfolio", "aria-label": sectionLabel(this.sectionTitle, 'Portfolio') }, h("slot", { key: 'a4f4d1379d09a2019e5e92de5bf0f65d8a78bf62', name: "before" }), this.sectionTitle && h("h2", { key: '3419d7e33cda89d94ad2166c02df2b5451715ca7', class: "forja-portfolio__title" }, this.sectionTitle), this.text && h("div", { key: '1dc200413658bde80829bd57b166772e6e27b8be', class: "forja-portfolio__text", innerHTML: this.text }), this.renderExperiences(), this.renderEducation(), this.renderSkills(), h("slot", { key: '4ea0373f8e21524b516dd3f4b5a967acd3c7d7cf', name: "after" })));
32
+ }
33
+ };
34
+
35
+ export { ForjaPortfolio as forja_portfolio };
@@ -0,0 +1,14 @@
1
+ import { r as registerInstance, h } from './index-WdE4YutY.js';
2
+ import { s as sectionLabel } from './a11y-CTbyYfdB.js';
3
+
4
+ const ForjaPricing = class {
5
+ constructor(hostRef) {
6
+ registerInstance(this, hostRef);
7
+ }
8
+ render() {
9
+ const hasTiers = this.tiers && this.tiers.length > 0;
10
+ return (h("section", { key: 'bae1df3d72dc351c1e55506fdfaad535f45814f6', class: "forja-pricing", "aria-label": sectionLabel(this.sectionTitle, 'Pricing') }, h("slot", { key: '343e7d5490dfc07cc2024661d404b1c2a44c46a9', name: "before" }), (this.sectionTitle || this.text) && (h("div", { key: 'e91c8e1945da57bc28bbc6ee09b72dca1dd03d22', class: "forja-pricing__header" }, this.sectionTitle && h("h2", { key: '81000892bb72e034613283df85928c1c667a4f95', class: "forja-pricing__title" }, this.sectionTitle), this.text && h("div", { key: '56363c268fb40a5512ab90005463bf43402e8c2f', class: "forja-pricing__text", innerHTML: this.text }))), hasTiers ? (h("div", { class: "forja-pricing__tiers", role: "list", "data-columns": this.columns }, this.tiers.map(tier => (h("div", { class: `forja-pricing__tier${tier.highlighted ? ' forja-pricing__tier--highlighted' : ''}`, role: "listitem" }, h("h3", { class: "forja-pricing__tier-name" }, tier.name), h("div", { class: "forja-pricing__price" }, h("span", { class: "forja-pricing__amount" }, tier.price), tier.period && h("span", { class: "forja-pricing__period" }, tier.period)), tier.description && h("p", { class: "forja-pricing__description" }, tier.description), tier.features && tier.features.length > 0 && (h("ul", { class: "forja-pricing__features" }, tier.features.map(feature => (h("li", { class: "forja-pricing__feature" }, feature))))), tier.buttonText && tier.buttonHref && (h("a", { href: tier.buttonHref, class: "forja-pricing__cta" }, tier.buttonText))))))) : (h("div", { class: "forja-pricing__tiers", role: "list", "data-columns": this.columns }, h("slot", null))), h("slot", { key: 'd4ed110c1c8ab8a865ba7c1066caf5867c36494c', name: "after" })));
11
+ }
12
+ };
13
+
14
+ export { ForjaPricing as forja_pricing };
@@ -0,0 +1,14 @@
1
+ import { r as registerInstance, h } from './index-WdE4YutY.js';
2
+ import { s as sectionLabel } from './a11y-CTbyYfdB.js';
3
+
4
+ const ForjaProjects = class {
5
+ constructor(hostRef) {
6
+ registerInstance(this, hostRef);
7
+ }
8
+ render() {
9
+ const hasItems = this.items && this.items.length > 0;
10
+ return (h("section", { key: '15db32b9f5878409c28debb36ded1047f657ce2a', class: "forja-projects", "aria-label": sectionLabel(this.sectionTitle, 'Projects') }, h("slot", { key: 'f5dd2f0ca808fcfeaa11c4006dfaa88723ea4a47', name: "before" }), this.sectionTitle && h("h2", { key: 'fd5e121eb42bba78d4dc5b2719c1129182ebc030', class: "forja-projects__title" }, this.sectionTitle), this.text && h("div", { key: 'dd82836aaf6934f7420fa2cce02e9574e27b4781', class: "forja-projects__text", innerHTML: this.text }), hasItems ? (h("div", { class: "forja-projects__grid", role: "list", "data-columns": this.columns }, this.items.map(item => (h("article", { class: "forja-projects__card", role: "listitem" }, item.imageUrl && (h("img", { src: item.imageUrl, alt: "", class: "forja-projects__image", loading: "lazy" })), h("div", { class: "forja-projects__content" }, h("div", { class: "forja-projects__header" }, h("h3", { class: "forja-projects__name" }, item.href ? (h("a", { href: item.href, class: "forja-projects__link" }, item.title)) : (item.title)), item.status && (h("span", { class: "forja-projects__status" }, item.status))), item.description && (h("div", { class: "forja-projects__description", innerHTML: item.description })), item.tags && item.tags.length > 0 && (h("ul", { class: "forja-projects__tags" }, item.tags.map(tag => (h("li", { class: "forja-projects__tag" }, tag))))))))))) : (h("slot", null)), h("slot", { key: 'b7772bead8f5c04f3b3e857bc9da18adc29e38b7', name: "after" })));
11
+ }
12
+ };
13
+
14
+ export { ForjaProjects as forja_projects };
@@ -0,0 +1,40 @@
1
+ import { r as registerInstance, h } from './index-WdE4YutY.js';
2
+
3
+ const TAG_MAP = {
4
+ Hero: 'forja-hero',
5
+ Features: 'forja-features',
6
+ Cta: 'forja-cta',
7
+ Gallery: 'forja-gallery',
8
+ Testimonials: 'forja-testimonials',
9
+ Pricing: 'forja-pricing',
10
+ Faq: 'forja-faq',
11
+ Contact: 'forja-contact',
12
+ Stats: 'forja-stats',
13
+ Team: 'forja-team',
14
+ Timeline: 'forja-timeline',
15
+ LogoCloud: 'forja-logo-cloud',
16
+ Newsletter: 'forja-newsletter',
17
+ Video: 'forja-video',
18
+ Divider: 'forja-divider',
19
+ Text: 'forja-text-block',
20
+ Portfolio: 'forja-portfolio',
21
+ TagCloud: 'forja-tag-cloud',
22
+ Projects: 'forja-projects',
23
+ Blog: 'forja-blog',
24
+ Legal: 'forja-legal',
25
+ };
26
+ const ForjaSectionRenderer = class {
27
+ constructor(hostRef) {
28
+ registerInstance(this, hostRef);
29
+ }
30
+ render() {
31
+ const tag = TAG_MAP[this.sectionType];
32
+ if (!tag) {
33
+ return (h("section", { class: "forja-custom" }, this.sectionTitle && h("h2", { class: "forja-custom__title" }, this.sectionTitle), this.text && h("div", { class: "forja-custom__text", innerHTML: this.text }), h("slot", null)));
34
+ }
35
+ const Tag = tag;
36
+ return (h(Tag, { sectionTitle: this.sectionTitle, text: this.text, imageUrl: this.imageUrl, imageAlt: this.imageAlt, buttonText: this.buttonText, buttonHref: this.buttonHref, items: this.items }, h("slot", null)));
37
+ }
38
+ };
39
+
40
+ export { ForjaSectionRenderer as forja_section_renderer };
@@ -0,0 +1,21 @@
1
+ import { p as promiseResolve, b as bootstrapLazy } from './index-WdE4YutY.js';
2
+ export { s as setNonce } from './index-WdE4YutY.js';
3
+ import { g as globalScripts } from './app-globals-DQuL1Twl.js';
4
+
5
+ /*
6
+ Stencil Client Patch Browser v4.43.3 | MIT Licensed | https://stenciljs.com
7
+ */
8
+
9
+ var patchBrowser = () => {
10
+ const importMeta = import.meta.url;
11
+ const opts = {};
12
+ if (importMeta !== "") {
13
+ opts.resourcesUrl = new URL(".", importMeta).href;
14
+ }
15
+ return promiseResolve(opts);
16
+ };
17
+
18
+ patchBrowser().then(async (options) => {
19
+ await globalScripts();
20
+ return bootstrapLazy([["forja-blog",[[260,"forja-blog",{"sectionTitle":[1,"section-title"],"text":[1],"posts":[16],"columns":[2],"buttonText":[1,"button-text"],"buttonHref":[1,"button-href"]}]]],["forja-contact",[[260,"forja-contact",{"sectionTitle":[1,"section-title"],"text":[1],"buttonText":[1,"button-text"],"buttonHref":[1,"button-href"],"fields":[16],"formAction":[1,"form-action"]}]]],["forja-cta",[[260,"forja-cta",{"sectionTitle":[1,"section-title"],"text":[1],"buttonText":[1,"button-text"],"buttonHref":[1,"button-href"],"imageUrl":[1,"image-url"],"imageAlt":[1,"image-alt"]}]]],["forja-divider",[[0,"forja-divider",{"dividerStyle":[1,"divider-style"],"label":[1]}]]],["forja-faq",[[260,"forja-faq",{"sectionTitle":[1,"section-title"],"text":[1],"items":[16]}]]],["forja-features",[[260,"forja-features",{"sectionTitle":[1,"section-title"],"text":[1],"items":[16],"columns":[2]}]]],["forja-footer",[[0,"forja-footer",{"siteName":[1,"site-name"],"homeHref":[1,"home-href"],"items":[16],"socialLinks":[16],"showRss":[4,"show-rss"],"showSitemap":[4,"show-sitemap"],"tagline":[1]}]]],["forja-gallery",[[260,"forja-gallery",{"sectionTitle":[1,"section-title"],"text":[1],"items":[16],"columns":[2]}]]],["forja-hero",[[260,"forja-hero",{"sectionTitle":[1,"section-title"],"text":[1],"imageUrl":[1,"image-url"],"imageAlt":[1,"image-alt"],"buttonText":[1,"button-text"],"buttonHref":[1,"button-href"],"fullWidth":[4,"full-width"],"gradient":[4]}]]],["forja-legal",[[260,"forja-legal",{"sectionTitle":[1,"section-title"],"intro":[1],"body":[1],"documentType":[1,"document-type"],"version":[2],"createdAt":[1,"created-at"],"updatedAt":[1,"updated-at"],"effectiveDate":[1,"effective-date"],"showDocumentType":[4,"show-document-type"],"showVersion":[4,"show-version"],"showDates":[4,"show-dates"],"showIntro":[4,"show-intro"]}]]],["forja-logo-cloud",[[260,"forja-logo-cloud",{"sectionTitle":[1,"section-title"],"text":[1],"logos":[16],"columns":[2],"grayscale":[4]}]]],["forja-nav",[[0,"forja-nav",{"siteName":[1,"site-name"],"homeHref":[1,"home-href"],"items":[16],"locales":[16],"currentLocale":[1,"current-locale"],"showThemeToggle":[4,"show-theme-toggle"],"mobileOpen":[32],"localeDropdownOpen":[32]}]]],["forja-newsletter",[[260,"forja-newsletter",{"sectionTitle":[1,"section-title"],"text":[1],"buttonText":[1,"button-text"],"formAction":[1,"form-action"],"showName":[4,"show-name"]}]]],["forja-portfolio",[[260,"forja-portfolio",{"sectionTitle":[1,"section-title"],"text":[1],"experiences":[16],"education":[16],"skills":[16],"columns":[2]}]]],["forja-pricing",[[260,"forja-pricing",{"sectionTitle":[1,"section-title"],"text":[1],"tiers":[16],"columns":[2]}]]],["forja-projects",[[260,"forja-projects",{"sectionTitle":[1,"section-title"],"text":[1],"items":[16],"columns":[2]}]]],["forja-section-renderer",[[260,"forja-section-renderer",{"sectionType":[1,"section-type"],"sectionTitle":[1,"section-title"],"text":[1],"imageUrl":[1,"image-url"],"imageAlt":[1,"image-alt"],"buttonText":[1,"button-text"],"buttonHref":[1,"button-href"],"items":[16],"settings":[16]}]]],["forja-stats",[[260,"forja-stats",{"sectionTitle":[1,"section-title"],"text":[1],"items":[16],"columns":[2],"statsStyle":[1,"stats-style"]}]]],["forja-tag-cloud",[[260,"forja-tag-cloud",{"sectionTitle":[1,"section-title"],"text":[1],"tags":[16]}]]],["forja-team",[[260,"forja-team",{"sectionTitle":[1,"section-title"],"text":[1],"members":[16],"columns":[2],"showRole":[4,"show-role"],"showBio":[4,"show-bio"]}]]],["forja-testimonials",[[260,"forja-testimonials",{"sectionTitle":[1,"section-title"],"text":[1],"items":[16],"columns":[2]}]]],["forja-text-block",[[260,"forja-text-block",{"sectionTitle":[1,"section-title"],"text":[1],"width":[1],"alignment":[1]}]]],["forja-timeline",[[260,"forja-timeline",{"sectionTitle":[1,"section-title"],"text":[1],"events":[16],"layout":[1],"showDates":[4,"show-dates"]}]]],["forja-video",[[260,"forja-video",{"sectionTitle":[1,"section-title"],"text":[1],"videoUrl":[1,"video-url"],"provider":[1],"autoplay":[4],"aspectRatio":[1,"aspect-ratio"]}]]]], options);
21
+ });
@@ -0,0 +1,18 @@
1
+ import { r as registerInstance, h } from './index-WdE4YutY.js';
2
+ import { s as sectionLabel } from './a11y-CTbyYfdB.js';
3
+
4
+ const ForjaStats = class {
5
+ constructor(hostRef) {
6
+ registerInstance(this, hostRef);
7
+ }
8
+ render() {
9
+ const hasItems = this.items && this.items.length > 0;
10
+ const classes = [
11
+ 'forja-stats',
12
+ this.statsStyle && `forja-stats--${this.statsStyle}`,
13
+ ].filter(Boolean).join(' ');
14
+ return (h("section", { key: '3aa6f2f843bb0e295dcb84740af6c9fda39d8309', class: classes, "aria-label": sectionLabel(this.sectionTitle, 'Statistics') }, h("slot", { key: '9565f67c2e7192f8b965be5555eb7f43e271692c', name: "before" }), this.sectionTitle && h("h2", { key: 'cbf15bf5bc0e62702590a1725a6e188bea96639c', class: "forja-stats__title" }, this.sectionTitle), this.text && h("div", { key: '0beb283e6387a04c20a2ba853266b12769ac9725', class: "forja-stats__text", innerHTML: this.text }), hasItems ? (h("dl", { class: "forja-stats__list", "data-columns": this.columns }, this.items.map(item => (h("div", { class: "forja-stats__item" }, h("dd", { class: "forja-stats__value" }, item.value), h("dt", { class: "forja-stats__label" }, item.label)))))) : (h("slot", null)), h("slot", { key: '7a2ffd297dd37c72d0c16a42b268e8a6f607ad40', name: "after" })));
15
+ }
16
+ };
17
+
18
+ export { ForjaStats as forja_stats };
@@ -0,0 +1,14 @@
1
+ import { r as registerInstance, h } from './index-WdE4YutY.js';
2
+ import { s as sectionLabel } from './a11y-CTbyYfdB.js';
3
+
4
+ const ForjaTagCloud = class {
5
+ constructor(hostRef) {
6
+ registerInstance(this, hostRef);
7
+ }
8
+ render() {
9
+ const hasTags = this.tags && this.tags.length > 0;
10
+ return (h("section", { key: 'dc9015d823c69a88c8252115948517887e7ce400', class: "forja-tag-cloud", "aria-label": sectionLabel(this.sectionTitle, 'Tags') }, h("slot", { key: '4a860c211a75f97d67755a1811db76c20840740f', name: "before" }), this.sectionTitle && h("h2", { key: 'bfae3b68ba76c7ce14d01d52ee47a5b5b6f04f89', class: "forja-tag-cloud__title" }, this.sectionTitle), this.text && h("div", { key: '7175c987bfadf8e4bb433e2cb8b856412818c0d0', class: "forja-tag-cloud__text", innerHTML: this.text }), hasTags ? (h("nav", { class: "forja-tag-cloud__nav", "aria-label": "Tags" }, h("ul", { class: "forja-tag-cloud__list", role: "list" }, this.tags.map(tag => (h("li", { class: "forja-tag-cloud__item" }, tag.href ? (h("a", { href: tag.href, class: "forja-tag-cloud__tag" }, h("span", { class: "forja-tag-cloud__label" }, tag.label), tag.count != null && (h("span", { class: "forja-tag-cloud__count", "aria-label": `${tag.count} items` }, "(", tag.count, ")")))) : (h("span", { class: "forja-tag-cloud__tag" }, h("span", { class: "forja-tag-cloud__label" }, tag.label), tag.count != null && (h("span", { class: "forja-tag-cloud__count", "aria-label": `${tag.count} items` }, "(", tag.count, ")")))))))))) : (h("slot", null)), h("slot", { key: '673878f83e689016cf1a001e87774fe66c4c7baa', name: "after" })));
11
+ }
12
+ };
13
+
14
+ export { ForjaTagCloud as forja_tag_cloud };
@@ -0,0 +1,16 @@
1
+ import { r as registerInstance, h } from './index-WdE4YutY.js';
2
+ import { s as sectionLabel } from './a11y-CTbyYfdB.js';
3
+
4
+ const ForjaTeam = class {
5
+ constructor(hostRef) {
6
+ registerInstance(this, hostRef);
7
+ this.showRole = true;
8
+ this.showBio = true;
9
+ }
10
+ render() {
11
+ const hasMembers = this.members && this.members.length > 0;
12
+ return (h("section", { key: 'b5d2dcb808386048367cfa97b31c6075732ba828', class: "forja-team", "aria-label": sectionLabel(this.sectionTitle, 'Team') }, h("slot", { key: 'df3d484b90a7d755eda0a784f21edbd921e71401', name: "before" }), this.sectionTitle && h("h2", { key: '2818b057df2f2c6319af8d17a43537714a62db34', class: "forja-team__title" }, this.sectionTitle), this.text && h("div", { key: '265903df6beaae84ff4d6cc1a9d11ae3f51f15d5', class: "forja-team__text", innerHTML: this.text }), hasMembers ? (h("ul", { class: "forja-team__grid", role: "list", "data-columns": this.columns }, this.members.map(member => (h("li", { class: "forja-team__member" }, member.imageUrl && (h("figure", { class: "forja-team__photo" }, h("img", { src: member.imageUrl, alt: member.name, class: "forja-team__image", loading: "lazy" }))), h("h3", { class: "forja-team__name" }, member.name), this.showRole && member.role && h("p", { class: "forja-team__role" }, member.role), this.showBio && member.bio && h("p", { class: "forja-team__bio" }, member.bio)))))) : (h("slot", null)), h("slot", { key: '81263f35ba229207c4978b65890c527590dfdae5', name: "after" })));
13
+ }
14
+ };
15
+
16
+ export { ForjaTeam as forja_team };
@@ -0,0 +1,14 @@
1
+ import { r as registerInstance, h } from './index-WdE4YutY.js';
2
+ import { s as sectionLabel } from './a11y-CTbyYfdB.js';
3
+
4
+ const ForjaTestimonials = class {
5
+ constructor(hostRef) {
6
+ registerInstance(this, hostRef);
7
+ }
8
+ render() {
9
+ const hasItems = this.items && this.items.length > 0;
10
+ return (h("section", { key: '608ac151afb59df61bf99ea38f5eba2d819ef6ac', class: "forja-testimonials", "aria-label": sectionLabel(this.sectionTitle, 'Testimonials') }, h("slot", { key: '016f3b316cec3979efaee8dd4e19497a623ca292', name: "before" }), this.sectionTitle && h("h2", { key: '5d0f9dac43cbd4e6d7ded6236c98a4d428d3723a', class: "forja-testimonials__title" }, this.sectionTitle), this.text && h("div", { key: '8d5bd0fd2c9b39aba0a461bef14df16a4b8197ba', class: "forja-testimonials__text", innerHTML: this.text }), hasItems ? (h("div", { class: "forja-testimonials__list", role: "list", "data-columns": this.columns }, this.items.map(item => (h("blockquote", { class: "forja-testimonials__item", role: "listitem" }, h("p", { class: "forja-testimonials__quote" }, item.quote), h("footer", { class: "forja-testimonials__attribution" }, item.avatarUrl && (h("img", { src: item.avatarUrl, alt: "", class: "forja-testimonials__avatar", loading: "lazy" })), h("cite", { class: "forja-testimonials__author" }, h("span", { class: "forja-testimonials__name" }, item.author), item.role && h("span", { class: "forja-testimonials__role" }, item.role)))))))) : (h("div", { class: "forja-testimonials__list", role: "list", "data-columns": this.columns }, h("slot", null))), h("slot", { key: 'f5079a207668e548632b607f174e630a46854cc8', name: "after" })));
11
+ }
12
+ };
13
+
14
+ export { ForjaTestimonials as forja_testimonials };
@@ -0,0 +1,20 @@
1
+ import { r as registerInstance, h } from './index-WdE4YutY.js';
2
+ import { s as sectionLabel } from './a11y-CTbyYfdB.js';
3
+
4
+ const ForjaTextBlock = class {
5
+ constructor(hostRef) {
6
+ registerInstance(this, hostRef);
7
+ this.width = 'default';
8
+ this.alignment = 'left';
9
+ }
10
+ render() {
11
+ const classes = [
12
+ 'forja-text',
13
+ `forja-text--${this.width}`,
14
+ `forja-text--${this.alignment}`,
15
+ ].join(' ');
16
+ return (h("section", { key: '2cc7f40271cc449ec8b4fc88576398a0b0763aca', class: classes, "aria-label": sectionLabel(this.sectionTitle, 'Content') }, h("slot", { key: '7da4597bc3dde56e4ae4179ae871f08f332c1c7f', name: "before" }), this.sectionTitle && h("h2", { key: 'ba03ee398659bf8926d6c434012b553e430a9413', class: "forja-text__title" }, this.sectionTitle), this.text ? (h("div", { class: "forja-text__content", innerHTML: this.text })) : (h("div", { class: "forja-text__content" }, h("slot", null))), h("slot", { key: '138eeef4fa534fd22772da123bbd6b7b30c20078', name: "after" })));
17
+ }
18
+ };
19
+
20
+ export { ForjaTextBlock as forja_text_block };
@@ -0,0 +1,17 @@
1
+ import { r as registerInstance, h } from './index-WdE4YutY.js';
2
+ import { s as sectionLabel } from './a11y-CTbyYfdB.js';
3
+
4
+ const ForjaTimeline = class {
5
+ constructor(hostRef) {
6
+ registerInstance(this, hostRef);
7
+ this.layout = 'vertical';
8
+ this.showDates = true;
9
+ }
10
+ render() {
11
+ const hasEvents = this.events && this.events.length > 0;
12
+ const classes = ['forja-timeline', `forja-timeline--${this.layout}`].join(' ');
13
+ return (h("section", { key: 'cebf45a5dea290fa21d427394db4916b4224df54', class: classes, "aria-label": sectionLabel(this.sectionTitle, 'Timeline') }, h("slot", { key: 'cf344c1df40eb02608a4255ec4b176f9efcd0ada', name: "before" }), this.sectionTitle && h("h2", { key: 'fab8e6c374c2e57fa345d092fc9453b0e4fc16ec', class: "forja-timeline__title" }, this.sectionTitle), this.text && h("div", { key: '0282811543111b55001d8b4fbe7e02cb7d944a7e', class: "forja-timeline__text", innerHTML: this.text }), hasEvents ? (h("ol", { class: "forja-timeline__list" }, this.events.map(event => (h("li", { class: "forja-timeline__item" }, this.showDates && event.date && (h("time", { class: "forja-timeline__date" }, event.date)), h("h3", { class: "forja-timeline__event-title" }, event.title), event.text && h("div", { class: "forja-timeline__event-text", innerHTML: event.text })))))) : (h("slot", null)), h("slot", { key: 'b56de78fa2dee0850de2ef5c0ca48243f8cf6e2c', name: "after" })));
14
+ }
15
+ };
16
+
17
+ export { ForjaTimeline as forja_timeline };
@@ -0,0 +1,28 @@
1
+ import { r as registerInstance, h } from './index-WdE4YutY.js';
2
+ import { s as sectionLabel } from './a11y-CTbyYfdB.js';
3
+
4
+ const ForjaVideo = class {
5
+ constructor(hostRef) {
6
+ registerInstance(this, hostRef);
7
+ this.provider = 'youtube';
8
+ this.autoplay = false;
9
+ this.aspectRatio = '16:9';
10
+ }
11
+ getAspectClass() {
12
+ const ratioMap = {
13
+ '16:9': 'forja-video--16-9',
14
+ '4:3': 'forja-video--4-3',
15
+ '1:1': 'forja-video--1-1',
16
+ };
17
+ return ratioMap[this.aspectRatio] || 'forja-video--16-9';
18
+ }
19
+ isSelfHosted() {
20
+ return this.provider === 'self-hosted';
21
+ }
22
+ render() {
23
+ const classes = ['forja-video', this.getAspectClass()].join(' ');
24
+ return (h("section", { key: '8f7dd28af86bfa7a3a1418bef19e6f9658d49cc6', class: classes, "aria-label": sectionLabel(this.sectionTitle, 'Video') }, h("slot", { key: '7b34145bcee01a80095725a5adba5266dc1af703', name: "before" }), this.sectionTitle && h("h2", { key: '4959dd55b6c5e146482c14057ebeffd39c45bedd', class: "forja-video__title" }, this.sectionTitle), this.text && h("div", { key: '42af3c36bad0c44ae1194f17217e969d46a01e8d', class: "forja-video__text", innerHTML: this.text }), this.videoUrl && (h("figure", { key: 'da0c9136b339b00f4f699deb077daff0bcc48715', class: "forja-video__container" }, this.isSelfHosted() ? (h("video", { class: "forja-video__player", src: this.videoUrl, controls: true, autoplay: this.autoplay }, h("track", { kind: "captions" }))) : (h("iframe", { class: "forja-video__embed", src: this.autoplay ? `${this.videoUrl}?autoplay=1` : this.videoUrl, title: this.sectionTitle || 'Embedded video', allowFullScreen: true, loading: "lazy" })))), h("slot", { key: '9c6b4f1345c7470b773c265a9884b799218a6d5f', name: "after" })));
25
+ }
26
+ };
27
+
28
+ export { ForjaVideo as forja_video };