@lickle/docs 0.0.0-dev.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.
- package/README.md +3 -0
- package/dist/esm/_lib/fs/index.js +20 -0
- package/dist/esm/_lib/fs/index.js.map +1 -0
- package/dist/esm/_lib/fs/watch.js +30 -0
- package/dist/esm/_lib/fs/watch.js.map +1 -0
- package/dist/esm/_lib/index.js +9 -0
- package/dist/esm/_lib/index.js.map +1 -0
- package/dist/esm/_lib/jiti/index.js +16 -0
- package/dist/esm/_lib/jiti/index.js.map +1 -0
- package/dist/esm/_lib/path/index.js +42 -0
- package/dist/esm/_lib/path/index.js.map +1 -0
- package/dist/esm/_lib/pkg/index.js +128 -0
- package/dist/esm/_lib/pkg/index.js.map +1 -0
- package/dist/esm/_lib/repo/index.js +100 -0
- package/dist/esm/_lib/repo/index.js.map +1 -0
- package/dist/esm/_lib/slug/index.js +23 -0
- package/dist/esm/_lib/slug/index.js.map +1 -0
- package/dist/esm/_lib/t.js +2 -0
- package/dist/esm/_lib/t.js.map +1 -0
- package/dist/esm/_lib/tsconfig/index.js +12 -0
- package/dist/esm/_lib/tsconfig/index.js.map +1 -0
- package/dist/esm/_lib/util/index.js +54 -0
- package/dist/esm/_lib/util/index.js.map +1 -0
- package/dist/esm/cli/cmd/dev.js +74 -0
- package/dist/esm/cli/cmd/dev.js.map +1 -0
- package/dist/esm/cli/cmd/index.js +4 -0
- package/dist/esm/cli/cmd/index.js.map +1 -0
- package/dist/esm/cli/cmd/init.js +74 -0
- package/dist/esm/cli/cmd/init.js.map +1 -0
- package/dist/esm/cli/cmd/json.js +28 -0
- package/dist/esm/cli/cmd/json.js.map +1 -0
- package/dist/esm/cli/env.js +5 -0
- package/dist/esm/cli/env.js.map +1 -0
- package/dist/esm/cli/index.js +13 -0
- package/dist/esm/cli/index.js.map +1 -0
- package/dist/esm/cli/vite/client/index.jsx +20 -0
- package/dist/esm/cli/vite/client/index.jsx.map +1 -0
- package/dist/esm/cli/vite/index.js +100 -0
- package/dist/esm/cli/vite/index.js.map +1 -0
- package/dist/esm/cli.js +5 -0
- package/dist/esm/cli.js.map +1 -0
- package/dist/esm/config/defaults.js +32 -0
- package/dist/esm/config/defaults.js.map +1 -0
- package/dist/esm/config/file.js +48 -0
- package/dist/esm/config/file.js.map +1 -0
- package/dist/esm/config/index.js +7 -0
- package/dist/esm/config/index.js.map +1 -0
- package/dist/esm/config/load.js +79 -0
- package/dist/esm/config/load.js.map +1 -0
- package/dist/esm/config/types.js +2 -0
- package/dist/esm/config/types.js.map +1 -0
- package/dist/esm/core/index.js +3 -0
- package/dist/esm/core/index.js.map +1 -0
- package/dist/esm/core/project/debug.js +26 -0
- package/dist/esm/core/project/debug.js.map +1 -0
- package/dist/esm/core/project/index.js +39 -0
- package/dist/esm/core/project/index.js.map +1 -0
- package/dist/esm/core/project/naming.js +39 -0
- package/dist/esm/core/project/naming.js.map +1 -0
- package/dist/esm/core/project/routing.js +173 -0
- package/dist/esm/core/project/routing.js.map +1 -0
- package/dist/esm/core/project/types.js +4 -0
- package/dist/esm/core/project/types.js.map +1 -0
- package/dist/esm/core/reflect/index.js +10 -0
- package/dist/esm/core/reflect/index.js.map +1 -0
- package/dist/esm/core/reflect/indexed.js +195 -0
- package/dist/esm/core/reflect/indexed.js.map +1 -0
- package/dist/esm/core/reflect/resolve.js +157 -0
- package/dist/esm/core/reflect/resolve.js.map +1 -0
- package/dist/esm/core/reflect/scan.js +787 -0
- package/dist/esm/core/reflect/scan.js.map +1 -0
- package/dist/esm/core/reflect/state.js +29 -0
- package/dist/esm/core/reflect/state.js.map +1 -0
- package/dist/esm/core/reflect/types.js +16 -0
- package/dist/esm/core/reflect/types.js.map +1 -0
- package/dist/esm/core/reflect/walk.js +106 -0
- package/dist/esm/core/reflect/walk.js.map +1 -0
- package/dist/esm/solidjs/index.js +2 -0
- package/dist/esm/solidjs/index.js.map +1 -0
- package/dist/esm/solidjs/jsx-runtime.js +2 -0
- package/dist/esm/solidjs/jsx-runtime.js.map +1 -0
- package/dist/esm/ui/App.jsx +71 -0
- package/dist/esm/ui/App.jsx.map +1 -0
- package/dist/esm/ui/components/Breadcrumb.jsx +45 -0
- package/dist/esm/ui/components/Breadcrumb.jsx.map +1 -0
- package/dist/esm/ui/components/Code/index.jsx +89 -0
- package/dist/esm/ui/components/Code/index.jsx.map +1 -0
- package/dist/esm/ui/components/Comment.jsx +176 -0
- package/dist/esm/ui/components/Comment.jsx.map +1 -0
- package/dist/esm/ui/components/Declaration.jsx +147 -0
- package/dist/esm/ui/components/Declaration.jsx.map +1 -0
- package/dist/esm/ui/components/Header.jsx +66 -0
- package/dist/esm/ui/components/Header.jsx.map +1 -0
- package/dist/esm/ui/components/Layout.jsx +44 -0
- package/dist/esm/ui/components/Layout.jsx.map +1 -0
- package/dist/esm/ui/components/Link.jsx +34 -0
- package/dist/esm/ui/components/Link.jsx.map +1 -0
- package/dist/esm/ui/components/LivePreview/Example.jsx +76 -0
- package/dist/esm/ui/components/LivePreview/Example.jsx.map +1 -0
- package/dist/esm/ui/components/LivePreview/Sandbox.jsx +25 -0
- package/dist/esm/ui/components/LivePreview/Sandbox.jsx.map +1 -0
- package/dist/esm/ui/components/LivePreview/index.js +4 -0
- package/dist/esm/ui/components/LivePreview/index.js.map +1 -0
- package/dist/esm/ui/components/LivePreview/transform.js +16 -0
- package/dist/esm/ui/components/LivePreview/transform.js.map +1 -0
- package/dist/esm/ui/components/Markdown.jsx +14 -0
- package/dist/esm/ui/components/Markdown.jsx.map +1 -0
- package/dist/esm/ui/components/Page.jsx +121 -0
- package/dist/esm/ui/components/Page.jsx.map +1 -0
- package/dist/esm/ui/components/References.jsx +32 -0
- package/dist/esm/ui/components/References.jsx.map +1 -0
- package/dist/esm/ui/components/SearchPalette.jsx +178 -0
- package/dist/esm/ui/components/SearchPalette.jsx.map +1 -0
- package/dist/esm/ui/components/Sidebar.jsx +63 -0
- package/dist/esm/ui/components/Sidebar.jsx.map +1 -0
- package/dist/esm/ui/components/Syntax.jsx +10 -0
- package/dist/esm/ui/components/Syntax.jsx.map +1 -0
- package/dist/esm/ui/components/ThemeToggle.jsx +25 -0
- package/dist/esm/ui/components/ThemeToggle.jsx.map +1 -0
- package/dist/esm/ui/components/Type.jsx +444 -0
- package/dist/esm/ui/components/Type.jsx.map +1 -0
- package/dist/esm/ui/components/index.js +16 -0
- package/dist/esm/ui/components/index.js.map +1 -0
- package/dist/esm/ui/context/components.jsx +30 -0
- package/dist/esm/ui/context/components.jsx.map +1 -0
- package/dist/esm/ui/context/global.js +15 -0
- package/dist/esm/ui/context/global.js.map +1 -0
- package/dist/esm/ui/context/index.js +5 -0
- package/dist/esm/ui/context/index.js.map +1 -0
- package/dist/esm/ui/context/markup/index.jsx +25 -0
- package/dist/esm/ui/context/markup/index.jsx.map +1 -0
- package/dist/esm/ui/context/markup/markdown.js +34 -0
- package/dist/esm/ui/context/markup/markdown.js.map +1 -0
- package/dist/esm/ui/context/markup/shiki.js +58 -0
- package/dist/esm/ui/context/markup/shiki.js.map +1 -0
- package/dist/esm/ui/context/markup/util.js +22 -0
- package/dist/esm/ui/context/markup/util.js.map +1 -0
- package/dist/esm/ui/context/project/index.jsx +27 -0
- package/dist/esm/ui/context/project/index.jsx.map +1 -0
- package/dist/esm/ui/context/project/indexed.js +47 -0
- package/dist/esm/ui/context/project/indexed.js.map +1 -0
- package/dist/esm/ui/context/project/types.js +2 -0
- package/dist/esm/ui/context/project/types.js.map +1 -0
- package/dist/esm/ui/context/theme.jsx +36 -0
- package/dist/esm/ui/context/theme.jsx.map +1 -0
- package/dist/esm/ui/hooks/index.js +94 -0
- package/dist/esm/ui/hooks/index.js.map +1 -0
- package/dist/esm/ui/index.js +5 -0
- package/dist/esm/ui/index.js.map +1 -0
- package/dist/esm/ui/renderer.jsx +21 -0
- package/dist/esm/ui/renderer.jsx.map +1 -0
- package/dist/esm/ui/util/comment.js +14 -0
- package/dist/esm/ui/util/comment.js.map +1 -0
- package/dist/esm/ui/util/kind.js +85 -0
- package/dist/esm/ui/util/kind.js.map +1 -0
- package/dist/esm/ui/util/markdown.js +66 -0
- package/dist/esm/ui/util/markdown.js.map +1 -0
- package/dist/esm/ui/util/search.js +75 -0
- package/dist/esm/ui/util/search.js.map +1 -0
- package/dist/ts/_lib/fs/index.d.ts +6 -0
- package/dist/ts/_lib/fs/index.d.ts.map +1 -0
- package/dist/ts/_lib/fs/watch.d.ts +14 -0
- package/dist/ts/_lib/fs/watch.d.ts.map +1 -0
- package/dist/ts/_lib/index.d.ts +10 -0
- package/dist/ts/_lib/index.d.ts.map +1 -0
- package/dist/ts/_lib/jiti/index.d.ts +2 -0
- package/dist/ts/_lib/jiti/index.d.ts.map +1 -0
- package/dist/ts/_lib/path/index.d.ts +12 -0
- package/dist/ts/_lib/path/index.d.ts.map +1 -0
- package/dist/ts/_lib/pkg/index.d.ts +28 -0
- package/dist/ts/_lib/pkg/index.d.ts.map +1 -0
- package/dist/ts/_lib/repo/index.d.ts +30 -0
- package/dist/ts/_lib/repo/index.d.ts.map +1 -0
- package/dist/ts/_lib/slug/index.d.ts +4 -0
- package/dist/ts/_lib/slug/index.d.ts.map +1 -0
- package/dist/ts/_lib/t.d.ts +11 -0
- package/dist/ts/_lib/t.d.ts.map +1 -0
- package/dist/ts/_lib/tsconfig/index.d.ts +8 -0
- package/dist/ts/_lib/tsconfig/index.d.ts.map +1 -0
- package/dist/ts/_lib/util/index.d.ts +9 -0
- package/dist/ts/_lib/util/index.d.ts.map +1 -0
- package/dist/ts/cli/cmd/dev.d.ts +27 -0
- package/dist/ts/cli/cmd/dev.d.ts.map +1 -0
- package/dist/ts/cli/cmd/index.d.ts +4 -0
- package/dist/ts/cli/cmd/index.d.ts.map +1 -0
- package/dist/ts/cli/cmd/init.d.ts +14 -0
- package/dist/ts/cli/cmd/init.d.ts.map +1 -0
- package/dist/ts/cli/cmd/json.d.ts +12 -0
- package/dist/ts/cli/cmd/json.d.ts.map +1 -0
- package/dist/ts/cli/env.d.ts +2 -0
- package/dist/ts/cli/env.d.ts.map +1 -0
- package/dist/ts/cli/index.d.ts +78 -0
- package/dist/ts/cli/index.d.ts.map +1 -0
- package/dist/ts/cli/vite/client/index.d.ts +10 -0
- package/dist/ts/cli/vite/client/index.d.ts.map +1 -0
- package/dist/ts/cli/vite/index.d.ts +12 -0
- package/dist/ts/cli/vite/index.d.ts.map +1 -0
- package/dist/ts/cli.d.ts +3 -0
- package/dist/ts/cli.d.ts.map +1 -0
- package/dist/ts/config/defaults.d.ts +10 -0
- package/dist/ts/config/defaults.d.ts.map +1 -0
- package/dist/ts/config/file.d.ts +3 -0
- package/dist/ts/config/file.d.ts.map +1 -0
- package/dist/ts/config/index.d.ts +6 -0
- package/dist/ts/config/index.d.ts.map +1 -0
- package/dist/ts/config/load.d.ts +36 -0
- package/dist/ts/config/load.d.ts.map +1 -0
- package/dist/ts/config/types.d.ts +56 -0
- package/dist/ts/config/types.d.ts.map +1 -0
- package/dist/ts/core/index.d.ts +3 -0
- package/dist/ts/core/index.d.ts.map +1 -0
- package/dist/ts/core/project/debug.d.ts +3 -0
- package/dist/ts/core/project/debug.d.ts.map +1 -0
- package/dist/ts/core/project/index.d.ts +17 -0
- package/dist/ts/core/project/index.d.ts.map +1 -0
- package/dist/ts/core/project/naming.d.ts +23 -0
- package/dist/ts/core/project/naming.d.ts.map +1 -0
- package/dist/ts/core/project/routing.d.ts +61 -0
- package/dist/ts/core/project/routing.d.ts.map +1 -0
- package/dist/ts/core/project/types.d.ts +56 -0
- package/dist/ts/core/project/types.d.ts.map +1 -0
- package/dist/ts/core/reflect/index.d.ts +22 -0
- package/dist/ts/core/reflect/index.d.ts.map +1 -0
- package/dist/ts/core/reflect/indexed.d.ts +83 -0
- package/dist/ts/core/reflect/indexed.d.ts.map +1 -0
- package/dist/ts/core/reflect/resolve.d.ts +3 -0
- package/dist/ts/core/reflect/resolve.d.ts.map +1 -0
- package/dist/ts/core/reflect/scan.d.ts +218 -0
- package/dist/ts/core/reflect/scan.d.ts.map +1 -0
- package/dist/ts/core/reflect/state.d.ts +44 -0
- package/dist/ts/core/reflect/state.d.ts.map +1 -0
- package/dist/ts/core/reflect/types.d.ts +289 -0
- package/dist/ts/core/reflect/types.d.ts.map +1 -0
- package/dist/ts/core/reflect/walk.d.ts +28 -0
- package/dist/ts/core/reflect/walk.d.ts.map +1 -0
- package/dist/ts/solidjs/index.d.ts +2 -0
- package/dist/ts/solidjs/index.d.ts.map +1 -0
- package/dist/ts/solidjs/jsx-runtime.d.ts +2 -0
- package/dist/ts/solidjs/jsx-runtime.d.ts.map +1 -0
- package/dist/ts/ui/App.d.ts +17 -0
- package/dist/ts/ui/App.d.ts.map +1 -0
- package/dist/ts/ui/components/Breadcrumb.d.ts +4 -0
- package/dist/ts/ui/components/Breadcrumb.d.ts.map +1 -0
- package/dist/ts/ui/components/Code/index.d.ts +17 -0
- package/dist/ts/ui/components/Code/index.d.ts.map +1 -0
- package/dist/ts/ui/components/Comment.d.ts +49 -0
- package/dist/ts/ui/components/Comment.d.ts.map +1 -0
- package/dist/ts/ui/components/Declaration.d.ts +122 -0
- package/dist/ts/ui/components/Declaration.d.ts.map +1 -0
- package/dist/ts/ui/components/Header.d.ts +5 -0
- package/dist/ts/ui/components/Header.d.ts.map +1 -0
- package/dist/ts/ui/components/Layout.d.ts +5 -0
- package/dist/ts/ui/components/Layout.d.ts.map +1 -0
- package/dist/ts/ui/components/Link.d.ts +15 -0
- package/dist/ts/ui/components/Link.d.ts.map +1 -0
- package/dist/ts/ui/components/LivePreview/Example.d.ts +16 -0
- package/dist/ts/ui/components/LivePreview/Example.d.ts.map +1 -0
- package/dist/ts/ui/components/LivePreview/Sandbox.d.ts +20 -0
- package/dist/ts/ui/components/LivePreview/Sandbox.d.ts.map +1 -0
- package/dist/ts/ui/components/LivePreview/index.d.ts +4 -0
- package/dist/ts/ui/components/LivePreview/index.d.ts.map +1 -0
- package/dist/ts/ui/components/LivePreview/transform.d.ts +19 -0
- package/dist/ts/ui/components/LivePreview/transform.d.ts.map +1 -0
- package/dist/ts/ui/components/Markdown.d.ts +11 -0
- package/dist/ts/ui/components/Markdown.d.ts.map +1 -0
- package/dist/ts/ui/components/Page.d.ts +21 -0
- package/dist/ts/ui/components/Page.d.ts.map +1 -0
- package/dist/ts/ui/components/References.d.ts +2 -0
- package/dist/ts/ui/components/References.d.ts.map +1 -0
- package/dist/ts/ui/components/SearchPalette.d.ts +5 -0
- package/dist/ts/ui/components/SearchPalette.d.ts.map +1 -0
- package/dist/ts/ui/components/Sidebar.d.ts +5 -0
- package/dist/ts/ui/components/Sidebar.d.ts.map +1 -0
- package/dist/ts/ui/components/Syntax.d.ts +15 -0
- package/dist/ts/ui/components/Syntax.d.ts.map +1 -0
- package/dist/ts/ui/components/ThemeToggle.d.ts +2 -0
- package/dist/ts/ui/components/ThemeToggle.d.ts.map +1 -0
- package/dist/ts/ui/components/Type.d.ts +82 -0
- package/dist/ts/ui/components/Type.d.ts.map +1 -0
- package/dist/ts/ui/components/index.d.ts +15 -0
- package/dist/ts/ui/components/index.d.ts.map +1 -0
- package/dist/ts/ui/context/components.d.ts +124 -0
- package/dist/ts/ui/context/components.d.ts.map +1 -0
- package/dist/ts/ui/context/global.d.ts +210 -0
- package/dist/ts/ui/context/global.d.ts.map +1 -0
- package/dist/ts/ui/context/index.d.ts +5 -0
- package/dist/ts/ui/context/index.d.ts.map +1 -0
- package/dist/ts/ui/context/markup/index.d.ts +20 -0
- package/dist/ts/ui/context/markup/index.d.ts.map +1 -0
- package/dist/ts/ui/context/markup/markdown.d.ts +4 -0
- package/dist/ts/ui/context/markup/markdown.d.ts.map +1 -0
- package/dist/ts/ui/context/markup/shiki.d.ts +17 -0
- package/dist/ts/ui/context/markup/shiki.d.ts.map +1 -0
- package/dist/ts/ui/context/markup/util.d.ts +11 -0
- package/dist/ts/ui/context/markup/util.d.ts.map +1 -0
- package/dist/ts/ui/context/project/index.d.ts +25 -0
- package/dist/ts/ui/context/project/index.d.ts.map +1 -0
- package/dist/ts/ui/context/project/indexed.d.ts +4 -0
- package/dist/ts/ui/context/project/indexed.d.ts.map +1 -0
- package/dist/ts/ui/context/project/types.d.ts +13 -0
- package/dist/ts/ui/context/project/types.d.ts.map +1 -0
- package/dist/ts/ui/context/theme.d.ts +12 -0
- package/dist/ts/ui/context/theme.d.ts.map +1 -0
- package/dist/ts/ui/hooks/index.d.ts +29 -0
- package/dist/ts/ui/hooks/index.d.ts.map +1 -0
- package/dist/ts/ui/index.d.ts +5 -0
- package/dist/ts/ui/index.d.ts.map +1 -0
- package/dist/ts/ui/renderer.d.ts +200 -0
- package/dist/ts/ui/renderer.d.ts.map +1 -0
- package/dist/ts/ui/util/comment.d.ts +4 -0
- package/dist/ts/ui/util/comment.d.ts.map +1 -0
- package/dist/ts/ui/util/kind.d.ts +15 -0
- package/dist/ts/ui/util/kind.d.ts.map +1 -0
- package/dist/ts/ui/util/markdown.d.ts +8 -0
- package/dist/ts/ui/util/markdown.d.ts.map +1 -0
- package/dist/ts/ui/util/search.d.ts +20 -0
- package/dist/ts/ui/util/search.d.ts.map +1 -0
- package/package.json +89 -0
- package/src/_lib/fs/index.ts +23 -0
- package/src/_lib/fs/watch.ts +40 -0
- package/src/_lib/index.ts +9 -0
- package/src/_lib/jiti/index.ts +18 -0
- package/src/_lib/path/index.ts +44 -0
- package/src/_lib/pkg/index.ts +165 -0
- package/src/_lib/repo/index.ts +138 -0
- package/src/_lib/slug/index.ts +26 -0
- package/src/_lib/t.ts +17 -0
- package/src/_lib/tsconfig/index.ts +20 -0
- package/src/_lib/util/index.ts +53 -0
- package/src/cli/cmd/dev.ts +86 -0
- package/src/cli/cmd/index.ts +3 -0
- package/src/cli/cmd/init.ts +80 -0
- package/src/cli/cmd/json.ts +28 -0
- package/src/cli/env.ts +6 -0
- package/src/cli/index.ts +14 -0
- package/src/cli/vite/client/index.html +27 -0
- package/src/cli/vite/client/index.tsx +30 -0
- package/src/cli/vite/client/public/apple-touch-icon.png +0 -0
- package/src/cli/vite/client/public/favicon-96x96.png +0 -0
- package/src/cli/vite/client/public/favicon.ico +0 -0
- package/src/cli/vite/client/public/favicon.svg +1 -0
- package/src/cli/vite/client/public/site.webmanifest +21 -0
- package/src/cli/vite/client/public/web-app-manifest-192x192.png +0 -0
- package/src/cli/vite/client/public/web-app-manifest-512x512.png +0 -0
- package/src/cli/vite/index.ts +115 -0
- package/src/cli.ts +6 -0
- package/src/config/defaults.ts +36 -0
- package/src/config/file.ts +53 -0
- package/src/config/index.ts +11 -0
- package/src/config/load.ts +95 -0
- package/src/config/types.ts +59 -0
- package/src/core/index.ts +2 -0
- package/src/core/project/debug.ts +30 -0
- package/src/core/project/index.ts +58 -0
- package/src/core/project/naming.ts +49 -0
- package/src/core/project/routing.ts +234 -0
- package/src/core/project/types.ts +47 -0
- package/src/core/reflect/index.ts +18 -0
- package/src/core/reflect/indexed.ts +242 -0
- package/src/core/reflect/resolve.ts +159 -0
- package/src/core/reflect/scan.ts +816 -0
- package/src/core/reflect/state.ts +75 -0
- package/src/core/reflect/types.ts +164 -0
- package/src/core/reflect/walk.ts +121 -0
- package/src/solidjs/index.ts +1 -0
- package/src/solidjs/jsx-runtime.ts +1 -0
- package/src/ui/App.tsx +115 -0
- package/src/ui/components/Breadcrumb.tsx +53 -0
- package/src/ui/components/Code/index.tsx +112 -0
- package/src/ui/components/Comment.tsx +221 -0
- package/src/ui/components/Declaration.tsx +210 -0
- package/src/ui/components/Header.tsx +99 -0
- package/src/ui/components/Layout.tsx +62 -0
- package/src/ui/components/Link.tsx +43 -0
- package/src/ui/components/LivePreview/Example.tsx +104 -0
- package/src/ui/components/LivePreview/Sandbox.tsx +36 -0
- package/src/ui/components/LivePreview/index.ts +3 -0
- package/src/ui/components/LivePreview/transform.ts +28 -0
- package/src/ui/components/Markdown.tsx +16 -0
- package/src/ui/components/Page.tsx +162 -0
- package/src/ui/components/References.tsx +34 -0
- package/src/ui/components/SearchPalette.tsx +266 -0
- package/src/ui/components/Sidebar.tsx +107 -0
- package/src/ui/components/Syntax.tsx +10 -0
- package/src/ui/components/ThemeToggle.tsx +50 -0
- package/src/ui/components/Type.tsx +583 -0
- package/src/ui/components/index.ts +15 -0
- package/src/ui/context/components.tsx +103 -0
- package/src/ui/context/global.ts +33 -0
- package/src/ui/context/index.ts +4 -0
- package/src/ui/context/markup/index.tsx +39 -0
- package/src/ui/context/markup/markdown.ts +37 -0
- package/src/ui/context/markup/shiki.ts +72 -0
- package/src/ui/context/markup/util.ts +20 -0
- package/src/ui/context/project/index.tsx +47 -0
- package/src/ui/context/project/indexed.ts +52 -0
- package/src/ui/context/project/types.ts +14 -0
- package/src/ui/context/theme.tsx +45 -0
- package/src/ui/hooks/index.ts +116 -0
- package/src/ui/index.ts +4 -0
- package/src/ui/renderer.tsx +31 -0
- package/src/ui/util/comment.ts +12 -0
- package/src/ui/util/kind.ts +120 -0
- package/src/ui/util/markdown.ts +74 -0
- package/src/ui/util/search.ts +84 -0
- package/theme.css +301 -0
- package/tsconfig.client.json +12 -0
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { createMemo, For, Show } from 'solid-js';
|
|
2
|
+
import { createSlot } from "../context/index.js";
|
|
3
|
+
import { useCommentMarkdown } from "../hooks/index.js";
|
|
4
|
+
import { CodeBlock } from "./Code/index.jsx";
|
|
5
|
+
import { Markdown } from "./Markdown.jsx";
|
|
6
|
+
import { Type } from "./Type.jsx";
|
|
7
|
+
import { Link } from "./Link.jsx";
|
|
8
|
+
/**
|
|
9
|
+
* Render a single doc comment: summary markdown first, then every tag in
|
|
10
|
+
* source order. Consecutive `@param` (or `@property`) runs are merged into
|
|
11
|
+
* one labelled table so a five-parameter signature reads as one block.
|
|
12
|
+
*
|
|
13
|
+
* Per-tag rendering goes through the component registry — `defaults` from
|
|
14
|
+
* `theme/tags/`, with user overrides taking precedence. Unknown tags fall
|
|
15
|
+
* through to {@link UnknownTag}.
|
|
16
|
+
*/
|
|
17
|
+
export const Comment = createSlot('comment', (props) => {
|
|
18
|
+
return (<Show when={props.comment}>
|
|
19
|
+
{(c) => {
|
|
20
|
+
const summary = useCommentMarkdown(c);
|
|
21
|
+
const groups = createMemo(() => groupTags(c().tags ?? []));
|
|
22
|
+
return (<Show when={summary() || props.comment?.tags?.length}>
|
|
23
|
+
<div class={props.class}>
|
|
24
|
+
<Show when={summary()}>{(c) => <Markdown source={c()}/>}</Show>
|
|
25
|
+
<For each={groups()}>
|
|
26
|
+
{(g) => {
|
|
27
|
+
if (g.kind === '@param')
|
|
28
|
+
return <Parameters tags={g.items}/>;
|
|
29
|
+
if (g.kind === '@property')
|
|
30
|
+
return <Properties tags={g.items}/>;
|
|
31
|
+
if (g.tag.tag === '@module')
|
|
32
|
+
return null;
|
|
33
|
+
return <Tag tag={g.tag}/>;
|
|
34
|
+
}}
|
|
35
|
+
</For>
|
|
36
|
+
</div>
|
|
37
|
+
</Show>);
|
|
38
|
+
}}
|
|
39
|
+
</Show>);
|
|
40
|
+
});
|
|
41
|
+
const Properties = createSlot('comment.properties', (p) => <NamedTable title="Properties" tags={p.tags}/>);
|
|
42
|
+
const Parameters = createSlot('comment.parameters', (p) => <NamedTable title="Parameters" tags={p.tags}/>);
|
|
43
|
+
const NamedTable = (props) => {
|
|
44
|
+
return (<section class="mt-6">
|
|
45
|
+
<div class="flex items-baseline gap-2 mb-2">
|
|
46
|
+
<h4 class="text-mute uppercase text-[0.7rem] font-semibold tracking-wider">{props.title}</h4>
|
|
47
|
+
</div>
|
|
48
|
+
<dl class="grid grid-cols-[auto_1fr] gap-x-4 gap-y-1.5 items-baseline">
|
|
49
|
+
<For each={props.tags}>{(it) => <NamedRow item={it}/>}</For>
|
|
50
|
+
</dl>
|
|
51
|
+
</section>);
|
|
52
|
+
};
|
|
53
|
+
const NamedRow = (props) => (<>
|
|
54
|
+
<dt class="font-mono text-sm whitespace-nowrap">
|
|
55
|
+
<span class="font-semibold">{props.item.name}</span>
|
|
56
|
+
<Show when={props.item.optional}>
|
|
57
|
+
<span class="text-mute">?</span>
|
|
58
|
+
</Show>
|
|
59
|
+
<Show when={props.item.type}>
|
|
60
|
+
<>
|
|
61
|
+
<span class="text-mute">: </span>
|
|
62
|
+
<Type type={props.item.type}/>
|
|
63
|
+
</>
|
|
64
|
+
</Show>
|
|
65
|
+
<Show when={props.item.default}>
|
|
66
|
+
<span class="text-mute"> = {props.item.default}</span>
|
|
67
|
+
</Show>
|
|
68
|
+
</dt>
|
|
69
|
+
<dd class="text-sm text-mute min-w-0">
|
|
70
|
+
<Show when={trimLead(props.item.text)}>
|
|
71
|
+
<Markdown.Inline source={trimLead(props.item.text)}/>
|
|
72
|
+
</Show>
|
|
73
|
+
</dd>
|
|
74
|
+
</>);
|
|
75
|
+
/** Strip a single leading `- ` so `@param foo - desc` collapses cleanly. */
|
|
76
|
+
const trimLead = (s) => (s ?? '').replace(/^\s*-\s*/, '').trim();
|
|
77
|
+
const groupTags = (tags) => {
|
|
78
|
+
const out = [];
|
|
79
|
+
const pushRun = (kind, item) => {
|
|
80
|
+
const last = out[out.length - 1];
|
|
81
|
+
if (last && last.kind === kind)
|
|
82
|
+
last.items.push(item);
|
|
83
|
+
else
|
|
84
|
+
out.push({ kind, items: [item] });
|
|
85
|
+
};
|
|
86
|
+
for (const t of tags) {
|
|
87
|
+
if (t.tag === '@param')
|
|
88
|
+
pushRun('@param', t);
|
|
89
|
+
else if (t.tag === '@property')
|
|
90
|
+
pushRun('@property', t);
|
|
91
|
+
else
|
|
92
|
+
out.push({ kind: 'tag', tag: t });
|
|
93
|
+
}
|
|
94
|
+
return out;
|
|
95
|
+
};
|
|
96
|
+
export const Tag = createSlot('tag', (props) => {
|
|
97
|
+
if (props.tag.tag === '@returns')
|
|
98
|
+
return <TagReturns tag={props.tag}/>;
|
|
99
|
+
if (props.tag.tag === '@throws')
|
|
100
|
+
return <TagThrows tag={props.tag}/>;
|
|
101
|
+
if (props.tag.tag === '@type')
|
|
102
|
+
return <TagType tag={props.tag}/>;
|
|
103
|
+
if (props.tag.tag === '@satisfies')
|
|
104
|
+
return <TagSatisfies tag={props.tag}/>;
|
|
105
|
+
if (props.tag.tag === '@example')
|
|
106
|
+
return <TagExample tag={props.tag}/>;
|
|
107
|
+
if (props.tag.tag === '@see')
|
|
108
|
+
return <TagSee tag={props.tag}/>;
|
|
109
|
+
if (props.tag.tag === '@template')
|
|
110
|
+
return <TagTemplate tag={props.tag}/>;
|
|
111
|
+
return <TagOther tag={props.tag}/>;
|
|
112
|
+
});
|
|
113
|
+
/** Section frame shared across tag renderers. */
|
|
114
|
+
export const TagSection = (props) => (<section class="mt-6">
|
|
115
|
+
<div class="flex items-baseline gap-2 mb-2">
|
|
116
|
+
<TagTitle tag={props.tag}/>
|
|
117
|
+
<Show when={props.description}>
|
|
118
|
+
{(description) => (<div class="text-xs text-mute min-w-0">
|
|
119
|
+
<Markdown.Inline source={description()}/>
|
|
120
|
+
</div>)}
|
|
121
|
+
</Show>
|
|
122
|
+
</div>
|
|
123
|
+
{props.children}
|
|
124
|
+
</section>);
|
|
125
|
+
const TagTitle = (props) => {
|
|
126
|
+
const title = props.tag.tag.replace(/^@/, '');
|
|
127
|
+
return <h4 class="text-mute uppercase text-[0.7rem] font-semibold tracking-wider">{title}</h4>;
|
|
128
|
+
};
|
|
129
|
+
export const TagExample = createSlot('tag.example', (props) => (<TagSection tag={props.tag}>
|
|
130
|
+
<CodeBlock code={props.tag.code}/>
|
|
131
|
+
</TagSection>));
|
|
132
|
+
export const TagReturns = createSlot('tag.returns', (props) => (<TagSection tag={props.tag}>
|
|
133
|
+
<Type.Inline type={props.tag.type} text={props.tag.text}/>
|
|
134
|
+
</TagSection>));
|
|
135
|
+
export const TagSatisfies = createSlot('tag.satisfies', (props) => (<TagSection tag={props.tag}>
|
|
136
|
+
<Type.Inline type={props.tag.type} text={props.tag.text}/>
|
|
137
|
+
</TagSection>));
|
|
138
|
+
export const TagSee = createSlot('tag.see', (props) => (<TagSection tag={props.tag}>
|
|
139
|
+
<Show when={props.tag.target}>
|
|
140
|
+
<div class="font-mono text-sm mb-1">
|
|
141
|
+
<Link.ByName name={props.tag.target ?? ''}/>
|
|
142
|
+
</div>
|
|
143
|
+
</Show>
|
|
144
|
+
</TagSection>));
|
|
145
|
+
export const TagTemplate = createSlot('tag.template', (props) => (<TagSection tag={props.tag}>
|
|
146
|
+
<dl class="grid grid-cols-[auto_1fr] gap-x-4 gap-y-1.5 items-baseline">
|
|
147
|
+
<For each={props.tag.generics}>
|
|
148
|
+
{(tp) => (<>
|
|
149
|
+
<dt class="font-mono text-sm font-semibold">{tp.name}</dt>
|
|
150
|
+
<dd class="text-sm text-mute">
|
|
151
|
+
<Show when={tp.constraint}>
|
|
152
|
+
<>
|
|
153
|
+
<span class="text-accent">extends </span>
|
|
154
|
+
<Type type={tp.constraint}/>
|
|
155
|
+
</>
|
|
156
|
+
</Show>
|
|
157
|
+
</dd>
|
|
158
|
+
</>)}
|
|
159
|
+
</For>
|
|
160
|
+
</dl>
|
|
161
|
+
<Show when={props.tag.text?.trim()}>
|
|
162
|
+
<div class="mt-2">
|
|
163
|
+
<Markdown.Inline source={props.tag.text}/>
|
|
164
|
+
</div>
|
|
165
|
+
</Show>
|
|
166
|
+
</TagSection>));
|
|
167
|
+
export const TagThrows = createSlot('tag.throws', (props) => (<TagSection tag={props.tag}>
|
|
168
|
+
<Type.Inline type={props.tag.type} text={props.tag.text}/>
|
|
169
|
+
</TagSection>));
|
|
170
|
+
export const TagType = createSlot('tag.type', (props) => (<TagSection tag={props.tag}>
|
|
171
|
+
<Type.Inline type={props.tag.type} text={props.tag.text}/>
|
|
172
|
+
</TagSection>));
|
|
173
|
+
export const TagOther = createSlot('tag.*', (props) => (<TagSection tag={props.tag}>
|
|
174
|
+
<Markdown source={props.tag.text ?? ''}/>
|
|
175
|
+
</TagSection>));
|
|
176
|
+
//# sourceMappingURL=Comment.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Comment.jsx","sourceRoot":"","sources":["../../../../src/ui/components/Comment.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { For, Show } from 'solid-js';
|
|
2
|
+
import { Dynamic } from 'solid-js/web';
|
|
3
|
+
import { createSlot } from "../context/index.js";
|
|
4
|
+
import { Syntax } from "./Syntax.jsx";
|
|
5
|
+
import { Comment } from "./Comment.jsx";
|
|
6
|
+
import { Type } from "./Type.jsx";
|
|
7
|
+
/**
|
|
8
|
+
* Dispatch a declaration to its per-kind renderer. Implemented via `Dynamic`
|
|
9
|
+
* (not an `if`/`switch`) so the active sub-component swaps reactively when
|
|
10
|
+
* `props.decl.kind` changes — otherwise navigating between pages of different
|
|
11
|
+
* kinds would freeze on the original branch.
|
|
12
|
+
*/
|
|
13
|
+
export const Declaration = createSlot('declaration', (props) => (<Dynamic component={dispatch(props.decl.kind)} decl={props.decl}/>));
|
|
14
|
+
const dispatch = (kind) => RENDERERS[kind];
|
|
15
|
+
/** Heritage line — `extends A, B` / `implements C`. */
|
|
16
|
+
const ExtendsLine = (props) => (<Show when={props.types?.length}>
|
|
17
|
+
<div class="text-sm text-mute font-mono mt-2">
|
|
18
|
+
<span class="text-accent">{props.label} </span>
|
|
19
|
+
<Type.Join sep=", " items={props.types}/>
|
|
20
|
+
</div>
|
|
21
|
+
</Show>);
|
|
22
|
+
export const DeclarationFunction = createSlot('declaration.function', (props) => (<div class="mt-2">
|
|
23
|
+
<For each={props.decl.signatures}>
|
|
24
|
+
{(sig) => <Type.SignatureLine sig={sig} name={props.decl.name} id={props.decl.id} kind="function"/>}
|
|
25
|
+
</For>
|
|
26
|
+
<Comment comment={props.decl.comment}/>
|
|
27
|
+
</div>));
|
|
28
|
+
export const DeclarationVariable = createSlot('declaration.variable', (props) => (<div>
|
|
29
|
+
<div class="font-mono text-sm leading-relaxed">
|
|
30
|
+
<Syntax.Kw>const </Syntax.Kw>
|
|
31
|
+
<span class="font-semibold">{props.decl.name}</span>
|
|
32
|
+
<Syntax.Punct>: </Syntax.Punct>
|
|
33
|
+
<Type type={props.decl.type}/>
|
|
34
|
+
<Show when={props.decl.defaultValue}>
|
|
35
|
+
<Syntax.Punct>{` = ${props.decl.defaultValue}`}</Syntax.Punct>
|
|
36
|
+
</Show>
|
|
37
|
+
</div>
|
|
38
|
+
<Comment comment={props.decl.comment}/>
|
|
39
|
+
</div>));
|
|
40
|
+
export const DeclarationTypeAlias = createSlot('declaration.type-alias', (props) => (<div>
|
|
41
|
+
<div class="font-mono text-sm leading-relaxed">
|
|
42
|
+
<Syntax.Kw>type </Syntax.Kw>
|
|
43
|
+
<span class="font-semibold">{props.decl.name}</span>
|
|
44
|
+
<Type.Generics generics={props.decl.generics}/>
|
|
45
|
+
<Syntax.Punct> = </Syntax.Punct>
|
|
46
|
+
<Type type={props.decl.type}/>
|
|
47
|
+
</div>
|
|
48
|
+
<Comment comment={props.decl.comment}/>
|
|
49
|
+
</div>));
|
|
50
|
+
export const DeclarationClass = createSlot('declaration.class', (props) => (<div>
|
|
51
|
+
<ExtendsLine label="extends" types={props.decl.extends}/>
|
|
52
|
+
<ExtendsLine label="implements" types={props.decl.implements}/>
|
|
53
|
+
<Comment comment={props.decl.comment}/>
|
|
54
|
+
<Members constructors={props.decl.constructors} properties={props.decl.properties} methods={props.decl.methods} indexSignature={props.decl.indexSignature}/>
|
|
55
|
+
</div>));
|
|
56
|
+
export const DeclarationInterface = createSlot('declaration.interface', (props) => (<div>
|
|
57
|
+
<ExtendsLine label="extends" types={props.decl.extends}/>
|
|
58
|
+
<Comment comment={props.decl.comment}/>
|
|
59
|
+
<Members properties={props.decl.properties} methods={props.decl.methods} callSignatures={props.decl.callSignatures} constructSignatures={props.decl.constructSignatures} indexSignature={props.decl.indexSignature}/>
|
|
60
|
+
</div>));
|
|
61
|
+
/** Section heading matching the module-children layout in `Page.tsx`. */
|
|
62
|
+
const MemberSection = (props) => (<Show when={props.when}>
|
|
63
|
+
<section class="mt-8">
|
|
64
|
+
<h2 class="text-sm font-semibold mb-3 pb-1.5 border-b border-line capitalize">{props.title}</h2>
|
|
65
|
+
{props.children}
|
|
66
|
+
</section>
|
|
67
|
+
</Show>);
|
|
68
|
+
const PropertyRow = (props) => (<div class="py-2">
|
|
69
|
+
<div class="font-mono text-sm leading-relaxed">
|
|
70
|
+
<span class="font-semibold">{props.prop.name}</span>
|
|
71
|
+
<Show when={props.prop.optional}>
|
|
72
|
+
<Syntax.Punct>?</Syntax.Punct>
|
|
73
|
+
</Show>
|
|
74
|
+
<Syntax.Punct>: </Syntax.Punct>
|
|
75
|
+
<Type type={props.prop.type}/>
|
|
76
|
+
<Show when={props.prop.defaultValue}>
|
|
77
|
+
<Syntax.Punct>{` = ${props.prop.defaultValue}`}</Syntax.Punct>
|
|
78
|
+
</Show>
|
|
79
|
+
</div>
|
|
80
|
+
<Show when={props.prop.comment}>
|
|
81
|
+
<div class="mt-1">
|
|
82
|
+
<Comment comment={props.prop.comment}/>
|
|
83
|
+
</div>
|
|
84
|
+
</Show>
|
|
85
|
+
</div>);
|
|
86
|
+
const IndexRow = (props) => (<div class="font-mono text-sm leading-relaxed py-2">
|
|
87
|
+
<Syntax.Punct>[</Syntax.Punct>
|
|
88
|
+
<span class="font-semibold">{props.sig.parameter.name}</span>
|
|
89
|
+
<Syntax.Punct>: </Syntax.Punct>
|
|
90
|
+
<Type type={props.sig.parameter.type}/>
|
|
91
|
+
<Syntax.Punct>]: </Syntax.Punct>
|
|
92
|
+
<Type type={props.sig.type}/>
|
|
93
|
+
</div>);
|
|
94
|
+
/** Member listing shared by classes and interfaces. */
|
|
95
|
+
const Members = (props) => (<>
|
|
96
|
+
<MemberSection title="Constructors" when={props.constructors?.length}>
|
|
97
|
+
<For each={props.constructors}>{(sig) => <Type.Signature sig={sig} name="constructor" kind="constructor"/>}</For>
|
|
98
|
+
</MemberSection>
|
|
99
|
+
<MemberSection title="Properties" when={props.properties?.length || props.indexSignature}>
|
|
100
|
+
<For each={props.properties}>{(p) => <PropertyRow prop={p}/>}</For>
|
|
101
|
+
<Show when={props.indexSignature}>{(sig) => <IndexRow sig={sig()}/>}</Show>
|
|
102
|
+
</MemberSection>
|
|
103
|
+
<MemberSection title="Methods" when={props.methods?.length}>
|
|
104
|
+
<For each={props.methods}>
|
|
105
|
+
{(m) => <For each={m.signatures}>{(sig) => <Type.Signature sig={sig} name={m.name} kind="method"/>}</For>}
|
|
106
|
+
</For>
|
|
107
|
+
</MemberSection>
|
|
108
|
+
<MemberSection title="Call Signatures" when={props.callSignatures?.length}>
|
|
109
|
+
<For each={props.callSignatures}>{(sig) => <Type.Signature sig={sig}/>}</For>
|
|
110
|
+
</MemberSection>
|
|
111
|
+
<MemberSection title="Construct Signatures" when={props.constructSignatures?.length}>
|
|
112
|
+
<For each={props.constructSignatures}>{(sig) => <Type.Signature sig={sig} kind="constructor"/>}</For>
|
|
113
|
+
</MemberSection>
|
|
114
|
+
</>);
|
|
115
|
+
export const DeclarationEnum = createSlot('declaration.enum', (props) => (<div>
|
|
116
|
+
<Comment comment={props.decl.comment}/>
|
|
117
|
+
<MemberSection title="Members" when={props.decl.members?.length}>
|
|
118
|
+
<For each={props.decl.members}>{(m) => <EnumMemberRow member={m}/>}</For>
|
|
119
|
+
</MemberSection>
|
|
120
|
+
</div>));
|
|
121
|
+
const EnumMemberRow = (props) => (<div class="py-2">
|
|
122
|
+
<div class="font-mono text-sm leading-relaxed">
|
|
123
|
+
<span class="font-semibold">{props.member.name}</span>
|
|
124
|
+
<Show when={props.member.value !== undefined}>
|
|
125
|
+
<Syntax.Punct>{` = ${typeof props.member.value === 'string' ? `"${props.member.value}"` : props.member.value}`}</Syntax.Punct>
|
|
126
|
+
</Show>
|
|
127
|
+
</div>
|
|
128
|
+
<Show when={props.member.comment}>
|
|
129
|
+
<div class="mt-1">
|
|
130
|
+
<Comment comment={props.member.comment}/>
|
|
131
|
+
</div>
|
|
132
|
+
</Show>
|
|
133
|
+
</div>);
|
|
134
|
+
export const DeclarationModule = createSlot('declaration.module', (props) => <Comment comment={props.decl.comment}/>);
|
|
135
|
+
export const DeclarationNamespace = createSlot('declaration.namespace', (props) => (<Comment comment={props.decl.comment}/>));
|
|
136
|
+
const RENDERERS = {
|
|
137
|
+
class: DeclarationClass,
|
|
138
|
+
interface: DeclarationInterface,
|
|
139
|
+
enum: DeclarationEnum,
|
|
140
|
+
function: DeclarationFunction,
|
|
141
|
+
variable: DeclarationVariable,
|
|
142
|
+
'type-alias': DeclarationTypeAlias,
|
|
143
|
+
module: DeclarationModule,
|
|
144
|
+
namespace: DeclarationNamespace,
|
|
145
|
+
export: () => null,
|
|
146
|
+
};
|
|
147
|
+
//# sourceMappingURL=Declaration.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Declaration.jsx","sourceRoot":"","sources":["../../../../src/ui/components/Declaration.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { For, Show, createMemo } from 'solid-js';
|
|
2
|
+
import { A } from '@solidjs/router';
|
|
3
|
+
import { useProject } from "../context/index.js";
|
|
4
|
+
import { createSlot } from "../context/index.js";
|
|
5
|
+
import { ThemeToggle } from "./ThemeToggle.jsx";
|
|
6
|
+
const isMac = () => typeof navigator !== 'undefined' && /mac/i.test(navigator.platform || navigator.userAgent || '');
|
|
7
|
+
const ICON_BY_NAME = {
|
|
8
|
+
github: 'github-icon',
|
|
9
|
+
bluesky: 'bluesky-icon',
|
|
10
|
+
discord: 'discord-icon',
|
|
11
|
+
x: 'x-icon',
|
|
12
|
+
twitter: 'x-icon',
|
|
13
|
+
npm: 'documentation-icon',
|
|
14
|
+
};
|
|
15
|
+
const iconFor = (label) => {
|
|
16
|
+
const k = label.toLowerCase();
|
|
17
|
+
return ICON_BY_NAME[k] ?? null;
|
|
18
|
+
};
|
|
19
|
+
export const Header = createSlot('header', (props) => {
|
|
20
|
+
const project = useProject();
|
|
21
|
+
const searchHint = createMemo(() => (isMac() ? '\u2318K' : 'Ctrl K'));
|
|
22
|
+
return (<header class="sticky top-0 z-30 border-b border-line bg-bg/80 backdrop-blur-md backdrop-saturate-150">
|
|
23
|
+
<div class="flex items-center h-14 px-4 lg:px-6 gap-4">
|
|
24
|
+
<button type="button" aria-label="Open menu" class="lg:hidden p-1.5 rounded hover:bg-hover cursor-pointer" onClick={() => props.onMenu?.()}>
|
|
25
|
+
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round">
|
|
26
|
+
<path d="M4 7h16M4 12h16M4 17h16"/>
|
|
27
|
+
</svg>
|
|
28
|
+
</button>
|
|
29
|
+
<A href="/" class="flex items-baseline gap-2 hover:opacity-70 transition-opacity">
|
|
30
|
+
<span class="font-semibold text-[0.95rem] tracking-tight">{project().name}</span>
|
|
31
|
+
<Show when={project().version}>
|
|
32
|
+
<span class="text-xs text-mute font-mono">v{project().version}</span>
|
|
33
|
+
</Show>
|
|
34
|
+
</A>
|
|
35
|
+
|
|
36
|
+
<button type="button" onClick={() => props.onSearch?.()} aria-label="Search" class="ml-4 flex items-center gap-2 px-2.5 py-1 text-xs text-mute border border-line rounded-md hover:text-fg hover:bg-hover transition-colors cursor-pointer">
|
|
37
|
+
<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8">
|
|
38
|
+
<circle cx="11" cy="11" r="7"/>
|
|
39
|
+
<path d="m20 20-3.5-3.5" stroke-linecap="round"/>
|
|
40
|
+
</svg>
|
|
41
|
+
<span class="hidden sm:inline">Search</span>
|
|
42
|
+
<kbd class="font-mono text-[0.65rem] text-mute">{searchHint()}</kbd>
|
|
43
|
+
</button>
|
|
44
|
+
|
|
45
|
+
<nav class="ml-auto flex items-center gap-1">
|
|
46
|
+
<For each={project().links}>
|
|
47
|
+
{({ label, href }) => {
|
|
48
|
+
const icon = iconFor(label);
|
|
49
|
+
return (<a href={href} target="_blank" rel="noreferrer" class="flex items-center gap-1.5 px-2 py-1 text-xs text-mute hover:text-fg transition-colors duration-150" title={label}>
|
|
50
|
+
<Show when={icon} fallback={<span>{label}</span>}>
|
|
51
|
+
<svg width="14" height="14">
|
|
52
|
+
<use href={`/icons.svg#${icon}`}/>
|
|
53
|
+
</svg>
|
|
54
|
+
<span class="sr-only">{label}</span>
|
|
55
|
+
</Show>
|
|
56
|
+
</a>);
|
|
57
|
+
}}
|
|
58
|
+
</For>
|
|
59
|
+
<div class="ml-2">
|
|
60
|
+
<ThemeToggle />
|
|
61
|
+
</div>
|
|
62
|
+
</nav>
|
|
63
|
+
</div>
|
|
64
|
+
</header>);
|
|
65
|
+
});
|
|
66
|
+
//# sourceMappingURL=Header.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Header.jsx","sourceRoot":"","sources":["../../../../src/ui/components/Header.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { createSignal, onCleanup, onMount } from 'solid-js';
|
|
2
|
+
import { useLocation } from '@solidjs/router';
|
|
3
|
+
import { createEffect } from 'solid-js';
|
|
4
|
+
import { createSlot } from "../context/index.js";
|
|
5
|
+
import { SearchPalette } from "./SearchPalette.jsx";
|
|
6
|
+
import { Sidebar } from "./Sidebar.jsx";
|
|
7
|
+
import { Header } from "./Header.jsx";
|
|
8
|
+
export const Layout = createSlot('layout', (props) => {
|
|
9
|
+
const [menuOpen, setMenuOpen] = createSignal(false);
|
|
10
|
+
const [searchOpen, setSearchOpen] = createSignal(false);
|
|
11
|
+
const loc = useLocation();
|
|
12
|
+
createEffect(() => {
|
|
13
|
+
void loc.pathname;
|
|
14
|
+
setMenuOpen(false);
|
|
15
|
+
});
|
|
16
|
+
onMount(() => {
|
|
17
|
+
const onKey = (e) => {
|
|
18
|
+
if ((e.metaKey || e.ctrlKey) && e.key.toLowerCase() === 'k') {
|
|
19
|
+
e.preventDefault();
|
|
20
|
+
setSearchOpen((v) => !v);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
window.addEventListener('keydown', onKey);
|
|
24
|
+
onCleanup(() => window.removeEventListener('keydown', onKey));
|
|
25
|
+
});
|
|
26
|
+
return (<div class="min-h-screen flex flex-col">
|
|
27
|
+
<Header onMenu={() => setMenuOpen((v) => !v)} onSearch={() => setSearchOpen(true)}/>
|
|
28
|
+
|
|
29
|
+
<div class="flex-1 grid grid-cols-1 lg:grid-cols-[220px_1fr] max-w-[1400px] w-full mx-auto">
|
|
30
|
+
<Sidebar class="hidden lg:block border-r border-line sticky top-14 self-start h-[calc(100vh-3.5rem)] overflow-y-auto"/>
|
|
31
|
+
|
|
32
|
+
<div class={`lg:hidden fixed inset-0 z-40 bg-black/30 transition-opacity duration-200 ${menuOpen() ? 'opacity-100' : 'opacity-0 pointer-events-none'}`} onClick={() => setMenuOpen(false)}>
|
|
33
|
+
<div class={`absolute inset-y-0 left-0 w-64 bg-bg border-r border-line overflow-y-auto pt-14 transition-transform duration-200 ease-out ${menuOpen() ? 'translate-x-0' : '-translate-x-full'}`} onClick={(e) => e.stopPropagation()}>
|
|
34
|
+
<Sidebar onNavigate={() => setMenuOpen(false)}/>
|
|
35
|
+
</div>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
<main class="min-w-0 px-6 lg:px-12 pt-8 pb-20 max-w-[860px] wrap-break-word">{props.children}</main>
|
|
39
|
+
</div>
|
|
40
|
+
|
|
41
|
+
<SearchPalette open={searchOpen} onClose={() => setSearchOpen(false)}/>
|
|
42
|
+
</div>);
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=Layout.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Layout.jsx","sourceRoot":"","sources":["../../../../src/ui/components/Layout.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Show } from 'solid-js';
|
|
2
|
+
import { A } from '@solidjs/router';
|
|
3
|
+
import { useSlugFor } from "../hooks/index.js";
|
|
4
|
+
import { Syntax } from "./Syntax.jsx";
|
|
5
|
+
export const Link = (props) => {
|
|
6
|
+
return (<A href={props.href} class="underline decoration-line underline-offset-[3px] hover:opacity-70">
|
|
7
|
+
{props.children}
|
|
8
|
+
</A>);
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Link to an in-project declaration by id, with a fallback rendering when
|
|
12
|
+
* the target isn't resolvable. The `?` prefix marks anonymous external
|
|
13
|
+
* references the resolver couldn't anchor to anything.
|
|
14
|
+
*/
|
|
15
|
+
Link.Type = (props) => {
|
|
16
|
+
const slugs = useSlugFor();
|
|
17
|
+
const slug = () => (props.id != null ? slugs.byId(props.id) : undefined);
|
|
18
|
+
return (<>
|
|
19
|
+
<Show when={props.external === 'anonymous'}>
|
|
20
|
+
<Syntax.Punct>?</Syntax.Punct>
|
|
21
|
+
</Show>
|
|
22
|
+
<Show when={slug()} fallback={<Syntax.Name>{props.name}</Syntax.Name>}>
|
|
23
|
+
<Link href={`/${slug()}`}>{props.name}</Link>
|
|
24
|
+
</Show>
|
|
25
|
+
</>);
|
|
26
|
+
};
|
|
27
|
+
Link.ByName = (props) => {
|
|
28
|
+
const slugs = useSlugFor();
|
|
29
|
+
const slug = () => slugs.byName(props.name);
|
|
30
|
+
return (<Show when={slug()} fallback={<Syntax.Name>{props.name}</Syntax.Name>}>
|
|
31
|
+
<Link href={`/${slug()}`}>{props.name}</Link>
|
|
32
|
+
</Show>);
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=Link.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Link.jsx","sourceRoot":"","sources":["../../../../src/ui/components/Link.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAA;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,KAAyC,EAAE,EAAE;IAChE,OAAO,CACL,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,mEAAmE,CAC5F;MAAA,CAAC,KAAK,CAAC,QAAQ,CACjB;IAAA,EAAE,CAAC,CAAC,CACL,CAAA;AACH,CAAC,CAAA;AAED;;;;GAIG;AACH,IAAI,CAAC,IAAI,GAAG,CAAC,KAAsG,EAAE,EAAE;IACrH,MAAM,KAAK,GAAG,UAAU,EAAE,CAAA;IAC1B,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IACxE,OAAO,CACL,EACE;MAAA,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,WAAW,CAAC,CACzC;QAAA,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAC/B;MAAA,EAAE,IAAI,CACN;MAAA,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CACpE;QAAA,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,CAC9C;MAAA,EAAE,IAAI,CACR;IAAA,GAAG,CACJ,CAAA;AACH,CAAC,CAAA;AAED,IAAI,CAAC,MAAM,GAAG,CAAC,KAAuB,EAAE,EAAE;IACxC,MAAM,KAAK,GAAG,UAAU,EAAE,CAAA;IAC1B,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC3C,OAAO,CACL,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CACpE;MAAA,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,CAC9C;IAAA,EAAE,IAAI,CAAC,CACR,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { createEffect, createSignal, onCleanup, Show } from 'solid-js';
|
|
2
|
+
import { Sandbox } from "./Sandbox.jsx";
|
|
3
|
+
import { firstCodeBlock, langOf } from "../../context/index.js";
|
|
4
|
+
import { CodeEditor } from "../Code/index.jsx";
|
|
5
|
+
import { TagSection } from "../Comment.jsx";
|
|
6
|
+
export const LiveExample = (props) => {
|
|
7
|
+
const preview = useWithPreview(props);
|
|
8
|
+
return (<TagSection tag={props.tag} description={props.tag.caption}>
|
|
9
|
+
<div class="rounded-lg border border-line">
|
|
10
|
+
<div class="p-4 bg-code-bg">
|
|
11
|
+
<CodeEditor lang={props.language ?? langOf(preview.lang)} readonly={props.readonly} value={preview.value} onChange={preview.onChange}/>
|
|
12
|
+
</div>
|
|
13
|
+
<div class="relative min-h-12">
|
|
14
|
+
<Sandbox class="border-t border-line p-4" isolate={props.isolate} ref={preview.onBind}/>
|
|
15
|
+
<Show when={preview.error()}>
|
|
16
|
+
{(msg) => (<div class="absolute inset-0 w-full h-full flex items-center justify-start p-4 text-xs text-red-500 border-t border-red-500/30 ">
|
|
17
|
+
<div class="flex gap-2">
|
|
18
|
+
<span aria-hidden="true" class="select-none leading-5">
|
|
19
|
+
⚠
|
|
20
|
+
</span>
|
|
21
|
+
<pre class="overflow-x-auto whitespace-pre-wrap wrap-break-word font-mono leading-5">{msg()}</pre>
|
|
22
|
+
</div>
|
|
23
|
+
</div>)}
|
|
24
|
+
</Show>
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
</TagSection>);
|
|
28
|
+
};
|
|
29
|
+
const useWithPreview = (props) => {
|
|
30
|
+
const block = firstCodeBlock(props.tag.code);
|
|
31
|
+
const [host, setHost] = createSignal(null);
|
|
32
|
+
const [code, setCode] = createSignal(block.code);
|
|
33
|
+
const [error, setError] = createSignal();
|
|
34
|
+
let dispose;
|
|
35
|
+
const teardown = () => {
|
|
36
|
+
try {
|
|
37
|
+
if (typeof dispose === 'function')
|
|
38
|
+
dispose();
|
|
39
|
+
host()?.replaceChildren();
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
console.error('[LiveExample] teardown failed', err);
|
|
43
|
+
}
|
|
44
|
+
dispose = undefined;
|
|
45
|
+
};
|
|
46
|
+
createEffect(() => {
|
|
47
|
+
const src = code();
|
|
48
|
+
const target = host();
|
|
49
|
+
if (!target)
|
|
50
|
+
return;
|
|
51
|
+
teardown();
|
|
52
|
+
try {
|
|
53
|
+
dispose = props.run(src, target);
|
|
54
|
+
setError(undefined);
|
|
55
|
+
}
|
|
56
|
+
catch (err) {
|
|
57
|
+
target.replaceChildren();
|
|
58
|
+
setError(messageOf(err));
|
|
59
|
+
if (props.onError)
|
|
60
|
+
props.onError(err);
|
|
61
|
+
else
|
|
62
|
+
console.error('[LiveExample] failed to run', err);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
onCleanup(teardown);
|
|
66
|
+
const onChange = (code) => setCode(code);
|
|
67
|
+
const value = () => code();
|
|
68
|
+
const onBind = (h) => setHost(h);
|
|
69
|
+
return { onBind, onChange, value, error, lang: block.lang };
|
|
70
|
+
};
|
|
71
|
+
const messageOf = (err) => {
|
|
72
|
+
if (err instanceof Error)
|
|
73
|
+
return err.message || err.name;
|
|
74
|
+
return String(err);
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=Example.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Example.jsx","sourceRoot":"","sources":["../../../../../src/ui/components/LivePreview/Example.tsx"],"names":[],"mappings":"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"}
|