@brad-frost-web/eddie-web-components 0.32.0 → 0.34.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.
Files changed (31) hide show
  1. package/cdn/components/badge/badge.js +38 -19
  2. package/cdn/components/dot/dot.js +1 -1
  3. package/cdn/components/header/header.js +24 -20
  4. package/cdn/components/icon/icon.js +32 -17
  5. package/cdn/components/logo/logo.js +3 -3
  6. package/cdn/components/media-scrubber/media-scrubber.js +16 -16
  7. package/cdn/components/primary-nav/primary-nav.js +25 -16
  8. package/cdn/components/primary-nav-item/primary-nav-item.js +17 -17
  9. package/cdn/components/timeline/timeline.js +41 -0
  10. package/cdn/components/timeline-node/timeline-node.js +76 -0
  11. package/components/badge/badge.d.ts +47 -19
  12. package/components/badge/badge.d.ts.map +1 -1
  13. package/components/badge/badge.js +39 -20
  14. package/components/dot/dot.js +1 -1
  15. package/components/header/header.d.ts +12 -2
  16. package/components/header/header.d.ts.map +1 -1
  17. package/components/header/header.js +28 -24
  18. package/components/icon/icon.js +37 -22
  19. package/components/logo/logo.js +3 -3
  20. package/components/media-scrubber/media-scrubber.js +5 -5
  21. package/components/primary-nav/primary-nav.d.ts +14 -0
  22. package/components/primary-nav/primary-nav.d.ts.map +1 -1
  23. package/components/primary-nav/primary-nav.js +26 -17
  24. package/components/primary-nav-item/primary-nav-item.js +18 -18
  25. package/components/timeline/timeline.d.ts +51 -0
  26. package/components/timeline/timeline.d.ts.map +1 -0
  27. package/components/timeline/timeline.js +42 -0
  28. package/components/timeline-node/timeline-node.d.ts +129 -0
  29. package/components/timeline-node/timeline-node.d.ts.map +1 -0
  30. package/components/timeline-node/timeline-node.js +77 -0
  31. package/package.json +1 -1
