@feugene/granularity 0.11.0 → 0.13.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 (527) hide show
  1. package/dist/GrBadge.css +1 -1
  2. package/dist/GrFormFile.css +1 -1
  3. package/dist/GrToaster.css +1 -1
  4. package/dist/GrTree.css +1 -1
  5. package/dist/chunks/{config-ClhKPJvg.js → config-23WtUiAL.js} +1 -1
  6. package/dist/chunks/config-23WtUiAL.js.map +1 -0
  7. package/dist/chunks/config-8Pcutu1j.js.map +1 -0
  8. package/dist/chunks/{config-1uSYl98Y.js → config-B0i5r8kH.js} +1 -1
  9. package/dist/chunks/config-B0i5r8kH.js.map +1 -0
  10. package/dist/chunks/{config-BOlr7qw7.js → config-B5Rknzkd.js} +33 -39
  11. package/dist/chunks/config-B5Rknzkd.js.map +1 -0
  12. package/dist/chunks/config-B7W9VlZ7.js +5 -0
  13. package/dist/chunks/config-B7W9VlZ7.js.map +1 -0
  14. package/dist/chunks/config-BDSHekVC.js +84 -0
  15. package/dist/chunks/config-BDSHekVC.js.map +1 -0
  16. package/dist/chunks/config-BLHqZhy-.js.map +1 -0
  17. package/dist/chunks/{config-eYLZYOUS2.js → config-BMKNHFMD2.js} +15 -15
  18. package/dist/chunks/config-BMKNHFMD2.js.map +1 -0
  19. package/dist/chunks/config-BUHuGBik2.js.map +1 -0
  20. package/dist/chunks/config-BWiPnygb.js +5 -0
  21. package/dist/chunks/config-BWiPnygb.js.map +1 -0
  22. package/dist/chunks/config-BX1JTrkV.js.map +1 -0
  23. package/dist/chunks/config-BZFUM3Ky.js +75 -0
  24. package/dist/chunks/config-BZFUM3Ky.js.map +1 -0
  25. package/dist/chunks/{config-DUcu1D68.js → config-BmNT0Fmx.js} +2 -2
  26. package/dist/chunks/config-BmNT0Fmx.js.map +1 -0
  27. package/dist/chunks/{config-C49QUoJL.js → config-BvVq2gbd.js} +1 -1
  28. package/dist/chunks/{config-C49QUoJL.js.map → config-BvVq2gbd.js.map} +1 -1
  29. package/dist/chunks/{config-CrG1XiE7.js → config-C4hJxXDa.js} +5 -5
  30. package/dist/chunks/config-C4hJxXDa.js.map +1 -0
  31. package/dist/chunks/config-CB4RVt9M.js +66 -0
  32. package/dist/chunks/config-CB4RVt9M.js.map +1 -0
  33. package/dist/chunks/config-COE_vZ-l.js +52 -0
  34. package/dist/chunks/config-COE_vZ-l.js.map +1 -0
  35. package/dist/chunks/{config-CziwTDDL.js → config-CPdmr7tC.js} +1 -1
  36. package/dist/chunks/{config-CziwTDDL.js.map → config-CPdmr7tC.js.map} +1 -1
  37. package/dist/chunks/{config-BIRO0vDJ2.js → config-DPDFYzIa.js} +2 -2
  38. package/dist/chunks/config-DPDFYzIa.js.map +1 -0
  39. package/dist/chunks/{config-DnvPqu4g.js → config-DRKXJ9PW2.js} +1 -1
  40. package/dist/chunks/config-DRKXJ9PW2.js.map +1 -0
  41. package/dist/chunks/config-DToHb81g.js +45 -0
  42. package/dist/chunks/config-DToHb81g.js.map +1 -0
  43. package/dist/chunks/{config-jBp9wVv-.js → config-D_myOZbA.js} +1 -1
  44. package/dist/chunks/{config-jBp9wVv-.js.map → config-D_myOZbA.js.map} +1 -1
  45. package/dist/chunks/{config-D_R56_gT.js → config-Dg_6FTvJ.js} +1 -1
  46. package/dist/chunks/config-Dg_6FTvJ.js.map +1 -0
  47. package/dist/chunks/config-Dlm49Jp5.js +5 -0
  48. package/dist/chunks/config-Dlm49Jp5.js.map +1 -0
  49. package/dist/chunks/config-DpqOnJiz.js.map +1 -0
  50. package/dist/chunks/config-Dqy0rPPO2.js.map +1 -0
  51. package/dist/chunks/config-Droqn55j.js +8 -0
  52. package/dist/chunks/config-Droqn55j.js.map +1 -0
  53. package/dist/chunks/{config-C4snOIXg.js → config-KXuionN3.js} +1 -1
  54. package/dist/chunks/{config-C4snOIXg.js.map → config-KXuionN3.js.map} +1 -1
  55. package/dist/chunks/config-LGrZIdaZ.js.map +1 -0
  56. package/dist/chunks/{config-DezDih8_.js → config-LqDC_rvp.js} +2 -2
  57. package/dist/chunks/config-LqDC_rvp.js.map +1 -0
  58. package/dist/chunks/config-QaIc_gRa2.js.map +1 -0
  59. package/dist/chunks/config-U4m9PSql2.js.map +1 -0
  60. package/dist/chunks/{config-B7IIWGt_2.js → config-XmTv4pnI.js} +2 -2
  61. package/dist/chunks/config-XmTv4pnI.js.map +1 -0
  62. package/dist/chunks/config-eXB87DOi.js +9 -0
  63. package/dist/chunks/config-eXB87DOi.js.map +1 -0
  64. package/dist/chunks/{config-C7NpDrfO.js → config-gZWR75Bh2.js} +1 -1
  65. package/dist/chunks/config-gZWR75Bh2.js.map +1 -0
  66. package/dist/chunks/config-ipvU0lzP.js.map +1 -0
  67. package/dist/chunks/config-xR4XVmcy2.js.map +1 -0
  68. package/dist/chunks/context-Bfrgsluh.js +9 -0
  69. package/dist/chunks/context-Bfrgsluh.js.map +1 -0
  70. package/dist/chunks/context-DdNIxa1w.js +9 -0
  71. package/dist/chunks/context-DdNIxa1w.js.map +1 -0
  72. package/dist/chunks/context-DfWYCBB-.js +129 -0
  73. package/dist/chunks/context-DfWYCBB-.js.map +1 -0
  74. package/dist/chunks/{en-BdtiS2d3.js → en-Cr6EkG8c.js} +52 -4
  75. package/dist/chunks/en-Cr6EkG8c.js.map +1 -0
  76. package/dist/chunks/{es-DBhctWg-.js → es-DuYb1Qju.js} +3 -3
  77. package/dist/chunks/{es-DBhctWg-.js.map → es-DuYb1Qju.js.map} +1 -1
  78. package/dist/chunks/{es-BGRMZbe9.js → es-i08e9Sdo.js} +52 -4
  79. package/dist/chunks/es-i08e9Sdo.js.map +1 -0
  80. package/dist/chunks/{grBadgeStyles-DrycBuKT.js → grBadgeStyles-D3dFjr_N.js} +12 -12
  81. package/dist/chunks/grBadgeStyles-D3dFjr_N.js.map +1 -0
  82. package/dist/chunks/{grButtonStyles-C7Yga_Q1.js → grButtonStyles-DRBgDmOp.js} +28 -28
  83. package/dist/chunks/grButtonStyles-DRBgDmOp.js.map +1 -0
  84. package/dist/chunks/{grDropdownStyles-B_-DKytw.js → grDropdownStyles-HBPkghVr.js} +2 -2
  85. package/dist/chunks/{grDropdownStyles-B_-DKytw.js.map → grDropdownStyles-HBPkghVr.js.map} +1 -1
  86. package/dist/chunks/grModalEscStack-BXk-9mv7.js +43 -0
  87. package/dist/chunks/grModalEscStack-BXk-9mv7.js.map +1 -0
  88. package/dist/chunks/{grModalStyles-DWd3i05Q.js → grModalStyles-D8-shx9A.js} +1 -1
  89. package/dist/chunks/grModalStyles-D8-shx9A.js.map +1 -0
  90. package/dist/chunks/{grSelectStyles-CLK5hRd3.js → grSelectStyles-CwMUQrBZ.js} +12 -12
  91. package/dist/chunks/grSelectStyles-CwMUQrBZ.js.map +1 -0
  92. package/dist/chunks/{grStyle-Blc9otAx.js → grStyle-CdvxTXPH.js} +2 -2
  93. package/dist/chunks/grStyle-CdvxTXPH.js.map +1 -0
  94. package/dist/chunks/{granularityI18n-DoV7Ca2m.js → granularityI18n-SH0I--GW.js} +1 -1
  95. package/dist/chunks/{granularityI18n-DoV7Ca2m.js.map → granularityI18n-SH0I--GW.js.map} +1 -1
  96. package/dist/chunks/{ru-BFCnOiML.js → ru-B5XOOYZt.js} +52 -4
  97. package/dist/chunks/ru-B5XOOYZt.js.map +1 -0
  98. package/dist/chunks/{safelist-Do2RtzLB.js → safelist-BvO8HPnE.js} +1 -1
  99. package/dist/chunks/{safelist-Do2RtzLB.js.map → safelist-BvO8HPnE.js.map} +1 -1
  100. package/dist/chunks/shared-D-v9lit0.js +188 -0
  101. package/dist/chunks/shared-D-v9lit0.js.map +1 -0
  102. package/dist/chunks/{transition-TLFw4KBn.js → useScrollLock-K7kaP2Ud.js} +52 -1
  103. package/dist/chunks/useScrollLock-K7kaP2Ud.js.map +1 -0
  104. package/dist/components/GrAlert/chunks/GrAlert-B9gmpoPC.js +251 -0
  105. package/dist/components/GrAlert/chunks/GrAlert-B9gmpoPC.js.map +1 -0
  106. package/dist/components/GrAlert/index.js +2 -2
  107. package/dist/components/GrAutocomplete/chunks/GrAutocomplete-BVLoQ5tZ.js +499 -0
  108. package/dist/components/GrAutocomplete/chunks/GrAutocomplete-BVLoQ5tZ.js.map +1 -0
  109. package/dist/components/GrAutocomplete/index.js +3 -0
  110. package/dist/components/GrAvatar/chunks/{GrAvatar-96CpTCq5.js → GrAvatar-CTOUVBF7.js} +1 -1
  111. package/dist/components/GrAvatar/chunks/GrAvatar-CTOUVBF7.js.map +1 -0
  112. package/dist/components/GrAvatar/index.js +1 -1
  113. package/dist/components/GrBadge/chunks/{GrBadge-B77XlaqE.js → GrBadge-D1jefy4S.js} +12 -8
  114. package/dist/components/GrBadge/chunks/GrBadge-D1jefy4S.js.map +1 -0
  115. package/dist/components/GrBadge/index.js +2 -2
  116. package/dist/components/GrBadgeWrap/chunks/{GrBadgeWrap-CcktMOdg.js → GrBadgeWrap-DWDxHdiQ.js} +1 -1
  117. package/dist/components/GrBadgeWrap/chunks/GrBadgeWrap-DWDxHdiQ.js.map +1 -0
  118. package/dist/components/GrBadgeWrap/index.js +1 -1
  119. package/dist/components/GrBottomNav/chunks/{GrBottomNav-usuMgG8_.js → GrBottomNav-vSE4LXmk.js} +2 -2
  120. package/dist/components/GrBottomNav/chunks/GrBottomNav-vSE4LXmk.js.map +1 -0
  121. package/dist/components/GrBottomNav/index.js +1 -1
  122. package/dist/components/GrButton/chunks/{GrButton-BlffdeJr.js → GrButton-DCi4CUpo.js} +18 -14
  123. package/dist/components/GrButton/chunks/GrButton-DCi4CUpo.js.map +1 -0
  124. package/dist/components/GrButton/index.js +4 -4
  125. package/dist/components/GrCard/chunks/{GrCard-DUNMkuHW.js → GrCard-CxCjyHMb.js} +1 -1
  126. package/dist/components/GrCard/chunks/GrCard-CxCjyHMb.js.map +1 -0
  127. package/dist/components/GrCard/index.js +1 -1
  128. package/dist/components/GrCheckbox/chunks/{GrCheckbox-DJhzZZdO.js → GrCheckbox-BbIDRXtl.js} +5 -5
  129. package/dist/components/GrCheckbox/chunks/GrCheckbox-BbIDRXtl.js.map +1 -0
  130. package/dist/components/GrCheckbox/index.js +1 -1
  131. package/dist/components/GrCollapse/chunks/{GrCollapse-CPPLh_xU.js → GrCollapse-DApXztn8.js} +6 -6
  132. package/dist/components/GrCollapse/chunks/GrCollapse-DApXztn8.js.map +1 -0
  133. package/dist/components/GrCollapse/index.js +2 -2
  134. package/dist/components/GrCommandPalette/chunks/GrCommandPalette-6OyvNbek.js +410 -0
  135. package/dist/components/GrCommandPalette/chunks/GrCommandPalette-6OyvNbek.js.map +1 -0
  136. package/dist/components/GrCommandPalette/index.js +3 -0
  137. package/dist/components/GrConfigProvider/chunks/GrConfigProvider-BtyeBGm8.js +57 -0
  138. package/dist/components/GrConfigProvider/chunks/GrConfigProvider-BtyeBGm8.js.map +1 -0
  139. package/dist/components/GrConfigProvider/index.js +4 -0
  140. package/dist/components/GrConfirmDialog/chunks/{GrConfirmDialog-BWYKCsHd.js → GrConfirmDialog-e4120mWw.js} +5 -5
  141. package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-e4120mWw.js.map +1 -0
  142. package/dist/components/GrConfirmDialog/index.js +1 -1
  143. package/dist/components/GrDataTable/chunks/GrDataTable-C1CzxV0p.js +307 -0
  144. package/dist/components/GrDataTable/chunks/GrDataTable-C1CzxV0p.js.map +1 -0
  145. package/dist/components/GrDataTable/index.js +2 -2
  146. package/dist/components/GrDialog/chunks/{GrDialog-5DAS-1Lb.js → GrDialog-BPMvDHOz.js} +6 -6
  147. package/dist/components/GrDialog/chunks/GrDialog-BPMvDHOz.js.map +1 -0
  148. package/dist/components/GrDialog/index.js +1 -1
  149. package/dist/components/GrDialogService/chunks/{GrDialogService-DY_fmaMu.js → GrDialogService-CYXCTGm3.js} +36 -11
  150. package/dist/components/GrDialogService/chunks/GrDialogService-CYXCTGm3.js.map +1 -0
  151. package/dist/components/GrDialogService/index.js +2 -2
  152. package/dist/components/GrDivider/chunks/GrDivider-BdENZ1w0.js +54 -0
  153. package/dist/components/GrDivider/chunks/GrDivider-BdENZ1w0.js.map +1 -0
  154. package/dist/components/GrDivider/index.js +3 -0
  155. package/dist/components/GrDrawer/chunks/{GrDrawer-D1kzsjXN.js → GrDrawer-KevdZ5BB.js} +41 -17
  156. package/dist/components/GrDrawer/chunks/GrDrawer-KevdZ5BB.js.map +1 -0
  157. package/dist/components/GrDrawer/index.js +2 -2
  158. package/dist/components/GrDropdown/chunks/{GrDropdown-BXb5Cxxf.js → GrDropdown-BKoy8hm-.js} +91 -5
  159. package/dist/components/GrDropdown/chunks/GrDropdown-BKoy8hm-.js.map +1 -0
  160. package/dist/components/GrDropdown/index.js +2 -2
  161. package/dist/components/GrDropdownMenu/chunks/{GrDropdownMenu-DFEJLPcV.js → GrDropdownMenu-zCatXzmt.js} +11 -11
  162. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-zCatXzmt.js.map +1 -0
  163. package/dist/components/GrDropdownMenu/index.js +1 -1
  164. package/dist/components/GrEmptyState/chunks/{GrEmptyState-CA3BiTV7.js → GrEmptyState-CNb0BzjG.js} +3 -3
  165. package/dist/components/GrEmptyState/chunks/GrEmptyState-CNb0BzjG.js.map +1 -0
  166. package/dist/components/GrEmptyState/index.js +1 -1
  167. package/dist/components/GrFileUpload/chunks/{GrFileUpload-DvWPpiJS.js → GrFileUpload-CnLgUGDF.js} +12 -12
  168. package/dist/components/GrFileUpload/chunks/GrFileUpload-CnLgUGDF.js.map +1 -0
  169. package/dist/components/GrFileUpload/index.js +1 -1
  170. package/dist/components/GrForm/chunks/GrForm-CdaFjcyl.js +234 -0
  171. package/dist/components/GrForm/chunks/GrForm-CdaFjcyl.js.map +1 -0
  172. package/dist/components/GrForm/index.js +4 -0
  173. package/dist/components/GrFormField/chunks/GrFormField-CXCDBd99.js +100 -0
  174. package/dist/components/GrFormField/chunks/GrFormField-CXCDBd99.js.map +1 -0
  175. package/dist/components/GrFormField/index.js +3 -2
  176. package/dist/components/GrFormFile/chunks/{GrFormFile-CXcqqdvV.js → GrFormFile-CqacSbUl.js} +9 -9
  177. package/dist/components/GrFormFile/chunks/GrFormFile-CqacSbUl.js.map +1 -0
  178. package/dist/components/GrFormFile/index.js +1 -1
  179. package/dist/components/GrFormSection/chunks/{GrFormSection-Ce21jcgo.js → GrFormSection-C3w9DQJf.js} +1 -1
  180. package/dist/components/GrFormSection/chunks/GrFormSection-C3w9DQJf.js.map +1 -0
  181. package/dist/components/GrFormSection/index.js +1 -1
  182. package/dist/components/GrImageViewer/chunks/{GrImageViewer-OCUIrNh2.js → GrImageViewer-DDLJkvIU.js} +312 -223
  183. package/dist/components/GrImageViewer/chunks/GrImageViewer-DDLJkvIU.js.map +1 -0
  184. package/dist/components/GrImageViewer/index.js +1 -1
  185. package/dist/components/GrInput/chunks/GrInput-C1VBL0dg.js +337 -0
  186. package/dist/components/GrInput/chunks/GrInput-C1VBL0dg.js.map +1 -0
  187. package/dist/components/GrInput/index.js +2 -2
  188. package/dist/components/GrInputTag/chunks/{GrInputTag-zMgFqp2g.js → GrInputTag-BMk9jm42.js} +6 -6
  189. package/dist/components/GrInputTag/chunks/GrInputTag-BMk9jm42.js.map +1 -0
  190. package/dist/components/GrInputTag/index.js +2 -2
  191. package/dist/components/GrKbd/chunks/GrKbd-DTspwtoN.js +22 -0
  192. package/dist/components/GrKbd/chunks/GrKbd-DTspwtoN.js.map +1 -0
  193. package/dist/components/GrKbd/index.js +3 -0
  194. package/dist/components/GrLink/chunks/{GrLink-CYUe-Q8k.js → GrLink-BP0YrnL9.js} +1 -1
  195. package/dist/components/GrLink/chunks/{GrLink-CYUe-Q8k.js.map → GrLink-BP0YrnL9.js.map} +1 -1
  196. package/dist/components/GrLink/index.js +2 -2
  197. package/dist/components/GrList/chunks/{GrList-Dx772Ns4.js → GrList-5RA-tZzE.js} +3 -3
  198. package/dist/components/GrList/chunks/GrList-5RA-tZzE.js.map +1 -0
  199. package/dist/components/GrList/index.js +1 -1
  200. package/dist/components/GrLoading/chunks/{GrLoading--X_7rdbb.js → GrLoading-fRDtVfi7.js} +3 -3
  201. package/dist/components/GrLoading/chunks/GrLoading-fRDtVfi7.js.map +1 -0
  202. package/dist/components/GrLoading/index.js +2 -2
  203. package/dist/components/GrModal/chunks/{GrModal-BkjW9jZS.js → GrModal-BTu1-5eY.js} +4 -57
  204. package/dist/components/GrModal/chunks/GrModal-BTu1-5eY.js.map +1 -0
  205. package/dist/components/GrModal/index.js +3 -3
  206. package/dist/components/GrNavbar/chunks/{GrNavbar-DW3MiIIf.js → GrNavbar-keKT_mIM.js} +3 -3
  207. package/dist/components/GrNavbar/chunks/GrNavbar-keKT_mIM.js.map +1 -0
  208. package/dist/components/GrNavbar/index.js +1 -1
  209. package/dist/components/GrNumberInput/chunks/{GrNumberInput-CldPIWQx.js → GrNumberInput-l9ZOHG9D.js} +112 -28
  210. package/dist/components/GrNumberInput/chunks/GrNumberInput-l9ZOHG9D.js.map +1 -0
  211. package/dist/components/GrNumberInput/index.js +2 -2
  212. package/dist/components/GrPagination/chunks/{GrPagination-Bu9wv6it.js → GrPagination-C5Y69CuK.js} +59 -16
  213. package/dist/components/GrPagination/chunks/GrPagination-C5Y69CuK.js.map +1 -0
  214. package/dist/components/GrPagination/index.js +1 -1
  215. package/dist/components/GrProgressBar/chunks/{GrProgressBar-CC3z-Zqp.js → GrProgressBar-Dqg4Fj9S.js} +2 -2
  216. package/dist/components/GrProgressBar/chunks/GrProgressBar-Dqg4Fj9S.js.map +1 -0
  217. package/dist/components/GrProgressBar/index.js +2 -2
  218. package/dist/components/GrPromptDialog/chunks/{GrPromptDialog-TmWXbpEP.js → GrPromptDialog-DNUjRVB9.js} +7 -7
  219. package/dist/components/GrPromptDialog/chunks/GrPromptDialog-DNUjRVB9.js.map +1 -0
  220. package/dist/components/GrPromptDialog/index.js +2 -2
  221. package/dist/components/GrRadio/chunks/{GrRadio-CPTixXaY.js → GrRadio-DlhxPGqf.js} +5 -7
  222. package/dist/components/GrRadio/chunks/GrRadio-DlhxPGqf.js.map +1 -0
  223. package/dist/components/GrRadio/index.js +2 -2
  224. package/dist/components/GrRadioGroup/chunks/{GrRadioGroup-vKZCbkCp.js → GrRadioGroup-BXt9iw4q.js} +7 -5
  225. package/dist/components/GrRadioGroup/chunks/GrRadioGroup-BXt9iw4q.js.map +1 -0
  226. package/dist/components/GrRadioGroup/index.js +2 -2
  227. package/dist/components/GrRating/chunks/GrRating-Co-3Rk4h.js +241 -0
  228. package/dist/components/GrRating/chunks/GrRating-Co-3Rk4h.js.map +1 -0
  229. package/dist/components/GrRating/index.js +3 -0
  230. package/dist/components/GrResponseErrorBanner/chunks/{GrResponseErrorBanner-BWJNe2gr.js → GrResponseErrorBanner-2CvM7Z08.js} +2 -2
  231. package/dist/components/GrResponseErrorBanner/chunks/{GrResponseErrorBanner-BWJNe2gr.js.map → GrResponseErrorBanner-2CvM7Z08.js.map} +1 -1
  232. package/dist/components/GrResponseErrorBanner/chunks/{GrResponseErrorBanner-Cdu9ekK9.js → GrResponseErrorBanner-C8NGx8pE.js} +3 -3
  233. package/dist/components/GrResponseErrorBanner/chunks/{GrResponseErrorBanner-Cdu9ekK9.js.map → GrResponseErrorBanner-C8NGx8pE.js.map} +1 -1
  234. package/dist/components/GrResponseErrorBanner/index.js +2 -2
  235. package/dist/components/GrSegmented/chunks/{GrSegmented-C1y0UXpQ.js → GrSegmented-CTd3n4PA.js} +14 -11
  236. package/dist/components/GrSegmented/chunks/GrSegmented-CTd3n4PA.js.map +1 -0
  237. package/dist/components/GrSegmented/index.js +2 -2
  238. package/dist/components/GrSelect/chunks/{GrSelect-RShK21lK.js → GrSelect-Dn3FgJ3Z.js} +293 -87
  239. package/dist/components/GrSelect/chunks/GrSelect-Dn3FgJ3Z.js.map +1 -0
  240. package/dist/components/GrSelect/index.js +2 -2
  241. package/dist/components/GrSidebar/chunks/{GrSidebar-DkWozzwA.js → GrSidebar-cvnzBfj3.js} +7 -7
  242. package/dist/components/GrSidebar/chunks/GrSidebar-cvnzBfj3.js.map +1 -0
  243. package/dist/components/GrSidebar/index.js +1 -1
  244. package/dist/components/GrSkeleton/chunks/{GrSkeleton-DsN-_CDZ.js → GrSkeleton-BucA5F4J.js} +1 -1
  245. package/dist/components/GrSkeleton/chunks/GrSkeleton-BucA5F4J.js.map +1 -0
  246. package/dist/components/GrSkeleton/index.js +2 -2
  247. package/dist/components/GrSlider/chunks/GrSlider-CzzJ3bD-.js +286 -0
  248. package/dist/components/GrSlider/chunks/GrSlider-CzzJ3bD-.js.map +1 -0
  249. package/dist/components/GrSlider/index.js +3 -0
  250. package/dist/components/GrStatistic/chunks/GrStatistic-gHiAwrX5.js +128 -0
  251. package/dist/components/GrStatistic/chunks/GrStatistic-gHiAwrX5.js.map +1 -0
  252. package/dist/components/GrStatistic/index.js +3 -0
  253. package/dist/components/GrSwitch/chunks/{GrSwitch-DAioyccZ.js → GrSwitch-CJdRvS0s.js} +16 -7
  254. package/dist/components/GrSwitch/chunks/GrSwitch-CJdRvS0s.js.map +1 -0
  255. package/dist/components/GrSwitch/index.js +2 -2
  256. package/dist/components/GrTabPanels/chunks/GrTabPanels-DeEMgb_y.js +68 -0
  257. package/dist/components/GrTabPanels/chunks/GrTabPanels-DeEMgb_y.js.map +1 -0
  258. package/dist/components/GrTabPanels/index.js +3 -0
  259. package/dist/components/GrTable/chunks/{GrTable-Db3hRnKA.js → GrTable-sNvsA8wa.js} +24 -11
  260. package/dist/components/GrTable/chunks/GrTable-sNvsA8wa.js.map +1 -0
  261. package/dist/components/GrTable/index.js +2 -2
  262. package/dist/components/GrTabs/chunks/{GrTabs-Z-FDJUr_.js → GrTabs-BqTak0SR.js} +9 -4
  263. package/dist/components/GrTabs/chunks/GrTabs-BqTak0SR.js.map +1 -0
  264. package/dist/components/GrTabs/index.js +2 -2
  265. package/dist/components/GrTextarea/chunks/{GrTextarea-D56YxhKq.js → GrTextarea-DIYBAPpP.js} +16 -6
  266. package/dist/components/GrTextarea/chunks/GrTextarea-DIYBAPpP.js.map +1 -0
  267. package/dist/components/GrTextarea/index.js +2 -2
  268. package/dist/components/GrToaster/chunks/{GrToaster-eI8YvnIo.js → GrToaster-BVHjIHcM.js} +52 -11
  269. package/dist/components/GrToaster/chunks/GrToaster-BVHjIHcM.js.map +1 -0
  270. package/dist/components/GrToaster/index.js +2 -2
  271. package/dist/components/GrTooltip/chunks/{GrTooltip-BeyZ8ssR.js → GrTooltip-BMKH2lIx.js} +3 -3
  272. package/dist/components/GrTooltip/chunks/GrTooltip-BMKH2lIx.js.map +1 -0
  273. package/dist/components/GrTooltip/index.js +1 -1
  274. package/dist/components/GrTree/chunks/{GrTree-D3ODe2dB.js → GrTree-_12ChXRQ.js} +108 -9
  275. package/dist/components/GrTree/chunks/GrTree-_12ChXRQ.js.map +1 -0
  276. package/dist/components/GrTree/index.js +2 -2
  277. package/dist/components/GrTreeSelect/chunks/{GrTreeSelect-B2xBKs5Q.js → GrTreeSelect-CdaLG7Xq.js} +10 -10
  278. package/dist/components/GrTreeSelect/chunks/GrTreeSelect-CdaLG7Xq.js.map +1 -0
  279. package/dist/components/GrTreeSelect/index.js +2 -2
  280. package/dist/composables/useToast.js +3 -1
  281. package/dist/composables/useToast.js.map +1 -1
  282. package/dist/directives/loading.js +1 -1
  283. package/dist/granular-provider-node.js +6 -6
  284. package/dist/granular-provider-node.js.map +1 -1
  285. package/dist/granular-provider.js +1 -1
  286. package/dist/i18n/all.js +1 -1
  287. package/dist/i18n/index.js +1 -1
  288. package/dist/index.js +112 -87
  289. package/dist/index.js.map +1 -1
  290. package/dist/styles/base.css +30 -8
  291. package/dist/styles/index.css +6 -3
  292. package/dist/styles/preflight.css +8 -4
  293. package/dist/styles/themes/dark.css +52 -40
  294. package/dist/styles/themes/light.css +70 -45
  295. package/dist/styles/tokens.css +20 -20
  296. package/dist/types/src/components/GrAlert/GrAlert.vue.d.ts +26 -14
  297. package/dist/types/src/components/GrAlert/defaults.d.ts +17 -0
  298. package/dist/types/src/components/GrAlert/grAlertStyles.d.ts +55 -0
  299. package/dist/types/src/components/GrAlert/index.d.ts +4 -1
  300. package/dist/types/src/components/GrAutocomplete/GrAutocomplete.vue.d.ts +153 -0
  301. package/dist/types/src/components/GrAutocomplete/config.d.ts +1 -0
  302. package/dist/types/src/components/GrAutocomplete/defaults.d.ts +15 -0
  303. package/dist/types/src/components/GrAutocomplete/grAutocompleteStyles.d.ts +27 -0
  304. package/dist/types/src/components/GrAutocomplete/index.d.ts +6 -0
  305. package/dist/types/src/components/GrAutocomplete/safelist.d.ts +1 -0
  306. package/dist/types/src/components/GrAvatar/GrAvatar.vue.d.ts +1 -1
  307. package/dist/types/src/components/GrBadge/GrBadge.vue.d.ts +7 -7
  308. package/dist/types/src/components/GrBadge/defaults.d.ts +15 -0
  309. package/dist/types/src/components/GrBadge/index.d.ts +1 -0
  310. package/dist/types/src/components/GrBadgeWrap/GrBadgeWrap.vue.d.ts +1 -1
  311. package/dist/types/src/components/GrButton/GrButton.vue.d.ts +12 -12
  312. package/dist/types/src/components/GrButton/defaults.d.ts +25 -0
  313. package/dist/types/src/components/GrButton/grButtonStyles.d.ts +2 -2
  314. package/dist/types/src/components/GrButton/index.d.ts +1 -0
  315. package/dist/types/src/components/GrCheckbox/GrCheckbox.vue.d.ts +4 -4
  316. package/dist/types/src/components/GrCollapse/GrCollapse.vue.d.ts +2 -2
  317. package/dist/types/src/components/GrCollapse/GrCollapseItem.vue.d.ts +1 -1
  318. package/dist/types/src/components/GrCommandPalette/GrCommandPalette.vue.d.ts +128 -0
  319. package/dist/types/src/components/GrCommandPalette/config.d.ts +1 -0
  320. package/dist/types/src/components/GrCommandPalette/filtering.d.ts +35 -0
  321. package/dist/types/src/components/GrCommandPalette/grCommandPaletteStyles.d.ts +20 -0
  322. package/dist/types/src/components/GrCommandPalette/hotkey.d.ts +23 -0
  323. package/dist/types/src/components/GrCommandPalette/index.d.ts +6 -0
  324. package/dist/types/src/components/GrCommandPalette/safelist.d.ts +1 -0
  325. package/dist/types/src/components/GrConfigProvider/GrConfigProvider.vue.d.ts +59 -0
  326. package/dist/types/src/components/GrConfigProvider/config.d.ts +1 -0
  327. package/dist/types/src/components/GrConfigProvider/context.d.ts +131 -0
  328. package/dist/types/src/components/GrConfigProvider/index.d.ts +5 -0
  329. package/dist/types/src/components/GrConfirmDialog/GrConfirmDialog.vue.d.ts +2 -2
  330. package/dist/types/src/components/GrDataTable/GrDataTable.vue.d.ts +48 -4
  331. package/dist/types/src/components/GrDialog/GrDialog.vue.d.ts +1 -1
  332. package/dist/types/src/components/GrDialogService/store.d.ts +18 -0
  333. package/dist/types/src/components/GrDivider/GrDivider.vue.d.ts +58 -0
  334. package/dist/types/src/components/GrDivider/config.d.ts +1 -0
  335. package/dist/types/src/components/GrDivider/index.d.ts +4 -0
  336. package/dist/types/src/components/GrDrawer/GrDrawer.vue.d.ts +5 -5
  337. package/dist/types/src/components/GrDropdown/GrDropdown.vue.d.ts +8 -1
  338. package/dist/types/src/components/GrDropdownMenu/GrDropdownMenu.vue.d.ts +7 -1
  339. package/dist/types/src/components/GrDropdownMenu/GrDropdownMenuItem.vue.d.ts +1 -1
  340. package/dist/types/src/components/GrFileUpload/GrFileUpload.vue.d.ts +3 -3
  341. package/dist/types/src/components/GrForm/GrForm.vue.d.ts +93 -0
  342. package/dist/types/src/components/GrForm/config.d.ts +1 -0
  343. package/dist/types/src/components/GrForm/context.d.ts +27 -0
  344. package/dist/types/src/components/GrForm/index.d.ts +6 -0
  345. package/dist/types/src/components/GrForm/validation.d.ts +52 -0
  346. package/dist/types/src/components/GrFormField/GrFormField.vue.d.ts +25 -2
  347. package/dist/types/src/components/GrFormField/context.d.ts +20 -0
  348. package/dist/types/src/components/GrFormField/index.d.ts +1 -0
  349. package/dist/types/src/components/GrFormFile/GrFormFile.vue.d.ts +4 -4
  350. package/dist/types/src/components/GrImageViewer/GrImageViewer.vue.d.ts +7 -3
  351. package/dist/types/src/components/GrImageViewer/composables/useViewerKeyboard.d.ts +20 -0
  352. package/dist/types/src/components/GrImageViewer/composables/useWheelGesture.d.ts +16 -0
  353. package/dist/types/src/components/GrImageViewer/composables/useZoomPan.d.ts +50 -0
  354. package/dist/types/src/components/GrInput/GrInput.vue.d.ts +49 -10
  355. package/dist/types/src/components/GrInput/defaults.d.ts +18 -0
  356. package/dist/types/src/components/GrInput/grInputStyles.d.ts +1 -1
  357. package/dist/types/src/components/GrInput/index.d.ts +1 -0
  358. package/dist/types/src/components/GrInputTag/GrInputTag.vue.d.ts +3 -3
  359. package/dist/types/src/components/GrKbd/GrKbd.vue.d.ts +46 -0
  360. package/dist/types/src/components/GrKbd/config.d.ts +1 -0
  361. package/dist/types/src/components/GrKbd/index.d.ts +4 -0
  362. package/dist/types/src/components/GrLink/GrLink.vue.d.ts +3 -3
  363. package/dist/types/src/components/GrLink/grLinkStyles.d.ts +3 -3
  364. package/dist/types/src/components/GrModal/grModalStyles.d.ts +1 -1
  365. package/dist/types/src/components/GrNumberInput/GrNumberInput.vue.d.ts +25 -9
  366. package/dist/types/src/components/GrNumberInput/defaults.d.ts +14 -0
  367. package/dist/types/src/components/GrNumberInput/index.d.ts +1 -0
  368. package/dist/types/src/components/GrPagination/GrPagination.vue.d.ts +18 -0
  369. package/dist/types/src/components/GrPromptDialog/GrPromptDialog.vue.d.ts +4 -4
  370. package/dist/types/src/components/GrRadio/GrRadio.vue.d.ts +5 -5
  371. package/dist/types/src/components/GrRadio/defaults.d.ts +14 -0
  372. package/dist/types/src/components/GrRadio/grRadioStyles.d.ts +3 -3
  373. package/dist/types/src/components/GrRadio/index.d.ts +1 -0
  374. package/dist/types/src/components/GrRadioGroup/GrRadioGroup.vue.d.ts +4 -4
  375. package/dist/types/src/components/GrRadioGroup/defaults.d.ts +14 -0
  376. package/dist/types/src/components/GrRadioGroup/index.d.ts +1 -0
  377. package/dist/types/src/components/GrRating/GrRating.vue.d.ts +124 -0
  378. package/dist/types/src/components/GrRating/config.d.ts +1 -0
  379. package/dist/types/src/components/GrRating/defaults.d.ts +14 -0
  380. package/dist/types/src/components/GrRating/grRatingStyles.d.ts +21 -0
  381. package/dist/types/src/components/GrRating/index.d.ts +6 -0
  382. package/dist/types/src/components/GrRating/safelist.d.ts +1 -0
  383. package/dist/types/src/components/GrResponseErrorBanner/GrUploadErrorBanner.vue.d.ts +1 -1
  384. package/dist/types/src/components/GrSegmented/GrSegmented.vue.d.ts +7 -7
  385. package/dist/types/src/components/GrSegmented/defaults.d.ts +15 -0
  386. package/dist/types/src/components/GrSegmented/grSegmentedStyles.d.ts +1 -1
  387. package/dist/types/src/components/GrSegmented/index.d.ts +1 -0
  388. package/dist/types/src/components/GrSelect/GrSelect.vue.d.ts +57 -17
  389. package/dist/types/src/components/GrSelect/defaults.d.ts +17 -0
  390. package/dist/types/src/components/GrSelect/grSelectStyles.d.ts +3 -3
  391. package/dist/types/src/components/GrSelect/index.d.ts +1 -0
  392. package/dist/types/src/components/GrSidebar/GrSidebarItem.vue.d.ts +2 -2
  393. package/dist/types/src/components/GrSkeleton/GrSkeleton.vue.d.ts +1 -1
  394. package/dist/types/src/components/GrSlider/GrSlider.vue.d.ts +88 -0
  395. package/dist/types/src/components/GrSlider/config.d.ts +1 -0
  396. package/dist/types/src/components/GrSlider/defaults.d.ts +14 -0
  397. package/dist/types/src/components/GrSlider/grSliderStyles.d.ts +36 -0
  398. package/dist/types/src/components/GrSlider/index.d.ts +6 -0
  399. package/dist/types/src/components/GrSlider/safelist.d.ts +1 -0
  400. package/dist/types/src/components/GrStatistic/GrStatistic.vue.d.ts +116 -0
  401. package/dist/types/src/components/GrStatistic/config.d.ts +1 -0
  402. package/dist/types/src/components/GrStatistic/formatStatisticValue.d.ts +16 -0
  403. package/dist/types/src/components/GrStatistic/grStatisticStyles.d.ts +24 -0
  404. package/dist/types/src/components/GrStatistic/index.d.ts +6 -0
  405. package/dist/types/src/components/GrStatistic/safelist.d.ts +1 -0
  406. package/dist/types/src/components/GrSwitch/GrSwitch.vue.d.ts +4 -4
  407. package/dist/types/src/components/GrSwitch/defaults.d.ts +14 -0
  408. package/dist/types/src/components/GrSwitch/grSwitchStyles.d.ts +2 -2
  409. package/dist/types/src/components/GrSwitch/index.d.ts +1 -0
  410. package/dist/types/src/components/GrTabPanels/GrTabPanel.vue.d.ts +46 -0
  411. package/dist/types/src/components/GrTabPanels/GrTabPanels.vue.d.ts +51 -0
  412. package/dist/types/src/components/GrTabPanels/config.d.ts +5 -0
  413. package/dist/types/src/components/GrTabPanels/context.d.ts +9 -0
  414. package/dist/types/src/components/GrTabPanels/index.d.ts +6 -0
  415. package/dist/types/src/components/GrTable/GrTable.vue.d.ts +16 -0
  416. package/dist/types/src/components/GrTabs/GrTabs.vue.d.ts +6 -0
  417. package/dist/types/src/components/GrTextarea/GrTextarea.vue.d.ts +5 -5
  418. package/dist/types/src/components/GrToaster/GrToaster.vue.d.ts +19 -2
  419. package/dist/types/src/components/GrToaster/index.d.ts +1 -1
  420. package/dist/types/src/components/GrTooltip/GrTooltip.vue.d.ts +1 -1
  421. package/dist/types/src/components/GrTree/grTreeInteractionContext.d.ts +2 -0
  422. package/dist/types/src/components/GrTreeSelect/GrTreeSelect.vue.d.ts +1 -1
  423. package/dist/types/src/components/GrTreeSelect/grTreeSelectStyles.d.ts +1 -1
  424. package/dist/types/src/composables/internal/useScrollLock.d.ts +24 -0
  425. package/dist/types/src/composables/useToast.d.ts +24 -0
  426. package/dist/types/src/granular-provider/shared.d.ts +10 -0
  427. package/dist/types/src/i18n/messages/en.d.ts +84 -0
  428. package/dist/types/src/i18n/messages/es.d.ts +84 -0
  429. package/dist/types/src/i18n/messages/ru.d.ts +84 -0
  430. package/dist/types/src/index.d.ts +10 -0
  431. package/dist/web-types.json +1642 -356
  432. package/package.json +41 -1
  433. package/dist/chunks/config-1uSYl98Y.js.map +0 -1
  434. package/dist/chunks/config-8Pcutu1j2.js.map +0 -1
  435. package/dist/chunks/config-B7IIWGt_2.js.map +0 -1
  436. package/dist/chunks/config-BIRO0vDJ2.js.map +0 -1
  437. package/dist/chunks/config-BLHqZhy-2.js.map +0 -1
  438. package/dist/chunks/config-BOlr7qw7.js.map +0 -1
  439. package/dist/chunks/config-BUHuGBik.js.map +0 -1
  440. package/dist/chunks/config-BX1JTrkV2.js.map +0 -1
  441. package/dist/chunks/config-C7NpDrfO.js.map +0 -1
  442. package/dist/chunks/config-ClhKPJvg.js.map +0 -1
  443. package/dist/chunks/config-Cpi9Mh2J.js.map +0 -1
  444. package/dist/chunks/config-CrG1XiE7.js.map +0 -1
  445. package/dist/chunks/config-DUcu1D68.js.map +0 -1
  446. package/dist/chunks/config-D_R56_gT.js.map +0 -1
  447. package/dist/chunks/config-DezDih8_.js.map +0 -1
  448. package/dist/chunks/config-DnvPqu4g.js.map +0 -1
  449. package/dist/chunks/config-DpqOnJiz2.js.map +0 -1
  450. package/dist/chunks/config-LGrZIdaZ2.js.map +0 -1
  451. package/dist/chunks/config-QaIc_gRa.js.map +0 -1
  452. package/dist/chunks/config-U4m9PSql.js.map +0 -1
  453. package/dist/chunks/config-eYLZYOUS2.js.map +0 -1
  454. package/dist/chunks/config-ipvU0lzP2.js.map +0 -1
  455. package/dist/chunks/config-xR4XVmcy.js.map +0 -1
  456. package/dist/chunks/en-BdtiS2d3.js.map +0 -1
  457. package/dist/chunks/es-BGRMZbe9.js.map +0 -1
  458. package/dist/chunks/grBadgeStyles-DrycBuKT.js.map +0 -1
  459. package/dist/chunks/grButtonStyles-C7Yga_Q1.js.map +0 -1
  460. package/dist/chunks/grModalStyles-DWd3i05Q.js.map +0 -1
  461. package/dist/chunks/grSelectStyles-CLK5hRd3.js.map +0 -1
  462. package/dist/chunks/grStyle-Blc9otAx.js.map +0 -1
  463. package/dist/chunks/ru-BFCnOiML.js.map +0 -1
  464. package/dist/chunks/shared-ChvcQgDl.js +0 -168
  465. package/dist/chunks/shared-ChvcQgDl.js.map +0 -1
  466. package/dist/chunks/transition-TLFw4KBn.js.map +0 -1
  467. package/dist/components/GrAlert/chunks/GrAlert-DPJSU_fG.js +0 -163
  468. package/dist/components/GrAlert/chunks/GrAlert-DPJSU_fG.js.map +0 -1
  469. package/dist/components/GrAvatar/chunks/GrAvatar-96CpTCq5.js.map +0 -1
  470. package/dist/components/GrBadge/chunks/GrBadge-B77XlaqE.js.map +0 -1
  471. package/dist/components/GrBadgeWrap/chunks/GrBadgeWrap-CcktMOdg.js.map +0 -1
  472. package/dist/components/GrBottomNav/chunks/GrBottomNav-usuMgG8_.js.map +0 -1
  473. package/dist/components/GrButton/chunks/GrButton-BlffdeJr.js.map +0 -1
  474. package/dist/components/GrCard/chunks/GrCard-DUNMkuHW.js.map +0 -1
  475. package/dist/components/GrCheckbox/chunks/GrCheckbox-DJhzZZdO.js.map +0 -1
  476. package/dist/components/GrCollapse/chunks/GrCollapse-CPPLh_xU.js.map +0 -1
  477. package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-BWYKCsHd.js.map +0 -1
  478. package/dist/components/GrDataTable/chunks/GrDataTable-ptbARmJ3.js +0 -179
  479. package/dist/components/GrDataTable/chunks/GrDataTable-ptbARmJ3.js.map +0 -1
  480. package/dist/components/GrDialog/chunks/GrDialog-5DAS-1Lb.js.map +0 -1
  481. package/dist/components/GrDialogService/chunks/GrDialogService-DY_fmaMu.js.map +0 -1
  482. package/dist/components/GrDrawer/chunks/GrDrawer-D1kzsjXN.js.map +0 -1
  483. package/dist/components/GrDropdown/chunks/GrDropdown-BXb5Cxxf.js.map +0 -1
  484. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-DFEJLPcV.js.map +0 -1
  485. package/dist/components/GrEmptyState/chunks/GrEmptyState-CA3BiTV7.js.map +0 -1
  486. package/dist/components/GrFileUpload/chunks/GrFileUpload-DvWPpiJS.js.map +0 -1
  487. package/dist/components/GrFormField/chunks/GrFormField-BujNQrw8.js +0 -35
  488. package/dist/components/GrFormField/chunks/GrFormField-BujNQrw8.js.map +0 -1
  489. package/dist/components/GrFormFile/chunks/GrFormFile-CXcqqdvV.js.map +0 -1
  490. package/dist/components/GrFormSection/chunks/GrFormSection-Ce21jcgo.js.map +0 -1
  491. package/dist/components/GrImageViewer/chunks/GrImageViewer-OCUIrNh2.js.map +0 -1
  492. package/dist/components/GrInput/chunks/GrInput-C8pOJgCi.js +0 -188
  493. package/dist/components/GrInput/chunks/GrInput-C8pOJgCi.js.map +0 -1
  494. package/dist/components/GrInputTag/chunks/GrInputTag-zMgFqp2g.js.map +0 -1
  495. package/dist/components/GrList/chunks/GrList-Dx772Ns4.js.map +0 -1
  496. package/dist/components/GrLoading/chunks/GrLoading--X_7rdbb.js.map +0 -1
  497. package/dist/components/GrModal/chunks/GrModal-BkjW9jZS.js.map +0 -1
  498. package/dist/components/GrNavbar/chunks/GrNavbar-DW3MiIIf.js.map +0 -1
  499. package/dist/components/GrNumberInput/chunks/GrNumberInput-CldPIWQx.js.map +0 -1
  500. package/dist/components/GrPagination/chunks/GrPagination-Bu9wv6it.js.map +0 -1
  501. package/dist/components/GrProgressBar/chunks/GrProgressBar-CC3z-Zqp.js.map +0 -1
  502. package/dist/components/GrPromptDialog/chunks/GrPromptDialog-TmWXbpEP.js.map +0 -1
  503. package/dist/components/GrRadio/chunks/GrRadio-CPTixXaY.js.map +0 -1
  504. package/dist/components/GrRadioGroup/chunks/GrRadioGroup-vKZCbkCp.js.map +0 -1
  505. package/dist/components/GrSegmented/chunks/GrSegmented-C1y0UXpQ.js.map +0 -1
  506. package/dist/components/GrSelect/chunks/GrSelect-RShK21lK.js.map +0 -1
  507. package/dist/components/GrSidebar/chunks/GrSidebar-DkWozzwA.js.map +0 -1
  508. package/dist/components/GrSkeleton/chunks/GrSkeleton-DsN-_CDZ.js.map +0 -1
  509. package/dist/components/GrSwitch/chunks/GrSwitch-DAioyccZ.js.map +0 -1
  510. package/dist/components/GrTable/chunks/GrTable-Db3hRnKA.js.map +0 -1
  511. package/dist/components/GrTabs/chunks/GrTabs-Z-FDJUr_.js.map +0 -1
  512. package/dist/components/GrTextarea/chunks/GrTextarea-D56YxhKq.js.map +0 -1
  513. package/dist/components/GrToaster/chunks/GrToaster-eI8YvnIo.js.map +0 -1
  514. package/dist/components/GrTooltip/chunks/GrTooltip-BeyZ8ssR.js.map +0 -1
  515. package/dist/components/GrTree/chunks/GrTree-D3ODe2dB.js.map +0 -1
  516. package/dist/components/GrTreeSelect/chunks/GrTreeSelect-B2xBKs5Q.js.map +0 -1
  517. package/dist/chunks/{config-8Pcutu1j2.js → config-8Pcutu1j.js} +0 -0
  518. package/dist/chunks/{config-BLHqZhy-2.js → config-BLHqZhy-.js} +0 -0
  519. package/dist/chunks/{config-BUHuGBik.js → config-BUHuGBik2.js} +0 -0
  520. package/dist/chunks/{config-BX1JTrkV2.js → config-BX1JTrkV.js} +0 -0
  521. package/dist/chunks/{config-DpqOnJiz2.js → config-DpqOnJiz.js} +0 -0
  522. package/dist/chunks/{config-Cpi9Mh2J.js → config-Dqy0rPPO2.js} +1 -1
  523. /package/dist/chunks/{config-LGrZIdaZ2.js → config-LGrZIdaZ.js} +0 -0
  524. /package/dist/chunks/{config-QaIc_gRa.js → config-QaIc_gRa2.js} +0 -0
  525. /package/dist/chunks/{config-U4m9PSql.js → config-U4m9PSql2.js} +0 -0
  526. /package/dist/chunks/{config-ipvU0lzP2.js → config-ipvU0lzP.js} +0 -0
  527. /package/dist/chunks/{config-xR4XVmcy.js → config-xR4XVmcy2.js} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
