@terra-symposium/docs 0.1.74 → 0.1.75

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@terra-symposium/docs",
3
- "version": "0.1.74",
3
+ "version": "0.1.75",
4
4
  "description": "Terra Docs workspace and Markdown site generator.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -13,7 +13,7 @@ const packageRoot = fileURLToPath(new URL('../', import.meta.url));
13
13
  const requireFromPackage = createRequire(import.meta.url);
14
14
  const projectRoot = process.env.TERRA_DOCS_ROOT ?? process.cwd();
15
15
  const publicDir = resolve(projectRoot, '.terra-docs/public');
16
- const outDir = resolve(projectRoot, process.env.TERRA_DOCS_OUT ?? 'docs-dist');
16
+ const outDir = resolve(projectRoot, process.env.TERRA_DOCS_OUT ?? 'dist/docs');
17
17
  const site = process.env.TERRA_DOCS_SITE;
18
18
  const base = process.env.TERRA_DOCS_BASE ?? '/';
19
19
  const projectManifest = (() => {
@@ -34,6 +34,7 @@ export function DocsSiteSearch({ base = '/' }: Props) {
34
34
  };
35
35
 
36
36
  useEffect(() => {
37
+ const onOpenSearch = () => open();
37
38
  const onKeyDown = (event: KeyboardEvent) => {
38
39
  if ((event.metaKey || event.ctrlKey) && event.key.toLowerCase() === 'k') {
39
40
  event.preventDefault();
@@ -46,8 +47,12 @@ export function DocsSiteSearch({ base = '/' }: Props) {
46
47
  open();
47
48
  }
48
49
  };
50
+ document.addEventListener('docs:open-search', onOpenSearch);
49
51
  document.addEventListener('keydown', onKeyDown);
50
- return () => document.removeEventListener('keydown', onKeyDown);
52
+ return () => {
53
+ document.removeEventListener('docs:open-search', onOpenSearch);
54
+ document.removeEventListener('keydown', onKeyDown);
55
+ };
51
56
  }, []);
52
57
 
53
58
  useEffect(() => {
@@ -85,16 +90,6 @@ export function DocsSiteSearch({ base = '/' }: Props) {
85
90
 
86
91
  return (
87
92
  <div className="terra-docs-search">
88
- <button
89
- className="terra-docs-search-trigger"
90
- type="button"
91
- onClick={open}
92
- aria-label="Search documentation"
93
- >
94
- <span aria-hidden="true">⌕</span>
95
- <span>Search docs</span>
96
- <kbd>⌘ K</kbd>
97
- </button>
98
93
  <dialog className="terra-docs-search-dialog" ref={dialog} onClose={() => setQuery('')}>
99
94
  <div className="terra-docs-search-panel">
100
95
  <label className="terra-docs-search-input-row">
@@ -1,6 +1,7 @@
1
1
  /// <reference types="vite/client" />
2
2
 
3
3
  import type { DocsNavNode } from '../../../src/components/navigation.js';
4
+ import { getHue } from '@terra-symposium/styling';
4
5
 
5
6
  type SidebarFrontmatter = {
6
7
  label?: string;
@@ -110,6 +111,7 @@ for (const page of sitePages.filter((item) => !item.hidden && item.slug !== '404
110
111
  const overview = currentNodes.get('overview') ?? {
111
112
  id: 'overview',
112
113
  title: 'Overview',
114
+ hue: getHue('Overview'),
113
115
  children: new Map(),
114
116
  };
115
117
  if (!currentNodes.has('overview')) currentNodes.set('overview', overview);
@@ -120,7 +122,12 @@ for (const page of sitePages.filter((item) => !item.hidden && item.slug !== '404
120
122
  prefix = prefix ? `${prefix}/${segment}` : segment;
121
123
  let node = currentNodes.get(segment);
122
124
  if (!node) {
123
- node = { id: prefix, title: label(segment), children: new Map() };
125
+ node = {
126
+ id: prefix,
127
+ title: label(segment),
128
+ ...(prefix === segment ? { hue: getHue(label(segment)) } : {}),
129
+ children: new Map(),
130
+ };
124
131
  currentNodes.set(segment, node);
125
132
  }
126
133
  current = node;