@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 +1 @@
1
- {"version":3,"file":"grDropdownStyles-B_-DKytw.js","names":[],"sources":["../../src/components/GrDropdown/grDropdownStyles.ts"],"sourcesContent":["import type { Placement } from '@floating-ui/dom'\n\nexport type GrDropdownAlign = 'left' | 'right' | 'center'\nexport type GrDropdownWidth = 'auto' | '20' | '48' | '60' | '64' | '80'\n\nexport const widthClassByWidth: Record<GrDropdownWidth, string> = {\n auto: '',\n 20: 'w-20',\n 48: 'w-48',\n 60: 'w-60',\n 64: 'w-64',\n 80: 'w-80',\n}\n\n// `transform-origin` для scale-transition — координата x/y уже приходит от\n// `useFloating` (см. `floatingStyle`), здесь остаётся только направление\n// \"роста\" панели относительно триггера. Ключи — это `resolvedPlacement` ПОСЛЕ\n// применения `flip`, поэтому origin остаётся верным и когда панели не хватило\n// места снизу и её перевернуло вверх.\nexport const originClassByPlacement: Partial<Record<Placement, string>> = {\n 'bottom-start': 'origin-top-left',\n 'bottom-end': 'origin-top-right',\n 'bottom': 'origin-top',\n 'top-start': 'origin-bottom-left',\n 'top-end': 'origin-bottom-right',\n 'top': 'origin-bottom',\n}\n\nexport function grDropdownWidthClass(width: GrDropdownWidth): string {\n return widthClassByWidth[width]\n}\n\nexport function grDropdownOriginClass(placement: Placement): string {\n return originClassByPlacement[placement] ?? 'origin-top'\n}\n\nexport function grDropdownContentClass(contentClass?: string): string {\n return [\n 'rounded-[var(--gr-radius-xl)]',\n 'border border-[var(--brd)]',\n 'bg-[var(--card)] text-[var(--card-fg)]',\n 'shadow-[var(--gr-shadow-2)]',\n 'p-1',\n contentClass,\n ].filter(Boolean).join(' ')\n}\n"],"mappings":";AAKA,IAAa,oBAAqD;CAChE,MAAM;CACN,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAOA,IAAa,yBAA6D;CACxE,gBAAgB;CAChB,cAAc;CACd,UAAU;CACV,aAAa;CACb,WAAW;CACX,OAAO;AACT;AAEA,SAAgB,qBAAqB,OAAgC;CACnE,OAAO,kBAAkB;AAC3B;AAEA,SAAgB,sBAAsB,WAA8B;CAClE,OAAO,uBAAuB,cAAc;AAC9C;AAEA,SAAgB,uBAAuB,cAA+B;CACpE,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;CACF,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;AAC5B"}
1
+ {"version":3,"file":"grDropdownStyles-HBPkghVr.js","names":[],"sources":["../../src/components/GrDropdown/grDropdownStyles.ts"],"sourcesContent":["import type { Placement } from '@floating-ui/dom'\n\nexport type GrDropdownAlign = 'left' | 'right' | 'center'\nexport type GrDropdownWidth = 'auto' | '20' | '48' | '60' | '64' | '80'\n\nexport const widthClassByWidth: Record<GrDropdownWidth, string> = {\n auto: '',\n 20: 'w-20',\n 48: 'w-48',\n 60: 'w-60',\n 64: 'w-64',\n 80: 'w-80',\n}\n\n// `transform-origin` для scale-transition — координата x/y уже приходит от\n// `useFloating` (см. `floatingStyle`), здесь остаётся только направление\n// \"роста\" панели относительно триггера. Ключи — это `resolvedPlacement` ПОСЛЕ\n// применения `flip`, поэтому origin остаётся верным и когда панели не хватило\n// места снизу и её перевернуло вверх.\nexport const originClassByPlacement: Partial<Record<Placement, string>> = {\n 'bottom-start': 'origin-top-left',\n 'bottom-end': 'origin-top-right',\n 'bottom': 'origin-top',\n 'top-start': 'origin-bottom-left',\n 'top-end': 'origin-bottom-right',\n 'top': 'origin-bottom',\n}\n\nexport function grDropdownWidthClass(width: GrDropdownWidth): string {\n return widthClassByWidth[width]\n}\n\nexport function grDropdownOriginClass(placement: Placement): string {\n return originClassByPlacement[placement] ?? 'origin-top'\n}\n\nexport function grDropdownContentClass(contentClass?: string): string {\n return [\n 'rounded-[var(--gr-radius-xl)]',\n 'border border-[var(--gr-brd)]',\n 'bg-[var(--gr-card)] text-[var(--gr-card-fg)]',\n 'shadow-[var(--gr-shadow-2)]',\n 'p-1',\n contentClass,\n ].filter(Boolean).join(' ')\n}\n"],"mappings":";AAKA,IAAa,oBAAqD;CAChE,MAAM;CACN,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAOA,IAAa,yBAA6D;CACxE,gBAAgB;CAChB,cAAc;CACd,UAAU;CACV,aAAa;CACb,WAAW;CACX,OAAO;AACT;AAEA,SAAgB,qBAAqB,OAAgC;CACnE,OAAO,kBAAkB;AAC3B;AAEA,SAAgB,sBAAsB,WAA8B;CAClE,OAAO,uBAAuB,cAAc;AAC9C;AAEA,SAAgB,uBAAuB,cAA+B;CACpE,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;CACF,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;AAC5B"}
@@ -0,0 +1,43 @@
1
+ //#region src/components/GrModal/grModalEscStack.ts
2
+ var stack = [];
3
+ var listening = false;
4
+ var nextId = 1;
5
+ function handleKeydown(event) {
6
+ if (event.key !== "Escape") return;
7
+ if (stack.length === 0) return;
8
+ const top = stack[stack.length - 1];
9
+ event.preventDefault();
10
+ event.stopPropagation();
11
+ if (typeof event.stopImmediatePropagation === "function") event.stopImmediatePropagation();
12
+ if (top.shouldClose()) top.close();
13
+ }
14
+ function startListening() {
15
+ if (listening) return;
16
+ if (typeof window === "undefined") return;
17
+ window.addEventListener("keydown", handleKeydown, true);
18
+ listening = true;
19
+ }
20
+ function stopListening() {
21
+ if (!listening) return;
22
+ if (typeof window === "undefined") return;
23
+ window.removeEventListener("keydown", handleKeydown, true);
24
+ listening = false;
25
+ }
26
+ /** Регистрирует открытую модалку как верхнюю и возвращает её id. */
27
+ function pushGrModalEsc(entry) {
28
+ const id = nextId++;
29
+ stack.push({
30
+ ...entry,
31
+ id
32
+ });
33
+ startListening();
34
+ return id;
35
+ }
36
+ /** Снимает модалку со стека (при закрытии или размонтировании). */
37
+ function removeGrModalEsc(id) {
38
+ const index = stack.findIndex((item) => item.id === id);
39
+ if (index >= 0) stack.splice(index, 1);
40
+ if (stack.length === 0) stopListening();
41
+ }
42
+ //#endregion
43
+ export { removeGrModalEsc as n, pushGrModalEsc as t };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grModalEscStack-BXk-9mv7.js","names":[],"sources":["../../src/components/GrModal/grModalEscStack.ts"],"sourcesContent":["/**\n * grModalEscStack — общий стек открытых `GrModal` для корректной обработки Esc.\n *\n * Зачем нужен:\n * HeadlessUI вешает обработчик Escape на `window` у каждого открытого `<Dialog>`.\n * Когда модалки рендерятся в разных деревьях приложения (например, диалоги\n * `useDialogService` монтируются отдельным `render()` в `document.body`), их\n * HeadlessUI-стек не общий, и каждый `<Dialog>` считает себя верхним. В итоге\n * Esc перехватывает обработчик той модалки, что смонтирована раньше (нижней),\n * а реально верхнее окно (последнее открытое) остаётся.\n *\n * Решение: единый capture-обработчик на `window`, который срабатывает раньше\n * обработчиков HeadlessUI, гасит событие (`stopImmediatePropagation`) и\n * закрывает только верхнюю (последнюю зарегистрированную) модалку. Так Esc\n * всегда адресуется верхнему окну независимо от дерева рендера.\n */\n\nexport interface GrModalEscEntry {\n /** Уникальный id зарегистрированной модалки. */\n id: number\n /** Должна ли модалка закрываться по Esc (реактивный геттер `closeOnEsc`). */\n shouldClose: () => boolean\n /** Закрыть модалку (эмит `update:modelValue=false`). */\n close: () => void\n}\n\nconst stack: GrModalEscEntry[] = []\nlet listening = false\nlet nextId = 1\n\nfunction handleKeydown(event: KeyboardEvent): void {\n if (event.key !== 'Escape') return\n if (stack.length === 0) return\n\n // Верхняя модалка — последняя зарегистрированная.\n const top = stack[stack.length - 1]\n\n // Перехватываем Esc раньше HeadlessUI и нижних модалок: даже если верхнее\n // окно не закрывается (`closeOnEsc=false`), событие не должно «проваливаться»\n // к нижним окнам.\n event.preventDefault()\n event.stopPropagation()\n if (typeof event.stopImmediatePropagation === 'function')\n event.stopImmediatePropagation()\n\n if (top.shouldClose()) top.close()\n}\n\nfunction startListening(): void {\n if (listening) return\n if (typeof window === 'undefined') return\n // Capture-фаза, чтобы опередить window-обработчик Escape HeadlessUI.\n window.addEventListener('keydown', handleKeydown, true)\n listening = true\n}\n\nfunction stopListening(): void {\n if (!listening) return\n if (typeof window === 'undefined') return\n window.removeEventListener('keydown', handleKeydown, true)\n listening = false\n}\n\n/** Регистрирует открытую модалку как верхнюю и возвращает её id. */\nexport function pushGrModalEsc(entry: Omit<GrModalEscEntry, 'id'>): number {\n const id = nextId++\n stack.push({ ...entry, id })\n startListening()\n return id\n}\n\n/** Снимает модалку со стека (при закрытии или размонтировании). */\nexport function removeGrModalEsc(id: number): void {\n const index = stack.findIndex(item => item.id === id)\n if (index >= 0) stack.splice(index, 1)\n if (stack.length === 0) stopListening()\n}\n\n/** Тестовая/служебная очистка стека. */\nexport function resetGrModalEscStack(): void {\n stack.splice(0, stack.length)\n stopListening()\n}\n"],"mappings":";AA0BA,IAAM,QAA2B,CAAC;AAClC,IAAI,YAAY;AAChB,IAAI,SAAS;AAEb,SAAS,cAAc,OAA4B;CACjD,IAAI,MAAM,QAAQ,UAAU;CAC5B,IAAI,MAAM,WAAW,GAAG;CAGxB,MAAM,MAAM,MAAM,MAAM,SAAS;CAKjC,MAAM,eAAe;CACrB,MAAM,gBAAgB;CACtB,IAAI,OAAO,MAAM,6BAA6B,YAC5C,MAAM,yBAAyB;CAEjC,IAAI,IAAI,YAAY,GAAG,IAAI,MAAM;AACnC;AAEA,SAAS,iBAAuB;CAC9B,IAAI,WAAW;CACf,IAAI,OAAO,WAAW,aAAa;CAEnC,OAAO,iBAAiB,WAAW,eAAe,IAAI;CACtD,YAAY;AACd;AAEA,SAAS,gBAAsB;CAC7B,IAAI,CAAC,WAAW;CAChB,IAAI,OAAO,WAAW,aAAa;CACnC,OAAO,oBAAoB,WAAW,eAAe,IAAI;CACzD,YAAY;AACd;;AAGA,SAAgB,eAAe,OAA4C;CACzE,MAAM,KAAK;CACX,MAAM,KAAK;EAAE,GAAG;EAAO;CAAG,CAAC;CAC3B,eAAe;CACf,OAAO;AACT;;AAGA,SAAgB,iBAAiB,IAAkB;CACjD,MAAM,QAAQ,MAAM,WAAU,SAAQ,KAAK,OAAO,EAAE;CACpD,IAAI,SAAS,GAAG,MAAM,OAAO,OAAO,CAAC;CACrC,IAAI,MAAM,WAAW,GAAG,cAAc;AACxC"}
@@ -19,7 +19,7 @@ var panelTransition = {
19
19
  leaveFrom: "opacity-100 translate-y-0 sm:scale-100",
20
20
  leaveTo: "opacity-0 translate-y-2 sm:translate-y-0 sm:scale-95"
21
21
  };
22
- var panelBase = "w-full overflow-hidden relative z-10 border border-[var(--brd)] bg-[var(--card)] text-[var(--card-fg)] shadow-[var(--gr-shadow-2)] outline-none";
22
+ var panelBase = "w-full overflow-hidden relative z-10 border border-[var(--gr-brd)] bg-[var(--gr-card)] text-[var(--gr-card-fg)] shadow-[var(--gr-shadow-2)] outline-none";
23
23
  var panelWidthBySize = {
24
24
  sm: "max-w-[420px]",
25
25
  md: "max-w-[560px]",
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grModalStyles-D8-shx9A.js","names":[],"sources":["../../src/components/GrModal/grModalStyles.ts"],"sourcesContent":["export type GrModalSize = 'sm' | 'md' | 'lg' | 'xl' | 'full'\n\n// Корневые утилитарные классы, используемые шаблоном `GrModal.vue`.\n// Они же являются единственным источником истины для safelist.\nexport const root = 'fixed inset-0 z-[var(--gr-z-modal)]'\nexport const shell = 'fixed inset-0 overflow-y-auto p-4 sm:p-6'\nexport const layout = 'min-h-full flex items-center justify-center'\nexport const overlay = 'fixed inset-0 z-0 bg-black/40'\n\n// Классы для `<TransitionChild :enter=\"...\" :enter-from=\"...\" ...>`.\n// Разбиты по фазам транзишна, чтобы не склеивать их в «мешок токенов».\nexport const overlayTransition = {\n enter: 'duration-200 ease-out',\n enterFrom: 'opacity-0',\n enterTo: 'opacity-100',\n leave: 'duration-150 ease-in',\n leaveFrom: 'opacity-100',\n leaveTo: 'opacity-0',\n} as const\n\nexport const panelTransition = {\n enter: 'duration-200 ease-out',\n enterFrom: 'opacity-0 translate-y-2 sm:translate-y-0 sm:scale-95',\n enterTo: 'opacity-100 translate-y-0 sm:scale-100',\n leave: 'duration-150 ease-in',\n leaveFrom: 'opacity-100 translate-y-0 sm:scale-100',\n leaveTo: 'opacity-0 translate-y-2 sm:translate-y-0 sm:scale-95',\n} as const\n\nexport const panelBase\n = 'w-full overflow-hidden relative z-10 border border-[var(--gr-brd)] bg-[var(--gr-card)] text-[var(--gr-card-fg)] shadow-[var(--gr-shadow-2)] outline-none'\n\nexport const panelWidthBySize: Record<GrModalSize, string> = {\n sm: 'max-w-[420px]',\n md: 'max-w-[560px]',\n lg: 'max-w-[720px]',\n xl: 'max-w-[920px]',\n full: 'max-w-none',\n}\n\nexport const panelRadiusBySize: Record<GrModalSize, string> = {\n sm: 'rounded-[var(--gr-radius-xl)]',\n md: 'rounded-[var(--gr-radius-xl)]',\n lg: 'rounded-[var(--gr-radius-xl)]',\n xl: 'rounded-[var(--gr-radius-xl)]',\n full: 'rounded-none sm:rounded-[var(--gr-radius-xl)]',\n}\n\n// Для большинства размеров высота не задаётся — `Partial` + фильтрация пустых\n// значений в `getGrModalPanelClass` избавляют от двойных пробелов.\nexport const panelHeightBySize: Partial<Record<GrModalSize, string>> = {\n full: 'h-[100svh] sm:h-auto',\n}\n\nexport function getGrModalPanelClass(size: GrModalSize): string {\n return [\n panelBase,\n panelWidthBySize[size],\n panelHeightBySize[size],\n panelRadiusBySize[size],\n ]\n .filter(Boolean)\n .join(' ')\n}\n"],"mappings":";AAIA,IAAa,OAAO;AACpB,IAAa,QAAQ;AACrB,IAAa,SAAS;AACtB,IAAa,UAAU;AAIvB,IAAa,oBAAoB;CAC/B,OAAO;CACP,WAAW;CACX,SAAS;CACT,OAAO;CACP,WAAW;CACX,SAAS;AACX;AAEA,IAAa,kBAAkB;CAC7B,OAAO;CACP,WAAW;CACX,SAAS;CACT,OAAO;CACP,WAAW;CACX,SAAS;AACX;AAEA,IAAa,YACT;AAEJ,IAAa,mBAAgD;CAC3D,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,MAAM;AACR;AAEA,IAAa,oBAAiD;CAC5D,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,MAAM;AACR;AAIA,IAAa,oBAA0D,EACrE,MAAM,uBACR;AAEA,SAAgB,qBAAqB,MAA2B;CAC9D,OAAO;EACL;EACA,iBAAiB;EACjB,kBAAkB;EAClB,kBAAkB;CACpB,CAAC,CACE,OAAO,OAAO,CAAC,CACf,KAAK,GAAG;AACb"}
@@ -1,6 +1,6 @@
1
1
  //#region src/components/GrSelect/grSelectStyles.ts
2
- var defaultBaseClass = "w-full rounded-md border border-[var(--brd)] bg-[var(--bg)] text-[var(--fg)] transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]";
3
- var linkBaseClass = "cursor-pointer inline-block w-auto align-baseline appearance-none bg-transparent border border-transparent px-0 py-0 rounded-[6px] transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]";
2
+ var defaultBaseClass = "w-full rounded-md border border-[var(--gr-brd)] bg-[var(--gr-bg)] text-[var(--gr-fg)] transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--gr-ring)]";
3
+ var linkBaseClass = "cursor-pointer inline-block w-auto align-baseline appearance-none bg-transparent border border-transparent px-0 py-0 rounded-[6px] transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--gr-ring)]";
4
4
  var selectSizeClassBySize = {
5
5
  xs: "h-7 px-2.5 text-[12px]",
6
6
  sm: "h-8 px-3 text-[13px]",
@@ -14,9 +14,9 @@ var selectLinkSizeClassBySize = {
14
14
  lg: "text-[16px]"
15
15
  };
16
16
  var selectLinkVariantClassByVariant = {
17
- primary: "text-[var(--primary)] hover:text-[var(--primary-hover)] active:text-[var(--primary-active)]",
18
- default: "text-[var(--fg)] hover:text-[var(--primary)] active:text-[var(--primary-active)]",
19
- muted: "text-[var(--muted-fg)] hover:text-[var(--fg)] active:text-[var(--fg)]",
17
+ primary: "text-[var(--gr-primary)] hover:text-[var(--gr-primary-hover)] active:text-[var(--gr-primary-active)]",
18
+ default: "text-[var(--gr-fg)] hover:text-[var(--gr-primary)] active:text-[var(--gr-primary-active)]",
19
+ muted: "text-[var(--gr-muted-fg)] hover:text-[var(--gr-fg)] active:text-[var(--gr-fg)]",
20
20
  danger: "text-[var(--gr-danger)] hover:text-[var(--gr-danger-hover)] active:text-[var(--gr-danger-active)]"
21
21
  };
22
22
  /**
@@ -25,9 +25,9 @@ var selectLinkVariantClassByVariant = {
25
25
  * т.к. видимая метка имеет `pointer-events-none` и не получает hover напрямую.
26
26
  */
27
27
  var selectLinkNativeLabelVariantClassByVariant = {
28
- primary: "text-[var(--primary)] peer-hover:text-[var(--primary-hover)] peer-active:text-[var(--primary-active)]",
29
- default: "text-[var(--fg)] peer-hover:text-[var(--primary)] peer-active:text-[var(--primary-active)]",
30
- muted: "text-[var(--muted-fg)] peer-hover:text-[var(--fg)] peer-active:text-[var(--fg)]",
28
+ primary: "text-[var(--gr-primary)] peer-hover:text-[var(--gr-primary-hover)] peer-active:text-[var(--gr-primary-active)]",
29
+ default: "text-[var(--gr-fg)] peer-hover:text-[var(--gr-primary)] peer-active:text-[var(--gr-primary-active)]",
30
+ muted: "text-[var(--gr-muted-fg)] peer-hover:text-[var(--gr-fg)] peer-active:text-[var(--gr-fg)]",
31
31
  danger: "text-[var(--gr-danger)] peer-hover:text-[var(--gr-danger-hover)] peer-active:text-[var(--gr-danger-active)]"
32
32
  };
33
33
  function selectLinkUnderlineClass(options) {
@@ -68,8 +68,8 @@ function grSelectLinkNativeLabelClass(options) {
68
68
  disabled: options.disabled
69
69
  }),
70
70
  selectLinkNativeLabelVariantClassByVariant[options.variant],
71
- options.disabled ? "opacity-60 text-[var(--muted-fg)] no-underline" : "",
72
- "peer-focus-visible:outline-none peer-focus-visible:ring-2 peer-focus-visible:ring-[var(--ring)]"
71
+ options.disabled ? "opacity-60 text-[var(--gr-muted-fg)] no-underline" : "",
72
+ "peer-focus-visible:outline-none peer-focus-visible:ring-2 peer-focus-visible:ring-[var(--gr-ring)]"
73
73
  ].filter(Boolean).join(" ");
74
74
  }
75
75
  function grSelectClass(options) {
@@ -80,7 +80,7 @@ function grSelectClass(options) {
80
80
  disabled: options.disabled
81
81
  }),
82
82
  selectLinkVariantClassByVariant[options.variant],
83
- "disabled:opacity-60 disabled:cursor-not-allowed disabled:text-[var(--muted-fg)] disabled:no-underline"
83
+ "disabled:opacity-60 disabled:cursor-not-allowed disabled:text-[var(--gr-muted-fg)] disabled:no-underline"
84
84
  ].join(" ");
