@feugene/granularity 0.42.0 → 0.43.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 (177) hide show
  1. package/README.md +3 -3
  2. package/dist/chunks/config-BXRmsn3t.js +172 -0
  3. package/dist/chunks/config-BXRmsn3t.js.map +1 -0
  4. package/dist/chunks/config-Dg0bSoGw.js +81 -0
  5. package/dist/chunks/config-Dg0bSoGw.js.map +1 -0
  6. package/dist/chunks/config-DmED6aJV.js +237 -0
  7. package/dist/chunks/config-DmED6aJV.js.map +1 -0
  8. package/dist/chunks/{config-DWL81-aM.js → config-hnoZvcIM.js} +2 -20
  9. package/dist/chunks/config-hnoZvcIM.js.map +1 -0
  10. package/dist/chunks/dragSortGeometry-CY-llfrQ.js +87 -0
  11. package/dist/chunks/dragSortGeometry-CY-llfrQ.js.map +1 -0
  12. package/dist/chunks/{en-B9E3jO6m.js → en-C_QkUTRL.js} +32 -1
  13. package/dist/chunks/en-C_QkUTRL.js.map +1 -0
  14. package/dist/chunks/{es-DCkqHTlU.js → es-B4t_3Wnh.js} +3 -3
  15. package/dist/chunks/{es-DCkqHTlU.js.map → es-B4t_3Wnh.js.map} +1 -1
  16. package/dist/chunks/{es-QpzdIEut.js → es-DemSEhZE.js} +32 -1
  17. package/dist/chunks/es-DemSEhZE.js.map +1 -0
  18. package/dist/chunks/{generated-B95IBXs6.js → generated-VcxJTo_q.js} +210 -0
  19. package/dist/chunks/generated-VcxJTo_q.js.map +1 -0
  20. package/dist/chunks/{granular-provider-BG_2XqkS.js → granular-provider-BohXQcNt.js} +7 -1
  21. package/dist/chunks/granular-provider-BohXQcNt.js.map +1 -0
  22. package/dist/chunks/{ru-D_1Ya489.js → ru-CLUErjhY.js} +32 -1
  23. package/dist/chunks/ru-CLUErjhY.js.map +1 -0
  24. package/dist/chunks/scrollOverflow-B_kEdcol.js +31 -0
  25. package/dist/chunks/scrollOverflow-B_kEdcol.js.map +1 -0
  26. package/dist/chunks/tones-CRJAaYyg.js +21 -0
  27. package/dist/chunks/tones-CRJAaYyg.js.map +1 -0
  28. package/dist/components/GrAffix/chunks/GrAffix-CWtC7yi8.js +272 -0
  29. package/dist/components/GrAffix/chunks/GrAffix-CWtC7yi8.js.map +1 -0
  30. package/dist/components/GrAffix/index.js +3 -0
  31. package/dist/components/GrCarousel/chunks/GrCarousel-ByuughtI.js +761 -0
  32. package/dist/components/GrCarousel/chunks/GrCarousel-ByuughtI.js.map +1 -0
  33. package/dist/components/GrCarousel/index.js +3 -0
  34. package/dist/components/GrCarousel/styles.css +1 -0
  35. package/dist/components/GrColorPicker/chunks/{GrColorPicker-BwzRLs-i.js → GrColorPicker-9mTR-YZ_.js} +1 -1
  36. package/dist/components/GrColorPicker/chunks/{GrColorPicker-BwzRLs-i.js.map → GrColorPicker-9mTR-YZ_.js.map} +1 -1
  37. package/dist/components/GrColorPicker/index.js +1 -1
  38. package/dist/components/GrDataTable/chunks/{GrDataTable-BBe7-uUe.js → GrDataTable-xNSmO_I-.js} +4 -3
  39. package/dist/components/GrDataTable/chunks/{GrDataTable-BBe7-uUe.js.map → GrDataTable-xNSmO_I-.js.map} +1 -1
  40. package/dist/components/GrDataTable/index.js +1 -1
  41. package/dist/components/GrImageViewer/chunks/{GrImageViewer-Dd2gJ-j_.js.map → GrImageViewer-DK-iVHHC.js.map} +1 -1
  42. package/dist/components/GrImageViewer/index.js +1 -1
  43. package/dist/components/GrInputTag/chunks/{GrInputTag-BKzm1PKw.js.map → GrInputTag-Ci8AO1ze.js.map} +1 -1
  44. package/dist/components/GrInputTag/index.js +1 -1
  45. package/dist/components/GrJsonViewer/chunks/{GrJsonViewer-BLCEWlwg.js → GrJsonViewer-CwCBMh4h.js} +2 -2
  46. package/dist/components/GrJsonViewer/chunks/{GrJsonViewer-BLCEWlwg.js.map → GrJsonViewer-CwCBMh4h.js.map} +1 -1
  47. package/dist/components/GrJsonViewer/index.js +1 -1
  48. package/dist/components/GrNumberInput/chunks/{GrNumberInput-Bm-V59TG.js.map → GrNumberInput-CL5QhOmx.js.map} +1 -1
  49. package/dist/components/GrNumberInput/index.js +1 -1
  50. package/dist/components/GrProgressBar/index.js +1 -1
  51. package/dist/components/GrSlider/chunks/{GrSlider-Db-jACXz.js.map → GrSlider-CO8N9SF6.js.map} +1 -1
  52. package/dist/components/GrSlider/index.js +1 -1
  53. package/dist/components/GrSortableList/chunks/{GrSortableList-ce1psLL0.js → GrSortableList-NKriuGm_.js} +2 -1
  54. package/dist/components/GrSortableList/chunks/{GrSortableList-ce1psLL0.js.map → GrSortableList-NKriuGm_.js.map} +1 -1
  55. package/dist/components/GrSortableList/index.js +1 -1
  56. package/dist/components/GrTabs/chunks/{GrTabs-BArefUFv.js → GrTabs-s9RzC1WX.js} +2 -31
  57. package/dist/components/GrTabs/chunks/GrTabs-s9RzC1WX.js.map +1 -0
  58. package/dist/components/GrTabs/index.js +1 -1
  59. package/dist/components/GrTransfer/chunks/GrTransfer-8FA78ny6.js +1368 -0
  60. package/dist/components/GrTransfer/chunks/GrTransfer-8FA78ny6.js.map +1 -0
  61. package/dist/components/GrTransfer/index.js +3 -0
  62. package/dist/components/GrTransfer/styles.css +1 -0
  63. package/dist/components/GrTree/chunks/{GrTree-BFWFc0Bm.js → GrTree-CkHzgYg1.js} +3 -3
  64. package/dist/components/GrTree/chunks/{GrTree-BFWFc0Bm.js.map → GrTree-CkHzgYg1.js.map} +1 -1
  65. package/dist/components/GrTree/index.js +1 -1
  66. package/dist/components/GrTreeSelect/chunks/{GrTreeSelect-DJa2lYGe.js → GrTreeSelect-DUsv3_mF.js} +1 -1
  67. package/dist/components/GrTreeSelect/chunks/{GrTreeSelect-DJa2lYGe.js.map → GrTreeSelect-DUsv3_mF.js.map} +1 -1
  68. package/dist/components/GrTreeSelect/index.js +1 -1
  69. package/dist/composables/useDragSort.js +179 -1
  70. package/dist/composables/useDragSort.js.map +1 -0
  71. package/dist/granular-provider-node.js +1 -1
  72. package/dist/granular-provider.js +1 -1
  73. package/dist/i18n/all.js +1 -1
  74. package/dist/i18n/index.js +1 -1
  75. package/dist/index.js +23 -19
  76. package/dist/theme.js +1 -1
  77. package/dist/tokens.js +1 -1
  78. package/dist/types/components/GrAffix/GrAffix.vue.d.ts +91 -0
  79. package/dist/types/components/GrAffix/affixState.d.ts +81 -0
  80. package/dist/types/components/GrAffix/config.d.ts +1 -0
  81. package/dist/types/components/GrAffix/grAffixStyles.d.ts +46 -0
  82. package/dist/types/components/GrAffix/index.d.ts +9 -0
  83. package/dist/types/components/GrAffix/safelist.d.ts +1 -0
  84. package/dist/types/components/GrAlert/GrAlert.vue.d.ts +1 -1
  85. package/dist/types/components/GrBadgeWrap/GrBadgeWrap.vue.d.ts +2 -2
  86. package/dist/types/components/GrButton/GrButton.vue.d.ts +2 -2
  87. package/dist/types/components/GrCard/GrCard.vue.d.ts +1 -1
  88. package/dist/types/components/GrCarousel/GrCarousel.vue.d.ts +151 -0
  89. package/dist/types/components/GrCarousel/GrCarouselSlide.vue.d.ts +53 -0
  90. package/dist/types/components/GrCarousel/carouselNavigation.d.ts +57 -0
  91. package/dist/types/components/GrCarousel/composables/useCarouselAutoplay.d.ts +33 -0
  92. package/dist/types/components/GrCarousel/composables/useCarouselSwipe.d.ts +20 -0
  93. package/dist/types/components/GrCarousel/config.d.ts +7 -0
  94. package/dist/types/components/GrCarousel/defaults.d.ts +13 -0
  95. package/dist/types/components/GrCarousel/grCarouselContext.d.ts +46 -0
  96. package/dist/types/components/GrCarousel/grCarouselStyles.d.ts +80 -0
  97. package/dist/types/components/GrCarousel/index.d.ts +12 -0
  98. package/dist/types/components/GrCarousel/safelist.d.ts +1 -0
  99. package/dist/types/components/GrCheckbox/GrCheckbox.vue.d.ts +3 -3
  100. package/dist/types/components/GrCheckboxGroup/GrCheckboxGroup.vue.d.ts +2 -2
  101. package/dist/types/components/GrChip/GrChip.vue.d.ts +2 -2
  102. package/dist/types/components/GrChipGroup/GrChipGroup.vue.d.ts +2 -2
  103. package/dist/types/components/GrCollapse/GrCollapse.vue.d.ts +1 -1
  104. package/dist/types/components/GrCollapse/GrCollapseItem.vue.d.ts +1 -1
  105. package/dist/types/components/GrColorPicker/GrColorPicker.vue.d.ts +3 -3
  106. package/dist/types/components/GrCommandPalette/GrCommandPalette.vue.d.ts +1 -1
  107. package/dist/types/components/GrConfirmDialog/GrConfirmDialog.vue.d.ts +1 -1
  108. package/dist/types/components/GrContextMenu/GrContextMenu.vue.d.ts +2 -2
  109. package/dist/types/components/GrDialog/GrDialog.vue.d.ts +1 -1
  110. package/dist/types/components/GrDivider/GrDivider.vue.d.ts +2 -2
  111. package/dist/types/components/GrDrawer/GrDrawer.vue.d.ts +1 -1
  112. package/dist/types/components/GrDropdown/GrDropdown.vue.d.ts +3 -3
  113. package/dist/types/components/GrDropdownMenu/GrDropdownMenu.vue.d.ts +3 -3
  114. package/dist/types/components/GrDropdownMenu/GrDropdownMenuItem.vue.d.ts +1 -1
  115. package/dist/types/components/GrEmptyState/GrEmptyState.vue.d.ts +1 -1
  116. package/dist/types/components/GrFileUpload/GrFileUpload.vue.d.ts +1 -1
  117. package/dist/types/components/GrFormField/GrFormField.vue.d.ts +3 -3
  118. package/dist/types/components/GrFormFile/GrFormFile.vue.d.ts +2 -2
  119. package/dist/types/components/GrFormSection/GrFormSection.vue.d.ts +1 -1
  120. package/dist/types/components/GrIcon/GrIcon.vue.d.ts +1 -1
  121. package/dist/types/components/GrImageViewer/GrImageViewer.vue.d.ts +3 -3
  122. package/dist/types/components/GrInput/GrInput.vue.d.ts +4 -4
  123. package/dist/types/components/GrInputTag/GrInputTag.vue.d.ts +3 -3
  124. package/dist/types/components/GrKbd/GrKbd.vue.d.ts +1 -1
  125. package/dist/types/components/GrLink/GrLink.vue.d.ts +1 -1
  126. package/dist/types/components/GrList/GrListItem.vue.d.ts +2 -2
  127. package/dist/types/components/GrNavbar/GrNavbar.vue.d.ts +2 -2
  128. package/dist/types/components/GrNumberInput/GrNumberInput.vue.d.ts +3 -3
  129. package/dist/types/components/GrPagination/GrPagination.vue.d.ts +1 -1
  130. package/dist/types/components/GrPopover/GrPopover.vue.d.ts +3 -3
  131. package/dist/types/components/GrPromptDialog/GrPromptDialog.vue.d.ts +3 -3
  132. package/dist/types/components/GrRadio/GrRadio.vue.d.ts +2 -2
  133. package/dist/types/components/GrRadioGroup/GrRadioGroup.vue.d.ts +2 -2
  134. package/dist/types/components/GrRating/GrRating.vue.d.ts +2 -2
  135. package/dist/types/components/GrSegmented/GrSegmented.vue.d.ts +2 -2
  136. package/dist/types/components/GrSidebar/GrSidebarItem.vue.d.ts +1 -1
  137. package/dist/types/components/GrSkeleton/GrSkeleton.vue.d.ts +1 -1
  138. package/dist/types/components/GrSlider/GrSlider.vue.d.ts +3 -3
  139. package/dist/types/components/GrSplitter/GrSplitter.vue.d.ts +1 -1
  140. package/dist/types/components/GrStatistic/GrStatistic.vue.d.ts +2 -2
  141. package/dist/types/components/GrSwitch/GrSwitch.vue.d.ts +3 -3
  142. package/dist/types/components/GrTable/GrTable.vue.d.ts +1 -1
  143. package/dist/types/components/GrTabs/GrTabs.vue.d.ts +1 -1
  144. package/dist/types/components/GrTextarea/GrTextarea.vue.d.ts +2 -2
  145. package/dist/types/components/GrTimeline/GrTimelineItem.vue.d.ts +2 -2
  146. package/dist/types/components/GrToaster/GrToaster.vue.d.ts +1 -1
  147. package/dist/types/components/GrTooltip/GrTooltip.vue.d.ts +3 -3
  148. package/dist/types/components/GrTransfer/GrTransfer.vue.d.ts +103 -0
  149. package/dist/types/components/GrTransfer/config.d.ts +1 -0
  150. package/dist/types/components/GrTransfer/defaults.d.ts +15 -0
  151. package/dist/types/components/GrTransfer/grTransferStyles.d.ts +127 -0
  152. package/dist/types/components/GrTransfer/index.d.ts +11 -0
  153. package/dist/types/components/GrTransfer/safelist.d.ts +1 -0
  154. package/dist/types/components/GrTransfer/transferGeometry.d.ts +44 -0
  155. package/dist/types/components/GrTransfer/transferModel.d.ts +68 -0
  156. package/dist/types/components/GrTransfer/transferSelection.d.ts +36 -0
  157. package/dist/types/components/GrTransfer/useTransferDrag.d.ts +48 -0
  158. package/dist/types/granular-provider/shared.d.ts +3 -0
  159. package/dist/types/i18n/messages/en.d.ts +58 -0
  160. package/dist/types/i18n/messages/es.d.ts +58 -0
  161. package/dist/types/i18n/messages/ru.d.ts +58 -0
  162. package/dist/types/index.d.ts +3 -0
  163. package/dist/web-types.json +718 -288
  164. package/package.json +17 -1
  165. package/dist/chunks/config-DWL81-aM.js.map +0 -1
  166. package/dist/chunks/en-B9E3jO6m.js.map +0 -1
  167. package/dist/chunks/es-QpzdIEut.js.map +0 -1
  168. package/dist/chunks/generated-B95IBXs6.js.map +0 -1
  169. package/dist/chunks/granular-provider-BG_2XqkS.js.map +0 -1
  170. package/dist/chunks/ru-D_1Ya489.js.map +0 -1
  171. package/dist/chunks/useDragSort-0l47h4yb.js +0 -265
  172. package/dist/chunks/useDragSort-0l47h4yb.js.map +0 -1
  173. package/dist/components/GrTabs/chunks/GrTabs-BArefUFv.js.map +0 -1
  174. package/dist/components/GrImageViewer/chunks/{GrImageViewer-Dd2gJ-j_.js → GrImageViewer-DK-iVHHC.js} +3 -3
  175. package/dist/components/GrInputTag/chunks/{GrInputTag-BKzm1PKw.js → GrInputTag-Ci8AO1ze.js} +1 -1
  176. package/dist/components/GrNumberInput/chunks/{GrNumberInput-Bm-V59TG.js → GrNumberInput-CL5QhOmx.js} +1 -1
  177. package/dist/components/GrSlider/chunks/{GrSlider-Db-jACXz.js → GrSlider-CO8N9SF6.js} +1 -1
