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.
Files changed (68) hide show
  1. package/CHANGELOG.md +52 -1
  2. package/README.md +97 -44
  3. package/dist/components/WlAccordion.vue.d.ts +1 -1
  4. package/dist/components/WlButton.vue.d.ts +1 -1
  5. package/dist/components/WlDatePicker.vue.d.ts +30 -29
  6. package/dist/components/WlEmpty.vue.d.ts +2 -2
  7. package/dist/components/WlFilePicker.vue.d.ts +54 -0
  8. package/dist/components/WlIcon.vue.d.ts +2 -2
  9. package/dist/components/WlIconButton.vue.d.ts +3 -2
  10. package/dist/components/WlInput.vue.d.ts +1 -1
  11. package/dist/components/WlMenu.vue.d.ts +1 -1
  12. package/dist/components/WlNavItem.vue.d.ts +2 -2
  13. package/dist/components/WlPopover.vue.d.ts +1 -1
  14. package/dist/components/WlStatCard.vue.d.ts +2 -2
  15. package/dist/components/WlTimePicker.vue.d.ts +26 -0
  16. package/dist/components/index.d.ts +2 -0
  17. package/dist/composables/useNativeFilePicker.d.ts +8 -0
  18. package/dist/design-system/tokens.generated.d.ts +627 -0
  19. package/dist/design-system/types.d.ts +3 -2
  20. package/dist/design-tokens.json +747 -48
  21. package/dist/iconNames.d.ts +5 -0
  22. package/dist/icons.generated.d.ts +1 -1
  23. package/dist/index.d.ts +2 -0
  24. package/dist/index.js +3466 -2211
  25. package/dist/manifest.json +508 -4
  26. package/dist/theme.d.ts +1 -0
  27. package/dist/types.d.ts +14 -8
  28. package/dist/utils/anchoredOverlay.d.ts +1 -1
  29. package/dist/utils/options.d.ts +1 -1
  30. package/dist/utils/overlayStack.d.ts +11 -0
  31. package/fonts/gavia/FONTLOG.txt +17 -0
  32. package/fonts/gavia/Gavia-Bold.ttf +0 -0
  33. package/fonts/gavia/Gavia-Bold.woff2 +0 -0
  34. package/fonts/gavia/Gavia-BoldItalic.ttf +0 -0
  35. package/fonts/gavia/Gavia-BoldItalic.woff2 +0 -0
  36. package/fonts/gavia/Gavia-Light.ttf +0 -0
  37. package/fonts/gavia/Gavia-Light.woff2 +0 -0
  38. package/fonts/gavia/Gavia-LightItalic.ttf +0 -0
  39. package/fonts/gavia/Gavia-LightItalic.woff2 +0 -0
  40. package/fonts/gavia/Gavia-Medium.ttf +0 -0
  41. package/fonts/gavia/Gavia-Medium.woff2 +0 -0
  42. package/fonts/gavia/Gavia-MediumItalic.ttf +0 -0
  43. package/fonts/gavia/Gavia-MediumItalic.woff2 +0 -0
  44. package/fonts/gavia/Gavia-Regular.ttf +0 -0
  45. package/fonts/gavia/Gavia-Regular.woff2 +0 -0
  46. package/fonts/gavia/Gavia-RegularItalic.ttf +0 -0
  47. package/fonts/gavia/Gavia-RegularItalic.woff2 +0 -0
  48. package/fonts/gavia/Gavia-SemiBold.ttf +0 -0
  49. package/fonts/gavia/Gavia-SemiBold.woff2 +0 -0
  50. package/fonts/gavia/Gavia-SemiBoldItalic.ttf +0 -0
  51. package/fonts/gavia/Gavia-SemiBoldItalic.woff2 +0 -0
  52. package/fonts/gavia/Gavia-Thin.ttf +0 -0
  53. package/fonts/gavia/Gavia-Thin.woff2 +0 -0
  54. package/fonts/gavia/Gavia-ThinItalic.ttf +0 -0
  55. package/fonts/gavia/Gavia-ThinItalic.woff2 +0 -0
  56. package/fonts/gavia/OFL.txt +94 -0
  57. package/fonts/gavia/Onest-OFL.txt +93 -0
  58. package/fonts/gavia/manifest.json +225 -0
  59. package/fonts/gavia/qa-report.json +3919 -0
  60. package/package.json +5 -2
  61. package/styles/base.css +148 -12
  62. package/styles/fonts/gavia.css +197 -0
  63. package/styles/primitives.css +8 -2
  64. package/styles/reset.css +1 -1
  65. package/themes/gavia.css +460 -0
  66. package/themes/graphite.css +29 -0
  67. package/themes/newspaper.css +29 -0
  68. 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
