@curvenote/theme-ui 2.0.1 → 2.0.2

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 (252) hide show
  1. package/dist/components/index.d.ts +3 -3
  2. package/dist/components/index.d.ts.map +1 -1
  3. package/dist/components/index.js +3 -3
  4. package/dist/components/layout/app-layout.d.ts +3 -3
  5. package/dist/components/layout/app-layout.d.ts.map +1 -1
  6. package/dist/components/layout/app-layout.js +19 -15
  7. package/dist/components/layout/app-sidebar.d.ts +2 -1
  8. package/dist/components/layout/app-sidebar.d.ts.map +1 -1
  9. package/dist/components/layout/app-sidebar.js +8 -8
  10. package/dist/components/layout/article-layout.d.ts +3 -3
  11. package/dist/components/layout/article-layout.d.ts.map +1 -1
  12. package/dist/components/layout/article-layout.js +17 -10
  13. package/dist/components/layout/grid.d.ts +1 -1
  14. package/dist/components/layout/grid.d.ts.map +1 -1
  15. package/dist/components/layout/header.d.ts +5 -3
  16. package/dist/components/layout/header.d.ts.map +1 -1
  17. package/dist/components/layout/header.js +6 -3
  18. package/dist/components/layout/index.d.ts +7 -7
  19. package/dist/components/layout/index.d.ts.map +1 -1
  20. package/dist/components/layout/index.js +7 -7
  21. package/dist/components/layout/layout-header.d.ts +9 -0
  22. package/dist/components/layout/layout-header.d.ts.map +1 -0
  23. package/dist/components/layout/layout-header.js +13 -0
  24. package/dist/components/layout/loading-bar.d.ts +1 -1
  25. package/dist/components/layout/loading-bar.d.ts.map +1 -1
  26. package/dist/components/layout/loading-bar.js +1 -1
  27. package/dist/components/layout/site-header.d.ts +1 -1
  28. package/dist/components/layout/site-header.d.ts.map +1 -1
  29. package/dist/components/layout/site-header.js +18 -8
  30. package/dist/components/layout/types.d.ts +6 -0
  31. package/dist/components/layout/types.d.ts.map +1 -1
  32. package/dist/components/providers/analytics-boundary.d.ts +1 -1
  33. package/dist/components/providers/analytics-boundary.d.ts.map +1 -1
  34. package/dist/components/providers/analytics-boundary.js +3 -3
  35. package/dist/components/providers/analytics-dev-tray.d.ts +1 -1
  36. package/dist/components/providers/analytics-dev-tray.d.ts.map +1 -1
  37. package/dist/components/providers/analytics-dev-tray.js +3 -3
  38. package/dist/components/providers/article-versions-provider.d.ts +1 -1
  39. package/dist/components/providers/article-versions-provider.d.ts.map +1 -1
  40. package/dist/components/providers/compute.d.ts +1 -1
  41. package/dist/components/providers/compute.d.ts.map +1 -1
  42. package/dist/components/providers/curvenote-providers.d.ts +14 -18
  43. package/dist/components/providers/curvenote-providers.d.ts.map +1 -1
  44. package/dist/components/providers/curvenote-providers.js +10 -10
  45. package/dist/components/providers/design.d.ts +1 -1
  46. package/dist/components/providers/design.d.ts.map +1 -1
  47. package/dist/components/providers/design.js +2 -1
  48. package/dist/components/providers/index.d.ts +11 -11
  49. package/dist/components/providers/index.d.ts.map +1 -1
  50. package/dist/components/providers/index.js +11 -11
  51. package/dist/components/providers/lightbox-provider.d.ts +1 -1
  52. package/dist/components/providers/lightbox-provider.d.ts.map +1 -1
  53. package/dist/components/providers/myst-providers.d.ts +1 -1
  54. package/dist/components/providers/myst-providers.d.ts.map +1 -1
  55. package/dist/components/providers/overlay-depth.d.ts +1 -1
  56. package/dist/components/providers/overlay-depth.d.ts.map +1 -1
  57. package/dist/components/providers/page-providers.d.ts +2 -2
  58. package/dist/components/providers/page-providers.d.ts.map +1 -1
  59. package/dist/components/providers/ping-boundary.d.ts +1 -1
  60. package/dist/components/providers/ping-boundary.d.ts.map +1 -1
  61. package/dist/components/providers/platform-providers.d.ts +1 -1
  62. package/dist/components/providers/platform-providers.d.ts.map +1 -1
  63. package/dist/components/ui/Callout.d.ts +1 -1
  64. package/dist/components/ui/Callout.d.ts.map +1 -1
  65. package/dist/components/ui/Callout.js +1 -1
  66. package/dist/components/ui/PageCards.d.ts +2 -1
  67. package/dist/components/ui/PageCards.d.ts.map +1 -1
  68. package/dist/components/ui/abbreviations.d.ts +2 -1
  69. package/dist/components/ui/abbreviations.d.ts.map +1 -1
  70. package/dist/components/ui/abbreviations.js +7 -14
  71. package/dist/components/ui/abstract.d.ts +1 -1
  72. package/dist/components/ui/abstract.d.ts.map +1 -1
  73. package/dist/components/ui/accessibility-skip-to.d.ts +3 -3
  74. package/dist/components/ui/accessibility-skip-to.d.ts.map +1 -1
  75. package/dist/components/ui/accessibility-skip-to.js +1 -1
  76. package/dist/components/ui/acknowledgements.d.ts +1 -1
  77. package/dist/components/ui/acknowledgements.d.ts.map +1 -1
  78. package/dist/components/ui/acknowledgements.js +4 -4
  79. package/dist/components/ui/arrow.d.ts +3 -3
  80. package/dist/components/ui/arrow.d.ts.map +1 -1
  81. package/dist/components/ui/article-actions-downloads.d.ts +24 -3
  82. package/dist/components/ui/article-actions-downloads.d.ts.map +1 -1
  83. package/dist/components/ui/article-actions-downloads.js +58 -16
  84. package/dist/components/ui/article-actions-dropdown.d.ts +1 -1
  85. package/dist/components/ui/article-actions-dropdown.d.ts.map +1 -1
  86. package/dist/components/ui/article-actions-dropdown.js +9 -9
  87. package/dist/components/ui/article-actions-share.d.ts +1 -1
  88. package/dist/components/ui/article-actions-share.d.ts.map +1 -1
  89. package/dist/components/ui/article-actions-share.js +2 -2
  90. package/dist/components/ui/article-actions.d.ts +1 -1
  91. package/dist/components/ui/article-actions.d.ts.map +1 -1
  92. package/dist/components/ui/article-actions.js +29 -8
  93. package/dist/components/ui/article-bar.d.ts +16 -3
  94. package/dist/components/ui/article-bar.d.ts.map +1 -1
  95. package/dist/components/ui/article-bar.js +9 -7
  96. package/dist/components/ui/article-card.d.ts +1 -1
  97. package/dist/components/ui/article-card.d.ts.map +1 -1
  98. package/dist/components/ui/article-card.js +2 -2
  99. package/dist/components/ui/article-footer.d.ts +1 -1
  100. package/dist/components/ui/article-footer.d.ts.map +1 -1
  101. package/dist/components/ui/article-footer.js +1 -1
  102. package/dist/components/ui/author-popover.d.ts +1 -1
  103. package/dist/components/ui/author-popover.d.ts.map +1 -1
  104. package/dist/components/ui/author-popover.js +3 -3
  105. package/dist/components/ui/backmatter.d.ts +41 -3
  106. package/dist/components/ui/backmatter.d.ts.map +1 -1
  107. package/dist/components/ui/backmatter.js +117 -34
  108. package/dist/components/ui/badge.d.ts +1 -1
  109. package/dist/components/ui/badge.d.ts.map +1 -1
  110. package/dist/components/ui/badge.js +1 -1
  111. package/dist/components/ui/banner.d.ts +22 -1
  112. package/dist/components/ui/banner.d.ts.map +1 -1
  113. package/dist/components/ui/banner.js +44 -3
  114. package/dist/components/ui/bibliography.d.ts +1 -1
  115. package/dist/components/ui/bibliography.d.ts.map +1 -1
  116. package/dist/components/ui/bibliography.js +3 -3
  117. package/dist/components/ui/breadcrumb.d.ts +7 -7
  118. package/dist/components/ui/breadcrumb.d.ts.map +1 -1
  119. package/dist/components/ui/breadcrumb.js +1 -1
  120. package/dist/components/ui/button.d.ts +1 -1
  121. package/dist/components/ui/button.d.ts.map +1 -1
  122. package/dist/components/ui/button.js +2 -2
  123. package/dist/components/ui/calendar.d.ts +1 -1
  124. package/dist/components/ui/calendar.d.ts.map +1 -1
  125. package/dist/components/ui/calendar.js +2 -2
  126. package/dist/components/ui/citation.d.ts +2 -2
  127. package/dist/components/ui/citation.d.ts.map +1 -1
  128. package/dist/components/ui/citation.js +5 -5
  129. package/dist/components/ui/collapsible-backmatter-section.d.ts +2 -2
  130. package/dist/components/ui/collapsible-backmatter-section.d.ts.map +1 -1
  131. package/dist/components/ui/collapsible-backmatter-section.js +3 -3
  132. package/dist/components/ui/collapsible.d.ts +3 -3
  133. package/dist/components/ui/collapsible.d.ts.map +1 -1
  134. package/dist/components/ui/cookie-banner.d.ts +2 -1
  135. package/dist/components/ui/cookie-banner.d.ts.map +1 -1
  136. package/dist/components/ui/cookie-banner.js +4 -4
  137. package/dist/components/ui/data-availability.d.ts +1 -1
  138. package/dist/components/ui/data-availability.d.ts.map +1 -1
  139. package/dist/components/ui/data-availability.js +4 -4
  140. package/dist/components/ui/dhr-cta-buttons.d.ts +30 -0
  141. package/dist/components/ui/dhr-cta-buttons.d.ts.map +1 -0
  142. package/dist/components/ui/dhr-cta-buttons.js +40 -0
  143. package/dist/components/ui/dialog.d.ts +10 -10
  144. package/dist/components/ui/dialog.d.ts.map +1 -1
  145. package/dist/components/ui/dialog.js +1 -1
  146. package/dist/components/ui/document-outline.d.ts +11 -2
  147. package/dist/components/ui/document-outline.d.ts.map +1 -1
  148. package/dist/components/ui/document-outline.js +101 -54
  149. package/dist/components/ui/dropdown-menu.d.ts +15 -15
  150. package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
  151. package/dist/components/ui/dropdown-menu.js +1 -1
  152. package/dist/components/ui/error-page.d.ts +1 -1
  153. package/dist/components/ui/error-page.d.ts.map +1 -1
  154. package/dist/components/ui/error-page.js +1 -1
  155. package/dist/components/ui/font-styles.d.ts +23 -0
  156. package/dist/components/ui/font-styles.d.ts.map +1 -0
  157. package/dist/components/ui/font-styles.js +39 -0
  158. package/dist/components/ui/footer-links.d.ts +1 -1
  159. package/dist/components/ui/footer-links.d.ts.map +1 -1
  160. package/dist/components/ui/footer-links.js +2 -2
  161. package/dist/components/ui/footnotes.d.ts +1 -1
  162. package/dist/components/ui/footnotes.d.ts.map +1 -1
  163. package/dist/components/ui/footnotes.js +3 -2
  164. package/dist/components/ui/frontmatter-badges.d.ts +7 -7
  165. package/dist/components/ui/frontmatter-badges.d.ts.map +1 -1
  166. package/dist/components/ui/frontmatter-badges.js +5 -5
  167. package/dist/components/ui/frontmatter.d.ts +1 -1
  168. package/dist/components/ui/frontmatter.d.ts.map +1 -1
  169. package/dist/components/ui/frontmatter.js +1 -1
  170. package/dist/components/ui/hash-link.d.ts.map +1 -1
  171. package/dist/components/ui/hash-link.js +2 -1
  172. package/dist/components/ui/image.d.ts +2 -2
  173. package/dist/components/ui/image.d.ts.map +1 -1
  174. package/dist/components/ui/image.js +3 -3
  175. package/dist/components/ui/index.d.ts +61 -57
  176. package/dist/components/ui/index.d.ts.map +1 -1
  177. package/dist/components/ui/index.js +58 -56
  178. package/dist/components/ui/input.d.ts +1 -1
  179. package/dist/components/ui/input.d.ts.map +1 -1
  180. package/dist/components/ui/input.js +1 -1
  181. package/dist/components/ui/keywords.d.ts +1 -1
  182. package/dist/components/ui/keywords.d.ts.map +1 -1
  183. package/dist/components/ui/keywords.js +3 -3
  184. package/dist/components/ui/label.js +1 -1
  185. package/dist/components/ui/license-description.d.ts +1 -1
  186. package/dist/components/ui/license-description.d.ts.map +1 -1
  187. package/dist/components/ui/license-description.js +3 -3
  188. package/dist/components/ui/license-frontmatter.d.ts +2 -2
  189. package/dist/components/ui/license-frontmatter.d.ts.map +1 -1
  190. package/dist/components/ui/license-frontmatter.js +4 -4
  191. package/dist/components/ui/lightbox-container.d.ts +2 -2
  192. package/dist/components/ui/lightbox-container.d.ts.map +1 -1
  193. package/dist/components/ui/lightbox-container.js +2 -2
  194. package/dist/components/ui/lightbox.d.ts +3 -2
  195. package/dist/components/ui/lightbox.d.ts.map +1 -1
  196. package/dist/components/ui/lightbox.js +6 -6
  197. package/dist/components/ui/link-card.d.ts +1 -1
  198. package/dist/components/ui/link-card.d.ts.map +1 -1
  199. package/dist/components/ui/link-card.js +1 -1
  200. package/dist/components/ui/pagination.d.ts +7 -7
  201. package/dist/components/ui/pagination.d.ts.map +1 -1
  202. package/dist/components/ui/pagination.js +1 -1
  203. package/dist/components/ui/popover.d.ts +4 -4
  204. package/dist/components/ui/popover.d.ts.map +1 -1
  205. package/dist/components/ui/popover.js +1 -1
  206. package/dist/components/ui/search.d.ts +1 -1
  207. package/dist/components/ui/search.d.ts.map +1 -1
  208. package/dist/components/ui/search.js +2 -2
  209. package/dist/components/ui/select.d.ts +10 -10
  210. package/dist/components/ui/select.d.ts.map +1 -1
  211. package/dist/components/ui/select.js +1 -1
  212. package/dist/components/ui/separator.d.ts +1 -1
  213. package/dist/components/ui/separator.d.ts.map +1 -1
  214. package/dist/components/ui/separator.js +1 -1
  215. package/dist/components/ui/sheet.d.ts +8 -8
  216. package/dist/components/ui/sheet.d.ts.map +1 -1
  217. package/dist/components/ui/sheet.js +1 -1
  218. package/dist/components/ui/sidebar.d.ts +23 -23
  219. package/dist/components/ui/sidebar.d.ts.map +1 -1
  220. package/dist/components/ui/sidebar.js +3 -3
  221. package/dist/components/ui/skeleton.d.ts +1 -1
  222. package/dist/components/ui/skeleton.d.ts.map +1 -1
  223. package/dist/components/ui/skeleton.js +1 -1
  224. package/dist/components/ui/sonner.d.ts +1 -1
  225. package/dist/components/ui/sonner.d.ts.map +1 -1
  226. package/dist/components/ui/theme-button.d.ts +1 -1
  227. package/dist/components/ui/theme-button.d.ts.map +1 -1
  228. package/dist/components/ui/theme-button.js +3 -3
  229. package/dist/components/ui/tooltip.d.ts +4 -4
  230. package/dist/components/ui/tooltip.d.ts.map +1 -1
  231. package/dist/components/ui/tooltip.js +2 -2
  232. package/dist/components/ui/types.d.ts +1 -0
  233. package/dist/components/ui/types.d.ts.map +1 -1
  234. package/dist/components/ui/types.js +1 -0
  235. package/dist/hooks/index.d.ts +4 -4
  236. package/dist/hooks/index.d.ts.map +1 -1
  237. package/dist/hooks/index.js +4 -4
  238. package/dist/hooks/use-theme.d.ts +1 -1
  239. package/dist/hooks/use-theme.d.ts.map +1 -1
  240. package/dist/index.d.ts +3 -3
  241. package/dist/index.d.ts.map +1 -1
  242. package/dist/index.js +3 -3
  243. package/dist/lib/dedupeAbbreviations.d.ts +11 -0
  244. package/dist/lib/dedupeAbbreviations.d.ts.map +1 -1
  245. package/dist/lib/dedupeAbbreviations.js +17 -0
  246. package/dist/lib/fonts.d.ts +29 -0
  247. package/dist/lib/fonts.d.ts.map +1 -0
  248. package/dist/lib/fonts.js +148 -0
  249. package/dist/lib/index.d.ts +6 -5
  250. package/dist/lib/index.d.ts.map +1 -1
  251. package/dist/lib/index.js +6 -5
  252. package/package.json +22 -4
