@feugene/granularity 0.42.0 → 0.44.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 (193) hide show
  1. package/README.md +2 -2
  2. package/dist/chunks/config-BXRmsn3t.js +172 -0
  3. package/dist/chunks/config-BXRmsn3t.js.map +1 -0
  4. package/dist/chunks/config-BkQ2jvXv.js +49 -0
  5. package/dist/chunks/config-BkQ2jvXv.js.map +1 -0
  6. package/dist/chunks/config-Dg0bSoGw.js +81 -0
  7. package/dist/chunks/config-Dg0bSoGw.js.map +1 -0
  8. package/dist/chunks/config-DmED6aJV.js +237 -0
  9. package/dist/chunks/config-DmED6aJV.js.map +1 -0
  10. package/dist/chunks/{config-DWL81-aM.js → config-hnoZvcIM.js} +2 -20
  11. package/dist/chunks/config-hnoZvcIM.js.map +1 -0
  12. package/dist/chunks/dragSortGeometry-CY-llfrQ.js +87 -0
  13. package/dist/chunks/dragSortGeometry-CY-llfrQ.js.map +1 -0
  14. package/dist/chunks/{en-B9E3jO6m.js → en-DiHzFact.js} +34 -1
  15. package/dist/chunks/en-DiHzFact.js.map +1 -0
  16. package/dist/chunks/{es-QpzdIEut.js → es-1ZL6NtkB.js} +34 -1
  17. package/dist/chunks/es-1ZL6NtkB.js.map +1 -0
  18. package/dist/chunks/{es-DCkqHTlU.js → es-CeKkMxZ_.js} +3 -3
  19. package/dist/chunks/{es-DCkqHTlU.js.map → es-CeKkMxZ_.js.map} +1 -1
  20. package/dist/chunks/{generated-B95IBXs6.js → generated-Hxu_sWPs.js} +238 -0
  21. package/dist/chunks/generated-Hxu_sWPs.js.map +1 -0
  22. package/dist/chunks/{granular-provider-BG_2XqkS.js → granular-provider-CCNbQa5U.js} +9 -1
  23. package/dist/chunks/granular-provider-CCNbQa5U.js.map +1 -0
  24. package/dist/chunks/{ru-D_1Ya489.js → ru-Dr2RYn0P.js} +34 -1
  25. package/dist/chunks/ru-Dr2RYn0P.js.map +1 -0
  26. package/dist/chunks/scrollOverflow-B_kEdcol.js +31 -0
  27. package/dist/chunks/scrollOverflow-B_kEdcol.js.map +1 -0
  28. package/dist/chunks/tones-CRJAaYyg.js +21 -0
  29. package/dist/chunks/tones-CRJAaYyg.js.map +1 -0
  30. package/dist/chunks/useScrollSpy-CIJpw0RI.js +360 -0
  31. package/dist/chunks/useScrollSpy-CIJpw0RI.js.map +1 -0
  32. package/dist/components/GrAffix/chunks/GrAffix-CWtC7yi8.js +272 -0
  33. package/dist/components/GrAffix/chunks/GrAffix-CWtC7yi8.js.map +1 -0
  34. package/dist/components/GrAffix/index.js +3 -0
  35. package/dist/components/GrCarousel/chunks/GrCarousel-ByuughtI.js +761 -0
  36. package/dist/components/GrCarousel/chunks/GrCarousel-ByuughtI.js.map +1 -0
  37. package/dist/components/GrCarousel/index.js +3 -0
  38. package/dist/components/GrCarousel/styles.css +1 -0
  39. package/dist/components/GrColorPicker/chunks/{GrColorPicker-BwzRLs-i.js → GrColorPicker-9mTR-YZ_.js} +1 -1
  40. package/dist/components/GrColorPicker/chunks/{GrColorPicker-BwzRLs-i.js.map → GrColorPicker-9mTR-YZ_.js.map} +1 -1
  41. package/dist/components/GrColorPicker/index.js +1 -1
  42. package/dist/components/GrDataTable/chunks/{GrDataTable-BBe7-uUe.js → GrDataTable-xNSmO_I-.js} +4 -3
  43. package/dist/components/GrDataTable/chunks/{GrDataTable-BBe7-uUe.js.map → GrDataTable-xNSmO_I-.js.map} +1 -1
  44. package/dist/components/GrDataTable/index.js +1 -1
  45. package/dist/components/GrImageViewer/chunks/{GrImageViewer-Dd2gJ-j_.js.map → GrImageViewer-DK-iVHHC.js.map} +1 -1
  46. package/dist/components/GrImageViewer/index.js +1 -1
  47. package/dist/components/GrInputTag/chunks/{GrInputTag-BKzm1PKw.js.map → GrInputTag-Ci8AO1ze.js.map} +1 -1
  48. package/dist/components/GrInputTag/index.js +1 -1
  49. package/dist/components/GrJsonViewer/chunks/{GrJsonViewer-BLCEWlwg.js → GrJsonViewer-CwCBMh4h.js} +2 -2
  50. package/dist/components/GrJsonViewer/chunks/{GrJsonViewer-BLCEWlwg.js.map → GrJsonViewer-CwCBMh4h.js.map} +1 -1
  51. package/dist/components/GrJsonViewer/index.js +1 -1
  52. package/dist/components/GrNumberInput/chunks/{GrNumberInput-Bm-V59TG.js.map → GrNumberInput-CL5QhOmx.js.map} +1 -1
  53. package/dist/components/GrNumberInput/index.js +1 -1
  54. package/dist/components/GrProgressBar/index.js +1 -1
  55. package/dist/components/GrScrollSpy/chunks/GrScrollSpy-CQCH3zLC.js +207 -0
  56. package/dist/components/GrScrollSpy/chunks/GrScrollSpy-CQCH3zLC.js.map +1 -0
  57. package/dist/components/GrScrollSpy/index.js +3 -0
  58. package/dist/components/GrSlider/chunks/{GrSlider-Db-jACXz.js.map → GrSlider-CO8N9SF6.js.map} +1 -1
  59. package/dist/components/GrSlider/index.js +1 -1
  60. package/dist/components/GrSortableList/chunks/{GrSortableList-ce1psLL0.js → GrSortableList-NKriuGm_.js} +2 -1
  61. package/dist/components/GrSortableList/chunks/{GrSortableList-ce1psLL0.js.map → GrSortableList-NKriuGm_.js.map} +1 -1
  62. package/dist/components/GrSortableList/index.js +1 -1
  63. package/dist/components/GrTabs/chunks/{GrTabs-BArefUFv.js → GrTabs-s9RzC1WX.js} +2 -31
  64. package/dist/components/GrTabs/chunks/GrTabs-s9RzC1WX.js.map +1 -0
  65. package/dist/components/GrTabs/index.js +1 -1
  66. package/dist/components/GrTransfer/chunks/GrTransfer-8FA78ny6.js +1368 -0
  67. package/dist/components/GrTransfer/chunks/GrTransfer-8FA78ny6.js.map +1 -0
  68. package/dist/components/GrTransfer/index.js +3 -0
  69. package/dist/components/GrTransfer/styles.css +1 -0
  70. package/dist/components/GrTree/chunks/{GrTree-BFWFc0Bm.js → GrTree-CkHzgYg1.js} +3 -3
  71. package/dist/components/GrTree/chunks/{GrTree-BFWFc0Bm.js.map → GrTree-CkHzgYg1.js.map} +1 -1
  72. package/dist/components/GrTree/index.js +1 -1
  73. package/dist/components/GrTreeSelect/chunks/{GrTreeSelect-DJa2lYGe.js → GrTreeSelect-DUsv3_mF.js} +1 -1
  74. package/dist/components/GrTreeSelect/chunks/{GrTreeSelect-DJa2lYGe.js.map → GrTreeSelect-DUsv3_mF.js.map} +1 -1
  75. package/dist/components/GrTreeSelect/index.js +1 -1
  76. package/dist/composables/useDragSort.js +179 -1
  77. package/dist/composables/useDragSort.js.map +1 -0
  78. package/dist/composables/useScrollSpy.js +2 -0
  79. package/dist/granular-provider-node.js +1 -1
  80. package/dist/granular-provider.js +1 -1
  81. package/dist/i18n/all.js +1 -1
  82. package/dist/i18n/index.js +1 -1
  83. package/dist/index.js +26 -19
  84. package/dist/theme.js +1 -1
  85. package/dist/tokens.js +1 -1
  86. package/dist/types/components/GrAffix/GrAffix.vue.d.ts +91 -0
  87. package/dist/types/components/GrAffix/affixState.d.ts +81 -0
  88. package/dist/types/components/GrAffix/config.d.ts +1 -0
  89. package/dist/types/components/GrAffix/grAffixStyles.d.ts +46 -0
  90. package/dist/types/components/GrAffix/index.d.ts +9 -0
  91. package/dist/types/components/GrAffix/safelist.d.ts +1 -0
  92. package/dist/types/components/GrAlert/GrAlert.vue.d.ts +1 -1
  93. package/dist/types/components/GrBadgeWrap/GrBadgeWrap.vue.d.ts +2 -2
  94. package/dist/types/components/GrButton/GrButton.vue.d.ts +2 -2
  95. package/dist/types/components/GrCard/GrCard.vue.d.ts +1 -1
  96. package/dist/types/components/GrCarousel/GrCarousel.vue.d.ts +151 -0
  97. package/dist/types/components/GrCarousel/GrCarouselSlide.vue.d.ts +53 -0
  98. package/dist/types/components/GrCarousel/carouselNavigation.d.ts +57 -0
  99. package/dist/types/components/GrCarousel/composables/useCarouselAutoplay.d.ts +33 -0
  100. package/dist/types/components/GrCarousel/composables/useCarouselSwipe.d.ts +20 -0
  101. package/dist/types/components/GrCarousel/config.d.ts +7 -0
  102. package/dist/types/components/GrCarousel/defaults.d.ts +13 -0
  103. package/dist/types/components/GrCarousel/grCarouselContext.d.ts +46 -0
  104. package/dist/types/components/GrCarousel/grCarouselStyles.d.ts +80 -0
  105. package/dist/types/components/GrCarousel/index.d.ts +12 -0
  106. package/dist/types/components/GrCarousel/safelist.d.ts +1 -0
  107. package/dist/types/components/GrCheckbox/GrCheckbox.vue.d.ts +3 -3
  108. package/dist/types/components/GrCheckboxGroup/GrCheckboxGroup.vue.d.ts +2 -2
  109. package/dist/types/components/GrChip/GrChip.vue.d.ts +2 -2
  110. package/dist/types/components/GrChipGroup/GrChipGroup.vue.d.ts +2 -2
  111. package/dist/types/components/GrCollapse/GrCollapse.vue.d.ts +1 -1
  112. package/dist/types/components/GrCollapse/GrCollapseItem.vue.d.ts +1 -1
  113. package/dist/types/components/GrColorPicker/GrColorPicker.vue.d.ts +3 -3
  114. package/dist/types/components/GrCommandPalette/GrCommandPalette.vue.d.ts +1 -1
  115. package/dist/types/components/GrConfirmDialog/GrConfirmDialog.vue.d.ts +1 -1
  116. package/dist/types/components/GrContextMenu/GrContextMenu.vue.d.ts +2 -2
  117. package/dist/types/components/GrDialog/GrDialog.vue.d.ts +1 -1
  118. package/dist/types/components/GrDivider/GrDivider.vue.d.ts +2 -2
  119. package/dist/types/components/GrDrawer/GrDrawer.vue.d.ts +1 -1
  120. package/dist/types/components/GrDropdown/GrDropdown.vue.d.ts +3 -3
  121. package/dist/types/components/GrDropdownMenu/GrDropdownMenu.vue.d.ts +3 -3
  122. package/dist/types/components/GrDropdownMenu/GrDropdownMenuItem.vue.d.ts +1 -1
  123. package/dist/types/components/GrEmptyState/GrEmptyState.vue.d.ts +1 -1
  124. package/dist/types/components/GrFileUpload/GrFileUpload.vue.d.ts +1 -1
  125. package/dist/types/components/GrFormField/GrFormField.vue.d.ts +3 -3
  126. package/dist/types/components/GrFormFile/GrFormFile.vue.d.ts +2 -2
  127. package/dist/types/components/GrFormSection/GrFormSection.vue.d.ts +1 -1
  128. package/dist/types/components/GrIcon/GrIcon.vue.d.ts +1 -1
  129. package/dist/types/components/GrImageViewer/GrImageViewer.vue.d.ts +3 -3
  130. package/dist/types/components/GrInput/GrInput.vue.d.ts +4 -4
  131. package/dist/types/components/GrInputTag/GrInputTag.vue.d.ts +3 -3
  132. package/dist/types/components/GrKbd/GrKbd.vue.d.ts +1 -1
  133. package/dist/types/components/GrLink/GrLink.vue.d.ts +1 -1
  134. package/dist/types/components/GrList/GrListItem.vue.d.ts +2 -2
  135. package/dist/types/components/GrNavbar/GrNavbar.vue.d.ts +2 -2
  136. package/dist/types/components/GrNumberInput/GrNumberInput.vue.d.ts +3 -3
  137. package/dist/types/components/GrPagination/GrPagination.vue.d.ts +1 -1
  138. package/dist/types/components/GrPopover/GrPopover.vue.d.ts +3 -3
  139. package/dist/types/components/GrPromptDialog/GrPromptDialog.vue.d.ts +3 -3
  140. package/dist/types/components/GrRadio/GrRadio.vue.d.ts +2 -2
  141. package/dist/types/components/GrRadioGroup/GrRadioGroup.vue.d.ts +2 -2
  142. package/dist/types/components/GrRating/GrRating.vue.d.ts +2 -2
  143. package/dist/types/components/GrScrollSpy/GrScrollSpy.vue.d.ts +105 -0
  144. package/dist/types/components/GrScrollSpy/config.d.ts +1 -0
  145. package/dist/types/components/GrScrollSpy/grScrollSpyStyles.d.ts +26 -0
  146. package/dist/types/components/GrScrollSpy/index.d.ts +9 -0
  147. package/dist/types/components/GrScrollSpy/safelist.d.ts +1 -0
  148. package/dist/types/components/GrScrollSpy/scrollSpyItems.d.ts +44 -0
  149. package/dist/types/components/GrSegmented/GrSegmented.vue.d.ts +2 -2
  150. package/dist/types/components/GrSidebar/GrSidebarItem.vue.d.ts +1 -1
  151. package/dist/types/components/GrSkeleton/GrSkeleton.vue.d.ts +1 -1
  152. package/dist/types/components/GrSlider/GrSlider.vue.d.ts +3 -3
  153. package/dist/types/components/GrSplitter/GrSplitter.vue.d.ts +1 -1
  154. package/dist/types/components/GrStatistic/GrStatistic.vue.d.ts +2 -2
  155. package/dist/types/components/GrSwitch/GrSwitch.vue.d.ts +3 -3
  156. package/dist/types/components/GrTable/GrTable.vue.d.ts +1 -1
  157. package/dist/types/components/GrTabs/GrTabs.vue.d.ts +1 -1
  158. package/dist/types/components/GrTextarea/GrTextarea.vue.d.ts +2 -2
  159. package/dist/types/components/GrTimeline/GrTimelineItem.vue.d.ts +2 -2
  160. package/dist/types/components/GrToaster/GrToaster.vue.d.ts +1 -1
  161. package/dist/types/components/GrTooltip/GrTooltip.vue.d.ts +3 -3
  162. package/dist/types/components/GrTransfer/GrTransfer.vue.d.ts +103 -0
  163. package/dist/types/components/GrTransfer/config.d.ts +1 -0
  164. package/dist/types/components/GrTransfer/defaults.d.ts +15 -0
  165. package/dist/types/components/GrTransfer/grTransferStyles.d.ts +127 -0
  166. package/dist/types/components/GrTransfer/index.d.ts +11 -0
  167. package/dist/types/components/GrTransfer/safelist.d.ts +1 -0
  168. package/dist/types/components/GrTransfer/transferGeometry.d.ts +44 -0
  169. package/dist/types/components/GrTransfer/transferModel.d.ts +68 -0
  170. package/dist/types/components/GrTransfer/transferSelection.d.ts +36 -0
  171. package/dist/types/components/GrTransfer/useTransferDrag.d.ts +48 -0
  172. package/dist/types/composables/internal/scrollSpyGeometry.d.ts +67 -0
  173. package/dist/types/composables/useScrollSpy.d.ts +59 -0
  174. package/dist/types/granular-provider/shared.d.ts +4 -0
  175. package/dist/types/i18n/messages/en.d.ts +64 -0
  176. package/dist/types/i18n/messages/es.d.ts +64 -0
  177. package/dist/types/i18n/messages/ru.d.ts +64 -0
  178. package/dist/types/index.d.ts +6 -0
  179. package/dist/web-types.json +809 -284
  180. package/package.json +25 -1
  181. package/dist/chunks/config-DWL81-aM.js.map +0 -1
  182. package/dist/chunks/en-B9E3jO6m.js.map +0 -1
  183. package/dist/chunks/es-QpzdIEut.js.map +0 -1
  184. package/dist/chunks/generated-B95IBXs6.js.map +0 -1
  185. package/dist/chunks/granular-provider-BG_2XqkS.js.map +0 -1
  186. package/dist/chunks/ru-D_1Ya489.js.map +0 -1
  187. package/dist/chunks/useDragSort-0l47h4yb.js +0 -265
  188. package/dist/chunks/useDragSort-0l47h4yb.js.map +0 -1
  189. package/dist/components/GrTabs/chunks/GrTabs-BArefUFv.js.map +0 -1
  190. package/dist/components/GrImageViewer/chunks/{GrImageViewer-Dd2gJ-j_.js → GrImageViewer-DK-iVHHC.js} +3 -3
  191. package/dist/components/GrInputTag/chunks/{GrInputTag-BKzm1PKw.js → GrInputTag-Ci8AO1ze.js} +1 -1
  192. package/dist/components/GrNumberInput/chunks/{GrNumberInput-Bm-V59TG.js → GrNumberInput-CL5QhOmx.js} +1 -1
  193. 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.44.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
  {
@@ -3846,15 +4083,6 @@
3846
4083
  "type": "GrDropdownWidth | undefined"
3847
4084
  }
