adata-ui 2.1.41-beta.11 → 2.1.41-beta.13

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/icons/mailru.vue CHANGED
@@ -1,34 +1,19 @@
1
1
  <template>
2
+ <!-- осознанно константные: фирменные цвета логотипа Mail.ru (белая «@» — декор на синем) -->
2
3
  <svg
3
- width="32"
4
- height="32"
5
- viewBox="0 0 32 32"
6
- fill="none"
4
+ width="24"
5
+ height="24"
6
+ viewBox="0 0 24 24"
7
7
  xmlns="http://www.w3.org/2000/svg"
8
+ aria-hidden="true"
9
+ focusable="false"
8
10
  >
9
- <rect
10
- x="0.5"
11
- y="0.5"
12
- width="31"
13
- height="31"
14
- rx="5.5"
15
- stroke="#9DA3AC"
11
+ <circle
12
+ cx="12"
13
+ cy="12"
14
+ r="12"
15
+ fill="#0077FF"
16
16
  />
17
- <g clip-path="url(#clip0_680_206687)">
18
- <path
19
- d="M19.1585 15.5C19.1585 17.2417 17.7417 18.6585 16 18.6585C14.2583 18.6585 12.8415 17.2417 12.8415 15.5C12.8415 13.7583 14.2583 12.3415 16 12.3415C17.7417 12.3415 19.1585 13.7583 19.1585 15.5ZM16 5C10.2106 5 5.5 9.71056 5.5 15.5C5.5 21.2894 10.2106 26 16 26C18.121 26 20.1665 25.3687 21.9148 24.1737L21.945 24.1527L20.5301 22.5081L20.5065 22.5238C19.1605 23.3894 17.6019 23.8475 16 23.8475C11.3971 23.8475 7.6525 20.1029 7.6525 15.5C7.6525 10.8971 11.3971 7.1525 16 7.1525C20.6029 7.1525 24.3475 10.8971 24.3475 15.5C24.3475 16.0965 24.2812 16.7003 24.1506 17.2942C23.8868 18.3777 23.1282 18.7097 22.5586 18.6657C21.9857 18.6192 21.3156 18.211 21.311 17.2122V16.4509V15.5C21.311 12.5712 18.9288 10.189 16 10.189C13.0712 10.189 10.689 12.5712 10.689 15.5C10.689 18.4288 13.0712 20.811 16 20.811C17.4227 20.811 18.7569 20.2545 19.7629 19.2432C20.3477 20.1535 21.3012 20.7244 22.386 20.811C22.4792 20.8189 22.5743 20.8228 22.6688 20.8228C23.432 20.8228 24.1893 20.5676 24.7997 20.1036C25.429 19.6258 25.8989 18.9348 26.1588 18.1047C26.2001 17.9708 26.2762 17.6637 26.2769 17.6617L26.2788 17.6505C26.4317 16.9844 26.5 16.3203 26.5 15.5C26.5 9.71056 21.7894 5 16 5Z"
20
- fill="#FF9E00"
21
- />
22
- </g>
23
- <defs>
24
- <clipPath id="clip0_680_206687">
25
- <rect
26
- width="21"
27
- height="21"
28
- fill="white"
29
- transform="translate(5.5 5)"
30
- />
31
- </clipPath>
32
- </defs>
17
+ <path fill="#fff" d="M12 5.4a6.6 6.6 0 1 0 3.63 12.11.9.9 0 1 0-.99-1.5A4.8 4.8 0 1 1 16.8 12v.63a1.05 1.05 0 0 1-2.1 0V12a2.7 2.7 0 1 0-.83 1.95 2.85 2.85 0 0 0 4.73-2.13V12A6.6 6.6 0 0 0 12 5.4Zm0 5.7a.9.9 0 1 1 0 1.8.9.9 0 0 1 0-1.8Z" />
33
18
  </svg>
34
19
  </template>
package/icons/yandex.vue CHANGED
@@ -1,29 +1,19 @@
1
1
  <template>
2
+ <!-- осознанно константные: фирменные цвета логотипа Яндекса (белая «Я» — декор на красном) -->
2
3
  <svg
3
- width="32"
4
- height="32"
5
- viewBox="0 0 32 32"
6
- fill="none"
4
+ width="24"
5
+ height="24"
6
+ viewBox="0 0 24 24"
7
7
  xmlns="http://www.w3.org/2000/svg"
8
+ aria-hidden="true"
9
+ focusable="false"
8
10
  >