@@ -1,4 +1,4 @@
1
- export * from './layout';
2
- export * from './providers';
3
- export * from './ui';
1
+ export * from './layout/index.js';
2
+ export * from './providers/index.js';
3
+ export * from './ui/index.js';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC"}
@@ -1,3 +1,3 @@
1
- export * from './layout';
2
- export * from './providers';
3
- export * from './ui';
1
+ export * from './layout/index.js';
2
+ export * from './providers/index.js';
3
+ export * from './ui/index.js';
@@ -1,8 +1,8 @@
1
- import type { LayoutProps } from './types';
2
- export declare function AppLayout({ children, header, footer, trailing }: LayoutProps): import("react/jsx-runtime").JSX.Element;
1
+ import type { LayoutProps } from './types.js';
2
+ export declare function AppLayout({ children, header, footer, trailing, hideNav }: LayoutProps): import("react").JSX.Element;
3
3
  export declare function AppContainer({ children, header, className, }: {
4
4
  children: React.ReactNode;
5
5
  header?: React.ReactNode;
6
6
  className?: string;
7
- }): import("react/jsx-runtime").JSX.Element;
7
+ }): import("react").JSX.Element;
8
8
  //# sourceMappingURL=app-layout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-layout.d.ts","sourceRoot":"","sources":["../../../src/components/layout/app-layout.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,WAAW,2CAuB5E;AAED,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,MAAM,EACN,SAAS,GACV,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,2CAyBA"}
