@purpurds/breadcrumbs 3.0.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.
@@ -0,0 +1,36 @@
1
+ import React, { ReactElement } from "react";
2
+ export declare const BREADCRUMB_VARIANT: {
3
+ readonly DEFAULT: "default";
4
+ readonly NEGATIVE: "negative";
5
+ };
6
+ export declare const breadcrumbVariants: ("default" | "negative")[];
7
+ export type BreadcrumbVariant = (typeof BREADCRUMB_VARIANT)[keyof typeof BREADCRUMB_VARIANT];
8
+ export type BreadcrumbsProps = {
9
+ ["data-testid"]?: string;
10
+ ariaLabel?: string;
11
+ children: ReactElement<BreadcrumbsItemProps> | Array<ReactElement<BreadcrumbsItemProps>>;
12
+ className?: string;
13
+ meta?: boolean;
14
+ variant?: BreadcrumbVariant;
15
+ };
16
+ type CommonItemProps = {
17
+ current?: boolean;
18
+ variant?: BreadcrumbVariant;
19
+ ["data-testid"]?: string;
20
+ ariaLabel?: string;
21
+ meta?: boolean;
22
+ };
23
+ export type BreadcrumbsItemProps = CommonItemProps & Conditional;
24
+ type Conditional = {
25
+ href?: string;
26
+ children: string;
27
+ } | {
28
+ href?: never;
29
+ children: ReactElement<HTMLAnchorElement>;
30
+ };
31
+ declare const Breadcrumbs: {
32
+ ({ ["data-testid"]: dataTestId, ariaLabel, children, className, meta, variant, }: BreadcrumbsProps): React.JSX.Element;
33
+ Item: ({ href, ["data-testid"]: dataTestId, children, current, variant, ...rest }: BreadcrumbsItemProps) => React.JSX.Element;
34
+ };
35
+ export { Breadcrumbs };
36
+ //# sourceMappingURL=breadcrumbs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumbs.d.ts","sourceRoot":"","sources":["../src/breadcrumbs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAyC,YAAY,EAAE,MAAM,OAAO,CAAC;AAOnF,eAAO,MAAM,kBAAkB;;;CAGrB,CAAC;AAEX,eAAO,MAAM,kBAAkB,4BAAoC,CAAC;AACpE,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,OAAO,kBAAkB,CAAC,CAAC;AAE7F,MAAM,MAAM,gBAAgB,GAAG;IAC7B,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAC,oBAAoB,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACzF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,eAAe,GAAG,WAAW,CAAC;AAEjE,KAAK,WAAW,GACZ;IACE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB,GACD;IACE,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,YAAY,CAAC,iBAAiB,CAAC,CAAC;CAC3C,CAAC;AAKN,QAAA,MAAM,WAAW;sFAOd,gBAAgB;uFAiEhB,oBAAoB;CATtB,CAAC;AA8CF,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,219 @@
1
+ import { jsx as l, jsxs as v } from "react/jsx-runtime";
2
+ import { Children as w, cloneElement as $, createElement as B } from "react";
3
+ function E(e) {
4
+ return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
5
+ }
6
+ var S = { exports: {} };
7
+ /*!
8
+ Copyright (c) 2018 Jed Watson.
9
+ Licensed under the MIT License (MIT), see
10
+ http://jedwatson.github.io/classnames
11
+ */
12
+ (function(e) {
13
+ (function() {
14
+ var s = {}.hasOwnProperty;
15
+ function n() {
16
+ for (var r = "", t = 0; t < arguments.length; t++) {
17
+ var u = arguments[t];
18
+ u && (r = i(r, a.call(this, u)));
19
+ }
20
+ return r;
21
+ }
22
+ function a(r) {
23
+ if (typeof r == "string" || typeof r == "number")
24
+ return this && this[r] || r;
25
+ if (typeof r != "object")
26
+ return "";
27
+ if (Array.isArray(r))
28
+ return n.apply(this, r);
29
+ if (r.toString !== Object.prototype.toString && !r.toString.toString().includes("[native code]"))
30
+ return r.toString();
31
+ var t = "";
32
+ for (var u in r)
33
+ s.call(r, u) && r[u] && (t = i(t, this && this[u] || u));
34
+ return t;
35
+ }
36
+ function i(r, t) {
37
+ return t ? r ? r + " " + t : r + t : r;
38
+ }
39
+ e.exports ? (n.default = n, e.exports = n) : window.classNames = n;
40
+ })();
41
+ })(S);
42
+ var L = S.exports;
43
+ const M = /* @__PURE__ */ E(L), q = {
44
+ "purpur-icon": "_purpur-icon_8u1lq_1",
45
+ "purpur-icon--xxs": "_purpur-icon--xxs_8u1lq_4",
46
+ "purpur-icon--xs": "_purpur-icon--xs_8u1lq_8",
47
+ "purpur-icon--sm": "_purpur-icon--sm_8u1lq_12",
48
+ "purpur-icon--md": "_purpur-icon--md_8u1lq_16",
49
+ "purpur-icon--lg": "_purpur-icon--lg_8u1lq_20",
50
+ "purpur-icon--xl": "_purpur-icon--xl_8u1lq_24"
51
+ }, H = {
52
+ name: "home",
53
+ svg: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path fill-rule="evenodd" d="M11.38 1.848a.9.9 0 0 1 1.24 0l8.69 8.276c1.242 1.183.405 3.276-1.31 3.276h-.6v8.1a.9.9 0 0 1-.9.9h-13a.9.9 0 0 1-.9-.9v-8.1H4c-1.715 0-2.552-2.093-1.31-3.276l8.69-8.276ZM12 3.743l-8.069 7.685c-.026.024-.03.04-.032.049a.11.11 0 0 0 .008.06.11.11 0 0 0 .036.049c.007.005.021.014.057.014h1.5a.9.9 0 0 1 .9.9v8.1h11.2v-8.1a.9.9 0 0 1 .9-.9H20c.036 0 .05-.009.057-.014a.111.111 0 0 0 .036-.049.111.111 0 0 0 .008-.06c-.002-.008-.006-.025-.032-.05L12 3.744ZM10.6 14a.9.9 0 0 1 .9-.9H15a.9.9 0 0 1 .9.9v4a.9.9 0 0 1-.9.9h-3.5a.9.9 0 0 1-.9-.9v-4Zm1.8.9v2.2h1.7v-2.2h-1.7Z" clip-rule="evenodd"/></svg>',
54
+ keywords: ["home"],
55
+ category: "buildings"
56
+ }, j = (e) => /* @__PURE__ */ l(
57
+ D,
58
+ {
59
+ ...e,
60
+ svg: H
61
+ }
62
+ );
63
+ j.displayName = "IconHome";
64
+ const T = M.bind(q), N = "purpur-icon", C = "md", P = (e) => e.filter((s) => Object.keys(s).length >= 1).map((s) => `${s.name}="${s.value}"`).join(" "), Z = ({ content: e = "", title: s } = {}) => {
65
+ const n = [
66
+ { name: "xmlns", value: "http://www.w3.org/2000/svg" },
67
+ { name: "fill", value: "currentColor" },
68
+ { name: "viewBox", value: "0 0 24 24" },
69
+ s ? { name: "role", value: "img" } : { name: "aria-hidden", value: "true" }
70
+ ], a = s ? `<title>${s}</title>` : "";
71
+ return `<svg ${P(n)}>${a}${e}</svg>`;
72
+ }, V = (e) => e.replace(/<(\/?)svg([^>]*)>/g, "").trim(), D = ({
73
+ ["data-testid"]: e,
74
+ svg: s,
75
+ allyTitle: n,
76
+ className: a = "",
77
+ size: i = C,
78
+ ...r
79
+ }) => {
80
+ const t = Z({
81
+ content: V(s.svg),
82
+ title: n
83
+ }), u = T(a, N, `${N}--${i}`);
84
+ return /* @__PURE__ */ l(
85
+ "span",
86
+ {
87
+ "aria-label": n,
88
+ className: u,
89
+ "data-testid": e,
90
+ dangerouslySetInnerHTML: { __html: t },
91
+ ...r
92
+ }
93
+ );
94
+ };
95
+ function R(e) {
96
+ return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
97
+ }
98
+ var k = { exports: {} };
99
+ /*!
100
+ Copyright (c) 2018 Jed Watson.
101
+ Licensed under the MIT License (MIT), see
102
+ http://jedwatson.github.io/classnames
103
+ */
104
+ (function(e) {
105
+ (function() {
106
+ var s = {}.hasOwnProperty;
107
+ function n() {
108
+ for (var r = "", t = 0; t < arguments.length; t++) {
109
+ var u = arguments[t];
110
+ u && (r = i(r, a(u)));
111
+ }
112
+ return r;
113
+ }
114
+ function a(r) {
115
+ if (typeof r == "string" || typeof r == "number")
116
+ return r;
117
+ if (typeof r != "object")
118
+ return "";
119
+ if (Array.isArray(r))
120
+ return n.apply(null, r);
121
+ if (r.toString !== Object.prototype.toString && !r.toString.toString().includes("[native code]"))
122
+ return r.toString();
123
+ var t = "";
124
+ for (var u in r)
125
+ s.call(r, u) && r[u] && (t = i(t, u));
126
+ return t;
127
+ }
128
+ function i(r, t) {
129
+ return t ? r ? r + " " + t : r + t : r;
130
+ }
131
+ e.exports ? (n.default = n, e.exports = n) : window.classNames = n;
132
+ })();
133
+ })(k);
134
+ var z = k.exports;
135
+ const I = /* @__PURE__ */ R(z), o = {
136
+ "purpur-breadcrumbs": "_purpur-breadcrumbs_hceki_1",
137
+ "purpur-breadcrumbs--default": "_purpur-breadcrumbs--default_hceki_15",
138
+ "purpur-breadcrumbs--negative": "_purpur-breadcrumbs--negative_hceki_29",
139
+ "purpur-breadcrumbs__list": "_purpur-breadcrumbs__list_hceki_43",
140
+ "purpur-breadcrumbs__home": "_purpur-breadcrumbs__home_hceki_51",
141
+ "purpur-breadcrumb-item": "_purpur-breadcrumb-item_hceki_61",
142
+ "purpur-breadcrumb-item--current": "_purpur-breadcrumb-item--current_hceki_64",
143
+ "purpur-breadcrumb-item--negative": "_purpur-breadcrumb-item--negative_hceki_84",
144
+ "purpur-breadcrumb-item__separator": "_purpur-breadcrumb-item__separator_hceki_87"
145
+ }, F = (e, s, n) => ({
146
+ "@type": "ListItem",
147
+ position: n,
148
+ name: e,
149
+ item: s
150
+ }), U = (e) => JSON.stringify({
151
+ "@context": "https://schema.org",
152
+ "@type": "BreadcrumbList",
153
+ itemListElement: e
154
+ }), J = {
155
+ DEFAULT: "default",
156
+ NEGATIVE: "negative"
157
+ }, G = Object.values(J), f = "purpur-breadcrumbs", b = "purpur-breadcrumb-item", K = ({
158
+ ["data-testid"]: e,
159
+ ariaLabel: s,
160
+ children: n,
161
+ className: a,
162
+ meta: i = !0,
163
+ variant: r = "default"
164
+ }) => {
165
+ const t = I([a, o[f], o[`${f}--${r}`]]), u = w.count(n), p = [], g = w.map(n, (h, O) => {
166
+ const x = O + 1, A = u === x, m = h.props.children, c = typeof m == "string" ? null : m.props;
167
+ let d = null, _ = null;
168
+ return typeof m == "string" ? (d = m, _ = h.props.href) : c != null && c.children && typeof (c == null ? void 0 : c.children) == "string" && (d = c.children, _ = c.href), d && _ && p.push(F(d, _, x)), $(h, {
169
+ current: A,
170
+ variant: r
171
+ });
172
+ }), y = p.length === u ? U(p) : null;
173
+ return /* @__PURE__ */ v("nav", { "data-testid": e, "aria-label": s || "Breadcrumb", className: t, children: [
174
+ /* @__PURE__ */ v("ol", { className: o[`${f}__list`], children: [
175
+ /* @__PURE__ */ l("li", { "aria-hidden": "true", className: o[`${f}__home`], children: /* @__PURE__ */ l(j, { size: "xs" }) }),
176
+ g
177
+ ] }),
178
+ i && y ? /* @__PURE__ */ l(
179
+ "script",
180
+ {
181
+ type: "application/ld+json",
182
+ "data-testid": "breadcrumbs-meta",
183
+ dangerouslySetInnerHTML: { __html: y }
184
+ }
185
+ ) : null
186
+ ] });
187
+ }, Q = ({
188
+ href: e,
189
+ ["data-testid"]: s,
190
+ children: n,
191
+ current: a = !1,
192
+ variant: i = "default",
193
+ ...r
194
+ }) => {
195
+ const t = I([o[b], o[`${b}--${i}`]], {
196
+ [o[`${b}--current`]]: a
197
+ });
198
+ return /* @__PURE__ */ v("li", { ...r, className: t, children: [
199
+ (() => {
200
+ const p = {
201
+ href: e,
202
+ "data-testid": s,
203
+ "aria-current": a ? "page" : void 0
204
+ };
205
+ return e || typeof n == "string" ? B("a", p, n) : $(n, {
206
+ ...p,
207
+ ...n.props
208
+ });
209
+ })(),
210
+ a ? null : /* @__PURE__ */ l("span", { "aria-hidden": !0, className: o[`${b}__separator`], children: "/" })
211
+ ] });
212
+ };
213
+ K.Item = Q;
214
+ export {
215
+ J as BREADCRUMB_VARIANT,
216
+ K as Breadcrumbs,
217
+ G as breadcrumbVariants
218
+ };
219
+ //# sourceMappingURL=breadcrumbs.es.js.map