@feugene/granularity 0.10.0 → 0.11.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 (442) hide show
  1. package/README.md +44 -45
  2. package/dist/GrButtonGroup.css +1 -1
  3. package/dist/GrFormFile.css +1 -1
  4. package/dist/GrIcon.css +1 -1
  5. package/dist/GrLoading.css +1 -1
  6. package/dist/GrSkeleton.css +1 -1
  7. package/dist/GrToaster.css +1 -0
  8. package/dist/GrTree.css +1 -1
  9. package/dist/chunks/{adapter-BqqjEZGU.js.map → adapter-CAOxmn2G.js.map} +1 -1
  10. package/dist/chunks/arrow-up-C_G4jg8M.js.map +1 -0
  11. package/dist/chunks/{classTokens-BPeBXNzu.js.map → classTokens-BzazaERD.js.map} +1 -1
  12. package/dist/chunks/{config-A-iei0Ux.js → config-1uSYl98Y.js} +5 -5
  13. package/dist/chunks/{config-A-iei0Ux.js.map → config-1uSYl98Y.js.map} +1 -1
  14. package/dist/chunks/{config-DZrlovR42.js.map → config-8Pcutu1j2.js.map} +1 -1
  15. package/dist/chunks/{config-VJuoznpH.js.map → config-B0qIpo8m.js.map} +1 -1
  16. package/dist/chunks/{config-C8MM2Dg0.js → config-B7IIWGt_2.js} +3 -3
  17. package/dist/chunks/config-B7IIWGt_2.js.map +1 -0
  18. package/dist/chunks/{config-DbghHyY_.js.map → config-BEegFP74.js.map} +1 -1
  19. package/dist/chunks/{config-D_Pafsjq2.js → config-BIRO0vDJ2.js} +6 -6
  20. package/dist/chunks/{config-D_Pafsjq2.js.map → config-BIRO0vDJ2.js.map} +1 -1
  21. package/dist/chunks/{config-BeBsN0c12.js.map → config-BLHqZhy-2.js.map} +1 -1
  22. package/dist/chunks/{config-BV4vBzdm.js.map → config-BNu8lFQB.js.map} +1 -1
  23. package/dist/chunks/config-BOlr7qw7.js +106 -0
  24. package/dist/chunks/config-BOlr7qw7.js.map +1 -0
  25. package/dist/chunks/{config-DhQc1TRY.js.map → config-BUHuGBik.js.map} +1 -1
  26. package/dist/chunks/{config-CPSdAjUi.js.map → config-BWGGp7uV.js.map} +1 -1
  27. package/dist/chunks/config-BX1JTrkV2.js +14 -0
  28. package/dist/chunks/config-BX1JTrkV2.js.map +1 -0
  29. package/dist/chunks/{config-BduXEXjt.js.map → config-BXtAmU3s.js.map} +1 -1
  30. package/dist/chunks/{config-CzgNEHKi.js.map → config-Bah4oHwL.js.map} +1 -1
  31. package/dist/chunks/{config-C_egzT_K.js → config-C49QUoJL.js} +3 -3
  32. package/dist/chunks/{config-C_egzT_K.js.map → config-C49QUoJL.js.map} +1 -1
  33. package/dist/chunks/{config-3I3vqDW4.js → config-C4snOIXg.js} +1 -1
  34. package/dist/chunks/{config-3I3vqDW4.js.map → config-C4snOIXg.js.map} +1 -1
  35. package/dist/chunks/{config-DvDNney3.js → config-C7NpDrfO.js} +5 -5
  36. package/dist/chunks/{config-DvDNney3.js.map → config-C7NpDrfO.js.map} +1 -1
  37. package/dist/chunks/{config-lMDE_8A5.js.map → config-C86UzUYf.js.map} +1 -1
  38. package/dist/chunks/{config-BgBWt9-A.js.map → config-C9AcVDkv.js.map} +1 -1
  39. package/dist/chunks/{config-BuoIngj32.js.map → config-CGHLoBlH2.js.map} +1 -1
  40. package/dist/chunks/{config-ChQxl75m.js.map → config-CThzliFi.js.map} +1 -1
  41. package/dist/chunks/{config-DDwBSoc_.js.map → config-Cb2PAlSD.js.map} +1 -1
  42. package/dist/chunks/{config-XspHtPsU.js → config-ClhKPJvg.js} +5 -5
  43. package/dist/chunks/{config-XspHtPsU.js.map → config-ClhKPJvg.js.map} +1 -1
  44. package/dist/chunks/{config-58Mj2rGH.js → config-Cpi9Mh2J.js} +3 -3
  45. package/dist/chunks/{config-58Mj2rGH.js.map → config-Cpi9Mh2J.js.map} +1 -1
  46. package/dist/chunks/{config-nrOj9p6I.js → config-CrG1XiE7.js} +4 -4
  47. package/dist/chunks/{config-nrOj9p6I.js.map → config-CrG1XiE7.js.map} +1 -1
  48. package/dist/chunks/{config-DRpkoSvq.js → config-CziwTDDL.js} +3 -3
  49. package/dist/chunks/{config-DRpkoSvq.js.map → config-CziwTDDL.js.map} +1 -1
  50. package/dist/chunks/{config-C5-ujXCI.js.map → config-D7GZO-Dx.js.map} +1 -1
  51. package/dist/chunks/{config-CUwF4E4R.js.map → config-DBmdgoVf.js.map} +1 -1
  52. package/dist/chunks/{config-C9MblwGq.js.map → config-DICOd-2X.js.map} +1 -1
  53. package/dist/chunks/{config-C6zT56Jc2.js → config-DUcu1D68.js} +3 -3
  54. package/dist/chunks/config-DUcu1D68.js.map +1 -0
  55. package/dist/chunks/{config-8f8624RN.js → config-D_R56_gT.js} +5 -5
  56. package/dist/chunks/{config-8f8624RN.js.map → config-D_R56_gT.js.map} +1 -1
  57. package/dist/chunks/{config-RjfJFv1Y.js → config-DezDih8_.js} +4 -4
  58. package/dist/chunks/config-DezDih8_.js.map +1 -0
  59. package/dist/chunks/{config-B0uUCaJW.js → config-DnvPqu4g.js} +3 -3
  60. package/dist/chunks/{config-B0uUCaJW.js.map → config-DnvPqu4g.js.map} +1 -1
  61. package/dist/chunks/{config-BLa1TEGm2.js.map → config-DpqOnJiz2.js.map} +1 -1
  62. package/dist/chunks/{config-V3LF-b_F.js.map → config-Dxuwwepq.js.map} +1 -1
  63. package/dist/chunks/{config-Doa_gU40.js.map → config-HZto2PVy.js.map} +1 -1
  64. package/dist/chunks/{config-Dl5aZ5VR.js.map → config-JOtB4mzs.js.map} +1 -1
  65. package/dist/chunks/{config-CWTfyPNI.js.map → config-JpHA4Xx0.js.map} +1 -1
  66. package/dist/chunks/{config-DkeLkzxj2.js → config-LGrZIdaZ2.js} +1 -1
  67. package/dist/chunks/{config-DkeLkzxj2.js.map → config-LGrZIdaZ2.js.map} +1 -1
  68. package/dist/chunks/{config-B3dn-gdC.js.map → config-PFg39mYo.js.map} +1 -1
  69. package/dist/chunks/{config-CU_CBd0k.js → config-QYGvEBu5.js} +2 -2
  70. package/dist/chunks/{config-CU_CBd0k.js.map → config-QYGvEBu5.js.map} +1 -1
  71. package/dist/chunks/{config-Bh4NWWsQ.js.map → config-QaIc_gRa.js.map} +1 -1
  72. package/dist/chunks/{config-vcDVCYXo.js.map → config-U4m9PSql.js.map} +1 -1
  73. package/dist/chunks/{config-C_q_4FrU.js.map → config-ZiXWIRBX.js.map} +1 -1
  74. package/dist/chunks/{config-hSlCXHoG.js → config-eYLZYOUS2.js} +63 -63
  75. package/dist/chunks/config-eYLZYOUS2.js.map +1 -0
  76. package/dist/chunks/{config-DDUPnue12.js.map → config-ipvU0lzP2.js.map} +1 -1
  77. package/dist/chunks/{config-B61cX08u.js → config-jBp9wVv-.js} +4 -4
  78. package/dist/chunks/{config-B61cX08u.js.map → config-jBp9wVv-.js.map} +1 -1
  79. package/dist/chunks/{config-D5ek7VSi.js.map → config-xR4XVmcy.js.map} +1 -1
  80. package/dist/chunks/{dialogShared-BtXUk6Zc.js.map → dialogShared-CxW62PQE.js.map} +1 -1
  81. package/dist/chunks/en-BdtiS2d3.js +138 -0
  82. package/dist/chunks/en-BdtiS2d3.js.map +1 -0
  83. package/dist/chunks/es-BGRMZbe9.js +138 -0
  84. package/dist/chunks/es-BGRMZbe9.js.map +1 -0
  85. package/dist/chunks/{es-CISK11Nv.js → es-DBhctWg-.js} +3 -3
  86. package/dist/chunks/{es-CISK11Nv.js.map → es-DBhctWg-.js.map} +1 -1
  87. package/dist/chunks/{fileValidation-c_iBg74s.js → fileValidation-C3WFaWU2.js} +2 -1
  88. package/dist/chunks/{fileValidation-c_iBg74s.js.map → fileValidation-C3WFaWU2.js.map} +1 -1
  89. package/dist/chunks/{grBadgeStyles-Cq0hH2Ls.js → grBadgeStyles-DrycBuKT.js} +13 -13
  90. package/dist/chunks/grBadgeStyles-DrycBuKT.js.map +1 -0
  91. package/dist/chunks/grButtonStyles-C7Yga_Q1.js +191 -0
  92. package/dist/chunks/grButtonStyles-C7Yga_Q1.js.map +1 -0
  93. package/dist/chunks/{grDropdownStyles-Bqx9hOzU.js → grDropdownStyles-B_-DKytw.js} +2 -2
  94. package/dist/chunks/{grDropdownStyles-Bqx9hOzU.js.map → grDropdownStyles-B_-DKytw.js.map} +1 -1
  95. package/dist/chunks/{grLoadingStyles-DmI-SJ3i.js.map → grLoadingStyles-R5sreH__.js.map} +1 -1
  96. package/dist/chunks/{grModalStyles-FgaKqx50.js → grModalStyles-DWd3i05Q.js} +6 -6
  97. package/dist/chunks/{grModalStyles-FgaKqx50.js.map → grModalStyles-DWd3i05Q.js.map} +1 -1
  98. package/dist/chunks/{grSelectStyles-AjWWl007.js → grSelectStyles-CLK5hRd3.js} +3 -3
  99. package/dist/chunks/grSelectStyles-CLK5hRd3.js.map +1 -0
  100. package/dist/chunks/{grStyle-D-gPHdyW.js → grStyle-Blc9otAx.js} +6 -6
  101. package/dist/chunks/grStyle-Blc9otAx.js.map +1 -0
  102. package/dist/chunks/{granularityI18n-D_7jowK2.js → granularityI18n-DoV7Ca2m.js} +1 -1
  103. package/dist/chunks/{granularityI18n-D_7jowK2.js.map → granularityI18n-DoV7Ca2m.js.map} +1 -1
  104. package/dist/chunks/info-Be2OccTu.js.map +1 -0
  105. package/dist/chunks/loader-circle-CfVLz7lb.js.map +1 -0
  106. package/dist/chunks/ru-BFCnOiML.js +138 -0
  107. package/dist/chunks/ru-BFCnOiML.js.map +1 -0
  108. package/dist/chunks/{safelist-_UVzJrgE2.js → safelist-CkF4v7DC.js} +3 -3
  109. package/dist/chunks/safelist-CkF4v7DC.js.map +1 -0
  110. package/dist/chunks/{safelist-DccvJqCE.js → safelist-Do2RtzLB.js} +3 -3
  111. package/dist/chunks/{safelist-DccvJqCE.js.map → safelist-Do2RtzLB.js.map} +1 -1
  112. package/dist/chunks/shared-ChvcQgDl.js +168 -0
  113. package/dist/chunks/shared-ChvcQgDl.js.map +1 -0
  114. package/dist/chunks/{transition-mJ3PZCHH.js → transition-TLFw4KBn.js} +26 -12
  115. package/dist/chunks/{transition-mJ3PZCHH.js.map → transition-TLFw4KBn.js.map} +1 -1
  116. package/dist/chunks/useAddonMeasurement-DM0akF4C.js +65 -0
  117. package/dist/chunks/useAddonMeasurement-DM0akF4C.js.map +1 -0
  118. package/dist/chunks/useEscapeToClose-C2t_S1gh.js +27 -0
  119. package/dist/chunks/useEscapeToClose-C2t_S1gh.js.map +1 -0
  120. package/dist/chunks/{useFloating-CLtbU7eD.js → useFloating-DtM6TyE4.js} +19 -4
  121. package/dist/chunks/{useFloating-CLtbU7eD.js.map → useFloating-DtM6TyE4.js.map} +1 -1
  122. package/dist/chunks/x-2KXnqxiD.js.map +1 -0
  123. package/dist/chunks/x-circle-BCBURwyX.js.map +1 -0
  124. package/dist/components/GrAlert/chunks/{GrAlert-HyCjYJeL.js → GrAlert-DPJSU_fG.js} +40 -37
  125. package/dist/components/GrAlert/chunks/GrAlert-DPJSU_fG.js.map +1 -0
  126. package/dist/components/GrAlert/index.js +2 -2
  127. package/dist/components/GrAvatar/chunks/{GrAvatar-BjnPKNAL.js → GrAvatar-96CpTCq5.js} +2 -2
  128. package/dist/components/GrAvatar/chunks/{GrAvatar-BjnPKNAL.js.map → GrAvatar-96CpTCq5.js.map} +1 -1
  129. package/dist/components/GrAvatar/index.js +2 -2
  130. package/dist/components/GrBadge/chunks/{GrBadge-Cs_cVfuO.js → GrBadge-B77XlaqE.js} +3 -3
  131. package/dist/components/GrBadge/chunks/{GrBadge-Cs_cVfuO.js.map → GrBadge-B77XlaqE.js.map} +1 -1
  132. package/dist/components/GrBadge/index.js +2 -2
  133. package/dist/components/GrBadgeWrap/chunks/{GrBadgeWrap-BEnE9DyJ.js → GrBadgeWrap-CcktMOdg.js} +2 -2
  134. package/dist/components/GrBadgeWrap/chunks/{GrBadgeWrap-BEnE9DyJ.js.map → GrBadgeWrap-CcktMOdg.js.map} +1 -1
  135. package/dist/components/GrBadgeWrap/index.js +2 -2
  136. package/dist/components/GrBottomNav/chunks/{GrBottomNav-XPHwd7UQ.js.map → GrBottomNav-usuMgG8_.js.map} +1 -1
  137. package/dist/components/GrBottomNav/index.js +2 -2
  138. package/dist/components/GrButton/chunks/GrButton-BlffdeJr.js +124 -0
  139. package/dist/components/GrButton/chunks/GrButton-BlffdeJr.js.map +1 -0
  140. package/dist/components/GrButton/index.js +4 -4
  141. package/dist/components/GrButtonGroup/chunks/{GrButtonGroup-CPOH6V-P.js → GrButtonGroup-Bs9dEKfA.js} +1 -1
  142. package/dist/components/GrButtonGroup/chunks/GrButtonGroup-Bs9dEKfA.js.map +1 -0
  143. package/dist/components/GrButtonGroup/index.js +2 -2
  144. package/dist/components/GrCard/chunks/{GrCard-6yk1RRAQ.js → GrCard-DUNMkuHW.js} +3 -3
  145. package/dist/components/GrCard/chunks/GrCard-DUNMkuHW.js.map +1 -0
  146. package/dist/components/GrCard/index.js +2 -2
  147. package/dist/components/GrCheckbox/chunks/{GrCheckbox-Bt3d7ckE.js → GrCheckbox-DJhzZZdO.js} +66 -18
  148. package/dist/components/GrCheckbox/chunks/GrCheckbox-DJhzZZdO.js.map +1 -0
  149. package/dist/components/GrCheckbox/index.js +2 -2
  150. package/dist/components/GrCollapse/chunks/{GrCollapse-CU94BTAR.js → GrCollapse-CPPLh_xU.js} +12 -12
  151. package/dist/components/GrCollapse/chunks/{GrCollapse-CU94BTAR.js.map → GrCollapse-CPPLh_xU.js.map} +1 -1
  152. package/dist/components/GrCollapse/index.js +2 -2
  153. package/dist/components/GrConfirmDialog/chunks/{GrConfirmDialog-Bi2KLumL.js → GrConfirmDialog-BWYKCsHd.js} +20 -14
  154. package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-BWYKCsHd.js.map +1 -0
  155. package/dist/components/GrConfirmDialog/index.js +2 -2
  156. package/dist/components/GrDataTable/chunks/{GrDataTable-ClcYiyc8.js → GrDataTable-ptbARmJ3.js} +7 -7
  157. package/dist/components/GrDataTable/chunks/{GrDataTable-ClcYiyc8.js.map → GrDataTable-ptbARmJ3.js.map} +1 -1
  158. package/dist/components/GrDataTable/index.js +2 -2
  159. package/dist/components/GrDialog/chunks/{GrDialog-CxK4Lj4F.js → GrDialog-5DAS-1Lb.js} +14 -12
  160. package/dist/components/GrDialog/chunks/GrDialog-5DAS-1Lb.js.map +1 -0
  161. package/dist/components/GrDialog/index.js +3 -3
  162. package/dist/components/GrDialogService/chunks/GrDialogService-DY_fmaMu.js +425 -0
  163. package/dist/components/GrDialogService/chunks/GrDialogService-DY_fmaMu.js.map +1 -0
  164. package/dist/components/GrDialogService/index.js +3 -0
  165. package/dist/components/GrDrawer/chunks/{GrDrawer-BW3wtI7h.js → GrDrawer-D1kzsjXN.js} +19 -15
  166. package/dist/components/GrDrawer/chunks/GrDrawer-D1kzsjXN.js.map +1 -0
  167. package/dist/components/GrDrawer/index.js +2 -2
  168. package/dist/components/GrDropdown/chunks/{GrDropdown-BGKeEfZ1.js → GrDropdown-BXb5Cxxf.js} +9 -19
  169. package/dist/components/GrDropdown/chunks/GrDropdown-BXb5Cxxf.js.map +1 -0
  170. package/dist/components/GrDropdown/index.js +2 -2
  171. package/dist/components/GrDropdownMenu/chunks/{GrDropdownMenu-CJom_-c2.js → GrDropdownMenu-DFEJLPcV.js} +10 -10
  172. package/dist/components/GrDropdownMenu/chunks/{GrDropdownMenu-CJom_-c2.js.map → GrDropdownMenu-DFEJLPcV.js.map} +1 -1
  173. package/dist/components/GrDropdownMenu/index.js +2 -2
  174. package/dist/components/GrEmptyState/chunks/{GrEmptyState-yOuZW7-t.js → GrEmptyState-CA3BiTV7.js} +3 -3
  175. package/dist/components/GrEmptyState/chunks/{GrEmptyState-yOuZW7-t.js.map → GrEmptyState-CA3BiTV7.js.map} +1 -1
  176. package/dist/components/GrEmptyState/index.js +2 -2
  177. package/dist/components/GrFileUpload/chunks/{GrFileUpload-CBKK3dgC.js → GrFileUpload-DvWPpiJS.js} +26 -23
  178. package/dist/components/GrFileUpload/chunks/GrFileUpload-DvWPpiJS.js.map +1 -0
  179. package/dist/components/GrFileUpload/index.js +3 -3
  180. package/dist/components/GrFormField/chunks/{GrFormField-U7c_aDPJ.js → GrFormField-BujNQrw8.js} +1 -1
  181. package/dist/components/GrFormField/chunks/{GrFormField-U7c_aDPJ.js.map → GrFormField-BujNQrw8.js.map} +1 -1
  182. package/dist/components/GrFormField/index.js +2 -2
  183. package/dist/components/GrFormFile/chunks/{GrFormFile-CkR6cYqf.js → GrFormFile-CXcqqdvV.js} +38 -31
  184. package/dist/components/GrFormFile/chunks/GrFormFile-CXcqqdvV.js.map +1 -0
  185. package/dist/components/GrFormFile/index.js +2 -2
  186. package/dist/components/GrFormSection/chunks/{GrFormSection-dbyzqxYk.js → GrFormSection-Ce21jcgo.js} +1 -1
  187. package/dist/components/GrFormSection/chunks/{GrFormSection-dbyzqxYk.js.map → GrFormSection-Ce21jcgo.js.map} +1 -1
  188. package/dist/components/GrFormSection/index.js +2 -2
  189. package/dist/components/GrIcon/chunks/{GrIcon-BV7RBU_0.js → GrIcon-D9AWQLk2.js} +3 -3
  190. package/dist/components/GrIcon/chunks/{GrIcon-BV7RBU_0.js.map → GrIcon-D9AWQLk2.js.map} +1 -1
  191. package/dist/components/GrIcon/index.js +2 -2
  192. package/dist/components/GrImageViewer/chunks/{GrImageViewer-BG40DsHa.js → GrImageViewer-OCUIrNh2.js} +44 -33
  193. package/dist/components/GrImageViewer/chunks/GrImageViewer-OCUIrNh2.js.map +1 -0
  194. package/dist/components/GrImageViewer/index.js +2 -2
  195. package/dist/components/GrInput/chunks/{GrInput-gwFQ1sk4.js → GrInput-C8pOJgCi.js} +43 -66
  196. package/dist/components/GrInput/chunks/GrInput-C8pOJgCi.js.map +1 -0
  197. package/dist/components/GrInput/index.js +2 -2
  198. package/dist/components/GrInputTag/chunks/{GrInputTag-g-KdUI_Z.js → GrInputTag-zMgFqp2g.js} +27 -24
  199. package/dist/components/GrInputTag/chunks/GrInputTag-zMgFqp2g.js.map +1 -0
  200. package/dist/components/GrInputTag/index.js +2 -2
  201. package/dist/components/GrLink/chunks/{GrLink-KSTmk9Yq.js → GrLink-CYUe-Q8k.js} +14 -7
  202. package/dist/components/GrLink/chunks/GrLink-CYUe-Q8k.js.map +1 -0
  203. package/dist/components/GrLink/index.js +2 -2
  204. package/dist/components/GrList/chunks/{GrList-CUW2sRm_.js → GrList-Dx772Ns4.js} +1 -1
  205. package/dist/components/GrList/chunks/{GrList-CUW2sRm_.js.map → GrList-Dx772Ns4.js.map} +1 -1
  206. package/dist/components/GrList/index.js +2 -2
  207. package/dist/components/GrLoading/chunks/{GrLoading-mfyfghxs.js → GrLoading--X_7rdbb.js} +7 -7
  208. package/dist/components/GrLoading/chunks/{GrLoading-mfyfghxs.js.map → GrLoading--X_7rdbb.js.map} +1 -1
  209. package/dist/components/GrLoading/index.js +2 -2
  210. package/dist/components/GrModal/chunks/{GrModal-CSOL3fHQ.js → GrModal-BkjW9jZS.js} +7 -7
  211. package/dist/components/GrModal/chunks/{GrModal-CSOL3fHQ.js.map → GrModal-BkjW9jZS.js.map} +1 -1
  212. package/dist/components/GrModal/index.js +3 -3
  213. package/dist/components/GrNavbar/chunks/{GrNavbar-CHxwtFIR.js → GrNavbar-DW3MiIIf.js} +6 -6
  214. package/dist/components/GrNavbar/chunks/{GrNavbar-CHxwtFIR.js.map → GrNavbar-DW3MiIIf.js.map} +1 -1
  215. package/dist/components/GrNavbar/index.js +2 -2
  216. package/dist/components/GrNumberInput/chunks/{GrNumberInput-ClPBwkxx.js → GrNumberInput-CldPIWQx.js} +51 -61
  217. package/dist/components/GrNumberInput/chunks/GrNumberInput-CldPIWQx.js.map +1 -0
  218. package/dist/components/GrNumberInput/index.js +2 -2
  219. package/dist/components/GrPagination/chunks/{GrPagination-D2GS0ShQ.js → GrPagination-Bu9wv6it.js} +76 -25
  220. package/dist/components/GrPagination/chunks/GrPagination-Bu9wv6it.js.map +1 -0
  221. package/dist/components/GrPagination/index.js +2 -2
  222. package/dist/components/GrProgressBar/chunks/{GrProgressBar-BBSFpVEq.js → GrProgressBar-CC3z-Zqp.js} +3 -3
  223. package/dist/components/GrProgressBar/chunks/{GrProgressBar-BBSFpVEq.js.map → GrProgressBar-CC3z-Zqp.js.map} +1 -1
  224. package/dist/components/GrProgressBar/index.js +2 -2
  225. package/dist/components/GrPromptDialog/chunks/{GrPromptDialog-D_TFqKsF.js → GrPromptDialog-TmWXbpEP.js} +31 -23
  226. package/dist/components/GrPromptDialog/chunks/GrPromptDialog-TmWXbpEP.js.map +1 -0
  227. package/dist/components/GrPromptDialog/index.js +2 -2
  228. package/dist/components/GrRadio/chunks/{GrRadio-CSbTnrom.js → GrRadio-CPTixXaY.js} +6 -6
  229. package/dist/components/GrRadio/chunks/{GrRadio-CSbTnrom.js.map → GrRadio-CPTixXaY.js.map} +1 -1
  230. package/dist/components/GrRadio/index.js +2 -2
  231. package/dist/components/GrRadioGroup/chunks/{GrRadioGroup-DsrnTygR.js → GrRadioGroup-vKZCbkCp.js} +3 -3
  232. package/dist/components/GrRadioGroup/chunks/{GrRadioGroup-DsrnTygR.js.map → GrRadioGroup-vKZCbkCp.js.map} +1 -1
  233. package/dist/components/GrRadioGroup/index.js +2 -2
  234. package/dist/components/GrResponseErrorBanner/chunks/{GrResponseErrorBanner-K1uZ1mYD.js → GrResponseErrorBanner-BWJNe2gr.js} +21 -18
  235. package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-BWJNe2gr.js.map +1 -0
  236. package/dist/components/GrResponseErrorBanner/chunks/{GrResponseErrorBanner-bM8FC_Bw.js → GrResponseErrorBanner-Cdu9ekK9.js} +5 -5
  237. package/dist/components/GrResponseErrorBanner/chunks/{GrResponseErrorBanner-bM8FC_Bw.js.map → GrResponseErrorBanner-Cdu9ekK9.js.map} +1 -1
  238. package/dist/components/GrResponseErrorBanner/index.js +2 -2
  239. package/dist/components/GrSegmented/chunks/{GrSegmented-DpZGs4VX.js → GrSegmented-C1y0UXpQ.js} +5 -5
  240. package/dist/components/GrSegmented/chunks/{GrSegmented-DpZGs4VX.js.map → GrSegmented-C1y0UXpQ.js.map} +1 -1
  241. package/dist/components/GrSegmented/index.js +2 -2
  242. package/dist/components/GrSelect/chunks/{GrSelect-DSz7jvUb.js → GrSelect-RShK21lK.js} +84 -64
  243. package/dist/components/GrSelect/chunks/GrSelect-RShK21lK.js.map +1 -0
  244. package/dist/components/GrSelect/index.js +2 -2
  245. package/dist/components/GrSidebar/chunks/GrSidebar-DkWozzwA.js +238 -0
  246. package/dist/components/GrSidebar/chunks/GrSidebar-DkWozzwA.js.map +1 -0
  247. package/dist/components/GrSidebar/index.js +3 -3
  248. package/dist/components/GrSkeleton/chunks/{GrSkeleton-B05K0QKh.js → GrSkeleton-DsN-_CDZ.js} +1 -1
  249. package/dist/components/GrSkeleton/chunks/{GrSkeleton-B05K0QKh.js.map → GrSkeleton-DsN-_CDZ.js.map} +1 -1
  250. package/dist/components/GrSkeleton/index.js +2 -2
  251. package/dist/components/GrSwitch/chunks/{GrSwitch-CSRtcN5-.js → GrSwitch-DAioyccZ.js} +10 -10
  252. package/dist/components/GrSwitch/chunks/{GrSwitch-CSRtcN5-.js.map → GrSwitch-DAioyccZ.js.map} +1 -1
  253. package/dist/components/GrSwitch/index.js +2 -2
  254. package/dist/components/GrTable/chunks/{GrTable-dTWUxzRm.js → GrTable-Db3hRnKA.js} +3 -3
  255. package/dist/components/GrTable/chunks/{GrTable-dTWUxzRm.js.map → GrTable-Db3hRnKA.js.map} +1 -1
  256. package/dist/components/GrTable/index.js +2 -2
  257. package/dist/components/GrTabs/chunks/{GrTabs-BfeVNMFJ.js → GrTabs-Z-FDJUr_.js} +3 -3
  258. package/dist/components/GrTabs/chunks/{GrTabs-BfeVNMFJ.js.map → GrTabs-Z-FDJUr_.js.map} +1 -1
  259. package/dist/components/GrTabs/index.js +2 -2
  260. package/dist/components/GrTextarea/chunks/{GrTextarea-CBBzpF2S.js → GrTextarea-D56YxhKq.js} +3 -3
  261. package/dist/components/GrTextarea/chunks/{GrTextarea-CBBzpF2S.js.map → GrTextarea-D56YxhKq.js.map} +1 -1
  262. package/dist/components/GrTextarea/index.js +2 -2
  263. package/dist/components/GrToaster/chunks/GrToaster-eI8YvnIo.js +189 -0
  264. package/dist/components/GrToaster/chunks/GrToaster-eI8YvnIo.js.map +1 -0
  265. package/dist/components/GrToaster/index.js +2 -2
  266. package/dist/components/GrTooltip/chunks/{GrTooltip-BC-40SA5.js → GrTooltip-BeyZ8ssR.js} +10 -10
  267. package/dist/components/GrTooltip/chunks/{GrTooltip-BC-40SA5.js.map → GrTooltip-BeyZ8ssR.js.map} +1 -1
  268. package/dist/components/GrTooltip/index.js +2 -2
  269. package/dist/components/GrTree/chunks/{GrTree-uZr5SyQI.js → GrTree-D3ODe2dB.js} +40 -35
  270. package/dist/components/GrTree/chunks/GrTree-D3ODe2dB.js.map +1 -0
  271. package/dist/components/GrTree/index.js +2 -2
  272. package/dist/components/GrTreeSelect/chunks/{GrTreeSelect-CytivcCa.js → GrTreeSelect-B2xBKs5Q.js} +16 -16
  273. package/dist/components/GrTreeSelect/chunks/{GrTreeSelect-CytivcCa.js.map → GrTreeSelect-B2xBKs5Q.js.map} +1 -1
  274. package/dist/components/GrTreeSelect/index.js +2 -2
  275. package/dist/composables/useTheme.js +48 -8
  276. package/dist/composables/useTheme.js.map +1 -1
  277. package/dist/composables/useToast.js +88 -26
  278. package/dist/composables/useToast.js.map +1 -1
  279. package/dist/directives/autofocus.js.map +1 -1
  280. package/dist/directives/autosize.js.map +1 -1
  281. package/dist/directives/clickOutside.js.map +1 -1
  282. package/dist/directives/dropzone.js +6 -5
  283. package/dist/directives/dropzone.js.map +1 -1
  284. package/dist/directives/hotkey.js +24 -7
  285. package/dist/directives/hotkey.js.map +1 -1
  286. package/dist/directives/loading.js +2 -2
  287. package/dist/directives/loading.js.map +1 -1
  288. package/dist/fileValidation/index.js +1 -1
  289. package/dist/granular-provider-node.js +7 -7
  290. package/dist/granular-provider-node.js.map +1 -1
  291. package/dist/granular-provider.js +1 -1
  292. package/dist/granular-provider.js.map +1 -1
  293. package/dist/i18n/all.js +1 -1
  294. package/dist/i18n/all.js.map +1 -1
  295. package/dist/i18n/index.js +2 -2
  296. package/dist/index.js +109 -534
  297. package/dist/index.js.map +1 -1
  298. package/dist/styles/base.css +32 -0
  299. package/dist/styles/index.css +15 -0
  300. package/dist/styles/preflight.css +29 -0
  301. package/dist/styles/themes/dark.css +107 -0
  302. package/dist/styles/themes/light.css +98 -0
  303. package/dist/styles/tokens.css +135 -0
  304. package/dist/types/src/components/GrButton/GrButton.vue.d.ts +25 -2
  305. package/dist/types/src/components/GrCheckbox/GrCheckbox.vue.d.ts +7 -2
  306. package/dist/types/src/components/GrConfirmDialog/GrConfirmDialog.vue.d.ts +8 -8
  307. package/dist/types/src/components/GrDataTable/GrDataTable.vue.d.ts +1 -1
  308. package/dist/types/src/components/GrDialog/GrDialog.vue.d.ts +2 -2
  309. package/dist/types/src/components/GrDialog/GrDialogHeader.vue.d.ts +2 -2
  310. package/dist/types/src/components/GrDrawer/GrDrawer.vue.d.ts +2 -2
  311. package/dist/types/src/components/GrFileUpload/GrFileUpload.vue.d.ts +4 -4
  312. package/dist/types/src/components/GrFormFile/GrFormFile.vue.d.ts +11 -11
  313. package/dist/types/src/components/GrImageViewer/GrImageViewer.vue.d.ts +18 -18
  314. package/dist/types/src/components/GrInput/GrInput.vue.d.ts +14 -0
  315. package/dist/types/src/components/GrInput/grInputStyles.d.ts +3 -3
  316. package/dist/types/src/components/GrInputTag/GrInputTag.vue.d.ts +2 -2
  317. package/dist/types/src/components/GrLink/GrLink.vue.d.ts +12 -6
  318. package/dist/types/src/components/GrLink/grLinkStyles.d.ts +31 -3
  319. package/dist/types/src/components/GrLink/index.d.ts +1 -1
  320. package/dist/types/src/components/GrLoading/GrLoading.vue.d.ts +1 -1
  321. package/dist/types/src/components/GrModal/grModalStyles.d.ts +1 -1
  322. package/dist/types/src/components/GrNumberInput/GrNumberInput.vue.d.ts +17 -4
  323. package/dist/types/src/components/GrPagination/GrPagination.vue.d.ts +13 -1
  324. package/dist/types/src/components/GrPromptDialog/GrPromptDialog.vue.d.ts +12 -12
  325. package/dist/types/src/components/GrSegmented/GrSegmented.vue.d.ts +1 -1
  326. package/dist/types/src/components/GrSegmented/grSegmentedStyles.d.ts +5 -5
  327. package/dist/types/src/components/GrSelect/GrSelect.vue.d.ts +1 -1
  328. package/dist/types/src/components/GrSelect/grSelectStyles.d.ts +2 -1
  329. package/dist/types/src/components/GrSidebar/GrSidebar.vue.d.ts +33 -10
  330. package/dist/types/src/components/GrSidebar/GrSidebarItem.vue.d.ts +64 -0
  331. package/dist/types/src/components/GrSidebar/index.d.ts +1 -0
  332. package/dist/types/src/components/GrSidebar/sidebarContext.d.ts +9 -0
  333. package/dist/types/src/components/GrSwitch/GrSwitch.vue.d.ts +1 -1
  334. package/dist/types/src/components/GrSwitch/grSwitchStyles.d.ts +2 -2
  335. package/dist/types/src/components/GrToaster/GrToaster.vue.d.ts +9 -4
  336. package/dist/types/src/components/GrTree/GrTree.vue.d.ts +1 -1
  337. package/dist/types/src/components/GrTreeSelect/GrTreeSelect.vue.d.ts +2 -2
  338. package/dist/types/src/components/GrTreeSelect/grTreeSelectStyles.d.ts +1 -1
  339. package/dist/types/src/components/GrTreeSelect/grTreeSelectTypes.d.ts +1 -1
  340. package/dist/types/src/composables/internal/useAddonMeasurement.d.ts +18 -0
  341. package/dist/types/src/composables/internal/useEscapeToClose.d.ts +11 -0
  342. package/dist/types/src/composables/useTheme.d.ts +5 -2
  343. package/dist/types/src/composables/useToast.d.ts +33 -1
  344. package/dist/types/src/directives/hotkey.d.ts +14 -0
  345. package/dist/types/src/granular-provider/shared.d.ts +1 -3
  346. package/dist/types/src/i18n/messages/en.d.ts +120 -0
  347. package/dist/types/src/i18n/messages/es.d.ts +120 -0
  348. package/dist/types/src/i18n/messages/ru.d.ts +120 -0
  349. package/dist/types/src/index.d.ts +2 -2
  350. package/dist/vue/index.js.map +1 -1
  351. package/dist/web-types.json +4673 -0
  352. package/package.json +26 -20
  353. package/dist/chunks/arrow-up-DZdIrpaF.js.map +0 -1
  354. package/dist/chunks/config-C6zT56Jc2.js.map +0 -1
  355. package/dist/chunks/config-C8MM2Dg0.js.map +0 -1
  356. package/dist/chunks/config-NkbzVFZo.js +0 -59
  357. package/dist/chunks/config-NkbzVFZo.js.map +0 -1
  358. package/dist/chunks/config-RjfJFv1Y.js.map +0 -1
  359. package/dist/chunks/config-hSlCXHoG.js.map +0 -1
  360. package/dist/chunks/en-B_fSdoTi.js +0 -72
  361. package/dist/chunks/en-B_fSdoTi.js.map +0 -1
  362. package/dist/chunks/es-DKP6fLir.js +0 -72
  363. package/dist/chunks/es-DKP6fLir.js.map +0 -1
  364. package/dist/chunks/grBadgeStyles-Cq0hH2Ls.js.map +0 -1
  365. package/dist/chunks/grButtonStyles-DKuXUemw.js +0 -191
  366. package/dist/chunks/grButtonStyles-DKuXUemw.js.map +0 -1
  367. package/dist/chunks/grSelectStyles-AjWWl007.js.map +0 -1
  368. package/dist/chunks/grStyle-D-gPHdyW.js.map +0 -1
  369. package/dist/chunks/info-C0bHmdZq.js.map +0 -1
  370. package/dist/chunks/loader-circle-BUntgosj.js.map +0 -1
  371. package/dist/chunks/ru-S6VlnurJ.js +0 -72
  372. package/dist/chunks/ru-S6VlnurJ.js.map +0 -1
  373. package/dist/chunks/safelist-_UVzJrgE2.js.map +0 -1
  374. package/dist/chunks/shared-DpjTvFno.js +0 -169
  375. package/dist/chunks/shared-DpjTvFno.js.map +0 -1
  376. package/dist/chunks/x-Pa6C2hwi.js.map +0 -1
  377. package/dist/chunks/x-circle-DQSlBLmX.js.map +0 -1
  378. package/dist/components/GrAlert/chunks/GrAlert-HyCjYJeL.js.map +0 -1
  379. package/dist/components/GrButton/chunks/GrButton-CPDKonoB.js +0 -83
  380. package/dist/components/GrButton/chunks/GrButton-CPDKonoB.js.map +0 -1
  381. package/dist/components/GrButtonGroup/chunks/GrButtonGroup-CPOH6V-P.js.map +0 -1
  382. package/dist/components/GrCard/chunks/GrCard-6yk1RRAQ.js.map +0 -1
  383. package/dist/components/GrCheckbox/chunks/GrCheckbox-Bt3d7ckE.js.map +0 -1
  384. package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-Bi2KLumL.js.map +0 -1
  385. package/dist/components/GrDialog/chunks/GrDialog-CxK4Lj4F.js.map +0 -1
  386. package/dist/components/GrDrawer/chunks/GrDrawer-BW3wtI7h.js.map +0 -1
  387. package/dist/components/GrDropdown/chunks/GrDropdown-BGKeEfZ1.js.map +0 -1
  388. package/dist/components/GrFileUpload/chunks/GrFileUpload-CBKK3dgC.js.map +0 -1
  389. package/dist/components/GrFormFile/chunks/GrFormFile-CkR6cYqf.js.map +0 -1
  390. package/dist/components/GrImageViewer/chunks/GrImageViewer-BG40DsHa.js.map +0 -1
  391. package/dist/components/GrInput/chunks/GrInput-gwFQ1sk4.js.map +0 -1
  392. package/dist/components/GrInputTag/chunks/GrInputTag-g-KdUI_Z.js.map +0 -1
  393. package/dist/components/GrLink/chunks/GrLink-KSTmk9Yq.js.map +0 -1
  394. package/dist/components/GrNumberInput/chunks/GrNumberInput-ClPBwkxx.js.map +0 -1
  395. package/dist/components/GrPagination/chunks/GrPagination-D2GS0ShQ.js.map +0 -1
  396. package/dist/components/GrPromptDialog/chunks/GrPromptDialog-D_TFqKsF.js.map +0 -1
  397. package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-K1uZ1mYD.js.map +0 -1
  398. package/dist/components/GrSelect/chunks/GrSelect-DSz7jvUb.js.map +0 -1
  399. package/dist/components/GrSidebar/chunks/GrSidebar-BW8LRMZ-.js +0 -44
  400. package/dist/components/GrSidebar/chunks/GrSidebar-BW8LRMZ-.js.map +0 -1
  401. package/dist/components/GrToaster/chunks/GrToaster-C6_iHk2J.js +0 -172
  402. package/dist/components/GrToaster/chunks/GrToaster-C6_iHk2J.js.map +0 -1
  403. package/dist/components/GrTree/chunks/GrTree-uZr5SyQI.js.map +0 -1
  404. /package/dist/chunks/{_plugin-vue_export-helper-DQR7Sy7Q.js → _plugin-vue_export-helper-BOaGB7Aw.js} +0 -0
  405. /package/dist/chunks/{adapter-BqqjEZGU.js → adapter-CAOxmn2G.js} +0 -0
  406. /package/dist/chunks/{arrow-up-DZdIrpaF.js → arrow-up-C_G4jg8M.js} +0 -0
  407. /package/dist/chunks/{classTokens-BPeBXNzu.js → classTokens-BzazaERD.js} +0 -0
  408. /package/dist/chunks/{config-DZrlovR42.js → config-8Pcutu1j2.js} +0 -0
  409. /package/dist/chunks/{config-VJuoznpH.js → config-B0qIpo8m.js} +0 -0
  410. /package/dist/chunks/{config-DbghHyY_.js → config-BEegFP74.js} +0 -0
  411. /package/dist/chunks/{config-BeBsN0c12.js → config-BLHqZhy-2.js} +0 -0
  412. /package/dist/chunks/{config-BV4vBzdm.js → config-BNu8lFQB.js} +0 -0
  413. /package/dist/chunks/{config-DhQc1TRY.js → config-BUHuGBik.js} +0 -0
  414. /package/dist/chunks/{config-CPSdAjUi.js → config-BWGGp7uV.js} +0 -0
  415. /package/dist/chunks/{config-BduXEXjt.js → config-BXtAmU3s.js} +0 -0
  416. /package/dist/chunks/{config-CzgNEHKi.js → config-Bah4oHwL.js} +0 -0
  417. /package/dist/chunks/{config-lMDE_8A5.js → config-C86UzUYf.js} +0 -0
  418. /package/dist/chunks/{config-BgBWt9-A.js → config-C9AcVDkv.js} +0 -0
  419. /package/dist/chunks/{config-BuoIngj32.js → config-CGHLoBlH2.js} +0 -0
  420. /package/dist/chunks/{config-ChQxl75m.js → config-CThzliFi.js} +0 -0
  421. /package/dist/chunks/{config-DDwBSoc_.js → config-Cb2PAlSD.js} +0 -0
  422. /package/dist/chunks/{config-C5-ujXCI.js → config-D7GZO-Dx.js} +0 -0
  423. /package/dist/chunks/{config-CUwF4E4R.js → config-DBmdgoVf.js} +0 -0
  424. /package/dist/chunks/{config-C9MblwGq.js → config-DICOd-2X.js} +0 -0
  425. /package/dist/chunks/{config-BLa1TEGm2.js → config-DpqOnJiz2.js} +0 -0
  426. /package/dist/chunks/{config-V3LF-b_F.js → config-Dxuwwepq.js} +0 -0
  427. /package/dist/chunks/{config-Doa_gU40.js → config-HZto2PVy.js} +0 -0
  428. /package/dist/chunks/{config-Dl5aZ5VR.js → config-JOtB4mzs.js} +0 -0
  429. /package/dist/chunks/{config-CWTfyPNI.js → config-JpHA4Xx0.js} +0 -0
  430. /package/dist/chunks/{config-B3dn-gdC.js → config-PFg39mYo.js} +0 -0
  431. /package/dist/chunks/{config-Bh4NWWsQ.js → config-QaIc_gRa.js} +0 -0
  432. /package/dist/chunks/{config-vcDVCYXo.js → config-U4m9PSql.js} +0 -0
  433. /package/dist/chunks/{config-C_q_4FrU.js → config-ZiXWIRBX.js} +0 -0
  434. /package/dist/chunks/{config-DDUPnue12.js → config-ipvU0lzP2.js} +0 -0
  435. /package/dist/chunks/{config-D5ek7VSi.js → config-xR4XVmcy.js} +0 -0
  436. /package/dist/chunks/{dialogShared-BtXUk6Zc.js → dialogShared-CxW62PQE.js} +0 -0
  437. /package/dist/chunks/{grLoadingStyles-DmI-SJ3i.js → grLoadingStyles-R5sreH__.js} +0 -0
  438. /package/dist/chunks/{info-C0bHmdZq.js → info-Be2OccTu.js} +0 -0
  439. /package/dist/chunks/{loader-circle-BUntgosj.js → loader-circle-CfVLz7lb.js} +0 -0
  440. /package/dist/chunks/{x-Pa6C2hwi.js → x-2KXnqxiD.js} +0 -0
  441. /package/dist/chunks/{x-circle-DQSlBLmX.js → x-circle-BCBURwyX.js} +0 -0
  442. /package/dist/components/GrBottomNav/chunks/{GrBottomNav-XPHwd7UQ.js → GrBottomNav-usuMgG8_.js} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"grButtonStyles-DKuXUemw.js","names":[],"sources":["../../src/components/GrButton/grButtonStyles.ts"],"sourcesContent":["import type { GrTone } from '../shared/tones'\n\nexport type GrButtonVariant = 'primary' | 'secondary' | 'outline' | 'ghost' | 'ghost-border'\nexport type GrButtonTone = GrTone\nexport type GrButtonSize = 'xs' | 'sm' | 'md' | 'lg'\n\nexport type GrButtonClassOptions = {\n variant: GrButtonVariant\n tone: GrButtonTone\n size: GrButtonSize\n square: boolean\n}\n\nexport type GrButtonToneTokens = {\n solidBackground: string\n solidBackgroundHover: string\n solidBackgroundActive: string\n solidForeground: string\n accentText: string\n softBackground: string\n softBackgroundHover: string\n softBackgroundActive: string\n softForeground: string\n border: string\n borderHover: string\n borderActive: string\n}\n\nexport const base =\n 'inline-flex items-center justify-center gap-2 select-none whitespace-nowrap rounded-md transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] disabled:opacity-50 disabled:cursor-not-allowed'\n\nexport const grButtonBaseClass = base\n\nexport const sizes: Record<GrButtonSize, string> = {\n xs: 'h-7 text-xs px-2.5',\n sm: 'h-8 text-sm px-3',\n md: 'h-10 text-sm px-4',\n lg: 'h-11 text-base px-5',\n}\n\nexport const squareSizes: Record<GrButtonSize, string> = {\n xs: 'h-7 w-7 p-0',\n sm: 'h-8 w-8 p-0',\n md: 'h-10 w-10 p-0',\n lg: 'h-11 w-11 p-0',\n}\n\nexport const tones: Record<GrButtonTone, GrButtonToneTokens> = {\n primary: {\n solidBackground: 'var(--ds-button-primary-bg,var(--primary))',\n solidBackgroundHover: 'var(--ds-button-primary-bg-hover,var(--primary-hover))',\n solidBackgroundActive: 'var(--ds-button-primary-bg-active,var(--primary-active))',\n solidForeground: 'var(--ds-button-primary-fg,var(--primary-fg))',\n accentText: 'var(--accent-fg)',\n softBackground: 'var(--ds-button-primary-soft-bg)',\n softBackgroundHover: 'var(--ds-button-primary-soft-bg-hover)',\n softBackgroundActive: 'var(--ds-button-primary-soft-bg-active)',\n softForeground: 'var(--accent-fg)',\n border: 'var(--primary)',\n borderHover: 'var(--primary-hover)',\n borderActive: 'var(--primary-active)',\n },\n neutral: {\n solidBackground: 'var(--secondary)',\n solidBackgroundHover: 'var(--secondary-hover)',\n solidBackgroundActive: 'var(--secondary-active)',\n solidForeground: 'var(--secondary-fg)',\n accentText: 'var(--fg)',\n softBackground: 'var(--secondary)',\n softBackgroundHover: 'var(--secondary-hover)',\n softBackgroundActive: 'var(--secondary-active)',\n softForeground: 'var(--secondary-fg)',\n border: 'var(--brd)',\n borderHover: 'var(--brd-hover,var(--brd))',\n borderActive: 'var(--brd-active,var(--brd))',\n },\n success: {\n solidBackground: 'var(--ds-button-success-bg,var(--ds-success))',\n solidBackgroundHover: 'var(--ds-button-success-bg-hover,var(--ds-success-hover))',\n solidBackgroundActive: 'var(--ds-button-success-bg-active,var(--ds-success-active))',\n solidForeground: 'var(--ds-button-success-fg,var(--ds-success-fg,var(--fg)))',\n accentText: 'var(--ds-success-text,var(--ds-success))',\n softBackground: 'var(--ds-button-success-soft-bg)',\n softBackgroundHover: 'var(--ds-button-success-soft-bg-hover)',\n softBackgroundActive: 'var(--ds-button-success-soft-bg-active)',\n softForeground: 'var(--ds-success-text,var(--ds-success))',\n border: 'var(--ds-success)',\n borderHover: 'var(--ds-success-hover)',\n borderActive: 'var(--ds-success-active)',\n },\n warning: {\n solidBackground: 'var(--ds-button-warning-bg,var(--ds-warning))',\n solidBackgroundHover: 'var(--ds-button-warning-bg-hover,var(--ds-warning-hover))',\n solidBackgroundActive: 'var(--ds-button-warning-bg-active,var(--ds-warning-active))',\n solidForeground: 'var(--ds-button-warning-fg,var(--ds-warning-fg,var(--fg)))',\n accentText: 'var(--ds-warning-text,var(--ds-warning))',\n softBackground: 'var(--ds-button-warning-soft-bg)',\n softBackgroundHover: 'var(--ds-button-warning-soft-bg-hover)',\n softBackgroundActive: 'var(--ds-button-warning-soft-bg-active)',\n softForeground: 'var(--ds-warning-text,var(--ds-warning))',\n border: 'var(--ds-warning)',\n borderHover: 'var(--ds-warning-hover)',\n borderActive: 'var(--ds-warning-active)',\n },\n danger: {\n solidBackground: 'var(--ds-button-danger-bg,var(--ds-danger))',\n solidBackgroundHover: 'var(--ds-button-danger-bg-hover,var(--ds-danger-hover))',\n solidBackgroundActive: 'var(--ds-button-danger-bg-active,var(--ds-danger-active))',\n solidForeground: 'var(--ds-button-danger-fg,var(--ds-danger-fg,var(--fg)))',\n accentText: 'var(--ds-danger-text,var(--ds-danger))',\n softBackground: 'var(--ds-button-danger-soft-bg)',\n softBackgroundHover: 'var(--ds-button-danger-soft-bg-hover)',\n softBackgroundActive: 'var(--ds-button-danger-soft-bg-active)',\n softForeground: 'var(--ds-danger-text,var(--ds-danger))',\n border: 'var(--ds-danger)',\n borderHover: 'var(--ds-danger-hover)',\n borderActive: 'var(--ds-danger-active)',\n },\n info: {\n solidBackground: 'var(--ds-button-info-bg,var(--ds-info))',\n solidBackgroundHover: 'var(--ds-button-info-bg-hover,var(--ds-info-hover))',\n solidBackgroundActive: 'var(--ds-button-info-bg-active,var(--ds-info-active))',\n solidForeground: 'var(--ds-button-info-fg,var(--ds-info-fg,var(--fg)))',\n accentText: 'var(--ds-info-text,var(--ds-info))',\n softBackground: 'var(--ds-button-info-soft-bg)',\n softBackgroundHover: 'var(--ds-button-info-soft-bg-hover)',\n softBackgroundActive: 'var(--ds-button-info-soft-bg-active)',\n softForeground: 'var(--ds-info-text,var(--ds-info))',\n border: 'var(--ds-info)',\n borderHover: 'var(--ds-info-hover)',\n borderActive: 'var(--ds-info-active)',\n },\n slate: {\n solidBackground: 'var(--ds-button-slate-bg,var(--ds-slate))',\n solidBackgroundHover: 'var(--ds-button-slate-bg-hover,var(--ds-slate-hover))',\n solidBackgroundActive: 'var(--ds-button-slate-bg-active,var(--ds-slate-active))',\n solidForeground: 'var(--ds-button-slate-fg,var(--ds-slate-fg,var(--fg)))',\n accentText: 'var(--ds-slate-text,var(--ds-slate))',\n softBackground: 'var(--ds-button-slate-soft-bg)',\n softBackgroundHover: 'var(--ds-button-slate-soft-bg-hover)',\n softBackgroundActive: 'var(--ds-button-slate-soft-bg-active)',\n softForeground: 'var(--ds-slate-text,var(--ds-slate))',\n border: 'var(--ds-slate)',\n borderHover: 'var(--ds-slate-hover)',\n borderActive: 'var(--ds-slate-active)',\n },\n azure: {\n solidBackground: 'var(--ds-button-azure-bg,var(--ds-azure))',\n solidBackgroundHover: 'var(--ds-button-azure-bg-hover,var(--ds-azure-hover))',\n solidBackgroundActive: 'var(--ds-button-azure-bg-active,var(--ds-azure-active))',\n solidForeground: 'var(--ds-button-azure-fg,var(--ds-azure-fg,var(--fg)))',\n accentText: 'var(--ds-azure-text,var(--ds-azure))',\n softBackground: 'var(--ds-button-azure-soft-bg)',\n softBackgroundHover: 'var(--ds-button-azure-soft-bg-hover)',\n softBackgroundActive: 'var(--ds-button-azure-soft-bg-active)',\n softForeground: 'var(--ds-azure-text,var(--ds-azure))',\n border: 'var(--ds-azure)',\n borderHover: 'var(--ds-azure-hover)',\n borderActive: 'var(--ds-azure-active)',\n },\n}\n\nfunction withVar(token: string): string {\n return `[${token}]`\n}\n\nexport function variantClass(variant: GrButtonVariant, tone: GrButtonTone): string {\n const tokens = tones[tone]\n\n if (variant === 'primary') {\n return [\n `bg-${withVar(tokens.solidBackground)}`,\n `text-${withVar(tokens.solidForeground)}`,\n `border border-${withVar(tokens.solidBackground)}`,\n `hover:bg-${withVar(tokens.solidBackgroundHover)}`,\n `hover:border-${withVar(tokens.solidBackgroundHover)}`,\n `active:bg-${withVar(tokens.solidBackgroundActive)}`,\n `hover:active:bg-${withVar(tokens.solidBackgroundActive)}`,\n `active:border-${withVar(tokens.solidBackgroundActive)}`,\n `hover:active:border-${withVar(tokens.solidBackgroundActive)}`,\n ].join(' ')\n }\n\n if (variant === 'secondary') {\n return [\n `bg-${withVar(tokens.softBackground)}`,\n `text-${withVar(tokens.softForeground)}`,\n `border border-${withVar(tokens.border)}`,\n `hover:bg-${withVar(tokens.softBackgroundHover)}`,\n `hover:border-${withVar(tokens.borderHover)}`,\n `active:bg-${withVar(tokens.softBackgroundActive)}`,\n `hover:active:bg-${withVar(tokens.softBackgroundActive)}`,\n `active:border-${withVar(tokens.borderActive)}`,\n `hover:active:border-${withVar(tokens.borderActive)}`,\n ].join(' ')\n }\n\n if (variant === 'outline') {\n return [\n 'bg-transparent',\n `text-${withVar(tokens.accentText)}`,\n `border border-${withVar(tokens.border)}`,\n `hover:bg-${withVar(tokens.softBackgroundHover)}`,\n `hover:border-${withVar(tokens.borderHover)}`,\n `active:bg-${withVar(tokens.softBackgroundActive)}`,\n `hover:active:bg-${withVar(tokens.softBackgroundActive)}`,\n `active:border-${withVar(tokens.borderActive)}`,\n `hover:active:border-${withVar(tokens.borderActive)}`,\n ].join(' ')\n }\n\n if (variant === 'ghost') {\n return [\n 'bg-transparent',\n `text-${withVar(tokens.accentText)}`,\n `hover:bg-${withVar(tokens.softBackgroundHover)}`,\n `active:bg-${withVar(tokens.softBackgroundActive)}`,\n `hover:active:bg-${withVar(tokens.softBackgroundActive)}`,\n ].join(' ')\n }\n\n return [\n 'bg-transparent',\n `text-${withVar(tokens.accentText)}`,\n 'border border-transparent',\n `hover:bg-${withVar(tokens.softBackgroundHover)}`,\n `hover:border-${withVar(tokens.borderHover)}`,\n `active:bg-${withVar(tokens.softBackgroundActive)}`,\n `hover:active:bg-${withVar(tokens.softBackgroundActive)}`,\n `active:border-${withVar(tokens.borderActive)}`,\n `hover:active:border-${withVar(tokens.borderActive)}`,\n ].join(' ')\n}\n\nexport function grButtonClass(options: GrButtonClassOptions): string {\n return [\n options.square ? squareSizes[options.size] : sizes[options.size],\n variantClass(options.variant, options.tone),\n ].join(' ')\n}\n"],"mappings":";AA4BA,IAAa,OACX;AAEF,IAAa,oBAAoB;AAEjC,IAAa,QAAsC;CACjD,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACL;AAED,IAAa,cAA4C;CACvD,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACL;AAED,IAAa,QAAkD;CAC7D,SAAS;EACP,iBAAiB;EACjB,sBAAsB;EACtB,uBAAuB;EACvB,iBAAiB;EACjB,YAAY;EACZ,gBAAgB;EAChB,qBAAqB;EACrB,sBAAsB;EACtB,gBAAgB;EAChB,QAAQ;EACR,aAAa;EACb,cAAc;EACf;CACD,SAAS;EACP,iBAAiB;EACjB,sBAAsB;EACtB,uBAAuB;EACvB,iBAAiB;EACjB,YAAY;EACZ,gBAAgB;EAChB,qBAAqB;EACrB,sBAAsB;EACtB,gBAAgB;EAChB,QAAQ;EACR,aAAa;EACb,cAAc;EACf;CACD,SAAS;EACP,iBAAiB;EACjB,sBAAsB;EACtB,uBAAuB;EACvB,iBAAiB;EACjB,YAAY;EACZ,gBAAgB;EAChB,qBAAqB;EACrB,sBAAsB;EACtB,gBAAgB;EAChB,QAAQ;EACR,aAAa;EACb,cAAc;EACf;CACD,SAAS;EACP,iBAAiB;EACjB,sBAAsB;EACtB,uBAAuB;EACvB,iBAAiB;EACjB,YAAY;EACZ,gBAAgB;EAChB,qBAAqB;EACrB,sBAAsB;EACtB,gBAAgB;EAChB,QAAQ;EACR,aAAa;EACb,cAAc;EACf;CACD,QAAQ;EACN,iBAAiB;EACjB,sBAAsB;EACtB,uBAAuB;EACvB,iBAAiB;EACjB,YAAY;EACZ,gBAAgB;EAChB,qBAAqB;EACrB,sBAAsB;EACtB,gBAAgB;EAChB,QAAQ;EACR,aAAa;EACb,cAAc;EACf;CACD,MAAM;EACJ,iBAAiB;EACjB,sBAAsB;EACtB,uBAAuB;EACvB,iBAAiB;EACjB,YAAY;EACZ,gBAAgB;EAChB,qBAAqB;EACrB,sBAAsB;EACtB,gBAAgB;EAChB,QAAQ;EACR,aAAa;EACb,cAAc;EACf;CACD,OAAO;EACL,iBAAiB;EACjB,sBAAsB;EACtB,uBAAuB;EACvB,iBAAiB;EACjB,YAAY;EACZ,gBAAgB;EAChB,qBAAqB;EACrB,sBAAsB;EACtB,gBAAgB;EAChB,QAAQ;EACR,aAAa;EACb,cAAc;EACf;CACD,OAAO;EACL,iBAAiB;EACjB,sBAAsB;EACtB,uBAAuB;EACvB,iBAAiB;EACjB,YAAY;EACZ,gBAAgB;EAChB,qBAAqB;EACrB,sBAAsB;EACtB,gBAAgB;EAChB,QAAQ;EACR,aAAa;EACb,cAAc;EACf;CACF;AAED,SAAS,QAAQ,OAAuB;AACtC,QAAO,IAAI,MAAM;;AAGnB,SAAgB,aAAa,SAA0B,MAA4B;CACjF,MAAM,SAAS,MAAM;AAErB,KAAI,YAAY,UACd,QAAO;EACL,MAAM,QAAQ,OAAO,gBAAgB;EACrC,QAAQ,QAAQ,OAAO,gBAAgB;EACvC,iBAAiB,QAAQ,OAAO,gBAAgB;EAChD,YAAY,QAAQ,OAAO,qBAAqB;EAChD,gBAAgB,QAAQ,OAAO,qBAAqB;EACpD,aAAa,QAAQ,OAAO,sBAAsB;EAClD,mBAAmB,QAAQ,OAAO,sBAAsB;EACxD,iBAAiB,QAAQ,OAAO,sBAAsB;EACtD,uBAAuB,QAAQ,OAAO,sBAAsB;EAC7D,CAAC,KAAK,IAAI;AAGb,KAAI,YAAY,YACd,QAAO;EACL,MAAM,QAAQ,OAAO,eAAe;EACpC,QAAQ,QAAQ,OAAO,eAAe;EACtC,iBAAiB,QAAQ,OAAO,OAAO;EACvC,YAAY,QAAQ,OAAO,oBAAoB;EAC/C,gBAAgB,QAAQ,OAAO,YAAY;EAC3C,aAAa,QAAQ,OAAO,qBAAqB;EACjD,mBAAmB,QAAQ,OAAO,qBAAqB;EACvD,iBAAiB,QAAQ,OAAO,aAAa;EAC7C,uBAAuB,QAAQ,OAAO,aAAa;EACpD,CAAC,KAAK,IAAI;AAGb,KAAI,YAAY,UACd,QAAO;EACL;EACA,QAAQ,QAAQ,OAAO,WAAW;EAClC,iBAAiB,QAAQ,OAAO,OAAO;EACvC,YAAY,QAAQ,OAAO,oBAAoB;EAC/C,gBAAgB,QAAQ,OAAO,YAAY;EAC3C,aAAa,QAAQ,OAAO,qBAAqB;EACjD,mBAAmB,QAAQ,OAAO,qBAAqB;EACvD,iBAAiB,QAAQ,OAAO,aAAa;EAC7C,uBAAuB,QAAQ,OAAO,aAAa;EACpD,CAAC,KAAK,IAAI;AAGb,KAAI,YAAY,QACd,QAAO;EACL;EACA,QAAQ,QAAQ,OAAO,WAAW;EAClC,YAAY,QAAQ,OAAO,oBAAoB;EAC/C,aAAa,QAAQ,OAAO,qBAAqB;EACjD,mBAAmB,QAAQ,OAAO,qBAAqB;EACxD,CAAC,KAAK,IAAI;AAGb,QAAO;EACL;EACA,QAAQ,QAAQ,OAAO,WAAW;EAClC;EACA,YAAY,QAAQ,OAAO,oBAAoB;EAC/C,gBAAgB,QAAQ,OAAO,YAAY;EAC3C,aAAa,QAAQ,OAAO,qBAAqB;EACjD,mBAAmB,QAAQ,OAAO,qBAAqB;EACvD,iBAAiB,QAAQ,OAAO,aAAa;EAC7C,uBAAuB,QAAQ,OAAO,aAAa;EACpD,CAAC,KAAK,IAAI;;AAGb,SAAgB,cAAc,SAAuC;AACnE,QAAO,CACL,QAAQ,SAAS,YAAY,QAAQ,QAAQ,MAAM,QAAQ,OAC3D,aAAa,QAAQ,SAAS,QAAQ,KAAK,CAC5C,CAAC,KAAK,IAAI"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"grSelectStyles-AjWWl007.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 }\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(--brd)] bg-[var(--bg)] text-[var(--fg)] transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--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(--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(--primary)] hover:text-[var(--primary-hover)] active:text-[var(--primary-active)]',\n default: 'text-[var(--fg)] hover:text-[var(--primary)] active:text-[var(--primary-active)]',\n muted: 'text-[var(--muted-fg)] hover:text-[var(--fg)] active:text-[var(--fg)]',\n danger: 'text-[var(--ds-danger)] hover:text-[var(--ds-danger-hover)] active:text-[var(--ds-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(--primary)] peer-hover:text-[var(--primary-hover)] peer-active:text-[var(--primary-active)]',\n default: 'text-[var(--fg)] peer-hover:text-[var(--primary)] peer-active:text-[var(--primary-active)]',\n muted: 'text-[var(--muted-fg)] peer-hover:text-[var(--fg)] peer-active:text-[var(--fg)]',\n danger: 'text-[var(--ds-danger)] peer-hover:text-[var(--ds-danger-hover)] peer-active:text-[var(--ds-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(--muted-fg)] no-underline' : '',\n 'peer-focus-visible:outline-none peer-focus-visible:ring-2 peer-focus-visible:ring-[var(--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(--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(--ds-radius-xl)] border border-[var(--brd)] bg-[var(--card)] text-[var(--card-fg)] shadow-[var(--ds-shadow-2)] overflow-hidden'\n"],"mappings":";AAYA,IAAa,mBAAmB;AAChC,IAAa,gBAAgB;AAG7B,IAAa,wBAAsD;CACjE,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACL;AAED,IAAa,4BAA0D;CACrE,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACL;AAED,IAAa,kCAAmE;CAC9E,SAAS;CACT,SAAS;CACT,OAAO;CACP,QAAQ;CACT;;;;;;AAOD,IAAa,6CAA8E;CACzF,SAAS;CACT,SAAS;CACT,OAAO;CACP,QAAQ;CACT;AAED,SAAS,yBAAyB,SAAsE;AACtG,KAAI,QAAQ,SAAU,QAAO;AAC7B,KAAI,QAAQ,cAAc,SAAU,QAAO;AAC3C,KAAI,QAAQ,cAAc,OAAQ,QAAO;AACzC,QAAO;;;;;;;;AAST,SAAS,oCAAoC,SAAsE;AACjH,KAAI,QAAQ,SAAU,QAAO;AAC7B,KAAI,QAAQ,cAAc,SAAU,QAAO;AAC3C,KAAI,QAAQ,cAAc,OAAQ,QAAO;AACzC,QAAO;;;;;;;;AAST,IAAa,iCAAiC;;;;;AAM9C,SAAgB,6BAA6B,SAKlC;AACT,QAAO;EACL;EACA,0BAA0B,QAAQ;EAClC,oCAAoC;GAAE,WAAW,QAAQ;GAAW,UAAU,QAAQ;GAAU,CAAC;EACjG,2CAA2C,QAAQ;EACnD,QAAQ,WAAW,mDAAmD;EACtE;EACD,CACE,OAAO,QAAQ,CACf,KAAK,IAAI;;AAGd,SAAgB,cAAc,SAMnB;AACT,KAAI,QAAQ,SAAS,OACnB,QAAO;EACL,0BAA0B,QAAQ;EAClC,yBAAyB;GAAE,WAAW,QAAQ;GAAW,UAAU,QAAQ;GAAU,CAAC;EACtF,gCAAgC,QAAQ;EACxC;EACD,CAAC,KAAK,IAAI;AAGb,QAAO,CACL,sBAAsB,QAAQ,OAC9B,kDACD,CAAC,KAAK,IAAI;;AAGb,SAAgB,oBAAoB,SAOzB;AACT,QAAO,CACL,cAAc,QAAQ,EACtB,QAAQ,oBAAoB,yBAAyB,GACtD,CACE,OAAO,QAAQ,CACf,KAAK,IAAI;;AAGd,SAAgB,qBAAqB,SAO1B;AACT,KAAI,QAAQ,gBAAgB,QAC1B,QAAO,cAAc,QAAQ;AAG/B,KAAI,QAAQ,SAAS,OACnB,QAAO,CACL,cAAc,QAAQ,EACtB,2CACD,CAAC,KAAK,IAAI;AAGb,QAAO,CACL,cAAc,QAAQ,EACtB,8CACD,CAAC,KAAK,IAAI;;AAGb,IAAa,uBAAuB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"grStyle-D-gPHdyW.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(--primary))',\n neutral: 'var(--pb-neutral-bg,var(--secondary))',\n success: 'var(--pb-success-bg,var(--ds-success))',\n warning: 'var(--pb-warning-bg,var(--ds-warning))',\n danger: 'var(--pb-danger-bg,var(--ds-danger))',\n info: 'var(--pb-info-bg,var(--ds-info))',\n slate: 'var(--pb-slate-bg,var(--ds-slate))',\n azure: 'var(--pb-azure-bg,var(--ds-azure))',\n}\n\nexport function grProgressBarFillClass(tone: GrProgressBarTone): string {\n return `bg-${withVar(toneVars[tone])}`\n}\n"],"mappings":";AAIA,SAAS,QAAQ,OAAuB;AACtC,QAAO,IAAI,MAAM;;AAGnB,IAAM,WAA8C;CAClD,SAAS;CACT,SAAS;CACT,SAAS;CACT,SAAS;CACT,QAAQ;CACR,MAAM;CACN,OAAO;CACP,OAAO;CACR;AAED,SAAgB,uBAAuB,MAAiC;AACtE,QAAO,MAAM,QAAQ,SAAS,MAAM"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"info-C0bHmdZq.js","names":[],"sources":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"loader-circle-BUntgosj.js","names":[],"sources":[],"mappings":""}
