@feugene/granularity 0.49.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 (368) 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-DIDz_E5m.js → config-B34mkd53.js} +66 -1
  7. package/dist/chunks/config-B34mkd53.js.map +1 -0
  8. package/dist/chunks/{config-B5SBUa6u.js → config-B7qZqiUB.js} +28 -1
  9. package/dist/chunks/config-B7qZqiUB.js.map +1 -0
  10. package/dist/chunks/config-BBrPUEye.js +8 -0
  11. package/dist/chunks/config-BBrPUEye.js.map +1 -0
  12. package/dist/chunks/{config-CT4lP6S4.js → config-BOCzHqWh.js} +2 -2
  13. package/dist/chunks/{config-CT4lP6S4.js.map → config-BOCzHqWh.js.map} +1 -1
  14. package/dist/chunks/{config-iemgzS4x.js → config-BP1ktzwh.js} +2 -24
  15. package/dist/chunks/config-BP1ktzwh.js.map +1 -0
  16. package/dist/chunks/config-BTxmdRzT.js +28 -0
  17. package/dist/chunks/config-BTxmdRzT.js.map +1 -0
  18. package/dist/chunks/{config-CjWOTgLL.js → config-Bk52xd5l.js} +12 -5
  19. package/dist/chunks/config-Bk52xd5l.js.map +1 -0
  20. package/dist/chunks/{config-D3HOuHDe.js → config-C3SqBqSQ.js} +3 -1
  21. package/dist/chunks/config-C3SqBqSQ.js.map +1 -0
  22. package/dist/chunks/{config-2ZHRsdOc.js → config-C3uqd-sW.js} +1 -1
  23. package/dist/chunks/config-C3uqd-sW.js.map +1 -0
  24. package/dist/chunks/{config-BXRmsn3t.js → config-CPhcZzHi.js} +72 -10
  25. package/dist/chunks/config-CPhcZzHi.js.map +1 -0
  26. package/dist/chunks/config-CWtfxkM9.js.map +1 -1
  27. package/dist/chunks/{config--t2dxj0t.js → config-CmLTCmY9.js} +2 -2
  28. package/dist/chunks/{config--t2dxj0t.js.map → config-CmLTCmY9.js.map} +1 -1
  29. package/dist/chunks/{config-BAse0laT.js → config-CvtqB4ki.js} +8 -3
  30. package/dist/chunks/config-CvtqB4ki.js.map +1 -0
  31. package/dist/chunks/{config-BcXX7S7B.js → config-D-JgqV0J.js} +5 -1
  32. package/dist/chunks/{config-BcXX7S7B.js.map → config-D-JgqV0J.js.map} +1 -1
  33. package/dist/chunks/{config-BHLMTJaR.js → config-D1oVht-E.js} +8 -3
  34. package/dist/chunks/config-D1oVht-E.js.map +1 -0
  35. package/dist/chunks/{config-B42iJ48O.js → config-DG41PD9i.js} +13 -1
  36. package/dist/chunks/config-DG41PD9i.js.map +1 -0
  37. package/dist/chunks/{config-Bs1HwUcx.js → config-DPJ3jtiB.js} +12 -2
  38. package/dist/chunks/config-DPJ3jtiB.js.map +1 -0
  39. package/dist/chunks/{config-tNqtapcT.js → config-DpqjlCfB.js} +2 -2
  40. package/dist/chunks/{config-tNqtapcT.js.map → config-DpqjlCfB.js.map} +1 -1
  41. package/dist/chunks/{config-DNDgp9bB.js → config-DpzFoSIh.js} +64 -2
  42. package/dist/chunks/config-DpzFoSIh.js.map +1 -0
  43. package/dist/chunks/config-SPugeaHT.js +37 -0
  44. package/dist/chunks/config-SPugeaHT.js.map +1 -0
  45. package/dist/chunks/{en-CsQUoBS2.js → en-mIFywnV2.js} +22 -6
  46. package/dist/chunks/en-mIFywnV2.js.map +1 -0
  47. package/dist/chunks/{es-9nbkPvdA.js → es-CvthYwtB.js} +22 -6
  48. package/dist/chunks/es-CvthYwtB.js.map +1 -0
  49. package/dist/chunks/{es-DrUz5J6I.js → es-DlGd6Mrj.js} +3 -3
  50. package/dist/chunks/{es-DrUz5J6I.js.map → es-DlGd6Mrj.js.map} +1 -1
  51. package/dist/chunks/{generated-CxvC5O0V.js → generated-Cx4C7GRN.js} +84 -0
  52. package/dist/chunks/{generated-CxvC5O0V.js.map → generated-Cx4C7GRN.js.map} +1 -1
  53. package/dist/chunks/{grPopoverStyles-CYAeO3Ov.js → grPopoverStyles-CncEkiPu.js} +1 -1
  54. package/dist/chunks/{grPopoverStyles-CYAeO3Ov.js.map → grPopoverStyles-CncEkiPu.js.map} +1 -1
  55. package/dist/chunks/{grSelectStyles-D9EQ-pgK.js → grSelectStyles-Cam-IG9s.js} +3 -2
  56. package/dist/chunks/grSelectStyles-Cam-IG9s.js.map +1 -0
  57. package/dist/chunks/{grSliderStyles-kaz6VXZ3.js → grSliderStyles-CqzV0hll.js} +1 -1
  58. package/dist/chunks/grSliderStyles-CqzV0hll.js.map +1 -0
  59. package/dist/chunks/{config-CbEbLyDE.js → grSortableListStyles-CxieDmpe.js} +1 -27
  60. package/dist/chunks/grSortableListStyles-CxieDmpe.js.map +1 -0
  61. package/dist/chunks/grTableStyles-CPSxDTOW.js +66 -0
  62. package/dist/chunks/grTableStyles-CPSxDTOW.js.map +1 -0
  63. package/dist/chunks/{config-CMNfZO7S.js → grTabsStyles-DIz2VdIm.js} +1 -36
  64. package/dist/chunks/grTabsStyles-DIz2VdIm.js.map +1 -0
  65. package/dist/chunks/grTooltipStyles-CtbGEEGV.js +24 -0
  66. package/dist/chunks/grTooltipStyles-CtbGEEGV.js.map +1 -0
  67. package/dist/chunks/{granular-provider-B6xomapW.js → granular-provider-cv5vaM1a.js} +21 -19
  68. package/dist/chunks/granular-provider-cv5vaM1a.js.map +1 -0
  69. package/dist/chunks/hotkeySequence-BTHIM_5A.js +46 -0
  70. package/dist/chunks/hotkeySequence-BTHIM_5A.js.map +1 -0
  71. package/dist/chunks/{keyboard-DE2yhz_b.js → keyboard-BiFSgWLt.js} +70 -1
  72. package/dist/chunks/keyboard-BiFSgWLt.js.map +1 -0
  73. package/dist/chunks/optionPanel-DvY7Tv_4.js +182 -0
  74. package/dist/chunks/optionPanel-DvY7Tv_4.js.map +1 -0
  75. package/dist/chunks/overlayListPanel-D91jBCHU.js +21 -0
  76. package/dist/chunks/overlayListPanel-D91jBCHU.js.map +1 -0
  77. package/dist/chunks/{overlayStack-DH4Z7am1.js → overlayStack-DCkCgXZP.js} +1 -1
  78. package/dist/chunks/{overlayStack-DH4Z7am1.js.map → overlayStack-DCkCgXZP.js.map} +1 -1
  79. package/dist/chunks/{overlayPanelSurface-BKeMhRx4.js → overlayTransition-C0FDMx7Q.js} +24 -24
  80. package/dist/chunks/overlayTransition-C0FDMx7Q.js.map +1 -0
  81. package/dist/chunks/{ru-88i1WG0b.js → ru-CQKDR-kD.js} +22 -6
  82. package/dist/chunks/ru-CQKDR-kD.js.map +1 -0
  83. package/dist/chunks/{useMenuItemsFocus-B7Bl_aFA.js → useMenuItemsFocus-C031blYS.js} +1 -1
  84. package/dist/chunks/{useMenuItemsFocus-B7Bl_aFA.js.map → useMenuItemsFocus-C031blYS.js.map} +1 -1
  85. package/dist/chunks/{useModalOverlay-ACRkflzx.js → useModalOverlay-CKCQkGdB.js} +1 -1
  86. package/dist/chunks/{useModalOverlay-ACRkflzx.js.map → useModalOverlay-CKCQkGdB.js.map} +1 -1
  87. package/dist/components/GrAutocomplete/chunks/{GrAutocomplete-Chhw65pI.js → GrAutocomplete-Cyr1-ENw.js} +181 -123
  88. package/dist/components/GrAutocomplete/chunks/GrAutocomplete-Cyr1-ENw.js.map +1 -0
  89. package/dist/components/GrAutocomplete/index.js +2 -2
  90. package/dist/components/GrAutocomplete/styles.css +1 -1
  91. package/dist/components/GrCarousel/chunks/{GrCarousel-ByuughtI.js → GrCarousel-CBj-PEPB.js} +186 -37
  92. package/dist/components/GrCarousel/chunks/GrCarousel-CBj-PEPB.js.map +1 -0
  93. package/dist/components/GrCarousel/index.js +2 -2
  94. package/dist/components/GrCarousel/styles.css +1 -1
  95. package/dist/components/GrCheckbox/chunks/{GrCheckbox-Dp201frb.js → GrCheckbox-B4NJc7Ur.js} +2 -1
  96. package/dist/components/GrCheckbox/chunks/GrCheckbox-B4NJc7Ur.js.map +1 -0
  97. package/dist/components/GrCheckbox/index.js +1 -1
  98. package/dist/components/GrCheckboxGroup/chunks/{GrCheckboxGroup-IpqG5qwm.js → GrCheckboxGroup-qZHpNFCX.js} +1 -1
  99. package/dist/components/GrCheckboxGroup/chunks/{GrCheckboxGroup-IpqG5qwm.js.map → GrCheckboxGroup-qZHpNFCX.js.map} +1 -1
  100. package/dist/components/GrCheckboxGroup/index.js +1 -1
  101. package/dist/components/GrColorPicker/chunks/{GrColorPicker-BRM_4lyI.js → GrColorPicker-vGSgpUV9.js} +353 -38
  102. package/dist/components/GrColorPicker/chunks/GrColorPicker-vGSgpUV9.js.map +1 -0
  103. package/dist/components/GrColorPicker/index.js +2 -2
  104. package/dist/components/GrColorPicker/styles.css +1 -1
  105. package/dist/components/GrCommandPalette/chunks/{GrCommandPalette-BJHmkDQv.js → GrCommandPalette-CAHgj0Aa.js} +23 -7
  106. package/dist/components/GrCommandPalette/chunks/GrCommandPalette-CAHgj0Aa.js.map +1 -0
  107. package/dist/components/GrCommandPalette/index.js +1 -1
  108. package/dist/components/GrCommandPalette/styles.css +1 -1
  109. package/dist/components/GrConfirmDialog/chunks/{GrConfirmDialog-BzUQwbec.js → GrConfirmDialog-dg021BMd.js} +1 -1
  110. package/dist/components/GrConfirmDialog/chunks/{GrConfirmDialog-BzUQwbec.js.map → GrConfirmDialog-dg021BMd.js.map} +1 -1
  111. package/dist/components/GrConfirmDialog/index.js +1 -1
  112. package/dist/components/GrContextMenu/chunks/{GrContextMenu-RpxMHQXH.js → GrContextMenu-bQ1Vvy2c.js} +3 -3
  113. package/dist/components/GrContextMenu/chunks/{GrContextMenu-RpxMHQXH.js.map → GrContextMenu-bQ1Vvy2c.js.map} +1 -1
  114. package/dist/components/GrContextMenu/index.js +1 -1
  115. package/dist/components/GrDataTable/chunks/{GrDataTable-DQxYYgQk.js → GrDataTable-Bb2jWnRG.js} +576 -136
  116. package/dist/components/GrDataTable/chunks/GrDataTable-Bb2jWnRG.js.map +1 -0
  117. package/dist/components/GrDataTable/index.js +2 -2
  118. package/dist/components/GrDelta/chunks/{GrDelta-CgTvfoIN.js → GrDelta-BSv1KdMy.js} +0 -0
  119. package/dist/components/GrDelta/chunks/{GrDelta-CgTvfoIN.js.map → GrDelta-BSv1KdMy.js.map} +1 -1
  120. package/dist/components/GrDelta/index.js +2 -2
  121. package/dist/components/GrDialog/chunks/{GrDialog-DDz_OEhk.js → GrDialog-C9Zu72jB.js} +1 -1
  122. package/dist/components/GrDialog/chunks/{GrDialog-DDz_OEhk.js.map → GrDialog-C9Zu72jB.js.map} +1 -1
  123. package/dist/components/GrDialog/index.js +1 -1
  124. package/dist/components/GrDialogService/chunks/{GrDialogService-Dtq0ZCN5.js → GrDialogService-DLBifO61.js} +2 -2
  125. package/dist/components/GrDialogService/chunks/{GrDialogService-Dtq0ZCN5.js.map → GrDialogService-DLBifO61.js.map} +1 -1
  126. package/dist/components/GrDialogService/index.js +1 -1
  127. package/dist/components/GrDrawer/chunks/{GrDrawer-CNpSMuN-.js → GrDrawer-DOcRTE8G.js} +1 -1
  128. package/dist/components/GrDrawer/chunks/{GrDrawer-CNpSMuN-.js.map → GrDrawer-DOcRTE8G.js.map} +1 -1
  129. package/dist/components/GrDrawer/index.js +1 -1
  130. package/dist/components/GrDropdown/chunks/{GrDropdown-cLZuZMEY.js → GrDropdown-kxwmgfSe.js} +2 -2
  131. package/dist/components/GrDropdown/chunks/{GrDropdown-cLZuZMEY.js.map → GrDropdown-kxwmgfSe.js.map} +1 -1
  132. package/dist/components/GrDropdown/index.js +2 -2
  133. package/dist/components/GrDropdownMenu/chunks/{GrDropdownMenu-Dxkz_ry4.js → GrDropdownMenu--VoK3VY0.js} +3 -34
  134. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu--VoK3VY0.js.map +1 -0
  135. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-CkM3BFPL.js +34 -0
  136. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-CkM3BFPL.js.map +1 -0
  137. package/dist/components/GrDropdownMenu/index.js +2 -1
  138. package/dist/components/GrEmptyState/chunks/{GrEmptyState-BbvwE-E0.js → GrEmptyState-Bz6-_ED4.js} +42 -6
  139. package/dist/components/GrEmptyState/chunks/GrEmptyState-Bz6-_ED4.js.map +1 -0
  140. package/dist/components/GrEmptyState/index.js +1 -1
  141. package/dist/components/GrFileUpload/chunks/{GrFileUpload-BwMR71zN.js → GrFileUpload-Bgdfnkd8.js} +5 -2
  142. package/dist/components/GrFileUpload/chunks/GrFileUpload-Bgdfnkd8.js.map +1 -0
  143. package/dist/components/GrFileUpload/index.js +1 -1
  144. package/dist/components/GrFormFile/chunks/{GrFormFile-Dlxx-9zi.js → GrFormFile-Ctq1isz-.js} +78 -11
  145. package/dist/components/GrFormFile/chunks/GrFormFile-Ctq1isz-.js.map +1 -0
  146. package/dist/components/GrFormFile/index.js +2 -2
  147. package/dist/components/GrFormFile/styles.css +1 -1
  148. package/dist/components/GrImageViewer/chunks/{GrImageViewer-DK-iVHHC.js → GrImageViewer-Bnql_dNP.js} +1 -1
  149. package/dist/components/GrImageViewer/chunks/{GrImageViewer-DK-iVHHC.js.map → GrImageViewer-Bnql_dNP.js.map} +1 -1
  150. package/dist/components/GrImageViewer/index.js +1 -1
  151. package/dist/components/GrInput/chunks/{GrInput-DV4gMWPR.js → GrInput-CoaFLpaU.js} +43 -22
  152. package/dist/components/GrInput/chunks/GrInput-CoaFLpaU.js.map +1 -0
  153. package/dist/components/GrInput/index.js +1 -1
  154. package/dist/components/GrInputTag/chunks/{GrInputTag-qnRdAZnn.js → GrInputTag-BzzNRBe3.js} +245 -18
  155. package/dist/components/GrInputTag/chunks/GrInputTag-BzzNRBe3.js.map +1 -0
  156. package/dist/components/GrInputTag/index.js +2 -2
  157. package/dist/components/GrJsonViewer/chunks/{GrJsonViewer-D7CyWzhT.js → GrJsonViewer-B6ZJ3GFH.js} +2 -2
  158. package/dist/components/GrJsonViewer/chunks/{GrJsonViewer-D7CyWzhT.js.map → GrJsonViewer-B6ZJ3GFH.js.map} +1 -1
  159. package/dist/components/GrJsonViewer/index.js +1 -1
  160. package/dist/components/GrKbd/chunks/{GrKbd-BNMeoaLV.js → GrKbd-D2rHDkQv.js} +42 -37
  161. package/dist/components/GrKbd/chunks/GrKbd-D2rHDkQv.js.map +1 -0
  162. package/dist/components/GrKbd/index.js +1 -1
  163. package/dist/components/GrModal/chunks/{GrModal-Cm0mtSXk.js → GrModal-SHb1U2qx.js} +1 -1
  164. package/dist/components/GrModal/chunks/{GrModal-Cm0mtSXk.js.map → GrModal-SHb1U2qx.js.map} +1 -1
  165. package/dist/components/GrModal/index.js +1 -1
  166. package/dist/components/GrNavbar/chunks/{GrNavbar-BRGuksiy.js → GrNavbar-IEIHC5Vt.js} +10 -4
  167. package/dist/components/GrNavbar/chunks/GrNavbar-IEIHC5Vt.js.map +1 -0
  168. package/dist/components/GrNavbar/index.js +2 -2
  169. package/dist/components/GrNumberInput/chunks/{GrNumberInput-BI6-vkcs.js → GrNumberInput-CmnUDaKi.js} +2 -22
  170. package/dist/components/GrNumberInput/chunks/{GrNumberInput-BI6-vkcs.js.map → GrNumberInput-CmnUDaKi.js.map} +1 -1
  171. package/dist/components/GrNumberInput/index.js +1 -1
  172. package/dist/components/GrPagination/chunks/{GrPagination-CMrLPzvL.js → GrPagination-AMbn5D8I.js} +1 -1
  173. package/dist/components/GrPagination/chunks/{GrPagination-CMrLPzvL.js.map → GrPagination-AMbn5D8I.js.map} +1 -1
  174. package/dist/components/GrPagination/index.js +1 -1
  175. package/dist/components/GrPopover/chunks/{GrPopover-CcWvr1ZA.js → GrPopover-DjVxt8bf.js} +3 -3
  176. package/dist/components/GrPopover/chunks/{GrPopover-CcWvr1ZA.js.map → GrPopover-DjVxt8bf.js.map} +1 -1
  177. package/dist/components/GrPopover/index.js +2 -2
  178. package/dist/components/GrPromptDialog/chunks/{GrPromptDialog-BEL-QgwE.js → GrPromptDialog-BhbIZP1f.js} +3 -3
  179. package/dist/components/GrPromptDialog/chunks/{GrPromptDialog-BEL-QgwE.js.map → GrPromptDialog-BhbIZP1f.js.map} +1 -1
  180. package/dist/components/GrPromptDialog/index.js +1 -1
  181. package/dist/components/GrSelect/chunks/{GrSelect-DvSq-nV-.js → GrSelect-B-ykrHpL.js} +24 -180
  182. package/dist/components/GrSelect/chunks/GrSelect-B-ykrHpL.js.map +1 -0
  183. package/dist/components/GrSelect/index.js +2 -2
  184. package/dist/components/GrSelect/styles.css +1 -1
  185. package/dist/components/GrSidebar/chunks/GrSidebar-jVvoLGDO.js +543 -0
  186. package/dist/components/GrSidebar/chunks/GrSidebar-jVvoLGDO.js.map +1 -0
  187. package/dist/components/GrSidebar/index.js +2 -2
  188. package/dist/components/GrSlider/chunks/{GrSlider-CO8N9SF6.js → GrSlider-DF2Cq0rV.js} +29 -4
  189. package/dist/components/GrSlider/chunks/GrSlider-DF2Cq0rV.js.map +1 -0
  190. package/dist/components/GrSlider/index.js +2 -2
  191. package/dist/components/GrSortableList/chunks/{GrSortableList-NKriuGm_.js → GrSortableList-ChH9nQBv.js} +1 -1
  192. package/dist/components/GrSortableList/chunks/{GrSortableList-NKriuGm_.js.map → GrSortableList-ChH9nQBv.js.map} +1 -1
  193. package/dist/components/GrSortableList/index.js +2 -2
  194. package/dist/components/GrTabPanels/chunks/GrTabPanels-BDt5oVdd.js +30 -0
  195. package/dist/components/GrTabPanels/chunks/GrTabPanels-BDt5oVdd.js.map +1 -0
  196. package/dist/components/GrTabPanels/chunks/GrTabPanels-BJvAflnA.js +83 -0
  197. package/dist/components/GrTabPanels/chunks/GrTabPanels-BJvAflnA.js.map +1 -0
  198. package/dist/components/GrTabPanels/index.js +2 -1
  199. package/dist/components/GrTable/chunks/{GrTable-CKJ-HrsN.js → GrTable-BQitSDep.js} +52 -16
  200. package/dist/components/GrTable/chunks/GrTable-BQitSDep.js.map +1 -0
  201. package/dist/components/GrTable/index.js +2 -2
  202. package/dist/components/GrTabs/chunks/{GrTabs-s9RzC1WX.js → GrTabs-DVC6nfWB.js} +1 -1
  203. package/dist/components/GrTabs/chunks/{GrTabs-s9RzC1WX.js.map → GrTabs-DVC6nfWB.js.map} +1 -1
  204. package/dist/components/GrTabs/index.js +2 -2
  205. package/dist/components/GrTabsWithPanels/chunks/GrTabsWithPanels-BYtuzouj.js +98 -0
  206. package/dist/components/GrTabsWithPanels/chunks/GrTabsWithPanels-BYtuzouj.js.map +1 -0
  207. package/dist/components/GrTabsWithPanels/index.js +3 -0
  208. package/dist/components/GrTextarea/chunks/{GrTextarea-Bfgc0DD2.js → GrTextarea-BFwyqcHB.js} +22 -5
  209. package/dist/components/GrTextarea/chunks/GrTextarea-BFwyqcHB.js.map +1 -0
  210. package/dist/components/GrTextarea/index.js +1 -1
  211. package/dist/components/GrToaster/chunks/{GrToaster-CZixNk0l.js → GrToaster-OzT1VKcp.js} +163 -32
  212. package/dist/components/GrToaster/chunks/GrToaster-OzT1VKcp.js.map +1 -0
  213. package/dist/components/GrToaster/index.js +2 -2
  214. package/dist/components/GrToaster/styles.css +1 -1
  215. package/dist/components/GrTooltip/chunks/{GrTooltip-DkMMM0uq.js → GrTooltip-BDcFycvW.js} +26 -13
  216. package/dist/components/GrTooltip/chunks/GrTooltip-BDcFycvW.js.map +1 -0
  217. package/dist/components/GrTooltip/index.js +2 -2
  218. package/dist/components/GrTransfer/chunks/{GrTransfer-DdfBUf35.js → GrTransfer-CV7BL5UK.js} +114 -12
  219. package/dist/components/GrTransfer/chunks/GrTransfer-CV7BL5UK.js.map +1 -0
  220. package/dist/components/GrTransfer/index.js +1 -1
  221. package/dist/components/GrTransfer/styles.css +1 -1
  222. package/dist/components/GrTree/chunks/{GrTree-6yZrncJE.js → GrTree-DpgaP8hk.js} +39 -1
  223. package/dist/components/GrTree/chunks/GrTree-DpgaP8hk.js.map +1 -0
  224. package/dist/components/GrTree/index.js +1 -1
  225. package/dist/components/GrTree/styles.css +1 -1
  226. package/dist/components/GrTreeSections/chunks/{GrTreeSections-DcmDcLwj.js → GrTreeSections-BeOj__44.js} +1 -1
  227. package/dist/components/GrTreeSections/chunks/{GrTreeSections-DcmDcLwj.js.map → GrTreeSections-BeOj__44.js.map} +1 -1
  228. package/dist/components/GrTreeSections/index.js +1 -1
  229. package/dist/components/GrTreeSelect/chunks/{GrTreeSelect-B6KoDYiZ.js → GrTreeSelect-BHq-T8wH.js} +113 -14
  230. package/dist/components/GrTreeSelect/chunks/GrTreeSelect-BHq-T8wH.js.map +1 -0
  231. package/dist/components/GrTreeSelect/index.js +2 -2
  232. package/dist/composables/useFloating.js +1 -1
  233. package/dist/composables/useHotkeys.js +89 -0
  234. package/dist/composables/useHotkeys.js.map +1 -0
  235. package/dist/composables/useOverlayLayer.js +1 -1
  236. package/dist/directives/hotkey.js +19 -46
  237. package/dist/directives/hotkey.js.map +1 -1
  238. package/dist/granular-provider-node.js +1 -1
  239. package/dist/granular-provider.js +1 -1
  240. package/dist/i18n/all.js +1 -1
  241. package/dist/i18n/index.js +1 -1
  242. package/dist/index.js +71 -63
  243. package/dist/theme.js +1 -1
  244. package/dist/tokens.js +1 -1
  245. package/dist/types/components/GrAutocomplete/GrAutocomplete.vue.d.ts +4 -4
  246. package/dist/types/components/GrAutocomplete/composables/useAutocompleteNavigation.d.ts +12 -3
  247. package/dist/types/components/GrAutocomplete/composables/useAutocompletePanel.d.ts +12 -2
  248. package/dist/types/components/GrAutocomplete/composables/useAutocompleteValues.d.ts +7 -4
  249. package/dist/types/components/GrAutocomplete/composables/useRemoteOptions.d.ts +4 -4
  250. package/dist/types/components/GrAutocomplete/grAutocompleteStyles.d.ts +15 -1
  251. package/dist/types/components/GrAutocomplete/index.d.ts +1 -1
  252. package/dist/types/components/GrCarousel/GrCarousel.vue.d.ts +29 -1
  253. package/dist/types/components/GrCarousel/composables/useCarouselSwipe.d.ts +5 -0
  254. package/dist/types/components/GrCarousel/grCarouselContext.d.ts +21 -0
  255. package/dist/types/components/GrCarousel/grCarouselStyles.d.ts +39 -9
  256. package/dist/types/components/GrCheckbox/GrCheckbox.vue.d.ts +13 -0
  257. package/dist/types/components/GrColorPicker/GrColorPicker.vue.d.ts +18 -2
  258. package/dist/types/components/GrColorPicker/color.d.ts +13 -1
  259. package/dist/types/components/GrColorPicker/colorArea.d.ts +59 -0
  260. package/dist/types/components/GrColorPicker/defaults.d.ts +3 -1
  261. package/dist/types/components/GrColorPicker/eyeDropper.d.ts +21 -0
  262. package/dist/types/components/GrColorPicker/grColorPickerStyles.d.ts +42 -0
  263. package/dist/types/components/GrCommandPalette/GrCommandPalette.vue.d.ts +10 -1
  264. package/dist/types/components/GrDataTable/GrDataTable.vue.d.ts +41 -1
  265. package/dist/types/components/GrDataTable/composables/useDataTableGridNavigation.d.ts +53 -0
  266. package/dist/types/components/GrDataTable/grDataTableStyles.d.ts +8 -0
  267. package/dist/types/components/GrDataTable/index.d.ts +1 -1
  268. package/dist/types/components/GrDelta/grDeltaStyles.d.ts +10 -3
  269. package/dist/types/components/GrEmptyState/GrEmptyState.vue.d.ts +11 -2
  270. package/dist/types/components/GrEmptyState/grEmptyStateStyles.d.ts +10 -0
  271. package/dist/types/components/GrEmptyState/index.d.ts +1 -1
  272. package/dist/types/components/GrFileUpload/GrFileUpload.vue.d.ts +2 -1
  273. package/dist/types/components/GrFormFile/GrFormFile.vue.d.ts +10 -0
  274. package/dist/types/components/GrInput/GrInput.vue.d.ts +15 -0
  275. package/dist/types/components/GrInputTag/GrInputTag.vue.d.ts +16 -0
  276. package/dist/types/components/GrInputTag/grInputTagStyles.d.ts +11 -0
  277. package/dist/types/components/GrKbd/GrKbd.vue.d.ts +14 -0
  278. package/dist/types/components/GrNavbar/GrNavbar.vue.d.ts +18 -0
  279. package/dist/types/components/GrNavbar/grNavbarStyles.d.ts +10 -1
  280. package/dist/types/components/GrNavbar/index.d.ts +1 -0
  281. package/dist/types/components/GrSelect/composables/useSelectPanelItems.d.ts +8 -34
  282. package/dist/types/components/GrSelect/composables/useSelectVirtualization.d.ts +7 -0
  283. package/dist/types/components/GrSelect/grSelectStyles.d.ts +1 -1
  284. package/dist/types/components/GrSidebar/GrSidebar.vue.d.ts +20 -0
  285. package/dist/types/components/GrSidebar/GrSidebarItem.vue.d.ts +39 -5
  286. package/dist/types/components/GrSidebar/grSidebarStyles.d.ts +32 -0
  287. package/dist/types/components/GrSidebar/index.d.ts +1 -1
  288. package/dist/types/components/GrSidebar/sidebarContext.d.ts +23 -1
  289. package/dist/types/components/GrSlider/GrSlider.vue.d.ts +39 -1
  290. package/dist/types/components/GrSlider/grSliderStyles.d.ts +1 -1
  291. package/dist/types/components/GrTabPanels/context.d.ts +6 -0
  292. package/dist/types/components/GrTable/GrTable.vue.d.ts +37 -0
  293. package/dist/types/components/GrTable/grTableStyles.d.ts +16 -7
  294. package/dist/types/components/GrTabsWithPanels/GrTabsWithPanels.vue.d.ts +77 -0
  295. package/dist/types/components/GrTabsWithPanels/config.d.ts +1 -0
  296. package/dist/types/components/GrTabsWithPanels/index.d.ts +4 -0
  297. package/dist/types/components/GrTextarea/GrTextarea.vue.d.ts +19 -1
  298. package/dist/types/components/GrToaster/GrToaster.vue.d.ts +12 -0
  299. package/dist/types/components/GrToaster/grToasterStyles.d.ts +26 -0
  300. package/dist/types/components/GrTooltip/GrTooltip.vue.d.ts +22 -0
  301. package/dist/types/components/GrTransfer/GrTransfer.vue.d.ts +23 -0
  302. package/dist/types/components/GrTreeSelect/grTreeSelectStyles.d.ts +1 -1
  303. package/dist/types/components/GrTreeSelect/grTreeSelectTypes.d.ts +20 -0
  304. package/dist/types/components/shared/hotkey.d.ts +8 -9
  305. package/dist/types/components/shared/optionPanel.d.ts +100 -0
  306. package/dist/types/components/shared/overlayListPanel.d.ts +18 -0
  307. package/dist/types/composables/useHotkeys.d.ts +43 -0
  308. package/dist/types/granular-provider/shared.d.ts +1 -0
  309. package/dist/types/i18n/messages/en.d.ts +28 -0
  310. package/dist/types/i18n/messages/es.d.ts +28 -0
  311. package/dist/types/i18n/messages/ru.d.ts +28 -0
  312. package/dist/types/index.d.ts +3 -0
  313. package/dist/types/internal/hotkeySequence.d.ts +22 -0
  314. package/dist/types/internal/keyboard.d.ts +45 -0
  315. package/dist/web-types.json +463 -26
  316. package/package.json +9 -1
  317. package/dist/chunks/config-2ZHRsdOc.js.map +0 -1
  318. package/dist/chunks/config-B42iJ48O.js.map +0 -1
  319. package/dist/chunks/config-B5SBUa6u.js.map +0 -1
  320. package/dist/chunks/config-BAse0laT.js.map +0 -1
  321. package/dist/chunks/config-BHLMTJaR.js.map +0 -1
  322. package/dist/chunks/config-BXRmsn3t.js.map +0 -1
  323. package/dist/chunks/config-Bs1HwUcx.js.map +0 -1
  324. package/dist/chunks/config-CMNfZO7S.js.map +0 -1
  325. package/dist/chunks/config-CbEbLyDE.js.map +0 -1
  326. package/dist/chunks/config-CjWOTgLL.js.map +0 -1
  327. package/dist/chunks/config-D3HOuHDe.js.map +0 -1
  328. package/dist/chunks/config-DIDz_E5m.js.map +0 -1
  329. package/dist/chunks/config-DNDgp9bB.js.map +0 -1
  330. package/dist/chunks/config-iemgzS4x.js.map +0 -1
  331. package/dist/chunks/en-CsQUoBS2.js.map +0 -1
  332. package/dist/chunks/es-9nbkPvdA.js.map +0 -1
  333. package/dist/chunks/grSelectStyles-D9EQ-pgK.js.map +0 -1
  334. package/dist/chunks/grSliderStyles-kaz6VXZ3.js.map +0 -1
  335. package/dist/chunks/grTableStyles-DkQPMfx9.js +0 -39
  336. package/dist/chunks/grTableStyles-DkQPMfx9.js.map +0 -1
  337. package/dist/chunks/granular-provider-B6xomapW.js.map +0 -1
  338. package/dist/chunks/keyboard-DE2yhz_b.js.map +0 -1
  339. package/dist/chunks/overlayPanelSurface-BKeMhRx4.js.map +0 -1
  340. package/dist/chunks/ru-88i1WG0b.js.map +0 -1
  341. package/dist/components/GrAutocomplete/chunks/GrAutocomplete-Chhw65pI.js.map +0 -1
  342. package/dist/components/GrCarousel/chunks/GrCarousel-ByuughtI.js.map +0 -1
  343. package/dist/components/GrCheckbox/chunks/GrCheckbox-Dp201frb.js.map +0 -1
  344. package/dist/components/GrColorPicker/chunks/GrColorPicker-BRM_4lyI.js.map +0 -1
  345. package/dist/components/GrCommandPalette/chunks/GrCommandPalette-BJHmkDQv.js.map +0 -1
  346. package/dist/components/GrDataTable/chunks/GrDataTable-DQxYYgQk.js.map +0 -1
  347. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-Dxkz_ry4.js.map +0 -1
  348. package/dist/components/GrEmptyState/chunks/GrEmptyState-BbvwE-E0.js.map +0 -1
  349. package/dist/components/GrFileUpload/chunks/GrFileUpload-BwMR71zN.js.map +0 -1
  350. package/dist/components/GrFormFile/chunks/GrFormFile-Dlxx-9zi.js.map +0 -1
  351. package/dist/components/GrInput/chunks/GrInput-DV4gMWPR.js.map +0 -1
  352. package/dist/components/GrInputTag/chunks/GrInputTag-qnRdAZnn.js.map +0 -1
  353. package/dist/components/GrKbd/chunks/GrKbd-BNMeoaLV.js.map +0 -1
  354. package/dist/components/GrNavbar/chunks/GrNavbar-BRGuksiy.js.map +0 -1
  355. package/dist/components/GrSelect/chunks/GrSelect-DvSq-nV-.js.map +0 -1
  356. package/dist/components/GrSidebar/chunks/GrSidebar-DoKLlHSw.js +0 -264
  357. package/dist/components/GrSidebar/chunks/GrSidebar-DoKLlHSw.js.map +0 -1
  358. package/dist/components/GrSlider/chunks/GrSlider-CO8N9SF6.js.map +0 -1
  359. package/dist/components/GrTabPanels/chunks/GrTabPanels-5zsbqS1v.js +0 -92
  360. package/dist/components/GrTabPanels/chunks/GrTabPanels-5zsbqS1v.js.map +0 -1
  361. package/dist/components/GrTable/chunks/GrTable-CKJ-HrsN.js.map +0 -1
  362. package/dist/components/GrTextarea/chunks/GrTextarea-Bfgc0DD2.js.map +0 -1
  363. package/dist/components/GrToaster/chunks/GrToaster-CZixNk0l.js.map +0 -1
  364. package/dist/components/GrTooltip/chunks/GrTooltip-DkMMM0uq.js.map +0 -1
  365. package/dist/components/GrTransfer/chunks/GrTransfer-DdfBUf35.js.map +0 -1
  366. package/dist/components/GrTree/chunks/GrTree-6yZrncJE.js.map +0 -1
  367. package/dist/components/GrTreeSelect/chunks/GrTreeSelect-B6KoDYiZ.js.map +0 -1
  368. package/dist/types/components/GrAutocomplete/composables/useAutocompleteVirtual.d.ts +0 -33
