adata-ui 2.1.41-beta.1 → 2.1.41-beta.10

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.
Files changed (47) hide show
  1. package/-error.vue +1 -1
  2. package/CLAUDE.md +1 -1
  3. package/assets/styles/theme.css +11 -4
  4. package/components/elements/button/AButtonV2.vue +2 -0
  5. package/components/elements/curve-block-v2/ACurveBlockV2.vue +2 -0
  6. package/components/elements/empty-box/empty-box-V2.vue +1 -1
  7. package/components/elements/error-template/index.vue +8 -3
  8. package/components/elements/select/ACascadeSelectV2.vue +710 -0
  9. package/components/elements/select/ASelectV2.vue +70 -143
  10. package/components/elements/select/cascade-utils.ts +115 -0
  11. package/components/elements/select/types.ts +27 -0
  12. package/components/elements/select/ui/cascade-drawer.vue +146 -0
  13. package/components/elements/select/ui/cascade-panel.vue +237 -0
  14. package/components/elements/select/ui/select-trigger.vue +167 -0
  15. package/components/elements/step-slider/AStepSliderColCard.vue +8 -12
  16. package/components/features/go-top/GoTop.vue +4 -0
  17. package/components/forms/feedback-form/FeedbackFormV2.vue +16 -16
  18. package/components/forms/input/AInputV2.vue +43 -39
  19. package/components/modals/ReportBugModal.vue +1 -1
  20. package/components/modals/id/IdModals.vue +14 -10
  21. package/components/navigation/bottom-navigation/ABottomNavigation.vue +1 -1
  22. package/components/navigation/header/AHeader.vue +6 -2
  23. package/components/overlays/drawer/ADrawerV2.vue +9 -2
  24. package/components/overlays/modal/AModalV2.vue +1 -0
  25. package/icons/ai/ai-diamond-unfilled.vue +26 -0
  26. package/icons/ai/ai-diamond.vue +11 -0
  27. package/icons/arrow/arrow-down-left.vue +6 -0
  28. package/icons/arrow/arrow-up-right.vue +6 -0
  29. package/icons/clock-rotate-ccw.vue +7 -0
  30. package/icons/crown.vue +6 -0
  31. package/icons/list-checks.vue +3 -0
  32. package/icons/log-out.vue +21 -0
  33. package/icons/main-filter.vue +6 -1
  34. package/icons/refresh-cw.vue +8 -0
  35. package/icons/shield-check.vue +20 -0
  36. package/icons/shuffle.vue +3 -0
  37. package/icons/user-plus.vue +3 -0
  38. package/icons/wallet.vue +6 -0
  39. package/illustrations/notes-search.vue +20 -0
  40. package/illustrations/notes-sticky.vue +20 -0
  41. package/illustrations/scheme-notes.vue +21 -0
  42. package/illustrations/scheme-waypoints.vue +25 -0
  43. package/lang/en.ts +2 -1
  44. package/lang/kk.ts +3 -2
  45. package/lang/ru.ts +2 -1
  46. package/package.json +1 -1
  47. package/utils/toCssSize.ts +11 -0
