@nikala-ui/docs 0.12.0
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 +22 -0
- package/dist/cli/commands/build.d.ts +5 -0
- package/dist/cli/commands/build.d.ts.map +1 -0
- package/dist/cli/commands/build.js +27 -0
- package/dist/cli/commands/build.js.map +1 -0
- package/dist/cli/commands/dev.d.ts +7 -0
- package/dist/cli/commands/dev.d.ts.map +1 -0
- package/dist/cli/commands/dev.js +32 -0
- package/dist/cli/commands/dev.js.map +1 -0
- package/dist/cli/commands/init.d.ts +2 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +308 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/preview.d.ts +7 -0
- package/dist/cli/commands/preview.d.ts.map +1 -0
- package/dist/cli/commands/preview.js +24 -0
- package/dist/cli/commands/preview.js.map +1 -0
- package/dist/cli/commands/serve.d.ts +7 -0
- package/dist/cli/commands/serve.d.ts.map +1 -0
- package/dist/cli/commands/serve.js +33 -0
- package/dist/cli/commands/serve.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +53 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/client/App.d.ts +5 -0
- package/dist/client/App.d.ts.map +1 -0
- package/dist/client/App.jsx +31 -0
- package/dist/client/App.jsx.map +1 -0
- package/dist/client/app-types.d.ts +14 -0
- package/dist/client/app-types.d.ts.map +1 -0
- package/dist/client/app-types.js +2 -0
- package/dist/client/app-types.js.map +1 -0
- package/dist/client/components/DocsLayoutShell.d.ts +21 -0
- package/dist/client/components/DocsLayoutShell.d.ts.map +1 -0
- package/dist/client/components/DocsLayoutShell.jsx +14 -0
- package/dist/client/components/DocsLayoutShell.jsx.map +1 -0
- package/dist/client/components/DocsPageContent.d.ts +9 -0
- package/dist/client/components/DocsPageContent.d.ts.map +1 -0
- package/dist/client/components/DocsPageContent.jsx +10 -0
- package/dist/client/components/DocsPageContent.jsx.map +1 -0
- package/dist/client/entry.d.ts +2 -0
- package/dist/client/entry.d.ts.map +1 -0
- package/dist/client/entry.jsx +28 -0
- package/dist/client/entry.jsx.map +1 -0
- package/dist/client/index.html +21 -0
- package/dist/client/navigation/page-navigation.d.ts +9 -0
- package/dist/client/navigation/page-navigation.d.ts.map +1 -0
- package/dist/client/navigation/page-navigation.js +51 -0
- package/dist/client/navigation/page-navigation.js.map +1 -0
- package/dist/client/routing/use-docs-router.d.ts +17 -0
- package/dist/client/routing/use-docs-router.d.ts.map +1 -0
- package/dist/client/routing/use-docs-router.js +71 -0
- package/dist/client/routing/use-docs-router.js.map +1 -0
- package/dist/client/ssr-entry.d.ts +3 -0
- package/dist/client/ssr-entry.d.ts.map +1 -0
- package/dist/client/ssr-entry.jsx +13 -0
- package/dist/client/ssr-entry.jsx.map +1 -0
- package/dist/client/style.css +183 -0
- package/dist/client/utils/sidebar.d.ts +2 -0
- package/dist/client/utils/sidebar.d.ts.map +1 -0
- package/dist/client/utils/sidebar.js +2 -0
- package/dist/client/utils/sidebar.js.map +1 -0
- package/dist/components/mdx-components.d.ts +34 -0
- package/dist/components/mdx-components.d.ts.map +1 -0
- package/dist/components/mdx-components.jsx +131 -0
- package/dist/components/mdx-components.jsx.map +1 -0
- package/dist/config.d.ts +6 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +105 -0
- package/dist/config.js.map +1 -0
- package/dist/core/content-scanner.d.ts +10 -0
- package/dist/core/content-scanner.d.ts.map +1 -0
- package/dist/core/content-scanner.js +153 -0
- package/dist/core/content-scanner.js.map +1 -0
- package/dist/core/route-tree.d.ts +19 -0
- package/dist/core/route-tree.d.ts.map +1 -0
- package/dist/core/route-tree.js +176 -0
- package/dist/core/route-tree.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/cn.d.ts +6 -0
- package/dist/lib/cn.d.ts.map +1 -0
- package/dist/lib/cn.js +9 -0
- package/dist/lib/cn.js.map +1 -0
- package/dist/mdx/compiler.d.ts +13 -0
- package/dist/mdx/compiler.d.ts.map +1 -0
- package/dist/mdx/compiler.js +38 -0
- package/dist/mdx/compiler.js.map +1 -0
- package/dist/mdx/highlighter.d.ts +22 -0
- package/dist/mdx/highlighter.d.ts.map +1 -0
- package/dist/mdx/highlighter.js +139 -0
- package/dist/mdx/highlighter.js.map +1 -0
- package/dist/mdx/rehype-shiki.d.ts +3 -0
- package/dist/mdx/rehype-shiki.d.ts.map +1 -0
- package/dist/mdx/rehype-shiki.js +83 -0
- package/dist/mdx/rehype-shiki.js.map +1 -0
- package/dist/navigation/index.d.ts +2 -0
- package/dist/navigation/index.d.ts.map +1 -0
- package/dist/navigation/index.js +2 -0
- package/dist/navigation/index.js.map +1 -0
- package/dist/navigation/sidebar-state.d.ts +6 -0
- package/dist/navigation/sidebar-state.d.ts.map +1 -0
- package/dist/navigation/sidebar-state.js +20 -0
- package/dist/navigation/sidebar-state.js.map +1 -0
- package/dist/navigation/sidebar-tree.d.ts +7 -0
- package/dist/navigation/sidebar-tree.d.ts.map +1 -0
- package/dist/navigation/sidebar-tree.js +11 -0
- package/dist/navigation/sidebar-tree.js.map +1 -0
- package/dist/registry/accordion.json +18 -0
- package/dist/registry/alert.json +18 -0
- package/dist/registry/api-table.json +21 -0
- package/dist/registry/aspect-ratio.json +17 -0
- package/dist/registry/avatar.json +17 -0
- package/dist/registry/badge.json +18 -0
- package/dist/registry/banner.json +19 -0
- package/dist/registry/breadcrumb.json +17 -0
- package/dist/registry/bubble.json +18 -0
- package/dist/registry/button-group.json +20 -0
- package/dist/registry/button.json +21 -0
- package/dist/registry/callout.json +19 -0
- package/dist/registry/card.json +17 -0
- package/dist/registry/checkbox.json +20 -0
- package/dist/registry/code-block.json +26 -0
- package/dist/registry/code-group.json +20 -0
- package/dist/registry/collapsible.json +18 -0
- package/dist/registry/combobox.json +21 -0
- package/dist/registry/command.json +27 -0
- package/dist/registry/component-viewer.json +25 -0
- package/dist/registry/container.json +18 -0
- package/dist/registry/context-menu.json +24 -0
- package/dist/registry/create-active-element.json +13 -0
- package/dist/registry/create-app-updater.json +13 -0
- package/dist/registry/create-audio.json +7 -0
- package/dist/registry/create-battery.json +13 -0
- package/dist/registry/create-chat-scroll.json +13 -0
- package/dist/registry/create-click-outside.json +13 -0
- package/dist/registry/create-clipboard.json +13 -0
- package/dist/registry/create-color-mode.json +13 -0
- package/dist/registry/create-controllable-signal.json +13 -0
- package/dist/registry/create-debounce.json +13 -0
- package/dist/registry/create-disclosure.json +13 -0
- package/dist/registry/create-document-tabs.json +13 -0
- package/dist/registry/create-document-title.json +13 -0
- package/dist/registry/create-drop-zone.json +13 -0
- package/dist/registry/create-event-source.json +13 -0
- package/dist/registry/create-favicon.json +13 -0
- package/dist/registry/create-fetch.json +13 -0
- package/dist/registry/create-focus-trap.json +13 -0
- package/dist/registry/create-form.json +13 -0
- package/dist/registry/create-fullscreen.json +13 -0
- package/dist/registry/create-geolocation.json +13 -0
- package/dist/registry/create-global-shortcut.json +13 -0
- package/dist/registry/create-hover.json +13 -0
- package/dist/registry/create-idle.json +13 -0
- package/dist/registry/create-infinite-scroll.json +13 -0
- package/dist/registry/create-input-mask.json +13 -0
- package/dist/registry/create-intersection-observer.json +13 -0
- package/dist/registry/create-keybindings.json +13 -0
- package/dist/registry/create-lock-scroll.json +13 -0
- package/dist/registry/create-long-press.json +13 -0
- package/dist/registry/create-media-query.json +13 -0
- package/dist/registry/create-mouse-position.json +13 -0
- package/dist/registry/create-network-status.json +13 -0
- package/dist/registry/create-orientation.json +13 -0
- package/dist/registry/create-pagination.json +13 -0
- package/dist/registry/create-permission.json +13 -0
- package/dist/registry/create-previous.json +13 -0
- package/dist/registry/create-resize-observer.json +13 -0
- package/dist/registry/create-scroll-into-view.json +13 -0
- package/dist/registry/create-scroll-position.json +13 -0
- package/dist/registry/create-storage.json +13 -0
- package/dist/registry/create-tauri-window.json +13 -0
- package/dist/registry/create-timer.json +13 -0
- package/dist/registry/create-tiptap-editor.json +34 -0
- package/dist/registry/create-undo-redo.json +13 -0
- package/dist/registry/create-web-notification.json +13 -0
- package/dist/registry/create-websocket.json +13 -0
- package/dist/registry/create-window-size.json +13 -0
- package/dist/registry/dialog.json +21 -0
- package/dist/registry/dropdown-menu.json +22 -0
- package/dist/registry/dropzone.json +21 -0
- package/dist/registry/empty.json +17 -0
- package/dist/registry/field.json +20 -0
- package/dist/registry/file-tree.json +21 -0
- package/dist/registry/footer.json +18 -0
- package/dist/registry/forgot-password-01.json +28 -0
- package/dist/registry/form-message.json +17 -0
- package/dist/registry/form.json +17 -0
- package/dist/registry/hero-01.json +22 -0
- package/dist/registry/hover-card.json +18 -0
- package/dist/registry/icon-button.json +20 -0
- package/dist/registry/index.json +1489 -0
- package/dist/registry/input-group.json +21 -0
- package/dist/registry/input.json +17 -0
- package/dist/registry/kbd.json +18 -0
- package/dist/registry/label.json +18 -0
- package/dist/registry/list.json +20 -0
- package/dist/registry/login-01.json +28 -0
- package/dist/registry/logo.json +17 -0
- package/dist/registry/marker.json +17 -0
- package/dist/registry/marquee.json +17 -0
- package/dist/registry/message.json +17 -0
- package/dist/registry/navbar.json +19 -0
- package/dist/registry/navigation-menu.json +22 -0
- package/dist/registry/number-input.json +24 -0
- package/dist/registry/otp-verification-01.json +26 -0
- package/dist/registry/package-manager-tabs.json +24 -0
- package/dist/registry/pager.json +21 -0
- package/dist/registry/pagination.json +22 -0
- package/dist/registry/pin-input.json +17 -0
- package/dist/registry/popover.json +22 -0
- package/dist/registry/progress.json +18 -0
- package/dist/registry/radio-group.json +18 -0
- package/dist/registry/rating.json +19 -0
- package/dist/registry/register-01.json +31 -0
- package/dist/registry/resizable.json +21 -0
- package/dist/registry/review-card.json +23 -0
- package/dist/registry/rich-text-editor.json +95 -0
- package/dist/registry/scroll-area.json +21 -0
- package/dist/registry/section-heading.json +21 -0
- package/dist/registry/select.json +22 -0
- package/dist/registry/separator.json +17 -0
- package/dist/registry/sheet.json +22 -0
- package/dist/registry/sidebar.json +24 -0
- package/dist/registry/skeleton.json +17 -0
- package/dist/registry/slider.json +18 -0
- package/dist/registry/spinner.json +18 -0
- package/dist/registry/stat.json +19 -0
- package/dist/registry/status.json +18 -0
- package/dist/registry/steps.json +20 -0
- package/dist/registry/switch.json +20 -0
- package/dist/registry/table-of-contents.json +23 -0
- package/dist/registry/table.json +17 -0
- package/dist/registry/tabs.json +20 -0
- package/dist/registry/textarea.json +17 -0
- package/dist/registry/theme-manager.json +39 -0
- package/dist/registry/timeline.json +18 -0
- package/dist/registry/titlebar-tabs.json +24 -0
- package/dist/registry/titlebar.json +26 -0
- package/dist/registry/toast.json +20 -0
- package/dist/registry/toggle-group.json +21 -0
- package/dist/registry/toggle.json +18 -0
- package/dist/registry/tooltip.json +18 -0
- package/dist/registry/updater-modal.json +26 -0
- package/dist/server/index.d.ts +18 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +526 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/plugin.d.ts +10 -0
- package/dist/server/plugin.d.ts.map +1 -0
- package/dist/server/plugin.js +271 -0
- package/dist/server/plugin.js.map +1 -0
- package/dist/themes/default/content/breadcrumbs.d.ts +4 -0
- package/dist/themes/default/content/breadcrumbs.d.ts.map +1 -0
- package/dist/themes/default/content/breadcrumbs.jsx +31 -0
- package/dist/themes/default/content/breadcrumbs.jsx.map +1 -0
- package/dist/themes/default/content/pager.d.ts +5 -0
- package/dist/themes/default/content/pager.d.ts.map +1 -0
- package/dist/themes/default/content/pager.jsx +9 -0
- package/dist/themes/default/content/pager.jsx.map +1 -0
- package/dist/themes/default/content/table-of-contents.d.ts +4 -0
- package/dist/themes/default/content/table-of-contents.d.ts.map +1 -0
- package/dist/themes/default/content/table-of-contents.jsx +19 -0
- package/dist/themes/default/content/table-of-contents.jsx.map +1 -0
- package/dist/themes/default/index.d.ts +11 -0
- package/dist/themes/default/index.d.ts.map +1 -0
- package/dist/themes/default/index.js +30 -0
- package/dist/themes/default/index.js.map +1 -0
- package/dist/themes/default/layout.d.ts +4 -0
- package/dist/themes/default/layout.d.ts.map +1 -0
- package/dist/themes/default/layout.jsx +75 -0
- package/dist/themes/default/layout.jsx.map +1 -0
- package/dist/themes/default/navbar.d.ts +4 -0
- package/dist/themes/default/navbar.d.ts.map +1 -0
- package/dist/themes/default/navbar.jsx +74 -0
- package/dist/themes/default/navbar.jsx.map +1 -0
- package/dist/themes/default/navigation/mobile-table-of-contents.d.ts +4 -0
- package/dist/themes/default/navigation/mobile-table-of-contents.d.ts.map +1 -0
- package/dist/themes/default/navigation/mobile-table-of-contents.jsx +22 -0
- package/dist/themes/default/navigation/mobile-table-of-contents.jsx.map +1 -0
- package/dist/themes/default/navigation/sidebar-tree.d.ts +8 -0
- package/dist/themes/default/navigation/sidebar-tree.d.ts.map +1 -0
- package/dist/themes/default/navigation/sidebar-tree.jsx +100 -0
- package/dist/themes/default/navigation/sidebar-tree.jsx.map +1 -0
- package/dist/themes/default/overlays/search-dialog.d.ts +4 -0
- package/dist/themes/default/overlays/search-dialog.d.ts.map +1 -0
- package/dist/themes/default/overlays/search-dialog.jsx +34 -0
- package/dist/themes/default/overlays/search-dialog.jsx.map +1 -0
- package/dist/themes/default/sidebar.d.ts +4 -0
- package/dist/themes/default/sidebar.d.ts.map +1 -0
- package/dist/themes/default/sidebar.jsx +60 -0
- package/dist/themes/default/sidebar.jsx.map +1 -0
- package/dist/themes/index.d.ts +4 -0
- package/dist/themes/index.d.ts.map +1 -0
- package/dist/themes/index.js +5 -0
- package/dist/themes/index.js.map +1 -0
- package/dist/themes/types.d.ts +83 -0
- package/dist/themes/types.d.ts.map +1 -0
- package/dist/themes/types.js +2 -0
- package/dist/themes/types.js.map +1 -0
- package/dist/types.d.ts +97 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/vendor/core-src/index.css +11 -0
- package/dist/vendor/core-src/index.ts +48 -0
- package/dist/vendor/core-src/lib/cn.ts +9 -0
- package/dist/vendor/core-src/registry/blocks/forgot-password-01.tsx +141 -0
- package/dist/vendor/core-src/registry/blocks/hero-01.tsx +28 -0
- package/dist/vendor/core-src/registry/blocks/login-01.tsx +231 -0
- package/dist/vendor/core-src/registry/blocks/otp-verification-01.tsx +170 -0
- package/dist/vendor/core-src/registry/blocks/register-01.tsx +318 -0
- package/dist/vendor/core-src/registry/components/ui/accordion.tsx +128 -0
- package/dist/vendor/core-src/registry/components/ui/alert.tsx +155 -0
- package/dist/vendor/core-src/registry/components/ui/api-table.tsx +117 -0
- package/dist/vendor/core-src/registry/components/ui/aspect-ratio.tsx +31 -0
- package/dist/vendor/core-src/registry/components/ui/avatar.tsx +114 -0
- package/dist/vendor/core-src/registry/components/ui/badge.tsx +56 -0
- package/dist/vendor/core-src/registry/components/ui/banner.tsx +187 -0
- package/dist/vendor/core-src/registry/components/ui/breadcrumb.tsx +136 -0
- package/dist/vendor/core-src/registry/components/ui/bubble.tsx +142 -0
- package/dist/vendor/core-src/registry/components/ui/button-group.tsx +42 -0
- package/dist/vendor/core-src/registry/components/ui/button.tsx +82 -0
- package/dist/vendor/core-src/registry/components/ui/callout.tsx +137 -0
- package/dist/vendor/core-src/registry/components/ui/card.tsx +113 -0
- package/dist/vendor/core-src/registry/components/ui/checkbox.tsx +74 -0
- package/dist/vendor/core-src/registry/components/ui/code-block.tsx +326 -0
- package/dist/vendor/core-src/registry/components/ui/code-group.tsx +105 -0
- package/dist/vendor/core-src/registry/components/ui/collapsible.tsx +73 -0
- package/dist/vendor/core-src/registry/components/ui/combobox.tsx +299 -0
- package/dist/vendor/core-src/registry/components/ui/command.tsx +378 -0
- package/dist/vendor/core-src/registry/components/ui/component-viewer.tsx +363 -0
- package/dist/vendor/core-src/registry/components/ui/container.tsx +45 -0
- package/dist/vendor/core-src/registry/components/ui/context-menu.tsx +237 -0
- package/dist/vendor/core-src/registry/components/ui/dialog.tsx +200 -0
- package/dist/vendor/core-src/registry/components/ui/dropdown-menu.tsx +298 -0
- package/dist/vendor/core-src/registry/components/ui/dropzone.tsx +189 -0
- package/dist/vendor/core-src/registry/components/ui/empty.tsx +83 -0
- package/dist/vendor/core-src/registry/components/ui/field.tsx +71 -0
- package/dist/vendor/core-src/registry/components/ui/file-tree.tsx +181 -0
- package/dist/vendor/core-src/registry/components/ui/footer.tsx +247 -0
- package/dist/vendor/core-src/registry/components/ui/form-message.tsx +36 -0
- package/dist/vendor/core-src/registry/components/ui/form.tsx +21 -0
- package/dist/vendor/core-src/registry/components/ui/hover-card.tsx +105 -0
- package/dist/vendor/core-src/registry/components/ui/icon-button.tsx +34 -0
- package/dist/vendor/core-src/registry/components/ui/input-group.tsx +80 -0
- package/dist/vendor/core-src/registry/components/ui/input.tsx +28 -0
- package/dist/vendor/core-src/registry/components/ui/kbd.tsx +73 -0
- package/dist/vendor/core-src/registry/components/ui/label.tsx +30 -0
- package/dist/vendor/core-src/registry/components/ui/list.tsx +222 -0
- package/dist/vendor/core-src/registry/components/ui/logo.tsx +68 -0
- package/dist/vendor/core-src/registry/components/ui/marker.tsx +102 -0
- package/dist/vendor/core-src/registry/components/ui/marquee.tsx +118 -0
- package/dist/vendor/core-src/registry/components/ui/message.tsx +168 -0
- package/dist/vendor/core-src/registry/components/ui/navbar.tsx +375 -0
- package/dist/vendor/core-src/registry/components/ui/navigation-menu.tsx +358 -0
- package/dist/vendor/core-src/registry/components/ui/number-input.tsx +150 -0
- package/dist/vendor/core-src/registry/components/ui/package-manager-tabs.tsx +226 -0
- package/dist/vendor/core-src/registry/components/ui/pager.tsx +102 -0
- package/dist/vendor/core-src/registry/components/ui/pagination.tsx +258 -0
- package/dist/vendor/core-src/registry/components/ui/pin-input.tsx +198 -0
- package/dist/vendor/core-src/registry/components/ui/popover.tsx +90 -0
- package/dist/vendor/core-src/registry/components/ui/progress.tsx +66 -0
- package/dist/vendor/core-src/registry/components/ui/radio-group.tsx +95 -0
- package/dist/vendor/core-src/registry/components/ui/rating.tsx +185 -0
- package/dist/vendor/core-src/registry/components/ui/resizable.tsx +195 -0
- package/dist/vendor/core-src/registry/components/ui/review-card.tsx +195 -0
- package/dist/vendor/core-src/registry/components/ui/rich-text-editor/bubble-menu.tsx +236 -0
- package/dist/vendor/core-src/registry/components/ui/rich-text-editor/editor.tsx +308 -0
- package/dist/vendor/core-src/registry/components/ui/rich-text-editor/extensions.ts +116 -0
- package/dist/vendor/core-src/registry/components/ui/rich-text-editor/footer.tsx +36 -0
- package/dist/vendor/core-src/registry/components/ui/rich-text-editor/image-dialog.tsx +75 -0
- package/dist/vendor/core-src/registry/components/ui/rich-text-editor/index.ts +11 -0
- package/dist/vendor/core-src/registry/components/ui/rich-text-editor/link-dialog.tsx +48 -0
- package/dist/vendor/core-src/registry/components/ui/rich-text-editor/markdown.ts +170 -0
- package/dist/vendor/core-src/registry/components/ui/rich-text-editor/slash-command.tsx +301 -0
- package/dist/vendor/core-src/registry/components/ui/rich-text-editor/table-controls.tsx +68 -0
- package/dist/vendor/core-src/registry/components/ui/rich-text-editor/toolbar.tsx +465 -0
- package/dist/vendor/core-src/registry/components/ui/rich-text-editor/use-editor.ts +231 -0
- package/dist/vendor/core-src/registry/components/ui/scroll-area.tsx +228 -0
- package/dist/vendor/core-src/registry/components/ui/section-heading.tsx +108 -0
- package/dist/vendor/core-src/registry/components/ui/select.tsx +156 -0
- package/dist/vendor/core-src/registry/components/ui/separator.tsx +37 -0
- package/dist/vendor/core-src/registry/components/ui/sheet.tsx +220 -0
- package/dist/vendor/core-src/registry/components/ui/sidebar.tsx +692 -0
- package/dist/vendor/core-src/registry/components/ui/skeleton.tsx +24 -0
- package/dist/vendor/core-src/registry/components/ui/slider.tsx +153 -0
- package/dist/vendor/core-src/registry/components/ui/spinner.tsx +41 -0
- package/dist/vendor/core-src/registry/components/ui/stat.tsx +245 -0
- package/dist/vendor/core-src/registry/components/ui/status.tsx +121 -0
- package/dist/vendor/core-src/registry/components/ui/steps.tsx +198 -0
- package/dist/vendor/core-src/registry/components/ui/switch.tsx +68 -0
- package/dist/vendor/core-src/registry/components/ui/table-of-contents.tsx +131 -0
- package/dist/vendor/core-src/registry/components/ui/table.tsx +160 -0
- package/dist/vendor/core-src/registry/components/ui/tabs.tsx +204 -0
- package/dist/vendor/core-src/registry/components/ui/textarea.tsx +82 -0
- package/dist/vendor/core-src/registry/components/ui/theme-toggle.tsx +238 -0
- package/dist/vendor/core-src/registry/components/ui/timeline.tsx +350 -0
- package/dist/vendor/core-src/registry/components/ui/titlebar-tabs.tsx +773 -0
- package/dist/vendor/core-src/registry/components/ui/titlebar.tsx +468 -0
- package/dist/vendor/core-src/registry/components/ui/toast.tsx +124 -0
- package/dist/vendor/core-src/registry/components/ui/toggle-group.tsx +203 -0
- package/dist/vendor/core-src/registry/components/ui/toggle.tsx +101 -0
- package/dist/vendor/core-src/registry/components/ui/tooltip.tsx +41 -0
- package/dist/vendor/core-src/registry/components/ui/updater-modal.tsx +254 -0
- package/dist/vendor/core-src/registry/index.ts +50 -0
- package/dist/vendor/core-src/registry/metadata.ts +742 -0
- package/dist/vendor/core-src/registry/providers/theme-provider.tsx +216 -0
- package/dist/vendor/core-src/registry/providers/theme-script.tsx +78 -0
- package/dist/vendor/core-src/registry/providers/theme-transitions.ts +139 -0
- package/dist/vendor/hooks-src/create-active-element.ts +51 -0
- package/dist/vendor/hooks-src/create-app-updater.ts +272 -0
- package/dist/vendor/hooks-src/create-audio-video.ts +444 -0
- package/dist/vendor/hooks-src/create-battery.ts +78 -0
- package/dist/vendor/hooks-src/create-chat-scroll.ts +113 -0
- package/dist/vendor/hooks-src/create-click-outside.ts +82 -0
- package/dist/vendor/hooks-src/create-clipboard.ts +69 -0
- package/dist/vendor/hooks-src/create-color-mode.ts +115 -0
- package/dist/vendor/hooks-src/create-controllable-signal.ts +56 -0
- package/dist/vendor/hooks-src/create-debounce.ts +90 -0
- package/dist/vendor/hooks-src/create-disclosure.ts +82 -0
- package/dist/vendor/hooks-src/create-document-tabs.ts +267 -0
- package/dist/vendor/hooks-src/create-document-title.ts +33 -0
- package/dist/vendor/hooks-src/create-drop-zone.ts +317 -0
- package/dist/vendor/hooks-src/create-event-source.ts +126 -0
- package/dist/vendor/hooks-src/create-favicon.ts +52 -0
- package/dist/vendor/hooks-src/create-fetch.ts +93 -0
- package/dist/vendor/hooks-src/create-focus-trap.ts +94 -0
- package/dist/vendor/hooks-src/create-form.ts +200 -0
- package/dist/vendor/hooks-src/create-fullscreen.ts +105 -0
- package/dist/vendor/hooks-src/create-geolocation.ts +140 -0
- package/dist/vendor/hooks-src/create-global-shortcut.ts +140 -0
- package/dist/vendor/hooks-src/create-hover.ts +88 -0
- package/dist/vendor/hooks-src/create-idle.ts +109 -0
- package/dist/vendor/hooks-src/create-infinite-scroll.ts +90 -0
- package/dist/vendor/hooks-src/create-input-mask.ts +109 -0
- package/dist/vendor/hooks-src/create-intersection-observer.ts +82 -0
- package/dist/vendor/hooks-src/create-keybindings.ts +148 -0
- package/dist/vendor/hooks-src/create-lock-scroll.ts +97 -0
- package/dist/vendor/hooks-src/create-long-press.ts +85 -0
- package/dist/vendor/hooks-src/create-media-query.ts +94 -0
- package/dist/vendor/hooks-src/create-mouse-position.ts +87 -0
- package/dist/vendor/hooks-src/create-network-status.ts +100 -0
- package/dist/vendor/hooks-src/create-orientation.ts +129 -0
- package/dist/vendor/hooks-src/create-pagination.ts +208 -0
- package/dist/vendor/hooks-src/create-permission.ts +91 -0
- package/dist/vendor/hooks-src/create-previous.ts +21 -0
- package/dist/vendor/hooks-src/create-resize-observer.ts +89 -0
- package/dist/vendor/hooks-src/create-scroll-into-view.ts +57 -0
- package/dist/vendor/hooks-src/create-scroll-position.ts +129 -0
- package/dist/vendor/hooks-src/create-storage.ts +106 -0
- package/dist/vendor/hooks-src/create-tauri-window.ts +628 -0
- package/dist/vendor/hooks-src/create-timer.ts +150 -0
- package/dist/vendor/hooks-src/create-tiptap-editor.ts +326 -0
- package/dist/vendor/hooks-src/create-undo-redo.ts +100 -0
- package/dist/vendor/hooks-src/create-web-notification.ts +111 -0
- package/dist/vendor/hooks-src/create-websocket.ts +179 -0
- package/dist/vendor/hooks-src/create-window-size.ts +41 -0
- package/dist/vendor/hooks-src/index.ts +48 -0
- package/package.json +87 -0
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { formatTitleFromFilename } from "./content-scanner.js";
|
|
2
|
+
import { flattenSidebarItems } from "../navigation/sidebar-tree.js";
|
|
3
|
+
export { flattenSidebarItems } from "../navigation/sidebar-tree.js";
|
|
4
|
+
export function formatGroupName(segment) {
|
|
5
|
+
return segment
|
|
6
|
+
.split(/[-_]/)
|
|
7
|
+
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
|
|
8
|
+
.join(" ");
|
|
9
|
+
}
|
|
10
|
+
export function buildSidebarTree(pages, directories = []) {
|
|
11
|
+
const rootPages = [];
|
|
12
|
+
const categoryMap = new Map();
|
|
13
|
+
for (const directory of directories) {
|
|
14
|
+
const category = directory.split("/")[0];
|
|
15
|
+
if (category && !categoryMap.has(category))
|
|
16
|
+
categoryMap.set(category, []);
|
|
17
|
+
}
|
|
18
|
+
for (const page of pages) {
|
|
19
|
+
if (page.url === "/") {
|
|
20
|
+
rootPages.push(page);
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
23
|
+
const segments = page.url.slice(1).split("/");
|
|
24
|
+
if (segments.length === 1) {
|
|
25
|
+
rootPages.push(page);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
const cat = segments[0];
|
|
29
|
+
if (!categoryMap.has(cat)) {
|
|
30
|
+
categoryMap.set(cat, []);
|
|
31
|
+
}
|
|
32
|
+
categoryMap.get(cat).push(page);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
// Sort root pages: "/" always first, then by order, then title
|
|
36
|
+
rootPages.sort((a, b) => {
|
|
37
|
+
if (a.url === "/")
|
|
38
|
+
return -1;
|
|
39
|
+
if (b.url === "/")
|
|
40
|
+
return 1;
|
|
41
|
+
const orderA = a.frontmatter.order ?? 9999;
|
|
42
|
+
const orderB = b.frontmatter.order ?? 9999;
|
|
43
|
+
if (orderA !== orderB)
|
|
44
|
+
return orderA - orderB;
|
|
45
|
+
return a.title.localeCompare(b.title);
|
|
46
|
+
});
|
|
47
|
+
const rootItems = rootPages.map((page) => ({
|
|
48
|
+
title: page.title || "Overview",
|
|
49
|
+
href: page.url,
|
|
50
|
+
badge: page.frontmatter.badge,
|
|
51
|
+
addedAt: page.frontmatter.addedAt,
|
|
52
|
+
icon: page.frontmatter.icon,
|
|
53
|
+
}));
|
|
54
|
+
// Determine order of categories
|
|
55
|
+
const categories = Array.from(categoryMap.entries()).map(([cat, catPages]) => {
|
|
56
|
+
const minCategoryOrder = Math.min(...catPages.map((p) => {
|
|
57
|
+
const catOrder = typeof p.frontmatter.categoryOrder === "number" ? p.frontmatter.categoryOrder : undefined;
|
|
58
|
+
return catOrder ?? 9999;
|
|
59
|
+
}));
|
|
60
|
+
const minPageOrder = Math.min(...catPages.map((p) => p.frontmatter.order ?? 9999));
|
|
61
|
+
return { cat, catPages, minCategoryOrder, minPageOrder };
|
|
62
|
+
});
|
|
63
|
+
categories.sort((a, b) => {
|
|
64
|
+
if (a.minCategoryOrder !== b.minCategoryOrder) {
|
|
65
|
+
return a.minCategoryOrder - b.minCategoryOrder;
|
|
66
|
+
}
|
|
67
|
+
if (a.minPageOrder !== b.minPageOrder) {
|
|
68
|
+
return a.minPageOrder - b.minPageOrder;
|
|
69
|
+
}
|
|
70
|
+
return a.cat.localeCompare(b.cat);
|
|
71
|
+
});
|
|
72
|
+
for (const { cat, catPages } of categories) {
|
|
73
|
+
const group = {
|
|
74
|
+
title: formatGroupName(cat),
|
|
75
|
+
items: [],
|
|
76
|
+
};
|
|
77
|
+
// Sort pages in this category by order, then title
|
|
78
|
+
catPages.sort((a, b) => {
|
|
79
|
+
const orderA = a.frontmatter.order ?? 9999;
|
|
80
|
+
const orderB = b.frontmatter.order ?? 9999;
|
|
81
|
+
if (orderA !== orderB)
|
|
82
|
+
return orderA - orderB;
|
|
83
|
+
return a.title.localeCompare(b.title);
|
|
84
|
+
});
|
|
85
|
+
for (const page of catPages) {
|
|
86
|
+
const segments = page.url.slice(1).split("/");
|
|
87
|
+
if (segments.length === 2) {
|
|
88
|
+
group.items?.push({
|
|
89
|
+
title: page.title,
|
|
90
|
+
href: page.url,
|
|
91
|
+
badge: page.frontmatter.badge,
|
|
92
|
+
addedAt: page.frontmatter.addedAt,
|
|
93
|
+
icon: page.frontmatter.icon,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
const subCategory = segments[1];
|
|
98
|
+
let subGroup = group.items?.find((item) => item.title === formatGroupName(subCategory) && item.items);
|
|
99
|
+
if (!subGroup) {
|
|
100
|
+
subGroup = {
|
|
101
|
+
title: formatGroupName(subCategory),
|
|
102
|
+
items: [],
|
|
103
|
+
};
|
|
104
|
+
group.items?.push(subGroup);
|
|
105
|
+
}
|
|
106
|
+
subGroup.items?.push({
|
|
107
|
+
title: page.title,
|
|
108
|
+
href: page.url,
|
|
109
|
+
badge: page.frontmatter.badge,
|
|
110
|
+
addedAt: page.frontmatter.addedAt,
|
|
111
|
+
icon: page.frontmatter.icon,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
rootItems.push(group);
|
|
116
|
+
}
|
|
117
|
+
return rootItems;
|
|
118
|
+
}
|
|
119
|
+
export function buildPagination(pages, currentUrl) {
|
|
120
|
+
const currentPage = pages.find((p) => p.url === currentUrl);
|
|
121
|
+
const sidebar = buildSidebarTree(pages);
|
|
122
|
+
const flattened = flattenSidebarItems(sidebar);
|
|
123
|
+
const currentIndex = flattened.findIndex((item) => item.href === currentUrl);
|
|
124
|
+
if (currentIndex === -1) {
|
|
125
|
+
return {};
|
|
126
|
+
}
|
|
127
|
+
let prev = currentIndex > 0 ? flattened[currentIndex - 1] : undefined;
|
|
128
|
+
let next = currentIndex < flattened.length - 1 ? flattened[currentIndex + 1] : undefined;
|
|
129
|
+
// Custom frontmatter overrides
|
|
130
|
+
if (currentPage?.frontmatter.prev === false || currentPage?.frontmatter.prev === null) {
|
|
131
|
+
prev = undefined;
|
|
132
|
+
}
|
|
133
|
+
else if (typeof currentPage?.frontmatter.prev === "string") {
|
|
134
|
+
const target = pages.find((p) => p.url === currentPage.frontmatter.prev);
|
|
135
|
+
if (target)
|
|
136
|
+
prev = { title: target.title, href: target.url };
|
|
137
|
+
}
|
|
138
|
+
else if (typeof currentPage?.frontmatter.prev === "object" && currentPage.frontmatter.prev !== null) {
|
|
139
|
+
prev = currentPage.frontmatter.prev;
|
|
140
|
+
}
|
|
141
|
+
if (currentPage?.frontmatter.next === false || currentPage?.frontmatter.next === null) {
|
|
142
|
+
next = undefined;
|
|
143
|
+
}
|
|
144
|
+
else if (typeof currentPage?.frontmatter.next === "string") {
|
|
145
|
+
const target = pages.find((p) => p.url === currentPage.frontmatter.next);
|
|
146
|
+
if (target)
|
|
147
|
+
next = { title: target.title, href: target.url };
|
|
148
|
+
}
|
|
149
|
+
else if (typeof currentPage?.frontmatter.next === "object" && currentPage.frontmatter.next !== null) {
|
|
150
|
+
next = currentPage.frontmatter.next;
|
|
151
|
+
}
|
|
152
|
+
return { prev, next };
|
|
153
|
+
}
|
|
154
|
+
export function buildBreadcrumbs(url, pages) {
|
|
155
|
+
const breadcrumbs = [
|
|
156
|
+
{ title: "Docs", href: "/" },
|
|
157
|
+
];
|
|
158
|
+
if (url === "/") {
|
|
159
|
+
return breadcrumbs;
|
|
160
|
+
}
|
|
161
|
+
const segments = url.slice(1).split("/");
|
|
162
|
+
let accumulatedPath = "";
|
|
163
|
+
for (let i = 0; i < segments.length; i++) {
|
|
164
|
+
const seg = segments[i];
|
|
165
|
+
accumulatedPath += `/${seg}`;
|
|
166
|
+
const isLast = i === segments.length - 1;
|
|
167
|
+
const matchingPage = pages.find((p) => p.url === accumulatedPath);
|
|
168
|
+
const title = matchingPage?.title || formatTitleFromFilename(seg);
|
|
169
|
+
breadcrumbs.push({
|
|
170
|
+
title,
|
|
171
|
+
href: isLast ? undefined : accumulatedPath,
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
return breadcrumbs;
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=route-tree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-tree.js","sourceRoot":"","sources":["../../src/core/route-tree.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export * from "./types.js";
|
|
2
|
+
export * from "./navigation/index.js";
|
|
3
|
+
export * from "./config.js";
|
|
4
|
+
export * from "./core/content-scanner.js";
|
|
5
|
+
export * from "./core/route-tree.js";
|
|
6
|
+
export * from "./mdx/compiler.js";
|
|
7
|
+
export * from "./mdx/highlighter.js";
|
|
8
|
+
export * from "./components/mdx-components.js";
|
|
9
|
+
export * from "./themes/index.js";
|
|
10
|
+
export * from "./server/index.js";
|
|
11
|
+
import { nikalaDocsPlugin } from "./server/plugin.js";
|
|
12
|
+
export declare const nikalaDocs: typeof nikalaDocsPlugin;
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAElC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,eAAO,MAAM,UAAU,yBAAmB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// packages/docs/src/index.ts
|
|
2
|
+
export * from "./types.js";
|
|
3
|
+
export * from "./navigation/index.js";
|
|
4
|
+
export * from "./config.js";
|
|
5
|
+
export * from "./core/content-scanner.js";
|
|
6
|
+
export * from "./core/route-tree.js";
|
|
7
|
+
export * from "./mdx/compiler.js";
|
|
8
|
+
export * from "./mdx/highlighter.js";
|
|
9
|
+
export * from "./components/mdx-components.js";
|
|
10
|
+
export * from "./themes/index.js";
|
|
11
|
+
export * from "./server/index.js";
|
|
12
|
+
import { nikalaDocsPlugin } from "./server/plugin.js";
|
|
13
|
+
export const nikalaDocs = nikalaDocsPlugin;
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAElC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,MAAM,CAAC,MAAM,UAAU,GAAG,gBAAgB,CAAC"}
|
package/dist/lib/cn.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cn.d.ts","sourceRoot":"","sources":["../../src/lib/cn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,MAAM,CAAC;AAG7C;;GAEG;AACH,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,OAEzC"}
|
package/dist/lib/cn.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cn.js","sourceRoot":"","sources":["../../src/lib/cn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,MAAM,MAAM,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC;;GAEG;AACH,MAAM,UAAU,EAAE,CAAC,GAAG,MAAoB;IACxC,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Frontmatter, TocItem } from "../types.js";
|
|
2
|
+
export interface CompileMdxResult {
|
|
3
|
+
code: string;
|
|
4
|
+
frontmatter: Frontmatter;
|
|
5
|
+
toc: TocItem[];
|
|
6
|
+
}
|
|
7
|
+
export interface CompileMdxOptions {
|
|
8
|
+
filePath?: string;
|
|
9
|
+
development?: boolean;
|
|
10
|
+
shiki?: import("../types.js").ShikiConfig;
|
|
11
|
+
}
|
|
12
|
+
export declare function compileMdx(rawContent: string, options?: CompileMdxOptions): Promise<CompileMdxResult>;
|
|
13
|
+
//# sourceMappingURL=compiler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/mdx/compiler.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGxD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,WAAW,CAAC;IACzB,GAAG,EAAE,OAAO,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,aAAa,EAAE,WAAW,CAAC;CAC3C;AAED,wBAAsB,UAAU,CAC9B,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,gBAAgB,CAAC,CA8B3B"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// packages/docs/src/mdx/compiler.ts
|
|
2
|
+
import { compile } from "@mdx-js/mdx";
|
|
3
|
+
import matter from "gray-matter";
|
|
4
|
+
import rehypeAutolinkHeadings from "rehype-autolink-headings";
|
|
5
|
+
import rehypeSlug from "rehype-slug";
|
|
6
|
+
import remarkGfm from "remark-gfm";
|
|
7
|
+
import { extractToc } from "../core/content-scanner.js";
|
|
8
|
+
import { rehypeShiki } from "./rehype-shiki.js";
|
|
9
|
+
export async function compileMdx(rawContent, options = {}) {
|
|
10
|
+
const parsed = matter(rawContent);
|
|
11
|
+
const frontmatter = (parsed.data || {});
|
|
12
|
+
const toc = extractToc(parsed.content);
|
|
13
|
+
const compiled = await compile(parsed.content, {
|
|
14
|
+
jsx: true,
|
|
15
|
+
jsxImportSource: "solid-js",
|
|
16
|
+
development: options.development ?? false,
|
|
17
|
+
remarkPlugins: [remarkGfm],
|
|
18
|
+
rehypePlugins: [
|
|
19
|
+
rehypeSlug,
|
|
20
|
+
[
|
|
21
|
+
rehypeAutolinkHeadings,
|
|
22
|
+
{
|
|
23
|
+
behavior: "wrap",
|
|
24
|
+
properties: {
|
|
25
|
+
className: ["heading-anchor"],
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
],
|
|
29
|
+
[rehypeShiki, options.shiki],
|
|
30
|
+
],
|
|
31
|
+
});
|
|
32
|
+
return {
|
|
33
|
+
code: String(compiled),
|
|
34
|
+
frontmatter,
|
|
35
|
+
toc,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=compiler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../src/mdx/compiler.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAchD,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,UAAkB,EAClB,UAA6B,EAAE;IAE/B,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IAClC,MAAM,WAAW,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAgB,CAAC;IACvD,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEvC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE;QAC7C,GAAG,EAAE,IAAI;QACT,eAAe,EAAE,UAAU;QAC3B,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,KAAK;QACzC,aAAa,EAAE,CAAC,SAAS,CAAC;QAC1B,aAAa,EAAE;YACb,UAAU;YACV;gBACE,sBAAsB;gBACtB;oBACE,QAAQ,EAAE,MAAM;oBAChB,UAAU,EAAE;wBACV,SAAS,EAAE,CAAC,gBAAgB,CAAC;qBAC9B;iBACF;aACF;YACD,CAAC,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC;SAC7B;KACF,CAAC,CAAC;IAEH,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC;QACtB,WAAW;QACX,GAAG;KACJ,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type Highlighter } from "shiki";
|
|
2
|
+
import type { ShikiConfig } from "../types.js";
|
|
3
|
+
export declare function configureDocsHighlighter(config: ShikiConfig): void;
|
|
4
|
+
export declare function getDocsHighlighter(config?: ShikiConfig): Promise<Highlighter>;
|
|
5
|
+
/**
|
|
6
|
+
* Ensures a language is loaded in Shiki on-demand.
|
|
7
|
+
* If the language is bundled in Shiki, loads it dynamically.
|
|
8
|
+
* Returns the resolved language identifier or "text" as fallback.
|
|
9
|
+
*/
|
|
10
|
+
export declare function ensureLanguage(highlighter: Highlighter, rawLang: string): Promise<string>;
|
|
11
|
+
/**
|
|
12
|
+
* Ensures a theme is loaded in Shiki on-demand.
|
|
13
|
+
*/
|
|
14
|
+
export declare function ensureTheme(highlighter: Highlighter, themeName: string): Promise<string>;
|
|
15
|
+
export interface HighlightOptions {
|
|
16
|
+
lang?: string;
|
|
17
|
+
filename?: string;
|
|
18
|
+
themeLight?: string;
|
|
19
|
+
themeDark?: string;
|
|
20
|
+
}
|
|
21
|
+
export declare function highlightCode(code: string, options?: HighlightOptions): Promise<string>;
|
|
22
|
+
//# sourceMappingURL=highlighter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"highlighter.d.ts","sourceRoot":"","sources":["../../src/mdx/highlighter.ts"],"names":[],"mappings":"AACA,OAAO,EAML,KAAK,WAAW,EACjB,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAiC/C,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAGlE;AAED,wBAAsB,kBAAkB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAenF;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAuB/F;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAgB9F;AA8BD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAqBjG"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
// packages/docs/src/mdx/highlighter.ts
|
|
2
|
+
import { createHighlighter, bundledLanguages, bundledThemes, } from "shiki";
|
|
3
|
+
let highlighterPromise = null;
|
|
4
|
+
let activeShikiConfig = null;
|
|
5
|
+
const DEFAULT_BASE_LANGS = [
|
|
6
|
+
"typescript",
|
|
7
|
+
"javascript",
|
|
8
|
+
"tsx",
|
|
9
|
+
"jsx",
|
|
10
|
+
"bash",
|
|
11
|
+
"json",
|
|
12
|
+
"css",
|
|
13
|
+
"html",
|
|
14
|
+
"markdown",
|
|
15
|
+
"mdx",
|
|
16
|
+
"rust",
|
|
17
|
+
"c",
|
|
18
|
+
"cpp",
|
|
19
|
+
"python",
|
|
20
|
+
"go",
|
|
21
|
+
"yaml",
|
|
22
|
+
"toml",
|
|
23
|
+
"sql",
|
|
24
|
+
"mermaid",
|
|
25
|
+
"diff",
|
|
26
|
+
"dockerfile",
|
|
27
|
+
"zig",
|
|
28
|
+
];
|
|
29
|
+
const DEFAULT_LIGHT_THEME = "github-light";
|
|
30
|
+
const DEFAULT_DARK_THEME = "github-dark";
|
|
31
|
+
export function configureDocsHighlighter(config) {
|
|
32
|
+
activeShikiConfig = config;
|
|
33
|
+
highlighterPromise = null; // Re-initialize with new configuration
|
|
34
|
+
}
|
|
35
|
+
export async function getDocsHighlighter(config) {
|
|
36
|
+
const currentConfig = config || activeShikiConfig;
|
|
37
|
+
if (!highlighterPromise) {
|
|
38
|
+
const lightTheme = currentConfig?.themes?.light || DEFAULT_LIGHT_THEME;
|
|
39
|
+
const darkTheme = currentConfig?.themes?.dark || DEFAULT_DARK_THEME;
|
|
40
|
+
const initialLangs = currentConfig?.langs || DEFAULT_BASE_LANGS;
|
|
41
|
+
highlighterPromise = createHighlighter({
|
|
42
|
+
themes: [lightTheme, darkTheme],
|
|
43
|
+
langs: initialLangs,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
return highlighterPromise;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Ensures a language is loaded in Shiki on-demand.
|
|
50
|
+
* If the language is bundled in Shiki, loads it dynamically.
|
|
51
|
+
* Returns the resolved language identifier or "text" as fallback.
|
|
52
|
+
*/
|
|
53
|
+
export async function ensureLanguage(highlighter, rawLang) {
|
|
54
|
+
const normalized = normalizeLangAlias(rawLang);
|
|
55
|
+
if (!normalized || normalized === "text" || normalized === "txt" || normalized === "plain") {
|
|
56
|
+
return "text";
|
|
57
|
+
}
|
|
58
|
+
const loaded = highlighter.getLoadedLanguages();
|
|
59
|
+
if (loaded.includes(normalized)) {
|
|
60
|
+
return normalized;
|
|
61
|
+
}
|
|
62
|
+
// Check if it's available in Shiki's bundled languages
|
|
63
|
+
if (normalized in bundledLanguages) {
|
|
64
|
+
try {
|
|
65
|
+
await highlighter.loadLanguage(normalized);
|
|
66
|
+
return normalized;
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
console.warn(`[nikala-docs] Failed to dynamically load Shiki language "${normalized}":`, err);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return "text";
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Ensures a theme is loaded in Shiki on-demand.
|
|
76
|
+
*/
|
|
77
|
+
export async function ensureTheme(highlighter, themeName) {
|
|
78
|
+
const loaded = highlighter.getLoadedThemes();
|
|
79
|
+
if (loaded.includes(themeName)) {
|
|
80
|
+
return themeName;
|
|
81
|
+
}
|
|
82
|
+
if (themeName in bundledThemes) {
|
|
83
|
+
try {
|
|
84
|
+
await highlighter.loadTheme(themeName);
|
|
85
|
+
return themeName;
|
|
86
|
+
}
|
|
87
|
+
catch (err) {
|
|
88
|
+
console.warn(`[nikala-docs] Failed to dynamically load Shiki theme "${themeName}":`, err);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return DEFAULT_DARK_THEME;
|
|
92
|
+
}
|
|
93
|
+
function normalizeLangAlias(lang) {
|
|
94
|
+
const l = lang.toLowerCase().trim();
|
|
95
|
+
switch (l) {
|
|
96
|
+
case "shell":
|
|
97
|
+
case "sh":
|
|
98
|
+
case "zsh":
|
|
99
|
+
return "bash";
|
|
100
|
+
case "js":
|
|
101
|
+
return "javascript";
|
|
102
|
+
case "ts":
|
|
103
|
+
return "typescript";
|
|
104
|
+
case "py":
|
|
105
|
+
return "python";
|
|
106
|
+
case "rs":
|
|
107
|
+
return "rust";
|
|
108
|
+
case "yml":
|
|
109
|
+
return "yaml";
|
|
110
|
+
case "md":
|
|
111
|
+
return "markdown";
|
|
112
|
+
case "rb":
|
|
113
|
+
return "ruby";
|
|
114
|
+
case "cs":
|
|
115
|
+
return "csharp";
|
|
116
|
+
default:
|
|
117
|
+
return l;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
export async function highlightCode(code, options = {}) {
|
|
121
|
+
const highlighter = await getDocsHighlighter();
|
|
122
|
+
const rawLang = options.lang || "text";
|
|
123
|
+
const targetLang = await ensureLanguage(highlighter, rawLang);
|
|
124
|
+
const themeLight = options.themeLight
|
|
125
|
+
? await ensureTheme(highlighter, options.themeLight)
|
|
126
|
+
: activeShikiConfig?.themes?.light || DEFAULT_LIGHT_THEME;
|
|
127
|
+
const themeDark = options.themeDark
|
|
128
|
+
? await ensureTheme(highlighter, options.themeDark)
|
|
129
|
+
: activeShikiConfig?.themes?.dark || DEFAULT_DARK_THEME;
|
|
130
|
+
return highlighter.codeToHtml(code.trimEnd(), {
|
|
131
|
+
lang: targetLang,
|
|
132
|
+
themes: {
|
|
133
|
+
light: themeLight,
|
|
134
|
+
dark: themeDark,
|
|
135
|
+
},
|
|
136
|
+
defaultColor: false,
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=highlighter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"highlighter.js","sourceRoot":"","sources":["../../src/mdx/highlighter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rehype-shiki.d.ts","sourceRoot":"","sources":["../../src/mdx/rehype-shiki.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,WAAW,IAChC,MAAM,GAAG,mBAkGxB"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { ensureLanguage, ensureTheme, getDocsHighlighter } from "./highlighter.js";
|
|
2
|
+
export function rehypeShiki(config) {
|
|
3
|
+
return async (tree) => {
|
|
4
|
+
const highlighter = await getDocsHighlighter(config);
|
|
5
|
+
const lightTheme = config?.themes?.light
|
|
6
|
+
? await ensureTheme(highlighter, config.themes.light)
|
|
7
|
+
: "github-light";
|
|
8
|
+
const darkTheme = config?.themes?.dark
|
|
9
|
+
? await ensureTheme(highlighter, config.themes.dark)
|
|
10
|
+
: "github-dark";
|
|
11
|
+
const tasks = [];
|
|
12
|
+
function visit(node, parent, index) {
|
|
13
|
+
if (node && node.type === "element" && node.tagName === "pre") {
|
|
14
|
+
const codeNode = node.children?.find((child) => child.type === "element" && child.tagName === "code");
|
|
15
|
+
if (codeNode) {
|
|
16
|
+
const className = codeNode.properties?.className || [];
|
|
17
|
+
const langClass = className.find((c) => c.startsWith("language-"));
|
|
18
|
+
const rawLang = langClass ? langClass.replace("language-", "") : "text";
|
|
19
|
+
// Extract text content from code children
|
|
20
|
+
let codeText = "";
|
|
21
|
+
for (const child of codeNode.children || []) {
|
|
22
|
+
if (child.type === "text") {
|
|
23
|
+
codeText += child.value;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
tasks.push((async () => {
|
|
27
|
+
try {
|
|
28
|
+
// Dynamically ensure language is loaded on-demand
|
|
29
|
+
const targetLang = await ensureLanguage(highlighter, rawLang);
|
|
30
|
+
const hast = highlighter.codeToHast(codeText.trimEnd(), {
|
|
31
|
+
lang: targetLang,
|
|
32
|
+
themes: {
|
|
33
|
+
light: lightTheme,
|
|
34
|
+
dark: darkTheme,
|
|
35
|
+
},
|
|
36
|
+
defaultColor: false,
|
|
37
|
+
});
|
|
38
|
+
if (hast.children?.[0] && parent && typeof index === "number") {
|
|
39
|
+
const highlightedPre = hast.children[0];
|
|
40
|
+
// Preserve or merge existing classes
|
|
41
|
+
const existingClass = highlightedPre.properties?.className || [];
|
|
42
|
+
highlightedPre.properties = highlightedPre.properties || {};
|
|
43
|
+
highlightedPre.properties.className = [
|
|
44
|
+
...existingClass,
|
|
45
|
+
"nikala-code-block",
|
|
46
|
+
"font-mono",
|
|
47
|
+
"text-xs",
|
|
48
|
+
];
|
|
49
|
+
// Store raw code in data attribute for copy actions
|
|
50
|
+
highlightedPre.properties["data-code"] = codeText.trimEnd();
|
|
51
|
+
highlightedPre.properties["data-lang"] = targetLang;
|
|
52
|
+
// Add class to code element so MdxCode knows it is inside pre
|
|
53
|
+
const codeEl = highlightedPre.children?.find((child) => child.type === "element" && child.tagName === "code");
|
|
54
|
+
if (codeEl) {
|
|
55
|
+
const codeClass = codeEl.properties?.className || [];
|
|
56
|
+
codeEl.properties = codeEl.properties || {};
|
|
57
|
+
codeEl.properties.className = [
|
|
58
|
+
...codeClass,
|
|
59
|
+
"shiki-code",
|
|
60
|
+
`language-${targetLang}`,
|
|
61
|
+
];
|
|
62
|
+
}
|
|
63
|
+
parent.children[index] = highlightedPre;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
catch (err) {
|
|
67
|
+
// Fallback to unhighlighted code on error
|
|
68
|
+
console.warn(`[nikala-docs] Shiki highlighting failed for lang: ${rawLang}`, err);
|
|
69
|
+
}
|
|
70
|
+
})());
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (node.children && Array.isArray(node.children)) {
|
|
74
|
+
for (let i = 0; i < node.children.length; i++) {
|
|
75
|
+
visit(node.children[i], node, i);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
visit(tree, null, -1);
|
|
80
|
+
await Promise.all(tasks);
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=rehype-shiki.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rehype-shiki.js","sourceRoot":"","sources":["../../src/mdx/rehype-shiki.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/navigation/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/navigation/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { SidebarItem } from "../types.js";
|
|
2
|
+
export declare function isSidebarItemActive(item: SidebarItem, currentUrl?: string): boolean;
|
|
3
|
+
export declare function containsActiveSidebarItem(item: SidebarItem, currentUrl?: string): boolean;
|
|
4
|
+
export declare function isSidebarItemNew(item: SidebarItem): boolean;
|
|
5
|
+
export declare function containsNewSidebarItem(item: SidebarItem): boolean;
|
|
6
|
+
//# sourceMappingURL=sidebar-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidebar-state.d.ts","sourceRoot":"","sources":["../../src/navigation/sidebar-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAEnF;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAGzF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAM3D;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAEjE"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export function isSidebarItemActive(item, currentUrl) {
|
|
2
|
+
return Boolean(item.href && currentUrl && item.href === currentUrl);
|
|
3
|
+
}
|
|
4
|
+
export function containsActiveSidebarItem(item, currentUrl) {
|
|
5
|
+
return isSidebarItemActive(item, currentUrl)
|
|
6
|
+
|| Boolean(item.items?.some((child) => containsActiveSidebarItem(child, currentUrl)));
|
|
7
|
+
}
|
|
8
|
+
export function isSidebarItemNew(item) {
|
|
9
|
+
if (!item.addedAt)
|
|
10
|
+
return false;
|
|
11
|
+
const timestamp = new Date(item.addedAt).getTime();
|
|
12
|
+
if (!Number.isFinite(timestamp))
|
|
13
|
+
return false;
|
|
14
|
+
const ageInDays = (Date.now() - timestamp) / (1000 * 60 * 60 * 24);
|
|
15
|
+
return ageInDays >= 0 && ageInDays <= 14;
|
|
16
|
+
}
|
|
17
|
+
export function containsNewSidebarItem(item) {
|
|
18
|
+
return isSidebarItemNew(item) || Boolean(item.items?.some(containsNewSidebarItem));
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=sidebar-state.js.map
|