3
3
  "name": "@feugene/granularity",
4
- "version": "0.11.0",
4
+ "version": "0.13.0",
5
5
  "framework": "vue",
6
6
  "js-types-syntax": "typescript",
7
7
  "description-markup": "markdown",
@@ -17,18 +17,18 @@
17
17
  "props": [
18
18
  {
19
19
  "name": "tone",
20
- "default": "\"info\"",
20
+ "default": "undefined",
21
21
  "value": {
22
22
  "kind": "expression",
23
- "type": "\"info\" | \"primary\" | \"neutral\" | \"success\" | \"warning\" | \"danger\" | \"slate\" | \"azure\" | undefined"
23
+ "type": "\"primary\" | \"neutral\" | \"success\" | \"warning\" | \"danger\" | \"info\" | \"slate\" | \"azure\" | undefined"
24
24
  }
25
25
  },
26
26
  {
27
27
  "name": "variant",
28
- "default": "\"soft\"",
28
+ "default": "undefined",
29
29
  "value": {
30
30
  "kind": "expression",
31
- "type": "GrAlertVariant | undefined"
31
+ "type": "GrAlertVariantInput | undefined"
32
32
  }
33
33
  },
34
34
  {
@@ -41,12 +41,20 @@
41
41
  },
42
42
  {
43
43
  "name": "closable",
44
- "default": "false",
44
+ "default": "undefined",
45
45
  "value": {
46
46
  "kind": "expression",
47
47
  "type": "boolean | undefined"
48
48
  }
49
49
  },
50
+ {
51
+ "name": "live",
52
+ "default": "\"auto\"",
53
+ "value": {
54
+ "kind": "expression",
55
+ "type": "GrAlertLive | undefined"
56
+ }
57
+ },
50
58
  {
51
59
  "name": "backgroundColor",
52
60
  "default": "undefined",
@@ -85,6 +93,200 @@
85
93
  ]
86
94
  }
