@feugene/granularity 0.48.0 → 0.50.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 (418) hide show
  1. package/README.md +3 -3
  2. package/dist/chunks/chevron-up-BhW6hi8L.js +23 -0
  3. package/dist/chunks/chevron-up-BhW6hi8L.js.map +1 -0
  4. package/dist/chunks/{config-E1cTyRVV.js → config-8n1VR0ju.js} +1 -1
  5. package/dist/chunks/{config-E1cTyRVV.js.map → config-8n1VR0ju.js.map} +1 -1
  6. package/dist/chunks/{config-2vrOFn2f.js → config-AKpLyIGD.js} +2 -2
  7. package/dist/chunks/{config-2vrOFn2f.js.map → config-AKpLyIGD.js.map} +1 -1
  8. package/dist/chunks/{config-DIDz_E5m.js → config-B34mkd53.js} +66 -1
  9. package/dist/chunks/config-B34mkd53.js.map +1 -0
  10. package/dist/chunks/{config-B5SBUa6u.js → config-B7qZqiUB.js} +28 -1
  11. package/dist/chunks/config-B7qZqiUB.js.map +1 -0
  12. package/dist/chunks/config-BBrPUEye.js +8 -0
  13. package/dist/chunks/config-BBrPUEye.js.map +1 -0
  14. package/dist/chunks/config-BBtBQE3s.js +108 -0
  15. package/dist/chunks/config-BBtBQE3s.js.map +1 -0
  16. package/dist/chunks/{config-CT4lP6S4.js → config-BOCzHqWh.js} +2 -2
  17. package/dist/chunks/{config-CT4lP6S4.js.map → config-BOCzHqWh.js.map} +1 -1
  18. package/dist/chunks/{config-iemgzS4x.js → config-BP1ktzwh.js} +2 -24
  19. package/dist/chunks/config-BP1ktzwh.js.map +1 -0
  20. package/dist/chunks/config-BTxmdRzT.js +28 -0
  21. package/dist/chunks/config-BTxmdRzT.js.map +1 -0
  22. package/dist/chunks/{config-CjWOTgLL.js → config-Bk52xd5l.js} +12 -5
  23. package/dist/chunks/config-Bk52xd5l.js.map +1 -0
  24. package/dist/chunks/{config-D3HOuHDe.js → config-C3SqBqSQ.js} +3 -1
  25. package/dist/chunks/config-C3SqBqSQ.js.map +1 -0
  26. package/dist/chunks/{config-2ZHRsdOc.js → config-C3uqd-sW.js} +1 -1
  27. package/dist/chunks/config-C3uqd-sW.js.map +1 -0
  28. package/dist/chunks/{config-BXRmsn3t.js → config-CPhcZzHi.js} +72 -10
  29. package/dist/chunks/config-CPhcZzHi.js.map +1 -0
  30. package/dist/chunks/config-CWtfxkM9.js.map +1 -1
  31. package/dist/chunks/{config--t2dxj0t.js → config-CmLTCmY9.js} +2 -2
  32. package/dist/chunks/{config--t2dxj0t.js.map → config-CmLTCmY9.js.map} +1 -1
  33. package/dist/chunks/{config-BAse0laT.js → config-CvtqB4ki.js} +8 -3
  34. package/dist/chunks/config-CvtqB4ki.js.map +1 -0
  35. package/dist/chunks/{config-BcXX7S7B.js → config-D-JgqV0J.js} +5 -1
  36. package/dist/chunks/{config-BcXX7S7B.js.map → config-D-JgqV0J.js.map} +1 -1
  37. package/dist/chunks/{config-BHLMTJaR.js → config-D1oVht-E.js} +8 -3
  38. package/dist/chunks/config-D1oVht-E.js.map +1 -0
  39. package/dist/chunks/{config-BscVxZR3.js → config-DF1ezU6y.js} +1 -1
  40. package/dist/chunks/{config-BscVxZR3.js.map → config-DF1ezU6y.js.map} +1 -1
  41. package/dist/chunks/{config-B42iJ48O.js → config-DG41PD9i.js} +13 -1
  42. package/dist/chunks/config-DG41PD9i.js.map +1 -0
  43. package/dist/chunks/{config-Bs1HwUcx.js → config-DPJ3jtiB.js} +12 -2
  44. package/dist/chunks/config-DPJ3jtiB.js.map +1 -0
  45. package/dist/chunks/{config-tNqtapcT.js → config-DpqjlCfB.js} +2 -2
  46. package/dist/chunks/{config-tNqtapcT.js.map → config-DpqjlCfB.js.map} +1 -1
  47. package/dist/chunks/{config-DNDgp9bB.js → config-DpzFoSIh.js} +64 -2
  48. package/dist/chunks/config-DpzFoSIh.js.map +1 -0
  49. package/dist/chunks/config-MUkhktTP.js +267 -0
  50. package/dist/chunks/config-MUkhktTP.js.map +1 -0
  51. package/dist/chunks/config-SPugeaHT.js +37 -0
  52. package/dist/chunks/config-SPugeaHT.js.map +1 -0
  53. package/dist/chunks/{en-Bxyn5lW7.js → en-mIFywnV2.js} +27 -7
  54. package/dist/chunks/en-mIFywnV2.js.map +1 -0
  55. package/dist/chunks/{es-Dtl-a7ui.js → es-CvthYwtB.js} +27 -7
  56. package/dist/chunks/es-CvthYwtB.js.map +1 -0
  57. package/dist/chunks/{es-Bj_vc18Z.js → es-DlGd6Mrj.js} +3 -3
  58. package/dist/chunks/{es-Bj_vc18Z.js.map → es-DlGd6Mrj.js.map} +1 -1
  59. package/dist/chunks/{generated-hELWB0gZ.js → generated-Cx4C7GRN.js} +126 -0
  60. package/dist/chunks/{generated-hELWB0gZ.js.map → generated-Cx4C7GRN.js.map} +1 -1
  61. package/dist/chunks/{grBadgeStyles-DV0DrAew.js → grBadgeStyles-D51AXbj5.js} +57 -1
  62. package/dist/chunks/grBadgeStyles-D51AXbj5.js.map +1 -0
  63. package/dist/chunks/{grChipStyles-DcDyxAL0.js → grChipStyles-CA9Wj1_E.js} +1 -1
  64. package/dist/chunks/{grChipStyles-DcDyxAL0.js.map → grChipStyles-CA9Wj1_E.js.map} +1 -1
  65. package/dist/chunks/{grPopoverStyles-CYAeO3Ov.js → grPopoverStyles-CncEkiPu.js} +1 -1
  66. package/dist/chunks/{grPopoverStyles-CYAeO3Ov.js.map → grPopoverStyles-CncEkiPu.js.map} +1 -1
  67. package/dist/chunks/{grSelectStyles-D9EQ-pgK.js → grSelectStyles-Cam-IG9s.js} +3 -2
  68. package/dist/chunks/grSelectStyles-Cam-IG9s.js.map +1 -0
  69. package/dist/chunks/{grSliderStyles-kaz6VXZ3.js → grSliderStyles-CqzV0hll.js} +1 -1
  70. package/dist/chunks/grSliderStyles-CqzV0hll.js.map +1 -0
  71. package/dist/chunks/{config-CbEbLyDE.js → grSortableListStyles-CxieDmpe.js} +1 -27
  72. package/dist/chunks/grSortableListStyles-CxieDmpe.js.map +1 -0
  73. package/dist/chunks/grTableStyles-CPSxDTOW.js +66 -0
  74. package/dist/chunks/grTableStyles-CPSxDTOW.js.map +1 -0
  75. package/dist/chunks/{config-CMNfZO7S.js → grTabsStyles-DIz2VdIm.js} +1 -36
  76. package/dist/chunks/grTabsStyles-DIz2VdIm.js.map +1 -0
  77. package/dist/chunks/grTooltipStyles-CtbGEEGV.js +24 -0
  78. package/dist/chunks/grTooltipStyles-CtbGEEGV.js.map +1 -0
  79. package/dist/chunks/{granular-provider-BOQp7N5o.js → granular-provider-cv5vaM1a.js} +26 -22
  80. package/dist/chunks/granular-provider-cv5vaM1a.js.map +1 -0
  81. package/dist/chunks/hotkeySequence-BTHIM_5A.js +46 -0
  82. package/dist/chunks/hotkeySequence-BTHIM_5A.js.map +1 -0
  83. package/dist/chunks/{keyboard-DE2yhz_b.js → keyboard-BiFSgWLt.js} +70 -1
  84. package/dist/chunks/keyboard-BiFSgWLt.js.map +1 -0
  85. package/dist/chunks/optionPanel-DvY7Tv_4.js +182 -0
  86. package/dist/chunks/optionPanel-DvY7Tv_4.js.map +1 -0
  87. package/dist/chunks/overlayListPanel-D91jBCHU.js +21 -0
  88. package/dist/chunks/overlayListPanel-D91jBCHU.js.map +1 -0
  89. package/dist/chunks/{overlayStack-DH4Z7am1.js → overlayStack-DCkCgXZP.js} +1 -1
  90. package/dist/chunks/{overlayStack-DH4Z7am1.js.map → overlayStack-DCkCgXZP.js.map} +1 -1
  91. package/dist/chunks/{overlayPanelSurface-BKeMhRx4.js → overlayTransition-C0FDMx7Q.js} +24 -24
  92. package/dist/chunks/overlayTransition-C0FDMx7Q.js.map +1 -0
  93. package/dist/chunks/{ru-hrB4I1u_.js → ru-CQKDR-kD.js} +27 -7
  94. package/dist/chunks/ru-CQKDR-kD.js.map +1 -0
  95. package/dist/chunks/{safelist-x8USecK8.js → safelist-CSfynUC1.js} +5 -1
  96. package/dist/chunks/safelist-CSfynUC1.js.map +1 -0
  97. package/dist/chunks/{useMenuItemsFocus-B7Bl_aFA.js → useMenuItemsFocus-C031blYS.js} +1 -1
  98. package/dist/chunks/{useMenuItemsFocus-B7Bl_aFA.js.map → useMenuItemsFocus-C031blYS.js.map} +1 -1
  99. package/dist/chunks/{useModalOverlay-ACRkflzx.js → useModalOverlay-CKCQkGdB.js} +1 -1
  100. package/dist/chunks/{useModalOverlay-ACRkflzx.js.map → useModalOverlay-CKCQkGdB.js.map} +1 -1
  101. package/dist/components/GrAutocomplete/chunks/{GrAutocomplete-C-uovdv8.js → GrAutocomplete-Cyr1-ENw.js} +183 -125
  102. package/dist/components/GrAutocomplete/chunks/GrAutocomplete-Cyr1-ENw.js.map +1 -0
  103. package/dist/components/GrAutocomplete/index.js +2 -2
  104. package/dist/components/GrAutocomplete/styles.css +1 -1
  105. package/dist/components/GrBadge/chunks/GrBadge-C42KLyUD.js +71 -0
  106. package/dist/components/GrBadge/chunks/GrBadge-C42KLyUD.js.map +1 -0
  107. package/dist/components/GrBadge/index.js +3 -3
  108. package/dist/components/GrBadge/styles.css +1 -1
  109. package/dist/components/GrCarousel/chunks/{GrCarousel-ByuughtI.js → GrCarousel-CBj-PEPB.js} +186 -37
  110. package/dist/components/GrCarousel/chunks/GrCarousel-CBj-PEPB.js.map +1 -0
  111. package/dist/components/GrCarousel/index.js +2 -2
  112. package/dist/components/GrCarousel/styles.css +1 -1
  113. package/dist/components/GrCheckbox/chunks/{GrCheckbox-Dp201frb.js → GrCheckbox-B4NJc7Ur.js} +2 -1
  114. package/dist/components/GrCheckbox/chunks/GrCheckbox-B4NJc7Ur.js.map +1 -0
  115. package/dist/components/GrCheckbox/index.js +1 -1
  116. package/dist/components/GrCheckboxGroup/chunks/{GrCheckboxGroup-IpqG5qwm.js → GrCheckboxGroup-qZHpNFCX.js} +1 -1
  117. package/dist/components/GrCheckboxGroup/chunks/{GrCheckboxGroup-IpqG5qwm.js.map → GrCheckboxGroup-qZHpNFCX.js.map} +1 -1
  118. package/dist/components/GrCheckboxGroup/index.js +1 -1
  119. package/dist/components/GrChip/chunks/{GrChip-CKqyzYcv.js → GrChip-DoyS1Dr4.js} +1 -1
  120. package/dist/components/GrChip/chunks/{GrChip-CKqyzYcv.js.map → GrChip-DoyS1Dr4.js.map} +1 -1
  121. package/dist/components/GrChip/index.js +2 -2
  122. package/dist/components/GrColorPicker/chunks/{GrColorPicker-BRM_4lyI.js → GrColorPicker-vGSgpUV9.js} +353 -38
  123. package/dist/components/GrColorPicker/chunks/GrColorPicker-vGSgpUV9.js.map +1 -0
  124. package/dist/components/GrColorPicker/index.js +2 -2
  125. package/dist/components/GrColorPicker/styles.css +1 -1
  126. package/dist/components/GrCommandPalette/chunks/{GrCommandPalette-BJHmkDQv.js → GrCommandPalette-CAHgj0Aa.js} +23 -7
  127. package/dist/components/GrCommandPalette/chunks/GrCommandPalette-CAHgj0Aa.js.map +1 -0
  128. package/dist/components/GrCommandPalette/index.js +1 -1
  129. package/dist/components/GrCommandPalette/styles.css +1 -1
  130. package/dist/components/GrConfirmDialog/chunks/{GrConfirmDialog-BzUQwbec.js → GrConfirmDialog-dg021BMd.js} +1 -1
  131. package/dist/components/GrConfirmDialog/chunks/{GrConfirmDialog-BzUQwbec.js.map → GrConfirmDialog-dg021BMd.js.map} +1 -1
  132. package/dist/components/GrConfirmDialog/index.js +1 -1
  133. package/dist/components/GrContextMenu/chunks/{GrContextMenu-RpxMHQXH.js → GrContextMenu-bQ1Vvy2c.js} +3 -3
  134. package/dist/components/GrContextMenu/chunks/{GrContextMenu-RpxMHQXH.js.map → GrContextMenu-bQ1Vvy2c.js.map} +1 -1
  135. package/dist/components/GrContextMenu/index.js +1 -1
  136. package/dist/components/GrDataTable/chunks/{GrDataTable-DQxYYgQk.js → GrDataTable-Bb2jWnRG.js} +576 -136
  137. package/dist/components/GrDataTable/chunks/GrDataTable-Bb2jWnRG.js.map +1 -0
  138. package/dist/components/GrDataTable/index.js +2 -2
  139. package/dist/components/GrDelta/chunks/{GrDelta-CgTvfoIN.js → GrDelta-BSv1KdMy.js} +0 -0
  140. package/dist/components/GrDelta/chunks/{GrDelta-CgTvfoIN.js.map → GrDelta-BSv1KdMy.js.map} +1 -1
  141. package/dist/components/GrDelta/index.js +2 -2
  142. package/dist/components/GrDialog/chunks/{GrDialog-DDz_OEhk.js → GrDialog-C9Zu72jB.js} +1 -1
  143. package/dist/components/GrDialog/chunks/{GrDialog-DDz_OEhk.js.map → GrDialog-C9Zu72jB.js.map} +1 -1
  144. package/dist/components/GrDialog/index.js +1 -1
  145. package/dist/components/GrDialogService/chunks/{GrDialogService-Dtq0ZCN5.js → GrDialogService-DLBifO61.js} +2 -2
  146. package/dist/components/GrDialogService/chunks/{GrDialogService-Dtq0ZCN5.js.map → GrDialogService-DLBifO61.js.map} +1 -1
  147. package/dist/components/GrDialogService/index.js +1 -1
  148. package/dist/components/GrDrawer/chunks/{GrDrawer-CNpSMuN-.js → GrDrawer-DOcRTE8G.js} +1 -1
  149. package/dist/components/GrDrawer/chunks/{GrDrawer-CNpSMuN-.js.map → GrDrawer-DOcRTE8G.js.map} +1 -1
  150. package/dist/components/GrDrawer/index.js +1 -1
  151. package/dist/components/GrDropdown/chunks/{GrDropdown-cLZuZMEY.js → GrDropdown-kxwmgfSe.js} +2 -2
  152. package/dist/components/GrDropdown/chunks/{GrDropdown-cLZuZMEY.js.map → GrDropdown-kxwmgfSe.js.map} +1 -1
  153. package/dist/components/GrDropdown/index.js +2 -2
  154. package/dist/components/GrDropdownMenu/chunks/{GrDropdownMenu-Dxkz_ry4.js → GrDropdownMenu--VoK3VY0.js} +3 -34
  155. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu--VoK3VY0.js.map +1 -0
  156. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-CkM3BFPL.js +34 -0
  157. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-CkM3BFPL.js.map +1 -0
  158. package/dist/components/GrDropdownMenu/index.js +2 -1
  159. package/dist/components/GrEmptyState/chunks/{GrEmptyState-BbvwE-E0.js → GrEmptyState-Bz6-_ED4.js} +42 -6
  160. package/dist/components/GrEmptyState/chunks/GrEmptyState-Bz6-_ED4.js.map +1 -0
  161. package/dist/components/GrEmptyState/index.js +1 -1
  162. package/dist/components/GrFileUpload/chunks/{GrFileUpload-BwMR71zN.js → GrFileUpload-Bgdfnkd8.js} +5 -2
  163. package/dist/components/GrFileUpload/chunks/GrFileUpload-Bgdfnkd8.js.map +1 -0
  164. package/dist/components/GrFileUpload/index.js +1 -1
  165. package/dist/components/GrFormFile/chunks/{GrFormFile-Dlxx-9zi.js → GrFormFile-Ctq1isz-.js} +78 -11
  166. package/dist/components/GrFormFile/chunks/GrFormFile-Ctq1isz-.js.map +1 -0
  167. package/dist/components/GrFormFile/index.js +2 -2
  168. package/dist/components/GrFormFile/styles.css +1 -1
  169. package/dist/components/GrImageViewer/chunks/{GrImageViewer-DK-iVHHC.js → GrImageViewer-Bnql_dNP.js} +1 -1
  170. package/dist/components/GrImageViewer/chunks/{GrImageViewer-DK-iVHHC.js.map → GrImageViewer-Bnql_dNP.js.map} +1 -1
  171. package/dist/components/GrImageViewer/index.js +1 -1
  172. package/dist/components/GrInput/chunks/{GrInput-DV4gMWPR.js → GrInput-CoaFLpaU.js} +43 -22
  173. package/dist/components/GrInput/chunks/GrInput-CoaFLpaU.js.map +1 -0
  174. package/dist/components/GrInput/index.js +1 -1
  175. package/dist/components/GrInputTag/chunks/{GrInputTag-CO0YU-ok.js → GrInputTag-BzzNRBe3.js} +247 -20
  176. package/dist/components/GrInputTag/chunks/GrInputTag-BzzNRBe3.js.map +1 -0
  177. package/dist/components/GrInputTag/index.js +2 -2
  178. package/dist/components/GrJsonViewer/chunks/{GrJsonViewer-D7CyWzhT.js → GrJsonViewer-B6ZJ3GFH.js} +2 -2
  179. package/dist/components/GrJsonViewer/chunks/{GrJsonViewer-D7CyWzhT.js.map → GrJsonViewer-B6ZJ3GFH.js.map} +1 -1
  180. package/dist/components/GrJsonViewer/index.js +1 -1
  181. package/dist/components/GrKbd/chunks/{GrKbd-BNMeoaLV.js → GrKbd-D2rHDkQv.js} +42 -37
  182. package/dist/components/GrKbd/chunks/GrKbd-D2rHDkQv.js.map +1 -0
  183. package/dist/components/GrKbd/index.js +1 -1
  184. package/dist/components/GrModal/chunks/{GrModal-Cm0mtSXk.js → GrModal-SHb1U2qx.js} +1 -1
  185. package/dist/components/GrModal/chunks/{GrModal-Cm0mtSXk.js.map → GrModal-SHb1U2qx.js.map} +1 -1
  186. package/dist/components/GrModal/index.js +1 -1
  187. package/dist/components/GrNavbar/chunks/{GrNavbar-BRGuksiy.js → GrNavbar-IEIHC5Vt.js} +10 -4
  188. package/dist/components/GrNavbar/chunks/GrNavbar-IEIHC5Vt.js.map +1 -0
  189. package/dist/components/GrNavbar/index.js +2 -2
  190. package/dist/components/GrNumberInput/chunks/{GrNumberInput-BI6-vkcs.js → GrNumberInput-CmnUDaKi.js} +2 -22
  191. package/dist/components/GrNumberInput/chunks/{GrNumberInput-BI6-vkcs.js.map → GrNumberInput-CmnUDaKi.js.map} +1 -1
  192. package/dist/components/GrNumberInput/index.js +1 -1
  193. package/dist/components/GrOtpInput/chunks/GrOtpInput-B_Q-RDLw.js +419 -0
  194. package/dist/components/GrOtpInput/chunks/GrOtpInput-B_Q-RDLw.js.map +1 -0
  195. package/dist/components/GrOtpInput/index.js +3 -0
  196. package/dist/components/GrOtpInput/styles.css +1 -0
  197. package/dist/components/GrPagination/chunks/{GrPagination-BbaF5eXk.js → GrPagination-AMbn5D8I.js} +1 -1
  198. package/dist/components/GrPagination/chunks/{GrPagination-BbaF5eXk.js.map → GrPagination-AMbn5D8I.js.map} +1 -1
  199. package/dist/components/GrPagination/index.js +1 -1
  200. package/dist/components/GrPopover/chunks/{GrPopover-CcWvr1ZA.js → GrPopover-DjVxt8bf.js} +3 -3
  201. package/dist/components/GrPopover/chunks/{GrPopover-CcWvr1ZA.js.map → GrPopover-DjVxt8bf.js.map} +1 -1
  202. package/dist/components/GrPopover/index.js +2 -2
  203. package/dist/components/GrPromptDialog/chunks/{GrPromptDialog-BEL-QgwE.js → GrPromptDialog-BhbIZP1f.js} +3 -3
  204. package/dist/components/GrPromptDialog/chunks/{GrPromptDialog-BEL-QgwE.js.map → GrPromptDialog-BhbIZP1f.js.map} +1 -1
  205. package/dist/components/GrPromptDialog/index.js +1 -1
  206. package/dist/components/GrSelect/chunks/{GrSelect-0iI4wdR_.js → GrSelect-B-ykrHpL.js} +26 -182
  207. package/dist/components/GrSelect/chunks/GrSelect-B-ykrHpL.js.map +1 -0
  208. package/dist/components/GrSelect/index.js +2 -2
  209. package/dist/components/GrSelect/styles.css +1 -1
  210. package/dist/components/GrSidebar/chunks/GrSidebar-jVvoLGDO.js +543 -0
  211. package/dist/components/GrSidebar/chunks/GrSidebar-jVvoLGDO.js.map +1 -0
  212. package/dist/components/GrSidebar/index.js +2 -2
  213. package/dist/components/GrSlider/chunks/{GrSlider-CO8N9SF6.js → GrSlider-DF2Cq0rV.js} +29 -4
  214. package/dist/components/GrSlider/chunks/GrSlider-DF2Cq0rV.js.map +1 -0
  215. package/dist/components/GrSlider/index.js +2 -2
  216. package/dist/components/GrSortableList/chunks/{GrSortableList-NKriuGm_.js → GrSortableList-ChH9nQBv.js} +1 -1
  217. package/dist/components/GrSortableList/chunks/{GrSortableList-NKriuGm_.js.map → GrSortableList-ChH9nQBv.js.map} +1 -1
  218. package/dist/components/GrSortableList/index.js +2 -2
  219. package/dist/components/GrSwitch/chunks/{GrSwitch-CriHWT2A.js → GrSwitch-D7X42uIA.js} +61 -7
  220. package/dist/components/GrSwitch/chunks/GrSwitch-D7X42uIA.js.map +1 -0
  221. package/dist/components/GrSwitch/index.js +2 -2
  222. package/dist/components/GrTabPanels/chunks/GrTabPanels-BDt5oVdd.js +30 -0
  223. package/dist/components/GrTabPanels/chunks/GrTabPanels-BDt5oVdd.js.map +1 -0
  224. package/dist/components/GrTabPanels/chunks/GrTabPanels-BJvAflnA.js +83 -0
  225. package/dist/components/GrTabPanels/chunks/GrTabPanels-BJvAflnA.js.map +1 -0
  226. package/dist/components/GrTabPanels/index.js +2 -1
  227. package/dist/components/GrTable/chunks/{GrTable-CKJ-HrsN.js → GrTable-BQitSDep.js} +52 -16
  228. package/dist/components/GrTable/chunks/GrTable-BQitSDep.js.map +1 -0
  229. package/dist/components/GrTable/index.js +2 -2
  230. package/dist/components/GrTabs/chunks/{GrTabs-s9RzC1WX.js → GrTabs-DVC6nfWB.js} +1 -1
  231. package/dist/components/GrTabs/chunks/{GrTabs-s9RzC1WX.js.map → GrTabs-DVC6nfWB.js.map} +1 -1
  232. package/dist/components/GrTabs/index.js +2 -2
  233. package/dist/components/GrTabsWithPanels/chunks/GrTabsWithPanels-BYtuzouj.js +98 -0
  234. package/dist/components/GrTabsWithPanels/chunks/GrTabsWithPanels-BYtuzouj.js.map +1 -0
  235. package/dist/components/GrTabsWithPanels/index.js +3 -0
  236. package/dist/components/GrTextarea/chunks/{GrTextarea-Bfgc0DD2.js → GrTextarea-BFwyqcHB.js} +22 -5
  237. package/dist/components/GrTextarea/chunks/GrTextarea-BFwyqcHB.js.map +1 -0
  238. package/dist/components/GrTextarea/index.js +1 -1
  239. package/dist/components/GrToaster/chunks/{GrToaster-CZixNk0l.js → GrToaster-OzT1VKcp.js} +163 -32
  240. package/dist/components/GrToaster/chunks/GrToaster-OzT1VKcp.js.map +1 -0
  241. package/dist/components/GrToaster/index.js +2 -2
  242. package/dist/components/GrToaster/styles.css +1 -1
  243. package/dist/components/GrTooltip/chunks/{GrTooltip-DkMMM0uq.js → GrTooltip-BDcFycvW.js} +26 -13
  244. package/dist/components/GrTooltip/chunks/GrTooltip-BDcFycvW.js.map +1 -0
  245. package/dist/components/GrTooltip/index.js +2 -2
  246. package/dist/components/GrTransfer/chunks/{GrTransfer-DdfBUf35.js → GrTransfer-CV7BL5UK.js} +114 -12
  247. package/dist/components/GrTransfer/chunks/GrTransfer-CV7BL5UK.js.map +1 -0
  248. package/dist/components/GrTransfer/index.js +1 -1
  249. package/dist/components/GrTransfer/styles.css +1 -1
  250. package/dist/components/GrTree/chunks/{GrTree-6yZrncJE.js → GrTree-DpgaP8hk.js} +39 -1
  251. package/dist/components/GrTree/chunks/GrTree-DpgaP8hk.js.map +1 -0
  252. package/dist/components/GrTree/index.js +1 -1
  253. package/dist/components/GrTree/styles.css +1 -1
  254. package/dist/components/GrTreeSections/chunks/{GrTreeSections-DcmDcLwj.js → GrTreeSections-BeOj__44.js} +1 -1
  255. package/dist/components/GrTreeSections/chunks/{GrTreeSections-DcmDcLwj.js.map → GrTreeSections-BeOj__44.js.map} +1 -1
  256. package/dist/components/GrTreeSections/index.js +1 -1
  257. package/dist/components/GrTreeSelect/chunks/{GrTreeSelect-B6KoDYiZ.js → GrTreeSelect-BHq-T8wH.js} +113 -14
  258. package/dist/components/GrTreeSelect/chunks/GrTreeSelect-BHq-T8wH.js.map +1 -0
  259. package/dist/components/GrTreeSelect/index.js +2 -2
  260. package/dist/composables/useFloating.js +1 -1
  261. package/dist/composables/useHotkeys.js +89 -0
  262. package/dist/composables/useHotkeys.js.map +1 -0
  263. package/dist/composables/useOverlayLayer.js +1 -1
  264. package/dist/directives/hotkey.js +19 -46
  265. package/dist/directives/hotkey.js.map +1 -1
  266. package/dist/granular-provider-node.js +1 -1
  267. package/dist/granular-provider.js +1 -1
  268. package/dist/i18n/all.js +1 -1
  269. package/dist/i18n/index.js +1 -1
  270. package/dist/index.js +80 -71
  271. package/dist/theme.js +1 -1
  272. package/dist/tokens.js +1 -1
  273. package/dist/types/components/GrAutocomplete/GrAutocomplete.vue.d.ts +4 -4
  274. package/dist/types/components/GrAutocomplete/composables/useAutocompleteNavigation.d.ts +12 -3
  275. package/dist/types/components/GrAutocomplete/composables/useAutocompletePanel.d.ts +12 -2
  276. package/dist/types/components/GrAutocomplete/composables/useAutocompleteValues.d.ts +7 -4
  277. package/dist/types/components/GrAutocomplete/composables/useRemoteOptions.d.ts +4 -4
  278. package/dist/types/components/GrAutocomplete/grAutocompleteStyles.d.ts +15 -1
  279. package/dist/types/components/GrAutocomplete/index.d.ts +1 -1
  280. package/dist/types/components/GrBadge/GrBadge.vue.d.ts +15 -1
  281. package/dist/types/components/GrBadge/grBadgeStyles.d.ts +57 -0
  282. package/dist/types/components/GrBadge/index.d.ts +1 -1
  283. package/dist/types/components/GrCarousel/GrCarousel.vue.d.ts +29 -1
  284. package/dist/types/components/GrCarousel/composables/useCarouselSwipe.d.ts +5 -0
  285. package/dist/types/components/GrCarousel/grCarouselContext.d.ts +21 -0
  286. package/dist/types/components/GrCarousel/grCarouselStyles.d.ts +39 -9
  287. package/dist/types/components/GrCheckbox/GrCheckbox.vue.d.ts +13 -0
  288. package/dist/types/components/GrColorPicker/GrColorPicker.vue.d.ts +18 -2
  289. package/dist/types/components/GrColorPicker/color.d.ts +13 -1
  290. package/dist/types/components/GrColorPicker/colorArea.d.ts +59 -0
  291. package/dist/types/components/GrColorPicker/defaults.d.ts +3 -1
  292. package/dist/types/components/GrColorPicker/eyeDropper.d.ts +21 -0
  293. package/dist/types/components/GrColorPicker/grColorPickerStyles.d.ts +42 -0
  294. package/dist/types/components/GrCommandPalette/GrCommandPalette.vue.d.ts +10 -1
  295. package/dist/types/components/GrDataTable/GrDataTable.vue.d.ts +41 -1
  296. package/dist/types/components/GrDataTable/composables/useDataTableGridNavigation.d.ts +53 -0
  297. package/dist/types/components/GrDataTable/grDataTableStyles.d.ts +8 -0
  298. package/dist/types/components/GrDataTable/index.d.ts +1 -1
  299. package/dist/types/components/GrDelta/grDeltaStyles.d.ts +10 -3
  300. package/dist/types/components/GrEmptyState/GrEmptyState.vue.d.ts +11 -2
  301. package/dist/types/components/GrEmptyState/grEmptyStateStyles.d.ts +10 -0
  302. package/dist/types/components/GrEmptyState/index.d.ts +1 -1
  303. package/dist/types/components/GrFileUpload/GrFileUpload.vue.d.ts +2 -1
  304. package/dist/types/components/GrFormFile/GrFormFile.vue.d.ts +10 -0
  305. package/dist/types/components/GrInput/GrInput.vue.d.ts +15 -0
  306. package/dist/types/components/GrInputTag/GrInputTag.vue.d.ts +16 -0
  307. package/dist/types/components/GrInputTag/grInputTagStyles.d.ts +11 -0
  308. package/dist/types/components/GrKbd/GrKbd.vue.d.ts +14 -0
  309. package/dist/types/components/GrNavbar/GrNavbar.vue.d.ts +18 -0
  310. package/dist/types/components/GrNavbar/grNavbarStyles.d.ts +10 -1
  311. package/dist/types/components/GrNavbar/index.d.ts +1 -0
  312. package/dist/types/components/GrOtpInput/GrOtpInput.vue.d.ts +164 -0
  313. package/dist/types/components/GrOtpInput/config.d.ts +1 -0
  314. package/dist/types/components/GrOtpInput/defaults.d.ts +15 -0
  315. package/dist/types/components/GrOtpInput/grOtpInputStyles.d.ts +62 -0
  316. package/dist/types/components/GrOtpInput/index.d.ts +9 -0
  317. package/dist/types/components/GrOtpInput/otpValue.d.ts +71 -0
  318. package/dist/types/components/GrOtpInput/safelist.d.ts +7 -0
  319. package/dist/types/components/GrSelect/composables/useSelectPanelItems.d.ts +8 -34
  320. package/dist/types/components/GrSelect/composables/useSelectVirtualization.d.ts +7 -0
  321. package/dist/types/components/GrSelect/grSelectStyles.d.ts +1 -1
  322. package/dist/types/components/GrSidebar/GrSidebar.vue.d.ts +20 -0
  323. package/dist/types/components/GrSidebar/GrSidebarItem.vue.d.ts +39 -5
  324. package/dist/types/components/GrSidebar/grSidebarStyles.d.ts +32 -0
  325. package/dist/types/components/GrSidebar/index.d.ts +1 -1
  326. package/dist/types/components/GrSidebar/sidebarContext.d.ts +23 -1
  327. package/dist/types/components/GrSlider/GrSlider.vue.d.ts +39 -1
  328. package/dist/types/components/GrSlider/grSliderStyles.d.ts +1 -1
  329. package/dist/types/components/GrSwitch/GrSwitch.vue.d.ts +42 -4
  330. package/dist/types/components/GrSwitch/defaults.d.ts +2 -0
  331. package/dist/types/components/GrSwitch/grSwitchStyles.d.ts +129 -25
  332. package/dist/types/components/GrSwitch/index.d.ts +1 -1
  333. package/dist/types/components/GrSwitch/safelist.d.ts +4 -3
  334. package/dist/types/components/GrTabPanels/context.d.ts +6 -0
  335. package/dist/types/components/GrTable/GrTable.vue.d.ts +37 -0
  336. package/dist/types/components/GrTable/grTableStyles.d.ts +16 -7
  337. package/dist/types/components/GrTabsWithPanels/GrTabsWithPanels.vue.d.ts +77 -0
  338. package/dist/types/components/GrTabsWithPanels/config.d.ts +1 -0
  339. package/dist/types/components/GrTabsWithPanels/index.d.ts +4 -0
  340. package/dist/types/components/GrTextarea/GrTextarea.vue.d.ts +19 -1
  341. package/dist/types/components/GrToaster/GrToaster.vue.d.ts +12 -0
  342. package/dist/types/components/GrToaster/grToasterStyles.d.ts +26 -0
  343. package/dist/types/components/GrTooltip/GrTooltip.vue.d.ts +22 -0
  344. package/dist/types/components/GrTransfer/GrTransfer.vue.d.ts +23 -0
  345. package/dist/types/components/GrTreeSelect/grTreeSelectStyles.d.ts +1 -1
  346. package/dist/types/components/GrTreeSelect/grTreeSelectTypes.d.ts +20 -0
  347. package/dist/types/components/shared/hotkey.d.ts +8 -9
  348. package/dist/types/components/shared/optionPanel.d.ts +100 -0
  349. package/dist/types/components/shared/overlayListPanel.d.ts +18 -0
  350. package/dist/types/composables/useHotkeys.d.ts +43 -0
  351. package/dist/types/granular-provider/shared.d.ts +2 -0
  352. package/dist/types/i18n/messages/en.d.ts +32 -0
  353. package/dist/types/i18n/messages/es.d.ts +32 -0
  354. package/dist/types/i18n/messages/ru.d.ts +32 -0
  355. package/dist/types/index.d.ts +4 -0
  356. package/dist/types/internal/hotkeySequence.d.ts +22 -0
  357. package/dist/types/internal/keyboard.d.ts +45 -0
  358. package/dist/web-types.json +784 -101
  359. package/package.json +13 -1
  360. package/dist/chunks/config-2ZHRsdOc.js.map +0 -1
  361. package/dist/chunks/config-B42iJ48O.js.map +0 -1
  362. package/dist/chunks/config-B5SBUa6u.js.map +0 -1
  363. package/dist/chunks/config-BAse0laT.js.map +0 -1
  364. package/dist/chunks/config-BHLMTJaR.js.map +0 -1
  365. package/dist/chunks/config-BXRmsn3t.js.map +0 -1
  366. package/dist/chunks/config-Bs1HwUcx.js.map +0 -1
  367. package/dist/chunks/config-CMNfZO7S.js.map +0 -1
  368. package/dist/chunks/config-CbEbLyDE.js.map +0 -1
  369. package/dist/chunks/config-CjWOTgLL.js.map +0 -1
  370. package/dist/chunks/config-D3HOuHDe.js.map +0 -1
  371. package/dist/chunks/config-DIDz_E5m.js.map +0 -1
  372. package/dist/chunks/config-DNDgp9bB.js.map +0 -1
  373. package/dist/chunks/config-Yy67uWHY.js +0 -140
  374. package/dist/chunks/config-Yy67uWHY.js.map +0 -1
  375. package/dist/chunks/config-iemgzS4x.js.map +0 -1
  376. package/dist/chunks/en-Bxyn5lW7.js.map +0 -1
  377. package/dist/chunks/es-Dtl-a7ui.js.map +0 -1
  378. package/dist/chunks/grBadgeStyles-DV0DrAew.js.map +0 -1
  379. package/dist/chunks/grSelectStyles-D9EQ-pgK.js.map +0 -1
  380. package/dist/chunks/grSliderStyles-kaz6VXZ3.js.map +0 -1
  381. package/dist/chunks/grTableStyles-DkQPMfx9.js +0 -39
  382. package/dist/chunks/grTableStyles-DkQPMfx9.js.map +0 -1
  383. package/dist/chunks/granular-provider-BOQp7N5o.js.map +0 -1
  384. package/dist/chunks/keyboard-DE2yhz_b.js.map +0 -1
  385. package/dist/chunks/overlayPanelSurface-BKeMhRx4.js.map +0 -1
  386. package/dist/chunks/ru-hrB4I1u_.js.map +0 -1
  387. package/dist/chunks/safelist-x8USecK8.js.map +0 -1
  388. package/dist/components/GrAutocomplete/chunks/GrAutocomplete-C-uovdv8.js.map +0 -1
  389. package/dist/components/GrBadge/chunks/GrBadge-DBeQXEir.js +0 -47
  390. package/dist/components/GrBadge/chunks/GrBadge-DBeQXEir.js.map +0 -1
  391. package/dist/components/GrCarousel/chunks/GrCarousel-ByuughtI.js.map +0 -1
  392. package/dist/components/GrCheckbox/chunks/GrCheckbox-Dp201frb.js.map +0 -1
  393. package/dist/components/GrColorPicker/chunks/GrColorPicker-BRM_4lyI.js.map +0 -1
  394. package/dist/components/GrCommandPalette/chunks/GrCommandPalette-BJHmkDQv.js.map +0 -1
  395. package/dist/components/GrDataTable/chunks/GrDataTable-DQxYYgQk.js.map +0 -1
  396. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-Dxkz_ry4.js.map +0 -1
  397. package/dist/components/GrEmptyState/chunks/GrEmptyState-BbvwE-E0.js.map +0 -1
  398. package/dist/components/GrFileUpload/chunks/GrFileUpload-BwMR71zN.js.map +0 -1
  399. package/dist/components/GrFormFile/chunks/GrFormFile-Dlxx-9zi.js.map +0 -1
  400. package/dist/components/GrInput/chunks/GrInput-DV4gMWPR.js.map +0 -1
  401. package/dist/components/GrInputTag/chunks/GrInputTag-CO0YU-ok.js.map +0 -1
  402. package/dist/components/GrKbd/chunks/GrKbd-BNMeoaLV.js.map +0 -1
  403. package/dist/components/GrNavbar/chunks/GrNavbar-BRGuksiy.js.map +0 -1
  404. package/dist/components/GrSelect/chunks/GrSelect-0iI4wdR_.js.map +0 -1
  405. package/dist/components/GrSidebar/chunks/GrSidebar-DoKLlHSw.js +0 -264
  406. package/dist/components/GrSidebar/chunks/GrSidebar-DoKLlHSw.js.map +0 -1
  407. package/dist/components/GrSlider/chunks/GrSlider-CO8N9SF6.js.map +0 -1
  408. package/dist/components/GrSwitch/chunks/GrSwitch-CriHWT2A.js.map +0 -1
  409. package/dist/components/GrTabPanels/chunks/GrTabPanels-5zsbqS1v.js +0 -92
  410. package/dist/components/GrTabPanels/chunks/GrTabPanels-5zsbqS1v.js.map +0 -1
  411. package/dist/components/GrTable/chunks/GrTable-CKJ-HrsN.js.map +0 -1
  412. package/dist/components/GrTextarea/chunks/GrTextarea-Bfgc0DD2.js.map +0 -1
  413. package/dist/components/GrToaster/chunks/GrToaster-CZixNk0l.js.map +0 -1
  414. package/dist/components/GrTooltip/chunks/GrTooltip-DkMMM0uq.js.map +0 -1
  415. package/dist/components/GrTransfer/chunks/GrTransfer-DdfBUf35.js.map +0 -1
  416. package/dist/components/GrTree/chunks/GrTree-6yZrncJE.js.map +0 -1
  417. package/dist/components/GrTreeSelect/chunks/GrTreeSelect-B6KoDYiZ.js.map +0 -1
  418. package/dist/types/components/GrAutocomplete/composables/useAutocompleteVirtual.d.ts +0 -33
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Пипетка экрана поверх `EyeDropper`.
3
+ *
4
+ * API есть не везде (сегодня — браузеры на Chromium), поэтому вызывается через
5
+ * проверку, а не через `try`: кнопка не должна появляться там, где нажатие
6
+ * ничего не даст.
7
+ *
8
+ * Отказ пользователя ошибкой не считается. `open()` отклоняется `AbortError`
9
+ * и на `Esc`, и на обрыв через `AbortSignal` — оба исхода означают «цвет не
10
+ * выбран», и разговаривать о них с пользователем не о чем.
11
+ */
12
+ /** Поддерживается ли пипетка. Зовётся после монтирования: на сервере `window` нет. */
13
+ export declare function isEyeDropperSupported(): boolean;
14
+ /**
15
+ * Открыть пипетку и дождаться цвета. `null` — пользователь отказался или API
16
+ * недоступно.
17
+ *
18
+ * Вызов обязан идти прямо из обработчика нажатия: без свежего жеста браузер
19
+ * отклоняет `open()` как `NotAllowedError`.
20
+ */
21
+ export declare function pickScreenColor(signal?: AbortSignal): Promise<string | null>;
@@ -24,6 +24,43 @@ export declare const swatchBaseClass = "relative shrink-0 overflow-hidden rounde
24
24
  export declare const swatchFillClass = "absolute inset-0";
