adata-ui 2.1.40 → 2.1.41-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/-error.vue +2 -2
- package/.playground/app.vue +13 -13
- package/.playground/nuxt.config.ts +1 -1
- package/CLAUDE.md +63 -0
- package/assets/styles/main.css +12 -0
- package/assets/styles/theme.css +583 -0
- package/assets/styles/ui.css +247 -0
- package/components/elements/a-select-row/ASelectRowV2.vue +13 -17
- package/components/elements/a-select-row/index.vue +13 -12
- package/components/elements/accordion/AAccordion.vue +2 -2
- package/components/elements/accordion/AAccordionGroup/AAccordionGroup.vue +1 -1
- package/components/elements/accordion/AAccordionGroup/ui.config.ts +4 -4
- package/components/elements/accordion/ui.config.ts +4 -4
- package/components/elements/alert/AAlert.vue +5 -5
- package/components/elements/bg-block/ABgBlock.vue +1 -1
- package/components/elements/button/AButton.vue +48 -45
- package/components/elements/button/AButtonV2.vue +74 -30
- package/components/elements/button-login/index.vue +2 -1
- package/components/elements/carousel/config.ui.ts +2 -2
- package/components/elements/chip-wrapper/AChipWrapper.vue +4 -3
- package/components/elements/chips/AChips.vue +4 -3
- package/components/elements/companies/AOurClients.vue +1 -1
- package/components/elements/count-up/ACountUp.vue +54 -0
- package/components/elements/curve-block/ACurveBlock.vue +15 -48
- package/components/elements/curve-block-v2/ACurveBlockV2.vue +60 -25
- package/components/elements/digit-badge/ADigitBadge.vue +17 -16
- package/components/elements/empty-box/empty-box-V2.vue +92 -0
- package/components/elements/error-template/index.vue +99 -31
- package/components/elements/feature-description/AFeatureDescription.vue +8 -8
- package/components/elements/illustrations/noAccess.vue +1 -1
- package/components/elements/infinite-carousel/AInfiniteCarousel.vue +44 -16
- package/components/elements/leave-note/ALeaveNote.vue +2 -2
- package/components/elements/pagination/APagination.vue +8 -8
- package/components/elements/section-heading/ASectionHeading.vue +35 -0
- package/components/elements/segmented/ASegmentedV2.vue +24 -21
- package/components/elements/select/ASelect.vue +28 -27
- package/components/elements/select/ASelectMobile.vue +5 -5
- package/components/elements/select/ASelectV2.vue +20 -28
- package/components/elements/select/ui/select-button.vue +8 -8
- package/components/elements/select/ui/select-list.vue +2 -2
- package/components/elements/show-more/AShowMore.vue +2 -2
- package/components/elements/show-more/AShowMoreV2.vue +3 -3
- package/components/elements/skeleton/ASkeleton.vue +1 -1
- package/components/elements/slider/ASlider.vue +3 -2
- package/components/elements/slider/ASliderV2.vue +182 -0
- package/components/elements/star-rating/AStarRating.vue +2 -2
- package/components/elements/status-badge/AStatusBadge.vue +40 -36
- package/components/elements/step-slider/AStepSliderColCard.vue +77 -39
- package/components/elements/step-slider/AStepSliderColNumber.vue +74 -53
- package/components/elements/table/table.config.ts +8 -8
- package/components/elements/tree-select/components/ATreeSelectNode.vue +4 -4
- package/components/elements/tree-select-mobile/components/ATreeSelectNodesMobile.vue +3 -3
- package/components/elements/tree-select-modal/ATreeSelectModal.vue +4 -4
- package/components/features/color-mode/AColorMode.client.vue +2 -24
- package/components/features/dropdown/ADropdownV2.vue +1 -1
- package/components/features/lang-switcher/lang-switcher.vue +6 -6
- package/components/features/payment/banner/BasicPlusLimitBanner.vue +3 -23
- package/components/features/payment/banner/PaymentBanner.vue +3 -23
- package/components/features/payment/banner/UpSellBanner.vue +1 -21
- package/components/features/payment/process/PaymentKaspiQrSidePanel.vue +8 -7
- package/components/features/payment/process/PaymentKaspiRedirectSidePanel.vue +5 -5
- package/components/features/payment/process/PaymentMethodSidePanel.vue +12 -12
- package/components/features/payment/process/PaymentTopUpSidePanel.vue +6 -6
- package/components/features/pk-mobile-services/APkMobileServices.vue +14 -43
- package/components/features//321/201hange-version/AChangeVersion.vue +1 -1
- package/components/forms/checkbox/ACheckbox.vue +8 -8
- package/components/forms/checkbox/ACheckboxV2.vue +8 -8
- package/components/forms/feedback-form/FeedbackForm.vue +8 -8
- package/components/forms/feedback-form/FeedbackFormV2.vue +9 -8
- package/components/forms/input/AInputV2.vue +39 -25
- package/components/forms/input/button/AInputButton.vue +1 -1
- package/components/forms/input/date/AInputDate.vue +13 -9
- package/components/forms/input/password/AInputPassword.vue +1 -1
- package/components/forms/input/standard/AInputStandard.vue +23 -14
- package/components/forms/input/textarea/ATextarea.vue +15 -11
- package/components/forms/input/textarea/ATextareaV2.vue +18 -13
- package/components/forms/radio-button/ARadioButton.vue +4 -4
- package/components/forms/request-demo/ARequestDemo.vue +5 -5
- package/components/forms/toggle/AToggle.vue +8 -7
- package/components/forms/toggle/AToggleV2.vue +7 -6
- package/components/modals/AConfirmationEmail.vue +3 -3
- package/components/modals/AboutTariffModal.vue +10 -9
- package/components/modals/AnotherDeviceModal.vue +11 -10
- package/components/modals/ApplicationAcceptedModal.vue +3 -2
- package/components/modals/ConnectingTariffModal.vue +1 -1
- package/components/modals/ContactsMobileModel.vue +5 -5
- package/components/modals/ContentNavigationModal.vue +8 -7
- package/components/modals/Insufficient-funds-modal.vue +4 -4
- package/components/modals/LimitReachedModal.vue +18 -7
- package/components/modals/NoAccessModal.vue +7 -3
- package/components/modals/PaymentMethodModal.vue +4 -4
- package/components/modals/RedirectsBanksModal.vue +4 -4
- package/components/modals/ReplenishModal.vue +2 -2
- package/components/modals/ReportBugConfirmModal.vue +2 -2
- package/components/modals/ReportBugModal.vue +2 -2
- package/components/modals/Resend.vue +4 -4
- package/components/modals/SubmitApplicationModal.vue +1 -5
- package/components/modals/id/AuthModal.vue +27 -47
- package/components/modals/id/IdAutoLogoutModal.vue +23 -24
- package/components/modals/id/IdBanner.vue +4 -24
- package/components/modals/id/IdConfirmAccountOtpModal.vue +5 -4
- package/components/modals/id/IdConfirmSuccessfulModal.vue +3 -3
- package/components/modals/id/IdLoginModal.vue +8 -8
- package/components/modals/id/IdModals.vue +1 -3
- package/components/modals/id/IdNewPasswordModal.vue +3 -3
- package/components/modals/id/IdOtpInput.vue +3 -3
- package/components/modals/id/IdPasswordSuccessfulModal.vue +3 -3
- package/components/modals/id/IdRecoveryModal.vue +3 -3
- package/components/modals/id/IdRegistrationModal.vue +4 -4
- package/components/modals/id/IdResetPasswordOtpModal.vue +5 -4
- package/components/modals/id/IdTwoFactorModal.vue +3 -2
- package/components/navigation/bottom-navigation/ABottomNavigation.vue +7 -7
- package/components/navigation/breadcrumbs/ABreadcrumbs.vue +4 -4
- package/components/navigation/footer/AFooter.vue +2 -2
- package/components/navigation/footer/ui/a-footer-accordion.vue +1 -1
- package/components/navigation/header/AHeader.vue +11 -11
- package/components/navigation/header/AlmatyContacts.vue +7 -7
- package/components/navigation/header/AstanaContacts.vue +4 -4
- package/components/navigation/header/CardGallery.vue +8 -7
- package/components/navigation/header/ContactMenu.vue +1 -1
- package/components/navigation/header/HeaderLink.vue +5 -5
- package/components/navigation/header/HeaderUsage.vue +14 -14
- package/components/navigation/header/ListItem.vue +4 -3
- package/components/navigation/header/NavCard.vue +6 -5
- package/components/navigation/header/NavList.vue +9 -8
- package/components/navigation/header/NotificationsMenu.vue +10 -10
- package/components/navigation/header/ProductMenu.vue +10 -9
- package/components/navigation/header/ProfileMenu.vue +13 -12
- package/components/navigation/header/SystemNotification.vue +4 -4
- package/components/navigation/line-tabs/ALineTabs.vue +10 -9
- package/components/navigation/pill-tabs/APillTabs.vue +18 -16
- package/components/navigation/pill-tabs/APillTabsV2.vue +40 -25
- package/components/navigation/side-navigation/ASideNavigation.vue +3 -3
- package/components/overlays/drawer/ADrawerV2.vue +12 -11
- package/components/overlays/modal/AModal.vue +4 -4
- package/components/overlays/modal/AModalV2.vue +17 -13
- package/components/overlays/side-panel/ASidePanel.vue +7 -7
- package/components/overlays/sideover/ASlideover.vue +4 -4
- package/components/overlays/tooltip/ATooltip.vue +3 -2
- package/components/overlays/tooltip/ATooltipV2.vue +2 -2
- package/composables/highlight.ts +2 -1
- package/eslint.config.mjs +14 -1
- package/icons/arrow/arrow-left.vue +14 -0
- package/icons/arrow-currency-gray.vue +1 -1
- package/icons/arrow-currency-green.vue +1 -1
- package/icons/arrow-currency-red.vue +1 -1
- package/icons/avatar.vue +1 -1
- package/icons/bar-chart-3.vue +3 -0
- package/icons/book-open.vue +3 -0
- package/icons/bookmark/bookmark-filled.vue +1 -0
- package/icons/braces.vue +3 -0
- package/icons/check/check-outline.vue +3 -0
- package/icons/chevron/chevron-down-outline.vue +3 -0
- package/icons/clipboard-list.vue +3 -0
- package/icons/clock-outline.vue +3 -0
- package/icons/company-egov-small.vue +1 -1
- package/icons/database.vue +3 -0
- package/icons/download-outline.vue +3 -0
- package/icons/download.vue +1 -1
- package/icons/egov.vue +1 -1
- package/icons/elicense.vue +1 -1
- package/icons/file-json.vue +3 -0
- package/icons/file-search.vue +3 -0
- package/icons/file-text.vue +3 -0
- package/icons/flask-conical.vue +3 -0
- package/icons/folder-open.vue +3 -0
- package/icons/gift-outline.vue +3 -0
- package/icons/globe-2.vue +3 -0
- package/icons/graph-loading.vue +2 -2
- package/icons/hand/hand-thumb-up-filled.vue +1 -1
- package/icons/home.vue +14 -0
- package/icons/invoice.vue +1 -0
- package/icons/key-round.vue +3 -0
- package/icons/letter/letter-a.vue +4 -2
- package/icons/letter/letter-b.vue +2 -2
- package/icons/letter/letter-c.vue +2 -2
- package/icons/letter/letter-d.vue +2 -2
- package/icons/letter/letter-e.vue +2 -2
- package/icons/logo.vue +1 -1
- package/icons/main-filter.vue +1 -1
- package/icons/menu.vue +4 -4
- package/icons/message/message.vue +1 -1
- package/icons/messages-square.vue +3 -0
- package/icons/more.vue +1 -1
- package/icons/payment/payment-card.vue +2 -2
- package/icons/radio/radio-check.vue +1 -1
- package/icons/robot-outline.vue +3 -0
- package/icons/scales/scale-outline.vue +3 -0
- package/icons/search-outline.vue +3 -0
- package/icons/send.vue +3 -0
- package/icons/star/star-filled.vue +1 -0
- package/icons/star/star-half-filled.vue +1 -0
- package/icons/sun.vue +1 -0
- package/icons/terminal.vue +3 -0
- package/icons/toasts/warning-triangle-toast.vue +1 -0
- package/icons/triangle-alert.vue +3 -0
- package/icons/users-outline.vue +3 -0
- package/icons/webhook.vue +3 -0
- package/icons/x-outline.vue +3 -0
- package/icons/yandex.vue +2 -1
- package/illustrations/address-location.vue +2 -2
- package/illustrations/award-badge.vue +105 -0
- package/illustrations/ball-with-chain.vue +7 -7
- package/illustrations/bill.vue +5 -5
- package/illustrations/buildings.vue +4 -4
- package/illustrations/calendar.vue +11 -11
- package/illustrations/chains.vue +12 -12
- package/illustrations/coin-percent.vue +3 -3
- package/illustrations/coins-stack.vue +4 -4
- package/illustrations/delete-dark.vue +1 -0
- package/illustrations/delete.vue +1 -0
- package/illustrations/doc-with-stamp.vue +5 -5
- package/illustrations/document.vue +3 -3
- package/illustrations/door.vue +79 -68
- package/illustrations/empty-badge-check.vue +20 -0
- package/illustrations/empty-ban.vue +18 -0
- package/illustrations/empty-box.vue +5 -5
- package/illustrations/empty-filter.vue +20 -0
- package/illustrations/empty-inbox.vue +19 -0
- package/illustrations/empty-scale.vue +22 -0
- package/illustrations/empty-search-x.vue +21 -0
- package/illustrations/empty-shopping-cart.vue +21 -0
- package/illustrations/empty-users-round.vue +20 -0
- package/illustrations/empty-wallet.vue +121 -155
- package/illustrations/graph-in-coin.vue +2 -2
- package/illustrations/hammer.vue +5 -5
- package/illustrations/hand-cash.vue +1 -1
- package/illustrations/info.vue +49 -36
- package/illustrations/mail-active.vue +86 -0
- package/illustrations/mail.vue +4 -4
- package/illustrations/no-access.vue +92 -0
- package/illustrations/ok.vue +86 -58
- package/illustrations/people-group.vue +1 -1
- package/illustrations/person-with-phone.vue +5 -5
- package/illustrations/person.vue +3 -3
- package/illustrations/phone-check.vue +104 -84
- package/illustrations/phone-payment-method.vue +1 -1
- package/illustrations/shield-user.vue +94 -0
- package/illustrations/stop-hand.vue +78 -71
- package/illustrations/stop-sign.vue +1 -1
- package/illustrations/suit.vue +93 -107
- package/illustrations/suitcase.vue +6 -6
- package/illustrations/terminal.vue +94 -228
- package/illustrations/trash-can.vue +60 -102
- package/illustrations/turn-on-tariff.vue +2 -2
- package/illustrations/two-persons.vue +2 -2
- package/lang/en.ts +25 -29
- package/lang/kk.ts +24 -28
- package/lang/ru.ts +24 -29
- package/nuxt.config.ts +11 -4
- package/package.json +7 -12
- package/assets/styles/index.scss +0 -166
- package/assets/styles/modules/_base.scss +0 -5
- package/assets/styles/modules/_typography.scss +0 -152
- package/components/elements/error-template/types.ts +0 -23
- package/illustrations/terminal-dark.vue +0 -48
- package/tailwind.config.ts +0 -194
- package/tests/AButton.test.ts +0 -81
|
@@ -46,17 +46,17 @@ const range = defineModel<{
|
|
|
46
46
|
const uiConfig = {
|
|
47
47
|
wrapper: 'transition duration-500 w-full',
|
|
48
48
|
"input-wrapper": {
|
|
49
|
-
base: 'relative inline-block w-full text-
|
|
49
|
+
base: 'relative inline-block w-full text-body-md sm:min-w-full'
|
|
50
50
|
},
|
|
51
|
-
base: 'w-full border-0 rounded-sm text-
|
|
51
|
+
base: 'w-full border-0 rounded-sm text-primary mt-0 hover:outline-1 hover:outline-(--border-color-focus) focus:outline-1 focus:outline-(--border-color-focus)',
|
|
52
52
|
size: {
|
|
53
53
|
sm: 'h-8 px-4 py-1.5 sm',
|
|
54
54
|
md: 'h-10 px-4 pb-1.5 pt-[18px] md'
|
|
55
55
|
},
|
|
56
|
-
color: 'bg-
|
|
57
|
-
error: 'outline outline-1 outline-
|
|
56
|
+
color: 'bg-muted',
|
|
57
|
+
error: 'outline outline-1 outline-(--border-color-danger) focus:outline-0 focus:border-danger hover:border-danger',
|
|
58
58
|
label: {
|
|
59
|
-
base: 'absolute left-4 top-[50%]
|
|
59
|
+
base: 'absolute left-4 top-[50%] text-secondary pointer-events-none transition-all ease duration-300 whitespace-nowrap',
|
|
60
60
|
'move-label': '!left-10'
|
|
61
61
|
},
|
|
62
62
|
default: {
|
|
@@ -139,23 +139,23 @@ const labelClass = computed(() => twMerge(twJoin(
|
|
|
139
139
|
<span class="text">{{ label }}</span>
|
|
140
140
|
<span
|
|
141
141
|
v-if="required"
|
|
142
|
-
class="text-
|
|
142
|
+
class="text-danger"
|
|
143
143
|
> *</span>
|
|
144
144
|
</label>
|
|
145
145
|
|
|
146
146
|
<button
|
|
147
147
|
v-if="isClearable"
|
|
148
|
-
class="
|
|
148
|
+
class="pointer-events-click absolute right-12 top-1/2 translate-y-[-50%] transform rounded-full bg-badge p-1 text-2xl hover:opacity-80"
|
|
149
149
|
type="button"
|
|
150
150
|
@click="date = new Date()"
|
|
151
151
|
>
|
|
152
152
|
<a-icon-x-mark
|
|
153
153
|
filled
|
|
154
|
-
class="!mb-0 fill-
|
|
154
|
+
class="!mb-0 fill-icon-default"
|
|
155
155
|
/>
|
|
156
156
|
</button>
|
|
157
157
|
<button
|
|
158
|
-
class="absolute top-1/2 right-4 text-
|
|
158
|
+
class="absolute top-1/2 right-4 text-secondary fill-icon-secondary pointer-events-click text-2xl transform translate-y-[-50%] hover:opacity-80 disabled:pointer-events-none"
|
|
159
159
|
type="button"
|
|
160
160
|
@click="() => togglePopover()"
|
|
161
161
|
>
|
|
@@ -171,6 +171,10 @@ const labelClass = computed(() => twMerge(twJoin(
|
|
|
171
171
|
</template>
|
|
172
172
|
|
|
173
173
|
<style scoped>
|
|
174
|
+
.label {
|
|
175
|
+
transform: translateY(-50%);
|
|
176
|
+
}
|
|
177
|
+
|
|
174
178
|
.input {
|
|
175
179
|
&:focus ~ .label,
|
|
176
180
|
&:not(:focus):valid ~ .label,
|
|
@@ -34,7 +34,7 @@ const inputProps = computed(() => {
|
|
|
34
34
|
>
|
|
35
35
|
<template #endButton>
|
|
36
36
|
<button
|
|
37
|
-
class="absolute top-1/2 right-4 text-
|
|
37
|
+
class="absolute top-1/2 right-4 text-secondary fill-icon-secondary pointer-events-click text-2xl transform translate-y-[-50%] hover:opacity-80 disabled:pointer-events-none"
|
|
38
38
|
:disabled="disabled"
|
|
39
39
|
type="button"
|
|
40
40
|
:data-test-id="iconEyeTestId"
|
|
@@ -48,19 +48,19 @@ const uiConfig = {
|
|
|
48
48
|
readonly: 'pointer-events-none user-select-none',
|
|
49
49
|
disabled: 'pointer-events-none user-select-none opacity-40'
|
|
50
50
|
},
|
|
51
|
-
base: 'w-full border-0 rounded-sm text-
|
|
51
|
+
base: 'w-full border-0 rounded-sm text-primary mt-0 outline-offset-[-1px] hover:outline-1 hover:outline-(--border-color-focus) focus:outline-1 focus:outline-(--border-color-focus)',
|
|
52
52
|
size: {
|
|
53
53
|
sm: 'h-8 px-4 py-1.5 sm',
|
|
54
54
|
md: 'h-10 px-4 pb-1.5 pt-[18px] md',
|
|
55
55
|
smEx: 'h-8 pl-4 pr-10 py-1.5 sm',
|
|
56
56
|
mdEx: 'h-10 pl-4 pr-10 pb-1.5 pt-[18px] md'
|
|
57
57
|
},
|
|
58
|
-
color: 'bg-
|
|
58
|
+
color: 'bg-muted',
|
|
59
59
|
error:
|
|
60
|
-
'outline outline-1 outline-
|
|
61
|
-
readonly: 'bg-
|
|
60
|
+
'outline outline-1 outline-(--border-color-danger) focus:outline-0 focus:border-danger hover:border-danger',
|
|
61
|
+
readonly: 'bg-main opacity-30',
|
|
62
62
|
label: {
|
|
63
|
-
base: 'absolute left-4 top-[50%]
|
|
63
|
+
base: 'absolute left-4 top-[50%] text-secondary pointer-events-none transition-all ease duration-300 whitespace-nowrap text-ellipsis md:max-w-[90%] overflow-hidden',
|
|
64
64
|
'move-label': '!left-10 md:max-w-[calc(90%-40px)]'
|
|
65
65
|
},
|
|
66
66
|
default: {
|
|
@@ -249,7 +249,7 @@ defineExpose({
|
|
|
249
249
|
<div
|
|
250
250
|
v-if="autocompleteList.length && isFocused"
|
|
251
251
|
:class="[
|
|
252
|
-
'absolute z-[31] w-full flex flex-col gap-4 rounded bg-
|
|
252
|
+
'absolute z-[31] w-full flex flex-col gap-4 rounded bg-badge p-2',
|
|
253
253
|
isDropdownUp ? 'bottom-[44px]' : 'top-[44px]'
|
|
254
254
|
]"
|
|
255
255
|
>
|
|
@@ -260,8 +260,8 @@ defineExpose({
|
|
|
260
260
|
<li
|
|
261
261
|
v-for="(item, idx) in autocompleteList"
|
|
262
262
|
:key="idx"
|
|
263
|
-
class="cursor-pointer rounded px-4 py-[10px] transition-colors hover:bg-
|
|
264
|
-
:class="{ 'bg-
|
|
263
|
+
class="cursor-pointer rounded px-4 py-[10px] transition-colors hover:bg-action-secondary-hover"
|
|
264
|
+
:class="{ 'bg-brand-subtle': currentItemIndex === idx }"
|
|
265
265
|
@mousedown="onSelectOption(item)"
|
|
266
266
|
@touchend="onSelectOptionMobile(item)"
|
|
267
267
|
@touchmove="mobileAutocomMoved = true"
|
|
@@ -295,37 +295,37 @@ defineExpose({
|
|
|
295
295
|
>
|
|
296
296
|
<label
|
|
297
297
|
:for="label"
|
|
298
|
-
:class="[{ '
|
|
298
|
+
:class="[{ 'label--floated': modelValue }, labelClass]"
|
|
299
299
|
class="label"
|
|
300
300
|
>
|
|
301
301
|
<span class="text">{{ label }}</span>
|
|
302
302
|
<span
|
|
303
303
|
v-if="required"
|
|
304
|
-
class="text-
|
|
304
|
+
class="text-danger"
|
|
305
305
|
> *</span>
|
|
306
306
|
</label>
|
|
307
307
|
|
|
308
308
|
<component
|
|
309
309
|
:is="startIcon"
|
|
310
310
|
v-if="startIcon"
|
|
311
|
-
class="pointer-events-none absolute left-4 top-1/2 translate-y-[-50%] transform fill-
|
|
311
|
+
class="pointer-events-none absolute left-4 top-1/2 translate-y-[-50%] transform fill-icon-secondary text-base text-secondary"
|
|
312
312
|
filled
|
|
313
313
|
/>
|
|
314
314
|
<component
|
|
315
315
|
:is="endIcon"
|
|
316
316
|
v-if="endIcon"
|
|
317
|
-
class="pointer-events-none absolute right-4 top-1/2 translate-y-[-50%] transform fill-
|
|
317
|
+
class="pointer-events-none absolute right-4 top-1/2 translate-y-[-50%] transform fill-icon-secondary text-base text-secondary"
|
|
318
318
|
filled
|
|
319
319
|
/>
|
|
320
320
|
<button
|
|
321
321
|
v-if="isClearable"
|
|
322
|
-
class="pointer-events-click absolute right-4 top-1/2 translate-y-[-50%] transform rounded-full bg-
|
|
322
|
+
class="pointer-events-click absolute right-4 top-1/2 translate-y-[-50%] transform rounded-full bg-badge p-1 text-2xl hover:opacity-80"
|
|
323
323
|
type="button"
|
|
324
324
|
@click="onClear"
|
|
325
325
|
>
|
|
326
326
|
<a-icon-x-mark
|
|
327
327
|
filled
|
|
328
|
-
class="!mb-0 fill-
|
|
328
|
+
class="!mb-0 fill-icon-default"
|
|
329
329
|
/>
|
|
330
330
|
</button>
|
|
331
331
|
<slot name="endButton" />
|
|
@@ -354,6 +354,15 @@ defineExpose({
|
|
|
354
354
|
</div>
|
|
355
355
|
</template>
|
|
356
356
|
<style scoped>
|
|
357
|
+
.label {
|
|
358
|
+
transform: translateY(-50%);
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
.label--floated {
|
|
362
|
+
font-size: 10px;
|
|
363
|
+
transform: translateY(-17px);
|
|
364
|
+
}
|
|
365
|
+
|
|
357
366
|
.input {
|
|
358
367
|
&:focus ~ .label,
|
|
359
368
|
&:not(:focus):valid ~ .label,
|
|
@@ -33,22 +33,22 @@ const props = withDefaults(defineProps<Props>(), {
|
|
|
33
33
|
const uiConfig = {
|
|
34
34
|
wrapper: 'transition duration-500 w-full',
|
|
35
35
|
'input-wrapper': {
|
|
36
|
-
base: 'relative inline-block h-full w-full text-
|
|
36
|
+
base: 'relative inline-block h-full w-full text-body-md sm:min-w-full pt-5 outline-offset-[-1px] hover:outline-1 hover:outline-(--border-color-focus) focus-within:outline-1 focus-within:outline-(--border-color-focus)',
|
|
37
37
|
readonly: 'pointer-events-none user-select-none',
|
|
38
38
|
disabled: 'pointer-events-none user-select-none opacity-40',
|
|
39
|
-
color: 'bg-
|
|
39
|
+
color: 'bg-muted'
|
|
40
40
|
},
|
|
41
|
-
base: 'w-full border-0 rounded-sm text-
|
|
41
|
+
base: 'w-full border-0 rounded-sm text-primary outline-hidden mt-0',
|
|
42
42
|
size: {
|
|
43
43
|
sm: 'h-8 px-4 py-1.5 sm',
|
|
44
44
|
md: 'h-10 px-4 pb-1.5 pt-[8px] md'
|
|
45
45
|
},
|
|
46
|
-
color: 'bg-
|
|
46
|
+
color: 'bg-transparent',
|
|
47
47
|
error:
|
|
48
|
-
'outline outline-1 outline-
|
|
49
|
-
readonly: 'bg-
|
|
48
|
+
'outline outline-1 outline-(--border-color-danger) focus:outline-0 focus:border-danger hover:border-danger',
|
|
49
|
+
readonly: 'bg-main opacity-30',
|
|
50
50
|
label: {
|
|
51
|
-
base: 'absolute left-4 top-5
|
|
51
|
+
base: 'absolute left-4 top-5 text-secondary pointer-events-none transition-all ease duration-300 whitespace-nowrap',
|
|
52
52
|
'move-label': '!left-10'
|
|
53
53
|
},
|
|
54
54
|
default: {
|
|
@@ -127,22 +127,22 @@ const labelClass = computed(() =>
|
|
|
127
127
|
/>
|
|
128
128
|
<label :class="labelClass" :for="label" class="label cursor-pointer">
|
|
129
129
|
<span class="text">{{ label }}</span>
|
|
130
|
-
<span v-if="required" class="text-
|
|
130
|
+
<span v-if="required" class="text-danger"> *</span>
|
|
131
131
|
</label>
|
|
132
132
|
|
|
133
133
|
<component
|
|
134
134
|
:is="startIcon"
|
|
135
135
|
v-if="startIcon"
|
|
136
|
-
class="pointer-events-none absolute left-4 top-5 translate-y-[-50%] transform fill-
|
|
136
|
+
class="pointer-events-none absolute left-4 top-5 translate-y-[-50%] transform fill-icon-secondary text-base text-secondary"
|
|
137
137
|
filled
|
|
138
138
|
/>
|
|
139
139
|
<button
|
|
140
140
|
v-if="isClearable"
|
|
141
|
-
class="pointer-events-click absolute right-4 top-5 translate-y-[-50%] transform rounded-full bg-
|
|
141
|
+
class="pointer-events-click absolute right-4 top-5 translate-y-[-50%] transform rounded-full bg-badge p-1 text-2xl hover:opacity-80"
|
|
142
142
|
type="button"
|
|
143
143
|
@click="modelValue = ''"
|
|
144
144
|
>
|
|
145
|
-
<a-icon-x-mark class="!mb-0 fill-
|
|
145
|
+
<a-icon-x-mark class="!mb-0 fill-icon-default" filled />
|
|
146
146
|
</button>
|
|
147
147
|
<slot name="endButton" />
|
|
148
148
|
</div>
|
|
@@ -161,6 +161,10 @@ const labelClass = computed(() =>
|
|
|
161
161
|
</template>
|
|
162
162
|
|
|
163
163
|
<style scoped>
|
|
164
|
+
.label {
|
|
165
|
+
transform: translateY(-50%);
|
|
166
|
+
}
|
|
167
|
+
|
|
164
168
|
.input {
|
|
165
169
|
&::-webkit-scrollbar {
|
|
166
170
|
display: none;
|
|
@@ -30,7 +30,7 @@ interface Props {
|
|
|
30
30
|
readonly?: boolean
|
|
31
31
|
error?: string | string[]
|
|
32
32
|
size?: 'sm' | 'md'
|
|
33
|
-
variant?: 'default' | 'gray' | 'blue'
|
|
33
|
+
variant?: 'default' | 'gray' | 'blue' | 'canvas'
|
|
34
34
|
rows?: number
|
|
35
35
|
resize?: 'none' | 'vertical' | 'both'
|
|
36
36
|
maxlength?: number
|
|
@@ -57,15 +57,20 @@ const errorMessages = computed(() => {
|
|
|
57
57
|
|
|
58
58
|
const fieldClass = computed(() => {
|
|
59
59
|
if (props.disabled) {
|
|
60
|
-
return 'border-
|
|
60
|
+
return 'border-default bg-badge/70'
|
|
61
61
|
}
|
|
62
62
|
if (props.variant === 'gray') {
|
|
63
|
-
|
|
63
|
+
/* по макету ДС-2026 у залитого поля бордер видимый, а не прозрачный */
|
|
64
|
+
return 'border-default bg-muted'
|
|
64
65
|
}
|
|
65
66
|
if (props.variant === 'blue') {
|
|
66
|
-
return 'border-
|
|
67
|
+
return 'border-brand-200 bg-brand-subtle'
|
|
67
68
|
}
|
|
68
|
-
|
|
69
|
+
if (props.variant === 'canvas') {
|
|
70
|
+
/* «утопленная» зона ДС: bg-canvas глубже bg-muted в дарке (парно с AInputV2) */
|
|
71
|
+
return 'border-default bg-canvas'
|
|
72
|
+
}
|
|
73
|
+
return 'border-default bg-main'
|
|
69
74
|
})
|
|
70
75
|
|
|
71
76
|
const resizeClass = computed(() => {
|
|
@@ -122,19 +127,19 @@ defineExpose({ focus, blur, textareaRef })
|
|
|
122
127
|
</script>
|
|
123
128
|
|
|
124
129
|
<template>
|
|
125
|
-
<div class="textarea-v2 relative w-full text-
|
|
130
|
+
<div class="textarea-v2 relative w-full text-body-md" v-bind="wrapperAttrs">
|
|
126
131
|
<div
|
|
127
|
-
class="textarea-v2__field relative rounded-
|
|
132
|
+
class="textarea-v2__field relative rounded-10 border border-solid transition-colors duration-200 focus-within:border-focus focus-within:ring-2 focus-within:ring-brand-500/20 hover:border-brand"
|
|
128
133
|
:class="[fieldClass, { 'textarea-v2__field--error': hasError, 'textarea-v2__field--disabled': disabled }]"
|
|
129
134
|
>
|
|
130
135
|
<label
|
|
131
136
|
v-if="label"
|
|
132
137
|
:for="inputId"
|
|
133
138
|
:data-size="size"
|
|
134
|
-
class="textarea-v2__label pointer-events-none absolute left-4 max-w-[calc(100%-2rem)] truncate text-
|
|
139
|
+
class="textarea-v2__label pointer-events-none absolute left-4 max-w-[calc(100%-2rem)] truncate text-secondary"
|
|
135
140
|
:class="{ 'textarea-v2__label--floated': isLabelFloated }"
|
|
136
141
|
>
|
|
137
|
-
{{ label }}<span v-if="required" class="text-
|
|
142
|
+
{{ label }}<span v-if="required" class="text-danger"> *</span>
|
|
138
143
|
</label>
|
|
139
144
|
|
|
140
145
|
<textarea
|
|
@@ -147,7 +152,7 @@ defineExpose({ focus, blur, textareaRef })
|
|
|
147
152
|
:disabled="disabled"
|
|
148
153
|
:readonly="readonly"
|
|
149
154
|
:tabindex="disabled ? -1 : 0"
|
|
150
|
-
class="textarea-v2__input
|
|
155
|
+
class="textarea-v2__input block w-full bg-transparent leading-snug text-primary outline-hidden placeholder:text-secondary disabled:cursor-not-allowed"
|
|
151
156
|
:class="[resizeClass, paddingClass]"
|
|
152
157
|
v-bind="inputAttrs"
|
|
153
158
|
@focus="onFocus"
|
|
@@ -156,7 +161,7 @@ defineExpose({ focus, blur, textareaRef })
|
|
|
156
161
|
|
|
157
162
|
<span
|
|
158
163
|
v-if="maxlength"
|
|
159
|
-
class="textarea-v2__counter pointer-events-none absolute bottom-1.5
|
|
164
|
+
class="textarea-v2__counter pointer-events-none absolute right-3 bottom-1.5 text-body-sm text-icon-disabled"
|
|
160
165
|
>
|
|
161
166
|
{{ modelValue?.length ?? 0 }}/{{ maxlength }}
|
|
162
167
|
</span>
|
|
@@ -170,7 +175,7 @@ defineExpose({ focus, blur, textareaRef })
|
|
|
170
175
|
leave-from-class="textarea-v2__error-leave-from"
|
|
171
176
|
leave-to-class="textarea-v2__error-leave-to"
|
|
172
177
|
>
|
|
173
|
-
<p v-if="hasError" class="mt-1 flex flex-col text-
|
|
178
|
+
<p v-if="hasError" class="mt-1 flex flex-col text-body-sm text-danger">
|
|
174
179
|
<span v-for="(err, idx) in errorMessages" :key="idx">{{ err }}</span>
|
|
175
180
|
</p>
|
|
176
181
|
</transition>
|
|
@@ -179,7 +184,7 @@ defineExpose({ focus, blur, textareaRef })
|
|
|
179
184
|
|
|
180
185
|
<style scoped>
|
|
181
186
|
.textarea-v2__field--error {
|
|
182
|
-
border-color:
|
|
187
|
+
border-color: var(--border-color-danger);
|
|
183
188
|
}
|
|
184
189
|
|
|
185
190
|
.textarea-v2__field--disabled {
|
|
@@ -14,11 +14,11 @@
|
|
|
14
14
|
>
|
|
15
15
|
<label
|
|
16
16
|
:for="name"
|
|
17
|
-
class="flex items-center text-
|
|
17
|
+
class="flex items-center text-primary cursor-pointer w-full whitespace-nowrap"
|
|
18
18
|
:class="[textSizeOptions[size]]"
|
|
19
19
|
>
|
|
20
20
|
<span v-if="side==='left'" class="select-none w-full"><slot/></span>
|
|
21
|
-
<component :is="currentComponent" class="text-
|
|
21
|
+
<component :is="currentComponent" class="text-primary w-full"
|
|
22
22
|
:class="[sizeOptions[size]]"
|
|
23
23
|
/>
|
|
24
24
|
<span v-if="side==='right'" class="select-none w-full"><slot/></span>
|
|
@@ -76,8 +76,8 @@ const sizeOptions = {
|
|
|
76
76
|
sm: 'min-w-4 min-h-4 max-w-4 max-h-4'
|
|
77
77
|
}
|
|
78
78
|
const textSizeOptions = {
|
|
79
|
-
lg: 'text-
|
|
80
|
-
sm: 'text-
|
|
79
|
+
lg: 'text-body-md gap-2',
|
|
80
|
+
sm: 'text-body-sm gap-2'
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
watch(model, async (e) => {
|
|
@@ -51,21 +51,21 @@ onMounted(() => {
|
|
|
51
51
|
</script>
|
|
52
52
|
|
|
53
53
|
<template>
|
|
54
|
-
<div class="rounded-[20px] bg-
|
|
54
|
+
<div class="rounded-[20px] bg-brand p-4 lg:p-8">
|
|
55
55
|
<div class="flex w-full flex-col gap-4 lg:flex-row lg:justify-between">
|
|
56
|
-
<div class="flex flex-col gap-4 text-white
|
|
56
|
+
<div class="flex flex-col gap-4 text-white lg:max-w-[50%] lg:gap-6">
|
|
57
57
|
<slot name="title">
|
|
58
|
-
<p class="
|
|
58
|
+
<p class="text-h2 md:text-display-sm">
|
|
59
59
|
{{ title || t('forms.request_demo.title') }}
|
|
60
60
|
</p>
|
|
61
61
|
</slot>
|
|
62
62
|
<slot name="description">
|
|
63
|
-
<p class="text-
|
|
63
|
+
<p class="text-body-lg whitespace-pre-line">
|
|
64
64
|
{{ description || t('forms.request_demo.info') }}
|
|
65
65
|
</p>
|
|
66
66
|
</slot>
|
|
67
67
|
</div>
|
|
68
|
-
<div class="rounded-[20px] bg-
|
|
68
|
+
<div class="rounded-[20px] bg-main p-6 lg:w-[456px]">
|
|
69
69
|
<div class="flex flex-col gap-4">
|
|
70
70
|
<slot name="inputs">
|
|
71
71
|
<div class="flex flex-col gap-4">
|
|
@@ -55,14 +55,14 @@ const offIconClassFormatted = computed(() => {
|
|
|
55
55
|
|
|
56
56
|
|
|
57
57
|
const ui = {
|
|
58
|
-
"base": "relative inline-flex
|
|
58
|
+
"base": "relative inline-flex shrink-0 border-2 border-transparent disabled:cursor-not-allowed disabled:opacity-50 focus:outline-hidden transition ease-in-out",
|
|
59
59
|
"rounded": "rounded-full",
|
|
60
|
-
"ring": "focus-visible:ring-2 focus-visible:ring-
|
|
60
|
+
"ring": "focus-visible:ring-2 focus-visible:ring-brand-500 focus-visible:ring-offset-2 focus-visible:ring-offset-(--background-color-main)",
|
|
61
61
|
"active": {
|
|
62
|
-
"blue": "bg-
|
|
63
|
-
"green": "bg-
|
|
62
|
+
"blue": "bg-action-primary",
|
|
63
|
+
"green": "bg-success"
|
|
64
64
|
},
|
|
65
|
-
"inactive": "bg-
|
|
65
|
+
"inactive": "bg-badge",
|
|
66
66
|
"size": {
|
|
67
67
|
"2xs": "h-3 w-5",
|
|
68
68
|
"xs": "h-3.5 w-6",
|
|
@@ -73,7 +73,8 @@ const ui = {
|
|
|
73
73
|
"2xl": "h-8 w-[3.75rem]"
|
|
74
74
|
},
|
|
75
75
|
"container": {
|
|
76
|
-
|
|
76
|
+
/* осознанно константный белый бегунок на цветном треке: bg-white не флипается в тёмной теме */
|
|
77
|
+
"base": "pointer-events-none relative inline-block rounded-full bg-white shadow-sm transform ring-0 transition ease-in-out duration-200",
|
|
77
78
|
"active": {
|
|
78
79
|
"2xs": "translate-x-2 rtl:-translate-x-2",
|
|
79
80
|
"xs": "translate-x-2.5 rtl:-translate-x-2.5",
|
|
@@ -108,7 +109,7 @@ const ui = {
|
|
|
108
109
|
"2xl": "h-6 w-6"
|
|
109
110
|
},
|
|
110
111
|
// "on": "text-{color}-500 dark:text-{color}-400",
|
|
111
|
-
// "off": "text-
|
|
112
|
+
// "off": "text-icon-disabled"
|
|
112
113
|
},
|
|
113
114
|
}
|
|
114
115
|
|
|
@@ -33,28 +33,29 @@ function toggle() {
|
|
|
33
33
|
:aria-checked="model"
|
|
34
34
|
:aria-disabled="disabled || undefined"
|
|
35
35
|
:disabled="disabled"
|
|
36
|
-
class="toggle-v2 group inline-flex select-none items-center gap-2 rounded-full focus:outline-
|
|
36
|
+
class="toggle-v2 group inline-flex select-none items-center gap-2 rounded-full focus:outline-hidden disabled:cursor-not-allowed disabled:opacity-50"
|
|
37
37
|
:class="labelSide === 'right' ? 'flex-row-reverse' : ''"
|
|
38
38
|
@click="toggle"
|
|
39
39
|
>
|
|
40
40
|
<span
|
|
41
41
|
v-if="label"
|
|
42
|
-
class="text-
|
|
42
|
+
class="text-quaternary transition-colors group-hover:text-primary"
|
|
43
43
|
:class="s.text"
|
|
44
44
|
>
|
|
45
45
|
{{ label }}
|
|
46
46
|
</span>
|
|
47
47
|
<span
|
|
48
|
-
class="relative inline-flex shrink-0 items-center rounded-full ring-1 ring-inset transition-colors duration-200 group-focus-visible:ring-2 group-focus-visible:ring-
|
|
48
|
+
class="relative inline-flex shrink-0 items-center rounded-full ring-1 ring-inset transition-colors duration-200 group-focus-visible:ring-2 group-focus-visible:ring-brand-500/50"
|
|
49
49
|
:class="[
|
|
50
50
|
s.track,
|
|
51
51
|
model
|
|
52
|
-
? 'bg-
|
|
53
|
-
: 'bg-
|
|
52
|
+
? 'bg-brand ring-brand-500/30'
|
|
53
|
+
: 'bg-badge ring-(--border-color-strong)/60',
|
|
54
54
|
]"
|
|
55
55
|
>
|
|
56
|
+
<!-- осознанно константный: белый бегунок на цветном треке, bg-white не флипается в тёмной теме -->
|
|
56
57
|
<span
|
|
57
|
-
class="toggle-v2__knob inline-block rounded-full bg-white shadow-
|
|
58
|
+
class="toggle-v2__knob inline-block rounded-full bg-white shadow-xs transition-transform duration-200 will-change-transform"
|
|
58
59
|
:class="[s.knob, model ? s.on : s.off]"
|
|
59
60
|
/>
|
|
60
61
|
</span>
|
|
@@ -7,14 +7,14 @@ const emit = defineEmits<{
|
|
|
7
7
|
|
|
8
8
|
<template>
|
|
9
9
|
<div class="flex flex-col justify-center items-center gap-5">
|
|
10
|
-
<p class="
|
|
10
|
+
<p class="text-h2">
|
|
11
11
|
{{ $t('login.modal.title') }}
|
|
12
12
|
</p>
|
|
13
13
|
<a-ill-mail />
|
|
14
|
-
<p class="body-
|
|
14
|
+
<p class="text-body-md text-center">
|
|
15
15
|
{{ $t('login.modal.subtitle1') }}
|
|
16
16
|
</p>
|
|
17
|
-
<p class="body-
|
|
17
|
+
<p class="text-body-md text-center">
|
|
18
18
|
{{ $t('login.modal.confirmationEmail') }}
|
|
19
19
|
</p>
|
|
20
20
|
<div class="flex flex-col gap-2 w-full">
|
|
@@ -34,12 +34,12 @@ const { t, rt, tm } = useI18n()
|
|
|
34
34
|
@close="isOpen = false"
|
|
35
35
|
>
|
|
36
36
|
<div class="flex flex-col gap-5 lg:w-[458px]">
|
|
37
|
-
<h3 class="
|
|
37
|
+
<h3 class="text-h2 text-center lg:text-left">
|
|
38
38
|
{{ t('tariffs.aboutTariff') }}
|
|
39
39
|
</h3>
|
|
40
40
|
<div class="flex flex-col gap-2 lg:pb-0">
|
|
41
41
|
<div
|
|
42
|
-
class="body-
|
|
42
|
+
class="text-body-md relative grid w-full grid-cols-1 grid-rows-2 gap-[43px] px-4 py-8 lg:max-w-[458px] lg:px-[70px] lg:py-[27px]"
|
|
43
43
|
>
|
|
44
44
|
<img
|
|
45
45
|
class="absolute size-full"
|
|
@@ -51,7 +51,7 @@ const { t, rt, tm } = useI18n()
|
|
|
51
51
|
<div>
|
|
52
52
|
{{ t('reuse.subscribe') }}
|
|
53
53
|
</div>
|
|
54
|
-
<h4 class="md:
|
|
54
|
+
<h4 class="md:text-h2 text-h3">
|
|
55
55
|
{{ t(`tariffs.modals.${id}.name`) }}
|
|
56
56
|
</h4>
|
|
57
57
|
</div>
|
|
@@ -59,9 +59,9 @@ const { t, rt, tm } = useI18n()
|
|
|
59
59
|
<div>
|
|
60
60
|
{{ t('reuse.startingFrom') }}
|
|
61
61
|
</div>
|
|
62
|
-
<div class="md:
|
|
62
|
+
<div class="md:text-h2 text-h3">
|
|
63
63
|
{{ t(`tariffs.modals.${id}.price`) }} <span
|
|
64
|
-
class="body-
|
|
64
|
+
class="text-body-md"
|
|
65
65
|
>{{ t(`tariffs.modals.${id}.period`) }}</span>
|
|
66
66
|
</div>
|
|
67
67
|
</div>
|
|
@@ -71,9 +71,10 @@ const { t, rt, tm } = useI18n()
|
|
|
71
71
|
</p>
|
|
72
72
|
</div>
|
|
73
73
|
<div class="flex flex-wrap gap-1 sm:gap-2">
|
|
74
|
+
<!-- осознанно константный text-white: белый текст на цветной brand-пилюле -->
|
|
74
75
|
<div
|
|
75
76
|
v-for="(item, index) in tm(`tariffs.modals.${id}.professions`)"
|
|
76
|
-
class="
|
|
77
|
+
class="h-7 rounded-full bg-brand px-[10px] py-[5px] text-body-sm text-white"
|
|
77
78
|
>
|
|
78
79
|
{{ rt(item) }}
|
|
79
80
|
</div>
|
|
@@ -83,8 +84,8 @@ const { t, rt, tm } = useI18n()
|
|
|
83
84
|
v-for="(item, index) in tm(`tariffs.modals.${id}.functions`)"
|
|
84
85
|
class="flex items-center gap-[1.5px]"
|
|
85
86
|
>
|
|
86
|
-
<checkmark-circle class="shrink-0 text-
|
|
87
|
-
<p class="text-
|
|
87
|
+
<checkmark-circle class="shrink-0 text-success" />
|
|
88
|
+
<p class="text-body-sm">
|
|
88
89
|
{{ rt(item) }}
|
|
89
90
|
</p>
|
|
90
91
|
</div>
|
|
@@ -92,7 +93,7 @@ const { t, rt, tm } = useI18n()
|
|
|
92
93
|
</div>
|
|
93
94
|
<div
|
|
94
95
|
class="flex gap-4"
|
|
95
|
-
:class="device.isMobile ? 'bg-
|
|
96
|
+
:class="device.isMobile ? 'bg-main m-0 p-4 sticky bottom-0 left-0 w-full' : ''"
|
|
96
97
|
>
|
|
97
98
|
<a-button
|
|
98
99
|
view="outline"
|
|
@@ -22,23 +22,24 @@ function onToMain() {
|
|
|
22
22
|
<a-modal-v2
|
|
23
23
|
v-model="isOpen"
|
|
24
24
|
width="424px"
|
|
25
|
+
hide-header-border
|
|
25
26
|
@close="onClose"
|
|
26
27
|
>
|
|
27
28
|
<div class="flex flex-col items-center justify-center gap-4 px-6 pb-4">
|
|
28
29
|
<a-ill-phone-check />
|
|
29
|
-
<p class="
|
|
30
|
+
<p class="text-h4 whitespace-pre-wrap text-center">
|
|
31
|
+
{{ t('modals.another_device_modal.title') }}
|
|
32
|
+
</p>
|
|
33
|
+
<p class="text-body-md whitespace-pre-wrap text-center text-quaternary">
|
|
30
34
|
{{ t('modals.another_device_modal.info') }}
|
|
31
35
|
</p>
|
|
32
|
-
<
|
|
33
|
-
|
|
36
|
+
<a-alert
|
|
37
|
+
color="red"
|
|
38
|
+
icon-type="triangle"
|
|
39
|
+
size="xs"
|
|
34
40
|
>
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
/>
|
|
38
|
-
<span class="text-xs">
|
|
39
|
-
{{ t('modals.another_device_modal.alert') }}
|
|
40
|
-
</span>
|
|
41
|
-
</div>
|
|
41
|
+
{{ t('modals.another_device_modal.alert') }}
|
|
42
|
+
</a-alert>
|
|
42
43
|
</div>
|
|
43
44
|
<template #footer>
|
|
44
45
|
<div class="flex w-full gap-2">
|
|
@@ -19,10 +19,11 @@ const modalText = {
|
|
|
19
19
|
v-model="isOpen"
|
|
20
20
|
width="424px"
|
|
21
21
|
:persistent="true"
|
|
22
|
+
hide-header-border
|
|
22
23
|
>
|
|
23
|
-
<div class="flex flex-col items-center justify-center gap-4 px-6
|
|
24
|
+
<div class="flex flex-col items-center justify-center gap-4 px-6 pb-4">
|
|
24
25
|
<a-ill-ok />
|
|
25
|
-
<p class="body-
|
|
26
|
+
<p class="text-body-md text-center text-quaternary">
|
|
26
27
|
{{ modalText.info }}
|
|
27
28
|
</p>
|
|
28
29
|
</div>
|
|
@@ -32,7 +32,7 @@ function cancel() {
|
|
|
32
32
|
>
|
|
33
33
|
<div class="flex flex-col items-center justify-center gap-4 px-6 py-4">
|
|
34
34
|
<a-ill-turn-on-tariff />
|
|
35
|
-
<p class="body-
|
|
35
|
+
<p class="text-body-md whitespace-pre-wrap text-center">
|
|
36
36
|
{{ t('modals.connecting.questions') }}
|
|
37
37
|
</p>
|
|
38
38
|
</div>
|