adata-ui 2.1.40-beta.11 → 2.1.40-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.
Files changed (133) hide show
  1. package/assets/styles/index.scss +67 -5
  2. package/components/elements/a-select-row/ASelectRowV2.vue +8 -8
  3. package/components/elements/a-select-row/index.vue +3 -5
  4. package/components/elements/accordion/AAccordion.vue +5 -3
  5. package/components/elements/accordion/AAccordionGroup/AAccordionGroup.vue +3 -3
  6. package/components/elements/alert/AAlert.vue +34 -47
  7. package/components/elements/bg-block/ABgBlock.vue +1 -1
  8. package/components/elements/button/AButton.vue +3 -3
  9. package/components/elements/button/AButtonV2.vue +7 -5
  10. package/components/elements/button-login/index.vue +1 -1
  11. package/components/elements/chip-wrapper/AChipWrapper.vue +1 -1
  12. package/components/elements/chips/AChips.vue +2 -2
  13. package/components/elements/digit-badge/ADigitBadge.vue +21 -19
  14. package/components/elements/feature-description/AFeatureDescription.vue +1 -1
  15. package/components/elements/leave-note/ALeaveNote.vue +1 -1
  16. package/components/elements/pagination/APagination.vue +7 -7
  17. package/components/elements/segmented/ASegmentedV2.vue +103 -10
  18. package/components/elements/select/ASelect.vue +4 -4
  19. package/components/elements/select/ASelectMobile.vue +2 -2
  20. package/components/elements/select/ASelectV2.vue +10 -11
  21. package/components/elements/select/ui/select-button.vue +1 -1
  22. package/components/elements/status-badge/AStatusBadge.vue +22 -19
  23. package/components/elements/status-badge-v2/StatusBadgeV2.vue +1 -3
  24. package/components/elements/table/ATable.vue +1 -1
  25. package/components/elements/table/table.config.ts +2 -2
  26. package/components/elements/tree-select/ATreeSelect.vue +97 -113
  27. package/components/elements/tree-select/TreeService.ts +142 -207
  28. package/components/elements/tree-select/components/ATreeSelectNode.vue +104 -0
  29. package/components/elements/tree-select/types.ts +40 -11
  30. package/components/elements/tree-select/utils.ts +30 -0
  31. package/components/elements/tree-select-modal/ATreeSelectModal.vue +217 -0
  32. package/components/features/color-mode/AColorMode.client.vue +1 -1
  33. package/components/features/dropdown/ADropdownV2.vue +1 -2
  34. package/components/features/lang-switcher/lang-switcher.vue +9 -4
  35. package/components/features/payment/banner/BasicPlusLimitBanner.vue +3 -3
  36. package/components/features/payment/banner/PaymentBanner.vue +3 -3
  37. package/components/features/payment/banner/UpSellBanner.vue +3 -3
  38. package/components/features/payment/process/PaymentKaspiQrSidePanel.vue +3 -3
  39. package/components/features/payment/process/PaymentKaspiRedirectSidePanel.vue +1 -1
  40. package/components/features/payment/process/PaymentMethodSidePanel.vue +3 -3
  41. package/components/features/payment/process/PaymentTopUpSidePanel.vue +2 -2
  42. package/components/features/pk-mobile-services/APkMobileServices.vue +1 -1
  43. package/components/features//321/201hange-version/AChangeVersion.vue +2 -2
  44. package/components/forms/checkbox/ACheckbox.vue +1 -1
  45. package/components/forms/checkbox/ACheckboxV2.vue +5 -5
  46. package/components/forms/input/AInputV2.vue +4 -4
  47. package/components/forms/input/date/AInputDate.vue +2 -2
  48. package/components/forms/input/password/AInputPassword.vue +8 -2
  49. package/components/forms/input/standard/AInputStandard.vue +3 -3
  50. package/components/forms/input/textarea/ATextarea.vue +2 -2
  51. package/components/forms/toggle/AToggle.vue +2 -3
  52. package/components/forms/toggle/AToggleV2.vue +3 -3
  53. package/components/modals/AnotherDeviceModal.vue +1 -1
  54. package/components/modals/ContactsMobileModel.vue +1 -1
  55. package/components/modals/ContentNavigationModal.vue +3 -3
  56. package/components/modals/Insufficient-funds-modal.vue +1 -1
  57. package/components/modals/PaymentMethodModal.vue +1 -1
  58. package/components/modals/id/IdBanner.vue +3 -3
  59. package/components/modals/id/IdRecoveryModal.vue +1 -1
  60. package/components/navigation/breadcrumbs/ABreadcrumbs.vue +106 -45
  61. package/components/navigation/breadcrumbs/types.ts +3 -0
  62. package/components/navigation/footer/AFooter.vue +39 -40
  63. package/components/navigation/footer/ui/a-footer-accordion.vue +9 -9
  64. package/components/navigation/header/AHeader.vue +2 -4
  65. package/components/navigation/header/AlmatyContacts.vue +78 -78
  66. package/components/navigation/header/CardGallery.vue +4 -4
  67. package/components/navigation/header/HeaderUsage.vue +29 -15
  68. package/components/navigation/header/ListItem.vue +2 -2
  69. package/components/navigation/header/NavCard.vue +1 -1
  70. package/components/navigation/header/NavList.vue +2 -2
  71. package/components/navigation/header/NotificationsMenu.vue +2 -3
  72. package/components/navigation/header/ProductMenu.vue +1 -1
  73. package/components/navigation/header/ProfileMenu.vue +26 -35
  74. package/components/navigation/header/SystemNotification.vue +1 -3
  75. package/components/navigation/pill-tabs/APillTabs.vue +2 -2
  76. package/components/navigation/pill-tabs/APillTabsV2.vue +5 -5
  77. package/components/overlays/drawer/ADrawerV2.vue +335 -0
  78. package/components/overlays/modal/AModal.vue +4 -4
  79. package/components/overlays/modal/AModalV2.vue +10 -4
  80. package/components/overlays/side-panel/ASidePanel.vue +6 -6
  81. package/components/overlays/sideover/ASlideover.vue +6 -6
  82. package/components/overlays/tooltip/ATooltip.vue +1 -1
  83. package/components/overlays/tooltip/ATooltipV2.vue +2 -12
  84. package/components/transitions/ATransitionHeight.vue +1 -1
  85. package/composables/useHeaderNavigationLinks.ts +100 -94
  86. package/icons/archive.vue +16 -0
  87. package/icons/arrow/arrows-in.vue +11 -0
  88. package/icons/arrow/arrows-out.vue +11 -0
  89. package/icons/arrow/arrows-resize-in.vue +38 -0
  90. package/icons/arrow/arrows-resize-out.vue +17 -0
  91. package/icons/bot.vue +52 -0
  92. package/icons/clock-time.vue +24 -0
  93. package/icons/compare-outlined.vue +8 -0
  94. package/icons/dots-horizontal.vue +31 -0
  95. package/icons/download-line.vue +13 -0
  96. package/icons/egov.vue +41 -0
  97. package/icons/elicense.vue +38 -0
  98. package/icons/favourite-bookmark-outline.vue +17 -0
  99. package/icons/file-pen.vue +31 -0
  100. package/icons/file-stack.vue +31 -0
  101. package/icons/file-types/excel.vue +131 -0
  102. package/icons/file-types/html.vue +13 -0
  103. package/icons/file-types/jpeg.vue +16 -0
  104. package/icons/file-types/pdf.vue +11 -0
  105. package/icons/file-types/png.vue +11 -0
  106. package/icons/file-types/rar.vue +11 -0
  107. package/icons/file-types/word.vue +50 -0
  108. package/icons/file-types/zip.vue +11 -0
  109. package/icons/git-compare.vue +38 -0
  110. package/icons/graduation-cap.vue +31 -0
  111. package/icons/graph-loading.vue +34 -0
  112. package/icons/help-question-circle.vue +26 -0
  113. package/icons/in-row-type.vue +46 -0
  114. package/icons/in-table-type.vue +29 -0
  115. package/icons/message-dotted.vue +30 -0
  116. package/icons/notification-error.vue +17 -0
  117. package/icons/person.vue +22 -0
  118. package/icons/settings.vue +26 -0
  119. package/icons/shield-alert.vue +31 -0
  120. package/icons/socials/facebook-color.vue +16 -0
  121. package/icons/socials/globe-color.vue +16 -0
  122. package/icons/socials/instagram-color.vue +46 -0
  123. package/icons/socials/linkedin-color.vue +14 -0
  124. package/icons/socials/telegram-color.vue +16 -0
  125. package/icons/socials/tiktok-color.vue +14 -0
  126. package/icons/socials/vk-color.vue +16 -0
  127. package/icons/socials/youtube-color.vue +16 -0
  128. package/icons/view-eye-open.vue +13 -0
  129. package/package.json +1 -1
  130. package/plugins/toast.client.ts +38 -55
  131. package/tailwind.config.ts +147 -116
  132. package/utils/twMerge.ts +34 -0
  133. package/components/elements/tree-select/components/tree-select-nodes.vue +0 -91