25
25
  export declare const panelBaseClass = "grid";
26
26
  export declare const previewClass = "relative h-10 w-full overflow-hidden rounded-[var(--gr-radius-md)] border border-[color-mix(in_srgb,var(--gr-fg)_18%,transparent)]";
27
+ /** Вид панели: лестница каналов или квадрат насыщенность × светлота. */
28
+ export declare const GR_COLOR_PICKER_VIEWS: readonly ["sliders", "area"];
29
+ export type GrColorPickerView = typeof GR_COLOR_PICKER_VIEWS[number];
30
+ /**
31
+ * Высота области. Ширину задаёт панель, поэтому квадрат тут не буквальный:
32
+ * на узкой ступени доля высоты крупнее, иначе область вырождается в полоску.
33
+ */
34
+ export declare const areaHeightBySize: Record<GrColorPickerSize, string>;
35
+ /**
36
+ * Область насыщенности и светлоты.
37
+ *
38
+ * Кольцо фокуса живёт на обёртке через `focus-within`: фокус получают скрытые
39
+ * `input[type=range]` внутри, и своё кольцо у них было бы шириной в пиксель.
40
+ */
41
+ export declare const areaBaseClass = "relative w-full overflow-hidden rounded-[var(--gr-radius-md)] border border-[color-mix(in_srgb,var(--gr-fg)_18%,transparent)] [touch-action:none] focus-within:outline-none focus-within:ring-2 focus-within:ring-[var(--gr-ring)]";
42
+ export declare const areaEnabledClass = "cursor-crosshair";
43
+ export declare const areaDisabledClass = "cursor-not-allowed";
44
+ /**
45
+ * Ручка области.
46
+ *
47
+ * Обвода два, светлый и тёмный: ручка лежит поверх произвольного цвета, и
48
+ * одиночный пропадал бы на своём конце шкалы — белый в углу белого, тёмный в
49
+ * углу чёрного.
50
+ *
51
+ * Оба независимы от темы намеренно: под ручкой не подложка компонента, а
52
+ * выбираемый цвет, и `--gr-fg` спорил бы с ним, а не с фоном страницы.
53
+ */
54
+ export declare const areaThumbClass = "pointer-events-none absolute h-[var(--gr-color-picker-area-thumb-size,0.875rem)] w-[var(--gr-color-picker-area-thumb-size,0.875rem)] -translate-x-1/2 -translate-y-1/2 rounded-[var(--gr-radius-full)] border-2 border-[var(--gr-color-picker-area-thumb-border,#fff)] shadow-[0_0_0_1px_var(--gr-color-picker-area-thumb-ring,rgba(0,0,0,0.45))]";
55
+ /** Оба поля осей: доступны диктору и клавиатуре, но не видны. */
56
+ export declare const areaInputClass = "sr-only";
57
+ /** Пипетка стоит в одном ряду с полем hex и повторяет его высоту. */
58
+ export declare const eyedropperClass = "inline-flex shrink-0 items-center justify-center rounded-[var(--gr-radius-control)] border border-[var(--gr-brd)] bg-[var(--gr-bg)] text-[var(--gr-fg)] transition-colors duration-[var(--gr-duration-fast)] hover:border-[var(--gr-primary)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--gr-ring)] disabled:cursor-not-allowed disabled:border-[var(--gr-brd)] disabled:bg-[var(--gr-muted)] disabled:text-[var(--gr-disabled-fg)]";
59
+ export declare const eyedropperSizeBySize: Record<GrColorPickerSize, string>;
60
+ export declare const eyedropperIconClass = "h-4 w-4 shrink-0";
61
+ /** Поле hex и пипетка стоят рядом: поле тянется, кнопка держит свою ширину. */
62
+ export declare const hexRowClass = "flex items-center gap-2";
63
+ export declare const hexFieldClass = "min-w-0 flex-1";
27
64
  export declare const rowClass = "grid grid-cols-[1.25rem_minmax(0,1fr)_2.75rem] items-center gap-2";
