@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
@@ -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)]";
@@ -1,5 +1,5 @@
1
1
  import { type GrSwitchLabelPosition, type GrSwitchSize } from './grSwitchStyles';
2
- export type { GrSwitchLabelPosition, GrSwitchSize } from './grSwitchStyles';
2
+ export type { GrSwitchLabelPosition, GrSwitchSize, GrSwitchStateTextSize, } from './grSwitchStyles';
3
3
  /**
4
4
  * Пропсы публичного GR-примитива «Switch».
5
5
  */
@@ -35,6 +35,20 @@ export interface GrSwitchProps {
35
35
  activeBackgroundColor?: string;
36
36
  /** Кастомный цвет фона в неактивном состоянии. Если не задан — `var(--gr-muted)`. */
37
37
  inactiveBackgroundColor?: string;
38
+ /**
39
+ * Подпись состояния внутри дорожки — на свободной от бегунка стороне.
40
+ * Помещается только на `md` и `lg`; на мелких ступенях не рисуется.
41
+ */
42
+ showStateText?: boolean;
43
+ /** Текст включённого состояния. Без него — `gr.switch.on` из локали. */
44
+ checkedText?: string;
45
+ /** Текст выключенного состояния. Без него — `gr.switch.off` из локали. */
46
+ uncheckedText?: string;
47
+ /**
48
+ * Дорожка растягивается под подпись, а ступень размера становится нижней
49
+ * границей ширины. Без `showStateText` смысла не имеет: тянуться не под что.
50
+ */
51
+ autoWidth?: boolean;
38
52
  }
