@purpurds/breadcrumbs 6.12.4 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/LICENSE.txt CHANGED
@@ -1,5 +1,5 @@
1
1
  Name: @purpurds/icon
2
- Version: 6.12.3
2
+ Version: 6.12.5
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"),m=require("react");function E(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var $={exports:{}};/*!
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:{}};/*!
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 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:{}};/*!
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:{}};/*!
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 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;
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;
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 = 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 = Omit<React.HTMLAttributes<HTMLLIElement>, \"onClick\"> &\n 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 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":"wIACA,SAASA,EAAEC,EAAG,CACZ,OAAOA,GAAKA,EAAE,YAAc,OAAO,UAAU,eAAe,KAAKA,EAAG,SAAS,EAAIA,EAAE,QAAUA,CAC/F,CACA,IAAIC,EAAI,CAAE,QAAS,EAAI,EACvB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAIC,EACJ,SAASC,GAAI,CACX,OAAOD,IAAMA,EAAI,EAAG,SAASF,EAAG,EAC7B,UAAW,CACV,IAAII,EAAI,CAAA,EAAG,eACX,SAASC,GAAI,CACX,QAASC,EAAI,GAAIC,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CACjD,IAAIC,EAAI,UAAUD,CAAC,EACnBC,IAAMF,EAAIG,EAAEH,EAAGI,EAAE,KAAK,KAAMF,CAAC,CAAC,EACxC,CACQ,OAAOF,CACf,CACM,SAASI,EAAEJ,EAAG,CACZ,GAAI,OAAOA,GAAK,UAAY,OAAOA,GAAK,SACtC,OAAO,MAAQ,KAAKA,CAAC,GAAKA,EAC5B,GAAI,OAAOA,GAAK,SACd,MAAO,GACT,GAAI,MAAM,QAAQA,CAAC,EACjB,OAAOD,EAAE,MAAM,KAAMC,CAAC,EACxB,GAAIA,EAAE,WAAa,OAAO,UAAU,UAAY,CAACA,EAAE,SAAS,WAAW,SAAS,eAAe,EAC7F,OAAOA,EAAE,SAAU,EACrB,IAAIC,EAAI,GACR,QAASC,KAAKF,EACZF,EAAE,KAAKE,EAAGE,CAAC,GAAKF,EAAEE,CAAC,IAAMD,EAAIE,EAAEF,EAAG,MAAQ,KAAKC,CAAC,GAAKA,CAAC,GACxD,OAAOD,CACf,CACM,SAASE,EAAEH,EAAGC,EAAG,CACf,OAAOA,EAAID,EAAIA,EAAI,IAAMC,EAAID,EAAIC,EAAID,CAC7C,CACMN,EAAE,SAAWK,EAAE,QAAUA,EAAGL,EAAE,QAAUK,GAAK,OAAO,WAAaA,CACvE,GAAQ,CACR,EAAIJ,CAAC,GAAIA,EAAE,OACX,CACA,IAAIU,EAAIR,EAAG,EACX,MAAMS,EAAoBb,EAAEY,CAAC,EAAGE,EAAI,CAClC,cAAe,uBACf,mBAAoB,4BACpB,kBAAmB,2BACnB,kBAAmB,4BACnB,kBAAmB,4BACnB,kBAAmB,4BACnB,kBAAmB,2BACrB,EAAGC,EAAIF,EAAE,KAAKC,CAAC,EAAGE,EAAI,cAAeC,EAAI,KAAMC,EAAKjB,GAAMA,EAAE,OAAQI,GAAM,OAAO,KAAKA,CAAC,EAAE,QAAU,CAAC,EAAE,IAAKA,GAAM,GAAGA,EAAE,IAAI,KAAKA,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAGc,EAAI,CAAC,CAAE,QAASlB,EAAI,GAAI,MAAOI,CAAG,EAAG,KAAO,CAChM,MAAMC,EAAI,CACR,CAAE,KAAM,QAAS,MAAO,4BAA8B,EACtD,CAAE,KAAM,OAAQ,MAAO,cAAgB,EACvC,CAAE,KAAM,UAAW,MAAO,WAAa,EACvCD,EAAI,CAAE,KAAM,OAAQ,MAAO,KAAO,EAAG,CAAE,KAAM,cAAe,MAAO,MAAM,CAC7E,EAAKM,EAAIN,EAAI,UAAUA,CAAC,WAAa,GACnC,MAAO,QAAQa,EAAEZ,CAAC,CAAC,IAAIK,CAAC,GAAGV,CAAC,QAC9B,EAAGmB,EAAKnB,GAAMA,EAAE,QAAQ,qBAAsB,EAAE,EAAE,OAAQoB,EAAI,CAAC,CAC7D,CAAC,eAAgBpB,EACjB,IAAKI,EACL,UAAWC,EACX,UAAWK,EACX,KAAMD,EAAIO,EACV,GAAGV,CACL,IAAM,CACJ,MAAMC,EAAIW,EAAE,CACV,QAASC,EAAEf,EAAE,GAAG,EAChB,MAAOC,CACX,CAAG,EAAGG,EAAIM,EAAEJ,EAAGK,EAAG,GAAGA,CAAC,KAAKN,CAAC,EAAE,EAC5B,OAAuBY,EAAC,IACtB,OACA,CACE,aAAchB,EACd,UAAWG,EACX,cAAeR,EACf,wBAAyB,CAAE,OAAQO,CAAG,EACtC,GAAGD,CACT,CACG,CACH,EACAc,EAAE,YAAc,OCjFhB,MAAMP,EAAI,CACR,KAAM,OACN,IAAK,ksBACL,SAAU,CAAC,MAAM,EACjB,SAAU,WACZ,EAAGZ,EAAKI,GAAsBD,MAAEW,EAAG,CAAE,GAAGV,EAAG,IAAKQ,EAAG,EACnDZ,EAAE,YAAc;;;;iDCDf,UAAY,CAGZ,IAAIqB,EAAS,CAAA,EAAG,eAEhB,SAASC,GAAc,CAGtB,QAFIC,EAAU,GAELf,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAC1C,IAAIgB,EAAM,UAAUhB,CAAC,EACjBgB,IACHD,EAAUE,EAAYF,EAASG,EAAWF,CAAG,CAAC,EAElD,CAEE,OAAOD,CACT,CAEC,SAASG,EAAYF,EAAK,CACzB,GAAI,OAAOA,GAAQ,UAAY,OAAOA,GAAQ,SAC7C,OAAOA,EAGR,GAAI,OAAOA,GAAQ,SAClB,MAAO,GAGR,GAAI,MAAM,QAAQA,CAAG,EACpB,OAAOF,EAAW,MAAM,KAAME,CAAG,EAGlC,GAAIA,EAAI,WAAa,OAAO,UAAU,UAAY,CAACA,EAAI,SAAS,SAAQ,EAAG,SAAS,eAAe,EAClG,OAAOA,EAAI,SAAU,EAGtB,IAAID,EAAU,GAEd,QAASI,KAAOH,EACXH,EAAO,KAAKG,EAAKG,CAAG,GAAKH,EAAIG,CAAG,IACnCJ,EAAUE,EAAYF,EAASI,CAAG,GAIpC,OAAOJ,CACT,CAEC,SAASE,EAAaG,EAAOC,EAAU,CACtC,OAAKA,EAIDD,EACIA,EAAQ,IAAMC,EAGfD,EAAQC,EAPPD,CAQV,CAEsCE,EAAO,SAC3CR,EAAW,QAAUA,EACrBQ,UAAiBR,GAOjB,OAAO,WAAaA,CAEtB,0kBCnEaS,EAAiC,CAACC,EAAMC,EAAMC,KAAc,CACvE,QAAS,WACT,SAAAA,EACA,KAAAF,EACA,KAAAC,CACF,GAEaE,EAAcC,GACzB,KAAK,UAAU,CACb,WAAY,qBACZ,QAAS,iBACT,gBAAAA,CACF,CAAC,ECsBGC,EAAgB,qBAChBC,EAAgB,yBAEhBC,EAAc,CAAC,CACnB,UAAAC,EACA,SAAAC,EACA,UAAAC,EACA,KAAAC,EAAO,GACP,SAAAC,EAAW,GACX,cAAAC,EAAgB,GAChB,aAAAC,EACA,GAAGC,CACL,IAAwB,CACtB,MAAMxB,EAAUvB,EAAE,CAChB0C,EACAM,EAAOX,CAAa,EACpBW,EAAO,GAAGX,CAAa,KAAKO,EAAW,WAAa,SAAS,EAAE,CAAA,CAChE,EAEKK,EAAWC,EAAAA,SAAS,MAAMT,CAAQ,EAElCU,EAAgC,CAAC,EAEjCC,EAAQF,EAAAA,SAAS,IAAIT,EAAU,CAACR,EAAMoB,IAAU,CACpD,MAAMnB,EAAWmB,EAAQ,EAEnBC,EAAUT,GADHI,IAAaf,EAGpBqB,EAAgBtB,EAAK,MAAM,SAC3BuB,EAAqB,OAAOD,GAAkB,SAAW,KAAOA,EAAc,MAEhF,IAAAvB,EAAO,KACTyB,EAAO,KAEL,OAAA,OAAOF,GAAkB,UACpBvB,EAAAuB,EACPE,EAAOxB,EAAK,MAAM,MACTuB,GAAA,MAAAA,EAAoB,UAAY,OAAOA,GAAA,YAAAA,EAAoB,WAAa,WACjFxB,EAAOwB,EAAmB,SAC1BC,EAAOD,EAAmB,MAGxBxB,GAAQyB,GACVN,EAAc,KAAKpB,EAAaC,EAAMyB,EAAMvB,CAAQ,CAAC,EAGzCwB,eAAazB,EAAM,CAC/B,QAAAqB,EACA,SAAAV,EACA,GAAIV,IAAa,GAAK,CACpB,SAEKyB,EAAA,KAAAC,WAAA,CAAA,SAAA,CAACd,EAIE,KAHDe,EAAA,IAAA,OAAA,CAAK,UAAWb,EAAO,GAAGX,CAAa,QAAQ,EAAG,cAAY,OAC7D,SAACwB,EAAAA,IAAAC,EAAA,CAAS,KAAK,IAAA,CAAK,CACtB,CAAA,EAED7B,EAAK,MAAM,QAAA,CACd,CAAA,CAAA,CAEJ,CACD,CAEM,CACR,EAEK8B,EAASZ,EAAc,SAAWF,EAAWd,EAAWgB,CAAa,EAAI,KAG7E,OAAAQ,OAAC,OAAI,aAAYnB,GAAa,aAAc,UAAWjB,EAAU,GAAGwB,EAClE,SAAA,CAAAc,EAAAA,IAAC,MAAG,UAAWb,EAAO,GAAGX,CAAa,QAAQ,EAAI,SAAMe,CAAA,CAAA,EACvDT,GAAQoB,EACPF,EAAA,IAAC,SAAA,CACC,KAAK,sBACL,cAAY,mBACZ,wBAAyB,CAAE,OAAQE,CAAO,CAAA,CAAA,EAE1C,IAAA,EACN,CAEJ,EAEMC,EAAO,CAAC,CACZ,KAAAP,EACA,CAAC,eAAgBQ,EACjB,SAAAxB,EACA,QAAAa,EAAU,GACV,SAAAV,EAAW,GACX,QAAAsB,EACA,GAAGC,CACL,IAA4B,CAC1B,MAAM5C,EAAUvB,EACd,CAACgD,EAAOV,CAAa,EAAGU,EAAO,GAAGV,CAAa,KAAKM,EAAW,WAAa,SAAS,EAAE,CAAC,EACxF,CACE,CAACI,EAAO,GAAGV,CAAa,WAAW,CAAC,EAAGgB,CAAA,CAE3C,EAEMc,EAAO,IAAM,CACjB,MAAMC,EAAc,CAClB,KAAAZ,EACC,cAAgBQ,EACjB,eAAgBX,EAAU,OAAS,OACnC,QAAAY,CACF,EAUO,OAPLT,GAAQ,OAAOhB,GAAa,SACxB6B,EAAAA,cAAc,IAAKD,EAAa5B,CAAQ,EACxCiB,EAAAA,aAAajB,EAAU,CACrB,GAAG4B,EACH,GAAG5B,EAAS,KAAA,CACb,CAGT,EAEA,aACG,KAAI,CAAA,GAAG0B,EAAM,UAAW5C,EACtB,aACH,CAEJ,EAEAgB,EAAY,KAAOyB","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 } & (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,37 +1,47 @@
1
- import { default as React, ReactElement } from 'react';
1
+ import { default as React, AnchorHTMLAttributes, ForwardRefExoticComponent, ReactElement } from 'react';
2
2
  import { DataAttributes } from './types.ts';
3
3
 
4
- export type BreadcrumbsProps = React.HTMLAttributes<HTMLElement> & DataAttributes & {
5
- ariaLabel?: string;
4
+ type WithMeta = {
5
+ meta?: true;
6
+ baseUrl: string;
7
+ };
8
+ type WithoutMeta = {
9
+ meta: false;
10
+ baseUrl?: never;
11
+ };
12
+ export type BreadcrumbsProps = Omit<React.HTMLAttributes<HTMLElement>, "aria-label"> & DataAttributes & {
13
+ /** Describes the breadcrumb navigation for screen readers, e.g. "Breadcrumbs" or "Breadcrumb navigation". */
14
+ ["aria-label"]: string;
6
15
  children: ReactElement<BreadcrumbsItemProps> | Array<ReactElement<BreadcrumbsItemProps>>;