@@ -1,13 +1,62 @@
1
1
  {
2
2
  "$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
3
3
  "name": "@feugene/granularity",
4
- "version": "0.42.0",
4
+ "version": "0.43.0",
5
5
  "framework": "vue",
6
6
  "js-types-syntax": "typescript",
7
7
  "description-markup": "markdown",
8
8
  "contributions": {
9
9
  "html": {
10
10
  "vue-components": [
11
+ {
12
+ "name": "GrAffix",
13
+ "source": {
14
+ "module": "@feugene/granularity/components/GrAffix",
15
+ "symbol": "GrAffix"
16
+ },
17
+ "props": [
18
+ {
19
+ "name": "placement",
20
+ "description": "Край, к которому прилипает панель.",
21
+ "default": "\"top\"",
22
+ "value": {
23
+ "kind": "expression",
24
+ "type": "\"top\" | \"bottom\" | undefined"
25
+ }
26
+ },
27
+ {
28
+ "name": "offset",
29
+ "description": "Отступ от края в прилипшем состоянии. Число — пиксели, строка — как есть (`4rem`, `var(--gr-navbar-height)`, `calc(…)`). Общий отступ для группы панелей задаётся не пропом, а токеном `--gr-affix-offset` на контейнере или на `:root`: наблюдатель читает вычисленный стиль и подхватывает его так же, как значение пропа.",
30
+ "default": "undefined",
31
+ "value": {
32
+ "kind": "expression",
33
+ "type": "string | number | undefined"
34
+ }
35
+ },
36
+ {
37
+ "name": "disabled",
38
+ "description": "Прилипание выключено: разметка та же, `sticky` не ставится. Именно проп, а не `v-if` снаружи: размонтирование убило бы фокус на кнопке панели и состояние вложенных контролов.",
39
+ "default": "false",
40
+ "value": {
41
+ "kind": "expression",
42
+ "type": "boolean | undefined"
43
+ }
44
+ }
45
+ ],
46
+ "slots": [
47
+ {
48
+ "name": "default",
49
+ "description": "Содержимое панели. `stuck` позволяет менять его в прилипшем виде."
50
+ }
51
+ ],
52
+ "js": {
53
+ "events": [
54
+ {
55
+ "name": "stickyChange"
56
+ }
57
+ ]
58
+ }
59
+ },
11
60
  {
12
61
  "name": "GrAlert",
13
62
  "source": {
@@ -629,6 +678,14 @@
629
678
  "symbol": "GrBadgeWrap"
630
679
  },
631
680
  "props": [
681
+ {
682
+ "name": "placement",
683
+ "default": "\"top-right\"",
684
+ "value": {
685
+ "kind": "expression",
686
+ "type": "\"top-right\" | \"top-left\" | \"bottom-right\" | \"bottom-left\" | undefined"
687
+ }
688
+ },
632
689
  {
633
690
  "name": "tone",
634
691
  "default": "\"danger\"",
@@ -681,14 +738,6 @@
681
738
  "type": "boolean | undefined"
682
739
  }
683
740
  },
684
- {
685
- "name": "placement",
686
- "default": "\"top-right\"",
687
- "value": {
688
- "kind": "expression",
689
- "type": "\"top-right\" | \"top-left\" | \"bottom-right\" | \"bottom-left\" | undefined"
690
- }
691
- },
692
741
  {
693
742
  "name": "animate",
694
743
  "description": "Отмечать ли появление и рост **счётчика** анимацией. Точке анимировать нечего.",
@@ -927,35 +976,35 @@
927
976
  },
928
977
  "props": [
929
978
  {
930
- "name": "tone",
931
- "default": "undefined",
979
+ "name": "disabled",
980
+ "default": "false",
932
981
  "value": {
933
982
  "kind": "expression",
934
- "type": "\"primary\" | \"neutral\" | \"success\" | \"warning\" | \"danger\" | \"info\" | \"slate\" | \"azure\" | undefined"
983
+ "type": "boolean | undefined"
935
984
  }
936
985
  },
937
986
  {
938
- "name": "variant",
939
- "default": "undefined",
987
+ "name": "type",
988
+ "default": "\"button\"",
940
989
  "value": {
941
990
  "kind": "expression",
942
- "type": "GrButtonVariant | undefined"
991
+ "type": "\"button\" | \"submit\" | \"reset\" | undefined"
943
992
  }
944
993
  },
945
994
  {
946
- "name": "type",
947
- "default": "\"button\"",
995
+ "name": "tone",
996
+ "default": "undefined",
948
997
  "value": {
949
998
  "kind": "expression",
950
- "type": "\"button\" | \"submit\" | \"reset\" | undefined"
999
+ "type": "\"primary\" | \"neutral\" | \"success\" | \"warning\" | \"danger\" | \"info\" | \"slate\" | \"azure\" | undefined"
951
1000
  }
952
1001
  },
953
1002
  {
954
- "name": "disabled",
955
- "default": "false",
1003
+ "name": "variant",
1004
+ "default": "undefined",
956
1005
  "value": {
957
1006
  "kind": "expression",
958
- "type": "boolean | undefined"
1007
+ "type": "GrButtonVariant | undefined"
959
1008
  }
960
1009
  },
961
1010
  {
@@ -1256,6 +1305,185 @@
1256
1305
  ]
1257
1306
  }
1258
1307
  },
1308
+ {
1309
+ "name": "GrCarousel",
1310
+ "source": {
1311
+ "module": "@feugene/granularity/components/GrCarousel",
1312
+ "symbol": "GrCarousel"
1313
+ },
1314
+ "props": [
1315
+ {
1316
+ "name": "tone",
1317
+ "description": "Тон текущего переключателя по общей шкале пакета.",
1318
+ "default": "undefined",
1319
+ "value": {
1320
+ "kind": "expression",
1321
+ "type": "\"primary\" | \"neutral\" | \"success\" | \"warning\" | \"danger\" | \"info\" | \"slate\" | \"azure\" | undefined"
1322
+ }
1323
+ },
1324
+ {
1325
+ "name": "modelValue",
1326
+ "description": "Индекс текущего кадра. Не передан — лента ведёт позицию сама.",
1327
+ "default": "undefined",
1328
+ "value": {
1329
+ "kind": "expression",
1330
+ "type": "number | undefined"
1331
+ }
1332
+ },
1333
+ {
1334
+ "name": "ariaLabel",
1335
+ "description": "Имя карусели. APG требует его: `aria-roledescription` именем не считается.",
1336
+ "default": "undefined",
1337
+ "value": {
1338
+ "kind": "expression",
1339
+ "type": "string | undefined"
1340
+ }
1341
+ },
1342
+ {
1343
+ "name": "autoplay",
1344
+ "description": "Запустить показ. Под `prefers-reduced-motion` не стартует — тумблер остаётся.",
1345
+ "default": "false",
1346
+ "value": {
1347
+ "kind": "expression",
1348
+ "type": "boolean | undefined"
1349
+ }
1350
+ },
1351
+ {
1352
+ "name": "autoplayInterval",
1353
+ "description": "Пауза между кадрами, мс.",
1354
+ "default": "5000",
1355
+ "value": {
1356
+ "kind": "expression",
1357
+ "type": "number | undefined"
1358
+ }
1359
+ },
1360
+ {
1361
+ "name": "loop",
1362
+ "description": "Замкнуть ленту. Выключено — стрелки на краях гаснут.",
1363
+ "default": "true",
1364
+ "value": {
1365
+ "kind": "expression",
1366
+ "type": "boolean | undefined"
1367
+ }
1368
+ },
1369
+ {
1370
+ "name": "indicators",
1371
+ "description": "Вид переключателя кадров. `none` меняет и роль самих слайдов.",
1372
+ "default": "undefined",
1373
+ "value": {
1374
+ "kind": "expression",
1375
+ "type": "\"none\" | \"dots\" | \"thumbnails\" | undefined"
1376
+ }
1377
+ },
1378
+ {
1379
+ "name": "activationMode",
1380
+ "description": "Листает ли стрелка по переключателям сразу или только двигает фокус.",
1381
+ "default": "undefined",
1382
+ "value": {
1383
+ "kind": "expression",
1384
+ "type": "\"automatic\" | \"manual\" | undefined"
1385
+ }
1386
+ },
1387
+ {
1388
+ "name": "arrows",
1389
+ "description": "Стрелки «назад/вперёд».",
1390
+ "default": "true",
1391
+ "value": {
1392
+ "kind": "expression",
1393
+ "type": "boolean | undefined"
1394
+ }
1395
+ },
1396
+ {
1397
+ "name": "swipe",
1398
+ "description": "Листание протяжкой указателя.",
1399
+ "default": "true",
1400
+ "value": {
1401
+ "kind": "expression",
1402
+ "type": "boolean | undefined"
1403
+ }
1404
+ },
1405
+ {
1406
+ "name": "landmark",
1407
+ "description": "Сделать карусель ориентиром страницы (`role=\"region\"`).",
1408
+ "default": "false",
1409
+ "value": {
1410
+ "kind": "expression",
1411
+ "type": "boolean | undefined"
1412
+ }
1413
+ },
1414
+ {
1415
+ "name": "ariaLabelledby",
1416
+ "description": "Имя из заголовка на странице. Сильнее `ariaLabel`.",
1417
+ "default": "undefined",
1418
+ "value": {
1419
+ "kind": "expression",
1420
+ "type": "string | undefined"
1421
+ }
1422
+ },
1423
+ {
1424
+ "name": "prevLabel",
1425
+ "default": "undefined",
1426
+ "value": {
1427
+ "kind": "expression",
1428
+ "type": "string | undefined"
1429
+ }
1430
+ },
1431
+ {
1432
+ "name": "nextLabel",
1433
+ "default": "undefined",
1434
+ "value": {
1435
+ "kind": "expression",
1436
+ "type": "string | undefined"
1437
+ }
1438
+ },
1439
+ {
1440
+ "name": "playLabel",
1441
+ "default": "undefined",
1442
+ "value": {
1443
+ "kind": "expression",
1444
+ "type": "string | undefined"
1445
+ }
1446
+ },
1447
+ {
1448
+ "name": "pauseLabel",
1449
+ "default": "undefined",
1450
+ "value": {
1451
+ "kind": "expression",
1452
+ "type": "string | undefined"
1453
+ }
1454
+ },
1455
+ {
1456
+ "name": "indicatorsLabel",
1457
+ "description": "Имя полосы переключателей.",
1458
+ "default": "undefined",
1459
+ "value": {
1460
+ "kind": "expression",
1461
+ "type": "string | undefined"
1462
+ }
1463
+ }
1464
+ ],
1465
+ "slots": [
1466
+ {
1467
+ "name": "default",
1468
+ "description": "Кадры ленты — `GrCarouselSlide`."
1469
+ },
1470
+ {
1471
+ "name": "prev",
1472
+ "description": "Своя иконка кнопки «назад». Заменяет содержимое кнопки, но не её саму: имя, `aria-disabled` и поведение на краю остаются за компонентом."
1473
+ },
1474
+ {
1475
+ "name": "next",
1476
+ "description": "Своя иконка кнопки «вперёд»."
1477
+ }
1478
+ ],
1479
+ "js": {
1480
+ "events": [
1481
+ {
1482
+ "name": "update:modelValue"
1483
+ }
1484
+ ]
1485
+ }
1486
+ },
1259
1487
  {
1260
1488
  "name": "GrCheckbox",
1261
1489
  "source": {
@@ -1264,8 +1492,7 @@
1264
1492
  },
1265
1493
  "props": [
1266
1494
  {
1267
- "name": "modelValue",
1268
- "description": "Не задан внутри `GrCheckboxGroup` — состояние берётся из группы.",
1495
+ "name": "disabled",
1269
1496
  "default": "undefined",
1270
1497
  "value": {
1271
1498
  "kind": "expression",
@@ -1273,7 +1500,8 @@
1273
1500
  }
1274
1501
  },
1275
1502
  {
1276
- "name": "disabled",
1503
+ "name": "modelValue",
1504
+ "description": "Не задан внутри `GrCheckboxGroup` — состояние берётся из группы.",
1277
1505
  "default": "undefined",
1278
1506
  "value": {
1279
1507
  "kind": "expression",
@@ -1342,7 +1570,8 @@
1342
1570
  }
1343
1571
  },
1344
1572
  {
1345
- "name": "form",
1573
+ "name": "id",
1574
+ "description": "Пробрасывается на скрытый нативный `<input>`, чтобы работал `<label for=\"...\">`.",
1346
1575
  "default": "undefined",
1347
1576
  "value": {
1348
1577
  "kind": "expression",
@@ -1350,8 +1579,7 @@
1350
1579
  }
1351
1580
  },
1352
1581
  {
1353
- "name": "id",
1354
- "description": "Пробрасывается на скрытый нативный `<input>`, чтобы работал `<label for=\"...\">`.",
1582
+ "name": "form",
1355
1583
  "default": "undefined",
1356
1584
  "value": {
1357
1585
  "kind": "expression",
@@ -1408,19 +1636,19 @@
1408
1636
  },
1409
1637
  "props": [
1410
1638
  {
1411
- "name": "options",
1412
- "default": "undefined",
1639
+ "name": "disabled",
1640
+ "default": "false",
1413
1641
  "value": {
1414
1642
  "kind": "expression",
1415
- "type": "GrCheckboxGroupOption[] | undefined"
1643
+ "type": "boolean | undefined"
1416
1644
  }
1417
1645
  },
1418
1646
  {
1419
- "name": "disabled",
1420
- "default": "false",
1647
+ "name": "options",
1648
+ "default": "undefined",
1421
1649
  "value": {
1422
1650
  "kind": "expression",
1423
- "type": "boolean | undefined"
1651
+ "type": "GrCheckboxGroupOption[] | undefined"
1424
1652
  }
1425
1653
  },
1426
1654
  {
@@ -1523,24 +1751,24 @@
1523
1751
  },
1524
1752
  "props": [
1525
1753
  {
1526
- "name": "tone",
1527
- "default": "undefined",
1754
+ "name": "disabled",
1755
+ "default": "false",
1528
1756
  "value": {
1529
1757
  "kind": "expression",
1530
- "type": "\"primary\" | \"neutral\" | \"success\" | \"warning\" | \"danger\" | \"info\" | \"slate\" | \"azure\" | undefined"
1758
+ "type": "boolean | undefined"
1531
1759
  }
1532
1760
  },
1533
1761
  {
1534
- "name": "closable",
1535
- "description": "Крестик. Внутри виджета он не кнопка — см. блок про роли ниже.",
1536
- "default": "false",
1762
+ "name": "tone",
1763
+ "default": "undefined",
1537
1764
  "value": {
1538
1765
  "kind": "expression",
1539
- "type": "boolean | undefined"
1766
+ "type": "\"primary\" | \"neutral\" | \"success\" | \"warning\" | \"danger\" | \"info\" | \"slate\" | \"azure\" | undefined"
1540
1767
  }
1541
1768
  },
1542
1769
  {
1543
- "name": "disabled",
1770
+ "name": "closable",
1771
+ "description": "Крестик. Внутри виджета он не кнопка — см. блок про роли ниже.",
1544
1772
  "default": "false",
1545
1773
  "value": {
1546
1774
  "kind": "expression",
@@ -1663,6 +1891,14 @@
1663
1891
  "symbol": "GrChipGroup"
1664
1892
  },
1665
1893
  "props": [
1894
+ {
1895
+ "name": "disabled",
1896
+ "default": "false",
1897
+ "value": {
1898
+ "kind": "expression",
1899
+ "type": "boolean | undefined"
1900
+ }
1901
+ },
1666
1902
  {
1667
1903
  "name": "tone",
1668
1904
  "default": "undefined",
@@ -1689,14 +1925,6 @@
1689
1925
  "type": "GrChipValue | GrChipValue[] | null | undefined"
1690
1926
  }
1691
1927
  },
1692
- {
1693
- "name": "disabled",
1694
- "default": "false",
1695
- "value": {
1696
- "kind": "expression",
1697
- "type": "boolean | undefined"
1698
- }
1699
- },
1700
1928
  {
1701
1929
  "name": "readonly",
1702
1930
  "description": "Выбор видно, но он не меняется.",
@@ -1806,19 +2034,19 @@
1806
2034
  },
1807
2035
  "props": [
1808
2036
  {
1809
- "name": "modelValue",
1810
- "default": "undefined",
2037
+ "name": "disabled",
2038
+ "default": "false",
1811
2039
  "value": {
1812
2040
  "kind": "expression",
1813
- "type": "GrCollapseValue | GrCollapseValue[] | undefined"
2041
+ "type": "boolean | undefined"
1814
2042
  }
1815
2043
  },
1816
2044
  {
1817
- "name": "disabled",
1818
- "default": "false",
2045
+ "name": "modelValue",
2046
+ "default": "undefined",
1819
2047
  "value": {
1820
2048
  "kind": "expression",
1821
- "type": "boolean | undefined"
2049
+ "type": "GrCollapseValue | GrCollapseValue[] | undefined"
1822
2050
  }
1823
2051
  },
1824
2052
  {
@@ -1928,12 +2156,12 @@
1928
2156
  },
1929
2157
  "props": [
1930
2158
  {
1931
- "name": "open",
1932
- "description": "Контролируемое состояние панели (`v-model:open`).",
1933
- "default": "undefined",
2159
+ "name": "placement",
2160
+ "description": "Сторона, с которой раскрывается панель.",
2161
+ "default": "\"bottom-start\"",
1934
2162
  "value": {
1935
2163
  "kind": "expression",
1936
- "type": "boolean | undefined"
2164
+ "type": "\"bottom-start\" | \"bottom-end\" | \"top-start\" | \"top-end\" | undefined"
1937
2165
  }
1938
2166
  },
1939
2167
  {
@@ -1944,6 +2172,15 @@
1944
2172
  "type": "boolean | undefined"
1945
2173
  }
1946
2174
  },
2175
+ {
2176
+ "name": "open",
2177
+ "description": "Контролируемое состояние панели (`v-model:open`).",
2178
+ "default": "undefined",
2179
+ "value": {
2180
+ "kind": "expression",
2181
+ "type": "boolean | undefined"
2182
+ }
2183
+ },
1947
2184
  {
1948
2185
  "name": "readonly",
1949
2186
  "description": "Только для чтения: цвет видно, панель открывается, но значение не меняется.",
@@ -1994,15 +2231,6 @@
1994
2231
  "type": "string | undefined"
1995
2232
  }
1996
2233
  },
1997
- {
1998
- "name": "placement",
1999
- "description": "Сторона, с которой раскрывается панель.",
2000
- "default": "\"bottom-start\"",
2001
- "value": {
2002
- "kind": "expression",
2003
- "type": "\"bottom-start\" | \"bottom-end\" | \"top-start\" | \"top-end\" | undefined"
2004
- }
2005
- },
2006
2234
  {
2007
2235
  "name": "alpha",
2008
2236
  "description": "Четвёртый слайдер и восьмизначная форма hex.",
@@ -2540,12 +2768,11 @@
2540
2768
  },
2541
2769
  "props": [
2542
2770
  {
2543
- "name": "open",
2544
- "description": "Открыто ли меню. Без пропа компонент ведёт состояние сам.",
2545
- "default": "undefined",
2771
+ "name": "placement",
2772
+ "default": "\"bottom-start\"",
2546
2773
  "value": {
2547
2774
  "kind": "expression",
2548
- "type": "boolean | undefined"
2775
+ "type": "Placement | undefined"
2549
2776
  }
2550
2777
  },
2551
2778
  {
@@ -2557,19 +2784,20 @@
2557
2784
  }
2558
2785
  },
2559
2786
  {
2560
- "name": "ariaLabel",
2787
+ "name": "open",
2788
+ "description": "Открыто ли меню. Без пропа компонент ведёт состояние сам.",
2561
2789
  "default": "undefined",
2562
2790
  "value": {
2563
2791
  "kind": "expression",
2564
- "type": "string | undefined"
2792
+ "type": "boolean | undefined"
2565
2793
  }
2566
2794
  },
2567
2795
  {
2568
- "name": "placement",
2569
- "default": "\"bottom-start\"",
2796
+ "name": "ariaLabel",
2797
+ "default": "undefined",
2570
2798
  "value": {
2571
2799
  "kind": "expression",
2572
- "type": "Placement | undefined"
2800
+ "type": "string | undefined"
2573
2801
  }
2574
2802
  },
2575
2803
  {
@@ -3360,21 +3588,21 @@
3360
3588
  },
3361
3589
  "props": [
3362
3590
  {
3363
- "name": "variant",
3364
- "description": "Начертание линии. Не заданоберётся из `GrConfigProvider`, иначе `solid`.",
3591
+ "name": "length",
3592
+ "description": "Длина линии: высота вертикального разделителя, ширина горизонтального. Нужна вертикальному вне flex-родителя там ему не от чего растянуться.",
3365
3593
  "default": "undefined",
3366
3594
  "value": {
3367
3595
  "kind": "expression",
3368
- "type": "GrDividerVariant | undefined"
3596
+ "type": "string | number | undefined"
3369
3597
  }
3370
3598
  },
3371
3599
  {
3372
- "name": "length",
3373
- "description": "Длина линии: высота вертикального разделителя, ширина горизонтального. Нужна вертикальному вне flex-родителя там ему не от чего растянуться.",
3600
+ "name": "variant",
3601
+ "description": "Начертание линии. Не заданоберётся из `GrConfigProvider`, иначе `solid`.",
3374
3602
  "default": "undefined",
3375
3603
  "value": {
3376
3604
  "kind": "expression",
3377
- "type": "string | number | undefined"
3605
+ "type": "GrDividerVariant | undefined"
3378
3606
  }
3379
3607
  },
3380
3608
  {
@@ -3632,12 +3860,21 @@
3632
3860
  },
3633
3861
  "props": [
3634
3862
  {
3635
- "name": "open",
3636
- "description": "Контролируемое состояние панели (`v-model:open`). Без пропа панель ведёт себя сама (uncontrolled), с ним — слушайте `update:open` и меняйте проп.",
3637
- "default": "undefined",
3863
+ "name": "placement",
3864
+ "description": "Размещение панели относительно триггера; `flip` при нехватке места остаётся.",
3865
+ "default": "\"bottom-end\"",
3638
3866
  "value": {
3639
3867
  "kind": "expression",
3640
- "type": "boolean | undefined"
3868
+ "type": "Placement | undefined"
3869
+ }
3870
+ },
3871
+ {
3872
+ "name": "offset",
3873
+ "description": "Зазор между триггером и панелью, px.",
3874
+ "default": "8",
3875
+ "value": {
3876
+ "kind": "expression",
3877
+ "type": "number | undefined"
3641
3878
  }
3642
3879
  },
3643
3880
  {
@@ -3650,12 +3887,12 @@
3650
3887
  }
3651
3888
  },
3652
3889
  {
3653
- "name": "placement",
3654
- "description": "Размещение панели относительно триггера; `flip` при нехватке места остаётся.",
3655
- "default": "\"bottom-end\"",
3890
+ "name": "open",
3891
+ "description": "Контролируемое состояние панели (`v-model:open`). Без пропа панель ведёт себя сама (uncontrolled), с ним — слушайте `update:open` и меняйте проп.",
3892
+ "default": "undefined",
3656
3893
  "value": {
3657
3894
  "kind": "expression",
3658
- "type": "Placement | undefined"
3895
+ "type": "boolean | undefined"
3659
3896
  }
3660
3897
  },
3661
3898
  {
@@ -3694,15 +3931,6 @@
3694
3931
  "type": "GrDropdownWidth | undefined"
3695
3932
  }
3696
3933
  },
3697
- {
3698
- "name": "offset",
3699
- "description": "Зазор между триггером и панелью, px.",
3700
- "default": "8",
3701
- "value": {
3702
- "kind": "expression",
3703
- "type": "number | undefined"
3704
- }
3705
- },
3706
3934
  {
3707
3935
  "name": "openDelay",
3708
3936
  "description": "Задержка открытия по наведению, мс.",
@@ -3757,12 +3985,21 @@
3757
3985
  },
3758
3986
  "props": [
3759
3987
  {
3760
- "name": "open",
3761
- "description": "Контролируемое состояние панели (`v-model:open`) прокидывается в `GrDropdown`. Без пропа меню ведёт себя само (uncontrolled).",
3762
- "default": "undefined",
3988
+ "name": "placement",
3989
+ "description": "Размещение панели относительно триггера; переворот при нехватке места остаётся.",
3990
+ "default": "\"bottom-end\"",
3763
3991
  "value": {
3764
3992
  "kind": "expression",
3765
- "type": "boolean | undefined"
3993
+ "type": "Placement | undefined"
3994
+ }
3995
+ },
3996
+ {
3997
+ "name": "offset",
3998
+ "description": "Зазор между триггером и панелью, px.",
3999
+ "default": "8",
4000
+ "value": {
4001
+ "kind": "expression",
4002
+ "type": "number | undefined"
3766
4003
  }
3767
4004
  },
3768
4005
  {
@@ -3775,12 +4012,12 @@
3775
4012
  }
3776
4013
  },
3777
4014
  {
3778
- "name": "placement",
3779
- "description": "Размещение панели относительно триггера; переворот при нехватке места остаётся.",
3780
- "default": "\"bottom-end\"",
4015
+ "name": "open",
4016
+ "description": "Контролируемое состояние панели (`v-model:open`) прокидывается в `GrDropdown`. Без пропа меню ведёт себя само (uncontrolled).",
4017
+ "default": "undefined",
3781
4018
  "value": {
3782
4019
  "kind": "expression",
3783
- "type": "Placement | undefined"
4020
+ "type": "boolean | undefined"
3784
4021
  }
3785
4022
  },
3786
4023
  {
@@ -3839,20 +4076,11 @@
3839
4076
  },
3840
4077
  {
3841
4078
  "name": "width",
3842
- "description": "Ширина панели: число — пиксели, строка — CSS-длина, `auto` — по контенту.",
3843
- "default": "\"12rem\"",
3844
- "value": {
3845
- "kind": "expression",
3846
- "type": "GrDropdownWidth | undefined"
3847
- }
3848
- },
3849
- {
3850
- "name": "offset",
3851
- "description": "Зазор между триггером и панелью, px.",
3852
- "default": "8",
4079
+ "description": "Ширина панели: число — пиксели, строка — CSS-длина, `auto` — по контенту.",
4080
+ "default": "\"12rem\"",
3853
4081
  "value": {
3854
4082
  "kind": "expression",
3855
- "type": "number | undefined"
4083
+ "type": "GrDropdownWidth | undefined"
3856
4084
  }
3857
4085
  },
3858
4086
  {
@@ -4569,20 +4797,20 @@
4569
4797
  }
4570
4798
  },
4571
4799
  {
4572
- "name": "labelPosition",
4573
- "description": "Подпись сверху (по умолчанию) или сбоку — для плотных форм.",
4800
+ "name": "label",
4574
4801
  "default": "undefined",
4575
4802
  "value": {
4576
4803
  "kind": "expression",
4577
- "type": "\"start\" | \"top\" | undefined"
4804
+ "type": "string | undefined"
4578
4805
  }
4579
4806
  },
4580
4807
  {
4581
- "name": "label",
4808
+ "name": "labelPosition",
4809
+ "description": "Подпись сверху (по умолчанию) или сбоку — для плотных форм.",
4582
4810
  "default": "undefined",
4583
4811
  "value": {
4584
4812
  "kind": "expression",
4585
- "type": "string | undefined"
4813
+ "type": "\"top\" | \"start\" | undefined"
4586
4814
  }
4587
4815
  },
4588
4816
  {
@@ -4666,7 +4894,7 @@
4666
4894
  },
4667
4895
  "props": [
4668
4896
  {
4669
- "name": "multiple",
4897
+ "name": "disabled",
4670
4898
  "default": "false",
4671
4899
  "value": {
4672
4900
  "kind": "expression",
@@ -4674,7 +4902,7 @@
4674
4902
  }
4675
4903
  },
4676
4904
  {
4677
- "name": "disabled",
4905
+ "name": "multiple",
4678
4906
  "default": "false",
4679
4907
  "value": {
4680
4908
  "kind": "expression",
@@ -4985,6 +5213,24 @@
4985
5213
  "type": "string | undefined"
4986
5214
  }
4987
5215
  },
5216
+ {
5217
+ "name": "prevLabel",
5218
+ "description": "i18n: aria-label кнопки «предыдущее изображение».",
5219
+ "default": "undefined",
5220
+ "value": {
5221
+ "kind": "expression",
5222
+ "type": "string | undefined"
5223
+ }
5224
+ },
5225
+ {
5226
+ "name": "nextLabel",
5227
+ "description": "i18n: aria-label кнопки «следующее изображение».",
5228
+ "default": "undefined",
5229
+ "value": {
5230
+ "kind": "expression",
5231
+ "type": "string | undefined"
5232
+ }
5233
+ },
4988
5234
  {
4989
5235
  "name": "emptyText",
4990
5236
  "description": "i18n: текст в пустом состоянии (нет изображений).",
@@ -5094,24 +5340,6 @@
5094
5340
  "type": "string | undefined"
5095
5341
  }
5096
5342
  },
5097
- {
5098
- "name": "prevLabel",
5099
- "description": "i18n: aria-label кнопки «предыдущее изображение».",
5100
- "default": "undefined",
5101
- "value": {
5102
- "kind": "expression",
5103
- "type": "string | undefined"
5104
- }
5105
- },
5106
- {
5107
- "name": "nextLabel",
5108
- "description": "i18n: aria-label кнопки «следующее изображение».",
5109
- "default": "undefined",
5110
- "value": {
5111
- "kind": "expression",
5112
- "type": "string | undefined"
5113
- }
5114
- },
5115
5343
  {
5116
5344
  "name": "zoomInLabel",
5117
5345
  "description": "i18n: aria-label кнопки «увеличить».",
@@ -5239,6 +5467,14 @@
5239
5467
  "symbol": "GrInput"
5240
5468
  },
5241
5469
  "props": [
5470
+ {
5471
+ "name": "disabled",
5472
+ "default": "false",
5473
+ "value": {
5474
+ "kind": "expression",
5475
+ "type": "boolean | undefined"
5476
+ }
5477
+ },
5242
5478
  {
5243
5479
  "name": "type",
5244
5480
  "default": "\"text\"",
@@ -5256,14 +5492,6 @@
5256
5492
  "type": "string | undefined"
5257
5493
  }
5258
5494
  },
5259
- {
5260
- "name": "disabled",
5261
- "default": "false",
5262
- "value": {
5263
- "kind": "expression",
5264
- "type": "boolean | undefined"
5265
- }
5266
- },
5267
5495
  {
5268
5496
  "name": "readonly",
5269
5497
  "description": "Только для чтения: значение видно и выделяемо, но не редактируется.",
@@ -5530,6 +5758,14 @@
5530
5758
  "symbol": "GrInputTag"
5531
5759
  },
5532
5760
  "props": [
5761
+ {
5762
+ "name": "disabled",
5763
+ "default": "false",
5764
+ "value": {
5765
+ "kind": "expression",
5766
+ "type": "boolean | undefined"
5767
+ }
5768
+ },
5533
5769
  {
5534
5770
  "name": "tagTone",
5535
5771
  "default": "\"neutral\"",
@@ -5562,14 +5798,6 @@
5562
5798
  "type": "GrBadgeRadius | undefined"
5563
5799
  }
5564
5800
  },
5565
- {
5566
- "name": "disabled",
5567
- "default": "false",
5568
- "value": {
5569
- "kind": "expression",
5570
- "type": "boolean | undefined"
5571
- }
5572
- },
5573
5801
  {
5574
5802
  "name": "readonly",
5575
5803
  "default": "false",
@@ -5961,21 +6189,21 @@
5961
6189
  },
5962
6190
  "props": [
5963
6191
  {
5964
- "name": "variant",
5965
- "description": "`merged` (по умолчанию) сочетание одной плашкой, как его пишут сами системы: `⌘K` на macOS, `Ctrl+K` на прочих. `split` — по плашке на клавишу. `sequence` аккорд «G затем I»: клавиши нажимают одну за другой.",
5966
- "default": "\"merged\"",
6192
+ "name": "keys",
6193
+ "description": "Сочетание: строкой (`\"mod+shift+K\"`) или набором токенов (`['mod', 'K']`). Токен `mod` — Cmd на macOS, Ctrl на остальных.",
6194
+ "default": "undefined",
5967
6195
  "value": {
5968
6196
  "kind": "expression",
5969
- "type": "\"split\" | \"merged\" | \"sequence\" | undefined"
6197
+ "type": "string | string[] | undefined"
5970
6198
  }
5971
6199
  },
5972
6200
  {
5973
- "name": "keys",
5974
- "description": "Сочетание: строкой (`\"mod+shift+K\"`) или набором токенов (`['mod', 'K']`). Токен `mod` — Cmd на macOS, Ctrl на остальных.",
5975
- "default": "undefined",
6201
+ "name": "variant",
6202
+ "description": "`merged` (по умолчанию) сочетание одной плашкой, как его пишут сами системы: `⌘K` на macOS, `Ctrl+K` на прочих. `split` — по плашке на клавишу. `sequence` аккорд «G затем I»: клавиши нажимают одну за другой.",
6203
+ "default": "\"merged\"",
5976
6204
  "value": {
5977
6205
  "kind": "expression",
5978
- "type": "string | string[] | undefined"
6206
+ "type": "\"split\" | \"merged\" | \"sequence\" | undefined"
5979
6207
  }
5980
6208
  },
5981
6209
  {
@@ -6018,6 +6246,14 @@
6018
6246
  "symbol": "GrLink"
6019
6247
  },
6020
6248
  "props": [
6249
+ {
6250
+ "name": "disabled",
6251
+ "default": "false",
6252
+ "value": {
6253
+ "kind": "expression",
6254
+ "type": "boolean | undefined"
6255
+ }
6256
+ },
6021
6257
  {
6022
6258
  "name": "tone",
6023
6259
  "description": "Семантический цвет ссылки из палитры `GrTone`.",
@@ -6036,14 +6272,6 @@
6036
6272
  "type": "GrLinkVariant | undefined"
6037
6273
  }
6038
6274
  },
6039
- {
6040
- "name": "disabled",
6041
- "default": "false",
6042
- "value": {
6043
- "kind": "expression",
6044
- "type": "boolean | undefined"
6045
- }
6046
- },
6047
6275
  {
6048
6276
  "name": "size",
6049
6277
  "default": "undefined",
@@ -7029,12 +7257,11 @@
7029
7257
  },
7030
7258
  "props": [
7031
7259
  {
7032
- "name": "open",
7033
- "description": "Открыт ли поповер. Без этого пропа компонент ведёт состояние сам (uncontrolled), с ним — слушайте `update:open`.",
7034
- "default": "undefined",
7260
+ "name": "placement",
7261
+ "default": "\"bottom-start\"",
7035
7262
  "value": {
7036
7263
  "kind": "expression",
7037
- "type": "boolean | undefined"
7264
+ "type": "Placement | undefined"
7038
7265
  }
7039
7266
  },
7040
7267
  {
@@ -7046,28 +7273,29 @@
7046
7273
  }
7047
7274
  },
7048
7275
  {
7049
- "name": "size",
7276
+ "name": "open",
7277
+ "description": "Открыт ли поповер. Без этого пропа компонент ведёт состояние сам (uncontrolled), с ним — слушайте `update:open`.",
7050
7278
  "default": "undefined",
7051
7279
  "value": {
7052
7280
  "kind": "expression",
7053
- "type": "\"xs\" | \"sm\" | \"md\" | \"lg\" | undefined"
7281
+ "type": "boolean | undefined"
7054
7282
  }
7055
7283
  },
7056
7284
  {
7057
- "name": "ariaLabel",
7058
- "description": "Доступное имя панели. Обязательно для `role=\"dialog\"` без видимого заголовка.",
7285
+ "name": "size",
7059
7286
  "default": "undefined",
7060
7287
  "value": {
7061
7288
  "kind": "expression",
7062
- "type": "string | undefined"
7289
+ "type": "\"xs\" | \"sm\" | \"md\" | \"lg\" | undefined"
7063
7290
  }
7064
7291
  },
7065
7292
  {
7066
- "name": "placement",
7067
- "default": "\"bottom-start\"",
7293
+ "name": "ariaLabel",
7294
+ "description": "Доступное имя панели. Обязательно для `role=\"dialog\"` без видимого заголовка.",
7295
+ "default": "undefined",
7068
7296
  "value": {
7069
7297
  "kind": "expression",
7070
- "type": "Placement | undefined"
7298
+ "type": "string | undefined"
7071
7299
  }
7072
7300
  },
7073
7301
  {
@@ -7088,6 +7316,15 @@
7088
7316
  "type": "GrPopoverPadding | undefined"
7089
7317
  }
7090
7318
  },
7319
+ {
7320
+ "name": "anchor",
7321
+ "description": "Якорь-прямоугольник в координатах вьюпорта вместо обёртки слота `#trigger`: панель встаёт у точки курсора или у строки списка. Нужен контекстному меню, у которого триггера-элемента нет вовсе. `triggerProps` в этом режиме некому потребить, и своих ARIA-атрибутов поповер никуда не вешает: `aria-haspopup` невалиден вне интерактивного элемента, а `aria-expanded` без хозяина — шум. Связь с содержимым страницы объявляет тот, кто открывает.",
7322
+ "default": "undefined",
7323
+ "value": {
7324
+ "kind": "expression",
7325
+ "type": "GrFloatingAnchorRect | null | undefined"
7326
+ }
7327
+ },
7091
7328
  {
7092
7329
  "name": "closeOnEsc",
7093
7330
  "default": "true",
@@ -7140,15 +7377,6 @@
7140
7377
  "type": "string | undefined"
7141
7378
  }
7142
7379
  },
7143
- {
7144
- "name": "anchor",
7145
- "description": "Якорь-прямоугольник в координатах вьюпорта вместо обёртки слота `#trigger`: панель встаёт у точки курсора или у строки списка. Нужен контекстному меню, у которого триггера-элемента нет вовсе. `triggerProps` в этом режиме некому потребить, и своих ARIA-атрибутов поповер никуда не вешает: `aria-haspopup` невалиден вне интерактивного элемента, а `aria-expanded` без хозяина — шум. Связь с содержимым страницы объявляет тот, кто открывает.",
7146
- "default": "undefined",
7147
- "value": {
7148
- "kind": "expression",
7149
- "type": "GrFloatingAnchorRect | null | undefined"
7150
- }
7151
- },
7152
7380
  {
7153
7381
  "name": "modal",
7154
7382
  "description": "Модальный режим: фон уходит в `inert`, Tab ходит по кругу внутри панели, скролл страницы блокируется, а слой встаёт в стек модальным — как окно. Нужен поповеру с формой или подтверждением внутри: без изоляции фона пользователь уводит фокус на страницу, к которой поповер и относится. В этом режиме фокус переносится в панель независимо от `autoFocus`: фон недоступен, и слой без фокуса внутри стал бы клавиатурной ловушкой.",
@@ -7793,27 +8021,27 @@
7793
8021
  },
7794
8022
  "props": [
7795
8023
  {
7796
- "name": "variant",
7797
- "default": "\"radiobox\"",
8024
+ "name": "disabled",
8025
+ "default": "undefined",
7798
8026
  "value": {
7799
8027
  "kind": "expression",
7800
- "type": "GrRadioVariant | undefined"
8028
+ "type": "boolean | undefined"
7801
8029
  }
7802
8030
  },
7803
8031
  {
7804
- "name": "modelValue",
7805
- "default": "undefined",
8032
+ "name": "variant",
8033
+ "default": "\"radiobox\"",
7806
8034
  "value": {
7807
8035
  "kind": "expression",
7808
- "type": "GrRadioValue | undefined"
8036
+ "type": "GrRadioVariant | undefined"
7809
8037
  }
7810
8038
  },
7811
8039
  {
7812
- "name": "disabled",
8040
+ "name": "modelValue",
7813
8041
  "default": "undefined",
7814
8042
  "value": {
7815
8043
  "kind": "expression",
7816
- "type": "boolean | undefined"
8044
+ "type": "GrRadioValue | undefined"
7817
8045
  }
7818
8046
  },
7819
8047
  {
@@ -7858,7 +8086,7 @@
7858
8086
  }
7859
8087
  },
7860
8088
  {
7861
- "name": "form",
8089
+ "name": "id",
7862
8090
  "default": "undefined",
7863
8091
  "value": {
7864
8092
  "kind": "expression",
@@ -7866,7 +8094,7 @@
7866
8094
  }
7867
8095
  },
7868
8096
  {
7869
- "name": "id",
8097
+ "name": "form",
7870
8098
  "default": "undefined",
7871
8099
  "value": {
7872
8100
  "kind": "expression",
@@ -7939,6 +8167,14 @@
7939
8167
  "symbol": "GrRadioGroup"
7940
8168
  },
7941
8169
  "props": [
8170
+ {
8171
+ "name": "disabled",
8172
+ "default": "false",
8173
+ "value": {
8174
+ "kind": "expression",
8175
+ "type": "boolean | undefined"
8176
+ }
8177
+ },
7942
8178
  {
7943
8179
  "name": "variant",
7944
8180
  "default": "\"radiobox\"",
@@ -7955,14 +8191,6 @@
7955
8191
  "type": "GrRadioGroupOption[] | undefined"
7956
8192
  }
7957
8193
  },
7958
- {
7959
- "name": "disabled",
7960
- "default": "false",
7961
- "value": {
7962
- "kind": "expression",
7963
- "type": "boolean | undefined"
7964
- }
7965
- },
7966
8194
  {
7967
8195
  "name": "readonly",
7968
8196
  "description": "Только для чтения: выбор видно, но он не меняется.",
@@ -8062,6 +8290,14 @@
8062
8290
  "symbol": "GrRating"
8063
8291
  },
8064
8292
  "props": [
8293
+ {
8294
+ "name": "disabled",
8295
+ "default": "false",
8296
+ "value": {
8297
+ "kind": "expression",
8298
+ "type": "boolean | undefined"
8299
+ }
8300
+ },
8065
8301
  {
8066
8302
  "name": "tone",
8067
8303
  "description": "Тон заливки; точечно перекрывается переменной `--gr-rating-color`.",
@@ -8080,14 +8316,6 @@
8080
8316
  "type": "string | Component | undefined"
8081
8317
  }
8082
8318
  },
8083
- {
8084
- "name": "disabled",
8085
- "default": "false",
8086
- "value": {
8087
- "kind": "expression",
8088
- "type": "boolean | undefined"
8089
- }
8090
- },
8091
8319
  {
8092
8320
  "name": "readonly",
8093
8321
  "description": "Только показ: без ввода и фокуса.",
@@ -8390,19 +8618,19 @@
8390
8618
  },
8391
8619
  "props": [
8392
8620
  {
8393
- "name": "variant",
8394
- "default": "undefined",
8621
+ "name": "disabled",
8622
+ "default": "false",
8395
8623
  "value": {
8396
8624
  "kind": "expression",
8397
- "type": "GrSegmentedVariant | undefined"
8625
+ "type": "boolean | undefined"
8398
8626
  }
8399
8627
  },
8400
8628
  {
8401
- "name": "disabled",
8402
- "default": "false",
8629
+ "name": "variant",
8630
+ "default": "undefined",
8403
8631
  "value": {
8404
8632
  "kind": "expression",
8405
- "type": "boolean | undefined"
8633
+ "type": "GrSegmentedVariant | undefined"
8406
8634
  }
8407
8635
  },
8408
8636
  {
@@ -9004,21 +9232,21 @@
9004
9232
  }
9005
9233
  },
9006
9234
  {
9007
- "name": "width",
9008
- "description": "Ширина в развёрнутом состоянии.",
9009
- "default": "\"240px\"",
9235
+ "name": "landmark",
9236
+ "description": "Лендмарк корня. `complementary` (по умолчанию) — `<aside>`; `navigation` — `<nav>` для панели, которая действительно является навигацией. Вложенный `<nav>` внутрь `<aside>` не заводим: два лендмарка на одну панель засоряют обзор, а панель фильтров навигацией не является вовсе.",
9237
+ "default": "\"complementary\"",
9010
9238
  "value": {
9011
9239
  "kind": "expression",
9012
- "type": "string | undefined"
9240
+ "type": "\"complementary\" | \"navigation\" | undefined"
9013
9241
  }
9014
9242
  },
9015
9243
  {
9016
- "name": "landmark",
9017
- "description": "Лендмарк корня. `complementary` (по умолчанию) — `<aside>`; `navigation` — `<nav>` для панели, которая действительно является навигацией. Вложенный `<nav>` внутрь `<aside>` не заводим: два лендмарка на одну панель засоряют обзор, а панель фильтров навигацией не является вовсе.",
9018
- "default": "\"complementary\"",
9244
+ "name": "width",
9245
+ "description": "Ширина в развёрнутом состоянии.",
9246
+ "default": "\"240px\"",
9019
9247
  "value": {
9020
9248
  "kind": "expression",
9021
- "type": "\"complementary\" | \"navigation\" | undefined"
9249
+ "type": "string | undefined"
9022
9250
  }
9023
9251
  },
9024
9252
  {
@@ -9105,15 +9333,16 @@
9105
9333
  }
9106
9334
  },
9107
9335
  {
9108
- "name": "width",
9109
- "default": "undefined",
9336
+ "name": "count",
9337
+ "description": "Сколько заглушек подряд. Больше одной — они уезжают в общую обёртку.",
9338
+ "default": "1",
9110
9339
  "value": {
9111
9340
  "kind": "expression",
9112
- "type": "string | undefined"
9341
+ "type": "number | undefined"
9113
9342
  }
9114
9343
  },
9115
9344
  {
9116
- "name": "height",
9345
+ "name": "width",
9117
9346
  "default": "undefined",
9118
9347
  "value": {
9119
9348
  "kind": "expression",
@@ -9121,8 +9350,7 @@
9121
9350
  }
9122
9351
  },
9123
9352
  {
9124
- "name": "rounded",
9125
- "description": "Радиус точечно. Не задан — берётся из `variant`.",
9353
+ "name": "height",
9126
9354
  "default": "undefined",
9127
9355
  "value": {
9128
9356
  "kind": "expression",
@@ -9130,12 +9358,12 @@
9130
9358
  }
9131
9359
  },
9132
9360
  {
9133
- "name": "count",
9134
- "description": "Сколько заглушек подряд. Больше одной они уезжают в общую обёртку.",
9135
- "default": "1",
9361
+ "name": "rounded",
9362
+ "description": "Радиус точечно. Не заданберётся из `variant`.",
9363
+ "default": "undefined",
9136
9364
  "value": {
9137
9365
  "kind": "expression",
9138
- "type": "number | undefined"
9366
+ "type": "string | undefined"
9139
9367
  }
9140
9368
  }
9141
9369
  ]
@@ -9443,21 +9671,21 @@
9443
9671
  },
9444
9672
  "props": [
9445
9673
  {
9446
- "name": "modelValue",
9447
- "description": "Доля первой панели в процентах. Поддерживает `v-model`; без него компонент помнит размер сам.",
9448
- "default": "undefined",
9674
+ "name": "disabled",
9675
+ "description": "Разделитель не тянется, не фокусируется и не отвечает на клавиши.",
9676
+ "default": "false",
9449
9677
  "value": {
9450
9678
  "kind": "expression",
9451
- "type": "number | undefined"
9679
+ "type": "boolean | undefined"
9452
9680
  }
9453
9681
  },
9454
9682
  {
9455
- "name": "disabled",
9456
- "description": "Разделитель не тянется, не фокусируется и не отвечает на клавиши.",
9457
- "default": "false",
9683
+ "name": "modelValue",
9684
+ "description": "Доля первой панели в процентах. Поддерживает `v-model`; без него компонент помнит размер сам.",
9685
+ "default": "undefined",
9458
9686
  "value": {
9459
9687
  "kind": "expression",
9460
- "type": "boolean | undefined"
9688
+ "type": "number | undefined"
9461
9689
  }
9462
9690
  },
9463
9691
  {
@@ -9905,8 +10133,7 @@
9905
10133
  },
9906
10134
  "props": [
9907
10135
  {
9908
- "name": "modelValue",
9909
- "description": "Значение переключателя. Необязательное: без `v-model` контрол рисуется выключенным — так же, как `GrCheckbox`. Обязательный проп заставлял бы заводить `ref` даже там, где переключатель presentational.",
10136
+ "name": "disabled",
9910
10137
  "default": "false",
9911
10138
  "value": {
9912
10139
  "kind": "expression",
@@ -9914,7 +10141,8 @@
9914
10141
  }
9915
10142
  },
9916
10143
  {
9917
- "name": "disabled",
10144
+ "name": "modelValue",
10145
+ "description": "Значение переключателя. Необязательное: без `v-model` контрол рисуется выключенным — так же, как `GrCheckbox`. Обязательный проп заставлял бы заводить `ref` даже там, где переключатель presentational.",
9918
10146
  "default": "false",
9919
10147
  "value": {
9920
10148
  "kind": "expression",
@@ -10134,6 +10362,15 @@
10134
10362
  "type": "boolean | undefined"
10135
10363
  }
10136
10364
  },
10365
+ {
10366
+ "name": "ariaLabelledby",
10367
+ "description": "ID элемента-заголовка, связанного с `<table>` через `aria-labelledby`.",
10368
+ "default": "undefined",
10369
+ "value": {
10370
+ "kind": "expression",
10371
+ "type": "string | undefined"
10372
+ }
10373
+ },
10137
10374
  {
10138
10375
  "name": "empty",
10139
10376
  "description": "Таблица пуста. По умолчанию определяется по содержимому слота.",
@@ -10170,15 +10407,6 @@
10170
10407
  "type": "string | undefined"
10171
10408
  }
10172
10409
  },
10173
- {
10174
- "name": "ariaLabelledby",
10175
- "description": "ID элемента-заголовка, связанного с `<table>` через `aria-labelledby`.",
10176
- "default": "undefined",
10177
- "value": {
10178
- "kind": "expression",
10179
- "type": "string | undefined"
10180
- }
10181
- },
10182
10410
  {
10183
10411
  "name": "regionLabel",
10184
10412
  "description": "ARIA-label для скролл-контейнера. Включает `role=\"region\"`; сам скролл достижим с клавиатуры всегда, независимо от метки.",
@@ -10321,6 +10549,15 @@
10321
10549
  "type": "GrTabsOrientation | undefined"
10322
10550
  }
10323
10551
  },
10552
+ {
10553
+ "name": "activationMode",
10554
+ "description": "`automatic` (по умолчанию) — стрелка сразу переключает вкладку; `manual` — стрелка двигает только фокус, выбор подтверждается `Enter`/`Space`. Второй режим для вкладок с тяжёлой загрузкой: перебор стрелками иначе тянет каждую панель.",
10555
+ "default": "\"automatic\"",
10556
+ "value": {
10557
+ "kind": "expression",
10558
+ "type": "GrTabsActivationMode | undefined"
10559
+ }
10560
+ },
10324
10561
  {
10325
10562
  "name": "emptyText",
10326
10563
  "description": "Текст, когда список вкладок пуст. Слот `#empty` сильнее.",
@@ -10339,15 +10576,6 @@
10339
10576
  "type": "string | undefined"
10340
10577
  }
10341
10578
  },
10342
- {
10343
- "name": "activationMode",
10344
- "description": "`automatic` (по умолчанию) — стрелка сразу переключает вкладку; `manual` — стрелка двигает только фокус, выбор подтверждается `Enter`/`Space`. Второй режим для вкладок с тяжёлой загрузкой: перебор стрелками иначе тянет каждую панель.",
10345
- "default": "\"automatic\"",
10346
- "value": {
10347
- "kind": "expression",
10348
- "type": "GrTabsActivationMode | undefined"
10349
- }
10350
- },
10351
10579
  {
10352
10580
  "name": "modelValue",
10353
10581
  "required": true,
@@ -10806,12 +11034,12 @@
10806
11034
  },
10807
11035
  "props": [
10808
11036
  {
10809
- "name": "open",
10810
- "description": "Управляемая видимость. Без неё компонент ведёт видимость сам.",
10811
- "default": "undefined",
11037
+ "name": "placement",
11038
+ "description": "Предпочтительная сторона панели; `flip` может её изменить.",
11039
+ "default": "\"top\"",
10812
11040
  "value": {
10813
11041
  "kind": "expression",
10814
- "type": "boolean | undefined"
11042
+ "type": "Placement | undefined"
10815
11043
  }
10816
11044
  },
10817
11045
  {
@@ -10824,21 +11052,21 @@
10824
11052
  }
10825
11053
  },
10826
11054
  {
10827
- "name": "size",
10828
- "description": "Размер панели и дефолтной триггер-иконки.",
11055
+ "name": "open",
11056
+ "description": "Управляемая видимость. Без неё компонент ведёт видимость сам.",
10829
11057
  "default": "undefined",
10830
11058
  "value": {
10831
11059
  "kind": "expression",
10832
- "type": "\"xs\" | \"sm\" | \"md\" | \"lg\" | undefined"
11060
+ "type": "boolean | undefined"
10833
11061
  }
10834
11062
  },
10835
11063
  {
10836
- "name": "placement",
10837
- "description": "Предпочтительная сторона панели; `flip` может её изменить.",
10838
- "default": "\"top\"",
11064
+ "name": "size",
11065
+ "description": "Размер панели и дефолтной триггер-иконки.",
11066
+ "default": "undefined",
10839
11067
  "value": {
10840
11068
  "kind": "expression",
10841
- "type": "Placement | undefined"
11069
+ "type": "\"xs\" | \"sm\" | \"md\" | \"lg\" | undefined"
10842
11070
  }
10843
11071
  },
10844
11072
  {
@@ -10905,6 +11133,208 @@
10905
11133
  ]
10906
11134
  }
10907
11135
  },
11136
+ {
11137
+ "name": "GrTransfer",
11138
+ "source": {
11139
+ "module": "@feugene/granularity/components/GrTransfer",
11140
+ "symbol": "GrTransfer"
11141
+ },
11142
+ "props": [
11143
+ {
11144
+ "name": "items",
11145
+ "required": true,
11146
+ "description": "Каталог целиком: обе панели — одна его раскладка.",
11147
+ "value": {
11148
+ "kind": "expression",
11149
+ "type": "TItem[]"
11150
+ }
11151
+ },
11152
+ {
11153
+ "name": "modelValue",
11154
+ "required": true,
11155
+ "description": "Ключи правой панели **в её порядке**: порядок и есть значение.",
11156
+ "value": {
11157
+ "kind": "expression",
11158
+ "type": "GrTransferKey[]"
11159
+ }
11160
+ },
11161
+ {
11162
+ "name": "itemKey",
11163
+ "default": "undefined",
11164
+ "value": {
11165
+ "kind": "expression",
11166
+ "type": "GrTransferItemKey<TItem> | undefined"
11167
+ }
11168
+ },
11169
+ {
11170
+ "name": "itemLabel",
11171
+ "default": "undefined",
11172
+ "value": {
11173
+ "kind": "expression",
11174
+ "type": "GrTransferItemLabel<TItem> | undefined"
11175
+ }
11176
+ },
11177
+ {
11178
+ "name": "itemDisabled",
11179
+ "default": "undefined",
11180
+ "value": {
11181
+ "kind": "expression",
11182
+ "type": "GrTransferItemFlag<TItem> | undefined"
11183
+ }
11184
+ },
11185
+ {
11186
+ "name": "sourceTitle",
11187
+ "description": "Имя левой панели. Это доступное имя её `listbox`, а не украшение.",
11188
+ "default": "undefined",
11189
+ "value": {
11190
+ "kind": "expression",
11191
+ "type": "string | undefined"
11192
+ }
11193
+ },
11194
+ {
11195
+ "name": "targetTitle",
11196
+ "description": "Имя правой панели.",
11197
+ "default": "undefined",
11198
+ "value": {
11199
+ "kind": "expression",
11200
+ "type": "string | undefined"
11201
+ }
11202
+ },
11203
+ {
11204
+ "name": "searchable",
11205
+ "description": "Поле поиска в каждой панели.",
11206
+ "default": "true",
11207
+ "value": {
11208
+ "kind": "expression",
11209
+ "type": "boolean | undefined"
11210
+ }
11211
+ },
11212
+ {
11213
+ "name": "filter",
11214
+ "description": "Свой матчер: встроенный ищет по `itemLabel`, а строка может показывать больше.",
11215
+ "default": "undefined",
11216
+ "value": {
11217
+ "kind": "expression",
11218
+ "type": "((item: TItem, query: string) => boolean) | undefined"
11219
+ }
11220
+ },
11221
+ {
11222
+ "name": "sortable",
11223
+ "description": "Правую панель можно переставлять.",
11224
+ "default": "true",
11225
+ "value": {
11226
+ "kind": "expression",
11227
+ "type": "boolean | undefined"
11228
+ }
11229
+ },
11230
+ {
11231
+ "name": "draggable",
11232
+ "description": "Перетаскивание строк указателем. Усиление поверх кнопок, а не контракт.",
11233
+ "default": "undefined",
11234
+ "value": {
11235
+ "kind": "expression",
11236
+ "type": "boolean | undefined"
11237
+ }
11238
+ },
11239
+ {
11240
+ "name": "maxHeight",
11241
+ "description": "Высота панелей: обе одинаковы и прокручиваются внутри себя.",
11242
+ "default": "undefined",
11243
+ "value": {
11244
+ "kind": "expression",
11245
+ "type": "string | number | undefined"
11246
+ }
11247
+ },
11248
+ {
11249
+ "name": "size",
11250
+ "default": "undefined",
11251
+ "value": {
11252
+ "kind": "expression",
11253
+ "type": "\"xs\" | \"sm\" | \"md\" | \"lg\" | undefined"
11254
+ }
11255
+ },
11256
+ {
11257
+ "name": "disabled",
11258
+ "default": "false",
11259
+ "value": {
11260
+ "kind": "expression",
11261
+ "type": "boolean | undefined"
11262
+ }
11263
+ },
11264
+ {
11265
+ "name": "readonly",
11266
+ "default": "false",
11267
+ "value": {
11268
+ "kind": "expression",
11269
+ "type": "boolean | undefined"
11270
+ }
11271
+ },
11272
+ {
11273
+ "name": "invalid",
11274
+ "default": "false",
11275
+ "value": {
11276
+ "kind": "expression",
11277
+ "type": "boolean | undefined"
11278
+ }
11279
+ },
11280
+ {
11281
+ "name": "required",
11282
+ "default": "false",
11283
+ "value": {
11284
+ "kind": "expression",
11285
+ "type": "boolean | undefined"
11286
+ }
11287
+ },
11288
+ {
11289
+ "name": "ariaLabel",
11290
+ "default": "undefined",
11291
+ "value": {
11292
+ "kind": "expression",
11293
+ "type": "string | undefined"
11294
+ }
11295
+ }
11296
+ ],
11297
+ "slots": [
11298
+ {
11299
+ "name": "item",
11300
+ "description": "Своя строка. Слот доменный: у соседей `item` — строка списка, здесь тоже."
11301
+ },
11302
+ {
11303
+ "name": "header",
11304
+ "description": "Своя шапка панели: имя, счётчик, отметка «выбрать всё»."
11305
+ },
11306
+ {
11307
+ "name": "actions",
11308
+ "description": "Своя колонка кнопок между панелями."
11309
+ },
11310
+ {
11311
+ "name": "empty",
11312
+ "description": "Пустая панель. `filtered` — пусто из-за поиска, а не по сути."
11313
+ }
11314
+ ],
11315
+ "js": {
11316
+ "events": [
11317
+ {
11318
+ "name": "update:modelValue"
11319
+ },
11320
+ {
11321
+ "name": "change"
11322
+ },
11323
+ {
11324
+ "name": "transfer"
11325
+ },
11326
+ {
11327
+ "name": "search"
11328
+ },
11329
+ {
11330
+ "name": "focus"
11331
+ },
11332
+ {
11333
+ "name": "blur"
11334
+ }
11335
+ ]
11336
+ }
11337
+ },
10908
11338
  {
10909
11339
  "name": "GrTree",
10910
11340
  "source": {