28
65
  export declare const rowLabelClass = "text-[var(--gr-muted-fg)]";
29
66
  export declare const rowValueClass = "text-right text-[var(--gr-muted-fg)] tabular-nums";
@@ -37,3 +74,8 @@ export declare function grColorPickerTriggerClass(options: {
37
74
  }): string;
38
75
  export declare function grColorPickerPanelClass(size: GrColorPickerSize): string;
39
76
  export declare function grColorPickerPresetClass(selected: boolean): string;
77
+ export declare function grColorPickerAreaClass(options: {
78
+ size: GrColorPickerSize;
79
+ locked: boolean;
80
+ }): string;
81
+ export declare function grColorPickerEyedropperClass(size: GrColorPickerSize): string;
@@ -29,6 +29,12 @@ export interface GrCommandPaletteProps {
29
29
  size?: GrCommandPaletteSize;
30
30
  /** Глобальное сочетание открытия. `null` — не вешать слушатель. */
31
31
  hotkey?: string | null;
32
+ /**
33
+ * Идентификатор записи в реестре (`granularityHotkeysPlugin`) вместо
34
+ * сочетания строкой: подсказка и привязка берутся из одного источника и не
35
+ * могут разойтись. Сильнее `hotkey`.
36
+ */
37
+ hotkeyId?: string;
32
38
  /** Локальная фильтрация по запросу. `false` — фильтрует владелец по событию `search`. */
33
39
  filterable?: boolean;
34
40
  /** Кастомный матчер локальной фильтрации. */
@@ -83,6 +89,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
83
89
  placeholder: undefined;
84
90
  size: undefined;
85
91
  hotkey: string;
92
+ hotkeyId: undefined;
86
93
  filterable: boolean;
87
94
  filter: undefined;
88
95
  loading: boolean;
@@ -106,6 +113,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
106
113
  placeholder: undefined;
107
114
  size: undefined;
108
115
  hotkey: string;
116
+ hotkeyId: undefined;
109
117
  filterable: boolean;
110
118
  filter: undefined;
111
119
  loading: boolean;
@@ -131,8 +139,9 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
131
139
  closeOnSelect: boolean;
132
140
  virtual: boolean;
133
141
  items: GrCommandItem[];
134
- recentIds: string[];
135
142
  hotkey: string | null;
143
+ recentIds: string[];
144
+ hotkeyId: string;
136
145
  showHotkeyHint: boolean;
137
146
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
138
147
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -33,8 +33,16 @@ export type GrDataColumn<TRow extends Record<string, unknown> = Record<string, u
33
33
  * колонки из группы в группу запрещён, иначе «закреплена слева» перестало бы
34
34
  * означать «слева».
35
35
  */
36
- pinned?: 'left' | 'right';
36
+ pinned?: GrColumnPinSide;
37
37
  };
