@ladder-ui/breadcrumb 0.10.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/LICENSE +21 -0
- package/dist/breadcrumb.css +1 -0
- package/dist/breadcrumb.d.ts +57 -0
- package/dist/breadcrumb.vars.css +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/index.mjs +1 -0
- package/package.json +70 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Ivan Avila
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer components{.lui-breadcrumb{display:block;font-family:var(--lui-font-family);font-size:var(--lui-breadcrumb-font-size)}.lui-breadcrumb__list{display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0}.lui-breadcrumb__item,.lui-breadcrumb__list{align-items:center;gap:var(--lui-breadcrumb-gap)}.lui-breadcrumb__item{display:inline-flex}.lui-breadcrumb__link{color:var(--lui-breadcrumb-text);cursor:pointer;text-decoration:none;transition:var(--lui-breadcrumb-transition)}.lui-breadcrumb__link:hover{color:var(--lui-breadcrumb-text-hover);text-decoration:underline;text-underline-offset:3px}.lui-breadcrumb__link:focus-visible{border-radius:var(--lui-radius-sm,2px);box-shadow:var(--lui-breadcrumb-focus-ring);outline:none}.lui-breadcrumb__page{color:var(--lui-breadcrumb-text-active);cursor:default;font-weight:500}.lui-breadcrumb__separator{align-items:center;color:var(--lui-breadcrumb-separator-color);display:flex;flex-shrink:0;user-select:none}.lui-breadcrumb__separator[aria-hidden=true]{pointer-events:none}.lui-breadcrumb__separator svg{block-size:var(--lui-breadcrumb-ellipsis-size);inline-size:var(--lui-breadcrumb-ellipsis-size)}.lui-breadcrumb__ellipsis{align-items:center;color:var(--lui-breadcrumb-text);cursor:default;display:inline-flex;gap:.25rem;justify-content:center}.lui-breadcrumb__ellipsis svg{block-size:var(--lui-breadcrumb-ellipsis-size);inline-size:var(--lui-breadcrumb-ellipsis-size)}.lui-breadcrumb .sr-only{clip:rect(0,0,0,0);block-size:1px;border-width:0;inline-size:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap}.lui-breadcrumb__dropdown{align-items:center;display:inline-flex;position:relative}.lui-breadcrumb__dropdown-trigger{align-items:center;appearance:none;background:none;border:none;color:var(--lui-breadcrumb-dropdown-trigger-text);cursor:pointer;display:inline-flex;font-family:inherit;font-size:inherit;gap:.25rem;line-height:inherit;margin:0;padding:0;text-decoration:none;transition:var(--lui-breadcrumb-transition)}.lui-breadcrumb__dropdown-trigger:hover{color:var(--lui-breadcrumb-text-hover);text-decoration:underline;text-underline-offset:3px}.lui-breadcrumb__dropdown-trigger:focus-visible{border-radius:var(--lui-radius-sm,2px);box-shadow:var(--lui-breadcrumb-focus-ring);outline:none}.lui-breadcrumb__dropdown-icon{flex-shrink:0;opacity:.55;transition:opacity var(--lui-transition,.15s ease)}@media (prefers-reduced-motion:reduce){.lui-breadcrumb__dropdown-icon{transition:none}}.lui-breadcrumb__dropdown-trigger:hover .lui-breadcrumb__dropdown-icon,.lui-breadcrumb__dropdown-trigger[aria-expanded=true] .lui-breadcrumb__dropdown-icon{opacity:1}}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { Ref } from "react";
|
|
2
|
+
import React from "react";
|
|
3
|
+
export interface BreadcrumbProps extends React.HTMLAttributes<HTMLElement> {
|
|
4
|
+
ref?: Ref<HTMLElement>;
|
|
5
|
+
}
|
|
6
|
+
export declare function Breadcrumb({ ref, className, children, "aria-label": ariaLabel, ...props }: BreadcrumbProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export declare namespace Breadcrumb {
|
|
8
|
+
var displayName: string;
|
|
9
|
+
}
|
|
10
|
+
export interface BreadcrumbListProps extends React.OlHTMLAttributes<HTMLOListElement> {
|
|
11
|
+
ref?: Ref<HTMLOListElement>;
|
|
12
|
+
}
|
|
13
|
+
export declare function BreadcrumbList({ ref, className, children, ...props }: BreadcrumbListProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export declare namespace BreadcrumbList {
|
|
15
|
+
var displayName: string;
|
|
16
|
+
}
|
|
17
|
+
export interface BreadcrumbItemProps extends React.LiHTMLAttributes<HTMLLIElement> {
|
|
18
|
+
ref?: Ref<HTMLLIElement>;
|
|
19
|
+
}
|
|
20
|
+
export declare function BreadcrumbItem({ ref, className, children, ...props }: BreadcrumbItemProps): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
export declare namespace BreadcrumbItem {
|
|
22
|
+
var displayName: string;
|
|
23
|
+
}
|
|
24
|
+
export interface BreadcrumbLinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {
|
|
25
|
+
ref?: Ref<HTMLAnchorElement>;
|
|
26
|
+
/**
|
|
27
|
+
* When true, renders only the child element and merges BreadcrumbLink
|
|
28
|
+
* class/style onto it — useful for framework-specific routers
|
|
29
|
+
* (e.g. Next.js <Link>, React Router <Link>).
|
|
30
|
+
*/
|
|
31
|
+
asChild?: boolean;
|
|
32
|
+
}
|
|
33
|
+
export declare function BreadcrumbLink({ ref, className, children, href, asChild, target, rel, ...props }: BreadcrumbLinkProps): import("react/jsx-runtime").JSX.Element;
|
|
34
|
+
export declare namespace BreadcrumbLink {
|
|
35
|
+
var displayName: string;
|
|
36
|
+
}
|
|
37
|
+
export interface BreadcrumbPageProps extends React.HTMLAttributes<HTMLSpanElement> {
|
|
38
|
+
ref?: Ref<HTMLSpanElement>;
|
|
39
|
+
}
|
|
40
|
+
export declare function BreadcrumbPage({ ref, className, children, ...props }: BreadcrumbPageProps): import("react/jsx-runtime").JSX.Element;
|
|
41
|
+
export declare namespace BreadcrumbPage {
|
|
42
|
+
var displayName: string;
|
|
43
|
+
}
|
|
44
|
+
export interface BreadcrumbSeparatorProps extends React.LiHTMLAttributes<HTMLLIElement> {
|
|
45
|
+
ref?: Ref<HTMLLIElement>;
|
|
46
|
+
}
|
|
47
|
+
export declare function BreadcrumbSeparator({ ref, className, children, ...props }: BreadcrumbSeparatorProps): import("react/jsx-runtime").JSX.Element;
|
|
48
|
+
export declare namespace BreadcrumbSeparator {
|
|
49
|
+
var displayName: string;
|
|
50
|
+
}
|
|
51
|
+
export interface BreadcrumbEllipsisProps extends React.HTMLAttributes<HTMLSpanElement> {
|
|
52
|
+
ref?: Ref<HTMLSpanElement>;
|
|
53
|
+
}
|
|
54
|
+
export declare function BreadcrumbEllipsis({ ref, className, ...props }: BreadcrumbEllipsisProps): import("react/jsx-runtime").JSX.Element;
|
|
55
|
+
export declare namespace BreadcrumbEllipsis {
|
|
56
|
+
var displayName: string;
|
|
57
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{--lui-breadcrumb-text:var(--lui-text-secondary);--lui-breadcrumb-text-active:var(--lui-text-primary);--lui-breadcrumb-text-hover:var(--lui-text-primary);--lui-breadcrumb-separator-color:var(--lui-text-disabled);--lui-breadcrumb-font-size:var(--lui-text-sm,0.875rem);--lui-breadcrumb-ellipsis-size:1rem;--lui-breadcrumb-gap-base:0.375rem;--lui-breadcrumb-gap:calc(var(--lui-breadcrumb-gap-base)*var(--lui-density-factor, 1));--lui-breadcrumb-focus-ring:0 0 0 2px var(--lui-bg-surface),0 0 0 4px var(--lui-border-focus);--lui-breadcrumb-transition:color var(--lui-transition,150ms ease);--lui-breadcrumb-dropdown-trigger-text:var(--lui-breadcrumb-text)}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { Breadcrumb, type BreadcrumbProps, BreadcrumbList, type BreadcrumbListProps, BreadcrumbItem, type BreadcrumbItemProps, BreadcrumbLink, type BreadcrumbLinkProps, BreadcrumbPage, type BreadcrumbPageProps, BreadcrumbSeparator, type BreadcrumbSeparatorProps, BreadcrumbEllipsis, type BreadcrumbEllipsisProps, } from "./breadcrumb";
|
|
2
|
+
export { Breadcrumb as default } from "./breadcrumb";
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var r=require("react/jsx-runtime"),e=require("@ladder-ui/core/concatClassNames"),a=require("react");function s({ref:a,className:s,children:l,"aria-label":i="breadcrumb",...t}){return r.jsx("nav",{ref:a,"aria-label":i,"data-slot":"breadcrumb",className:e("lui-breadcrumb",s),...t,children:l})}function l({ref:a,className:s,children:l,...i}){return r.jsx("ol",{ref:a,"data-slot":"breadcrumb-list",className:e("lui-breadcrumb__list",s),...i,children:l})}function i({ref:a,className:s,children:l,...i}){return r.jsx("li",{ref:a,"data-slot":"breadcrumb-item",className:e("lui-breadcrumb__item",s),...i,children:l})}function t({ref:s,className:l,children:i,href:t,asChild:c=!1,target:n,rel:d,...o}){const u=e("lui-breadcrumb__link",l);t&&!(r=>/^(https?:\/\/|\/|#)/.test(r))(t)&&(process.env.NODE_ENV,t=void 0);const m="_blank"===n?d??"noopener noreferrer":d;if(c){const r=a.Children.only(i);return a.cloneElement(r,{...o,ref:s,"data-slot":"breadcrumb-link",className:e(u,String(r.props.className??"")),href:t,target:n,rel:m})}return r.jsx("a",{ref:s,"data-slot":"breadcrumb-link",className:u,href:t,target:n,rel:m,...o,children:i})}function c({ref:a,className:s,children:l,...i}){return r.jsx("span",{ref:a,"data-slot":"breadcrumb-page","aria-current":"page","aria-disabled":"true",role:"link",className:e("lui-breadcrumb__page",s),...i,children:l})}function n({ref:a,className:s,children:l,...i}){return r.jsx("li",{ref:a,"data-slot":"breadcrumb-separator","aria-hidden":"true",className:e("lui-breadcrumb__separator",s),...i,children:l??r.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:r.jsx("polyline",{points:"9 18 15 12 9 6"})})})}function d({ref:a,className:s,...l}){return r.jsxs("span",{ref:a,"data-slot":"breadcrumb-ellipsis","aria-hidden":"true",className:e("lui-breadcrumb__ellipsis",s),...l,children:[r.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[r.jsx("circle",{cx:"12",cy:"12",r:"1"}),r.jsx("circle",{cx:"19",cy:"12",r:"1"}),r.jsx("circle",{cx:"5",cy:"12",r:"1"})]}),r.jsx("span",{className:"sr-only",children:"More"})]})}s.displayName="Breadcrumb",l.displayName="BreadcrumbList",i.displayName="BreadcrumbItem",t.displayName="BreadcrumbLink",c.displayName="BreadcrumbPage",n.displayName="BreadcrumbSeparator",d.displayName="BreadcrumbEllipsis",exports.Breadcrumb=s,exports.BreadcrumbEllipsis=d,exports.BreadcrumbItem=i,exports.BreadcrumbLink=t,exports.BreadcrumbList=l,exports.BreadcrumbPage=c,exports.BreadcrumbSeparator=n,exports.default=s;
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as r,jsxs as e}from"react/jsx-runtime";import a from"@ladder-ui/core/concatClassNames";import l from"react";function i({ref:e,className:l,children:i,"aria-label":s="breadcrumb",...t}){return r("nav",{ref:e,"aria-label":s,"data-slot":"breadcrumb",className:a("lui-breadcrumb",l),...t,children:i})}function s({ref:e,className:l,children:i,...s}){return r("ol",{ref:e,"data-slot":"breadcrumb-list",className:a("lui-breadcrumb__list",l),...s,children:i})}function t({ref:e,className:l,children:i,...s}){return r("li",{ref:e,"data-slot":"breadcrumb-item",className:a("lui-breadcrumb__item",l),...s,children:i})}function c({ref:e,className:i,children:s,href:t,asChild:c=!1,target:n,rel:d,...o}){const m=a("lui-breadcrumb__link",i);t&&!(r=>/^(https?:\/\/|\/|#)/.test(r))(t)&&(process.env.NODE_ENV,t=void 0);const u="_blank"===n?d??"noopener noreferrer":d;if(c){const r=l.Children.only(s);return l.cloneElement(r,{...o,ref:e,"data-slot":"breadcrumb-link",className:a(m,String(r.props.className??"")),href:t,target:n,rel:u})}return r("a",{ref:e,"data-slot":"breadcrumb-link",className:m,href:t,target:n,rel:u,...o,children:s})}function n({ref:e,className:l,children:i,...s}){return r("span",{ref:e,"data-slot":"breadcrumb-page","aria-current":"page","aria-disabled":"true",role:"link",className:a("lui-breadcrumb__page",l),...s,children:i})}function d({ref:e,className:l,children:i,...s}){return r("li",{ref:e,"data-slot":"breadcrumb-separator","aria-hidden":"true",className:a("lui-breadcrumb__separator",l),...s,children:i??r("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:r("polyline",{points:"9 18 15 12 9 6"})})})}function o({ref:l,className:i,...s}){return e("span",{ref:l,"data-slot":"breadcrumb-ellipsis","aria-hidden":"true",className:a("lui-breadcrumb__ellipsis",i),...s,children:[e("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[r("circle",{cx:"12",cy:"12",r:"1"}),r("circle",{cx:"19",cy:"12",r:"1"}),r("circle",{cx:"5",cy:"12",r:"1"})]}),r("span",{className:"sr-only",children:"More"})]})}i.displayName="Breadcrumb",s.displayName="BreadcrumbList",t.displayName="BreadcrumbItem",c.displayName="BreadcrumbLink",n.displayName="BreadcrumbPage",d.displayName="BreadcrumbSeparator",o.displayName="BreadcrumbEllipsis";export{i as Breadcrumb,o as BreadcrumbEllipsis,t as BreadcrumbItem,c as BreadcrumbLink,s as BreadcrumbList,n as BreadcrumbPage,d as BreadcrumbSeparator,i as default};
|
package/package.json
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ladder-ui/breadcrumb",
|
|
3
|
+
"version": "0.10.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"module": "./dist/index.mjs",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"require": "./dist/index.js",
|
|
11
|
+
"import": "./dist/index.mjs",
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"default": "./dist/index.mjs"
|
|
14
|
+
},
|
|
15
|
+
"./*.css": "./dist/*.css",
|
|
16
|
+
"./styles/*.css": "./dist/*.css"
|
|
17
|
+
},
|
|
18
|
+
"files": [
|
|
19
|
+
"dist"
|
|
20
|
+
],
|
|
21
|
+
"keywords": [
|
|
22
|
+
"nodejs",
|
|
23
|
+
"react",
|
|
24
|
+
"ui",
|
|
25
|
+
"components",
|
|
26
|
+
"library",
|
|
27
|
+
"breadcrumb",
|
|
28
|
+
"navigation",
|
|
29
|
+
"wayfinding"
|
|
30
|
+
],
|
|
31
|
+
"author": "Ivan Avila <ivelaval@gmail.com> - https://www.vennet.dev",
|
|
32
|
+
"license": "MIT",
|
|
33
|
+
"repository": {
|
|
34
|
+
"type": "git",
|
|
35
|
+
"url": "https://github.com/ivelaval/ladder-ui.git",
|
|
36
|
+
"directory": "packages/breadcrumb"
|
|
37
|
+
},
|
|
38
|
+
"bugs": {
|
|
39
|
+
"url": "https://github.com/ivelaval/ladder-ui/issues"
|
|
40
|
+
},
|
|
41
|
+
"homepage": "https://github.com/ivelaval/ladder-ui#readme",
|
|
42
|
+
"publishConfig": {
|
|
43
|
+
"access": "public"
|
|
44
|
+
},
|
|
45
|
+
"devDependencies": {
|
|
46
|
+
"@rollup/plugin-typescript": "^11.1.6",
|
|
47
|
+
"@types/react": "^19.0.0",
|
|
48
|
+
"rollup": "^4.59.0",
|
|
49
|
+
"rollup-plugin-postcss": "^4.0.2",
|
|
50
|
+
"sass": "^1.90.0",
|
|
51
|
+
"tslib": "^2.6.2",
|
|
52
|
+
"typescript": "^5.3.3",
|
|
53
|
+
"@ladder-ui/core": "0.10.0"
|
|
54
|
+
},
|
|
55
|
+
"peerDependencies": {
|
|
56
|
+
"@ladder-ui/core": ">=0.0.0",
|
|
57
|
+
"react": ">=18.0.0"
|
|
58
|
+
},
|
|
59
|
+
"sideEffects": [
|
|
60
|
+
"**/*.css"
|
|
61
|
+
],
|
|
62
|
+
"scripts": {
|
|
63
|
+
"build": "pnpm clean && rollup -c",
|
|
64
|
+
"dev": "rollup -c -w",
|
|
65
|
+
"test": "vitest run",
|
|
66
|
+
"test:watch": "vitest",
|
|
67
|
+
"type-check": "tsc --noEmit",
|
|
68
|
+
"clean": "rm -rf dist"
|
|
69
|
+
}
|
|
70
|
+
}
|