@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,141 @@
1
+ import { h } from "@stencil/core";
2
+ import { sectionLabel, sectionId } from "../../utils/a11y";
3
+ export class ForjaNewsletter {
4
+ constructor() {
5
+ this.buttonText = 'Subscribe';
6
+ this.handleSubmit = (e) => {
7
+ e.preventDefault();
8
+ const form = e.target;
9
+ this.forjaSubmit.emit(new FormData(form));
10
+ };
11
+ }
12
+ render() {
13
+ const emailId = sectionId(this.sectionTitle, 'newsletter-email');
14
+ const nameId = sectionId(this.sectionTitle, 'newsletter-name');
15
+ 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" })));
16
+ }
17
+ static get is() { return "forja-newsletter"; }
18
+ static get properties() {
19
+ return {
20
+ "sectionTitle": {
21
+ "type": "string",
22
+ "mutable": false,
23
+ "complexType": {
24
+ "original": "string",
25
+ "resolved": "string | undefined",
26
+ "references": {}
27
+ },
28
+ "required": false,
29
+ "optional": true,
30
+ "docs": {
31
+ "tags": [],
32
+ "text": ""
33
+ },
34
+ "getter": false,
35
+ "setter": false,
36
+ "reflect": false,
37
+ "attribute": "section-title"
38
+ },
39
+ "text": {
40
+ "type": "string",
41
+ "mutable": false,
42
+ "complexType": {
43
+ "original": "string",
44
+ "resolved": "string | undefined",
45
+ "references": {}
46
+ },
47
+ "required": false,
48
+ "optional": true,
49
+ "docs": {
50
+ "tags": [],
51
+ "text": ""
52
+ },
53
+ "getter": false,
54
+ "setter": false,
55
+ "reflect": false,
56
+ "attribute": "text"
57
+ },
58
+ "buttonText": {
59
+ "type": "string",
60
+ "mutable": false,
61
+ "complexType": {
62
+ "original": "string",
63
+ "resolved": "string | undefined",
64
+ "references": {}
65
+ },
66
+ "required": false,
67
+ "optional": true,
68
+ "docs": {
69
+ "tags": [],
70
+ "text": ""
71
+ },
72
+ "getter": false,
73
+ "setter": false,
74
+ "reflect": false,
75
+ "attribute": "button-text",
76
+ "defaultValue": "'Subscribe'"
77
+ },
78
+ "formAction": {
79
+ "type": "string",
80
+ "mutable": false,
81
+ "complexType": {
82
+ "original": "string",
83
+ "resolved": "string | undefined",
84
+ "references": {}
85
+ },
86
+ "required": false,
87
+ "optional": true,
88
+ "docs": {
89
+ "tags": [],
90
+ "text": ""
91
+ },
92
+ "getter": false,
93
+ "setter": false,
94
+ "reflect": false,
95
+ "attribute": "form-action"
96
+ },
97
+ "showName": {
98
+ "type": "boolean",
99
+ "mutable": false,
100
+ "complexType": {
101
+ "original": "boolean",
102
+ "resolved": "boolean | undefined",
103
+ "references": {}
104
+ },
105
+ "required": false,
106
+ "optional": true,
107
+ "docs": {
108
+ "tags": [],
109
+ "text": ""
110
+ },
111
+ "getter": false,
112
+ "setter": false,
113
+ "reflect": false,
114
+ "attribute": "show-name"
115
+ }
116
+ };
117
+ }
118
+ static get events() {
119
+ return [{
120
+ "method": "forjaSubmit",
121
+ "name": "forjaSubmit",
122
+ "bubbles": true,
123
+ "cancelable": true,
124
+ "composed": true,
125
+ "docs": {
126
+ "tags": [],
127
+ "text": ""
128
+ },
129
+ "complexType": {
130
+ "original": "FormData",
131
+ "resolved": "FormData",
132
+ "references": {
133
+ "FormData": {
134
+ "location": "global",
135
+ "id": "global::FormData"
136
+ }
137
+ }
138
+ }
139
+ }];
140
+ }
141
+ }
@@ -0,0 +1,163 @@
1
+ import { h } from "@stencil/core";
2
+ import { sectionLabel } from "../../utils/a11y";
3
+ export class ForjaPortfolio {
4
+ renderExperiences() {
5
+ if (!this.experiences || this.experiences.length === 0)
6
+ return null;
7
+ 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 }))))))))));
8
+ }
9
+ renderEducation() {
10
+ if (!this.education || this.education.length === 0)
11
+ return null;
12
+ 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 }))))))))));
13
+ }
14
+ renderSkills() {
15
+ if (!this.skills || this.skills.length === 0)
16
+ return null;
17
+ const grouped = this.skills.reduce((acc, skill) => {
18
+ const cat = skill.category || 'General';
19
+ if (!acc[cat])
20
+ acc[cat] = [];
21
+ acc[cat].push(skill);
22
+ return acc;
23
+ }, {});
24
+ 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)))))))));
25
+ }
26
+ render() {
27
+ 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" })));
28
+ }
29
+ static get is() { return "forja-portfolio"; }
30
+ static get properties() {
31
+ return {
32
+ "sectionTitle": {
33
+ "type": "string",
34
+ "mutable": false,
35
+ "complexType": {
36
+ "original": "string",
37
+ "resolved": "string | undefined",
38
+ "references": {}
39
+ },
40
+ "required": false,
41
+ "optional": true,
42
+ "docs": {
43
+ "tags": [],
44
+ "text": ""
45
+ },
46
+ "getter": false,
47
+ "setter": false,
48
+ "reflect": false,
49
+ "attribute": "section-title"
50
+ },
51
+ "text": {
52
+ "type": "string",
53
+ "mutable": false,
54
+ "complexType": {
55
+ "original": "string",
56
+ "resolved": "string | undefined",
57
+ "references": {}
58
+ },
59
+ "required": false,
60
+ "optional": true,
61
+ "docs": {
62
+ "tags": [],
63
+ "text": ""
64
+ },
65
+ "getter": false,
66
+ "setter": false,
67
+ "reflect": false,
68
+ "attribute": "text"
69
+ },
70
+ "experiences": {
71
+ "type": "unknown",
72
+ "mutable": false,
73
+ "complexType": {
74
+ "original": "PortfolioExperience[]",
75
+ "resolved": "PortfolioExperience[] | undefined",
76
+ "references": {
77
+ "PortfolioExperience": {
78
+ "location": "import",
79
+ "path": "../../types",
80
+ "id": "src/types.ts::PortfolioExperience",
81
+ "referenceLocation": "PortfolioExperience"
82
+ }
83
+ }
84
+ },
85
+ "required": false,
86
+ "optional": true,
87
+ "docs": {
88
+ "tags": [],
89
+ "text": ""
90
+ },
91
+ "getter": false,
92
+ "setter": false
93
+ },
94
+ "education": {
95
+ "type": "unknown",
96
+ "mutable": false,
97
+ "complexType": {
98
+ "original": "EducationItem[]",
99
+ "resolved": "EducationItem[] | undefined",
100
+ "references": {
101
+ "EducationItem": {
102
+ "location": "import",
103
+ "path": "../../types",
104
+ "id": "src/types.ts::EducationItem",
105
+ "referenceLocation": "EducationItem"
106
+ }
107
+ }
108
+ },
109
+ "required": false,
110
+ "optional": true,
111
+ "docs": {
112
+ "tags": [],
113
+ "text": ""
114
+ },
115
+ "getter": false,
116
+ "setter": false
117
+ },
118
+ "skills": {
119
+ "type": "unknown",
120
+ "mutable": false,
121
+ "complexType": {
122
+ "original": "SkillItem[]",
123
+ "resolved": "SkillItem[] | undefined",
124
+ "references": {
125
+ "SkillItem": {
126
+ "location": "import",
127
+ "path": "../../types",
128
+ "id": "src/types.ts::SkillItem",
129
+ "referenceLocation": "SkillItem"
130
+ }
131
+ }
132
+ },
133
+ "required": false,
134
+ "optional": true,
135
+ "docs": {
136
+ "tags": [],
137
+ "text": ""
138
+ },
139
+ "getter": false,
140
+ "setter": false
141
+ },
142
+ "columns": {
143
+ "type": "number",
144
+ "mutable": false,
145
+ "complexType": {
146
+ "original": "number",
147
+ "resolved": "number | undefined",
148
+ "references": {}
149
+ },
150
+ "required": false,
151
+ "optional": true,
152
+ "docs": {
153
+ "tags": [],
154
+ "text": ""
155
+ },
156
+ "getter": false,
157
+ "setter": false,
158
+ "reflect": false,
159
+ "attribute": "columns"
160
+ }
161
+ };
162
+ }
163
+ }
@@ -0,0 +1,94 @@
1
+ import { h } from "@stencil/core";
2
+ import { sectionLabel } from "../../utils/a11y";
3
+ export class ForjaPricing {
4
+ render() {
5
+ const hasTiers = this.tiers && this.tiers.length > 0;
6
+ 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" })));
7
+ }
8
+ static get is() { return "forja-pricing"; }
9
+ static get properties() {
10
+ return {
11
+ "sectionTitle": {
12
+ "type": "string",
13
+ "mutable": false,
14
+ "complexType": {
15
+ "original": "string",
16
+ "resolved": "string | undefined",
17
+ "references": {}
18
+ },
19
+ "required": false,
20
+ "optional": true,
21
+ "docs": {
22
+ "tags": [],
23
+ "text": ""
24
+ },
25
+ "getter": false,
26
+ "setter": false,
27
+ "reflect": false,
28
+ "attribute": "section-title"
29
+ },
30
+ "text": {
31
+ "type": "string",
32
+ "mutable": false,
33
+ "complexType": {
34
+ "original": "string",
35
+ "resolved": "string | undefined",
36
+ "references": {}
37
+ },
38
+ "required": false,
39
+ "optional": true,
40
+ "docs": {
41
+ "tags": [],
42
+ "text": ""
43
+ },
44
+ "getter": false,
45
+ "setter": false,
46
+ "reflect": false,
47
+ "attribute": "text"
48
+ },
49
+ "tiers": {
50
+ "type": "unknown",
51
+ "mutable": false,
52
+ "complexType": {
53
+ "original": "PricingTier[]",
54
+ "resolved": "PricingTier[] | undefined",
55
+ "references": {
56
+ "PricingTier": {
57
+ "location": "import",
58
+ "path": "../../types",
59
+ "id": "src/types.ts::PricingTier",
60
+ "referenceLocation": "PricingTier"
61
+ }
62
+ }
63
+ },
64
+ "required": false,
65
+ "optional": true,
66
+ "docs": {
67
+ "tags": [],
68
+ "text": ""
69
+ },
70
+ "getter": false,
71
+ "setter": false
72
+ },
73
+ "columns": {
74
+ "type": "number",
75
+ "mutable": false,
76
+ "complexType": {
77
+ "original": "number",
78
+ "resolved": "number | undefined",
79
+ "references": {}
80
+ },
81
+ "required": false,
82
+ "optional": true,
83
+ "docs": {
84
+ "tags": [],
85
+ "text": ""
86
+ },
87
+ "getter": false,
88
+ "setter": false,
89
+ "reflect": false,
90
+ "attribute": "columns"
91
+ }
92
+ };
93
+ }
94
+ }
@@ -0,0 +1,94 @@
1
+ import { h } from "@stencil/core";
2
+ import { sectionLabel } from "../../utils/a11y";
3
+ export class ForjaProjects {
4
+ render() {
5
+ const hasItems = this.items && this.items.length > 0;
6
+ 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" })));
7
+ }
8
+ static get is() { return "forja-projects"; }
9
+ static get properties() {
10
+ return {
11
+ "sectionTitle": {
12
+ "type": "string",
13
+ "mutable": false,
14
+ "complexType": {
15
+ "original": "string",
16
+ "resolved": "string | undefined",
17
+ "references": {}
18
+ },
19
+ "required": false,
20
+ "optional": true,
21
+ "docs": {
22
+ "tags": [],
23
+ "text": ""
24
+ },
25
+ "getter": false,
26
+ "setter": false,
27
+ "reflect": false,
28
+ "attribute": "section-title"
29
+ },
30
+ "text": {
31
+ "type": "string",
32
+ "mutable": false,
33
+ "complexType": {
34
+ "original": "string",
35
+ "resolved": "string | undefined",
36
+ "references": {}
37
+ },
38
+ "required": false,
39
+ "optional": true,
40
+ "docs": {
41
+ "tags": [],
42
+ "text": ""
43
+ },
44
+ "getter": false,
45
+ "setter": false,
46
+ "reflect": false,
47
+ "attribute": "text"
48
+ },
49
+ "items": {
50
+ "type": "unknown",
51
+ "mutable": false,
52
+ "complexType": {
53
+ "original": "ProjectItem[]",
54
+ "resolved": "ProjectItem[] | undefined",
55
+ "references": {
56
+ "ProjectItem": {
57
+ "location": "import",
58
+ "path": "../../types",
59
+ "id": "src/types.ts::ProjectItem",
60
+ "referenceLocation": "ProjectItem"
61
+ }
62
+ }
63
+ },
64
+ "required": false,
65
+ "optional": true,
66
+ "docs": {
67
+ "tags": [],
68
+ "text": ""
69
+ },
70
+ "getter": false,
71
+ "setter": false
72
+ },
73
+ "columns": {
74
+ "type": "number",
75
+ "mutable": false,
76
+ "complexType": {
77
+ "original": "number",
78
+ "resolved": "number | undefined",
79
+ "references": {}
80
+ },
81
+ "required": false,
82
+ "optional": true,
83
+ "docs": {
84
+ "tags": [],
85
+ "text": ""
86
+ },
87
+ "getter": false,
88
+ "setter": false,
89
+ "reflect": false,
90
+ "attribute": "columns"
91
+ }
92
+ };
93
+ }
94
+ }