3848
4085
  },
3849
- {
3850
- "name": "offset",
3851
- "description": "Зазор между триггером и панелью, px.",
3852
- "default": "8",
3853
- "value": {
3854
- "kind": "expression",
3855
- "type": "number | undefined"
3856
- }
3857
- },
3858
4086
  {
3859
4087
  "name": "openDelay",
3860
4088
  "description": "Задержка открытия по наведению, мс.",
@@ -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": "Только показ: без ввода и фокуса.",
@@ -8383,20 +8611,107 @@
8383
8611
  }
8384
8612
  },
8385
8613
  {
8386
- "name": "GrSegmented",
8614
+ "name": "GrScrollSpy",
8387
8615
  "source": {
8388
- "module": "@feugene/granularity/components/GrSegmented",
8389
- "symbol": "GrSegmented"
8616
+ "module": "@feugene/granularity/components/GrScrollSpy",
8617
+ "symbol": "GrScrollSpy"
8390
8618
  },
8391
8619
  "props": [
8392
8620
  {
8393
- "name": "variant",
8621
+ "name": "offset",
8622
+ "description": "Отступ линии активации от верха скроллпорта. Число — пиксели, строка — как есть. Почти всегда равен отступу липкой шапки (`--gr-affix-offset`).",
8394
8623
  "default": "undefined",
8395
8624
  "value": {
8396
8625
  "kind": "expression",
8397
- "type": "GrSegmentedVariant | undefined"
8626
+ "type": "string | number | undefined"
8627
+ }
8628
+ },
8629
+ {
8630
+ "name": "disabled",
8631
+ "default": "false",
8632
+ "value": {
8633
+ "kind": "expression",
8634
+ "type": "boolean | undefined"
8635
+ }
8636
+ },
8637
+ {
8638
+ "name": "ariaLabel",
8639
+ "default": "undefined",
8640
+ "value": {
8641
+ "kind": "expression",
8642
+ "type": "string | undefined"
8643
+ }
8644
+ },
8645
+ {
8646
+ "name": "scroller",
8647
+ "description": "Скроллпорт: элемент или селектор. Не задан — ищется от первого раздела.",
8648
+ "default": "undefined",
8649
+ "value": {
8650
+ "kind": "expression",
8651
+ "type": "string | HTMLElement | null | undefined"
8652
+ }
8653
+ },
8654
+ {
8655
+ "name": "updateHash",
8656
+ "description": "Обновлять `#hash` адреса при переходе.",
8657
+ "default": "true",
8658
+ "value": {
8659
+ "kind": "expression",
8660
+ "type": "boolean | undefined"
8661
+ }
8662
+ },
8663
+ {
8664
+ "name": "behavior",
8665
+ "description": "Плавность прокрутки. Под `prefers-reduced-motion` всегда мгновенная.",
8666
+ "default": "undefined",
8667
+ "value": {
8668
+ "kind": "expression",
8669
+ "type": "ScrollBehavior | undefined"
8670
+ }
8671
+ },
8672
+ {
8673
+ "name": "focusTarget",
8674
+ "description": "Переносить фокус на раздел, как это делает переход по якорю.",
8675
+ "default": "true",
8676
+ "value": {
8677
+ "kind": "expression",
8678
+ "type": "boolean | undefined"
8398
8679
  }
8399
8680
  },
8681
+ {
8682
+ "name": "sections",
8683
+ "required": true,
8684
+ "description": "Разделы в порядке их следования на странице.",
8685
+ "value": {
8686
+ "kind": "expression",
8687
+ "type": "GrScrollSpySection[]"
8688
+ }
8689
+ }
8690
+ ],
8691
+ "slots": [
8692
+ {
8693
+ "name": "item",
8694
+ "description": "Пункт целиком. `activate` повторяет клик по нему."
8695
+ }
8696
+ ],
8697
+ "js": {
8698
+ "events": [
8699
+ {
8700
+ "name": "select"
8701
+ },
8702
+ {
8703
+ "name": "activeChange"
8704
+ }
8705
+ ]
8706
+ }
8707
+ },
8708
+ {
8709
+ "name": "GrSegmented",
8710
+ "source": {
8711
+ "module": "@feugene/granularity/components/GrSegmented",
8712
+ "symbol": "GrSegmented"
8713
+ },
8714
+ "props": [
8400
8715
  {
8401
8716
  "name": "disabled",
8402
8717
  "default": "false",
@@ -8405,6 +8720,14 @@
8405
8720
  "type": "boolean | undefined"
8406
8721
  }
8407
8722
  },
8723
+ {
8724
+ "name": "variant",
8725
+ "default": "undefined",
8726
+ "value": {
8727
+ "kind": "expression",
8728
+ "type": "GrSegmentedVariant | undefined"
8729
+ }
8730
+ },
8408
8731
  {
8409
8732
  "name": "readonly",
8410
8733
  "description": "Только для чтения: выбор видно, но он не меняется.",
@@ -9004,21 +9327,21 @@
9004
9327
  }
9005
9328
  },