- [![Смотреть демо Gavia UI](https://img.shields.io/badge/LIVE_DEMO-2563EB?style=for-the-badge)](https://whitewolf06.github.io/gavia-ui/ "Смотреть демо Gavia UI")
7
+ Бесплатная библиотека компонентов и дизайн-система для **Vue 3 + TypeScript**.
8
+ В составе: **53 компонента, 113 SVG-иконок, 444 дизайн-токена, четыре темы
9
+ и гарнитура Gavia Sans 0.6**. Runtime-зависимостей нет; Vue 3 — единственный
10
+ обязательный peer. Стили подключаются явно.
4
11
 
5
- Версия `0.7.1`. [История изменений](CHANGELOG.md).
6
- [Переход на Gavia UI](https://github.com/whitewolf06/gavia-ui/blob/main/docs/migration-0.7.md).
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
- Создатель и сопровождающий — [Gorbach Dmitry](https://github.com/whitewolf06).
9
- Витрина в репозитории включает живые примеры, страницу об авторе и полный changelog;
10
- [публикация документации](https://github.com/whitewolf06/gavia-ui/blob/main/docs/hosting.md).
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
- MIT — бесплатно для личного и коммерческого использования. Можно использовать,
15
- изменять и распространять при сохранении уведомления об авторских правах и
16
- текста лицензии. Полный текст включён в [LICENSE](LICENSE).
27
+ ```bash
28
+ pnpm add gavia-ui@0.9.1 vue
29
+ ```
17
30
 
18
- Установка из публичного npm:
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
- ```bash
21
- pnpm add gavia-ui vue
41
+ document.documentElement.dataset.wlTheme = "gavia";
42
+ createApp(App).mount("#app");
22
43
  ```
23
44
 
24
- GitHub-токен не нужен. Актуальное состояние публикации пакета и витрины —
25
- в [каноническом README](https://github.com/whitewolf06/gavia-ui/blob/main/README.md).
26
- Архив текущих исходников `0.7.1` также можно собрать из
27
- [репозитория](https://github.com/whitewolf06/gavia-ui):
45
+ ```vue
46
+ <script setup lang="ts">
47
+ import { WlButton } from "gavia-ui";
48
+ </script>
28
49
 
29
- ```bash
30
- # Из корня репозитория:
31
- pnpm build
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
- Runtime-зависимостей нет; Vue 3 — единственный обязательный peer.
38
- [История изменений](CHANGELOG.md) и
39
- [переход с прежнего имени](https://github.com/whitewolf06/gavia-ui/blob/main/docs/migration-gavia.md).
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
- показывает каталог токенов, три темы и контракты 51 компонента.
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/white.css";
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` | ESM + `.d.ts`: компоненты, типы, `createWlPt`, `WlTooltip` |
115
- | `gavia-ui/styles/reset.css` | минимальный reset (слой `wl.reset`) |
116
- | `gavia-ui/styles/base.css` | токены + стили компонентов (`wl.tokens`, `wl.components`) |
117
- | `gavia-ui/themes/<theme>.css`| тема: `white`, `graphite` или `newspaper` |
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
- `WlButton`, `WlIcon`, `WlInput`, `WlTextarea`, `WlSelect`, `WlMultiSelect`,
248
- `WlAutocomplete`, `WlCheckbox`, `WlRadio`, `WlSwitch`, `WlTag`, `WlChip`,
249
- `WlBadge`, `WlAvatar`, `WlCard`, `WlTabs`, `WlAlert`, `WlSpinner`,
250
- `WlSkeleton`, `WlProgress`, `WlDialog`, `WlConfirmDialog`, `WlDrawer`,
251
- `WlDivider` — плюс директива `WlTooltip`, `createWlPt` и типы
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
- Машиночитаемое описание всех 51 компонентов: пропсы (типы, дефолты, enum-значения),
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
- type __VLS_Props = {
3
- placeholder?: string;
4
- size?: WlSizeSm;
5
- disabled?: boolean;
6
- invalid?: boolean;
7
- showIcon?: boolean;
8
- minDate?: string;
9
- maxDate?: string;
10
- motion?: boolean;
11
- pt?: Record<string, unknown>;
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
+ } & {};
@@ -1,6 +1,6 @@
1
- import { WlIconName } from '../types';
1
+ import { WlIconInput } from '../types';
2
2
  type __VLS_Props = {
3
- icon?: WlIconName;
3
+ icon?: WlIconInput;
4
4
  title?: string;
5
5
  description?: string;
6
6
  };
@@ -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,6 +1,6 @@
1
- import { WlIconName } from '../types';
1
+ import { WlIconInput } from '../iconNames';
2
2
  type __VLS_Props = {
3
- name?: WlIconName;
3
+ name?: WlIconInput;
4
4
  size?: number | string;
5
5
  };
6
6
  declare function __VLS_template(): {
@@ -1,8 +1,9 @@
1
- import { WlIconButtonVariant, WlIconName } from '../types';
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?: WlIconName;
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;
@@ -1,7 +1,7 @@
1
- import { WlIconName } from '../types';
1
+ import { WlIconInput } from '../types';
2
2
  type __VLS_Props = {
3
3
  label?: string;
4
- icon?: WlIconName;
4
+ icon?: WlIconInput;
5
5
  badge?: number | string;
6
6
  active?: boolean;
7
7
  disabled?: boolean;
@@ -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;
@@ -1,6 +1,6 @@
1
- import { WlIconName, WlStatCardTone } from '../types';
1
+ import { WlIconInput, WlStatCardTone } from '../types';
2
2
  type __VLS_Props = {
3
- icon?: WlIconName;
3
+ icon?: WlIconInput;
4
4
  label?: string;
5
5
  value?: string;
6
6
  description?: string;
@@ -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
+ };