@feugene/granularity 0.9.4 → 0.10.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 (223) hide show
  1. package/dist/chunks/{config-d386uO3O.js.map → config-58Mj2rGH.js.map} +1 -1
  2. package/dist/chunks/{config-D4s_QWVP.js.map → config-8f8624RN.js.map} +1 -1
  3. package/dist/chunks/{config-B_nSBc7W.js.map → config-A-iei0Ux.js.map} +1 -1
  4. package/dist/chunks/{config-CFf7xaG1.js → config-B0uUCaJW.js} +1 -1
  5. package/dist/chunks/{config-CFf7xaG1.js.map → config-B0uUCaJW.js.map} +1 -1
  6. package/dist/chunks/{config-Dcb7xK-C.js.map → config-B3dn-gdC.js.map} +1 -1
  7. package/dist/chunks/{config-D6Oe3blW2.js.map → config-BLa1TEGm2.js.map} +1 -1
  8. package/dist/chunks/{config-Dzd6BzIN2.js.map → config-BeBsN0c12.js.map} +1 -1
  9. package/dist/chunks/{config-BU0olrvr.js.map → config-Bh4NWWsQ.js.map} +1 -1
  10. package/dist/chunks/{config-BeQuykDk2.js.map → config-BuoIngj32.js.map} +1 -1
  11. package/dist/chunks/{config-BbKroFtR.js.map → config-C5-ujXCI.js.map} +1 -1
  12. package/dist/chunks/{config-BY81UKv0.js → config-C8MM2Dg0.js} +1 -1
  13. package/dist/chunks/{config-BY81UKv0.js.map → config-C8MM2Dg0.js.map} +1 -1
  14. package/dist/chunks/{config-DF_RlCIO.js.map → config-CPSdAjUi.js.map} +1 -1
  15. package/dist/chunks/{config-iuMz79Mg.js.map → config-CWTfyPNI.js.map} +1 -1
  16. package/dist/chunks/{config-Br_qI3Za.js → config-C_egzT_K.js} +2 -2
  17. package/dist/chunks/config-C_egzT_K.js.map +1 -0
  18. package/dist/chunks/{config-Ci9nXGUV.js.map → config-C_q_4FrU.js.map} +1 -1
  19. package/dist/chunks/{config-O1_FTqD3.js.map → config-CzgNEHKi.js.map} +1 -1
  20. package/dist/chunks/{config-Bcf-8XlK2.js.map → config-DDUPnue12.js.map} +1 -1
  21. package/dist/chunks/{config-DmjwIqx1.js.map → config-DDwBSoc_.js.map} +1 -1
  22. package/dist/chunks/{config-C5OwJM3-.js → config-DRpkoSvq.js} +1 -1
  23. package/dist/chunks/{config-C5OwJM3-.js.map → config-DRpkoSvq.js.map} +1 -1
  24. package/dist/chunks/{config-DaHI5bD_2.js.map → config-DZrlovR42.js.map} +1 -1
  25. package/dist/chunks/{config-72sW9Bag2.js.map → config-D_Pafsjq2.js.map} +1 -1
  26. package/dist/chunks/{config-B1kFmhpM.js.map → config-DhQc1TRY.js.map} +1 -1
  27. package/dist/chunks/{config-CetsgpaZ2.js.map → config-DkeLkzxj2.js.map} +1 -1
  28. package/dist/chunks/{config-BOdu-O_B.js.map → config-Dl5aZ5VR.js.map} +1 -1
  29. package/dist/chunks/{config-CvGdaXvH.js.map → config-Doa_gU40.js.map} +1 -1
  30. package/dist/chunks/{config-CdJpnjDj.js.map → config-DvDNney3.js.map} +1 -1
  31. package/dist/chunks/{config-CpMYmvVT.js.map → config-NkbzVFZo.js.map} +1 -1
  32. package/dist/chunks/{config-_3De4HFf.js.map → config-RjfJFv1Y.js.map} +1 -1
  33. package/dist/chunks/{config-DoBk_CzG.js.map → config-VJuoznpH.js.map} +1 -1
  34. package/dist/chunks/{config-BnWSHTEU.js.map → config-XspHtPsU.js.map} +1 -1
  35. package/dist/chunks/{config-B2YTEe_h.js.map → config-hSlCXHoG.js.map} +1 -1
  36. package/dist/chunks/{config-DSBlHQVa.js.map → config-lMDE_8A5.js.map} +1 -1
  37. package/dist/chunks/{config-Cp_XHsze.js.map → config-nrOj9p6I.js.map} +1 -1
  38. package/dist/chunks/{en-foQA8imU.js → en-B_fSdoTi.js} +9 -2
  39. package/dist/chunks/en-B_fSdoTi.js.map +1 -0
  40. package/dist/chunks/{es-Bx3Kuy6z.js → es-CISK11Nv.js} +3 -3
  41. package/dist/chunks/{es-Bx3Kuy6z.js.map → es-CISK11Nv.js.map} +1 -1
  42. package/dist/chunks/{es-DZFSojYL.js → es-DKP6fLir.js} +9 -2
  43. package/dist/chunks/es-DKP6fLir.js.map +1 -0
  44. package/dist/chunks/{grDropdownStyles-B41mVR1H.js → grDropdownStyles-Bqx9hOzU.js} +10 -7
  45. package/dist/chunks/grDropdownStyles-Bqx9hOzU.js.map +1 -0
  46. package/dist/chunks/{grModalStyles-DS1Vl6EW.js → grModalStyles-FgaKqx50.js} +1 -1
  47. package/dist/chunks/grModalStyles-FgaKqx50.js.map +1 -0
  48. package/dist/chunks/{grSelectStyles-pUt19VGy.js.map → grSelectStyles-AjWWl007.js.map} +1 -1
  49. package/dist/chunks/{grStyle-CUaTmpyW.js.map → grStyle-D-gPHdyW.js.map} +1 -1
  50. package/dist/chunks/{granularityI18n-LcJ88Vce.js → granularityI18n-D_7jowK2.js} +17 -2
  51. package/dist/chunks/granularityI18n-D_7jowK2.js.map +1 -0
  52. package/dist/chunks/{ru-LhkPpPIl.js → ru-S6VlnurJ.js} +9 -2
  53. package/dist/chunks/ru-S6VlnurJ.js.map +1 -0
  54. package/dist/chunks/{shared-BiqXd5MW.js → shared-DpjTvFno.js} +34 -34
  55. package/dist/chunks/{shared-BiqXd5MW.js.map → shared-DpjTvFno.js.map} +1 -1
  56. package/dist/chunks/useFloating-CLtbU7eD.js +1234 -0
  57. package/dist/chunks/useFloating-CLtbU7eD.js.map +1 -0
  58. package/dist/components/GrConfirmDialog/chunks/{GrConfirmDialog-Br6WJkLE.js → GrConfirmDialog-Bi2KLumL.js} +2 -2
  59. package/dist/components/GrConfirmDialog/chunks/{GrConfirmDialog-Br6WJkLE.js.map → GrConfirmDialog-Bi2KLumL.js.map} +1 -1
  60. package/dist/components/GrConfirmDialog/index.js +1 -1
  61. package/dist/components/GrDialog/chunks/{GrDialog-C7XLxp8e.js → GrDialog-CxK4Lj4F.js} +1 -1
  62. package/dist/components/GrDialog/chunks/{GrDialog-C7XLxp8e.js.map → GrDialog-CxK4Lj4F.js.map} +1 -1
  63. package/dist/components/GrDialog/index.js +1 -1
  64. package/dist/components/GrDropdown/chunks/{GrDropdown-DOvHKnih.js → GrDropdown-BGKeEfZ1.js} +13 -59
  65. package/dist/components/GrDropdown/chunks/GrDropdown-BGKeEfZ1.js.map +1 -0
  66. package/dist/components/GrDropdown/index.js +2 -2
  67. package/dist/components/GrDropdownMenu/chunks/{GrDropdownMenu-CLPwbiyG.js → GrDropdownMenu-CJom_-c2.js} +1 -1
  68. package/dist/components/GrDropdownMenu/chunks/{GrDropdownMenu-CLPwbiyG.js.map → GrDropdownMenu-CJom_-c2.js.map} +1 -1
  69. package/dist/components/GrDropdownMenu/index.js +2 -2
  70. package/dist/components/GrEmptyState/chunks/{GrEmptyState-Dj2V5GaX.js.map → GrEmptyState-yOuZW7-t.js.map} +1 -1
  71. package/dist/components/GrEmptyState/index.js +2 -2
  72. package/dist/components/GrFileUpload/chunks/{GrFileUpload-BEKNB1RM.js → GrFileUpload-CBKK3dgC.js} +1 -1
  73. package/dist/components/GrFileUpload/chunks/{GrFileUpload-BEKNB1RM.js.map → GrFileUpload-CBKK3dgC.js.map} +1 -1
  74. package/dist/components/GrFileUpload/index.js +2 -2
  75. package/dist/components/GrFormField/index.js +1 -1
  76. package/dist/components/GrFormFile/chunks/{GrFormFile-CIleXnfr.js.map → GrFormFile-CkR6cYqf.js.map} +1 -1
  77. package/dist/components/GrFormFile/index.js +2 -2
  78. package/dist/components/GrFormSection/chunks/{GrFormSection-DpGhY7MX.js.map → GrFormSection-dbyzqxYk.js.map} +1 -1
  79. package/dist/components/GrFormSection/index.js +2 -2
  80. package/dist/components/GrImageViewer/chunks/{GrImageViewer-CsvXQHM9.js.map → GrImageViewer-BG40DsHa.js.map} +1 -1
  81. package/dist/components/GrImageViewer/index.js +2 -2
  82. package/dist/components/GrInput/index.js +1 -1
  83. package/dist/components/GrInputTag/chunks/{GrInputTag-Dcj3F6rQ.js → GrInputTag-g-KdUI_Z.js} +1 -1
  84. package/dist/components/GrInputTag/chunks/{GrInputTag-Dcj3F6rQ.js.map → GrInputTag-g-KdUI_Z.js.map} +1 -1
  85. package/dist/components/GrInputTag/index.js +2 -2
  86. package/dist/components/GrLink/chunks/{GrLink-BMwn2iJ9.js → GrLink-KSTmk9Yq.js} +1 -1
  87. package/dist/components/GrLink/chunks/{GrLink-BMwn2iJ9.js.map → GrLink-KSTmk9Yq.js.map} +1 -1
  88. package/dist/components/GrLink/index.js +2 -2
  89. package/dist/components/GrList/chunks/{GrList-D8nM1FuV.js.map → GrList-CUW2sRm_.js.map} +1 -1
  90. package/dist/components/GrList/index.js +2 -2
  91. package/dist/components/GrLoading/index.js +1 -1
  92. package/dist/components/GrModal/chunks/{GrModal-lh0lOmoi.js → GrModal-CSOL3fHQ.js} +1 -1
  93. package/dist/components/GrModal/chunks/{GrModal-lh0lOmoi.js.map → GrModal-CSOL3fHQ.js.map} +1 -1
  94. package/dist/components/GrModal/index.js +3 -3
  95. package/dist/components/GrNavbar/chunks/{GrNavbar-BH7XiF9q.js → GrNavbar-CHxwtFIR.js} +1 -1
  96. package/dist/components/GrNavbar/chunks/{GrNavbar-BH7XiF9q.js.map → GrNavbar-CHxwtFIR.js.map} +1 -1
  97. package/dist/components/GrNavbar/index.js +2 -2
  98. package/dist/components/GrNumberInput/chunks/{GrNumberInput-YIWhV85S.js → GrNumberInput-ClPBwkxx.js} +1 -1
  99. package/dist/components/GrNumberInput/chunks/{GrNumberInput-YIWhV85S.js.map → GrNumberInput-ClPBwkxx.js.map} +1 -1
  100. package/dist/components/GrNumberInput/index.js +2 -2
  101. package/dist/components/GrPagination/chunks/{GrPagination-BNDEqM8_.js → GrPagination-D2GS0ShQ.js} +4 -4
  102. package/dist/components/GrPagination/chunks/GrPagination-D2GS0ShQ.js.map +1 -0
  103. package/dist/components/GrPagination/index.js +2 -2
  104. package/dist/components/GrProgressBar/chunks/{GrProgressBar-C2HdYjp4.js → GrProgressBar-BBSFpVEq.js} +1 -1
  105. package/dist/components/GrProgressBar/chunks/{GrProgressBar-C2HdYjp4.js.map → GrProgressBar-BBSFpVEq.js.map} +1 -1
  106. package/dist/components/GrProgressBar/index.js +2 -2
  107. package/dist/components/GrPromptDialog/chunks/{GrPromptDialog-BV4EW3XO.js → GrPromptDialog-D_TFqKsF.js} +2 -2
  108. package/dist/components/GrPromptDialog/chunks/{GrPromptDialog-BV4EW3XO.js.map → GrPromptDialog-D_TFqKsF.js.map} +1 -1
  109. package/dist/components/GrPromptDialog/index.js +2 -2
  110. package/dist/components/GrRadio/chunks/{GrRadio-IFU9Hiu2.js → GrRadio-CSbTnrom.js} +1 -1
  111. package/dist/components/GrRadio/chunks/{GrRadio-IFU9Hiu2.js.map → GrRadio-CSbTnrom.js.map} +1 -1
  112. package/dist/components/GrRadio/index.js +2 -2
  113. package/dist/components/GrRadioGroup/chunks/{GrRadioGroup-C8IcJuuF.js → GrRadioGroup-DsrnTygR.js} +1 -1
  114. package/dist/components/GrRadioGroup/chunks/{GrRadioGroup-C8IcJuuF.js.map → GrRadioGroup-DsrnTygR.js.map} +1 -1
  115. package/dist/components/GrRadioGroup/index.js +2 -2
  116. package/dist/components/GrResponseErrorBanner/chunks/{GrResponseErrorBanner-BMvXREcv.js → GrResponseErrorBanner-K1uZ1mYD.js} +1 -1
  117. package/dist/components/GrResponseErrorBanner/chunks/{GrResponseErrorBanner-BMvXREcv.js.map → GrResponseErrorBanner-K1uZ1mYD.js.map} +1 -1
  118. package/dist/components/GrResponseErrorBanner/chunks/{GrResponseErrorBanner-CzdTh4gd.js → GrResponseErrorBanner-bM8FC_Bw.js} +1 -1
  119. package/dist/components/GrResponseErrorBanner/chunks/{GrResponseErrorBanner-CzdTh4gd.js.map → GrResponseErrorBanner-bM8FC_Bw.js.map} +1 -1
  120. package/dist/components/GrResponseErrorBanner/index.js +2 -2
  121. package/dist/components/GrSegmented/chunks/{GrSegmented-BRmwBsEG.js → GrSegmented-DpZGs4VX.js} +1 -1
  122. package/dist/components/GrSegmented/chunks/{GrSegmented-BRmwBsEG.js.map → GrSegmented-DpZGs4VX.js.map} +1 -1
  123. package/dist/components/GrSegmented/index.js +2 -2
  124. package/dist/components/GrSelect/chunks/{GrSelect-CnHdbPlf.js → GrSelect-DSz7jvUb.js} +25 -51
  125. package/dist/components/GrSelect/chunks/GrSelect-DSz7jvUb.js.map +1 -0
  126. package/dist/components/GrSelect/index.js +2 -2
  127. package/dist/components/GrSidebar/chunks/{GrSidebar-BpBtAGBs.js.map → GrSidebar-BW8LRMZ-.js.map} +1 -1
  128. package/dist/components/GrSidebar/index.js +2 -2
  129. package/dist/components/GrSkeleton/chunks/{GrSkeleton-URyMkBqI.js.map → GrSkeleton-B05K0QKh.js.map} +1 -1
  130. package/dist/components/GrSkeleton/index.js +2 -2
  131. package/dist/components/GrSwitch/chunks/{GrSwitch-29h0QhMO.js → GrSwitch-CSRtcN5-.js} +1 -1
  132. package/dist/components/GrSwitch/chunks/{GrSwitch-29h0QhMO.js.map → GrSwitch-CSRtcN5-.js.map} +1 -1
  133. package/dist/components/GrSwitch/index.js +2 -2
  134. package/dist/components/GrTable/index.js +1 -1
  135. package/dist/components/GrTabs/chunks/{GrTabs-D3ntDdtg.js.map → GrTabs-BfeVNMFJ.js.map} +1 -1
  136. package/dist/components/GrTabs/index.js +2 -2
  137. package/dist/components/GrTextarea/chunks/{GrTextarea-Cv6r2GuC.js → GrTextarea-CBBzpF2S.js} +1 -1
  138. package/dist/components/GrTextarea/chunks/{GrTextarea-Cv6r2GuC.js.map → GrTextarea-CBBzpF2S.js.map} +1 -1
  139. package/dist/components/GrTextarea/index.js +2 -2
  140. package/dist/components/GrToaster/chunks/{GrToaster-DluJmR5D.js → GrToaster-C6_iHk2J.js} +4 -3
  141. package/dist/components/GrToaster/chunks/GrToaster-C6_iHk2J.js.map +1 -0
  142. package/dist/components/GrToaster/index.js +2 -2
  143. package/dist/components/GrTooltip/chunks/GrTooltip-BC-40SA5.js +109 -0
  144. package/dist/components/GrTooltip/chunks/GrTooltip-BC-40SA5.js.map +1 -0
  145. package/dist/components/GrTooltip/index.js +2 -2
  146. package/dist/components/GrTree/chunks/{GrTree-B2SMU5Py.js.map → GrTree-uZr5SyQI.js.map} +1 -1
  147. package/dist/components/GrTree/index.js +2 -2
  148. package/dist/components/GrTreeSelect/chunks/{GrTreeSelect-C1abr5uH.js → GrTreeSelect-CytivcCa.js} +9 -37
  149. package/dist/components/GrTreeSelect/chunks/GrTreeSelect-CytivcCa.js.map +1 -0
  150. package/dist/components/GrTreeSelect/index.js +2 -2
  151. package/dist/granular-provider-node.js +2 -2
  152. package/dist/granular-provider.js +1 -1
  153. package/dist/i18n/all.js +1 -1
  154. package/dist/i18n/index.js +1 -1
  155. package/dist/index.js +67 -67
  156. package/dist/types/src/components/GrDropdown/grDropdownStyles.d.ts +3 -2
  157. package/dist/types/src/components/GrDropdownMenu/GrDropdownMenu.vue.d.ts +2 -2
  158. package/dist/types/src/components/GrDropdownMenu/GrDropdownMenuGroup.vue.d.ts +1 -1
  159. package/dist/types/src/components/GrDropdownMenu/GrDropdownMenuList.vue.d.ts +2 -2
  160. package/dist/types/src/components/GrFileUpload/GrFileUpload.vue.d.ts +1 -1
  161. package/dist/types/src/components/GrLink/GrLink.vue.d.ts +1 -1
  162. package/dist/types/src/components/GrModal/grModalStyles.d.ts +1 -1
  163. package/dist/types/src/components/GrSegmented/GrSegmented.vue.d.ts +1 -1
  164. package/dist/types/src/components/GrSelect/GrSelect.vue.d.ts +6 -6
  165. package/dist/types/src/composables/internal/useFloating.d.ts +53 -0
  166. package/dist/types/src/i18n/messages/en.d.ts +12 -0
  167. package/dist/types/src/i18n/messages/es.d.ts +12 -0
  168. package/dist/types/src/i18n/messages/ru.d.ts +12 -0
  169. package/package.json +9 -1
  170. package/dist/chunks/config-Br_qI3Za.js.map +0 -1
  171. package/dist/chunks/en-foQA8imU.js.map +0 -1
  172. package/dist/chunks/es-DZFSojYL.js.map +0 -1
  173. package/dist/chunks/grDropdownStyles-B41mVR1H.js.map +0 -1
  174. package/dist/chunks/grModalStyles-DS1Vl6EW.js.map +0 -1
  175. package/dist/chunks/granularityI18n-LcJ88Vce.js.map +0 -1
  176. package/dist/chunks/ru-LhkPpPIl.js.map +0 -1
  177. package/dist/components/GrDropdown/chunks/GrDropdown-DOvHKnih.js.map +0 -1
  178. package/dist/components/GrPagination/chunks/GrPagination-BNDEqM8_.js.map +0 -1
  179. package/dist/components/GrSelect/chunks/GrSelect-CnHdbPlf.js.map +0 -1
  180. package/dist/components/GrToaster/chunks/GrToaster-DluJmR5D.js.map +0 -1
  181. package/dist/components/GrTooltip/chunks/GrTooltip-B7I1AVIC.js +0 -55
  182. package/dist/components/GrTooltip/chunks/GrTooltip-B7I1AVIC.js.map +0 -1
  183. package/dist/components/GrTreeSelect/chunks/GrTreeSelect-C1abr5uH.js.map +0 -1
  184. /package/dist/chunks/{config-d386uO3O.js → config-58Mj2rGH.js} +0 -0
  185. /package/dist/chunks/{config-D4s_QWVP.js → config-8f8624RN.js} +0 -0
  186. /package/dist/chunks/{config-B_nSBc7W.js → config-A-iei0Ux.js} +0 -0
  187. /package/dist/chunks/{config-Dcb7xK-C.js → config-B3dn-gdC.js} +0 -0
  188. /package/dist/chunks/{config-D6Oe3blW2.js → config-BLa1TEGm2.js} +0 -0
  189. /package/dist/chunks/{config-Dzd6BzIN2.js → config-BeBsN0c12.js} +0 -0
  190. /package/dist/chunks/{config-BU0olrvr.js → config-Bh4NWWsQ.js} +0 -0
  191. /package/dist/chunks/{config-BeQuykDk2.js → config-BuoIngj32.js} +0 -0
  192. /package/dist/chunks/{config-BbKroFtR.js → config-C5-ujXCI.js} +0 -0
  193. /package/dist/chunks/{config-DF_RlCIO.js → config-CPSdAjUi.js} +0 -0
  194. /package/dist/chunks/{config-iuMz79Mg.js → config-CWTfyPNI.js} +0 -0
  195. /package/dist/chunks/{config-Ci9nXGUV.js → config-C_q_4FrU.js} +0 -0
  196. /package/dist/chunks/{config-O1_FTqD3.js → config-CzgNEHKi.js} +0 -0
  197. /package/dist/chunks/{config-Bcf-8XlK2.js → config-DDUPnue12.js} +0 -0
  198. /package/dist/chunks/{config-DmjwIqx1.js → config-DDwBSoc_.js} +0 -0
  199. /package/dist/chunks/{config-DaHI5bD_2.js → config-DZrlovR42.js} +0 -0
  200. /package/dist/chunks/{config-72sW9Bag2.js → config-D_Pafsjq2.js} +0 -0
  201. /package/dist/chunks/{config-B1kFmhpM.js → config-DhQc1TRY.js} +0 -0
  202. /package/dist/chunks/{config-CetsgpaZ2.js → config-DkeLkzxj2.js} +0 -0
  203. /package/dist/chunks/{config-BOdu-O_B.js → config-Dl5aZ5VR.js} +0 -0
  204. /package/dist/chunks/{config-CvGdaXvH.js → config-Doa_gU40.js} +0 -0
  205. /package/dist/chunks/{config-CdJpnjDj.js → config-DvDNney3.js} +0 -0
  206. /package/dist/chunks/{config-CpMYmvVT.js → config-NkbzVFZo.js} +0 -0
  207. /package/dist/chunks/{config-_3De4HFf.js → config-RjfJFv1Y.js} +0 -0
  208. /package/dist/chunks/{config-DoBk_CzG.js → config-VJuoznpH.js} +0 -0
  209. /package/dist/chunks/{config-BnWSHTEU.js → config-XspHtPsU.js} +0 -0
  210. /package/dist/chunks/{config-B2YTEe_h.js → config-hSlCXHoG.js} +0 -0
  211. /package/dist/chunks/{config-DSBlHQVa.js → config-lMDE_8A5.js} +0 -0
  212. /package/dist/chunks/{config-Cp_XHsze.js → config-nrOj9p6I.js} +0 -0
  213. /package/dist/chunks/{grSelectStyles-pUt19VGy.js → grSelectStyles-AjWWl007.js} +0 -0
  214. /package/dist/chunks/{grStyle-CUaTmpyW.js → grStyle-D-gPHdyW.js} +0 -0
  215. /package/dist/components/GrEmptyState/chunks/{GrEmptyState-Dj2V5GaX.js → GrEmptyState-yOuZW7-t.js} +0 -0
  216. /package/dist/components/GrFormFile/chunks/{GrFormFile-CIleXnfr.js → GrFormFile-CkR6cYqf.js} +0 -0
  217. /package/dist/components/GrFormSection/chunks/{GrFormSection-DpGhY7MX.js → GrFormSection-dbyzqxYk.js} +0 -0
  218. /package/dist/components/GrImageViewer/chunks/{GrImageViewer-CsvXQHM9.js → GrImageViewer-BG40DsHa.js} +0 -0
  219. /package/dist/components/GrList/chunks/{GrList-D8nM1FuV.js → GrList-CUW2sRm_.js} +0 -0
  220. /package/dist/components/GrSidebar/chunks/{GrSidebar-BpBtAGBs.js → GrSidebar-BW8LRMZ-.js} +0 -0
  221. /package/dist/components/GrSkeleton/chunks/{GrSkeleton-URyMkBqI.js → GrSkeleton-B05K0QKh.js} +0 -0
  222. /package/dist/components/GrTabs/chunks/{GrTabs-D3ntDdtg.js → GrTabs-BfeVNMFJ.js} +0 -0
  223. /package/dist/components/GrTree/chunks/{GrTree-B2SMU5Py.js → GrTree-uZr5SyQI.js} +0 -0