7
- /** Set to generate breadcrumbs metadata for crawlers. Defaults to true. */
8
- meta?: boolean;
9
16
  /** Set to render the breadcrumbs with light font color. Ideally used when rendered on dark backgrounds. */
10
17
  negative?: boolean;
11
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. */
12
19
  highlightLast?: boolean;
13
20
  /** Set to not render the home icon in front of the first breadcrumb item. */
14
21
  hideHomeIcon?: boolean;
15
- };
16
- type CommonItemProps = Omit<React.HTMLAttributes<HTMLLIElement>, "onClick"> & DataAttributes & {
22
+ linkElement?: ForwardRefExoticComponent<AnchorHTMLAttributes<HTMLAnchorElement>> | "a";
23
+ } & (WithMeta | WithoutMeta);
24
+ export type BreadcrumbsItemProps = Omit<React.HTMLAttributes<HTMLLIElement>, "onClick" | "children"> & DataAttributes & {
25
+ children: string;
26
+ href?: string;
27
+ onClick?: () => void;
28
+ /** @ignore */
17
29
  current?: boolean;
18
- negative?: boolean;
19
- ariaLabel?: string;
30
+ /** @ignore */
31
+ first?: boolean;
32
+ /** @ignore */
33
+ last?: boolean;
34
+ /** @ignore */
35
+ linkElement?: BreadcrumbsProps["linkElement"];
36
+ /** @ignore */
20
37
  meta?: boolean;
21
- onClick?: () => void;
22
- };
23
- export type BreadcrumbsItemProps = CommonItemProps & Conditional;
24
- type Conditional = {
25
- href?: string;
26
- children: string;
27
- } | {
28
- href?: never;
29
- children: ReactElement<HTMLAnchorElement>;
38
+ /** @ignore */
39
+ negative?: boolean;
30
40
  };