9
- <rect
10
- class="stroke-icon-secondary"
11
- x="0.5"
12
- y="0.5"
13
- width="31"
14
- height="31"
15
- rx="5.5"
16
- />
17
- <!-- осознанно константный: фирменные цвета логотипа Яндекса -->
18
11
  <circle
19
- cx="16"
20
- cy="16"
21
- r="10.5"
12
+ cx="12"
13
+ cy="12"
14
+ r="12"
22
15
  fill="#FC3F1D"
23
16
  />
24
- <path
25
- d="M19.75 22.75H17.3928V11.076H16.3409C14.4125 11.076 13.3995 12.0469 13.3995 13.4845C13.3995 15.1158 14.1008 15.8736 15.5421 16.845L16.7304 17.6415L13.3019 22.75H10.75L13.8279 18.1853C12.0553 16.9224 11.0618 15.6988 11.0618 13.6206C11.0618 11.0174 12.8736 9.25 16.3215 9.25H19.75V22.75Z"
26
- fill="white"
27
- />
17
+ <path fill="#fff" d="M13.14 19.2h2.2V4.8h-3.2c-3.22 0-5.5 1.97-5.5 4.87 0 2.32 1.1 3.68 3.07 5.08L6.29 19.2h2.39l3.8-5.68-1.11-.74c-1.6-1.08-2.38-1.92-2.38-3.74 0-1.6 1.13-2.68 2.79-2.68h1.36V19.2Z" />
28
18
  </svg>
29
19
  </template>
package/lang/en.ts CHANGED
@@ -325,10 +325,14 @@ const EnLocale: RuLocale = {
325
325
  'Automated compliance risk assessment: real-time business protection',
326
326
  },
327
327
  },
328
- exportCard: {
329
- title: 'Data export',
330
- subTitle: 'Find companies and sole proprietors using the specified filters and receive a list of potential clients',
331
- receive: 'Get',
328
+ export: {
329
+ label: 'Data export',
330
+ items: {
331
+ clients: {
332
+ title: 'Client search',
333
+ subtitle: 'Find companies and sole proprietors using the specified filters and receive a list of potential clients',
334
+ },
335
+ },
332
336
  },
333
337
  },