@@ -11,6 +11,10 @@ var treeSelect = {
11
11
  "filterPlaceholder": "Buscar…",
12
12
  "empty": "Sin datos"
13
13
  };
14
+ var select = {
15
+ "customValuePlaceholder": "Añadir valor…",
16
+ "addOption": "Añadir «{value}»"
17
+ };
14
18
  var dialog = {
15
19
  "confirm": { "title": "Confirmar" },
16
20
  "prompt": {
@@ -20,9 +24,11 @@ var dialog = {
20
24
  }
21
25
  };
22
26
  var pagination = {
27
+ "label": "Paginación",
23
28
  "pageSize": "Tamaño de página",
24
29
  "prev": "Anterior",
25
- "next": "Siguiente"
30
+ "next": "Siguiente",
31
+ "page": "Página {n}"
26
32
  };
27
33
  var navbar = { "openMenu": "Abrir menú" };
28
34
  var responseError = {
@@ -55,6 +61,7 @@ var es_default = {
55
61
  common,
56
62
  loading,
57
63
  treeSelect,
64
+ select,
58
65
  dialog,
59
66
  pagination,
60
67
  navbar,
@@ -62,4 +69,4 @@ var es_default = {
62
69
  colors
63
70
  };
64
71
  //#endregion
65
- export { colors, common, es_default as default, dialog, loading, navbar, pagination, responseError, treeSelect };
72
+ export { colors, common, es_default as default, dialog, loading, navbar, pagination, responseError, select, treeSelect };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"es-DKP6fLir.js","names":[],"sources":["../../src/i18n/locales/es.json"],"sourcesContent":["{\n \"common\": {\n \"confirm\": \"Confirmar\",\n \"cancel\": \"Cancelar\",\n \"add\": \"Añadir\",\n \"clear\": \"Limpiar\",\n \"close\": \"Cerrar\"\n },\n \"loading\": {\n \"defaultText\": \"Cargando...\"\n },\n \"treeSelect\": {\n \"filterPlaceholder\": \"Buscar…\",\n \"empty\": \"Sin datos\"\n },\n \"select\": {\n \"customValuePlaceholder\": \"Añadir valor…\",\n \"addOption\": \"Añadir «{value}»\"\n },\n \"dialog\": {\n \"confirm\": {\n \"title\": \"Confirmar\"\n },\n \"prompt\": {\n \"title\": \"Aviso\",\n \"label\": \"Valor\",\n \"required\": \"Introduzca un valor.\"\n }\n },\n \"pagination\": {\n \"label\": \"Paginación\",\n \"pageSize\": \"Tamaño de página\",\n \"prev\": \"Anterior\",\n \"next\": \"Siguiente\",\n \"page\": \"Página {n}\"\n },\n \"navbar\": {\n \"openMenu\": \"Abrir menú\"\n },\n \"responseError\": {\n \"networkTitle\": \"Sin conexión con el servidor\",\n \"networkMessage\": \"Compruebe su conexión a internet e inténtelo de nuevo.\",\n \"abortedTitle\": \"Solicitud cancelada\",\n \"abortedMessage\": \"La solicitud fue cancelada.\",\n \"validationTitle\": \"Compruebe los datos\",\n \"validationMessage\": \"El servidor devolvió un error de validación. Corrija los campos e inténtelo de nuevo.\",\n \"clientTitle\": \"Error de solicitud\",\n \"clientMessage\": \"El servidor rechazó la solicitud.\",\n \"serverTitle\": \"Error del servidor\",\n \"serverMessage\": \"Se produjo un error en el servidor. Inténtelo de nuevo.\",\n \"unknownTitle\": \"Algo salió mal\",\n \"unknownMessage\": \"No se pudo completar la operación. Inténtelo de nuevo.\",\n \"retryLabel\": \"Reintentar\",\n \"dismissLabel\": \"Descartar\"\n },\n \"colors\": {\n \"neutral\": \"Neutral\",\n \"success\": \"Éxito\",\n \"warning\": \"Advertencia\",\n \"danger\": \"Peligro\",\n \"info\": \"Info\",\n \"primary\": \"Primario\",\n \"slate\": \"Pizarra\",\n \"azure\": \"Azul celeste\"\n }\n}\n"],"mappings":""}
@@ -7,16 +7,19 @@ var widthClassByWidth = {
7
7
  64: "w-64",
8
8
  80: "w-80"
9
9
  };
10
- var alignmentClassByAlign = {
11
- left: "origin-top-left",
12
- right: "origin-top-right -translate-x-full",
13
- center: "origin-top -translate-x-1/2"
10
+ var originClassByPlacement = {
11
+ "bottom-start": "origin-top-left",
12
+ "bottom-end": "origin-top-right",
13
+ "bottom": "origin-top",
14
+ "top-start": "origin-bottom-left",
15
+ "top-end": "origin-bottom-right",
16
+ "top": "origin-bottom"
14
17
  };
15
18
  function grDropdownWidthClass(width) {
16
19
  return widthClassByWidth[width];
17
20
  }
18
- function grDropdownAlignmentClass(align) {
19
- return alignmentClassByAlign[align];
21
+ function grDropdownOriginClass(placement) {
22
+ return originClassByPlacement[placement] ?? "origin-top";
20
23
  }
21
24
  function grDropdownContentClass(contentClass) {
22
25
  return [
@@ -29,4 +32,4 @@ function grDropdownContentClass(contentClass) {
29
32
  ].filter(Boolean).join(" ");
30
33
  }
31
34
  //#endregion
32
- export { widthClassByWidth as a, grDropdownWidthClass as i, grDropdownAlignmentClass as n, grDropdownContentClass as r, alignmentClassByAlign as t };
35
+ export { widthClassByWidth as a, originClassByPlacement as i, grDropdownOriginClass as n, grDropdownWidthClass as r, grDropdownContentClass as t };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grDropdownStyles-Bqx9hOzU.js","names":[],"sources":["../../src/components/GrDropdown/grDropdownStyles.ts"],"sourcesContent":["import type { Placement } from '@floating-ui/dom'\n\nexport type GrDropdownAlign = 'left' | 'right' | 'center'\nexport type GrDropdownWidth = 'auto' | '20' | '48' | '60' | '64' | '80'\n\nexport const widthClassByWidth: Record<GrDropdownWidth, string> = {\n auto: '',\n 20: 'w-20',\n 48: 'w-48',\n 60: 'w-60',\n 64: 'w-64',\n 80: 'w-80',\n}\n\n// `transform-origin` для scale-transition — координата x/y уже приходит от\n// `useFloating` (см. `floatingStyle`), здесь остаётся только направление\n// \"роста\" панели относительно триггера. Ключи — это `resolvedPlacement` ПОСЛЕ\n// применения `flip`, поэтому origin остаётся верным и когда панели не хватило\n// места снизу и её перевернуло вверх.\nexport const originClassByPlacement: Partial<Record<Placement, string>> = {\n 'bottom-start': 'origin-top-left',\n 'bottom-end': 'origin-top-right',\n 'bottom': 'origin-top',\n 'top-start': 'origin-bottom-left',\n 'top-end': 'origin-bottom-right',\n 'top': 'origin-bottom',\n}\n\nexport function grDropdownWidthClass(width: GrDropdownWidth): string {\n return widthClassByWidth[width]\n}\n\nexport function grDropdownOriginClass(placement: Placement): string {\n return originClassByPlacement[placement] ?? 'origin-top'\n}\n\nexport function grDropdownContentClass(contentClass?: string): string {\n return [\n 'rounded-[var(--ds-radius-xl)]',\n 'border border-[var(--brd)]',\n 'bg-[var(--card)] text-[var(--card-fg)]',\n 'shadow-[var(--ds-shadow-2)]',\n 'p-1',\n contentClass,\n ].filter(Boolean).join(' ')\n}\n"],"mappings":";AAKA,IAAa,oBAAqD;CAChE,MAAM;CACN,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACL;AAOD,IAAa,yBAA6D;CACxE,gBAAgB;CAChB,cAAc;CACd,UAAU;CACV,aAAa;CACb,WAAW;CACX,OAAO;CACR;AAED,SAAgB,qBAAqB,OAAgC;AACnE,QAAO,kBAAkB;;AAG3B,SAAgB,sBAAsB,WAA8B;AAClE,QAAO,uBAAuB,cAAc;;AAG9C,SAAgB,uBAAuB,cAA+B;AACpE,QAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACD,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI"}
@@ -1,5 +1,5 @@
1
1
  //#region src/components/GrModal/grModalStyles.ts
2
- var root = "fixed inset-0 z-50";
2
+ var root = "fixed inset-0 z-[var(--gr-z-modal)]";
3
3
  var shell = "fixed inset-0 overflow-y-auto p-4 sm:p-6";
4
4
  var layout = "min-h-full flex items-center justify-center";
5
5
  var overlay = "fixed inset-0 z-0 bg-black/40";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grModalStyles-FgaKqx50.js","names":[],"sources":["../../src/components/GrModal/grModalStyles.ts"],"sourcesContent":["export type GrModalSize = 'sm' | 'md' | 'lg' | 'xl' | 'full'\n\n// Корневые утилитарные классы, используемые шаблоном `GrModal.vue`.\n// Они же являются единственным источником истины для safelist.\nexport const root = 'fixed inset-0 z-[var(--gr-z-modal)]'\nexport const shell = 'fixed inset-0 overflow-y-auto p-4 sm:p-6'\nexport const layout = 'min-h-full flex items-center justify-center'\nexport const overlay = 'fixed inset-0 z-0 bg-black/40'\n\n// Классы для `<TransitionChild :enter=\"...\" :enter-from=\"...\" ...>`.\n// Разбиты по фазам транзишна, чтобы не склеивать их в «мешок токенов».\nexport const overlayTransition = {\n enter: 'duration-200 ease-out',\n enterFrom: 'opacity-0',\n enterTo: 'opacity-100',\n leave: 'duration-150 ease-in',\n leaveFrom: 'opacity-100',\n leaveTo: 'opacity-0',\n} as const\n\nexport const panelTransition = {\n enter: 'duration-200 ease-out',\n enterFrom: 'opacity-0 translate-y-2 sm:translate-y-0 sm:scale-95',\n enterTo: 'opacity-100 translate-y-0 sm:scale-100',\n leave: 'duration-150 ease-in',\n leaveFrom: 'opacity-100 translate-y-0 sm:scale-100',\n leaveTo: 'opacity-0 translate-y-2 sm:translate-y-0 sm:scale-95',\n} as const\n\nexport const panelBase\n = 'w-full overflow-hidden relative z-10 border border-[var(--brd)] bg-[var(--card)] text-[var(--card-fg)] shadow-[var(--ds-shadow-2)] outline-none'\n\nexport const panelWidthBySize: Record<GrModalSize, string> = {\n sm: 'max-w-[420px]',\n md: 'max-w-[560px]',\n lg: 'max-w-[720px]',\n xl: 'max-w-[920px]',\n full: 'max-w-none',\n}\n\nexport const panelRadiusBySize: Record<GrModalSize, string> = {\n sm: 'rounded-[var(--ds-radius-xl)]',\n md: 'rounded-[var(--ds-radius-xl)]',\n lg: 'rounded-[var(--ds-radius-xl)]',\n xl: 'rounded-[var(--ds-radius-xl)]',\n full: 'rounded-none sm:rounded-[var(--ds-radius-xl)]',\n}\n\n// Для большинства размеров высота не задаётся — `Partial` + фильтрация пустых\n// значений в `getGrModalPanelClass` избавляют от двойных пробелов.\nexport const panelHeightBySize: Partial<Record<GrModalSize, string>> = {\n full: 'h-[100svh] sm:h-auto',\n}\n\nexport function getGrModalPanelClass(size: GrModalSize): string {\n return [\n panelBase,\n panelWidthBySize[size],\n panelHeightBySize[size],\n panelRadiusBySize[size],\n ]\n .filter(Boolean)\n .join(' ')\n}\n"],"mappings":";AAIA,IAAa,OAAO;AACpB,IAAa,QAAQ;AACrB,IAAa,SAAS;AACtB,IAAa,UAAU;AAIvB,IAAa,oBAAoB;CAC/B,OAAO;CACP,WAAW;CACX,SAAS;CACT,OAAO;CACP,WAAW;CACX,SAAS;CACV;AAED,IAAa,kBAAkB;CAC7B,OAAO;CACP,WAAW;CACX,SAAS;CACT,OAAO;CACP,WAAW;CACX,SAAS;CACV;AAED,IAAa,YACT;AAEJ,IAAa,mBAAgD;CAC3D,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,MAAM;CACP;AAED,IAAa,oBAAiD;CAC5D,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,MAAM;CACP;AAID,IAAa,oBAA0D,EACrE,MAAM,wBACP;AAED,SAAgB,qBAAqB,MAA2B;AAC9D,QAAO;EACL;EACA,iBAAiB;EACjB,kBAAkB;EAClB,kBAAkB;EACnB,CACE,OAAO,QAAQ,CACf,KAAK,IAAI"}
@@ -1 +1 @@
1
- {"version":3,"file":"grSelectStyles-pUt19VGy.js","names":[],"sources":["../../src/components/GrSelect/grSelectStyles.ts"],"sourcesContent":["export type GrSelectView = 'default' | 'link'\nexport type GrSelectSize = 'xs' | 'sm' | 'md' | 'lg'\nexport type GrSelectVariant = 'primary' | 'default' | 'muted' | 'danger'\nexport type GrSelectUnderline = 'auto' | 'always' | 'none'\nexport type GrSelectOptionsView = 'native' | 'panel'\nexport type GrSelectOption = { value: string, label: string }\n/** Группа опций: заголовок `label` + вложенные опции `options`. */\nexport type GrSelectOptionGroup = { label: string, options: GrSelectOption[] }\n/** Элемент списка опций: либо одиночная опция, либо группа опций. */\nexport type GrSelectOptionOrGroup = GrSelectOption | GrSelectOptionGroup\nexport type GrSelectModelValue = string | string[]\n\nexport const defaultBaseClass = 'w-full rounded-md border border-[var(--brd)] bg-[var(--bg)] text-[var(--fg)] transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]'\nexport const linkBaseClass = 'cursor-pointer inline-block w-auto align-baseline appearance-none bg-transparent border border-transparent px-0 py-0 rounded-[6px] transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]'\n\n\nexport const selectSizeClassBySize: Record<GrSelectSize, string> = {\n xs: 'h-7 px-2.5 text-[12px]',\n sm: 'h-8 px-3 text-[13px]',\n md: 'h-10 px-3 text-[14px]',\n lg: 'h-11 px-4 text-[16px]',\n}\n\nexport const selectLinkSizeClassBySize: Record<GrSelectSize, string> = {\n xs: 'text-[12px]',\n sm: 'text-[13px]',\n md: 'text-[14px]',\n lg: 'text-[16px]',\n}\n\nexport const selectLinkVariantClassByVariant: Record<GrSelectVariant, string> = {\n primary: 'text-[var(--primary)] hover:text-[var(--primary-hover)] active:text-[var(--primary-active)]',\n default: 'text-[var(--fg)] hover:text-[var(--primary)] active:text-[var(--primary-active)]',\n muted: 'text-[var(--muted-fg)] hover:text-[var(--fg)] active:text-[var(--fg)]',\n danger: 'text-[var(--ds-danger)] hover:text-[var(--ds-danger-hover)] active:text-[var(--ds-danger-active)]',\n}\n\n/**\n * Variant-классы для видимой метки в `view=\"link\"` + `optionsView=\"native\"`.\n * Hover-цвет приходит через `peer-hover:` от прозрачного `<select>`-overlay,\n * т.к. видимая метка имеет `pointer-events-none` и не получает hover напрямую.\n */\nexport const selectLinkNativeLabelVariantClassByVariant: Record<GrSelectVariant, string> = {\n primary: 'text-[var(--primary)] peer-hover:text-[var(--primary-hover)] peer-active:text-[var(--primary-active)]',\n default: 'text-[var(--fg)] peer-hover:text-[var(--primary)] peer-active:text-[var(--primary-active)]',\n muted: 'text-[var(--muted-fg)] peer-hover:text-[var(--fg)] peer-active:text-[var(--fg)]',\n danger: 'text-[var(--ds-danger)] peer-hover:text-[var(--ds-danger-hover)] peer-active:text-[var(--ds-danger-active)]',\n}\n\nfunction selectLinkUnderlineClass(options: { underline: GrSelectUnderline, disabled: boolean }): string {\n if (options.disabled) return 'no-underline'\n if (options.underline === 'always') return 'underline underline-offset-4'\n if (options.underline === 'none') return 'no-underline'\n return 'no-underline hover:underline hover:underline-offset-4'\n}\n\n/**\n * Underline-классы для видимой метки в `view=\"link\"` + `optionsView=\"native\"`.\n * Видимая метка имеет `pointer-events-none`, а hover получает прозрачный\n * `<select>`-overlay (peer), поэтому для `underline=\"auto\"` используем\n * `peer-hover:underline` вместо `hover:underline`.\n */\nfunction selectLinkNativeLabelUnderlineClass(options: { underline: GrSelectUnderline, disabled: boolean }): string {\n if (options.disabled) return 'no-underline'\n if (options.underline === 'always') return 'underline underline-offset-4'\n if (options.underline === 'none') return 'no-underline'\n return 'no-underline peer-hover:underline peer-hover:underline-offset-4'\n}\n\n/**\n * Классы прозрачного `<select>`-overlay для `view=\"link\"` + `optionsView=\"native\"`.\n * Нативный селект растягивается на всю обёртку, но визуально невидим — ширину обёртки\n * задаёт видимый `<span>` с выбранной меткой, благодаря чему компонент в закрытом\n * состоянии занимает столько места, сколько нужно текущей опции (а не самой длинной).\n */\nexport const grSelectLinkNativeOverlayClass = 'peer absolute inset-0 w-full h-full m-0 p-0 border-0 bg-transparent text-transparent appearance-none opacity-0 cursor-pointer disabled:cursor-not-allowed focus:outline-none'\n\n/**\n * Классы видимой метки для `view=\"link\"` + `optionsView=\"native\"` (поверх прозрачного `<select>`).\n * Получает все link-стили (size/variant/underline), а также focus-ring через `peer-focus-visible`.\n */\nexport function grSelectLinkNativeLabelClass(options: {\n size: GrSelectSize\n variant: GrSelectVariant\n underline: GrSelectUnderline\n disabled: boolean\n}): string {\n return [\n 'pointer-events-none inline-block whitespace-nowrap align-baseline rounded-[6px] transition-colors duration-150',\n selectLinkSizeClassBySize[options.size],\n selectLinkNativeLabelUnderlineClass({ underline: options.underline, disabled: options.disabled }),\n selectLinkNativeLabelVariantClassByVariant[options.variant],\n options.disabled ? 'opacity-60 text-[var(--muted-fg)] no-underline' : '',\n 'peer-focus-visible:outline-none peer-focus-visible:ring-2 peer-focus-visible:ring-[var(--ring)]',\n ]\n .filter(Boolean)\n .join(' ')\n}\n\nexport function grSelectClass(options: {\n view: GrSelectView\n size: GrSelectSize\n disabled: boolean\n variant: GrSelectVariant\n underline: GrSelectUnderline\n}): string {\n if (options.view === 'link') {\n return [\n selectLinkSizeClassBySize[options.size],\n selectLinkUnderlineClass({ underline: options.underline, disabled: options.disabled }),\n selectLinkVariantClassByVariant[options.variant],\n 'disabled:opacity-60 disabled:cursor-not-allowed disabled:text-[var(--muted-fg)] disabled:no-underline',\n ].join(' ')\n }\n\n return [\n selectSizeClassBySize[options.size],\n 'disabled:opacity-50 disabled:cursor-not-allowed',\n ].join(' ')\n}\n\nexport function grSelectNativeClass(options: {\n view: GrSelectView\n size: GrSelectSize\n disabled: boolean\n variant: GrSelectVariant\n underline: GrSelectUnderline\n showNativeChevron: boolean\n}): string {\n return [\n grSelectClass(options),\n options.showNativeChevron ? 'appearance-none pr-9' : '',\n ]\n .filter(Boolean)\n .join(' ')\n}\n\nexport function grSelectTriggerClass(options: {\n view: GrSelectView\n optionsView: GrSelectOptionsView\n size: GrSelectSize\n disabled: boolean\n variant: GrSelectVariant\n underline: GrSelectUnderline\n}): string {\n if (options.optionsView !== 'panel') {\n return grSelectClass(options)\n }\n\n if (options.view === 'link') {\n return [\n grSelectClass(options),\n 'inline-flex items-center gap-1 text-left',\n ].join(' ')\n }\n\n return [\n grSelectClass(options),\n 'flex items-center justify-between text-left',\n ].join(' ')\n}\n\nexport const grSelectPanelClasses = 'rounded-[var(--ds-radius-xl)] border border-[var(--brd)] bg-[var(--card)] text-[var(--card-fg)] shadow-[var(--ds-shadow-2)] overflow-hidden'\n"],"mappings":";AAYA,IAAa,mBAAmB;AAChC,IAAa,gBAAgB;AAG7B,IAAa,wBAAsD;CACjE,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACL;AAED,IAAa,4BAA0D;CACrE,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACL;AAED,IAAa,kCAAmE;CAC9E,SAAS;CACT,SAAS;CACT,OAAO;CACP,QAAQ;CACT;;;;;;AAOD,IAAa,6CAA8E;CACzF,SAAS;CACT,SAAS;CACT,OAAO;CACP,QAAQ;CACT;AAED,SAAS,yBAAyB,SAAsE;AACtG,KAAI,QAAQ,SAAU,QAAO;AAC7B,KAAI,QAAQ,cAAc,SAAU,QAAO;AAC3C,KAAI,QAAQ,cAAc,OAAQ,QAAO;AACzC,QAAO;;;;;;;;AAST,SAAS,oCAAoC,SAAsE;AACjH,KAAI,QAAQ,SAAU,QAAO;AAC7B,KAAI,QAAQ,cAAc,SAAU,QAAO;AAC3C,KAAI,QAAQ,cAAc,OAAQ,QAAO;AACzC,QAAO;;;;;;;;AAST,IAAa,iCAAiC;;;;;AAM9C,SAAgB,6BAA6B,SAKlC;AACT,QAAO;EACL;EACA,0BAA0B,QAAQ;EAClC,oCAAoC;GAAE,WAAW,QAAQ;GAAW,UAAU,QAAQ;GAAU,CAAC;EACjG,2CAA2C,QAAQ;EACnD,QAAQ,WAAW,mDAAmD;EACtE;EACD,CACE,OAAO,QAAQ,CACf,KAAK,IAAI;;AAGd,SAAgB,cAAc,SAMnB;AACT,KAAI,QAAQ,SAAS,OACnB,QAAO;EACL,0BAA0B,QAAQ;EAClC,yBAAyB;GAAE,WAAW,QAAQ;GAAW,UAAU,QAAQ;GAAU,CAAC;EACtF,gCAAgC,QAAQ;EACxC;EACD,CAAC,KAAK,IAAI;AAGb,QAAO,CACL,sBAAsB,QAAQ,OAC9B,kDACD,CAAC,KAAK,IAAI;;AAGb,SAAgB,oBAAoB,SAOzB;AACT,QAAO,CACL,cAAc,QAAQ,EACtB,QAAQ,oBAAoB,yBAAyB,GACtD,CACE,OAAO,QAAQ,CACf,KAAK,IAAI;;AAGd,SAAgB,qBAAqB,SAO1B;AACT,KAAI,QAAQ,gBAAgB,QAC1B,QAAO,cAAc,QAAQ;AAG/B,KAAI,QAAQ,SAAS,OACnB,QAAO,CACL,cAAc,QAAQ,EACtB,2CACD,CAAC,KAAK,IAAI;AAGb,QAAO,CACL,cAAc,QAAQ,EACtB,8CACD,CAAC,KAAK,IAAI;;AAGb,IAAa,uBAAuB"}
1
+ {"version":3,"file":"grSelectStyles-AjWWl007.js","names":[],"sources":["../../src/components/GrSelect/grSelectStyles.ts"],"sourcesContent":["export type GrSelectView = 'default' | 'link'\nexport type GrSelectSize = 'xs' | 'sm' | 'md' | 'lg'\nexport type GrSelectVariant = 'primary' | 'default' | 'muted' | 'danger'\nexport type GrSelectUnderline = 'auto' | 'always' | 'none'\nexport type GrSelectOptionsView = 'native' | 'panel'\nexport type GrSelectOption = { value: string, label: string }\n/** Группа опций: заголовок `label` + вложенные опции `options`. */\nexport type GrSelectOptionGroup = { label: string, options: GrSelectOption[] }\n/** Элемент списка опций: либо одиночная опция, либо группа опций. */\nexport type GrSelectOptionOrGroup = GrSelectOption | GrSelectOptionGroup\nexport type GrSelectModelValue = string | string[]\n\nexport const defaultBaseClass = 'w-full rounded-md border border-[var(--brd)] bg-[var(--bg)] text-[var(--fg)] transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]'\nexport const linkBaseClass = 'cursor-pointer inline-block w-auto align-baseline appearance-none bg-transparent border border-transparent px-0 py-0 rounded-[6px] transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]'\n\n\nexport const selectSizeClassBySize: Record<GrSelectSize, string> = {\n xs: 'h-7 px-2.5 text-[12px]',\n sm: 'h-8 px-3 text-[13px]',\n md: 'h-10 px-3 text-[14px]',\n lg: 'h-11 px-4 text-[16px]',\n}\n\nexport const selectLinkSizeClassBySize: Record<GrSelectSize, string> = {\n xs: 'text-[12px]',\n sm: 'text-[13px]',\n md: 'text-[14px]',\n lg: 'text-[16px]',\n}\n\nexport const selectLinkVariantClassByVariant: Record<GrSelectVariant, string> = {\n primary: 'text-[var(--primary)] hover:text-[var(--primary-hover)] active:text-[var(--primary-active)]',\n default: 'text-[var(--fg)] hover:text-[var(--primary)] active:text-[var(--primary-active)]',\n muted: 'text-[var(--muted-fg)] hover:text-[var(--fg)] active:text-[var(--fg)]',\n danger: 'text-[var(--ds-danger)] hover:text-[var(--ds-danger-hover)] active:text-[var(--ds-danger-active)]',\n}\n\n/**\n * Variant-классы для видимой метки в `view=\"link\"` + `optionsView=\"native\"`.\n * Hover-цвет приходит через `peer-hover:` от прозрачного `<select>`-overlay,\n * т.к. видимая метка имеет `pointer-events-none` и не получает hover напрямую.\n */\nexport const selectLinkNativeLabelVariantClassByVariant: Record<GrSelectVariant, string> = {\n primary: 'text-[var(--primary)] peer-hover:text-[var(--primary-hover)] peer-active:text-[var(--primary-active)]',\n default: 'text-[var(--fg)] peer-hover:text-[var(--primary)] peer-active:text-[var(--primary-active)]',\n muted: 'text-[var(--muted-fg)] peer-hover:text-[var(--fg)] peer-active:text-[var(--fg)]',\n danger: 'text-[var(--ds-danger)] peer-hover:text-[var(--ds-danger-hover)] peer-active:text-[var(--ds-danger-active)]',\n}\n\nfunction selectLinkUnderlineClass(options: { underline: GrSelectUnderline, disabled: boolean }): string {\n if (options.disabled) return 'no-underline'\n if (options.underline === 'always') return 'underline underline-offset-4'\n if (options.underline === 'none') return 'no-underline'\n return 'no-underline hover:underline hover:underline-offset-4'\n}\n\n/**\n * Underline-классы для видимой метки в `view=\"link\"` + `optionsView=\"native\"`.\n * Видимая метка имеет `pointer-events-none`, а hover получает прозрачный\n * `<select>`-overlay (peer), поэтому для `underline=\"auto\"` используем\n * `peer-hover:underline` вместо `hover:underline`.\n */\nfunction selectLinkNativeLabelUnderlineClass(options: { underline: GrSelectUnderline, disabled: boolean }): string {\n if (options.disabled) return 'no-underline'\n if (options.underline === 'always') return 'underline underline-offset-4'\n if (options.underline === 'none') return 'no-underline'\n return 'no-underline peer-hover:underline peer-hover:underline-offset-4'\n}\n\n/**\n * Классы прозрачного `<select>`-overlay для `view=\"link\"` + `optionsView=\"native\"`.\n * Нативный селект растягивается на всю обёртку, но визуально невидим — ширину обёртки\n * задаёт видимый `<span>` с выбранной меткой, благодаря чему компонент в закрытом\n * состоянии занимает столько места, сколько нужно текущей опции (а не самой длинной).\n */\nexport const grSelectLinkNativeOverlayClass = 'peer absolute inset-0 w-full h-full m-0 p-0 border-0 bg-transparent text-transparent appearance-none opacity-0 cursor-pointer disabled:cursor-not-allowed focus:outline-none'\n\n/**\n * Классы видимой метки для `view=\"link\"` + `optionsView=\"native\"` (поверх прозрачного `<select>`).\n * Получает все link-стили (size/variant/underline), а также focus-ring через `peer-focus-visible`.\n */\nexport function grSelectLinkNativeLabelClass(options: {\n size: GrSelectSize\n variant: GrSelectVariant\n underline: GrSelectUnderline\n disabled: boolean\n}): string {\n return [\n 'pointer-events-none inline-block whitespace-nowrap align-baseline rounded-[6px] transition-colors duration-150',\n selectLinkSizeClassBySize[options.size],\n selectLinkNativeLabelUnderlineClass({ underline: options.underline, disabled: options.disabled }),\n selectLinkNativeLabelVariantClassByVariant[options.variant],\n options.disabled ? 'opacity-60 text-[var(--muted-fg)] no-underline' : '',\n 'peer-focus-visible:outline-none peer-focus-visible:ring-2 peer-focus-visible:ring-[var(--ring)]',\n ]\n .filter(Boolean)\n .join(' ')\n}\n\nexport function grSelectClass(options: {\n view: GrSelectView\n size: GrSelectSize\n disabled: boolean\n variant: GrSelectVariant\n underline: GrSelectUnderline\n}): string {\n if (options.view === 'link') {\n return [\n selectLinkSizeClassBySize[options.size],\n selectLinkUnderlineClass({ underline: options.underline, disabled: options.disabled }),\n selectLinkVariantClassByVariant[options.variant],\n 'disabled:opacity-60 disabled:cursor-not-allowed disabled:text-[var(--muted-fg)] disabled:no-underline',\n ].join(' ')\n }\n\n return [\n selectSizeClassBySize[options.size],\n 'disabled:opacity-50 disabled:cursor-not-allowed',\n ].join(' ')\n}\n\nexport function grSelectNativeClass(options: {\n view: GrSelectView\n size: GrSelectSize\n disabled: boolean\n variant: GrSelectVariant\n underline: GrSelectUnderline\n showNativeChevron: boolean\n}): string {\n return [\n grSelectClass(options),\n options.showNativeChevron ? 'appearance-none pr-9' : '',\n ]\n .filter(Boolean)\n .join(' ')\n}\n\nexport function grSelectTriggerClass(options: {\n view: GrSelectView\n optionsView: GrSelectOptionsView\n size: GrSelectSize\n disabled: boolean\n variant: GrSelectVariant\n underline: GrSelectUnderline\n}): string {\n if (options.optionsView !== 'panel') {\n return grSelectClass(options)\n }\n\n if (options.view === 'link') {\n return [\n grSelectClass(options),\n 'inline-flex items-center gap-1 text-left',\n ].join(' ')\n }\n\n return [\n grSelectClass(options),\n 'flex items-center justify-between text-left',\n ].join(' ')\n}\n\nexport const grSelectPanelClasses = 'rounded-[var(--ds-radius-xl)] border border-[var(--brd)] bg-[var(--card)] text-[var(--card-fg)] shadow-[var(--ds-shadow-2)] overflow-hidden'\n"],"mappings":";AAYA,IAAa,mBAAmB;AAChC,IAAa,gBAAgB;AAG7B,IAAa,wBAAsD;CACjE,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACL;AAED,IAAa,4BAA0D;CACrE,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACL;AAED,IAAa,kCAAmE;CAC9E,SAAS;CACT,SAAS;CACT,OAAO;CACP,QAAQ;CACT;;;;;;AAOD,IAAa,6CAA8E;CACzF,SAAS;CACT,SAAS;CACT,OAAO;CACP,QAAQ;CACT;AAED,SAAS,yBAAyB,SAAsE;AACtG,KAAI,QAAQ,SAAU,QAAO;AAC7B,KAAI,QAAQ,cAAc,SAAU,QAAO;AAC3C,KAAI,QAAQ,cAAc,OAAQ,QAAO;AACzC,QAAO;;;;;;;;AAST,SAAS,oCAAoC,SAAsE;AACjH,KAAI,QAAQ,SAAU,QAAO;AAC7B,KAAI,QAAQ,cAAc,SAAU,QAAO;AAC3C,KAAI,QAAQ,cAAc,OAAQ,QAAO;AACzC,QAAO;;;;;;;;AAST,IAAa,iCAAiC;;;;;AAM9C,SAAgB,6BAA6B,SAKlC;AACT,QAAO;EACL;EACA,0BAA0B,QAAQ;EAClC,oCAAoC;GAAE,WAAW,QAAQ;GAAW,UAAU,QAAQ;GAAU,CAAC;EACjG,2CAA2C,QAAQ;EACnD,QAAQ,WAAW,mDAAmD;EACtE;EACD,CACE,OAAO,QAAQ,CACf,KAAK,IAAI;;AAGd,SAAgB,cAAc,SAMnB;AACT,KAAI,QAAQ,SAAS,OACnB,QAAO;EACL,0BAA0B,QAAQ;EAClC,yBAAyB;GAAE,WAAW,QAAQ;GAAW,UAAU,QAAQ;GAAU,CAAC;EACtF,gCAAgC,QAAQ;EACxC;EACD,CAAC,KAAK,IAAI;AAGb,QAAO,CACL,sBAAsB,QAAQ,OAC9B,kDACD,CAAC,KAAK,IAAI;;AAGb,SAAgB,oBAAoB,SAOzB;AACT,QAAO,CACL,cAAc,QAAQ,EACtB,QAAQ,oBAAoB,yBAAyB,GACtD,CACE,OAAO,QAAQ,CACf,KAAK,IAAI;;AAGd,SAAgB,qBAAqB,SAO1B;AACT,KAAI,QAAQ,gBAAgB,QAC1B,QAAO,cAAc,QAAQ;AAG/B,KAAI,QAAQ,SAAS,OACnB,QAAO,CACL,cAAc,QAAQ,EACtB,2CACD,CAAC,KAAK,IAAI;AAGb,QAAO,CACL,cAAc,QAAQ,EACtB,8CACD,CAAC,KAAK,IAAI;;AAGb,IAAa,uBAAuB"}
@@ -1 +1 @@
1
- {"version":3,"file":"grStyle-CUaTmpyW.js","names":[],"sources":["../../src/components/GrProgressBar/grStyle.ts"],"sourcesContent":["import type { GrTone } from '../shared/tones'\n\nexport type GrProgressBarTone = GrTone\n\nfunction withVar(token: string): string {\n return `[${token}]`\n}\n\nconst toneVars: Record<GrProgressBarTone, string> = {\n primary: 'var(--pb-bg,var(--primary))',\n neutral: 'var(--pb-neutral-bg,var(--secondary))',\n success: 'var(--pb-success-bg,var(--ds-success))',\n warning: 'var(--pb-warning-bg,var(--ds-warning))',\n danger: 'var(--pb-danger-bg,var(--ds-danger))',\n info: 'var(--pb-info-bg,var(--ds-info))',\n slate: 'var(--pb-slate-bg,var(--ds-slate))',\n azure: 'var(--pb-azure-bg,var(--ds-azure))',\n}\n\nexport function grProgressBarFillClass(tone: GrProgressBarTone): string {\n return `bg-${withVar(toneVars[tone])}`\n}\n"],"mappings":";AAIA,SAAS,QAAQ,OAAuB;AACtC,QAAO,IAAI,MAAM;;AAGnB,IAAM,WAA8C;CAClD,SAAS;CACT,SAAS;CACT,SAAS;CACT,SAAS;CACT,QAAQ;CACR,MAAM;CACN,OAAO;CACP,OAAO;CACR;AAED,SAAgB,uBAAuB,MAAiC;AACtE,QAAO,MAAM,QAAQ,SAAS,MAAM"}
1
+ {"version":3,"file":"grStyle-D-gPHdyW.js","names":[],"sources":["../../src/components/GrProgressBar/grStyle.ts"],"sourcesContent":["import type { GrTone } from '../shared/tones'\n\nexport type GrProgressBarTone = GrTone\n\nfunction withVar(token: string): string {\n return `[${token}]`\n}\n\nconst toneVars: Record<GrProgressBarTone, string> = {\n primary: 'var(--pb-bg,var(--primary))',\n neutral: 'var(--pb-neutral-bg,var(--secondary))',\n success: 'var(--pb-success-bg,var(--ds-success))',\n warning: 'var(--pb-warning-bg,var(--ds-warning))',\n danger: 'var(--pb-danger-bg,var(--ds-danger))',\n info: 'var(--pb-info-bg,var(--ds-info))',\n slate: 'var(--pb-slate-bg,var(--ds-slate))',\n azure: 'var(--pb-azure-bg,var(--ds-azure))',\n}\n\nexport function grProgressBarFillClass(tone: GrProgressBarTone): string {\n return `bg-${withVar(toneVars[tone])}`\n}\n"],"mappings":";AAIA,SAAS,QAAQ,OAAuB;AACtC,QAAO,IAAI,MAAM;;AAGnB,IAAM,WAA8C;CAClD,SAAS;CACT,SAAS;CACT,SAAS;CACT,SAAS;CACT,QAAQ;CACR,MAAM;CACN,OAAO;CACP,OAAO;CACR;AAED,SAAgB,uBAAuB,MAAiC;AACtE,QAAO,MAAM,QAAQ,SAAS,MAAM"}
@@ -30,12 +30,27 @@ function resolveGranularityI18n(context) {
30
30
  if (isGranularityI18nLike(fromFint)) return fromFint;
31
31
  return null;
32
32
  }
33
+ var FALLBACK_PLACEHOLDER_RE = /\{\{|\}\}|\{([a-zA-Z0-9_.-]+)\}/g;
34
+ /**
35
+ * Интерполирует `{name}`-плейсхолдеры во fallback-строке. Нужен, чтобы `t(key, fallback,
36
+ * params)` корректно подставлял параметры и тогда, когда i18n не подключён (или ключ не
37
+ * найден) — иначе вызывающий код получил бы сырой `'Add "{value}"'` вместо `'Add "foo"'`.
38
+ */
39
+ function interpolateFallback(template, params) {
40
+ return template.replace(FALLBACK_PLACEHOLDER_RE, (match, name) => {
41
+ if (match === "{{") return "{";
42
+ if (match === "}}") return "}";
43
+ if (name === void 0) return match;
44
+ const value = params?.[name];
45
+ return value == null ? match : String(value);
46
+ });
47
+ }
33
48
  function useGranularityTranslations(context) {
34
49
  const i18n = resolveGranularityI18n(context);
35
50
  const t = (key, fallback, params) => {
36
- if (!i18n) return fallback;
51
+ if (!i18n) return interpolateFallback(fallback, params);
37
52
  const result = i18n.t(key, params);
38
- return result === key ? fallback : result;
53
+ return result === key ? interpolateFallback(fallback, params) : result;
39
54
  };
40
55
  return {
41
56
  i18n,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"granularityI18n-D_7jowK2.js","names":[],"sources":["../../src/internal/granularityI18n.ts"],"sourcesContent":["import { getCurrentInstance, inject, type AppContext } from 'vue'\n\nimport { GRANULARITY_I18N_KEY, type GranularityI18nAdapter } from '../i18n/adapter'\n\nexport type GranularityI18nLike = GranularityI18nAdapter\n\n/**\n * Ключ provide/inject из `@feugene/fint-i18n` (`Symbol.for(\"FintI18n\")`).\n *\n * Дублируем константу здесь, чтобы не делать `@feugene/fint-i18n` обязательной\n * runtime-зависимостью пакета: достаточно, чтобы приложение само установило\n * fint-i18n через `installI18n(app, i18n)` — символ глобальный (Symbol.for),\n * поэтому ключи будут совпадать без прямого импорта.\n */\nconst FINT_I18N_KEY: symbol = Symbol.for('FintI18n')\n\nfunction isGranularityI18nLike(value: unknown): value is GranularityI18nLike {\n return typeof (value as GranularityI18nLike | null)?.t === 'function'\n}\n\nexport function resolveGranularityI18n(context?: AppContext | GranularityI18nLike | null): GranularityI18nLike | null {\n if (isGranularityI18nLike(context)) {\n return context\n }\n\n const provides = context?.provides\n\n if (provides) {\n const fromGranularity = provides[GRANULARITY_I18N_KEY as symbol] as GranularityI18nLike | null | undefined\n if (isGranularityI18nLike(fromGranularity)) {\n return fromGranularity\n }\n\n const fromFint = provides[FINT_I18N_KEY] as GranularityI18nLike | null | undefined\n if (isGranularityI18nLike(fromFint)) {\n return fromFint\n }\n\n return null\n }\n\n if (!getCurrentInstance()) {\n return null\n }\n\n const fromGranularity = inject<GranularityI18nLike | null>(GRANULARITY_I18N_KEY, null)\n if (isGranularityI18nLike(fromGranularity)) {\n return fromGranularity\n }\n\n const fromFint = inject<GranularityI18nLike | null>(FINT_I18N_KEY, null)\n if (isGranularityI18nLike(fromFint)) {\n return fromFint\n }\n\n return null\n}\n\n// Совпадает с синтаксисом плейсхолдеров `@feugene/fint-i18n` (`{name}`, экранирование\n// `{{`/`}}` — см. docs/en/api.md → \"Template Interpolation\"), чтобы fallback-текст вёл\n// себя идентично реальному переводу, когда параметры переданы.\nconst FALLBACK_PLACEHOLDER_RE = /\\{\\{|\\}\\}|\\{([a-zA-Z0-9_.-]+)\\}/g\n\n/**\n * Интерполирует `{name}`-плейсхолдеры во fallback-строке. Нужен, чтобы `t(key, fallback,\n * params)` корректно подставлял параметры и тогда, когда i18n не подключён (или ключ не\n * найден) — иначе вызывающий код получил бы сырой `'Add \"{value}\"'` вместо `'Add \"foo\"'`.\n */\nfunction interpolateFallback(template: string, params?: Record<string, any>): string {\n // `{{`/`}}`-экранирование обязано работать независимо от того, переданы ли `params`\n // (совпадает с fint-i18n: `t('literal')` без параметров тоже разэкранирует `{{name}}`).\n // Ранний выход по `!params` здесь недопустим.\n return template.replace(FALLBACK_PLACEHOLDER_RE, (match, name: string | undefined) => {\n if (match === '{{') return '{'\n if (match === '}}') return '}'\n if (name === undefined) return match\n\n const value = params?.[name]\n return value == null ? match : String(value)\n })\n}\n\nexport function useGranularityTranslations(context?: AppContext | GranularityI18nLike | null) {\n const i18n = resolveGranularityI18n(context)\n\n const t = (key: string, fallback: string, params?: Record<string, any>): string => {\n if (!i18n) {\n return interpolateFallback(fallback, params)\n }\n\n const result = i18n.t(key, params)\n return result === key ? interpolateFallback(fallback, params) : result\n }\n\n return {\n i18n,\n t,\n }\n}"],"mappings":";;;;;;;;;;;AAcA,IAAM,gBAAwB,OAAO,IAAI,WAAW;AAEpD,SAAS,sBAAsB,OAA8C;AAC3E,QAAO,OAAQ,OAAsC,MAAM;;AAG7D,SAAgB,uBAAuB,SAA+E;AACpH,KAAI,sBAAsB,QAAQ,CAChC,QAAO;CAGT,MAAM,WAAW,SAAS;AAE1B,KAAI,UAAU;EACZ,MAAM,kBAAkB,SAAS;AACjC,MAAI,sBAAsB,gBAAgB,CACxC,QAAO;EAGT,MAAM,WAAW,SAAS;AAC1B,MAAI,sBAAsB,SAAS,CACjC,QAAO;AAGT,SAAO;;AAGT,KAAI,CAAC,oBAAoB,CACvB,QAAO;CAGT,MAAM,kBAAkB,OAAmC,sBAAsB,KAAK;AACtF,KAAI,sBAAsB,gBAAgB,CACxC,QAAO;CAGT,MAAM,WAAW,OAAmC,eAAe,KAAK;AACxE,KAAI,sBAAsB,SAAS,CACjC,QAAO;AAGT,QAAO;;AAMT,IAAM,0BAA0B;;;;;;AAOhC,SAAS,oBAAoB,UAAkB,QAAsC;AAInF,QAAO,SAAS,QAAQ,0BAA0B,OAAO,SAA6B;AACpF,MAAI,UAAU,KAAM,QAAO;AAC3B,MAAI,UAAU,KAAM,QAAO;AAC3B,MAAI,SAAS,KAAA,EAAW,QAAO;EAE/B,MAAM,QAAQ,SAAS;AACvB,SAAO,SAAS,OAAO,QAAQ,OAAO,MAAM;GAC5C;;AAGJ,SAAgB,2BAA2B,SAAmD;CAC5F,MAAM,OAAO,uBAAuB,QAAQ;CAE5C,MAAM,KAAK,KAAa,UAAkB,WAAyC;AACjF,MAAI,CAAC,KACH,QAAO,oBAAoB,UAAU,OAAO;EAG9C,MAAM,SAAS,KAAK,EAAE,KAAK,OAAO;AAClC,SAAO,WAAW,MAAM,oBAAoB,UAAU,OAAO,GAAG;;AAGlE,QAAO;EACL;EACA;EACD"}
@@ -11,6 +11,10 @@ var treeSelect = {
11
11
  "filterPlaceholder": "Поиск…",
12
12
  "empty": "Нет данных"
13
13
  };
14
+ var select = {
15
+ "customValuePlaceholder": "Добавить значение…",
16
+ "addOption": "Добавить «{value}»"
17
+ };
14
18
  var dialog = {
15
19
  "confirm": { "title": "Подтверждение" },
16
20
  "prompt": {
@@ -20,9 +24,11 @@ var dialog = {
20
24
  }
21
25
  };
22
26
  var pagination = {
27
+ "label": "Пагинация",
23
28
  "pageSize": "Размер страницы",
24
29
  "prev": "Назад",
25
- "next": "Вперёд"
30
+ "next": "Вперёд",
31
+ "page": "Страница {n}"
26
32
  };
27
33
  var navbar = { "openMenu": "Открыть меню" };
28
34
  var responseError = {
@@ -55,6 +61,7 @@ var ru_default = {
55
61
  common,
56
62
  loading,
57
63
  treeSelect,
64
+ select,
58
65
  dialog,
59
66
  pagination,
60
67
  navbar,
@@ -62,4 +69,4 @@ var ru_default = {
62
69
  colors
63
70
  };
64
71
  //#endregion
65
- export { colors, common, ru_default as default, dialog, loading, navbar, pagination, responseError, treeSelect };
72
+ export { colors, common, ru_default as default, dialog, loading, navbar, pagination, responseError, select, treeSelect };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ru-S6VlnurJ.js","names":[],"sources":["../../src/i18n/locales/ru.json"],"sourcesContent":["{\n \"common\": {\n \"confirm\": \"Подтвердить\",\n \"cancel\": \"Отмена\",\n \"add\": \"Добавить\",\n \"clear\": \"Очистить\",\n \"close\": \"Закрыть\"\n },\n \"loading\": {\n \"defaultText\": \"Загрузка...\"\n },\n \"treeSelect\": {\n \"filterPlaceholder\": \"Поиск…\",\n \"empty\": \"Нет данных\"\n },\n \"select\": {\n \"customValuePlaceholder\": \"Добавить значение…\",\n \"addOption\": \"Добавить «{value}»\"\n },\n \"dialog\": {\n \"confirm\": {\n \"title\": \"Подтверждение\"\n },\n \"prompt\": {\n \"title\": \"Введите значение\",\n \"label\": \"Значение\",\n \"required\": \"Введите значение.\"\n }\n },\n \"pagination\": {\n \"label\": \"Пагинация\",\n \"pageSize\": \"Размер страницы\",\n \"prev\": \"Назад\",\n \"next\": \"Вперёд\",\n \"page\": \"Страница {n}\"\n },\n \"navbar\": {\n \"openMenu\": \"Открыть меню\"\n },\n \"responseError\": {\n \"networkTitle\": \"Нет связи с сервером\",\n \"networkMessage\": \"Проверьте подключение к интернету и попробуйте ещё раз.\",\n \"abortedTitle\": \"Запрос отменён\",\n \"abortedMessage\": \"Запрос был отменён.\",\n \"validationTitle\": \"Проверьте данные\",\n \"validationMessage\": \"Сервер вернул ошибку валидации. Исправьте поля и попробуйте снова.\",\n \"clientTitle\": \"Ошибка запроса\",\n \"clientMessage\": \"Сервер отклонил запрос.\",\n \"serverTitle\": \"Ошибка сервера\",\n \"serverMessage\": \"Произошла ошибка на сервере. Попробуйте ещё раз.\",\n \"unknownTitle\": \"Что-то пошло не так\",\n \"unknownMessage\": \"Не удалось выполнить операцию. Попробуйте ещё раз.\",\n \"retryLabel\": \"Повторить\",\n \"dismissLabel\": \"Скрыть\"\n },\n \"colors\": {\n \"neutral\": \"Нейтральный\",\n \"success\": \"Успех\",\n \"warning\": \"Предупреждение\",\n \"danger\": \"Опасность\",\n \"info\": \"Инфо\",\n \"primary\": \"Primary\",\n \"slate\": \"Сланцевый\",\n \"azure\": \"Лазурный\"\n }\n}\n"],"mappings":""}
@@ -13,39 +13,39 @@ import { t as grConfirmDialogConfig } from "./config-BduXEXjt.js";
13
13
  import { t as grDataTableConfig } from "./config-vcDVCYXo.js";
14
14
  import { t as grDialogSafelist } from "./safelist-_UVzJrgE2.js";
15
15
  import { t as grDrawerConfig } from "./config-C6zT56Jc2.js";
16
- import { t as grDropdownConfig } from "./config-Br_qI3Za.js";
17
- import { t as grDropdownMenuConfig } from "./config-DmjwIqx1.js";
18
- import { t as grEmptyStateConfig } from "./config-O1_FTqD3.js";
19
- import { t as grFileUploadConfig } from "./config-DF_RlCIO.js";
20
- import { t as grFormFieldConfig } from "./config-Dcb7xK-C.js";
21
- import { t as grFormFileConfig } from "./config-BbKroFtR.js";
22
- import { t as grFormSectionConfig } from "./config-DoBk_CzG.js";
23
- import { t as grImageViewerConfig } from "./config-CvGdaXvH.js";
24
- import { t as grInputConfig } from "./config-D4s_QWVP.js";
25
- import { t as grInputTagConfig } from "./config-BnWSHTEU.js";
26
- import { t as grLinkConfig } from "./config-CpMYmvVT.js";
27
- import { t as grListConfig } from "./config-DSBlHQVa.js";
28
- import { t as grLoadingConfig } from "./config-d386uO3O.js";
29
- import { t as grModalConfig } from "./config-C5OwJM3-.js";
30
- import { t as grNavbarConfig } from "./config-Ci9nXGUV.js";
31
- import { t as grNumberInputConfig } from "./config-CdJpnjDj.js";
32
- import { t as grPaginationConfig } from "./config-iuMz79Mg.js";
33
- import { t as grProgressBarConfig } from "./config-CFf7xaG1.js";
34
- import { t as grPromptDialogConfig } from "./config-B1kFmhpM.js";
35
- import { t as grRadioConfig } from "./config-Cp_XHsze.js";
36
- import { t as grRadioGroupConfig } from "./config-BU0olrvr.js";
37
- import { t as grSegmentedConfig } from "./config-B2YTEe_h.js";
38
- import { t as grSelectConfig } from "./config-BY81UKv0.js";
39
- import { t as grSidebarConfig } from "./config-BeQuykDk2.js";
40
- import { t as grSkeletonConfig } from "./config-DaHI5bD_2.js";
41
- import { t as grSwitchConfig } from "./config-_3De4HFf.js";
42
- import { t as grTableConfig } from "./config-Bcf-8XlK2.js";
43
- import { t as grTabsConfig } from "./config-Dzd6BzIN2.js";
44
- import { t as grTextareaConfig } from "./config-B_nSBc7W.js";
45
- import { t as grToasterConfig } from "./config-CetsgpaZ2.js";
46
- import { t as grTooltipConfig } from "./config-BOdu-O_B.js";
47
- import { t as grTreeConfig } from "./config-D6Oe3blW2.js";
48
- import { t as grTreeSelectConfig } from "./config-72sW9Bag2.js";
16
+ import { t as grDropdownConfig } from "./config-C_egzT_K.js";
17
+ import { t as grDropdownMenuConfig } from "./config-DDwBSoc_.js";
18
+ import { t as grEmptyStateConfig } from "./config-CzgNEHKi.js";
19
+ import { t as grFileUploadConfig } from "./config-CPSdAjUi.js";
20
+ import { t as grFormFieldConfig } from "./config-B3dn-gdC.js";
21
+ import { t as grFormFileConfig } from "./config-C5-ujXCI.js";
22
+ import { t as grFormSectionConfig } from "./config-VJuoznpH.js";
23
+ import { t as grImageViewerConfig } from "./config-Doa_gU40.js";
24
+ import { t as grInputConfig } from "./config-8f8624RN.js";
25
+ import { t as grInputTagConfig } from "./config-XspHtPsU.js";
26
+ import { t as grLinkConfig } from "./config-NkbzVFZo.js";
27
+ import { t as grListConfig } from "./config-lMDE_8A5.js";
28
+ import { t as grLoadingConfig } from "./config-58Mj2rGH.js";
29
+ import { t as grModalConfig } from "./config-DRpkoSvq.js";
30
+ import { t as grNavbarConfig } from "./config-C_q_4FrU.js";
31
+ import { t as grNumberInputConfig } from "./config-DvDNney3.js";
32
+ import { t as grPaginationConfig } from "./config-CWTfyPNI.js";
33
+ import { t as grProgressBarConfig } from "./config-B0uUCaJW.js";
34
+ import { t as grPromptDialogConfig } from "./config-DhQc1TRY.js";
35
+ import { t as grRadioConfig } from "./config-nrOj9p6I.js";
36
+ import { t as grRadioGroupConfig } from "./config-Bh4NWWsQ.js";
37
+ import { t as grSegmentedConfig } from "./config-hSlCXHoG.js";
38
+ import { t as grSelectConfig } from "./config-C8MM2Dg0.js";
39
+ import { t as grSidebarConfig } from "./config-BuoIngj32.js";
40
+ import { t as grSkeletonConfig } from "./config-DZrlovR42.js";
41
+ import { t as grSwitchConfig } from "./config-RjfJFv1Y.js";
42
+ import { t as grTableConfig } from "./config-DDUPnue12.js";
43
+ import { t as grTabsConfig } from "./config-BeBsN0c12.js";
44
+ import { t as grTextareaConfig } from "./config-A-iei0Ux.js";
45
+ import { t as grToasterConfig } from "./config-DkeLkzxj2.js";
46
+ import { t as grTooltipConfig } from "./config-Dl5aZ5VR.js";
47
+ import { t as grTreeConfig } from "./config-BLa1TEGm2.js";
48
+ import { t as grTreeSelectConfig } from "./config-D_Pafsjq2.js";
49
49
  import { defineGranularComponent, defineGranularProvider } from "@feugene/unocss-preset-granular/contract";
50
50
  //#region src/components/GrDialog/config.ts
51
51
  var grDialogConfig = defineGranularComponent(import.meta.url, {
@@ -70,7 +70,7 @@ var granularityThemeNames = ["light", "dark"];
70
70
  var granularityDefaultThemes = ["light"];
71
71
  var theme = {
72
72
  baseCssUrl: new URL("data:text/css;base64,aHRtbCwKYm9keSB7CiAgICBoZWlnaHQ6IDEwMCU7Cn0KCmJvZHkgewogICAgbWFyZ2luOiAwOwogICAgZm9udC1mYW1pbHk6IHZhcigtLWRzLWZvbnQtdWkpOwogICAgYmFja2dyb3VuZDogdmFyKC0tYmcpOwogICAgY29sb3I6IHZhcigtLWZnKTsKfQoKLyoKICogVW5vQ1NTIHRhaWx3aW5kLWNvbXBhdCByZXNldCBpbnRlbnRpb25hbGx5IGRvZXMgbm90IGZvcmNlIGBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGAgZm9yIGJ1dHRvbnMKICogKHRvIGF2b2lkIGJyZWFraW5nIGNvbXBvbmVudCBsaWJyYXJpZXMpLiBJbiBvdXIgRFMgd2Ugd2FudCBwbGFpbiBidXR0b25zL2xpbmtzIHRvIGJlIHRyYW5zcGFyZW50IGJ5IGRlZmF1bHQuCiAqLwo6d2hlcmUoYSwgYnV0dG9uKSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKfQoKOndoZXJlKGlucHV0W3R5cGU9J2J1dHRvbiddLCBpbnB1dFt0eXBlPSdzdWJtaXQnXSwgaW5wdXRbdHlwZT0ncmVzZXQnXSkgewogICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KCmNvZGUsCnByZSwKa2JkIHsKICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1kcy1mb250LW1vbm8pOwp9CgoqIHsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0K", "" + import.meta.url).href,
73
- tokensCssUrl: new URL("data:text/css;base64,OnJvb3QgewogIC8qIEZvdW5kYXRpb25zOiBuZXV0cmFsIHBhbGV0dGUgKi8KICAtLWRzLXNsYXRlLTA6ICNmZmZmZmY7CiAgLS1kcy1zbGF0ZS01MDogI2Y4ZmFmYzsKICAtLWRzLXNsYXRlLTEwMDogI2YxZjVmOTsKICAtLWRzLXNsYXRlLTIwMDogI2UyZThmMDsKICAtLWRzLXNsYXRlLTMwMDogI2NiZDVlMTsKICAtLWRzLXNsYXRlLTQwMDogIzk0YTNiODsKICAtLWRzLXNsYXRlLTUwMDogIzY0NzQ4YjsKICAtLWRzLXNsYXRlLTYwMDogIzQ3NTU2OTsKICAtLWRzLXNsYXRlLTcwMDogIzMzNDE1NTsKICAtLWRzLXNsYXRlLTgwMDogIzFlMjkzYjsKICAtLWRzLXNsYXRlLTkwMDogIzBmMTcyYTsKCiAgLyogVHlwb2dyYXBoeTogZm9udCBmYW1pbGllcyAqLwogIC0tZHMtZm9udC11aTogSW50ZXIsIFJvYm90bywgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgLS1kcy1mb250LW1vbm86ICdKZXRCcmFpbnMgTW9ubycsIHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgbW9ub3NwYWNlOwoKICAvKiBUeXBvZ3JhcGh5OiBmb250IHNpemVzICovCiAgLS1kcy10ZXh0LXhzOiAxMnB4OwogIC0tZHMtdGV4dC1zbTogMTRweDsKICAtLWRzLXRleHQtYmFzZTogMTZweDsKICAtLWRzLXRleHQtbGc6IDE4cHg7CiAgLS1kcy10ZXh0LXhsOiAyMHB4OwogIC0tZHMtdGV4dC0yeGw6IDI0cHg7CiAgLS1kcy10ZXh0LTN4bDogMzBweDsKICAtLWRzLXRleHQtNHhsOiAzNnB4OwoKICAvKiBUeXBvZ3JhcGh5OiBsaW5lIGhlaWdodHMgKi8KICAtLWRzLWxlYWRpbmctdGlnaHQ6IDEuMjU7CiAgLS1kcy1sZWFkaW5nLW5vcm1hbDogMS41OwogIC0tZHMtbGVhZGluZy1yZWxheGVkOiAxLjYyNTsKCiAgLyogVHlwb2dyYXBoeTogZm9udCB3ZWlnaHRzICovCiAgLS1kcy1mb250LXJlZ3VsYXI6IDQwMDsKICAtLWRzLWZvbnQtbWVkaXVtOiA1MDA7CiAgLS1kcy1mb250LXNlbWlib2xkOiA2MDA7CiAgLS1kcy1mb250LWJvbGQ6IDcwMDsKCiAgLyogTGF5b3V0OiBzcGFjaW5nIHNjYWxlICovCiAgLS1kcy1zcGFjZS0wOiAwcHg7CiAgLS1kcy1zcGFjZS0xOiA0cHg7CiAgLS1kcy1zcGFjZS0yOiA4cHg7CiAgLS1kcy1zcGFjZS0zOiAxMnB4OwogIC0tZHMtc3BhY2UtNDogMTZweDsKICAtLWRzLXNwYWNlLTU6IDIwcHg7CiAgLS1kcy1zcGFjZS02OiAyNHB4OwogIC0tZHMtc3BhY2UtODogMzJweDsKICAtLWRzLXNwYWNlLTEwOiA0MHB4OwogIC0tZHMtc3BhY2UtMTI6IDQ4cHg7CiAgLS1kcy1zcGFjZS0xNjogNjRweDsKICAtLWRzLXNwYWNlLTIwOiA4MHB4OwogIC0tZHMtc3BhY2UtMjQ6IDk2cHg7CiAgLS1kcy1zcGFjZS0zMjogMTI4cHg7CiAgLS1kcy1zcGFjZS00MDogMTYwcHg7CiAgLS1kcy1zcGFjZS00ODogMTkycHg7CiAgLS1kcy1zcGFjZS02NDogMjU2cHg7CgogIC8qIExheW91dDogY29udGFpbmVycyAqLwogIC0tZHMtY29udGFpbmVyLW1heDogMTI4MHB4OwogIC0tZHMtY29udGFpbmVyLW1heC0yeGw6IDE0NDBweDsKICAtLWRzLWNvbnRhaW5lci1wYWRkaW5nLW1vYmlsZTogMTZweDsKICAtLWRzLWNvbnRhaW5lci1wYWRkaW5nLXRhYmxldDogMjRweDsKICAtLWRzLWNvbnRhaW5lci1wYWRkaW5nLWRlc2t0b3A6IDMycHg7CgogIC8qIExheW91dDogYnJlYWtwb2ludHMgKi8KICAtLWRzLWJwLXNtOiA2NDBweDsKICAtLWRzLWJwLW1kOiA3NjhweDsKICAtLWRzLWJwLWxnOiAxMDI0cHg7CiAgLS1kcy1icC14bDogMTI4MHB4OwogIC0tZHMtYnAtMnhsOiAxNTM2cHg7CgogIC8qIFNoYXBlczogcmFkaWkgYW5kIGNvbXBhdGliaWxpdHkgYWxpYXNlcyAqLwogIC0tcmFkaXVzOiAwLjVyZW07CiAgLS1kcy1yYWRpdXMtbm9uZTogMHB4OwogIC0tZHMtcmFkaXVzLXNtOiA0cHg7CiAgLS1kcy1yYWRpdXMtbWQ6IDhweDsKICAtLWRzLXJhZGl1cy1sZzogMTJweDsKICAtLWRzLXJhZGl1cy14bDogMTZweDsKICAtLWRzLXJhZGl1cy1mdWxsOiA5OTk5cHg7CgogIC8qIEVsZXZhdGlvbiAqLwogIC0tZHMtc2hhZG93LTA6IG5vbmU7CiAgLS1kcy1zaGFkb3ctMTogMCAxcHggMnB4IHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7CiAgLS1kcy1zaGFkb3ctMjogMCA4cHggMjRweCByZ2JhKDE1LCAyMywgNDIsIDAuMTQpOwogIC0tZHMtc2hhZG93LTM6IDAgMTZweCA0OHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4yMCk7CgogIC8qIE1vdGlvbiAqLwogIC0tZHMtZHVyYXRpb24tZmFzdDogMTUwbXM7CiAgLS1kcy1kdXJhdGlvbi1iYXNlOiAyMDBtczsKICAtLWRzLWR1cmF0aW9uLXNsb3c6IDMwMG1zOwogIC0tZHMtZWFzZS1vdXQ6IGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpOwogIC0tZHMtZWFzZS1pbjogY3ViaWMtYmV6aWVyKDAuNywgMCwgMC44NCwgMCk7CgogIC8qIERlcml2ZWQgaW50ZXJhY3Rpb24gZm9ybXVsYXM6IGFjdGlvbiByb2xlcyAqLwogIC0tcHJpbWFyeS1ob3ZlcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXByaW1hcnkpIDkyJSwgdmFyKC0tZmcpKTsKICAtLXByaW1hcnktYWN0aXZlOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tcHJpbWFyeSkgODQlLCB2YXIoLS1mZykpOwogIC0tc2Vjb25kYXJ5LWhvdmVyOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5KSA5MiUsIHZhcigtLWZnKSk7CiAgLS1zZWNvbmRhcnktYWN0aXZlOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5KSA4NCUsIHZhcigtLWZnKSk7CiAgLS1icmQtaG92ZXI6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1icmQpIDcwJSwgdmFyKC0tZmcpKTsKICAtLWJyZC1hY3RpdmU6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1icmQpIDU1JSwgdmFyKC0tZmcpKTsKICAtLWRlc3RydWN0aXZlLWhvdmVyOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZGVzdHJ1Y3RpdmUpIDkyJSwgdmFyKC0tZmcpKTsKICAtLWRlc3RydWN0aXZlLWFjdGl2ZTogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWRlc3RydWN0aXZlKSA4NCUsIHZhcigtLWZnKSk7CgogIC8qIERlcml2ZWQgaW50ZXJhY3Rpb24gZm9ybXVsYXM6IHN0YXR1cyByb2xlcyAqLwogIC0tZHMtc3VjY2Vzcy1ob3ZlcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWRzLXN1Y2Nlc3MpIDkyJSwgdmFyKC0tZmcpKTsKICAtLWRzLXN1Y2Nlc3MtYWN0aXZlOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZHMtc3VjY2VzcykgODQlLCB2YXIoLS1mZykpOwogIC0tZHMtd2FybmluZy1ob3ZlcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWRzLXdhcm5pbmcpIDkyJSwgdmFyKC0tZmcpKTsKICAtLWRzLXdhcm5pbmctYWN0aXZlOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZHMtd2FybmluZykgODQlLCB2YXIoLS1mZykpOwogIC0tZHMtZGFuZ2VyLWhvdmVyOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZHMtZGFuZ2VyKSA5MiUsIHZhcigtLWZnKSk7CiAgLS1kcy1kYW5nZXItYWN0aXZlOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZHMtZGFuZ2VyKSA4NCUsIHZhcigtLWZnKSk7CiAgLS1kcy1pbmZvLWhvdmVyOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZHMtaW5mbykgOTIlLCB2YXIoLS1mZykpOwogIC0tZHMtaW5mby1hY3RpdmU6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1kcy1pbmZvKSA4NCUsIHZhcigtLWZnKSk7CiAgLS1kcy1zbGF0ZS1ob3ZlcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWRzLXNsYXRlKSA5MiUsIHZhcigtLWZnKSk7CiAgLS1kcy1zbGF0ZS1hY3RpdmU6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1kcy1zbGF0ZSkgODQlLCB2YXIoLS1mZykpOwogIC0tZHMtYXp1cmUtaG92ZXI6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1kcy1henVyZSkgOTIlLCB2YXIoLS1mZykpOwogIC0tZHMtYXp1cmUtYWN0aXZlOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZHMtYXp1cmUpIDg0JSwgdmFyKC0tZmcpKTsKfQo=", "" + import.meta.url).href,
73
+ tokensCssUrl: new URL("data:text/css;base64,OnJvb3QgewogIC8qIEZvdW5kYXRpb25zOiBuZXV0cmFsIHBhbGV0dGUgKi8KICAtLWRzLXNsYXRlLTA6ICNmZmZmZmY7CiAgLS1kcy1zbGF0ZS01MDogI2Y4ZmFmYzsKICAtLWRzLXNsYXRlLTEwMDogI2YxZjVmOTsKICAtLWRzLXNsYXRlLTIwMDogI2UyZThmMDsKICAtLWRzLXNsYXRlLTMwMDogI2NiZDVlMTsKICAtLWRzLXNsYXRlLTQwMDogIzk0YTNiODsKICAtLWRzLXNsYXRlLTUwMDogIzY0NzQ4YjsKICAtLWRzLXNsYXRlLTYwMDogIzQ3NTU2OTsKICAtLWRzLXNsYXRlLTcwMDogIzMzNDE1NTsKICAtLWRzLXNsYXRlLTgwMDogIzFlMjkzYjsKICAtLWRzLXNsYXRlLTkwMDogIzBmMTcyYTsKCiAgLyogVHlwb2dyYXBoeTogZm9udCBmYW1pbGllcyAqLwogIC0tZHMtZm9udC11aTogSW50ZXIsIFJvYm90bywgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgLS1kcy1mb250LW1vbm86ICdKZXRCcmFpbnMgTW9ubycsIHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgbW9ub3NwYWNlOwoKICAvKiBUeXBvZ3JhcGh5OiBmb250IHNpemVzICovCiAgLS1kcy10ZXh0LXhzOiAxMnB4OwogIC0tZHMtdGV4dC1zbTogMTRweDsKICAtLWRzLXRleHQtYmFzZTogMTZweDsKICAtLWRzLXRleHQtbGc6IDE4cHg7CiAgLS1kcy10ZXh0LXhsOiAyMHB4OwogIC0tZHMtdGV4dC0yeGw6IDI0cHg7CiAgLS1kcy10ZXh0LTN4bDogMzBweDsKICAtLWRzLXRleHQtNHhsOiAzNnB4OwoKICAvKiBUeXBvZ3JhcGh5OiBsaW5lIGhlaWdodHMgKi8KICAtLWRzLWxlYWRpbmctdGlnaHQ6IDEuMjU7CiAgLS1kcy1sZWFkaW5nLW5vcm1hbDogMS41OwogIC0tZHMtbGVhZGluZy1yZWxheGVkOiAxLjYyNTsKCiAgLyogVHlwb2dyYXBoeTogZm9udCB3ZWlnaHRzICovCiAgLS1kcy1mb250LXJlZ3VsYXI6IDQwMDsKICAtLWRzLWZvbnQtbWVkaXVtOiA1MDA7CiAgLS1kcy1mb250LXNlbWlib2xkOiA2MDA7CiAgLS1kcy1mb250LWJvbGQ6IDcwMDsKCiAgLyogTGF5b3V0OiBzcGFjaW5nIHNjYWxlICovCiAgLS1kcy1zcGFjZS0wOiAwcHg7CiAgLS1kcy1zcGFjZS0xOiA0cHg7CiAgLS1kcy1zcGFjZS0yOiA4cHg7CiAgLS1kcy1zcGFjZS0zOiAxMnB4OwogIC0tZHMtc3BhY2UtNDogMTZweDsKICAtLWRzLXNwYWNlLTU6IDIwcHg7CiAgLS1kcy1zcGFjZS02OiAyNHB4OwogIC0tZHMtc3BhY2UtODogMzJweDsKICAtLWRzLXNwYWNlLTEwOiA0MHB4OwogIC0tZHMtc3BhY2UtMTI6IDQ4cHg7CiAgLS1kcy1zcGFjZS0xNjogNjRweDsKICAtLWRzLXNwYWNlLTIwOiA4MHB4OwogIC0tZHMtc3BhY2UtMjQ6IDk2cHg7CiAgLS1kcy1zcGFjZS0zMjogMTI4cHg7CiAgLS1kcy1zcGFjZS00MDogMTYwcHg7CiAgLS1kcy1zcGFjZS00ODogMTkycHg7CiAgLS1kcy1zcGFjZS02NDogMjU2cHg7CgogIC8qIExheW91dDogY29udGFpbmVycyAqLwogIC0tZHMtY29udGFpbmVyLW1heDogMTI4MHB4OwogIC0tZHMtY29udGFpbmVyLW1heC0yeGw6IDE0NDBweDsKICAtLWRzLWNvbnRhaW5lci1wYWRkaW5nLW1vYmlsZTogMTZweDsKICAtLWRzLWNvbnRhaW5lci1wYWRkaW5nLXRhYmxldDogMjRweDsKICAtLWRzLWNvbnRhaW5lci1wYWRkaW5nLWRlc2t0b3A6IDMycHg7CgogIC8qIExheW91dDogYnJlYWtwb2ludHMgKi8KICAtLWRzLWJwLXNtOiA2NDBweDsKICAtLWRzLWJwLW1kOiA3NjhweDsKICAtLWRzLWJwLWxnOiAxMDI0cHg7CiAgLS1kcy1icC14bDogMTI4MHB4OwogIC0tZHMtYnAtMnhsOiAxNTM2cHg7CgogIC8qIFNoYXBlczogcmFkaWkgYW5kIGNvbXBhdGliaWxpdHkgYWxpYXNlcyAqLwogIC0tcmFkaXVzOiAwLjVyZW07CiAgLS1kcy1yYWRpdXMtbm9uZTogMHB4OwogIC0tZHMtcmFkaXVzLXNtOiA0cHg7CiAgLS1kcy1yYWRpdXMtbWQ6IDhweDsKICAtLWRzLXJhZGl1cy1sZzogMTJweDsKICAtLWRzLXJhZGl1cy14bDogMTZweDsKICAtLWRzLXJhZGl1cy1mdWxsOiA5OTk5cHg7CgogIC8qIEVsZXZhdGlvbiAqLwogIC0tZHMtc2hhZG93LTA6IG5vbmU7CiAgLS1kcy1zaGFkb3ctMTogMCAxcHggMnB4IHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7CiAgLS1kcy1zaGFkb3ctMjogMCA4cHggMjRweCByZ2JhKDE1LCAyMywgNDIsIDAuMTQpOwogIC0tZHMtc2hhZG93LTM6IDAgMTZweCA0OHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4yMCk7CgogIC8qIE1vdGlvbiAqLwogIC0tZHMtZHVyYXRpb24tZmFzdDogMTUwbXM7CiAgLS1kcy1kdXJhdGlvbi1iYXNlOiAyMDBtczsKICAtLWRzLWR1cmF0aW9uLXNsb3c6IDMwMG1zOwogIC0tZHMtZWFzZS1vdXQ6IGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpOwogIC0tZHMtZWFzZS1pbjogY3ViaWMtYmV6aWVyKDAuNywgMCwgMC44NCwgMCk7CgogIC8qCiAgICogWi1pbmRleCBsYXllcmluZyBzY2FsZS4KICAgKgogICAqINCV0LTQuNC90YvQuSDQuNGB0YLQvtGH0L3QuNC6INC40YHRgtC40L3RiyDQtNC70Y8g0YHQu9C+0ZHQsiDQstGB0LXRhSDQutC+0LzQv9C+0L3QtdC90YLQvtCyLCDQuNGB0L/QvtC70YzQt9GD0Y7RidC40YUgYHBvc2l0aW9uOiBmaXhlZGAKICAgKiDQv9C+0LLQtdGA0YUg0L7RgdGC0LDQu9GM0L3QvtCz0L4g0LrQvtC90YLQtdC90YLQsC4g0J/RgNCw0LLQuNC70L46INGH0LXQvCDQstGL0YjQtSDQsiBVSS3RgdGC0LXQutC1INGB0LvQvtC5INC+0LHRj9C30LDQvSDQvtC60LDQt9Cw0YLRjNGB0Y8sCiAgICog0YLQtdC8INCx0L7Qu9GM0YjQtSDQt9C90LDRh9C10L3QuNC1LiBGbG9hdGluZy3Qv9Cw0L3QtdC70LggKGRyb3Bkb3duL3NlbGVjdC90cmVlLXNlbGVjdC90b29sdGlwKSDRgdGC0L7Rj9GCCiAgICog0L3QuNC20LUg0LzQvtC00LDQu9C+0LosINGH0YLQvtCx0Ysg0L/QvtC/0L7QstC10YAsINC+0YLQutGA0YvRgtGL0Lkg0JLQndCj0KLQoNCYINC80L7QtNCw0LvQutC4LCDQvdC1INC/0L7RgtC10YDRj9C70YHRjyDQv9C+0LQg0L3QtdC5LCDQvdC+CiAgICog0YHQsNC8INGN0YLQvtGCINC/0L7Qv9C+0LLQtdGAINC90LUg0L7QsdGP0LfQsNC9INC/0LXRgNC10LrRgNGL0LLQsNGC0Ywg0LzQvtC00LDQu9C60YMg0YHQvdCw0YDRg9C20Lgg4oCUINC30LAg0L/RgNC10LTQtdC70Ysg0YHQstC+0LXQs9C+INC00LXRgNC10LLQsAogICAqIGZsb2F0aW5nLdC60L7QvNC/0L7QvdC10L3RgtGLINC90LUg0LLRi9GF0L7QtNGP0YIg0L/QviDQv9C+0YHRgtGA0L7QtdC90LjRjiAodi1jbGljay1vdXRzaWRlL3BvcnRhbCDRgNGP0LTQvtC8INGBINGC0YDQuNCz0LPQtdGA0L7QvCkuCiAgICog0KLQvtGB0YLRiyDigJQg0LXQtNC40L3RgdGC0LLQtdC90L3Ri9C5INGB0LvQvtC5LCDQutC+0YLQvtGA0YvQuSDQvtCx0Y/Qt9Cw0L0g0LHRi9GC0Ywg0LLQuNC00LXQvSDQv9C+0LLQtdGA0YUg0LDQsdGB0L7Qu9GO0YLQvdC+INCy0YHQtdCz0L4sCiAgICog0LLQutC70Y7Rh9Cw0Y8g0L7RgtC60YDRi9GC0YvQtSDQvNC+0LTQsNC70LrQuCAo0Y3RgtC+INGD0LLQtdC00L7QvNC70LXQvdC40LUg0YPRgNC+0LLQvdGPINC/0YDQuNC70L7QttC10L3QuNGPKS4KICAgKi8KICAtLWdyLXotZHJvcGRvd246IDEwMDA7CiAgLS1nci16LXRvb2x0aXA6IDEwNTA7CiAgLS1nci16LW1vZGFsOiAxMTAwOwogIC0tZ3Itei10b2FzdDogMTIwMDsKCiAgLyogRGVyaXZlZCBpbnRlcmFjdGlvbiBmb3JtdWxhczogYWN0aW9uIHJvbGVzICovCiAgLS1wcmltYXJ5LWhvdmVyOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tcHJpbWFyeSkgOTIlLCB2YXIoLS1mZykpOwogIC0tcHJpbWFyeS1hY3RpdmU6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1wcmltYXJ5KSA4NCUsIHZhcigtLWZnKSk7CiAgLS1zZWNvbmRhcnktaG92ZXI6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnkpIDkyJSwgdmFyKC0tZmcpKTsKICAtLXNlY29uZGFyeS1hY3RpdmU6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnkpIDg0JSwgdmFyKC0tZmcpKTsKICAtLWJyZC1ob3ZlcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJyZCkgNzAlLCB2YXIoLS1mZykpOwogIC0tYnJkLWFjdGl2ZTogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJyZCkgNTUlLCB2YXIoLS1mZykpOwogIC0tZGVzdHJ1Y3RpdmUtaG92ZXI6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1kZXN0cnVjdGl2ZSkgOTIlLCB2YXIoLS1mZykpOwogIC0tZGVzdHJ1Y3RpdmUtYWN0aXZlOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZGVzdHJ1Y3RpdmUpIDg0JSwgdmFyKC0tZmcpKTsKCiAgLyogRGVyaXZlZCBpbnRlcmFjdGlvbiBmb3JtdWxhczogc3RhdHVzIHJvbGVzICovCiAgLS1kcy1zdWNjZXNzLWhvdmVyOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZHMtc3VjY2VzcykgOTIlLCB2YXIoLS1mZykpOwogIC0tZHMtc3VjY2Vzcy1hY3RpdmU6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1kcy1zdWNjZXNzKSA4NCUsIHZhcigtLWZnKSk7CiAgLS1kcy13YXJuaW5nLWhvdmVyOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZHMtd2FybmluZykgOTIlLCB2YXIoLS1mZykpOwogIC0tZHMtd2FybmluZy1hY3RpdmU6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1kcy13YXJuaW5nKSA4NCUsIHZhcigtLWZnKSk7CiAgLS1kcy1kYW5nZXItaG92ZXI6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1kcy1kYW5nZXIpIDkyJSwgdmFyKC0tZmcpKTsKICAtLWRzLWRhbmdlci1hY3RpdmU6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1kcy1kYW5nZXIpIDg0JSwgdmFyKC0tZmcpKTsKICAtLWRzLWluZm8taG92ZXI6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1kcy1pbmZvKSA5MiUsIHZhcigtLWZnKSk7CiAgLS1kcy1pbmZvLWFjdGl2ZTogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWRzLWluZm8pIDg0JSwgdmFyKC0tZmcpKTsKICAtLWRzLXNsYXRlLWhvdmVyOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZHMtc2xhdGUpIDkyJSwgdmFyKC0tZmcpKTsKICAtLWRzLXNsYXRlLWFjdGl2ZTogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWRzLXNsYXRlKSA4NCUsIHZhcigtLWZnKSk7CiAgLS1kcy1henVyZS1ob3ZlcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWRzLWF6dXJlKSA5MiUsIHZhcigtLWZnKSk7CiAgLS1kcy1henVyZS1hY3RpdmU6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1kcy1henVyZSkgODQlLCB2YXIoLS1mZykpOwp9Cg==", "" + import.meta.url).href,
74
74
  themes: {
75
75
  light: new URL("data:text/css;base64,OnJvb3QgewogIC8qIFN1cmZhY2Ugcm9sZXMgKi8KICAtLWJnOiAjZjhmYWZjOwogIC0tZmc6ICMwZjE3MmE7CiAgLS1jYXJkOiAjZmZmZmZmOwogIC0tY2FyZC1mZzogIzBmMTcyYTsKICAtLXBvcG92ZXI6ICNmZmZmZmY7CiAgLS1wb3BvdmVyLWZnOiAjMGYxNzJhOwogIC0tbXV0ZWQ6ICNmMWY1Zjk7CiAgLS1tdXRlZC1mZzogIzY0NzQ4YjsKICAtLXNlY29uZGFyeTogI2UyZThmMDsKICAtLXNlY29uZGFyeS1mZzogIzFlMjkzYjsKICAtLWJyZDogI2UyZThmMDsKICAtLWlucHV0OiAjZTJlOGYwOwogIC0tcmluZzogIzYzNjZmMTsKCiAgLyogQWN0aW9uIHJvbGVzICovCiAgLS1wcmltYXJ5OiAjNGY0NmU1OwogIC0tcHJpbWFyeS1mZzogI2ZmZmZmZjsKICAtLWFjY2VudDogI2VlZjJmZjsKICAtLWFjY2VudC1mZzogIzM3MzBhMzsKICAtLWRlc3RydWN0aXZlOiAjZGMyNjI2OwogIC0tZGVzdHJ1Y3RpdmUtZmc6ICNmZmZmZmY7CgogIC8qIFN0YXR1cyByb2xlcyAqLwogIC0tZHMtc3VjY2VzczogIzEwYjk4MTsKICAtLWRzLXN1Y2Nlc3MtbGlnaHQ6ICNkMWZhZTU7CiAgLS1kcy1zdWNjZXNzLWZnOiAjZmZmZmZmOwogIC0tZHMtc3VjY2Vzcy10ZXh0OiAjMDY1ZjQ2OwogIC0tZHMtd2FybmluZzogI2Y5NzMxNjsKICAtLWRzLXdhcm5pbmctbGlnaHQ6ICNmZmVkZDU7CiAgLS1kcy13YXJuaW5nLWZnOiAjZmZmZmZmOwogIC0tZHMtd2FybmluZy10ZXh0OiAjN2MyZDEyOwogIC0tZHMtZGFuZ2VyOiAjZGMyNjI2OwogIC0tZHMtZGFuZ2VyLWxpZ2h0OiAjZmVlMmUyOwogIC0tZHMtZGFuZ2VyLWZnOiAjZmZmZmZmOwogIC0tZHMtZGFuZ2VyLXRleHQ6ICM5OTFiMWI7CiAgLS1kcy1pbmZvOiAjNTg1MGVjOwogIC0tZHMtaW5mby1saWdodDogI2UwZTdmZjsKICAtLWRzLWluZm8tZmc6ICNmZmZmZmY7CiAgLS1kcy1pbmZvLXRleHQ6ICMzNzMwYTM7CiAgLS1kcy1zbGF0ZTogIzQ3NTU2OTsKICAtLWRzLXNsYXRlLWxpZ2h0OiAjZTJlOGYwOwogIC0tZHMtc2xhdGUtZmc6ICNmZmZmZmY7CiAgLS1kcy1zbGF0ZS10ZXh0OiAjMzM0MTU1OwogIC0tZHMtYXp1cmU6ICMwZWE1ZTk7CiAgLS1kcy1henVyZS1saWdodDogI2UwZjJmZTsKICAtLWRzLWF6dXJlLWZnOiAjZmZmZmZmOwogIC0tZHMtYXp1cmUtdGV4dDogIzA3NTk4NTsKCiAgLyogRGF0YSB2aXN1YWxpemF0aW9uIHJvbGVzICovCiAgLS1jaGFydC0xOiAjNGY0NmU1OwogIC0tY2hhcnQtMjogIzEwYjk4MTsKICAtLWNoYXJ0LTM6ICNmOTczMTY7CiAgLS1jaGFydC00OiAjNjM2NmYxOwogIC0tY2hhcnQtNTogIzhiNWNmNjsKCiAgLyogTmF2aWdhdGlvbiByb2xlcyAqLwogIC0tc2lkZWJhcjogI2ZmZmZmZjsKICAtLXNpZGViYXItZmc6ICMwZjE3MmE7CiAgLS1zaWRlYmFyLXByaW1hcnk6ICM0ZjQ2ZTU7CiAgLS1zaWRlYmFyLXByaW1hcnktZmc6ICNmZmZmZmY7CiAgLS1zaWRlYmFyLWFjY2VudDogI2YxZjVmOTsKICAtLXNpZGViYXItYWNjZW50LWZnOiAjMWUyOTNiOwogIC0tc2lkZWJhci1icmQ6ICNlMmU4ZjA7CiAgLS1zaWRlYmFyLXJpbmc6ICM2MzY2ZjE7Cn0KCkBzdXBwb3J0cyBub3QgKGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgIzAwMCA1MCUsICNmZmYpKSB7CiAgOnJvb3QgewogICAgLyogQWN0aW9uIHJvbGUgZmFsbGJhY2tzICovCiAgICAtLXByaW1hcnktaG92ZXI6ICM0YTQyZDY7CiAgICAtLXByaW1hcnktYWN0aXZlOiAjNDUzZWM3OwogICAgLS1zZWNvbmRhcnktaG92ZXI6ICNkMWQ3ZTA7CiAgICAtLXNlY29uZGFyeS1hY3RpdmU6ICNjMGM3ZDA7CiAgICAtLWJyZC1ob3ZlcjogI2EzYTliNTsKICAgIC0tYnJkLWFjdGl2ZTogIzgzOGE5NzsKICAgIC0tZGVzdHJ1Y3RpdmUtaG92ZXI6ICNjYzI1MjY7CiAgICAtLWRlc3RydWN0aXZlLWFjdGl2ZTogI2JiMjQyNzsKCiAgICAvKiBTdGF0dXMgcm9sZSBmYWxsYmFja3MgKi8KICAgIC0tZHMtc3VjY2Vzcy1ob3ZlcjogIzEwYWM3YTsKICAgIC0tZHMtc3VjY2Vzcy1hY3RpdmU6ICMxMDlmNzM7CiAgICAtLWRzLXdhcm5pbmctaG92ZXI6ICNlNjZjMTg7CiAgICAtLWRzLXdhcm5pbmctYWN0aXZlOiAjZDQ2NDE5OwogICAgLS1kcy1kYW5nZXItaG92ZXI6ICNjYzI1MjY7CiAgICAtLWRzLWRhbmdlci1hY3RpdmU6ICNiYjI0Mjc7CiAgICAtLWRzLWluZm8taG92ZXI6ICM1YzYwZTE7CiAgICAtLWRzLWluZm8tYWN0aXZlOiAjNTY1OWQxOwogICAgLS1kcy1zbGF0ZS1ob3ZlcjogIzQzNTA2MjsKICAgIC0tZHMtc2xhdGUtYWN0aXZlOiAjM2Q0YTViOwogICAgLS1kcy1henVyZS1ob3ZlcjogIzAyODRjNzsKICAgIC0tZHMtYXp1cmUtYWN0aXZlOiAjMDM2OWExOwoKICAgIC8qIENvbXBvbmVudCBzZW1hbnRpYyBmYWxsYmFja3MgKi8KICAgIC8qLS1kcy1jYXRlZ29yeS10cmVlLWJyYW5jaC1saW5lLWFjdGl2ZS1jb2xvcjogI2M0Y2RmNzsqLwogIH0KfQo=", "" + import.meta.url).href,
76
76
  dark: new URL("data:text/css;base64,LnRoZW1lLWRhcmssCi5kYXJrLApbZGF0YS10aGVtZT0nZGFyayddIHsKICAvKiBTdXJmYWNlIHJvbGVzICovCiAgLS1iZzogIzBmMTcyYTsKICAtLWZnOiAjZjhmYWZjOwogIC0tY2FyZDogIzFlMjkzYjsKICAtLWNhcmQtZmc6ICNmOGZhZmM7CiAgLS1wb3BvdmVyOiAjMWUyOTNiOwogIC0tcG9wb3Zlci1mZzogI2Y4ZmFmYzsKICAtLW11dGVkOiAjMzM0MTU1OwogIC0tbXV0ZWQtZmc6ICM5NGEzYjg7CiAgLS1zZWNvbmRhcnk6ICMzMzQxNTU7CiAgLS1zZWNvbmRhcnktZmc6ICNmMWY1Zjk7CiAgLS1icmQ6ICMzMzQxNTU7CiAgLS1pbnB1dDogIzMzNDE1NTsKICAtLXJpbmc6ICM4MThjZjg7CgogIC8qIEFjdGlvbiByb2xlcyAqLwogIC0tcHJpbWFyeTogIzYzNjZmMTsKICAtLXByaW1hcnktZmc6ICNmZmZmZmY7CiAgLS1hY2NlbnQ6ICMxZTFiNGI7CiAgLS1hY2NlbnQtZmc6ICNjN2QyZmU7CiAgLS1kZXN0cnVjdGl2ZTogI2VmNDQ0NDsKICAtLWRlc3RydWN0aXZlLWZnOiAjZmZmZmZmOwoKICAvKiBTdGF0dXMgcm9sZXMgKi8KICAtLWRzLXN1Y2Nlc3M6ICMzNGQzOTk7CiAgLS1kcy1zdWNjZXNzLWxpZ2h0OiAjMDY0ZTNiOwogIC0tZHMtc3VjY2Vzcy1mZzogIzBmMTcyYTsKICAtLWRzLXN1Y2Nlc3MtdGV4dDogIzZlZTdiNzsKICAtLWRzLXdhcm5pbmc6ICNmYjkyM2M7CiAgLS1kcy13YXJuaW5nLWxpZ2h0OiAjN2MyZDEyOwogIC0tZHMtd2FybmluZy1mZzogIzBmMTcyYTsKICAtLWRzLXdhcm5pbmctdGV4dDogI2ZkYmE3NDsKICAtLWRzLWRhbmdlcjogI2Y4NzE3MTsKICAtLWRzLWRhbmdlci1saWdodDogIzdmMWQxZDsKICAtLWRzLWRhbmdlci1mZzogIzBmMTcyYTsKICAtLWRzLWRhbmdlci10ZXh0OiAjZmNhNWE1OwogIC0tZHMtaW5mbzogIzgxOGNmODsKICAtLWRzLWluZm8tbGlnaHQ6ICMzMTJlODE7CiAgLS1kcy1pbmZvLWZnOiAjMGYxNzJhOwogIC0tZHMtaW5mby10ZXh0OiAjYzdkMmZlOwogIC0tZHMtc2xhdGU6ICM5NGEzYjg7CiAgLS1kcy1zbGF0ZS1saWdodDogIzMzNDE1NTsKICAtLWRzLXNsYXRlLWZnOiAjMGYxNzJhOwogIC0tZHMtc2xhdGUtdGV4dDogI2NiZDVlMTsKICAtLWRzLWF6dXJlOiAjMzhiZGY4OwogIC0tZHMtYXp1cmUtbGlnaHQ6ICMwYzRhNmU7CiAgLS1kcy1henVyZS1mZzogIzBmMTcyYTsKICAtLWRzLWF6dXJlLXRleHQ6ICNiYWU2ZmQ7CgogIC8qIERhdGEgdmlzdWFsaXphdGlvbiByb2xlcyAqLwogIC0tY2hhcnQtMTogIzYzNjZmMTsKICAtLWNoYXJ0LTI6ICMzNGQzOTk7CiAgLS1jaGFydC0zOiAjZmI5MjNjOwogIC0tY2hhcnQtNDogIzgxOGNmODsKICAtLWNoYXJ0LTU6ICNhNzhiZmE7CgogIC8qIE5hdmlnYXRpb24gcm9sZXMgKi8KICAtLXNpZGViYXI6ICMxZTI5M2I7CiAgLS1zaWRlYmFyLWZnOiAjZjhmYWZjOwogIC0tc2lkZWJhci1wcmltYXJ5OiAjNjM2NmYxOwogIC0tc2lkZWJhci1wcmltYXJ5LWZnOiAjZmZmZmZmOwogIC0tc2lkZWJhci1hY2NlbnQ6ICMzMzQxNTU7CiAgLS1zaWRlYmFyLWFjY2VudC1mZzogI2YxZjVmOTsKICAtLXNpZGViYXItYnJkOiAjMzM0MTU1OwogIC0tc2lkZWJhci1yaW5nOiAjODE4Y2Y4Owp9CgpAc3VwcG9ydHMgbm90IChjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsICMwMDAgNTAlLCAjZmZmKSkgewogIC50aGVtZS1kYXJrLAogIC5kYXJrLAogIFtkYXRhLXRoZW1lPSdkYXJrJ10gewogICAgLyogQWN0aW9uIHJvbGUgZmFsbGJhY2tzICovCiAgICAtLXByaW1hcnktaG92ZXI6ICM2ZjcyZjI7CiAgICAtLXByaW1hcnktYWN0aXZlOiAjN2I3ZWYzOwogICAgLS1zZWNvbmRhcnktaG92ZXI6ICM0MzUwNjI7CiAgICAtLXNlY29uZGFyeS1hY3RpdmU6ICM1MzVmNzA7CiAgICAtLWJyZC1ob3ZlcjogIzZlNzk4NzsKICAgIC0tYnJkLWFjdGl2ZTogIzhjOTRhMDsKICAgIC0tZGVzdHJ1Y3RpdmUtaG92ZXI6ICNmMDUzNTM7CiAgICAtLWRlc3RydWN0aXZlLWFjdGl2ZTogI2YwNjE2MTsKCiAgICAvKiBTdGF0dXMgcm9sZSBmYWxsYmFja3MgKi8KICAgIC0tZHMtc3VjY2Vzcy1ob3ZlcjogIzQ0ZDZhMTsKICAgIC0tZHMtc3VjY2Vzcy1hY3RpdmU6ICM1M2Q5YTk7CiAgICAtLWRzLXdhcm5pbmctaG92ZXI6ICNmYjlhNGI7CiAgICAtLWRzLXdhcm5pbmctYWN0aXZlOiAjZmJhMzViOwogICAgLS1kcy1kYW5nZXItaG92ZXI6ICNmODdjN2M7CiAgICAtLWRzLWRhbmdlci1hY3RpdmU6ICNmODg3ODc7CiAgICAtLWRzLWluZm8taG92ZXI6ICM4Yjk1Zjg7CiAgICAtLWRzLWluZm8tYWN0aXZlOiAjOTQ5ZWY5OwogICAgLS1kcy1zbGF0ZS1ob3ZlcjogIzlmYWVjMDsKICAgIC0tZHMtc2xhdGUtYWN0aXZlOiAjYWFiN2M4OwogICAgLS1kcy1henVyZS1ob3ZlcjogIzRiYzNmOTsKICAgIC0tZHMtYXp1cmUtYWN0aXZlOiAjNWRjYmY5OwoKICAgIC8qIENvbXBvbmVudCBzZW1hbnRpYyBmYWxsYmFja3MgKi8KICAgIC8qLS1kcy1jYXRlZ29yeS10cmVlLWJyYW5jaC1saW5lLWFjdGl2ZS1jb2xvcjogIzUwNWI4YzsqLwogIH0KfQo=", "" + import.meta.url).href
@@ -1 +1 @@
1
- {"version":3,"file":"shared-BiqXd5MW.js","names":[],"sources":["../../src/components/GrDialog/config.ts","../../src/components/GrResponseErrorBanner/config.ts","../../src/granular-provider/shared.ts"],"sourcesContent":["import {defineGranularComponent} from '@feugene/unocss-preset-granular/contract'\n\nimport { grDialogSafelist } from './safelist'\n\nexport const grDialogConfig = defineGranularComponent(import.meta.url, {\n name: 'GrDialog',\n dependencies: ['GrButton', 'GrModal'],\n safelist: grDialogSafelist,\n})\n","import { defineGranularComponent } from '@feugene/unocss-preset-granular/contract'\n\nexport const grResponseErrorBannerConfig = defineGranularComponent(import.meta.url, {\n name: 'GrResponseErrorBanner',\n dependencies: ['GrAlert', 'GrButton'],\n})\n","// Общий код browser- и node-entry granular-provider'а.\n//\n// Оба entry (`./index.ts`, `./node.ts`) отличаются только списком\n// компонентов, у которых есть node-only вариант конфига (например,\n// `GrButton`, чей `config.node.ts` использует `tokenDefinitionsFromCssSync`\n// и тянет `node:fs`). Browser-вариант таких компонентов берёт облегчённый\n// `./config.ts`, node-вариант — `./config.node.ts`. Всё остальное — `id`,\n// `theme.*`, `packageBaseUrl` и полный список browser-safe компонентов —\n// живёт здесь.\n//\n// ВАЖНО: все `new URL('../styles/...', import.meta.url)` намеренно находятся\n// здесь — `shared.ts` лежит в той же директории, что и `index.ts` / `node.ts`,\n// поэтому относительные пути идентичны. Это ОК для браузера: бандлеры\n// транслируют такие конструкции в статические asset-URL и `node:*` в бандл\n// не утаскивают.\n//\n// Ключи записи `<Name>: ds<Name>Config` в `granularityComponentConfigs`\n// критичны для regex‑парсинга в `apps/showcase/scripts/generate-component-api.mjs`,\n// не ломайте формат.\nimport {\n defineGranularProvider,\n type GranularComponentDescriptor,\n type GranularProvider,\n} from '@feugene/unocss-preset-granular/contract'\nimport { grAlertConfig } from '../components/GrAlert/config'\nimport { grAvatarConfig } from '../components/GrAvatar/config'\nimport { grBadgeConfig } from '../components/GrBadge/config'\nimport { grBadgeWrapConfig } from '../components/GrBadgeWrap/config'\nimport { grBottomNavConfig } from '../components/GrBottomNav/config'\nimport { grButtonConfig } from '../components/GrButton/config'\nimport { grButtonGroupConfig } from '../components/GrButtonGroup/config'\nimport { grCardConfig } from '../components/GrCard/config'\nimport { grCheckboxConfig } from '../components/GrCheckbox/config'\nimport { grCollapseConfig } from '../components/GrCollapse/config'\nimport { grConfirmDialogConfig } from '../components/GrConfirmDialog/config'\nimport { grDataTableConfig } from '../components/GrDataTable/config'\nimport { grDialogConfig } from '../components/GrDialog/config'\nimport { grDrawerConfig } from '../components/GrDrawer/config'\nimport { grDropdownConfig } from '../components/GrDropdown/config'\nimport { grDropdownMenuConfig } from '../components/GrDropdownMenu/config'\nimport { grEmptyStateConfig } from '../components/GrEmptyState/config'\nimport { grFileUploadConfig } from '../components/GrFileUpload/config'\nimport { grFormFieldConfig } from '../components/GrFormField/config'\nimport { grFormFileConfig } from '../components/GrFormFile/config'\nimport { grFormSectionConfig } from '../components/GrFormSection/config'\nimport { grIconConfig } from '../components/GrIcon/config'\nimport { grImageViewerConfig } from '../components/GrImageViewer/config'\nimport { grInputConfig } from '../components/GrInput/config'\nimport { grInputTagConfig } from '../components/GrInputTag/config'\nimport { grLinkConfig } from '../components/GrLink/config'\nimport { grListConfig } from '../components/GrList/config'\nimport { grLoadingConfig } from '../components/GrLoading/config'\nimport { grModalConfig } from '../components/GrModal/config'\nimport { grNavbarConfig } from '../components/GrNavbar/config'\nimport { grNumberInputConfig } from '../components/GrNumberInput/config'\nimport { grPaginationConfig } from '../components/GrPagination/config'\nimport { grProgressBarConfig } from '../components/GrProgressBar/config'\nimport { grPromptDialogConfig } from '../components/GrPromptDialog/config'\nimport { grRadioConfig } from '../components/GrRadio/config'\nimport { grRadioGroupConfig } from '../components/GrRadioGroup/config'\nimport { grResponseErrorBannerConfig } from '../components/GrResponseErrorBanner/config'\nimport { grSegmentedConfig } from '../components/GrSegmented/config'\nimport { grSelectConfig } from '../components/GrSelect/config'\nimport { grSidebarConfig } from '../components/GrSidebar/config'\nimport { grSkeletonConfig } from '../components/GrSkeleton/config'\nimport { grSwitchConfig } from '../components/GrSwitch/config'\nimport { grTableConfig } from '../components/GrTable/config'\nimport { grTabsConfig } from '../components/GrTabs/config'\nimport { grTextareaConfig } from '../components/GrTextarea/config'\nimport { grToasterConfig } from '../components/GrToaster/config'\nimport { grTooltipConfig } from '../components/GrTooltip/config'\nimport { grTreeConfig } from '../components/GrTree/config'\nimport { grTreeSelectConfig } from '../components/GrTreeSelect/config'\n\n/** Идентификатор провайдера — совпадает с именем пакета. */\nexport const GRANULARITY_PROVIDER_ID = '@feugene/granularity'\n\n// runtime-concat: литерал `new URL('..', import.meta.url)` rolldown заменяет\n// на `data:`-URL, поэтому собираем корень пакета из `import.meta.url` вручную\n// (отрезая два последних сегмента: имя файла и каталог `granular-provider/`).\nconst packageBaseUrl = `${import.meta.url.slice(\n 0,\n import.meta.url.lastIndexOf('/', import.meta.url.lastIndexOf('/') - 1) + 1,\n)}`\n\n/** Встроенные темы пакета. Единственный источник правды о списке тем. */\nexport const granularityThemeNames = ['light', 'dark'] as const\nexport type GranularityThemeName = (typeof granularityThemeNames)[number]\n\n/** Темы, активные по умолчанию, если окружение не переопределяет выбор. */\nexport const granularityDefaultThemes: readonly GranularityThemeName[] = ['light']\n\nconst theme = {\n baseCssUrl: new URL('../styles/base.css', import.meta.url).href,\n tokensCssUrl: new URL('../styles/tokens.css', import.meta.url).href,\n themes: {\n light: new URL('../styles/themes/light.css', import.meta.url).href,\n dark: new URL('../styles/themes/dark.css', import.meta.url).href,\n },\n defaultThemes: granularityDefaultThemes,\n} as const\n\n/**\n * Полный реестр публичных компонентов пакета `@feugene/granularity`.\n *\n * Ключи — имена компонентов (совпадают с публичным subpath‑экспортом\n * `@feugene/granularity/components/<Name>`). Значения — browser‑safe\n * `ds<Name>Config` из `./config.ts` рядом с SFC.\n *\n * Для компонентов, у которых есть node-only вариант конфига\n * (например, `GrButton` с `tokenDefinitionsFromCssSync`), browser‑конфиг\n * остаётся здесь, а node‑вариант подставляется снаружи через\n * `createGranularityProvider(overrides)` — см. `./index.ts` (browser)\n * и `./node.ts` (node).\n *\n * Формат записи `<Name>: ds<Name>Config` критичен для regex‑парсинга\n * в `apps/showcase/scripts/generate-component-api.mjs`, не ломайте его.\n */\nexport const granularityComponentConfigs = {\n GrAlert: grAlertConfig,\n GrAvatar: grAvatarConfig,\n GrBadge: grBadgeConfig,\n GrBadgeWrap: grBadgeWrapConfig,\n GrBottomNav: grBottomNavConfig,\n GrButton: grButtonConfig,\n GrButtonGroup: grButtonGroupConfig,\n GrCard: grCardConfig,\n GrCheckbox: grCheckboxConfig,\n GrCollapse: grCollapseConfig,\n GrConfirmDialog: grConfirmDialogConfig,\n GrDataTable: grDataTableConfig,\n GrDialog: grDialogConfig,\n GrDrawer: grDrawerConfig,\n GrDropdown: grDropdownConfig,\n GrDropdownMenu: grDropdownMenuConfig,\n GrEmptyState: grEmptyStateConfig,\n GrFileUpload: grFileUploadConfig,\n GrFormField: grFormFieldConfig,\n GrFormFile: grFormFileConfig,\n GrFormSection: grFormSectionConfig,\n GrIcon: grIconConfig,\n GrImageViewer: grImageViewerConfig,\n GrInput: grInputConfig,\n GrInputTag: grInputTagConfig,\n GrLink: grLinkConfig,\n GrList: grListConfig,\n GrLoading: grLoadingConfig,\n GrModal: grModalConfig,\n GrNavbar: grNavbarConfig,\n GrNumberInput: grNumberInputConfig,\n GrPagination: grPaginationConfig,\n GrProgressBar: grProgressBarConfig,\n GrPromptDialog: grPromptDialogConfig,\n GrRadio: grRadioConfig,\n GrRadioGroup: grRadioGroupConfig,\n GrResponseErrorBanner: grResponseErrorBannerConfig,\n GrSegmented: grSegmentedConfig,\n GrSelect: grSelectConfig,\n GrSidebar: grSidebarConfig,\n GrSkeleton: grSkeletonConfig,\n GrSwitch: grSwitchConfig,\n GrTable: grTableConfig,\n GrTabs: grTabsConfig,\n GrTextarea: grTextareaConfig,\n GrToaster: grToasterConfig,\n GrTooltip: grTooltipConfig,\n GrTree: grTreeConfig,\n GrTreeSelect: grTreeSelectConfig,\n}\n\nexport type GranularityComponentName = keyof typeof granularityComponentConfigs\n\n/** Базовый (browser-safe) набор компонентов в порядке реестра. */\nconst baseComponents: readonly GranularComponentDescriptor[] = Object.values(\n granularityComponentConfigs,\n)\n\n/**\n * Собирает granular-provider пакета `@feugene/granularity`.\n *\n * Принимает массив `GranularComponentDescriptor`'ов — это компоненты,\n * у которых есть node-only вариант конфига (например, `GrButton` с\n * `tokenDefinitionsFromCssSync`). Дескрипторы с именем, которое уже\n * присутствует в базовом наборе, переопределяют его (побеждает\n * переданный снаружи), остальные — добавляются в конец списка.\n */\nexport function createGranularityProvider(\n overrides: readonly GranularComponentDescriptor[] = [],\n): GranularProvider {\n const overrideByName = new Map(\n overrides.map(component => [component.name, component]),\n )\n const components: GranularComponentDescriptor[] = [\n ...baseComponents.map(component => overrideByName.get(component.name) ?? component),\n ...overrides.filter(component => !baseComponents.some(base => base.name === component.name)),\n ]\n\n return defineGranularProvider({\n id: GRANULARITY_PROVIDER_ID,\n contractVersion: 1,\n packageBaseUrl,\n components,\n theme,\n })\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAa,iBAAiB,wBAAwB,OAAO,KAAK,KAAK;CACrE,MAAM;CACN,cAAc,CAAC,YAAY,UAAU;CACrC,UAAU;CACX,CAAC;;;ACNF,IAAa,8BAA8B,wBAAwB,OAAO,KAAK,KAAK;CAClF,MAAM;CACN,cAAc,CAAC,WAAW,WAAW;CACtC,CAAC;;;;ACsEF,IAAa,0BAA0B;AAKvC,IAAM,iBAAiB,GAAG,OAAO,KAAK,IAAI,MACxC,GACA,OAAO,KAAK,IAAI,YAAY,KAAK,OAAO,KAAK,IAAI,YAAY,IAAI,GAAG,EAAE,GAAG,EAC1E;;AAGD,IAAa,wBAAwB,CAAC,SAAS,OAAO;;AAItD,IAAa,2BAA4D,CAAC,QAAQ;AAElF,IAAM,QAAQ;CACZ,YAAY,IAAA,IAAA,i2BAAA,KAAA,OAAA,KAAA,IAA8C,CAAC;CAC3D,cAAc,IAAA,IAAA,iuKAAA,KAAA,OAAA,KAAA,IAAgD,CAAC;CAC/D,QAAQ;EACN,OAAO,IAAA,IAAA,qrGAAA,KAAA,OAAA,KAAA,IAAsD,CAAC;EAC9D,MAAM,IAAA,IAAA,qxGAAA,KAAA,OAAA,KAAA,IAAqD,CAAC;EAC7D;CACD,eAAe;CAChB;;;;;;;;;;;;;;;;;AAkBD,IAAa,8BAA8B;CACzC,SAAS;CACT,UAAU;CACV,SAAS;CACT,aAAa;CACb,aAAa;CACb,UAAU;CACV,eAAe;CACf,QAAQ;CACR,YAAY;CACZ,YAAY;CACZ,iBAAiB;CACjB,aAAa;CACb,UAAU;CACV,UAAU;CACV,YAAY;CACZ,gBAAgB;CAChB,cAAc;CACd,cAAc;CACd,aAAa;CACb,YAAY;CACZ,eAAe;CACf,QAAQ;CACR,eAAe;CACf,SAAS;CACT,YAAY;CACZ,QAAQ;CACR,QAAQ;CACR,WAAW;CACX,SAAS;CACT,UAAU;CACV,eAAe;CACf,cAAc;CACd,eAAe;CACf,gBAAgB;CAChB,SAAS;CACT,cAAc;CACd,uBAAuB;CACvB,aAAa;CACb,UAAU;CACV,WAAW;CACX,YAAY;CACZ,UAAU;CACV,SAAS;CACT,QAAQ;CACR,YAAY;CACZ,WAAW;CACX,WAAW;CACX,QAAQ;CACR,cAAc;CACf;;AAKD,IAAM,iBAAyD,OAAO,OACpE,4BACD;;;;;;;;;;AAWD,SAAgB,0BACd,YAAoD,EAAE,EACpC;CAClB,MAAM,iBAAiB,IAAI,IACzB,UAAU,KAAI,cAAa,CAAC,UAAU,MAAM,UAAU,CAAC,CACxD;AAMD,QAAO,uBAAuB;EAC5B,IAAI;EACJ,iBAAiB;EACjB;EACA,YATgD,CAChD,GAAG,eAAe,KAAI,cAAa,eAAe,IAAI,UAAU,KAAK,IAAI,UAAU,EACnF,GAAG,UAAU,QAAO,cAAa,CAAC,eAAe,MAAK,SAAQ,KAAK,SAAS,UAAU,KAAK,CAAC,CAC7F;EAOC;EACD,CAAC"}
1
+ {"version":3,"file":"shared-DpjTvFno.js","names":[],"sources":["../../src/components/GrDialog/config.ts","../../src/components/GrResponseErrorBanner/config.ts","../../src/granular-provider/shared.ts"],"sourcesContent":["import {defineGranularComponent} from '@feugene/unocss-preset-granular/contract'\n\nimport { grDialogSafelist } from './safelist'\n\nexport const grDialogConfig = defineGranularComponent(import.meta.url, {\n name: 'GrDialog',\n dependencies: ['GrButton', 'GrModal'],\n safelist: grDialogSafelist,\n})\n","import { defineGranularComponent } from '@feugene/unocss-preset-granular/contract'\n\nexport const grResponseErrorBannerConfig = defineGranularComponent(import.meta.url, {\n name: 'GrResponseErrorBanner',\n dependencies: ['GrAlert', 'GrButton'],\n})\n","// Общий код browser- и node-entry granular-provider'а.\n//\n// Оба entry (`./index.ts`, `./node.ts`) отличаются только списком\n// компонентов, у которых есть node-only вариант конфига (например,\n// `GrButton`, чей `config.node.ts` использует `tokenDefinitionsFromCssSync`\n// и тянет `node:fs`). Browser-вариант таких компонентов берёт облегчённый\n// `./config.ts`, node-вариант — `./config.node.ts`. Всё остальное — `id`,\n// `theme.*`, `packageBaseUrl` и полный список browser-safe компонентов —\n// живёт здесь.\n//\n// ВАЖНО: все `new URL('../styles/...', import.meta.url)` намеренно находятся\n// здесь — `shared.ts` лежит в той же директории, что и `index.ts` / `node.ts`,\n// поэтому относительные пути идентичны. Это ОК для браузера: бандлеры\n// транслируют такие конструкции в статические asset-URL и `node:*` в бандл\n// не утаскивают.\n//\n// Ключи записи `<Name>: ds<Name>Config` в `granularityComponentConfigs`\n// критичны для regex‑парсинга в `apps/showcase/scripts/generate-component-api.mjs`,\n// не ломайте формат.\nimport {\n defineGranularProvider,\n type GranularComponentDescriptor,\n type GranularProvider,\n} from '@feugene/unocss-preset-granular/contract'\nimport { grAlertConfig } from '../components/GrAlert/config'\nimport { grAvatarConfig } from '../components/GrAvatar/config'\nimport { grBadgeConfig } from '../components/GrBadge/config'\nimport { grBadgeWrapConfig } from '../components/GrBadgeWrap/config'\nimport { grBottomNavConfig } from '../components/GrBottomNav/config'\nimport { grButtonConfig } from '../components/GrButton/config'\nimport { grButtonGroupConfig } from '../components/GrButtonGroup/config'\nimport { grCardConfig } from '../components/GrCard/config'\nimport { grCheckboxConfig } from '../components/GrCheckbox/config'\nimport { grCollapseConfig } from '../components/GrCollapse/config'\nimport { grConfirmDialogConfig } from '../components/GrConfirmDialog/config'\nimport { grDataTableConfig } from '../components/GrDataTable/config'\nimport { grDialogConfig } from '../components/GrDialog/config'\nimport { grDrawerConfig } from '../components/GrDrawer/config'\nimport { grDropdownConfig } from '../components/GrDropdown/config'\nimport { grDropdownMenuConfig } from '../components/GrDropdownMenu/config'\nimport { grEmptyStateConfig } from '../components/GrEmptyState/config'\nimport { grFileUploadConfig } from '../components/GrFileUpload/config'\nimport { grFormFieldConfig } from '../components/GrFormField/config'\nimport { grFormFileConfig } from '../components/GrFormFile/config'\nimport { grFormSectionConfig } from '../components/GrFormSection/config'\nimport { grIconConfig } from '../components/GrIcon/config'\nimport { grImageViewerConfig } from '../components/GrImageViewer/config'\nimport { grInputConfig } from '../components/GrInput/config'\nimport { grInputTagConfig } from '../components/GrInputTag/config'\nimport { grLinkConfig } from '../components/GrLink/config'\nimport { grListConfig } from '../components/GrList/config'\nimport { grLoadingConfig } from '../components/GrLoading/config'\nimport { grModalConfig } from '../components/GrModal/config'\nimport { grNavbarConfig } from '../components/GrNavbar/config'\nimport { grNumberInputConfig } from '../components/GrNumberInput/config'\nimport { grPaginationConfig } from '../components/GrPagination/config'\nimport { grProgressBarConfig } from '../components/GrProgressBar/config'\nimport { grPromptDialogConfig } from '../components/GrPromptDialog/config'\nimport { grRadioConfig } from '../components/GrRadio/config'\nimport { grRadioGroupConfig } from '../components/GrRadioGroup/config'\nimport { grResponseErrorBannerConfig } from '../components/GrResponseErrorBanner/config'\nimport { grSegmentedConfig } from '../components/GrSegmented/config'\nimport { grSelectConfig } from '../components/GrSelect/config'\nimport { grSidebarConfig } from '../components/GrSidebar/config'\nimport { grSkeletonConfig } from '../components/GrSkeleton/config'\nimport { grSwitchConfig } from '../components/GrSwitch/config'\nimport { grTableConfig } from '../components/GrTable/config'\nimport { grTabsConfig } from '../components/GrTabs/config'\nimport { grTextareaConfig } from '../components/GrTextarea/config'\nimport { grToasterConfig } from '../components/GrToaster/config'\nimport { grTooltipConfig } from '../components/GrTooltip/config'\nimport { grTreeConfig } from '../components/GrTree/config'\nimport { grTreeSelectConfig } from '../components/GrTreeSelect/config'\n\n/** Идентификатор провайдера — совпадает с именем пакета. */\nexport const GRANULARITY_PROVIDER_ID = '@feugene/granularity'\n\n// runtime-concat: литерал `new URL('..', import.meta.url)` rolldown заменяет\n// на `data:`-URL, поэтому собираем корень пакета из `import.meta.url` вручную\n// (отрезая два последних сегмента: имя файла и каталог `granular-provider/`).\nconst packageBaseUrl = `${import.meta.url.slice(\n 0,\n import.meta.url.lastIndexOf('/', import.meta.url.lastIndexOf('/') - 1) + 1,\n)}`\n\n/** Встроенные темы пакета. Единственный источник правды о списке тем. */\nexport const granularityThemeNames = ['light', 'dark'] as const\nexport type GranularityThemeName = (typeof granularityThemeNames)[number]\n\n/** Темы, активные по умолчанию, если окружение не переопределяет выбор. */\nexport const granularityDefaultThemes: readonly GranularityThemeName[] = ['light']\n\nconst theme = {\n baseCssUrl: new URL('../styles/base.css', import.meta.url).href,\n tokensCssUrl: new URL('../styles/tokens.css', import.meta.url).href,\n themes: {\n light: new URL('../styles/themes/light.css', import.meta.url).href,\n dark: new URL('../styles/themes/dark.css', import.meta.url).href,\n },\n defaultThemes: granularityDefaultThemes,\n} as const\n\n/**\n * Полный реестр публичных компонентов пакета `@feugene/granularity`.\n *\n * Ключи — имена компонентов (совпадают с публичным subpath‑экспортом\n * `@feugene/granularity/components/<Name>`). Значения — browser‑safe\n * `ds<Name>Config` из `./config.ts` рядом с SFC.\n *\n * Для компонентов, у которых есть node-only вариант конфига\n * (например, `GrButton` с `tokenDefinitionsFromCssSync`), browser‑конфиг\n * остаётся здесь, а node‑вариант подставляется снаружи через\n * `createGranularityProvider(overrides)` — см. `./index.ts` (browser)\n * и `./node.ts` (node).\n *\n * Формат записи `<Name>: ds<Name>Config` критичен для regex‑парсинга\n * в `apps/showcase/scripts/generate-component-api.mjs`, не ломайте его.\n */\nexport const granularityComponentConfigs = {\n GrAlert: grAlertConfig,\n GrAvatar: grAvatarConfig,\n GrBadge: grBadgeConfig,\n GrBadgeWrap: grBadgeWrapConfig,\n GrBottomNav: grBottomNavConfig,\n GrButton: grButtonConfig,\n GrButtonGroup: grButtonGroupConfig,\n GrCard: grCardConfig,\n GrCheckbox: grCheckboxConfig,\n GrCollapse: grCollapseConfig,\n GrConfirmDialog: grConfirmDialogConfig,\n GrDataTable: grDataTableConfig,\n GrDialog: grDialogConfig,\n GrDrawer: grDrawerConfig,\n GrDropdown: grDropdownConfig,\n GrDropdownMenu: grDropdownMenuConfig,\n GrEmptyState: grEmptyStateConfig,\n GrFileUpload: grFileUploadConfig,\n GrFormField: grFormFieldConfig,\n GrFormFile: grFormFileConfig,\n GrFormSection: grFormSectionConfig,\n GrIcon: grIconConfig,\n GrImageViewer: grImageViewerConfig,\n GrInput: grInputConfig,\n GrInputTag: grInputTagConfig,\n GrLink: grLinkConfig,\n GrList: grListConfig,\n GrLoading: grLoadingConfig,\n GrModal: grModalConfig,\n GrNavbar: grNavbarConfig,\n GrNumberInput: grNumberInputConfig,\n GrPagination: grPaginationConfig,\n GrProgressBar: grProgressBarConfig,\n GrPromptDialog: grPromptDialogConfig,\n GrRadio: grRadioConfig,\n GrRadioGroup: grRadioGroupConfig,\n GrResponseErrorBanner: grResponseErrorBannerConfig,\n GrSegmented: grSegmentedConfig,\n GrSelect: grSelectConfig,\n GrSidebar: grSidebarConfig,\n GrSkeleton: grSkeletonConfig,\n GrSwitch: grSwitchConfig,\n GrTable: grTableConfig,\n GrTabs: grTabsConfig,\n GrTextarea: grTextareaConfig,\n GrToaster: grToasterConfig,\n GrTooltip: grTooltipConfig,\n GrTree: grTreeConfig,\n GrTreeSelect: grTreeSelectConfig,\n}\n\nexport type GranularityComponentName = keyof typeof granularityComponentConfigs\n\n/** Базовый (browser-safe) набор компонентов в порядке реестра. */\nconst baseComponents: readonly GranularComponentDescriptor[] = Object.values(\n granularityComponentConfigs,\n)\n\n/**\n * Собирает granular-provider пакета `@feugene/granularity`.\n *\n * Принимает массив `GranularComponentDescriptor`'ов — это компоненты,\n * у которых есть node-only вариант конфига (например, `GrButton` с\n * `tokenDefinitionsFromCssSync`). Дескрипторы с именем, которое уже\n * присутствует в базовом наборе, переопределяют его (побеждает\n * переданный снаружи), остальные — добавляются в конец списка.\n */\nexport function createGranularityProvider(\n overrides: readonly GranularComponentDescriptor[] = [],\n): GranularProvider {\n const overrideByName = new Map(\n overrides.map(component => [component.name, component]),\n )\n const components: GranularComponentDescriptor[] = [\n ...baseComponents.map(component => overrideByName.get(component.name) ?? component),\n ...overrides.filter(component => !baseComponents.some(base => base.name === component.name)),\n ]\n\n return defineGranularProvider({\n id: GRANULARITY_PROVIDER_ID,\n contractVersion: 1,\n packageBaseUrl,\n components,\n theme,\n })\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAa,iBAAiB,wBAAwB,OAAO,KAAK,KAAK;CACrE,MAAM;CACN,cAAc,CAAC,YAAY,UAAU;CACrC,UAAU;CACX,CAAC;;;ACNF,IAAa,8BAA8B,wBAAwB,OAAO,KAAK,KAAK;CAClF,MAAM;CACN,cAAc,CAAC,WAAW,WAAW;CACtC,CAAC;;;;ACsEF,IAAa,0BAA0B;AAKvC,IAAM,iBAAiB,GAAG,OAAO,KAAK,IAAI,MACxC,GACA,OAAO,KAAK,IAAI,YAAY,KAAK,OAAO,KAAK,IAAI,YAAY,IAAI,GAAG,EAAE,GAAG,EAC1E;;AAGD,IAAa,wBAAwB,CAAC,SAAS,OAAO;;AAItD,IAAa,2BAA4D,CAAC,QAAQ;AAElF,IAAM,QAAQ;CACZ,YAAY,IAAA,IAAA,i2BAAA,KAAA,OAAA,KAAA,IAA8C,CAAC;CAC3D,cAAc,IAAA,IAAA,y2NAAA,KAAA,OAAA,KAAA,IAAgD,CAAC;CAC/D,QAAQ;EACN,OAAO,IAAA,IAAA,qrGAAA,KAAA,OAAA,KAAA,IAAsD,CAAC;EAC9D,MAAM,IAAA,IAAA,qxGAAA,KAAA,OAAA,KAAA,IAAqD,CAAC;EAC7D;CACD,eAAe;CAChB;;;;;;;;;;;;;;;;;AAkBD,IAAa,8BAA8B;CACzC,SAAS;CACT,UAAU;CACV,SAAS;CACT,aAAa;CACb,aAAa;CACb,UAAU;CACV,eAAe;CACf,QAAQ;CACR,YAAY;CACZ,YAAY;CACZ,iBAAiB;CACjB,aAAa;CACb,UAAU;CACV,UAAU;CACV,YAAY;CACZ,gBAAgB;CAChB,cAAc;CACd,cAAc;CACd,aAAa;CACb,YAAY;CACZ,eAAe;CACf,QAAQ;CACR,eAAe;CACf,SAAS;CACT,YAAY;CACZ,QAAQ;CACR,QAAQ;CACR,WAAW;CACX,SAAS;CACT,UAAU;CACV,eAAe;CACf,cAAc;CACd,eAAe;CACf,gBAAgB;CAChB,SAAS;CACT,cAAc;CACd,uBAAuB;CACvB,aAAa;CACb,UAAU;CACV,WAAW;CACX,YAAY;CACZ,UAAU;CACV,SAAS;CACT,QAAQ;CACR,YAAY;CACZ,WAAW;CACX,WAAW;CACX,QAAQ;CACR,cAAc;CACf;;AAKD,IAAM,iBAAyD,OAAO,OACpE,4BACD;;;;;;;;;;AAWD,SAAgB,0BACd,YAAoD,EAAE,EACpC;CAClB,MAAM,iBAAiB,IAAI,IACzB,UAAU,KAAI,cAAa,CAAC,UAAU,MAAM,UAAU,CAAC,CACxD;AAMD,QAAO,uBAAuB;EAC5B,IAAI;EACJ,iBAAiB;EACjB;EACA,YATgD,CAChD,GAAG,eAAe,KAAI,cAAa,eAAe,IAAI,UAAU,KAAK,IAAI,UAAU,EACnF,GAAG,UAAU,QAAO,cAAa,CAAC,eAAe,MAAK,SAAQ,KAAK,SAAS,UAAU,KAAK,CAAC,CAC7F;EAOC;EACD,CAAC"}