@feugene/granularity 0.9.4 → 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 (457) 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-B_nSBc7W.js → config-1uSYl98Y.js} +5 -5
  13. package/dist/chunks/{config-B_nSBc7W.js.map → config-1uSYl98Y.js.map} +1 -1
  14. package/dist/chunks/{config-DaHI5bD_2.js.map → config-8Pcutu1j2.js.map} +1 -1
  15. package/dist/chunks/{config-DoBk_CzG.js.map → config-B0qIpo8m.js.map} +1 -1
  16. package/dist/chunks/{config-BY81UKv0.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-72sW9Bag2.js → config-BIRO0vDJ2.js} +6 -6
  20. package/dist/chunks/{config-72sW9Bag2.js.map → config-BIRO0vDJ2.js.map} +1 -1
  21. package/dist/chunks/{config-Dzd6BzIN2.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-B1kFmhpM.js.map → config-BUHuGBik.js.map} +1 -1
  26. package/dist/chunks/{config-DF_RlCIO.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-O1_FTqD3.js.map → config-Bah4oHwL.js.map} +1 -1
  31. package/dist/chunks/{config-Br_qI3Za.js → config-C49QUoJL.js} +3 -3
  32. package/dist/chunks/config-C49QUoJL.js.map +1 -0
  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-CdJpnjDj.js → config-C7NpDrfO.js} +5 -5
  36. package/dist/chunks/{config-CdJpnjDj.js.map → config-C7NpDrfO.js.map} +1 -1
  37. package/dist/chunks/{config-DSBlHQVa.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-BeQuykDk2.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-DmjwIqx1.js.map → config-Cb2PAlSD.js.map} +1 -1
  42. package/dist/chunks/{config-BnWSHTEU.js → config-ClhKPJvg.js} +5 -5
  43. package/dist/chunks/{config-BnWSHTEU.js.map → config-ClhKPJvg.js.map} +1 -1
  44. package/dist/chunks/{config-d386uO3O.js → config-Cpi9Mh2J.js} +3 -3
  45. package/dist/chunks/{config-d386uO3O.js.map → config-Cpi9Mh2J.js.map} +1 -1
  46. package/dist/chunks/{config-Cp_XHsze.js → config-CrG1XiE7.js} +4 -4
  47. package/dist/chunks/{config-Cp_XHsze.js.map → config-CrG1XiE7.js.map} +1 -1
  48. package/dist/chunks/{config-C5OwJM3-.js → config-CziwTDDL.js} +3 -3
  49. package/dist/chunks/{config-C5OwJM3-.js.map → config-CziwTDDL.js.map} +1 -1
  50. package/dist/chunks/{config-BbKroFtR.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-D4s_QWVP.js → config-D_R56_gT.js} +5 -5
  56. package/dist/chunks/{config-D4s_QWVP.js.map → config-D_R56_gT.js.map} +1 -1
  57. package/dist/chunks/{config-_3De4HFf.js → config-DezDih8_.js} +4 -4
  58. package/dist/chunks/config-DezDih8_.js.map +1 -0
  59. package/dist/chunks/{config-CFf7xaG1.js → config-DnvPqu4g.js} +3 -3
  60. package/dist/chunks/{config-CFf7xaG1.js.map → config-DnvPqu4g.js.map} +1 -1
  61. package/dist/chunks/{config-D6Oe3blW2.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-CvGdaXvH.js.map → config-HZto2PVy.js.map} +1 -1
  64. package/dist/chunks/{config-BOdu-O_B.js.map → config-JOtB4mzs.js.map} +1 -1
  65. package/dist/chunks/{config-iuMz79Mg.js.map → config-JpHA4Xx0.js.map} +1 -1
  66. package/dist/chunks/{config-CetsgpaZ2.js → config-LGrZIdaZ2.js} +1 -1
  67. package/dist/chunks/{config-CetsgpaZ2.js.map → config-LGrZIdaZ2.js.map} +1 -1
  68. package/dist/chunks/{config-Dcb7xK-C.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-BU0olrvr.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-Ci9nXGUV.js.map → config-ZiXWIRBX.js.map} +1 -1
  74. package/dist/chunks/{config-B2YTEe_h.js → config-eYLZYOUS2.js} +63 -63
  75. package/dist/chunks/config-eYLZYOUS2.js.map +1 -0
  76. package/dist/chunks/{config-Bcf-8XlK2.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-Bx3Kuy6z.js → es-DBhctWg-.js} +3 -3
  86. package/dist/chunks/{es-Bx3Kuy6z.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-B_-DKytw.js +35 -0
  94. package/dist/chunks/grDropdownStyles-B_-DKytw.js.map +1 -0
  95. package/dist/chunks/{grLoadingStyles-DmI-SJ3i.js.map → grLoadingStyles-R5sreH__.js.map} +1 -1
  96. package/dist/chunks/{grModalStyles-DS1Vl6EW.js → grModalStyles-DWd3i05Q.js} +7 -7
  97. package/dist/chunks/grModalStyles-DWd3i05Q.js.map +1 -0
  98. package/dist/chunks/{grSelectStyles-pUt19VGy.js → grSelectStyles-CLK5hRd3.js} +3 -3
  99. package/dist/chunks/grSelectStyles-CLK5hRd3.js.map +1 -0
  100. package/dist/chunks/{grStyle-CUaTmpyW.js → grStyle-Blc9otAx.js} +6 -6
  101. package/dist/chunks/grStyle-Blc9otAx.js.map +1 -0
  102. package/dist/chunks/{granularityI18n-LcJ88Vce.js → granularityI18n-DoV7Ca2m.js} +18 -3
  103. package/dist/chunks/granularityI18n-DoV7Ca2m.js.map +1 -0
  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-DtM6TyE4.js +1249 -0
  121. package/dist/chunks/useFloating-DtM6TyE4.js.map +1 -0
  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-Br6WJkLE.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-C7XLxp8e.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-BXb5Cxxf.js +95 -0
  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-CLPwbiyG.js → GrDropdownMenu-DFEJLPcV.js} +10 -10
  172. package/dist/components/GrDropdownMenu/chunks/{GrDropdownMenu-CLPwbiyG.js.map → GrDropdownMenu-DFEJLPcV.js.map} +1 -1
  173. package/dist/components/GrDropdownMenu/index.js +2 -2
  174. package/dist/components/GrEmptyState/chunks/{GrEmptyState-Dj2V5GaX.js → GrEmptyState-CA3BiTV7.js} +3 -3
  175. package/dist/components/GrEmptyState/chunks/{GrEmptyState-Dj2V5GaX.js.map → GrEmptyState-CA3BiTV7.js.map} +1 -1
  176. package/dist/components/GrEmptyState/index.js +2 -2
  177. package/dist/components/GrFileUpload/chunks/{GrFileUpload-BEKNB1RM.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-CIleXnfr.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-DpGhY7MX.js → GrFormSection-Ce21jcgo.js} +1 -1
  187. package/dist/components/GrFormSection/chunks/{GrFormSection-DpGhY7MX.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-CsvXQHM9.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-Dcj3F6rQ.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-BMwn2iJ9.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-D8nM1FuV.js → GrList-Dx772Ns4.js} +1 -1
  205. package/dist/components/GrList/chunks/{GrList-D8nM1FuV.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-lh0lOmoi.js → GrModal-BkjW9jZS.js} +7 -7
  211. package/dist/components/GrModal/chunks/{GrModal-lh0lOmoi.js.map → GrModal-BkjW9jZS.js.map} +1 -1
  212. package/dist/components/GrModal/index.js +3 -3
  213. package/dist/components/GrNavbar/chunks/{GrNavbar-BH7XiF9q.js → GrNavbar-DW3MiIIf.js} +6 -6
  214. package/dist/components/GrNavbar/chunks/{GrNavbar-BH7XiF9q.js.map → GrNavbar-DW3MiIIf.js.map} +1 -1
  215. package/dist/components/GrNavbar/index.js +2 -2
  216. package/dist/components/GrNumberInput/chunks/{GrNumberInput-YIWhV85S.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-Bu9wv6it.js +165 -0
  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-C2HdYjp4.js → GrProgressBar-CC3z-Zqp.js} +3 -3
  223. package/dist/components/GrProgressBar/chunks/{GrProgressBar-C2HdYjp4.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-BV4EW3XO.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-IFU9Hiu2.js → GrRadio-CPTixXaY.js} +6 -6
  229. package/dist/components/GrRadio/chunks/{GrRadio-IFU9Hiu2.js.map → GrRadio-CPTixXaY.js.map} +1 -1
  230. package/dist/components/GrRadio/index.js +2 -2
  231. package/dist/components/GrRadioGroup/chunks/{GrRadioGroup-C8IcJuuF.js → GrRadioGroup-vKZCbkCp.js} +3 -3
  232. package/dist/components/GrRadioGroup/chunks/{GrRadioGroup-C8IcJuuF.js.map → GrRadioGroup-vKZCbkCp.js.map} +1 -1
  233. package/dist/components/GrRadioGroup/index.js +2 -2
  234. package/dist/components/GrResponseErrorBanner/chunks/{GrResponseErrorBanner-BMvXREcv.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-CzdTh4gd.js → GrResponseErrorBanner-Cdu9ekK9.js} +5 -5
  237. package/dist/components/GrResponseErrorBanner/chunks/{GrResponseErrorBanner-CzdTh4gd.js.map → GrResponseErrorBanner-Cdu9ekK9.js.map} +1 -1
  238. package/dist/components/GrResponseErrorBanner/index.js +2 -2
  239. package/dist/components/GrSegmented/chunks/{GrSegmented-BRmwBsEG.js → GrSegmented-C1y0UXpQ.js} +5 -5
  240. package/dist/components/GrSegmented/chunks/{GrSegmented-BRmwBsEG.js.map → GrSegmented-C1y0UXpQ.js.map} +1 -1
  241. package/dist/components/GrSegmented/index.js +2 -2
  242. package/dist/components/GrSelect/chunks/{GrSelect-CnHdbPlf.js → GrSelect-RShK21lK.js} +106 -112
  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-URyMkBqI.js → GrSkeleton-DsN-_CDZ.js} +1 -1
  249. package/dist/components/GrSkeleton/chunks/{GrSkeleton-URyMkBqI.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-29h0QhMO.js → GrSwitch-DAioyccZ.js} +10 -10
  252. package/dist/components/GrSwitch/chunks/{GrSwitch-29h0QhMO.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-D3ntDdtg.js → GrTabs-Z-FDJUr_.js} +3 -3
  258. package/dist/components/GrTabs/chunks/{GrTabs-D3ntDdtg.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-Cv6r2GuC.js → GrTextarea-D56YxhKq.js} +3 -3
  261. package/dist/components/GrTextarea/chunks/{GrTextarea-Cv6r2GuC.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-BeyZ8ssR.js +109 -0
  267. package/dist/components/GrTooltip/chunks/GrTooltip-BeyZ8ssR.js.map +1 -0
  268. package/dist/components/GrTooltip/index.js +2 -2
  269. package/dist/components/GrTree/chunks/{GrTree-B2SMU5Py.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-C1abr5uH.js → GrTreeSelect-B2xBKs5Q.js} +21 -49
  273. package/dist/components/GrTreeSelect/chunks/GrTreeSelect-B2xBKs5Q.js.map +1 -0
  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/GrDropdown/grDropdownStyles.d.ts +3 -2
  312. package/dist/types/src/components/GrDropdownMenu/GrDropdownMenu.vue.d.ts +2 -2
  313. package/dist/types/src/components/GrDropdownMenu/GrDropdownMenuGroup.vue.d.ts +1 -1
  314. package/dist/types/src/components/GrDropdownMenu/GrDropdownMenuList.vue.d.ts +2 -2
  315. package/dist/types/src/components/GrFileUpload/GrFileUpload.vue.d.ts +5 -5
  316. package/dist/types/src/components/GrFormFile/GrFormFile.vue.d.ts +11 -11
  317. package/dist/types/src/components/GrImageViewer/GrImageViewer.vue.d.ts +18 -18
  318. package/dist/types/src/components/GrInput/GrInput.vue.d.ts +14 -0
  319. package/dist/types/src/components/GrInput/grInputStyles.d.ts +3 -3
  320. package/dist/types/src/components/GrInputTag/GrInputTag.vue.d.ts +2 -2
  321. package/dist/types/src/components/GrLink/GrLink.vue.d.ts +11 -5
  322. package/dist/types/src/components/GrLink/grLinkStyles.d.ts +31 -3
  323. package/dist/types/src/components/GrLink/index.d.ts +1 -1
  324. package/dist/types/src/components/GrLoading/GrLoading.vue.d.ts +1 -1
  325. package/dist/types/src/components/GrModal/grModalStyles.d.ts +2 -2
  326. package/dist/types/src/components/GrNumberInput/GrNumberInput.vue.d.ts +17 -4
  327. package/dist/types/src/components/GrPagination/GrPagination.vue.d.ts +13 -1
  328. package/dist/types/src/components/GrPromptDialog/GrPromptDialog.vue.d.ts +12 -12
  329. package/dist/types/src/components/GrSegmented/GrSegmented.vue.d.ts +2 -2
  330. package/dist/types/src/components/GrSegmented/grSegmentedStyles.d.ts +5 -5
  331. package/dist/types/src/components/GrSelect/GrSelect.vue.d.ts +7 -7
  332. package/dist/types/src/components/GrSelect/grSelectStyles.d.ts +2 -1
  333. package/dist/types/src/components/GrSidebar/GrSidebar.vue.d.ts +33 -10
  334. package/dist/types/src/components/GrSidebar/GrSidebarItem.vue.d.ts +64 -0
  335. package/dist/types/src/components/GrSidebar/index.d.ts +1 -0
  336. package/dist/types/src/components/GrSidebar/sidebarContext.d.ts +9 -0
  337. package/dist/types/src/components/GrSwitch/GrSwitch.vue.d.ts +1 -1
  338. package/dist/types/src/components/GrSwitch/grSwitchStyles.d.ts +2 -2
  339. package/dist/types/src/components/GrToaster/GrToaster.vue.d.ts +9 -4
  340. package/dist/types/src/components/GrTree/GrTree.vue.d.ts +1 -1
  341. package/dist/types/src/components/GrTreeSelect/GrTreeSelect.vue.d.ts +2 -2
  342. package/dist/types/src/components/GrTreeSelect/grTreeSelectStyles.d.ts +1 -1
  343. package/dist/types/src/components/GrTreeSelect/grTreeSelectTypes.d.ts +1 -1
  344. package/dist/types/src/composables/internal/useAddonMeasurement.d.ts +18 -0
  345. package/dist/types/src/composables/internal/useEscapeToClose.d.ts +11 -0
  346. package/dist/types/src/composables/internal/useFloating.d.ts +53 -0
  347. package/dist/types/src/composables/useTheme.d.ts +5 -2
  348. package/dist/types/src/composables/useToast.d.ts +33 -1
  349. package/dist/types/src/directives/hotkey.d.ts +14 -0
  350. package/dist/types/src/granular-provider/shared.d.ts +1 -3
  351. package/dist/types/src/i18n/messages/en.d.ts +132 -0
  352. package/dist/types/src/i18n/messages/es.d.ts +132 -0
  353. package/dist/types/src/i18n/messages/ru.d.ts +132 -0
  354. package/dist/types/src/index.d.ts +2 -2
  355. package/dist/vue/index.js.map +1 -1
  356. package/dist/web-types.json +4673 -0
  357. package/package.json +33 -19
  358. package/dist/chunks/arrow-up-DZdIrpaF.js.map +0 -1
  359. package/dist/chunks/config-B2YTEe_h.js.map +0 -1
  360. package/dist/chunks/config-BY81UKv0.js.map +0 -1
  361. package/dist/chunks/config-Br_qI3Za.js.map +0 -1
  362. package/dist/chunks/config-C6zT56Jc2.js.map +0 -1
  363. package/dist/chunks/config-CpMYmvVT.js +0 -59
  364. package/dist/chunks/config-CpMYmvVT.js.map +0 -1
  365. package/dist/chunks/config-_3De4HFf.js.map +0 -1
  366. package/dist/chunks/en-foQA8imU.js +0 -65
  367. package/dist/chunks/en-foQA8imU.js.map +0 -1
  368. package/dist/chunks/es-DZFSojYL.js +0 -65
  369. package/dist/chunks/es-DZFSojYL.js.map +0 -1
  370. package/dist/chunks/grBadgeStyles-Cq0hH2Ls.js.map +0 -1
  371. package/dist/chunks/grButtonStyles-DKuXUemw.js +0 -191
  372. package/dist/chunks/grButtonStyles-DKuXUemw.js.map +0 -1
  373. package/dist/chunks/grDropdownStyles-B41mVR1H.js +0 -32
  374. package/dist/chunks/grDropdownStyles-B41mVR1H.js.map +0 -1
  375. package/dist/chunks/grModalStyles-DS1Vl6EW.js.map +0 -1
  376. package/dist/chunks/grSelectStyles-pUt19VGy.js.map +0 -1
  377. package/dist/chunks/grStyle-CUaTmpyW.js.map +0 -1
  378. package/dist/chunks/granularityI18n-LcJ88Vce.js.map +0 -1
  379. package/dist/chunks/info-C0bHmdZq.js.map +0 -1
  380. package/dist/chunks/loader-circle-BUntgosj.js.map +0 -1
  381. package/dist/chunks/ru-LhkPpPIl.js +0 -65
  382. package/dist/chunks/ru-LhkPpPIl.js.map +0 -1
  383. package/dist/chunks/safelist-_UVzJrgE2.js.map +0 -1
  384. package/dist/chunks/shared-BiqXd5MW.js +0 -169
  385. package/dist/chunks/shared-BiqXd5MW.js.map +0 -1
  386. package/dist/chunks/x-Pa6C2hwi.js.map +0 -1
  387. package/dist/chunks/x-circle-DQSlBLmX.js.map +0 -1
  388. package/dist/components/GrAlert/chunks/GrAlert-HyCjYJeL.js.map +0 -1
  389. package/dist/components/GrButton/chunks/GrButton-CPDKonoB.js +0 -83
  390. package/dist/components/GrButton/chunks/GrButton-CPDKonoB.js.map +0 -1
  391. package/dist/components/GrButtonGroup/chunks/GrButtonGroup-CPOH6V-P.js.map +0 -1
  392. package/dist/components/GrCard/chunks/GrCard-6yk1RRAQ.js.map +0 -1
  393. package/dist/components/GrCheckbox/chunks/GrCheckbox-Bt3d7ckE.js.map +0 -1
  394. package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-Br6WJkLE.js.map +0 -1
  395. package/dist/components/GrDialog/chunks/GrDialog-C7XLxp8e.js.map +0 -1
  396. package/dist/components/GrDrawer/chunks/GrDrawer-BW3wtI7h.js.map +0 -1
  397. package/dist/components/GrDropdown/chunks/GrDropdown-DOvHKnih.js +0 -151
  398. package/dist/components/GrDropdown/chunks/GrDropdown-DOvHKnih.js.map +0 -1
  399. package/dist/components/GrFileUpload/chunks/GrFileUpload-BEKNB1RM.js.map +0 -1
  400. package/dist/components/GrFormFile/chunks/GrFormFile-CIleXnfr.js.map +0 -1
  401. package/dist/components/GrImageViewer/chunks/GrImageViewer-CsvXQHM9.js.map +0 -1
  402. package/dist/components/GrInput/chunks/GrInput-gwFQ1sk4.js.map +0 -1
  403. package/dist/components/GrInputTag/chunks/GrInputTag-Dcj3F6rQ.js.map +0 -1
  404. package/dist/components/GrLink/chunks/GrLink-BMwn2iJ9.js.map +0 -1
  405. package/dist/components/GrNumberInput/chunks/GrNumberInput-YIWhV85S.js.map +0 -1
  406. package/dist/components/GrPagination/chunks/GrPagination-BNDEqM8_.js +0 -114
  407. package/dist/components/GrPagination/chunks/GrPagination-BNDEqM8_.js.map +0 -1
  408. package/dist/components/GrPromptDialog/chunks/GrPromptDialog-BV4EW3XO.js.map +0 -1
  409. package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-BMvXREcv.js.map +0 -1
  410. package/dist/components/GrSelect/chunks/GrSelect-CnHdbPlf.js.map +0 -1
  411. package/dist/components/GrSidebar/chunks/GrSidebar-BpBtAGBs.js +0 -44
  412. package/dist/components/GrSidebar/chunks/GrSidebar-BpBtAGBs.js.map +0 -1
  413. package/dist/components/GrToaster/chunks/GrToaster-DluJmR5D.js +0 -171
  414. package/dist/components/GrToaster/chunks/GrToaster-DluJmR5D.js.map +0 -1
  415. package/dist/components/GrTooltip/chunks/GrTooltip-B7I1AVIC.js +0 -55
  416. package/dist/components/GrTooltip/chunks/GrTooltip-B7I1AVIC.js.map +0 -1
  417. package/dist/components/GrTree/chunks/GrTree-B2SMU5Py.js.map +0 -1
  418. package/dist/components/GrTreeSelect/chunks/GrTreeSelect-C1abr5uH.js.map +0 -1
  419. /package/dist/chunks/{_plugin-vue_export-helper-DQR7Sy7Q.js → _plugin-vue_export-helper-BOaGB7Aw.js} +0 -0
  420. /package/dist/chunks/{adapter-BqqjEZGU.js → adapter-CAOxmn2G.js} +0 -0
  421. /package/dist/chunks/{arrow-up-DZdIrpaF.js → arrow-up-C_G4jg8M.js} +0 -0
  422. /package/dist/chunks/{classTokens-BPeBXNzu.js → classTokens-BzazaERD.js} +0 -0
  423. /package/dist/chunks/{config-DaHI5bD_2.js → config-8Pcutu1j2.js} +0 -0
  424. /package/dist/chunks/{config-DoBk_CzG.js → config-B0qIpo8m.js} +0 -0
  425. /package/dist/chunks/{config-DbghHyY_.js → config-BEegFP74.js} +0 -0
  426. /package/dist/chunks/{config-Dzd6BzIN2.js → config-BLHqZhy-2.js} +0 -0
  427. /package/dist/chunks/{config-BV4vBzdm.js → config-BNu8lFQB.js} +0 -0
  428. /package/dist/chunks/{config-B1kFmhpM.js → config-BUHuGBik.js} +0 -0
  429. /package/dist/chunks/{config-DF_RlCIO.js → config-BWGGp7uV.js} +0 -0
  430. /package/dist/chunks/{config-BduXEXjt.js → config-BXtAmU3s.js} +0 -0
  431. /package/dist/chunks/{config-O1_FTqD3.js → config-Bah4oHwL.js} +0 -0
  432. /package/dist/chunks/{config-DSBlHQVa.js → config-C86UzUYf.js} +0 -0
  433. /package/dist/chunks/{config-BgBWt9-A.js → config-C9AcVDkv.js} +0 -0
  434. /package/dist/chunks/{config-BeQuykDk2.js → config-CGHLoBlH2.js} +0 -0
  435. /package/dist/chunks/{config-ChQxl75m.js → config-CThzliFi.js} +0 -0
  436. /package/dist/chunks/{config-DmjwIqx1.js → config-Cb2PAlSD.js} +0 -0
  437. /package/dist/chunks/{config-BbKroFtR.js → config-D7GZO-Dx.js} +0 -0
  438. /package/dist/chunks/{config-CUwF4E4R.js → config-DBmdgoVf.js} +0 -0
  439. /package/dist/chunks/{config-C9MblwGq.js → config-DICOd-2X.js} +0 -0
  440. /package/dist/chunks/{config-D6Oe3blW2.js → config-DpqOnJiz2.js} +0 -0
  441. /package/dist/chunks/{config-V3LF-b_F.js → config-Dxuwwepq.js} +0 -0
  442. /package/dist/chunks/{config-CvGdaXvH.js → config-HZto2PVy.js} +0 -0
  443. /package/dist/chunks/{config-BOdu-O_B.js → config-JOtB4mzs.js} +0 -0
  444. /package/dist/chunks/{config-iuMz79Mg.js → config-JpHA4Xx0.js} +0 -0
  445. /package/dist/chunks/{config-Dcb7xK-C.js → config-PFg39mYo.js} +0 -0
  446. /package/dist/chunks/{config-BU0olrvr.js → config-QaIc_gRa.js} +0 -0
  447. /package/dist/chunks/{config-vcDVCYXo.js → config-U4m9PSql.js} +0 -0
  448. /package/dist/chunks/{config-Ci9nXGUV.js → config-ZiXWIRBX.js} +0 -0
  449. /package/dist/chunks/{config-Bcf-8XlK2.js → config-ipvU0lzP2.js} +0 -0
  450. /package/dist/chunks/{config-D5ek7VSi.js → config-xR4XVmcy.js} +0 -0
  451. /package/dist/chunks/{dialogShared-BtXUk6Zc.js → dialogShared-CxW62PQE.js} +0 -0
  452. /package/dist/chunks/{grLoadingStyles-DmI-SJ3i.js → grLoadingStyles-R5sreH__.js} +0 -0
  453. /package/dist/chunks/{info-C0bHmdZq.js → info-Be2OccTu.js} +0 -0
  454. /package/dist/chunks/{loader-circle-BUntgosj.js → loader-circle-CfVLz7lb.js} +0 -0
  455. /package/dist/chunks/{x-Pa6C2hwi.js → x-2KXnqxiD.js} +0 -0
  456. /package/dist/chunks/{x-circle-DQSlBLmX.js → x-circle-BCBURwyX.js} +0 -0
  457. /package/dist/components/GrBottomNav/chunks/{GrBottomNav-XPHwd7UQ.js → GrBottomNav-usuMgG8_.js} +0 -0
@@ -1,16 +1,18 @@
1
- import { t as x_default } from "../../../chunks/x-Pa6C2hwi.js";
2
- import { t as GrBadge_default } from "../../GrBadge/chunks/GrBadge-Cs_cVfuO.js";
3
- import { t as GrIcon_default } from "../../GrIcon/chunks/GrIcon-BV7RBU_0.js";
4
- import { i as grInputTagWrapperClass, r as grInputTagInputClass } from "../../../chunks/config-BnWSHTEU.js";
1
+ import { t as x_default } from "../../../chunks/x-2KXnqxiD.js";
2
+ import { t as useGranularityTranslations } from "../../../chunks/granularityI18n-DoV7Ca2m.js";
3
+ import { t as GrBadge_default } from "../../GrBadge/chunks/GrBadge-B77XlaqE.js";
4
+ import { t as GrIcon_default } from "../../GrIcon/chunks/GrIcon-D9AWQLk2.js";
5
+ import { i as grInputTagWrapperClass, r as grInputTagInputClass } from "../../../chunks/config-ClhKPJvg.js";
5
6
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, normalizeClass, openBlock, ref, renderList, renderSlot, toDisplayString, unref, withCtx, withModifiers } from "vue";
6
7
  //#region src/components/GrInputTag/GrInputTag.vue?vue&type=script&setup=true&lang.ts
