@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,38 @@
|
|
|
1
|
+
import { ButtonPropsT } from "../button/types.js";
|
|
2
|
+
import { FloatingAlignT } from "../../lib/floating.js";
|
|
3
|
+
import { Matcher } from "react-day-picker";
|
|
4
|
+
/**
|
|
5
|
+
* Пропсы выбора даты
|
|
6
|
+
*/
|
|
7
|
+
export type DatePickerPropsT = Omit<ButtonPropsT, 'value' | 'defaultValue' | 'onChange' | 'children' | 'variant' | 'size'> & {
|
|
8
|
+
/** Выбранная дата — контролируемый режим, вместе с onValueChange. null — дата не выбрана */
|
|
9
|
+
value?: Date | null;
|
|
10
|
+
/** Дата при первом рендере — неконтролируемый режим */
|
|
11
|
+
defaultValue?: Date | null;
|
|
12
|
+
/** Выбрана другая дата или выбор снят: новая дата или null */
|
|
13
|
+
onValueChange?: (value: Date | null) => void;
|
|
14
|
+
/** Календарь открыт — контролируемый режим, вместе с onOpenChange */
|
|
15
|
+
open?: boolean;
|
|
16
|
+
/** Календарь открыт при первом рендере */
|
|
17
|
+
defaultOpen?: boolean;
|
|
18
|
+
/** Календарь открыли или закрыли: новое состояние */
|
|
19
|
+
onOpenChange?: (open: boolean) => void;
|
|
20
|
+
/** Текст, пока дата не выбрана. По умолчанию «Выберите дату» */
|
|
21
|
+
placeholder?: string;
|
|
22
|
+
/** Формат даты в кнопке, как в date-fns. По умолчанию dd.MM.yyyy */
|
|
23
|
+
dateFormat?: string;
|
|
24
|
+
/** Закрывать календарь после выбора даты. По умолчанию true */
|
|
25
|
+
closeOnSelect?: boolean;
|
|
26
|
+
/** label — заголовок месяца, dropdown — списки месяца и года. По умолчанию label */
|
|
27
|
+
captionLayout?: 'label' | 'dropdown' | 'dropdown-months' | 'dropdown-years';
|
|
28
|
+
/** Первый месяц, до которого можно листать */
|
|
29
|
+
startMonth?: Date;
|
|
30
|
+
/** Последний месяц, до которого можно листать */
|
|
31
|
+
endMonth?: Date;
|
|
32
|
+
/** Недоступные даты: дата, массив, { before }, { after }, { dayOfWeek } или функция */
|
|
33
|
+
disabledDates?: Matcher | Matcher[];
|
|
34
|
+
/** Выравнивание календаря относительно кнопки. По умолчанию start */
|
|
35
|
+
align?: FloatingAlignT;
|
|
36
|
+
/** Классы окна с календарём */
|
|
37
|
+
contentClassName?: string;
|
|
38
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DateRangePickerPropsT } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Выбор периода: кнопка с датами начала и конца открывает календарь на два месяца
|
|
4
|
+
* @param props - пропсы; остальные пропсы уходят на кнопку (id, aria-invalid, disabled)
|
|
5
|
+
* @returns окно с календарём
|
|
6
|
+
*/
|
|
7
|
+
export declare function DateRangePicker({ value, defaultValue, onValueChange, open, defaultOpen, onOpenChange, placeholder, dateFormat, numberOfMonths, closeOnSelect, min, max, startMonth, endMonth, disabledDates, align, className, contentClassName, ...props }: DateRangePickerPropsT): import("react").JSX.Element;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../../lib/utils.js";
|
|
3
|
+
import { DATE_FORMAT, texts } from "../../lib/locale.js";
|
|
4
|
+
import { formatDate } from "../../lib/format.js";
|
|
5
|
+
import { Button } from "../button/button.js";
|
|
6
|
+
import { Calendar } from "../calendar/calendar.js";
|
|
7
|
+
import { useControllableState } from "../../lib/use-controllable-state.js";
|
|
8
|
+
import { Popover, PopoverContent, PopoverTrigger } from "../popover/popover.js";
|
|
9
|
+
import { CalendarIcon } from "lucide-react";
|
|
10
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
11
|
+
// src/components/date-range-picker/date-range-picker.tsx
|
|
12
|
+
/**
|
|
13
|
+
* Текст периода: «20.01.2026 – 09.02.2026» или только начало
|
|
14
|
+
* @param range - период
|
|
15
|
+
* @param dateFormat - формат дат
|
|
16
|
+
* @returns текст или null, если начало не выбрано
|
|
17
|
+
*/
|
|
18
|
+
function formatRange(range, dateFormat) {
|
|
19
|
+
if (!range?.from) return null;
|
|
20
|
+
const from = formatDate(range.from, dateFormat);
|
|
21
|
+
if (!range.to) return from;
|
|
22
|
+
return `${from} – ${formatDate(range.to, dateFormat)}`;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Выбор периода: кнопка с датами начала и конца открывает календарь на два месяца
|
|
26
|
+
* @param props - пропсы; остальные пропсы уходят на кнопку (id, aria-invalid, disabled)
|
|
27
|
+
* @returns окно с календарём
|
|
28
|
+
*/
|
|
29
|
+
function DateRangePicker({ value, defaultValue = null, onValueChange, open, defaultOpen = false, onOpenChange, placeholder = texts.pickDateRange, dateFormat = DATE_FORMAT, numberOfMonths = 2, closeOnSelect = false, min, max, startMonth, endMonth, disabledDates, align = "start", className, contentClassName, ...props }) {
|
|
30
|
+
const [range, setRange] = useControllableState({
|
|
31
|
+
prop: value,
|
|
32
|
+
defaultProp: defaultValue,
|
|
33
|
+
onChange: onValueChange,
|
|
34
|
+
caller: "DateRangePicker"
|
|
35
|
+
});
|
|
36
|
+
const [isOpen, setOpen] = useControllableState({
|
|
37
|
+
prop: open,
|
|
38
|
+
defaultProp: defaultOpen,
|
|
39
|
+
onChange: onOpenChange,
|
|
40
|
+
caller: "DateRangePicker"
|
|
41
|
+
});
|
|
42
|
+
const text = formatRange(range, dateFormat);
|
|
43
|
+
const isEmpty = text === null;
|
|
44
|
+
const label = text ?? placeholder;
|
|
45
|
+
const selected = range ?? void 0;
|
|
46
|
+
const classes = cn("w-60", "justify-start", "px-2.5", "text-left", "font-normal", "data-[empty=true]:text-muted-foreground", className);
|
|
47
|
+
const contentClasses = cn("w-auto", "overflow-hidden", "p-0", contentClassName);
|
|
48
|
+
/**
|
|
49
|
+
* Изменился период в календаре: сохранить и закрыть, если выбраны обе даты
|
|
50
|
+
* @param next - новый период или undefined, если выбор снят
|
|
51
|
+
*/
|
|
52
|
+
const selectRange = (next) => {
|
|
53
|
+
setRange(next ?? null);
|
|
54
|
+
if (closeOnSelect && next?.from && next.to) setOpen(false);
|
|
55
|
+
};
|
|
56
|
+
return /* @__PURE__ */ jsxs(Popover, {
|
|
57
|
+
open: isOpen,
|
|
58
|
+
onOpenChange: setOpen,
|
|
59
|
+
children: [/* @__PURE__ */ jsxs(PopoverTrigger, {
|
|
60
|
+
render: /* @__PURE__ */ jsx(Button, {
|
|
61
|
+
"data-slot": "date-range-picker",
|
|
62
|
+
"data-empty": isEmpty,
|
|
63
|
+
variant: "outline",
|
|
64
|
+
className: classes,
|
|
65
|
+
...props
|
|
66
|
+
}),
|
|
67
|
+
children: [/* @__PURE__ */ jsx(CalendarIcon, { className: "text-muted-foreground" }), /* @__PURE__ */ jsx("span", {
|
|
68
|
+
className: "truncate",
|
|
69
|
+
children: label
|
|
70
|
+
})]
|
|
71
|
+
}), /* @__PURE__ */ jsx(PopoverContent, {
|
|
72
|
+
className: contentClasses,
|
|
73
|
+
align,
|
|
74
|
+
children: /* @__PURE__ */ jsx(Calendar, {
|
|
75
|
+
mode: "range",
|
|
76
|
+
selected,
|
|
77
|
+
onSelect: selectRange,
|
|
78
|
+
defaultMonth: selected?.from,
|
|
79
|
+
numberOfMonths,
|
|
80
|
+
min,
|
|
81
|
+
max,
|
|
82
|
+
startMonth,
|
|
83
|
+
endMonth,
|
|
84
|
+
disabled: disabledDates
|
|
85
|
+
})
|
|
86
|
+
})]
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
export { DateRangePicker };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { DateRangePicker } from "./date-range-picker.js";
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { ButtonPropsT } from "../button/types.js";
|
|
2
|
+
import { CalendarRangeT } from "../calendar/types.js";
|
|
3
|
+
import { FloatingAlignT } from "../../lib/floating.js";
|
|
4
|
+
import { Matcher } from "react-day-picker";
|
|
5
|
+
/**
|
|
6
|
+
* Пропсы выбора периода
|
|
7
|
+
*/
|
|
8
|
+
export type DateRangePickerPropsT = Omit<ButtonPropsT, 'value' | 'defaultValue' | 'onChange' | 'children' | 'variant' | 'size'> & {
|
|
9
|
+
/** Выбранный период — контролируемый режим, вместе с onValueChange. null — период не выбран */
|
|
10
|
+
value?: CalendarRangeT | null;
|
|
11
|
+
/** Период при первом рендере — неконтролируемый режим */
|
|
12
|
+
defaultValue?: CalendarRangeT | null;
|
|
13
|
+
/** Изменился период или выбор снят: { from, to } или null */
|
|
14
|
+
onValueChange?: (value: CalendarRangeT | null) => void;
|
|
15
|
+
/** Календарь открыт — контролируемый режим, вместе с onOpenChange */
|
|
16
|
+
open?: boolean;
|
|
17
|
+
/** Календарь открыт при первом рендере */
|
|
18
|
+
defaultOpen?: boolean;
|
|
19
|
+
/** Календарь открыли или закрыли: новое состояние */
|
|
20
|
+
onOpenChange?: (open: boolean) => void;
|
|
21
|
+
/** Текст, пока период не выбран. По умолчанию «Выберите период» */
|
|
22
|
+
placeholder?: string;
|
|
23
|
+
/** Формат дат в кнопке, как в date-fns. По умолчанию dd.MM.yyyy */
|
|
24
|
+
dateFormat?: string;
|
|
25
|
+
/** Сколько месяцев показывать рядом. По умолчанию 2 */
|
|
26
|
+
numberOfMonths?: number;
|
|
27
|
+
/** Закрывать календарь, когда выбраны обе даты. По умолчанию false */
|
|
28
|
+
closeOnSelect?: boolean;
|
|
29
|
+
/** Минимальная длина периода в днях */
|
|
30
|
+
min?: number;
|
|
31
|
+
/** Максимальная длина периода в днях */
|
|
32
|
+
max?: number;
|
|
33
|
+
/** Первый месяц, до которого можно листать */
|
|
34
|
+
startMonth?: Date;
|
|
35
|
+
/** Последний месяц, до которого можно листать */
|
|
36
|
+
endMonth?: Date;
|
|
37
|
+
/** Недоступные даты: дата, массив, { before }, { after }, { dayOfWeek } или функция */
|
|
38
|
+
disabledDates?: Matcher | Matcher[];
|
|
39
|
+
/** Выравнивание календаря относительно кнопки. По умолчанию start */
|
|
40
|
+
align?: FloatingAlignT;
|
|
41
|
+
/** Классы окна с календарём */
|
|
42
|
+
contentClassName?: string;
|
|
43
|
+
};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { DialogClosePropsT, DialogContentPropsT, DialogDescriptionPropsT, DialogFooterPropsT, DialogHeaderPropsT, DialogOverlayPropsT, DialogPortalPropsT, DialogPropsT, DialogTitlePropsT, DialogTriggerPropsT } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Диалог: окно поверх страницы, которое требует внимания пользователя
|
|
4
|
+
* @param props - пропсы диалога
|
|
5
|
+
* @returns корень диалога без своей разметки
|
|
6
|
+
*/
|
|
7
|
+
export declare function Dialog({ onOpenChange, ...props }: DialogPropsT): import("react").JSX.Element;
|
|
8
|
+
/**
|
|
9
|
+
* Кнопка открытия диалога. Свою кнопку — через render={<Button />}
|
|
10
|
+
* @param props - пропсы кнопки
|
|
11
|
+
* @returns кнопка с aria-haspopup="dialog"
|
|
12
|
+
*/
|
|
13
|
+
export declare function DialogTrigger(props: DialogTriggerPropsT): import("react").JSX.Element;
|
|
14
|
+
/**
|
|
15
|
+
* Портал: переносит оверлей и окно в конец body
|
|
16
|
+
* @param props - пропсы портала
|
|
17
|
+
* @returns портал
|
|
18
|
+
*/
|
|
19
|
+
export declare function DialogPortal(props: DialogPortalPropsT): import("react").JSX.Element;
|
|
20
|
+
/**
|
|
21
|
+
* Кнопка закрытия диалога: любая кнопка внутри окна, которая закрывает его. Свою — через render={<Button />}
|
|
22
|
+
* @param props - пропсы кнопки
|
|
23
|
+
* @returns кнопка
|
|
24
|
+
*/
|
|
25
|
+
export declare function DialogClose(props: DialogClosePropsT): import("react").JSX.Element;
|
|
26
|
+
/**
|
|
27
|
+
* Оверлей: затемняет и размывает страницу под диалогом
|
|
28
|
+
* @param props - пропсы оверлея
|
|
29
|
+
* @returns полупрозрачный слой на весь экран
|
|
30
|
+
*/
|
|
31
|
+
export declare function DialogOverlay({ className, ...props }: DialogOverlayPropsT): import("react").JSX.Element;
|
|
32
|
+
/**
|
|
33
|
+
* Окно диалога: рендерится в портале поверх оверлея, по центру экрана
|
|
34
|
+
* @param props - пропсы окна
|
|
35
|
+
* @returns портал с оверлеем и окном
|
|
36
|
+
*/
|
|
37
|
+
export declare function DialogContent({ className, children, showCloseButton, closeLabel, ...props }: DialogContentPropsT): import("react").JSX.Element;
|
|
38
|
+
/**
|
|
39
|
+
* Шапка диалога: заголовок и описание
|
|
40
|
+
* @param props - пропсы шапки
|
|
41
|
+
* @returns блок
|
|
42
|
+
*/
|
|
43
|
+
export declare function DialogHeader({ className, ...props }: DialogHeaderPropsT): import("react").JSX.Element;
|
|
44
|
+
/**
|
|
45
|
+
* Подвал диалога: кнопки действий, на узком экране — столбиком
|
|
46
|
+
* @param props - пропсы подвала
|
|
47
|
+
* @returns блок с серым фоном и разделителем
|
|
48
|
+
*/
|
|
49
|
+
export declare function DialogFooter({ className, showCloseButton, closeLabel, children, ...props }: DialogFooterPropsT): import("react").JSX.Element;
|
|
50
|
+
/**
|
|
51
|
+
* Заголовок диалога: озвучивается при открытии
|
|
52
|
+
* @param props - пропсы заголовка
|
|
53
|
+
* @returns h2
|
|
54
|
+
*/
|
|
55
|
+
export declare function DialogTitle({ className, ...props }: DialogTitlePropsT): import("react").JSX.Element;
|
|
56
|
+
/**
|
|
57
|
+
* Описание диалога: озвучивается после заголовка
|
|
58
|
+
* @param props - пропсы описания
|
|
59
|
+
* @returns p
|
|
60
|
+
*/
|
|
61
|
+
export declare function DialogDescription({ className, ...props }: DialogDescriptionPropsT): import("react").JSX.Element;
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../../lib/utils.js";
|
|
3
|
+
import { texts } from "../../lib/locale.js";
|
|
4
|
+
import { Button } from "../button/button.js";
|
|
5
|
+
import { XIcon } from "lucide-react";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
import { Dialog } from "@base-ui/react/dialog";
|
|
8
|
+
// src/components/dialog/dialog.tsx
|
|
9
|
+
/**
|
|
10
|
+
* Диалог: окно поверх страницы, которое требует внимания пользователя
|
|
11
|
+
* @param props - пропсы диалога
|
|
12
|
+
* @returns корень диалога без своей разметки
|
|
13
|
+
*/
|
|
14
|
+
function Dialog$1({ onOpenChange, ...props }) {
|
|
15
|
+
/**
|
|
16
|
+
* Диалог открыли или закрыли: наружу только флаг
|
|
17
|
+
* @param open - открыт ли
|
|
18
|
+
*/
|
|
19
|
+
const handleOpenChange = (open) => onOpenChange?.(open);
|
|
20
|
+
return /* @__PURE__ */ jsx(Dialog.Root, {
|
|
21
|
+
"data-slot": "dialog",
|
|
22
|
+
onOpenChange: handleOpenChange,
|
|
23
|
+
...props
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Кнопка открытия диалога. Свою кнопку — через render={<Button />}
|
|
28
|
+
* @param props - пропсы кнопки
|
|
29
|
+
* @returns кнопка с aria-haspopup="dialog"
|
|
30
|
+
*/
|
|
31
|
+
function DialogTrigger(props) {
|
|
32
|
+
return /* @__PURE__ */ jsx(Dialog.Trigger, {
|
|
33
|
+
"data-slot": "dialog-trigger",
|
|
34
|
+
...props
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Портал: переносит оверлей и окно в конец body
|
|
39
|
+
* @param props - пропсы портала
|
|
40
|
+
* @returns портал
|
|
41
|
+
*/
|
|
42
|
+
function DialogPortal(props) {
|
|
43
|
+
return /* @__PURE__ */ jsx(Dialog.Portal, {
|
|
44
|
+
"data-slot": "dialog-portal",
|
|
45
|
+
...props
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Кнопка закрытия диалога: любая кнопка внутри окна, которая закрывает его. Свою — через render={<Button />}
|
|
50
|
+
* @param props - пропсы кнопки
|
|
51
|
+
* @returns кнопка
|
|
52
|
+
*/
|
|
53
|
+
function DialogClose(props) {
|
|
54
|
+
return /* @__PURE__ */ jsx(Dialog.Close, {
|
|
55
|
+
"data-slot": "dialog-close",
|
|
56
|
+
...props
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Оверлей: затемняет и размывает страницу под диалогом
|
|
61
|
+
* @param props - пропсы оверлея
|
|
62
|
+
* @returns полупрозрачный слой на весь экран
|
|
63
|
+
*/
|
|
64
|
+
function DialogOverlay({ className, ...props }) {
|
|
65
|
+
const classes = cn("fixed", "inset-0", "isolate", "z-50", "bg-black/10", "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", className);
|
|
66
|
+
return /* @__PURE__ */ jsx(Dialog.Backdrop, {
|
|
67
|
+
"data-slot": "dialog-overlay",
|
|
68
|
+
className: classes,
|
|
69
|
+
...props
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Окно диалога: рендерится в портале поверх оверлея, по центру экрана
|
|
74
|
+
* @param props - пропсы окна
|
|
75
|
+
* @returns портал с оверлеем и окном
|
|
76
|
+
*/
|
|
77
|
+
function DialogContent({ className, children, showCloseButton = true, closeLabel = texts.close, ...props }) {
|
|
78
|
+
const classes = cn("fixed", "top-1/2", "left-1/2", "z-50", "grid", "w-full", "max-w-[calc(100%-2rem)]", "-translate-x-1/2", "-translate-y-1/2", "gap-4", "rounded-xl", "bg-popover", "p-4", "text-sm", "text-popover-foreground", "ring-1", "ring-foreground/10", "duration-100", "outline-none", "sm:max-w-sm", "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", className);
|
|
79
|
+
let closeButton = null;
|
|
80
|
+
if (showCloseButton) {
|
|
81
|
+
const closeRender = /* @__PURE__ */ jsx(Button, {
|
|
82
|
+
variant: "ghost",
|
|
83
|
+
size: "icon-sm",
|
|
84
|
+
className: "absolute top-2 right-2"
|
|
85
|
+
});
|
|
86
|
+
closeButton = /* @__PURE__ */ jsxs(Dialog.Close, {
|
|
87
|
+
"data-slot": "dialog-close",
|
|
88
|
+
render: closeRender,
|
|
89
|
+
children: [/* @__PURE__ */ jsx(XIcon, {}), /* @__PURE__ */ jsx("span", {
|
|
90
|
+
className: "sr-only",
|
|
91
|
+
children: closeLabel
|
|
92
|
+
})]
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
return /* @__PURE__ */ jsxs(DialogPortal, { children: [/* @__PURE__ */ jsx(DialogOverlay, {}), /* @__PURE__ */ jsxs(Dialog.Popup, {
|
|
96
|
+
"data-slot": "dialog-content",
|
|
97
|
+
className: classes,
|
|
98
|
+
...props,
|
|
99
|
+
children: [children, closeButton]
|
|
100
|
+
})] });
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Шапка диалога: заголовок и описание
|
|
104
|
+
* @param props - пропсы шапки
|
|
105
|
+
* @returns блок
|
|
106
|
+
*/
|
|
107
|
+
function DialogHeader({ className, ...props }) {
|
|
108
|
+
const classes = cn("flex", "flex-col", "gap-2", className);
|
|
109
|
+
return /* @__PURE__ */ jsx("div", {
|
|
110
|
+
"data-slot": "dialog-header",
|
|
111
|
+
className: classes,
|
|
112
|
+
...props
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Подвал диалога: кнопки действий, на узком экране — столбиком
|
|
117
|
+
* @param props - пропсы подвала
|
|
118
|
+
* @returns блок с серым фоном и разделителем
|
|
119
|
+
*/
|
|
120
|
+
function DialogFooter({ className, showCloseButton = false, closeLabel = texts.close, children, ...props }) {
|
|
121
|
+
const classes = cn("-mx-4", "-mb-4", "flex", "flex-col-reverse", "gap-2", "rounded-b-xl", "border-t", "bg-muted/50", "p-4", "sm:flex-row", "sm:justify-end", className);
|
|
122
|
+
let closeButton = null;
|
|
123
|
+
if (showCloseButton) closeButton = /* @__PURE__ */ jsx(Dialog.Close, {
|
|
124
|
+
render: /* @__PURE__ */ jsx(Button, { variant: "outline" }),
|
|
125
|
+
children: closeLabel
|
|
126
|
+
});
|
|
127
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
128
|
+
"data-slot": "dialog-footer",
|
|
129
|
+
className: classes,
|
|
130
|
+
...props,
|
|
131
|
+
children: [children, closeButton]
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Заголовок диалога: озвучивается при открытии
|
|
136
|
+
* @param props - пропсы заголовка
|
|
137
|
+
* @returns h2
|
|
138
|
+
*/
|
|
139
|
+
function DialogTitle({ className, ...props }) {
|
|
140
|
+
const classes = cn("text-base", "leading-none", "font-medium", className);
|
|
141
|
+
return /* @__PURE__ */ jsx(Dialog.Title, {
|
|
142
|
+
"data-slot": "dialog-title",
|
|
143
|
+
className: classes,
|
|
144
|
+
...props
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Описание диалога: озвучивается после заголовка
|
|
149
|
+
* @param props - пропсы описания
|
|
150
|
+
* @returns p
|
|
151
|
+
*/
|
|
152
|
+
function DialogDescription({ className, ...props }) {
|
|
153
|
+
const classes = cn("text-sm", "text-muted-foreground", "*:[a]:underline", "*:[a]:underline-offset-3", "*:[a]:hover:text-foreground", className);
|
|
154
|
+
return /* @__PURE__ */ jsx(Dialog.Description, {
|
|
155
|
+
"data-slot": "dialog-description",
|
|
156
|
+
className: classes,
|
|
157
|
+
...props
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
export { Dialog$1 as Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { DialogClosePropsT, DialogContentPropsT, DialogDescriptionPropsT, DialogFooterPropsT, DialogHeaderPropsT, DialogOverlayPropsT, DialogPortalPropsT, DialogPropsT, DialogTitlePropsT, DialogTriggerPropsT } from "./types.js";
|
|
2
|
+
import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from "./dialog.js";
|
|
3
|
+
export { Dialog, DialogClose, type DialogClosePropsT, DialogContent, type DialogContentPropsT, DialogDescription, type DialogDescriptionPropsT, DialogFooter, type DialogFooterPropsT, DialogHeader, type DialogHeaderPropsT, DialogOverlay, type DialogOverlayPropsT, DialogPortal, type DialogPortalPropsT, type DialogPropsT, DialogTitle, type DialogTitlePropsT, DialogTrigger, type DialogTriggerPropsT };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from "./dialog.js";
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { PartPropsT } from "../../lib/part-props.js";
|
|
2
|
+
import { ComponentProps } from "react";
|
|
3
|
+
import { Dialog } from "@base-ui/react/dialog";
|
|
4
|
+
/**
|
|
5
|
+
* Пропсы диалога
|
|
6
|
+
*/
|
|
7
|
+
export type DialogPropsT = Omit<Dialog.Root.Props, 'onOpenChange'> & {
|
|
8
|
+
/** Диалог открыт — контролируемый режим, вместе с onOpenChange */
|
|
9
|
+
open?: boolean;
|
|
10
|
+
/** Диалог открыт при первом рендере — неконтролируемый режим */
|
|
11
|
+
defaultOpen?: boolean;
|
|
12
|
+
/** Диалог открыли или закрыли: новое состояние */
|
|
13
|
+
onOpenChange?: (open: boolean) => void;
|
|
14
|
+
/** Модальный режим: страница под диалогом недоступна, фокус заперт внутри. По умолчанию true */
|
|
15
|
+
modal?: boolean | 'trap-focus';
|
|
16
|
+
/** Не закрывать диалог нажатием вне окна */
|
|
17
|
+
disablePointerDismissal?: boolean;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Пропсы кнопки открытия
|
|
21
|
+
*/
|
|
22
|
+
export type DialogTriggerPropsT = PartPropsT<Dialog.Trigger.Props>;
|
|
23
|
+
/**
|
|
24
|
+
* Пропсы портала
|
|
25
|
+
*/
|
|
26
|
+
export type DialogPortalPropsT = Dialog.Portal.Props;
|
|
27
|
+
/**
|
|
28
|
+
* Пропсы кнопки закрытия
|
|
29
|
+
*/
|
|
30
|
+
export type DialogClosePropsT = PartPropsT<Dialog.Close.Props>;
|
|
31
|
+
/**
|
|
32
|
+
* Пропсы оверлея
|
|
33
|
+
*/
|
|
34
|
+
export type DialogOverlayPropsT = PartPropsT<Dialog.Backdrop.Props>;
|
|
35
|
+
/**
|
|
36
|
+
* Пропсы окна диалога
|
|
37
|
+
*/
|
|
38
|
+
export type DialogContentPropsT = PartPropsT<Dialog.Popup.Props> & {
|
|
39
|
+
/** Показать кнопку-крестик в правом верхнем углу. По умолчанию true */
|
|
40
|
+
showCloseButton?: boolean;
|
|
41
|
+
/** Подпись крестика для скринридеров */
|
|
42
|
+
closeLabel?: string;
|
|
43
|
+
/** Куда перевести фокус при открытии: элемент или false — оставить на месте */
|
|
44
|
+
initialFocus?: Dialog.Popup.Props['initialFocus'];
|
|
45
|
+
/** Куда вернуть фокус при закрытии: элемент или false — никуда */
|
|
46
|
+
finalFocus?: Dialog.Popup.Props['finalFocus'];
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Пропсы шапки
|
|
50
|
+
*/
|
|
51
|
+
export type DialogHeaderPropsT = ComponentProps<'div'>;
|
|
52
|
+
/**
|
|
53
|
+
* Пропсы подвала
|
|
54
|
+
*/
|
|
55
|
+
export type DialogFooterPropsT = ComponentProps<'div'> & {
|
|
56
|
+
/** Добавить в конец кнопку «Закрыть» */
|
|
57
|
+
showCloseButton?: boolean;
|
|
58
|
+
/** Текст кнопки «Закрыть» */
|
|
59
|
+
closeLabel?: string;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Пропсы заголовка
|
|
63
|
+
*/
|
|
64
|
+
export type DialogTitlePropsT = PartPropsT<Dialog.Title.Props>;
|
|
65
|
+
/**
|
|
66
|
+
* Пропсы описания
|
|
67
|
+
*/
|
|
68
|
+
export type DialogDescriptionPropsT = PartPropsT<Dialog.Description.Props>;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { DrawerClosePropsT, DrawerContentPropsT, DrawerDescriptionPropsT, DrawerFooterPropsT, DrawerHeaderPropsT, DrawerOverlayPropsT, DrawerPortalPropsT, DrawerPropsT, DrawerSwipeHandlePropsT, DrawerTitlePropsT, DrawerTriggerPropsT } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Шторка: выезжает с края экрана и закрывается свайпом. Шторка внутри шторки
|
|
4
|
+
* становится вложенной: предыдущие уходят назад стопкой
|
|
5
|
+
* @param props - пропсы шторки
|
|
6
|
+
* @returns корень шторки без своей разметки
|
|
7
|
+
*/
|
|
8
|
+
export declare function Drawer({ modal, showSwipeHandle, snapPoints, swipeDirection, onOpenChange, onSnapPointChange, ...props }: DrawerPropsT): import("react").JSX.Element;
|
|
9
|
+
/**
|
|
10
|
+
* Кнопка открытия шторки. Свою кнопку передают через render={<Button />}
|
|
11
|
+
* @param props - пропсы кнопки
|
|
12
|
+
* @returns кнопка
|
|
13
|
+
*/
|
|
14
|
+
export declare function DrawerTrigger(props: DrawerTriggerPropsT): import("react").JSX.Element;
|
|
15
|
+
/**
|
|
16
|
+
* Портал: выносит шторку в конец body. DrawerContent рендерит его сам
|
|
17
|
+
* @param props - пропсы портала
|
|
18
|
+
* @returns портал
|
|
19
|
+
*/
|
|
20
|
+
export declare function DrawerPortal(props: DrawerPortalPropsT): import("react").JSX.Element;
|
|
21
|
+
/**
|
|
22
|
+
* Кнопка закрытия шторки. Свою кнопку передают через render={<Button />}
|
|
23
|
+
* @param props - пропсы кнопки
|
|
24
|
+
* @returns кнопка
|
|
25
|
+
*/
|
|
26
|
+
export declare function DrawerClose(props: DrawerClosePropsT): import("react").JSX.Element;
|
|
27
|
+
/**
|
|
28
|
+
* Затемнение под шторкой: светлеет вместе со свайпом. DrawerContent рендерит его сам в модальном режиме
|
|
29
|
+
* @param props - пропсы затемнения
|
|
30
|
+
* @returns слой на весь экран
|
|
31
|
+
*/
|
|
32
|
+
export declare function DrawerOverlay({ className, ...props }: DrawerOverlayPropsT): import("react").JSX.Element;
|
|
33
|
+
/**
|
|
34
|
+
* Ручка: полоска у края шторки, за которую её тянут. Показывается при showSwipeHandle
|
|
35
|
+
* @param props - пропсы ручки
|
|
36
|
+
* @returns полоска
|
|
37
|
+
*/
|
|
38
|
+
export declare function DrawerSwipeHandle({ className, ...props }: DrawerSwipeHandlePropsT): import("react").JSX.Element;
|
|
39
|
+
/**
|
|
40
|
+
* Окно шторки: рендерится в портале поверх затемнения. Содержимое скрывается,
|
|
41
|
+
* когда поверх открыта вложенная шторка
|
|
42
|
+
* @param props - пропсы окна
|
|
43
|
+
* @returns портал с затемнением и окном
|
|
44
|
+
*/
|
|
45
|
+
export declare function DrawerContent({ className, children, ...props }: DrawerContentPropsT): import("react").JSX.Element;
|
|
46
|
+
/**
|
|
47
|
+
* Шапка шторки: заголовок и описание. Снизу и сверху — по центру, на широком экране — слева
|
|
48
|
+
* @param props - пропсы шапки
|
|
49
|
+
* @returns блок
|
|
50
|
+
*/
|
|
51
|
+
export declare function DrawerHeader({ className, ...props }: DrawerHeaderPropsT): import("react").JSX.Element;
|
|
52
|
+
/**
|
|
53
|
+
* Подвал шторки: прижат к низу, кнопки столбиком
|
|
54
|
+
* @param props - пропсы подвала
|
|
55
|
+
* @returns блок
|
|
56
|
+
*/
|
|
57
|
+
export declare function DrawerFooter({ className, ...props }: DrawerFooterPropsT): import("react").JSX.Element;
|
|
58
|
+
/**
|
|
59
|
+
* Заголовок шторки: озвучивается при открытии
|
|
60
|
+
* @param props - пропсы заголовка
|
|
61
|
+
* @returns h2
|
|
62
|
+
*/
|
|
63
|
+
export declare function DrawerTitle({ className, ...props }: DrawerTitlePropsT): import("react").JSX.Element;
|
|
64
|
+
/**
|
|
65
|
+
* Описание шторки: озвучивается после заголовка
|
|
66
|
+
* @param props - пропсы описания
|
|
67
|
+
* @returns p
|
|
68
|
+
*/
|
|
69
|
+
export declare function DrawerDescription({ className, ...props }: DrawerDescriptionPropsT): import("react").JSX.Element;
|