adata-ui 2.1.40-beta.8 → 2.1.40
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/-error.vue +170 -170
- package/.editorconfig +12 -12
- package/.gitlab-ci.yml +16 -16
- package/.nuxtrc +1 -1
- package/.nvmrc +1 -1
- package/.playground/app.config.ts +5 -5
- package/.playground/app.vue +102 -102
- package/.playground/nuxt.config.ts +3 -3
- package/README.md +75 -75
- package/app.config.ts +28 -28
- package/app.vue +8 -8
- package/assets/styles/index.scss +166 -104
- package/assets/styles/modules/_base.scss +5 -5
- package/assets/styles/modules/_typography.scss +152 -152
- package/components/elements/README.md +1 -1
- package/components/elements/a-select-row/ASelectRowV2.vue +214 -214
- package/components/elements/a-select-row/index.vue +138 -140
- package/components/elements/accordion/AAccordion.vue +199 -197
- package/components/elements/accordion/AAccordionGroup/AAccordionGroup.vue +145 -145
- package/components/elements/accordion/AAccordionGroup/types.ts +20 -20
- package/components/elements/accordion/AAccordionGroup/ui.config.ts +22 -22
- package/components/elements/accordion/types.ts +14 -14
- package/components/elements/accordion/ui.config.ts +22 -22
- package/components/elements/alert/AAlert.vue +52 -65
- package/components/elements/banner/ABanner.vue +49 -49
- package/components/elements/bg-block/ABgBlock.vue +11 -11
- package/components/elements/button/AButton.vue +188 -188
- package/components/elements/button/AButtonV2.vue +133 -112
- package/components/elements/button/types.ts +24 -24
- package/components/elements/button-login/index.vue +18 -18
- package/components/elements/calendar/ACalendar.vue +83 -83
- package/components/elements/carousel/ACarousel.vue +159 -159
- package/components/elements/carousel/config.ui.ts +15 -15
- package/components/elements/carousel/types.ts +18 -18
- package/components/elements/chip-wrapper/AChipWrapper.vue +80 -80
- package/components/elements/chip-wrapper/types.ts +12 -12
- package/components/elements/chips/AChips.vue +32 -32
- package/components/elements/companies/AOurClients.vue +47 -45
- package/components/elements/curve-block/ACurveBlock.vue +292 -292
- package/components/elements/curve-block-v2/ACurveBlockV2.vue +85 -0
- package/components/elements/digit-badge/ADigitBadge.vue +85 -83
- package/components/elements/error-template/index.vue +48 -48
- package/components/elements/error-template/types.ts +23 -23
- package/components/elements/feature-description/AFeatureDescription.vue +112 -112
- package/components/elements/illustrations/noAccess.vue +71 -71
- package/components/elements/infinite-carousel/AInfiniteCarousel.vue +57 -57
- package/components/elements/infinite-scroll/AInfiniteScroll.vue +33 -33
- package/components/elements/leave-note/ALeaveNote.vue +102 -99
- package/components/elements/pagination/APagination.vue +110 -110
- package/components/elements/photos-animation/APhotosAnimation.vue +85 -85
- package/components/elements/segmented/ASegmentedV2.vue +151 -58
- package/components/elements/select/ASelect.vue +447 -447
- package/components/elements/select/ASelectMobile.vue +186 -186
- package/components/elements/select/ASelectV2.vue +588 -589
- package/components/elements/select/ui/select-button.vue +112 -112
- package/components/elements/select/ui/select-list.vue +99 -99
- package/components/elements/show-more/AShowMore.vue +35 -35
- package/components/elements/show-more/AShowMoreV2.vue +26 -26
- package/components/elements/skeleton/ASkeleton.vue +44 -44
- package/components/elements/slider/ASlider.vue +174 -0
- package/components/elements/slider/ASliderItem.vue +31 -0
- package/components/elements/slider/types.ts +21 -0
- package/components/elements/star-rating/AStarRating.vue +189 -189
- package/components/elements/star-rating/types.ts +7 -7
- package/components/elements/star-rating/ui/Star.vue +74 -74
- package/components/elements/status-badge/AStatusBadge.vue +121 -74
- package/components/elements/step-slider/AStepSliderColCard.vue +232 -0
- package/components/elements/step-slider/AStepSliderColNumber.vue +178 -0
- package/components/elements/table/ATable.vue +93 -93
- package/components/elements/table/table.config.ts +32 -32
- package/components/elements/tree-select/ATreeSelect.vue +157 -173
- package/components/elements/tree-select/TreeService.ts +184 -249
- package/components/elements/tree-select/components/ATreeSelectNode.vue +104 -0
- package/components/elements/tree-select/types.ts +63 -34
- package/components/elements/tree-select/utils.ts +30 -0
- package/components/elements/tree-select-mobile/ATreeSelectMobile.vue +79 -79
- package/components/elements/tree-select-mobile/components/ATreeSelectNodesMobile.vue +175 -175
- package/components/elements/tree-select-modal/ATreeSelectModal.vue +217 -0
- package/components/features/color-mode/AColorMode.client.vue +96 -96
- package/components/features/dropdown/ADropdown.vue +127 -127
- package/components/features/dropdown/ADropdownV2.vue +140 -141
- package/components/features/go-top/GoTop.vue +63 -63
- package/components/features/lang-switcher/lang-switcher.vue +158 -153
- package/components/features/payment/banner/BasicPlusLimitBanner.vue +104 -104
- package/components/features/payment/banner/PaymentBanner.vue +108 -108
- package/components/features/payment/banner/UpSellBanner.vue +125 -125
- package/components/features/payment/process/PaymentKaspiQrSidePanel.vue +179 -161
- package/components/features/payment/process/PaymentKaspiRedirectSidePanel.vue +123 -112
- package/components/features/payment/process/PaymentMethodSidePanel.vue +138 -121
- package/components/features/payment/process/PaymentProcess.vue +158 -158
- package/components/features/payment/process/PaymentTopUpSidePanel.vue +119 -133
- package/components/features/pk-mobile-services/APkMobileServices.vue +136 -136
- package/components/features//321/201hange-version/AChangeVersion.vue +20 -20
- package/components/forms/README.md +1 -1
- package/components/forms/checkbox/ACheckbox.vue +149 -149
- package/components/forms/checkbox/ACheckboxV2.vue +229 -229
- package/components/forms/feedback-form/FeedbackForm.vue +177 -177
- package/components/forms/feedback-form/FeedbackFormV2.vue +182 -0
- package/components/forms/input/AInputV2.vue +542 -542
- package/components/forms/input/button/AInputButton.vue +53 -53
- package/components/forms/input/date/AInputDate.vue +213 -213
- package/components/forms/input/password/AInputPassword.vue +59 -53
- package/components/forms/input/standard/AInputStandard.vue +415 -415
- package/components/forms/input/textarea/ATextarea.vue +203 -203
- package/components/forms/input/textarea/ATextareaV2.vue +248 -248
- package/components/forms/radio-button/ARadioButton.vue +95 -95
- package/components/forms/request-demo/ARequestDemo.vue +108 -108
- package/components/forms/toggle/AToggle.vue +156 -157
- package/components/forms/toggle/AToggleV2.vue +71 -71
- package/components/forms/toggle/types.ts +16 -16
- package/components/modals/AConfirmationEmail.vue +40 -40
- package/components/modals/AboutTariffModal.vue +114 -114
- package/components/modals/AnotherDeviceModal.vue +64 -59
- package/components/modals/ApplicationAcceptedModal.vue +44 -44
- package/components/modals/ConnectingTariffModal.vue +60 -60
- package/components/modals/ContactsMobileModel.vue +182 -182
- package/components/modals/ContentNavigationModal.vue +99 -355
- package/components/modals/Insufficient-funds-modal.vue +62 -62
- package/components/modals/LimitReachedModal.vue +33 -31
- package/components/modals/NoAccessModal.vue +35 -35
- package/components/modals/PaymentMethodModal.vue +101 -101
- package/components/modals/RedirectsBanksModal.vue +69 -69
- package/components/modals/ReplenishModal.vue +132 -132
- package/components/modals/ReportBugConfirmModal.vue +32 -32
- package/components/modals/ReportBugModal.vue +172 -170
- package/components/modals/Resend.vue +81 -81
- package/components/modals/SubmitApplicationModal.vue +130 -126
- package/components/modals/id/AuthModal.vue +92 -92
- package/components/modals/id/IdAutoLogoutModal.vue +45 -45
- package/components/modals/id/IdBanner.vue +61 -61
- package/components/modals/id/IdConfirmAccountOtpModal.vue +181 -181
- package/components/modals/id/IdConfirmSuccessfulModal.vue +41 -41
- package/components/modals/id/IdLoginModal.vue +336 -336
- package/components/modals/id/IdModals.vue +127 -127
- package/components/modals/id/IdNewPasswordModal.vue +129 -129
- package/components/modals/id/IdOtpInput.vue +156 -156
- package/components/modals/id/IdPasswordSuccessfulModal.vue +25 -25
- package/components/modals/id/IdRecoveryModal.vue +117 -117
- package/components/modals/id/IdRegistrationModal.vue +215 -215
- package/components/modals/id/IdResetPasswordOtpModal.vue +158 -158
- package/components/modals/id/IdTwoFactorModal.vue +125 -125
- package/components/navigation/README.md +1 -1
- package/components/navigation/bottom-navigation/ABottomNavigation.vue +106 -106
- package/components/navigation/breadcrumbs/ABreadcrumbs.vue +128 -67
- package/components/navigation/breadcrumbs/types.ts +8 -5
- package/components/navigation/footer/AFooter.vue +283 -284
- package/components/navigation/footer/ui/a-footer-accordion.vue +118 -118
- package/components/navigation/header/AHeader.vue +237 -243
- package/components/navigation/header/AlmatyContacts.vue +145 -145
- package/components/navigation/header/AstanaContacts.vue +67 -67
- package/components/navigation/header/CardGallery.vue +251 -251
- package/components/navigation/header/ContactMenu.vue +48 -48
- package/components/navigation/header/HeaderLink.vue +250 -254
- package/components/navigation/header/HeaderUsage.vue +139 -125
- package/components/navigation/header/ListItem.vue +31 -31
- package/components/navigation/header/NavCard.vue +41 -41
- package/components/navigation/header/NavList.vue +72 -72
- package/components/navigation/header/NotificationsMenu.vue +50 -51
- package/components/navigation/header/ProductMenu.vue +100 -100
- package/components/navigation/header/ProfileMenu.vue +167 -176
- package/components/navigation/header/SystemNotification.vue +108 -110
- package/components/navigation/header/types.ts +28 -28
- package/components/navigation/line-tabs/ALineTabs.vue +111 -111
- package/components/navigation/line-tabs/types.ts +21 -21
- package/components/navigation/mobile-navigation/AMobileNavigation.vue +112 -112
- package/components/navigation/pill-tabs/APillTabs.vue +177 -177
- package/components/navigation/pill-tabs/APillTabsV2.vue +226 -118
- package/components/navigation/pill-tabs/types.ts +24 -24
- package/components/navigation/side-navigation/ASideNavigation.vue +406 -406
- package/components/overlays/README.md +1 -1
- package/components/overlays/drawer/ADrawerV2.vue +334 -0
- package/components/overlays/modal/AModal.vue +335 -335
- package/components/overlays/modal/AModalV2.vue +396 -389
- package/components/overlays/side-panel/ASidePanel.vue +445 -439
- package/components/overlays/sideover/ASlideover.vue +351 -351
- package/components/overlays/tooltip/ATooltip.vue +237 -237
- package/components/overlays/tooltip/ATooltipV2.vue +226 -233
- package/components/overlays/tooltip/types.ts +26 -26
- package/components/overlays/tooltip/useTooltipTrigger.ts +101 -101
- package/components/transitions/ATransitionHeight.vue +67 -67
- package/components/utils/index.ts +19 -19
- package/components/utils/removeTrailingSlash.ts +7 -7
- package/composables/highlight.ts +18 -18
- package/composables/modalsState.ts +8 -8
- package/composables/projectState.ts +2 -2
- package/composables/useAccessTokenCookie.ts +25 -25
- package/composables/useActiveNavigation.ts +84 -84
- package/composables/useAdaptive.ts +46 -46
- package/composables/useBuyTariffs.ts +91 -91
- package/composables/useCarouselScroll.ts +49 -49
- package/composables/useChipOverflow.ts +92 -92
- package/composables/useHeaderNavigationLinks.ts +519 -507
- package/composables/useIdModals.ts +36 -36
- package/composables/usePayment.ts +78 -78
- package/composables/useUIValidation.ts +16 -16
- package/composables/useUrls.ts +23 -23
- package/eslint.config.mjs +45 -45
- package/i18n/i18n.config.ts +21 -21
- package/i18n.config.ts +21 -21
- package/icons/adata-logo.vue +17 -17
- package/icons/ai-assistant.vue +13 -13
- package/icons/akimat.vue +20 -20
- package/icons/archive.vue +16 -0
- package/icons/arrow/arrow-bottom-left-on-square.vue +5 -5
- package/icons/arrow/arrow-circle-down.vue +16 -16
- package/icons/arrow/arrow-circle-reset.vue +16 -16
- package/icons/arrow/arrow-corner.vue +9 -9
- package/icons/arrow/arrow-graph-down.vue +13 -13
- package/icons/arrow/arrow-graph-up.vue +14 -14
- package/icons/arrow/arrow-left-right.vue +8 -0
- package/icons/arrow/arrow-right.vue +14 -14
- package/icons/arrow/arrow-square-down.vue +15 -15
- package/icons/arrow/arrow-top-right-on-square.vue +6 -6
- package/icons/arrow/arrows-in.vue +11 -0
- package/icons/arrow/arrows-out.vue +11 -0
- package/icons/arrow/arrows-resize-in.vue +38 -0
- package/icons/arrow/arrows-resize-out.vue +17 -0
- package/icons/arrow-currency-gray.vue +5 -5
- package/icons/arrow-currency-green.vue +5 -5
- package/icons/arrow-currency-red.vue +5 -5
- package/icons/arrow-side-up.vue +6 -6
- package/icons/avatar.vue +12 -12
- package/icons/bank.vue +5 -5
- package/icons/bill.vue +3 -0
- package/icons/block.vue +16 -16
- package/icons/bookmark/bookmark-filled.vue +18 -18
- package/icons/bookmark/bookmark.vue +5 -5
- package/icons/bot.vue +52 -0
- package/icons/briefcase.vue +14 -14
- package/icons/browsers/browser-duck.vue +65 -65
- package/icons/browsers/browser-google.vue +30 -30
- package/icons/browsers/browser-yandex.vue +13 -13
- package/icons/building-vector.vue +7 -7
- package/icons/building.vue +9 -0
- package/icons/calculator.vue +7 -7
- package/icons/calendar.vue +24 -24
- package/icons/car-side.vue +16 -16
- package/icons/car.vue +7 -7
- package/icons/cart.vue +15 -15
- package/icons/chart-bar.vue +5 -5
- package/icons/chart-no-axes-column.vue +3 -0
- package/icons/chart-pie.vue +16 -16
- package/icons/check/check-circle.vue +6 -6
- package/icons/check/check-shield.vue +14 -14
- package/icons/check/check.vue +17 -17
- package/icons/check/checkmark-circle.vue +6 -6
- package/icons/check-sb.vue +7 -7
- package/icons/checkbox/checkbox-active.vue +17 -17
- package/icons/checkbox/checkbox-empty.vue +10 -10
- package/icons/checkbox/checkbox-intermediate.vue +7 -7
- package/icons/chevron/chevron-down.vue +5 -5
- package/icons/chevron/chevron-left.vue +5 -5
- package/icons/chevron/chevron-right.vue +5 -5
- package/icons/chevron/chevron-up.vue +5 -5
- package/icons/chevron/double-chevron-right.vue +12 -12
- package/icons/clipboard-text.vue +7 -7
- package/icons/clock-time.vue +24 -0
- package/icons/clock.vue +25 -25
- package/icons/close.vue +16 -16
- package/icons/cloud/cloud-upload.vue +3 -0
- package/icons/code.vue +9 -0
- package/icons/company/company-bazis.vue +21 -21
- package/icons/company/company-bereke.vue +25 -25
- package/icons/company/company-bigroup.vue +16 -16
- package/icons/company/company-erg.vue +17 -17
- package/icons/company/company-forte.vue +21 -21
- package/icons/company/company-halyk.vue +15 -15
- package/icons/company/company-jusan.vue +31 -31
- package/icons/company/company-kaspi.vue +14 -14
- package/icons/company/company-kazzinc.vue +22 -22
- package/icons/company/company-mycar.vue +13 -13
- package/icons/company/company-samruk.vue +21 -21
- package/icons/company-egov-small.vue +15 -15
- package/icons/company.vue +8 -8
- package/icons/compare-outlined.vue +8 -0
- package/icons/copy.vue +7 -7
- package/icons/currency/currency-dollar.vue +16 -16
- package/icons/currency/currency-down.vue +22 -22
- package/icons/currency/currency-eur.vue +57 -57
- package/icons/currency/currency-rub.vue +7 -7
- package/icons/currency/currency-tenge.vue +9 -9
- package/icons/currency/currency-usd.vue +221 -221
- package/icons/currency/currency-yuan.vue +25 -25
- package/icons/default-avatar.vue +20 -20
- package/icons/delete.vue +7 -7
- package/icons/document.vue +5 -5
- package/icons/dots-horizontal.vue +31 -0
- package/icons/download-line.vue +13 -0
- package/icons/download-rounded.vue +15 -15
- package/icons/download.vue +11 -11
- package/icons/edit.vue +7 -7
- package/icons/education.vue +16 -16
- package/icons/egov-small.vue +7 -7
- package/icons/egov.vue +41 -0
- package/icons/elicense.vue +38 -0
- package/icons/excel-icon.vue +14 -14
- package/icons/expand-window.vue +7 -7
- package/icons/eye-closed.vue +26 -26
- package/icons/eye-open.vue +7 -7
- package/icons/eye-opened.vue +23 -23
- package/icons/favourite-bookmark-outline.vue +17 -0
- package/icons/file/file-check-corner.vue +3 -0
- package/icons/file/file-spreadsheet.vue +3 -0
- package/icons/file/file.vue +16 -16
- package/icons/file/files.vue +16 -16
- package/icons/file-pen.vue +31 -0
- package/icons/file-stack.vue +31 -0
- package/icons/file-types/excel.vue +131 -0
- package/icons/file-types/html.vue +13 -0
- package/icons/file-types/jpeg.vue +16 -0
- package/icons/file-types/pdf.vue +11 -0
- package/icons/file-types/png.vue +11 -0
- package/icons/file-types/rar.vue +11 -0
- package/icons/file-types/word.vue +50 -0
- package/icons/file-types/zip.vue +11 -0
- package/icons/filter.vue +5 -5
- package/icons/flag.vue +7 -7
- package/icons/gauge.vue +17 -17
- package/icons/gift.vue +8 -8
- package/icons/git-compare.vue +38 -0
- package/icons/git-fork.vue +3 -0
- package/icons/globe.vue +16 -16
- package/icons/google.vue +41 -41
- package/icons/gradiend-icons/files-gradient.vue +22 -22
- package/icons/gradiend-icons/hammer-gradient.vue +62 -62
- package/icons/graduation-cap.vue +31 -0
- package/icons/graph-loading.vue +34 -0
- package/icons/graph-pie.vue +14 -14
- package/icons/hand/hand-thumb-up-filled.vue +5 -5
- package/icons/hand/hand-thumb-up.vue +5 -5
- package/icons/hand-with-phone/hand-with-phone-dark.vue +52 -52
- package/icons/hand-with-phone/hand-with-phone-light.vue +52 -52
- package/icons/handshake.vue +5 -5
- package/icons/hcheck.vue +14 -14
- package/icons/hdocument.vue +7 -7
- package/icons/headset.vue +6 -0
- package/icons/help-question-circle.vue +26 -0
- package/icons/history.vue +5 -5
- package/icons/horizontal-more.vue +13 -13
- package/icons/hot-line.vue +6 -6
- package/icons/hummer.vue +16 -16
- package/icons/id.vue +7 -7
- package/icons/in-row-type.vue +46 -0
- package/icons/in-table-type.vue +29 -0
- package/icons/info/info-circle.vue +29 -29
- package/icons/invoice.vue +7 -7
- package/icons/judge.vue +14 -14
- package/icons/kaspi-qr.vue +13 -13
- package/icons/landmark.vue +3 -0
- package/icons/layers.vue +3 -0
- package/icons/letter/letter-a.vue +6 -0
- package/icons/letter/letter-b.vue +6 -0
- package/icons/letter/letter-c.vue +6 -0
- package/icons/letter/letter-d.vue +6 -0
- package/icons/letter/letter-e.vue +6 -0
- package/icons/link-chain.vue +28 -28
- package/icons/link-url.vue +3 -0
- package/icons/link.vue +7 -7
- package/icons/linkedin.vue +24 -24
- package/icons/list-tree.vue +3 -0
- package/icons/loader-circle.vue +27 -27
- package/icons/location.vue +8 -8
- package/icons/lock.vue +5 -5
- package/icons/logo.vue +15 -15
- package/icons/logout.vue +16 -16
- package/icons/magnify/magnifying-glass-minus.vue +8 -8
- package/icons/magnify/magnifying-glass-plus.vue +9 -9
- package/icons/magnify/magnifying-glass.vue +9 -9
- package/icons/mail-question-mark.vue +8 -0
- package/icons/mail.vue +7 -7
- package/icons/mailru.vue +34 -34
- package/icons/main-filter.vue +5 -5
- package/icons/map/map-pin-filled.vue +7 -7
- package/icons/map/map-pin-rect.vue +15 -15
- package/icons/map/map-pin.vue +7 -7
- package/icons/map-marker-start.vue +7 -7
- package/icons/map-paper.vue +5 -5
- package/icons/medal.vue +7 -7
- package/icons/menu-filled.vue +20 -20
- package/icons/menu.vue +8 -8
- package/icons/message/message-square.vue +3 -0
- package/icons/message/message.vue +12 -12
- package/icons/message-dotted.vue +30 -0
- package/icons/minus/minus-circle.vue +10 -10
- package/icons/money.vue +5 -5
- package/icons/monitoring.vue +10 -10
- package/icons/moon.vue +8 -8
- package/icons/more.vue +29 -29
- package/icons/network.vue +3 -0
- package/icons/newspaper.vue +3 -0
- package/icons/note-pencil.vue +14 -14
- package/icons/note.vue +14 -14
- package/icons/notification-error.vue +17 -0
- package/icons/notification.vue +16 -16
- package/icons/paperclip.vue +7 -7
- package/icons/payment/payment-card.vue +6 -6
- package/icons/payment/payment-kaspi.vue +11 -11
- package/icons/person-vector.vue +7 -7
- package/icons/person-with-briefcase.vue +10 -10
- package/icons/person.vue +22 -0
- package/icons/phone-call.vue +6 -0
- package/icons/phone-filled.vue +5 -5
- package/icons/phone-reversed.vue +3 -0
- package/icons/phone.vue +7 -7
- package/icons/plus/plus-circle.vue +8 -8
- package/icons/plus/plus.vue +13 -13
- package/icons/profile.vue +5 -5
- package/icons/radio/radio-check.vue +8 -8
- package/icons/radio/radio-empty.vue +10 -10
- package/icons/receipt.vue +8 -8
- package/icons/robot.vue +14 -14
- package/icons/route.vue +7 -0
- package/icons/sanctions.vue +8 -8
- package/icons/scales/scale.vue +16 -16
- package/icons/scales/scales.vue +5 -5
- package/icons/scales/standing-scales.vue +15 -15
- package/icons/scan-search.vue +3 -0
- package/icons/search.vue +27 -27
- package/icons/settings.vue +26 -0
- package/icons/share/share-alt.vue +5 -5
- package/icons/share/share.vue +14 -14
- package/icons/shield-alert.vue +31 -0
- package/icons/shield-verified.vue +14 -14
- package/icons/ship.vue +8 -8
- package/icons/socials/face-book.vue +15 -15
- package/icons/socials/facebook-color.vue +16 -0
- package/icons/socials/globe-color.vue +16 -0
- package/icons/socials/instagram-color.vue +46 -0
- package/icons/socials/instagram.vue +19 -19
- package/icons/socials/linkedin-color.vue +14 -0
- package/icons/socials/telegram-color.vue +16 -0
- package/icons/socials/telegram.vue +15 -15
- package/icons/socials/tik-tok.vue +15 -15
- package/icons/socials/tiktok-color.vue +14 -0
- package/icons/socials/vk-color.vue +16 -0
- package/icons/socials/youtube-color.vue +16 -0
- package/icons/socials/youtube.vue +16 -16
- package/icons/sort/sort-asc.vue +15 -15
- package/icons/sort/sort-desc.vue +15 -15
- package/icons/sparkles.vue +3 -0
- package/icons/splitting-arrows.vue +8 -8
- package/icons/star/star-filled.vue +40 -40
- package/icons/star/star-half-filled.vue +20 -20
- package/icons/star/star.vue +25 -25
- package/icons/sun.vue +24 -24
- package/icons/sviazi.vue +5 -5
- package/icons/tag.vue +30 -30
- package/icons/tasks.vue +10 -10
- package/icons/tender-search.vue +11 -11
- package/icons/toasts/check-circle-toast.vue +6 -6
- package/icons/toasts/warning-triangle-toast.vue +7 -7
- package/icons/trash.vue +13 -13
- package/icons/triangle.vue +10 -10
- package/icons/truck.vue +7 -7
- package/icons/user-square.vue +14 -14
- package/icons/user.vue +22 -22
- package/icons/users-focus.vue +8 -8
- package/icons/users-round.vue +3 -0
- package/icons/users-three.vue +7 -7
- package/icons/users.vue +8 -8
- package/icons/view-eye-open.vue +13 -0
- package/icons/warning/warning-circle.vue +29 -29
- package/icons/warning/warning-triangle-filled.vue +12 -12
- package/icons/warning/warning-triangle.vue +28 -28
- package/icons/whatsapp.vue +8 -8
- package/icons/work-bag.vue +11 -11
- package/icons/work-case.vue +9 -9
- package/icons/work-search.vue +10 -10
- package/icons/work.vue +5 -5
- package/icons/workflow.vue +3 -0
- package/icons/x-mark.vue +15 -15
- package/icons/yandex.vue +28 -28
- package/icons/zap.vue +3 -0
- package/illustrations/address-location.vue +38 -38
- package/illustrations/ball-with-chain.vue +120 -120
- package/illustrations/bill.vue +133 -133
- package/illustrations/buildings.vue +82 -82
- package/illustrations/calendar.vue +156 -156
- package/illustrations/chains.vue +152 -152
- package/illustrations/coin-percent.vue +126 -126
- package/illustrations/coins-stack.vue +202 -202
- package/illustrations/delete-dark.vue +31 -31
- package/illustrations/delete.vue +32 -32
- package/illustrations/doc-with-stamp.vue +126 -126
- package/illustrations/document.vue +64 -64
- package/illustrations/door.vue +74 -74
- package/illustrations/empty-box.vue +77 -77
- package/illustrations/empty-wallet.vue +161 -161
- package/illustrations/graph-in-coin.vue +119 -119
- package/illustrations/hammer.vue +156 -156
- package/illustrations/hand-cash.vue +108 -108
- package/illustrations/info.vue +39 -39
- package/illustrations/mail.vue +68 -68
- package/illustrations/ok.vue +62 -62
- package/illustrations/people-group.vue +237 -237
- package/illustrations/person-with-phone.vue +187 -187
- package/illustrations/person.vue +159 -159
- package/illustrations/phone-check.vue +90 -90
- package/illustrations/phone-payment-method.vue +223 -223
- package/illustrations/search.vue +14 -14
- package/illustrations/stop-hand.vue +77 -77
- package/illustrations/stop-sign.vue +34 -34
- package/illustrations/suit.vue +111 -111
- package/illustrations/suitcase.vue +105 -105
- package/illustrations/terminal-dark.vue +48 -48
- package/illustrations/terminal.vue +234 -234
- package/illustrations/trash-can.vue +108 -108
- package/illustrations/turn-on-tariff.vue +38 -38
- package/illustrations/two-persons.vue +169 -169
- package/lang/en.ts +881 -873
- package/lang/kk.ts +883 -875
- package/lang/ru.ts +884 -876
- package/layouts/default.vue +13 -13
- package/nuxt.config.ts +88 -88
- package/package.json +69 -69
- package/plugins/maska.ts +4 -4
- package/plugins/toast.client.ts +41 -58
- package/public/kaspi/logo.svg +4 -4
- package/shared/constans/pages.ts +96 -96
- package/tailwind.config.ts +194 -163
- package/tests/AButton.test.ts +81 -81
- package/tsconfig.json +6 -6
- package/utils/getMaxZindex.ts +25 -25
- package/utils/localizedNavigation.ts +36 -36
- package/utils/twMerge.ts +34 -0
- package/vitest.config.ts +14 -14
- package/components/elements/status-badge-v2/StatusBadgeV2.vue +0 -78
- package/components/elements/tree-select/components/tree-select-nodes.vue +0 -91
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
<script setup lang="ts"></script>
|
|
2
|
-
|
|
3
|
-
<template>
|
|
4
|
-
<div class="md:rounded-
|
|
5
|
-
<slot />
|
|
6
|
-
</div>
|
|
7
|
-
</template>
|
|
8
|
-
|
|
9
|
-
<style scoped>
|
|
10
|
-
|
|
11
|
-
</style>
|
|
1
|
+
<script setup lang="ts"></script>
|
|
2
|
+
|
|
3
|
+
<template>
|
|
4
|
+
<div class="md:rounded-md p-4 bg-white dark:bg-gray-900">
|
|
5
|
+
<slot />
|
|
6
|
+
</div>
|
|
7
|
+
</template>
|
|
8
|
+
|
|
9
|
+
<style scoped>
|
|
10
|
+
|
|
11
|
+
</style>
|
|
@@ -1,188 +1,188 @@
|
|
|
1
|
-
<script lang="ts" setup>
|
|
2
|
-
// TODO: refactor Ilkham
|
|
3
|
-
import {
|
|
4
|
-
import type {
|
|
5
|
-
import
|
|
6
|
-
import { NuxtLinkLocale} from '#components'
|
|
7
|
-
|
|
8
|
-
defineOptions({ name: 'AButton' })
|
|
9
|
-
|
|
10
|
-
interface Props {
|
|
11
|
-
variant?: 'primary' | 'success' | 'danger' | 'gray' | 'ghost'
|
|
12
|
-
view?: 'default' | 'outline' | 'transparent' | 'rounded'
|
|
13
|
-
size?: 'sm' | 'md' | 'lg' | 'xl' | '2xl'
|
|
14
|
-
form?: 'icon' | 'button'
|
|
15
|
-
icon?: Component
|
|
16
|
-
iconClass?: string
|
|
17
|
-
loading?: boolean
|
|
18
|
-
disabled?: boolean
|
|
19
|
-
block?: boolean
|
|
20
|
-
active?: boolean
|
|
21
|
-
to?: string
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
const props = withDefaults(defineProps<Props>(), {
|
|
25
|
-
variant: 'primary',
|
|
26
|
-
view: 'default',
|
|
27
|
-
size: 'lg',
|
|
28
|
-
form: 'button',
|
|
29
|
-
loading: false,
|
|
30
|
-
disabled: false,
|
|
31
|
-
block: false,
|
|
32
|
-
active: false,
|
|
33
|
-
iconClass: '',
|
|
34
|
-
to: ''
|
|
35
|
-
})
|
|
36
|
-
|
|
37
|
-
const classes = computed(() => [
|
|
38
|
-
'body-
|
|
39
|
-
props.block ? 'w-full' : '',
|
|
40
|
-
typeSwitchValues[props.view][props.variant],
|
|
41
|
-
sizeSwitchValues[props.form][props.size]
|
|
42
|
-
])
|
|
43
|
-
const disabledClasses = computed(() => [
|
|
44
|
-
'body-
|
|
45
|
-
props.block ? 'w-full' : '',
|
|
46
|
-
disabledTypeSwitchValues[props.view],
|
|
47
|
-
sizeSwitchValues[props.form][props.size]
|
|
48
|
-
])
|
|
49
|
-
|
|
50
|
-
const typeSwitchActiveValues: ViewSwitchValues = {
|
|
51
|
-
default: {
|
|
52
|
-
primary: 'bg-deepblue-900 text-white dark:bg-gray-200',
|
|
53
|
-
success: 'bg-deepblue-900 text-white dark:bg-gray-200',
|
|
54
|
-
danger: 'bg-deepblue-900 text-white dark:bg-gray-200 ',
|
|
55
|
-
gray: 'bg-deepblue-900 text-white dark:bg-gray-200 dark:text-gray-900 hover:text-deepblue-900 dark:hover:text-gray-200',
|
|
56
|
-
ghost:
|
|
57
|
-
'bg-deepblue-900 text-white dark:bg-gray-200 dark:text-gray-900 hover:text-deepblue-900 dark:hover:text-gray-200'
|
|
58
|
-
},
|
|
59
|
-
transparent: {
|
|
60
|
-
primary: 'bg-blue-700 text-white dark:bg-blue-500 dark:text-gray-900',
|
|
61
|
-
success: 'bg-green-500 text-white dark:bg-green-400 dark:text-gray-900',
|
|
62
|
-
danger: 'bg-red-500 text-white dark:bg-red-400 dark:text-gray-900',
|
|
63
|
-
gray: 'bg-deepblue-900 text-white dark:bg-gray-200 dark:text-gray-900 hover:text-deepblue-900 dark:hover:text-gray-200',
|
|
64
|
-
ghost:
|
|
65
|
-
'bg-white text-deepblue-900 dark:bg-gray-900 dark:text-gray-200 hover:text-deepblue-900 dark:hover:text-gray-200'
|
|
66
|
-
},
|
|
67
|
-
outline: {
|
|
68
|
-
primary: 'bg-blue-700 text-white dark:bg-blue-500 dark:text-gray-900',
|
|
69
|
-
success: 'bg-green-500 text-white dark:bg-green-400 dark:text-gray-900',
|
|
70
|
-
danger: 'bg-red-500 text-white dark:bg-red-400 dark:text-gray-900',
|
|
71
|
-
gray: 'bg-deepblue-900 text-white dark:bg-gray-200 dark:text-gray-900 hover:text-deepblue-900 dark:hover:text-gray-200',
|
|
72
|
-
ghost:
|
|
73
|
-
'bg-gray-500 text-white dark:bg-gray-500 dark:text-gray-900 hover:text-deepblue-900 dark:hover:text-gray-200'
|
|
74
|
-
},
|
|
75
|
-
rounded: {
|
|
76
|
-
primary: 'bg-deepblue-900 text-white dark:bg-gray-200',
|
|
77
|
-
success: 'bg-deepblue-900 text-white dark:bg-gray-200',
|
|
78
|
-
danger: 'bg-deepblue-900 text-white dark:bg-gray-200 ',
|
|
79
|
-
gray: 'bg-deepblue-900 text-white dark:bg-gray-200 dark:text-gray-900 hover:text-deepblue-900 dark:hover:text-gray-200',
|
|
80
|
-
ghost:
|
|
81
|
-
'bg-deepblue-900 text-white dark:bg-gray-200 dark:text-gray-900 hover:text-deepblue-900 dark:hover:text-gray-200'
|
|
82
|
-
},
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
const typeSwitchValues: ViewSwitchValues = {
|
|
86
|
-
default: {
|
|
87
|
-
primary:
|
|
88
|
-
'bg-blue-700 text-white hover:bg-blue-900 active:bg-deepblue-900 active:text-white dark:bg-blue-500 dark:text-gray-900 dark:hover:bg-blue-700 dark:active:bg-gray-200',
|
|
89
|
-
success:
|
|
90
|
-
'bg-green-500 text-white hover:bg-green-900 active:bg-deepblue-900 active:text-white dark:bg-green dark:text-gray-900 dark:hover:bg-green-300 dark:active:bg-gray-200',
|
|
91
|
-
danger:
|
|
92
|
-
'bg-red-500 text-white hover:bg-red-700 active:bg-deepblue-900 active:text-white dark:bg-red-400 dark:text-gray-900 dark:hover:bg-red-300 dark:active:bg-gray-200',
|
|
93
|
-
gray: 'bg-deepblue-900/5 text-deepblue-900 hover:bg-deepblue-900/10 active:bg-deepblue-900 active:text-white dark:bg-gray-200/5 dark:hover:bg-gray-200/10 dark:active:bg-gray-200 dark:text-gray-200 dark:active:text-gray-900',
|
|
94
|
-
ghost:
|
|
95
|
-
'bg-white text-deepblue-900 hover:bg-deepblue-900/5 active:bg-deepblue-900 active:text-white dark:bg-gray-900 dark:text-gray-200 dark:bg-gray-900 dark:hover:bg-gray-200/5 dark:active:bg-gray-200 dark:active:text-gray-900'
|
|
96
|
-
},
|
|
97
|
-
transparent: {
|
|
98
|
-
primary:
|
|
99
|
-
'text-blue-700 hover:bg-blue-100 active:bg-blue-700 active:text-white dark:text-blue-500 dark:hover:bg-blue-500/20 dark:active:bg-blue-500 dark:active:text-gray-900',
|
|
100
|
-
success:
|
|
101
|
-
'text-green-500 hover:bg-green-500/20 active:bg-green-500 active:text-white dark:text-green-400 dark:hover:bg-green-400/20 dark:active:bg-green-400 dark:active:text-gray-900',
|
|
102
|
-
danger:
|
|
103
|
-
'text-red-500 hover:bg-red-500/20 active:bg-red-500 active:text-white dark:text-red-400 dark:hover:bg-red-400/20 dark:active:bg-red-400 dark:active:text-gray-900',
|
|
104
|
-
gray: 'text-deepblue-900 hover:bg-deepblue-900/10 active:bg-deepblue-900 active:text-white dark:text-gray-200 dark:hover:bg-gray-200/5 dark:active:bg-gray-200 dark:active:text-gray-900',
|
|
105
|
-
ghost:
|
|
106
|
-
'text-white hover:bg-deepblue-900/10 active:bg-white active:text-deepblue-900 dark:text-gray-200 dark:hover:bg-gray-200/5 dark:active:bg-gray-900 dark:active:text-gray-200'
|
|
107
|
-
},
|
|
108
|
-
outline: {
|
|
109
|
-
primary:
|
|
110
|
-
'border border-blue-700 text-blue-700 hover:bg-blue-100 active:bg-blue-700 active:text-white dark:border-blue-500 dark:text-blue-500 dark:hover:bg-blue-500/20 dark:active:bg-blue-500 dark:active:text-gray-900',
|
|
111
|
-
success:
|
|
112
|
-
'border border-green-500 text-green-500 hover:bg-green-500/20 active:bg-green-500 active:text-white dark:border-green-400 dark:text-green-400 dark:hover:bg-green-400/20 dark:active:bg-green-400 dark:active:text-gray-900',
|
|
113
|
-
danger:
|
|
114
|
-
'border border-red-500 text-red-500 hover:bg-red-500/20 active:bg-red-500 active:text-white dark:text-red-400 dark:border-red-400 dark:hover:bg-red-400/20 dark:active:bg-red-400 dark:active:text-gray-900',
|
|
115
|
-
gray: 'border border-gray-500/50 text-deepblue-900 hover:bg-deepblue-900/10 active:bg-deepblue-900 active:text-white dark:border-gray-500/50 dark:text-gray-200 dark:hover:bg-gray-200/5 dark:active:bg-gray-200 dark:active:text-gray-900',
|
|
116
|
-
ghost:
|
|
117
|
-
'border border-white text-white hover:bg-deepblue-900 active:bg-gray-500 active:text-white dark:border-gray-200 dark:text-gray-200 dark:hover:bg-gray-200/5 dark:active:bg-gray-500 dark:active:text-gray-900'
|
|
118
|
-
},
|
|
119
|
-
rounded: {
|
|
120
|
-
primary:
|
|
121
|
-
'rounded-[32px] bg-blue-700 text-white hover:bg-blue-900 active:bg-deepblue-900 active:text-white dark:bg-blue-500 dark:text-gray-900 dark:hover:bg-blue-700 dark:active:bg-gray-200',
|
|
122
|
-
success:
|
|
123
|
-
'rounded-[32px] bg-green-500 text-white hover:bg-green-900 active:bg-deepblue-900 active:text-white dark:bg-green dark:text-gray-900 dark:hover:bg-green-300 dark:active:bg-gray-200',
|
|
124
|
-
danger:
|
|
125
|
-
'rounded-[32px] bg-red-500 text-white hover:bg-red-700 active:bg-deepblue-900 active:text-white dark:bg-red-400 dark:text-gray-900 dark:hover:bg-red-300 dark:active:bg-gray-200',
|
|
126
|
-
gray: 'rounded-[32px] bg-deepblue-900/5 text-deepblue-900 hover:bg-deepblue-900/10 active:bg-deepblue-900 active:text-white dark:bg-gray-200/5 dark:hover:bg-gray-200/10 dark:active:bg-gray-200 dark:text-gray-200 dark:active:text-gray-900',
|
|
127
|
-
ghost:
|
|
128
|
-
'rounded-[32px] bg-white text-deepblue-900 hover:bg-deepblue-900/5 active:bg-deepblue-900 active:text-white dark:bg-gray-900 dark:text-gray-200 dark:bg-gray-900 dark:hover:bg-gray-200/5 dark:active:bg-gray-200 dark:active:text-gray-900'
|
|
129
|
-
},
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
const disabledTypeSwitchValues: DisabledViewSwitchValues = {
|
|
133
|
-
default:
|
|
134
|
-
'bg-deepblue-900/5 text-deepblue-900/20 dark:bg-gray-200/5 dark:text-gray-200/20 pointer-events-none',
|
|
135
|
-
transparent: 'text-gray-500/50 pointer-events-none',
|
|
136
|
-
outline: 'border border-gray-500/50 text-gray-500/50 pointer-events-none'
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
const sizeSwitchValues: SizeSwitchValues = {
|
|
140
|
-
icon: {
|
|
141
|
-
sm: 'p-1 text-base',
|
|
142
|
-
md: 'p-2 text-base',
|
|
143
|
-
lg: 'p-2 text-2xl',
|
|
144
|
-
xl: 'p-4 text-3xl',
|
|
145
|
-
},
|
|
146
|
-
button: {
|
|
147
|
-
sm: 'px-4 py-1.5 leading-4 !h-[28px]',
|
|
148
|
-
md: 'px-4 py-1.5 !h-[32px]',
|
|
149
|
-
lg: 'px-4 py-2.5',
|
|
150
|
-
xl: 'px-8 py-2.5',
|
|
151
|
-
'2xl': 'px-6 py-[14px] text-xl',
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
const buttonClasses = computed(() =>
|
|
156
|
-
twMerge(
|
|
157
|
-
twJoin(
|
|
158
|
-
props.disabled ? disabledClasses.value : classes.value,
|
|
159
|
-
props.active ? typeSwitchActiveValues[props.view][props.variant] : '',
|
|
160
|
-
props.to ? 'inline-block' : ''
|
|
161
|
-
)
|
|
162
|
-
)
|
|
163
|
-
)
|
|
164
|
-
</script>
|
|
165
|
-
<template>
|
|
166
|
-
<component
|
|
167
|
-
:is="to ? NuxtLinkLocale : 'button'"
|
|
168
|
-
:class="[buttonClasses, 'relative h-fit transition flex items-center justify-center']"
|
|
169
|
-
:disabled="disabled"
|
|
170
|
-
:to="to"
|
|
171
|
-
>
|
|
172
|
-
<span
|
|
173
|
-
:class="[
|
|
174
|
-
{ 'opacity-0': loading },
|
|
175
|
-
'flex items-center justify-center gap-2 whitespace-nowrap'
|
|
176
|
-
]"
|
|
177
|
-
>
|
|
178
|
-
<component :is="icon" :class="[`${iconClass}`]" />
|
|
179
|
-
<slot />
|
|
180
|
-
</span>
|
|
181
|
-
<span
|
|
182
|
-
v-if="loading"
|
|
183
|
-
class="absolute left-1/2 top-1/2 flex -translate-x-1/2 -translate-y-1/2 items-center justify-center"
|
|
184
|
-
>
|
|
185
|
-
<a-icon-loader-circle class="animate-spin"/>
|
|
186
|
-
</span>
|
|
187
|
-
</component>
|
|
188
|
-
</template>
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
// TODO: refactor Ilkham
|
|
3
|
+
import type { Component } from 'vue'
|
|
4
|
+
import type { DisabledViewSwitchValues, SizeSwitchValues, ViewSwitchValues } from './types'
|
|
5
|
+
import { twJoin, twMerge } from '#adata-ui/utils/twMerge'
|
|
6
|
+
import { NuxtLinkLocale} from '#components'
|
|
7
|
+
|
|
8
|
+
defineOptions({ name: 'AButton' })
|
|
9
|
+
|
|
10
|
+
interface Props {
|
|
11
|
+
variant?: 'primary' | 'success' | 'danger' | 'gray' | 'ghost'
|
|
12
|
+
view?: 'default' | 'outline' | 'transparent' | 'rounded'
|
|
13
|
+
size?: 'sm' | 'md' | 'lg' | 'xl' | '2xl'
|
|
14
|
+
form?: 'icon' | 'button'
|
|
15
|
+
icon?: Component
|
|
16
|
+
iconClass?: string
|
|
17
|
+
loading?: boolean
|
|
18
|
+
disabled?: boolean
|
|
19
|
+
block?: boolean
|
|
20
|
+
active?: boolean
|
|
21
|
+
to?: string
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const props = withDefaults(defineProps<Props>(), {
|
|
25
|
+
variant: 'primary',
|
|
26
|
+
view: 'default',
|
|
27
|
+
size: 'lg',
|
|
28
|
+
form: 'button',
|
|
29
|
+
loading: false,
|
|
30
|
+
disabled: false,
|
|
31
|
+
block: false,
|
|
32
|
+
active: false,
|
|
33
|
+
iconClass: '',
|
|
34
|
+
to: ''
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
const classes = computed(() => [
|
|
38
|
+
'text-body-md-strong rounded-sm cursor-pointer outline-none transition duration-200 select-none',
|
|
39
|
+
props.block ? 'w-full' : '',
|
|
40
|
+
typeSwitchValues[props.view][props.variant],
|
|
41
|
+
sizeSwitchValues[props.form][props.size]
|
|
42
|
+
])
|
|
43
|
+
const disabledClasses = computed(() => [
|
|
44
|
+
'text-body-md-strong rounded-sm outline-none transition duration-200 select-none',
|
|
45
|
+
props.block ? 'w-full' : '',
|
|
46
|
+
disabledTypeSwitchValues[props.view],
|
|
47
|
+
sizeSwitchValues[props.form][props.size]
|
|
48
|
+
])
|
|
49
|
+
|
|
50
|
+
const typeSwitchActiveValues: ViewSwitchValues = {
|
|
51
|
+
default: {
|
|
52
|
+
primary: 'bg-deepblue-900 text-white dark:bg-gray-200',
|
|
53
|
+
success: 'bg-deepblue-900 text-white dark:bg-gray-200',
|
|
54
|
+
danger: 'bg-deepblue-900 text-white dark:bg-gray-200 ',
|
|
55
|
+
gray: 'bg-deepblue-900 text-white dark:bg-gray-200 dark:text-gray-900 hover:text-deepblue-900 dark:hover:text-gray-200',
|
|
56
|
+
ghost:
|
|
57
|
+
'bg-deepblue-900 text-white dark:bg-gray-200 dark:text-gray-900 hover:text-deepblue-900 dark:hover:text-gray-200'
|
|
58
|
+
},
|
|
59
|
+
transparent: {
|
|
60
|
+
primary: 'bg-blue-700 text-white dark:bg-blue-500 dark:text-gray-900',
|
|
61
|
+
success: 'bg-green-500 text-white dark:bg-green-400 dark:text-gray-900',
|
|
62
|
+
danger: 'bg-red-500 text-white dark:bg-red-400 dark:text-gray-900',
|
|
63
|
+
gray: 'bg-deepblue-900 text-white dark:bg-gray-200 dark:text-gray-900 hover:text-deepblue-900 dark:hover:text-gray-200',
|
|
64
|
+
ghost:
|
|
65
|
+
'bg-white text-deepblue-900 dark:bg-gray-900 dark:text-gray-200 hover:text-deepblue-900 dark:hover:text-gray-200'
|
|
66
|
+
},
|
|
67
|
+
outline: {
|
|
68
|
+
primary: 'bg-blue-700 text-white dark:bg-blue-500 dark:text-gray-900',
|
|
69
|
+
success: 'bg-green-500 text-white dark:bg-green-400 dark:text-gray-900',
|
|
70
|
+
danger: 'bg-red-500 text-white dark:bg-red-400 dark:text-gray-900',
|
|
71
|
+
gray: 'bg-deepblue-900 text-white dark:bg-gray-200 dark:text-gray-900 hover:text-deepblue-900 dark:hover:text-gray-200',
|
|
72
|
+
ghost:
|
|
73
|
+
'bg-gray-500 text-white dark:bg-gray-500 dark:text-gray-900 hover:text-deepblue-900 dark:hover:text-gray-200'
|
|
74
|
+
},
|
|
75
|
+
rounded: {
|
|
76
|
+
primary: 'bg-deepblue-900 text-white dark:bg-gray-200',
|
|
77
|
+
success: 'bg-deepblue-900 text-white dark:bg-gray-200',
|
|
78
|
+
danger: 'bg-deepblue-900 text-white dark:bg-gray-200 ',
|
|
79
|
+
gray: 'bg-deepblue-900 text-white dark:bg-gray-200 dark:text-gray-900 hover:text-deepblue-900 dark:hover:text-gray-200',
|
|
80
|
+
ghost:
|
|
81
|
+
'bg-deepblue-900 text-white dark:bg-gray-200 dark:text-gray-900 hover:text-deepblue-900 dark:hover:text-gray-200'
|
|
82
|
+
},
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
const typeSwitchValues: ViewSwitchValues = {
|
|
86
|
+
default: {
|
|
87
|
+
primary:
|
|
88
|
+
'bg-blue-700 text-white hover:bg-blue-900 active:bg-deepblue-900 active:text-white dark:bg-blue-500 dark:text-gray-900 dark:hover:bg-blue-700 dark:active:bg-gray-200',
|
|
89
|
+
success:
|
|
90
|
+
'bg-green-500 text-white hover:bg-green-900 active:bg-deepblue-900 active:text-white dark:bg-green dark:text-gray-900 dark:hover:bg-green-300 dark:active:bg-gray-200',
|
|
91
|
+
danger:
|
|
92
|
+
'bg-red-500 text-white hover:bg-red-700 active:bg-deepblue-900 active:text-white dark:bg-red-400 dark:text-gray-900 dark:hover:bg-red-300 dark:active:bg-gray-200',
|
|
93
|
+
gray: 'bg-deepblue-900/5 text-deepblue-900 hover:bg-deepblue-900/10 active:bg-deepblue-900 active:text-white dark:bg-gray-200/5 dark:hover:bg-gray-200/10 dark:active:bg-gray-200 dark:text-gray-200 dark:active:text-gray-900',
|
|
94
|
+
ghost:
|
|
95
|
+
'bg-white text-deepblue-900 hover:bg-deepblue-900/5 active:bg-deepblue-900 active:text-white dark:bg-gray-900 dark:text-gray-200 dark:bg-gray-900 dark:hover:bg-gray-200/5 dark:active:bg-gray-200 dark:active:text-gray-900'
|
|
96
|
+
},
|
|
97
|
+
transparent: {
|
|
98
|
+
primary:
|
|
99
|
+
'text-blue-700 hover:bg-blue-100 active:bg-blue-700 active:text-white dark:text-blue-500 dark:hover:bg-blue-500/20 dark:active:bg-blue-500 dark:active:text-gray-900',
|
|
100
|
+
success:
|
|
101
|
+
'text-green-500 hover:bg-green-500/20 active:bg-green-500 active:text-white dark:text-green-400 dark:hover:bg-green-400/20 dark:active:bg-green-400 dark:active:text-gray-900',
|
|
102
|
+
danger:
|
|
103
|
+
'text-red-500 hover:bg-red-500/20 active:bg-red-500 active:text-white dark:text-red-400 dark:hover:bg-red-400/20 dark:active:bg-red-400 dark:active:text-gray-900',
|
|
104
|
+
gray: 'text-deepblue-900 hover:bg-deepblue-900/10 active:bg-deepblue-900 active:text-white dark:text-gray-200 dark:hover:bg-gray-200/5 dark:active:bg-gray-200 dark:active:text-gray-900',
|
|
105
|
+
ghost:
|
|
106
|
+
'text-white hover:bg-deepblue-900/10 active:bg-white active:text-deepblue-900 dark:text-gray-200 dark:hover:bg-gray-200/5 dark:active:bg-gray-900 dark:active:text-gray-200'
|
|
107
|
+
},
|
|
108
|
+
outline: {
|
|
109
|
+
primary:
|
|
110
|
+
'border border-blue-700 text-blue-700 hover:bg-blue-100 active:bg-blue-700 active:text-white dark:border-blue-500 dark:text-blue-500 dark:hover:bg-blue-500/20 dark:active:bg-blue-500 dark:active:text-gray-900',
|
|
111
|
+
success:
|
|
112
|
+
'border border-green-500 text-green-500 hover:bg-green-500/20 active:bg-green-500 active:text-white dark:border-green-400 dark:text-green-400 dark:hover:bg-green-400/20 dark:active:bg-green-400 dark:active:text-gray-900',
|
|
113
|
+
danger:
|
|
114
|
+
'border border-red-500 text-red-500 hover:bg-red-500/20 active:bg-red-500 active:text-white dark:text-red-400 dark:border-red-400 dark:hover:bg-red-400/20 dark:active:bg-red-400 dark:active:text-gray-900',
|
|
115
|
+
gray: 'border border-gray-500/50 text-deepblue-900 hover:bg-deepblue-900/10 active:bg-deepblue-900 active:text-white dark:border-gray-500/50 dark:text-gray-200 dark:hover:bg-gray-200/5 dark:active:bg-gray-200 dark:active:text-gray-900',
|
|
116
|
+
ghost:
|
|
117
|
+
'border border-white text-white hover:bg-deepblue-900 active:bg-gray-500 active:text-white dark:border-gray-200 dark:text-gray-200 dark:hover:bg-gray-200/5 dark:active:bg-gray-500 dark:active:text-gray-900'
|
|
118
|
+
},
|
|
119
|
+
rounded: {
|
|
120
|
+
primary:
|
|
121
|
+
'rounded-[32px] bg-blue-700 text-white hover:bg-blue-900 active:bg-deepblue-900 active:text-white dark:bg-blue-500 dark:text-gray-900 dark:hover:bg-blue-700 dark:active:bg-gray-200',
|
|
122
|
+
success:
|
|
123
|
+
'rounded-[32px] bg-green-500 text-white hover:bg-green-900 active:bg-deepblue-900 active:text-white dark:bg-green dark:text-gray-900 dark:hover:bg-green-300 dark:active:bg-gray-200',
|
|
124
|
+
danger:
|
|
125
|
+
'rounded-[32px] bg-red-500 text-white hover:bg-red-700 active:bg-deepblue-900 active:text-white dark:bg-red-400 dark:text-gray-900 dark:hover:bg-red-300 dark:active:bg-gray-200',
|
|
126
|
+
gray: 'rounded-[32px] bg-deepblue-900/5 text-deepblue-900 hover:bg-deepblue-900/10 active:bg-deepblue-900 active:text-white dark:bg-gray-200/5 dark:hover:bg-gray-200/10 dark:active:bg-gray-200 dark:text-gray-200 dark:active:text-gray-900',
|
|
127
|
+
ghost:
|
|
128
|
+
'rounded-[32px] bg-white text-deepblue-900 hover:bg-deepblue-900/5 active:bg-deepblue-900 active:text-white dark:bg-gray-900 dark:text-gray-200 dark:bg-gray-900 dark:hover:bg-gray-200/5 dark:active:bg-gray-200 dark:active:text-gray-900'
|
|
129
|
+
},
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
const disabledTypeSwitchValues: DisabledViewSwitchValues = {
|
|
133
|
+
default:
|
|
134
|
+
'bg-deepblue-900/5 text-deepblue-900/20 dark:bg-gray-200/5 dark:text-gray-200/20 pointer-events-none',
|
|
135
|
+
transparent: 'text-gray-500/50 pointer-events-none',
|
|
136
|
+
outline: 'border border-gray-500/50 text-gray-500/50 pointer-events-none'
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
const sizeSwitchValues: SizeSwitchValues = {
|
|
140
|
+
icon: {
|
|
141
|
+
sm: 'p-1 text-base',
|
|
142
|
+
md: 'p-2 text-base',
|
|
143
|
+
lg: 'p-2 text-2xl',
|
|
144
|
+
xl: 'p-4 text-3xl',
|
|
145
|
+
},
|
|
146
|
+
button: {
|
|
147
|
+
sm: 'px-4 py-1.5 leading-4 !h-[28px]',
|
|
148
|
+
md: 'px-4 py-1.5 !h-[32px]',
|
|
149
|
+
lg: 'px-4 py-2.5',
|
|
150
|
+
xl: 'px-8 py-2.5',
|
|
151
|
+
'2xl': 'px-6 py-[14px] text-xl',
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
const buttonClasses = computed(() =>
|
|
156
|
+
twMerge(
|
|
157
|
+
twJoin(
|
|
158
|
+
props.disabled ? disabledClasses.value : classes.value,
|
|
159
|
+
props.active ? typeSwitchActiveValues[props.view][props.variant] : '',
|
|
160
|
+
props.to ? 'inline-block' : ''
|
|
161
|
+
)
|
|
162
|
+
)
|
|
163
|
+
)
|
|
164
|
+
</script>
|
|
165
|
+
<template>
|
|
166
|
+
<component
|
|
167
|
+
:is="to ? NuxtLinkLocale : 'button'"
|
|
168
|
+
:class="[buttonClasses, 'relative h-fit transition flex items-center justify-center']"
|
|
169
|
+
:disabled="disabled"
|
|
170
|
+
:to="to"
|
|
171
|
+
>
|
|
172
|
+
<span
|
|
173
|
+
:class="[
|
|
174
|
+
{ 'opacity-0': loading },
|
|
175
|
+
'flex items-center justify-center gap-2 whitespace-nowrap'
|
|
176
|
+
]"
|
|
177
|
+
>
|
|
178
|
+
<component :is="icon" :class="[`${iconClass}`]" />
|
|
179
|
+
<slot />
|
|
180
|
+
</span>
|
|
181
|
+
<span
|
|
182
|
+
v-if="loading"
|
|
183
|
+
class="absolute left-1/2 top-1/2 flex -translate-x-1/2 -translate-y-1/2 items-center justify-center"
|
|
184
|
+
>
|
|
185
|
+
<a-icon-loader-circle class="animate-spin"/>
|
|
186
|
+
</span>
|
|
187
|
+
</component>
|
|
188
|
+
</template>
|