@takazudo/zudo-doc 8.0.0 → 8.1.1

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 (48) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/README.md +2 -2
  3. package/dist/asset-index-page/body.js +9 -9
  4. package/dist/compiled.css +15 -8
  5. package/dist/config-assertions/index.d.ts +13 -0
  6. package/dist/config-assertions/index.js +25 -0
  7. package/dist/config.d.ts +12 -1
  8. package/dist/config.js +2 -0
  9. package/dist/diff-loader.d.ts +3 -0
  10. package/dist/diff-loader.js +13 -0
  11. package/dist/doc-history/index.js +6 -5
  12. package/dist/doclayout/doc-layout.js +5 -1
  13. package/dist/features.css +24 -0
  14. package/dist/header/header.d.ts +9 -0
  15. package/dist/header/header.js +21 -2
  16. package/dist/header-with-defaults/index.d.ts +3 -1
  17. package/dist/header-with-defaults/index.js +1 -0
  18. package/dist/home-page/index.js +1 -1
  19. package/dist/katex-loader.d.ts +3 -0
  20. package/dist/katex-loader.js +12 -0
  21. package/dist/math-block/index.js +4 -9
  22. package/dist/md-utils/index.d.ts +8 -2
  23. package/dist/md-utils/index.js +10 -3
  24. package/dist/nav-indexing/note-tray-index-parts/card-list.js +25 -21
  25. package/dist/nav-indexing/note-tray-index-parts/date-line.d.ts +3 -1
  26. package/dist/nav-indexing/note-tray-index-parts/date-line.js +17 -10
  27. package/dist/nav-indexing/note-tray-index-parts/index-list.js +4 -3
  28. package/dist/plugins/diff-loader.d.ts +4 -0
  29. package/dist/plugins/diff-loader.js +13 -0
  30. package/dist/plugins/katex-loader.d.ts +4 -0
  31. package/dist/plugins/katex-loader.js +13 -0
  32. package/dist/preset.d.ts +6 -2
  33. package/dist/preset.js +14 -1
  34. package/dist/settings-defaults.js +1 -0
  35. package/dist/settings.d.ts +21 -0
  36. package/dist/sidebar-tree-island/index.js +2 -6
  37. package/dist/site-tree-nav-island/index.js +11 -8
  38. package/dist/theme-packs/brutalist/pack.css +2 -2
  39. package/dist/transitions/persisted-focus-settle-bootstrap.d.ts +2 -0
  40. package/dist/transitions/persisted-focus-settle-bootstrap.js +22 -0
  41. package/dist/tree-nav-shared/index.d.ts +2 -0
  42. package/dist/tree-nav-shared/index.js +8 -1
  43. package/dist/wind.json +0 -2
  44. package/eject/doc-history/index.tsx +13 -9
  45. package/eject/header/header.tsx +40 -0
  46. package/eject/sidebar-tree-island/index.tsx +2 -8
  47. package/eject/site-tree-nav-island/index.tsx +15 -8
  48. package/package.json +24 -8
@@ -12,6 +12,7 @@ import type { ResolvedDateFormats } from "../settings.js";
12
12
  import {
13
13
  INDENT,
14
14
  connectorLeft,
15
+ connectorLabelStart,
15
16
  ConnectorLines,
16
17
  CategoryLinkIcon,
17
18
  } from "../tree-nav-shared/index.js";
@@ -30,9 +31,15 @@ import { initialCategoryOpenState, toggleCategoryOpenState } from "./state.js";
30
31
  // site-tree-nav uses wider padding than the narrow sidebar
31
32
  const SITE_BASE_PAD = "clamp(0.5rem, 0.8vw, 1rem)";
32
33
 
34
+ // The homepage draws its connectors at twice the sidebar width, so on wide
35
+ // viewports the branch endpoint passes the fixed label indent. The label starts
36
+ // at whichever is further right: that indent, or the endpoint plus a gap.
37
+ const CONNECTOR_WIDTH_SCALE = 2;
38
+ const CONNECTOR_LABEL_GAP = "var(--spacing-hsp-xs)";
39
+
33
40
  function padLeft(depth: number): string {
34
41
  if (depth === 0) return SITE_BASE_PAD;
35
- return `calc(${depth} * ${INDENT} + 1.25rem + 5px)`;
42
+ return `max(calc(${depth} * ${INDENT} + 1.25rem + 5px), ${connectorLabelStart(depth, CONNECTOR_WIDTH_SCALE, CONNECTOR_LABEL_GAP)})`;
36
43
  }
37
44
 