38
+ /** Край, к которому липнет колонка. */
39
+ export type GrColumnPinSide = 'left' | 'right';
40
+ /**
41
+ * Закрепление, выбранное пользователем. `null` — не «как в конфиге», а
42
+ * «откреплена»: без него снять закрепление, объявленное у колонки, было бы
43
+ * нечем — отсутствие ключа означает «решает конфиг».
44
+ */
45
+ export type GrColumnPin = GrColumnPinSide | null;
38
46
  /**
39
47
  * Значения итоговой строки по ключам колонок.
40
48
  *
@@ -150,6 +158,28 @@ export interface GrDataTableProps<TRow extends Record<string, unknown> = Record<
150
158
  * Не заданы — ширины компонент помнит сам.
151
159
  */
152
160
  columnWidths?: Record<string, number>;
161
+ /**
162
+ * Закрепление колонок задаёт пользователь: в шапке появляется меню с
163
+ * «закрепить слева / справа / открепить».
164
+ *
165
+ * Без пропа `pinned` у колонки остаётся тем, чем был, — объявлением в
166
+ * конфиге, которое меняется только кодом.
167
+ */
168
+ pinnableColumns?: boolean;
169
+ /**
170
+ * Контролируемое закрепление по ключу колонки (`v-model:pinnedColumns`).
171
+ * Не задано — компонент помнит его сам, начиная с `pinned` у колонок.
172
+ */
173
+ pinnedColumns?: Record<string, GrColumnPin>;
174
+ /**
175
+ * Клавиатура по ячейкам: паттерн `grid` из WAI-ARIA APG.
176
+ *
177
+ * Вся таблица становится **одной** остановкой `Tab`, внутрь ведут стрелки, а
178
+ * в содержимое ячейки — `Enter` или `F2`. Поэтому проп отдельный, а не
179
+ * поведение по умолчанию: он переставляет таб-порядок у всех, кто таблицу
180
+ * уже поставил.
181
+ */
182
+ cellNavigation?: boolean;
153
183
  /**
154
184
  * Второй ярус строки: колонка с кнопкой раскрытия и блок подробностей под
155
185
  * строкой. Содержимое рисует слот `#detail`.
@@ -200,6 +230,11 @@ export interface GrDataTableEmits<TRow extends Record<string, unknown> = Record<
200
230
  key: string;
201
231
  width: number;
202
232
  }): void;
233
+ (e: 'update:pinnedColumns', value: Record<string, GrColumnPin>): void;
234
+ (e: 'columnPin', payload: {
235
+ key: string;
236
+ pinned: GrColumnPin;
237
+ }): void;
203
238
  (e: 'update:expandedKeys', value: Array<string | number>): void;
204
239
  (e: 'expand', payload: {
205
240
  row: TRow;
@@ -248,6 +283,11 @@ declare const __VLS_export: <TRow extends Record<string, unknown> = Record<strin
248
283
  key: string;
249
284
  width: number;
250
285
  }) => any) | undefined;
286
+ "onUpdate:pinnedColumns"?: ((value: Record<string, GrColumnPin>) => any) | undefined;
287
+ onColumnPin?: ((payload: {
288
+ key: string;
289
+ pinned: GrColumnPin;
290
+ }) => any) | undefined;
251
291
  "onUpdate:expandedKeys"?: ((value: (string | number)[]) => any) | undefined;
252
292
  onDetailLoadError?: ((payload: {
253
293
  row: TRow;
@@ -0,0 +1,53 @@
1
+ import type { ComputedRef } from 'vue';
2
+ /**
3
+ * Клавиатура по ячейкам: паттерн `grid` из WAI-ARIA APG.
4
+ *
5
+ * Своей арифметики здесь нет — её ведёт `useRovingFocus` в режиме `grid`. Этот
6
+ * модуль отвечает за то, чего примитив знать не может: как адресуется ячейка
7
+ * таблицы, что делать на краю окна виртуализации и куда прокрутить, прежде чем
8
+ * фокусировать.
9
+ *
10
+ * **Кольцо не замкнуто.** У списка зацикливание уместно, у сетки нет: строка
11
+ * ниже последней — это не первая, а «дальше некуда», и в виртуальном списке
12
+ * именно на этом краю начинается подгрузка.
13
+ *
14
+ * **Набор — отрисованное окно, а не вся таблица.** У десяти тысяч строк на шесть
15
+ * колонок ключей было бы шестьдесят тысяч, и пересобирались бы они при каждом
16
+ * чтении. Шаг за край окна разбирается до примитива (`windowStep`): список
17
+ * прокручивается, и фокус уходит в строку, появившуюся следующим кадром.
18
+ */
19
+ /** Строка шапки адресуется как `-1`: в наборе она первая, но строкой данных не является. */
20
+ export declare const HEADER_ROW_INDEX = -1;
21
+ /** Ключ ячейки. Строка вместо пары чисел — примитив сравнивает ключи по `===`. */
22
+ export type GrGridCellKey = string;
23
+ export declare function gridCellKey(row: number, column: number): GrGridCellKey;
24
+ export declare function parseGridCellKey(key: GrGridCellKey): {
25
+ row: number;
26
+ column: number;
27
+ };
28
+ export interface UseDataTableGridNavigationOptions {
29
+ /** Включена ли навигация по ячейкам. Выключенная не занимает ни одной клавиши. */
30
+ enabled: () => boolean;
31
+ /** Ширина сетки со служебными колонками. */
32
+ columns: () => number;
33
+ /** Индексы отрисованных строк в порядке показа. При виртуализации — только окно. */
34
+ renderedRows: () => number[];
35
+ /** Сколько всего строк: по нему считается край при виртуализации. */
36
+ totalRows: () => number;
37
+ /** Узлы ячеек по ключу. Заполняется `:ref` самой таблицы. */
38
+ cellEls: Map<GrGridCellKey, HTMLElement>;
39
+ /**
40
+ * Прокрутить список к строке. Есть только при виртуализации: без неё строка
41
+ * уже в разметке, и доводить до экрана её незачем.
42
+ */
43
+ scrollToRow?: (index: number) => void;
44
+ }
45
+ export interface DataTableGridNavigation {
46
+ /** Ключ ячейки, держащей остановку `Tab`. */
47
+ rovingKey: ComputedRef<GrGridCellKey | undefined>;
48
+ tabindexFor: (row: number, column: number) => 0 | -1;
49
+ setActive: (row: number, column: number) => void;
50
+ /** Обработчик `keydown` на таблице. Возвращает `true`, если клавиша разобрана. */
51
+ onKeydown: (event: KeyboardEvent) => boolean;
52
+ }
53
+ export declare function useDataTableGridNavigation(options: UseDataTableGridNavigationOptions): DataTableGridNavigation;
@@ -18,6 +18,14 @@ export declare const placeholderPaddings: Record<GrDataTableSize, string>;
18
18
  */
