@vjdesigns/vjdesigns-ui 2.2.0 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai/llms-full.txt +73 -36
- package/dist/ai/llms.txt +1 -1
- package/dist/ai/registry.json +148 -19
- package/dist/components/data-display/Avatar/Avatar.cjs.js +1 -1
- package/dist/components/data-display/Avatar/Avatar.d.ts +11 -4
- package/dist/components/data-display/Avatar/Avatar.mjs +12 -12
- package/dist/components/data-display/Avatar/Avatar.module.css.cjs.js +1 -1
- package/dist/components/data-display/Avatar/Avatar.module.css.mjs +19 -18
- package/dist/components/data-display/Badge/Badge.cjs.js +1 -1
- package/dist/components/data-display/Badge/Badge.d.ts +7 -2
- package/dist/components/data-display/Badge/Badge.mjs +2 -1
- package/dist/components/data-display/Badge/Badge.module.css.cjs.js +1 -1
- package/dist/components/data-display/Badge/Badge.module.css.mjs +33 -32
- package/dist/components/navigation/Navbar/Navbar.cjs.js +1 -1
- package/dist/components/navigation/Navbar/Navbar.d.ts +65 -2
- package/dist/components/navigation/Navbar/Navbar.mjs +309 -169
- package/dist/components/navigation/Navbar/Navbar.module.css.cjs.js +1 -1
- package/dist/components/navigation/Navbar/Navbar.module.css.mjs +20 -11
- package/dist/i18n/en.cjs.js +1 -1
- package/dist/i18n/en.mjs +1 -0
- package/dist/i18n/types.d.ts +5 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.mjs +35 -35
- package/dist/locales/ar.cjs.js +1 -1
- package/dist/locales/ar.mjs +1 -0
- package/dist/locales/bn.cjs.js +1 -1
- package/dist/locales/bn.mjs +1 -0
- package/dist/locales/cs.cjs.js +1 -1
- package/dist/locales/cs.mjs +1 -0
- package/dist/locales/da.cjs.js +1 -1
- package/dist/locales/da.mjs +1 -0
- package/dist/locales/de.cjs.js +1 -1
- package/dist/locales/de.mjs +1 -0
- package/dist/locales/el.cjs.js +1 -1
- package/dist/locales/el.mjs +1 -0
- package/dist/locales/es.cjs.js +1 -1
- package/dist/locales/es.mjs +1 -0
- package/dist/locales/fa.cjs.js +1 -1
- package/dist/locales/fa.mjs +1 -0
- package/dist/locales/fi.cjs.js +1 -1
- package/dist/locales/fi.mjs +1 -0
- package/dist/locales/fr.cjs.js +1 -1
- package/dist/locales/fr.mjs +1 -0
- package/dist/locales/he.cjs.js +1 -1
- package/dist/locales/he.mjs +1 -0
- package/dist/locales/hi.cjs.js +1 -1
- package/dist/locales/hi.mjs +1 -0
- package/dist/locales/hu.cjs.js +1 -1
- package/dist/locales/hu.mjs +1 -0
- package/dist/locales/id.cjs.js +1 -1
- package/dist/locales/id.mjs +1 -0
- package/dist/locales/it.cjs.js +1 -1
- package/dist/locales/it.mjs +1 -0
- package/dist/locales/ja.cjs.js +1 -1
- package/dist/locales/ja.mjs +1 -0
- package/dist/locales/ko.cjs.js +1 -1
- package/dist/locales/ko.mjs +1 -0
- package/dist/locales/nb.cjs.js +1 -1
- package/dist/locales/nb.mjs +1 -0
- package/dist/locales/nl.cjs.js +1 -1
- package/dist/locales/nl.mjs +1 -0
- package/dist/locales/pl.cjs.js +1 -1
- package/dist/locales/pl.mjs +1 -0
- package/dist/locales/pt-BR.cjs.js +1 -1
- package/dist/locales/pt-BR.mjs +1 -0
- package/dist/locales/ro.cjs.js +1 -1
- package/dist/locales/ro.mjs +1 -0
- package/dist/locales/ru.cjs.js +1 -1
- package/dist/locales/ru.mjs +1 -0
- package/dist/locales/sv.cjs.js +1 -1
- package/dist/locales/sv.mjs +1 -0
- package/dist/locales/th.cjs.js +1 -1
- package/dist/locales/th.mjs +1 -0
- package/dist/locales/tr.cjs.js +1 -1
- package/dist/locales/tr.mjs +1 -0
- package/dist/locales/uk.cjs.js +1 -1
- package/dist/locales/uk.mjs +1 -0
- package/dist/locales/ur.cjs.js +1 -1
- package/dist/locales/ur.mjs +1 -0
- package/dist/locales/vi.cjs.js +1 -1
- package/dist/locales/vi.mjs +1 -0
- package/dist/locales/zh-Hans.cjs.js +1 -1
- package/dist/locales/zh-Hans.mjs +1 -0
- package/dist/locales/zh-Hant.cjs.js +1 -1
- package/dist/locales/zh-Hant.mjs +1 -0
- package/dist/vjdesigns-ui.css +1 -1
- package/package.json +1 -1
|
@@ -73,27 +73,27 @@ var _ = {
|
|
|
73
73
|
md: r.spacingMd,
|
|
74
74
|
lg: r.spacingLg
|
|
75
75
|
}, w = a(null);
|
|
76
|
-
function T({ src: i, alt: a, name: o, size: d, shape: f, tone: p = "neutral", variant: h = "soft", colorFromName: C = !1, status: T, statusLabel: E,
|
|
77
|
-
let F = e(), I = s(w),
|
|
76
|
+
function T({ src: i, alt: a, name: o, size: d, shape: f, tone: p = "neutral", variant: h = "soft", colorFromName: C = !1, status: T, statusLabel: E, bordered: D = !1, ring: O = !1, ringTone: k = "accent", decorative: ee = !1, icon: te, imgProps: A, onImageStatusChange: j, className: M, "aria-label": N, "aria-labelledby": P, ...ne }) {
|
|
77
|
+
let F = e(), I = s(w), re = I?.size ?? d ?? "md", ie = f ?? I?.shape ?? "circle", [L, R] = c(null), z = i ? L?.src === i ? L.status : "loading" : void 0, B = (e) => {
|
|
78
78
|
!i || L?.src === i && L.status === e || (R({
|
|
79
79
|
src: i,
|
|
80
80
|
status: e
|
|
81
|
-
}),
|
|
82
|
-
}, { onLoad: V, onError: H, className: U, ref: W, ...G } =
|
|
81
|
+
}), j?.(e));
|
|
82
|
+
}, { onLoad: V, onError: H, className: U, ref: W, ...G } = A ?? {}, K = (e) => {
|
|
83
83
|
e && e.complete && L?.src !== i && B(e.naturalWidth > 0 ? "loaded" : "error"), typeof W == "function" ? W(e) : W && (W.current = e);
|
|
84
84
|
}, q = (e) => {
|
|
85
85
|
B("loaded"), V?.(e);
|
|
86
86
|
}, J = (e) => {
|
|
87
87
|
B("error"), H?.(e);
|
|
88
|
-
}, Y = m(o),
|
|
88
|
+
}, Y = m(o), ae = C && o?.trim() ? g(o) : p, oe = !!i && z !== "error", X = ee || a === "" && !o, Z = a || o?.trim() || F.avatar.fallbackName, Q = T ? E ?? F.avatar.status[T] : void 0, se = Q ? `${Z} (${Q})` : Z, ce = X && !Q ? { "aria-hidden": !0 } : X ? {
|
|
89
89
|
role: "img",
|
|
90
90
|
"aria-label": Q
|
|
91
91
|
} : {
|
|
92
92
|
role: "img",
|
|
93
|
-
"aria-label":
|
|
94
|
-
"aria-labelledby":
|
|
93
|
+
"aria-label": P ? N : N === void 0 ? se : ((e) => Q ? `${e} (${Q})` : e)(N),
|
|
94
|
+
"aria-labelledby": P
|
|
95
95
|
}, $;
|
|
96
|
-
return $ =
|
|
96
|
+
return $ = oe ? /* @__PURE__ */ l("img", {
|
|
97
97
|
...G,
|
|
98
98
|
ref: K,
|
|
99
99
|
src: i,
|
|
@@ -104,12 +104,12 @@ function T({ src: i, alt: a, name: o, size: d, shape: f, tone: p = "neutral", va
|
|
|
104
104
|
}) : Y ? /* @__PURE__ */ l("span", {
|
|
105
105
|
className: r.initials,
|
|
106
106
|
children: Y
|
|
107
|
-
}) :
|
|
108
|
-
...
|
|
109
|
-
...
|
|
107
|
+
}) : te ?? /* @__PURE__ */ l(n, { className: r.icon }), /* @__PURE__ */ u("span", {
|
|
108
|
+
...ne,
|
|
109
|
+
...ce,
|
|
110
110
|
"data-status": T,
|
|
111
111
|
"data-image-status": z,
|
|
112
|
-
className: t(r.root, _[
|
|
112
|
+
className: t(r.root, _[re], v[ie], y[h], b[ae], I && r.inGroup, D && r.bordered, O && r.ring, O && x[k], M),
|
|
113
113
|
children: [/* @__PURE__ */ l("span", {
|
|
114
114
|
className: r.face,
|
|
115
115
|
children: $
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=`
|
|
1
|
+
var e=`_root_1mppz_29`,t=`_face_1mppz_65`,n=`_xs_1mppz_93`,r=`_sm_1mppz_101`,i=`_md_1mppz_109`,a=`_lg_1mppz_117`,o=`_xl_1mppz_125`,s=`_size2xl_1mppz_133`,c=`_circle_1mppz_145`,l=`_rounded_1mppz_151`,u=`_square_1mppz_157`,d=`_soft_1mppz_169`,f=`_toneNeutral_1mppz_169`,p=`_tonePrimary_1mppz_171`,m=`_toneAccent_1mppz_173`,h=`_toneSuccess_1mppz_175`,g=`_toneWarning_1mppz_177`,_=`_toneDanger_1mppz_179`,v=`_toneInfo_1mppz_181`,y=`_solid_1mppz_185`,b=`_image_1mppz_217`,x=`_imageLoaded_1mppz_237`,S=`_initials_1mppz_245`,C=`_surplus_1mppz_263`,w=`_icon_1mppz_273`,T=`_inGroup_1mppz_287`,E=`_ring_1mppz_295`,D=`_bordered_1mppz_313`,O=`_ringNeutral_1mppz_349`,k=`_ringPrimary_1mppz_351`,A=`_ringAccent_1mppz_353`,j=`_ringSuccess_1mppz_355`,M=`_ringWarning_1mppz_357`,N=`_ringDanger_1mppz_359`,P=`_ringInfo_1mppz_361`,F=`_status_1mppz_379`,I=`_statusOnline_1mppz_421`,L=`_statusAway_1mppz_429`,R=`_statusBusy_1mppz_461`,z=`_statusOffline_1mppz_491`,B=`_group_1mppz_511`,V=`_spacingSm_1mppz_539`,H=`_spacingMd_1mppz_545`,U=`_spacingLg_1mppz_551`,W={root:e,face:t,xs:n,sm:r,md:i,lg:a,xl:o,size2xl:s,circle:c,rounded:l,square:u,soft:d,toneNeutral:f,tonePrimary:p,toneAccent:m,toneSuccess:h,toneWarning:g,toneDanger:_,toneInfo:v,solid:y,image:b,imageLoaded:x,initials:S,surplus:C,icon:w,inGroup:T,ring:E,bordered:D,ringNeutral:O,ringPrimary:k,ringAccent:A,ringSuccess:j,ringWarning:M,ringDanger:N,ringInfo:P,status:F,statusOnline:I,statusAway:L,statusBusy:R,statusOffline:z,group:B,spacingSm:V,spacingMd:H,spacingLg:U};exports.bordered=D,exports.circle=c,exports.default=W,exports.face=t,exports.group=B,exports.icon=w,exports.image=b,exports.imageLoaded=x,exports.inGroup=T,exports.initials=S,exports.lg=a,exports.md=i,exports.ring=E,exports.ringAccent=A,exports.ringDanger=N,exports.ringInfo=P,exports.ringNeutral=O,exports.ringPrimary=k,exports.ringSuccess=j,exports.ringWarning=M,exports.root=e,exports.rounded=l,exports.size2xl=s,exports.sm=r,exports.soft=d,exports.solid=y,exports.spacingLg=U,exports.spacingMd=H,exports.spacingSm=V,exports.square=u,exports.status=F,exports.statusAway=L,exports.statusBusy=R,exports.statusOffline=z,exports.statusOnline=I,exports.surplus=C,exports.toneAccent=m,exports.toneDanger=_,exports.toneInfo=v,exports.toneNeutral=f,exports.tonePrimary=p,exports.toneSuccess=h,exports.toneWarning=g,exports.xl=o,exports.xs=n;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
//#region src/components/data-display/Avatar/Avatar.module.css
|
|
2
|
-
var e = "
|
|
2
|
+
var e = "_root_1mppz_29", t = "_face_1mppz_65", n = "_xs_1mppz_93", r = "_sm_1mppz_101", i = "_md_1mppz_109", a = "_lg_1mppz_117", o = "_xl_1mppz_125", s = "_size2xl_1mppz_133", c = "_circle_1mppz_145", l = "_rounded_1mppz_151", u = "_square_1mppz_157", d = "_soft_1mppz_169", f = "_toneNeutral_1mppz_169", p = "_tonePrimary_1mppz_171", m = "_toneAccent_1mppz_173", h = "_toneSuccess_1mppz_175", g = "_toneWarning_1mppz_177", _ = "_toneDanger_1mppz_179", v = "_toneInfo_1mppz_181", y = "_solid_1mppz_185", b = "_image_1mppz_217", x = "_imageLoaded_1mppz_237", S = "_initials_1mppz_245", C = "_surplus_1mppz_263", w = "_icon_1mppz_273", T = "_inGroup_1mppz_287", E = "_ring_1mppz_295", D = "_bordered_1mppz_313", O = "_ringNeutral_1mppz_349", k = "_ringPrimary_1mppz_351", A = "_ringAccent_1mppz_353", j = "_ringSuccess_1mppz_355", M = "_ringWarning_1mppz_357", N = "_ringDanger_1mppz_359", P = "_ringInfo_1mppz_361", F = "_status_1mppz_379", I = "_statusOnline_1mppz_421", L = "_statusAway_1mppz_429", R = "_statusBusy_1mppz_461", z = "_statusOffline_1mppz_491", B = "_group_1mppz_511", V = "_spacingSm_1mppz_539", H = "_spacingMd_1mppz_545", U = "_spacingLg_1mppz_551", W = {
|
|
3
3
|
root: e,
|
|
4
4
|
face: t,
|
|
5
5
|
xs: n,
|
|
@@ -27,22 +27,23 @@ var e = "_root_qebz0_25", t = "_face_qebz0_61", n = "_xs_qebz0_89", r = "_sm_qeb
|
|
|
27
27
|
icon: w,
|
|
28
28
|
inGroup: T,
|
|
29
29
|
ring: E,
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
30
|
+
bordered: D,
|
|
31
|
+
ringNeutral: O,
|
|
32
|
+
ringPrimary: k,
|
|
33
|
+
ringAccent: A,
|
|
34
|
+
ringSuccess: j,
|
|
35
|
+
ringWarning: M,
|
|
36
|
+
ringDanger: N,
|
|
37
|
+
ringInfo: P,
|
|
38
|
+
status: F,
|
|
39
|
+
statusOnline: I,
|
|
40
|
+
statusAway: L,
|
|
41
|
+
statusBusy: R,
|
|
42
|
+
statusOffline: z,
|
|
43
|
+
group: B,
|
|
44
|
+
spacingSm: V,
|
|
45
|
+
spacingMd: H,
|
|
46
|
+
spacingLg: U
|
|
46
47
|
};
|
|
47
48
|
//#endregion
|
|
48
|
-
export { c as circle,
|
|
49
|
+
export { D as bordered, c as circle, W as default, t as face, B as group, w as icon, b as image, x as imageLoaded, T as inGroup, S as initials, a as lg, i as md, E as ring, A as ringAccent, N as ringDanger, P as ringInfo, O as ringNeutral, k as ringPrimary, j as ringSuccess, M as ringWarning, e as root, l as rounded, s as size2xl, r as sm, d as soft, y as solid, U as spacingLg, H as spacingMd, V as spacingSm, u as square, F as status, L as statusAway, R as statusBusy, z as statusOffline, I as statusOnline, C as surplus, m as toneAccent, _ as toneDanger, v as toneInfo, f as toneNeutral, p as tonePrimary, h as toneSuccess, g as toneWarning, o as xl, n as xs };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("../../../utils/cx.cjs.js"),t=require("../../utilities/VisuallyHidden/VisuallyHidden.cjs.js"),n=require("./Badge.module.css.cjs.js");let r=require("react"),i=require("react/jsx-runtime");var a=globalThis.process?.env?.NODE_ENV!==`production`,o={solid:n.default.solid,soft:n.default.soft,outline:n.default.outline},s={neutral:n.default.neutral,primary:n.default.primary,accent:n.default.accent,success:n.default.success,warning:n.default.warning,danger:n.default.danger,info:n.default.info},c={sm:n.default.sm,md:n.default.md,lg:n.default.lg},l={none:n.default.radiusNone,xs:n.default.radiusXs,sm:n.default.radiusSm,md:n.default.radiusMd,lg:n.default.radiusLg,xl:n.default.radiusXl,"2xl":n.default.radius2xl,pill:n.default.radiusPill},u={"top-end":n.default.topEnd,"top-start":n.default.topStart,"bottom-end":n.default.bottomEnd,"bottom-start":n.default.bottomStart},d={rectangle:n.default.overlapRectangle,circle:n.default.overlapCircle};function f(e,t=99){return e>t?`${t}+`:String(e)}var p=e=>typeof e==`number`?`${e}px`:e,m=({variant:r=`soft`,tone:a=`neutral`,size:u=`md`,radius:d=`pill`,count:p,max:m=99,showZero:h=!1,label:g,startIcon:_,dot:v=!1,caps:y=!1,className:b,children:x,...S})=>{let C=p!==void 0;if(C&&p===0&&!h)return null;let w=C?f(p,m):x,T=g!==void 0&&g!==``;return(0,i.jsxs)(`span`,{...S,className:e.cx(n.default.root,o[r],s[a],c[u],l[d],C&&n.default.count,y&&n.default.caps,b),children:[(0,i.jsxs)(`span`,{className:n.default.content,"aria-hidden":T?!0:void 0,children:[v&&(0,i.jsx)(`span`,{className:n.default.dot,"aria-hidden":`true`}),_!=null&&(0,i.jsx)(`span`,{className:n.default.icon,"aria-hidden":`true`,children:_}),w!=null&&w!==``&&(0,i.jsx)(`span`,{className:n.default.label,children:w})]}),T&&(0,i.jsx)(t.VisuallyHidden,{children:g})]})},h=({children:l,variant:m=`solid`,tone:h=`accent`,size:g=`md`,count:_,max:v=99,showZero:y=!1,label:b,dot:x=!1,content:S,placement:C=`top-end`,overlap:w=`rectangle`,offset:T,invisible:E=!1,badgeClassName:D,className:O,style:k,...A})=>{let j=!x&&_!==void 0,M=E||j&&_===0&&!y,N=x?null:j?f(_,v):S,P=b!==void 0&&b!==``&&!M,F=!M&&(x||N!=null)&&(b===void 0||b===``);(0,r.useEffect)(()=>{a&&F&&console.warn('[BadgeAnchor] Pass a `label` (e.g. "3 unread messages") so screen readers get the badge\'s meaning; the visual dot or count is hidden from them.')},[F]);let[I,L]=T===void 0?[void 0,void 0]:Array.isArray(T)?T:[T,T],R=T===void 0?k:{"--badge-offset-x":p(I),"--badge-offset-y":p(L),...k};return(0,i.jsxs)(`span`,{...A,className:e.cx(n.default.anchor,O),style:R,children:[l,(0,i.jsxs)(`span`,{className:e.cx(n.default.root,n.default.anchored,o[m],s[h],c[g],n.default.radiusPill,u[C],d[w],x?n.default.anchoredDot:n.default.count,M&&n.default.invisible,D),"data-state":M?`hidden`:`visible`,children:[!x&&(0,i.jsx)(`span`,{className:n.default.content,"aria-hidden":`true`,children:N!=null&&N!==``&&(0,i.jsx)(`span`,{className:n.default.label,children:N})}),P&&(0,i.jsx)(t.VisuallyHidden,{children:b})]})]})};exports.Badge=m,exports.BadgeAnchor=h,exports.formatBadgeCount=f;
|
|
1
|
+
const e=require("../../../utils/cx.cjs.js"),t=require("../../utilities/VisuallyHidden/VisuallyHidden.cjs.js"),n=require("./Badge.module.css.cjs.js");let r=require("react"),i=require("react/jsx-runtime");var a=globalThis.process?.env?.NODE_ENV!==`production`,o={solid:n.default.solid,soft:n.default.soft,outline:n.default.outline,inverse:n.default.inverse},s={neutral:n.default.neutral,primary:n.default.primary,accent:n.default.accent,success:n.default.success,warning:n.default.warning,danger:n.default.danger,info:n.default.info},c={sm:n.default.sm,md:n.default.md,lg:n.default.lg},l={none:n.default.radiusNone,xs:n.default.radiusXs,sm:n.default.radiusSm,md:n.default.radiusMd,lg:n.default.radiusLg,xl:n.default.radiusXl,"2xl":n.default.radius2xl,pill:n.default.radiusPill},u={"top-end":n.default.topEnd,"top-start":n.default.topStart,"bottom-end":n.default.bottomEnd,"bottom-start":n.default.bottomStart},d={rectangle:n.default.overlapRectangle,circle:n.default.overlapCircle};function f(e,t=99){return e>t?`${t}+`:String(e)}var p=e=>typeof e==`number`?`${e}px`:e,m=({variant:r=`soft`,tone:a=`neutral`,size:u=`md`,radius:d=`pill`,count:p,max:m=99,showZero:h=!1,label:g,startIcon:_,dot:v=!1,caps:y=!1,className:b,children:x,...S})=>{let C=p!==void 0;if(C&&p===0&&!h)return null;let w=C?f(p,m):x,T=g!==void 0&&g!==``;return(0,i.jsxs)(`span`,{...S,className:e.cx(n.default.root,o[r],s[a],c[u],l[d],C&&n.default.count,y&&n.default.caps,b),children:[(0,i.jsxs)(`span`,{className:n.default.content,"aria-hidden":T?!0:void 0,children:[v&&(0,i.jsx)(`span`,{className:n.default.dot,"aria-hidden":`true`}),_!=null&&(0,i.jsx)(`span`,{className:n.default.icon,"aria-hidden":`true`,children:_}),w!=null&&w!==``&&(0,i.jsx)(`span`,{className:n.default.label,children:w})]}),T&&(0,i.jsx)(t.VisuallyHidden,{children:g})]})},h=({children:l,variant:m=`solid`,tone:h=`accent`,size:g=`md`,count:_,max:v=99,showZero:y=!1,label:b,dot:x=!1,content:S,placement:C=`top-end`,overlap:w=`rectangle`,offset:T,invisible:E=!1,badgeClassName:D,className:O,style:k,...A})=>{let j=!x&&_!==void 0,M=E||j&&_===0&&!y,N=x?null:j?f(_,v):S,P=b!==void 0&&b!==``&&!M,F=!M&&(x||N!=null)&&(b===void 0||b===``);(0,r.useEffect)(()=>{a&&F&&console.warn('[BadgeAnchor] Pass a `label` (e.g. "3 unread messages") so screen readers get the badge\'s meaning; the visual dot or count is hidden from them.')},[F]);let[I,L]=T===void 0?[void 0,void 0]:Array.isArray(T)?T:[T,T],R=T===void 0?k:{"--badge-offset-x":p(I),"--badge-offset-y":p(L),...k};return(0,i.jsxs)(`span`,{...A,className:e.cx(n.default.anchor,O),style:R,children:[l,(0,i.jsxs)(`span`,{className:e.cx(n.default.root,n.default.anchored,o[m],s[h],c[g],n.default.radiusPill,u[C],d[w],x?n.default.anchoredDot:n.default.count,M&&n.default.invisible,D),"data-state":M?`hidden`:`visible`,children:[!x&&(0,i.jsx)(`span`,{className:n.default.content,"aria-hidden":`true`,children:N!=null&&N!==``&&(0,i.jsx)(`span`,{className:n.default.label,children:N})}),P&&(0,i.jsx)(t.VisuallyHidden,{children:b})]})]})};exports.Badge=m,exports.BadgeAnchor=h,exports.formatBadgeCount=f;
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { ComponentPropsWithRef, ReactNode } from 'react';
|
|
2
2
|
import { Radius, Size, Tone } from '../../../types/common';
|
|
3
|
-
/**
|
|
4
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Visual style of a badge. Semantic color is set separately with `tone`.
|
|
5
|
+
* `inverse` swaps the solid colors (a `--color-on-{tone}` fill with
|
|
6
|
+
* `--color-{tone}` text), for badges on a solid `tone` surface, such as a
|
|
7
|
+
* solid Navbar or a Banner strip.
|
|
8
|
+
*/
|
|
9
|
+
export type BadgeVariant = "solid" | "soft" | "outline" | "inverse";
|
|
5
10
|
/** Corner of the anchor a `BadgeAnchor` badge sits on. Logical: `end` flips in RTL. */
|
|
6
11
|
export type BadgePlacement = "top-end" | "top-start" | "bottom-end" | "bottom-start";
|
|
7
12
|
/**
|
|
@@ -7,7 +7,8 @@ import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
|
7
7
|
var o = globalThis.process?.env?.NODE_ENV !== "production", s = {
|
|
8
8
|
solid: n.solid,
|
|
9
9
|
soft: n.soft,
|
|
10
|
-
outline: n.outline
|
|
10
|
+
outline: n.outline,
|
|
11
|
+
inverse: n.inverse
|
|
11
12
|
}, c = {
|
|
12
13
|
neutral: n.neutral,
|
|
13
14
|
primary: n.primary,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=`
|
|
1
|
+
var e=`_root_54g55_23`,t=`_content_54g55_95`,n=`_label_54g55_107`,r=`_icon_54g55_115`,i=`_dot_54g55_141`,a=`_solid_54g55_163`,o=`_soft_54g55_173`,s=`_outline_54g55_183`,c=`_inverse_54g55_199`,l=`_neutral_54g55_213`,u=`_primary_54g55_229`,d=`_accent_54g55_245`,f=`_success_54g55_261`,p=`_warning_54g55_277`,m=`_danger_54g55_293`,h=`_info_54g55_309`,g=`_sm_54g55_329`,_=`_md_54g55_347`,v=`_lg_54g55_365`,y=`_radiusNone_54g55_387`,b=`_radiusXs_54g55_393`,x=`_radiusSm_54g55_399`,S=`_radiusMd_54g55_405`,C=`_radiusLg_54g55_411`,w=`_radiusXl_54g55_417`,T=`_radius2xl_54g55_423`,E=`_radiusPill_54g55_429`,D=`_count_54g55_443`,O=`_caps_54g55_457`,k=`_anchor_54g55_477`,A=`_anchored_54g55_491`,j=`_anchoredDot_54g55_573`,M=`_overlapRectangle_54g55_647`,N=`_overlapCircle_54g55_653`,P=`_topEnd_54g55_661`,F=`_topStart_54g55_673`,I=`_bottomEnd_54g55_685`,L=`_bottomStart_54g55_697`,R=`_invisible_54g55_733`,z={root:e,content:t,label:n,icon:r,dot:i,solid:a,soft:o,outline:s,inverse:c,neutral:l,primary:u,accent:d,success:f,warning:p,danger:m,info:h,sm:g,md:_,lg:v,radiusNone:y,radiusXs:b,radiusSm:x,radiusMd:S,radiusLg:C,radiusXl:w,radius2xl:T,radiusPill:E,count:D,caps:O,anchor:k,anchored:A,anchoredDot:j,overlapRectangle:M,overlapCircle:N,topEnd:P,topStart:F,bottomEnd:I,bottomStart:L,invisible:R};exports.accent=d,exports.anchor=k,exports.anchored=A,exports.anchoredDot=j,exports.bottomEnd=I,exports.bottomStart=L,exports.caps=O,exports.content=t,exports.count=D,exports.danger=m,exports.default=z,exports.dot=i,exports.icon=r,exports.info=h,exports.inverse=c,exports.invisible=R,exports.label=n,exports.lg=v,exports.md=_,exports.neutral=l,exports.outline=s,exports.overlapCircle=N,exports.overlapRectangle=M,exports.primary=u,exports.radius2xl=T,exports.radiusLg=C,exports.radiusMd=S,exports.radiusNone=y,exports.radiusPill=E,exports.radiusSm=x,exports.radiusXl=w,exports.radiusXs=b,exports.root=e,exports.sm=g,exports.soft=o,exports.solid=a,exports.success=f,exports.topEnd=P,exports.topStart=F,exports.warning=p;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
//#region src/components/data-display/Badge/Badge.module.css
|
|
2
|
-
var e = "
|
|
2
|
+
var e = "_root_54g55_23", t = "_content_54g55_95", n = "_label_54g55_107", r = "_icon_54g55_115", i = "_dot_54g55_141", a = "_solid_54g55_163", o = "_soft_54g55_173", s = "_outline_54g55_183", c = "_inverse_54g55_199", l = "_neutral_54g55_213", u = "_primary_54g55_229", d = "_accent_54g55_245", f = "_success_54g55_261", p = "_warning_54g55_277", m = "_danger_54g55_293", h = "_info_54g55_309", g = "_sm_54g55_329", _ = "_md_54g55_347", v = "_lg_54g55_365", y = "_radiusNone_54g55_387", b = "_radiusXs_54g55_393", x = "_radiusSm_54g55_399", S = "_radiusMd_54g55_405", C = "_radiusLg_54g55_411", w = "_radiusXl_54g55_417", T = "_radius2xl_54g55_423", E = "_radiusPill_54g55_429", D = "_count_54g55_443", O = "_caps_54g55_457", k = "_anchor_54g55_477", A = "_anchored_54g55_491", j = "_anchoredDot_54g55_573", M = "_overlapRectangle_54g55_647", N = "_overlapCircle_54g55_653", P = "_topEnd_54g55_661", F = "_topStart_54g55_673", I = "_bottomEnd_54g55_685", L = "_bottomStart_54g55_697", R = "_invisible_54g55_733", z = {
|
|
3
3
|
root: e,
|
|
4
4
|
content: t,
|
|
5
5
|
label: n,
|
|
@@ -8,36 +8,37 @@ var e = "_root_fn6ui_21", t = "_content_fn6ui_93", n = "_label_fn6ui_105", r = "
|
|
|
8
8
|
solid: a,
|
|
9
9
|
soft: o,
|
|
10
10
|
outline: s,
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
11
|
+
inverse: c,
|
|
12
|
+
neutral: l,
|
|
13
|
+
primary: u,
|
|
14
|
+
accent: d,
|
|
15
|
+
success: f,
|
|
16
|
+
warning: p,
|
|
17
|
+
danger: m,
|
|
18
|
+
info: h,
|
|
19
|
+
sm: g,
|
|
20
|
+
md: _,
|
|
21
|
+
lg: v,
|
|
22
|
+
radiusNone: y,
|
|
23
|
+
radiusXs: b,
|
|
24
|
+
radiusSm: x,
|
|
25
|
+
radiusMd: S,
|
|
26
|
+
radiusLg: C,
|
|
27
|
+
radiusXl: w,
|
|
28
|
+
radius2xl: T,
|
|
29
|
+
radiusPill: E,
|
|
30
|
+
count: D,
|
|
31
|
+
caps: O,
|
|
32
|
+
anchor: k,
|
|
33
|
+
anchored: A,
|
|
34
|
+
anchoredDot: j,
|
|
35
|
+
overlapRectangle: M,
|
|
36
|
+
overlapCircle: N,
|
|
37
|
+
topEnd: P,
|
|
38
|
+
topStart: F,
|
|
39
|
+
bottomEnd: I,
|
|
40
|
+
bottomStart: L,
|
|
41
|
+
invisible: R
|
|
41
42
|
};
|
|
42
43
|
//#endregion
|
|
43
|
-
export {
|
|
44
|
+
export { d as accent, k as anchor, A as anchored, j as anchoredDot, I as bottomEnd, L as bottomStart, O as caps, t as content, D as count, m as danger, z as default, i as dot, r as icon, h as info, c as inverse, R as invisible, n as label, v as lg, _ as md, l as neutral, s as outline, N as overlapCircle, M as overlapRectangle, u as primary, T as radius2xl, C as radiusLg, S as radiusMd, y as radiusNone, E as radiusPill, x as radiusSm, w as radiusXl, b as radiusXs, e as root, g as sm, o as soft, a as solid, f as success, P as topEnd, F as topStart, p as warning };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("../../../types/common.cjs.js"),t=require("../../../hooks/useControllableState.cjs.js"),n=require("../../utilities/LocaleProvider/LocaleProvider.cjs.js"),
|
|
1
|
+
const e=require("../../../types/common.cjs.js"),t=require("../../../hooks/useControllableState.cjs.js"),n=require("../../../hooks/useDismiss.cjs.js"),r=require("../../../hooks/useFloatingPosition.cjs.js"),i=require("../../utilities/LocaleProvider/LocaleProvider.cjs.js"),a=require("../../../hooks/useMergedRef.cjs.js"),o=require("../../../utils/responsive.cjs.js"),s=require("../../../utils/cx.cjs.js"),c=require("../../primitives/Button/Button.cjs.js"),l=require("../../primitives/Icon/icons.cjs.js"),u=require("../../layout/Container/Container.cjs.js"),d=require("../../data-display/Badge/Badge.cjs.js"),f=require("../../overlays/Drawer/Drawer.cjs.js"),p=require("./Navbar.module.css.cjs.js");let m=require("react"),h=require("react/jsx-runtime");var g={accent:p.default.activeAccent,primary:p.default.activePrimary,neutral:p.default.activeNeutral},_={surface:p.default.surface,transparent:p.default.transparent,solid:p.default.solid},v={sm:p.default.sm,md:p.default.md,lg:p.default.lg},y={static:p.default.static,sticky:p.default.sticky,fixed:p.default.fixed},b={sm:p.default.collapseSm,md:p.default.collapseMd,lg:p.default.collapseLg},x=(0,m.createContext)(null);function S(e){let t=(0,m.useContext)(x);if(!t)throw Error(`${e} must be used inside <Navbar>.`);return t}var C=(0,m.createContext)(`bar`),w=(0,m.createContext)(null),T=(0,m.createContext)(!1);function E(e){for(let t=e.parentElement;t&&t!==document.body;t=t.parentElement){let{overflowY:e}=getComputedStyle(t);if(e===`auto`||e===`scroll`||e===`overlay`)return t}return document.documentElement}var D=({children:n,variant:r=`surface`,size:o=`md`,position:d=`sticky`,reserveScrollPadding:f=!0,bordered:g=!1,elevated:S=!1,elevateOnScroll:C=!1,contained:w=!0,maxWidth:T=`xl`,collapseBelow:D=`md`,open:O,defaultOpen:k=!1,onOpenChange:A,menuLabel:j,menuTitle:M,menuSide:N=`end`,activeTone:P=`accent`,className:F,ref:I,...L})=>{let R=i.useMessages(),z=j??R.navbar.openMenu,B=M??R.navbar.menu,V=(0,m.useRef)(null),H=a.useMergedRef(V,I);(0,m.useEffect)(()=>{let e=V.current;if(!e||d===`static`||!f)return;let t=d===`fixed`?document.documentElement:E(e),n=t.style.scrollPaddingTop,r=()=>{t.style.scrollPaddingTop=`${e.offsetHeight}px`};r();let i=typeof ResizeObserver>`u`?null:new ResizeObserver(r);return i?.observe(e),()=>{i?.disconnect(),t.style.scrollPaddingTop=n}},[d,f]);let[U,W]=t.useControllableState({value:O,defaultValue:k,onChange:A}),G=`${(0,m.useId)()}-menu`,K=(0,m.useRef)(null),[q,J]=(0,m.useState)(0),[ee,te]=(0,m.useState)(!1),[Y,ne]=(0,m.useState)(null),X=(0,m.useCallback)(()=>(J(e=>e+1),()=>J(e=>e-1)),[]),Z=(0,m.useCallback)(e=>W(e),[W]),Q=(0,m.useRef)(!1);(0,m.useEffect)(()=>{if(!U||typeof window>`u`||!window.matchMedia)return;let t=window.matchMedia(`(min-width: ${e.breakpoints[D]}px)`),n=()=>{t.matches&&(Q.current=!0,Z(!1))};return n(),t.addEventListener(`change`,n),()=>t.removeEventListener(`change`,n)},[U,D,Z]),(0,m.useEffect)(()=>{if(U||!Q.current)return;Q.current=!1;let e=document.activeElement;(!e||e===document.body||document.getElementById(G)?.contains(e))&&K.current?.closest(`header`)?.querySelector(`nav a[href], nav button:not([disabled])`)?.focus()},[U,G]),(0,m.useEffect)(()=>{if(!C||typeof window>`u`)return;let e=0,t=()=>{e=0,te(window.scrollY>0)},n=()=>{e||=window.requestAnimationFrame(t)};return t(),window.addEventListener(`scroll`,n,{passive:!0}),()=>{window.removeEventListener(`scroll`,n),e&&window.cancelAnimationFrame(e)}},[C]);let re=(0,m.useMemo)(()=>({open:U,setOpen:Z,menuId:G,menuTitle:B,menuSide:N,toggleRef:K,registerNav:X,activeTone:P,variant:r,openGroup:Y,setOpenGroup:ne}),[U,Z,G,B,N,X,P,r,Y]),$=C&&ee,ie=q>0;return(0,h.jsx)(x.Provider,{value:re,children:(0,h.jsx)(`header`,{"data-variant":r,...L,ref:H,className:s.cx(p.default.root,_[r],v[o],y[d],b[D],g&&p.default.bordered,(S||$)&&p.default.elevated,$&&p.default.scrolled,F),children:(0,h.jsxs)(u.Container,{size:T,fluid:!w,gutter:`responsive`,className:p.default.inner,children:[n,ie&&(0,h.jsx)(c.IconButton,{ref:K,"aria-label":z,"aria-haspopup":`dialog`,"aria-expanded":U,"aria-controls":U?G:void 0,variant:r===`solid`?`solid`:`ghost`,tone:r===`solid`?`primary`:`neutral`,size:o,className:p.default.toggle,onClick:()=>Z(!U),children:(0,h.jsx)(l.MenuIcon,{})})]})})})};D.displayName=`Navbar`;function O(e){let{as:t,className:n,children:r,...i}=e,a=t!==void 0||i.href!==void 0;return(0,h.jsx)(t??(a?`a`:`div`),{...i,className:s.cx(p.default.brand,a&&p.default.brandLink,n),children:r})}O.displayName=`Navbar.Brand`;var k={start:p.default.alignStart,center:p.default.alignCenter,end:p.default.alignEnd},A=o.responsiveClasses(p.default,`navGap`),j=({children:e,align:t=`start`,gap:n,className:r,style:a,"aria-label":c,"aria-labelledby":l,...u})=>{let d=i.useMessages(),g=c??d.navbar.nav,{open:_,setOpen:v,menuId:y,menuTitle:b,menuSide:x,toggleRef:w,registerNav:T}=S(`Navbar.Nav`);(0,m.useLayoutEffect)(()=>T(),[T]);let E={},D=[];return o.responsiveVars(`navbar-nav-gap`,n,e=>`var(--space-${e})`,A,E,D),(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`nav`,{"aria-label":l?void 0:g,"aria-labelledby":l,...u,className:s.cx(p.default.nav,k[t],...D,r),style:{...E,...a},children:(0,h.jsx)(C.Provider,{value:`bar`,children:(0,h.jsx)(`ul`,{className:p.default.list,children:e})})}),(0,h.jsx)(f.Drawer,{open:_,onOpenChange:v,side:x,size:`sm`,finalFocusRef:w,children:(0,h.jsxs)(f.Drawer.Content,{id:y,children:[(0,h.jsx)(f.Drawer.Header,{children:(0,h.jsx)(f.Drawer.Title,{children:b})}),(0,h.jsx)(f.Drawer.Body,{children:(0,h.jsx)(`nav`,{"aria-label":l?void 0:g,"aria-labelledby":l,children:(0,h.jsx)(C.Provider,{value:`drawer`,children:(0,h.jsx)(`ul`,{className:p.default.drawerList,children:e})})})})]})})]})};j.displayName=`Navbar.Nav`;var M=({className:e,children:t,showIn:n=`both`,ref:r,...i})=>{let a=(0,m.useContext)(C);return n!==`both`&&n!==a?null:(0,h.jsx)(`li`,{...i,ref:a===`drawer`?void 0:r,className:s.cx(p.default.item,a===`drawer`&&p.default.itemDrawer,e),children:(0,h.jsx)(T.Provider,{value:!0,children:t})})};M.displayName=`Navbar.Item`;var N=e=>e!==void 0&&e!==``&&e!==0;function P(e,t,n,r){if(!N(e))return null;let i=r&&n===void 0,a={variant:i?`inverse`:`solid`,tone:i?`primary`:n??`accent`,size:`sm`,label:t};return(0,h.jsxs)(h.Fragment,{children:[` `,(0,h.jsx)(`span`,{className:p.default.linkBadge,children:typeof e==`number`?(0,h.jsx)(d.Badge,{...a,count:e}):(0,h.jsx)(d.Badge,{...a,children:e})})]})}var F={bar:p.default.linkBar,drawer:p.default.linkDrawer,panel:p.default.linkPanel};function I(e){let{as:t,active:n=!1,icon:r,badge:i,badgeLabel:a,badgeTone:o,className:c,children:l,onClick:u,"aria-current":d,ref:f,..._}=e,v=(0,m.useContext)(C),y=(0,m.useContext)(T),b=(0,m.useContext)(x),S=(0,m.useContext)(w),E=t??`a`,D=e=>{u?.(e),v===`drawer`&&b?.setOpen(!1),v===`panel`&&S?.()},O=(0,h.jsxs)(E,{..._,ref:v===`drawer`?void 0:f,"aria-current":n?`page`:d,onClick:D,className:s.cx(p.default.link,F[v],n&&p.default.active,n&&g[b?.activeTone??`accent`],c),children:[r!=null&&(0,h.jsx)(`span`,{className:p.default.linkIcon,"aria-hidden":`true`,children:r}),(0,h.jsx)(`span`,{className:p.default.linkLabel,children:l}),P(i,a,o,v===`bar`&&b?.variant===`solid`)]});return y?O:(0,h.jsx)(`li`,{className:s.cx(p.default.item,v!==`bar`&&p.default.itemDrawer),children:O})}I.displayName=`Navbar.Link`;var L=e=>e?`bottom-end`:`bottom-start`,R=({label:e,icon:i,children:a,active:o=!1,badge:c,badgeLabel:u,badgeTone:d,open:f,defaultOpen:_=!1,onOpenChange:v,disabled:y=!1,className:b,ref:x,...T})=>{let E=(0,m.useContext)(C),D=S(`Navbar.Group`),O=E===`bar`,k=(0,m.useId)(),A=`${k}-list`,j=(0,m.useRef)(null),M=(0,m.useRef)(null),N=(0,m.useRef)(!1),[F,I]=t.useControllableState({value:O?f:void 0,defaultValue:O?_:_||o,onChange:O?v:void 0}),{openGroup:R,setOpenGroup:z}=D;(0,m.useEffect)(()=>{O&&F&&z(k)},[O,F,k,z]),(0,m.useEffect)(()=>{O&&R!==null&&R!==k&&I(!1)},[O,R,k,I]);let B=(0,m.useCallback)(e=>{I(!1),e&&j.current?.focus()},[I]);n.useDismiss([j,M],{active:O&&F,onDismiss:e=>B(e.type===`keydown`)});let[V,H]=(0,m.useState)(!1);(0,m.useLayoutEffect)(()=>{O&&F&&j.current&&H(getComputedStyle(j.current).direction===`rtl`)},[O,F]);let U=r.useFloatingPosition(j,M,{open:O&&F,placement:L(V),offset:4}),W=(0,h.jsxs)(`button`,{ref:j,type:`button`,disabled:y,"aria-expanded":F,"aria-controls":F?A:void 0,onClick:()=>I(!F),className:s.cx(p.default.link,p.default.groupButton,O?p.default.linkBar:p.default.linkDrawer,F&&p.default.groupOpen,o&&p.default.active,o&&g[D.activeTone]),children:[i!=null&&(0,h.jsx)(`span`,{className:p.default.linkIcon,"aria-hidden":`true`,children:i}),(0,h.jsx)(`span`,{className:p.default.linkLabel,children:e}),P(c,u,d,O&&D.variant===`solid`),(0,h.jsx)(`span`,{className:p.default.chevron,"aria-hidden":`true`,children:(0,h.jsx)(l.ChevronDownIcon,{})})]});return O?(0,h.jsxs)(`li`,{...T,ref:x,className:s.cx(p.default.item,b),onPointerDown:()=>{N.current=!0,window.setTimeout(()=>{N.current=!1},0)},onBlur:e=>{let t=e.relatedTarget,n=N.current;N.current=!1,F&&(t?!e.currentTarget.contains(t):!n)&&I(!1)},children:[W,F&&(0,h.jsx)(`div`,{ref:M,className:p.default.panelPositioner,style:U.style,children:(0,h.jsx)(C.Provider,{value:`panel`,children:(0,h.jsx)(w.Provider,{value:()=>B(!1),children:(0,h.jsx)(`ul`,{id:A,className:p.default.panel,children:a})})})})]}):(0,h.jsxs)(`li`,{...T,className:s.cx(p.default.item,p.default.itemDrawer,b),children:[W,F&&(0,h.jsx)(`ul`,{id:A,className:p.default.drawerSubList,children:a})]})};R.displayName=`Navbar.Group`;var z=({className:e,children:t,...n})=>(0,h.jsx)(`div`,{...n,className:s.cx(p.default.actions,e),children:t});z.displayName=`Navbar.Actions`;var B=Object.assign(D,{Brand:O,Nav:j,Item:M,Link:I,Group:R,Actions:z});exports.Navbar=B,exports.NavbarActions=z,exports.NavbarBrand=O,exports.NavbarGroup=R,exports.NavbarItem=M,exports.NavbarLink=I,exports.NavbarNav=j;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ComponentPropsWithRef, ElementType, ReactNode } from 'react';
|
|
2
|
-
import { Responsive, Size, Space } from '../../../types/common';
|
|
2
|
+
import { Responsive, Size, Space, Tone } from '../../../types/common';
|
|
3
3
|
import { ContainerSize } from '../../layout/Container';
|
|
4
4
|
/**
|
|
5
5
|
* Visual style of the bar.
|
|
@@ -178,9 +178,26 @@ interface NavbarLinkOwnProps<C extends ElementType> {
|
|
|
178
178
|
active?: boolean;
|
|
179
179
|
/** Decorative icon before the label. Hidden from assistive technology. */
|
|
180
180
|
icon?: ReactNode;
|
|
181
|
+
/**
|
|
182
|
+
* A count (rendered with `Badge` `count`, capped at 99+, hidden at 0) or a
|
|
183
|
+
* short text such as "New", after the label. It's part of the link's name
|
|
184
|
+
* ("Messages 3"), in the bar and the mobile menu.
|
|
185
|
+
*/
|
|
186
|
+
badge?: NavbarBadgeValue;
|
|
187
|
+
/** Screen-reader text for the badge, e.g. "3 unread messages". Replaces the visible badge text in the accessible name. */
|
|
188
|
+
badgeLabel?: string;
|
|
189
|
+
/**
|
|
190
|
+
* Badge color. By default `accent`, except in the `solid` bar, where the
|
|
191
|
+
* badge takes the bar's own colors swapped (a `Badge` `variant="inverse"`)
|
|
192
|
+
* so it stands out from the bar in both themes. Setting it always gives a
|
|
193
|
+
* solid badge in that tone.
|
|
194
|
+
*/
|
|
195
|
+
badgeTone?: Tone;
|
|
181
196
|
/** The visible label. */
|
|
182
197
|
children?: ReactNode;
|
|
183
198
|
}
|
|
199
|
+
/** A count or short text shown in a link's badge. */
|
|
200
|
+
export type NavbarBadgeValue = number | string;
|
|
184
201
|
/** Props for `Navbar.Link`, typed for the component chosen with `as`. */
|
|
185
202
|
export type NavbarLinkProps<C extends ElementType = "a"> = NavbarLinkOwnProps<C> & Omit<ComponentPropsWithRef<C>, keyof NavbarLinkOwnProps<C>>;
|
|
186
203
|
/**
|
|
@@ -195,6 +212,48 @@ declare function NavbarLink<C extends ElementType = "a">(props: NavbarLinkProps<
|
|
|
195
212
|
declare namespace NavbarLink {
|
|
196
213
|
var displayName: string;
|
|
197
214
|
}
|
|
215
|
+
export interface NavbarGroupProps extends Omit<ComponentPropsWithRef<"li">, "children"> {
|
|
216
|
+
/** The group button's visible label, and its accessible name. */
|
|
217
|
+
label: ReactNode;
|
|
218
|
+
/** Decorative icon before the label. */
|
|
219
|
+
icon?: ReactNode;
|
|
220
|
+
/** The group's `Navbar.Link`s. */
|
|
221
|
+
children?: ReactNode;
|
|
222
|
+
/**
|
|
223
|
+
* One of the group's links is the current page. The button then shows the
|
|
224
|
+
* active look (it doesn't set `aria-current`; the link does), and the
|
|
225
|
+
* group starts open in the mobile menu. @default false
|
|
226
|
+
*/
|
|
227
|
+
active?: boolean;
|
|
228
|
+
/** A count or short text on the group button, like `Navbar.Link`'s `badge`. */
|
|
229
|
+
badge?: NavbarBadgeValue;
|
|
230
|
+
/** Screen-reader text for the badge. */
|
|
231
|
+
badgeLabel?: string;
|
|
232
|
+
/** Badge color. Same default as `Navbar.Link`'s `badgeTone` (inverse on the solid bar). */
|
|
233
|
+
badgeTone?: Tone;
|
|
234
|
+
/** Controlled open state of the dropdown in the bar. */
|
|
235
|
+
open?: boolean;
|
|
236
|
+
/** Initial open state of the dropdown when uncontrolled. @default false */
|
|
237
|
+
defaultOpen?: boolean;
|
|
238
|
+
/** Called with the next open state of the dropdown in the bar. */
|
|
239
|
+
onOpenChange?: (open: boolean) => void;
|
|
240
|
+
/** Disables the group button. @default false */
|
|
241
|
+
disabled?: boolean;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* A group of links under one button, following the WAI-ARIA disclosure
|
|
245
|
+
* navigation pattern (not a `menu`): the button has `aria-expanded`, and the
|
|
246
|
+
* links stay ordinary links in the Tab order.
|
|
247
|
+
*
|
|
248
|
+
* - In the bar: the button opens a dropdown below it. Escape closes it and
|
|
249
|
+
* returns focus to the button; so do a press outside, Tab moving focus out
|
|
250
|
+
* of the group, and activating a link. Opening one group closes the others.
|
|
251
|
+
* - In the mobile menu: an expandable section with the links indented below.
|
|
252
|
+
*/
|
|
253
|
+
declare const NavbarGroup: {
|
|
254
|
+
({ label, icon, children, active, badge, badgeLabel, badgeTone, open: openProp, defaultOpen, onOpenChange, disabled, className, ref, ...rest }: NavbarGroupProps): import("react").JSX.Element;
|
|
255
|
+
displayName: string;
|
|
256
|
+
};
|
|
198
257
|
export interface NavbarActionsProps extends ComponentPropsWithRef<"div"> {
|
|
199
258
|
/** Buttons, an avatar, a theme toggle, a search field. Stays visible at every width, so keep it short on phones. */
|
|
200
259
|
children?: ReactNode;
|
|
@@ -237,9 +296,13 @@ export declare const Navbar: {
|
|
|
237
296
|
displayName: string;
|
|
238
297
|
};
|
|
239
298
|
Link: typeof NavbarLink;
|
|
299
|
+
Group: {
|
|
300
|
+
({ label, icon, children, active, badge, badgeLabel, badgeTone, open: openProp, defaultOpen, onOpenChange, disabled, className, ref, ...rest }: NavbarGroupProps): import("react").JSX.Element;
|
|
301
|
+
displayName: string;
|
|
302
|
+
};
|
|
240
303
|
Actions: {
|
|
241
304
|
({ className, children, ...rest }: NavbarActionsProps): import("react").JSX.Element;
|
|
242
305
|
displayName: string;
|
|
243
306
|
};
|
|
244
307
|
};
|
|
245
|
-
export { NavbarActions, NavbarBrand, NavbarItem, NavbarLink, NavbarNav };
|
|
308
|
+
export { NavbarActions, NavbarBrand, NavbarGroup, NavbarItem, NavbarLink, NavbarNav };
|