vocs 2.0.5 → 2.0.6
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/internal/sidebar.d.ts +11 -0
- package/dist/internal/sidebar.d.ts.map +1 -1
- package/dist/internal/sidebar.js.map +1 -1
- package/dist/react/internal/Sidebar.d.ts.map +1 -1
- package/dist/react/internal/Sidebar.js +13 -7
- package/dist/react/internal/Sidebar.js.map +1 -1
- package/package.json +1 -1
- package/src/internal/sidebar.test.ts +28 -0
- package/src/internal/sidebar.ts +14 -0
- package/src/react/internal/Sidebar.tsx +30 -6
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
import type { Config } from './config.js';
|
|
2
|
+
export type SidebarItemBadge = string | {
|
|
3
|
+
/** Text displayed inside the badge. */
|
|
4
|
+
text: string;
|
|
5
|
+
/** Visual variant. Defaults to `'info'`. */
|
|
6
|
+
variant?: 'note' | 'info' | 'warning' | 'danger' | 'tip' | 'success' | undefined;
|
|
7
|
+
};
|
|
2
8
|
export type SidebarItem<strict extends boolean = false> = {
|
|
9
|
+
/**
|
|
10
|
+
* Badge rendered to the right of the item text.
|
|
11
|
+
* Pass a string for a default `info` badge, or an object to pick a variant.
|
|
12
|
+
*/
|
|
13
|
+
badge?: SidebarItemBadge | undefined;
|
|
3
14
|
/** Whether or not to disable the sidebar item. */
|
|
4
15
|
disabled?: boolean | undefined;
|
|
5
16
|
/** Whether to open the link in a new tab. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../src/internal/sidebar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,MAAM,MAAM,WAAW,CAAC,MAAM,SAAS,OAAO,GAAG,KAAK,IAAI;IACxD,kDAAkD;IAClD,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC9B,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC9B,iDAAiD;IACjD,KAAK,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,CAAA;IACvC,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC1B,GAAG,CAAC,MAAM,SAAS,IAAI,GACpB;IACE,8DAA8D;IAC9D,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC/B,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC1B,GACD;IACE,8DAA8D;IAC9D,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC/B,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC1B,CAAC,CAAA;AAEN,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC9B,KAAK,EAAE,WAAW,EAAE,CAAA;IACpB,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACzB,CAAA;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,CAU1E;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM;;;;;;;;;;;;EAoDjE;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,OAAO,GAAE,MAAM,CAAC,OAAY,GAAG,MAAM,CAajF;AAED,yBAAiB,MAAM,CAAC;IACtB,KAAY,OAAO,GAAG;QACpB,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;CACF"}
|
|
1
|
+
{"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../src/internal/sidebar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN;IACE,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,CAAA;CACjF,CAAA;AAEL,MAAM,MAAM,WAAW,CAAC,MAAM,SAAS,OAAO,GAAG,KAAK,IAAI;IACxD;;;OAGG;IACH,KAAK,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAA;IACpC,kDAAkD;IAClD,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC9B,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC9B,iDAAiD;IACjD,KAAK,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,CAAA;IACvC,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC1B,GAAG,CAAC,MAAM,SAAS,IAAI,GACpB;IACE,8DAA8D;IAC9D,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC/B,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC1B,GACD;IACE,8DAA8D;IAC9D,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC/B,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC1B,CAAC,CAAA;AAEN,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC9B,KAAK,EAAE,WAAW,EAAE,CAAA;IACpB,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACzB,CAAA;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,CAU1E;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM;;;;;;;;;;;;EAoDjE;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,OAAO,GAAE,MAAM,CAAC,OAAY,GAAG,MAAM,CAajF;AAED,yBAAiB,MAAM,CAAC;IACtB,KAAY,OAAO,GAAG;QACpB,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebar.js","sourceRoot":"","sources":["../../src/internal/sidebar.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sidebar.js","sourceRoot":"","sources":["../../src/internal/sidebar.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../../src/react/internal/Sidebar.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../../src/react/internal/Sidebar.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAa9B,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,2CA6B3C;AAiBD,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,KAAY,KAAK,GAAG;QAClB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC9B,UAAU,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAA;QACrC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;KAClD,CAAA;CACF"}
|
|
@@ -8,6 +8,7 @@ import LucideArrowUpRight from '~icons/lucide/arrow-up-right';
|
|
|
8
8
|
import LucideChevronRight from '~icons/lucide/chevron-right';
|
|
9
9
|
import * as Path from '../../internal/path.js';
|
|
10
10
|
import * as Sidebar_core from '../../internal/sidebar.js';
|
|
11
|
+
import { Badge } from '../Badge.js';
|
|
11
12
|
import { Link } from '../Link.js';
|
|
12
13
|
import { useSidebar } from '../useSidebar.js';
|
|
13
14
|
const maxDepth = 5;
|
|
@@ -22,9 +23,14 @@ function BackLink(props) {
|
|
|
22
23
|
return (_jsxs(Link, { className: "vocs:flex vocs:items-center vocs:gap-1.5 vocs:text-secondary vocs:hover:text-heading vocs:mb-4 vocs:-ml-0.5", "data-v-sidebar-back-link": true, onClick: onNavigate, to: "/", children: [_jsx(LucideArrowLeft, { className: "vocs:size-4" }), _jsx("span", { children: "Back" })] }));
|
|
23
24
|
}
|
|
24
25
|
/** @internal */
|
|
26
|
+
function ItemBadge(props) {
|
|
27
|
+
const badge = typeof props.badge === 'string' ? { text: props.badge } : props.badge;
|
|
28
|
+
return (_jsx(Badge, { className: "vocs:shrink-0 vocs:ml-2", "data-v-sidebar-item-badge": true, variant: badge.variant ?? 'info', children: badge.text }));
|
|
29
|
+
}
|
|
30
|
+
/** @internal */
|
|
25
31
|
// biome-ignore lint/correctness/noUnusedVariables: _
|
|
26
32
|
function Item(props) {
|
|
27
|
-
const { condensed = false, depth = 0, disabled, external, link, onNavigate, scrollRef, text, } = props;
|
|
33
|
+
const { badge, condensed = false, depth = 0, disabled, external, link, onNavigate, scrollRef, text, } = props;
|
|
28
34
|
const { path } = useRouter();
|
|
29
35
|
const isExternal = external ?? Path.isExternal(link);
|
|
30
36
|
const active = React.useMemo(() => (isExternal ? false : Path.matches(path, link)), [path, link, isExternal]);
|
|
@@ -56,10 +62,10 @@ function Item(props) {
|
|
|
56
62
|
}, [link, path, scrollRef]);
|
|
57
63
|
if (link && !disabled) {
|
|
58
64
|
if (isExternal)
|
|
59
|
-
return (
|
|
60
|
-
return (
|
|
65
|
+
return (_jsxs("a", { className: Item.className, "data-condensed": condensed && depth > 1, "data-link": true, "data-v-sidebar-item": true, href: link, ref: itemRef, target: "_blank", rel: "noopener noreferrer", onClick: onNavigate, children: [_jsxs("span", { className: "vocs:inline-flex vocs:items-center vocs:gap-1 vocs:min-w-0 vocs:truncate", children: [text, _jsx(LucideArrowUpRight, { className: "vocs:size-3 vocs:shrink-0" })] }), badge && _jsx(ItemBadge, { badge: badge })] }));
|
|
66
|
+
return (_jsxs(Link, { className: Item.className, "data-condensed": condensed && depth > 1, "data-link": true, "data-v-sidebar-item": true, to: link, ref: itemRef, onClick: onNavigate, ...(active && { 'data-active': true }), children: [_jsx("span", { className: "vocs:min-w-0 vocs:truncate", children: text }), badge && _jsx(ItemBadge, { badge: badge })] }));
|
|
61
67
|
}
|
|
62
|
-
return (
|
|
68
|
+
return (_jsxs("div", { "aria-disabled": disabled, className: Item.className, "data-condensed": condensed && depth > 1, "data-link": link ? true : undefined, "data-v-sidebar-item": true, ref: itemRef, children: [_jsx("span", { className: "vocs:min-w-0 vocs:truncate", children: text }), badge && _jsx(ItemBadge, { badge: badge })] }));
|
|
63
69
|
}
|
|
64
70
|
(function (Item) {
|
|
65
71
|
Item.className = 'vocs:flex vocs:data-link:hover:text-heading vocs:not-data-link:cursor-default vocs:justify-between vocs:-mx-3 vocs:px-3 vocs:py-1.5 vocs:text-primary/80 vocs:-my-0.5 vocs:items-center vocs:rounded-md vocs:data-active:bg-accenta3 vocs:data-active:text-accent8! vocs:aria-disabled:opacity-60 vocs:aria-disabled:cursor-not-allowed vocs:aria-disabled:pointer-events-none vocs:data-[condensed=true]:text-[13px] vocs:data-[condensed=true]:py-[0.3rem]';
|
|
@@ -67,7 +73,7 @@ function Item(props) {
|
|
|
67
73
|
/** @internal */
|
|
68
74
|
// biome-ignore lint/correctness/noUnusedVariables: _
|
|
69
75
|
function Section(props) {
|
|
70
|
-
const { condensed = false, depth = 0, link, items, onNavigate, scrollRef, text } = props;
|
|
76
|
+
const { badge, condensed = false, depth = 0, link, items, onNavigate, scrollRef, text } = props;
|
|
71
77
|
const { path } = useRouter();
|
|
72
78
|
const groupLinkIsExternal = link ? Path.isExternal(link) : false;
|
|
73
79
|
const groupLinkIsActive = React.useMemo(() => Boolean(link && !groupLinkIsExternal && Path.matches(path, link)), [groupLinkIsExternal, link, path]);
|
|
@@ -113,7 +119,7 @@ function Section(props) {
|
|
|
113
119
|
if (items)
|
|
114
120
|
return (_jsxs("section", { "data-collapsed": collapsed, "data-v-sidebar-section": true, children: [(() => {
|
|
115
121
|
if (text && link)
|
|
116
|
-
return (_jsxs("div", { className: depth > 0 ? Section.childHeaderClassName : Section.rootHeaderClassName, "data-condensed": condensed && depth > 1, "data-collapsed": collapsed, "data-collapsable": collapsable, "data-v-sidebar-section-header": true, ...(groupLinkIsActive && { 'data-active': true }), children: [_jsx(Link, { className: Section.headerLinkClassName, onClick: onNavigate, to: link, children: _jsxs("span", { className: "vocs:inline-flex vocs:items-center vocs:gap-1", children: [text, groupLinkIsExternal && _jsx(LucideArrowUpRight, { className: "vocs:size-3" })] }) }), collapsable && (_jsx("button", { "aria-expanded": !collapsed, "aria-label": `Toggle ${text} section`, className: "vocs:ml-2 vocs:-mr-1 vocs:shrink-0 vocs:rounded-md vocs:p-1 vocs:text-secondary/80 vocs:hover:text-heading", onClick: () => setCollapsed((x) => !x), type: "button", children: _jsx(LucideChevronRight, { className: "vocs:data-collapsed:rotate-90 vocs:transition-transform vocs:duration-200 vocs:ease-in-out", ...(!collapsed ? { 'data-collapsed': false } : {}) }) }))] }));
|
|
122
|
+
return (_jsxs("div", { className: depth > 0 ? Section.childHeaderClassName : Section.rootHeaderClassName, "data-condensed": condensed && depth > 1, "data-collapsed": collapsed, "data-collapsable": collapsable, "data-v-sidebar-section-header": true, ...(groupLinkIsActive && { 'data-active': true }), children: [_jsx(Link, { className: Section.headerLinkClassName, onClick: onNavigate, to: link, children: _jsxs("span", { className: "vocs:inline-flex vocs:items-center vocs:gap-1", children: [text, groupLinkIsExternal && _jsx(LucideArrowUpRight, { className: "vocs:size-3" })] }) }), badge && _jsx(ItemBadge, { badge: badge }), collapsable && (_jsx("button", { "aria-expanded": !collapsed, "aria-label": `Toggle ${text} section`, className: "vocs:ml-2 vocs:-mr-1 vocs:shrink-0 vocs:rounded-md vocs:p-1 vocs:text-secondary/80 vocs:hover:text-heading", onClick: () => setCollapsed((x) => !x), type: "button", children: _jsx(LucideChevronRight, { className: "vocs:data-collapsed:rotate-90 vocs:transition-transform vocs:duration-200 vocs:ease-in-out", ...(!collapsed ? { 'data-collapsed': false } : {}) }) }))] }));
|
|
117
123
|
// Non-link item is a header.
|
|
118
124
|
if (text)
|
|
119
125
|
return (_jsxs("div", { className: depth > 0 ? Section.childHeaderClassName : Section.rootHeaderClassName, "data-condensed": condensed && depth > 1, "data-collapsed": collapsed, "data-collapsable": collapsable, "data-v-sidebar-section-header": true, ...(collapsable
|
|
@@ -123,7 +129,7 @@ function Section(props) {
|
|
|
123
129
|
onClick: onCollapseInteraction,
|
|
124
130
|
onKeyDown: onCollapseInteraction,
|
|
125
131
|
}
|
|
126
|
-
: {}), children: [text, collapsable && (_jsx("div", { className: "vocs:text-secondary/80", children: _jsx(LucideChevronRight, { className: "vocs:data-collapsed:rotate-90 vocs:transition-transform vocs:duration-200 vocs:ease-in-out", ...(!collapsed ? { 'data-collapsed': false } : {}) }) }))] }));
|
|
132
|
+
: {}), children: [_jsxs("span", { className: "vocs:inline-flex vocs:items-center vocs:min-w-0", children: [_jsx("span", { className: "vocs:truncate", children: text }), badge && _jsx(ItemBadge, { badge: badge })] }), collapsable && (_jsx("div", { className: "vocs:text-secondary/80", children: _jsx(LucideChevronRight, { className: "vocs:data-collapsed:rotate-90 vocs:transition-transform vocs:duration-200 vocs:ease-in-out", ...(!collapsed ? { 'data-collapsed': false } : {}) }) }))] }));
|
|
127
133
|
// Empty header.
|
|
128
134
|
return _jsx("div", { className: "vocs:h-[1em]", "data-empty": true });
|
|
129
135
|
})(), !collapsed && (_jsx("div", { className: depth > 0 ? 'vocs:pl-4 vocs:border-l vocs:border-primary' : '', "data-v-sidebar-section-content": true, children: items.length > 0 &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sidebar.js","sourceRoot":"","sources":["../../../src/react/internal/Sidebar.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Sidebar.js","sourceRoot":"","sources":["../../../src/react/internal/Sidebar.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -130,6 +130,34 @@ describe('flatten', () => {
|
|
|
130
130
|
]
|
|
131
131
|
`)
|
|
132
132
|
})
|
|
133
|
+
|
|
134
|
+
test('preserves badge on flattened items', () => {
|
|
135
|
+
expect(
|
|
136
|
+
flatten([
|
|
137
|
+
{ text: 'A', link: '/a', badge: 'New' },
|
|
138
|
+
{
|
|
139
|
+
text: 'Group',
|
|
140
|
+
items: [{ text: 'B', link: '/b', badge: { text: 'Beta', variant: 'warning' } }],
|
|
141
|
+
},
|
|
142
|
+
]),
|
|
143
|
+
).toMatchInlineSnapshot(`
|
|
144
|
+
[
|
|
145
|
+
{
|
|
146
|
+
"badge": "New",
|
|
147
|
+
"link": "/a",
|
|
148
|
+
"text": "A",
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"badge": {
|
|
152
|
+
"text": "Beta",
|
|
153
|
+
"variant": "warning",
|
|
154
|
+
},
|
|
155
|
+
"link": "/b",
|
|
156
|
+
"text": "B",
|
|
157
|
+
},
|
|
158
|
+
]
|
|
159
|
+
`)
|
|
160
|
+
})
|
|
133
161
|
})
|
|
134
162
|
|
|
135
163
|
describe('fromConfig', () => {
|
package/src/internal/sidebar.ts
CHANGED
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
import type { Config } from './config.js'
|
|
2
2
|
|
|
3
|
+
export type SidebarItemBadge =
|
|
4
|
+
| string
|
|
5
|
+
| {
|
|
6
|
+
/** Text displayed inside the badge. */
|
|
7
|
+
text: string
|
|
8
|
+
/** Visual variant. Defaults to `'info'`. */
|
|
9
|
+
variant?: 'note' | 'info' | 'warning' | 'danger' | 'tip' | 'success' | undefined
|
|
10
|
+
}
|
|
11
|
+
|
|
3
12
|
export type SidebarItem<strict extends boolean = false> = {
|
|
13
|
+
/**
|
|
14
|
+
* Badge rendered to the right of the item text.
|
|
15
|
+
* Pass a string for a default `info` badge, or an object to pick a variant.
|
|
16
|
+
*/
|
|
17
|
+
badge?: SidebarItemBadge | undefined
|
|
4
18
|
/** Whether or not to disable the sidebar item. */
|
|
5
19
|
disabled?: boolean | undefined
|
|
6
20
|
/** Whether to open the link in a new tab. */
|
|
@@ -8,6 +8,7 @@ import LucideArrowUpRight from '~icons/lucide/arrow-up-right'
|
|
|
8
8
|
import LucideChevronRight from '~icons/lucide/chevron-right'
|
|
9
9
|
import * as Path from '../../internal/path.js'
|
|
10
10
|
import * as Sidebar_core from '../../internal/sidebar.js'
|
|
11
|
+
import { Badge } from '../Badge.js'
|
|
11
12
|
import { Link } from '../Link.js'
|
|
12
13
|
import { useSidebar } from '../useSidebar.js'
|
|
13
14
|
|
|
@@ -67,10 +68,25 @@ export declare namespace Sidebar {
|
|
|
67
68
|
}
|
|
68
69
|
}
|
|
69
70
|
|
|
71
|
+
/** @internal */
|
|
72
|
+
function ItemBadge(props: { badge: Sidebar_core.SidebarItemBadge }) {
|
|
73
|
+
const badge = typeof props.badge === 'string' ? { text: props.badge } : props.badge
|
|
74
|
+
return (
|
|
75
|
+
<Badge
|
|
76
|
+
className="vocs:shrink-0 vocs:ml-2"
|
|
77
|
+
data-v-sidebar-item-badge
|
|
78
|
+
variant={badge.variant ?? 'info'}
|
|
79
|
+
>
|
|
80
|
+
{badge.text}
|
|
81
|
+
</Badge>
|
|
82
|
+
)
|
|
83
|
+
}
|
|
84
|
+
|
|
70
85
|
/** @internal */
|
|
71
86
|
// biome-ignore lint/correctness/noUnusedVariables: _
|
|
72
87
|
function Item(props: Item.Props) {
|
|
73
88
|
const {
|
|
89
|
+
badge,
|
|
74
90
|
condensed = false,
|
|
75
91
|
depth = 0,
|
|
76
92
|
disabled,
|
|
@@ -133,10 +149,11 @@ function Item(props: Item.Props) {
|
|
|
133
149
|
rel="noopener noreferrer"
|
|
134
150
|
onClick={onNavigate}
|
|
135
151
|
>
|
|
136
|
-
<span className="vocs:inline-flex vocs:items-center vocs:gap-1">
|
|
152
|
+
<span className="vocs:inline-flex vocs:items-center vocs:gap-1 vocs:min-w-0 vocs:truncate">
|
|
137
153
|
{text}
|
|
138
|
-
<LucideArrowUpRight className="vocs:size-3" />
|
|
154
|
+
<LucideArrowUpRight className="vocs:size-3 vocs:shrink-0" />
|
|
139
155
|
</span>
|
|
156
|
+
{badge && <ItemBadge badge={badge} />}
|
|
140
157
|
</a>
|
|
141
158
|
)
|
|
142
159
|
return (
|
|
@@ -150,7 +167,8 @@ function Item(props: Item.Props) {
|
|
|
150
167
|
onClick={onNavigate}
|
|
151
168
|
{...(active && { 'data-active': true })}
|
|
152
169
|
>
|
|
153
|
-
{text}
|
|
170
|
+
<span className="vocs:min-w-0 vocs:truncate">{text}</span>
|
|
171
|
+
{badge && <ItemBadge badge={badge} />}
|
|
154
172
|
</Link>
|
|
155
173
|
)
|
|
156
174
|
}
|
|
@@ -163,7 +181,8 @@ function Item(props: Item.Props) {
|
|
|
163
181
|
data-v-sidebar-item
|
|
164
182
|
ref={itemRef as never}
|
|
165
183
|
>
|
|
166
|
-
{text}
|
|
184
|
+
<span className="vocs:min-w-0 vocs:truncate">{text}</span>
|
|
185
|
+
{badge && <ItemBadge badge={badge} />}
|
|
167
186
|
</div>
|
|
168
187
|
)
|
|
169
188
|
}
|
|
@@ -183,7 +202,7 @@ namespace Item {
|
|
|
183
202
|
/** @internal */
|
|
184
203
|
// biome-ignore lint/correctness/noUnusedVariables: _
|
|
185
204
|
function Section(props: Section.Props) {
|
|
186
|
-
const { condensed = false, depth = 0, link, items, onNavigate, scrollRef, text } = props
|
|
205
|
+
const { badge, condensed = false, depth = 0, link, items, onNavigate, scrollRef, text } = props
|
|
187
206
|
|
|
188
207
|
const { path } = useRouter()
|
|
189
208
|
const groupLinkIsExternal = link ? Path.isExternal(link) : false
|
|
@@ -250,6 +269,8 @@ function Section(props: Section.Props) {
|
|
|
250
269
|
</span>
|
|
251
270
|
</Link>
|
|
252
271
|
|
|
272
|
+
{badge && <ItemBadge badge={badge} />}
|
|
273
|
+
|
|
253
274
|
{collapsable && (
|
|
254
275
|
<button
|
|
255
276
|
aria-expanded={!collapsed}
|
|
@@ -285,7 +306,10 @@ function Section(props: Section.Props) {
|
|
|
285
306
|
}
|
|
286
307
|
: {})}
|
|
287
308
|
>
|
|
288
|
-
|
|
309
|
+
<span className="vocs:inline-flex vocs:items-center vocs:min-w-0">
|
|
310
|
+
<span className="vocs:truncate">{text}</span>
|
|
311
|
+
{badge && <ItemBadge badge={badge} />}
|
|
312
|
+
</span>
|
|
289
313
|
|
|
290
314
|
{collapsable && (
|
|
291
315
|
<div className="vocs:text-secondary/80">
|