7
- var _hoisted_1 = { class: "truncate max-w-[18rem]" };
8
- var _hoisted_2 = [
8
+ var _hoisted_1 = { class: "inline-flex items-center gap-1 align-middle" };
9
+ var _hoisted_2 = { class: "truncate max-w-[18rem]" };
10
+ var _hoisted_3 = [
9
11
  "aria-label",
10
12
  "data-index",
11
13
  "onClick"
12
14
  ];
13
- var _hoisted_3 = [
15
+ var _hoisted_4 = [
14
16
  "value",
15
17
  "disabled",
16
18
  "readonly",
@@ -67,7 +69,7 @@ var GrInputTag_default = /* @__PURE__ */ defineComponent({
67
69
  type: Boolean,
68
70
  default: true
69
71
  },
70
- removeTagLabel: { default: "Remove tag" }
72
+ removeTagLabel: { default: void 0 }
71
73
  },
72
74
  emits: [
73
75
  "update:modelValue",
@@ -83,6 +85,8 @@ var GrInputTag_default = /* @__PURE__ */ defineComponent({
83
85
  */
84
86
  const props = __props;
85
87
  const emit = __emit;
88
+ const { t } = useGranularityTranslations();
89
+ const resolvedRemoveTagLabel = computed(() => props.removeTagLabel ?? t("gr.inputTag.removeTag", "Remove tag"));
86
90
  const inputValue = ref("");
87
91
  const inputEl = ref(null);
88
92
  function focus() {
@@ -97,7 +101,7 @@ var GrInputTag_default = /* @__PURE__ */ defineComponent({
97
101
  }
98
102
  const splitRegex = computed(() => {
99
103
  const seps = (props.separators ?? []).filter(Boolean).map((s) => s[0]);
100
- const body = [...new Set([
104
+ const body = [.../* @__PURE__ */ new Set([
101
105
  ...seps,
102
106
  "\n",
103
107
  "\r",
@@ -189,8 +193,8 @@ var GrInputTag_default = /* @__PURE__ */ defineComponent({
189
193
  const placeholderText = computed(() => props.modelValue.length > 0 ? void 0 : props.placeholder);
190
194
  return (_ctx, _cache) => {
191
195
  return openBlock(), createElementBlock("div", {
192
- "data-ds-input-tag": "",
193
- "data-testid": "ds-input-tag",
196
+ "data-gr-input-tag": "",
197
+ "data-testid": "gr-input-tag",
194
198
  class: normalizeClass(["w-full flex flex-wrap items-center rounded-md border bg-[var(--bg)] text-[var(--fg)] transition-colors duration-150 focus-within:ring-2 focus-within:ring-[var(--ring)]", wrapperClassName.value]),
195
199
  onClick: focus
196
200
  }, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.modelValue, (tag, i) => {
@@ -200,22 +204,21 @@ var GrInputTag_default = /* @__PURE__ */ defineComponent({
200
204
  dark: __props.tagDark,
201
205
  size: __props.tagSize,
202
206
  radius: __props.tagRadius,
203
- class: "gap-1",
204
- "data-ds-input-tag-item": "",
205
- "data-testid": "ds-input-tag-item",
207
+ "data-gr-input-tag-item": "",
208
+ "data-testid": "gr-input-tag-item",
206
209
  "data-index": i
207
210
  }, {
208
- default: withCtx(() => [renderSlot(_ctx.$slots, "tag", {
211
+ default: withCtx(() => [createElementVNode("span", _hoisted_1, [renderSlot(_ctx.$slots, "tag", {
209
212
  tag,
210
213
  index: i,
211
214
  remove: () => removeAt(i)
212
- }, () => [createElementVNode("span", _hoisted_1, toDisplayString(tag), 1)]), showRemove.value ? (openBlock(), createElementBlock("button", {
215
+ }, () => [createElementVNode("span", _hoisted_2, toDisplayString(tag), 1)]), showRemove.value ? (openBlock(), createElementBlock("button", {
213
216
  key: 0,
214
217
  type: "button",
215
- class: "-mr-0.5 inline-flex items-center justify-center rounded-[6px] p-0.5 opacity-70 hover:opacity-100 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]",
216
- "aria-label": __props.removeTagLabel,
217
- "data-ds-input-tag-remove": "",
218
- "data-testid": "ds-input-tag-remove",
218
+ class: "-mr-0.5 shrink-0 inline-flex items-center justify-center rounded-[6px] p-0.5 opacity-70 hover:opacity-100 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]",
219
+ "aria-label": resolvedRemoveTagLabel.value,
220
+ "data-gr-input-tag-remove": "",
221
+ "data-testid": "gr-input-tag-remove",
219
222
  "data-index": i,
220
223
  onMousedown: _cache[0] || (_cache[0] = withModifiers(() => {}, ["prevent", "stop"])),
221
224
  onClick: withModifiers(($event) => removeAt(i), ["stop"])
@@ -225,7 +228,7 @@ var GrInputTag_default = /* @__PURE__ */ defineComponent({
225
228
  }, {
226
229
  default: withCtx(() => [createVNode(unref(x_default))]),
227
230
  _: 1
228
- })], 40, _hoisted_2)) : createCommentVNode("", true)]),
231
+ })], 40, _hoisted_3)) : createCommentVNode("", true)])]),
229
232
  _: 2
230
233
  }, 1032, [
231
234
  "tone",
@@ -237,8 +240,8 @@ var GrInputTag_default = /* @__PURE__ */ defineComponent({
237
240
  }), 128)), createElementVNode("input", {
238
241
  ref_key: "inputEl",
239
242
  ref: inputEl,
240
- "data-ds-input-tag-input": "",
241
- "data-testid": "ds-input-tag-input",
243
+ "data-gr-input-tag-input": "",
244
+ "data-testid": "gr-input-tag-input",
242
245
  value: inputValue.value,
243
246
  disabled: __props.disabled || isMaxed.value,
244
247
  readonly: __props.readonly,
@@ -249,7 +252,7 @@ var GrInputTag_default = /* @__PURE__ */ defineComponent({
249
252
  onKeydown,
250
253
  onBlur,
251
254
  onPaste
252
- }, null, 42, _hoisted_3)], 2);
255
+ }, null, 42, _hoisted_4)], 2);
253
256
  };
254
257
  }
255
258
  });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GrInputTag-zMgFqp2g.js","names":[],"sources":["../../../../src/components/GrInputTag/GrInputTag.vue","../../../../src/components/GrInputTag/GrInputTag.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\n\nimport GrBadge from '../GrBadge/GrBadge.vue'\nimport type { GrBadgeRadius, GrBadgeSize, GrBadgeTone } from '../GrBadge'\nimport GrIcon from '../GrIcon/GrIcon.vue'\nimport IconClose from '~icons/lucide/x'\nimport { useGranularityTranslations } from '../../internal/granularityI18n'\n\nimport {\n grInputTagInputClass,\n grInputTagWrapperClass,\n type GrInputTagSize,\n type GrInputTagState,\n} from './grInputTagStyles'\n\nexport type { GrInputTagSize, GrInputTagState } from './grInputTagStyles'\n\nconst REGEX_SPECIAL_CHAR_RE = /[.*+?^${}()|[\\]\\\\]/g\n\n/**\n * Props for {@link GrInputTag}.\n * Tag-input primitive: renders a set of badges with an inline `<input>` for entering new tags.\n * Splits input by configurable `separators`, supports paste, Enter and Backspace editing.\n */\nexport interface GrInputTagProps {\n modelValue: string[]\n placeholder?: string\n disabled?: boolean\n readonly?: boolean\n invalid?: boolean\n state?: GrInputTagState\n size?: GrInputTagSize\n separators?: string[]\n allowDuplicates?: boolean\n trim?: boolean\n max?: number\n addOnBlur?: boolean\n clearInputOnAdd?: boolean\n tagTone?: GrBadgeTone\n tagDark?: boolean\n tagSize?: GrBadgeSize\n tagRadius?: GrBadgeRadius\n tagClosable?: boolean\n /** i18n-friendly aria-label for the per-tag remove button. */\n removeTagLabel?: string\n}\n\nconst props = withDefaults(\n defineProps<GrInputTagProps>(),\n {\n placeholder: undefined,\n disabled: false,\n readonly: false,\n invalid: false,\n state: 'default',\n size: 'md',\n separators: () => [','],\n allowDuplicates: false,\n trim: true,\n max: undefined,\n addOnBlur: false,\n clearInputOnAdd: true,\n tagTone: 'neutral',\n tagDark: false,\n tagSize: 'md',\n tagRadius: 'round',\n tagClosable: true,\n removeTagLabel: undefined,\n },\n)\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: string[]): void\n (e: 'add', value: string): void\n (e: 'remove', value: string, index: number): void\n}>()\n\nconst { t } = useGranularityTranslations()\nconst resolvedRemoveTagLabel = computed(() => props.removeTagLabel ?? t('gr.inputTag.removeTag', 'Remove tag'))\n\nconst inputValue = ref('')\nconst inputEl = ref<HTMLInputElement | null>(null)\n\nfunction focus(): void {\n inputEl.value?.focus()\n}\n\ndefineExpose({ focus })\n\nconst isMaxed = computed(() => props.max !== undefined && props.modelValue.length >= props.max)\nconst canEdit = computed(() => !props.disabled && !props.readonly)\nconst showRemove = computed(() => props.tagClosable && canEdit.value)\n\nfunction escapeRegexChar(ch: string): string {\n return ch.replace(REGEX_SPECIAL_CHAR_RE, '\\\\$&')\n}\n\nconst splitRegex = computed(() => {\n const seps = (props.separators ?? []).filter(Boolean).map(s => s[0]!)\n const uniq = [...new Set([...seps, '\\n', '\\r', '\\t'])]\n const body = uniq.map(escapeRegexChar).join('')\n return new RegExp(`[${body}]+`, 'g')\n})\n\nfunction normalizeTag(raw: string): string {\n return props.trim ? raw.trim() : raw\n}\n\nfunction splitToTags(raw: string): string[] {\n return raw\n .split(splitRegex.value)\n .map(v => normalizeTag(v))\n .filter(Boolean)\n}\n\nfunction addMany(rawTags: string[]): boolean {\n if (!canEdit.value || isMaxed.value)\n return false\n\n const next = props.modelValue.slice()\n let changed = false\n\n for (const raw of rawTags) {\n const tag = normalizeTag(raw)\n if (!tag)\n continue\n\n if (!props.allowDuplicates && next.includes(tag))\n continue\n\n if (props.max !== undefined && next.length >= props.max)\n break\n\n next.push(tag)\n changed = true\n emit('add', tag)\n }\n\n if (!changed)\n return false\n\n emit('update:modelValue', next)\n return true\n}\n\nfunction commitInput(): void {\n if (!canEdit.value || isMaxed.value || !inputValue.value)\n return\n\n const tags = splitToTags(inputValue.value)\n if (!tags.length)\n return\n\n const changed = addMany(tags)\n if (changed && props.clearInputOnAdd)\n inputValue.value = ''\n}\n\nfunction removeAt(index: number): void {\n if (!canEdit.value)\n return\n\n const next = props.modelValue.slice()\n const removed = next[index]\n if (removed === undefined)\n return\n\n next.splice(index, 1)\n emit('update:modelValue', next)\n emit('remove', removed, index)\n}\n\nfunction onInput(e: Event): void {\n inputValue.value = (e.target as HTMLInputElement).value\n}\n\nfunction onKeydown(e: KeyboardEvent): void {\n if (!canEdit.value)\n return\n\n if (e.key === 'Enter') {\n e.preventDefault()\n commitInput()\n return\n }\n\n if ((props.separators ?? []).includes(e.key)) {\n e.preventDefault()\n commitInput()\n return\n }\n\n if (e.key === 'Backspace' && inputValue.value.length === 0 && props.modelValue.length > 0) {\n e.preventDefault()\n removeAt(props.modelValue.length - 1)\n }\n}\n\nfunction onBlur(): void {\n if (props.addOnBlur)\n commitInput()\n}\n\nfunction onPaste(e: ClipboardEvent): void {\n if (!canEdit.value || isMaxed.value)\n return\n\n const pasted = e.clipboardData?.getData('text')\n if (!pasted)\n return\n\n const tags = splitToTags(pasted)\n if (tags.length <= 1)\n return\n\n e.preventDefault()\n addMany(tags)\n}\n\nconst wrapperClassName = computed(() => {\n return grInputTagWrapperClass({\n size: props.size,\n state: props.state,\n invalid: props.invalid,\n disabled: props.disabled,\n })\n})\n\nconst inputClassName = computed(() => {\n return grInputTagInputClass(props.size)\n})\n\nconst placeholderText = computed(() => props.modelValue.length > 0 ? undefined : props.placeholder)\n</script>\n\n<template>\n <div\n data-gr-input-tag\n data-testid=\"gr-input-tag\"\n class=\"w-full flex flex-wrap items-center rounded-md border bg-[var(--bg)] text-[var(--fg)] transition-colors duration-150 focus-within:ring-2 focus-within:ring-[var(--ring)]\"\n :class=\"wrapperClassName\"\n @click=\"focus\"\n >\n <GrBadge\n v-for=\"(tag, i) in modelValue\"\n :key=\"`${tag}-${i}`\"\n :tone=\"tagTone\"\n :dark=\"tagDark\"\n :size=\"tagSize\"\n :radius=\"tagRadius\"\n data-gr-input-tag-item\n data-testid=\"gr-input-tag-item\"\n :data-index=\"i\"\n >\n <span class=\"inline-flex items-center gap-1 align-middle\">\n <slot name=\"tag\" :tag=\"tag\" :index=\"i\" :remove=\"() => removeAt(i)\">\n <span class=\"truncate max-w-[18rem]\">{{ tag }}</span>\n </slot>\n\n <button\n v-if=\"showRemove\"\n type=\"button\"\n class=\"-mr-0.5 shrink-0 inline-flex items-center justify-center rounded-[6px] p-0.5 opacity-70 hover:opacity-100 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]\"\n :aria-label=\"resolvedRemoveTagLabel\"\n data-gr-input-tag-remove\n data-testid=\"gr-input-tag-remove\"\n :data-index=\"i\"\n @mousedown.prevent.stop\n @click.stop=\"removeAt(i)\"\n >\n <GrIcon size=\"sm\" aria-hidden=\"true\">\n <IconClose />\n </GrIcon>\n </button>\n </span>\n </GrBadge>\n\n <input\n ref=\"inputEl\"\n data-gr-input-tag-input\n data-testid=\"gr-input-tag-input\"\n :value=\"inputValue\"\n :disabled=\"disabled || isMaxed\"\n :readonly=\"readonly\"\n :placeholder=\"placeholderText\"\n :aria-invalid=\"invalid ? 'true' : undefined\"\n class=\"flex-1 min-w-[120px] bg-transparent border-none outline-none placeholder:text-[var(--muted-fg)]\"\n :class=\"inputClassName\"\n @input=\"onInput\"\n @keydown=\"onKeydown\"\n @blur=\"onBlur\"\n @paste=\"onPaste\"\n >\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\n\nimport GrBadge from '../GrBadge/GrBadge.vue'\nimport type { GrBadgeRadius, GrBadgeSize, GrBadgeTone } from '../GrBadge'\nimport GrIcon from '../GrIcon/GrIcon.vue'\nimport IconClose from '~icons/lucide/x'\nimport { useGranularityTranslations } from '../../internal/granularityI18n'\n\nimport {\n grInputTagInputClass,\n grInputTagWrapperClass,\n type GrInputTagSize,\n type GrInputTagState,\n} from './grInputTagStyles'\n\nexport type { GrInputTagSize, GrInputTagState } from './grInputTagStyles'\n\nconst REGEX_SPECIAL_CHAR_RE = /[.*+?^${}()|[\\]\\\\]/g\n\n/**\n * Props for {@link GrInputTag}.\n * Tag-input primitive: renders a set of badges with an inline `<input>` for entering new tags.\n * Splits input by configurable `separators`, supports paste, Enter and Backspace editing.\n */\nexport interface GrInputTagProps {\n modelValue: string[]\n placeholder?: string\n disabled?: boolean\n readonly?: boolean\n invalid?: boolean\n state?: GrInputTagState\n size?: GrInputTagSize\n separators?: string[]\n allowDuplicates?: boolean\n trim?: boolean\n max?: number\n addOnBlur?: boolean\n clearInputOnAdd?: boolean\n tagTone?: GrBadgeTone\n tagDark?: boolean\n tagSize?: GrBadgeSize\n tagRadius?: GrBadgeRadius\n tagClosable?: boolean\n /** i18n-friendly aria-label for the per-tag remove button. */\n removeTagLabel?: string\n}\n\nconst props = withDefaults(\n defineProps<GrInputTagProps>(),\n {\n placeholder: undefined,\n disabled: false,\n readonly: false,\n invalid: false,\n state: 'default',\n size: 'md',\n separators: () => [','],\n allowDuplicates: false,\n trim: true,\n max: undefined,\n addOnBlur: false,\n clearInputOnAdd: true,\n tagTone: 'neutral',\n tagDark: false,\n tagSize: 'md',\n tagRadius: 'round',\n tagClosable: true,\n removeTagLabel: undefined,\n },\n)\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: string[]): void\n (e: 'add', value: string): void\n (e: 'remove', value: string, index: number): void\n}>()\n\nconst { t } = useGranularityTranslations()\nconst resolvedRemoveTagLabel = computed(() => props.removeTagLabel ?? t('gr.inputTag.removeTag', 'Remove tag'))\n\nconst inputValue = ref('')\nconst inputEl = ref<HTMLInputElement | null>(null)\n\nfunction focus(): void {\n inputEl.value?.focus()\n}\n\ndefineExpose({ focus })\n\nconst isMaxed = computed(() => props.max !== undefined && props.modelValue.length >= props.max)\nconst canEdit = computed(() => !props.disabled && !props.readonly)\nconst showRemove = computed(() => props.tagClosable && canEdit.value)\n\nfunction escapeRegexChar(ch: string): string {\n return ch.replace(REGEX_SPECIAL_CHAR_RE, '\\\\$&')\n}\n\nconst splitRegex = computed(() => {\n const seps = (props.separators ?? []).filter(Boolean).map(s => s[0]!)\n const uniq = [...new Set([...seps, '\\n', '\\r', '\\t'])]\n const body = uniq.map(escapeRegexChar).join('')\n return new RegExp(`[${body}]+`, 'g')\n})\n\nfunction normalizeTag(raw: string): string {\n return props.trim ? raw.trim() : raw\n}\n\nfunction splitToTags(raw: string): string[] {\n return raw\n .split(splitRegex.value)\n .map(v => normalizeTag(v))\n .filter(Boolean)\n}\n\nfunction addMany(rawTags: string[]): boolean {\n if (!canEdit.value || isMaxed.value)\n return false\n\n const next = props.modelValue.slice()\n let changed = false\n\n for (const raw of rawTags) {\n const tag = normalizeTag(raw)\n if (!tag)\n continue\n\n if (!props.allowDuplicates && next.includes(tag))\n continue\n\n if (props.max !== undefined && next.length >= props.max)\n break\n\n next.push(tag)\n changed = true\n emit('add', tag)\n }\n\n if (!changed)\n return false\n\n emit('update:modelValue', next)\n return true\n}\n\nfunction commitInput(): void {\n if (!canEdit.value || isMaxed.value || !inputValue.value)\n return\n\n const tags = splitToTags(inputValue.value)\n if (!tags.length)\n return\n\n const changed = addMany(tags)\n if (changed && props.clearInputOnAdd)\n inputValue.value = ''\n}\n\nfunction removeAt(index: number): void {\n if (!canEdit.value)\n return\n\n const next = props.modelValue.slice()\n const removed = next[index]\n if (removed === undefined)\n return\n\n next.splice(index, 1)\n emit('update:modelValue', next)\n emit('remove', removed, index)\n}\n\nfunction onInput(e: Event): void {\n inputValue.value = (e.target as HTMLInputElement).value\n}\n\nfunction onKeydown(e: KeyboardEvent): void {\n if (!canEdit.value)\n return\n\n if (e.key === 'Enter') {\n e.preventDefault()\n commitInput()\n return\n }\n\n if ((props.separators ?? []).includes(e.key)) {\n e.preventDefault()\n commitInput()\n return\n }\n\n if (e.key === 'Backspace' && inputValue.value.length === 0 && props.modelValue.length > 0) {\n e.preventDefault()\n removeAt(props.modelValue.length - 1)\n }\n}\n\nfunction onBlur(): void {\n if (props.addOnBlur)\n commitInput()\n}\n\nfunction onPaste(e: ClipboardEvent): void {\n if (!canEdit.value || isMaxed.value)\n return\n\n const pasted = e.clipboardData?.getData('text')\n if (!pasted)\n return\n\n const tags = splitToTags(pasted)\n if (tags.length <= 1)\n return\n\n e.preventDefault()\n addMany(tags)\n}\n\nconst wrapperClassName = computed(() => {\n return grInputTagWrapperClass({\n size: props.size,\n state: props.state,\n invalid: props.invalid,\n disabled: props.disabled,\n })\n})\n\nconst inputClassName = computed(() => {\n return grInputTagInputClass(props.size)\n})\n\nconst placeholderText = computed(() => props.modelValue.length > 0 ? undefined : props.placeholder)\n</script>\n\n<template>\n <div\n data-gr-input-tag\n data-testid=\"gr-input-tag\"\n class=\"w-full flex flex-wrap items-center rounded-md border bg-[var(--bg)] text-[var(--fg)] transition-colors duration-150 focus-within:ring-2 focus-within:ring-[var(--ring)]\"\n :class=\"wrapperClassName\"\n @click=\"focus\"\n >\n <GrBadge\n v-for=\"(tag, i) in modelValue\"\n :key=\"`${tag}-${i}`\"\n :tone=\"tagTone\"\n :dark=\"tagDark\"\n :size=\"tagSize\"\n :radius=\"tagRadius\"\n data-gr-input-tag-item\n data-testid=\"gr-input-tag-item\"\n :data-index=\"i\"\n >\n <span class=\"inline-flex items-center gap-1 align-middle\">\n <slot name=\"tag\" :tag=\"tag\" :index=\"i\" :remove=\"() => removeAt(i)\">\n <span class=\"truncate max-w-[18rem]\">{{ tag }}</span>\n </slot>\n\n <button\n v-if=\"showRemove\"\n type=\"button\"\n class=\"-mr-0.5 shrink-0 inline-flex items-center justify-center rounded-[6px] p-0.5 opacity-70 hover:opacity-100 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]\"\n :aria-label=\"resolvedRemoveTagLabel\"\n data-gr-input-tag-remove\n data-testid=\"gr-input-tag-remove\"\n :data-index=\"i\"\n @mousedown.prevent.stop\n @click.stop=\"removeAt(i)\"\n >\n <GrIcon size=\"sm\" aria-hidden=\"true\">\n <IconClose />\n </GrIcon>\n </button>\n </span>\n </GrBadge>\n\n <input\n ref=\"inputEl\"\n data-gr-input-tag-input\n data-testid=\"gr-input-tag-input\"\n :value=\"inputValue\"\n :disabled=\"disabled || isMaxed\"\n :readonly=\"readonly\"\n :placeholder=\"placeholderText\"\n :aria-invalid=\"invalid ? 'true' : undefined\"\n class=\"flex-1 min-w-[120px] bg-transparent border-none outline-none placeholder:text-[var(--muted-fg)]\"\n :class=\"inputClassName\"\n @input=\"onInput\"\n @keydown=\"onKeydown\"\n @blur=\"onBlur\"\n @paste=\"onPaste\"\n >\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBA,MAAM,wBAAwB;;;;;;EA8B9B,MAAM,QAAQ;EAwBd,MAAM,OAAO;EAMb,MAAM,EAAE,MAAM,2BAA2B;EACzC,MAAM,yBAAyB,eAAe,MAAM,kBAAkB,EAAE,yBAAyB,YAAY,CAAC;EAE9G,MAAM,aAAa,IAAI,EAAE;EACzB,MAAM,UAAU,IAA6B,IAAI;EAEjD,SAAS,QAAc;GACrB,QAAQ,OAAO,MAAM;EACvB;EAEA,SAAa,EAAE,MAAM,CAAC;EAEtB,MAAM,UAAU,eAAe,MAAM,QAAQ,KAAA,KAAa,MAAM,WAAW,UAAU,MAAM,GAAG;EAC9F,MAAM,UAAU,eAAe,CAAC,MAAM,YAAY,CAAC,MAAM,QAAQ;EACjE,MAAM,aAAa,eAAe,MAAM,eAAe,QAAQ,KAAK;EAEpE,SAAS,gBAAgB,IAAoB;GAC3C,OAAO,GAAG,QAAQ,uBAAuB,MAAM;EACjD;EAEA,MAAM,aAAa,eAAe;GAChC,MAAM,QAAQ,MAAM,cAAc,CAAC,EAAA,CAAG,OAAO,OAAO,CAAC,CAAC,KAAI,MAAK,EAAE,EAAG;GAEpE,MAAM,OAAO,CADC,mBAAG,IAAI,IAAI;IAAC,GAAG;IAAM;IAAM;IAAM;GAAI,CAAC,CACvC,CAAA,CAAK,IAAI,eAAe,CAAC,CAAC,KAAK,EAAE;GAC9C,OAAO,IAAI,OAAO,IAAI,KAAK,KAAK,GAAG;EACrC,CAAC;EAED,SAAS,aAAa,KAAqB;GACzC,OAAO,MAAM,OAAO,IAAI,KAAK,IAAI;EACnC;EAEA,SAAS,YAAY,KAAuB;GAC1C,OAAO,IACJ,MAAM,WAAW,KAAK,CAAA,CACtB,KAAI,MAAK,aAAa,CAAC,CAAC,CAAA,CACxB,OAAO,OAAO;EACnB;EAEA,SAAS,QAAQ,SAA4B;GAC3C,IAAI,CAAC,QAAQ,SAAS,QAAQ,OAC5B,OAAO;GAET,MAAM,OAAO,MAAM,WAAW,MAAM;GACpC,IAAI,UAAU;GAEd,KAAK,MAAM,OAAO,SAAS;IACzB,MAAM,MAAM,aAAa,GAAG;IAC5B,IAAI,CAAC,KACH;IAEF,IAAI,CAAC,MAAM,mBAAmB,KAAK,SAAS,GAAG,GAC7C;IAEF,IAAI,MAAM,QAAQ,KAAA,KAAa,KAAK,UAAU,MAAM,KAClD;IAEF,KAAK,KAAK,GAAG;IACb,UAAU;IACV,KAAK,OAAO,GAAG;GACjB;GAEA,IAAI,CAAC,SACH,OAAO;GAET,KAAK,qBAAqB,IAAI;GAC9B,OAAO;EACT;EAEA,SAAS,cAAoB;GAC3B,IAAI,CAAC,QAAQ,SAAS,QAAQ,SAAS,CAAC,WAAW,OACjD;GAEF,MAAM,OAAO,YAAY,WAAW,KAAK;GACzC,IAAI,CAAC,KAAK,QACR;GAGF,IADgB,QAAQ,IACpB,KAAW,MAAM,iBACnB,WAAW,QAAQ;EACvB;EAEA,SAAS,SAAS,OAAqB;GACrC,IAAI,CAAC,QAAQ,OACX;GAEF,MAAM,OAAO,MAAM,WAAW,MAAM;GACpC,MAAM,UAAU,KAAK;GACrB,IAAI,YAAY,KAAA,GACd;GAEF,KAAK,OAAO,OAAO,CAAC;GACpB,KAAK,qBAAqB,IAAI;GAC9B,KAAK,UAAU,SAAS,KAAK;EAC/B;EAEA,SAAS,QAAQ,GAAgB;GAC/B,WAAW,QAAS,EAAE,OAA4B;EACpD;EAEA,SAAS,UAAU,GAAwB;GACzC,IAAI,CAAC,QAAQ,OACX;GAEF,IAAI,EAAE,QAAQ,SAAS;IACrB,EAAE,eAAe;IACjB,YAAY;IACZ;GACF;GAEA,KAAK,MAAM,cAAc,CAAC,EAAA,CAAG,SAAS,EAAE,GAAG,GAAG;IAC5C,EAAE,eAAe;IACjB,YAAY;IACZ;GACF;GAEA,IAAI,EAAE,QAAQ,eAAe,WAAW,MAAM,WAAW,KAAK,MAAM,WAAW,SAAS,GAAG;IACzF,EAAE,eAAe;IACjB,SAAS,MAAM,WAAW,SAAS,CAAC;GACtC;EACF;EAEA,SAAS,SAAe;GACtB,IAAI,MAAM,WACR,YAAY;EAChB;EAEA,SAAS,QAAQ,GAAyB;GACxC,IAAI,CAAC,QAAQ,SAAS,QAAQ,OAC5B;GAEF,MAAM,SAAS,EAAE,eAAe,QAAQ,MAAM;GAC9C,IAAI,CAAC,QACH;GAEF,MAAM,OAAO,YAAY,MAAM;GAC/B,IAAI,KAAK,UAAU,GACjB;GAEF,EAAE,eAAe;GACjB,QAAQ,IAAI;EACd;EAEA,MAAM,mBAAmB,eAAe;GACtC,OAAO,uBAAuB;IAC5B,MAAM,MAAM;IACZ,OAAO,MAAM;IACb,SAAS,MAAM;IACf,UAAU,MAAM;GAClB,CAAC;EACH,CAAC;EAED,MAAM,iBAAiB,eAAe;GACpC,OAAO,qBAAqB,MAAM,IAAI;EACxC,CAAC;EAED,MAAM,kBAAkB,eAAe,MAAM,WAAW,SAAS,IAAI,KAAA,IAAY,MAAM,WAAW;;uBAIhG,mBAyDM,OAAA;IAxDJ,qBAAA;IACA,eAAY;IACZ,OAAK,eAAA,CAAC,2KACE,iBAAA,KAAgB,CAAA;IACvB,SAAO;yBAER,mBAgCU,UAAA,MAAA,WA/BW,QAAA,aAAX,KAAK,MAAC;wBADhB,YAgCU,iBAAA;KA9BP,KAAG,GAAK,IAAG,GAAI;KACf,MAAM,QAAA;KACN,MAAM,QAAA;KACN,MAAM,QAAA;KACN,QAAQ,QAAA;KACT,0BAAA;KACA,eAAY;KACX,cAAY;;4BAsBN,CApBP,mBAoBO,QApBP,YAoBO,CAnBL,WAEO,KAAA,QAAA,OAAA;MAFgB;MAAM,OAAO;MAAI,cAAc,SAAS,CAAC;cAEzD,CADL,mBAAqD,QAArD,YAAqD,gBAAb,GAAG,GAAA,CAAA,CAAA,CAAA,GAIrC,WAAA,SAAA,UAAA,GADR,mBAcS,UAAA;;MAZP,MAAK;MACL,OAAM;MACL,cAAY,uBAAA;MACb,4BAAA;MACA,eAAY;MACX,cAAY;MACZ,aAAS,OAAA,OAAA,OAAA,KAAA,oBAAV,CAAA,GAAuB,CAAA,WAAA,MAAA,CAAA;MACtB,SAAK,eAAA,WAAO,SAAS,CAAC,GAAA,CAAA,MAAA,CAAA;SAEvB,YAES,gBAAA;MAFD,MAAK;MAAK,eAAY;;6BACf,CAAb,YAAa,MAAA,SAAA,CAAA,CAAA,CAAA;;;;;;;;;;;cAMrB,mBAeC,SAAA;aAdK;IAAJ,KAAI;IACJ,2BAAA;IACA,eAAY;IACX,OAAO,WAAA;IACP,UAAU,QAAA,YAAY,QAAA;IACtB,UAAU,QAAA;IACV,aAAa,gBAAA;IACb,gBAAc,QAAA,UAAO,SAAY,KAAA;IAClC,OAAK,eAAA,CAAC,mGACE,eAAA,KAAc,CAAA;IACd;IACE;IACH;IACC"}
@@ -1,3 +1,3 @@
1
- import { n as grInputTagSafelist, t as grInputTagConfig } from "../../chunks/config-BnWSHTEU.js";
2
- import { t as GrInputTag_default } from "./chunks/GrInputTag-Dcj3F6rQ.js";
1
+ import { n as grInputTagSafelist, t as grInputTagConfig } from "../../chunks/config-ClhKPJvg.js";
2
+ import { t as GrInputTag_default } from "./chunks/GrInputTag-zMgFqp2g.js";
3
3
  export { GrInputTag_default as GrInputTag, GrInputTag_default as default, grInputTagConfig, grInputTagSafelist };
@@ -1,4 +1,4 @@
1
- import { a as grLinkClass, i as focusRingClass, r as baseRootClass } from "../../../chunks/config-CpMYmvVT.js";
1
+ import { a as grLinkClass, i as focusRingClass, o as grLinkColorStyle, r as baseRootClass } from "../../../chunks/config-BOlr7qw7.js";
2
2
  import { computed, createBlock, defineComponent, markRaw, mergeProps, openBlock, renderSlot, resolveDynamicComponent, unref, useAttrs, withCtx } from "vue";
3
3
  //#endregion
4
4
  //#region src/components/GrLink/GrLink.vue
@@ -19,13 +19,14 @@ var GrLink_default = /* @__PURE__ */ defineComponent({
19
19
  default: false
20
20
  },
21
21
  ariaLabel: { default: void 0 },
22
- variant: { default: "primary" },
22
+ tone: { default: "primary" },
23
+ variant: { default: "default" },
23
24
  underline: { default: "auto" },
24
25
  size: { default: "md" }
25
26
  },
26
27
  setup(__props) {
27
28
  /**
28
- * GrLink — DS-примитив ссылки.
29
+ * GrLink — GR-примитив ссылки.
29
30
  *
30
31
  * Корневой тег зависит от пропов:
31
32
  * - кастомный компонент/тег из пропа `as` — когда `as` передан и не `disabled`
@@ -38,7 +39,7 @@ var GrLink_default = /* @__PURE__ */ defineComponent({
38
39
  * не участвовала в порядке табуляции. Учтите это в внешних CSS-селекторах.
39
40
  *
40
41
  * Проп `as` нужен для интеграции с роутерами (Inertia, Vue Router и пр.):
41
- * стили/поведение DS остаются едиными, а тег корня подменяется. Все
42
+ * стили/поведение GR остаются едиными, а тег корня подменяется. Все
42
43
  * специфичные для роутера атрибуты (`method`, `replace`, `preserve-scroll` и т.п.)
43
44
  * проходят через fallthrough-attrs.
44
45
  */
@@ -62,11 +63,15 @@ var GrLink_default = /* @__PURE__ */ defineComponent({
62
63
  const variantClass = grLinkClass({
63
64
  size: props.size,
64
65
  underline: props.underline,
65
- variant: props.variant,
66
66
  disabled: props.disabled
67
67
  });
68
68
  return props.disabled ? `${baseRootClass} ${variantClass}` : `${baseRootClass} ${focusRingClass} ${variantClass}`;
69
69
  });
70
+ const colorStyle = computed(() => grLinkColorStyle({
71
+ tone: props.tone,
72
+ variant: props.variant,
73
+ disabled: props.disabled
74
+ }));
70
75
  return (_ctx, _cache) => {
71
76
  return openBlock(), createBlock(resolveDynamicComponent(renderAs.value), mergeProps(unref(attrs), {
72
77
  href: isInteractive.value ? __props.href : void 0,
@@ -74,7 +79,8 @@ var GrLink_default = /* @__PURE__ */ defineComponent({
74
79
  rel: isInteractive.value ? resolvedRel.value : void 0,
75
80
  "aria-label": __props.ariaLabel,
76
81
  "aria-disabled": __props.disabled ? "true" : void 0,
77
- class: rootClass.value
82
+ class: rootClass.value,
83
+ style: colorStyle.value
78
84
  }), {
79
85
  default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
80
86
  _: 3
@@ -84,7 +90,8 @@ var GrLink_default = /* @__PURE__ */ defineComponent({
84
90
  "rel",
85
91
  "aria-label",
86
92
  "aria-disabled",
87
- "class"
93
+ "class",
94
+ "style"
88
95
  ]);
89
96
  };
90
97
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GrLink-CYUe-Q8k.js","names":[],"sources":["../../../../src/components/GrLink/GrLink.vue","../../../../src/components/GrLink/GrLink.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * GrLink — GR-примитив ссылки.\n *\n * Корневой тег зависит от пропов:\n * - кастомный компонент/тег из пропа `as` — когда `as` передан и не `disabled`\n * (например, `Link` от `@inertiajs/vue3` или `RouterLink` от Vue Router);\n * - `<a>` — когда задан `href` и не `disabled`;\n * - `<span>` — во всех остальных случаях (включая `disabled`, даже если задан\n * `href`/`as`).\n *\n * Это осознанное решение, чтобы отключённая ссылка не была кликабельной и\n * не участвовала в порядке табуляции. Учтите это в внешних CSS-селекторах.\n *\n * Проп `as` нужен для интеграции с роутерами (Inertia, Vue Router и пр.):\n * стили/поведение GR остаются едиными, а тег корня подменяется. Все\n * специфичные для роутера атрибуты (`method`, `replace`, `preserve-scroll` и т.п.)\n * проходят через fallthrough-attrs.\n */\nimport { computed, markRaw, useAttrs, type Component } from 'vue'\n\nimport {\n baseRootClass,\n focusRingClass,\n type GrLinkSize,\n type GrLinkTone,\n type GrLinkUnderline,\n type GrLinkVariant,\n grLinkClass,\n grLinkColorStyle,\n} from './grLinkStyles'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<{\n /**\n * Кастомный корневой тег/компонент. Если передан и компонент не `disabled` —\n * рендерится через `<component :is=\"as\">`. Игнорируется при `disabled`.\n */\n as?: string | Component\n href?: string\n external?: boolean\n target?: string\n rel?: string\n disabled?: boolean\n ariaLabel?: string\n /** Семантический цвет ссылки из палитры `GrTone`. */\n tone?: GrLinkTone\n /** Уровень акцента: `default` (окрашен) или `muted` (приглушён, акцент на hover). */\n variant?: GrLinkVariant\n underline?: GrLinkUnderline\n size?: GrLinkSize\n}>(), {\n as: undefined,\n href: undefined,\n external: false,\n target: undefined,\n rel: undefined,\n disabled: false,\n ariaLabel: undefined,\n tone: 'primary',\n variant: 'default',\n underline: 'auto',\n size: 'md',\n})\n\nconst attrs = useAttrs()\n\n// Кастомный корень имеет приоритет над `<a>` — GR не пытается угадывать\n// «правильный» тег за пользователя, если он явно его указал.\nconst isInteractive = computed(() => !props.disabled && (!!props.as || !!props.href))\n\nconst renderAs = computed<string | Component>(() => {\n if (!isInteractive.value) return 'span'\n if (props.as) {\n // Если `as` — объект-компонент, помечаем его как нереактивный, чтобы избежать\n // оверхеда от Vue-прокси и предупреждений в консоли. Строки (нативные теги)\n // оставляем как есть.\n return typeof props.as === 'string' ? props.as : markRaw(props.as)\n }\n return 'a'\n})\n\nconst resolvedTarget = computed(() => {\n if (props.target)\n return props.target\n\n if (props.external)\n return '_blank'\n\n return undefined\n})\n\nconst resolvedRel = computed(() => {\n if (props.rel)\n return props.rel\n\n // Авто-защита для любых ссылок, открывающихся в новой вкладке,\n // а не только когда выставлен `external`.\n if (resolvedTarget.value === '_blank')\n return 'noopener noreferrer'\n\n return undefined\n})\n\nconst rootClass = computed(() => {\n const variantClass = grLinkClass({\n size: props.size,\n underline: props.underline,\n disabled: props.disabled,\n })\n\n // На disabled-ветке (`<span>`) focus-ring не нужен: элемент не фокусируется,\n // а если снаружи ему навесят `tabindex`, фокус-рамка на «отключённой» ссылке смотрелась бы странно.\n return props.disabled\n ? `${baseRootClass} ${variantClass}`\n : `${baseRootClass} ${focusRingClass} ${variantClass}`\n})\n\n// Цвет (tone × variant) прокидываем через CSS-переменные, чтобы не плодить классы.\nconst colorStyle = computed(() => grLinkColorStyle({\n tone: props.tone,\n variant: props.variant,\n disabled: props.disabled,\n}))\n</script>\n\n<template>\n <component\n :is=\"renderAs\"\n v-bind=\"attrs\"\n :href=\"isInteractive ? href : undefined\"\n :target=\"isInteractive ? resolvedTarget : undefined\"\n :rel=\"isInteractive ? resolvedRel : undefined\"\n :aria-label=\"ariaLabel\"\n :aria-disabled=\"disabled ? 'true' : undefined\"\n :class=\"rootClass\"\n :style=\"colorStyle\"\n >\n <slot />\n </component>\n</template>\n","<script setup lang=\"ts\">\n/**\n * GrLink — GR-примитив ссылки.\n *\n * Корневой тег зависит от пропов:\n * - кастомный компонент/тег из пропа `as` — когда `as` передан и не `disabled`\n * (например, `Link` от `@inertiajs/vue3` или `RouterLink` от Vue Router);\n * - `<a>` — когда задан `href` и не `disabled`;\n * - `<span>` — во всех остальных случаях (включая `disabled`, даже если задан\n * `href`/`as`).\n *\n * Это осознанное решение, чтобы отключённая ссылка не была кликабельной и\n * не участвовала в порядке табуляции. Учтите это в внешних CSS-селекторах.\n *\n * Проп `as` нужен для интеграции с роутерами (Inertia, Vue Router и пр.):\n * стили/поведение GR остаются едиными, а тег корня подменяется. Все\n * специфичные для роутера атрибуты (`method`, `replace`, `preserve-scroll` и т.п.)\n * проходят через fallthrough-attrs.\n */\nimport { computed, markRaw, useAttrs, type Component } from 'vue'\n\nimport {\n baseRootClass,\n focusRingClass,\n type GrLinkSize,\n type GrLinkTone,\n type GrLinkUnderline,\n type GrLinkVariant,\n grLinkClass,\n grLinkColorStyle,\n} from './grLinkStyles'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<{\n /**\n * Кастомный корневой тег/компонент. Если передан и компонент не `disabled` —\n * рендерится через `<component :is=\"as\">`. Игнорируется при `disabled`.\n */\n as?: string | Component\n href?: string\n external?: boolean\n target?: string\n rel?: string\n disabled?: boolean\n ariaLabel?: string\n /** Семантический цвет ссылки из палитры `GrTone`. */\n tone?: GrLinkTone\n /** Уровень акцента: `default` (окрашен) или `muted` (приглушён, акцент на hover). */\n variant?: GrLinkVariant\n underline?: GrLinkUnderline\n size?: GrLinkSize\n}>(), {\n as: undefined,\n href: undefined,\n external: false,\n target: undefined,\n rel: undefined,\n disabled: false,\n ariaLabel: undefined,\n tone: 'primary',\n variant: 'default',\n underline: 'auto',\n size: 'md',\n})\n\nconst attrs = useAttrs()\n\n// Кастомный корень имеет приоритет над `<a>` — GR не пытается угадывать\n// «правильный» тег за пользователя, если он явно его указал.\nconst isInteractive = computed(() => !props.disabled && (!!props.as || !!props.href))\n\nconst renderAs = computed<string | Component>(() => {\n if (!isInteractive.value) return 'span'\n if (props.as) {\n // Если `as` — объект-компонент, помечаем его как нереактивный, чтобы избежать\n // оверхеда от Vue-прокси и предупреждений в консоли. Строки (нативные теги)\n // оставляем как есть.\n return typeof props.as === 'string' ? props.as : markRaw(props.as)\n }\n return 'a'\n})\n\nconst resolvedTarget = computed(() => {\n if (props.target)\n return props.target\n\n if (props.external)\n return '_blank'\n\n return undefined\n})\n\nconst resolvedRel = computed(() => {\n if (props.rel)\n return props.rel\n\n // Авто-защита для любых ссылок, открывающихся в новой вкладке,\n // а не только когда выставлен `external`.\n if (resolvedTarget.value === '_blank')\n return 'noopener noreferrer'\n\n return undefined\n})\n\nconst rootClass = computed(() => {\n const variantClass = grLinkClass({\n size: props.size,\n underline: props.underline,\n disabled: props.disabled,\n })\n\n // На disabled-ветке (`<span>`) focus-ring не нужен: элемент не фокусируется,\n // а если снаружи ему навесят `tabindex`, фокус-рамка на «отключённой» ссылке смотрелась бы странно.\n return props.disabled\n ? `${baseRootClass} ${variantClass}`\n : `${baseRootClass} ${focusRingClass} ${variantClass}`\n})\n\n// Цвет (tone × variant) прокидываем через CSS-переменные, чтобы не плодить классы.\nconst colorStyle = computed(() => grLinkColorStyle({\n tone: props.tone,\n variant: props.variant,\n disabled: props.disabled,\n}))\n</script>\n\n<template>\n <component\n :is=\"renderAs\"\n v-bind=\"attrs\"\n :href=\"isInteractive ? href : undefined\"\n :target=\"isInteractive ? resolvedTarget : undefined\"\n :rel=\"isInteractive ? resolvedRel : undefined\"\n :aria-label=\"ariaLabel\"\n :aria-disabled=\"disabled ? 'true' : undefined\"\n :class=\"rootClass\"\n :style=\"colorStyle\"\n >\n <slot />\n </component>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCA,MAAM,QAAQ;EAgCd,MAAM,QAAQ,SAAS;EAIvB,MAAM,gBAAgB,eAAe,CAAC,MAAM,aAAa,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,MAAM,KAAK;EAEpF,MAAM,WAAW,eAAmC;GAClD,IAAI,CAAC,cAAc,OAAO,OAAO;GACjC,IAAI,MAAM,IAIR,OAAO,OAAO,MAAM,OAAO,WAAW,MAAM,KAAK,QAAQ,MAAM,EAAE;GAEnE,OAAO;EACT,CAAC;EAED,MAAM,iBAAiB,eAAe;GACpC,IAAI,MAAM,QACR,OAAO,MAAM;GAEf,IAAI,MAAM,UACR,OAAO;EAGX,CAAC;EAED,MAAM,cAAc,eAAe;GACjC,IAAI,MAAM,KACR,OAAO,MAAM;GAIf,IAAI,eAAe,UAAU,UAC3B,OAAO;EAGX,CAAC;EAED,MAAM,YAAY,eAAe;GAC/B,MAAM,eAAe,YAAY;IAC/B,MAAM,MAAM;IACZ,WAAW,MAAM;IACjB,UAAU,MAAM;GAClB,CAAC;GAID,OAAO,MAAM,WACT,GAAG,cAAc,GAAG,iBACpB,GAAG,cAAc,GAAG,eAAe,GAAG;EAC5C,CAAC;EAGD,MAAM,aAAa,eAAe,iBAAiB;GACjD,MAAM,MAAM;GACZ,SAAS,MAAM;GACf,UAAU,MAAM;EAClB,CAAC,CAAC;;uBAIA,YAYY,wBAXL,SAAA,KAAQ,GADf,WAEU,MAUE,KAAA,GAVG;IACZ,MAAM,cAAA,QAAgB,QAAA,OAAO,KAAA;IAC7B,QAAQ,cAAA,QAAgB,eAAA,QAAiB,KAAA;IACzC,KAAK,cAAA,QAAgB,YAAA,QAAc,KAAA;IACnC,cAAY,QAAA;IACZ,iBAAe,QAAA,WAAQ,SAAY,KAAA;IACnC,OAAO,UAAA;IACP,OAAO,WAAA;;2BAEA,CAAR,WAAQ,KAAA,QAAA,SAAA,CAAA,CAAA"}
@@ -1,3 +1,3 @@
1
- import { n as grLinkSafelist, t as grLinkConfig } from "../../chunks/config-CpMYmvVT.js";
2
- import { t as GrLink_default } from "./chunks/GrLink-BMwn2iJ9.js";
1
+ import { n as grLinkSafelist, t as grLinkConfig } from "../../chunks/config-BOlr7qw7.js";
2
+ import { t as GrLink_default } from "./chunks/GrLink-CYUe-Q8k.js";
3
3
  export { GrLink_default as GrLink, GrLink_default as default, grLinkConfig, grLinkSafelist };
@@ -1,4 +1,4 @@
1
- import { t as GrCard_default } from "../../GrCard/chunks/GrCard-6yk1RRAQ.js";
1
+ import { t as GrCard_default } from "../../GrCard/chunks/GrCard-DUNMkuHW.js";
2
2
  import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, defineComponent, normalizeClass, openBlock, renderSlot, toDisplayString, unref, useSlots, withCtx } from "vue";
3
3
  //#region src/components/GrList/GrList.vue?vue&type=script&setup=true&lang.ts
4
4
  var _hoisted_1$1 = {
@@ -1 +1 @@
1
- {"version":3,"file":"GrList-D8nM1FuV.js","names":["$slots"],"sources":["../../../../src/components/GrList/GrList.vue","../../../../src/components/GrList/GrList.vue","../../../../src/components/GrList/GrListItem.vue","../../../../src/components/GrList/GrListItem.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport GrCard from '../GrCard'\n\nexport interface GrListProps {\n /** Показывать ли горизонтальные разделители между элементами (по умолчанию — да). */\n divided?: boolean\n}\n\nwithDefaults(defineProps<GrListProps>(), {\n divided: true,\n})\n</script>\n\n<template>\n <GrCard>\n <div\n v-if=\"divided\"\n role=\"list\"\n class=\"divide-y divide-[var(--brd)]\"\n >\n <slot />\n </div>\n <div\n v-else\n role=\"list\"\n >\n <slot />\n </div>\n </GrCard>\n</template>","<script setup lang=\"ts\">\nimport GrCard from '../GrCard'\n\nexport interface GrListProps {\n /** Показывать ли горизонтальные разделители между элементами (по умолчанию — да). */\n divided?: boolean\n}\n\nwithDefaults(defineProps<GrListProps>(), {\n divided: true,\n})\n</script>\n\n<template>\n <GrCard>\n <div\n v-if=\"divided\"\n role=\"list\"\n class=\"divide-y divide-[var(--brd)]\"\n >\n <slot />\n </div>\n <div\n v-else\n role=\"list\"\n >\n <slot />\n </div>\n </GrCard>\n</template>","<script setup lang=\"ts\">\nimport { computed, useSlots } from 'vue'\n\nexport type GrListItemDensity = 'compact' | 'regular'\n\nexport interface GrListItemProps {\n /** Заголовок строки. Если передан слот `#title`, проп игнорируется. */\n title?: string\n /** Описание под заголовком. Если передан слот `#description`, проп игнорируется. */\n description?: string\n /** Плотность вертикальных отступов: `regular` — 12px, `compact` — 8px. */\n density?: GrListItemDensity\n}\n\nconst props = withDefaults(defineProps<GrListItemProps>(), {\n title: undefined,\n description: undefined,\n density: 'regular',\n})\n\nconst slots = useSlots()\n\nconst paddingClass = computed(() =>\n props.density === 'compact' ? 'px-4 py-2' : 'px-4 py-3',\n)\n\nconst hasTitle = computed(() => !!slots.title || !!props.title)\nconst hasDescription = computed(() => !!slots.description || !!props.description)\n</script>\n\n<template>\n <div\n role=\"listitem\"\n class=\"flex items-start justify-between gap-4\"\n :class=\"paddingClass\"\n >\n <div v-if=\"$slots.prefix\" class=\"shrink-0\">\n <slot name=\"prefix\" />\n </div>\n <div class=\"min-w-0 flex-1\">\n <div v-if=\"hasTitle\" class=\"text-[13px] font-700\">\n <slot name=\"title\">\n{{ title }}\n</slot>\n </div>\n <div\n v-if=\"hasDescription\"\n class=\"text-[13px] text-[var(--muted-fg)] mt-0.5\"\n >\n <slot name=\"description\">\n{{ description }}\n</slot>\n </div>\n </div>\n <div v-if=\"$slots.default\" class=\"shrink-0\">\n <slot />\n </div>\n </div>\n</template>","<script setup lang=\"ts\">\nimport { computed, useSlots } from 'vue'\n\nexport type GrListItemDensity = 'compact' | 'regular'\n\nexport interface GrListItemProps {\n /** Заголовок строки. Если передан слот `#title`, проп игнорируется. */\n title?: string\n /** Описание под заголовком. Если передан слот `#description`, проп игнорируется. */\n description?: string\n /** Плотность вертикальных отступов: `regular` — 12px, `compact` — 8px. */\n density?: GrListItemDensity\n}\n\nconst props = withDefaults(defineProps<GrListItemProps>(), {\n title: undefined,\n description: undefined,\n density: 'regular',\n})\n\nconst slots = useSlots()\n\nconst paddingClass = computed(() =>\n props.density === 'compact' ? 'px-4 py-2' : 'px-4 py-3',\n)\n\nconst hasTitle = computed(() => !!slots.title || !!props.title)\nconst hasDescription = computed(() => !!slots.description || !!props.description)\n</script>\n\n<template>\n <div\n role=\"listitem\"\n class=\"flex items-start justify-between gap-4\"\n :class=\"paddingClass\"\n >\n <div v-if=\"$slots.prefix\" class=\"shrink-0\">\n <slot name=\"prefix\" />\n </div>\n <div class=\"min-w-0 flex-1\">\n <div v-if=\"hasTitle\" class=\"text-[13px] font-700\">\n <slot name=\"title\">\n{{ title }}\n</slot>\n </div>\n <div\n v-if=\"hasDescription\"\n class=\"text-[13px] text-[var(--muted-fg)] mt-0.5\"\n >\n <slot name=\"description\">\n{{ description }}\n</slot>\n </div>\n </div>\n <div v-if=\"$slots.default\" class=\"shrink-0\">\n <slot />\n </div>\n </div>\n</template>"],"mappings":";;;;;;;;;;;;;;;;;;;;;;uBAcE,YAcS,MAAA,eAAA,EAAA,MAAA;2BAPD,CALE,QAAA,WAAA,WAAA,EADR,mBAMM,OANN,cAMM,CADJ,WAAQ,KAAA,QAAA,UAAA,CAAA,CAAA,KAAA,WAAA,EAEV,mBAKM,OALN,cAKM,CADJ,WAAQ,KAAA,QAAA,UAAA,CAAA,CAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EEZd,MAAM,QAAQ;EAMd,MAAM,QAAQ,UAAS;EAEvB,MAAM,eAAe,eACnB,MAAM,YAAY,YAAY,cAAc,YAC9C;EAEA,MAAM,WAAW,eAAe,CAAC,CAAC,MAAM,SAAS,CAAC,CAAC,MAAM,MAAK;EAC9D,MAAM,iBAAiB,eAAe,CAAC,CAAC,MAAM,eAAe,CAAC,CAAC,MAAM,YAAW;;uBAI9E,mBA0BM,OAAA;IAzBJ,MAAK;IACL,OAAK,eAAA,CAAC,0CACE,aAAA,MAAY,CAAA;;IAETA,KAAAA,OAAO,UAAA,WAAA,EAAlB,mBAEM,OAFN,YAEM,CADJ,WAAsB,KAAA,QAAA,SAAA,CAAA,CAAA,IAAA,mBAAA,IAAA,KAAA;IAExB,mBAcM,OAdN,YAcM,CAbO,SAAA,SAAA,WAAA,EAAX,mBAIM,OAJN,YAIM,CAHJ,WAED,KAAA,QAAA,SAAA,EAAA,QAAA,CAAA,gBAAA,gBADJ,QAAA,MAAK,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,IAAA,mBAAA,IAAA,KAAA,EAIM,eAAA,SAAA,WAAA,EADR,mBAOM,OAPN,YAOM,CAHJ,WAED,KAAA,QAAA,eAAA,EAAA,QAAA,CAAA,gBAAA,gBADJ,QAAA,YAAW,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,IAAA,mBAAA,IAAA,KAAA,CAAA,CAAA;IAICA,KAAAA,OAAO,WAAA,WAAA,EAAlB,mBAEM,OAFN,YAEM,CADJ,WAAQ,KAAA,QAAA,UAAA,CAAA,CAAA,IAAA,mBAAA,IAAA,KAAA"}
1
+ {"version":3,"file":"GrList-Dx772Ns4.js","names":["$slots"],"sources":["../../../../src/components/GrList/GrList.vue","../../../../src/components/GrList/GrList.vue","../../../../src/components/GrList/GrListItem.vue","../../../../src/components/GrList/GrListItem.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport GrCard from '../GrCard'\n\nexport interface GrListProps {\n /** Показывать ли горизонтальные разделители между элементами (по умолчанию — да). */\n divided?: boolean\n}\n\nwithDefaults(defineProps<GrListProps>(), {\n divided: true,\n})\n</script>\n\n<template>\n <GrCard>\n <div\n v-if=\"divided\"\n role=\"list\"\n class=\"divide-y divide-[var(--brd)]\"\n >\n <slot />\n </div>\n <div\n v-else\n role=\"list\"\n >\n <slot />\n </div>\n </GrCard>\n</template>","<script setup lang=\"ts\">\nimport GrCard from '../GrCard'\n\nexport interface GrListProps {\n /** Показывать ли горизонтальные разделители между элементами (по умолчанию — да). */\n divided?: boolean\n}\n\nwithDefaults(defineProps<GrListProps>(), {\n divided: true,\n})\n</script>\n\n<template>\n <GrCard>\n <div\n v-if=\"divided\"\n role=\"list\"\n class=\"divide-y divide-[var(--brd)]\"\n >\n <slot />\n </div>\n <div\n v-else\n role=\"list\"\n >\n <slot />\n </div>\n </GrCard>\n</template>","<script setup lang=\"ts\">\nimport { computed, useSlots } from 'vue'\n\nexport type GrListItemDensity = 'compact' | 'regular'\n\nexport interface GrListItemProps {\n /** Заголовок строки. Если передан слот `#title`, проп игнорируется. */\n title?: string\n /** Описание под заголовком. Если передан слот `#description`, проп игнорируется. */\n description?: string\n /** Плотность вертикальных отступов: `regular` — 12px, `compact` — 8px. */\n density?: GrListItemDensity\n}\n\nconst props = withDefaults(defineProps<GrListItemProps>(), {\n title: undefined,\n description: undefined,\n density: 'regular',\n})\n\nconst slots = useSlots()\n\nconst paddingClass = computed(() =>\n props.density === 'compact' ? 'px-4 py-2' : 'px-4 py-3',\n)\n\nconst hasTitle = computed(() => !!slots.title || !!props.title)\nconst hasDescription = computed(() => !!slots.description || !!props.description)\n</script>\n\n<template>\n <div\n role=\"listitem\"\n class=\"flex items-start justify-between gap-4\"\n :class=\"paddingClass\"\n >\n <div v-if=\"$slots.prefix\" class=\"shrink-0\">\n <slot name=\"prefix\" />\n </div>\n <div class=\"min-w-0 flex-1\">\n <div v-if=\"hasTitle\" class=\"text-[13px] font-700\">\n <slot name=\"title\">\n{{ title }}\n</slot>\n </div>\n <div\n v-if=\"hasDescription\"\n class=\"text-[13px] text-[var(--muted-fg)] mt-0.5\"\n >\n <slot name=\"description\">\n{{ description }}\n</slot>\n </div>\n </div>\n <div v-if=\"$slots.default\" class=\"shrink-0\">\n <slot />\n </div>\n </div>\n</template>","<script setup lang=\"ts\">\nimport { computed, useSlots } from 'vue'\n\nexport type GrListItemDensity = 'compact' | 'regular'\n\nexport interface GrListItemProps {\n /** Заголовок строки. Если передан слот `#title`, проп игнорируется. */\n title?: string\n /** Описание под заголовком. Если передан слот `#description`, проп игнорируется. */\n description?: string\n /** Плотность вертикальных отступов: `regular` — 12px, `compact` — 8px. */\n density?: GrListItemDensity\n}\n\nconst props = withDefaults(defineProps<GrListItemProps>(), {\n title: undefined,\n description: undefined,\n density: 'regular',\n})\n\nconst slots = useSlots()\n\nconst paddingClass = computed(() =>\n props.density === 'compact' ? 'px-4 py-2' : 'px-4 py-3',\n)\n\nconst hasTitle = computed(() => !!slots.title || !!props.title)\nconst hasDescription = computed(() => !!slots.description || !!props.description)\n</script>\n\n<template>\n <div\n role=\"listitem\"\n class=\"flex items-start justify-between gap-4\"\n :class=\"paddingClass\"\n >\n <div v-if=\"$slots.prefix\" class=\"shrink-0\">\n <slot name=\"prefix\" />\n </div>\n <div class=\"min-w-0 flex-1\">\n <div v-if=\"hasTitle\" class=\"text-[13px] font-700\">\n <slot name=\"title\">\n{{ title }}\n</slot>\n </div>\n <div\n v-if=\"hasDescription\"\n class=\"text-[13px] text-[var(--muted-fg)] mt-0.5\"\n >\n <slot name=\"description\">\n{{ description }}\n</slot>\n </div>\n </div>\n <div v-if=\"$slots.default\" class=\"shrink-0\">\n <slot />\n </div>\n </div>\n</template>"],"mappings":";;;;;;;;;;;;;;;;;;;;;;uBAcE,YAcS,MAAA,cAAA,GAAA,MAAA;2BAPD,CALE,QAAA,WAAA,UAAA,GADR,mBAMM,OANN,cAMM,CADJ,WAAQ,KAAA,QAAA,SAAA,CAAA,CAAA,MAAA,UAAA,GAEV,mBAKM,OALN,cAKM,CADJ,WAAQ,KAAA,QAAA,SAAA,CAAA,CAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EEZd,MAAM,QAAQ;EAMd,MAAM,QAAQ,SAAS;EAEvB,MAAM,eAAe,eACnB,MAAM,YAAY,YAAY,cAAc,WAC9C;EAEA,MAAM,WAAW,eAAe,CAAC,CAAC,MAAM,SAAS,CAAC,CAAC,MAAM,KAAK;EAC9D,MAAM,iBAAiB,eAAe,CAAC,CAAC,MAAM,eAAe,CAAC,CAAC,MAAM,WAAW;;uBAI9E,mBA0BM,OAAA;IAzBJ,MAAK;IACL,OAAK,eAAA,CAAC,0CACE,aAAA,KAAY,CAAA;;IAETA,KAAAA,OAAO,UAAA,UAAA,GAAlB,mBAEM,OAFN,YAEM,CADJ,WAAsB,KAAA,QAAA,QAAA,CAAA,CAAA,KAAA,mBAAA,IAAA,IAAA;IAExB,mBAcM,OAdN,YAcM,CAbO,SAAA,SAAA,UAAA,GAAX,mBAIM,OAJN,YAIM,CAHJ,WAED,KAAA,QAAA,SAAA,CAAA,SAAA,CAAA,gBAAA,gBADJ,QAAA,KAAK,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,mBAAA,IAAA,IAAA,GAIM,eAAA,SAAA,UAAA,GADR,mBAOM,OAPN,YAOM,CAHJ,WAED,KAAA,QAAA,eAAA,CAAA,SAAA,CAAA,gBAAA,gBADJ,QAAA,WAAW,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,mBAAA,IAAA,IAAA,CAAA,CAAA;IAICA,KAAAA,OAAO,WAAA,UAAA,GAAlB,mBAEM,OAFN,YAEM,CADJ,WAAQ,KAAA,QAAA,SAAA,CAAA,CAAA,KAAA,mBAAA,IAAA,IAAA"}
@@ -1,3 +1,3 @@
1
- import { n as GrList_default, t as GrListItem_default } from "./chunks/GrList-D8nM1FuV.js";
2
- import { t as grListConfig } from "../../chunks/config-DSBlHQVa.js";
1
+ import { n as GrList_default, t as GrListItem_default } from "./chunks/GrList-Dx772Ns4.js";
2
+ import { t as grListConfig } from "../../chunks/config-C86UzUYf.js";
3
3
  export { GrList_default as GrList, GrList_default as default, GrListItem_default as GrListItem, grListConfig };
@@ -1,14 +1,14 @@
1
- import { t as loader_circle_default } from "../../../chunks/loader-circle-BUntgosj.js";
2
- import { t as grLoadingRootClass } from "../../../chunks/grLoadingStyles-DmI-SJ3i.js";
1
+ import { t as loader_circle_default } from "../../../chunks/loader-circle-CfVLz7lb.js";
2
+ import { t as grLoadingRootClass } from "../../../chunks/grLoadingStyles-R5sreH__.js";
3
3
  import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, defineComponent, normalizeClass, normalizeStyle, openBlock, resolveDynamicComponent, toDisplayString } from "vue";
4
4
  import '../../../GrLoading.css';//#region src/components/GrLoading/GrLoading.vue?vue&type=script&setup=true&lang.ts
5
5
  var _hoisted_1 = {
6
- "data-ds-loading-panel": "",
6
+ "data-gr-loading-panel": "",
7
7
  class: "flex flex-col items-center justify-center gap-2 text-center rounded-lg bg-[var(--bg)]/55 px-5 py-4 shadow-lg"
8
8
  };
9
9
  var _hoisted_2 = {
10
10
  key: 0,
11
- "data-ds-loading-text": "",
11
+ "data-gr-loading-text": "",
12
12
  class: "text-sm text-[var(--muted-fg)]"
13
13
  };
14
14
  var DEFAULT_LOADING_TEXT = "Loading...";
@@ -52,14 +52,14 @@ var GrLoading_default = /* @__PURE__ */ defineComponent({
52
52
  const spinnerClassName = computed(() => props.spinnerClass);
53
53
  return (_ctx, _cache) => {
54
54
  return openBlock(), createElementBlock("div", {
55
- "data-ds-loading": "",
55
+ "data-gr-loading": "",
56
56
  class: normalizeClass(["flex items-center justify-center cursor-wait select-none pointer-events-auto", rootClass.value]),
57
57
  style: normalizeStyle(rootStyle.value),
58
58
  role: "status",
59
59
  "aria-live": "polite"
60
60
  }, [createElementVNode("div", _hoisted_1, [(openBlock(), createBlock(resolveDynamicComponent(Spinner.value), {
61
- "data-ds-loading-spinner": "",
62
- class: normalizeClass(["ds-loading__spinner h-7 w-7 text-[var(--muted-fg)]", [__props.animated ? "ds-loading__spinner--animated" : "", spinnerClassName.value]]),
61
+ "data-gr-loading-spinner": "",
62
+ class: normalizeClass(["gr-loading__spinner h-7 w-7 text-[var(--muted-fg)]", [__props.animated ? "gr-loading__spinner--animated" : "", spinnerClassName.value]]),
63
63
  "aria-hidden": "true"
64
64
  }, null, 8, ["class"])), displayText.value ? (openBlock(), createElementBlock("div", _hoisted_2, toDisplayString(displayText.value), 1)) : createCommentVNode("", true)])], 6);
65
65
  };
@@ -1 +1 @@
1
- {"version":3,"file":"GrLoading-mfyfghxs.js","names":[],"sources":["../../../../src/components/GrLoading/GrLoading.vue","../../../../src/components/GrLoading/GrLoading.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, type Component } from 'vue'\n\nimport IconLoader from '~icons/lucide/loader-circle'\n\nimport { grLoadingRootClass } from './grLoadingStyles'\n\nconst DEFAULT_LOADING_TEXT = 'Loading...'\n\n/**\n * Props for {@link GrLoading}.\n * Overlay primitive that renders a centered spinner with optional text above sibling content.\n * Use `fullscreen` to cover the whole viewport, otherwise overlays the nearest positioned ancestor.\n */\nexport interface GrLoadingProps {\n /** Text under the spinner. Pass an empty string to hide the text entirely. Defaults to `'Loading...'`. */\n text?: string\n /** Custom spinner component (rendered instead of the default loader icon). */\n spinner?: Component\n /** Extra classes for the spinner element. */\n spinnerClass?: string\n /** When `true` (default), the default spinner rotates via `@keyframes ds-loading-spin`. */\n animated?: boolean\n /** Custom CSS `background-color`. When set, disables the default `bg-black/25` dim. */\n background?: string\n /** Cover the whole viewport (`position: fixed`) instead of the nearest positioned ancestor. */\n fullscreen?: boolean\n /** Custom `z-index`. */\n zIndex?: number\n /** Extra classes appended to the overlay root. */\n customClass?: string\n}\n\nconst props = withDefaults(\n defineProps<GrLoadingProps>(),\n {\n text: undefined,\n spinner: undefined,\n spinnerClass: undefined,\n animated: true,\n background: undefined,\n fullscreen: false,\n zIndex: undefined,\n customClass: undefined,\n },\n)\n\nconst Spinner = computed(() => props.spinner ?? IconLoader)\n\nconst displayText = computed(() => props.text ?? DEFAULT_LOADING_TEXT)\n\nconst rootClass = computed(() => {\n return grLoadingRootClass({\n fullscreen: props.fullscreen,\n hasBackground: props.background !== undefined,\n customClass: props.customClass,\n })\n})\n\nconst rootStyle = computed(() => {\n return {\n backgroundColor: props.background,\n zIndex: props.zIndex != null ? String(props.zIndex) : undefined,\n } as Record<string, string | undefined>\n})\n\nconst spinnerClassName = computed(() => props.spinnerClass)\n</script>\n\n<template>\n <div\n data-ds-loading\n class=\"flex items-center justify-center cursor-wait select-none pointer-events-auto\"\n :class=\"rootClass\"\n :style=\"rootStyle\"\n role=\"status\"\n aria-live=\"polite\"\n >\n <div\n data-ds-loading-panel\n class=\"flex flex-col items-center justify-center gap-2 text-center rounded-lg bg-[var(--bg)]/55 px-5 py-4 shadow-lg\"\n >\n <component\n :is=\"Spinner\"\n data-ds-loading-spinner\n class=\"ds-loading__spinner h-7 w-7 text-[var(--muted-fg)]\"\n :class=\"[animated ? 'ds-loading__spinner--animated' : '', spinnerClassName]\"\n aria-hidden=\"true\"\n />\n <div v-if=\"displayText\" data-ds-loading-text class=\"text-sm text-[var(--muted-fg)]\">\n {{ displayText }}\n </div>\n </div>\n </div>\n</template>\n\n<style>\n@keyframes ds-loading-spin {\n to {\n transform: rotate(360deg);\n }\n}\n.ds-loading__spinner--animated {\n transform-origin: center;\n animation: ds-loading-spin 1s linear infinite;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, type Component } from 'vue'\n\nimport IconLoader from '~icons/lucide/loader-circle'\n\nimport { grLoadingRootClass } from './grLoadingStyles'\n\nconst DEFAULT_LOADING_TEXT = 'Loading...'\n\n/**\n * Props for {@link GrLoading}.\n * Overlay primitive that renders a centered spinner with optional text above sibling content.\n * Use `fullscreen` to cover the whole viewport, otherwise overlays the nearest positioned ancestor.\n */\nexport interface GrLoadingProps {\n /** Text under the spinner. Pass an empty string to hide the text entirely. Defaults to `'Loading...'`. */\n text?: string\n /** Custom spinner component (rendered instead of the default loader icon). */\n spinner?: Component\n /** Extra classes for the spinner element. */\n spinnerClass?: string\n /** When `true` (default), the default spinner rotates via `@keyframes ds-loading-spin`. */\n animated?: boolean\n /** Custom CSS `background-color`. When set, disables the default `bg-black/25` dim. */\n background?: string\n /** Cover the whole viewport (`position: fixed`) instead of the nearest positioned ancestor. */\n fullscreen?: boolean\n /** Custom `z-index`. */\n zIndex?: number\n /** Extra classes appended to the overlay root. */\n customClass?: string\n}\n\nconst props = withDefaults(\n defineProps<GrLoadingProps>(),\n {\n text: undefined,\n spinner: undefined,\n spinnerClass: undefined,\n animated: true,\n background: undefined,\n fullscreen: false,\n zIndex: undefined,\n customClass: undefined,\n },\n)\n\nconst Spinner = computed(() => props.spinner ?? IconLoader)\n\nconst displayText = computed(() => props.text ?? DEFAULT_LOADING_TEXT)\n\nconst rootClass = computed(() => {\n return grLoadingRootClass({\n fullscreen: props.fullscreen,\n hasBackground: props.background !== undefined,\n customClass: props.customClass,\n })\n})\n\nconst rootStyle = computed(() => {\n return {\n backgroundColor: props.background,\n zIndex: props.zIndex != null ? String(props.zIndex) : undefined,\n } as Record<string, string | undefined>\n})\n\nconst spinnerClassName = computed(() => props.spinnerClass)\n</script>\n\n<template>\n <div\n data-ds-loading\n class=\"flex items-center justify-center cursor-wait select-none pointer-events-auto\"\n :class=\"rootClass\"\n :style=\"rootStyle\"\n role=\"status\"\n aria-live=\"polite\"\n >\n <div\n data-ds-loading-panel\n class=\"flex flex-col items-center justify-center gap-2 text-center rounded-lg bg-[var(--bg)]/55 px-5 py-4 shadow-lg\"\n >\n <component\n :is=\"Spinner\"\n data-ds-loading-spinner\n class=\"ds-loading__spinner h-7 w-7 text-[var(--muted-fg)]\"\n :class=\"[animated ? 'ds-loading__spinner--animated' : '', spinnerClassName]\"\n aria-hidden=\"true\"\n />\n <div v-if=\"displayText\" data-ds-loading-text class=\"text-sm text-[var(--muted-fg)]\">\n {{ displayText }}\n </div>\n </div>\n </div>\n</template>\n\n<style>\n@keyframes ds-loading-spin {\n to {\n transform: rotate(360deg);\n }\n}\n.ds-loading__spinner--animated {\n transform-origin: center;\n animation: ds-loading-spin 1s linear infinite;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;AAOA,IAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;EA0B7B,MAAM,QAAQ;EAcd,MAAM,UAAU,eAAe,MAAM,WAAW,sBAAU;EAE1D,MAAM,cAAc,eAAe,MAAM,QAAQ,qBAAoB;EAErE,MAAM,YAAY,eAAe;AAC/B,UAAO,mBAAmB;IACxB,YAAY,MAAM;IAClB,eAAe,MAAM,eAAe,KAAA;IACpC,aAAa,MAAM;IACpB,CAAA;IACF;EAED,MAAM,YAAY,eAAe;AAC/B,UAAO;IACL,iBAAiB,MAAM;IACvB,QAAQ,MAAM,UAAU,OAAO,OAAO,MAAM,OAAO,GAAG,KAAA;IACvD;IACF;EAED,MAAM,mBAAmB,eAAe,MAAM,aAAY;;uBAIxD,mBAuBM,OAAA;IAtBJ,mBAAA;IACA,OAAK,eAAA,CAAC,gFACE,UAAA,MAAS,CAAA;IAChB,OAAK,eAAE,UAAA,MAAS;IACjB,MAAK;IACL,aAAU;OAEV,mBAcM,OAdN,YAcM,EAAA,WAAA,EAVJ,YAME,wBALK,QAAA,MAAO,EAAA;IACZ,2BAAA;IACA,OAAK,eAAA,CAAC,sDAAoD,CACjD,QAAA,WAAQ,kCAAA,IAAyC,iBAAA,MAAgB,CAAA,CAAA;IAC1E,eAAY;4BAEH,YAAA,SAAA,WAAA,EAAX,mBAEM,OAFN,YAEM,gBADD,YAAA,MAAW,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA"}
1
+ {"version":3,"file":"GrLoading--X_7rdbb.js","names":[],"sources":["../../../../src/components/GrLoading/GrLoading.vue","../../../../src/components/GrLoading/GrLoading.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, type Component } from 'vue'\n\nimport IconLoader from '~icons/lucide/loader-circle'\n\nimport { grLoadingRootClass } from './grLoadingStyles'\n\nconst DEFAULT_LOADING_TEXT = 'Loading...'\n\n/**\n * Props for {@link GrLoading}.\n * Overlay primitive that renders a centered spinner with optional text above sibling content.\n * Use `fullscreen` to cover the whole viewport, otherwise overlays the nearest positioned ancestor.\n */\nexport interface GrLoadingProps {\n /** Text under the spinner. Pass an empty string to hide the text entirely. Defaults to `'Loading...'`. */\n text?: string\n /** Custom spinner component (rendered instead of the default loader icon). */\n spinner?: Component\n /** Extra classes for the spinner element. */\n spinnerClass?: string\n /** When `true` (default), the default spinner rotates via `@keyframes gr-loading-spin`. */\n animated?: boolean\n /** Custom CSS `background-color`. When set, disables the default `bg-black/25` dim. */\n background?: string\n /** Cover the whole viewport (`position: fixed`) instead of the nearest positioned ancestor. */\n fullscreen?: boolean\n /** Custom `z-index`. */\n zIndex?: number\n /** Extra classes appended to the overlay root. */\n customClass?: string\n}\n\nconst props = withDefaults(\n defineProps<GrLoadingProps>(),\n {\n text: undefined,\n spinner: undefined,\n spinnerClass: undefined,\n animated: true,\n background: undefined,\n fullscreen: false,\n zIndex: undefined,\n customClass: undefined,\n },\n)\n\nconst Spinner = computed(() => props.spinner ?? IconLoader)\n\nconst displayText = computed(() => props.text ?? DEFAULT_LOADING_TEXT)\n\nconst rootClass = computed(() => {\n return grLoadingRootClass({\n fullscreen: props.fullscreen,\n hasBackground: props.background !== undefined,\n customClass: props.customClass,\n })\n})\n\nconst rootStyle = computed(() => {\n return {\n backgroundColor: props.background,\n zIndex: props.zIndex != null ? String(props.zIndex) : undefined,\n } as Record<string, string | undefined>\n})\n\nconst spinnerClassName = computed(() => props.spinnerClass)\n</script>\n\n<template>\n <div\n data-gr-loading\n class=\"flex items-center justify-center cursor-wait select-none pointer-events-auto\"\n :class=\"rootClass\"\n :style=\"rootStyle\"\n role=\"status\"\n aria-live=\"polite\"\n >\n <div\n data-gr-loading-panel\n class=\"flex flex-col items-center justify-center gap-2 text-center rounded-lg bg-[var(--bg)]/55 px-5 py-4 shadow-lg\"\n >\n <component\n :is=\"Spinner\"\n data-gr-loading-spinner\n class=\"gr-loading__spinner h-7 w-7 text-[var(--muted-fg)]\"\n :class=\"[animated ? 'gr-loading__spinner--animated' : '', spinnerClassName]\"\n aria-hidden=\"true\"\n />\n <div v-if=\"displayText\" data-gr-loading-text class=\"text-sm text-[var(--muted-fg)]\">\n {{ displayText }}\n </div>\n </div>\n </div>\n</template>\n\n<style>\n@keyframes gr-loading-spin {\n to {\n transform: rotate(360deg);\n }\n}\n.gr-loading__spinner--animated {\n transform-origin: center;\n animation: gr-loading-spin 1s linear infinite;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, type Component } from 'vue'\n\nimport IconLoader from '~icons/lucide/loader-circle'\n\nimport { grLoadingRootClass } from './grLoadingStyles'\n\nconst DEFAULT_LOADING_TEXT = 'Loading...'\n\n/**\n * Props for {@link GrLoading}.\n * Overlay primitive that renders a centered spinner with optional text above sibling content.\n * Use `fullscreen` to cover the whole viewport, otherwise overlays the nearest positioned ancestor.\n */\nexport interface GrLoadingProps {\n /** Text under the spinner. Pass an empty string to hide the text entirely. Defaults to `'Loading...'`. */\n text?: string\n /** Custom spinner component (rendered instead of the default loader icon). */\n spinner?: Component\n /** Extra classes for the spinner element. */\n spinnerClass?: string\n /** When `true` (default), the default spinner rotates via `@keyframes gr-loading-spin`. */\n animated?: boolean\n /** Custom CSS `background-color`. When set, disables the default `bg-black/25` dim. */\n background?: string\n /** Cover the whole viewport (`position: fixed`) instead of the nearest positioned ancestor. */\n fullscreen?: boolean\n /** Custom `z-index`. */\n zIndex?: number\n /** Extra classes appended to the overlay root. */\n customClass?: string\n}\n\nconst props = withDefaults(\n defineProps<GrLoadingProps>(),\n {\n text: undefined,\n spinner: undefined,\n spinnerClass: undefined,\n animated: true,\n background: undefined,\n fullscreen: false,\n zIndex: undefined,\n customClass: undefined,\n },\n)\n\nconst Spinner = computed(() => props.spinner ?? IconLoader)\n\nconst displayText = computed(() => props.text ?? DEFAULT_LOADING_TEXT)\n\nconst rootClass = computed(() => {\n return grLoadingRootClass({\n fullscreen: props.fullscreen,\n hasBackground: props.background !== undefined,\n customClass: props.customClass,\n })\n})\n\nconst rootStyle = computed(() => {\n return {\n backgroundColor: props.background,\n zIndex: props.zIndex != null ? String(props.zIndex) : undefined,\n } as Record<string, string | undefined>\n})\n\nconst spinnerClassName = computed(() => props.spinnerClass)\n</script>\n\n<template>\n <div\n data-gr-loading\n class=\"flex items-center justify-center cursor-wait select-none pointer-events-auto\"\n :class=\"rootClass\"\n :style=\"rootStyle\"\n role=\"status\"\n aria-live=\"polite\"\n >\n <div\n data-gr-loading-panel\n class=\"flex flex-col items-center justify-center gap-2 text-center rounded-lg bg-[var(--bg)]/55 px-5 py-4 shadow-lg\"\n >\n <component\n :is=\"Spinner\"\n data-gr-loading-spinner\n class=\"gr-loading__spinner h-7 w-7 text-[var(--muted-fg)]\"\n :class=\"[animated ? 'gr-loading__spinner--animated' : '', spinnerClassName]\"\n aria-hidden=\"true\"\n />\n <div v-if=\"displayText\" data-gr-loading-text class=\"text-sm text-[var(--muted-fg)]\">\n {{ displayText }}\n </div>\n </div>\n </div>\n</template>\n\n<style>\n@keyframes gr-loading-spin {\n to {\n transform: rotate(360deg);\n }\n}\n.gr-loading__spinner--animated {\n transform-origin: center;\n animation: gr-loading-spin 1s linear infinite;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;AAOA,IAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;EA0B7B,MAAM,QAAQ;EAcd,MAAM,UAAU,eAAe,MAAM,WAAW,qBAAU;EAE1D,MAAM,cAAc,eAAe,MAAM,QAAQ,oBAAoB;EAErE,MAAM,YAAY,eAAe;GAC/B,OAAO,mBAAmB;IACxB,YAAY,MAAM;IAClB,eAAe,MAAM,eAAe,KAAA;IACpC,aAAa,MAAM;GACrB,CAAC;EACH,CAAC;EAED,MAAM,YAAY,eAAe;GAC/B,OAAO;IACL,iBAAiB,MAAM;IACvB,QAAQ,MAAM,UAAU,OAAO,OAAO,MAAM,MAAM,IAAI,KAAA;GACxD;EACF,CAAC;EAED,MAAM,mBAAmB,eAAe,MAAM,YAAY;;uBAIxD,mBAuBM,OAAA;IAtBJ,mBAAA;IACA,OAAK,eAAA,CAAC,gFACE,UAAA,KAAS,CAAA;IAChB,OAAK,eAAE,UAAA,KAAS;IACjB,MAAK;IACL,aAAU;OAEV,mBAcM,OAdN,YAcM,EAAA,UAAA,GAVJ,YAME,wBALK,QAAA,KAAO,GAAA;IACZ,2BAAA;IACA,OAAK,eAAA,CAAC,sDAAoD,CACjD,QAAA,WAAQ,kCAAA,IAAyC,iBAAA,KAAgB,CAAA,CAAA;IAC1E,eAAY;4BAEH,YAAA,SAAA,UAAA,GAAX,mBAEM,OAFN,YAEM,gBADD,YAAA,KAAW,GAAA,CAAA,KAAA,mBAAA,IAAA,IAAA,CAAA,CAAA,CAAA,GAAA,CAAA"}
@@ -1,3 +1,3 @@
1
- import { t as GrLoading_default } from "./chunks/GrLoading-mfyfghxs.js";
2
- import { n as grLoadingSafelist, t as grLoadingConfig } from "../../chunks/config-d386uO3O.js";
1
+ import { t as GrLoading_default } from "./chunks/GrLoading--X_7rdbb.js";
2
+ import { n as grLoadingSafelist, t as grLoadingConfig } from "../../chunks/config-Cpi9Mh2J.js";
3
3
  export { GrLoading_default as GrLoading, GrLoading_default as default, grLoadingConfig, grLoadingSafelist };
@@ -1,5 +1,5 @@
1
- import { a as Ve, i as Je, n as he, o as Ye, r as Ge, t as Se } from "../../../chunks/transition-mJ3PZCHH.js";
2
- import { c as panelTransition, d as shell, i as overlayTransition, n as layout, r as overlay, t as getGrModalPanelClass, u as root } from "../../../chunks/grModalStyles-DS1Vl6EW.js";
1
+ import { a as Ve, i as Je, n as he, o as Ye, r as Ge, t as Se } from "../../../chunks/transition-TLFw4KBn.js";
2
+ import { c as panelTransition, d as shell, i as overlayTransition, n as layout, r as overlay, t as getGrModalPanelClass, u as root } from "../../../chunks/grModalStyles-DWd3i05Q.js";
3
3
  import { Teleport, computed, createBlock, createCommentVNode, createElementVNode, createVNode, defineComponent, normalizeClass, onBeforeUnmount, openBlock, ref, renderSlot, unref, watch, withCtx } from "vue";
4
4
  //#region src/components/GrModal/grModalEscStack.ts
5
5
  var stack$1 = [];
@@ -86,7 +86,7 @@ var GrModal_default = /* @__PURE__ */ defineComponent({
86
86
  emits: ["update:modelValue"],
87
87
  setup(__props, { emit: __emit }) {
88
88
  /**
89
- * GrModal — DS-примитив модального окна на базе `@headlessui/vue`.
89
+ * GrModal — GR-примитив модального окна на базе `@headlessui/vue`.
90
90
  *
91
91
  * Публичный API:
92
92
  * - `modelValue` (v-model) — открыто/закрыто;
@@ -212,7 +212,7 @@ var GrModal_default = /* @__PURE__ */ defineComponent({
212
212
  "leave-to": unref(overlayTransition).leaveTo
213
213
  }, {
214
214
  default: withCtx(() => [createElementVNode("div", {
215
- "data-ds-modal-overlay": "",
215
+ "data-gr-modal-overlay": "",
216
216
  class: normalizeClass(unref(overlay)),
217
217
  "aria-hidden": "true",
218
218
  onPointerdown: onOverlayPointerDown
@@ -237,7 +237,7 @@ var GrModal_default = /* @__PURE__ */ defineComponent({
237
237
  default: withCtx(() => [createVNode(unref(Ge), {
238
238
  ref_key: "panelRef",
239
239
  ref: panelRef,
240
- "data-ds-modal-panel": "",
240
+ "data-gr-modal-panel": "",
241
241
  tabindex: "-1",
242
242
  class: normalizeClass(panelClass.value)
243
243
  }, {
@@ -245,7 +245,7 @@ var GrModal_default = /* @__PURE__ */ defineComponent({
245
245
  _ctx.$slots.title ? (openBlock(), createBlock(unref(Ve), {
246
246
  key: 0,
247
247
  as: "div",
248
- "data-ds-modal-title": ""
248
+ "data-gr-modal-title": ""
249
249
  }, {
250
250
  default: withCtx(() => [renderSlot(_ctx.$slots, "title")]),
251
251
  _: 3
@@ -253,7 +253,7 @@ var GrModal_default = /* @__PURE__ */ defineComponent({
253
253
  _ctx.$slots.description ? (openBlock(), createBlock(unref(Je), {
254
254
  key: 1,
255
255
  as: "div",
256
- "data-ds-modal-description": ""
256
+ "data-gr-modal-description": ""
257
257
  }, {
258
258
  default: withCtx(() => [renderSlot(_ctx.$slots, "description")]),
259
259
  _: 3