19
19
  export declare const columnHandleClass = "inline-flex shrink-0 cursor-grab items-center text-[var(--gr-datatable-drag-handle,var(--gr-muted-fg))] opacity-0 [touch-action:none] transition-opacity duration-[var(--gr-duration-fast)] focus:outline-none focus-visible:opacity-100 focus-visible:ring-2 focus-visible:ring-[var(--gr-ring)] rounded-[var(--gr-radius-sm)] group-hover:opacity-100";
20
20
  export declare const columnHandleActiveClass = "opacity-100";
21
+ /**
22
+ * Кнопка меню колонки. Как и ручка переноса, в покое не видна: три значка в
23
+ * каждом заголовке — шум, а нужны они по случаю.
24
+ *
25
+ * Открытое меню держит кнопку видимой само (`aria-expanded`), иначе она гасла
26
+ * бы ровно в тот момент, когда указатель уходит с заголовка на её же панель.
27
+ */
28
+ export declare const columnMenuTriggerClass = "absolute end-1 top-1/2 -translate-y-1/2 inline-flex shrink-0 items-center rounded-[var(--gr-radius-sm)] text-[var(--gr-muted-fg)] opacity-0 transition-opacity duration-[var(--gr-duration-fast)] hover:text-[var(--gr-fg)] focus:outline-none focus-visible:opacity-100 focus-visible:ring-2 focus-visible:ring-[var(--gr-ring)] group-hover:opacity-100 [&[aria-expanded=true]]:opacity-100 disabled:cursor-not-allowed disabled:text-[var(--gr-disabled-fg)]";
21
29
  /** Переносимая колонка гасится, чтобы было видно, что она «поднята». */