39
53
  export interface GrSwitchEmits {
40
54
  (e: 'update:modelValue', value: boolean): void;
@@ -42,12 +56,24 @@ export interface GrSwitchEmits {
42
56
  (e: 'focus', event: FocusEvent): void;
43
57
  (e: 'blur', event: FocusEvent): void;
44
58
  }
45
- declare function focus(): void;
46
- declare function blur(): void;
47
59
  type __VLS_Slots = {
48
60
  /** Подпись переключателя. */
49
- default?: () => any;
61
+ 'default'?: () => any;
62
+ /**
63
+ * Знак на бегунке во включённом состоянии — галочка, замок, что угодно.
64
+ *
65
+ * Размер задаёт обёртка по ступени `size`, поэтому содержимое слота тянется
66
+ * до неё: `class="h-full w-full"`, как у `GrBadge` и `GrChip`.
67
+ *
68
+ * Знак декоративен — бегунок целиком `aria-hidden`, а состояние диктор берёт
69
+ * из `aria-checked`. Смысла, которого нет больше нигде, сюда класть нельзя.
70
+ */
71
+ 'checked-icon'?: () => any;
72
+ /** То же для выключенного состояния. Слоты независимы. */
73
+ 'unchecked-icon'?: () => any;
50
74
  };
75
+ declare function focus(): void;
76
+ declare function blur(): void;
51
77
  declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<GrSwitchProps>, {
52
78
  modelValue: boolean;
53
79
  disabled: boolean;
@@ -64,6 +90,10 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
64
90
  form: undefined;
65
91
  activeBackgroundColor: undefined;
66
92
  inactiveBackgroundColor: undefined;
93
+ showStateText: undefined;
94
+ checkedText: undefined;
95
+ uncheckedText: undefined;
96
+ autoWidth: undefined;
67
97
  }>>, {
68
98
  focus: typeof focus;
69
99
  blur: typeof blur;
@@ -88,6 +118,10 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
88
118
  form: undefined;
89
119
  activeBackgroundColor: undefined;
90
120
  inactiveBackgroundColor: undefined;
121
+ showStateText: undefined;
122
+ checkedText: undefined;
123
+ uncheckedText: undefined;
124
+ autoWidth: undefined;
91
125
  }>>> & Readonly<{
92
126
  onBlur?: ((event: FocusEvent) => any) | undefined;
93
127
  onChange?: ((value: boolean) => any) | undefined;
@@ -100,6 +134,8 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
100
134
  size: GrSwitchSize;
101
135
  labelPosition: GrSwitchLabelPosition;
102
136
  loading: boolean;
137
+ showStateText: boolean;
138
+ autoWidth: boolean;
103
139
  value: string;
104
140
  name: string;
105
141
  invalid: boolean;
@@ -109,6 +145,8 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
109
145
  loadingText: string;
110
146
  activeBackgroundColor: string;
111
147
  inactiveBackgroundColor: string;
148
+ checkedText: string;
149
+ uncheckedText: string;
112
150
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
113
151
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
114
152
  declare const _default: typeof __VLS_export;
@@ -6,6 +6,8 @@ import type { GrSwitchSize } from './grSwitchStyles';
6
6
  */
7
7
  export interface GrSwitchConfigurableProps {
8
8
  size: GrSwitchSize;
9
+ showStateText: boolean;
10
+ autoWidth: boolean;
9
11
  }
10
12
  declare module '../../composables/useGrComponentConfig' {
11
13
  interface GrComponentDefaultsRegistry {
@@ -12,39 +12,59 @@ export declare const rootBase = "inline-flex items-center gap-2 select-none disa
12
12
  export declare const rootLabelPositions: Record<GrSwitchLabelPosition, string>;
13
13
  export declare const trackBase = "relative inline-flex shrink-0 items-center rounded-[var(--gr-radius-full)] border border-[var(--gr-switch-track-brd)] transition-colors duration-[var(--gr-duration-fast)]";
14
14
  export declare const trackSizes: Record<GrSwitchSize, string>;
15
- export declare const thumbBase = "inline-flex shrink-0 items-center justify-center rounded-[var(--gr-radius-full)] bg-[var(--gr-card)] shadow-[var(--gr-shadow-1)] transition-transform duration-[var(--gr-duration-fast)]";
15
+ /**
16
+ * Дорожка в режиме `autoWidth`: та же ступень становится **нижней границей**,
17
+ * а ширину берёт подпись. Высота остаётся фиксированной — тянется только строка.
18
+ */
19
+ export declare const trackAutoSizes: Record<GrSwitchSize, string>;
20
+ export declare const thumbBase = "absolute top-[1px] inline-flex shrink-0 items-center justify-center rounded-[var(--gr-radius-full)] bg-[var(--gr-card)] shadow-[var(--gr-shadow-1)] transition-[left,transform] duration-[var(--gr-duration-fast)]";
16
21
  export declare const thumbSizes: Record<GrSwitchSize, string>;
17
- /** Спиннер загрузки живёт в бегунке, поэтому мельче его на ступень. */
18
- export declare const thumbSpinnerSizes: Record<GrSwitchSize, string>;
19
- export declare const thumbSpinnerBase = "animate-spin text-[var(--gr-muted-fg)]";
20
22
  /**
21
- * Сдвиг бегунка по горизонтали.
23
+ * Содержимое бегунка спиннер загрузки или иконка действия — мельче его на
24
+ * ступень: иначе знак упирается в края круга и теряет форму.
25
+ */
26
+ export declare const thumbContentSizes: Record<GrSwitchSize, string>;
27
+ /**
28
+ * Цвет содержимого бегунка — один на спиннер и иконку.
29
+ *
30
+ * Хук с фолбэком в самом классе, а не инлайн-значение: инлайн победил бы CSS
31
+ * потребителя, и переопределить цвет было бы нечем.
22
32
  *
23
- * Бегунок обычный флекс-ребёнок дорожки, поэтому сдвиг отсчитывается от её
24
- * **content-box**, а он на 2px уже внешнего размера: рамка по 1px с каждой
25
- * стороны. Отсюда и весь расчёт.
33
+ * По состоянию цвет не ветвится и в `disabled` не тускнеет: гасится дорожка, а
34
+ * бегунок остаётся `--gr-card` в любом состоянии содержимое, меняющее цвет,
35
+ * разошлось бы со своей же подложкой.
36
+ */
37
+ export declare const thumbContentColorClass = "text-[var(--gr-switch-thumb-fg,var(--gr-muted-fg))]";
38
+ export declare const thumbSpinnerBase = "animate-spin text-[var(--gr-switch-thumb-fg,var(--gr-muted-fg))]";
39
+ /** Обёртка иконки держит размер, содержимое слота тянется до неё `h-full w-full`. */
40
+ export declare const thumbIconBase = "inline-flex shrink-0 items-center justify-center text-[var(--gr-switch-thumb-fg,var(--gr-muted-fg))]";
41
+ /**
42
+ * Зазор бегунка со всех сторон, px.
26
43
  *
27
- * Зазор по вертикали задан геометрией и равен 1px на всех ступенях
28
- * (`(content-height − thumb) / 2`, дорожка центрирует бегунок сама). Значит и по
29
- * горизонтали он обязан быть 1px: иначе бегунок в покое выглядит вдавленным
44
+ * Дорожка `border-box` с рамкой 1px, и по вертикали зазор задан геометрией:
45
+ * `(content-height − thumb) / 2` даёт ровно 1 на всех ступенях. Значит и по
46
+ * горизонтали он обязан быть тем же: иначе бегунок в покое выглядит вдавленным
30
47
  * внутрь, а в крайнем положении прижатым к краю — именно так и было, зазоры
31
48
  * расходились на 1–2px у `xs`, `sm` и `lg`.
32
49
  *
33
- * | ступень | дорожка | content | бегунок | покой | крайнее |
34
- * | --- | --- | --- | --- | --- | --- |
35
- * | `xs` | 28 | 26 | 12 | 1 | 13 |
36
- * | `sm` | 36 | 34 | 16 | 1 | 17 |
37
- * | `md` | 44 | 42 | 20 | 1 | 21 |
38
- * | `lg` | 56 | 54 | 24 | 1 | 29 |
50
+ * Гейт живёт в `__tests__/GrSwitch.test.ts` и считает вертикаль заново из
51
+ * `trackSizes`/`thumbSizes`, поэтому смена любой ступени размера сразу покажет
52
+ * разъехавшийся зазор.
53
+ */
54
+ export declare const SWITCH_THUMB_GAP = 1;
55
+ /**
56
+ * Положение бегунка — **без единого числа, зависящего от ширины дорожки**.
57
+ *
58
+ * Крайнее положение выражено парой `left: calc(100% − зазор)` и
59
+ * `translateX(-100%)`: процент в `left` считается от padding-box дорожки,
60
+ * процент в `transform` — от самого бегунка. В сумме левый край встаёт на
61
+ * `ширина − бегунок − зазор`, какой бы ширина ни была.
39
62
  *
40
- * Крайнее положение `content thumb зазор`. Гейт на эту арифметику живёт в
41
- * `__tests__/GrSwitch.test.ts`: он считает её заново из `trackSizes`/`thumbSizes`,
42
- * поэтому смена любой ступени размера сразу покажет разъехавшийся зазор.
63
+ * Обе величины анимируются, и композиция даёт строго линейный ход: в момент `t`
64
+ * смещение равно `t · (ширина бегунок)`. Поэтому режим `autoWidth` не требует
65
+ * ни измерений, ни ResizeObserver только эти два класса.
43
66
  */
44
- export declare const thumbTranslations: Record<GrSwitchSize, {
45
- checked: string;
46
- unchecked: string;
47
- }>;
67
+ export declare const thumbPositions: Record<'checked' | 'unchecked', string>;
48
68
  export declare const labelBase = "text-[var(--gr-muted-fg)]";
49
69
  /**
50
70
  * Недоступность гасится токеном, а не `opacity`: прозрачность разбавляет
@@ -53,8 +73,92 @@ export declare const labelBase = "text-[var(--gr-muted-fg)]";
53
73
  export declare const labelDisabledClass = "text-[var(--gr-disabled-fg)]";
54
74
  export declare const labelSizes: Record<GrSwitchSize, string>;
55
75
  export declare function grSwitchRootClass(labelPosition: GrSwitchLabelPosition): string;
56
- export declare function grSwitchTrackClass(size: GrSwitchSize): string;
76
+ export declare function grSwitchTrackClass(size: GrSwitchSize, autoWidth?: boolean): string;
57
77
  export declare function grSwitchThumbClass(options: GrSwitchThumbClassOptions): string;
58
78
  export declare function grSwitchSpinnerClass(size: GrSwitchSize): string;
79
+ export declare function grSwitchThumbIconClass(size: GrSwitchSize): string;
59
80
  export declare function grSwitchLabelClass(size: GrSwitchSize, disabled?: boolean): string;
81
+ /**
82
+ * Ступени, на которых подпись состояния помещается внутрь дорожки.
83
+ *
84
+ * Свободное место рядом с бегунком — `content − (бегунок + зазор)`, то есть
85
+ * 13 / 17 / 21 / 29px на `xs` / `sm` / `md` / `lg`. Минимальная ступень
86
+ * типографики пакета — `--gr-text-xs` (12px), и «OFF» на ней занимает ~25px;
87
+ * собственные 10px дают ~20px. В 13 и 17 не встаёт и это, а ужимать шрифт
88
+ * дальше значит сделать подпись нечитаемой ради того, чтобы она была.
89
+ */
90
+ export declare const GR_SWITCH_STATE_TEXT_SIZES: readonly ["md", "lg"];
91
+ export type GrSwitchStateTextSize = typeof GR_SWITCH_STATE_TEXT_SIZES[number];
92
+ /** Свободное место в дорожке рядом с бегунком, px. Считается гейтом заново. */
93
+ export declare const stateTextRoom: Record<GrSwitchSize, number>;
94
+ export declare function isGrSwitchStateTextSize(size: GrSwitchSize): size is GrSwitchStateTextSize;
95
+ /**
96
+ * Ячейка подписи. Грид, а не флекс, ради второго режима: в `autoWidth` в ту же
97
+ * клетку кладётся невидимый дубль противоположного текста, и ширина ячейки
98
+ * становится максимумом из двух — иначе дорожка дёргалась бы на каждом щелчке
99
+ * («ON» 15.6px против «OFF» 19.9px).
100
+ */
101
+ export declare const stateTextBase = "pointer-events-none grid items-center justify-items-center overflow-hidden font-semibold uppercase leading-none";
102
+ /**
103
+ * Где ячейка живёт. При фиксированной ширине она накрывает дорожку и на её
104
+ * размер не влияет; в `autoWidth` встаёт в поток и ширину как раз задаёт.
105
+ */
106
+ export declare const stateTextLayouts: Record<'fixed' | 'auto', string>;
107
+ /** Оба текста ложатся в одну клетку грида — отсюда максимум по ширине. */
108
+ export declare const stateTextStackClass = "col-start-1 row-start-1";
109
+ /** Дубль занимает место, но не рисуется: `visibility`, а не `display`. */
110
+ export declare const stateTextGhostClass = "col-start-1 row-start-1 invisible";
111
+ /**
112
+ * Кегль подписи — свой, а не ступень шкалы пакета: минимальный `--gr-text-xs`
113
+ * это 12px, и трёхбуквенное слово на нём занимает ~24px при 21px места.
114
+ *
115
+ * Значения меряны, а не выведены (Inter 600, uppercase). На `md` в 21px:
116
+ * «OFF» 17.9, «НЕТ» 18.8, «ВКЛ» 19.4 — то есть 9px берёт трёхбуквенные слова
117
+ * во всех трёх локалях с запасом; 10px оставлял «НЕТ» 0.1px до обреза.
118
+ * На `lg` места 29px, и 11px там читается лучше, не рискуя ничем.
119
+ *
120
+ * Четырёхбуквенное «ВЫКЛ» не встаёт ни на одной ступени и ни при каком кегле
121
+ * (31px на 10px кегля) — поэтому русский дефолт «ДА»/«НЕТ», а не «ВКЛ»/«ВЫКЛ».
122
+ */
123
+ export declare const stateTextSizes: Record<GrSwitchStateTextSize, string>;
124
+ /** Отступ со стороны бегунка — `бегунок + зазор`; остаток и есть место подписи. */
125
+ export declare const stateTextPaddings: Record<GrSwitchStateTextSize, {
126
+ checked: string;
127
+ unchecked: string;
128
+ }>;
129
+ /**
130
+ * Отступы в `autoWidth` — те же, плюс воздух с **обеих** сторон.
131
+ *
132
+ * При фиксированной ширине текст центруется в остатке и сам ни во что не
133
+ * упирается. Здесь остатка нет: ширину задаёт сам текст, и без воздуха он
134
+ * прилипает к бегунку с одной стороны и к закруглению с другой — проверено
135
+ * глазами, «ОНЛАЙН» вплотную к бегунку читается как дефект вёрстки.
136
+ *
137
+ * Поэтому со стороны бегунка отступ равен `бегунок + зазор + воздух`, а со
138
+ * свободной — просто воздуху. Воздух: 8px на `md`, 10px на `lg`.
139
+ */
140
+ export declare const stateTextAutoPaddings: Record<GrSwitchStateTextSize, {
141
+ checked: string;
142
+ unchecked: string;
143
+ }>;
144
+ /**
145
+ * Цвет подписи — роль `-fg` той заливки, на которой она лежит.
146
+ *
147
+ * Хук стоит фолбэком в самом классе, а не инлайн-значением: инлайн победил бы
148
+ * CSS потребителя, и переопределить токен было бы нечем. Заливку дорожки задают
149
+ * произвольным цветом (`activeBackgroundColor`), и безопасный цвет текста на
150
+ * ней библиотека не вычислит — его называет тот же, кто задал фон.
151
+ */
152
+ export declare const stateTextColors: {
153
+ readonly checked: "text-[var(--gr-switch-state-text-fg,var(--gr-primary-fg))]";
154
+ readonly unchecked: "text-[var(--gr-switch-state-text-fg,var(--gr-muted-fg))]";
155
+ readonly disabled: "text-[var(--gr-switch-state-text-fg,var(--gr-disabled-fg))]";
156
+ };
157
+ type GrSwitchStateTextClassOptions = {
158
+ size: GrSwitchStateTextSize;
159
+ checked: boolean;
160
+ disabled: boolean;
161
+ autoWidth: boolean;
162
+ };
163
+ export declare function grSwitchStateTextClass(options: GrSwitchStateTextClassOptions): string;
60
164
  export {};
@@ -5,6 +5,6 @@ export { default as GrSwitch } from './GrSwitch.vue';
5
5
  export { grSwitchConfig } from './config';
6
6
  export type { GrSwitchConfigurableProps } from './defaults';
7
7
  export { grSwitchSafelist } from './safelist';
8
- export type { GrSwitchLabelPosition, GrSwitchProps, GrSwitchSize } from './GrSwitch.vue';
8
+ export type { GrSwitchLabelPosition, GrSwitchProps, GrSwitchSize, GrSwitchStateTextSize, } from './GrSwitch.vue';
9
9
  export type { GrSwitchEmits } from './GrSwitch.vue';
10
10
  export type GrSwitchInstance = ComponentExposed<typeof GrSwitchComponent>;
@@ -2,12 +2,13 @@ export declare const grSwitchClassTokens: {
2
2
  readonly rootBase: string[];
3
3
  readonly rootLabelPositions: string[];
4
4
  readonly trackBase: string[];
5
- readonly trackSizes: string[];
5
+ readonly trackSizes: readonly string[];
6
6
  readonly thumbBase: string[];
7
7
  readonly thumbSizes: string[];
8
- readonly thumbSpinner: readonly string[];
9
- readonly thumbTranslations: string[];
8
+ readonly thumbContent: readonly string[];
9
+ readonly thumbPositions: string[];
10
10
  readonly labelBase: readonly string[];
11
11
  readonly labelSizes: string[];
12
+ readonly stateText: readonly string[];
12
13
  };
13
14
  export declare const grSwitchSafelist: string[];
@@ -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';