@miaixz/ui 0.5.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 +202 -0
- package/NOTICE +7 -0
- package/README.md +190 -0
- package/dist/accessibility/focus-scope.d.ts +57 -0
- package/dist/accessibility/focus-scope.d.ts.map +1 -0
- package/dist/accessibility/focus-scope.js +272 -0
- package/dist/accessibility/focus-scope.js.map +1 -0
- package/dist/accessibility/index.d.ts +2 -0
- package/dist/accessibility/index.d.ts.map +1 -0
- package/dist/accessibility/index.js +2 -0
- package/dist/accessibility/index.js.map +1 -0
- package/dist/components/alert/alert.d.ts +8 -0
- package/dist/components/alert/alert.d.ts.map +1 -0
- package/dist/components/alert/alert.js +24 -0
- package/dist/components/alert/alert.js.map +1 -0
- package/dist/components/alert/alert.types.d.ts +43 -0
- package/dist/components/alert/alert.types.d.ts.map +1 -0
- package/dist/components/alert/alert.types.js +2 -0
- package/dist/components/alert/alert.types.js.map +1 -0
- package/dist/components/alert/index.d.ts +4 -0
- package/dist/components/alert/index.d.ts.map +1 -0
- package/dist/components/alert/index.js +2 -0
- package/dist/components/alert/index.js.map +1 -0
- package/dist/components/avatar/avatar.d.ts +8 -0
- package/dist/components/avatar/avatar.d.ts.map +1 -0
- package/dist/components/avatar/avatar.js +29 -0
- package/dist/components/avatar/avatar.js.map +1 -0
- package/dist/components/avatar/avatar.types.d.ts +35 -0
- package/dist/components/avatar/avatar.types.d.ts.map +1 -0
- package/dist/components/avatar/avatar.types.js +2 -0
- package/dist/components/avatar/avatar.types.js.map +1 -0
- package/dist/components/avatar/index.d.ts +4 -0
- package/dist/components/avatar/index.d.ts.map +1 -0
- package/dist/components/avatar/index.js +2 -0
- package/dist/components/avatar/index.js.map +1 -0
- package/dist/components/badge/badge.d.ts +8 -0
- package/dist/components/badge/badge.d.ts.map +1 -0
- package/dist/components/badge/badge.js +12 -0
- package/dist/components/badge/badge.js.map +1 -0
- package/dist/components/badge/badge.types.d.ts +37 -0
- package/dist/components/badge/badge.types.d.ts.map +1 -0
- package/dist/components/badge/badge.types.js +2 -0
- package/dist/components/badge/badge.types.js.map +1 -0
- package/dist/components/badge/index.d.ts +3 -0
- package/dist/components/badge/index.d.ts.map +1 -0
- package/dist/components/badge/index.js +2 -0
- package/dist/components/badge/index.js.map +1 -0
- package/dist/components/breadcrumb/breadcrumb.d.ts +14 -0
- package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -0
- package/dist/components/breadcrumb/breadcrumb.js +22 -0
- package/dist/components/breadcrumb/breadcrumb.js.map +1 -0
- package/dist/components/breadcrumb/breadcrumb.types.d.ts +30 -0
- package/dist/components/breadcrumb/breadcrumb.types.d.ts.map +1 -0
- package/dist/components/breadcrumb/breadcrumb.types.js +2 -0
- package/dist/components/breadcrumb/breadcrumb.types.js.map +1 -0
- package/dist/components/breadcrumb/index.d.ts +3 -0
- package/dist/components/breadcrumb/index.d.ts.map +1 -0
- package/dist/components/breadcrumb/index.js +2 -0
- package/dist/components/breadcrumb/index.js.map +1 -0
- package/dist/components/button/button.d.ts +8 -0
- package/dist/components/button/button.d.ts.map +1 -0
- package/dist/components/button/button.js +16 -0
- package/dist/components/button/button.js.map +1 -0
- package/dist/components/button/button.types.d.ts +99 -0
- package/dist/components/button/button.types.d.ts.map +1 -0
- package/dist/components/button/button.types.js +2 -0
- package/dist/components/button/button.types.js.map +1 -0
- package/dist/components/button/index.d.ts +3 -0
- package/dist/components/button/index.d.ts.map +1 -0
- package/dist/components/button/index.js +2 -0
- package/dist/components/button/index.js.map +1 -0
- package/dist/components/checkbox/checkbox.d.ts +8 -0
- package/dist/components/checkbox/checkbox.d.ts.map +1 -0
- package/dist/components/checkbox/checkbox.js +18 -0
- package/dist/components/checkbox/checkbox.js.map +1 -0
- package/dist/components/checkbox/checkbox.types.d.ts +23 -0
- package/dist/components/checkbox/checkbox.types.d.ts.map +1 -0
- package/dist/components/checkbox/checkbox.types.js +2 -0
- package/dist/components/checkbox/checkbox.types.js.map +1 -0
- package/dist/components/checkbox/index.d.ts +3 -0
- package/dist/components/checkbox/index.d.ts.map +1 -0
- package/dist/components/checkbox/index.js +2 -0
- package/dist/components/checkbox/index.js.map +1 -0
- package/dist/components/combobox/combobox.d.ts +123 -0
- package/dist/components/combobox/combobox.d.ts.map +1 -0
- package/dist/components/combobox/combobox.js +378 -0
- package/dist/components/combobox/combobox.js.map +1 -0
- package/dist/components/combobox/combobox.types.d.ts +108 -0
- package/dist/components/combobox/combobox.types.d.ts.map +1 -0
- package/dist/components/combobox/combobox.types.js +2 -0
- package/dist/components/combobox/combobox.types.js.map +1 -0
- package/dist/components/combobox/index.d.ts +3 -0
- package/dist/components/combobox/index.d.ts.map +1 -0
- package/dist/components/combobox/index.js +2 -0
- package/dist/components/combobox/index.js.map +1 -0
- package/dist/components/confirm-dialog/confirm-dialog.d.ts +10 -0
- package/dist/components/confirm-dialog/confirm-dialog.d.ts.map +1 -0
- package/dist/components/confirm-dialog/confirm-dialog.js +70 -0
- package/dist/components/confirm-dialog/confirm-dialog.js.map +1 -0
- package/dist/components/confirm-dialog/confirm-dialog.types.d.ts +63 -0
- package/dist/components/confirm-dialog/confirm-dialog.types.d.ts.map +1 -0
- package/dist/components/confirm-dialog/confirm-dialog.types.js +2 -0
- package/dist/components/confirm-dialog/confirm-dialog.types.js.map +1 -0
- package/dist/components/confirm-dialog/index.d.ts +3 -0
- package/dist/components/confirm-dialog/index.d.ts.map +1 -0
- package/dist/components/confirm-dialog/index.js +2 -0
- package/dist/components/confirm-dialog/index.js.map +1 -0
- package/dist/components/data-table/data-table.d.ts +9 -0
- package/dist/components/data-table/data-table.d.ts.map +1 -0
- package/dist/components/data-table/data-table.js +198 -0
- package/dist/components/data-table/data-table.js.map +1 -0
- package/dist/components/data-table/data-table.types.d.ts +127 -0
- package/dist/components/data-table/data-table.types.d.ts.map +1 -0
- package/dist/components/data-table/data-table.types.js +2 -0
- package/dist/components/data-table/data-table.types.js.map +1 -0
- package/dist/components/data-table/index.d.ts +3 -0
- package/dist/components/data-table/index.d.ts.map +1 -0
- package/dist/components/data-table/index.js +2 -0
- package/dist/components/data-table/index.js.map +1 -0
- package/dist/components/dialog/dialog.d.ts +8 -0
- package/dist/components/dialog/dialog.d.ts.map +1 -0
- package/dist/components/dialog/dialog.js +45 -0
- package/dist/components/dialog/dialog.js.map +1 -0
- package/dist/components/dialog/dialog.types.d.ts +57 -0
- package/dist/components/dialog/dialog.types.d.ts.map +1 -0
- package/dist/components/dialog/dialog.types.js +2 -0
- package/dist/components/dialog/dialog.types.js.map +1 -0
- package/dist/components/dialog/index.d.ts +3 -0
- package/dist/components/dialog/index.d.ts.map +1 -0
- package/dist/components/dialog/index.js +2 -0
- package/dist/components/dialog/index.js.map +1 -0
- package/dist/components/divider/divider.d.ts +8 -0
- package/dist/components/divider/divider.d.ts.map +1 -0
- package/dist/components/divider/divider.js +12 -0
- package/dist/components/divider/divider.js.map +1 -0
- package/dist/components/divider/divider.types.d.ts +22 -0
- package/dist/components/divider/divider.types.d.ts.map +1 -0
- package/dist/components/divider/divider.types.js +2 -0
- package/dist/components/divider/divider.types.js.map +1 -0
- package/dist/components/divider/index.d.ts +3 -0
- package/dist/components/divider/index.d.ts.map +1 -0
- package/dist/components/divider/index.js +2 -0
- package/dist/components/divider/index.js.map +1 -0
- package/dist/components/drawer/drawer.d.ts +8 -0
- package/dist/components/drawer/drawer.d.ts.map +1 -0
- package/dist/components/drawer/drawer.js +45 -0
- package/dist/components/drawer/drawer.js.map +1 -0
- package/dist/components/drawer/drawer.types.d.ts +69 -0
- package/dist/components/drawer/drawer.types.d.ts.map +1 -0
- package/dist/components/drawer/drawer.types.js +2 -0
- package/dist/components/drawer/drawer.types.js.map +1 -0
- package/dist/components/drawer/index.d.ts +3 -0
- package/dist/components/drawer/index.d.ts.map +1 -0
- package/dist/components/drawer/index.js +2 -0
- package/dist/components/drawer/index.js.map +1 -0
- package/dist/components/dropdown/dropdown.d.ts +26 -0
- package/dist/components/dropdown/dropdown.d.ts.map +1 -0
- package/dist/components/dropdown/dropdown.js +70 -0
- package/dist/components/dropdown/dropdown.js.map +1 -0
- package/dist/components/dropdown/dropdown.types.d.ts +83 -0
- package/dist/components/dropdown/dropdown.types.d.ts.map +1 -0
- package/dist/components/dropdown/dropdown.types.js +2 -0
- package/dist/components/dropdown/dropdown.types.js.map +1 -0
- package/dist/components/dropdown/index.d.ts +3 -0
- package/dist/components/dropdown/index.d.ts.map +1 -0
- package/dist/components/dropdown/index.js +2 -0
- package/dist/components/dropdown/index.js.map +1 -0
- package/dist/components/dropzone/dropzone.d.ts +8 -0
- package/dist/components/dropzone/dropzone.d.ts.map +1 -0
- package/dist/components/dropzone/dropzone.js +98 -0
- package/dist/components/dropzone/dropzone.js.map +1 -0
- package/dist/components/dropzone/dropzone.types.d.ts +40 -0
- package/dist/components/dropzone/dropzone.types.d.ts.map +1 -0
- package/dist/components/dropzone/dropzone.types.js +2 -0
- package/dist/components/dropzone/dropzone.types.js.map +1 -0
- package/dist/components/dropzone/index.d.ts +3 -0
- package/dist/components/dropzone/index.d.ts.map +1 -0
- package/dist/components/dropzone/index.js +2 -0
- package/dist/components/dropzone/index.js.map +1 -0
- package/dist/components/empty-state/empty-state.d.ts +8 -0
- package/dist/components/empty-state/empty-state.d.ts.map +1 -0
- package/dist/components/empty-state/empty-state.js +13 -0
- package/dist/components/empty-state/empty-state.js.map +1 -0
- package/dist/components/empty-state/empty-state.types.d.ts +37 -0
- package/dist/components/empty-state/empty-state.types.d.ts.map +1 -0
- package/dist/components/empty-state/empty-state.types.js +2 -0
- package/dist/components/empty-state/empty-state.types.js.map +1 -0
- package/dist/components/empty-state/index.d.ts +3 -0
- package/dist/components/empty-state/index.d.ts.map +1 -0
- package/dist/components/empty-state/index.js +2 -0
- package/dist/components/empty-state/index.js.map +1 -0
- package/dist/components/file-upload/file-upload.d.ts +8 -0
- package/dist/components/file-upload/file-upload.d.ts.map +1 -0
- package/dist/components/file-upload/file-upload.js +359 -0
- package/dist/components/file-upload/file-upload.js.map +1 -0
- package/dist/components/file-upload/file-upload.types.d.ts +91 -0
- package/dist/components/file-upload/file-upload.types.d.ts.map +1 -0
- package/dist/components/file-upload/file-upload.types.js +2 -0
- package/dist/components/file-upload/file-upload.types.js.map +1 -0
- package/dist/components/file-upload/index.d.ts +3 -0
- package/dist/components/file-upload/index.d.ts.map +1 -0
- package/dist/components/file-upload/index.js +2 -0
- package/dist/components/file-upload/index.js.map +1 -0
- package/dist/components/form-field/form-field.d.ts +11 -0
- package/dist/components/form-field/form-field.d.ts.map +1 -0
- package/dist/components/form-field/form-field.js +41 -0
- package/dist/components/form-field/form-field.js.map +1 -0
- package/dist/components/form-field/form-field.types.d.ts +66 -0
- package/dist/components/form-field/form-field.types.d.ts.map +1 -0
- package/dist/components/form-field/form-field.types.js +2 -0
- package/dist/components/form-field/form-field.types.js.map +1 -0
- package/dist/components/form-field/index.d.ts +3 -0
- package/dist/components/form-field/index.d.ts.map +1 -0
- package/dist/components/form-field/index.js +2 -0
- package/dist/components/form-field/index.js.map +1 -0
- package/dist/components/icon/icon.d.ts +14 -0
- package/dist/components/icon/icon.d.ts.map +1 -0
- package/dist/components/icon/icon.js +48 -0
- package/dist/components/icon/icon.js.map +1 -0
- package/dist/components/icon/icon.types.d.ts +69 -0
- package/dist/components/icon/icon.types.d.ts.map +1 -0
- package/dist/components/icon/icon.types.js +2 -0
- package/dist/components/icon/icon.types.js.map +1 -0
- package/dist/components/icon/index.d.ts +3 -0
- package/dist/components/icon/index.d.ts.map +1 -0
- package/dist/components/icon/index.js +2 -0
- package/dist/components/icon/index.js.map +1 -0
- package/dist/components/index.d.ts +46 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +45 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/inline-message/index.d.ts +4 -0
- package/dist/components/inline-message/index.d.ts.map +1 -0
- package/dist/components/inline-message/index.js +2 -0
- package/dist/components/inline-message/index.js.map +1 -0
- package/dist/components/inline-message/inline-message.d.ts +8 -0
- package/dist/components/inline-message/inline-message.d.ts.map +1 -0
- package/dist/components/inline-message/inline-message.js +20 -0
- package/dist/components/inline-message/inline-message.js.map +1 -0
- package/dist/components/inline-message/inline-message.types.d.ts +27 -0
- package/dist/components/inline-message/inline-message.types.d.ts.map +1 -0
- package/dist/components/inline-message/inline-message.types.js +2 -0
- package/dist/components/inline-message/inline-message.types.js.map +1 -0
- package/dist/components/input/index.d.ts +3 -0
- package/dist/components/input/index.d.ts.map +1 -0
- package/dist/components/input/index.js +2 -0
- package/dist/components/input/index.js.map +1 -0
- package/dist/components/input/input.d.ts +8 -0
- package/dist/components/input/input.d.ts.map +1 -0
- package/dist/components/input/input.js +13 -0
- package/dist/components/input/input.js.map +1 -0
- package/dist/components/input/input.types.d.ts +35 -0
- package/dist/components/input/input.types.d.ts.map +1 -0
- package/dist/components/input/input.types.js +2 -0
- package/dist/components/input/input.types.js.map +1 -0
- package/dist/components/list/index.d.ts +3 -0
- package/dist/components/list/index.d.ts.map +1 -0
- package/dist/components/list/index.js +2 -0
- package/dist/components/list/index.js.map +1 -0
- package/dist/components/list/list.d.ts +14 -0
- package/dist/components/list/list.d.ts.map +1 -0
- package/dist/components/list/list.js +21 -0
- package/dist/components/list/list.js.map +1 -0
- package/dist/components/list/list.types.d.ts +72 -0
- package/dist/components/list/list.types.d.ts.map +1 -0
- package/dist/components/list/list.types.js +2 -0
- package/dist/components/list/list.types.js.map +1 -0
- package/dist/components/loading-overlay/index.d.ts +3 -0
- package/dist/components/loading-overlay/index.d.ts.map +1 -0
- package/dist/components/loading-overlay/index.js +2 -0
- package/dist/components/loading-overlay/index.js.map +1 -0
- package/dist/components/loading-overlay/loading-overlay.d.ts +8 -0
- package/dist/components/loading-overlay/loading-overlay.d.ts.map +1 -0
- package/dist/components/loading-overlay/loading-overlay.js +13 -0
- package/dist/components/loading-overlay/loading-overlay.js.map +1 -0
- package/dist/components/loading-overlay/loading-overlay.types.d.ts +28 -0
- package/dist/components/loading-overlay/loading-overlay.types.d.ts.map +1 -0
- package/dist/components/loading-overlay/loading-overlay.types.js +2 -0
- package/dist/components/loading-overlay/loading-overlay.types.js.map +1 -0
- package/dist/components/multi-select/index.d.ts +3 -0
- package/dist/components/multi-select/index.d.ts.map +1 -0
- package/dist/components/multi-select/index.js +2 -0
- package/dist/components/multi-select/index.js.map +1 -0
- package/dist/components/multi-select/multi-select.d.ts +9 -0
- package/dist/components/multi-select/multi-select.d.ts.map +1 -0
- package/dist/components/multi-select/multi-select.js +74 -0
- package/dist/components/multi-select/multi-select.js.map +1 -0
- package/dist/components/multi-select/multi-select.types.d.ts +35 -0
- package/dist/components/multi-select/multi-select.types.d.ts.map +1 -0
- package/dist/components/multi-select/multi-select.types.js +2 -0
- package/dist/components/multi-select/multi-select.types.js.map +1 -0
- package/dist/components/navigation/index.d.ts +3 -0
- package/dist/components/navigation/index.d.ts.map +1 -0
- package/dist/components/navigation/index.js +2 -0
- package/dist/components/navigation/index.js.map +1 -0
- package/dist/components/navigation/navigation.d.ts +14 -0
- package/dist/components/navigation/navigation.d.ts.map +1 -0
- package/dist/components/navigation/navigation.js +29 -0
- package/dist/components/navigation/navigation.js.map +1 -0
- package/dist/components/navigation/navigation.types.d.ts +84 -0
- package/dist/components/navigation/navigation.types.d.ts.map +1 -0
- package/dist/components/navigation/navigation.types.js +2 -0
- package/dist/components/navigation/navigation.types.js.map +1 -0
- package/dist/components/page-layout/index.d.ts +3 -0
- package/dist/components/page-layout/index.d.ts.map +1 -0
- package/dist/components/page-layout/index.js +2 -0
- package/dist/components/page-layout/index.js.map +1 -0
- package/dist/components/page-layout/page-layout.d.ts +74 -0
- package/dist/components/page-layout/page-layout.d.ts.map +1 -0
- package/dist/components/page-layout/page-layout.js +103 -0
- package/dist/components/page-layout/page-layout.js.map +1 -0
- package/dist/components/page-layout/page-layout.types.d.ts +188 -0
- package/dist/components/page-layout/page-layout.types.d.ts.map +1 -0
- package/dist/components/page-layout/page-layout.types.js +2 -0
- package/dist/components/page-layout/page-layout.types.js.map +1 -0
- package/dist/components/pagination/index.d.ts +4 -0
- package/dist/components/pagination/index.d.ts.map +1 -0
- package/dist/components/pagination/index.js +2 -0
- package/dist/components/pagination/index.js.map +1 -0
- package/dist/components/pagination/pagination.d.ts +24 -0
- package/dist/components/pagination/pagination.d.ts.map +1 -0
- package/dist/components/pagination/pagination.js +48 -0
- package/dist/components/pagination/pagination.js.map +1 -0
- package/dist/components/pagination/pagination.types.d.ts +43 -0
- package/dist/components/pagination/pagination.types.d.ts.map +1 -0
- package/dist/components/pagination/pagination.types.js +2 -0
- package/dist/components/pagination/pagination.types.js.map +1 -0
- package/dist/components/panel/index.d.ts +3 -0
- package/dist/components/panel/index.d.ts.map +1 -0
- package/dist/components/panel/index.js +2 -0
- package/dist/components/panel/index.js.map +1 -0
- package/dist/components/panel/panel.d.ts +14 -0
- package/dist/components/panel/panel.d.ts.map +1 -0
- package/dist/components/panel/panel.js +22 -0
- package/dist/components/panel/panel.js.map +1 -0
- package/dist/components/panel/panel.types.d.ts +62 -0
- package/dist/components/panel/panel.types.d.ts.map +1 -0
- package/dist/components/panel/panel.types.js +2 -0
- package/dist/components/panel/panel.types.js.map +1 -0
- package/dist/components/popover/index.d.ts +3 -0
- package/dist/components/popover/index.d.ts.map +1 -0
- package/dist/components/popover/index.js +2 -0
- package/dist/components/popover/index.js.map +1 -0
- package/dist/components/popover/popover-context.d.ts +29 -0
- package/dist/components/popover/popover-context.d.ts.map +1 -0
- package/dist/components/popover/popover-context.js +14 -0
- package/dist/components/popover/popover-context.js.map +1 -0
- package/dist/components/popover/popover.d.ts +8 -0
- package/dist/components/popover/popover.d.ts.map +1 -0
- package/dist/components/popover/popover.js +60 -0
- package/dist/components/popover/popover.js.map +1 -0
- package/dist/components/popover/popover.types.d.ts +47 -0
- package/dist/components/popover/popover.types.d.ts.map +1 -0
- package/dist/components/popover/popover.types.js +2 -0
- package/dist/components/popover/popover.types.js.map +1 -0
- package/dist/components/progress/index.d.ts +3 -0
- package/dist/components/progress/index.d.ts.map +1 -0
- package/dist/components/progress/index.js +2 -0
- package/dist/components/progress/index.js.map +1 -0
- package/dist/components/progress/progress.d.ts +8 -0
- package/dist/components/progress/progress.d.ts.map +1 -0
- package/dist/components/progress/progress.js +32 -0
- package/dist/components/progress/progress.js.map +1 -0
- package/dist/components/progress/progress.types.d.ts +36 -0
- package/dist/components/progress/progress.types.d.ts.map +1 -0
- package/dist/components/progress/progress.types.js +2 -0
- package/dist/components/progress/progress.types.js.map +1 -0
- package/dist/components/radio/index.d.ts +3 -0
- package/dist/components/radio/index.d.ts.map +1 -0
- package/dist/components/radio/index.js +2 -0
- package/dist/components/radio/index.js.map +1 -0
- package/dist/components/radio/radio.d.ts +8 -0
- package/dist/components/radio/radio.d.ts.map +1 -0
- package/dist/components/radio/radio.js +12 -0
- package/dist/components/radio/radio.js.map +1 -0
- package/dist/components/radio/radio.types.d.ts +17 -0
- package/dist/components/radio/radio.types.d.ts.map +1 -0
- package/dist/components/radio/radio.types.js +2 -0
- package/dist/components/radio/radio.types.js.map +1 -0
- package/dist/components/search-input/index.d.ts +3 -0
- package/dist/components/search-input/index.d.ts.map +1 -0
- package/dist/components/search-input/index.js +2 -0
- package/dist/components/search-input/index.js.map +1 -0
- package/dist/components/search-input/search-input.d.ts +8 -0
- package/dist/components/search-input/search-input.d.ts.map +1 -0
- package/dist/components/search-input/search-input.js +35 -0
- package/dist/components/search-input/search-input.js.map +1 -0
- package/dist/components/search-input/search-input.types.d.ts +38 -0
- package/dist/components/search-input/search-input.types.d.ts.map +1 -0
- package/dist/components/search-input/search-input.types.js +2 -0
- package/dist/components/search-input/search-input.types.js.map +1 -0
- package/dist/components/select/index.d.ts +3 -0
- package/dist/components/select/index.d.ts.map +1 -0
- package/dist/components/select/index.js +2 -0
- package/dist/components/select/index.js.map +1 -0
- package/dist/components/select/select.d.ts +8 -0
- package/dist/components/select/select.d.ts.map +1 -0
- package/dist/components/select/select.js +14 -0
- package/dist/components/select/select.js.map +1 -0
- package/dist/components/select/select.types.d.ts +27 -0
- package/dist/components/select/select.types.d.ts.map +1 -0
- package/dist/components/select/select.types.js +2 -0
- package/dist/components/select/select.types.js.map +1 -0
- package/dist/components/shared.types.d.ts +13 -0
- package/dist/components/shared.types.d.ts.map +1 -0
- package/dist/components/shared.types.js +2 -0
- package/dist/components/shared.types.js.map +1 -0
- package/dist/components/skeleton/index.d.ts +3 -0
- package/dist/components/skeleton/index.d.ts.map +1 -0
- package/dist/components/skeleton/index.js +2 -0
- package/dist/components/skeleton/index.js.map +1 -0
- package/dist/components/skeleton/skeleton.d.ts +8 -0
- package/dist/components/skeleton/skeleton.d.ts.map +1 -0
- package/dist/components/skeleton/skeleton.js +12 -0
- package/dist/components/skeleton/skeleton.js.map +1 -0
- package/dist/components/skeleton/skeleton.types.d.ts +29 -0
- package/dist/components/skeleton/skeleton.types.d.ts.map +1 -0
- package/dist/components/skeleton/skeleton.types.js +2 -0
- package/dist/components/skeleton/skeleton.types.js.map +1 -0
- package/dist/components/spinner/index.d.ts +4 -0
- package/dist/components/spinner/index.d.ts.map +1 -0
- package/dist/components/spinner/index.js +2 -0
- package/dist/components/spinner/index.js.map +1 -0
- package/dist/components/spinner/spinner.d.ts +8 -0
- package/dist/components/spinner/spinner.d.ts.map +1 -0
- package/dist/components/spinner/spinner.js +19 -0
- package/dist/components/spinner/spinner.js.map +1 -0
- package/dist/components/spinner/spinner.types.d.ts +27 -0
- package/dist/components/spinner/spinner.types.d.ts.map +1 -0
- package/dist/components/spinner/spinner.types.js +2 -0
- package/dist/components/spinner/spinner.types.js.map +1 -0
- package/dist/components/status-indicator/index.d.ts +4 -0
- package/dist/components/status-indicator/index.d.ts.map +1 -0
- package/dist/components/status-indicator/index.js +2 -0
- package/dist/components/status-indicator/index.js.map +1 -0
- package/dist/components/status-indicator/status-indicator.d.ts +8 -0
- package/dist/components/status-indicator/status-indicator.d.ts.map +1 -0
- package/dist/components/status-indicator/status-indicator.js +12 -0
- package/dist/components/status-indicator/status-indicator.js.map +1 -0
- package/dist/components/status-indicator/status-indicator.types.d.ts +25 -0
- package/dist/components/status-indicator/status-indicator.types.d.ts.map +1 -0
- package/dist/components/status-indicator/status-indicator.types.js +2 -0
- package/dist/components/status-indicator/status-indicator.types.js.map +1 -0
- package/dist/components/switch/index.d.ts +3 -0
- package/dist/components/switch/index.d.ts.map +1 -0
- package/dist/components/switch/index.js +2 -0
- package/dist/components/switch/index.js.map +1 -0
- package/dist/components/switch/switch.d.ts +8 -0
- package/dist/components/switch/switch.d.ts.map +1 -0
- package/dist/components/switch/switch.js +12 -0
- package/dist/components/switch/switch.js.map +1 -0
- package/dist/components/switch/switch.types.d.ts +17 -0
- package/dist/components/switch/switch.types.d.ts.map +1 -0
- package/dist/components/switch/switch.types.js +2 -0
- package/dist/components/switch/switch.types.js.map +1 -0
- package/dist/components/table/index.d.ts +3 -0
- package/dist/components/table/index.d.ts.map +1 -0
- package/dist/components/table/index.js +2 -0
- package/dist/components/table/index.js.map +1 -0
- package/dist/components/table/table.d.ts +56 -0
- package/dist/components/table/table.d.ts.map +1 -0
- package/dist/components/table/table.js +76 -0
- package/dist/components/table/table.js.map +1 -0
- package/dist/components/table/table.types.d.ts +101 -0
- package/dist/components/table/table.types.d.ts.map +1 -0
- package/dist/components/table/table.types.js +2 -0
- package/dist/components/table/table.types.js.map +1 -0
- package/dist/components/tabs/index.d.ts +3 -0
- package/dist/components/tabs/index.d.ts.map +1 -0
- package/dist/components/tabs/index.js +2 -0
- package/dist/components/tabs/index.js.map +1 -0
- package/dist/components/tabs/tabs.d.ts +26 -0
- package/dist/components/tabs/tabs.d.ts.map +1 -0
- package/dist/components/tabs/tabs.js +122 -0
- package/dist/components/tabs/tabs.js.map +1 -0
- package/dist/components/tabs/tabs.types.d.ts +70 -0
- package/dist/components/tabs/tabs.types.d.ts.map +1 -0
- package/dist/components/tabs/tabs.types.js +2 -0
- package/dist/components/tabs/tabs.types.js.map +1 -0
- package/dist/components/textarea/index.d.ts +3 -0
- package/dist/components/textarea/index.d.ts.map +1 -0
- package/dist/components/textarea/index.js +2 -0
- package/dist/components/textarea/index.js.map +1 -0
- package/dist/components/textarea/textarea.d.ts +8 -0
- package/dist/components/textarea/textarea.d.ts.map +1 -0
- package/dist/components/textarea/textarea.js +13 -0
- package/dist/components/textarea/textarea.js.map +1 -0
- package/dist/components/textarea/textarea.types.d.ts +39 -0
- package/dist/components/textarea/textarea.types.d.ts.map +1 -0
- package/dist/components/textarea/textarea.types.js +2 -0
- package/dist/components/textarea/textarea.types.js.map +1 -0
- package/dist/components/toast/index.d.ts +3 -0
- package/dist/components/toast/index.d.ts.map +1 -0
- package/dist/components/toast/index.js +2 -0
- package/dist/components/toast/index.js.map +1 -0
- package/dist/components/toast/toast.d.ts +24 -0
- package/dist/components/toast/toast.d.ts.map +1 -0
- package/dist/components/toast/toast.js +111 -0
- package/dist/components/toast/toast.js.map +1 -0
- package/dist/components/toast/toast.types.d.ts +103 -0
- package/dist/components/toast/toast.types.d.ts.map +1 -0
- package/dist/components/toast/toast.types.js +2 -0
- package/dist/components/toast/toast.types.js.map +1 -0
- package/dist/components/toolbar/index.d.ts +3 -0
- package/dist/components/toolbar/index.d.ts.map +1 -0
- package/dist/components/toolbar/index.js +2 -0
- package/dist/components/toolbar/index.js.map +1 -0
- package/dist/components/toolbar/toolbar.d.ts +20 -0
- package/dist/components/toolbar/toolbar.d.ts.map +1 -0
- package/dist/components/toolbar/toolbar.js +28 -0
- package/dist/components/toolbar/toolbar.js.map +1 -0
- package/dist/components/toolbar/toolbar.types.d.ts +37 -0
- package/dist/components/toolbar/toolbar.types.d.ts.map +1 -0
- package/dist/components/toolbar/toolbar.types.js +2 -0
- package/dist/components/toolbar/toolbar.types.js.map +1 -0
- package/dist/components/tooltip/index.d.ts +3 -0
- package/dist/components/tooltip/index.d.ts.map +1 -0
- package/dist/components/tooltip/index.js +2 -0
- package/dist/components/tooltip/index.js.map +1 -0
- package/dist/components/tooltip/tooltip.d.ts +8 -0
- package/dist/components/tooltip/tooltip.d.ts.map +1 -0
- package/dist/components/tooltip/tooltip.js +84 -0
- package/dist/components/tooltip/tooltip.js.map +1 -0
- package/dist/components/tooltip/tooltip.types.d.ts +34 -0
- package/dist/components/tooltip/tooltip.types.d.ts.map +1 -0
- package/dist/components/tooltip/tooltip.types.js +2 -0
- package/dist/components/tooltip/tooltip.types.js.map +1 -0
- package/dist/components/tree-view/index.d.ts +3 -0
- package/dist/components/tree-view/index.d.ts.map +1 -0
- package/dist/components/tree-view/index.js +2 -0
- package/dist/components/tree-view/index.js.map +1 -0
- package/dist/components/tree-view/tree-view.d.ts +9 -0
- package/dist/components/tree-view/tree-view.d.ts.map +1 -0
- package/dist/components/tree-view/tree-view.js +573 -0
- package/dist/components/tree-view/tree-view.js.map +1 -0
- package/dist/components/tree-view/tree-view.types.d.ts +92 -0
- package/dist/components/tree-view/tree-view.types.d.ts.map +1 -0
- package/dist/components/tree-view/tree-view.types.js +2 -0
- package/dist/components/tree-view/tree-view.types.js.map +1 -0
- package/dist/components/visually-hidden/index.d.ts +3 -0
- package/dist/components/visually-hidden/index.d.ts.map +1 -0
- package/dist/components/visually-hidden/index.js +2 -0
- package/dist/components/visually-hidden/index.js.map +1 -0
- package/dist/components/visually-hidden/visually-hidden.d.ts +8 -0
- package/dist/components/visually-hidden/visually-hidden.d.ts.map +1 -0
- package/dist/components/visually-hidden/visually-hidden.js +12 -0
- package/dist/components/visually-hidden/visually-hidden.js.map +1 -0
- package/dist/components/visually-hidden/visually-hidden.types.d.ts +9 -0
- package/dist/components/visually-hidden/visually-hidden.types.d.ts.map +1 -0
- package/dist/components/visually-hidden/visually-hidden.types.js +2 -0
- package/dist/components/visually-hidden/visually-hidden.types.js.map +1 -0
- package/dist/errors/index.d.ts +2 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +2 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/errors/ui-error.d.ts +60 -0
- package/dist/errors/ui-error.d.ts.map +1 -0
- package/dist/errors/ui-error.js +219 -0
- package/dist/errors/ui-error.js.map +1 -0
- package/dist/i18n/i18n.d.ts +52 -0
- package/dist/i18n/i18n.d.ts.map +1 -0
- package/dist/i18n/i18n.js +156 -0
- package/dist/i18n/i18n.js.map +1 -0
- package/dist/i18n/index.d.ts +3 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +3 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/icons/icon-names.d.ts +7 -0
- package/dist/icons/icon-names.d.ts.map +1 -0
- package/dist/icons/icon-names.js +2 -0
- package/dist/icons/icon-names.js.map +1 -0
- package/dist/icons/icon-registry.d.ts +30 -0
- package/dist/icons/icon-registry.d.ts.map +1 -0
- package/dist/icons/icon-registry.js +31 -0
- package/dist/icons/icon-registry.js.map +1 -0
- package/dist/icons/index.d.ts +4 -0
- package/dist/icons/index.d.ts.map +1 -0
- package/dist/icons/index.js +2 -0
- package/dist/icons/index.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/class-names.d.ts +8 -0
- package/dist/internal/class-names.d.ts.map +1 -0
- package/dist/internal/class-names.js +10 -0
- package/dist/internal/class-names.js.map +1 -0
- package/dist/internal/menu/index.d.ts +3 -0
- package/dist/internal/menu/index.d.ts.map +1 -0
- package/dist/internal/menu/index.js +2 -0
- package/dist/internal/menu/index.js.map +1 -0
- package/dist/internal/menu/menu.d.ts +33 -0
- package/dist/internal/menu/menu.d.ts.map +1 -0
- package/dist/internal/menu/menu.js +150 -0
- package/dist/internal/menu/menu.js.map +1 -0
- package/dist/internal/overlay/dismissible-layer.d.ts +38 -0
- package/dist/internal/overlay/dismissible-layer.d.ts.map +1 -0
- package/dist/internal/overlay/dismissible-layer.js +99 -0
- package/dist/internal/overlay/dismissible-layer.js.map +1 -0
- package/dist/internal/overlay/document-scroll-lock.d.ts +8 -0
- package/dist/internal/overlay/document-scroll-lock.d.ts.map +1 -0
- package/dist/internal/overlay/document-scroll-lock.js +58 -0
- package/dist/internal/overlay/document-scroll-lock.js.map +1 -0
- package/dist/internal/overlay/floating-position.d.ts +46 -0
- package/dist/internal/overlay/floating-position.d.ts.map +1 -0
- package/dist/internal/overlay/floating-position.js +137 -0
- package/dist/internal/overlay/floating-position.js.map +1 -0
- package/dist/internal/overlay/index.d.ts +8 -0
- package/dist/internal/overlay/index.d.ts.map +1 -0
- package/dist/internal/overlay/index.js +6 -0
- package/dist/internal/overlay/index.js.map +1 -0
- package/dist/internal/overlay/native-modal.d.ts +11 -0
- package/dist/internal/overlay/native-modal.d.ts.map +1 -0
- package/dist/internal/overlay/native-modal.js +160 -0
- package/dist/internal/overlay/native-modal.js.map +1 -0
- package/dist/internal/overlay/portal-target.d.ts +19 -0
- package/dist/internal/overlay/portal-target.d.ts.map +1 -0
- package/dist/internal/overlay/portal-target.js +113 -0
- package/dist/internal/overlay/portal-target.js.map +1 -0
- package/dist/internal/overlay/top-layer.d.ts +21 -0
- package/dist/internal/overlay/top-layer.d.ts.map +1 -0
- package/dist/internal/overlay/top-layer.js +51 -0
- package/dist/internal/overlay/top-layer.js.map +1 -0
- package/dist/internal/use-merged-ref.d.ts +11 -0
- package/dist/internal/use-merged-ref.d.ts.map +1 -0
- package/dist/internal/use-merged-ref.js +31 -0
- package/dist/internal/use-merged-ref.js.map +1 -0
- package/dist/internal/use-native-dialog.d.ts +9 -0
- package/dist/internal/use-native-dialog.d.ts.map +1 -0
- package/dist/internal/use-native-dialog.js +19 -0
- package/dist/internal/use-native-dialog.js.map +1 -0
- package/dist/runtime/appearance.d.ts +32 -0
- package/dist/runtime/appearance.d.ts.map +1 -0
- package/dist/runtime/appearance.js +123 -0
- package/dist/runtime/appearance.js.map +1 -0
- package/dist/styles/components/alert.css +99 -0
- package/dist/styles/components/avatar.css +70 -0
- package/dist/styles/components/badge.css +101 -0
- package/dist/styles/components/breadcrumb.css +65 -0
- package/dist/styles/components/button.css +136 -0
- package/dist/styles/components/choice.css +120 -0
- package/dist/styles/components/combobox.css +200 -0
- package/dist/styles/components/confirm-dialog.css +50 -0
- package/dist/styles/components/data-table.css +120 -0
- package/dist/styles/components/dialog.css +135 -0
- package/dist/styles/components/divider.css +27 -0
- package/dist/styles/components/drawer.css +160 -0
- package/dist/styles/components/dropdown.css +75 -0
- package/dist/styles/components/dropzone.css +94 -0
- package/dist/styles/components/empty-state.css +85 -0
- package/dist/styles/components/file-upload.css +145 -0
- package/dist/styles/components/form-field.css +49 -0
- package/dist/styles/components/icon.css +53 -0
- package/dist/styles/components/inline-message.css +33 -0
- package/dist/styles/components/input.css +77 -0
- package/dist/styles/components/list.css +132 -0
- package/dist/styles/components/loading-overlay.css +24 -0
- package/dist/styles/components/menu.css +6 -0
- package/dist/styles/components/multi-select.css +68 -0
- package/dist/styles/components/navigation.css +116 -0
- package/dist/styles/components/page-layout.css +279 -0
- package/dist/styles/components/pagination.css +99 -0
- package/dist/styles/components/panel.css +123 -0
- package/dist/styles/components/popover.css +41 -0
- package/dist/styles/components/progress.css +65 -0
- package/dist/styles/components/search-input.css +12 -0
- package/dist/styles/components/select.css +56 -0
- package/dist/styles/components/skeleton.css +93 -0
- package/dist/styles/components/spinner.css +27 -0
- package/dist/styles/components/status-indicator.css +54 -0
- package/dist/styles/components/switch.css +111 -0
- package/dist/styles/components/table.css +127 -0
- package/dist/styles/components/tabs.css +144 -0
- package/dist/styles/components/textarea.css +79 -0
- package/dist/styles/components/toast.css +134 -0
- package/dist/styles/components/toolbar.css +27 -0
- package/dist/styles/components/tooltip.css +32 -0
- package/dist/styles/components/tree-view.css +146 -0
- package/dist/styles/components.css +45 -0
- package/dist/styles/foundation/controls.css +91 -0
- package/dist/styles/foundation/density.css +76 -0
- package/dist/styles/foundation/icons.css +29 -0
- package/dist/styles/foundation/layout.css +150 -0
- package/dist/styles/foundation/motion.css +58 -0
- package/dist/styles/foundation/surface.css +60 -0
- package/dist/styles/foundation/theme.css +166 -0
- package/dist/styles/foundation/typography.css +84 -0
- package/dist/styles/foundation.css +10 -0
- package/dist/styles/miaixz.css +4 -0
- package/package.json +304 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef, useId, useRef } from "react";
|
|
3
|
+
import { createPortal } from "react-dom";
|
|
4
|
+
import { FocusScope } from "../../accessibility/focus-scope.js";
|
|
5
|
+
import { classNames } from "../../internal/class-names.js";
|
|
6
|
+
import { useMiaixzNativeModal, useMiaixzPortalTarget } from "../../internal/overlay/index.js";
|
|
7
|
+
import { useMiaixzLocale } from "../../i18n/index.js";
|
|
8
|
+
import { useMergedRef } from "../../internal/use-merged-ref.js";
|
|
9
|
+
import { Button } from "../button/index.js";
|
|
10
|
+
import { Icon } from "../icon/index.js";
|
|
11
|
+
/**
|
|
12
|
+
* Controls a native modal dialog with localized dismissal and focus-safe lifecycle.
|
|
13
|
+
*
|
|
14
|
+
* @public
|
|
15
|
+
*/
|
|
16
|
+
export const Dialog = forwardRef(function Dialog({ open, onOpenChange, title, description, footer, size = "medium", closeLabel, showClose = true, closeOnBackdrop = true, className, children, onCancel, onClose, onClick, ...props }, forwardedRef) {
|
|
17
|
+
const { t } = useMiaixzLocale();
|
|
18
|
+
const resolvedCloseLabel = closeLabel ?? t("ui.dialog.close");
|
|
19
|
+
const internalRef = useRef(null);
|
|
20
|
+
const ref = useMergedRef(internalRef, forwardedRef);
|
|
21
|
+
const titleId = `miaixz-dialog-title-${useId()}`;
|
|
22
|
+
const generatedDescriptionId = `miaixz-dialog-description-${useId()}`;
|
|
23
|
+
const descriptionId = description ? generatedDescriptionId : undefined;
|
|
24
|
+
const portalTarget = useMiaixzPortalTarget();
|
|
25
|
+
const restoreFocusRef = useMiaixzNativeModal(internalRef, open, portalTarget);
|
|
26
|
+
if (portalTarget === null)
|
|
27
|
+
return null;
|
|
28
|
+
return createPortal(_jsx(FocusScope, { active: open, containerRef: internalRef, restoreFocusRef: restoreFocusRef, children: _jsxs("dialog", { ...props, ref: ref, "aria-labelledby": titleId, "aria-describedby": descriptionId, className: classNames("miaixz-dialog", size !== "medium" && `miaixz-dialog-${size}`, className), onCancel: (event) => {
|
|
29
|
+
onCancel?.(event);
|
|
30
|
+
if (!event.defaultPrevented) {
|
|
31
|
+
event.preventDefault();
|
|
32
|
+
onOpenChange(false);
|
|
33
|
+
}
|
|
34
|
+
}, onClose: (event) => {
|
|
35
|
+
onClose?.(event);
|
|
36
|
+
if (open)
|
|
37
|
+
onOpenChange(false);
|
|
38
|
+
}, onClick: (event) => {
|
|
39
|
+
onClick?.(event);
|
|
40
|
+
if (!event.defaultPrevented && closeOnBackdrop && event.target === event.currentTarget) {
|
|
41
|
+
onOpenChange(false);
|
|
42
|
+
}
|
|
43
|
+
}, children: [_jsxs("header", { className: "miaixz-dialog-header", children: [_jsxs("div", { children: [_jsx("h2", { id: titleId, className: "miaixz-dialog-title", children: title }), description !== undefined && (_jsx("p", { id: descriptionId, className: "miaixz-dialog-description", children: description }))] }), showClose && (_jsx(Button, { iconOnly: true, variant: "ghost", size: "small", "aria-label": resolvedCloseLabel, onClick: () => onOpenChange(false), children: _jsx(Icon, { name: "X", size: "control" }) }))] }), _jsx("div", { className: "miaixz-dialog-body", children: children }), footer !== undefined && _jsx("footer", { className: "miaixz-dialog-footer", children: footer })] }) }), portalTarget);
|
|
44
|
+
});
|
|
45
|
+
//# sourceMappingURL=dialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../../src/components/dialog/dialog.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, useId, useRef } from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport { FocusScope } from \"../../accessibility/focus-scope.js\";\nimport { classNames } from \"../../internal/class-names.js\";\nimport { useMiaixzNativeModal, useMiaixzPortalTarget } from \"../../internal/overlay/index.js\";\nimport { useMiaixzLocale } from \"../../i18n/index.js\";\nimport { useMergedRef } from \"../../internal/use-merged-ref.js\";\nimport { Button } from \"../button/index.js\";\nimport { Icon } from \"../icon/index.js\";\nimport type { DialogProps } from \"./dialog.types.js\";\n\n/**\n * Controls a native modal dialog with localized dismissal and focus-safe lifecycle.\n *\n * @public\n */\nexport const Dialog = forwardRef<HTMLDialogElement, DialogProps>(function Dialog(\n {\n open,\n onOpenChange,\n title,\n description,\n footer,\n size = \"medium\",\n closeLabel,\n showClose = true,\n closeOnBackdrop = true,\n className,\n children,\n onCancel,\n onClose,\n onClick,\n ...props\n },\n forwardedRef,\n) {\n const { t } = useMiaixzLocale();\n const resolvedCloseLabel = closeLabel ?? t(\"ui.dialog.close\");\n const internalRef = useRef<HTMLDialogElement>(null);\n const ref = useMergedRef(internalRef, forwardedRef);\n const titleId = `miaixz-dialog-title-${useId()}`;\n const generatedDescriptionId = `miaixz-dialog-description-${useId()}`;\n const descriptionId = description ? generatedDescriptionId : undefined;\n const portalTarget = useMiaixzPortalTarget();\n const restoreFocusRef = useMiaixzNativeModal(internalRef, open, portalTarget);\n\n if (portalTarget === null) return null;\n return createPortal(\n <FocusScope active={open} containerRef={internalRef} restoreFocusRef={restoreFocusRef}>\n <dialog\n {...props}\n ref={ref}\n aria-labelledby={titleId}\n aria-describedby={descriptionId}\n className={classNames(\n \"miaixz-dialog\",\n size !== \"medium\" && `miaixz-dialog-${size}`,\n className,\n )}\n onCancel={(event) => {\n onCancel?.(event);\n if (!event.defaultPrevented) {\n event.preventDefault();\n onOpenChange(false);\n }\n }}\n onClose={(event) => {\n onClose?.(event);\n if (open) onOpenChange(false);\n }}\n onClick={(event) => {\n onClick?.(event);\n if (!event.defaultPrevented && closeOnBackdrop && event.target === event.currentTarget) {\n onOpenChange(false);\n }\n }}\n >\n <header className=\"miaixz-dialog-header\">\n <div>\n <h2 id={titleId} className=\"miaixz-dialog-title\">\n {title}\n </h2>\n {description !== undefined && (\n <p id={descriptionId} className=\"miaixz-dialog-description\">\n {description}\n </p>\n )}\n </div>\n {showClose && (\n <Button\n iconOnly\n variant=\"ghost\"\n size=\"small\"\n aria-label={resolvedCloseLabel}\n onClick={() => onOpenChange(false)}\n >\n <Icon name=\"X\" size=\"control\" />\n </Button>\n )}\n </header>\n <div className=\"miaixz-dialog-body\">{children}</div>\n {footer !== undefined && <footer className=\"miaixz-dialog-footer\">{footer}</footer>}\n </dialog>\n </FocusScope>,\n portalTarget,\n );\n});\n"]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { DialogHTMLAttributes, ReactNode } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Defines the supported modal dialog widths.
|
|
4
|
+
*
|
|
5
|
+
* @public
|
|
6
|
+
*/
|
|
7
|
+
export type DialogSize = "small" | "medium" | "large";
|
|
8
|
+
/**
|
|
9
|
+
* Configures a controlled native modal dialog.
|
|
10
|
+
*
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
13
|
+
export interface DialogProps extends Omit<DialogHTMLAttributes<HTMLDialogElement>, "open" | "title"> {
|
|
14
|
+
/**
|
|
15
|
+
* Controls whether the dialog is open.
|
|
16
|
+
*/
|
|
17
|
+
open: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Receives requested open-state changes.
|
|
20
|
+
*/
|
|
21
|
+
onOpenChange: (open: boolean) => void;
|
|
22
|
+
/**
|
|
23
|
+
* Supplies the dialog heading.
|
|
24
|
+
*/
|
|
25
|
+
title: ReactNode;
|
|
26
|
+
/**
|
|
27
|
+
* Supplies supporting dialog description content.
|
|
28
|
+
*/
|
|
29
|
+
description?: ReactNode;
|
|
30
|
+
/**
|
|
31
|
+
* Supplies the dialog action footer.
|
|
32
|
+
*/
|
|
33
|
+
footer?: ReactNode;
|
|
34
|
+
/**
|
|
35
|
+
* Selects the dialog width.
|
|
36
|
+
*
|
|
37
|
+
* @defaultValue `"medium"`
|
|
38
|
+
*/
|
|
39
|
+
size?: DialogSize;
|
|
40
|
+
/**
|
|
41
|
+
* Overrides the localized close-button label.
|
|
42
|
+
*/
|
|
43
|
+
closeLabel?: string;
|
|
44
|
+
/**
|
|
45
|
+
* Controls whether the close button is rendered.
|
|
46
|
+
*
|
|
47
|
+
* @defaultValue `true`
|
|
48
|
+
*/
|
|
49
|
+
showClose?: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Allows a backdrop click to request closure.
|
|
52
|
+
*
|
|
53
|
+
* @defaultValue `true`
|
|
54
|
+
*/
|
|
55
|
+
closeOnBackdrop?: boolean;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=dialog.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog.types.d.ts","sourceRoot":"","sources":["../../../src/components/dialog/dialog.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE7D;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEtD;;;;GAIG;AACH,MAAM,WAAW,WAAY,SAAQ,IAAI,CACvC,oBAAoB,CAAC,iBAAiB,CAAC,EACvC,MAAM,GAAG,OAAO,CACjB;IACC;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;IACd;;OAEG;IACH,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC;;OAEG;IACH,KAAK,EAAE,SAAS,CAAC;IACjB;;OAEG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;;OAIG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog.types.js","sourceRoot":"","sources":["../../../src/components/dialog/dialog.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { DialogHTMLAttributes, ReactNode } from \"react\";\n\n/**\n * Defines the supported modal dialog widths.\n *\n * @public\n */\nexport type DialogSize = \"small\" | \"medium\" | \"large\";\n\n/**\n * Configures a controlled native modal dialog.\n *\n * @public\n */\nexport interface DialogProps extends Omit<\n DialogHTMLAttributes<HTMLDialogElement>,\n \"open\" | \"title\"\n> {\n /**\n * Controls whether the dialog is open.\n */\n open: boolean;\n /**\n * Receives requested open-state changes.\n */\n onOpenChange: (open: boolean) => void;\n /**\n * Supplies the dialog heading.\n */\n title: ReactNode;\n /**\n * Supplies supporting dialog description content.\n */\n description?: ReactNode;\n /**\n * Supplies the dialog action footer.\n */\n footer?: ReactNode;\n /**\n * Selects the dialog width.\n *\n * @defaultValue `\"medium\"`\n */\n size?: DialogSize;\n /**\n * Overrides the localized close-button label.\n */\n closeLabel?: string;\n /**\n * Controls whether the close button is rendered.\n *\n * @defaultValue `true`\n */\n showClose?: boolean;\n /**\n * Allows a backdrop click to request closure.\n *\n * @defaultValue `true`\n */\n closeOnBackdrop?: boolean;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/dialog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/dialog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC","sourcesContent":["export { Dialog } from \"./dialog.js\";\nexport type { DialogProps, DialogSize } from \"./dialog.types.js\";\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { DividerProps } from "./divider.types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Renders a semantic separator along the selected axis.
|
|
4
|
+
*
|
|
5
|
+
* @public
|
|
6
|
+
*/
|
|
7
|
+
export declare const Divider: import("react").ForwardRefExoticComponent<DividerProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
8
|
+
//# sourceMappingURL=divider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"divider.d.ts","sourceRoot":"","sources":["../../../src/components/divider/divider.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;;;GAIG;AACH,eAAO,MAAM,OAAO,yGAclB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef } from "react";
|
|
3
|
+
import { classNames } from "../../internal/class-names.js";
|
|
4
|
+
/**
|
|
5
|
+
* Renders a semantic separator along the selected axis.
|
|
6
|
+
*
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export const Divider = forwardRef(function Divider({ orientation = "horizontal", className, ...props }, ref) {
|
|
10
|
+
return (_jsx("div", { ...props, ref: ref, role: "separator", "aria-orientation": orientation === "vertical" ? "vertical" : undefined, "data-orientation": orientation, className: classNames("miaixz-divider", `miaixz-divider-${orientation}`, className) }));
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=divider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"divider.js","sourceRoot":"","sources":["../../../src/components/divider/divider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG3D;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,UAAU,CAA+B,SAAS,OAAO,CAC9E,EAAE,WAAW,GAAG,YAAY,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EACnD,GAAG;IAEH,OAAO,CACL,iBACM,KAAK,EACT,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,WAAW,sBACE,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,sBACnD,WAAW,EAC7B,SAAS,EAAE,UAAU,CAAC,gBAAgB,EAAE,kBAAkB,WAAW,EAAE,EAAE,SAAS,CAAC,GACnF,CACH,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import { forwardRef } from \"react\";\n\nimport { classNames } from \"../../internal/class-names.js\";\nimport type { DividerProps } from \"./divider.types.js\";\n\n/**\n * Renders a semantic separator along the selected axis.\n *\n * @public\n */\nexport const Divider = forwardRef<HTMLDivElement, DividerProps>(function Divider(\n { orientation = \"horizontal\", className, ...props },\n ref,\n) {\n return (\n <div\n {...props}\n ref={ref}\n role=\"separator\"\n aria-orientation={orientation === \"vertical\" ? \"vertical\" : undefined}\n data-orientation={orientation}\n className={classNames(\"miaixz-divider\", `miaixz-divider-${orientation}`, className)}\n />\n );\n});\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { HTMLAttributes } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Defines properties owned by the Miaixz Divider contract.
|
|
4
|
+
*
|
|
5
|
+
* @public
|
|
6
|
+
*/
|
|
7
|
+
export interface MiaixzDividerOwnProps {
|
|
8
|
+
/**
|
|
9
|
+
* Selects the separator axis.
|
|
10
|
+
*
|
|
11
|
+
* @defaultValue `"horizontal"`
|
|
12
|
+
*/
|
|
13
|
+
readonly orientation?: "horizontal" | "vertical";
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Configures a semantic horizontal or vertical separator.
|
|
17
|
+
*
|
|
18
|
+
* @public
|
|
19
|
+
*/
|
|
20
|
+
export interface DividerProps extends Omit<HTMLAttributes<HTMLDivElement>, keyof MiaixzDividerOwnProps>, MiaixzDividerOwnProps {
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=divider.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"divider.types.d.ts","sourceRoot":"","sources":["../../../src/components/divider/divider.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;CAClD;AAED;;;;GAIG;AACH,MAAM,WAAW,YACf,SACE,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,MAAM,qBAAqB,CAAC,EACjE,qBAAqB;CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"divider.types.js","sourceRoot":"","sources":["../../../src/components/divider/divider.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { HTMLAttributes } from \"react\";\n\n/**\n * Defines properties owned by the Miaixz Divider contract.\n *\n * @public\n */\nexport interface MiaixzDividerOwnProps {\n /**\n * Selects the separator axis.\n *\n * @defaultValue `\"horizontal\"`\n */\n readonly orientation?: \"horizontal\" | \"vertical\";\n}\n\n/**\n * Configures a semantic horizontal or vertical separator.\n *\n * @public\n */\nexport interface DividerProps\n extends\n Omit<HTMLAttributes<HTMLDivElement>, keyof MiaixzDividerOwnProps>,\n MiaixzDividerOwnProps {}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/divider/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/divider/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC","sourcesContent":["export { Divider } from \"./divider.js\";\nexport type { DividerProps, MiaixzDividerOwnProps } from \"./divider.types.js\";\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { DrawerProps } from "./drawer.types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Renders a native modal drawer with localized dismissal and configurable side.
|
|
4
|
+
*
|
|
5
|
+
* @public
|
|
6
|
+
*/
|
|
7
|
+
export declare const Drawer: import("react").ForwardRefExoticComponent<DrawerProps & import("react").RefAttributes<HTMLDialogElement>>;
|
|
8
|
+
//# sourceMappingURL=drawer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drawer.d.ts","sourceRoot":"","sources":["../../../src/components/drawer/drawer.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;;GAIG;AACH,eAAO,MAAM,MAAM,2GA6FjB,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef, useId, useRef } from "react";
|
|
3
|
+
import { createPortal } from "react-dom";
|
|
4
|
+
import { FocusScope } from "../../accessibility/focus-scope.js";
|
|
5
|
+
import { classNames } from "../../internal/class-names.js";
|
|
6
|
+
import { useMiaixzNativeModal, useMiaixzPortalTarget } from "../../internal/overlay/index.js";
|
|
7
|
+
import { useMiaixzLocale } from "../../i18n/index.js";
|
|
8
|
+
import { useMergedRef } from "../../internal/use-merged-ref.js";
|
|
9
|
+
import { Button } from "../button/index.js";
|
|
10
|
+
import { Icon } from "../icon/index.js";
|
|
11
|
+
/**
|
|
12
|
+
* Renders a native modal drawer with localized dismissal and configurable side.
|
|
13
|
+
*
|
|
14
|
+
* @public
|
|
15
|
+
*/
|
|
16
|
+
export const Drawer = forwardRef(function Drawer({ open, onOpenChange, title, description, footer, size = "medium", placement = "right", closeLabel, showClose = true, closeOnBackdrop = true, className, children, onCancel, onClose, onClick, ...props }, forwardedRef) {
|
|
17
|
+
const { t } = useMiaixzLocale();
|
|
18
|
+
const resolvedCloseLabel = closeLabel ?? t("ui.drawer.close");
|
|
19
|
+
const internalRef = useRef(null);
|
|
20
|
+
const ref = useMergedRef(internalRef, forwardedRef);
|
|
21
|
+
const titleId = `miaixz-drawer-title-${useId()}`;
|
|
22
|
+
const generatedDescriptionId = `miaixz-drawer-description-${useId()}`;
|
|
23
|
+
const descriptionId = description ? generatedDescriptionId : undefined;
|
|
24
|
+
const portalTarget = useMiaixzPortalTarget();
|
|
25
|
+
const restoreFocusRef = useMiaixzNativeModal(internalRef, open, portalTarget);
|
|
26
|
+
if (portalTarget === null)
|
|
27
|
+
return null;
|
|
28
|
+
return createPortal(_jsx(FocusScope, { active: open, containerRef: internalRef, restoreFocusRef: restoreFocusRef, children: _jsxs("dialog", { ...props, ref: ref, "aria-labelledby": titleId, "aria-describedby": descriptionId, "data-placement": placement, className: classNames("miaixz-drawer", size !== "medium" && `miaixz-drawer-${size}`, placement !== "right" && `miaixz-drawer-${placement}`, className), onCancel: (event) => {
|
|
29
|
+
onCancel?.(event);
|
|
30
|
+
if (!event.defaultPrevented) {
|
|
31
|
+
event.preventDefault();
|
|
32
|
+
onOpenChange(false);
|
|
33
|
+
}
|
|
34
|
+
}, onClose: (event) => {
|
|
35
|
+
onClose?.(event);
|
|
36
|
+
if (open)
|
|
37
|
+
onOpenChange(false);
|
|
38
|
+
}, onClick: (event) => {
|
|
39
|
+
onClick?.(event);
|
|
40
|
+
if (!event.defaultPrevented && closeOnBackdrop && event.target === event.currentTarget) {
|
|
41
|
+
onOpenChange(false);
|
|
42
|
+
}
|
|
43
|
+
}, children: [_jsxs("header", { className: "miaixz-drawer-header", children: [_jsxs("div", { children: [_jsx("h2", { id: titleId, className: "miaixz-drawer-title", children: title }), description !== undefined && (_jsx("p", { id: descriptionId, className: "miaixz-drawer-description", children: description }))] }), showClose && (_jsx(Button, { iconOnly: true, variant: "ghost", size: "small", "aria-label": resolvedCloseLabel, onClick: () => onOpenChange(false), children: _jsx(Icon, { name: "X", size: "control" }) }))] }), _jsx("div", { className: "miaixz-drawer-body", children: children }), footer !== undefined && _jsx("footer", { className: "miaixz-drawer-footer", children: footer })] }) }), portalTarget);
|
|
44
|
+
});
|
|
45
|
+
//# sourceMappingURL=drawer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drawer.js","sourceRoot":"","sources":["../../../src/components/drawer/drawer.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, useId, useRef } from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport { FocusScope } from \"../../accessibility/focus-scope.js\";\nimport { classNames } from \"../../internal/class-names.js\";\nimport { useMiaixzNativeModal, useMiaixzPortalTarget } from \"../../internal/overlay/index.js\";\nimport { useMiaixzLocale } from \"../../i18n/index.js\";\nimport { useMergedRef } from \"../../internal/use-merged-ref.js\";\nimport { Button } from \"../button/index.js\";\nimport { Icon } from \"../icon/index.js\";\nimport type { DrawerProps } from \"./drawer.types.js\";\n\n/**\n * Renders a native modal drawer with localized dismissal and configurable side.\n *\n * @public\n */\nexport const Drawer = forwardRef<HTMLDialogElement, DrawerProps>(function Drawer(\n {\n open,\n onOpenChange,\n title,\n description,\n footer,\n size = \"medium\",\n placement = \"right\",\n closeLabel,\n showClose = true,\n closeOnBackdrop = true,\n className,\n children,\n onCancel,\n onClose,\n onClick,\n ...props\n },\n forwardedRef,\n) {\n const { t } = useMiaixzLocale();\n const resolvedCloseLabel = closeLabel ?? t(\"ui.drawer.close\");\n const internalRef = useRef<HTMLDialogElement>(null);\n const ref = useMergedRef(internalRef, forwardedRef);\n const titleId = `miaixz-drawer-title-${useId()}`;\n const generatedDescriptionId = `miaixz-drawer-description-${useId()}`;\n const descriptionId = description ? generatedDescriptionId : undefined;\n const portalTarget = useMiaixzPortalTarget();\n const restoreFocusRef = useMiaixzNativeModal(internalRef, open, portalTarget);\n\n if (portalTarget === null) return null;\n return createPortal(\n <FocusScope active={open} containerRef={internalRef} restoreFocusRef={restoreFocusRef}>\n <dialog\n {...props}\n ref={ref}\n aria-labelledby={titleId}\n aria-describedby={descriptionId}\n data-placement={placement}\n className={classNames(\n \"miaixz-drawer\",\n size !== \"medium\" && `miaixz-drawer-${size}`,\n placement !== \"right\" && `miaixz-drawer-${placement}`,\n className,\n )}\n onCancel={(event) => {\n onCancel?.(event);\n if (!event.defaultPrevented) {\n event.preventDefault();\n onOpenChange(false);\n }\n }}\n onClose={(event) => {\n onClose?.(event);\n if (open) onOpenChange(false);\n }}\n onClick={(event) => {\n onClick?.(event);\n if (!event.defaultPrevented && closeOnBackdrop && event.target === event.currentTarget) {\n onOpenChange(false);\n }\n }}\n >\n <header className=\"miaixz-drawer-header\">\n <div>\n <h2 id={titleId} className=\"miaixz-drawer-title\">\n {title}\n </h2>\n {description !== undefined && (\n <p id={descriptionId} className=\"miaixz-drawer-description\">\n {description}\n </p>\n )}\n </div>\n {showClose && (\n <Button\n iconOnly\n variant=\"ghost\"\n size=\"small\"\n aria-label={resolvedCloseLabel}\n onClick={() => onOpenChange(false)}\n >\n <Icon name=\"X\" size=\"control\" />\n </Button>\n )}\n </header>\n <div className=\"miaixz-drawer-body\">{children}</div>\n {footer !== undefined && <footer className=\"miaixz-drawer-footer\">{footer}</footer>}\n </dialog>\n </FocusScope>,\n portalTarget,\n );\n});\n"]}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { DialogHTMLAttributes, ReactNode } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Defines the supported drawer widths.
|
|
4
|
+
*
|
|
5
|
+
* @public
|
|
6
|
+
*/
|
|
7
|
+
export type DrawerSize = "small" | "medium" | "large";
|
|
8
|
+
/**
|
|
9
|
+
* Defines the viewport edge from which a drawer opens.
|
|
10
|
+
*
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
13
|
+
export type DrawerPlacement = "left" | "right" | "bottom";
|
|
14
|
+
/**
|
|
15
|
+
* Configures a controlled native modal drawer.
|
|
16
|
+
*
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
19
|
+
export interface DrawerProps extends Omit<DialogHTMLAttributes<HTMLDialogElement>, "open" | "title"> {
|
|
20
|
+
/**
|
|
21
|
+
* Controls whether the drawer is open.
|
|
22
|
+
*/
|
|
23
|
+
open: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Receives requested open-state changes.
|
|
26
|
+
*/
|
|
27
|
+
onOpenChange: (open: boolean) => void;
|
|
28
|
+
/**
|
|
29
|
+
* Supplies the drawer heading.
|
|
30
|
+
*/
|
|
31
|
+
title: ReactNode;
|
|
32
|
+
/**
|
|
33
|
+
* Supplies supporting drawer description content.
|
|
34
|
+
*/
|
|
35
|
+
description?: ReactNode;
|
|
36
|
+
/**
|
|
37
|
+
* Supplies the drawer action footer.
|
|
38
|
+
*/
|
|
39
|
+
footer?: ReactNode;
|
|
40
|
+
/**
|
|
41
|
+
* Selects the drawer width.
|
|
42
|
+
*
|
|
43
|
+
* @defaultValue `"medium"`
|
|
44
|
+
*/
|
|
45
|
+
size?: DrawerSize;
|
|
46
|
+
/**
|
|
47
|
+
* Selects the viewport edge used by the drawer.
|
|
48
|
+
*
|
|
49
|
+
* @defaultValue `"right"`
|
|
50
|
+
*/
|
|
51
|
+
placement?: DrawerPlacement;
|
|
52
|
+
/**
|
|
53
|
+
* Overrides the localized close-button label.
|
|
54
|
+
*/
|
|
55
|
+
closeLabel?: string;
|
|
56
|
+
/**
|
|
57
|
+
* Controls whether the close button is rendered.
|
|
58
|
+
*
|
|
59
|
+
* @defaultValue `true`
|
|
60
|
+
*/
|
|
61
|
+
showClose?: boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Allows a backdrop click to request closure.
|
|
64
|
+
*
|
|
65
|
+
* @defaultValue `true`
|
|
66
|
+
*/
|
|
67
|
+
closeOnBackdrop?: boolean;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=drawer.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drawer.types.d.ts","sourceRoot":"","sources":["../../../src/components/drawer/drawer.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE7D;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEtD;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE1D;;;;GAIG;AACH,MAAM,WAAW,WAAY,SAAQ,IAAI,CACvC,oBAAoB,CAAC,iBAAiB,CAAC,EACvC,MAAM,GAAG,OAAO,CACjB;IACC;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;IACd;;OAEG;IACH,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC;;OAEG;IACH,KAAK,EAAE,SAAS,CAAC;IACjB;;OAEG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;;OAIG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB;;;;OAIG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drawer.types.js","sourceRoot":"","sources":["../../../src/components/drawer/drawer.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { DialogHTMLAttributes, ReactNode } from \"react\";\n\n/**\n * Defines the supported drawer widths.\n *\n * @public\n */\nexport type DrawerSize = \"small\" | \"medium\" | \"large\";\n\n/**\n * Defines the viewport edge from which a drawer opens.\n *\n * @public\n */\nexport type DrawerPlacement = \"left\" | \"right\" | \"bottom\";\n\n/**\n * Configures a controlled native modal drawer.\n *\n * @public\n */\nexport interface DrawerProps extends Omit<\n DialogHTMLAttributes<HTMLDialogElement>,\n \"open\" | \"title\"\n> {\n /**\n * Controls whether the drawer is open.\n */\n open: boolean;\n /**\n * Receives requested open-state changes.\n */\n onOpenChange: (open: boolean) => void;\n /**\n * Supplies the drawer heading.\n */\n title: ReactNode;\n /**\n * Supplies supporting drawer description content.\n */\n description?: ReactNode;\n /**\n * Supplies the drawer action footer.\n */\n footer?: ReactNode;\n /**\n * Selects the drawer width.\n *\n * @defaultValue `\"medium\"`\n */\n size?: DrawerSize;\n /**\n * Selects the viewport edge used by the drawer.\n *\n * @defaultValue `\"right\"`\n */\n placement?: DrawerPlacement;\n /**\n * Overrides the localized close-button label.\n */\n closeLabel?: string;\n /**\n * Controls whether the close button is rendered.\n *\n * @defaultValue `true`\n */\n showClose?: boolean;\n /**\n * Allows a backdrop click to request closure.\n *\n * @defaultValue `true`\n */\n closeOnBackdrop?: boolean;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/drawer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/drawer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC","sourcesContent":["export { Drawer } from \"./drawer.js\";\nexport type { DrawerPlacement, DrawerProps, DrawerSize } from \"./drawer.types.js\";\n"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { DropdownDividerProps, DropdownItemProps, DropdownLabelProps, DropdownProps } from "./dropdown.types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Renders a localized Portal menu with package-owned WAI-ARIA keyboard behavior.
|
|
4
|
+
*
|
|
5
|
+
* @public
|
|
6
|
+
*/
|
|
7
|
+
export declare const Dropdown: import("react").ForwardRefExoticComponent<DropdownProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
8
|
+
/**
|
|
9
|
+
* Renders a menu item as a link or button with optional icon and danger tone.
|
|
10
|
+
*
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
13
|
+
export declare const DropdownItem: import("react").ForwardRefExoticComponent<DropdownItemProps & import("react").RefAttributes<HTMLAnchorElement | HTMLButtonElement>>;
|
|
14
|
+
/**
|
|
15
|
+
* Renders a non-interactive label inside a dropdown menu.
|
|
16
|
+
*
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
19
|
+
export declare const DropdownLabel: import("react").ForwardRefExoticComponent<DropdownLabelProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
20
|
+
/**
|
|
21
|
+
* Separates logical groups of dropdown items.
|
|
22
|
+
*
|
|
23
|
+
* @public
|
|
24
|
+
*/
|
|
25
|
+
export declare const DropdownDivider: import("react").ForwardRefExoticComponent<DropdownDividerProps & import("react").RefAttributes<HTMLHRElement>>;
|
|
26
|
+
//# sourceMappingURL=dropdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dropdown.d.ts","sourceRoot":"","sources":["../../../src/components/dropdown/dropdown.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACd,MAAM,qBAAqB,CAAC;AAE7B;;;;GAIG;AACH,eAAO,MAAM,QAAQ,0GAenB,CAAC;AAyCH;;;;GAIG;AACH,eAAO,MAAM,YAAY,qIA0DxB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,+GAKxB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,eAAe,gHAI3B,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef } from "react";
|
|
3
|
+
import { classNames } from "../../internal/class-names.js";
|
|
4
|
+
import { MiaixzMenu } from "../../internal/menu/index.js";
|
|
5
|
+
import { useMiaixzLocale } from "../../i18n/index.js";
|
|
6
|
+
import { Icon } from "../icon/index.js";
|
|
7
|
+
import { Popover } from "../popover/index.js";
|
|
8
|
+
import { useMiaixzPopoverContext } from "../popover/popover-context.js";
|
|
9
|
+
/**
|
|
10
|
+
* Renders a localized Portal menu with package-owned WAI-ARIA keyboard behavior.
|
|
11
|
+
*
|
|
12
|
+
* @public
|
|
13
|
+
*/
|
|
14
|
+
export const Dropdown = forwardRef(function Dropdown({ label, children, triggerProps, ...props }, ref) {
|
|
15
|
+
const { t } = useMiaixzLocale();
|
|
16
|
+
return (_jsx(Popover, { ...props, ref: ref, triggerProps: { ...triggerProps, "aria-haspopup": "menu" }, contentClassName: "miaixz-dropdown-content", children: _jsx(DropdownMenu, { label: label ?? t("ui.menu.label"), children: children }) }));
|
|
17
|
+
});
|
|
18
|
+
/**
|
|
19
|
+
* Connects the package-internal Menu behavior to its owning Popover lifecycle.
|
|
20
|
+
*
|
|
21
|
+
* @param props - Composed Dropdown menu content.
|
|
22
|
+
* @param props.label - Accessible menu name.
|
|
23
|
+
* @param props.children - Public Dropdown menu content.
|
|
24
|
+
* @returns The internal menu surface.
|
|
25
|
+
*/
|
|
26
|
+
function DropdownMenu({ label, children }) {
|
|
27
|
+
const popover = useMiaixzPopoverContext();
|
|
28
|
+
if (popover === undefined)
|
|
29
|
+
return null;
|
|
30
|
+
return (_jsx(MiaixzMenu, { active: popover.open, triggerRef: popover.triggerRef, onRequestClose: popover.requestClose, "aria-label": label, className: "miaixz-dropdown-menu", children: children }));
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Renders a menu item as a link or button with optional icon and danger tone.
|
|
34
|
+
*
|
|
35
|
+
* @public
|
|
36
|
+
*/
|
|
37
|
+
export const DropdownItem = forwardRef(function DropdownItem({ icon, description, danger = false, selected = false, className, children, ...props }, ref) {
|
|
38
|
+
const originalOnClick = props.onClick;
|
|
39
|
+
const content = (_jsxs(_Fragment, { children: [icon !== undefined && _jsx("span", { className: "miaixz-dropdown-item-icon", children: icon }), _jsxs("span", { className: "miaixz-dropdown-item-copy", children: [_jsx("span", { className: "miaixz-dropdown-item-label", children: children }), description !== undefined && (_jsx("span", { className: "miaixz-dropdown-item-description", children: description }))] }), selected && _jsx(Icon, { name: "Check", size: "control", className: "miaixz-dropdown-item-check" })] }));
|
|
40
|
+
const commonProps = {
|
|
41
|
+
role: "menuitem",
|
|
42
|
+
className: classNames("miaixz-dropdown-item", danger && "miaixz-dropdown-item-danger", selected && "miaixz-dropdown-item-selected", className),
|
|
43
|
+
onClick: (event) => {
|
|
44
|
+
originalOnClick?.(event);
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
if ("href" in props && props.href !== undefined) {
|
|
48
|
+
const { href, ...anchorProps } = props;
|
|
49
|
+
return (_jsx("a", { ...anchorProps, ...commonProps, ref: ref, href: href, children: content }));
|
|
50
|
+
}
|
|
51
|
+
const buttonProps = props;
|
|
52
|
+
return (_jsx("button", { ...buttonProps, ...commonProps, ref: ref, type: buttonProps.type ?? "button", children: content }));
|
|
53
|
+
});
|
|
54
|
+
/**
|
|
55
|
+
* Renders a non-interactive label inside a dropdown menu.
|
|
56
|
+
*
|
|
57
|
+
* @public
|
|
58
|
+
*/
|
|
59
|
+
export const DropdownLabel = forwardRef(function DropdownLabel({ className, ...props }, ref) {
|
|
60
|
+
return _jsx("div", { ...props, ref: ref, className: classNames("miaixz-dropdown-label", className) });
|
|
61
|
+
});
|
|
62
|
+
/**
|
|
63
|
+
* Separates logical groups of dropdown items.
|
|
64
|
+
*
|
|
65
|
+
* @public
|
|
66
|
+
*/
|
|
67
|
+
export const DropdownDivider = forwardRef(function DropdownDivider({ className, ...props }, ref) {
|
|
68
|
+
return _jsx("hr", { ...props, ref: ref, className: classNames("miaixz-dropdown-divider", className) });
|
|
69
|
+
});
|
|
70
|
+
//# sourceMappingURL=dropdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dropdown.js","sourceRoot":"","sources":["../../../src/components/dropdown/dropdown.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef } from \"react\";\nimport type {\n ButtonHTMLAttributes,\n ForwardedRef,\n MouseEvent as ReactMouseEvent,\n ReactNode,\n} from \"react\";\n\nimport { classNames } from \"../../internal/class-names.js\";\nimport { MiaixzMenu } from \"../../internal/menu/index.js\";\nimport { useMiaixzLocale } from \"../../i18n/index.js\";\nimport { Icon } from \"../icon/index.js\";\nimport { Popover } from \"../popover/index.js\";\nimport { useMiaixzPopoverContext } from \"../popover/popover-context.js\";\nimport type {\n DropdownDividerProps,\n DropdownItemProps,\n DropdownLabelProps,\n DropdownProps,\n} from \"./dropdown.types.js\";\n\n/**\n * Renders a localized Portal menu with package-owned WAI-ARIA keyboard behavior.\n *\n * @public\n */\nexport const Dropdown = forwardRef<HTMLDivElement, DropdownProps>(function Dropdown(\n { label, children, triggerProps, ...props },\n ref,\n) {\n const { t } = useMiaixzLocale();\n return (\n <Popover\n {...props}\n ref={ref}\n triggerProps={{ ...triggerProps, \"aria-haspopup\": \"menu\" }}\n contentClassName=\"miaixz-dropdown-content\"\n >\n <DropdownMenu label={label ?? t(\"ui.menu.label\")}>{children}</DropdownMenu>\n </Popover>\n );\n});\n\n/**\n * Configures the composed package-internal menu rendered inside Dropdown content.\n */\ninterface DropdownMenuProps {\n /**\n * Supplies the accessible menu name.\n */\n readonly label: string;\n\n /**\n * Supplies public Dropdown item, label, and divider content.\n */\n readonly children: ReactNode;\n}\n\n/**\n * Connects the package-internal Menu behavior to its owning Popover lifecycle.\n *\n * @param props - Composed Dropdown menu content.\n * @param props.label - Accessible menu name.\n * @param props.children - Public Dropdown menu content.\n * @returns The internal menu surface.\n */\nfunction DropdownMenu({ label, children }: DropdownMenuProps) {\n const popover = useMiaixzPopoverContext();\n if (popover === undefined) return null;\n return (\n <MiaixzMenu\n active={popover.open}\n triggerRef={popover.triggerRef}\n onRequestClose={popover.requestClose}\n aria-label={label}\n className=\"miaixz-dropdown-menu\"\n >\n {children}\n </MiaixzMenu>\n );\n}\n\n/**\n * Renders a menu item as a link or button with optional icon and danger tone.\n *\n * @public\n */\nexport const DropdownItem = forwardRef<HTMLAnchorElement | HTMLButtonElement, DropdownItemProps>(\n function DropdownItem(\n { icon, description, danger = false, selected = false, className, children, ...props },\n ref,\n ) {\n const originalOnClick = props.onClick as\n ((event: ReactMouseEvent<HTMLAnchorElement | HTMLButtonElement>) => void) | undefined;\n const content = (\n <>\n {icon !== undefined && <span className=\"miaixz-dropdown-item-icon\">{icon}</span>}\n <span className=\"miaixz-dropdown-item-copy\">\n <span className=\"miaixz-dropdown-item-label\">{children}</span>\n {description !== undefined && (\n <span className=\"miaixz-dropdown-item-description\">{description}</span>\n )}\n </span>\n {selected && <Icon name=\"Check\" size=\"control\" className=\"miaixz-dropdown-item-check\" />}\n </>\n );\n const commonProps = {\n role: \"menuitem\" as const,\n className: classNames(\n \"miaixz-dropdown-item\",\n danger && \"miaixz-dropdown-item-danger\",\n selected && \"miaixz-dropdown-item-selected\",\n className,\n ),\n onClick: (event: ReactMouseEvent<HTMLAnchorElement | HTMLButtonElement>) => {\n originalOnClick?.(event);\n },\n };\n\n if (\"href\" in props && props.href !== undefined) {\n const { href, ...anchorProps } = props;\n return (\n <a\n {...anchorProps}\n {...commonProps}\n ref={ref as ForwardedRef<HTMLAnchorElement>}\n href={href}\n >\n {content}\n </a>\n );\n }\n\n const buttonProps = props as ButtonHTMLAttributes<HTMLButtonElement>;\n return (\n <button\n {...buttonProps}\n {...commonProps}\n ref={ref as ForwardedRef<HTMLButtonElement>}\n type={buttonProps.type ?? \"button\"}\n >\n {content}\n </button>\n );\n },\n);\n\n/**\n * Renders a non-interactive label inside a dropdown menu.\n *\n * @public\n */\nexport const DropdownLabel = forwardRef<HTMLDivElement, DropdownLabelProps>(function DropdownLabel(\n { className, ...props },\n ref,\n) {\n return <div {...props} ref={ref} className={classNames(\"miaixz-dropdown-label\", className)} />;\n});\n\n/**\n * Separates logical groups of dropdown items.\n *\n * @public\n */\nexport const DropdownDivider = forwardRef<HTMLHRElement, DropdownDividerProps>(\n function DropdownDivider({ className, ...props }, ref) {\n return <hr {...props} ref={ref} className={classNames(\"miaixz-dropdown-divider\", className)} />;\n },\n);\n"]}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { AnchorHTMLAttributes, ButtonHTMLAttributes, HTMLAttributes, ReactNode } from "react";
|
|
2
|
+
import type { PopoverProps } from "../popover/index.js";
|
|
3
|
+
/**
|
|
4
|
+
* Configures a disclosure-based dropdown menu.
|
|
5
|
+
*
|
|
6
|
+
* @public
|
|
7
|
+
*/
|
|
8
|
+
export interface DropdownProps extends Omit<PopoverProps, "contentClassName"> {
|
|
9
|
+
/**
|
|
10
|
+
* Provides the accessible menu label.
|
|
11
|
+
*/
|
|
12
|
+
label?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Defines properties shared by Miaixz dropdown item variants.
|
|
16
|
+
*
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
19
|
+
export interface MiaixzDropdownItemBaseProps {
|
|
20
|
+
/**
|
|
21
|
+
* Displays optional leading icon content.
|
|
22
|
+
*/
|
|
23
|
+
icon?: ReactNode;
|
|
24
|
+
/**
|
|
25
|
+
* Displays supporting item description content.
|
|
26
|
+
*/
|
|
27
|
+
description?: ReactNode;
|
|
28
|
+
/**
|
|
29
|
+
* Applies the destructive-action treatment.
|
|
30
|
+
*
|
|
31
|
+
* @defaultValue `false`
|
|
32
|
+
*/
|
|
33
|
+
danger?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Displays the selected-item indicator.
|
|
36
|
+
*
|
|
37
|
+
* @defaultValue `false`
|
|
38
|
+
*/
|
|
39
|
+
selected?: boolean;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Configures a link-backed Miaixz dropdown item.
|
|
43
|
+
*
|
|
44
|
+
* @public
|
|
45
|
+
*/
|
|
46
|
+
export interface MiaixzDropdownAnchorItemProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, "href"> {
|
|
47
|
+
/**
|
|
48
|
+
* Supplies the required link destination.
|
|
49
|
+
*/
|
|
50
|
+
href: string;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Configures a button-backed Miaixz dropdown item.
|
|
54
|
+
*
|
|
55
|
+
* @public
|
|
56
|
+
*/
|
|
57
|
+
export interface MiaixzDropdownButtonItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
58
|
+
/**
|
|
59
|
+
* Keeps the item in button mode when no destination is supplied.
|
|
60
|
+
*/
|
|
61
|
+
href?: undefined;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Configures a dropdown item rendered as either a link or a button.
|
|
65
|
+
*
|
|
66
|
+
* @public
|
|
67
|
+
*/
|
|
68
|
+
export type DropdownItemProps = MiaixzDropdownItemBaseProps & (MiaixzDropdownAnchorItemProps | MiaixzDropdownButtonItemProps);
|
|
69
|
+
/**
|
|
70
|
+
* Configures a non-interactive label within a dropdown menu.
|
|
71
|
+
*
|
|
72
|
+
* @public
|
|
73
|
+
*/
|
|
74
|
+
export interface DropdownLabelProps extends HTMLAttributes<HTMLDivElement> {
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Configures a semantic divider within a dropdown menu.
|
|
78
|
+
*
|
|
79
|
+
* @public
|
|
80
|
+
*/
|
|
81
|
+
export interface DropdownDividerProps extends HTMLAttributes<HTMLHRElement> {
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=dropdown.types.d.ts.map
|