@purpurds/breadcrumbs 7.3.0 → 7.4.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/dist/LICENSE.txt CHANGED
@@ -1,5 +1,5 @@
1
1
  Name: @purpurds/icon
2
- Version: 7.2.0
2
+ Version: 7.3.1
3
3
  License: AGPL-3.0-only
4
4
  Private: false
5
5
 
@@ -1,10 +1,10 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react/jsx-runtime"),v=require("react");function A(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var S={exports:{}};/*!
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react/jsx-runtime"),x=require("react");function P(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var S={exports:{}};/*!
2
2
  Copyright (c) 2018 Jed Watson.
3
3
  Licensed under the MIT License (MIT), see
4
4
  http://jedwatson.github.io/classnames
5
- */var N;function E(){return N||(N=1,function(e){(function(){var u={}.hasOwnProperty;function n(){for(var r="",t=0;t<arguments.length;t++){var s=arguments[t];s&&(r=i(r,a.call(this,s)))}return r}function a(r){if(typeof r=="string"||typeof r=="number")return this&&this[r]||r;if(typeof r!="object")return"";if(Array.isArray(r))return n.apply(this,r);if(r.toString!==Object.prototype.toString&&!r.toString.toString().includes("[native code]"))return r.toString();var t="";for(var s in r)u.call(r,s)&&r[s]&&(t=i(t,this&&this[s]||s));return t}function i(r,t){return t?r?r+" "+t:r+t:r}e.exports?(n.default=n,e.exports=n):window.classNames=n})()}(S)),S.exports}var Z=E();const k=A(Z),T={"purpur-icon":"_purpur-icon_8u1lq_1","purpur-icon--xxs":"_purpur-icon--xxs_8u1lq_4","purpur-icon--xs":"_purpur-icon--xs_8u1lq_8","purpur-icon--sm":"_purpur-icon--sm_8u1lq_12","purpur-icon--md":"_purpur-icon--md_8u1lq_16","purpur-icon--lg":"_purpur-icon--lg_8u1lq_20","purpur-icon--xl":"_purpur-icon--xl_8u1lq_24"},R=k.bind(T),O="purpur-icon",D="md",F=e=>e.filter(u=>Object.keys(u).length>=1).map(u=>`${u.name}="${u.value}"`).join(" "),J=({content:e="",title:u}={})=>{const n=[{name:"xmlns",value:"http://www.w3.org/2000/svg"},{name:"fill",value:"currentColor"},{name:"viewBox",value:"0 0 24 24"},u?{name:"role",value:"img"}:{name:"aria-hidden",value:"true"}],a=u?`<title>${u}</title>`:"";return`<svg ${F(n)}>${a}${e}</svg>`},V=e=>e.replace(/<(\/?)svg([^>]*)>/g,"").trim(),z=({["data-testid"]:e,svg:u,allyTitle:n,className:a,size:i=D,...r})=>{const t=J({content:V(u.svg),title:n}),s=R(a,O,`${O}--${i}`);return c.jsx("span",{className:s,"data-testid":e,dangerouslySetInnerHTML:{__html:t},...r})};z.displayName="Icon";const G={name:"home",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>',keywords:["home"],category:"buildings"},I=e=>c.jsx(z,{...e,svg:G});I.displayName="IconHome";function K(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var g={exports:{}};/*!
5
+ */var O;function Z(){return O||(O=1,function(e){(function(){var u={}.hasOwnProperty;function n(){for(var r="",t=0;t<arguments.length;t++){var s=arguments[t];s&&(r=i(r,a.call(this,s)))}return r}function a(r){if(typeof r=="string"||typeof r=="number")return this&&this[r]||r;if(typeof r!="object")return"";if(Array.isArray(r))return n.apply(this,r);if(r.toString!==Object.prototype.toString&&!r.toString.toString().includes("[native code]"))return r.toString();var t="";for(var s in r)u.call(r,s)&&r[s]&&(t=i(t,this&&this[s]||s));return t}function i(r,t){return t?r?r+" "+t:r+t:r}e.exports?(n.default=n,e.exports=n):window.classNames=n})()}(S)),S.exports}var k=Z();const T=P(k),R={"purpur-icon":"_purpur-icon_8u1lq_1","purpur-icon--xxs":"_purpur-icon--xxs_8u1lq_4","purpur-icon--xs":"_purpur-icon--xs_8u1lq_8","purpur-icon--sm":"_purpur-icon--sm_8u1lq_12","purpur-icon--md":"_purpur-icon--md_8u1lq_16","purpur-icon--lg":"_purpur-icon--lg_8u1lq_20","purpur-icon--xl":"_purpur-icon--xl_8u1lq_24"},D=T.bind(R),q="purpur-icon",F="md",J=e=>e.filter(u=>Object.keys(u).length>=1).map(u=>`${u.name}="${u.value}"`).join(" "),V=({content:e="",title:u}={})=>{const n=[{name:"xmlns",value:"http://www.w3.org/2000/svg"},{name:"fill",value:"currentColor"},{name:"viewBox",value:"0 0 24 24"},u?{name:"role",value:"img"}:{name:"aria-hidden",value:"true"}],a=u?`<title>${u}</title>`:"";return`<svg ${J(n)}>${a}${e}</svg>`},G=e=>e.replace(/<(\/?)svg([^>]*)>/g,"").trim(),I=({["data-testid"]:e,svg:u,allyTitle:n,className:a,size:i=F,...r})=>{const t=V({content:G(u.svg),title:n}),s=D(a,q,`${q}--${i}`);return c.jsx("span",{className:s,"data-testid":e,dangerouslySetInnerHTML:{__html:t},...r})};I.displayName="Icon";const K={name:"home",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>',keywords:["home"],category:"buildings"},B=e=>c.jsx(I,{...e,svg:K});B.displayName="IconHome";function Q(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var y={exports:{}};/*!
6
6
  Copyright (c) 2018 Jed Watson.
7
7
  Licensed under the MIT License (MIT), see
8
8
  http://jedwatson.github.io/classnames
9
- */var q;function Q(){return q||(q=1,function(e){(function(){var u={}.hasOwnProperty;function n(){for(var r="",t=0;t<arguments.length;t++){var s=arguments[t];s&&(r=i(r,a.call(this,s)))}return r}function a(r){if(typeof r=="string"||typeof r=="number")return this&&this[r]||r;if(typeof r!="object")return"";if(Array.isArray(r))return n.apply(this,r);if(r.toString!==Object.prototype.toString&&!r.toString.toString().includes("[native code]"))return r.toString();var t="";for(var s in r)u.call(r,s)&&r[s]&&(t=i(t,this&&this[s]||s));return t}function i(r,t){return t?r?r+" "+t:r+t:r}e.exports?(n.default=n,e.exports=n):window.classNames=n})()}(g)),g.exports}var U=Q();const W=K(U),m={"purpur-breadcrumbs":"_purpur-breadcrumbs_13trz_1","purpur-breadcrumbs__list":"_purpur-breadcrumbs__list_13trz_4","purpur-breadcrumb-item":"_purpur-breadcrumb-item_13trz_14","purpur-breadcrumb-item__element":"_purpur-breadcrumb-item__element_13trz_19","purpur-breadcrumb-item__link":"_purpur-breadcrumb-item__link_13trz_28","purpur-breadcrumb-item--default":"_purpur-breadcrumb-item--default_13trz_32","purpur-breadcrumb-item--negative":"_purpur-breadcrumb-item--negative_13trz_46","purpur-breadcrumb-item--current":"_purpur-breadcrumb-item--current_13trz_60","purpur-breadcrumb-item__home":"_purpur-breadcrumb-item__home_13trz_93"},X=(e,u,n)=>{const a={"@type":"ListItem",position:u,name:e};return n&&(a.item=n),a},Y=e=>JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:e}),p=W.bind(m),x="purpur-breadcrumbs",o="purpur-breadcrumb-item",B=({["aria-label"]:e,baseUrl:u,children:n,className:a,linkElement:i="a",meta:r=!0,negative:t=!1,highlightLast:s=!0,hideHomeIcon:d,..._})=>{const b=p([a,x,`${x}--${t?"negative":"default"}`]),l=v.Children.count(n),f=[],M=v.Children.map(n,($,C)=>{const h=C+1,j=l===h,H=s&&j,{children:P,href:w}=$.props;return f.push(X(P,h,w&&`${u}${w}`)),v.cloneElement($,{current:H,negative:t,first:!d&&h===1,last:j,linkElement:i})}),y=f.length===l?Y(f):null;return c.jsxs("nav",{"aria-label":e,className:b,..._,children:[c.jsx("ol",{className:m[`${x}__list`],children:M}),r&&y?c.jsx("script",{type:"application/ld+json","data-testid":"breadcrumbs-meta",dangerouslySetInnerHTML:{__html:y}}):null]})},L=({href:e,["data-testid"]:u,children:n,current:a=!1,linkElement:i="a",negative:r=!1,onClick:t,first:s=!1,last:d=!1,..._})=>{const b=i,l=p([o],m[`${o}--${r?"negative":"default"}`],{[`${o}--current`]:a});return c.jsx("li",{..._,className:l,children:d?c.jsx("span",{"aria-current":"page","data-testid":u,className:p(`${o}__element`),children:n}):c.jsxs(b,{href:e,"data-testid":u,onClick:t,className:p(`${o}__element`,`${o}__link`),children:[s&&c.jsx("span",{className:m[`${o}__home`],"aria-hidden":"true",children:c.jsx(I,{size:"xs"})}),n]})})};B.Item=L;exports.Breadcrumbs=B;exports.BreadcrumbsItem=L;
9
+ */var z;function U(){return z||(z=1,function(e){(function(){var u={}.hasOwnProperty;function n(){for(var r="",t=0;t<arguments.length;t++){var s=arguments[t];s&&(r=i(r,a.call(this,s)))}return r}function a(r){if(typeof r=="string"||typeof r=="number")return this&&this[r]||r;if(typeof r!="object")return"";if(Array.isArray(r))return n.apply(this,r);if(r.toString!==Object.prototype.toString&&!r.toString.toString().includes("[native code]"))return r.toString();var t="";for(var s in r)u.call(r,s)&&r[s]&&(t=i(t,this&&this[s]||s));return t}function i(r,t){return t?r?r+" "+t:r+t:r}e.exports?(n.default=n,e.exports=n):window.classNames=n})()}(y)),y.exports}var W=U();const X=Q(W),d={"purpur-breadcrumbs":"_purpur-breadcrumbs_13trz_1","purpur-breadcrumbs__list":"_purpur-breadcrumbs__list_13trz_4","purpur-breadcrumb-item":"_purpur-breadcrumb-item_13trz_14","purpur-breadcrumb-item__element":"_purpur-breadcrumb-item__element_13trz_19","purpur-breadcrumb-item__link":"_purpur-breadcrumb-item__link_13trz_28","purpur-breadcrumb-item--default":"_purpur-breadcrumb-item--default_13trz_32","purpur-breadcrumb-item--negative":"_purpur-breadcrumb-item--negative_13trz_46","purpur-breadcrumb-item--current":"_purpur-breadcrumb-item--current_13trz_60","purpur-breadcrumb-item__home":"_purpur-breadcrumb-item__home_13trz_93"},Y=(e,u,n)=>{const a={"@type":"ListItem",position:u,name:e};return n&&(a.item=n),a},rr=e=>JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:e}),m=X.bind(d),$="purpur-breadcrumbs",o="purpur-breadcrumb-item",L=({["aria-label"]:e,baseUrl:u,children:n,className:a,excludeCurrentPage:i=!1,linkElement:r="a",meta:t=!0,negative:s=!1,highlightLast:_=!0,hideHomeIcon:l,...f})=>{const b=m([a,$,`${$}--${s?"negative":"default"}`]),p=x.Children.count(n),h=[],H=x.Children.map(n,(v,C)=>{const g=C+1,w=p===g,A=_&&w,{children:E,href:N}=v.props;return h.push(Y(E,g,N&&`${u}${N}`)),x.cloneElement(v,{className:v.props.className,current:A,negative:s,first:!l&&g===1,last:w,linkElement:r,excludeCurrentPage:i})}),j=h.length===p?rr(h):null;return c.jsxs("nav",{"aria-label":e,className:b,...f,children:[c.jsx("ol",{className:d[`${$}__list`],children:H}),t&&j?c.jsx("script",{type:"application/ld+json","data-testid":"breadcrumbs-meta",dangerouslySetInnerHTML:{__html:j}}):null]})},M=({href:e,["data-testid"]:u,children:n,current:a=!1,linkElement:i="a",negative:r=!1,onClick:t,first:s=!1,last:_=!1,excludeCurrentPage:l=!1,...f})=>{const b=i,p=m([o],d[`${o}--${r?"negative":"default"}`],{[`${o}--current`]:!l&&a});return c.jsx("li",{...f,className:p,children:!_||l?c.jsxs(b,{href:e,"data-testid":u,onClick:t,className:m(`${o}__element`,`${o}__link`),children:[s&&c.jsx("span",{className:d[`${o}__home`],"aria-hidden":"true",children:c.jsx(B,{size:"xs"})}),n]}):c.jsx("span",{"aria-current":"page","data-testid":u,className:m(`${o}__element`),children:n})})};L.Item=M;exports.Breadcrumbs=L;exports.BreadcrumbsItem=M;
10
10
  //# sourceMappingURL=breadcrumbs.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumbs.cjs.js","sources":["../../icon/dist/icon-BqK8slmm.mjs","../../icon/dist/components/home.es.js","../../../common/temp/node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/bind.js","../src/meta.ts","../src/breadcrumbs.tsx"],"sourcesContent":["import { jsx as a } from \"react/jsx-runtime\";\nfunction f(r) {\n return r && r.__esModule && Object.prototype.hasOwnProperty.call(r, \"default\") ? r.default : r;\n}\nvar c = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\nvar p;\nfunction m() {\n return p || (p = 1, function(r) {\n (function() {\n var e = {}.hasOwnProperty;\n function o() {\n for (var t = \"\", n = 0; n < arguments.length; n++) {\n var s = arguments[n];\n s && (t = i(t, u.call(this, s)));\n }\n return t;\n }\n function u(t) {\n if (typeof t == \"string\" || typeof t == \"number\")\n return this && this[t] || t;\n if (typeof t != \"object\")\n return \"\";\n if (Array.isArray(t))\n return o.apply(this, t);\n if (t.toString !== Object.prototype.toString && !t.toString.toString().includes(\"[native code]\"))\n return t.toString();\n var n = \"\";\n for (var s in t)\n e.call(t, s) && t[s] && (n = i(n, this && this[s] || s));\n return n;\n }\n function i(t, n) {\n return n ? t ? t + \" \" + n : t + n : t;\n }\n r.exports ? (o.default = o, r.exports = o) : window.classNames = o;\n })();\n }(c)), c.exports;\n}\nvar _ = m();\nconst d = /* @__PURE__ */ f(_), v = {\n \"purpur-icon\": \"_purpur-icon_8u1lq_1\",\n \"purpur-icon--xxs\": \"_purpur-icon--xxs_8u1lq_4\",\n \"purpur-icon--xs\": \"_purpur-icon--xs_8u1lq_8\",\n \"purpur-icon--sm\": \"_purpur-icon--sm_8u1lq_12\",\n \"purpur-icon--md\": \"_purpur-icon--md_8u1lq_16\",\n \"purpur-icon--lg\": \"_purpur-icon--lg_8u1lq_20\",\n \"purpur-icon--xl\": \"_purpur-icon--xl_8u1lq_24\"\n}, g = d.bind(v), l = \"purpur-icon\", x = \"md\", h = (r) => r.filter((e) => Object.keys(e).length >= 1).map((e) => `${e.name}=\"${e.value}\"`).join(\" \"), y = ({ content: r = \"\", title: e } = {}) => {\n const o = [\n { name: \"xmlns\", value: \"http://www.w3.org/2000/svg\" },\n { name: \"fill\", value: \"currentColor\" },\n { name: \"viewBox\", value: \"0 0 24 24\" },\n e ? { name: \"role\", value: \"img\" } : { name: \"aria-hidden\", value: \"true\" }\n ], u = e ? `<title>${e}</title>` : \"\";\n return `<svg ${h(o)}>${u}${r}</svg>`;\n}, S = (r) => r.replace(/<(\\/?)svg([^>]*)>/g, \"\").trim(), b = ({\n [\"data-testid\"]: r,\n svg: e,\n allyTitle: o,\n className: u,\n size: i = x,\n ...t\n}) => {\n const n = y({\n content: S(e.svg),\n title: o\n }), s = g(u, l, `${l}--${i}`);\n return /* @__PURE__ */ a(\n \"span\",\n {\n className: s,\n \"data-testid\": r,\n dangerouslySetInnerHTML: { __html: n },\n ...t\n }\n );\n};\nb.displayName = \"Icon\";\nexport {\n b as I\n};\n//# sourceMappingURL=icon-BqK8slmm.mjs.map\n","import { jsx as e } from \"react/jsx-runtime\";\nimport { I as a } from \"../icon-BqK8slmm.mjs\";\nconst v = {\n name: \"home\",\n 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>',\n keywords: [\"home\"],\n category: \"buildings\"\n}, c = (o) => /* @__PURE__ */ e(a, { ...o, svg: v });\nc.displayName = \"IconHome\";\nexport {\n c as IconHome\n};\n//# sourceMappingURL=home.es.js.map\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue.call(this, arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn this && this[arg] || arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(this, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, this && this[key] || key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","export type MetaListItem = {\n \"@type\": string;\n position: number;\n name: string;\n item?: string;\n};\n\ntype MakeMetaListItem = (name: string, position: number, item?: string) => MetaListItem;\n\nexport const metaListItem: MakeMetaListItem = (name, position, item) => {\n const schema: MetaListItem = {\n \"@type\": \"ListItem\",\n position,\n name,\n };\n\n if (item) {\n schema.item = item;\n }\n\n return schema;\n};\n\nexport const metaSchema = (itemListElement: MetaListItem[]) =>\n JSON.stringify({\n \"@context\": \"https://schema.org\",\n \"@type\": \"BreadcrumbList\",\n itemListElement,\n });\n","import React, {\n type AnchorHTMLAttributes,\n Children,\n cloneElement,\n type ForwardRefExoticComponent,\n type ReactElement,\n} from \"react\";\nimport { IconHome } from \"@purpurds/icon/home\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./breadcrumbs.module.scss\";\nimport { MetaListItem, metaListItem, metaSchema } from \"./meta\";\nimport { DataAttributes } from \"./types.ts\";\n\nconst cx = c.bind(styles);\n\ntype WithMeta = {\n meta?: true;\n baseUrl: string;\n};\n\ntype WithoutMeta = {\n meta: false;\n baseUrl?: never;\n};\n\nexport type BreadcrumbsProps = Omit<React.HTMLAttributes<HTMLElement>, \"aria-label\"> &\n DataAttributes & {\n /** Describes the breadcrumb navigation for screen readers, e.g. \"Breadcrumbs\" or \"Breadcrumb navigation\". */\n [\"aria-label\"]: string;\n children: ReactElement<BreadcrumbsItemProps> | Array<ReactElement<BreadcrumbsItemProps>>;\n /** Set to render the breadcrumbs with light font color. Ideally used when rendered on dark backgrounds. */\n negative?: boolean;\n /** Set to render the last breadcrumb item in bold font to indicate that this is the current page. Setting this to false will render the last item as a normal breadcrumb link. Defaults to true. */\n highlightLast?: boolean;\n /** Set to not render the home icon in front of the first breadcrumb item. */\n hideHomeIcon?: boolean;\n linkElement?: ForwardRefExoticComponent<AnchorHTMLAttributes<HTMLAnchorElement>> | \"a\";\n } & (WithMeta | WithoutMeta);\n\nexport type BreadcrumbsItemProps = Omit<\n React.HTMLAttributes<HTMLLIElement>,\n \"onClick\" | \"children\"\n> &\n DataAttributes & {\n children: string;\n href?: string;\n onClick?: () => void;\n /** @ignore */\n current?: boolean;\n /** @ignore */\n first?: boolean;\n /** @ignore */\n last?: boolean;\n /** @ignore */\n linkElement?: BreadcrumbsProps[\"linkElement\"];\n /** @ignore */\n meta?: boolean;\n /** @ignore */\n negative?: boolean;\n };\n\nconst rootClassName = \"purpur-breadcrumbs\";\nconst itemClassName = \"purpur-breadcrumb-item\";\n\nconst Breadcrumbs = ({\n [\"aria-label\"]: ariaLabel,\n baseUrl,\n children,\n className,\n linkElement = \"a\",\n meta = true,\n negative = false,\n highlightLast = true,\n hideHomeIcon,\n ...props\n}: BreadcrumbsProps) => {\n const classes = cx([\n className,\n rootClassName,\n `${rootClassName}--${negative ? \"negative\" : \"default\"}`,\n ]);\n const maxIndex = Children.count(children);\n\n const metaListItems: MetaListItem[] = [];\n\n const items = Children.map(children, (item, index) => {\n const position = index + 1;\n const last = maxIndex === position;\n const current = highlightLast && last;\n\n const { children, href } = item.props;\n\n metaListItems.push(metaListItem(children, position, href && `${baseUrl}${href}`));\n\n const child = cloneElement(item, {\n current,\n negative,\n first: !hideHomeIcon && position === 1,\n last,\n linkElement,\n });\n\n return child;\n });\n\n const schema = metaListItems.length === maxIndex ? metaSchema(metaListItems) : null;\n\n return (\n <nav aria-label={ariaLabel} className={classes} {...props}>\n <ol className={styles[`${rootClassName}__list`]}>{items}</ol>\n {meta && schema ? (\n <script\n type=\"application/ld+json\"\n data-testid=\"breadcrumbs-meta\"\n dangerouslySetInnerHTML={{ __html: schema }}\n />\n ) : null}\n </nav>\n );\n};\n\nconst Item = ({\n href,\n [\"data-testid\"]: dataTestId,\n children,\n current = false,\n linkElement = \"a\",\n negative = false,\n onClick,\n first = false,\n last = false,\n ...props\n}: BreadcrumbsItemProps) => {\n const LinkElement = linkElement;\n const classes = cx(\n [itemClassName],\n styles[`${itemClassName}--${negative ? \"negative\" : \"default\"}`],\n {\n [`${itemClassName}--current`]: current,\n }\n );\n\n return (\n <li {...props} className={classes}>\n {!last ? (\n <LinkElement\n href={href}\n data-testid={dataTestId}\n onClick={onClick}\n className={cx(`${itemClassName}__element`, `${itemClassName}__link`)}\n >\n {first && (\n <span className={styles[`${itemClassName}__home`]} aria-hidden=\"true\">\n <IconHome size=\"xs\" />\n </span>\n )}\n {children}\n </LinkElement>\n ) : (\n <span\n aria-current=\"page\"\n data-testid={dataTestId}\n className={cx(`${itemClassName}__element`)}\n >\n {children}\n </span>\n )}\n </li>\n );\n};\n\nBreadcrumbs.Item = Item;\n\nexport { Breadcrumbs, Item as BreadcrumbsItem };\n"],"names":["f","r","c","p","m","e","o","t","n","u","_","d","v","g","l","x","h","y","S","b","a","hasOwn","classNames","classes","i","arg","appendClass","parseValue","key","value","newClass","module","metaListItem","name","position","item","schema","metaSchema","itemListElement","cx","styles","rootClassName","itemClassName","Breadcrumbs","ariaLabel","baseUrl","children","className","linkElement","meta","negative","highlightLast","hideHomeIcon","props","maxIndex","Children","metaListItems","items","index","last","current","href","cloneElement","jsx","Item","dataTestId","onClick","first","LinkElement","jsxs","IconHome"],"mappings":"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","x_google_ignoreList":[2]}
