Files
portal/app/resources/js/components/sales/HelpHint.vue
T
Дмитрий ef0f7c803f feat(sales): каркас фронта портала — layout, роутер, вход, период-пикер
Task 0.7: SalesLayout (сайдбар ОТДЕЛ ПРОДАЖ, 2 секции nav, boss-only для head), SalesLoginView (реальные email+пароль, не демо-кнопки), сторы salesAuth/salesPeriod, api/sales.ts, PeriodPicker (этот/прошлый/позапрошлый/произвольный), HelpHint (?). Роуты /sales/* с гардом (токен→login, boss-only→/sales). Заглушка SalesStubView для экранов будущих фаз. Vitest SalesLogin 5/5, весь фронт 1005 без регрессий, type-check/lint чисто. Вёрстка по демо v8_sales.html. Один эскейп на сессию.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 13:27:04 +03:00

68 lines
1.8 KiB
Vue

<script setup lang="ts">
/**
* HelpHint — знак вопроса «?» с тултипом.
*
* Источник дизайна: v8_sales.html .help "?" affordance.
* Рендерит маленькую иконку «?» в кружке; при наведении показывает текст.
* Используется внутри заголовков таблиц и KPI-плиток.
*
* Пример: <HelpHint text="На сколько дней хватит баланса при текущем расходе" />
*/
defineProps<{
/** Текст подсказки, который показывается в тултипе */
text: string;
}>();
</script>
<template>
<v-tooltip :text="text" location="top" max-width="260">
<template #activator="{ props: tooltipProps }">
<span
v-bind="tooltipProps"
class="help-hint"
role="button"
tabindex="0"
:aria-label="`Подсказка: ${text}`"
data-testid="help-hint"
>?</span
>
</template>
</v-tooltip>
</template>
<style scoped>
.help-hint {
display: inline-flex;
align-items: center;
justify-content: center;
width: 14px;
height: 14px;
border-radius: 50%;
background: #f0ede4;
border: 1px solid #d9d5cd;
color: #66635c;
font-size: 9px;
font-weight: 700;
line-height: 1;
margin-left: 4px;
cursor: help;
vertical-align: middle;
font-family: var(--font-ui, 'Inter', system-ui, sans-serif);
flex-shrink: 0;
transition:
background 0.15s,
color 0.15s,
border-color 0.15s;
}
.help-hint:hover,
.help-hint:focus-visible {
background: #e1eeea;
color: #084635;
border-color: #b6d9cf;
outline: 2px solid #0f6e56;
outline-offset: 2px;
}
</style>