gavia-ui 0.8.1 → 0.10.0

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 (105) hide show
  1. package/CHANGELOG.md +87 -0
  2. package/README.md +144 -43
  3. package/dist/components/WlAccordion.vue.d.ts +31 -6
  4. package/dist/components/WlAlert.vue.d.ts +30 -5
  5. package/dist/components/WlAutocomplete.vue.d.ts +45 -9
  6. package/dist/components/WlAvatar.vue.d.ts +23 -2
  7. package/dist/components/WlBadge.vue.d.ts +25 -2
  8. package/dist/components/WlBreadcrumbs.vue.d.ts +23 -2
  9. package/dist/components/WlButton.vue.d.ts +38 -5
  10. package/dist/components/WlButtonGroup.vue.d.ts +18 -1
  11. package/dist/components/WlCalendar.vue.d.ts +27 -8
  12. package/dist/components/WlCard.vue.d.ts +23 -2
  13. package/dist/components/WlCheckbox.vue.d.ts +30 -5
  14. package/dist/components/WlChip.vue.d.ts +29 -6
  15. package/dist/components/WlColorPicker.vue.d.ts +38 -5
  16. package/dist/components/WlCommandPalette.vue.d.ts +58 -16
  17. package/dist/components/WlConfirmDialog.vue.d.ts +23 -2
  18. package/dist/components/WlDatePicker.vue.d.ts +32 -31
  19. package/dist/components/WlDialog.vue.d.ts +41 -12
  20. package/dist/components/WlDivider.vue.d.ts +10 -1
  21. package/dist/components/WlDrawer.vue.d.ts +39 -10
  22. package/dist/components/WlEmpty.vue.d.ts +18 -1
  23. package/dist/components/WlField.vue.d.ts +23 -2
  24. package/dist/components/WlFilePicker.vue.d.ts +36 -9
  25. package/dist/components/WlFileUpload.vue.d.ts +36 -9
  26. package/dist/components/WlFilterBar.vue.d.ts +52 -13
  27. package/dist/components/WlIcon.vue.d.ts +23 -2
  28. package/dist/components/WlIconButton.vue.d.ts +34 -5
  29. package/dist/components/WlInput.vue.d.ts +34 -5
  30. package/dist/components/WlMenu.vue.d.ts +33 -10
  31. package/dist/components/WlMultiSelect.vue.d.ts +40 -9
  32. package/dist/components/WlNavItem.vue.d.ts +30 -5
  33. package/dist/components/WlNumberInput.vue.d.ts +42 -5
  34. package/dist/components/WlPageHeader.vue.d.ts +33 -2
  35. package/dist/components/WlPagination.vue.d.ts +32 -5
  36. package/dist/components/WlPasswordInput.vue.d.ts +34 -5
  37. package/dist/components/WlPill.vue.d.ts +23 -2
  38. package/dist/components/WlPopover.vue.d.ts +33 -10
  39. package/dist/components/WlProgress.vue.d.ts +29 -2
  40. package/dist/components/WlRadio.vue.d.ts +28 -5
  41. package/dist/components/WlSegmented.vue.d.ts +28 -5
  42. package/dist/components/WlSelect.vue.d.ts +36 -8
  43. package/dist/components/WlSidebar.vue.d.ts +50 -11
  44. package/dist/components/WlSkeleton.vue.d.ts +27 -2
  45. package/dist/components/WlSlider.vue.d.ts +32 -5
  46. package/dist/components/WlSpinner.vue.d.ts +27 -2
  47. package/dist/components/WlStatCard.vue.d.ts +24 -3
  48. package/dist/components/WlSteps.vue.d.ts +25 -2
  49. package/dist/components/WlSwitch.vue.d.ts +30 -5
  50. package/dist/components/WlTable.vue.d.ts +29 -2
  51. package/dist/components/WlTabs.vue.d.ts +26 -5
  52. package/dist/components/WlTag.vue.d.ts +30 -5
  53. package/dist/components/WlTextarea.vue.d.ts +32 -7
  54. package/dist/components/WlTimePicker.vue.d.ts +32 -7
  55. package/dist/components/WlToast.vue.d.ts +23 -2
  56. package/dist/composables/useNativeFilePicker.d.ts +1 -1
  57. package/dist/design-system/tokens.generated.d.ts +1185 -15
  58. package/dist/design-system/types.d.ts +3 -2
  59. package/dist/design-tokens.json +1484 -195
  60. package/dist/index.js +4315 -2885
  61. package/dist/manifest.json +26 -4
  62. package/dist/theme.d.ts +1 -0
  63. package/dist/types.d.ts +6 -1
  64. package/dist/utils/templateTeleport.vue.d.ts +1 -0
  65. package/dist/utils/templateTransition.vue.d.ts +1 -0
  66. package/dist/utils/useWlId.d.ts +2 -0
  67. package/fonts/gavia/FONTLOG.txt +17 -0
  68. package/fonts/gavia/Gavia-Bold.ttf +0 -0
  69. package/fonts/gavia/Gavia-Bold.woff2 +0 -0
  70. package/fonts/gavia/Gavia-BoldItalic.ttf +0 -0
  71. package/fonts/gavia/Gavia-BoldItalic.woff2 +0 -0
  72. package/fonts/gavia/Gavia-Light.ttf +0 -0
  73. package/fonts/gavia/Gavia-Light.woff2 +0 -0
  74. package/fonts/gavia/Gavia-LightItalic.ttf +0 -0
  75. package/fonts/gavia/Gavia-LightItalic.woff2 +0 -0
  76. package/fonts/gavia/Gavia-Medium.ttf +0 -0
  77. package/fonts/gavia/Gavia-Medium.woff2 +0 -0
  78. package/fonts/gavia/Gavia-MediumItalic.ttf +0 -0
  79. package/fonts/gavia/Gavia-MediumItalic.woff2 +0 -0
  80. package/fonts/gavia/Gavia-Regular.ttf +0 -0
  81. package/fonts/gavia/Gavia-Regular.woff2 +0 -0
  82. package/fonts/gavia/Gavia-RegularItalic.ttf +0 -0
  83. package/fonts/gavia/Gavia-RegularItalic.woff2 +0 -0
  84. package/fonts/gavia/Gavia-SemiBold.ttf +0 -0
  85. package/fonts/gavia/Gavia-SemiBold.woff2 +0 -0
  86. package/fonts/gavia/Gavia-SemiBoldItalic.ttf +0 -0
  87. package/fonts/gavia/Gavia-SemiBoldItalic.woff2 +0 -0
  88. package/fonts/gavia/Gavia-Thin.ttf +0 -0
  89. package/fonts/gavia/Gavia-Thin.woff2 +0 -0
  90. package/fonts/gavia/Gavia-ThinItalic.ttf +0 -0
  91. package/fonts/gavia/Gavia-ThinItalic.woff2 +0 -0
  92. package/fonts/gavia/OFL.txt +94 -0
  93. package/fonts/gavia/Onest-OFL.txt +93 -0
  94. package/fonts/gavia/manifest.json +225 -0
  95. package/fonts/gavia/qa-report.json +3919 -0
  96. package/package.json +8 -4
  97. package/styles/base.css +156 -35
  98. package/styles/fonts/gavia.css +197 -0
  99. package/styles/primitives.css +8 -2
  100. package/styles/reset.css +1 -1
  101. package/themes/gavia-dark.css +463 -0
  102. package/themes/gavia.css +463 -0
  103. package/themes/graphite.css +33 -1
  104. package/themes/newspaper.css +32 -0
  105. package/themes/white.css +33 -1