1
+ {"version":3,"file":"breadcrumbs.cjs.js","sources":["../../icon/dist/icon-BqK8slmm.mjs","../../icon/dist/components/home.es.js","../../../common/temp/node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/bind.js","../src/meta.ts","../src/breadcrumbs.tsx"],"sourcesContent":["import { jsx as a } from \"react/jsx-runtime\";\nfunction f(r) {\n return r && r.__esModule && Object.prototype.hasOwnProperty.call(r, \"default\") ? r.default : r;\n}\nvar c = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\nvar p;\nfunction m() {\n return p || (p = 1, function(r) {\n (function() {\n var e = {}.hasOwnProperty;\n function o() {\n for (var t = \"\", n = 0; n < arguments.length; n++) {\n var s = arguments[n];\n s && (t = i(t, u.call(this, s)));\n }\n return t;\n }\n function u(t) {\n if (typeof t == \"string\" || typeof t == \"number\")\n return this && this[t] || t;\n if (typeof t != \"object\")\n return \"\";\n if (Array.isArray(t))\n return o.apply(this, t);\n if (t.toString !== Object.prototype.toString && !t.toString.toString().includes(\"[native code]\"))\n return t.toString();\n var n = \"\";\n for (var s in t)\n e.call(t, s) && t[s] && (n = i(n, this && this[s] || s));\n return n;\n }\n function i(t, n) {\n return n ? t ? t + \" \" + n : t + n : t;\n }\n r.exports ? (o.default = o, r.exports = o) : window.classNames = o;\n })();\n }(c)), c.exports;\n}\nvar _ = m();\nconst d = /* @__PURE__ */ f(_), v = {\n \"purpur-icon\": \"_purpur-icon_8u1lq_1\",\n \"purpur-icon--xxs\": \"_purpur-icon--xxs_8u1lq_4\",\n \"purpur-icon--xs\": \"_purpur-icon--xs_8u1lq_8\",\n \"purpur-icon--sm\": \"_purpur-icon--sm_8u1lq_12\",\n \"purpur-icon--md\": \"_purpur-icon--md_8u1lq_16\",\n \"purpur-icon--lg\": \"_purpur-icon--lg_8u1lq_20\",\n \"purpur-icon--xl\": \"_purpur-icon--xl_8u1lq_24\"\n}, g = d.bind(v), l = \"purpur-icon\", x = \"md\", h = (r) => r.filter((e) => Object.keys(e).length >= 1).map((e) => `${e.name}=\"${e.value}\"`).join(\" \"), y = ({ content: r = \"\", title: e } = {}) => {\n const o = [\n { name: \"xmlns\", value: \"http://www.w3.org/2000/svg\" },\n { name: \"fill\", value: \"currentColor\" },\n { name: \"viewBox\", value: \"0 0 24 24\" },\n e ? { name: \"role\", value: \"img\" } : { name: \"aria-hidden\", value: \"true\" }\n ], u = e ? `<title>${e}</title>` : \"\";\n return `<svg ${h(o)}>${u}${r}</svg>`;\n}, S = (r) => r.replace(/<(\\/?)svg([^>]*)>/g, \"\").trim(), b = ({\n [\"data-testid\"]: r,\n svg: e,\n allyTitle: o,\n className: u,\n size: i = x,\n ...t\n}) => {\n const n = y({\n content: S(e.svg),\n title: o\n }), s = g(u, l, `${l}--${i}`);\n return /* @__PURE__ */ a(\n \"span\",\n {\n className: s,\n \"data-testid\": r,\n dangerouslySetInnerHTML: { __html: n },\n ...t\n }\n );\n};\nb.displayName = \"Icon\";\nexport {\n b as I\n};\n//# sourceMappingURL=icon-BqK8slmm.mjs.map\n","import { jsx as e } from \"react/jsx-runtime\";\nimport { I as a } from \"../icon-BqK8slmm.mjs\";\nconst v = {\n name: \"home\",\n 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>',\n keywords: [\"home\"],\n category: \"buildings\"\n}, c = (o) => /* @__PURE__ */ e(a, { ...o, svg: v });\nc.displayName = \"IconHome\";\nexport {\n c as IconHome\n};\n//# sourceMappingURL=home.es.js.map\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue.call(this, arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn this && this[arg] || arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(this, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, this && this[key] || key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","export type MetaListItem = {\n \"@type\": string;\n position: number;\n name: string;\n item?: string;\n};\n\ntype MakeMetaListItem = (name: string, position: number, item?: string) => MetaListItem;\n\nexport const metaListItem: MakeMetaListItem = (name, position, item) => {\n const schema: MetaListItem = {\n \"@type\": \"ListItem\",\n position,\n name,\n };\n\n if (item) {\n schema.item = item;\n }\n\n return schema;\n};\n\nexport const metaSchema = (itemListElement: MetaListItem[]) =>\n JSON.stringify({\n \"@context\": \"https://schema.org\",\n \"@type\": \"BreadcrumbList\",\n itemListElement,\n });\n","import React, {\n type AnchorHTMLAttributes,\n Children,\n cloneElement,\n type ForwardRefExoticComponent,\n type ReactElement,\n} from \"react\";\nimport { IconHome } from \"@purpurds/icon/home\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./breadcrumbs.module.scss\";\nimport { MetaListItem, metaListItem, metaSchema } from \"./meta\";\nimport { DataAttributes } from \"./types.ts\";\n\nconst cx = c.bind(styles);\n\ntype WithMeta = {\n meta?: true;\n baseUrl: string;\n};\n\ntype WithoutMeta = {\n meta: false;\n baseUrl?: never;\n};\n\nexport type BreadcrumbsProps = Omit<React.HTMLAttributes<HTMLElement>, \"aria-label\"> &\n DataAttributes & {\n /** Describes the breadcrumb navigation for screen readers, e.g. \"Breadcrumbs\" or \"Breadcrumb navigation\". */\n [\"aria-label\"]: string;\n children: ReactElement<BreadcrumbsItemProps> | Array<ReactElement<BreadcrumbsItemProps>>;\n /** Set to render the breadcrumbs with light font color. Ideally used when rendered on dark backgrounds. */\n negative?: boolean;\n /** Set to render the last breadcrumb item in bold font to indicate that this is the current page. Setting this to false will render the last item as a normal breadcrumb link. Defaults to true. */\n highlightLast?: boolean;\n /** Set to not render the home icon in front of the first breadcrumb item. */\n hideHomeIcon?: boolean;\n linkElement?: ForwardRefExoticComponent<AnchorHTMLAttributes<HTMLAnchorElement>> | \"a\";\n /** The last breadcrumb will be a link and not have aria-current=\"page\" */\n excludeCurrentPage?: boolean;\n } & (WithMeta | WithoutMeta);\n\nexport type BreadcrumbsItemProps = Omit<\n React.HTMLAttributes<HTMLLIElement>,\n \"onClick\" | \"children\"\n> &\n DataAttributes & {\n children: string;\n href?: string;\n onClick?: () => void;\n /** @ignore */\n current?: boolean;\n /** @ignore */\n first?: boolean;\n /** @ignore */\n last?: boolean;\n /** @ignore */\n linkElement?: BreadcrumbsProps[\"linkElement\"];\n /** @ignore */\n meta?: boolean;\n /** @ignore */\n negative?: boolean;\n /** @ignore */\n excludeCurrentPage?: boolean;\n };\n\nconst rootClassName = \"purpur-breadcrumbs\";\nconst itemClassName = \"purpur-breadcrumb-item\";\n\nconst Breadcrumbs = ({\n [\"aria-label\"]: ariaLabel,\n baseUrl,\n children,\n className,\n excludeCurrentPage = false,\n linkElement = \"a\",\n meta = true,\n negative = false,\n highlightLast = true,\n hideHomeIcon,\n ...props\n}: BreadcrumbsProps) => {\n const classes = cx([\n className,\n rootClassName,\n `${rootClassName}--${negative ? \"negative\" : \"default\"}`,\n ]);\n const maxIndex = Children.count(children);\n\n const metaListItems: MetaListItem[] = [];\n\n const items = Children.map(children, (item, index) => {\n const position = index + 1;\n const last = maxIndex === position;\n const current = highlightLast && last;\n\n const { children, href } = item.props;\n\n metaListItems.push(metaListItem(children, position, href && `${baseUrl}${href}`));\n\n const child = cloneElement(item, {\n className: item.props.className,\n current,\n negative,\n first: !hideHomeIcon && position === 1,\n last,\n linkElement,\n excludeCurrentPage,\n });\n\n return child;\n });\n\n const schema = metaListItems.length === maxIndex ? metaSchema(metaListItems) : null;\n\n return (\n <nav aria-label={ariaLabel} className={classes} {...props}>\n <ol className={styles[`${rootClassName}__list`]}>{items}</ol>\n {meta && schema ? (\n <script\n type=\"application/ld+json\"\n data-testid=\"breadcrumbs-meta\"\n dangerouslySetInnerHTML={{ __html: schema }}\n />\n ) : null}\n </nav>\n );\n};\n\nconst Item = ({\n href,\n [\"data-testid\"]: dataTestId,\n children,\n current = false,\n linkElement = \"a\",\n negative = false,\n onClick,\n first = false,\n last = false,\n excludeCurrentPage = false,\n ...props\n}: BreadcrumbsItemProps) => {\n const LinkElement = linkElement;\n const classes = cx(\n [itemClassName],\n styles[`${itemClassName}--${negative ? \"negative\" : \"default\"}`],\n {\n [`${itemClassName}--current`]: !excludeCurrentPage && current,\n }\n );\n\n return (\n <li {...props} className={classes}>\n {!last || excludeCurrentPage ? (\n <LinkElement\n href={href}\n data-testid={dataTestId}\n onClick={onClick}\n className={cx(`${itemClassName}__element`, `${itemClassName}__link`)}\n >\n {first && (\n <span className={styles[`${itemClassName}__home`]} aria-hidden=\"true\">\n <IconHome size=\"xs\" />\n </span>\n )}\n {children}\n </LinkElement>\n ) : (\n <span\n aria-current=\"page\"\n data-testid={dataTestId}\n className={cx(`${itemClassName}__element`)}\n >\n {children}\n </span>\n )}\n </li>\n );\n};\n\nBreadcrumbs.Item = Item;\n\nexport { Breadcrumbs, Item as BreadcrumbsItem };\n"],"names":["f","r","c","p","m","e","o","t","n","u","_","d","v","g","l","x","h","y","S","b","a","hasOwn","classNames","classes","i","arg","appendClass","parseValue","key","value","newClass","module","metaListItem","name","position","item","schema","metaSchema","itemListElement","cx","styles","rootClassName","itemClassName","Breadcrumbs","ariaLabel","baseUrl","children","className","excludeCurrentPage","linkElement","meta","negative","highlightLast","hideHomeIcon","props","maxIndex","Children","metaListItems","items","index","last","current","href","cloneElement","jsx","Item","dataTestId","onClick","first","LinkElement","jsxs","IconHome"],"mappings":"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","x_google_ignoreList":[2]}
@@ -20,6 +20,8 @@ export type BreadcrumbsProps = Omit<React.HTMLAttributes<HTMLElement>, "aria-lab
20
20
  /** Set to not render the home icon in front of the first breadcrumb item. */