22
30
  export declare const columnDraggingClass = "bg-[var(--gr-muted)]";
23
31
  /**
@@ -2,7 +2,7 @@ import type { ComponentExposed } from '../shared/instance';
2
2
  import type GrDataTableComponent from './GrDataTable.vue';
3
3
  export { default } from './GrDataTable.vue';
4
4
  export { default as GrDataTable } from './GrDataTable.vue';
5
- export type { GrDataColumn, GrDataColumnKey, GrDataTableProps, GrDataTableRowKey, GrDataTableSortCycle, GrDataTableSummary, } from './GrDataTable.vue';
5
+ export type { GrColumnPin, GrColumnPinSide, GrDataColumn, GrDataColumnKey, GrDataTableProps, GrDataTableRowKey, GrDataTableSortCycle, GrDataTableSummary, } from './GrDataTable.vue';
6
6
  export type { GrDataTableSortDir } from './grDataTableSort';
7
7
  export { grDataTableConfig } from './config';
8
8
  export type { GrDataTableConfigurableProps } from './defaults';
@@ -20,8 +20,12 @@ export declare const deltaRootClass = "inline-flex items-baseline tabular-nums";
20
20
  * оказывается мельче окружающих слов.
21
21
  *
22
22
  * Дефолт `GrValue` рассчитан на плитку, где величина крупная и приписке есть
23
- * куда уменьшаться. Здесь он переопределяется — ровно теми же токенами, что
24
- * доступны потребителю.
23
+ * куда уменьшаться. Здесь он переопределяется.
24
+ *
25
+ * **Переопределение ссылается на свои хуки, а не задаёт значение.** Стиль
26
+ * применяется инлайном, а инлайн бьёт любой CSS потребителя: напиши тут
27
+ * `currentColor` — и вернуть приглушённый суффикс у дельты стало бы нечем.
28
+ * Ссылка на `--gr-delta-suffix-*` оставляет решение за тем, кто его задал.
25
29
  *
26
30
  * `currentColor` и `1em`, а не `inherit`: у пользовательского свойства
27
31
  * `inherit` значит «наследовать саму переменную», то есть ничего.
@@ -35,8 +39,11 @@ export declare const deltaValueStyle: Record<string, string>;
35
39
  * пиксельная лестница оставила бы стрелку 14-пиксельной внутри заголовка.
36
40
  * Чуть меньше единицы: стрелка декоративна, и равный вес спорил бы с самим
37
41
  * числом.
42
+ *
43
+ * Отбивка **логическая** (`me-`), как у приписок `GrValue`: физический
44
+ * `margin-right` в RTL поставил бы стрелку зазором не с той стороны.
38
45
  */