1
+ {"version":3,"file":"app-layout.d.ts","sourceRoot":"","sources":["../../../src/components/layout/app-layout.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,WAAW,+BA0BrF;AAED,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,MAAM,EACN,SAAS,GACV,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BA0BA"}
@@ -1,25 +1,29 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { SidebarInset, SidebarProvider } from '../ui/sidebar';
3
- import { AppSidebar } from './app-sidebar';
4
- import { SiteHeader } from './site-header';
2
+ import { SidebarInset, SidebarProvider } from '../ui/sidebar.js';
3
+ import { AppSidebar } from './app-sidebar.js';
4
+ import { LayoutHeader } from './layout-header.js';
5
5
  import { useProjectManifest, useReferences } from '@myst-theme/providers';
6
- import { DocumentOutline } from '../ui/document-outline';
7
- import { cn } from '../../lib/utils';
8
- import { Banner } from '../ui';
9
- import { createSkipToTargets, SkipTo } from '../ui/accessibility-skip-to';
10
- import { useDesign } from '../providers';
11
- export function AppLayout({ children, header, footer, trailing }) {
6
+ import { DocumentOutline } from '../ui/document-outline.js';
7
+ import { cn } from '../../lib/utils.js';
8
+ import { Banner, useBannerStyle } from '../ui/index.js';
9
+ import { createSkipToTargets, SkipTo } from '../ui/accessibility-skip-to.js';
10
+ import { useDesign } from '../providers/index.js';
11
+ export function AppLayout({ children, header, footer, trailing, hideNav }) {
12
12
  return (_jsxs(_Fragment, { children: [_jsx(SkipTo, { targets: createSkipToTargets() }), _jsx("div", { className: cn('flex flex-col min-h-screen', {
13
- '[--header-height:calc(--spacing(22))]': header,
14
- '[--header-height:calc(--spacing(14))]': !header,
15
- }), children: _jsxs(SidebarProvider, { className: "flex flex-col h-full", children: [_jsx(SiteHeader, { brandBar: header, trailing: trailing, showMobileMenu: true }), _jsxs("div", { className: "flex flex-1", children: [_jsx(AppSidebar, {}), _jsxs(SidebarInset, { className: "flex flex-col min-h-full", children: [_jsx("div", { className: "grow", children: children }), footer && _jsx("div", { className: "shrink-0", children: footer })] })] })] }) })] }));
13
+ '[--header-height:calc(--spacing(22))]': header && !hideNav,
14
+ '[--header-height:calc(--spacing(14))]': !header && !hideNav,
15
+ // Preview banner only (no site nav)
16
+ '[--header-height:calc(--spacing(8))]': header && hideNav,
17
+ '[--header-height:0]': !header && hideNav,
18
+ }), children: _jsxs(SidebarProvider, { className: "flex flex-col h-full", children: [_jsx(LayoutHeader, { header: header, trailing: trailing, hideNav: hideNav, showMobileMenu: true }), _jsxs("div", { className: "flex flex-1", children: [_jsx(AppSidebar, {}), _jsxs(SidebarInset, { className: "flex flex-col min-h-full", children: [_jsx("div", { className: "grow", children: children }), footer && _jsx("div", { className: "shrink-0", children: footer })] })] })] }) })] }));
16
19
  }
17
20
  export function AppContainer({ children, header, className, }) {
18
21
  const references = useReferences();
19
22
  const project = useProjectManifest();
20
23
  const design = useDesign();
21
- const hasBanner = !design.hide_banner && project?.banner;
24
+ // an inline banner is rendered within the title block, not behind it
25
+ const hasInsetBanner = useBannerStyle() === 'inset' && !!project?.banner;
22
26
  return (_jsxs("article", { className: cn('relative z-0 max-w-full app-grid grid-gap article', className, {
23
- 'pt-8': !hasBanner && !design.hide_title_block,
24
- }), children: [hasBanner && !design.hide_title_block && project?.banner && (_jsx(Banner, { thin: true, banner: project.banner, bannerOptimized: project.bannerOptimized })), header, !!header && _jsx("div", { className: "h-0 col-screen" }), !design.hide_outline && references?.article && (_jsx("aside", { className: "hidden sticky top-24 px-2 h-0 lg:block col-margin xl:px-4", children: _jsx(DocumentOutline, { mdast: references?.article }) })), children, _jsx("div", { id: "bottom-of-article", className: "h-0 col-screen" })] }));
27
+ 'pt-8': !hasInsetBanner && !design.hide_title_block,
28
+ }), children: [hasInsetBanner && !design.hide_title_block && project?.banner && (_jsx(Banner, { thin: true, banner: project.banner, bannerOptimized: project.bannerOptimized })), header, !!header && _jsx("div", { className: "h-0 col-screen" }), !design.hide_outline && references?.article && (_jsx("aside", { className: "hidden sticky top-24 px-2 h-0 lg:block col-margin xl:px-4", children: _jsx(DocumentOutline, { mdast: references?.article }) })), children, _jsx("div", { id: "bottom-of-article", className: "h-0 col-screen" })] }));
25
29
  }
@@ -1,2 +1,3 @@
1
- export declare function AppSidebar(): import("react/jsx-runtime").JSX.Element;
1
+ import * as React from 'react';
2
+ export declare function AppSidebar(): React.JSX.Element;
2
3
  //# sourceMappingURL=app-sidebar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-sidebar.d.ts","sourceRoot":"","sources":["../../../src/components/layout/app-sidebar.tsx"],"names":[],"mappings":"AA8PA,wBAAgB,UAAU,4CA0FzB"}