9006
9329
  {
9007
- "name": "width",
9008
- "description": "Ширина в развёрнутом состоянии.",
9009
- "default": "\"240px\"",
9330
+ "name": "landmark",
9331
+ "description": "Лендмарк корня. `complementary` (по умолчанию) — `<aside>`; `navigation` — `<nav>` для панели, которая действительно является навигацией. Вложенный `<nav>` внутрь `<aside>` не заводим: два лендмарка на одну панель засоряют обзор, а панель фильтров навигацией не является вовсе.",
9332
+ "default": "\"complementary\"",
9010
9333
  "value": {
9011
9334
  "kind": "expression",
9012
- "type": "string | undefined"
9335
+ "type": "\"complementary\" | \"navigation\" | undefined"
9013
9336
  }
9014
9337
  },
9015
9338
  {
9016
- "name": "landmark",
9017
- "description": "Лендмарк корня. `complementary` (по умолчанию) — `<aside>`; `navigation` — `<nav>` для панели, которая действительно является навигацией. Вложенный `<nav>` внутрь `<aside>` не заводим: два лендмарка на одну панель засоряют обзор, а панель фильтров навигацией не является вовсе.",
9018
- "default": "\"complementary\"",
9339
+ "name": "width",
9340
+ "description": "Ширина в развёрнутом состоянии.",
9341
+ "default": "\"240px\"",
9019
9342
  "value": {
9020
9343
  "kind": "expression",
9021
- "type": "\"complementary\" | \"navigation\" | undefined"
9344
+ "type": "string | undefined"
9022
9345
  }
9023
9346
  },
