@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,39 @@
|
|
|
1
|
+
import type { TextareaHTMLAttributes } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Defines the supported multiline control sizes.
|
|
4
|
+
*
|
|
5
|
+
* @public
|
|
6
|
+
*/
|
|
7
|
+
export type TextareaSize = "small" | "medium" | "large";
|
|
8
|
+
/**
|
|
9
|
+
* Defines the browser resize directions enabled for a textarea.
|
|
10
|
+
*
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
13
|
+
export type TextareaResize = "none" | "vertical" | "horizontal" | "both";
|
|
14
|
+
/**
|
|
15
|
+
* Configures a multiline native text control.
|
|
16
|
+
*
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
19
|
+
export interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {
|
|
20
|
+
/**
|
|
21
|
+
* Selects the control size.
|
|
22
|
+
*
|
|
23
|
+
* @defaultValue `"medium"`
|
|
24
|
+
*/
|
|
25
|
+
size?: TextareaSize;
|
|
26
|
+
/**
|
|
27
|
+
* Applies the invalid state independently of `aria-invalid`.
|
|
28
|
+
*
|
|
29
|
+
* @defaultValue `false`
|
|
30
|
+
*/
|
|
31
|
+
invalid?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Selects the browser resize directions.
|
|
34
|
+
*
|
|
35
|
+
* @defaultValue `"vertical"`
|
|
36
|
+
*/
|
|
37
|
+
resize?: TextareaResize;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=textarea.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textarea.types.d.ts","sourceRoot":"","sources":["../../../src/components/textarea/textarea.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,OAAO,CAAC;AAEpD;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAExD;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU,GAAG,YAAY,GAAG,MAAM,CAAC;AAEzE;;;;GAIG;AACH,MAAM,WAAW,aAAc,SAAQ,sBAAsB,CAAC,mBAAmB,CAAC;IAChF;;;;OAIG;IACH,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textarea.types.js","sourceRoot":"","sources":["../../../src/components/textarea/textarea.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { TextareaHTMLAttributes } from \"react\";\n\n/**\n * Defines the supported multiline control sizes.\n *\n * @public\n */\nexport type TextareaSize = \"small\" | \"medium\" | \"large\";\n\n/**\n * Defines the browser resize directions enabled for a textarea.\n *\n * @public\n */\nexport type TextareaResize = \"none\" | \"vertical\" | \"horizontal\" | \"both\";\n\n/**\n * Configures a multiline native text control.\n *\n * @public\n */\nexport interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {\n /**\n * Selects the control size.\n *\n * @defaultValue `\"medium\"`\n */\n size?: TextareaSize;\n /**\n * Applies the invalid state independently of `aria-invalid`.\n *\n * @defaultValue `false`\n */\n invalid?: boolean;\n /**\n * Selects the browser resize directions.\n *\n * @defaultValue `\"vertical\"`\n */\n resize?: TextareaResize;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/toast/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC5D,YAAY,EACV,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,SAAS,GACV,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/toast/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC","sourcesContent":["export { Toast, ToastProvider, useToast } from \"./toast.js\";\nexport type {\n ToastContextValue,\n ToastOptions,\n ToastProps,\n ToastProviderProps,\n ToastRecord,\n ToastTone,\n} from \"./toast.types.js\";\n"]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ToastContextValue, ToastProps, ToastProviderProps } from "./toast.types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Renders one localized live-region notification with optional action and dismissal.
|
|
4
|
+
*
|
|
5
|
+
* @public
|
|
6
|
+
*/
|
|
7
|
+
export declare const Toast: import("react").ForwardRefExoticComponent<ToastProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
8
|
+
/**
|
|
9
|
+
* Owns the application toast queue and renders it into the document portal.
|
|
10
|
+
*
|
|
11
|
+
* @param props - Toast provider configuration.
|
|
12
|
+
* @returns The provider subtree and client-side toast portal.
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
15
|
+
export declare function ToastProvider({ children, defaultDuration }: ToastProviderProps): import("react").JSX.Element;
|
|
16
|
+
/**
|
|
17
|
+
* Returns the nearest toast controller.
|
|
18
|
+
*
|
|
19
|
+
* @returns The nearest toast queue controller.
|
|
20
|
+
* @throws A localized error when called outside {@link ToastProvider}.
|
|
21
|
+
* @public
|
|
22
|
+
*/
|
|
23
|
+
export declare function useToast(): ToastContextValue;
|
|
24
|
+
//# sourceMappingURL=toast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../../../src/components/toast/toast.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,iBAAiB,EAEjB,UAAU,EACV,kBAAkB,EAGnB,MAAM,kBAAkB,CAAC;AAuC1B;;;;GAIG;AACH,eAAO,MAAM,KAAK,uGAqChB,CAAC;AAmBH;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,eAAsB,EAAE,EAAE,kBAAkB,+BAiDrF;AAGD;;;;;;GAMG;AACH,wBAAgB,QAAQ,IAAI,iBAAiB,CAU5C"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { createContext, forwardRef, useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
3
|
+
import { createPortal } from "react-dom";
|
|
4
|
+
import { createMiaixzUiError } from "../../errors/index.js";
|
|
5
|
+
import { classNames } from "../../internal/class-names.js";
|
|
6
|
+
import { useMiaixzManualPopover, useMiaixzPortalTarget } from "../../internal/overlay/index.js";
|
|
7
|
+
import { useMiaixzLocale } from "../../i18n/index.js";
|
|
8
|
+
import { Button } from "../button/index.js";
|
|
9
|
+
import { Icon } from "../icon/index.js";
|
|
10
|
+
const ToastContext = createContext(undefined);
|
|
11
|
+
let toastSequence = 0;
|
|
12
|
+
/**
|
|
13
|
+
* Freezes the maximum number of simultaneously visible notifications.
|
|
14
|
+
*/
|
|
15
|
+
const miaixzMaximumVisibleToasts = 5;
|
|
16
|
+
/**
|
|
17
|
+
* Creates a collision-resistant identifier for an in-memory notification.
|
|
18
|
+
*
|
|
19
|
+
* @returns A process-local toast identifier.
|
|
20
|
+
*/
|
|
21
|
+
function createToastId() {
|
|
22
|
+
toastSequence += 1;
|
|
23
|
+
return `miaixz-toast-${Date.now()}-${toastSequence}`;
|
|
24
|
+
}
|
|
25
|
+
const toneIcons = {
|
|
26
|
+
neutral: "Info",
|
|
27
|
+
success: "CircleCheck",
|
|
28
|
+
warning: "TriangleAlert",
|
|
29
|
+
danger: "CircleAlert",
|
|
30
|
+
info: "Info",
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Renders one localized live-region notification with optional action and dismissal.
|
|
34
|
+
*
|
|
35
|
+
* @public
|
|
36
|
+
*/
|
|
37
|
+
export const Toast = forwardRef(function Toast({ id, title, message, action, tone = "neutral", dismissLabel, onDismiss, className, ...props }, ref) {
|
|
38
|
+
const { t } = useMiaixzLocale();
|
|
39
|
+
const resolvedDismissLabel = dismissLabel ?? t("ui.notification.dismiss");
|
|
40
|
+
return (_jsxs("div", { ...props, ref: ref, role: tone === "danger" ? "alert" : "status", className: classNames("miaixz-toast", tone !== "neutral" && `miaixz-toast-${tone}`, className), children: [_jsx(Icon, { name: toneIcons[tone], size: "control", className: "miaixz-toast-icon" }), _jsxs("div", { className: "miaixz-toast-content", children: [_jsx("p", { className: "miaixz-toast-title", children: title }), message !== undefined && _jsx("p", { className: "miaixz-toast-message", children: message }), action !== undefined && _jsx("div", { className: "miaixz-toast-actions", children: action })] }), onDismiss && (_jsx(Button, { iconOnly: true, variant: "ghost", size: "small", "aria-label": resolvedDismissLabel, className: "miaixz-toast-dismiss", onClick: () => onDismiss(id), children: _jsx(Icon, { name: "X", size: "control" }) }))] }));
|
|
41
|
+
});
|
|
42
|
+
/* eslint-disable jsdoc/check-param-names, jsdoc/require-param -- TSDoc documents the typed properties instead of dotted parameter names. */
|
|
43
|
+
/**
|
|
44
|
+
* Applies auto-dismiss lifecycle behavior to one toast record.
|
|
45
|
+
*
|
|
46
|
+
* @param props - Managed toast configuration.
|
|
47
|
+
* @returns The managed toast element.
|
|
48
|
+
*/
|
|
49
|
+
function ManagedToast({ toast, dismiss }) {
|
|
50
|
+
useEffect(() => {
|
|
51
|
+
if (!toast.duration || toast.duration <= 0)
|
|
52
|
+
return;
|
|
53
|
+
const timer = window.setTimeout(() => dismiss(toast.id), toast.duration);
|
|
54
|
+
return () => window.clearTimeout(timer);
|
|
55
|
+
}, [dismiss, toast.duration, toast.id]);
|
|
56
|
+
return _jsx(Toast, { ...toast, onDismiss: dismiss });
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Owns the application toast queue and renders it into the document portal.
|
|
60
|
+
*
|
|
61
|
+
* @param props - Toast provider configuration.
|
|
62
|
+
* @returns The provider subtree and client-side toast portal.
|
|
63
|
+
* @public
|
|
64
|
+
*/
|
|
65
|
+
export function ToastProvider({ children, defaultDuration = 5000 }) {
|
|
66
|
+
const [toasts, setToasts] = useState([]);
|
|
67
|
+
const regionRef = useRef(null);
|
|
68
|
+
const portalTarget = useMiaixzPortalTarget(null, true);
|
|
69
|
+
const hasVisibleToasts = toasts.length > 0;
|
|
70
|
+
const visibleToasts = toasts.slice(0, miaixzMaximumVisibleToasts);
|
|
71
|
+
useMiaixzManualPopover(regionRef, hasVisibleToasts, portalTarget);
|
|
72
|
+
const context = useMemo(() => ({
|
|
73
|
+
notify(options) {
|
|
74
|
+
const id = options.id ?? createToastId();
|
|
75
|
+
setToasts((current) => [
|
|
76
|
+
...current.filter((toast) => toast.id !== id),
|
|
77
|
+
{ ...options, id, duration: options.duration ?? defaultDuration },
|
|
78
|
+
]);
|
|
79
|
+
return id;
|
|
80
|
+
},
|
|
81
|
+
dismiss(id) {
|
|
82
|
+
setToasts((current) => current.filter((toast) => toast.id !== id));
|
|
83
|
+
},
|
|
84
|
+
dismissAll() {
|
|
85
|
+
setToasts([]);
|
|
86
|
+
},
|
|
87
|
+
}), [defaultDuration]);
|
|
88
|
+
return (_jsxs(ToastContext.Provider, { value: context, children: [children, hasVisibleToasts &&
|
|
89
|
+
portalTarget !== null &&
|
|
90
|
+
createPortal(_jsx("div", { ref: regionRef, popover: "manual", className: "miaixz-toast-region", "aria-live": "polite", "aria-relevant": "additions removals", children: visibleToasts.map((toast) => (_jsx(ManagedToast, { toast: toast, dismiss: context.dismiss }, toast.id))) }), portalTarget)] }));
|
|
91
|
+
}
|
|
92
|
+
/* eslint-enable jsdoc/check-param-names, jsdoc/require-param */
|
|
93
|
+
/**
|
|
94
|
+
* Returns the nearest toast controller.
|
|
95
|
+
*
|
|
96
|
+
* @returns The nearest toast queue controller.
|
|
97
|
+
* @throws A localized error when called outside {@link ToastProvider}.
|
|
98
|
+
* @public
|
|
99
|
+
*/
|
|
100
|
+
export function useToast() {
|
|
101
|
+
const { t } = useMiaixzLocale();
|
|
102
|
+
const context = useContext(ToastContext);
|
|
103
|
+
if (!context) {
|
|
104
|
+
throw createMiaixzUiError(t, {
|
|
105
|
+
code: "UI_TOAST_PROVIDER_MISSING",
|
|
106
|
+
messageKey: "ui.error.toast.providerMissing",
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
return context;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=toast.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toast.js","sourceRoot":"","sources":["../../../src/components/toast/toast.tsx"],"names":[],"mappings":"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","sourcesContent":["import { createContext, forwardRef, useContext, useEffect, useMemo, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport { createMiaixzUiError } from \"../../errors/index.js\";\nimport { classNames } from \"../../internal/class-names.js\";\nimport { useMiaixzManualPopover, useMiaixzPortalTarget } from \"../../internal/overlay/index.js\";\nimport { useMiaixzLocale } from \"../../i18n/index.js\";\nimport { Button } from \"../button/index.js\";\nimport { Icon } from \"../icon/index.js\";\nimport type {\n ToastContextValue,\n ToastOptions,\n ToastProps,\n ToastProviderProps,\n ToastRecord,\n ToastTone,\n} from \"./toast.types.js\";\n\nconst ToastContext = createContext<ToastContextValue | undefined>(undefined);\nlet toastSequence = 0;\n\n/**\n * Freezes the maximum number of simultaneously visible notifications.\n */\nconst miaixzMaximumVisibleToasts = 5;\n\n/**\n * Creates a collision-resistant identifier for an in-memory notification.\n *\n * @returns A process-local toast identifier.\n */\nfunction createToastId(): string {\n toastSequence += 1;\n return `miaixz-toast-${Date.now()}-${toastSequence}`;\n}\n\nconst toneIcons: Record<ToastTone, \"Info\" | \"CircleCheck\" | \"TriangleAlert\" | \"CircleAlert\"> = {\n neutral: \"Info\",\n success: \"CircleCheck\",\n warning: \"TriangleAlert\",\n danger: \"CircleAlert\",\n info: \"Info\",\n};\n\ninterface ManagedToastProps {\n /**\n * Supplies the toast record to render and schedule.\n */\n toast: ToastRecord;\n /**\n * Supplies the queue operation used to dismiss the toast.\n */\n dismiss: (id: string) => void;\n}\n\n/**\n * Renders one localized live-region notification with optional action and dismissal.\n *\n * @public\n */\nexport const Toast = forwardRef<HTMLDivElement, ToastProps>(function Toast(\n { id, title, message, action, tone = \"neutral\", dismissLabel, onDismiss, className, ...props },\n ref,\n) {\n const { t } = useMiaixzLocale();\n const resolvedDismissLabel = dismissLabel ?? t(\"ui.notification.dismiss\");\n return (\n <div\n {...props}\n ref={ref}\n role={tone === \"danger\" ? \"alert\" : \"status\"}\n className={classNames(\n \"miaixz-toast\",\n tone !== \"neutral\" && `miaixz-toast-${tone}`,\n className,\n )}\n >\n <Icon name={toneIcons[tone]} size=\"control\" className=\"miaixz-toast-icon\" />\n <div className=\"miaixz-toast-content\">\n <p className=\"miaixz-toast-title\">{title}</p>\n {message !== undefined && <p className=\"miaixz-toast-message\">{message}</p>}\n {action !== undefined && <div className=\"miaixz-toast-actions\">{action}</div>}\n </div>\n {onDismiss && (\n <Button\n iconOnly\n variant=\"ghost\"\n size=\"small\"\n aria-label={resolvedDismissLabel}\n className=\"miaixz-toast-dismiss\"\n onClick={() => onDismiss(id)}\n >\n <Icon name=\"X\" size=\"control\" />\n </Button>\n )}\n </div>\n );\n});\n\n/* eslint-disable jsdoc/check-param-names, jsdoc/require-param -- TSDoc documents the typed properties instead of dotted parameter names. */\n/**\n * Applies auto-dismiss lifecycle behavior to one toast record.\n *\n * @param props - Managed toast configuration.\n * @returns The managed toast element.\n */\nfunction ManagedToast({ toast, dismiss }: ManagedToastProps) {\n useEffect(() => {\n if (!toast.duration || toast.duration <= 0) return;\n const timer = window.setTimeout(() => dismiss(toast.id), toast.duration);\n return () => window.clearTimeout(timer);\n }, [dismiss, toast.duration, toast.id]);\n\n return <Toast {...toast} onDismiss={dismiss} />;\n}\n\n/**\n * Owns the application toast queue and renders it into the document portal.\n *\n * @param props - Toast provider configuration.\n * @returns The provider subtree and client-side toast portal.\n * @public\n */\nexport function ToastProvider({ children, defaultDuration = 5000 }: ToastProviderProps) {\n const [toasts, setToasts] = useState<ToastRecord[]>([]);\n const regionRef = useRef<HTMLDivElement>(null);\n const portalTarget = useMiaixzPortalTarget(null, true);\n const hasVisibleToasts = toasts.length > 0;\n const visibleToasts = toasts.slice(0, miaixzMaximumVisibleToasts);\n useMiaixzManualPopover(regionRef, hasVisibleToasts, portalTarget);\n\n const context = useMemo<ToastContextValue>(\n () => ({\n notify(options: ToastOptions) {\n const id = options.id ?? createToastId();\n setToasts((current) => [\n ...current.filter((toast) => toast.id !== id),\n { ...options, id, duration: options.duration ?? defaultDuration },\n ]);\n return id;\n },\n dismiss(id: string) {\n setToasts((current) => current.filter((toast) => toast.id !== id));\n },\n dismissAll() {\n setToasts([]);\n },\n }),\n [defaultDuration],\n );\n\n return (\n <ToastContext.Provider value={context}>\n {children}\n {hasVisibleToasts &&\n portalTarget !== null &&\n createPortal(\n <div\n ref={regionRef}\n popover=\"manual\"\n className=\"miaixz-toast-region\"\n aria-live=\"polite\"\n aria-relevant=\"additions removals\"\n >\n {visibleToasts.map((toast) => (\n <ManagedToast key={toast.id} toast={toast} dismiss={context.dismiss} />\n ))}\n </div>,\n portalTarget,\n )}\n </ToastContext.Provider>\n );\n}\n/* eslint-enable jsdoc/check-param-names, jsdoc/require-param */\n\n/**\n * Returns the nearest toast controller.\n *\n * @returns The nearest toast queue controller.\n * @throws A localized error when called outside {@link ToastProvider}.\n * @public\n */\nexport function useToast(): ToastContextValue {\n const { t } = useMiaixzLocale();\n const context = useContext(ToastContext);\n if (!context) {\n throw createMiaixzUiError(t, {\n code: \"UI_TOAST_PROVIDER_MISSING\",\n messageKey: \"ui.error.toast.providerMissing\",\n });\n }\n return context;\n}\n"]}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import type { HTMLAttributes, ReactNode } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Defines the semantic treatment and live-region priority of a toast.
|
|
4
|
+
*
|
|
5
|
+
* @public
|
|
6
|
+
*/
|
|
7
|
+
export type ToastTone = "neutral" | "success" | "warning" | "danger" | "info";
|
|
8
|
+
/**
|
|
9
|
+
* Configures a notification submitted to the toast provider.
|
|
10
|
+
*
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
13
|
+
export interface ToastOptions {
|
|
14
|
+
/**
|
|
15
|
+
* Supplies a stable identifier for replacing or dismissing the toast.
|
|
16
|
+
*/
|
|
17
|
+
id?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Supplies the required notification title.
|
|
20
|
+
*/
|
|
21
|
+
title: ReactNode;
|
|
22
|
+
/**
|
|
23
|
+
* Supplies optional notification detail content.
|
|
24
|
+
*/
|
|
25
|
+
message?: ReactNode;
|
|
26
|
+
/**
|
|
27
|
+
* Displays an optional notification action.
|
|
28
|
+
*/
|
|
29
|
+
action?: ReactNode;
|
|
30
|
+
/**
|
|
31
|
+
* Selects the semantic notification treatment.
|
|
32
|
+
*
|
|
33
|
+
* @defaultValue `"neutral"`
|
|
34
|
+
*/
|
|
35
|
+
tone?: ToastTone;
|
|
36
|
+
/**
|
|
37
|
+
* Sets the auto-dismiss delay in milliseconds, or disables it with zero.
|
|
38
|
+
*/
|
|
39
|
+
duration?: number;
|
|
40
|
+
/**
|
|
41
|
+
* Overrides the localized dismissal label.
|
|
42
|
+
*/
|
|
43
|
+
dismissLabel?: string;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Represents a toast with its required provider-assigned identifier.
|
|
47
|
+
*
|
|
48
|
+
* @public
|
|
49
|
+
*/
|
|
50
|
+
export interface ToastRecord extends ToastOptions {
|
|
51
|
+
/**
|
|
52
|
+
* Identifies the toast within the provider queue.
|
|
53
|
+
*/
|
|
54
|
+
id: string;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Configures a rendered toast notification.
|
|
58
|
+
*
|
|
59
|
+
* @public
|
|
60
|
+
*/
|
|
61
|
+
export interface ToastProps extends Omit<HTMLAttributes<HTMLDivElement>, "id" | "title">, ToastRecord {
|
|
62
|
+
/**
|
|
63
|
+
* Receives a request to dismiss the identified toast.
|
|
64
|
+
*/
|
|
65
|
+
onDismiss?: (id: string) => void;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Configures the application toast queue provider.
|
|
69
|
+
*
|
|
70
|
+
* @public
|
|
71
|
+
*/
|
|
72
|
+
export interface ToastProviderProps {
|
|
73
|
+
/**
|
|
74
|
+
* Supplies the application subtree that can submit notifications.
|
|
75
|
+
*/
|
|
76
|
+
children: ReactNode;
|
|
77
|
+
/**
|
|
78
|
+
* Sets the fallback auto-dismiss delay in milliseconds.
|
|
79
|
+
*
|
|
80
|
+
* @defaultValue `5000`
|
|
81
|
+
*/
|
|
82
|
+
defaultDuration?: number;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Exposes imperative operations for the nearest toast queue.
|
|
86
|
+
*
|
|
87
|
+
* @public
|
|
88
|
+
*/
|
|
89
|
+
export interface ToastContextValue {
|
|
90
|
+
/**
|
|
91
|
+
* Adds or replaces a toast and returns its identifier.
|
|
92
|
+
*/
|
|
93
|
+
notify: (options: ToastOptions) => string;
|
|
94
|
+
/**
|
|
95
|
+
* Dismisses one toast by identifier.
|
|
96
|
+
*/
|
|
97
|
+
dismiss: (id: string) => void;
|
|
98
|
+
/**
|
|
99
|
+
* Dismisses every toast in the queue.
|
|
100
|
+
*/
|
|
101
|
+
dismissAll: () => void;
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=toast.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toast.types.d.ts","sourceRoot":"","sources":["../../../src/components/toast/toast.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE9E;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,KAAK,EAAE,SAAS,CAAC;IACjB;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;;OAIG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC/C;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;;GAIG;AACH,MAAM,WAAW,UACf,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,EAAE,WAAW;IACzE;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,MAAM,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,MAAM,CAAC;IAC1C;;OAEG;IACH,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B;;OAEG;IACH,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toast.types.js","sourceRoot":"","sources":["../../../src/components/toast/toast.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { HTMLAttributes, ReactNode } from \"react\";\n\n/**\n * Defines the semantic treatment and live-region priority of a toast.\n *\n * @public\n */\nexport type ToastTone = \"neutral\" | \"success\" | \"warning\" | \"danger\" | \"info\";\n\n/**\n * Configures a notification submitted to the toast provider.\n *\n * @public\n */\nexport interface ToastOptions {\n /**\n * Supplies a stable identifier for replacing or dismissing the toast.\n */\n id?: string;\n /**\n * Supplies the required notification title.\n */\n title: ReactNode;\n /**\n * Supplies optional notification detail content.\n */\n message?: ReactNode;\n /**\n * Displays an optional notification action.\n */\n action?: ReactNode;\n /**\n * Selects the semantic notification treatment.\n *\n * @defaultValue `\"neutral\"`\n */\n tone?: ToastTone;\n /**\n * Sets the auto-dismiss delay in milliseconds, or disables it with zero.\n */\n duration?: number;\n /**\n * Overrides the localized dismissal label.\n */\n dismissLabel?: string;\n}\n\n/**\n * Represents a toast with its required provider-assigned identifier.\n *\n * @public\n */\nexport interface ToastRecord extends ToastOptions {\n /**\n * Identifies the toast within the provider queue.\n */\n id: string;\n}\n\n/**\n * Configures a rendered toast notification.\n *\n * @public\n */\nexport interface ToastProps\n extends Omit<HTMLAttributes<HTMLDivElement>, \"id\" | \"title\">, ToastRecord {\n /**\n * Receives a request to dismiss the identified toast.\n */\n onDismiss?: (id: string) => void;\n}\n\n/**\n * Configures the application toast queue provider.\n *\n * @public\n */\nexport interface ToastProviderProps {\n /**\n * Supplies the application subtree that can submit notifications.\n */\n children: ReactNode;\n /**\n * Sets the fallback auto-dismiss delay in milliseconds.\n *\n * @defaultValue `5000`\n */\n defaultDuration?: number;\n}\n\n/**\n * Exposes imperative operations for the nearest toast queue.\n *\n * @public\n */\nexport interface ToastContextValue {\n /**\n * Adds or replaces a toast and returns its identifier.\n */\n notify: (options: ToastOptions) => string;\n /**\n * Dismisses one toast by identifier.\n */\n dismiss: (id: string) => void;\n /**\n * Dismisses every toast in the queue.\n */\n dismissAll: () => void;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/toolbar/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,mBAAmB,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/toolbar/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC","sourcesContent":["export * from \"./toolbar.js\";\nexport type * from \"./toolbar.types.js\";\n"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ToolbarGroupProps, ToolbarProps, ToolbarSpacerProps } from "./toolbar.types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Renders a labeled toolbar for a related set of controls.
|
|
4
|
+
*
|
|
5
|
+
* @public
|
|
6
|
+
*/
|
|
7
|
+
export declare const Toolbar: import("react").ForwardRefExoticComponent<ToolbarProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
8
|
+
/**
|
|
9
|
+
* Groups related toolbar controls with consistent spacing.
|
|
10
|
+
*
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
13
|
+
export declare const ToolbarGroup: import("react").ForwardRefExoticComponent<ToolbarGroupProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
14
|
+
/**
|
|
15
|
+
* Consumes available toolbar space to separate control groups.
|
|
16
|
+
*
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
19
|
+
export declare const ToolbarSpacer: import("react").ForwardRefExoticComponent<ToolbarSpacerProps & import("react").RefAttributes<HTMLSpanElement>>;
|
|
20
|
+
//# sourceMappingURL=toolbar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolbar.d.ts","sourceRoot":"","sources":["../../../src/components/toolbar/toolbar.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE9F;;;;GAIG;AACH,eAAO,MAAM,OAAO,yGAelB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,YAAY,8GAavB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,aAAa,gHAYxB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
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 labeled toolbar for a related set of controls.
|
|
6
|
+
*
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export const Toolbar = forwardRef(function Toolbar({ label, orientation = "horizontal", className, ...props }, ref) {
|
|
10
|
+
return (_jsx("div", { ...props, ref: ref, role: "toolbar", "aria-label": label, "aria-orientation": orientation, "data-orientation": orientation, className: classNames("miaixz-toolbar", className) }));
|
|
11
|
+
});
|
|
12
|
+
/**
|
|
13
|
+
* Groups related toolbar controls with consistent spacing.
|
|
14
|
+
*
|
|
15
|
+
* @public
|
|
16
|
+
*/
|
|
17
|
+
export const ToolbarGroup = forwardRef(function ToolbarGroup({ label, className, ...props }, ref) {
|
|
18
|
+
return (_jsx("div", { ...props, ref: ref, role: "group", "aria-label": label, className: classNames("miaixz-toolbar-group", className) }));
|
|
19
|
+
});
|
|
20
|
+
/**
|
|
21
|
+
* Consumes available toolbar space to separate control groups.
|
|
22
|
+
*
|
|
23
|
+
* @public
|
|
24
|
+
*/
|
|
25
|
+
export const ToolbarSpacer = forwardRef(function ToolbarSpacer({ className, "aria-hidden": ariaHidden = true, ...props }, ref) {
|
|
26
|
+
return (_jsx("span", { ...props, ref: ref, "aria-hidden": ariaHidden, className: classNames("miaixz-toolbar-spacer", className) }));
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=toolbar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolbar.js","sourceRoot":"","sources":["../../../src/components/toolbar/toolbar.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,KAAK,EAAE,WAAW,GAAG,YAAY,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAC1D,GAAG;IAEH,OAAO,CACL,iBACM,KAAK,EACT,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,SAAS,gBACF,KAAK,sBACC,WAAW,sBACX,WAAW,EAC7B,SAAS,EAAE,UAAU,CAAC,gBAAgB,EAAE,SAAS,CAAC,GAClD,CACH,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CAAoC,SAAS,YAAY,CAC7F,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAC9B,GAAG;IAEH,OAAO,CACL,iBACM,KAAK,EACT,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,OAAO,gBACA,KAAK,EACjB,SAAS,EAAE,UAAU,CAAC,sBAAsB,EAAE,SAAS,CAAC,GACxD,CACH,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAsC,SAAS,aAAa,CACjG,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,KAAK,EAAE,EACzD,GAAG;IAEH,OAAO,CACL,kBACM,KAAK,EACT,GAAG,EAAE,GAAG,iBACK,UAAU,EACvB,SAAS,EAAE,UAAU,CAAC,uBAAuB,EAAE,SAAS,CAAC,GACzD,CACH,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import { forwardRef } from \"react\";\n\nimport { classNames } from \"../../internal/class-names.js\";\nimport type { ToolbarGroupProps, ToolbarProps, ToolbarSpacerProps } from \"./toolbar.types.js\";\n\n/**\n * Renders a labeled toolbar for a related set of controls.\n *\n * @public\n */\nexport const Toolbar = forwardRef<HTMLDivElement, ToolbarProps>(function Toolbar(\n { label, orientation = \"horizontal\", className, ...props },\n ref,\n) {\n return (\n <div\n {...props}\n ref={ref}\n role=\"toolbar\"\n aria-label={label}\n aria-orientation={orientation}\n data-orientation={orientation}\n className={classNames(\"miaixz-toolbar\", className)}\n />\n );\n});\n\n/**\n * Groups related toolbar controls with consistent spacing.\n *\n * @public\n */\nexport const ToolbarGroup = forwardRef<HTMLDivElement, ToolbarGroupProps>(function ToolbarGroup(\n { label, className, ...props },\n ref,\n) {\n return (\n <div\n {...props}\n ref={ref}\n role=\"group\"\n aria-label={label}\n className={classNames(\"miaixz-toolbar-group\", className)}\n />\n );\n});\n\n/**\n * Consumes available toolbar space to separate control groups.\n *\n * @public\n */\nexport const ToolbarSpacer = forwardRef<HTMLSpanElement, ToolbarSpacerProps>(function ToolbarSpacer(\n { className, \"aria-hidden\": ariaHidden = true, ...props },\n ref,\n) {\n return (\n <span\n {...props}\n ref={ref}\n aria-hidden={ariaHidden}\n className={classNames(\"miaixz-toolbar-spacer\", className)}\n />\n );\n});\n"]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { HTMLAttributes } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Configures an accessible group of related controls.
|
|
4
|
+
*
|
|
5
|
+
* @public
|
|
6
|
+
*/
|
|
7
|
+
export interface ToolbarProps extends HTMLAttributes<HTMLDivElement> {
|
|
8
|
+
/**
|
|
9
|
+
* Provides the required accessible toolbar label.
|
|
10
|
+
*/
|
|
11
|
+
label: string;
|
|
12
|
+
/**
|
|
13
|
+
* Selects the control flow direction and keyboard metadata.
|
|
14
|
+
*
|
|
15
|
+
* @defaultValue `"horizontal"`
|
|
16
|
+
*/
|
|
17
|
+
orientation?: "horizontal" | "vertical";
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Configures a labeled subgroup within a toolbar.
|
|
21
|
+
*
|
|
22
|
+
* @public
|
|
23
|
+
*/
|
|
24
|
+
export interface ToolbarGroupProps extends HTMLAttributes<HTMLDivElement> {
|
|
25
|
+
/**
|
|
26
|
+
* Provides an accessible group label when needed.
|
|
27
|
+
*/
|
|
28
|
+
label?: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Configures a flexible spacer between toolbar groups.
|
|
32
|
+
*
|
|
33
|
+
* @public
|
|
34
|
+
*/
|
|
35
|
+
export interface ToolbarSpacerProps extends HTMLAttributes<HTMLSpanElement> {
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=toolbar.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolbar.types.d.ts","sourceRoot":"","sources":["../../../src/components/toolbar/toolbar.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C;;;;GAIG;AACH,MAAM,WAAW,YAAa,SAAQ,cAAc,CAAC,cAAc,CAAC;IAClE;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;CACzC;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAkB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACvE;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAmB,SAAQ,cAAc,CAAC,eAAe,CAAC;CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolbar.types.js","sourceRoot":"","sources":["../../../src/components/toolbar/toolbar.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { HTMLAttributes } from \"react\";\n\n/**\n * Configures an accessible group of related controls.\n *\n * @public\n */\nexport interface ToolbarProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Provides the required accessible toolbar label.\n */\n label: string;\n /**\n * Selects the control flow direction and keyboard metadata.\n *\n * @defaultValue `\"horizontal\"`\n */\n orientation?: \"horizontal\" | \"vertical\";\n}\n\n/**\n * Configures a labeled subgroup within a toolbar.\n *\n * @public\n */\nexport interface ToolbarGroupProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Provides an accessible group label when needed.\n */\n label?: string;\n}\n\n/**\n * Configures a flexible spacer between toolbar groups.\n *\n * @public\n */\nexport interface ToolbarSpacerProps extends HTMLAttributes<HTMLSpanElement> {}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/tooltip/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,mBAAmB,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/tooltip/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC","sourcesContent":["export * from \"./tooltip.js\";\nexport type * from \"./tooltip.types.js\";\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { TooltipProps } from "./tooltip.types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Associates concise contextual help with an interactive or informational child.
|
|
4
|
+
*
|
|
5
|
+
* @public
|
|
6
|
+
*/
|
|
7
|
+
export declare const Tooltip: import("react").ForwardRefExoticComponent<TooltipProps & import("react").RefAttributes<HTMLSpanElement>>;
|
|
8
|
+
//# sourceMappingURL=tooltip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../src/components/tooltip/tooltip.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAOvD;;;;GAIG;AACH,eAAO,MAAM,OAAO,0GA0GlB,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cloneElement, forwardRef, useCallback, useEffect, useId, useRef, useState } from "react";
|
|
3
|
+
import { createPortal } from "react-dom";
|
|
4
|
+
import { classNames } from "../../internal/class-names.js";
|
|
5
|
+
import { useMiaixzDismissibleLayer, useMiaixzFloatingPosition, useMiaixzManualPopover, useMiaixzPortalTarget, } from "../../internal/overlay/index.js";
|
|
6
|
+
import { useMergedRef } from "../../internal/use-merged-ref.js";
|
|
7
|
+
/**
|
|
8
|
+
* Freezes the WAI-ARIA Tooltip show delay in milliseconds.
|
|
9
|
+
*/
|
|
10
|
+
const miaixzTooltipShowDelay = 300;
|
|
11
|
+
/**
|
|
12
|
+
* Associates concise contextual help with an interactive or informational child.
|
|
13
|
+
*
|
|
14
|
+
* @public
|
|
15
|
+
*/
|
|
16
|
+
export const Tooltip = forwardRef(function Tooltip({ content, children, placement = "top", className, onPointerEnter, onPointerLeave, onFocus, onBlur, ...props }, forwardedRef) {
|
|
17
|
+
const tooltipId = useId();
|
|
18
|
+
const describedBy = [children.props["aria-describedby"], tooltipId].filter(Boolean).join(" ");
|
|
19
|
+
const wrapperRef = useRef(null);
|
|
20
|
+
const [wrapperElement, setWrapperElement] = useState(null);
|
|
21
|
+
const contentRef = useRef(null);
|
|
22
|
+
const captureWrapper = useCallback((element) => {
|
|
23
|
+
wrapperRef.current = element;
|
|
24
|
+
setWrapperElement(element);
|
|
25
|
+
}, []);
|
|
26
|
+
const ref = useMergedRef(forwardedRef, captureWrapper);
|
|
27
|
+
const timerRef = useRef(undefined);
|
|
28
|
+
const hoveredRef = useRef(false);
|
|
29
|
+
const focusedRef = useRef(false);
|
|
30
|
+
const [visible, setVisible] = useState(false);
|
|
31
|
+
const portalTarget = useMiaixzPortalTarget(wrapperElement);
|
|
32
|
+
const clearTimer = () => {
|
|
33
|
+
if (timerRef.current === undefined)
|
|
34
|
+
return;
|
|
35
|
+
window.clearTimeout(timerRef.current);
|
|
36
|
+
timerRef.current = undefined;
|
|
37
|
+
};
|
|
38
|
+
const scheduleShow = () => {
|
|
39
|
+
clearTimer();
|
|
40
|
+
timerRef.current = window.setTimeout(() => {
|
|
41
|
+
timerRef.current = undefined;
|
|
42
|
+
if (hoveredRef.current || focusedRef.current)
|
|
43
|
+
setVisible(true);
|
|
44
|
+
}, miaixzTooltipShowDelay);
|
|
45
|
+
};
|
|
46
|
+
const hideImmediately = () => {
|
|
47
|
+
clearTimer();
|
|
48
|
+
if (!hoveredRef.current && !focusedRef.current)
|
|
49
|
+
setVisible(false);
|
|
50
|
+
};
|
|
51
|
+
useMiaixzManualPopover(contentRef, visible, portalTarget);
|
|
52
|
+
useMiaixzFloatingPosition(wrapperRef, contentRef, visible, placement, portalTarget);
|
|
53
|
+
useMiaixzDismissibleLayer({
|
|
54
|
+
active: visible,
|
|
55
|
+
triggerRef: wrapperRef,
|
|
56
|
+
contentRef,
|
|
57
|
+
portalTarget,
|
|
58
|
+
onDismiss: () => {
|
|
59
|
+
clearTimer();
|
|
60
|
+
setVisible(false);
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
useEffect(() => clearTimer, []);
|
|
64
|
+
return (_jsxs("span", { ...props, ref: ref, "data-placement": placement, className: classNames("miaixz-tooltip", className), onPointerEnter: (event) => {
|
|
65
|
+
onPointerEnter?.(event);
|
|
66
|
+
hoveredRef.current = true;
|
|
67
|
+
scheduleShow();
|
|
68
|
+
}, onPointerLeave: (event) => {
|
|
69
|
+
onPointerLeave?.(event);
|
|
70
|
+
hoveredRef.current = false;
|
|
71
|
+
hideImmediately();
|
|
72
|
+
}, onFocus: (event) => {
|
|
73
|
+
onFocus?.(event);
|
|
74
|
+
focusedRef.current = true;
|
|
75
|
+
scheduleShow();
|
|
76
|
+
}, onBlur: (event) => {
|
|
77
|
+
onBlur?.(event);
|
|
78
|
+
if (!event.currentTarget.contains(event.relatedTarget))
|
|
79
|
+
focusedRef.current = false;
|
|
80
|
+
hideImmediately();
|
|
81
|
+
}, children: [cloneElement(children, { "aria-describedby": describedBy }), portalTarget !== null &&
|
|
82
|
+
createPortal(_jsx("span", { ref: contentRef, id: tooltipId, role: "tooltip", popover: "manual", hidden: !visible, className: "miaixz-tooltip-content", children: content }), portalTarget)] }));
|
|
83
|
+
});
|
|
84
|
+
//# sourceMappingURL=tooltip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../../src/components/tooltip/tooltip.tsx"],"names":[],"mappings":"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","sourcesContent":["import { cloneElement, forwardRef, useCallback, useEffect, useId, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport { classNames } from \"../../internal/class-names.js\";\nimport {\n useMiaixzDismissibleLayer,\n useMiaixzFloatingPosition,\n useMiaixzManualPopover,\n useMiaixzPortalTarget,\n} from \"../../internal/overlay/index.js\";\nimport { useMergedRef } from \"../../internal/use-merged-ref.js\";\nimport type { TooltipProps } from \"./tooltip.types.js\";\n\n/**\n * Freezes the WAI-ARIA Tooltip show delay in milliseconds.\n */\nconst miaixzTooltipShowDelay = 300;\n\n/**\n * Associates concise contextual help with an interactive or informational child.\n *\n * @public\n */\nexport const Tooltip = forwardRef<HTMLSpanElement, TooltipProps>(function Tooltip(\n {\n content,\n children,\n placement = \"top\",\n className,\n onPointerEnter,\n onPointerLeave,\n onFocus,\n onBlur,\n ...props\n },\n forwardedRef,\n) {\n const tooltipId = useId();\n const describedBy = [children.props[\"aria-describedby\"], tooltipId].filter(Boolean).join(\" \");\n const wrapperRef = useRef<HTMLSpanElement>(null);\n const [wrapperElement, setWrapperElement] = useState<HTMLSpanElement | null>(null);\n const contentRef = useRef<HTMLSpanElement>(null);\n const captureWrapper = useCallback((element: HTMLSpanElement | null) => {\n wrapperRef.current = element;\n setWrapperElement(element);\n }, []);\n const ref = useMergedRef(forwardedRef, captureWrapper);\n const timerRef = useRef<number | undefined>(undefined);\n const hoveredRef = useRef(false);\n const focusedRef = useRef(false);\n const [visible, setVisible] = useState(false);\n const portalTarget = useMiaixzPortalTarget(wrapperElement);\n\n const clearTimer = () => {\n if (timerRef.current === undefined) return;\n window.clearTimeout(timerRef.current);\n timerRef.current = undefined;\n };\n const scheduleShow = () => {\n clearTimer();\n timerRef.current = window.setTimeout(() => {\n timerRef.current = undefined;\n if (hoveredRef.current || focusedRef.current) setVisible(true);\n }, miaixzTooltipShowDelay);\n };\n const hideImmediately = () => {\n clearTimer();\n if (!hoveredRef.current && !focusedRef.current) setVisible(false);\n };\n\n useMiaixzManualPopover(contentRef, visible, portalTarget);\n useMiaixzFloatingPosition(wrapperRef, contentRef, visible, placement, portalTarget);\n useMiaixzDismissibleLayer({\n active: visible,\n triggerRef: wrapperRef,\n contentRef,\n portalTarget,\n onDismiss: () => {\n clearTimer();\n setVisible(false);\n },\n });\n\n useEffect(() => clearTimer, []);\n\n return (\n <span\n {...props}\n ref={ref}\n data-placement={placement}\n className={classNames(\"miaixz-tooltip\", className)}\n onPointerEnter={(event) => {\n onPointerEnter?.(event);\n hoveredRef.current = true;\n scheduleShow();\n }}\n onPointerLeave={(event) => {\n onPointerLeave?.(event);\n hoveredRef.current = false;\n hideImmediately();\n }}\n onFocus={(event) => {\n onFocus?.(event);\n focusedRef.current = true;\n scheduleShow();\n }}\n onBlur={(event) => {\n onBlur?.(event);\n if (!event.currentTarget.contains(event.relatedTarget)) focusedRef.current = false;\n hideImmediately();\n }}\n >\n {cloneElement(children, { \"aria-describedby\": describedBy })}\n {portalTarget !== null &&\n createPortal(\n <span\n ref={contentRef}\n id={tooltipId}\n role=\"tooltip\"\n popover=\"manual\"\n hidden={!visible}\n className=\"miaixz-tooltip-content\"\n >\n {content}\n </span>,\n portalTarget,\n )}\n </span>\n );\n});\n"]}
|