cornet-ui 0.1.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +95 -0
- package/components/Actions/du-button/du-button.types.ts +14 -0
- package/components/Actions/du-button/du-button.vue +149 -0
- package/components/Actions/du-dropdown/du-dropdown.types.ts +15 -0
- package/components/Actions/du-dropdown/du-dropdown.vue +75 -0
- package/components/Actions/du-fab/du-fab.types.ts +28 -0
- package/components/Actions/du-fab/du-fab.vue +270 -0
- package/components/Actions/du-modal/du-modal.types.ts +10 -0
- package/components/Actions/du-modal/du-modal.vue +123 -0
- package/components/Actions/du-swap/du-swap.types.ts +3 -0
- package/components/Actions/du-swap/du-swap.vue +68 -0
- package/components/DataDisplay/du-accordion/du-accordion-item.vue +37 -0
- package/components/DataDisplay/du-accordion/du-accordion.types.ts +15 -0
- package/components/DataDisplay/du-accordion/du-accordion.vue +73 -0
- package/components/DataDisplay/du-avatar/du-avatar.types.ts +59 -0
- package/components/DataDisplay/du-avatar/du-avatar.vue +139 -0
- package/components/DataDisplay/du-badge/du-badge.types.ts +21 -0
- package/components/DataDisplay/du-badge/du-badge.vue +81 -0
- package/components/DataDisplay/du-card/du-card.types.ts +18 -0
- package/components/DataDisplay/du-card/du-card.vue +86 -0
- package/components/DataDisplay/du-carousel/du-carousel-item.vue +11 -0
- package/components/DataDisplay/du-carousel/du-carousel.types.ts +15 -0
- package/components/DataDisplay/du-carousel/du-carousel.vue +46 -0
- package/components/DataDisplay/du-chat/du-chat-item.vue +56 -0
- package/components/DataDisplay/du-chat/du-chat.types.ts +31 -0
- package/components/DataDisplay/du-chat/du-chat.vue +71 -0
- package/components/DataDisplay/du-collapse/du-collapse.types.ts +15 -0
- package/components/DataDisplay/du-collapse/du-collapse.vue +59 -0
- package/components/DataDisplay/du-countdown/du-countdown-group.vue +88 -0
- package/components/DataDisplay/du-countdown/du-countdown.types.ts +15 -0
- package/components/DataDisplay/du-countdown/du-countdown.vue +180 -0
- package/components/DataDisplay/du-diff/du-diff.types.ts +9 -0
- package/components/DataDisplay/du-diff/du-diff.vue +44 -0
- package/components/DataDisplay/du-kbd/du-kbd.types.ts +9 -0
- package/components/DataDisplay/du-kbd/du-kbd.vue +21 -0
- package/components/DataDisplay/du-list/du-list-row.vue +12 -0
- package/components/DataDisplay/du-list/du-list.types.ts +3 -0
- package/components/DataDisplay/du-list/du-list.vue +11 -0
- package/components/DataDisplay/du-stat/du-stat.types.ts +12 -0
- package/components/DataDisplay/du-stat/du-stat.vue +28 -0
- package/components/DataDisplay/du-stats/du-stats.types.ts +3 -0
- package/components/DataDisplay/du-stats/du-stats.vue +91 -0
- package/components/DataDisplay/du-status/du-status.types.ts +21 -0
- package/components/DataDisplay/du-status/du-status.vue +51 -0
- package/components/DataDisplay/du-table/du-table-item.types.ts +6 -0
- package/components/DataDisplay/du-table/du-table-item.vue +24 -0
- package/components/DataDisplay/du-table/du-table.types.ts +26 -0
- package/components/DataDisplay/du-table/du-table.vue +125 -0
- package/components/DataDisplay/du-timeline/du-timeline-item.vue +85 -0
- package/components/DataDisplay/du-timeline/du-timeline.types.ts +22 -0
- package/components/DataDisplay/du-timeline/du-timeline.vue +138 -0
- package/components/DataInput/du-checkbox/du-checkbox.types.ts +17 -0
- package/components/DataInput/du-checkbox/du-checkbox.vue +40 -0
- package/components/DataInput/du-fieldset/du-fieldset.types.ts +4 -0
- package/components/DataInput/du-fieldset/du-fieldset.vue +16 -0
- package/components/DataInput/du-file-input/du-file-input.types.ts +29 -0
- package/components/DataInput/du-file-input/du-file-input.vue +31 -0
- package/components/DataInput/du-filter/du-filter.types.ts +30 -0
- package/components/DataInput/du-filter/du-filter.vue +47 -0
- package/components/DataInput/du-input-field/du-input-field.types.ts +43 -0
- package/components/DataInput/du-input-field/du-input-field.vue +47 -0
- package/components/DataInput/du-label/du-label.types.ts +3 -0
- package/components/DataInput/du-label/du-label.vue +28 -0
- package/components/DataInput/du-label-input-validator/du-label-input-validator.types.ts +7 -0
- package/components/DataInput/du-label-input-validator/du-label-input-validator.vue +51 -0
- package/components/DataInput/du-radio/du-radio.types.ts +15 -0
- package/components/DataInput/du-radio/du-radio.vue +27 -0
- package/components/DataInput/du-range/du-range.types.ts +18 -0
- package/components/DataInput/du-range/du-range.vue +60 -0
- package/components/DataInput/du-rating/du-rating-item.vue +65 -0
- package/components/DataInput/du-rating/du-rating.types.ts +46 -0
- package/components/DataInput/du-rating/du-rating.vue +127 -0
- package/components/DataInput/du-search/du-search.types.ts +44 -0
- package/components/DataInput/du-search/du-search.vue +425 -0
- package/components/DataInput/du-select/du-select.types.ts +31 -0
- package/components/DataInput/du-select/du-select.vue +384 -0
- package/components/DataInput/du-text-area/du-text-area.types.ts +11 -0
- package/components/DataInput/du-text-area/du-text-area.vue +41 -0
- package/components/Feedback/du-alert/du-alert.types.ts +16 -0
- package/components/Feedback/du-alert/du-alert.vue +113 -0
- package/components/Feedback/du-loading/du-loading.types.ts +11 -0
- package/components/Feedback/du-loading/du-loading.vue +33 -0
- package/components/Feedback/du-progress/du-progress.types.ts +8 -0
- package/components/Feedback/du-progress/du-progress.vue +23 -0
- package/components/Feedback/du-radial-progress/du-radial-progress.types.ts +9 -0
- package/components/Feedback/du-radial-progress/du-radial-progress.vue +64 -0
- package/components/Feedback/du-skeleton/du-skeleton.types.ts +3 -0
- package/components/Feedback/du-skeleton/du-skeleton.vue +11 -0
- package/components/Feedback/du-toast/du-toast.types.ts +11 -0
- package/components/Feedback/du-toast/du-toast.vue +54 -0
- package/components/Feedback/du-tooltip/du-tooltip.types.ts +12 -0
- package/components/Feedback/du-tooltip/du-tooltip.vue +55 -0
- package/components/Layout/du-drawer/du-drawer.types.ts +27 -0
- package/components/Layout/du-drawer/du-drawer.vue +224 -0
- package/components/Layout/du-join/du-join.types.ts +7 -0
- package/components/Layout/du-join/du-join.vue +31 -0
- package/components/Navigation/du-breadcrumbs/du-breadcrumbs.types.ts +13 -0
- package/components/Navigation/du-breadcrumbs/du-breadcrumbs.vue +79 -0
- package/components/Navigation/du-button-link/du-button-link.types.ts +17 -0
- package/components/Navigation/du-button-link/du-button-link.vue +77 -0
- package/components/Navigation/du-dock/du-dock.types.ts +19 -0
- package/components/Navigation/du-dock/du-dock.vue +73 -0
- package/components/Navigation/du-link/du-link.types.ts +7 -0
- package/components/Navigation/du-link/du-link.vue +25 -0
- package/components/Navigation/du-menu/du-menu-item.vue +160 -0
- package/components/Navigation/du-menu/du-menu.types.ts +33 -0
- package/components/Navigation/du-menu/du-menu.vue +87 -0
- package/components/Navigation/du-navbar/du-navbar.types.ts +3 -0
- package/components/Navigation/du-navbar/du-navbar.vue +21 -0
- package/components/Navigation/du-pagination/du-pagination.types.ts +30 -0
- package/components/Navigation/du-pagination/du-pagination.vue +186 -0
- package/components/Navigation/du-step-item/du-step-item.types.ts +9 -0
- package/components/Navigation/du-step-item/du-step-item.vue +46 -0
- package/components/Navigation/du-steps/du-steps.types.ts +20 -0
- package/components/Navigation/du-steps/du-steps.vue +85 -0
- package/components/Navigation/du-tabs/du-tabs.types.ts +25 -0
- package/components/Navigation/du-tabs/du-tabs.vue +96 -0
- package/composables/useSizeProps.ts +26 -0
- package/composables/useVariantProps.ts +18 -0
- package/dist/_virtual/_plugin-vue_export-helper.js +8 -0
- package/dist/components/Actions/du-button/du-button.js +5 -0
- package/dist/components/Actions/du-button/du-button.types.d.ts +4 -0
- package/dist/components/Actions/du-button/du-button.vue.d.ts +58 -0
- package/dist/components/Actions/du-button/du-button.vue_vue_type_script_setup_true_lang.js +98 -0
- package/dist/components/Actions/du-dropdown/du-dropdown.js +5 -0
- package/dist/components/Actions/du-dropdown/du-dropdown.types.d.ts +4 -0
- package/dist/components/Actions/du-dropdown/du-dropdown.vue.d.ts +33 -0
- package/dist/components/Actions/du-dropdown/du-dropdown.vue_vue_type_script_setup_true_lang.js +53 -0
- package/dist/components/Actions/du-fab/du-fab.js +5 -0
- package/dist/components/Actions/du-fab/du-fab.types.d.ts +24 -0
- package/dist/components/Actions/du-fab/du-fab.vue.d.ts +87 -0
- package/dist/components/Actions/du-fab/du-fab.vue_vue_type_script_setup_true_lang.js +204 -0
- package/dist/components/Actions/du-modal/du-modal.js +5 -0
- package/dist/components/Actions/du-modal/du-modal.types.d.ts +2 -0
- package/dist/components/Actions/du-modal/du-modal.vue.d.ts +48 -0
- package/dist/components/Actions/du-modal/du-modal.vue_vue_type_script_setup_true_lang.js +92 -0
- package/dist/components/Actions/du-swap/du-swap.js +5 -0
- package/dist/components/Actions/du-swap/du-swap.types.d.ts +2 -0
- package/dist/components/Actions/du-swap/du-swap.vue.d.ts +36 -0
- package/dist/components/Actions/du-swap/du-swap.vue_vue_type_script_setup_true_lang.js +61 -0
- package/dist/components/DataDisplay/du-accordion/du-accordion-item.js +5 -0
- package/dist/components/DataDisplay/du-accordion/du-accordion-item.vue.d.ts +24 -0
- package/dist/components/DataDisplay/du-accordion/du-accordion-item.vue_vue_type_script_setup_true_lang.js +31 -0
- package/dist/components/DataDisplay/du-accordion/du-accordion.js +5 -0
- package/dist/components/DataDisplay/du-accordion/du-accordion.types.d.ts +8 -0
- package/dist/components/DataDisplay/du-accordion/du-accordion.vue.d.ts +45 -0
- package/dist/components/DataDisplay/du-accordion/du-accordion.vue_vue_type_script_setup_true_lang.js +45 -0
- package/dist/components/DataDisplay/du-avatar/du-avatar.js +7 -0
- package/dist/components/DataDisplay/du-avatar/du-avatar.types.d.ts +12 -0
- package/dist/components/DataDisplay/du-avatar/du-avatar.vue.d.ts +38 -0
- package/dist/components/DataDisplay/du-avatar/du-avatar.vue_vue_type_script_setup_true_lang.js +57 -0
- package/dist/components/DataDisplay/du-avatar/du-avatar.vue_vue_type_style_index_0_scoped_fdc61ebe_lang.css +1 -0
- package/dist/components/DataDisplay/du-badge/du-badge.js +5 -0
- package/dist/components/DataDisplay/du-badge/du-badge.types.d.ts +4 -0
- package/dist/components/DataDisplay/du-badge/du-badge.vue.d.ts +32 -0
- package/dist/components/DataDisplay/du-badge/du-badge.vue_vue_type_script_setup_true_lang.js +54 -0
- package/dist/components/DataDisplay/du-card/du-card.js +5 -0
- package/dist/components/DataDisplay/du-card/du-card.types.d.ts +4 -0
- package/dist/components/DataDisplay/du-card/du-card.vue.d.ts +43 -0
- package/dist/components/DataDisplay/du-card/du-card.vue_vue_type_script_setup_true_lang.js +61 -0
- package/dist/components/DataDisplay/du-carousel/du-carousel-item.js +5 -0
- package/dist/components/DataDisplay/du-carousel/du-carousel-item.vue.d.ts +16 -0
- package/dist/components/DataDisplay/du-carousel/du-carousel-item.vue_vue_type_script_setup_true_lang.js +14 -0
- package/dist/components/DataDisplay/du-carousel/du-carousel.js +5 -0
- package/dist/components/DataDisplay/du-carousel/du-carousel.types.d.ts +9 -0
- package/dist/components/DataDisplay/du-carousel/du-carousel.vue.d.ts +27 -0
- package/dist/components/DataDisplay/du-carousel/du-carousel.vue_vue_type_script_setup_true_lang.js +46 -0
- package/dist/components/DataDisplay/du-chat/du-chat-item.js +5 -0
- package/dist/components/DataDisplay/du-chat/du-chat-item.vue.d.ts +32 -0
- package/dist/components/DataDisplay/du-chat/du-chat-item.vue_vue_type_script_setup_true_lang.js +36 -0
- package/dist/components/DataDisplay/du-chat/du-chat.js +5 -0
- package/dist/components/DataDisplay/du-chat/du-chat.types.d.ts +18 -0
- package/dist/components/DataDisplay/du-chat/du-chat.vue.d.ts +38 -0
- package/dist/components/DataDisplay/du-chat/du-chat.vue_vue_type_script_setup_true_lang.js +55 -0
- package/dist/components/DataDisplay/du-collapse/du-collapse.js +5 -0
- package/dist/components/DataDisplay/du-collapse/du-collapse.types.d.ts +8 -0
- package/dist/components/DataDisplay/du-collapse/du-collapse.vue.d.ts +33 -0
- package/dist/components/DataDisplay/du-collapse/du-collapse.vue_vue_type_script_setup_true_lang.js +36 -0
- package/dist/components/DataDisplay/du-countdown/du-countdown-group.js +5 -0
- package/dist/components/DataDisplay/du-countdown/du-countdown-group.vue.d.ts +23 -0
- package/dist/components/DataDisplay/du-countdown/du-countdown-group.vue_vue_type_script_setup_true_lang.js +83 -0
- package/dist/components/DataDisplay/du-countdown/du-countdown.js +5 -0
- package/dist/components/DataDisplay/du-countdown/du-countdown.types.d.ts +8 -0
- package/dist/components/DataDisplay/du-countdown/du-countdown.vue.d.ts +27 -0
- package/dist/components/DataDisplay/du-countdown/du-countdown.vue_vue_type_script_setup_true_lang.js +67 -0
- package/dist/components/DataDisplay/du-diff/du-diff.js +5 -0
- package/dist/components/DataDisplay/du-diff/du-diff.types.d.ts +2 -0
- package/dist/components/DataDisplay/du-diff/du-diff.vue.d.ts +25 -0
- package/dist/components/DataDisplay/du-diff/du-diff.vue_vue_type_script_setup_true_lang.js +33 -0
- package/dist/components/DataDisplay/du-kbd/du-kbd.js +5 -0
- package/dist/components/DataDisplay/du-kbd/du-kbd.types.d.ts +2 -0
- package/dist/components/DataDisplay/du-kbd/du-kbd.vue.d.ts +19 -0
- package/dist/components/DataDisplay/du-kbd/du-kbd.vue_vue_type_script_setup_true_lang.js +13 -0
- package/dist/components/DataDisplay/du-list/du-list-row.js +5 -0
- package/dist/components/DataDisplay/du-list/du-list-row.vue.d.ts +17 -0
- package/dist/components/DataDisplay/du-list/du-list-row.vue_vue_type_script_setup_true_lang.js +22 -0
- package/dist/components/DataDisplay/du-list/du-list.js +5 -0
- package/dist/components/DataDisplay/du-list/du-list.types.d.ts +3 -0
- package/dist/components/DataDisplay/du-list/du-list.vue.d.ts +14 -0
- package/dist/components/DataDisplay/du-list/du-list.vue_vue_type_script_setup_true_lang.js +12 -0
- package/dist/components/DataDisplay/du-stat/du-stat.js +5 -0
- package/dist/components/DataDisplay/du-stat/du-stat.types.d.ts +12 -0
- package/dist/components/DataDisplay/du-stat/du-stat.vue.d.ts +27 -0
- package/dist/components/DataDisplay/du-stat/du-stat.vue_vue_type_script_setup_true_lang.js +37 -0
- package/dist/components/DataDisplay/du-stats/du-stats.js +7 -0
- package/dist/components/DataDisplay/du-stats/du-stats.types.d.ts +2 -0
- package/dist/components/DataDisplay/du-stats/du-stats.vue.d.ts +40 -0
- package/dist/components/DataDisplay/du-stats/du-stats.vue_vue_type_script_setup_true_lang.js +67 -0
- package/dist/components/DataDisplay/du-stats/du-stats.vue_vue_type_style_index_0_scoped_db955aa9_lang.css +1 -0
- package/dist/components/DataDisplay/du-status/du-status.js +5 -0
- package/dist/components/DataDisplay/du-status/du-status.types.d.ts +4 -0
- package/dist/components/DataDisplay/du-status/du-status.vue.d.ts +16 -0
- package/dist/components/DataDisplay/du-status/du-status.vue_vue_type_script_setup_true_lang.js +54 -0
- package/dist/components/DataDisplay/du-table/du-table-item.js +5 -0
- package/dist/components/DataDisplay/du-table/du-table-item.types.d.ts +6 -0
- package/dist/components/DataDisplay/du-table/du-table-item.vue.d.ts +19 -0
- package/dist/components/DataDisplay/du-table/du-table-item.vue_vue_type_script_setup_true_lang.js +30 -0
- package/dist/components/DataDisplay/du-table/du-table.js +5 -0
- package/dist/components/DataDisplay/du-table/du-table.types.d.ts +23 -0
- package/dist/components/DataDisplay/du-table/du-table.vue.d.ts +42 -0
- package/dist/components/DataDisplay/du-table/du-table.vue_vue_type_script_setup_true_lang.js +75 -0
- package/dist/components/DataDisplay/du-timeline/du-timeline-item.js +5 -0
- package/dist/components/DataDisplay/du-timeline/du-timeline-item.vue.d.ts +34 -0
- package/dist/components/DataDisplay/du-timeline/du-timeline-item.vue_vue_type_script_setup_true_lang.js +51 -0
- package/dist/components/DataDisplay/du-timeline/du-timeline.js +5 -0
- package/dist/components/DataDisplay/du-timeline/du-timeline.types.d.ts +12 -0
- package/dist/components/DataDisplay/du-timeline/du-timeline.vue.d.ts +61 -0
- package/dist/components/DataDisplay/du-timeline/du-timeline.vue_vue_type_script_setup_true_lang.js +75 -0
- package/dist/components/DataInput/du-checkbox/du-checkbox.js +5 -0
- package/dist/components/DataInput/du-checkbox/du-checkbox.types.d.ts +14 -0
- package/dist/components/DataInput/du-checkbox/du-checkbox.vue.d.ts +19 -0
- package/dist/components/DataInput/du-checkbox/du-checkbox.vue_vue_type_script_setup_true_lang.js +47 -0
- package/dist/components/DataInput/du-fieldset/du-fieldset.js +5 -0
- package/dist/components/DataInput/du-fieldset/du-fieldset.types.d.ts +4 -0
- package/dist/components/DataInput/du-fieldset/du-fieldset.vue.d.ts +14 -0
- package/dist/components/DataInput/du-fieldset/du-fieldset.vue_vue_type_script_setup_true_lang.js +21 -0
- package/dist/components/DataInput/du-file-input/du-file-input.js +5 -0
- package/dist/components/DataInput/du-file-input/du-file-input.types.d.ts +10 -0
- package/dist/components/DataInput/du-file-input/du-file-input.vue.d.ts +9 -0
- package/dist/components/DataInput/du-file-input/du-file-input.vue_vue_type_script_setup_true_lang.js +34 -0
- package/dist/components/DataInput/du-filter/du-filter.js +5 -0
- package/dist/components/DataInput/du-filter/du-filter.types.d.ts +27 -0
- package/dist/components/DataInput/du-filter/du-filter.vue.d.ts +17 -0
- package/dist/components/DataInput/du-filter/du-filter.vue_vue_type_script_setup_true_lang.js +28 -0
- package/dist/components/DataInput/du-input-field/du-input-field.js +5 -0
- package/dist/components/DataInput/du-input-field/du-input-field.types.d.ts +26 -0
- package/dist/components/DataInput/du-input-field/du-input-field.vue.d.ts +21 -0
- package/dist/components/DataInput/du-input-field/du-input-field.vue_vue_type_script_setup_true_lang.js +76 -0
- package/dist/components/DataInput/du-label/du-label.js +5 -0
- package/dist/components/DataInput/du-label/du-label.types.d.ts +3 -0
- package/dist/components/DataInput/du-label/du-label.vue.d.ts +14 -0
- package/dist/components/DataInput/du-label/du-label.vue_vue_type_script_setup_true_lang.js +19 -0
- package/dist/components/DataInput/du-label-input-validator/du-label-input-validator.js +5 -0
- package/dist/components/DataInput/du-label-input-validator/du-label-input-validator.types.d.ts +5 -0
- package/dist/components/DataInput/du-label-input-validator/du-label-input-validator.vue.d.ts +37 -0
- package/dist/components/DataInput/du-label-input-validator/du-label-input-validator.vue_vue_type_script_setup_true_lang.js +90 -0
- package/dist/components/DataInput/du-radio/du-radio.js +5 -0
- package/dist/components/DataInput/du-radio/du-radio.types.d.ts +12 -0
- package/dist/components/DataInput/du-radio/du-radio.vue.d.ts +9 -0
- package/dist/components/DataInput/du-radio/du-radio.vue_vue_type_script_setup_true_lang.js +34 -0
- package/dist/components/DataInput/du-range/du-range.js +5 -0
- package/dist/components/DataInput/du-range/du-range.types.d.ts +15 -0
- package/dist/components/DataInput/du-range/du-range.vue.d.ts +20 -0
- package/dist/components/DataInput/du-range/du-range.vue_vue_type_script_setup_true_lang.js +52 -0
- package/dist/components/DataInput/du-rating/du-rating-item.js +5 -0
- package/dist/components/DataInput/du-rating/du-rating-item.vue.d.ts +15 -0
- package/dist/components/DataInput/du-rating/du-rating-item.vue_vue_type_script_setup_true_lang.js +57 -0
- package/dist/components/DataInput/du-rating/du-rating.js +5 -0
- package/dist/components/DataInput/du-rating/du-rating.types.d.ts +38 -0
- package/dist/components/DataInput/du-rating/du-rating.vue.d.ts +34 -0
- package/dist/components/DataInput/du-rating/du-rating.vue_vue_type_script_setup_true_lang.js +100 -0
- package/dist/components/DataInput/du-search/du-search.js +5 -0
- package/dist/components/DataInput/du-search/du-search.types.d.ts +40 -0
- package/dist/components/DataInput/du-search/du-search.vue.d.ts +52 -0
- package/dist/components/DataInput/du-search/du-search.vue_vue_type_script_setup_true_lang.js +270 -0
- package/dist/components/DataInput/du-select/du-select.js +7 -0
- package/dist/components/DataInput/du-select/du-select.types.d.ts +28 -0
- package/dist/components/DataInput/du-select/du-select.vue.d.ts +60 -0
- package/dist/components/DataInput/du-select/du-select.vue_vue_type_script_setup_true_lang.js +321 -0
- package/dist/components/DataInput/du-select/du-select.vue_vue_type_style_index_0_scoped_2bcf0acd_lang.css +1 -0
- package/dist/components/DataInput/du-text-area/du-text-area.js +5 -0
- package/dist/components/DataInput/du-text-area/du-text-area.types.d.ts +10 -0
- package/dist/components/DataInput/du-text-area/du-text-area.vue.d.ts +15 -0
- package/dist/components/DataInput/du-text-area/du-text-area.vue_vue_type_script_setup_true_lang.js +46 -0
- package/dist/components/Feedback/du-alert/du-alert.js +5 -0
- package/dist/components/Feedback/du-alert/du-alert.types.d.ts +14 -0
- package/dist/components/Feedback/du-alert/du-alert.vue.d.ts +25 -0
- package/dist/components/Feedback/du-alert/du-alert.vue_vue_type_script_setup_true_lang.js +94 -0
- package/dist/components/Feedback/du-loading/du-loading.js +5 -0
- package/dist/components/Feedback/du-loading/du-loading.types.d.ts +9 -0
- package/dist/components/Feedback/du-loading/du-loading.vue.d.ts +8 -0
- package/dist/components/Feedback/du-loading/du-loading.vue_vue_type_script_setup_true_lang.js +30 -0
- package/dist/components/Feedback/du-progress/du-progress.js +5 -0
- package/dist/components/Feedback/du-progress/du-progress.types.d.ts +7 -0
- package/dist/components/Feedback/du-progress/du-progress.vue.d.ts +9 -0
- package/dist/components/Feedback/du-progress/du-progress.vue_vue_type_script_setup_true_lang.js +29 -0
- package/dist/components/Feedback/du-radial-progress/du-radial-progress.js +7 -0
- package/dist/components/Feedback/du-radial-progress/du-radial-progress.types.d.ts +8 -0
- package/dist/components/Feedback/du-radial-progress/du-radial-progress.vue.d.ts +19 -0
- package/dist/components/Feedback/du-radial-progress/du-radial-progress.vue_vue_type_script_setup_true_lang.js +31 -0
- package/dist/components/Feedback/du-radial-progress/du-radial-progress.vue_vue_type_style_index_0_scoped_4d489040_lang.css +1 -0
- package/dist/components/Feedback/du-skeleton/du-skeleton.js +5 -0
- package/dist/components/Feedback/du-skeleton/du-skeleton.types.d.ts +3 -0
- package/dist/components/Feedback/du-skeleton/du-skeleton.vue.d.ts +14 -0
- package/dist/components/Feedback/du-skeleton/du-skeleton.vue_vue_type_script_setup_true_lang.js +12 -0
- package/dist/components/Feedback/du-toast/du-toast.js +5 -0
- package/dist/components/Feedback/du-toast/du-toast.types.d.ts +9 -0
- package/dist/components/Feedback/du-toast/du-toast.vue.d.ts +20 -0
- package/dist/components/Feedback/du-toast/du-toast.vue_vue_type_script_setup_true_lang.js +45 -0
- package/dist/components/Feedback/du-tooltip/du-tooltip.js +5 -0
- package/dist/components/Feedback/du-tooltip/du-tooltip.types.d.ts +10 -0
- package/dist/components/Feedback/du-tooltip/du-tooltip.vue.d.ts +22 -0
- package/dist/components/Feedback/du-tooltip/du-tooltip.vue_vue_type_script_setup_true_lang.js +44 -0
- package/dist/components/Layout/du-drawer/du-drawer.js +5 -0
- package/dist/components/Layout/du-drawer/du-drawer.types.d.ts +23 -0
- package/dist/components/Layout/du-drawer/du-drawer.vue.d.ts +58 -0
- package/dist/components/Layout/du-drawer/du-drawer.vue_vue_type_script_setup_true_lang.js +129 -0
- package/dist/components/Layout/du-join/du-join.js +5 -0
- package/dist/components/Layout/du-join/du-join.types.d.ts +6 -0
- package/dist/components/Layout/du-join/du-join.vue.d.ts +17 -0
- package/dist/components/Layout/du-join/du-join.vue_vue_type_script_setup_true_lang.js +24 -0
- package/dist/components/Navigation/du-breadcrumbs/du-breadcrumbs.js +7 -0
- package/dist/components/Navigation/du-breadcrumbs/du-breadcrumbs.types.d.ts +11 -0
- package/dist/components/Navigation/du-breadcrumbs/du-breadcrumbs.vue.d.ts +6 -0
- package/dist/components/Navigation/du-breadcrumbs/du-breadcrumbs.vue_vue_type_script_setup_true_lang.js +42 -0
- package/dist/components/Navigation/du-breadcrumbs/du-breadcrumbs.vue_vue_type_style_index_0_scoped_9364edec_lang.css +1 -0
- package/dist/components/Navigation/du-button-link/du-button-link.js +5 -0
- package/dist/components/Navigation/du-button-link/du-button-link.types.d.ts +16 -0
- package/dist/components/Navigation/du-button-link/du-button-link.vue.d.ts +27 -0
- package/dist/components/Navigation/du-button-link/du-button-link.vue_vue_type_script_setup_true_lang.js +71 -0
- package/dist/components/Navigation/du-dock/du-dock.js +5 -0
- package/dist/components/Navigation/du-dock/du-dock.types.d.ts +16 -0
- package/dist/components/Navigation/du-dock/du-dock.vue.d.ts +59 -0
- package/dist/components/Navigation/du-dock/du-dock.vue_vue_type_script_setup_true_lang.js +56 -0
- package/dist/components/Navigation/du-link/du-link.js +5 -0
- package/dist/components/Navigation/du-link/du-link.types.d.ts +6 -0
- package/dist/components/Navigation/du-link/du-link.vue.d.ts +18 -0
- package/dist/components/Navigation/du-link/du-link.vue_vue_type_script_setup_true_lang.js +28 -0
- package/dist/components/Navigation/du-menu/du-menu-item.js +5 -0
- package/dist/components/Navigation/du-menu/du-menu-item.vue.d.ts +17 -0
- package/dist/components/Navigation/du-menu/du-menu-item.vue_vue_type_script_setup_true_lang.js +186 -0
- package/dist/components/Navigation/du-menu/du-menu.js +6 -0
- package/dist/components/Navigation/du-menu/du-menu.types.d.ts +29 -0
- package/dist/components/Navigation/du-menu/du-menu.vue.d.ts +26 -0
- package/dist/components/Navigation/du-menu/du-menu.vue_vue_type_script_setup_true_lang.js +57 -0
- package/dist/components/Navigation/du-menu/du-menu.vue_vue_type_style_index_0_lang.css +1 -0
- package/dist/components/Navigation/du-navbar/du-navbar.js +5 -0
- package/dist/components/Navigation/du-navbar/du-navbar.types.d.ts +2 -0
- package/dist/components/Navigation/du-navbar/du-navbar.vue.d.ts +20 -0
- package/dist/components/Navigation/du-navbar/du-navbar.vue_vue_type_script_setup_true_lang.js +24 -0
- package/dist/components/Navigation/du-pagination/du-pagination.js +7 -0
- package/dist/components/Navigation/du-pagination/du-pagination.types.d.ts +29 -0
- package/dist/components/Navigation/du-pagination/du-pagination.vue.d.ts +51 -0
- package/dist/components/Navigation/du-pagination/du-pagination.vue_vue_type_script_setup_true_lang.js +156 -0
- package/dist/components/Navigation/du-pagination/du-pagination.vue_vue_type_style_index_0_scoped_7407b690_lang.css +1 -0
- package/dist/components/Navigation/du-step-item/du-step-item.js +5 -0
- package/dist/components/Navigation/du-step-item/du-step-item.types.d.ts +8 -0
- package/dist/components/Navigation/du-step-item/du-step-item.vue.d.ts +24 -0
- package/dist/components/Navigation/du-step-item/du-step-item.vue_vue_type_script_setup_true_lang.js +27 -0
- package/dist/components/Navigation/du-steps/du-steps.js +5 -0
- package/dist/components/Navigation/du-steps/du-steps.types.d.ts +17 -0
- package/dist/components/Navigation/du-steps/du-steps.vue.d.ts +40 -0
- package/dist/components/Navigation/du-steps/du-steps.vue_vue_type_script_setup_true_lang.js +44 -0
- package/dist/components/Navigation/du-tabs/du-tabs.js +5 -0
- package/dist/components/Navigation/du-tabs/du-tabs.types.d.ts +22 -0
- package/dist/components/Navigation/du-tabs/du-tabs.vue.d.ts +50 -0
- package/dist/components/Navigation/du-tabs/du-tabs.vue_vue_type_script_setup_true_lang.js +76 -0
- package/dist/composables/useSizeProps.d.ts +15 -0
- package/dist/composables/useSizeProps.js +22 -0
- package/dist/composables/useVariantProps.d.ts +14 -0
- package/dist/composables/useVariantProps.js +7 -0
- package/dist/index.d.ts +66 -0
- package/dist/index.js +65 -0
- package/dist/plugin-vite.d.ts +64 -0
- package/dist/plugin-vite.js +137 -0
- package/dist/types/index.d.ts +58 -0
- package/index.css +5 -0
- package/index.ts +69 -0
- package/package.json +99 -0
- package/plugin-vite.ts +286 -0
- package/types/index.ts +59 -0
- package/types/types.sh +80 -0
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import { computed } from "vue";
|
|
3
|
+
import DuJoin from "../../Layout/du-join/du-join.vue";
|
|
4
|
+
import { type PaginationProps } from './du-pagination.types';
|
|
5
|
+
import { useSizeMapping } from "../../../composables/useSizeProps";
|
|
6
|
+
import { useVariantMapping } from "../../../composables/useVariantProps";
|
|
7
|
+
|
|
8
|
+
const props = withDefaults(
|
|
9
|
+
defineProps<PaginationProps>(),
|
|
10
|
+
{
|
|
11
|
+
modelValue: 1,
|
|
12
|
+
perPage: 10,
|
|
13
|
+
showNext: true,
|
|
14
|
+
showPrevious: true,
|
|
15
|
+
showFirst: false,
|
|
16
|
+
showLast: false,
|
|
17
|
+
size: "default",
|
|
18
|
+
nextLabel: "»",
|
|
19
|
+
previousLabel: "«",
|
|
20
|
+
firstLabel: "«« ",
|
|
21
|
+
lastLabel: " »»",
|
|
22
|
+
variant: "default",
|
|
23
|
+
outline: false,
|
|
24
|
+
manual: false,
|
|
25
|
+
showEllipsis: true,
|
|
26
|
+
maxPages: 0,
|
|
27
|
+
soft: false,
|
|
28
|
+
ariaLabel: "Pagination",
|
|
29
|
+
previousAriaLabel: "Previous page",
|
|
30
|
+
nextAriaLabel: "Next page",
|
|
31
|
+
firstAriaLabel: "First page",
|
|
32
|
+
lastAriaLabel: "Last page",
|
|
33
|
+
},
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
const emit = defineEmits<{
|
|
37
|
+
(e: "update:modelValue", value: number): void;
|
|
38
|
+
}>();
|
|
39
|
+
|
|
40
|
+
const totalPages = computed(() => Math.ceil(props.total / props.perPage));
|
|
41
|
+
const { sizeClass } = useSizeMapping({ size: props.size }, "btn");
|
|
42
|
+
const { colorClass } = useVariantMapping({ variant: props.variant }, "btn");
|
|
43
|
+
|
|
44
|
+
const outlineClass = computed(() => {
|
|
45
|
+
return props.outline ? "btn-outline" : "";
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
const softClass = computed(() => {
|
|
49
|
+
return props.soft ? "btn-soft" : "";
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
const pages = computed(() => {
|
|
53
|
+
const result: (number | string)[] = [];
|
|
54
|
+
const current = props.modelValue;
|
|
55
|
+
|
|
56
|
+
if (props.maxPages > 0) {
|
|
57
|
+
const maxPagesHalf = Math.floor(props.maxPages / 2);
|
|
58
|
+
let startPage = Math.max(1, current - maxPagesHalf);
|
|
59
|
+
const endPage = Math.min(totalPages.value, startPage + props.maxPages - 1);
|
|
60
|
+
|
|
61
|
+
if (endPage - startPage + 1 < props.maxPages) {
|
|
62
|
+
startPage = Math.max(1, endPage - props.maxPages + 1);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
for (let i = startPage; i <= endPage; i++) {
|
|
66
|
+
result.push(i);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
return result;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
result.push(1);
|
|
73
|
+
|
|
74
|
+
if (props.showEllipsis && current > 3) {
|
|
75
|
+
result.push("...");
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
for (
|
|
79
|
+
let i = Math.max(2, current - 1);
|
|
80
|
+
i <= Math.min(current + 1, totalPages.value - 1);
|
|
81
|
+
i++
|
|
82
|
+
) {
|
|
83
|
+
result.push(i);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
if (props.showEllipsis && current < totalPages.value - 2) {
|
|
87
|
+
result.push("...");
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
if (totalPages.value > 1) {
|
|
91
|
+
result.push(totalPages.value);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
return result;
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
function changePage(page: number | string) {
|
|
98
|
+
if (typeof page === "number") {
|
|
99
|
+
emit("update:modelValue", page);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
</script>
|
|
103
|
+
|
|
104
|
+
<template>
|
|
105
|
+
<nav :aria-label="ariaLabel">
|
|
106
|
+
<DuJoin>
|
|
107
|
+
<template v-if="manual">
|
|
108
|
+
<slot></slot>
|
|
109
|
+
</template>
|
|
110
|
+
|
|
111
|
+
<template v-else>
|
|
112
|
+
<button v-if="showFirst" class="join-item btn" :class="[
|
|
113
|
+
sizeClass,
|
|
114
|
+
colorClass,
|
|
115
|
+
outlineClass,
|
|
116
|
+
softClass,
|
|
117
|
+
{ 'btn-disabled': modelValue <= 1 },
|
|
118
|
+
]" @click="changePage(1)" :disabled="modelValue <= 1" :aria-label="firstAriaLabel">
|
|
119
|
+
<slot name="first">{{ firstLabel }}</slot>
|
|
120
|
+
</button>
|
|
121
|
+
|
|
122
|
+
<button v-if="showPrevious" class="join-item btn" :class="[
|
|
123
|
+
sizeClass,
|
|
124
|
+
colorClass,
|
|
125
|
+
outlineClass,
|
|
126
|
+
softClass,
|
|
127
|
+
{ 'btn-disabled': modelValue <= 1 },
|
|
128
|
+
]" @click="changePage(modelValue - 1)" :disabled="modelValue <= 1" :aria-label="previousAriaLabel">
|
|
129
|
+
<slot name="previous">{{ previousLabel }}</slot>
|
|
130
|
+
</button>
|
|
131
|
+
|
|
132
|
+
<button v-for="(page, i) in pages" :key="`${page}-${i}`" class="join-item btn" :class="[
|
|
133
|
+
sizeClass,
|
|
134
|
+
colorClass,
|
|
135
|
+
outlineClass,
|
|
136
|
+
softClass,
|
|
137
|
+
{ 'btn-active': page === modelValue },
|
|
138
|
+
{ 'btn-disabled': page === '...' },
|
|
139
|
+
]" @click="changePage(page)" :disabled="page === '...'"
|
|
140
|
+
:aria-current="page === modelValue ? 'page' : undefined"
|
|
141
|
+
:aria-hidden="page === '...' ? 'true' : undefined"
|
|
142
|
+
:tabindex="page === '...' ? -1 : undefined">
|
|
143
|
+
<slot :name="`page-${page}`">{{ page }}</slot>
|
|
144
|
+
</button>
|
|
145
|
+
|
|
146
|
+
<button v-if="showNext" class="join-item btn" :class="[
|
|
147
|
+
sizeClass,
|
|
148
|
+
colorClass,
|
|
149
|
+
outlineClass,
|
|
150
|
+
softClass,
|
|
151
|
+
{ 'btn-disabled': modelValue >= totalPages },
|
|
152
|
+
]" @click="changePage(modelValue + 1)" :disabled="modelValue >= totalPages" :aria-label="nextAriaLabel">
|
|
153
|
+
<slot name="next">{{ nextLabel }}</slot>
|
|
154
|
+
</button>
|
|
155
|
+
|
|
156
|
+
<button v-if="showLast" class="join-item btn" :class="[
|
|
157
|
+
sizeClass,
|
|
158
|
+
colorClass,
|
|
159
|
+
outlineClass,
|
|
160
|
+
{ 'btn-disabled': modelValue >= totalPages },
|
|
161
|
+
softClass,
|
|
162
|
+
]" @click="changePage(totalPages)" :disabled="modelValue >= totalPages" :aria-label="lastAriaLabel">
|
|
163
|
+
<slot name="last">{{ lastLabel }}</slot>
|
|
164
|
+
</button>
|
|
165
|
+
</template>
|
|
166
|
+
</DuJoin>
|
|
167
|
+
</nav>
|
|
168
|
+
</template>
|
|
169
|
+
|
|
170
|
+
<style scoped>
|
|
171
|
+
/* .btn.btn-disabled {
|
|
172
|
+
background-color: color-mix(in oklab, var(--btn-bg) 75%, var(--color-base-100));
|
|
173
|
+
--btn-fg: color-mix(in oklch, var(--btn-fg) 50%, var(--color-base-content));
|
|
174
|
+
} */
|
|
175
|
+
|
|
176
|
+
.btn.btn-active {
|
|
177
|
+
--btn-bg: color-mix(in oklab, var(--btn-color) 50%, var(--color-base-100));
|
|
178
|
+
--btn-fg: color-mix(in oklch, var(--color-base-content) 90%, #0000);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/* .btn.btn-outline.btn-disabled {
|
|
182
|
+
--btn-bg: #0000;
|
|
183
|
+
--btn-fg: color-mix(in oklch, var(--btn-color) 35%, #0000);
|
|
184
|
+
--btn-border: var(--btn-color);
|
|
185
|
+
} */
|
|
186
|
+
</style>
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { computed } from "vue";
|
|
3
|
+
import { type StepItemProps } from './du-step-item.types';
|
|
4
|
+
|
|
5
|
+
const props = withDefaults(
|
|
6
|
+
defineProps<StepItemProps>(),
|
|
7
|
+
{
|
|
8
|
+
label: "",
|
|
9
|
+
active: false,
|
|
10
|
+
customClass: "",
|
|
11
|
+
dataContent: undefined,
|
|
12
|
+
variant: "primary",
|
|
13
|
+
},
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
const stepClass = computed(() => {
|
|
17
|
+
const classes = ["step"];
|
|
18
|
+
|
|
19
|
+
const variantClass =
|
|
20
|
+
props.variant === "default" ? "" : `step-${props.variant}`;
|
|
21
|
+
|
|
22
|
+
if (props.active && variantClass) {
|
|
23
|
+
classes.push(variantClass);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
if (props.customClass) {
|
|
27
|
+
classes.push(props.customClass);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return classes;
|
|
31
|
+
});
|
|
32
|
+
</script>
|
|
33
|
+
|
|
34
|
+
<template>
|
|
35
|
+
<li :class="stepClass" :data-content="dataContent">
|
|
36
|
+
<slot name="step-icon" v-if="$slots['step-icon']">
|
|
37
|
+
<span class="step-icon">
|
|
38
|
+
<slot name="step-icon"></slot>
|
|
39
|
+
</span>
|
|
40
|
+
</slot>
|
|
41
|
+
|
|
42
|
+
<slot>
|
|
43
|
+
{{ label }}
|
|
44
|
+
</slot>
|
|
45
|
+
</li>
|
|
46
|
+
</template>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type Variant } from "../../../composables/useVariantProps";
|
|
2
|
+
|
|
3
|
+
export const DU_STEPS_DIRECTIONS = ["steps-vertical", "steps-horizontal"] as const;
|
|
4
|
+
export type StepsDirection = (typeof DU_STEPS_DIRECTIONS)[number];
|
|
5
|
+
|
|
6
|
+
export interface StepItem {
|
|
7
|
+
label?: string;
|
|
8
|
+
active?: boolean;
|
|
9
|
+
customClass?: string;
|
|
10
|
+
dataContent?: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export interface StepsProps {
|
|
14
|
+
items?: StepItem[];
|
|
15
|
+
direction?: StepsDirection;
|
|
16
|
+
customClass?: string;
|
|
17
|
+
responsive?: boolean;
|
|
18
|
+
activeSteps?: number[];
|
|
19
|
+
variant?: Variant;
|
|
20
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { computed } from "vue";
|
|
3
|
+
import { type StepsProps } from './du-steps.types';
|
|
4
|
+
|
|
5
|
+
const props = withDefaults(
|
|
6
|
+
defineProps<StepsProps>(),
|
|
7
|
+
{
|
|
8
|
+
items: undefined,
|
|
9
|
+
direction: "steps-horizontal",
|
|
10
|
+
customClass: "",
|
|
11
|
+
responsive: false,
|
|
12
|
+
activeSteps: undefined,
|
|
13
|
+
variant: "primary",
|
|
14
|
+
},
|
|
15
|
+
);
|
|
16
|
+
|
|
17
|
+
const stepsClasses = computed(() => {
|
|
18
|
+
const classes = ["steps", props.direction];
|
|
19
|
+
|
|
20
|
+
if (props.customClass) {
|
|
21
|
+
classes.push(props.customClass);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
if (props.responsive) {
|
|
25
|
+
classes.push("steps-vertical lg:steps-horizontal");
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return classes;
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
const getStepClass = (index: number): string[] => {
|
|
32
|
+
const classes = ["step"];
|
|
33
|
+
|
|
34
|
+
const variantClass =
|
|
35
|
+
props.variant === "default" ? "" : `step-${props.variant}`;
|
|
36
|
+
|
|
37
|
+
if (props.activeSteps && props.activeSteps.includes(index)) {
|
|
38
|
+
if (variantClass) classes.push(variantClass);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
if (props.items && props.items[index] && props.items[index].active) {
|
|
42
|
+
if (variantClass) classes.push(variantClass);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
if (props.items && props.items[index] && props.items[index].customClass) {
|
|
46
|
+
classes.push(props.items[index].customClass!);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return classes;
|
|
50
|
+
};
|
|
51
|
+
</script>
|
|
52
|
+
|
|
53
|
+
<template>
|
|
54
|
+
<ul :class="stepsClasses">
|
|
55
|
+
<!-- Dynamic items mode -->
|
|
56
|
+
<template v-if="items">
|
|
57
|
+
<li
|
|
58
|
+
v-for="(item, index) in items"
|
|
59
|
+
:key="index"
|
|
60
|
+
:class="getStepClass(index)"
|
|
61
|
+
:data-content="item.dataContent"
|
|
62
|
+
>
|
|
63
|
+
<slot :name="`step-${index}`" :item="item" :index="index">
|
|
64
|
+
<slot name="step" :item="item" :index="index">
|
|
65
|
+
<slot v-if="item.label">
|
|
66
|
+
{{ item.label }}
|
|
67
|
+
</slot>
|
|
68
|
+
<slot
|
|
69
|
+
v-if="$slots[`step-icon-${index}`]"
|
|
70
|
+
:name="`step-icon-${index}`"
|
|
71
|
+
></slot>
|
|
72
|
+
<span v-else-if="$slots['step-icon']" class="step-icon">
|
|
73
|
+
<slot name="step-icon" :item="item" :index="index"></slot>
|
|
74
|
+
</span>
|
|
75
|
+
</slot>
|
|
76
|
+
</slot>
|
|
77
|
+
</li>
|
|
78
|
+
</template>
|
|
79
|
+
|
|
80
|
+
<!-- Manual mode -->
|
|
81
|
+
<template v-else>
|
|
82
|
+
<slot></slot>
|
|
83
|
+
</template>
|
|
84
|
+
</ul>
|
|
85
|
+
</template>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type Size } from "../../../composables/useSizeProps";
|
|
2
|
+
|
|
3
|
+
export const DU_TABS_TYPES = ["lift", "border", "box"] as const;
|
|
4
|
+
export type TabsType = (typeof DU_TABS_TYPES)[number];
|
|
5
|
+
|
|
6
|
+
export interface TabItem {
|
|
7
|
+
label?: string;
|
|
8
|
+
icon?: any;
|
|
9
|
+
class?: string;
|
|
10
|
+
active?: boolean;
|
|
11
|
+
onClick?: () => void;
|
|
12
|
+
content?: string;
|
|
13
|
+
[key: string]: any;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface TabsProps {
|
|
17
|
+
size?: Size;
|
|
18
|
+
items?: TabItem[];
|
|
19
|
+
type?: TabsType;
|
|
20
|
+
bottom?: boolean;
|
|
21
|
+
name?: string;
|
|
22
|
+
modelValue?: number;
|
|
23
|
+
/** Accessible name of the tab group. */
|
|
24
|
+
ariaLabel?: string;
|
|
25
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { computed } from "vue";
|
|
3
|
+
import { type TabsProps, type TabItem } from './du-tabs.types';
|
|
4
|
+
import { useSizeMapping } from "../../../composables/useSizeProps";
|
|
5
|
+
|
|
6
|
+
const props = withDefaults(
|
|
7
|
+
defineProps<TabsProps>(),
|
|
8
|
+
{
|
|
9
|
+
size: "default",
|
|
10
|
+
items: undefined,
|
|
11
|
+
type: undefined,
|
|
12
|
+
bottom: false,
|
|
13
|
+
name: "my_tabs",
|
|
14
|
+
modelValue: undefined,
|
|
15
|
+
ariaLabel: undefined,
|
|
16
|
+
},
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
const emit = defineEmits<{
|
|
20
|
+
'update:modelValue': [index: number]
|
|
21
|
+
}>();
|
|
22
|
+
|
|
23
|
+
function handleTabClick(index: number, item: TabItem) {
|
|
24
|
+
emit('update:modelValue', index);
|
|
25
|
+
item.onClick?.();
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const { sizeClass } = useSizeMapping(props, "tabs");
|
|
29
|
+
|
|
30
|
+
const typeClass = computed(() => {
|
|
31
|
+
switch (props.type) {
|
|
32
|
+
case "lift":
|
|
33
|
+
return "tabs-lift";
|
|
34
|
+
case "border":
|
|
35
|
+
return "tabs-border";
|
|
36
|
+
case "box":
|
|
37
|
+
return "tabs-box";
|
|
38
|
+
default:
|
|
39
|
+
return "";
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
</script>
|
|
43
|
+
|
|
44
|
+
<template>
|
|
45
|
+
<!-- Accessibility: this follows DaisyUI's radio-group tab pattern. The
|
|
46
|
+
wrapping <label> gives each radio its accessible name and the browser
|
|
47
|
+
provides arrow-key navigation between radios of the same name, which
|
|
48
|
+
matches the expected tablist keyboard behavior. -->
|
|
49
|
+
<div :class="['tabs', sizeClass, typeClass]" :aria-label="ariaLabel">
|
|
50
|
+
<template v-if="$slots.default">
|
|
51
|
+
<slot></slot>
|
|
52
|
+
</template>
|
|
53
|
+
|
|
54
|
+
<template v-else-if="items">
|
|
55
|
+
<template v-for="(item, index) in items" :key="index">
|
|
56
|
+
<label :class="['tab', item.class]" @click="handleTabClick(index, item)">
|
|
57
|
+
<input type="radio" :name="props.name" :checked="item.active" />
|
|
58
|
+
<template v-if="item.label || $slots.tab">
|
|
59
|
+
<slot name="tab" :item="item" :index="index">
|
|
60
|
+
<slot :name="`tab-${index}`" :item="item" :index="index">
|
|
61
|
+
<slot name="icon" :item="item">
|
|
62
|
+
<component class="w-5 h-5"
|
|
63
|
+
:is="item.icon"
|
|
64
|
+
v-if="typeof item.icon === 'object' || typeof item.icon === 'function'"
|
|
65
|
+
/>
|
|
66
|
+
<img
|
|
67
|
+
v-else-if="
|
|
68
|
+
typeof item.icon === 'string' &&
|
|
69
|
+
item.icon.startsWith('http')
|
|
70
|
+
"
|
|
71
|
+
:src="item.icon"
|
|
72
|
+
:alt="item.label"
|
|
73
|
+
/>
|
|
74
|
+
<div
|
|
75
|
+
v-else-if="typeof item.icon === 'string'"
|
|
76
|
+
v-html="item.icon"
|
|
77
|
+
></div>
|
|
78
|
+
</slot>
|
|
79
|
+
{{ item.label }}
|
|
80
|
+
</slot>
|
|
81
|
+
</slot>
|
|
82
|
+
</template>
|
|
83
|
+
</label>
|
|
84
|
+
<template v-if="item.content || $slots.content || $slots[`content-${index}`]">
|
|
85
|
+
<div class="tab-content">
|
|
86
|
+
<slot name="content" :item="item" :index="index">
|
|
87
|
+
<slot :name="`content-${index}`" :item="item" :index="index">
|
|
88
|
+
{{ item.content }}
|
|
89
|
+
</slot>
|
|
90
|
+
</slot>
|
|
91
|
+
</div>
|
|
92
|
+
</template>
|
|
93
|
+
</template>
|
|
94
|
+
</template>
|
|
95
|
+
</div>
|
|
96
|
+
</template>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { computed } from 'vue'
|
|
2
|
+
|
|
3
|
+
export type Size = 'default' | 'xs' | 'sm' | 'md' | 'lg' | 'xl'
|
|
4
|
+
export const AvailableSizes: Size[] = ['default', 'xs', 'sm', 'md', 'lg', 'xl']
|
|
5
|
+
|
|
6
|
+
export function useSizeMapping(props: { size: Size }, suffix: string) {
|
|
7
|
+
const sizeClass = computed(() => {
|
|
8
|
+
return {
|
|
9
|
+
default: '',
|
|
10
|
+
xs: suffix + '-xs',
|
|
11
|
+
sm: suffix + '-sm',
|
|
12
|
+
md: suffix + '-md',
|
|
13
|
+
lg: suffix + '-lg',
|
|
14
|
+
xl: suffix + '-xl',
|
|
15
|
+
}[props.size]
|
|
16
|
+
})
|
|
17
|
+
|
|
18
|
+
return { sizeClass }
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export const useSizeStoriesControl = {
|
|
22
|
+
size: {
|
|
23
|
+
control: { type: 'select' },
|
|
24
|
+
options: ['default', 'xs', 'sm', 'md', 'lg', 'xl'],
|
|
25
|
+
},
|
|
26
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { computed } from 'vue'
|
|
2
|
+
|
|
3
|
+
export type Variant = 'default' | 'neutral' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error'
|
|
4
|
+
|
|
5
|
+
export function useVariantMapping(props: { variant: Variant }, suffix: string) {
|
|
6
|
+
const colorClass = computed(() => {
|
|
7
|
+
return props.variant === 'default' ? '' : suffix + '-' + props.variant
|
|
8
|
+
})
|
|
9
|
+
|
|
10
|
+
return { colorClass }
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export const useVariantStoriesControl = {
|
|
14
|
+
variant: {
|
|
15
|
+
control: { type: 'select' },
|
|
16
|
+
options: ['default', 'primary', 'secondary', 'accent', 'neutral', 'info', 'success', 'warning', 'error'],
|
|
17
|
+
},
|
|
18
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const BUTTON_SIZES: readonly ["btn-xs", "btn-sm", "btn-md", "btn-lg", "btn-xl"];
|
|
2
|
+
export declare const BUTTON_COLORS: readonly ["btn-primary", "btn-secondary", "btn-accent", "btn-neutral", "btn-info", "btn-success", "btn-warning", "btn-error"];
|
|
3
|
+
export type BUTTONSize = (typeof BUTTON_SIZES)[number];
|
|
4
|
+
export type BUTTONColor = (typeof BUTTON_COLORS)[number];
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { type Size } from '../../../composables/useSizeProps';
|
|
2
|
+
import { type Variant } from '../../../composables/useVariantProps';
|
|
3
|
+
type ElementType = 'button' | 'a' | 'input' | 'div' | 'RouterLink' | 'NuxtLink' | string;
|
|
4
|
+
type __VLS_Props = {
|
|
5
|
+
customClass?: string;
|
|
6
|
+
size?: Size;
|
|
7
|
+
variant?: Variant;
|
|
8
|
+
outline?: boolean;
|
|
9
|
+
soft?: boolean;
|
|
10
|
+
dash?: boolean;
|
|
11
|
+
active?: boolean;
|
|
12
|
+
ghost?: boolean;
|
|
13
|
+
link?: boolean;
|
|
14
|
+
wide?: boolean;
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
square?: boolean;
|
|
17
|
+
circle?: boolean;
|
|
18
|
+
block?: boolean;
|
|
19
|
+
as?: ElementType;
|
|
20
|
+
type?: string;
|
|
21
|
+
href?: string;
|
|
22
|
+
value?: string;
|
|
23
|
+
inputType?: 'button' | 'submit' | 'reset' | 'radio' | 'checkbox';
|
|
24
|
+
label?: string;
|
|
25
|
+
};
|
|
26
|
+
declare var __VLS_8: {};
|
|
27
|
+
type __VLS_Slots = {} & {
|
|
28
|
+
default?: (props: typeof __VLS_8) => any;
|
|
29
|
+
};
|
|
30
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
31
|
+
label: string;
|
|
32
|
+
customClass: string;
|
|
33
|
+
square: boolean;
|
|
34
|
+
circle: boolean;
|
|
35
|
+
value: string;
|
|
36
|
+
type: string;
|
|
37
|
+
size: Size;
|
|
38
|
+
ghost: boolean;
|
|
39
|
+
variant: Variant;
|
|
40
|
+
disabled: boolean;
|
|
41
|
+
inputType: "button" | "submit" | "reset" | "radio" | "checkbox";
|
|
42
|
+
href: string;
|
|
43
|
+
active: boolean;
|
|
44
|
+
outline: boolean;
|
|
45
|
+
soft: boolean;
|
|
46
|
+
dash: boolean;
|
|
47
|
+
link: boolean;
|
|
48
|
+
wide: boolean;
|
|
49
|
+
block: boolean;
|
|
50
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
51
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
52
|
+
declare const _default: typeof __VLS_export;
|
|
53
|
+
export default _default;
|
|
54
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
55
|
+
new (): {
|
|
56
|
+
$slots: S;
|
|
57
|
+
};
|
|
58
|
+
};
|