9024
9347
  {
@@ -9105,15 +9428,16 @@
9105
9428
  }
9106
9429
  },
9107
9430
  {
9108
- "name": "width",
9109
- "default": "undefined",
9431
+ "name": "count",
9432
+ "description": "Сколько заглушек подряд. Больше одной — они уезжают в общую обёртку.",
9433
+ "default": "1",
9110
9434
  "value": {
9111
9435
  "kind": "expression",
9112
- "type": "string | undefined"
9436
+ "type": "number | undefined"
9113
9437
  }
9114
9438
  },
9115
9439
  {
9116
- "name": "height",
9440
+ "name": "width",
9117
9441
  "default": "undefined",
9118
9442
  "value": {
9119
9443
  "kind": "expression",
@@ -9121,8 +9445,7 @@
9121
9445
  }
9122
9446
  },
9123
9447
  {
9124
- "name": "rounded",
9125
- "description": "Радиус точечно. Не задан — берётся из `variant`.",
9448
+ "name": "height",
9126
9449
  "default": "undefined",
9127
9450
  "value": {
9128
9451
  "kind": "expression",
@@ -9130,12 +9453,12 @@
9130
9453
  }
9131
9454
  },
9132
9455
  {
9133
- "name": "count",
9134
- "description": "Сколько заглушек подряд. Больше одной они уезжают в общую обёртку.",
9135
- "default": "1",
9456
+ "name": "rounded",
9457
+ "description": "Радиус точечно. Не заданберётся из `variant`.",
9458
+ "default": "undefined",
9136
9459
  "value": {
9137
9460
  "kind": "expression",
9138
- "type": "number | undefined"
9461
+ "type": "string | undefined"
9139
9462
  }
9140
9463
  }