@@ -24,9 +24,21 @@ export interface GrSidebarProps {
24
24
  landmark?: GrSidebarLandmark;
25
25
  /** Имя лендмарка: без него две панели на странице неразличимы. */
26
26
  ariaLabel?: string;
27
+ /**
28
+ * Панель как модальный слой поверх страницы: подложка, `Esc`, ловушка фокуса,
29
+ * блокировка прокрутки. Для узкого экрана, где колонке места нет.
30
+ *
31
+ * Когда включать — решает приложение: своей системы брейкпоинтов у пакета нет,
32
+ * а спрашивать среду в `setup` нельзя — первый клиентский рендер разошёлся бы
33
+ * с серверным и сломал гидрацию.
34
+ */
35
+ overlay?: boolean;
36
+ /** Открыт ли слой. Поддерживает `v-model:open`; без `overlay` не значит ничего. */
37
+ open?: boolean;
27
38
  }
28
39
  export interface GrSidebarEmits {
29
40
  (e: 'update:collapsed', value: boolean): void;
41
+ (e: 'update:open', value: boolean): void;
30
42
  }
31
43
  type __VLS_Slots = {
32
44
  /** Содержимое панели: навигация, группы, произвольная разметка. */
@@ -47,8 +59,11 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
47
59
  position: string;
48
60
  landmark: string;
49
61
  ariaLabel: undefined;
62
+ overlay: boolean;
63
+ open: boolean;
50
64
  }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
