Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
fe9d251
wip
ryanatkn Jan 3, 2026
5195947
wip
ryanatkn Jan 3, 2026
935c6c3
wip
ryanatkn Jan 3, 2026
c871619
wip
ryanatkn Jan 3, 2026
5c68c8e
wip
ryanatkn Jan 3, 2026
e06e24e
wip
ryanatkn Jan 4, 2026
686cc1e
wip
ryanatkn Jan 5, 2026
2281e92
wip
ryanatkn Jan 5, 2026
8de2e90
wip
ryanatkn Jan 6, 2026
3694a3b
wip
ryanatkn Jan 20, 2026
a78a0ea
wip
ryanatkn Feb 2, 2026
1622949
wip
ryanatkn Feb 2, 2026
6c01d31
wip
ryanatkn Feb 12, 2026
d9af477
wip
ryanatkn Feb 12, 2026
119a18c
wip
ryanatkn Feb 13, 2026
425a120
wip
ryanatkn Feb 13, 2026
01874e4
wip
ryanatkn Feb 13, 2026
ad97e59
wip
ryanatkn Feb 13, 2026
04320c4
wip
ryanatkn Feb 13, 2026
75f89e7
wip
ryanatkn Feb 13, 2026
41d9aac
wip
ryanatkn Feb 13, 2026
f9d199c
wip
ryanatkn Feb 13, 2026
35620f7
wip
ryanatkn Feb 14, 2026
62f55a4
wip
ryanatkn Feb 14, 2026
31bbd1a
wip
ryanatkn Feb 17, 2026
d9f2bac
wip
ryanatkn Feb 18, 2026
53f2fce
wip
ryanatkn Feb 20, 2026
d3d65aa
wip
ryanatkn Feb 20, 2026
00beff4
wip
ryanatkn Feb 25, 2026
e11d067
wip
ryanatkn Feb 25, 2026
731b141
wip
ryanatkn Feb 25, 2026
9481e62
wip
ryanatkn Feb 25, 2026
4c3efce
Merge branch 'main' into extract-docinfo
ryanatkn Mar 4, 2026
2f07fea
wip
ryanatkn Mar 5, 2026
4627422
wip
ryanatkn Mar 5, 2026
3270180
wip
ryanatkn Mar 8, 2026
c4d90a3
wip
ryanatkn Mar 8, 2026
4af30f1
wip
ryanatkn Mar 8, 2026
c9684b9
wip
ryanatkn Mar 8, 2026
894e2c3
wip
ryanatkn Mar 8, 2026
727df3b
wip
ryanatkn Mar 8, 2026
840ac6b
wip
ryanatkn Mar 16, 2026
1106158
wip
ryanatkn Mar 17, 2026
a7e4e8a
wip
ryanatkn Apr 5, 2026
af1720d
wip
ryanatkn Apr 5, 2026
c6bd2fd
wip
ryanatkn Apr 5, 2026
8410586
wip
ryanatkn Apr 5, 2026
082c985
wip
ryanatkn Apr 5, 2026
31621a4
Merge branch 'main' into extract-docinfo
ryanatkn Apr 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 27 additions & 25 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ dev server.
- SvelteKit - application framework
- fuz_css (@fuzdev/fuz_css) - CSS framework and design system foundation
- fuz_util (@fuzdev/fuz_util) - utility library
- svelte-docinfo (svelte-docinfo) - TypeScript/Svelte static analysis
- Gro (@fuzdev/gro) - build system and CLI

## Scope
Expand Down Expand Up @@ -71,12 +72,11 @@ src/
represents a component or helper with `name`, `category`, `component`, and
`related` fields. Central registry: `src/routes/docs/tomes.ts`

**Identifier namespacing** - fuz_ui uses domain-prefix naming for its helper
clusters. See `fuz-stack` for the full naming conventions.

Helper file prefixes: `ts_*` (TypeScript API), `tsdoc_*` (JSDoc parsing),
`svelte_*` (component analysis), `module_*` (path utilities),
`package_gen_*` (Gro package generation).
**svelte-docinfo** - TypeScript/Svelte static analysis is provided by the
`svelte-docinfo` package. fuz_ui imports analysis functions (`analyze`,
`throwOnDuplicates` from `analyze.js`), source utilities (`isTypescript`,
`isSvelte` from `source.js`), and types (`ModuleJson`, `DeclarationJson`,
`generateImport`, `getDisplayName` from `types.js`).

## Components

Expand Down Expand Up @@ -147,27 +147,27 @@ Helper file prefixes: `ts_*` (TypeScript API), `tsdoc_*` (JSDoc parsing),

### Library and API generation

