@repraze/kernelkit 0.0.0-stage → 0.1.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +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 +36 -0
- package/dist/components/carousel.d.ts.map +1 -0
- package/dist/components/carousel.js +148 -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 +51 -0
- package/dist/components/hero.d.ts.map +1 -0
- package/dist/components/hero.js +104 -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 +329 -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 +207 -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,20 @@
|
|
|
1
|
+
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "@repraze/kernelkit/components/collapsible";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
declare function Trace({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
4
|
+
declare function TraceLine({ className, status, ...props }: React.ComponentProps<"span"> & {
|
|
5
|
+
/** `running` shimmers the title, `error` turns the line danger, `pending` dims it. Omit when done. */
|
|
6
|
+
status?: "running" | "error" | "pending";
|
|
7
|
+
}): React.JSX.Element;
|
|
8
|
+
declare function TraceIcon({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
|
|
9
|
+
declare function TraceTitle({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
|
|
10
|
+
declare function TraceDescription({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
|
|
11
|
+
declare function TraceCollapsible({ className, ...props }: Omit<React.ComponentProps<typeof Collapsible>, "open"> & ({
|
|
12
|
+
open?: undefined;
|
|
13
|
+
} | {
|
|
14
|
+
open: boolean;
|
|
15
|
+
onOpenChange: NonNullable<React.ComponentProps<typeof Collapsible>["onOpenChange"]>;
|
|
16
|
+
})): React.JSX.Element;
|
|
17
|
+
declare function TraceCollapsibleTrigger({ className, children, ...props }: React.ComponentProps<typeof CollapsibleTrigger>): React.JSX.Element;
|
|
18
|
+
declare function TraceCollapsibleContent({ className, children, ...props }: React.ComponentProps<typeof CollapsibleContent>): React.JSX.Element;
|
|
19
|
+
export { Trace, TraceCollapsible, TraceCollapsibleContent, TraceCollapsibleTrigger, TraceDescription, TraceIcon, TraceLine, TraceTitle, };
|
|
20
|
+
//# sourceMappingURL=trace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../src/components/trace.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAC,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAC,MAAM,2CAA2C,CAAC;AAG9G,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,iBAAS,KAAK,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAWhE;AAED,iBAAS,SAAS,CAAC,EACf,SAAS,EACT,MAAM,EACN,GAAG,KAAK,EACX,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG;IAC9B,sGAAsG;IACtG,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;CAC5C,qBAYA;AAED,iBAAS,SAAS,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,qBAYrE;AAED,iBAAS,UAAU,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,qBAQtE;AAED,iBAAS,gBAAgB,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,qBAQ5E;AAED,iBAAS,gBAAgB,CAAC,EACtB,SAAS,EACT,GAAG,KAAK,EACX,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,WAAW,CAAC,EAAE,MAAM,CAAC,GACrD,CACM;IAAC,IAAI,CAAC,EAAE,SAAS,CAAA;CAAC,GAClB;IACI,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,WAAW,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;CACvF,CACN,qBAQJ;AAED,iBAAS,uBAAuB,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,qBAgBhH;AAED,iBAAS,uBAAuB,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,qBAkBhH;AAED,OAAO,EACH,KAAK,EACL,gBAAgB,EAChB,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,UAAU,GACb,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "@repraze/kernelkit/components/collapsible";
|
|
4
|
+
import { cn } from "cn";
|
|
5
|
+
import { ChevronRightIcon } from "lucide-react";
|
|
6
|
+
import * as React from "react";
|
|
7
|
+
function Trace({ className, ...props }) {
|
|
8
|
+
return (_jsx("div", { "data-slot": "trace", className: cn("flex w-full min-w-0 flex-col gap-2 *:has-[>[data-slot=trace-line]]:flex *:has-[>[data-slot=trace-line]]:w-fit *:has-[>[data-slot=trace-line]]:max-w-full *:has-[>[data-slot=trace-line]]:min-w-0 *:has-[>[data-slot=trace-line]]:rounded-md *:has-[>[data-slot=trace-line]]:text-left *:has-[>[data-slot=trace-line]]:outline-none *:has-[>[data-slot=trace-line]]:focus-visible:ring-3 *:has-[>[data-slot=trace-line]]:focus-visible:ring-ring/50 *:has-[>[data-slot=trace-line]]:-mx-1 *:has-[>[data-slot=trace-line]]:px-1", className), ...props }));
|
|
9
|
+
}
|
|
10
|
+
function TraceLine({ className, status, ...props }) {
|
|
11
|
+
return (_jsx("span", { "data-slot": "trace-line", "data-status": status, className: cn("flex w-fit max-w-full min-w-0 items-center gap-2 text-sm text-muted-foreground transition-colors duration-100 in-[a,button]:cursor-pointer in-[a:hover,button:hover]:text-foreground data-[status=error]:text-danger data-[status=error]:in-[a:hover,button:hover]:text-danger data-[status=pending]:opacity-60 data-[status=running]:*:data-[slot=trace-title]:shimmer", className), ...props }));
|
|
12
|
+
}
|
|
13
|
+
function TraceIcon({ className, ...props }) {
|
|
14
|
+
return (_jsx("span", { "data-slot": "trace-icon", "aria-hidden": "true", className: cn("flex size-4 shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [[data-slot=trace-title]~&]:-ml-1", className), ...props }));
|
|
15
|
+
}
|
|
16
|
+
function TraceTitle({ className, ...props }) {
|
|
17
|
+
return (_jsx("span", { "data-slot": "trace-title", className: cn("min-w-0 truncate motion-reduce:shimmer-none", className), ...props }));
|
|
18
|
+
}
|
|
19
|
+
function TraceDescription({ className, ...props }) {
|
|
20
|
+
return (_jsx("span", { "data-slot": "trace-description", className: cn("shrink-0 font-mono text-xs text-muted-foreground tabular-nums", className), ...props }));
|
|
21
|
+
}
|
|
22
|
+
function TraceCollapsible({ className, ...props }) {
|
|
23
|
+
return (_jsx(Collapsible, { "data-slot": "trace-collapsible", className: cn("flex w-full min-w-0 flex-col", className), ...props }));
|
|
24
|
+
}
|
|
25
|
+
function TraceCollapsibleTrigger({ className, children, ...props }) {
|
|
26
|
+
return (_jsxs(CollapsibleTrigger, { "data-slot": "trace-collapsible-trigger", className: cn("group/trace-collapsible-trigger flex w-fit max-w-full min-w-0 cursor-pointer items-center gap-1 rounded-md text-left text-muted-foreground transition-colors duration-100 outline-none hover:text-foreground hover:underline underline-offset-4 focus-visible:ring-3 focus-visible:ring-ring/50 -mx-1 px-1 aria-expanded:text-foreground has-[[data-status=error]]:text-danger", className), ...props, children: [children, _jsx(TraceIcon, { className: "transition-transform group-aria-expanded/trace-collapsible-trigger:rotate-90", children: _jsx(ChevronRightIcon, {}) })] }));
|
|
27
|
+
}
|
|
28
|
+
function TraceCollapsibleContent({ className, children, ...props }) {
|
|
29
|
+
return (_jsx(CollapsibleContent, { "data-slot": "trace-collapsible-content", className: "h-(--collapsible-panel-height) min-w-0 overflow-hidden transition-[height] duration-150 data-ending-style:h-0 data-starting-style:h-0 motion-reduce:transition-none", ...props, children: _jsx("div", { "data-slot": "trace-collapsible-content-inner", className: cn("mt-2 mb-1 ml-[calc(--spacing(2)-1px)] min-w-0 border-l border-border pr-1 pl-4 text-sm leading-relaxed wrap-break-word text-muted-foreground", className), children: children }) }));
|
|
30
|
+
}
|
|
31
|
+
export { Trace, TraceCollapsible, TraceCollapsibleContent, TraceCollapsibleTrigger, TraceDescription, TraceIcon, TraceLine, TraceTitle, };
|
|
32
|
+
//# sourceMappingURL=trace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/components/trace.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAC,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAC,MAAM,2CAA2C,CAAC;AAC9G,OAAO,EAAC,EAAE,EAAC,MAAM,IAAI,CAAC;AACtB,OAAO,EAAC,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,SAAS,KAAK,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAA8B;IAC7D,OAAO,CACH,2BACc,OAAO,EACjB,SAAS,EAAE,EAAE,CACT,+fAA+f,EAC/f,SAAS,CACZ,KACG,KAAK,GACX,CACL,CAAC;AACN,CAAC;AAED,SAAS,SAAS,CAAC,EACf,SAAS,EACT,MAAM,EACN,GAAG,KAAK,EAIX;IACG,OAAO,CACH,4BACc,YAAY,iBACT,MAAM,EACnB,SAAS,EAAE,EAAE,CACT,yWAAyW,EACzW,SAAS,CACZ,KACG,KAAK,GACX,CACL,CAAC;AACN,CAAC;AAED,SAAS,SAAS,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAA+B;IAClE,OAAO,CACH,4BACc,YAAY,iBACV,MAAM,EAClB,SAAS,EAAE,EAAE,CACT,qJAAqJ,EACrJ,SAAS,CACZ,KACG,KAAK,GACX,CACL,CAAC;AACN,CAAC;AAED,SAAS,UAAU,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAA+B;IACnE,OAAO,CACH,4BACc,aAAa,EACvB,SAAS,EAAE,EAAE,CAAC,6CAA6C,EAAE,SAAS,CAAC,KACnE,KAAK,GACX,CACL,CAAC;AACN,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAA+B;IACzE,OAAO,CACH,4BACc,mBAAmB,EAC7B,SAAS,EAAE,EAAE,CAAC,+DAA+D,EAAE,SAAS,CAAC,KACrF,KAAK,GACX,CACL,CAAC;AACN,CAAC;AAED,SAAS,gBAAgB,CAAC,EACtB,SAAS,EACT,GAAG,KAAK,EAQP;IACD,OAAO,CACH,KAAC,WAAW,iBACE,mBAAmB,EAC7B,SAAS,EAAE,EAAE,CAAC,8BAA8B,EAAE,SAAS,CAAC,KACpD,KAAK,GACX,CACL,CAAC;AACN,CAAC;AAED,SAAS,uBAAuB,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAkD;IAC7G,OAAO,CACH,MAAC,kBAAkB,iBACL,2BAA2B,EACrC,SAAS,EAAE,EAAE,CACT,gXAAgX,EAChX,SAAS,CACZ,KACG,KAAK,aAER,QAAQ,EACT,KAAC,SAAS,IAAC,SAAS,EAAC,8EAA8E,YAC/F,KAAC,gBAAgB,KAAG,GACZ,IACK,CACxB,CAAC;AACN,CAAC;AAED,SAAS,uBAAuB,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAkD;IAC7G,OAAO,CACH,KAAC,kBAAkB,iBACL,2BAA2B,EACrC,SAAS,EAAC,qKAAqK,KAC3K,KAAK,YAET,2BACc,iCAAiC,EAC3C,SAAS,EAAE,EAAE,CACT,8IAA8I,EAC9I,SAAS,CACZ,YAEA,QAAQ,GACP,GACW,CACxB,CAAC;AACN,CAAC;AAED,OAAO,EACH,KAAK,EACL,gBAAgB,EAChB,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,UAAU,GACb,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
2
|
+
import { type VariantProps } from "class-variance-authority";
|
|
3
|
+
/**
|
|
4
|
+
* Prose primitives. Every part renders a sensible default tag and takes `render` to swap it
|
|
5
|
+
* (`<Title size={2} render={<h2 />}>`), so visual size and document outline stay independent.
|
|
6
|
+
*/
|
|
7
|
+
declare const titleVariants: (props?: ({
|
|
8
|
+
variant?: "title" | "subtitle" | null | undefined;
|
|
9
|
+
size?: 1 | 2 | 3 | 4 | 5 | 6 | null | undefined;
|
|
10
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
11
|
+
type TitleProps = useRender.ComponentProps<"p"> & VariantProps<typeof titleVariants>;
|
|
12
|
+
/** Heading text. `size` 1-6 is visual only: pick the element with `render` (`<h1 />`…). */
|
|
13
|
+
declare function Title({ className, variant, size, render, ...props }: TitleProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
14
|
+
/** Trailing `#` link for a heading: `<Title render={<h2 id="install" />}>Install <TitleAnchor href="#install" /></Title>`. */
|
|
15
|
+
declare function TitleAnchor({ className, render, children, ...props }: useRender.ComponentProps<"a">): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
16
|
+
/** Small heading for sidebars, tables of contents and aside panels. */
|
|
17
|
+
declare function AsideTitle({ className, render, ...props }: useRender.ComponentProps<"span">): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
18
|
+
/** Quiet inline link: muted until hovered. For links in running prose use `variant="prose"`. */
|
|
19
|
+
declare const textLinkVariants: (props?: ({
|
|
20
|
+
variant?: "muted" | "prose" | null | undefined;
|
|
21
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
22
|
+
declare function TextLink({ className, variant, render, ...props }: useRender.ComponentProps<"a"> & VariantProps<typeof textLinkVariants>): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
23
|
+
/** Body paragraph: `text-sm` reading size with relaxed leading. */
|
|
24
|
+
declare function Text({ className, render, ...props }: useRender.ComponentProps<"p">): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
25
|
+
/** Intro paragraph under a page title. */
|
|
26
|
+
declare function Lead({ className, render, ...props }: useRender.ComponentProps<"p">): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
27
|
+
/** Secondary text: captions, meta, hints. */
|
|
28
|
+
declare function Muted({ className, render, ...props }: useRender.ComponentProps<"p">): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
29
|
+
/** Inline code span inside prose. */
|
|
30
|
+
declare function InlineCode({ className, render, ...props }: useRender.ComponentProps<"code">): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
31
|
+
/** Quotation with a left rule. */
|
|
32
|
+
declare function Blockquote({ className, render, ...props }: useRender.ComponentProps<"blockquote">): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
33
|
+
/** Bulleted list (`render={<ol />}` + `className="list-decimal"` for numbered). */
|
|
34
|
+
declare function List({ className, render, ...props }: useRender.ComponentProps<"ul">): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
35
|
+
export { AsideTitle, Blockquote, InlineCode, Lead, List, Muted, Text, TextLink, textLinkVariants, Title, TitleAnchor, titleVariants, };
|
|
36
|
+
export type { TitleProps };
|
|
37
|
+
//# sourceMappingURL=typography.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typography.d.ts","sourceRoot":"","sources":["../../src/components/typography.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAC,SAAS,EAAC,MAAM,2BAA2B,CAAC;AAEpD,OAAO,EAAM,KAAK,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAIhE;;;GAGG;AAEH,QAAA,MAAM,aAAa;;;8EAgBjB,CAAC;AAEH,KAAK,UAAU,GAAG,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,CAAC;AAErF,2FAA2F;AAC3F,iBAAS,KAAK,CAAC,EAAC,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,UAAU,8FAOtE;AAED,8HAA8H;AAC9H,iBAAS,WAAW,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,8FAkB1F;AAED,uEAAuE;AACvE,iBAAS,UAAU,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,8FAelF;AAED,gGAAgG;AAChG,QAAA,MAAM,gBAAgB;;8EAQpB,CAAC;AAEH,iBAAS,QAAQ,CAAC,EACd,SAAS,EACT,OAAO,EACP,MAAM,EACN,GAAG,KAAK,EACX,EAAE,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,OAAO,gBAAgB,CAAC,8FAOvE;AAED,mEAAmE;AACnE,iBAAS,IAAI,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,8FAOzE;AAED,0CAA0C;AAC1C,iBAAS,IAAI,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,8FAUzE;AAED,6CAA6C;AAC7C,iBAAS,KAAK,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,8FAO1E;AAED,qCAAqC;AACrC,iBAAS,UAAU,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,8FAelF;AAED,kCAAkC;AAClC,iBAAS,UAAU,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,CAAC,cAAc,CAAC,YAAY,CAAC,8FAUxF;AAED,mFAAmF;AACnF,iBAAS,IAAI,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,8FAe1E;AAED,OAAO,EACH,UAAU,EACV,UAAU,EACV,UAAU,EACV,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,gBAAgB,EAChB,KAAK,EACL,WAAW,EACX,aAAa,GAChB,CAAC;AACF,YAAY,EAAC,UAAU,EAAC,CAAC"}
|
|
@@ -0,0 +1,140 @@
|
|
|
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 { cva } from "class-variance-authority";
|
|
7
|
+
import { cn } from "cn";
|
|
8
|
+
import { LinkIcon } from "lucide-react";
|
|
9
|
+
/**
|
|
10
|
+
* Prose primitives. Every part renders a sensible default tag and takes `render` to swap it
|
|
11
|
+
* (`<Title size={2} render={<h2 />}>`), so visual size and document outline stay independent.
|
|
12
|
+
*/
|
|
13
|
+
const titleVariants = cva("block leading-[1.125] text-balance wrap-break-word", {
|
|
14
|
+
variants: {
|
|
15
|
+
variant: {
|
|
16
|
+
title: "font-heading font-semibold text-foreground",
|
|
17
|
+
subtitle: "font-normal text-muted-foreground",
|
|
18
|
+
},
|
|
19
|
+
size: {
|
|
20
|
+
1: "text-4xl tracking-[-0.04em] md:text-5xl",
|
|
21
|
+
2: "text-[2rem] tracking-[-0.031em]",
|
|
22
|
+
3: "text-2xl tracking-[-0.025em]",
|
|
23
|
+
4: "text-[1.2rem] tracking-[-0.02em]",
|
|
24
|
+
5: "text-base tracking-[-0.01em]",
|
|
25
|
+
6: "text-sm",
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
defaultVariants: { variant: "title", size: 1 },
|
|
29
|
+
});
|
|
30
|
+
/** Heading text. `size` 1-6 is visual only: pick the element with `render` (`<h1 />`…). */
|
|
31
|
+
function Title({ className, variant, size, render, ...props }) {
|
|
32
|
+
return useRender({
|
|
33
|
+
defaultTagName: "p",
|
|
34
|
+
props: mergeProps({ className: cn(titleVariants({ variant, size }), className) }, props),
|
|
35
|
+
render,
|
|
36
|
+
state: { slot: "title", variant: variant ?? "title", size: size ?? 1 },
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
/** Trailing `#` link for a heading: `<Title render={<h2 id="install" />}>Install <TitleAnchor href="#install" /></Title>`. */
|
|
40
|
+
function TitleAnchor({ className, render, children, ...props }) {
|
|
41
|
+
return useRender({
|
|
42
|
+
defaultTagName: "a",
|
|
43
|
+
props: mergeProps({
|
|
44
|
+
"aria-label": "Link to this section",
|
|
45
|
+
className: cn("ml-2 inline-flex rounded-sm align-middle text-muted-foreground opacity-60 transition-[color,opacity,box-shadow] hover:text-foreground hover:opacity-100 focus-visible:opacity-100 [&_svg]:size-[0.5em]", focusRing, className),
|
|
46
|
+
children: children ?? _jsx(LinkIcon, { "aria-hidden": true }),
|
|
47
|
+
}, props),
|
|
48
|
+
render,
|
|
49
|
+
state: { slot: "title-anchor" },
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
/** Small heading for sidebars, tables of contents and aside panels. */
|
|
53
|
+
function AsideTitle({ className, render, ...props }) {
|
|
54
|
+
return useRender({
|
|
55
|
+
defaultTagName: "span",
|
|
56
|
+
props: mergeProps({
|
|
57
|
+
className: cn("mb-2 block py-2 font-heading text-sm leading-[1.125] font-semibold text-balance wrap-break-word", className),
|
|
58
|
+
}, props),
|
|
59
|
+
render,
|
|
60
|
+
state: { slot: "aside-title" },
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
/** Quiet inline link: muted until hovered. For links in running prose use `variant="prose"`. */
|
|
64
|
+
const textLinkVariants = cva(["rounded-xs transition-[color,box-shadow]", focusRing], {
|
|
65
|
+
variants: {
|
|
66
|
+
variant: {
|
|
67
|
+
muted: "text-muted-foreground hover:text-foreground",
|
|
68
|
+
prose: "font-medium text-primary-text underline underline-offset-4 hover:decoration-2",
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
defaultVariants: { variant: "muted" },
|
|
72
|
+
});
|
|
73
|
+
function TextLink({ className, variant, render, ...props }) {
|
|
74
|
+
return useRender({
|
|
75
|
+
defaultTagName: "a",
|
|
76
|
+
props: mergeProps({ className: cn(textLinkVariants({ variant }), className) }, props),
|
|
77
|
+
render,
|
|
78
|
+
state: { slot: "text-link" },
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
/** Body paragraph: `text-sm` reading size with relaxed leading. */
|
|
82
|
+
function Text({ className, render, ...props }) {
|
|
83
|
+
return useRender({
|
|
84
|
+
defaultTagName: "p",
|
|
85
|
+
props: mergeProps({ className: cn("text-sm leading-relaxed text-foreground", className) }, props),
|
|
86
|
+
render,
|
|
87
|
+
state: { slot: "text" },
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
/** Intro paragraph under a page title. */
|
|
91
|
+
function Lead({ className, render, ...props }) {
|
|
92
|
+
return useRender({
|
|
93
|
+
defaultTagName: "p",
|
|
94
|
+
props: mergeProps({ className: cn("text-base leading-relaxed text-pretty text-muted-foreground md:text-lg", className) }, props),
|
|
95
|
+
render,
|
|
96
|
+
state: { slot: "lead" },
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
/** Secondary text: captions, meta, hints. */
|
|
100
|
+
function Muted({ className, render, ...props }) {
|
|
101
|
+
return useRender({
|
|
102
|
+
defaultTagName: "p",
|
|
103
|
+
props: mergeProps({ className: cn("text-xs text-muted-foreground", className) }, props),
|
|
104
|
+
render,
|
|
105
|
+
state: { slot: "muted" },
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
/** Inline code span inside prose. */
|
|
109
|
+
function InlineCode({ className, render, ...props }) {
|
|
110
|
+
return useRender({
|
|
111
|
+
defaultTagName: "code",
|
|
112
|
+
props: mergeProps({
|
|
113
|
+
className: cn("rounded-sm border border-border bg-muted px-[0.3em] py-[0.1em] font-mono text-[0.875em] text-foreground", className),
|
|
114
|
+
}, props),
|
|
115
|
+
render,
|
|
116
|
+
state: { slot: "inline-code" },
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
/** Quotation with a left rule. */
|
|
120
|
+
function Blockquote({ className, render, ...props }) {
|
|
121
|
+
return useRender({
|
|
122
|
+
defaultTagName: "blockquote",
|
|
123
|
+
props: mergeProps({ className: cn("border-l-2 border-border pl-4 text-sm text-muted-foreground italic", className) }, props),
|
|
124
|
+
render,
|
|
125
|
+
state: { slot: "blockquote" },
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
/** Bulleted list (`render={<ol />}` + `className="list-decimal"` for numbered). */
|
|
129
|
+
function List({ className, render, ...props }) {
|
|
130
|
+
return useRender({
|
|
131
|
+
defaultTagName: "ul",
|
|
132
|
+
props: mergeProps({
|
|
133
|
+
className: cn("ml-5 flex list-disc flex-col gap-1 text-sm leading-relaxed marker:text-muted-foreground", className),
|
|
134
|
+
}, props),
|
|
135
|
+
render,
|
|
136
|
+
state: { slot: "list" },
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
export { AsideTitle, Blockquote, InlineCode, Lead, List, Muted, Text, TextLink, textLinkVariants, Title, TitleAnchor, titleVariants, };
|
|
140
|
+
//# sourceMappingURL=typography.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typography.js","sourceRoot":"","sources":["../../src/components/typography.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export declare function useHighlightedCode(value: string, language: string): (string | number | bigint | boolean | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | React.JSX.Element[] | null | undefined)[];
|
|
3
|
+
//# sourceMappingURL=use-highlighted-code.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-highlighted-code.d.ts","sourceRoot":"","sources":["../../src/hooks/use-highlighted-code.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kXAmEjE"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { loadHighlighter } from "@repraze/kernelkit/lib/highlighter";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
export function useHighlightedCode(value, language) {
|
|
4
|
+
// A trailing newline would render as an extra empty line.
|
|
5
|
+
const code = value.endsWith("\n") ? value.slice(0, -1) : value;
|
|
6
|
+
const [loaded, setLoaded] = React.useState(null);
|
|
7
|
+
const highlighter = loaded?.language === language ? loaded.highlighter : null;
|
|
8
|
+
React.useEffect(() => {
|
|
9
|
+
let cancelled = false;
|
|
10
|
+
loadHighlighter(language)
|
|
11
|
+
.then((next) => {
|
|
12
|
+
if (!cancelled) {
|
|
13
|
+
setLoaded({ language, highlighter: next });
|
|
14
|
+
}
|
|
15
|
+
})
|
|
16
|
+
.catch(() => { });
|
|
17
|
+
return () => {
|
|
18
|
+
cancelled = true;
|
|
19
|
+
};
|
|
20
|
+
}, [language]);
|
|
21
|
+
// The complete lines, highlighted. While the code streams, only the new
|
|
22
|
+
// lines are tokenized, starting from the grammar state of the last one.
|
|
23
|
+
const [done, setDone] = React.useState({ highlighter: null, text: "", lines: [] });
|
|
24
|
+
let next = done;
|
|
25
|
+
if (next.highlighter !== highlighter || !code.startsWith(next.text)) {
|
|
26
|
+
next = { highlighter, text: "", lines: [] };
|
|
27
|
+
}
|
|
28
|
+
const end = code.lastIndexOf("\n") + 1;
|
|
29
|
+
if (highlighter && end > next.text.length) {
|
|
30
|
+
const result = highlighter.highlight(code.slice(next.text.length, end - 1), next.state);
|
|
31
|
+
next = {
|
|
32
|
+
highlighter,
|
|
33
|
+
text: code.slice(0, end),
|
|
34
|
+
lines: [...next.lines, ...result.lines],
|
|
35
|
+
state: result.state,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
if (next !== done) {
|
|
39
|
+
setDone(next);
|
|
40
|
+
}
|
|
41
|
+
// The last line is still being written, so it is tokenized on every render.
|
|
42
|
+
const tail = code.slice(end);
|
|
43
|
+
return React.useMemo(() => {
|
|
44
|
+
if (!highlighter) {
|
|
45
|
+
return code.split("\n");
|
|
46
|
+
}
|
|
47
|
+
return [...next.lines, highlighter.highlight(tail, next.state).lines[0]];
|
|
48
|
+
}, [code, highlighter, next, tail]);
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=use-highlighted-code.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-highlighted-code.js","sourceRoot":"","sources":["../../src/hooks/use-highlighted-code.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-mobile.d.ts","sourceRoot":"","sources":["../../src/hooks/use-mobile.ts"],"names":[],"mappings":"AAIA,wBAAgB,WAAW,YAc1B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
const MOBILE_BREAKPOINT = 768;
|
|
3
|
+
export function useIsMobile() {
|
|
4
|
+
const [isMobile, setIsMobile] = React.useState(undefined);
|
|
5
|
+
React.useEffect(() => {
|
|
6
|
+
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
7
|
+
const onChange = () => {
|
|
8
|
+
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
9
|
+
};
|
|
10
|
+
mql.addEventListener("change", onChange);
|
|
11
|
+
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
12
|
+
return () => mql.removeEventListener("change", onChange);
|
|
13
|
+
}, []);
|
|
14
|
+
return !!isMobile;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=use-mobile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-mobile.js","sourceRoot":"","sources":["../../src/hooks/use-mobile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B,MAAM,UAAU,WAAW;IACvB,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAsB,SAAS,CAAC,CAAC;IAE/E,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,eAAe,iBAAiB,GAAG,CAAC,KAAK,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAG,GAAG,EAAE;YAClB,WAAW,CAAC,MAAM,CAAC,UAAU,GAAG,iBAAiB,CAAC,CAAC;QACvD,CAAC,CAAC;QACF,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACzC,WAAW,CAAC,MAAM,CAAC,UAAU,GAAG,iBAAiB,CAAC,CAAC;QACnD,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CAAC,CAAC,QAAQ,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The color axis (GUIDELINES.md §2). A color sets three local CSS variables; variants only read them:
|
|
3
|
+
*
|
|
4
|
+
* - `--c` the color, text tier: readable as text/icon/border on any surface
|
|
5
|
+
* - `--c-fg` text on a solid `--c` fill
|
|
6
|
+
* - `--c-tint` opaque wash behind foreground text
|
|
7
|
+
* - `--c-fill` / `--c-fill-fg` vivid solid surface and its text (TermiColor "fills are the brand":
|
|
8
|
+
* in light mode the text tier is darkened for contrast, the fill tier stays vivid)
|
|
9
|
+
*
|
|
10
|
+
* Spread `colorVariants` into a cva `variants.color` map, then write variants against the vars
|
|
11
|
+
* (`bg-(--c) text-(--c-fg)`, `bg-(--c)/12 text-(--c)`, …).
|
|
12
|
+
*/
|
|
13
|
+
export declare const STATUS_COLORS: readonly ["danger", "warning", "success", "info"];
|
|
14
|
+
export declare const HUES: readonly ["red", "orange", "yellow", "green", "cyan", "blue", "purple", "pink"];
|
|
15
|
+
export declare const COLORS: readonly ["neutral", "primary", "danger", "warning", "success", "info", "red", "orange", "yellow", "green", "cyan", "blue", "purple", "pink"];
|
|
16
|
+
export type Color = (typeof COLORS)[number];
|
|
17
|
+
export declare const colorVariants: Record<Color, string>;
|
|
18
|
+
/** Every color except neutral: the ones whose outline/ghost variants are tinted. */
|
|
19
|
+
export declare const TINTED_COLORS: ("danger" | "warning" | "success" | "info" | "red" | "orange" | "yellow" | "green" | "cyan" | "blue" | "purple" | "pink" | "primary")[];
|
|
20
|
+
/** Fill styles shared by Button, Badge, Toggle… (GUIDELINES.md §2). */
|
|
21
|
+
export declare const FILL_VARIANTS: readonly ["solid", "soft", "outline", "ghost", "link"];
|
|
22
|
+
export type FillVariant = (typeof FILL_VARIANTS)[number];
|
|
23
|
+
/** shadcn names kept for drop-in use. */
|
|
24
|
+
export type FillVariantAlias = "default" | "secondary" | "destructive";
|
|
25
|
+
/** Resolve aliases and the variant's default color. */
|
|
26
|
+
export declare function resolveFill(variant: FillVariant | FillVariantAlias | null | undefined, color: Color | null | undefined, fallback?: FillVariant): {
|
|
27
|
+
variant: FillVariant;
|
|
28
|
+
color: Color;
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=color.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../src/lib/color.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,aAAa,mDAAoD,CAAC;AAC/E,eAAO,MAAM,IAAI,iFAAkF,CAAC;AACpG,eAAO,MAAM,MAAM,+IAA6D,CAAC;AAEjF,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;AAG5C,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAmB/C,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,aAAa,yIAAwC,CAAC;AAEnE,uEAAuE;AACvE,eAAO,MAAM,aAAa,wDAAyD,CAAC;AACpF,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,yCAAyC;AACzC,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,CAAC;AAiBvE,uDAAuD;AACvD,wBAAgB,WAAW,CACvB,OAAO,EAAE,WAAW,GAAG,gBAAgB,GAAG,IAAI,GAAG,SAAS,EAC1D,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,EAC/B,QAAQ,GAAE,WAAqB,GAChC;IAAC,OAAO,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAC,CAItC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The color axis (GUIDELINES.md §2). A color sets three local CSS variables; variants only read them:
|
|
3
|
+
*
|
|
4
|
+
* - `--c` the color, text tier: readable as text/icon/border on any surface
|
|
5
|
+
* - `--c-fg` text on a solid `--c` fill
|
|
6
|
+
* - `--c-tint` opaque wash behind foreground text
|
|
7
|
+
* - `--c-fill` / `--c-fill-fg` vivid solid surface and its text (TermiColor "fills are the brand":
|
|
8
|
+
* in light mode the text tier is darkened for contrast, the fill tier stays vivid)
|
|
9
|
+
*
|
|
10
|
+
* Spread `colorVariants` into a cva `variants.color` map, then write variants against the vars
|
|
11
|
+
* (`bg-(--c) text-(--c-fg)`, `bg-(--c)/12 text-(--c)`, …).
|
|
12
|
+
*/
|
|
13
|
+
export const STATUS_COLORS = ["danger", "warning", "success", "info"];
|
|
14
|
+
export const HUES = ["red", "orange", "yellow", "green", "cyan", "blue", "purple", "pink"];
|
|
15
|
+
export const COLORS = ["neutral", "primary", ...STATUS_COLORS, ...HUES];
|
|
16
|
+
// Literal strings on purpose: Tailwind only generates classes it can read in the source.
|
|
17
|
+
export const colorVariants = {
|
|
18
|
+
neutral: "[--c:var(--foreground)] [--c-fg:var(--background)] [--c-tint:var(--secondary)] [--c-fill:var(--foreground)] [--c-fill-fg:var(--background)]",
|
|
19
|
+
primary: "[--c:var(--primary-text)] [--c-fg:var(--tc-on-accent)] [--c-tint:var(--accent)] [--c-fill:var(--primary)] [--c-fill-fg:var(--primary-foreground)]",
|
|
20
|
+
danger: "[--c:var(--danger)] [--c-fg:var(--danger-foreground)] [--c-tint:var(--danger-tint)] [--c-fill:var(--tc-red-fill)] [--c-fill-fg:var(--tc-red-on-fill)]",
|
|
21
|
+
warning: "[--c:var(--warning)] [--c-fg:var(--warning-foreground)] [--c-tint:var(--warning-tint)] [--c-fill:var(--tc-yellow-fill)] [--c-fill-fg:var(--tc-yellow-on-fill)]",
|
|
22
|
+
success: "[--c:var(--success)] [--c-fg:var(--success-foreground)] [--c-tint:var(--success-tint)] [--c-fill:var(--tc-green-fill)] [--c-fill-fg:var(--tc-green-on-fill)]",
|
|
23
|
+
info: "[--c:var(--info)] [--c-fg:var(--info-foreground)] [--c-tint:var(--info-tint)] [--c-fill:var(--tc-blue-fill)] [--c-fill-fg:var(--tc-blue-on-fill)]",
|
|
24
|
+
red: "[--c:var(--tc-red)] [--c-fg:var(--tc-red-on)] [--c-tint:var(--tc-red-tint)] [--c-fill:var(--tc-red-fill)] [--c-fill-fg:var(--tc-red-on-fill)]",
|
|
25
|
+
orange: "[--c:var(--tc-orange)] [--c-fg:var(--tc-orange-on)] [--c-tint:var(--tc-orange-tint)] [--c-fill:var(--tc-orange-fill)] [--c-fill-fg:var(--tc-orange-on-fill)]",
|
|
26
|
+
yellow: "[--c:var(--tc-yellow)] [--c-fg:var(--tc-yellow-on)] [--c-tint:var(--tc-yellow-tint)] [--c-fill:var(--tc-yellow-fill)] [--c-fill-fg:var(--tc-yellow-on-fill)]",
|
|
27
|
+
green: "[--c:var(--tc-green)] [--c-fg:var(--tc-green-on)] [--c-tint:var(--tc-green-tint)] [--c-fill:var(--tc-green-fill)] [--c-fill-fg:var(--tc-green-on-fill)]",
|
|
28
|
+
cyan: "[--c:var(--tc-cyan)] [--c-fg:var(--tc-cyan-on)] [--c-tint:var(--tc-cyan-tint)] [--c-fill:var(--tc-cyan-fill)] [--c-fill-fg:var(--tc-cyan-on-fill)]",
|
|
29
|
+
blue: "[--c:var(--tc-blue)] [--c-fg:var(--tc-blue-on)] [--c-tint:var(--tc-blue-tint)] [--c-fill:var(--tc-blue-fill)] [--c-fill-fg:var(--tc-blue-on-fill)]",
|
|
30
|
+
purple: "[--c:var(--tc-purple)] [--c-fg:var(--tc-purple-on)] [--c-tint:var(--tc-purple-tint)] [--c-fill:var(--tc-purple-fill)] [--c-fill-fg:var(--tc-purple-on-fill)]",
|
|
31
|
+
pink: "[--c:var(--tc-pink)] [--c-fg:var(--tc-pink-on)] [--c-tint:var(--tc-pink-tint)] [--c-fill:var(--tc-pink-fill)] [--c-fill-fg:var(--tc-pink-on-fill)]",
|
|
32
|
+
};
|
|
33
|
+
/** Every color except neutral: the ones whose outline/ghost variants are tinted. */
|
|
34
|
+
export const TINTED_COLORS = COLORS.filter((c) => c !== "neutral");
|
|
35
|
+
/** Fill styles shared by Button, Badge, Toggle… (GUIDELINES.md §2). */
|
|
36
|
+
export const FILL_VARIANTS = ["solid", "soft", "outline", "ghost", "link"];
|
|
37
|
+
const ALIASES = {
|
|
38
|
+
default: { variant: "solid" },
|
|
39
|
+
secondary: { variant: "solid", color: "neutral" },
|
|
40
|
+
destructive: { variant: "soft", color: "danger" },
|
|
41
|
+
};
|
|
42
|
+
/** Each variant's natural color when none is given: solid things are primary, chrome is neutral. */
|
|
43
|
+
const DEFAULT_COLOR = {
|
|
44
|
+
solid: "primary",
|
|
45
|
+
soft: "primary",
|
|
46
|
+
link: "primary",
|
|
47
|
+
outline: "neutral",
|
|
48
|
+
ghost: "neutral",
|
|
49
|
+
};
|
|
50
|
+
/** Resolve aliases and the variant's default color. */
|
|
51
|
+
export function resolveFill(variant, color, fallback = "solid") {
|
|
52
|
+
const alias = variant && variant in ALIASES ? ALIASES[variant] : undefined;
|
|
53
|
+
const v = alias?.variant ?? variant ?? fallback;
|
|
54
|
+
return { variant: v, color: color ?? alias?.color ?? DEFAULT_COLOR[v] };
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=color.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color.js","sourceRoot":"","sources":["../../src/lib/color.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAU,CAAC;AAC/E,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;AACpG,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,aAAa,EAAE,GAAG,IAAI,CAAU,CAAC;AAIjF,yFAAyF;AACzF,MAAM,CAAC,MAAM,aAAa,GAA0B;IAChD,OAAO,EACH,6IAA6I;IACjJ,OAAO,EACH,mJAAmJ;IACvJ,MAAM,EAAE,uJAAuJ;IAC/J,OAAO,EACH,gKAAgK;IACpK,OAAO,EACH,8JAA8J;IAClK,IAAI,EAAE,mJAAmJ;IACzJ,GAAG,EAAE,+IAA+I;IACpJ,MAAM,EAAE,8JAA8J;IACtK,MAAM,EAAE,8JAA8J;IACtK,KAAK,EAAE,yJAAyJ;IAChK,IAAI,EAAE,oJAAoJ;IAC1J,IAAI,EAAE,oJAAoJ;IAC1J,MAAM,EAAE,8JAA8J;IACtK,IAAI,EAAE,oJAAoJ;CAC7J,CAAC;AAEF,oFAAoF;AACpF,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;AAEnE,uEAAuE;AACvE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAU,CAAC;AAMpF,MAAM,OAAO,GAAoE;IAC7E,OAAO,EAAE,EAAC,OAAO,EAAE,OAAO,EAAC;IAC3B,SAAS,EAAE,EAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAC;IAC/C,WAAW,EAAE,EAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAC;CAClD,CAAC;AAEF,oGAAoG;AACpG,MAAM,aAAa,GAA+B;IAC9C,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,SAAS;CACnB,CAAC;AAEF,uDAAuD;AACvD,MAAM,UAAU,WAAW,CACvB,OAA0D,EAC1D,KAA+B,EAC/B,WAAwB,OAAO;IAE/B,MAAM,KAAK,GAAG,OAAO,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAA2B,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/F,MAAM,CAAC,GAAG,KAAK,EAAE,OAAO,IAAK,OAA0C,IAAI,QAAQ,CAAC;IACpF,OAAO,EAAC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,KAAK,EAAE,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC,EAAC,CAAC;AAC1E,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { type GrammarState } from "shiki/core";
|
|
3
|
+
export declare function loadHighlighter(language: string): Promise<{
|
|
4
|
+
highlight(code: string, state?: GrammarState): {
|
|
5
|
+
lines: React.JSX.Element[][];
|
|
6
|
+
state: GrammarState | undefined;
|
|
7
|
+
};
|
|
8
|
+
} | null>;
|
|
9
|
+
export declare function highlightCode(code: string, language: string): Promise<React.JSX.Element[][] | null>;
|
|
10
|
+
//# sourceMappingURL=highlighter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"highlighter.d.ts","sourceRoot":"","sources":["../../src/lib/highlighter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAwB,KAAK,YAAY,EAAuB,MAAM,YAAY,CAAC;AAiE1F,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM;oBAgB9B,MAAM,UAAU,YAAY;;;;UA+BnD;AAGD,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,yCAIjE"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { createHighlighterCore } from "shiki/core";
|
|
4
|
+
import { createCssVariablesTheme } from "shiki/core";
|
|
5
|
+
import { createJavaScriptRegexEngine } from "shiki/engine/javascript";
|
|
6
|
+
// Token colors are CSS variables (--kk-code-*), mapped to TermiColor syntax roles in kernelkit.css,
|
|
7
|
+
// so highlighted code follows mode, contrast and scopes without re-highlighting.
|
|
8
|
+
const kernelkitTheme = createCssVariablesTheme({ name: "kernelkit", variablePrefix: "--kk-code-", fontStyle: true });
|
|
9
|
+
// Add the languages you need. Each one loads the first time it is used.
|
|
10
|
+
const languages = {
|
|
11
|
+
bash: () => import("shiki/langs/shellscript.mjs"),
|
|
12
|
+
css: () => import("shiki/langs/css.mjs"),
|
|
13
|
+
diff: () => import("shiki/langs/diff.mjs"),
|
|
14
|
+
html: () => import("shiki/langs/html.mjs"),
|
|
15
|
+
javascript: () => import("shiki/langs/javascript.mjs"),
|
|
16
|
+
json: () => import("shiki/langs/json.mjs"),
|
|
17
|
+
jsx: () => import("shiki/langs/jsx.mjs"),
|
|
18
|
+
markdown: () => import("shiki/langs/markdown.mjs"),
|
|
19
|
+
python: () => import("shiki/langs/python.mjs"),
|
|
20
|
+
sql: () => import("shiki/langs/sql.mjs"),
|
|
21
|
+
tsx: () => import("shiki/langs/tsx.mjs"),
|
|
22
|
+
typescript: () => import("shiki/langs/typescript.mjs"),
|
|
23
|
+
yaml: () => import("shiki/langs/yaml.mjs"),
|
|
24
|
+
};
|
|
25
|
+
const aliases = {
|
|
26
|
+
js: "javascript",
|
|
27
|
+
md: "markdown",
|
|
28
|
+
py: "python",
|
|
29
|
+
sh: "bash",
|
|
30
|
+
shell: "bash",
|
|
31
|
+
shellscript: "bash",
|
|
32
|
+
ts: "typescript",
|
|
33
|
+
yml: "yaml",
|
|
34
|
+
zsh: "bash",
|
|
35
|
+
};
|
|
36
|
+
let highlighter;
|
|
37
|
+
function getHighlighter() {
|
|
38
|
+
highlighter ??= createHighlighterCore({
|
|
39
|
+
themes: [kernelkitTheme],
|
|
40
|
+
langs: [],
|
|
41
|
+
engine: createJavaScriptRegexEngine({ forgiving: true }),
|
|
42
|
+
});
|
|
43
|
+
return highlighter;
|
|
44
|
+
}
|
|
45
|
+
function getLanguage(language) {
|
|
46
|
+
const name = language.toLowerCase();
|
|
47
|
+
if (name === "ansi") {
|
|
48
|
+
return name;
|
|
49
|
+
}
|
|
50
|
+
if (name in languages) {
|
|
51
|
+
return name;
|
|
52
|
+
}
|
|
53
|
+
return aliases[name] ?? null;
|
|
54
|
+
}
|
|
55
|
+
// Loads a language and returns a highlighter for it, or null for a language
|
|
56
|
+
// that is not listed.
|
|
57
|
+
export async function loadHighlighter(language) {
|
|
58
|
+
const lang = getLanguage(language);
|
|
59
|
+
if (!lang) {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
const shiki = await getHighlighter();
|
|
63
|
+
if (lang !== "ansi" && !shiki.getLoadedLanguages().includes(lang)) {
|
|
64
|
+
await shiki.loadLanguage(languages[lang]);
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
// Returns one React node per line, and the grammar state after the last
|
|
68
|
+
// line. Pass that state back to continue where the code left off.
|
|
69
|
+
highlight(code, state) {
|
|
70
|
+
const tokenize = (text) => shiki.codeToTokens(text, {
|
|
71
|
+
lang,
|
|
72
|
+
theme: "kernelkit",
|
|
73
|
+
grammarState: state,
|
|
74
|
+
}).tokens;
|
|
75
|
+
// ANSI has no grammar state, so each line is tokenized on its own and
|
|
76
|
+
// gets the same colors whether it arrives in one piece or streams.
|
|
77
|
+
const tokens = lang === "ansi" ? code.split("\n").flatMap((line) => tokenize(line)) : tokenize(code);
|
|
78
|
+
return {
|
|
79
|
+
lines: tokens.map((line) => line.map((token, index) => (_jsx("span", { style: {
|
|
80
|
+
color: token.color,
|
|
81
|
+
fontStyle: token.fontStyle && token.fontStyle & 1 ? "italic" : undefined,
|
|
82
|
+
fontWeight: token.fontStyle && token.fontStyle & 2 ? "bold" : undefined,
|
|
83
|
+
}, children: token.content }, index)))),
|
|
84
|
+
state: shiki.getLastGrammarState(tokens),
|
|
85
|
+
};
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
// Returns one React node per line, or null for a language that is not listed.
|
|
90
|
+
export async function highlightCode(code, language) {
|
|
91
|
+
const highlighter = await loadHighlighter(language);
|
|
92
|
+
return highlighter ? highlighter.highlight(code).lines : null;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=highlighter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"highlighter.js","sourceRoot":"","sources":["../../src/lib/highlighter.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared class recipes (GUIDELINES.md §3-§6). Components compose these so every control family
|
|
3
|
+
* shares one focus ring, one field surface, one popup surface and one list-item look. Plain strings:
|
|
4
|
+
* `cn()` can still override any part from `className`.
|
|
5
|
+
*/
|
|
6
|
+
/** Keyboard focus ring for standalone controls (§6). */
|
|
7
|
+
export declare const focusRing = "outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50";
|
|
8
|
+
/** aria-invalid look for controls (§6). */
|
|
9
|
+
export declare const invalidRing = "aria-invalid:border-danger aria-invalid:ring-3 aria-invalid:ring-danger/20 dark:aria-invalid:ring-danger/40";
|
|
10
|
+
/** Text-entry surface: input, textarea, select trigger, input-group, combobox chips (§4, §6). */
|
|
11
|
+
export declare const fieldSurface = "rounded-lg border border-input bg-field transition-[color,background-color,border-color,box-shadow] placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:bg-field-disabled disabled:opacity-50";
|
|
12
|
+
/** Floating panel: popover, menus, select/combobox list, hover card (§1, §3). */
|
|
13
|
+
export declare const popupSurface = "rounded-lg border border-border bg-popover text-popover-foreground shadow-lg shadow-(color:--shadow-color)";
|
|
14
|
+
/** Popup open/close motion (§6). */
|
|
15
|
+
export declare const popupMotion = "origin-(--transform-origin) duration-100 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 motion-reduce:animate-none";
|
|
16
|
+
/** Row inside a popup or list: menu item, select item, command item (§4, §6). */
|
|
17
|
+
export declare const listItem = "relative flex min-h-8 cursor-default items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-highlighted:[&_svg:not([class*='text-'])]:text-accent-foreground";
|
|
18
|
+
/** Group label inside a popup or list. */
|
|
19
|
+
export declare const listLabel = "px-2 py-1.5 text-xs font-medium text-muted-foreground";
|
|
20
|
+
/** Separator inside a popup or list. */
|
|
21
|
+
export declare const listSeparator = "-mx-1 my-1 h-px bg-border";
|
|
22
|
+
/** Modal backdrop for dialog, alert dialog, sheet, drawer. */
|
|
23
|
+
export declare const backdrop = "fixed inset-0 isolate z-50 bg-black/40 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0";
|
|
24
|
+
/** Title in cards, dialogs, sheets, popovers, empty states, alerts (§5). */
|
|
25
|
+
export declare const heading = "font-heading font-medium tracking-tight";
|
|
26
|
+
/** Empty track / placeholder: progress & meter tracks, skeletons, unlit segments. bg-muted vanishes on cards. */
|
|
27
|
+
export declare const placeholderFill = "bg-foreground/10 hc:bg-border";
|
|
28
|
+
/** Selected row (table, data table, code line, list): accent tint + 2px inset primary indicator (§6). */
|
|
29
|
+
export declare const selectedRow = "bg-accent text-accent-foreground shadow-[inset_2px_0_0_var(--primary-text)]";
|
|
30
|
+
//# sourceMappingURL=recipes.d.ts.map
|