@forjacms/sections 1.7.5 → 1.7.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.
- package/dist/cjs/altcha-BwmX5HQc.js +33 -0
- package/dist/cjs/forja-contact.cjs.entry.js +25 -2
- package/dist/cjs/forja-newsletter.cjs.entry.js +16 -1
- package/dist/cjs/forja-portfolio.cjs.entry.js +1 -1
- package/dist/cjs/forja-pricing.cjs.entry.js +1 -1
- package/dist/cjs/forja-projects.cjs.entry.js +1 -1
- package/dist/cjs/forja-sections.cjs.js +1 -1
- package/dist/cjs/forja-stats.cjs.entry.js +1 -1
- package/dist/cjs/forja-tag-cloud.cjs.entry.js +1 -1
- package/dist/cjs/forja-team.cjs.entry.js +1 -1
- package/dist/cjs/forja-testimonials.cjs.entry.js +1 -1
- package/dist/cjs/forja-text-block.cjs.entry.js +1 -1
- package/dist/cjs/forja-timeline.cjs.entry.js +1 -1
- package/dist/cjs/forja-video.cjs.entry.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/forja-contact/forja-contact.js +69 -2
- package/dist/collection/components/forja-newsletter/forja-newsletter.js +60 -1
- package/dist/collection/components/forja-portfolio/forja-portfolio.js +1 -1
- package/dist/collection/components/forja-pricing/forja-pricing.js +1 -1
- package/dist/collection/components/forja-projects/forja-projects.js +1 -1
- package/dist/collection/components/forja-stats/forja-stats.js +1 -1
- package/dist/collection/components/forja-tag-cloud/forja-tag-cloud.js +1 -1
- package/dist/collection/components/forja-team/forja-team.js +1 -1
- package/dist/collection/components/forja-testimonials/forja-testimonials.js +1 -1
- package/dist/collection/components/forja-text-block/forja-text-block.js +1 -1
- package/dist/collection/components/forja-timeline/forja-timeline.js +1 -1
- package/dist/collection/components/forja-video/forja-video.js +1 -1
- package/dist/collection/utils/altcha.js +27 -0
- package/dist/components/forja-contact.js +1 -1
- package/dist/components/forja-newsletter.js +1 -1
- package/dist/components/forja-portfolio.js +1 -1
- package/dist/components/forja-pricing.js +1 -1
- package/dist/components/forja-projects.js +1 -1
- package/dist/components/forja-stats.js +1 -1
- package/dist/components/forja-tag-cloud.js +1 -1
- package/dist/components/forja-team.js +1 -1
- package/dist/components/forja-testimonials.js +1 -1
- package/dist/components/forja-text-block.js +1 -1
- package/dist/components/forja-timeline.js +1 -1
- package/dist/components/forja-video.js +1 -1
- package/dist/components/p-UF_OIKbF.js +1 -0
- package/dist/esm/altcha-BauEO4NR.js +30 -0
- package/dist/esm/forja-contact.entry.js +25 -2
- package/dist/esm/forja-newsletter.entry.js +16 -1
- package/dist/esm/forja-portfolio.entry.js +1 -1
- package/dist/esm/forja-pricing.entry.js +1 -1
- package/dist/esm/forja-projects.entry.js +1 -1
- package/dist/esm/forja-sections.js +1 -1
- package/dist/esm/forja-stats.entry.js +1 -1
- package/dist/esm/forja-tag-cloud.entry.js +1 -1
- package/dist/esm/forja-team.entry.js +1 -1
- package/dist/esm/forja-testimonials.entry.js +1 -1
- package/dist/esm/forja-text-block.entry.js +1 -1
- package/dist/esm/forja-timeline.entry.js +1 -1
- package/dist/esm/forja-video.entry.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/forja-sections/forja-sections.esm.js +1 -1
- package/dist/forja-sections/{p-082156fb.entry.js → p-2374ab45.entry.js} +1 -1
- package/dist/forja-sections/{p-8caea1c1.entry.js → p-28d89696.entry.js} +1 -1
- package/dist/forja-sections/p-50efde20.entry.js +1 -0
- package/dist/forja-sections/{p-89b5326c.entry.js → p-52608627.entry.js} +1 -1
- package/dist/forja-sections/p-6160b635.entry.js +1 -0
- package/dist/forja-sections/p-680fe800.entry.js +1 -0
- package/dist/forja-sections/p-73d4139c.entry.js +1 -0
- package/dist/forja-sections/{p-a37a69c8.entry.js → p-7cd82cee.entry.js} +1 -1
- package/dist/forja-sections/p-7dff4916.entry.js +1 -0
- package/dist/forja-sections/p-B2hMSj1g.js +1 -0
- package/dist/forja-sections/{p-d763435e.entry.js → p-a4cc2ee9.entry.js} +1 -1
- package/dist/forja-sections/p-da58a406.entry.js +1 -0
- package/dist/forja-sections/p-df44677a.entry.js +1 -0
- package/dist/types/components/forja-contact/forja-contact.d.ts +18 -0
- package/dist/types/components/forja-newsletter/forja-newsletter.d.ts +8 -0
- package/dist/types/components.d.ts +40 -0
- package/dist/types/utils/altcha.d.ts +16 -0
- package/package.json +1 -1
- package/dist/forja-sections/p-37f0e324.entry.js +0 -1
- package/dist/forja-sections/p-450084d2.entry.js +0 -1
- package/dist/forja-sections/p-5d5eea44.entry.js +0 -1
- package/dist/forja-sections/p-8513ce7a.entry.js +0 -1
- package/dist/forja-sections/p-86732956.entry.js +0 -1
- package/dist/forja-sections/p-b37e7f5c.entry.js +0 -1
- package/dist/forja-sections/p-c61df346.entry.js +0 -1
|
@@ -3,7 +3,7 @@ import { sectionLabel } from "../../utils/a11y";
|
|
|
3
3
|
export class ForjaPricing {
|
|
4
4
|
render() {
|
|
5
5
|
const hasTiers = this.tiers && this.tiers.length > 0;
|
|
6
|
-
return (h("section", { key: '
|
|
6
|
+
return (h("section", { key: 'ecb73e364f3f4892d3d937fc7fa5df7b1f1a338e', class: "forja-pricing", "aria-label": sectionLabel(this.sectionTitle, 'Pricing') }, h("slot", { key: '08905beca81a6eb6afb74d161f47bc7e0f5b69c4', name: "before" }), (this.sectionTitle || this.text) && (h("div", { key: 'fa94236ab6731c6e2f7401075bba874ed39206b9', class: "forja-pricing__header" }, this.sectionTitle && h("h2", { key: '8ced20c10ac8235fd2525c6cbbc4b5689c10fe18', class: "forja-pricing__title" }, this.sectionTitle), this.text && h("div", { key: 'bf6f79ee461263f8e5bd9af2c2233683fe6cf110', 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: '138c32c758745fc0c225c981e15da56557659395', name: "after" })));
|
|
7
7
|
}
|
|
8
8
|
static get is() { return "forja-pricing"; }
|
|
9
9
|
static get properties() {
|
|
@@ -3,7 +3,7 @@ import { sectionLabel } from "../../utils/a11y";
|
|
|
3
3
|
export class ForjaProjects {
|
|
4
4
|
render() {
|
|
5
5
|
const hasItems = this.items && this.items.length > 0;
|
|
6
|
-
return (h("section", { key: '
|
|
6
|
+
return (h("section", { key: '4fddb0d0031673c60d81741111e6fff5ebbb20a6', class: "forja-projects", "aria-label": sectionLabel(this.sectionTitle, 'Projects') }, h("slot", { key: '0a295eabcbfa33f584f1538b84b70cb85fd012ae', name: "before" }), this.sectionTitle && h("h2", { key: '3792ed7f5e6e86dc9fd36274a361bffcc1267d8e', class: "forja-projects__title" }, this.sectionTitle), this.text && h("div", { key: '246daa3ff95477f019d70c1d2c3c24ccade0ecb1', 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: '605aa0a889bdc8199dca6895248f3cf19d8d4c83', name: "after" })));
|
|
7
7
|
}
|
|
8
8
|
static get is() { return "forja-projects"; }
|
|
9
9
|
static get properties() {
|
|
@@ -7,7 +7,7 @@ export class ForjaStats {
|
|
|
7
7
|
'forja-stats',
|
|
8
8
|
this.statsStyle && `forja-stats--${this.statsStyle}`,
|
|
9
9
|
].filter(Boolean).join(' ');
|
|
10
|
-
return (h("section", { key: '
|
|
10
|
+
return (h("section", { key: 'cf1a9139a3b18e099e66f5abcfdcf7f5c90cdf74', class: classes, "aria-label": sectionLabel(this.sectionTitle, 'Statistics') }, h("slot", { key: 'fc61e06e592f1cc1d1f36d47b2b8fd33b520f421', name: "before" }), this.sectionTitle && h("h2", { key: '42026c0e7b55f0f7b185d969ca1219b1c44f7632', class: "forja-stats__title" }, this.sectionTitle), this.text && h("div", { key: 'd6f9d119958786dbef4aa39e6bae82a22465e21a', 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: '468c62818cee963c316c57891964bac3d4f793a6', name: "after" })));
|
|
11
11
|
}
|
|
12
12
|
static get is() { return "forja-stats"; }
|
|
13
13
|
static get properties() {
|
|
@@ -3,7 +3,7 @@ import { sectionLabel } from "../../utils/a11y";
|
|
|
3
3
|
export class ForjaTagCloud {
|
|
4
4
|
render() {
|
|
5
5
|
const hasTags = this.tags && this.tags.length > 0;
|
|
6
|
-
return (h("section", { key: '
|
|
6
|
+
return (h("section", { key: 'eb6d00e49fa790e23e2397f4927e20d545222217', class: "forja-tag-cloud", "aria-label": sectionLabel(this.sectionTitle, 'Tags') }, h("slot", { key: '8a34fd949d2f96dd8fd92d6479a052373fc09d00', name: "before" }), this.sectionTitle && h("h2", { key: '90fd03b82e40b74a16c91ba8c86100e9868239bb', class: "forja-tag-cloud__title" }, this.sectionTitle), this.text && h("div", { key: '7cf8c4c19943defa0e23f852ab27372307fa45b8', 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: '9d24cb03b6ea67f87f11dd97410ae25ae389276b', name: "after" })));
|
|
7
7
|
}
|
|
8
8
|
static get is() { return "forja-tag-cloud"; }
|
|
9
9
|
static get properties() {
|
|
@@ -7,7 +7,7 @@ export class ForjaTeam {
|
|
|
7
7
|
}
|
|
8
8
|
render() {
|
|
9
9
|
const hasMembers = this.members && this.members.length > 0;
|
|
10
|
-
return (h("section", { key: '
|
|
10
|
+
return (h("section", { key: '65ab08dab0a410e178ce2b0a010987533b575bcd', class: "forja-team", "aria-label": sectionLabel(this.sectionTitle, 'Team') }, h("slot", { key: 'daa75a84eb8bf43d21057b9f3620f96407d65007', name: "before" }), this.sectionTitle && h("h2", { key: '682f5ee8cf15e378cdb6b33cc80e078886ca29ce', class: "forja-team__title" }, this.sectionTitle), this.text && h("div", { key: '4ce99703de2127a6637bd7e86c3bc0944c6b5960', 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: '97fff600c6ed995066a34008edee4a73a9c954d2', name: "after" })));
|
|
11
11
|
}
|
|
12
12
|
static get is() { return "forja-team"; }
|
|
13
13
|
static get properties() {
|
|
@@ -3,7 +3,7 @@ import { sectionLabel } from "../../utils/a11y";
|
|
|
3
3
|
export class ForjaTestimonials {
|
|
4
4
|
render() {
|
|
5
5
|
const hasItems = this.items && this.items.length > 0;
|
|
6
|
-
return (h("section", { key: '
|
|
6
|
+
return (h("section", { key: '348a3aea6d842d43dcbb8506111d2146347ecf65', class: "forja-testimonials", "aria-label": sectionLabel(this.sectionTitle, 'Testimonials') }, h("slot", { key: '4d372a82bb34fc2408cb168f349550f5213c1152', name: "before" }), this.sectionTitle && h("h2", { key: '52323f5e292192065b3ab8a54efb76bc2cb9247f', class: "forja-testimonials__title" }, this.sectionTitle), this.text && h("div", { key: 'f285a90d384919c0a6221b02ef2bdddf584c8636', 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: '5c88e789b532b1039e2b0c74ec0afc4fb63185fb', name: "after" })));
|
|
7
7
|
}
|
|
8
8
|
static get is() { return "forja-testimonials"; }
|
|
9
9
|
static get properties() {
|
|
@@ -11,7 +11,7 @@ export class ForjaTextBlock {
|
|
|
11
11
|
`forja-text--${this.width}`,
|
|
12
12
|
`forja-text--${this.alignment}`,
|
|
13
13
|
].join(' ');
|
|
14
|
-
return (h("section", { key: '
|
|
14
|
+
return (h("section", { key: '797f9ac88c3c03e2c41e7b8b3bf54b4d43dc3fd9', class: classes, "aria-label": sectionLabel(this.sectionTitle, 'Content') }, h("slot", { key: 'dc6cc88ac6fde0dc315651f0d7372c3fb44527fc', name: "before" }), this.sectionTitle && h("h2", { key: 'c3e5c0b9bbd3037a9c54db36027928b67a14318f', 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: '8fe560073c81469ef6669ff945df4d102699152c', name: "after" })));
|
|
15
15
|
}
|
|
16
16
|
static get is() { return "forja-text-block"; }
|
|
17
17
|
static get properties() {
|
|
@@ -8,7 +8,7 @@ export class ForjaTimeline {
|
|
|
8
8
|
render() {
|
|
9
9
|
const hasEvents = this.events && this.events.length > 0;
|
|
10
10
|
const classes = ['forja-timeline', `forja-timeline--${this.layout}`].join(' ');
|
|
11
|
-
return (h("section", { key: '
|
|
11
|
+
return (h("section", { key: '2dce62c902a967d64dd5b6a611a177335db92965', class: classes, "aria-label": sectionLabel(this.sectionTitle, 'Timeline') }, h("slot", { key: 'a68408fe55ac0b4ff1717d90abf94df9744395e8', name: "before" }), this.sectionTitle && h("h2", { key: '59f55ce9bc8783f510050851f19d124e1e10c869', class: "forja-timeline__title" }, this.sectionTitle), this.text && h("div", { key: '16c053110be832993154c4e88b9f29370d3b66e0', 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: '112addeae24306716d65f4500fb6a2dbafb8a977', name: "after" })));
|
|
12
12
|
}
|
|
13
13
|
static get is() { return "forja-timeline"; }
|
|
14
14
|
static get properties() {
|
|
@@ -19,7 +19,7 @@ export class ForjaVideo {
|
|
|
19
19
|
}
|
|
20
20
|
render() {
|
|
21
21
|
const classes = ['forja-video', this.getAspectClass()].join(' ');
|
|
22
|
-
return (h("section", { key: '
|
|
22
|
+
return (h("section", { key: '3243f9bd00cd257d706cf6ca3ee463fc2f1de542', class: classes, "aria-label": sectionLabel(this.sectionTitle, 'Video') }, h("slot", { key: 'a95a30fcd2ce9e696a614b3e5614c32f23bb887c', name: "before" }), this.sectionTitle && h("h2", { key: 'd43d21c2d9e78ac33670d6c7073180d813c2d868', class: "forja-video__title" }, this.sectionTitle), this.text && h("div", { key: '98a11b54335f07c79f8ed7a0576378d223f91bfb', class: "forja-video__text", innerHTML: this.text }), this.videoUrl && (h("figure", { key: 'b6e4b9436e7c4f0040b00d8173ac2cf417acd575', 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: '788a8b32e8e0e524cf681995cd25f3b4ed565371', name: "after" })));
|
|
23
23
|
}
|
|
24
24
|
static get is() { return "forja-video"; }
|
|
25
25
|
static get properties() {
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { h } from "@stencil/core";
|
|
2
|
+
/**
|
|
3
|
+
* Self-hosted ALTCHA helpers shared by the form sections (#773).
|
|
4
|
+
*
|
|
5
|
+
* The open-source `<altcha-widget>` custom element solves a server-issued
|
|
6
|
+
* proof-of-work challenge and injects a hidden `altcha` input carrying the
|
|
7
|
+
* solved payload. Forms forward that payload to the API as the submission's
|
|
8
|
+
* `bot_protection_token`. No Sentinel / paid features are involved; the host
|
|
9
|
+
* page registers the widget (e.g. `import 'altcha'`).
|
|
10
|
+
*/
|
|
11
|
+
/** True once the widget has injected a non-empty solved `altcha` input. */
|
|
12
|
+
export function altchaSolved(form) {
|
|
13
|
+
const input = form.querySelector('input[name="altcha"]');
|
|
14
|
+
return !!input && input.value.length > 0;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Render the ALTCHA widget bound to a per-form challenge endpoint. `testId`
|
|
18
|
+
* lets each section namespace its widget for e2e targeting.
|
|
19
|
+
*/
|
|
20
|
+
export function renderAltchaWidget(challengeUrl, testId) {
|
|
21
|
+
return h('altcha-widget', {
|
|
22
|
+
class: { 'forja-altcha': true },
|
|
23
|
+
name: 'altcha',
|
|
24
|
+
challengeurl: challengeUrl,
|
|
25
|
+
'data-testid': testId,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t,p as a,H as e,c,h as
|
|
1
|
+
import{t,p as a,H as e,c as o,h as c}from"./p-B8rQMNWH.js";import{a as s,s as r}from"./p-CTbyYfdB.js";import{a as i,r as n}from"./p-UF_OIKbF.js";const f=a(class extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.forjaSubmit=o(this,"forjaSubmit"),this.botProtection="none",this.botProtectionUnsolved=!1,this.handleSubmit=t=>{t.preventDefault();const a=t.target;!this.requiresAltcha||i(a)?(this.botProtectionUnsolved=!1,this.forjaSubmit.emit(new FormData(a))):this.botProtectionUnsolved=!0}}get requiresAltcha(){return"mandatory"===this.botProtection}render(){const t=this.fields&&this.fields.length>0;return c("section",{key:"f5fa0e767bf2ed4abf6cf716b170fba8ac8fc569",class:"forja-contact","aria-label":r(this.sectionTitle,"Contact")},c("slot",{key:"ee7559a984260125a9f7bbece28a3383e5b8d383",name:"before"}),c("div",{key:"0ed33ac797e6f9e540d8b62a81f060b3d94f3303",class:"forja-contact__content"},this.sectionTitle&&c("h2",{key:"40d2850b9d1add8cd37b0238818c9bd351db2c0f",class:"forja-contact__title"},this.sectionTitle),this.text&&c("div",{key:"03487d7fdd10dfc55044eb320a26bc9ba69e122e",class:"forja-contact__text",innerHTML:this.text}),this.buttonText&&this.buttonHref&&c("a",{key:"7836f8b9458ce0a90309ccca829fb5a452d2eeec",href:this.buttonHref,class:"forja-contact__cta"},this.buttonText)),t?c("form",{class:"forja-contact__form",action:this.formAction,method:this.formAction?"post":void 0,onSubmit:this.handleSubmit},this.fields.map((t=>{const a=s(t.name,"contact");return c("div",{class:"forja-contact__field"},c("label",{class:"forja-contact__label",htmlFor:a},t.label,t.required&&c("span",{"aria-hidden":"true"}," *")),"textarea"===t.type?c("textarea",{id:a,name:t.name,class:"forja-contact__input forja-contact__input--textarea",required:t.required,"aria-required":t.required?"true":void 0,placeholder:t.placeholder}):c("input",{id:a,name:t.name,type:t.type,class:"forja-contact__input",required:t.required,"aria-required":t.required?"true":void 0,placeholder:t.placeholder}))})),this.requiresAltcha&&n(this.altchaChallengeUrl,"forja-contact-altcha"),this.botProtectionUnsolved&&c("p",{class:"forja-contact__error",role:"alert","data-testid":"forja-contact-altcha-error"},"Please complete the verification before submitting."),c("button",{type:"submit",class:"forja-contact__submit"},this.buttonText||"Send")):c("slot",null),c("slot",{key:"71b4d6ede8b21c3e841a74477c1093a5e8fc33fa",name:"after"}))}},[260,"forja-contact",{sectionTitle:[1,"section-title"],text:[1],buttonText:[1,"button-text"],buttonHref:[1,"button-href"],fields:[16],formAction:[1,"form-action"],botProtection:[1,"bot-protection"],altchaChallengeUrl:[1,"altcha-challenge-url"],botProtectionUnsolved:[32]}]);function l(){"undefined"!=typeof customElements&&["forja-contact"].forEach((a=>{"forja-contact"===a&&(customElements.get(t(a))||customElements.define(t(a),f))}))}l();const d=f,h=l;export{d as ForjaContact,h as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e,p as t,H as a,c as s,h as
|
|
1
|
+
import{t as e,p as t,H as a,c as s,h as r}from"./p-B8rQMNWH.js";import{a as o,s as i}from"./p-CTbyYfdB.js";import{a as l,r as c}from"./p-UF_OIKbF.js";const n=t(class extends a{constructor(e){super(),!1!==e&&this.__registerHost(),this.forjaSubmit=s(this,"forjaSubmit"),this.buttonText="Subscribe",this.botProtection="none",this.botProtectionUnsolved=!1,this.handleSubmit=e=>{e.preventDefault();const t=e.target;!this.requiresAltcha||l(t)?(this.botProtectionUnsolved=!1,this.forjaSubmit.emit(new FormData(t))):this.botProtectionUnsolved=!0}}get requiresAltcha(){return"mandatory"===this.botProtection}render(){const e=o(this.sectionTitle,"newsletter-email"),t=o(this.sectionTitle,"newsletter-name");return r("section",{key:"0d15c9d013c2f1250999ad86d853cbb5126bbddc",class:"forja-newsletter","aria-label":i(this.sectionTitle,"Newsletter")},r("slot",{key:"aba062b799c952a6936267573bf841fb7403a350",name:"before"}),this.sectionTitle&&r("h2",{key:"f00db5dd8b536dca31d1f39453753e4e9126f97f",class:"forja-newsletter__title"},this.sectionTitle),this.text&&r("div",{key:"857102c1929b0615a5782d97ffc969d12bb3bec6",class:"forja-newsletter__text",innerHTML:this.text}),r("form",{key:"9ac77419043d02719d05c949e8ac6e13f411affe",class:"forja-newsletter__form",action:this.formAction,method:this.formAction?"post":void 0,onSubmit:this.handleSubmit},this.showName&&r("div",{key:"073625ebadd2dd040dc19e48f136adb4919d428b",class:"forja-newsletter__field"},r("label",{key:"3133a36ccdf1c7f8a7204e2e83c71b16b1e4dcf2",class:"forja-newsletter__label",htmlFor:t},"Name"),r("input",{key:"f49b6e4e3b7f1037e6b7aaa18a6a4b10cb15d730",id:t,name:"name",type:"text",class:"forja-newsletter__input"})),r("div",{key:"59b5408e884026f6351b1397e536fc184ac2c1de",class:"forja-newsletter__field"},r("label",{key:"436373562856e04f27addcacba5083805155c913",class:"forja-newsletter__label",htmlFor:e},"Email"),r("input",{key:"042c434c7fab15fd4235e1fe2d6b509db81d1e43",id:e,name:"email",type:"email",class:"forja-newsletter__input",required:!0,"aria-required":"true"})),this.requiresAltcha&&c(this.altchaChallengeUrl,"forja-newsletter-altcha"),this.botProtectionUnsolved&&r("p",{key:"4375ea4a0f67a9dad1b6e1797e898c4b90125dfb",class:"forja-newsletter__error",role:"alert","data-testid":"forja-newsletter-altcha-error"},"Please complete the verification before submitting."),r("button",{key:"7eddc2c91799598f71af799af6c46159d688195a",type:"submit",class:"forja-newsletter__submit"},this.buttonText)),r("slot",{key:"f13a320d972bbb402cb218ee6d4d2650f5f15161",name:"after"}))}},[260,"forja-newsletter",{sectionTitle:[1,"section-title"],text:[1],buttonText:[1,"button-text"],formAction:[1,"form-action"],showName:[4,"show-name"],botProtection:[1,"bot-protection"],altchaChallengeUrl:[1,"altcha-challenge-url"],botProtectionUnsolved:[32]}]);function f(){"undefined"!=typeof customElements&&["forja-newsletter"].forEach((t=>{"forja-newsletter"===t&&(customElements.get(e(t))||customElements.define(e(t),n))}))}f();const d=n,b=f;export{d as ForjaNewsletter,b as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as o,p as s,H as r,h as l}from"./p-B8rQMNWH.js";import{s as t}from"./p-CTbyYfdB.js";const i=s(class extends r{constructor(o){super(),!1!==o&&this.__registerHost()}renderExperiences(){return this.experiences&&0!==this.experiences.length?l("div",{class:"forja-portfolio__experiences"},l("h3",{class:"forja-portfolio__group-title"},"Experience"),l("ol",{class:"forja-portfolio__list"},this.experiences.map((o=>l("li",{class:"forja-portfolio__entry"},l("article",{class:"forja-portfolio__card"},o.logoUrl&&l("img",{src:o.logoUrl,alt:"",class:"forja-portfolio__logo",loading:"lazy"}),l("div",{class:"forja-portfolio__details"},l("h4",{class:"forja-portfolio__role"},o.role),l("p",{class:"forja-portfolio__company"},o.company),o.period&&l("time",{class:"forja-portfolio__period"},o.period),o.description&&l("div",{class:"forja-portfolio__description",innerHTML:o.description})))))))):null}renderEducation(){return this.education&&0!==this.education.length?l("div",{class:"forja-portfolio__education"},l("h3",{class:"forja-portfolio__group-title"},"Education"),l("ol",{class:"forja-portfolio__list"},this.education.map((o=>l("li",{class:"forja-portfolio__entry"},l("article",{class:"forja-portfolio__card"},l("div",{class:"forja-portfolio__details"},l("h4",{class:"forja-portfolio__role"},o.degree),l("p",{class:"forja-portfolio__company"},o.institution),o.period&&l("time",{class:"forja-portfolio__period"},o.period),o.description&&l("div",{class:"forja-portfolio__description",innerHTML:o.description})))))))):null}renderSkills(){if(!this.skills||0===this.skills.length)return null;const o=this.skills.reduce(((o,s)=>{const r=s.category||"General";return o[r]||(o[r]=[]),o[r].push(s),o}),{});return l("div",{class:"forja-portfolio__skills"},l("h3",{class:"forja-portfolio__group-title"},"Skills"),Object.entries(o).map((([s,r])=>l("div",{class:"forja-portfolio__skill-group"},Object.keys(o).length>1&&l("h4",{class:"forja-portfolio__skill-category"},s),l("ul",{class:"forja-portfolio__skill-list","data-columns":this.columns},r.map((o=>l("li",{class:"forja-portfolio__skill"},o.name))))))))}render(){return l("section",{key:"
|
|
1
|
+
import{t as o,p as s,H as r,h as l}from"./p-B8rQMNWH.js";import{s as t}from"./p-CTbyYfdB.js";const i=s(class extends r{constructor(o){super(),!1!==o&&this.__registerHost()}renderExperiences(){return this.experiences&&0!==this.experiences.length?l("div",{class:"forja-portfolio__experiences"},l("h3",{class:"forja-portfolio__group-title"},"Experience"),l("ol",{class:"forja-portfolio__list"},this.experiences.map((o=>l("li",{class:"forja-portfolio__entry"},l("article",{class:"forja-portfolio__card"},o.logoUrl&&l("img",{src:o.logoUrl,alt:"",class:"forja-portfolio__logo",loading:"lazy"}),l("div",{class:"forja-portfolio__details"},l("h4",{class:"forja-portfolio__role"},o.role),l("p",{class:"forja-portfolio__company"},o.company),o.period&&l("time",{class:"forja-portfolio__period"},o.period),o.description&&l("div",{class:"forja-portfolio__description",innerHTML:o.description})))))))):null}renderEducation(){return this.education&&0!==this.education.length?l("div",{class:"forja-portfolio__education"},l("h3",{class:"forja-portfolio__group-title"},"Education"),l("ol",{class:"forja-portfolio__list"},this.education.map((o=>l("li",{class:"forja-portfolio__entry"},l("article",{class:"forja-portfolio__card"},l("div",{class:"forja-portfolio__details"},l("h4",{class:"forja-portfolio__role"},o.degree),l("p",{class:"forja-portfolio__company"},o.institution),o.period&&l("time",{class:"forja-portfolio__period"},o.period),o.description&&l("div",{class:"forja-portfolio__description",innerHTML:o.description})))))))):null}renderSkills(){if(!this.skills||0===this.skills.length)return null;const o=this.skills.reduce(((o,s)=>{const r=s.category||"General";return o[r]||(o[r]=[]),o[r].push(s),o}),{});return l("div",{class:"forja-portfolio__skills"},l("h3",{class:"forja-portfolio__group-title"},"Skills"),Object.entries(o).map((([s,r])=>l("div",{class:"forja-portfolio__skill-group"},Object.keys(o).length>1&&l("h4",{class:"forja-portfolio__skill-category"},s),l("ul",{class:"forja-portfolio__skill-list","data-columns":this.columns},r.map((o=>l("li",{class:"forja-portfolio__skill"},o.name))))))))}render(){return l("section",{key:"506011a5c845a8cbee32a77a2081a269efa3c2d4",class:"forja-portfolio","aria-label":t(this.sectionTitle,"Portfolio")},l("slot",{key:"f4c91d111a4e49a2492a5056376b1c2245d7db1f",name:"before"}),this.sectionTitle&&l("h2",{key:"801b3d72f636ed6e5d51f37748ad980970acc72c",class:"forja-portfolio__title"},this.sectionTitle),this.text&&l("div",{key:"2770e9835554376f00a46ad670cc2530651e6dfc",class:"forja-portfolio__text",innerHTML:this.text}),this.renderExperiences(),this.renderEducation(),this.renderSkills(),l("slot",{key:"48ded21e8a2ac6d279ea1e39d6fa6eaec32ef7aa",name:"after"}))}},[260,"forja-portfolio",{sectionTitle:[1,"section-title"],text:[1],experiences:[16],education:[16],skills:[16],columns:[2]}]);function a(){"undefined"!=typeof customElements&&["forja-portfolio"].forEach((s=>{"forja-portfolio"===s&&(customElements.get(o(s))||customElements.define(o(s),i))}))}a();const e=i,f=a;export{e as ForjaPortfolio,f as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as i,p as s,H as
|
|
1
|
+
import{t as i,p as s,H as e,h as c}from"./p-B8rQMNWH.js";import{s as r}from"./p-CTbyYfdB.js";const a=s(class extends e{constructor(i){super(),!1!==i&&this.__registerHost()}render(){const i=this.tiers&&this.tiers.length>0;return c("section",{key:"ecb73e364f3f4892d3d937fc7fa5df7b1f1a338e",class:"forja-pricing","aria-label":r(this.sectionTitle,"Pricing")},c("slot",{key:"08905beca81a6eb6afb74d161f47bc7e0f5b69c4",name:"before"}),(this.sectionTitle||this.text)&&c("div",{key:"fa94236ab6731c6e2f7401075bba874ed39206b9",class:"forja-pricing__header"},this.sectionTitle&&c("h2",{key:"8ced20c10ac8235fd2525c6cbbc4b5689c10fe18",class:"forja-pricing__title"},this.sectionTitle),this.text&&c("div",{key:"bf6f79ee461263f8e5bd9af2c2233683fe6cf110",class:"forja-pricing__text",innerHTML:this.text})),c("div",{class:"forja-pricing__tiers",role:"list","data-columns":this.columns},i?this.tiers.map((i=>c("div",{class:"forja-pricing__tier"+(i.highlighted?" forja-pricing__tier--highlighted":""),role:"listitem"},c("h3",{class:"forja-pricing__tier-name"},i.name),c("div",{class:"forja-pricing__price"},c("span",{class:"forja-pricing__amount"},i.price),i.period&&c("span",{class:"forja-pricing__period"},i.period)),i.description&&c("p",{class:"forja-pricing__description"},i.description),i.features&&i.features.length>0&&c("ul",{class:"forja-pricing__features"},i.features.map((i=>c("li",{class:"forja-pricing__feature"},i)))),i.buttonText&&i.buttonHref&&c("a",{href:i.buttonHref,class:"forja-pricing__cta"},i.buttonText)))):c("slot",null)),c("slot",{key:"138c32c758745fc0c225c981e15da56557659395",name:"after"}))}},[260,"forja-pricing",{sectionTitle:[1,"section-title"],text:[1],tiers:[16],columns:[2]}]);function t(){"undefined"!=typeof customElements&&["forja-pricing"].forEach((s=>{"forja-pricing"===s&&(customElements.get(i(s))||customElements.define(i(s),a))}))}t();const f=a,n=t;export{f as ForjaPricing,n as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as s,p as e,H as t,h as a}from"./p-B8rQMNWH.js";import{s as c}from"./p-CTbyYfdB.js";const o=e(class extends t{constructor(s){super(),!1!==s&&this.__registerHost()}render(){const s=this.items&&this.items.length>0;return a("section",{key:"
|
|
1
|
+
import{t as s,p as e,H as t,h as a}from"./p-B8rQMNWH.js";import{s as c}from"./p-CTbyYfdB.js";const o=e(class extends t{constructor(s){super(),!1!==s&&this.__registerHost()}render(){const s=this.items&&this.items.length>0;return a("section",{key:"4fddb0d0031673c60d81741111e6fff5ebbb20a6",class:"forja-projects","aria-label":c(this.sectionTitle,"Projects")},a("slot",{key:"0a295eabcbfa33f584f1538b84b70cb85fd012ae",name:"before"}),this.sectionTitle&&a("h2",{key:"3792ed7f5e6e86dc9fd36274a361bffcc1267d8e",class:"forja-projects__title"},this.sectionTitle),this.text&&a("div",{key:"246daa3ff95477f019d70c1d2c3c24ccade0ecb1",class:"forja-projects__text",innerHTML:this.text}),s?a("div",{class:"forja-projects__grid",role:"list","data-columns":this.columns},this.items.map((s=>a("article",{class:"forja-projects__card",role:"listitem"},s.imageUrl&&a("img",{src:s.imageUrl,alt:"",class:"forja-projects__image",loading:"lazy"}),a("div",{class:"forja-projects__content"},a("div",{class:"forja-projects__header"},a("h3",{class:"forja-projects__name"},s.href?a("a",{href:s.href,class:"forja-projects__link"},s.title):s.title),s.status&&a("span",{class:"forja-projects__status"},s.status)),s.description&&a("div",{class:"forja-projects__description",innerHTML:s.description}),s.tags&&s.tags.length>0&&a("ul",{class:"forja-projects__tags"},s.tags.map((s=>a("li",{class:"forja-projects__tag"},s))))))))):a("slot",null),a("slot",{key:"605aa0a889bdc8199dca6895248f3cf19d8d4c83",name:"after"}))}},[260,"forja-projects",{sectionTitle:[1,"section-title"],text:[1],items:[16],columns:[2]}]);function r(){"undefined"!=typeof customElements&&["forja-projects"].forEach((e=>{"forja-projects"===e&&(customElements.get(s(e))||customElements.define(s(e),o))}))}r();const f=o,i=r;export{f as ForjaProjects,i as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as s,p as t,H as a,h as e}from"./p-B8rQMNWH.js";import{s as
|
|
1
|
+
import{t as s,p as t,H as a,h as e}from"./p-B8rQMNWH.js";import{s as c}from"./p-CTbyYfdB.js";const o=t(class extends a{constructor(s){super(),!1!==s&&this.__registerHost()}render(){const s=this.items&&this.items.length>0,t=["forja-stats",this.statsStyle&&"forja-stats--"+this.statsStyle].filter(Boolean).join(" ");return e("section",{key:"cf1a9139a3b18e099e66f5abcfdcf7f5c90cdf74",class:t,"aria-label":c(this.sectionTitle,"Statistics")},e("slot",{key:"fc61e06e592f1cc1d1f36d47b2b8fd33b520f421",name:"before"}),this.sectionTitle&&e("h2",{key:"42026c0e7b55f0f7b185d969ca1219b1c44f7632",class:"forja-stats__title"},this.sectionTitle),this.text&&e("div",{key:"d6f9d119958786dbef4aa39e6bae82a22465e21a",class:"forja-stats__text",innerHTML:this.text}),s?e("dl",{class:"forja-stats__list","data-columns":this.columns},this.items.map((s=>e("div",{class:"forja-stats__item"},e("dd",{class:"forja-stats__value"},s.value),e("dt",{class:"forja-stats__label"},s.label))))):e("slot",null),e("slot",{key:"468c62818cee963c316c57891964bac3d4f793a6",name:"after"}))}},[260,"forja-stats",{sectionTitle:[1,"section-title"],text:[1],items:[16],columns:[2],statsStyle:[1,"stats-style"]}]);function f(){"undefined"!=typeof customElements&&["forja-stats"].forEach((t=>{"forja-stats"===t&&(customElements.get(s(t))||customElements.define(s(t),o))}))}f();const i=o,l=f;export{i as ForjaStats,l as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as a,p as s,H as t,h as l}from"./p-B8rQMNWH.js";import{s as e}from"./p-CTbyYfdB.js";const
|
|
1
|
+
import{t as a,p as s,H as t,h as l}from"./p-B8rQMNWH.js";import{s as e}from"./p-CTbyYfdB.js";const o=s(class extends t{constructor(a){super(),!1!==a&&this.__registerHost()}render(){const a=this.tags&&this.tags.length>0;return l("section",{key:"eb6d00e49fa790e23e2397f4927e20d545222217",class:"forja-tag-cloud","aria-label":e(this.sectionTitle,"Tags")},l("slot",{key:"8a34fd949d2f96dd8fd92d6479a052373fc09d00",name:"before"}),this.sectionTitle&&l("h2",{key:"90fd03b82e40b74a16c91ba8c86100e9868239bb",class:"forja-tag-cloud__title"},this.sectionTitle),this.text&&l("div",{key:"7cf8c4c19943defa0e23f852ab27372307fa45b8",class:"forja-tag-cloud__text",innerHTML:this.text}),a?l("nav",{class:"forja-tag-cloud__nav","aria-label":"Tags"},l("ul",{class:"forja-tag-cloud__list",role:"list"},this.tags.map((a=>l("li",{class:"forja-tag-cloud__item"},a.href?l("a",{href:a.href,class:"forja-tag-cloud__tag"},l("span",{class:"forja-tag-cloud__label"},a.label),null!=a.count&&l("span",{class:"forja-tag-cloud__count","aria-label":a.count+" items"},"(",a.count,")")):l("span",{class:"forja-tag-cloud__tag"},l("span",{class:"forja-tag-cloud__label"},a.label),null!=a.count&&l("span",{class:"forja-tag-cloud__count","aria-label":a.count+" items"},"(",a.count,")"))))))):l("slot",null),l("slot",{key:"9d24cb03b6ea67f87f11dd97410ae25ae389276b",name:"after"}))}},[260,"forja-tag-cloud",{sectionTitle:[1,"section-title"],text:[1],tags:[16]}]);function c(){"undefined"!=typeof customElements&&["forja-tag-cloud"].forEach((s=>{"forja-tag-cloud"===s&&(customElements.get(a(s))||customElements.define(a(s),o))}))}c();const f=o,r=c;export{f as ForjaTagCloud,r as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as
|
|
1
|
+
import{t as e,p as s,H as a,h as t}from"./p-B8rQMNWH.js";import{s as o}from"./p-CTbyYfdB.js";const c=s(class extends a{constructor(e){super(),!1!==e&&this.__registerHost(),this.showRole=!0,this.showBio=!0}render(){const e=this.members&&this.members.length>0;return t("section",{key:"65ab08dab0a410e178ce2b0a010987533b575bcd",class:"forja-team","aria-label":o(this.sectionTitle,"Team")},t("slot",{key:"daa75a84eb8bf43d21057b9f3620f96407d65007",name:"before"}),this.sectionTitle&&t("h2",{key:"682f5ee8cf15e378cdb6b33cc80e078886ca29ce",class:"forja-team__title"},this.sectionTitle),this.text&&t("div",{key:"4ce99703de2127a6637bd7e86c3bc0944c6b5960",class:"forja-team__text",innerHTML:this.text}),e?t("ul",{class:"forja-team__grid",role:"list","data-columns":this.columns},this.members.map((e=>t("li",{class:"forja-team__member"},e.imageUrl&&t("figure",{class:"forja-team__photo"},t("img",{src:e.imageUrl,alt:e.name,class:"forja-team__image",loading:"lazy"})),t("h3",{class:"forja-team__name"},e.name),this.showRole&&e.role&&t("p",{class:"forja-team__role"},e.role),this.showBio&&e.bio&&t("p",{class:"forja-team__bio"},e.bio))))):t("slot",null),t("slot",{key:"97fff600c6ed995066a34008edee4a73a9c954d2",name:"after"}))}},[260,"forja-team",{sectionTitle:[1,"section-title"],text:[1],members:[16],columns:[2],showRole:[4,"show-role"],showBio:[4,"show-bio"]}]);function r(){"undefined"!=typeof customElements&&["forja-team"].forEach((s=>{"forja-team"===s&&(customElements.get(e(s))||customElements.define(e(s),c))}))}r();const i=c,l=r;export{i as ForjaTeam,l as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as s,p as t,H as a,h as e}from"./p-B8rQMNWH.js";import{s as i}from"./p-CTbyYfdB.js";const o=t(class extends a{constructor(s){super(),!1!==s&&this.__registerHost()}render(){const s=this.items&&this.items.length>0;return e("section",{key:"
|
|
1
|
+
import{t as s,p as t,H as a,h as e}from"./p-B8rQMNWH.js";import{s as i}from"./p-CTbyYfdB.js";const o=t(class extends a{constructor(s){super(),!1!==s&&this.__registerHost()}render(){const s=this.items&&this.items.length>0;return e("section",{key:"348a3aea6d842d43dcbb8506111d2146347ecf65",class:"forja-testimonials","aria-label":i(this.sectionTitle,"Testimonials")},e("slot",{key:"4d372a82bb34fc2408cb168f349550f5213c1152",name:"before"}),this.sectionTitle&&e("h2",{key:"52323f5e292192065b3ab8a54efb76bc2cb9247f",class:"forja-testimonials__title"},this.sectionTitle),this.text&&e("div",{key:"f285a90d384919c0a6221b02ef2bdddf584c8636",class:"forja-testimonials__text",innerHTML:this.text}),e("div",{class:"forja-testimonials__list",role:"list","data-columns":this.columns},s?this.items.map((s=>e("blockquote",{class:"forja-testimonials__item",role:"listitem"},e("p",{class:"forja-testimonials__quote"},s.quote),e("footer",{class:"forja-testimonials__attribution"},s.avatarUrl&&e("img",{src:s.avatarUrl,alt:"",class:"forja-testimonials__avatar",loading:"lazy"}),e("cite",{class:"forja-testimonials__author"},e("span",{class:"forja-testimonials__name"},s.author),s.role&&e("span",{class:"forja-testimonials__role"},s.role)))))):e("slot",null)),e("slot",{key:"5c88e789b532b1039e2b0c74ec0afc4fb63185fb",name:"after"}))}},[260,"forja-testimonials",{sectionTitle:[1,"section-title"],text:[1],items:[16],columns:[2]}]);function l(){"undefined"!=typeof customElements&&["forja-testimonials"].forEach((t=>{"forja-testimonials"===t&&(customElements.get(s(t))||customElements.define(s(t),o))}))}l();const n=o,c=l;export{n as ForjaTestimonials,c as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t,p as e,H as s,h as
|
|
1
|
+
import{t,p as e,H as s,h as c}from"./p-B8rQMNWH.js";import{s as o}from"./p-CTbyYfdB.js";const f=e(class extends s{constructor(t){super(),!1!==t&&this.__registerHost(),this.width="default",this.alignment="left"}render(){return c("section",{key:"797f9ac88c3c03e2c41e7b8b3bf54b4d43dc3fd9",class:["forja-text","forja-text--"+this.width,"forja-text--"+this.alignment].join(" "),"aria-label":o(this.sectionTitle,"Content")},c("slot",{key:"dc6cc88ac6fde0dc315651f0d7372c3fb44527fc",name:"before"}),this.sectionTitle&&c("h2",{key:"c3e5c0b9bbd3037a9c54db36027928b67a14318f",class:"forja-text__title"},this.sectionTitle),this.text?c("div",{class:"forja-text__content",innerHTML:this.text}):c("div",{class:"forja-text__content"},c("slot",null)),c("slot",{key:"8fe560073c81469ef6669ff945df4d102699152c",name:"after"}))}},[260,"forja-text-block",{sectionTitle:[1,"section-title"],text:[1],width:[1],alignment:[1]}]);function a(){"undefined"!=typeof customElements&&["forja-text-block"].forEach((e=>{"forja-text-block"===e&&(customElements.get(t(e))||customElements.define(t(e),f))}))}a();const n=f,i=a;export{n as ForjaTextBlock,i as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e,p as t,H as s,h as i}from"./p-B8rQMNWH.js";import{s as a}from"./p-CTbyYfdB.js";const l=t(class extends s{constructor(e){super(),!1!==e&&this.__registerHost(),this.layout="vertical",this.showDates=!0}render(){const e=this.events&&this.events.length>0;return i("section",{key:"
|
|
1
|
+
import{t as e,p as t,H as s,h as i}from"./p-B8rQMNWH.js";import{s as a}from"./p-CTbyYfdB.js";const l=t(class extends s{constructor(e){super(),!1!==e&&this.__registerHost(),this.layout="vertical",this.showDates=!0}render(){const e=this.events&&this.events.length>0;return i("section",{key:"2dce62c902a967d64dd5b6a611a177335db92965",class:["forja-timeline","forja-timeline--"+this.layout].join(" "),"aria-label":a(this.sectionTitle,"Timeline")},i("slot",{key:"a68408fe55ac0b4ff1717d90abf94df9744395e8",name:"before"}),this.sectionTitle&&i("h2",{key:"59f55ce9bc8783f510050851f19d124e1e10c869",class:"forja-timeline__title"},this.sectionTitle),this.text&&i("div",{key:"16c053110be832993154c4e88b9f29370d3b66e0",class:"forja-timeline__text",innerHTML:this.text}),e?i("ol",{class:"forja-timeline__list"},this.events.map((e=>i("li",{class:"forja-timeline__item"},this.showDates&&e.date&&i("time",{class:"forja-timeline__date"},e.date),i("h3",{class:"forja-timeline__event-title"},e.title),e.text&&i("div",{class:"forja-timeline__event-text",innerHTML:e.text}))))):i("slot",null),i("slot",{key:"112addeae24306716d65f4500fb6a2dbafb8a977",name:"after"}))}},[260,"forja-timeline",{sectionTitle:[1,"section-title"],text:[1],events:[16],layout:[1],showDates:[4,"show-dates"]}]);function n(){"undefined"!=typeof customElements&&["forja-timeline"].forEach((t=>{"forja-timeline"===t&&(customElements.get(e(t))||customElements.define(e(t),l))}))}n();const o=l,f=n;export{o as ForjaTimeline,f as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e,p as t,H as s,h as o}from"./p-B8rQMNWH.js";import{s as
|
|
1
|
+
import{t as e,p as t,H as s,h as o}from"./p-B8rQMNWH.js";import{s as i}from"./p-CTbyYfdB.js";const a=t(class extends s{constructor(e){super(),!1!==e&&this.__registerHost(),this.provider="youtube",this.autoplay=!1,this.aspectRatio="16:9"}getAspectClass(){return{"16:9":"forja-video--16-9","4:3":"forja-video--4-3","1:1":"forja-video--1-1"}[this.aspectRatio]||"forja-video--16-9"}isSelfHosted(){return"self-hosted"===this.provider}render(){const e=["forja-video",this.getAspectClass()].join(" ");return o("section",{key:"3243f9bd00cd257d706cf6ca3ee463fc2f1de542",class:e,"aria-label":i(this.sectionTitle,"Video")},o("slot",{key:"a95a30fcd2ce9e696a614b3e5614c32f23bb887c",name:"before"}),this.sectionTitle&&o("h2",{key:"d43d21c2d9e78ac33670d6c7073180d813c2d868",class:"forja-video__title"},this.sectionTitle),this.text&&o("div",{key:"98a11b54335f07c79f8ed7a0576378d223f91bfb",class:"forja-video__text",innerHTML:this.text}),this.videoUrl&&o("figure",{key:"b6e4b9436e7c4f0040b00d8173ac2cf417acd575",class:"forja-video__container"},this.isSelfHosted()?o("video",{class:"forja-video__player",src:this.videoUrl,controls:!0,autoplay:this.autoplay},o("track",{kind:"captions"})):o("iframe",{class:"forja-video__embed",src:this.autoplay?this.videoUrl+"?autoplay=1":this.videoUrl,title:this.sectionTitle||"Embedded video",allowFullScreen:!0,loading:"lazy"})),o("slot",{key:"788a8b32e8e0e524cf681995cd25f3b4ed565371",name:"after"}))}},[260,"forja-video",{sectionTitle:[1,"section-title"],text:[1],videoUrl:[1,"video-url"],provider:[1],autoplay:[4],aspectRatio:[1,"aspect-ratio"]}]);function d(){"undefined"!=typeof customElements&&["forja-video"].forEach((t=>{"forja-video"===t&&(customElements.get(e(t))||customElements.define(e(t),a))}))}d();const c=a,r=d;export{c as ForjaVideo,r as defineCustomElement}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{h as a}from"./p-B8rQMNWH.js";function t(a){const t=a.querySelector('input[name="altcha"]');return!!t&&t.value.length>0}function n(t,n){return a("altcha-widget",{class:{"forja-altcha":!0},name:"altcha",challengeurl:t,"data-testid":n})}export{t as a,n as r}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { h } from './index-CJAmAUMU.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Self-hosted ALTCHA helpers shared by the form sections (#773).
|
|
5
|
+
*
|
|
6
|
+
* The open-source `<altcha-widget>` custom element solves a server-issued
|
|
7
|
+
* proof-of-work challenge and injects a hidden `altcha` input carrying the
|
|
8
|
+
* solved payload. Forms forward that payload to the API as the submission's
|
|
9
|
+
* `bot_protection_token`. No Sentinel / paid features are involved; the host
|
|
10
|
+
* page registers the widget (e.g. `import 'altcha'`).
|
|
11
|
+
*/
|
|
12
|
+
/** True once the widget has injected a non-empty solved `altcha` input. */
|
|
13
|
+
function altchaSolved(form) {
|
|
14
|
+
const input = form.querySelector('input[name="altcha"]');
|
|
15
|
+
return !!input && input.value.length > 0;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Render the ALTCHA widget bound to a per-form challenge endpoint. `testId`
|
|
19
|
+
* lets each section namespace its widget for e2e targeting.
|
|
20
|
+
*/
|
|
21
|
+
function renderAltchaWidget(challengeUrl, testId) {
|
|
22
|
+
return h('altcha-widget', {
|
|
23
|
+
class: { 'forja-altcha': true },
|
|
24
|
+
name: 'altcha',
|
|
25
|
+
challengeurl: challengeUrl,
|
|
26
|
+
'data-testid': testId,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export { altchaSolved as a, renderAltchaWidget as r };
|
|
@@ -1,22 +1,45 @@
|
|
|
1
1
|
import { r as registerInstance, c as createEvent, h } from './index-CJAmAUMU.js';
|
|
2
2
|
import { a as sectionId, s as sectionLabel } from './a11y-CTbyYfdB.js';
|
|
3
|
+
import { a as altchaSolved, r as renderAltchaWidget } from './altcha-BauEO4NR.js';
|
|
3
4
|
|
|
4
5
|
const ForjaContact = class {
|
|
5
6
|
constructor(hostRef) {
|
|
6
7
|
registerInstance(this, hostRef);
|
|
7
8
|
this.forjaSubmit = createEvent(this, "forjaSubmit");
|
|
9
|
+
/**
|
|
10
|
+
* Bot-protection requirement for this form (#773). When `'mandatory'`, a
|
|
11
|
+
* self-hosted ALTCHA widget is rendered and submission is blocked until the
|
|
12
|
+
* visitor's browser has solved the proof-of-work. The open-source
|
|
13
|
+
* `<altcha-widget>` element must be registered by the host page (e.g.
|
|
14
|
+
* `import 'altcha'`) — no Sentinel/paid features are used.
|
|
15
|
+
*/
|
|
16
|
+
this.botProtection = 'none';
|
|
17
|
+
/** Set when a Mandatory form is submitted before ALTCHA is solved. */
|
|
18
|
+
this.botProtectionUnsolved = false;
|
|
8
19
|
this.handleSubmit = (e) => {
|
|
9
20
|
e.preventDefault();
|
|
10
21
|
const form = e.target;
|
|
22
|
+
// Block submission until the ALTCHA widget has injected a solved hidden
|
|
23
|
+
// `altcha` input. Checks the DOM directly (not FormData) so the gate is
|
|
24
|
+
// independent of the form-serialization step.
|
|
25
|
+
if (this.requiresAltcha && !altchaSolved(form)) {
|
|
26
|
+
this.botProtectionUnsolved = true;
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
this.botProtectionUnsolved = false;
|
|
11
30
|
this.forjaSubmit.emit(new FormData(form));
|
|
12
31
|
};
|
|
13
32
|
}
|
|
33
|
+
get requiresAltcha() {
|
|
34
|
+
return this.botProtection === 'mandatory';
|
|
35
|
+
}
|
|
14
36
|
render() {
|
|
15
37
|
const hasFields = this.fields && this.fields.length > 0;
|
|
16
|
-
return (h("section", { key: '
|
|
38
|
+
return (h("section", { key: 'f5fa0e767bf2ed4abf6cf716b170fba8ac8fc569', class: "forja-contact", "aria-label": sectionLabel(this.sectionTitle, 'Contact') }, h("slot", { key: 'ee7559a984260125a9f7bbece28a3383e5b8d383', name: "before" }), h("div", { key: '0ed33ac797e6f9e540d8b62a81f060b3d94f3303', class: "forja-contact__content" }, this.sectionTitle && h("h2", { key: '40d2850b9d1add8cd37b0238818c9bd351db2c0f', class: "forja-contact__title" }, this.sectionTitle), this.text && h("div", { key: '03487d7fdd10dfc55044eb320a26bc9ba69e122e', class: "forja-contact__text", innerHTML: this.text }), this.buttonText && this.buttonHref && (h("a", { key: '7836f8b9458ce0a90309ccca829fb5a452d2eeec', href: this.buttonHref, class: "forja-contact__cta" }, this.buttonText))), hasFields ? (h("form", { class: "forja-contact__form", action: this.formAction, method: this.formAction ? 'post' : undefined, onSubmit: this.handleSubmit }, this.fields.map(field => {
|
|
17
39
|
const fieldId = sectionId(field.name, 'contact');
|
|
18
40
|
return (h("div", { class: "forja-contact__field" }, h("label", { class: "forja-contact__label", htmlFor: fieldId }, field.label, field.required && h("span", { "aria-hidden": "true" }, " *")), field.type === 'textarea' ? (h("textarea", { id: fieldId, name: field.name, class: "forja-contact__input forja-contact__input--textarea", required: field.required, "aria-required": field.required ? 'true' : undefined, placeholder: field.placeholder })) : (h("input", { id: fieldId, name: field.name, type: field.type, class: "forja-contact__input", required: field.required, "aria-required": field.required ? 'true' : undefined, placeholder: field.placeholder }))));
|
|
19
|
-
}),
|
|
41
|
+
}), this.requiresAltcha &&
|
|
42
|
+
renderAltchaWidget(this.altchaChallengeUrl, 'forja-contact-altcha'), this.botProtectionUnsolved && (h("p", { class: "forja-contact__error", role: "alert", "data-testid": "forja-contact-altcha-error" }, "Please complete the verification before submitting.")), h("button", { type: "submit", class: "forja-contact__submit" }, this.buttonText || 'Send'))) : (h("slot", null)), h("slot", { key: '71b4d6ede8b21c3e841a74477c1093a5e8fc33fa', name: "after" })));
|
|
20
43
|
}
|
|
21
44
|
};
|
|
22
45
|
|
|
@@ -1,21 +1,36 @@
|
|
|
1
1
|
import { r as registerInstance, c as createEvent, h } from './index-CJAmAUMU.js';
|
|
2
2
|
import { a as sectionId, s as sectionLabel } from './a11y-CTbyYfdB.js';
|
|
3
|
+
import { a as altchaSolved, r as renderAltchaWidget } from './altcha-BauEO4NR.js';
|
|
3
4
|
|
|
4
5
|
const ForjaNewsletter = class {
|
|
5
6
|
constructor(hostRef) {
|
|
6
7
|
registerInstance(this, hostRef);
|
|
7
8
|
this.forjaSubmit = createEvent(this, "forjaSubmit");
|
|
8
9
|
this.buttonText = 'Subscribe';
|
|
10
|
+
/** Bot-protection requirement (#773). When `'mandatory'`, renders a
|
|
11
|
+
* self-hosted ALTCHA widget and gates submission until it is solved. */
|
|
12
|
+
this.botProtection = 'none';
|
|
13
|
+
/** Set when a Mandatory form is submitted before ALTCHA is solved. */
|
|
14
|
+
this.botProtectionUnsolved = false;
|
|
9
15
|
this.handleSubmit = (e) => {
|
|
10
16
|
e.preventDefault();
|
|
11
17
|
const form = e.target;
|
|
18
|
+
if (this.requiresAltcha && !altchaSolved(form)) {
|
|
19
|
+
this.botProtectionUnsolved = true;
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
this.botProtectionUnsolved = false;
|
|
12
23
|
this.forjaSubmit.emit(new FormData(form));
|
|
13
24
|
};
|
|
14
25
|
}
|
|
26
|
+
get requiresAltcha() {
|
|
27
|
+
return this.botProtection === 'mandatory';
|
|
28
|
+
}
|
|
15
29
|
render() {
|
|
16
30
|
const emailId = sectionId(this.sectionTitle, 'newsletter-email');
|
|
17
31
|
const nameId = sectionId(this.sectionTitle, 'newsletter-name');
|
|
18
|
-
return (h("section", { key: '
|
|
32
|
+
return (h("section", { key: '0d15c9d013c2f1250999ad86d853cbb5126bbddc', class: "forja-newsletter", "aria-label": sectionLabel(this.sectionTitle, 'Newsletter') }, h("slot", { key: 'aba062b799c952a6936267573bf841fb7403a350', name: "before" }), this.sectionTitle && h("h2", { key: 'f00db5dd8b536dca31d1f39453753e4e9126f97f', class: "forja-newsletter__title" }, this.sectionTitle), this.text && h("div", { key: '857102c1929b0615a5782d97ffc969d12bb3bec6', class: "forja-newsletter__text", innerHTML: this.text }), h("form", { key: '9ac77419043d02719d05c949e8ac6e13f411affe', class: "forja-newsletter__form", action: this.formAction, method: this.formAction ? 'post' : undefined, onSubmit: this.handleSubmit }, this.showName && (h("div", { key: '073625ebadd2dd040dc19e48f136adb4919d428b', class: "forja-newsletter__field" }, h("label", { key: '3133a36ccdf1c7f8a7204e2e83c71b16b1e4dcf2', class: "forja-newsletter__label", htmlFor: nameId }, "Name"), h("input", { key: 'f49b6e4e3b7f1037e6b7aaa18a6a4b10cb15d730', id: nameId, name: "name", type: "text", class: "forja-newsletter__input" }))), h("div", { key: '59b5408e884026f6351b1397e536fc184ac2c1de', class: "forja-newsletter__field" }, h("label", { key: '436373562856e04f27addcacba5083805155c913', class: "forja-newsletter__label", htmlFor: emailId }, "Email"), h("input", { key: '042c434c7fab15fd4235e1fe2d6b509db81d1e43', id: emailId, name: "email", type: "email", class: "forja-newsletter__input", required: true, "aria-required": "true" })), this.requiresAltcha &&
|
|
33
|
+
renderAltchaWidget(this.altchaChallengeUrl, 'forja-newsletter-altcha'), this.botProtectionUnsolved && (h("p", { key: '4375ea4a0f67a9dad1b6e1797e898c4b90125dfb', class: "forja-newsletter__error", role: "alert", "data-testid": "forja-newsletter-altcha-error" }, "Please complete the verification before submitting.")), h("button", { key: '7eddc2c91799598f71af799af6c46159d688195a', type: "submit", class: "forja-newsletter__submit" }, this.buttonText)), h("slot", { key: 'f13a320d972bbb402cb218ee6d4d2650f5f15161', name: "after" })));
|
|
19
34
|
}
|
|
20
35
|
};
|
|
21
36
|
|
|
@@ -28,7 +28,7 @@ const ForjaPortfolio = class {
|
|
|
28
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
29
|
}
|
|
30
30
|
render() {
|
|
31
|
-
return (h("section", { key: '
|
|
31
|
+
return (h("section", { key: '506011a5c845a8cbee32a77a2081a269efa3c2d4', class: "forja-portfolio", "aria-label": sectionLabel(this.sectionTitle, 'Portfolio') }, h("slot", { key: 'f4c91d111a4e49a2492a5056376b1c2245d7db1f', name: "before" }), this.sectionTitle && h("h2", { key: '801b3d72f636ed6e5d51f37748ad980970acc72c', class: "forja-portfolio__title" }, this.sectionTitle), this.text && h("div", { key: '2770e9835554376f00a46ad670cc2530651e6dfc', class: "forja-portfolio__text", innerHTML: this.text }), this.renderExperiences(), this.renderEducation(), this.renderSkills(), h("slot", { key: '48ded21e8a2ac6d279ea1e39d6fa6eaec32ef7aa', name: "after" })));
|
|
32
32
|
}
|
|
33
33
|
};
|
|
34
34
|
|
|
@@ -7,7 +7,7 @@ const ForjaPricing = class {
|
|
|
7
7
|
}
|
|
8
8
|
render() {
|
|
9
9
|
const hasTiers = this.tiers && this.tiers.length > 0;
|
|
10
|
-
return (h("section", { key: '
|
|
10
|
+
return (h("section", { key: 'ecb73e364f3f4892d3d937fc7fa5df7b1f1a338e', class: "forja-pricing", "aria-label": sectionLabel(this.sectionTitle, 'Pricing') }, h("slot", { key: '08905beca81a6eb6afb74d161f47bc7e0f5b69c4', name: "before" }), (this.sectionTitle || this.text) && (h("div", { key: 'fa94236ab6731c6e2f7401075bba874ed39206b9', class: "forja-pricing__header" }, this.sectionTitle && h("h2", { key: '8ced20c10ac8235fd2525c6cbbc4b5689c10fe18', class: "forja-pricing__title" }, this.sectionTitle), this.text && h("div", { key: 'bf6f79ee461263f8e5bd9af2c2233683fe6cf110', 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: '138c32c758745fc0c225c981e15da56557659395', name: "after" })));
|
|
11
11
|
}
|
|
12
12
|
};
|
|
13
13
|
|
|
@@ -7,7 +7,7 @@ const ForjaProjects = class {
|
|
|
7
7
|
}
|
|
8
8
|
render() {
|
|
9
9
|
const hasItems = this.items && this.items.length > 0;
|
|
10
|
-
return (h("section", { key: '
|
|
10
|
+
return (h("section", { key: '4fddb0d0031673c60d81741111e6fff5ebbb20a6', class: "forja-projects", "aria-label": sectionLabel(this.sectionTitle, 'Projects') }, h("slot", { key: '0a295eabcbfa33f584f1538b84b70cb85fd012ae', name: "before" }), this.sectionTitle && h("h2", { key: '3792ed7f5e6e86dc9fd36274a361bffcc1267d8e', class: "forja-projects__title" }, this.sectionTitle), this.text && h("div", { key: '246daa3ff95477f019d70c1d2c3c24ccade0ecb1', 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: '605aa0a889bdc8199dca6895248f3cf19d8d4c83', name: "after" })));
|
|
11
11
|
}
|
|
12
12
|
};
|
|
13
13
|
|