87
95
  },
96
+ {
97
+ "name": "GrAutocomplete",
98
+ "source": {
99
+ "module": "@feugene/granularity/components/GrAutocomplete",
100
+ "symbol": "GrAutocomplete"
101
+ },
102
+ "props": [
103
+ {
104
+ "name": "filter",
105
+ "description": "Кастомный матчер локальной фильтрации. По умолчанию — подстрока в `label`/`value`.",
106
+ "default": "undefined",
107
+ "value": {
108
+ "kind": "expression",
109
+ "type": "((option: GrAutocompleteOption, query: string) => boolean) | undefined"
110
+ }
111
+ },
112
+ {
113
+ "name": "options",
114
+ "description": "Доступные опции. Для локального режима — полный список (фильтруется на клиенте). Для remote-режима (`filterable=false`) — список, который родитель обновляет в ответ на событие `search`.",
115
+ "default": "undefined",
116
+ "value": {
117
+ "kind": "expression",
118
+ "type": "GrAutocompleteOption[] | undefined"
119
+ }
120
+ },
121
+ {
122
+ "name": "multiple",
123
+ "default": "false",
124
+ "value": {
125
+ "kind": "expression",
126
+ "type": "boolean | undefined"
127
+ }
128
+ },
129
+ {
130
+ "name": "disabled",
131
+ "default": "false",
132
+ "value": {
133
+ "kind": "expression",
134
+ "type": "boolean | undefined"
135
+ }
136
+ },
137
+ {
138
+ "name": "size",
139
+ "default": "undefined",
140
+ "value": {
141
+ "kind": "expression",
142
+ "type": "GrAutocompleteSize | undefined"
143
+ }
144
+ },
145
+ {
146
+ "name": "placeholder",
147
+ "default": "undefined",
148
+ "value": {
149
+ "kind": "expression",
150
+ "type": "string | undefined"
151
+ }
152
+ },
153
+ {
154
+ "name": "ariaLabel",
155
+ "default": "undefined",
156
+ "value": {
157
+ "kind": "expression",
158
+ "type": "string | undefined"
159
+ }
160
+ },
161
+ {
162
+ "name": "clearable",
163
+ "description": "Кнопка очистки выбранного значения/запроса.",
164
+ "default": "undefined",
165
+ "value": {
166
+ "kind": "expression",
167
+ "type": "boolean | undefined"
168
+ }
169
+ },
170
+ {
171
+ "name": "loading",
172
+ "description": "Внешне управляемое состояние загрузки (для async-сценариев).",
173
+ "default": "false",
174
+ "value": {
175
+ "kind": "expression",
176
+ "type": "boolean | undefined"
177
+ }
178
+ },
179
+ {
180
+ "name": "filterable",
181
+ "description": "Локальная фильтрация опций по введённому запросу. Отключите (`false`) для чисто удалённого поиска — тогда `options` показываются как есть, а фильтрацию выполняет сервер по событию `search`.",
182
+ "default": "true",
183
+ "value": {
184
+ "kind": "expression",
185
+ "type": "boolean | undefined"
186
+ }
187
+ },
188
+ {
189
+ "name": "minQueryLength",
190
+ "description": "Минимальная длина запроса до эмита `search` (для дебаунса remote-загрузки).",
191
+ "default": "0",
192
+ "value": {
193
+ "kind": "expression",
194
+ "type": "number | undefined"
195
+ }
196
+ },
197
+ {
198
+ "name": "debounce",
199
+ "description": "Задержка дебаунса события `search`, мс.",
200
+ "default": "250",
201
+ "value": {
202
+ "kind": "expression",
203
+ "type": "number | undefined"
204
+ }
205
+ },
206
+ {
207
+ "name": "allowCustomValue",
208
+ "description": "Разрешить ввод/коммит значения, которого нет в `options`.",
209
+ "default": "false",
210
+ "value": {
211
+ "kind": "expression",
212
+ "type": "boolean | undefined"
213
+ }
214
+ },
215
+ {
216
+ "name": "closeOnSelect",
217
+ "description": "Закрывать панель после выбора (single всегда закрывает).",
218
+ "default": "true",
219
+ "value": {
220
+ "kind": "expression",
221
+ "type": "boolean | undefined"
222
+ }
223
+ },
224
+ {
225
+ "name": "dropdownMaxHeight",
226
+ "description": "Максимальная высота панели, px.",
227
+ "default": "280",
228
+ "value": {
229
+ "kind": "expression",
230
+ "type": "number | undefined"
231
+ }
232
+ },
233
+ {
234
+ "name": "loadingText",
235
+ "description": "i18n-тексты состояний панели / aria.",
236
+ "default": "undefined",
237
+ "value": {
238
+ "kind": "expression",
239
+ "type": "string | undefined"
240
+ }
241
+ },
242
+ {
243
+ "name": "noResultsText",
244
+ "default": "undefined",
245
+ "value": {
246
+ "kind": "expression",
247
+ "type": "string | undefined"
248
+ }
249
+ },
250
+ {
251
+ "name": "clearLabel",
252
+ "default": "undefined",
253
+ "value": {
254
+ "kind": "expression",
255
+ "type": "string | undefined"
256
+ }
257
+ },
258
+ {
259
+ "name": "modelValue",
260
+ "required": true,
261
+ "description": "Выбранное значение (single — строка, multiple — массив строк).",
262
+ "value": {
263
+ "kind": "expression",
264
+ "type": "GrAutocompleteModelValue"
265
+ }
266
+ }
267
+ ],
268
+ "slots": [
269
+ {
270
+ "name": "option"
271
+ },
272
+ {
273
+ "name": "loading"
274
+ },
275
+ {
276
+ "name": "empty"
277
+ }
278
+ ],
279
+ "js": {
280
+ "events": [
281
+ {
282
+ "name": "update:modelValue"
283
+ },
284
+ {
285
+ "name": "search"
286
+ }
287
+ ]
288
+ }
289
+ },
88
290
  {
89
291
  "name": "GrAvatar",
90
292
  "source": {
@@ -140,15 +342,15 @@
140
342
  "props": [
141
343
  {
142
344
  "name": "tone",
143
- "default": "\"neutral\"",
345
+ "default": "undefined",
144
346
  "value": {
145
347
  "kind": "expression",
146
- "type": "\"info\" | \"primary\" | \"neutral\" | \"success\" | \"warning\" | \"danger\" | \"slate\" | \"azure\" | undefined"
348
+ "type": "\"primary\" | \"neutral\" | \"success\" | \"warning\" | \"danger\" | \"info\" | \"slate\" | \"azure\" | undefined"
147
349
  }
148
350
  },
149
351
  {
150
352
  "name": "size",
151
- "default": "\"sm\"",
353
+ "default": "undefined",
152
354
  "value": {
153
355
  "kind": "expression",
154
356
  "type": "GrBadgeSize | undefined"
@@ -164,7 +366,7 @@
164
366
  },
165
367
  {
166
368
  "name": "radius",
167
- "default": "\"round\"",
369
+ "default": "undefined",
168
370
  "value": {
169
371
  "kind": "expression",
170
372
  "type": "GrBadgeRadius | undefined"
@@ -248,15 +450,15 @@
248
450
  "props": [
249
451
  {
250
452
  "name": "tone",
251
- "default": "\"primary\"",
453
+ "default": "undefined",
252
454
  "value": {
253
455
  "kind": "expression",
254
- "type": "\"info\" | \"primary\" | \"neutral\" | \"success\" | \"warning\" | \"danger\" | \"slate\" | \"azure\" | undefined"
456
+ "type": "\"primary\" | \"neutral\" | \"success\" | \"warning\" | \"danger\" | \"info\" | \"slate\" | \"azure\" | undefined"
255
457
  }
256
458
  },
257
459
  {
258
460
  "name": "variant",
259
- "default": "\"primary\"",
461
+ "default": "undefined",
260
462
  "value": {
261
463
  "kind": "expression",
262
464
  "type": "GrButtonVariant | undefined"
@@ -271,31 +473,31 @@
271
473
  }
272
474
  },
273
475
  {
274
- "name": "size",
275
- "default": "\"md\"",
476
+ "name": "disabled",
477
+ "default": "false",
276
478
  "value": {
277
479
  "kind": "expression",
278
- "type": "GrButtonSize | undefined"
480
+ "type": "boolean | undefined"
279
481
  }
280
482
  },
281
483
  {
282
- "name": "square",
283
- "default": "false",
484
+ "name": "size",
485
+ "default": "undefined",
284
486
  "value": {
285
487
  "kind": "expression",
286
- "type": "boolean | undefined"
488
+ "type": "GrButtonSize | undefined"
287
489
  }
288
490
  },
289
491
  {
290
- "name": "loading",
291
- "default": "false",
492
+ "name": "ariaLabel",
493
+ "default": "undefined",
292
494
  "value": {
293
495
  "kind": "expression",
294
- "type": "boolean | undefined"
496
+ "type": "string | undefined"
295
497
  }
296
498
  },
297
499
  {
298
- "name": "disabled",
500
+ "name": "loading",
299
501
  "default": "false",
300
502
  "value": {
301
503
  "kind": "expression",
@@ -303,11 +505,11 @@
303
505
  }
304
506
  },
305
507
  {
306
- "name": "ariaLabel",
508
+ "name": "square",
307
509
  "default": "undefined",
308
510
  "value": {
309
511
  "kind": "expression",
310
- "type": "string | undefined"
512
+ "type": "boolean | undefined"
311
513
  }
312
514
  },
313
515
  {
@@ -402,15 +604,15 @@
402
604
  },
403
605
  "props": [
404
606
  {
405
- "name": "value",
406
- "default": "\"on\"",
607
+ "name": "modelValue",
608
+ "default": "false",
407
609
  "value": {
408
610
  "kind": "expression",
409
- "type": "string | undefined"
611
+ "type": "boolean | undefined"
410
612
  }
411
613
  },
412
614
  {
413
- "name": "modelValue",
615
+ "name": "disabled",
414
616
  "default": "false",
415
617
  "value": {
416
618
  "kind": "expression",
@@ -426,11 +628,11 @@
426
628
  }
427
629
  },
428
630
  {
429
- "name": "disabled",
430
- "default": "false",
631
+ "name": "value",
632
+ "default": "\"on\"",
431
633
  "value": {
432
634
  "kind": "expression",
433
- "type": "boolean | undefined"
635
+ "type": "string | undefined"
434
636
  }
435
637
  },
436
638
  {
@@ -538,30 +740,31 @@
538
740
  }
539
741
  },
540
742
  {
541
- "name": "GrConfirmDialog",
743
+ "name": "GrCommandPalette",
542
744
  "source": {
543
- "module": "@feugene/granularity/components/GrConfirmDialog",
544
- "symbol": "GrConfirmDialog"
745
+ "module": "@feugene/granularity/components/GrCommandPalette",
746
+ "symbol": "GrCommandPalette"
545
747
  },
546
748
  "props": [
547
749
  {
548
- "name": "title",
750
+ "name": "filter",
751
+ "description": "Кастомный матчер локальной фильтрации.",
549
752
  "default": "undefined",
550
753
  "value": {
551
754
  "kind": "expression",
552
- "type": "string | undefined"
755
+ "type": "GrCommandFilter | undefined"
553
756
  }
554
757
  },
555
758
  {
556
759
  "name": "size",
557
- "default": "\"md\"",
760
+ "default": "\"lg\"",
558
761
  "value": {
559
762
  "kind": "expression",
560
- "type": "GrDialogSize | undefined"
763
+ "type": "GrCommandPaletteSize | undefined"
561
764
  }
562
765
  },
563
766
  {
564
- "name": "description",
767
+ "name": "placeholder",
565
768
  "default": "undefined",
566
769
  "value": {
567
770
  "kind": "expression",
@@ -569,23 +772,25 @@
569
772
  }
570
773
  },
571
774
  {
572
- "name": "closeOnBackdrop",
573
- "default": "true",
775
+ "name": "ariaLabel",
776
+ "default": "undefined",
574
777
  "value": {
575
778
  "kind": "expression",
576
- "type": "boolean | undefined"
779
+ "type": "string | undefined"
577
780
  }
578
781
  },
579
782
  {
580
- "name": "closeOnEsc",
581
- "default": "true",
783
+ "name": "loading",
784
+ "description": "Внешне управляемое состояние загрузки (для remote-поиска).",
785
+ "default": "false",
582
786
  "value": {
583
787
  "kind": "expression",
584
788
  "type": "boolean | undefined"
585
789
  }
586
790
  },
587
791
  {
588
- "name": "showHeader",
792
+ "name": "filterable",
793
+ "description": "Локальная фильтрация по запросу. `false` — фильтрует владелец по событию `search`.",
589
794
  "default": "true",
590
795
  "value": {
591
796
  "kind": "expression",
@@ -593,7 +798,8 @@
593
798
  }
594
799
  },
595
800
  {
596
- "name": "showCloseButton",
801
+ "name": "closeOnSelect",
802
+ "description": "Закрывать палитру после выбора команды.",
597
803
  "default": "true",
598
804
  "value": {
599
805
  "kind": "expression",
@@ -601,24 +807,216 @@
601
807
  }
602
808
  },
603
809
  {
604
- "name": "headerConfig",
810
+ "name": "items",
811
+ "description": "Плоский список команд; группировка — по полю `group` самой команды.",
605
812
  "default": "undefined",
606
813
  "value": {
607
814
  "kind": "expression",
608
- "type": "GrDialogSectionConfig | undefined"
815
+ "type": "GrCommandItem[] | undefined"
609
816
  }
610
817
  },
611
818
  {
612
- "name": "footerConfig",
613
- "default": "undefined",
819
+ "name": "hotkey",
820
+ "description": "Глобальное сочетание открытия. `null` — не вешать слушатель.",
821
+ "default": "\"mod+k\"",
614
822
  "value": {
615
823
  "kind": "expression",
616
- "type": "GrDialogSectionConfig | undefined"
824
+ "type": "string | null | undefined"
617
825
  }
618
826
  },
619
827
  {
620
- "name": "bodyConfig",
621
- "default": "undefined",
828
+ "name": "maxHeight",
829
+ "description": "Максимальная высота списка, px.",
830
+ "default": "360",
831
+ "value": {
832
+ "kind": "expression",
833
+ "type": "number | undefined"
834
+ }
835
+ },
836
+ {
837
+ "name": "showHotkeyHint",
838
+ "description": "Показывать подсказку сочетания в поле ввода.",
839
+ "default": "true",
840
+ "value": {
841
+ "kind": "expression",
842
+ "type": "boolean | undefined"
843
+ }
844
+ },
845
+ {
846
+ "name": "emptyText",
847
+ "default": "undefined",
848
+ "value": {
849
+ "kind": "expression",
850
+ "type": "string | undefined"
851
+ }
852
+ },
853
+ {
854
+ "name": "modelValue",
855
+ "required": true,
856
+ "description": "Открыта ли палитра.",
857
+ "value": {
858
+ "kind": "expression",
859
+ "type": "boolean"
860
+ }
861
+ }
862
+ ],
863
+ "slots": [
864
+ {
865
+ "name": "item"
866
+ },
867
+ {
868
+ "name": "empty"
869
+ },
870
+ {
871
+ "name": "footer"
872
+ }
873
+ ],
874
+ "js": {
875
+ "events": [
876
+ {
877
+ "name": "update:modelValue"
878
+ },
879
+ {
880
+ "name": "search"
881
+ },
882
+ {
883
+ "name": "select"
884
+ }
885
+ ]
886
+ }
887
+ },
888
+ {
889
+ "name": "GrConfigProvider",
890
+ "source": {
891
+ "module": "@feugene/granularity/components/GrConfigProvider",
892
+ "symbol": "GrConfigProvider"
893
+ },
894
+ "props": [
895
+ {
896
+ "name": "size",
897
+ "description": "Дефолтный размер контролов для вложенных компонентов.",
898
+ "default": "undefined",
899
+ "value": {
900
+ "kind": "expression",
901
+ "type": "\"xs\" | \"sm\" | \"md\" | \"lg\" | undefined"
902
+ }
903
+ },
904
+ {
905
+ "name": "componentDefaults",
906
+ "description": "Дефолтные пропсы по компонентам: `{ GrButton: { variant: 'secondary' } }`.",
907
+ "default": "undefined",
908
+ "value": {
909
+ "kind": "expression",
910
+ "type": "GrComponentDefaults | undefined"
911
+ }
912
+ },
913
+ {
914
+ "name": "i18n",
915
+ "description": "Адаптер переводов (fint-i18n-совместимый). Прокидывается вложенным компонентам.",
916
+ "default": "undefined",
917
+ "value": {
918
+ "kind": "expression",
919
+ "type": "GranularityI18nAdapter | null | undefined"
920
+ }
921
+ },
922
+ {
923
+ "name": "tag",
924
+ "description": "Тег обёртки. По умолчанию прозрачный `<div style=\"display:contents\">`.",
925
+ "default": "\"div\"",
926
+ "value": {
927
+ "kind": "expression",
928
+ "type": "string | undefined"
929
+ }
930
+ }
931
+ ],
932
+ "slots": [
933
+ {
934
+ "name": "default"
935
+ }
936
+ ]
937
+ },
938
+ {
939
+ "name": "GrConfirmDialog",
940
+ "source": {
941
+ "module": "@feugene/granularity/components/GrConfirmDialog",
942
+ "symbol": "GrConfirmDialog"
943
+ },
944
+ "props": [
945
+ {
946
+ "name": "title",
947
+ "default": "undefined",
948
+ "value": {
949
+ "kind": "expression",
950
+ "type": "string | undefined"
951
+ }
952
+ },
953
+ {
954
+ "name": "size",
955
+ "default": "\"md\"",
956
+ "value": {
957
+ "kind": "expression",
958
+ "type": "GrDialogSize | undefined"
959
+ }
960
+ },
961
+ {
962
+ "name": "description",
963
+ "default": "undefined",
964
+ "value": {
965
+ "kind": "expression",
966
+ "type": "string | undefined"
967
+ }
968
+ },
969
+ {
970
+ "name": "closeOnBackdrop",
971
+ "default": "true",
972
+ "value": {
973
+ "kind": "expression",
974
+ "type": "boolean | undefined"
975
+ }
976
+ },
977
+ {
978
+ "name": "closeOnEsc",
979
+ "default": "true",
980
+ "value": {
981
+ "kind": "expression",
982
+ "type": "boolean | undefined"
983
+ }
984
+ },
985
+ {
986
+ "name": "showHeader",
987
+ "default": "true",
988
+ "value": {
989
+ "kind": "expression",
990
+ "type": "boolean | undefined"
991
+ }
992
+ },
993
+ {
994
+ "name": "showCloseButton",
995
+ "default": "true",
996
+ "value": {
997
+ "kind": "expression",
998
+ "type": "boolean | undefined"
999
+ }
1000
+ },
1001
+ {
1002
+ "name": "headerConfig",
1003
+ "default": "undefined",
1004
+ "value": {
1005
+ "kind": "expression",
1006
+ "type": "GrDialogSectionConfig | undefined"
1007
+ }
1008
+ },
1009
+ {
1010
+ "name": "footerConfig",
1011
+ "default": "undefined",
1012
+ "value": {
1013
+ "kind": "expression",
1014
+ "type": "GrDialogSectionConfig | undefined"
1015
+ }
1016
+ },
1017
+ {
1018
+ "name": "bodyConfig",
1019
+ "default": "undefined",
622
1020
  "value": {
623
1021
  "kind": "expression",
624
1022
  "type": "GrDialogSectionConfig | undefined"
@@ -670,7 +1068,7 @@
670
1068
  "default": "\"primary\"",
671
1069
  "value": {
672
1070
  "kind": "expression",
673
- "type": "\"info\" | \"primary\" | \"neutral\" | \"success\" | \"warning\" | \"danger\" | \"slate\" | \"azure\" | undefined"
1071
+ "type": "\"primary\" | \"neutral\" | \"success\" | \"warning\" | \"danger\" | \"info\" | \"slate\" | \"azure\" | undefined"
674
1072
  }
675
1073
  },
676
1074
  {
@@ -777,7 +1175,7 @@
777
1175
  },
778
1176
  {
779
1177
  "name": "initialSortKey",
780
- "description": "Ключ колонки для начальной сортировки.",
1178
+ "description": "Ключ колонки для начальной сортировки (uncontrolled-режим).",
781
1179
  "default": "undefined",
782
1180
  "value": {
783
1181
  "kind": "expression",
@@ -786,13 +1184,76 @@
786
1184
  },
787
1185
  {
788
1186
  "name": "initialSortDir",
789
- "description": "Направление начальной сортировки.",
1187
+ "description": "Направление начальной сортировки (uncontrolled-режим).",
790
1188
  "default": "\"asc\"",
791
1189
  "value": {
792
1190
  "kind": "expression",
793
1191
  "type": "\"asc\" | \"desc\" | undefined"
794
1192
  }
795
1193
  },
1194
+ {
1195
+ "name": "sortKey",
1196
+ "description": "Контролируемый ключ сортировки: `v-model:sortKey`. Задаёт controlled-режим.",
1197
+ "default": "undefined",
1198
+ "value": {
1199
+ "kind": "expression",
1200
+ "type": "string | undefined"
1201
+ }
1202
+ },
1203
+ {
1204
+ "name": "sortDir",
1205
+ "description": "Контролируемое направление сортировки: `v-model:sortDir`.",
1206
+ "default": "undefined",
1207
+ "value": {
1208
+ "kind": "expression",
1209
+ "type": "\"asc\" | \"desc\" | undefined"
1210
+ }
1211
+ },
1212
+ {
1213
+ "name": "externalSort",
1214
+ "description": "Внешняя сортировка (например серверная): компонент НЕ сортирует `rows` сам, а только сообщает о смене через `update:sortKey`/`update:sortDir`/ `sort-change`. `rows` при этом должны приходить уже отсортированными.",
1215
+ "default": "false",
1216
+ "value": {
1217
+ "kind": "expression",
1218
+ "type": "boolean | undefined"
1219
+ }
1220
+ },
1221
+ {
1222
+ "name": "selectable",
1223
+ "description": "Выбор строк: добавляет ведущую колонку с чекбоксами (+ «выбрать все» в шапке). Выбранные ключи строк — через `v-model:selected`.",
1224
+ "default": "false",
1225
+ "value": {
1226
+ "kind": "expression",
1227
+ "type": "boolean | undefined"
1228
+ }
1229
+ },
1230
+ {
1231
+ "name": "selected",
1232
+ "description": "Контролируемый список выбранных ключей строк: `v-model:selected`.",
1233
+ "default": "undefined",
1234
+ "value": {
1235
+ "kind": "expression",
1236
+ "type": "(string | number)[] | undefined"
1237
+ }
1238
+ },
1239
+ {
1240
+ "name": "loading",
1241
+ "description": "Состояние загрузки: тело таблицы заменяется строкой-индикатором. `empty`-состояние при этом не показывается.",
1242
+ "default": "false",
1243
+ "value": {
1244
+ "kind": "expression",
1245
+ "type": "boolean | undefined"
1246
+ }
1247
+ },
1248
+ {
1249
+ "name": "loadingText",
1250
+ "description": "Текст индикатора загрузки. i18n: fallback `gr.dataTable.loading`.",
1251
+ "default": "undefined",
1252
+ "value": {
1253
+ "kind": "expression",
1254
+ "type": "string | undefined"
1255
+ }
1256
+ },
796
1257
  {
797
1258
  "name": "density",
798
1259
  "default": "\"regular\"",
@@ -832,6 +1293,24 @@
832
1293
  "kind": "expression",
833
1294
  "type": "string | undefined"
834
1295
  }
1296
+ },
1297
+ {
1298
+ "name": "stickyHeader",
1299
+ "description": "Прилипающий заголовок при вертикальном скролле (нужен `maxHeight`).",
1300
+ "default": "false",
1301
+ "value": {
1302
+ "kind": "expression",
1303
+ "type": "boolean | undefined"
1304
+ }
1305
+ },
1306
+ {
1307
+ "name": "maxHeight",
1308
+ "description": "Максимальная высота таблицы (вертикальный скролл). Число — в пикселях.",
1309
+ "default": "undefined",
1310
+ "value": {
1311
+ "kind": "expression",
1312
+ "type": "string | number | undefined"
1313
+ }
835
1314
  }
836
1315
  ],
837
1316
  "slots": [
@@ -844,7 +1323,23 @@
844
1323
  {
845
1324
  "name": "foot"
846
1325
  }
847
- ]
1326
+ ],
1327
+ "js": {
1328
+ "events": [
1329
+ {
1330
+ "name": "update:sortKey"
1331
+ },
1332
+ {
1333
+ "name": "update:sortDir"
1334
+ },
1335
+ {
1336
+ "name": "sort-change"
1337
+ },
1338
+ {
1339
+ "name": "update:selected"
1340
+ }
1341
+ ]
1342
+ }
848
1343
  },
849
1344
  {
850
1345
  "name": "GrDialog",
@@ -963,25 +1458,63 @@
963
1458
  }
964
1459
  },
965
1460
  {
966
- "name": "GrDrawer",
1461
+ "name": "GrDivider",
967
1462
  "source": {
968
- "module": "@feugene/granularity/components/GrDrawer",
969
- "symbol": "GrDrawer"
1463
+ "module": "@feugene/granularity/components/GrDivider",
1464
+ "symbol": "GrDivider"
970
1465
  },
971
1466
  "props": [
972
1467
  {
973
- "name": "title",
974
- "description": "Заголовок; если передан — покажется в хедере. Можно переопределить слотом `#title`.",
975
- "default": "undefined",
1468
+ "name": "orientation",
1469
+ "default": "\"horizontal\"",
976
1470
  "value": {
977
1471
  "kind": "expression",
978
- "type": "string | undefined"
1472
+ "type": "GrDividerOrientation | undefined"
979
1473
  }
980
1474
  },
981
1475
  {
982
- "name": "size",
983
- "description": "Размер панели.",
984
- "default": "\"md\"",
1476
+ "name": "label",
1477
+ "default": "undefined",
1478
+ "value": {
1479
+ "kind": "expression",
1480
+ "type": "string | undefined"
1481
+ }
1482
+ },
1483
+ {
1484
+ "name": "align",
1485
+ "default": "\"center\"",
1486
+ "value": {
1487
+ "kind": "expression",
1488
+ "type": "GrDividerAlign | undefined"
1489
+ }
1490
+ }
1491
+ ],
1492
+ "slots": [
1493
+ {
1494
+ "name": "default"
1495
+ }
1496
+ ]
1497
+ },
1498
+ {
1499
+ "name": "GrDrawer",
1500
+ "source": {
1501
+ "module": "@feugene/granularity/components/GrDrawer",
1502
+ "symbol": "GrDrawer"
1503
+ },
1504
+ "props": [
1505
+ {
1506
+ "name": "title",
1507
+ "description": "Заголовок; если передан — покажется в хедере. Можно переопределить слотом `#title`.",
1508
+ "default": "undefined",
1509
+ "value": {
1510
+ "kind": "expression",
1511
+ "type": "string | undefined"
1512
+ }
1513
+ },
1514
+ {
1515
+ "name": "size",
1516
+ "description": "Размер панели.",
1517
+ "default": "\"md\"",
985
1518
  "value": {
986
1519
  "kind": "expression",
987
1520
  "type": "GrDrawerSize | undefined"
@@ -1243,6 +1776,14 @@
1243
1776
  "symbol": "GrFileUpload"
1244
1777
  },
1245
1778
  "props": [
1779
+ {
1780
+ "name": "multiple",
1781
+ "default": "false",
1782
+ "value": {
1783
+ "kind": "expression",
1784
+ "type": "boolean | undefined"
1785
+ }
1786
+ },
1246
1787
  {
1247
1788
  "name": "disabled",
1248
1789
  "default": "false",
@@ -1251,6 +1792,15 @@
1251
1792
  "type": "boolean | undefined"
1252
1793
  }
1253
1794
  },
1795
+ {
1796
+ "name": "placeholder",
1797
+ "description": "i18n: надпись-подсказка в дефолтном UI.",
1798
+ "default": "undefined",
1799
+ "value": {
1800
+ "kind": "expression",
1801
+ "type": "string | undefined"
1802
+ }
1803
+ },
1254
1804
  {
1255
1805
  "name": "name",
1256
1806
  "default": "\"file\"",
@@ -1275,14 +1825,6 @@
1275
1825
  "type": "GrFileUploadRequest | undefined"
1276
1826
  }
1277
1827
  },
1278
- {
1279
- "name": "multiple",
1280
- "default": "false",
1281
- "value": {
1282
- "kind": "expression",
1283
- "type": "boolean | undefined"
1284
- }
1285
- },
1286
1828
  {
1287
1829
  "name": "limit",
1288
1830
  "default": "undefined",
@@ -1347,15 +1889,6 @@
1347
1889
  "type": "((files: File[]) => GrFileUploadExtraData | undefined) | undefined"
1348
1890
  }
1349
1891
  },
1350
- {
1351
- "name": "placeholder",
1352
- "description": "i18n: надпись-подсказка в дефолтном UI.",
1353
- "default": "undefined",
1354
- "value": {
1355
- "kind": "expression",
1356
- "type": "string | undefined"
1357
- }
1358
- },
1359
1892
  {
1360
1893
  "name": "showProgress",
1361
1894
  "description": "Показывать дефолтный прогресс-бар (если не используется слот `progress`).",
@@ -1371,7 +1904,7 @@
1371
1904
  "default": "\"primary\"",
1372
1905
  "value": {
1373
1906
  "kind": "expression",
1374
- "type": "\"info\" | \"primary\" | \"neutral\" | \"success\" | \"warning\" | \"danger\" | \"slate\" | \"azure\" | undefined"
1907
+ "type": "\"primary\" | \"neutral\" | \"success\" | \"warning\" | \"danger\" | \"info\" | \"slate\" | \"azure\" | undefined"
1375
1908
  }
1376
1909
  },
1377
1910
  {
@@ -1427,6 +1960,83 @@
1427
1960
  ]
1428
1961
  }
1429
1962
  },
1963
+ {
1964
+ "name": "GrForm",
1965
+ "source": {
1966
+ "module": "@feugene/granularity/components/GrForm",
1967
+ "symbol": "GrForm"
1968
+ },
1969
+ "props": [
1970
+ {
1971
+ "name": "rules",
1972
+ "description": "Правила валидации по имени поля: `{ email: [{ required: true, type: 'email' }] }`.",
1973
+ "default": "undefined",
1974
+ "value": {
1975
+ "kind": "expression",
1976
+ "type": "GrFormRules | undefined"
1977
+ }
1978
+ },
1979
+ {
1980
+ "name": "validateOnBlur",
1981
+ "description": "Валидировать поле при потере фокуса.",
1982
+ "default": "true",
1983
+ "value": {
1984
+ "kind": "expression",
1985
+ "type": "boolean | undefined"
1986
+ }
1987
+ },
1988
+ {
1989
+ "name": "validateOnChange",
1990
+ "description": "Валидировать поле при каждом изменении значения.",
1991
+ "default": "false",
1992
+ "value": {
1993
+ "kind": "expression",
1994
+ "type": "boolean | undefined"
1995
+ }
1996
+ },
1997
+ {
1998
+ "name": "scrollToError",
1999
+ "description": "Скроллить к первому невалидному полю после `validate()`.",
2000
+ "default": "true",
2001
+ "value": {
2002
+ "kind": "expression",
2003
+ "type": "boolean | undefined"
2004
+ }
2005
+ },
2006
+ {
2007
+ "name": "scrollBehavior",
2008
+ "default": "\"smooth\"",
2009
+ "value": {
2010
+ "kind": "expression",
2011
+ "type": "ScrollBehavior | undefined"
2012
+ }
2013
+ },
2014
+ {
2015
+ "name": "model",
2016
+ "required": true,
2017
+ "description": "Реактивный объект данных формы. Поля адресуются по `name` (`GrFormField`), в т.ч. dot-path.",
2018
+ "value": {
2019
+ "kind": "expression",
2020
+ "type": "Record<string, unknown>"
2021
+ }
2022
+ }
2023
+ ],
2024
+ "slots": [
2025
+ {
2026
+ "name": "default"
2027
+ }
2028
+ ],
2029
+ "js": {
2030
+ "events": [
2031
+ {
2032
+ "name": "submit"
2033
+ },
2034
+ {
2035
+ "name": "validate"
2036
+ }
2037
+ ]
2038
+ }
2039
+ },
1430
2040
  {
1431
2041
  "name": "GrFormField",
1432
2042
  "source": {
@@ -1434,8 +2044,27 @@
1434
2044
  "symbol": "GrFormField"
1435
2045
  },
1436
2046
  "props": [
2047
+ {
2048
+ "name": "required",
2049
+ "description": "Помечает поле обязательным (маркер `*` + `aria-required` у контрола).",
2050
+ "default": "false",
2051
+ "value": {
2052
+ "kind": "expression",
2053
+ "type": "boolean | undefined"
2054
+ }
2055
+ },
2056
+ {
2057
+ "name": "name",
2058
+ "description": "Имя поля в модели `GrForm` (в т.ч. dot-path `address.city`). Когда поле внутри `GrForm` и задан `name`, ошибка и признак обязательности берутся из формы по этому имени, а потеря фокуса триггерит валидацию поля.",
2059
+ "default": "undefined",
2060
+ "value": {
2061
+ "kind": "expression",
2062
+ "type": "string | undefined"
2063
+ }
2064
+ },
1437
2065
  {
1438
2066
  "name": "error",
2067
+ "description": "Явная ошибка. Перекрывает ошибку из `GrForm` (ручной режим без формы — тоже здесь).",
1439
2068
  "default": "undefined",
1440
2069
  "value": {
1441
2070
  "kind": "expression",
@@ -1452,6 +2081,16 @@
1452
2081
  },
1453
2082
  {
1454
2083
  "name": "forId",
2084
+ "description": "Явный id контрола. Если не задан — генерируется автоматически.",
2085
+ "default": "undefined",
2086
+ "value": {
2087
+ "kind": "expression",
2088
+ "type": "string | undefined"
2089
+ }
2090
+ },
2091
+ {
2092
+ "name": "hint",
2093
+ "description": "Подсказка под лейблом/над контролом (можно также через слот `#hint`).",
1455
2094
  "default": "undefined",
1456
2095
  "value": {
1457
2096
  "kind": "expression",
@@ -1468,6 +2107,9 @@
1468
2107
  }
1469
2108
  ],
1470
2109
  "slots": [
2110
+ {
2111
+ "name": "hint"
2112
+ },
1471
2113
  {
1472
2114
  "name": "default"
1473
2115
  }
@@ -1481,7 +2123,7 @@
1481
2123
  },
1482
2124
  "props": [
1483
2125
  {
1484
- "name": "disabled",
2126
+ "name": "multiple",
1485
2127
  "default": "false",
1486
2128
  "value": {
1487
2129
  "kind": "expression",
@@ -1489,13 +2131,21 @@
1489
2131
  }
1490
2132
  },
1491
2133
  {
1492
- "name": "multiple",
2134
+ "name": "disabled",
1493
2135
  "default": "false",
1494
2136
  "value": {
1495
2137
  "kind": "expression",
1496
2138
  "type": "boolean | undefined"
1497
2139
  }
1498
2140
  },
2141
+ {
2142
+ "name": "placeholder",
2143
+ "default": "undefined",
2144
+ "value": {
2145
+ "kind": "expression",
2146
+ "type": "string | undefined"
2147
+ }
2148
+ },
1499
2149
  {
1500
2150
  "name": "validators",
1501
2151
  "default": "undefined",
@@ -1505,11 +2155,12 @@
1505
2155
  }
1506
2156
  },
1507
2157
  {
1508
- "name": "placeholder",
2158
+ "name": "validate",
2159
+ "description": "Дополнительная (кастомная) валидация на стороне потребителя.",
1509
2160
  "default": "undefined",
1510
2161
  "value": {
1511
2162
  "kind": "expression",
1512
- "type": "string | undefined"
2163
+ "type": "((files: File[]) => FileValidationIssue[] | Promise<FileValidationIssue[]>) | undefined"
1513
2164
  }
1514
2165
  },
1515
2166
  {
@@ -1553,15 +2204,6 @@
1553
2204
  "type": "string | undefined"
1554
2205
  }
1555
2206
  },
1556
- {
1557
- "name": "validate",
1558
- "description": "Дополнительная (кастомная) валидация на стороне потребителя.",
1559
- "default": "undefined",
1560
- "value": {
1561
- "kind": "expression",
1562
- "type": "((files: File[]) => FileValidationIssue[] | Promise<FileValidationIssue[]>) | undefined"
1563
- }
1564
- },
1565
2207
  {
1566
2208
  "name": "modelValue",
1567
2209
  "required": true,
@@ -1654,6 +2296,15 @@
1654
2296
  "symbol": "GrImageViewer"
1655
2297
  },
1656
2298
  "props": [
2299
+ {
2300
+ "name": "emptyText",
2301
+ "description": "i18n: текст в пустом состоянии (нет изображений).",
2302
+ "default": "undefined",
2303
+ "value": {
2304
+ "kind": "expression",
2305
+ "type": "string | undefined"
2306
+ }
2307
+ },
1657
2308
  {
1658
2309
  "name": "closeLabel",
1659
2310
  "description": "i18n: aria-label кнопки закрытия.",
@@ -1816,15 +2467,6 @@
1816
2467
  "type": "string | undefined"
1817
2468
  }
1818
2469
  },
1819
- {
1820
- "name": "emptyText",
1821
- "description": "i18n: текст в пустом состоянии (нет изображений).",
1822
- "default": "undefined",
1823
- "value": {
1824
- "kind": "expression",
1825
- "type": "string | undefined"
1826
- }
1827
- },
1828
2470
  {
1829
2471
  "name": "modelValue",
1830
2472
  "required": true,
@@ -1882,24 +2524,42 @@
1882
2524
  "type": "\"number\" | \"search\" | \"text\" | \"email\" | \"password\" | undefined"
1883
2525
  }
1884
2526
  },
2527
+ {
2528
+ "name": "disabled",
2529
+ "default": "false",
2530
+ "value": {
2531
+ "kind": "expression",
2532
+ "type": "boolean | undefined"
2533
+ }
2534
+ },
1885
2535
  {
1886
2536
  "name": "size",
1887
- "default": "\"md\"",
2537
+ "default": "undefined",
1888
2538
  "value": {
1889
2539
  "kind": "expression",
1890
2540
  "type": "GrInputSize | undefined"
1891
2541
  }
1892
2542
  },
1893
2543
  {
1894
- "name": "disabled",
1895
- "default": "false",
2544
+ "name": "placeholder",
2545
+ "default": "undefined",
2546
+ "value": {
2547
+ "kind": "expression",
2548
+ "type": "string | undefined"
2549
+ }
2550
+ },
2551
+ {
2552
+ "name": "clearable",
2553
+ "description": "Показывать кнопку очистки, когда есть значение (и не disabled/readonly).",
2554
+ "default": "undefined",
1896
2555
  "value": {
1897
2556
  "kind": "expression",
1898
2557
  "type": "boolean | undefined"
1899
2558
  }
1900
2559
  },
1901
2560
  {
1902
- "name": "name",
2561
+ "name": "clearLabel",
2562
+ "description": "i18n aria-label кнопки очистки.",
1903
2563
  "default": "undefined",
1904
2564
  "value": {
1905
2565
  "kind": "expression",
@@ -1907,7 +2567,7 @@
1907
2567
  }
1908
2568
  },
1909
2569
  {
1910
- "name": "id",
2570
+ "name": "name",
1911
2571
  "default": "undefined",
1912
2572
  "value": {
1913
2573
  "kind": "expression",
@@ -1915,7 +2575,7 @@
1915
2575
  }
1916
2576
  },
1917
2577
  {
1918
- "name": "placeholder",
2578
+ "name": "id",
1919
2579
  "default": "undefined",
1920
2580
  "value": {
1921
2581
  "kind": "expression",
@@ -1947,7 +2607,8 @@
1947
2607
  }
1948
2608
  },
1949
2609
  {
1950
- "name": "invalid",
2610
+ "name": "readonly",
2611
+ "description": "Только для чтения: значение видно и выделяемо, но не редактируется.",
1951
2612
  "default": "false",
1952
2613
  "value": {
1953
2614
  "kind": "expression",
@@ -1955,39 +2616,43 @@
1955
2616
  }
1956
2617
  },
1957
2618
  {
1958
- "name": "textAlign",
1959
- "default": "\"left\"",
2619
+ "name": "invalid",
2620
+ "default": "false",
1960
2621
  "value": {
1961
2622
  "kind": "expression",
1962
- "type": "GrInputTextAlign | undefined"
2623
+ "type": "boolean | undefined"
1963
2624
  }
1964
2625
  },
1965
2626
  {
1966
- "name": "prefixMinWidth",
2627
+ "name": "maxlength",
2628
+ "description": "Ограничение длины + основа для счётчика символов.",
1967
2629
  "default": "undefined",
1968
2630
  "value": {
1969
2631
  "kind": "expression",
1970
- "type": "string | undefined"
2632
+ "type": "number | undefined"
1971
2633
  }
1972
2634
  },
1973
2635
  {
1974
- "name": "prefixMaxWidth",
1975
- "default": "undefined",
2636
+ "name": "showCount",
2637
+ "description": "Показывать счётчик символов (`len` или `len/maxlength`).",
2638
+ "default": "false",
1976
2639
  "value": {
1977
2640
  "kind": "expression",
1978
- "type": "string | undefined"
2641
+ "type": "boolean | undefined"
1979
2642
  }
1980
2643
  },
1981
2644
  {
1982
- "name": "suffixMinWidth",
1983
- "default": "undefined",
2645
+ "name": "passwordToggle",
2646
+ "description": "Кнопка показать/скрыть пароль (только при `type=\"password\"`).",
2647
+ "default": "false",
1984
2648
  "value": {
1985
2649
  "kind": "expression",
1986
- "type": "string | undefined"
2650
+ "type": "boolean | undefined"
1987
2651
  }
1988
2652
  },
1989
2653
  {
1990
- "name": "suffixMaxWidth",
2654
+ "name": "passwordShowLabel",
2655
+ "description": "i18n aria-label кнопки показать/скрыть пароль.",
1991
2656
  "default": "undefined",
1992
2657
  "value": {
1993
2658
  "kind": "expression",
@@ -1995,12 +2660,60 @@
1995
2660
  }
1996
2661
  },
1997
2662
  {
1998
- "name": "prefixFixed",
1999
- "description": "Фиксированная ширина у prefix/suffix: аддон получает жёсткую ширину (из `*MaxWidth` → `*MinWidth` → дефолт), а контент обрезается по краю (prefix — справа, suffix — слева). По умолчанию аддоны «растягиваются» под контент (в пределах min/max), а излишек клипается оболочкой.",
2000
- "default": "false",
2663
+ "name": "passwordHideLabel",
2664
+ "default": "undefined",
2001
2665
  "value": {
2002
2666
  "kind": "expression",
2003
- "type": "boolean | undefined"
2667
+ "type": "string | undefined"
2668
+ }
2669
+ },
2670
+ {
2671
+ "name": "textAlign",
2672
+ "default": "\"left\"",
2673
+ "value": {
2674
+ "kind": "expression",
2675
+ "type": "GrInputTextAlign | undefined"
2676
+ }
2677
+ },
2678
+ {
2679
+ "name": "prefixMinWidth",
2680
+ "default": "undefined",
2681
+ "value": {
2682
+ "kind": "expression",
2683
+ "type": "string | undefined"
2684
+ }
2685
+ },
2686
+ {
2687
+ "name": "prefixMaxWidth",
2688
+ "default": "undefined",
2689
+ "value": {
2690
+ "kind": "expression",
2691
+ "type": "string | undefined"
2692
+ }
2693
+ },
2694
+ {
2695
+ "name": "suffixMinWidth",
2696
+ "default": "undefined",
2697
+ "value": {
2698
+ "kind": "expression",
2699
+ "type": "string | undefined"
2700
+ }
2701
+ },
2702
+ {
2703
+ "name": "suffixMaxWidth",
2704
+ "default": "undefined",
2705
+ "value": {
2706
+ "kind": "expression",
2707
+ "type": "string | undefined"
2708
+ }
2709
+ },
2710
+ {
2711
+ "name": "prefixFixed",
2712
+ "description": "Фиксированная ширина у prefix/suffix: аддон получает жёсткую ширину (из `*MaxWidth` → `*MinWidth` → дефолт), а контент обрезается по краю (prefix — справа, suffix — слева). По умолчанию аддоны «растягиваются» под контент (в пределах min/max), а излишек клипается оболочкой.",
2713
+ "default": "false",
2714
+ "value": {
2715
+ "kind": "expression",
2716
+ "type": "boolean | undefined"
2004
2717
  }
2005
2718
  },
2006
2719
  {
@@ -2043,14 +2756,6 @@
2043
2756
  "symbol": "GrInputTag"
2044
2757
  },
2045
2758
  "props": [
2046
- {
2047
- "name": "size",
2048
- "default": "\"md\"",
2049
- "value": {
2050
- "kind": "expression",
2051
- "type": "GrInputSize | undefined"
2052
- }
2053
- },
2054
2759
  {
2055
2760
  "name": "disabled",
2056
2761
  "default": "false",
@@ -2060,11 +2765,11 @@
2060
2765
  }
2061
2766
  },
2062
2767
  {
2063
- "name": "trim",
2064
- "default": "true",
2768
+ "name": "size",
2769
+ "default": "\"md\"",
2065
2770
  "value": {
2066
2771
  "kind": "expression",
2067
- "type": "boolean | undefined"
2772
+ "type": "GrInputSize | undefined"
2068
2773
  }
2069
2774
  },
2070
2775
  {
@@ -2075,6 +2780,14 @@
2075
2780
  "type": "string | undefined"
2076
2781
  }
2077
2782
  },
2783
+ {
2784
+ "name": "trim",
2785
+ "default": "true",
2786
+ "value": {
2787
+ "kind": "expression",
2788
+ "type": "boolean | undefined"
2789
+ }
2790
+ },
2078
2791
  {
2079
2792
  "name": "state",
2080
2793
  "default": "\"default\"",
@@ -2084,7 +2797,7 @@
2084
2797
  }
2085
2798
  },
2086
2799
  {
2087
- "name": "invalid",
2800
+ "name": "readonly",
2088
2801
  "default": "false",
2089
2802
  "value": {
2090
2803
  "kind": "expression",
@@ -2092,7 +2805,7 @@
2092
2805
  }
2093
2806
  },
2094
2807
  {
2095
- "name": "readonly",
2808
+ "name": "invalid",
2096
2809
  "default": "false",
2097
2810
  "value": {
2098
2811
  "kind": "expression",
@@ -2144,7 +2857,7 @@
2144
2857
  "default": "\"neutral\"",
2145
2858
  "value": {
2146
2859
  "kind": "expression",
2147
- "type": "\"info\" | \"primary\" | \"neutral\" | \"success\" | \"warning\" | \"danger\" | \"slate\" | \"azure\" | undefined"
2860
+ "type": "\"primary\" | \"neutral\" | \"success\" | \"warning\" | \"danger\" | \"info\" | \"slate\" | \"azure\" | undefined"
2148
2861
  }
2149
2862
  },
2150
2863
  {
@@ -2216,6 +2929,28 @@
2216
2929
  ]
2217
2930
  }
2218
2931
  },
2932
+ {
2933
+ "name": "GrKbd",
2934
+ "source": {
2935
+ "module": "@feugene/granularity/components/GrKbd",
2936
+ "symbol": "GrKbd"
2937
+ },
2938
+ "props": [
2939
+ {
2940
+ "name": "size",
2941
+ "default": "\"md\"",
2942
+ "value": {
2943
+ "kind": "expression",
2944
+ "type": "GrKbdSize | undefined"
2945
+ }
2946
+ }
2947
+ ],
2948
+ "slots": [
2949
+ {
2950
+ "name": "default"
2951
+ }
2952
+ ]
2953
+ },
2219
2954
  {
2220
2955
  "name": "GrLink",
2221
2956
  "source": {
@@ -2229,7 +2964,7 @@
2229
2964
  "default": "\"primary\"",
2230
2965
  "value": {
2231
2966
  "kind": "expression",
2232
- "type": "\"info\" | \"primary\" | \"neutral\" | \"success\" | \"warning\" | \"danger\" | \"slate\" | \"azure\" | undefined"
2967
+ "type": "\"primary\" | \"neutral\" | \"success\" | \"warning\" | \"danger\" | \"info\" | \"slate\" | \"azure\" | undefined"
2233
2968
  }
2234
2969
  },
2235
2970
  {
@@ -2242,19 +2977,19 @@
2242
2977
  }
2243
2978
  },
2244
2979
  {
2245
- "name": "size",
2246
- "default": "\"md\"",
2980
+ "name": "disabled",
2981
+ "default": "false",
2247
2982
  "value": {
2248
2983
  "kind": "expression",
2249
- "type": "GrLinkSize | undefined"
2984
+ "type": "boolean | undefined"
2250
2985
  }
2251
2986
  },
2252
2987
  {
2253
- "name": "disabled",
2254
- "default": "false",
2988
+ "name": "size",
2989
+ "default": "\"md\"",
2255
2990
  "value": {
2256
2991
  "kind": "expression",
2257
- "type": "boolean | undefined"
2992
+ "type": "GrLinkSize | undefined"
2258
2993
  }
2259
2994
  },
2260
2995
  {
@@ -2541,23 +3276,23 @@
2541
3276
  },
2542
3277
  "props": [
2543
3278
  {
2544
- "name": "size",
2545
- "default": "\"md\"",
3279
+ "name": "disabled",
3280
+ "default": "false",
2546
3281
  "value": {
2547
3282
  "kind": "expression",
2548
- "type": "GrNumberInputSize | undefined"
3283
+ "type": "boolean | undefined"
2549
3284
  }
2550
3285
  },
2551
3286
  {
2552
- "name": "disabled",
2553
- "default": "false",
3287
+ "name": "size",
3288
+ "default": "undefined",
2554
3289
  "value": {
2555
3290
  "kind": "expression",
2556
- "type": "boolean | undefined"
3291
+ "type": "GrNumberInputSize | undefined"
2557
3292
  }
2558
3293
  },
2559
3294
  {
2560
- "name": "name",
3295
+ "name": "placeholder",
2561
3296
  "default": "undefined",
2562
3297
  "value": {
2563
3298
  "kind": "expression",
@@ -2565,7 +3300,7 @@
2565
3300
  }
2566
3301
  },
2567
3302
  {
2568
- "name": "id",
3303
+ "name": "name",
2569
3304
  "default": "undefined",
2570
3305
  "value": {
2571
3306
  "kind": "expression",
@@ -2573,7 +3308,7 @@
2573
3308
  }
2574
3309
  },
2575
3310
  {
2576
- "name": "placeholder",
3311
+ "name": "id",
2577
3312
  "default": "undefined",
2578
3313
  "value": {
2579
3314
  "kind": "expression",
@@ -2710,6 +3445,24 @@
2710
3445
  "type": "number | undefined"
2711
3446
  }
2712
3447
  },
3448
+ {
3449
+ "name": "locale",
3450
+ "description": "BCP-47 локаль для отображения значения (группировка разрядов и разделители через `Intl.NumberFormat`). Работает вместе с `useGrouping`.",
3451
+ "default": "undefined",
3452
+ "value": {
3453
+ "kind": "expression",
3454
+ "type": "string | undefined"
3455
+ }
3456
+ },
3457
+ {
3458
+ "name": "useGrouping",
3459
+ "description": "Группировать разряды при отображении (когда поле не в фокусе). При фокусе показывается «сырое» значение для редактирования. По умолчанию выключено.",
3460
+ "default": "false",
3461
+ "value": {
3462
+ "kind": "expression",
3463
+ "type": "boolean | undefined"
3464
+ }
3465
+ },
2713
3466
  {
2714
3467
  "name": "controls",
2715
3468
  "description": "Показывать кнопки +/-.",
@@ -2781,6 +3534,15 @@
2781
3534
  "symbol": "GrPagination"
2782
3535
  },
2783
3536
  "props": [
3537
+ {
3538
+ "name": "compact",
3539
+ "description": "Компактный вариант: вместо нумерованных страниц показывается индикатор «текущая / всего» — удобно для узких мест (мобайл, тулбары таблиц).",
3540
+ "default": "false",
3541
+ "value": {
3542
+ "kind": "expression",
3543
+ "type": "boolean | undefined"
3544
+ }
3545
+ },
2784
3546
  {
2785
3547
  "name": "pageSizes",
2786
3548
  "default": "[10, 20, 50]",
@@ -2807,6 +3569,24 @@
2807
3569
  "type": "number | undefined"
2808
3570
  }
2809
3571
  },
3572
+ {
3573
+ "name": "showJumper",
3574
+ "description": "Показывать поле «перейти к странице» с быстрым переходом по вводу номера.",
3575
+ "default": "false",
3576
+ "value": {
3577
+ "kind": "expression",
3578
+ "type": "boolean | undefined"
3579
+ }
3580
+ },
3581
+ {
3582
+ "name": "jumperLabel",
3583
+ "description": "i18n-подпись перед полем перехода. По умолчанию — `gr.pagination.jumpTo`.",
3584
+ "default": "undefined",
3585
+ "value": {
3586
+ "kind": "expression",
3587
+ "type": "string | undefined"
3588
+ }
3589
+ },
2810
3590
  {
2811
3591
  "name": "total",
2812
3592
  "required": true,
@@ -2855,7 +3635,7 @@
2855
3635
  "default": "\"primary\"",
2856
3636
  "value": {
2857
3637
  "kind": "expression",
2858
- "type": "\"info\" | \"primary\" | \"neutral\" | \"success\" | \"warning\" | \"danger\" | \"slate\" | \"azure\" | undefined"
3638
+ "type": "\"primary\" | \"neutral\" | \"success\" | \"warning\" | \"danger\" | \"info\" | \"slate\" | \"azure\" | undefined"
2859
3639
  }
2860
3640
  },
2861
3641
  {
@@ -2899,6 +3679,14 @@
2899
3679
  "type": "GrDialogSize | undefined"
2900
3680
  }
2901
3681
  },
3682
+ {
3683
+ "name": "placeholder",
3684
+ "default": "undefined",
3685
+ "value": {
3686
+ "kind": "expression",
3687
+ "type": "string | undefined"
3688
+ }
3689
+ },
2902
3690
  {
2903
3691
  "name": "required",
2904
3692
  "default": "true",
@@ -3017,7 +3805,7 @@
3017
3805
  "default": "\"primary\"",
3018
3806
  "value": {
3019
3807
  "kind": "expression",
3020
- "type": "\"info\" | \"primary\" | \"neutral\" | \"success\" | \"warning\" | \"danger\" | \"slate\" | \"azure\" | undefined"
3808
+ "type": "\"primary\" | \"neutral\" | \"success\" | \"warning\" | \"danger\" | \"info\" | \"slate\" | \"azure\" | undefined"
3021
3809
  }
3022
3810
  },
3023
3811
  {
@@ -3056,14 +3844,6 @@
3056
3844
  "type": "boolean | undefined"
3057
3845
  }
3058
3846
  },
3059
- {
3060
- "name": "placeholder",
3061
- "default": "undefined",
3062
- "value": {
3063
- "kind": "expression",
3064
- "type": "string | undefined"
3065
- }
3066
- },
3067
3847
  {
3068
3848
  "name": "label",
3069
3849
  "default": "undefined",
@@ -3091,19 +3871,19 @@
3091
3871
  }
3092
3872
  },
3093
3873
  {
3094
- "name": "value",
3874
+ "name": "modelValue",
3095
3875
  "required": true,
3096
3876
  "value": {
3097
3877
  "kind": "expression",
3098
- "type": "string"
3878
+ "type": "boolean"
3099
3879
  }
3100
3880
  },
3101
3881
  {
3102
- "name": "modelValue",
3882
+ "name": "value",
3103
3883
  "required": true,
3104
3884
  "value": {
3105
3885
  "kind": "expression",
3106
- "type": "boolean"
3886
+ "type": "string"
3107
3887
  }
3108
3888
  }
3109
3889
  ],