21
21
  hideHomeIcon?: boolean;
22
22
  linkElement?: ForwardRefExoticComponent<AnchorHTMLAttributes<HTMLAnchorElement>> | "a";
23
+ /** The last breadcrumb will be a link and not have aria-current="page" */
24
+ excludeCurrentPage?: boolean;
23
25
  } & (WithMeta | WithoutMeta);
24
26
  export type BreadcrumbsItemProps = Omit<React.HTMLAttributes<HTMLLIElement>, "onClick" | "children"> & DataAttributes & {
25
27
  children: string;
@@ -37,11 +39,13 @@ export type BreadcrumbsItemProps = Omit<React.HTMLAttributes<HTMLLIElement>, "on
37
39
  meta?: boolean;
38
40
  /** @ignore */
39
41
  negative?: boolean;
42
+ /** @ignore */
43
+ excludeCurrentPage?: boolean;
40
44
  };
41
45
  declare const Breadcrumbs: {
42
- ({ ["aria-label"]: ariaLabel, baseUrl, children, className, linkElement, meta, negative, highlightLast, hideHomeIcon, ...props }: BreadcrumbsProps): React.JSX.Element;
43
- Item: ({ href, ["data-testid"]: dataTestId, children, current, linkElement, negative, onClick, first, last, ...props }: BreadcrumbsItemProps) => React.JSX.Element;
46
+ ({ ["aria-label"]: ariaLabel, baseUrl, children, className, excludeCurrentPage, linkElement, meta, negative, highlightLast, hideHomeIcon, ...props }: BreadcrumbsProps): React.JSX.Element;
47
+ Item: ({ href, ["data-testid"]: dataTestId, children, current, linkElement, negative, onClick, first, last, excludeCurrentPage, ...props }: BreadcrumbsItemProps) => React.JSX.Element;
44
48
  };
