robindoc 0.0.1 → 1.0.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/LICENSE +21 -0
- package/README.md +52 -1
- package/lib/assets/index.d.ts +2 -0
- package/lib/assets/index.d.ts.map +1 -0
- package/lib/assets/index.js +2 -0
- package/lib/assets/index.js.map +1 -0
- package/lib/components/blocks/anchor-heading/index.d.ts +9 -0
- package/lib/components/blocks/anchor-heading/index.d.ts.map +1 -0
- package/lib/components/blocks/anchor-heading/index.js +3 -0
- package/lib/components/blocks/anchor-heading/index.js.map +1 -0
- package/lib/components/blocks/breadcrumbs/index.d.ts +10 -0
- package/lib/components/blocks/breadcrumbs/index.d.ts.map +1 -0
- package/lib/components/blocks/breadcrumbs/index.js +2 -0
- package/lib/components/blocks/breadcrumbs/index.js.map +1 -0
- package/lib/components/blocks/code-section/index.d.ts +8 -0
- package/lib/components/blocks/code-section/index.d.ts.map +1 -0
- package/lib/components/blocks/code-section/index.js +2 -0
- package/lib/components/blocks/code-section/index.js.map +1 -0
- package/lib/components/blocks/contents/index.d.ts +19 -0
- package/lib/components/blocks/contents/index.d.ts.map +1 -0
- package/lib/components/blocks/contents/index.js +3 -0
- package/lib/components/blocks/contents/index.js.map +1 -0
- package/lib/components/blocks/header-menu/index.d.ts +10 -0
- package/lib/components/blocks/header-menu/index.d.ts.map +1 -0
- package/lib/components/blocks/header-menu/index.js +3 -0
- package/lib/components/blocks/header-menu/index.js.map +1 -0
- package/lib/components/blocks/header-social/index.d.ts +9 -0
- package/lib/components/blocks/header-social/index.d.ts.map +1 -0
- package/lib/components/blocks/header-social/index.js +2 -0
- package/lib/components/blocks/header-social/index.js.map +1 -0
- package/lib/components/blocks/last-modified/index.d.ts +7 -0
- package/lib/components/blocks/last-modified/index.d.ts.map +1 -0
- package/lib/components/blocks/last-modified/index.js +3 -0
- package/lib/components/blocks/last-modified/index.js.map +1 -0
- package/lib/components/blocks/meta/index.d.ts +21 -0
- package/lib/components/blocks/meta/index.d.ts.map +1 -0
- package/lib/components/blocks/nav-content-link/index.d.ts +8 -0
- package/lib/components/blocks/nav-content-link/index.d.ts.map +1 -0
- package/lib/components/blocks/nav-content-link/index.js +3 -0
- package/lib/components/blocks/nav-content-link/index.js.map +1 -0
- package/lib/components/blocks/nav-link/index.d.ts +7 -0
- package/lib/components/blocks/nav-link/index.d.ts.map +1 -0
- package/lib/components/blocks/nav-link/index.js +3 -0
- package/lib/components/blocks/nav-link/index.js.map +1 -0
- package/lib/components/blocks/pagination/index.d.ts +21 -0
- package/lib/components/blocks/pagination/index.d.ts.map +1 -0
- package/lib/components/blocks/pagination/index.js +2 -0
- package/lib/components/blocks/pagination/index.js.map +1 -0
- package/lib/components/blocks/search/index.d.ts +13 -0
- package/lib/components/blocks/search/index.d.ts.map +1 -0
- package/lib/components/blocks/search/index.js +3 -0
- package/lib/components/blocks/search/index.js.map +1 -0
- package/lib/components/blocks/search/search-modal/index.d.ts +17 -0
- package/lib/components/blocks/search/search-modal/index.d.ts.map +1 -0
- package/lib/components/blocks/search/search-modal/index.js +3 -0
- package/lib/components/blocks/search/search-modal/index.js.map +1 -0
- package/lib/components/blocks/section-dropdown/index.d.ts +16 -0
- package/lib/components/blocks/section-dropdown/index.d.ts.map +1 -0
- package/lib/components/blocks/section-dropdown/index.js +2 -0
- package/lib/components/blocks/section-dropdown/index.js.map +1 -0
- package/lib/components/blocks/theme/index.d.ts +14 -0
- package/lib/components/blocks/theme/index.d.ts.map +1 -0
- package/lib/components/blocks/theme/index.js +3 -0
- package/lib/components/blocks/theme/index.js.map +1 -0
- package/lib/components/contexts/contents/context.d.ts +4 -0
- package/lib/components/contexts/contents/context.d.ts.map +1 -0
- package/lib/components/contexts/contents/context.js +3 -0
- package/lib/components/contexts/contents/context.js.map +1 -0
- package/lib/components/contexts/contents/provider.d.ts +3 -0
- package/lib/components/contexts/contents/provider.d.ts.map +1 -0
- package/lib/components/contexts/contents/provider.js +3 -0
- package/lib/components/contexts/contents/provider.js.map +1 -0
- package/lib/components/contexts/contents/use-heading-index.d.ts +2 -0
- package/lib/components/contexts/contents/use-heading-index.d.ts.map +1 -0
- package/lib/components/contexts/contents/use-heading-index.js +3 -0
- package/lib/components/contexts/contents/use-heading-index.js.map +1 -0
- package/lib/components/contexts/contents/use-heading-register.d.ts +2 -0
- package/lib/components/contexts/contents/use-heading-register.d.ts.map +1 -0
- package/lib/components/contexts/contents/use-heading-register.js +3 -0
- package/lib/components/contexts/contents/use-heading-register.js.map +1 -0
- package/lib/components/contexts/navigate/context.d.ts +4 -0
- package/lib/components/contexts/navigate/context.d.ts.map +1 -0
- package/lib/components/contexts/navigate/context.js +3 -0
- package/lib/components/contexts/navigate/context.js.map +1 -0
- package/lib/components/contexts/navigate/provider.d.ts +3 -0
- package/lib/components/contexts/navigate/provider.d.ts.map +1 -0
- package/lib/components/contexts/navigate/provider.js +3 -0
- package/lib/components/contexts/navigate/provider.js.map +1 -0
- package/lib/components/contexts/navigate/types.d.ts +9 -0
- package/lib/components/contexts/navigate/types.d.ts.map +1 -0
- package/lib/components/contexts/navigate/use-navigate.d.ts +7 -0
- package/lib/components/contexts/navigate/use-navigate.d.ts.map +1 -0
- package/lib/components/contexts/navigate/use-navigate.js +3 -0
- package/lib/components/contexts/navigate/use-navigate.js.map +1 -0
- package/lib/components/contexts/sidebar/context.d.ts +3 -0
- package/lib/components/contexts/sidebar/context.d.ts.map +1 -0
- package/lib/components/contexts/sidebar/context.js +2 -0
- package/lib/components/contexts/sidebar/context.js.map +1 -0
- package/lib/components/contexts/sidebar/provider.d.ts +3 -0
- package/lib/components/contexts/sidebar/provider.d.ts.map +1 -0
- package/lib/components/contexts/sidebar/provider.js +3 -0
- package/lib/components/contexts/sidebar/provider.js.map +1 -0
- package/lib/components/contexts/sidebar/use-sidebar-store.d.ts +6 -0
- package/lib/components/contexts/sidebar/use-sidebar-store.d.ts.map +1 -0
- package/lib/components/contexts/sidebar/use-sidebar-store.js +3 -0
- package/lib/components/contexts/sidebar/use-sidebar-store.js.map +1 -0
- package/lib/components/elements/article/document.d.ts +29 -0
- package/lib/components/elements/article/document.d.ts.map +1 -0
- package/lib/components/elements/article/document.js +2 -0
- package/lib/components/elements/article/document.js.map +1 -0
- package/lib/components/elements/article/index.d.ts +34 -0
- package/lib/components/elements/article/index.d.ts.map +1 -0
- package/lib/components/elements/article/index.js +2 -0
- package/lib/components/elements/article/index.js.map +1 -0
- package/lib/components/elements/article/utils.d.ts +24 -0
- package/lib/components/elements/article/utils.d.ts.map +1 -0
- package/lib/components/elements/article/utils.js +2 -0
- package/lib/components/elements/article/utils.js.map +1 -0
- package/lib/components/elements/footer/index.d.ts +8 -0
- package/lib/components/elements/footer/index.d.ts.map +1 -0
- package/lib/components/elements/footer/index.js +2 -0
- package/lib/components/elements/footer/index.js.map +1 -0
- package/lib/components/elements/header/index.d.ts +32 -0
- package/lib/components/elements/header/index.d.ts.map +1 -0
- package/lib/components/elements/header/index.js +2 -0
- package/lib/components/elements/header/index.js.map +1 -0
- package/lib/components/elements/keylink-to-content/index.d.ts +10 -0
- package/lib/components/elements/keylink-to-content/index.d.ts.map +1 -0
- package/lib/components/elements/keylink-to-content/index.js +2 -0
- package/lib/components/elements/keylink-to-content/index.js.map +1 -0
- package/lib/components/elements/keylink-to-navigation/index.d.ts +10 -0
- package/lib/components/elements/keylink-to-navigation/index.d.ts.map +1 -0
- package/lib/components/elements/keylink-to-navigation/index.js +2 -0
- package/lib/components/elements/keylink-to-navigation/index.js.map +1 -0
- package/lib/components/elements/main/index.d.ts +4 -0
- package/lib/components/elements/main/index.d.ts.map +1 -0
- package/lib/components/elements/main/index.js +2 -0
- package/lib/components/elements/main/index.js.map +1 -0
- package/lib/components/elements/robin-provider/index.d.ts +3 -0
- package/lib/components/elements/robin-provider/index.d.ts.map +1 -0
- package/lib/components/elements/robin-provider/index.js +2 -0
- package/lib/components/elements/robin-provider/index.js.map +1 -0
- package/lib/components/elements/sidebar/index.d.ts +22 -0
- package/lib/components/elements/sidebar/index.d.ts.map +1 -0
- package/lib/components/elements/sidebar/index.js +2 -0
- package/lib/components/elements/sidebar/index.js.map +1 -0
- package/lib/components/elements/sidebar/sidebar-drop/index.d.ts +8 -0
- package/lib/components/elements/sidebar/sidebar-drop/index.d.ts.map +1 -0
- package/lib/components/elements/sidebar/sidebar-drop/index.js +3 -0
- package/lib/components/elements/sidebar/sidebar-drop/index.js.map +1 -0
- package/lib/components/elements/sidebar/sidebar-link/index.d.ts +10 -0
- package/lib/components/elements/sidebar/sidebar-link/index.d.ts.map +1 -0
- package/lib/components/elements/sidebar/sidebar-link/index.js +3 -0
- package/lib/components/elements/sidebar/sidebar-link/index.js.map +1 -0
- package/lib/components/elements/sidebar/sidebar-menu/index.d.ts +8 -0
- package/lib/components/elements/sidebar/sidebar-menu/index.d.ts.map +1 -0
- package/lib/components/elements/sidebar/sidebar-menu/index.js +3 -0
- package/lib/components/elements/sidebar/sidebar-menu/index.js.map +1 -0
- package/lib/components/elements/sidebar/tools.d.ts +4 -0
- package/lib/components/elements/sidebar/tools.d.ts.map +1 -0
- package/lib/components/elements/sidebar/tools.js +2 -0
- package/lib/components/elements/sidebar/tools.js.map +1 -0
- package/lib/components/elements/sidebar/types.d.ts +7 -0
- package/lib/components/elements/sidebar/types.d.ts.map +1 -0
- package/lib/components/ui/backdrop/index.d.ts +8 -0
- package/lib/components/ui/backdrop/index.d.ts.map +1 -0
- package/lib/components/ui/backdrop/index.js +3 -0
- package/lib/components/ui/backdrop/index.js.map +1 -0
- package/lib/components/ui/block/index.d.ts +8 -0
- package/lib/components/ui/block/index.d.ts.map +1 -0
- package/lib/components/ui/block/index.js +2 -0
- package/lib/components/ui/block/index.js.map +1 -0
- package/lib/components/ui/blockquote/index.d.ts +8 -0
- package/lib/components/ui/blockquote/index.d.ts.map +1 -0
- package/lib/components/ui/blockquote/index.js +2 -0
- package/lib/components/ui/blockquote/index.js.map +1 -0
- package/lib/components/ui/code-block/index.d.ts +10 -0
- package/lib/components/ui/code-block/index.d.ts.map +1 -0
- package/lib/components/ui/code-block/index.js +2 -0
- package/lib/components/ui/code-block/index.js.map +1 -0
- package/lib/components/ui/code-block/theme.d.ts +3 -0
- package/lib/components/ui/code-block/theme.d.ts.map +1 -0
- package/lib/components/ui/code-block/theme.js +2 -0
- package/lib/components/ui/code-block/theme.js.map +1 -0
- package/lib/components/ui/code-span/index.d.ts +8 -0
- package/lib/components/ui/code-span/index.d.ts.map +1 -0
- package/lib/components/ui/code-span/index.js +2 -0
- package/lib/components/ui/code-span/index.js.map +1 -0
- package/lib/components/ui/container/index.d.ts +8 -0
- package/lib/components/ui/container/index.d.ts.map +1 -0
- package/lib/components/ui/container/index.js +2 -0
- package/lib/components/ui/container/index.js.map +1 -0
- package/lib/components/ui/content-link/index.d.ts +8 -0
- package/lib/components/ui/content-link/index.d.ts.map +1 -0
- package/lib/components/ui/content-link/index.js +2 -0
- package/lib/components/ui/content-link/index.js.map +1 -0
- package/lib/components/ui/copy-button/index.d.ts +12 -0
- package/lib/components/ui/copy-button/index.d.ts.map +1 -0
- package/lib/components/ui/copy-button/index.js +3 -0
- package/lib/components/ui/copy-button/index.js.map +1 -0
- package/lib/components/ui/del/index.d.ts +7 -0
- package/lib/components/ui/del/index.d.ts.map +1 -0
- package/lib/components/ui/del/index.js +2 -0
- package/lib/components/ui/del/index.js.map +1 -0
- package/lib/components/ui/em/index.d.ts +7 -0
- package/lib/components/ui/em/index.d.ts.map +1 -0
- package/lib/components/ui/em/index.js +2 -0
- package/lib/components/ui/em/index.js.map +1 -0
- package/lib/components/ui/git-logos/index.d.ts +5 -0
- package/lib/components/ui/git-logos/index.d.ts.map +1 -0
- package/lib/components/ui/git-logos/index.js +2 -0
- package/lib/components/ui/git-logos/index.js.map +1 -0
- package/lib/components/ui/heading/index.d.ts +9 -0
- package/lib/components/ui/heading/index.d.ts.map +1 -0
- package/lib/components/ui/heading/index.js +2 -0
- package/lib/components/ui/heading/index.js.map +1 -0
- package/lib/components/ui/hr/index.d.ts +7 -0
- package/lib/components/ui/hr/index.d.ts.map +1 -0
- package/lib/components/ui/hr/index.js +2 -0
- package/lib/components/ui/hr/index.js.map +1 -0
- package/lib/components/ui/img/index.d.ts +12 -0
- package/lib/components/ui/img/index.d.ts.map +1 -0
- package/lib/components/ui/img/index.js +2 -0
- package/lib/components/ui/img/index.js.map +1 -0
- package/lib/components/ui/kbd/index.d.ts +3 -0
- package/lib/components/ui/kbd/index.d.ts.map +1 -0
- package/lib/components/ui/kbd/kbd-container/index.d.ts +7 -0
- package/lib/components/ui/kbd/kbd-container/index.d.ts.map +1 -0
- package/lib/components/ui/kbd/kbd-container/index.js +2 -0
- package/lib/components/ui/kbd/kbd-container/index.js.map +1 -0
- package/lib/components/ui/kbd/kbd-key/index.d.ts +7 -0
- package/lib/components/ui/kbd/kbd-key/index.d.ts.map +1 -0
- package/lib/components/ui/kbd/kbd-key/index.js +2 -0
- package/lib/components/ui/kbd/kbd-key/index.js.map +1 -0
- package/lib/components/ui/keylink/index.d.ts +8 -0
- package/lib/components/ui/keylink/index.d.ts.map +1 -0
- package/lib/components/ui/keylink/index.js +2 -0
- package/lib/components/ui/keylink/index.js.map +1 -0
- package/lib/components/ui/list/index.d.ts +4 -0
- package/lib/components/ui/list/index.d.ts.map +1 -0
- package/lib/components/ui/list/list-item/index.d.ts +8 -0
- package/lib/components/ui/list/list-item/index.d.ts.map +1 -0
- package/lib/components/ui/list/list-item/index.js +2 -0
- package/lib/components/ui/list/list-item/index.js.map +1 -0
- package/lib/components/ui/list/ordered-list/index.d.ts +8 -0
- package/lib/components/ui/list/ordered-list/index.d.ts.map +1 -0
- package/lib/components/ui/list/ordered-list/index.js +2 -0
- package/lib/components/ui/list/ordered-list/index.js.map +1 -0
- package/lib/components/ui/list/unordered-list/index.d.ts +8 -0
- package/lib/components/ui/list/unordered-list/index.d.ts.map +1 -0
- package/lib/components/ui/list/unordered-list/index.js +2 -0
- package/lib/components/ui/list/unordered-list/index.js.map +1 -0
- package/lib/components/ui/modal/index.d.ts +8 -0
- package/lib/components/ui/modal/index.d.ts.map +1 -0
- package/lib/components/ui/modal/index.js +2 -0
- package/lib/components/ui/modal/index.js.map +1 -0
- package/lib/components/ui/modal/use-modal.d.ts +6 -0
- package/lib/components/ui/modal/use-modal.d.ts.map +1 -0
- package/lib/components/ui/modal/use-modal.js +2 -0
- package/lib/components/ui/modal/use-modal.js.map +1 -0
- package/lib/components/ui/paragraph/index.d.ts +8 -0
- package/lib/components/ui/paragraph/index.d.ts.map +1 -0
- package/lib/components/ui/paragraph/index.js +2 -0
- package/lib/components/ui/paragraph/index.js.map +1 -0
- package/lib/components/ui/strong/index.d.ts +7 -0
- package/lib/components/ui/strong/index.d.ts.map +1 -0
- package/lib/components/ui/strong/index.js +2 -0
- package/lib/components/ui/strong/index.js.map +1 -0
- package/lib/components/ui/table/index.d.ts +7 -0
- package/lib/components/ui/table/index.d.ts.map +1 -0
- package/lib/components/ui/table/table/index.d.ts +8 -0
- package/lib/components/ui/table/table/index.d.ts.map +1 -0
- package/lib/components/ui/table/table/index.js +2 -0
- package/lib/components/ui/table/table/index.js.map +1 -0
- package/lib/components/ui/table/tbody/index.d.ts +7 -0
- package/lib/components/ui/table/tbody/index.d.ts.map +1 -0
- package/lib/components/ui/table/tbody/index.js +2 -0
- package/lib/components/ui/table/tbody/index.js.map +1 -0
- package/lib/components/ui/table/td/index.d.ts +8 -0
- package/lib/components/ui/table/td/index.d.ts.map +1 -0
- package/lib/components/ui/table/td/index.js +2 -0
- package/lib/components/ui/table/td/index.js.map +1 -0
- package/lib/components/ui/table/th/index.d.ts +8 -0
- package/lib/components/ui/table/th/index.d.ts.map +1 -0
- package/lib/components/ui/table/th/index.js +2 -0
- package/lib/components/ui/table/th/index.js.map +1 -0
- package/lib/components/ui/table/thead/index.d.ts +8 -0
- package/lib/components/ui/table/thead/index.d.ts.map +1 -0
- package/lib/components/ui/table/thead/index.js +2 -0
- package/lib/components/ui/table/thead/index.js.map +1 -0
- package/lib/components/ui/table/tr/index.d.ts +7 -0
- package/lib/components/ui/table/tr/index.d.ts.map +1 -0
- package/lib/components/ui/table/tr/index.js +2 -0
- package/lib/components/ui/table/tr/index.js.map +1 -0
- package/lib/components/ui/tabs/index.d.ts +11 -0
- package/lib/components/ui/tabs/index.d.ts.map +1 -0
- package/lib/components/ui/tabs/index.js +2 -0
- package/lib/components/ui/tabs/index.js.map +1 -0
- package/lib/components/ui/tabs/tabs-header/index.d.ts +6 -0
- package/lib/components/ui/tabs/tabs-header/index.d.ts.map +1 -0
- package/lib/components/ui/tabs/tabs-header/index.js +3 -0
- package/lib/components/ui/tabs/tabs-header/index.js.map +1 -0
- package/lib/components/ui/tabs/tabs-styles/index.d.ts +7 -0
- package/lib/components/ui/tabs/tabs-styles/index.d.ts.map +1 -0
- package/lib/components/ui/tabs/tabs-styles/index.js +2 -0
- package/lib/components/ui/tabs/tabs-styles/index.js.map +1 -0
- package/lib/components/ui/task-list/index.d.ts +4 -0
- package/lib/components/ui/task-list/index.d.ts.map +1 -0
- package/lib/components/ui/task-list/task-list-item/index.d.ts +9 -0
- package/lib/components/ui/task-list/task-list-item/index.d.ts.map +1 -0
- package/lib/components/ui/task-list/task-list-item/index.js +2 -0
- package/lib/components/ui/task-list/task-list-item/index.js.map +1 -0
- package/lib/components/ui/task-list/task-ordered-list/index.d.ts +8 -0
- package/lib/components/ui/task-list/task-ordered-list/index.d.ts.map +1 -0
- package/lib/components/ui/task-list/task-ordered-list/index.js +2 -0
- package/lib/components/ui/task-list/task-ordered-list/index.js.map +1 -0
- package/lib/components/ui/task-list/task-unordered-list/index.d.ts +8 -0
- package/lib/components/ui/task-list/task-unordered-list/index.d.ts.map +1 -0
- package/lib/components/ui/task-list/task-unordered-list/index.js +2 -0
- package/lib/components/ui/task-list/task-unordered-list/index.js.map +1 -0
- package/lib/core/data/contents.d.ts +11 -0
- package/lib/core/data/contents.d.ts.map +1 -0
- package/lib/core/data/contents.js +2 -0
- package/lib/core/data/contents.js.map +1 -0
- package/lib/core/hooks/use-debouncer.d.ts +4 -0
- package/lib/core/hooks/use-debouncer.d.ts.map +1 -0
- package/lib/core/hooks/use-debouncer.js +2 -0
- package/lib/core/hooks/use-debouncer.js.map +1 -0
- package/lib/core/hooks/use-system-type.d.ts +3 -0
- package/lib/core/hooks/use-system-type.d.ts.map +1 -0
- package/lib/core/hooks/use-system-type.js +2 -0
- package/lib/core/hooks/use-system-type.js.map +1 -0
- package/lib/core/providers/base.d.ts +13 -0
- package/lib/core/providers/base.d.ts.map +1 -0
- package/lib/core/providers/base.js +2 -0
- package/lib/core/providers/base.js.map +1 -0
- package/lib/core/providers/file-system.d.ts +11 -0
- package/lib/core/providers/file-system.d.ts.map +1 -0
- package/lib/core/providers/file-system.js +2 -0
- package/lib/core/providers/file-system.js.map +1 -0
- package/lib/core/providers/github.d.ts +20 -0
- package/lib/core/providers/github.d.ts.map +1 -0
- package/lib/core/providers/github.js +2 -0
- package/lib/core/providers/github.js.map +1 -0
- package/lib/core/providers/index.d.ts +3 -0
- package/lib/core/providers/index.d.ts.map +1 -0
- package/lib/core/types/content.d.ts +41 -0
- package/lib/core/types/content.d.ts.map +1 -0
- package/lib/core/types/search.d.ts +7 -0
- package/lib/core/types/search.d.ts.map +1 -0
- package/lib/core/types/structure.d.ts +14 -0
- package/lib/core/types/structure.d.ts.map +1 -0
- package/lib/core/utils/create-base-searcher.d.ts +3 -0
- package/lib/core/utils/create-base-searcher.d.ts.map +1 -0
- package/lib/core/utils/create-base-searcher.js +2 -0
- package/lib/core/utils/create-base-searcher.js.map +1 -0
- package/lib/core/utils/detect-provider.d.ts +3 -0
- package/lib/core/utils/detect-provider.d.ts.map +1 -0
- package/lib/core/utils/detect-provider.js +2 -0
- package/lib/core/utils/detect-provider.js.map +1 -0
- package/lib/core/utils/get-configuration.d.ts +9 -0
- package/lib/core/utils/get-configuration.d.ts.map +1 -0
- package/lib/core/utils/get-configuration.js +2 -0
- package/lib/core/utils/get-configuration.js.map +1 -0
- package/lib/core/utils/get-meta.d.ts +13 -0
- package/lib/core/utils/get-meta.d.ts.map +1 -0
- package/lib/core/utils/get-meta.js +2 -0
- package/lib/core/utils/get-meta.js.map +1 -0
- package/lib/core/utils/git-data.d.ts +11 -0
- package/lib/core/utils/git-data.d.ts.map +1 -0
- package/lib/core/utils/git-data.js +2 -0
- package/lib/core/utils/git-data.js.map +1 -0
- package/lib/core/utils/initialize-robindoc.d.ts +21 -0
- package/lib/core/utils/initialize-robindoc.d.ts.map +1 -0
- package/lib/core/utils/initialize-robindoc.js +2 -0
- package/lib/core/utils/initialize-robindoc.js.map +1 -0
- package/lib/core/utils/load-content.d.ts +21 -0
- package/lib/core/utils/load-content.d.ts.map +1 -0
- package/lib/core/utils/load-content.js +2 -0
- package/lib/core/utils/load-content.js.map +1 -0
- package/lib/core/utils/parse-structure.d.ts +8 -0
- package/lib/core/utils/parse-structure.d.ts.map +1 -0
- package/lib/core/utils/parse-structure.js +2 -0
- package/lib/core/utils/parse-structure.js.map +1 -0
- package/lib/core/utils/path-tools.d.ts +4 -0
- package/lib/core/utils/path-tools.d.ts.map +1 -0
- package/lib/core/utils/path-tools.js +2 -0
- package/lib/core/utils/path-tools.js.map +1 -0
- package/lib/core/utils/tabs-store.d.ts +5 -0
- package/lib/core/utils/tabs-store.d.ts.map +1 -0
- package/lib/core/utils/tabs-store.js +2 -0
- package/lib/core/utils/tabs-store.js.map +1 -0
- package/lib/index.d.ts +8 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -0
- package/lib/styles.css +3 -0
- package/lib/styles.css.map +1 -0
- package/package.json +40 -5
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Alexander Savelyev <vordgi@mail.com>
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1 +1,52 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
title: Introduction
|
|
3
|
+
description: Robindoc is a framework for automatically creating documentation websites based on markdown files, built on React.js Server Components
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Robindoc
|
|
7
|
+
|
|
8
|
+
<!---robin-->
|
|
9
|
+
|
|
10
|
+
Read the documentation in a convenient interface at [robindoc.com/docs](https://robindoc.com/docs)
|
|
11
|
+
|
|
12
|
+
<!---/robin-->
|
|
13
|
+
|
|
14
|
+
Robindoc is a framework for automatically creating documentation websites based on markdown files, built on React.js Server Components.
|
|
15
|
+
|
|
16
|
+
```tsx
|
|
17
|
+
export const Documentation = () => {
|
|
18
|
+
return (
|
|
19
|
+
<RobinProvider>
|
|
20
|
+
<Header logo={<Logo />} />
|
|
21
|
+
<Main>
|
|
22
|
+
<Sidebar pathname="/docs" />
|
|
23
|
+
<Page pathname="/docs" />
|
|
24
|
+
</Main>
|
|
25
|
+
<Footer copyright="© 2024 All rights reserved" />
|
|
26
|
+
</RobinProvider>
|
|
27
|
+
);
|
|
28
|
+
};
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
The main goal of Robindoc is to create a system where you can fully reuse the existing markdown documentation within your projects.
|
|
32
|
+
|
|
33
|
+
No additional configuration is needed, while preserving the accessibility and clarity of the original documentation.
|
|
34
|
+
|
|
35
|
+
## Advantages
|
|
36
|
+
|
|
37
|
+
- Works on React.js Server Components (RSC). The framework choice is up to you. More details in the section "[App Organization](./docs/01-getting-started/04-app-organization/README.md)";
|
|
38
|
+
- Requires no configuration of the project, bundler, or markdown documents. More details in the section "[Customization](./docs/03-customization/README.md)";
|
|
39
|
+
- Supports loading content from various sources, including GitHub. More details in the section "[Data Source](./docs/02-structure/03-data-source.md)";
|
|
40
|
+
- Supports fully automatic documentation generation, as well as custom generation. More details in the section "[Structure](./docs/02-structure/README.md)";
|
|
41
|
+
- Supports JSX/HTML and special Robin components for all sources. More details in the section "[Writing MD](./docs/01-getting-started/02-writing-md.md)";
|
|
42
|
+
- Optimized for metrics and accessibility.
|
|
43
|
+
|
|
44
|
+
## Additional
|
|
45
|
+
|
|
46
|
+
Please consider giving a star if you like it, it shows that the package is useful and helps me continue work on this and other packages.
|
|
47
|
+
|
|
48
|
+
Feel free to create issues with requests, ideas, difficulties, etc. All of them will definitely be considered and thought over.
|
|
49
|
+
|
|
50
|
+
## License
|
|
51
|
+
|
|
52
|
+
[MIT](https://github.com/vordgi/robindoc/blob/main/LICENSE)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/assets/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import "./anchor-heading.scss";
|
|
3
|
+
interface AnchorHeadingProps extends React.PropsWithChildren {
|
|
4
|
+
id: string;
|
|
5
|
+
component: "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
|
|
6
|
+
}
|
|
7
|
+
export declare const AnchorHeading: React.FC<AnchorHeadingProps>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/anchor-heading/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,uBAAuB,CAAC;AAE/B,UAAU,kBAAmB,SAAQ,KAAK,CAAC,iBAAiB;IACxD,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CACtD;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAStD,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import e from"react";import{useHeadingRegister as n}from"../../contexts/contents/use-heading-register.js";import{Heading as r}from"../../ui/heading/index.js";const t=({component:t,id:o,children:a})=>{const c=n();return e.createElement(r,{component:t,id:o,className:"r-anchor-heading",ref:c},a," ",e.createElement("a",{href:`#${o}`,className:"r-anchor-heading-link"}))};export{t as AnchorHeading};
|
|
3
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/blocks/anchor-heading/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { useHeadingRegister } from \"@src/components/contexts/contents/use-heading-register\";\nimport { Heading } from \"@src/components/ui/heading\";\n\nimport \"./anchor-heading.scss\";\n\ninterface AnchorHeadingProps extends React.PropsWithChildren {\n id: string;\n component: \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\n}\n\nexport const AnchorHeading: React.FC<AnchorHeadingProps> = ({ component: Component, id, children }) => {\n const register = useHeadingRegister();\n\n return (\n <Heading component={Component} id={id} className=\"r-anchor-heading\" ref={register}>\n {children} \n <a href={`#${id}`} className=\"r-anchor-heading-link\" />\n </Heading>\n );\n};\n"],"names":["AnchorHeading","component","Component","id","children","register","useHeadingRegister","React","createElement","Heading","className","ref","href"],"mappings":";8JAaO,MAAMA,CAA8C,CAAA,CAAA,CAAGC,CAAWC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWC,KAAIC,CACpF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,EAAWC,CAEjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACIC,EAACC,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAQR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWC,EAAWC,CAAIA,CAAAA,CAAAA,CAAAA,CAAIO,UAAU,CAAmBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKN,GACpED,MACDG,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,IAAA,CAAGI,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,IAAIT,CAAMO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,0BAEnC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { type Breadcrumbs as BreadcrumbsType } from "../../../core/types/content";
|
|
3
|
+
import "./breadcrumbs.scss";
|
|
4
|
+
export type BreadcrumbsProps = {
|
|
5
|
+
title: string;
|
|
6
|
+
breadcrumbs: BreadcrumbsType;
|
|
7
|
+
link?: React.ElementType;
|
|
8
|
+
};
|
|
9
|
+
export declare const Breadcrumbs: React.FC<BreadcrumbsProps>;
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/breadcrumbs/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,KAAK,WAAW,IAAI,eAAe,EAAE,oCAAgC;AAG9E,OAAO,oBAAoB,CAAC;AAE5B,MAAM,MAAM,gBAAgB,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,eAAe,CAAC;IAC7B,IAAI,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAelD,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"react";import{NavLink as r}from"../nav-link/index.js";const a=async({title:a,breadcrumbs:t,link:m})=>e.createElement("ul",{className:"r-breadcrumbs"},t.map((a=>e.createElement("li",{key:a.pathname,className:"r-breadcrumb _previous"},e.createElement(r,{link:m,href:a.pathname,className:"r-breadcrumb-link"},a.title)))),e.createElement("li",{className:"r-breadcrumb _target"},e.createElement("p",{className:"r-breadcrumb-title"},a)));export{a as Breadcrumbs};
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/blocks/breadcrumbs/index.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { type Breadcrumbs as BreadcrumbsType } from \"@src/core/types/content\";\nimport { NavLink } from \"../nav-link\";\n\nimport \"./breadcrumbs.scss\";\n\nexport type BreadcrumbsProps = {\n title: string;\n breadcrumbs: BreadcrumbsType;\n link?: React.ElementType;\n};\n\nexport const Breadcrumbs: React.FC<BreadcrumbsProps> = async ({ title, breadcrumbs, link }) => {\n return (\n <ul className=\"r-breadcrumbs\">\n {breadcrumbs.map((breadcrumb) => (\n <li key={breadcrumb.pathname} className=\"r-breadcrumb _previous\">\n <NavLink link={link} href={breadcrumb.pathname} className=\"r-breadcrumb-link\">\n {breadcrumb.title}\n </NavLink>\n </li>\n ))}\n <li className=\"r-breadcrumb _target\">\n <p className=\"r-breadcrumb-title\">{title}</p>\n </li>\n </ul>\n );\n};\n"],"names":["Breadcrumbs","async","title","breadcrumbs","link","React","createElement","className","map","breadcrumb","key","pathname","NavLink","href"],"mappings":"oEAaO,MAAMA,EAA0CC,OAASC,QAAOC,cAAaC,UAE5EC,EAAAC,cAAA,KAAA,CAAIC,UAAU,iBACTJ,EAAYK,KAAKC,GACdJ,EAAIC,cAAA,KAAA,CAAAI,IAAKD,EAAWE,SAAUJ,UAAU,0BACpCF,EAACC,cAAAM,GAAQR,KAAMA,EAAMS,KAAMJ,EAAWE,SAAUJ,UAAU,qBACrDE,EAAWP,UAIxBG,EAAIC,cAAA,KAAA,CAAAC,UAAU,wBACVF,EAAGC,cAAA,IAAA,CAAAC,UAAU,sBAAsBL"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { type CodeBlockProps } from "../../ui/code-block";
|
|
3
|
+
import "./code-section.scss";
|
|
4
|
+
export interface CodeSectionProps extends CodeBlockProps {
|
|
5
|
+
filename?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const CodeSection: React.FC<CodeSectionProps>;
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/code-section/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAa,KAAK,cAAc,EAAE,4BAAsC;AAG/E,OAAO,qBAAqB,CAAC;AAE7B,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAYlD,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"react";import{CodeBlock as c}from"../../ui/code-block/index.js";import{CopyButton as o}from"../../ui/copy-button/index.js";const t=({filename:t,code:r,...a})=>e.createElement("div",{className:"r-code-section"},t&&e.createElement("div",{className:"r-code-section-header"},e.createElement("span",null,t),e.createElement(o,{raw:r})),e.createElement(c,{className:"r-code-section-block",code:r,...a}));export{t as CodeSection};
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/blocks/code-section/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { CodeBlock, type CodeBlockProps } from \"@src/components/ui/code-block\";\nimport { CopyButton } from \"@src/components/ui/copy-button\";\n\nimport \"./code-section.scss\";\n\nexport interface CodeSectionProps extends CodeBlockProps {\n filename?: string;\n}\n\nexport const CodeSection: React.FC<CodeSectionProps> = ({ filename, code, ...props }) => {\n return (\n <div className=\"r-code-section\">\n {filename && (\n <div className=\"r-code-section-header\">\n <span>{filename}</span>\n <CopyButton raw={code} />\n </div>\n )}\n <CodeBlock className=\"r-code-section-block\" code={code} {...props} />\n </div>\n );\n};\n"],"names":["CodeSection","filename","code","props","React","createElement","className","CopyButton","raw","CodeBlock"],"mappings":"yIAUO,MAAMA,EAA0C,EAAGC,WAAUC,UAASC,KAErEC,EAAAC,cAAA,MAAA,CAAKC,UAAU,kBACVL,GACGG,EAAKC,cAAA,MAAA,CAAAC,UAAU,yBACXF,EAAAC,cAAA,OAAA,KAAOJ,GACPG,EAAAC,cAACE,EAAW,CAAAC,IAAKN,KAGzBE,EAAAC,cAACI,EAAS,CAACH,UAAU,uBAAuBJ,KAAMA,KAAUC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import "./contents.scss";
|
|
3
|
+
export interface ContentsProps extends React.PropsWithChildren {
|
|
4
|
+
headings: {
|
|
5
|
+
id: string;
|
|
6
|
+
nested: boolean;
|
|
7
|
+
title: string | JSX.Element;
|
|
8
|
+
}[];
|
|
9
|
+
hideContents?: boolean;
|
|
10
|
+
editUri?: string | null;
|
|
11
|
+
translations?: {
|
|
12
|
+
/** On this page */
|
|
13
|
+
onThisPage?: string;
|
|
14
|
+
/** Edit on {service} */
|
|
15
|
+
editOnService?: string;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export declare const Contents: React.FC<ContentsProps>;
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/contents/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAKjD,OAAO,iBAAiB,CAAC;AAEzB,MAAM,WAAW,aAAc,SAAQ,KAAK,CAAC,iBAAiB;IAC1D,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAA;KAAE,EAAE,CAAC;IACzE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,YAAY,CAAC,EAAE;QACX,mBAAmB;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,wBAAwB;QACxB,aAAa,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;CACL;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAmF5C,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import e,{useRef as t,useEffect as n}from"react";import r from"clsx";import{useHeadingIndex as s}from"../../contexts/contents/use-heading-index.js";import{detectGitType as c}from"../../../core/utils/git-data.js";const o=({headings:o,hideContents:a,editUri:l,translations:i})=>{const m=t(null),d=t(null),h=t(null),p=s(),{onThisPage:u="On this page",editOnService:f="Edit on {service}"}=i||{};return n((()=>{h.current&&d.current&&d.current.style.setProperty("--drop-height",h.current.offsetHeight+"px")}),[]),e.createElement("div",{className:"r-contents"},e.createElement("div",{className:"r-contents-sticky",ref:m},o.length>0&&!a&&e.createElement(e.Fragment,null,e.createElement("input",{type:"checkbox",className:"r-contents-control",id:"r-contents"}),e.createElement("div",{className:"r-contents-details"},e.createElement("label",{className:"r-contents-title",htmlFor:"r-contents"},u,e.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"r-contents-chevron"},e.createElement("path",{d:"m6 9 6 6 6-6"}))),e.createElement("div",{className:"r-contents-list",ref:d},e.createElement("div",{className:"r-contents-list-content",ref:h},o.map(((t,n)=>e.createElement("a",{href:`#${t.id}`,key:t.id,className:r("r-contents-link",t.nested&&"_nested",null!==p&&n<=p&&"_passed",p===n&&"_active"),ref:e=>{e?.offsetTop&&m.current&&m.current.scrollHeight>m.current.clientHeight&&p===n&&m.current.scrollTo({top:Math.max(e.offsetTop-Math.ceil(window.innerHeight/2),0)})}},t.title))))))),l?.match(/^https?:\/\//)&&e.createElement("div",{className:"r-contents-actions"},e.createElement("a",{href:l,target:"_blank",rel:"noopener noreferrer",className:"r-contents-git"},f.replace("{service}",c(l).name)))))};export{o as Contents};
|
|
3
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/blocks/contents/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useEffect, useRef } from \"react\";\nimport clsx from \"clsx\";\nimport { useHeadingIndex } from \"@src/components/contexts/contents/use-heading-index\";\nimport { detectGitType } from \"@src/core/utils/git-data\";\n\nimport \"./contents.scss\";\n\nexport interface ContentsProps extends React.PropsWithChildren {\n headings: { id: string; nested: boolean; title: string | JSX.Element }[];\n hideContents?: boolean;\n editUri?: string | null;\n translations?: {\n /** On this page */\n onThisPage?: string;\n /** Edit on {service} */\n editOnService?: string;\n };\n}\n\nexport const Contents: React.FC<ContentsProps> = ({ headings, hideContents, editUri, translations }) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const dropdownRef = useRef<HTMLDivElement>(null);\n const dropdownContentRef = useRef<HTMLDivElement>(null);\n const headingIndex = useHeadingIndex();\n const { onThisPage = \"On this page\", editOnService = \"Edit on {service}\" } = translations || {};\n\n useEffect(() => {\n if (dropdownContentRef.current && dropdownRef.current) {\n dropdownRef.current.style.setProperty(\"--drop-height\", dropdownContentRef.current.offsetHeight + \"px\");\n }\n }, []);\n\n return (\n <div className=\"r-contents\">\n <div className=\"r-contents-sticky\" ref={containerRef}>\n {headings.length > 0 && !hideContents && (\n <>\n <input type=\"checkbox\" className=\"r-contents-control\" id=\"r-contents\" />\n <div className=\"r-contents-details\">\n <label className=\"r-contents-title\" htmlFor=\"r-contents\">\n {onThisPage}\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"r-contents-chevron\"\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n </label>\n <div className=\"r-contents-list\" ref={dropdownRef}>\n <div className=\"r-contents-list-content\" ref={dropdownContentRef}>\n {headings.map((heading, index) => (\n <a\n href={`#${heading.id}`}\n key={heading.id}\n className={clsx(\n \"r-contents-link\",\n heading.nested && \"_nested\",\n headingIndex !== null && index <= headingIndex && \"_passed\",\n headingIndex === index && \"_active\",\n )}\n ref={(node) => {\n if (\n node?.offsetTop &&\n containerRef.current &&\n containerRef.current.scrollHeight >\n containerRef.current.clientHeight &&\n headingIndex === index\n ) {\n containerRef.current.scrollTo({\n top: Math.max(\n node.offsetTop - Math.ceil(window.innerHeight / 2),\n 0,\n ),\n });\n }\n }}\n >\n {heading.title}\n </a>\n ))}\n </div>\n </div>\n </div>\n </>\n )}\n {editUri?.match(/^https?:\\/\\//) && (\n <div className=\"r-contents-actions\">\n <a href={editUri} target=\"_blank\" rel=\"noopener noreferrer\" className=\"r-contents-git\">\n {editOnService.replace(\"{service}\", detectGitType(editUri).name)}\n </a>\n </div>\n )}\n </div>\n </div>\n );\n};\n"],"names":["Contents","headings","hideContents","editUri","translations","containerRef","useRef","dropdownRef","dropdownContentRef","headingIndex","useHeadingIndex","onThisPage","editOnService","useEffect","current","style","setProperty","offsetHeight","React","createElement","className","ref","length","Fragment","type","id","htmlFor","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","d","map","heading","index","href","key","clsx","nested","node","offsetTop","scrollHeight","clientHeight","scrollTo","top","Math","max","ceil","window","innerHeight","title","match","target","rel","replace","detectGitType","name"],"mappings":";oNAqBO,CAAMA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoC,CAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUC,eAAcC,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACjF,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAeC,CAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACtCC,CAAcD,CAAAA,CAAAA,CAAuB,CACrCE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAqBF,CAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC5CG,CAAeC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACfC,WAAEA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAcC,CAAEA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB,CAAwBR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB,GAQ7F,CANAS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CACFL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmBM,CAAWP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYO,SAC1CP,CAAYO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQC,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAAiBR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmBM,CAAQG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CACpG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACF,CAGCC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAKC,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACXF,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAKC,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoBC,CAAKhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACnCJ,CAASqB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAMpB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACrBgB,EAAAC,CAAAD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACIL,CAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAK,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWJ,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqBK,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACzDP,EAAKC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CACXF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAmBM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CACvCf,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACDO,EAAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACIQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CACNC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CACPC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CACRC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CACLC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CACPC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,IACZC,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACdC,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACfd,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEVF,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMgB,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAGhBjB,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,MAAA,CAAKC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAkBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKd,CAClCW,CAAAA,CAAAA,CAAAA,CAAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAKC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAA0BC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKb,CACzCP,CAAAA,CAAAA,CAAAA,CAASmC,KAAI,CAACC,CAAAA,CAASC,CACpBpB,CAAAA,CAAAA,CAAAA,CAAAA,CACIC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAoB,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAIF,CAAAA,CAAAA,CAAAA,CAAAA,CAAQZ,CAClBe,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKH,CAAQZ,CAAAA,CAAAA,CAAAA,CACbL,UAAWqB,CACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACAJ,CAAQK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAjBjC,CAAyB6B,CAAAA,CAAAA,CAAAA,CAAAA,CAAS7B,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAClDA,CAAiB6B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAE9BjB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMsB,IAEEA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACNvC,CAAaS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACbT,CAAaS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ+B,CACjBxC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaS,CAAQgC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACzBrC,CAAiB6B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEjBjC,CAAaS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQiC,SAAS,CAC1BC,CAAAA,CAAAA,CAAAA,CAAKC,CAAKC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACNP,CAAKC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYK,CAAKE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKC,CAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAGX,CAGJhB,CAAAA,CAAAA,CAAAA,CAAQiB,aAQpCnD,CAASoD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CACZrC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAKC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CACXF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAGoB,CAAAA,CAAAA,CAAAA,CAAAA,CAAMpC,EAASqD,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsBrC,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACjER,CAAc8C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAaC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcxD,CAASyD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAMjF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import "./header-menu.scss";
|
|
3
|
+
export type HeaderMenuProps = React.PropsWithChildren<{
|
|
4
|
+
translations?: {
|
|
5
|
+
/** Menu */
|
|
6
|
+
menu?: string;
|
|
7
|
+
};
|
|
8
|
+
}>;
|
|
9
|
+
export declare const HeaderMenu: React.FC<HeaderMenuProps>;
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/header-menu/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD,OAAO,oBAAoB,CAAC;AAE5B,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,iBAAiB,CAAC;IAClD,YAAY,CAAC,EAAE;QACX,WAAW;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACL,CAAC,CAAC;AAEH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAyChD,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import e,{useState as t,useEffect as r}from"react";import a from"clsx";import{useNavigate as n}from"../../contexts/navigate/use-navigate.js";const s=({children:s,translations:o})=>{const{menu:l="Menu"}=o||{},{addListener:c,removeListener:m}=n(),[d,i]=t(!1),u=()=>{document.body.classList.remove("body-tablet-lock"),i(!1),m("closeHeaderMenu")};return r((()=>()=>{u()}),[]),e.createElement("div",{className:a("r-header-menu",d&&"_opened")},e.createElement("div",{className:"r-header-responsive"},s),e.createElement("button",{type:"button",className:"r-header-burger",onClick:()=>{d?u():(document.body.classList.add("body-tablet-lock"),i(!0),c("closeHeaderMenu",u))},"aria-label":l},e.createElement("span",{className:"r-burger-line _top"}),e.createElement("span",{className:"r-burger-line _bottom"})))};export{s as HeaderMenu};
|
|
3
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/blocks/header-menu/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useEffect, useState } from \"react\";\nimport clsx from \"clsx\";\nimport { useNavigate } from \"@src/components/contexts/navigate/use-navigate\";\n\nimport \"./header-menu.scss\";\n\nexport type HeaderMenuProps = React.PropsWithChildren<{\n translations?: {\n /** Menu */\n menu?: string;\n };\n}>;\n\nexport const HeaderMenu: React.FC<HeaderMenuProps> = ({ children, translations }) => {\n const { menu = \"Menu\" } = translations || {};\n const { addListener, removeListener } = useNavigate();\n const [opened, setOpened] = useState(false);\n\n const openHandler = () => {\n document.body.classList.add(\"body-tablet-lock\");\n setOpened(true);\n addListener(\"closeHeaderMenu\", closeHandler);\n };\n\n const closeHandler = () => {\n document.body.classList.remove(\"body-tablet-lock\");\n setOpened(false);\n removeListener(\"closeHeaderMenu\");\n };\n\n const toggleHandler = () => {\n if (opened) {\n closeHandler();\n } else {\n openHandler();\n }\n };\n\n useEffect(\n () => () => {\n closeHandler();\n },\n [],\n );\n\n return (\n <div className={clsx(\"r-header-menu\", opened && \"_opened\")}>\n <div className=\"r-header-responsive\">{children}</div>\n <button type=\"button\" className=\"r-header-burger\" onClick={toggleHandler} aria-label={menu}>\n <span className=\"r-burger-line _top\" />\n <span className=\"r-burger-line _bottom\" />\n </button>\n </div>\n );\n};\n"],"names":["HeaderMenu","children","translations","menu","addListener","removeListener","useNavigate","opened","setOpened","useState","closeHandler","document","body","classList","remove","useEffect","React","createElement","className","clsx","type","onClick","add"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/header-social/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,sBAAsB,CAAC;AAQ9B,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,GAAG,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAA;KAAE,CAAA;CAAE,CAW7F,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"react";import{detectGitType as r}from"../../../core/utils/git-data.js";import{GithubLogo as t,GitlabLogo as o,GitLogo as i}from"../../ui/git-logos/index.js";const a={github:t,gitlab:o,git:i},l=({git:t})=>{const o="string"==typeof t?{uri:t,logo:a[r(t).key]}:t,i=o.logo;return e.createElement("div",{className:"r-header-social"},e.createElement("a",{href:o.uri,className:"r-header-social-git",target:"_blank",rel:"noopener noreferrer"},e.createElement(i,null)))};export{l as HeaderSocial};
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/blocks/header-social/index.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { detectGitType } from \"@src/core/utils/git-data\";\nimport { GithubLogo, GitlabLogo, GitLogo } from \"@src/components/ui/git-logos\";\n\nimport \"./header-social.scss\";\n\nconst gitLogos = {\n github: GithubLogo,\n gitlab: GitlabLogo,\n git: GitLogo,\n};\n\nexport const HeaderSocial: React.FC<{ git: string | { uri: string; logo: React.ElementType } }> = ({ git }) => {\n const gitData = typeof git === \"string\" ? { uri: git, logo: gitLogos[detectGitType(git).key] } : git;\n const Logo = gitData.logo;\n\n return (\n <div className=\"r-header-social\">\n <a href={gitData.uri} className=\"r-header-social-git\" target=\"_blank\" rel=\"noopener noreferrer\">\n <Logo />\n </a>\n </div>\n );\n};\n"],"names":["gitLogos","github","GithubLogo","gitlab","GitlabLogo","git","GitLogo","HeaderSocial","gitData","uri","logo","detectGitType","key","Logo","React","createElement","className","href","target","rel"],"mappings":"2KAOA,MAAMA,EAAW,CACbC,OAAQC,EACRC,OAAQC,EACRC,IAAKC,GAGIC,EAAqF,EAAGF,UACjG,MAAMG,EAAyB,iBAARH,EAAmB,CAAEI,IAAKJ,EAAKK,KAAMV,EAASW,EAAcN,GAAKO,MAASP,EAC3FQ,EAAOL,EAAQE,KAErB,OACII,EAAAC,cAAA,MAAA,CAAKC,UAAU,mBACXF,EAAAC,cAAA,IAAA,CAAGE,KAAMT,EAAQC,IAAKO,UAAU,sBAAsBE,OAAO,SAASC,IAAI,uBACtEL,EAAAC,cAACF,EAAI,OAGf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/last-modified/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAGnD,OAAO,sBAAsB,CAAC;AAE9B,MAAM,WAAW,iBAAkB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC3E,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAepD,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import e,{useState as t,useEffect as a}from"react";import r from"clsx";const m=({date:m,className:c,children:i,...o})=>{const[l,n]=t("");return a((()=>{n(new Date(m).toLocaleDateString())}),[]),e.createElement("div",{className:r("r-last-modified",c),...o},i," ",e.createElement("time",{dateTime:m,title:m},l))};export{m as LastModified};
|
|
3
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/blocks/last-modified/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useEffect, useState } from \"react\";\nimport clsx from \"clsx\";\n\nimport \"./last-modified.scss\";\n\nexport interface LastModifiedProps extends React.HTMLAttributes<HTMLDivElement> {\n date: string;\n}\n\nexport const LastModified: React.FC<LastModifiedProps> = ({ date, className, children, ...props }) => {\n const [formattedDate, setFormattedDate] = useState(\"\");\n\n useEffect(() => {\n setFormattedDate(new Date(date).toLocaleDateString());\n }, []);\n\n return (\n <div className={clsx(\"r-last-modified\", className)} {...props}>\n {children}{\" \"}\n <time dateTime={date} title={date}>\n {formattedDate}\n </time>\n </div>\n );\n};\n"],"names":["LastModified","date","className","children","props","formattedDate","setFormattedDate","useState","useEffect","Date","toLocaleDateString","React","createElement","clsx","dateTime","title"],"mappings":";uEAWa,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA4C,EAAGC,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWC,cAAaC,CACtF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOC,EAAeC,CAAoBC,CAAAA,CAAAA,CAAAA,CAAS,IAMnD,CAJAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CACNF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB,CAAIG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKR,GAAMS,CAAqB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACtD,IAGCC,CAAKC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,MAAA,CAAAV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWW,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmBX,CAAgBE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACnDD,EAAU,CACXQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAC,cAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAME,SAAUb,CAAMc,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOd,CACxBI,CAAAA,CAAAA,CAAAA,CAAAA,CAGX"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export interface MetaProps {
|
|
3
|
+
meta: {
|
|
4
|
+
title: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
image?: string;
|
|
7
|
+
site_name?: string;
|
|
8
|
+
keywords?: string;
|
|
9
|
+
"image:alt"?: string;
|
|
10
|
+
"og:image:alt": string;
|
|
11
|
+
"twitter:image:alt": string;
|
|
12
|
+
"og:title": string;
|
|
13
|
+
"twitter:title": string;
|
|
14
|
+
"og:description": string;
|
|
15
|
+
"twitter:description": string;
|
|
16
|
+
"og:image": string;
|
|
17
|
+
"twitter:image": string;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export declare const Meta: React.FC<MetaProps>;
|
|
21
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/meta/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE;QACF,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;QACzB,qBAAqB,EAAE,MAAM,CAAC;QAC9B,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe,EAAE,MAAM,CAAC;KAC3B,CAAC;CACL;AAED,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CA+BpC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { type ContentLinkProps } from "../../ui/content-link";
|
|
3
|
+
interface NavContentLinkProps extends ContentLinkProps {
|
|
4
|
+
link?: React.ElementType;
|
|
5
|
+
}
|
|
6
|
+
export declare const NavContentLink: React.FC<NavContentLinkProps>;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/nav-content-link/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAe,KAAK,gBAAgB,EAAE,8BAAwC;AAErF,UAAU,mBAAoB,SAAQ,gBAAgB;IAClD,IAAI,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;CAC5B;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CASxD,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import t from"react";import{useNavigate as e}from"../../contexts/navigate/use-navigate.js";import{ContentLink as n}from"../../ui/content-link/index.js";const o=({onClick:o,...r})=>{const{listeners:i}=e();return t.createElement(n,{onClick:t=>{[...i].forEach((t=>t.listener())),o&&o(t)},...r})};export{o as NavContentLink};
|
|
3
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/blocks/nav-content-link/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\n\nimport { useNavigate } from \"@src/components/contexts/navigate/use-navigate\";\nimport { ContentLink, type ContentLinkProps } from \"@src/components/ui/content-link\";\n\ninterface NavContentLinkProps extends ContentLinkProps {\n link?: React.ElementType;\n}\n\nexport const NavContentLink: React.FC<NavContentLinkProps> = ({ onClick, ...props }) => {\n const { listeners } = useNavigate();\n\n const clickHandler = (e: React.MouseEvent<HTMLAnchorElement>) => {\n [...listeners].forEach((el) => el.listener());\n if (onClick) onClick(e);\n };\n\n return <ContentLink onClick={clickHandler} {...props} />;\n};\n"],"names":["NavContentLink","onClick","props","listeners","useNavigate","React","createElement","ContentLink","e","forEach","el","listener"],"mappings":";wJAWO,CAAMA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgD,CAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYC,CACxE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAEA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcC,IAOtB,CAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAC,CAACC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAAAN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CALEO,CAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIL,GAAWM,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOA,CAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC9BV,CAASA,CAAAA,CAAAA,CAAAA,CAAQO,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAGoBN,GAAS"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
interface NavLinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {
|
|
3
|
+
link?: React.ElementType;
|
|
4
|
+
}
|
|
5
|
+
export declare const NavLink: React.ForwardRefExoticComponent<NavLinkProps & React.RefAttributes<HTMLAnchorElement>>;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/nav-link/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAI1C,UAAU,YAAa,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;IACxE,IAAI,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;CAC5B;AAED,eAAO,MAAM,OAAO,wFASlB,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import e,{forwardRef as t}from"react";import{useNavigate as r}from"../../contexts/navigate/use-navigate.js";const n=t((({link:t="a",onClick:n,...o},i)=>{const{listeners:a}=r();return e.createElement(t,{ref:i,onClick:e=>{[...a].forEach((e=>e.listener())),n&&n(e)},...o})}));export{n as NavLink};
|
|
3
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/blocks/nav-link/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { forwardRef } from \"react\";\n\nimport { useNavigate } from \"@src/components/contexts/navigate/use-navigate\";\n\ninterface NavLinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n link?: React.ElementType;\n}\n\nexport const NavLink = forwardRef<HTMLAnchorElement, NavLinkProps>(({ link: Link = \"a\", onClick, ...props }, ref) => {\n const { listeners } = useNavigate();\n\n const clickHandler = (e: React.MouseEvent<HTMLAnchorElement>) => {\n [...listeners].forEach((el) => el.listener());\n if (onClick) onClick(e);\n };\n\n return <Link ref={ref} onClick={clickHandler} {...props} />;\n});\n"],"names":["NavLink","forwardRef","link","Link","onClick","props","ref","listeners","useNavigate","React","createElement","e","forEach","el","listener"],"mappings":";kHAUaA,EAAUC,CAA4C,CAAA,CAAA,CAAA,CAAGC,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,IAAKC,CAAYC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASC,KACzG,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,GAAcC,CAOtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOC,CAACC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAP,EAAK,CAAAG,CAAAA,CAAAA,CAAAA,CAAKA,CAAKF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CALDO,IAClB,CAAIJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWK,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOA,EAAGC,CAC9BV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASA,EAAQO,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAGuBN,GAAS"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import "./pagination.scss";
|
|
3
|
+
export type PaginationProps = {
|
|
4
|
+
prev?: {
|
|
5
|
+
title: string;
|
|
6
|
+
pathname: string;
|
|
7
|
+
};
|
|
8
|
+
next?: {
|
|
9
|
+
title: string;
|
|
10
|
+
pathname: string;
|
|
11
|
+
};
|
|
12
|
+
link?: React.ElementType;
|
|
13
|
+
translations?: {
|
|
14
|
+
/** Previous */
|
|
15
|
+
previous?: string;
|
|
16
|
+
/** Next */
|
|
17
|
+
next?: string;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
export declare const Pagination: React.FC<PaginationProps>;
|
|
21
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/pagination/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,mBAAmB,CAAC;AAE3B,MAAM,MAAM,eAAe,GAAG;IAC1B,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,IAAI,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;IACzB,YAAY,CAAC,EAAE;QACX,eAAe;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACL,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAyDhD,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"react";import{NavLink as t}from"../nav-link/index.js";const n=async({prev:n,next:a,link:r,translations:l})=>{const{previous:i="Previous",next:s="Next"}=l||{};return e.createElement("div",{className:"r-pagination"},n?e.createElement(t,{link:r,href:n.pathname,className:"r-pagination-item _prev"},e.createElement("span",{className:"r-pagination-icon _prev"},e.createElement("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},e.createElement("path",{d:"m15 18-6-6 6-6"}))),e.createElement("span",{className:"r-pagination-text"},e.createElement("span",null,i),e.createElement("br",null),e.createElement("span",{className:"r-pagination-title"},n.title))):e.createElement("span",null),a?e.createElement(t,{link:r,href:a.pathname,className:"r-pagination-item _next"},e.createElement("span",{className:"r-pagination-icon _next"},e.createElement("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},e.createElement("path",{d:"m9 18 6-6-6-6"}))),e.createElement("span",{className:"r-pagination-text"},e.createElement("span",null,s),e.createElement("br",null),e.createElement("span",{className:"r-pagination-title"},a.title))):e.createElement("span",null))};export{n as Pagination};
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/blocks/pagination/index.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { NavLink } from \"../nav-link\";\n\nimport \"./pagination.scss\";\n\nexport type PaginationProps = {\n prev?: { title: string; pathname: string };\n next?: { title: string; pathname: string };\n link?: React.ElementType;\n translations?: {\n /** Previous */\n previous?: string;\n /** Next */\n next?: string;\n };\n};\n\nexport const Pagination: React.FC<PaginationProps> = async ({ prev, next, link, translations }) => {\n const { previous = \"Previous\", next: nextTranslation = \"Next\" } = translations || {};\n\n return (\n <div className=\"r-pagination\">\n {prev ? (\n <NavLink link={link} href={prev.pathname} className=\"r-pagination-item _prev\">\n <span className=\"r-pagination-icon _prev\">\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m15 18-6-6 6-6\" />\n </svg>\n </span>\n <span className=\"r-pagination-text\">\n <span>{previous}</span>\n <br />\n <span className=\"r-pagination-title\">{prev.title}</span>\n </span>\n </NavLink>\n ) : (\n <span />\n )}\n {next ? (\n <NavLink link={link} href={next.pathname} className=\"r-pagination-item _next\">\n <span className=\"r-pagination-icon _next\">\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n </span>\n <span className=\"r-pagination-text\">\n <span>{nextTranslation}</span>\n <br />\n <span className=\"r-pagination-title\">{next.title}</span>\n </span>\n </NavLink>\n ) : (\n <span />\n )}\n </div>\n );\n};\n"],"names":["Pagination","async","prev","next","link","translations","previous","nextTranslation","React","createElement","className","NavLink","href","pathname","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","d","title"],"mappings":"oEAkBa,MAAAA,EAAwCC,OAASC,OAAMC,OAAMC,OAAMC,mBAC5E,MAAMC,SAAEA,EAAW,WAAYH,KAAMI,EAAkB,QAAWF,GAAgB,GAElF,OACIG,EAAAC,cAAA,MAAA,CAAKC,UAAU,gBACVR,EACGM,EAACC,cAAAE,GAAQP,KAAMA,EAAMQ,KAAMV,EAAKW,SAAUH,UAAU,2BAChDF,EAAMC,cAAA,OAAA,CAAAC,UAAU,2BACZF,EAAAC,cAAA,MAAA,CACIK,MAAM,KACNC,OAAO,KACPC,QAAQ,YACRC,KAAK,OACLC,OAAO,eACPC,YAAY,IACZC,cAAc,QACdC,eAAe,SAEfb,EAAAC,cAAA,OAAA,CAAMa,EAAE,qBAGhBd,EAAMC,cAAA,OAAA,CAAAC,UAAU,qBACZF,EAAAC,cAAA,OAAA,KAAOH,GACPE,EAAMC,cAAA,KAAA,MACND,EAAAC,cAAA,OAAA,CAAMC,UAAU,sBAAsBR,EAAKqB,SAInDf,6BAEHL,EACGK,EAACC,cAAAE,GAAQP,KAAMA,EAAMQ,KAAMT,EAAKU,SAAUH,UAAU,2BAChDF,EAAMC,cAAA,OAAA,CAAAC,UAAU,2BACZF,EAAAC,cAAA,MAAA,CACIK,MAAM,KACNC,OAAO,KACPC,QAAQ,YACRC,KAAK,OACLC,OAAO,eACPC,YAAY,IACZC,cAAc,QACdC,eAAe,SAEfb,EAAAC,cAAA,OAAA,CAAMa,EAAE,oBAGhBd,EAAMC,cAAA,OAAA,CAAAC,UAAU,qBACZF,EAAAC,cAAA,OAAA,KAAOF,GACPC,EAAMC,cAAA,KAAA,MACND,EAAAC,cAAA,OAAA,CAAMC,UAAU,sBAAsBP,EAAKoB,SAInDf,6BAGV"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import "./search.scss";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { type SearchModalProps } from "./search-modal";
|
|
4
|
+
export interface SearchProps {
|
|
5
|
+
link?: React.ElementType;
|
|
6
|
+
searcher: SearchModalProps["searcher"];
|
|
7
|
+
translations?: {
|
|
8
|
+
/** Search... */
|
|
9
|
+
search?: string;
|
|
10
|
+
} & SearchModalProps["translations"];
|
|
11
|
+
}
|
|
12
|
+
export declare const Search: React.FC<SearchProps>;
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/search/index.tsx"],"names":[],"mappings":"AAEA,OAAO,eAAe,CAAC;AAEvB,OAAO,KAA4B,MAAM,OAAO,CAAC;AAEjD,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAKpE,MAAM,WAAW,WAAW;IACxB,IAAI,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;IACzB,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACvC,YAAY,CAAC,EAAE;QACX,gBAAgB;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;CACxC;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAuDxC,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import e,{useRef as n,useEffect as r}from"react";import{SearchModal as t}from"./search-modal/index.js";import{useSystemType as o}from"../../../core/hooks/use-system-type.js";import{KbdContainer as a}from"../../ui/kbd/kbd-container/index.js";import{KbdKey as s}from"../../ui/kbd/kbd-key/index.js";import{useModal as l}from"../../ui/modal/use-modal.js";const c=({link:c,searcher:m,translations:i})=>{const{search:d="Search...",...p}=i||{},u=n(null),{opened:k,closeHandler:y,openHandler:h}=l(),E=o();r((()=>{const e=e=>{"k"===e.key.toLowerCase()&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),h())};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}}),[]);return e.createElement(e.Fragment,null,e.createElement("button",{type:"button",className:"r-search-btn",onClick:h,onKeyDown:e=>{1===e.key.length&&"Space"!==e.code&&h()}},e.createElement("span",{className:"r-search-title",ref:u},d),E&&e.createElement(a,{className:"r-search-kbd"},e.createElement(s,null,"apple"===E?"⌘":"CTRL"),e.createElement(s,null,"K"))),e.createElement(t,{open:k,translations:p,searcher:m,link:c,onClose:y,onInput:e=>{u.current&&(u.current.innerText=e||d)}}))};export{c as Search};
|
|
3
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/blocks/search/index.tsx"],"sourcesContent":["\"use client\";\n\nimport \"./search.scss\";\n\nimport React, { useEffect, useRef } from \"react\";\n\nimport { SearchModal, type SearchModalProps } from \"./search-modal\";\nimport { useSystemType } from \"@src/core/hooks/use-system-type\";\nimport { KbdContainer, KbdKey } from \"@src/components/ui/kbd\";\nimport { useModal } from \"@src/components/ui/modal/use-modal\";\n\nexport interface SearchProps {\n link?: React.ElementType;\n searcher: SearchModalProps[\"searcher\"];\n translations?: {\n /** Search... */\n search?: string;\n } & SearchModalProps[\"translations\"];\n}\n\nexport const Search: React.FC<SearchProps> = ({ link, searcher, translations }) => {\n const { search = \"Search...\", ...modalTranslations } = translations || {};\n const titleRef = useRef<HTMLSpanElement>(null);\n const { opened, closeHandler, openHandler } = useModal();\n const system = useSystemType();\n\n const keyDownHandler = (e: React.KeyboardEvent<HTMLElement>) => {\n if (e.key.length === 1 && e.code !== \"Space\") {\n openHandler();\n }\n };\n\n useEffect(() => {\n const keyDown = (e: KeyboardEvent) => {\n if (e.key.toLowerCase() === \"k\" && (e.metaKey || e.ctrlKey)) {\n e.preventDefault();\n openHandler();\n }\n };\n window.addEventListener(\"keydown\", keyDown);\n\n return () => {\n window.removeEventListener(\"keydown\", keyDown);\n };\n }, []);\n\n const inputHandler = (text: string) => {\n if (titleRef.current) {\n titleRef.current.innerText = text || search;\n }\n };\n\n return (\n <>\n <button type=\"button\" className=\"r-search-btn\" onClick={openHandler} onKeyDown={keyDownHandler}>\n <span className=\"r-search-title\" ref={titleRef}>\n {search}\n </span>\n {system && (\n <KbdContainer className=\"r-search-kbd\">\n <KbdKey>{system === \"apple\" ? \"⌘\" : \"CTRL\"}</KbdKey>\n <KbdKey>K</KbdKey>\n </KbdContainer>\n )}\n </button>\n <SearchModal\n open={opened}\n translations={modalTranslations}\n searcher={searcher}\n link={link}\n onClose={closeHandler}\n onInput={inputHandler}\n />\n </>\n );\n};\n"],"names":["Search","link","searcher","translations","search","modalTranslations","titleRef","useRef","opened","closeHandler","openHandler","useModal","system","useSystemType","useEffect","keyDown","e","key","toLowerCase","metaKey","ctrlKey","preventDefault","window","addEventListener","removeEventListener","React","createElement","Fragment","type","className","onClick","onKeyDown","length","code","ref","KbdContainer","KbdKey","SearchModal","open","onClose","onInput","text","current","innerText"],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { type Searcher } from "../../../../core/types/search";
|
|
3
|
+
export interface SearchModalProps {
|
|
4
|
+
onClose(): void;
|
|
5
|
+
link?: React.ElementType;
|
|
6
|
+
open: boolean;
|
|
7
|
+
onInput(text: string): void;
|
|
8
|
+
searcher: Searcher | string;
|
|
9
|
+
translations?: {
|
|
10
|
+
/** Type something... */
|
|
11
|
+
typeSomething?: string;
|
|
12
|
+
/** Nothing found */
|
|
13
|
+
nothingFound?: string;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export declare const SearchModal: React.FC<SearchModalProps>;
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/blocks/search/search-modal/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAEpE,OAAO,EAAE,KAAK,QAAQ,EAAmB,sCAA+B;AAOxE,MAAM,WAAW,gBAAgB;IAC7B,OAAO,IAAI,IAAI,CAAC;IAChB,IAAI,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE;QACX,wBAAwB;QACxB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,oBAAoB;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACL;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAwDlD,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import e,{useRef as r,useState as t,useMemo as n,useEffect as a}from"react";import{createBaseSearcher as s}from"../../../../core/utils/create-base-searcher.js";import{NavLink as l}from"../../nav-link/index.js";import{useDebouncer as o}from"../../../../core/hooks/use-debouncer.js";import{KbdContainer as c}from"../../../ui/kbd/kbd-container/index.js";import{KbdKey as i}from"../../../ui/kbd/kbd-key/index.js";import{Modal as m}from"../../../ui/modal/index.js";const p=({translations:p,link:h,searcher:u,open:d,onClose:f,onInput:k})=>{const{typeSomething:E="Type something...",nothingFound:b="Nothing found"}=p||{},g=r(null),[N,y]=t(null),j=n((()=>"string"==typeof u?s(u):u),[u]),{handler:x}=o((async(e,r)=>{const t=r.target.value;k(t);let n=null;t&&(n=await j(t,e)),y(n)}));return a((()=>{d&&g.current?.focus()}),[d]),e.createElement(m,{open:d,onClose:f},e.createElement("div",{className:"r-search-popup-header"},e.createElement("input",{type:"text",name:"search",placeholder:E,className:"r-search-input",onChange:x,ref:g}),e.createElement(c,{className:"r-search-kbd r-search-popup-kbd",onClick:f},e.createElement(i,null,"ESC"))),N&&e.createElement("ul",{className:"r-search-results"},N.length>0?N.map((r=>e.createElement("li",{key:r.href},e.createElement(l,{link:h,href:r.href,onClick:f,className:"r-search-item"},e.createElement("p",{className:"r-search-item-title"},r.title),r.description&&e.createElement("p",{className:"r-search-item-desc"},r.description))))):e.createElement("p",null,b)))};export{p as SearchModal};
|
|
3
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/components/blocks/search/search-modal/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useEffect, useMemo, useRef, useState } from \"react\";\n\nimport { type Searcher, type SearchItem } from \"@src/core/types/search\";\nimport { createBaseSearcher } from \"@src/core/utils/create-base-searcher\";\nimport { NavLink } from \"@src/components/blocks/nav-link\";\nimport { useDebouncer } from \"@src/core/hooks/use-debouncer\";\nimport { KbdContainer, KbdKey } from \"@src/components/ui/kbd\";\nimport { Modal } from \"@src/components/ui/modal\";\n\nexport interface SearchModalProps {\n onClose(): void;\n link?: React.ElementType;\n open: boolean;\n onInput(text: string): void;\n searcher: Searcher | string;\n translations?: {\n /** Type something... */\n typeSomething?: string;\n /** Nothing found */\n nothingFound?: string;\n };\n}\n\nexport const SearchModal: React.FC<SearchModalProps> = ({ translations, link, searcher, open, onClose, onInput }) => {\n const { typeSomething = \"Type something...\", nothingFound = \"Nothing found\" } = translations || {};\n const inputRef = useRef<HTMLInputElement | null>(null);\n const [results, setResults] = useState<SearchItem[] | null>(null);\n const targetSearcher = useMemo(\n () => (typeof searcher === \"string\" ? createBaseSearcher(searcher) : searcher),\n [searcher],\n );\n\n const { handler } = useDebouncer(async (abortController, e: React.ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value;\n onInput(value);\n let newResults = null;\n if (value) {\n newResults = await targetSearcher(value, abortController);\n }\n setResults(newResults);\n });\n\n useEffect(() => {\n if (open) inputRef.current?.focus();\n }, [open]);\n\n return (\n <Modal open={open} onClose={onClose}>\n <div className=\"r-search-popup-header\">\n <input\n type=\"text\"\n name=\"search\"\n placeholder={typeSomething}\n className=\"r-search-input\"\n onChange={handler}\n ref={inputRef}\n />\n <KbdContainer className=\"r-search-kbd r-search-popup-kbd\" onClick={onClose}>\n <KbdKey>ESC</KbdKey>\n </KbdContainer>\n </div>\n {results && (\n <ul className=\"r-search-results\">\n {results.length > 0 ? (\n results.map((item) => (\n <li key={item.href}>\n <NavLink link={link} href={item.href} onClick={onClose} className=\"r-search-item\">\n <p className=\"r-search-item-title\">{item.title}</p>\n {item.description && <p className=\"r-search-item-desc\">{item.description}</p>}\n </NavLink>\n </li>\n ))\n ) : (\n <p>{nothingFound}</p>\n )}\n </ul>\n )}\n </Modal>\n );\n};\n"],"names":["SearchModal","translations","link","searcher","open","onClose","onInput","typeSomething","nothingFound","inputRef","useRef","results","setResults","useState","targetSearcher","useMemo","createBaseSearcher","handler","useDebouncer","async","abortController","e","value","target","newResults","useEffect","current","focus","React","createElement","Modal","className","type","name","placeholder","onChange","ref","KbdContainer","onClick","KbdKey","length","map","item","key","href","NavLink","title","description"],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import "./section-dropdown.scss";
|
|
3
|
+
type SectionDropdownOption = {
|
|
4
|
+
key: string;
|
|
5
|
+
href: string;
|
|
6
|
+
title: string;
|
|
7
|
+
shortTitle?: string;
|
|
8
|
+
};
|
|
9
|
+
export type SectionDropdownProps = {
|
|
10
|
+
defaultOption: string;
|
|
11
|
+
options: SectionDropdownOption[];
|
|
12
|
+
link?: React.ElementType;
|
|
13
|
+
};
|
|
14
|
+
export declare const SectionDropdown: React.FC<SectionDropdownProps>;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|