@archytechtor/ui 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +105 -2
- package/dist/components/accordion/accordion.d.ts +25 -0
- package/dist/components/accordion/accordion.js +88 -0
- package/dist/components/accordion/index.d.ts +3 -0
- package/dist/components/accordion/index.js +1 -0
- package/dist/components/accordion/types.d.ts +39 -0
- package/dist/components/alert/alert.d.ts +25 -0
- package/dist/components/alert/alert.js +59 -0
- package/dist/components/alert/index.d.ts +3 -0
- package/dist/components/alert/index.js +3 -0
- package/dist/components/alert/types.d.ts +32 -0
- package/dist/components/alert/types.js +19 -0
- package/dist/components/alert-dialog/alert-dialog.d.ts +73 -0
- package/dist/components/alert-dialog/alert-dialog.js +170 -0
- package/dist/components/alert-dialog/index.d.ts +3 -0
- package/dist/components/alert-dialog/index.js +1 -0
- package/dist/components/alert-dialog/types.d.ts +80 -0
- package/dist/components/aspect-ratio/aspect-ratio.d.ts +8 -0
- package/dist/components/aspect-ratio/aspect-ratio.js +20 -0
- package/dist/components/aspect-ratio/index.d.ts +3 -0
- package/dist/components/aspect-ratio/index.js +1 -0
- package/dist/components/aspect-ratio/types.d.ts +8 -0
- package/dist/components/attachment/attachment.d.ts +57 -0
- package/dist/components/attachment/attachment.js +139 -0
- package/dist/components/attachment/index.d.ts +3 -0
- package/dist/components/attachment/index.js +3 -0
- package/dist/components/attachment/types.d.ts +79 -0
- package/dist/components/attachment/types.js +43 -0
- package/dist/components/avatar/avatar.d.ts +39 -0
- package/dist/components/avatar/avatar.js +88 -0
- package/dist/components/avatar/index.d.ts +3 -0
- package/dist/components/avatar/index.js +3 -0
- package/dist/components/avatar/types.d.ts +54 -0
- package/dist/components/avatar/types.js +21 -0
- package/dist/components/badge/badge.d.ts +7 -0
- package/dist/components/badge/badge.js +23 -0
- package/dist/components/badge/index.d.ts +3 -0
- package/dist/components/badge/index.js +3 -0
- package/dist/components/badge/types.d.ts +21 -0
- package/dist/components/badge/types.js +26 -0
- package/dist/components/breadcrumb/breadcrumb.d.ts +43 -0
- package/dist/components/breadcrumb/breadcrumb.js +115 -0
- package/dist/components/breadcrumb/index.d.ts +3 -0
- package/dist/components/breadcrumb/index.js +1 -0
- package/dist/components/breadcrumb/types.d.ts +36 -0
- package/dist/components/bubble/bubble.d.ts +25 -0
- package/dist/components/bubble/bubble.js +69 -0
- package/dist/components/bubble/index.d.ts +3 -0
- package/dist/components/bubble/index.js +3 -0
- package/dist/components/bubble/types.d.ts +51 -0
- package/dist/components/bubble/types.js +60 -0
- package/dist/components/button/button.d.ts +7 -0
- package/dist/components/button/button.js +155 -0
- package/dist/components/button/index.d.ts +4 -0
- package/dist/components/button/index.js +4 -0
- package/dist/components/button/types.d.ts +80 -0
- package/dist/components/button/types.js +99 -0
- package/dist/components/button/use-hold-to-confirm.d.ts +25 -0
- package/dist/components/button/use-hold-to-confirm.js +161 -0
- package/dist/components/button-group/button-group.d.ts +20 -0
- package/dist/components/button-group/button-group.js +62 -0
- package/dist/components/button-group/index.d.ts +3 -0
- package/dist/components/button-group/index.js +3 -0
- package/dist/components/button-group/types.d.ts +30 -0
- package/dist/components/button-group/types.js +19 -0
- package/dist/components/calendar/calendar.d.ts +15 -0
- package/dist/components/calendar/calendar.js +157 -0
- package/dist/components/calendar/index.d.ts +3 -0
- package/dist/components/calendar/index.js +1 -0
- package/dist/components/calendar/types.d.ts +21 -0
- package/dist/components/card/card.d.ts +43 -0
- package/dist/components/card/card.js +97 -0
- package/dist/components/card/index.d.ts +3 -0
- package/dist/components/card/index.js +3 -0
- package/dist/components/card/types.d.ts +44 -0
- package/dist/components/card/types.js +19 -0
- package/dist/components/carousel/carousel.d.ts +36 -0
- package/dist/components/carousel/carousel.js +190 -0
- package/dist/components/carousel/index.d.ts +3 -0
- package/dist/components/carousel/index.js +1 -0
- package/dist/components/carousel/types.d.ts +79 -0
- package/dist/components/chart/chart.d.ts +35 -0
- package/dist/components/chart/chart.js +212 -0
- package/dist/components/chart/index.d.ts +3 -0
- package/dist/components/chart/index.js +1 -0
- package/dist/components/chart/types.d.ts +89 -0
- package/dist/components/chart/types.js +7 -0
- package/dist/components/checkbox/checkbox.d.ts +7 -0
- package/dist/components/checkbox/checkbox.js +31 -0
- package/dist/components/checkbox/index.d.ts +3 -0
- package/dist/components/checkbox/index.js +1 -0
- package/dist/components/checkbox/types.d.ts +25 -0
- package/dist/components/code-block/code-block.d.ts +49 -0
- package/dist/components/code-block/code-block.js +188 -0
- package/dist/components/code-block/highlighter.d.ts +15 -0
- package/dist/components/code-block/highlighter.js +123 -0
- package/dist/components/code-block/index.d.ts +5 -0
- package/dist/components/code-block/index.js +5 -0
- package/dist/components/code-block/types.d.ts +94 -0
- package/dist/components/code-block/types.js +38 -0
- package/dist/components/code-block/use-highlighted-code.d.ts +9 -0
- package/dist/components/code-block/use-highlighted-code.js +67 -0
- package/dist/components/collapsible/collapsible.d.ts +19 -0
- package/dist/components/collapsible/collapsible.js +44 -0
- package/dist/components/collapsible/index.d.ts +3 -0
- package/dist/components/collapsible/index.js +1 -0
- package/dist/components/collapsible/types.d.ts +26 -0
- package/dist/components/combobox/combobox.d.ts +104 -0
- package/dist/components/combobox/combobox.js +365 -0
- package/dist/components/combobox/index.d.ts +3 -0
- package/dist/components/combobox/index.js +1 -0
- package/dist/components/combobox/types.d.ts +229 -0
- package/dist/components/command/command.d.ts +55 -0
- package/dist/components/command/command.js +179 -0
- package/dist/components/command/index.d.ts +3 -0
- package/dist/components/command/index.js +1 -0
- package/dist/components/command/types.d.ts +69 -0
- package/dist/components/context-menu/context-menu.d.ts +92 -0
- package/dist/components/context-menu/context-menu.js +270 -0
- package/dist/components/context-menu/index.d.ts +3 -0
- package/dist/components/context-menu/index.js +1 -0
- package/dist/components/context-menu/types.d.ts +138 -0
- package/dist/components/data-table/data-table-features.d.ts +21 -0
- package/dist/components/data-table/data-table-features.js +22 -0
- package/dist/components/data-table/data-table.d.ts +69 -0
- package/dist/components/data-table/data-table.js +283 -0
- package/dist/components/data-table/index.d.ts +4 -0
- package/dist/components/data-table/index.js +3 -0
- package/dist/components/data-table/types.d.ts +63 -0
- package/dist/components/date-input/date-input.d.ts +7 -0
- package/dist/components/date-input/date-input.js +147 -0
- package/dist/components/date-input/index.d.ts +3 -0
- package/dist/components/date-input/index.js +1 -0
- package/dist/components/date-input/types.d.ts +27 -0
- package/dist/components/date-picker/date-picker.d.ts +7 -0
- package/dist/components/date-picker/date-picker.js +74 -0
- package/dist/components/date-picker/index.d.ts +3 -0
- package/dist/components/date-picker/index.js +1 -0
- package/dist/components/date-picker/types.d.ts +38 -0
- package/dist/components/date-range-picker/date-range-picker.d.ts +7 -0
- package/dist/components/date-range-picker/date-range-picker.js +89 -0
- package/dist/components/date-range-picker/index.d.ts +3 -0
- package/dist/components/date-range-picker/index.js +1 -0
- package/dist/components/date-range-picker/types.d.ts +43 -0
- package/dist/components/dialog/dialog.d.ts +61 -0
- package/dist/components/dialog/dialog.js +160 -0
- package/dist/components/dialog/index.d.ts +3 -0
- package/dist/components/dialog/index.js +1 -0
- package/dist/components/dialog/types.d.ts +68 -0
- package/dist/components/drawer/drawer.d.ts +69 -0
- package/dist/components/drawer/drawer.js +245 -0
- package/dist/components/drawer/index.d.ts +3 -0
- package/dist/components/drawer/index.js +1 -0
- package/dist/components/drawer/types.d.ts +93 -0
- package/dist/components/dropdown-menu/dropdown-menu.d.ts +92 -0
- package/dist/components/dropdown-menu/dropdown-menu.js +268 -0
- package/dist/components/dropdown-menu/index.d.ts +3 -0
- package/dist/components/dropdown-menu/index.js +1 -0
- package/dist/components/dropdown-menu/types.d.ts +143 -0
- package/dist/components/empty/empty.d.ts +37 -0
- package/dist/components/empty/empty.js +84 -0
- package/dist/components/empty/index.d.ts +3 -0
- package/dist/components/empty/index.js +3 -0
- package/dist/components/empty/types.d.ts +39 -0
- package/dist/components/empty/types.js +13 -0
- package/dist/components/expanded-card/expanded-card.d.ts +43 -0
- package/dist/components/expanded-card/expanded-card.js +352 -0
- package/dist/components/expanded-card/index.d.ts +3 -0
- package/dist/components/expanded-card/index.js +1 -0
- package/dist/components/expanded-card/types.d.ts +52 -0
- package/dist/components/field/field.d.ts +62 -0
- package/dist/components/field/field.js +173 -0
- package/dist/components/field/index.d.ts +3 -0
- package/dist/components/field/index.js +3 -0
- package/dist/components/field/types.d.ts +81 -0
- package/dist/components/field/types.js +21 -0
- package/dist/components/form/form.d.ts +49 -0
- package/dist/components/form/form.js +136 -0
- package/dist/components/form/index.d.ts +3 -0
- package/dist/components/form/index.js +1 -0
- package/dist/components/form/types.d.ts +59 -0
- package/dist/components/hover-card/hover-card.d.ts +19 -0
- package/dist/components/hover-card/hover-card.js +63 -0
- package/dist/components/hover-card/index.d.ts +3 -0
- package/dist/components/hover-card/index.js +1 -0
- package/dist/components/hover-card/types.d.ts +27 -0
- package/dist/components/image-gallery/image-gallery.d.ts +8 -0
- package/dist/components/image-gallery/image-gallery.js +294 -0
- package/dist/components/image-gallery/index.d.ts +4 -0
- package/dist/components/image-gallery/index.js +3 -0
- package/dist/components/image-gallery/masonry.d.ts +11 -0
- package/dist/components/image-gallery/masonry.js +62 -0
- package/dist/components/image-gallery/types.d.ts +80 -0
- package/dist/components/input/index.d.ts +3 -0
- package/dist/components/input/index.js +1 -0
- package/dist/components/input/input.d.ts +7 -0
- package/dist/components/input/input.js +18 -0
- package/dist/components/input/types.d.ts +28 -0
- package/dist/components/input-group/index.d.ts +3 -0
- package/dist/components/input-group/index.js +3 -0
- package/dist/components/input-group/input-group.d.ts +37 -0
- package/dist/components/input-group/input-group.js +103 -0
- package/dist/components/input-group/types.d.ts +64 -0
- package/dist/components/input-group/types.js +31 -0
- package/dist/components/input-otp/index.d.ts +3 -0
- package/dist/components/input-otp/index.js +1 -0
- package/dist/components/input-otp/input-otp.d.ts +25 -0
- package/dist/components/input-otp/input-otp.js +76 -0
- package/dist/components/input-otp/types.d.ts +43 -0
- package/dist/components/item/index.d.ts +3 -0
- package/dist/components/item/index.js +3 -0
- package/dist/components/item/item.d.ts +61 -0
- package/dist/components/item/item.js +149 -0
- package/dist/components/item/types.d.ts +75 -0
- package/dist/components/item/types.js +48 -0
- package/dist/components/kbd/index.d.ts +3 -0
- package/dist/components/kbd/index.js +1 -0
- package/dist/components/kbd/kbd.d.ts +13 -0
- package/dist/components/kbd/kbd.js +30 -0
- package/dist/components/kbd/types.d.ts +9 -0
- package/dist/components/label/index.d.ts +3 -0
- package/dist/components/label/index.js +1 -0
- package/dist/components/label/label.d.ts +7 -0
- package/dist/components/label/label.js +17 -0
- package/dist/components/label/types.d.ts +8 -0
- package/dist/components/loader/index.d.ts +3 -0
- package/dist/components/loader/index.js +3 -0
- package/dist/components/loader/loader.d.ts +8 -0
- package/dist/components/loader/loader.js +386 -0
- package/dist/components/loader/types.d.ts +27 -0
- package/dist/components/loader/types.js +58 -0
- package/dist/components/marker/index.d.ts +3 -0
- package/dist/components/marker/index.js +3 -0
- package/dist/components/marker/marker.d.ts +19 -0
- package/dist/components/marker/marker.js +51 -0
- package/dist/components/marker/types.d.ts +30 -0
- package/dist/components/marker/types.js +16 -0
- package/dist/components/menubar/index.d.ts +3 -0
- package/dist/components/menubar/index.js +1 -0
- package/dist/components/menubar/menubar.d.ts +98 -0
- package/dist/components/menubar/menubar.js +284 -0
- package/dist/components/menubar/types.d.ts +146 -0
- package/dist/components/message/index.d.ts +3 -0
- package/dist/components/message/index.js +1 -0
- package/dist/components/message/message.d.ts +37 -0
- package/dist/components/message/message.js +83 -0
- package/dist/components/message/types.d.ts +32 -0
- package/dist/components/message-scroller/index.d.ts +4 -0
- package/dist/components/message-scroller/index.js +3 -0
- package/dist/components/message-scroller/message-scroller-primitive.d.ts +21 -0
- package/dist/components/message-scroller/message-scroller-primitive.js +1349 -0
- package/dist/components/message-scroller/message-scroller.d.ts +39 -0
- package/dist/components/message-scroller/message-scroller.js +103 -0
- package/dist/components/message-scroller/types.d.ts +107 -0
- package/dist/components/money-input/index.d.ts +3 -0
- package/dist/components/money-input/index.js +1 -0
- package/dist/components/money-input/money-input.d.ts +7 -0
- package/dist/components/money-input/money-input.js +143 -0
- package/dist/components/money-input/types.d.ts +20 -0
- package/dist/components/morph-image/index.d.ts +3 -0
- package/dist/components/morph-image/index.js +3 -0
- package/dist/components/morph-image/morph-image.d.ts +8 -0
- package/dist/components/morph-image/morph-image.js +155 -0
- package/dist/components/morph-image/types.d.ts +38 -0
- package/dist/components/morph-image/types.js +18 -0
- package/dist/components/native-select/index.d.ts +3 -0
- package/dist/components/native-select/index.js +3 -0
- package/dist/components/native-select/native-select.d.ts +20 -0
- package/dist/components/native-select/native-select.js +57 -0
- package/dist/components/native-select/types.d.ts +52 -0
- package/dist/components/native-select/types.js +23 -0
- package/dist/components/navigation-menu/index.d.ts +3 -0
- package/dist/components/navigation-menu/index.js +3 -0
- package/dist/components/navigation-menu/navigation-menu.d.ts +50 -0
- package/dist/components/navigation-menu/navigation-menu.js +145 -0
- package/dist/components/navigation-menu/types.d.ts +79 -0
- package/dist/components/navigation-menu/types.js +15 -0
- package/dist/components/number-stepper/index.d.ts +3 -0
- package/dist/components/number-stepper/index.js +3 -0
- package/dist/components/number-stepper/number-stepper.d.ts +9 -0
- package/dist/components/number-stepper/number-stepper.js +223 -0
- package/dist/components/number-stepper/types.d.ts +47 -0
- package/dist/components/number-stepper/types.js +174 -0
- package/dist/components/pagination/index.d.ts +3 -0
- package/dist/components/pagination/index.js +1 -0
- package/dist/components/pagination/pagination.d.ts +43 -0
- package/dist/components/pagination/pagination.js +121 -0
- package/dist/components/pagination/types.d.ts +37 -0
- package/dist/components/phone-input/index.d.ts +3 -0
- package/dist/components/phone-input/index.js +1 -0
- package/dist/components/phone-input/phone-input.d.ts +7 -0
- package/dist/components/phone-input/phone-input.js +54 -0
- package/dist/components/phone-input/types.d.ts +12 -0
- package/dist/components/popover/index.d.ts +3 -0
- package/dist/components/popover/index.js +1 -0
- package/dist/components/popover/popover.d.ts +37 -0
- package/dist/components/popover/popover.js +100 -0
- package/dist/components/popover/types.d.ts +51 -0
- package/dist/components/progress/index.d.ts +3 -0
- package/dist/components/progress/index.js +1 -0
- package/dist/components/progress/progress.d.ts +32 -0
- package/dist/components/progress/progress.js +100 -0
- package/dist/components/progress/types.d.ts +31 -0
- package/dist/components/questionnaire/index.d.ts +3 -0
- package/dist/components/questionnaire/index.js +1 -0
- package/dist/components/questionnaire/questionnaire-primitive.js +1563 -0
- package/dist/components/questionnaire/questionnaire.d.ts +91 -0
- package/dist/components/questionnaire/questionnaire.js +315 -0
- package/dist/components/questionnaire/types.d.ts +203 -0
- package/dist/components/radio-group/index.d.ts +3 -0
- package/dist/components/radio-group/index.js +1 -0
- package/dist/components/radio-group/radio-group.d.ts +13 -0
- package/dist/components/radio-group/radio-group.js +44 -0
- package/dist/components/radio-group/types.d.ts +33 -0
- package/dist/components/reorder-list/index.d.ts +3 -0
- package/dist/components/reorder-list/index.js +1 -0
- package/dist/components/reorder-list/reorder-list.d.ts +19 -0
- package/dist/components/reorder-list/reorder-list.js +279 -0
- package/dist/components/reorder-list/types.d.ts +65 -0
- package/dist/components/resizable/index.d.ts +3 -0
- package/dist/components/resizable/index.js +1 -0
- package/dist/components/resizable/resizable.d.ts +19 -0
- package/dist/components/resizable/resizable.js +44 -0
- package/dist/components/resizable/types.d.ts +89 -0
- package/dist/components/scroll-area/index.d.ts +3 -0
- package/dist/components/scroll-area/index.js +1 -0
- package/dist/components/scroll-area/scroll-area.d.ts +13 -0
- package/dist/components/scroll-area/scroll-area.js +47 -0
- package/dist/components/scroll-area/types.d.ts +19 -0
- package/dist/components/select/index.d.ts +3 -0
- package/dist/components/select/index.js +1 -0
- package/dist/components/select/select.d.ts +61 -0
- package/dist/components/select/select.js +183 -0
- package/dist/components/select/types.d.ts +100 -0
- package/dist/components/separator/index.d.ts +3 -0
- package/dist/components/separator/index.js +1 -0
- package/dist/components/separator/separator.d.ts +7 -0
- package/dist/components/separator/separator.js +20 -0
- package/dist/components/separator/types.d.ts +9 -0
- package/dist/components/sheet/index.d.ts +3 -0
- package/dist/components/sheet/index.js +1 -0
- package/dist/components/sheet/sheet.d.ts +61 -0
- package/dist/components/sheet/sheet.js +155 -0
- package/dist/components/sheet/types.d.ts +69 -0
- package/dist/components/sidebar/index.d.ts +3 -0
- package/dist/components/sidebar/index.js +3 -0
- package/dist/components/sidebar/sidebar.d.ts +145 -0
- package/dist/components/sidebar/sidebar.js +550 -0
- package/dist/components/sidebar/types.d.ts +186 -0
- package/dist/components/sidebar/types.js +42 -0
- package/dist/components/sidebar/use-mobile.js +21 -0
- package/dist/components/skeleton/index.d.ts +3 -0
- package/dist/components/skeleton/index.js +1 -0
- package/dist/components/skeleton/skeleton.d.ts +8 -0
- package/dist/components/skeleton/skeleton.js +18 -0
- package/dist/components/skeleton/types.d.ts +5 -0
- package/dist/components/slider/index.d.ts +3 -0
- package/dist/components/slider/index.js +1 -0
- package/dist/components/slider/slider.d.ts +7 -0
- package/dist/components/slider/slider.js +106 -0
- package/dist/components/slider/types.d.ts +39 -0
- package/dist/components/spinner/index.d.ts +3 -0
- package/dist/components/spinner/index.js +1 -0
- package/dist/components/spinner/spinner.d.ts +7 -0
- package/dist/components/spinner/spinner.js +21 -0
- package/dist/components/spinner/types.d.ts +8 -0
- package/dist/components/switch/index.d.ts +3 -0
- package/dist/components/switch/index.js +3 -0
- package/dist/components/switch/switch.d.ts +7 -0
- package/dist/components/switch/switch.js +32 -0
- package/dist/components/switch/types.d.ts +37 -0
- package/dist/components/switch/types.js +23 -0
- package/dist/components/table/index.d.ts +3 -0
- package/dist/components/table/index.js +1 -0
- package/dist/components/table/table.d.ts +49 -0
- package/dist/components/table/table.js +112 -0
- package/dist/components/table/types.d.ts +33 -0
- package/dist/components/tabs/index.d.ts +3 -0
- package/dist/components/tabs/index.js +3 -0
- package/dist/components/tabs/tabs.d.ts +25 -0
- package/dist/components/tabs/tabs.js +81 -0
- package/dist/components/tabs/types.d.ts +61 -0
- package/dist/components/tabs/types.js +18 -0
- package/dist/components/textarea/index.d.ts +3 -0
- package/dist/components/textarea/index.js +1 -0
- package/dist/components/textarea/textarea.d.ts +7 -0
- package/dist/components/textarea/textarea.js +17 -0
- package/dist/components/textarea/types.d.ts +26 -0
- package/dist/components/toast/index.d.ts +3 -0
- package/dist/components/toast/index.js +1 -0
- package/dist/components/toast/toast.d.ts +63 -0
- package/dist/components/toast/toast.js +321 -0
- package/dist/components/toast/types.d.ts +120 -0
- package/dist/components/toggle/index.d.ts +3 -0
- package/dist/components/toggle/index.js +3 -0
- package/dist/components/toggle/toggle.d.ts +7 -0
- package/dist/components/toggle/toggle.js +32 -0
- package/dist/components/toggle/types.d.ts +35 -0
- package/dist/components/toggle/types.js +37 -0
- package/dist/components/toggle-group/index.d.ts +3 -0
- package/dist/components/toggle-group/index.js +1 -0
- package/dist/components/toggle-group/toggle-group.d.ts +13 -0
- package/dist/components/toggle-group/toggle-group.js +88 -0
- package/dist/components/toggle-group/types.d.ts +52 -0
- package/dist/components/tooltip/index.d.ts +3 -0
- package/dist/components/tooltip/index.js +1 -0
- package/dist/components/tooltip/tooltip.d.ts +25 -0
- package/dist/components/tooltip/tooltip.js +79 -0
- package/dist/components/tooltip/types.d.ts +48 -0
- package/dist/components/trace/index.d.ts +3 -0
- package/dist/components/trace/index.js +1 -0
- package/dist/components/trace/trace.d.ts +52 -0
- package/dist/components/trace/trace.js +132 -0
- package/dist/components/trace/types.d.ts +54 -0
- package/dist/components/typography/index.d.ts +3 -0
- package/dist/components/typography/index.js +3 -0
- package/dist/components/typography/types.d.ts +29 -0
- package/dist/components/typography/types.js +25 -0
- package/dist/components/typography/typography.d.ts +7 -0
- package/dist/components/typography/typography.js +40 -0
- package/dist/components/video-player/index.d.ts +6 -0
- package/dist/components/video-player/index.js +5 -0
- package/dist/components/video-player/types.d.ts +143 -0
- package/dist/components/video-player/use-video-player.js +319 -0
- package/dist/components/video-player/video-player-context.d.ts +45 -0
- package/dist/components/video-player/video-player-context.js +15 -0
- package/dist/components/video-player/video-player-controls.d.ts +38 -0
- package/dist/components/video-player/video-player-controls.js +226 -0
- package/dist/components/video-player/video-player-overlay.d.ts +13 -0
- package/dist/components/video-player/video-player-overlay.js +113 -0
- package/dist/components/video-player/video-player.d.ts +8 -0
- package/dist/components/video-player/video-player.js +139 -0
- package/dist/index.d.ts +244 -0
- package/dist/index.js +114 -0
- package/dist/lib/floating.d.ts +44 -0
- package/dist/lib/focus-source.js +51 -0
- package/dist/lib/format.d.ts +67 -0
- package/dist/lib/format.js +130 -0
- package/dist/lib/locale.d.ts +104 -0
- package/dist/lib/locale.js +103 -0
- package/dist/lib/part-props.d.ts +15 -0
- package/dist/lib/use-controllable-state.js +22 -0
- package/dist/lib/utils.d.ts +9 -0
- package/dist/lib/utils.js +16 -0
- package/dist/styles/index.css +126 -0
- package/dist/styles/theme.css +80 -0
- package/dist/styles/utilities.css +553 -0
- package/package.json +89 -3
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { AvatarBadgePropsT, AvatarFallbackPropsT, AvatarGroupCountPropsT, AvatarGroupPropsT, AvatarImagePropsT, AvatarPropsT } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Аватар: изображение пользователя с заглушкой на случай, если изображения нет
|
|
4
|
+
* @param props - пропсы аватара
|
|
5
|
+
* @returns круглый контейнер для AvatarImage, AvatarFallback и AvatarBadge
|
|
6
|
+
*/
|
|
7
|
+
export declare function Avatar({ className, size, ...props }: AvatarPropsT): import("react").JSX.Element;
|
|
8
|
+
/**
|
|
9
|
+
* Изображение аватара: показывается только после успешной загрузки
|
|
10
|
+
* @param props - пропсы изображения
|
|
11
|
+
* @returns изображение
|
|
12
|
+
*/
|
|
13
|
+
export declare function AvatarImage({ className, ...props }: AvatarImagePropsT): import("react").JSX.Element;
|
|
14
|
+
/**
|
|
15
|
+
* Заглушка аватара: инициалы или иконка, пока изображение не загружено
|
|
16
|
+
* @param props - пропсы заглушки
|
|
17
|
+
* @returns заглушка
|
|
18
|
+
*/
|
|
19
|
+
export declare function AvatarFallback({ className, ...props }: AvatarFallbackPropsT): import("react").JSX.Element;
|
|
20
|
+
/**
|
|
21
|
+
* Значок аватара: точка статуса или иконка в правом нижнем углу. Только у одиночного аватара:
|
|
22
|
+
* в AvatarGroup значок скрыт — у наложенных аватаров он вылезал бы поверх соседа
|
|
23
|
+
* @param props - пропсы значка
|
|
24
|
+
* @returns значок
|
|
25
|
+
*/
|
|
26
|
+
export declare function AvatarBadge({ className, ...props }: AvatarBadgePropsT): import("react").JSX.Element;
|
|
27
|
+
/**
|
|
28
|
+
* Группа аватаров: аватары с наложением друг на друга
|
|
29
|
+
* @param props - пропсы группы
|
|
30
|
+
* @returns группа
|
|
31
|
+
*/
|
|
32
|
+
export declare function AvatarGroup({ className, ...props }: AvatarGroupPropsT): import("react").JSX.Element;
|
|
33
|
+
/**
|
|
34
|
+
* Счётчик группы аватаров: сколько ещё участников не показано, например «+3».
|
|
35
|
+
* Размер повторяет размер аватаров группы
|
|
36
|
+
* @param props - пропсы счётчика
|
|
37
|
+
* @returns счётчик
|
|
38
|
+
*/
|
|
39
|
+
export declare function AvatarGroupCount({ className, ...props }: AvatarGroupCountPropsT): import("react").JSX.Element;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../../lib/utils.js";
|
|
3
|
+
import { avatarVariants } from "./types.js";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
import { Avatar } from "@base-ui/react/avatar";
|
|
6
|
+
// src/components/avatar/avatar.tsx
|
|
7
|
+
/**
|
|
8
|
+
* Аватар: изображение пользователя с заглушкой на случай, если изображения нет
|
|
9
|
+
* @param props - пропсы аватара
|
|
10
|
+
* @returns круглый контейнер для AvatarImage, AvatarFallback и AvatarBadge
|
|
11
|
+
*/
|
|
12
|
+
function Avatar$1({ className, size = "default", ...props }) {
|
|
13
|
+
const classes = cn(avatarVariants({ size }), className);
|
|
14
|
+
return /* @__PURE__ */ jsx(Avatar.Root, {
|
|
15
|
+
"data-slot": "avatar",
|
|
16
|
+
"data-size": size,
|
|
17
|
+
className: classes,
|
|
18
|
+
...props
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Изображение аватара: показывается только после успешной загрузки
|
|
23
|
+
* @param props - пропсы изображения
|
|
24
|
+
* @returns изображение
|
|
25
|
+
*/
|
|
26
|
+
function AvatarImage({ className, ...props }) {
|
|
27
|
+
const classes = cn("aspect-square", "size-full", "rounded-full", "object-cover", className);
|
|
28
|
+
return /* @__PURE__ */ jsx(Avatar.Image, {
|
|
29
|
+
"data-slot": "avatar-image",
|
|
30
|
+
className: classes,
|
|
31
|
+
...props
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Заглушка аватара: инициалы или иконка, пока изображение не загружено
|
|
36
|
+
* @param props - пропсы заглушки
|
|
37
|
+
* @returns заглушка
|
|
38
|
+
*/
|
|
39
|
+
function AvatarFallback({ className, ...props }) {
|
|
40
|
+
const classes = cn("flex", "size-full", "items-center", "justify-center", "rounded-full", "bg-muted", "text-sm", "text-muted-foreground", "group-data-[size=sm]/avatar:text-xs", className);
|
|
41
|
+
return /* @__PURE__ */ jsx(Avatar.Fallback, {
|
|
42
|
+
"data-slot": "avatar-fallback",
|
|
43
|
+
className: classes,
|
|
44
|
+
...props
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Значок аватара: точка статуса или иконка в правом нижнем углу. Только у одиночного аватара:
|
|
49
|
+
* в AvatarGroup значок скрыт — у наложенных аватаров он вылезал бы поверх соседа
|
|
50
|
+
* @param props - пропсы значка
|
|
51
|
+
* @returns значок
|
|
52
|
+
*/
|
|
53
|
+
function AvatarBadge({ className, ...props }) {
|
|
54
|
+
const classes = cn("absolute", "right-0", "bottom-0", "z-10", "inline-flex", "items-center", "justify-center", "rounded-full", "select-none", "bg-primary", "text-primary-foreground", "bg-blend-color", "ring-2", "ring-background", "group-data-[size=sm]/avatar:size-2", "group-data-[size=sm]/avatar:[&>svg]:hidden", "group-data-[size=default]/avatar:size-2.5", "group-data-[size=default]/avatar:[&>svg]:size-2", "group-data-[size=lg]/avatar:size-3", "group-data-[size=lg]/avatar:[&>svg]:size-2", "in-data-[slot=avatar-group]:hidden", className);
|
|
55
|
+
return /* @__PURE__ */ jsx("span", {
|
|
56
|
+
"data-slot": "avatar-badge",
|
|
57
|
+
className: classes,
|
|
58
|
+
...props
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Группа аватаров: аватары с наложением друг на друга
|
|
63
|
+
* @param props - пропсы группы
|
|
64
|
+
* @returns группа
|
|
65
|
+
*/
|
|
66
|
+
function AvatarGroup({ className, ...props }) {
|
|
67
|
+
const classes = cn("group/avatar-group", "flex", "-space-x-2", "*:data-[slot=avatar]:ring-2", "*:data-[slot=avatar]:ring-background", className);
|
|
68
|
+
return /* @__PURE__ */ jsx("div", {
|
|
69
|
+
"data-slot": "avatar-group",
|
|
70
|
+
className: classes,
|
|
71
|
+
...props
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Счётчик группы аватаров: сколько ещё участников не показано, например «+3».
|
|
76
|
+
* Размер повторяет размер аватаров группы
|
|
77
|
+
* @param props - пропсы счётчика
|
|
78
|
+
* @returns счётчик
|
|
79
|
+
*/
|
|
80
|
+
function AvatarGroupCount({ className, ...props }) {
|
|
81
|
+
const classes = cn("relative", "flex", "size-8", "shrink-0", "items-center", "justify-center", "rounded-full", "bg-muted", "text-sm", "text-muted-foreground", "ring-2", "ring-background", "group-has-data-[size=lg]/avatar-group:size-10", "group-has-data-[size=sm]/avatar-group:size-6", "[&>svg]:size-4", "group-has-data-[size=lg]/avatar-group:[&>svg]:size-5", "group-has-data-[size=sm]/avatar-group:[&>svg]:size-3", className);
|
|
82
|
+
return /* @__PURE__ */ jsx("div", {
|
|
83
|
+
"data-slot": "avatar-group-count",
|
|
84
|
+
className: classes,
|
|
85
|
+
...props
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
export { Avatar$1 as Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { AvatarBadgePropsT, AvatarFallbackPropsT, AvatarGroupCountPropsT, AvatarGroupPropsT, AvatarImagePropsT, AvatarPropsT, avatarVariants } from "./types.js";
|
|
2
|
+
import { Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage } from "./avatar.js";
|
|
3
|
+
export { Avatar, AvatarBadge, type AvatarBadgePropsT, AvatarFallback, type AvatarFallbackPropsT, AvatarGroup, AvatarGroupCount, type AvatarGroupCountPropsT, type AvatarGroupPropsT, AvatarImage, type AvatarImagePropsT, type AvatarPropsT, avatarVariants };
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { PartPropsT } from "../../lib/part-props.js";
|
|
2
|
+
import { VariantProps } from "class-variance-authority";
|
|
3
|
+
import { ComponentProps } from "react";
|
|
4
|
+
import { Avatar } from "@base-ui/react/avatar";
|
|
5
|
+
/**
|
|
6
|
+
* Стили аватара: размер.
|
|
7
|
+
* Экспортируются, чтобы оформить аватаром другой элемент: avatarVariants({ size: 'lg' }).
|
|
8
|
+
* Рамка рисуется псевдоэлементом поверх изображения и смешивается с ним, чтобы светлые
|
|
9
|
+
* и тёмные фото не сливались с фоном
|
|
10
|
+
*/
|
|
11
|
+
export declare const avatarVariants: (props?: ({
|
|
12
|
+
size?: "default" | "sm" | "lg" | null | undefined;
|
|
13
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
14
|
+
/**
|
|
15
|
+
* Размеры аватара
|
|
16
|
+
*/
|
|
17
|
+
export type AvatarVariantsT = VariantProps<typeof avatarVariants>;
|
|
18
|
+
/**
|
|
19
|
+
* Пропсы аватара
|
|
20
|
+
*/
|
|
21
|
+
export type AvatarPropsT = PartPropsT<Avatar.Root.Props> & {
|
|
22
|
+
/** Размер: sm — 24 px, default — 32 px, lg — 40 px */
|
|
23
|
+
size?: AvatarVariantsT['size'];
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Пропсы изображения аватара
|
|
27
|
+
*/
|
|
28
|
+
export type AvatarImagePropsT = PartPropsT<Omit<Avatar.Image.Props, 'onLoadingStatusChange'>> & {
|
|
29
|
+
/** Адрес изображения. Пока оно грузится или если не загрузилось, показывается AvatarFallback */
|
|
30
|
+
src?: string;
|
|
31
|
+
/** Описание изображения для скринридера: имя пользователя */
|
|
32
|
+
alt?: string;
|
|
33
|
+
/** Смена состояния загрузки изображения: idle, loading, loaded, error */
|
|
34
|
+
onLoadingStatusChange?: (status: 'idle' | 'loading' | 'loaded' | 'error') => void;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Пропсы заглушки аватара
|
|
38
|
+
*/
|
|
39
|
+
export type AvatarFallbackPropsT = PartPropsT<Omit<Avatar.Fallback.Props, 'delay'>> & {
|
|
40
|
+
/** Задержка показа в мс: чтобы заглушка не мелькала, если изображение загрузится быстро */
|
|
41
|
+
delay?: number;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Пропсы значка аватара
|
|
45
|
+
*/
|
|
46
|
+
export type AvatarBadgePropsT = ComponentProps<'span'>;
|
|
47
|
+
/**
|
|
48
|
+
* Пропсы группы аватаров
|
|
49
|
+
*/
|
|
50
|
+
export type AvatarGroupPropsT = ComponentProps<'div'>;
|
|
51
|
+
/**
|
|
52
|
+
* Пропсы счётчика группы аватаров
|
|
53
|
+
*/
|
|
54
|
+
export type AvatarGroupCountPropsT = ComponentProps<'div'>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { cva } from "class-variance-authority";
|
|
2
|
+
// src/components/avatar/types.ts
|
|
3
|
+
/**
|
|
4
|
+
* Стили аватара: размер.
|
|
5
|
+
* Экспортируются, чтобы оформить аватаром другой элемент: avatarVariants({ size: 'lg' }).
|
|
6
|
+
* Рамка рисуется псевдоэлементом поверх изображения и смешивается с ним, чтобы светлые
|
|
7
|
+
* и тёмные фото не сливались с фоном
|
|
8
|
+
*/
|
|
9
|
+
const avatarVariants = cva([
|
|
10
|
+
"group/avatar relative flex shrink-0 rounded-full select-none",
|
|
11
|
+
"after:absolute after:inset-0 after:rounded-full after:border after:border-border",
|
|
12
|
+
"after:mix-blend-darken dark:after:mix-blend-lighten"
|
|
13
|
+
], {
|
|
14
|
+
variants: { size: {
|
|
15
|
+
default: "size-8",
|
|
16
|
+
sm: "size-6",
|
|
17
|
+
lg: "size-10"
|
|
18
|
+
} },
|
|
19
|
+
defaultVariants: { size: "default" }
|
|
20
|
+
});
|
|
21
|
+
export { avatarVariants };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BadgePropsT } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Бейдж: короткая метка — статус, категория, счётчик
|
|
4
|
+
* @param props - пропсы бейджа
|
|
5
|
+
* @returns бейдж или дочерний элемент в стилях бейджа (render)
|
|
6
|
+
*/
|
|
7
|
+
export declare function Badge({ className, variant, render, ...props }: BadgePropsT): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { cn } from "../../lib/utils.js";
|
|
2
|
+
import { badgeVariants } from "./types.js";
|
|
3
|
+
import { mergeProps } from "@base-ui/react/merge-props";
|
|
4
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
5
|
+
// src/components/badge/badge.tsx
|
|
6
|
+
/**
|
|
7
|
+
* Бейдж: короткая метка — статус, категория, счётчик
|
|
8
|
+
* @param props - пропсы бейджа
|
|
9
|
+
* @returns бейдж или дочерний элемент в стилях бейджа (render)
|
|
10
|
+
*/
|
|
11
|
+
function Badge({ className, variant = "default", render, ...props }) {
|
|
12
|
+
const classes = cn(badgeVariants({ variant }), className);
|
|
13
|
+
return useRender({
|
|
14
|
+
defaultTagName: "span",
|
|
15
|
+
render,
|
|
16
|
+
props: mergeProps({
|
|
17
|
+
"data-slot": "badge",
|
|
18
|
+
"data-variant": variant,
|
|
19
|
+
className: classes
|
|
20
|
+
}, props)
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
export { Badge };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { VariantProps } from "class-variance-authority";
|
|
2
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
3
|
+
/**
|
|
4
|
+
* Стили бейджа: вариант оформления.
|
|
5
|
+
* Экспортируются, чтобы оформить бейджем другой элемент: badgeVariants({ variant: 'outline' }).
|
|
6
|
+
* Цвет наведения появляется только у бейджа-ссылки (render={<a />}).
|
|
7
|
+
*/
|
|
8
|
+
export declare const badgeVariants: (props?: ({
|
|
9
|
+
variant?: "link" | "default" | "secondary" | "destructive" | "outline" | "ghost" | null | undefined;
|
|
10
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
11
|
+
/**
|
|
12
|
+
* Варианты оформления бейджа
|
|
13
|
+
*/
|
|
14
|
+
export type BadgeVariantsT = VariantProps<typeof badgeVariants>;
|
|
15
|
+
/**
|
|
16
|
+
* Пропсы бейджа
|
|
17
|
+
*/
|
|
18
|
+
export type BadgePropsT = useRender.ComponentProps<'span'> & {
|
|
19
|
+
/** Оформление: основной, второстепенный, опасный, контурный, без фона или ссылка */
|
|
20
|
+
variant?: BadgeVariantsT['variant'];
|
|
21
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { cva } from "class-variance-authority";
|
|
2
|
+
// src/components/badge/types.ts
|
|
3
|
+
/**
|
|
4
|
+
* Стили бейджа: вариант оформления.
|
|
5
|
+
* Экспортируются, чтобы оформить бейджем другой элемент: badgeVariants({ variant: 'outline' }).
|
|
6
|
+
* Цвет наведения появляется только у бейджа-ссылки (render={<a />}).
|
|
7
|
+
*/
|
|
8
|
+
const badgeVariants = cva([
|
|
9
|
+
"group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden",
|
|
10
|
+
"rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all select-none",
|
|
11
|
+
"focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50",
|
|
12
|
+
"aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",
|
|
13
|
+
"has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5",
|
|
14
|
+
"[&>svg]:pointer-events-none [&>svg]:size-3!"
|
|
15
|
+
], {
|
|
16
|
+
variants: { variant: {
|
|
17
|
+
default: "bg-primary text-primary-foreground [a]:hover:bg-primary/80",
|
|
18
|
+
secondary: "bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",
|
|
19
|
+
destructive: ["bg-destructive/10 text-destructive [a]:hover:bg-destructive/20", "focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40"],
|
|
20
|
+
outline: "border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",
|
|
21
|
+
ghost: "hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",
|
|
22
|
+
link: "text-primary underline-offset-4 hover:underline"
|
|
23
|
+
} },
|
|
24
|
+
defaultVariants: { variant: "default" }
|
|
25
|
+
});
|
|
26
|
+
export { badgeVariants };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { BreadcrumbEllipsisPropsT, BreadcrumbItemPropsT, BreadcrumbLinkPropsT, BreadcrumbListPropsT, BreadcrumbPagePropsT, BreadcrumbPropsT, BreadcrumbSeparatorPropsT } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Навигационная цепочка: путь к текущей странице по иерархии разделов
|
|
4
|
+
* @param props - пропсы цепочки
|
|
5
|
+
* @returns элемент <nav>
|
|
6
|
+
*/
|
|
7
|
+
export declare function Breadcrumb({ className, label, ...props }: BreadcrumbPropsT): import("react").JSX.Element;
|
|
8
|
+
/**
|
|
9
|
+
* Список пунктов навигационной цепочки
|
|
10
|
+
* @param props - пропсы списка
|
|
11
|
+
* @returns элемент <ol>
|
|
12
|
+
*/
|
|
13
|
+
export declare function BreadcrumbList({ className, ...props }: BreadcrumbListPropsT): import("react").JSX.Element;
|
|
14
|
+
/**
|
|
15
|
+
* Пункт навигационной цепочки: ссылка, текущая страница или многоточие
|
|
16
|
+
* @param props - пропсы пункта
|
|
17
|
+
* @returns элемент <li>
|
|
18
|
+
*/
|
|
19
|
+
export declare function BreadcrumbItem({ className, ...props }: BreadcrumbItemPropsT): import("react").JSX.Element;
|
|
20
|
+
/**
|
|
21
|
+
* Ссылка на раздел в навигационной цепочке
|
|
22
|
+
* @param props - пропсы ссылки
|
|
23
|
+
* @returns ссылка или дочерний элемент в стилях ссылки (render)
|
|
24
|
+
*/
|
|
25
|
+
export declare function BreadcrumbLink({ render, className, ...props }: BreadcrumbLinkPropsT): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
26
|
+
/**
|
|
27
|
+
* Текущая страница: последний пункт цепочки, не ссылка
|
|
28
|
+
* @param props - пропсы текущей страницы
|
|
29
|
+
* @returns элемент с aria-current="page"
|
|
30
|
+
*/
|
|
31
|
+
export declare function BreadcrumbPage({ className, ...props }: BreadcrumbPagePropsT): import("react").JSX.Element;
|
|
32
|
+
/**
|
|
33
|
+
* Разделитель между пунктами, по умолчанию шеврон. Скрыт от скринридера
|
|
34
|
+
* @param props - пропсы разделителя; children заменяет иконку
|
|
35
|
+
* @returns элемент <li>
|
|
36
|
+
*/
|
|
37
|
+
export declare function BreadcrumbSeparator({ children, className, ...props }: BreadcrumbSeparatorPropsT): import("react").JSX.Element;
|
|
38
|
+
/**
|
|
39
|
+
* Многоточие на месте свёрнутых пунктов длинной цепочки
|
|
40
|
+
* @param props - пропсы многоточия
|
|
41
|
+
* @returns иконка многоточия с текстом для скринридера
|
|
42
|
+
*/
|
|
43
|
+
export declare function BreadcrumbEllipsis({ className, label, ...props }: BreadcrumbEllipsisPropsT): import("react").JSX.Element;
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { cn } from "../../lib/utils.js";
|
|
2
|
+
import { texts } from "../../lib/locale.js";
|
|
3
|
+
import { ChevronRightIcon, MoreHorizontalIcon } from "lucide-react";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { mergeProps } from "@base-ui/react/merge-props";
|
|
6
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
7
|
+
// src/components/breadcrumb/breadcrumb.tsx
|
|
8
|
+
/**
|
|
9
|
+
* Навигационная цепочка: путь к текущей странице по иерархии разделов
|
|
10
|
+
* @param props - пропсы цепочки
|
|
11
|
+
* @returns элемент <nav>
|
|
12
|
+
*/
|
|
13
|
+
function Breadcrumb({ className, label = texts.breadcrumb, ...props }) {
|
|
14
|
+
const classes = cn(className);
|
|
15
|
+
return /* @__PURE__ */ jsx("nav", {
|
|
16
|
+
"aria-label": label,
|
|
17
|
+
"data-slot": "breadcrumb",
|
|
18
|
+
className: classes,
|
|
19
|
+
...props
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Список пунктов навигационной цепочки
|
|
24
|
+
* @param props - пропсы списка
|
|
25
|
+
* @returns элемент <ol>
|
|
26
|
+
*/
|
|
27
|
+
function BreadcrumbList({ className, ...props }) {
|
|
28
|
+
const classes = cn("flex", "flex-wrap", "items-center", "gap-1.5", "text-sm", "wrap-break-word", "text-muted-foreground", className);
|
|
29
|
+
return /* @__PURE__ */ jsx("ol", {
|
|
30
|
+
"data-slot": "breadcrumb-list",
|
|
31
|
+
className: classes,
|
|
32
|
+
...props
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Пункт навигационной цепочки: ссылка, текущая страница или многоточие
|
|
37
|
+
* @param props - пропсы пункта
|
|
38
|
+
* @returns элемент <li>
|
|
39
|
+
*/
|
|
40
|
+
function BreadcrumbItem({ className, ...props }) {
|
|
41
|
+
const classes = cn("inline-flex", "items-center", "gap-1", className);
|
|
42
|
+
return /* @__PURE__ */ jsx("li", {
|
|
43
|
+
"data-slot": "breadcrumb-item",
|
|
44
|
+
className: classes,
|
|
45
|
+
...props
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Ссылка на раздел в навигационной цепочке
|
|
50
|
+
* @param props - пропсы ссылки
|
|
51
|
+
* @returns ссылка или дочерний элемент в стилях ссылки (render)
|
|
52
|
+
*/
|
|
53
|
+
function BreadcrumbLink({ render, className, ...props }) {
|
|
54
|
+
const classes = cn("transition-colors", "hover:text-foreground", className);
|
|
55
|
+
return useRender({
|
|
56
|
+
defaultTagName: "a",
|
|
57
|
+
render,
|
|
58
|
+
props: mergeProps({
|
|
59
|
+
"data-slot": "breadcrumb-link",
|
|
60
|
+
className: classes
|
|
61
|
+
}, props)
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Текущая страница: последний пункт цепочки, не ссылка
|
|
66
|
+
* @param props - пропсы текущей страницы
|
|
67
|
+
* @returns элемент с aria-current="page"
|
|
68
|
+
*/
|
|
69
|
+
function BreadcrumbPage({ className, ...props }) {
|
|
70
|
+
const classes = cn("font-normal", "text-foreground", className);
|
|
71
|
+
return /* @__PURE__ */ jsx("span", {
|
|
72
|
+
"data-slot": "breadcrumb-page",
|
|
73
|
+
role: "link",
|
|
74
|
+
"aria-disabled": "true",
|
|
75
|
+
"aria-current": "page",
|
|
76
|
+
className: classes,
|
|
77
|
+
...props
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Разделитель между пунктами, по умолчанию шеврон. Скрыт от скринридера
|
|
82
|
+
* @param props - пропсы разделителя; children заменяет иконку
|
|
83
|
+
* @returns элемент <li>
|
|
84
|
+
*/
|
|
85
|
+
function BreadcrumbSeparator({ children, className, ...props }) {
|
|
86
|
+
const classes = cn("[&>svg]:size-3.5", className);
|
|
87
|
+
return /* @__PURE__ */ jsx("li", {
|
|
88
|
+
"data-slot": "breadcrumb-separator",
|
|
89
|
+
role: "presentation",
|
|
90
|
+
"aria-hidden": "true",
|
|
91
|
+
className: classes,
|
|
92
|
+
...props,
|
|
93
|
+
children: children ?? /* @__PURE__ */ jsx(ChevronRightIcon, {})
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Многоточие на месте свёрнутых пунктов длинной цепочки
|
|
98
|
+
* @param props - пропсы многоточия
|
|
99
|
+
* @returns иконка многоточия с текстом для скринридера
|
|
100
|
+
*/
|
|
101
|
+
function BreadcrumbEllipsis({ className, label = texts.more, ...props }) {
|
|
102
|
+
const classes = cn("flex", "size-5", "items-center", "justify-center", "[&>svg]:size-4", className);
|
|
103
|
+
return /* @__PURE__ */ jsxs("span", {
|
|
104
|
+
"data-slot": "breadcrumb-ellipsis",
|
|
105
|
+
role: "presentation",
|
|
106
|
+
"aria-hidden": "true",
|
|
107
|
+
className: classes,
|
|
108
|
+
...props,
|
|
109
|
+
children: [/* @__PURE__ */ jsx(MoreHorizontalIcon, {}), /* @__PURE__ */ jsx("span", {
|
|
110
|
+
className: "sr-only",
|
|
111
|
+
children: label
|
|
112
|
+
})]
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { BreadcrumbEllipsisPropsT, BreadcrumbItemPropsT, BreadcrumbLinkPropsT, BreadcrumbListPropsT, BreadcrumbPagePropsT, BreadcrumbPropsT, BreadcrumbSeparatorPropsT } from "./types.js";
|
|
2
|
+
import { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from "./breadcrumb.js";
|
|
3
|
+
export { Breadcrumb, BreadcrumbEllipsis, type BreadcrumbEllipsisPropsT, BreadcrumbItem, type BreadcrumbItemPropsT, BreadcrumbLink, type BreadcrumbLinkPropsT, BreadcrumbList, type BreadcrumbListPropsT, BreadcrumbPage, type BreadcrumbPagePropsT, type BreadcrumbPropsT, BreadcrumbSeparator, type BreadcrumbSeparatorPropsT };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from "./breadcrumb.js";
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ComponentProps } from "react";
|
|
2
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
3
|
+
/**
|
|
4
|
+
* Пропсы навигационной цепочки
|
|
5
|
+
*/
|
|
6
|
+
export type BreadcrumbPropsT = ComponentProps<'nav'> & {
|
|
7
|
+
/** Название навигации для скринридера (aria-label), по умолчанию «Навигационная цепочка» */
|
|
8
|
+
label?: string;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Пропсы списка навигационной цепочки
|
|
12
|
+
*/
|
|
13
|
+
export type BreadcrumbListPropsT = ComponentProps<'ol'>;
|
|
14
|
+
/**
|
|
15
|
+
* Пропсы пункта навигационной цепочки
|
|
16
|
+
*/
|
|
17
|
+
export type BreadcrumbItemPropsT = ComponentProps<'li'>;
|
|
18
|
+
/**
|
|
19
|
+
* Пропсы ссылки навигационной цепочки
|
|
20
|
+
*/
|
|
21
|
+
export type BreadcrumbLinkPropsT = useRender.ComponentProps<'a'>;
|
|
22
|
+
/**
|
|
23
|
+
* Пропсы текущей страницы навигационной цепочки
|
|
24
|
+
*/
|
|
25
|
+
export type BreadcrumbPagePropsT = ComponentProps<'span'>;
|
|
26
|
+
/**
|
|
27
|
+
* Пропсы разделителя навигационной цепочки
|
|
28
|
+
*/
|
|
29
|
+
export type BreadcrumbSeparatorPropsT = ComponentProps<'li'>;
|
|
30
|
+
/**
|
|
31
|
+
* Пропсы многоточия навигационной цепочки
|
|
32
|
+
*/
|
|
33
|
+
export type BreadcrumbEllipsisPropsT = ComponentProps<'span'> & {
|
|
34
|
+
/** Текст для скринридера, по умолчанию «Ещё» */
|
|
35
|
+
label?: string;
|
|
36
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { BubbleContentPropsT, BubbleGroupPropsT, BubblePropsT, BubbleReactionsPropsT } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Группа пузырей: подряд идущие сообщения одного автора
|
|
4
|
+
* @param props - пропсы группы
|
|
5
|
+
* @returns колонка пузырей
|
|
6
|
+
*/
|
|
7
|
+
export declare function BubbleGroup({ className, ...props }: BubbleGroupPropsT): import("react").JSX.Element;
|
|
8
|
+
/**
|
|
9
|
+
* Пузырь: сообщение в чате
|
|
10
|
+
* @param props - пропсы пузыря
|
|
11
|
+
* @returns пузырь
|
|
12
|
+
*/
|
|
13
|
+
export declare function Bubble({ variant, align, className, ...props }: BubblePropsT): import("react").JSX.Element;
|
|
14
|
+
/**
|
|
15
|
+
* Содержимое пузыря: текст сообщения на цветной подложке
|
|
16
|
+
* @param props - пропсы содержимого
|
|
17
|
+
* @returns содержимое или дочерний элемент в его стилях (render)
|
|
18
|
+
*/
|
|
19
|
+
export declare function BubbleContent({ render, className, ...props }: BubbleContentPropsT): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
20
|
+
/**
|
|
21
|
+
* Реакции пузыря: эмодзи или кнопка на краю сообщения
|
|
22
|
+
* @param props - пропсы реакций
|
|
23
|
+
* @returns плашка реакций
|
|
24
|
+
*/
|
|
25
|
+
export declare function BubbleReactions({ side, align, className, ...props }: BubbleReactionsPropsT): import("react").JSX.Element;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { cn } from "../../lib/utils.js";
|
|
2
|
+
import { bubbleReactionsVariants, bubbleVariants } from "./types.js";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
import { mergeProps } from "@base-ui/react/merge-props";
|
|
5
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
6
|
+
// src/components/bubble/bubble.tsx
|
|
7
|
+
/**
|
|
8
|
+
* Группа пузырей: подряд идущие сообщения одного автора
|
|
9
|
+
* @param props - пропсы группы
|
|
10
|
+
* @returns колонка пузырей
|
|
11
|
+
*/
|
|
12
|
+
function BubbleGroup({ className, ...props }) {
|
|
13
|
+
const classes = cn("flex", "min-w-0", "flex-col", "gap-2", className);
|
|
14
|
+
return /* @__PURE__ */ jsx("div", {
|
|
15
|
+
"data-slot": "bubble-group",
|
|
16
|
+
className: classes,
|
|
17
|
+
...props
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Пузырь: сообщение в чате
|
|
22
|
+
* @param props - пропсы пузыря
|
|
23
|
+
* @returns пузырь
|
|
24
|
+
*/
|
|
25
|
+
function Bubble({ variant = "default", align = "start", className, ...props }) {
|
|
26
|
+
const classes = cn(bubbleVariants({ variant }), className);
|
|
27
|
+
return /* @__PURE__ */ jsx("div", {
|
|
28
|
+
"data-slot": "bubble",
|
|
29
|
+
"data-variant": variant,
|
|
30
|
+
"data-align": align,
|
|
31
|
+
className: classes,
|
|
32
|
+
...props
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Содержимое пузыря: текст сообщения на цветной подложке
|
|
37
|
+
* @param props - пропсы содержимого
|
|
38
|
+
* @returns содержимое или дочерний элемент в его стилях (render)
|
|
39
|
+
*/
|
|
40
|
+
function BubbleContent({ render, className, ...props }) {
|
|
41
|
+
const classes = cn("w-fit", "max-w-full", "min-w-0", "overflow-hidden", "rounded-xl", "border", "border-transparent", "px-3", "py-2", "text-sm", "leading-relaxed", "wrap-break-word", "group-data-[align=end]/bubble:self-end", "[button]:cursor-pointer", "[button]:text-left", "[button,a]:transition-colors", "[button,a]:outline-none", "[button,a]:focus-visible:border-ring", "[button,a]:focus-visible:ring-3", "[button,a]:focus-visible:ring-ring/30", className);
|
|
42
|
+
return useRender({
|
|
43
|
+
defaultTagName: "div",
|
|
44
|
+
render,
|
|
45
|
+
props: mergeProps({
|
|
46
|
+
"data-slot": "bubble-content",
|
|
47
|
+
className: classes
|
|
48
|
+
}, props)
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Реакции пузыря: эмодзи или кнопка на краю сообщения
|
|
53
|
+
* @param props - пропсы реакций
|
|
54
|
+
* @returns плашка реакций
|
|
55
|
+
*/
|
|
56
|
+
function BubbleReactions({ side = "bottom", align = "end", className, ...props }) {
|
|
57
|
+
const classes = cn(bubbleReactionsVariants({
|
|
58
|
+
side,
|
|
59
|
+
align
|
|
60
|
+
}), className);
|
|
61
|
+
return /* @__PURE__ */ jsx("div", {
|
|
62
|
+
"data-slot": "bubble-reactions",
|
|
63
|
+
"data-align": align,
|
|
64
|
+
"data-side": side,
|
|
65
|
+
className: classes,
|
|
66
|
+
...props
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
export { Bubble, BubbleContent, BubbleGroup, BubbleReactions };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { BubbleContentPropsT, BubbleGroupPropsT, BubblePropsT, BubbleReactionsPropsT, bubbleReactionsVariants, bubbleVariants } from "./types.js";
|
|
2
|
+
import { Bubble, BubbleContent, BubbleGroup, BubbleReactions } from "./bubble.js";
|
|
3
|
+
export { Bubble, BubbleContent, type BubbleContentPropsT, BubbleGroup, type BubbleGroupPropsT, type BubblePropsT, BubbleReactions, type BubbleReactionsPropsT, bubbleReactionsVariants, bubbleVariants };
|