gavia-ui 0.7.1 → 0.9.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/CHANGELOG.md +52 -1
- package/README.md +97 -44
- package/dist/components/WlAccordion.vue.d.ts +1 -1
- package/dist/components/WlButton.vue.d.ts +1 -1
- package/dist/components/WlDatePicker.vue.d.ts +30 -29
- package/dist/components/WlEmpty.vue.d.ts +2 -2
- package/dist/components/WlFilePicker.vue.d.ts +54 -0
- package/dist/components/WlIcon.vue.d.ts +2 -2
- package/dist/components/WlIconButton.vue.d.ts +3 -2
- package/dist/components/WlInput.vue.d.ts +1 -1
- package/dist/components/WlMenu.vue.d.ts +1 -1
- package/dist/components/WlNavItem.vue.d.ts +2 -2
- package/dist/components/WlPopover.vue.d.ts +1 -1
- package/dist/components/WlStatCard.vue.d.ts +2 -2
- package/dist/components/WlTimePicker.vue.d.ts +26 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/composables/useNativeFilePicker.d.ts +8 -0
- package/dist/design-system/tokens.generated.d.ts +627 -0
- package/dist/design-system/types.d.ts +3 -2
- package/dist/design-tokens.json +747 -48
- package/dist/iconNames.d.ts +5 -0
- package/dist/icons.generated.d.ts +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +3466 -2211
- package/dist/manifest.json +508 -4
- package/dist/theme.d.ts +1 -0
- package/dist/types.d.ts +14 -8
- package/dist/utils/anchoredOverlay.d.ts +1 -1
- package/dist/utils/options.d.ts +1 -1
- package/dist/utils/overlayStack.d.ts +11 -0
- package/fonts/gavia/FONTLOG.txt +17 -0
- package/fonts/gavia/Gavia-Bold.ttf +0 -0
- package/fonts/gavia/Gavia-Bold.woff2 +0 -0
- package/fonts/gavia/Gavia-BoldItalic.ttf +0 -0
- package/fonts/gavia/Gavia-BoldItalic.woff2 +0 -0
- package/fonts/gavia/Gavia-Light.ttf +0 -0
- package/fonts/gavia/Gavia-Light.woff2 +0 -0
- package/fonts/gavia/Gavia-LightItalic.ttf +0 -0
- package/fonts/gavia/Gavia-LightItalic.woff2 +0 -0
- package/fonts/gavia/Gavia-Medium.ttf +0 -0
- package/fonts/gavia/Gavia-Medium.woff2 +0 -0
- package/fonts/gavia/Gavia-MediumItalic.ttf +0 -0
- package/fonts/gavia/Gavia-MediumItalic.woff2 +0 -0
- package/fonts/gavia/Gavia-Regular.ttf +0 -0
- package/fonts/gavia/Gavia-Regular.woff2 +0 -0
- package/fonts/gavia/Gavia-RegularItalic.ttf +0 -0
- package/fonts/gavia/Gavia-RegularItalic.woff2 +0 -0
- package/fonts/gavia/Gavia-SemiBold.ttf +0 -0
- package/fonts/gavia/Gavia-SemiBold.woff2 +0 -0
- package/fonts/gavia/Gavia-SemiBoldItalic.ttf +0 -0
- package/fonts/gavia/Gavia-SemiBoldItalic.woff2 +0 -0
- package/fonts/gavia/Gavia-Thin.ttf +0 -0
- package/fonts/gavia/Gavia-Thin.woff2 +0 -0
- package/fonts/gavia/Gavia-ThinItalic.ttf +0 -0
- package/fonts/gavia/Gavia-ThinItalic.woff2 +0 -0
- package/fonts/gavia/OFL.txt +94 -0
- package/fonts/gavia/Onest-OFL.txt +93 -0
- package/fonts/gavia/manifest.json +225 -0
- package/fonts/gavia/qa-report.json +3919 -0
- package/package.json +5 -2
- package/styles/base.css +148 -12
- package/styles/fonts/gavia.css +197 -0
- package/styles/primitives.css +8 -2
- package/styles/reset.css +1 -1
- package/themes/gavia.css +460 -0
- package/themes/graphite.css +29 -0
- package/themes/newspaper.css +29 -0
- package/themes/white.css +29 -0
package/CHANGELOG.md
CHANGED
|
@@ -6,7 +6,58 @@
|
|
|
6
6
|
|
|
7
7
|
## Не выпущено
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
## 0.9.1 — 2026-10-07
|
|
10
|
+
|
|
11
|
+
Выпуск включает изменения ветки 0.9 и исправленные браузерные проверки.
|
|
12
|
+
Версия 0.9.0 не была опубликована в npm; переход выполняется с 0.8.1 сразу на 0.9.1.
|
|
13
|
+
|
|
14
|
+
### Добавлено
|
|
15
|
+
|
|
16
|
+
- Gavia Sans 0.6: кириллица и латиница, 6 весов, 12 прямых/наклонных начертаний, TTF/WOFF2. Явные exports для шрифтового CSS и файлов; лицензия SIL OFL 1.1. Прежнее CSS-семейство Gavia и пути импорта сохранены.
|
|
17
|
+
- Тема Gavia с тёплым фоном, основным цветом #294451 и danger #ab4448. Gavia Sans используется только в Gavia; White, Graphite и Newspaper сохраняют свою типографику. Базовая тема библиотеки остаётся White.
|
|
18
|
+
- Страница шрифта в playground: русский/английский текст, числа, все веса и проба собственного текста. Скачивание Gavia-Sans-0.6.zip со страницы и из футера: 12 TTF, 12 WOFF2, CSS и лицензии.
|
|
19
|
+
- Подбор темы: 8 ключевых цветов, живые компоненты, проверка контраста, локальный черновик и экспорт JSON/CSS.
|
|
20
|
+
- Полные руководства по 53 компонентам: интерактивные настройки, копируемые SFC, API, доступность и версия добавления. Иконки и темы собраны в документации; прежние URL галереи сохраняют переходы.
|
|
21
|
+
- WlDatePicker: необязательный selectionMode="range" с ISO-диапазоном и общим календарём. Одиночный режим и строковая модель остаются прежними.
|
|
22
|
+
- Документация основ: типографика, layout, тексты и адаптивность с рабочими примерами. CSS-примитивы дополнены вариантами контейнера, разделителем, локальной прокруткой и изоляцией слоёв.
|
|
23
|
+
- Общие верхние блоки страниц на WlPageHeader/WlBreadcrumbs; фотографическая главная с установкой, метриками, разделами и автором. README с актуальным логотипом, графической шапкой и кратким подключением.
|
|
24
|
+
|
|
25
|
+
### Исправлено
|
|
26
|
+
|
|
27
|
+
- В Gavia и образцах шрифта сохранена точная ширина табличных цифр в Linux Chromium; настройка рендеринга вынесена в токены темы. Утверждённые файлы шрифта не изменялись.
|
|
28
|
+
- Браузерные проверки документации ждут завершения перестройки мобильного меню; установка зависимостей предпочитает Ubuntu archive и имеет отдельный лимит времени.
|
|
29
|
+
|
|
30
|
+
- Браузерный CI распределён по четырём заданиям; крупные проверки SVG разделены по темам с сохранением всех состояний. Тест чисел проверяет ширину набора и загрузку шрифта; исходные файлы Gavia Sans не менялись.
|
|
31
|
+
|
|
32
|
+
- Главная наследует шрифты, цвета, радиусы и состояния выбранной темы; изображения и расположение остаются общими. Установка и метрики 2×2 используют единую сетку и адаптивные отступы.
|
|
33
|
+
- Шапка: название 20 px, выравнивание логотипа, разные иконки дизайн-системы и подбора темы, favicon в основном цвете Gavia. Компактное меню поддерживает клавиатуру и возврат фокуса.
|
|
34
|
+
- Короткие вкладки API и «Доступность» больше не растягиваются по высоте sidebar. Боковой каталог закреплён под шапкой; иконки, категории и интервалы пунктов выровнены.
|
|
35
|
+
- Активный подпункт оглавления отмечается небольшим шевроном и плавным сдвигом на 8 px; настройка уменьшения анимации учитывается, прокрутка не меняет адрес.
|
|
36
|
+
- В примерах WlPopover разделены элементы управления и значения вложенного диалога; копируемый SFC сохраняет те же отступы. Фокус DatePicker охватывает поле вместе с календарной кнопкой.
|
|
37
|
+
- Страница шрифта использует актуальные компоненты UI-кита; прежние версии, сравнения, дублирующая проба текста и глобальный перехват Ctrl+S убраны из презентации.
|
|
38
|
+
|
|
39
|
+
## 0.8.1 — 2026-10-06
|
|
40
|
+
|
|
41
|
+
Выпуск включает изменения ветки 0.8 и исправление вложенных оверлеев.
|
|
42
|
+
Версия 0.8.0 не была опубликована в npm; переход выполняется с 0.7.1 сразу на 0.8.1.
|
|
43
|
+
|
|
44
|
+
### Добавлено
|
|
45
|
+
|
|
46
|
+
- `WlTimePicker`: локальное время HH:mm/null, минутная точность, границы и нативные атрибуты.
|
|
47
|
+
- `WlFilePicker`: stateless выбор File[], trigger slot и синхронные choose()/clear(); upload и лимиты остаются у приложения.
|
|
48
|
+
- `WlDatePicker.displayFormat`: русское представление по умолчанию и ISO-представление с согласованным ручным вводом; модель ISO сохраняется.
|
|
49
|
+
- Расширенный SVG-каталог и типизированный `resolveWlIconName` для канонических и legacy имён.
|
|
50
|
+
|
|
51
|
+
### Исправлено
|
|
52
|
+
- Вложенные picker/menu внутри Popover и Dialog сохраняют родительский оверлей при выборе в телепортированном списке. Escape закрывает только верхний слой и возвращает фокус; локальная ловушка Tab в Dialog сохраняется.
|
|
53
|
+
- `WlInput` сохраняет строковую модель при `type="number"`, включая очистку; нативная IME-композиция остаётся без преждевременного commit.
|
|
54
|
+
- `WlTimePicker` показывает рамку фокуса и invalid-рамку при клавиатурном переходе во внутренние сегменты нативного time control.
|
|
55
|
+
|
|
56
|
+
- Проверка `verify:package` учитывает переносы строк Windows и Linux в LICENSE, сохраняя строгое сравнение содержания лицензии.
|
|
57
|
+
- Бесконечные границы `WlNumberInput` не попадают в aria-valuemin/aria-valuemax; default max=99 сохранён.
|
|
58
|
+
|
|
59
|
+
[Переход потребителя](https://github.com/whitewolf06/gavia-ui/blob/main/docs/migration-0.8.md). Существующие модели, классы,
|
|
60
|
+
токены и defaults сохраняются; новые компоненты подключаются явно.
|
|
10
61
|
|
|
11
62
|
## 0.7.1 — 2026-10-05
|
|
12
63
|
|
package/README.md
CHANGED
|
@@ -1,48 +1,81 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://raw.githubusercontent.com/whitewolf06/gavia-ui/main/docs/brand/gavia-ui-mark-lake.svg" alt="Гагара — знак Gavia UI" width="64" height="64">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
1
5
|
# Gavia UI
|
|
2
6
|
|
|
3
|
-
|
|
7
|
+
Бесплатная библиотека компонентов и дизайн-система для **Vue 3 + TypeScript**.
|
|
8
|
+
В составе: **53 компонента, 113 SVG-иконок, 444 дизайн-токена, четыре темы
|
|
9
|
+
и гарнитура Gavia Sans 0.6**. Runtime-зависимостей нет; Vue 3 — единственный
|
|
10
|
+
обязательный peer. Стили подключаются явно.
|
|
4
11
|
|
|
5
|
-
|
|
6
|
-
|
|
12
|
+
<p align="center">
|
|
13
|
+
<a href="https://whitewolf06.github.io/gavia-ui/"><img src="https://raw.githubusercontent.com/whitewolf06/gavia-ui/main/docs/brand/playground-button.svg" alt="Открыть Playground" width="230" height="44"></a><br>
|
|
14
|
+
· <a href="https://whitewolf06.github.io/gavia-ui/?view=docs">Документация</a>
|
|
15
|
+
· <a href="https://whitewolf06.github.io/gavia-ui/?view=font">Gavia Sans</a>
|
|
16
|
+
· <a href="https://github.com/whitewolf06/gavia-ui">GitHub</a>
|
|
17
|
+
</p>
|
|
7
18
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
[
|
|
19
|
+
Версия **0.9.1**. [История изменений](CHANGELOG.md) ·
|
|
20
|
+
[Миграция 0.9](https://github.com/whitewolf06/gavia-ui/blob/main/docs/migration-0.9.md) ·
|
|
21
|
+
[История ребрендинга](https://github.com/whitewolf06/gavia-ui/blob/main/docs/migration-gavia.md).
|
|
22
|
+
Код UI Kit — [MIT](LICENSE), файлы шрифта —
|
|
23
|
+
[SIL OFL 1.1](https://github.com/whitewolf06/gavia-ui/blob/main/packages/ui-kit/fonts/gavia/OFL.txt).
|
|
11
24
|
|
|
12
|
-
##
|
|
25
|
+
## Быстрый старт
|
|
13
26
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
27
|
+
```bash
|
|
28
|
+
pnpm add gavia-ui@0.9.1 vue
|
|
29
|
+
```
|
|
17
30
|
|
|
18
|
-
|
|
31
|
+
```ts
|
|
32
|
+
// main.ts
|
|
33
|
+
import { createApp } from "vue";
|
|
34
|
+
import "gavia-ui/styles/reset.css";
|
|
35
|
+
import "gavia-ui/styles/fonts/gavia.css";
|
|
36
|
+
import "gavia-ui/styles/base.css";
|
|
37
|
+
import "gavia-ui/styles/primitives.css"; // необязательные классы компоновки и типографики
|
|
38
|
+
import "gavia-ui/themes/gavia.css";
|
|
39
|
+
import App from "./App.vue";
|
|
19
40
|
|
|
20
|
-
|
|
21
|
-
|
|
41
|
+
document.documentElement.dataset.wlTheme = "gavia";
|
|
42
|
+
createApp(App).mount("#app");
|
|
22
43
|
```
|
|
23
44
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
45
|
+
```vue
|
|
46
|
+
<script setup lang="ts">
|
|
47
|
+
import { WlButton } from "gavia-ui";
|
|
48
|
+
</script>
|
|
28
49
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
pnpm run pack
|
|
33
|
-
# В приложении-потребителе:
|
|
34
|
-
pnpm add /absolute/path/to/gavia-ui/packages/ui-kit/gavia-ui-0.7.1.tgz vue
|
|
50
|
+
<template>
|
|
51
|
+
<WlButton>Создать проект</WlButton>
|
|
52
|
+
</template>
|
|
35
53
|
```
|
|
36
54
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
55
|
+
Вместо строки `dataset.wlTheme` можно указать `<html data-wl-theme="gavia">`
|
|
56
|
+
в `index.html`. Gavia использует Gavia Sans; без шрифтового CSS доступен системный
|
|
57
|
+
fallback. Без выбора темы библиотека сохраняет White. Для White, Graphite или
|
|
58
|
+
Newspaper импортируйте соответствующий CSS и выберите одноимённый `data-wl-theme`.
|
|
59
|
+
`WlConfig` для базового подключения не требуется.
|
|
60
|
+
|
|
61
|
+
## Шрифт Gavia Sans
|
|
62
|
+
|
|
63
|
+
Gavia Sans 0.6 входит в пакет: кириллица и латиница, шесть весов
|
|
64
|
+
100 / 300 / 400 / 500 / 600 / 700 с прямым и наклонным начертанием, WOFF2 и TTF.
|
|
65
|
+
Она служит основным шрифтом **только темы Gavia**; White, Graphite и Newspaper
|
|
66
|
+
сохраняют свою типографику. Подключение явное: `import "gavia-ui/styles/fonts/gavia.css";`.
|
|
67
|
+
|
|
68
|
+
Файлы доступны через `gavia-ui/fonts/gavia/<file>` и применимы без Vue.
|
|
69
|
+
[Образцы и скачивание Gavia-Sans-0.6.zip](https://whitewolf06.github.io/gavia-ui/?view=font) ·
|
|
70
|
+
[Подключение и лицензия](https://github.com/whitewolf06/gavia-ui/blob/main/docs/font-gavia.md).
|
|
71
|
+
Старое CSS-имя `Gavia` зарегистрировано как совместимый алиас; пути импорта
|
|
72
|
+
и имена файлов `Gavia-*.ttf` / `Gavia-*.woff2` сохранены.
|
|
40
73
|
|
|
41
74
|
## Дизайн-система
|
|
42
75
|
|
|
43
76
|
Общие роли типографики, шкала расстояний, поверхности, состояния и UI-паттерны
|
|
44
77
|
описаны в [руководстве](https://github.com/whitewolf06/gavia-ui/blob/main/docs/design-system.md). Playground `?view=system`
|
|
45
|
-
показывает
|
|
78
|
+
показывает 444 токена, четыре темы и контракты 53 компонентов.
|
|
46
79
|
|
|
47
80
|
Опциональная компоновка и типографика: явный импорт
|
|
48
81
|
`gavia-ui/styles/primitives.css`. Экспорты `wlDesignTokens`,
|
|
@@ -67,20 +100,25 @@ primary/danger используют новые роли `--wl-action-primary-*`
|
|
|
67
100
|
| ------------ | ------ | -------------------------- |
|
|
68
101
|
| `vue` | ^3.4 | обязательный peer |
|
|
69
102
|
|
|
70
|
-
##
|
|
103
|
+
## Необязательная конфигурация
|
|
104
|
+
|
|
105
|
+
WlConfig задаёт глобальные pt, локаль и анимацию. Сервисы подключайте, если
|
|
106
|
+
используете уведомления или диалог подтверждения:
|
|
71
107
|
|
|
72
108
|
```ts
|
|
73
109
|
// main.ts
|
|
74
110
|
import { createApp } from "vue";
|
|
75
111
|
import { WlConfig, WlToastService, WlConfirmationService, wlLocaleRu } from "gavia-ui";
|
|
76
112
|
|
|
77
|
-
// Стили подключаются явно: reset → base → тема
|
|
113
|
+
// Стили подключаются явно: reset → шрифт → base → тема
|
|
78
114
|
import "gavia-ui/styles/reset.css";
|
|
115
|
+
import "gavia-ui/styles/fonts/gavia.css";
|
|
79
116
|
import "gavia-ui/styles/base.css";
|
|
80
|
-
import "gavia-ui/themes/
|
|
117
|
+
import "gavia-ui/themes/gavia.css";
|
|
81
118
|
|
|
82
119
|
import App from "./App.vue";
|
|
83
120
|
|
|
121
|
+
document.documentElement.dataset.wlTheme = "gavia";
|
|
84
122
|
const app = createApp(App);
|
|
85
123
|
app.use(WlConfig, { locale: wlLocaleRu });
|
|
86
124
|
app.use(WlToastService);
|
|
@@ -109,12 +147,18 @@ const text = ref("");
|
|
|
109
147
|
|
|
110
148
|
## Exports
|
|
111
149
|
|
|
112
|
-
| Subpath
|
|
113
|
-
|
|
|
114
|
-
| `gavia-ui`
|
|
115
|
-
| `gavia-ui/styles/reset.css`
|
|
116
|
-
| `gavia-ui/styles/base.css`
|
|
117
|
-
| `gavia-ui/
|
|
150
|
+
| Subpath | Содержимое |
|
|
151
|
+
| --- | --- |
|
|
152
|
+
| `gavia-ui` | ESM + `.d.ts`: компоненты, типы, `createWlPt`, `WlTooltip`, manifest и токены |
|
|
153
|
+
| `gavia-ui/styles/reset.css` | минимальный reset (слой `wl.reset`) |
|
|
154
|
+
| `gavia-ui/styles/base.css` | токены + стили компонентов (`wl.tokens`, `wl.components`) |
|
|
155
|
+
| `gavia-ui/styles/primitives.css` | необязательные классы компоновки и типографики |
|
|
156
|
+
| `gavia-ui/styles/fonts/gavia.css` | явное подключение Gavia Sans и совместимого CSS-алиаса `Gavia` |
|
|
157
|
+
| `gavia-ui/fonts/gavia/<file>` | WOFF2, TTF и лицензии шрифта |
|
|
158
|
+
| `gavia-ui/themes/<theme>.css` | `gavia`, `white`, `graphite` или `newspaper` |
|
|
159
|
+
| `gavia-ui/manifest.json` | JSON-контракты всех 53 компонентов |
|
|
160
|
+
| `gavia-ui/design-tokens.json` | JSON-каталог токенов, тем, типографики и шкал |
|
|
161
|
+
| `gavia-ui/package.json` | метаданные пакета |
|
|
118
162
|
|
|
119
163
|
## Токены и темы
|
|
120
164
|
|
|
@@ -134,7 +178,7 @@ const text = ref("");
|
|
|
134
178
|
<html data-wl-theme="graphite">
|
|
135
179
|
```
|
|
136
180
|
|
|
137
|
-
|
|
181
|
+
Если используете одну тему, импортируйте её CSS и установите соответствующий атрибут:
|
|
138
182
|
|
|
139
183
|
```ts
|
|
140
184
|
import "gavia-ui/themes/newspaper.css";
|
|
@@ -244,11 +288,20 @@ app.use(WlConfig, {
|
|
|
244
288
|
|
|
245
289
|
## Компоненты
|
|
246
290
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
`
|
|
250
|
-
`
|
|
251
|
-
`
|
|
291
|
+
| Группа | Компоненты |
|
|
292
|
+
| --- | --- |
|
|
293
|
+
| Действия | `WlButton`, `WlIconButton`, `WlButtonGroup`, `WlSegmented`, `WlMenu`, `WlNavItem` |
|
|
294
|
+
| Ввод данных | `WlTimePicker`, `WlFilePicker`, `WlInput`, `WlPasswordInput`, `WlNumberInput`, `WlTextarea`, `WlSelect`, `WlMultiSelect`, `WlAutocomplete`, `WlCheckbox`, `WlRadio`, `WlSwitch`, `WlSlider`, `WlDatePicker`, `WlCalendar`, `WlColorPicker`, `WlFileUpload` |
|
|
295
|
+
| Данные | `WlTable`, `WlPagination`, `WlBadge`, `WlTag`, `WlChip`, `WlPill`, `WlAvatar`, `WlStatCard`, `WlProgress`, `WlSkeleton`, `WlEmpty` |
|
|
296
|
+
| Контейнеры | `WlCard`, `WlAccordion`, `WlTabs`, `WlDialog`, `WlDrawer`, `WlPopover`, `WlDivider` |
|
|
297
|
+
| Составные элементы | `WlPageHeader`, `WlFilterBar`, `WlSidebar`, `WlCommandPalette` |
|
|
298
|
+
| Навигация | `WlBreadcrumbs`, `WlSteps` |
|
|
299
|
+
| Обратная связь | `WlAlert`, `WlToast`, `WlConfirmDialog`, `WlSpinner` |
|
|
300
|
+
| Дополнительно | `WlField`, `WlIcon` |
|
|
301
|
+
|
|
302
|
+
У каждого компонента есть [руководство в playground](https://whitewolf06.github.io/gavia-ui/?view=docs):
|
|
303
|
+
живой пример, настройки, копируемый Vue-код, API, доступность и версия первой поставки.
|
|
304
|
+
Дополнительно экспортируются директива `WlTooltip`, `createWlPt` и типы
|
|
252
305
|
(`WlSize`, `WlDensity`, `WlButtonVariant`, `WlTabItem`, …).
|
|
253
306
|
|
|
254
307
|
### Подтверждения: WlConfirmDialog + useWlConfirm
|
|
@@ -290,7 +343,7 @@ function remove(): void {
|
|
|
290
343
|
|
|
291
344
|
## Component manifest
|
|
292
345
|
|
|
293
|
-
Машиночитаемое описание всех
|
|
346
|
+
Машиночитаемое описание всех 53 компонентов: пропсы (типы, дефолты, enum-значения),
|
|
294
347
|
слоты, события, `v-model` и `introducedIn` — первая публичная версия, содержащая
|
|
295
348
|
компонент. Предназначен для визуальных редакторов (палитра +
|
|
296
349
|
инспектор пропсов) и AI-агентов, генерирующих разметку.
|
|
@@ -310,7 +363,7 @@ import manifest from "gavia-ui/manifest.json";
|
|
|
310
363
|
|
|
311
364
|
Типы: `WlComponentManifest`, `WlPropManifest`, `WlSlotManifest`, `WlEmitManifest`,
|
|
312
365
|
`WlModelManifest`, `WlManifestCategory`, `WlManifestPropType`. Категории:
|
|
313
|
-
`actions`, `inputs`, `data`, `containers`, `navigation`, `feedback`, `misc`.
|
|
366
|
+
`actions`, `inputs`, `data`, `containers`, `composites`, `navigation`, `feedback`, `misc`.
|
|
314
367
|
Пропсы типа `icon` принимают значения из `WlIconName`, тип `object` — это
|
|
315
368
|
pass-through (`pt`) или сложные объекты вроде `locale`.
|
|
316
369
|
|
|
@@ -21,8 +21,8 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
|
|
|
21
21
|
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
22
22
|
"onUpdate:openKeys"?: ((value: string[]) => any) | undefined;
|
|
23
23
|
}>, {
|
|
24
|
-
items: WlAccordionItem[];
|
|
25
24
|
single: boolean;
|
|
25
|
+
items: WlAccordionItem[];
|
|
26
26
|
openKeys: string[];
|
|
27
27
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
28
28
|
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
@@ -24,8 +24,8 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
|
|
|
24
24
|
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
25
25
|
onClick?: ((event: MouseEvent) => any) | undefined;
|
|
26
26
|
}>, {
|
|
27
|
-
type: "button" | "submit" | "reset";
|
|
28
27
|
size: WlSize;
|
|
28
|
+
type: "button" | "submit" | "reset";
|
|
29
29
|
variant: WlButtonVariant;
|
|
30
30
|
disabled: boolean;
|
|
31
31
|
density: WlDensity;
|
|
@@ -1,31 +1,32 @@
|
|
|
1
|
-
import { WlSizeSm } from '../types';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
import { WlDatePickerModel, WlDatePickerSelectionMode, WlSizeSm } from '../types';
|
|
2
|
+
declare const _default: <Mode extends WlDatePickerSelectionMode = "single">(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
3
|
+
props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
|
|
4
|
+
readonly "onUpdate:modelValue"?: ((value: WlDatePickerModel<NoInfer<Mode>>) => any) | undefined;
|
|
5
|
+
} & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, "onUpdate:modelValue"> & ({
|
|
6
|
+
modelValue?: WlDatePickerModel<NoInfer<Mode>>;
|
|
7
|
+
} & {
|
|
8
|
+
placeholder?: string;
|
|
9
|
+
size?: WlSizeSm;
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
invalid?: boolean;
|
|
12
|
+
showIcon?: boolean;
|
|
13
|
+
minDate?: string;
|
|
14
|
+
maxDate?: string;
|
|
15
|
+
displayFormat?: "dd.mm.yyyy" | "yyyy-mm-dd";
|
|
16
|
+
selectionMode?: Mode;
|
|
17
|
+
startLabel?: string;
|
|
18
|
+
endLabel?: string;
|
|
19
|
+
motion?: boolean;
|
|
20
|
+
pt?: Record<string, unknown>;
|
|
21
|
+
}) & Partial<{}>> & import('vue').PublicProps;
|
|
22
|
+
expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
|
|
23
|
+
attrs: any;
|
|
24
|
+
slots: {};
|
|
25
|
+
emit: (evt: "update:modelValue", value: WlDatePickerModel<NoInfer<Mode>>) => void;
|
|
26
|
+
}>) => import('vue').VNode & {
|
|
27
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
12
28
|
};
|
|
13
|
-
type __VLS_PublicProps = {
|
|
14
|
-
modelValue?: string | null;
|
|
15
|
-
} & __VLS_Props;
|
|
16
|
-
declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
17
|
-
"update:modelValue": (value: string | null) => any;
|
|
18
|
-
}, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
19
|
-
"onUpdate:modelValue"?: ((value: string | null) => any) | undefined;
|
|
20
|
-
}>, {
|
|
21
|
-
size: WlSizeSm;
|
|
22
|
-
disabled: boolean;
|
|
23
|
-
invalid: boolean;
|
|
24
|
-
placeholder: string;
|
|
25
|
-
motion: boolean;
|
|
26
|
-
showIcon: boolean;
|
|
27
|
-
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
|
|
28
|
-
control: HTMLInputElement;
|
|
29
|
-
panel: HTMLDivElement;
|
|
30
|
-
}, any>;
|
|
31
29
|
export default _default;
|
|
30
|
+
type __VLS_PrettifyLocal<T> = {
|
|
31
|
+
[K in keyof T]: T[K];
|
|
32
|
+
} & {};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { WlDensity, WlSizeSm } from '../types';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
accept?: string;
|
|
4
|
+
multiple?: boolean;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
chooseLabel?: string;
|
|
7
|
+
ariaLabel?: string;
|
|
8
|
+
size?: WlSizeSm;
|
|
9
|
+
density?: WlDensity;
|
|
10
|
+
pt?: Record<string, unknown>;
|
|
11
|
+
};
|
|
12
|
+
declare function __VLS_template(): {
|
|
13
|
+
attrs: Partial<{}>;
|
|
14
|
+
slots: {
|
|
15
|
+
trigger?(_: {
|
|
16
|
+
choose: () => void;
|
|
17
|
+
clear: () => void;
|
|
18
|
+
disabled: boolean;
|
|
19
|
+
attrs: {
|
|
20
|
+
[k: string]: unknown;
|
|
21
|
+
};
|
|
22
|
+
}): any;
|
|
23
|
+
};
|
|
24
|
+
refs: {
|
|
25
|
+
input: HTMLInputElement;
|
|
26
|
+
};
|
|
27
|
+
rootEl: any;
|
|
28
|
+
};
|
|
29
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
30
|
+
declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {
|
|
31
|
+
choose: () => void;
|
|
32
|
+
clear: () => void;
|
|
33
|
+
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
34
|
+
select: (files: File[]) => any;
|
|
35
|
+
cancel: () => any;
|
|
36
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
37
|
+
onSelect?: ((files: File[]) => any) | undefined;
|
|
38
|
+
onCancel?: (() => any) | undefined;
|
|
39
|
+
}>, {
|
|
40
|
+
size: WlSizeSm;
|
|
41
|
+
disabled: boolean;
|
|
42
|
+
multiple: boolean;
|
|
43
|
+
density: WlDensity;
|
|
44
|
+
chooseLabel: string;
|
|
45
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
|
|
46
|
+
input: HTMLInputElement;
|
|
47
|
+
}, any>;
|
|
48
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
49
|
+
export default _default;
|
|
50
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
51
|
+
new (): {
|
|
52
|
+
$slots: S;
|
|
53
|
+
};
|
|
54
|
+
};
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { WlIconButtonVariant
|
|
1
|
+
import { WlIconButtonVariant } from '../types';
|
|
2
|
+
import { WlIconInput } from '../iconNames';
|
|
2
3
|
type __VLS_Props = {
|
|
3
4
|
variant?: WlIconButtonVariant;
|
|
4
5
|
size?: "md" | "sm";
|
|
5
|
-
icon?:
|
|
6
|
+
icon?: WlIconInput;
|
|
6
7
|
active?: boolean;
|
|
7
8
|
disabled?: boolean;
|
|
8
9
|
count?: number;
|
|
@@ -26,8 +26,8 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps,
|
|
|
26
26
|
}, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
27
27
|
"onUpdate:modelValue"?: ((value: string) => any) | undefined;
|
|
28
28
|
}>, {
|
|
29
|
-
type: string;
|
|
30
29
|
size: WlSizeSm;
|
|
30
|
+
type: string;
|
|
31
31
|
disabled: boolean;
|
|
32
32
|
invalid: boolean;
|
|
33
33
|
density: WlDensity;
|
|
@@ -10,7 +10,7 @@ type __VLS_Props = {
|
|
|
10
10
|
declare const _default: import('vue').DefineComponent<__VLS_Props, {
|
|
11
11
|
toggle: (event?: Event) => void;
|
|
12
12
|
show: (event?: Event) => void;
|
|
13
|
-
hide: () => void;
|
|
13
|
+
hide: (event?: Event) => void;
|
|
14
14
|
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
15
15
|
open: () => any;
|
|
16
16
|
close: () => any;
|
|
@@ -20,7 +20,7 @@ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
|
20
20
|
declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {
|
|
21
21
|
toggle: (event?: Event) => void;
|
|
22
22
|
show: (event?: Event) => void;
|
|
23
|
-
hide: () => void;
|
|
23
|
+
hide: (event?: Event) => void;
|
|
24
24
|
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
25
25
|
open: () => any;
|
|
26
26
|
close: () => any;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { WlDensity, WlSizeSm } from '../types';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
minTime?: string;
|
|
4
|
+
maxTime?: string;
|
|
5
|
+
size?: WlSizeSm;
|
|
6
|
+
density?: WlDensity;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
invalid?: boolean;
|
|
9
|
+
pt?: Record<string, unknown>;
|
|
10
|
+
};
|
|
11
|
+
type __VLS_PublicProps = {
|
|
12
|
+
modelValue?: string | null;
|
|
13
|
+
} & __VLS_Props;
|
|
14
|
+
declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
15
|
+
"update:modelValue": (value: string | null) => any;
|
|
16
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
17
|
+
"onUpdate:modelValue"?: ((value: string | null) => any) | undefined;
|
|
18
|
+
}>, {
|
|
19
|
+
size: WlSizeSm;
|
|
20
|
+
disabled: boolean;
|
|
21
|
+
invalid: boolean;
|
|
22
|
+
density: WlDensity;
|
|
23
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
|
|
24
|
+
control: HTMLInputElement;
|
|
25
|
+
}, any>;
|
|
26
|
+
export default _default;
|
|
@@ -20,6 +20,7 @@ export { default as WlDrawer } from './WlDrawer.vue';
|
|
|
20
20
|
export { default as WlEmpty } from './WlEmpty.vue';
|
|
21
21
|
export { default as WlField } from './WlField.vue';
|
|
22
22
|
export { default as WlFileUpload } from './WlFileUpload.vue';
|
|
23
|
+
export { default as WlFilePicker } from './WlFilePicker.vue';
|
|
23
24
|
export { default as WlFilterBar } from './WlFilterBar.vue';
|
|
24
25
|
export { default as WlIcon } from './WlIcon.vue';
|
|
25
26
|
export { default as WlIconButton } from './WlIconButton.vue';
|
|
@@ -48,4 +49,5 @@ export { default as WlTable } from './WlTable.vue';
|
|
|
48
49
|
export { default as WlTabs } from './WlTabs.vue';
|
|
49
50
|
export { default as WlTag } from './WlTag.vue';
|
|
50
51
|
export { default as WlTextarea } from './WlTextarea.vue';
|
|
52
|
+
export { default as WlTimePicker } from './WlTimePicker.vue';
|
|
51
53
|
export { default as WlToast } from './WlToast.vue';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Browser selection only. The consumer owns the chosen files and upload policy. */
|
|
2
|
+
export declare function useNativeFilePicker(disabled: () => boolean, select: (files: File[]) => void, cancel?: () => void): {
|
|
3
|
+
input: import('vue').Ref<HTMLInputElement | null, HTMLInputElement | null>;
|
|
4
|
+
choose: () => void;
|
|
5
|
+
clear: () => void;
|
|
6
|
+
onChange: (event: Event) => void;
|
|
7
|
+
onCancel: () => void;
|
|
8
|
+
};
|