@@ -3150,14 +3930,6 @@
3150
3930
  "type": "GrRadioVariant | undefined"
3151
3931
  }
3152
3932
  },
3153
- {
3154
- "name": "size",
3155
- "default": "undefined",
3156
- "value": {
3157
- "kind": "expression",
3158
- "type": "GrButtonSize | undefined"
3159
- }
3160
- },
3161
3933
  {
3162
3934
  "name": "modelValue",
3163
3935
  "default": "undefined",
@@ -3167,19 +3939,19 @@
3167
3939
  }
3168
3940
  },
3169
3941
  {
3170
- "name": "required",
3171
- "default": "false",
3942
+ "name": "disabled",
3943
+ "default": "undefined",
3172
3944
  "value": {
3173
3945
  "kind": "expression",
3174
3946
  "type": "boolean | undefined"
3175
3947
  }
3176
3948
  },
3177
3949
  {
3178
- "name": "disabled",
3950
+ "name": "size",
3179
3951
  "default": "undefined",
3180
3952
  "value": {
3181
3953
  "kind": "expression",
3182
- "type": "boolean | undefined"
3954
+ "type": "GrButtonSize | undefined"
3183
3955
  }
3184
3956
  },
3185
3957
  {
@@ -3190,6 +3962,14 @@
3190
3962
  "type": "string | undefined"
3191
3963
  }
