@justeattakeaway/pie-breadcrumb 0.7.30 → 0.8.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/README.md CHANGED
@@ -39,6 +39,7 @@ Ideally, you should install the component using the **`@justeattakeaway/pie-webc
39
39
  | `variant` | `"default"`, `"scrim"` | Sets the variant of the breadcrumb. | `"default"` |
40
40
  | `isCompact` | `true`, `false` | If true, renders a compact variation of the breadcrumb. | `false` |
41
41
  | `hideCurrentPage` | `true`, `false` | If true, hides the current page of the breadcrumb (last item). | `false` |
42
+ | `aria.label` | `string` | Provides a custom accessible label for the breadcrumb element. | `"Breadcrumb"` |
42
43
 
43
44
  #### `pie-breadcrumb-item` Properties
44
45
 
@@ -46,6 +47,7 @@ Ideally, you should install the component using the **`@justeattakeaway/pie-webc
46
47
  |------|---------|-------------|--------|
47
48
  | `href` | `string` | The URL that the breadcrumb item links to. | `undefined` |
48
49
  | `target` | `string` | Where to display the linked URL such as `"_self"`, `"_blank"`, `"_parent"`, or `"_top"`. | `undefined` |
50
+ | `aria.label` | `string` | Provides a custom accessible label for the breadcrumb item | `undefined` |
49
51
 
50
52
  ### Slots
51
53
 
@@ -26,7 +26,7 @@
26
26
  "type": {
27
27
  "text": "DefaultProps"
28
28
  },
29
- "default": "{\r\n variant: 'default',\r\n isCompact: false,\r\n hideCurrentPage: false,\r\n}"
29
+ "default": "{\n variant: 'default',\n isCompact: false,\n hideCurrentPage: false,\n}"
30
30
  }
31
31
  ],
32
32
  "exports": [
@@ -72,6 +72,14 @@
72
72
  "name": "hideCurrentPage",
73
73
  "privacy": "public"
74
74
  },
75
+ {
76
+ "kind": "field",
77
+ "name": "aria",
78
+ "type": {
79
+ "text": "BreadcrumbProps['aria']"
80
+ },
81
+ "privacy": "public"
82
+ },
75
83
  {
76
84
  "kind": "method",
77
85
  "name": "updateAriaCurrentItem",
@@ -148,6 +156,14 @@
148
156
  },
149
157
  "privacy": "public"
150
158
  },
159
+ {
160
+ "kind": "field",
161
+ "name": "aria",
162
+ "type": {
163
+ "text": "BreadcrumbItemProps['aria']"
164
+ },
165
+ "privacy": "public"
166
+ },
151
167
  {
152
168
  "kind": "method",
153
169
  "name": "renderSeparator",
@@ -4,7 +4,7 @@ const r = class r extends e {
4
4
  this.getAttribute("v") || this.setAttribute("v", r.v);
5
5
  }
6
6
  };
7
- r.v = "0.7.30";
7
+ r.v = "0.8.0";
8
8
  let t = r;