31
41
  declare const Breadcrumbs: {
32
- ({ ariaLabel, children, className, meta, negative, highlightLast, hideHomeIcon, ...props }: BreadcrumbsProps): React.JSX.Element;
33
- Item: ({ href, ["data-testid"]: dataTestId, children, current, negative, onClick, ...rest }: BreadcrumbsItemProps) => React.JSX.Element;
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;
34
44
  };
35
- declare const Item: ({ href, ["data-testid"]: dataTestId, children, current, negative, onClick, ...rest }: BreadcrumbsItemProps) => React.JSX.Element;
45
+ declare const Item: ({ href, ["data-testid"]: dataTestId, children, current, linkElement, negative, onClick, first, last, ...props }: BreadcrumbsItemProps) => React.JSX.Element;
36
46
  export { Breadcrumbs, Item as BreadcrumbsItem };
37
47
  //# 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,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,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,GACzE,cAAc,GAAG;IACf,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;AAEJ,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;iGA8EhB,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,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,23 +1,23 @@
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) {
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) {
4
4
  return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
5
5
  }
6
- var N = { exports: {} };
6
+ var S = { 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
12
  var j;
13
- function T() {
13
+ function P() {
14
14
  return j || (j = 1, function(e) {
15
15
  (function() {
16
- var s = {}.hasOwnProperty;
16
+ var u = {}.hasOwnProperty;
17
17
  function n() {
18
18
  for (var r = "", t = 0; t < arguments.length; t++) {
19
- var u = arguments[t];
20
- u && (r = o(r, a.call(this, u)));
19
+ var s = arguments[t];
20
+ s && (r = i(r, a.call(this, s)));
21
21
  }
22
22
  return r;
23
23
  }
@@ -31,19 +31,19 @@ function T() {
31
31
  if (r.toString !== Object.prototype.toString && !r.toString.toString().includes("[native code]"))
32
32
  return r.toString();
33
33
  var t = "";
34
- for (var u in r)
35
- s.call(r, u) && r[u] && (t = o(t, this && this[u] || u));
34
+ for (var s in r)
35
+ u.call(r, s) && r[s] && (t = i(t, this && this[s] || s));
36
36
  return t;
37
37
  }
38
- function o(r, t) {
38
+ function i(r, t) {
39
39
  return t ? r ? r + " " + t : r + t : r;
40
40
  }
41
41
  e.exports ? (n.default = n, e.exports = n) : window.classNames = n;
42
42
  })();
43
- }(N)), N.exports;
43
+ }(S)), S.exports;
44
44
  }
45
- var k = T();
46
- const z = /* @__PURE__ */ Z(k), F = {
45
+ var Z = P();
46
+ const k = /* @__PURE__ */ E(Z), T = {
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,172 +51,185 @@ const z = /* @__PURE__ */ Z(k), F = {
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 = 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 } = {}) => {
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 } = {}) => {
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
- s ? { name: "role", value: "img" } : { name: "aria-hidden", value: "true" }
60
- ], a = s ? `<title>${s}</title>` : "";
61
- return `<svg ${R(n)}>${a}${e}</svg>`;
62
- }, K = (e) => e.replace(/<(\/?)svg([^>]*)>/g, "").trim(), L = ({
59
+ u ? { name: "role", value: "img" } : { name: "aria-hidden", value: "true" }
60
+ ], a = u ? `<title>${u}</title>` : "";
61
+ return `<svg ${J(n)}>${a}${e}</svg>`;
62
+ }, V = (e) => e.replace(/<(\/?)svg([^>]*)>/g, "").trim(), q = ({
63
63
  ["data-testid"]: e,
64
- svg: s,
64
+ svg: u,
65
65
  allyTitle: n,
66
66
  className: a,
67
- size: o = J,
67
+ size: i = F,
68
68
  ...r
69
69
  }) => {
70
- const t = V({
71
- content: K(s.svg),
70
+ const t = R({
71
+ content: V(u.svg),
72
72
  title: n
73
- }), u = D(a, I, `${I}--${o}`);
74
- return /* @__PURE__ */ i(
73
+ }), s = D(a, z, `${z}--${i}`);
74
+ return /* @__PURE__ */ c(
75
75
  "span",
76
76
  {
77
- "aria-label": n,
78
- className: u,
77
+ className: s,
79
78
  "data-testid": e,
80
79
  dangerouslySetInnerHTML: { __html: t },
81
80
  ...r
82
81
  }
83
82
  );
84
83
  };
85
- L.displayName = "Icon";
86
- const Q = {
84
+ q.displayName = "Icon";
85
+ const G = {
87
86
  name: "home",
88
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>',
89
88
  keywords: ["home"],
90
89
  category: "buildings"
91
- }, M = (e) => /* @__PURE__ */ i(L, { ...e, svg: Q });
92
- M.displayName = "IconHome";
93
- function U(e) {
90
+ }, L = (e) => /* @__PURE__ */ c(q, { ...e, svg: G });
91
+ L.displayName = "IconHome";
92
+ function K(e) {
94
93
  return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
95
94
  }
96
- var g = { exports: {} };
95
+ var v = { exports: {} };
97
96
  /*!
98
97
  Copyright (c) 2018 Jed Watson.
99
98
  Licensed under the MIT License (MIT), see
100
99
  http://jedwatson.github.io/classnames
101
100
  */
102
101
  var O;
103
- function W() {
102
+ function Q() {
104
103
  return O || (O = 1, function(e) {
105
104
  (function() {
106
- var s = {}.hasOwnProperty;
105
+ var u = {}.hasOwnProperty;
107
106
  function n() {
108
107
  for (var r = "", t = 0; t < arguments.length; t++) {
109
- var u = arguments[t];
110
- u && (r = o(r, a(u)));
108
+ var s = arguments[t];
109
+ s && (r = i(r, a.call(this, s)));
111
110
  }
112
111
  return r;
113
112
  }
114
113
  function a(r) {
115
114
  if (typeof r == "string" || typeof r == "number")
116
- return r;
115
+ return this && this[r] || r;
117
116
  if (typeof r != "object")
118
117
  return "";
119
118
  if (Array.isArray(r))
120
- return n.apply(null, r);
119
+ return n.apply(this, r);
121
120
  if (r.toString !== Object.prototype.toString && !r.toString.toString().includes("[native code]"))
122
121
  return r.toString();
123
122
  var t = "";
124
- for (var u in r)
125
- s.call(r, u) && r[u] && (t = o(t, u));
123
+ for (var s in r)
124
+ u.call(r, s) && r[s] && (t = i(t, this && this[s] || s));
126
125
  return t;
127
126
  }
128
- function o(r, t) {
127
+ function i(r, t) {
129
128
  return t ? r ? r + " " + t : r + t : r;
130
129
  }
131
130
  e.exports ? (n.default = n, e.exports = n) : window.classNames = n;
132
131
  })();
133
- }(g)), g.exports;
132
+ }(v)), v.exports;
134
133
  }
135
- var X = W();
136
- const B = /* @__PURE__ */ U(X), p = {
137
- "purpur-breadcrumbs": "_purpur-breadcrumbs_1xh80_1",
138
- "purpur-breadcrumbs--default": "_purpur-breadcrumbs--default_1xh80_20",
139
- "purpur-breadcrumbs--negative": "_purpur-breadcrumbs--negative_1xh80_34",
140
- "purpur-breadcrumbs__list": "_purpur-breadcrumbs__list_1xh80_48",
141
- "purpur-breadcrumbs__home": "_purpur-breadcrumbs__home_1xh80_57",
142
- "purpur-breadcrumb-item": "_purpur-breadcrumb-item_1xh80_67",
143
- "purpur-breadcrumb-item--current": "_purpur-breadcrumb-item--current_1xh80_72",
144
- "purpur-breadcrumb-item--negative": "_purpur-breadcrumb-item--negative_1xh80_94"
145
- }, Y = (e, s, n) => ({
146
- "@type": "ListItem",
147
- position: n,
148
- name: e,
149
- item: s
150
- }), G = (e) => JSON.stringify({
134
+ var U = Q();
135
+ const W = /* @__PURE__ */ K(U), m = {
136
+ "purpur-breadcrumbs": "_purpur-breadcrumbs_13trz_1",
137
+ "purpur-breadcrumbs__list": "_purpur-breadcrumbs__list_13trz_4",
138
+ "purpur-breadcrumb-item": "_purpur-breadcrumb-item_13trz_14",
139
+ "purpur-breadcrumb-item__element": "_purpur-breadcrumb-item__element_13trz_19",
140
+ "purpur-breadcrumb-item__link": "_purpur-breadcrumb-item__link_13trz_28",
141
+ "purpur-breadcrumb-item--default": "_purpur-breadcrumb-item--default_13trz_32",
142
+ "purpur-breadcrumb-item--negative": "_purpur-breadcrumb-item--negative_13trz_46",
143
+ "purpur-breadcrumb-item--current": "_purpur-breadcrumb-item--current_13trz_60",
144
+ "purpur-breadcrumb-item__home": "_purpur-breadcrumb-item__home_13trz_93"
145
+ }, X = (e, u, n) => {
146
+ const a = {
147
+ "@type": "ListItem",
148
+ position: u,
149
+ name: e
150
+ };
151
+ return n && (a.item = n), a;
152
+ }, Y = (e) => JSON.stringify({
151
153
  "@context": "https://schema.org",
152
154
  "@type": "BreadcrumbList",
153
155
  itemListElement: e
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
156
+ }), p = W.bind(m), g = "purpur-breadcrumbs", o = "purpur-breadcrumb-item", rr = ({
157
+ ["aria-label"]: e,
158
+ baseUrl: u,
159
+ children: n,
160
+ className: a,
161
+ linkElement: i = "a",
162
+ meta: r = !0,
163
+ negative: t = !1,
164
+ highlightLast: s = !0,
165
+ hideHomeIcon: d,
166
+ ..._
163
167
  }) => {
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
178
- ] })
179
- }
168
+ const f = p([
169
+ 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
180
180
  });
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(
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(
185
185
  "script",
186
186
  {
187
187
  type: "application/ld+json",
188
188
  "data-testid": "breadcrumbs-meta",
189
- dangerouslySetInnerHTML: { __html: w }
189
+ dangerouslySetInnerHTML: { __html: y }
190
190
  }
191
191
  ) : null
192
192
  ] });