9141
9464
  ]
@@ -9443,21 +9766,21 @@
9443
9766
  },
9444
9767
  "props": [
9445
9768
  {
9446
- "name": "modelValue",
9447
- "description": "Доля первой панели в процентах. Поддерживает `v-model`; без него компонент помнит размер сам.",
9448
- "default": "undefined",
9769
+ "name": "disabled",
9770
+ "description": "Разделитель не тянется, не фокусируется и не отвечает на клавиши.",
9771
+ "default": "false",
9449
9772
  "value": {
9450
9773
  "kind": "expression",
9451
- "type": "number | undefined"
9774
+ "type": "boolean | undefined"
9452
9775
  }
9453
9776
  },
9454
9777
  {
9455
- "name": "disabled",
9456
- "description": "Разделитель не тянется, не фокусируется и не отвечает на клавиши.",
9457
- "default": "false",
9778
+ "name": "modelValue",
9779
+ "description": "Доля первой панели в процентах. Поддерживает `v-model`; без него компонент помнит размер сам.",
9780
+ "default": "undefined",
9458
9781
  "value": {
9459
9782
  "kind": "expression",
9460
- "type": "boolean | undefined"
9783
+ "type": "number | undefined"
9461
9784
  }
9462
9785
  },
9463
9786
  {
@@ -9905,8 +10228,7 @@
9905
10228
  },
9906
10229
  "props": [
9907
10230
  {
9908
- "name": "modelValue",
9909
- "description": "Значение переключателя. Необязательное: без `v-model` контрол рисуется выключенным — так же, как `GrCheckbox`. Обязательный проп заставлял бы заводить `ref` даже там, где переключатель presentational.",
10231
+ "name": "disabled",
9910
10232
  "default": "false",
9911
10233
  "value": {
9912
10234
  "kind": "expression",
@@ -9914,7 +10236,8 @@
9914
10236
  }
9915
10237
  },
9916
10238
  {
9917
- "name": "disabled",
10239
+ "name": "modelValue",
10240
+ "description": "Значение переключателя. Необязательное: без `v-model` контрол рисуется выключенным — так же, как `GrCheckbox`. Обязательный проп заставлял бы заводить `ref` даже там, где переключатель presentational.",
9918
10241
  "default": "false",
9919
10242
  "value": {
9920
10243
  "kind": "expression",
@@ -10134,6 +10457,15 @@
10134
10457
  "type": "boolean | undefined"
10135
10458
  }
10136
10459
  },
10460
+ {
10461
+ "name": "ariaLabelledby",
10462
+ "description": "ID элемента-заголовка, связанного с `<table>` через `aria-labelledby`.",
10463
+ "default": "undefined",
10464
+ "value": {
10465
+ "kind": "expression",
10466
+ "type": "string | undefined"
10467
+ }
10468
+ },
10137
10469
  {
10138
10470
  "name": "empty",
10139
10471
  "description": "Таблица пуста. По умолчанию определяется по содержимому слота.",
@@ -10170,15 +10502,6 @@
10170
10502
  "type": "string | undefined"
10171
10503
  }
10172
10504
  },
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
10505
  {
10183
10506
  "name": "regionLabel",
10184
10507
  "description": "ARIA-label для скролл-контейнера. Включает `role=\"region\"`; сам скролл достижим с клавиатуры всегда, независимо от метки.",
@@ -10321,6 +10644,15 @@
10321
10644
  "type": "GrTabsOrientation | undefined"
10322
10645
  }
10323
10646
  },