45
- declare const Item: ({ href, ["data-testid"]: dataTestId, children, current, linkElement, negative, onClick, first, last, ...props }: BreadcrumbsItemProps) => React.JSX.Element;
49
+ declare const Item: ({ href, ["data-testid"]: dataTestId, children, current, linkElement, negative, onClick, first, last, excludeCurrentPage, ...props }: BreadcrumbsItemProps) => React.JSX.Element;
46
50
  export { Breadcrumbs, Item as BreadcrumbsItem };
47
51
  //# sourceMappingURL=breadcrumbs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumbs.d.ts","sourceRoot":"","sources":["../src/breadcrumbs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,KAAK,oBAAoB,EAGzB,KAAK,yBAAyB,EAC9B,KAAK,YAAY,EAClB,MAAM,OAAO,CAAC;AAMf,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAI5C,KAAK,QAAQ,GAAG;IACd,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,KAAK,CAAC;IACZ,OAAO,CAAC,EAAE,KAAK,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,GAClF,cAAc,GAAG;IACf,6GAA6G;IAC7G,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,YAAY,CAAC,oBAAoB,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACzF,2GAA2G;IAC3G,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oMAAoM;IACpM,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,yBAAyB,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,GAAG,GAAG,CAAC;CACxF,GAAG,CAAC,QAAQ,GAAG,WAAW,CAAC,CAAC;AAE/B,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,EACnC,SAAS,GAAG,UAAU,CACvB,GACC,cAAc,GAAG;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,cAAc;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,cAAc;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,cAAc;IACd,WAAW,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAC9C,cAAc;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,cAAc;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAKJ,QAAA,MAAM,WAAW;sIAWd,gBAAgB;4HAyDhB,oBAAoB;CAbtB,CAAC;AAEF,QAAA,MAAM,IAAI,oHAWP,oBAAoB,sBAqCtB,CAAC;AAIF,OAAO,EAAE,WAAW,EAAE,IAAI,IAAI,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"breadcrumbs.d.ts","sourceRoot":"","sources":["../src/breadcrumbs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,KAAK,oBAAoB,EAGzB,KAAK,yBAAyB,EAC9B,KAAK,YAAY,EAClB,MAAM,OAAO,CAAC;AAMf,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAI5C,KAAK,QAAQ,GAAG;IACd,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,KAAK,CAAC;IACZ,OAAO,CAAC,EAAE,KAAK,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,GAClF,cAAc,GAAG;IACf,6GAA6G;IAC7G,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,YAAY,CAAC,oBAAoB,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACzF,2GAA2G;IAC3G,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oMAAoM;IACpM,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,yBAAyB,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,GAAG,GAAG,CAAC;IACvF,0EAA0E;IAC1E,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,GAAG,CAAC,QAAQ,GAAG,WAAW,CAAC,CAAC;AAE/B,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,EACnC,SAAS,GAAG,UAAU,CACvB,GACC,cAAc,GAAG;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,cAAc;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,cAAc;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,cAAc;IACd,WAAW,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAC9C,cAAc;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,cAAc;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AAKJ,QAAA,MAAM,WAAW;0JAYd,gBAAgB;gJA4DhB,oBAAoB;CAdtB,CAAC;AAEF,QAAA,MAAM,IAAI,wIAYP,oBAAoB,sBAqCtB,CAAC;AAIF,OAAO,EAAE,WAAW,EAAE,IAAI,IAAI,eAAe,EAAE,CAAC"}