package/-error.vue CHANGED
@@ -135,7 +135,7 @@ function handleError() {
135
135
  <div
136
136
  v-for="item in errorData.content?.list"
137
137
  :key="item.id"
138
- class="flex items-center gap-1 text-sm font-medium"
138
+ class="flex items-center gap-1 text-sm font-medium"
139
139
  >
140
140
  <a-icon-check class="stroke-icon-brand" />
141
141
  {{ item.label }}
package/CLAUDE.md CHANGED
@@ -6,7 +6,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
6
6
 
7
7
  adata-ui — UI-кит проектов adata.kz, оформленный как **Nuxt 3 layer** (`main` = `nuxt.config.ts`, публикуется npm-пакетом `adata-ui`). Консьюмеры (pk-frontend) подключают его через `extends` и автоматически получают компоненты, Tailwind и стили. Разработка и просмотр компонентов — в `.playground` (extends `'..'`).
8
8
 
9
- Ветка `tailwind-v4` (2026-07) — миграция на Tailwind v4 + новая палитра + тёмная тема на семантических токенах; `predesign` ещё на v3. pk-frontend мигрирован на v4/семантику (ветка ADTC-8931, extends `'../adata-ui'`); `deepblue` удалён из theme.css после его миграции (2026-07-28). Каталог `docs/` удалён из дерева; реестр миграции — в git-истории: `git show 69039ec:docs/color-migration.md`.
9
+ Миграция на Tailwind v4 + новая палитра + тёмная тема на семантических токенах влита в `predesign` (ветка `tailwind-v4`, 2026-07) — рабочая ветка уже на v4. pk-frontend мигрирован на v4/семантику (ветка ADTC-8931, extends `'../adata-ui'`); `deepblue` удалён из theme.css после его миграции (2026-07-28). Каталог `docs/` удалён из дерева; реестр миграции — в git-истории: `git show 69039ec:docs/color-migration.md`.
10
10
 
11
11
  ## Команды
12
12
 
@@ -143,6 +143,13 @@
143
143
  --color-secondary-900: #10171E;
144
144
  /* @generated-colors:end */
145
145
 
146
+ /* ОСОЗНАННОЕ ОТКЛОНЕНИЕ ОТ АРТЕФАКТА (2026-08-24, по просьбе PM): роль warning для текста и
147
+ subtle-фона переведена с amber на yellow — --text-color-warning (#A65F00 / dark #FFDF20) и
148
+ --background-color-warning-subtle (#FEF9C2 / dark #432004), т.е. yellow-700/300 и yellow-100/950.
149
+ Причина: прежняя пара amber-500 на amber-100 давала ≈1.9:1 — провал WCAG AA для мелкого текста.
150
+ Остальные warning-токены (--background-color-warning, --border-color-warning, --color-icon-warning)
151
+ оставлены как в артефакте. При регенерации семантических блоков из Figma эти четыре значения
152
+ (здесь и в @generated-semantic-colors-dark ниже) нужно вернуть вручную. */
146
153
  /* @generated-semantic-colors:start (светлые значения; тёмные — в @layer base .dark ниже)
147
154
  Источник: Figma-артефакт «Семантические цвета» (таблица токенов — в git-истории: git show 69039ec:docs/color-migration.md).
148
155
  Старый генератор (git show 8862721) к этому блоку неприменим: регенерация = дамп таблицы артефакта.
@@ -159,7 +166,7 @@
159
166
  --text-color-link: #068DFF;
160
167
  --text-color-link-hover: #007AE0;
161
168
  --text-color-success: #00A63E;
162
- --text-color-warning: #FE9A00;
169
+ --text-color-warning: #A65F00;
163
170
  --text-color-danger: #FB2C36;
164
171
  /* bg */
165
172
  --background-color-main: #FFFFFF;
@@ -172,7 +179,7 @@
172
179
  --background-color-success: #00A63E;
173
180
  --background-color-success-subtle: #DCFCE7;
174
181
  --background-color-warning: #FE9A00;
175
- --background-color-warning-subtle: #FEF3C6;
182
+ --background-color-warning-subtle: #FEF9C2;
176
183
  --background-color-danger: #FB2C36;
177
184
  --background-color-danger-subtle: #FEF2F2;
178
185
  --background-color-badge: #E5E7EB;
@@ -291,7 +298,7 @@
291
298
  --text-color-link: #3DA6FF;
292
299
  --text-color-link-hover: #B3DCFF;
293
300
  --text-color-success: #00C950;
294
- --text-color-warning: #FFB900;
301
+ --text-color-warning: #FFDF20;
295
302
  --text-color-danger: #FF6467;
296
303
  /* bg */
297
304
  --background-color-main: #161617;
@@ -304,7 +311,7 @@
304
311
  --background-color-success: #008236;
305
312
  --background-color-success-subtle: #032E15;
306
313
  --background-color-warning: #E17100;
307
- --background-color-warning-subtle: #461901;
314
+ --background-color-warning-subtle: #432004;
308
315
  --background-color-danger: #FF6467;
309
316
  --background-color-danger-subtle: #4608094D;
310
317
  --background-color-badge: #4A5565;
@@ -19,6 +19,7 @@ const props = withDefaults(defineProps<{
19
19
  glow?: boolean
20
20
  square?: boolean
21
21
  type?: 'button' | 'submit' | 'reset'
22
+ dataTestId?: string
22
23
  }>(), {
23
24
  view: 'solid',
24
25
  color: 'blue',
@@ -149,6 +150,7 @@ function onClick(event: MouseEvent) {
149
150
  block ? 'w-full' : '',
150
151
  iconRight ? 'flex-row-reverse' : '',
151
152
  ]"
153
+ :data-test-id="dataTestId"
152
154
  @click="onClick"
153
155
  >
154
156
  <a-icon-loader-circle
@@ -10,6 +10,7 @@ withDefaults(defineProps<{
10
10
  color?: string
11
11
  tint?: string
12
12
  forceActive?: boolean
13
+ dataTestId?: string
13
14
  }>(), {
14
15
  color: 'var(--color-icon-brand)',
15
16
  tint: undefined,
@@ -24,6 +25,7 @@ withDefaults(defineProps<{
24
25
  class="curve-block-v2 group relative flex w-full cursor-pointer flex-col gap-4 rounded-2xl border border-default bg-main p-6 text-left"
25
26
  :class="{ 'active-item': !to && forceActive }"
26
27
  active-class="active-item"
28
+ :data-test-id="dataTestId"
27
29
  >
28
30
  <div class="arrow-icon absolute top-4 right-4 flex size-8 items-center justify-center rounded-full bg-canvas p-2 text-secondary transition-all duration-200 group-hover:translate-x-0.5 group-hover:-translate-y-0.5">
29
31
  <svg
@@ -57,7 +57,7 @@ defineProps<Props>()
57
57
 
58
58
  <p
59
59
  v-if="subtitle"
60
- class="mt-1 text-secondary"
60
+ class="mt-1 text-secondary text-body-md"
61
61
  >
62
62
  {{ subtitle }}
63
63
  </p>
@@ -3,8 +3,11 @@ import { AIconArrowLeft, AIconHome } from '#components'
3
3
 
4
4
  interface Props {
5
5
  statusCode: number
6
+ homePath?: string
6
7
  }
7
- const props = defineProps<Props>()
8
+ const props = withDefaults(defineProps<Props>(), {
9
+ homePath: '/',
10
+ })
8
11
 
9
12
  const { t } = useI18n()
10
13
  const localePath = useLocalePath()
@@ -14,7 +17,7 @@ const errorTitle = computed(() => t(`errorPage.${props.statusCode}.title`))
14
17
  const errorSubTitle = computed(() => t(`errorPage.${props.statusCode}.subTitle`))
15
18
 
16
19
  function goToMainPage() {
17
- return navigateTo(`${localePath('/')}`, { external: true })
20
+ return navigateTo(`${localePath(props.homePath)}`, { external: true })
18
21
  }
19
22
 
20
23
  function goBack() {
@@ -22,7 +25,7 @@ function goBack() {
22
25
  router.back()
23
26
  }
24
27
  else {
25
- return navigateTo(`${localePath('/')}`, { external: true })
28
+ return navigateTo(`${localePath(props.homePath)}`, { external: true })
26
29
  }
27
30
  }
28
31
  </script>
@@ -56,7 +59,9 @@ function goBack() {
56
59
  >
57
60
  {{ t('actions.goToMainPage') }}
58
61
  </a-button-v2>
62
+
59
63
  <a-button-v2
64
+ v-if="![404, 500, 502, 503, 504].includes(statusCode)"
60
65
  :icon="AIconArrowLeft"
61
66
  view="outline"
62
67
  color="gray"