39
- export declare const deltaArrowClass = "mr-0.5 self-center shrink-0 h-[0.875em] w-[0.875em]";
46
+ export declare const deltaArrowClass = "me-[var(--gr-delta-arrow-gap,0.125rem)] self-center shrink-0 h-[var(--gr-delta-arrow-size,0.875em)] w-[var(--gr-delta-arrow-size,0.875em)]";
40
47
  export declare const deltaToneClass: Record<GrDeltaTone, string>;
41
48
  /** Прочерк вместо величины: тона у него нет, но и цвет основного текста ему не нужен. */
42
49
  export declare const deltaEmptyClass = "text-[var(--gr-muted-fg)]";
@@ -1,5 +1,5 @@
1
- import { type GrEmptyStateHeadingLevel, type GrEmptyStateSize, type GrEmptyStateVariant } from './grEmptyStateStyles';
2
- export type { GrEmptyStateHeadingLevel, GrEmptyStateSize, GrEmptyStateVariant, } from './grEmptyStateStyles';
1
+ import { type GrEmptyStateHeadingLevel, type GrEmptyStateSize, type GrEmptyStateKind, type GrEmptyStateVariant } from './grEmptyStateStyles';
2
+ export type { GrEmptyStateHeadingLevel, GrEmptyStateKind, GrEmptyStateSize, GrEmptyStateVariant, } from './grEmptyStateStyles';
3
3
  /**
4
4
  * GrEmptyState — карточка пустого состояния: иконка, заголовок, описание и
5
5
  * слот действий.
@@ -16,6 +16,12 @@ export interface GrEmptyStateProps {
16
16
  /** `ghost` снимает рамку и фон: карточка внутри карточки рисует вторую рамку. */
17
17
  variant?: GrEmptyStateVariant;
18
18
  headingLevel?: GrEmptyStateHeadingLevel;
19
+ /**
20
+ * Что за пустота: ещё ничего не создано (`empty`) или под запросом ничего не
21
+ * нашлось (`search`). Меняет иконку и заголовок по умолчанию; заданный
22
+ * `title` сильнее в обоих случаях.
23
+ */
24
+ kind?: GrEmptyStateKind;
19
25
  }