51
65
  "update:collapsed": (value: boolean) => void;
66
+ "update:open": (value: boolean) => void;
52
67
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<GrSidebarProps>, {
53
68
  title: undefined;
54
69
  subtitle: undefined;
@@ -60,12 +75,17 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
60
75
  position: string;
61
76
  landmark: string;
62
77
  ariaLabel: undefined;
78
+ overlay: boolean;
79
+ open: boolean;
63
80
  }>>> & Readonly<{
81
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
64
82
  "onUpdate:collapsed"?: ((value: boolean) => any) | undefined;
65
83
  }>, {
84
+ overlay: boolean;
66
85
  title: string;
67
86
  width: string;
68
87
  position: GrSidebarPosition;
88
+ open: boolean;
69
89
  ariaLabel: string;
70
90
  landmark: GrSidebarLandmark;
71
91
  subtitle: string;
@@ -4,8 +4,9 @@
4
4
  * Контракт:
5
5
  * - развёрнутая панель — `[иконка] метка [бейдж]`;
6
6
  * - свёрнутая панель — только иконка; если иконки нет, показывается ПЕРВАЯ БУКВА
7
- * метки (uppercase). В свёрнутом виде метка уходит в `title`/`aria-label` для
8
- * доступности и tooltip.
7
+ * метки (uppercase). Имя пункту даёт `aria-label`, а подпись показывает
8
+ * `GrTooltip`: нативный `title` появлялся только по наведению, то есть с
9
+ * клавиатуры свёрнутую панель было не прочесть.
9
10
  *
10
11
  * Корневой тег: `as` → `<a href>` → `<button>` (в этом порядке).
11
12
  */
@@ -19,29 +20,57 @@ export interface GrSidebarItemProps {
19
20
  active?: boolean;
20
21
  disabled?: boolean;
21
22
  badge?: string | number;
23
+ /**
24
+ * Раскрыто ли поддерево. Поддерживает `v-model:expanded`; без пропа пункт
25
+ * ведёт себя сам.
26
+ */
27
+ expanded?: boolean;
28
+ /** Начальное состояние поддерева, когда `expanded` не контролируется. */
29
+ defaultExpanded?: boolean;
22
30
  }
23
- declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<GrSidebarItemProps>, {
31
+ export interface GrSidebarItemEmits {
32
+ (e: 'update:expanded', value: boolean): void;
33
+ }
34
+ type __VLS_Slots = {
35
+ /**
36
+ * Вложенные пункты. Их наличие превращает пункт в раскрывающийся: он теряет
37
+ * роль ссылки и становится переключателем поддерева.
38
+ */
39
+ default?: () => unknown;
40
+ };
41
+ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<GrSidebarItemProps>, {
24
42
  icon: undefined;
25
43
  href: undefined;
26
44
  as: undefined;
27
45
  active: boolean;
28
46
  disabled: boolean;
29
47
  badge: undefined;
30
- }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<GrSidebarItemProps>, {
48
+ expanded: undefined;
49
+ defaultExpanded: boolean;
50
+ }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
51
+ "update:expanded": (value: boolean) => void;
52
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<GrSidebarItemProps>, {
31
53
  icon: undefined;
32
54
  href: undefined;
33
55
  as: undefined;
34
56
  active: boolean;
35
57
  disabled: boolean;
36
58
  badge: undefined;
37
- }>>> & Readonly<{}>, {
59
+ expanded: undefined;
60
+ defaultExpanded: boolean;
61
+ }>>> & Readonly<{
62
+ "onUpdate:expanded"?: ((value: boolean) => any) | undefined;
63
+ }>, {
38
64
  disabled: boolean;
39
65
  icon: string | Component;
40
66
  href: string;
67
+ expanded: boolean;
41
68
  active: boolean;
42
69
  as: string | Component;
43
70
  badge: string | number;
71
+ defaultExpanded: boolean;
44
72
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
73
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
45
74
  declare const _default: typeof __VLS_export;
46
75
  export default _default;
47
76
  type __VLS_TypePropsToOption<T> = {
@@ -57,6 +86,11 @@ type __VLS_WithDefaults<P, D> = {
57
86
  default: D[K];
58
87
  }> : P[K];
59
88
  };
89
+ type __VLS_WithSlots<T, S> = T & {
90
+ new (): {
91
+ $slots: S;
92
+ };
93
+ };
60
94
  type __VLS_PrettifyLocal<T> = (T extends any ? {
61
95
  [K in keyof T]: T[K];
62
96
  } : {
@@ -46,3 +46,35 @@ export declare function grSidebarItemClass(options: {
46
46
  disabled: boolean;
47
47
  active: boolean;
48
48
  }): string;
49
+ /**
50
+ * Гнездо вложенного пункта: сам пункт плюс поддерево под ним. Обёртка нужна
51
+ * потому, что двух корней у компонента быть не может — при них ломается проброс
52
+ * атрибутов.
53
+ */
54
+ export declare const itemNestClass = "flex flex-col";
55
+ /** Поддерево подпунктов. Отступ уровня задаётся строкам, а не контейнеру. */
56
+ export declare const itemChildrenClass = "flex flex-col";
57
+ /**
58
+ * Шеврон раскрытия. Поворотом показывает состояние, но смысла не несёт: его
59
+ * сообщает `aria-expanded` на самом пункте, поэтому от диктора шеврон скрыт.
60
+ */
61
+ export declare const itemChevronClass = "ml-auto h-4 w-4 shrink-0 text-[var(--gr-muted-fg)] transition-transform duration-[var(--gr-duration-fast)]";
62
+ export declare const itemChevronExpandedClass = "rotate-90";
63
+ /**
64
+ * Отступ уровня вложенности. Считается от базового `px-3` пункта: своим
65
+ * `padding` строка отодвигается целиком, вместе с подсветкой и кольцом фокуса,
66
+ * — сдвинь мы только текст, активный фон уезжал бы под соседний уровень.
67
+ */
68
+ export declare function itemNestIndent(level: number): string | undefined;
69
+ /**
70
+ * Корень модального слоя. В обычном режиме обёртка остаётся в разметке, но
71
+ * `display: contents` убирает её из раскладки — так панель и её шапка описаны
72
+ * один раз на оба режима, а не продублированы.
73
+ */
74
+ export declare const layerRootClass = "fixed inset-0";
75
+ export declare const layerPassThroughClass = "contents";
76
+ export declare const layerBackdropClass = "fixed inset-0 bg-[var(--gr-overlay-bg)]";
77
+ /** Панель слоя прижата к своему краю и тянется на всю высоту экрана. */
78
+ export declare const layerPanelPositions: Record<GrSidebarPosition, string>;
79
+ /** Откуда выезжает панель: из-за своего края, а не из глубины экрана. */
80
+ export declare const layerPanelEnterFrom: Record<GrSidebarPosition, string>;
@@ -6,4 +6,4 @@ export { grSidebarConfig } from './config';
6
6
  export type { GrSidebarLandmark, GrSidebarPosition } from './grSidebarStyles';
7
7
  export { grSidebarSafelist } from './safelist';
8
8
  export type { GrSidebarEmits } from './GrSidebar.vue';
9
- export type { GrSidebarItemProps } from './GrSidebarItem.vue';
9
+ export type { GrSidebarItemEmits, GrSidebarItemProps } from './GrSidebarItem.vue';
@@ -1,9 +1,31 @@
1
- import type { InjectionKey, Ref } from 'vue';
1
+ import type { ComputedRef, InjectionKey, Ref } from 'vue';
2
+ import type { GrSidebarPosition } from './grSidebarStyles';
2
3
  /**
3
4
  * Контекст `GrSidebar`, который потребляют `GrSidebarItem`'ы: свёрнута ли панель.
4
5
  * В свёрнутом состоянии пункты показывают только иконку (или первую букву метки).
5
6
  */
6
7
  export interface GrSidebarContext {
7
8
  collapsed: Ref<boolean>;
9
+ /**
10
+ * Сторона панели. Пункту она нужна ради подсказки в свёрнутом режиме: та
11
+ * обязана уходить **от** панели, иначе накроет саму себя.
12
+ */
13
+ position: ComputedRef<GrSidebarPosition> | Ref<GrSidebarPosition>;
14
+ /**
15
+ * Развернуть панель. Нужна пункту с подпунктами: в свёрнутом рейле ветке
16
+ * негде показаться, и нажатие на неё обязано сперва вернуть панели ширину —
17
+ * иначе это кнопка, от которой ничего не происходит.
18
+ *
19
+ * Отдельным методом, а не записью в `collapsed`: состояние может быть
20
+ * контролируемым, и без эмита родитель разошёлся бы с панелью.
21
+ */
22
+ expand: () => void;
8
23
  }
9
24
  export declare const GR_SIDEBAR_KEY: InjectionKey<GrSidebarContext>;
25
+ /**
26
+ * Уровень вложенности пункта. Раздаётся не панелью, а самими пунктами: каждый
27
+ * объявляет своим детям `level + 1`, поэтому глубина считается разметкой, а не
28
+ * пропом, который потребителю пришлось бы проставлять руками и держать в
29
+ * синхроне при перестановке ветки.
30
+ */
31
+ export declare const GR_SIDEBAR_LEVEL_KEY: InjectionKey<number>;
@@ -51,7 +51,39 @@ export interface GrSliderEmits {
51
51
  }
52
52
  declare function focus(): void;
53
53
  declare function blur(): void;
54
- declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<GrSliderProps>, {
54
+ type __VLS_Slots = {
55
+ /**
56
+ * Подпись деления шкалы. Слот наполняет её узел, а не заменяет: позиция,
57
+ * `aria-hidden` и дублирование значения диктору остаются за компонентом.
58
+ */
59
+ mark?: (props: {
60
+ value: number;
61
+ /** Строка из `marks`; у массива это само значение. */
62
+ label: string;
63
+ /** Положение деления на дорожке, проценты. */
64
+ percent: number;
65
+ /** Деление попало в закрашенную часть — по нему красят пройденное. */
66
+ active: boolean;
67
+ }) => unknown;
68
+ /**
69
+ * Содержимое бегунка.
70
+ *
71
+ * Слот рендерится **внутрь** ручки, а не вместо неё: на самом узле висят
72
+ * `role="slider"`, `tabindex`, восемь `aria-*` и позиционирование, и отдать
73
+ * его разметке потребителя значит отдать вместе с ним весь виджетный
74
+ * контракт. Вид самой ручки меняется токенами `--gr-slider-thumb-*`.
75
+ */
76
+ thumb?: (props: {
77
+ index: number;
78
+ value: number;
79
+ /** Положение бегунка на дорожке, проценты. */
80
+ percent: number;
81
+ /** Бегунок под курсором или в фокусе — та же величина, что у тултипа. */
82
+ active: boolean;
83
+ disabled: boolean;
84
+ }) => unknown;
85
+ };
86
+ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<GrSliderProps>, {
55
87
  min: number;
56
88
  max: number;
57
89
  step: number;
@@ -116,6 +148,7 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
116
148
  showTooltip: boolean | "always" | "hover";
117
149
  formatTooltip: (value: number) => string;
118
150
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
151
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
119
152
  declare const _default: typeof __VLS_export;
120
153
  export default _default;
121
154
  type __VLS_TypePropsToOption<T> = {
@@ -131,6 +164,11 @@ type __VLS_WithDefaults<P, D> = {
131
164
  default: D[K];
132
165
  }> : P[K];
133
166
  };
167
+ type __VLS_WithSlots<T, S> = T & {
168
+ new (): {
169
+ $slots: S;
170
+ };
171
+ };
134
172
  type __VLS_PrettifyLocal<T> = (T extends any ? {
135
173
  [K in keyof T]: T[K];
136
174
  } : {
@@ -45,7 +45,7 @@ export declare const sliderFillOrientationClass: Record<GrSliderOrientation, str
45
45
  export declare const sliderFillDisabledClass = "bg-[var(--gr-disabled-fg)]";
46
46
  export declare const sliderFillEnabledClass = "bg-[var(--gr-slider-fill,var(--gr-primary))]";
47
47
  export declare function sliderFillClass(disabled: boolean): string;
48
- export declare const sliderThumbBaseClass = "absolute rounded-[var(--gr-radius-full)] border-2 border-[var(--gr-slider-thumb-border,var(--gr-slider-fill,var(--gr-primary)))] bg-[var(--gr-slider-thumb-bg,var(--gr-bg))] ring-1 ring-[color-mix(in_srgb,var(--gr-fg)_22%,transparent)] shadow-[var(--gr-shadow-1)] transition-[box-shadow,transform] duration-[var(--gr-duration-fast)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--gr-ring)] focus-visible:ring-offset-1 focus-visible:ring-offset-[var(--gr-bg)]";
48
+ export declare const sliderThumbBaseClass = "absolute inline-flex items-center justify-center overflow-visible rounded-[var(--gr-radius-full)] border-2 border-[var(--gr-slider-thumb-border,var(--gr-slider-fill,var(--gr-primary)))] bg-[var(--gr-slider-thumb-bg,var(--gr-bg))] ring-1 ring-[color-mix(in_srgb,var(--gr-fg)_22%,transparent)] shadow-[var(--gr-shadow-1)] transition-[box-shadow,transform] duration-[var(--gr-duration-fast)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--gr-ring)] focus-visible:ring-offset-1 focus-visible:ring-offset-[var(--gr-bg)]";
49
49
  /** Бегунок центрируется поперёк дорожки, а вдоль неё его ведёт inline-стиль. */
50
50
  export declare const sliderThumbOrientationClass: Record<GrSliderOrientation, string>;
51
51
  export declare const sliderThumbDisabledClass = "cursor-not-allowed border-[var(--gr-disabled-fg)] bg-[var(--gr-disabled-bg)]";
@@ -5,5 +5,11 @@ export interface GrTabPanelsContext {
5
5
  activeValue: ComputedRef<string>;
6
6
  /** Общая база id для связки `tab`↔`tabpanel` (см. проп `idBase` у `GrTabs`). */
7
7
  idBase: ComputedRef<string>;
8
+ /**
9
+ * Задал ли `idBase` потребитель. Без него вкладок с подходящими id не
10
+ * существует: `GrTabs` проставляет их **только** при явном `idBase`, — и
11
+ * ссылаться на них панели нечем.
12
+ */
13
+ tabsLinked: ComputedRef<boolean>;
8
14
  }
9
15
  export declare const GR_TAB_PANELS_KEY: InjectionKey<GrTabPanelsContext>;
@@ -33,11 +33,39 @@ export interface GrTableProps {
33
33
  striped?: boolean;
34
34
  /** Подсветка строки под курсором. */
35
35
  hoverable?: boolean;
36
+ /**
37
+ * Тело собрано группами строк, и рисует их потребитель: слот по умолчанию
38
+ * встаёт прямо в таблицу, без обёртки в `<tbody>`.
39
+ *
40
+ * Нужно там, где пара строк обязана мериться и жить вместе — второй ярус
41
+ * `GrDataTable` рядом со своей строкой. Обернуть две `<tr>` в таблице больше
42
+ * не во что: группа строк — единственный контейнер, который для них
43
+ * существует.
44
+ */
45
+ rowGroups?: boolean;
46
+ /**
47
+ * Роль таблицы. `grid` — интерактивная сетка с клавиатурой по ячейкам
48
+ * (паттерн WAI-ARIA `grid`): она объявляет диктору, что по таблице ходят
49
+ * стрелками, а не читают её как статичную.
50
+ *
51
+ * Роль ставит тот, кто клавиатуру и реализует, — сама по себе она обещание,
52
+ * которое таблица не выполняет.
53
+ */
54
+ role?: 'table' | 'grid';
36
55
  /**
37
56
  * Прилипающий заголовок: `<thead>` остаётся видимым при вертикальном скролле.
38
57
  * Осмысленно вместе с `maxHeight` (иначе таблица не скроллится вертикально).
39
58
  */
40
59
  stickyHeader?: boolean;
60
+ /**
61
+ * Прилипающая первая колонка: остаётся видимой при горизонтальном скролле.
62
+ *
63
+ * Только первая, и это не упрощение: `left` со второй колонки равен сумме
64
+ * ширин предыдущих, а ячейки принадлежат потребителю — мерить их «тонкому»
65
+ * контейнеру нечем. Многоколоночное закрепление есть у `GrDataTable`: он
66
+ * знает свои колонки и меряет смещения сам.
67
+ */
68
+ stickyColumn?: boolean;
41
69
  /**
42
70
  * Полное число строк набора, включая строки заголовка (`aria-rowcount`).
43
71
  *
@@ -102,7 +130,10 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
102
130
  empty: undefined;
103
131
  striped: boolean;
104
132
  hoverable: boolean;
133
+ rowGroups: boolean;
134
+ role: string;
105
135
  stickyHeader: boolean;
136
+ stickyColumn: boolean;
106
137
  maxHeight: undefined;
107
138
  rowCount: undefined;
108
139
  fixedLayout: boolean;
@@ -125,7 +156,10 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
125
156
  empty: undefined;
126
157
  striped: boolean;
127
158
  hoverable: boolean;
159
+ rowGroups: boolean;
160
+ role: string;
128
161
  stickyHeader: boolean;
162
+ stickyColumn: boolean;
129
163
  maxHeight: undefined;
130
164
  rowCount: undefined;
131
165
  fixedLayout: boolean;
@@ -135,6 +169,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
135
169
  size: GrTableSize;
136
170
  emptyText: string;
137
171
  loading: boolean;
172
+ role: "table" | "grid";
138
173
  columnCount: number;
139
174
  maxHeight: string | number;
140
175
  ariaLabel: string;
@@ -144,7 +179,9 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
144
179
  regionLabel: string;
145
180
  loadingRows: number;
146
181
  striped: boolean;
182
+ rowGroups: boolean;
147
183
  stickyHeader: boolean;
184
+ stickyColumn: boolean;
148
185
  rowCount: number;
149
186
  fixedLayout: boolean;
150
187
  tableMinWidth: string | number;
@@ -14,20 +14,29 @@ export type GrTableSize = GrComponentSize;
14
14
  */
15
15
  export declare const tableSizes: Record<GrTableSize, string>;
16
16
  /**
17
- * Строка, которая не входит в набор: подробности раскрытой строки, распорки
18
- * виртуализатора. Помеченная ею `<tr>` не полосатится, не подсвечивается и
19
- * **не участвует в счёте чётности** соседей.
17
+ * Строка или группа строк, которая не входит в набор: подробности раскрытой
18
+ * строки, распорки виртуализатора. Помеченная ею `<tr>` не полосатится, не
19
+ * подсвечивается и **не участвует в счёте чётности** соседей.
20
20
  */
21
21
  export declare const DETAIL_ROW_ATTR = "data-gr-table-off-grid";
22
22
  /**
23
- * Чередование строк и подсветка под курсором — на `<tbody>`, а не на ячейках.
23
+ * Чередование строк и подсветка под курсором — на таблице, а не на ячейках.
24
24
  *
25
- * `of :not(…)` здесь обязателен, и `:not()` снаружи его не заменяет: `nth-child`
25
+ * Форм тела две, и селектора поэтому тоже два. Обычное тело — одна `<tbody>`
26
+ * со строками; тело `GrDataTable` — группа `<tbody>` на строку, потому что
27
+ * второй ярус обязан лежать со своей строкой в одной группе (см. `rowGroups`
28
+ * у `GrTable`). Каждый селектор в чужой форме не совпадает ни с чем: в одной
29
+ * группе строка набора всегда первая, а единственная `<tbody>` никогда не
30
+ * чётная, — так что оба живут рядом и не спорят.
31
+ *
32
+ * `of S` здесь обязателен, и `:not()` снаружи его не заменяет: `nth-child`
26
33
  * считает позицию среди **всех** сиблингов, поэтому обычный фильтр убрал бы
27
34
  * полосу с самой служебной строки, но сдвинул бы чётность у всех, кто ниже.
28
35
  * Форма `of S` перенумеровывает по отфильтрованному набору — это и нужно.
29
36
  */
30
- export declare const stripedClass = "[&>tr:nth-child(even_of_:not([data-gr-table-off-grid]))]:bg-[color-mix(in_srgb,var(--gr-muted)_35%,transparent)]";
31
- export declare const hoverableClass = "[&>tr:not([data-gr-table-off-grid]):hover]:bg-[color-mix(in_srgb,var(--gr-muted)_45%,transparent)]";
37
+ export declare const stripedClass: string;
38
+ export declare const hoverableClass = "[&>tbody>tr:not([data-gr-table-off-grid]):hover]:bg-[color-mix(in_srgb,var(--gr-muted)_45%,transparent)]";
39
+ export declare const stickyColumnStripedClass = "[&>tbody>tr:nth-child(even_of_:not([data-gr-table-off-grid]))>*:first-child]:bg-[color-mix(in_srgb,var(--gr-muted)_35%,var(--gr-card))]";
40
+ export declare const stickyColumnHoverableClass = "[&>tbody>tr:not([data-gr-table-off-grid]):hover>*:first-child]:bg-[color-mix(in_srgb,var(--gr-muted)_45%,var(--gr-card))]";
32
41
  export declare const emptyCellClass = "px-4 py-8 text-center text-[var(--gr-muted-fg)]";
33
42
  export declare const loadingRowCellClass = "px-4 py-3";
@@ -0,0 +1,77 @@
1
+ import type { GrTab, GrTabsProps } from '../GrTabs/GrTabs.vue';
2
+ export interface GrTabsWithPanelsProps extends GrTabsProps {
3
+ }
4
+ export interface GrTabsWithPanelsEmits {
5
+ (e: 'update:modelValue', value: string): void;
6
+ /** Просьба закрыть вкладку — всплывает из `GrTabs` как есть. */
7
+ (e: 'close', value: string): void;
8
+ }
9
+ type __VLS_Slots = {
10
+ /** Панели (`GrTabPanel`). */
11
+ default?: () => any;
12
+ /** Содержимое вкладки целиком — уходит в `GrTabs`. */
13
+ tab?: (props: {
14
+ tab: GrTab;
15
+ active: boolean;
16
+ disabled: boolean;
17
+ }) => any;
18
+ /** Пустой ряд вкладок — уходит в `GrTabs`. */
19
+ empty?: () => any;
20
+ };
21
+ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<GrTabsWithPanelsProps>, {
22
+ idBase: undefined;
23
+ size: undefined;
24
+ variant: undefined;
25
+ activationMode: undefined;
26
+ orientation: undefined;
27
+ closable: undefined;
28
+ emptyText: undefined;
29
+ }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
30
+ "update:modelValue": (value: string) => void;
31
+ close: (value: string) => void;
32
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<GrTabsWithPanelsProps>, {
33
+ idBase: undefined;
34
+ size: undefined;
35
+ variant: undefined;
36
+ activationMode: undefined;
37
+ orientation: undefined;
38
+ closable: undefined;
39
+ emptyText: undefined;
40
+ }>>> & Readonly<{
41
+ onClose?: ((value: string) => any) | undefined;
42
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
43
+ }>, {
44
+ variant: import("../GrTabs/grTabsStyles.ts").GrTabsVariant;
45
+ closable: boolean;
46
+ size: import("../GrTabs/grTabsStyles.ts").GrTabsSize;
47
+ activationMode: import("../GrTabs/GrTabs.vue").GrTabsActivationMode;
48
+ emptyText: string;
49
+ orientation: import("../GrTabs/grTabsStyles.ts").GrTabsOrientation;
50
+ idBase: string;
51
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
52
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
53
+ declare const _default: typeof __VLS_export;
54
+ export default _default;
55
+ type __VLS_TypePropsToOption<T> = {
56
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
57
+ type: import('vue').PropType<Required<T>[K]>;
58
+ } : {
59
+ type: import('vue').PropType<T[K]>;
60
+ required: true;
61
+ };
62
+ };
63
+ type __VLS_WithDefaults<P, D> = {
64
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
65
+ default: D[K];
66
+ }> : P[K];
67
+ };
68
+ type __VLS_WithSlots<T, S> = T & {
69
+ new (): {
70
+ $slots: S;
71
+ };
72
+ };
73
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
74
+ [K in keyof T]: T[K];
75
+ } : {
76
+ [K in keyof T as K]: T[K];
77
+ }) & {};
@@ -0,0 +1 @@
1
+ export declare const grTabsWithPanelsConfig: import("@feugene/unocss-preset-granular/contract").GranularComponentDescriptor<"GrTabsWithPanels">;
@@ -0,0 +1,4 @@
1
+ export { default } from './GrTabsWithPanels.vue';
2
+ export { default as GrTabsWithPanels } from './GrTabsWithPanels.vue';
3
+ export { grTabsWithPanelsConfig } from './config';
4
+ export type { GrTabsWithPanelsEmits, GrTabsWithPanelsProps } from './GrTabsWithPanels.vue';
@@ -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;