@blackwork/docs 0.2.0 → 0.3.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.
Files changed (126) hide show
  1. package/dist/_virtual/_rolldown/runtime.cjs +1 -1
  2. package/dist/config/defaults.cjs +1 -1
  3. package/dist/config/defaults.mjs +1 -1
  4. package/dist/config/define-config.cjs +1 -1
  5. package/dist/config/define-config.mjs +1 -1
  6. package/dist/config/define-docs-config.cjs +1 -1
  7. package/dist/config/define-docs-config.mjs +1 -1
  8. package/dist/config/load-content-config.cjs +1 -1
  9. package/dist/config/load-content-config.mjs +1 -1
  10. package/dist/config/types.d.mts +11 -1
  11. package/dist/config/types.d.ts +11 -1
  12. package/dist/export/process-exported-docs.cjs +1 -1
  13. package/dist/export/process-exported-docs.mjs +1 -1
  14. package/dist/index.cjs +1 -1
  15. package/dist/index.d.mts +1 -1
  16. package/dist/index.d.ts +1 -1
  17. package/dist/index.mjs +1 -1
  18. package/dist/mdx/default-docs-components.cjs +1 -1
  19. package/dist/mdx/default-docs-components.mjs +1 -1
  20. package/dist/mdx/merge-docs-components.cjs +1 -1
  21. package/dist/mdx/merge-docs-components.mjs +1 -1
  22. package/dist/metadata/create-doc-metadata.cjs +1 -1
  23. package/dist/metadata/create-doc-metadata.d.mts +1 -1
  24. package/dist/metadata/create-doc-metadata.d.ts +1 -1
  25. package/dist/metadata/create-doc-metadata.mjs +1 -1
  26. package/dist/navigation/build-locale-links.cjs +1 -1
  27. package/dist/navigation/build-locale-links.d.mts +1 -1
  28. package/dist/navigation/build-locale-links.d.ts +1 -1
  29. package/dist/navigation/build-locale-links.mjs +1 -1
  30. package/dist/navigation/build-pager.cjs +1 -1
  31. package/dist/navigation/build-pager.mjs +1 -1
  32. package/dist/navigation/build-sidebar.cjs +1 -1
  33. package/dist/navigation/build-sidebar.d.mts +1 -1
  34. package/dist/navigation/build-sidebar.d.ts +1 -1
  35. package/dist/navigation/build-sidebar.mjs +1 -1
  36. package/dist/navigation/resolve-sidebar.cjs +1 -1
  37. package/dist/navigation/resolve-sidebar.mjs +1 -1
  38. package/dist/next/context.cjs +1 -1
  39. package/dist/next/context.mjs +1 -1
  40. package/dist/next/document-lang-sync.cjs +1 -1
  41. package/dist/next/document-lang-sync.mjs +1 -1
  42. package/dist/next/load-doc-content.cjs +1 -1
  43. package/dist/next/load-doc-content.mjs +1 -1
  44. package/dist/next/load-generated-manifest.cjs +1 -1
  45. package/dist/next/load-generated-manifest.mjs +1 -1
  46. package/dist/next/metadata.cjs +1 -1
  47. package/dist/next/metadata.mjs +1 -1
  48. package/dist/next/page.cjs +1 -1
  49. package/dist/next/page.mjs +1 -1
  50. package/dist/next/render-route.cjs +1 -1
  51. package/dist/next/render-route.mjs +1 -1
  52. package/dist/next/resolve-document-lang.cjs +1 -1
  53. package/dist/next/resolve-document-lang.mjs +1 -1
  54. package/dist/next/root-layout.cjs +1 -1
  55. package/dist/next/root-layout.mjs +1 -1
  56. package/dist/next-plugin/generate.cjs +1 -1
  57. package/dist/next-plugin/generate.mjs +1 -1
  58. package/dist/next.cjs +1 -1
  59. package/dist/next.mjs +1 -1
  60. package/dist/routing/build-static-params.cjs +1 -1
  61. package/dist/routing/build-static-params.mjs +1 -1
  62. package/dist/routing/resolve-docs-route.cjs +1 -1
  63. package/dist/routing/resolve-docs-route.mjs +1 -1
  64. package/dist/runtime.cjs +1 -1
  65. package/dist/runtime.mjs +1 -1
  66. package/dist/source/build-docs-source.cjs +1 -1
  67. package/dist/source/build-docs-source.mjs +1 -1
  68. package/dist/source/collect-docs-manifest.cjs +1 -1
  69. package/dist/source/collect-docs-manifest.mjs +1 -1
  70. package/dist/source/create-docs-source-from-manifest.cjs +1 -1
  71. package/dist/source/create-docs-source-from-manifest.mjs +1 -1
  72. package/dist/source/create-docs-source.cjs +1 -1
  73. package/dist/source/create-docs-source.mjs +1 -1
  74. package/dist/theme/components/content-layout.cjs +9 -0
  75. package/dist/theme/components/content-layout.d.mts +15 -0
  76. package/dist/theme/components/content-layout.d.ts +15 -0
  77. package/dist/theme/components/content-layout.mjs +9 -0
  78. package/dist/theme/components/content-shell.cjs +2 -2
  79. package/dist/theme/components/content-shell.d.mts +1 -1
  80. package/dist/theme/components/content-shell.d.ts +1 -1
  81. package/dist/theme/components/content-shell.mjs +2 -2
  82. package/dist/theme/components/docs-rail-scroll-state.cjs +2 -2
  83. package/dist/theme/components/docs-rail-scroll-state.mjs +2 -2
  84. package/dist/theme/components/docs-rail-scroll.cjs +2 -2
  85. package/dist/theme/components/docs-rail-scroll.mjs +2 -2
  86. package/dist/theme/components/docs-scroll-reset.cjs +1 -1
  87. package/dist/theme/components/docs-scroll-reset.mjs +1 -1
  88. package/dist/theme/components/docs-scroll-to-top.cjs +1 -1
  89. package/dist/theme/components/docs-scroll-to-top.mjs +1 -1
  90. package/dist/theme/components/docs-shell.cjs +2 -2
  91. package/dist/theme/components/docs-shell.d.mts +1 -1
  92. package/dist/theme/components/docs-shell.d.ts +1 -1
  93. package/dist/theme/components/docs-shell.mjs +2 -2
  94. package/dist/theme/components/docs-toc-geometry.cjs +1 -1
  95. package/dist/theme/components/docs-toc-geometry.mjs +1 -1
  96. package/dist/theme/components/docs-toc.cjs +2 -2
  97. package/dist/theme/components/docs-toc.d.mts +32 -0
  98. package/dist/theme/components/docs-toc.d.ts +32 -0
  99. package/dist/theme/components/docs-toc.mjs +2 -2
  100. package/dist/theme/components/floating-actions.cjs +1 -1
  101. package/dist/theme/components/floating-actions.mjs +1 -1
  102. package/dist/theme/components/footer.cjs +1 -1
  103. package/dist/theme/components/footer.mjs +1 -1
  104. package/dist/theme/components/header.cjs +1 -1
  105. package/dist/theme/components/header.mjs +1 -1
  106. package/dist/theme/components/home-shell.cjs +1 -1
  107. package/dist/theme/components/home-shell.d.mts +1 -1
  108. package/dist/theme/components/home-shell.d.ts +1 -1
  109. package/dist/theme/components/home-shell.mjs +1 -1
  110. package/dist/theme/components/link.cjs +1 -1
  111. package/dist/theme/components/link.mjs +1 -1
  112. package/dist/theme/components/shell-shared.cjs +2 -2
  113. package/dist/theme/components/shell-shared.mjs +2 -2
  114. package/dist/theme/create-home-data.cjs +1 -1
  115. package/dist/theme/create-home-data.d.mts +1 -1
  116. package/dist/theme/create-home-data.d.ts +1 -1
  117. package/dist/theme/create-home-data.mjs +1 -1
  118. package/dist/theme/slots.cjs +2 -2
  119. package/dist/theme/slots.mjs +2 -2
  120. package/dist/theme/types.d.mts +6 -1
  121. package/dist/theme/types.d.ts +6 -1
  122. package/dist/theme.cjs +2 -2
  123. package/dist/theme.d.mts +4 -2
  124. package/dist/theme.d.ts +4 -2
  125. package/dist/theme.mjs +2 -2
  126. package/package.json +2 -2
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * name: @blackwork/docs
3
- * version: v0.2.0
3
+ * version: v0.3.0
4
4
  * description: Next-first documentation framework for Blackwork projects.
5
5
  * author: chengpeiquan <chengpeiquan@chengpeiquan.com>
6
6
  * homepage: https://chengpeiquan.com
7
7
  * license: MIT
8
8
  */
