@feugene/granularity 0.4.0 → 0.4.1

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 (424) hide show
  1. package/dist/chunks/_plugin-vue_export-helper-BG_EqiDU.js +8 -0
  2. package/dist/chunks/adapter-C7fKeUa4.js +6 -0
  3. package/dist/chunks/adapter-C7fKeUa4.js.map +1 -0
  4. package/dist/chunks/arrow-up-DNXrMoAI.js +25 -0
  5. package/dist/chunks/arrow-up-DNXrMoAI.js.map +1 -0
  6. package/dist/chunks/classTokens-BPeBXNzu.js +8 -0
  7. package/dist/chunks/classTokens-BPeBXNzu.js.map +1 -0
  8. package/dist/chunks/config-2wgwWaAB.js +10 -0
  9. package/dist/chunks/config-2wgwWaAB.js.map +1 -0
  10. package/dist/chunks/config-BKRmlivc.js +10 -0
  11. package/dist/chunks/config-BKRmlivc.js.map +1 -0
  12. package/dist/chunks/config-BRU5PR8_.js +10 -0
  13. package/dist/chunks/config-BRU5PR8_.js.map +1 -0
  14. package/dist/chunks/config-BUGfFjmC.js +16 -0
  15. package/dist/chunks/config-BUGfFjmC.js.map +1 -0
  16. package/dist/chunks/config-BXffa3ta.js +60 -0
  17. package/dist/chunks/config-BXffa3ta.js.map +1 -0
  18. package/dist/chunks/config-BaMO9dQh.js +22 -0
  19. package/dist/chunks/config-BaMO9dQh.js.map +1 -0
  20. package/dist/chunks/config-BbtK511H.js +11 -0
  21. package/dist/chunks/config-BbtK511H.js.map +1 -0
  22. package/dist/chunks/config-BcFOkUhh.js +15 -0
  23. package/dist/chunks/config-BcFOkUhh.js.map +1 -0
  24. package/dist/chunks/config-BcpRsZTe.js +10 -0
  25. package/dist/chunks/config-BcpRsZTe.js.map +1 -0
  26. package/dist/chunks/config-BhubOeci.js +15 -0
  27. package/dist/chunks/config-BhubOeci.js.map +1 -0
  28. package/dist/chunks/config-BhvNm4Pp.js +173 -0
  29. package/dist/chunks/config-BhvNm4Pp.js.map +1 -0
  30. package/dist/chunks/config-Bv2G0OU6.js +10 -0
  31. package/dist/chunks/config-Bv2G0OU6.js.map +1 -0
  32. package/dist/chunks/config-Bv5Dok4j.js +41 -0
  33. package/dist/chunks/config-Bv5Dok4j.js.map +1 -0
  34. package/dist/chunks/config-BzQ4S4Hb.js +11 -0
  35. package/dist/chunks/config-BzQ4S4Hb.js.map +1 -0
  36. package/dist/chunks/config-BzZGpWsj.js +11 -0
  37. package/dist/chunks/config-BzZGpWsj.js.map +1 -0
  38. package/dist/chunks/config-C0b_3LJV.js +42 -0
  39. package/dist/chunks/config-C0b_3LJV.js.map +1 -0
  40. package/dist/chunks/config-C2JKq8-2.js +60 -0
  41. package/dist/chunks/config-C2JKq8-2.js.map +1 -0
  42. package/dist/chunks/config-C6SBJxcH.js +10 -0
  43. package/dist/chunks/config-C6SBJxcH.js.map +1 -0
  44. package/dist/chunks/config-CJbjLC5X.js +55 -0
  45. package/dist/chunks/config-CJbjLC5X.js.map +1 -0
  46. package/dist/chunks/config-CJeyaUTp.js +40 -0
  47. package/dist/chunks/config-CJeyaUTp.js.map +1 -0
  48. package/dist/chunks/config-CMZE2fu0.js +11 -0
  49. package/dist/chunks/config-CMZE2fu0.js.map +1 -0
  50. package/dist/chunks/config-CU_CBd0k.js +24 -0
  51. package/dist/chunks/config-CU_CBd0k.js.map +1 -0
  52. package/dist/chunks/config-CYPU3ztl.js +26 -0
  53. package/dist/chunks/config-CYPU3ztl.js.map +1 -0
  54. package/dist/chunks/config-CcmeMlic.js +19 -0
  55. package/dist/chunks/config-CcmeMlic.js.map +1 -0
  56. package/dist/chunks/config-CdAx6ify2.js +11 -0
  57. package/dist/chunks/config-CdAx6ify2.js.map +1 -0
  58. package/dist/chunks/config-CxCAfXZ1.js +23 -0
  59. package/dist/chunks/config-CxCAfXZ1.js.map +1 -0
  60. package/dist/chunks/config-D1gSaT52.js +11 -0
  61. package/dist/chunks/config-D1gSaT52.js.map +1 -0
  62. package/dist/chunks/config-D7iuXJbl.js +11 -0
  63. package/dist/chunks/config-D7iuXJbl.js.map +1 -0
  64. package/dist/chunks/config-D7tRu8u3.js +11 -0
  65. package/dist/chunks/config-D7tRu8u3.js.map +1 -0
  66. package/dist/chunks/config-DBYCntwl.js +10 -0
  67. package/dist/chunks/config-DBYCntwl.js.map +1 -0
  68. package/dist/chunks/config-DFRYOcrP.js +11 -0
  69. package/dist/chunks/config-DFRYOcrP.js.map +1 -0
  70. package/dist/chunks/config-DW_RqmUp.js +10 -0
  71. package/dist/chunks/config-DW_RqmUp.js.map +1 -0
  72. package/dist/chunks/config-Dkq0HeLe.js +11 -0
  73. package/dist/chunks/config-Dkq0HeLe.js.map +1 -0
  74. package/dist/chunks/config-DlLE49_I.js +11 -0
  75. package/dist/chunks/config-DlLE49_I.js.map +1 -0
  76. package/dist/chunks/config-DvTUDLT1.js +46 -0
  77. package/dist/chunks/config-DvTUDLT1.js.map +1 -0
  78. package/dist/chunks/config-DwB5-qdP2.js +10 -0
  79. package/dist/chunks/config-DwB5-qdP2.js.map +1 -0
  80. package/dist/chunks/config-DxqMXzNV2.js +25 -0
  81. package/dist/chunks/config-DxqMXzNV2.js.map +1 -0
  82. package/dist/chunks/config-DxqpV-KM.js +47 -0
  83. package/dist/chunks/config-DxqpV-KM.js.map +1 -0
  84. package/dist/chunks/config-Dzz9P-GV2.js +11 -0
  85. package/dist/chunks/config-Dzz9P-GV2.js.map +1 -0
  86. package/dist/chunks/config-KGTIAFD92.js +10 -0
  87. package/dist/chunks/config-KGTIAFD92.js.map +1 -0
  88. package/dist/chunks/config-TyzU6gLf.js +10 -0
  89. package/dist/chunks/config-TyzU6gLf.js.map +1 -0
  90. package/dist/chunks/config-cn6knwud.js +37 -0
  91. package/dist/chunks/config-cn6knwud.js.map +1 -0
  92. package/dist/chunks/config-dD6Po-Cq.js +10 -0
  93. package/dist/chunks/config-dD6Po-Cq.js.map +1 -0
  94. package/dist/chunks/config-rFwazRKi.js +11 -0
  95. package/dist/chunks/config-rFwazRKi.js.map +1 -0
  96. package/dist/chunks/config-rQlbnEKn.js +10 -0
  97. package/dist/chunks/config-rQlbnEKn.js.map +1 -0
  98. package/dist/chunks/config-rxFL-6yF2.js +80 -0
  99. package/dist/chunks/config-rxFL-6yF2.js.map +1 -0
  100. package/dist/chunks/config-ug8O8epd.js +13 -0
  101. package/dist/chunks/config-ug8O8epd.js.map +1 -0
  102. package/dist/chunks/dialogShared-BtXUk6Zc.js +34 -0
  103. package/dist/chunks/dialogShared-BtXUk6Zc.js.map +1 -0
  104. package/dist/chunks/directives-Cuib0yOO.js +728 -0
  105. package/dist/chunks/directives-Cuib0yOO.js.map +1 -0
  106. package/dist/chunks/en-BMjJZttK.js +50 -0
  107. package/dist/chunks/en-BMjJZttK.js.map +1 -0
  108. package/dist/chunks/es-Cu_RlgIr.js +22 -0
  109. package/dist/chunks/es-Cu_RlgIr.js.map +1 -0
  110. package/dist/chunks/es-EYCf8G_1.js +50 -0
  111. package/dist/chunks/es-EYCf8G_1.js.map +1 -0
  112. package/dist/chunks/fileValidation-CgjTGoUx.js +221 -0
  113. package/dist/chunks/fileValidation-CgjTGoUx.js.map +1 -0
  114. package/dist/chunks/{grBadgeStyles-Bu4H8bFc.js → grBadgeStyles-pqqbVgLk.js} +20 -13
  115. package/dist/chunks/grBadgeStyles-pqqbVgLk.js.map +1 -0
  116. package/dist/chunks/{grButtonStyles-C5k0bN2e.js → grButtonStyles-BxZW2x0-.js} +62 -52
  117. package/dist/chunks/grButtonStyles-BxZW2x0-.js.map +1 -0
  118. package/dist/chunks/grDropdownStyles-DQfLh-bp.js +34 -0
  119. package/dist/chunks/grDropdownStyles-DQfLh-bp.js.map +1 -0
  120. package/dist/chunks/grLoadingStyles-CERsxyk9.js +19 -0
  121. package/dist/chunks/grLoadingStyles-CERsxyk9.js.map +1 -0
  122. package/dist/chunks/grModalStyles-Dv2NXBKi.js +49 -0
  123. package/dist/chunks/grModalStyles-Dv2NXBKi.js.map +1 -0
  124. package/dist/chunks/grSelectStyles-C1zNEkV7.js +52 -0
  125. package/dist/chunks/grSelectStyles-C1zNEkV7.js.map +1 -0
  126. package/dist/chunks/granularityI18n-BEWP9aJs.js +28 -0
  127. package/dist/chunks/granularityI18n-BEWP9aJs.js.map +1 -0
  128. package/dist/chunks/info-C0bHmdZq.js +28 -0
  129. package/dist/chunks/info-C0bHmdZq.js.map +1 -0
  130. package/dist/chunks/loader-circle-B2rWDk5u.js +25 -0
  131. package/dist/chunks/loader-circle-B2rWDk5u.js.map +1 -0
  132. package/dist/chunks/ru-DKswMSdd.js +50 -0
  133. package/dist/chunks/ru-DKswMSdd.js.map +1 -0
  134. package/dist/chunks/safelist-BF822K15.js +15 -0
  135. package/dist/chunks/safelist-BF822K15.js.map +1 -0
  136. package/dist/chunks/safelist-BY7z8fOl.js +26 -0
  137. package/dist/chunks/safelist-BY7z8fOl.js.map +1 -0
  138. package/dist/chunks/{shared-BqUqjuxn.js → shared-Bvjkhhm2.js} +151 -111
  139. package/dist/chunks/shared-Bvjkhhm2.js.map +1 -0
  140. package/dist/chunks/transition-mJ3PZCHH.js +1694 -0
  141. package/dist/chunks/transition-mJ3PZCHH.js.map +1 -0
  142. package/dist/chunks/x-Pa6C2hwi.js +25 -0
  143. package/dist/chunks/x-Pa6C2hwi.js.map +1 -0
  144. package/dist/chunks/x-circle-DQSlBLmX.js +69 -0
  145. package/dist/chunks/x-circle-DQSlBLmX.js.map +1 -0
  146. package/dist/components/GrAlert/chunks/GrAlert-BjerGcU8.js +148 -0
  147. package/dist/components/GrAlert/chunks/GrAlert-BjerGcU8.js.map +1 -0
  148. package/dist/components/GrAlert/index.js +3 -3
  149. package/dist/components/GrAvatar/chunks/GrAvatar-BjnPKNAL.js +43 -0
  150. package/dist/components/GrAvatar/chunks/GrAvatar-BjnPKNAL.js.map +1 -0
  151. package/dist/components/GrAvatar/index.js +3 -3
  152. package/dist/components/GrBadge/chunks/GrBadge-wuIb4_2K.js +34 -0
  153. package/dist/components/GrBadge/chunks/GrBadge-wuIb4_2K.js.map +1 -0
  154. package/dist/components/GrBadge/index.js +3 -3
  155. package/dist/components/GrBadgeWrap/chunks/GrBadgeWrap-CxtamOZ-.js +35 -0
  156. package/dist/components/GrBadgeWrap/chunks/GrBadgeWrap-CxtamOZ-.js.map +1 -0
  157. package/dist/components/GrBadgeWrap/index.js +3 -3
  158. package/dist/components/GrBottomNav/chunks/GrBottomNav-CsmQ7mTJ.js +33 -0
  159. package/dist/components/GrBottomNav/chunks/GrBottomNav-CsmQ7mTJ.js.map +1 -0
  160. package/dist/components/GrBottomNav/index.js +3 -3
  161. package/dist/components/GrButton/chunks/GrButton-BmGdp8-4.js +85 -0
  162. package/dist/components/GrButton/chunks/GrButton-BmGdp8-4.js.map +1 -0
  163. package/dist/components/GrButton/index.js +5 -5
  164. package/dist/components/GrButtonGroup/chunks/GrButtonGroup-CBj4tpms.js +23 -0
  165. package/dist/components/GrButtonGroup/chunks/GrButtonGroup-CBj4tpms.js.map +1 -0
  166. package/dist/components/GrButtonGroup/index.js +3 -3
  167. package/dist/components/GrCard/chunks/GrCard-xtDcXBr7.js +13 -0
  168. package/dist/components/GrCard/chunks/GrCard-xtDcXBr7.js.map +1 -0
  169. package/dist/components/GrCard/index.js +3 -3
  170. package/dist/components/GrCheckbox/chunks/GrCheckbox-Bt3d7ckE.js +136 -0
  171. package/dist/components/GrCheckbox/chunks/GrCheckbox-Bt3d7ckE.js.map +1 -0
  172. package/dist/components/GrCheckbox/index.js +3 -3
  173. package/dist/components/GrCollapse/chunks/GrCollapse-HU20VTVn.js +207 -0
  174. package/dist/components/GrCollapse/chunks/GrCollapse-HU20VTVn.js.map +1 -0
  175. package/dist/components/GrCollapse/index.js +3 -3
  176. package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-DjGOX9Hd.js +133 -0
  177. package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-DjGOX9Hd.js.map +1 -0
  178. package/dist/components/GrConfirmDialog/index.js +3 -3
  179. package/dist/components/GrDataTable/chunks/GrDataTable-QDOJWmdY.js +181 -0
  180. package/dist/components/GrDataTable/chunks/GrDataTable-QDOJWmdY.js.map +1 -0
  181. package/dist/components/GrDataTable/index.js +3 -3
  182. package/dist/components/GrDialog/chunks/GrDialog-gObmaVEl.js +223 -0
  183. package/dist/components/GrDialog/chunks/GrDialog-gObmaVEl.js.map +1 -0
  184. package/dist/components/GrDialog/index.js +4 -4
  185. package/dist/components/GrDrawer/chunks/GrDrawer-BJL_gTxI.js +158 -0
  186. package/dist/components/GrDrawer/chunks/GrDrawer-BJL_gTxI.js.map +1 -0
  187. package/dist/components/GrDrawer/index.js +3 -3
  188. package/dist/components/GrDropdown/chunks/GrDropdown-DVTU32T_.js +153 -0
  189. package/dist/components/GrDropdown/chunks/GrDropdown-DVTU32T_.js.map +1 -0
  190. package/dist/components/GrDropdown/index.js +3 -3
  191. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-fePQRcgh.js +311 -0
  192. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-fePQRcgh.js.map +1 -0
  193. package/dist/components/GrDropdownMenu/index.js +3 -3
  194. package/dist/components/GrEmptyState/chunks/GrEmptyState-Bs8d3tgb.js +64 -0
  195. package/dist/components/GrEmptyState/chunks/GrEmptyState-Bs8d3tgb.js.map +1 -0
  196. package/dist/components/GrEmptyState/index.js +3 -3
  197. package/dist/components/GrFileUpload/chunks/GrFileUpload-DVv8yXpl.js +370 -0
  198. package/dist/components/GrFileUpload/chunks/GrFileUpload-DVv8yXpl.js.map +1 -0
  199. package/dist/components/GrFileUpload/index.js +4 -4
  200. package/dist/components/GrFormField/chunks/GrFormField-BzezYcS8.js +37 -0
  201. package/dist/components/GrFormField/chunks/GrFormField-BzezYcS8.js.map +1 -0
  202. package/dist/components/GrFormField/index.js +3 -3
  203. package/dist/components/GrFormFile/chunks/GrFormFile-DtZOypJW.js +315 -0
  204. package/dist/components/GrFormFile/chunks/GrFormFile-DtZOypJW.js.map +1 -0
  205. package/dist/components/GrFormFile/index.js +3 -3
  206. package/dist/components/GrFormSection/chunks/GrFormSection-BIPB1RIk.js +37 -0
  207. package/dist/components/GrFormSection/chunks/GrFormSection-BIPB1RIk.js.map +1 -0
  208. package/dist/components/GrFormSection/index.js +3 -3
  209. package/dist/components/GrIcon/chunks/GrIcon-BV7RBU_0.js +34 -0
  210. package/dist/components/GrIcon/chunks/GrIcon-BV7RBU_0.js.map +1 -0
  211. package/dist/components/GrIcon/index.js +3 -3
  212. package/dist/components/GrImageViewer/chunks/GrImageViewer-fn8ilJTA.js +399 -0
  213. package/dist/components/GrImageViewer/chunks/GrImageViewer-fn8ilJTA.js.map +1 -0
  214. package/dist/components/GrImageViewer/index.js +3 -3
  215. package/dist/components/GrInput/chunks/GrInput-DLLRrH1A.js +213 -0
  216. package/dist/components/GrInput/chunks/GrInput-DLLRrH1A.js.map +1 -0
  217. package/dist/components/GrInput/index.js +3 -3
  218. package/dist/components/GrInputTag/chunks/GrInputTag-CzrrBxgU.js +259 -0
  219. package/dist/components/GrInputTag/chunks/GrInputTag-CzrrBxgU.js.map +1 -0
  220. package/dist/components/GrInputTag/index.js +3 -3
  221. package/dist/components/GrLink/chunks/GrLink-Dhkid3Mp.js +82 -0
  222. package/dist/components/GrLink/chunks/GrLink-Dhkid3Mp.js.map +1 -0
  223. package/dist/components/GrLink/index.js +3 -3
  224. package/dist/components/GrList/chunks/GrList-CjgeVjhY.js +79 -0
  225. package/dist/components/GrList/chunks/GrList-CjgeVjhY.js.map +1 -0
  226. package/dist/components/GrList/index.js +3 -3
  227. package/dist/components/GrLoading/chunks/GrLoading-DihGX3ol.js +71 -0
  228. package/dist/components/GrLoading/chunks/GrLoading-DihGX3ol.js.map +1 -0
  229. package/dist/components/GrLoading/index.js +3 -3
  230. package/dist/components/GrModal/chunks/GrModal-gvfvlp7k.js +170 -0
  231. package/dist/components/GrModal/chunks/GrModal-gvfvlp7k.js.map +1 -0
  232. package/dist/components/GrModal/index.js +4 -4
  233. package/dist/components/GrNavbar/chunks/GrNavbar-CQOAfO6y.js +77 -0
  234. package/dist/components/GrNavbar/chunks/GrNavbar-CQOAfO6y.js.map +1 -0
  235. package/dist/components/GrNavbar/index.js +3 -3
  236. package/dist/components/GrNumberInput/chunks/GrNumberInput-CyHgUotG.js +399 -0
  237. package/dist/components/GrNumberInput/chunks/GrNumberInput-CyHgUotG.js.map +1 -0
  238. package/dist/components/GrNumberInput/index.js +3 -3
  239. package/dist/components/GrPagination/chunks/GrPagination-C5cxRJsF.js +116 -0
  240. package/dist/components/GrPagination/chunks/GrPagination-C5cxRJsF.js.map +1 -0
  241. package/dist/components/GrPagination/index.js +3 -3
  242. package/dist/components/GrProgressBar/chunks/GrProgressBar-C9wAAFxR.js +41 -0
  243. package/dist/components/GrProgressBar/chunks/GrProgressBar-C9wAAFxR.js.map +1 -0
  244. package/dist/components/GrProgressBar/index.js +3 -3
  245. package/dist/components/GrPromptDialog/chunks/GrPromptDialog-Cfq9bvL3.js +192 -0
  246. package/dist/components/GrPromptDialog/chunks/GrPromptDialog-Cfq9bvL3.js.map +1 -0
  247. package/dist/components/GrPromptDialog/index.js +3 -3
  248. package/dist/components/GrRadio/chunks/GrRadio-B_t_ZNVl.js +186 -0
  249. package/dist/components/GrRadio/chunks/GrRadio-B_t_ZNVl.js.map +1 -0
  250. package/dist/components/GrRadio/index.js +3 -3
  251. package/dist/components/GrRadioGroup/chunks/GrRadioGroup-CVlgpUBr.js +82 -0
  252. package/dist/components/GrRadioGroup/chunks/GrRadioGroup-CVlgpUBr.js.map +1 -0
  253. package/dist/components/GrRadioGroup/index.js +3 -3
  254. package/dist/components/GrSegmented/chunks/GrSegmented-BPl1koHc.js +325 -0
  255. package/dist/components/GrSegmented/chunks/GrSegmented-BPl1koHc.js.map +1 -0
  256. package/dist/components/GrSegmented/index.js +3 -3
  257. package/dist/components/GrSelect/chunks/GrSelect-aVqUL-1F.js +445 -0
  258. package/dist/components/GrSelect/chunks/GrSelect-aVqUL-1F.js.map +1 -0
  259. package/dist/components/GrSelect/index.js +3 -3
  260. package/dist/components/GrSidebar/chunks/GrSidebar-DVucgcfV.js +46 -0
  261. package/dist/components/GrSidebar/chunks/GrSidebar-DVucgcfV.js.map +1 -0
  262. package/dist/components/GrSidebar/index.js +3 -3
  263. package/dist/components/GrSkeleton/chunks/GrSkeleton-CDTvCSoH.js +35 -0
  264. package/dist/components/GrSkeleton/chunks/GrSkeleton-CDTvCSoH.js.map +1 -0
  265. package/dist/components/GrSkeleton/index.js +3 -3
  266. package/dist/components/GrSwitch/chunks/GrSwitch-Bnamgqb2.js +81 -0
  267. package/dist/components/GrSwitch/chunks/GrSwitch-Bnamgqb2.js.map +1 -0
  268. package/dist/components/GrSwitch/index.js +3 -3
  269. package/dist/components/GrTable/chunks/GrTable-CyQ9uw8A.js +59 -0
  270. package/dist/components/GrTable/chunks/GrTable-CyQ9uw8A.js.map +1 -0
  271. package/dist/components/GrTable/index.js +3 -3
  272. package/dist/components/GrTabs/chunks/GrTabs-CiGmcmvm.js +120 -0
  273. package/dist/components/GrTabs/chunks/GrTabs-CiGmcmvm.js.map +1 -0
  274. package/dist/components/GrTabs/index.js +3 -3
  275. package/dist/components/GrTextarea/chunks/GrTextarea-VBSc6A7D.js +73 -0
  276. package/dist/components/GrTextarea/chunks/GrTextarea-VBSc6A7D.js.map +1 -0
  277. package/dist/components/GrTextarea/index.js +3 -3
  278. package/dist/components/GrToaster/chunks/GrToaster-I1e-zCpf.js +173 -0
  279. package/dist/components/GrToaster/chunks/GrToaster-I1e-zCpf.js.map +1 -0
  280. package/dist/components/GrToaster/index.js +3 -3
  281. package/dist/components/GrTooltip/chunks/GrTooltip-CrV1gI_c.js +57 -0
  282. package/dist/components/GrTooltip/chunks/GrTooltip-CrV1gI_c.js.map +1 -0
  283. package/dist/components/GrTooltip/index.js +3 -3
  284. package/dist/components/GrTree/chunks/GrTree-Dlev9oBd.js +736 -0
  285. package/dist/components/GrTree/chunks/GrTree-Dlev9oBd.js.map +1 -0
  286. package/dist/components/GrTree/index.js +3 -3
  287. package/dist/components/GrTreeSelect/chunks/GrTreeSelect-DN6XFjOD.js +456 -0
  288. package/dist/components/GrTreeSelect/chunks/GrTreeSelect-DN6XFjOD.js.map +1 -0
  289. package/dist/components/GrTreeSelect/index.js +3 -3
  290. package/dist/composables/useTheme.js +41 -30
  291. package/dist/composables/useTheme.js.map +1 -0
  292. package/dist/composables/useToast.js +43 -34
  293. package/dist/composables/useToast.js.map +1 -0
  294. package/dist/directives/index.js +2 -2
  295. package/dist/fileValidation/index.js +2 -2
  296. package/dist/granular-provider-node.js +25 -14
  297. package/dist/granular-provider-node.js.map +1 -0
  298. package/dist/granular-provider.js +5 -3
  299. package/dist/granular-provider.js.map +1 -0
  300. package/dist/i18n/all.js +8 -6
  301. package/dist/i18n/all.js.map +1 -0
  302. package/dist/i18n/index.js +3 -3
  303. package/dist/index.js +105 -105
  304. package/dist/vue/index.js +66 -26
  305. package/dist/vue/index.js.map +1 -0
  306. package/package.json +1 -1
  307. package/dist/chunks/_plugin-vue_export-helper-CHO2XVys.js +0 -8
  308. package/dist/chunks/adapter-D5uYoOZj.js +0 -4
  309. package/dist/chunks/arrow-up-Dv3dC3hu.js +0 -23
  310. package/dist/chunks/classTokens-CT1tqF2j.js +0 -6
  311. package/dist/chunks/config-B5JCvHys.js +0 -13
  312. package/dist/chunks/config-BDXa5Sna2.js +0 -9
  313. package/dist/chunks/config-BG5_FuZ-.js +0 -34
  314. package/dist/chunks/config-BMYKG1oB.js +0 -10
  315. package/dist/chunks/config-BQREEXFD.js +0 -8
  316. package/dist/chunks/config-BUZtbeTr.js +0 -40
  317. package/dist/chunks/config-BVXycfiO.js +0 -9
  318. package/dist/chunks/config-BZW-RL6E.js +0 -14
  319. package/dist/chunks/config-BhbfV-Is.js +0 -48
  320. package/dist/chunks/config-BmYFupZh.js +0 -8
  321. package/dist/chunks/config-BsZc_QQ-2.js +0 -20
  322. package/dist/chunks/config-C1Sn7mn-.js +0 -27
  323. package/dist/chunks/config-C4_REX-3.js +0 -9
  324. package/dist/chunks/config-CBFllZZ4.js +0 -9
  325. package/dist/chunks/config-CDyD_fCt.js +0 -8
  326. package/dist/chunks/config-CJeG727i.js +0 -149
  327. package/dist/chunks/config-CLawBqde.js +0 -21
  328. package/dist/chunks/config-CMz46RPG.js +0 -8
  329. package/dist/chunks/config-CO-7HRZd2.js +0 -8
  330. package/dist/chunks/config-CS7E7LME.js +0 -9
  331. package/dist/chunks/config-CVy124Xj.js +0 -8
  332. package/dist/chunks/config-CcixQGaN.js +0 -47
  333. package/dist/chunks/config-CiVXZxyQ.js +0 -9
  334. package/dist/chunks/config-CoMQmunP.js +0 -8
  335. package/dist/chunks/config-Cq6ufYtp.js +0 -9
  336. package/dist/chunks/config-D8CIEWcb.js +0 -8
  337. package/dist/chunks/config-D8hKc39m.js +0 -18
  338. package/dist/chunks/config-D9MxGwCJ.js +0 -8
  339. package/dist/chunks/config-DBXTZE36.js +0 -15
  340. package/dist/chunks/config-DK9C8O7L.js +0 -9
  341. package/dist/chunks/config-DTegOmx2.js +0 -8
  342. package/dist/chunks/config-DYI8XADo.js +0 -47
  343. package/dist/chunks/config-DlidGf7P.js +0 -8
  344. package/dist/chunks/config-DtNe7EIX.js +0 -35
  345. package/dist/chunks/config-EdWeK_ge.js +0 -17
  346. package/dist/chunks/config-FGAkxHFh.js +0 -8
  347. package/dist/chunks/config-M76gNxd2.js +0 -37
  348. package/dist/chunks/config-NuqoO_Of.js +0 -33
  349. package/dist/chunks/config-QsovJrku2.js +0 -66
  350. package/dist/chunks/config-R6F6zRJk.js +0 -9
  351. package/dist/chunks/config-SLwkDc4Q2.js +0 -9
  352. package/dist/chunks/config-aJ7sb62Y.js +0 -8
  353. package/dist/chunks/config-b9nc87Oc.js +0 -9
  354. package/dist/chunks/config-dSI8RttH2.js +0 -8
  355. package/dist/chunks/config-im2VHeSM.js +0 -9
  356. package/dist/chunks/config-vKeQ035f.js +0 -9
  357. package/dist/chunks/config-vMcxHlWi.js +0 -14
  358. package/dist/chunks/dialogShared-CONROtU2.js +0 -26
  359. package/dist/chunks/directives-Dr5NPOT8.js +0 -530
  360. package/dist/chunks/en-j3simI0h.js +0 -41
  361. package/dist/chunks/es-CIT9s_vo.js +0 -4
  362. package/dist/chunks/es-CLpJj7KP.js +0 -41
  363. package/dist/chunks/fileValidation-LFD-vwil.js +0 -193
  364. package/dist/chunks/grDropdownStyles-149X1NeB.js +0 -31
  365. package/dist/chunks/grLoadingStyles-Bjo7ylmq.js +0 -15
  366. package/dist/chunks/grModalStyles-Dmd4havY.js +0 -38
  367. package/dist/chunks/grSelectStyles-C3QKIn1J.js +0 -40
  368. package/dist/chunks/granularityI18n-8_v1B11L.js +0 -24
  369. package/dist/chunks/info-CNJnuTYC.js +0 -26
  370. package/dist/chunks/loader-circle-C5vCCMfB.js +0 -23
  371. package/dist/chunks/ru-CiOZPnBu.js +0 -41
  372. package/dist/chunks/safelist-Bq32hAXc.js +0 -13
  373. package/dist/chunks/safelist-CLcTRYB-.js +0 -22
  374. package/dist/chunks/transition-BJXMi52x.js +0 -1617
  375. package/dist/chunks/x--kxrj3ez.js +0 -23
  376. package/dist/chunks/x-circle-ChJ87u1v.js +0 -61
  377. package/dist/components/GrAlert/chunks/GrAlert-DLHkusb-.js +0 -129
  378. package/dist/components/GrAvatar/chunks/GrAvatar-BFYH3HJw.js +0 -32
  379. package/dist/components/GrBadge/chunks/GrBadge-D_AoqGrn.js +0 -27
  380. package/dist/components/GrBadgeWrap/chunks/GrBadgeWrap-C_N0QJfA.js +0 -26
  381. package/dist/components/GrBottomNav/chunks/GrBottomNav-Chpu3SVd.js +0 -21
  382. package/dist/components/GrButton/chunks/GrButton-BXVVt6Od.js +0 -67
  383. package/dist/components/GrButtonGroup/chunks/GrButtonGroup-CmnYHVH7.js +0 -16
  384. package/dist/components/GrCard/chunks/GrCard-DEpN6Ptf.js +0 -10
  385. package/dist/components/GrCheckbox/chunks/GrCheckbox-DF3vJApB.js +0 -111
  386. package/dist/components/GrCollapse/chunks/GrCollapse-D7QYRqNa.js +0 -150
  387. package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-C7Eh8-Vn.js +0 -111
  388. package/dist/components/GrDataTable/chunks/GrDataTable-Dxsg1NMP.js +0 -142
  389. package/dist/components/GrDialog/chunks/GrDialog-BSd4-uP5.js +0 -169
  390. package/dist/components/GrDrawer/chunks/GrDrawer-DBBSwe1s.js +0 -135
  391. package/dist/components/GrDropdown/chunks/GrDropdown-BELyRP4A.js +0 -110
  392. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-B8fuk7iP.js +0 -233
  393. package/dist/components/GrEmptyState/chunks/GrEmptyState-BPGoafJI.js +0 -49
  394. package/dist/components/GrFileUpload/chunks/GrFileUpload-BPzx3LEM.js +0 -294
  395. package/dist/components/GrFormField/chunks/GrFormField-Cn8g9eFP.js +0 -28
  396. package/dist/components/GrFormFile/chunks/GrFormFile-DfinD5Iv.js +0 -248
  397. package/dist/components/GrFormSection/chunks/GrFormSection-dKpQw-vh.js +0 -27
  398. package/dist/components/GrIcon/chunks/GrIcon-CXIHuG7L.js +0 -25
  399. package/dist/components/GrImageViewer/chunks/GrImageViewer-CQSNx-D7.js +0 -322
  400. package/dist/components/GrInput/chunks/GrInput-CLKX1inm.js +0 -158
  401. package/dist/components/GrInputTag/chunks/GrInputTag-BAtLody2.js +0 -214
  402. package/dist/components/GrLink/chunks/GrLink-BpXnly-Y.js +0 -59
  403. package/dist/components/GrList/chunks/GrList-BrFc7VdS.js +0 -55
  404. package/dist/components/GrLoading/chunks/GrLoading-dFuoryMY.js +0 -53
  405. package/dist/components/GrModal/chunks/GrModal-uaWXH08K.js +0 -136
  406. package/dist/components/GrNavbar/chunks/GrNavbar-KzLHgdjX.js +0 -62
  407. package/dist/components/GrNumberInput/chunks/GrNumberInput-rENn1802.js +0 -315
  408. package/dist/components/GrPagination/chunks/GrPagination-DP0x3rx6.js +0 -93
  409. package/dist/components/GrProgressBar/chunks/GrProgressBar-DpW93sOi.js +0 -29
  410. package/dist/components/GrPromptDialog/chunks/GrPromptDialog-ASfBwyzQ.js +0 -158
  411. package/dist/components/GrRadio/chunks/GrRadio-8BOo97XV.js +0 -147
  412. package/dist/components/GrRadioGroup/chunks/GrRadioGroup-BymbUmqI.js +0 -66
  413. package/dist/components/GrSegmented/chunks/GrSegmented-CK5C_lN7.js +0 -250
  414. package/dist/components/GrSelect/chunks/GrSelect-BMfc1-vs.js +0 -314
  415. package/dist/components/GrSidebar/chunks/GrSidebar-C4SXXhfO.js +0 -29
  416. package/dist/components/GrSkeleton/chunks/GrSkeleton-QlieOdpY.js +0 -25
  417. package/dist/components/GrSwitch/chunks/GrSwitch-Cefiutzu.js +0 -64
  418. package/dist/components/GrTable/chunks/GrTable-k_FUiJQk.js +0 -44
  419. package/dist/components/GrTabs/chunks/GrTabs-B46P-lUc.js +0 -98
  420. package/dist/components/GrTextarea/chunks/GrTextarea-BX7L1MJk.js +0 -57
  421. package/dist/components/GrToaster/chunks/GrToaster-C4l_BjOh.js +0 -139
  422. package/dist/components/GrTooltip/chunks/GrTooltip-BqRAzuLT.js +0 -37
  423. package/dist/components/GrTree/chunks/GrTree-C2CXR_vW.js +0 -614
  424. package/dist/components/GrTreeSelect/chunks/GrTreeSelect-DAAay-QB.js +0 -353
