@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
@@ -48,9 +48,21 @@ export interface GrTextareaEmits {
48
48
  (e: 'focus', event: FocusEvent): void;
49
49
  (e: 'blur', event: FocusEvent): void;
50
50
  }
51
+ type __VLS_Slots = {
52
+ /**
53
+ * Своя формулировка счётчика символов вместо `12 / 60` — «осталось 48»,
54
+ * «почти предел» и что угодно ещё. Встроенных счётчиков два, но оба
55
+ * фиксированы по форме, и вторая готовая формулировка первой не заменяет.
56
+ */
57
+ count?: (props: {
58
+ length: number;
59
+ maxlength?: number;
60
+ remaining?: number;
61
+ }) => any;
62
+ };
51
63
  declare function focus(): void;
52
64
  declare function blur(): void;
53
- declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<GrTextareaProps>, {
65
+ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<GrTextareaProps>, {
54
66
  placeholder: undefined;
55
67
  autocomplete: undefined;
56
68
  disabled: boolean;
@@ -123,6 +135,7 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
123
135
  rows: number;
124
136
  autosize: boolean;
125
137
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
138
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
126
139
  declare const _default: typeof __VLS_export;
127
140
  export default _default;
128
141
  type __VLS_TypePropsToOption<T> = {
@@ -138,6 +151,11 @@ type __VLS_WithDefaults<P, D> = {
138
151
  default: D[K];
139
152
  }> : P[K];
140
153
  };
154
+ type __VLS_WithSlots<T, S> = T & {
155
+ new (): {
156
+ $slots: S;
157
+ };
158
+ };
141
159
  type __VLS_PrettifyLocal<T> = (T extends any ? {
142
160
  [K in keyof T]: T[K];
143
161
  } : {
@@ -25,6 +25,15 @@ export interface GrToasterProps {
25
25
  * и `Backspace` на сфокусированном тосте — остаётся и при выключенном жесте.
26
26
  */
27
27
  swipeDismiss?: boolean;
28
+ /**
29
+ * Со скольких видимых тостов стек схлопывается в стопку: колонка занимает
30
+ * место одного тоста, а остальные выглядывают из-под передней. Разворачивается
31
+ * по наведению и по фокусу. `false` — не схлопывать никогда.
32
+ *
33
+ * Порог, а не переключатель: пока тостов мало, колонка читается лучше стопки,
34
+ * и менять её незачем.
35
+ */
36
+ collapse?: number | false;
28
37
  }
29
38
  /**
30
39
  * Слот `actions` полностью заменяет дефолтные action-кнопки тоста. Получает сам
@@ -50,6 +59,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
50
59
  width: undefined;
51
60
  focusHotkey: string;
52
61
  swipeDismiss: boolean;
62
+ collapse: number;
53
63
  }>>, {
54
64
  focus: typeof focus;
55
65
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<GrToasterProps>, {
@@ -60,9 +70,11 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
60
70
  width: undefined;
61
71
  focusHotkey: string;
62
72
  swipeDismiss: boolean;
73
+ collapse: number;
63
74
  }>>> & Readonly<{}>, {
64
75
  placement: GrToasterPlacement;
65
76
  width: string | number;
77
+ collapse: number | false;
66
78
  dismissLabel: string;
67
79
  regionLabel: string;
68
80
  maxVisible: number;
@@ -27,3 +27,29 @@ export declare const SWIPE_FLY_OUT_PX = 600;
27
27
  * мгновенным исчезновением.
28
28
  */
29
29
  export declare function swipeOpacity(offset: number, threshold: number): number;
30
+ /**
31
+ * Куда растёт свёрнутая стопка: от своего угла вглубь экрана. У верхних углов
32
+ * карточки уходят вниз, у нижних — вверх. Иначе стопка вылезала бы за край.
33
+ */
34
+ export declare const STACK_DIRECTION: Record<GrToasterPlacement, 1 | -1>;
35
+ /** Зазор между тостами в развёрнутой колонке; парен классу `gap-3` в шаблоне. */
36
+ export declare const STACK_GAP_PX = 12;
37
+ /**
38
+ * Сколько карточек выглядывает из-под передней. Дальние держатся в DOM ради
39
+ * скринридера, но не показываются: четвёртый край в стопке уже не читается как
40
+ * глубина, а выглядит грязью у кромки.
41
+ */
42
+ export declare const STACK_PEEK_DEPTH = 2;
43
+ /**
44
+ * Насколько глубоко карточка лежит в стопке: `0` — передняя.
45
+ *
46
+ * Передняя всегда ближайшая к своему углу, а колонка отрисовывается сверху
47
+ * вниз: у верхних углов край держит первый тост, у нижних — последний.
48
+ */
49
+ export declare function stackDepth(index: number, count: number, placement: GrToasterPlacement): number;
50
+ /**
51
+ * Трансформ свёрнутой карточки. Считается в CSS, а не в JS, чтобы шаг стопки
52
+ * оставался настраиваемым темой: значения приходят из токенов, а арифметику
53
+ * делает `calc`.
54
+ */
55
+ export declare function collapsedTransform(depth: number, placement: GrToasterPlacement): string;
@@ -20,6 +20,22 @@ export interface GrTooltipProps {
20
20
  disabled?: boolean;
21
21
  /** Управляемая видимость. Без неё компонент ведёт видимость сам. */
22
22
  open?: boolean;
23
+ /**
24
+ * Обёртка занимает ширину родителя вместо ширины содержимого.
25
+ *
26
+ * Нужно там, где триггер обязан тянуться: пункт списка, строка меню, ячейка.
27
+ * `inline-flex` по умолчанию схлопнул бы такой триггер по содержимому, и
28
+ * подсветка с кольцом фокуса сжались бы вместе с ним.
29
+ */
30
+ block?: boolean;
31
+ /**
32
+ * Вешать ли `aria-describedby` на триггер. По умолчанию да.
33
+ *
34
+ * `false` — когда подсказка **дословно повторяет** доступное имя триггера:
35
+ * тогда это не описание, а шум, и диктор произносит подпись дважды. Так
36
+ * устроен свёрнутый `GrSidebarItem`: имя у него уже в `aria-label`.
37
+ */
38
+ describeTrigger?: boolean;
23
39
  }
24
40
  export interface GrTooltipEmits {
25
41
  (e: 'update:open', value: boolean): void;
@@ -40,6 +56,8 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
40
56
  closeDelay: number;
41
57
  disabled: boolean;
42
58
  open: undefined;
59
+ block: boolean;
60
+ describeTrigger: boolean;
43
61
  }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
44
62
  "update:open": (value: boolean) => void;
45
63
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<GrTooltipProps>, {
@@ -52,6 +70,8 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
52
70
  closeDelay: number;
53
71
  disabled: boolean;
54
72
  open: undefined;
73
+ block: boolean;
74
+ describeTrigger: boolean;
55
75
  }>>> & Readonly<{
56
76
  "onUpdate:open"?: ((value: boolean) => any) | undefined;
57
77
  }>, {
@@ -59,11 +79,13 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
59
79
  disabled: boolean;
60
80
  text: string;
61
81
  size: GrTooltipSize;
82
+ block: boolean;
62
83
  open: boolean;
63
84
  offsetPx: number;
64
85
  openDelay: number;
65
86
  closeDelay: number;
66
87
  iconColor: string;
88
+ describeTrigger: boolean;
67
89
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
68
90
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
69
91
  declare const _default: typeof __VLS_export;
@@ -19,12 +19,31 @@ export interface GrTransferProps<T extends Record<string, unknown> = Record<stri
19
19
  searchable?: boolean;
20
20
  /** Свой матчер: встроенный ищет по `itemLabel`, а строка может показывать больше. */
21
21
  filter?: (item: T, query: string) => boolean;
22
+ /**
23
+ * Каталог в пути: пустая панель говорит «ищем», а не «ничего не найдено».
24
+ *
25
+ * Проп общий на обе панели, а не свой у каждой: `items` — один каталог, и обе
26
+ * панели его виды, так что пока он едет, пусты обе. Подгрузку запускает
27
+ * потребитель по событию `search`, поэтому и флаг держит он.
28
+ */
29
+ loading?: boolean;
30
+ /** Текст индикатора. Не задан — из локали (`gr.transfer.loading`). */
31
+ loadingText?: string;
22
32
  /** Правую панель можно переставлять. */
23
33
  sortable?: boolean;
24
34
  /** Перетаскивание строк указателем. Усиление поверх кнопок, а не контракт. */
25
35
  draggable?: boolean;
26
36
  /** Высота панелей: обе одинаковы и прокручиваются внутри себя. */
27
37
  maxHeight?: number | string;
38
+ /**
39
+ * Держать в DOM только окно строк вокруг вьюпорта. Нужен `maxHeight`: без
40
+ * него панель не прокручивается, окна нет и виртуализировать нечего.
41
+ *
42
+ * Перенос от этого не страдает — он идёт по модели, а не по разметке. А вот
43
+ * перетаскивание указателем ограничено отрисованными строками: навести
44
+ * указатель на то, чего нет на экране, всё равно нечем.
45
+ */
46
+ virtual?: boolean;
28
47
  size?: GrComponentSize;
29
48
  disabled?: boolean;
30
49
  readonly?: boolean;
@@ -89,6 +108,10 @@ declare const __VLS_export: <TItem extends Record<string, unknown> = Record<stri
89
108
  side: GrTransferSide;
90
109
  filtered: boolean;
91
110
  }) => unknown;
111
+ /** Панель под загрузкой — вместо текста «ищем». */
112
+ loading?: (props: {
113
+ side: GrTransferSide;
114
+ }) => unknown;
92
115
  };
93
116
  emit: GrTransferEmits;
94
117
  }>) => import("vue").VNode & {
@@ -29,7 +29,7 @@ export declare function grTreeSelectClass(options: {
29
29
  invalid: boolean;
30
30
  disabled?: boolean;
31
31
  }): string;
32
- export declare const grTreeSelectPanelClass = "rounded-[var(--gr-radius-xl)] border border-[var(--gr-brd)] bg-[var(--gr-popover)] text-[var(--gr-popover-fg)] shadow-[var(--gr-shadow-2)] overflow-hidden";
32
+ export declare const grTreeSelectPanelClass = "rounded-[var(--gr-radius-xl)] border border-[var(--gr-brd)] bg-[var(--gr-popover)] text-[var(--gr-popover-fg)] shadow-[var(--gr-shadow-2)] flex flex-col max-h-[var(--gr-floating-available-height,100vh)] overflow-hidden";
33
33
  /**
34
34
  * Строка состояния панели: загрузка и «нет данных». По центру и с двойным
35
35
  * воздухом — тот же язык, что у `GrSelect`, `GrAutocomplete` и палитры команд.
@@ -1,6 +1,7 @@
1
1
  import type { InputHTMLAttributes } from 'vue';
2
2
  import type { GrInputSize } from '../GrInput/GrInput.vue';
3
3
  import type { GrTreeFilterNodeMethod, GrTreeKey, GrTreePropsMap } from '../GrTree';
4
+ import type { GrBadgeRadius, GrBadgeSize, GrBadgeTone } from '../GrBadge/grBadgeStyles';
4
5
  import type { GrTreeSelectState } from './grTreeSelectStyles';
5
6
  export type GrTreeSelectModelValue = GrTreeKey | GrTreeKey[] | null;
6
7
  export type GrTreeSelectValueDisplay = 'label' | 'path';
@@ -39,6 +40,25 @@ export interface GrTreeSelectProps<T extends object = any> {
39
40
  showCheckbox?: boolean;
40
41
  /** Отвязать родителей от детей: отметка перестаёт распространяться каскадом. */
41
42
  checkStrictly?: boolean;
43
+ /**
44
+ * Чипы выбранных узлов в триггере вместо строки «a, b, c». Работает только
45
+ * вместе с `multiple`: у одиночного выбора чип был бы плашкой на одно значение.
46
+ */
47
+ tags?: boolean;
48
+ /**
49
+ * Сколько чипов показать до сворачивания остатка в «+N». Без него растёт весь
50
+ * набор, а высота триггера за ним не идёт — лишние чипы уходят за край.
51
+ */
52
+ maxTagCount?: number;
53
+ /**
54
+ * Вид чипов. Чип — это `GrBadge`: своя плашка на светлой теме почти не
55
+ * отличалась бы от фона поля. Имена и шкалы те же, что у `GrSelect`, — переходя
56
+ * с одного компонента на другой, потребитель не переучивается.
57
+ */
58
+ tagTone?: GrBadgeTone;
59
+ tagDark?: boolean;
60
+ tagSize?: GrBadgeSize;
61
+ tagRadius?: GrBadgeRadius;
42
62
  clearable?: boolean;
43
63
  /**
44
64
  * Контролируемое состояние панели (`v-model:open`). Без пропа панель ведёт
@@ -10,19 +10,13 @@
10
10
  * а палитра в закрытом состоянии не рендерит ничего. Поэтому здесь — свой
11
11
  * матчер на `window`, с тем же синтаксисом комбинаций плюс токен `mod`.
12
12
  */
13
+ import type { ParsedHotkeyCombo } from '../../internal/keyboard';
13
14
  import { type HotkeyKeyView } from './hotkeyTokens';
14
15
  export { isAppleDevice } from '../../internal/keyboard';
15
16
  export { findKbdToken, GR_KBD_TOKENS } from './hotkeyTokens';
16
17
  export type { GrKbdKeyName, GrKbdTokenGroup, GrKbdTokenSpec, HotkeyKeyView } from './hotkeyTokens';
17
- export type ParsedCommandHotkey = {
18
- key: string;
19
- ctrl: boolean;
20
- meta: boolean;
21
- alt: boolean;
22
- shift: boolean;
23
- /** `mod` — Cmd на macOS, Ctrl на остальных платформах. */
24
- mod: boolean;
25
- };
18
+ /** Разбор сочетания общий на пакет, см. `internal/keyboard`. */
19
+ export type ParsedCommandHotkey = ParsedHotkeyCombo;
26
20
  export declare function parseCommandHotkey(combo: string): ParsedCommandHotkey | null;
27
21
  export declare function matchesCommandHotkey(event: KeyboardEvent, hotkey: ParsedCommandHotkey, apple?: boolean): boolean;
28
22
  /** Человекочитаемые клавиши для подсказки в поле ввода (`⌘` / `Ctrl`). */
@@ -36,3 +30,8 @@ export declare function formatHotkeyToken(token: string, apple: boolean): Hotkey
36
30
  export declare function formatHotkeyTokens(tokens: readonly string[], apple: boolean): HotkeyKeyView[];
37
31
  /** Комбинация строкой (`mod+shift+K`) — в набор токенов в порядке показа. */
38
32
  export declare function splitHotkeyCombo(combo: string): string[];
33
+ /**
34
+ * Последовательность строкой (`g i`, `mod+k p`) — в шаги, каждый набором
35
+ * токенов. Аккорд даёт один шаг, поэтому отдельного пути для него нет.
36
+ */
37
+ export declare function splitHotkeySequence(value: string): string[][];
@@ -0,0 +1,100 @@
1
+ import type { ComputedRef, Ref } from 'vue';
2
+ /**
3
+ * Панель списка опций с группами — общая машинерия `GrSelect` и `GrAutocomplete`.
4
+ *
5
+ * Модуль ничего не знает об опции: ему нужны только её место в наборе и
6
+ * принадлежность группе. Поэтому он обобщён по типу опции, а не по типу
7
+ * значения — иначе у двух компонентов с разными шкалами значений получилось бы
8
+ * две копии одного алгоритма, и разошлись бы они молча.
9
+ *
10
+ * Разделение ответственности: **что показывать** решает компонент (у каждого
11
+ * своя фильтрация — локальный матчер, серверный ответ, «добавить своё»), а
12
+ * **как это разложить** — здесь.
13
+ */
14
+ /** Элемент панели: заголовок группы либо опция. Плоский, в порядке отрисовки. */
15
+ export type OptionPanelItem<TOption> = {
16
+ kind: 'group';
17
+ label: string;
18
+ key: string;
19
+ }
20
+ /** `groupKey` связывает опцию с заголовком её группы для скринридера. */
21
+ | {
22
+ kind: 'option';
23
+ option: TOption;
24
+ key: string;
25
+ groupKey?: string;
26
+ };
27
+ export type OptionPanelOptionRow<TOption> = {
28
+ option: TOption;
29
+ key: string;
30
+ /** Позиция в плоском наборе: из неё строится `id`, поэтому она не от значения. */
31
+ index: number;
32
+ };
33
+ export type OptionPanelGroupRow<TOption> = {
34
+ kind: 'group';
35
+ label: string;
36
+ key: string;
37
+ options: OptionPanelOptionRow<TOption>[];
38
+ /**
39
+ * Есть ли в этой отрисовке видимый заголовок. При виртуализации окно может
40
+ * начаться серединой группы: обёртка нужна всё равно, а заголовка нет —
41
+ * имя тогда идёт в `aria-label`.
42
+ */
43
+ labelVisible?: boolean;
44
+ /** Позиция заголовка в наборе — по ней его замеряет виртуализатор. */
45
+ labelIndex?: number;
46
+ };
47
+ export type OptionPanelRow<TOption> = OptionPanelGroupRow<TOption> | ({
48
+ kind: 'option';
49
+ } & OptionPanelOptionRow<TOption>);
50
+ /**
51
+ * Плоский набор → строки для рендера: заголовок группы не сосед опций, а их
52
+ * контейнер.
53
+ *
54
+ * Прямыми потомками `role="listbox"` обязаны быть только опции, иначе диктор
55
+ * считает заголовок таким же элементом выбора. Имя группе даёт `aria-labelledby`
56
+ * на её заголовке.
57
+ *
58
+ * `windowed` описывает срез: при виртуализации окно может начаться серединой
59
+ * группы, и такая группа открывается **без** видимого заголовка — иначе её
60
+ * опции оказались бы прямыми детьми listbox'а и потеряли имя набора.
61
+ */
62
+ export declare function buildOptionPanelRows<TOption>(items: OptionPanelItem<TOption>[], options?: {
63
+ /** Смещение индексов, если срез начат не с нуля. */
64
+ offset?: number;
65
+ windowed?: boolean;
66
+ /** Метки групп по ключу — нужны группе, чей заголовок остался выше окна. */
67
+ groupLabels?: Map<string, string>;
68
+ }): OptionPanelRow<TOption>[];
69
+ export interface UseOptionPanelVirtualizationOptions<TOption> {
70
+ panelItems: ComputedRef<OptionPanelItem<TOption>[]>;
71
+ panelRows: ComputedRef<OptionPanelRow<TOption>[]>;
72
+ /** Есть ли перед опциями строка «добавить своё»: она сдвигает весь набор. */
73
+ hasLeadingRow: ComputedRef<boolean>;
74
+ /** Контейнер списка: по нему считается окно и замеряются строки. */
75
+ listboxEl: Ref<HTMLElement | null>;
76
+ enabled: () => boolean;
77
+ maxHeight: () => number;
78
+ }
79
+ export interface OptionPanelVirtualization<TOption> {
80
+ virtualEnabled: ComputedRef<boolean>;
81
+ /** Сдвиг набора: ведущая строка стоит перед опциями. */
82
+ addOffset: ComputedRef<number>;
83
+ scrollToIndex: (index: number) => void;
84
+ /** Замер строки: оценка высоты уточняется по реальному узлу. */
85
+ measure: (index: number, el: Element | null) => void;
86
+ /** ARIA набора для опции; вне виртуализации набор виден по DOM. */
87
+ optionSetProps: (index: number) => Record<string, number> | undefined;
88
+ leadingRowSetProps: ComputedRef<Record<string, number> | undefined>;
89
+ showLeadingRow: ComputedRef<boolean>;
90
+ renderedPanelRows: ComputedRef<OptionPanelRow<TOption>[]>;
91
+ listboxStyle: ComputedRef<Record<string, string>>;
92
+ }
93
+ /**
94
+ * Виртуализация панели с группами.
95
+ *
96
+ * Набор — `[ведущая строка?] + panelItems`, то есть заголовки групп идут в нём
97
+ * наравне с опциями: на экране они занимают такую же строку. Вложенную
98
+ * структуру групп рендер пересобирает уже из окна.
99
+ */
100
+ export declare function useOptionPanelVirtualization<TOption>(options: UseOptionPanelVirtualizationOptions<TOption>): OptionPanelVirtualization<TOption>;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Панель списка, ужимающаяся до места, оставшегося до края вьюпорта.
3
+ *
4
+ * Слой позиционирования публикует замер в `--gr-floating-available-height`
5
+ * (`composables/useFloating.ts`), и панель берёт его потолком: собственный
6
+ * `dropdownMaxHeight` на коротком экране больше доступного места, а сжать
7
+ * панель не умеют ни `flip`, ни `shift` — низ списка просто уходит за край.
8
+ *
9
+ * Колонка обязательна вместе с потолком. Панель держит не только список, но и
10
+ * поле поиска, строку «добавить своё» и строки состояний; без `flex-col` и
11
+ * `min-h-0` у списка ужимался бы не он, а панель целиком — то есть вместо
12
+ * одного скролла вышло бы два.
13
+ *
14
+ * Модуль отдельный от `overlayPanelSurface` намеренно: ту поверхность берёт и
15
+ * `GrPopover` со своим потолком, а класс из общего модуля обязан объявить в
16
+ * safelist **каждый** импортёр, даже не пользующийся им.
17
+ */
18
+ export declare const overlayListPanelClass = "flex flex-col max-h-[var(--gr-floating-available-height,100vh)]";
@@ -0,0 +1,43 @@
1
+ import type { App, InjectionKey } from 'vue';
2
+ /**
3
+ * Реестр горячих клавиш приложения: один источник «id → сочетание + подпись».
4
+ *
5
+ * Без него сочетание пишется дважды — в привязке (`v-hotkey`) и в подсказке
6
+ * (`GrKbd`), — и расходится молча: подсказка обещает одно, а срабатывает другое,
7
+ * и заметить это можно только руками.
8
+ *
9
+ * Реестр объявляет **умолчания приложения**. Пользовательские переопределения —
10
+ * состояние приложения, и жить им здесь незачем: кит про них ничего не знает.
11
+ */
12
+ export interface GrHotkeyDefinition {
13
+ /**
14
+ * Сочетание в общем синтаксисе пакета: `'mod+k'` — аккорд, `'g i'` —
15
+ * «G, затем I». Разбор — `parseHotkeySequence`.
16
+ */
17
+ keys: string;
18
+ /** Человекочитаемое имя действия: для подсказок и списка сочетаний. */
19
+ label?: string;
20
+ }
21
+ export type GrHotkeyRegistry = Record<string, GrHotkeyDefinition>;
22
+ interface HotkeysState {
23
+ hotkeys: GrHotkeyRegistry;
24
+ }
25
+ export interface GranularityHotkeysPluginOptions {
26
+ hotkeys?: GrHotkeyRegistry;
27
+ }
28
+ /** Ключ provide/inject для app-scoped реестра (устанавливает плагин ниже). */
29
+ export declare const GRANULARITY_HOTKEYS_STATE: InjectionKey<HotkeysState>;
30
+ export declare const granularityHotkeysPlugin: {
31
+ install(app: App, options?: GranularityHotkeysPluginOptions): void;
32
+ };
33
+ /** Сброс модульного реестра и dev-предупреждения. Внутреннее API — нужно тестам. */
34
+ export declare function resetHotkeysRegistry(): void;
35
+ export declare function useHotkeys(): {
36
+ hotkeys: import("vue").ComputedRef<GrHotkeyRegistry>;
37
+ get: (id: string) => GrHotkeyDefinition | undefined;
38
+ register: (id: string, definition: GrHotkeyDefinition) => void;
39
+ byHotkeyId: (map: Record<string, unknown>) => Record<string, any>;
40
+ keysOf: (id: string) => string | undefined;
41
+ labelOf: (id: string) => string | undefined;
42
+ };
43
+ export {};
@@ -61,6 +61,7 @@ export declare const granularityComponentConfigs: {
61
61
  GrModal: GranularComponentDescriptor<"GrModal">;
62
62
  GrNavbar: GranularComponentDescriptor<"GrNavbar">;
63
63
  GrNumberInput: GranularComponentDescriptor<"GrNumberInput">;
64
+ GrOtpInput: GranularComponentDescriptor<"GrOtpInput">;
64
65
  GrPagination: GranularComponentDescriptor<"GrPagination">;
65
66
  GrPopover: GranularComponentDescriptor<"GrPopover">;
66
67
  GrProgressBar: GranularComponentDescriptor<"GrProgressBar">;
@@ -84,6 +85,7 @@ export declare const granularityComponentConfigs: {
84
85
  GrTable: GranularComponentDescriptor<"GrTable">;
85
86
  GrTabPanels: GranularComponentDescriptor<"GrTabPanels">;
86
87
  GrTabs: GranularComponentDescriptor<"GrTabs">;
88
+ GrTabsWithPanels: GranularComponentDescriptor<"GrTabsWithPanels">;
87
89
  GrTextarea: GranularComponentDescriptor<"GrTextarea">;
88
90
  GrTimeline: GranularComponentDescriptor<"GrTimeline">;
89
91
  GrToaster: GranularComponentDescriptor<"GrToaster">;
@@ -26,6 +26,7 @@ export declare const en: {
26
26
  reordered: string;
27
27
  reorderFiltered: string;
28
28
  cancelled: string;
29
+ loading: string;
29
30
  };
30
31
  carousel: {
31
32
  roledescription: string;
@@ -64,6 +65,7 @@ export declare const en: {
64
65
  filterPlaceholder: string;
65
66
  empty: string;
66
67
  loading: string;
68
+ removeTag: string;
67
69
  };
68
70
  badgeWrap: {
69
71
  count: string;
@@ -113,6 +115,13 @@ export declare const en: {
113
115
  detailExpanded: string;
114
116
  detailCollapsed: string;
115
117
  detailReady: string;
118
+ columnMenu: string;
119
+ pinLeft: string;
120
+ pinRight: string;
121
+ unpin: string;
122
+ columnPinnedLeft: string;
123
+ columnPinnedRight: string;
124
+ columnUnpinned: string;
116
125
  };
117
126
  breadcrumbs: {
118
127
  label: string;
@@ -154,6 +163,8 @@ export declare const en: {
154
163
  };
155
164
  switch: {
156
165
  loading: string;
166
+ on: string;
167
+ off: string;
157
168
  };
158
169
  slider: {
159
170
  min: string;
@@ -239,6 +250,8 @@ export declare const en: {
239
250
  removed: string;
240
251
  cleared: string;
241
252
  limitReached: string;
253
+ editTag: string;
254
+ edited: string;
242
255
  };
243
256
  fileUpload: {
244
257
  placeholder: string;
@@ -363,6 +376,8 @@ export declare const en: {
363
376
  hexLabel: string;
364
377
  presetsLabel: string;
365
378
  swatchLabel: string;
379
+ area: string;
380
+ eyedropper: string;
366
381
  };
367
382
  collapse: {
368
383
  empty: string;
@@ -389,6 +404,7 @@ export declare const en: {
389
404
  };
390
405
  emptyState: {
391
406
  title: string;
407
+ searchTitle: string;
392
408
  };
393
409
  sortable: {
394
410
  label: string;
@@ -429,6 +445,7 @@ export declare const en: {
429
445
  reordered: string;
430
446
  reorderFiltered: string;
431
447
  cancelled: string;
448
+ loading: string;
432
449
  };
433
450
  carousel: {
434
451
  roledescription: string;
@@ -467,6 +484,7 @@ export declare const en: {
467
484
  filterPlaceholder: string;
468
485
  empty: string;
469
486
  loading: string;
487
+ removeTag: string;
470
488
  };
471
489
  badgeWrap: {
472
490
  count: string;
@@ -516,6 +534,13 @@ export declare const en: {
516
534
  detailExpanded: string;
517
535
  detailCollapsed: string;
518
536
  detailReady: string;
537
+ columnMenu: string;
538
+ pinLeft: string;
539
+ pinRight: string;
540
+ unpin: string;
541
+ columnPinnedLeft: string;
542
+ columnPinnedRight: string;
543
+ columnUnpinned: string;
519
544
  };
520
545
  breadcrumbs: {
521
546
  label: string;
@@ -557,6 +582,8 @@ export declare const en: {
557
582
  };
558
583
  switch: {
559
584
  loading: string;
585
+ on: string;
586
+ off: string;
560
587
  };
561
588
  slider: {
562
589
  min: string;
@@ -642,6 +669,8 @@ export declare const en: {
642
669
  removed: string;
643
670
  cleared: string;
644
671
  limitReached: string;
672
+ editTag: string;
673
+ edited: string;
645
674
  };
646
675
  fileUpload: {
647
676
  placeholder: string;
@@ -766,6 +795,8 @@ export declare const en: {
766
795
  hexLabel: string;
767
796
  presetsLabel: string;
768
797
  swatchLabel: string;
798
+ area: string;
799
+ eyedropper: string;
769
800
  };
770
801
  collapse: {
771
802
  empty: string;
@@ -792,6 +823,7 @@ export declare const en: {
792
823
  };
793
824
  emptyState: {
794
825
  title: string;
826
+ searchTitle: string;
795
827
  };
796
828
  sortable: {
797
829
  label: string;