85
85
  return [selectSizeClassBySize[options.size], "disabled:opacity-50 disabled:cursor-not-allowed"].join(" ");
86
86
  }
@@ -92,6 +92,6 @@ function grSelectTriggerClass(options) {
92
92
  if (options.view === "link") return [grSelectClass(options), "inline-flex items-center gap-1 text-left"].join(" ");
93
93
  return [grSelectClass(options), "flex items-center justify-between text-left"].join(" ");
94
94
  }
95
- var grSelectPanelClasses = "rounded-[var(--gr-radius-xl)] border border-[var(--brd)] bg-[var(--card)] text-[var(--card-fg)] shadow-[var(--gr-shadow-2)] overflow-hidden";
95
+ var grSelectPanelClasses = "rounded-[var(--gr-radius-xl)] border border-[var(--gr-brd)] bg-[var(--gr-card)] text-[var(--gr-card-fg)] shadow-[var(--gr-shadow-2)] overflow-hidden";
96
96
  //#endregion
97
97
  export { grSelectPanelClasses as a, selectLinkNativeLabelVariantClassByVariant as c, selectSizeClassBySize as d, grSelectNativeClass as i, selectLinkSizeClassBySize as l, grSelectLinkNativeLabelClass as n, grSelectTriggerClass as o, grSelectLinkNativeOverlayClass as r, linkBaseClass as s, defaultBaseClass as t, selectLinkVariantClassByVariant as u };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grSelectStyles-CwMUQrBZ.js","names":[],"sources":["../../src/components/GrSelect/grSelectStyles.ts"],"sourcesContent":["export type GrSelectView = 'default' | 'link'\nexport type GrSelectSize = 'xs' | 'sm' | 'md' | 'lg'\nexport type GrSelectVariant = 'primary' | 'default' | 'muted' | 'danger'\nexport type GrSelectUnderline = 'auto' | 'always' | 'none'\nexport type GrSelectOptionsView = 'native' | 'panel'\nexport type GrSelectOption = { value: string, label: string, disabled?: boolean }\n/** Группа опций: заголовок `label` + вложенные опции `options`. */\nexport type GrSelectOptionGroup = { label: string, options: GrSelectOption[] }\n/** Элемент списка опций: либо одиночная опция, либо группа опций. */\nexport type GrSelectOptionOrGroup = GrSelectOption | GrSelectOptionGroup\nexport type GrSelectModelValue = string | string[]\n\nexport const defaultBaseClass = 'w-full rounded-md border border-[var(--gr-brd)] bg-[var(--gr-bg)] text-[var(--gr-fg)] transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--gr-ring)]'\nexport const linkBaseClass = 'cursor-pointer inline-block w-auto align-baseline appearance-none bg-transparent border border-transparent px-0 py-0 rounded-[6px] transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--gr-ring)]'\n\n\nexport const selectSizeClassBySize: Record<GrSelectSize, string> = {\n xs: 'h-7 px-2.5 text-[12px]',\n sm: 'h-8 px-3 text-[13px]',\n md: 'h-10 px-3 text-[14px]',\n lg: 'h-11 px-4 text-[16px]',\n}\n\nexport const selectLinkSizeClassBySize: Record<GrSelectSize, string> = {\n xs: 'text-[12px]',\n sm: 'text-[13px]',\n md: 'text-[14px]',\n lg: 'text-[16px]',\n}\n\nexport const selectLinkVariantClassByVariant: Record<GrSelectVariant, string> = {\n primary: 'text-[var(--gr-primary)] hover:text-[var(--gr-primary-hover)] active:text-[var(--gr-primary-active)]',\n default: 'text-[var(--gr-fg)] hover:text-[var(--gr-primary)] active:text-[var(--gr-primary-active)]',\n muted: 'text-[var(--gr-muted-fg)] hover:text-[var(--gr-fg)] active:text-[var(--gr-fg)]',\n danger: 'text-[var(--gr-danger)] hover:text-[var(--gr-danger-hover)] active:text-[var(--gr-danger-active)]',\n}\n\n/**\n * Variant-классы для видимой метки в `view=\"link\"` + `optionsView=\"native\"`.\n * Hover-цвет приходит через `peer-hover:` от прозрачного `<select>`-overlay,\n * т.к. видимая метка имеет `pointer-events-none` и не получает hover напрямую.\n */\nexport const selectLinkNativeLabelVariantClassByVariant: Record<GrSelectVariant, string> = {\n primary: 'text-[var(--gr-primary)] peer-hover:text-[var(--gr-primary-hover)] peer-active:text-[var(--gr-primary-active)]',\n default: 'text-[var(--gr-fg)] peer-hover:text-[var(--gr-primary)] peer-active:text-[var(--gr-primary-active)]',\n muted: 'text-[var(--gr-muted-fg)] peer-hover:text-[var(--gr-fg)] peer-active:text-[var(--gr-fg)]',\n danger: 'text-[var(--gr-danger)] peer-hover:text-[var(--gr-danger-hover)] peer-active:text-[var(--gr-danger-active)]',\n}\n\nfunction selectLinkUnderlineClass(options: { underline: GrSelectUnderline, disabled: boolean }): string {\n if (options.disabled) return 'no-underline'\n if (options.underline === 'always') return 'underline underline-offset-4'\n if (options.underline === 'none') return 'no-underline'\n return 'no-underline hover:underline hover:underline-offset-4'\n}\n\n/**\n * Underline-классы для видимой метки в `view=\"link\"` + `optionsView=\"native\"`.\n * Видимая метка имеет `pointer-events-none`, а hover получает прозрачный\n * `<select>`-overlay (peer), поэтому для `underline=\"auto\"` используем\n * `peer-hover:underline` вместо `hover:underline`.\n */\nfunction selectLinkNativeLabelUnderlineClass(options: { underline: GrSelectUnderline, disabled: boolean }): string {\n if (options.disabled) return 'no-underline'\n if (options.underline === 'always') return 'underline underline-offset-4'\n if (options.underline === 'none') return 'no-underline'\n return 'no-underline peer-hover:underline peer-hover:underline-offset-4'\n}\n\n/**\n * Классы прозрачного `<select>`-overlay для `view=\"link\"` + `optionsView=\"native\"`.\n * Нативный селект растягивается на всю обёртку, но визуально невидим — ширину обёртки\n * задаёт видимый `<span>` с выбранной меткой, благодаря чему компонент в закрытом\n * состоянии занимает столько места, сколько нужно текущей опции (а не самой длинной).\n */\nexport const grSelectLinkNativeOverlayClass = 'peer absolute inset-0 w-full h-full m-0 p-0 border-0 bg-transparent text-transparent appearance-none opacity-0 cursor-pointer disabled:cursor-not-allowed focus:outline-none'\n\n/**\n * Классы видимой метки для `view=\"link\"` + `optionsView=\"native\"` (поверх прозрачного `<select>`).\n * Получает все link-стили (size/variant/underline), а также focus-ring через `peer-focus-visible`.\n */\nexport function grSelectLinkNativeLabelClass(options: {\n size: GrSelectSize\n variant: GrSelectVariant\n underline: GrSelectUnderline\n disabled: boolean\n}): string {\n return [\n 'pointer-events-none inline-block whitespace-nowrap align-baseline rounded-[6px] transition-colors duration-150',\n selectLinkSizeClassBySize[options.size],\n selectLinkNativeLabelUnderlineClass({ underline: options.underline, disabled: options.disabled }),\n selectLinkNativeLabelVariantClassByVariant[options.variant],\n options.disabled ? 'opacity-60 text-[var(--gr-muted-fg)] no-underline' : '',\n 'peer-focus-visible:outline-none peer-focus-visible:ring-2 peer-focus-visible:ring-[var(--gr-ring)]',\n ]\n .filter(Boolean)\n .join(' ')\n}\n\nexport function grSelectClass(options: {\n view: GrSelectView\n size: GrSelectSize\n disabled: boolean\n variant: GrSelectVariant\n underline: GrSelectUnderline\n}): string {\n if (options.view === 'link') {\n return [\n selectLinkSizeClassBySize[options.size],\n selectLinkUnderlineClass({ underline: options.underline, disabled: options.disabled }),\n selectLinkVariantClassByVariant[options.variant],\n 'disabled:opacity-60 disabled:cursor-not-allowed disabled:text-[var(--gr-muted-fg)] disabled:no-underline',\n ].join(' ')\n }\n\n return [\n selectSizeClassBySize[options.size],\n 'disabled:opacity-50 disabled:cursor-not-allowed',\n ].join(' ')\n}\n\nexport function grSelectNativeClass(options: {\n view: GrSelectView\n size: GrSelectSize\n disabled: boolean\n variant: GrSelectVariant\n underline: GrSelectUnderline\n showNativeChevron: boolean\n}): string {\n return [\n grSelectClass(options),\n options.showNativeChevron ? 'appearance-none pr-9' : '',\n ]\n .filter(Boolean)\n .join(' ')\n}\n\nexport function grSelectTriggerClass(options: {\n view: GrSelectView\n optionsView: GrSelectOptionsView\n size: GrSelectSize\n disabled: boolean\n variant: GrSelectVariant\n underline: GrSelectUnderline\n}): string {\n if (options.optionsView !== 'panel') {\n return grSelectClass(options)\n }\n\n if (options.view === 'link') {\n return [\n grSelectClass(options),\n 'inline-flex items-center gap-1 text-left',\n ].join(' ')\n }\n\n return [\n grSelectClass(options),\n 'flex items-center justify-between text-left',\n ].join(' ')\n}\n\nexport const grSelectPanelClasses = 'rounded-[var(--gr-radius-xl)] border border-[var(--gr-brd)] bg-[var(--gr-card)] text-[var(--gr-card-fg)] shadow-[var(--gr-shadow-2)] overflow-hidden'\n"],"mappings":";AAYA,IAAa,mBAAmB;AAChC,IAAa,gBAAgB;AAG7B,IAAa,wBAAsD;CACjE,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAEA,IAAa,4BAA0D;CACrE,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAEA,IAAa,kCAAmE;CAC9E,SAAS;CACT,SAAS;CACT,OAAO;CACP,QAAQ;AACV;;;;;;AAOA,IAAa,6CAA8E;CACzF,SAAS;CACT,SAAS;CACT,OAAO;CACP,QAAQ;AACV;AAEA,SAAS,yBAAyB,SAAsE;CACtG,IAAI,QAAQ,UAAU,OAAO;CAC7B,IAAI,QAAQ,cAAc,UAAU,OAAO;CAC3C,IAAI,QAAQ,cAAc,QAAQ,OAAO;CACzC,OAAO;AACT;;;;;;;AAQA,SAAS,oCAAoC,SAAsE;CACjH,IAAI,QAAQ,UAAU,OAAO;CAC7B,IAAI,QAAQ,cAAc,UAAU,OAAO;CAC3C,IAAI,QAAQ,cAAc,QAAQ,OAAO;CACzC,OAAO;AACT;;;;;;;AAQA,IAAa,iCAAiC;;;;;AAM9C,SAAgB,6BAA6B,SAKlC;CACT,OAAO;EACL;EACA,0BAA0B,QAAQ;EAClC,oCAAoC;GAAE,WAAW,QAAQ;GAAW,UAAU,QAAQ;EAAS,CAAC;EAChG,2CAA2C,QAAQ;EACnD,QAAQ,WAAW,sDAAsD;EACzE;CACF,CAAC,CACE,OAAO,OAAO,CAAC,CACf,KAAK,GAAG;AACb;AAEA,SAAgB,cAAc,SAMnB;CACT,IAAI,QAAQ,SAAS,QACnB,OAAO;EACL,0BAA0B,QAAQ;EAClC,yBAAyB;GAAE,WAAW,QAAQ;GAAW,UAAU,QAAQ;EAAS,CAAC;EACrF,gCAAgC,QAAQ;EACxC;CACF,CAAC,CAAC,KAAK,GAAG;CAGZ,OAAO,CACL,sBAAsB,QAAQ,OAC9B,iDACF,CAAC,CAAC,KAAK,GAAG;AACZ;AAEA,SAAgB,oBAAoB,SAOzB;CACT,OAAO,CACL,cAAc,OAAO,GACrB,QAAQ,oBAAoB,yBAAyB,EACvD,CAAC,CACE,OAAO,OAAO,CAAC,CACf,KAAK,GAAG;AACb;AAEA,SAAgB,qBAAqB,SAO1B;CACT,IAAI,QAAQ,gBAAgB,SAC1B,OAAO,cAAc,OAAO;CAG9B,IAAI,QAAQ,SAAS,QACnB,OAAO,CACL,cAAc,OAAO,GACrB,0CACF,CAAC,CAAC,KAAK,GAAG;CAGZ,OAAO,CACL,cAAc,OAAO,GACrB,6CACF,CAAC,CAAC,KAAK,GAAG;AACZ;AAEA,IAAa,uBAAuB"}