- `library.gen.ts` - Gro genfile that orchestrates metadata generation
- `library_gen.ts` - Gro integration: calls `analyze()` from svelte-docinfo,
wraps with `SourceJson` metadata, outputs Gro `Gen` format
- `library.svelte.ts` - `Library` class wrapping library data
- `declaration.svelte.ts` - `Declaration` class for code declarations
- `module.svelte.ts` - `Module` class for source files
- `declaration.svelte.ts` - `Declaration` class for code declarations (uses
`generateImport`, `getDisplayName` from `svelte-docinfo/types.js`)
- `module.svelte.ts` - `Module` class for source files (uses `ModuleJson` from
`svelte-docinfo/types.js`)
- `LibraryDetail.svelte` - library overview component (uses `isTypescript`,
`isSvelte`, `isCss`, `isJson` from `svelte-docinfo/source.js`)
- `library_helpers.ts` - docs URL helpers
- `vite_plugin_library_well_known.ts` - RFC 8615 `.well-known/` metadata publishing

### TypeScript and Svelte analysis

- `ts_helpers.ts` - TypeScript compiler API utilities (`ts_analyze_declaration`,
`ts_analyze_module_exports`, `ts_create_program`)
- `svelte_helpers.ts` - Svelte component analysis (`svelte_analyze_file`,
`svelte_analyze_component`)
- `tsdoc_helpers.ts` - JSDoc/TSDoc parsing (`tsdoc_parse`,
`tsdoc_apply_to_declaration`). Supports `@param`, `@returns`, `@throws`,
`@example`, `@deprecated`, `@see`, `@since`, `@nodocs`, `@mutates`
- `module_helpers.ts` - module path utilities (`module_is_typescript`,
`module_is_svelte`, `module_extract_path`)
- `library_analysis.ts` - unified analysis entry point
- `library_pipeline.ts` - pipeline orchestration (collect, analyze, validate,
transform, output)
Analysis is provided by `svelte-docinfo`. See its CLAUDE.md for the
full API. Key imports used by fuz_ui:

- `analyze.js` - `analyze()`, `throwOnDuplicates`, `OnDuplicatesCallback`
- `source.js` - `createSourceOptions`, `validateSourceOptions`, `isSource`,
`getSourceRoot`, `isTypescript`, `isSvelte`, `isCss`, `isJson`,
`SourceFileInfo`, `ModuleSourceOptions`, `ModuleSourcePartial`
- `types.js` - `ModuleJson`, `DeclarationJson`, `generateImport`, `getDisplayName`
- `pipeline.js` - `DuplicateInfo`

### Browser and DOM

Expand Down Expand Up @@ -284,8 +284,9 @@ API docs.

**API documentation** - auto-generated from TypeScript/Svelte source with full
TSDoc support. Two-phase architecture: TSDoc extraction at build time
(`tsdoc_helpers.ts`), mdz rendering at runtime (`mdz.ts`). Setup requires
`library.gen.ts` and API routes. See `src/routes/docs/api/` for example routes.
(via `svelte-docinfo`), mdz rendering at runtime (`mdz.ts`). Setup
requires `library.gen.ts` and API routes. See `src/routes/docs/api/` for
example routes.

**Docs layout** - `<Docs>` provides three-column responsive layout with managed
contexts for navigation.
Expand Down Expand Up @@ -360,6 +361,7 @@ For `svelte_preprocess_mdz` fixtures, input files with fake imports need

- [`fuz_css`](../fuz_css/CLAUDE.md) - CSS framework (peer dependency)
- [`fuz_util`](../fuz_util/CLAUDE.md) - utility functions (peer dependency)
- [`svelte-docinfo`](../private_svelte-docinfo/CLAUDE.md) - TypeScript/Svelte static analysis (dependency)
- [`fuz_template`](../fuz_template/CLAUDE.md) - starter template using fuz_ui
- [`fuz_blog`](../fuz_blog/CLAUDE.md) - blog template using fuz_ui
- [`fuz_mastodon`](../fuz_mastodon/CLAUDE.md) - Mastodon components using fuz_ui
65 changes: 62 additions & 3 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 4 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@
"peerDependencies": {
"@fuzdev/fuz_code": ">=0.45.1",
"@fuzdev/fuz_css": ">=0.53.0",
"@fuzdev/fuz_util": ">=0.52.0",
"@fuzdev/gro": ">=0.195.0",
"@fuzdev/fuz_util": "file:../fuz_util",
"@fuzdev/gro": "file:../gro",
"@jridgewell/trace-mapping": "^0.3",
"@sveltejs/kit": "^2.47.3",
"@types/estree": "^1",
Expand Down Expand Up @@ -80,6 +80,7 @@
},
"devDependencies": {
"@changesets/changelog-git": "^0.2.1",
"@fuzdev/blake3_wasm": "^0.1.0",
"@fuzdev/fuz_code": "^0.45.1",
"@fuzdev/fuz_css": "^0.58.0",
"@fuzdev/fuz_util": "^0.55.0",
Expand All @@ -103,6 +104,7 @@
"prettier-plugin-svelte": "^3.5.1",
"svelte": "^5.55.0",
"svelte-check": "^4.4.5",
"svelte-docinfo": "file:../private_svelte-docinfo",
"svelte2tsx": "^0.7.52",
"tslib": "^2.8.1",
"typescript": "^5.9.3",
Expand Down
Loading
Loading