@@ -20,6 +20,8 @@ const props = withDefaults(defineProps<{
20
20
  swipeToClose?: boolean
21
21
  swipeThreshold?: number
22
22
  showDragHandle?: boolean
23
+ dataTestId?: string
24
+ iconXMarkTestId?: string
23
25
  }>(), {
24
26
  size: 'md',
25
27
  closeOnOverlay: true,
@@ -34,6 +36,8 @@ const props = withDefaults(defineProps<{
34
36
  swipeToClose: true,
35
37
  swipeThreshold: 65,
36
38
  showDragHandle: true,
39
+ dataTestId: undefined,
40
+ iconXMarkTestId: undefined,
37
41
  })
38
42
 
39
43
  const emit = defineEmits<{
@@ -98,10 +102,10 @@ const contentBaseClass = computed(() => {
98
102
  const base = ['modal-v2-content flex flex-col overflow-hidden border bg-white shadow-2xl dark:bg-gray-900']
99
103
 
100
104
  if (isSheet.value) {
101
- base.push('w-full max-w-none max-h-[100dvh] rounded-t-2xl rounded-b-none border-x-0 border-b-0 border-t border-gray-200 dark:border-gray-800')
105
+ base.push('w-full max-w-none max-h-[100dvh] rounded-t-xl rounded-b-none border-x-0 border-b-0 border-t border-gray-200 dark:border-gray-800')
102
106
  }
103
107
  else {
104
- const radius = props.size === 'fullscreen' ? 'rounded-none' : 'rounded-2xl'
108
+ const radius = props.size === 'fullscreen' ? 'rounded-none' : 'rounded-xl'
105
109
  const widthCls = props.size === 'container'
106
110
  ? ' w-full max-w-screen-sm md:max-w-screen-md lg:max-w-screen-lg xl:max-w-screen-xl 2xl:max-w-screen-2xl'
107
111
  : ''
@@ -286,6 +290,7 @@ function onTouchEnd() {
286
290
  ref="contentRef"
287
291
  :class="contentBaseClass"
288
292
  :style="sizeStyle"
293
+ :data-test-id="dataTestId"
289
294
  @mousedown.stop
290
295
  >
291
296
  <div
@@ -308,14 +313,15 @@ function onTouchEnd() {
308
313
  @touchcancel="onTouchEnd"
309
314
  >
310
315
  <slot name="header">
311
- <h2 v-if="title" class="text-base font-semibold text-gray-900 dark:text-gray-100">
316
+ <h2 v-if="title" class="text-h5 text-gray-900 dark:text-gray-100">
312
317
  {{ title }}
313
318
  </h2>
314
319
  </slot>
315
320
  <button
316
321
  v-if="!hideClose"
317
322
  type="button"
318
- class="ml-auto rounded-md p-1 transition hover:bg-gray-100 dark:hover:bg-gray-800 dark:hover:text-gray-200"
323
+ class="ml-auto rounded-sm p-1 transition hover:bg-gray-100 dark:hover:bg-gray-800 dark:hover:text-gray-200"
324
+ :data-test-id="iconXMarkTestId"
319
325
  @click="closeIfAllowed"
320
326
  >
321
327
  <a-icon-x-mark class="size-4" />
@@ -128,10 +128,10 @@ watch(() => [modelValue.value, panel.value], (newP, oldP) => {
128
128
 
129
129
  const roundedClass = computed(() => {
130
130
  const classes = {
131
- left: "rounded-r-xl",
132
- right: "rounded-l-xl",
133
- top: "rounded-b-xl",
134
- bottom: "rounded-t-xl",
131
+ left: "rounded-r-lg",
132
+ right: "rounded-l-lg",
133
+ top: "rounded-b-lg",
134
+ bottom: "rounded-t-lg",
135
135
  }
136
136
 
137
137
  return classes[panelSide.value]
@@ -170,7 +170,7 @@ const modalHeight = ref(0)
170
170
  const touchstart = (event: TouchEvent) => {
171
171
  isClose.value = false
172
172
  positionStart.value = event.touches[0].clientY
173
- modalHeight.value = panel.value?.offsetHeight || 0 // Запоминаем текущую высоту модалки
173
+ modalHeight.value = panel.value?.offsetHeight || 0
174
174
  }
175
175
 
176
176
  const touchmove = (event: TouchEvent) => {
@@ -179,7 +179,7 @@ const touchmove = (event: TouchEvent) => {
179
179
  const touchPosition = event.touches[0].clientY
180
180
  const step = touchPosition - positionStart.value
181
181
 
182
- if (step < 0) return // предотвратить движение вверх
182
+ if (step < 0) return
183
183
 
184
184
  const newHeight = modalHeight.value - step
185
185
  panel.value.style.height = `${newHeight}px`
@@ -1,6 +1,6 @@
1
1
  <script setup lang="ts">
2
2
 
3
- import { twJoin, twMerge } from 'tailwind-merge'
3
+ import { twJoin, twMerge } from '#adata-ui/utils/twMerge'
4
4
  import { onClickOutside, useWindowSize } from '@vueuse/core'
5
5
  import {disableBodyScroll, enableBodyScroll} from "body-scroll-lock";
6
6
 
@@ -37,10 +37,10 @@ const uiConfig = {
37
37
  bottom: 'bottom-0 left-0 w-full'
38
38
  },
39
39
  rounded: {
40
- top: 'rounded-b-lg',
41
- bottom: 'rounded-t-lg',
42
- left: 'rounded-r-lg',
43
- right: 'rounded-l-lg'
40
+ top: 'rounded-b-md',
41
+ bottom: 'rounded-t-md',
42
+ left: 'rounded-r-md',
43
+ right: 'rounded-l-md'
44
44
  },
45
45
  fullscreen: 'w-screen h-screen rounded-none',
46
46
  transition: {
@@ -219,7 +219,7 @@ const modalHeight = ref(0)
219
219
  const touchstart = (event: TouchEvent) => {
220
220
  isClose.value = false
221
221
  positionStart.value = event.touches[0].clientY
222
- modalHeight.value = slideover.value?.offsetHeight || 0 // Запоминаем текущую высоту модалки
222
+ modalHeight.value = slideover.value?.offsetHeight || 0
223
223
  }
224
224
 
225
225
  const touchmove = (event: TouchEvent) => {
@@ -56,7 +56,7 @@ const baseClass = computed(() => {
56
56
  const color = props.errorParsing ? 'text-[#E74135] dark:text-[#F47E75]' : 'text-white dark:text-deepblue-900'
57
57
  const pad = props.size === 'sm' ? 'px-4 py-2' : 'px-4 py-4'
58
58
  const truncated = props.truncate ? 'truncate' : 'max-w-[530px] w-max'
59
- return ['text-xs font-normal absolute', bg, color, 'rounded-md', pad, truncated].join(' ')
59
+ return ['text-body-sm font-normal absolute', bg, color, 'rounded-sm', pad, truncated].join(' ')
60
60
  })
61
61
 
62
62
  /* --- positioning logic --- */
@@ -9,27 +9,20 @@ import {
9
9
  useFloating,
10
10
  } from '@floating-ui/vue'
11
11
  import { onClickOutside, onKeyStroke } from '@vueuse/core'
12
- import { twMerge } from 'tailwind-merge'
12
+ import { twMerge } from '#adata-ui/utils/twMerge'
13
13
  import { useTooltipTrigger } from './useTooltipTrigger'
14
14
 
15
15
  interface Props {
16
- /** Preferred side; auto-flips when there isn't room. */
17
16
  placement?: TooltipPlacement
18
- /** How the tooltip opens. `manual` is fully driven by `v-model:open`. */
19
17
  trigger?: TooltipTrigger
20
- /** Show a pointer arrow aimed at the trigger. */
21
18
  arrow?: boolean
22
- /** Gap between trigger and tooltip, in px. */
23
19
  offset?: number
24
20
  openDelay?: number
25
21
  closeDelay?: number
26
- /** Render through `<Teleport to="body">` to escape overflow/stacking contexts. */
27
22
  teleport?: boolean
28
23
  disabled?: boolean
29
24
  zIndex?: number
30
- /** Plain-text fallback used when the `content` slot is empty. */
31
25
  text?: string
32
- /** Extra classes merged onto the tooltip box (e.g. width/padding overrides). */
33
26
  contentClass?: string
34
27
  }
35
28
 
@@ -80,7 +73,6 @@ const { x, y, strategy, middlewareData, placement: resolvedPlacement } = useFloa
80
73
  const side = computed(() => resolvedPlacement.value.split('-')[0])
81
74
  const opposite: Record<string, string> = { top: 'bottom', bottom: 'top', left: 'right', right: 'left' }
82
75
 
83
- // Grow the panel out of the edge nearest the trigger.
84
76
  const transformOrigin = computed(() => {
85
77
  const [main, align] = resolvedPlacement.value.split('-')
86
78
  const anchor = opposite[main] ?? 'center'
@@ -92,7 +84,6 @@ const transformOrigin = computed(() => {
92
84
  return `${h} ${anchor}`
93
85
  })
94
86
 
95
- // The two outer edges of the rotated square form the visible point.
96
87
  const arrowBorderClass = computed(() => {
97
88
  switch (side.value) {
98
89
  case 'top': return 'border-b border-r'
@@ -117,12 +108,11 @@ const interactive = computed(() => props.trigger !== 'hover')
117
108
 
118
109
  const boxClass = computed(() =>
119
110
  twMerge(
120
- 'rounded-lg bg-white px-2.5 py-1.5 shadow-lg ring-1 ring-gray-200 dark:bg-gray-900 dark:ring-gray-700',
111
+ 'rounded-md bg-white px-2.5 py-1.5 shadow-lg ring-1 ring-gray-200 dark:bg-gray-900 dark:ring-gray-700',
121
112
  props.contentClass,
122
113
  ),
123
114
  )
124
115
 
125
- // Click mode dismisses on outside-click / Escape; hover leaves on its own; manual is parent-driven.
126
116
  onClickOutside(
127
117
  floating,
128
118
  () => {
@@ -1,6 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import ui from "#adata-ui/components/elements/accordion/AAccordionGroup/ui.config";
3
- import { twMerge } from 'tailwind-merge'
3
+ import { twMerge } from '#adata-ui/utils/twMerge'
4
4
 
5
5
  const props = defineProps<{
6
6
  transition?: {
@@ -1,57 +1,63 @@
1
- import IconSearch from '#adata-ui/icons/search.vue'
2
- import { PAGES } from '#adata-ui/shared/constans/pages'
1
+ import { useUrls } from '#adata-ui/composables/useUrls'
2
+ import AiAssistant from '#adata-ui/icons/ai-assistant.vue'
3
3
  import IconArrowCircle from '#adata-ui/icons/arrow/arrow-circle-down.vue'
4
- import IconUsers from '#adata-ui/icons/users.vue'
5
- import IconGlobe from '#adata-ui/icons/globe.vue'
6
- import IconScales from '#adata-ui/icons/scales/scale.vue'
7
- import IconLink from '#adata-ui/icons/link-chain.vue'
4
+ import IconArrowGraph from '#adata-ui/icons/arrow/arrow-graph-up.vue'
8
5
  import IconBlock from '#adata-ui/icons/block.vue'
9
- import IconDollar from '#adata-ui/icons/currency/currency-dollar.vue'
10
- import IconWork from '#adata-ui/icons/work-bag.vue'
11
- import IconDocument from '#adata-ui/icons/hdocument.vue'
12
- import IconCheckCircle from '#adata-ui/icons/check/check-circle.vue'
6
+ import IconFavorite from '#adata-ui/icons/bookmark/bookmark.vue'
7
+ import IconBot from '#adata-ui/icons/bot.vue'
8
+ import AIconBriefcase from '#adata-ui/icons/briefcase.vue'
9
+ import IconCalc from '#adata-ui/icons/calculator.vue'
10
+ import AIconCarSide from '#adata-ui/icons/car-side.vue'
13
11
  import IconCar from '#adata-ui/icons/car.vue'
14
- import IconTruck from '#adata-ui/icons/truck.vue'
15
- import IconArrowGraph from '#adata-ui/icons/arrow/arrow-graph-up.vue'
16
- import IconMedal from '#adata-ui/icons/medal.vue'
12
+ import AIconCart from '#adata-ui/icons/cart.vue'
13
+ import CheckSb from '#adata-ui/icons/check-sb.vue'
14
+ import IconCheckCircle from '#adata-ui/icons/check/check-circle.vue'
17
15
  import IconCompany from '#adata-ui/icons/company.vue'
16
+ import IconDollar from '#adata-ui/icons/currency/currency-dollar.vue'
17
+ import IconFilePen from '#adata-ui/icons/file-pen.vue'
18
+ import IconFileStack from '#adata-ui/icons/file-stack.vue'
19
+ import IconGitCompare from '#adata-ui/icons/git-compare.vue'
20
+ import IconGlobe from '#adata-ui/icons/globe.vue'
18
21
  import IconHandshake from '#adata-ui/icons/handshake.vue'
19
- import Connections from '#adata-ui/icons/sviazi.vue'
20
- import IconCalc from '#adata-ui/icons/calculator.vue'
21
- import IconProfile from '#adata-ui/icons/profile.vue'
22
- import { buildLocalizedUrl } from '#adata-ui/utils/localizedNavigation'
23
- import IconLock from '#adata-ui/icons/lock.vue'
24
- import IconReceipt from '#adata-ui/icons/receipt.vue'
25
- import IconFavorite from '#adata-ui/icons/bookmark/bookmark.vue'
22
+ import IconDocument from '#adata-ui/icons/hdocument.vue'
26
23
  import IconHistory from '#adata-ui/icons/history.vue'
24
+ import HotLine from '#adata-ui/icons/hot-line.vue'
25
+ import IconLink from '#adata-ui/icons/link-chain.vue'
26
+ import IconLock from '#adata-ui/icons/lock.vue'
27
+ import MapPaper from '#adata-ui/icons/map-paper.vue'
28
+ import MapPinRect from '#adata-ui/icons/map/map-pin-rect.vue'
29
+ import IconMedal from '#adata-ui/icons/medal.vue'
27
30
  import IconMessage from '#adata-ui/icons/message/message.vue'
28
- import AIconBriefcase from '#adata-ui/icons/briefcase.vue'
29
- import AIconCarSide from '#adata-ui/icons/car-side.vue'
31
+ import IconProfile from '#adata-ui/icons/profile.vue'
32
+ import IconReceipt from '#adata-ui/icons/receipt.vue'
33
+ import Sanctions from '#adata-ui/icons/sanctions.vue'
34
+ import IconScales from '#adata-ui/icons/scales/scale.vue'
35
+ import IconSearch from '#adata-ui/icons/search.vue'
36
+ import IconShieldAlert from '#adata-ui/icons/shield-alert.vue'
30
37
  import AIconShieldVerified from '#adata-ui/icons/shield-verified.vue'
31
- import AIconCart from '#adata-ui/icons/cart.vue'
38
+ import Connections from '#adata-ui/icons/sviazi.vue'
39
+ import Tasks from '#adata-ui/icons/tasks.vue'
40
+ import IconTruck from '#adata-ui/icons/truck.vue'
41
+ import IconUsers from '#adata-ui/icons/users.vue'
42
+ import IconWork from '#adata-ui/icons/work-bag.vue'
43
+ import { PAGES } from '#adata-ui/shared/constans/pages'
44
+ import { buildLocalizedUrl } from '#adata-ui/utils/localizedNavigation'
32
45
  import {
33
- AIconUsersThree,
46
+ AIconAkimat,
34
47
  AIconArrowGraphUp,
35
- AIconGlobe,
36
48
  AIconArrowSquareDown,
49
+ AIconCurrencyTenge,
50
+ AIconExcelIcon,
37
51
  AIconExpandWindow,
52
+ AIconFile,
53
+ AIconGlobe,
54
+ AIconSearch,
38
55
  AIconUsers,
56
+ AIconUsersThree,
39
57
  AIconWarningTriangle,
40
- AIconSearch,
41
- AIconAkimat,
42
- AIconCurrencyTenge,
43
- AIconExcelIcon, AIconFile,
44
58
  } from '#components'
45
- import MapPinRect from '#adata-ui/icons/map/map-pin-rect.vue'
46
- import MapPaper from '#adata-ui/icons/map-paper.vue'
47
- import { useUrls } from '#adata-ui/composables/useUrls'
48
- import AiAssistant from '#adata-ui/icons/ai-assistant.vue'
49
- import Tasks from '#adata-ui/icons/tasks.vue'
50
- import HotLine from '#adata-ui/icons/hot-line.vue'
51
- import Sanctions from '#adata-ui/icons/sanctions.vue'
52
- import CheckSb from '#adata-ui/icons/check-sb.vue'
53
59
 
54
- export const useHeaderNavigationLinks = () => {
60
+ export function useHeaderNavigationLinks() {
55
61
  const { t, locale } = useI18n()
56
62
  const urls = useUrls()
57
63
 
@@ -97,19 +103,19 @@ export const useHeaderNavigationLinks = () => {
97
103
  {
98
104
  title: t('header.products.counterparties.items.networks.title'),
99
105
  icon: IconLink,
100
- to: buildLocalizedUrl(locale, urls.pk, PAGES.pk.connections)
106
+ to: buildLocalizedUrl(locale, urls.pk, PAGES.pk.connections),
101
107
  },
102
108
  {
103
109
  title: t('header.products.counterparties.items.sanction.title'),
104
110
  icon: IconBlock,
105
- to: buildLocalizedUrl(locale, urls.pk, PAGES.pk.sanctions)
111
+ to: buildLocalizedUrl(locale, urls.pk, PAGES.pk.sanctions),
106
112
  },
107
113
  {
108
114
  title: t('header.products.counterparties.items.offshore.title'),
109
115
  icon: IconDollar,
110
- to: buildLocalizedUrl(locale, urls.pk, PAGES.pk.offshore)
111
- }
112
- ]
116
+ to: buildLocalizedUrl(locale, urls.pk, PAGES.pk.offshore),
117
+ },
118
+ ],
113
119
  },
114
120
  {
115
121
  key: 'fines',
@@ -122,13 +128,13 @@ export const useHeaderNavigationLinks = () => {
122
128
  title: t('header.products.fines.items.fines.title'),
123
129
  subtitle: t('header.products.fines.items.fines.subtitle'),
124
130
  icon: IconCheckCircle,
125
- to: buildLocalizedUrl(locale, urls.avto, PAGES.fines.main)
131
+ to: buildLocalizedUrl(locale, urls.avto, PAGES.fines.main),
126
132
  },
127
133
  {
128
134
  title: t('header.products.fines.items.auto.title'),
129
135
  subtitle: t('header.products.fines.items.auto.subtitle'),
130
136
  icon: IconCar,
131
- to: buildLocalizedUrl(locale, urls.avto, PAGES.fines.avto)
137
+ to: buildLocalizedUrl(locale, urls.avto, PAGES.fines.avto),
132
138
  },
133
139
  // {
134
140
  // title: t('header.products.fines.items.wholesaleAuto.title'),
@@ -136,7 +142,7 @@ export const useHeaderNavigationLinks = () => {
136
142
  // icon: IconTruck,
137
143
  // to: buildLocalizedUrl(locale, urls.avto, PAGES.fines.bulk)
138
144
  // }
139
- ]
145
+ ],
140
146
  },
141
147
  {
142
148
  key: 'work',
@@ -149,15 +155,15 @@ export const useHeaderNavigationLinks = () => {
149
155
  title: t('header.products.jobs.items.vacancies.title'),
150
156
  icon: IconWork,
151
157
  subtitle: t('header.products.jobs.items.vacancies.subtitle'),
152
- to: urls.work + PAGES.work.vacancy
158
+ to: urls.work + PAGES.work.vacancy,
153
159
  },
154
160
  {
155
161
  title: t('header.products.jobs.items.resume.title'),
156
162
  subtitle: t('header.products.jobs.items.resume.subtitle'),
157
163
  icon: IconDocument,
158
- to: urls.work + PAGES.work.summary
159
- }
160
- ]
164
+ to: urls.work + PAGES.work.summary,
165
+ },
166
+ ],
161
167
  },
162
168
  {
163
169
  key: 'fea',
@@ -171,46 +177,46 @@ export const useHeaderNavigationLinks = () => {
171
177
  title: t('header.products.fea.items.o.t'),
172
178
  subtitle: t('header.products.fea.items.o.st'),
173
179
  icon: Connections,
174
- to: buildLocalizedUrl(locale, urls.tnved, PAGES.fea.o)
180
+ to: buildLocalizedUrl(locale, urls.tnved, PAGES.fea.o),
175
181
  },
176
182
  {
177
183
  title: t('header.products.fea.items.i.t'),
178
184
  subtitle: t('header.products.fea.items.i.st'),
179
185
  icon: IconHandshake,
180
- to: buildLocalizedUrl(locale, urls.tnved, PAGES.fea.t)
186
+ to: buildLocalizedUrl(locale, urls.tnved, PAGES.fea.t),
181
187
  },
182
188
  {
183
189
  title: t('header.products.fea.items.cp.t'),
184
190
  subtitle: t('header.products.fea.items.cp.st'),
185
191
  icon: IconTruck,
186
- to: buildLocalizedUrl(locale, urls.tnved, PAGES.fea.cp)
192
+ to: buildLocalizedUrl(locale, urls.tnved, PAGES.fea.cp),
187
193
 
188
194
  },
189
195
  {
190
196
  title: t('header.products.fea.items.ca.t'),
191
197
  subtitle: t('header.products.fea.items.ca.st'),
192
198
  icon: IconCalc,
193
- to: buildLocalizedUrl(locale, urls.tnved, PAGES.fea.ca)
199
+ to: buildLocalizedUrl(locale, urls.tnved, PAGES.fea.ca),
194
200
  },
195
201
  {
196
202
  title: t('header.products.fea.items.tr.t'),
197
203
  subtitle: t('header.products.fea.items.tr.st'),
198
204
  icon: IconGlobe,
199
- to: buildLocalizedUrl(locale, urls.tnved, PAGES.fea.tr)
205
+ to: buildLocalizedUrl(locale, urls.tnved, PAGES.fea.tr),
200
206
  },
201
207
  {
202
208
  title: t('header.products.fea.items.containers.t'),
203
209
  subtitle: t('header.products.fea.items.containers.st'),
204
210
  icon: MapPaper,
205
- to: buildLocalizedUrl(locale, urls.tnved, PAGES.fea.containers)
211
+ to: buildLocalizedUrl(locale, urls.tnved, PAGES.fea.containers),
206
212
  },
207
213
  {
208
214
  title: t('header.products.fea.items.importerMap.t'),
209
215
  subtitle: t('header.products.fea.items.importerMap.st'),
210
216
  icon: MapPinRect,
211
- to: buildLocalizedUrl(locale, urls.tnved, PAGES.fea.importerMap)
217
+ to: buildLocalizedUrl(locale, urls.tnved, PAGES.fea.importerMap),
212
218
  },
213
- ]
219
+ ],
214
220
  },
215
221
  {
216
222
  key: 'tenders',
@@ -257,47 +263,47 @@ export const useHeaderNavigationLinks = () => {
257
263
  icon: AIconSearch,
258
264
  to: urls.tender,
259
265
  },
260
- ]
266
+ ],
261
267
  },
262
268
  {
263
269
  key: 'edo',
264
270
  is_new: true,
265
271
  name: t('header.products.edo.label'),
266
- link: buildLocalizedUrl(locale, urls.edo_docs , ''),
272
+ link: buildLocalizedUrl(locale, urls.edo_docs, ''),
267
273
  icon: AIconFile,
268
274
  data_attribute: 'navigation-menu-edo-block',
269
275
  items: [
270
276
  {
271
277
  title: t('header.products.edo.items.docSign.t'),
272
278
  subtitle: t('header.products.edo.items.docSign.st'),
273
- icon: AIconUsers,
274
- to: buildLocalizedUrl(locale, urls.edo_docs , PAGES.edo.docSign)
279
+ icon: IconFilePen,
280
+ to: buildLocalizedUrl(locale, urls.edo_docs, PAGES.edo.docSign),
275
281
  },
276
282
  {
277
283
  title: t('header.products.edo.items.docTemplate.t'),
278
284
  subtitle: t('header.products.edo.items.docTemplate.st'),
279
- icon: AIconUsers,
280
- to: buildLocalizedUrl(locale, urls.edo_docs , PAGES.edo.docTemplate)
285
+ icon: IconFileStack,
286
+ to: buildLocalizedUrl(locale, urls.edo_docs, PAGES.edo.docTemplate),
281
287
  },
282
288
  {
283
289
  title: t('header.products.edo.items.docRisk.t'),
284
290
  subtitle: t('header.products.edo.items.docRisk.st'),
285
- icon: AIconUsers,
286
- to: buildLocalizedUrl(locale, urls.edo_docs , PAGES.edo.docRisk)
291
+ icon: IconShieldAlert,
292
+ to: buildLocalizedUrl(locale, urls.edo_docs, PAGES.edo.docRisk),
287
293
  },
288
294
  {
289
295
  title: t('header.products.edo.items.docCompare.t'),
290
296
  subtitle: t('header.products.edo.items.docCompare.st'),
291
- icon: AIconUsers,
292
- to: buildLocalizedUrl(locale, urls.edo_docs , PAGES.edo.docCompare)
297
+ icon: IconGitCompare,
298
+ to: buildLocalizedUrl(locale, urls.edo_docs, PAGES.edo.docCompare),
293
299
  },
294
300
  {
295
301
  title: t('header.products.edo.items.docAi.t'),
296
302
  subtitle: t('header.products.edo.items.docAi.st'),
297
- icon: AIconUsers,
298
- to: buildLocalizedUrl(locale, urls.edo_docs , PAGES.edo.docAi)
303
+ icon: IconBot,
304
+ to: buildLocalizedUrl(locale, urls.edo_docs, PAGES.edo.docAi),
299
305
  },
300
- ]
306
+ ],
301
307
  },
302
308
  {
303
309
  key: 'compliance',
@@ -311,39 +317,39 @@ export const useHeaderNavigationLinks = () => {
311
317
  title: t('header.products.compliance.items.assistant.t'),
312
318
  subtitle: t('header.products.compliance.items.assistant.st'),
313
319
  icon: AiAssistant,
314
- to: urls.compliancemain + PAGES.compliance.assistant
320
+ to: urls.compliancemain + PAGES.compliance.assistant,
315
321
  },
316
322
  {
317
323
  title: t('header.products.compliance.items.assignments.t'),
318
324
  subtitle: t('header.products.compliance.items.assignments.st'),
319
325
  icon: Tasks,
320
- to: urls.compliancemain + PAGES.compliance.assignments
326
+ to: urls.compliancemain + PAGES.compliance.assignments,
321
327
  },
322
328
  {
323
329
  title: t('header.products.compliance.items.hotline.t'),
324
330
  subtitle: t('header.products.compliance.items.hotline.st'),
325
331
  icon: HotLine,
326
- to: urls.compliancemain + PAGES.compliance.hotline
332
+ to: urls.compliancemain + PAGES.compliance.hotline,
327
333
  },
328
334
  {
329
335
  title: t('header.products.compliance.items.sanctions.t'),
330
336
  subtitle: t('header.products.compliance.items.sanctions.st'),
331
337
  icon: Sanctions,
332
- to: urls.compliancemain + PAGES.compliance.sanctions
338
+ to: urls.compliancemain + PAGES.compliance.sanctions,
333
339
  },
334
340
  {
335
341
  title: t('header.products.compliance.items.suppliers.t'),
336
342
  subtitle: t('header.products.compliance.items.suppliers.st'),
337
343
  icon: IconProfile,
338
- to: urls.compliancemain + PAGES.compliance.suppliers
344
+ to: urls.compliancemain + PAGES.compliance.suppliers,
339
345
  },
340
346
  {
341
347
  title: t('header.products.compliance.items.sb.t'),
342
348
  subtitle: t('header.products.compliance.items.sb.st'),
343
349
  icon: CheckSb,
344
- to: urls.compliancemain + PAGES.compliance.sb
350
+ to: urls.compliancemain + PAGES.compliance.sb,
345
351
  },
346
- ]
352
+ ],
347
353
  },
348
354
  {
349
355
  key: 'analytics',
@@ -362,34 +368,34 @@ export const useHeaderNavigationLinks = () => {
362
368
  title: t('header.products.analytics.items.activity.title'),
363
369
  subtitle: t('header.products.analytics.items.activity.subtitle'),
364
370
  icon: IconArrowGraph,
365
- to: buildLocalizedUrl(locale, urls.analytics, PAGES.analytics.index)
371
+ to: buildLocalizedUrl(locale, urls.analytics, PAGES.analytics.index),
366
372
 
367
373
  },
368
374
  {
369
375
  title: t('header.products.analytics.items.rate.title'),
370
376
  subtitle: t('header.products.analytics.items.rate.subtitle'),
371
377
  icon: IconMedal,
372
- to: buildLocalizedUrl(locale, urls.analytics, PAGES.analytics.rating)
378
+ to: buildLocalizedUrl(locale, urls.analytics, PAGES.analytics.rating),
373
379
  },
374
380
  {
375
381
  title: t('header.products.analytics.items.subjects.title'),
376
382
  subtitle: t('header.products.analytics.items.subjects.subtitle'),
377
383
  icon: IconCompany,
378
- to: buildLocalizedUrl(locale, urls.analytics, PAGES.analytics.business)
384
+ to: buildLocalizedUrl(locale, urls.analytics, PAGES.analytics.business),
379
385
  },
380
386
  {
381
387
  title: t('header.products.analytics.items.demography.title'),
382
388
  subtitle: t('header.products.analytics.items.demography.subtitle'),
383
389
  icon: IconCompany,
384
- to: buildLocalizedUrl(locale, urls.analytics, PAGES.analytics.demography)
385
- }
386
- ]
390
+ to: buildLocalizedUrl(locale, urls.analytics, PAGES.analytics.demography),
391
+ },
392
+ ],
387
393
  },
388
394
  ]
389
395
  })
390
396
  }
391
397
 
392
- export const useHeaderMenuLinks = () => {
398
+ export function useHeaderMenuLinks() {
393
399
  const { t, locale } = useI18n()
394
400
  const urls = useUrls()
395
401
 
@@ -398,25 +404,25 @@ export const useHeaderMenuLinks = () => {
398
404
  title: t('header.profile.menu.personalInfo'),
399
405
  icon: IconProfile,
400
406
  to: buildLocalizedUrl(locale.value, urls.landing, PAGES.profile.index),
401
- dataTestId: 'dropdown-profile-button'
407
+ dataTestId: 'dropdown-profile-button',
402
408
  },
403
409
  {
404
410
  title: t('header.profile.menu.security'),
405
411
  icon: IconLock,
406
412
  to: buildLocalizedUrl(locale.value, urls.landing, PAGES.profile.security),
407
- dataTestId: 'dropdown-profile-change-password-button'
413
+ dataTestId: 'dropdown-profile-change-password-button',
408
414
  },
409
415
  {
410
416
  title: t('header.profile.menu.paymentHistory'),
411
417
  icon: IconReceipt,
412
418
  to: buildLocalizedUrl(locale.value, urls.landing, PAGES.profile.paymentHistory),
413
- dataTestId: 'dropdown-profile-payment-story-button'
419
+ dataTestId: 'dropdown-profile-payment-story-button',
414
420
  },
415
421
  {
416
422
  title: t('header.profile.menu.favourites'),
417
423
  icon: IconFavorite,
418
424
  to: buildLocalizedUrl(locale.value, urls.landing, PAGES.profile.favourites),
419
- dataTestId: 'dropdown-favourites-button'
425
+ dataTestId: 'dropdown-favourites-button',
420
426
  },
421
427
  // {
422
428
  // title: t('header.profile.menu.myReports'),
@@ -427,24 +433,24 @@ export const useHeaderMenuLinks = () => {
427
433
  title: t('header.profile.menu.browsingHistory'),
428
434
  icon: IconHistory,
429
435
  to: buildLocalizedUrl(locale.value, urls.landing, PAGES.profile.browsingHistory),
430
- dataTestId: 'dropdown-profile-view-history-button'
436
+ dataTestId: 'dropdown-profile-view-history-button',
431
437
  },
432
438
  {
433
439
  title: t('header.profile.menu.myGroups'),
434
440
  icon: IconUsers,
435
441
  to: buildLocalizedUrl(locale.value, urls.landing, PAGES.profile.myGroups),
436
- dataTestId: 'dropdown-profile-my-groups-button'
442
+ dataTestId: 'dropdown-profile-my-groups-button',
437
443
  },
438
444
  {
439
445
  title: t('header.profile.menu.notes'),
440
446
  icon: IconMessage,
441
447
  to: buildLocalizedUrl(locale.value, urls.landing, PAGES.profile.notes),
442
- dataTestId: 'dropdown-profile-notes-button'
443
- }
448
+ dataTestId: 'dropdown-profile-notes-button',
449
+ },
444
450
  ]
445
451
  }
446
452
 
447
- export const usePkServicesLinks = () => {
453
+ export function usePkServicesLinks() {
448
454
  const { t, locale } = useI18n()
449
455
  const urls = useUrls()
450
456
 
@@ -0,0 +1,16 @@
1
+ <template>
2
+ <svg
3
+ width="24"
4
+ height="24"
5
+ viewBox="0 0 24 24"
6
+ fill="none"
7
+ xmlns="http://www.w3.org/2000/svg"
8
+ >
9
+ <path
10
+ fill-rule="evenodd"
11
+ clip-rule="evenodd"
12
+ d="M20.5 4.29167C20.5 3.79679 20.1433 3.5 19.8269 3.5H4.17308C3.85674 3.5 3.5 3.79679 3.5 4.29167V7.375C3.5 7.86988 3.85674 8.16667 4.17308 8.16667H19.8269C20.1433 8.16667 20.5 7.86988 20.5 7.375V4.29167ZM19.8269 2C21.0825 2 22 3.08367 22 4.29167V7.375C22 8.32596 21.4314 9.19986 20.5769 9.52871V19.7084C20.5769 20.2976 20.3614 20.8737 19.9612 21.3072C19.5592 21.7427 19.0004 22 18.4038 22H5.59614C4.99955 22 4.44081 21.7427 4.03877 21.3072C3.63859 20.8737 3.42307 20.2976 3.42307 19.7084V9.5287C2.56859 9.19985 2 8.32595 2 7.375V4.29167C2 3.08367 2.91753 2 4.17308 2H19.8269ZM4.92307 9.66669V19.7084C4.92307 19.9368 5.0074 20.1451 5.14098 20.2898C5.27269 20.4325 5.43788 20.5 5.59614 20.5H18.4038C18.5621 20.5 18.7273 20.4325 18.859 20.2898C18.9926 20.1451 19.0769 19.9368 19.0769 19.7084V9.66669H4.92307ZM9.86539 12.7917C9.45117 12.7917 9.11539 13.1275 9.11539 13.5417C9.11539 13.9559 9.45117 14.2917 9.86539 14.2917H14.1346C14.5488 14.2917 14.8846 13.9559 14.8846 13.5417C14.8846 13.1275 14.5488 12.7917 14.1346 12.7917H9.86539Z"
13
+ fill="currentColor"
14
+ />
15
+ </svg>
16
+ </template>