20
26
  type __VLS_Slots = {
21
27
  /** Иконка вместо встроенной. */
@@ -32,18 +38,21 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
32
38
  size: undefined;
33
39
  variant: undefined;
34
40
  headingLevel: undefined;
41
+ kind: string;
35
42
  }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<GrEmptyStateProps>, {
36
43
  title: undefined;
37
44
  description: undefined;
38
45
  size: undefined;
39
46
  variant: undefined;
40
47
  headingLevel: undefined;
48
+ kind: string;
41
49
  }>>> & Readonly<{}>, {
42
50
  title: string;
43
51
  variant: GrEmptyStateVariant;
44
52
  size: GrEmptyStateSize;
45
53
  headingLevel: GrEmptyStateHeadingLevel;
46
54
  description: string;
55
+ kind: GrEmptyStateKind;
47
56
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
48
57
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
49
58
  declare const _default: typeof __VLS_export;
@@ -7,6 +7,16 @@ export type GrEmptyStateVariant = typeof GR_EMPTY_STATE_VARIANTS[number];
7
7
  * Уровень заголовка. `h1` намеренно нет: пустое состояние живёт внутри уже
8
8
  * существующей структуры страницы, а не задаёт её.
9
9
  */
10
+ /**
11
+ * Что за пустота. Значений два, и это не упрощение, а весь корпус: по репозиторию
12
+ * повторяются ровно они — «ещё ничего не создано» и «под запросом не нашлось».
13
+ *
14
+ * Разводить их обязательно: дефолтный заголовок «Пока пусто» под фильтром
15
+ * дезинформирует — данные есть, просто не совпали. Ошибка загрузки сюда не
16
+ * входит намеренно, у неё в пакете свои компоненты (`GrResponseErrorBanner`).
17
+ */
18
+ export declare const GR_EMPTY_STATE_KINDS: readonly ["empty", "search"];
19
+ export type GrEmptyStateKind = typeof GR_EMPTY_STATE_KINDS[number];
10
20
  export declare const GR_EMPTY_STATE_HEADING_LEVELS: readonly [2, 3, 4, 5, 6];
11
21
  export type GrEmptyStateHeadingLevel = typeof GR_EMPTY_STATE_HEADING_LEVELS[number];
12
22
  export declare const rootBaseClass = "text-center";
@@ -3,5 +3,5 @@ export { default as GrEmptyState } from './GrEmptyState.vue';
3
3
  export type { GrEmptyStateProps } from './GrEmptyState.vue';
4
4
  export { grEmptyStateConfig } from './config';
5
5
  export type { GrEmptyStateConfigurableProps } from './defaults';
6
- export type { GrEmptyStateHeadingLevel, GrEmptyStateSize, GrEmptyStateVariant, } from './grEmptyStateStyles';
6
+ export type { GrEmptyStateHeadingLevel, GrEmptyStateKind, GrEmptyStateSize, GrEmptyStateVariant, } from './grEmptyStateStyles';
7
7
  export { grEmptyStateSafelist } from './safelist';
@@ -22,7 +22,8 @@ export type GrFileUploadRequest<TResponse = unknown> = (files: File[], ctx: GrFi
22
22
  * Пропы `GrFileUpload`.
23
23
  *
24
24
  * Либо `action` (URL для POST multipart/form-data), либо `request` — кастомный
25
- * загрузчик (например, через axios). Если переданы оба — приоритет у `request`.
25
+ * загрузчик (например, через axios). Если переданы оба — приоритет у `request`,
26
+ * а `action` не используется; в dev-сборке об этом предупреждает консоль.
26
27
  *
27
28
  * `placeholder` — надпись в дефолтном UI-варианте (без слота default).
28
29
  */
@@ -33,6 +33,13 @@ export interface GrFormFileProps {
33
33
  size?: GrFormFileSize;
34
34
  /** Миниатюры для картинок в наборе. Файлы других типов остаются строкой. */
35
35
  preview?: boolean;
36
+ /**
37
+ * Порядок набора задаёт пользователь: у строки появляется ручка переноса.
38
+ *
39
+ * Нужно там, где последовательность файлов что-то значит, — галерея,
40
+ * страницы документа, очередь вложений. Осмысленно только с `multiple`.
41
+ */
42
+ reorderable?: boolean;
36
43
  /** Дополнительная (кастомная) валидация на стороне потребителя. */
37
44
  validate?: (files: File[]) => GrFormFileError[] | Promise<GrFormFileError[]>;
38
45
  /**
@@ -62,6 +69,7 @@ declare function blur(): void;
62
69
  declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<GrFormFileProps>, {
63
70
  multiple: boolean;
64
71
  preview: boolean;
72
+ reorderable: boolean;
65
73
  disabled: boolean;
66
74
  readonly: boolean;
67
75
  invalid: boolean;
@@ -91,6 +99,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
91
99
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<GrFormFileProps>, {
92
100
  multiple: boolean;
93
101
  preview: boolean;
102
+ reorderable: boolean;
94
103
  disabled: boolean;
95
104
  readonly: boolean;
96
105
  invalid: boolean;
@@ -133,6 +142,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
133
142
  changeText: string;
134
143
  removeText: string;
135
144
  clearAllText: string;
145
+ reorderable: boolean;
136
146
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
137
147
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
138
148
  declare const _default: typeof __VLS_export;
@@ -31,6 +31,18 @@ export interface GrInputProps {
31
31
  maxlength?: number;
32
32
  /** Показывать счётчик символов (`len` или `len/maxlength`). */
33
33
  showCount?: boolean;
34
+ /**
35
+ * Аддоны `prefix`/`suffix` несут смысл, а не украшают.
36
+ *
37
+ * По умолчанию они скрыты от скринридера: чаще всего там иконка поиска или
38
+ * глиф, повторяющий подпись поля, и второе прочтение мешает. Но `https://`
39
+ * или `₽` бывают единственным местом, где сказано, что вводить, — тогда
40
+ * аддон уезжает в `aria-describedby` поля.
41
+ *
42
+ * Декоративную иконку внутри слота помечайте `aria-hidden` сами: проп снимает
43
+ * скрытие со всей обёртки, а не разбирает её содержимое.
44
+ */
45
+ describeAddons?: boolean;
34
46
  /**
35
47
  * Фоновая работа по полю (проверка занятости логина, автосохранение):
36
48
  * спиннер в trailing-области + `aria-busy`. Ввод не блокируется —
@@ -112,6 +124,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
112
124
  clearLabel: undefined;
113
125
  maxlength: undefined;
114
126
  showCount: boolean;
127
+ describeAddons: boolean;
115
128
  loading: boolean;
116
129
  passwordToggle: boolean;
117
130
  passwordShowLabel: undefined;
@@ -153,6 +166,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
153
166
  clearLabel: undefined;
154
167
  maxlength: undefined;
155
168
  showCount: boolean;
169
+ describeAddons: boolean;
156
170
  loading: boolean;
157
171
  passwordToggle: boolean;
158
172
  passwordShowLabel: undefined;
@@ -198,6 +212,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
198
212
  inputmode: "search" | "text" | "none" | "email" | "tel" | "url" | "numeric" | "decimal";
199
213
  state: "default" | "success" | "warning" | "danger";
200
214
  maxlength: number;
215
+ describeAddons: boolean;
201
216
  passwordToggle: boolean;
202
217
  passwordShowLabel: string;
203
218
  passwordHideLabel: string;
@@ -27,6 +27,15 @@ export interface GrInputTagProps {
27
27
  * сервере). Отклонённый тег не добавляется и уходит в событие `reject`.
28
28
  */
29
29
  beforeAdd?: (tag: string) => boolean | Promise<boolean>;
30
+ /**
31
+ * Правка тега на месте: `F2` на чипе или двойной клик по нему открывают
32
+ * поле, `Enter` подтверждает, `Escape` отменяет.
33
+ *
34
+ * Проп, а не поведение по умолчанию: двойной клик по чипу сегодня ничего не
35
+ * делает, и превращать его во вход в правку у всех потребителей — тихая
36
+ * смена поведения.
37
+ */
38
+ editable?: boolean;
30
39
  /** Кнопка «снести все теги». Настраивается через `GrConfigProvider`. */
31
40
  clearable?: boolean;
32
41
  /** Фоновая работа: спиннер + `aria-busy`. Асинхронный `beforeAdd` поднимает его сам. */
@@ -63,6 +72,8 @@ export interface GrInputTagEmits {
63
72
  (e: 'update:modelValue', value: string[]): void;
64
73
  (e: 'add', value: string): void;
65
74
  (e: 'remove', value: string, index: number): void;
75
+ /** Тег изменён на месте: новое значение, его позиция и то, что стояло раньше. */
76
+ (e: 'edit', value: string, index: number, previous: string): void;
66
77
  /** Тег не прошёл `beforeAdd`. */
67
78
  (e: 'reject', value: string): void;
68
79
  /** Набор снесён кнопкой «очистить». */
@@ -101,6 +112,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
101
112
  max: undefined;
102
113
  addOnBlur: boolean;
103
114
  clearInputOnAdd: boolean;
115
+ editable: boolean;
104
116
  beforeAdd: undefined;
105
117
  clearable: undefined;
106
118
  loading: boolean;
@@ -121,6 +133,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
121
133
  "update:modelValue": (value: string[]) => void;
122
134
  add: (value: string) => void;
123
135
  remove: (value: string, index: number) => void;
136
+ edit: (value: string, index: number, previous: string) => void;
124
137
  reject: (value: string) => void;
125
138
  clear: () => void;
126
139
  change: (value: string[]) => void;
@@ -140,6 +153,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
140
153
  max: undefined;
141
154
  addOnBlur: boolean;
142
155
  clearInputOnAdd: boolean;
156
+ editable: boolean;
143
157
  beforeAdd: undefined;
144
158
  clearable: undefined;
145
159
  loading: boolean;
@@ -160,6 +174,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
160
174
  onFocus?: ((event: FocusEvent) => any) | undefined;
161
175
  onRemove?: ((value: string, index: number) => any) | undefined;
162
176
  "onUpdate:modelValue"?: ((value: string[]) => any) | undefined;
177
+ onEdit?: ((value: string, index: number, previous: string) => any) | undefined;
163
178
  onReject?: ((value: string) => any) | undefined;
164
179
  }>, {
165
180
  disabled: boolean;
@@ -184,6 +199,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
184
199
  addOnBlur: boolean;
185
200
  clearInputOnAdd: boolean;
186
201
  beforeAdd: (tag: string) => boolean | Promise<boolean>;
202
+ editable: boolean;
187
203
  tagClosable: boolean;
188
204
  removeTagLabel: string;
189
205
  clearAllLabel: string;
@@ -28,3 +28,14 @@ export declare function grInputTagWrapperClass(options: {
28
28
  disabled: boolean;
29
29
  }): string;
30
30
  export declare function grInputTagInputClass(size: GrInputTagSize): string;
31
+ /**
32
+ * Поле правки тега — внутри чипа, вместо его содержимого.
33
+ *
34
+ * Ни фона, ни рамки: их рисует сам чип, и второй набор внутри выглядел бы
35
+ * полем в поле. А вот кольцо фокуса нужно: без него чип в правке неотличим от
36
+ * обычного — единственным признаком остаётся каретка, и режим не виден.
37
+ *
38
+ * Ширину задаёт нативный `size` по длине черновика: в режиме правки у чипа нет
39
+ * содержимого, от которого он взял бы ширину.
40
+ */
41
+ export declare const tagEditInputClass = "min-w-[2ch] bg-transparent border-none p-0 text-inherit [font:inherit] rounded-[var(--gr-radius-sm)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--gr-ring)]";
@@ -11,8 +11,19 @@ export interface GrKbdProps {
11
11
  /**
12
12
  * Сочетание: строкой (`"mod+shift+K"`) или набором токенов
13
13
  * (`['mod', 'K']`). Токен `mod` — Cmd на macOS, Ctrl на остальных.
14
+ *
15
+ * Пробел в строке делит её на шаги: `"g i"` рисуется как «G затем I», а
16
+ * `"mod+k p"` — как «⌘K затем P». Форма массива остаётся плоским аккордом:
17
+ * что там шаг, а что клавиша, массив не различает.
14
18
  */
15
19
  keys?: string | string[];
20
+ /**
21
+ * Идентификатор записи в реестре (`granularityHotkeysPlugin`). Сочетание
22
+ * берётся оттуда, поэтому подсказка не может разойтись с привязкой. Сильнее
23
+ * `keys`: если задан и он, побеждает реестр — иначе два источника спорили бы
24
+ * молча.
25
+ */
26
+ hotkey?: string;
16
27
  /**
17
28
  * Разделитель между клавишами. Не задан — авто: в общей плашке символы
18
29
  * склеиваются (`⌘K`), а слова разделяются плюсом (`Ctrl+K`); у `split` это
@@ -39,12 +50,14 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
39
50
  size: undefined;
40
51
  variant: string;
41
52
  keys: undefined;
53
+ hotkey: undefined;
42
54
  separator: undefined;
43
55
  platform: string;
44
56
  }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<GrKbdProps>, {
45
57
  size: undefined;
46
58
  variant: string;
47
59
  keys: undefined;
60
+ hotkey: undefined;
48
61
  separator: undefined;
49
62
  platform: string;
50
63
  }>>> & Readonly<{}>, {
@@ -53,6 +66,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
53
66
  size: GrKbdSize;
54
67
  separator: string;
55
68
  platform: GrKbdPlatform;
69
+ hotkey: string;
56
70
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
57
71
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
58
72
  declare const _default: typeof __VLS_export;
@@ -1,4 +1,5 @@
1
1
  import { type GrComponentSize } from '../GrConfigProvider/context';
2
+ import type { GrNavbarHeadingLevel } from './grNavbarStyles';
2
3
  /**
3
4
  * GrNavbar — верхняя панель приложения (header) с тремя зонами: слева заголовок
4
5
  * и кнопка меню, по центру — свободная зона (поиск, хлебные крошки), справа —
@@ -10,6 +11,20 @@ import { type GrComponentSize } from '../GrConfigProvider/context';
10
11
  export interface GrNavbarProps {
11
12
  /** Заголовок строкой. Слот `#title` сильнее и позволяет обойтись без пропа. */
12
13
  title?: string;
14
+ /**
15
+ * Сделать заголовок настоящим `h1`…`h6`.
16
+ *
17
+ * По умолчанию заголовок — `div`, и это верно для большинства шапок: логотип
18
+ * и название приложения заголовками не являются, и `h1` на них исказил бы
19
+ * структуру страницы. Но шапка раздела админки или имя документа — заголовок
20
+ * и есть, а обойти такую страницу по структуре иначе нечем.
21
+ *
22
+ * Через `GrConfigProvider` не настраивается намеренно: «заголовка нет» там не
23
+ * выразить (`useGrComponentProp` требует не-nullable фолбэк), то есть общим
24
+ * дефолтом стал бы какой-то уровень. Да и шапка у оболочки одна — глобальный
25
+ * дефолт настраивал бы единственное место вызова.
26
+ */
27
+ headingLevel?: GrNavbarHeadingLevel;
13
28
  showMenuButton?: boolean;
14
29
  /**
15
30
  * Ступень кнопки меню — и только её: остальное в шапке принадлежит
@@ -44,6 +59,7 @@ type __VLS_Slots = {
44
59
  };
45
60
  declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<GrNavbarProps>, {
46
61
  title: undefined;
62
+ headingLevel: undefined;
47
63
  showMenuButton: boolean;
48
64
  size: undefined;
49
65
  menuButtonClass: string;
@@ -52,6 +68,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
52
68
  menu: () => void;
53
69
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<GrNavbarProps>, {
54
70
  title: undefined;
71
+ headingLevel: undefined;
55
72
  showMenuButton: boolean;
56
73
  size: undefined;
57
74
  menuButtonClass: string;
@@ -62,6 +79,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
62
79
  sticky: boolean;
63
80
  title: string;
64
81
  size: GrComponentSize;
82
+ headingLevel: GrNavbarHeadingLevel;
65
83
  showMenuButton: boolean;
66
84
  menuButtonClass: string;
67
85
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;