package/CHANGELOG.md CHANGED
@@ -6,6 +6,93 @@
6
6
 
7
7
  ## Не выпущено
8
8
 
9
+ ## 0.10.0 — 2026-10-08
10
+
11
+ ### Темы
12
+
13
+ - README выделяет Gavia / Gavia Dark как основные темы и Classic / Classic Dark / Newspaper как дополнительные; для каждой указаны идентификатор и явный CSS-импорт.
14
+ - В правом верхнем углу hero добавлена компактная ghost-кнопка солнца/луны на WlIconButton: цветная иконка 32 px, активная область 44 × 44 px, без фоновой коробки в обычном состоянии; клавиатурный фокус выделяет обводка. Gavia ↔ Gavia Dark, Classic ↔ Classic Dark; Newspaper переключается в Classic Dark и возвращается при повторном нажатии.
15
+ - Дневной и ночной фон hero загружаются заранее и остаются двумя слоями одной композиции: светлые темы используют дневной, обе тёмные — ночной. При поддержке View Transitions API смена темы использует один временный переход всей страницы; в остальных браузерах сохраняется crossfade hero. Ночной слой появляется после загрузки; prefers-reduced-motion отключает переходы.
16
+ - Лес и колоски в информационных карточках главной различимы в тёмных темах; карточки сохраняют тёмный фон. Ссылки на документы, Issues и руководство GitHub в этих карточках открываются в новой вкладке и отмечены иконкой внешнего перехода.
17
+ - Gavia Dark получила ночной фон hero с луной на месте исходного солнца, лёгким голубоватым светом и той же гагарой; поверхности получили мягкий холодно-серый, слегка синеватый подтон, основной бирюзовый акцент стал насыщеннее и чуть ближе к голубому; блок установки сохраняет цветную границу и использует тёмный бирюзовый акцентный фон.
18
+ - Холодный подтон уточнён только в шести фоновых заливках Gavia Dark: фон страницы, поднятая и вторичная поверхности, hover и два мягких акцентных фона.
19
+ - Заголовок «Ясность в каждой детали» на странице шрифта следует гарнитуре выбранной темы; образцы Gavia Sans сохраняют свой шрифт.
20
+ - Узкие WlAlert с действием и закрытием сохраняют читаемую ширину текста; действия переносятся по доступной ширине компонента.
21
+ - Добавлена Gavia Dark (`gavia-dark`, `themes/gavia-dark.css`) с Gavia Sans; каталог содержит пять тем.
22
+ - White / Graphite отображаются как Classic / Classic Dark. Идентификаторы `white` / `graphite`, CSS-пути, значения прежних тем и позиции каталога сохранены.
23
+ - `wlDesignThemes` расширен с четырёх до пяти элементов; literal labels изменены. Используйте `WlDesignTheme` / `WlThemeName` и `name`, не фиксируйте старую длину tuple или подпись. [Миграция тем](https://github.com/whitewolf06/gavia-ui/blob/main/docs/migration-themes.md).
24
+
25
+ ### Проверки и совместимость
26
+
27
+ - Фактический публичный TypeScript/CSS/pt-контракт защищён снимком 0.9.1; проверяется прежний Vue-потребитель.
28
+ - Добавлены визуальные эталоны Gavia с настоящим Gavia Sans и axe-проверки WCAG 2.2 AA.
29
+ - Архив запускается в браузере на desktop/mobile; Node import, SSR/hydration и размер WlButton проверяются отдельно.
30
+ - Исправлена поддержка Vue 3.4: declarations и SSR-идентификаторы совместимы с минимальным peer; Vue 3.5 сохраняет нативные идентификаторы.
31
+ - Select/MultiSelect/Autocomplete связывают контролы и именованные списки через ARIA.
32
+ - Добавлены --wl-text-accent/--wl-text-accent-hover и foundation-значение для контрастного текста; Graphite сохраняет прежний цвет основного действия.
33
+ - Из сборки одной кнопки исключены неиспользуемые каталоги токенов/компонентов; публичные экспорты сохранены.
34
+ - Coverage измеряется в CI с порогами по базовому результату; добавлены проверки отмены закрытия оверлея.
35
+ - В playground добавлен раздел «Качество и совместимость», сводка на главной и ссылки из поиска/футера. Покрытие, дата и источник измерения формируются из реального отчёта; бейдж README использует сохранённый снимок репозитория, опубликованный playground — отчёт своей CI-сборки.
36
+ - Подписи WlStatCard используют контрастный текстовый токен темы.
37
+ - Покрытие в playground показано процентными полосами WlProgress со шкалой 0–100%; цвета, радиусы и анимация наследуются от темы.
38
+ - Подготовка версий выполняется Changesets, prerelease использует npm next; витрины теговых выпусков сохраняются отдельно.
39
+ - Установка через pnpm, npm и Bun доступна в playground и README; добавлены шаблоны Issues и политика браузеров/версий.
40
+
41
+ ### Changesets
42
+
43
+ Add Gavia Dark with Gavia Sans, matching Gavia geometry, an accessible dark lake palette, and explicit themes/gavia-dark.css import. Rename display labels White and Graphite to Classic and Classic Dark while preserving the white/graphite identifiers, CSS paths and original catalogue positions. The public theme catalogue now contains five entries; see docs/migration-themes.md for literal tuple and label consumers.
44
+
45
+ Use a subtly blue moonlit night version of the original lake hero in both Gavia Dark and Classic Dark, keeping the moon at the original sun position. In Gavia Dark, use cool-gray dark backgrounds at comparable luminance, with a soft, slightly blue undertone for neutral surfaces. Strengthen the turquoise brand accent and shift it slightly toward blue for primary actions, links, the logo and focus while preserving status colors. Give the installation card a muted dark turquoise accent fill with a distinct turquoise border, matching the role of the light Gavia accent surface.
46
+
47
+ Refine only six Gavia Dark background fills: `--wl-bg` #18191b, `--wl-bg-raised` #222325, `--wl-bg-soft` #2c2d30, `--wl-bg-hover` #3c3d41, `--wl-accent-soft` #293c3f and `--wl-accent-soft-hover` #33484c.
48
+
49
+ Keep the home forest and reeds illustrations visible on dark surfaces using theme-aware image blending. Mark the project-card GitHub documentation and contribution links as external and open them in a new tab.
50
+
51
+ Keep narrow WlAlert messages readable by wrapping actions when an icon, action and close control share the available width.
52
+
53
+ Add a ghost sun/moon WlIconButton in the hero’s upper right corner, with a tinted 32 px icon, a 44 × 44 px interaction area and no boxed background in its normal state, for Gavia ↔ Gavia Dark and Classic ↔ Classic Dark; Newspaper switches to Classic Dark and back to Newspaper. Keep both day/night images mounted and preloaded with the same composition: all light themes use day and both dark themes use night. Use one temporary full-page transition when View Transitions API is available, with hero crossfade as the fallback. Show the night layer once loaded; prefers-reduced-motion disables the transitions.
54
+
55
+ Проверки совместимости API 0.9.1, визуальные эталоны Gavia Sans, доступность WCAG 2.2 AA,
56
+ браузерный запуск установленного архива, SSR/hydration, контроль размера и покрытия.
57
+ Публичные имена и схема подключения сохранены.
58
+
59
+
60
+ Исправлена поддержка Vue 3.4: declarations и SSR-идентификаторы совместимы
61
+ с минимальным peer. Списки получили доступные имена и связи ARIA. В Graphite
62
+ акцентный текст стал контрастнее; цвет primary-кнопок сохранён. Сборка
63
+ приложения с одной кнопкой больше не удерживает неиспользуемые каталоги.
64
+ Установка через npm и Bun добавлена в playground и проверяется из архива.
65
+
66
+ ## 0.9.1 — 2026-10-07
67
+
68
+ Выпуск включает изменения ветки 0.9 и исправленные браузерные проверки.
69
+ Версия 0.9.0 не была опубликована в npm; переход выполняется с 0.8.1 сразу на 0.9.1.
70
+
71
+ ### Добавлено
72
+
73
+ - Gavia Sans 0.6: кириллица и латиница, 6 весов, 12 прямых/наклонных начертаний, TTF/WOFF2. Явные exports для шрифтового CSS и файлов; лицензия SIL OFL 1.1. Прежнее CSS-семейство Gavia и пути импорта сохранены.
74
+ - Тема Gavia с тёплым фоном, основным цветом #294451 и danger #ab4448. Gavia Sans используется только в Gavia; White, Graphite и Newspaper сохраняют свою типографику. Базовая тема библиотеки остаётся White.
75
+ - Страница шрифта в playground: русский/английский текст, числа, все веса и проба собственного текста. Скачивание Gavia-Sans-0.6.zip со страницы и из футера: 12 TTF, 12 WOFF2, CSS и лицензии.
76
+ - Подбор темы: 8 ключевых цветов, живые компоненты, проверка контраста, локальный черновик и экспорт JSON/CSS.
77
+ - Полные руководства по 53 компонентам: интерактивные настройки, копируемые SFC, API, доступность и версия добавления. Иконки и темы собраны в документации; прежние URL галереи сохраняют переходы.
78
+ - WlDatePicker: необязательный selectionMode="range" с ISO-диапазоном и общим календарём. Одиночный режим и строковая модель остаются прежними.
79
+ - Документация основ: типографика, layout, тексты и адаптивность с рабочими примерами. CSS-примитивы дополнены вариантами контейнера, разделителем, локальной прокруткой и изоляцией слоёв.
80
+ - Общие верхние блоки страниц на WlPageHeader/WlBreadcrumbs; фотографическая главная с установкой, метриками, разделами и автором. README с актуальным логотипом, графической шапкой и кратким подключением.
81
+
82
+ ### Исправлено
83
+
84
+ - В Gavia и образцах шрифта сохранена точная ширина табличных цифр в Linux Chromium; настройка рендеринга вынесена в токены темы. Утверждённые файлы шрифта не изменялись.
85
+ - Браузерные проверки документации ждут завершения перестройки мобильного меню; установка зависимостей предпочитает Ubuntu archive и имеет отдельный лимит времени.
86
+
87
+ - Браузерный CI распределён по четырём заданиям; крупные проверки SVG разделены по темам с сохранением всех состояний. Тест чисел проверяет ширину набора и загрузку шрифта; исходные файлы Gavia Sans не менялись.
88
+
89
+ - Главная наследует шрифты, цвета, радиусы и состояния выбранной темы; изображения и расположение остаются общими. Установка и метрики 2×2 используют единую сетку и адаптивные отступы.
90
+ - Шапка: название 20 px, выравнивание логотипа, разные иконки дизайн-системы и подбора темы, favicon в основном цвете Gavia. Компактное меню поддерживает клавиатуру и возврат фокуса.
91
+ - Короткие вкладки API и «Доступность» больше не растягиваются по высоте sidebar. Боковой каталог закреплён под шапкой; иконки, категории и интервалы пунктов выровнены.
92
+ - Активный подпункт оглавления отмечается небольшим шевроном и плавным сдвигом на 8 px; настройка уменьшения анимации учитывается, прокрутка не меняет адрес.
93
+ - В примерах WlPopover разделены элементы управления и значения вложенного диалога; копируемый SFC сохраняет те же отступы. Фокус DatePicker охватывает поле вместе с календарной кнопкой.
94
+ - Страница шрифта использует актуальные компоненты UI-кита; прежние версии, сравнения, дублирующая проба текста и глобальный перехват Ctrl+S убраны из презентации.
95
+
9
96
  ## 0.8.1 — 2026-10-06
10
97
 
11
98
  Выпуск включает изменения ветки 0.8 и исправление вложенных оверлеев.
package/README.md CHANGED
@@ -1,50 +1,128 @@
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
+ [![Покрытие строк unit-тестами — снимок репозитория](https://raw.githubusercontent.com/whitewolf06/gavia-ui/main/docs/quality-coverage.svg)](https://github.com/whitewolf06/gavia-ui/blob/main/apps/playground/src/project/quality-report.generated.json)
8
+
9
+ Бесплатная библиотека компонентов и дизайн-система для **Vue 3 + TypeScript**.
10
+ В составе: **53 компонента, 113 SVG-иконок, 447 дизайн-токенов, пять тем:
11
+ Gavia, Gavia Dark, Classic, Classic Dark, Newspaper и гарнитура Gavia Sans 0.6**.
12
+ Runtime-зависимостей нет; Vue 3 — единственный
13
+ обязательный peer. Стили подключаются явно.
14
+
15
+ <p align="center">
16
+ <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>
17
+ · <a href="https://whitewolf06.github.io/gavia-ui/?view=docs">Документация</a>
18
+ · <a href="https://whitewolf06.github.io/gavia-ui/?view=font">Gavia Sans</a>
19
+ · <a href="https://github.com/whitewolf06/gavia-ui">GitHub</a>
20
+ </p>
21
+
22
+ [Качество и совместимость](https://whitewolf06.github.io/gavia-ui/?view=docs&section=quality):
23
+ unit-тесты, покрытие Vitest/V8, браузеры, доступность, SSR и проверка установленного пакета.
24
+ Доля успешных unit-тестов и покрытие показаны процентными шкалами 0–100%; это измерение, а не статус CI.
25
+ Бейдж — сохранённый снимок покрытия строк в репозитории. Его дата, версия и источник —
26
+ [в JSON-отчёте](https://github.com/whitewolf06/gavia-ui/blob/main/apps/playground/src/project/quality-report.generated.json). Страница качества показывает измерение
27
+ из CI последней опубликованной сборки Playground; оно может отличаться от снимка.
28
+ [Текущие запуски CI](https://github.com/whitewolf06/gavia-ui/actions).
29
+
30
+ Версия **0.10.0**. [История изменений](CHANGELOG.md) ·
31
+ [Миграция 0.10](https://github.com/whitewolf06/gavia-ui/blob/main/docs/migration-0.10.0.md) ·
32
+ [История ребрендинга](https://github.com/whitewolf06/gavia-ui/blob/main/docs/migration-gavia.md).
33
+ Код UI Kit — [MIT](LICENSE), файлы шрифта —
34
+ [SIL OFL 1.1](https://github.com/whitewolf06/gavia-ui/blob/main/packages/ui-kit/fonts/gavia/OFL.txt).
35
+
36
+ ## Темы
37
+
38
+ ### Основные
39
+
40
+ **Gavia** и **Gavia Dark** — фирменные светлая и тёмная темы Gavia UI:
41
+ бирюзовый акцент, общая геометрия компонентов и шрифт **Gavia Sans**.
4
42
 
5
- Версия исходников `0.8.1` готовится к выпуску; опубликованная npm-версия пока `0.7.1`. [История изменений](CHANGELOG.md).
6
- [Переход на Gavia UI](https://github.com/whitewolf06/gavia-ui/blob/main/docs/migration-0.7.md).
43
+ | Тема | Режим | `data-wl-theme` | CSS из пакета |
44
+ | --- | --- | --- | --- |
45
+ | **Gavia** | Светлая | `gavia` | `gavia-ui/themes/gavia.css` |
46
+ | **Gavia Dark** | Тёмная | `gavia-dark` | `gavia-ui/themes/gavia-dark.css` |
7
47
 
8
- [Новые компоненты и переход 0.8](https://github.com/whitewolf06/gavia-ui/blob/main/docs/migration-0.8.md).
48
+ Gavia Dark добавлена в 0.10.0.
9
49
 
10
- Создатель и сопровождающий — [Gorbach Dmitry](https://github.com/whitewolf06).
11
- Витрина в репозитории включает живые примеры, страницу об авторе и полный changelog;
12
- [публикация документации](https://github.com/whitewolf06/gavia-ui/blob/main/docs/hosting.md).
50
+ ### Дополнительные
13
51
 
14
- ## Лицензия и установка
52
+ Альтернативное оформление тех же компонентов: Classic и Classic Dark используют
53
+ системный sans, Newspaper — системный основной текст и заголовки с засечками.
15
54
 
16
- MIT — бесплатно для личного и коммерческого использования. Можно использовать,
17
- изменять и распространять при сохранении уведомления об авторских правах и
18
- текста лицензии. Полный текст включён в [LICENSE](LICENSE).
55
+ | Тема | Оформление | `data-wl-theme` | CSS из пакета |
56
+ | --- | --- | --- | --- |
57
+ | **Classic** | Светлая нейтральная | `white` | `gavia-ui/themes/white.css` |
58
+ | **Classic Dark** | Тёмная нейтральная | `graphite` | `gavia-ui/themes/graphite.css` |
59
+ | **Newspaper** | Бумажная, с редакционной типографикой | `newspaper` | `gavia-ui/themes/newspaper.css` |
19
60
 
20
- Установка из публичного npm:
61
+ Выберите CSS темы и её идентификатор из таблицы. Для обеих основных тем также
62
+ подключите `gavia-ui/styles/fonts/gavia.css`. Без явного выбора темы библиотека
63
+ использует Classic (`white`).
64
+
65
+ ## Быстрый старт
21
66
 
22
67
  ```bash
23
- pnpm add gavia-ui vue
68
+ pnpm add gavia-ui@0.10.0 vue
69
+ # либо
70
+ npm install gavia-ui@0.10.0 vue
71
+ # либо
72
+ bun add gavia-ui@0.10.0 vue
24
73
  ```
25
74
 
26
- GitHub-токен не нужен. Актуальное состояние публикации пакета и витрины —
27
- в [каноническом README](https://github.com/whitewolf06/gavia-ui/blob/main/README.md).
28
- Архив текущих исходников `0.8.1` также можно собрать из
29
- [репозитория](https://github.com/whitewolf06/gavia-ui):
75
+ ```ts
76
+ // main.ts
77
+ import { createApp } from "vue";
78
+ import "gavia-ui/styles/reset.css";
79
+ import "gavia-ui/styles/fonts/gavia.css";
80
+ import "gavia-ui/styles/base.css";
81
+ import "gavia-ui/styles/primitives.css"; // необязательные классы компоновки и типографики
82
+ import "gavia-ui/themes/gavia.css";
83
+ import App from "./App.vue";
30
84
 
31
- ```bash
32
- # Из корня репозитория:
33
- pnpm build
34
- pnpm run pack
35
- # В приложении-потребителе:
36
- pnpm add /absolute/path/to/gavia-ui/packages/ui-kit/gavia-ui-0.8.1.tgz vue
85
+ document.documentElement.dataset.wlTheme = "gavia";
86
+ createApp(App).mount("#app");
87
+ ```
88
+
89
+ ```vue
90
+ <script setup lang="ts">
91
+ import { WlButton } from "gavia-ui";
92
+ </script>
93
+
94
+ <template>
95
+ <WlButton>Создать проект</WlButton>
96
+ </template>
37
97
  ```
38
98
 
39
- Runtime-зависимостей нет; Vue 3 — единственный обязательный peer.
40
- [История изменений](CHANGELOG.md) и
41
- [переход с прежнего имени](https://github.com/whitewolf06/gavia-ui/blob/main/docs/migration-gavia.md).
99
+ Вместо строки `dataset.wlTheme` можно указать `<html data-wl-theme="gavia">`
100
+ в `index.html`. Обе Gavia используют Gavia Sans; без шрифтового CSS доступен
101
+ системный fallback. Gavia Dark подключается через `gavia-ui/themes/gavia-dark.css`
102
+ и `data-wl-theme="gavia-dark"`. Без выбора темы библиотека сохраняет Classic (`white`).
103
+ Classic / Classic Dark / Newspaper используют `themes/white.css` / `themes/graphite.css` /
104
+ `themes/newspaper.css` и идентификаторы `white` / `graphite` / `newspaper`.
105
+ [Названия тем и совместимость](https://github.com/whitewolf06/gavia-ui/blob/main/docs/migration-themes.md).
106
+ `WlConfig` для базового подключения не требуется.
107
+
108
+ ## Шрифт Gavia Sans
109
+
110
+ Gavia Sans 0.6 входит в пакет: кириллица и латиница, шесть весов
111
+ 100 / 300 / 400 / 500 / 600 / 700 с прямым и наклонным начертанием, WOFF2 и TTF.
112
+ Она служит основным шрифтом **тем Gavia и Gavia Dark**; Classic, Classic Dark и Newspaper
113
+ сохраняют свою типографику. Подключение явное: `import "gavia-ui/styles/fonts/gavia.css";`.
114
+
115
+ Файлы доступны через `gavia-ui/fonts/gavia/<file>` и применимы без Vue.
116
+ [Образцы и скачивание Gavia-Sans-0.6.zip](https://whitewolf06.github.io/gavia-ui/?view=font) ·
117
+ [Подключение и лицензия](https://github.com/whitewolf06/gavia-ui/blob/main/docs/font-gavia.md).
118
+ Старое CSS-имя `Gavia` зарегистрировано как совместимый алиас; пути импорта
119
+ и имена файлов `Gavia-*.ttf` / `Gavia-*.woff2` сохранены.
42
120
 
43
121
  ## Дизайн-система
44
122
 
45
123
  Общие роли типографики, шкала расстояний, поверхности, состояния и UI-паттерны
46
124
  описаны в [руководстве](https://github.com/whitewolf06/gavia-ui/blob/main/docs/design-system.md). Playground `?view=system`
47
- показывает каталог токенов, три темы и контракты 53 компонентов.
125
+ показывает 447 токенов, пять тем и контракты 53 компонентов.
48
126
 
49
127
  Опциональная компоновка и типографика: явный импорт
50
128
  `gavia-ui/styles/primitives.css`. Экспорты `wlDesignTokens`,
@@ -69,20 +147,25 @@ primary/danger используют новые роли `--wl-action-primary-*`
69
147
  | ------------ | ------ | -------------------------- |
70
148
  | `vue` | ^3.4 | обязательный peer |
71
149
 
72
- ## Подключение
150
+ ## Необязательная конфигурация
151
+
152
+ WlConfig задаёт глобальные pt, локаль и анимацию. Сервисы подключайте, если
153
+ используете уведомления или диалог подтверждения:
73
154
 
74
155
  ```ts
75
156
  // main.ts
76
157
  import { createApp } from "vue";
77
158
  import { WlConfig, WlToastService, WlConfirmationService, wlLocaleRu } from "gavia-ui";
78
159
 
79
- // Стили подключаются явно: reset → base → тема
160
+ // Стили подключаются явно: reset → шрифт → base → тема
80
161
  import "gavia-ui/styles/reset.css";
162
+ import "gavia-ui/styles/fonts/gavia.css";
81
163
  import "gavia-ui/styles/base.css";
82
- import "gavia-ui/themes/white.css";
164
+ import "gavia-ui/themes/gavia.css";
83
165
 
84
166
  import App from "./App.vue";
85
167
 
168
+ document.documentElement.dataset.wlTheme = "gavia";
86
169
  const app = createApp(App);
87
170
  app.use(WlConfig, { locale: wlLocaleRu });
88
171
  app.use(WlToastService);
@@ -111,12 +194,18 @@ const text = ref("");
111
194
 
112
195
  ## Exports
113
196
 
114
- | Subpath | Содержимое |
115
- | ------------------------------------- | -------------------------------------------- |
116
- | `gavia-ui` | ESM + `.d.ts`: компоненты, типы, `createWlPt`, `WlTooltip` |
117
- | `gavia-ui/styles/reset.css` | минимальный reset (слой `wl.reset`) |
118
- | `gavia-ui/styles/base.css` | токены + стили компонентов (`wl.tokens`, `wl.components`) |
119
- | `gavia-ui/themes/<theme>.css`| тема: `white`, `graphite` или `newspaper` |
197
+ | Subpath | Содержимое |
198
+ | --- | --- |
199
+ | `gavia-ui` | ESM + `.d.ts`: компоненты, типы, `createWlPt`, `WlTooltip`, manifest и токены |
200
+ | `gavia-ui/styles/reset.css` | минимальный reset (слой `wl.reset`) |
201
+ | `gavia-ui/styles/base.css` | токены + стили компонентов (`wl.tokens`, `wl.components`) |
202
+ | `gavia-ui/styles/primitives.css` | необязательные классы компоновки и типографики |
203
+ | `gavia-ui/styles/fonts/gavia.css` | явное подключение Gavia Sans и совместимого CSS-алиаса `Gavia` |
204
+ | `gavia-ui/fonts/gavia/<file>` | WOFF2, TTF и лицензии шрифта |
205
+ | `gavia-ui/themes/<theme>.css` | `gavia`, `white`, `graphite` или `newspaper` |
206
+ | `gavia-ui/manifest.json` | JSON-контракты всех 53 компонентов |
207
+ | `gavia-ui/design-tokens.json` | JSON-каталог токенов, тем, типографики и шкал |
208
+ | `gavia-ui/package.json` | метаданные пакета |
120
209
 
121
210
  ## Токены и темы
122
211
 
@@ -136,7 +225,7 @@ const text = ref("");
136
225
  <html data-wl-theme="graphite">
137
226
  ```
138
227
 
139
- или явным импортом одной темы. Своя тема создаётся заменой токенов, без форка:
228
+ Если используете одну тему, импортируйте её CSS и установите соответствующий атрибут:
140
229
 
141
230
  ```ts
142
231
  import "gavia-ui/themes/newspaper.css";
@@ -246,11 +335,20 @@ app.use(WlConfig, {
246
335
 
247
336
  ## Компоненты
248
337
 
249
- `WlButton`, `WlIcon`, `WlInput`, `WlTextarea`, `WlSelect`, `WlMultiSelect`,
250
- `WlAutocomplete`, `WlCheckbox`, `WlRadio`, `WlSwitch`, `WlTag`, `WlChip`,
251
- `WlBadge`, `WlAvatar`, `WlCard`, `WlTabs`, `WlAlert`, `WlSpinner`,
252
- `WlSkeleton`, `WlProgress`, `WlDialog`, `WlConfirmDialog`, `WlDrawer`,
253
- `WlDivider` — плюс директива `WlTooltip`, `createWlPt` и типы
338
+ | Группа | Компоненты |
339
+ | --- | --- |
340
+ | Действия | `WlButton`, `WlIconButton`, `WlButtonGroup`, `WlSegmented`, `WlMenu`, `WlNavItem` |
341
+ | Ввод данных | `WlTimePicker`, `WlFilePicker`, `WlInput`, `WlPasswordInput`, `WlNumberInput`, `WlTextarea`, `WlSelect`, `WlMultiSelect`, `WlAutocomplete`, `WlCheckbox`, `WlRadio`, `WlSwitch`, `WlSlider`, `WlDatePicker`, `WlCalendar`, `WlColorPicker`, `WlFileUpload` |
342
+ | Данные | `WlTable`, `WlPagination`, `WlBadge`, `WlTag`, `WlChip`, `WlPill`, `WlAvatar`, `WlStatCard`, `WlProgress`, `WlSkeleton`, `WlEmpty` |
343
+ | Контейнеры | `WlCard`, `WlAccordion`, `WlTabs`, `WlDialog`, `WlDrawer`, `WlPopover`, `WlDivider` |
344
+ | Составные элементы | `WlPageHeader`, `WlFilterBar`, `WlSidebar`, `WlCommandPalette` |
345
+ | Навигация | `WlBreadcrumbs`, `WlSteps` |
346
+ | Обратная связь | `WlAlert`, `WlToast`, `WlConfirmDialog`, `WlSpinner` |
347
+ | Дополнительно | `WlField`, `WlIcon` |
348
+
349
+ У каждого компонента есть [руководство в playground](https://whitewolf06.github.io/gavia-ui/?view=docs):
350
+ живой пример, настройки, копируемый Vue-код, API, доступность и версия первой поставки.
351
+ Дополнительно экспортируются директива `WlTooltip`, `createWlPt` и типы
254
352
  (`WlSize`, `WlDensity`, `WlButtonVariant`, `WlTabItem`, …).
255
353
 
256
354
  ### Подтверждения: WlConfirmDialog + useWlConfirm
@@ -312,7 +410,7 @@ import manifest from "gavia-ui/manifest.json";
312
410
 
313
411
  Типы: `WlComponentManifest`, `WlPropManifest`, `WlSlotManifest`, `WlEmitManifest`,
314
412
  `WlModelManifest`, `WlManifestCategory`, `WlManifestPropType`. Категории:
315
- `actions`, `inputs`, `data`, `containers`, `navigation`, `feedback`, `misc`.
413
+ `actions`, `inputs`, `data`, `containers`, `composites`, `navigation`, `feedback`, `misc`.
316
414
  Пропсы типа `icon` принимают значения из `WlIconName`, тип `object` — это
317
415
  pass-through (`pt`) или сложные объекты вроде `locale`.
318
416
 
@@ -329,3 +427,6 @@ pnpm tokens:check
329
427
  pnpm verify:package
330
428
  pnpm verify:dependencies
331
429
  ```
430
+
431
+ [Совместимость, браузеры, доступность и проверки](https://github.com/whitewolf06/gavia-ui/blob/main/docs/quality.md).
432
+ Потребители могут использовать pnpm, npm и Bun; разработка репозитория — pnpm.
@@ -16,19 +16,44 @@ declare function __VLS_template(): {
16
16
  rootEl: HTMLDivElement;
17
17
  };
18
18
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
19
- declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
20
- "update:openKeys": (value: string[]) => any;
21
- }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
19
+ declare const __VLS_component: import('vue').DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToOption<__VLS_Props>, {
20
+ items: () => never[];
21
+ single: boolean;
22
+ openKeys: undefined;
23
+ }>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
24
+ "update:openKeys": (value: string[]) => void;
25
+ }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<__VLS_Props>, {
26
+ items: () => never[];
27
+ single: boolean;
28
+ openKeys: undefined;
29
+ }>>> & {
22
30
  "onUpdate:openKeys"?: ((value: string[]) => any) | undefined;
23
- }>, {
24
- items: WlAccordionItem[];
31
+ }, {
25
32
  single: boolean;
33
+ items: WlAccordionItem[];
26
34
  openKeys: string[];
27
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
35
+ }, {}>;
28
36
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
29
37
  export default _default;
38
+ type __VLS_WithDefaults<P, D> = {
39
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
40
+ default: D[K];
41
+ }> : P[K];
42
+ };
43
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
44
+ type __VLS_TypePropsToOption<T> = {
45
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
46
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
47
+ } : {
48
+ type: import('vue').PropType<T[K]>;
49
+ required: true;
50
+ };
51
+ };
30
52
  type __VLS_WithTemplateSlots<T, S> = T & {
31
53
  new (): {
32
54
  $slots: S;
33
55
  };
34
56
  };
57
+ type __VLS_PrettifyLocal<T> = {
58
+ [K in keyof T]: T[K];
59
+ } & {};
@@ -15,19 +15,44 @@ declare function __VLS_template(): {
15
15
  rootEl: HTMLDivElement;
16
16
  };
17
17
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
18
- declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
19
- close: (event: MouseEvent) => any;
20
- }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
18
+ declare const __VLS_component: import('vue').DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToOption<__VLS_Props>, {
19
+ variant: string;
20
+ closable: boolean;
21
+ closeLabel: string;
22
+ }>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
23
+ close: (event: MouseEvent) => void;
24
+ }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<__VLS_Props>, {
25
+ variant: string;
26
+ closable: boolean;
27
+ closeLabel: string;
28
+ }>>> & {
21
29
  onClose?: ((event: MouseEvent) => any) | undefined;
22
- }>, {
30
+ }, {
23
31
  variant: WlAlertVariant;
24
32
  closable: boolean;
25
33
  closeLabel: string;
26
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
34
+ }, {}>;
27
35
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
28
36
  export default _default;
37
+ type __VLS_WithDefaults<P, D> = {
38
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
39
+ default: D[K];
40
+ }> : P[K];
41
+ };
42
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
43
+ type __VLS_TypePropsToOption<T> = {
44
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
45
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
46
+ } : {
47
+ type: import('vue').PropType<T[K]>;
48
+ required: true;
49
+ };
50
+ };
29
51
  type __VLS_WithTemplateSlots<T, S> = T & {
30
52
  new (): {
31
53
  $slots: S;
32
54
  };
33
55
  };
56
+ type __VLS_PrettifyLocal<T> = {
57
+ [K in keyof T]: T[K];
58
+ } & {};
@@ -21,13 +21,35 @@ type __VLS_Props = {
21
21
  type __VLS_PublicProps = {
22
22
  modelValue?: unknown;
23
23
  } & __VLS_Props;
24
- declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
25
- complete: (event: WlAutocompleteCompleteEvent) => any;
26
- "update:modelValue": (value: unknown) => any;
27
- }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
24
+ declare const _default: import('vue').DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToOption<__VLS_PublicProps>, {
25
+ suggestions: () => never[];
26
+ invalid: boolean;
27
+ disabled: boolean;
28
+ size: string;
29
+ density: string;
30
+ multiple: boolean;
31
+ dropdown: boolean;
32
+ dropdownLabel: string;
33
+ minLength: number;
34
+ motion: undefined;
35
+ }>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
36
+ complete: (event: WlAutocompleteCompleteEvent) => void;
37
+ "update:modelValue": (value: unknown) => void;
38
+ }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<__VLS_PublicProps>, {
39
+ suggestions: () => never[];
40
+ invalid: boolean;
41
+ disabled: boolean;
42
+ size: string;
43
+ density: string;
44
+ multiple: boolean;
45
+ dropdown: boolean;
46
+ dropdownLabel: string;
47
+ minLength: number;
48
+ motion: undefined;
49
+ }>>> & {
28
50
  onComplete?: ((event: WlAutocompleteCompleteEvent) => any) | undefined;
29
51
  "onUpdate:modelValue"?: ((value: unknown) => any) | undefined;
30
- }>, {
52
+ }, {
31
53
  size: WlSizeSm;
32
54
  disabled: boolean;
33
55
  dropdown: boolean;
@@ -38,8 +60,22 @@ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {},
38
60
  dropdownLabel: string;
39
61
  minLength: number;
40
62
  motion: boolean;
41
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
42
- control: HTMLInputElement;
43
- panel: HTMLDivElement;
44
- }, any>;
63
+ }, {}>;
45
64
  export default _default;
65
+ type __VLS_WithDefaults<P, D> = {
66
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
67
+ default: D[K];
68
+ }> : P[K];
69
+ };
70
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
71
+ type __VLS_TypePropsToOption<T> = {
72
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
73
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
74
+ } : {
75
+ type: import('vue').PropType<T[K]>;
76
+ required: true;
77
+ };
78
+ };
79
+ type __VLS_PrettifyLocal<T> = {
80
+ [K in keyof T]: T[K];
81
+ } & {};
@@ -15,13 +15,34 @@ declare function __VLS_template(): {
15
15
  rootEl: HTMLSpanElement;
16
16
  };
17
17
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
18
- declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
18
+ declare const __VLS_component: import('vue').DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToOption<__VLS_Props>, {
19
+ size: number;
20
+ }>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<__VLS_Props>, {
21
+ size: number;
22
+ }>>>, {
19
23
  size: WlAvatarSize;
20
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLSpanElement>;
24
+ }, {}>;
21
25
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
22
26
  export default _default;
27
+ type __VLS_WithDefaults<P, D> = {
28
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
29
+ default: D[K];
30
+ }> : P[K];
31
+ };
32
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
33
+ type __VLS_TypePropsToOption<T> = {
34
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
35
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
36
+ } : {
37
+ type: import('vue').PropType<T[K]>;
38
+ required: true;
39
+ };
40
+ };
23
41
  type __VLS_WithTemplateSlots<T, S> = T & {
24
42
  new (): {
25
43
  $slots: S;
26
44
  };
27
45
  };
46
+ type __VLS_PrettifyLocal<T> = {
47
+ [K in keyof T]: T[K];
48
+ } & {};
@@ -5,8 +5,31 @@ type __VLS_Props = {
5
5
  dot?: boolean;
6
6
  pt?: Record<string, unknown>;
7
7
  };
8
- declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
8
+ declare const _default: import('vue').DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToOption<__VLS_Props>, {
9
+ variant: string;
10
+ dot: boolean;
11
+ }>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<__VLS_Props>, {
12
+ variant: string;
13
+ dot: boolean;
14
+ }>>>, {
9
15
  variant: WlBadgeVariant;
10
16
  dot: boolean;
11
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLSpanElement>;
17
+ }, {}>;
12
18
  export default _default;
19
+ type __VLS_WithDefaults<P, D> = {
20
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
21
+ default: D[K];
22
+ }> : P[K];
23
+ };
24
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
25
+ type __VLS_TypePropsToOption<T> = {
26
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
27
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
28
+ } : {
29
+ type: import('vue').PropType<T[K]>;
30
+ required: true;
31
+ };
32
+ };
33
+ type __VLS_PrettifyLocal<T> = {
34
+ [K in keyof T]: T[K];
35
+ } & {};