9
9
  const o = "*,*:after,*:before{box-sizing:inherit}:host{display:block}:host ::slotted(pie-breadcrumb-item:only-child){display:none}.c-breadcrumb{--breadcrumb-background-color: var(--dt-color-transparent);--breadcrumb-item-flex-direction: row;--breadcrumb-item-color: var(--dt-color-content-link);--breadcrumb-separator-color: var(--dt-color-content-subdued);--breadcrumb-separator-transform: none;background-color:var(--breadcrumb-background-color);padding-block-start:var(--dt-spacing-a);padding-block-end:var(--dt-spacing-a)}.c-breadcrumb--scrim{--breadcrumb-background-color: var(--dt-color-overlay);--breadcrumb-item-color: var(--dt-color-content-link-light);--breadcrumb-separator-color: var(--dt-color-content-light);border-radius:var(--dt-radius-rounded-e);padding-inline-start:var(--dt-spacing-d);padding-inline-end:var(--dt-spacing-d)}.c-breadcrumb-list{margin:0;padding:0;display:flex;flex-flow:row;gap:var(--dt-spacing-a)}.c-breadcrumb-item{display:flex;flex-direction:var(--breadcrumb-item-flex-direction);align-items:center;white-space:nowrap;gap:var(--dt-spacing-a)}.c-breadcrumb-item pie-link{--link-text-color: var(--breadcrumb-item-color);--link-font-weight: var(--dt-font-body-strong-l-link-weight)}.c-breadcrumb-separator{display:inline-flex;color:var(--breadcrumb-separator-color);transform:var(--breadcrumb-separator-transform)}.c-breadcrumb-separator:dir(rtl){--breadcrumb-separator-transform: rotate(180deg)}:host([isCompact]) .c-breadcrumb{--breadcrumb-item-flex-direction: row-reverse;--breadcrumb-separator-transform: rotate(180deg)}:host([isCompact]) ::slotted(pie-breadcrumb-item:not(:nth-last-of-type(2))){display:none}:host([hideCurrentPage]) ::slotted(pie-breadcrumb-item:last-of-type){display:none}:host(:last-of-type) pie-link{--link-font-weight: var(--dt-font-body-l-link-weight)}:host(:last-of-type) pie-link::part(base):hover,:host(:last-of-type) pie-link::part(base):active{--link-text-decoration: none}:host(:last-of-type) pie-link span{max-width:250px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host(:last-of-type) .c-breadcrumb-separator{display:none}";
