@purpurds/breadcrumbs 6.9.0 → 6.11.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: 6.8.3
2
+ Version: 6.10.0
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"),p=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"),m=require("react");function E(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var $={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 T(){return N||(N=1,function(e){(function(){var s={}.hasOwnProperty;function n(){for(var r="",t=0;t<arguments.length;t++){var u=arguments[t];u&&(r=o(r,a.call(this,u)))}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 u in r)s.call(r,u)&&r[u]&&(t=o(t,this&&this[u]||u));return t}function o(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=T();const z=A(Z),F={"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=z.bind(F),O="purpur-icon",k="md",D=e=>e.filter(s=>Object.keys(s).length>=1).map(s=>`${s.name}="${s.value}"`).join(" "),J=({content:e="",title:s}={})=>{const n=[{name:"xmlns",value:"http://www.w3.org/2000/svg"},{name:"fill",value:"currentColor"},{name:"viewBox",value:"0 0 24 24"},s?{name:"role",value:"img"}:{name:"aria-hidden",value:"true"}],a=s?`<title>${s}</title>`:"";return`<svg ${D(n)}>${a}${e}</svg>`},V=e=>e.replace(/<(\/?)svg([^>]*)>/g,"").trim(),I=({["data-testid"]:e,svg:s,allyTitle:n,className:a,size:o=k,...r})=>{const t=J({content:V(s.svg),title:n}),u=R(a,O,`${O}--${o}`);return c.jsx("span",{"aria-label":n,className:u,"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"},M=e=>c.jsx(I,{...e,svg:K});M.displayName="IconHome";function Q(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var j={exports:{}};/*!
5
+ */var S;function A(){return S||(S=1,function(e){(function(){var s={}.hasOwnProperty;function n(){for(var r="",t=0;t<arguments.length;t++){var u=arguments[t];u&&(r=o(r,a.call(this,u)))}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 u in r)s.call(r,u)&&r[u]&&(t=o(t,this&&this[u]||u));return t}function o(r,t){return t?r?r+" "+t:r+t:r}e.exports?(n.default=n,e.exports=n):window.classNames=n})()}($)),$.exports}var T=A();const Z=E(T),z={"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"},F=Z.bind(z),N="purpur-icon",R="md",k=e=>e.filter(s=>Object.keys(s).length>=1).map(s=>`${s.name}="${s.value}"`).join(" "),D=({content:e="",title:s}={})=>{const n=[{name:"xmlns",value:"http://www.w3.org/2000/svg"},{name:"fill",value:"currentColor"},{name:"viewBox",value:"0 0 24 24"},s?{name:"role",value:"img"}:{name:"aria-hidden",value:"true"}],a=s?`<title>${s}</title>`:"";return`<svg ${k(n)}>${a}${e}</svg>`},J=e=>e.replace(/<(\/?)svg([^>]*)>/g,"").trim(),q=({["data-testid"]:e,svg:s,allyTitle:n,className:a,size:o=R,...r})=>{const t=D({content:J(s.svg),title:n}),u=F(a,N,`${N}--${o}`);return c.jsx("span",{"aria-label":n,className:u,"data-testid":e,dangerouslySetInnerHTML:{__html:t},...r})};q.displayName="Icon";const V={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(q,{...e,svg:V});I.displayName="IconHome";function K(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 U(){return q||(q=1,function(e){(function(){var s={}.hasOwnProperty;function n(){for(var r="",t=0;t<arguments.length;t++){var u=arguments[t];u&&(r=o(r,a(u)))}return r}function a(r){if(typeof r=="string"||typeof r=="number")return r;if(typeof r!="object")return"";if(Array.isArray(r))return n.apply(null,r);if(r.toString!==Object.prototype.toString&&!r.toString.toString().includes("[native code]"))return r.toString();var t="";for(var u in r)s.call(r,u)&&r[u]&&(t=o(t,u));return t}function o(r,t){return t?r?r+" "+t:r+t:r}e.exports?(n.default=n,e.exports=n):window.classNames=n})()}(j)),j.exports}var W=U();const B=Q(W),l={"purpur-breadcrumbs":"_purpur-breadcrumbs_1xh80_1","purpur-breadcrumbs--default":"_purpur-breadcrumbs--default_1xh80_20","purpur-breadcrumbs--negative":"_purpur-breadcrumbs--negative_1xh80_34","purpur-breadcrumbs__list":"_purpur-breadcrumbs__list_1xh80_48","purpur-breadcrumbs__home":"_purpur-breadcrumbs__home_1xh80_57","purpur-breadcrumb-item":"_purpur-breadcrumb-item_1xh80_67","purpur-breadcrumb-item--current":"_purpur-breadcrumb-item--current_1xh80_72","purpur-breadcrumb-item--negative":"_purpur-breadcrumb-item--negative_1xh80_94"},X=(e,s,n)=>({"@type":"ListItem",position:n,name:e,item:s}),Y=e=>JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:e}),b="purpur-breadcrumbs",w="purpur-breadcrumb-item",L=({["data-testid"]:e,ariaLabel:s,children:n,className:a,meta:o=!0,negative:r=!1,highlightLast:t=!0,hideHomeIcon:u,...v})=>{const m=B([a,l[b],l[`${b}--${r?"negative":"default"}`]]),g=p.Children.count(n),x=[],H=p.Children.map(n,(d,P)=>{const y=P+1,E=t&&g===y,f=d.props.children,i=typeof f=="string"?null:f.props;let _=null,h=null;return typeof f=="string"?(_=f,h=d.props.href):i!=null&&i.children&&typeof(i==null?void 0:i.children)=="string"&&(_=i.children,h=i.href),_&&h&&x.push(X(_,h,y)),p.cloneElement(d,{current:E,negative:r,...y===1&&{children:c.jsxs(c.Fragment,{children:[u?null:c.jsx("span",{className:l[`${b}__home`],"aria-hidden":"true",children:c.jsx(M,{size:"xs"})}),d.props.children]})}})}),$=x.length===g?Y(x):null;return c.jsxs("nav",{"data-testid":e,"aria-label":s||"Breadcrumb",className:m,...v,children:[c.jsx("ol",{className:l[`${b}__list`],children:H}),o&&$?c.jsx("script",{type:"application/ld+json","data-testid":"breadcrumbs-meta",dangerouslySetInnerHTML:{__html:$}}):null]})},C=({href:e,["data-testid"]:s,children:n,current:a=!1,negative:o=!1,onClick:r,...t})=>{const u=B([l[w],l[`${w}--${o?"negative":"default"}`]],{[l[`${w}--current`]]:a}),v=()=>{const m={href:e,"data-testid":s,"aria-current":a?"page":void 0,onClick:r};return e||typeof n=="string"?p.createElement("a",m,n):p.cloneElement(n,{...m,...n.props})};return c.jsx("li",{...t,className:u,children:v()})};L.Item=C;exports.Breadcrumbs=L;exports.BreadcrumbsItem=C;
9
+ */var O;function Q(){return O||(O=1,function(e){(function(){var s={}.hasOwnProperty;function n(){for(var r="",t=0;t<arguments.length;t++){var u=arguments[t];u&&(r=o(r,a(u)))}return r}function a(r){if(typeof r=="string"||typeof r=="number")return r;if(typeof r!="object")return"";if(Array.isArray(r))return n.apply(null,r);if(r.toString!==Object.prototype.toString&&!r.toString.toString().includes("[native code]"))return r.toString();var t="";for(var u in r)s.call(r,u)&&r[u]&&(t=o(t,u));return t}function o(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 U=Q();const M=K(U),l={"purpur-breadcrumbs":"_purpur-breadcrumbs_1xh80_1","purpur-breadcrumbs--default":"_purpur-breadcrumbs--default_1xh80_20","purpur-breadcrumbs--negative":"_purpur-breadcrumbs--negative_1xh80_34","purpur-breadcrumbs__list":"_purpur-breadcrumbs__list_1xh80_48","purpur-breadcrumbs__home":"_purpur-breadcrumbs__home_1xh80_57","purpur-breadcrumb-item":"_purpur-breadcrumb-item_1xh80_67","purpur-breadcrumb-item--current":"_purpur-breadcrumb-item--current_1xh80_72","purpur-breadcrumb-item--negative":"_purpur-breadcrumb-item--negative_1xh80_94"},W=(e,s,n)=>({"@type":"ListItem",position:n,name:e,item:s}),X=e=>JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:e}),v="purpur-breadcrumbs",j="purpur-breadcrumb-item",B=({ariaLabel:e,children:s,className:n,meta:a=!0,negative:o=!1,highlightLast:r=!0,hideHomeIcon:t,...u})=>{const g=M([n,l[v],l[`${v}--${o?"negative":"default"}`]]),p=m.Children.count(s),d=[],C=m.Children.map(s,(f,H)=>{const x=H+1,P=r&&p===x,_=f.props.children,i=typeof _=="string"?null:_.props;let h=null,b=null;return typeof _=="string"?(h=_,b=f.props.href):i!=null&&i.children&&typeof(i==null?void 0:i.children)=="string"&&(h=i.children,b=i.href),h&&b&&d.push(W(h,b,x)),m.cloneElement(f,{current:P,negative:o,...x===1&&{children:c.jsxs(c.Fragment,{children:[t?null:c.jsx("span",{className:l[`${v}__home`],"aria-hidden":"true",children:c.jsx(I,{size:"xs"})}),f.props.children]})}})}),w=d.length===p?X(d):null;return c.jsxs("nav",{"aria-label":e||"Breadcrumb",className:g,...u,children:[c.jsx("ol",{className:l[`${v}__list`],children:C}),a&&w?c.jsx("script",{type:"application/ld+json","data-testid":"breadcrumbs-meta",dangerouslySetInnerHTML:{__html:w}}):null]})},L=({href:e,["data-testid"]:s,children:n,current:a=!1,negative:o=!1,onClick:r,...t})=>{const u=M([l[j],l[`${j}--${o?"negative":"default"}`]],{[l[`${j}--current`]]:a}),g=()=>{const p={href:e,"data-testid":s,"aria-current":a?"page":void 0,onClick:r};return e||typeof n=="string"?m.createElement("a",p,n):m.cloneElement(n,{...p,...n.props})};return c.jsx("li",{...t,className:u,children:g()})};B.Item=L;exports.Breadcrumbs=B;exports.BreadcrumbsItem=L;
10
10
  //# sourceMappingURL=breadcrumbs.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumbs.cjs.js","sources":["../../icon/dist/icon-CbdbqC3C.mjs","../../icon/dist/components/home.es.js","../../../common/temp/node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.js","../src/meta.ts","../src/breadcrumbs.tsx"],"sourcesContent":["import { jsx as l } 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), a = \"purpur-icon\", x = \"md\", h = (r) => r.filter((e) => Object.keys(e).length >= 1).map((e) => `${e.name}=\"${e.value}\"`).join(\" \"), b = ({ 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(), y = ({\n [\"data-testid\"]: r,\n svg: e,\n allyTitle: o,\n className: u,\n size: i = x,\n ...t\n}) => {\n const n = b({\n content: S(e.svg),\n title: o\n }), s = g(u, a, `${a}--${i}`);\n return /* @__PURE__ */ l(\n \"span\",\n {\n \"aria-label\": o,\n className: s,\n \"data-testid\": r,\n dangerouslySetInnerHTML: { __html: n },\n ...t\n }\n );\n};\ny.displayName = \"Icon\";\nexport {\n y as I\n};\n//# sourceMappingURL=icon-CbdbqC3C.mjs.map\n","import { jsx as e } from \"react/jsx-runtime\";\nimport { I as a } from \"../icon-CbdbqC3C.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(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 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(null, 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, 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, item: string, position: number) => MetaListItem;\n\nexport const metaListItem: MakeMetaListItem = (name, item, position) => ({\n \"@type\": \"ListItem\",\n position,\n name,\n item,\n});\n\nexport const metaSchema = (itemListElement: MetaListItem[]) =>\n JSON.stringify({\n \"@context\": \"https://schema.org\",\n \"@type\": \"BreadcrumbList\",\n itemListElement,\n });\n","import React, { Children, cloneElement, createElement, ReactElement } from \"react\";\nimport { IconHome } from \"@purpurds/icon/home\";\nimport c from \"classnames\";\n\nimport styles from \"./breadcrumbs.module.scss\";\nimport { MetaListItem, metaListItem, metaSchema } from \"./meta\";\nimport { DataAttributes } from \"./types.ts\";\n\nexport type BreadcrumbsProps = DataAttributes & {\n [\"data-testid\"]?: string;\n ariaLabel?: string;\n children: ReactElement<BreadcrumbsItemProps> | Array<ReactElement<BreadcrumbsItemProps>>;\n className?: string;\n /** Set to generate breadcrumbs metadata for crawlers. Defaults to true. */\n meta?: boolean;\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};\n\ntype CommonItemProps = {\n current?: boolean;\n negative?: boolean;\n [\"data-testid\"]?: string;\n ariaLabel?: string;\n meta?: boolean;\n onClick?: () => void;\n};\n\nexport type BreadcrumbsItemProps = CommonItemProps & Conditional;\n\ntype Conditional =\n | {\n href?: string;\n children: string;\n }\n | {\n href?: never;\n children: ReactElement<HTMLAnchorElement>;\n };\n\nconst rootClassName = \"purpur-breadcrumbs\";\nconst itemClassName = \"purpur-breadcrumb-item\";\n\nconst Breadcrumbs = ({\n [\"data-testid\"]: dataTestId,\n ariaLabel,\n children,\n className,\n meta = true,\n negative = false,\n highlightLast = true,\n hideHomeIcon,\n ...props\n}: BreadcrumbsProps) => {\n const classes = c([\n className,\n styles[rootClassName],\n styles[`${rootClassName}--${negative ? \"negative\" : \"default\"}`],\n ]);\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 grandChildren = item.props.children;\n const grandGrandChildren = typeof grandChildren === \"string\" ? null : grandChildren.props;\n\n let name = null,\n href = null;\n\n if (typeof grandChildren === \"string\") {\n name = grandChildren;\n href = item.props.href;\n } else if (grandGrandChildren?.children && typeof grandGrandChildren?.children === \"string\") {\n name = grandGrandChildren.children;\n href = grandGrandChildren.href;\n }\n\n if (name && href) {\n metaListItems.push(metaListItem(name, href, position));\n }\n\n const child = cloneElement(item, {\n current,\n negative,\n ...(position === 1 && {\n children: (\n <>\n {!hideHomeIcon ? (\n <span className={styles[`${rootClassName}__home`]} aria-hidden=\"true\">\n <IconHome size=\"xs\" />\n </span>\n ) : null}\n {item.props.children}\n </>\n ),\n }),\n });\n\n return child;\n });\n\n const schema = metaListItems.length === maxIndex ? metaSchema(metaListItems) : null;\n\n return (\n <nav\n data-testid={dataTestId}\n aria-label={ariaLabel || \"Breadcrumb\"}\n className={classes}\n {...props}\n >\n <ol className={styles[`${rootClassName}__list`]}>{items}</ol>\n {meta && schema ? (\n <script\n type=\"application/ld+json\"\n data-testid=\"breadcrumbs-meta\"\n // eslint-disable-next-line react/no-danger\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 negative = false,\n onClick,\n ...rest\n}: BreadcrumbsItemProps) => {\n const classes = c(\n [styles[itemClassName], styles[`${itemClassName}--${negative ? \"negative\" : \"default\"}`]],\n {\n [styles[`${itemClassName}--current`]]: current,\n }\n );\n\n const link = () => {\n const commonProps = {\n href,\n [\"data-testid\"]: dataTestId,\n \"aria-current\": current ? \"page\" : undefined,\n onClick,\n };\n\n const component =\n href || typeof children === \"string\"\n ? createElement(\"a\", commonProps, children)\n : cloneElement(children, {\n ...commonProps,\n ...children.props,\n });\n\n return component;\n };\n\n return (\n <li {...rest} className={classes}>\n {link()}\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","s","i","u","_","d","v","g","a","x","h","b","S","y","l","hasOwn","classNames","classes","arg","appendClass","parseValue","key","value","newClass","module","metaListItem","name","item","position","metaSchema","itemListElement","rootClassName","itemClassName","Breadcrumbs","dataTestId","ariaLabel","children","className","meta","negative","highlightLast","hideHomeIcon","props","styles","maxIndex","Children","metaListItems","items","index","current","grandChildren","grandGrandChildren","href","cloneElement","jsxs","Fragment","jsx","IconHome","schema","Item","onClick","rest","link","commonProps","createElement"],"mappings":"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","x_google_ignoreList":[2]}
1
+ {"version":3,"file":"breadcrumbs.cjs.js","sources":["../../icon/dist/icon-CbdbqC3C.mjs","../../icon/dist/components/home.es.js","../../../common/temp/node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.js","../src/meta.ts","../src/breadcrumbs.tsx"],"sourcesContent":["import { jsx as l } 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), a = \"purpur-icon\", x = \"md\", h = (r) => r.filter((e) => Object.keys(e).length >= 1).map((e) => `${e.name}=\"${e.value}\"`).join(\" \"), b = ({ 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(), y = ({\n [\"data-testid\"]: r,\n svg: e,\n allyTitle: o,\n className: u,\n size: i = x,\n ...t\n}) => {\n const n = b({\n content: S(e.svg),\n title: o\n }), s = g(u, a, `${a}--${i}`);\n return /* @__PURE__ */ l(\n \"span\",\n {\n \"aria-label\": o,\n className: s,\n \"data-testid\": r,\n dangerouslySetInnerHTML: { __html: n },\n ...t\n }\n );\n};\ny.displayName = \"Icon\";\nexport {\n y as I\n};\n//# sourceMappingURL=icon-CbdbqC3C.mjs.map\n","import { jsx as e } from \"react/jsx-runtime\";\nimport { I as a } from \"../icon-CbdbqC3C.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(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 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(null, 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, 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, item: string, position: number) => MetaListItem;\n\nexport const metaListItem: MakeMetaListItem = (name, item, position) => ({\n \"@type\": \"ListItem\",\n position,\n name,\n item,\n});\n\nexport const metaSchema = (itemListElement: MetaListItem[]) =>\n JSON.stringify({\n \"@context\": \"https://schema.org\",\n \"@type\": \"BreadcrumbList\",\n itemListElement,\n });\n","import React, { Children, cloneElement, createElement, ReactElement } from \"react\";\nimport { IconHome } from \"@purpurds/icon/home\";\nimport c from \"classnames\";\n\nimport styles from \"./breadcrumbs.module.scss\";\nimport { MetaListItem, metaListItem, metaSchema } from \"./meta\";\nimport { DataAttributes } from \"./types.ts\";\n\nexport type BreadcrumbsProps = React.HTMLAttributes<HTMLElement> &\n DataAttributes & {\n ariaLabel?: string;\n children: ReactElement<BreadcrumbsItemProps> | Array<ReactElement<BreadcrumbsItemProps>>;\n /** Set to generate breadcrumbs metadata for crawlers. Defaults to true. */\n meta?: boolean;\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 };\n\ntype CommonItemProps = React.HTMLAttributes<HTMLLIElement> & DataAttributes & {\n current?: boolean;\n negative?: boolean;\n ariaLabel?: string;\n meta?: boolean;\n onClick?: () => void;\n};\n\nexport type BreadcrumbsItemProps = CommonItemProps & Conditional;\n\ntype Conditional =\n | {\n href?: string;\n children: string;\n }\n | {\n href?: never;\n children: ReactElement<HTMLAnchorElement>;\n };\n\nconst rootClassName = \"purpur-breadcrumbs\";\nconst itemClassName = \"purpur-breadcrumb-item\";\n\nconst Breadcrumbs = ({\n ariaLabel,\n children,\n className,\n meta = true,\n negative = false,\n highlightLast = true,\n hideHomeIcon,\n ...props\n}: BreadcrumbsProps) => {\n const classes = c([\n className,\n styles[rootClassName],\n styles[`${rootClassName}--${negative ? \"negative\" : \"default\"}`],\n ]);\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 grandChildren = item.props.children;\n const grandGrandChildren = typeof grandChildren === \"string\" ? null : grandChildren.props;\n\n let name = null,\n href = null;\n\n if (typeof grandChildren === \"string\") {\n name = grandChildren;\n href = item.props.href;\n } else if (grandGrandChildren?.children && typeof grandGrandChildren?.children === \"string\") {\n name = grandGrandChildren.children;\n href = grandGrandChildren.href;\n }\n\n if (name && href) {\n metaListItems.push(metaListItem(name, href, position));\n }\n\n const child = cloneElement(item, {\n current,\n negative,\n ...(position === 1 && {\n children: (\n <>\n {!hideHomeIcon ? (\n <span className={styles[`${rootClassName}__home`]} aria-hidden=\"true\">\n <IconHome size=\"xs\" />\n </span>\n ) : null}\n {item.props.children}\n </>\n ),\n }),\n });\n\n return child;\n });\n\n const schema = metaListItems.length === maxIndex ? metaSchema(metaListItems) : null;\n\n return (\n <nav aria-label={ariaLabel || \"Breadcrumb\"} 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 \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 negative = false,\n onClick,\n ...rest\n}: BreadcrumbsItemProps) => {\n const classes = c(\n [styles[itemClassName], styles[`${itemClassName}--${negative ? \"negative\" : \"default\"}`]],\n {\n [styles[`${itemClassName}--current`]]: current,\n }\n );\n\n const link = () => {\n const commonProps = {\n href,\n [\"data-testid\"]: dataTestId,\n \"aria-current\": current ? \"page\" : undefined,\n onClick,\n };\n\n const component =\n href || typeof children === \"string\"\n ? createElement(\"a\", commonProps, children)\n : cloneElement(children, {\n ...commonProps,\n ...children.props,\n });\n\n return component;\n };\n\n return (\n <li {...rest} className={classes}>\n {link()}\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","s","i","u","_","d","v","g","a","x","h","b","S","y","l","hasOwn","classNames","classes","arg","appendClass","parseValue","key","value","newClass","module","metaListItem","name","item","position","metaSchema","itemListElement","rootClassName","itemClassName","Breadcrumbs","ariaLabel","children","className","meta","negative","highlightLast","hideHomeIcon","props","styles","maxIndex","Children","metaListItems","items","index","current","grandChildren","grandGrandChildren","href","cloneElement","jsxs","Fragment","jsx","IconHome","schema","Item","dataTestId","onClick","rest","link","commonProps","createElement"],"mappings":"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","x_google_ignoreList":[2]}
@@ -1,11 +1,9 @@
1
1
  import { default as React, ReactElement } from 'react';
2
2
  import { DataAttributes } from './types.ts';
3
3
 
4
- export type BreadcrumbsProps = DataAttributes & {
5
- ["data-testid"]?: string;
4
+ export type BreadcrumbsProps = React.HTMLAttributes<HTMLElement> & DataAttributes & {
6
5
  ariaLabel?: string;
7
6
  children: ReactElement<BreadcrumbsItemProps> | Array<ReactElement<BreadcrumbsItemProps>>;
8
- className?: string;
9
7
  /** Set to generate breadcrumbs metadata for crawlers. Defaults to true. */
10
8
  meta?: boolean;
11
9
  /** Set to render the breadcrumbs with light font color. Ideally used when rendered on dark backgrounds. */
@@ -15,10 +13,9 @@ export type BreadcrumbsProps = DataAttributes & {
15
13
  /** Set to not render the home icon in front of the first breadcrumb item. */
16
14
  hideHomeIcon?: boolean;
17
15
  };
18
- type CommonItemProps = {
16
+ type CommonItemProps = React.HTMLAttributes<HTMLLIElement> & DataAttributes & {
19
17
  current?: boolean;
20
18
  negative?: boolean;
21
- ["data-testid"]?: string;
22
19
  ariaLabel?: string;
23
20
  meta?: boolean;
24
21
  onClick?: () => void;
@@ -32,7 +29,7 @@ type Conditional = {
32
29
  children: ReactElement<HTMLAnchorElement>;
33
30
  };
34
31
  declare const Breadcrumbs: {
35
- ({ ["data-testid"]: dataTestId, ariaLabel, children, className, meta, negative, highlightLast, hideHomeIcon, ...props }: BreadcrumbsProps): React.JSX.Element;
32
+ ({ ariaLabel, children, className, meta, negative, highlightLast, hideHomeIcon, ...props }: BreadcrumbsProps): React.JSX.Element;
36
33
  Item: ({ href, ["data-testid"]: dataTestId, children, current, negative, onClick, ...rest }: BreadcrumbsItemProps) => React.JSX.Element;
37
34
  };
38
35
  declare const Item: ({ href, ["data-testid"]: dataTestId, children, current, negative, onClick, ...rest }: BreadcrumbsItemProps) => React.JSX.Element;
@@ -1 +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;AAMnF,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG;IAC9C,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,2EAA2E;IAC3E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,2GAA2G;IAC3G,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oMAAoM;IACpM,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,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;6HAUd,gBAAgB;iGAoFhB,oBAAoB;CAVtB,CAAC;AAEF,QAAA,MAAM,IAAI,yFAQP,oBAAoB,sBAgCtB,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,EAAyC,YAAY,EAAE,MAAM,OAAO,CAAC;AAMnF,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,GAC9D,cAAc,GAAG;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAC,oBAAoB,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACzF,2EAA2E;IAC3E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,2GAA2G;IAC3G,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oMAAoM;IACpM,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEJ,KAAK,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,cAAc,GAAG;IAC5E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,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;gGASd,gBAAgB;iGA+EhB,oBAAoB;CAVtB,CAAC;AAEF,QAAA,MAAM,IAAI,yFAQP,oBAAoB,sBAgCtB,CAAC;AAIF,OAAO,EAAE,WAAW,EAAE,IAAI,IAAI,eAAe,EAAE,CAAC"}
@@ -1,17 +1,17 @@
1
- import { jsx as c, jsxs as S, Fragment as E } from "react/jsx-runtime";
2
- import { Children as N, cloneElement as L, createElement as Z } from "react";
3
- function T(e) {
1
+ import { jsx as i, jsxs as $, Fragment as A } from "react/jsx-runtime";
2
+ import { Children as S, cloneElement as q, createElement 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 j = { exports: {} };
6
+ var N = { 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 I;
13
- function k() {
14
- return I || (I = 1, function(e) {
12
+ var j;
13
+ function T() {
14
+ return j || (j = 1, function(e) {
15
15
  (function() {
16
16
  var s = {}.hasOwnProperty;
17
17
  function n() {
@@ -40,10 +40,10 @@ function k() {
40
40
  }
41
41
  e.exports ? (n.default = n, e.exports = n) : window.classNames = n;
42
42
  })();
43
- }(j)), j.exports;
43
+ }(N)), N.exports;
44
44
  }
45
- var z = k();
46
- const F = /* @__PURE__ */ T(z), D = {
45
+ var k = T();
46
+ const z = /* @__PURE__ */ Z(k), F = {
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,27 +51,27 @@ const F = /* @__PURE__ */ T(z), D = {
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
- }, J = F.bind(D), O = "purpur-icon", R = "md", V = (e) => e.filter((s) => Object.keys(s).length >= 1).map((s) => `${s.name}="${s.value}"`).join(" "), K = ({ content: e = "", title: s } = {}) => {
54
+ }, D = z.bind(F), I = "purpur-icon", J = "md", R = (e) => e.filter((s) => Object.keys(s).length >= 1).map((s) => `${s.name}="${s.value}"`).join(" "), V = ({ content: e = "", title: s } = {}) => {
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
  s ? { name: "role", value: "img" } : { name: "aria-hidden", value: "true" }
60
60
  ], a = s ? `<title>${s}</title>` : "";
61
- return `<svg ${V(n)}>${a}${e}</svg>`;
62
- }, Q = (e) => e.replace(/<(\/?)svg([^>]*)>/g, "").trim(), M = ({
61
+ return `<svg ${R(n)}>${a}${e}</svg>`;
62
+ }, K = (e) => e.replace(/<(\/?)svg([^>]*)>/g, "").trim(), L = ({
63
63
  ["data-testid"]: e,
64
64
  svg: s,
65
65
  allyTitle: n,
66
66
  className: a,
67
- size: o = R,
67
+ size: o = J,
68
68
  ...r
69
69
  }) => {
70
- const t = K({
71
- content: Q(s.svg),
70
+ const t = V({
71
+ content: K(s.svg),
72
72
  title: n
73
- }), u = J(a, O, `${O}--${o}`);
74
- return /* @__PURE__ */ c(
73
+ }), u = D(a, I, `${I}--${o}`);
74
+ return /* @__PURE__ */ i(
75
75
  "span",
76
76
  {
77
77
  "aria-label": n,
@@ -82,26 +82,26 @@ const F = /* @__PURE__ */ T(z), D = {
82
82
  }
83
83
  );
84
84
  };
85
- M.displayName = "Icon";
86
- const U = {
85
+ L.displayName = "Icon";
86
+ const Q = {
87
87
  name: "home",
88
88
  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>',
89
89
  keywords: ["home"],
90
90
  category: "buildings"
91
- }, B = (e) => /* @__PURE__ */ c(M, { ...e, svg: U });
92
- B.displayName = "IconHome";
93
- function W(e) {
91
+ }, M = (e) => /* @__PURE__ */ i(L, { ...e, svg: Q });
92
+ M.displayName = "IconHome";
93
+ function U(e) {
94
94
  return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
95
95
  }
96
- var y = { exports: {} };
96
+ var g = { exports: {} };
97
97
  /*!
98
98
  Copyright (c) 2018 Jed Watson.
99
99
  Licensed under the MIT License (MIT), see
100
100
  http://jedwatson.github.io/classnames
101
101
  */
102
- var q;
103
- function X() {
104
- return q || (q = 1, function(e) {
102
+ var O;
103
+ function W() {
104
+ return O || (O = 1, function(e) {
105
105
  (function() {
106
106
  var s = {}.hasOwnProperty;
107
107
  function n() {
@@ -130,10 +130,10 @@ function X() {
130
130
  }
131
131
  e.exports ? (n.default = n, e.exports = n) : window.classNames = n;
132
132
  })();
133
- }(y)), y.exports;
133
+ }(g)), g.exports;
134
134
  }
135
- var Y = X();
136
- const H = /* @__PURE__ */ W(Y), p = {
135
+ var X = W();
136
+ const B = /* @__PURE__ */ U(X), p = {
137
137
  "purpur-breadcrumbs": "_purpur-breadcrumbs_1xh80_1",
138
138
  "purpur-breadcrumbs--default": "_purpur-breadcrumbs--default_1xh80_20",
139
139
  "purpur-breadcrumbs--negative": "_purpur-breadcrumbs--negative_1xh80_34",
@@ -142,65 +142,55 @@ const H = /* @__PURE__ */ W(Y), p = {
142
142
  "purpur-breadcrumb-item": "_purpur-breadcrumb-item_1xh80_67",
143
143
  "purpur-breadcrumb-item--current": "_purpur-breadcrumb-item--current_1xh80_72",
144
144
  "purpur-breadcrumb-item--negative": "_purpur-breadcrumb-item--negative_1xh80_94"
145
- }, G = (e, s, n) => ({
145
+ }, Y = (e, s, n) => ({
146
146
  "@type": "ListItem",
147
147
  position: n,
148
148
  name: e,
149
149
  item: s
150
- }), rr = (e) => JSON.stringify({
150
+ }), G = (e) => JSON.stringify({
151
151
  "@context": "https://schema.org",
152
152
  "@type": "BreadcrumbList",
153
153
  itemListElement: e
154
- }), h = "purpur-breadcrumbs", x = "purpur-breadcrumb-item", er = ({
155
- ["data-testid"]: e,
156
- ariaLabel: s,
157
- children: n,
158
- className: a,
159
- meta: o = !0,
160
- negative: r = !1,
161
- highlightLast: t = !0,
162
- hideHomeIcon: u,
163
- ...w
154
+ }), b = "purpur-breadcrumbs", y = "purpur-breadcrumb-item", rr = ({
155
+ ariaLabel: e,
156
+ children: s,
157
+ className: n,
158
+ meta: a = !0,
159
+ negative: o = !1,
160
+ highlightLast: r = !0,
161
+ hideHomeIcon: t,
162
+ ...u
164
163
  }) => {
165
- const l = H([
166
- a,
167
- p[h],
168
- p[`${h}--${r ? "negative" : "default"}`]
169
- ]), b = N.count(n), v = [], C = N.map(n, (m, P) => {
170
- const g = P + 1, A = t && b === g, d = m.props.children, i = typeof d == "string" ? null : d.props;
171
- let f = null, _ = null;
172
- return typeof d == "string" ? (f = d, _ = m.props.href) : i != null && i.children && typeof (i == null ? void 0 : i.children) == "string" && (f = i.children, _ = i.href), f && _ && v.push(G(f, _, g)), L(m, {
173
- current: A,
174
- negative: r,
175
- ...g === 1 && {
176
- children: /* @__PURE__ */ S(E, { children: [
177
- u ? null : /* @__PURE__ */ c("span", { className: p[`${h}__home`], "aria-hidden": "true", children: /* @__PURE__ */ c(B, { size: "xs" }) }),
178
- m.props.children
164
+ const x = B([
165
+ n,
166
+ p[b],
167
+ p[`${b}--${o ? "negative" : "default"}`]
168
+ ]), l = S.count(s), m = [], H = S.map(s, (d, C) => {
169
+ const v = C + 1, P = r && l === v, f = d.props.children, c = typeof f == "string" ? null : f.props;
170
+ let _ = null, h = null;
171
+ return typeof f == "string" ? (_ = f, h = d.props.href) : c != null && c.children && typeof (c == null ? void 0 : c.children) == "string" && (_ = c.children, h = c.href), _ && h && m.push(Y(_, h, v)), q(d, {
172
+ current: P,
173
+ negative: o,
174
+ ...v === 1 && {
175
+ children: /* @__PURE__ */ $(A, { children: [
176
+ t ? null : /* @__PURE__ */ i("span", { className: p[`${b}__home`], "aria-hidden": "true", children: /* @__PURE__ */ i(M, { size: "xs" }) }),
177
+ d.props.children
179
178
  ] })
180
179
  }
181
180
  });
182
- }), $ = v.length === b ? rr(v) : null;
183
- return /* @__PURE__ */ S(
184
- "nav",
185
- {
186
- "data-testid": e,
187
- "aria-label": s || "Breadcrumb",
188
- className: l,
189
- ...w,
190
- children: [
191
- /* @__PURE__ */ c("ol", { className: p[`${h}__list`], children: C }),
192
- o && $ ? /* @__PURE__ */ c(
193
- "script",
194
- {
195
- type: "application/ld+json",
196
- "data-testid": "breadcrumbs-meta",
197
- dangerouslySetInnerHTML: { __html: $ }
198
- }
199
- ) : null
200
- ]
201
- }
202
- );
203
- }, tr = ({
181
+ }), w = m.length === l ? G(m) : null;
182
+ return /* @__PURE__ */ $("nav", { "aria-label": e || "Breadcrumb", className: x, ...u, children: [
183
+ /* @__PURE__ */ i("ol", { className: p[`${b}__list`], children: H }),
184
+ a && w ? /* @__PURE__ */ i(
185
+ "script",
186
+ {
187
+ type: "application/ld+json",
188
+ "data-testid": "breadcrumbs-meta",
189
+ dangerouslySetInnerHTML: { __html: w }
190
+ }
191
+ ) : null
192
+ ] });
193
+ }, er = ({
204
194
  href: e,
205
195
  ["data-testid"]: s,
206
196
  children: n,
@@ -209,28 +199,28 @@ const H = /* @__PURE__ */ W(Y), p = {
209
199
  onClick: r,
210
200
  ...t
211
201
  }) => {
212
- const u = H(
213
- [p[x], p[`${x}--${o ? "negative" : "default"}`]],
202
+ const u = B(
203
+ [p[y], p[`${y}--${o ? "negative" : "default"}`]],
214
204
  {
215
- [p[`${x}--current`]]: a
205
+ [p[`${y}--current`]]: a
216
206
  }
217
207
  );
218
- return /* @__PURE__ */ c("li", { ...t, className: u, children: (() => {
208
+ return /* @__PURE__ */ i("li", { ...t, className: u, children: (() => {
219
209
  const l = {
220
210
  href: e,
221
211
  "data-testid": s,
222
212
  "aria-current": a ? "page" : void 0,
223
213
  onClick: r
224
214
  };
225
- return e || typeof n == "string" ? Z("a", l, n) : L(n, {
215
+ return e || typeof n == "string" ? E("a", l, n) : q(n, {
226
216
  ...l,
227
217
  ...n.props
228
218
  });
229
219
  })() });
230
220
  };
231
- er.Item = tr;
221
+ rr.Item = er;
232
222
  export {
233
- er as Breadcrumbs,
234
- tr as BreadcrumbsItem
223
+ rr as Breadcrumbs,
224
+ er as BreadcrumbsItem
235
225
  };
236
226
  //# sourceMappingURL=breadcrumbs.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumbs.es.js","sources":["../../icon/dist/icon-CbdbqC3C.mjs","../../icon/dist/components/home.es.js","../../../common/temp/node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.js","../src/meta.ts","../src/breadcrumbs.tsx"],"sourcesContent":["import { jsx as l } 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), a = \"purpur-icon\", x = \"md\", h = (r) => r.filter((e) => Object.keys(e).length >= 1).map((e) => `${e.name}=\"${e.value}\"`).join(\" \"), b = ({ 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(), y = ({\n [\"data-testid\"]: r,\n svg: e,\n allyTitle: o,\n className: u,\n size: i = x,\n ...t\n}) => {\n const n = b({\n content: S(e.svg),\n title: o\n }), s = g(u, a, `${a}--${i}`);\n return /* @__PURE__ */ l(\n \"span\",\n {\n \"aria-label\": o,\n className: s,\n \"data-testid\": r,\n dangerouslySetInnerHTML: { __html: n },\n ...t\n }\n );\n};\ny.displayName = \"Icon\";\nexport {\n y as I\n};\n//# sourceMappingURL=icon-CbdbqC3C.mjs.map\n","import { jsx as e } from \"react/jsx-runtime\";\nimport { I as a } from \"../icon-CbdbqC3C.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(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 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(null, 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, 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, item: string, position: number) => MetaListItem;\n\nexport const metaListItem: MakeMetaListItem = (name, item, position) => ({\n \"@type\": \"ListItem\",\n position,\n name,\n item,\n});\n\nexport const metaSchema = (itemListElement: MetaListItem[]) =>\n JSON.stringify({\n \"@context\": \"https://schema.org\",\n \"@type\": \"BreadcrumbList\",\n itemListElement,\n });\n","import React, { Children, cloneElement, createElement, ReactElement } from \"react\";\nimport { IconHome } from \"@purpurds/icon/home\";\nimport c from \"classnames\";\n\nimport styles from \"./breadcrumbs.module.scss\";\nimport { MetaListItem, metaListItem, metaSchema } from \"./meta\";\nimport { DataAttributes } from \"./types.ts\";\n\nexport type BreadcrumbsProps = DataAttributes & {\n [\"data-testid\"]?: string;\n ariaLabel?: string;\n children: ReactElement<BreadcrumbsItemProps> | Array<ReactElement<BreadcrumbsItemProps>>;\n className?: string;\n /** Set to generate breadcrumbs metadata for crawlers. Defaults to true. */\n meta?: boolean;\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};\n\ntype CommonItemProps = {\n current?: boolean;\n negative?: boolean;\n [\"data-testid\"]?: string;\n ariaLabel?: string;\n meta?: boolean;\n onClick?: () => void;\n};\n\nexport type BreadcrumbsItemProps = CommonItemProps & Conditional;\n\ntype Conditional =\n | {\n href?: string;\n children: string;\n }\n | {\n href?: never;\n children: ReactElement<HTMLAnchorElement>;\n };\n\nconst rootClassName = \"purpur-breadcrumbs\";\nconst itemClassName = \"purpur-breadcrumb-item\";\n\nconst Breadcrumbs = ({\n [\"data-testid\"]: dataTestId,\n ariaLabel,\n children,\n className,\n meta = true,\n negative = false,\n highlightLast = true,\n hideHomeIcon,\n ...props\n}: BreadcrumbsProps) => {\n const classes = c([\n className,\n styles[rootClassName],\n styles[`${rootClassName}--${negative ? \"negative\" : \"default\"}`],\n ]);\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 grandChildren = item.props.children;\n const grandGrandChildren = typeof grandChildren === \"string\" ? null : grandChildren.props;\n\n let name = null,\n href = null;\n\n if (typeof grandChildren === \"string\") {\n name = grandChildren;\n href = item.props.href;\n } else if (grandGrandChildren?.children && typeof grandGrandChildren?.children === \"string\") {\n name = grandGrandChildren.children;\n href = grandGrandChildren.href;\n }\n\n if (name && href) {\n metaListItems.push(metaListItem(name, href, position));\n }\n\n const child = cloneElement(item, {\n current,\n negative,\n ...(position === 1 && {\n children: (\n <>\n {!hideHomeIcon ? (\n <span className={styles[`${rootClassName}__home`]} aria-hidden=\"true\">\n <IconHome size=\"xs\" />\n </span>\n ) : null}\n {item.props.children}\n </>\n ),\n }),\n });\n\n return child;\n });\n\n const schema = metaListItems.length === maxIndex ? metaSchema(metaListItems) : null;\n\n return (\n <nav\n data-testid={dataTestId}\n aria-label={ariaLabel || \"Breadcrumb\"}\n className={classes}\n {...props}\n >\n <ol className={styles[`${rootClassName}__list`]}>{items}</ol>\n {meta && schema ? (\n <script\n type=\"application/ld+json\"\n data-testid=\"breadcrumbs-meta\"\n // eslint-disable-next-line react/no-danger\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 negative = false,\n onClick,\n ...rest\n}: BreadcrumbsItemProps) => {\n const classes = c(\n [styles[itemClassName], styles[`${itemClassName}--${negative ? \"negative\" : \"default\"}`]],\n {\n [styles[`${itemClassName}--current`]]: current,\n }\n );\n\n const link = () => {\n const commonProps = {\n href,\n [\"data-testid\"]: dataTestId,\n \"aria-current\": current ? \"page\" : undefined,\n onClick,\n };\n\n const component =\n href || typeof children === \"string\"\n ? createElement(\"a\", commonProps, children)\n : cloneElement(children, {\n ...commonProps,\n ...children.props,\n });\n\n return component;\n };\n\n return (\n <li {...rest} className={classes}>\n {link()}\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","s","i","u","_","d","v","g","a","x","h","b","S","y","l","hasOwn","classNames","classes","arg","appendClass","parseValue","key","value","newClass","module","metaListItem","name","item","position","metaSchema","itemListElement","rootClassName","itemClassName","Breadcrumbs","dataTestId","ariaLabel","children","className","meta","negative","highlightLast","hideHomeIcon","props","styles","maxIndex","Children","metaListItems","items","index","current","grandChildren","grandGrandChildren","href","cloneElement","jsxs","Fragment","jsx","IconHome","schema","Item","onClick","rest","commonProps","createElement"],"mappings":"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","x_google_ignoreList":[2]}
1
+ {"version":3,"file":"breadcrumbs.es.js","sources":["../../icon/dist/icon-CbdbqC3C.mjs","../../icon/dist/components/home.es.js","../../../common/temp/node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.js","../src/meta.ts","../src/breadcrumbs.tsx"],"sourcesContent":["import { jsx as l } 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), a = \"purpur-icon\", x = \"md\", h = (r) => r.filter((e) => Object.keys(e).length >= 1).map((e) => `${e.name}=\"${e.value}\"`).join(\" \"), b = ({ 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(), y = ({\n [\"data-testid\"]: r,\n svg: e,\n allyTitle: o,\n className: u,\n size: i = x,\n ...t\n}) => {\n const n = b({\n content: S(e.svg),\n title: o\n }), s = g(u, a, `${a}--${i}`);\n return /* @__PURE__ */ l(\n \"span\",\n {\n \"aria-label\": o,\n className: s,\n \"data-testid\": r,\n dangerouslySetInnerHTML: { __html: n },\n ...t\n }\n );\n};\ny.displayName = \"Icon\";\nexport {\n y as I\n};\n//# sourceMappingURL=icon-CbdbqC3C.mjs.map\n","import { jsx as e } from \"react/jsx-runtime\";\nimport { I as a } from \"../icon-CbdbqC3C.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(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 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(null, 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, 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, item: string, position: number) => MetaListItem;\n\nexport const metaListItem: MakeMetaListItem = (name, item, position) => ({\n \"@type\": \"ListItem\",\n position,\n name,\n item,\n});\n\nexport const metaSchema = (itemListElement: MetaListItem[]) =>\n JSON.stringify({\n \"@context\": \"https://schema.org\",\n \"@type\": \"BreadcrumbList\",\n itemListElement,\n });\n","import React, { Children, cloneElement, createElement, ReactElement } from \"react\";\nimport { IconHome } from \"@purpurds/icon/home\";\nimport c from \"classnames\";\n\nimport styles from \"./breadcrumbs.module.scss\";\nimport { MetaListItem, metaListItem, metaSchema } from \"./meta\";\nimport { DataAttributes } from \"./types.ts\";\n\nexport type BreadcrumbsProps = React.HTMLAttributes<HTMLElement> &\n DataAttributes & {\n ariaLabel?: string;\n children: ReactElement<BreadcrumbsItemProps> | Array<ReactElement<BreadcrumbsItemProps>>;\n /** Set to generate breadcrumbs metadata for crawlers. Defaults to true. */\n meta?: boolean;\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 };\n\ntype CommonItemProps = React.HTMLAttributes<HTMLLIElement> & DataAttributes & {\n current?: boolean;\n negative?: boolean;\n ariaLabel?: string;\n meta?: boolean;\n onClick?: () => void;\n};\n\nexport type BreadcrumbsItemProps = CommonItemProps & Conditional;\n\ntype Conditional =\n | {\n href?: string;\n children: string;\n }\n | {\n href?: never;\n children: ReactElement<HTMLAnchorElement>;\n };\n\nconst rootClassName = \"purpur-breadcrumbs\";\nconst itemClassName = \"purpur-breadcrumb-item\";\n\nconst Breadcrumbs = ({\n ariaLabel,\n children,\n className,\n meta = true,\n negative = false,\n highlightLast = true,\n hideHomeIcon,\n ...props\n}: BreadcrumbsProps) => {\n const classes = c([\n className,\n styles[rootClassName],\n styles[`${rootClassName}--${negative ? \"negative\" : \"default\"}`],\n ]);\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 grandChildren = item.props.children;\n const grandGrandChildren = typeof grandChildren === \"string\" ? null : grandChildren.props;\n\n let name = null,\n href = null;\n\n if (typeof grandChildren === \"string\") {\n name = grandChildren;\n href = item.props.href;\n } else if (grandGrandChildren?.children && typeof grandGrandChildren?.children === \"string\") {\n name = grandGrandChildren.children;\n href = grandGrandChildren.href;\n }\n\n if (name && href) {\n metaListItems.push(metaListItem(name, href, position));\n }\n\n const child = cloneElement(item, {\n current,\n negative,\n ...(position === 1 && {\n children: (\n <>\n {!hideHomeIcon ? (\n <span className={styles[`${rootClassName}__home`]} aria-hidden=\"true\">\n <IconHome size=\"xs\" />\n </span>\n ) : null}\n {item.props.children}\n </>\n ),\n }),\n });\n\n return child;\n });\n\n const schema = metaListItems.length === maxIndex ? metaSchema(metaListItems) : null;\n\n return (\n <nav aria-label={ariaLabel || \"Breadcrumb\"} 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 \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 negative = false,\n onClick,\n ...rest\n}: BreadcrumbsItemProps) => {\n const classes = c(\n [styles[itemClassName], styles[`${itemClassName}--${negative ? \"negative\" : \"default\"}`]],\n {\n [styles[`${itemClassName}--current`]]: current,\n }\n );\n\n const link = () => {\n const commonProps = {\n href,\n [\"data-testid\"]: dataTestId,\n \"aria-current\": current ? \"page\" : undefined,\n onClick,\n };\n\n const component =\n href || typeof children === \"string\"\n ? createElement(\"a\", commonProps, children)\n : cloneElement(children, {\n ...commonProps,\n ...children.props,\n });\n\n return component;\n };\n\n return (\n <li {...rest} className={classes}>\n {link()}\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","s","i","u","_","d","v","g","a","x","h","b","S","y","l","hasOwn","classNames","classes","arg","appendClass","parseValue","key","value","newClass","module","metaListItem","name","item","position","metaSchema","itemListElement","rootClassName","itemClassName","Breadcrumbs","ariaLabel","children","className","meta","negative","highlightLast","hideHomeIcon","props","styles","maxIndex","Children","metaListItems","items","index","current","grandChildren","grandGrandChildren","href","cloneElement","jsxs","Fragment","jsx","IconHome","schema","Item","dataTestId","onClick","rest","commonProps","createElement"],"mappings":"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","x_google_ignoreList":[2]}
@@ -0,0 +1,2 @@
1
+ import purpurCommon from "@purpurds/component-rig/eslint.config.mjs";
2
+ export default purpurCommon;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@purpurds/breadcrumbs",
3
- "version": "6.9.0",
3
+ "version": "6.11.0",
4
4
  "license": "AGPL-3.0-only",
5
5
  "main": "./dist/breadcrumbs.cjs.js",
6
6
  "types": "./dist/breadcrumbs.d.ts",
@@ -16,33 +16,29 @@
16
16
  "source": "src/breadcrumbs.tsx",
17
17
  "dependencies": {
18
18
  "classnames": "~2.5.0",
19
- "@purpurds/icon": "6.9.0",
20
- "@purpurds/tokens": "6.9.0"
19
+ "@purpurds/icon": "6.11.0",
20
+ "@purpurds/tokens": "6.11.0"
21
21
  },
22
22
  "devDependencies": {
23
- "@rushstack/eslint-patch": "~1.10.0",
23
+ "eslint": "9.24.0",
24
24
  "@storybook/react": "^8.6.4",
25
25
  "storybook": "^8.6.4",
26
- "@telia/base-rig": "~8.2.0",
27
- "@telia/react-rig": "~3.2.0",
28
26
  "@testing-library/dom": "~10.4.0",
29
27
  "@testing-library/jest-dom": "~6.4.0",
30
28
  "@testing-library/react": "~16.2.0",
31
29
  "@types/node": "20.12.12",
32
30
  "@types/react-dom": "^19.0.4",
33
31
  "@types/react": "^19.0.10",
34
- "eslint-plugin-testing-library": "~6.2.0",
35
- "eslint": "^8.57.0",
36
32
  "jsdom": "~22.1.0",
37
- "lint-staged": "~10.5.3",
33
+ "lint-staged": "15.5.0",
38
34
  "prettier": "~2.8.8",
39
35
  "react-dom": "^19.0.0",
40
36
  "react": "^19.0.0",
41
37
  "typescript": "^5.6.3",
42
38
  "vite": "^6.2.1",
43
- "vitest": "^2.1.2",
44
- "@purpurds/paragraph": "6.9.0",
45
- "@purpurds/component-rig": "1.0.0"
39
+ "vitest": "^3.1.2",
40
+ "@purpurds/component-rig": "1.0.0",
41
+ "@purpurds/paragraph": "6.11.0"
46
42
  },
47
43
  "peerDependencies": {
48
44
  "@types/react": "^18 || ^19",
@@ -6,25 +6,23 @@ import styles from "./breadcrumbs.module.scss";
6
6
  import { MetaListItem, metaListItem, metaSchema } from "./meta";
7
7
  import { DataAttributes } from "./types.ts";
8
8
 
9
- export type BreadcrumbsProps = DataAttributes & {
10
- ["data-testid"]?: string;
11
- ariaLabel?: string;
12
- children: ReactElement<BreadcrumbsItemProps> | Array<ReactElement<BreadcrumbsItemProps>>;
13
- className?: string;
14
- /** Set to generate breadcrumbs metadata for crawlers. Defaults to true. */
15
- meta?: boolean;
16
- /** Set to render the breadcrumbs with light font color. Ideally used when rendered on dark backgrounds. */
17
- negative?: boolean;
18
- /** 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. */
19
- highlightLast?: boolean;
20
- /** Set to not render the home icon in front of the first breadcrumb item. */
21
- hideHomeIcon?: boolean;
22
- };
9
+ export type BreadcrumbsProps = React.HTMLAttributes<HTMLElement> &
10
+ DataAttributes & {
11
+ ariaLabel?: string;
12
+ children: ReactElement<BreadcrumbsItemProps> | Array<ReactElement<BreadcrumbsItemProps>>;
13
+ /** Set to generate breadcrumbs metadata for crawlers. Defaults to true. */
14
+ meta?: boolean;
15
+ /** Set to render the breadcrumbs with light font color. Ideally used when rendered on dark backgrounds. */
16
+ negative?: boolean;
17
+ /** 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. */
18
+ highlightLast?: boolean;
19
+ /** Set to not render the home icon in front of the first breadcrumb item. */
20
+ hideHomeIcon?: boolean;
21
+ };
23
22
 
24
- type CommonItemProps = {
23
+ type CommonItemProps = React.HTMLAttributes<HTMLLIElement> & DataAttributes & {
25
24
  current?: boolean;
26
25
  negative?: boolean;
27
- ["data-testid"]?: string;
28
26
  ariaLabel?: string;
29
27
  meta?: boolean;
30
28
  onClick?: () => void;
@@ -46,7 +44,6 @@ const rootClassName = "purpur-breadcrumbs";
46
44
  const itemClassName = "purpur-breadcrumb-item";
47
45
 
48
46
  const Breadcrumbs = ({
49
- ["data-testid"]: dataTestId,
50
47
  ariaLabel,
51
48
  children,
52
49
  className,
@@ -112,18 +109,13 @@ const Breadcrumbs = ({
112
109
  const schema = metaListItems.length === maxIndex ? metaSchema(metaListItems) : null;
113
110
 
114
111
  return (
115
- <nav
116
- data-testid={dataTestId}
117
- aria-label={ariaLabel || "Breadcrumb"}
118
- className={classes}
119
- {...props}
120
- >
112
+ <nav aria-label={ariaLabel || "Breadcrumb"} className={classes} {...props}>
121
113
  <ol className={styles[`${rootClassName}__list`]}>{items}</ol>
122
114
  {meta && schema ? (
123
115
  <script
124
116
  type="application/ld+json"
125
117
  data-testid="breadcrumbs-meta"
126
- // eslint-disable-next-line react/no-danger
118
+
127
119
  dangerouslySetInnerHTML={{ __html: schema }}
128
120
  />
129
121
  ) : null}