@justeattakeaway/pie-breadcrumb 0.7.29 → 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 +2 -0
- package/custom-elements.json +16 -0
- package/dist/{breadcrumb-CpBYQXwO.js → breadcrumb-Cl-EBr33.js} +1 -1
- package/dist/defs.d.ts +9 -1
- package/dist/defs.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -28
- package/dist/pie-breadcrumb-item/defs.d.ts +8 -0
- package/dist/pie-breadcrumb-item/defs.d.ts.map +1 -1
- package/dist/pie-breadcrumb-item/index.d.ts +1 -0
- package/dist/pie-breadcrumb-item/index.d.ts.map +1 -1
- package/dist/pie-breadcrumb-item/index.js +24 -19
- package/package.json +4 -4
- package/src/defs.ts +10 -1
- package/src/index.ts +4 -1
- package/src/pie-breadcrumb-item/defs.ts +9 -0
- package/src/pie-breadcrumb-item/index.ts +5 -1
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
|
|
package/custom-elements.json
CHANGED
|
@@ -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
|
+
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
|
package/dist/defs.d.ts.map
CHANGED
|
@@ -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;
|
|
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.
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
|
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
|
|
5
|
-
import { s as
|
|
6
|
-
const v = ["default", "scrim"],
|
|
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
|
|
12
|
-
for (var
|
|
13
|
-
(c =
|
|
14
|
-
return
|
|
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
|
|
16
|
+
const g = "pie-breadcrumb";
|
|
17
17
|
let s = class extends C {
|
|
18
18
|
constructor() {
|
|
19
|
-
super(...arguments), this.variant =
|
|
19
|
+
super(...arguments), this.variant = l.variant, this.isCompact = l.isCompact, this.hideCurrentPage = l.hideCurrentPage;
|
|
20
20
|
}
|
|
21
21
|
updateAriaCurrentItem() {
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
const
|
|
25
|
-
e.ariaCurrent =
|
|
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
|
-
|
|
40
|
+
var t;
|
|
41
|
+
const { variant: r } = this, e = {
|
|
41
42
|
"c-breadcrumb": !0,
|
|
42
|
-
[`c-breadcrumb--${
|
|
43
|
+
[`c-breadcrumb--${r}`]: !0
|
|
43
44
|
};
|
|
44
45
|
return m`
|
|
45
46
|
<nav
|
|
46
|
-
aria-label="
|
|
47
|
+
aria-label=${((t = this.aria) == null ? void 0 : t.label) ?? "Breadcrumb"}
|
|
47
48
|
data-test-id="pie-breadcrumb"
|
|
48
|
-
class="${
|
|
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(
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
d(
|
|
56
|
+
s.styles = u(f);
|
|
57
|
+
o([
|
|
58
|
+
n({ type: String }),
|
|
59
|
+
d(g, v, l.variant)
|
|
59
60
|
], s.prototype, "variant", 2);
|
|
60
|
-
|
|
61
|
-
|
|
61
|
+
o([
|
|
62
|
+
n({ type: Boolean, reflect: !0 })
|
|
62
63
|
], s.prototype, "isCompact", 2);
|
|
63
|
-
|
|
64
|
-
|
|
64
|
+
o([
|
|
65
|
+
n({ type: Boolean, reflect: !0 })
|
|
65
66
|
], s.prototype, "hideCurrentPage", 2);
|
|
66
|
-
|
|
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
|
-
|
|
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;
|
|
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
|
|
2
|
-
import { property as
|
|
3
|
-
import { s as f, P as
|
|
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
|
|
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
|
|
9
|
-
for (var e =
|
|
10
|
-
(
|
|
11
|
-
return
|
|
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
|
|
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
|
|
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
|
-
|
|
38
|
+
var t;
|
|
39
|
+
return l`
|
|
39
40
|
<pie-link
|
|
40
41
|
isStandalone
|
|
41
42
|
underline="reversed"
|
|
42
|
-
href="${
|
|
43
|
-
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
|
|
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
|
-
|
|
59
|
-
|
|
60
|
+
s([
|
|
61
|
+
m({ type: String })
|
|
60
62
|
], r.prototype, "href", 2);
|
|
61
|
-
|
|
62
|
-
|
|
63
|
+
s([
|
|
64
|
+
m({ type: String })
|
|
63
65
|
], r.prototype, "target", 2);
|
|
64
|
-
|
|
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.
|
|
4
|
+
"version": "0.8.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/justeattakeaway/pie",
|
|
@@ -46,13 +46,13 @@
|
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@custom-elements-manifest/analyzer": "0.9.0",
|
|
48
48
|
"@justeattakeaway/pie-components-config": "0.21.0",
|
|
49
|
-
"@justeattakeaway/pie-css": "1.1.
|
|
49
|
+
"@justeattakeaway/pie-css": "1.1.1",
|
|
50
50
|
"@justeattakeaway/pie-monorepo-utils": "0.9.0",
|
|
51
51
|
"cem-plugin-module-file-extensions": "0.0.5"
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@justeattakeaway/pie-icons-webc": "1.
|
|
55
|
-
"@justeattakeaway/pie-link": "1.3.
|
|
54
|
+
"@justeattakeaway/pie-icons-webc": "1.22.0",
|
|
55
|
+
"@justeattakeaway/pie-link": "1.3.25",
|
|
56
56
|
"@justeattakeaway/pie-webc-core": "14.0.1"
|
|
57
57
|
},
|
|
58
58
|
"volta": {
|
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
|
|
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">
|
|
@@ -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
|
`;
|