10647
+ {
10648
+ "name": "activationMode",
10649
+ "description": "`automatic` (по умолчанию) — стрелка сразу переключает вкладку; `manual` — стрелка двигает только фокус, выбор подтверждается `Enter`/`Space`. Второй режим для вкладок с тяжёлой загрузкой: перебор стрелками иначе тянет каждую панель.",
10650
+ "default": "\"automatic\"",
10651
+ "value": {
10652
+ "kind": "expression",
10653
+ "type": "GrTabsActivationMode | undefined"
10654
+ }
10655
+ },
10324
10656
  {
10325
10657
  "name": "emptyText",
10326
10658
  "description": "Текст, когда список вкладок пуст. Слот `#empty` сильнее.",
@@ -10339,15 +10671,6 @@
10339
10671
  "type": "string | undefined"
10340
10672
  }
10341
10673
  },
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
10674
  {
10352
10675
  "name": "modelValue",
10353
10676
  "required": true,
@@ -10806,12 +11129,12 @@
10806
11129
  },
10807
11130
  "props": [
10808
11131
  {
10809
- "name": "open",
10810
- "description": "Управляемая видимость. Без неё компонент ведёт видимость сам.",
10811
- "default": "undefined",
11132
+ "name": "placement",
11133
+ "description": "Предпочтительная сторона панели; `flip` может её изменить.",
11134
+ "default": "\"top\"",
10812
11135
  "value": {
10813
11136
  "kind": "expression",
10814
- "type": "boolean | undefined"
11137
+ "type": "Placement | undefined"
10815
11138
  }
10816
11139
  },
10817
11140
  {
@@ -10824,21 +11147,21 @@
10824
11147
  }
10825
11148
  },
