vocs 2.0.4 → 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.
Files changed (44) hide show
  1. package/dist/internal/config.d.ts +7 -1
  2. package/dist/internal/config.d.ts.map +1 -1
  3. package/dist/internal/config.js +14 -1
  4. package/dist/internal/config.js.map +1 -1
  5. package/dist/internal/icons.d.ts.map +1 -1
  6. package/dist/internal/icons.js +2 -1
  7. package/dist/internal/icons.js.map +1 -1
  8. package/dist/internal/mdx.d.ts.map +1 -1
  9. package/dist/internal/mdx.js +42 -0
  10. package/dist/internal/mdx.js.map +1 -1
  11. package/dist/internal/shiki-transformers.d.ts +9 -0
  12. package/dist/internal/shiki-transformers.d.ts.map +1 -1
  13. package/dist/internal/shiki-transformers.js +37 -1
  14. package/dist/internal/shiki-transformers.js.map +1 -1
  15. package/dist/internal/sidebar.d.ts +11 -0
  16. package/dist/internal/sidebar.d.ts.map +1 -1
  17. package/dist/internal/sidebar.js.map +1 -1
  18. package/dist/internal/twoslash/checker.js +5 -0
  19. package/dist/internal/twoslash/checker.js.map +1 -1
  20. package/dist/react/internal/FileTree.client.d.ts +16 -0
  21. package/dist/react/internal/FileTree.client.d.ts.map +1 -1
  22. package/dist/react/internal/FileTree.client.js +23 -3
  23. package/dist/react/internal/FileTree.client.js.map +1 -1
  24. package/dist/react/internal/FileTree.mdx.d.ts +1 -0
  25. package/dist/react/internal/FileTree.mdx.d.ts.map +1 -1
  26. package/dist/react/internal/FileTree.mdx.js +2 -2
  27. package/dist/react/internal/FileTree.mdx.js.map +1 -1
  28. package/dist/react/internal/Sidebar.d.ts.map +1 -1
  29. package/dist/react/internal/Sidebar.js +13 -7
  30. package/dist/react/internal/Sidebar.js.map +1 -1
  31. package/package.json +1 -1
  32. package/src/internal/config.ts +21 -2
  33. package/src/internal/icons.test.ts +9 -2
  34. package/src/internal/icons.ts +2 -1
  35. package/src/internal/mdx.test.ts +123 -0
  36. package/src/internal/mdx.ts +44 -0
  37. package/src/internal/shiki-transformers.test.ts +29 -0
  38. package/src/internal/shiki-transformers.ts +40 -2
  39. package/src/internal/sidebar.test.ts +28 -0
  40. package/src/internal/sidebar.ts +14 -0
  41. package/src/internal/twoslash/checker.ts +5 -0
  42. package/src/react/internal/FileTree.client.tsx +113 -16
  43. package/src/react/internal/FileTree.mdx.tsx +31 -12
  44. package/src/react/internal/Sidebar.tsx +30 -6
@@ -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
- {text}
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">