10
10
  export {
package/dist/defs.d.ts CHANGED
@@ -1,6 +1,13 @@
1
1
  import { ComponentDefaultProps } from '@justeattakeaway/pie-webc-core';
2
2
  export declare const variants: readonly ["default", "scrim"];
3
+ type AriaProps = {
4
+ label?: string;
5
+ };
3
6
  export interface BreadcrumbProps {
7
+ /**
8
+ * The ARIA labels used for various parts of the breadcrumb.
9
+ */
10
+ aria?: AriaProps;
4
11
  /**
5
12
  * Optional variant for styling the breadcrumb component.
6
13
  */
@@ -14,6 +21,7 @@ export interface BreadcrumbProps {
14
21
  */
15
22
  hideCurrentPage?: boolean;
16
23
  }
17
- export type DefaultProps = ComponentDefaultProps<BreadcrumbProps>;
24
+ export type DefaultProps = ComponentDefaultProps<BreadcrumbProps, keyof Omit<BreadcrumbProps, 'aria'>>;
18
25
  export declare const defaultProps: DefaultProps;
26
+ export {};
19
27
  //# sourceMappingURL=defs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"defs.d.ts","sourceRoot":"","sources":["../src/defs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAE5E,eAAO,MAAM,QAAQ,+BAAgC,CAAC;AAEtD,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;IAElC;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,MAAM,YAAY,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC;AAElE,eAAO,MAAM,YAAY,EAAC,YAIzB,CAAC"}
1
+ {"version":3,"file":"defs.d.ts","sourceRoot":"","sources":["../src/defs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAE5E,eAAO,MAAM,QAAQ,+BAAgC,CAAC;AAEtD,KAAK,SAAS,GAAG;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;IAElC;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,MAAM,YAAY,GAAG,qBAAqB,CAAC,eAAe,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;AAEvG,eAAO,MAAM,YAAY,EAAC,YAIzB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -9,6 +9,7 @@ export declare class PieBreadcrumb extends PieElement implements BreadcrumbProps
9
9
  variant: "default" | "scrim";
10
10
  isCompact: boolean;
11
11
  hideCurrentPage: boolean;
12
+ aria: BreadcrumbProps['aria'];
12
13
  private updateAriaCurrentItem;
13
14
  /**
14
15
  * Handles the slot change event.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,yDAAyD,CAAC;AAIrF,OAAO,EACH,KAAK,eAAe,EAGvB,MAAM,QAAQ,CAAC;AAEhB,QAAA,MAAM,iBAAiB,mBAAmB,CAAC;AAG3C,cAAc,QAAQ,CAAC;AAEvB;;GAEG;AACH,qBACa,aAAc,SAAQ,UAAW,YAAW,eAAe;IAG7D,OAAO,sBAAwB;IAG/B,SAAS,UAA0B;IAGnC,eAAe,UAAgC;IAEtD,OAAO,CAAC,qBAAqB;IAQ7B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAIzB,SAAS,CAAC,YAAY,IAAK,IAAI;IAI/B,MAAM;IAoBN,MAAM,CAAC,MAAM,0BAAqB;CACrC;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,CAAC,iBAAiB,CAAC,EAAE,aAAa,CAAC;KACtC;CACJ"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,yDAAyD,CAAC;AAIrF,OAAO,EACH,KAAK,eAAe,EAGvB,MAAM,QAAQ,CAAC;AAEhB,QAAA,MAAM,iBAAiB,mBAAmB,CAAC;AAG3C,cAAc,QAAQ,CAAC;AAEvB;;GAEG;AACH,qBACa,aAAc,SAAQ,UAAW,YAAW,eAAe;IAG7D,OAAO,sBAAwB;IAG/B,SAAS,UAA0B;IAGnC,eAAe,UAAgC;IAG/C,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAErC,OAAO,CAAC,qBAAqB;IAQ7B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAIzB,SAAS,CAAC,YAAY,IAAK,IAAI;IAI/B,MAAM;IAoBN,MAAM,CAAC,MAAM,0BAAqB;CACrC;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,CAAC,iBAAiB,CAAC,EAAE,aAAa,CAAC;KACtC;CACJ"}
package/dist/index.js CHANGED
@@ -1,28 +1,28 @@
1
1
  import { unsafeCSS as u, html as m } from "lit";
2
- import { property as p } from "lit/decorators.js";
2
+ import { property as n } from "lit/decorators.js";
3
3
  import { validPropertyValues as d, safeCustomElement as b } from "@justeattakeaway/pie-webc-core";
4
- import { classMap as f } from "lit/directives/class-map.js";
5
- import { s as h, P as C } from "./breadcrumb-DcuxWd4L.js";
6
- const v = ["default", "scrim"], i = {
4
+ import { classMap as h } from "lit/directives/class-map.js";
5
+ import { s as f, P as C } from "./breadcrumb-Cl-EBr33.js";
6
+ const v = ["default", "scrim"], l = {
7
7
  variant: "default",
8
8
  isCompact: !1,
9
9
  hideCurrentPage: !1
10
10
  };
11
- var P = Object.defineProperty, g = Object.getOwnPropertyDescriptor, n = (t, e, o, a) => {
12
- for (var r = a > 1 ? void 0 : a ? g(e, o) : e, l = t.length - 1, c; l >= 0; l--)
13
- (c = t[l]) && (r = (a ? c(e, o, r) : c(r)) || r);
14
- return a && r && P(e, o, r), r;
11
+ var y = Object.defineProperty, P = Object.getOwnPropertyDescriptor, o = (r, e, t, i) => {
12
+ for (var a = i > 1 ? void 0 : i ? P(e, t) : e, p = r.length - 1, c; p >= 0; p--)
13
+ (c = r[p]) && (a = (i ? c(e, t, a) : c(a)) || a);
14
+ return i && a && y(e, t, a), a;
15
15
  };
16
- const y = "pie-breadcrumb";
16
+ const g = "pie-breadcrumb";
17
17
  let s = class extends C {
18
18
  constructor() {
19
- super(...arguments), this.variant = i.variant, this.isCompact = i.isCompact, this.hideCurrentPage = i.hideCurrentPage;
19
+ super(...arguments), this.variant = l.variant, this.isCompact = l.isCompact, this.hideCurrentPage = l.hideCurrentPage;
20
20
  }
21
21
  updateAriaCurrentItem() {
22
- const t = [...this.querySelectorAll("pie-breadcrumb-item")];
23
- t.forEach((e, o) => {
24
- const a = o === t.length - 1;
25
- e.ariaCurrent = a ? "page" : null;
22
+ const r = [...this.querySelectorAll("pie-breadcrumb-item")];
23
+ r.forEach((e, t) => {
24
+ const i = t === r.length - 1;
25
+ e.ariaCurrent = i ? "page" : null;
26
26
  });
27
27
  }
28
28
  /**
@@ -37,37 +37,41 @@ let s = class extends C {
37
37
  this.updateAriaCurrentItem();
38
38
  }
39
39
  render() {
40
- const { variant: t } = this, e = {
40
+ var t;
41
+ const { variant: r } = this, e = {
41
42
  "c-breadcrumb": !0,
42
- [`c-breadcrumb--${t}`]: !0
43
+ [`c-breadcrumb--${r}`]: !0
43
44
  };
44
45
  return m`
45
46
  <nav
46
- aria-label="breadcrumb"
47
+ aria-label=${((t = this.aria) == null ? void 0 : t.label) ?? "Breadcrumb"}
47
48
  data-test-id="pie-breadcrumb"
48
- class="${f(e)}">
49
+ class="${h(e)}">
49
50
  <ol class="c-breadcrumb-list" data-test-id="pie-breadcrumb-list">
50
51
  <slot @slotchange=${this._handleSlotChange}></slot>
51
52
  </ol>
52
53
  </nav>`;
53
54
  }
54
55
  };
55
- s.styles = u(h);
56
- n([
57
- p({ type: String }),
58
- d(y, v, i.variant)
56
+ s.styles = u(f);
57
+ o([
58
+ n({ type: String }),
59
+ d(g, v, l.variant)
59
60
  ], s.prototype, "variant", 2);
60
- n([
61
- p({ type: Boolean, reflect: !0 })
61
+ o([
62
+ n({ type: Boolean, reflect: !0 })
62
63
  ], s.prototype, "isCompact", 2);
63
- n([
64
- p({ type: Boolean, reflect: !0 })
64
+ o([
65
+ n({ type: Boolean, reflect: !0 })
65
66
  ], s.prototype, "hideCurrentPage", 2);
66
- s = n([
67
+ o([
68
+ n({ type: Object })
69
+ ], s.prototype, "aria", 2);
70
+ s = o([
67
71
  b("pie-breadcrumb")
68
72
  ], s);
69
73
  export {
70
74
  s as PieBreadcrumb,
71
- i as defaultProps,
75
+ l as defaultProps,
72
76
  v as variants
73
77
  };
@@ -1,4 +1,11 @@
1
+ type AriaProps = {
2
+ label?: string;
3
+ };
1
4
  export interface BreadcrumbItemProps {
5
+ /**
6
+ * The ARIA labels used for various parts of the breadcrumb item.
7
+ */
8
+ aria?: AriaProps;
2
9
  /**
3
10
  * The URL that the breadcrumb item links to
4
11
  */
@@ -8,4 +15,5 @@ export interface BreadcrumbItemProps {
8
15
  */
9
16
  target?: string;
10
17
  }
18
+ export {};
11
19
  //# sourceMappingURL=defs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"defs.d.ts","sourceRoot":"","sources":["../../src/pie-breadcrumb-item/defs.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAChC;;MAEE;IACF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;MAEE;IACF,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB"}
1
+ {"version":3,"file":"defs.d.ts","sourceRoot":"","sources":["../../src/pie-breadcrumb-item/defs.ts"],"names":[],"mappings":"AAAA,KAAK,SAAS,GAAG;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAChC;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB;;MAEE;IACF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;MAEE;IACF,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB"}
@@ -8,6 +8,7 @@ export * from './defs';
8
8
  export declare class PieBreadcrumbItem extends PieElement implements BreadcrumbItemProps {
9
9
  href: BreadcrumbItemProps['href'];
10
10
  target: BreadcrumbItemProps['target'];
11
+ aria: BreadcrumbItemProps['aria'];
11
12
  /**
12
13
  * Renders a separator icon between breadcrumb items.
13
14
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pie-breadcrumb-item/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,yDAAyD,CAAC;AAIrF,OAAO,2BAA2B,CAAC;AACnC,OAAO,0DAA0D,CAAC;AAGlE,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAElD,QAAA,MAAM,iBAAiB,wBAAwB,CAAC;AAGhD,cAAc,QAAQ,CAAC;AAEvB;;GAEG;AACH,qBACa,iBAAkB,SAAQ,UAAW,YAAW,mBAAmB;IAErE,IAAI,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAGlC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAE7C;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAYvB;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAY5B,MAAM;IAUN,MAAM,CAAC,MAAM,0BAAqB;CACrC;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;KAC1C;CACJ"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pie-breadcrumb-item/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,yDAAyD,CAAC;AAIrF,OAAO,2BAA2B,CAAC;AACnC,OAAO,0DAA0D,CAAC;AAGlE,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAElD,QAAA,MAAM,iBAAiB,wBAAwB,CAAC;AAGhD,cAAc,QAAQ,CAAC;AAEvB;;GAEG;AACH,qBACa,iBAAkB,SAAQ,UAAW,YAAW,mBAAmB;IAErE,IAAI,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAGlC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAGtC,IAAI,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAEzC;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAYvB;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAa5B,MAAM;IAUN,MAAM,CAAC,MAAM,0BAAqB;CACrC;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;KAC1C;CACJ"}
@@ -1,16 +1,16 @@
1
- import { unsafeCSS as c, html as o } from "lit";
2
- import { property as d } from "lit/decorators.js";
3
- import { s as f, P as u } from "../breadcrumb-DcuxWd4L.js";
1
+ import { unsafeCSS as c, html as l } from "lit";
2
+ import { property as m } from "lit/decorators.js";
3
+ import { s as f, P as b } from "../breadcrumb-Cl-EBr33.js";
4
4
  import { safeCustomElement as h } from "@justeattakeaway/pie-webc-core";
5
- import { ifDefined as l } from "lit/directives/if-defined.js";
5
+ import { ifDefined as d } from "lit/directives/if-defined.js";
6
6
  import "@justeattakeaway/pie-link";
7
7
  import "@justeattakeaway/pie-icons-webc/dist/IconChevronRight.js";
8
- var b = Object.defineProperty, v = Object.getOwnPropertyDescriptor, p = (m, t, a, i) => {
9
- for (var e = i > 1 ? void 0 : i ? v(t, a) : t, s = m.length - 1, n; s >= 0; s--)
10
- (n = m[s]) && (e = (i ? n(t, a, e) : n(e)) || e);
11
- return i && e && b(t, a, e), e;
8
+ var u = Object.defineProperty, v = Object.getOwnPropertyDescriptor, s = (t, i, o, a) => {
9
+ for (var e = a > 1 ? void 0 : a ? v(i, o) : i, n = t.length - 1, p; n >= 0; n--)
10
+ (p = t[n]) && (e = (a ? p(i, o, e) : p(e)) || e);
11
+ return a && e && u(i, o, e), e;
12
12
  };
13
- let r = class extends u {
13
+ let r = class extends b {
14
14
  /**
15
15
  * Renders a separator icon between breadcrumb items.
16
16
  *
@@ -19,7 +19,7 @@ let r = class extends u {
19
19
  * @private
20
20
  */
21
21
  renderSeparator() {
22
- return o`
22
+ return l`
23
23
  <span
24
24
  class="c-breadcrumb-separator"
25
25
  role="presentation"
@@ -35,18 +35,20 @@ let r = class extends u {
35
35
  * @private
36
36
  */
37
37
  renderNavigationLink() {
38
- return o`
38
+ var t;
39
+ return l`
39
40
  <pie-link
40
41
  isStandalone
41
42
  underline="reversed"
42
- href="${l(this.href)}"
43
- target="${l(this.target)}">
43
+ href="${d(this.href)}"
44
+ target="${d(this.target)}"
45
+ .aria="${{ label: (t = this.aria) == null ? void 0 : t.label }}">
44
46
  <span><slot></slot></span>
45
47
  </pie-link>
46
48
  `;
47
49
  }
48
50
  render() {
49
- return o`
51
+ return l`
50
52
  <li role="listitem" data-test-id="pie-breadcrumb-item" class="c-breadcrumb-item">
51
53
  ${this.renderNavigationLink()}
52
54
  ${this.renderSeparator()}
@@ -55,13 +57,16 @@ let r = class extends u {
55
57
  }
56
58
  };
57
59
  r.styles = c(f);
58
- p([
59
- d({ type: String })
60
+ s([
61
+ m({ type: String })
60
62
  ], r.prototype, "href", 2);
61
- p([
62
- d({ type: String })
63
+ s([
64
+ m({ type: String })
63
65
  ], r.prototype, "target", 2);
64
- r = p([
66
+ s([
67
+ m({ type: Object })
68
+ ], r.prototype, "aria", 2);
69
+ r = s([
65
70
  h("pie-breadcrumb-item")
66
71
  ], r);
67
72
  export {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@justeattakeaway/pie-breadcrumb",
3
3
  "description": "PIE Design System Breadcrumb built using Web Components",
4
- "version": "0.7.30",
4
+ "version": "0.8.0",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/justeattakeaway/pie",
package/src/defs.ts CHANGED
@@ -2,7 +2,16 @@ import { type ComponentDefaultProps } from '@justeattakeaway/pie-webc-core';
2
2
 
3
3
  export const variants = ['default', 'scrim'] as const;
4
4
 
5
+ type AriaProps = {
6
+ label?: string;
7
+ };
8
+
5
9
  export interface BreadcrumbProps {
10
+ /**
11
+ * The ARIA labels used for various parts of the breadcrumb.
12
+ */
13
+ aria?: AriaProps;
14
+
6
15
  /**
7
16
  * Optional variant for styling the breadcrumb component.
8
17
  */
@@ -19,7 +28,7 @@ export interface BreadcrumbProps {
19
28
  hideCurrentPage?: boolean;
20
29
  }
21
30
 
22
- export type DefaultProps = ComponentDefaultProps<BreadcrumbProps>;
31
+ export type DefaultProps = ComponentDefaultProps<BreadcrumbProps, keyof Omit<BreadcrumbProps, 'aria'>>;
23
32
 
24
33
  export const defaultProps:DefaultProps = {
25
34
  variant: 'default',
package/src/index.ts CHANGED
@@ -32,6 +32,9 @@ export class PieBreadcrumb extends PieElement implements BreadcrumbProps {
32
32
  @property({ type: Boolean, reflect: true })
33
33
  public hideCurrentPage = defaultProps.hideCurrentPage;
34
34
 
35
+ @property({ type: Object })
36
+ public aria: BreadcrumbProps['aria'];
37
+
35
38
  private updateAriaCurrentItem () {
36
39
  const items = [...this.querySelectorAll('pie-breadcrumb-item')] as PieBreadcrumbItem[];
37
40
  items.forEach((item, i) => {
@@ -63,7 +66,7 @@ export class PieBreadcrumb extends PieElement implements BreadcrumbProps {
63
66
 
64
67
  return html`
65
68
  <nav
66
- aria-label="breadcrumb"
69
+ aria-label=${this.aria?.label ?? 'Breadcrumb'}
67
70
  data-test-id="pie-breadcrumb"
68
71
  class="${classMap(classes)}">
69
72
  <ol class="c-breadcrumb-list" data-test-id="pie-breadcrumb-list">
@@ -1,4 +1,13 @@
1
+ type AriaProps = {
2
+ label?: string;
3
+ };
4
+
1
5
  export interface BreadcrumbItemProps {
6
+ /**
7
+ * The ARIA labels used for various parts of the breadcrumb item.
8
+ */
9
+ aria?: AriaProps;
10
+
2
11
  /**
3
12
  * The URL that the breadcrumb item links to
4
13
  */
@@ -26,6 +26,9 @@ export class PieBreadcrumbItem extends PieElement implements BreadcrumbItemProps
26
26
  @property({ type: String })
27
27
  public target: BreadcrumbItemProps['target'];
28
28
 
29
+ @property({ type: Object })
30
+ public aria: BreadcrumbItemProps['aria'];
31
+
29
32
  /**
30
33
  * Renders a separator icon between breadcrumb items.
31
34
  *
@@ -56,7 +59,8 @@ export class PieBreadcrumbItem extends PieElement implements BreadcrumbItemProps
56
59
  isStandalone
57
60
  underline="reversed"
58
61
  href="${ifDefined(this.href)}"
59
- target="${ifDefined(this.target)}">
62
+ target="${ifDefined(this.target)}"
63
+ .aria="${{ label: this.aria?.label }}">
60
64
  <span><slot></slot></span>
61
65
  </pie-link>
62
66
  `;
File without changes
package/src/react.ts CHANGED
File without changes