10826
11149
  {
10827
- "name": "size",
10828
- "description": "Размер панели и дефолтной триггер-иконки.",
11150
+ "name": "open",
11151
+ "description": "Управляемая видимость. Без неё компонент ведёт видимость сам.",
10829
11152
  "default": "undefined",
10830
11153
  "value": {
10831
11154
  "kind": "expression",
10832
- "type": "\"xs\" | \"sm\" | \"md\" | \"lg\" | undefined"
11155
+ "type": "boolean | undefined"
10833
11156
  }
10834
11157
  },
10835
11158
  {
10836
- "name": "placement",
10837
- "description": "Предпочтительная сторона панели; `flip` может её изменить.",
10838
- "default": "\"top\"",
11159
+ "name": "size",
11160
+ "description": "Размер панели и дефолтной триггер-иконки.",
11161
+ "default": "undefined",
10839
11162
  "value": {
10840
11163
  "kind": "expression",
10841
- "type": "Placement | undefined"
11164
+ "type": "\"xs\" | \"sm\" | \"md\" | \"lg\" | undefined"
10842
11165
  }
10843
11166
  },
10844
11167
  {
@@ -10905,6 +11228,208 @@
10905
11228
  ]
10906
11229
  }
10907
11230
  },
11231
+ {
11232
+ "name": "GrTransfer",
11233
+ "source": {
11234
+ "module": "@feugene/granularity/components/GrTransfer",
11235
+ "symbol": "GrTransfer"
11236
+ },
11237
+ "props": [
11238
+ {
11239
+ "name": "items",
11240
+ "required": true,
11241
+ "description": "Каталог целиком: обе панели — одна его раскладка.",
11242
+ "value": {
11243
+ "kind": "expression",
11244
+ "type": "TItem[]"
11245
+ }
11246
+ },
11247
+ {
11248
+ "name": "modelValue",
11249
+ "required": true,
11250
+ "description": "Ключи правой панели **в её порядке**: порядок и есть значение.",
11251
+ "value": {
11252
+ "kind": "expression",
11253
+ "type": "GrTransferKey[]"
11254
+ }
11255
+ },
11256
+ {
11257
+ "name": "itemKey",
11258
+ "default": "undefined",
11259
+ "value": {
11260
+ "kind": "expression",
11261
+ "type": "GrTransferItemKey<TItem> | undefined"
11262
+ }
11263
+ },
11264
+ {
11265
+ "name": "itemLabel",
11266
+ "default": "undefined",
11267
+ "value": {
11268
+ "kind": "expression",
11269
+ "type": "GrTransferItemLabel<TItem> | undefined"
11270
+ }
11271
+ },
11272
+ {
11273
+ "name": "itemDisabled",
11274
+ "default": "undefined",
11275
+ "value": {
11276
+ "kind": "expression",
11277
+ "type": "GrTransferItemFlag<TItem> | undefined"
11278
+ }
11279
+ },
11280
+ {
11281
+ "name": "sourceTitle",
11282
+ "description": "Имя левой панели. Это доступное имя её `listbox`, а не украшение.",
11283
+ "default": "undefined",
11284
+ "value": {
11285
+ "kind": "expression",
11286
+ "type": "string | undefined"
11287
+ }
11288
+ },
11289
+ {
11290
+ "name": "targetTitle",
11291
+ "description": "Имя правой панели.",
11292
+ "default": "undefined",
11293
+ "value": {
11294
+ "kind": "expression",
11295
+ "type": "string | undefined"
11296
+ }
11297
+ },
11298
+ {
11299
+ "name": "searchable",
11300
+ "description": "Поле поиска в каждой панели.",
11301
+ "default": "true",
11302
+ "value": {
11303
+ "kind": "expression",
11304
+ "type": "boolean | undefined"
11305
+ }
11306
+ },
11307
+ {
11308
+ "name": "filter",
11309
+ "description": "Свой матчер: встроенный ищет по `itemLabel`, а строка может показывать больше.",
11310
+ "default": "undefined",
11311
+ "value": {
11312
+ "kind": "expression",
11313
+ "type": "((item: TItem, query: string) => boolean) | undefined"
11314
+ }
11315
+ },
11316
+ {
11317
+ "name": "sortable",
11318
+ "description": "Правую панель можно переставлять.",
11319
+ "default": "true",
11320
+ "value": {
11321
+ "kind": "expression",
11322
+ "type": "boolean | undefined"
11323
+ }
11324
+ },
11325
+ {
11326
+ "name": "draggable",
11327
+ "description": "Перетаскивание строк указателем. Усиление поверх кнопок, а не контракт.",
11328
+ "default": "undefined",
11329
+ "value": {
11330
+ "kind": "expression",
11331
+ "type": "boolean | undefined"
11332
+ }
11333
+ },
11334
+ {
11335
+ "name": "maxHeight",
11336
+ "description": "Высота панелей: обе одинаковы и прокручиваются внутри себя.",
11337
+ "default": "undefined",
11338
+ "value": {
11339
+ "kind": "expression",
11340
+ "type": "string | number | undefined"
11341
+ }
11342
+ },
11343
+ {
11344
+ "name": "size",
11345
+ "default": "undefined",
11346
+ "value": {
11347
+ "kind": "expression",
11348
+ "type": "\"xs\" | \"sm\" | \"md\" | \"lg\" | undefined"
11349
+ }
11350
+ },
11351
+ {
11352
+ "name": "disabled",
11353
+ "default": "false",
11354
+ "value": {
11355
+ "kind": "expression",
11356
+ "type": "boolean | undefined"
11357
+ }
11358
+ },
11359
+ {
11360
+ "name": "readonly",
11361
+ "default": "false",
11362
+ "value": {
11363
+ "kind": "expression",
11364
+ "type": "boolean | undefined"
11365
+ }
11366
+ },
11367
+ {
11368
+ "name": "invalid",
11369
+ "default": "false",
11370
+ "value": {
11371
+ "kind": "expression",
11372
+ "type": "boolean | undefined"
11373
+ }
11374
+ },
11375
+ {
11376
+ "name": "required",
11377
+ "default": "false",
11378
+ "value": {
11379
+ "kind": "expression",
11380
+ "type": "boolean | undefined"
11381
+ }
11382
+ },
11383
+ {
11384
+ "name": "ariaLabel",
11385
+ "default": "undefined",
11386
+ "value": {
11387
+ "kind": "expression",
11388
+ "type": "string | undefined"
11389
+ }
11390
+ }
11391
+ ],
11392
+ "slots": [
11393
+ {
11394
+ "name": "item",
11395
+ "description": "Своя строка. Слот доменный: у соседей `item` — строка списка, здесь тоже."
11396
+ },
11397
+ {
11398
+ "name": "header",
11399
+ "description": "Своя шапка панели: имя, счётчик, отметка «выбрать всё»."
11400
+ },
11401
+ {
11402
+ "name": "actions",
11403
+ "description": "Своя колонка кнопок между панелями."
11404
+ },
11405
+ {
11406
+ "name": "empty",
11407
+ "description": "Пустая панель. `filtered` — пусто из-за поиска, а не по сути."
11408
+ }
11409
+ ],
11410
+ "js": {
11411
+ "events": [
11412
+ {
11413
+ "name": "update:modelValue"
11414
+ },
11415
+ {
11416
+ "name": "change"
11417
+ },
11418
+ {
11419
+ "name": "transfer"
11420
+ },
11421
+ {
11422
+ "name": "search"
11423
+ },
11424
+ {
11425
+ "name": "focus"
11426
+ },
11427
+ {
11428
+ "name": "blur"
11429
+ }
11430
+ ]
11431
+ }
11432
+ },
10908
11433
  {
10909
11434
  "name": "GrTree",
10910
11435
  "source": {