193
193
  }, er = ({
194
194
  href: e,
195
- ["data-testid"]: s,
195
+ ["data-testid"]: u,
196
196
  children: n,
197
197
  current: a = !1,
198
- negative: o = !1,
199
- onClick: r,
200
- ...t
198
+ linkElement: i = "a",
199
+ negative: r = !1,
200
+ onClick: t,
201
+ first: s = !1,
202
+ last: d = !1,
203
+ ..._
201
204
  }) => {
202
- const u = B(
203
- [p[y], p[`${y}--${o ? "negative" : "default"}`]],
205
+ const f = i, l = p(
206
+ [o],
207
+ m[`${o}--${r ? "negative" : "default"}`],
204
208
  {
205
- [p[`${y}--current`]]: a
209
+ [`${o}--current`]: a
206
210
  }
207
211
  );
208
- return /* @__PURE__ */ i("li", { ...t, className: u, children: (() => {
209
- const l = {
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,
222
+ {
210
223
  href: e,
211
- "data-testid": s,
212
- "aria-current": a ? "page" : void 0,
213
- onClick: r
214
- };
215
- return e || typeof n == "string" ? E("a", l, n) : q(n, {
216
- ...l,
217
- ...n.props
218
- });
219
- })() });
224
+ "data-testid": u,
225
+ onClick: t,
226
+ className: p(`${o}__element`, `${o}__link`),
227
+ children: [
228
+ s && /* @__PURE__ */ c("span", { className: m[`${o}__home`], "aria-hidden": "true", children: /* @__PURE__ */ c(L, { size: "xs" }) }),
229
+ n
230
+ ]
231
+ }
232
+ ) });
220
233
  };
221
234
  rr.Item = er;
222
235
  export {