@repraze/kernelkit 0.0.0-stage → 0.1.0-alpha.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 +41 -2
- package/dist/components/accordion.d.ts +13 -0
- package/dist/components/accordion.d.ts.map +1 -0
- package/dist/components/accordion.js +33 -0
- package/dist/components/accordion.js.map +1 -0
- package/dist/components/alert-dialog.d.ts +24 -0
- package/dist/components/alert-dialog.d.ts.map +1 -0
- package/dist/components/alert-dialog.js +49 -0
- package/dist/components/alert-dialog.js.map +1 -0
- package/dist/components/alert.d.ts +22 -0
- package/dist/components/alert.d.ts.map +1 -0
- package/dist/components/alert.js +61 -0
- package/dist/components/alert.js.map +1 -0
- package/dist/components/aspect-ratio.d.ts +10 -0
- package/dist/components/aspect-ratio.d.ts.map +1 -0
- package/dist/components/aspect-ratio.js +18 -0
- package/dist/components/aspect-ratio.js.map +1 -0
- package/dist/components/attachment.d.ts +27 -0
- package/dist/components/attachment.d.ts.map +1 -0
- package/dist/components/attachment.js +76 -0
- package/dist/components/attachment.js.map +1 -0
- package/dist/components/avatar.d.ts +18 -0
- package/dist/components/avatar.d.ts.map +1 -0
- package/dist/components/avatar.js +38 -0
- package/dist/components/avatar.js.map +1 -0
- package/dist/components/badge.d.ts +18 -0
- package/dist/components/badge.d.ts.map +1 -0
- package/dist/components/badge.js +49 -0
- package/dist/components/badge.js.map +1 -0
- package/dist/components/breadcrumb.d.ts +11 -0
- package/dist/components/breadcrumb.d.ts.map +1 -0
- package/dist/components/breadcrumb.js +40 -0
- package/dist/components/breadcrumb.js.map +1 -0
- package/dist/components/bubble.d.ts +22 -0
- package/dist/components/bubble.d.ts.map +1 -0
- package/dist/components/bubble.js +72 -0
- package/dist/components/bubble.js.map +1 -0
- package/dist/components/button-group.d.ts +11 -0
- package/dist/components/button-group.d.ts.map +1 -0
- package/dist/components/button-group.js +38 -0
- package/dist/components/button-group.js.map +1 -0
- package/dist/components/button.d.ts +26 -0
- package/dist/components/button.d.ts.map +1 -0
- package/dist/components/button.js +78 -0
- package/dist/components/button.js.map +1 -0
- package/dist/components/calendar.d.ts +11 -0
- package/dist/components/calendar.d.ts.map +1 -0
- package/dist/components/calendar.js +89 -0
- package/dist/components/calendar.js.map +1 -0
- package/dist/components/callout.d.ts +25 -0
- package/dist/components/callout.d.ts.map +1 -0
- package/dist/components/callout.js +40 -0
- package/dist/components/callout.js.map +1 -0
- package/dist/components/card.d.ts +43 -0
- package/dist/components/card.d.ts.map +1 -0
- package/dist/components/card.js +80 -0
- package/dist/components/card.js.map +1 -0
- package/dist/components/carousel.d.ts +31 -0
- package/dist/components/carousel.d.ts.map +1 -0
- package/dist/components/carousel.js +120 -0
- package/dist/components/carousel.js.map +1 -0
- package/dist/components/chart.d.ts +45 -0
- package/dist/components/chart.d.ts.map +1 -0
- package/dist/components/chart.js +137 -0
- package/dist/components/chart.js.map +1 -0
- package/dist/components/checkbox-group.d.ts +9 -0
- package/dist/components/checkbox-group.d.ts.map +1 -0
- package/dist/components/checkbox-group.js +14 -0
- package/dist/components/checkbox-group.js.map +1 -0
- package/dist/components/checkbox.d.ts +6 -0
- package/dist/components/checkbox.d.ts.map +1 -0
- package/dist/components/checkbox.js +27 -0
- package/dist/components/checkbox.js.map +1 -0
- package/dist/components/code-block.d.ts +29 -0
- package/dist/components/code-block.d.ts.map +1 -0
- package/dist/components/code-block.js +87 -0
- package/dist/components/code-block.js.map +1 -0
- package/dist/components/collapsible.d.ts +11 -0
- package/dist/components/collapsible.d.ts.map +1 -0
- package/dist/components/collapsible.js +21 -0
- package/dist/components/collapsible.js.map +1 -0
- package/dist/components/combobox.d.ts +26 -0
- package/dist/components/combobox.d.ts.map +1 -0
- package/dist/components/combobox.js +66 -0
- package/dist/components/combobox.js.map +1 -0
- package/dist/components/command.d.ts +25 -0
- package/dist/components/command.d.ts.map +1 -0
- package/dist/components/command.js +48 -0
- package/dist/components/command.js.map +1 -0
- package/dist/components/context-menu.d.ts +32 -0
- package/dist/components/context-menu.d.ts.map +1 -0
- package/dist/components/context-menu.js +58 -0
- package/dist/components/context-menu.js.map +1 -0
- package/dist/components/copy-button.d.ts +21 -0
- package/dist/components/copy-button.d.ts.map +1 -0
- package/dist/components/copy-button.js +34 -0
- package/dist/components/copy-button.js.map +1 -0
- package/dist/components/data-table/data-table-utils.d.ts +18 -0
- package/dist/components/data-table/data-table-utils.d.ts.map +1 -0
- package/dist/components/data-table/data-table-utils.js +92 -0
- package/dist/components/data-table/data-table-utils.js.map +1 -0
- package/dist/components/data-table/elements/data-table-base.d.ts +24 -0
- package/dist/components/data-table/elements/data-table-base.d.ts.map +1 -0
- package/dist/components/data-table/elements/data-table-base.js +28 -0
- package/dist/components/data-table/elements/data-table-base.js.map +1 -0
- package/dist/components/data-table/elements/data-table-body.d.ts +8 -0
- package/dist/components/data-table/elements/data-table-body.d.ts.map +1 -0
- package/dist/components/data-table/elements/data-table-body.js +16 -0
- package/dist/components/data-table/elements/data-table-body.js.map +1 -0
- package/dist/components/data-table/elements/data-table-cell.d.ts +12 -0
- package/dist/components/data-table/elements/data-table-cell.d.ts.map +1 -0
- package/dist/components/data-table/elements/data-table-cell.js +23 -0
- package/dist/components/data-table/elements/data-table-cell.js.map +1 -0
- package/dist/components/data-table/elements/data-table-filter-row.d.ts +40 -0
- package/dist/components/data-table/elements/data-table-filter-row.d.ts.map +1 -0
- package/dist/components/data-table/elements/data-table-filter-row.js +117 -0
- package/dist/components/data-table/elements/data-table-filter-row.js.map +1 -0
- package/dist/components/data-table/elements/data-table-foot.d.ts +9 -0
- package/dist/components/data-table/elements/data-table-foot.d.ts.map +1 -0
- package/dist/components/data-table/elements/data-table-foot.js +11 -0
- package/dist/components/data-table/elements/data-table-foot.js.map +1 -0
- package/dist/components/data-table/elements/data-table-head.d.ts +9 -0
- package/dist/components/data-table/elements/data-table-head.d.ts.map +1 -0
- package/dist/components/data-table/elements/data-table-head.js +11 -0
- package/dist/components/data-table/elements/data-table-head.js.map +1 -0
- package/dist/components/data-table/elements/data-table-info-row.d.ts +7 -0
- package/dist/components/data-table/elements/data-table-info-row.d.ts.map +1 -0
- package/dist/components/data-table/elements/data-table-info-row.js +19 -0
- package/dist/components/data-table/elements/data-table-info-row.js.map +1 -0
- package/dist/components/data-table/elements/data-table-row.d.ts +13 -0
- package/dist/components/data-table/elements/data-table-row.d.ts.map +1 -0
- package/dist/components/data-table/elements/data-table-row.js +19 -0
- package/dist/components/data-table/elements/data-table-row.js.map +1 -0
- package/dist/components/data-table/elements/data-table-scroll.d.ts +11 -0
- package/dist/components/data-table/elements/data-table-scroll.d.ts.map +1 -0
- package/dist/components/data-table/elements/data-table-scroll.js +10 -0
- package/dist/components/data-table/elements/data-table-scroll.js.map +1 -0
- package/dist/components/data-table/elements/data-table-sort-row.d.ts +28 -0
- package/dist/components/data-table/elements/data-table-sort-row.d.ts.map +1 -0
- package/dist/components/data-table/elements/data-table-sort-row.js +114 -0
- package/dist/components/data-table/elements/data-table-sort-row.js.map +1 -0
- package/dist/components/data-table/elements/data-table-title-row.d.ts +11 -0
- package/dist/components/data-table/elements/data-table-title-row.d.ts.map +1 -0
- package/dist/components/data-table/elements/data-table-title-row.js +16 -0
- package/dist/components/data-table/elements/data-table-title-row.js.map +1 -0
- package/dist/components/data-table/elements/data-table-virtualized-body.d.ts +10 -0
- package/dist/components/data-table/elements/data-table-virtualized-body.d.ts.map +1 -0
- package/dist/components/data-table/elements/data-table-virtualized-body.js +38 -0
- package/dist/components/data-table/elements/data-table-virtualized-body.js.map +1 -0
- package/dist/components/data-table/set-utils.d.ts +41 -0
- package/dist/components/data-table/set-utils.d.ts.map +1 -0
- package/dist/components/data-table/set-utils.js +97 -0
- package/dist/components/data-table/set-utils.js.map +1 -0
- package/dist/components/data-table/views/data-table-filter-view.d.ts +18 -0
- package/dist/components/data-table/views/data-table-filter-view.d.ts.map +1 -0
- package/dist/components/data-table/views/data-table-filter-view.js +63 -0
- package/dist/components/data-table/views/data-table-filter-view.js.map +1 -0
- package/dist/components/data-table/views/data-table-prop-view.d.ts +297 -0
- package/dist/components/data-table/views/data-table-prop-view.d.ts.map +1 -0
- package/dist/components/data-table/views/data-table-prop-view.js +44 -0
- package/dist/components/data-table/views/data-table-prop-view.js.map +1 -0
- package/dist/components/data-table/views/data-table-root-view.d.ts +8 -0
- package/dist/components/data-table/views/data-table-root-view.d.ts.map +1 -0
- package/dist/components/data-table/views/data-table-root-view.js +18 -0
- package/dist/components/data-table/views/data-table-root-view.js.map +1 -0
- package/dist/components/data-table/views/data-table-sort-view.d.ts +18 -0
- package/dist/components/data-table/views/data-table-sort-view.d.ts.map +1 -0
- package/dist/components/data-table/views/data-table-sort-view.js +70 -0
- package/dist/components/data-table/views/data-table-sort-view.js.map +1 -0
- package/dist/components/data-table/views/data-table-view.d.ts +44 -0
- package/dist/components/data-table/views/data-table-view.d.ts.map +1 -0
- package/dist/components/data-table/views/data-table-view.js +86 -0
- package/dist/components/data-table/views/data-table-view.js.map +1 -0
- package/dist/components/data-table.d.ts +20 -0
- package/dist/components/data-table.d.ts.map +1 -0
- package/dist/components/data-table.js +26 -0
- package/dist/components/data-table.js.map +1 -0
- package/dist/components/date-picker.d.ts +43 -0
- package/dist/components/date-picker.d.ts.map +1 -0
- package/dist/components/date-picker.js +45 -0
- package/dist/components/date-picker.js.map +1 -0
- package/dist/components/dialog.d.ts +24 -0
- package/dist/components/dialog.d.ts.map +1 -0
- package/dist/components/dialog.js +57 -0
- package/dist/components/dialog.js.map +1 -0
- package/dist/components/direction.d.ts +2 -0
- package/dist/components/direction.d.ts.map +1 -0
- package/dist/components/direction.js +3 -0
- package/dist/components/direction.js.map +1 -0
- package/dist/components/drawer.d.ts +18 -0
- package/dist/components/drawer.d.ts.map +1 -0
- package/dist/components/drawer.js +84 -0
- package/dist/components/drawer.js.map +1 -0
- package/dist/components/dropdown-menu.d.ts +45 -0
- package/dist/components/dropdown-menu.d.ts.map +1 -0
- package/dist/components/dropdown-menu.js +77 -0
- package/dist/components/dropdown-menu.js.map +1 -0
- package/dist/components/empty.d.ts +15 -0
- package/dist/components/empty.d.ts.map +1 -0
- package/dist/components/empty.js +44 -0
- package/dist/components/empty.js.map +1 -0
- package/dist/components/field.d.ts +25 -0
- package/dist/components/field.d.ts.map +1 -0
- package/dist/components/field.js +72 -0
- package/dist/components/field.js.map +1 -0
- package/dist/components/file-upload.d.ts +24 -0
- package/dist/components/file-upload.d.ts.map +1 -0
- package/dist/components/file-upload.js +78 -0
- package/dist/components/file-upload.js.map +1 -0
- package/dist/components/hero.d.ts +39 -0
- package/dist/components/hero.d.ts.map +1 -0
- package/dist/components/hero.js +71 -0
- package/dist/components/hero.js.map +1 -0
- package/dist/components/hover-card.d.ts +6 -0
- package/dist/components/hover-card.d.ts.map +1 -0
- package/dist/components/hover-card.js +17 -0
- package/dist/components/hover-card.js.map +1 -0
- package/dist/components/input-group.d.ts +23 -0
- package/dist/components/input-group.d.ts.map +1 -0
- package/dist/components/input-group.js +86 -0
- package/dist/components/input-group.js.map +1 -0
- package/dist/components/input-otp.d.ts +13 -0
- package/dist/components/input-otp.d.ts.map +1 -0
- package/dist/components/input-otp.js +25 -0
- package/dist/components/input-otp.js.map +1 -0
- package/dist/components/input.d.ts +13 -0
- package/dist/components/input.d.ts.map +1 -0
- package/dist/components/input.js +29 -0
- package/dist/components/input.js.map +1 -0
- package/dist/components/item.d.ts +23 -0
- package/dist/components/item.d.ts.map +1 -0
- package/dist/components/item.js +89 -0
- package/dist/components/item.js.map +1 -0
- package/dist/components/kbd.d.ts +11 -0
- package/dist/components/kbd.d.ts.map +1 -0
- package/dist/components/kbd.js +26 -0
- package/dist/components/kbd.js.map +1 -0
- package/dist/components/label.d.ts +4 -0
- package/dist/components/label.d.ts.map +1 -0
- package/dist/components/label.js +9 -0
- package/dist/components/label.js.map +1 -0
- package/dist/components/marker.d.ts +11 -0
- package/dist/components/marker.d.ts.map +1 -0
- package/dist/components/marker.js +37 -0
- package/dist/components/marker.js.map +1 -0
- package/dist/components/menubar.d.ts +23 -0
- package/dist/components/menubar.d.ts.map +1 -0
- package/dist/components/menubar.js +60 -0
- package/dist/components/menubar.js.map +1 -0
- package/dist/components/message-scroller.d.ts +11 -0
- package/dist/components/message-scroller.d.ts.map +1 -0
- package/dist/components/message-scroller.js +27 -0
- package/dist/components/message-scroller.js.map +1 -0
- package/dist/components/message.d.ts +17 -0
- package/dist/components/message.d.ts.map +1 -0
- package/dist/components/message.js +24 -0
- package/dist/components/message.js.map +1 -0
- package/dist/components/meter.d.ts +18 -0
- package/dist/components/meter.d.ts.map +1 -0
- package/dist/components/meter.js +25 -0
- package/dist/components/meter.js.map +1 -0
- package/dist/components/native-select.d.ts +14 -0
- package/dist/components/native-select.d.ts.map +1 -0
- package/dist/components/native-select.js +34 -0
- package/dist/components/native-select.js.map +1 -0
- package/dist/components/navbar.d.ts +11 -0
- package/dist/components/navbar.d.ts.map +1 -0
- package/dist/components/navbar.js +44 -0
- package/dist/components/navbar.js.map +1 -0
- package/dist/components/navigation-menu.d.ts +23 -0
- package/dist/components/navigation-menu.d.ts.map +1 -0
- package/dist/components/navigation-menu.js +51 -0
- package/dist/components/navigation-menu.js.map +1 -0
- package/dist/components/number-field.d.ts +16 -0
- package/dist/components/number-field.d.ts.map +1 -0
- package/dist/components/number-field.js +49 -0
- package/dist/components/number-field.js.map +1 -0
- package/dist/components/page-header.d.ts +13 -0
- package/dist/components/page-header.d.ts.map +1 -0
- package/dist/components/page-header.js +51 -0
- package/dist/components/page-header.js.map +1 -0
- package/dist/components/pager.d.ts +14 -0
- package/dist/components/pager.d.ts.map +1 -0
- package/dist/components/pager.js +36 -0
- package/dist/components/pager.js.map +1 -0
- package/dist/components/pagination.d.ts +21 -0
- package/dist/components/pagination.d.ts.map +1 -0
- package/dist/components/pagination.js +29 -0
- package/dist/components/pagination.js.map +1 -0
- package/dist/components/password-input.d.ts +18 -0
- package/dist/components/password-input.d.ts.map +1 -0
- package/dist/components/password-input.js +17 -0
- package/dist/components/password-input.js.map +1 -0
- package/dist/components/password-strength.d.ts +21 -0
- package/dist/components/password-strength.d.ts.map +1 -0
- package/dist/components/password-strength.js +52 -0
- package/dist/components/password-strength.js.map +1 -0
- package/dist/components/popover.d.ts +10 -0
- package/dist/components/popover.d.ts.map +1 -0
- package/dist/components/popover.js +27 -0
- package/dist/components/popover.js.map +1 -0
- package/dist/components/progress.d.ts +26 -0
- package/dist/components/progress.d.ts.map +1 -0
- package/dist/components/progress.js +39 -0
- package/dist/components/progress.js.map +1 -0
- package/dist/components/questionnaire.d.ts +20 -0
- package/dist/components/questionnaire.d.ts.map +1 -0
- package/dist/components/questionnaire.js +57 -0
- package/dist/components/questionnaire.js.map +1 -0
- package/dist/components/radio-group.d.ts +8 -0
- package/dist/components/radio-group.d.ts.map +1 -0
- package/dist/components/radio-group.js +27 -0
- package/dist/components/radio-group.js.map +1 -0
- package/dist/components/resizable.d.ts +13 -0
- package/dist/components/resizable.d.ts.map +1 -0
- package/dist/components/resizable.js +24 -0
- package/dist/components/resizable.js.map +1 -0
- package/dist/components/scroll-area.d.ts +17 -0
- package/dist/components/scroll-area.d.ts.map +1 -0
- package/dist/components/scroll-area.js +12 -0
- package/dist/components/scroll-area.js.map +1 -0
- package/dist/components/search-dialog.d.ts +38 -0
- package/dist/components/search-dialog.d.ts.map +1 -0
- package/dist/components/search-dialog.js +39 -0
- package/dist/components/search-dialog.js.map +1 -0
- package/dist/components/search-trigger.d.ts +20 -0
- package/dist/components/search-trigger.d.ts.map +1 -0
- package/dist/components/search-trigger.js +52 -0
- package/dist/components/search-trigger.js.map +1 -0
- package/dist/components/section.d.ts +30 -0
- package/dist/components/section.d.ts.map +1 -0
- package/dist/components/section.js +79 -0
- package/dist/components/section.js.map +1 -0
- package/dist/components/select.d.ts +16 -0
- package/dist/components/select.d.ts.map +1 -0
- package/dist/components/select.js +38 -0
- package/dist/components/select.js.map +1 -0
- package/dist/components/separator.d.ts +4 -0
- package/dist/components/separator.d.ts.map +1 -0
- package/dist/components/separator.js +9 -0
- package/dist/components/separator.js.map +1 -0
- package/dist/components/sheet.d.ts +16 -0
- package/dist/components/sheet.d.ts.map +1 -0
- package/dist/components/sheet.js +44 -0
- package/dist/components/sheet.js.map +1 -0
- package/dist/components/sidebar.d.ts +76 -0
- package/dist/components/sidebar.d.ts.map +1 -0
- package/dist/components/sidebar.js +289 -0
- package/dist/components/sidebar.js.map +1 -0
- package/dist/components/site-footer.d.ts +22 -0
- package/dist/components/site-footer.d.ts.map +1 -0
- package/dist/components/site-footer.js +42 -0
- package/dist/components/site-footer.js.map +1 -0
- package/dist/components/site-header.d.ts +48 -0
- package/dist/components/site-header.d.ts.map +1 -0
- package/dist/components/site-header.js +104 -0
- package/dist/components/site-header.js.map +1 -0
- package/dist/components/site-layout.d.ts +35 -0
- package/dist/components/site-layout.d.ts.map +1 -0
- package/dist/components/site-layout.js +99 -0
- package/dist/components/site-layout.js.map +1 -0
- package/dist/components/skeleton.d.ts +6 -0
- package/dist/components/skeleton.d.ts.map +1 -0
- package/dist/components/skeleton.js +16 -0
- package/dist/components/skeleton.js.map +1 -0
- package/dist/components/slider.d.ts +4 -0
- package/dist/components/slider.d.ts.map +1 -0
- package/dist/components/slider.js +11 -0
- package/dist/components/slider.js.map +1 -0
- package/dist/components/spinner.d.ts +12 -0
- package/dist/components/spinner.d.ts.map +1 -0
- package/dist/components/spinner.js +26 -0
- package/dist/components/spinner.js.map +1 -0
- package/dist/components/stat.d.ts +31 -0
- package/dist/components/stat.d.ts.map +1 -0
- package/dist/components/stat.js +66 -0
- package/dist/components/stat.js.map +1 -0
- package/dist/components/status-dot.d.ts +25 -0
- package/dist/components/status-dot.d.ts.map +1 -0
- package/dist/components/status-dot.js +45 -0
- package/dist/components/status-dot.js.map +1 -0
- package/dist/components/switch.d.ts +17 -0
- package/dist/components/switch.d.ts.map +1 -0
- package/dist/components/switch.js +49 -0
- package/dist/components/switch.js.map +1 -0
- package/dist/components/table.d.ts +25 -0
- package/dist/components/table.d.ts.map +1 -0
- package/dist/components/table.js +45 -0
- package/dist/components/table.js.map +1 -0
- package/dist/components/tabs.d.ts +18 -0
- package/dist/components/tabs.d.ts.map +1 -0
- package/dist/components/tabs.js +51 -0
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/textarea.d.ts +4 -0
- package/dist/components/textarea.d.ts.map +1 -0
- package/dist/components/textarea.js +10 -0
- package/dist/components/textarea.js.map +1 -0
- package/dist/components/toast.d.ts +27 -0
- package/dist/components/toast.d.ts.map +1 -0
- package/dist/components/toast.js +68 -0
- package/dist/components/toast.js.map +1 -0
- package/dist/components/toc.d.ts +35 -0
- package/dist/components/toc.d.ts.map +1 -0
- package/dist/components/toc.js +94 -0
- package/dist/components/toc.js.map +1 -0
- package/dist/components/toggle-group.d.ts +19 -0
- package/dist/components/toggle-group.d.ts.map +1 -0
- package/dist/components/toggle-group.js +33 -0
- package/dist/components/toggle-group.js.map +1 -0
- package/dist/components/toggle.d.ts +15 -0
- package/dist/components/toggle.d.ts.map +1 -0
- package/dist/components/toggle.js +42 -0
- package/dist/components/toggle.js.map +1 -0
- package/dist/components/toolbar.d.ts +14 -0
- package/dist/components/toolbar.d.ts.map +1 -0
- package/dist/components/toolbar.js +37 -0
- package/dist/components/toolbar.js.map +1 -0
- package/dist/components/tooltip.d.ts +7 -0
- package/dist/components/tooltip.d.ts.map +1 -0
- package/dist/components/tooltip.js +22 -0
- package/dist/components/tooltip.js.map +1 -0
- package/dist/components/trace.d.ts +20 -0
- package/dist/components/trace.d.ts.map +1 -0
- package/dist/components/trace.js +32 -0
- package/dist/components/trace.js.map +1 -0
- package/dist/components/typography.d.ts +37 -0
- package/dist/components/typography.d.ts.map +1 -0
- package/dist/components/typography.js +140 -0
- package/dist/components/typography.js.map +1 -0
- package/dist/hooks/use-highlighted-code.d.ts +3 -0
- package/dist/hooks/use-highlighted-code.d.ts.map +1 -0
- package/dist/hooks/use-highlighted-code.js +50 -0
- package/dist/hooks/use-highlighted-code.js.map +1 -0
- package/dist/hooks/use-mobile.d.ts +2 -0
- package/dist/hooks/use-mobile.d.ts.map +1 -0
- package/dist/hooks/use-mobile.js +16 -0
- package/dist/hooks/use-mobile.js.map +1 -0
- package/dist/lib/color.d.ts +30 -0
- package/dist/lib/color.d.ts.map +1 -0
- package/dist/lib/color.js +56 -0
- package/dist/lib/color.js.map +1 -0
- package/dist/lib/highlighter.d.ts +10 -0
- package/dist/lib/highlighter.d.ts.map +1 -0
- package/dist/lib/highlighter.js +94 -0
- package/dist/lib/highlighter.js.map +1 -0
- package/dist/lib/recipes.d.ts +30 -0
- package/dist/lib/recipes.d.ts.map +1 -0
- package/dist/lib/recipes.js +30 -0
- package/dist/lib/recipes.js.map +1 -0
- package/dist/lib/utils.d.ts +2 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +2 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/provider/index.d.ts +3 -0
- package/dist/provider/index.d.ts.map +1 -0
- package/dist/provider/index.js +3 -0
- package/dist/provider/index.js.map +1 -0
- package/dist/provider/theme-provider.d.ts +47 -0
- package/dist/provider/theme-provider.d.ts.map +1 -0
- package/dist/provider/theme-provider.js +118 -0
- package/dist/provider/theme-provider.js.map +1 -0
- package/dist/provider/theme.d.ts +42 -0
- package/dist/provider/theme.d.ts.map +1 -0
- package/dist/provider/theme.js +58 -0
- package/dist/provider/theme.js.map +1 -0
- package/package.json +145 -5
- package/src/components/accordion.tsx +92 -0
- package/src/components/alert-dialog.tsx +167 -0
- package/src/components/alert.tsx +110 -0
- package/src/components/aspect-ratio.tsx +29 -0
- package/src/components/attachment.tsx +198 -0
- package/src/components/avatar.tsx +115 -0
- package/src/components/badge.tsx +75 -0
- package/src/components/breadcrumb.tsx +104 -0
- package/src/components/bubble.tsx +125 -0
- package/src/components/button-group.tsx +75 -0
- package/src/components/button.tsx +124 -0
- package/src/components/calendar.tsx +204 -0
- package/src/components/callout.tsx +131 -0
- package/src/components/card.tsx +178 -0
- package/src/components/carousel.tsx +294 -0
- package/src/components/chart.tsx +332 -0
- package/src/components/checkbox-group.tsx +21 -0
- package/src/components/checkbox.tsx +39 -0
- package/src/components/code-block.tsx +246 -0
- package/src/components/collapsible.tsx +47 -0
- package/src/components/combobox.tsx +295 -0
- package/src/components/command.tsx +174 -0
- package/src/components/context-menu.tsx +238 -0
- package/src/components/copy-button.tsx +80 -0
- package/src/components/data-table/data-table-utils.tsx +125 -0
- package/src/components/data-table/elements/data-table-base.tsx +78 -0
- package/src/components/data-table/elements/data-table-body.tsx +50 -0
- package/src/components/data-table/elements/data-table-cell.tsx +42 -0
- package/src/components/data-table/elements/data-table-filter-row.tsx +222 -0
- package/src/components/data-table/elements/data-table-foot.tsx +36 -0
- package/src/components/data-table/elements/data-table-head.tsx +36 -0
- package/src/components/data-table/elements/data-table-info-row.tsx +38 -0
- package/src/components/data-table/elements/data-table-row.tsx +58 -0
- package/src/components/data-table/elements/data-table-scroll.tsx +33 -0
- package/src/components/data-table/elements/data-table-sort-row.tsx +180 -0
- package/src/components/data-table/elements/data-table-title-row.tsx +33 -0
- package/src/components/data-table/elements/data-table-virtualized-body.tsx +87 -0
- package/src/components/data-table/set-utils.ts +103 -0
- package/src/components/data-table/views/data-table-filter-view.tsx +75 -0
- package/src/components/data-table/views/data-table-prop-view.tsx +55 -0
- package/src/components/data-table/views/data-table-root-view.tsx +20 -0
- package/src/components/data-table/views/data-table-sort-view.tsx +81 -0
- package/src/components/data-table/views/data-table-view.tsx +147 -0
- package/src/components/data-table.tsx +30 -0
- package/src/components/date-picker.tsx +166 -0
- package/src/components/dialog.tsx +158 -0
- package/src/components/direction.tsx +3 -0
- package/src/components/drawer.tsx +222 -0
- package/src/components/dropdown-menu.tsx +267 -0
- package/src/components/empty.tsx +97 -0
- package/src/components/field.tsx +229 -0
- package/src/components/file-upload.tsx +180 -0
- package/src/components/hero.tsx +137 -0
- package/src/components/hover-card.tsx +44 -0
- package/src/components/input-group.tsx +186 -0
- package/src/components/input-otp.tsx +82 -0
- package/src/components/input.tsx +50 -0
- package/src/components/item.tsx +191 -0
- package/src/components/kbd.tsx +39 -0
- package/src/components/label.tsx +19 -0
- package/src/components/marker.tsx +69 -0
- package/src/components/menubar.tsx +146 -0
- package/src/components/message-scroller.tsx +113 -0
- package/src/components/message.tsx +90 -0
- package/src/components/meter.tsx +69 -0
- package/src/components/native-select.tsx +76 -0
- package/src/components/navbar.tsx +55 -0
- package/src/components/navigation-menu.tsx +193 -0
- package/src/components/number-field.tsx +133 -0
- package/src/components/page-header.tsx +63 -0
- package/src/components/pager.tsx +70 -0
- package/src/components/pagination.tsx +106 -0
- package/src/components/password-input.tsx +71 -0
- package/src/components/password-strength.tsx +99 -0
- package/src/components/popover.tsx +68 -0
- package/src/components/progress.tsx +105 -0
- package/src/components/questionnaire.tsx +299 -0
- package/src/components/radio-group.tsx +43 -0
- package/src/components/resizable.tsx +62 -0
- package/src/components/scroll-area.tsx +68 -0
- package/src/components/search-dialog.tsx +87 -0
- package/src/components/search-trigger.tsx +74 -0
- package/src/components/section.tsx +110 -0
- package/src/components/select.tsx +184 -0
- package/src/components/separator.tsx +20 -0
- package/src/components/sheet.tsx +116 -0
- package/src/components/sidebar.tsx +722 -0
- package/src/components/site-footer.tsx +55 -0
- package/src/components/site-header.tsx +169 -0
- package/src/components/site-layout.tsx +147 -0
- package/src/components/skeleton.tsx +19 -0
- package/src/components/slider.tsx +46 -0
- package/src/components/spinner.tsx +42 -0
- package/src/components/stat.tsx +155 -0
- package/src/components/status-dot.tsx +94 -0
- package/src/components/switch.tsx +70 -0
- package/src/components/table.tsx +133 -0
- package/src/components/tabs.tsx +99 -0
- package/src/components/textarea.tsx +23 -0
- package/src/components/toast.tsx +221 -0
- package/src/components/toc.tsx +122 -0
- package/src/components/toggle-group.tsx +95 -0
- package/src/components/toggle.tsx +59 -0
- package/src/components/toolbar.tsx +97 -0
- package/src/components/tooltip.tsx +57 -0
- package/src/components/trace.tsx +143 -0
- package/src/components/typography.tsx +205 -0
- package/src/hooks/use-highlighted-code.ts +71 -0
- package/src/hooks/use-mobile.ts +19 -0
- package/src/lib/color.ts +76 -0
- package/src/lib/highlighter.tsx +121 -0
- package/src/lib/recipes.ts +47 -0
- package/src/lib/utils.ts +1 -0
- package/src/provider/index.ts +2 -0
- package/src/provider/theme-provider.tsx +210 -0
- package/src/provider/theme.ts +83 -0
- package/src/styles/kernelkit.css +301 -0
- package/src/styles/shadcn.css +555 -0
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { mergeProps } from "@base-ui/react/merge-props";
|
|
4
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
5
|
+
import { Button } from "@repraze/kernelkit/components/button";
|
|
6
|
+
import { Input } from "@repraze/kernelkit/components/input";
|
|
7
|
+
import { ScrollArea } from "@repraze/kernelkit/components/scroll-area";
|
|
8
|
+
import { Separator } from "@repraze/kernelkit/components/separator";
|
|
9
|
+
import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from "@repraze/kernelkit/components/sheet";
|
|
10
|
+
import { Skeleton } from "@repraze/kernelkit/components/skeleton";
|
|
11
|
+
import { Tooltip, TooltipContent, TooltipTrigger } from "@repraze/kernelkit/components/tooltip";
|
|
12
|
+
import { useIsMobile } from "@repraze/kernelkit/hooks/use-mobile";
|
|
13
|
+
import { focusRing } from "@repraze/kernelkit/lib/recipes";
|
|
14
|
+
import { cva } from "class-variance-authority";
|
|
15
|
+
import { cn } from "cn";
|
|
16
|
+
import { PanelLeftIcon } from "lucide-react";
|
|
17
|
+
import * as React from "react";
|
|
18
|
+
const SIDEBAR_COOKIE_NAME = "sidebar_state";
|
|
19
|
+
const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
|
|
20
|
+
const SIDEBAR_WIDTH = "16rem";
|
|
21
|
+
const SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
22
|
+
const SIDEBAR_WIDTH_ICON = "3rem";
|
|
23
|
+
const SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
24
|
+
const SidebarContext = React.createContext(null);
|
|
25
|
+
function useSidebar() {
|
|
26
|
+
const context = React.useContext(SidebarContext);
|
|
27
|
+
if (!context) {
|
|
28
|
+
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
29
|
+
}
|
|
30
|
+
return context;
|
|
31
|
+
}
|
|
32
|
+
function SidebarProvider({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, keyboardShortcut = true, className, style, children, ...props }) {
|
|
33
|
+
const isMobile = useIsMobile();
|
|
34
|
+
const [openMobile, setOpenMobile] = React.useState(false);
|
|
35
|
+
// This is the internal state of the sidebar.
|
|
36
|
+
// We use openProp and setOpenProp for control from outside the component.
|
|
37
|
+
const [_open, _setOpen] = React.useState(defaultOpen);
|
|
38
|
+
const open = openProp ?? _open;
|
|
39
|
+
const setOpen = React.useCallback((value) => {
|
|
40
|
+
const openState = typeof value === "function" ? value(open) : value;
|
|
41
|
+
if (setOpenProp) {
|
|
42
|
+
setOpenProp(openState);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
_setOpen(openState);
|
|
46
|
+
}
|
|
47
|
+
// This sets the cookie to keep the sidebar state.
|
|
48
|
+
document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
|
|
49
|
+
}, [setOpenProp, open]);
|
|
50
|
+
// Helper to toggle the sidebar.
|
|
51
|
+
const toggleSidebar = React.useCallback(() => {
|
|
52
|
+
return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);
|
|
53
|
+
}, [isMobile, setOpen, setOpenMobile]);
|
|
54
|
+
// Adds a keyboard shortcut to toggle the sidebar. Opt out with `keyboardShortcut={false}`.
|
|
55
|
+
React.useEffect(() => {
|
|
56
|
+
if (!keyboardShortcut) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const handleKeyDown = (event) => {
|
|
60
|
+
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
61
|
+
event.preventDefault();
|
|
62
|
+
toggleSidebar();
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
window.addEventListener("keydown", handleKeyDown);
|
|
66
|
+
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
67
|
+
}, [keyboardShortcut, toggleSidebar]);
|
|
68
|
+
// We add a state so that we can do data-state="expanded" or "collapsed".
|
|
69
|
+
// This makes it easier to style the sidebar with Tailwind classes.
|
|
70
|
+
const state = open ? "expanded" : "collapsed";
|
|
71
|
+
const contextValue = React.useMemo(() => ({
|
|
72
|
+
state,
|
|
73
|
+
open,
|
|
74
|
+
setOpen,
|
|
75
|
+
isMobile,
|
|
76
|
+
openMobile,
|
|
77
|
+
setOpenMobile,
|
|
78
|
+
toggleSidebar,
|
|
79
|
+
}), [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]);
|
|
80
|
+
return (_jsx(SidebarContext.Provider, { value: contextValue, children: _jsx("div", { "data-slot": "sidebar-wrapper", style: {
|
|
81
|
+
"--sidebar-width": SIDEBAR_WIDTH,
|
|
82
|
+
"--sidebar-width-icon": SIDEBAR_WIDTH_ICON,
|
|
83
|
+
...style,
|
|
84
|
+
}, className: cn("group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar", className), ...props, children: children }) }));
|
|
85
|
+
}
|
|
86
|
+
function Sidebar({ side = "left", variant = "sidebar", collapsible = "offcanvas", className, children, dir, ...props }) {
|
|
87
|
+
const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
|
|
88
|
+
if (collapsible === "none") {
|
|
89
|
+
return (_jsx("div", { "data-slot": "sidebar", className: cn("flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground", className), ...props, children: children }));
|
|
90
|
+
}
|
|
91
|
+
if (isMobile) {
|
|
92
|
+
return (_jsx(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: _jsxs(SheetContent, { dir: dir, "data-sidebar": "sidebar", "data-slot": "sidebar", "data-mobile": "true", className: "w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden", style: {
|
|
93
|
+
"--sidebar-width": SIDEBAR_WIDTH_MOBILE,
|
|
94
|
+
}, side: side, children: [_jsxs(SheetHeader, { className: "sr-only", children: [_jsx(SheetTitle, { children: "Sidebar" }), _jsx(SheetDescription, { children: "Displays the mobile sidebar." })] }), _jsx("div", { className: "flex h-full w-full flex-col", children: children })] }) }));
|
|
95
|
+
}
|
|
96
|
+
return (_jsxs("div", { className: "group peer hidden text-sidebar-foreground md:block", "data-state": state, "data-collapsible": state === "collapsed" ? collapsible : "", "data-variant": variant, "data-side": side, "data-slot": "sidebar", children: [_jsx("div", { "data-slot": "sidebar-gap", className: cn("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear", "group-data-[collapsible=offcanvas]:w-0", "group-data-[side=right]:rotate-180", variant === "floating" || variant === "inset"
|
|
97
|
+
? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]"
|
|
98
|
+
: "group-data-[collapsible=icon]:w-(--sidebar-width-icon)") }), _jsx("div", { "data-slot": "sidebar-container", "data-side": side, className: cn("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)] md:flex",
|
|
99
|
+
// Adjust the padding for floating and inset variants.
|
|
100
|
+
variant === "floating" || variant === "inset"
|
|
101
|
+
? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]"
|
|
102
|
+
: "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l", className), ...props, children: _jsx("div", { "data-sidebar": "sidebar", "data-slot": "sidebar-inner", className: "flex size-full flex-col bg-sidebar group-data-[variant=floating]:rounded-xl group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:shadow-(color:--shadow-color)", children: children }) })] }));
|
|
103
|
+
}
|
|
104
|
+
function SidebarTrigger({ className, onClick, ...props }) {
|
|
105
|
+
const { toggleSidebar } = useSidebar();
|
|
106
|
+
return (_jsxs(Button, { "data-sidebar": "trigger", "data-slot": "sidebar-trigger", variant: "ghost", size: "icon-sm", className: cn(className), onClick: (event) => {
|
|
107
|
+
onClick?.(event);
|
|
108
|
+
toggleSidebar();
|
|
109
|
+
}, ...props, children: [_jsx(PanelLeftIcon, {}), _jsx("span", { className: "sr-only", children: "Toggle Sidebar" })] }));
|
|
110
|
+
}
|
|
111
|
+
function SidebarRail({ className, ...props }) {
|
|
112
|
+
const { toggleSidebar } = useSidebar();
|
|
113
|
+
return (_jsx("button", { "data-sidebar": "rail", "data-slot": "sidebar-rail", "aria-label": "Toggle Sidebar", tabIndex: -1, onClick: toggleSidebar, title: "Toggle Sidebar", className: cn("absolute inset-y-0 z-20 hidden w-4 transition-[transform,background-color] ease-linear motion-reduce:transition-none group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:start-1/2 after:w-[2px] hover:after:bg-sidebar-border sm:flex ltr:-translate-x-1/2 rtl:-translate-x-1/2", "in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize", "[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize", "group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-sidebar", "[[data-side=left][data-collapsible=offcanvas]_&]:-right-2", "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2", className), ...props }));
|
|
114
|
+
}
|
|
115
|
+
function SidebarInset({ className, render, ...props }) {
|
|
116
|
+
return useRender({
|
|
117
|
+
defaultTagName: "main",
|
|
118
|
+
props: mergeProps({
|
|
119
|
+
className: cn("relative flex w-full min-w-0 flex-1 flex-col bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:border md:peer-data-[variant=inset]:border-sidebar-border md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:shadow-(color:--shadow-color) md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2", className),
|
|
120
|
+
}, props),
|
|
121
|
+
render,
|
|
122
|
+
state: {
|
|
123
|
+
slot: "sidebar-inset",
|
|
124
|
+
},
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
function SidebarInput({ className, ...props }) {
|
|
128
|
+
return (_jsx(Input, { "data-slot": "sidebar-input", "data-sidebar": "input", className: cn("h-8 w-full bg-background shadow-none", className), ...props }));
|
|
129
|
+
}
|
|
130
|
+
function SidebarHeader({ className, ...props }) {
|
|
131
|
+
return (_jsx("div", { "data-slot": "sidebar-header", "data-sidebar": "header", className: cn("flex flex-col gap-2 p-2", className), ...props }));
|
|
132
|
+
}
|
|
133
|
+
function SidebarFooter({ className, ...props }) {
|
|
134
|
+
return (_jsx("div", { "data-slot": "sidebar-footer", "data-sidebar": "footer", className: cn("flex flex-col gap-2 p-2", className), ...props }));
|
|
135
|
+
}
|
|
136
|
+
function SidebarSeparator({ className, ...props }) {
|
|
137
|
+
return (_jsx(Separator, { "data-slot": "sidebar-separator", "data-sidebar": "separator", className: cn("mx-2 w-auto bg-sidebar-border", className), ...props }));
|
|
138
|
+
}
|
|
139
|
+
/** Scrolls with ScrollArea (themed thumb, edge fade) instead of native overflow. */
|
|
140
|
+
function SidebarContent({ className, children, viewportRef, ...props }) {
|
|
141
|
+
return (_jsx(ScrollArea, { fade: true, viewportRef: viewportRef, className: "min-h-0 flex-1 group-data-[collapsible=icon]:overflow-hidden", "data-slot": "sidebar-content", "data-sidebar": "content", children: _jsx("div", { className: cn("flex min-w-0 flex-col gap-0", className), ...props, children: children }) }));
|
|
142
|
+
}
|
|
143
|
+
function SidebarGroup({ className, ...props }) {
|
|
144
|
+
return (_jsx("div", { "data-slot": "sidebar-group", "data-sidebar": "group", className: cn("relative flex w-full min-w-0 flex-col p-2", className), ...props }));
|
|
145
|
+
}
|
|
146
|
+
function SidebarGroupLabel({ className, render, ...props }) {
|
|
147
|
+
return useRender({
|
|
148
|
+
defaultTagName: "div",
|
|
149
|
+
props: mergeProps({
|
|
150
|
+
className: cn("flex h-8 shrink-0 items-center gap-2 rounded-md px-2 text-xs font-medium text-muted-foreground outline-hidden transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-3 focus-visible:ring-ring/50 motion-reduce:transition-none [&>svg]:size-4 [&>svg]:shrink-0", className),
|
|
151
|
+
}, props),
|
|
152
|
+
render,
|
|
153
|
+
state: {
|
|
154
|
+
slot: "sidebar-group-label",
|
|
155
|
+
sidebar: "group-label",
|
|
156
|
+
},
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
function SidebarGroupAction({ className, render, ...props }) {
|
|
160
|
+
return useRender({
|
|
161
|
+
defaultTagName: "button",
|
|
162
|
+
props: mergeProps({
|
|
163
|
+
className: cn("absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-muted-foreground outline-hidden transition-[color,background-color,box-shadow] group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 hover:bg-hover hover:text-sidebar-foreground focus-visible:ring-3 focus-visible:ring-ring/50 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0", className),
|
|
164
|
+
}, props),
|
|
165
|
+
render,
|
|
166
|
+
state: {
|
|
167
|
+
slot: "sidebar-group-action",
|
|
168
|
+
sidebar: "group-action",
|
|
169
|
+
},
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
function SidebarGroupContent({ className, ...props }) {
|
|
173
|
+
return (_jsx("div", { "data-slot": "sidebar-group-content", "data-sidebar": "group-content", className: cn("w-full text-sm", className), ...props }));
|
|
174
|
+
}
|
|
175
|
+
function SidebarMenu({ className, ...props }) {
|
|
176
|
+
return (_jsx("ul", { "data-slot": "sidebar-menu", "data-sidebar": "menu", className: cn("flex w-full min-w-0 flex-col gap-1", className), ...props }));
|
|
177
|
+
}
|
|
178
|
+
function SidebarMenuItem({ className, ...props }) {
|
|
179
|
+
return (_jsx("li", { "data-slot": "sidebar-menu-item", "data-sidebar": "menu-item", className: cn("group/menu-item relative", className), ...props }));
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Sidebar row. Hover is the `bg-hover` wash; the current item (`isActive`) gets the accent tint, medium
|
|
183
|
+
* weight and a primary icon, so it reads without relying on surface shade (GUIDELINES §6).
|
|
184
|
+
*/
|
|
185
|
+
const sidebarMenuButtonVariants = cva([
|
|
186
|
+
"peer/menu-button group/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md whitespace-nowrap p-2 text-left text-sm text-sidebar-foreground outline-hidden",
|
|
187
|
+
"transition-[width,height,padding,color,background-color,box-shadow] duration-100 motion-reduce:transition-none",
|
|
188
|
+
"group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2!",
|
|
189
|
+
focusRing,
|
|
190
|
+
"hover:bg-hover data-popup-open:bg-hover",
|
|
191
|
+
"disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50",
|
|
192
|
+
// current row (GUIDELINES §7c): accent tint, foreground text, 2px accent indicator on the left edge
|
|
193
|
+
"relative after:pointer-events-none after:absolute after:top-1.5 after:bottom-1.5 after:left-0 after:w-0.5 after:rounded-pill after:bg-primary-text after:opacity-0 data-active:after:opacity-100",
|
|
194
|
+
"data-active:bg-primary-tint data-active:font-medium data-active:text-foreground data-active:[&_svg:not([class*='text-'])]:text-primary-text",
|
|
195
|
+
"[&_svg]:size-4 [&_svg]:shrink-0 [&_svg:not([class*='text-'])]:text-muted-foreground [&>span:last-child]:truncate",
|
|
196
|
+
], {
|
|
197
|
+
variants: {
|
|
198
|
+
variant: {
|
|
199
|
+
default: "",
|
|
200
|
+
outline: "bg-background shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-hover",
|
|
201
|
+
},
|
|
202
|
+
size: {
|
|
203
|
+
default: "h-8 text-sm",
|
|
204
|
+
sm: "h-7 text-xs",
|
|
205
|
+
lg: "h-12 text-sm group-data-[collapsible=icon]:p-0!",
|
|
206
|
+
},
|
|
207
|
+
},
|
|
208
|
+
defaultVariants: {
|
|
209
|
+
variant: "default",
|
|
210
|
+
size: "default",
|
|
211
|
+
},
|
|
212
|
+
});
|
|
213
|
+
function SidebarMenuButton({ render, isActive = false, variant = "default", size = "default", tooltip, className, ...props }) {
|
|
214
|
+
// Works without a SidebarProvider too (an in-page nav styled like the sidebar): expanded, desktop.
|
|
215
|
+
const { isMobile, state } = React.useContext(SidebarContext) ?? { isMobile: false, state: "expanded" };
|
|
216
|
+
const comp = useRender({
|
|
217
|
+
defaultTagName: "button",
|
|
218
|
+
props: mergeProps({
|
|
219
|
+
className: cn(sidebarMenuButtonVariants({ variant, size }), className),
|
|
220
|
+
}, props),
|
|
221
|
+
render: !tooltip ? render : _jsx(TooltipTrigger, { render: render }),
|
|
222
|
+
state: {
|
|
223
|
+
slot: "sidebar-menu-button",
|
|
224
|
+
sidebar: "menu-button",
|
|
225
|
+
size,
|
|
226
|
+
active: isActive,
|
|
227
|
+
},
|
|
228
|
+
});
|
|
229
|
+
if (!tooltip) {
|
|
230
|
+
return comp;
|
|
231
|
+
}
|
|
232
|
+
if (typeof tooltip === "string") {
|
|
233
|
+
tooltip = {
|
|
234
|
+
children: tooltip,
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
return (_jsxs(Tooltip, { children: [comp, _jsx(TooltipContent, { side: "right", align: "center", hidden: state !== "collapsed" || isMobile, ...tooltip })] }));
|
|
238
|
+
}
|
|
239
|
+
function SidebarMenuAction({ className, render, showOnHover = false, ...props }) {
|
|
240
|
+
return useRender({
|
|
241
|
+
defaultTagName: "button",
|
|
242
|
+
props: mergeProps({
|
|
243
|
+
className: cn("absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-muted-foreground outline-hidden transition-[color,background-color,box-shadow,opacity] group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-foreground peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 after:absolute after:-inset-2 hover:bg-hover hover:text-sidebar-foreground focus-visible:ring-3 focus-visible:ring-ring/50 aria-expanded:bg-hover md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0", showOnHover &&
|
|
244
|
+
"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-active/menu-button:text-sidebar-accent-foreground aria-expanded:opacity-100 md:opacity-0", className),
|
|
245
|
+
}, props),
|
|
246
|
+
render,
|
|
247
|
+
state: {
|
|
248
|
+
slot: "sidebar-menu-action",
|
|
249
|
+
sidebar: "menu-action",
|
|
250
|
+
},
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
function SidebarMenuBadge({ className, ...props }) {
|
|
254
|
+
return (_jsx("div", { "data-slot": "sidebar-menu-badge", "data-sidebar": "menu-badge", className: cn("pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-sm px-1 font-mono text-xs font-medium text-muted-foreground tabular-nums select-none group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 peer-data-active/menu-button:text-sidebar-accent-foreground", className), ...props }));
|
|
255
|
+
}
|
|
256
|
+
function SidebarMenuSkeleton({ className, showIcon = false, ...props }) {
|
|
257
|
+
// Random width between 50 to 90%.
|
|
258
|
+
const [width] = React.useState(() => {
|
|
259
|
+
return `${Math.floor(Math.random() * 40) + 50}%`;
|
|
260
|
+
});
|
|
261
|
+
return (_jsxs("div", { "data-slot": "sidebar-menu-skeleton", "data-sidebar": "menu-skeleton", className: cn("flex h-8 items-center gap-2 rounded-md px-2", className), ...props, children: [showIcon && _jsx(Skeleton, { className: "size-4 rounded-md", "data-sidebar": "menu-skeleton-icon" }), _jsx(Skeleton, { className: "h-4 max-w-(--skeleton-width) flex-1", "data-sidebar": "menu-skeleton-text", style: {
|
|
262
|
+
"--skeleton-width": width,
|
|
263
|
+
} })] }));
|
|
264
|
+
}
|
|
265
|
+
function SidebarMenuSub({ className, ...props }) {
|
|
266
|
+
return (_jsx("ul", { "data-slot": "sidebar-menu-sub", "data-sidebar": "menu-sub", className: cn("mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5 group-data-[collapsible=icon]:hidden", className), ...props }));
|
|
267
|
+
}
|
|
268
|
+
function SidebarMenuSubItem({ className, ...props }) {
|
|
269
|
+
return (_jsx("li", { "data-slot": "sidebar-menu-sub-item", "data-sidebar": "menu-sub-item", className: cn("group/menu-sub-item relative",
|
|
270
|
+
// current sub-row: the 2px accent indicator sits on the tree line (like Toc)
|
|
271
|
+
"after:pointer-events-none after:absolute after:inset-y-0 after:-left-[calc(0.625rem+1.5px)] after:w-0.5 after:bg-primary-text after:opacity-0 has-[>[data-active]]:after:opacity-100", className), ...props }));
|
|
272
|
+
}
|
|
273
|
+
function SidebarMenuSubButton({ render, size = "md", isActive = false, className, ...props }) {
|
|
274
|
+
return useRender({
|
|
275
|
+
defaultTagName: "a",
|
|
276
|
+
props: mergeProps({
|
|
277
|
+
className: cn("flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 whitespace-nowrap text-muted-foreground outline-hidden transition-[color,background-color,box-shadow] duration-100 group-data-[collapsible=icon]:hidden hover:bg-hover hover:text-sidebar-foreground focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[size=md]:text-sm data-[size=sm]:text-xs data-active:bg-primary-tint data-active:font-medium data-active:text-foreground motion-reduce:transition-none [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-muted-foreground data-active:[&>svg]:text-primary-text", className),
|
|
278
|
+
}, props),
|
|
279
|
+
render,
|
|
280
|
+
state: {
|
|
281
|
+
slot: "sidebar-menu-sub-button",
|
|
282
|
+
sidebar: "menu-sub-button",
|
|
283
|
+
size,
|
|
284
|
+
active: isActive,
|
|
285
|
+
},
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar, };
|
|
289
|
+
//# sourceMappingURL=sidebar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidebar.js","sourceRoot":"","sources":["../../src/components/sidebar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
2
|
+
import type * as React from "react";
|
|
3
|
+
/**
|
|
4
|
+
* The suite's site footer: a top border and one mono row at the site width, credits on the left and
|
|
5
|
+
* links on the right.
|
|
6
|
+
*
|
|
7
|
+
* ```tsx
|
|
8
|
+
* <SiteFooter>
|
|
9
|
+
* <span>MIT · built from one palette</span>
|
|
10
|
+
* <SiteFooterLinks>
|
|
11
|
+
* <SiteFooterLink href="https://github.com/…">GitHub</SiteFooterLink>
|
|
12
|
+
* </SiteFooterLinks>
|
|
13
|
+
* </SiteFooter>
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
declare function SiteFooter({ className, children, ...props }: React.ComponentProps<"footer">): React.JSX.Element;
|
|
17
|
+
/** The footer's links (wrap on phones). */
|
|
18
|
+
declare function SiteFooterLinks({ className, render, ...props }: useRender.ComponentProps<"nav">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
19
|
+
/** A footer link: muted, foreground on hover. */
|
|
20
|
+
declare function SiteFooterLink({ className, render, ...props }: useRender.ComponentProps<"a">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
21
|
+
export { SiteFooter, SiteFooterLink, SiteFooterLinks };
|
|
22
|
+
//# sourceMappingURL=site-footer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"site-footer.d.ts","sourceRoot":"","sources":["../../src/components/site-footer.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAC,SAAS,EAAC,MAAM,2BAA2B,CAAC;AAGpD,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC;;;;;;;;;;;;GAYG;AACH,iBAAS,UAAU,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAC,EAAE,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,qBAQlF;AAED,2CAA2C;AAC3C,iBAAS,eAAe,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,0EAOtF;AAED,iDAAiD;AACjD,iBAAS,cAAc,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,0EAUnF;AAED,OAAO,EAAC,UAAU,EAAE,cAAc,EAAE,eAAe,EAAC,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { mergeProps } from "@base-ui/react/merge-props";
|
|
4
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
5
|
+
import { focusRing } from "@repraze/kernelkit/lib/recipes";
|
|
6
|
+
import { cn } from "cn";
|
|
7
|
+
/**
|
|
8
|
+
* The suite's site footer: a top border and one mono row at the site width, credits on the left and
|
|
9
|
+
* links on the right.
|
|
10
|
+
*
|
|
11
|
+
* ```tsx
|
|
12
|
+
* <SiteFooter>
|
|
13
|
+
* <span>MIT · built from one palette</span>
|
|
14
|
+
* <SiteFooterLinks>
|
|
15
|
+
* <SiteFooterLink href="https://github.com/…">GitHub</SiteFooterLink>
|
|
16
|
+
* </SiteFooterLinks>
|
|
17
|
+
* </SiteFooter>
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
function SiteFooter({ className, children, ...props }) {
|
|
21
|
+
return (_jsx("footer", { "data-slot": "site-footer", className: cn("border-t border-border", className), ...props, children: _jsx("div", { className: "mx-auto flex w-full max-w-(--kk-site-width) flex-col gap-3 px-4 py-6 font-mono text-xs text-muted-foreground sm:flex-row sm:items-center sm:justify-between md:px-6", children: children }) }));
|
|
22
|
+
}
|
|
23
|
+
/** The footer's links (wrap on phones). */
|
|
24
|
+
function SiteFooterLinks({ className, render, ...props }) {
|
|
25
|
+
return useRender({
|
|
26
|
+
defaultTagName: "nav",
|
|
27
|
+
props: mergeProps({ className: cn("flex flex-wrap items-center gap-x-4 gap-y-1", className) }, props),
|
|
28
|
+
render,
|
|
29
|
+
state: { slot: "site-footer-links" },
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
/** A footer link: muted, foreground on hover. */
|
|
33
|
+
function SiteFooterLink({ className, render, ...props }) {
|
|
34
|
+
return useRender({
|
|
35
|
+
defaultTagName: "a",
|
|
36
|
+
props: mergeProps({ className: cn("rounded-sm transition-colors hover:text-foreground", focusRing, className) }, props),
|
|
37
|
+
render,
|
|
38
|
+
state: { slot: "site-footer-link" },
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
export { SiteFooter, SiteFooterLink, SiteFooterLinks };
|
|
42
|
+
//# sourceMappingURL=site-footer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"site-footer.js","sourceRoot":"","sources":["../../src/components/site-footer.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAC,UAAU,EAAC,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAC,SAAS,EAAC,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAC,SAAS,EAAC,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAC,EAAE,EAAC,MAAM,IAAI,CAAC;AAGtB;;;;;;;;;;;;GAYG;AACH,SAAS,UAAU,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAiC;IAC/E,OAAO,CACH,8BAAkB,aAAa,EAAC,SAAS,EAAE,EAAE,CAAC,wBAAwB,EAAE,SAAS,CAAC,KAAM,KAAK,YACzF,cAAK,SAAS,EAAC,qKAAqK,YAC/K,QAAQ,GACP,GACD,CACZ,CAAC;AACN,CAAC;AAED,2CAA2C;AAC3C,SAAS,eAAe,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAkC;IACnF,OAAO,SAAS,CAAC;QACb,cAAc,EAAE,KAAK;QACrB,KAAK,EAAE,UAAU,CAAQ,EAAC,SAAS,EAAE,EAAE,CAAC,6CAA6C,EAAE,SAAS,CAAC,EAAC,EAAE,KAAK,CAAC;QAC1G,MAAM;QACN,KAAK,EAAE,EAAC,IAAI,EAAE,mBAAmB,EAAC;KACrC,CAAC,CAAC;AACP,CAAC;AAED,iDAAiD;AACjD,SAAS,cAAc,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAgC;IAChF,OAAO,SAAS,CAAC;QACb,cAAc,EAAE,GAAG;QACnB,KAAK,EAAE,UAAU,CACb,EAAC,SAAS,EAAE,EAAE,CAAC,oDAAoD,EAAE,SAAS,EAAE,SAAS,CAAC,EAAC,EAC3F,KAAK,CACR;QACD,MAAM;QACN,KAAK,EAAE,EAAC,IAAI,EAAE,kBAAkB,EAAC;KACpC,CAAC,CAAC;AACP,CAAC;AAED,OAAO,EAAC,UAAU,EAAE,cAAc,EAAE,eAAe,EAAC,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
2
|
+
import { Sheet } from "@repraze/kernelkit/components/sheet";
|
|
3
|
+
import type * as React from "react";
|
|
4
|
+
/**
|
|
5
|
+
* The suite's site header: sticky, blurred, one row of `--kk-header-height` inside a `--kk-site-width`
|
|
6
|
+
* container. Brand, then mono nav links (current page underlined in the accent), then actions.
|
|
7
|
+
*
|
|
8
|
+
* ```tsx
|
|
9
|
+
* <SiteHeader>
|
|
10
|
+
* <SiteHeaderContent>
|
|
11
|
+
* <SiteHeaderMenu title="termicolor">…mobile nav…</SiteHeaderMenu>
|
|
12
|
+
* <SiteHeaderBrand render={<Link to="/" />}>…</SiteHeaderBrand>
|
|
13
|
+
* <SiteNav><SiteNavLink render={<Link to="/ports" />}>Ports</SiteNavLink></SiteNav>
|
|
14
|
+
* <SiteHeaderActions>…search, theme, github…</SiteHeaderActions>
|
|
15
|
+
* </SiteHeaderContent>
|
|
16
|
+
* </SiteHeader>
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
declare function SiteHeader({ className, render, ...props }: useRender.ComponentProps<"header">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
20
|
+
/** The header row: centered at the site width, the same gutters as SiteContainer. */
|
|
21
|
+
declare function SiteHeaderContent({ className, render, ...props }: useRender.ComponentProps<"div">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
22
|
+
/** Logo + name, links home. Pass the router link with `render`. */
|
|
23
|
+
declare function SiteHeaderBrand({ className, render, ...props }: useRender.ComponentProps<"a">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
24
|
+
/** Primary navigation (desktop). On phones the links move into SiteHeaderMenu. */
|
|
25
|
+
declare function SiteNav({ className, render, ...props }: useRender.ComponentProps<"nav">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
26
|
+
/**
|
|
27
|
+
* A nav link, styled like the suite's other navigation (GUIDELINES §7c): muted at rest, a hover wash,
|
|
28
|
+
* and when current (`aria-current="page"`, `data-status="active"` from TanStack Router, or `data-active`)
|
|
29
|
+
* foreground text plus a 2px accent indicator. In SiteNav the indicator sits on the header's bottom
|
|
30
|
+
* border (like line Tabs); elsewhere (the phone menu) the link is a sidebar row with a tint and the
|
|
31
|
+
* indicator on its left edge.
|
|
32
|
+
*/
|
|
33
|
+
declare function SiteNavLink({ className, render, ...props }: useRender.ComponentProps<"a">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
34
|
+
/** Right side of the header row: search, theme, repository links. */
|
|
35
|
+
declare function SiteHeaderActions({ className, render, ...props }: useRender.ComponentProps<"div">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
36
|
+
interface SiteHeaderMenuProps extends Omit<React.ComponentProps<typeof Sheet>, "children"> {
|
|
37
|
+
children?: React.ReactNode;
|
|
38
|
+
/** Sheet title (also the accessible name). */
|
|
39
|
+
title?: React.ReactNode;
|
|
40
|
+
className?: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Phone navigation: a menu button (hidden from `md`) opening a left sheet with the nav and the page's
|
|
44
|
+
* sidebar. Control `open` to close it on navigation.
|
|
45
|
+
*/
|
|
46
|
+
declare function SiteHeaderMenu({ title, children, className, ...props }: SiteHeaderMenuProps): React.JSX.Element;
|
|
47
|
+
export { SiteHeader, SiteHeaderActions, SiteHeaderBrand, SiteHeaderContent, SiteHeaderMenu, SiteNav, SiteNavLink };
|
|
48
|
+
//# sourceMappingURL=site-header.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"site-header.d.ts","sourceRoot":"","sources":["../../src/components/site-header.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAC,SAAS,EAAC,MAAM,2BAA2B,CAAC;AAEpD,OAAO,EAAC,KAAK,EAAsD,MAAM,qCAAqC,CAAC;AAI/G,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC;;;;;;;;;;;;;;GAcG;AACH,iBAAS,UAAU,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,0EAepF;AAED,qFAAqF;AACrF,iBAAS,iBAAiB,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,0EAexF;AAED,mEAAmE;AACnE,iBAAS,eAAe,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,0EAiBpF;AAED,kFAAkF;AAClF,iBAAS,OAAO,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,0EAU9E;AAED;;;;;;GAMG;AACH,iBAAS,WAAW,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,0EAsBhF;AAED,qEAAqE;AACrE,iBAAS,iBAAiB,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,0EAOxF;AAED,UAAU,mBAAoB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,KAAK,CAAC,EAAE,UAAU,CAAC;IACtF,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,8CAA8C;IAC9C,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,iBAAS,cAAc,CAAC,EAAC,KAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,mBAAmB,qBAoB3F;AAED,OAAO,EAAC,UAAU,EAAE,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAC,CAAC"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { mergeProps } from "@base-ui/react/merge-props";
|
|
4
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
5
|
+
import { Button } from "@repraze/kernelkit/components/button";
|
|
6
|
+
import { Sheet, SheetContent, SheetHeader, SheetTitle, SheetTrigger } from "@repraze/kernelkit/components/sheet";
|
|
7
|
+
import { focusRing } from "@repraze/kernelkit/lib/recipes";
|
|
8
|
+
import { cn } from "cn";
|
|
9
|
+
import { MenuIcon } from "lucide-react";
|
|
10
|
+
/**
|
|
11
|
+
* The suite's site header: sticky, blurred, one row of `--kk-header-height` inside a `--kk-site-width`
|
|
12
|
+
* container. Brand, then mono nav links (current page underlined in the accent), then actions.
|
|
13
|
+
*
|
|
14
|
+
* ```tsx
|
|
15
|
+
* <SiteHeader>
|
|
16
|
+
* <SiteHeaderContent>
|
|
17
|
+
* <SiteHeaderMenu title="termicolor">…mobile nav…</SiteHeaderMenu>
|
|
18
|
+
* <SiteHeaderBrand render={<Link to="/" />}>…</SiteHeaderBrand>
|
|
19
|
+
* <SiteNav><SiteNavLink render={<Link to="/ports" />}>Ports</SiteNavLink></SiteNav>
|
|
20
|
+
* <SiteHeaderActions>…search, theme, github…</SiteHeaderActions>
|
|
21
|
+
* </SiteHeaderContent>
|
|
22
|
+
* </SiteHeader>
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
function SiteHeader({ className, render, ...props }) {
|
|
26
|
+
return useRender({
|
|
27
|
+
defaultTagName: "header",
|
|
28
|
+
props: mergeProps({
|
|
29
|
+
className: cn("sticky top-0 z-40 w-full border-b border-border bg-background/85 text-foreground backdrop-blur supports-backdrop-filter:bg-background/70", className),
|
|
30
|
+
}, props),
|
|
31
|
+
render,
|
|
32
|
+
state: { slot: "site-header" },
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
/** The header row: centered at the site width, the same gutters as SiteContainer. */
|
|
36
|
+
function SiteHeaderContent({ className, render, ...props }) {
|
|
37
|
+
return useRender({
|
|
38
|
+
defaultTagName: "div",
|
|
39
|
+
props: mergeProps({
|
|
40
|
+
className: cn("mx-auto flex h-14 w-full max-w-(--kk-site-width) items-center gap-4 px-4 md:gap-6 md:px-6", className),
|
|
41
|
+
}, props),
|
|
42
|
+
render,
|
|
43
|
+
state: { slot: "site-header-content" },
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
/** Logo + name, links home. Pass the router link with `render`. */
|
|
47
|
+
function SiteHeaderBrand({ className, render, ...props }) {
|
|
48
|
+
return useRender({
|
|
49
|
+
defaultTagName: "a",
|
|
50
|
+
props: mergeProps({
|
|
51
|
+
className: cn("flex shrink-0 items-center gap-2 rounded-md font-mono text-sm font-semibold tracking-tight", focusRing, "[&_svg]:shrink-0", className),
|
|
52
|
+
}, props),
|
|
53
|
+
render,
|
|
54
|
+
state: { slot: "site-header-brand" },
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
/** Primary navigation (desktop). On phones the links move into SiteHeaderMenu. */
|
|
58
|
+
function SiteNav({ className, render, ...props }) {
|
|
59
|
+
return useRender({
|
|
60
|
+
defaultTagName: "nav",
|
|
61
|
+
props: mergeProps({ "aria-label": "Main", className: cn("hidden items-center gap-1 md:flex", className) }, props),
|
|
62
|
+
render,
|
|
63
|
+
state: { slot: "site-nav" },
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* A nav link, styled like the suite's other navigation (GUIDELINES §7c): muted at rest, a hover wash,
|
|
68
|
+
* and when current (`aria-current="page"`, `data-status="active"` from TanStack Router, or `data-active`)
|
|
69
|
+
* foreground text plus a 2px accent indicator. In SiteNav the indicator sits on the header's bottom
|
|
70
|
+
* border (like line Tabs); elsewhere (the phone menu) the link is a sidebar row with a tint and the
|
|
71
|
+
* indicator on its left edge.
|
|
72
|
+
*/
|
|
73
|
+
function SiteNavLink({ className, render, ...props }) {
|
|
74
|
+
return useRender({
|
|
75
|
+
defaultTagName: "a",
|
|
76
|
+
props: mergeProps({
|
|
77
|
+
className: cn("relative flex h-8 items-center rounded-md px-2.5 font-mono text-sm text-muted-foreground transition-colors hover:bg-hover hover:text-foreground motion-reduce:transition-none", focusRing,
|
|
78
|
+
// indicator: vertical by default, on the header border inside SiteNav
|
|
79
|
+
"after:pointer-events-none after:absolute after:top-1.5 after:bottom-1.5 after:left-0 after:w-0.5 after:rounded-pill after:bg-primary-text after:opacity-0", "in-data-[slot=site-nav]:after:top-auto in-data-[slot=site-nav]:after:right-2.5 in-data-[slot=site-nav]:after:-bottom-[calc(0.75rem+1px)] in-data-[slot=site-nav]:after:left-2.5 in-data-[slot=site-nav]:after:h-0.5 in-data-[slot=site-nav]:after:w-auto", "aria-[current=page]:text-foreground aria-[current=page]:after:opacity-100 data-[status=active]:text-foreground data-[status=active]:after:opacity-100 data-active:text-foreground data-active:after:opacity-100",
|
|
80
|
+
// outside the header row: the sidebar's current-row tint
|
|
81
|
+
"not-in-data-[slot=site-nav]:aria-[current=page]:bg-primary-tint not-in-data-[slot=site-nav]:data-[status=active]:bg-primary-tint not-in-data-[slot=site-nav]:data-active:bg-primary-tint", className),
|
|
82
|
+
}, props),
|
|
83
|
+
render,
|
|
84
|
+
state: { slot: "site-nav-link" },
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
/** Right side of the header row: search, theme, repository links. */
|
|
88
|
+
function SiteHeaderActions({ className, render, ...props }) {
|
|
89
|
+
return useRender({
|
|
90
|
+
defaultTagName: "div",
|
|
91
|
+
props: mergeProps({ className: cn("ml-auto flex items-center gap-1", className) }, props),
|
|
92
|
+
render,
|
|
93
|
+
state: { slot: "site-header-actions" },
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Phone navigation: a menu button (hidden from `md`) opening a left sheet with the nav and the page's
|
|
98
|
+
* sidebar. Control `open` to close it on navigation.
|
|
99
|
+
*/
|
|
100
|
+
function SiteHeaderMenu({ title = "Menu", children, className, ...props }) {
|
|
101
|
+
return (_jsxs(Sheet, { ...props, children: [_jsx(SheetTrigger, { render: _jsx(Button, { variant: "ghost", size: "icon-sm", className: "-ml-1.5 md:hidden", "aria-label": "Menu" }), children: _jsx(MenuIcon, {}) }), _jsxs(SheetContent, { side: "left", "data-slot": "site-header-menu", className: cn("w-72 gap-0 overflow-y-auto overscroll-contain p-0", className), children: [_jsx(SheetHeader, { className: "border-b border-border", children: _jsx(SheetTitle, { className: "flex items-center gap-2", children: title }) }), _jsx("div", { className: "flex flex-col gap-4 p-2", children: children })] })] }));
|
|
102
|
+
}
|
|
103
|
+
export { SiteHeader, SiteHeaderActions, SiteHeaderBrand, SiteHeaderContent, SiteHeaderMenu, SiteNav, SiteNavLink };
|
|
104
|
+
//# sourceMappingURL=site-header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"site-header.js","sourceRoot":"","sources":["../../src/components/site-header.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
/**
|
|
4
|
+
* The suite's page layout, under SiteHeader:
|
|
5
|
+
*
|
|
6
|
+
* ```tsx
|
|
7
|
+
* <SiteLayout>
|
|
8
|
+
* <SiteSidebar aria-label="Docs">…SidebarGroup / SidebarMenu…</SiteSidebar>
|
|
9
|
+
* <SiteMain>…PageHeader, content, Pager…</SiteMain>
|
|
10
|
+
* <SiteAside><Toc>…</Toc></SiteAside>
|
|
11
|
+
* </SiteLayout>
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* Sidebars are sticky below the header and scroll on their own with edge fades. Content pages without
|
|
15
|
+
* a sidebar use SiteContainer.
|
|
16
|
+
*/
|
|
17
|
+
/** Centered at `--kk-site-width` with the header's gutters. */
|
|
18
|
+
declare function SiteContainer({ className, render, ...props }: useRender.ComponentProps<"div">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
19
|
+
/** Sidebar + main (+ aside) row inside the site container. */
|
|
20
|
+
declare function SiteLayout({ className, render, ...props }: useRender.ComponentProps<"div">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
21
|
+
interface SiteSidebarProps extends React.ComponentProps<"aside"> {
|
|
22
|
+
/** Classes for the scrolling viewport (padding, etc.). */
|
|
23
|
+
viewportClassName?: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Left navigation column (from `md`): sticky, scrolls on its own, fades at its edges, and keeps the
|
|
27
|
+
* current item in view. Its right border runs the layout's full height, header to footer.
|
|
28
|
+
*/
|
|
29
|
+
declare function SiteSidebar({ className, viewportClassName, children, ...props }: SiteSidebarProps): React.JSX.Element;
|
|
30
|
+
/** The page column. */
|
|
31
|
+
declare function SiteMain({ className, render, ...props }: useRender.ComponentProps<"main">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
32
|
+
/** Right column (from `xl`): table of contents, page meta. Sticky like the sidebar. */
|
|
33
|
+
declare function SiteAside({ className, children, ...props }: React.ComponentProps<"aside">): React.JSX.Element;
|
|
34
|
+
export { SiteAside, SiteContainer, SiteLayout, SiteMain, SiteSidebar };
|
|
35
|
+
//# sourceMappingURL=site-layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"site-layout.d.ts","sourceRoot":"","sources":["../../src/components/site-layout.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAC,SAAS,EAAC,MAAM,2BAA2B,CAAC;AAGpD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;;;;;;;;;;;GAaG;AAEH,+DAA+D;AAC/D,iBAAS,aAAa,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,0EAUpF;AAED,8DAA8D;AAC9D,iBAAS,UAAU,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,0EAejF;AAOD,UAAU,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC;IAC5D,0DAA0D;IAC1D,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAkCD;;;GAGG;AACH,iBAAS,WAAW,CAAC,EAAC,SAAS,EAAE,iBAAiB,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAC,EAAE,gBAAgB,qBAsBxF;AAED,uBAAuB;AACvB,iBAAS,QAAQ,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,0EAUhF;AAED,uFAAuF;AACvF,iBAAS,SAAS,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,qBAMhF;AAED,OAAO,EAAC,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAC,CAAC"}
|