@@ -1,17 +1,17 @@
1
- import { jsx as c, jsxs as I } from "react/jsx-runtime";
2
- import { Children as N, cloneElement as A } from "react";
3
- function E(e) {
1
+ import { jsx as c, jsxs as q } from "react/jsx-runtime";
2
+ import { Children as S, cloneElement as E } from "react";
3
+ function Z(e) {
4
4
  return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
5
5
  }
6
- var S = { exports: {} };
6
+ var j = { exports: {} };
7
7
  /*!
8
8
  Copyright (c) 2018 Jed Watson.
9
9
  Licensed under the MIT License (MIT), see
10
10
  http://jedwatson.github.io/classnames
11
11
  */
12
- var j;
13
- function P() {
14
- return j || (j = 1, function(e) {
12
+ var z;
13
+ function k() {
14
+ return z || (z = 1, function(e) {
15
15
  (function() {
16
16
  var u = {}.hasOwnProperty;
17
17
  function n() {
@@ -40,10 +40,10 @@ function P() {
40
40
  }
41
41
  e.exports ? (n.default = n, e.exports = n) : window.classNames = n;
42
42
  })();
43
- }(S)), S.exports;
43
+ }(j)), j.exports;
44
44
  }
45
- var Z = P();
46
- const k = /* @__PURE__ */ E(Z), T = {
45
+ var P = k();
46
+ const T = /* @__PURE__ */ Z(P), D = {
47
47
  "purpur-icon": "_purpur-icon_8u1lq_1",
48
48
  "purpur-icon--xxs": "_purpur-icon--xxs_8u1lq_4",
49
49
  "purpur-icon--xs": "_purpur-icon--xs_8u1lq_8",
@@ -51,26 +51,26 @@ const k = /* @__PURE__ */ E(Z), T = {
51
51
  "purpur-icon--md": "_purpur-icon--md_8u1lq_16",
52
52
  "purpur-icon--lg": "_purpur-icon--lg_8u1lq_20",
53
53
  "purpur-icon--xl": "_purpur-icon--xl_8u1lq_24"
54
- }, D = k.bind(T), z = "purpur-icon", F = "md", J = (e) => e.filter((u) => Object.keys(u).length >= 1).map((u) => `${u.name}="${u.value}"`).join(" "), R = ({ content: e = "", title: u } = {}) => {
54
+ }, F = T.bind(D), O = "purpur-icon", J = "md", R = (e) => e.filter((u) => Object.keys(u).length >= 1).map((u) => `${u.name}="${u.value}"`).join(" "), V = ({ content: e = "", title: u } = {}) => {
55
55
  const n = [
56
56
  { name: "xmlns", value: "http://www.w3.org/2000/svg" },
57
57
  { name: "fill", value: "currentColor" },
58
58
  { name: "viewBox", value: "0 0 24 24" },
59
59
  u ? { name: "role", value: "img" } : { name: "aria-hidden", value: "true" }
60
60
  ], a = u ? `<title>${u}</title>` : "";
61
- return `<svg ${J(n)}>${a}${e}</svg>`;
62
- }, V = (e) => e.replace(/<(\/?)svg([^>]*)>/g, "").trim(), q = ({
61
+ return `<svg ${R(n)}>${a}${e}</svg>`;
62
+ }, G = (e) => e.replace(/<(\/?)svg([^>]*)>/g, "").trim(), L = ({
63
63
  ["data-testid"]: e,
64
64
  svg: u,
65
65
  allyTitle: n,
66
66
  className: a,
67
- size: i = F,
67
+ size: i = J,
68
68
  ...r
69
69
  }) => {
70
- const t = R({
71
- content: V(u.svg),
70
+ const t = V({
71
+ content: G(u.svg),
72
72
  title: n
73
- }), s = D(a, z, `${z}--${i}`);
73
+ }), s = F(a, O, `${O}--${i}`);
74
74
  return /* @__PURE__ */ c(
75
75
  "span",
76
76
  {
@@ -81,26 +81,26 @@ const k = /* @__PURE__ */ E(Z), T = {
81
81
  }
82
82
  );
83
83
  };
84
- q.displayName = "Icon";
85
- const G = {
84
+ L.displayName = "Icon";
85
+ const K = {
86
86
  name: "home",
87
87
  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>',
88
88
  keywords: ["home"],
89
89
  category: "buildings"
90
- }, L = (e) => /* @__PURE__ */ c(q, { ...e, svg: G });
91
- L.displayName = "IconHome";
92
- function K(e) {
90
+ }, B = (e) => /* @__PURE__ */ c(L, { ...e, svg: K });
91
+ B.displayName = "IconHome";
92
+ function Q(e) {
93
93
  return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
94
94
  }
95
- var v = { exports: {} };
95
+ var y = { exports: {} };
96
96
  /*!
97
97
  Copyright (c) 2018 Jed Watson.
98
98
  Licensed under the MIT License (MIT), see
99
99
  http://jedwatson.github.io/classnames
100
100
  */
101
- var O;
102
- function Q() {
103
- return O || (O = 1, function(e) {
101
+ var I;
102
+ function U() {
103
+ return I || (I = 1, function(e) {
104
104
  (function() {
105
105
  var u = {}.hasOwnProperty;
106
106
  function n() {
@@ -129,10 +129,10 @@ function Q() {
129
129
  }
130
130
  e.exports ? (n.default = n, e.exports = n) : window.classNames = n;
131
131
  })();
132
- }(v)), v.exports;
132
+ }(y)), y.exports;
133
133
  }
134
- var U = Q();
135
- const W = /* @__PURE__ */ K(U), m = {
134
+ var W = U();
135
+ const X = /* @__PURE__ */ Q(W), d = {
136
136
  "purpur-breadcrumbs": "_purpur-breadcrumbs_13trz_1",
137
137
  "purpur-breadcrumbs__list": "_purpur-breadcrumbs__list_13trz_4",
138
138
  "purpur-breadcrumb-item": "_purpur-breadcrumb-item_13trz_14",
@@ -142,55 +142,58 @@ const W = /* @__PURE__ */ K(U), m = {
142
142
  "purpur-breadcrumb-item--negative": "_purpur-breadcrumb-item--negative_13trz_46",
143
143
  "purpur-breadcrumb-item--current": "_purpur-breadcrumb-item--current_13trz_60",
144
144
  "purpur-breadcrumb-item__home": "_purpur-breadcrumb-item__home_13trz_93"
145
- }, X = (e, u, n) => {
145
+ }, Y = (e, u, n) => {
146
146
  const a = {
147
147
  "@type": "ListItem",
148
148
  position: u,
149
149
  name: e
150
150
  };
151
151
  return n && (a.item = n), a;
152
- }, Y = (e) => JSON.stringify({
152
+ }, rr = (e) => JSON.stringify({
153
153
  "@context": "https://schema.org",
154
154
  "@type": "BreadcrumbList",
155
155
  itemListElement: e
156
- }), p = W.bind(m), g = "purpur-breadcrumbs", o = "purpur-breadcrumb-item", rr = ({
156
+ }), m = X.bind(d), x = "purpur-breadcrumbs", o = "purpur-breadcrumb-item", er = ({
157
157
  ["aria-label"]: e,
158
158
  baseUrl: u,
159
159
  children: n,
160
160
  className: a,
161
- linkElement: i = "a",
162
- meta: r = !0,
163
- negative: t = !1,
164
- highlightLast: s = !0,
165
- hideHomeIcon: d,
166
- ..._
161
+ excludeCurrentPage: i = !1,
162
+ linkElement: r = "a",
163
+ meta: t = !0,
164
+ negative: s = !1,
165
+ highlightLast: _ = !0,
166
+ hideHomeIcon: l,
167
+ ...f
167
168
  }) => {
168
- const f = p([
169
+ const b = m([
169
170
  a,
170
- g,
171
- `${g}--${t ? "negative" : "default"}`
172
- ]), l = N.count(n), b = [], B = N.map(n, (x, M) => {
173
- const h = M + 1, $ = l === h, H = s && $, { children: C, href: w } = x.props;
174
- return b.push(X(C, h, w && `${u}${w}`)), A(x, {
175
- current: H,
176
- negative: t,
177
- first: !d && h === 1,
178
- last: $,
179
- linkElement: i
171
+ x,
172
+ `${x}--${s ? "negative" : "default"}`
173
+ ]), p = S.count(n), h = [], M = S.map(n, (v, H) => {
174
+ const g = H + 1, w = p === g, A = _ && w, { children: C, href: N } = v.props;
175
+ return h.push(Y(C, g, N && `${u}${N}`)), E(v, {
176
+ className: v.props.className,
177
+ current: A,
178
+ negative: s,
179
+ first: !l && g === 1,
180
+ last: w,
181
+ linkElement: r,
182
+ excludeCurrentPage: i
180
183
  });
181
- }), y = b.length === l ? Y(b) : null;
182
- return /* @__PURE__ */ I("nav", { "aria-label": e, className: f, ..._, children: [
183
- /* @__PURE__ */ c("ol", { className: m[`${g}__list`], children: B }),
184
- r && y ? /* @__PURE__ */ c(
184
+ }), $ = h.length === p ? rr(h) : null;
185
+ return /* @__PURE__ */ q("nav", { "aria-label": e, className: b, ...f, children: [
186
+ /* @__PURE__ */ c("ol", { className: d[`${x}__list`], children: M }),
187
+ t && $ ? /* @__PURE__ */ c(
185
188
  "script",
186
189
  {
187
190
  type: "application/ld+json",
188
191
  "data-testid": "breadcrumbs-meta",
189
- dangerouslySetInnerHTML: { __html: y }
192
+ dangerouslySetInnerHTML: { __html: $ }
190
193
  }
191
194
  ) : null
192
195
  ] });
193
- }, er = ({
196
+ }, tr = ({
194
197
  href: e,
195
198
  ["data-testid"]: u,
196
199
  children: n,
@@ -199,41 +202,42 @@ const W = /* @__PURE__ */ K(U), m = {
199
202
  negative: r = !1,
200
203
  onClick: t,
201
204
  first: s = !1,
202
- last: d = !1,
203
- ..._
205
+ last: _ = !1,
206
+ excludeCurrentPage: l = !1,
207
+ ...f
204
208
  }) => {
205
- const f = i, l = p(
209
+ const b = i, p = m(
206
210
  [o],
207
- m[`${o}--${r ? "negative" : "default"}`],
211
+ d[`${o}--${r ? "negative" : "default"}`],
208
212
  {
209
- [`${o}--current`]: a
213
+ [`${o}--current`]: !l && a
210
214
  }
211
215
  );
212
- return /* @__PURE__ */ c("li", { ..._, className: l, children: d ? /* @__PURE__ */ c(
213
- "span",
214
- {
215
- "aria-current": "page",
216
- "data-testid": u,
217
- className: p(`${o}__element`),
218
- children: n
219
- }
220
- ) : /* @__PURE__ */ I(
221
- f,
216
+ return /* @__PURE__ */ c("li", { ...f, className: p, children: !_ || l ? /* @__PURE__ */ q(
217
+ b,
222
218
  {
223
219
  href: e,
224
220
  "data-testid": u,
225
221
  onClick: t,
226
- className: p(`${o}__element`, `${o}__link`),
222
+ className: m(`${o}__element`, `${o}__link`),
227
223
  children: [
228
- s && /* @__PURE__ */ c("span", { className: m[`${o}__home`], "aria-hidden": "true", children: /* @__PURE__ */ c(L, { size: "xs" }) }),
224
+ s && /* @__PURE__ */ c("span", { className: d[`${o}__home`], "aria-hidden": "true", children: /* @__PURE__ */ c(B, { size: "xs" }) }),
229
225
  n
230
226
  ]
231
227
  }
228
+ ) : /* @__PURE__ */ c(
229
+ "span",
230
+ {
231
+ "aria-current": "page",
232
+ "data-testid": u,
233
+ className: m(`${o}__element`),
234
+ children: n
235
+ }
232
236
  ) });
233
237
  };
234
- rr.Item = er;
238
+ er.Item = tr;
235
239
  export {
236
- rr as Breadcrumbs,
237
- er as BreadcrumbsItem
240
+ er as Breadcrumbs,
241
+ tr as BreadcrumbsItem
238
242
  };
239
243
  //# sourceMappingURL=breadcrumbs.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumbs.es.js","sources":["../../icon/dist/icon-BqK8slmm.mjs","../../icon/dist/components/home.es.js","../../../common/temp/node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/bind.js","../src/meta.ts","../src/breadcrumbs.tsx"],"sourcesContent":["import { jsx as a } from \"react/jsx-runtime\";\nfunction f(r) {\n return r && r.__esModule && Object.prototype.hasOwnProperty.call(r, \"default\") ? r.default : r;\n}\nvar c = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\nvar p;\nfunction m() {\n return p || (p = 1, function(r) {\n (function() {\n var e = {}.hasOwnProperty;\n function o() {\n for (var t = \"\", n = 0; n < arguments.length; n++) {\n var s = arguments[n];\n s && (t = i(t, u.call(this, s)));\n }\n return t;\n }\n function u(t) {\n if (typeof t == \"string\" || typeof t == \"number\")\n return this && this[t] || t;\n if (typeof t != \"object\")\n return \"\";\n if (Array.isArray(t))\n return o.apply(this, t);\n if (t.toString !== Object.prototype.toString && !t.toString.toString().includes(\"[native code]\"))\n return t.toString();\n var n = \"\";\n for (var s in t)\n e.call(t, s) && t[s] && (n = i(n, this && this[s] || s));\n return n;\n }\n function i(t, n) {\n return n ? t ? t + \" \" + n : t + n : t;\n }\n r.exports ? (o.default = o, r.exports = o) : window.classNames = o;\n })();\n }(c)), c.exports;\n}\nvar _ = m();\nconst d = /* @__PURE__ */ f(_), v = {\n \"purpur-icon\": \"_purpur-icon_8u1lq_1\",\n \"purpur-icon--xxs\": \"_purpur-icon--xxs_8u1lq_4\",\n \"purpur-icon--xs\": \"_purpur-icon--xs_8u1lq_8\",\n \"purpur-icon--sm\": \"_purpur-icon--sm_8u1lq_12\",\n \"purpur-icon--md\": \"_purpur-icon--md_8u1lq_16\",\n \"purpur-icon--lg\": \"_purpur-icon--lg_8u1lq_20\",\n \"purpur-icon--xl\": \"_purpur-icon--xl_8u1lq_24\"\n}, g = d.bind(v), l = \"purpur-icon\", x = \"md\", h = (r) => r.filter((e) => Object.keys(e).length >= 1).map((e) => `${e.name}=\"${e.value}\"`).join(\" \"), y = ({ content: r = \"\", title: e } = {}) => {\n const o = [\n { name: \"xmlns\", value: \"http://www.w3.org/2000/svg\" },\n { name: \"fill\", value: \"currentColor\" },\n { name: \"viewBox\", value: \"0 0 24 24\" },\n e ? { name: \"role\", value: \"img\" } : { name: \"aria-hidden\", value: \"true\" }\n ], u = e ? `<title>${e}</title>` : \"\";\n return `<svg ${h(o)}>${u}${r}</svg>`;\n}, S = (r) => r.replace(/<(\\/?)svg([^>]*)>/g, \"\").trim(), b = ({\n [\"data-testid\"]: r,\n svg: e,\n allyTitle: o,\n className: u,\n size: i = x,\n ...t\n}) => {\n const n = y({\n content: S(e.svg),\n title: o\n }), s = g(u, l, `${l}--${i}`);\n return /* @__PURE__ */ a(\n \"span\",\n {\n className: s,\n \"data-testid\": r,\n dangerouslySetInnerHTML: { __html: n },\n ...t\n }\n );\n};\nb.displayName = \"Icon\";\nexport {\n b as I\n};\n//# sourceMappingURL=icon-BqK8slmm.mjs.map\n","import { jsx as e } from \"react/jsx-runtime\";\nimport { I as a } from \"../icon-BqK8slmm.mjs\";\nconst v = {\n name: \"home\",\n 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>',\n keywords: [\"home\"],\n category: \"buildings\"\n}, c = (o) => /* @__PURE__ */ e(a, { ...o, svg: v });\nc.displayName = \"IconHome\";\nexport {\n c as IconHome\n};\n//# sourceMappingURL=home.es.js.map\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue.call(this, arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn this && this[arg] || arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(this, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, this && this[key] || key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","export type MetaListItem = {\n \"@type\": string;\n position: number;\n name: string;\n item?: string;\n};\n\ntype MakeMetaListItem = (name: string, position: number, item?: string) => MetaListItem;\n\nexport const metaListItem: MakeMetaListItem = (name, position, item) => {\n const schema: MetaListItem = {\n \"@type\": \"ListItem\",\n position,\n name,\n };\n\n if (item) {\n schema.item = item;\n }\n\n return schema;\n};\n\nexport const metaSchema = (itemListElement: MetaListItem[]) =>\n JSON.stringify({\n \"@context\": \"https://schema.org\",\n \"@type\": \"BreadcrumbList\",\n itemListElement,\n });\n","import React, {\n type AnchorHTMLAttributes,\n Children,\n cloneElement,\n type ForwardRefExoticComponent,\n type ReactElement,\n} from \"react\";\nimport { IconHome } from \"@purpurds/icon/home\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./breadcrumbs.module.scss\";\nimport { MetaListItem, metaListItem, metaSchema } from \"./meta\";\nimport { DataAttributes } from \"./types.ts\";\n\nconst cx = c.bind(styles);\n\ntype WithMeta = {\n meta?: true;\n baseUrl: string;\n};\n\ntype WithoutMeta = {\n meta: false;\n baseUrl?: never;\n};\n\nexport type BreadcrumbsProps = Omit<React.HTMLAttributes<HTMLElement>, \"aria-label\"> &\n DataAttributes & {\n /** Describes the breadcrumb navigation for screen readers, e.g. \"Breadcrumbs\" or \"Breadcrumb navigation\". */\n [\"aria-label\"]: string;\n children: ReactElement<BreadcrumbsItemProps> | Array<ReactElement<BreadcrumbsItemProps>>;\n /** Set to render the breadcrumbs with light font color. Ideally used when rendered on dark backgrounds. */\n negative?: boolean;\n /** Set to render the last breadcrumb item in bold font to indicate that this is the current page. Setting this to false will render the last item as a normal breadcrumb link. Defaults to true. */\n highlightLast?: boolean;\n /** Set to not render the home icon in front of the first breadcrumb item. */\n hideHomeIcon?: boolean;\n linkElement?: ForwardRefExoticComponent<AnchorHTMLAttributes<HTMLAnchorElement>> | \"a\";\n } & (WithMeta | WithoutMeta);\n\nexport type BreadcrumbsItemProps = Omit<\n React.HTMLAttributes<HTMLLIElement>,\n \"onClick\" | \"children\"\n> &\n DataAttributes & {\n children: string;\n href?: string;\n onClick?: () => void;\n /** @ignore */\n current?: boolean;\n /** @ignore */\n first?: boolean;\n /** @ignore */\n last?: boolean;\n /** @ignore */\n linkElement?: BreadcrumbsProps[\"linkElement\"];\n /** @ignore */\n meta?: boolean;\n /** @ignore */\n negative?: boolean;\n };\n\nconst rootClassName = \"purpur-breadcrumbs\";\nconst itemClassName = \"purpur-breadcrumb-item\";\n\nconst Breadcrumbs = ({\n [\"aria-label\"]: ariaLabel,\n baseUrl,\n children,\n className,\n linkElement = \"a\",\n meta = true,\n negative = false,\n highlightLast = true,\n hideHomeIcon,\n ...props\n}: BreadcrumbsProps) => {\n const classes = cx([\n className,\n rootClassName,\n `${rootClassName}--${negative ? \"negative\" : \"default\"}`,\n ]);\n const maxIndex = Children.count(children);\n\n const metaListItems: MetaListItem[] = [];\n\n const items = Children.map(children, (item, index) => {\n const position = index + 1;\n const last = maxIndex === position;\n const current = highlightLast && last;\n\n const { children, href } = item.props;\n\n metaListItems.push(metaListItem(children, position, href && `${baseUrl}${href}`));\n\n const child = cloneElement(item, {\n current,\n negative,\n first: !hideHomeIcon && position === 1,\n last,\n linkElement,\n });\n\n return child;\n });\n\n const schema = metaListItems.length === maxIndex ? metaSchema(metaListItems) : null;\n\n return (\n <nav aria-label={ariaLabel} className={classes} {...props}>\n <ol className={styles[`${rootClassName}__list`]}>{items}</ol>\n {meta && schema ? (\n <script\n type=\"application/ld+json\"\n data-testid=\"breadcrumbs-meta\"\n dangerouslySetInnerHTML={{ __html: schema }}\n />\n ) : null}\n </nav>\n );\n};\n\nconst Item = ({\n href,\n [\"data-testid\"]: dataTestId,\n children,\n current = false,\n linkElement = \"a\",\n negative = false,\n onClick,\n first = false,\n last = false,\n ...props\n}: BreadcrumbsItemProps) => {\n const LinkElement = linkElement;\n const classes = cx(\n [itemClassName],\n styles[`${itemClassName}--${negative ? \"negative\" : \"default\"}`],\n {\n [`${itemClassName}--current`]: current,\n }\n );\n\n return (\n <li {...props} className={classes}>\n {!last ? (\n <LinkElement\n href={href}\n data-testid={dataTestId}\n onClick={onClick}\n className={cx(`${itemClassName}__element`, `${itemClassName}__link`)}\n >\n {first && (\n <span className={styles[`${itemClassName}__home`]} aria-hidden=\"true\">\n <IconHome size=\"xs\" />\n </span>\n )}\n {children}\n </LinkElement>\n ) : (\n <span\n aria-current=\"page\"\n data-testid={dataTestId}\n className={cx(`${itemClassName}__element`)}\n >\n {children}\n </span>\n )}\n </li>\n );\n};\n\nBreadcrumbs.Item = Item;\n\nexport { Breadcrumbs, Item as BreadcrumbsItem };\n"],"names":["f","r","c","p","m","e","o","t","n","u","_","d","v","g","l","x","h","y","S","b","a","hasOwn","classNames","classes","i","arg","appendClass","parseValue","key","value","newClass","module","metaListItem","name","position","item","schema","metaSchema","itemListElement","cx","styles","rootClassName","itemClassName","Breadcrumbs","ariaLabel","baseUrl","children","className","linkElement","meta","negative","highlightLast","hideHomeIcon","props","maxIndex","Children","metaListItems","items","index","last","current","href","cloneElement","jsx","Item","dataTestId","onClick","first","LinkElement","jsxs","IconHome"],"mappings":"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","x_google_ignoreList":[2]}
1
+ {"version":3,"file":"breadcrumbs.es.js","sources":["../../icon/dist/icon-BqK8slmm.mjs","../../icon/dist/components/home.es.js","../../../common/temp/node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/bind.js","../src/meta.ts","../src/breadcrumbs.tsx"],"sourcesContent":["import { jsx as a } from \"react/jsx-runtime\";\nfunction f(r) {\n return r && r.__esModule && Object.prototype.hasOwnProperty.call(r, \"default\") ? r.default : r;\n}\nvar c = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\nvar p;\nfunction m() {\n return p || (p = 1, function(r) {\n (function() {\n var e = {}.hasOwnProperty;\n function o() {\n for (var t = \"\", n = 0; n < arguments.length; n++) {\n var s = arguments[n];\n s && (t = i(t, u.call(this, s)));\n }\n return t;\n }\n function u(t) {\n if (typeof t == \"string\" || typeof t == \"number\")\n return this && this[t] || t;\n if (typeof t != \"object\")\n return \"\";\n if (Array.isArray(t))\n return o.apply(this, t);\n if (t.toString !== Object.prototype.toString && !t.toString.toString().includes(\"[native code]\"))\n return t.toString();\n var n = \"\";\n for (var s in t)\n e.call(t, s) && t[s] && (n = i(n, this && this[s] || s));\n return n;\n }\n function i(t, n) {\n return n ? t ? t + \" \" + n : t + n : t;\n }\n r.exports ? (o.default = o, r.exports = o) : window.classNames = o;\n })();\n }(c)), c.exports;\n}\nvar _ = m();\nconst d = /* @__PURE__ */ f(_), v = {\n \"purpur-icon\": \"_purpur-icon_8u1lq_1\",\n \"purpur-icon--xxs\": \"_purpur-icon--xxs_8u1lq_4\",\n \"purpur-icon--xs\": \"_purpur-icon--xs_8u1lq_8\",\n \"purpur-icon--sm\": \"_purpur-icon--sm_8u1lq_12\",\n \"purpur-icon--md\": \"_purpur-icon--md_8u1lq_16\",\n \"purpur-icon--lg\": \"_purpur-icon--lg_8u1lq_20\",\n \"purpur-icon--xl\": \"_purpur-icon--xl_8u1lq_24\"\n}, g = d.bind(v), l = \"purpur-icon\", x = \"md\", h = (r) => r.filter((e) => Object.keys(e).length >= 1).map((e) => `${e.name}=\"${e.value}\"`).join(\" \"), y = ({ content: r = \"\", title: e } = {}) => {\n const o = [\n { name: \"xmlns\", value: \"http://www.w3.org/2000/svg\" },\n { name: \"fill\", value: \"currentColor\" },\n { name: \"viewBox\", value: \"0 0 24 24\" },\n e ? { name: \"role\", value: \"img\" } : { name: \"aria-hidden\", value: \"true\" }\n ], u = e ? `<title>${e}</title>` : \"\";\n return `<svg ${h(o)}>${u}${r}</svg>`;\n}, S = (r) => r.replace(/<(\\/?)svg([^>]*)>/g, \"\").trim(), b = ({\n [\"data-testid\"]: r,\n svg: e,\n allyTitle: o,\n className: u,\n size: i = x,\n ...t\n}) => {\n const n = y({\n content: S(e.svg),\n title: o\n }), s = g(u, l, `${l}--${i}`);\n return /* @__PURE__ */ a(\n \"span\",\n {\n className: s,\n \"data-testid\": r,\n dangerouslySetInnerHTML: { __html: n },\n ...t\n }\n );\n};\nb.displayName = \"Icon\";\nexport {\n b as I\n};\n//# sourceMappingURL=icon-BqK8slmm.mjs.map\n","import { jsx as e } from \"react/jsx-runtime\";\nimport { I as a } from \"../icon-BqK8slmm.mjs\";\nconst v = {\n name: \"home\",\n 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>',\n keywords: [\"home\"],\n category: \"buildings\"\n}, c = (o) => /* @__PURE__ */ e(a, { ...o, svg: v });\nc.displayName = \"IconHome\";\nexport {\n c as IconHome\n};\n//# sourceMappingURL=home.es.js.map\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue.call(this, arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn this && this[arg] || arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(this, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, this && this[key] || key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","export type MetaListItem = {\n \"@type\": string;\n position: number;\n name: string;\n item?: string;\n};\n\ntype MakeMetaListItem = (name: string, position: number, item?: string) => MetaListItem;\n\nexport const metaListItem: MakeMetaListItem = (name, position, item) => {\n const schema: MetaListItem = {\n \"@type\": \"ListItem\",\n position,\n name,\n };\n\n if (item) {\n schema.item = item;\n }\n\n return schema;\n};\n\nexport const metaSchema = (itemListElement: MetaListItem[]) =>\n JSON.stringify({\n \"@context\": \"https://schema.org\",\n \"@type\": \"BreadcrumbList\",\n itemListElement,\n });\n","import React, {\n type AnchorHTMLAttributes,\n Children,\n cloneElement,\n type ForwardRefExoticComponent,\n type ReactElement,\n} from \"react\";\nimport { IconHome } from \"@purpurds/icon/home\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./breadcrumbs.module.scss\";\nimport { MetaListItem, metaListItem, metaSchema } from \"./meta\";\nimport { DataAttributes } from \"./types.ts\";\n\nconst cx = c.bind(styles);\n\ntype WithMeta = {\n meta?: true;\n baseUrl: string;\n};\n\ntype WithoutMeta = {\n meta: false;\n baseUrl?: never;\n};\n\nexport type BreadcrumbsProps = Omit<React.HTMLAttributes<HTMLElement>, \"aria-label\"> &\n DataAttributes & {\n /** Describes the breadcrumb navigation for screen readers, e.g. \"Breadcrumbs\" or \"Breadcrumb navigation\". */\n [\"aria-label\"]: string;\n children: ReactElement<BreadcrumbsItemProps> | Array<ReactElement<BreadcrumbsItemProps>>;\n /** Set to render the breadcrumbs with light font color. Ideally used when rendered on dark backgrounds. */\n negative?: boolean;\n /** Set to render the last breadcrumb item in bold font to indicate that this is the current page. Setting this to false will render the last item as a normal breadcrumb link. Defaults to true. */\n highlightLast?: boolean;\n /** Set to not render the home icon in front of the first breadcrumb item. */\n hideHomeIcon?: boolean;\n linkElement?: ForwardRefExoticComponent<AnchorHTMLAttributes<HTMLAnchorElement>> | \"a\";\n /** The last breadcrumb will be a link and not have aria-current=\"page\" */\n excludeCurrentPage?: boolean;\n } & (WithMeta | WithoutMeta);\n\nexport type BreadcrumbsItemProps = Omit<\n React.HTMLAttributes<HTMLLIElement>,\n \"onClick\" | \"children\"\n> &\n DataAttributes & {\n children: string;\n href?: string;\n onClick?: () => void;\n /** @ignore */\n current?: boolean;\n /** @ignore */\n first?: boolean;\n /** @ignore */\n last?: boolean;\n /** @ignore */\n linkElement?: BreadcrumbsProps[\"linkElement\"];\n /** @ignore */\n meta?: boolean;\n /** @ignore */\n negative?: boolean;\n /** @ignore */\n excludeCurrentPage?: boolean;\n };\n\nconst rootClassName = \"purpur-breadcrumbs\";\nconst itemClassName = \"purpur-breadcrumb-item\";\n\nconst Breadcrumbs = ({\n [\"aria-label\"]: ariaLabel,\n baseUrl,\n children,\n className,\n excludeCurrentPage = false,\n linkElement = \"a\",\n meta = true,\n negative = false,\n highlightLast = true,\n hideHomeIcon,\n ...props\n}: BreadcrumbsProps) => {\n const classes = cx([\n className,\n rootClassName,\n `${rootClassName}--${negative ? \"negative\" : \"default\"}`,\n ]);\n const maxIndex = Children.count(children);\n\n const metaListItems: MetaListItem[] = [];\n\n const items = Children.map(children, (item, index) => {\n const position = index + 1;\n const last = maxIndex === position;\n const current = highlightLast && last;\n\n const { children, href } = item.props;\n\n metaListItems.push(metaListItem(children, position, href && `${baseUrl}${href}`));\n\n const child = cloneElement(item, {\n className: item.props.className,\n current,\n negative,\n first: !hideHomeIcon && position === 1,\n last,\n linkElement,\n excludeCurrentPage,\n });\n\n return child;\n });\n\n const schema = metaListItems.length === maxIndex ? metaSchema(metaListItems) : null;\n\n return (\n <nav aria-label={ariaLabel} className={classes} {...props}>\n <ol className={styles[`${rootClassName}__list`]}>{items}</ol>\n {meta && schema ? (\n <script\n type=\"application/ld+json\"\n data-testid=\"breadcrumbs-meta\"\n dangerouslySetInnerHTML={{ __html: schema }}\n />\n ) : null}\n </nav>\n );\n};\n\nconst Item = ({\n href,\n [\"data-testid\"]: dataTestId,\n children,\n current = false,\n linkElement = \"a\",\n negative = false,\n onClick,\n first = false,\n last = false,\n excludeCurrentPage = false,\n ...props\n}: BreadcrumbsItemProps) => {\n const LinkElement = linkElement;\n const classes = cx(\n [itemClassName],\n styles[`${itemClassName}--${negative ? \"negative\" : \"default\"}`],\n {\n [`${itemClassName}--current`]: !excludeCurrentPage && current,\n }\n );\n\n return (\n <li {...props} className={classes}>\n {!last || excludeCurrentPage ? (\n <LinkElement\n href={href}\n data-testid={dataTestId}\n onClick={onClick}\n className={cx(`${itemClassName}__element`, `${itemClassName}__link`)}\n >\n {first && (\n <span className={styles[`${itemClassName}__home`]} aria-hidden=\"true\">\n <IconHome size=\"xs\" />\n </span>\n )}\n {children}\n </LinkElement>\n ) : (\n <span\n aria-current=\"page\"\n data-testid={dataTestId}\n className={cx(`${itemClassName}__element`)}\n >\n {children}\n </span>\n )}\n </li>\n );\n};\n\nBreadcrumbs.Item = Item;\n\nexport { Breadcrumbs, Item as BreadcrumbsItem };\n"],"names":["f","r","c","p","m","e","o","t","n","u","_","d","v","g","l","x","h","y","S","b","a","hasOwn","classNames","classes","i","arg","appendClass","parseValue","key","value","newClass","module","metaListItem","name","position","item","schema","metaSchema","itemListElement","cx","styles","rootClassName","itemClassName","Breadcrumbs","ariaLabel","baseUrl","children","className","excludeCurrentPage","linkElement","meta","negative","highlightLast","hideHomeIcon","props","maxIndex","Children","metaListItems","items","index","last","current","href","cloneElement","jsx","Item","dataTestId","onClick","first","LinkElement","jsxs","IconHome"],"mappings":"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","x_google_ignoreList":[2]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@purpurds/breadcrumbs",
3
- "version": "7.3.0",
3
+ "version": "7.4.0",
4
4
  "license": "AGPL-3.0-only",
5
5
  "main": "./dist/breadcrumbs.cjs.js",
6
6
  "types": "./dist/breadcrumbs.d.ts",
@@ -16,8 +16,8 @@
16
16
  "source": "src/breadcrumbs.tsx",
17
17
  "dependencies": {
18
18
  "classnames": "~2.5.0",
19
- "@purpurds/icon": "7.3.0",
20
- "@purpurds/tokens": "7.3.0"
19
+ "@purpurds/icon": "7.4.0",
20
+ "@purpurds/tokens": "7.4.0"
21
21
  },
22
22
  "devDependencies": {
23
23
  "eslint": "9.24.0",
@@ -38,7 +38,7 @@
38
38
  "vite": "^6.2.1",
39
39
  "vitest": "^3.1.2",
40
40
  "@purpurds/component-rig": "1.0.0",
41
- "@purpurds/paragraph": "7.3.0"
41
+ "@purpurds/paragraph": "7.4.0"
42
42
  },
43
43
  "peerDependencies": {
44
44
  "@types/react": "^18 || ^19",
@@ -159,7 +159,9 @@ export const Showcase: Story = {
159
159
  <Breadcrumbs.Item href="/products/steel" key={2}>
160
160
  Steel
161
161
  </Breadcrumbs.Item>,
162
- <Breadcrumbs.Item key={3}>Beskar</Breadcrumbs.Item>,
162
+ <Breadcrumbs.Item href="/products/steel/beskar" key={3}>
163
+ Beskar
164
+ </Breadcrumbs.Item>,
163
165
  ],
164
166
  },
165
167
  render: Renderer(false),
@@ -176,7 +178,9 @@ export const CustomLink: Story = {
176
178
  <Breadcrumbs.Item href="/products/laser-swords" key={1}>
177
179
  Laser Swords
178
180
  </Breadcrumbs.Item>,
179
- <Breadcrumbs.Item key={2}>Darksaber</Breadcrumbs.Item>,
181
+ <Breadcrumbs.Item href="/products/laser-swords/dark-saber" key={2}>
182
+ Darksaber
183
+ </Breadcrumbs.Item>,
180
184
  ],
181
185
  },
182
186
  render: Renderer(false, true),
@@ -196,6 +200,11 @@ export const BreadcrumbMetaData: Story = {
196
200
  <Breadcrumbs.Item key={2}>N1 Starfighter</Breadcrumbs.Item>,
197
201
  ],
198
202
  },
203
+ argTypes: {
204
+ excludeCurrentPage: {
205
+ table: { disable: true },
206
+ },
207
+ },
199
208
  render: Renderer(true),
200
209
  tags: ["visual:check"],
201
210
  };
@@ -36,6 +36,8 @@ export type BreadcrumbsProps = Omit<React.HTMLAttributes<HTMLElement>, "aria-lab
36
36
  /** Set to not render the home icon in front of the first breadcrumb item. */
37
37
  hideHomeIcon?: boolean;
38
38
  linkElement?: ForwardRefExoticComponent<AnchorHTMLAttributes<HTMLAnchorElement>> | "a";
39
+ /** The last breadcrumb will be a link and not have aria-current="page" */
40
+ excludeCurrentPage?: boolean;
39
41
  } & (WithMeta | WithoutMeta);
40
42
 
41
43
  export type BreadcrumbsItemProps = Omit<
@@ -58,6 +60,8 @@ export type BreadcrumbsItemProps = Omit<
58
60
  meta?: boolean;
59
61
  /** @ignore */
60
62
  negative?: boolean;
63
+ /** @ignore */
64
+ excludeCurrentPage?: boolean;
61
65
  };
62
66
 
63
67
  const rootClassName = "purpur-breadcrumbs";
@@ -68,6 +72,7 @@ const Breadcrumbs = ({
68
72
  baseUrl,
69
73
  children,
70
74
  className,
75
+ excludeCurrentPage = false,
71
76
  linkElement = "a",
72
77
  meta = true,
73
78
  negative = false,
@@ -94,11 +99,13 @@ const Breadcrumbs = ({
94
99
  metaListItems.push(metaListItem(children, position, href && `${baseUrl}${href}`));
95
100
 
96
101
  const child = cloneElement(item, {
102
+ className: item.props.className,
97
103
  current,
98
104
  negative,
99
105
  first: !hideHomeIcon && position === 1,
100
106
  last,
101
107
  linkElement,
108
+ excludeCurrentPage,
102
109
  });
103
110
 
104
111
  return child;
@@ -130,6 +137,7 @@ const Item = ({
130
137
  onClick,
131
138
  first = false,
132
139
  last = false,
140
+ excludeCurrentPage = false,
133
141
  ...props
134
142
  }: BreadcrumbsItemProps) => {
135
143
  const LinkElement = linkElement;
@@ -137,13 +145,13 @@ const Item = ({
137
145
  [itemClassName],
138
146
  styles[`${itemClassName}--${negative ? "negative" : "default"}`],
139
147
  {
140
- [`${itemClassName}--current`]: current,
148
+ [`${itemClassName}--current`]: !excludeCurrentPage && current,
141
149
  }
142
150
  );
143
151
 
144
152
  return (
145
153
  <li {...props} className={classes}>
146
- {!last ? (
154
+ {!last || excludeCurrentPage ? (
147
155
  <LinkElement
148
156
  href={href}
149
157
  data-testid={dataTestId}