334
338
  contacts: {
@@ -473,6 +477,12 @@ const EnLocale: RuLocale = {
473
477
  title: 'Our Clients',
474
478
  },
475
479
  forms: {
480
+ password_requirements: {
481
+ minLength: 'At least {length} characters',
482
+ uppercase: 'Uppercase letter',
483
+ digit: 'Digit',
484
+ special: 'Special character',
485
+ },
476
486
  feedback: {
477
487
  value: 'FEEDBACK',
478
488
  title: 'Still have questions about the check?',
@@ -568,6 +578,8 @@ const EnLocale: RuLocale = {
568
578
  confirm: 'Confirm',
569
579
  "topUp": "Top up",
570
580
  update: 'Update',
581
+ showPassword: 'Show password',
582
+ hidePassword: 'Hide password',
571
583
  },
572
584
  modals: {
573
585
  id: {
@@ -590,8 +602,13 @@ const EnLocale: RuLocale = {
590
602
  remember_me: 'Remember me',
591
603
  forget_password: 'Forgot password?',
592
604
  first_time: 'First time using our service?',
605
+ social_divider: 'or sign in with',
593
606
  labels: {
594
- email: 'Enter email',
607
+ email: 'Email',
608
+ password: 'Password',
609
+ },
610
+ placeholders: {
611
+ email: 'you@company.kz',
595
612
  password: 'Enter password',
596
613
  },
597
614
  },
@@ -599,10 +616,15 @@ const EnLocale: RuLocale = {
599
616
  title: 'Registration',
600
617
  subtitle: 'Enter your details to register',
601
618
  labels: {
602
- email: 'Enter email',
603
- password: 'Enter password',
619
+ email: 'Email',
620
+ password: 'Password',
604
621
  password_confirmation: 'Confirm password',
605
622
  },
623
+ placeholders: {
624
+ email: 'you@company.kz',
625
+ password: 'Create a password',
626
+ password_confirmation: 'Repeat password',
627
+ },
606
628
  alert: 'The password must be at least 8 characters long and contain (an uppercase letter, a number, and a special character)',
607
629
  agreement: {
608
630
  text: 'I have read the {link} and fully agree with them.',
@@ -616,6 +638,9 @@ const EnLocale: RuLocale = {
616
638
  minLength: 'The password must be at least 8 characters long',
617
639
  passwordRequirements: 'must contain (an uppercase letter, a number, and a special character)',
618
640
  sameAs: 'Passwords do not match',
641
+ uppercase: 'The password must contain an uppercase letter',
642
+ digit: 'The password must contain a digit',
643
+ special: 'The password must contain a special character',
619
644
  },
620
645
  },
621
646
  confirmAccount: {
@@ -624,7 +649,8 @@ const EnLocale: RuLocale = {
624
649
  recovery: {
625
650
  title: 'Password recovery',
626
651
  content: 'Enter your email address',
627
- placeholder: 'Enter email',
652
+ label: 'Email',
653
+ placeholder: 'you@company.kz',
628
654
  },
629
655
  resetPasswordOtp: {
630
656
  title: 'Confirm action',
@@ -636,6 +662,10 @@ const EnLocale: RuLocale = {
636
662
  title: 'Create a new password',
637
663
  content: 'Come up with your new password',
638
664
  alert: 'The password must be at least 8 characters long and contain (an uppercase letter, a number)',
665
+ labels: {
666
+ password: 'New password',
667
+ password_confirmation: 'Confirm password',
668
+ },
639
669
  placeholder: {
640
670
  1: 'Enter new password',
641
671
  2: 'Repeat password',
package/lang/kk.ts CHANGED
@@ -325,10 +325,14 @@ const KkLocale: RuLocale = {
325
325
  'Комплаенс тәуекелдерін автоматты түрде тексеру: нақты уақыт режимінде бизнесіңізді қорғаңыз',
326
326
  },
327
327
  },
328
- exportCard: {
329
- title: 'Деректерді жүктеу',
330
- subTitle: 'Берілген сүзгілер бойынша компаниялар мен ЖК табыңыз және әлеуетті клиенттердің жүктемесін алыңыз',
331
- receive: 'Алу',
328
+ export: {
329
+ label: 'Деректерді жүктеу',
330
+ items: {
331
+ clients: {
332
+ title: 'Клиенттерді іздеу',
333
+ subtitle: 'Берілген сүзгілер бойынша компаниялар мен ЖК табыңыз және әлеуетті клиенттердің жүктемесін алыңыз',
334
+ },
335
+ },
332
336
  },
333
337
  },
334
338
  contacts: {
@@ -474,6 +478,12 @@ const KkLocale: RuLocale = {
474
478
  title: 'Бізге сенеді',
475
479
  },
476
480
  forms: {
481
+ password_requirements: {
482
+ minLength: 'Кемінде {length} таңба',
483
+ uppercase: 'Бас әріп',
484
+ digit: 'Сан',
485
+ special: 'Арнайы таңба',
486
+ },
477
487
  feedback: {
478
488
  value: 'КЕРІ БАЙЛАНЫС ',
479
489
  title: 'Тексеру бойынша сұрақтарыңыз қалды ма?',
@@ -569,6 +579,8 @@ const KkLocale: RuLocale = {
569
579
  confirm: 'Растау',
570
580
  "topUp": "Толықтыру",
571
581
  update: 'Жаңарту',
582
+ showPassword: 'Құпия сөзді көрсету',
583
+ hidePassword: 'Құпия сөзді жасыру',
572
584
  },
573
585
  modals: {
574
586
  id: {
@@ -591,8 +603,13 @@ const KkLocale: RuLocale = {
591
603
  remember_me: 'Мені есте сақтау',
592
604
  forget_password: 'Құпия сөзді ұмыттыңыз ба?',
593
605
  first_time: 'Біздің сервисті алғаш рет қолданудасыз ба?',
606
+ social_divider: 'немесе арқылы кіріңіз',
594
607
  labels: {
595
- email: 'Email енгізіңіз',
608
+ email: 'Email',
609
+ password: 'Құпия сөз',
610
+ },
611
+ placeholders: {
612
+ email: 'you@company.kz',
596
613
  password: 'Құпия сөз енгізіңіз',
597
614
  },
598
615
  },
@@ -600,10 +617,15 @@ const KkLocale: RuLocale = {
600
617
  title: 'Тіркелу',
601
618
  subtitle: 'Тіркелу үшін деректерді енгізіңіз',
602
619
  labels: {
603
- email: 'Email енгізіңіз',
604
- password: 'Құпия сөз енгізіңіз',
620
+ email: 'Email',
621
+ password: 'Құпия сөз',
605
622
  password_confirmation: 'Құпия сөзді растаңыз',
606
623
  },
624
+ placeholders: {
625
+ email: 'you@company.kz',
626
+ password: 'Құпия сөз ойлап табыңыз',
627
+ password_confirmation: 'Құпия сөзді қайталаңыз',
628
+ },
607
629
  alert: 'Құпия сөз кемінде 8 таңбадан тұруы және (бас әріп, сан және арнайы таңба) қамтуы керек',
608
630
  agreement: {
609
631
  text: 'Мен {link} оқыдым және толықтай келісемін.',
@@ -617,6 +639,9 @@ const KkLocale: RuLocale = {
617
639
  minLength: 'Құпия сөз кемінде 8 таңбадан тұруы керек',
618
640
  passwordRequirements: '(бас әріп, сан және арнайы таңба) қамтуы тиіс',
619
641
  sameAs: 'Құпия сөздер сәйкес емес',
642
+ uppercase: 'Құпия сөзде бас әріп болуы керек',
643
+ digit: 'Құпия сөзде сан болуы керек',
644
+ special: 'Құпия сөзде арнайы таңба болуы керек',
620
645
  },
621
646
  },
622
647
  confirmAccount: {
@@ -625,7 +650,8 @@ const KkLocale: RuLocale = {
625
650
  recovery: {
626
651
  title: 'Құпия сөзді қалпына келтіру',
627
652
  content: 'Электрондық поштаңызды енгізіңіз',
628
- placeholder: 'Email енгізіңіз',
653
+ label: 'Email',
654
+ placeholder: 'you@company.kz',
629
655
  },
630
656
  resetPasswordOtp: {
631
657
  title: 'Әрекетті растау',
@@ -637,6 +663,10 @@ const KkLocale: RuLocale = {
637
663
  title: 'Жаңа құпия сөз құру',
638
664
  content: 'Жаңа құпия сөзді ойлап табыңыз',
639
665
  alert: 'Құпия сөз кемінде 8 таңбадан тұруы және (бас әріп, сан) қамтуы керек',
666
+ labels: {
667
+ password: 'Жаңа құпия сөз',
668
+ password_confirmation: 'Құпия сөзді растаңыз',
669
+ },
640
670
  placeholder: {
641
671
  1: 'Жаңа құпия сөз енгізіңіз',
642
672
  2: 'Құпия сөзді қайталаңыз',
package/lang/ru.ts CHANGED
@@ -325,10 +325,14 @@ const RuLocale = {
325
325
  subtitle: 'Автопроверка комплаенс-рисков: защита бизнеса в режиме реального времени',
326
326
  },
327
327
  },
328
- exportCard: {
329
- title: 'Выгрузка данных',
330
- subTitle: 'Найдите компании и ИП по заданным фильтрам и получите выгрузку потенциальных клиентов',
331
- receive: 'Получить',
328
+ export: {
329
+ label: 'Выгрузка данных',
330
+ items: {
331
+ clients: {
332
+ title: 'Поиск клиентов',
333
+ subtitle: 'Найдите компании и ИП по заданным фильтрам и получите выгрузку потенциальных клиентов',
334
+ },
335
+ },
332
336
  },
333
337
  },
334
338
  contacts: {
@@ -473,6 +477,12 @@ const RuLocale = {
473
477
  title: 'Нам доверяют',
474
478
  },
475
479
  forms: {
480
+ password_requirements: {
481
+ minLength: 'Не менее {length} символов',
482
+ uppercase: 'Заглавная буква',
483
+ digit: 'Цифра',
484
+ special: 'Специальный символ',
485
+ },
476
486
  feedback: {
477
487
  value: 'ОБРАТНАЯ СВЯЗЬ',
478
488
  title: 'Остались вопросы по проверке?',
@@ -569,6 +579,8 @@ const RuLocale = {
569
579
  confirm: 'Подтвердить',
570
580
  topUp: 'Пополнить',
571
581
  update: 'Обновить',
582
+ showPassword: 'Показать пароль',
583
+ hidePassword: 'Скрыть пароль',
572
584
  },
573
585
  modals: {
574
586
  id: {
@@ -591,8 +603,13 @@ const RuLocale = {
591
603
  remember_me: 'Запомнить меня',
592
604
  forget_password: 'Забыли пароль?',
593
605
  first_time: 'Впервые в нашем сервисе?',
606
+ social_divider: 'или войдите через',
594
607
  labels: {
595
- email: 'Введите email',
608
+ email: 'Email',
609
+ password: 'Пароль',
610
+ },
611
+ placeholders: {
612
+ email: 'you@company.kz',
596
613
  password: 'Введите пароль',
597
614
  },
598
615
  },
@@ -600,10 +617,15 @@ const RuLocale = {
600
617
  title: 'Регистрация ',
601
618
  subtitle: 'Введите данные для регистрации',
602
619
  labels: {
603
- email: 'Введите email',
604
- password: 'Введите пароль',
620
+ email: 'Email',
621
+ password: 'Пароль',
605
622
  password_confirmation: 'Подтвердите пароль',
606
623
  },
624
+ placeholders: {
625
+ email: 'you@company.kz',
626
+ password: 'Придумайте пароль',
627
+ password_confirmation: 'Повторите пароль',
628
+ },
607
629
  alert: 'Пароль должен состоять минимум из 8 символов и содержать (заглавную букву, цифру и специальный символ)',
608
630
  agreement: {
609
631
  text: 'Я ознакомился(лась) с {link} и полностью согласен(а) с ними.',
@@ -617,6 +639,9 @@ const RuLocale = {
617
639
  minLength: 'Пароль должен состоять минимум из 8 символов',
618
640
  passwordRequirements: 'содержать (заглавную букву, цифру и специальный символ)',
619
641
  sameAs: 'Пароли не совпадают',
642
+ uppercase: 'Пароль должен содержать заглавную букву',
643
+ digit: 'Пароль должен содержать цифру',
644
+ special: 'Пароль должен содержать специальный символ',
620
645
  },
621
646
  },
622
647
  confirmAccount: {
@@ -625,7 +650,8 @@ const RuLocale = {
625
650
  recovery: {
626
651
  title: 'Восстановление пароля',
627
652
  content: 'Укажите Вашу электронную почту',
628
- placeholder: 'Введите email',
653
+ label: 'Email',
654
+ placeholder: 'you@company.kz',
629
655
  },
630
656
  resetPasswordOtp: {
631
657
  title: 'Подтвердите действие',
@@ -637,6 +663,10 @@ const RuLocale = {
637
663
  title: 'Создание нового пароля',
638
664
  content: 'Придумайте ваш новый пароль',
639
665
  alert: 'Пароль должен состоять минимум из 8 символов и содержать (заглавную букву, цифру)',
666
+ labels: {
667
+ password: 'Новый пароль',
668
+ password_confirmation: 'Подтвердите пароль',
669
+ },
640
670
  placeholder: {
641
671
  1: 'Введите новый пароль',
642
672
  2: 'Повторите пароль',
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "adata-ui",
3
3
  "type": "module",
4
- "version": "2.1.41-beta.11",
4
+ "version": "2.1.41-beta.13",
5
5
  "main": "./nuxt.config.ts",
6
6
  "scripts": {
7
7
  "dev": "nuxi dev .playground",
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Достаёт человекочитаемое сообщение из ошибки auth-API.
3
+ *
4
+ * Бэкенд отдаёт `data.message` то строкой, то объектом с полями формы
5
+ * (`{ email: '…' }`, `{ password: ['…'] }`), поэтому прямые обращения вида
6
+ * `error.data.message.password[0]` падали с TypeError на любом ответе другой
7
+ * формы и прятали настоящую причину сбоя.
8
+ */
9
+ export function apiErrorMessage(error: unknown, fallback: string): string {
10
+ const message = (error as { data?: { message?: unknown } })?.data?.message
11
+
12
+ if (typeof message === 'string' && message) return message
13
+
14
+ if (message && typeof message === 'object') {
15
+ for (const value of Object.values(message as Record<string, unknown>)) {
16
+ if (typeof value === 'string' && value) return value
17
+ if (Array.isArray(value) && typeof value[0] === 'string') return value[0]
18
+ }
19
+ }
20
+
21
+ return fallback
22
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Единый источник истины для требований к паролю: одни и те же предикаты
3
+ * используются и чеклистом `<a-password-requirements>`, и zod-схемами форм
4
+ * регистрации / смены пароля. Ключ правила = ключ i18n
5
+ * `forms.password_requirements.<key>` и `error.password.<key>`.
6
+ */
7
+ export interface PasswordRule {
8
+ key: 'minLength' | 'uppercase' | 'digit' | 'special'
9
+ test: (password: string) => boolean
10
+ }
11
+
12
+ export const PASSWORD_MIN_LENGTH = 8
13
+
14
+ export const PASSWORD_RULES: readonly PasswordRule[] = [
15
+ { key: 'minLength', test: password => password.length >= PASSWORD_MIN_LENGTH },
16
+ { key: 'uppercase', test: password => /[A-Z]/.test(password) },
17
+ { key: 'digit', test: password => /\d/.test(password) },
18
+ { key: 'special', test: password => /[^\dA-Z]/i.test(password) },
19
+ ]