1
+ {"version":3,"file":"app-sidebar.d.ts","sourceRoot":"","sources":["../../../src/components/layout/app-sidebar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA6P/B,wBAAgB,UAAU,sBA0FzB"}
@@ -2,16 +2,16 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
2
2
  import { ChevronRight, Home, Notebook } from 'lucide-react';
3
3
  import * as React from 'react';
4
4
  import { useNavigation, useLocation, NavLink } from 'react-router';
5
- import { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarMenu, SidebarMenuItem, } from '../ui/sidebar';
6
- import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../ui';
7
- import { cn } from '../../lib/utils';
8
- import { getYear } from '../../lib/parse-date';
5
+ import { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarMenu, SidebarMenuItem, } from '../ui/sidebar.js';
6
+ import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../ui/index.js';
7
+ import { cn } from '../../lib/utils.js';
8
+ import { getYear } from '../../lib/parse-date.js';
9
9
  import { CurvenoteLogo } from '@curvenote/icons';
10
- import { ThemeButton } from '../ui/theme-button';
10
+ import { ThemeButton } from '../ui/theme-button.js';
11
11
  import { useBaseurl, useProjectManifest } from '@myst-theme/providers';
12
- import { useHydrated } from '../../hooks';
13
- import { usePage } from '../providers';
14
- import { useDesign } from '../providers/design';
12
+ import { useHydrated } from '../../hooks/index.js';
13
+ import { usePage } from '../providers/index.js';
14
+ import { useDesign } from '../providers/design.js';
15
15
  const icons = {
16
16
  notebook: Notebook,
17
17
  notebooks: Notebook,
@@ -1,8 +1,8 @@
1
- import type { LayoutProps } from './types';
2
- export declare function ArticleLayout({ children, header, footer, trailing }: LayoutProps): import("react/jsx-runtime").JSX.Element;
1
+ import type { LayoutProps } from './types.js';
2
+ export declare function ArticleLayout({ children, header, footer, trailing, hideNav }: LayoutProps): import("react").JSX.Element;
3
3
  export declare function ArticleContainer({ children, header, className, }: {
4
4
  children: React.ReactNode;
5
5
  header?: React.ReactNode;
6
6
  className?: string;
7
- }): import("react/jsx-runtime").JSX.Element;
7
+ }): import("react").JSX.Element;
8
8
  //# sourceMappingURL=article-layout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"article-layout.d.ts","sourceRoot":"","sources":["../../../src/components/layout/article-layout.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,WAAW,2CAWhF;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,MAAM,EACN,SAAS,GACV,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,2CAgCA"}
1
+ {"version":3,"file":"article-layout.d.ts","sourceRoot":"","sources":["../../../src/components/layout/article-layout.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,WAAW,+BAWzF;AASD,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,MAAM,EACN,SAAS,GACV,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BAkCA"}
@@ -1,19 +1,26 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useProjectManifest, useReferences } from '@myst-theme/providers';
3
- import { SiteHeader } from './site-header';
4
- import { cn } from '../../lib/utils';
5
- import { createSkipToTargets, DocumentOutline, SkipTo, Banner } from '../ui';
6
- import { useDesign } from '../providers';
7
- export function ArticleLayout({ children, header, footer, trailing }) {
8
- return (_jsxs(_Fragment, { children: [_jsx(SkipTo, { targets: createSkipToTargets() }), _jsxs("div", { className: "flex flex-col min-h-screen", children: [_jsx(SiteHeader, { brandBar: header, trailing: trailing }), _jsx("div", { className: "grow", children: children }), footer && _jsx("div", { className: "shrink-0", children: footer })] })] }));
3
+ import { LayoutHeader } from './layout-header.js';
4
+ import { cn } from '../../lib/utils.js';
5
+ import { createSkipToTargets, DocumentOutline, SkipTo, Banner, useBannerStyle, } from '../ui/index.js';
6
+ import { useDesign } from '../providers/index.js';
7
+ export function ArticleLayout({ children, header, footer, trailing, hideNav }) {
8
+ return (_jsxs(_Fragment, { children: [_jsx(SkipTo, { targets: createSkipToTargets() }), _jsxs("div", { className: "flex flex-col min-h-screen", children: [_jsx(LayoutHeader, { header: header, trailing: trailing, hideNav: hideNav }), _jsx("div", { className: "grow", children: children }), footer && _jsx("div", { className: "shrink-0", children: footer })] })] }));
9
9
  }
10
+ /** Maps the `content_grid` design option onto the grid classes from `@myst-theme/styles`. */
11
+ const CONTENT_GRID_CLASSES = {
12
+ default: 'article-grid',
13
+ center: 'article-center-grid',
14
+ left: 'article-left-grid',
15
+ };
10
16
  export function ArticleContainer({ children, header, className, }) {
11
17
  const references = useReferences();
12
18
  const project = useProjectManifest();
13
19
  const design = useDesign();
14
- const hasBanner = !design.hide_banner && project?.banner;
15
- return (_jsxs("article", { className: cn('relative w-full max-w-full article-grid grid-gap prose dark:prose-invert', {
20
+ // an inline banner is rendered within the title block, not behind it
21
+ const hasInsetBanner = useBannerStyle() === 'inset' && !!project?.banner;
22
+ return (_jsxs("article", { className: cn('relative w-full max-w-full grid-gap prose dark:prose-invert', CONTENT_GRID_CLASSES[design.content_grid ?? 'default'], {
16
23
  // if the banner is not shown, and the title block is not hidden, then more padding is needed
17
- 'pt-14': !hasBanner && !design.hide_title_block,
18
- }, 'z-0', className), children: [hasBanner && !design.hide_title_block && project?.banner && (_jsx(Banner, { inset: true, banner: project.banner, bannerOptimized: project.bannerOptimized })), header, !!header && _jsx("div", { className: "h-0 col-screen" }), !design.hide_outline && references?.article && (_jsx("aside", { className: "hidden sticky top-24 px-2 h-0 lg:block col-margin xl:px-4", children: _jsx(DocumentOutline, { mdast: references?.article }) })), children, _jsx("div", { id: "bottom-of-article", className: "h-0 col-screen" })] }));
24
+ 'pt-14': !hasInsetBanner && !design.hide_title_block,
25
+ }, 'z-0', className), children: [hasInsetBanner && !design.hide_title_block && project?.banner && (_jsx(Banner, { inset: true, banner: project.banner, bannerOptimized: project.bannerOptimized })), header, !!header && _jsx("div", { className: "h-0 col-screen" }), !design.hide_outline && references?.article && (_jsx("aside", { className: "hidden sticky top-24 px-2 h-0 lg:block col-margin xl:px-4", children: _jsx(DocumentOutline, { mdast: references?.article }) })), children, _jsx("div", { id: "bottom-of-article", className: "h-0 col-screen" })] }));
19
26
  }
@@ -1,2 +1,2 @@
1
- export declare function GridLayout(): import("react/jsx-runtime").JSX.Element;
1
+ export declare function GridLayout(): import("react").JSX.Element;
2
2
  //# sourceMappingURL=grid.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../src/components/layout/grid.tsx"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,4CAkDzB"}
1
+ {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../src/components/layout/grid.tsx"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,gCAkDzB"}
@@ -1,5 +1,7 @@
1
- export declare function HeaderContainer({ brandBar, children, }: {
1
+ export declare function HeaderContainer({ brandBar, children, hideNav, }: {
2
2
  brandBar?: React.ReactNode;
3
- children: React.ReactNode;
4
- }): import("react/jsx-runtime").JSX.Element;
3
+ children?: React.ReactNode;
4
+ /** When true, only the brand bar is shown (no nav chrome or border). */
5
+ hideNav?: boolean;
6
+ }): import("react").JSX.Element | null;
5
7
  //# sourceMappingURL=header.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../src/components/layout/header.tsx"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,2CAUA"}
1
+ {"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../src/components/layout/header.tsx"],"names":[],"mappings":"AAGA,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,QAAQ,EACR,OAAe,GAChB,EAAE;IACD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,wEAAwE;IACxE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,sCAYA"}
@@ -1,5 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { LoadingBar } from './loading-bar';
3
- export function HeaderContainer({ brandBar, children, }) {
4
- return (_jsx("header", { className: "sticky top-0 z-50 w-full border-b bg-background", children: _jsxs("div", { className: "flex flex-col items-center", children: [brandBar && _jsx("div", { className: "w-full shrink-0", children: brandBar }), children, _jsx(LoadingBar, {})] }) }));
2
+ import { cn } from '../../lib/utils.js';
3
+ import { LoadingBar } from './loading-bar.js';
4
+ export function HeaderContainer({ brandBar, children, hideNav = false, }) {
5
+ if (hideNav && !brandBar && !children)
6
+ return null;
7
+ return (_jsx("header", { className: cn('sticky top-0 z-50 w-full', !hideNav && 'border-b bg-background'), children: _jsxs("div", { className: "flex flex-col items-center", children: [brandBar && _jsx("div", { className: "w-full shrink-0", children: brandBar }), children, _jsx(LoadingBar, {})] }) }));
5
8
  }
@@ -1,8 +1,8 @@
1
- export * from './app-layout';
2
- export * from './app-sidebar';
3
- export * from './article-layout';
4
- export * from './site-header';
5
- export * from './loading-bar';
6
- export * from './grid';
7
- export * from './types';
1
+ export * from './app-layout.js';
2
+ export * from './app-sidebar.js';
3
+ export * from './article-layout.js';
4
+ export * from './site-header.js';
5
+ export * from './loading-bar.js';
6
+ export * from './grid.js';
7
+ export * from './types.js';
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/layout/index.ts"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/layout/index.ts"],"names":[],"mappings":"AACA,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
@@ -1,8 +1,8 @@
1
1
  // Layout Components