3192
3964
  },
3965
+ {
3966
+ "name": "required",
3967
+ "default": "false",
3968
+ "value": {
3969
+ "kind": "expression",
3970
+ "type": "boolean | undefined"
3971
+ }
3972
+ },
3193
3973
  {
3194
3974
  "name": "name",
3195
3975
  "default": "undefined",
@@ -3227,7 +4007,7 @@
3227
4007
  "default": "\"neutral\"",
3228
4008
  "value": {
3229
4009
  "kind": "expression",
3230
- "type": "\"info\" | \"primary\" | \"neutral\" | \"success\" | \"warning\" | \"danger\" | \"slate\" | \"azure\" | undefined"
4010
+ "type": "\"primary\" | \"neutral\" | \"success\" | \"warning\" | \"danger\" | \"info\" | \"slate\" | \"azure\" | undefined"
3231
4011
  }
3232
4012
  },
3233
4013
  {
@@ -3243,7 +4023,7 @@
3243
4023
  "default": "\"primary\"",
3244
4024
  "value": {
3245
4025
  "kind": "expression",
3246
- "type": "\"info\" | \"primary\" | \"neutral\" | \"success\" | \"warning\" | \"danger\" | \"slate\" | \"azure\" | undefined"
4026
+ "type": "\"primary\" | \"neutral\" | \"success\" | \"warning\" | \"danger\" | \"info\" | \"slate\" | \"azure\" | undefined"
3247
4027
  }
3248
4028
  },