38
45
  function reorderTree(tree: SidebarNavNode[], order: string[]): SidebarNavNode[] {
@@ -223,7 +230,7 @@ function CategoryNode({
223
230
  <ConnectorLines
224
231
  depth={depth}
225
232
  isLast={true}
226
- widthScale={2}
233
+ widthScale={CONNECTOR_WIDTH_SCALE}
227
234
  topPad="calc(0.15rem + var(--spacing-vsp-xs))"
228
235
  />
229
236
  )}
@@ -233,7 +240,7 @@ function CategoryNode({
233
240
  <ConnectorLines
234
241
  depth={depth}
235
242
  isLast={false}
236
- widthScale={2}
243
+ widthScale={CONNECTOR_WIDTH_SCALE}
237
244
  topPad="calc(0.15rem + var(--spacing-vsp-xs))"
238
245
  />
239
246
  )}
@@ -436,13 +443,13 @@ function NoteTrayRow({
436
443
  <a
437
444
  href={computed(() => href.value ?? "")}
438
445
  data-note-tray-row
439
- class="flex items-start gap-hsp-sm py-vsp-2xs text-small text-fg hover:text-accent hover:underline focus:underline focus-visible:text-accent"
446
+ class="group flex items-start gap-hsp-sm py-vsp-2xs text-small text-fg hover:text-accent hover:underline focus:underline focus-visible:text-accent"
440
447
  >
441
448
  <Show
442
449
  when={computed(() => Boolean(dateLabel.value))}
443
450
  fallback={() => (
444
451
  <span
445
- class="shrink-0 font-mono tabular-nums text-caption text-muted"
452
+ class="shrink-0 font-mono tabular-nums text-caption text-muted group-hover:text-accent group-focus-visible:text-accent"
446
453
  style={computed(() => ({ width: `${width.value}ch` }))}
447
454
  >
448
455
  {rankLabel}
@@ -452,7 +459,7 @@ function NoteTrayRow({
452
459
  {() => (
453
460
  <time
454
461
  datetime={computed(() => item.value.date ?? "")}
455
- class="shrink-0 font-mono tabular-nums text-caption text-muted"
462
+ class="shrink-0 font-mono tabular-nums text-caption text-muted group-hover:text-accent group-focus-visible:text-accent"
456
463
  >
457
464
  {computed(() => dateLabel.value ?? "")}
458
465
  </time>
@@ -495,7 +502,7 @@ function LeafNode({
495
502
  <ConnectorLines
496
503
  depth={depth}
497
504
  isLast={true}
498
- widthScale={2}
505
+ widthScale={CONNECTOR_WIDTH_SCALE}
499
506
  topPad={topPad}
500
507
  />
501
508
  )}
@@ -505,7 +512,7 @@ function LeafNode({
505
512
  <ConnectorLines
506
513
  depth={depth}
507
514
  isLast={false}
508
- widthScale={2}
515
+ widthScale={CONNECTOR_WIDTH_SCALE}
509
516
  topPad={topPad}
510
517
  />
511
518
  )}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@takazudo/zudo-doc",
3
- "version": "8.0.0",
3
+ "version": "8.1.1",
4
4
  "type": "module",
5
5
  "description": "zudo-doc framework primitives layer that sits on top of zfb's engine — sidebar, theme, TOC, breadcrumb, layouts, head injection, View Transitions, SSR-skip wrappers (per ADR-003).",
6
6
  "license": "MIT",
@@ -206,6 +206,14 @@
206
206
  "types": "./dist/plugins/zdtp-loader.d.ts",
207
207
  "default": "./dist/plugins/zdtp-loader.js"
208
208
  },
209
+ "./plugins/katex-loader": {
210
+ "types": "./dist/plugins/katex-loader.d.ts",
211
+ "default": "./dist/plugins/katex-loader.js"
212
+ },
213
+ "./plugins/diff-loader": {
214
+ "types": "./dist/plugins/diff-loader.d.ts",
215
+ "default": "./dist/plugins/diff-loader.js"
216
+ },
209
217
  "./content-admonition": {
210
218
  "types": "./dist/content-admonition/index.d.ts",
211
219
  "default": "./dist/content-admonition/index.js"
@@ -712,6 +720,14 @@
712
720
  "./zdtp-loader": {
713
721
  "types": "./dist/zdtp-loader.d.ts",
714
722
  "default": "./dist/zdtp-loader.js"
723
+ },
724
+ "./katex-loader": {
725
+ "types": "./dist/katex-loader.d.ts",
726
+ "default": "./dist/katex-loader.js"
727
+ },
728
+ "./diff-loader": {
729
+ "types": "./dist/diff-loader.d.ts",
730
+ "default": "./dist/diff-loader.js"
715
731
  }
716
732
  },
717
733
  "bin": {
@@ -736,9 +752,9 @@
736
752
  "peerDependencies": {
737
753
  "@modelcontextprotocol/sdk": "1.32.2",
738
754
  "@takazudo/zdtp": "^0.5.2 || ^0.6.0 || ^0.7.0 || ^0.8.0",
739
- "@takazudo/zfb": "^5.0.1",
740
- "@takazudo/zfb-md-wasm": "^5.0.1",
741
- "@takazudo/zfb-runtime": "^5.0.1",
755
+ "@takazudo/zfb": "^5.1.3",
756
+ "@takazudo/zfb-md-wasm": "^5.1.3",
757
+ "@takazudo/zfb-runtime": "^5.1.3",
742
758
  "@takazudo/zudo-doc-history-server": "^8.0.0",
743
759
  "diff": "^8.0.0",
744
760
  "katex": "^0.18.2 || ^0.19.0",
@@ -779,9 +795,9 @@
779
795
  "devDependencies": {
780
796
  "@modelcontextprotocol/sdk": "1.32.2",
781
797
  "@takazudo/mdx-formatter": "1.3.0",
782
- "@takazudo/zfb": "5.0.1",
783
- "@takazudo/zfb-md-wasm": "5.0.1",
784
- "@takazudo/zfb-runtime": "5.0.1",
798
+ "@takazudo/zfb": "5.1.3",
799
+ "@takazudo/zfb-md-wasm": "5.1.3",
800
+ "@takazudo/zfb-runtime": "5.1.3",
785
801
  "@types/fs-extra": "^11.0.4",
786
802
  "@types/minimist": "^1.2.5",
787
803
  "@types/node": "^25.3.5",
@@ -791,7 +807,7 @@
791
807
  "typescript": "^5.0.0",
792
808
  "vitest": "^4.1.0",
793
809
  "zod": "^4.3.6",
794
- "@takazudo/zudo-doc-history-server": "8.0.0"
810
+ "@takazudo/zudo-doc-history-server": "8.1.1"
795
811
  },
796
812
  "scripts": {
797
813
  "gen:search-widget-script": "node scripts/gen-search-widget-script.mjs",