2
- export * from './app-layout';
3
- export * from './app-sidebar';
4
- export * from './article-layout';
5
- export * from './site-header';
6
- export * from './loading-bar';
7
- export * from './grid';
8
- export * from './types';
2
+ export * from './app-layout.js';
3
+ export * from './app-sidebar.js';
4
+ export * from './article-layout.js';
5
+ export * from './site-header.js';
6
+ export * from './loading-bar.js';
7
+ export * from './grid.js';
8
+ export * from './types.js';
@@ -0,0 +1,9 @@
1
+ import type { LayoutProps } from './types.js';
2
+ /**
3
+ * Top-of-page header for article/app layouts. When `hideNav` is set, only the
4
+ * brand bar (and optional trailing slot) are shown — no site navigation.
5
+ */
6
+ export declare function LayoutHeader({ header, trailing, hideNav, showMobileMenu, }: Pick<LayoutProps, 'header' | 'trailing' | 'hideNav'> & {
7
+ showMobileMenu?: boolean;
8
+ }): import("react").JSX.Element;
9
+ //# sourceMappingURL=layout-header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-header.d.ts","sourceRoot":"","sources":["../../../src/components/layout/layout-header.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,QAAQ,EACR,OAAO,EACP,cAAc,GACf,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC,GAAG;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,+BAWrF"}
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { HeaderContainer } from './header.js';
3
+ import { SiteHeader } from './site-header.js';
4
+ /**
5
+ * Top-of-page header for article/app layouts. When `hideNav` is set, only the
6
+ * brand bar (and optional trailing slot) are shown — no site navigation.
7
+ */
8
+ export function LayoutHeader({ header, trailing, hideNav, showMobileMenu, }) {
9
+ if (hideNav) {
10
+ return (_jsx(HeaderContainer, { brandBar: header, hideNav: true, children: trailing ? (_jsx("div", { className: "flex gap-2 justify-end items-center px-2 w-full", children: trailing })) : null }));
11
+ }
12
+ return _jsx(SiteHeader, { brandBar: header, trailing: trailing, showMobileMenu: showMobileMenu });
13
+ }
@@ -15,5 +15,5 @@ export declare function LoadingBar({ align, className, position, fixedTopClassNa
15
15
  fixedTop?: number;
16
16
  /** Render via portal so `fixed` is not trapped by ancestor `backdrop-filter` / `transform`. */
17
17
  portal?: boolean;
18
- }): import("react/jsx-runtime").JSX.Element | null;
18
+ }): import("react").JSX.Element | null;
19
19
  //# sourceMappingURL=loading-bar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loading-bar.d.ts","sourceRoot":"","sources":["../../../src/components/layout/loading-bar.tsx"],"names":[],"mappings":"AAKA;;GAEG;AACH,wBAAgB,UAAU;;;EAmCzB;AAED,wBAAgB,UAAU,CAAC,EACzB,KAAgB,EAChB,SAAS,EACT,QAAqB,EACrB,iBAA4B,EAC5B,QAAQ,EACR,MAAc,GACf,EAAE;IACD,KAAK,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;IAC7C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+FAA+F;IAC/F,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,kDA+BA"}
1
+ {"version":3,"file":"loading-bar.d.ts","sourceRoot":"","sources":["../../../src/components/layout/loading-bar.tsx"],"names":[],"mappings":"AAKA;;GAEG;AACH,wBAAgB,UAAU;;;EAmCzB;AAED,wBAAgB,UAAU,CAAC,EACzB,KAAgB,EAChB,SAAS,EACT,QAAqB,EACrB,iBAA4B,EAC5B,QAAQ,EACR,MAAc,GACf,EAAE;IACD,KAAK,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;IAC7C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+FAA+F;IAC/F,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,sCA+BA"}
@@ -2,7 +2,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useNavigation } from 'react-router';
3
3
  import { useEffect, useMemo, useState } from 'react';
4
4
  import { createPortal } from 'react-dom';
5
- import { cn } from '../../lib/utils';
5
+ import { cn } from '../../lib/utils.js';
6
6
  /**
7
7
  * Show a loading progress bar if the load takes more than 150ms
8
8
  */
@@ -9,5 +9,5 @@ export declare function SiteHeader({ showSearch, showBreadcrumbs, showArticleAct
9
9
  * after any configured actions/search and before the mobile menu button.
10
10
  */
11
11
  trailing?: React.ReactNode;
12
- }): import("react/jsx-runtime").JSX.Element;
12
+ }): import("react").JSX.Element;
13
13
  //# sourceMappingURL=site-header.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"site-header.d.ts","sourceRoot":"","sources":["../../../src/components/layout/site-header.tsx"],"names":[],"mappings":"AAuKA,wBAAgB,UAAU,CAAC,EACzB,UAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,cAAqB,EACrB,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,2CAwKA"}
1
+ {"version":3,"file":"site-header.d.ts","sourceRoot":"","sources":["../../../src/components/layout/site-header.tsx"],"names":[],"mappings":"AA0MA,wBAAgB,UAAU,CAAC,EACzB,UAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,cAAqB,EACrB,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,+BA4KA"}
@@ -2,13 +2,13 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
2
2
  import { useState } from 'react';
3
3
  import { ExternalLink, ChevronDown, MenuIcon, SearchIcon, SidebarIcon } from 'lucide-react';
4
4
  import { NavLink } from 'react-router';
5
- import { Button, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, Sheet, SheetContent, SheetHeader, SheetTitle, SheetTrigger, buttonVariants, SearchDialog, SimpleTooltip, BreadcrumbList, Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbSeparator, BreadcrumbPage, Separator, ArticleActions, ThemeButton, } from '../ui';
6
- import { cn } from '../../lib/utils';
7
- import { usePlatformConfig, usePlatformSite } from '../providers/platform-providers';
8
- import { HeaderContainer } from './header';
5
+ import { Button, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, Sheet, SheetContent, SheetHeader, SheetTitle, SheetTrigger, buttonVariants, SearchDialog, SimpleTooltip, BreadcrumbList, Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbSeparator, BreadcrumbPage, Separator, ArticleActions, ThemeButton, } from '../ui/index.js';
6
+ import { cn } from '../../lib/utils.js';
7
+ import { usePlatformConfig, usePlatformSite } from '../providers/platform-providers.js';
8
+ import { HeaderContainer } from './header.js';
9
9
  import { useBaseurl, useFrontmatter, useProjectManifest } from '@myst-theme/providers';