3249
4029
  {
@@ -3284,11 +4064,11 @@
3284
4064
  }
3285
4065
  },
3286
4066
  {
3287
- "name": "size",
3288
- "default": "\"md\"",
4067
+ "name": "options",
4068
+ "default": "undefined",
3289
4069
  "value": {
3290
4070
  "kind": "expression",
3291
- "type": "GrButtonSize | undefined"
4071
+ "type": "GrRadioGroupOption[] | undefined"
3292
4072
  }
3293
4073
  },
3294
4074
  {
@@ -3300,15 +4080,15 @@
3300
4080
  }
3301
4081
  },
3302
4082
  {
3303
- "name": "ariaLabel",
4083
+ "name": "size",
3304
4084
  "default": "undefined",
3305
4085
  "value": {
3306
4086
  "kind": "expression",
3307
- "type": "string | undefined"
4087
+ "type": "GrButtonSize | undefined"
3308
4088
  }
3309
4089
  },
3310
4090
  {
3311
- "name": "name",
4091
+ "name": "ariaLabel",
3312
4092
  "default": "undefined",
3313
4093
  "value": {
3314
4094
  "kind": "expression",
@@ -3316,11 +4096,11 @@
3316
4096
  }
3317
4097
  },
3318
4098
  {
3319
- "name": "options",
4099
+ "name": "name",
3320
4100
  "default": "undefined",
3321
4101
  "value": {
3322
4102
  "kind": "expression",
3323
- "type": "GrRadioGroupOption[] | undefined"
4103
+ "type": "string | undefined"
3324
4104
  }
3325
4105
  },
3326
4106
  {
@@ -3346,61 +4126,196 @@
3346
4126
  }
3347
4127
  },