@@ -1,20 +1,23 @@
1
- import { r as d, b as o, n as l } from "../../chunks/lit.Drf_LhNi.js";
2
- import { E as m } from "../../chunks/ed-base.CuGZbk3k.js";
3
- const p = ":root,:host{--size-base-unit: .5rem}*,::slotted(*),*:before,*:after{box-sizing:border-box}h1,h2,h3,h4,h5,h6{margin:0}.ed-c-primary-nav--side-by-side{--ed-primary-nav-item-border-block-end: none}.ed-c-primary-nav__list{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.ed-c-primary-nav--side-by-side .ed-c-primary-nav__list{flex-direction:row;gap:2rem;--ed-primary-nav-link-padding: size(2) 0}@media all and (min-width:48rem){.ed-c-primary-nav__list{flex-direction:row;gap:2rem}}";
4
- var v = Object.defineProperty, c = (i, r, n, y) => {
5
- for (var e = void 0, a = i.length - 1, s; a >= 0; a--)
6
- (s = i[a]) && (e = s(r, n, e) || e);
7
- return e && v(r, n, e), e;
1
+ import { r as l, b as y, n } from "../../chunks/lit.Drf_LhNi.js";
2
+ import { E as p } from "../../chunks/ed-base.CuGZbk3k.js";
3
+ 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-c-primary-nav--side-by-side{--ed-primary-nav-item-border-block-end: none}.ed-c-primary-nav--size-sm .ed-c-primary-nav__list{--ed-primary-nav-link-hover-transform: none;--ed-primary-nav-link-font-family: var(--ed-theme-typography-body-default-font-family);--ed-primary-nav-link-font-weight: 700;--ed-primary-nav-link-font-size: var(--ed-theme-typography-body-default-font-size);--ed-primary-nav-link-line-height: var(--ed-theme-typography-body-default-line-height);--ed-primary-nav-link-letter-spacing: var(--ed-theme-typography-body-default-letter-spacing);--ed-primary-nav-link-text-transform: var(--ed-theme-typography-body-default-text-transform)}.ed-c-primary-nav--size-md .ed-c-primary-nav__list{--ed-primary-nav-link-hover-transform: none;--ed-primary-nav-link-font-family: var(--ed-theme-typography-body-lg-font-family);--ed-primary-nav-link-font-weight: 700;--ed-primary-nav-link-font-size: var(--ed-theme-typography-body-lg-font-size);--ed-primary-nav-link-line-height: var(--ed-theme-typography-body-lg-line-height);--ed-primary-nav-link-letter-spacing: var(--ed-theme-typography-body-lg-letter-spacing);--ed-primary-nav-link-text-transform: var(--ed-theme-typography-body-lg-text-transform)}.ed-c-primary-nav__list{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.ed-c-primary-nav--side-by-side .ed-c-primary-nav__list{flex-direction:row;gap:2rem;--ed-primary-nav-link-padding: size(2) 0}@media all and (min-width:48rem){.ed-c-primary-nav__list{flex-direction:row;gap:2rem}}.ed-c-primary-nav--vertical .ed-c-primary-nav__list{flex-direction:column;gap:.75rem;--ed-primary-nav-link-padding: 0;--ed-primary-nav-highlight-padding: 0;--ed-primary-nav-highlight-background: transparent;--ed-primary-nav-highlight-color: var(--ed-theme-color-content-brand);--ed-primary-nav-highlight-text-decoration: underline;--ed-primary-nav-highlight-justify: flex-start}';
4
+ var v = Object.defineProperty, d = (i, r, o, h) => {
5
+ for (var e = void 0, t = i.length - 1, m; t >= 0; t--)
6
+ (m = i[t]) && (e = m(r, o, e) || e);
7
+ return e && v(r, o, e), e;
8
8
  };
9
- class t extends m {
9
+ class a extends p {
10
10
  static get styles() {
11
- return d(p);
11
+ return l(s);
12
12
  }
13
13
  render() {
14
14
  const r = this.componentClassNames("ed-c-primary-nav", {
15
- "ed-c-primary-nav--side-by-side": this.behavior === "side-by-side"
15
+ "ed-c-primary-nav--side-by-side": this.behavior === "side-by-side",
16
+ "ed-c-primary-nav--vertical": this.orientation === "vertical",
17
+ "ed-c-primary-nav--size-sm": this.size === "sm",
18
+ "ed-c-primary-nav--size-md": this.size === "md"
16
19
  });
17
- return o`
20
+ return y`
18
21
  <nav class="${r}" aria-label="Main Navigation">
19
22
  <div class="ed-c-primary-nav__list" role="list">
20
23
  <slot></slot>
@@ -23,10 +26,16 @@ class t extends m {
23
26
  `;
24
27
  }
25
28
  }
26
- c([
27
- l()
28
- ], t.prototype, "behavior");
29
- customElements.get("ed-primary-nav") === void 0 && customElements.define("ed-primary-nav", t);
29
+ d([
30
+ n()
31
+ ], a.prototype, "behavior");
32
+ d([
33
+ n()
34
+ ], a.prototype, "orientation");
35
+ d([
36
+ n()
37
+ ], a.prototype, "size");
38
+ customElements.get("ed-primary-nav") === void 0 && customElements.define("ed-primary-nav", a);
30
39
  export {
31
- t as EdPrimaryNav
40
+ a as EdPrimaryNav
32
41
  };
@@ -1,13 +1,13 @@
1
1
  import { E as c } from "../../chunks/ed-base.CuGZbk3k.js";
2
- import { d as h, r as p, c as v, b as l, n } from "../../chunks/lit.Drf_LhNi.js";
2
+ import { d as h, r as v, c as p, b as l, n } from "../../chunks/lit.Drf_LhNi.js";
3
3
  import "../icon/icon.js";
4
- const y = ":root,:host{--size-base-unit: .5rem}*,::slotted(*),*:before,*:after{box-sizing:border-box}h1,h2,h3,h4,h5,h6{margin:0}.ed-c-primary-nav__item{border-block-end:var(--ed-primary-nav-item-border-block-end, var(--ed-theme-border-width-sm) solid var(--ed-theme-color-border-subtle))}@media all and (min-width:48rem){.ed-c-primary-nav__item{border-block-end:none}}.ed-c-primary-nav__link{font-family:var(--ed-theme-typography-primary-nav-default-mobile-font-family);font-weight:var(--ed-theme-typography-primary-nav-default-mobile-font-weight);font-size:var(--ed-theme-typography-primary-nav-default-mobile-font-size);line-height:var(--ed-theme-typography-primary-nav-default-mobile-line-height);letter-spacing:var(--ed-theme-typography-primary-nav-default-mobile-letter-spacing);text-transform:var(--ed-theme-typography-primary-nav-default-mobile-text-transform)}@media all and (min-width:48rem){.ed-c-primary-nav__link{font-family:var(--ed-theme-typography-primary-nav-default-font-family);font-weight:var(--ed-theme-typography-primary-nav-default-font-weight);font-size:var(--ed-theme-typography-primary-nav-default-font-size);line-height:var(--ed-theme-typography-primary-nav-default-line-height);letter-spacing:var(--ed-theme-typography-primary-nav-default-letter-spacing);text-transform:var(--ed-theme-typography-primary-nav-default-text-transform)}}.ed-c-primary-nav__link{display:flex;align-items:center;appearance:none;background:none;border:none;border-radius:var(--ed-theme-border-radius-md);white-space:nowrap;width:100%;margin:0;padding:var(--ed-primary-nav-link-padding, 1rem 1rem );color:var(--ed-header-color-content, var(--ed-theme-color-content-knockout));text-decoration:none;transition:all var(--ed-theme-animation-fade-quick) var(--ed-theme-animation-ease);cursor:pointer}.ed-c-primary-nav__link:hover,.ed-c-primary-nav__link:focus{transform:scale(1.05)}.ed-c-primary-nav__link:focus-visible{outline:var(--ed-theme-border-width-lg) solid var(--ed-header-focus-ring-color, var(--ed-theme-focus-ring-color-border-knockout));outline-offset:var(--ed-theme-offset-focus-ring, .25rem )}.ed-c-primary-nav__item--highlight .ed-c-primary-nav__link{padding:1rem;background:var(--ed-theme-color-background-brand-knockout);justify-content:center}.ed-c-primary-nav__item.ed-is-active .ed-c-primary-nav__link{background:var(--ed-theme-color-background-brand-knockout);color:var(--ed-theme-color-content-knockout)}@media all and (min-width:48rem){.ed-c-primary-nav__link{padding:1rem 0}}@media all and (min-width:60rem){.ed-c-primary-nav__link{padding:1rem 0;border-block-end:none}}ed-icon{--ed-icon-height: 1rem ;--ed-icon-width: 1rem ;margin-inline-start:auto;transition:transform var(--ed-theme-animation-fade-quick) var(--ed-theme-animation-ease)}.ed-c-primary-nav__item.ed-is-active ed-icon{transform:rotate(-180deg)}@media all and (min-width:48rem){ed-icon{margin-inline-start:1rem}}.ed-c-primary-nav__item-panel{visibility:hidden;width:100%;height:0;overflow:hidden;background:transparent;opacity:0;transition:all var(--ed-theme-animation-fade-quick) var(--ed-theme-animation-ease);z-index:-1}@media all and (min-width:48rem){.ed-c-primary-nav__item-panel{position:absolute;inset-block-start:100%;inset-inline-start:0;height:auto;box-shadow:var(--ed-theme-box-shadow-md)}}.ed-c-primary-nav__item.ed-is-active .ed-c-primary-nav__item-panel{display:block;visibility:visible;height:auto;padding-block-start:2rem;padding-block-end:2rem;background:var(--ed-theme-color-background-knockout);opacity:1;z-index:1;transition:opacity var(--ed-theme-animation-fade-quick) var(--ed-theme-animation-ease)}.ed-c-primary-nav__item--megamenu .ed-c-primary-nav__item-panel-inner{max-width:70rem;padding-inline-end:2rem;padding-inline-start:2rem;margin:0 auto}";
5
- var u = Object.defineProperty, r = (o, e, i, d) => {
6
- for (var a = void 0, m = o.length - 1, s; m >= 0; m--)
7
- (s = o[m]) && (a = s(e, i, a) || a);
8
- return a && u(e, i, a), a;
4
+ const y = '@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-c-primary-nav__item{border-block-end:var(--ed-primary-nav-item-border-block-end, none)}.ed-c-primary-nav__link{font-family:var(--ed-primary-nav-link-font-family, var(--ed-theme-typography-primary-nav-default-mobile-font-family));font-weight:var(--ed-primary-nav-link-font-weight, var(--ed-theme-typography-primary-nav-default-mobile-font-weight));font-size:var(--ed-primary-nav-link-font-size, var(--ed-theme-typography-primary-nav-default-mobile-font-size));line-height:var(--ed-primary-nav-link-line-height, var(--ed-theme-typography-primary-nav-default-mobile-line-height));letter-spacing:var(--ed-primary-nav-link-letter-spacing, var(--ed-theme-typography-primary-nav-default-mobile-letter-spacing));text-transform:var(--ed-primary-nav-link-text-transform, var(--ed-theme-typography-primary-nav-default-mobile-text-transform));display:flex;align-items:center;appearance:none;background:none;border:none;border-radius:var(--ed-theme-border-radius-md);white-space:nowrap;width:100%;margin:0;padding:var(--ed-primary-nav-link-padding, 1rem 1rem );color:var(--ed-header-color-content, var(--ed-theme-color-content-knockout));text-decoration:none;transition:all var(--ed-theme-animation-fade-quick) var(--ed-theme-animation-ease);cursor:pointer}.ed-c-primary-nav__link:hover,.ed-c-primary-nav__link:focus{transform:var(--ed-primary-nav-link-hover-transform, scale(1.05))}.ed-c-primary-nav__link:focus-visible{outline:var(--ed-theme-border-width-lg) solid var(--ed-header-focus-ring-color, var(--ed-theme-focus-ring-color-border-knockout));outline-offset:var(--ed-theme-offset-focus-ring, .25rem )}.ed-c-primary-nav__item--highlight .ed-c-primary-nav__link{padding:var(--ed-primary-nav-highlight-padding, 1rem );background:var(--ed-primary-nav-highlight-background, var(--ed-theme-color-background-brand-knockout));color:var(--ed-primary-nav-highlight-color, var(--ed-header-color-content, var(--ed-theme-color-content-knockout)));text-decoration:var(--ed-primary-nav-highlight-text-decoration, none);justify-content:var(--ed-primary-nav-highlight-justify, center)}.ed-c-primary-nav__item.ed-is-active .ed-c-primary-nav__link{background:var(--ed-theme-color-background-brand-knockout);color:var(--ed-theme-color-content-knockout)}@media all and (min-width:48rem){.ed-c-primary-nav__link{font-family:var(--ed-primary-nav-link-font-family, var(--ed-theme-typography-primary-nav-default-font-family));font-weight:var(--ed-primary-nav-link-font-weight, var(--ed-theme-typography-primary-nav-default-font-weight));font-size:var(--ed-primary-nav-link-font-size, var(--ed-theme-typography-primary-nav-default-font-size));line-height:var(--ed-primary-nav-link-line-height, var(--ed-theme-typography-primary-nav-default-line-height));letter-spacing:var(--ed-primary-nav-link-letter-spacing, var(--ed-theme-typography-primary-nav-default-letter-spacing));text-transform:var(--ed-primary-nav-link-text-transform, var(--ed-theme-typography-primary-nav-default-text-transform));padding:var(--ed-primary-nav-link-padding, 1rem 0)}}@media all and (min-width:60rem){.ed-c-primary-nav__link{padding:var(--ed-primary-nav-link-padding, 1rem 0);border-block-end:none}}ed-icon{--ed-icon-height: 1rem ;--ed-icon-width: 1rem ;margin-inline-start:auto;transition:transform var(--ed-theme-animation-fade-quick) var(--ed-theme-animation-ease)}.ed-c-primary-nav__item.ed-is-active ed-icon{transform:rotate(-180deg)}@media all and (min-width:48rem){ed-icon{margin-inline-start:1rem}}.ed-c-primary-nav__item-panel{visibility:hidden;width:100%;height:0;overflow:hidden;background:transparent;opacity:0;transition:all var(--ed-theme-animation-fade-quick) var(--ed-theme-animation-ease);z-index:-1}@media all and (min-width:48rem){.ed-c-primary-nav__item-panel{position:absolute;inset-block-start:100%;inset-inline-start:0;height:auto;box-shadow:var(--ed-theme-box-shadow-md)}}.ed-c-primary-nav__item.ed-is-active .ed-c-primary-nav__item-panel{display:block;visibility:visible;height:auto;padding-block-start:2rem;padding-block-end:2rem;background:var(--ed-theme-color-background-knockout);opacity:1;z-index:1;transition:opacity var(--ed-theme-animation-fade-quick) var(--ed-theme-animation-ease)}.ed-c-primary-nav__item--megamenu .ed-c-primary-nav__item-panel-inner{max-width:70rem;padding-inline-end:2rem;padding-inline-start:2rem;margin:0 auto}';
5
+ var f = Object.defineProperty, r = (o, e, i, d) => {
6
+ for (var t = void 0, m = o.length - 1, s; m >= 0; m--)
7
+ (s = o[m]) && (t = s(e, i, t) || t);
8
+ return t && f(e, i, t), t;
9
9
  };
10
- class t extends c {
10
+ class a extends c {
11
11
  /**
12
12
  * Initialize functions
13
13
  */
@@ -15,7 +15,7 @@ class t extends c {
15
15
  super(), this.text = "Nav item", this.href = "#", this.iconName = "keyboard-arrow-down", this.handleOnClickOutside = this.handleOnClickOutside.bind(this), this.clickHandler = this.clickHandler.bind(this);
16
16
  }
17
17
  static get styles() {
18
- return p(y);
18
+ return v(y);
19
19
  }
20
20
  /**
21
21
  * Connected Callback lifecycle
@@ -84,7 +84,7 @@ class t extends c {
84
84
  <div class="${e}" @keydown=${this.handleOnKeyDown}>
85
85
  <button class="ed-c-primary-nav__link" @click=${this.clickHandler} aria-expanded=${this.isActive === !0}>
86
86
  ${this.text}
87
- <ed-icon styleModifier="ed-c-button__icon" aria-hidden="true" name="${v(this.iconName)}"></ed-icon>
87
+ <ed-icon styleModifier="ed-c-button__icon" aria-hidden="true" name="${p(this.iconName)}"></ed-icon>
88
88
  </button>
89
89
  <div class="ed-c-primary-nav__item-panel">
90
90
  <div class="ed-c-primary-nav__item-panel-inner">
@@ -101,23 +101,23 @@ class t extends c {
101
101
  }
102
102
  r([
103
103
  n()
104
- ], t.prototype, "text");
104
+ ], a.prototype, "text");
105
105
  r([
106
106
  n()
107
- ], t.prototype, "href");
107
+ ], a.prototype, "href");
108
108
  r([
109
109
  n()
110
- ], t.prototype, "iconName");
110
+ ], a.prototype, "iconName");
111
111
  r([
112
112
  n({ type: Boolean })
113
- ], t.prototype, "isHighlighted");
113
+ ], a.prototype, "isHighlighted");
114
114
  r([
115
115
  n({ type: Boolean })
116
- ], t.prototype, "megaMenu");
116
+ ], a.prototype, "megaMenu");
117
117
  r([
118
118
  h()
119
- ], t.prototype, "isActive");
120
- customElements.get("ed-primary-nav-item") === void 0 && customElements.define("ed-primary-nav-item", t);
119
+ ], a.prototype, "isActive");
120
+ customElements.get("ed-primary-nav-item") === void 0 && customElements.define("ed-primary-nav-item", a);
121
121
  export {
122
- t as EdPrimaryNavItem
122
+ a as EdPrimaryNavItem
123
123
  };
@@ -0,0 +1,41 @@
1
+ import { r as m, b as c, n as o } from "../../chunks/lit.Drf_LhNi.js";
2
+ import { E as s } from "../../chunks/ed-base.CuGZbk3k.js";
3
+ const h = '@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-c-timeline{position:relative;padding-inline-start:3rem;--ed-c-timeline-node-marker-block-start: .25rem ;--ed-c-timeline-node-marker-inline-start: -2.1875rem ;--ed-c-timeline-node-marker-inline-end: auto;--ed-c-timeline-node-marker-block-end: auto;--ed-c-timeline-node-marker-highlight-inline-start: -2.25rem ;--ed-c-timeline-node-body-padding-inline-start: 0;--ed-c-timeline-node-body-padding-inline-end: 0}.ed-c-timeline__line{position:absolute;top:0;bottom:0;left:1rem;border-inline-start:var(--ed-theme-border-width-md) solid var(--ed-theme-color-border-default)}.ed-c-timeline--alternating:not(.ed-c-timeline--horizontal){padding-inline-start:0;--ed-c-timeline-node-marker-size: 3.25rem ;--ed-c-timeline-node-marker-highlight-size: 4rem ;--ed-c-timeline-node-marker-block-start: .25rem }.ed-c-timeline--alternating:not(.ed-c-timeline--horizontal) .ed-c-timeline__line{left:50%;transform:translate(-50%)}.ed-c-timeline--alternating:not(.ed-c-timeline--horizontal) ::slotted(ed-timeline-node:nth-child(odd)){display:block;width:50%;margin-inline-start:auto;--ed-c-timeline-node-body-padding-inline-start: 3rem ;--ed-c-timeline-node-marker-inline-start: -1.625rem ;--ed-c-timeline-node-marker-inline-end: auto;--ed-c-timeline-node-marker-highlight-inline-start: -2rem }.ed-c-timeline--alternating:not(.ed-c-timeline--horizontal) ::slotted(ed-timeline-node:nth-child(even)){display:block;width:50%;text-align:right;--ed-c-timeline-node-body-padding-inline-end: 3rem ;--ed-c-timeline-node-marker-inline-start: auto;--ed-c-timeline-node-marker-inline-end: -1.625rem ;--ed-c-timeline-node-marker-highlight-inline-start: auto;--ed-c-timeline-node-marker-highlight-inline-end: -2rem }.ed-c-timeline--horizontal{display:flex;flex-direction:row;gap:2rem;padding-inline-start:0;padding-block-start:3rem;--ed-c-timeline-node-marker-inline-start: calc(50% - .1875rem) ;--ed-c-timeline-node-marker-inline-end: auto;--ed-c-timeline-node-marker-block-start: -2.1875rem ;--ed-c-timeline-node-marker-block-end: auto;--ed-c-timeline-node-marker-highlight-inline-start: calc(50% - .25rem) ;--ed-c-timeline-node-marker-highlight-block-start: -2.25rem }.ed-c-timeline--horizontal .ed-c-timeline__line{top:1rem;bottom:auto;left:0;right:0;border-inline-start:0;border-block-start:var(--ed-theme-border-width-md) solid var(--ed-theme-color-border-default)}.ed-c-timeline--horizontal ::slotted(ed-timeline-node){flex:1;position:relative}.ed-c-timeline--horizontal.ed-c-timeline--alternating{padding-block-start:0;align-items:stretch;--ed-c-timeline-node-marker-size: 3.25rem ;--ed-c-timeline-node-marker-highlight-size: 4rem }.ed-c-timeline--horizontal.ed-c-timeline--alternating .ed-c-timeline__line{top:50%;transform:translateY(-50%)}.ed-c-timeline--horizontal.ed-c-timeline--alternating ::slotted(ed-timeline-node:nth-child(odd)){align-self:flex-start;padding-block-end:3rem;--ed-c-timeline-node-marker-block-start: auto;--ed-c-timeline-node-marker-block-end: -1.625rem ;--ed-c-timeline-node-marker-inline-start: calc(50% - 1.625rem) ;--ed-c-timeline-node-marker-inline-end: auto;--ed-c-timeline-node-marker-highlight-block-end: -2rem ;--ed-c-timeline-node-marker-highlight-inline-start: calc(50% - 2rem) }.ed-c-timeline--horizontal.ed-c-timeline--alternating ::slotted(ed-timeline-node:nth-child(even)){align-self:flex-end;padding-block-start:3rem;--ed-c-timeline-node-marker-block-start: -1.625rem ;--ed-c-timeline-node-marker-block-end: auto;--ed-c-timeline-node-marker-inline-start: calc(50% - 1.625rem) ;--ed-c-timeline-node-marker-inline-end: auto;--ed-c-timeline-node-marker-highlight-block-start: -2rem ;--ed-c-timeline-node-marker-highlight-inline-start: calc(50% - 2rem) }';
4
+ var g = Object.defineProperty, a = (t, i, l, k) => {
5
+ for (var e = void 0, n = t.length - 1, d; n >= 0; n--)
6
+ (d = t[n]) && (e = d(i, l, e) || e);
7
+ return e && g(i, l, e), e;
8
+ };
9
+ class r extends s {
10
+ constructor() {
11
+ super(...arguments), this.orientation = "vertical", this.behavior = "stacked";
12
+ }
13
+ static get styles() {
14
+ return m(h);
15
+ }
16
+ connectedCallback() {
17
+ super.connectedCallback(), this.hasAttribute("role") || this.setAttribute("role", "list");
18
+ }
19
+ render() {
20
+ const i = this.componentClassNames("ed-c-timeline", {
21
+ "ed-c-timeline--horizontal": this.orientation === "horizontal",
22
+ "ed-c-timeline--alternating": this.behavior === "alternating"
23
+ });
24
+ return c`
25
+ <div class="${i}">
26
+ <div class="ed-c-timeline__line" aria-hidden="true"></div>
27
+ <slot></slot>
28
+ </div>
29
+ `;
30
+ }
31
+ }
32
+ a([
33
+ o({ reflect: !0 })
34
+ ], r.prototype, "orientation");
35
+ a([
36
+ o({ reflect: !0 })
37
+ ], r.prototype, "behavior");
38
+ customElements.get("ed-timeline") === void 0 && customElements.define("ed-timeline", r);
39
+ export {
40
+ r as EdTimeline
41
+ };
@@ -0,0 +1,76 @@
1
+ import { E as h } from "../../chunks/ed-base.CuGZbk3k.js";
2
+ import "../heading/heading.js";
3
+ import { r as p, b as i, A as l, n } from "../../chunks/lit.Drf_LhNi.js";
4
+ const g = '@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-c-timeline-node{position:relative;padding-block-end:2rem}.ed-c-timeline-node__marker{position:absolute;inset-block-start:var(--ed-c-timeline-node-marker-block-start, .25rem );inset-inline-start:var(--ed-c-timeline-node-marker-inline-start, -2.1875rem );inset-inline-end:var(--ed-c-timeline-node-marker-inline-end, auto);inset-block-end:var(--ed-c-timeline-node-marker-block-end, auto);width:var(--ed-c-timeline-node-marker-size, .375rem );height:var(--ed-c-timeline-node-marker-size, .375rem );border-radius:50%;background:var(--ed-c-timeline-node-marker-color, var(--ed-theme-color-background-brand))}.ed-c-timeline-node--highlight .ed-c-timeline-node__marker{width:var(--ed-c-timeline-node-marker-highlight-size, .5rem );height:var(--ed-c-timeline-node-marker-highlight-size, .5rem );inset-inline-start:var(--ed-c-timeline-node-marker-highlight-inline-start, var(--ed-c-timeline-node-marker-inline-start, -2.25rem ));inset-inline-end:var(--ed-c-timeline-node-marker-highlight-inline-end, var(--ed-c-timeline-node-marker-inline-end, auto));inset-block-start:var(--ed-c-timeline-node-marker-highlight-block-start, var(--ed-c-timeline-node-marker-block-start, .25rem ));inset-block-end:var(--ed-c-timeline-node-marker-highlight-block-end, var(--ed-c-timeline-node-marker-block-end, auto))}.ed-c-timeline-node__marker--custom{background:transparent}.ed-c-timeline-node__marker--custom ::slotted(*){display:block;width:100%;height:100%}.ed-c-timeline-node__body{display:flex;flex-direction:column;gap:.25rem;text-align:inherit;padding-inline-start:var(--ed-c-timeline-node-body-padding-inline-start, 0);padding-inline-end:var(--ed-c-timeline-node-body-padding-inline-end, 0)}.ed-c-timeline-node__eyebrow{font-family:var(--ed-theme-typography-meta-default-font-family);font-weight:var(--ed-theme-typography-meta-default-font-weight);font-size:var(--ed-theme-typography-meta-default-font-size);line-height:var(--ed-theme-typography-meta-default-line-height);letter-spacing:var(--ed-theme-typography-meta-default-letter-spacing);text-transform:var(--ed-theme-typography-meta-default-text-transform);color:var(--ed-c-timeline-node-eyebrow-color, var(--ed-theme-color-content-subtle));text-transform:uppercase;letter-spacing:.04em}.ed-c-timeline-node__date{font-family:var(--ed-theme-typography-meta-default-font-family);font-weight:var(--ed-theme-typography-meta-default-font-weight);font-size:var(--ed-theme-typography-meta-default-font-size);line-height:var(--ed-theme-typography-meta-default-line-height);letter-spacing:var(--ed-theme-typography-meta-default-letter-spacing);text-transform:var(--ed-theme-typography-meta-default-text-transform);color:var(--ed-c-timeline-node-date-color, var(--ed-theme-color-content-subtle))}.ed-c-timeline-node__heading{display:block;color:var(--ed-c-timeline-node-heading-color, inherit)}.ed-c-timeline-node__link{color:inherit;text-decoration:none}.ed-c-timeline-node__link:hover,.ed-c-timeline-node__link:focus{text-decoration:underline;color:var(--ed-theme-link-color-content-hover)}.ed-c-timeline-node__content:empty{display:none}';
5
+ var v = Object.defineProperty, r = (m, o, a, s) => {
6
+ for (var e = void 0, d = m.length - 1, c; d >= 0; d--)
7
+ (c = m[d]) && (e = c(o, a, e) || e);
8
+ return e && v(o, a, e), e;
9
+ };
10
+ class t extends h {
11
+ constructor() {
12
+ super(...arguments), this.text = "", this.headingTagName = "h3";
13
+ }
14
+ static get styles() {
15
+ return p(g);
16
+ }
17
+ connectedCallback() {
18
+ super.connectedCallback(), this.hasAttribute("role") || this.setAttribute("role", "listitem");
19
+ }
20
+ render() {
21
+ const o = this.componentClassNames("ed-c-timeline-node", {
22
+ "ed-c-timeline-node--highlight": this.variant === "highlight",
23
+ [`ed-c-timeline-node--${this.category}`]: !!this.category
24
+ }), a = !this.slotEmpty("marker"), s = !this.slotEmpty("eyebrow"), e = this.date ? this.datetime ? i`<time class="ed-c-timeline-node__date" part="date" datetime="${this.datetime}">${this.date}</time>` : i`<span class="ed-c-timeline-node__date" part="date">${this.date}</span>` : l, d = this.text ? i`<ed-heading
25
+ class="ed-c-timeline-node__heading"
26
+ part="heading"
27
+ tagName="${this.headingTagName}"
28
+ variant="headline-sm"
29
+ >
30
+ ${this.href ? i`<a class="ed-c-timeline-node__link" href="${this.href}">${this.text}</a>` : this.text}
31
+ </ed-heading>` : l;
32
+ return i`
33
+ <div class="${o}">
34
+ <div
35
+ class="ed-c-timeline-node__marker ${a ? "ed-c-timeline-node__marker--custom" : ""}"
36
+ part="marker"
37
+ >
38
+ ${a ? i`<slot name="marker"></slot>` : l}
39
+ </div>
40
+ <div class="ed-c-timeline-node__body" part="body">
41
+ ${s ? i`<div class="ed-c-timeline-node__eyebrow" part="eyebrow"><slot name="eyebrow"></slot></div>` : l}
42
+ ${e}
43
+ ${d}
44
+ <div class="ed-c-timeline-node__content" part="content">
45
+ <slot></slot>
46
+ </div>
47
+ </div>
48
+ </div>
49
+ `;
50
+ }
51
+ }
52
+ r([
53
+ n()
54
+ ], t.prototype, "text");
55
+ r([
56
+ n()
57
+ ], t.prototype, "date");
58
+ r([
59
+ n()
60
+ ], t.prototype, "datetime");
61
+ r([
62
+ n()
63
+ ], t.prototype, "href");
64
+ r([
65
+ n()
66
+ ], t.prototype, "headingTagName");
67
+ r([
68
+ n()
69
+ ], t.prototype, "variant");
70
+ r([
71
+ n({ reflect: !0 })
72
+ ], t.prototype, "category");
73
+ customElements.get("ed-timeline-node") === void 0 && customElements.define("ed-timeline-node", t);
74
+ export {
75
+ t as EdTimelineNode
76
+ };
@@ -1,40 +1,68 @@
1
1
  import { EdElement } from '@brad-frost-web/eddie-web-components/components/EdElement';
2
2
  /**
3
- * Small informational badge component for displaying status, counts, or labels.
4
- * Often used to highlight state information like "New", "Updated", or status badges
5
- * (success, warning, error).
3
+ * Small, non-interactive status / category indicator. Use badges to provide quick,
4
+ * decorative status or labelling alongside other content. For interactive chips
5
+ * (dismissible, selectable) use `ed-tag` instead.
6
6
  *
7
- * Use badges to provide quick, non-intrusive status information alongside other
8
- * content. Badges are typically decorative and not interactive.
7
+ * Three independent axes:
8
+ * - **variant** — semantic color. Unset renders the default (neutral) styling.
9
+ * `brand` · `info` · `success` · `warning` · `error`.
10
+ * - **appearance** — the emphasis/fill, orthogonal to `variant`: `subtle` (default:
11
+ * tinted surface, colored border + text) or `solid` (filled knockout surface with
12
+ * knockout text, no border).
13
+ * - **size** — `sm` (default, label-sm) or `md` (label-default).
9
14
  *
10
- * @use Indicating status alongside content — "Active", "Pending", "Failed" — using the `success`, `warning`, or `error` variant to reinforce meaning with color
11
- * @use Labeling items with short metadata like "New", "Beta", or version numbers that supplement but don't replace the primary content
15
+ * An optional leading `iconName` renders an icon before the label.
16
+ *
17
+ * @use Indicating status alongside content — "Active", "Pending", "Failed" — using `success`, `warning`, or `error` to reinforce meaning with color
18
+ * @use Labeling items with short, neutral metadata like a category, "Beta", or a version number — leave `variant` unset for the neutral default
19
+ * @use Drawing extra attention with `appearance="solid"`, or sizing up to `size="md"` in denser-typography contexts
12
20
  * @use Inside tables, lists, or cards to visually differentiate items by state without adding interactive complexity
13
21
  *
14
- * @dontuse As a button or interactive element — badges are purely informational. Use `ed-button` for actions
22
+ * @dontuse As a button or interactive element — badges are purely informational. Use `ed-button` for actions or `ed-tag` for dismissible/selectable chips
15
23
  * @dontuse For long text or sentences — badges are designed for 1–3 words. Anything longer should be a field note, alert, or inline message
16
- * @dontuse As the sole indicator of critical state — always pair the badge with text or context that explains the state (e.g., "Status: Failed" not just a red badge)
24
+ * @dontuse As the sole indicator of critical state — the badge always carries a text label so color is never the only signal
17
25
  * @dontuse For notification counts on icons — this component is a label badge, not a dot/counter overlay
18
26
  *
19
- * @a11y Color alone must not convey the badge's meaning — the `success`, `warning`, and `error` variants use color, but the badge text must independently communicate the status (e.g., "Error" not just a red dot)
20
- * @a11y Badges are not announced as distinct regions by screen readers ensure the badge text makes sense in the reading order of the surrounding content
21
- * @a11y If the badge conveys status that updates dynamically, wrap it in or associate it with an `aria-live` region so screen readers announce changes
27
+ * @a11y Color is never the only signal of variant — the badge always renders its text label, so success/warning/error meaning is conveyed by words, not just color
28
+ * @a11y The optional leading icon is decorative (`aria-hidden`)never rely on it alone to convey meaning
29
+ * @a11y Badges are not announced as distinct regions ensure the badge text makes sense in the reading order of the surrounding content
22
30
  *
23
- * @slot - Badge content (text or other elements)
31
+ * @slot - Badge label content (falls back to the `text` property)
24
32
  */
25
33
  export declare class EdBadge extends EdElement {
26
34
  static get styles(): import('lit').CSSResult;
27
35
  /**
28
- * The badge text (alternative to slot content).
36
+ * The badge label text (alternative to slot content).
29
37
  */
30
38
  text?: string;
31
39
  /**
32
- * Status variant indicating the badge's semantic meaning.
33
- * - `success`: Positive state — approved, complete, active, working properly
34
- * - `warning`: Cautionary state — pending, needs review, approaching limit
35
- * - `error`: Negative state — failed, rejected, inactive, requires attention
40
+ * Semantic color variant. When unset, the badge renders in the default
41
+ * (neutral) styling.
42
+ * - `brand`: Brand-colored badge
43
+ * - `info`: Informational or in-progress
44
+ * - `success`: Positive — approved, complete, active, working properly
45
+ * - `warning`: Cautionary — pending, needs review, approaching limit
46
+ * - `error`: Negative — failed, rejected, inactive, requires attention
47
+ */
48
+ variant?: 'brand' | 'info' | 'success' | 'warning' | 'error';
49
+ /**
50
+ * Visual appearance — the badge's emphasis/fill, orthogonal to `variant`.
51
+ * - `subtle` (default): tinted background with a colored border and text
52
+ * - `solid`: filled knockout background with knockout text and no border
53
+ */
54
+ appearance?: 'subtle' | 'solid';
55
+ /**
56
+ * Size variant — controls the badge typography and padding.
57
+ * - `sm` (default): `label-sm` typography
58
+ * - `md`: `label-default` typography
59
+ */
60
+ size?: 'sm' | 'md';
61
+ /**
62
+ * Optional leading icon name (from the Eddie icon set). Rendered before the
63
+ * label and inherits the badge's content color.
36
64
  */
37
- variant?: 'success' | 'warning' | 'error';
65
+ iconName?: string;
38
66
  render(): import('lit-html').TemplateResult<1>;
39
67
  }
40
68
  declare global {
@@ -1 +1 @@
1
- {"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../../../packages/eddie-web-components/components/badge/badge.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,2DAA2D,CAAC;AAGtF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,OAAQ,SAAQ,SAAS;IACpC,MAAM,KAAK,MAAM,4BAEhB;IAED;;OAEG;IAEH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;;OAKG;IAEH,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IAE1C,MAAM;CASP;AAMD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,OAAO,CAAC;KACrB;CACF"}
1
+ {"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../../../packages/eddie-web-components/components/badge/badge.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,2DAA2D,CAAC;AACtF,OAAO,2DAA2D,CAAC;AAGnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,OAAQ,SAAQ,SAAS;IACpC,MAAM,KAAK,MAAM,4BAEhB;IAED;;OAEG;IAEH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;;;;;OAQG;IAEH,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IAE7D;;;;OAIG;IAEH,UAAU,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAEhC;;;;OAIG;IAEH,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAEnB;;;OAGG;IAEH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,MAAM;CAoBP;AAMD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,OAAO,CAAC;KACrB;CACF"}
@@ -1,32 +1,51 @@
1
- import { unsafeCSS as l, html as c } from "lit";
2
- import { property as i } from "lit/decorators.js";
1
+ import { unsafeCSS as s, nothing as b, html as l } from "lit";
2
+ import { property as o } from "lit/decorators.js";
3
3
  import { EdElement as g } from "../EdElement.js";
4
- const h = ":root,:host{--size-base-unit: .5rem}*,::slotted(*),*:before,*:after{box-sizing:border-box}h1,h2,h3,h4,h5,h6{margin:0}.ed-c-badge{font-family:var(--ed-theme-typography-label-default-font-family);font-weight:var(--ed-theme-typography-label-default-font-weight);font-size:var(--ed-theme-typography-label-default-font-size);line-height:var(--ed-theme-typography-label-default-line-height);letter-spacing:var(--ed-theme-typography-label-default-letter-spacing);text-transform:var(--ed-theme-typography-label-default-text-transform);background:var(--ed-theme-color-background-utility-info);color:var(--ed-theme-color-content-default);display:inline-flex;border-radius:var(--ed-theme-border-radius-md);padding:.5rem}.ed-c-badge--success{background:var(--ed-theme-color-background-utility-success)}.ed-c-badge--warning{background:var(--ed-theme-color-background-utility-warning)}.ed-c-badge--error{background:var(--ed-theme-color-background-utility-error)}";
5
- var m = Object.defineProperty, s = (r, t, d, u) => {
6
- for (var e = void 0, a = r.length - 1, n; a >= 0; a--)
7
- (n = r[a]) && (e = n(t, d, e) || e);
8
- return e && m(t, d, e), e;
4
+ import "../icon/icon.js";
5
+ const h = '@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-c-badge{font-family:var(--ed-theme-typography-label-sm-font-family);font-weight:var(--ed-theme-typography-label-sm-font-weight);font-size:var(--ed-theme-typography-label-sm-font-size);line-height:var(--ed-theme-typography-label-sm-line-height);letter-spacing:var(--ed-theme-typography-label-sm-letter-spacing);text-transform:var(--ed-theme-typography-label-sm-text-transform);display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border:var(--ed-theme-border-width-sm) solid var(--ed-theme-color-border-default);border-radius:var(--ed-theme-border-radius-md);background:var(--ed-theme-color-background-subtle);color:var(--ed-theme-color-content-default)}.ed-c-badge__label{white-space:nowrap}ed-icon{--ed-icon-height: .875rem ;--ed-icon-width: .875rem }.ed-c-badge--brand{background:var(--ed-theme-color-background-subtle);border-color:var(--ed-theme-color-border-brand);color:var(--ed-theme-color-content-brand)}.ed-c-badge--info{background:var(--ed-theme-color-background-utility-info);border-color:var(--ed-theme-color-border-utility-info);color:var(--ed-theme-color-content-utility-info)}.ed-c-badge--success{background:var(--ed-theme-color-background-utility-success);border-color:var(--ed-theme-color-border-utility-success);color:var(--ed-theme-color-content-utility-success)}.ed-c-badge--warning{background:var(--ed-theme-color-background-utility-warning);border-color:var(--ed-theme-color-border-utility-warning);color:var(--ed-theme-color-content-utility-warning)}.ed-c-badge--error{background:var(--ed-theme-color-background-utility-error);border-color:var(--ed-theme-color-border-utility-error);color:var(--ed-theme-color-content-utility-error)}.ed-c-badge--solid{border-color:transparent;background:var(--ed-theme-color-background-knockout);color:var(--ed-theme-color-content-knockout)}.ed-c-badge--solid.ed-c-badge--brand{background:var(--ed-theme-color-background-brand-knockout)}.ed-c-badge--solid.ed-c-badge--info{background:var(--ed-theme-color-background-utility-info-knockout)}.ed-c-badge--solid.ed-c-badge--success{background:var(--ed-theme-color-background-utility-success-knockout)}.ed-c-badge--solid.ed-c-badge--warning{background:var(--ed-theme-color-background-utility-warning-knockout)}.ed-c-badge--solid.ed-c-badge--error{background:var(--ed-theme-color-background-utility-error-knockout)}.ed-c-badge--md{font-family:var(--ed-theme-typography-label-default-font-family);font-weight:var(--ed-theme-typography-label-default-font-weight);font-size:var(--ed-theme-typography-label-default-font-size);line-height:var(--ed-theme-typography-label-default-line-height);letter-spacing:var(--ed-theme-typography-label-default-letter-spacing);text-transform:var(--ed-theme-typography-label-default-text-transform);padding:.25rem .75rem}.ed-c-badge--md ed-icon{--ed-icon-height: 1rem ;--ed-icon-width: 1rem }';
6
+ var m = Object.defineProperty, t = (d, a, c, u) => {
7
+ for (var e = void 0, n = d.length - 1, i; n >= 0; n--)
8
+ (i = d[n]) && (e = i(a, c, e) || e);
9
+ return e && m(a, c, e), e;
9
10
  };
10
- class o extends g {
11
+ class r extends g {
11
12
  static get styles() {
12
- return l(h.toString());
13
+ return s(h.toString());
13
14
  }
14
15
  render() {
15
- const t = this.componentClassNames("ed-c-badge", {
16
+ const a = this.componentClassNames("ed-c-badge", {
17
+ "ed-c-badge--brand": this.variant === "brand",
18
+ "ed-c-badge--info": this.variant === "info",
16
19
  "ed-c-badge--success": this.variant === "success",
17
20
  "ed-c-badge--warning": this.variant === "warning",
18
- "ed-c-badge--error": this.variant === "error"
21
+ "ed-c-badge--error": this.variant === "error",
22
+ "ed-c-badge--solid": this.appearance === "solid",
23
+ "ed-c-badge--md": this.size === "md"
19
24
  });
20
- return c` <div class="${t}">${this.text}</div> `;
25
+ return l`
26
+ <div class="${a}">
27
+ ${this.iconName ? l`<ed-icon styleModifier="ed-c-badge__icon" aria-hidden="true" name="${this.iconName}"></ed-icon>` : b}
28
+ <span class="ed-c-badge__label"><slot>${this.text}</slot></span>
29
+ </div>
30
+ `;
21
31
  }
22
32
  }
23
- s([
24
- i()
25
- ], o.prototype, "text");
26
- s([
27
- i()
28
- ], o.prototype, "variant");
29
- customElements.get("ed-badge") === void 0 && customElements.define("ed-badge", o);
33
+ t([
34
+ o()
35
+ ], r.prototype, "text");
36
+ t([
37
+ o()
38
+ ], r.prototype, "variant");
39
+ t([
40
+ o()
41
+ ], r.prototype, "appearance");
42
+ t([
43
+ o()
44
+ ], r.prototype, "size");
45
+ t([
46
+ o()
47
+ ], r.prototype, "iconName");
48
+ customElements.get("ed-badge") === void 0 && customElements.define("ed-badge", r);
30
49
  export {
31
- o as EdBadge
50
+ r as EdBadge
32
51
  };
@@ -2,7 +2,7 @@ import g from "classnames";
2
2
  import { unsafeCSS as m, html as d, nothing as s } from "lit";
3
3
  import { property as o } from "lit/decorators.js";
4
4
  import { EdElement as v } from "../EdElement.js";
5
- const p = ":root,:host{--size-base-unit: .5rem}*,::slotted(*),*:before,*:after{box-sizing:border-box}h1,h2,h3,h4,h5,h6{margin:0}.ed-c-dot{container-type:inline-size;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;width:6rem;height:6rem;aspect-ratio:1/1;background:var(--ed-theme-color-background-brand);color:var(--ed-theme-color-content-brand-knockout);border-radius:var(--ed-border-radius-round);text-align:center}.ed-c-dot--xs{width:4rem;height:4rem}.ed-c-dot--sm{width:6rem;height:6rem}.ed-c-dot--md{width:8rem;height:8rem}.ed-c-dot--lg{width:10rem;height:10rem}.ed-c-dot--xl{width:12rem;height:12rem}.ed-c-dot--accent-1{background:var(--ed-theme-color-background-accent-1);color:var(--ed-theme-color-content-on-accent-1)}.ed-c-dot--accent-2{background:var(--ed-theme-color-background-accent-2);color:var(--ed-theme-color-content-on-accent-2)}.ed-c-dot--accent-3{background:var(--ed-theme-color-background-accent-3);color:var(--ed-theme-color-content-on-accent-3)}.ed-c-dot--accent-4{background:var(--ed-theme-color-background-accent-4);color:var(--ed-theme-color-content-on-accent-4)}.ed-c-dot--accent-5{background:var(--ed-theme-color-background-accent-5);color:var(--ed-theme-color-content-on-accent-5)}.ed-c-dot--accent-6{background:var(--ed-theme-color-background-accent-6);color:var(--ed-theme-color-content-on-accent-6)}.ed-c-dot--accent-7{background:var(--ed-theme-color-background-accent-7);color:var(--ed-theme-color-content-on-accent-7)}.ed-c-dot--accent-8{background:var(--ed-theme-color-background-accent-8);color:var(--ed-theme-color-content-on-accent-8)}.ed-c-dot--viz-design{background:var(--ed-theme-color-background-viz-design);color:var(--ed-theme-color-content-on-viz-design)}.ed-c-dot--viz-repo{background:var(--ed-theme-color-background-viz-repo);color:var(--ed-theme-color-content-on-viz-repo)}.ed-c-dot--viz-package{background:var(--ed-theme-color-background-viz-package);color:var(--ed-theme-color-content-on-viz-package)}.ed-c-dot--viz-product{background:var(--ed-theme-color-background-viz-product);color:var(--ed-theme-color-content-on-viz-product)}::slotted(ed-icon){--ed-icon-height: 35cqi;--ed-icon-width: 35cqi}.ed-c-dot--stacked ::slotted(ed-icon){--ed-icon-height: 25cqi;--ed-icon-width: 25cqi}::slotted(svg){width:35cqi;height:35cqi}.ed-c-dot--stacked ::slotted(svg){width:25cqi;height:25cqi}.ed-c-dot__image{display:block;width:40cqi;height:40cqi;object-fit:contain}.ed-c-dot--stacked .ed-c-dot__image{width:30cqi;height:30cqi}.ed-c-dot__full-bleed-image{display:block;width:100%;height:100%;object-fit:cover}.ed-c-dot--full-bleed{padding:0;overflow:hidden}.ed-c-dot__label{font-family:var(--ed-theme-typography-viz-label-font-family);font-weight:var(--ed-theme-typography-viz-label-font-weight);font-size:var(--ed-theme-typography-viz-label-font-size);line-height:var(--ed-theme-typography-viz-label-line-height);letter-spacing:var(--ed-theme-typography-viz-label-letter-spacing);text-transform:var(--ed-theme-typography-viz-label-text-transform);text-align:center;text-wrap:balance;text-overflow:ellipsis;padding:0 .5rem;overflow:hidden}";
5
+ const p = ":root,:host{--size-base-unit: .5rem}*,::slotted(*),*:before,*:after{box-sizing:border-box}h1,h2,h3,h4,h5,h6{margin:0}.ed-c-dot{container-type:inline-size;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;width:6rem;height:6rem;aspect-ratio:1/1;background:var(--ed-theme-color-background-brand);color:var(--ed-theme-color-content-brand-knockout);border-radius:var(--ed-theme-border-radius-round);text-align:center}.ed-c-dot--xs{width:4rem;height:4rem}.ed-c-dot--sm{width:6rem;height:6rem}.ed-c-dot--md{width:8rem;height:8rem}.ed-c-dot--lg{width:10rem;height:10rem}.ed-c-dot--xl{width:12rem;height:12rem}.ed-c-dot--accent-1{background:var(--ed-theme-color-background-accent-1);color:var(--ed-theme-color-content-on-accent-1)}.ed-c-dot--accent-2{background:var(--ed-theme-color-background-accent-2);color:var(--ed-theme-color-content-on-accent-2)}.ed-c-dot--accent-3{background:var(--ed-theme-color-background-accent-3);color:var(--ed-theme-color-content-on-accent-3)}.ed-c-dot--accent-4{background:var(--ed-theme-color-background-accent-4);color:var(--ed-theme-color-content-on-accent-4)}.ed-c-dot--accent-5{background:var(--ed-theme-color-background-accent-5);color:var(--ed-theme-color-content-on-accent-5)}.ed-c-dot--accent-6{background:var(--ed-theme-color-background-accent-6);color:var(--ed-theme-color-content-on-accent-6)}.ed-c-dot--accent-7{background:var(--ed-theme-color-background-accent-7);color:var(--ed-theme-color-content-on-accent-7)}.ed-c-dot--accent-8{background:var(--ed-theme-color-background-accent-8);color:var(--ed-theme-color-content-on-accent-8)}.ed-c-dot--viz-design{background:var(--ed-theme-color-background-viz-design);color:var(--ed-theme-color-content-on-viz-design)}.ed-c-dot--viz-repo{background:var(--ed-theme-color-background-viz-repo);color:var(--ed-theme-color-content-on-viz-repo)}.ed-c-dot--viz-package{background:var(--ed-theme-color-background-viz-package);color:var(--ed-theme-color-content-on-viz-package)}.ed-c-dot--viz-product{background:var(--ed-theme-color-background-viz-product);color:var(--ed-theme-color-content-on-viz-product)}::slotted(ed-icon){--ed-icon-height: 35cqi;--ed-icon-width: 35cqi}.ed-c-dot--stacked ::slotted(ed-icon){--ed-icon-height: 25cqi;--ed-icon-width: 25cqi}::slotted(svg){width:35cqi;height:35cqi}.ed-c-dot--stacked ::slotted(svg){width:25cqi;height:25cqi}.ed-c-dot__image{display:block;width:40cqi;height:40cqi;object-fit:contain}.ed-c-dot--stacked .ed-c-dot__image{width:30cqi;height:30cqi}.ed-c-dot__full-bleed-image{display:block;width:100%;height:100%;object-fit:cover}.ed-c-dot--full-bleed{padding:0;overflow:hidden}.ed-c-dot__label{font-family:var(--ed-theme-typography-viz-label-font-family);font-weight:var(--ed-theme-typography-viz-label-font-weight);font-size:var(--ed-theme-typography-viz-label-font-size);line-height:var(--ed-theme-typography-viz-label-line-height);letter-spacing:var(--ed-theme-typography-viz-label-letter-spacing);text-transform:var(--ed-theme-typography-viz-label-text-transform);text-align:center;text-wrap:balance;text-overflow:ellipsis;padding:0 .5rem;overflow:hidden}";
6
6
  var b = Object.defineProperty, c = (i, r, a, l) => {
7
7
  for (var e = void 0, n = i.length - 1, h; n >= 0; n--)
8
8
  (h = i[n]) && (e = h(r, a, e) || e);
@@ -18,6 +18,7 @@ import { EdElement } from '@brad-frost-web/eddie-web-components/components/EdEle
18
18
  *
19
19
  * @a11y The component renders a `<header>` element with `role="banner"` — there should be only one `banner` landmark per page, so use this once at the top level
20
20
  * @a11y When using colored `variant` backgrounds, verify all child text and interactive elements meet WCAG contrast ratios against the chosen background
21
+ * @a11y With `variant="bare"` the header has no background fill, so child text and interactive elements must meet WCAG contrast against the page background instead of a header fill
21
22
  * @a11y The three slot regions (top, default, bottom) are visual layout divisions — they do not create separate landmarks, so screen readers traverse the header as one continuous region
22
23
  * @a11y Set `fullWidth` only when the header design intentionally spans edge-to-edge — the default `ed-layout-container` wrapper ensures content stays within readable line lengths
23
24
  *
@@ -33,16 +34,25 @@ export declare class EdHeader extends EdElement {
33
34
  */
34
35
  isActive?: boolean;
35
36
  /**
36
- * Background color variant * - **brand** Brand background with knockout content color
37
+ * Background color variant
38
+ * - **bare** No background fill — the header sits transparently over the page background
39
+ * - **brand** Brand background with knockout content color
37
40
  * - **brand-knockout** Inverted brand background with knockout content
38
41
  * - **accent-1** through **accent-8** Accent background with corresponding on-accent content color
39
42
  * */
40
- variant?: 'brand' | 'brand-knockout' | 'accent-1' | 'accent-2' | 'accent-3' | 'accent-4' | 'accent-5' | 'accent-6' | 'accent-7' | 'accent-8';
43
+ variant?: 'bare' | 'brand' | 'brand-knockout' | 'accent-1' | 'accent-2' | 'accent-3' | 'accent-4' | 'accent-5' | 'accent-6' | 'accent-7' | 'accent-8';
41
44
  /**
42
45
  * When true, removes the inner `ed-layout-container` so header
43
46
  * content spans the full width of the viewport.
44
47
  */
45
48
  fullWidth?: boolean;
49
+ /**
50
+ * Orientation of the header's main content row.
51
+ * - **vertical** Stacks the header content (logo, nav, actions) into a
52
+ * left-aligned column instead of the default horizontal row — for
53
+ * sidebar-style or stacked header layouts.
54
+ */
55
+ orientation?: 'vertical';
46
56
  render(): import('lit-html').TemplateResult<1>;
47
57
  }
48
58
  declare global {
@@ -1 +1 @@
1
- {"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../../packages/eddie-web-components/components/header/header.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,2DAA2D,CAAC;AACtF,OAAO,mFAAmF,CAAC;AAG3F;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,QAAS,SAAQ,SAAS;IACrC,MAAM,KAAK,MAAM,4BAEhB;IAED;;;OAGG;IAEH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;SAIK;IAEL,OAAO,CAAC,EAAE,OAAO,GAAG,gBAAgB,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,CAAC;IAE7I;;;OAGG;IAEH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,MAAM;CA+BP;AAMD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
1
+ {"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../../packages/eddie-web-components/components/header/header.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,2DAA2D,CAAC;AACtF,OAAO,mFAAmF,CAAC;AAG3F;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,QAAS,SAAQ,SAAS;IACrC,MAAM,KAAK,MAAM,4BAEhB;IAED;;;OAGG;IAEH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;;SAMK;IAEL,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,gBAAgB,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,CAAC;IAEtJ;;;OAGG;IAEH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;OAKG;IAEH,WAAW,CAAC,EAAE,UAAU,CAAC;IAEzB,MAAM;CAgCP;AAMD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
@@ -1,21 +1,22 @@
1
- import { unsafeCSS as i, html as o } from "lit";
2
- import { state as v, property as s } from "lit/decorators.js";
3
- import { EdElement as m } from "../EdElement.js";
1
+ import { unsafeCSS as s, html as o } from "lit";
2
+ import { state as m, property as h } from "lit/decorators.js";
3
+ import { EdElement as v } from "../EdElement.js";
4
4
  import "../layout-container/layout-container.js";
5
- const u = ":root,:host{--size-base-unit: .5rem}*,::slotted(*),*:before,*:after{box-sizing:border-box}h1,h2,h3,h4,h5,h6{margin:0}.ed-c-header{--ed-header-color-content: var(--ed-theme-color-content-knockout);--ed-header-focus-ring-color: var(--ed-theme-focus-ring-color-border-knockout);background:var(--ed-theme-color-background-knockout);color:var(--ed-header-color-content);position:relative;z-index:3}.ed-c-header__top{position:relative;inset-block-start:0;width:100%;z-index:3}.ed-c-header__top-inner{width:100%}.ed-c-header__middle{width:100%;display:flex;align-items:center;padding-block:.5rem}.ed-c-header--brand{--ed-header-color-content: var(--ed-theme-color-content-knockout);background:var(--ed-theme-color-background-brand);color:var(--ed-header-color-content)}.ed-c-header--brand-knockout{--ed-header-color-content: var(--ed-theme-color-content-knockout);background:var(--ed-theme-color-background-brand-knockout);color:var(--ed-header-color-content)}.ed-c-header--accent-1{--ed-header-color-content: var(--ed-theme-color-content-on-accent-1);--ed-header-focus-ring-color: var(--ed-theme-color-border-on-accent-1);background:var(--ed-theme-color-background-accent-1);color:var(--ed-header-color-content)}.ed-c-header--accent-2{--ed-header-color-content: var(--ed-theme-color-content-on-accent-2);--ed-header-focus-ring-color: var(--ed-theme-color-border-on-accent-2);background:var(--ed-theme-color-background-accent-2);color:var(--ed-header-color-content)}.ed-c-header--accent-3{--ed-header-color-content: var(--ed-theme-color-content-on-accent-3);--ed-header-focus-ring-color: var(--ed-theme-color-border-on-accent-3);background:var(--ed-theme-color-background-accent-3);color:var(--ed-header-color-content)}.ed-c-header--accent-4{--ed-header-color-content: var(--ed-theme-color-content-on-accent-4);--ed-header-focus-ring-color: var(--ed-theme-color-border-on-accent-4);background:var(--ed-theme-color-background-accent-4);color:var(--ed-header-color-content)}.ed-c-header--accent-5{--ed-header-color-content: var(--ed-theme-color-content-on-accent-5);--ed-header-focus-ring-color: var(--ed-theme-color-border-on-accent-5);background:var(--ed-theme-color-background-accent-5);color:var(--ed-header-color-content)}.ed-c-header--accent-6{--ed-header-color-content: var(--ed-theme-color-content-on-accent-6);--ed-header-focus-ring-color: var(--ed-theme-color-border-on-accent-6);background:var(--ed-theme-color-background-accent-6);color:var(--ed-header-color-content)}.ed-c-header--accent-7{--ed-header-color-content: var(--ed-theme-color-content-on-accent-7);--ed-header-focus-ring-color: var(--ed-theme-color-border-on-accent-7);background:var(--ed-theme-color-background-accent-7);color:var(--ed-header-color-content)}.ed-c-header--accent-8{--ed-header-color-content: var(--ed-theme-color-content-on-accent-8);--ed-header-focus-ring-color: var(--ed-theme-color-border-on-accent-8);background:var(--ed-theme-color-background-accent-8);color:var(--ed-header-color-content)}";
6
- var b = Object.defineProperty, l = (d, r, c, n) => {
7
- for (var e = void 0, a = d.length - 1, h; a >= 0; a--)
8
- (h = d[a]) && (e = h(r, c, e) || e);
9
- return e && b(r, c, e), e;
5
+ const u = '@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-c-header{--ed-header-color-content: var(--ed-theme-color-content-knockout);--ed-header-focus-ring-color: var(--ed-theme-focus-ring-color-border-knockout);background:var(--ed-theme-color-background-knockout);color:var(--ed-header-color-content);position:relative;z-index:3}@media all and (min-width:60rem){.ed-c-header--vertical{inline-size:var(--ed-sidebar-width, 18rem);min-block-size:100vh}}.ed-c-header__top{position:relative;inset-block-start:0;width:100%;z-index:3}.ed-c-header__top-inner{width:100%}.ed-c-header__middle{width:100%;display:flex;align-items:center;padding-block:.5rem}@media all and (min-width:60rem){.ed-c-header--vertical .ed-c-header__middle{flex-direction:column;align-items:flex-start;gap:1rem}}.ed-c-header--bare{--ed-header-color-content: var(--ed-theme-color-content-default);--ed-header-focus-ring-color: var(--ed-theme-focus-ring-color-border-default);background:transparent;color:var(--ed-header-color-content)}.ed-c-header--brand{--ed-header-color-content: var(--ed-theme-color-content-knockout);background:var(--ed-theme-color-background-brand);color:var(--ed-header-color-content)}.ed-c-header--brand-knockout{--ed-header-color-content: var(--ed-theme-color-content-knockout);background:var(--ed-theme-color-background-brand-knockout);color:var(--ed-header-color-content)}.ed-c-header--accent-1{--ed-header-color-content: var(--ed-theme-color-content-on-accent-1);--ed-header-focus-ring-color: var(--ed-theme-color-border-on-accent-1);background:var(--ed-theme-color-background-accent-1);color:var(--ed-header-color-content)}.ed-c-header--accent-2{--ed-header-color-content: var(--ed-theme-color-content-on-accent-2);--ed-header-focus-ring-color: var(--ed-theme-color-border-on-accent-2);background:var(--ed-theme-color-background-accent-2);color:var(--ed-header-color-content)}.ed-c-header--accent-3{--ed-header-color-content: var(--ed-theme-color-content-on-accent-3);--ed-header-focus-ring-color: var(--ed-theme-color-border-on-accent-3);background:var(--ed-theme-color-background-accent-3);color:var(--ed-header-color-content)}.ed-c-header--accent-4{--ed-header-color-content: var(--ed-theme-color-content-on-accent-4);--ed-header-focus-ring-color: var(--ed-theme-color-border-on-accent-4);background:var(--ed-theme-color-background-accent-4);color:var(--ed-header-color-content)}.ed-c-header--accent-5{--ed-header-color-content: var(--ed-theme-color-content-on-accent-5);--ed-header-focus-ring-color: var(--ed-theme-color-border-on-accent-5);background:var(--ed-theme-color-background-accent-5);color:var(--ed-header-color-content)}.ed-c-header--accent-6{--ed-header-color-content: var(--ed-theme-color-content-on-accent-6);--ed-header-focus-ring-color: var(--ed-theme-color-border-on-accent-6);background:var(--ed-theme-color-background-accent-6);color:var(--ed-header-color-content)}.ed-c-header--accent-7{--ed-header-color-content: var(--ed-theme-color-content-on-accent-7);--ed-header-focus-ring-color: var(--ed-theme-color-border-on-accent-7);background:var(--ed-theme-color-background-accent-7);color:var(--ed-header-color-content)}.ed-c-header--accent-8{--ed-header-color-content: var(--ed-theme-color-content-on-accent-8);--ed-header-focus-ring-color: var(--ed-theme-color-border-on-accent-8);background:var(--ed-theme-color-background-accent-8);color:var(--ed-header-color-content)}';
6
+ var b = Object.defineProperty, d = (a, c, t, n) => {
7
+ for (var e = void 0, l = a.length - 1, i; l >= 0; l--)
8
+ (i = a[l]) && (e = i(c, t, e) || e);
9
+ return e && b(c, t, e), e;
10
10
  };
11
- class t extends m {
11
+ class r extends v {
12
12
  static get styles() {
13
- return i(u);
13
+ return s(u);
14
14
  }
15
15
  render() {
16
- const r = this.variant ? `ed-c-header--${this.variant}` : "", c = this.componentClassNames("ed-c-header", {
16
+ const c = this.variant ? `ed-c-header--${this.variant}` : "", t = this.componentClassNames("ed-c-header", {
17
17
  "ed-is-active": this.isActive === !0,
18
- [r]: !!this.variant
18
+ "ed-c-header--vertical": this.orientation === "vertical",
19
+ [c]: !!this.variant
19
20
  }), n = o`
20
21
  ${this.slotNotEmpty("top") && o`<div class="ed-c-header__top">
21
22
  <slot name="top"></slot>
@@ -28,7 +29,7 @@ class t extends m {
28
29
  </div>`}
29
30
  `;
30
31
  return o`
31
- <header role="banner" class="${c}">
32
+ <header role="banner" class="${t}">
32
33
  ${this.fullWidth ? n : o`<ed-layout-container class="ed-c-header__layout-container">
33
34
  ${n}
34
35
  </ed-layout-container>`}
@@ -36,16 +37,19 @@ class t extends m {
36
37
  `;
37
38
  }
38
39
  }
39
- l([
40
- v()
41
- ], t.prototype, "isActive");
42
- l([
43
- s()
44
- ], t.prototype, "variant");
45
- l([
46
- s({ type: Boolean })
47
- ], t.prototype, "fullWidth");
48
- customElements.get("ed-header") === void 0 && customElements.define("ed-header", t);
40
+ d([
41
+ m()
42
+ ], r.prototype, "isActive");
43
+ d([
44
+ h()
45
+ ], r.prototype, "variant");
46
+ d([
47
+ h({ type: Boolean })
48
+ ], r.prototype, "fullWidth");
49
+ d([
50
+ h()
51
+ ], r.prototype, "orientation");
52
+ customElements.get("ed-header") === void 0 && customElements.define("ed-header", r);
49
53
  export {
50
- t as EdHeader
54
+ r as EdHeader
51
55
  };