10
- import { useSidebar } from '../ui/sidebar';
11
- import { useDesign } from '../providers';
10
+ import { useSidebar } from '../ui/sidebar.js';
11
+ import { useDesign } from '../providers/index.js';
12
12
  function NavigationItem({ item }) {
13
13
  if (item.children && item.children.length > 0) {
14
14
  return (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsxs(Button, { variant: "ghost", className: "text-sm font-medium", children: [item.title, _jsx(ChevronDown, { className: "w-3 h-3" })] }) }), _jsx(DropdownMenuContent, { align: "end", children: item.children.map((child) => (_jsx(DropdownMenuItem, { children: _jsx(NavigationItem, { item: child }) }, child.title))) })] }, item.title));
@@ -29,10 +29,15 @@ function MobileNavigationItem({ item, closeMobileMenu, }) {
29
29
  }
30
30
  return (_jsx(NavLink, { to: item.url, className: ({ isActive }) => cn('text-sm font-medium transition-colors hover:text-primary py-2 px-3 hover:bg-muted block', isActive && 'text-primary font-semibold bg-muted'), onClick: closeMobileMenu, children: item.title }, item.title));
31
31
  }
32
+ function SiteLogo({ logo, logoDark, logoText, title, className, }) {
33
+ if (!logo && !logoDark && !logoText)
34
+ return null;
35
+ return (_jsxs("a", { href: "/", className: cn('flex gap-2 items-center mr-2 shrink-0', className), children: [logo && (_jsx("img", { src: logo, alt: title || 'Site Logo', className: cn('w-auto h-8 max-h-8', { 'dark:hidden': !!logoDark }) })), logoDark && (_jsx("img", { src: logoDark, alt: title || 'Site Logo', className: "hidden w-auto h-8 max-h-8 dark:block" })), logoText && _jsx("div", { className: "text-lg", children: logoText })] }));
36
+ }
32
37
  export function SiteHeader({ showSearch = false, showBreadcrumbs, showArticleActions, showMobileMenu = true, brandBar, trailing, }) {
33
38
  const { toggleSidebar } = useSidebar() ?? {};
34
39
  const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);
35
- const { hide_theme_toggle_site_header } = useDesign();
40
+ const { hide_theme_toggle_site_header, center_nav_logo } = useDesign();
36
41
  const site = usePlatformSite();
37
42
  const config = usePlatformConfig();
38
43
  const project = useProjectManifest();