3348
4128
  {
3349
- "name": "GrResponseErrorBanner",
4129
+ "name": "GrRating",
3350
4130
  "source": {
3351
- "module": "@feugene/granularity/components/GrResponseErrorBanner",
3352
- "symbol": "GrResponseErrorBanner"
4131
+ "module": "@feugene/granularity/components/GrRating",
4132
+ "symbol": "GrRating"
3353
4133
  },
3354
4134
  "props": [
3355
4135
  {
3356
4136
  "name": "tone",
3357
- "description": "Жёсткий оверрайд тона. Бьёт `toneByKind`.",
3358
- "default": "undefined",
4137
+ "description": "Тон заливки; точечно перекрывается переменной `--gr-rating-color`.",
4138
+ "default": "\"warning\"",
3359
4139
  "value": {
3360
4140
  "kind": "expression",
3361
- "type": "ResponseErrorTone | undefined"
4141
+ "type": "\"primary\" | \"neutral\" | \"success\" | \"warning\" | \"danger\" | \"info\" | \"slate\" | \"azure\" | undefined"
3362
4142
  }
3363
4143
  },
3364
4144
  {
3365
- "name": "texts",
3366
- "description": "Частичный override текстов. Мерджится с `DEFAULT_RESPONSE_ERROR_TEXTS`.",
3367
- "default": "{}",
4145
+ "name": "disabled",
4146
+ "default": "false",
3368
4147
  "value": {
3369
4148
  "kind": "expression",
3370
- "type": "Partial<ResponseErrorTexts> | undefined"
4149
+ "type": "boolean | undefined"
3371
4150
  }
3372
4151
  },
3373
4152
  {
3374
- "name": "toneByKind",
3375
- "description": "Маппинг `kind` → `tone`. Мерджится с `DEFAULT_TONE_BY_KIND`.",
3376
- "default": "{}",
4153
+ "name": "size",
4154
+ "default": "undefined",
3377
4155
  "value": {
3378
4156
  "kind": "expression",
3379
- "type": "Partial<Record<ResponseErrorKind, ResponseErrorTone>> | undefined"
4157
+ "type": "GrRatingSize | undefined"
3380
4158
  }
3381
4159
  },
3382
4160
  {
3383
- "name": "showDetails",
3384
- "description": "Показывать ли блок `details`/`fieldErrors` под основным сообщением.",
3385
- "default": "true",
4161
+ "name": "ariaLabel",
4162
+ "default": "undefined",
3386
4163
  "value": {
3387
4164
  "kind": "expression",
3388
- "type": "boolean | undefined"
4165
+ "type": "string | undefined"
3389
4166
  }
3390
4167
  },
3391
4168
  {
3392
- "name": "showFieldLabels",
3393
- "description": "Префиксить ли `field:` перед сообщениями по полям.",
3394
- "default": "true",
4169
+ "name": "clearable",
4170
+ "description": "Повторный клик по текущей оценке сбрасывает её в `0`.",
4171
+ "default": "false",
3395
4172
  "value": {
3396
4173
  "kind": "expression",
3397
4174
  "type": "boolean | undefined"
3398
4175
  }
3399
4176
  },
3400
4177
  {
3401
- "name": "fieldLabels",
3402
- "description": "Человекочитаемые подписи полей (`{ file: 'Файл' }`).",
3403
- "default": "{}",
4178
+ "name": "readonly",
4179
+ "description": "Только показ: без ввода и фокуса.",
4180
+ "default": "false",
4181
+ "value": {
4182
+ "kind": "expression",
4183
+ "type": "boolean | undefined"
4184
+ }
4185
+ },
4186
+ {
4187
+ "name": "max",
4188
+ "description": "Количество символов шкалы.",
4189
+ "default": "5",
4190
+ "value": {
4191
+ "kind": "expression",
4192
+ "type": "number | undefined"
4193
+ }
4194
+ },
4195
+ {
4196
+ "name": "allowHalf",
4197
+ "description": "Половинчатые оценки: клик по левой половине символа даёт `.5`.",
4198
+ "default": "false",
4199
+ "value": {
4200
+ "kind": "expression",
4201
+ "type": "boolean | undefined"
4202
+ }
4203
+ },
4204
+ {
4205
+ "name": "icon",
4206
+ "description": "UnoCSS-класс иконки вместо встроенной звезды (например `i-lucide-heart`).",
4207
+ "default": "undefined",
4208
+ "value": {
4209
+ "kind": "expression",
4210
+ "type": "string | undefined"
4211
+ }
4212
+ },
4213
+ {
4214
+ "name": "showText",
4215
+ "description": "Показывать числовую подпись справа от шкалы.",
4216
+ "default": "false",
4217
+ "value": {
4218
+ "kind": "expression",
4219
+ "type": "boolean | undefined"
4220
+ }
4221
+ },
4222
+ {
4223
+ "name": "formatText",
4224
+ "description": "Формат подписи. По умолчанию — само значение.",
4225
+ "default": "undefined",
4226
+ "value": {
4227
+ "kind": "expression",
4228
+ "type": "((value: number) => string) | undefined"
4229
+ }
4230
+ },
4231
+ {
4232
+ "name": "modelValue",
4233
+ "required": true,
4234
+ "description": "Текущая оценка. Дробная (`3.5`) поддерживается при `allowHalf`.",
4235
+ "value": {
4236
+ "kind": "expression",
4237
+ "type": "number"
4238
+ }
4239
+ }
4240
+ ],
4241
+ "slots": [
4242
+ {
4243
+ "name": "symbol"
4244
+ },
4245
+ {
4246
+ "name": "text"
4247
+ }
4248
+ ],
4249
+ "js": {
4250
+ "events": [
4251
+ {
4252
+ "name": "update:modelValue"
4253
+ },
4254
+ {
4255
+ "name": "change"
4256
+ },
4257
+ {
4258
+ "name": "hoverChange"
4259
+ }
4260
+ ]
4261
+ }
4262
+ },
4263
+ {
4264
+ "name": "GrResponseErrorBanner",
4265
+ "source": {
4266
+ "module": "@feugene/granularity/components/GrResponseErrorBanner",
4267
+ "symbol": "GrResponseErrorBanner"
4268
+ },
4269
+ "props": [
4270
+ {
4271
+ "name": "tone",
4272
+ "description": "Жёсткий оверрайд тона. Бьёт `toneByKind`.",
4273
+ "default": "undefined",
4274
+ "value": {
4275
+ "kind": "expression",
4276
+ "type": "ResponseErrorTone | undefined"
4277
+ }
4278
+ },
4279
+ {
4280
+ "name": "texts",
4281
+ "description": "Частичный override текстов. Мерджится с `DEFAULT_RESPONSE_ERROR_TEXTS`.",
4282
+ "default": "{}",
4283
+ "value": {
4284
+ "kind": "expression",
4285
+ "type": "Partial<ResponseErrorTexts> | undefined"
4286
+ }
4287
+ },
4288
+ {
4289
+ "name": "toneByKind",
4290
+ "description": "Маппинг `kind` → `tone`. Мерджится с `DEFAULT_TONE_BY_KIND`.",
4291
+ "default": "{}",
4292
+ "value": {
4293
+ "kind": "expression",
4294
+ "type": "Partial<Record<ResponseErrorKind, ResponseErrorTone>> | undefined"
4295
+ }
4296
+ },
4297
+ {
4298
+ "name": "showDetails",
4299
+ "description": "Показывать ли блок `details`/`fieldErrors` под основным сообщением.",
4300
+ "default": "true",
4301
+ "value": {
4302
+ "kind": "expression",
4303
+ "type": "boolean | undefined"
4304
+ }
4305
+ },
4306
+ {
4307
+ "name": "showFieldLabels",
4308
+ "description": "Префиксить ли `field:` перед сообщениями по полям.",
4309
+ "default": "true",
4310
+ "value": {
4311
+ "kind": "expression",
4312
+ "type": "boolean | undefined"
4313
+ }
4314
+ },
4315
+ {
4316
+ "name": "fieldLabels",
4317
+ "description": "Человекочитаемые подписи полей (`{ file: 'Файл' }`).",
4318
+ "default": "{}",
3404
4319
  "value": {
3405
4320
  "kind": "expression",
3406
4321
  "type": "Record<string, string> | undefined"
@@ -3490,26 +4405,26 @@
3490
4405
  "props": [
3491
4406
  {
3492
4407
  "name": "variant",
3493
- "default": "\"pills\"",
4408
+ "default": "undefined",
3494
4409
  "value": {
3495
4410
  "kind": "expression",
3496
4411
  "type": "GrSegmentedVariant | undefined"
3497
4412
  }
3498
4413
  },
3499
4414
  {
3500
- "name": "size",
3501
- "default": "\"md\"",
4415
+ "name": "disabled",
4416
+ "default": "false",
3502
4417
  "value": {
3503
4418
  "kind": "expression",
3504
- "type": "GrSegmentedSize | undefined"
4419
+ "type": "boolean | undefined"
3505
4420
  }
3506
4421
  },
3507
4422
  {
3508
- "name": "disabled",
3509
- "default": "false",
4423
+ "name": "size",
4424
+ "default": "undefined",
3510
4425
  "value": {
3511
4426
  "kind": "expression",
3512
- "type": "boolean | undefined"
4427
+ "type": "GrSegmentedSize | undefined"
3513
4428
  }
3514
4429
  },
3515
4430
  {
@@ -3590,18 +4505,28 @@
3590
4505
  {
3591
4506
  "name": "variant",
3592
4507
  "description": "Цвет/вариант ссылки для `view=\"link\"` (аналогично `GrLink`). В `view=\"default\"` не используется.",
3593
- "default": "\"primary\"",
4508
+ "default": "undefined",
3594
4509
  "value": {
3595
4510
  "kind": "expression",
3596
4511
  "type": "GrSelectVariant | undefined"
3597
4512
  }
3598
4513
  },
3599
4514
  {
3600
- "name": "size",
3601
- "default": "\"md\"",
4515
+ "name": "options",
4516
+ "description": "Список опций. Поддерживает плоский массив опций и группы опций (`{ label, options }`).",
4517
+ "default": "undefined",
3602
4518
  "value": {
3603
4519
  "kind": "expression",
3604
- "type": "GrSelectSize | undefined"
4520
+ "type": "GrSelectOptionOrGroup[] | undefined"
4521
+ }
4522
+ },
4523
+ {
4524
+ "name": "multiple",
4525
+ "description": "Multiple selection.",
4526
+ "default": "false",
4527
+ "value": {
4528
+ "kind": "expression",
4529
+ "type": "boolean | undefined"
3605
4530
  }
3606
4531
  },
3607
4532
  {
@@ -3612,6 +4537,23 @@
3612
4537
  "type": "boolean | undefined"
3613
4538
  }
3614
4539
  },
4540
+ {
4541
+ "name": "size",
4542
+ "default": "undefined",
4543
+ "value": {
4544
+ "kind": "expression",
4545
+ "type": "GrSelectSize | undefined"
4546
+ }
4547
+ },
4548
+ {
4549
+ "name": "placeholder",
4550
+ "description": "Placeholder (показывается, когда значение не выбрано).",
4551
+ "default": "undefined",
4552
+ "value": {
4553
+ "kind": "expression",
4554
+ "type": "string | undefined"
4555
+ }
4556
+ },
3615
4557
  {
3616
4558
  "name": "ariaLabel",
3617
4559
  "default": "undefined",
@@ -3621,8 +4563,17 @@
3621
4563
  }
3622
4564
  },
3623
4565
  {
3624
- "name": "multiple",
3625
- "description": "Multiple selection.",
4566
+ "name": "clearable",
4567
+ "description": "Разрешает очистку выбранного значения.",
4568
+ "default": "undefined",
4569
+ "value": {
4570
+ "kind": "expression",
4571
+ "type": "boolean | undefined"
4572
+ }
4573
+ },
4574
+ {
4575
+ "name": "loading",
4576
+ "description": "Состояние загрузки: вместо списка опций панель показывает индикатор загрузки. Полезно для удалённой подгрузки опций. Форсит `optionsView=\"panel\"`.",
3626
4577
  "default": "false",
3627
4578
  "value": {
3628
4579
  "kind": "expression",
@@ -3630,8 +4581,115 @@
3630
4581
  }
3631
4582
  },
3632
4583
  {
3633
- "name": "placeholder",
3634
- "description": "Placeholder (показывается, когда значение не выбрано).",
4584
+ "name": "filterable",
4585
+ "description": "Поиск/фильтрация опций по вводу (независимо от `allowCustomValue`). Показывает поле поиска над списком и фильтрует опции. Работает только в `optionsView=\"panel\"` (при `native` панель форсится автоматически).",
4586
+ "default": "false",
4587
+ "value": {
4588
+ "kind": "expression",
4589
+ "type": "boolean | undefined"
4590
+ }
4591
+ },
4592
+ {
4593
+ "name": "allowCustomValue",
4594
+ "description": "Разрешает ввод/выбор значения, которого нет в `options`.",
4595
+ "default": "false",
4596
+ "value": {
4597
+ "kind": "expression",
4598
+ "type": "boolean | undefined"
4599
+ }
4600
+ },
4601
+ {
4602
+ "name": "closeOnSelect",
4603
+ "description": "Закрывать панель после выбора (только в `optionsView=\"panel\"`).",
4604
+ "default": "true",
4605
+ "value": {
4606
+ "kind": "expression",
4607
+ "type": "boolean | undefined"
4608
+ }
4609
+ },
4610
+ {
4611
+ "name": "dropdownMaxHeight",
4612
+ "description": "Максимальная высота панели (только в `optionsView=\"panel\"`).",
4613
+ "default": "280",
4614
+ "value": {
4615
+ "kind": "expression",
4616
+ "type": "number | undefined"
4617
+ }
4618
+ },
4619
+ {
4620
+ "name": "loadingText",
4621
+ "description": "Текст индикатора загрузки. i18n: fallback `gr.select.loading`.",
4622
+ "default": "undefined",
4623
+ "value": {
4624
+ "kind": "expression",
4625
+ "type": "string | undefined"
4626
+ }
4627
+ },
4628
+ {
4629
+ "name": "noResultsText",
4630
+ "description": "Текст пустого результата фильтрации. i18n: fallback `gr.select.noResults`.",
4631
+ "default": "undefined",
4632
+ "value": {
4633
+ "kind": "expression",
4634
+ "type": "string | undefined"
4635
+ }
4636
+ },
4637
+ {
4638
+ "name": "clearLabel",
4639
+ "description": "i18n-label для кнопки очистки (`aria-label`).",
4640
+ "default": "undefined",
4641
+ "value": {
4642
+ "kind": "expression",
4643
+ "type": "string | undefined"
4644
+ }
4645
+ },
4646
+ {
4647
+ "name": "underline",
4648
+ "description": "Подчёркивание для `view=\"link\"` (аналогично `GrLink`). В `view=\"default\"` не используется.",
4649
+ "default": "undefined",
4650
+ "value": {
4651
+ "kind": "expression",
4652
+ "type": "GrSelectUnderline | undefined"
4653
+ }
4654
+ },
4655
+ {
4656
+ "name": "view",
4657
+ "default": "\"default\"",
4658
+ "value": {
4659
+ "kind": "expression",
4660
+ "type": "GrSelectView | undefined"
4661
+ }
4662
+ },
4663
+ {
4664
+ "name": "optionsView",
4665
+ "description": "Как отображать список опций: нативный `<select>` или кастомная панель.",
4666
+ "default": "\"native\"",
4667
+ "value": {
4668
+ "kind": "expression",
4669
+ "type": "GrSelectOptionsView | undefined"
4670
+ }
4671
+ },
4672
+ {
4673
+ "name": "filterPlaceholder",
4674
+ "description": "Placeholder поля поиска (`filterable`). i18n: fallback `gr.select.searchPlaceholder`.",
4675
+ "default": "undefined",
4676
+ "value": {
4677
+ "kind": "expression",
4678
+ "type": "string | undefined"
4679
+ }
4680
+ },
4681
+ {
4682
+ "name": "tags",
4683
+ "description": "Режим тегов для `multiple`: выбранные значения показываются как удаляемые chips в триггере (вместо строки «a, b, c»). Форсит `optionsView=\"panel\"`.",
4684
+ "default": "false",
4685
+ "value": {
4686
+ "kind": "expression",
4687
+ "type": "boolean | undefined"
4688
+ }
4689
+ },
4690
+ {
4691
+ "name": "customValuePlaceholder",
4692
+ "description": "Placeholder для инпута кастомного значения (только в `optionsView=\"panel\"`). i18n-friendly: если не задан — берётся из адаптера перевода (`gr.select.customValuePlaceholder`), иначе — встроенный fallback.",
3635
4693
  "default": "undefined",
3636
4694
  "value": {
3637
4695
  "kind": "expression",
@@ -3639,157 +4697,302 @@
3639
4697
  }
3640
4698
  },
3641
4699
  {
3642
- "name": "underline",
3643
- "description": "Подчёркивание для `view=\"link\"` (аналогично `GrLink`). В `view=\"default\"` не используется.",
3644
- "default": "\"auto\"",
4700
+ "name": "modelValue",
4701
+ "required": true,
4702
+ "value": {
4703
+ "kind": "expression",
4704
+ "type": "GrSelectModelValue"
4705
+ }
4706
+ }
4707
+ ],
4708
+ "slots": [
4709
+ {
4710
+ "name": "default"
4711
+ },
4712
+ {
4713
+ "name": "value"
4714
+ },
4715
+ {
4716
+ "name": "option"
4717
+ }
4718
+ ],
4719
+ "js": {
4720
+ "events": [
4721
+ {
4722
+ "name": "update:modelValue"
4723
+ }
4724
+ ]
4725
+ }
4726
+ },
4727
+ {
4728
+ "name": "GrSidebar",
4729
+ "source": {
4730
+ "module": "@feugene/granularity/components/GrSidebar",
4731
+ "symbol": "GrSidebar"
4732
+ },
4733
+ "props": [
4734
+ {
4735
+ "name": "title",
4736
+ "default": "undefined",
4737
+ "value": {
4738
+ "kind": "expression",
4739
+ "type": "string | undefined"
4740
+ }
4741
+ },
4742
+ {
4743
+ "name": "width",
4744
+ "description": "Ширина в развёрнутом состоянии.",
4745
+ "default": "\"240px\"",
4746
+ "value": {
4747
+ "kind": "expression",
4748
+ "type": "string | undefined"
4749
+ }
4750
+ },
4751
+ {
4752
+ "name": "subtitle",
4753
+ "default": "undefined",
4754
+ "value": {
4755
+ "kind": "expression",
4756
+ "type": "string | undefined"
4757
+ }
4758
+ },
4759
+ {
4760
+ "name": "collapsed",
4761
+ "description": "Свёрнутое состояние. Поддерживает `v-model:collapsed`.",
4762
+ "default": "false",
4763
+ "value": {
4764
+ "kind": "expression",
4765
+ "type": "boolean | undefined"
4766
+ }
4767
+ },
4768
+ {
4769
+ "name": "showToggleButton",
4770
+ "description": "Показать кнопку сворачивания/разворачивания в хедере.",
4771
+ "default": "false",
4772
+ "value": {
4773
+ "kind": "expression",
4774
+ "type": "boolean | undefined"
4775
+ }
4776
+ },
4777
+ {
4778
+ "name": "collapsedWidth",
4779
+ "description": "Ширина в свёрнутом состоянии.",
4780
+ "default": "\"64px\"",
4781
+ "value": {
4782
+ "kind": "expression",
4783
+ "type": "string | undefined"
4784
+ }
4785
+ },
4786
+ {
4787
+ "name": "toggleLabel",
4788
+ "description": "A11y-лейбл кнопки тогла.",
4789
+ "default": "undefined",
4790
+ "value": {
4791
+ "kind": "expression",
4792
+ "type": "string | undefined"
4793
+ }
4794
+ }
4795
+ ],
4796
+ "slots": [
4797
+ {
4798
+ "name": "subtitle"
4799
+ },
4800
+ {
4801
+ "name": "title"
4802
+ },
4803
+ {
4804
+ "name": "default"
4805
+ }
4806
+ ],
4807
+ "js": {
4808
+ "events": [
4809
+ {
4810
+ "name": "update:collapsed"
4811
+ }
4812
+ ]
4813
+ }
4814
+ },
4815
+ {
4816
+ "name": "GrSkeleton",
4817
+ "source": {
4818
+ "module": "@feugene/granularity/components/GrSkeleton",
4819
+ "symbol": "GrSkeleton"
4820
+ },
4821
+ "props": [
4822
+ {
4823
+ "name": "width",
4824
+ "default": "\"100%\"",
4825
+ "value": {
4826
+ "kind": "expression",
4827
+ "type": "string | undefined"
4828
+ }
4829
+ },
4830
+ {
4831
+ "name": "height",
4832
+ "default": "\"12px\"",
4833
+ "value": {
4834
+ "kind": "expression",
4835
+ "type": "string | undefined"
4836
+ }
4837
+ },
4838
+ {
4839
+ "name": "rounded",
4840
+ "default": "\"9999px\"",
4841
+ "value": {
4842
+ "kind": "expression",
4843
+ "type": "string | undefined"
4844
+ }
4845
+ }
4846
+ ]
4847
+ },
4848
+ {
4849
+ "name": "GrSlider",
4850
+ "source": {
4851
+ "module": "@feugene/granularity/components/GrSlider",
4852
+ "symbol": "GrSlider"
4853
+ },
4854
+ "props": [
4855
+ {
4856
+ "name": "disabled",
4857
+ "default": "false",
3645
4858
  "value": {
3646
4859
  "kind": "expression",
3647
- "type": "GrSelectUnderline | undefined"
4860
+ "type": "boolean | undefined"
3648
4861
  }
3649
4862
  },
3650
4863
  {
3651
- "name": "options",
3652
- "description": "Список опций. Поддерживает плоский массив опций и группы опций (`{ label, options }`).",
4864
+ "name": "size",
3653
4865
  "default": "undefined",
3654
4866
  "value": {
3655
4867
  "kind": "expression",
3656
- "type": "GrSelectOptionOrGroup[] | undefined"
4868
+ "type": "GrSliderSize | undefined"
3657
4869
  }
3658
4870
  },
3659
4871
  {
3660
- "name": "view",
3661
- "default": "\"default\"",
4872
+ "name": "ariaLabel",
4873
+ "default": "undefined",
3662
4874
  "value": {
3663
4875
  "kind": "expression",
3664
- "type": "GrSelectView | undefined"
4876
+ "type": "string | undefined"
3665
4877
  }
3666
4878
  },
3667
4879
  {
3668
- "name": "optionsView",
3669
- "description": "Как отображать список опций: нативный `<select>` или кастомная панель.",
3670
- "default": "\"native\"",
4880
+ "name": "max",
4881
+ "default": "100",
3671
4882
  "value": {
3672
4883
  "kind": "expression",
3673
- "type": "GrSelectOptionsView | undefined"
4884
+ "type": "number | undefined"
3674
4885
  }
3675
4886
  },
3676
4887
  {
3677
- "name": "allowCustomValue",
3678
- "description": "Разрешает ввод/выбор значения, которого нет в `options`.",
3679
- "default": "false",
4888
+ "name": "step",
4889
+ "default": "1",
3680
4890
  "value": {
3681
4891
  "kind": "expression",
3682
- "type": "boolean | undefined"
4892
+ "type": "number | undefined"
3683
4893
  }
3684
4894
  },
3685
4895
  {
3686
- "name": "customValuePlaceholder",
3687
- "description": "Placeholder для инпута кастомного значения (только в `optionsView=\"panel\"`). i18n-friendly: если не задан — берётся из адаптера перевода (`gr.select.customValuePlaceholder`), иначе — встроенный fallback.",
3688
- "default": "undefined",
4896
+ "name": "min",
4897
+ "default": "0",
3689
4898
  "value": {
3690
4899
  "kind": "expression",
3691
- "type": "string | undefined"
4900
+ "type": "number | undefined"
3692
4901
  }
3693
4902
  },
3694
4903
  {
3695
- "name": "dropdownMaxHeight",
3696
- "description": "Максимальная высота панели (только в `optionsView=\"panel\"`).",
3697
- "default": "280",
4904
+ "name": "range",
4905
+ "description": "Диапазон с двумя бегунками; модель — кортеж `[lo, hi]`.",
4906
+ "default": "false",
3698
4907
  "value": {
3699
4908
  "kind": "expression",
3700
- "type": "number | undefined"
4909
+ "type": "boolean | undefined"
3701
4910
  }
3702
4911
  },
3703
4912
  {
3704
- "name": "closeOnSelect",
3705
- "description": "Закрывать панель после выбора (только в `optionsView=\"panel\"`).",
3706
- "default": "true",
4913
+ "name": "marks",
4914
+ "description": "Метки делений: `{ [value]: label }` или массив значений.",
4915
+ "default": "undefined",
3707
4916
  "value": {
3708
4917
  "kind": "expression",
3709
- "type": "boolean | undefined"
4918
+ "type": "GrSliderMarks | undefined"
3710
4919
  }
3711
4920
  },
3712
4921
  {
3713
- "name": "clearable",
3714
- "description": "Разрешает очистку выбранного значения.",
4922
+ "name": "showTooltip",
4923
+ "description": "Всплывающее значение над бегунком: `true`/`'hover'` — при hover/drag/focus, `'always'` — всегда.",
3715
4924
  "default": "false",
3716
4925
  "value": {
3717
4926
  "kind": "expression",
3718
- "type": "boolean | undefined"
4927
+ "type": "boolean | \"always\" | \"hover\" | undefined"
3719
4928
  }
3720
4929
  },
3721
4930
  {
3722
- "name": "clearLabel",
3723
- "description": "i18n-label для кнопки очистки (`aria-label`).",
4931
+ "name": "formatTooltip",
4932
+ "description": "Форматирование значения в tooltip.",
3724
4933
  "default": "undefined",
3725
4934
  "value": {
3726
4935
  "kind": "expression",
3727
- "type": "string | undefined"
4936
+ "type": "((value: number) => string) | undefined"
3728
4937
  }
3729
4938
  },
3730
4939
  {
3731
4940
  "name": "modelValue",
3732
4941
  "required": true,
4942
+ "description": "`number` — одиночное значение; `[lo, hi]` — диапазон (при `range=true`).",
3733
4943
  "value": {
3734
4944
  "kind": "expression",
3735
- "type": "GrSelectModelValue"
4945
+ "type": "GrSliderModelValue"
3736
4946
  }
3737
4947
  }
3738
4948
  ],
3739
- "slots": [
3740
- {
3741
- "name": "default"
3742
- },
3743
- {
3744
- "name": "value"
3745
- },
3746
- {
3747
- "name": "option"
3748
- }
3749
- ],
3750
4949
  "js": {
3751
4950
  "events": [
3752
4951
  {
3753
4952
  "name": "update:modelValue"
4953
+ },
4954
+ {
4955
+ "name": "change"
3754
4956
  }
3755
4957
  ]
3756
4958
  }
3757
4959
  },
3758
4960
  {
3759
- "name": "GrSidebar",
4961
+ "name": "GrStatistic",
3760
4962
  "source": {
3761
- "module": "@feugene/granularity/components/GrSidebar",
3762
- "symbol": "GrSidebar"
4963
+ "module": "@feugene/granularity/components/GrStatistic",
4964
+ "symbol": "GrStatistic"
3763
4965
  },
3764
4966
  "props": [
3765
4967
  {
3766
- "name": "title",
3767
- "default": "undefined",
4968
+ "name": "tone",
4969
+ "description": "Тон значения; точечно перекрывается `--gr-statistic-value-color`.",
4970
+ "default": "\"neutral\"",
3768
4971
  "value": {
3769
4972
  "kind": "expression",
3770
- "type": "string | undefined"
4973
+ "type": "\"primary\" | \"neutral\" | \"success\" | \"warning\" | \"danger\" | \"info\" | \"slate\" | \"azure\" | undefined"
3771
4974
  }
3772
4975
  },
3773
4976
  {
3774
- "name": "width",
3775
- "description": "Ширина в развёрнутом состоянии.",
3776
- "default": "\"240px\"",
4977
+ "name": "title",
4978
+ "description": "Подпись над значением.",
4979
+ "default": "undefined",
3777
4980
  "value": {
3778
4981
  "kind": "expression",
3779
4982
  "type": "string | undefined"
3780
4983
  }
3781
4984
  },
3782
4985
  {
3783
- "name": "subtitle",
3784
- "default": "undefined",
4986
+ "name": "size",
4987
+ "default": "\"md\"",
3785
4988
  "value": {
3786
4989
  "kind": "expression",
3787
- "type": "string | undefined"
4990
+ "type": "GrStatisticSize | undefined"
3788
4991
  }
3789
4992
  },
3790
4993
  {
3791
- "name": "collapsed",
3792
- "description": "Свёрнутое состояние. Поддерживает `v-model:collapsed`.",
4994
+ "name": "loading",
4995
+ "description": "Состояние загрузки: вместо значения — плейсхолдер.",
3793
4996
  "default": "false",
3794
4997
  "value": {
3795
4998
  "kind": "expression",
@@ -3797,82 +5000,104 @@
3797
5000
  }
3798
5001
  },
3799
5002
  {
3800
- "name": "showToggleButton",
3801
- "description": "Показать кнопку сворачивания/разворачивания в хедере.",
3802
- "default": "false",
5003
+ "name": "decimalSeparator",
5004
+ "default": "\".\"",
3803
5005
  "value": {
3804
5006
  "kind": "expression",
3805
- "type": "boolean | undefined"
5007
+ "type": "string | undefined"
3806
5008
  }
3807
5009
  },
3808
5010
  {
3809
- "name": "collapsedWidth",
3810
- "description": "Ширина в свёрнутом состоянии.",
3811
- "default": "\"64px\"",
5011
+ "name": "precision",
5012
+ "description": "Число знаков после запятой.",
5013
+ "default": "undefined",
3812
5014
  "value": {
3813
5015
  "kind": "expression",
3814
- "type": "string | undefined"
5016
+ "type": "number | undefined"
3815
5017
  }
3816
5018
  },
3817
5019
  {
3818
- "name": "toggleLabel",
3819
- "description": "A11y-лейбл кнопки тогла.",
5020
+ "name": "icon",
5021
+ "description": "UnoCSS-класс иконки слева от блока (например `i-lucide-users`).",
3820
5022
  "default": "undefined",
3821
5023
  "value": {
3822
5024
  "kind": "expression",
3823
5025
  "type": "string | undefined"
3824
5026
  }
3825
- }
3826
- ],
3827
- "slots": [
3828
- {
3829
- "name": "subtitle"
3830
5027
  },
3831
5028
  {
3832
- "name": "title"
5029
+ "name": "groupSeparator",
5030
+ "description": "Разделитель разрядов (по умолчанию — узкий пробел).",
5031
+ "default": "\" \"",
5032
+ "value": {
5033
+ "kind": "expression",
5034
+ "type": "string | undefined"
5035
+ }
3833
5036
  },
3834
5037
  {
3835
- "name": "default"
3836
- }
3837
- ],
3838
- "js": {
3839
- "events": [
3840
- {
3841
- "name": "update:collapsed"
5038
+ "name": "prefix",
5039
+ "description": "Приписка перед значением (валюта, знак).",
5040
+ "default": "undefined",
5041
+ "value": {
5042
+ "kind": "expression",
5043
+ "type": "string | undefined"
3842
5044
  }
3843
- ]
3844
- }
3845
- },
3846
- {
3847
- "name": "GrSkeleton",
3848
- "source": {
3849
- "module": "@feugene/granularity/components/GrSkeleton",
3850
- "symbol": "GrSkeleton"
3851
- },
3852
- "props": [
5045
+ },
3853
5046
  {
3854
- "name": "width",
3855
- "default": "\"100%\"",
5047
+ "name": "suffix",
5048
+ "description": "Приписка после значения (единица измерения, `%`).",
5049
+ "default": "undefined",
3856
5050
  "value": {
3857
5051
  "kind": "expression",
3858
5052
  "type": "string | undefined"
3859
5053
  }
3860
5054
  },
3861
5055
  {
3862
- "name": "height",
3863
- "default": "\"12px\"",
5056
+ "name": "trend",
5057
+ "description": "Направление динамики — задаёт цвет и иконку строки под значением.",
5058
+ "default": "undefined",
3864
5059
  "value": {
3865
5060
  "kind": "expression",
3866
- "type": "string | undefined"
5061
+ "type": "GrStatisticTrend | undefined"
3867
5062
  }
3868
5063
  },
3869
5064
  {
3870
- "name": "rounded",
3871
- "default": "\"9999px\"",
5065
+ "name": "trendText",
5066
+ "description": "Текст динамики (например `+12,5% к прошлой неделе`).",
5067
+ "default": "undefined",
3872
5068
  "value": {
3873
5069
  "kind": "expression",
3874
5070
  "type": "string | undefined"
3875
5071
  }
5072
+ },
5073
+ {
5074
+ "name": "value",
5075
+ "required": true,
5076
+ "description": "Значение показателя. Нечисловая строка выводится как есть.",
5077
+ "value": {
5078
+ "kind": "expression",
5079
+ "type": "string | number"
5080
+ }
5081
+ }
5082
+ ],
5083
+ "slots": [
5084
+ {
5085
+ "name": "icon"
5086
+ },
5087
+ {
5088
+ "name": "title"
5089
+ },
5090
+ {
5091
+ "name": "prefix"
5092
+ },
5093
+ {
5094
+ "name": "default"
5095
+ },
5096
+ {
5097
+ "name": "suffix"
5098
+ },
5099
+ {
5100
+ "name": "trend"
3876
5101
  }
3877
5102
  ]
3878
5103
  },
@@ -3884,19 +5109,19 @@
3884
5109
  },
3885
5110
  "props": [
3886
5111
  {
3887
- "name": "size",
3888
- "default": "\"md\"",
5112
+ "name": "disabled",
5113
+ "default": "false",
3889
5114
  "value": {
3890
5115
  "kind": "expression",
3891
- "type": "GrSwitchSize | undefined"
5116
+ "type": "boolean | undefined"
3892
5117
  }
3893
5118
  },
3894
5119
  {
3895
- "name": "disabled",
3896
- "default": "false",
5120
+ "name": "size",
5121
+ "default": "undefined",
3897
5122
  "value": {
3898
5123
  "kind": "expression",
3899
- "type": "boolean | undefined"
5124
+ "type": "GrSwitchSize | undefined"
3900
5125
  }
3901
5126
  },
3902
5127
  {
@@ -3909,7 +5134,7 @@
3909
5134
  },
3910
5135
  {
3911
5136
  "name": "activeBackgroundColor",
3912
- "description": "Кастомный цвет фона в активном состоянии. Если не задан — `var(--primary)`.",
5137
+ "description": "Кастомный цвет фона в активном состоянии. Если не задан — `var(--gr-primary)`.",
3913
5138
  "default": "undefined",
3914
5139
  "value": {
3915
5140
  "kind": "expression",
@@ -3918,7 +5143,7 @@
3918
5143
  },
3919
5144
  {
3920
5145
  "name": "inactiveBackgroundColor",
3921
- "description": "Кастомный цвет фона в неактивном состоянии. Если не задан — `var(--muted)`.",
5146
+ "description": "Кастомный цвет фона в неактивном состоянии. Если не задан — `var(--gr-muted)`.",
3922
5147
  "default": "undefined",
3923
5148
  "value": {
3924
5149
  "kind": "expression",
@@ -3947,6 +5172,36 @@
3947
5172
  ]
3948
5173
  }
3949
5174
  },
5175
+ {
5176
+ "name": "GrTabPanels",
5177
+ "source": {
5178
+ "module": "@feugene/granularity/components/GrTabPanels",
5179
+ "symbol": "GrTabPanels"
5180
+ },
5181
+ "props": [
5182
+ {
5183
+ "name": "idBase",
5184
+ "default": "undefined",
5185
+ "value": {
5186
+ "kind": "expression",
5187
+ "type": "string | undefined"
5188
+ }
5189
+ },
5190
+ {
5191
+ "name": "modelValue",
5192
+ "required": true,
5193
+ "value": {
5194
+ "kind": "expression",
5195
+ "type": "string"
5196
+ }
5197
+ }
5198
+ ],
5199
+ "slots": [
5200
+ {
5201
+ "name": "default"
5202
+ }
5203
+ ]
5204
+ },
3950
5205
  {
3951
5206
  "name": "GrTable",
3952
5207
  "source": {
@@ -3963,6 +5218,15 @@
3963
5218
  "type": "string | undefined"
3964
5219
  }
3965
5220
  },
5221
+ {
5222
+ "name": "maxHeight",
5223
+ "description": "Максимальная высота скролл-контейнера (включает вертикальный скролл). Число трактуется как пиксели. Нужен для работы `stickyHeader`.",
5224
+ "default": "undefined",
5225
+ "value": {
5226
+ "kind": "expression",
5227
+ "type": "string | number | undefined"
5228
+ }
5229
+ },
3966
5230
  {
3967
5231
  "name": "density",
3968
5232
  "description": "Плотность таблицы — влияет на базовый размер шрифта. Паддинги ячеек оставлены за консьюмером (GrTable — «тонкий» контейнер).",
@@ -3998,6 +5262,15 @@
3998
5262
  "kind": "expression",
3999
5263
  "type": "string | undefined"
4000
5264
  }
5265
+ },
5266
+ {
5267
+ "name": "stickyHeader",
5268
+ "description": "Прилипающий заголовок: `<thead>` остаётся видимым при вертикальном скролле. Осмысленно вместе с `maxHeight` (иначе таблица не скроллится вертикально).",
5269
+ "default": "false",
5270
+ "value": {
5271
+ "kind": "expression",
5272
+ "type": "boolean | undefined"
5273
+ }
4001
5274
  }
4002
5275
  ],