@@ -3,8 +3,8 @@ function withVar(token) {
3
3
  return `[${token}]`;
4
4
  }
5
5
  var toneVars = {
6
- primary: "var(--pb-bg,var(--primary))",
7
- neutral: "var(--pb-neutral-bg,var(--secondary))",
6
+ primary: "var(--pb-bg,var(--gr-primary))",
7
+ neutral: "var(--pb-neutral-bg,var(--gr-secondary))",
8
8
  success: "var(--pb-success-bg,var(--gr-success))",
9
9
  warning: "var(--pb-warning-bg,var(--gr-warning))",
10
10
  danger: "var(--pb-danger-bg,var(--gr-danger))",
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grStyle-CdvxTXPH.js","names":[],"sources":["../../src/components/GrProgressBar/grStyle.ts"],"sourcesContent":["import type { GrTone } from '../shared/tones'\n\nexport type GrProgressBarTone = GrTone\n\nfunction withVar(token: string): string {\n return `[${token}]`\n}\n\nconst toneVars: Record<GrProgressBarTone, string> = {\n primary: 'var(--pb-bg,var(--gr-primary))',\n neutral: 'var(--pb-neutral-bg,var(--gr-secondary))',\n success: 'var(--pb-success-bg,var(--gr-success))',\n warning: 'var(--pb-warning-bg,var(--gr-warning))',\n danger: 'var(--pb-danger-bg,var(--gr-danger))',\n info: 'var(--pb-info-bg,var(--gr-info))',\n slate: 'var(--pb-slate-bg,var(--gr-slate))',\n azure: 'var(--pb-azure-bg,var(--gr-azure))',\n}\n\nexport function grProgressBarFillClass(tone: GrProgressBarTone): string {\n return `bg-${withVar(toneVars[tone])}`\n}\n"],"mappings":";AAIA,SAAS,QAAQ,OAAuB;CACtC,OAAO,IAAI,MAAM;AACnB;AAEA,IAAM,WAA8C;CAClD,SAAS;CACT,SAAS;CACT,SAAS;CACT,SAAS;CACT,QAAQ;CACR,MAAM;CACN,OAAO;CACP,OAAO;AACT;AAEA,SAAgB,uBAAuB,MAAiC;CACtE,OAAO,MAAM,QAAQ,SAAS,KAAK;AACrC"}
@@ -58,4 +58,4 @@ function useGranularityTranslations(context) {
58
58
  };
59
59
  }
60
60
  //#endregion