@@ -45,7 +50,12 @@ export function SiteHeader({ showSearch = false, showBreadcrumbs, showArticleAct
45
50
  const logo_dark = site?.logo_dark || config?.options?.logo_dark;
46
51
  const logo_text = config?.options?.logo_text;
47
52
  const title = site?.title || config?.title;
48
- return (_jsx(HeaderContainer, { brandBar: brandBar, children: _jsxs("div", { className: "flex items-center px-2 w-full h-14", children: [_jsxs("div", { className: cn('flex gap-2 items-center h-full', { 'md:w-[200px]': !showBreadcrumbs }), children: [toggleSidebar && (_jsxs(_Fragment, { children: [_jsx(SimpleTooltip, { title: "Toggle sidebar", children: _jsx(Button, { className: "w-8 h-8", variant: "ghost", size: "icon", onClick: toggleSidebar, "aria-label": "Toggle sidebar", children: _jsx(SidebarIcon, { "aria-hidden": "true", focusable: "false" }) }) }), _jsx(Separator, { orientation: "vertical", className: "mr-2 h-4" })] })), (logo || logo_dark || logo_text) && (_jsxs("a", { href: "/", className: "flex gap-2 items-center mr-2 shrink-0", children: [logo && (_jsx("img", { src: logo, alt: title || 'Site Logo', className: cn('w-auto h-8 max-h-8', { 'dark:hidden': !!logo_dark }) })), logo_dark && (_jsx("img", { src: logo_dark, alt: title || 'Site Logo', className: "hidden w-auto h-8 max-h-8 dark:block" })), logo_text && _jsx("div", { className: "text-lg", children: logo_text })] }))] }), showBreadcrumbs && (_jsx(Breadcrumb, { className: "hidden sm:block grow", children: _jsxs(BreadcrumbList, { children: [_jsx(BreadcrumbItem, { children: _jsx(BreadcrumbLink, { href: baseurl, className: "truncate max-w-12 md:max-w-24 lg:max-w-48 xl:max-w-64", children: project?.title }) }), _jsx(BreadcrumbSeparator, {}), _jsx(BreadcrumbItem, { children: _jsx(BreadcrumbPage, { className: "truncate max-w-64 lg:max-w-96", children: article?.title }) })] }) })), !showBreadcrumbs && (_jsx("nav", { className: cn('hidden flex-1 gap-1 justify-center items-center', {
53
+ return (_jsx(HeaderContainer, { brandBar: brandBar, children: _jsxs("div", { className: "flex relative items-center px-2 w-full h-14", children: [_jsxs("div", { className: cn('flex gap-2 items-center h-full', {
54
+ 'md:w-[200px]': !showBreadcrumbs && !center_nav_logo,
55
+ }), children: [toggleSidebar && (_jsxs(_Fragment, { children: [_jsx(SimpleTooltip, { title: "Toggle sidebar", children: _jsx(Button, { className: "w-8 h-8", variant: "ghost", size: "icon", onClick: toggleSidebar, "aria-label": "Toggle sidebar", children: _jsx(SidebarIcon, { "aria-hidden": "true", focusable: "false" }) }) }), _jsx(Separator, { orientation: "vertical", className: "mr-2 h-4" })] })), !center_nav_logo && (_jsx(SiteLogo, { logo: logo, logoDark: logo_dark, logoText: logo_text, title: title }))] }), center_nav_logo && (_jsx("div", { className: "flex absolute inset-x-0 justify-center items-center h-full pointer-events-none", children: _jsx(SiteLogo, { logo: logo, logoDark: logo_dark, logoText: logo_text, title: title, className: "mr-0 pointer-events-auto" }) })), showBreadcrumbs && (_jsx(Breadcrumb, { className: "hidden sm:block grow", children: _jsxs(BreadcrumbList, { children: [_jsx(BreadcrumbItem, { children: _jsx(BreadcrumbLink, { href: baseurl, className: "truncate max-w-12 md:max-w-24 lg:max-w-48 xl:max-w-64", children: project?.title }) }), _jsx(BreadcrumbSeparator, {}), _jsx(BreadcrumbItem, { children: _jsx(BreadcrumbPage, { className: "truncate max-w-64 lg:max-w-96", children: article?.title }) })] }) })), !showBreadcrumbs && (_jsx("nav", { className: cn('hidden flex-1 gap-1 items-center', {
56
+ // a centered logo occupies the middle of the header, so nav links move left
57
+ 'justify-start': center_nav_logo,
58
+ 'justify-center': !center_nav_logo,
49
59
  'md:flex': showNavLinksOnMediumScreen,
50
60
  'lg:flex': showNavLinksOnLargeScreen,
51
61
  }), children: nav?.map((item) => (_jsx(NavigationItem, { item: item }, item.title || item.url))) })), _jsxs("div", { className: cn('flex gap-2 justify-end items-center', {
@@ -8,5 +8,11 @@ export interface LayoutProps {
8
8
  * menu button. Use for app-specific controls (e.g. a logs tray button).
9
9
  */
10
10
  trailing?: React.ReactNode;
11
+ /**
12
+ * When true, omit the site navigation bar (logo, nav links, actions) and
13
+ * only render `header` / `trailing` if provided. Useful for preview pages
14
+ * where site-wide navigation is misleading.
15
+ */
16
+ hideNav?: boolean;
11
17
  }
12
18
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/layout/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/layout/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
@@ -4,7 +4,7 @@ export declare function AnalyticsBoundary({ capture, context, children, }: {
4
4
  capture: AnalyticsCaptureFn;
5
5
  context?: Record<string, unknown>;
6
6
  children: ReactNode;
7
- }): import("react/jsx-runtime").JSX.Element;
7
+ }): import("react").JSX.Element;
8
8
  /**
9
9
  * Capture an analytics event. Merges per-call properties with the article-scoped
10
10
  * context supplied by the nearest AnalyticsBoundary, adds `overlay_depth` from
@@ -1 +1 @@
1
- {"version":3,"file":"analytics-boundary.d.ts","sourceRoot":"","sources":["../../../src/components/providers/analytics-boundary.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKxF,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;AA0B/F,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,OAAO,EACP,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,kBAAkB,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,QAAQ,EAAE,SAAS,CAAC;CACrB,2CAWA;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,IAAI,kBAAkB,CAmBjD"}
1
+ {"version":3,"file":"analytics-boundary.d.ts","sourceRoot":"","sources":["../../../src/components/providers/analytics-boundary.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKxF,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;AA0B/F,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,OAAO,EACP,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,kBAAkB,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,QAAQ,EAAE,SAAS,CAAC;CACrB,+BAWA;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,IAAI,kBAAkB,CAmBjD"}
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { createContext, useCallback, useContext, useMemo } from 'react';
3
- import { OverlayInteractionDepthContext } from './overlay-depth';
4
- import { AnalyticsDevTray } from './analytics-dev-tray';
5
- import { isAnalyticsDevMode, recordAnalyticsDevEvent } from './analytics-dev-log';
3
+ import { OverlayInteractionDepthContext } from './overlay-depth.js';
4
+ import { AnalyticsDevTray } from './analytics-dev-tray.js';
5
+ import { isAnalyticsDevMode, recordAnalyticsDevEvent } from './analytics-dev-log.js';
6
6
  const AnalyticsBoundaryContext = createContext(undefined);
7
7
  function camelToSnake(s) {
8
8
  return s
@@ -1,2 +1,2 @@
1
- export declare function AnalyticsDevTray(): import("react/jsx-runtime").JSX.Element;
1
+ export declare function AnalyticsDevTray(): import("react").JSX.Element;
2
2
  //# sourceMappingURL=analytics-dev-tray.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"analytics-dev-tray.d.ts","sourceRoot":"","sources":["../../../src/components/providers/analytics-dev-tray.tsx"],"names":[],"mappings":"AA8CA,wBAAgB,gBAAgB,4CA2H/B"}
1
+ {"version":3,"file":"analytics-dev-tray.d.ts","sourceRoot":"","sources":["../../../src/components/providers/analytics-dev-tray.tsx"],"names":[],"mappings":"AA8CA,wBAAgB,gBAAgB,gCA2H/B"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect, useLayoutEffect, useRef, useState } from 'react';
3
- import { cn } from '../../lib/utils';
4
- import { clearAnalyticsDevLog, useAnalyticsDevLog, } from './analytics-dev-log';
3
+ import { cn } from '../../lib/utils.js';
4
+ import { clearAnalyticsDevLog, useAnalyticsDevLog, } from './analytics-dev-log.js';
5
5
  function formatTime(timestamp) {
6
6
  return new Date(timestamp).toLocaleTimeString();
7
7
  }
@@ -47,7 +47,7 @@ export function AnalyticsDevTray() {
47
47
  }
48
48
  }, [logs, selectedId]);
49
49
  const selected = logs.find((entry) => entry.id === selectedId) ?? logs[0] ?? null;
50
- return (_jsxs("div", { className: "fixed bottom-12 left-4 z-[200] flex flex-col items-start gap-2 pointer-events-none", children: [open && (_jsxs("div", { className: "pointer-events-auto flex w-[min(24rem,calc(100vw-2rem))] max-h-[min(50vh,28rem)] flex-col overflow-hidden rounded-lg border bg-popover text-popover-foreground shadow-xl", children: [_jsxs("div", { className: "flex gap-2 justify-between items-center px-3 py-2 border-b", children: [_jsx("div", { className: "text-sm font-medium", children: "Analytics session" }), _jsxs("div", { className: "flex gap-2 items-center", children: [_jsx("button", { type: "button", className: "text-xs text-blue-600 hover:underline dark:text-blue-400", onClick: () => copyText(JSON.stringify(logs.map((entry) => entry.payload), null, 2)), disabled: logs.length === 0, children: "Copy all" }), _jsx("button", { type: "button", className: "text-xs text-muted-foreground hover:underline", onClick: () => {
50
+ return (_jsxs("div", { className: "fixed bottom-12 left-4 z-[200] flex flex-col items-start gap-2 pointer-events-none font-ui", children: [open && (_jsxs("div", { className: "pointer-events-auto flex w-[min(24rem,calc(100vw-2rem))] max-h-[min(50vh,28rem)] flex-col overflow-hidden rounded-lg border bg-popover text-popover-foreground shadow-xl", children: [_jsxs("div", { className: "flex gap-2 justify-between items-center px-3 py-2 border-b", children: [_jsx("div", { className: "text-sm font-medium", children: "Analytics session" }), _jsxs("div", { className: "flex gap-2 items-center", children: [_jsx("button", { type: "button", className: "text-xs text-blue-600 hover:underline dark:text-blue-400", onClick: () => copyText(JSON.stringify(logs.map((entry) => entry.payload), null, 2)), disabled: logs.length === 0, children: "Copy all" }), _jsx("button", { type: "button", className: "text-xs text-muted-foreground hover:underline", onClick: () => {
51
51
  clearAnalyticsDevLog();
52
52
  setSelectedId(null);
53
53
  }, disabled: logs.length === 0, children: "Clear" }), _jsx("button", { type: "button", className: "text-xs text-muted-foreground hover:underline", onClick: () => setOpen(false), children: "Close" })] })] }), _jsx("ul", { ref: listRef, className: "overflow-auto flex-1 min-h-0", children: logs.length === 0 ? (_jsx("li", { className: "px-3 py-4 text-xs text-muted-foreground", children: "No events captured yet." })) : ([...logs].reverse().map((entry) => (_jsx("li", { "data-log-id": entry.id, children: _jsxs("button", { type: "button", onClick: () => setSelectedId(entry.id), className: cn('flex w-full items-start justify-between gap-3 px-3 py-2 text-left hover:bg-muted/60', selected?.id === entry.id && 'bg-muted'), children: [_jsx("span", { className: "min-w-0 font-mono text-xs font-medium break-all", children: entry.event }), _jsx("span", { className: "shrink-0 text-[10px] text-muted-foreground", children: formatTime(entry.timestamp) })] }) }, entry.id)))) }), _jsx(LogDetail, { entry: selected })] })), _jsxs("button", { type: "button", onClick: () => setOpen((value) => !value), className: cn('pointer-events-auto rounded-full border px-3 py-1.5 text-xs font-medium shadow-md transition-colors duration-300', flash
@@ -13,7 +13,7 @@ export declare function ArticleVersionsProvider({ children, versions, currentVer
13
13
  children: ReactNode;
14
14
  versions?: ArticleVersionNavItem[];
15
15
  currentVersionTag?: string | null;
16
- }): import("react/jsx-runtime").JSX.Element;
16
+ }): import("react").JSX.Element;
17
17
  export declare function useArticleVersions(): ArticleVersionsContextValue;
18
18
  export {};
19
19
  //# sourceMappingURL=article-versions-provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"article-versions-provider.d.ts","sourceRoot":"","sources":["../../../src/components/providers/article-versions-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAElE,MAAM,MAAM,qBAAqB,GAAG;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,KAAK,2BAA2B,GAAG;IACjC,QAAQ,EAAE,qBAAqB,EAAE,CAAC;IAClC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,CAAC;AASF,wBAAgB,uBAAuB,CAAC,EACtC,QAAQ,EACR,QAAa,EACb,iBAAwB,GACzB,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC,2CAMA;AAED,wBAAgB,kBAAkB,IAAI,2BAA2B,CAEhE"}
1
+ {"version":3,"file":"article-versions-provider.d.ts","sourceRoot":"","sources":["../../../src/components/providers/article-versions-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAElE,MAAM,MAAM,qBAAqB,GAAG;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,KAAK,2BAA2B,GAAG;IACjC,QAAQ,EAAE,qBAAqB,EAAE,CAAC;IAClC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,CAAC;AASF,wBAAgB,uBAAuB,CAAC,EACtC,QAAQ,EACR,QAAa,EACb,iBAAwB,GACzB,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC,+BAMA;AAED,wBAAgB,kBAAkB,IAAI,2BAA2B,CAEhE"}
@@ -1,5 +1,5 @@
1
1
  export declare function ComputeProvider({ children, article, }: {
2
2
  children: React.ReactNode;
3
3
  article: any;
4
- }): import("react/jsx-runtime").JSX.Element;
4
+ }): import("react").JSX.Element;
5
5
  //# sourceMappingURL=compute.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compute.d.ts","sourceRoot":"","sources":["../../../src/components/providers/compute.tsx"],"names":[],"mappings":"AAMA,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,OAAO,GACR,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,EAAE,GAAG,CAAC;CACd,2CASA"}
1
+ {"version":3,"file":"compute.d.ts","sourceRoot":"","sources":["../../../src/components/providers/compute.tsx"],"names":[],"mappings":"AAMA,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,OAAO,GACR,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,EAAE,GAAG,CAAC;CACd,+BASA"}
@@ -1,6 +1,7 @@
1
- import type { JournalThemeConfig, ArticleThemeConfig, DesignOptions, DesignPresetConfig } from '@curvenote/common';
1
+ import type { SiteThemeConfig, ArticleThemeConfig, DesignOptions, DesignPresetConfig } from '@curvenote/common';
2
2
  import { type ExtendedCoreOptions, type PingFn } from '@curvenote/bridge-jupyter';
3
3
  import { type SiteManifest } from 'myst-config';
4
+ import type { ThebeServer } from 'thebe-core';
4
5
  type ManifestProject = Required<SiteManifest>['projects'][0];
5
6
  /**
6
7
  * Based on the article SubmissionKind, resolve the theme config options for that kind, if specified,
@@ -10,29 +11,24 @@ type ManifestProject = Required<SiteManifest>['projects'][0];
10
11
  * @param config
11
12
  * @returns - a resolved set of options that can be applied to the article without the need for further fallback logic
12
13
  */
13
- export declare function resolveArticleConfigOptions(kindName: string, config?: JournalThemeConfig): ArticleThemeConfig;
14
+ export declare function resolveArticleConfigOptions(kindName: string, config?: SiteThemeConfig): ArticleThemeConfig;
14
15
  export declare function resolveThemeAndProjectComputeOptions(resolvedArticleConfig: ArticleThemeConfig, project: Required<SiteManifest>['projects'][0]): ArticleThemeConfig;
15
16
  type RepoProviderSpec = any;
17
+ type AdditionalThemeComputeConfig = {
18
+ optionOverrideFn?: (opts?: ExtendedCoreOptions) => ExtendedCoreOptions | undefined;
19
+ customRepoProviders?: RepoProviderSpec[];
20
+ customConnectFn?: (server: ThebeServer) => Promise<void>;
21
+ mecaUrl?: string | null;
22
+ errors?: {
23
+ noMecaBundle?: boolean | null;
24
+ };
25
+ };
16
26
  export declare function getCustomRepoProviders(names: string[]): RepoProviderSpec[];
17
27
  /**
18
28
  * Get the Jupyter configuration based on a combination of the theme's
19
29
  * features and overrides, and the site manifest
20
30
  */
21
- export declare function getAdditionalThemeComputeConfig(resolvedConfig: ArticleThemeConfig, mecaUrl: string | null, respectLocalServerSettings?: boolean): {
22
- optionOverrideFn?: undefined;
23
- customRepoProviders?: undefined;
24
- customConnectFn?: undefined;
25
- mecaUrl?: undefined;
26
- errors?: undefined;
27
- } | {
28
- optionOverrideFn: (opts?: ExtendedCoreOptions) => ExtendedCoreOptions | undefined;
29
- customRepoProviders: any[] | undefined;
30
- customConnectFn: ((server: import("thebe-core").ThebeServer) => Promise<void>) | undefined;
31
- mecaUrl: string | null;
32
- errors: {
33
- noMecaBundle: boolean | undefined;
34
- };
35
- };
31
+ export declare function getAdditionalThemeComputeConfig(resolvedConfig: ArticleThemeConfig, mecaUrl: string | null, respectLocalServerSettings?: boolean): AdditionalThemeComputeConfig;
36
32
  type CurvenoteDesignConfig = DesignPresetConfig | DesignOptions;
37
33
  export declare function getFullyQualifiedUrlToMECABundle(project: ManifestProject): string | null;
38
34
  export declare function CurvenoteProviders({ children, submissionKind, design, mode, pingFn: providedPingFn, }: {
@@ -46,6 +42,6 @@ export declare function CurvenoteProviders({ children, submissionKind, design, m
46
42
  * This allows routes to curry in metadata like workVersionId, articleTitle, etc.
47
43
  */
48
44
  pingFn?: PingFn;
49
- }): import("react/jsx-runtime").JSX.Element;
45
+ }): import("react").JSX.Element;
50
46
  export {};
51
47
  //# sourceMappingURL=curvenote-providers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"curvenote-providers.d.ts","sourceRoot":"","sources":["../../../src/components/providers/curvenote-providers.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAElB,aAAa,EACb,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAIL,KAAK,mBAAmB,EACxB,KAAK,MAAM,EACZ,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAchD,KAAK,eAAe,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7D;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,kBAAkB,GAC1B,kBAAkB,CAyBpB;AAED,wBAAgB,oCAAoC,CAClD,qBAAqB,EAAE,kBAAkB,EACzC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,sBAqC/C;AAED,KAAK,gBAAgB,GAAG,GAAG,CAAC;AA2B5B,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAE1E;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,cAAc,EAAE,kBAAkB,EAClC,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,0BAA0B,CAAC,EAAE,OAAO;;;;;;;8BAKH,mBAAmB;;;;;;;EAwDrD;AAQD,KAAK,qBAAqB,GAAG,kBAAkB,GAAG,aAAa,CAAC;AAEhE,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAIxF;AAED,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,cAA6B,EAC7B,MAAM,EACN,IAAmB,EACnB,MAAM,EAAE,cAAc,GACvB,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,qBAAqB,GAAG,qBAAqB,EAAE,CAAC;IACzD,IAAI,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC;IACpC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,2CA0DA"}
1
+ {"version":3,"file":"curvenote-providers.d.ts","sourceRoot":"","sources":["../../../src/components/providers/curvenote-providers.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAElB,aAAa,EACb,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAIL,KAAK,mBAAmB,EACxB,KAAK,MAAM,EACZ,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAYhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,KAAK,eAAe,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7D;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,eAAe,GACvB,kBAAkB,CAyBpB;AAED,wBAAgB,oCAAoC,CAClD,qBAAqB,EAAE,kBAAkB,EACzC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,sBAqC/C;AAED,KAAK,gBAAgB,GAAG,GAAG,CAAC;AAG5B,KAAK,4BAA4B,GAAG;IAClC,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,mBAAmB,KAAK,mBAAmB,GAAG,SAAS,CAAC;IACnF,mBAAmB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACzC,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE;QACP,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;KAC/B,CAAC;CACH,CAAC;AA0BF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAE1E;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,cAAc,EAAE,kBAAkB,EAClC,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,0BAA0B,CAAC,EAAE,OAAO,GACnC,4BAA4B,CA4D9B;AAQD,KAAK,qBAAqB,GAAG,kBAAkB,GAAG,aAAa,CAAC;AAEhE,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAIxF;AAED,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,cAA6B,EAC7B,MAAM,EACN,IAAmB,EACnB,MAAM,EAAE,cAAc,GACvB,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,qBAAqB,GAAG,qBAAqB,EAAE,CAAC;IACzD,IAAI,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC;IACpC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,+BA0DA"}