@brad-frost-web/eddie-recipes 0.18.0

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/package.json ADDED
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "@brad-frost-web/eddie-recipes",
3
+ "version": "0.18.0",
4
+ "private": false,
5
+ "publishConfig": {
6
+ "access": "public"
7
+ },
8
+ "description": "Recipe components for the Eddie Design System — compositions and product-specific components built on top of the core library",
9
+ "type": "module",
10
+ "scripts": {
11
+ "build": "vite build",
12
+ "plop": "plop recipe"
13
+ },
14
+ "dependencies": {
15
+ "classnames": "^2.5.1",
16
+ "lit": "^3.3.1",
17
+ "sass": "^1.93.2"
18
+ },
19
+ "peerDependencies": {
20
+ "@brad-frost-web/eddie-web-components": "^0.18.0",
21
+ "@brad-frost-web/eddie-design-tokens": "^0.18.0"
22
+ },
23
+ "devDependencies": {
24
+ "del-cli": "^7.0.0",
25
+ "plop": "^4.0.4",
26
+ "typescript": "~5.9.3",
27
+ "vite": "^7.1.7",
28
+ "vite-plugin-css-injected-by-js": "^3.5.2",
29
+ "vite-plugin-dts": "^4.5.4",
30
+ "vite-plugin-dynamic-import": "^1.6.0",
31
+ "vite-plugin-static-copy": "^3.1.3"
32
+ }
33
+ }
@@ -0,0 +1,17 @@
1
+ import { EdElement } from '@brad-frost-web/eddie-web-components/components/EdElement';
2
+ /**
3
+ * Example form recipe demonstrating various form components working together.
4
+ */
5
+ export declare class EdRExampleForm extends EdElement {
6
+ static get styles(): import('lit').CSSResult;
7
+ formData: string;
8
+ logFiles(e: CustomEvent): void;
9
+ render(): import('lit-html').TemplateResult<1>;
10
+ handleSubmit(e: Event): void;
11
+ }
12
+ declare global {
13
+ interface HTMLElementTagNameMap {
14
+ 'ed-r-example-form': EdRExampleForm;
15
+ }
16
+ }
17
+ //# sourceMappingURL=example-form.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"example-form.d.ts","sourceRoot":"","sources":["../../../../../packages/eddie-recipes/recipes/common/example-form/example-form.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2DAA2D,CAAC;AACtF,OAAO,2EAA2E,CAAC;AACnF,OAAO,+DAA+D,CAAC;AACvE,OAAO,yFAAyF,CAAC;AACjG,OAAO,+EAA+E,CAAC;AACvF,OAAO,yEAAyE,CAAC;AACjF,OAAO,iEAAiE,CAAC;AACzE,OAAO,mFAAmF,CAAC;AAC3F,OAAO,yEAAyE,CAAC;AACjF,OAAO,2EAA2E,CAAC;AACnF,OAAO,uEAAuE,CAAC;AAC/E,OAAO,+EAA+E,CAAC;AACvF,OAAO,+DAA+D,CAAC;AAKvE;;GAEG;AACH,qBAAa,cAAe,SAAQ,SAAS;IAC3C,MAAM,KAAK,MAAM,4BAEhB;IAGD,QAAQ,EAAE,MAAM,CAAM;IAEtB,QAAQ,CAAC,CAAC,EAAE,WAAW;IAOvB,MAAM;IAyFN,YAAY,CAAC,CAAC,EAAE,KAAK;CAiBtB;AAMD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,mBAAmB,EAAE,cAAc,CAAC;KACrC;CACF"}
@@ -0,0 +1,39 @@
1
+ import { EdElement } from '@brad-frost-web/eddie-web-components/components/EdElement';
2
+ /**
3
+ * A card composition for showcasing a project with an image,
4
+ * heading, and descriptive text.
5
+ */
6
+ export declare class EdRProjectCard extends EdElement {
7
+ static get styles(): import('lit').CSSResult;
8
+ /**
9
+ * The project title displayed as a heading
10
+ */
11
+ title?: string;
12
+ /**
13
+ * The project description text
14
+ */
15
+ description?: string;
16
+ /**
17
+ * Image source URL
18
+ */
19
+ imgSrc?: string;
20
+ /**
21
+ * Image alt text
22
+ */
23
+ imgAlt?: string;
24
+ /**
25
+ * Heading tag name for semantic heading level
26
+ */
27
+ headingTagName: 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
28
+ /**
29
+ * URL the card links to
30
+ */
31
+ href?: string;
32
+ render(): import('lit-html').TemplateResult<1>;
33
+ }
34
+ declare global {
35
+ interface HTMLElementTagNameMap {
36
+ 'ed-r-project-card': EdRProjectCard;
37
+ }
38
+ }
39
+ //# sourceMappingURL=project-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-card.d.ts","sourceRoot":"","sources":["../../../../../packages/eddie-recipes/recipes/common/project-card/project-card.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2DAA2D,CAAC;AACtF,OAAO,iEAAiE,CAAC;AACzE,OAAO,2EAA2E,CAAC;AAKnF;;;GAGG;AACH,qBAAa,cAAe,SAAQ,SAAS;IAC3C,MAAM,KAAK,MAAM,4BAEhB;IAED;;OAEG;IAEH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IAEH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IAEH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IAEH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IAEH,cAAc,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAExD;;OAEG;IAEH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,MAAM;CA0BP;AAMD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,mBAAmB,EAAE,cAAc,CAAC;KACrC;CACF"}
@@ -0,0 +1,15 @@
1
+ import { EdElement } from '@brad-frost-web/eddie-web-components/components/EdElement';
2
+ /**
3
+ * Promo block recipe composing a band, heading, text passage, and button
4
+ * into a promotional content block.
5
+ */
6
+ export declare class EdRPromoBlock extends EdElement {
7
+ static get styles(): import('lit').CSSResult;
8
+ render(): import('lit-html').TemplateResult<1>;
9
+ }
10
+ declare global {
11
+ interface HTMLElementTagNameMap {
12
+ 'ed-r-promo-block': EdRPromoBlock;
13
+ }
14
+ }
15
+ //# sourceMappingURL=promo-block.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promo-block.d.ts","sourceRoot":"","sources":["../../../../../packages/eddie-recipes/recipes/common/promo-block/promo-block.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2DAA2D,CAAC;AACtF,OAAO,2DAA2D,CAAC;AACnE,OAAO,+DAA+D,CAAC;AACvE,OAAO,iEAAiE,CAAC;AACzE,OAAO,2EAA2E,CAAC;AAInF;;;GAGG;AACH,qBAAa,aAAc,SAAQ,SAAS;IAC1C,MAAM,KAAK,MAAM,4BAEhB;IAED,MAAM;CAeP;AAMD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,aAAa,CAAC;KACnC;CACF"}
@@ -0,0 +1,14 @@
1
+ import { EdElement } from '@brad-frost-web/eddie-web-components/components/EdElement';
2
+ /**
3
+ * Site footer recipe composing footer, logo, navigation links, and copyright.
4
+ */
5
+ export declare class EdRSiteFooter extends EdElement {
6
+ static get styles(): import('lit').CSSResult;
7
+ render(): import('lit-html').TemplateResult<1>;
8
+ }
9
+ declare global {
10
+ interface HTMLElementTagNameMap {
11
+ 'ed-r-site-footer': EdRSiteFooter;
12
+ }
13
+ }
14
+ //# sourceMappingURL=site-footer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site-footer.d.ts","sourceRoot":"","sources":["../../../../../packages/eddie-recipes/recipes/common/site-footer/site-footer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2DAA2D,CAAC;AACtF,OAAO,+DAA+D,CAAC;AACvE,OAAO,+EAA+E,CAAC;AACvF,OAAO,qEAAqE,CAAC;AAC7E,OAAO,2DAA2D,CAAC;AAInE;;GAEG;AACH,qBAAa,aAAc,SAAQ,SAAS;IAC1C,MAAM,KAAK,MAAM,4BAEhB;IAED,MAAM;CAoBP;AAMD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,aAAa,CAAC;KACnC;CACF"}
@@ -0,0 +1,20 @@
1
+ import { EdElement } from '@brad-frost-web/eddie-web-components/components/EdElement';
2
+ /**
3
+ * Site header recipe composing header, logo, primary nav, and utility nav.
4
+ */
5
+ export declare class EdRSiteHeader extends EdElement {
6
+ static get styles(): import('lit').CSSResult;
7
+ isActive?: boolean;
8
+ searchModalIsActive?: boolean;
9
+ constructor();
10
+ clickHandler(): void;
11
+ openSearchModal(): void;
12
+ closeSearchModal(): void;
13
+ render(): import('lit-html').TemplateResult<1>;
14
+ }
15
+ declare global {
16
+ interface HTMLElementTagNameMap {
17
+ 'ed-r-site-header': EdRSiteHeader;
18
+ }
19
+ }
20
+ //# sourceMappingURL=site-header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site-header.d.ts","sourceRoot":"","sources":["../../../../../packages/eddie-recipes/recipes/common/site-header/site-header.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2DAA2D,CAAC;AACtF,OAAO,+DAA+D,CAAC;AACvE,OAAO,qEAAqE,CAAC;AAC7E,OAAO,2DAA2D,CAAC;AACnE,OAAO,+DAA+D,CAAC;AACvE,OAAO,2DAA2D,CAAC;AACnE,OAAO,6EAA6E,CAAC;AACrF,OAAO,mFAAmF,CAAC;AAC3F,OAAO,yEAAyE,CAAC;AACjF,OAAO,mFAAmF,CAAC;AAC3F,OAAO,yEAAyE,CAAC;AAKjF;;GAEG;AACH,qBAAa,aAAc,SAAQ,SAAS;IAC1C,MAAM,KAAK,MAAM,4BAEhB;IAGD,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;;IAS9B,YAAY;IASZ,eAAe;IAIf,gBAAgB;IAIhB,MAAM;CAwHP;AAMD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,aAAa,CAAC;KACnC;CACF"}
@@ -0,0 +1,133 @@
1
+ import { EdElement as l } from "@brad-frost-web/eddie-web-components/components/EdElement";
2
+ import "@brad-frost-web/eddie-web-components/components/button-group/button-group";
3
+ import "@brad-frost-web/eddie-web-components/components/button/button";
4
+ import "@brad-frost-web/eddie-web-components/components/checkbox-field-item/checkbox-field-item";
5
+ import "@brad-frost-web/eddie-web-components/components/checkbox-field/checkbox-field";
6
+ import "@brad-frost-web/eddie-web-components/components/file-upload/file-upload";
7
+ import "@brad-frost-web/eddie-web-components/components/heading/heading";
8
+ import "@brad-frost-web/eddie-web-components/components/radio-field-item/radio-field-item";
9
+ import "@brad-frost-web/eddie-web-components/components/radio-field/radio-field";
10
+ import "@brad-frost-web/eddie-web-components/components/select-field/select-field";
11
+ import "@brad-frost-web/eddie-web-components/components/text-field/text-field";
12
+ import "@brad-frost-web/eddie-web-components/components/textarea-field/textarea-field";
13
+ import "@brad-frost-web/eddie-web-components/components/toggle/toggle";
14
+ import { unsafeCSS as p, nothing as g, html as m } from "lit";
15
+ import { state as u } from "lit/decorators.js";
16
+ const s = '@charset "UTF-8";:root,:host{--size-base-unit: .5rem}*,::slotted(*),*:before,*:after{box-sizing:border-box}h1,h2,h3,h4,h5,h6{margin:0}.ed-u-margin-none{margin:0!important}.ed-u-margin-sm{margin:.5rem!important}.ed-u-margin-md{margin:1rem!important}.ed-u-margin-lg{margin:1.5rem!important}.ed-u-margin-xl{margin:2rem!important}.ed-u-margin-xxl{margin:4rem!important}.ed-u-margin-top-none{margin-block-start:0!important}.ed-u-margin-top-sm{margin-block-start:.5rem!important}.ed-u-margin-top-md{margin-block-start:1rem!important}.ed-u-margin-top-lg{margin-block-start:1.5rem!important}.ed-u-margin-top-xl{margin-block-start:2rem!important}.ed-u-margin-top-xxl{margin-block-start:4rem!important}.ed-u-margin-right-none{margin-inline-end:0!important}.ed-u-margin-right-sm{margin-inline-end:.5rem!important}.ed-u-margin-right-md{margin-inline-end:1rem!important}.ed-u-margin-right-lg{margin-inline-end:1.5rem!important}.ed-u-margin-right-xl{margin-inline-end:2rem!important}.ed-u-margin-right-xxl{margin-inline-end:4rem!important}.ed-u-margin-bottom-none{margin-block-end:0!important}.ed-u-margin-bottom-sm{margin-block-end:.5rem!important}.ed-u-margin-bottom-md{margin-block-end:1rem!important}.ed-u-margin-bottom-lg{margin-block-end:1.5rem!important}.ed-u-margin-bottom-xl{margin-block-end:2rem!important}.ed-u-margin-bottom-xxl{margin-block-end:4rem!important}.ed-u-margin-bottom-xl-xxl{margin-block-end:2rem!important}@media all and (min-width:48rem){.ed-u-margin-bottom-xl-xxl{margin-block-end:4rem!important}}.ed-u-margin-left-none{margin-inline-start:0!important}.ed-u-margin-left-sm{margin-inline-start:.5rem!important}.ed-u-margin-left-md{margin-inline-start:1rem!important}.ed-u-margin-left-lg{margin-inline-start:1.5rem!important}.ed-u-margin-left-xl{margin-inline-start:2rem!important}.ed-u-margin-left-xxl{margin-inline-start:4rem!important}.ed-u-padding-none{padding:0!important}.ed-u-padding-sm{padding:.5rem!important}.ed-u-padding-md{padding:1rem!important}.ed-u-padding-lg{padding:1.5rem!important}.ed-u-padding-xl{padding:2rem!important}.ed-u-padding-xxl{padding:4rem!important}.ed-u-padding-top-none{padding-block-start:0!important}.ed-u-padding-top-sm{padding-block-start:.5rem!important}.ed-u-padding-top-md{padding-block-start:1rem!important}.ed-u-padding-top-lg{padding-block-start:1.5rem!important}.ed-u-padding-top-xl{padding-block-start:2rem!important}.ed-u-padding-top-xxl{padding-block-start:4rem!important}.ed-u-padding-right-none{padding-inline-end:0!important}.ed-u-padding-right-sm{padding-inline-end:.5rem!important}.ed-u-padding-right-md{padding-inline-end:1rem!important}.ed-u-padding-right-lg{padding-inline-end:1.5rem!important}.ed-u-padding-right-xl{padding-inline-end:2rem!important}.ed-u-padding-right-xxl{padding-inline-end:4rem!important}.ed-u-padding-bottom-none{padding-block-end:0!important}.ed-u-padding-bottom-sm{padding-block-end:.5rem!important}.ed-u-padding-bottom-md{padding-block-end:1rem!important}.ed-u-padding-bottom-lg{padding-block-end:1.5rem!important}.ed-u-padding-bottom-xl{padding-block-end:2rem!important}.ed-u-padding-bottom-xxl{padding-block-end:4rem!important}.ed-u-padding-left-none{padding-inline-start:0!important}.ed-u-padding-left-sm{padding-inline-start:.5rem!important}.ed-u-padding-left-md{padding-inline-start:1rem!important}.ed-u-padding-left-lg{padding-inline-start:1.5rem!important}.ed-u-padding-left-xl{padding-inline-start:2rem!important}.ed-u-padding-left-xxl{padding-inline-start:4rem!important}.ed-u-display-flex{display:flex!important}.ed-u-display-block{display:block!important}';
17
+ var b = Object.defineProperty, c = (a, e, d, n) => {
18
+ for (var t = void 0, i = a.length - 1, r; i >= 0; i--)
19
+ (r = a[i]) && (t = r(e, d, t) || t);
20
+ return t && b(e, d, t), t;
21
+ };
22
+ class o extends l {
23
+ constructor() {
24
+ super(...arguments), this.formData = "";
25
+ }
26
+ static get styles() {
27
+ return p(s);
28
+ }
29
+ logFiles(e) {
30
+ console.log(e.detail.uploadedFiles), e.detail.uploadedFiles.forEach((d) => {
31
+ console.log(d);
32
+ });
33
+ }
34
+ render() {
35
+ const e = [
36
+ {
37
+ optGroupLabel: "Option Group",
38
+ options: [
39
+ {
40
+ label: "Option Group Item 1",
41
+ value: "option-group-item-1"
42
+ },
43
+ {
44
+ label: "Option Group Item 2",
45
+ value: "option-group-item-2",
46
+ selected: !0
47
+ },
48
+ {
49
+ label: "Option Group Item 3",
50
+ value: "option-group-item-3"
51
+ }
52
+ ]
53
+ },
54
+ {
55
+ label: "No option group item 1",
56
+ value: "no-option-group-item-1"
57
+ },
58
+ {
59
+ label: "No option group item 2",
60
+ value: "no-option-group-item-2"
61
+ }
62
+ ];
63
+ return m`
64
+ <iframe name="dummyframe" id="dummyframe" style="display: none;"></iframe>
65
+ <form id="fakeform" action="#" target="dummyframe" @submit=${this.handleSubmit}>
66
+ <ed-textarea-field class="ed-u-display-block ed-u-margin-bottom-lg" name="limerick" label="Write a limerick"></ed-textarea-field>
67
+ <ed-text-field class="ed-u-display-block ed-u-margin-bottom-lg" name="name" label="Enter your name"></ed-text-field>
68
+ <ed-text-field class="ed-u-display-block ed-u-margin-bottom-lg" name="textfield2" value="beagles" label="Best breed of dog"></ed-text-field>
69
+ <ed-checkbox-field class="ed-u-display-block ed-u-margin-bottom-lg">
70
+ <ed-checkbox-field-item name="checkbox-example" value="1">Checkbox field item 1</ed-checkbox-field-item>
71
+ <ed-checkbox-field-item name="checkbox-example" value="2" checked>Checkbox field item 2</ed-checkbox-field-item>
72
+ <ed-checkbox-field-item name="checkbox-example" value="3">Checkbox field item 3</ed-checkbox-field-item>
73
+ </ed-checkbox-field>
74
+ <ed-radio-field class="ed-u-display-block ed-u-margin-bottom-lg">
75
+ <ed-radio-field-item name="radio-example" value="on" checked="${!0}">On</ed-radio-field-item>
76
+ <ed-radio-field-item name="radio-example" value="off">Off</ed-radio-field-item>
77
+ </ed-radio-field>
78
+ <ed-select-field
79
+ class="ed-u-display-block ed-u-margin-bottom-lg"
80
+ .items=${e}
81
+ name="select"
82
+ ?inverted=${!0}
83
+ fieldNote="This is a field note."
84
+ ></ed-select-field>
85
+
86
+ <ed-file-upload
87
+ class="ed-u-display-block ed-u-margin-bottom-lg"
88
+ hideLabel="true,"
89
+ name="file-upload-field"
90
+ ?multiple=${!0}
91
+ @uploadedfiles=${(d) => this.logFiles(d)}
92
+ fieldNote="Supported file types: jpg, jpeg, png, pdf, and csv. Maximum upload file size: 75MB."
93
+ >
94
+ Drag and Drop files here or click and select your files</ed-file-upload
95
+ >
96
+
97
+ <ed-toggle
98
+ ?checked=${!0}
99
+ class="ed-u-display-block ed-u-margin-bottom-lg"
100
+ label="Toggle label"
101
+ name="example-toggle"
102
+ value="Toggle value"
103
+ ></ed-toggle>
104
+
105
+ <ed-button-group>
106
+ <ed-button text="Submit" type="submit" value="123"></ed-button>
107
+ <ed-button text="Reset" type="reset"></ed-button>
108
+ </ed-button-group>
109
+ </form>
110
+ ${this.formData ? m`
111
+ <ed-heading>Submitted form data</ed-heading>
112
+ <pre>
113
+ ${this.formData}
114
+ </pre
115
+ >
116
+ ` : g}
117
+ `;
118
+ }
119
+ handleSubmit(e) {
120
+ e.preventDefault();
121
+ const d = new FormData(e.target), n = {};
122
+ d.forEach((t, i) => {
123
+ n[i] ? Array.isArray(n[i]) ? n[i].push(t) : n[i] = [n[i], t] : n[i] = t;
124
+ }), this.formData = JSON.stringify(n, null, 2);
125
+ }
126
+ }
127
+ c([
128
+ u()
129
+ ], o.prototype, "formData");
130
+ customElements.get("ed-r-example-form") === void 0 && customElements.define("ed-r-example-form", o);
131
+ export {
132
+ o as EdRExampleForm
133
+ };
@@ -0,0 +1,60 @@
1
+ import { EdElement as p } from "@brad-frost-web/eddie-web-components/components/EdElement";
2
+ import "@brad-frost-web/eddie-web-components/components/heading/heading";
3
+ import "@brad-frost-web/eddie-web-components/components/text-passage/text-passage";
4
+ import { unsafeCSS as h, nothing as s, html as d } from "lit";
5
+ import { property as t } from "lit/decorators.js";
6
+ const m = ":root,:host{--size-base-unit: .5rem}*,::slotted(*),*:before,*:after{box-sizing:border-box}h1,h2,h3,h4,h5,h6{margin:0}.ed-r-c-project-card{display:flex;flex-direction:column;height:100%;border-width:var(--ed-theme-border-width-sm);border-style:solid;border-color:var(--ed-theme-color-border-subtle);border-radius:var(--ed-theme-border-radius-md);box-shadow:var(--ed-theme-box-shadow-md);background:var(--ed-theme-color-background-default);overflow:hidden}.ed-r-c-project-card__media{flex:none}.ed-r-c-project-card__img{display:block;width:100%;height:auto;object-fit:cover}.ed-r-c-project-card__body{display:flex;flex-direction:column;flex:1 0 auto;padding:1.5rem;gap:.5rem}.ed-r-c-project-card__title{display:block}.ed-r-c-project-card__link{color:inherit;text-decoration:none}.ed-r-c-project-card__link:hover,.ed-r-c-project-card__link:focus{text-decoration:underline}.ed-r-c-project-card__description{display:block}";
7
+ var _ = Object.defineProperty, o = (c, i, l, g) => {
8
+ for (var r = void 0, a = c.length - 1, n; a >= 0; a--)
9
+ (n = c[a]) && (r = n(i, l, r) || r);
10
+ return r && _(i, l, r), r;
11
+ };
12
+ class e extends p {
13
+ constructor() {
14
+ super(...arguments), this.headingTagName = "h3";
15
+ }
16
+ static get styles() {
17
+ return h(m);
18
+ }
19
+ render() {
20
+ const i = this.componentClassNames("ed-r-c-project-card", {
21
+ "ed-r-c-project-card--has-link": !!this.href
22
+ });
23
+ return d`
24
+ <div class="${i}">
25
+ ${this.imgSrc ? d`<div class="ed-r-c-project-card__media">
26
+ <img class="ed-r-c-project-card__img" src="${this.imgSrc}" alt="${this.imgAlt ?? ""}" />
27
+ </div>` : s}
28
+ <div class="ed-r-c-project-card__body">
29
+ ${this.title ? d`<ed-heading class="ed-r-c-project-card__title" tagName="${this.headingTagName}" variant="headline-sm">
30
+ ${this.href ? d`<a class="ed-r-c-project-card__link" href="${this.href}">${this.title}</a>` : this.title}
31
+ </ed-heading>` : s}
32
+ ${this.description ? d`<ed-text-passage class="ed-r-c-project-card__description">${this.description}</ed-text-passage>` : s}
33
+ <slot></slot>
34
+ </div>
35
+ </div>
36
+ `;
37
+ }
38
+ }
39
+ o([
40
+ t()
41
+ ], e.prototype, "title");
42
+ o([
43
+ t()
44
+ ], e.prototype, "description");
45
+ o([
46
+ t()
47
+ ], e.prototype, "imgSrc");
48
+ o([
49
+ t()
50
+ ], e.prototype, "imgAlt");
51
+ o([
52
+ t()
53
+ ], e.prototype, "headingTagName");
54
+ o([
55
+ t()
56
+ ], e.prototype, "href");
57
+ customElements.get("ed-r-project-card") === void 0 && customElements.define("ed-r-project-card", e);
58
+ export {
59
+ e as EdRProjectCard
60
+ };
@@ -0,0 +1,30 @@
1
+ import { EdElement as o } from "@brad-frost-web/eddie-web-components/components/EdElement";
2
+ import "@brad-frost-web/eddie-web-components/components/band/band";
3
+ import "@brad-frost-web/eddie-web-components/components/button/button";
4
+ import "@brad-frost-web/eddie-web-components/components/heading/heading";
5
+ import "@brad-frost-web/eddie-web-components/components/text-passage/text-passage";
6
+ import { unsafeCSS as t, html as r } from "lit";
7
+ const n = ":root,:host{--size-base-unit: .5rem}*,::slotted(*),*:before,*:after{box-sizing:border-box}h1,h2,h3,h4,h5,h6{margin:0}.ed-r-c-promo-block__inner{display:flex;flex-direction:column;align-items:center;padding:2rem 0}.ed-r-c-promo-block__heading{display:block;margin-block-end:1rem}.ed-r-c-promo-block__button{display:block;margin-block-start:1rem}";
8
+ class s extends o {
9
+ static get styles() {
10
+ return t(n);
11
+ }
12
+ render() {
13
+ const e = this.componentClassNames("ed-r-c-promo-block", {});
14
+ return r`
15
+ <ed-band variant="brand-knockout" class="${e}">
16
+ <ed-layout-container>
17
+ <div class="ed-r-c-promo-block__inner">
18
+ <ed-heading class="ed-r-c-promo-block__heading" tagName="h2">This is a promo block title</ed-heading>
19
+ <ed-text-passage>This is a promo block</ed-text-passage>
20
+ <ed-button class="ed-r-c-promo-block__button" variant="primary" text="See More"></ed-button>
21
+ </div>
22
+ </ed-layout-container>
23
+ </ed-band>
24
+ `;
25
+ }
26
+ }
27
+ customElements.get("ed-r-promo-block") === void 0 && customElements.define("ed-r-promo-block", s);
28
+ export {
29
+ s as EdRPromoBlock
30
+ };
@@ -0,0 +1,35 @@
1
+ import { EdElement as t } from "@brad-frost-web/eddie-web-components/components/EdElement";
2
+ import "@brad-frost-web/eddie-web-components/components/footer/footer";
3
+ import "@brad-frost-web/eddie-web-components/components/link-list-item/link-list-item";
4
+ import "@brad-frost-web/eddie-web-components/components/link-list/link-list";
5
+ import "@brad-frost-web/eddie-web-components/components/logo/logo";
6
+ import { unsafeCSS as o, html as i } from "lit";
7
+ const r = ":root,:host{--size-base-unit: .5rem}*,::slotted(*),*:before,*:after{box-sizing:border-box}h1,h2,h3,h4,h5,h6{margin:0}.ed-r-c-site-footer{display:block;margin-block-start:4rem;margin-block-end:4rem}.ed-r-c-site-footer__middle{padding-block-start:4rem;padding-block-end:4rem}.ed-r-c-site-footer__navigation,.ed-r-c-site-footer__logo{display:block;margin-block-end:2rem}@media all and (min-width:48rem){.ed-r-c-site-footer__logo{justify-content:flex-end}}ed-icon-link-list{display:block;margin-block-end:2rem}.ed-r-c-site-footer__copyright{font-family:var(--ed-theme-typography-body-sm-font-family);font-weight:var(--ed-theme-typography-body-sm-font-weight);font-size:var(--ed-theme-typography-body-sm-font-size);line-height:var(--ed-theme-typography-body-sm-line-height);letter-spacing:var(--ed-theme-typography-body-sm-letter-spacing);text-transform:var(--ed-theme-typography-body-sm-text-transform);margin:0}";
8
+ class s extends t {
9
+ static get styles() {
10
+ return o(r);
11
+ }
12
+ render() {
13
+ const e = this.componentClassNames("ed-r-c-site-footer", {});
14
+ return i`
15
+ <ed-footer class="${e}">
16
+ <ed-layout-container class="ed-r-c-site-footer__layout-container">
17
+ <div class="ed-r-c-site-footer__middle">
18
+ <ed-link-list class="ed-r-c-site-footer__navigation" behavior="horizontal" ?inverted=${!0}>
19
+ <ed-link-list-item href="#" text="Nav Item"></ed-link-list-item>
20
+ <ed-link-list-item href="#" text="Nav Item"></ed-link-list-item>
21
+ <ed-link-list-item href="#" text="Nav Item"></ed-link-list-item>
22
+ <ed-link-list-item href="#" text="Nav Item"></ed-link-list-item>
23
+ </ed-link-list>
24
+ <ed-logo class="ed-r-c-site-footer__logo" size="lg"></ed-logo>
25
+ <p class="ed-r-c-site-footer__copyright">&copy; ${(/* @__PURE__ */ new Date()).getFullYear()}, Brad Frost Web. All Rights Reserved.</p>
26
+ </div>
27
+ </ed-layout-container>
28
+ </ed-footer>
29
+ `;
30
+ }
31
+ }
32
+ customElements.get("ed-r-site-footer") === void 0 && customElements.define("ed-r-site-footer", s);
33
+ export {
34
+ s as EdRSiteFooter
35
+ };
@@ -0,0 +1,165 @@
1
+ import { EdElement as m } from "@brad-frost-web/eddie-web-components/components/EdElement";
2
+ import "@brad-frost-web/eddie-web-components/components/button/button";
3
+ import "@brad-frost-web/eddie-web-components/components/grid-item/grid-item";
4
+ import "@brad-frost-web/eddie-web-components/components/grid/grid";
5
+ import "@brad-frost-web/eddie-web-components/components/header/header";
6
+ import "@brad-frost-web/eddie-web-components/components/logo/logo";
7
+ import "@brad-frost-web/eddie-web-components/components/nav-container/nav-container";
8
+ import "@brad-frost-web/eddie-web-components/components/primary-nav-item/primary-nav-item";
9
+ import "@brad-frost-web/eddie-web-components/components/primary-nav/primary-nav";
10
+ import "@brad-frost-web/eddie-web-components/components/utility-nav-item/utility-nav-item";
11
+ import "@brad-frost-web/eddie-web-components/components/utility-nav/utility-nav";
12
+ import { unsafeCSS as o, html as h } from "lit";
13
+ import { state as s } from "lit/decorators.js";
14
+ const c = '@charset "UTF-8";:root,:host{--size-base-unit: .5rem}*,::slotted(*),*:before,*:after{box-sizing:border-box}h1,h2,h3,h4,h5,h6{margin:0}.ed-u-is-hidden{display:none!important;visibility:hidden!important}.ed-u-is-vishidden{position:absolute!important;overflow:hidden;width:1px;height:1px;padding:0;border:0;clip:rect(1px,1px,1px,1px)}@media all and (min-width:23.4375rem){.ed-u-hide-sm{display:none!important}}@media all and (min-width:48rem){.ed-u-hide-md{display:none!important}}@media all and (min-width:60rem){.ed-u-hide-lg{display:none!important}}@media all and (min-width:75rem){.ed-u-hide-xl{display:none!important}}@media all and (max-width:23.4375rem){.ed-u-show-sm{display:none!important}}@media all and (max-width:48rem){.ed-u-show-md{display:none!important}}@media all and (max-width:60rem){.ed-u-show-lg{display:none!important}}@media all and (max-width:75rem){.ed-u-show-xl{display:none!important}}:host{display:block}.ed-r-c-site-header__layout-container{width:100%}.ed-r-c-site-header__inner{display:flex;align-items:center;padding-block-start:.5rem;padding-block-end:.5rem}.ed-r-c-site-header__nav-container{display:none;margin-inline-start:auto}.ed-r-c-site-header.ed-is-active .ed-r-c-site-header__nav-container{display:block}@media all and (min-width:48rem){.ed-r-c-site-header__nav-container{display:block}}.ed-r-c-site-header__menu-button{margin-inline-start:1rem}@media all and (min-width:48rem){.ed-r-c-site-header__menu-button{display:none}}.ed-r-c-site-header__utility-nav-search{display:block}.ed-r-c-site-header__megamenu-grid{display:block;margin-block-end:3rem}.ed-r-c-site-header__heading{display:inline-block;margin-block-end:.75rem;color:var(--ed-theme-color-content-subtle)}';
15
+ var k = Object.defineProperty, r = (t, i, a, p) => {
16
+ for (var e = void 0, d = t.length - 1, l; d >= 0; d--)
17
+ (l = t[d]) && (e = l(i, a, e) || e);
18
+ return e && k(i, a, e), e;
19
+ };
20
+ class n extends m {
21
+ static get styles() {
22
+ return o(c);
23
+ }
24
+ constructor() {
25
+ super(), this.clickHandler = this.clickHandler.bind(this), this.openSearchModal = this.openSearchModal.bind(this), this.closeSearchModal = this.closeSearchModal.bind(this);
26
+ }
27
+ clickHandler() {
28
+ this.isActive = !this.isActive, this.isActive === !0 ? this.parentNode.getRootNode().host.classList.add("ed-body-is-disabled") : this.parentNode.getRootNode().host.classList.remove("ed-body-is-disabled");
29
+ }
30
+ openSearchModal() {
31
+ this.searchModalIsActive = !0;
32
+ }
33
+ closeSearchModal() {
34
+ this.searchModalIsActive = !1;
35
+ }
36
+ render() {
37
+ const i = this.componentClassNames("ed-r-c-site-header", {
38
+ "ed-is-active": this.isActive === !0
39
+ });
40
+ return h`
41
+ <ed-header class="${i}">
42
+ <ed-layout-container class="ed-r-c-site-header__layout-container">
43
+ <div class="ed-r-c-site-header__inner">
44
+ <ed-logo class="ed-r-c-site-header__logo"></ed-logo>
45
+ <ed-nav-container class="ed-r-c-site-header__nav-container">
46
+ <ed-primary-nav>
47
+ <ed-primary-nav-item text="primary nav 1" ?megaMenu=${!0}>
48
+ <ed-grid class="ed-r-c-site-header__megamenu-grid" variant="3up">
49
+ <ed-grid-item>
50
+ <nav-link-list>
51
+ <ed-heading tagName="h3" class="ed-r-c-site-header__heading">Megamenu title</ed-heading>
52
+ <ed-link-list ?inverted=${!0} spacing="condensed">
53
+ <ed-link-list-item href="#" text="Link List Item 1"></ed-link-list-item>
54
+ <ed-link-list-item href="#" text="Link List Item 2"></ed-link-list-item>
55
+ <ed-link-list-item href="#" text="Link List Item 3"></ed-link-list-item>
56
+ <ed-link-list-item href="#" text="Link List Item 4"></ed-link-list-item>
57
+ </ed-link-list>
58
+ </nav-link-list>
59
+ </ed-grid-item>
60
+ <ed-grid-item>
61
+ <nav-link-list>
62
+ <ed-heading tagName="h3" class="ed-r-c-site-header__heading">Megamenu title</ed-heading>
63
+ <ed-link-list ?inverted=${!0} spacing="condensed">
64
+ <ed-link-list-item href="#" text="Link List Item 5"></ed-link-list-item>
65
+ <ed-link-list-item href="#" text="Link List Item 6"></ed-link-list-item>
66
+ <ed-link-list-item href="#" text="Link List Item 7"></ed-link-list-item>
67
+ <ed-link-list-item href="#" text="Link List Item 8"></ed-link-list-item>
68
+ </ed-link-list>
69
+ </nav-link-list>
70
+ </ed-grid-item>
71
+ <ed-grid-item>
72
+ <nav-link-list>
73
+ <ed-heading tagName="h3" class="ed-r-c-site-header__heading">Megamenu title</ed-heading>
74
+ <ed-link-list ?inverted=${!0} spacing="condensed" styleModifier="ed-u-margin-bottom-lg">
75
+ <ed-link-list-item href="#" text="Link List Item 9"></ed-link-list-item>
76
+ <ed-link-list-item href="#" text="Link List Item 10"></ed-link-list-item>
77
+ <ed-link-list-item href="#" text="Link List Item 11"></ed-link-list-item>
78
+ <ed-link-list-item href="#" text="Link List Item 12"></ed-link-list-item>
79
+ </ed-link-list>
80
+ </nav-link-list>
81
+ </ed-grid-item>
82
+ </ed-grid>
83
+ </ed-primary-nav-item>
84
+ <ed-primary-nav-item text="primary nav 2" ?isHighlighted=${!0} ?megaMenu=${!0}>
85
+ <ed-grid class="ed-r-c-site-header__megamenu-grid" variant="3up">
86
+ <ed-grid-item>
87
+ <nav-link-list>
88
+ <ed-heading tagName="h3" class="ed-r-c-site-header__heading">Megamenu title</ed-heading>
89
+ <ed-link-list ?inverted=${!0} spacing="condensed" variant="display-default">
90
+ <ed-link-list-item href="#" text="Link List Item 24"></ed-link-list-item>
91
+ <ed-link-list-item href="#" text="Link List Item 25"></ed-link-list-item>
92
+ <ed-link-list-item href="#" text="Link List Item 26"></ed-link-list-item>
93
+ <ed-link-list-item href="#" text="Link List Item 27"></ed-link-list-item>
94
+ </ed-link-list>
95
+ </nav-link-list>
96
+ </ed-grid-item>
97
+ <ed-grid-item>
98
+ <nav-link-list>
99
+ <ed-heading tagName="h3" class="ed-r-c-site-header__heading">Megamenu title</ed-heading>
100
+ <ed-link-list ?inverted=${!0} spacing="condensed">
101
+ <ed-link-list-item href="#" text="Link List Item 28"></ed-link-list-item>
102
+ <ed-link-list-item href="#" text="Link List Item 29"></ed-link-list-item>
103
+ <ed-link-list-item href="#" text="Link List Item 30"></ed-link-list-item>
104
+ <ed-link-list-item href="#" text="Link List Item 31"></ed-link-list-item>
105
+ <ed-link-list-item href="#" text="Link List Item 32"></ed-link-list-item>
106
+ <ed-link-list-item href="#" text="Link List Item 33"></ed-link-list-item>
107
+ </ed-link-list>
108
+ </nav-link-list>
109
+ </ed-grid-item>
110
+ <ed-grid-item>
111
+ <nav-link-list>
112
+ <ed-heading tagName="h3" class="ed-r-c-site-header__heading">Megamenu title</ed-heading>
113
+ <ed-link-list ?inverted=${!0} spacing="condensed" styleModifier="ed-u-margin-bottom-lg">
114
+ <ed-link-list-item href="#" text="Link List Item 34"></ed-link-list-item>
115
+ <ed-link-list-item href="#" text="Link List Item 35"></ed-link-list-item>
116
+ <ed-link-list-item href="#" text="Link List Item 36"></ed-link-list-item>
117
+ <ed-link-list-item href="#" text="Link List Item 37"></ed-link-list-item>
118
+ <ed-link-list-item href="#" text="Link List Item 38"></ed-link-list-item>
119
+ <ed-link-list-item href="#" text="Link List Item 39"></ed-link-list-item>
120
+ </ed-link-list>
121
+ </nav-link-list>
122
+ </ed-grid-item>
123
+ </ed-grid>
124
+ </ed-primary-nav-item>
125
+ <ed-primary-nav-item text="primary nav 3"></ed-primary-nav-item>
126
+ <ed-primary-nav-item text="primary nav 4"></ed-primary-nav-item>
127
+ </ed-primary-nav>
128
+ </ed-nav-container>
129
+ <ed-utility-nav>
130
+ <ed-utility-nav-item
131
+ class="ed-r-c-site-header__utility-nav-search"
132
+ text="Open Search Modal"
133
+ iconPosition="before"
134
+ iconName="search"
135
+ ?hideText=${!0}
136
+ @click=${this.openSearchModal}
137
+ ></ed-utility-nav-item>
138
+ </ed-utility-nav>
139
+ <ed-button
140
+ class="ed-r-c-site-header__menu-button"
141
+ size="lg"
142
+ aria-expanded=${this.isActive === !0}
143
+ @click=${this.clickHandler}
144
+ variant="bare"
145
+ ?inverted=${!0}
146
+ text="Menu"
147
+ iconPosition="before"
148
+ iconName="menu"
149
+ ></ed-button>
150
+ </div>
151
+ </ed-layout-container>
152
+ </ed-header>
153
+ `;
154
+ }
155
+ }
156
+ r([
157
+ s()
158
+ ], n.prototype, "isActive");
159
+ r([
160
+ s()
161
+ ], n.prototype, "searchModalIsActive");
162
+ customElements.get("ed-r-site-header") === void 0 && customElements.define("ed-r-site-header", n);
163
+ export {
164
+ n as EdRSiteHeader
165
+ };