@@ -1,72 +0,0 @@
1
- //#region src/i18n/locales/ru.json
2
- var common = {
3
- "confirm": "Подтвердить",
4
- "cancel": "Отмена",
5
- "add": "Добавить",
6
- "clear": "Очистить",
7
- "close": "Закрыть"
8
- };
9
- var loading = { "defaultText": "Загрузка..." };
10
- var treeSelect = {
11
- "filterPlaceholder": "Поиск…",
12
- "empty": "Нет данных"
13
- };
14
- var select = {
15
- "customValuePlaceholder": "Добавить значение…",
16
- "addOption": "Добавить «{value}»"
17
- };
18
- var dialog = {
19
- "confirm": { "title": "Подтверждение" },
20
- "prompt": {
21
- "title": "Введите значение",
22
- "label": "Значение",
23
- "required": "Введите значение."
24
- }
25
- };
26
- var pagination = {
27
- "label": "Пагинация",
28
- "pageSize": "Размер страницы",
29
- "prev": "Назад",
30
- "next": "Вперёд",
31
- "page": "Страница {n}"
32
- };
33
- var navbar = { "openMenu": "Открыть меню" };
34
- var responseError = {
35
- "networkTitle": "Нет связи с сервером",
36
- "networkMessage": "Проверьте подключение к интернету и попробуйте ещё раз.",
37
- "abortedTitle": "Запрос отменён",
38
- "abortedMessage": "Запрос был отменён.",
39
- "validationTitle": "Проверьте данные",
40
- "validationMessage": "Сервер вернул ошибку валидации. Исправьте поля и попробуйте снова.",
41
- "clientTitle": "Ошибка запроса",
42
- "clientMessage": "Сервер отклонил запрос.",
43
- "serverTitle": "Ошибка сервера",
44
- "serverMessage": "Произошла ошибка на сервере. Попробуйте ещё раз.",
45
- "unknownTitle": "Что-то пошло не так",
46
- "unknownMessage": "Не удалось выполнить операцию. Попробуйте ещё раз.",
47
- "retryLabel": "Повторить",
48
- "dismissLabel": "Скрыть"
49
- };
50
- var colors = {
51
- "neutral": "Нейтральный",
52
- "success": "Успех",
53
- "warning": "Предупреждение",
54
- "danger": "Опасность",
55
- "info": "Инфо",
56
- "primary": "Primary",
57
- "slate": "Сланцевый",
58
- "azure": "Лазурный"
59
- };
60
- var ru_default = {
61
- common,
62
- loading,
63
- treeSelect,
64
- select,
65
- dialog,
66
- pagination,
67
- navbar,
68
- responseError,
69
- colors
70
- };
71
- //#endregion
72
- export { colors, common, ru_default as default, dialog, loading, navbar, pagination, responseError, select, treeSelect };
@@ -1 +0,0 @@
1
- {"version":3,"file":"ru-S6VlnurJ.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 \"select\": {\n \"customValuePlaceholder\": \"Добавить значение…\",\n \"addOption\": \"Добавить «{value}»\"\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 },\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}\n"],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"safelist-_UVzJrgE2.js","names":[],"sources":["../../src/components/GrDialog/safelist.ts"],"sourcesContent":["import { splitClassTokens } from '../shared/classTokens'\nimport {\n DEFAULT_GR_DIALOG_BODY_CONFIG,\n DEFAULT_GR_DIALOG_FOOTER_CONFIG,\n DEFAULT_GR_DIALOG_HEADER_CONFIG,\n} from './dialogShared'\n\n// В safelist попадают ТОЛЬКО токены, которые нельзя обнаружить статическим\n// сканом шаблонов: значения из дефолтных конфигов секций (`paddingX`/`paddingY`),\n// которые используются через `:class` и могут переопределяться консьюмером.\n//\n// Все литералы, прописанные напрямую в шаблонах (`class=\"...\"` или\n// статические строки в `:class=\"[...]\"` внутри .vue), UnoCSS найдёт сам —\n// дублировать их здесь не нужно.\nfunction configTokens(config: { paddingX: string, paddingY: string }): string[] {\n return [\n ...splitClassTokens(config.paddingX),\n ...splitClassTokens(config.paddingY),\n ]\n}\n\nexport const grDialogSafelist = [...new Set([\n ...configTokens(DEFAULT_GR_DIALOG_HEADER_CONFIG),\n ...configTokens(DEFAULT_GR_DIALOG_FOOTER_CONFIG),\n ...configTokens(DEFAULT_GR_DIALOG_BODY_CONFIG),\n])]\n"],"mappings":";;;AAcA,SAAS,aAAa,QAA0D;AAC9E,QAAO,CACL,GAAG,iBAAiB,OAAO,SAAS,EACpC,GAAG,iBAAiB,OAAO,SAAS,CACrC;;AAGH,IAAa,mBAAmB,CAAC,GAAG,IAAI,IAAI;CAC1C,GAAG,aAAa,gCAAgC;CAChD,GAAG,aAAa,gCAAgC;CAChD,GAAG,aAAa,8BAA8B;CAC/C,CAAC,CAAC"}
@@ -1,169 +0,0 @@
1
- import { t as grAlertConfig } from "./config-BV4vBzdm.js";
2
- import { t as grAvatarConfig } from "./config-CU_CBd0k.js";
3
- import { t as grBadgeConfig } from "./config-B61cX08u.js";
4
- import { t as grBadgeWrapConfig } from "./config-V3LF-b_F.js";
5
- import { t as grBottomNavConfig } from "./config-BgBWt9-A.js";
6
- import { t as grButtonConfig } from "./config-3I3vqDW4.js";
7
- import { t as grButtonGroupConfig } from "./config-CUwF4E4R.js";
8
- import { t as grCardConfig } from "./config-ChQxl75m.js";
9
- import { t as grCheckboxConfig } from "./config-C9MblwGq.js";
10
- import { t as grIconConfig } from "./config-DbghHyY_.js";
11
- import { t as grCollapseConfig } from "./config-D5ek7VSi.js";
12
- import { t as grConfirmDialogConfig } from "./config-BduXEXjt.js";
13
- import { t as grDataTableConfig } from "./config-vcDVCYXo.js";
14
- import { t as grDialogSafelist } from "./safelist-_UVzJrgE2.js";
15
- import { t as grDrawerConfig } from "./config-C6zT56Jc2.js";
16
- import { t as grDropdownConfig } from "./config-C_egzT_K.js";
17
- import { t as grDropdownMenuConfig } from "./config-DDwBSoc_.js";
18
- import { t as grEmptyStateConfig } from "./config-CzgNEHKi.js";
19
- import { t as grFileUploadConfig } from "./config-CPSdAjUi.js";
20
- import { t as grFormFieldConfig } from "./config-B3dn-gdC.js";
21
- import { t as grFormFileConfig } from "./config-C5-ujXCI.js";
22
- import { t as grFormSectionConfig } from "./config-VJuoznpH.js";
23
- import { t as grImageViewerConfig } from "./config-Doa_gU40.js";
24
- import { t as grInputConfig } from "./config-8f8624RN.js";
25
- import { t as grInputTagConfig } from "./config-XspHtPsU.js";
26
- import { t as grLinkConfig } from "./config-NkbzVFZo.js";
27
- import { t as grListConfig } from "./config-lMDE_8A5.js";
28
- import { t as grLoadingConfig } from "./config-58Mj2rGH.js";
29
- import { t as grModalConfig } from "./config-DRpkoSvq.js";
30
- import { t as grNavbarConfig } from "./config-C_q_4FrU.js";
31
- import { t as grNumberInputConfig } from "./config-DvDNney3.js";
32
- import { t as grPaginationConfig } from "./config-CWTfyPNI.js";
33
- import { t as grProgressBarConfig } from "./config-B0uUCaJW.js";
34
- import { t as grPromptDialogConfig } from "./config-DhQc1TRY.js";
35
- import { t as grRadioConfig } from "./config-nrOj9p6I.js";
36
- import { t as grRadioGroupConfig } from "./config-Bh4NWWsQ.js";
37
- import { t as grSegmentedConfig } from "./config-hSlCXHoG.js";
38
- import { t as grSelectConfig } from "./config-C8MM2Dg0.js";
39
- import { t as grSidebarConfig } from "./config-BuoIngj32.js";
40
- import { t as grSkeletonConfig } from "./config-DZrlovR42.js";
41
- import { t as grSwitchConfig } from "./config-RjfJFv1Y.js";
42
- import { t as grTableConfig } from "./config-DDUPnue12.js";
43
- import { t as grTabsConfig } from "./config-BeBsN0c12.js";
44
- import { t as grTextareaConfig } from "./config-A-iei0Ux.js";
45
- import { t as grToasterConfig } from "./config-DkeLkzxj2.js";
46
- import { t as grTooltipConfig } from "./config-Dl5aZ5VR.js";
47
- import { t as grTreeConfig } from "./config-BLa1TEGm2.js";
48
- import { t as grTreeSelectConfig } from "./config-D_Pafsjq2.js";
49
- import { defineGranularComponent, defineGranularProvider } from "@feugene/unocss-preset-granular/contract";
50
- //#region src/components/GrDialog/config.ts
51
- var grDialogConfig = defineGranularComponent(import.meta.url, {
52
- name: "GrDialog",
53
- dependencies: ["GrButton", "GrModal"],
54
- safelist: grDialogSafelist
55
- });
56
- //#endregion
57
- //#region src/components/GrResponseErrorBanner/config.ts
58
- var grResponseErrorBannerConfig = defineGranularComponent(import.meta.url, {
59
- name: "GrResponseErrorBanner",
60
- dependencies: ["GrAlert", "GrButton"]
61
- });
62
- //#endregion
63
- //#region src/granular-provider/shared.ts
64
- /** Идентификатор провайдера — совпадает с именем пакета. */
65
- var GRANULARITY_PROVIDER_ID = "@feugene/granularity";
66
- var packageBaseUrl = `${import.meta.url.slice(0, import.meta.url.lastIndexOf("/", import.meta.url.lastIndexOf("/") - 1) + 1)}`;
67
- /** Встроенные темы пакета. Единственный источник правды о списке тем. */
68
- var granularityThemeNames = ["light", "dark"];
69
- /** Темы, активные по умолчанию, если окружение не переопределяет выбор. */
70
- var granularityDefaultThemes = ["light"];
71
- var theme = {
72
- baseCssUrl: new URL("data:text/css;base64,aHRtbCwKYm9keSB7CiAgICBoZWlnaHQ6IDEwMCU7Cn0KCmJvZHkgewogICAgbWFyZ2luOiAwOwogICAgZm9udC1mYW1pbHk6IHZhcigtLWRzLWZvbnQtdWkpOwogICAgYmFja2dyb3VuZDogdmFyKC0tYmcpOwogICAgY29sb3I6IHZhcigtLWZnKTsKfQoKLyoKICogVW5vQ1NTIHRhaWx3aW5kLWNvbXBhdCByZXNldCBpbnRlbnRpb25hbGx5IGRvZXMgbm90IGZvcmNlIGBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGAgZm9yIGJ1dHRvbnMKICogKHRvIGF2b2lkIGJyZWFraW5nIGNvbXBvbmVudCBsaWJyYXJpZXMpLiBJbiBvdXIgRFMgd2Ugd2FudCBwbGFpbiBidXR0b25zL2xpbmtzIHRvIGJlIHRyYW5zcGFyZW50IGJ5IGRlZmF1bHQuCiAqLwo6d2hlcmUoYSwgYnV0dG9uKSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKfQoKOndoZXJlKGlucHV0W3R5cGU9J2J1dHRvbiddLCBpbnB1dFt0eXBlPSdzdWJtaXQnXSwgaW5wdXRbdHlwZT0ncmVzZXQnXSkgewogICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KCmNvZGUsCnByZSwKa2JkIHsKICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1kcy1mb250LW1vbm8pOwp9CgoqIHsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0K", "" + import.meta.url).href,
73
- tokensCssUrl: new URL("data:text/css;base64,OnJvb3QgewogIC8qIEZvdW5kYXRpb25zOiBuZXV0cmFsIHBhbGV0dGUgKi8KICAtLWRzLXNsYXRlLTA6ICNmZmZmZmY7CiAgLS1kcy1zbGF0ZS01MDogI2Y4ZmFmYzsKICAtLWRzLXNsYXRlLTEwMDogI2YxZjVmOTsKICAtLWRzLXNsYXRlLTIwMDogI2UyZThmMDsKICAtLWRzLXNsYXRlLTMwMDogI2NiZDVlMTsKICAtLWRzLXNsYXRlLTQwMDogIzk0YTNiODsKICAtLWRzLXNsYXRlLTUwMDogIzY0NzQ4YjsKICAtLWRzLXNsYXRlLTYwMDogIzQ3NTU2OTsKICAtLWRzLXNsYXRlLTcwMDogIzMzNDE1NTsKICAtLWRzLXNsYXRlLTgwMDogIzFlMjkzYjsKICAtLWRzLXNsYXRlLTkwMDogIzBmMTcyYTsKCiAgLyogVHlwb2dyYXBoeTogZm9udCBmYW1pbGllcyAqLwogIC0tZHMtZm9udC11aTogSW50ZXIsIFJvYm90bywgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgLS1kcy1mb250LW1vbm86ICdKZXRCcmFpbnMgTW9ubycsIHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgbW9ub3NwYWNlOwoKICAvKiBUeXBvZ3JhcGh5OiBmb250IHNpemVzICovCiAgLS1kcy10ZXh0LXhzOiAxMnB4OwogIC0tZHMtdGV4dC1zbTogMTRweDsKICAtLWRzLXRleHQtYmFzZTogMTZweDsKICAtLWRzLXRleHQtbGc6IDE4cHg7CiAgLS1kcy10ZXh0LXhsOiAyMHB4OwogIC0tZHMtdGV4dC0yeGw6IDI0cHg7CiAgLS1kcy10ZXh0LTN4bDogMzBweDsKICAtLWRzLXRleHQtNHhsOiAzNnB4OwoKICAvKiBUeXBvZ3JhcGh5OiBsaW5lIGhlaWdodHMgKi8KICAtLWRzLWxlYWRpbmctdGlnaHQ6IDEuMjU7CiAgLS1kcy1sZWFkaW5nLW5vcm1hbDogMS41OwogIC0tZHMtbGVhZGluZy1yZWxheGVkOiAxLjYyNTsKCiAgLyogVHlwb2dyYXBoeTogZm9udCB3ZWlnaHRzICovCiAgLS1kcy1mb250LXJlZ3VsYXI6IDQwMDsKICAtLWRzLWZvbnQtbWVkaXVtOiA1MDA7CiAgLS1kcy1mb250LXNlbWlib2xkOiA2MDA7CiAgLS1kcy1mb250LWJvbGQ6IDcwMDsKCiAgLyogTGF5b3V0OiBzcGFjaW5nIHNjYWxlICovCiAgLS1kcy1zcGFjZS0wOiAwcHg7CiAgLS1kcy1zcGFjZS0xOiA0cHg7CiAgLS1kcy1zcGFjZS0yOiA4cHg7CiAgLS1kcy1zcGFjZS0zOiAxMnB4OwogIC0tZHMtc3BhY2UtNDogMTZweDsKICAtLWRzLXNwYWNlLTU6IDIwcHg7CiAgLS1kcy1zcGFjZS02OiAyNHB4OwogIC0tZHMtc3BhY2UtODogMzJweDsKICAtLWRzLXNwYWNlLTEwOiA0MHB4OwogIC0tZHMtc3BhY2UtMTI6IDQ4cHg7CiAgLS1kcy1zcGFjZS0xNjogNjRweDsKICAtLWRzLXNwYWNlLTIwOiA4MHB4OwogIC0tZHMtc3BhY2UtMjQ6IDk2cHg7CiAgLS1kcy1zcGFjZS0zMjogMTI4cHg7CiAgLS1kcy1zcGFjZS00MDogMTYwcHg7CiAgLS1kcy1zcGFjZS00ODogMTkycHg7CiAgLS1kcy1zcGFjZS02NDogMjU2cHg7CgogIC8qIExheW91dDogY29udGFpbmVycyAqLwogIC0tZHMtY29udGFpbmVyLW1heDogMTI4MHB4OwogIC0tZHMtY29udGFpbmVyLW1heC0yeGw6IDE0NDBweDsKICAtLWRzLWNvbnRhaW5lci1wYWRkaW5nLW1vYmlsZTogMTZweDsKICAtLWRzLWNvbnRhaW5lci1wYWRkaW5nLXRhYmxldDogMjRweDsKICAtLWRzLWNvbnRhaW5lci1wYWRkaW5nLWRlc2t0b3A6IDMycHg7CgogIC8qIExheW91dDogYnJlYWtwb2ludHMgKi8KICAtLWRzLWJwLXNtOiA2NDBweDsKICAtLWRzLWJwLW1kOiA3NjhweDsKICAtLWRzLWJwLWxnOiAxMDI0cHg7CiAgLS1kcy1icC14bDogMTI4MHB4OwogIC0tZHMtYnAtMnhsOiAxNTM2cHg7CgogIC8qIFNoYXBlczogcmFkaWkgYW5kIGNvbXBhdGliaWxpdHkgYWxpYXNlcyAqLwogIC0tcmFkaXVzOiAwLjVyZW07CiAgLS1kcy1yYWRpdXMtbm9uZTogMHB4OwogIC0tZHMtcmFkaXVzLXNtOiA0cHg7CiAgLS1kcy1yYWRpdXMtbWQ6IDhweDsKICAtLWRzLXJhZGl1cy1sZzogMTJweDsKICAtLWRzLXJhZGl1cy14bDogMTZweDsKICAtLWRzLXJhZGl1cy1mdWxsOiA5OTk5cHg7CgogIC8qIEVsZXZhdGlvbiAqLwogIC0tZHMtc2hhZG93LTA6IG5vbmU7CiAgLS1kcy1zaGFkb3ctMTogMCAxcHggMnB4IHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7CiAgLS1kcy1zaGFkb3ctMjogMCA4cHggMjRweCByZ2JhKDE1LCAyMywgNDIsIDAuMTQpOwogIC0tZHMtc2hhZG93LTM6IDAgMTZweCA0OHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4yMCk7CgogIC8qIE1vdGlvbiAqLwogIC0tZHMtZHVyYXRpb24tZmFzdDogMTUwbXM7CiAgLS1kcy1kdXJhdGlvbi1iYXNlOiAyMDBtczsKICAtLWRzLWR1cmF0aW9uLXNsb3c6IDMwMG1zOwogIC0tZHMtZWFzZS1vdXQ6IGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpOwogIC0tZHMtZWFzZS1pbjogY3ViaWMtYmV6aWVyKDAuNywgMCwgMC44NCwgMCk7CgogIC8qCiAgICogWi1pbmRleCBsYXllcmluZyBzY2FsZS4KICAgKgogICAqINCV0LTQuNC90YvQuSDQuNGB0YLQvtGH0L3QuNC6INC40YHRgtC40L3RiyDQtNC70Y8g0YHQu9C+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/0YDQuNC70L7QttC10L3QuNGPKS4KICAgKi8KICAtLWdyLXotZHJvcGRvd246IDEwMDA7CiAgLS1nci16LXRvb2x0aXA6IDEwNTA7CiAgLS1nci16LW1vZGFsOiAxMTAwOwogIC0tZ3Itei10b2FzdDogMTIwMDsKCiAgLyogRGVyaXZlZCBpbnRlcmFjdGlvbiBmb3JtdWxhczogYWN0aW9uIHJvbGVzICovCiAgLS1wcmltYXJ5LWhvdmVyOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tcHJpbWFyeSkgOTIlLCB2YXIoLS1mZykpOwogIC0tcHJpbWFyeS1hY3RpdmU6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1wcmltYXJ5KSA4NCUsIHZhcigtLWZnKSk7CiAgLS1zZWNvbmRhcnktaG92ZXI6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnkpIDkyJSwgdmFyKC0tZmcpKTsKICAtLXNlY29uZGFyeS1hY3RpdmU6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnkpIDg0JSwgdmFyKC0tZmcpKTsKICAtLWJyZC1ob3ZlcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJyZCkgNzAlLCB2YXIoLS1mZykpOwogIC0tYnJkLWFjdGl2ZTogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJyZCkgNTUlLCB2YXIoLS1mZykpOwogIC0tZGVzdHJ1Y3RpdmUtaG92ZXI6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1kZXN0cnVjdGl2ZSkgOTIlLCB2YXIoLS1mZykpOwogIC0tZGVzdHJ1Y3RpdmUtYWN0aXZlOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZGVzdHJ1Y3RpdmUpIDg0JSwgdmFyKC0tZmcpKTsKCiAgLyogRGVyaXZlZCBpbnRlcmFjdGlvbiBmb3JtdWxhczogc3RhdHVzIHJvbGVzICovCiAgLS1kcy1zdWNjZXNzLWhvdmVyOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZHMtc3VjY2VzcykgOTIlLCB2YXIoLS1mZykpOwogIC0tZHMtc3VjY2Vzcy1hY3RpdmU6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1kcy1zdWNjZXNzKSA4NCUsIHZhcigtLWZnKSk7CiAgLS1kcy13YXJuaW5nLWhvdmVyOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZHMtd2FybmluZykgOTIlLCB2YXIoLS1mZykpOwogIC0tZHMtd2FybmluZy1hY3RpdmU6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1kcy13YXJuaW5nKSA4NCUsIHZhcigtLWZnKSk7CiAgLS1kcy1kYW5nZXItaG92ZXI6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1kcy1kYW5nZXIpIDkyJSwgdmFyKC0tZmcpKTsKICAtLWRzLWRhbmdlci1hY3RpdmU6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1kcy1kYW5nZXIpIDg0JSwgdmFyKC0tZmcpKTsKICAtLWRzLWluZm8taG92ZXI6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1kcy1pbmZvKSA5MiUsIHZhcigtLWZnKSk7CiAgLS1kcy1pbmZvLWFjdGl2ZTogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWRzLWluZm8pIDg0JSwgdmFyKC0tZmcpKTsKICAtLWRzLXNsYXRlLWhvdmVyOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZHMtc2xhdGUpIDkyJSwgdmFyKC0tZmcpKTsKICAtLWRzLXNsYXRlLWFjdGl2ZTogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWRzLXNsYXRlKSA4NCUsIHZhcigtLWZnKSk7CiAgLS1kcy1henVyZS1ob3ZlcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWRzLWF6dXJlKSA5MiUsIHZhcigtLWZnKSk7CiAgLS1kcy1henVyZS1hY3RpdmU6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1kcy1henVyZSkgODQlLCB2YXIoLS1mZykpOwp9Cg==", "" + import.meta.url).href,
74
- themes: {
75
- light: new URL("data:text/css;base64,OnJvb3QgewogIC8qIFN1cmZhY2Ugcm9sZXMgKi8KICAtLWJnOiAjZjhmYWZjOwogIC0tZmc6ICMwZjE3MmE7CiAgLS1jYXJkOiAjZmZmZmZmOwogIC0tY2FyZC1mZzogIzBmMTcyYTsKICAtLXBvcG92ZXI6ICNmZmZmZmY7CiAgLS1wb3BvdmVyLWZnOiAjMGYxNzJhOwogIC0tbXV0ZWQ6ICNmMWY1Zjk7CiAgLS1tdXRlZC1mZzogIzY0NzQ4YjsKICAtLXNlY29uZGFyeTogI2UyZThmMDsKICAtLXNlY29uZGFyeS1mZzogIzFlMjkzYjsKICAtLWJyZDogI2UyZThmMDsKICAtLWlucHV0OiAjZTJlOGYwOwogIC0tcmluZzogIzYzNjZmMTsKCiAgLyogQWN0aW9uIHJvbGVzICovCiAgLS1wcmltYXJ5OiAjNGY0NmU1OwogIC0tcHJpbWFyeS1mZzogI2ZmZmZmZjsKICAtLWFjY2VudDogI2VlZjJmZjsKICAtLWFjY2VudC1mZzogIzM3MzBhMzsKICAtLWRlc3RydWN0aXZlOiAjZGMyNjI2OwogIC0tZGVzdHJ1Y3RpdmUtZmc6ICNmZmZmZmY7CgogIC8qIFN0YXR1cyByb2xlcyAqLwogIC0tZHMtc3VjY2VzczogIzEwYjk4MTsKICAtLWRzLXN1Y2Nlc3MtbGlnaHQ6ICNkMWZhZTU7CiAgLS1kcy1zdWNjZXNzLWZnOiAjZmZmZmZmOwogIC0tZHMtc3VjY2Vzcy10ZXh0OiAjMDY1ZjQ2OwogIC0tZHMtd2FybmluZzogI2Y5NzMxNjsKICAtLWRzLXdhcm5pbmctbGlnaHQ6ICNmZmVkZDU7CiAgLS1kcy13YXJuaW5nLWZnOiAjZmZmZmZmOwogIC0tZHMtd2FybmluZy10ZXh0OiAjN2MyZDEyOwogIC0tZHMtZGFuZ2VyOiAjZGMyNjI2OwogIC0tZHMtZGFuZ2VyLWxpZ2h0OiAjZmVlMmUyOwogIC0tZHMtZGFuZ2VyLWZnOiAjZmZmZmZmOwogIC0tZHMtZGFuZ2VyLXRleHQ6ICM5OTFiMWI7CiAgLS1kcy1pbmZvOiAjNTg1MGVjOwogIC0tZHMtaW5mby1saWdodDogI2UwZTdmZjsKICAtLWRzLWluZm8tZmc6ICNmZmZmZmY7CiAgLS1kcy1pbmZvLXRleHQ6ICMzNzMwYTM7CiAgLS1kcy1zbGF0ZTogIzQ3NTU2OTsKICAtLWRzLXNsYXRlLWxpZ2h0OiAjZTJlOGYwOwogIC0tZHMtc2xhdGUtZmc6ICNmZmZmZmY7CiAgLS1kcy1zbGF0ZS10ZXh0OiAjMzM0MTU1OwogIC0tZHMtYXp1cmU6ICMwZWE1ZTk7CiAgLS1kcy1henVyZS1saWdodDogI2UwZjJmZTsKICAtLWRzLWF6dXJlLWZnOiAjZmZmZmZmOwogIC0tZHMtYXp1cmUtdGV4dDogIzA3NTk4NTsKCiAgLyogRGF0YSB2aXN1YWxpemF0aW9uIHJvbGVzICovCiAgLS1jaGFydC0xOiAjNGY0NmU1OwogIC0tY2hhcnQtMjogIzEwYjk4MTsKICAtLWNoYXJ0LTM6ICNmOTczMTY7CiAgLS1jaGFydC00OiAjNjM2NmYxOwogIC0tY2hhcnQtNTogIzhiNWNmNjsKCiAgLyogTmF2aWdhdGlvbiByb2xlcyAqLwogIC0tc2lkZWJhcjogI2ZmZmZmZjsKICAtLXNpZGViYXItZmc6ICMwZjE3MmE7CiAgLS1zaWRlYmFyLXByaW1hcnk6ICM0ZjQ2ZTU7CiAgLS1zaWRlYmFyLXByaW1hcnktZmc6ICNmZmZmZmY7CiAgLS1zaWRlYmFyLWFjY2VudDogI2YxZjVmOTsKICAtLXNpZGViYXItYWNjZW50LWZnOiAjMWUyOTNiOwogIC0tc2lkZWJhci1icmQ6ICNlMmU4ZjA7CiAgLS1zaWRlYmFyLXJpbmc6ICM2MzY2ZjE7Cn0KCkBzdXBwb3J0cyBub3QgKGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgIzAwMCA1MCUsICNmZmYpKSB7CiAgOnJvb3QgewogICAgLyogQWN0aW9uIHJvbGUgZmFsbGJhY2tzICovCiAgICAtLXByaW1hcnktaG92ZXI6ICM0YTQyZDY7CiAgICAtLXByaW1hcnktYWN0aXZlOiAjNDUzZWM3OwogICAgLS1zZWNvbmRhcnktaG92ZXI6ICNkMWQ3ZTA7CiAgICAtLXNlY29uZGFyeS1hY3RpdmU6ICNjMGM3ZDA7CiAgICAtLWJyZC1ob3ZlcjogI2EzYTliNTsKICAgIC0tYnJkLWFjdGl2ZTogIzgzOGE5NzsKICAgIC0tZGVzdHJ1Y3RpdmUtaG92ZXI6ICNjYzI1MjY7CiAgICAtLWRlc3RydWN0aXZlLWFjdGl2ZTogI2JiMjQyNzsKCiAgICAvKiBTdGF0dXMgcm9sZSBmYWxsYmFja3MgKi8KICAgIC0tZHMtc3VjY2Vzcy1ob3ZlcjogIzEwYWM3YTsKICAgIC0tZHMtc3VjY2Vzcy1hY3RpdmU6ICMxMDlmNzM7CiAgICAtLWRzLXdhcm5pbmctaG92ZXI6ICNlNjZjMTg7CiAgICAtLWRzLXdhcm5pbmctYWN0aXZlOiAjZDQ2NDE5OwogICAgLS1kcy1kYW5nZXItaG92ZXI6ICNjYzI1MjY7CiAgICAtLWRzLWRhbmdlci1hY3RpdmU6ICNiYjI0Mjc7CiAgICAtLWRzLWluZm8taG92ZXI6ICM1YzYwZTE7CiAgICAtLWRzLWluZm8tYWN0aXZlOiAjNTY1OWQxOwogICAgLS1kcy1zbGF0ZS1ob3ZlcjogIzQzNTA2MjsKICAgIC0tZHMtc2xhdGUtYWN0aXZlOiAjM2Q0YTViOwogICAgLS1kcy1henVyZS1ob3ZlcjogIzAyODRjNzsKICAgIC0tZHMtYXp1cmUtYWN0aXZlOiAjMDM2OWExOwoKICAgIC8qIENvbXBvbmVudCBzZW1hbnRpYyBmYWxsYmFja3MgKi8KICAgIC8qLS1kcy1jYXRlZ29yeS10cmVlLWJyYW5jaC1saW5lLWFjdGl2ZS1jb2xvcjogI2M0Y2RmNzsqLwogIH0KfQo=", "" + import.meta.url).href,
76
- dark: new URL("data:text/css;base64,LnRoZW1lLWRhcmssCi5kYXJrLApbZGF0YS10aGVtZT0nZGFyayddIHsKICAvKiBTdXJmYWNlIHJvbGVzICovCiAgLS1iZzogIzBmMTcyYTsKICAtLWZnOiAjZjhmYWZjOwogIC0tY2FyZDogIzFlMjkzYjsKICAtLWNhcmQtZmc6ICNmOGZhZmM7CiAgLS1wb3BvdmVyOiAjMWUyOTNiOwogIC0tcG9wb3Zlci1mZzogI2Y4ZmFmYzsKICAtLW11dGVkOiAjMzM0MTU1OwogIC0tbXV0ZWQtZmc6ICM5NGEzYjg7CiAgLS1zZWNvbmRhcnk6ICMzMzQxNTU7CiAgLS1zZWNvbmRhcnktZmc6ICNmMWY1Zjk7CiAgLS1icmQ6ICMzMzQxNTU7CiAgLS1pbnB1dDogIzMzNDE1NTsKICAtLXJpbmc6ICM4MThjZjg7CgogIC8qIEFjdGlvbiByb2xlcyAqLwogIC0tcHJpbWFyeTogIzYzNjZmMTsKICAtLXByaW1hcnktZmc6ICNmZmZmZmY7CiAgLS1hY2NlbnQ6ICMxZTFiNGI7CiAgLS1hY2NlbnQtZmc6ICNjN2QyZmU7CiAgLS1kZXN0cnVjdGl2ZTogI2VmNDQ0NDsKICAtLWRlc3RydWN0aXZlLWZnOiAjZmZmZmZmOwoKICAvKiBTdGF0dXMgcm9sZXMgKi8KICAtLWRzLXN1Y2Nlc3M6ICMzNGQzOTk7CiAgLS1kcy1zdWNjZXNzLWxpZ2h0OiAjMDY0ZTNiOwogIC0tZHMtc3VjY2Vzcy1mZzogIzBmMTcyYTsKICAtLWRzLXN1Y2Nlc3MtdGV4dDogIzZlZTdiNzsKICAtLWRzLXdhcm5pbmc6ICNmYjkyM2M7CiAgLS1kcy13YXJuaW5nLWxpZ2h0OiAjN2MyZDEyOwogIC0tZHMtd2FybmluZy1mZzogIzBmMTcyYTsKICAtLWRzLXdhcm5pbmctdGV4dDogI2ZkYmE3NDsKICAtLWRzLWRhbmdlcjogI2Y4NzE3MTsKICAtLWRzLWRhbmdlci1saWdodDogIzdmMWQxZDsKICAtLWRzLWRhbmdlci1mZzogIzBmMTcyYTsKICAtLWRzLWRhbmdlci10ZXh0OiAjZmNhNWE1OwogIC0tZHMtaW5mbzogIzgxOGNmODsKICAtLWRzLWluZm8tbGlnaHQ6ICMzMTJlODE7CiAgLS1kcy1pbmZvLWZnOiAjMGYxNzJhOwogIC0tZHMtaW5mby10ZXh0OiAjYzdkMmZlOwogIC0tZHMtc2xhdGU6ICM5NGEzYjg7CiAgLS1kcy1zbGF0ZS1saWdodDogIzMzNDE1NTsKICAtLWRzLXNsYXRlLWZnOiAjMGYxNzJhOwogIC0tZHMtc2xhdGUtdGV4dDogI2NiZDVlMTsKICAtLWRzLWF6dXJlOiAjMzhiZGY4OwogIC0tZHMtYXp1cmUtbGlnaHQ6ICMwYzRhNmU7CiAgLS1kcy1henVyZS1mZzogIzBmMTcyYTsKICAtLWRzLWF6dXJlLXRleHQ6ICNiYWU2ZmQ7CgogIC8qIERhdGEgdmlzdWFsaXphdGlvbiByb2xlcyAqLwogIC0tY2hhcnQtMTogIzYzNjZmMTsKICAtLWNoYXJ0LTI6ICMzNGQzOTk7CiAgLS1jaGFydC0zOiAjZmI5MjNjOwogIC0tY2hhcnQtNDogIzgxOGNmODsKICAtLWNoYXJ0LTU6ICNhNzhiZmE7CgogIC8qIE5hdmlnYXRpb24gcm9sZXMgKi8KICAtLXNpZGViYXI6ICMxZTI5M2I7CiAgLS1zaWRlYmFyLWZnOiAjZjhmYWZjOwogIC0tc2lkZWJhci1wcmltYXJ5OiAjNjM2NmYxOwogIC0tc2lkZWJhci1wcmltYXJ5LWZnOiAjZmZmZmZmOwogIC0tc2lkZWJhci1hY2NlbnQ6ICMzMzQxNTU7CiAgLS1zaWRlYmFyLWFjY2VudC1mZzogI2YxZjVmOTsKICAtLXNpZGViYXItYnJkOiAjMzM0MTU1OwogIC0tc2lkZWJhci1yaW5nOiAjODE4Y2Y4Owp9CgpAc3VwcG9ydHMgbm90IChjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsICMwMDAgNTAlLCAjZmZmKSkgewogIC50aGVtZS1kYXJrLAogIC5kYXJrLAogIFtkYXRhLXRoZW1lPSdkYXJrJ10gewogICAgLyogQWN0aW9uIHJvbGUgZmFsbGJhY2tzICovCiAgICAtLXByaW1hcnktaG92ZXI6ICM2ZjcyZjI7CiAgICAtLXByaW1hcnktYWN0aXZlOiAjN2I3ZWYzOwogICAgLS1zZWNvbmRhcnktaG92ZXI6ICM0MzUwNjI7CiAgICAtLXNlY29uZGFyeS1hY3RpdmU6ICM1MzVmNzA7CiAgICAtLWJyZC1ob3ZlcjogIzZlNzk4NzsKICAgIC0tYnJkLWFjdGl2ZTogIzhjOTRhMDsKICAgIC0tZGVzdHJ1Y3RpdmUtaG92ZXI6ICNmMDUzNTM7CiAgICAtLWRlc3RydWN0aXZlLWFjdGl2ZTogI2YwNjE2MTsKCiAgICAvKiBTdGF0dXMgcm9sZSBmYWxsYmFja3MgKi8KICAgIC0tZHMtc3VjY2Vzcy1ob3ZlcjogIzQ0ZDZhMTsKICAgIC0tZHMtc3VjY2Vzcy1hY3RpdmU6ICM1M2Q5YTk7CiAgICAtLWRzLXdhcm5pbmctaG92ZXI6ICNmYjlhNGI7CiAgICAtLWRzLXdhcm5pbmctYWN0aXZlOiAjZmJhMzViOwogICAgLS1kcy1kYW5nZXItaG92ZXI6ICNmODdjN2M7CiAgICAtLWRzLWRhbmdlci1hY3RpdmU6ICNmODg3ODc7CiAgICAtLWRzLWluZm8taG92ZXI6ICM4Yjk1Zjg7CiAgICAtLWRzLWluZm8tYWN0aXZlOiAjOTQ5ZWY5OwogICAgLS1kcy1zbGF0ZS1ob3ZlcjogIzlmYWVjMDsKICAgIC0tZHMtc2xhdGUtYWN0aXZlOiAjYWFiN2M4OwogICAgLS1kcy1henVyZS1ob3ZlcjogIzRiYzNmOTsKICAgIC0tZHMtYXp1cmUtYWN0aXZlOiAjNWRjYmY5OwoKICAgIC8qIENvbXBvbmVudCBzZW1hbnRpYyBmYWxsYmFja3MgKi8KICAgIC8qLS1kcy1jYXRlZ29yeS10cmVlLWJyYW5jaC1saW5lLWFjdGl2ZS1jb2xvcjogIzUwNWI4YzsqLwogIH0KfQo=", "" + import.meta.url).href
77
- },
78
- defaultThemes: granularityDefaultThemes
79
- };
80
- /**
81
- * Полный реестр публичных компонентов пакета `@feugene/granularity`.
82
- *
83
- * Ключи — имена компонентов (совпадают с публичным subpath‑экспортом
84
- * `@feugene/granularity/components/<Name>`). Значения — browser‑safe
85
- * `ds<Name>Config` из `./config.ts` рядом с SFC.
86
- *
87
- * Для компонентов, у которых есть node-only вариант конфига
88
- * (например, `GrButton` с `tokenDefinitionsFromCssSync`), browser‑конфиг
89
- * остаётся здесь, а node‑вариант подставляется снаружи через
90
- * `createGranularityProvider(overrides)` — см. `./index.ts` (browser)
91
- * и `./node.ts` (node).
92
- *
93
- * Формат записи `<Name>: ds<Name>Config` критичен для regex‑парсинга
94
- * в `apps/showcase/scripts/generate-component-api.mjs`, не ломайте его.
95
- */
96
- var granularityComponentConfigs = {
97
- GrAlert: grAlertConfig,
98
- GrAvatar: grAvatarConfig,
99
- GrBadge: grBadgeConfig,
100
- GrBadgeWrap: grBadgeWrapConfig,
101
- GrBottomNav: grBottomNavConfig,
102
- GrButton: grButtonConfig,
103
- GrButtonGroup: grButtonGroupConfig,
104
- GrCard: grCardConfig,
105
- GrCheckbox: grCheckboxConfig,
106
- GrCollapse: grCollapseConfig,
107
- GrConfirmDialog: grConfirmDialogConfig,
108
- GrDataTable: grDataTableConfig,
109
- GrDialog: grDialogConfig,
110
- GrDrawer: grDrawerConfig,
111
- GrDropdown: grDropdownConfig,
112
- GrDropdownMenu: grDropdownMenuConfig,
113
- GrEmptyState: grEmptyStateConfig,
114
- GrFileUpload: grFileUploadConfig,
115
- GrFormField: grFormFieldConfig,
116
- GrFormFile: grFormFileConfig,
117
- GrFormSection: grFormSectionConfig,
118
- GrIcon: grIconConfig,
119
- GrImageViewer: grImageViewerConfig,
120
- GrInput: grInputConfig,
121
- GrInputTag: grInputTagConfig,
122
- GrLink: grLinkConfig,
123
- GrList: grListConfig,
124
- GrLoading: grLoadingConfig,
125
- GrModal: grModalConfig,
126
- GrNavbar: grNavbarConfig,
127
- GrNumberInput: grNumberInputConfig,
128
- GrPagination: grPaginationConfig,
129
- GrProgressBar: grProgressBarConfig,
130
- GrPromptDialog: grPromptDialogConfig,
131
- GrRadio: grRadioConfig,
132
- GrRadioGroup: grRadioGroupConfig,
133
- GrResponseErrorBanner: grResponseErrorBannerConfig,
134
- GrSegmented: grSegmentedConfig,
135
- GrSelect: grSelectConfig,
136
- GrSidebar: grSidebarConfig,
137
- GrSkeleton: grSkeletonConfig,
138
- GrSwitch: grSwitchConfig,
139
- GrTable: grTableConfig,
140
- GrTabs: grTabsConfig,
141
- GrTextarea: grTextareaConfig,
142
- GrToaster: grToasterConfig,
143
- GrTooltip: grTooltipConfig,
144
- GrTree: grTreeConfig,
145
- GrTreeSelect: grTreeSelectConfig
146
- };
147
- /** Базовый (browser-safe) набор компонентов в порядке реестра. */
148
- var baseComponents = Object.values(granularityComponentConfigs);
149
- /**
150
- * Собирает granular-provider пакета `@feugene/granularity`.
151
- *
152
- * Принимает массив `GranularComponentDescriptor`'ов — это компоненты,
153
- * у которых есть node-only вариант конфига (например, `GrButton` с
154
- * `tokenDefinitionsFromCssSync`). Дескрипторы с именем, которое уже
155
- * присутствует в базовом наборе, переопределяют его (побеждает
156
- * переданный снаружи), остальные — добавляются в конец списка.
157
- */
158
- function createGranularityProvider(overrides = []) {
159
- const overrideByName = new Map(overrides.map((component) => [component.name, component]));
160
- return defineGranularProvider({
161
- id: GRANULARITY_PROVIDER_ID,
162
- contractVersion: 1,
163
- packageBaseUrl,
164
- components: [...baseComponents.map((component) => overrideByName.get(component.name) ?? component), ...overrides.filter((component) => !baseComponents.some((base) => base.name === component.name))],
165
- theme
166
- });
167
- }
168
- //#endregion
169
- export { granularityThemeNames as a, granularityDefaultThemes as i, createGranularityProvider as n, granularityComponentConfigs as r, GRANULARITY_PROVIDER_ID as t };
@@ -1 +0,0 @@
1
- {"version":3,"file":"shared-DpjTvFno.js","names":[],"sources":["../../src/components/GrDialog/config.ts","../../src/components/GrResponseErrorBanner/config.ts","../../src/granular-provider/shared.ts"],"sourcesContent":["import {defineGranularComponent} from '@feugene/unocss-preset-granular/contract'\n\nimport { grDialogSafelist } from './safelist'\n\nexport const grDialogConfig = defineGranularComponent(import.meta.url, {\n name: 'GrDialog',\n dependencies: ['GrButton', 'GrModal'],\n safelist: grDialogSafelist,\n})\n","import { defineGranularComponent } from '@feugene/unocss-preset-granular/contract'\n\nexport const grResponseErrorBannerConfig = defineGranularComponent(import.meta.url, {\n name: 'GrResponseErrorBanner',\n dependencies: ['GrAlert', 'GrButton'],\n})\n","// Общий код browser- и node-entry granular-provider'а.\n//\n// Оба entry (`./index.ts`, `./node.ts`) отличаются только списком\n// компонентов, у которых есть node-only вариант конфига (например,\n// `GrButton`, чей `config.node.ts` использует `tokenDefinitionsFromCssSync`\n// и тянет `node:fs`). Browser-вариант таких компонентов берёт облегчённый\n// `./config.ts`, node-вариант — `./config.node.ts`. Всё остальное — `id`,\n// `theme.*`, `packageBaseUrl` и полный список browser-safe компонентов —\n// живёт здесь.\n//\n// ВАЖНО: все `new URL('../styles/...', import.meta.url)` намеренно находятся\n// здесь — `shared.ts` лежит в той же директории, что и `index.ts` / `node.ts`,\n// поэтому относительные пути идентичны. Это ОК для браузера: бандлеры\n// транслируют такие конструкции в статические asset-URL и `node:*` в бандл\n// не утаскивают.\n//\n// Ключи записи `<Name>: ds<Name>Config` в `granularityComponentConfigs`\n// критичны для regex‑парсинга в `apps/showcase/scripts/generate-component-api.mjs`,\n// не ломайте формат.\nimport {\n defineGranularProvider,\n type GranularComponentDescriptor,\n type GranularProvider,\n} from '@feugene/unocss-preset-granular/contract'\nimport { grAlertConfig } from '../components/GrAlert/config'\nimport { grAvatarConfig } from '../components/GrAvatar/config'\nimport { grBadgeConfig } from '../components/GrBadge/config'\nimport { grBadgeWrapConfig } from '../components/GrBadgeWrap/config'\nimport { grBottomNavConfig } from '../components/GrBottomNav/config'\nimport { grButtonConfig } from '../components/GrButton/config'\nimport { grButtonGroupConfig } from '../components/GrButtonGroup/config'\nimport { grCardConfig } from '../components/GrCard/config'\nimport { grCheckboxConfig } from '../components/GrCheckbox/config'\nimport { grCollapseConfig } from '../components/GrCollapse/config'\nimport { grConfirmDialogConfig } from '../components/GrConfirmDialog/config'\nimport { grDataTableConfig } from '../components/GrDataTable/config'\nimport { grDialogConfig } from '../components/GrDialog/config'\nimport { grDrawerConfig } from '../components/GrDrawer/config'\nimport { grDropdownConfig } from '../components/GrDropdown/config'\nimport { grDropdownMenuConfig } from '../components/GrDropdownMenu/config'\nimport { grEmptyStateConfig } from '../components/GrEmptyState/config'\nimport { grFileUploadConfig } from '../components/GrFileUpload/config'\nimport { grFormFieldConfig } from '../components/GrFormField/config'\nimport { grFormFileConfig } from '../components/GrFormFile/config'\nimport { grFormSectionConfig } from '../components/GrFormSection/config'\nimport { grIconConfig } from '../components/GrIcon/config'\nimport { grImageViewerConfig } from '../components/GrImageViewer/config'\nimport { grInputConfig } from '../components/GrInput/config'\nimport { grInputTagConfig } from '../components/GrInputTag/config'\nimport { grLinkConfig } from '../components/GrLink/config'\nimport { grListConfig } from '../components/GrList/config'\nimport { grLoadingConfig } from '../components/GrLoading/config'\nimport { grModalConfig } from '../components/GrModal/config'\nimport { grNavbarConfig } from '../components/GrNavbar/config'\nimport { grNumberInputConfig } from '../components/GrNumberInput/config'\nimport { grPaginationConfig } from '../components/GrPagination/config'\nimport { grProgressBarConfig } from '../components/GrProgressBar/config'\nimport { grPromptDialogConfig } from '../components/GrPromptDialog/config'\nimport { grRadioConfig } from '../components/GrRadio/config'\nimport { grRadioGroupConfig } from '../components/GrRadioGroup/config'\nimport { grResponseErrorBannerConfig } from '../components/GrResponseErrorBanner/config'\nimport { grSegmentedConfig } from '../components/GrSegmented/config'\nimport { grSelectConfig } from '../components/GrSelect/config'\nimport { grSidebarConfig } from '../components/GrSidebar/config'\nimport { grSkeletonConfig } from '../components/GrSkeleton/config'\nimport { grSwitchConfig } from '../components/GrSwitch/config'\nimport { grTableConfig } from '../components/GrTable/config'\nimport { grTabsConfig } from '../components/GrTabs/config'\nimport { grTextareaConfig } from '../components/GrTextarea/config'\nimport { grToasterConfig } from '../components/GrToaster/config'\nimport { grTooltipConfig } from '../components/GrTooltip/config'\nimport { grTreeConfig } from '../components/GrTree/config'\nimport { grTreeSelectConfig } from '../components/GrTreeSelect/config'\n\n/** Идентификатор провайдера — совпадает с именем пакета. */\nexport const GRANULARITY_PROVIDER_ID = '@feugene/granularity'\n\n// runtime-concat: литерал `new URL('..', import.meta.url)` rolldown заменяет\n// на `data:`-URL, поэтому собираем корень пакета из `import.meta.url` вручную\n// (отрезая два последних сегмента: имя файла и каталог `granular-provider/`).\nconst packageBaseUrl = `${import.meta.url.slice(\n 0,\n import.meta.url.lastIndexOf('/', import.meta.url.lastIndexOf('/') - 1) + 1,\n)}`\n\n/** Встроенные темы пакета. Единственный источник правды о списке тем. */\nexport const granularityThemeNames = ['light', 'dark'] as const\nexport type GranularityThemeName = (typeof granularityThemeNames)[number]\n\n/** Темы, активные по умолчанию, если окружение не переопределяет выбор. */\nexport const granularityDefaultThemes: readonly GranularityThemeName[] = ['light']\n\nconst theme = {\n baseCssUrl: new URL('../styles/base.css', import.meta.url).href,\n tokensCssUrl: new URL('../styles/tokens.css', import.meta.url).href,\n themes: {\n light: new URL('../styles/themes/light.css', import.meta.url).href,\n dark: new URL('../styles/themes/dark.css', import.meta.url).href,\n },\n defaultThemes: granularityDefaultThemes,\n} as const\n\n/**\n * Полный реестр публичных компонентов пакета `@feugene/granularity`.\n *\n * Ключи — имена компонентов (совпадают с публичным subpath‑экспортом\n * `@feugene/granularity/components/<Name>`). Значения — browser‑safe\n * `ds<Name>Config` из `./config.ts` рядом с SFC.\n *\n * Для компонентов, у которых есть node-only вариант конфига\n * (например, `GrButton` с `tokenDefinitionsFromCssSync`), browser‑конфиг\n * остаётся здесь, а node‑вариант подставляется снаружи через\n * `createGranularityProvider(overrides)` — см. `./index.ts` (browser)\n * и `./node.ts` (node).\n *\n * Формат записи `<Name>: ds<Name>Config` критичен для regex‑парсинга\n * в `apps/showcase/scripts/generate-component-api.mjs`, не ломайте его.\n */\nexport const granularityComponentConfigs = {\n GrAlert: grAlertConfig,\n GrAvatar: grAvatarConfig,\n GrBadge: grBadgeConfig,\n GrBadgeWrap: grBadgeWrapConfig,\n GrBottomNav: grBottomNavConfig,\n GrButton: grButtonConfig,\n GrButtonGroup: grButtonGroupConfig,\n GrCard: grCardConfig,\n GrCheckbox: grCheckboxConfig,\n GrCollapse: grCollapseConfig,\n GrConfirmDialog: grConfirmDialogConfig,\n GrDataTable: grDataTableConfig,\n GrDialog: grDialogConfig,\n GrDrawer: grDrawerConfig,\n GrDropdown: grDropdownConfig,\n GrDropdownMenu: grDropdownMenuConfig,\n GrEmptyState: grEmptyStateConfig,\n GrFileUpload: grFileUploadConfig,\n GrFormField: grFormFieldConfig,\n GrFormFile: grFormFileConfig,\n GrFormSection: grFormSectionConfig,\n GrIcon: grIconConfig,\n GrImageViewer: grImageViewerConfig,\n GrInput: grInputConfig,\n GrInputTag: grInputTagConfig,\n GrLink: grLinkConfig,\n GrList: grListConfig,\n GrLoading: grLoadingConfig,\n GrModal: grModalConfig,\n GrNavbar: grNavbarConfig,\n GrNumberInput: grNumberInputConfig,\n GrPagination: grPaginationConfig,\n GrProgressBar: grProgressBarConfig,\n GrPromptDialog: grPromptDialogConfig,\n GrRadio: grRadioConfig,\n GrRadioGroup: grRadioGroupConfig,\n GrResponseErrorBanner: grResponseErrorBannerConfig,\n GrSegmented: grSegmentedConfig,\n GrSelect: grSelectConfig,\n GrSidebar: grSidebarConfig,\n GrSkeleton: grSkeletonConfig,\n GrSwitch: grSwitchConfig,\n GrTable: grTableConfig,\n GrTabs: grTabsConfig,\n GrTextarea: grTextareaConfig,\n GrToaster: grToasterConfig,\n GrTooltip: grTooltipConfig,\n GrTree: grTreeConfig,\n GrTreeSelect: grTreeSelectConfig,\n}\n\nexport type GranularityComponentName = keyof typeof granularityComponentConfigs\n\n/** Базовый (browser-safe) набор компонентов в порядке реестра. */\nconst baseComponents: readonly GranularComponentDescriptor[] = Object.values(\n granularityComponentConfigs,\n)\n\n/**\n * Собирает granular-provider пакета `@feugene/granularity`.\n *\n * Принимает массив `GranularComponentDescriptor`'ов — это компоненты,\n * у которых есть node-only вариант конфига (например, `GrButton` с\n * `tokenDefinitionsFromCssSync`). Дескрипторы с именем, которое уже\n * присутствует в базовом наборе, переопределяют его (побеждает\n * переданный снаружи), остальные — добавляются в конец списка.\n */\nexport function createGranularityProvider(\n overrides: readonly GranularComponentDescriptor[] = [],\n): GranularProvider {\n const overrideByName = new Map(\n overrides.map(component => [component.name, component]),\n )\n const components: GranularComponentDescriptor[] = [\n ...baseComponents.map(component => overrideByName.get(component.name) ?? component),\n ...overrides.filter(component => !baseComponents.some(base => base.name === component.name)),\n ]\n\n return defineGranularProvider({\n id: GRANULARITY_PROVIDER_ID,\n contractVersion: 1,\n packageBaseUrl,\n components,\n theme,\n })\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAa,iBAAiB,wBAAwB,OAAO,KAAK,KAAK;CACrE,MAAM;CACN,cAAc,CAAC,YAAY,UAAU;CACrC,UAAU;CACX,CAAC;;;ACNF,IAAa,8BAA8B,wBAAwB,OAAO,KAAK,KAAK;CAClF,MAAM;CACN,cAAc,CAAC,WAAW,WAAW;CACtC,CAAC;;;;ACsEF,IAAa,0BAA0B;AAKvC,IAAM,iBAAiB,GAAG,OAAO,KAAK,IAAI,MACxC,GACA,OAAO,KAAK,IAAI,YAAY,KAAK,OAAO,KAAK,IAAI,YAAY,IAAI,GAAG,EAAE,GAAG,EAC1E;;AAGD,IAAa,wBAAwB,CAAC,SAAS,OAAO;;AAItD,IAAa,2BAA4D,CAAC,QAAQ;AAElF,IAAM,QAAQ;CACZ,YAAY,IAAA,IAAA,i2BAAA,KAAA,OAAA,KAAA,IAA8C,CAAC;CAC3D,cAAc,IAAA,IAAA,y2NAAA,KAAA,OAAA,KAAA,IAAgD,CAAC;CAC/D,QAAQ;EACN,OAAO,IAAA,IAAA,qrGAAA,KAAA,OAAA,KAAA,IAAsD,CAAC;EAC9D,MAAM,IAAA,IAAA,qxGAAA,KAAA,OAAA,KAAA,IAAqD,CAAC;EAC7D;CACD,eAAe;CAChB;;;;;;;;;;;;;;;;;AAkBD,IAAa,8BAA8B;CACzC,SAAS;CACT,UAAU;CACV,SAAS;CACT,aAAa;CACb,aAAa;CACb,UAAU;CACV,eAAe;CACf,QAAQ;CACR,YAAY;CACZ,YAAY;CACZ,iBAAiB;CACjB,aAAa;CACb,UAAU;CACV,UAAU;CACV,YAAY;CACZ,gBAAgB;CAChB,cAAc;CACd,cAAc;CACd,aAAa;CACb,YAAY;CACZ,eAAe;CACf,QAAQ;CACR,eAAe;CACf,SAAS;CACT,YAAY;CACZ,QAAQ;CACR,QAAQ;CACR,WAAW;CACX,SAAS;CACT,UAAU;CACV,eAAe;CACf,cAAc;CACd,eAAe;CACf,gBAAgB;CAChB,SAAS;CACT,cAAc;CACd,uBAAuB;CACvB,aAAa;CACb,UAAU;CACV,WAAW;CACX,YAAY;CACZ,UAAU;CACV,SAAS;CACT,QAAQ;CACR,YAAY;CACZ,WAAW;CACX,WAAW;CACX,QAAQ;CACR,cAAc;CACf;;AAKD,IAAM,iBAAyD,OAAO,OACpE,4BACD;;;;;;;;;;AAWD,SAAgB,0BACd,YAAoD,EAAE,EACpC;CAClB,MAAM,iBAAiB,IAAI,IACzB,UAAU,KAAI,cAAa,CAAC,UAAU,MAAM,UAAU,CAAC,CACxD;AAMD,QAAO,uBAAuB;EAC5B,IAAI;EACJ,iBAAiB;EACjB;EACA,YATgD,CAChD,GAAG,eAAe,KAAI,cAAa,eAAe,IAAI,UAAU,KAAK,IAAI,UAAU,EACnF,GAAG,UAAU,QAAO,cAAa,CAAC,eAAe,MAAK,SAAQ,KAAK,SAAS,UAAU,KAAK,CAAC,CAC7F;EAOC;EACD,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"x-Pa6C2hwi.js","names":[],"sources":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"x-circle-DQSlBLmX.js","names":[],"sources":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"GrAlert-HyCjYJeL.js","names":[],"sources":["../../../../src/components/GrAlert/GrAlert.vue","../../../../src/components/GrAlert/GrAlert.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nimport IconWarning from '~icons/lucide/alert-triangle'\nimport IconCheck from '~icons/lucide/check-circle'\nimport IconInfo from '~icons/lucide/info'\nimport IconClose from '~icons/lucide/x'\nimport IconError from '~icons/lucide/x-circle'\n\nimport type { GrTone } from '../shared/tones'\n\nexport type GrAlertTone = GrTone\nexport type GrAlertVariant = 'soft' | 'light'\n\ntype GrAlertResolvedStyles = {\n bg: string\n border: string\n icon: string\n title: string\n text: string\n close: string\n closeHover: string\n Icon: unknown\n}\n\nconst DEFAULT_TEXT_COLORS = {\n title: 'var(--fg)',\n text: 'var(--muted-fg)',\n close: 'var(--muted-fg)',\n closeHover: 'var(--fg)',\n} as const\n\nconst WARNING_LIGHT_TEXT_COLOR = '#92400e'\n\nconst emit = defineEmits<{\n (event: 'close'): void\n}>()\n\nconst props = withDefaults(defineProps<{\n tone?: GrAlertTone\n variant?: GrAlertVariant\n title?: string\n closable?: boolean\n backgroundColor?: string\n textColor?: string\n borderColor?: string\n}>(), {\n tone: 'info',\n variant: 'soft',\n title: undefined,\n closable: false,\n backgroundColor: undefined,\n textColor: undefined,\n borderColor: undefined,\n})\n\nconst getCustomColor = (value?: string) => value?.trim() || undefined\n\nconst SOFT_TONE_STYLES: Record<GrAlertTone, GrAlertResolvedStyles> = {\n primary: {\n bg: 'var(--accent)',\n border: 'color-mix(in srgb, var(--primary) 22%, var(--brd))',\n icon: 'var(--primary)',\n ...DEFAULT_TEXT_COLORS,\n Icon: IconInfo,\n },\n neutral: {\n bg: 'var(--muted)',\n border: 'var(--brd)',\n icon: 'var(--muted-fg)',\n ...DEFAULT_TEXT_COLORS,\n Icon: IconInfo,\n },\n info: {\n bg: 'var(--ds-info-light)',\n border: 'color-mix(in srgb, var(--ds-info) 22%, var(--brd))',\n icon: 'var(--ds-info)',\n ...DEFAULT_TEXT_COLORS,\n Icon: IconInfo,\n },\n success: {\n bg: 'var(--ds-success-light)',\n border: 'color-mix(in srgb, var(--ds-success) 22%, var(--brd))',\n icon: 'var(--ds-success)',\n ...DEFAULT_TEXT_COLORS,\n Icon: IconCheck,\n },\n warning: {\n bg: 'var(--ds-warning-light)',\n border: 'color-mix(in srgb, var(--ds-warning) 22%, var(--brd))',\n icon: 'var(--ds-warning)',\n ...DEFAULT_TEXT_COLORS,\n Icon: IconWarning,\n },\n danger: {\n bg: 'var(--ds-danger-light)',\n border: 'color-mix(in srgb, var(--ds-danger) 22%, var(--brd))',\n icon: 'var(--ds-danger)',\n ...DEFAULT_TEXT_COLORS,\n Icon: IconError,\n },\n slate: {\n bg: 'var(--ds-slate-light)',\n border: 'color-mix(in srgb, var(--ds-slate) 22%, var(--brd))',\n icon: 'var(--ds-slate)',\n ...DEFAULT_TEXT_COLORS,\n Icon: IconInfo,\n },\n azure: {\n bg: 'var(--ds-azure-light)',\n border: 'color-mix(in srgb, var(--ds-azure) 22%, var(--brd))',\n icon: 'var(--ds-azure)',\n ...DEFAULT_TEXT_COLORS,\n Icon: IconInfo,\n },\n}\n\nconst LIGHT_TONE_STYLES: Partial<Record<GrAlertTone, GrAlertResolvedStyles>> = {\n warning: {\n bg: '#fffbeb',\n border: '#fcd34d',\n icon: WARNING_LIGHT_TEXT_COLOR,\n title: WARNING_LIGHT_TEXT_COLOR,\n text: WARNING_LIGHT_TEXT_COLOR,\n close: WARNING_LIGHT_TEXT_COLOR,\n closeHover: WARNING_LIGHT_TEXT_COLOR,\n Icon: IconWarning,\n },\n}\n\nconst styles = computed<GrAlertResolvedStyles>(() => {\n const base = (props.variant === 'light' ? LIGHT_TONE_STYLES[props.tone] : undefined) ?? SOFT_TONE_STYLES[props.tone]\n const customTextColor = getCustomColor(props.textColor)\n\n return {\n ...base,\n bg: getCustomColor(props.backgroundColor) ?? base.bg,\n border: getCustomColor(props.borderColor) ?? base.border,\n icon: customTextColor ?? base.icon,\n title: customTextColor ?? base.title,\n text: customTextColor ?? base.text,\n close: customTextColor ?? base.close,\n closeHover: customTextColor ?? base.closeHover,\n }\n})\n\nconst rootStyle = computed(() => ({\n '--ds-alert-bg': styles.value.bg,\n '--ds-alert-brd': styles.value.border,\n '--ds-alert-icon-color': styles.value.icon,\n '--ds-alert-title-color': styles.value.title,\n '--ds-alert-text-color': styles.value.text,\n '--ds-alert-close-color': styles.value.close,\n '--ds-alert-close-hover-color': styles.value.closeHover,\n background: 'var(--ds-alert-bg)',\n borderColor: 'var(--ds-alert-brd)',\n}))\n</script>\n\n<template>\n <div\n role=\"alert\"\n class=\"rounded-[var(--ds-radius-lg)] border px-4 py-3\"\n :style=\"rootStyle\"\n >\n <div class=\"flex items-start gap-3\">\n <component :is=\"styles.Icon\" class=\"mt-0.5 h-5 w-5 text-[var(--ds-alert-icon-color)]\" aria-hidden=\"true\" />\n <div class=\"min-w-0 flex-1\">\n <div v-if=\"props.title\" class=\"text-[14px] font-700 text-[var(--ds-alert-title-color)]\">\n {{ props.title }}\n </div>\n <div class=\"mt-0.5 text-[13px] text-[var(--ds-alert-text-color)]\">\n <slot />\n </div>\n </div>\n\n <button\n v-if=\"props.closable\"\n type=\"button\"\n class=\"-mr-1 -mt-1 rounded-[var(--ds-radius-md)] p-1 text-[var(--ds-alert-close-color)] transition-colors hover:text-[var(--ds-alert-close-hover-color)]\"\n aria-label=\"Close\"\n @click=\"emit('close')\"\n >\n <IconClose class=\"h-4 w-4\" aria-hidden=\"true\" />\n </button>\n </div>\n </div>\n</template>","<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nimport IconWarning from '~icons/lucide/alert-triangle'\nimport IconCheck from '~icons/lucide/check-circle'\nimport IconInfo from '~icons/lucide/info'\nimport IconClose from '~icons/lucide/x'\nimport IconError from '~icons/lucide/x-circle'\n\nimport type { GrTone } from '../shared/tones'\n\nexport type GrAlertTone = GrTone\nexport type GrAlertVariant = 'soft' | 'light'\n\ntype GrAlertResolvedStyles = {\n bg: string\n border: string\n icon: string\n title: string\n text: string\n close: string\n closeHover: string\n Icon: unknown\n}\n\nconst DEFAULT_TEXT_COLORS = {\n title: 'var(--fg)',\n text: 'var(--muted-fg)',\n close: 'var(--muted-fg)',\n closeHover: 'var(--fg)',\n} as const\n\nconst WARNING_LIGHT_TEXT_COLOR = '#92400e'\n\nconst emit = defineEmits<{\n (event: 'close'): void\n}>()\n\nconst props = withDefaults(defineProps<{\n tone?: GrAlertTone\n variant?: GrAlertVariant\n title?: string\n closable?: boolean\n backgroundColor?: string\n textColor?: string\n borderColor?: string\n}>(), {\n tone: 'info',\n variant: 'soft',\n title: undefined,\n closable: false,\n backgroundColor: undefined,\n textColor: undefined,\n borderColor: undefined,\n})\n\nconst getCustomColor = (value?: string) => value?.trim() || undefined\n\nconst SOFT_TONE_STYLES: Record<GrAlertTone, GrAlertResolvedStyles> = {\n primary: {\n bg: 'var(--accent)',\n border: 'color-mix(in srgb, var(--primary) 22%, var(--brd))',\n icon: 'var(--primary)',\n ...DEFAULT_TEXT_COLORS,\n Icon: IconInfo,\n },\n neutral: {\n bg: 'var(--muted)',\n border: 'var(--brd)',\n icon: 'var(--muted-fg)',\n ...DEFAULT_TEXT_COLORS,\n Icon: IconInfo,\n },\n info: {\n bg: 'var(--ds-info-light)',\n border: 'color-mix(in srgb, var(--ds-info) 22%, var(--brd))',\n icon: 'var(--ds-info)',\n ...DEFAULT_TEXT_COLORS,\n Icon: IconInfo,\n },\n success: {\n bg: 'var(--ds-success-light)',\n border: 'color-mix(in srgb, var(--ds-success) 22%, var(--brd))',\n icon: 'var(--ds-success)',\n ...DEFAULT_TEXT_COLORS,\n Icon: IconCheck,\n },\n warning: {\n bg: 'var(--ds-warning-light)',\n border: 'color-mix(in srgb, var(--ds-warning) 22%, var(--brd))',\n icon: 'var(--ds-warning)',\n ...DEFAULT_TEXT_COLORS,\n Icon: IconWarning,\n },\n danger: {\n bg: 'var(--ds-danger-light)',\n border: 'color-mix(in srgb, var(--ds-danger) 22%, var(--brd))',\n icon: 'var(--ds-danger)',\n ...DEFAULT_TEXT_COLORS,\n Icon: IconError,\n },\n slate: {\n bg: 'var(--ds-slate-light)',\n border: 'color-mix(in srgb, var(--ds-slate) 22%, var(--brd))',\n icon: 'var(--ds-slate)',\n ...DEFAULT_TEXT_COLORS,\n Icon: IconInfo,\n },\n azure: {\n bg: 'var(--ds-azure-light)',\n border: 'color-mix(in srgb, var(--ds-azure) 22%, var(--brd))',\n icon: 'var(--ds-azure)',\n ...DEFAULT_TEXT_COLORS,\n Icon: IconInfo,\n },\n}\n\nconst LIGHT_TONE_STYLES: Partial<Record<GrAlertTone, GrAlertResolvedStyles>> = {\n warning: {\n bg: '#fffbeb',\n border: '#fcd34d',\n icon: WARNING_LIGHT_TEXT_COLOR,\n title: WARNING_LIGHT_TEXT_COLOR,\n text: WARNING_LIGHT_TEXT_COLOR,\n close: WARNING_LIGHT_TEXT_COLOR,\n closeHover: WARNING_LIGHT_TEXT_COLOR,\n Icon: IconWarning,\n },\n}\n\nconst styles = computed<GrAlertResolvedStyles>(() => {\n const base = (props.variant === 'light' ? LIGHT_TONE_STYLES[props.tone] : undefined) ?? SOFT_TONE_STYLES[props.tone]\n const customTextColor = getCustomColor(props.textColor)\n\n return {\n ...base,\n bg: getCustomColor(props.backgroundColor) ?? base.bg,\n border: getCustomColor(props.borderColor) ?? base.border,\n icon: customTextColor ?? base.icon,\n title: customTextColor ?? base.title,\n text: customTextColor ?? base.text,\n close: customTextColor ?? base.close,\n closeHover: customTextColor ?? base.closeHover,\n }\n})\n\nconst rootStyle = computed(() => ({\n '--ds-alert-bg': styles.value.bg,\n '--ds-alert-brd': styles.value.border,\n '--ds-alert-icon-color': styles.value.icon,\n '--ds-alert-title-color': styles.value.title,\n '--ds-alert-text-color': styles.value.text,\n '--ds-alert-close-color': styles.value.close,\n '--ds-alert-close-hover-color': styles.value.closeHover,\n background: 'var(--ds-alert-bg)',\n borderColor: 'var(--ds-alert-brd)',\n}))\n</script>\n\n<template>\n <div\n role=\"alert\"\n class=\"rounded-[var(--ds-radius-lg)] border px-4 py-3\"\n :style=\"rootStyle\"\n >\n <div class=\"flex items-start gap-3\">\n <component :is=\"styles.Icon\" class=\"mt-0.5 h-5 w-5 text-[var(--ds-alert-icon-color)]\" aria-hidden=\"true\" />\n <div class=\"min-w-0 flex-1\">\n <div v-if=\"props.title\" class=\"text-[14px] font-700 text-[var(--ds-alert-title-color)]\">\n {{ props.title }}\n </div>\n <div class=\"mt-0.5 text-[13px] text-[var(--ds-alert-text-color)]\">\n <slot />\n </div>\n </div>\n\n <button\n v-if=\"props.closable\"\n type=\"button\"\n class=\"-mr-1 -mt-1 rounded-[var(--ds-radius-md)] p-1 text-[var(--ds-alert-close-color)] transition-colors hover:text-[var(--ds-alert-close-hover-color)]\"\n aria-label=\"Close\"\n @click=\"emit('close')\"\n >\n <IconClose class=\"h-4 w-4\" aria-hidden=\"true\" />\n </button>\n </div>\n </div>\n</template>"],"mappings":";;;;;;;;;;;;AAgCA,IAAM,2BAA2B;;;;;;;;;;;;;;;;;;;EAPjC,MAAM,sBAAsB;GAC1B,OAAO;GACP,MAAM;GACN,OAAO;GACP,YAAY;GACb;EAID,MAAM,OAAO;EAIb,MAAM,QAAQ;EAkBd,MAAM,kBAAkB,UAAmB,OAAO,MAAM,IAAI,KAAA;EAE5D,MAAM,mBAA+D;GACnE,SAAS;IACP,IAAI;IACJ,QAAQ;IACR,MAAM;IACN,GAAG;IACH,MAAM;IACP;GACD,SAAS;IACP,IAAI;IACJ,QAAQ;IACR,MAAM;IACN,GAAG;IACH,MAAM;IACP;GACD,MAAM;IACJ,IAAI;IACJ,QAAQ;IACR,MAAM;IACN,GAAG;IACH,MAAM;IACP;GACD,SAAS;IACP,IAAI;IACJ,QAAQ;IACR,MAAM;IACN,GAAG;IACH,MAAM;IACP;GACD,SAAS;IACP,IAAI;IACJ,QAAQ;IACR,MAAM;IACN,GAAG;IACH,MAAM;IACP;GACD,QAAQ;IACN,IAAI;IACJ,QAAQ;IACR,MAAM;IACN,GAAG;IACH,MAAM;IACP;GACD,OAAO;IACL,IAAI;IACJ,QAAQ;IACR,MAAM;IACN,GAAG;IACH,MAAM;IACP;GACD,OAAO;IACL,IAAI;IACJ,QAAQ;IACR,MAAM;IACN,GAAG;IACH,MAAM;IACP;GACH;EAEA,MAAM,oBAAyE,EAC7E,SAAS;GACP,IAAI;GACJ,QAAQ;GACR,MAAM;GACN,OAAO;GACP,MAAM;GACN,OAAO;GACP,YAAY;GACZ,MAAM;GACP,EACH;EAEA,MAAM,SAAS,eAAsC;GACnD,MAAM,QAAQ,MAAM,YAAY,UAAU,kBAAkB,MAAM,QAAQ,KAAA,MAAc,iBAAiB,MAAM;GAC/G,MAAM,kBAAkB,eAAe,MAAM,UAAS;AAEtD,UAAO;IACL,GAAG;IACH,IAAI,eAAe,MAAM,gBAAgB,IAAI,KAAK;IAClD,QAAQ,eAAe,MAAM,YAAY,IAAI,KAAK;IAClD,MAAM,mBAAmB,KAAK;IAC9B,OAAO,mBAAmB,KAAK;IAC/B,MAAM,mBAAmB,KAAK;IAC9B,OAAO,mBAAmB,KAAK;IAC/B,YAAY,mBAAmB,KAAK;IACtC;IACD;EAED,MAAM,YAAY,gBAAgB;GAChC,iBAAiB,OAAO,MAAM;GAC9B,kBAAkB,OAAO,MAAM;GAC/B,yBAAyB,OAAO,MAAM;GACtC,0BAA0B,OAAO,MAAM;GACvC,yBAAyB,OAAO,MAAM;GACtC,0BAA0B,OAAO,MAAM;GACvC,gCAAgC,OAAO,MAAM;GAC7C,YAAY;GACZ,aAAa;GACd,EAAC;;uBAIA,mBA0BM,OAAA;IAzBJ,MAAK;IACL,OAAM;IACL,OAAK,eAAE,UAAA,MAAS;OAEjB,mBAoBM,OApBN,YAoBM;kBAnBJ,YAA2G,wBAA3F,OAAA,MAAO,KAAI,EAAA;KAAE,OAAM;KAAmD,eAAY;;IAClG,mBAOM,OAPN,YAOM,CANO,MAAM,SAAA,WAAA,EAAjB,mBAEM,OAFN,YAEM,gBADD,MAAM,MAAK,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA,EAEhB,mBAEM,OAFN,YAEM,CADJ,WAAQ,KAAA,QAAA,UAAA,CAAA,CAAA,CAAA,CAAA;IAKJ,MAAM,YAAA,WAAA,EADd,mBAQS,UAAA;;KANP,MAAK;KACL,OAAM;KACN,cAAW;KACV,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,KAAI,QAAA;QAEZ,YAAgD,MAAA,UAAA,EAAA;KAArC,OAAM;KAAU,eAAY"}
@@ -1,83 +0,0 @@
1
- import { t as loader_circle_default } from "../../../chunks/loader-circle-BUntgosj.js";
2
- import { n as grButtonBaseClass, r as grButtonClass } from "../../../chunks/grButtonStyles-DKuXUemw.js";
3
- import { computed, createBlock, createCommentVNode, createElementBlock, defineComponent, normalizeClass, normalizeStyle, openBlock, renderSlot, unref } from "vue";
4
- //#region src/components/GrButton/GrButton.vue?vue&type=script&setup=true&lang.ts
5
- var _hoisted_1 = [
6
- "data-ds-variant",
7
- "data-ds-tone",
8
- "type",
9
- "disabled",
10
- "aria-busy",
11
- "aria-label"
12
- ];
13
- //#endregion
14
- //#region src/components/GrButton/GrButton.vue
15
- var GrButton_default = /* @__PURE__ */ defineComponent({
16
- __name: "GrButton",
17
- props: {
18
- variant: { default: "primary" },
19
- tone: { default: "primary" },
20
- size: { default: "md" },
21
- loading: {
22
- type: Boolean,
23
- default: false
24
- },
25
- disabled: {
26
- type: Boolean,
27
- default: false
28
- },
29
- square: {
30
- type: Boolean,
31
- default: false
32
- },
33
- type: { default: "button" },
34
- ariaLabel: { default: void 0 }
35
- },
36
- setup(__props) {
37
- const props = __props;
38
- const isDisabled = computed(() => props.disabled || props.loading);
39
- const isSquare = computed(() => props.square);
40
- const squareStyle = computed(() => {
41
- if (!isSquare.value) return void 0;
42
- const v = `${(() => {
43
- if (props.size === "xs") return 28;
44
- if (props.size === "sm") return 32;
45
- if (props.size === "lg") return 44;
46
- return 40;
47
- })()}px`;
48
- return {
49
- width: v,
50
- minWidth: v,
51
- height: v,
52
- padding: "0px"
53
- };
54
- });
55
- const className = computed(() => {
56
- return grButtonClass({
57
- variant: props.variant,
58
- tone: props.tone,
59
- size: props.size,
60
- square: isSquare.value
61
- });
62
- });
63
- return (_ctx, _cache) => {
64
- return openBlock(), createElementBlock("button", {
65
- "data-ds-button": "",
66
- "data-ds-variant": props.variant,
67
- "data-ds-tone": props.tone,
68
- type: props.type,
69
- disabled: isDisabled.value,
70
- "aria-busy": props.loading ? "true" : void 0,
71
- "aria-label": props.ariaLabel,
72
- class: normalizeClass([unref(grButtonBaseClass), className.value]),
73
- style: normalizeStyle(squareStyle.value)
74
- }, [props.loading ? (openBlock(), createBlock(unref(loader_circle_default), {
75
- key: 0,
76
- class: "h-4 w-4 animate-spin",
77
- "aria-hidden": "true"
78
- })) : createCommentVNode("", true), renderSlot(_ctx.$slots, "default")], 14, _hoisted_1);
79
- };
80
- }
81
- });
82
- //#endregion
83
- export { GrButton_default as t };
@@ -1 +0,0 @@
1
- {"version":3,"file":"GrButton-CPDKonoB.js","names":[],"sources":["../../../../src/components/GrButton/GrButton.vue","../../../../src/components/GrButton/GrButton.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nimport IconLoader from '~icons/lucide/loader-circle'\n\nexport type { GrButtonSize, GrButtonTone, GrButtonVariant } from './grButtonStyles'\n\nimport {\n grButtonBaseClass,\n grButtonClass,\n type GrButtonSize,\n type GrButtonTone,\n type GrButtonVariant,\n} from './grButtonStyles'\n\nconst props = withDefaults(\n defineProps<{\n variant?: GrButtonVariant\n tone?: GrButtonTone\n size?: GrButtonSize\n loading?: boolean\n disabled?: boolean\n square?: boolean\n type?: 'button' | 'submit' | 'reset'\n ariaLabel?: string\n }>(),\n {\n variant: 'primary',\n tone: 'primary',\n size: 'md',\n loading: false,\n disabled: false,\n square: false,\n type: 'button',\n ariaLabel: undefined,\n },\n)\n\nconst isDisabled = computed(() => props.disabled || props.loading)\nconst isSquare = computed(() => props.square)\n\nconst squareStyle = computed(() => {\n if (!isSquare.value) return undefined\n\n const px = (() => {\n if (props.size === 'xs') return 28\n if (props.size === 'sm') return 32\n if (props.size === 'lg') return 44\n return 40\n })()\n\n const v = `${px}px`\n return {\n width: v,\n minWidth: v,\n height: v,\n padding: '0px',\n } as const\n})\n\nconst className = computed(() => {\n return grButtonClass({\n variant: props.variant,\n tone: props.tone,\n size: props.size,\n square: isSquare.value,\n })\n})\n</script>\n\n<template>\n <button\n data-ds-button\n :data-ds-variant=\"props.variant\"\n :data-ds-tone=\"props.tone\"\n :type=\"props.type\"\n :disabled=\"isDisabled\"\n :aria-busy=\"props.loading ? 'true' : undefined\"\n :aria-label=\"props.ariaLabel\"\n :class=\"[grButtonBaseClass, className]\"\n :style=\"squareStyle\"\n >\n <IconLoader v-if=\"props.loading\" class=\"h-4 w-4 animate-spin\" aria-hidden=\"true\" />\n <slot />\n </button>\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nimport IconLoader from '~icons/lucide/loader-circle'\n\nexport type { GrButtonSize, GrButtonTone, GrButtonVariant } from './grButtonStyles'\n\nimport {\n grButtonBaseClass,\n grButtonClass,\n type GrButtonSize,\n type GrButtonTone,\n type GrButtonVariant,\n} from './grButtonStyles'\n\nconst props = withDefaults(\n defineProps<{\n variant?: GrButtonVariant\n tone?: GrButtonTone\n size?: GrButtonSize\n loading?: boolean\n disabled?: boolean\n square?: boolean\n type?: 'button' | 'submit' | 'reset'\n ariaLabel?: string\n }>(),\n {\n variant: 'primary',\n tone: 'primary',\n size: 'md',\n loading: false,\n disabled: false,\n square: false,\n type: 'button',\n ariaLabel: undefined,\n },\n)\n\nconst isDisabled = computed(() => props.disabled || props.loading)\nconst isSquare = computed(() => props.square)\n\nconst squareStyle = computed(() => {\n if (!isSquare.value) return undefined\n\n const px = (() => {\n if (props.size === 'xs') return 28\n if (props.size === 'sm') return 32\n if (props.size === 'lg') return 44\n return 40\n })()\n\n const v = `${px}px`\n return {\n width: v,\n minWidth: v,\n height: v,\n padding: '0px',\n } as const\n})\n\nconst className = computed(() => {\n return grButtonClass({\n variant: props.variant,\n tone: props.tone,\n size: props.size,\n square: isSquare.value,\n })\n})\n</script>\n\n<template>\n <button\n data-ds-button\n :data-ds-variant=\"props.variant\"\n :data-ds-tone=\"props.tone\"\n :type=\"props.type\"\n :disabled=\"isDisabled\"\n :aria-busy=\"props.loading ? 'true' : undefined\"\n :aria-label=\"props.ariaLabel\"\n :class=\"[grButtonBaseClass, className]\"\n :style=\"squareStyle\"\n >\n <IconLoader v-if=\"props.loading\" class=\"h-4 w-4 animate-spin\" aria-hidden=\"true\" />\n <slot />\n </button>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAeA,MAAM,QAAQ;EAuBd,MAAM,aAAa,eAAe,MAAM,YAAY,MAAM,QAAO;EACjE,MAAM,WAAW,eAAe,MAAM,OAAM;EAE5C,MAAM,cAAc,eAAe;AACjC,OAAI,CAAC,SAAS,MAAO,QAAO,KAAA;GAS5B,MAAM,IAAI,UAPQ;AAChB,QAAI,MAAM,SAAS,KAAM,QAAO;AAChC,QAAI,MAAM,SAAS,KAAM,QAAO;AAChC,QAAI,MAAM,SAAS,KAAM,QAAO;AAChC,WAAO;OACN,CAEa;AAChB,UAAO;IACL,OAAO;IACP,UAAU;IACV,QAAQ;IACR,SAAS;IACV;IACF;EAED,MAAM,YAAY,eAAe;AAC/B,UAAO,cAAc;IACnB,SAAS,MAAM;IACf,MAAM,MAAM;IACZ,MAAM,MAAM;IACZ,QAAQ,SAAS;IAClB,CAAA;IACF;;uBAIC,mBAaS,UAAA;IAZP,kBAAA;IACC,mBAAiB,MAAM;IACvB,gBAAc,MAAM;IACpB,MAAM,MAAM;IACZ,UAAU,WAAA;IACV,aAAW,MAAM,UAAO,SAAY,KAAA;IACpC,cAAY,MAAM;IAClB,OAAK,eAAA,CAAG,MAAA,kBAAiB,EAAE,UAAA,MAAS,CAAA;IACpC,OAAK,eAAE,YAAA,MAAW;OAED,MAAM,WAAA,WAAA,EAAxB,YAAmF,MAAA,sBAAA,EAAA;;IAAlD,OAAM;IAAuB,eAAY;uCAC1E,WAAQ,KAAA,QAAA,UAAA,CAAA,EAAA,IAAA,WAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"GrButtonGroup-CPOH6V-P.js","names":[],"sources":["../../../../src/components/GrButtonGroup/GrButtonGroup.vue","../../../../src/components/GrButtonGroup/GrButtonGroup.vue"],"sourcesContent":["<script setup lang=\"ts\">\nwithDefaults(\n defineProps<{\n ariaLabel?: string\n }>(),\n {\n ariaLabel: undefined,\n },\n)\n</script>\n\n<template>\n <div\n data-ds-button-group\n class=\"inline-flex items-stretch\"\n role=\"group\"\n :aria-label=\"ariaLabel\"\n >\n <slot />\n </div>\n</template>\n<style>\n[data-ds-button-group] {\n --ds-button-group-radius: 0.375rem;\n}\n\n[data-ds-button-group] > [data-ds-button] {\n border-radius: 0;\n position: relative;\n}\n\n[data-ds-button-group] > [data-ds-button] + [data-ds-button] {\n margin-inline-start: -1px;\n}\n\n[data-ds-button-group] > [data-ds-button]:hover,\n[data-ds-button-group] > [data-ds-button]:focus-visible {\n z-index: 1;\n}\n\n[data-ds-button-group] > [data-ds-button]:first-child {\n border-start-start-radius: var(--ds-button-group-radius);\n border-end-start-radius: var(--ds-button-group-radius);\n}\n\n[data-ds-button-group] > [data-ds-button]:last-child {\n border-start-end-radius: var(--ds-button-group-radius);\n border-end-end-radius: var(--ds-button-group-radius);\n}\n\n</style>","<script setup lang=\"ts\">\nwithDefaults(\n defineProps<{\n ariaLabel?: string\n }>(),\n {\n ariaLabel: undefined,\n },\n)\n</script>\n\n<template>\n <div\n data-ds-button-group\n class=\"inline-flex items-stretch\"\n role=\"group\"\n :aria-label=\"ariaLabel\"\n >\n <slot />\n </div>\n</template>\n<style>\n[data-ds-button-group] {\n --ds-button-group-radius: 0.375rem;\n}\n\n[data-ds-button-group] > [data-ds-button] {\n border-radius: 0;\n position: relative;\n}\n\n[data-ds-button-group] > [data-ds-button] + [data-ds-button] {\n margin-inline-start: -1px;\n}\n\n[data-ds-button-group] > [data-ds-button]:hover,\n[data-ds-button-group] > [data-ds-button]:focus-visible {\n z-index: 1;\n}\n\n[data-ds-button-group] > [data-ds-button]:first-child {\n border-start-start-radius: var(--ds-button-group-radius);\n border-end-start-radius: var(--ds-button-group-radius);\n}\n\n[data-ds-button-group] > [data-ds-button]:last-child {\n border-start-end-radius: var(--ds-button-group-radius);\n border-end-end-radius: var(--ds-button-group-radius);\n}\n\n</style>"],"mappings":";;;;;;;;;;uBAYE,mBAOM,OAAA;IANF,wBAAA;IACA,OAAM;IACN,MAAK;IACJ,cAAY,QAAA;OAEf,WAAQ,KAAA,QAAA,UAAA,CAAA,EAAA,GAAA,WAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"GrCard-6yk1RRAQ.js","names":[],"sources":["../../../../src/components/GrCard/GrCard.vue"],"sourcesContent":["<template>\n <div\n class=\"rounded-[var(--ds-radius-lg)] border border-[var(--brd)] bg-[var(--card)] text-[var(--card-fg)] shadow-sm\"\n>\n <slot />\n </div>\n</template>"],"mappings":";;;;mBAEM,OAAM,6GAA2G;;qBADrH,mBAIM,OAJN,YAIM,CADJ,WAAQ,KAAA,QAAA,UAAA,CAAA,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"GrCheckbox-Bt3d7ckE.js","names":[],"sources":["../../../../src/components/GrCheckbox/GrCheckbox.vue","../../../../src/components/GrCheckbox/GrCheckbox.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * GrCheckbox — DS-примитив чекбокса с нативным скрытым `<input type=\"checkbox\">`\n * для интеграции с HTML-формами (`FormData`, `required`, `form`).\n *\n * Клавиатура: `Space`/`Enter` переключают значение, фокус — на корневом элементе.\n * A11y: `role=\"checkbox\"` + `aria-checked`/`aria-disabled`.\n */\nimport { ref, watch } from 'vue'\nimport IconCheck from '~icons/lucide/check'\n\nexport interface GrCheckboxProps {\n modelValue?: boolean\n disabled?: boolean\n name?: string\n value?: string\n required?: boolean\n form?: string\n /** Пробрасывается на скрытый нативный `<input>`, чтобы работал `<label for=\"...\">`. */\n id?: string\n}\n\nconst hiddenInputStyle = {\n position: 'absolute',\n opacity: '0',\n width: '0',\n height: '0',\n pointerEvents: 'none',\n} as const\n\nconst props = withDefaults(defineProps<GrCheckboxProps>(), {\n modelValue: false,\n disabled: false,\n name: undefined,\n value: 'on',\n required: false,\n form: undefined,\n id: undefined,\n})\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: boolean): void\n}>()\n\n// Держим `.checked` на нативном input синхронно с пропом — `:checked`-биндинг\n// на скрытом элементе иногда отстаёт при программных обновлениях.\nconst nativeInput = ref<HTMLInputElement | null>(null)\nwatch(\n () => props.modelValue,\n (value) => {\n if (nativeInput.value && nativeInput.value.checked !== value)\n nativeInput.value.checked = value\n },\n)\n\nfunction toggle(): void {\n if (props.disabled)\n return\n emit('update:modelValue', !props.modelValue)\n}\n\nfunction isInteractiveTarget(target: EventTarget | null): boolean {\n const el = target as HTMLElement | null\n if (!el)\n return false\n return !!el.closest('a,button,input,select,textarea,label,[role=\"button\"],[role=\"link\"]')\n}\n\nfunction onClick(e: MouseEvent): void {\n if (isInteractiveTarget(e.target))\n return\n toggle()\n}\n</script>\n<template>\n <div\n data-ds-checkbox\n class=\"inline-flex items-center gap-2 select-none focus-visible:outline-none focus-visible:rounded-[8px] focus-visible:shadow-[0_0_0_2px_var(--ring),0_0_0_4px_var(--bg)]\"\n role=\"checkbox\"\n :aria-checked=\"modelValue ? 'true' : 'false'\"\n :aria-disabled=\"disabled ? 'true' : undefined\"\n :tabindex=\"disabled ? -1 : 0\"\n :class=\"disabled ? 'cursor-not-allowed opacity-70' : 'cursor-pointer'\"\n @click=\"onClick\"\n @keydown.space.prevent=\"toggle\"\n @keydown.enter.prevent=\"toggle\"\n >\n <input\n :id=\"id\"\n ref=\"nativeInput\"\n type=\"checkbox\"\n :checked=\"modelValue\"\n :disabled=\"disabled\"\n :name=\"name\"\n :value=\"value\"\n :required=\"required\"\n :form=\"form\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n :style=\"hiddenInputStyle\"\n >\n <span\n data-ds-checkbox-indicator\n aria-hidden=\"true\"\n class=\"h-4 w-4 rounded border flex items-center justify-center transition-colors duration-150\"\n :class=\"modelValue\n ? 'border-[var(--primary)] bg-[var(--primary)]'\n : 'border-[var(--brd)] bg-[var(--bg)]'\"\n >\n <IconCheck\n class=\"ds-checkbox-icon h-3.5 w-3.5 transition-transform transition-opacity duration-150\"\n :class=\"modelValue\n ? 'opacity-100 scale-100 text-[var(--primary-fg)]'\n : 'opacity-0 scale-75 text-transparent'\"\n />\n </span>\n <span class=\"text-sm text-[var(--muted-fg)]\">\n <slot />\n </span>\n </div>\n</template>\n","<script setup lang=\"ts\">\n/**\n * GrCheckbox — DS-примитив чекбокса с нативным скрытым `<input type=\"checkbox\">`\n * для интеграции с HTML-формами (`FormData`, `required`, `form`).\n *\n * Клавиатура: `Space`/`Enter` переключают значение, фокус — на корневом элементе.\n * A11y: `role=\"checkbox\"` + `aria-checked`/`aria-disabled`.\n */\nimport { ref, watch } from 'vue'\nimport IconCheck from '~icons/lucide/check'\n\nexport interface GrCheckboxProps {\n modelValue?: boolean\n disabled?: boolean\n name?: string\n value?: string\n required?: boolean\n form?: string\n /** Пробрасывается на скрытый нативный `<input>`, чтобы работал `<label for=\"...\">`. */\n id?: string\n}\n\nconst hiddenInputStyle = {\n position: 'absolute',\n opacity: '0',\n width: '0',\n height: '0',\n pointerEvents: 'none',\n} as const\n\nconst props = withDefaults(defineProps<GrCheckboxProps>(), {\n modelValue: false,\n disabled: false,\n name: undefined,\n value: 'on',\n required: false,\n form: undefined,\n id: undefined,\n})\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: boolean): void\n}>()\n\n// Держим `.checked` на нативном input синхронно с пропом — `:checked`-биндинг\n// на скрытом элементе иногда отстаёт при программных обновлениях.\nconst nativeInput = ref<HTMLInputElement | null>(null)\nwatch(\n () => props.modelValue,\n (value) => {\n if (nativeInput.value && nativeInput.value.checked !== value)\n nativeInput.value.checked = value\n },\n)\n\nfunction toggle(): void {\n if (props.disabled)\n return\n emit('update:modelValue', !props.modelValue)\n}\n\nfunction isInteractiveTarget(target: EventTarget | null): boolean {\n const el = target as HTMLElement | null\n if (!el)\n return false\n return !!el.closest('a,button,input,select,textarea,label,[role=\"button\"],[role=\"link\"]')\n}\n\nfunction onClick(e: MouseEvent): void {\n if (isInteractiveTarget(e.target))\n return\n toggle()\n}\n</script>\n<template>\n <div\n data-ds-checkbox\n class=\"inline-flex items-center gap-2 select-none focus-visible:outline-none focus-visible:rounded-[8px] focus-visible:shadow-[0_0_0_2px_var(--ring),0_0_0_4px_var(--bg)]\"\n role=\"checkbox\"\n :aria-checked=\"modelValue ? 'true' : 'false'\"\n :aria-disabled=\"disabled ? 'true' : undefined\"\n :tabindex=\"disabled ? -1 : 0\"\n :class=\"disabled ? 'cursor-not-allowed opacity-70' : 'cursor-pointer'\"\n @click=\"onClick\"\n @keydown.space.prevent=\"toggle\"\n @keydown.enter.prevent=\"toggle\"\n >\n <input\n :id=\"id\"\n ref=\"nativeInput\"\n type=\"checkbox\"\n :checked=\"modelValue\"\n :disabled=\"disabled\"\n :name=\"name\"\n :value=\"value\"\n :required=\"required\"\n :form=\"form\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n :style=\"hiddenInputStyle\"\n >\n <span\n data-ds-checkbox-indicator\n aria-hidden=\"true\"\n class=\"h-4 w-4 rounded border flex items-center justify-center transition-colors duration-150\"\n :class=\"modelValue\n ? 'border-[var(--primary)] bg-[var(--primary)]'\n : 'border-[var(--brd)] bg-[var(--bg)]'\"\n >\n <IconCheck\n class=\"ds-checkbox-icon h-3.5 w-3.5 transition-transform transition-opacity duration-150\"\n :class=\"modelValue\n ? 'opacity-100 scale-100 text-[var(--primary-fg)]'\n : 'opacity-0 scale-75 text-transparent'\"\n />\n </span>\n <span class=\"text-sm text-[var(--muted-fg)]\">\n <slot />\n </span>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsBA,MAAM,mBAAmB;GACvB,UAAU;GACV,SAAS;GACT,OAAO;GACP,QAAQ;GACR,eAAe;GAChB;EAED,MAAM,QAAQ;EAUd,MAAM,OAAO;EAMb,MAAM,cAAc,IAA6B,KAAI;AACrD,cACQ,MAAM,aACX,UAAU;AACT,OAAI,YAAY,SAAS,YAAY,MAAM,YAAY,MACrD,aAAY,MAAM,UAAU;IAElC;EAEA,SAAS,SAAe;AACtB,OAAI,MAAM,SACR;AACF,QAAK,qBAAqB,CAAC,MAAM,WAAU;;EAG7C,SAAS,oBAAoB,QAAqC;GAChE,MAAM,KAAK;AACX,OAAI,CAAC,GACH,QAAO;AACT,UAAO,CAAC,CAAC,GAAG,QAAQ,yEAAoE;;EAG1F,SAAS,QAAQ,GAAqB;AACpC,OAAI,oBAAoB,EAAE,OAAO,CAC/B;AACF,WAAO;;;uBAIP,mBA4CM,OAAA;IA3CJ,oBAAA;IACA,OAAK,eAAA,CAAC,sKAKE,QAAA,WAAQ,kCAAA,iBAAA,CAAA;IAJhB,MAAK;IACJ,gBAAc,QAAA,aAAU,SAAA;IACxB,iBAAe,QAAA,WAAQ,SAAY,KAAA;IACnC,UAAU,QAAA,WAAQ,KAAA;IAEX;IACP,WAAO,CAAA,SAAA,cAAgB,QAAM,CAAA,UAAA,CAAA,EAAA,CAAA,QAAA,CAAA,EAAA,SAAA,cACN,QAAM,CAAA,UAAA,CAAA,EAAA,CAAA,QAAA,CAAA,CAAA;;IAE9B,mBAaC,SAAA;KAZE,IAAI,QAAA;cACD;KAAJ,KAAI;KACJ,MAAK;KACJ,SAAS,QAAA;KACT,UAAU,QAAA;KACV,MAAM,QAAA;KACN,OAAO,QAAA;KACP,UAAU,QAAA;KACV,MAAM,QAAA;KACP,UAAS;KACT,eAAY;KACX,OAAO;;IAEV,mBAcO,QAAA;KAbL,8BAAA;KACA,eAAY;KACZ,OAAK,eAAA,CAAC,0FACE,QAAA,aAAA,gDAAA,qCAAA,CAAA;QAIR,YAKE,MAAA,cAAA,EAAA,EAJA,OAAK,eAAA,CAAC,qFACE,QAAA,aAAA,mDAAA,sCAAA,CAAA,EAAA,EAAA,MAAA,GAAA,CAAA,QAAA,CAAA,CAAA,EAAA,EAAA;IAKZ,mBAEO,QAFP,YAEO,CADL,WAAQ,KAAA,QAAA,UAAA,CAAA,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"GrConfirmDialog-Bi2KLumL.js","names":[],"sources":["../../../../src/components/GrConfirmDialog/GrConfirmDialog.vue","../../../../src/components/GrConfirmDialog/GrConfirmDialog.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * GrConfirmDialog — DS-примитив диалога подтверждения поверх `GrDialog`.\n *\n * Синхронизирован с `GrDialog`/`GrPromptDialog` по набору проп-проксирования:\n * `size`, `closeOnBackdrop`, `closeOnEsc`, `showHeader`, `showCloseButton`,\n * `headerConfig`, `footerConfig`, `bodyConfig`, `closeLabel`.\n *\n * Клик по «Confirm»/«Cancel» эмитит одноимённое событие и закрывает диалог\n * через `update:modelValue`.\n */\nimport { computed } from 'vue'\n\nimport GrButton from '../GrButton/GrButton.vue'\nimport GrDialog from '../GrDialog/GrDialog.vue'\nimport GrResponseErrorBanner from '../GrResponseErrorBanner/GrResponseErrorBanner.vue'\nimport type { GrButtonSize, GrButtonTone, GrButtonVariant } from '../GrButton'\nimport type { GrDialogSectionConfig, GrDialogSize } from '../GrDialog'\nimport type { ResponseErrorInfo } from '../GrResponseErrorBanner'\n\nexport interface GrConfirmDialogProps {\n modelValue: boolean\n title?: string\n description?: string\n closeOnBackdrop?: boolean\n closeOnEsc?: boolean\n showHeader?: boolean\n showCloseButton?: boolean\n size?: GrDialogSize\n headerConfig?: GrDialogSectionConfig\n footerConfig?: GrDialogSectionConfig\n bodyConfig?: GrDialogSectionConfig\n /** A11y-лейбл кнопки закрытия (i18n). */\n closeLabel?: string\n buttonSize?: GrButtonSize\n confirmText?: string\n cancelText?: string\n confirmVariant?: GrButtonVariant\n confirmTone?: GrButtonTone\n /**\n * Структура ошибки ответа сервера для показа в теле диалога\n * (через `GrResponseErrorBanner`). Используется императивным\n * `useDialogService` для async-`onConfirm`. `null` — блок скрыт.\n */\n error?: ResponseErrorInfo | null\n /** Состояние загрузки кнопки Confirm (async-`onConfirm` in-flight). */\n confirmLoading?: boolean\n /** Принудительно дизейблит кнопку Confirm. */\n confirmDisabled?: boolean\n /**\n * Закрывать ли диалог автоматически по клику Confirm. По умолчанию `true`\n * (историческое поведение). `false` — отдаёт управление закрытием наружу\n * (нужно `useDialogService`, который ждёт результат async-`onConfirm`).\n */\n closeOnConfirm?: boolean\n}\n\nconst props = withDefaults(defineProps<GrConfirmDialogProps>(), {\n title: 'Confirm',\n description: undefined,\n closeOnBackdrop: true,\n closeOnEsc: true,\n showHeader: true,\n showCloseButton: true,\n size: 'md',\n headerConfig: undefined,\n footerConfig: undefined,\n bodyConfig: undefined,\n closeLabel: 'Close',\n buttonSize: undefined,\n confirmText: 'Confirm',\n cancelText: 'Cancel',\n confirmVariant: 'primary',\n confirmTone: 'primary',\n error: null,\n confirmLoading: false,\n confirmDisabled: false,\n closeOnConfirm: true,\n})\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: boolean): void\n (e: 'confirm'): void\n (e: 'cancel'): void\n}>()\n\nconst open = computed({\n get: () => props.modelValue,\n set: (value: boolean) => emit('update:modelValue', value),\n})\n\nfunction onCancel(): void {\n emit('cancel')\n emit('update:modelValue', false)\n}\n\nfunction onConfirm(): void {\n emit('confirm')\n if (props.closeOnConfirm)\n emit('update:modelValue', false)\n}\n</script>\n\n<template>\n <GrDialog\n v-model=\"open\"\n :title=\"title\"\n :size=\"size\"\n :close-on-backdrop=\"closeOnBackdrop\"\n :close-on-esc=\"closeOnEsc\"\n :show-header=\"showHeader\"\n :show-close-button=\"showCloseButton\"\n :header-config=\"headerConfig\"\n :footer-config=\"footerConfig\"\n :body-config=\"bodyConfig\"\n :close-label=\"closeLabel\"\n >\n <div class=\"grid gap-4\">\n <slot>\n <div v-if=\"description\" class=\"text-[14px] text-[var(--muted-fg)]\">\n {{ description }}\n </div>\n </slot>\n\n <slot name=\"error\" :error=\"error\">\n <GrResponseErrorBanner v-if=\"error\" :error=\"error\" :can-dismiss=\"false\" />\n </slot>\n </div>\n\n <template #footer>\n <slot name=\"footer\">\n <div class=\"flex items-center justify-end gap-3\">\n <GrButton data-testid=\"ds-confirm-cancel\" variant=\"outline\" :size=\"buttonSize\" @click=\"onCancel\">\n {{ cancelText }}\n </GrButton>\n <GrButton\n data-testid=\"ds-confirm-confirm\"\n :variant=\"confirmVariant\"\n :tone=\"confirmTone\"\n :size=\"buttonSize\"\n :loading=\"confirmLoading\"\n :disabled=\"confirmDisabled\"\n @click=\"onConfirm\"\n >\n {{ confirmText }}\n </GrButton>\n </div>\n </slot>\n </template>\n </GrDialog>\n</template>\n","<script setup lang=\"ts\">\n/**\n * GrConfirmDialog — DS-примитив диалога подтверждения поверх `GrDialog`.\n *\n * Синхронизирован с `GrDialog`/`GrPromptDialog` по набору проп-проксирования:\n * `size`, `closeOnBackdrop`, `closeOnEsc`, `showHeader`, `showCloseButton`,\n * `headerConfig`, `footerConfig`, `bodyConfig`, `closeLabel`.\n *\n * Клик по «Confirm»/«Cancel» эмитит одноимённое событие и закрывает диалог\n * через `update:modelValue`.\n */\nimport { computed } from 'vue'\n\nimport GrButton from '../GrButton/GrButton.vue'\nimport GrDialog from '../GrDialog/GrDialog.vue'\nimport GrResponseErrorBanner from '../GrResponseErrorBanner/GrResponseErrorBanner.vue'\nimport type { GrButtonSize, GrButtonTone, GrButtonVariant } from '../GrButton'\nimport type { GrDialogSectionConfig, GrDialogSize } from '../GrDialog'\nimport type { ResponseErrorInfo } from '../GrResponseErrorBanner'\n\nexport interface GrConfirmDialogProps {\n modelValue: boolean\n title?: string\n description?: string\n closeOnBackdrop?: boolean\n closeOnEsc?: boolean\n showHeader?: boolean\n showCloseButton?: boolean\n size?: GrDialogSize\n headerConfig?: GrDialogSectionConfig\n footerConfig?: GrDialogSectionConfig\n bodyConfig?: GrDialogSectionConfig\n /** A11y-лейбл кнопки закрытия (i18n). */\n closeLabel?: string\n buttonSize?: GrButtonSize\n confirmText?: string\n cancelText?: string\n confirmVariant?: GrButtonVariant\n confirmTone?: GrButtonTone\n /**\n * Структура ошибки ответа сервера для показа в теле диалога\n * (через `GrResponseErrorBanner`). Используется императивным\n * `useDialogService` для async-`onConfirm`. `null` — блок скрыт.\n */\n error?: ResponseErrorInfo | null\n /** Состояние загрузки кнопки Confirm (async-`onConfirm` in-flight). */\n confirmLoading?: boolean\n /** Принудительно дизейблит кнопку Confirm. */\n confirmDisabled?: boolean\n /**\n * Закрывать ли диалог автоматически по клику Confirm. По умолчанию `true`\n * (историческое поведение). `false` — отдаёт управление закрытием наружу\n * (нужно `useDialogService`, который ждёт результат async-`onConfirm`).\n */\n closeOnConfirm?: boolean\n}\n\nconst props = withDefaults(defineProps<GrConfirmDialogProps>(), {\n title: 'Confirm',\n description: undefined,\n closeOnBackdrop: true,\n closeOnEsc: true,\n showHeader: true,\n showCloseButton: true,\n size: 'md',\n headerConfig: undefined,\n footerConfig: undefined,\n bodyConfig: undefined,\n closeLabel: 'Close',\n buttonSize: undefined,\n confirmText: 'Confirm',\n cancelText: 'Cancel',\n confirmVariant: 'primary',\n confirmTone: 'primary',\n error: null,\n confirmLoading: false,\n confirmDisabled: false,\n closeOnConfirm: true,\n})\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: boolean): void\n (e: 'confirm'): void\n (e: 'cancel'): void\n}>()\n\nconst open = computed({\n get: () => props.modelValue,\n set: (value: boolean) => emit('update:modelValue', value),\n})\n\nfunction onCancel(): void {\n emit('cancel')\n emit('update:modelValue', false)\n}\n\nfunction onConfirm(): void {\n emit('confirm')\n if (props.closeOnConfirm)\n emit('update:modelValue', false)\n}\n</script>\n\n<template>\n <GrDialog\n v-model=\"open\"\n :title=\"title\"\n :size=\"size\"\n :close-on-backdrop=\"closeOnBackdrop\"\n :close-on-esc=\"closeOnEsc\"\n :show-header=\"showHeader\"\n :show-close-button=\"showCloseButton\"\n :header-config=\"headerConfig\"\n :footer-config=\"footerConfig\"\n :body-config=\"bodyConfig\"\n :close-label=\"closeLabel\"\n >\n <div class=\"grid gap-4\">\n <slot>\n <div v-if=\"description\" class=\"text-[14px] text-[var(--muted-fg)]\">\n {{ description }}\n </div>\n </slot>\n\n <slot name=\"error\" :error=\"error\">\n <GrResponseErrorBanner v-if=\"error\" :error=\"error\" :can-dismiss=\"false\" />\n </slot>\n </div>\n\n <template #footer>\n <slot name=\"footer\">\n <div class=\"flex items-center justify-end gap-3\">\n <GrButton data-testid=\"ds-confirm-cancel\" variant=\"outline\" :size=\"buttonSize\" @click=\"onCancel\">\n {{ cancelText }}\n </GrButton>\n <GrButton\n data-testid=\"ds-confirm-confirm\"\n :variant=\"confirmVariant\"\n :tone=\"confirmTone\"\n :size=\"buttonSize\"\n :loading=\"confirmLoading\"\n :disabled=\"confirmDisabled\"\n @click=\"onConfirm\"\n >\n {{ confirmText }}\n </GrButton>\n </div>\n </slot>\n </template>\n </GrDialog>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyDA,MAAM,QAAQ;EAuBd,MAAM,OAAO;EAMb,MAAM,OAAO,SAAS;GACpB,WAAW,MAAM;GACjB,MAAM,UAAmB,KAAK,qBAAqB,MAAM;GAC1D,CAAA;EAED,SAAS,WAAiB;AACxB,QAAK,SAAQ;AACb,QAAK,qBAAqB,MAAK;;EAGjC,SAAS,YAAkB;AACzB,QAAK,UAAS;AACd,OAAI,MAAM,eACR,MAAK,qBAAqB,MAAK;;;uBAKjC,YA6CW,kBAAA;gBA5CA,KAAA;sEAAI,QAAA;IACZ,OAAO,QAAA;IACP,MAAM,QAAA;IACN,qBAAmB,QAAA;IACnB,gBAAc,QAAA;IACd,eAAa,QAAA;IACb,qBAAmB,QAAA;IACnB,iBAAe,QAAA;IACf,iBAAe,QAAA;IACf,eAAa,QAAA;IACb,eAAa,QAAA;;IAcH,QAAM,cAkBR,CAjBP,WAiBO,KAAA,QAAA,UAAA,EAAA,QAAA,CAhBL,mBAeM,OAfN,YAeM,CAdJ,YAEW,kBAAA;KAFD,eAAY;KAAoB,SAAQ;KAAW,MAAM,QAAA;KAAa,SAAO;;4BACrE,CAAA,gBAAA,gBAAb,QAAA,WAAU,EAAA,EAAA,CAAA,CAAA;;qBAEf,YAUW,kBAAA;KATT,eAAY;KACX,SAAS,QAAA;KACT,MAAM,QAAA;KACN,MAAM,QAAA;KACN,SAAS,QAAA;KACT,UAAU,QAAA;KACV,SAAO;;4BAES,CAAA,gBAAA,gBAAd,QAAA,YAAW,EAAA,EAAA,CAAA,CAAA;;;;;;;;;2BAjBhB,CAVN,mBAUM,OAVN,YAUM,CATJ,WAIO,KAAA,QAAA,WAAA,EAAA,QAAA,CAHM,QAAA,eAAA,WAAA,EAAX,mBAEM,OAFN,YAEM,gBADD,QAAA,YAAW,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA,CAAA,CAAA,EAIlB,WAEO,KAAA,QAAA,SAAA,EAFa,OAAO,QAAA,OAAK,QAEzB,CADwB,QAAA,SAAA,WAAA,EAA7B,YAA0E,+BAAA;;KAArC,OAAO,QAAA;KAAQ,eAAa"}