9
- "use client";import{getDocsFloatingActionStyle as e}from"./floating-actions.mjs";import{buildTocTrackGeometry as t,getTocGuideOffset as n,getTocItemPadding as r}from"./docs-toc-geometry.mjs";import{Button as i,Sheet as a,SheetContent as o,SheetHeader as s,SheetTitle as c,SheetTrigger as l,cn as u}from"blackwork";import{useEffect as d,useId as f,useMemo as p,useRef as m,useState as h}from"react";import{jsx as g,jsxs as _}from"react/jsx-runtime";import{ChevronsLeft as v,Toc as y}from"blackwork/icons";const b=`On This Page`,x=()=>[`relative block py-1.5 pr-3 text-sm text-muted-foreground transition-colors`,`hover:text-foreground data-[active=true]:text-primary`].join(` `),S=(e,t)=>({height:`${e?.height??1}px`,transform:`translateY(${-t}px)`,width:`${e?.width??1}px`}),C=e=>{let t=e?.top??0,n=e?.bottom??0;return{clipPath:`polygon(0 ${t}px, 100% ${t}px, 100% ${n}px, 0 ${n}px)`,opacity:+!!e}},w=(e,t)=>({offsetDistance:`${t?.offsetDistance??0}px`,offsetPath:`path("${e?.path||`M0 0 L0 0`}")`,opacity:+!!t}),T=e=>e.filter(e=>e.active).sort((e,t)=>e.t-t.t).map(e=>e.id),E=(e,t)=>{let n=null,r=1/0;for(let i of e){let e=document.getElementById(i.id);if(!e)continue;let a=Math.abs(e.getBoundingClientRect().top-t);a<r&&(r=a,n=i.id)}return n},D=e=>{let t=Number.parseFloat(e);return Number.isFinite(t)?t:0},O=(e,t)=>{let n=new Map(Array.from(e.querySelectorAll(`a[data-heading-id]`)).map(e=>[e.dataset.headingId??``,e]));return t.flatMap(e=>{let t=n.get(e.id);if(!t)return[];let r=getComputedStyle(t);return[{bottom:t.offsetTop+t.clientHeight-D(r.paddingBottom),depth:e.depth,id:e.id,top:t.offsetTop+D(r.paddingTop)}]})},k=(e,t)=>{if(t.length===0||e.length===0)return[];try{let n=document.createElementNS(`http://www.w3.org/2000/svg`,`path`);n.setAttribute(`d`,t);let r=[],i=n.getTotalLength();return e.forEach((t,a)=>{let o=a>0?r[a-1][1]+(t.top-e[a-1].bottom):t.top;for(;o<i&&n.getPointAtLength(o).y<t.top;)o+=1;r.push([o,o+(t.bottom-t.top)])}),r}catch{return e.map(e=>[e.top,e.bottom])}},A=(e,t)=>{if(!e||!t)return e===t;if(e.height!==t.height||e.path!==t.path||e.width!==t.width||e.positions.length!==t.positions.length||e.itemLineLengths.length!==t.itemLineLengths.length)return!1;for(let n=0;n<e.positions.length;n+=1){let r=e.positions[n],i=t.positions[n];if(r.bottom!==i.bottom||r.depth!==i.depth||r.id!==i.id||r.top!==i.top||r.x!==i.x)return!1}for(let n=0;n<e.itemLineLengths.length;n+=1){let r=e.itemLineLengths[n],i=t.itemLineLengths[n];if(r[0]!==i[0]||r[1]!==i[1])return!1}return!0},j=(e,t)=>!e||!t?e===t:e.bottom===t.bottom&&e.offsetDistance===t.offsetDistance&&e.top===t.top,M=e=>{let t=F(e),[n,r,i]=I(t,e),a=p(()=>new Set(t),[t]),o=f(),[s,c]=h(0);return{activeIdSet:a,listId:o,listRef:n,measurement:r,scrollTop:s,setScrollTop:c,track:i}},N=({activeIdSet:e,headings:t,listClassName:i,listId:a,listRef:o,measurement:s,onSelect:c,scrollTop:l,setScrollTop:d,track:f,wrapperClassName:p})=>_(`div`,{className:u(`relative`,p),children:[_(`div`,{"aria-hidden":`true`,"data-docs-toc-track":`true`,className:`pointer-events-none absolute left-0 top-0 transition-transform duration-150 ease-out`,style:S(s,l),children:[g(`svg`,{"data-docs-toc-track-path":`true`,height:s?.height??1,viewBox:`0 0 ${s?.width??1} ${s?.height??1}`,width:s?.width??1,className:`absolute left-0 top-0 transition-[clip-path,opacity] duration-150 ease-out`,style:C(f),children:g(`path`,{d:s?.path||`M0 0 L0 0`,stroke:`currentColor`,strokeWidth:`1`,fill:`none`,className:`text-primary`})}),g(`span`,{"data-docs-toc-thumb":`true`,className:`absolute left-0 top-0 size-1 rounded-full bg-primary transition-[opacity,offset-distance] duration-150 ease-out`,style:w(s,f)})]}),g(`ol`,{id:a,ref:o,className:u(`flex flex-col overflow-auto py-1 [scrollbar-width:none]`,i),onScroll:e=>{d(e.currentTarget.scrollTop)},children:t.map((i,a)=>{let o=e.has(i.id),s=n(i.depth),l=a>0?n(t[a-1].depth):s,u=a+1<t.length?n(t[a+1].depth):s;return g(`li`,{children:_(`a`,{href:`#${i.id}`,"data-active":o?`true`:`false`,"data-depth":i.depth,"data-heading-id":i.id,className:x(),style:{paddingInlineStart:`${r(i.depth)}px`},onClick:c,children:[s===l?null:g(`svg`,{"aria-hidden":`true`,"data-docs-toc-item-curve":`true`,viewBox:`${Math.min(s,l)} 0 ${Math.abs(l-s)} 12`,className:`pointer-events-none absolute`,style:{height:`12px`,insetInlineStart:`${Math.min(s,l)}px`,top:`-6px`,width:`${Math.abs(l-s)+1}px`,zIndex:-1},children:g(`path`,{d:`M ${l} 0 C ${l} 8 ${s} 4 ${s} 12`,stroke:`currentColor`,strokeWidth:`1`,fill:`none`,className:`text-border`})}),g(`span`,{"aria-hidden":`true`,"data-docs-toc-item-line":`true`,className:`pointer-events-none absolute w-px bg-border`,style:{bottom:s===u?`0px`:`6px`,insetInlineStart:`${s}px`,top:s===l?`0px`:`6px`,zIndex:-1}}),i.title]})},i.id)})})]}),P=(e,t,n)=>{let r=new Set(e),i=t.positions.findIndex(e=>r.has(e.id));if(i===-1)return[null,null];let a=i;t.positions.forEach((e,t)=>{r.has(e.id)&&(a=t)});let o=n?n.startIdx>i||n.endIdx>a||n.startIdx===i&&n.endIdx===a&&n.isUp:!1,s=t.itemLineLengths[i]?.[0]??t.positions[i].top,c=t.itemLineLengths[a]?.[1]??t.positions[a].bottom;return[{bottom:t.positions[a].bottom,offsetDistance:o?s:c,top:t.positions[i].top},{endIdx:a,isUp:o,startIdx:i}]};function F(e){let[t,n]=h([]);return d(()=>{if(e.length===0||typeof document>`u`||typeof IntersectionObserver>`u`)return;let t=new Map(e.map(e=>[e.id,{active:!1,fallback:!1,id:e.id,t:0}])),r=(e=0)=>{for(let e of t.values())e.fallback&&(e.active=!1,e.fallback=!1);let r=T([...t.values()]);if(r.length===0){let n=E([...t.values()],e),i=n?t.get(n):void 0;i&&(i.active=!0,i.fallback=!0,i.t=Date.now(),r=[i.id])}n(r)},i=new IntersectionObserver(e=>{let n=Date.now();for(let r of e){let e=t.get(r.target.id);e&&(e.active!==r.isIntersecting||e.fallback)&&(e.active=r.isIntersecting,e.fallback=!1,e.t=n)}r(e[0]?.rootBounds?.top??0)},{threshold:.9});return e.forEach(e=>{let t=document.getElementById(e.id);t&&i.observe(t)}),r(),()=>{i.disconnect()}},[e]),t}function I(e,n){let r=m(null),[i,a]=h(null),[o,s]=h(null),c=m(null);return d(()=>{let e=r.current;if(!e)return;let i=0,o=()=>{cancelAnimationFrame(i),i=requestAnimationFrame(()=>{let r=t(O(e,n)),i={...r,itemLineLengths:k(r.positions,r.path)};a(e=>A(e,i)?e:i)})},s=typeof ResizeObserver>`u`?null:new ResizeObserver(o);return s?.observe(e),window.addEventListener(`resize`,o),o(),()=>{cancelAnimationFrame(i),s?.disconnect(),window.removeEventListener(`resize`,o)}},[n]),d(()=>{let t=0;return t=requestAnimationFrame(()=>{if(!i||e.length===0){c.current=null,s(e=>e===null?e:null);return}let[t,n]=P(e,i,c.current);c.current=n,s(e=>j(e,t)?e:t)}),()=>{cancelAnimationFrame(t)}},[e,i]),[r,i,o]}const L=({className:e,collapseEnabled:t=!1,defaultCollapsed:n=!1,dock:r=`sticky`,headings:a,minHeadings:o=1})=>{let s=M(a),[c,l]=h(n);return a.length<o?null:g(`aside`,{"data-docs-region":`toc`,"data-docs-toc-collapsible":t?`true`:void 0,"data-docs-toc-collapsed":t?String(c):void 0,className:u(`hidden w-64 xl:block`,r===`sticky`?`shrink-0 xl:self-start xl:sticky xl:top-24`:`xl:fixed xl:top-24`,e),children:_(`nav`,{"aria-label":`On This Page`,className:`flex flex-col gap-3 text-sm`,children:[c?null:_(`div`,{className:u(`flex items-center gap-2`,t?`justify-between`:void 0),children:[g(`p`,{className:`font-medium text-foreground`,children:b}),t?_(i,{type:`button`,variant:`ghost`,size:`icon`,"data-docs-toc-toggle":`true`,"aria-controls":s.listId,"aria-expanded":`true`,title:`Collapse outline`,"aria-label":`Collapse outline`,className:`size-8 shrink-0 text-muted-foreground hover:text-foreground`,onClick:()=>{l(e=>!e)},children:[g(v,{className:`size-4`,"aria-hidden":`true`}),g(`span`,{className:`sr-only`,children:`Collapse outline`})]}):null]}),c?_(i,{type:`button`,"data-docs-toc-panel":`collapsed`,variant:`ghost`,size:`icon`,"aria-label":`Expand outline`,"aria-expanded":`false`,title:`Expand outline`,className:`self-start shrink-0 text-muted-foreground hover:text-foreground`,onClick:()=>{l(!1)},children:[g(y,{className:`size-4`,"aria-hidden":`true`}),g(`span`,{className:`sr-only`,children:`Expand outline`})]}):g(N,{...s,headings:a,listClassName:`max-h-[calc(100dvh-8rem)]`})]})})},R=({className:t,headings:n,minHeadings:r=1})=>{let d=M(n),[f,p]=h(!1);return n.length<r?null:g(`div`,{className:u(`xl:hidden`,t),children:_(a,{open:f,onOpenChange:p,children:[g(l,{asChild:!0,children:_(i,{type:`button`,variant:`outline`,size:`icon`,title:`Open outline`,"aria-label":`Open outline`,"data-docs-toc-mobile-trigger":`true`,className:`fixed border border-input bg-background shadow-sm`,style:e(1),children:[g(y,{className:`size-4`,"aria-hidden":`true`}),g(`span`,{className:`sr-only`,children:`Open outline`})]})}),_(o,{side:`right`,className:`flex h-dvh flex-col gap-0 p-0 sm:max-w-sm`,children:[g(s,{className:`border-b border-border/60 px-6 pb-4 pt-[calc(env(safe-area-inset-top)+1.5rem)] text-left`,children:g(c,{children:b})}),g(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-hidden px-6 pb-[calc(env(safe-area-inset-bottom)+1.5rem)] pt-4`,children:g(N,{...d,headings:n,listClassName:`min-h-0 flex-1`,wrapperClassName:`min-h-0 flex-1`,onSelect:()=>{p(!1)}})})]})]})})};export{L as DefaultDocsToc,R as MobileDocsToc};
9
+ "use client";import{buildTocTrackGeometry as e,getTocGuideOffset as t,getTocItemPadding as n}from"./docs-toc-geometry.mjs";import{getDocsFloatingActionStyle as r}from"./floating-actions.mjs";import{Button as i,Sheet as a,SheetContent as o,SheetHeader as s,SheetTitle as c,SheetTrigger as l,cn as u}from"blackwork";import{useEffect as d,useId as f,useMemo as p,useRef as m,useState as h}from"react";import{jsx as g,jsxs as _}from"react/jsx-runtime";import{Toc as v}from"blackwork/icons";const y=`On This Page`,b=()=>[`relative block py-1.5 pr-3 text-sm text-muted-foreground transition-colors`,`hover:text-foreground data-[active=true]:text-primary`].join(` `),x=(e,t)=>({height:`${e?.height??1}px`,transform:`translateY(${-t}px)`,width:`${e?.width??1}px`}),S=e=>{let t=e?.top??0,n=e?.bottom??0;return{clipPath:`polygon(0 ${t}px, 100% ${t}px, 100% ${n}px, 0 ${n}px)`,opacity:+!!e}},C=(e,t)=>({offsetDistance:`${t?.offsetDistance??0}px`,offsetPath:`path("${e?.path||`M0 0 L0 0`}")`,opacity:+!!t}),w=e=>e.filter(e=>e.active).sort((e,t)=>e.t-t.t).map(e=>e.id),T=(e,t)=>{let n=null,r=1/0;for(let i of e){let e=document.getElementById(i.id);if(!e)continue;let a=Math.abs(e.getBoundingClientRect().top-t);a<r&&(r=a,n=i.id)}return n},E=e=>{let t=Number.parseFloat(e);return Number.isFinite(t)?t:0},D=({itemBottom:e,itemTop:t,margin:n,scrollHeight:r,scrollTop:i,viewportHeight:a})=>{let o=i+n,s=i+a-n,c=Math.max(0,r-a);return t<o?Math.max(0,t-n):e>s?Math.min(c,e-a+n):i},O=(e,t)=>{let n=new Map(Array.from(e.querySelectorAll(`a[data-heading-id]`)).map(e=>[e.dataset.headingId??``,e]));return t.flatMap(e=>{let t=n.get(e.id);if(!t)return[];let r=getComputedStyle(t);return[{bottom:t.offsetTop+t.clientHeight-E(r.paddingBottom),depth:e.depth,id:e.id,top:t.offsetTop+E(r.paddingTop)}]})},k=(e,t)=>{if(t.length===0||e.length===0)return[];try{let n=document.createElementNS(`http://www.w3.org/2000/svg`,`path`);n.setAttribute(`d`,t);let r=[],i=n.getTotalLength();return e.forEach((t,a)=>{let o=a>0?r[a-1][1]+(t.top-e[a-1].bottom):t.top;for(;o<i&&n.getPointAtLength(o).y<t.top;)o+=1;r.push([o,o+(t.bottom-t.top)])}),r}catch{return e.map(e=>[e.top,e.bottom])}},A=(e,t)=>{if(!e||!t)return e===t;if(e.height!==t.height||e.path!==t.path||e.width!==t.width||e.positions.length!==t.positions.length||e.itemLineLengths.length!==t.itemLineLengths.length)return!1;for(let n=0;n<e.positions.length;n+=1){let r=e.positions[n],i=t.positions[n];if(r.bottom!==i.bottom||r.depth!==i.depth||r.id!==i.id||r.top!==i.top||r.x!==i.x)return!1}for(let n=0;n<e.itemLineLengths.length;n+=1){let r=e.itemLineLengths[n],i=t.itemLineLengths[n];if(r[0]!==i[0]||r[1]!==i[1])return!1}return!0},j=(e,t)=>!e||!t?e===t:e.bottom===t.bottom&&e.offsetDistance===t.offsetDistance&&e.top===t.top,M=e=>{let t=F(e),[n,r,i]=I(t,e),a=p(()=>new Set(t),[t]),o=f(),[s,c]=h(0);return{activeIds:t,activeIdSet:a,listId:o,listRef:n,measurement:r,scrollTop:s,setScrollTop:c,track:i}},N=({activeIds:e,activeIdSet:r,headings:i,listClassName:a,listId:o,listRef:s,measurement:c,onSelect:l,scrollTop:f,setScrollTop:p,track:m,wrapperClassName:h})=>(d(()=>{let t=s.current,n=e[0];if(!t||!n)return;let r=Array.from(t.querySelectorAll(`a[data-heading-id]`)).find(e=>e.dataset.headingId===n);if(!r)return;let i=D({itemBottom:r.offsetTop+r.offsetHeight,itemTop:r.offsetTop,margin:16,scrollHeight:t.scrollHeight,scrollTop:t.scrollTop,viewportHeight:t.clientHeight});i!==t.scrollTop&&t.scrollTo({top:i})},[e,s]),_(`div`,{className:u(`relative`,h),children:[_(`div`,{"aria-hidden":`true`,"data-docs-toc-track":`true`,className:`pointer-events-none absolute left-0 top-0 transition-transform duration-150 ease-out`,style:x(c,f),children:[g(`svg`,{"data-docs-toc-track-path":`true`,height:c?.height??1,viewBox:`0 0 ${c?.width??1} ${c?.height??1}`,width:c?.width??1,className:`absolute left-0 top-0 transition-[clip-path,opacity] duration-150 ease-out`,style:S(m),children:g(`path`,{d:c?.path||`M0 0 L0 0`,stroke:`currentColor`,strokeWidth:`1`,fill:`none`,className:`text-primary`})}),g(`span`,{"data-docs-toc-thumb":`true`,className:`absolute left-0 top-0 size-1 rounded-full bg-primary transition-[opacity,offset-distance] duration-150 ease-out`,style:C(c,m)})]}),g(`ol`,{id:o,ref:s,className:u(`flex flex-col overflow-auto py-1 [scrollbar-width:none]`,a),onScroll:e=>{p(e.currentTarget.scrollTop)},children:i.map((e,a)=>{let o=r.has(e.id),s=t(e.depth),c=a>0?t(i[a-1].depth):s,u=a+1<i.length?t(i[a+1].depth):s;return g(`li`,{children:_(`a`,{href:`#${e.id}`,"data-active":o?`true`:`false`,"data-depth":e.depth,"data-heading-id":e.id,className:b(),style:{paddingInlineStart:`${n(e.depth)}px`},onClick:l,children:[s===c?null:g(`svg`,{"aria-hidden":`true`,"data-docs-toc-item-curve":`true`,viewBox:`${Math.min(s,c)} 0 ${Math.abs(c-s)} 12`,className:`pointer-events-none absolute`,style:{height:`12px`,insetInlineStart:`${Math.min(s,c)}px`,top:`-6px`,width:`${Math.abs(c-s)+1}px`,zIndex:-1},children:g(`path`,{d:`M ${c} 0 C ${c} 8 ${s} 4 ${s} 12`,stroke:`currentColor`,strokeWidth:`1`,fill:`none`,className:`text-border`})}),g(`span`,{"aria-hidden":`true`,"data-docs-toc-item-line":`true`,className:`pointer-events-none absolute w-px bg-border`,style:{bottom:s===u?`0px`:`6px`,insetInlineStart:`${s}px`,top:s===c?`0px`:`6px`,zIndex:-1}}),e.title]})},e.id)})})]})),P=(e,t,n)=>{let r=new Set(e),i=t.positions.findIndex(e=>r.has(e.id));if(i===-1)return[null,null];let a=i;t.positions.forEach((e,t)=>{r.has(e.id)&&(a=t)});let o=n?n.startIdx>i||n.endIdx>a||n.startIdx===i&&n.endIdx===a&&n.isUp:!1,s=t.itemLineLengths[i]?.[0]??t.positions[i].top,c=t.itemLineLengths[a]?.[1]??t.positions[a].bottom;return[{bottom:t.positions[a].bottom,offsetDistance:o?s:c,top:t.positions[i].top},{endIdx:a,isUp:o,startIdx:i}]};function F(e){let[t,n]=h([]);return d(()=>{if(e.length===0||typeof document>`u`||typeof IntersectionObserver>`u`)return;let t=new Map(e.map(e=>[e.id,{active:!1,fallback:!1,id:e.id,t:0}])),r=(e=0)=>{for(let e of t.values())e.fallback&&(e.active=!1,e.fallback=!1);let r=w([...t.values()]);if(r.length===0){let n=T([...t.values()],e),i=n?t.get(n):void 0;i&&(i.active=!0,i.fallback=!0,i.t=Date.now(),r=[i.id])}n(r)},i=new IntersectionObserver(e=>{let n=Date.now();for(let r of e){let e=t.get(r.target.id);e&&(e.active!==r.isIntersecting||e.fallback)&&(e.active=r.isIntersecting,e.fallback=!1,e.t=n)}r(e[0]?.rootBounds?.top??0)},{threshold:.9});return e.forEach(e=>{let t=document.getElementById(e.id);t&&i.observe(t)}),r(),()=>{i.disconnect()}},[e]),t}function I(t,n){let r=m(null),[i,a]=h(null),[o,s]=h(null),c=m(null);return d(()=>{let t=r.current;if(!t)return;let i=0,o=()=>{cancelAnimationFrame(i),i=requestAnimationFrame(()=>{let r=e(O(t,n)),i={...r,itemLineLengths:k(r.positions,r.path)};a(e=>A(e,i)?e:i)})},s=typeof ResizeObserver>`u`?null:new ResizeObserver(o);return s?.observe(t),window.addEventListener(`resize`,o),o(),()=>{cancelAnimationFrame(i),s?.disconnect(),window.removeEventListener(`resize`,o)}},[n]),d(()=>{let e=0;return e=requestAnimationFrame(()=>{if(!i||t.length===0){c.current=null,s(e=>e===null?e:null);return}let[e,n]=P(t,i,c.current);c.current=n,s(t=>j(t,e)?t:e)}),()=>{cancelAnimationFrame(e)}},[t,i]),[r,i,o]}const L=({className:e,collapseDirection:t=`left`,collapseLabel:n=`Collapse outline`,collapseEnabled:r=!1,defaultCollapsed:a=!1,dock:o=`sticky`,expandLabel:s=`Expand outline`,headings:c,minHeadings:l=1,title:d=y})=>{let f=M(c),[p,m]=h(a),b=p?s:n,x=t===`right`?`right-0`:`left-0`,S=r?t===`right`?`pr-10`:`pl-10`:void 0;return c.length<l?null:g(`aside`,{"data-docs-region":`toc`,"data-docs-toc-collapsible":r?`true`:void 0,"data-docs-toc-collapsed":r?String(p):void 0,className:u(`hidden w-64 xl:block`,o===`sticky`?`shrink-0 xl:self-start xl:sticky xl:top-24`:`xl:fixed xl:top-24`,e),children:_(`nav`,{"aria-label":d,className:u(`relative flex w-64 flex-col text-sm`,t===`right`?`ml-auto`:void 0),children:[_(`div`,{inert:r&&p?!0:void 0,"aria-hidden":r&&p?!0:void 0,className:u(`flex w-64 flex-col gap-3 overflow-hidden transition-opacity duration-200 ease-out motion-reduce:transition-none`,r&&p?`pointer-events-none opacity-0`:`opacity-100`),children:[g(`p`,{className:u(`font-medium text-foreground`,S),children:d}),g(N,{...f,headings:c,listClassName:`max-h-[calc(100dvh-8rem)]`})]}),r?_(i,{type:`button`,variant:`ghost`,size:`icon`,"data-docs-toc-toggle":`true`,"aria-controls":f.listId,"aria-label":b,"aria-expanded":!p,title:b,className:u(x,`absolute top-0 z-10 shrink-0 text-muted-foreground transition-opacity duration-200 ease-out hover:text-foreground hover:opacity-100 motion-reduce:transition-none`,p?`opacity-100`:`opacity-60`),onClick:()=>{m(e=>!e)},children:[g(v,{className:`size-4`,"aria-hidden":`true`}),g(`span`,{className:`sr-only`,children:b})]}):null]})})},R=({className:e,headings:t,minHeadings:n=1,openLabel:d=`Open outline`,title:f=y})=>{let p=M(t),[m,b]=h(!1);return t.length<n?null:g(`div`,{className:u(`xl:hidden`,e),children:_(a,{open:m,onOpenChange:b,children:[g(l,{asChild:!0,children:_(i,{type:`button`,variant:`outline`,size:`icon`,title:d,"aria-label":d,"data-docs-toc-mobile-trigger":`true`,className:`fixed border border-input bg-background shadow-sm`,style:r(1),children:[g(v,{className:`size-4`,"aria-hidden":`true`}),g(`span`,{className:`sr-only`,children:d})]})}),_(o,{side:`right`,className:`flex h-dvh flex-col gap-0 p-0 sm:max-w-sm`,children:[g(s,{className:`border-b border-border/60 px-6 pb-4 pt-[calc(env(safe-area-inset-top)+1.5rem)] text-left`,children:g(c,{children:f})}),g(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-hidden px-6 pb-[calc(env(safe-area-inset-bottom)+1.5rem)] pt-4`,children:g(N,{...p,headings:t,listClassName:`min-h-0 flex-1`,wrapperClassName:`min-h-0 flex-1`,onSelect:()=>{b(!1)}})})]})]})})};export{L as DefaultDocsToc,R as MobileDocsToc};
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * name: @blackwork/docs
3
- * version: v0.2.0
3
+ * version: v0.3.0
4
4
  * description: Next-first documentation framework for Blackwork projects.
5
5
  * author: chengpeiquan <chengpeiquan@chengpeiquan.com>
6
6
  * homepage: https://chengpeiquan.com
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * name: @blackwork/docs
3
- * version: v0.2.0
3
+ * version: v0.3.0
4
4
  * description: Next-first documentation framework for Blackwork projects.
5
5
  * author: chengpeiquan <chengpeiquan@chengpeiquan.com>
6
6
  * homepage: https://chengpeiquan.com
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * name: @blackwork/docs
3
- * version: v0.2.0
3
+ * version: v0.3.0
4
4
  * description: Next-first documentation framework for Blackwork projects.
5
5
  * author: chengpeiquan <chengpeiquan@chengpeiquan.com>
6
6
  * homepage: https://chengpeiquan.com
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * name: @blackwork/docs
3
- * version: v0.2.0
3
+ * version: v0.3.0
4
4
  * description: Next-first documentation framework for Blackwork projects.
5
5
  * author: chengpeiquan <chengpeiquan@chengpeiquan.com>
6
6
  * homepage: https://chengpeiquan.com
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * name: @blackwork/docs
3
- * version: v0.2.0
3
+ * version: v0.3.0
4
4
  * description: Next-first documentation framework for Blackwork projects.
5
5
  * author: chengpeiquan <chengpeiquan@chengpeiquan.com>
6
6
  * homepage: https://chengpeiquan.com
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * name: @blackwork/docs
3
- * version: v0.2.0
3
+ * version: v0.3.0
4
4
  * description: Next-first documentation framework for Blackwork projects.
5
5
  * author: chengpeiquan <chengpeiquan@chengpeiquan.com>
6
6
  * homepage: https://chengpeiquan.com
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * name: @blackwork/docs
3
- * version: v0.2.0
3
+ * version: v0.3.0
4
4
  * description: Next-first documentation framework for Blackwork projects.
5
5
  * author: chengpeiquan <chengpeiquan@chengpeiquan.com>
6
6
  * homepage: https://chengpeiquan.com
@@ -1,6 +1,6 @@
1
1
 
2
- import { DocsConfig, NormalizedDocsConfig } from "../../config/types.mjs";
3
2
  import { DocsSource } from "../../source/types.mjs";
3
+ import { DocsConfig, NormalizedDocsConfig } from "../../config/types.mjs";
4
4
  import React from "react";
5
5
 
6
6
  //#region src/theme/components/home-shell.d.ts
@@ -1,6 +1,6 @@
1
1
 
2
- import { DocsConfig, NormalizedDocsConfig } from "../../config/types.js";
3
2
  import { DocsSource } from "../../source/types.js";
3
+ import { DocsConfig, NormalizedDocsConfig } from "../../config/types.js";
4
4
  import React from "react";
5
5
 
6
6
  //#region src/theme/components/home-shell.d.ts
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * name: @blackwork/docs
3
- * version: v0.2.0
3
+ * version: v0.3.0
4
4
  * description: Next-first documentation framework for Blackwork projects.
5
5
  * author: chengpeiquan <chengpeiquan@chengpeiquan.com>
6
6
  * homepage: https://chengpeiquan.com
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * name: @blackwork/docs
3
- * version: v0.2.0
3
+ * version: v0.3.0
4
4
  * description: Next-first documentation framework for Blackwork projects.
5
5
  * author: chengpeiquan <chengpeiquan@chengpeiquan.com>
6
6
  * homepage: https://chengpeiquan.com
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * name: @blackwork/docs
3
- * version: v0.2.0
3
+ * version: v0.3.0
4
4
  * description: Next-first documentation framework for Blackwork projects.
5
5
  * author: chengpeiquan <chengpeiquan@chengpeiquan.com>
6
6
  * homepage: https://chengpeiquan.com
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * name: @blackwork/docs
3
- * version: v0.2.0
3
+ * version: v0.3.0
4
4
  * description: Next-first documentation framework for Blackwork projects.
5
5
  * author: chengpeiquan <chengpeiquan@chengpeiquan.com>
6
6
  * homepage: https://chengpeiquan.com
7
7
  * license: MIT
8
8
  */
9
- const e={layout:`docs`,sidebar:`auto`},t=e=>e.site.title||`Documentation`,n=(e,t)=>e.site.description||t.description||`Browse the available documentation.`,r=(e,t,n)=>t===e.href?!0:n.length===0?!1:n.every((t,n)=>e.slugSegments[n]===t),i=(e,t)=>t.filter(e=>e.depth===0).map(t=>({href:t.href,label:t.title,current:r(e,t.href,t.slugSegments)})),a=e=>e.flatMap(e=>{let t=e.children?a(e.children):[];return(e.depth??0)<=1?t:[{depth:e.depth??2,id:e.id,title:e.value??e.id},...t]}),o=e=>e.slugSegments[0],s=(e,t)=>{let n=o(t);return n?e.filter(e=>e.slugSegments[0]===n):e},c=(t,n)=>{let r=o(n);if(!r)return e;let i=t.content?.sections?.[r],a=i?.layout??e.layout;return{layout:a,sidebar:i?.sidebar??(a===`content`?!1:e.sidebar)}},l=e=>e?.trim(),u=e=>{let t=e.split(/[-_]/u).map(e=>l(e)).filter(e=>!!e);return{language:t[0]?.toLowerCase(),region:t.slice(1).find(e=>/^(?:[A-Za-z]{2}|\d{3})$/u.test(e))?.toUpperCase()}},d=({kind:e=`docs`,layout:t,locale:n,section:r})=>{let{language:i,region:a}=u(n);return{kind:e,locale:n,...i?{language:i}:{},...a?{region:a}:{},...r?{section:r}:{},...t?{layout:t}:{}}},f=e=>Object.entries(e).map(([e,t])=>`${e}:${t}`);exports.getEntrySectionConfig=c,exports.getEntrySectionKey=o,exports.getFooterDescription=n,exports.getPagefindFilterEntries=f,exports.getPagefindFilters=d,exports.getSectionEntries=s,exports.getSiteTitle=t,exports.getTocHeadings=a,exports.toNavigation=i;
9
+ const e={layout:`docs`,sidebar:`auto`},t=e=>e.site.title||`Documentation`,n=(e,t)=>e.site.description||t.description||`Browse the available documentation.`,r=(e,t,n)=>typeof e==`string`?e:e?.[t]??n,i=(e,t)=>({collapseLabel:r(e.theme.toc?.collapseLabel,t,`Collapse outline`),expandLabel:r(e.theme.toc?.expandLabel,t,`Expand outline`),openLabel:r(e.theme.toc?.openLabel,t,`Open outline`),title:r(e.theme.toc?.title,t,`On This Page`)}),a=(e,t,n)=>t===e.href?!0:n.length===0?!1:n.every((t,n)=>e.slugSegments[n]===t),o=(e,t)=>t.filter(e=>e.depth===0).map(t=>({href:t.href,label:t.title,current:a(e,t.href,t.slugSegments)})),s=e=>e.flatMap(e=>{let t=e.children?s(e.children):[];return(e.depth??0)<=1?t:[{depth:e.depth??2,id:e.id,title:e.value??e.id},...t]}),c=e=>e.slugSegments[0],l=(e,t)=>{let n=c(t);return n?e.filter(e=>e.slugSegments[0]===n):e},u=(t,n)=>{let r=c(n);if(!r)return e;let i=t.content?.sections?.[r],a=i?.layout??e.layout;return{layout:a,sidebar:i?.sidebar??(a===`content`?!1:e.sidebar)}},d=e=>e?.trim(),f=e=>{let t=e.split(/[-_]/u).map(e=>d(e)).filter(e=>!!e);return{language:t[0]?.toLowerCase(),region:t.slice(1).find(e=>/^(?:[A-Za-z]{2}|\d{3})$/u.test(e))?.toUpperCase()}},p=({kind:e=`docs`,layout:t,locale:n,section:r})=>{let{language:i,region:a}=f(n);return{kind:e,locale:n,...i?{language:i}:{},...a?{region:a}:{},...r?{section:r}:{},...t?{layout:t}:{}}},m=e=>Object.entries(e).map(([e,t])=>`${e}:${t}`);exports.getEntrySectionConfig=u,exports.getEntrySectionKey=c,exports.getFooterDescription=n,exports.getPagefindFilterEntries=m,exports.getPagefindFilters=p,exports.getSectionEntries=l,exports.getSiteTitle=t,exports.getTocHeadings=s,exports.getTocLabels=i,exports.toNavigation=o;
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * name: @blackwork/docs
3
- * version: v0.2.0
3
+ * version: v0.3.0
4
4
  * description: Next-first documentation framework for Blackwork projects.
5
5
  * author: chengpeiquan <chengpeiquan@chengpeiquan.com>
6
6
  * homepage: https://chengpeiquan.com
7
7
  * license: MIT
8
8
  */
9
- const e={layout:`docs`,sidebar:`auto`},t=e=>e.site.title||`Documentation`,n=(e,t)=>e.site.description||t.description||`Browse the available documentation.`,r=(e,t,n)=>t===e.href?!0:n.length===0?!1:n.every((t,n)=>e.slugSegments[n]===t),i=(e,t)=>t.filter(e=>e.depth===0).map(t=>({href:t.href,label:t.title,current:r(e,t.href,t.slugSegments)})),a=e=>e.flatMap(e=>{let t=e.children?a(e.children):[];return(e.depth??0)<=1?t:[{depth:e.depth??2,id:e.id,title:e.value??e.id},...t]}),o=e=>e.slugSegments[0],s=(e,t)=>{let n=o(t);return n?e.filter(e=>e.slugSegments[0]===n):e},c=(t,n)=>{let r=o(n);if(!r)return e;let i=t.content?.sections?.[r],a=i?.layout??e.layout;return{layout:a,sidebar:i?.sidebar??(a===`content`?!1:e.sidebar)}},l=e=>e?.trim(),u=e=>{let t=e.split(/[-_]/u).map(e=>l(e)).filter(e=>!!e);return{language:t[0]?.toLowerCase(),region:t.slice(1).find(e=>/^(?:[A-Za-z]{2}|\d{3})$/u.test(e))?.toUpperCase()}},d=({kind:e=`docs`,layout:t,locale:n,section:r})=>{let{language:i,region:a}=u(n);return{kind:e,locale:n,...i?{language:i}:{},...a?{region:a}:{},...r?{section:r}:{},...t?{layout:t}:{}}},f=e=>Object.entries(e).map(([e,t])=>`${e}:${t}`);export{c as getEntrySectionConfig,o as getEntrySectionKey,n as getFooterDescription,f as getPagefindFilterEntries,d as getPagefindFilters,s as getSectionEntries,t as getSiteTitle,a as getTocHeadings,i as toNavigation};
9
+ const e={layout:`docs`,sidebar:`auto`},t=e=>e.site.title||`Documentation`,n=(e,t)=>e.site.description||t.description||`Browse the available documentation.`,r=(e,t,n)=>typeof e==`string`?e:e?.[t]??n,i=(e,t)=>({collapseLabel:r(e.theme.toc?.collapseLabel,t,`Collapse outline`),expandLabel:r(e.theme.toc?.expandLabel,t,`Expand outline`),openLabel:r(e.theme.toc?.openLabel,t,`Open outline`),title:r(e.theme.toc?.title,t,`On This Page`)}),a=(e,t,n)=>t===e.href?!0:n.length===0?!1:n.every((t,n)=>e.slugSegments[n]===t),o=(e,t)=>t.filter(e=>e.depth===0).map(t=>({href:t.href,label:t.title,current:a(e,t.href,t.slugSegments)})),s=e=>e.flatMap(e=>{let t=e.children?s(e.children):[];return(e.depth??0)<=1?t:[{depth:e.depth??2,id:e.id,title:e.value??e.id},...t]}),c=e=>e.slugSegments[0],l=(e,t)=>{let n=c(t);return n?e.filter(e=>e.slugSegments[0]===n):e},u=(t,n)=>{let r=c(n);if(!r)return e;let i=t.content?.sections?.[r],a=i?.layout??e.layout;return{layout:a,sidebar:i?.sidebar??(a===`content`?!1:e.sidebar)}},d=e=>e?.trim(),f=e=>{let t=e.split(/[-_]/u).map(e=>d(e)).filter(e=>!!e);return{language:t[0]?.toLowerCase(),region:t.slice(1).find(e=>/^(?:[A-Za-z]{2}|\d{3})$/u.test(e))?.toUpperCase()}},p=({kind:e=`docs`,layout:t,locale:n,section:r})=>{let{language:i,region:a}=f(n);return{kind:e,locale:n,...i?{language:i}:{},...a?{region:a}:{},...r?{section:r}:{},...t?{layout:t}:{}}},m=e=>Object.entries(e).map(([e,t])=>`${e}:${t}`);export{u as getEntrySectionConfig,c as getEntrySectionKey,n as getFooterDescription,m as getPagefindFilterEntries,p as getPagefindFilters,l as getSectionEntries,t as getSiteTitle,s as getTocHeadings,i as getTocLabels,o as toNavigation};
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * name: @blackwork/docs
3
- * version: v0.2.0
3
+ * version: v0.3.0
4
4
  * description: Next-first documentation framework for Blackwork projects.
5
5
  * author: chengpeiquan <chengpeiquan@chengpeiquan.com>
6
6
  * homepage: https://chengpeiquan.com
@@ -1,7 +1,7 @@
1
1
 
2
+ import { DocsSource } from "../source/types.mjs";
2
3
  import { DocsThemeHomeData } from "./types.mjs";
3
4
  import { DocsConfig, NormalizedDocsConfig } from "../config/types.mjs";
4
- import { DocsSource } from "../source/types.mjs";
5
5
 
6
6
  //#region src/theme/create-home-data.d.ts
7
7
  interface CreateHomeDataOptions {
@@ -1,7 +1,7 @@
1
1
 
2
+ import { DocsSource } from "../source/types.js";
2
3
  import { DocsThemeHomeData } from "./types.js";
3
4
  import { DocsConfig, NormalizedDocsConfig } from "../config/types.js";
4
- import { DocsSource } from "../source/types.js";
5
5
 
6
6
  //#region src/theme/create-home-data.d.ts
7
7
  interface CreateHomeDataOptions {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * name: @blackwork/docs
3
- * version: v0.2.0
3
+ * version: v0.3.0
4
4
  * description: Next-first documentation framework for Blackwork projects.
5
5
  * author: chengpeiquan <chengpeiquan@chengpeiquan.com>
6
6
  * homepage: https://chengpeiquan.com
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * name: @blackwork/docs
3
- * version: v0.2.0
3
+ * version: v0.3.0
4
4
  * description: Next-first documentation framework for Blackwork projects.
5
5
  * author: chengpeiquan <chengpeiquan@chengpeiquan.com>
6
6
  * homepage: https://chengpeiquan.com
7
7
  * license: MIT
8
8
  */
9
- const e=e=>typeof e==`object`&&!!e,t=e=>typeof e==`function`,n=e=>typeof e==`function`,r=e=>typeof e==`function`;function i(i){return e(i)?{...t(i.footer)?{footer:i.footer}:{},...n(i.headerActions)?{headerActions:i.headerActions}:{},...r(i.link)?{link:i.link}:{}}:{}}exports.resolveThemeSlots=i;
9
+ const e=e=>typeof e==`object`&&!!e,t=e=>typeof e==`function`,n=e=>typeof e==`function`,r=e=>typeof e==`function`,i=e=>typeof e==`function`;function a(a){return e(a)?{...r(a.contentHeaderMeta)?{contentHeaderMeta:a.contentHeaderMeta}:{},...t(a.footer)?{footer:a.footer}:{},...n(a.headerActions)?{headerActions:a.headerActions}:{},...i(a.link)?{link:a.link}:{}}:{}}exports.resolveThemeSlots=a;
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * name: @blackwork/docs
3
- * version: v0.2.0
3
+ * version: v0.3.0
4
4
  * description: Next-first documentation framework for Blackwork projects.
5
5
  * author: chengpeiquan <chengpeiquan@chengpeiquan.com>
6
6
  * homepage: https://chengpeiquan.com
7
7
  * license: MIT
8
8
  */
9
- const e=e=>typeof e==`object`&&!!e,t=e=>typeof e==`function`,n=e=>typeof e==`function`,r=e=>typeof e==`function`;function i(i){return e(i)?{...t(i.footer)?{footer:i.footer}:{},...n(i.headerActions)?{headerActions:i.headerActions}:{},...r(i.link)?{link:i.link}:{}}:{}}export{i as resolveThemeSlots};
9
+ const e=e=>typeof e==`object`&&!!e,t=e=>typeof e==`function`,n=e=>typeof e==`function`,r=e=>typeof e==`function`,i=e=>typeof e==`function`;function a(a){return e(a)?{...r(a.contentHeaderMeta)?{contentHeaderMeta:a.contentHeaderMeta}:{},...t(a.footer)?{footer:a.footer}:{},...n(a.headerActions)?{headerActions:a.headerActions}:{},...i(a.link)?{link:a.link}:{}}:{}}export{a as resolveThemeSlots};
@@ -1,4 +1,5 @@
1
1
 
2
+ import { DocEntry } from "../source/types.mjs";
2
3
  import { AnchorHTMLAttributes, ComponentType, ReactNode } from "react";
3
4
 
4
5
  //#region src/theme/types.d.ts
@@ -33,7 +34,11 @@ interface DocsThemeHeaderActionsProps {
33
34
  siteDescription?: string;
34
35
  siteTitle: string;
35
36
  }
37
+ interface DocsThemeContentHeaderMetaProps {
38
+ entry: DocEntry;
39
+ }
36
40
  interface DocsThemeSlots {
41
+ contentHeaderMeta?: ComponentType<DocsThemeContentHeaderMetaProps>;
37
42
  footer?: ComponentType<DocsThemeFooterSlotProps>;
38
43
  headerActions?: ComponentType<DocsThemeHeaderActionsProps>;
39
44
  link?: DocsThemeLinkComponent;
@@ -69,4 +74,4 @@ interface DocsHomeConfig {
69
74
  }
70
75
  type DocsSlotsConfig = DocsThemeSlots;
71
76
  //#endregion
72
- export { DocsHomeConfig, DocsSlotsConfig, DocsThemeFooterSlotProps, DocsThemeHeaderActionsProps, DocsThemeHomeAction, DocsThemeHomeData, DocsThemeHomeHighlight, DocsThemeLinkComponent, DocsThemeLinkProps, DocsThemeLocaleLink, DocsThemeNavItem, DocsThemeSlots };
77
+ export { DocsHomeConfig, DocsSlotsConfig, DocsThemeContentHeaderMetaProps, DocsThemeFooterSlotProps, DocsThemeHeaderActionsProps, DocsThemeHomeAction, DocsThemeHomeData, DocsThemeHomeHighlight, DocsThemeLinkComponent, DocsThemeLinkProps, DocsThemeLocaleLink, DocsThemeNavItem, DocsThemeSlots };
@@ -1,4 +1,5 @@
1
1
 
2
+ import { DocEntry } from "../source/types.js";
2
3
  import { AnchorHTMLAttributes, ComponentType, ReactNode } from "react";
3
4
 
4
5
  //#region src/theme/types.d.ts
@@ -33,7 +34,11 @@ interface DocsThemeHeaderActionsProps {
33
34
  siteDescription?: string;
34
35
  siteTitle: string;
35
36
  }
37
+ interface DocsThemeContentHeaderMetaProps {
38
+ entry: DocEntry;
39
+ }
36
40
  interface DocsThemeSlots {
41
+ contentHeaderMeta?: ComponentType<DocsThemeContentHeaderMetaProps>;
37
42
  footer?: ComponentType<DocsThemeFooterSlotProps>;
38
43
  headerActions?: ComponentType<DocsThemeHeaderActionsProps>;
39
44
  link?: DocsThemeLinkComponent;
@@ -69,4 +74,4 @@ interface DocsHomeConfig {
69
74
  }
70
75
  type DocsSlotsConfig = DocsThemeSlots;
71
76
  //#endregion
72
- export { DocsHomeConfig, DocsSlotsConfig, DocsThemeFooterSlotProps, DocsThemeHeaderActionsProps, DocsThemeHomeAction, DocsThemeHomeData, DocsThemeHomeHighlight, DocsThemeLinkComponent, DocsThemeLinkProps, DocsThemeLocaleLink, DocsThemeNavItem, DocsThemeSlots };
77
+ export { DocsHomeConfig, DocsSlotsConfig, DocsThemeContentHeaderMetaProps, DocsThemeFooterSlotProps, DocsThemeHeaderActionsProps, DocsThemeHomeAction, DocsThemeHomeData, DocsThemeHomeHighlight, DocsThemeLinkComponent, DocsThemeLinkProps, DocsThemeLocaleLink, DocsThemeNavItem, DocsThemeSlots };
package/dist/theme.cjs CHANGED
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * name: @blackwork/docs
3
- * version: v0.2.0
3
+ * version: v0.3.0
4
4
  * description: Next-first documentation framework for Blackwork projects.
5
5
  * author: chengpeiquan <chengpeiquan@chengpeiquan.com>
6
6
  * homepage: https://chengpeiquan.com
7
7
  * license: MIT
8
8
  */
9
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./theme/components/link.cjs`),t=require(`./theme/components/footer.cjs`),n=require(`./theme/components/header.cjs`),r=require(`./theme/slots.cjs`),i=require(`./theme/components/content-shell.cjs`),a=require(`./theme/components/docs-shell.cjs`),o=require(`./theme/create-home-data.cjs`),s=require(`./theme/components/home-shell.cjs`);exports.DefaultContentShell=i.DefaultContentShell,exports.DefaultDocsFooter=t.DefaultDocsFooter,exports.DefaultDocsHeader=n.DefaultDocsHeader,exports.DefaultDocsLink=e.DefaultDocsLink,exports.DefaultDocsShell=a.DefaultDocsShell,exports.DefaultHomeShell=s.DefaultHomeShell,exports.createHomeData=o.createHomeData,exports.resolveThemeSlots=r.resolveThemeSlots;
9
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./theme/components/link.cjs`),t=require(`./theme/components/footer.cjs`),n=require(`./theme/components/header.cjs`),r=require(`./theme/components/docs-toc.cjs`),i=require(`./theme/components/content-layout.cjs`),a=require(`./theme/slots.cjs`),o=require(`./theme/components/content-shell.cjs`),s=require(`./theme/components/docs-shell.cjs`),c=require(`./theme/create-home-data.cjs`),l=require(`./theme/components/home-shell.cjs`);exports.DefaultContentLayout=i.DefaultContentLayout,exports.DefaultContentShell=o.DefaultContentShell,exports.DefaultDocsFooter=t.DefaultDocsFooter,exports.DefaultDocsHeader=n.DefaultDocsHeader,exports.DefaultDocsLink=e.DefaultDocsLink,exports.DefaultDocsShell=s.DefaultDocsShell,exports.DefaultDocsToc=r.DefaultDocsToc,exports.DefaultHomeShell=l.DefaultHomeShell,exports.MobileDocsToc=r.MobileDocsToc,exports.createHomeData=c.createHomeData,exports.resolveThemeSlots=a.resolveThemeSlots;
package/dist/theme.d.mts CHANGED
@@ -1,11 +1,13 @@
1
1
 
2
- import { DocsHomeConfig, DocsSlotsConfig, DocsThemeFooterSlotProps, DocsThemeHeaderActionsProps, DocsThemeHomeAction, DocsThemeHomeData, DocsThemeHomeHighlight, DocsThemeLinkComponent, DocsThemeLinkProps, DocsThemeLocaleLink, DocsThemeNavItem, DocsThemeSlots } from "./theme/types.mjs";
2
+ import { DocsHomeConfig, DocsSlotsConfig, DocsThemeContentHeaderMetaProps, DocsThemeFooterSlotProps, DocsThemeHeaderActionsProps, DocsThemeHomeAction, DocsThemeHomeData, DocsThemeHomeHighlight, DocsThemeLinkComponent, DocsThemeLinkProps, DocsThemeLocaleLink, DocsThemeNavItem, DocsThemeSlots } from "./theme/types.mjs";
3
3
  import { DefaultDocsFooter, DefaultDocsFooterProps } from "./theme/components/footer.mjs";
4
4
  import { DefaultDocsHeader, DefaultDocsHeaderProps } from "./theme/components/header.mjs";
5
5
  import { DefaultDocsLink, DefaultDocsLinkProps } from "./theme/components/link.mjs";
6
+ import { DefaultDocsToc, DefaultDocsTocProps, DocsTocHeading, MobileDocsToc, MobileDocsTocProps } from "./theme/components/docs-toc.mjs";
7
+ import { DefaultContentLayout, DefaultContentLayoutProps } from "./theme/components/content-layout.mjs";
6
8
  import { DefaultContentShell, DefaultContentShellProps } from "./theme/components/content-shell.mjs";
7
9
  import { DefaultDocsShell, DefaultDocsShellProps } from "./theme/components/docs-shell.mjs";
8
10
  import { DefaultHomeShell, DefaultHomeShellProps } from "./theme/components/home-shell.mjs";
9
11
  import { CreateHomeDataOptions, createHomeData } from "./theme/create-home-data.mjs";
10
12
  import { resolveThemeSlots } from "./theme/slots.mjs";
11
- export { type CreateHomeDataOptions, DefaultContentShell, type DefaultContentShellProps, DefaultDocsFooter, type DefaultDocsFooterProps, DefaultDocsHeader, type DefaultDocsHeaderProps, DefaultDocsLink, type DefaultDocsLinkProps, DefaultDocsShell, type DefaultDocsShellProps, DefaultHomeShell, type DefaultHomeShellProps, type DocsHomeConfig, type DocsSlotsConfig, type DocsThemeFooterSlotProps, type DocsThemeHeaderActionsProps, type DocsThemeHomeAction, type DocsThemeHomeData, type DocsThemeHomeHighlight, type DocsThemeLinkComponent, type DocsThemeLinkProps, type DocsThemeLocaleLink, type DocsThemeNavItem, type DocsThemeSlots, createHomeData, resolveThemeSlots };
13
+ export { type CreateHomeDataOptions, DefaultContentLayout, type DefaultContentLayoutProps, DefaultContentShell, type DefaultContentShellProps, DefaultDocsFooter, type DefaultDocsFooterProps, DefaultDocsHeader, type DefaultDocsHeaderProps, DefaultDocsLink, type DefaultDocsLinkProps, DefaultDocsShell, type DefaultDocsShellProps, DefaultDocsToc, type DefaultDocsTocProps, DefaultHomeShell, type DefaultHomeShellProps, type DocsHomeConfig, type DocsSlotsConfig, type DocsThemeContentHeaderMetaProps, type DocsThemeFooterSlotProps, type DocsThemeHeaderActionsProps, type DocsThemeHomeAction, type DocsThemeHomeData, type DocsThemeHomeHighlight, type DocsThemeLinkComponent, type DocsThemeLinkProps, type DocsThemeLocaleLink, type DocsThemeNavItem, type DocsThemeSlots, type DocsTocHeading, MobileDocsToc, type MobileDocsTocProps, createHomeData, resolveThemeSlots };
package/dist/theme.d.ts CHANGED
@@ -1,11 +1,13 @@
1
1
 
2
- import { DocsHomeConfig, DocsSlotsConfig, DocsThemeFooterSlotProps, DocsThemeHeaderActionsProps, DocsThemeHomeAction, DocsThemeHomeData, DocsThemeHomeHighlight, DocsThemeLinkComponent, DocsThemeLinkProps, DocsThemeLocaleLink, DocsThemeNavItem, DocsThemeSlots } from "./theme/types.js";
2
+ import { DocsHomeConfig, DocsSlotsConfig, DocsThemeContentHeaderMetaProps, DocsThemeFooterSlotProps, DocsThemeHeaderActionsProps, DocsThemeHomeAction, DocsThemeHomeData, DocsThemeHomeHighlight, DocsThemeLinkComponent, DocsThemeLinkProps, DocsThemeLocaleLink, DocsThemeNavItem, DocsThemeSlots } from "./theme/types.js";
3
3
  import { DefaultDocsFooter, DefaultDocsFooterProps } from "./theme/components/footer.js";
4
4
  import { DefaultDocsHeader, DefaultDocsHeaderProps } from "./theme/components/header.js";
5
5
  import { DefaultDocsLink, DefaultDocsLinkProps } from "./theme/components/link.js";
6
+ import { DefaultDocsToc, DefaultDocsTocProps, DocsTocHeading, MobileDocsToc, MobileDocsTocProps } from "./theme/components/docs-toc.js";
7
+ import { DefaultContentLayout, DefaultContentLayoutProps } from "./theme/components/content-layout.js";
6
8
  import { DefaultContentShell, DefaultContentShellProps } from "./theme/components/content-shell.js";
7
9
  import { DefaultDocsShell, DefaultDocsShellProps } from "./theme/components/docs-shell.js";
8
10
  import { DefaultHomeShell, DefaultHomeShellProps } from "./theme/components/home-shell.js";
9
11
  import { CreateHomeDataOptions, createHomeData } from "./theme/create-home-data.js";
10
12
  import { resolveThemeSlots } from "./theme/slots.js";
11
- export { type CreateHomeDataOptions, DefaultContentShell, type DefaultContentShellProps, DefaultDocsFooter, type DefaultDocsFooterProps, DefaultDocsHeader, type DefaultDocsHeaderProps, DefaultDocsLink, type DefaultDocsLinkProps, DefaultDocsShell, type DefaultDocsShellProps, DefaultHomeShell, type DefaultHomeShellProps, type DocsHomeConfig, type DocsSlotsConfig, type DocsThemeFooterSlotProps, type DocsThemeHeaderActionsProps, type DocsThemeHomeAction, type DocsThemeHomeData, type DocsThemeHomeHighlight, type DocsThemeLinkComponent, type DocsThemeLinkProps, type DocsThemeLocaleLink, type DocsThemeNavItem, type DocsThemeSlots, createHomeData, resolveThemeSlots };
13
+ export { type CreateHomeDataOptions, DefaultContentLayout, type DefaultContentLayoutProps, DefaultContentShell, type DefaultContentShellProps, DefaultDocsFooter, type DefaultDocsFooterProps, DefaultDocsHeader, type DefaultDocsHeaderProps, DefaultDocsLink, type DefaultDocsLinkProps, DefaultDocsShell, type DefaultDocsShellProps, DefaultDocsToc, type DefaultDocsTocProps, DefaultHomeShell, type DefaultHomeShellProps, type DocsHomeConfig, type DocsSlotsConfig, type DocsThemeContentHeaderMetaProps, type DocsThemeFooterSlotProps, type DocsThemeHeaderActionsProps, type DocsThemeHomeAction, type DocsThemeHomeData, type DocsThemeHomeHighlight, type DocsThemeLinkComponent, type DocsThemeLinkProps, type DocsThemeLocaleLink, type DocsThemeNavItem, type DocsThemeSlots, type DocsTocHeading, MobileDocsToc, type MobileDocsTocProps, createHomeData, resolveThemeSlots };
package/dist/theme.mjs CHANGED
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * name: @blackwork/docs
3
- * version: v0.2.0
3
+ * version: v0.3.0
4
4
  * description: Next-first documentation framework for Blackwork projects.
5
5
  * author: chengpeiquan <chengpeiquan@chengpeiquan.com>
6
6
  * homepage: https://chengpeiquan.com
7
7
  * license: MIT
8
8
  */
9
- import{DefaultDocsLink as e}from"./theme/components/link.mjs";import{DefaultDocsFooter as t}from"./theme/components/footer.mjs";import{DefaultDocsHeader as n}from"./theme/components/header.mjs";import{resolveThemeSlots as r}from"./theme/slots.mjs";import{DefaultContentShell as i}from"./theme/components/content-shell.mjs";import{DefaultDocsShell as a}from"./theme/components/docs-shell.mjs";import{createHomeData as o}from"./theme/create-home-data.mjs";import{DefaultHomeShell as s}from"./theme/components/home-shell.mjs";export{i as DefaultContentShell,t as DefaultDocsFooter,n as DefaultDocsHeader,e as DefaultDocsLink,a as DefaultDocsShell,s as DefaultHomeShell,o as createHomeData,r as resolveThemeSlots};
9
+ import{DefaultDocsLink as e}from"./theme/components/link.mjs";import{DefaultDocsFooter as t}from"./theme/components/footer.mjs";import{DefaultDocsHeader as n}from"./theme/components/header.mjs";import{DefaultDocsToc as r,MobileDocsToc as i}from"./theme/components/docs-toc.mjs";import{DefaultContentLayout as a}from"./theme/components/content-layout.mjs";import{resolveThemeSlots as o}from"./theme/slots.mjs";import{DefaultContentShell as s}from"./theme/components/content-shell.mjs";import{DefaultDocsShell as c}from"./theme/components/docs-shell.mjs";import{createHomeData as l}from"./theme/create-home-data.mjs";import{DefaultHomeShell as u}from"./theme/components/home-shell.mjs";export{a as DefaultContentLayout,s as DefaultContentShell,t as DefaultDocsFooter,n as DefaultDocsHeader,e as DefaultDocsLink,c as DefaultDocsShell,r as DefaultDocsToc,u as DefaultHomeShell,i as MobileDocsToc,l as createHomeData,o as resolveThemeSlots};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blackwork/docs",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Next-first documentation framework for Blackwork projects.",
5
5
  "author": "chengpeiquan <chengpeiquan@chengpeiquan.com>",
6
6
  "homepage": "https://chengpeiquan.com",
@@ -51,7 +51,7 @@
51
51
  "dependencies": {
52
52
  "chokidar": "^4.0.3",
53
53
  "jiti": "^1.21.7",
54
- "@blackwork/machine": "0.1.0"
54
+ "@blackwork/machine": "0.1.1"
55
55
  },
56
56
  "peerDependencies": {
57
57
  "blackwork": ">=0.10.0",