61
- export { useGranularityTranslations as t };
61
+ export { useGranularityTranslations as n, resolveGranularityI18n as t };
@@ -1 +1 @@
1
- {"version":3,"file":"granularityI18n-DoV7Ca2m.js","names":[],"sources":["../../src/internal/granularityI18n.ts"],"sourcesContent":["import { getCurrentInstance, inject, type AppContext } from 'vue'\n\nimport { GRANULARITY_I18N_KEY, type GranularityI18nAdapter } from '../i18n/adapter'\n\nexport type GranularityI18nLike = GranularityI18nAdapter\n\n/**\n * Ключ provide/inject из `@feugene/fint-i18n` (`Symbol.for(\"FintI18n\")`).\n *\n * Дублируем константу здесь, чтобы не делать `@feugene/fint-i18n` обязательной\n * runtime-зависимостью пакета: достаточно, чтобы приложение само установило\n * fint-i18n через `installI18n(app, i18n)` — символ глобальный (Symbol.for),\n * поэтому ключи будут совпадать без прямого импорта.\n */\nconst FINT_I18N_KEY: symbol = Symbol.for('FintI18n')\n\nfunction isGranularityI18nLike(value: unknown): value is GranularityI18nLike {\n return typeof (value as GranularityI18nLike | null)?.t === 'function'\n}\n\nexport function resolveGranularityI18n(context?: AppContext | GranularityI18nLike | null): GranularityI18nLike | null {\n if (isGranularityI18nLike(context)) {\n return context\n }\n\n const provides = context?.provides\n\n if (provides) {\n const fromGranularity = provides[GRANULARITY_I18N_KEY as symbol] as GranularityI18nLike | null | undefined\n if (isGranularityI18nLike(fromGranularity)) {\n return fromGranularity\n }\n\n const fromFint = provides[FINT_I18N_KEY] as GranularityI18nLike | null | undefined\n if (isGranularityI18nLike(fromFint)) {\n return fromFint\n }\n\n return null\n }\n\n if (!getCurrentInstance()) {\n return null\n }\n\n const fromGranularity = inject<GranularityI18nLike | null>(GRANULARITY_I18N_KEY, null)\n if (isGranularityI18nLike(fromGranularity)) {\n return fromGranularity\n }\n\n const fromFint = inject<GranularityI18nLike | null>(FINT_I18N_KEY, null)\n if (isGranularityI18nLike(fromFint)) {\n return fromFint\n }\n\n return null\n}\n\n// Совпадает с синтаксисом плейсхолдеров `@feugene/fint-i18n` (`{name}`, экранирование\n// `{{`/`}}` — см. docs/en/api.md → \"Template Interpolation\"), чтобы fallback-текст вёл\n// себя идентично реальному переводу, когда параметры переданы.\nconst FALLBACK_PLACEHOLDER_RE = /\\{\\{|\\}\\}|\\{([a-zA-Z0-9_.-]+)\\}/g\n\n/**\n * Интерполирует `{name}`-плейсхолдеры во fallback-строке. Нужен, чтобы `t(key, fallback,\n * params)` корректно подставлял параметры и тогда, когда i18n не подключён (или ключ не\n * найден) — иначе вызывающий код получил бы сырой `'Add \"{value}\"'` вместо `'Add \"foo\"'`.\n */\nfunction interpolateFallback(template: string, params?: Record<string, any>): string {\n // `{{`/`}}`-экранирование обязано работать независимо от того, переданы ли `params`\n // (совпадает с fint-i18n: `t('literal')` без параметров тоже разэкранирует `{{name}}`).\n // Ранний выход по `!params` здесь недопустим.\n return template.replace(FALLBACK_PLACEHOLDER_RE, (match, name: string | undefined) => {\n if (match === '{{') return '{'\n if (match === '}}') return '}'\n if (name === undefined) return match\n\n const value = params?.[name]\n return value == null ? match : String(value)\n })\n}\n\nexport function useGranularityTranslations(context?: AppContext | GranularityI18nLike | null) {\n const i18n = resolveGranularityI18n(context)\n\n const t = (key: string, fallback: string, params?: Record<string, any>): string => {\n if (!i18n) {\n return interpolateFallback(fallback, params)\n }\n\n const result = i18n.t(key, params)\n return result === key ? interpolateFallback(fallback, params) : result\n }\n\n return {\n i18n,\n t,\n }\n}"],"mappings":";;;;;;;;;;;AAcA,IAAM,gBAAwB,OAAO,IAAI,UAAU;AAEnD,SAAS,sBAAsB,OAA8C;CAC3E,OAAO,OAAQ,OAAsC,MAAM;AAC7D;AAEA,SAAgB,uBAAuB,SAA+E;CACpH,IAAI,sBAAsB,OAAO,GAC/B,OAAO;CAGT,MAAM,WAAW,SAAS;CAE1B,IAAI,UAAU;EACZ,MAAM,kBAAkB,SAAS;EACjC,IAAI,sBAAsB,eAAe,GACvC,OAAO;EAGT,MAAM,WAAW,SAAS;EAC1B,IAAI,sBAAsB,QAAQ,GAChC,OAAO;EAGT,OAAO;CACT;CAEA,IAAI,CAAC,mBAAmB,GACtB,OAAO;CAGT,MAAM,kBAAkB,OAAmC,sBAAsB,IAAI;CACrF,IAAI,sBAAsB,eAAe,GACvC,OAAO;CAGT,MAAM,WAAW,OAAmC,eAAe,IAAI;CACvE,IAAI,sBAAsB,QAAQ,GAChC,OAAO;CAGT,OAAO;AACT;AAKA,IAAM,0BAA0B;;;;;;AAOhC,SAAS,oBAAoB,UAAkB,QAAsC;CAInF,OAAO,SAAS,QAAQ,0BAA0B,OAAO,SAA6B;EACpF,IAAI,UAAU,MAAM,OAAO;EAC3B,IAAI,UAAU,MAAM,OAAO;EAC3B,IAAI,SAAS,KAAA,GAAW,OAAO;EAE/B,MAAM,QAAQ,SAAS;EACvB,OAAO,SAAS,OAAO,QAAQ,OAAO,KAAK;CAC7C,CAAC;AACH;AAEA,SAAgB,2BAA2B,SAAmD;CAC5F,MAAM,OAAO,uBAAuB,OAAO;CAE3C,MAAM,KAAK,KAAa,UAAkB,WAAyC;EACjF,IAAI,CAAC,MACH,OAAO,oBAAoB,UAAU,MAAM;EAG7C,MAAM,SAAS,KAAK,EAAE,KAAK,MAAM;EACjC,OAAO,WAAW,MAAM,oBAAoB,UAAU,MAAM,IAAI;CAClE;CAEA,OAAO;EACL;EACA;CACF;AACF"}
1
+ {"version":3,"file":"granularityI18n-SH0I--GW.js","names":[],"sources":["../../src/internal/granularityI18n.ts"],"sourcesContent":["import { getCurrentInstance, inject, type AppContext } from 'vue'\n\nimport { GRANULARITY_I18N_KEY, type GranularityI18nAdapter } from '../i18n/adapter'\n\nexport type GranularityI18nLike = GranularityI18nAdapter\n\n/**\n * Ключ provide/inject из `@feugene/fint-i18n` (`Symbol.for(\"FintI18n\")`).\n *\n * Дублируем константу здесь, чтобы не делать `@feugene/fint-i18n` обязательной\n * runtime-зависимостью пакета: достаточно, чтобы приложение само установило\n * fint-i18n через `installI18n(app, i18n)` — символ глобальный (Symbol.for),\n * поэтому ключи будут совпадать без прямого импорта.\n */\nconst FINT_I18N_KEY: symbol = Symbol.for('FintI18n')\n\nfunction isGranularityI18nLike(value: unknown): value is GranularityI18nLike {\n return typeof (value as GranularityI18nLike | null)?.t === 'function'\n}\n\nexport function resolveGranularityI18n(context?: AppContext | GranularityI18nLike | null): GranularityI18nLike | null {\n if (isGranularityI18nLike(context)) {\n return context\n }\n\n const provides = context?.provides\n\n if (provides) {\n const fromGranularity = provides[GRANULARITY_I18N_KEY as symbol] as GranularityI18nLike | null | undefined\n if (isGranularityI18nLike(fromGranularity)) {\n return fromGranularity\n }\n\n const fromFint = provides[FINT_I18N_KEY] as GranularityI18nLike | null | undefined\n if (isGranularityI18nLike(fromFint)) {\n return fromFint\n }\n\n return null\n }\n\n if (!getCurrentInstance()) {\n return null\n }\n\n const fromGranularity = inject<GranularityI18nLike | null>(GRANULARITY_I18N_KEY, null)\n if (isGranularityI18nLike(fromGranularity)) {\n return fromGranularity\n }\n\n const fromFint = inject<GranularityI18nLike | null>(FINT_I18N_KEY, null)\n if (isGranularityI18nLike(fromFint)) {\n return fromFint\n }\n\n return null\n}\n\n// Совпадает с синтаксисом плейсхолдеров `@feugene/fint-i18n` (`{name}`, экранирование\n// `{{`/`}}` — см. docs/en/api.md → \"Template Interpolation\"), чтобы fallback-текст вёл\n// себя идентично реальному переводу, когда параметры переданы.\nconst FALLBACK_PLACEHOLDER_RE = /\\{\\{|\\}\\}|\\{([a-zA-Z0-9_.-]+)\\}/g\n\n/**\n * Интерполирует `{name}`-плейсхолдеры во fallback-строке. Нужен, чтобы `t(key, fallback,\n * params)` корректно подставлял параметры и тогда, когда i18n не подключён (или ключ не\n * найден) — иначе вызывающий код получил бы сырой `'Add \"{value}\"'` вместо `'Add \"foo\"'`.\n */\nfunction interpolateFallback(template: string, params?: Record<string, any>): string {\n // `{{`/`}}`-экранирование обязано работать независимо от того, переданы ли `params`\n // (совпадает с fint-i18n: `t('literal')` без параметров тоже разэкранирует `{{name}}`).\n // Ранний выход по `!params` здесь недопустим.\n return template.replace(FALLBACK_PLACEHOLDER_RE, (match, name: string | undefined) => {\n if (match === '{{') return '{'\n if (match === '}}') return '}'\n if (name === undefined) return match\n\n const value = params?.[name]\n return value == null ? match : String(value)\n })\n}\n\nexport function useGranularityTranslations(context?: AppContext | GranularityI18nLike | null) {\n const i18n = resolveGranularityI18n(context)\n\n const t = (key: string, fallback: string, params?: Record<string, any>): string => {\n if (!i18n) {\n return interpolateFallback(fallback, params)\n }\n\n const result = i18n.t(key, params)\n return result === key ? interpolateFallback(fallback, params) : result\n }\n\n return {\n i18n,\n t,\n }\n}"],"mappings":";;;;;;;;;;;AAcA,IAAM,gBAAwB,OAAO,IAAI,UAAU;AAEnD,SAAS,sBAAsB,OAA8C;CAC3E,OAAO,OAAQ,OAAsC,MAAM;AAC7D;AAEA,SAAgB,uBAAuB,SAA+E;CACpH,IAAI,sBAAsB,OAAO,GAC/B,OAAO;CAGT,MAAM,WAAW,SAAS;CAE1B,IAAI,UAAU;EACZ,MAAM,kBAAkB,SAAS;EACjC,IAAI,sBAAsB,eAAe,GACvC,OAAO;EAGT,MAAM,WAAW,SAAS;EAC1B,IAAI,sBAAsB,QAAQ,GAChC,OAAO;EAGT,OAAO;CACT;CAEA,IAAI,CAAC,mBAAmB,GACtB,OAAO;CAGT,MAAM,kBAAkB,OAAmC,sBAAsB,IAAI;CACrF,IAAI,sBAAsB,eAAe,GACvC,OAAO;CAGT,MAAM,WAAW,OAAmC,eAAe,IAAI;CACvE,IAAI,sBAAsB,QAAQ,GAChC,OAAO;CAGT,OAAO;AACT;AAKA,IAAM,0BAA0B;;;;;;AAOhC,SAAS,oBAAoB,UAAkB,QAAsC;CAInF,OAAO,SAAS,QAAQ,0BAA0B,OAAO,SAA6B;EACpF,IAAI,UAAU,MAAM,OAAO;EAC3B,IAAI,UAAU,MAAM,OAAO;EAC3B,IAAI,SAAS,KAAA,GAAW,OAAO;EAE/B,MAAM,QAAQ,SAAS;EACvB,OAAO,SAAS,OAAO,QAAQ,OAAO,KAAK;CAC7C,CAAC;AACH;AAEA,SAAgB,2BAA2B,SAAmD;CAC5F,MAAM,OAAO,uBAAuB,OAAO;CAE3C,MAAM,KAAK,KAAa,UAAkB,WAAyC;EACjF,IAAI,CAAC,MACH,OAAO,oBAAoB,UAAU,MAAM;EAG7C,MAAM,SAAS,KAAK,EAAE,KAAK,MAAM;EACjC,OAAO,WAAW,MAAM,oBAAoB,UAAU,MAAM,IAAI;CAClE;CAEA,OAAO;EACL;EACA;CACF;AACF"}
@@ -19,7 +19,33 @@ var tree = {
19
19
  var select = {
20
20
  "customValuePlaceholder": "Добавить значение…",
21
21
  "addOption": "Добавить «{value}»",
22
- "clearOption": "Не выбрано"
22
+ "clearOption": "Не выбрано",
23
+ "searchPlaceholder": "Поиск…",
24
+ "loading": "Загрузка…",
25
+ "noResults": "Ничего не найдено",
26
+ "removeTag": "Удалить {label}"
27
+ };
28
+ var dataTable = {
29
+ "loading": "Загрузка…",
30
+ "empty": "Нет данных",
31
+ "selectAll": "Выбрать все строки",
32
+ "selectRow": "Выбрать строку"
33
+ };
34
+ var autocomplete = {
35
+ "loading": "Загрузка…",
36
+ "noResults": "Ничего не найдено",
37
+ "addOption": "Добавить «{value}»",
38
+ "typeMore": "Введите минимум {n} символа(ов)"
39
+ };
40
+ var form = {
41
+ "required": "Обязательное поле",
42
+ "min": "Минимум {min}",
43
+ "max": "Максимум {max}",
44
+ "len": "Длина должна быть {len}",
45
+ "pattern": "Неверный формат",
46
+ "email": "Введите корректный e-mail",
47
+ "url": "Введите корректный URL",
48
+ "invalid": "Некорректное значение"
23
49
  };
24
50
  var dialog = {
25
51
  "confirm": { "title": "Подтверждение" },
@@ -36,7 +62,8 @@ var pagination = {
36
62
  "next": "Вперёд",
37
63
  "page": "Страница {n}",
38
64
  "first": "Первая страница",
39
- "last": "Последняя страница"
65
+ "last": "Последняя страница",
66
+ "jumpTo": "Перейти к"
40
67
  };
41
68
  var navbar = { "openMenu": "Открыть меню" };
42
69
  var responseError = {
@@ -113,12 +140,30 @@ var uploadErrorBanner = {
113
140
  "serverTitle": "Ошибка загрузки на сервере",
114
141
  "serverMessage": "Сервер не смог обработать загрузку. Попробуйте снова."
115
142
  };
143
+ var input = {
144
+ "clear": "Очистить",
145
+ "showPassword": "Показать пароль",
146
+ "hidePassword": "Скрыть пароль"
147
+ };
148
+ var rating = {
149
+ "label": "Оценка",
150
+ "valueText": "{value} из {max}"
151
+ };
152
+ var commandPalette = {
153
+ "label": "Палитра команд",
154
+ "placeholder": "Введите команду или запрос…",
155
+ "empty": "Ничего не найдено",
156
+ "loading": "Загрузка…"
157
+ };
116
158
  var ru_default = {
117
159
  common,
118
160
  loading,
119
161
  treeSelect,
120
162
  tree,
121
163
  select,
164
+ dataTable,
165
+ autocomplete,
166
+ form,
122
167
  dialog,
123
168
  pagination,
124
169
  navbar,
@@ -132,7 +177,10 @@ var ru_default = {
132
177
  formFile,
133
178
  imageViewer,
134
179
  formErrorBanner,
135
- uploadErrorBanner
180
+ uploadErrorBanner,
181
+ input,
182
+ rating,
183
+ commandPalette
136
184
  };
137
185
  //#endregion
138
- export { colors, common, ru_default as default, dialog, drawer, fileUpload, formErrorBanner, formFile, imageViewer, inputTag, loading, navbar, numberInput, pagination, responseError, select, toaster, tree, treeSelect, uploadErrorBanner };
186
+ export { autocomplete, colors, commandPalette, common, dataTable, ru_default as default, dialog, drawer, fileUpload, form, formErrorBanner, formFile, imageViewer, input, inputTag, loading, navbar, numberInput, pagination, rating, responseError, select, toaster, tree, treeSelect, uploadErrorBanner };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ru-B5XOOYZt.js","names":[],"sources":["../../src/i18n/locales/ru.json"],"sourcesContent":["{\n \"common\": {\n \"confirm\": \"Подтвердить\",\n \"cancel\": \"Отмена\",\n \"add\": \"Добавить\",\n \"clear\": \"Очистить\",\n \"close\": \"Закрыть\"\n },\n \"loading\": {\n \"defaultText\": \"Загрузка...\"\n },\n \"treeSelect\": {\n \"filterPlaceholder\": \"Поиск…\",\n \"empty\": \"Нет данных\"\n },\n \"tree\": {\n \"drag\": \"Перетащить\",\n \"expand\": \"Развернуть\",\n \"collapse\": \"Свернуть\"\n },\n \"select\": {\n \"customValuePlaceholder\": \"Добавить значение…\",\n \"addOption\": \"Добавить «{value}»\",\n \"clearOption\": \"Не выбрано\",\n \"searchPlaceholder\": \"Поиск…\",\n \"loading\": \"Загрузка…\",\n \"noResults\": \"Ничего не найдено\",\n \"removeTag\": \"Удалить {label}\"\n },\n \"dataTable\": {\n \"loading\": \"Загрузка…\",\n \"empty\": \"Нет данных\",\n \"selectAll\": \"Выбрать все строки\",\n \"selectRow\": \"Выбрать строку\"\n },\n \"autocomplete\": {\n \"loading\": \"Загрузка…\",\n \"noResults\": \"Ничего не найдено\",\n \"addOption\": \"Добавить «{value}»\",\n \"typeMore\": \"Введите минимум {n} символа(ов)\"\n },\n \"form\": {\n \"required\": \"Обязательное поле\",\n \"min\": \"Минимум {min}\",\n \"max\": \"Максимум {max}\",\n \"len\": \"Длина должна быть {len}\",\n \"pattern\": \"Неверный формат\",\n \"email\": \"Введите корректный e-mail\",\n \"url\": \"Введите корректный URL\",\n \"invalid\": \"Некорректное значение\"\n },\n \"dialog\": {\n \"confirm\": {\n \"title\": \"Подтверждение\"\n },\n \"prompt\": {\n \"title\": \"Введите значение\",\n \"label\": \"Значение\",\n \"required\": \"Введите значение.\"\n }\n },\n \"pagination\": {\n \"label\": \"Пагинация\",\n \"pageSize\": \"Размер страницы\",\n \"prev\": \"Назад\",\n \"next\": \"Вперёд\",\n \"page\": \"Страница {n}\",\n \"first\": \"Первая страница\",\n \"last\": \"Последняя страница\",\n \"jumpTo\": \"Перейти к\"\n },\n \"navbar\": {\n \"openMenu\": \"Открыть меню\"\n },\n \"responseError\": {\n \"networkTitle\": \"Нет связи с сервером\",\n \"networkMessage\": \"Проверьте подключение к интернету и попробуйте ещё раз.\",\n \"abortedTitle\": \"Запрос отменён\",\n \"abortedMessage\": \"Запрос был отменён.\",\n \"validationTitle\": \"Проверьте данные\",\n \"validationMessage\": \"Сервер вернул ошибку валидации. Исправьте поля и попробуйте снова.\",\n \"clientTitle\": \"Ошибка запроса\",\n \"clientMessage\": \"Сервер отклонил запрос.\",\n \"serverTitle\": \"Ошибка сервера\",\n \"serverMessage\": \"Произошла ошибка на сервере. Попробуйте ещё раз.\",\n \"unknownTitle\": \"Что-то пошло не так\",\n \"unknownMessage\": \"Не удалось выполнить операцию. Попробуйте ещё раз.\",\n \"retryLabel\": \"Повторить\",\n \"dismissLabel\": \"Скрыть\"\n },\n \"colors\": {\n \"neutral\": \"Нейтральный\",\n \"success\": \"Успех\",\n \"warning\": \"Предупреждение\",\n \"danger\": \"Опасность\",\n \"info\": \"Инфо\",\n \"primary\": \"Primary\",\n \"slate\": \"Сланцевый\",\n \"azure\": \"Лазурный\"\n },\n \"drawer\": {\n \"title\": \"Панель\"\n },\n \"numberInput\": {\n \"increase\": \"Увеличить\",\n \"decrease\": \"Уменьшить\"\n },\n \"toaster\": {\n \"dismiss\": \"Закрыть\",\n \"region\": \"Уведомления\"\n },\n \"inputTag\": {\n \"removeTag\": \"Удалить тег\"\n },\n \"fileUpload\": {\n \"placeholder\": \"Перетащите файлы сюда или нажмите для выбора\",\n \"progress\": \"Прогресс загрузки\"\n },\n \"formFile\": {\n \"upload\": \"Загрузить файл\",\n \"change\": \"Заменить файл\",\n \"remove\": \"Удалить\",\n \"clearAll\": \"Очистить всё\",\n \"placeholder\": \"Файлы не выбраны\",\n \"validateError\": \"Не удалось проверить перетащенные файлы\"\n },\n \"imageViewer\": {\n \"close\": \"Закрыть просмотрщик\",\n \"prev\": \"Предыдущее изображение\",\n \"next\": \"Следующее изображение\",\n \"zoomIn\": \"Увеличить\",\n \"zoomOut\": \"Уменьшить\",\n \"resetZoom\": \"Сбросить масштаб\",\n \"rotateLeft\": \"Повернуть влево\",\n \"rotateRight\": \"Повернуть вправо\",\n \"empty\": \"Нет изображения\"\n },\n \"formErrorBanner\": {\n \"validationTitle\": \"Проверьте поля формы\",\n \"validationMessage\": \"Сервер отклонил данные. Исправьте выделенные поля и попробуйте снова.\",\n \"clientTitle\": \"Не удалось сохранить\",\n \"serverTitle\": \"Ошибка сохранения\",\n \"serverMessage\": \"Не удалось сохранить данные. Попробуйте позже.\"\n },\n \"uploadErrorBanner\": {\n \"networkTitle\": \"Не удалось загрузить файлы\",\n \"networkMessage\": \"Проверьте подключение и попробуйте снова.\",\n \"validationTitle\": \"Файлы не прошли проверку\",\n \"validationMessage\": \"Некоторые файлы не соответствуют требованиям.\",\n \"serverTitle\": \"Ошибка загрузки на сервере\",\n \"serverMessage\": \"Сервер не смог обработать загрузку. Попробуйте снова.\"\n },\n \"input\": {\n \"clear\": \"Очистить\",\n \"showPassword\": \"Показать пароль\",\n \"hidePassword\": \"Скрыть пароль\"\n },\n \"rating\": {\n \"label\": \"Оценка\",\n \"valueText\": \"{value} из {max}\"\n },\n \"commandPalette\": {\n \"label\": \"Палитра команд\",\n \"placeholder\": \"Введите команду или запрос…\",\n \"empty\": \"Ничего не найдено\",\n \"loading\": \"Загрузка…\"\n }\n}\n"],"mappings":""}
@@ -1,5 +1,5 @@
1
1
  import { t as splitClassTokens } from "./classTokens-BzazaERD.js";
2
- import { a as squareSizes, i as sizes, o as tones, s as variantClass, t as base } from "./grButtonStyles-C7Yga_Q1.js";
2
+ import { a as squareSizes, i as sizes, o as tones, s as variantClass, t as base } from "./grButtonStyles-DRBgDmOp.js";
3
3
  //#region src/components/GrButton/safelist.ts
4
4
  var variantTokens = Object.keys(tones).flatMap((tone) => [
5
5
  "primary",
@@ -1 +1 @@
1
- {"version":3,"file":"safelist-Do2RtzLB.js","names":[],"sources":["../../src/components/GrButton/safelist.ts"],"sourcesContent":["import {splitClassTokens} from '../shared/classTokens'\nimport {\n base,\n sizes,\n squareSizes,\n tones,\n variantClass,\n type GrButtonTone,\n type GrButtonVariant,\n} from './grButtonStyles'\n\nconst variantTokens = (Object.keys(tones) as GrButtonTone[]).flatMap(tone =>\n (['primary', 'secondary', 'outline', 'ghost', 'ghost-border'] as GrButtonVariant[])\n .flatMap(variant => splitClassTokens(variantClass(variant, tone))),\n)\n\nexport const grButtonClassTokens = {\n base: splitClassTokens(base),\n sizes: Object.values(sizes).flatMap(splitClassTokens),\n squareSizes: Object.values(squareSizes).flatMap(splitClassTokens),\n variants: variantTokens,\n} as const\n\nexport const grButtonSafelist = [...new Set([\n ...grButtonClassTokens.base,\n ...grButtonClassTokens.sizes,\n ...grButtonClassTokens.squareSizes,\n ...grButtonClassTokens.variants,\n])]\n"],"mappings":";;;AAWA,IAAM,gBAAiB,OAAO,KAAK,KAAK,CAAC,CAAoB,SAAQ,SAChE;CAAC;CAAW;CAAa;CAAW;CAAS;AAAc,CAAC,CACxD,SAAQ,YAAW,iBAAiB,aAAa,SAAS,IAAI,CAAC,CAAC,CACzE;AAEA,IAAa,sBAAsB;CAC/B,MAAM,iBAAiB,IAAI;CAC3B,OAAO,OAAO,OAAO,KAAK,CAAC,CAAC,QAAQ,gBAAgB;CACpD,aAAa,OAAO,OAAO,WAAW,CAAC,CAAC,QAAQ,gBAAgB;CAChE,UAAU;AACd;AAEA,IAAa,mBAAmB,CAAC,mBAAG,IAAI,IAAI;CACxC,GAAG,oBAAoB;CACvB,GAAG,oBAAoB;CACvB,GAAG,oBAAoB;CACvB,GAAG,oBAAoB;AAC3B,CAAC,CAAC"}
1
+ {"version":3,"file":"safelist-BvO8HPnE.js","names":[],"sources":["../../src/components/GrButton/safelist.ts"],"sourcesContent":["import {splitClassTokens} from '../shared/classTokens'\nimport {\n base,\n sizes,\n squareSizes,\n tones,\n variantClass,\n type GrButtonTone,\n type GrButtonVariant,\n} from './grButtonStyles'\n\nconst variantTokens = (Object.keys(tones) as GrButtonTone[]).flatMap(tone =>\n (['primary', 'secondary', 'outline', 'ghost', 'ghost-border'] as GrButtonVariant[])\n .flatMap(variant => splitClassTokens(variantClass(variant, tone))),\n)\n\nexport const grButtonClassTokens = {\n base: splitClassTokens(base),\n sizes: Object.values(sizes).flatMap(splitClassTokens),\n squareSizes: Object.values(squareSizes).flatMap(splitClassTokens),\n variants: variantTokens,\n} as const\n\nexport const grButtonSafelist = [...new Set([\n ...grButtonClassTokens.base,\n ...grButtonClassTokens.sizes,\n ...grButtonClassTokens.squareSizes,\n ...grButtonClassTokens.variants,\n])]\n"],"mappings":";;;AAWA,IAAM,gBAAiB,OAAO,KAAK,KAAK,CAAC,CAAoB,SAAQ,SAChE;CAAC;CAAW;CAAa;CAAW;CAAS;AAAc,CAAC,CACxD,SAAQ,YAAW,iBAAiB,aAAa,SAAS,IAAI,CAAC,CAAC,CACzE;AAEA,IAAa,sBAAsB;CAC/B,MAAM,iBAAiB,IAAI;CAC3B,OAAO,OAAO,OAAO,KAAK,CAAC,CAAC,QAAQ,gBAAgB;CACpD,aAAa,OAAO,OAAO,WAAW,CAAC,CAAC,QAAQ,gBAAgB;CAChE,UAAU;AACd;AAEA,IAAa,mBAAmB,CAAC,mBAAG,IAAI,IAAI;CACxC,GAAG,oBAAoB;CACvB,GAAG,oBAAoB;CACvB,GAAG,oBAAoB;CACvB,GAAG,oBAAoB;AAC3B,CAAC,CAAC"}
@@ -0,0 +1,188 @@
1
+ import { t as grAlertConfig } from "./config-BNu8lFQB.js";
2
+ import { t as grAutocompleteConfig } from "./config-DToHb81g.js";
3
+ import { t as grAvatarConfig } from "./config-QYGvEBu5.js";
4
+ import { t as grBadgeConfig } from "./config-D_myOZbA.js";
5
+ import { t as grBadgeWrapConfig } from "./config-Dxuwwepq.js";
6
+ import { t as grBottomNavConfig } from "./config-C9AcVDkv.js";
7
+ import { t as grButtonConfig } from "./config-KXuionN3.js";
8
+ import { t as grButtonGroupConfig } from "./config-DBmdgoVf.js";
9
+ import { t as grCardConfig } from "./config-CThzliFi.js";
10
+ import { t as grCheckboxConfig } from "./config-DICOd-2X.js";
11
+ import { t as grIconConfig } from "./config-BEegFP74.js";
12
+ import { t as grCollapseConfig } from "./config-xR4XVmcy2.js";
13
+ import { t as grCommandPaletteConfig } from "./config-COE_vZ-l.js";
14
+ import { t as grConfigProviderConfig } from "./config-B7W9VlZ7.js";
15
+ import { t as grConfirmDialogConfig } from "./config-BXtAmU3s.js";
16
+ import { t as grDataTableConfig } from "./config-U4m9PSql2.js";
17
+ import { t as grDialogSafelist } from "./safelist-CkF4v7DC.js";
18
+ import { t as grDialogServiceConfig } from "./config-BX1JTrkV.js";
19
+ import { t as grDividerConfig } from "./config-BWiPnygb.js";
20
+ import { t as grDrawerConfig } from "./config-BmNT0Fmx.js";
21
+ import { t as grDropdownConfig } from "./config-BvVq2gbd.js";
22
+ import { t as grDropdownMenuConfig } from "./config-Cb2PAlSD.js";
23
+ import { t as grEmptyStateConfig } from "./config-Bah4oHwL.js";
24
+ import { t as grFileUploadConfig } from "./config-BWGGp7uV.js";
25
+ import { t as grFormConfig } from "./config-Droqn55j.js";
26
+ import { t as grFormFieldConfig } from "./config-PFg39mYo.js";
27
+ import { t as grFormFileConfig } from "./config-D7GZO-Dx.js";
28
+ import { t as grFormSectionConfig } from "./config-B0qIpo8m.js";
29
+ import { t as grImageViewerConfig } from "./config-HZto2PVy.js";
30
+ import { t as grInputConfig } from "./config-Dg_6FTvJ.js";
31
+ import { t as grInputTagConfig } from "./config-23WtUiAL.js";
32
+ import { t as grKbdConfig } from "./config-Dlm49Jp5.js";
33
+ import { t as grLinkConfig } from "./config-B5Rknzkd.js";
34
+ import { t as grListConfig } from "./config-C86UzUYf.js";
35
+ import { t as grLoadingConfig } from "./config-Dqy0rPPO2.js";
36
+ import { t as grModalConfig } from "./config-CPdmr7tC.js";
37
+ import { t as grNavbarConfig } from "./config-ZiXWIRBX.js";
38
+ import { t as grNumberInputConfig } from "./config-gZWR75Bh2.js";
39
+ import { t as grPaginationConfig } from "./config-JpHA4Xx0.js";
40
+ import { t as grProgressBarConfig } from "./config-DRKXJ9PW2.js";
41
+ import { t as grPromptDialogConfig } from "./config-BUHuGBik2.js";
42
+ import { t as grRadioConfig } from "./config-C4hJxXDa.js";
43
+ import { t as grRadioGroupConfig } from "./config-QaIc_gRa2.js";
44
+ import { t as grRatingConfig } from "./config-CB4RVt9M.js";
45
+ import { t as grSegmentedConfig } from "./config-BMKNHFMD2.js";
46
+ import { t as grSelectConfig } from "./config-XmTv4pnI.js";
47
+ import { t as grSidebarConfig } from "./config-CGHLoBlH2.js";
48
+ import { t as grSkeletonConfig } from "./config-8Pcutu1j.js";
49
+ import { t as grSliderConfig } from "./config-BZFUM3Ky.js";
50
+ import { t as grStatisticConfig } from "./config-BDSHekVC.js";
51
+ import { t as grSwitchConfig } from "./config-LqDC_rvp.js";
52
+ import { t as grTableConfig } from "./config-ipvU0lzP.js";
53
+ import { t as grTabPanelsConfig } from "./config-eXB87DOi.js";
54
+ import { t as grTabsConfig } from "./config-BLHqZhy-.js";
55
+ import { t as grTextareaConfig } from "./config-B0i5r8kH.js";
56
+ import { t as grToasterConfig } from "./config-LGrZIdaZ.js";
57
+ import { t as grTooltipConfig } from "./config-JOtB4mzs.js";
58
+ import { t as grTreeConfig } from "./config-DpqOnJiz.js";
59
+ import { t as grTreeSelectConfig } from "./config-DPDFYzIa.js";
60
+ import { defineGranularComponent, defineGranularProvider } from "@feugene/unocss-preset-granular/contract";
61
+ //#region src/components/GrDialog/config.ts
62
+ var grDialogConfig = defineGranularComponent(import.meta.url, {
63
+ name: "GrDialog",
64
+ dependencies: ["GrButton", "GrModal"],
65
+ safelist: grDialogSafelist
66
+ });
67
+ //#endregion
68
+ //#region src/components/GrResponseErrorBanner/config.ts
69
+ var grResponseErrorBannerConfig = defineGranularComponent(import.meta.url, {
70
+ name: "GrResponseErrorBanner",
71
+ dependencies: ["GrAlert", "GrButton"]
72
+ });
73
+ //#endregion
74
+ //#region src/granular-provider/shared.ts
75
+ /** Идентификатор провайдера — совпадает с именем пакета. */
76
+ var GRANULARITY_PROVIDER_ID = "@feugene/granularity";
77
+ var packageBaseUrl = `${import.meta.url.slice(0, import.meta.url.lastIndexOf("/", import.meta.url.lastIndexOf("/") - 1) + 1)}`;
78
+ /** Встроенные темы пакета. Единственный источник правды о списке тем. */
79
+ var granularityThemeNames = ["light", "dark"];
80
+ /** Темы, активные по умолчанию, если окружение не переопределяет выбор. */
81
+ var granularityDefaultThemes = ["light"];
82
+ var theme = {
83
+ baseCssUrl: new URL("data:text/css;base64,LyoKICogR1It0LHQsNC30L7QstGL0Lkg0YHQu9C+0LkuCiAqCiAqINCT0LvQvtCx0LDQu9GM0L3Ri9C5INGB0LHRgNC+0YEg0YHRgtGA0LDQvdC40YbRiyAoYGJvZHlgLCBgYm94LXNpemluZ2ApINC/0YDQvtC00YPQsdC70LjRgNC+0LLQsNC9INC40LcKICogYHByZWZsaWdodC5jc3NgINCd0JDQn9Cg0K/QnNCj0K4gKNCwINC90LUg0YfQtdGA0LXQtyBgQGltcG9ydGApLiDQn9GA0LjRh9C40L3QsDogZ3JhbnVsYXItcHJvdmlkZXIKICog0LLRgdGC0YDQsNC40LLQsNC10YIg0YHQvtC00LXRgNC20LjQvNC+0LUgYGJhc2UuY3NzYCDQutCw0LogYmFzZTY0IGBkYXRhOmAtVVJMINC90LAg0Y3RgtCw0L/QtSDRgdCx0L7RgNC60Lgg0L/QsNC60LXRgtCwCiAqINC4INC+0YLQtNCw0ZHRgiDQtdCz0L4g0LIgVW5vQ1NTINC60LDQuiBwcmVmbGlnaHQt0YHRgtGA0L7QutGDLiDQktC70L7QttC10L3QvdGL0LkgYEBpbXBvcnRgINCyINGC0LDQutC+0Lkg0YHRgtGA0L7QutC1CiAqICjQsCkg0L3QtSDRgNC10LfQvtC70LLQuNGC0YHRjyAo0L7RgtC90L7RgdC40YLQtdC70YzQvdGL0Lkg0L/Rg9GC0Ywg0LLQvdGD0YLRgNC4IGRhdGEtVVJMKSDQuCAo0LEpINC+0LrQsNC30YvQstCw0LXRgtGB0Y8g0J3QlSDQsgogKiDQvdCw0YfQsNC70LUg0YTQuNC90LDQu9GM0L3QvtCz0L4gQ1NTIOKGkiBQb3N0Q1NTINC/0LDQtNCw0LXRgjogwqtAaW1wb3J0IG11c3QgcHJlY2VkZSBhbGwgb3RoZXIKICogc3RhdGVtZW50c8K7LiDQn9C+0Y3RgtC+0LzRgyByZXNldCDQuNC90LvQsNC50L3QuNGC0YHRjyDRgdGO0LTQsC4gYHByZWZsaWdodC5jc3NgINC+0YHRgtCw0ZHRgtGB0Y8g0L7RgtC00LXQu9GM0L3Ri9C8CiAqINC/0YPQsdC70LjRh9C90YvQvCDRhNCw0LnQu9C+0LwgKGAuL3N0eWxlcy9wcmVmbGlnaHQuY3NzYCkg0LTQu9GPIHN0YW5kYWxvbmUt0L/QvtGC0YDQtdCx0LjRgtC10LvQtdC5IOKAlAogKiDQtNC10YDQttC40YLQtSDQvtCx0LAg0LHQu9C+0LrQsCDRgdC40L3RhdGA0L7QvdC90YvQvNC4LgogKgogKiDQn9C+0YLRgNC10LHQuNGC0LXQu9GMLCDQutC+0YLQvtGA0L7QvNGDINCz0LvQvtCx0LDQu9GM0L3Ri9C1INGB0LDQudC0LdGN0YTRhNC10LrRgtGLINC90LUg0L3Rg9C20L3Riywg0LzQvtC20LXRgiDQv9C+0LTQutC70Y7Rh9C40YLRjAogKiBgdG9rZW5zLmNzc2AgKyDRgtC10LzRgyDQuCDQv9GA0L7Qv9GD0YHRgtC40YLRjCBgYmFzZS5jc3NgL2BwcmVmbGlnaHQuY3NzYC4KICoKICog0J3QuNC20LUsINC/0L7QvNC40LzQviByZXNldCwg4oCUINC90LjQt9C60L7RgdC/0LXRhtC40YTQuNGH0L3Ri9C1IChgOndoZXJlKClgKSDQtNC10YTQvtC70YLRiyDRgdCw0LzQvtC5IEdSLCDQutC+0YLQvtGA0YvQtQogKiDQsdC10LfQvtC/0LDRgdC90L4g0L3QsNC60LvQsNC00YvQstCw0Y7RgtGB0Y8g0L3QsCDQv9GA0LjQu9C+0LbQtdC90LjQtSDQuCDQu9C10LPQutC+INC/0LXRgNC10L7Qv9GA0LXQtNC10LvRj9GO0YLRgdGPLgogKi8KCi8qIC0tLSByZXNldCAo0YHQuNC90YXRgNC+0L3QuNC30LjRgNC+0LLQsNC90L4g0YEgcHJlZmxpZ2h0LmNzcykgLS0tICovCmh0bWwsCmJvZHkgewogICAgaGVpZ2h0OiAxMDAlOwp9Cgpib2R5IHsKICAgIG1hcmdpbjogMDsKICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1nci1mb250LXVpKTsKICAgIGJhY2tncm91bmQ6IHZhcigtLWdyLWJnKTsKICAgIGNvbG9yOiB2YXIoLS1nci1mZyk7Cn0KCiogewogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQoKLyoKICogVW5vQ1NTIHRhaWx3aW5kLWNvbXBhdCByZXNldCBpbnRlbnRpb25hbGx5IGRvZXMgbm90IGZvcmNlIGBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGAgZm9yIGJ1dHRvbnMKICogKHRvIGF2b2lkIGJyZWFraW5nIGNvbXBvbmVudCBsaWJyYXJpZXMpLiBJbiBvdXIgR1Igd2Ugd2FudCBwbGFpbiBidXR0b25zL2xpbmtzIHRvIGJlIHRyYW5zcGFyZW50IGJ5IGRlZmF1bHQuCiAqLwo6d2hlcmUoYSwgYnV0dG9uKSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKfQoKOndoZXJlKGlucHV0W3R5cGU9J2J1dHRvbiddLCBpbnB1dFt0eXBlPSdzdWJtaXQnXSwgaW5wdXRbdHlwZT0ncmVzZXQnXSkgewogICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KCmNvZGUsCnByZSwKa2JkIHsKICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1nci1mb250LW1vbm8pOwp9Cg==", "" + import.meta.url).href,
84
+ tokensCssUrl: new URL("data:text/css;base64,OnJvb3QgewogIC8qIEZvdW5kYXRpb25zOiBuZXV0cmFsIHBhbGV0dGUgKi8KICAtLWdyLXNsYXRlLTA6ICNmZmZmZmY7CiAgLS1nci1zbGF0ZS01MDogI2Y4ZmFmYzsKICAtLWdyLXNsYXRlLTEwMDogI2YxZjVmOTsKICAtLWdyLXNsYXRlLTIwMDogI2UyZThmMDsKICAtLWdyLXNsYXRlLTMwMDogI2NiZDVlMTsKICAtLWdyLXNsYXRlLTQwMDogIzk0YTNiODsKICAtLWdyLXNsYXRlLTUwMDogIzY0NzQ4YjsKICAtLWdyLXNsYXRlLTYwMDogIzQ3NTU2OTsKICAtLWdyLXNsYXRlLTcwMDogIzMzNDE1NTsKICAtLWdyLXNsYXRlLTgwMDogIzFlMjkzYjsKICAtLWdyLXNsYXRlLTkwMDogIzBmMTcyYTsKCiAgLyogVHlwb2dyYXBoeTogZm9udCBmYW1pbGllcyAqLwogIC0tZ3ItZm9udC11aTogSW50ZXIsIFJvYm90bywgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgLS1nci1mb250LW1vbm86ICdKZXRCcmFpbnMgTW9ubycsIHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgbW9ub3NwYWNlOwoKICAvKiBUeXBvZ3JhcGh5OiBmb250IHNpemVzICovCiAgLS1nci10ZXh0LXhzOiAxMnB4OwogIC0tZ3ItdGV4dC1zbTogMTRweDsKICAtLWdyLXRleHQtYmFzZTogMTZweDsKICAtLWdyLXRleHQtbGc6IDE4cHg7CiAgLS1nci10ZXh0LXhsOiAyMHB4OwogIC0tZ3ItdGV4dC0yeGw6IDI0cHg7CiAgLS1nci10ZXh0LTN4bDogMzBweDsKICAtLWdyLXRleHQtNHhsOiAzNnB4OwoKICAvKiBUeXBvZ3JhcGh5OiBsaW5lIGhlaWdodHMgKi8KICAtLWdyLWxlYWRpbmctdGlnaHQ6IDEuMjU7CiAgLS1nci1sZWFkaW5nLW5vcm1hbDogMS41OwogIC0tZ3ItbGVhZGluZy1yZWxheGVkOiAxLjYyNTsKCiAgLyogVHlwb2dyYXBoeTogZm9udCB3ZWlnaHRzICovCiAgLS1nci1mb250LXJlZ3VsYXI6IDQwMDsKICAtLWdyLWZvbnQtbWVkaXVtOiA1MDA7CiAgLS1nci1mb250LXNlbWlib2xkOiA2MDA7CiAgLS1nci1mb250LWJvbGQ6IDcwMDsKCiAgLyogTGF5b3V0OiBzcGFjaW5nIHNjYWxlICovCiAgLS1nci1zcGFjZS0wOiAwcHg7CiAgLS1nci1zcGFjZS0xOiA0cHg7CiAgLS1nci1zcGFjZS0yOiA4cHg7CiAgLS1nci1zcGFjZS0zOiAxMnB4OwogIC0tZ3Itc3BhY2UtNDogMTZweDsKICAtLWdyLXNwYWNlLTU6IDIwcHg7CiAgLS1nci1zcGFjZS02OiAyNHB4OwogIC0tZ3Itc3BhY2UtODogMzJweDsKICAtLWdyLXNwYWNlLTEwOiA0MHB4OwogIC0tZ3Itc3BhY2UtMTI6IDQ4cHg7CiAgLS1nci1zcGFjZS0xNjogNjRweDsKICAtLWdyLXNwYWNlLTIwOiA4MHB4OwogIC0tZ3Itc3BhY2UtMjQ6IDk2cHg7CiAgLS1nci1zcGFjZS0zMjogMTI4cHg7CiAgLS1nci1zcGFjZS00MDogMTYwcHg7CiAgLS1nci1zcGFjZS00ODogMTkycHg7CiAgLS1nci1zcGFjZS02NDogMjU2cHg7CgogIC8qIExheW91dDogY29udGFpbmVycyAqLwogIC0tZ3ItY29udGFpbmVyLW1heDogMTI4MHB4OwogIC0tZ3ItY29udGFpbmVyLW1heC0yeGw6IDE0NDBweDsKICAtLWdyLWNvbnRhaW5lci1wYWRkaW5nLW1vYmlsZTogMTZweDsKICAtLWdyLWNvbnRhaW5lci1wYWRkaW5nLXRhYmxldDogMjRweDsKICAtLWdyLWNvbnRhaW5lci1wYWRkaW5nLWRlc2t0b3A6IDMycHg7CgogIC8qIExheW91dDogYnJlYWtwb2ludHMgKi8KICAtLWdyLWJwLXNtOiA2NDBweDsKICAtLWdyLWJwLW1kOiA3NjhweDsKICAtLWdyLWJwLWxnOiAxMDI0cHg7CiAgLS1nci1icC14bDogMTI4MHB4OwogIC0tZ3ItYnAtMnhsOiAxNTM2cHg7CgogIC8qIFNoYXBlczogcmFkaWkgYW5kIGNvbXBhdGliaWxpdHkgYWxpYXNlcyAqLwogIC0tcmFkaXVzOiAwLjVyZW07CiAgLS1nci1yYWRpdXMtbm9uZTogMHB4OwogIC0tZ3ItcmFkaXVzLXNtOiA0cHg7CiAgLS1nci1yYWRpdXMtbWQ6IDhweDsKICAtLWdyLXJhZGl1cy1sZzogMTJweDsKICAtLWdyLXJhZGl1cy14bDogMTZweDsKICAtLWdyLXJhZGl1cy1mdWxsOiA5OTk5cHg7CgogIC8qIEVsZXZhdGlvbiAqLwogIC0tZ3Itc2hhZG93LTA6IG5vbmU7CiAgLS1nci1zaGFkb3ctMTogMCAxcHggMnB4IHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7CiAgLS1nci1zaGFkb3ctMjogMCA4cHggMjRweCByZ2JhKDE1LCAyMywgNDIsIDAuMTQpOwogIC0tZ3Itc2hhZG93LTM6IDAgMTZweCA0OHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4yMCk7CgogIC8qIE1vdGlvbiAqLwogIC0tZ3ItZHVyYXRpb24tZmFzdDogMTUwbXM7CiAgLS1nci1kdXJhdGlvbi1iYXNlOiAyMDBtczsKICAtLWdyLWR1cmF0aW9uLXNsb3c6IDMwMG1zOwogIC0tZ3ItZWFzZS1vdXQ6IGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpOwogIC0tZ3ItZWFzZS1pbjogY3ViaWMtYmV6aWVyKDAuNywgMCwgMC44NCwgMCk7CgogIC8qCiAgICogWi1pbmRleCBsYXllcmluZyBzY2FsZS4KICAgKgogICAqINCV0LTQuNC90YvQuSDQuNGB0YLQvtGH0L3QuNC6INC40YHRgtC40L3RiyDQtNC70Y8g0YHQu9C+0ZHQsiDQstGB0LXRhSDQutC+0LzQv9C+0L3QtdC90YLQvtCyLCDQuNGB0L/QvtC70YzQt9GD0Y7RidC40YUgYHBvc2l0aW9uOiBmaXhlZGAKICAgKiDQv9C+0LLQtdGA0YUg0L7RgdGC0LDQu9GM0L3QvtCz0L4g0LrQvtC90YLQtdC90YLQsC4g0J/RgNCw0LLQuNC70L46INGH0LXQvCDQstGL0YjQtSDQsiBVSS3RgdGC0LXQutC1INGB0LvQvtC5INC+0LHRj9C30LDQvSDQvtC60LDQt9Cw0YLRjNGB0Y8sCiAgICog0YLQtdC8INCx0L7Qu9GM0YjQtSDQt9C90LDRh9C10L3QuNC1LiBGbG9hdGluZy3Qv9Cw0L3QtdC70LggKGRyb3Bkb3duL3NlbGVjdC90cmVlLXNlbGVjdC90b29sdGlwKSDRgdGC0L7Rj9GCCiAgICog0L3QuNC20LUg0LzQvtC00LDQu9C+0LosINGH0YLQvtCx0Ysg0L/QvtC/0L7QstC10YAsINC+0YLQutGA0YvRgtGL0Lkg0JLQndCj0KLQoNCYINC80L7QtNCw0LvQutC4LCDQvdC1INC/0L7RgtC10YDRj9C70YHRjyDQv9C+0LQg0L3QtdC5LCDQvdC+CiAgICog0YHQsNC8INGN0YLQvtGCINC/0L7Qv9C+0LLQtdGAINC90LUg0L7QsdGP0LfQsNC9INC/0LXRgNC10LrRgNGL0LLQsNGC0Ywg0LzQvtC00LDQu9C60YMg0YHQvdCw0YDRg9C20Lgg4oCUINC30LAg0L/RgNC10LTQtdC70Ysg0YHQstC+0LXQs9C+INC00LXRgNC10LLQsAogICAqIGZsb2F0aW5nLdC60L7QvNC/0L7QvdC10L3RgtGLINC90LUg0LLRi9GF0L7QtNGP0YIg0L/QviDQv9C+0YHRgtGA0L7QtdC90LjRjiAodi1jbGljay1vdXRzaWRlL3BvcnRhbCDRgNGP0LTQvtC8INGBINGC0YDQuNCz0LPQtdGA0L7QvCkuCiAgICog0KLQvtGB0YLRiyDigJQg0LXQtNC40L3RgdGC0LLQtdC90L3Ri9C5INGB0LvQvtC5LCDQutC+0YLQvtGA0YvQuSDQvtCx0Y/Qt9Cw0L0g0LHRi9GC0Ywg0LLQuNC00LXQvSDQv9C+0LLQtdGA0YUg0LDQsdGB0L7Qu9GO0YLQvdC+INCy0YHQtdCz0L4sCiAgICog0LLQutC70Y7Rh9Cw0Y8g0L7RgtC60YDRi9GC0YvQtSDQvNC+0LTQsNC70LrQuCAo0Y3RgtC+INGD0LLQtdC00L7QvNC70LXQvdC40LUg0YPRgNC+0LLQvdGPINC/0YDQuNC70L7QttC10L3QuNGPKS4KICAgKi8KICAtLWdyLXotZHJvcGRvd246IDEwMDA7CiAgLS1nci16LXRvb2x0aXA6IDEwNTA7CiAgLS1nci16LW1vZGFsOiAxMTAwOwogIC0tZ3Itei10b2FzdDogMTIwMDsKCiAgLyogRGVyaXZlZCBpbnRlcmFjdGlvbiBmb3JtdWxhczogYWN0aW9uIHJvbGVzICovCiAgLS1nci1wcmltYXJ5LWhvdmVyOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZ3ItcHJpbWFyeSkgOTIlLCB2YXIoLS1nci1mZykpOwogIC0tZ3ItcHJpbWFyeS1hY3RpdmU6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1nci1wcmltYXJ5KSA4NCUsIHZhcigtLWdyLWZnKSk7CiAgLS1nci1zZWNvbmRhcnktaG92ZXI6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1nci1zZWNvbmRhcnkpIDkyJSwgdmFyKC0tZ3ItZmcpKTsKICAtLWdyLXNlY29uZGFyeS1hY3RpdmU6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1nci1zZWNvbmRhcnkpIDg0JSwgdmFyKC0tZ3ItZmcpKTsKICAtLWdyLWJyZC1ob3ZlcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWdyLWJyZCkgNzAlLCB2YXIoLS1nci1mZykpOwogIC0tZ3ItYnJkLWFjdGl2ZTogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWdyLWJyZCkgNTUlLCB2YXIoLS1nci1mZykpOwogIC0tZ3ItZGVzdHJ1Y3RpdmUtaG92ZXI6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1nci1kZXN0cnVjdGl2ZSkgOTIlLCB2YXIoLS1nci1mZykpOwogIC0tZ3ItZGVzdHJ1Y3RpdmUtYWN0aXZlOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZ3ItZGVzdHJ1Y3RpdmUpIDg0JSwgdmFyKC0tZ3ItZmcpKTsKCiAgLyogRGVyaXZlZCBpbnRlcmFjdGlvbiBmb3JtdWxhczogc3RhdHVzIHJvbGVzICovCiAgLS1nci1zdWNjZXNzLWhvdmVyOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZ3Itc3VjY2VzcykgOTIlLCB2YXIoLS1nci1mZykpOwogIC0tZ3Itc3VjY2Vzcy1hY3RpdmU6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1nci1zdWNjZXNzKSA4NCUsIHZhcigtLWdyLWZnKSk7CiAgLS1nci13YXJuaW5nLWhvdmVyOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZ3Itd2FybmluZykgOTIlLCB2YXIoLS1nci1mZykpOwogIC0tZ3Itd2FybmluZy1hY3RpdmU6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1nci13YXJuaW5nKSA4NCUsIHZhcigtLWdyLWZnKSk7CiAgLS1nci1kYW5nZXItaG92ZXI6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1nci1kYW5nZXIpIDkyJSwgdmFyKC0tZ3ItZmcpKTsKICAtLWdyLWRhbmdlci1hY3RpdmU6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1nci1kYW5nZXIpIDg0JSwgdmFyKC0tZ3ItZmcpKTsKICAtLWdyLWluZm8taG92ZXI6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1nci1pbmZvKSA5MiUsIHZhcigtLWdyLWZnKSk7CiAgLS1nci1pbmZvLWFjdGl2ZTogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWdyLWluZm8pIDg0JSwgdmFyKC0tZ3ItZmcpKTsKICAtLWdyLXNsYXRlLWhvdmVyOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZ3Itc2xhdGUpIDkyJSwgdmFyKC0tZ3ItZmcpKTsKICAtLWdyLXNsYXRlLWFjdGl2ZTogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWdyLXNsYXRlKSA4NCUsIHZhcigtLWdyLWZnKSk7CiAgLS1nci1henVyZS1ob3ZlcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWdyLWF6dXJlKSA5MiUsIHZhcigtLWdyLWZnKSk7CiAgLS1nci1henVyZS1hY3RpdmU6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1nci1henVyZSkgODQlLCB2YXIoLS1nci1mZykpOwp9Cg==", "" + import.meta.url).href,
85
+ themes: {
86
+ light: new URL("data:text/css;base64,OnJvb3QgewogIC8qIFN1cmZhY2Ugcm9sZXMgKi8KICAtLWdyLWJnOiAjZjhmYWZjOwogIC0tZ3ItZmc6ICMwZjE3MmE7CiAgLS1nci1jYXJkOiAjZmZmZmZmOwogIC0tZ3ItY2FyZC1mZzogIzBmMTcyYTsKICAtLWdyLXBvcG92ZXI6ICNmZmZmZmY7CiAgLS1nci1wb3BvdmVyLWZnOiAjMGYxNzJhOwogIC0tZ3ItbXV0ZWQ6ICNmMWY1Zjk7CiAgLyoKICAgKiDQktGC0L7RgNC40YfQvdGL0Lkg0YLQtdC60YHRgiDQvtCx0Y/Qt9Cw0L0g0L/RgNC+0YXQvtC00LjRgtGMIEFBINC90LAg0KHQkNCc0J7QnCDQotCB0JzQndCe0Jwg0LjQtyDRhNC+0L3QvtCyLCDQvdCwINC60L7RgtC+0YDRi9GFCiAgICog0L7QvSDQv9C+0Y/QstC70Y/QtdGC0YHRjywg0LAg0Y3RgtC+INC90LUg0YHRgtGA0LDQvdC40YbQsCwg0LAgYC0tZ3Itc2Vjb25kYXJ5YCAoI2UyZThmMCkuINCf0YDQtdC20L3QuNC5CiAgICogIzY0NzQ4YiDQtNC10YDQttCw0LvRgdGPINGC0L7Qu9GM0LrQviDQvdCwIGAtLWdyLWJnYCAoNC41NSkg0LggYC0tZ3ItY2FyZGAgKDQuNzYpLCDQvdC+CiAgICog0L/RgNC+0LLQsNC70LjQstCw0LvRgdGPINC90LAgYC0tZ3ItbXV0ZWRgICg0LjM0KSDQuCBgLS1nci1zZWNvbmRhcnlgICgzLjg2KSDigJQg0YLQviDQtdGB0YLRjAogICAqINGA0L7QstC90L4g0YLQsNC8LCDQs9C00LUg0LLRgtC+0YDQuNGH0L3Ri9C5INGC0LXQutGB0YIg0Lgg0LbQuNCy0ZHRgjog0YfQuNC/0YssINGC0LDQsdC70LjRhtGLLCDQv9C+0LTQv9C40YHQuCDQsiDQv9Cw0L3QtdC70Y/RhS4KICAgKiAjNTU2Mjc1INC00LDRkdGCINC80LjQvdC40LzRg9C8IDUuMDIg0L/QviDQstGB0LXQvCDRh9C10YLRi9GA0ZHQvCDRhNC+0L3QsNC8LgogICAqLwogIC0tZ3ItbXV0ZWQtZmc6ICM1NTYyNzU7CiAgLS1nci1zZWNvbmRhcnk6ICNlMmU4ZjA7CiAgLS1nci1zZWNvbmRhcnktZmc6ICMxZTI5M2I7CiAgLS1nci1icmQ6ICNlMmU4ZjA7CiAgLS1nci1pbnB1dDogI2UyZThmMDsKICAtLWdyLXJpbmc6ICM2MzY2ZjE7CgogIC8qIEFjdGlvbiByb2xlcyAqLwogIC0tZ3ItcHJpbWFyeTogIzRmNDZlNTsKICAtLWdyLXByaW1hcnktZmc6ICNmZmZmZmY7CiAgLS1nci1hY2NlbnQ6ICNlZWYyZmY7CiAgLS1nci1hY2NlbnQtZmc6ICMzNzMwYTM7CiAgLS1nci1kZXN0cnVjdGl2ZTogI2RjMjYyNjsKICAtLWdyLWRlc3RydWN0aXZlLWZnOiAjZmZmZmZmOwoKICAvKiBTdGF0dXMgcm9sZXMgKi8KICAvKgogICAqIGAtZmdgIOKAlCDRhtCy0LXRgiDRgtC10LrRgdGC0LAg0J3QkCDRgdC/0LvQvtGI0L3QvtC5INC30LDQu9C40LLQutC1INGC0L7QvdC+0LwuINCjINGB0LLQtdGC0LvRi9GFINC30LDQu9C40LLQvtC6INC+0L0g0L7QsdGP0LfQsNC9CiAgICog0LHRi9GC0Ywg0YLRkdC80L3Ri9C8OiDQsdC10LvRi9C5INC90LAgYC0tZ3Itc3VjY2Vzc2Ag0LTQsNGR0YIgMi41NDoxLCDQvdCwIGAtLWdyLXdhcm5pbmdgIDIuODA6MQogICAqINC/0YDQuCDQv9C+0YDQvtCz0LUgQUEgNC41IOKAlCDQsCDRjdGC0L4gc29saWQt0LrQvdC+0L/QutC4INC4INCx0LXQudC00LbQuCAoYGdyQnV0dG9uU3R5bGVzLnRzYCwKICAgKiBgZ3JCYWRnZVN0eWxlcy50c2ApLiDQoSBgLS1nci1mZ2Ag0L/QvtC70YPRh9Cw0LXQvCA3LjA0INC4IDYuMzcsINC4IGhvdmVyL2FjdGl2ZSwKICAgKiDQutC+0YLQvtGA0YvQtSDRg9Cy0L7QtNGP0YIg0LfQsNC70LjQstC60YMg0LIg0YLRkdC80L3Rg9GOINGB0YLQvtGA0L7QvdGDLCDQvtGB0YLQsNGO0YLRgdGPINCy0YvRiNC1INC/0L7RgNC+0LPQsCAoNS4zMCAvIDQuNzkpLgogICAqINCSIGBkYXJrLmNzc2Ag0Y3RgtC4INGC0L7QutC10L3RiyDRg9C20LUg0YLRkdC80L3Ri9C1IOKAlCDRgtCw0Lwg0LfQsNC70LjQstC60Lgg0YHQstC10YLQu9C10LUg0YTQvtC90LAuCiAgICovCiAgLS1nci1zdWNjZXNzOiAjMTBiOTgxOwogIC0tZ3Itc3VjY2Vzcy1saWdodDogI2QxZmFlNTsKICAtLWdyLXN1Y2Nlc3MtZmc6ICMwZjE3MmE7CiAgLS1nci1zdWNjZXNzLXRleHQ6ICMwNjVmNDY7CiAgLS1nci13YXJuaW5nOiAjZjk3MzE2OwogIC0tZ3Itd2FybmluZy1saWdodDogI2ZmZWRkNTsKICAtLWdyLXdhcm5pbmctZmc6ICMwZjE3MmE7CiAgLS1nci13YXJuaW5nLXRleHQ6ICM3YzJkMTI7CiAgLS1nci1kYW5nZXI6ICNkYzI2MjY7CiAgLS1nci1kYW5nZXItbGlnaHQ6ICNmZWUyZTI7CiAgLS1nci1kYW5nZXItZmc6ICNmZmZmZmY7CiAgLS1nci1kYW5nZXItdGV4dDogIzk5MWIxYjsKICAtLWdyLWluZm86ICM1ODUwZWM7CiAgLS1nci1pbmZvLWxpZ2h0OiAjZTBlN2ZmOwogIC0tZ3ItaW5mby1mZzogI2ZmZmZmZjsKICAtLWdyLWluZm8tdGV4dDogIzM3MzBhMzsKICAtLWdyLXNsYXRlOiAjNDc1NTY5OwogIC0tZ3Itc2xhdGUtbGlnaHQ6ICNlMmU4ZjA7CiAgLS1nci1zbGF0ZS1mZzogI2ZmZmZmZjsKICAtLWdyLXNsYXRlLXRleHQ6ICMzMzQxNTU7CiAgLyoKICAgKiBBenVyZSDigJQg0LXQtNC40L3RgdGC0LLQtdC90L3Ri9C5INGC0L7QvSwg0LrQvtGC0L7RgNGL0Lkg0L3QtSDRh9C40L3QuNGC0YHRjyDRgdC80LXQvdC+0LkgYC1mZ2AuINCi0ZHQvNC90YvQuSDRgtC10LrRgdGCCiAgICog0L/RgNC+0YXQvtC00LjRgiDQvdCwINCx0LDQt9C1ICg2LjQ0KSwg0L3QviBob3Zlci9hY3RpdmUg0YPQstC+0LTRj9GCINC30LDQu9C40LLQutGDINCy0L3QuNC3INC4INC70L7QvNCw0Y7RgiDQtdCz0L4KICAgKiAoNC4zNiAvIDMuMDEpOyDQsdC10LvRi9C5INC20LUg0L3QtSDQv9GA0L7RhdC+0LTQuNGCINC90LAg0LHQsNC30LUgKDIuNzcpLiDQktGL0YXQvtC0INC+0LTQuNC9IOKAlCDRgdCw0LzQsAogICAqINC30LDQu9C40LLQutCwOiBza3ktNTAwIGAjMGVhNWU5YCDRgdC70LjRiNC60L7QvCDRgdCy0LXRgtC70LDRjyDQtNC70Y8g0LHQtdC70L7Qs9C+INGC0LXQutGB0YLQsC4gYCMwMDc3YjZgIOKAlAogICAqINGB0LDQvNC+0LUg0YHQstC10YLQu9C+0LUg0LfQvdCw0YfQtdC90LjQtSwg0LTQsNGO0YnQtdC1INC30LDQv9Cw0YEg0L/QviDQstGB0LXQvCDRgtGA0ZHQvCDRgdC+0YHRgtC+0Y/QvdC40Y/QvAogICAqICg0Ljg3IC8gNS40NCAvIDYuMDIpINC4INC30LDQvtC00L3QviDQv9C+0LTQvdC40LzQsNGO0YnQtdC1IGF6dXJlLdC40LrQvtC90LrRgyDQvdCwIGAtbGlnaHRgCiAgICog0L/QvtC00LvQvtC20LrQtSDRgSAyLjQyINC00L4gNC4yNC4g0J7RgtGC0LXQvdC+0Log0L7RgdGC0LDRkdGC0YHRjyDQvtGC0LvQuNGH0LjQvNGL0Lwg0L7RgiBgLS1nci1pbmZvYC4KICAgKi8KICAtLWdyLWF6dXJlOiAjMDA3N2I2OwogIC0tZ3ItYXp1cmUtbGlnaHQ6ICNlMGYyZmU7CiAgLS1nci1henVyZS1mZzogI2ZmZmZmZjsKICAtLWdyLWF6dXJlLXRleHQ6ICMwNzU5ODU7CgogIC8qIERhdGEgdmlzdWFsaXphdGlvbiByb2xlcyAqLwogIC0tZ3ItY2hhcnQtMTogIzRmNDZlNTsKICAtLWdyLWNoYXJ0LTI6ICMxMGI5ODE7CiAgLS1nci1jaGFydC0zOiAjZjk3MzE2OwogIC0tZ3ItY2hhcnQtNDogIzYzNjZmMTsKICAtLWdyLWNoYXJ0LTU6ICM4YjVjZjY7CgogIC8qIE5hdmlnYXRpb24gcm9sZXMgKi8KICAtLWdyLXNpZGViYXI6ICNmZmZmZmY7CiAgLS1nci1zaWRlYmFyLWZnOiAjMGYxNzJhOwogIC0tZ3Itc2lkZWJhci1wcmltYXJ5OiAjNGY0NmU1OwogIC0tZ3Itc2lkZWJhci1wcmltYXJ5LWZnOiAjZmZmZmZmOwogIC0tZ3Itc2lkZWJhci1hY2NlbnQ6ICNmMWY1Zjk7CiAgLS1nci1zaWRlYmFyLWFjY2VudC1mZzogIzFlMjkzYjsKICAtLWdyLXNpZGViYXItYnJkOiAjZTJlOGYwOwogIC0tZ3Itc2lkZWJhci1yaW5nOiAjNjM2NmYxOwp9CgpAc3VwcG9ydHMgbm90IChjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsICMwMDAgNTAlLCAjZmZmKSkgewogIDpyb290IHsKICAgIC8qIEFjdGlvbiByb2xlIGZhbGxiYWNrcyAqLwogICAgLS1nci1wcmltYXJ5LWhvdmVyOiAjNGE0MmQ2OwogICAgLS1nci1wcmltYXJ5LWFjdGl2ZTogIzQ1M2VjNzsKICAgIC0tZ3Itc2Vjb25kYXJ5LWhvdmVyOiAjZDFkN2UwOwogICAgLS1nci1zZWNvbmRhcnktYWN0aXZlOiAjYzBjN2QwOwogICAgLS1nci1icmQtaG92ZXI6ICNhM2E5YjU7CiAgICAtLWdyLWJyZC1hY3RpdmU6ICM4MzhhOTc7CiAgICAtLWdyLWRlc3RydWN0aXZlLWhvdmVyOiAjY2MyNTI2OwogICAgLS1nci1kZXN0cnVjdGl2ZS1hY3RpdmU6ICNiYjI0Mjc7CgogICAgLyogU3RhdHVzIHJvbGUgZmFsbGJhY2tzICovCiAgICAtLWdyLXN1Y2Nlc3MtaG92ZXI6ICMxMGFjN2E7CiAgICAtLWdyLXN1Y2Nlc3MtYWN0aXZlOiAjMTA5ZjczOwogICAgLS1nci13YXJuaW5nLWhvdmVyOiAjZTY2YzE4OwogICAgLS1nci13YXJuaW5nLWFjdGl2ZTogI2Q0NjQxOTsKICAgIC0tZ3ItZGFuZ2VyLWhvdmVyOiAjY2MyNTI2OwogICAgLS1nci1kYW5nZXItYWN0aXZlOiAjYmIyNDI3OwogICAgLS1nci1pbmZvLWhvdmVyOiAjNWM2MGUxOwogICAgLS1nci1pbmZvLWFjdGl2ZTogIzU2NTlkMTsKICAgIC0tZ3Itc2xhdGUtaG92ZXI6ICM0MzUwNjI7CiAgICAtLWdyLXNsYXRlLWFjdGl2ZTogIzNkNGE1YjsKICAgIC0tZ3ItYXp1cmUtaG92ZXI6ICMwMTZmYWI7CiAgICAtLWdyLWF6dXJlLWFjdGl2ZTogIzAyNjhhMDsKCiAgICAvKiBDb21wb25lbnQgc2VtYW50aWMgZmFsbGJhY2tzICovCiAgICAvKi0tZ3ItY2F0ZWdvcnktdHJlZS1icmFuY2gtbGluZS1hY3RpdmUtY29sb3I6ICNjNGNkZjc7Ki8KICB9Cn0K", "" + import.meta.url).href,
87
+ dark: new URL("data:text/css;base64,LyoKICog0KLRkdC80L3QsNGPINGC0LXQvNCwLiDQmtCw0L3QvtC9IOKAlCDQsNGC0YDQuNCx0YPRgiBgW2RhdGEtdGhlbWU9J2RhcmsnXWAg0L3QsCBgPGh0bWw+YCAo0LXQs9C+INGB0YLQsNCy0LjRggogKiBgdXNlVGhlbWVgL2Bpbml0VGhlbWVFYXJseWApLiDQodC10LvQtdC60YLQvtGA0YsgYC50aGVtZS1kYXJrYCDQuCBgLmRhcmtgIOKAlCBERVBSRUNBVEVELdCw0LvQuNCw0YHRiwogKiDQtNC70Y8g0L7QsdGA0LDRgtC90L7QuSDRgdC+0LLQvNC10YHRgtC40LzQvtGB0YLQuDsg0LIg0L3QvtCy0L7QvCDQutC+0LTQtSDQuNGB0L/QvtC70YzQt9GD0LnRgtC1IGBbZGF0YS10aGVtZV1gLgogKi8KW2RhdGEtdGhlbWU9J2RhcmsnXSwKLnRoZW1lLWRhcmssCi5kYXJrIHsKICAvKiBTdXJmYWNlIHJvbGVzICovCiAgLS1nci1iZzogIzBmMTcyYTsKICAtLWdyLWZnOiAjZjhmYWZjOwogIC0tZ3ItY2FyZDogIzFlMjkzYjsKICAtLWdyLWNhcmQtZmc6ICNmOGZhZmM7CiAgLS1nci1wb3BvdmVyOiAjMWUyOTNiOwogIC0tZ3ItcG9wb3Zlci1mZzogI2Y4ZmFmYzsKICAtLWdyLW11dGVkOiAjMzM0MTU1OwogIC8qINCh0LjQvNC80LXRgtGA0LjRh9C90L4gbGlnaHQ6INC80LjQvdC40LzRg9C8INC/0L4g0YTQvtC90YMgYC0tZ3ItbXV0ZWRgL2AtLWdyLXNlY29uZGFyeWAgKCMzMzQxNTUpLgogICAgINCf0YDQtdC20L3QuNC5ICM5NGEzYjgg0LTQsNCy0LDQuyDRgtCw0LwgNC4wNCwgI2FhYjZjNyDQtNCw0ZHRgiA1LjA0LiAqLwogIC0tZ3ItbXV0ZWQtZmc6ICNhYWI2Yzc7CiAgLS1nci1zZWNvbmRhcnk6ICMzMzQxNTU7CiAgLS1nci1zZWNvbmRhcnktZmc6ICNmMWY1Zjk7CiAgLS1nci1icmQ6ICMzMzQxNTU7CiAgLS1nci1pbnB1dDogIzMzNDE1NTsKICAtLWdyLXJpbmc6ICM4MThjZjg7CgogIC8qIEFjdGlvbiByb2xlcyAqLwogIC8qCiAgICogUHJpbWFyeSDQsdGL0Lsg0LXQtNC40L3RgdGC0LLQtdC90L3Ri9C8INGC0L7QvdC+0LwsINCy0YvQv9Cw0LTQsNCy0YjQuNC8INC40Lcg0LrQvtC90LLQtdC90YbQuNC4INGC0ZHQvNC90L7QuSDRgtC10LzRiwogICAqICjRgdCy0LXRgtC70LDRjyDQt9Cw0LvQuNCy0LrQsCArINGC0ZHQvNC90YvQuSDRgtC10LrRgdGCLCDQutCw0Log0YMgc3VjY2Vzcy93YXJuaW5nL2Rhbmdlci9pbmZvL2F6dXJlKToKICAgKiDQvtGB0YLQsNCy0LDQu9GB0Y8g0YHQstC10YLQu9C+LdGC0ZHQvNC90YvQvCDQuNC90LTQuNCz0L4gIzYzNjZmMSDRgSDQsdC10LvRi9C8INGC0LXQutGB0YLQvtC8INC4INC/0YDQvtCy0LDQu9C40LLQsNC7INGB0YDQsNC30YMKICAgKiDQstGB0LUg0YLRgNC4INGA0L7Qu9C4IOKAlCDRgtC10LrRgdGCINC90LAg0YTQvtC90LUgNC4wMCwg0YLQtdC60YHRgiDQvdCwINC60LDRgNGC0L7Rh9C60LUgMy4yNywg0LHQtdC70YvQuSDQvdCwCiAgICog0LfQsNC70LjQstC60LUgNC40Ny4g0KHQstC10YLQu9GL0Lkg0LjQvdC00LjQs9C+INGBINGC0ZHQvNC90YvQvCBgLWZnYCDQtNCw0ZHRgiA2LjM4IC8gNS4yMyAvIDYuMzguCiAgICog0J3QtSBpbmRpZ28tNDAwICgjODE4Y2Y4KTog0Y3RgtC+INGA0L7QstC90L4gYC0tZ3ItaW5mb2Ag0YLRkdC80L3QvtC5INGC0LXQvNGLLCDQuCBzb2xpZC3QsdC10LnQtNC20LgKICAgKiBQcmltYXJ5INC4IEluZm8g0YHRgtCw0LvQuCDQsdGLINC90LXQvtGC0LvQuNGH0LjQvNGLLgogICAqINCa0L3QvtC/0L7QuiDQvdC1INC60LDRgdCw0LXRgtGB0Y86IEdyQnV0dG9uINC30LDQtNCw0ZHRgiDRgdCy0L7QuSBgLS1nci1idXR0b24tcHJpbWFyeS1iZ2AuCiAgICovCiAgLS1nci1wcmltYXJ5OiAjOWQ4YmZhOwogIC0tZ3ItcHJpbWFyeS1mZzogIzBmMTcyYTsKICAtLWdyLWFjY2VudDogIzFlMWI0YjsKICAtLWdyLWFjY2VudC1mZzogI2M3ZDJmZTsKICAtLWdyLWRlc3RydWN0aXZlOiAjZWY0NDQ0OwogIC0tZ3ItZGVzdHJ1Y3RpdmUtZmc6ICNmZmZmZmY7CgogIC8qIFN0YXR1cyByb2xlcyAqLwogIC0tZ3Itc3VjY2VzczogIzM0ZDM5OTsKICAtLWdyLXN1Y2Nlc3MtbGlnaHQ6ICMwNjRlM2I7CiAgLS1nci1zdWNjZXNzLWZnOiAjMGYxNzJhOwogIC0tZ3Itc3VjY2Vzcy10ZXh0OiAjNmVlN2I3OwogIC0tZ3Itd2FybmluZzogI2ZiOTIzYzsKICAtLWdyLXdhcm5pbmctbGlnaHQ6ICM3YzJkMTI7CiAgLS1nci13YXJuaW5nLWZnOiAjMGYxNzJhOwogIC0tZ3Itd2FybmluZy10ZXh0OiAjZmRiYTc0OwogIC0tZ3ItZGFuZ2VyOiAjZjg3MTcxOwogIC0tZ3ItZGFuZ2VyLWxpZ2h0OiAjN2YxZDFkOwogIC0tZ3ItZGFuZ2VyLWZnOiAjMGYxNzJhOwogIC0tZ3ItZGFuZ2VyLXRleHQ6ICNmY2E1YTU7CiAgLS1nci1pbmZvOiAjODE4Y2Y4OwogIC0tZ3ItaW5mby1saWdodDogIzMxMmU4MTsKICAtLWdyLWluZm8tZmc6ICMwZjE3MmE7CiAgLS1nci1pbmZvLXRleHQ6ICNjN2QyZmU7CiAgLS1nci1zbGF0ZTogIzk0YTNiODsKICAtLWdyLXNsYXRlLWxpZ2h0OiAjMzM0MTU1OwogIC0tZ3Itc2xhdGUtZmc6ICMwZjE3MmE7CiAgLS1nci1zbGF0ZS10ZXh0OiAjY2JkNWUxOwogIC0tZ3ItYXp1cmU6ICMzOGJkZjg7CiAgLS1nci1henVyZS1saWdodDogIzBjNGE2ZTsKICAtLWdyLWF6dXJlLWZnOiAjMGYxNzJhOwogIC0tZ3ItYXp1cmUtdGV4dDogI2JhZTZmZDsKCiAgLyogRGF0YSB2aXN1YWxpemF0aW9uIHJvbGVzICovCiAgLS1nci1jaGFydC0xOiAjNjM2NmYxOwogIC0tZ3ItY2hhcnQtMjogIzM0ZDM5OTsKICAtLWdyLWNoYXJ0LTM6ICNmYjkyM2M7CiAgLS1nci1jaGFydC00OiAjODE4Y2Y4OwogIC0tZ3ItY2hhcnQtNTogI2E3OGJmYTsKCiAgLyogTmF2aWdhdGlvbiByb2xlcyAqLwogIC0tZ3Itc2lkZWJhcjogIzFlMjkzYjsKICAtLWdyLXNpZGViYXItZmc6ICNmOGZhZmM7CiAgLS1nci1zaWRlYmFyLXByaW1hcnk6ICM2MzY2ZjE7CiAgLS1nci1zaWRlYmFyLXByaW1hcnktZmc6ICNmZmZmZmY7CiAgLS1nci1zaWRlYmFyLWFjY2VudDogIzMzNDE1NTsKICAtLWdyLXNpZGViYXItYWNjZW50LWZnOiAjZjFmNWY5OwogIC0tZ3Itc2lkZWJhci1icmQ6ICMzMzQxNTU7CiAgLS1nci1zaWRlYmFyLXJpbmc6ICM4MThjZjg7Cn0KCkBzdXBwb3J0cyBub3QgKGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgIzAwMCA1MCUsICNmZmYpKSB7CiAgLnRoZW1lLWRhcmssCiAgLmRhcmssCiAgW2RhdGEtdGhlbWU9J2RhcmsnXSB7CiAgICAvKiBBY3Rpb24gcm9sZSBmYWxsYmFja3MgKi8KICAgIC0tZ3ItcHJpbWFyeS1ob3ZlcjogI2E0OTRmYTsKICAgIC0tZ3ItcHJpbWFyeS1hY3RpdmU6ICNhYzlkZmE7CiAgICAtLWdyLXNlY29uZGFyeS1ob3ZlcjogIzQzNTA2MjsKICAgIC0tZ3Itc2Vjb25kYXJ5LWFjdGl2ZTogIzUzNWY3MDsKICAgIC0tZ3ItYnJkLWhvdmVyOiAjNmU3OTg3OwogICAgLS1nci1icmQtYWN0aXZlOiAjOGM5NGEwOwogICAgLS1nci1kZXN0cnVjdGl2ZS1ob3ZlcjogI2YwNTM1MzsKICAgIC0tZ3ItZGVzdHJ1Y3RpdmUtYWN0aXZlOiAjZjA2MTYxOwoKICAgIC8qIFN0YXR1cyByb2xlIGZhbGxiYWNrcyAqLwogICAgLS1nci1zdWNjZXNzLWhvdmVyOiAjNDRkNmExOwogICAgLS1nci1zdWNjZXNzLWFjdGl2ZTogIzUzZDlhOTsKICAgIC0tZ3Itd2FybmluZy1ob3ZlcjogI2ZiOWE0YjsKICAgIC0tZ3Itd2FybmluZy1hY3RpdmU6ICNmYmEzNWI7CiAgICAtLWdyLWRhbmdlci1ob3ZlcjogI2Y4N2M3YzsKICAgIC0tZ3ItZGFuZ2VyLWFjdGl2ZTogI2Y4ODc4NzsKICAgIC0tZ3ItaW5mby1ob3ZlcjogIzhiOTVmODsKICAgIC0tZ3ItaW5mby1hY3RpdmU6ICM5NDllZjk7CiAgICAtLWdyLXNsYXRlLWhvdmVyOiAjOWZhZWMwOwogICAgLS1nci1zbGF0ZS1hY3RpdmU6ICNhYWI3Yzg7CiAgICAtLWdyLWF6dXJlLWhvdmVyOiAjNGJjM2Y5OwogICAgLS1nci1henVyZS1hY3RpdmU6ICM1ZGNiZjk7CgogICAgLyogQ29tcG9uZW50IHNlbWFudGljIGZhbGxiYWNrcyAqLwogICAgLyotLWdyLWNhdGVnb3J5LXRyZWUtYnJhbmNoLWxpbmUtYWN0aXZlLWNvbG9yOiAjNTA1YjhjOyovCiAgfQp9Cg==", "" + import.meta.url).href
88
+ },
89
+ defaultThemes: granularityDefaultThemes
90
+ };
91
+ /**
92
+ * Полный реестр публичных компонентов пакета `@feugene/granularity`.
93
+ *
94
+ * Ключи — имена компонентов (совпадают с публичным subpath‑экспортом
95
+ * `@feugene/granularity/components/<Name>`). Значения — browser‑safe
96
+ * `ds<Name>Config` из `./config.ts` рядом с SFC.
97
+ *
98
+ * Для компонентов, у которых есть node-only вариант конфига
99
+ * (например, `GrButton` с `tokenDefinitionsFromCssSync`), browser‑конфиг
100
+ * остаётся здесь, а node‑вариант подставляется снаружи через
101
+ * `createGranularityProvider(overrides)` — см. `./index.ts` (browser)
102
+ * и `./node.ts` (node).
103
+ */
104
+ var granularityComponentConfigs = {
105
+ GrAlert: grAlertConfig,
106
+ GrAutocomplete: grAutocompleteConfig,
107
+ GrAvatar: grAvatarConfig,
108
+ GrBadge: grBadgeConfig,
109
+ GrBadgeWrap: grBadgeWrapConfig,
110
+ GrBottomNav: grBottomNavConfig,
111
+ GrButton: grButtonConfig,
112
+ GrButtonGroup: grButtonGroupConfig,
113
+ GrCard: grCardConfig,
114
+ GrCheckbox: grCheckboxConfig,
115
+ GrCollapse: grCollapseConfig,
116
+ GrCommandPalette: grCommandPaletteConfig,
117
+ GrConfigProvider: grConfigProviderConfig,
118
+ GrConfirmDialog: grConfirmDialogConfig,
119
+ GrDataTable: grDataTableConfig,
120
+ GrDialog: grDialogConfig,
121
+ GrDialogService: grDialogServiceConfig,
122
+ GrDivider: grDividerConfig,
123
+ GrDrawer: grDrawerConfig,
124
+ GrDropdown: grDropdownConfig,
125
+ GrDropdownMenu: grDropdownMenuConfig,
126
+ GrEmptyState: grEmptyStateConfig,
127
+ GrFileUpload: grFileUploadConfig,
128
+ GrForm: grFormConfig,
129
+ GrFormField: grFormFieldConfig,
130
+ GrFormFile: grFormFileConfig,
131
+ GrFormSection: grFormSectionConfig,
132
+ GrIcon: grIconConfig,
133
+ GrImageViewer: grImageViewerConfig,
134
+ GrInput: grInputConfig,
135
+ GrInputTag: grInputTagConfig,
136
+ GrKbd: grKbdConfig,
137
+ GrLink: grLinkConfig,
138
+ GrList: grListConfig,
139
+ GrLoading: grLoadingConfig,
140
+ GrModal: grModalConfig,
141
+ GrNavbar: grNavbarConfig,
142
+ GrNumberInput: grNumberInputConfig,
143
+ GrPagination: grPaginationConfig,
144
+ GrProgressBar: grProgressBarConfig,
145
+ GrPromptDialog: grPromptDialogConfig,
146
+ GrRadio: grRadioConfig,
147
+ GrRadioGroup: grRadioGroupConfig,
148
+ GrRating: grRatingConfig,
149
+ GrResponseErrorBanner: grResponseErrorBannerConfig,
150
+ GrSegmented: grSegmentedConfig,
151
+ GrSelect: grSelectConfig,
152
+ GrSidebar: grSidebarConfig,
153
+ GrSkeleton: grSkeletonConfig,
154
+ GrSlider: grSliderConfig,
155
+ GrStatistic: grStatisticConfig,
156
+ GrSwitch: grSwitchConfig,
157
+ GrTable: grTableConfig,
158
+ GrTabPanels: grTabPanelsConfig,
159
+ GrTabs: grTabsConfig,
160
+ GrTextarea: grTextareaConfig,
161
+ GrToaster: grToasterConfig,
162
+ GrTooltip: grTooltipConfig,
163
+ GrTree: grTreeConfig,
164
+ GrTreeSelect: grTreeSelectConfig
165
+ };
166
+ /** Базовый (browser-safe) набор компонентов в порядке реестра. */
167
+ var baseComponents = Object.values(granularityComponentConfigs);
168
+ /**
169
+ * Собирает granular-provider пакета `@feugene/granularity`.
170
+ *
171
+ * Принимает массив `GranularComponentDescriptor`'ов — это компоненты,
172
+ * у которых есть node-only вариант конфига (например, `GrButton` с
173
+ * `tokenDefinitionsFromCssSync`). Дескрипторы с именем, которое уже
174
+ * присутствует в базовом наборе, переопределяют его (побеждает
175
+ * переданный снаружи), остальные — добавляются в конец списка.
176
+ */
177
+ function createGranularityProvider(overrides = []) {
178
+ const overrideByName = new Map(overrides.map((component) => [component.name, component]));
179
+ return defineGranularProvider({
180
+ id: GRANULARITY_PROVIDER_ID,
181
+ contractVersion: 1,
182
+ packageBaseUrl,
183
+ components: [...baseComponents.map((component) => overrideByName.get(component.name) ?? component), ...overrides.filter((component) => !baseComponents.some((base) => base.name === component.name))],
184
+ theme
185
+ });
186
+ }
187
+ //#endregion
188
+ export { granularityThemeNames as a, granularityDefaultThemes as i, createGranularityProvider as n, granularityComponentConfigs as r, GRANULARITY_PROVIDER_ID as t };