4003
5276
  "slots": [
@@ -4030,6 +5303,14 @@
4030
5303
  "type": "string"
4031
5304
  }
4032
5305
  },
5306
+ {
5307
+ "name": "idBase",
5308
+ "description": "База id для ARIA-связки с `GrTabPanels`. Если задана, каждая вкладка получает `id=\"<idBase>-tab-<value>\"` и `aria-controls=\"<idBase>-panel-<value>\"`. Передайте тот же `idBase` в `GrTabPanels`, чтобы связать `tab`↔`tabpanel`.",
5309
+ "value": {
5310
+ "kind": "expression",
5311
+ "type": "string | undefined"
5312
+ }
5313
+ },
4033
5314
  {
4034
5315
  "name": "tabs",
4035
5316
  "required": true,
@@ -4063,7 +5344,7 @@
4063
5344
  }
4064
5345
  },
4065
5346
  {
4066
- "name": "name",
5347
+ "name": "placeholder",
4067
5348
  "default": "undefined",
4068
5349
  "value": {
4069
5350
  "kind": "expression",
@@ -4071,7 +5352,7 @@
4071
5352
  }
4072
5353
  },
4073
5354
  {
4074
- "name": "id",
5355
+ "name": "name",
4075
5356
  "default": "undefined",
4076
5357
  "value": {
4077
5358
  "kind": "expression",
@@ -4079,19 +5360,19 @@
4079
5360
  }
4080
5361
  },
4081
5362
  {
4082
- "name": "rows",
4083
- "default": "4",
5363
+ "name": "id",
5364
+ "default": "undefined",
4084
5365
  "value": {
4085
5366
  "kind": "expression",
4086
- "type": "number | undefined"
5367
+ "type": "string | undefined"
4087
5368
  }
4088
5369
  },
4089
5370
  {
4090
- "name": "placeholder",
4091
- "default": "undefined",
5371
+ "name": "rows",
5372
+ "default": "4",
4092
5373
  "value": {
4093
5374
  "kind": "expression",
4094
- "type": "string | undefined"
5375
+ "type": "number | undefined"
4095
5376
  }
4096
5377
  },
4097
5378
  {
@@ -4178,6 +5459,11 @@
4178
5459
  "type": "number | undefined"
4179
5460
  }
4180
5461
  }
5462
+ ],
5463
+ "slots": [
5464
+ {
5465
+ "name": "actions"
5466
+ }
4181
5467
  ]
4182
5468
  },
4183
5469
  {
@@ -4189,8 +5475,8 @@
4189
5475
  "props": [
4190
5476
  {
4191
5477
  "name": "iconColor",
4192
- "description": "Цвет триггер-иконки (CSS color). По умолчанию — `var(--muted-fg)`.",
4193
- "default": "\"var(--muted-fg)\"",
5478
+ "description": "Цвет триггер-иконки (CSS color). По умолчанию — `var(--gr-muted-fg)`.",
5479
+ "default": "\"var(--gr-muted-fg)\"",
4194
5480
  "value": {
4195
5481
  "kind": "expression",
4196
5482
  "type": "string | undefined"