@@ -0,0 +1,207 @@
1
+ import { t as GrCard_default } from "../../GrCard/chunks/GrCard-xtDcXBr7.js";
2
+ import { t as GrIcon_default } from "../../GrIcon/chunks/GrIcon-BV7RBU_0.js";
3
+ import { computed, createBlock, createElementBlock, createElementVNode, createVNode, defineComponent, getCurrentInstance, inject, markRaw, normalizeClass, openBlock, provide, ref, renderSlot, toDisplayString, unref, withCtx } from "vue";
4
+ //#region src/components/GrCollapse/grCollapseContext.ts
5
+ var GR_COLLAPSE_CONTEXT = Symbol("GR_COLLAPSE_CONTEXT");
6
+ //#endregion
7
+ //#region src/components/GrCollapse/GrCollapse.vue
8
+ var GrCollapse_default = /* @__PURE__ */ defineComponent({
9
+ __name: "GrCollapse",
10
+ props: {
11
+ modelValue: { default: void 0 },
12
+ accordion: {
13
+ type: Boolean,
14
+ default: false
15
+ },
16
+ disabled: {
17
+ type: Boolean,
18
+ default: false
19
+ },
20
+ divided: {
21
+ type: Boolean,
22
+ default: true
23
+ }
24
+ },
25
+ emits: ["update:modelValue", "change"],
26
+ setup(__props, { emit: __emit }) {
27
+ const props = __props;
28
+ const emit = __emit;
29
+ const activeSet = computed(() => {
30
+ const value = props.modelValue;
31
+ if (props.accordion) {
32
+ if (typeof value === "string" || typeof value === "number") return new Set([value]);
33
+ return /* @__PURE__ */ new Set();
34
+ }
35
+ if (Array.isArray(value)) return new Set(value);
36
+ if (typeof value === "string" || typeof value === "number") return new Set([value]);
37
+ return /* @__PURE__ */ new Set();
38
+ });
39
+ function setModelValue(next) {
40
+ emit("update:modelValue", next);
41
+ emit("change", next);
42
+ }
43
+ function toggle(name) {
44
+ if (props.disabled) return;
45
+ if (props.accordion) {
46
+ setModelValue(activeSet.value.has(name) ? void 0 : name);
47
+ return;
48
+ }
49
+ const current = Array.isArray(props.modelValue) ? [...props.modelValue] : typeof props.modelValue === "string" || typeof props.modelValue === "number" ? [props.modelValue] : [];
50
+ setModelValue(current.includes(name) ? current.filter((x) => x !== name) : [...current, name]);
51
+ }
52
+ provide(GR_COLLAPSE_CONTEXT, {
53
+ accordion: computed(() => props.accordion),
54
+ disabled: computed(() => props.disabled),
55
+ isActive: (name) => activeSet.value.has(name),
56
+ toggle
57
+ });
58
+ return (_ctx, _cache) => {
59
+ return openBlock(), createBlock(unref(GrCard_default), { "data-ds-collapse": "" }, {
60
+ default: withCtx(() => [createElementVNode("div", { class: normalizeClass(__props.divided ? "divide-y divide-[var(--brd)]" : "") }, [renderSlot(_ctx.$slots, "default")], 2)]),
61
+ _: 3
62
+ });
63
+ };
64
+ }
65
+ });
66
+ //#endregion
67
+ //#region ~icons/lucide/chevron-down
68
+ var _hoisted_1$1 = {
69
+ viewBox: "0 0 24 24",
70
+ width: "1.2em",
71
+ height: "1.2em"
72
+ };
73
+ function render$1(_ctx, _cache) {
74
+ return openBlock(), createElementBlock("svg", _hoisted_1$1, [..._cache[0] || (_cache[0] = [createElementVNode("path", {
75
+ fill: "none",
76
+ stroke: "currentColor",
77
+ "stroke-linecap": "round",
78
+ "stroke-linejoin": "round",
79
+ "stroke-width": "2",
80
+ d: "m6 9l6 6l6-6"
81
+ }, null, -1)])]);
82
+ }
83
+ var chevron_down_default = markRaw({
84
+ name: "lucide-chevron-down",
85
+ render: render$1
86
+ });
87
+ //#endregion
88
+ //#region src/components/GrCollapse/GrCollapseItem.vue?vue&type=script&setup=true&lang.ts
89
+ var _hoisted_1 = {
90
+ "data-ds-collapse-item": "",
91
+ class: "text-[var(--fg)]"
92
+ };
93
+ var _hoisted_2 = { class: "m-0" };
94
+ var _hoisted_3 = ["aria-expanded", "disabled"];
95
+ var _hoisted_4 = { class: "min-w-0" };
96
+ var _hoisted_5 = { class: "text-sm font-600" };
97
+ var _hoisted_6 = { class: "overflow-hidden" };
98
+ var _hoisted_7 = { class: "px-4 pb-4 text-sm text-[var(--muted-fg)]" };
99
+ //#endregion
100
+ //#region src/components/GrCollapse/GrCollapseItem.vue
101
+ var GrCollapseItem_default = /* @__PURE__ */ defineComponent({
102
+ __name: "GrCollapseItem",
103
+ props: {
104
+ name: { default: void 0 },
105
+ title: { default: void 0 },
106
+ disabled: {
107
+ type: Boolean,
108
+ default: false
109
+ }
110
+ },
111
+ setup(__props) {
112
+ const props = __props;
113
+ const collapse = inject(GR_COLLAPSE_CONTEXT);
114
+ if (!collapse) throw new Error("GrCollapseItem must be used inside GrCollapse");
115
+ const collapseContext = collapse;
116
+ const uid = getCurrentInstance()?.uid ?? Math.random();
117
+ const resolvedName = computed(() => {
118
+ if (typeof props.name === "string" || typeof props.name === "number") return props.name;
119
+ return uid;
120
+ });
121
+ const resolvedDisabled = computed(() => collapseContext.disabled.value || props.disabled);
122
+ const expanded = computed(() => collapseContext.isActive(resolvedName.value));
123
+ const headerId = `ds-collapse-header-${uid}`;
124
+ const panelId = `ds-collapse-panel-${uid}`;
125
+ const triggerEl = ref(null);
126
+ function onToggle() {
127
+ if (resolvedDisabled.value) return;
128
+ collapseContext.toggle(resolvedName.value);
129
+ }
130
+ function getAllTriggers() {
131
+ const root = triggerEl.value?.closest("[data-ds-collapse]");
132
+ if (!root) return [];
133
+ return Array.prototype.slice.call(root.querySelectorAll("[data-ds-collapse-trigger]"));
134
+ }
135
+ function focusRelative(direction) {
136
+ const current = triggerEl.value;
137
+ if (!current) return;
138
+ const triggers = getAllTriggers();
139
+ const index = triggers.indexOf(current);
140
+ if (index === -1 || triggers.length === 0) return;
141
+ triggers[(index + direction + triggers.length) % triggers.length]?.focus();
142
+ }
143
+ function focusEdge(edge) {
144
+ const triggers = getAllTriggers();
145
+ if (triggers.length === 0) return;
146
+ (edge === "start" ? triggers[0] : triggers.at(-1))?.focus();
147
+ }
148
+ function onKeydown(event) {
149
+ if (event.key === "ArrowDown") {
150
+ event.preventDefault();
151
+ focusRelative(1);
152
+ return;
153
+ }
154
+ if (event.key === "ArrowUp") {
155
+ event.preventDefault();
156
+ focusRelative(-1);
157
+ return;
158
+ }
159
+ if (event.key === "Home") {
160
+ event.preventDefault();
161
+ focusEdge("start");
162
+ return;
163
+ }
164
+ if (event.key === "End") {
165
+ event.preventDefault();
166
+ focusEdge("end");
167
+ return;
168
+ }
169
+ if (event.key === " " || event.key === "Enter") {
170
+ event.preventDefault();
171
+ onToggle();
172
+ }
173
+ }
174
+ return (_ctx, _cache) => {
175
+ return openBlock(), createElementBlock("div", _hoisted_1, [createElementVNode("h3", _hoisted_2, [createElementVNode("button", {
176
+ id: headerId,
177
+ ref_key: "triggerEl",
178
+ ref: triggerEl,
179
+ "data-ds-collapse-trigger": "",
180
+ type: "button",
181
+ "aria-expanded": expanded.value ? "true" : "false",
182
+ "aria-controls": panelId,
183
+ disabled: resolvedDisabled.value,
184
+ class: normalizeClass(["w-full px-4 py-3 flex items-center justify-between gap-4 text-left transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] disabled:opacity-50 disabled:cursor-not-allowed", resolvedDisabled.value ? "" : "hover:bg-[var(--muted)]"]),
185
+ onClick: onToggle,
186
+ onKeydown
187
+ }, [createElementVNode("span", _hoisted_4, [renderSlot(_ctx.$slots, "title", {}, () => [createElementVNode("span", _hoisted_5, toDisplayString(__props.title), 1)])]), createVNode(unref(GrIcon_default), {
188
+ size: "sm",
189
+ "aria-hidden": "true",
190
+ "data-ds-collapse-chevron": "",
191
+ class: normalizeClass(["shrink-0 transition-transform duration-150 text-[var(--muted-fg)]", expanded.value ? "rotate-180" : ""])
192
+ }, {
193
+ default: withCtx(() => [createVNode(unref(chevron_down_default))]),
194
+ _: 1
195
+ }, 8, ["class"])], 42, _hoisted_3)]), createElementVNode("div", {
196
+ id: panelId,
197
+ role: "region",
198
+ "aria-labelledby": headerId,
199
+ class: normalizeClass(["grid transition-[grid-template-rows] duration-200", expanded.value ? "grid-rows-[1fr]" : "grid-rows-[0fr]"])
200
+ }, [createElementVNode("div", _hoisted_6, [createElementVNode("div", _hoisted_7, [renderSlot(_ctx.$slots, "default")])])], 2)]);
201
+ };
202
+ }
203
+ });
204
+ //#endregion
205
+ export { GrCollapse_default as n, GR_COLLAPSE_CONTEXT as r, GrCollapseItem_default as t };
206
+
207
+ //# sourceMappingURL=GrCollapse-HU20VTVn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GrCollapse-HU20VTVn.js","names":[],"sources":["../../../../src/components/GrCollapse/grCollapseContext.ts","../../../../src/components/GrCollapse/GrCollapse.vue","../../../../src/components/GrCollapse/GrCollapse.vue","../../../../src/components/GrCollapse/GrCollapseItem.vue","../../../../src/components/GrCollapse/GrCollapseItem.vue"],"sourcesContent":["import type { ComputedRef, InjectionKey } from 'vue'\n\nexport type GrCollapseValue = string | number\n\nexport type GrCollapseModelValue = GrCollapseValue | GrCollapseValue[] | undefined\n\nexport type GrCollapseContext = {\n accordion: ComputedRef<boolean>\n disabled: ComputedRef<boolean>\n isActive: (name: GrCollapseValue) => boolean\n toggle: (name: GrCollapseValue) => void\n}\n\nexport const GR_COLLAPSE_CONTEXT: InjectionKey<GrCollapseContext> = Symbol('GR_COLLAPSE_CONTEXT')","<script setup lang=\"ts\">\nimport { computed, provide } from 'vue'\n\nimport GrCard from '../GrCard'\n\nimport {\n GR_COLLAPSE_CONTEXT,\n type GrCollapseContext,\n type GrCollapseModelValue,\n type GrCollapseValue,\n} from './grCollapseContext'\n\n/**\n * GrCollapse — контейнер секций `GrCollapseItem`.\n *\n * @prop modelValue — открытые секции. В `accordion`-режиме — `string|number|undefined`, иначе — массив значений.\n * @prop accordion — режим, когда одновременно может быть открыта только одна секция.\n * @prop disabled — блокирует взаимодействие со всеми секциями.\n * @prop divided — разделители между секциями.\n */\nexport interface GrCollapseProps {\n modelValue?: GrCollapseModelValue\n accordion?: boolean\n disabled?: boolean\n divided?: boolean\n}\n\nconst props = withDefaults(defineProps<GrCollapseProps>(), {\n modelValue: undefined,\n accordion: false,\n disabled: false,\n divided: true,\n})\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: GrCollapseModelValue): void\n (e: 'change', value: GrCollapseModelValue): void\n}>()\n\nconst activeSet = computed(() => {\n const value = props.modelValue\n\n if (props.accordion) {\n if (typeof value === 'string' || typeof value === 'number') {\n return new Set<GrCollapseValue>([value])\n }\n\n return new Set<GrCollapseValue>()\n }\n\n if (Array.isArray(value)) {\n return new Set<GrCollapseValue>(value)\n }\n\n if (typeof value === 'string' || typeof value === 'number') {\n return new Set<GrCollapseValue>([value])\n }\n\n return new Set<GrCollapseValue>()\n})\n\nfunction setModelValue(next: GrCollapseModelValue): void {\n emit('update:modelValue', next)\n emit('change', next)\n}\n\nfunction toggle(name: GrCollapseValue): void {\n if (props.disabled)\n return\n\n if (props.accordion) {\n const next = activeSet.value.has(name) ? undefined : name\n setModelValue(next)\n return\n }\n\n const current = Array.isArray(props.modelValue)\n ? [...props.modelValue]\n : typeof props.modelValue === 'string' || typeof props.modelValue === 'number'\n ? [props.modelValue]\n : []\n\n const exists = current.includes(name)\n const next = exists\n ? current.filter(x => x !== name)\n : [...current, name]\n\n setModelValue(next)\n}\n\nconst context: GrCollapseContext = {\n accordion: computed(() => props.accordion),\n disabled: computed(() => props.disabled),\n isActive: name => activeSet.value.has(name),\n toggle,\n}\n\nprovide(GR_COLLAPSE_CONTEXT, context)\n</script>\n\n<template>\n <GrCard data-ds-collapse>\n <div :class=\"divided ? 'divide-y divide-[var(--brd)]' : ''\">\n <slot />\n </div>\n </GrCard>\n</template>","<script setup lang=\"ts\">\nimport { computed, provide } from 'vue'\n\nimport GrCard from '../GrCard'\n\nimport {\n GR_COLLAPSE_CONTEXT,\n type GrCollapseContext,\n type GrCollapseModelValue,\n type GrCollapseValue,\n} from './grCollapseContext'\n\n/**\n * GrCollapse — контейнер секций `GrCollapseItem`.\n *\n * @prop modelValue — открытые секции. В `accordion`-режиме — `string|number|undefined`, иначе — массив значений.\n * @prop accordion — режим, когда одновременно может быть открыта только одна секция.\n * @prop disabled — блокирует взаимодействие со всеми секциями.\n * @prop divided — разделители между секциями.\n */\nexport interface GrCollapseProps {\n modelValue?: GrCollapseModelValue\n accordion?: boolean\n disabled?: boolean\n divided?: boolean\n}\n\nconst props = withDefaults(defineProps<GrCollapseProps>(), {\n modelValue: undefined,\n accordion: false,\n disabled: false,\n divided: true,\n})\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: GrCollapseModelValue): void\n (e: 'change', value: GrCollapseModelValue): void\n}>()\n\nconst activeSet = computed(() => {\n const value = props.modelValue\n\n if (props.accordion) {\n if (typeof value === 'string' || typeof value === 'number') {\n return new Set<GrCollapseValue>([value])\n }\n\n return new Set<GrCollapseValue>()\n }\n\n if (Array.isArray(value)) {\n return new Set<GrCollapseValue>(value)\n }\n\n if (typeof value === 'string' || typeof value === 'number') {\n return new Set<GrCollapseValue>([value])\n }\n\n return new Set<GrCollapseValue>()\n})\n\nfunction setModelValue(next: GrCollapseModelValue): void {\n emit('update:modelValue', next)\n emit('change', next)\n}\n\nfunction toggle(name: GrCollapseValue): void {\n if (props.disabled)\n return\n\n if (props.accordion) {\n const next = activeSet.value.has(name) ? undefined : name\n setModelValue(next)\n return\n }\n\n const current = Array.isArray(props.modelValue)\n ? [...props.modelValue]\n : typeof props.modelValue === 'string' || typeof props.modelValue === 'number'\n ? [props.modelValue]\n : []\n\n const exists = current.includes(name)\n const next = exists\n ? current.filter(x => x !== name)\n : [...current, name]\n\n setModelValue(next)\n}\n\nconst context: GrCollapseContext = {\n accordion: computed(() => props.accordion),\n disabled: computed(() => props.disabled),\n isActive: name => activeSet.value.has(name),\n toggle,\n}\n\nprovide(GR_COLLAPSE_CONTEXT, context)\n</script>\n\n<template>\n <GrCard data-ds-collapse>\n <div :class=\"divided ? 'divide-y divide-[var(--brd)]' : ''\">\n <slot />\n </div>\n </GrCard>\n</template>","<script setup lang=\"ts\">\nimport ChevronDownIcon from '~icons/lucide/chevron-down'\nimport { computed, getCurrentInstance, inject, ref } from 'vue'\n\nimport GrIcon from '../GrIcon'\n\nimport { GR_COLLAPSE_CONTEXT, type GrCollapseValue } from './grCollapseContext'\n\n/**\n * GrCollapseItem — одна секция `GrCollapse`. Должна использоваться строго внутри `GrCollapse`.\n *\n * @prop name — уникальный идентификатор секции (для `v-model` у `GrCollapse`); по умолчанию генерируется из `uid`.\n * @prop title — текст заголовка; можно заменить слотом `#title`.\n * @prop disabled — запрещает раскрытие/сворачивание секции.\n */\nexport interface GrCollapseItemProps {\n name?: GrCollapseValue\n title?: string\n disabled?: boolean\n}\n\nconst props = withDefaults(defineProps<GrCollapseItemProps>(), {\n name: undefined,\n title: undefined,\n disabled: false,\n})\n\nconst collapse = inject(GR_COLLAPSE_CONTEXT)\n\nif (!collapse) {\n throw new Error('GrCollapseItem must be used inside GrCollapse')\n}\n\nconst collapseContext = collapse\n\nconst instance = getCurrentInstance()\nconst uid = instance?.uid ?? Math.random()\n\nconst resolvedName = computed<GrCollapseValue>(() => {\n if (typeof props.name === 'string' || typeof props.name === 'number')\n return props.name\n\n return uid\n})\n\nconst resolvedDisabled = computed(() => collapseContext.disabled.value || props.disabled)\nconst expanded = computed(() => collapseContext.isActive(resolvedName.value))\n\nconst headerId = `ds-collapse-header-${uid}`\nconst panelId = `ds-collapse-panel-${uid}`\n\nconst triggerEl = ref<HTMLElement | null>(null)\n\nfunction onToggle(): void {\n if (resolvedDisabled.value)\n return\n\n collapseContext.toggle(resolvedName.value)\n}\n\nfunction getAllTriggers(): HTMLElement[] {\n const root = triggerEl.value?.closest('[data-ds-collapse]')\n if (!root)\n return []\n\n return Array.prototype.slice.call(root.querySelectorAll<HTMLElement>('[data-ds-collapse-trigger]')) as HTMLElement[]\n}\n\nfunction focusRelative(direction: 1 | -1): void {\n const current = triggerEl.value\n if (!current)\n return\n\n const triggers = getAllTriggers()\n const index = triggers.indexOf(current)\n if (index === -1 || triggers.length === 0)\n return\n\n const nextIndex = (index + direction + triggers.length) % triggers.length\n triggers[nextIndex]?.focus()\n}\n\nfunction focusEdge(edge: 'start' | 'end'): void {\n const triggers = getAllTriggers()\n if (triggers.length === 0)\n return\n\n ;(edge === 'start' ? triggers[0] : triggers.at(-1))?.focus()\n}\n\nfunction onKeydown(event: KeyboardEvent): void {\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n focusRelative(1)\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n focusRelative(-1)\n return\n }\n\n if (event.key === 'Home') {\n event.preventDefault()\n focusEdge('start')\n return\n }\n\n if (event.key === 'End') {\n event.preventDefault()\n focusEdge('end')\n return\n }\n\n if (event.key === ' ' || event.key === 'Enter') {\n event.preventDefault()\n onToggle()\n }\n}\n</script>\n\n<template>\n <div\n data-ds-collapse-item\n class=\"text-[var(--fg)]\"\n >\n <h3 class=\"m-0\">\n <button\n :id=\"headerId\"\n ref=\"triggerEl\"\n data-ds-collapse-trigger\n type=\"button\"\n :aria-expanded=\"expanded ? 'true' : 'false'\"\n :aria-controls=\"panelId\"\n :disabled=\"resolvedDisabled\"\n class=\"w-full px-4 py-3 flex items-center justify-between gap-4 text-left transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] disabled:opacity-50 disabled:cursor-not-allowed\"\n :class=\"resolvedDisabled ? '' : 'hover:bg-[var(--muted)]'\"\n @click=\"onToggle\"\n @keydown=\"onKeydown\"\n >\n <span class=\"min-w-0\">\n <slot name=\"title\">\n <span class=\"text-sm font-600\">\n {{ title }}\n </span>\n </slot>\n </span>\n\n <GrIcon\n size=\"sm\"\n aria-hidden=\"true\"\n data-ds-collapse-chevron\n class=\"shrink-0 transition-transform duration-150 text-[var(--muted-fg)]\"\n :class=\"expanded ? 'rotate-180' : ''\"\n >\n <ChevronDownIcon />\n </GrIcon>\n </button>\n </h3>\n\n <div\n :id=\"panelId\"\n role=\"region\"\n :aria-labelledby=\"headerId\"\n class=\"grid transition-[grid-template-rows] duration-200\"\n :class=\"expanded ? 'grid-rows-[1fr]' : 'grid-rows-[0fr]'\"\n >\n <div class=\"overflow-hidden\">\n <div class=\"px-4 pb-4 text-sm text-[var(--muted-fg)]\">\n <slot />\n </div>\n </div>\n </div>\n </div>\n</template>","<script setup lang=\"ts\">\nimport ChevronDownIcon from '~icons/lucide/chevron-down'\nimport { computed, getCurrentInstance, inject, ref } from 'vue'\n\nimport GrIcon from '../GrIcon'\n\nimport { GR_COLLAPSE_CONTEXT, type GrCollapseValue } from './grCollapseContext'\n\n/**\n * GrCollapseItem — одна секция `GrCollapse`. Должна использоваться строго внутри `GrCollapse`.\n *\n * @prop name — уникальный идентификатор секции (для `v-model` у `GrCollapse`); по умолчанию генерируется из `uid`.\n * @prop title — текст заголовка; можно заменить слотом `#title`.\n * @prop disabled — запрещает раскрытие/сворачивание секции.\n */\nexport interface GrCollapseItemProps {\n name?: GrCollapseValue\n title?: string\n disabled?: boolean\n}\n\nconst props = withDefaults(defineProps<GrCollapseItemProps>(), {\n name: undefined,\n title: undefined,\n disabled: false,\n})\n\nconst collapse = inject(GR_COLLAPSE_CONTEXT)\n\nif (!collapse) {\n throw new Error('GrCollapseItem must be used inside GrCollapse')\n}\n\nconst collapseContext = collapse\n\nconst instance = getCurrentInstance()\nconst uid = instance?.uid ?? Math.random()\n\nconst resolvedName = computed<GrCollapseValue>(() => {\n if (typeof props.name === 'string' || typeof props.name === 'number')\n return props.name\n\n return uid\n})\n\nconst resolvedDisabled = computed(() => collapseContext.disabled.value || props.disabled)\nconst expanded = computed(() => collapseContext.isActive(resolvedName.value))\n\nconst headerId = `ds-collapse-header-${uid}`\nconst panelId = `ds-collapse-panel-${uid}`\n\nconst triggerEl = ref<HTMLElement | null>(null)\n\nfunction onToggle(): void {\n if (resolvedDisabled.value)\n return\n\n collapseContext.toggle(resolvedName.value)\n}\n\nfunction getAllTriggers(): HTMLElement[] {\n const root = triggerEl.value?.closest('[data-ds-collapse]')\n if (!root)\n return []\n\n return Array.prototype.slice.call(root.querySelectorAll<HTMLElement>('[data-ds-collapse-trigger]')) as HTMLElement[]\n}\n\nfunction focusRelative(direction: 1 | -1): void {\n const current = triggerEl.value\n if (!current)\n return\n\n const triggers = getAllTriggers()\n const index = triggers.indexOf(current)\n if (index === -1 || triggers.length === 0)\n return\n\n const nextIndex = (index + direction + triggers.length) % triggers.length\n triggers[nextIndex]?.focus()\n}\n\nfunction focusEdge(edge: 'start' | 'end'): void {\n const triggers = getAllTriggers()\n if (triggers.length === 0)\n return\n\n ;(edge === 'start' ? triggers[0] : triggers.at(-1))?.focus()\n}\n\nfunction onKeydown(event: KeyboardEvent): void {\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n focusRelative(1)\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n focusRelative(-1)\n return\n }\n\n if (event.key === 'Home') {\n event.preventDefault()\n focusEdge('start')\n return\n }\n\n if (event.key === 'End') {\n event.preventDefault()\n focusEdge('end')\n return\n }\n\n if (event.key === ' ' || event.key === 'Enter') {\n event.preventDefault()\n onToggle()\n }\n}\n</script>\n\n<template>\n <div\n data-ds-collapse-item\n class=\"text-[var(--fg)]\"\n >\n <h3 class=\"m-0\">\n <button\n :id=\"headerId\"\n ref=\"triggerEl\"\n data-ds-collapse-trigger\n type=\"button\"\n :aria-expanded=\"expanded ? 'true' : 'false'\"\n :aria-controls=\"panelId\"\n :disabled=\"resolvedDisabled\"\n class=\"w-full px-4 py-3 flex items-center justify-between gap-4 text-left transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] disabled:opacity-50 disabled:cursor-not-allowed\"\n :class=\"resolvedDisabled ? '' : 'hover:bg-[var(--muted)]'\"\n @click=\"onToggle\"\n @keydown=\"onKeydown\"\n >\n <span class=\"min-w-0\">\n <slot name=\"title\">\n <span class=\"text-sm font-600\">\n {{ title }}\n </span>\n </slot>\n </span>\n\n <GrIcon\n size=\"sm\"\n aria-hidden=\"true\"\n data-ds-collapse-chevron\n class=\"shrink-0 transition-transform duration-150 text-[var(--muted-fg)]\"\n :class=\"expanded ? 'rotate-180' : ''\"\n >\n <ChevronDownIcon />\n </GrIcon>\n </button>\n </h3>\n\n <div\n :id=\"panelId\"\n role=\"region\"\n :aria-labelledby=\"headerId\"\n class=\"grid transition-[grid-template-rows] duration-200\"\n :class=\"expanded ? 'grid-rows-[1fr]' : 'grid-rows-[0fr]'\"\n >\n <div class=\"overflow-hidden\">\n <div class=\"px-4 pb-4 text-sm text-[var(--muted-fg)]\">\n <slot />\n </div>\n </div>\n </div>\n </div>\n</template>"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import { n as e, r as t, t as n } from "./chunks/GrCollapse-D7QYRqNa.js";
2
- import { t as r } from "../../chunks/config-CS7E7LME.js";
3
- export { t as GR_COLLAPSE_CONTEXT, e as GrCollapse, e as default, n as GrCollapseItem, r as grCollapseConfig };
1
+ import { n as GrCollapse_default, r as GR_COLLAPSE_CONTEXT, t as GrCollapseItem_default } from "./chunks/GrCollapse-HU20VTVn.js";
2
+ import { t as grCollapseConfig } from "../../chunks/config-BzZGpWsj.js";
3
+ export { GR_COLLAPSE_CONTEXT, GrCollapse_default as GrCollapse, GrCollapse_default as default, GrCollapseItem_default as GrCollapseItem, grCollapseConfig };
@@ -0,0 +1,133 @@
1
+ import { t as GrButton_default } from "../../GrButton/chunks/GrButton-BmGdp8-4.js";
2
+ import { t as GrDialog_default } from "../../GrDialog/chunks/GrDialog-gObmaVEl.js";
3
+ import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, openBlock, renderSlot, toDisplayString, withCtx } from "vue";
4
+ //#region src/components/GrConfirmDialog/GrConfirmDialog.vue?vue&type=script&setup=true&lang.ts
5
+ var _hoisted_1 = {
6
+ key: 0,
7
+ class: "text-[14px] text-[var(--muted-fg)]"
8
+ };
9
+ var _hoisted_2 = { class: "flex items-center justify-end gap-3" };
10
+ //#endregion
11
+ //#region src/components/GrConfirmDialog/GrConfirmDialog.vue
12
+ var GrConfirmDialog_default = /* @__PURE__ */ defineComponent({
13
+ __name: "GrConfirmDialog",
14
+ props: {
15
+ modelValue: { type: Boolean },
16
+ title: { default: "Confirm" },
17
+ description: { default: void 0 },
18
+ closeOnBackdrop: {
19
+ type: Boolean,
20
+ default: true
21
+ },
22
+ closeOnEsc: {
23
+ type: Boolean,
24
+ default: true
25
+ },
26
+ showHeader: {
27
+ type: Boolean,
28
+ default: true
29
+ },
30
+ showCloseButton: {
31
+ type: Boolean,
32
+ default: true
33
+ },
34
+ size: { default: "md" },
35
+ headerConfig: { default: void 0 },
36
+ footerConfig: { default: void 0 },
37
+ bodyConfig: { default: void 0 },
38
+ closeLabel: { default: "Close" },
39
+ buttonSize: { default: void 0 },
40
+ confirmText: { default: "Confirm" },
41
+ cancelText: { default: "Cancel" },
42
+ confirmVariant: { default: "primary" },
43
+ confirmTone: { default: "primary" }
44
+ },
45
+ emits: [
46
+ "update:modelValue",
47
+ "confirm",
48
+ "cancel"
49
+ ],
50
+ setup(__props, { emit: __emit }) {
51
+ /**
52
+ * GrConfirmDialog — DS-примитив диалога подтверждения поверх `GrDialog`.
53
+ *
54
+ * Синхронизирован с `GrDialog`/`GrPromptDialog` по набору проп-проксирования:
55
+ * `size`, `closeOnBackdrop`, `closeOnEsc`, `showHeader`, `showCloseButton`,
56
+ * `headerConfig`, `footerConfig`, `bodyConfig`, `closeLabel`.
57
+ *
58
+ * Клик по «Confirm»/«Cancel» эмитит одноимённое событие и закрывает диалог
59
+ * через `update:modelValue`.
60
+ */
61
+ const props = __props;
62
+ const emit = __emit;
63
+ const open = computed({
64
+ get: () => props.modelValue,
65
+ set: (value) => emit("update:modelValue", value)
66
+ });
67
+ function onCancel() {
68
+ emit("cancel");
69
+ emit("update:modelValue", false);
70
+ }
71
+ function onConfirm() {
72
+ emit("confirm");
73
+ emit("update:modelValue", false);
74
+ }
75
+ return (_ctx, _cache) => {
76
+ return openBlock(), createBlock(GrDialog_default, {
77
+ modelValue: open.value,
78
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => open.value = $event),
79
+ title: __props.title,
80
+ size: __props.size,
81
+ "close-on-backdrop": __props.closeOnBackdrop,
82
+ "close-on-esc": __props.closeOnEsc,
83
+ "show-header": __props.showHeader,
84
+ "show-close-button": __props.showCloseButton,
85
+ "header-config": __props.headerConfig,
86
+ "footer-config": __props.footerConfig,
87
+ "body-config": __props.bodyConfig,
88
+ "close-label": __props.closeLabel
89
+ }, {
90
+ footer: withCtx(() => [renderSlot(_ctx.$slots, "footer", {}, () => [createElementVNode("div", _hoisted_2, [createVNode(GrButton_default, {
91
+ "data-testid": "ds-confirm-cancel",
92
+ variant: "outline",
93
+ size: __props.buttonSize,
94
+ onClick: onCancel
95
+ }, {
96
+ default: withCtx(() => [createTextVNode(toDisplayString(__props.cancelText), 1)]),
97
+ _: 1
98
+ }, 8, ["size"]), createVNode(GrButton_default, {
99
+ "data-testid": "ds-confirm-confirm",
100
+ variant: __props.confirmVariant,
101
+ tone: __props.confirmTone,
102
+ size: __props.buttonSize,
103
+ onClick: onConfirm
104
+ }, {
105
+ default: withCtx(() => [createTextVNode(toDisplayString(__props.confirmText), 1)]),
106
+ _: 1
107
+ }, 8, [
108
+ "variant",
109
+ "tone",
110
+ "size"
111
+ ])])])]),
112
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", {}, () => [__props.description ? (openBlock(), createElementBlock("div", _hoisted_1, toDisplayString(__props.description), 1)) : createCommentVNode("", true)])]),
113
+ _: 3
114
+ }, 8, [
115
+ "modelValue",
116
+ "title",
117
+ "size",
118
+ "close-on-backdrop",
119
+ "close-on-esc",
120
+ "show-header",
121
+ "show-close-button",
122
+ "header-config",
123
+ "footer-config",
124
+ "body-config",
125
+ "close-label"
126
+ ]);
127
+ };
128
+ }
129
+ });
130
+ //#endregion
131
+ export { GrConfirmDialog_default as t };
132
+
133
+ //# sourceMappingURL=GrConfirmDialog-DjGOX9Hd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GrConfirmDialog-DjGOX9Hd.js","names":[],"sources":["../../../../src/components/GrConfirmDialog/GrConfirmDialog.vue","../../../../src/components/GrConfirmDialog/GrConfirmDialog.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * GrConfirmDialog — DS-примитив диалога подтверждения поверх `GrDialog`.\n *\n * Синхронизирован с `GrDialog`/`GrPromptDialog` по набору проп-проксирования:\n * `size`, `closeOnBackdrop`, `closeOnEsc`, `showHeader`, `showCloseButton`,\n * `headerConfig`, `footerConfig`, `bodyConfig`, `closeLabel`.\n *\n * Клик по «Confirm»/«Cancel» эмитит одноимённое событие и закрывает диалог\n * через `update:modelValue`.\n */\nimport { computed } from 'vue'\n\nimport GrButton from '../GrButton/GrButton.vue'\nimport GrDialog from '../GrDialog/GrDialog.vue'\nimport type { GrButtonSize, GrButtonTone, GrButtonVariant } from '../GrButton'\nimport type { GrDialogSectionConfig, GrDialogSize } from '../GrDialog'\n\nexport interface GrConfirmDialogProps {\n modelValue: boolean\n title?: string\n description?: string\n closeOnBackdrop?: boolean\n closeOnEsc?: boolean\n showHeader?: boolean\n showCloseButton?: boolean\n size?: GrDialogSize\n headerConfig?: GrDialogSectionConfig\n footerConfig?: GrDialogSectionConfig\n bodyConfig?: GrDialogSectionConfig\n /** A11y-лейбл кнопки закрытия (i18n). */\n closeLabel?: string\n buttonSize?: GrButtonSize\n confirmText?: string\n cancelText?: string\n confirmVariant?: GrButtonVariant\n confirmTone?: GrButtonTone\n}\n\nconst props = withDefaults(defineProps<GrConfirmDialogProps>(), {\n title: 'Confirm',\n description: undefined,\n closeOnBackdrop: true,\n closeOnEsc: true,\n showHeader: true,\n showCloseButton: true,\n size: 'md',\n headerConfig: undefined,\n footerConfig: undefined,\n bodyConfig: undefined,\n closeLabel: 'Close',\n buttonSize: undefined,\n confirmText: 'Confirm',\n cancelText: 'Cancel',\n confirmVariant: 'primary',\n confirmTone: 'primary',\n})\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: boolean): void\n (e: 'confirm'): void\n (e: 'cancel'): void\n}>()\n\nconst open = computed({\n get: () => props.modelValue,\n set: (value: boolean) => emit('update:modelValue', value),\n})\n\nfunction onCancel(): void {\n emit('cancel')\n emit('update:modelValue', false)\n}\n\nfunction onConfirm(): void {\n emit('confirm')\n emit('update:modelValue', false)\n}\n</script>\n\n<template>\n <GrDialog\n v-model=\"open\"\n :title=\"title\"\n :size=\"size\"\n :close-on-backdrop=\"closeOnBackdrop\"\n :close-on-esc=\"closeOnEsc\"\n :show-header=\"showHeader\"\n :show-close-button=\"showCloseButton\"\n :header-config=\"headerConfig\"\n :footer-config=\"footerConfig\"\n :body-config=\"bodyConfig\"\n :close-label=\"closeLabel\"\n >\n <slot>\n <div v-if=\"description\" class=\"text-[14px] text-[var(--muted-fg)]\">\n {{ description }}\n </div>\n </slot>\n\n <template #footer>\n <slot name=\"footer\">\n <div class=\"flex items-center justify-end gap-3\">\n <GrButton data-testid=\"ds-confirm-cancel\" variant=\"outline\" :size=\"buttonSize\" @click=\"onCancel\">\n {{ cancelText }}\n </GrButton>\n <GrButton\n data-testid=\"ds-confirm-confirm\"\n :variant=\"confirmVariant\"\n :tone=\"confirmTone\"\n :size=\"buttonSize\"\n @click=\"onConfirm\"\n >\n {{ confirmText }}\n </GrButton>\n </div>\n </slot>\n </template>\n </GrDialog>\n</template>\n","<script setup lang=\"ts\">\n/**\n * GrConfirmDialog — DS-примитив диалога подтверждения поверх `GrDialog`.\n *\n * Синхронизирован с `GrDialog`/`GrPromptDialog` по набору проп-проксирования:\n * `size`, `closeOnBackdrop`, `closeOnEsc`, `showHeader`, `showCloseButton`,\n * `headerConfig`, `footerConfig`, `bodyConfig`, `closeLabel`.\n *\n * Клик по «Confirm»/«Cancel» эмитит одноимённое событие и закрывает диалог\n * через `update:modelValue`.\n */\nimport { computed } from 'vue'\n\nimport GrButton from '../GrButton/GrButton.vue'\nimport GrDialog from '../GrDialog/GrDialog.vue'\nimport type { GrButtonSize, GrButtonTone, GrButtonVariant } from '../GrButton'\nimport type { GrDialogSectionConfig, GrDialogSize } from '../GrDialog'\n\nexport interface GrConfirmDialogProps {\n modelValue: boolean\n title?: string\n description?: string\n closeOnBackdrop?: boolean\n closeOnEsc?: boolean\n showHeader?: boolean\n showCloseButton?: boolean\n size?: GrDialogSize\n headerConfig?: GrDialogSectionConfig\n footerConfig?: GrDialogSectionConfig\n bodyConfig?: GrDialogSectionConfig\n /** A11y-лейбл кнопки закрытия (i18n). */\n closeLabel?: string\n buttonSize?: GrButtonSize\n confirmText?: string\n cancelText?: string\n confirmVariant?: GrButtonVariant\n confirmTone?: GrButtonTone\n}\n\nconst props = withDefaults(defineProps<GrConfirmDialogProps>(), {\n title: 'Confirm',\n description: undefined,\n closeOnBackdrop: true,\n closeOnEsc: true,\n showHeader: true,\n showCloseButton: true,\n size: 'md',\n headerConfig: undefined,\n footerConfig: undefined,\n bodyConfig: undefined,\n closeLabel: 'Close',\n buttonSize: undefined,\n confirmText: 'Confirm',\n cancelText: 'Cancel',\n confirmVariant: 'primary',\n confirmTone: 'primary',\n})\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: boolean): void\n (e: 'confirm'): void\n (e: 'cancel'): void\n}>()\n\nconst open = computed({\n get: () => props.modelValue,\n set: (value: boolean) => emit('update:modelValue', value),\n})\n\nfunction onCancel(): void {\n emit('cancel')\n emit('update:modelValue', false)\n}\n\nfunction onConfirm(): void {\n emit('confirm')\n emit('update:modelValue', false)\n}\n</script>\n\n<template>\n <GrDialog\n v-model=\"open\"\n :title=\"title\"\n :size=\"size\"\n :close-on-backdrop=\"closeOnBackdrop\"\n :close-on-esc=\"closeOnEsc\"\n :show-header=\"showHeader\"\n :show-close-button=\"showCloseButton\"\n :header-config=\"headerConfig\"\n :footer-config=\"footerConfig\"\n :body-config=\"bodyConfig\"\n :close-label=\"closeLabel\"\n >\n <slot>\n <div v-if=\"description\" class=\"text-[14px] text-[var(--muted-fg)]\">\n {{ description }}\n </div>\n </slot>\n\n <template #footer>\n <slot name=\"footer\">\n <div class=\"flex items-center justify-end gap-3\">\n <GrButton data-testid=\"ds-confirm-cancel\" variant=\"outline\" :size=\"buttonSize\" @click=\"onCancel\">\n {{ cancelText }}\n </GrButton>\n <GrButton\n data-testid=\"ds-confirm-confirm\"\n :variant=\"confirmVariant\"\n :tone=\"confirmTone\"\n :size=\"buttonSize\"\n @click=\"onConfirm\"\n >\n {{ confirmText }}\n </GrButton>\n </div>\n </slot>\n </template>\n </GrDialog>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuCA,MAAM,QAAQ;EAmBd,MAAM,OAAO;EAMb,MAAM,OAAO,SAAS;GACpB,WAAW,MAAM;GACjB,MAAM,UAAmB,KAAK,qBAAqB,MAAM;GAC1D,CAAA;EAED,SAAS,WAAiB;AACxB,QAAK,SAAQ;AACb,QAAK,qBAAqB,MAAK;;EAGjC,SAAS,YAAkB;AACzB,QAAK,UAAS;AACd,QAAK,qBAAqB,MAAK;;;uBAK/B,YAqCW,kBAAA;gBApCA,KAAA;sEAAI,QAAA;IACZ,OAAO,QAAA;IACP,MAAM,QAAA;IACN,qBAAmB,QAAA;IACnB,gBAAc,QAAA;IACd,eAAa,QAAA;IACb,qBAAmB,QAAA;IACnB,iBAAe,QAAA;IACf,iBAAe,QAAA;IACf,eAAa,QAAA;IACb,eAAa,QAAA;;IAQH,QAAM,cAgBR,CAfP,WAeO,KAAA,QAAA,UAAA,EAAA,QAAA,CAdL,mBAaM,OAbN,YAaM,CAZJ,YAEW,kBAAA;KAFD,eAAY;KAAoB,SAAQ;KAAW,MAAM,QAAA;KAAa,SAAO;;4BACrE,CAAA,gBAAA,gBAAb,QAAA,WAAU,EAAA,EAAA,CAAA,CAAA;;qBAEf,YAQW,kBAAA;KAPT,eAAY;KACX,SAAS,QAAA;KACT,MAAM,QAAA;KACN,MAAM,QAAA;KACN,SAAO;;4BAES,CAAA,gBAAA,gBAAd,QAAA,YAAW,EAAA,EAAA,CAAA,CAAA;;;;;;;2BAff,CAJP,WAIO,KAAA,QAAA,WAAA,EAAA,QAAA,CAHM,QAAA,eAAA,WAAA,EAAX,mBAEM,OAFN,YAEM,gBADD,QAAA,YAAW,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA,CAAA,CAAA,CAAA,CAAA"}
@@ -1,3 +1,3 @@
1
- import { t as e } from "./chunks/GrConfirmDialog-C7Eh8-Vn.js";
2
- import { t } from "../../chunks/config-C4_REX-3.js";
3
- export { e as GrConfirmDialog, e as default, t as grConfirmDialogConfig };
1
+ import { t as GrConfirmDialog_default } from "./chunks/GrConfirmDialog-DjGOX9Hd.js";
2
+ import { t as grConfirmDialogConfig } from "../../chunks/config-DFRYOcrP.js";
3
+ export { GrConfirmDialog_default as GrConfirmDialog, GrConfirmDialog_default as default, grConfirmDialogConfig };
@@ -0,0 +1,181 @@
1
+ import { t as GrIcon_default } from "../../GrIcon/chunks/GrIcon-BV7RBU_0.js";
2
+ import { t as GrTable_default } from "../../GrTable/chunks/GrTable-CyQ9uw8A.js";
3
+ import { t as arrow_up_default } from "../../../chunks/arrow-up-DNXrMoAI.js";
4
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, markRaw, mergeProps, normalizeClass, openBlock, ref, renderList, renderSlot, toDisplayString, unref, withCtx } from "vue";
5
+ //#region ~icons/lucide/arrow-down
6
+ var _hoisted_1$1 = {
7
+ viewBox: "0 0 24 24",
8
+ width: "1.2em",
9
+ height: "1.2em"
10
+ };
11
+ function render$1(_ctx, _cache) {
12
+ return openBlock(), createElementBlock("svg", _hoisted_1$1, [..._cache[0] || (_cache[0] = [createElementVNode("path", {
13
+ fill: "none",
14
+ stroke: "currentColor",
15
+ "stroke-linecap": "round",
16
+ "stroke-linejoin": "round",
17
+ "stroke-width": "2",
18
+ d: "M12 5v14m7-7l-7 7l-7-7"
19
+ }, null, -1)])]);
20
+ }
21
+ var arrow_down_default = markRaw({
22
+ name: "lucide-arrow-down",
23
+ render: render$1
24
+ });
25
+ //#endregion
26
+ //#region src/components/GrDataTable/GrDataTable.vue?vue&type=script&setup=true&lang.ts
27
+ var _hoisted_1 = { "data-ds-datatable-header": "" };
28
+ var _hoisted_2 = ["aria-sort"];
29
+ var _hoisted_3 = { class: "inline-flex items-center gap-2" };
30
+ var _hoisted_4 = ["aria-label", "onClick"];
31
+ var _hoisted_5 = { class: "inline-flex" };
32
+ var _hoisted_6 = {
33
+ key: 1,
34
+ class: "text-[var(--muted-fg)]"
35
+ };
36
+ var _hoisted_7 = {
37
+ key: 0,
38
+ "data-ds-datatable-empty": ""
39
+ };
40
+ var _hoisted_8 = ["colspan"];
41
+ //#endregion
42
+ //#region src/components/GrDataTable/GrDataTable.vue
43
+ var GrDataTable_default = /* @__PURE__ */ defineComponent({
44
+ __name: "GrDataTable",
45
+ props: {
46
+ rows: {},
47
+ columns: {},
48
+ rowKey: {
49
+ type: [String, Function],
50
+ default: "id"
51
+ },
52
+ initialSortKey: { default: void 0 },
53
+ initialSortDir: { default: "asc" },
54
+ density: { default: "regular" },
55
+ caption: { default: void 0 },
56
+ ariaLabel: { default: void 0 },
57
+ ariaLabelledby: { default: void 0 },
58
+ regionLabel: { default: void 0 }
59
+ },
60
+ setup(__props) {
61
+ const props = __props;
62
+ const sortKey = ref(props.initialSortKey ?? "");
63
+ const sortDir = ref(props.initialSortDir);
64
+ const sortedRows = computed(() => {
65
+ const items = [...props.rows];
66
+ if (!sortKey.value) return items;
67
+ const key = sortKey.value;
68
+ const dir = sortDir.value;
69
+ items.sort((a, b) => {
70
+ const av = a[key];
71
+ const bv = b[key];
72
+ const aNum = typeof av === "number" ? av : Number(av);
73
+ const bNum = typeof bv === "number" ? bv : Number(bv);
74
+ const res = Number.isFinite(aNum) && Number.isFinite(bNum) ? aNum - bNum : String(av ?? "").localeCompare(String(bv ?? ""), void 0, { sensitivity: "base" });
75
+ return dir === "asc" ? res : -res;
76
+ });
77
+ return items;
78
+ });
79
+ function toggleSort(col) {
80
+ if (!col.sortable) return;
81
+ if (sortKey.value !== col.key) {
82
+ sortKey.value = col.key;
83
+ sortDir.value = "asc";
84
+ return;
85
+ }
86
+ sortDir.value = sortDir.value === "asc" ? "desc" : "asc";
87
+ }
88
+ function cellAlign(col) {
89
+ if (col.align === "right") return "text-right";
90
+ if (col.align === "center") return "text-center";
91
+ return "text-left";
92
+ }
93
+ function rowKeyValue(row) {
94
+ const rk = props.rowKey;
95
+ if (typeof rk === "function") return rk(row);
96
+ const v = row[rk];
97
+ if (typeof v === "string" || typeof v === "number") return v;
98
+ return String(v ?? "");
99
+ }
100
+ function ariaSortFor(col) {
101
+ if (!col.sortable) return void 0;
102
+ if (sortKey.value !== col.key) return "none";
103
+ return sortDir.value === "asc" ? "ascending" : "descending";
104
+ }
105
+ function sortButtonLabel(col) {
106
+ if (sortKey.value !== col.key) return `Sort by ${col.label}`;
107
+ return sortDir.value === "asc" ? `Sorted by ${col.label} ascending, activate to sort descending` : `Sorted by ${col.label} descending, activate to sort ascending`;
108
+ }
109
+ const tableProps = computed(() => ({
110
+ density: props.density,
111
+ caption: props.caption,
112
+ ariaLabel: props.ariaLabel,
113
+ ariaLabelledby: props.ariaLabelledby,
114
+ regionLabel: props.regionLabel
115
+ }));
116
+ const isEmpty = computed(() => sortedRows.value.length === 0);
117
+ function cellValue(row, key) {
118
+ return row[key];
119
+ }
120
+ return (_ctx, _cache) => {
121
+ return openBlock(), createBlock(GrTable_default, mergeProps(tableProps.value, { "data-ds-datatable": "" }), createSlots({
122
+ head: withCtx(() => [createElementVNode("tr", _hoisted_1, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.columns, (col) => {
123
+ return openBlock(), createElementBlock("th", {
124
+ key: col.key,
125
+ class: normalizeClass(["font-700 text-xs px-4 py-3", cellAlign(col)]),
126
+ "aria-sort": ariaSortFor(col),
127
+ scope: "col"
128
+ }, [createElementVNode("div", _hoisted_3, [col.sortable ? (openBlock(), createElementBlock("button", {
129
+ key: 0,
130
+ type: "button",
131
+ class: "inline-flex items-center gap-2 text-[var(--muted-fg)] hover:text-[var(--fg)] transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] rounded",
132
+ "aria-label": sortButtonLabel(col),
133
+ onClick: ($event) => toggleSort(col)
134
+ }, [createElementVNode("span", null, toDisplayString(col.label), 1), createElementVNode("span", _hoisted_5, [sortKey.value === col.key && sortDir.value === "asc" ? (openBlock(), createBlock(GrIcon_default, {
135
+ key: 0,
136
+ size: "sm",
137
+ "aria-hidden": "true"
138
+ }, {
139
+ default: withCtx(() => [createVNode(unref(arrow_up_default))]),
140
+ _: 1
141
+ })) : sortKey.value === col.key && sortDir.value === "desc" ? (openBlock(), createBlock(GrIcon_default, {
142
+ key: 1,
143
+ size: "sm",
144
+ "aria-hidden": "true"
145
+ }, {
146
+ default: withCtx(() => [createVNode(unref(arrow_down_default))]),
147
+ _: 1
148
+ })) : createCommentVNode("", true)])], 8, _hoisted_4)) : (openBlock(), createElementBlock("span", _hoisted_6, toDisplayString(col.label), 1))])], 10, _hoisted_2);
149
+ }), 128))])]),
150
+ default: withCtx(() => [isEmpty.value ? (openBlock(), createElementBlock("tr", _hoisted_7, [createElementVNode("td", {
151
+ colspan: __props.columns.length,
152
+ class: "px-4 py-6 text-center text-[var(--muted-fg)]"
153
+ }, [renderSlot(_ctx.$slots, "empty", {}, () => [_cache[0] || (_cache[0] = createTextVNode(" Нет данных ", -1))])], 8, _hoisted_8)])) : (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(sortedRows.value, (row) => {
154
+ return openBlock(), createElementBlock("tr", {
155
+ key: rowKeyValue(row),
156
+ class: "border-t border-[var(--brd)]",
157
+ "data-ds-datatable-row": ""
158
+ }, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.columns, (col) => {
159
+ return openBlock(), createElementBlock("td", {
160
+ key: col.key,
161
+ class: normalizeClass(["px-4 py-3", cellAlign(col)])
162
+ }, [renderSlot(_ctx.$slots, `cell-${col.key}`, { row }, () => [createElementVNode("span", null, toDisplayString(cellValue(row, col.key)), 1)])], 2);
163
+ }), 128))]);
164
+ }), 128))]),
165
+ _: 2
166
+ }, [_ctx.$slots.caption ? {
167
+ name: "caption",
168
+ fn: withCtx(() => [renderSlot(_ctx.$slots, "caption")]),
169
+ key: "0"
170
+ } : void 0, _ctx.$slots.foot ? {
171
+ name: "foot",
172
+ fn: withCtx(() => [renderSlot(_ctx.$slots, "foot")]),
173
+ key: "1"
174
+ } : void 0]), 1040);
175
+ };
176
+ }
177
+ });
178
+ //#endregion
179
+ export { GrDataTable_default as t };
180
+
181
+ //# sourceMappingURL=GrDataTable-QDOJWmdY.js.map