@feugene/granularity 0.13.0 → 0.16.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 (1223) hide show
  1. package/README.md +14 -1
  2. package/dist/chunks/adapter-CAOxmn2G.js.map +1 -1
  3. package/dist/chunks/check-BZI24Qs4.js +23 -0
  4. package/dist/chunks/check-BZI24Qs4.js.map +1 -0
  5. package/dist/chunks/chevron-down-CQS2OG_s.js +23 -0
  6. package/dist/chunks/chevron-down-CQS2OG_s.js.map +1 -0
  7. package/dist/chunks/chevron-right-BfqMVpbB.js +44 -0
  8. package/dist/chunks/chevron-right-BfqMVpbB.js.map +1 -0
  9. package/dist/chunks/config-06SQjBx0.js +96 -0
  10. package/dist/chunks/config-06SQjBx0.js.map +1 -0
  11. package/dist/chunks/config-A-bBiotF.js +12 -0
  12. package/dist/chunks/config-A-bBiotF.js.map +1 -0
  13. package/dist/chunks/config-B-g6lT19.js +19 -0
  14. package/dist/chunks/config-B-g6lT19.js.map +1 -0
  15. package/dist/chunks/config-B-iNaGdw.js +199 -0
  16. package/dist/chunks/config-B-iNaGdw.js.map +1 -0
  17. package/dist/chunks/config-B84z1aos.js +19 -0
  18. package/dist/chunks/config-B84z1aos.js.map +1 -0
  19. package/dist/chunks/config-BE6n20np.js +27 -0
  20. package/dist/chunks/config-BE6n20np.js.map +1 -0
  21. package/dist/chunks/config-BKvX0q10.js +89 -0
  22. package/dist/chunks/config-BKvX0q10.js.map +1 -0
  23. package/dist/chunks/config-BN4sXYXn.js +77 -0
  24. package/dist/chunks/config-BN4sXYXn.js.map +1 -0
  25. package/dist/chunks/config-BNfQwyL4.js +97 -0
  26. package/dist/chunks/config-BNfQwyL4.js.map +1 -0
  27. package/dist/chunks/config-BNu8lFQB.js.map +1 -1
  28. package/dist/chunks/config-BSyiFlbi.js +17 -0
  29. package/dist/chunks/config-BSyiFlbi.js.map +1 -0
  30. package/dist/chunks/config-BViooYNv.js +13 -0
  31. package/dist/chunks/config-BViooYNv.js.map +1 -0
  32. package/dist/chunks/config-BbY2SKGE.js +90 -0
  33. package/dist/chunks/config-BbY2SKGE.js.map +1 -0
  34. package/dist/chunks/config-BeZRuonp.js +54 -0
  35. package/dist/chunks/config-BeZRuonp.js.map +1 -0
  36. package/dist/chunks/config-BoNR7_PD.js +140 -0
  37. package/dist/chunks/config-BoNR7_PD.js.map +1 -0
  38. package/dist/chunks/config-Bpt9Xbxm.js +49 -0
  39. package/dist/chunks/config-Bpt9Xbxm.js.map +1 -0
  40. package/dist/chunks/config-BqFjr3tN.js +131 -0
  41. package/dist/chunks/config-BqFjr3tN.js.map +1 -0
  42. package/dist/chunks/config-BsuDM3Hb.js +55 -0
  43. package/dist/chunks/config-BsuDM3Hb.js.map +1 -0
  44. package/dist/chunks/config-BtXRpAtq.js +48 -0
  45. package/dist/chunks/config-BtXRpAtq.js.map +1 -0
  46. package/dist/chunks/config-BuGlNPE9.js +8 -0
  47. package/dist/chunks/config-BuGlNPE9.js.map +1 -0
  48. package/dist/chunks/config-C0Ea9ePP.js +15 -0
  49. package/dist/chunks/config-C0Ea9ePP.js.map +1 -0
  50. package/dist/chunks/config-CN2ULSQL2.js +36 -0
  51. package/dist/chunks/config-CN2ULSQL2.js.map +1 -0
  52. package/dist/chunks/config-CN970ZcJ.js +113 -0
  53. package/dist/chunks/config-CN970ZcJ.js.map +1 -0
  54. package/dist/chunks/config-COvrUfhR.js +83 -0
  55. package/dist/chunks/config-COvrUfhR.js.map +1 -0
  56. package/dist/chunks/config-CQzGyi1C.js +54 -0
  57. package/dist/chunks/config-CQzGyi1C.js.map +1 -0
  58. package/dist/chunks/config-CY0_6cMi.js +51 -0
  59. package/dist/chunks/config-CY0_6cMi.js.map +1 -0
  60. package/dist/chunks/config-CjXjhphs.js +12 -0
  61. package/dist/chunks/config-CjXjhphs.js.map +1 -0
  62. package/dist/chunks/config-CjnbevbD.js +13 -0
  63. package/dist/chunks/config-CjnbevbD.js.map +1 -0
  64. package/dist/chunks/config-Cl4ST6Qd.js +21 -0
  65. package/dist/chunks/config-Cl4ST6Qd.js.map +1 -0
  66. package/dist/chunks/config-Cp0DE0GH.js +12 -0
  67. package/dist/chunks/config-Cp0DE0GH.js.map +1 -0
  68. package/dist/chunks/config-CpwwkFBO.js +72 -0
  69. package/dist/chunks/config-CpwwkFBO.js.map +1 -0
  70. package/dist/chunks/config-CvC0sX8p.js +81 -0
  71. package/dist/chunks/config-CvC0sX8p.js.map +1 -0
  72. package/dist/chunks/config-Cw6TDzWv2.js +72 -0
  73. package/dist/chunks/config-Cw6TDzWv2.js.map +1 -0
  74. package/dist/chunks/config-Cwd3yjRw.js +41 -0
  75. package/dist/chunks/config-Cwd3yjRw.js.map +1 -0
  76. package/dist/chunks/config-D3_g2KIn.js +120 -0
  77. package/dist/chunks/config-D3_g2KIn.js.map +1 -0
  78. package/dist/chunks/config-D6W1rnlp.js +26 -0
  79. package/dist/chunks/config-D6W1rnlp.js.map +1 -0
  80. package/dist/chunks/config-D8tSR2uS.js +103 -0
  81. package/dist/chunks/config-D8tSR2uS.js.map +1 -0
  82. package/dist/chunks/config-D94Z9po52.js +126 -0
  83. package/dist/chunks/config-D94Z9po52.js.map +1 -0
  84. package/dist/chunks/config-DBmdgoVf.js.map +1 -1
  85. package/dist/chunks/config-DCFvmHEv.js +76 -0
  86. package/dist/chunks/config-DCFvmHEv.js.map +1 -0
  87. package/dist/chunks/config-DKdlqXiY.js +109 -0
  88. package/dist/chunks/config-DKdlqXiY.js.map +1 -0
  89. package/dist/chunks/config-DP7eseR1.js +92 -0
  90. package/dist/chunks/config-DP7eseR1.js.map +1 -0
  91. package/dist/chunks/config-DSJY6aEl.js +80 -0
  92. package/dist/chunks/config-DSJY6aEl.js.map +1 -0
  93. package/dist/chunks/config-DU2DNSRx2.js +116 -0
  94. package/dist/chunks/config-DU2DNSRx2.js.map +1 -0
  95. package/dist/chunks/config-DhHbU3zO.js +37 -0
  96. package/dist/chunks/config-DhHbU3zO.js.map +1 -0
  97. package/dist/chunks/config-DpeQchsV.js +21 -0
  98. package/dist/chunks/config-DpeQchsV.js.map +1 -0
  99. package/dist/chunks/config-DpqOnJiz2.js.map +1 -0
  100. package/dist/chunks/config-DvQIb4kb.js +98 -0
  101. package/dist/chunks/config-DvQIb4kb.js.map +1 -0
  102. package/dist/chunks/config-DxCTVBfx.js +97 -0
  103. package/dist/chunks/config-DxCTVBfx.js.map +1 -0
  104. package/dist/chunks/config-K0C2tcLB.js +84 -0
  105. package/dist/chunks/config-K0C2tcLB.js.map +1 -0
  106. package/dist/chunks/config-QaIc_gRa.js.map +1 -0
  107. package/dist/chunks/config-Rw9OyW70.js +87 -0
  108. package/dist/chunks/config-Rw9OyW70.js.map +1 -0
  109. package/dist/chunks/config-T3qdQBgU.js +40 -0
  110. package/dist/chunks/config-T3qdQBgU.js.map +1 -0
  111. package/dist/chunks/config-WTNhdh6T2.js +20 -0
  112. package/dist/chunks/config-WTNhdh6T2.js.map +1 -0
  113. package/dist/chunks/config-Zc_bUvZY2.js +23 -0
  114. package/dist/chunks/config-Zc_bUvZY2.js.map +1 -0
  115. package/dist/chunks/config-_qPUfb6-2.js +165 -0
  116. package/dist/chunks/config-_qPUfb6-2.js.map +1 -0
  117. package/dist/chunks/config-eXB87DOi2.js.map +1 -0
  118. package/dist/chunks/config-esdviAPL.js +41 -0
  119. package/dist/chunks/config-esdviAPL.js.map +1 -0
  120. package/dist/chunks/config-gwro_7yn.js +55 -0
  121. package/dist/chunks/config-gwro_7yn.js.map +1 -0
  122. package/dist/chunks/config-qVg3Zz_A.js +30 -0
  123. package/dist/chunks/config-qVg3Zz_A.js.map +1 -0
  124. package/dist/chunks/config-zjeAJ4ho.js +64 -0
  125. package/dist/chunks/config-zjeAJ4ho.js.map +1 -0
  126. package/dist/chunks/context-BSYR7RZs.js +152 -0
  127. package/dist/chunks/context-BSYR7RZs.js.map +1 -0
  128. package/dist/chunks/context-BfIQv7m1.js +18 -0
  129. package/dist/chunks/context-BfIQv7m1.js.map +1 -0
  130. package/dist/chunks/context-Bfrgsluh.js.map +1 -1
  131. package/dist/chunks/context-DdNIxa1w.js.map +1 -1
  132. package/dist/chunks/dialogShared-CxW62PQE.js.map +1 -1
  133. package/dist/chunks/en-B3xMeswz.js +327 -0
  134. package/dist/chunks/en-B3xMeswz.js.map +1 -0
  135. package/dist/chunks/es-Bv8vvqdT.js +20 -0
  136. package/dist/chunks/es-Bv8vvqdT.js.map +1 -0
  137. package/dist/chunks/es-CA-mkU--.js +329 -0
  138. package/dist/chunks/es-CA-mkU--.js.map +1 -0
  139. package/dist/chunks/fileValidation-D5TFBhbv.js +296 -0
  140. package/dist/chunks/fileValidation-D5TFBhbv.js.map +1 -0
  141. package/dist/chunks/focusables-BkzK42SQ.js +87 -0
  142. package/dist/chunks/focusables-BkzK42SQ.js.map +1 -0
  143. package/dist/chunks/grBadgeStyles-C2wLlkjF.js +61 -0
  144. package/dist/chunks/grBadgeStyles-C2wLlkjF.js.map +1 -0
  145. package/dist/chunks/grButtonStyles-B_-YRE__.js +221 -0
  146. package/dist/chunks/grButtonStyles-B_-YRE__.js.map +1 -0
  147. package/dist/chunks/grCheckboxStyles-hOAgURZG.js +82 -0
  148. package/dist/chunks/grCheckboxStyles-hOAgURZG.js.map +1 -0
  149. package/dist/chunks/grDropdownStyles-V7TRiCXn.js +24 -0
  150. package/dist/chunks/grDropdownStyles-V7TRiCXn.js.map +1 -0
  151. package/dist/chunks/grFormFieldStyles-BkeZHIw0.js +32 -0
  152. package/dist/chunks/grFormFieldStyles-BkeZHIw0.js.map +1 -0
  153. package/dist/chunks/grIconStyles-BwJrml2L.js +44 -0
  154. package/dist/chunks/grIconStyles-BwJrml2L.js.map +1 -0
  155. package/dist/chunks/grInputStyles-CJeMhUe5.js +66 -0
  156. package/dist/chunks/grInputStyles-CJeMhUe5.js.map +1 -0
  157. package/dist/chunks/grKbdStyles-DAoxiytu.js +31 -0
  158. package/dist/chunks/grKbdStyles-DAoxiytu.js.map +1 -0
  159. package/dist/chunks/grLinkStyles-BoL8QYcV.js +84 -0
  160. package/dist/chunks/grLinkStyles-BoL8QYcV.js.map +1 -0
  161. package/dist/chunks/grLoadingStyles-DEmji2wv.js +30 -0
  162. package/dist/chunks/grLoadingStyles-DEmji2wv.js.map +1 -0
  163. package/dist/chunks/grModalStyles-EZfuEiw_.js +77 -0
  164. package/dist/chunks/grModalStyles-EZfuEiw_.js.map +1 -0
  165. package/dist/chunks/grPopoverStyles-Rz_Z5nLW.js +46 -0
  166. package/dist/chunks/grPopoverStyles-Rz_Z5nLW.js.map +1 -0
  167. package/dist/chunks/grSelectStyles-eTz4uPMP.js +147 -0
  168. package/dist/chunks/grSelectStyles-eTz4uPMP.js.map +1 -0
  169. package/dist/chunks/grSliderStyles-B5uNxNJq.js +133 -0
  170. package/dist/chunks/grSliderStyles-B5uNxNJq.js.map +1 -0
  171. package/dist/chunks/grStyle-CrgLQKKf.js +46 -0
  172. package/dist/chunks/grStyle-CrgLQKKf.js.map +1 -0
  173. package/dist/chunks/grTableStyles-C-iaqQUN.js +26 -0
  174. package/dist/chunks/grTableStyles-C-iaqQUN.js.map +1 -0
  175. package/dist/chunks/grTextareaStyles-CWI2SqC8.js +50 -0
  176. package/dist/chunks/grTextareaStyles-CWI2SqC8.js.map +1 -0
  177. package/dist/chunks/granular-provider-CtrXGa7c.js +193 -0
  178. package/dist/chunks/granular-provider-CtrXGa7c.js.map +1 -0
  179. package/dist/chunks/granularityI18n-BC5zsj_d.js +68 -0
  180. package/dist/chunks/granularityI18n-BC5zsj_d.js.map +1 -0
  181. package/dist/chunks/inert-DIHCCn_1.js +78 -0
  182. package/dist/chunks/inert-DIHCCn_1.js.map +1 -0
  183. package/dist/chunks/keyboard-zYvvyHd4.js +61 -0
  184. package/dist/chunks/keyboard-zYvvyHd4.js.map +1 -0
  185. package/dist/chunks/loader-2-B1fdsdWW.js +23 -0
  186. package/dist/chunks/loader-2-B1fdsdWW.js.map +1 -0
  187. package/dist/chunks/minus-oxdbHF33.js +23 -0
  188. package/dist/chunks/minus-oxdbHF33.js.map +1 -0
  189. package/dist/chunks/optionFilter-BVY988pC.js +149 -0
  190. package/dist/chunks/optionFilter-BVY988pC.js.map +1 -0
  191. package/dist/chunks/portalRoot-CWD4zHBm.js +35 -0
  192. package/dist/chunks/portalRoot-CWD4zHBm.js.map +1 -0
  193. package/dist/chunks/ru-COWxgh2A.js +331 -0
  194. package/dist/chunks/ru-COWxgh2A.js.map +1 -0
  195. package/dist/chunks/safelist-CudBLyAD.js +26 -0
  196. package/dist/chunks/safelist-CudBLyAD.js.map +1 -0
  197. package/dist/chunks/slotNodes-DxNXpC7v.js +39 -0
  198. package/dist/chunks/slotNodes-DxNXpC7v.js.map +1 -0
  199. package/dist/chunks/useControlAddons-asUr10Pf.js +128 -0
  200. package/dist/chunks/useControlAddons-asUr10Pf.js.map +1 -0
  201. package/dist/chunks/useControlledOpen-DV3SqLTP.js +27 -0
  202. package/dist/chunks/useControlledOpen-DV3SqLTP.js.map +1 -0
  203. package/dist/chunks/useFilePreviews-DnwgdyBs.js +53 -0
  204. package/dist/chunks/useFilePreviews-DnwgdyBs.js.map +1 -0
  205. package/dist/chunks/useFocusWithin-BwHE0rzm.js +33 -0
  206. package/dist/chunks/useFocusWithin-BwHE0rzm.js.map +1 -0
  207. package/dist/chunks/useModalOverlay-DCM4d3yA.js +212 -0
  208. package/dist/chunks/useModalOverlay-DCM4d3yA.js.map +1 -0
  209. package/dist/chunks/useOverlayLayer-BupuP_hs.js +149 -0
  210. package/dist/chunks/useOverlayLayer-BupuP_hs.js.map +1 -0
  211. package/dist/chunks/usePortalTarget-RyzEgNTb.js +77 -0
  212. package/dist/chunks/usePortalTarget-RyzEgNTb.js.map +1 -0
  213. package/dist/chunks/validation-5HhpanPP.js +178 -0
  214. package/dist/chunks/validation-5HhpanPP.js.map +1 -0
  215. package/dist/components/GrAlert/chunks/GrAlert-BC1lplbY.js +272 -0
  216. package/dist/components/GrAlert/chunks/GrAlert-BC1lplbY.js.map +1 -0
  217. package/dist/components/GrAlert/index.js +2 -2
  218. package/dist/components/GrAutocomplete/chunks/GrAutocomplete-CQ9T7Lly.js +851 -0
  219. package/dist/components/GrAutocomplete/chunks/GrAutocomplete-CQ9T7Lly.js.map +1 -0
  220. package/dist/components/GrAutocomplete/index.js +2 -2
  221. package/dist/components/GrAutocomplete/styles.css +1 -0
  222. package/dist/components/GrAvatar/chunks/GrAvatar-CVUujLmn.js +222 -0
  223. package/dist/components/GrAvatar/chunks/GrAvatar-CVUujLmn.js.map +1 -0
  224. package/dist/components/GrAvatar/index.js +3 -3
  225. package/dist/components/GrBadge/chunks/GrBadge-B1tgqfGQ.js +40 -0
  226. package/dist/components/GrBadge/chunks/GrBadge-B1tgqfGQ.js.map +1 -0
  227. package/dist/components/GrBadge/index.js +2 -2
  228. package/dist/components/GrBadge/styles.css +1 -0
  229. package/dist/components/GrBadge/themes/dark.css +19 -0
  230. package/dist/components/GrBadge/themes/light.css +18 -0
  231. package/dist/components/GrBadgeWrap/chunks/GrBadgeWrap-C-E9betg.js +97 -0
  232. package/dist/components/GrBadgeWrap/chunks/GrBadgeWrap-C-E9betg.js.map +1 -0
  233. package/dist/components/GrBadgeWrap/index.js +3 -3
  234. package/dist/components/GrBadgeWrap/styles.css +1 -0
  235. package/dist/components/GrBottomNav/chunks/GrBottomNav-9GH7Dd9E.js +117 -0
  236. package/dist/components/GrBottomNav/chunks/GrBottomNav-9GH7Dd9E.js.map +1 -0
  237. package/dist/components/GrBottomNav/index.js +3 -3
  238. package/dist/components/GrBreadcrumbs/chunks/GrBreadcrumbs-BCNGDS6k.js +266 -0
  239. package/dist/components/GrBreadcrumbs/chunks/GrBreadcrumbs-BCNGDS6k.js.map +1 -0
  240. package/dist/components/GrBreadcrumbs/index.js +3 -0
  241. package/dist/components/GrButton/chunks/GrButton-D0m_z0XW.js +153 -0
  242. package/dist/components/GrButton/chunks/GrButton-D0m_z0XW.js.map +1 -0
  243. package/dist/components/GrButton/index.js +5 -5
  244. package/dist/components/GrButton/themes/dark.css +46 -0
  245. package/dist/components/GrButton/themes/light.css +82 -0
  246. package/dist/components/GrButtonGroup/chunks/GrButtonGroup-CKyiAV8K.js +44 -0
  247. package/dist/components/GrButtonGroup/chunks/GrButtonGroup-CKyiAV8K.js.map +1 -0
  248. package/dist/components/GrButtonGroup/index.js +3 -2
  249. package/dist/components/GrButtonGroup/styles.css +1 -0
  250. package/dist/components/GrCard/chunks/GrCard-DOrGHf2x.js +89 -0
  251. package/dist/components/GrCard/chunks/GrCard-DOrGHf2x.js.map +1 -0
  252. package/dist/components/GrCard/index.js +3 -3
  253. package/dist/components/GrCheckbox/chunks/GrCheckbox-BLOp8452.js +262 -0
  254. package/dist/components/GrCheckbox/chunks/GrCheckbox-BLOp8452.js.map +1 -0
  255. package/dist/components/GrCheckbox/index.js +3 -3
  256. package/dist/components/GrCheckboxGroup/chunks/GrCheckboxGroup-CXTx2Z5H.js +140 -0
  257. package/dist/components/GrCheckboxGroup/chunks/GrCheckboxGroup-CXTx2Z5H.js.map +1 -0
  258. package/dist/components/GrCheckboxGroup/index.js +3 -0
  259. package/dist/components/GrCollapse/chunks/GrCollapse-B2Fc6A9r.js +308 -0
  260. package/dist/components/GrCollapse/chunks/GrCollapse-B2Fc6A9r.js.map +1 -0
  261. package/dist/components/GrCollapse/index.js +3 -3
  262. package/dist/components/GrColorPicker/chunks/GrColorPicker-bnYBRGk8.js +584 -0
  263. package/dist/components/GrColorPicker/chunks/GrColorPicker-bnYBRGk8.js.map +1 -0
  264. package/dist/components/GrColorPicker/index.js +3 -0
  265. package/dist/components/GrColorPicker/styles.css +1 -0
  266. package/dist/components/GrCommandPalette/chunks/GrCommandPalette-MWDYDPNC.js +566 -0
  267. package/dist/components/GrCommandPalette/chunks/GrCommandPalette-MWDYDPNC.js.map +1 -0
  268. package/dist/components/GrCommandPalette/index.js +2 -2
  269. package/dist/components/GrCommandPalette/styles.css +1 -0
  270. package/dist/components/GrConfigProvider/chunks/GrConfigProvider-BA6JO7V6.js +144 -0
  271. package/dist/components/GrConfigProvider/chunks/GrConfigProvider-BA6JO7V6.js.map +1 -0
  272. package/dist/components/GrConfigProvider/index.js +2 -2
  273. package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-DaQmlp1_.js +200 -0
  274. package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-DaQmlp1_.js.map +1 -0
  275. package/dist/components/GrConfirmDialog/index.js +2 -2
  276. package/dist/components/GrDataTable/chunks/GrDataTable-DVFho9Cj.js +605 -0
  277. package/dist/components/GrDataTable/chunks/GrDataTable-DVFho9Cj.js.map +1 -0
  278. package/dist/components/GrDataTable/index.js +3 -3
  279. package/dist/components/GrDialog/chunks/GrDialog-AE1gIZuz.js +255 -0
  280. package/dist/components/GrDialog/chunks/GrDialog-AE1gIZuz.js.map +1 -0
  281. package/dist/components/GrDialog/index.js +1 -1
  282. package/dist/components/GrDialogService/chunks/GrDialogService-B4DYWDkA.js +656 -0
  283. package/dist/components/GrDialogService/chunks/GrDialogService-B4DYWDkA.js.map +1 -0
  284. package/dist/components/GrDialogService/index.js +3 -3
  285. package/dist/components/GrDivider/chunks/GrDivider-B2Xwc_QO.js +109 -0
  286. package/dist/components/GrDivider/chunks/GrDivider-B2Xwc_QO.js.map +1 -0
  287. package/dist/components/GrDivider/index.js +3 -3
  288. package/dist/components/GrDrawer/chunks/GrDrawer-DQwi6aRw.js +251 -0
  289. package/dist/components/GrDrawer/chunks/GrDrawer-DQwi6aRw.js.map +1 -0
  290. package/dist/components/GrDrawer/index.js +2 -2
  291. package/dist/components/GrDropdown/chunks/GrDropdown-BLng6V1m.js +300 -0
  292. package/dist/components/GrDropdown/chunks/GrDropdown-BLng6V1m.js.map +1 -0
  293. package/dist/components/GrDropdown/index.js +2 -2
  294. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-BImk2Vs7.js +421 -0
  295. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-BImk2Vs7.js.map +1 -0
  296. package/dist/components/GrDropdownMenu/index.js +3 -3
  297. package/dist/components/GrEmptyState/chunks/GrEmptyState-W7Irx3vc.js +86 -0
  298. package/dist/components/GrEmptyState/chunks/GrEmptyState-W7Irx3vc.js.map +1 -0
  299. package/dist/components/GrEmptyState/index.js +3 -3
  300. package/dist/components/GrFileUpload/chunks/GrFileUpload-D0B-BEsd.js +1080 -0
  301. package/dist/components/GrFileUpload/chunks/GrFileUpload-D0B-BEsd.js.map +1 -0
  302. package/dist/components/GrFileUpload/index.js +4 -4
  303. package/dist/components/GrForm/chunks/GrForm-BCHCfIMv.js +326 -0
  304. package/dist/components/GrForm/chunks/GrForm-BCHCfIMv.js.map +1 -0
  305. package/dist/components/GrForm/index.js +3 -2
  306. package/dist/components/GrFormField/chunks/GrFormField-CL5rcgj6.js +190 -0
  307. package/dist/components/GrFormField/chunks/GrFormField-CL5rcgj6.js.map +1 -0
  308. package/dist/components/GrFormField/index.js +3 -3
  309. package/dist/components/GrFormFile/chunks/GrFormFile-BikSD7bg.js +452 -0
  310. package/dist/components/GrFormFile/chunks/GrFormFile-BikSD7bg.js.map +1 -0
  311. package/dist/components/GrFormFile/index.js +3 -3
  312. package/dist/components/GrFormFile/styles.css +1 -0
  313. package/dist/components/GrFormSection/chunks/GrFormSection-BEh5n4jF.js +63 -0
  314. package/dist/components/GrFormSection/chunks/GrFormSection-BEh5n4jF.js.map +1 -0
  315. package/dist/components/GrFormSection/index.js +3 -3
  316. package/dist/components/GrIcon/chunks/GrIcon-BvA2ZGXP.js +57 -0
  317. package/dist/components/GrIcon/chunks/GrIcon-BvA2ZGXP.js.map +1 -0
  318. package/dist/components/GrIcon/index.js +3 -3
  319. package/dist/components/GrIcon/styles.css +1 -0
  320. package/dist/components/GrImageViewer/chunks/GrImageViewer-BeCnE8XQ.js +1103 -0
  321. package/dist/components/GrImageViewer/chunks/GrImageViewer-BeCnE8XQ.js.map +1 -0
  322. package/dist/components/GrImageViewer/index.js +3 -3
  323. package/dist/components/GrImageViewer/themes/dark.css +17 -0
  324. package/dist/components/GrImageViewer/themes/light.css +16 -0
  325. package/dist/components/GrInput/chunks/GrInput-DD2gYdqS.js +348 -0
  326. package/dist/components/GrInput/chunks/GrInput-DD2gYdqS.js.map +1 -0
  327. package/dist/components/GrInput/index.js +2 -2
  328. package/dist/components/GrInputTag/chunks/GrInputTag-DmNunixz.js +525 -0
  329. package/dist/components/GrInputTag/chunks/GrInputTag-DmNunixz.js.map +1 -0
  330. package/dist/components/GrInputTag/index.js +2 -2
  331. package/dist/components/GrKbd/chunks/GrKbd-DRFPvW3G.js +192 -0
  332. package/dist/components/GrKbd/chunks/GrKbd-DRFPvW3G.js.map +1 -0
  333. package/dist/components/GrKbd/index.js +3 -3
  334. package/dist/components/GrLink/chunks/GrLink-D-cgUMXW.js +163 -0
  335. package/dist/components/GrLink/chunks/GrLink-D-cgUMXW.js.map +1 -0
  336. package/dist/components/GrLink/index.js +2 -2
  337. package/dist/components/GrList/chunks/GrList-4YU1NZtM.js +277 -0
  338. package/dist/components/GrList/chunks/GrList-4YU1NZtM.js.map +1 -0
  339. package/dist/components/GrList/index.js +3 -3
  340. package/dist/components/GrList/styles.css +1 -0
  341. package/dist/components/GrLoading/chunks/GrLoading-CH95CFzS.js +101 -0
  342. package/dist/components/GrLoading/chunks/GrLoading-CH95CFzS.js.map +1 -0
  343. package/dist/components/GrLoading/index.js +2 -2
  344. package/dist/components/GrModal/chunks/GrModal-B8I78T0N.js +313 -0
  345. package/dist/components/GrModal/chunks/GrModal-B8I78T0N.js.map +1 -0
  346. package/dist/components/GrModal/index.js +3 -4
  347. package/dist/components/GrNavbar/chunks/GrNavbar-CF0KbM_6.js +104 -0
  348. package/dist/components/GrNavbar/chunks/GrNavbar-CF0KbM_6.js.map +1 -0
  349. package/dist/components/GrNavbar/index.js +3 -3
  350. package/dist/components/GrNumberInput/chunks/GrNumberInput-CZOyPz4J.js +658 -0
  351. package/dist/components/GrNumberInput/chunks/GrNumberInput-CZOyPz4J.js.map +1 -0
  352. package/dist/components/GrNumberInput/index.js +2 -2
  353. package/dist/components/GrPagination/chunks/GrPagination-B6N0QZBf.js +283 -0
  354. package/dist/components/GrPagination/chunks/GrPagination-B6N0QZBf.js.map +1 -0
  355. package/dist/components/GrPagination/index.js +3 -3
  356. package/dist/components/GrPopover/chunks/GrPopover-B1eRCOoO.js +216 -0
  357. package/dist/components/GrPopover/chunks/GrPopover-B1eRCOoO.js.map +1 -0
  358. package/dist/components/GrPopover/index.js +3 -0
  359. package/dist/components/GrProgressBar/chunks/GrProgressBar-BiHnaitu.js +90 -0
  360. package/dist/components/GrProgressBar/chunks/GrProgressBar-BiHnaitu.js.map +1 -0
  361. package/dist/components/GrProgressBar/index.js +2 -2
  362. package/dist/components/GrProgressBar/styles.css +1 -0
  363. package/dist/components/GrProgressBar/themes/dark.css +13 -0
  364. package/dist/components/GrProgressBar/themes/light.css +12 -0
  365. package/dist/components/GrProgressCircle/chunks/GrProgressCircle-CTogjcHz.js +210 -0
  366. package/dist/components/GrProgressCircle/chunks/GrProgressCircle-CTogjcHz.js.map +1 -0
  367. package/dist/components/GrProgressCircle/index.js +3 -0
  368. package/dist/components/GrProgressCircle/styles.css +1 -0
  369. package/dist/components/GrPromptDialog/chunks/GrPromptDialog-Ct174NVD.js +348 -0
  370. package/dist/components/GrPromptDialog/chunks/GrPromptDialog-Ct174NVD.js.map +1 -0
  371. package/dist/components/GrPromptDialog/index.js +2 -2
  372. package/dist/components/GrRadio/chunks/GrRadio-DksDro_U.js +277 -0
  373. package/dist/components/GrRadio/chunks/GrRadio-DksDro_U.js.map +1 -0
  374. package/dist/components/GrRadio/index.js +2 -2
  375. package/dist/components/GrRadioGroup/chunks/GrRadioGroup-BOIhejE6.js +189 -0
  376. package/dist/components/GrRadioGroup/chunks/GrRadioGroup-BOIhejE6.js.map +1 -0
  377. package/dist/components/GrRadioGroup/index.js +2 -2
  378. package/dist/components/GrRating/chunks/GrRating-JrHXz0Rv.js +315 -0
  379. package/dist/components/GrRating/chunks/GrRating-JrHXz0Rv.js.map +1 -0
  380. package/dist/components/GrRating/index.js +2 -2
  381. package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-C7W9mgYN.js +777 -0
  382. package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-C7W9mgYN.js.map +1 -0
  383. package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-DhX4jjay.js +224 -0
  384. package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-DhX4jjay.js.map +1 -0
  385. package/dist/components/GrResponseErrorBanner/index.js +2 -2
  386. package/dist/components/GrSegmented/chunks/GrSegmented-BQIlH5KI.js +406 -0
  387. package/dist/components/GrSegmented/chunks/GrSegmented-BQIlH5KI.js.map +1 -0
  388. package/dist/components/GrSegmented/index.js +3 -3
  389. package/dist/components/GrSelect/chunks/GrSelect-aqkPCqjd.js +1372 -0
  390. package/dist/components/GrSelect/chunks/GrSelect-aqkPCqjd.js.map +1 -0
  391. package/dist/components/GrSelect/index.js +2 -2
  392. package/dist/components/GrSelect/styles.css +1 -0
  393. package/dist/components/GrSidebar/chunks/GrSidebar-DRGnnViw.js +257 -0
  394. package/dist/components/GrSidebar/chunks/GrSidebar-DRGnnViw.js.map +1 -0
  395. package/dist/components/GrSidebar/index.js +3 -3
  396. package/dist/components/GrSkeleton/chunks/GrSkeleton-DEvNE3bC.js +84 -0
  397. package/dist/components/GrSkeleton/chunks/GrSkeleton-DEvNE3bC.js.map +1 -0
  398. package/dist/components/GrSkeleton/index.js +2 -2
  399. package/dist/components/GrSlider/chunks/GrSlider-DkU9IQSX.js +392 -0
  400. package/dist/components/GrSlider/chunks/GrSlider-DkU9IQSX.js.map +1 -0
  401. package/dist/components/GrSlider/index.js +2 -2
  402. package/dist/components/GrSplitter/chunks/GrSplitter-7To8jbJ8.js +288 -0
  403. package/dist/components/GrSplitter/chunks/GrSplitter-7To8jbJ8.js.map +1 -0
  404. package/dist/components/GrSplitter/index.js +3 -0
  405. package/dist/components/GrSplitter/styles.css +1 -0
  406. package/dist/components/GrStatistic/chunks/GrStatistic-CttyoYPT.js +319 -0
  407. package/dist/components/GrStatistic/chunks/GrStatistic-CttyoYPT.js.map +1 -0
  408. package/dist/components/GrStatistic/index.js +2 -2
  409. package/dist/components/GrSwitch/chunks/GrSwitch-B9TYbiih.js +183 -0
  410. package/dist/components/GrSwitch/chunks/GrSwitch-B9TYbiih.js.map +1 -0
  411. package/dist/components/GrSwitch/index.js +2 -2
  412. package/dist/components/GrTabPanels/chunks/GrTabPanels-BVe1CZdJ.js +81 -0
  413. package/dist/components/GrTabPanels/chunks/GrTabPanels-BVe1CZdJ.js.map +1 -0
  414. package/dist/components/GrTabPanels/index.js +2 -2
  415. package/dist/components/GrTable/chunks/GrTable-BB-mI_NM.js +163 -0
  416. package/dist/components/GrTable/chunks/GrTable-BB-mI_NM.js.map +1 -0
  417. package/dist/components/GrTable/index.js +3 -3
  418. package/dist/components/GrTabs/chunks/GrTabs-B8CDq2D9.js +272 -0
  419. package/dist/components/GrTabs/chunks/GrTabs-B8CDq2D9.js.map +1 -0
  420. package/dist/components/GrTabs/index.js +3 -3
  421. package/dist/components/GrTextarea/chunks/GrTextarea-DUh5Tlo4.js +241 -0
  422. package/dist/components/GrTextarea/chunks/GrTextarea-DUh5Tlo4.js.map +1 -0
  423. package/dist/components/GrTextarea/index.js +2 -2
  424. package/dist/components/GrTimeline/chunks/GrTimeline-CE9b3s18.js +285 -0
  425. package/dist/components/GrTimeline/chunks/GrTimeline-CE9b3s18.js.map +1 -0
  426. package/dist/components/GrTimeline/index.js +3 -0
  427. package/dist/components/GrTimeline/styles.css +1 -0
  428. package/dist/components/GrToaster/chunks/GrToaster-BKQy3Srm.js +272 -0
  429. package/dist/components/GrToaster/chunks/GrToaster-BKQy3Srm.js.map +1 -0
  430. package/dist/components/GrToaster/index.js +1 -1
  431. package/dist/components/GrToaster/styles.css +1 -0
  432. package/dist/components/GrTooltip/chunks/GrTooltip-DEbejfhA.js +185 -0
  433. package/dist/components/GrTooltip/chunks/GrTooltip-DEbejfhA.js.map +1 -0
  434. package/dist/components/GrTooltip/index.js +3 -3
  435. package/dist/components/GrTree/chunks/GrTree-wfdbvygw.js +1339 -0
  436. package/dist/components/GrTree/chunks/GrTree-wfdbvygw.js.map +1 -0
  437. package/dist/components/GrTree/index.js +2 -2
  438. package/dist/components/GrTree/styles.css +1 -0
  439. package/dist/components/GrTreeSelect/chunks/GrTreeSelect-lLWmAMtI.js +623 -0
  440. package/dist/components/GrTreeSelect/chunks/GrTreeSelect-lLWmAMtI.js.map +1 -0
  441. package/dist/components/GrTreeSelect/index.js +2 -2
  442. package/dist/composables/useAnnouncer.js +114 -0
  443. package/dist/composables/useAnnouncer.js.map +1 -0
  444. package/dist/composables/useDismissible.js +31 -0
  445. package/dist/composables/useDismissible.js.map +1 -0
  446. package/dist/composables/useFloating.js +112 -0
  447. package/dist/composables/useFloating.js.map +1 -0
  448. package/dist/composables/useFocusTrap.js +124 -0
  449. package/dist/composables/useFocusTrap.js.map +1 -0
  450. package/dist/composables/useGrFormControl.js +24 -0
  451. package/dist/composables/useGrFormControl.js.map +1 -0
  452. package/dist/composables/useOverlayLayer.js +2 -0
  453. package/dist/composables/usePortalTarget.js +2 -0
  454. package/dist/composables/useTheme.js +106 -36
  455. package/dist/composables/useTheme.js.map +1 -1
  456. package/dist/composables/useToast.js +123 -7
  457. package/dist/composables/useToast.js.map +1 -1
  458. package/dist/composables/useVirtualList.js +244 -0
  459. package/dist/composables/useVirtualList.js.map +1 -0
  460. package/dist/directives/dropzone.js +1 -1
  461. package/dist/directives/hotkey.js +9 -15
  462. package/dist/directives/hotkey.js.map +1 -1
  463. package/dist/directives/loading.js +43 -7
  464. package/dist/directives/loading.js.map +1 -1
  465. package/dist/fileValidation/index.js +2 -2
  466. package/dist/granular-provider-node.js +1 -31
  467. package/dist/granular-provider.js +1 -4
  468. package/dist/i18n/all.js +1 -1
  469. package/dist/i18n/index.js +1 -1
  470. package/dist/index.js +148 -140
  471. package/dist/styles/base.css +32 -0
  472. package/dist/styles/preflight.css +33 -0
  473. package/dist/styles/themes/dark.css +81 -26
  474. package/dist/styles/themes/light.css +86 -15
  475. package/dist/styles/tokens.css +63 -4
  476. package/dist/tokens.js +3132 -0
  477. package/dist/tokens.js.map +1 -0
  478. package/dist/types/src/components/GrAlert/GrAlert.vue.d.ts +42 -10
  479. package/dist/types/src/components/GrAlert/config.d.ts +1 -1
  480. package/dist/types/src/components/GrAlert/defaults.d.ts +9 -3
  481. package/dist/types/src/components/GrAlert/grAlertStyles.d.ts +0 -7
  482. package/dist/types/src/components/GrAlert/index.d.ts +3 -2
  483. package/dist/types/src/components/GrAutocomplete/GrAutocomplete.vue.d.ts +112 -99
  484. package/dist/types/src/components/GrAutocomplete/config.d.ts +1 -1
  485. package/dist/types/src/components/GrAutocomplete/grAutocompleteStyles.d.ts +43 -7
  486. package/dist/types/src/components/GrAutocomplete/index.d.ts +4 -0
  487. package/dist/types/src/components/GrAvatar/GrAvatar.vue.d.ts +40 -17
  488. package/dist/types/src/components/GrAvatar/GrAvatarGroup.vue.d.ts +70 -0
  489. package/dist/types/src/components/GrAvatar/avatarContext.d.ts +12 -0
  490. package/dist/types/src/components/GrAvatar/config.d.ts +1 -1
  491. package/dist/types/src/components/GrAvatar/defaults.d.ts +16 -0
  492. package/dist/types/src/components/GrAvatar/grAvatarStyles.d.ts +38 -0
  493. package/dist/types/src/components/GrAvatar/index.d.ts +5 -0
  494. package/dist/types/src/components/GrAvatar/safelist.d.ts +4 -0
  495. package/dist/types/src/components/GrBadge/GrBadge.vue.d.ts +4 -4
  496. package/dist/types/src/components/GrBadge/config.d.ts +1 -1
  497. package/dist/types/src/components/GrBadge/grBadgeStyles.d.ts +13 -1
  498. package/dist/types/src/components/GrBadge/index.d.ts +1 -0
  499. package/dist/types/src/components/GrBadgeWrap/GrBadgeWrap.vue.d.ts +42 -5
  500. package/dist/types/src/components/GrBadgeWrap/config.d.ts +1 -1
  501. package/dist/types/src/components/GrBadgeWrap/grBadgeWrapStyles.d.ts +46 -0
  502. package/dist/types/src/components/GrBadgeWrap/index.d.ts +4 -0
  503. package/dist/types/src/components/GrBadgeWrap/safelist.d.ts +1 -0
  504. package/dist/types/src/components/GrBottomNav/GrBottomNav.vue.d.ts +91 -4
  505. package/dist/types/src/components/GrBottomNav/config.d.ts +1 -1
  506. package/dist/types/src/components/GrBottomNav/defaults.d.ts +16 -0
  507. package/dist/types/src/components/GrBottomNav/grBottomNavStyles.d.ts +56 -0
  508. package/dist/types/src/components/GrBottomNav/index.d.ts +6 -1
  509. package/dist/types/src/components/GrBottomNav/safelist.d.ts +1 -0
  510. package/dist/types/src/components/GrBreadcrumbs/GrBreadcrumbs.vue.d.ts +117 -0
  511. package/dist/types/src/components/GrBreadcrumbs/config.d.ts +1 -0
  512. package/dist/types/src/components/GrBreadcrumbs/defaults.d.ts +15 -0
  513. package/dist/types/src/components/GrBreadcrumbs/grBreadcrumbsStyles.d.ts +86 -0
  514. package/dist/types/src/components/GrBreadcrumbs/index.d.ts +8 -0
  515. package/dist/types/src/components/GrBreadcrumbs/safelist.d.ts +1 -0
  516. package/dist/types/src/components/GrButton/GrButton.vue.d.ts +31 -7
  517. package/dist/types/src/components/GrButton/config.d.ts +1 -1
  518. package/dist/types/src/components/GrButton/grButtonStyles.d.ts +27 -3
  519. package/dist/types/src/components/GrButton/index.d.ts +5 -1
  520. package/dist/types/src/components/GrButton/safelist.d.ts +1 -0
  521. package/dist/types/src/components/GrButtonGroup/GrButtonGroup.vue.d.ts +32 -4
  522. package/dist/types/src/components/GrButtonGroup/config.d.ts +1 -1
  523. package/dist/types/src/components/GrButtonGroup/context.d.ts +20 -0
  524. package/dist/types/src/components/GrButtonGroup/index.d.ts +3 -0
  525. package/dist/types/src/components/GrCard/GrCard.vue.d.ts +80 -3
  526. package/dist/types/src/components/GrCard/config.d.ts +1 -1
  527. package/dist/types/src/components/GrCard/defaults.d.ts +15 -0
  528. package/dist/types/src/components/GrCard/grCardStyles.d.ts +24 -0
  529. package/dist/types/src/components/GrCard/index.d.ts +5 -0
  530. package/dist/types/src/components/GrCard/safelist.d.ts +1 -0
  531. package/dist/types/src/components/GrCheckbox/GrCheckbox.vue.d.ts +56 -10
  532. package/dist/types/src/components/GrCheckbox/config.d.ts +1 -1
  533. package/dist/types/src/components/GrCheckbox/defaults.d.ts +14 -0
  534. package/dist/types/src/components/GrCheckbox/grCheckboxGroupContext.d.ts +19 -0
  535. package/dist/types/src/components/GrCheckbox/grCheckboxStyles.d.ts +44 -0
  536. package/dist/types/src/components/GrCheckbox/index.d.ts +9 -0
  537. package/dist/types/src/components/GrCheckbox/safelist.d.ts +13 -0
  538. package/dist/types/src/components/GrCheckboxGroup/GrCheckboxGroup.vue.d.ts +105 -0
  539. package/dist/types/src/components/GrCheckboxGroup/config.d.ts +1 -0
  540. package/dist/types/src/components/GrCheckboxGroup/defaults.d.ts +14 -0
  541. package/dist/types/src/components/GrCheckboxGroup/index.d.ts +9 -0
  542. package/dist/types/src/components/GrCollapse/GrCollapse.vue.d.ts +55 -7
  543. package/dist/types/src/components/GrCollapse/GrCollapseItem.vue.d.ts +13 -3
  544. package/dist/types/src/components/GrCollapse/config.d.ts +1 -1
  545. package/dist/types/src/components/GrCollapse/defaults.d.ts +19 -0
  546. package/dist/types/src/components/GrCollapse/grCollapseContext.d.ts +20 -0
  547. package/dist/types/src/components/GrCollapse/grCollapseStyles.d.ts +42 -0
  548. package/dist/types/src/components/GrCollapse/index.d.ts +3 -0
  549. package/dist/types/src/components/GrCollapse/safelist.d.ts +15 -0
  550. package/dist/types/src/components/GrColorPicker/GrColorPicker.vue.d.ts +104 -0
  551. package/dist/types/src/components/GrColorPicker/color.d.ts +38 -0
  552. package/dist/types/src/components/GrColorPicker/config.d.ts +1 -0
  553. package/dist/types/src/components/GrColorPicker/defaults.d.ts +15 -0
  554. package/dist/types/src/components/GrColorPicker/grColorPickerStyles.d.ts +39 -0
  555. package/dist/types/src/components/GrColorPicker/index.d.ts +11 -0
  556. package/dist/types/src/components/GrColorPicker/safelist.d.ts +1 -0
  557. package/dist/types/src/components/GrCommandPalette/GrCommandPalette.vue.d.ts +45 -10
  558. package/dist/types/src/components/GrCommandPalette/config.d.ts +1 -1
  559. package/dist/types/src/components/GrCommandPalette/defaults.d.ts +14 -0
  560. package/dist/types/src/components/GrCommandPalette/filtering.d.ts +24 -0
  561. package/dist/types/src/components/GrCommandPalette/grCommandPaletteStyles.d.ts +33 -8
  562. package/dist/types/src/components/GrCommandPalette/index.d.ts +4 -0
  563. package/dist/types/src/components/GrConfigProvider/GrConfigProvider.vue.d.ts +38 -4
  564. package/dist/types/src/components/GrConfigProvider/config.d.ts +1 -1
  565. package/dist/types/src/components/GrConfigProvider/context.d.ts +27 -0
  566. package/dist/types/src/components/GrConfigProvider/index.d.ts +1 -0
  567. package/dist/types/src/components/GrConfigProvider/zIndexScale.d.ts +23 -0
  568. package/dist/types/src/components/GrConfirmDialog/GrConfirmDialog.vue.d.ts +33 -4
  569. package/dist/types/src/components/GrConfirmDialog/config.d.ts +1 -1
  570. package/dist/types/src/components/GrConfirmDialog/defaults.d.ts +14 -0
  571. package/dist/types/src/components/GrConfirmDialog/index.d.ts +2 -1
  572. package/dist/types/src/components/GrDataTable/GrDataTable.vue.d.ts +92 -27
  573. package/dist/types/src/components/GrDataTable/config.d.ts +1 -1
  574. package/dist/types/src/components/GrDataTable/defaults.d.ts +10 -0
  575. package/dist/types/src/components/GrDataTable/grDataTableSort.d.ts +25 -0
  576. package/dist/types/src/components/GrDataTable/grDataTableStyles.d.ts +29 -0
  577. package/dist/types/src/components/GrDataTable/index.d.ts +10 -1
  578. package/dist/types/src/components/GrDataTable/safelist.d.ts +1 -0
  579. package/dist/types/src/components/GrDialog/GrDialog.vue.d.ts +51 -4
  580. package/dist/types/src/components/GrDialog/GrDialogCloseButton.vue.d.ts +3 -0
  581. package/dist/types/src/components/GrDialog/GrDialogHeader.vue.d.ts +3 -0
  582. package/dist/types/src/components/GrDialog/config.d.ts +1 -1
  583. package/dist/types/src/components/GrDialog/defaults.d.ts +14 -0
  584. package/dist/types/src/components/GrDialog/dialogShared.d.ts +2 -1
  585. package/dist/types/src/components/GrDialog/index.d.ts +5 -0
  586. package/dist/types/src/components/GrDialogService/GrDialogServiceHost.vue.d.ts +18 -1
  587. package/dist/types/src/components/GrDialogService/GrDialogServiceItem.vue.d.ts +15 -0
  588. package/dist/types/src/components/GrDialogService/config.d.ts +1 -1
  589. package/dist/types/src/components/GrDialogService/index.d.ts +3 -1
  590. package/dist/types/src/components/GrDialogService/store.d.ts +78 -7
  591. package/dist/types/src/components/GrDialogService/types.d.ts +22 -1
  592. package/dist/types/src/components/GrDialogService/useDialogService.d.ts +31 -1
  593. package/dist/types/src/components/GrDivider/GrDivider.vue.d.ts +44 -9
  594. package/dist/types/src/components/GrDivider/config.d.ts +1 -1
  595. package/dist/types/src/components/GrDivider/defaults.d.ts +15 -0
  596. package/dist/types/src/components/GrDivider/grDividerStyles.d.ts +19 -0
  597. package/dist/types/src/components/GrDivider/index.d.ts +4 -1
  598. package/dist/types/src/components/GrDivider/safelist.d.ts +1 -0
  599. package/dist/types/src/components/GrDrawer/GrDrawer.vue.d.ts +93 -17
  600. package/dist/types/src/components/GrDrawer/config.d.ts +1 -1
  601. package/dist/types/src/components/GrDrawer/defaults.d.ts +19 -0
  602. package/dist/types/src/components/GrDrawer/grDrawerStyles.d.ts +48 -2
  603. package/dist/types/src/components/GrDrawer/index.d.ts +6 -1
  604. package/dist/types/src/components/GrDropdown/GrDropdown.vue.d.ts +66 -13
  605. package/dist/types/src/components/GrDropdown/config.d.ts +1 -1
  606. package/dist/types/src/components/GrDropdown/grDropdownStyles.d.ts +4 -5
  607. package/dist/types/src/components/GrDropdown/index.d.ts +5 -2
  608. package/dist/types/src/components/GrDropdownMenu/GrDropdownMenu.vue.d.ts +79 -16
  609. package/dist/types/src/components/GrDropdownMenu/GrDropdownMenuColumn.vue.d.ts +2 -1
  610. package/dist/types/src/components/GrDropdownMenu/GrDropdownMenuColumns.vue.d.ts +3 -2
  611. package/dist/types/src/components/GrDropdownMenu/GrDropdownMenuGroup.vue.d.ts +2 -2
  612. package/dist/types/src/components/GrDropdownMenu/GrDropdownMenuHeader.vue.d.ts +3 -2
  613. package/dist/types/src/components/GrDropdownMenu/GrDropdownMenuItem.vue.d.ts +51 -5
  614. package/dist/types/src/components/GrDropdownMenu/GrDropdownMenuList.vue.d.ts +5 -0
  615. package/dist/types/src/components/GrDropdownMenu/config.d.ts +1 -1
  616. package/dist/types/src/components/GrDropdownMenu/grDropdownMenuStyles.d.ts +33 -0
  617. package/dist/types/src/components/GrDropdownMenu/index.d.ts +6 -2
  618. package/dist/types/src/components/GrDropdownMenu/menuModel.d.ts +42 -0
  619. package/dist/types/src/components/GrDropdownMenu/safelist.d.ts +7 -0
  620. package/dist/types/src/components/GrEmptyState/GrEmptyState.vue.d.ts +33 -10
  621. package/dist/types/src/components/GrEmptyState/config.d.ts +1 -1
  622. package/dist/types/src/components/GrEmptyState/defaults.d.ts +16 -0
  623. package/dist/types/src/components/GrEmptyState/grEmptyStateStyles.d.ts +32 -0
  624. package/dist/types/src/components/GrEmptyState/index.d.ts +4 -0
  625. package/dist/types/src/components/GrEmptyState/safelist.d.ts +1 -0
  626. package/dist/types/src/components/GrFileUpload/GrFileUpload.vue.d.ts +158 -148
  627. package/dist/types/src/components/GrFileUpload/config.d.ts +1 -1
  628. package/dist/types/src/components/GrFileUpload/defaults.d.ts +10 -0
  629. package/dist/types/src/components/GrFileUpload/fileEntry.d.ts +26 -0
  630. package/dist/types/src/components/GrFileUpload/grFileUploadStyles.d.ts +45 -0
  631. package/dist/types/src/components/GrFileUpload/index.d.ts +10 -1
  632. package/dist/types/src/components/GrFileUpload/maxFileSize.d.ts +2 -0
  633. package/dist/types/src/components/GrFileUpload/safelist.d.ts +1 -0
  634. package/dist/types/src/components/GrFileUpload/useDropZone.d.ts +24 -0
  635. package/dist/types/src/components/GrFileUpload/usePerFileUpload.d.ts +38 -0
  636. package/dist/types/src/components/GrFileUpload/useUploadState.d.ts +30 -0
  637. package/dist/types/src/components/GrForm/GrForm.vue.d.ts +38 -2
  638. package/dist/types/src/components/GrForm/config.d.ts +1 -1
  639. package/dist/types/src/components/GrForm/context.d.ts +22 -3
  640. package/dist/types/src/components/GrForm/fileRule.d.ts +43 -0
  641. package/dist/types/src/components/GrForm/index.d.ts +6 -2
  642. package/dist/types/src/components/GrForm/modelSnapshot.d.ts +17 -0
  643. package/dist/types/src/components/GrForm/validation.d.ts +16 -1
  644. package/dist/types/src/components/GrFormField/GrFormField.vue.d.ts +56 -10
  645. package/dist/types/src/components/GrFormField/config.d.ts +1 -1
  646. package/dist/types/src/components/GrFormField/context.d.ts +19 -0
  647. package/dist/types/src/components/GrFormField/defaults.d.ts +15 -0
  648. package/dist/types/src/components/GrFormField/grFormFieldStyles.d.ts +19 -0
  649. package/dist/types/src/components/GrFormField/index.d.ts +5 -1
  650. package/dist/types/src/components/GrFormField/safelist.d.ts +1 -0
  651. package/dist/types/src/components/GrFormFile/GrFormFile.vue.d.ts +70 -16
  652. package/dist/types/src/components/GrFormFile/config.d.ts +1 -1
  653. package/dist/types/src/components/GrFormFile/defaults.d.ts +10 -0
  654. package/dist/types/src/components/GrFormFile/grFormFileStyles.d.ts +22 -0
  655. package/dist/types/src/components/GrFormFile/index.d.ts +7 -0
  656. package/dist/types/src/components/GrFormFile/safelist.d.ts +1 -0
  657. package/dist/types/src/components/GrFormSection/GrFormSection.vue.d.ts +34 -7
  658. package/dist/types/src/components/GrFormSection/config.d.ts +1 -1
  659. package/dist/types/src/components/GrFormSection/defaults.d.ts +14 -0
  660. package/dist/types/src/components/GrFormSection/grFormSectionStyles.d.ts +12 -0
  661. package/dist/types/src/components/GrFormSection/index.d.ts +4 -0
  662. package/dist/types/src/components/GrFormSection/safelist.d.ts +1 -0
  663. package/dist/types/src/components/GrIcon/GrIcon.vue.d.ts +40 -4
  664. package/dist/types/src/components/GrIcon/config.d.ts +1 -1
  665. package/dist/types/src/components/GrIcon/defaults.d.ts +14 -0
  666. package/dist/types/src/components/GrIcon/grIconStyles.d.ts +25 -0
  667. package/dist/types/src/components/GrIcon/index.d.ts +4 -0
  668. package/dist/types/src/components/GrIcon/safelist.d.ts +1 -0
  669. package/dist/types/src/components/GrImageViewer/GrImageViewer.vue.d.ts +87 -16
  670. package/dist/types/src/components/GrImageViewer/composables/usePointerGestures.d.ts +36 -0
  671. package/dist/types/src/components/GrImageViewer/composables/useViewerKeyboard.d.ts +7 -4
  672. package/dist/types/src/components/GrImageViewer/composables/useWheelGesture.d.ts +3 -2
  673. package/dist/types/src/components/GrImageViewer/composables/useZoomPan.d.ts +17 -3
  674. package/dist/types/src/components/GrImageViewer/config.d.ts +1 -1
  675. package/dist/types/src/components/GrImageViewer/grImageViewerStyles.d.ts +21 -0
  676. package/dist/types/src/components/GrImageViewer/index.d.ts +7 -0
  677. package/dist/types/src/components/GrImageViewer/safelist.d.ts +1 -0
  678. package/dist/types/src/components/GrInput/GrInput.vue.d.ts +66 -21
  679. package/dist/types/src/components/GrInput/config.d.ts +1 -1
  680. package/dist/types/src/components/GrInput/grInputStyles.d.ts +53 -7
  681. package/dist/types/src/components/GrInput/index.d.ts +5 -0
  682. package/dist/types/src/components/GrInputTag/GrInputTag.vue.d.ts +97 -14
  683. package/dist/types/src/components/GrInputTag/config.d.ts +1 -1
  684. package/dist/types/src/components/GrInputTag/defaults.d.ts +17 -0
  685. package/dist/types/src/components/GrInputTag/grInputTagStyles.d.ts +24 -1
  686. package/dist/types/src/components/GrInputTag/index.d.ts +5 -0
  687. package/dist/types/src/components/GrKbd/GrKbd.vue.d.ts +31 -10
  688. package/dist/types/src/components/GrKbd/config.d.ts +1 -1
  689. package/dist/types/src/components/GrKbd/defaults.d.ts +14 -0
  690. package/dist/types/src/components/GrKbd/grKbdStyles.d.ts +15 -0
  691. package/dist/types/src/components/GrKbd/index.d.ts +4 -1
  692. package/dist/types/src/components/GrKbd/safelist.d.ts +1 -0
  693. package/dist/types/src/components/GrLink/GrLink.vue.d.ts +23 -10
  694. package/dist/types/src/components/GrLink/config.d.ts +1 -1
  695. package/dist/types/src/components/GrLink/defaults.d.ts +14 -0
  696. package/dist/types/src/components/GrLink/grLinkStyles.d.ts +11 -13
  697. package/dist/types/src/components/GrLink/index.d.ts +2 -0
  698. package/dist/types/src/components/GrList/GrList.vue.d.ts +57 -32
  699. package/dist/types/src/components/GrList/GrListItem.vue.d.ts +42 -9
  700. package/dist/types/src/components/GrList/config.d.ts +1 -1
  701. package/dist/types/src/components/GrList/grListStyles.d.ts +25 -0
  702. package/dist/types/src/components/GrList/index.d.ts +5 -0
  703. package/dist/types/src/components/GrList/safelist.d.ts +1 -0
  704. package/dist/types/src/components/GrLoading/GrLoading.vue.d.ts +59 -19
  705. package/dist/types/src/components/GrLoading/config.d.ts +1 -1
  706. package/dist/types/src/components/GrLoading/grLoadingStyles.d.ts +10 -2
  707. package/dist/types/src/components/GrLoading/index.d.ts +1 -0
  708. package/dist/types/src/components/GrModal/GrModal.vue.d.ts +58 -12
  709. package/dist/types/src/components/GrModal/config.d.ts +1 -1
  710. package/dist/types/src/components/GrModal/context.d.ts +37 -0
  711. package/dist/types/src/components/GrModal/defaults.d.ts +14 -0
  712. package/dist/types/src/components/GrModal/grModalStyles.d.ts +25 -10
  713. package/dist/types/src/components/GrModal/index.d.ts +6 -3
  714. package/dist/types/src/components/GrNavbar/GrNavbar.vue.d.ts +28 -9
  715. package/dist/types/src/components/GrNavbar/config.d.ts +1 -1
  716. package/dist/types/src/components/GrNavbar/grNavbarStyles.d.ts +23 -0
  717. package/dist/types/src/components/GrNavbar/index.d.ts +2 -0
  718. package/dist/types/src/components/GrNavbar/safelist.d.ts +1 -0
  719. package/dist/types/src/components/GrNumberInput/GrNumberInput.vue.d.ts +64 -17
  720. package/dist/types/src/components/GrNumberInput/config.d.ts +1 -1
  721. package/dist/types/src/components/GrNumberInput/defaults.d.ts +1 -0
  722. package/dist/types/src/components/GrNumberInput/grNumberInputStyles.d.ts +20 -4
  723. package/dist/types/src/components/GrNumberInput/index.d.ts +4 -0
  724. package/dist/types/src/components/GrNumberInput/numberInputMath.d.ts +17 -0
  725. package/dist/types/src/components/GrPagination/GrPagination.vue.d.ts +47 -1
  726. package/dist/types/src/components/GrPagination/config.d.ts +1 -1
  727. package/dist/types/src/components/GrPagination/defaults.d.ts +10 -0
  728. package/dist/types/src/components/GrPagination/grPaginationStyles.d.ts +19 -0
  729. package/dist/types/src/components/GrPagination/index.d.ts +4 -0
  730. package/dist/types/src/components/GrPagination/safelist.d.ts +1 -0
  731. package/dist/types/src/components/GrPopover/GrPopover.vue.d.ts +161 -0
  732. package/dist/types/src/components/GrPopover/config.d.ts +1 -0
  733. package/dist/types/src/components/GrPopover/defaults.d.ts +15 -0
  734. package/dist/types/src/components/GrPopover/grPopoverStyles.d.ts +28 -0
  735. package/dist/types/src/components/GrPopover/index.d.ts +11 -0
  736. package/dist/types/src/components/GrPopover/safelist.d.ts +1 -0
  737. package/dist/types/src/components/GrProgressBar/GrProgressBar.vue.d.ts +37 -5
  738. package/dist/types/src/components/GrProgressBar/config.d.ts +1 -1
  739. package/dist/types/src/components/GrProgressBar/defaults.d.ts +11 -0
  740. package/dist/types/src/components/GrProgressBar/grStyle.d.ts +14 -0
  741. package/dist/types/src/components/GrProgressBar/index.d.ts +2 -1
  742. package/dist/types/src/components/GrProgressBar/safelist.d.ts +4 -0
  743. package/dist/types/src/components/GrProgressCircle/GrProgressCircle.vue.d.ts +103 -0
  744. package/dist/types/src/components/GrProgressCircle/config.d.ts +1 -0
  745. package/dist/types/src/components/GrProgressCircle/defaults.d.ts +18 -0
  746. package/dist/types/src/components/GrProgressCircle/geometry.d.ts +29 -0
  747. package/dist/types/src/components/GrProgressCircle/grProgressCircleStyles.d.ts +34 -0
  748. package/dist/types/src/components/GrProgressCircle/index.d.ts +11 -0
  749. package/dist/types/src/components/GrProgressCircle/safelist.d.ts +1 -0
  750. package/dist/types/src/components/GrPromptDialog/GrPromptDialog.vue.d.ts +78 -10
  751. package/dist/types/src/components/GrPromptDialog/config.d.ts +1 -1
  752. package/dist/types/src/components/GrPromptDialog/defaults.d.ts +14 -0
  753. package/dist/types/src/components/GrPromptDialog/index.d.ts +1 -0
  754. package/dist/types/src/components/GrRadio/GrRadio.vue.d.ts +28 -9
  755. package/dist/types/src/components/GrRadio/config.d.ts +1 -1
  756. package/dist/types/src/components/GrRadio/grRadioGroupContext.d.ts +37 -2
  757. package/dist/types/src/components/GrRadio/grRadioStyles.d.ts +49 -6
  758. package/dist/types/src/components/GrRadio/index.d.ts +1 -0
  759. package/dist/types/src/components/GrRadioGroup/GrRadioGroup.vue.d.ts +54 -10
  760. package/dist/types/src/components/GrRadioGroup/config.d.ts +1 -1
  761. package/dist/types/src/components/GrRadioGroup/index.d.ts +4 -0
  762. package/dist/types/src/components/GrRating/GrRating.vue.d.ts +66 -17
  763. package/dist/types/src/components/GrRating/config.d.ts +1 -1
  764. package/dist/types/src/components/GrRating/grRatingStyles.d.ts +4 -1
  765. package/dist/types/src/components/GrRating/index.d.ts +4 -0
  766. package/dist/types/src/components/GrResponseErrorBanner/GrFormErrorBanner.vue.d.ts +8 -4
  767. package/dist/types/src/components/GrResponseErrorBanner/GrResponseErrorBanner.vue.d.ts +8 -4
  768. package/dist/types/src/components/GrResponseErrorBanner/GrUploadErrorBanner.vue.d.ts +11 -4
  769. package/dist/types/src/components/GrResponseErrorBanner/config.d.ts +1 -1
  770. package/dist/types/src/components/GrResponseErrorBanner/index.d.ts +6 -0
  771. package/dist/types/src/components/GrResponseErrorBanner/parsers/httpStatusParser.d.ts +3 -1
  772. package/dist/types/src/components/GrResponseErrorBanner/parsers/plainMessageParser.d.ts +4 -1
  773. package/dist/types/src/components/GrResponseErrorBanner/responseError.types.d.ts +12 -2
  774. package/dist/types/src/components/GrSegmented/GrSegmented.vue.d.ts +48 -9
  775. package/dist/types/src/components/GrSegmented/config.d.ts +1 -1
  776. package/dist/types/src/components/GrSegmented/grSegmentedStyles.d.ts +31 -5
  777. package/dist/types/src/components/GrSegmented/index.d.ts +5 -1
  778. package/dist/types/src/components/GrSegmented/safelist.d.ts +3 -1
  779. package/dist/types/src/components/GrSelect/GrSelect.vue.d.ts +138 -114
  780. package/dist/types/src/components/GrSelect/composables/useSelectNavigation.d.ts +52 -0
  781. package/dist/types/src/components/GrSelect/composables/useSelectPanelItems.d.ts +67 -0
  782. package/dist/types/src/components/GrSelect/composables/useSelectValues.d.ts +37 -0
  783. package/dist/types/src/components/GrSelect/composables/useSelectVirtualization.d.ts +27 -0
  784. package/dist/types/src/components/GrSelect/config.d.ts +1 -1
  785. package/dist/types/src/components/GrSelect/grSelectStyles.d.ts +64 -9
  786. package/dist/types/src/components/GrSelect/index.d.ts +5 -1
  787. package/dist/types/src/components/GrSelect/selectValue.d.ts +20 -0
  788. package/dist/types/src/components/GrSidebar/GrSidebar.vue.d.ts +30 -5
  789. package/dist/types/src/components/GrSidebar/GrSidebarGroup.vue.d.ts +43 -0
  790. package/dist/types/src/components/GrSidebar/GrSidebarItem.vue.d.ts +4 -4
  791. package/dist/types/src/components/GrSidebar/config.d.ts +1 -1
  792. package/dist/types/src/components/GrSidebar/grSidebarStyles.d.ts +48 -0
  793. package/dist/types/src/components/GrSidebar/index.d.ts +6 -0
  794. package/dist/types/src/components/GrSidebar/safelist.d.ts +1 -0
  795. package/dist/types/src/components/GrSkeleton/GrSkeleton.vue.d.ts +22 -6
  796. package/dist/types/src/components/GrSkeleton/config.d.ts +1 -1
  797. package/dist/types/src/components/GrSkeleton/grSkeletonStyles.d.ts +9 -0
  798. package/dist/types/src/components/GrSkeleton/index.d.ts +1 -0
  799. package/dist/types/src/components/GrSlider/GrSlider.vue.d.ts +54 -4
  800. package/dist/types/src/components/GrSlider/config.d.ts +1 -1
  801. package/dist/types/src/components/GrSlider/grSliderStyles.d.ts +47 -8
  802. package/dist/types/src/components/GrSlider/index.d.ts +4 -0
  803. package/dist/types/src/components/GrSplitter/GrSplitter.vue.d.ts +121 -0
  804. package/dist/types/src/components/GrSplitter/config.d.ts +1 -0
  805. package/dist/types/src/components/GrSplitter/defaults.d.ts +16 -0
  806. package/dist/types/src/components/GrSplitter/grSplitterStyles.d.ts +9 -0
  807. package/dist/types/src/components/GrSplitter/index.d.ts +11 -0
  808. package/dist/types/src/components/GrSplitter/safelist.d.ts +1 -0
  809. package/dist/types/src/components/GrSplitter/splitterGeometry.d.ts +39 -0
  810. package/dist/types/src/components/GrStatistic/GrStatistic.vue.d.ts +65 -16
  811. package/dist/types/src/components/GrStatistic/config.d.ts +1 -1
  812. package/dist/types/src/components/GrStatistic/countUp.d.ts +17 -0
  813. package/dist/types/src/components/GrStatistic/defaults.d.ts +14 -0
  814. package/dist/types/src/components/GrStatistic/formatStatisticValue.d.ts +6 -2
  815. package/dist/types/src/components/GrStatistic/grStatisticStyles.d.ts +14 -1
  816. package/dist/types/src/components/GrStatistic/index.d.ts +2 -1
  817. package/dist/types/src/components/GrSwitch/GrSwitch.vue.d.ts +68 -6
  818. package/dist/types/src/components/GrSwitch/config.d.ts +1 -1
  819. package/dist/types/src/components/GrSwitch/grSwitchStyles.d.ts +45 -4
  820. package/dist/types/src/components/GrSwitch/index.d.ts +5 -1
  821. package/dist/types/src/components/GrSwitch/safelist.d.ts +4 -1
  822. package/dist/types/src/components/GrTabPanels/GrTabPanel.vue.d.ts +12 -9
  823. package/dist/types/src/components/GrTabPanels/GrTabPanels.vue.d.ts +4 -14
  824. package/dist/types/src/components/GrTabPanels/config.d.ts +1 -1
  825. package/dist/types/src/components/GrTabPanels/context.d.ts +1 -1
  826. package/dist/types/src/components/GrTabPanels/index.d.ts +2 -0
  827. package/dist/types/src/components/GrTable/GrTable.vue.d.ts +85 -15
  828. package/dist/types/src/components/GrTable/config.d.ts +1 -1
  829. package/dist/types/src/components/GrTable/defaults.d.ts +10 -0
  830. package/dist/types/src/components/GrTable/grTableStyles.d.ts +20 -0
  831. package/dist/types/src/components/GrTable/index.d.ts +7 -1
  832. package/dist/types/src/components/GrTable/safelist.d.ts +1 -0
  833. package/dist/types/src/components/GrTabs/GrTabs.vue.d.ts +92 -6
  834. package/dist/types/src/components/GrTabs/config.d.ts +1 -1
  835. package/dist/types/src/components/GrTabs/defaults.d.ts +12 -0
  836. package/dist/types/src/components/GrTabs/grTabsStyles.d.ts +71 -0
  837. package/dist/types/src/components/GrTabs/index.d.ts +5 -0
  838. package/dist/types/src/components/GrTabs/safelist.d.ts +1 -0
  839. package/dist/types/src/components/GrTextarea/GrTextarea.vue.d.ts +89 -24
  840. package/dist/types/src/components/GrTextarea/config.d.ts +1 -1
  841. package/dist/types/src/components/GrTextarea/defaults.d.ts +18 -0
  842. package/dist/types/src/components/GrTextarea/grTextareaStyles.d.ts +33 -1
  843. package/dist/types/src/components/GrTextarea/index.d.ts +6 -1
  844. package/dist/types/src/components/GrTimeline/GrTimeline.vue.d.ts +70 -0
  845. package/dist/types/src/components/GrTimeline/GrTimelineItem.vue.d.ts +84 -0
  846. package/dist/types/src/components/GrTimeline/config.d.ts +1 -0
  847. package/dist/types/src/components/GrTimeline/defaults.d.ts +19 -0
  848. package/dist/types/src/components/GrTimeline/grTimelineContext.d.ts +18 -0
  849. package/dist/types/src/components/GrTimeline/grTimelineStyles.d.ts +37 -0
  850. package/dist/types/src/components/GrTimeline/index.d.ts +12 -0
  851. package/dist/types/src/components/GrTimeline/safelist.d.ts +1 -0
  852. package/dist/types/src/components/GrTimeline/timelineGroups.d.ts +23 -0
  853. package/dist/types/src/components/GrToaster/GrToaster.vue.d.ts +25 -1
  854. package/dist/types/src/components/GrToaster/config.d.ts +1 -1
  855. package/dist/types/src/components/GrToaster/index.d.ts +3 -0
  856. package/dist/types/src/components/GrTooltip/GrTooltip.vue.d.ts +57 -6
  857. package/dist/types/src/components/GrTooltip/config.d.ts +1 -1
  858. package/dist/types/src/components/GrTooltip/defaults.d.ts +10 -0
  859. package/dist/types/src/components/GrTooltip/grTooltipStyles.d.ts +8 -0
  860. package/dist/types/src/components/GrTooltip/index.d.ts +5 -1
  861. package/dist/types/src/components/GrTooltip/safelist.d.ts +1 -0
  862. package/dist/types/src/components/GrTree/GrTree.vue.d.ts +20 -7
  863. package/dist/types/src/components/GrTree/config.d.ts +1 -1
  864. package/dist/types/src/components/GrTree/defaults.d.ts +10 -0
  865. package/dist/types/src/components/GrTree/grTreeChecking.d.ts +31 -0
  866. package/dist/types/src/components/GrTree/grTreeDataAdapter.d.ts +2 -0
  867. package/dist/types/src/components/GrTree/grTreeInteractionContext.d.ts +9 -0
  868. package/dist/types/src/components/GrTree/grTreeProps.d.ts +60 -11
  869. package/dist/types/src/components/GrTree/grTreeStore.d.ts +27 -1
  870. package/dist/types/src/components/GrTree/grTreeStyles.d.ts +22 -0
  871. package/dist/types/src/components/GrTree/grTreeTypes.d.ts +15 -0
  872. package/dist/types/src/components/GrTree/index.d.ts +5 -1
  873. package/dist/types/src/components/GrTreeSelect/GrTreeSelect.vue.d.ts +30 -9
  874. package/dist/types/src/components/GrTreeSelect/config.d.ts +1 -1
  875. package/dist/types/src/components/GrTreeSelect/defaults.d.ts +10 -0
  876. package/dist/types/src/components/GrTreeSelect/grTreeSelectStyles.d.ts +29 -1
  877. package/dist/types/src/components/GrTreeSelect/grTreeSelectTypes.d.ts +43 -0
  878. package/dist/types/src/components/GrTreeSelect/index.d.ts +5 -0
  879. package/dist/types/src/components/shared/hotkey.d.ts +46 -0
  880. package/dist/types/src/components/shared/instance.d.ts +15 -0
  881. package/dist/types/src/components/shared/optionFilter.d.ts +61 -0
  882. package/dist/types/src/components/shared/sizes.d.ts +30 -0
  883. package/dist/types/src/components/shared/slotNodes.d.ts +19 -0
  884. package/dist/types/src/composables/internal/focusables.d.ts +30 -0
  885. package/dist/types/src/composables/internal/inert.d.ts +35 -0
  886. package/dist/types/src/composables/internal/overlayStack.d.ts +60 -0
  887. package/dist/types/src/composables/internal/portalRoot.d.ts +27 -0
  888. package/dist/types/src/composables/internal/useAddonMeasurement.d.ts +1 -1
  889. package/dist/types/src/composables/internal/useComboboxNavigation.d.ts +51 -0
  890. package/dist/types/src/composables/internal/useControlAddons.d.ts +61 -0
  891. package/dist/types/src/composables/internal/useControlledOpen.d.ts +14 -0
  892. package/dist/types/src/composables/internal/useFilePreviews.d.ts +26 -0
  893. package/dist/types/src/composables/internal/useFocusWithin.d.ts +32 -0
  894. package/dist/types/src/composables/internal/useInertOthers.d.ts +9 -0
  895. package/dist/types/src/composables/internal/useModalOverlay.d.ts +95 -0
  896. package/dist/types/src/composables/internal/useOverlayPresence.d.ts +24 -0
  897. package/dist/types/src/composables/internal/useScrollLock.d.ts +10 -5
  898. package/dist/types/src/composables/internal/useTeleportEnabled.d.ts +35 -0
  899. package/dist/types/src/composables/useAnnouncer.d.ts +44 -0
  900. package/dist/types/src/composables/useDismissible.d.ts +32 -0
  901. package/dist/types/src/composables/useFocusTrap.d.ts +50 -0
  902. package/dist/types/src/composables/useGrFormControl.d.ts +52 -0
  903. package/dist/types/src/composables/useOverlayLayer.d.ts +67 -0
  904. package/dist/types/src/composables/usePortalTarget.d.ts +28 -0
  905. package/dist/types/src/composables/useTheme.d.ts +48 -2
  906. package/dist/types/src/composables/useToast.d.ts +20 -11
  907. package/dist/types/src/composables/useVirtualList.d.ts +119 -0
  908. package/dist/types/src/directives/loading.d.ts +7 -1
  909. package/dist/types/src/fileValidation/i18n.d.ts +24 -0
  910. package/dist/types/src/fileValidation/index.d.ts +4 -2
  911. package/dist/types/src/fileValidation/maxCountValidator.d.ts +9 -0
  912. package/dist/types/src/fileValidation/maxFileSize.d.ts +16 -0
  913. package/dist/types/src/fileValidation/types.d.ts +8 -2
  914. package/dist/types/src/granular-provider/index.d.ts +1 -1
  915. package/dist/types/src/granular-provider/node.d.ts +2 -3
  916. package/dist/types/src/granular-provider/shared.d.ts +13 -18
  917. package/dist/types/src/i18n/adapter.d.ts +24 -0
  918. package/dist/types/src/i18n/messages/en.d.ts +286 -2
  919. package/dist/types/src/i18n/messages/es.d.ts +290 -2
  920. package/dist/types/src/i18n/messages/ru.d.ts +294 -2
  921. package/dist/types/src/index.d.ts +26 -3
  922. package/dist/types/src/internal/granularityFormat.d.ts +19 -0
  923. package/dist/types/src/internal/granularityI18n.d.ts +6 -0
  924. package/dist/types/src/internal/keyboard.d.ts +46 -0
  925. package/dist/types/src/tokens/generated.d.ts +6 -0
  926. package/dist/types/src/tokens/index.d.ts +13 -0
  927. package/dist/types/src/tokens/types.d.ts +54 -0
  928. package/dist/vue/index.js.map +1 -1
  929. package/dist/web-types.json +6309 -2024
  930. package/package.json +90 -17
  931. package/tokens/derived.json +142 -0
  932. package/tokens/foundation.json +558 -0
  933. package/tokens/themes/dark.json +499 -0
  934. package/tokens/themes/light.json +499 -0
  935. package/dist/GrBadge.css +0 -1
  936. package/dist/GrButtonGroup.css +0 -1
  937. package/dist/GrFormFile.css +0 -1
  938. package/dist/GrIcon.css +0 -1
  939. package/dist/GrLoading.css +0 -1
  940. package/dist/GrToaster.css +0 -1
  941. package/dist/GrTree.css +0 -1
  942. package/dist/chunks/config-23WtUiAL.js +0 -53
  943. package/dist/chunks/config-23WtUiAL.js.map +0 -1
  944. package/dist/chunks/config-B0i5r8kH.js +0 -23
  945. package/dist/chunks/config-B0i5r8kH.js.map +0 -1
  946. package/dist/chunks/config-B0qIpo8m.js +0 -5
  947. package/dist/chunks/config-B0qIpo8m.js.map +0 -1
  948. package/dist/chunks/config-B5Rknzkd.js +0 -100
  949. package/dist/chunks/config-B5Rknzkd.js.map +0 -1
  950. package/dist/chunks/config-BDSHekVC.js +0 -84
  951. package/dist/chunks/config-BDSHekVC.js.map +0 -1
  952. package/dist/chunks/config-BEegFP74.js +0 -5
  953. package/dist/chunks/config-BEegFP74.js.map +0 -1
  954. package/dist/chunks/config-BLHqZhy-.js +0 -5
  955. package/dist/chunks/config-BLHqZhy-.js.map +0 -1
  956. package/dist/chunks/config-BMKNHFMD2.js +0 -171
  957. package/dist/chunks/config-BMKNHFMD2.js.map +0 -1
  958. package/dist/chunks/config-BUHuGBik2.js +0 -13
  959. package/dist/chunks/config-BUHuGBik2.js.map +0 -1
  960. package/dist/chunks/config-BWGGp7uV.js +0 -8
  961. package/dist/chunks/config-BWGGp7uV.js.map +0 -1
  962. package/dist/chunks/config-BWiPnygb.js +0 -5
  963. package/dist/chunks/config-BWiPnygb.js.map +0 -1
  964. package/dist/chunks/config-BX1JTrkV.js +0 -14
  965. package/dist/chunks/config-BX1JTrkV.js.map +0 -1
  966. package/dist/chunks/config-BXtAmU3s.js +0 -8
  967. package/dist/chunks/config-BXtAmU3s.js.map +0 -1
  968. package/dist/chunks/config-BZFUM3Ky.js +0 -75
  969. package/dist/chunks/config-BZFUM3Ky.js.map +0 -1
  970. package/dist/chunks/config-Bah4oHwL.js +0 -8
  971. package/dist/chunks/config-Bah4oHwL.js.map +0 -1
  972. package/dist/chunks/config-BmNT0Fmx.js +0 -45
  973. package/dist/chunks/config-BmNT0Fmx.js.map +0 -1
  974. package/dist/chunks/config-BvVq2gbd.js +0 -13
  975. package/dist/chunks/config-BvVq2gbd.js.map +0 -1
  976. package/dist/chunks/config-C4hJxXDa.js +0 -58
  977. package/dist/chunks/config-C4hJxXDa.js.map +0 -1
  978. package/dist/chunks/config-C86UzUYf.js +0 -13
  979. package/dist/chunks/config-C86UzUYf.js.map +0 -1
  980. package/dist/chunks/config-C9AcVDkv.js +0 -5
  981. package/dist/chunks/config-C9AcVDkv.js.map +0 -1
  982. package/dist/chunks/config-CB4RVt9M.js +0 -66
  983. package/dist/chunks/config-CB4RVt9M.js.map +0 -1
  984. package/dist/chunks/config-CGHLoBlH2.js +0 -5
  985. package/dist/chunks/config-CGHLoBlH2.js.map +0 -1
  986. package/dist/chunks/config-COE_vZ-l.js +0 -52
  987. package/dist/chunks/config-COE_vZ-l.js.map +0 -1
  988. package/dist/chunks/config-CPdmr7tC.js +0 -39
  989. package/dist/chunks/config-CPdmr7tC.js.map +0 -1
  990. package/dist/chunks/config-CThzliFi.js +0 -5
  991. package/dist/chunks/config-CThzliFi.js.map +0 -1
  992. package/dist/chunks/config-Cb2PAlSD.js +0 -8
  993. package/dist/chunks/config-Cb2PAlSD.js.map +0 -1
  994. package/dist/chunks/config-D7GZO-Dx.js +0 -8
  995. package/dist/chunks/config-D7GZO-Dx.js.map +0 -1
  996. package/dist/chunks/config-DICOd-2X.js +0 -5
  997. package/dist/chunks/config-DICOd-2X.js.map +0 -1
  998. package/dist/chunks/config-DPDFYzIa.js +0 -40
  999. package/dist/chunks/config-DPDFYzIa.js.map +0 -1
  1000. package/dist/chunks/config-DRKXJ9PW2.js +0 -22
  1001. package/dist/chunks/config-DRKXJ9PW2.js.map +0 -1
  1002. package/dist/chunks/config-DToHb81g.js +0 -45
  1003. package/dist/chunks/config-DToHb81g.js.map +0 -1
  1004. package/dist/chunks/config-D_myOZbA.js +0 -20
  1005. package/dist/chunks/config-D_myOZbA.js.map +0 -1
  1006. package/dist/chunks/config-Dg_6FTvJ.js +0 -35
  1007. package/dist/chunks/config-Dg_6FTvJ.js.map +0 -1
  1008. package/dist/chunks/config-Dlm49Jp5.js +0 -5
  1009. package/dist/chunks/config-Dlm49Jp5.js.map +0 -1
  1010. package/dist/chunks/config-DpqOnJiz.js.map +0 -1
  1011. package/dist/chunks/config-Dqy0rPPO2.js +0 -17
  1012. package/dist/chunks/config-Dqy0rPPO2.js.map +0 -1
  1013. package/dist/chunks/config-Dxuwwepq.js +0 -5
  1014. package/dist/chunks/config-Dxuwwepq.js.map +0 -1
  1015. package/dist/chunks/config-HZto2PVy.js +0 -5
  1016. package/dist/chunks/config-HZto2PVy.js.map +0 -1
  1017. package/dist/chunks/config-JOtB4mzs.js +0 -8
  1018. package/dist/chunks/config-JOtB4mzs.js.map +0 -1
  1019. package/dist/chunks/config-JpHA4Xx0.js +0 -8
  1020. package/dist/chunks/config-JpHA4Xx0.js.map +0 -1
  1021. package/dist/chunks/config-KXuionN3.js +0 -9
  1022. package/dist/chunks/config-KXuionN3.js.map +0 -1
  1023. package/dist/chunks/config-LqDC_rvp.js +0 -78
  1024. package/dist/chunks/config-LqDC_rvp.js.map +0 -1
  1025. package/dist/chunks/config-PFg39mYo.js +0 -5
  1026. package/dist/chunks/config-PFg39mYo.js.map +0 -1
  1027. package/dist/chunks/config-QYGvEBu5.js +0 -22
  1028. package/dist/chunks/config-QYGvEBu5.js.map +0 -1
  1029. package/dist/chunks/config-QaIc_gRa2.js.map +0 -1
  1030. package/dist/chunks/config-U4m9PSql2.js +0 -8
  1031. package/dist/chunks/config-U4m9PSql2.js.map +0 -1
  1032. package/dist/chunks/config-XmTv4pnI.js +0 -26
  1033. package/dist/chunks/config-XmTv4pnI.js.map +0 -1
  1034. package/dist/chunks/config-ZiXWIRBX.js +0 -8
  1035. package/dist/chunks/config-ZiXWIRBX.js.map +0 -1
  1036. package/dist/chunks/config-eXB87DOi.js.map +0 -1
  1037. package/dist/chunks/config-gZWR75Bh2.js +0 -44
  1038. package/dist/chunks/config-gZWR75Bh2.js.map +0 -1
  1039. package/dist/chunks/config-ipvU0lzP.js +0 -5
  1040. package/dist/chunks/config-ipvU0lzP.js.map +0 -1
  1041. package/dist/chunks/config-xR4XVmcy2.js +0 -8
  1042. package/dist/chunks/config-xR4XVmcy2.js.map +0 -1
  1043. package/dist/chunks/context-DfWYCBB-.js +0 -129
  1044. package/dist/chunks/context-DfWYCBB-.js.map +0 -1
  1045. package/dist/chunks/en-Cr6EkG8c.js +0 -186
  1046. package/dist/chunks/en-Cr6EkG8c.js.map +0 -1
  1047. package/dist/chunks/es-DuYb1Qju.js +0 -20
  1048. package/dist/chunks/es-DuYb1Qju.js.map +0 -1
  1049. package/dist/chunks/es-i08e9Sdo.js +0 -186
  1050. package/dist/chunks/es-i08e9Sdo.js.map +0 -1
  1051. package/dist/chunks/fileValidation-C3WFaWU2.js +0 -220
  1052. package/dist/chunks/fileValidation-C3WFaWU2.js.map +0 -1
  1053. package/dist/chunks/grBadgeStyles-D3dFjr_N.js +0 -50
  1054. package/dist/chunks/grBadgeStyles-D3dFjr_N.js.map +0 -1
  1055. package/dist/chunks/grButtonStyles-DRBgDmOp.js +0 -191
  1056. package/dist/chunks/grButtonStyles-DRBgDmOp.js.map +0 -1
  1057. package/dist/chunks/grDropdownStyles-HBPkghVr.js +0 -35
  1058. package/dist/chunks/grDropdownStyles-HBPkghVr.js.map +0 -1
  1059. package/dist/chunks/grLoadingStyles-R5sreH__.js +0 -17
  1060. package/dist/chunks/grLoadingStyles-R5sreH__.js.map +0 -1
  1061. package/dist/chunks/grModalEscStack-BXk-9mv7.js +0 -43
  1062. package/dist/chunks/grModalEscStack-BXk-9mv7.js.map +0 -1
  1063. package/dist/chunks/grModalStyles-D8-shx9A.js +0 -47
  1064. package/dist/chunks/grModalStyles-D8-shx9A.js.map +0 -1
  1065. package/dist/chunks/grSelectStyles-CwMUQrBZ.js +0 -97
  1066. package/dist/chunks/grSelectStyles-CwMUQrBZ.js.map +0 -1
  1067. package/dist/chunks/grStyle-CdvxTXPH.js +0 -19
  1068. package/dist/chunks/grStyle-CdvxTXPH.js.map +0 -1
  1069. package/dist/chunks/granularityI18n-SH0I--GW.js +0 -61
  1070. package/dist/chunks/granularityI18n-SH0I--GW.js.map +0 -1
  1071. package/dist/chunks/ru-B5XOOYZt.js +0 -186
  1072. package/dist/chunks/ru-B5XOOYZt.js.map +0 -1
  1073. package/dist/chunks/safelist-BvO8HPnE.js +0 -24
  1074. package/dist/chunks/safelist-BvO8HPnE.js.map +0 -1
  1075. package/dist/chunks/shared-D-v9lit0.js +0 -188
  1076. package/dist/chunks/shared-D-v9lit0.js.map +0 -1
  1077. package/dist/chunks/useAddonMeasurement-DM0akF4C.js +0 -65
  1078. package/dist/chunks/useAddonMeasurement-DM0akF4C.js.map +0 -1
  1079. package/dist/chunks/useEscapeToClose-C2t_S1gh.js +0 -27
  1080. package/dist/chunks/useEscapeToClose-C2t_S1gh.js.map +0 -1
  1081. package/dist/chunks/useFloating-DtM6TyE4.js +0 -1249
  1082. package/dist/chunks/useFloating-DtM6TyE4.js.map +0 -1
  1083. package/dist/chunks/useScrollLock-K7kaP2Ud.js +0 -1757
  1084. package/dist/chunks/useScrollLock-K7kaP2Ud.js.map +0 -1
  1085. package/dist/components/GrAlert/chunks/GrAlert-B9gmpoPC.js +0 -251
  1086. package/dist/components/GrAlert/chunks/GrAlert-B9gmpoPC.js.map +0 -1
  1087. package/dist/components/GrAutocomplete/chunks/GrAutocomplete-BVLoQ5tZ.js +0 -499
  1088. package/dist/components/GrAutocomplete/chunks/GrAutocomplete-BVLoQ5tZ.js.map +0 -1
  1089. package/dist/components/GrAvatar/chunks/GrAvatar-CTOUVBF7.js +0 -41
  1090. package/dist/components/GrAvatar/chunks/GrAvatar-CTOUVBF7.js.map +0 -1
  1091. package/dist/components/GrBadge/chunks/GrBadge-D1jefy4S.js +0 -40
  1092. package/dist/components/GrBadge/chunks/GrBadge-D1jefy4S.js.map +0 -1
  1093. package/dist/components/GrBadgeWrap/chunks/GrBadgeWrap-DWDxHdiQ.js +0 -33
  1094. package/dist/components/GrBadgeWrap/chunks/GrBadgeWrap-DWDxHdiQ.js.map +0 -1
  1095. package/dist/components/GrBottomNav/chunks/GrBottomNav-vSE4LXmk.js +0 -31
  1096. package/dist/components/GrBottomNav/chunks/GrBottomNav-vSE4LXmk.js.map +0 -1
  1097. package/dist/components/GrButton/chunks/GrButton-DCi4CUpo.js +0 -128
  1098. package/dist/components/GrButton/chunks/GrButton-DCi4CUpo.js.map +0 -1
  1099. package/dist/components/GrButtonGroup/chunks/GrButtonGroup-Bs9dEKfA.js +0 -21
  1100. package/dist/components/GrButtonGroup/chunks/GrButtonGroup-Bs9dEKfA.js.map +0 -1
  1101. package/dist/components/GrCard/chunks/GrCard-CxCjyHMb.js +0 -11
  1102. package/dist/components/GrCard/chunks/GrCard-CxCjyHMb.js.map +0 -1
  1103. package/dist/components/GrCheckbox/chunks/GrCheckbox-BbIDRXtl.js +0 -182
  1104. package/dist/components/GrCheckbox/chunks/GrCheckbox-BbIDRXtl.js.map +0 -1
  1105. package/dist/components/GrCollapse/chunks/GrCollapse-DApXztn8.js +0 -205
  1106. package/dist/components/GrCollapse/chunks/GrCollapse-DApXztn8.js.map +0 -1
  1107. package/dist/components/GrCommandPalette/chunks/GrCommandPalette-6OyvNbek.js +0 -410
  1108. package/dist/components/GrCommandPalette/chunks/GrCommandPalette-6OyvNbek.js.map +0 -1
  1109. package/dist/components/GrConfigProvider/chunks/GrConfigProvider-BtyeBGm8.js +0 -57
  1110. package/dist/components/GrConfigProvider/chunks/GrConfigProvider-BtyeBGm8.js.map +0 -1
  1111. package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-e4120mWw.js +0 -160
  1112. package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-e4120mWw.js.map +0 -1
  1113. package/dist/components/GrDataTable/chunks/GrDataTable-C1CzxV0p.js +0 -307
  1114. package/dist/components/GrDataTable/chunks/GrDataTable-C1CzxV0p.js.map +0 -1
  1115. package/dist/components/GrDialog/chunks/GrDialog-BPMvDHOz.js +0 -223
  1116. package/dist/components/GrDialog/chunks/GrDialog-BPMvDHOz.js.map +0 -1
  1117. package/dist/components/GrDialogService/chunks/GrDialogService-CYXCTGm3.js +0 -450
  1118. package/dist/components/GrDialogService/chunks/GrDialogService-CYXCTGm3.js.map +0 -1
  1119. package/dist/components/GrDivider/chunks/GrDivider-BdENZ1w0.js +0 -54
  1120. package/dist/components/GrDivider/chunks/GrDivider-BdENZ1w0.js.map +0 -1
  1121. package/dist/components/GrDrawer/chunks/GrDrawer-KevdZ5BB.js +0 -184
  1122. package/dist/components/GrDrawer/chunks/GrDrawer-KevdZ5BB.js.map +0 -1
  1123. package/dist/components/GrDropdown/chunks/GrDropdown-BKoy8hm-.js +0 -181
  1124. package/dist/components/GrDropdown/chunks/GrDropdown-BKoy8hm-.js.map +0 -1
  1125. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-zCatXzmt.js +0 -309
  1126. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-zCatXzmt.js.map +0 -1
  1127. package/dist/components/GrEmptyState/chunks/GrEmptyState-CNb0BzjG.js +0 -62
  1128. package/dist/components/GrEmptyState/chunks/GrEmptyState-CNb0BzjG.js.map +0 -1
  1129. package/dist/components/GrFileUpload/chunks/GrFileUpload-CnLgUGDF.js +0 -592
  1130. package/dist/components/GrFileUpload/chunks/GrFileUpload-CnLgUGDF.js.map +0 -1
  1131. package/dist/components/GrForm/chunks/GrForm-CdaFjcyl.js +0 -234
  1132. package/dist/components/GrForm/chunks/GrForm-CdaFjcyl.js.map +0 -1
  1133. package/dist/components/GrFormField/chunks/GrFormField-CXCDBd99.js +0 -100
  1134. package/dist/components/GrFormField/chunks/GrFormField-CXCDBd99.js.map +0 -1
  1135. package/dist/components/GrFormFile/chunks/GrFormFile-CqacSbUl.js +0 -320
  1136. package/dist/components/GrFormFile/chunks/GrFormFile-CqacSbUl.js.map +0 -1
  1137. package/dist/components/GrFormSection/chunks/GrFormSection-C3w9DQJf.js +0 -35
  1138. package/dist/components/GrFormSection/chunks/GrFormSection-C3w9DQJf.js.map +0 -1
  1139. package/dist/components/GrIcon/chunks/GrIcon-D9AWQLk2.js +0 -32
  1140. package/dist/components/GrIcon/chunks/GrIcon-D9AWQLk2.js.map +0 -1
  1141. package/dist/components/GrImageViewer/chunks/GrImageViewer-DDLJkvIU.js +0 -650
  1142. package/dist/components/GrImageViewer/chunks/GrImageViewer-DDLJkvIU.js.map +0 -1
  1143. package/dist/components/GrInput/chunks/GrInput-C1VBL0dg.js +0 -337
  1144. package/dist/components/GrInput/chunks/GrInput-C1VBL0dg.js.map +0 -1
  1145. package/dist/components/GrInputTag/chunks/GrInputTag-BMk9jm42.js +0 -260
  1146. package/dist/components/GrInputTag/chunks/GrInputTag-BMk9jm42.js.map +0 -1
  1147. package/dist/components/GrKbd/chunks/GrKbd-DTspwtoN.js +0 -22
  1148. package/dist/components/GrKbd/chunks/GrKbd-DTspwtoN.js.map +0 -1
  1149. package/dist/components/GrLink/chunks/GrLink-BP0YrnL9.js +0 -100
  1150. package/dist/components/GrLink/chunks/GrLink-BP0YrnL9.js.map +0 -1
  1151. package/dist/components/GrList/chunks/GrList-5RA-tZzE.js +0 -77
  1152. package/dist/components/GrList/chunks/GrList-5RA-tZzE.js.map +0 -1
  1153. package/dist/components/GrLoading/chunks/GrLoading-fRDtVfi7.js +0 -69
  1154. package/dist/components/GrLoading/chunks/GrLoading-fRDtVfi7.js.map +0 -1
  1155. package/dist/components/GrModal/chunks/GrModal-BTu1-5eY.js +0 -233
  1156. package/dist/components/GrModal/chunks/GrModal-BTu1-5eY.js.map +0 -1
  1157. package/dist/components/GrNavbar/chunks/GrNavbar-keKT_mIM.js +0 -75
  1158. package/dist/components/GrNavbar/chunks/GrNavbar-keKT_mIM.js.map +0 -1
  1159. package/dist/components/GrNumberInput/chunks/GrNumberInput-l9ZOHG9D.js +0 -471
  1160. package/dist/components/GrNumberInput/chunks/GrNumberInput-l9ZOHG9D.js.map +0 -1
  1161. package/dist/components/GrPagination/chunks/GrPagination-C5Y69CuK.js +0 -208
  1162. package/dist/components/GrPagination/chunks/GrPagination-C5Y69CuK.js.map +0 -1
  1163. package/dist/components/GrProgressBar/chunks/GrProgressBar-Dqg4Fj9S.js +0 -39
  1164. package/dist/components/GrProgressBar/chunks/GrProgressBar-Dqg4Fj9S.js.map +0 -1
  1165. package/dist/components/GrPromptDialog/chunks/GrPromptDialog-DNUjRVB9.js +0 -224
  1166. package/dist/components/GrPromptDialog/chunks/GrPromptDialog-DNUjRVB9.js.map +0 -1
  1167. package/dist/components/GrRadio/chunks/GrRadio-DlhxPGqf.js +0 -182
  1168. package/dist/components/GrRadio/chunks/GrRadio-DlhxPGqf.js.map +0 -1
  1169. package/dist/components/GrRadioGroup/chunks/GrRadioGroup-BXt9iw4q.js +0 -82
  1170. package/dist/components/GrRadioGroup/chunks/GrRadioGroup-BXt9iw4q.js.map +0 -1
  1171. package/dist/components/GrRating/chunks/GrRating-Co-3Rk4h.js +0 -241
  1172. package/dist/components/GrRating/chunks/GrRating-Co-3Rk4h.js.map +0 -1
  1173. package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-2CvM7Z08.js +0 -224
  1174. package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-2CvM7Z08.js.map +0 -1
  1175. package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-C8NGx8pE.js +0 -782
  1176. package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-C8NGx8pE.js.map +0 -1
  1177. package/dist/components/GrSegmented/chunks/GrSegmented-CTd3n4PA.js +0 -326
  1178. package/dist/components/GrSegmented/chunks/GrSegmented-CTd3n4PA.js.map +0 -1
  1179. package/dist/components/GrSelect/chunks/GrSelect-Dn3FgJ3Z.js +0 -730
  1180. package/dist/components/GrSelect/chunks/GrSelect-Dn3FgJ3Z.js.map +0 -1
  1181. package/dist/components/GrSidebar/chunks/GrSidebar-cvnzBfj3.js +0 -238
  1182. package/dist/components/GrSidebar/chunks/GrSidebar-cvnzBfj3.js.map +0 -1
  1183. package/dist/components/GrSkeleton/chunks/GrSkeleton-BucA5F4J.js +0 -33
  1184. package/dist/components/GrSkeleton/chunks/GrSkeleton-BucA5F4J.js.map +0 -1
  1185. package/dist/components/GrSlider/chunks/GrSlider-CzzJ3bD-.js +0 -286
  1186. package/dist/components/GrSlider/chunks/GrSlider-CzzJ3bD-.js.map +0 -1
  1187. package/dist/components/GrStatistic/chunks/GrStatistic-gHiAwrX5.js +0 -128
  1188. package/dist/components/GrStatistic/chunks/GrStatistic-gHiAwrX5.js.map +0 -1
  1189. package/dist/components/GrSwitch/chunks/GrSwitch-CJdRvS0s.js +0 -88
  1190. package/dist/components/GrSwitch/chunks/GrSwitch-CJdRvS0s.js.map +0 -1
  1191. package/dist/components/GrTabPanels/chunks/GrTabPanels-DeEMgb_y.js +0 -68
  1192. package/dist/components/GrTabPanels/chunks/GrTabPanels-DeEMgb_y.js.map +0 -1
  1193. package/dist/components/GrTable/chunks/GrTable-sNvsA8wa.js +0 -70
  1194. package/dist/components/GrTable/chunks/GrTable-sNvsA8wa.js.map +0 -1
  1195. package/dist/components/GrTabs/chunks/GrTabs-BqTak0SR.js +0 -123
  1196. package/dist/components/GrTabs/chunks/GrTabs-BqTak0SR.js.map +0 -1
  1197. package/dist/components/GrTextarea/chunks/GrTextarea-DIYBAPpP.js +0 -81
  1198. package/dist/components/GrTextarea/chunks/GrTextarea-DIYBAPpP.js.map +0 -1
  1199. package/dist/components/GrToaster/chunks/GrToaster-BVHjIHcM.js +0 -230
  1200. package/dist/components/GrToaster/chunks/GrToaster-BVHjIHcM.js.map +0 -1
  1201. package/dist/components/GrTooltip/chunks/GrTooltip-BMKH2lIx.js +0 -109
  1202. package/dist/components/GrTooltip/chunks/GrTooltip-BMKH2lIx.js.map +0 -1
  1203. package/dist/components/GrTree/chunks/GrTree-_12ChXRQ.js +0 -838
  1204. package/dist/components/GrTree/chunks/GrTree-_12ChXRQ.js.map +0 -1
  1205. package/dist/components/GrTreeSelect/chunks/GrTreeSelect-CdaLG7Xq.js +0 -426
  1206. package/dist/components/GrTreeSelect/chunks/GrTreeSelect-CdaLG7Xq.js.map +0 -1
  1207. package/dist/granular-provider-node.js.map +0 -1
  1208. package/dist/granular-provider.js.map +0 -1
  1209. package/dist/index.js.map +0 -1
  1210. package/dist/types/src/components/GrButton/config.node.d.ts +0 -1
  1211. package/dist/types/src/components/GrCommandPalette/hotkey.d.ts +0 -23
  1212. package/dist/types/src/components/GrFileUpload/maxSizeMbValidator.d.ts +0 -1
  1213. package/dist/types/src/components/GrModal/grModalEscStack.d.ts +0 -30
  1214. package/dist/types/src/components/GrModal/grModalTopStack.d.ts +0 -31
  1215. package/dist/types/src/components/GrProgressBar/config.node.d.ts +0 -1
  1216. package/dist/types/src/composables/internal/useEscapeToClose.d.ts +0 -11
  1217. package/dist/types/src/fileValidation/maxFileSizeBytesValidator.d.ts +0 -2
  1218. package/dist/types/src/fileValidation/maxSizeMbValidator.d.ts +0 -2
  1219. /package/dist/chunks/{config-DpqOnJiz.js → config-DpqOnJiz2.js} +0 -0
  1220. /package/dist/chunks/{config-QaIc_gRa2.js → config-QaIc_gRa.js} +0 -0
  1221. /package/dist/chunks/{config-eXB87DOi.js → config-eXB87DOi2.js} +0 -0
  1222. /package/dist/{GrSkeleton.css → components/GrSkeleton/styles.css} +0 -0
  1223. /package/dist/types/src/composables/{internal/useFloating.d.ts → useFloating.d.ts} +0 -0
@@ -0,0 +1,244 @@
1
+ import { computed, onScopeDispose, ref, watch } from "vue";
2
+ //#region src/composables/useVirtualList.ts
3
+ var DEFAULT_OVERSCAN = 4;
4
+ /** Порог, ниже которого разницу замеров считаем шумом округления. */
5
+ var SIZE_EPSILON = .5;
6
+ function readSize(el) {
7
+ const box = el.getBoundingClientRect().height;
8
+ if (box > 0) return box;
9
+ return el.offsetHeight ?? 0;
10
+ }
11
+ function useVirtualList(options) {
12
+ const overscan = Math.max(0, Math.trunc(options.overscan ?? DEFAULT_OVERSCAN));
13
+ const gap = Math.max(0, options.gap ?? 0);
14
+ const estimateOf = typeof options.itemSize === "function" ? options.itemSize : () => options.itemSize;
15
+ const scrollTop = ref(0);
16
+ const measuredViewport = ref(0);
17
+ const measured = /* @__PURE__ */ new Map();
18
+ const observedIndex = /* @__PURE__ */ new WeakMap();
19
+ const hasResizeObserver = typeof ResizeObserver !== "undefined";
20
+ const sizeObserver = hasResizeObserver ? new ResizeObserver((entries) => {
21
+ for (const entry of entries) {
22
+ const index = observedIndex.get(entry.target);
23
+ if (index !== void 0) applySize(index, readSize(entry.target));
24
+ }
25
+ }) : null;
26
+ const viewportObserver = hasResizeObserver ? new ResizeObserver(() => syncViewport()) : null;
27
+ let attachedTo = null;
28
+ let offsets = [0];
29
+ /** До какого индекса префикс-суммы актуальны. */
30
+ let builtTo = 0;
31
+ /** Шаг раскладки: коробка элемента плюс зазор до следующего. */
32
+ function sizeAt(index) {
33
+ return (measured.get(index) ?? estimateOf(index)) + gap;
34
+ }
35
+ /**
36
+ * Достраивает префикс-суммы до нужного индекса.
37
+ *
38
+ * Замер инвалидирует хвост от своего индекса, а не весь массив: иначе каждая
39
+ * отрисованная строка стоила бы полного пересчёта по всему списку.
40
+ */
41
+ function buildTo(index) {
42
+ const limit = Math.min(index, options.count());
43
+ while (builtTo < limit) {
44
+ offsets[builtTo + 1] = offsets[builtTo] + sizeAt(builtTo);
45
+ builtTo += 1;
46
+ }
47
+ }
48
+ function offsetAt(index) {
49
+ buildTo(index);
50
+ return offsets[Math.min(Math.max(index, 0), builtTo)] ?? 0;
51
+ }
52
+ function invalidateFrom(index) {
53
+ if (index < builtTo) builtTo = Math.max(0, index);
54
+ }
55
+ /** Последний индекс, чьё начало не ниже `px`. */
56
+ function indexAt(px) {
57
+ const count = options.count();
58
+ if (count === 0) return 0;
59
+ buildTo(count);
60
+ let low = 0;
61
+ let high = builtTo;
62
+ while (low < high) {
63
+ const mid = low + high + 1 >> 1;
64
+ if ((offsets[mid] ?? 0) <= px) low = mid;
65
+ else high = mid - 1;
66
+ }
67
+ return Math.min(low, count - 1);
68
+ }
69
+ function viewportSize() {
70
+ return measuredViewport.value || options.viewportSize?.() || 0;
71
+ }
72
+ /**
73
+ * Геометрия окна одним снимком.
74
+ *
75
+ * Считается явно, а не `computed`'ом поверх смещений: массив префикс-сумм
76
+ * мутируется на месте (иначе каждый замер пересоздавал бы десять тысяч чисел),
77
+ * и вывести из него реактивную зависимость нечем — трекер увидел бы только те
78
+ * индексы, которые пересчитывались в последний проход.
79
+ */
80
+ const geometry = ref({
81
+ start: 0,
82
+ end: 0,
83
+ offset: 0,
84
+ offsetEnd: 0,
85
+ total: 0
86
+ });
87
+ function recompute() {
88
+ const count = options.count();
89
+ if (count === 0) {
90
+ geometry.value = {
91
+ start: 0,
92
+ end: 0,
93
+ offset: 0,
94
+ offsetEnd: 0,
95
+ total: 0
96
+ };
97
+ return;
98
+ }
99
+ const totalSize = offsetAt(count);
100
+ const height = viewportSize();
101
+ if (height <= 0) {
102
+ geometry.value = {
103
+ start: 0,
104
+ end: count,
105
+ offset: 0,
106
+ offsetEnd: 0,
107
+ total: totalSize
108
+ };
109
+ return;
110
+ }
111
+ const start = Math.max(0, indexAt(scrollTop.value) - overscan);
112
+ const end = Math.min(count, indexAt(scrollTop.value + height) + 1 + overscan);
113
+ geometry.value = {
114
+ start,
115
+ end,
116
+ offset: offsetAt(start),
117
+ offsetEnd: Math.max(0, totalSize - offsetAt(end)),
118
+ total: totalSize
119
+ };
120
+ }
121
+ const range = computed(() => ({
122
+ start: geometry.value.start,
123
+ end: geometry.value.end
124
+ }));
125
+ const total = computed(() => geometry.value.total);
126
+ const offset = computed(() => geometry.value.offset);
127
+ const offsetEnd = computed(() => geometry.value.offsetEnd);
128
+ const spacerStyle = computed(() => ({
129
+ "overflow-anchor": "none",
130
+ "--gr-virtual-before": `${geometry.value.offset}px`,
131
+ "--gr-virtual-after": `${geometry.value.offsetEnd}px`
132
+ }));
133
+ function syncScrollTop() {
134
+ const el = options.container.value;
135
+ if (!el) return;
136
+ scrollTop.value = el.scrollTop;
137
+ recompute();
138
+ }
139
+ function syncViewport() {
140
+ const el = options.container.value;
141
+ if (!el) return;
142
+ measuredViewport.value = el.clientHeight;
143
+ recompute();
144
+ }
145
+ function measure(index, el) {
146
+ if (!el) return;
147
+ observedIndex.set(el, index);
148
+ sizeObserver?.observe(el);
149
+ applySize(index, readSize(el));
150
+ }
151
+ function applySize(index, size) {
152
+ if (size <= 0) return;
153
+ const previous = measured.get(index);
154
+ if (previous !== void 0 && Math.abs(previous - size) < SIZE_EPSILON) return;
155
+ const start = offsetAt(index);
156
+ const delta = size - (previous ?? estimateOf(index));
157
+ measured.set(index, size);
158
+ invalidateFrom(index);
159
+ const el = options.container.value;
160
+ if (delta !== 0 && start < scrollTop.value && el) {
161
+ el.scrollTop += delta;
162
+ scrollTop.value = el.scrollTop;
163
+ }
164
+ recompute();
165
+ }
166
+ function scrollToIndex(index, align = "auto") {
167
+ const el = options.container.value;
168
+ const count = options.count();
169
+ if (!el || count === 0) return;
170
+ const clamped = Math.min(Math.max(index, 0), count - 1);
171
+ const start = offsetAt(clamped);
172
+ const size = sizeAt(clamped);
173
+ const height = el.clientHeight || viewportSize();
174
+ const end = start + size;
175
+ let next;
176
+ switch (align) {
177
+ case "start":
178
+ next = start;
179
+ break;
180
+ case "end":
181
+ next = end - height;
182
+ break;
183
+ case "center":
184
+ next = start + size / 2 - height / 2;
185
+ break;
186
+ case "auto":
187
+ if (start < el.scrollTop) next = start;
188
+ else if (end > el.scrollTop + height) next = end - height;
189
+ else return;
190
+ break;
191
+ }
192
+ el.scrollTop = Math.max(0, Math.min(next, offsetAt(count) - height));
193
+ scrollTop.value = el.scrollTop;
194
+ recompute();
195
+ }
196
+ function detach() {
197
+ if (!attachedTo) return;
198
+ attachedTo.removeEventListener("scroll", syncScrollTop);
199
+ viewportObserver?.unobserve(attachedTo);
200
+ attachedTo = null;
201
+ }
202
+ recompute();
203
+ watch(options.container, (el) => {
204
+ detach();
205
+ if (!el) return;
206
+ attachedTo = el;
207
+ el.addEventListener("scroll", syncScrollTop, { passive: true });
208
+ viewportObserver?.observe(el);
209
+ syncViewport();
210
+ syncScrollTop();
211
+ }, { immediate: true });
212
+ watch(() => options.count(), (count) => {
213
+ if (count < builtTo) truncate(count);
214
+ recompute();
215
+ });
216
+ function invalidate(from = 0) {
217
+ for (const index of [...measured.keys()]) if (index >= from) measured.delete(index);
218
+ invalidateFrom(from);
219
+ recompute();
220
+ }
221
+ if (options.source) watch(options.source, () => invalidate());
222
+ function truncate(count) {
223
+ builtTo = count;
224
+ offsets = offsets.slice(0, count + 1);
225
+ for (const index of [...measured.keys()]) if (index >= count) measured.delete(index);
226
+ }
227
+ onScopeDispose(() => {
228
+ detach();
229
+ sizeObserver?.disconnect();
230
+ viewportObserver?.disconnect();
231
+ });
232
+ return {
233
+ range,
234
+ totalSize: total,
235
+ offset,
236
+ offsetEnd,
237
+ spacerStyle,
238
+ measure,
239
+ scrollToIndex,
240
+ invalidate
241
+ };
242
+ }
243
+ //#endregion
244
+ export { useVirtualList };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useVirtualList.js","names":[],"sources":["../../src/composables/useVirtualList.ts"],"sourcesContent":["import type { ComputedRef, Ref } from 'vue'\nimport { computed, onScopeDispose, ref, watch } from 'vue'\n\n/**\n * Виртуализация длинного списка: в DOM живёт только окно вокруг вьюпорта.\n *\n * Композабл считает геометрию и отдаёт три числа — какой срез рисовать\n * (`range`), какой высоты держать распорку (`totalSize`) и на сколько сдвинуть\n * отрисованное (`offset`). Разметку строит потребитель: примитив ничего не\n * рендерит и ничего не знает про роли и клавиатуру своего списка.\n *\n * Скролл-протяжённость держат псевдоэлементы контейнера: `spacerStyle` отдаёт\n * их высоты переменными, а правило живёт в `<style>` компонента. Так\n * отрисованные строки остаются **прямыми детьми** контейнера, и роль вроде\n * `tree` или `listbox` не теряет обязательных потомков.\n *\n * ```vue\n * const container = useTemplateRef('scroller')\n * const { range, spacerStyle, measure } = useVirtualList({\n * container,\n * count: () => rows.value.length,\n * itemSize: 28,\n * viewportSize: () => props.maxHeight,\n * })\n *\n * <div\n * ref=\"scroller\"\n * role=\"tree\"\n * data-gr-virtual\n * :style=\"{ overflow: 'auto', maxHeight: '280px', ...spacerStyle }\"\n * >\n * <Row v-for=\"i in window\" :key=\"…\" :ref=\"el => measure(i, el)\" />\n * </div>\n *\n * <style scoped>\n * [data-gr-virtual]::before,\n * [data-gr-virtual]::after { content: ''; display: block; flex: none; }\n * [data-gr-virtual]::before { height: var(--gr-virtual-before, 0px); }\n * [data-gr-virtual]::after { height: var(--gr-virtual-after, 0px); }\n * </style>\n * ```\n *\n * Почему правило повторяется в каждом компоненте, а не лежит в одном файле:\n * единственный глобальный стиль пакета (`styles/base.css`) потребитель вправе\n * не подключать, и уехавшее туда правило молча ломало бы прокрутку. Сверяет\n * копии гейт `src/__tests__/virtualSpacer.test.ts`.\n */\n\n/** Куда поставить элемент относительно вьюпорта при прокрутке к нему. */\nexport type GrVirtualAlign = 'auto' | 'start' | 'center' | 'end'\n\nexport interface UseVirtualListOptions {\n /** Скроллящийся контейнер. До монтирования — `null`. */\n container: Ref<HTMLElement | null>\n /** Сколько элементов в списке. */\n count: () => number\n /**\n * Оценка высоты элемента. Фактическая берётся из замера, как только элемент\n * отрисован, — строки пакета заданы через `min-height`, и точного числа тут\n * знать неоткуда.\n */\n itemSize: number | ((index: number) => number)\n /**\n * Высота вьюпорта до первого замера контейнера. Нужна, чтобы **первый рендер\n * был детерминированным**: на сервере контейнера нет вовсе, а на клиенте он\n * ещё не измерен. Без неё сервер и клиент нарисовали бы разные окна и\n * гидрация разъехалась бы; с ней оба считают окно от одного числа.\n */\n viewportSize?: () => number | undefined\n /**\n * Идентити-токен данных списка — обычно сам массив. Смена идентичности\n * сбрасывает все замеры (`invalidate()`): они привязаны к индексам, и после\n * сортировки или замены массива хранили бы высоты чужих строк.\n *\n * Правило потребителя: **мутация массива на месте сохраняет замеры, замена\n * массива сбрасывает**. Append в тот же реактивный массив (инфинити-скролл)\n * идентичность не меняет — префикс замеров остаётся валидным.\n */\n source?: () => unknown\n /**\n * Зазор между элементами в пикселях (`gap` у flex/grid-контейнера).\n *\n * Замер элемента его не видит — `getBoundingClientRect` меряет коробку, а не\n * шаг раскладки. Без этого числа список считался бы короче, чем он есть,\n * и окно уползало бы тем сильнее, чем дальше прокрутка.\n */\n gap?: number\n /** Сколько элементов рисовать за пределами вьюпорта. По умолчанию `4`. */\n overscan?: number\n}\n\nexport interface UseVirtualListReturn {\n /** Полуинтервал индексов к отрисовке: `[start, end)`. */\n range: ComputedRef<{ start: number, end: number }>\n /** Полная высота содержимого: распорка, которая держит скроллбар. */\n totalSize: ComputedRef<number>\n /** Отступ сверху: высота срезанного до окна. */\n offset: ComputedRef<number>\n /** Отступ снизу: высота срезанного после окна. */\n offsetEnd: ComputedRef<number>\n /**\n * Стиль контейнера: высоты распорок и выключенный scroll anchoring.\n *\n * Имена переменных приезжают готовыми, поэтому написать их руками — и\n * разойтись с правилом в `<style>` — нельзя. Опечатка в имени давала бы\n * список без прокрутки, и увидеть это можно было бы только глазами.\n */\n spacerStyle: ComputedRef<Record<string, string>>\n /** Регистрация отрисованного элемента: замер и подписка на изменение высоты. */\n measure: (index: number, el: Element | null) => void\n /** Прокрутка к элементу. Без выравнивания — минимальным движением. */\n scrollToIndex: (index: number, align?: GrVirtualAlign) => void\n /**\n * Сбрасывает замеры с индекса `from` (по умолчанию — все) к оценкам.\n * Видимые строки перемеряются первым же рендером; для смены данных обычно\n * достаточно опции `source` — ручной вызов нужен, когда высоты строк\n * изменились без замены массива (смена плотности, ресайз колонок).\n */\n invalidate: (from?: number) => void\n}\n\nconst DEFAULT_OVERSCAN = 4\n\n/** Порог, ниже которого разницу замеров считаем шумом округления. */\nconst SIZE_EPSILON = 0.5\n\nfunction readSize(el: Element): number {\n const box = el.getBoundingClientRect().height\n if (box > 0) return box\n\n // jsdom не считает layout: `getBoundingClientRect` там всегда нулевой, а\n // `offsetHeight` тест может задать сам.\n return (el as HTMLElement).offsetHeight ?? 0\n}\n\nexport function useVirtualList(options: UseVirtualListOptions): UseVirtualListReturn {\n const overscan = Math.max(0, Math.trunc(options.overscan ?? DEFAULT_OVERSCAN))\n const gap = Math.max(0, options.gap ?? 0)\n const estimateOf = typeof options.itemSize === 'function'\n ? options.itemSize\n : () => options.itemSize as number\n\n const scrollTop = ref(0)\n const measuredViewport = ref(0)\n\n const measured = new Map<number, number>()\n const observedIndex = new WeakMap<Element, number>()\n\n // `ResizeObserver` нет ни на сервере, ни в jsdom. Без него композабл работает\n // на оценках и явных замерах из `measure()` — это рабочий режим, а не отказ.\n const hasResizeObserver = typeof ResizeObserver !== 'undefined'\n const sizeObserver = hasResizeObserver\n ? new ResizeObserver((entries) => {\n for (const entry of entries) {\n const index = observedIndex.get(entry.target)\n if (index !== undefined) applySize(index, readSize(entry.target))\n }\n })\n : null\n const viewportObserver = hasResizeObserver ? new ResizeObserver(() => syncViewport()) : null\n let attachedTo: HTMLElement | null = null\n let offsets: number[] = [0]\n /** До какого индекса префикс-суммы актуальны. */\n let builtTo = 0\n\n /** Шаг раскладки: коробка элемента плюс зазор до следующего. */\n function sizeAt(index: number): number {\n return (measured.get(index) ?? estimateOf(index)) + gap\n }\n\n /**\n * Достраивает префикс-суммы до нужного индекса.\n *\n * Замер инвалидирует хвост от своего индекса, а не весь массив: иначе каждая\n * отрисованная строка стоила бы полного пересчёта по всему списку.\n */\n function buildTo(index: number): void {\n const limit = Math.min(index, options.count())\n while (builtTo < limit) {\n offsets[builtTo + 1] = offsets[builtTo] + sizeAt(builtTo)\n builtTo += 1\n }\n }\n\n function offsetAt(index: number): number {\n buildTo(index)\n return offsets[Math.min(Math.max(index, 0), builtTo)] ?? 0\n }\n\n function invalidateFrom(index: number): void {\n if (index < builtTo) builtTo = Math.max(0, index)\n }\n\n /** Последний индекс, чьё начало не ниже `px`. */\n function indexAt(px: number): number {\n const count = options.count()\n if (count === 0) return 0\n\n buildTo(count)\n\n let low = 0\n let high = builtTo\n while (low < high) {\n const mid = (low + high + 1) >> 1\n if ((offsets[mid] ?? 0) <= px) low = mid\n else high = mid - 1\n }\n\n return Math.min(low, count - 1)\n }\n\n function viewportSize(): number {\n return measuredViewport.value || options.viewportSize?.() || 0\n }\n\n /**\n * Геометрия окна одним снимком.\n *\n * Считается явно, а не `computed`'ом поверх смещений: массив префикс-сумм\n * мутируется на месте (иначе каждый замер пересоздавал бы десять тысяч чисел),\n * и вывести из него реактивную зависимость нечем — трекер увидел бы только те\n * индексы, которые пересчитывались в последний проход.\n */\n const geometry = ref({ start: 0, end: 0, offset: 0, offsetEnd: 0, total: 0 })\n\n function recompute(): void {\n const count = options.count()\n if (count === 0) {\n geometry.value = { start: 0, end: 0, offset: 0, offsetEnd: 0, total: 0 }\n return\n }\n\n const totalSize = offsetAt(count)\n const height = viewportSize()\n\n // Высота неизвестна (контейнера нет и оценки не дали) — рисуем всё: меньше\n // «списка целиком» отрисовать нечего без риска, что до замера так и не\n // дойдёт ни одна строка.\n if (height <= 0) {\n geometry.value = { start: 0, end: count, offset: 0, offsetEnd: 0, total: totalSize }\n return\n }\n\n const start = Math.max(0, indexAt(scrollTop.value) - overscan)\n const end = Math.min(count, indexAt(scrollTop.value + height) + 1 + overscan)\n\n geometry.value = {\n start,\n end,\n offset: offsetAt(start),\n offsetEnd: Math.max(0, totalSize - offsetAt(end)),\n total: totalSize,\n }\n }\n\n const range = computed(() => ({ start: geometry.value.start, end: geometry.value.end }))\n const total = computed(() => geometry.value.total)\n const offset = computed(() => geometry.value.offset)\n const offsetEnd = computed(() => geometry.value.offsetEnd)\n\n const spacerStyle = computed(() => ({\n // Браузерный scroll anchoring обязан быть выключен. Он удерживает видимый\n // узел на месте, подправляя `scrollTop`, когда меняется высота содержимого\n // выше него, — а окно меняет её на каждом кадре прокрутки. Дальше пересчёт\n // окна и якорь начинают двигать список навстречу друг другу, и прокрутка\n // уезжает тем сильнее, чем дальше оценка строки от фактической высоты.\n 'overflow-anchor': 'none',\n '--gr-virtual-before': `${geometry.value.offset}px`,\n '--gr-virtual-after': `${geometry.value.offsetEnd}px`,\n }))\n\n function syncScrollTop(): void {\n const el = options.container.value\n if (!el) return\n\n scrollTop.value = el.scrollTop\n recompute()\n }\n\n function syncViewport(): void {\n const el = options.container.value\n if (!el) return\n\n measuredViewport.value = el.clientHeight\n recompute()\n }\n\n function measure(index: number, el: Element | null): void {\n if (!el) return\n\n observedIndex.set(el, index)\n sizeObserver?.observe(el)\n\n applySize(index, readSize(el))\n }\n\n function applySize(index: number, size: number): void {\n if (size <= 0) return\n\n const previous = measured.get(index)\n if (previous !== undefined && Math.abs(previous - size) < SIZE_EPSILON) return\n\n // Считаем смещение ДО правки: строка ниже вьюпорта позицию не двигает, а\n // строка выше — двигает всё содержимое под курсором.\n const start = offsetAt(index)\n const delta = size - (previous ?? estimateOf(index))\n\n measured.set(index, size)\n invalidateFrom(index)\n\n const el = options.container.value\n // Компенсация: без неё уточнение высоты уже прокрученных строк выглядит как\n // рывок списка вверх или вниз ровно в момент замера.\n if (delta !== 0 && start < scrollTop.value && el) {\n el.scrollTop += delta\n scrollTop.value = el.scrollTop\n }\n\n recompute()\n }\n\n function scrollToIndex(index: number, align: GrVirtualAlign = 'auto'): void {\n const el = options.container.value\n const count = options.count()\n if (!el || count === 0) return\n\n const clamped = Math.min(Math.max(index, 0), count - 1)\n const start = offsetAt(clamped)\n const size = sizeAt(clamped)\n const height = el.clientHeight || viewportSize()\n const end = start + size\n\n let next: number\n switch (align) {\n case 'start':\n next = start\n break\n case 'end':\n next = end - height\n break\n case 'center':\n next = start + size / 2 - height / 2\n break\n case 'auto':\n if (start < el.scrollTop) next = start\n else if (end > el.scrollTop + height) next = end - height\n else return\n break\n }\n\n el.scrollTop = Math.max(0, Math.min(next, offsetAt(count) - height))\n scrollTop.value = el.scrollTop\n recompute()\n }\n\n function detach(): void {\n if (!attachedTo) return\n attachedTo.removeEventListener('scroll', syncScrollTop)\n viewportObserver?.unobserve(attachedTo)\n attachedTo = null\n }\n\n // Первый снимок до всякого монтирования: на сервере и на первом клиентском\n // рендере контейнера ещё нет, а окно уже должно быть посчитано — и одинаково.\n recompute()\n\n watch(options.container, (el) => {\n detach()\n if (!el) return\n\n attachedTo = el\n el.addEventListener('scroll', syncScrollTop, { passive: true })\n viewportObserver?.observe(el)\n syncViewport()\n syncScrollTop()\n }, { immediate: true })\n\n // Длина списка изменилась. Сокращение дополнительно чистит хвост смещений и\n // замеров: он относится к строкам, которых больше нет.\n watch(() => options.count(), (count) => {\n if (count < builtTo) truncate(count)\n recompute()\n })\n\n function invalidate(from = 0): void {\n for (const index of [...measured.keys()]) {\n if (index >= from) measured.delete(index)\n }\n invalidateFrom(from)\n recompute()\n }\n\n if (options.source) {\n // Идентичность данных сменилась — замеры принадлежат прошлому набору.\n watch(options.source, () => invalidate())\n }\n\n function truncate(count: number): void {\n builtTo = count\n offsets = offsets.slice(0, count + 1)\n for (const index of [...measured.keys()]) {\n if (index >= count) measured.delete(index)\n }\n }\n\n onScopeDispose(() => {\n detach()\n sizeObserver?.disconnect()\n viewportObserver?.disconnect()\n })\n\n return { range, totalSize: total, offset, offsetEnd, spacerStyle, measure, scrollToIndex, invalidate }\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { l as runFileValidators, u as FileValidationError } from "../chunks/fileValidation-C3WFaWU2.js";
1
+ import { f as runFileValidators, p as FileValidationError } from "../chunks/fileValidation-D5TFBhbv.js";
2
2
  //#region src/directives/dropzone.ts
3
3
  function normalize(value) {
4
4
  if (typeof value === "function") return {
@@ -1,11 +1,6 @@
1
+ import { i as shiftSatisfied, n as isComposingEvent, r as isEditableTarget, t as eventMatchesKey } from "../chunks/keyboard-zYvvyHd4.js";
1
2
  //#region src/directives/hotkey.ts
2
3
  var states = /* @__PURE__ */ new WeakMap();
3
- function isEditableTarget(target) {
4
- if (!(target instanceof HTMLElement)) return false;
5
- if (target.isContentEditable) return true;
6
- const tag = target.tagName;
7
- return tag === "INPUT" || tag === "TEXTAREA" || tag === "SELECT";
8
- }
9
4
  function normalizeBinding(value) {
10
5
  if (!value) return {
11
6
  enabled: false,
@@ -65,10 +60,12 @@ function parseHotkeys(map) {
65
60
  }
66
61
  return parsed;
67
62
  }
68
- function matchKey(expected, eventKey) {
69
- if (expected === " ") return eventKey === " " || eventKey === "Spacebar";
70
- if (expected.length === 1) return expected.toLowerCase() === eventKey.toLowerCase();
71
- return expected === eventKey;
63
+ function matchesHotkey(event, hk) {
64
+ if (hk.ctrl !== event.ctrlKey) return false;
65
+ if (hk.meta !== event.metaKey) return false;
66
+ if (hk.alt !== event.altKey) return false;
67
+ if (!shiftSatisfied(event, hk.key, hk.shift)) return false;
68
+ return eventMatchesKey(event, hk.key, { codeFallback: hk.ctrl || hk.meta || hk.alt });
72
69
  }
73
70
  function resolveEntry(entry) {
74
71
  if (typeof entry === "function") return {
@@ -110,13 +107,10 @@ var vHotkey = {
110
107
  const current = states.get(el);
111
108
  if (!current?.enabled) return;
112
109
  if (!el.isConnected) return;
110
+ if (isComposingEvent(event)) return;
113
111
  const editable = isEditableTarget(event.target);
114
112
  for (const hk of current.hotkeys) {
115
- if (hk.ctrl !== event.ctrlKey) continue;
116
- if (hk.meta !== event.metaKey) continue;
117
- if (hk.alt !== event.altKey) continue;
118
- if (hk.shift !== event.shiftKey) continue;
119
- if (!matchKey(hk.key, event.key)) continue;
113
+ if (!matchesHotkey(event, hk)) continue;
120
114
  const entry = resolveEntry(hk.entry);
121
115
  const hasModifier = hk.ctrl || hk.meta || hk.alt || hk.shift;
122
116
  if (editable && !entry.allowInEditable && !hasModifier && hk.key !== "Escape") continue;
@@ -1 +1 @@
1
- {"version":3,"file":"hotkey.js","names":[],"sources":["../../src/directives/hotkey.ts"],"sourcesContent":["import type { Directive } from 'vue'\n\nexport type HotkeyHandler = (event: KeyboardEvent) => void\n\nexport type HotkeyEntry =\n | HotkeyHandler\n | {\n handler: HotkeyHandler\n /** По умолчанию: `true` для комбинаций с Ctrl/Meta/Alt, иначе `false`. */\n preventDefault?: boolean\n /** По умолчанию `false`. */\n stopPropagation?: boolean\n /** Разрешить срабатывать, когда фокус в `input/textarea/[contenteditable]`. */\n allowInEditable?: boolean\n }\n\nexport type HotkeyMap = Record<string, HotkeyEntry>\n\n/**\n * Где слушать клавиатуру:\n * - `'global'` (по умолчанию) — слушатель на `window`; хоткеи работают из любого места страницы.\n * - `'element'` — слушатель на самом элементе; хоткеи срабатывают только когда фокус внутри\n * элемента (событие всплывает до него). Элемент должен быть фокусируемым (`tabindex`).\n */\nexport type HotkeyScope = 'global' | 'element'\n\nexport type HotkeyBindingValue =\n | HotkeyMap\n | {\n handlers: HotkeyMap\n enabled?: boolean\n scope?: HotkeyScope\n }\n\ntype ParsedHotkey = {\n original: string\n key: string\n ctrl: boolean\n meta: boolean\n alt: boolean\n shift: boolean\n entry: HotkeyEntry\n}\n\ntype InternalState = {\n enabled: boolean\n hotkeys: ParsedHotkey[]\n listener: (event: KeyboardEvent) => void\n /** Цель, на которой висит слушатель (`window` для 'global', сам `el` для 'element'). */\n target: Window | HTMLElement\n}\n\nconst states = new WeakMap<HTMLElement, InternalState>()\n\nfunction isEditableTarget(target: EventTarget | null): boolean {\n if (!(target instanceof HTMLElement)) return false\n if (target.isContentEditable) return true\n\n const tag = target.tagName\n return tag === 'INPUT' || tag === 'TEXTAREA' || tag === 'SELECT'\n}\n\nfunction normalizeBinding(value: HotkeyBindingValue | undefined) {\n if (!value) return { enabled: false, handlers: {} as HotkeyMap, scope: 'global' as HotkeyScope }\n if ('handlers' in (value as any)) {\n const v = value as { handlers: HotkeyMap; enabled?: boolean; scope?: HotkeyScope }\n return { enabled: v.enabled ?? true, handlers: v.handlers ?? {}, scope: v.scope ?? 'global' }\n }\n return { enabled: true, handlers: value as HotkeyMap, scope: 'global' as HotkeyScope }\n}\n\nfunction normalizeKeyToken(token: string): string {\n const t = token.trim().toLowerCase()\n if (t === 'esc') return 'Escape'\n if (t === 'escape') return 'Escape'\n if (t === 'space') return ' '\n if (t.length === 1) return t\n return token.trim()\n}\n\nfunction parseHotkeys(map: HotkeyMap): ParsedHotkey[] {\n const parsed: ParsedHotkey[] = []\n\n for (const [combo, entry] of Object.entries(map)) {\n const parts = combo\n .split('+')\n .map(p => p.trim())\n .filter(Boolean)\n\n if (!parts.length) continue\n\n let ctrl = false\n let meta = false\n let alt = false\n let shift = false\n\n const keyToken = parts.at(-1)\n if (!keyToken) continue\n for (const p of parts.slice(0, -1)) {\n const t = p.toLowerCase()\n if (t === 'ctrl' || t === 'control') ctrl = true\n else if (t === 'meta' || t === 'cmd' || t === 'command' || t === '⌘') meta = true\n else if (t === 'alt' || t === 'option') alt = true\n else if (t === 'shift') shift = true\n }\n\n const key = normalizeKeyToken(keyToken)\n parsed.push({ original: combo, key, ctrl, meta, alt, shift, entry })\n }\n\n return parsed\n}\n\nfunction matchKey(expected: string, eventKey: string): boolean {\n if (expected === ' ') return eventKey === ' ' || eventKey === 'Spacebar'\n if (expected.length === 1) return expected.toLowerCase() === eventKey.toLowerCase()\n return expected === eventKey\n}\n\nfunction resolveEntry(entry: HotkeyEntry) {\n if (typeof entry === 'function') {\n return {\n handler: entry,\n preventDefault: undefined as boolean | undefined,\n stopPropagation: false,\n allowInEditable: false,\n }\n }\n\n return {\n handler: entry.handler,\n preventDefault: entry.preventDefault,\n stopPropagation: entry.stopPropagation ?? false,\n allowInEditable: entry.allowInEditable ?? false,\n }\n}\n\n/**\n * `v-hotkey` — горячие клавиши на компонент/страницу.\n *\n * Пример:\n * ```vue\n * <div v-hotkey=\"{ 'Escape': close, 'Ctrl+K': openSearch }\" />\n * ```\n *\n * По умолчанию слушатель глобальный (`window`). Чтобы хоткеи срабатывали только\n * когда фокус внутри элемента, используйте `scope: 'element'`:\n * ```vue\n * <div tabindex=\"0\" v-hotkey=\"{ handlers: { 'j': next }, scope: 'element' }\" />\n * ```\n */\nexport const vHotkey: Directive<HTMLElement, HotkeyBindingValue> = {\n mounted(el, binding) {\n if (typeof window === 'undefined') return\n\n const { enabled, handlers, scope } = normalizeBinding(binding.value)\n const target: Window | HTMLElement = scope === 'element' ? el : window\n\n const state: InternalState = {\n enabled,\n hotkeys: parseHotkeys(handlers),\n listener: (event: KeyboardEvent) => {\n const current = states.get(el)\n if (!current?.enabled) return\n if (!el.isConnected) return\n\n const editable = isEditableTarget(event.target)\n\n for (const hk of current.hotkeys) {\n if (hk.ctrl !== event.ctrlKey) continue\n if (hk.meta !== event.metaKey) continue\n if (hk.alt !== event.altKey) continue\n if (hk.shift !== event.shiftKey) continue\n if (!matchKey(hk.key, event.key)) continue\n\n const entry = resolveEntry(hk.entry)\n\n // По умолчанию не перехватываем \"простые\" клавиши во время ввода.\n const hasModifier = hk.ctrl || hk.meta || hk.alt || hk.shift\n if (editable && !entry.allowInEditable && !hasModifier && hk.key !== 'Escape') {\n continue\n }\n\n const preventDefault = entry.preventDefault ?? (hk.ctrl || hk.meta || hk.alt)\n if (preventDefault) event.preventDefault()\n if (entry.stopPropagation) event.stopPropagation()\n\n entry.handler(event)\n return\n }\n },\n target,\n }\n\n states.set(el, state)\n target.addEventListener('keydown', state.listener as EventListener)\n },\n updated(el, binding) {\n const state = states.get(el)\n if (!state) return\n\n const next = normalizeBinding(binding.value)\n state.enabled = next.enabled\n state.hotkeys = parseHotkeys(next.handlers)\n\n // Смена scope на лету — переносим слушатель на новую цель.\n const nextTarget: Window | HTMLElement = next.scope === 'element' ? el : window\n if (nextTarget !== state.target) {\n state.target.removeEventListener('keydown', state.listener as EventListener)\n state.target = nextTarget\n nextTarget.addEventListener('keydown', state.listener as EventListener)\n }\n },\n unmounted(el) {\n const state = states.get(el)\n if (!state) return\n state.target.removeEventListener('keydown', state.listener as EventListener)\n states.delete(el)\n },\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"hotkey.js","names":[],"sources":["../../src/directives/hotkey.ts"],"sourcesContent":["import type { Directive } from 'vue'\n\nimport { eventMatchesKey, isComposingEvent, isEditableTarget, shiftSatisfied } from '../internal/keyboard'\n\nexport type HotkeyHandler = (event: KeyboardEvent) => void\n\nexport type HotkeyEntry =\n | HotkeyHandler\n | {\n handler: HotkeyHandler\n /** По умолчанию: `true` для комбинаций с Ctrl/Meta/Alt, иначе `false`. */\n preventDefault?: boolean\n /** По умолчанию `false`. */\n stopPropagation?: boolean\n /** Разрешить срабатывать, когда фокус в `input/textarea/[contenteditable]`. */\n allowInEditable?: boolean\n }\n\nexport type HotkeyMap = Record<string, HotkeyEntry>\n\n/**\n * Где слушать клавиатуру:\n * - `'global'` (по умолчанию) — слушатель на `window`; хоткеи работают из любого места страницы.\n * - `'element'` — слушатель на самом элементе; хоткеи срабатывают только когда фокус внутри\n * элемента (событие всплывает до него). Элемент должен быть фокусируемым (`tabindex`).\n */\nexport type HotkeyScope = 'global' | 'element'\n\nexport type HotkeyBindingValue =\n | HotkeyMap\n | {\n handlers: HotkeyMap\n enabled?: boolean\n scope?: HotkeyScope\n }\n\ntype ParsedHotkey = {\n original: string\n key: string\n ctrl: boolean\n meta: boolean\n alt: boolean\n shift: boolean\n entry: HotkeyEntry\n}\n\ntype InternalState = {\n enabled: boolean\n hotkeys: ParsedHotkey[]\n listener: (event: KeyboardEvent) => void\n /** Цель, на которой висит слушатель (`window` для 'global', сам `el` для 'element'). */\n target: Window | HTMLElement\n}\n\nconst states = new WeakMap<HTMLElement, InternalState>()\n\nfunction normalizeBinding(value: HotkeyBindingValue | undefined) {\n if (!value) return { enabled: false, handlers: {} as HotkeyMap, scope: 'global' as HotkeyScope }\n if ('handlers' in (value as any)) {\n const v = value as { handlers: HotkeyMap; enabled?: boolean; scope?: HotkeyScope }\n return { enabled: v.enabled ?? true, handlers: v.handlers ?? {}, scope: v.scope ?? 'global' }\n }\n return { enabled: true, handlers: value as HotkeyMap, scope: 'global' as HotkeyScope }\n}\n\nfunction normalizeKeyToken(token: string): string {\n const t = token.trim().toLowerCase()\n if (t === 'esc') return 'Escape'\n if (t === 'escape') return 'Escape'\n if (t === 'space') return ' '\n if (t.length === 1) return t\n return token.trim()\n}\n\nfunction parseHotkeys(map: HotkeyMap): ParsedHotkey[] {\n const parsed: ParsedHotkey[] = []\n\n for (const [combo, entry] of Object.entries(map)) {\n const parts = combo\n .split('+')\n .map(p => p.trim())\n .filter(Boolean)\n\n if (!parts.length) continue\n\n let ctrl = false\n let meta = false\n let alt = false\n let shift = false\n\n const keyToken = parts.at(-1)\n if (!keyToken) continue\n for (const p of parts.slice(0, -1)) {\n const t = p.toLowerCase()\n if (t === 'ctrl' || t === 'control') ctrl = true\n else if (t === 'meta' || t === 'cmd' || t === 'command' || t === '⌘') meta = true\n else if (t === 'alt' || t === 'option') alt = true\n else if (t === 'shift') shift = true\n }\n\n const key = normalizeKeyToken(keyToken)\n parsed.push({ original: combo, key, ctrl, meta, alt, shift, entry })\n }\n\n return parsed\n}\n\nfunction matchesHotkey(event: KeyboardEvent, hk: ParsedHotkey): boolean {\n if (hk.ctrl !== event.ctrlKey) return false\n if (hk.meta !== event.metaKey) return false\n if (hk.alt !== event.altKey) return false\n if (!shiftSatisfied(event, hk.key, hk.shift)) return false\n\n // По физическому коду матчатся только комбинации с модификаторами: там\n // клавиша — позиция на клавиатуре, и `Ctrl+K` обязан работать на любой\n // раскладке. Одиночная клавиша — печатная, её раскладка и определяет.\n return eventMatchesKey(event, hk.key, { codeFallback: hk.ctrl || hk.meta || hk.alt })\n}\n\nfunction resolveEntry(entry: HotkeyEntry) {\n if (typeof entry === 'function') {\n return {\n handler: entry,\n preventDefault: undefined as boolean | undefined,\n stopPropagation: false,\n allowInEditable: false,\n }\n }\n\n return {\n handler: entry.handler,\n preventDefault: entry.preventDefault,\n stopPropagation: entry.stopPropagation ?? false,\n allowInEditable: entry.allowInEditable ?? false,\n }\n}\n\n/**\n * `v-hotkey` — горячие клавиши на компонент/страницу.\n *\n * Пример:\n * ```vue\n * <div v-hotkey=\"{ 'Escape': close, 'Ctrl+K': openSearch }\" />\n * ```\n *\n * По умолчанию слушатель глобальный (`window`). Чтобы хоткеи срабатывали только\n * когда фокус внутри элемента, используйте `scope: 'element'`:\n * ```vue\n * <div tabindex=\"0\" v-hotkey=\"{ handlers: { 'j': next }, scope: 'element' }\" />\n * ```\n */\nexport const vHotkey: Directive<HTMLElement, HotkeyBindingValue> = {\n mounted(el, binding) {\n if (typeof window === 'undefined') return\n\n const { enabled, handlers, scope } = normalizeBinding(binding.value)\n const target: Window | HTMLElement = scope === 'element' ? el : window\n\n const state: InternalState = {\n enabled,\n hotkeys: parseHotkeys(handlers),\n listener: (event: KeyboardEvent) => {\n const current = states.get(el)\n if (!current?.enabled) return\n if (!el.isConnected) return\n // Клавиша во время IME-композиции принадлежит композиции, а не хоткею.\n if (isComposingEvent(event)) return\n\n const editable = isEditableTarget(event.target)\n\n for (const hk of current.hotkeys) {\n if (!matchesHotkey(event, hk)) continue\n\n const entry = resolveEntry(hk.entry)\n\n // По умолчанию не перехватываем \"простые\" клавиши во время ввода.\n const hasModifier = hk.ctrl || hk.meta || hk.alt || hk.shift\n if (editable && !entry.allowInEditable && !hasModifier && hk.key !== 'Escape') {\n continue\n }\n\n const preventDefault = entry.preventDefault ?? (hk.ctrl || hk.meta || hk.alt)\n if (preventDefault) event.preventDefault()\n if (entry.stopPropagation) event.stopPropagation()\n\n entry.handler(event)\n return\n }\n },\n target,\n }\n\n states.set(el, state)\n target.addEventListener('keydown', state.listener as EventListener)\n },\n updated(el, binding) {\n const state = states.get(el)\n if (!state) return\n\n const next = normalizeBinding(binding.value)\n state.enabled = next.enabled\n state.hotkeys = parseHotkeys(next.handlers)\n\n // Смена scope на лету — переносим слушатель на новую цель.\n const nextTarget: Window | HTMLElement = next.scope === 'element' ? el : window\n if (nextTarget !== state.target) {\n state.target.removeEventListener('keydown', state.listener as EventListener)\n state.target = nextTarget\n nextTarget.addEventListener('keydown', state.listener as EventListener)\n }\n },\n unmounted(el) {\n const state = states.get(el)\n if (!state) return\n state.target.removeEventListener('keydown', state.listener as EventListener)\n states.delete(el)\n },\n}\n"],"mappings":"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"}
@@ -1,4 +1,6 @@
1
- import { t as GrLoading_default } from "../components/GrLoading/chunks/GrLoading-fRDtVfi7.js";
1
+ import { t as ensurePortalRoot } from "../chunks/portalRoot-CWD4zHBm.js";
2
+ import { n as markInert, t as inertableOutside } from "../chunks/inert-DIHCCn_1.js";
3
+ import { t as GrLoading_default } from "../components/GrLoading/chunks/GrLoading-CH95CFzS.js";
2
4
  import { createVNode, render } from "vue";
3
5
  //#region src/directives/loading.ts
4
6
  function isHTMLElement(value) {
@@ -45,6 +47,32 @@ function ensureClippedContainer(target, fullscreen) {
45
47
  target.style.overflow = prevInline;
46
48
  };
47
49
  }
50
+ /**
51
+ * Блокирует контент под оверлеем.
52
+ *
53
+ * Оверлей перекрывает контейнер визуально, но не для клавиатуры и не для
54
+ * скринридера: таб уходит в форму, которую пользователь уже не видит, а диктор
55
+ * читает её как обычную. `inert` снимает поддерево целиком — и фокус, и
56
+ * события указателя, и дерево доступности.
57
+ *
58
+ * Возвращает снятие блокировки. Чужой `inert` (элемент был инертен и до нас)
59
+ * не трогается: снять его — значит вернуть в таб-порядок то, что скрыл кто-то
60
+ * другой.
61
+ */
62
+ function blockContent(target, overlayHost, fullscreen) {
63
+ const previouslyFocused = document.activeElement;
64
+ const busyElement = fullscreen ? document.body : target;
65
+ busyElement.setAttribute("aria-busy", "true");
66
+ const blocked = fullscreen ? inertableOutside(overlayHost) : Array.from(target.children).filter((child) => child !== overlayHost && isHTMLElement(child));
67
+ const release = markInert(blocked);
68
+ if (isHTMLElement(previouslyFocused) && blocked.some((child) => child.contains(previouslyFocused))) previouslyFocused.blur();
69
+ return () => {
70
+ busyElement.removeAttribute("aria-busy");
71
+ release();
72
+ const active = document.activeElement;
73
+ if ((!active || active === document.body) && isHTMLElement(previouslyFocused) && previouslyFocused.isConnected) previouslyFocused.focus();
74
+ };
75
+ }
48
76
  function parseBinding(value) {
49
77
  if (value === true || value === false) return {
50
78
  loading: value,
@@ -69,28 +97,35 @@ function getState(el) {
69
97
  function createLoading(options = {}, fallbackTarget) {
70
98
  const initialTarget = resolveTarget(options.target, fallbackTarget ?? document.body);
71
99
  const fullscreen = resolveFullscreen(options, initialTarget);
72
- const target = fullscreen ? document.body : initialTarget;
100
+ const target = fullscreen ? ensurePortalRoot() ?? document.body : initialTarget;
73
101
  const appContext = options.appContext;
74
102
  const restorePosition = ensurePositionedContainer(target, fullscreen);
75
103
  const restoreOverflow = ensureClippedContainer(target, fullscreen);
76
104
  const mountEl = document.createElement("div");
77
105
  mountEl.setAttribute("data-gr-loading-host", "");
106
+ mountEl.setAttribute("data-gr-overlay-root", "");
78
107
  if (!fullscreen) mountEl.style.borderRadius = "inherit";
79
108
  target.appendChild(mountEl);
80
- target.setAttribute("aria-busy", "true");
81
109
  let current = { ...options };
82
110
  let disposed = false;
111
+ let unblockContent;
83
112
  function doRender() {
84
113
  if (disposed) return;
85
114
  const vnode = createVNode(GrLoading_default, {
86
115
  text: current.text,
87
116
  spinner: current.spinner,
88
117
  spinnerClass: current.spinnerClass,
118
+ spinnerSize: current.spinnerSize,
119
+ spinnerTone: current.spinnerTone,
89
120
  animated: current.animated,
90
121
  background: current.background,
91
122
  customClass: current.customClass,
92
- zIndex: current.zIndex,
93
- fullscreen
123
+ zIndexVar: current.zIndexVar,
124
+ delay: current.delay,
125
+ fullscreen,
126
+ onShow: () => {
127
+ unblockContent ??= blockContent(target, mountEl, fullscreen);
128
+ }
94
129
  });
95
130
  if (appContext) vnode.appContext = appContext;
96
131
  render(vnode, mountEl);
@@ -102,7 +137,8 @@ function createLoading(options = {}, fallbackTarget) {
102
137
  mountEl.remove();
103
138
  restoreOverflow();
104
139
  restorePosition();
105
- target.removeAttribute("aria-busy");
140
+ unblockContent?.();
141
+ unblockContent = void 0;
106
142
  }
107
143
  function setOptions(next) {
108
144
  current = {
@@ -136,7 +172,7 @@ function sync(el, value, appContext) {
136
172
  }
137
173
  const target = resolveTarget(options.target, el);
138
174
  const fullscreen = resolveFullscreen(options, target);
139
- const normalizedTarget = fullscreen ? document.body : target;
175
+ const normalizedTarget = fullscreen ? ensurePortalRoot() ?? document.body : target;
140
176
  if (!state.controller || state.target !== normalizedTarget || state.fullscreen !== fullscreen) {
141
177
  state.controller?.close();
142
178
  state.controller = createLoading({
@@ -1 +1 @@
1
- {"version":3,"file":"loading.js","names":[],"sources":["../../src/directives/loading.ts"],"sourcesContent":["import type { AppContext, Component, Directive } from 'vue'\nimport { createVNode, render } from 'vue'\n\nimport GrLoading from '../components/GrLoading/GrLoading.vue'\n\nexport type LoadingTarget = string | HTMLElement\n\nexport type LoadingOptions = {\n /**\n * Контейнер, куда будет вставлен оверлей.\n * - если не задано, то для директивы используется сам `el`\n * - для ручного вызова (`createLoading`) по умолчанию используется `document.body`\n */\n target?: LoadingTarget\n\n /**\n * Полноэкранный лоадер (рендерится в `document.body`).\n * По умолчанию включается, если `target` = `document.body`.\n */\n fullscreen?: boolean\n\n text?: string\n spinner?: Component\n spinnerClass?: string\n animated?: boolean\n background?: string\n zIndex?: number\n customClass?: string\n\n /**\n * Внутренний контекст Vue-приложения.\n * Нужен, чтобы кастомный `spinner` мог использовать `inject()` даже при ручном `render()`.\n */\n appContext?: AppContext\n}\n\nexport type LoadingController = {\n close: () => void\n setText: (text?: string) => void\n setOptions: (next: Partial<LoadingOptions>) => void\n readonly target: HTMLElement\n}\n\nexport type LoadingBindingValue =\n | boolean\n | (Omit<LoadingOptions, 'appContext'> & {\n loading?: boolean\n })\n\nfunction isHTMLElement(value: unknown): value is HTMLElement {\n return typeof value === 'object' && value !== null && (value as any).nodeType === 1\n}\n\nfunction resolveTarget(input: LoadingTarget | undefined, fallback: HTMLElement): HTMLElement {\n if (!input) return fallback\n\n if (typeof input === 'string') {\n // Prefer searching within the same root (document / document fragment / shadow root)\n // to support components that are not attached to `document` yet (e.g. in unit tests).\n const root = fallback.getRootNode?.() ?? document\n const foundInRoot =\n typeof (root as any).querySelector === 'function' ? ((root as any).querySelector(input) as Element | null) : null\n if (isHTMLElement(foundInRoot)) return foundInRoot\n\n const foundInDocument = document.querySelector(input)\n if (isHTMLElement(foundInDocument)) return foundInDocument\n\n return fallback\n }\n\n if (isHTMLElement(input)) {\n return input\n }\n\n return fallback\n}\n\nfunction resolveFullscreen(options: LoadingOptions, target: HTMLElement): boolean {\n if (options.fullscreen != null) return options.fullscreen\n return target === document.body\n}\n\nfunction ensurePositionedContainer(target: HTMLElement, fullscreen: boolean): () => void {\n if (fullscreen) return () => {}\n\n const prevInline = target.style.position\n const computed = window.getComputedStyle(target)\n const isStatic = computed.position === 'static' || !computed.position\n\n if (isStatic) {\n target.style.position = 'relative'\n return () => {\n target.style.position = prevInline\n }\n }\n\n return () => {}\n}\n\nfunction ensureClippedContainer(target: HTMLElement, fullscreen: boolean): () => void {\n if (fullscreen) return () => {}\n\n const computed = window.getComputedStyle(target)\n // If the target has rounded corners, we must clip its content so the overlay\n // (and its blurred backdrop) never bleeds outside the visible rounded shape.\n const hasRadius = !!computed.borderRadius && computed.borderRadius !== '0px'\n if (!hasRadius) return () => {}\n\n const overflow = computed.overflow\n if (overflow && overflow !== 'visible') return () => {}\n\n const prevInline = target.style.overflow\n target.style.overflow = 'hidden'\n return () => {\n target.style.overflow = prevInline\n }\n}\n\nfunction parseBinding(value: LoadingBindingValue | undefined): { loading: boolean; options: LoadingOptions } {\n if (value === true || value === false) {\n return { loading: value, options: {} }\n }\n\n if (value && typeof value === 'object') {\n const { loading, ...rest } = value as any\n return { loading: loading ?? true, options: rest }\n }\n\n return { loading: false, options: {} }\n}\n\ntype InternalLoadingState = {\n controller?: LoadingController\n target?: HTMLElement\n fullscreen?: boolean\n}\n\nconst STATE_KEY: unique symbol = Symbol('grLoadingState')\n\nfunction getState(el: HTMLElement): InternalLoadingState {\n return ((el as any)[STATE_KEY] ??= {}) as InternalLoadingState\n}\n\nexport function createLoading(options: LoadingOptions = {}, fallbackTarget?: HTMLElement): LoadingController {\n const initialTarget = resolveTarget(options.target, fallbackTarget ?? document.body)\n const fullscreen = resolveFullscreen(options, initialTarget)\n const target = fullscreen ? document.body : initialTarget\n\n const appContext = options.appContext\n\n const restorePosition = ensurePositionedContainer(target, fullscreen)\n const restoreOverflow = ensureClippedContainer(target, fullscreen)\n const mountEl = document.createElement('div')\n mountEl.setAttribute('data-gr-loading-host', '')\n if (!fullscreen) {\n // Host wraps the overlay; make sure rounded corners of the target cascade\n // down to the overlay via `border-radius: inherit`.\n mountEl.style.borderRadius = 'inherit'\n }\n target.appendChild(mountEl)\n target.setAttribute('aria-busy', 'true')\n\n let current: LoadingOptions = { ...options }\n let disposed = false\n\n function doRender(): void {\n if (disposed) return\n\n const vnode = createVNode(GrLoading as any, {\n text: current.text,\n spinner: current.spinner,\n spinnerClass: current.spinnerClass,\n animated: current.animated,\n background: current.background,\n customClass: current.customClass,\n zIndex: current.zIndex,\n fullscreen,\n })\n\n if (appContext) {\n ;(vnode as any).appContext = appContext\n }\n\n render(vnode, mountEl)\n }\n\n function close(): void {\n if (disposed) return\n disposed = true\n\n render(null, mountEl)\n mountEl.remove()\n restoreOverflow()\n restorePosition()\n target.removeAttribute('aria-busy')\n }\n\n function setOptions(next: Partial<LoadingOptions>): void {\n current = {\n ...current,\n ...next,\n }\n doRender()\n }\n\n function setText(text?: string): void {\n setOptions({ text })\n }\n\n doRender()\n\n return {\n close,\n setOptions,\n setText,\n get target() {\n return target\n },\n }\n}\n\nfunction sync(el: HTMLElement, value: LoadingBindingValue | undefined, appContext?: AppContext): void {\n const { loading, options } = parseBinding(value)\n const state = getState(el)\n\n if (!loading) {\n state.controller?.close()\n state.controller = undefined\n state.target = undefined\n state.fullscreen = undefined\n return\n }\n\n const target = resolveTarget(options.target, el)\n const fullscreen = resolveFullscreen(options, target)\n const normalizedTarget = fullscreen ? document.body : target\n\n const shouldRecreate =\n !state.controller\n || state.target !== normalizedTarget\n || state.fullscreen !== fullscreen\n\n if (shouldRecreate) {\n state.controller?.close()\n state.controller = createLoading({ ...options, fullscreen, target: normalizedTarget, appContext }, el)\n state.target = normalizedTarget\n state.fullscreen = fullscreen\n return\n }\n\n const controller = state.controller\n if (!controller) return\n controller.setOptions({ ...options, fullscreen, target: normalizedTarget })\n}\n\nexport const vLoading: Directive<HTMLElement, LoadingBindingValue> = {\n mounted(el, binding) {\n const appContext = (binding.instance as any)?.$?.appContext as AppContext | undefined\n sync(el, binding.value, appContext)\n },\n updated(el, binding) {\n const appContext = (binding.instance as any)?.$?.appContext as AppContext | undefined\n sync(el, binding.value, appContext)\n },\n unmounted(el) {\n const state = getState(el)\n state.controller?.close()\n state.controller = undefined\n state.target = undefined\n state.fullscreen = undefined\n },\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"loading.js","names":[],"sources":["../../src/directives/loading.ts"],"sourcesContent":["import type { AppContext, Component, Directive } from 'vue'\nimport { createVNode, render } from 'vue'\n\nimport { inertableOutside, markInert } from '../composables/internal/inert'\nimport { ensurePortalRoot } from '../composables/internal/portalRoot'\nimport GrLoading from '../components/GrLoading/GrLoading.vue'\nimport type { GrIconSize, GrIconTone } from '../components/GrIcon/grIconStyles'\n\nexport type LoadingTarget = string | HTMLElement\n\nexport type LoadingOptions = {\n /**\n * Контейнер, куда будет вставлен оверлей.\n * - если не задано, то для директивы используется сам `el`\n * - для ручного вызова (`createLoading`) по умолчанию используется `document.body`\n */\n target?: LoadingTarget\n\n /**\n * Полноэкранный лоадер (рендерится в `document.body`).\n * По умолчанию включается, если `target` = `document.body`.\n */\n fullscreen?: boolean\n\n text?: string\n spinner?: Component\n spinnerClass?: string\n spinnerSize?: GrIconSize | number\n spinnerTone?: GrIconTone\n animated?: boolean\n background?: string\n /** Имя CSS-переменной слоя — escape-hatch мимо `--gr-z-loading`. */\n zIndexVar?: string\n /** Задержка показа в миллисекундах: короткая загрузка не мигает оверлеем. */\n delay?: number\n customClass?: string\n\n /**\n * Внутренний контекст Vue-приложения.\n * Нужен, чтобы кастомный `spinner` мог использовать `inject()` даже при ручном `render()`.\n */\n appContext?: AppContext\n}\n\nexport type LoadingController = {\n close: () => void\n setText: (text?: string) => void\n setOptions: (next: Partial<LoadingOptions>) => void\n readonly target: HTMLElement\n}\n\nexport type LoadingBindingValue =\n | boolean\n | (Omit<LoadingOptions, 'appContext'> & {\n loading?: boolean\n })\n\nfunction isHTMLElement(value: unknown): value is HTMLElement {\n return typeof value === 'object' && value !== null && (value as any).nodeType === 1\n}\n\nfunction resolveTarget(input: LoadingTarget | undefined, fallback: HTMLElement): HTMLElement {\n if (!input) return fallback\n\n if (typeof input === 'string') {\n // Prefer searching within the same root (document / document fragment / shadow root)\n // to support components that are not attached to `document` yet (e.g. in unit tests).\n const root = fallback.getRootNode?.() ?? document\n const foundInRoot =\n typeof (root as any).querySelector === 'function' ? ((root as any).querySelector(input) as Element | null) : null\n if (isHTMLElement(foundInRoot)) return foundInRoot\n\n const foundInDocument = document.querySelector(input)\n if (isHTMLElement(foundInDocument)) return foundInDocument\n\n return fallback\n }\n\n if (isHTMLElement(input)) {\n return input\n }\n\n return fallback\n}\n\nfunction resolveFullscreen(options: LoadingOptions, target: HTMLElement): boolean {\n if (options.fullscreen != null) return options.fullscreen\n return target === document.body\n}\n\nfunction ensurePositionedContainer(target: HTMLElement, fullscreen: boolean): () => void {\n if (fullscreen) return () => {}\n\n const prevInline = target.style.position\n const computed = window.getComputedStyle(target)\n const isStatic = computed.position === 'static' || !computed.position\n\n if (isStatic) {\n target.style.position = 'relative'\n return () => {\n target.style.position = prevInline\n }\n }\n\n return () => {}\n}\n\nfunction ensureClippedContainer(target: HTMLElement, fullscreen: boolean): () => void {\n if (fullscreen) return () => {}\n\n const computed = window.getComputedStyle(target)\n // If the target has rounded corners, we must clip its content so the overlay\n // (and its blurred backdrop) never bleeds outside the visible rounded shape.\n const hasRadius = !!computed.borderRadius && computed.borderRadius !== '0px'\n if (!hasRadius) return () => {}\n\n const overflow = computed.overflow\n if (overflow && overflow !== 'visible') return () => {}\n\n const prevInline = target.style.overflow\n target.style.overflow = 'hidden'\n return () => {\n target.style.overflow = prevInline\n }\n}\n\n/**\n * Блокирует контент под оверлеем.\n *\n * Оверлей перекрывает контейнер визуально, но не для клавиатуры и не для\n * скринридера: таб уходит в форму, которую пользователь уже не видит, а диктор\n * читает её как обычную. `inert` снимает поддерево целиком — и фокус, и\n * события указателя, и дерево доступности.\n *\n * Возвращает снятие блокировки. Чужой `inert` (элемент был инертен и до нас)\n * не трогается: снять его — значит вернуть в таб-порядок то, что скрыл кто-то\n * другой.\n */\nfunction blockContent(target: HTMLElement, overlayHost: HTMLElement, fullscreen: boolean): () => void {\n const previouslyFocused = document.activeElement\n\n // Занятость объявляет тот, чьё содержимое закрыто: у инлайнового лоадера это\n // его контейнер, у полноэкранного — вся страница. Сам оверлей при этом живёт\n // в портале, то есть в другой ветке.\n const busyElement = fullscreen ? document.body : target\n busyElement.setAttribute('aria-busy', 'true')\n\n const blocked = fullscreen\n ? inertableOutside(overlayHost)\n : Array.from(target.children).filter((child): child is HTMLElement =>\n child !== overlayHost && isHTMLElement(child),\n )\n\n const release = markInert(blocked)\n\n // Уже стоящий фокус браузер сам не забирает: Chrome оставляет его внутри\n // ставшего инертным поддерева, и пользователь продолжает печатать в поле под\n // оверлеем. Уводим фокус руками — вернём его при закрытии.\n if (isHTMLElement(previouslyFocused) && blocked.some(child => child.contains(previouslyFocused)))\n previouslyFocused.blur()\n\n return () => {\n busyElement.removeAttribute('aria-busy')\n release()\n\n // `inert` сбрасывает фокус на `body`. Возвращаем его туда, где он был, но\n // только если пользователь не увёл его сам, пока шла загрузка.\n const active = document.activeElement\n const focusLost = !active || active === document.body\n if (focusLost && isHTMLElement(previouslyFocused) && previouslyFocused.isConnected)\n previouslyFocused.focus()\n }\n}\n\nfunction parseBinding(value: LoadingBindingValue | undefined): { loading: boolean; options: LoadingOptions } {\n if (value === true || value === false) {\n return { loading: value, options: {} }\n }\n\n if (value && typeof value === 'object') {\n const { loading, ...rest } = value as any\n return { loading: loading ?? true, options: rest }\n }\n\n return { loading: false, options: {} }\n}\n\ntype InternalLoadingState = {\n controller?: LoadingController\n target?: HTMLElement\n fullscreen?: boolean\n}\n\nconst STATE_KEY: unique symbol = Symbol('grLoadingState')\n\nfunction getState(el: HTMLElement): InternalLoadingState {\n return ((el as any)[STATE_KEY] ??= {}) as InternalLoadingState\n}\n\nexport function createLoading(options: LoadingOptions = {}, fallbackTarget?: HTMLElement): LoadingController {\n const initialTarget = resolveTarget(options.target, fallbackTarget ?? document.body)\n const fullscreen = resolveFullscreen(options, initialTarget)\n // Полноэкранный лоадер — оверлей, значит живёт в общей ветке портала: только\n // так правило `inert` не пометит его вместе со страницей.\n const target = fullscreen ? (ensurePortalRoot() ?? document.body) : initialTarget\n\n const appContext = options.appContext\n\n const restorePosition = ensurePositionedContainer(target, fullscreen)\n const restoreOverflow = ensureClippedContainer(target, fullscreen)\n const mountEl = document.createElement('div')\n mountEl.setAttribute('data-gr-loading-host', '')\n // Маркер оверлея: чужой модальный слой не должен гасить лоадер `inert`.\n mountEl.setAttribute('data-gr-overlay-root', '')\n if (!fullscreen) {\n // Host wraps the overlay; make sure rounded corners of the target cascade\n // down to the overlay via `border-radius: inherit`.\n mountEl.style.borderRadius = 'inherit'\n }\n target.appendChild(mountEl)\n\n let current: LoadingOptions = { ...options }\n let disposed = false\n let unblockContent: (() => void) | undefined\n\n function doRender(): void {\n if (disposed) return\n\n const vnode = createVNode(GrLoading as any, {\n text: current.text,\n spinner: current.spinner,\n spinnerClass: current.spinnerClass,\n spinnerSize: current.spinnerSize,\n spinnerTone: current.spinnerTone,\n animated: current.animated,\n background: current.background,\n customClass: current.customClass,\n zIndexVar: current.zIndexVar,\n delay: current.delay,\n fullscreen,\n // Блокируем контент ровно тогда, когда оверлей стал видимым: с `delay`\n // это происходит позже монтирования, а до показа блокировать нечего.\n onShow: () => {\n unblockContent ??= blockContent(target, mountEl, fullscreen)\n },\n })\n\n if (appContext) {\n ;(vnode as any).appContext = appContext\n }\n\n render(vnode, mountEl)\n }\n\n function close(): void {\n if (disposed) return\n disposed = true\n\n render(null, mountEl)\n mountEl.remove()\n restoreOverflow()\n restorePosition()\n unblockContent?.()\n unblockContent = undefined\n }\n\n function setOptions(next: Partial<LoadingOptions>): void {\n current = {\n ...current,\n ...next,\n }\n doRender()\n }\n\n function setText(text?: string): void {\n setOptions({ text })\n }\n\n doRender()\n\n return {\n close,\n setOptions,\n setText,\n get target() {\n return target\n },\n }\n}\n\nfunction sync(el: HTMLElement, value: LoadingBindingValue | undefined, appContext?: AppContext): void {\n const { loading, options } = parseBinding(value)\n const state = getState(el)\n\n if (!loading) {\n state.controller?.close()\n state.controller = undefined\n state.target = undefined\n state.fullscreen = undefined\n return\n }\n\n const target = resolveTarget(options.target, el)\n const fullscreen = resolveFullscreen(options, target)\n const normalizedTarget = fullscreen ? (ensurePortalRoot() ?? document.body) : target\n\n const shouldRecreate =\n !state.controller\n || state.target !== normalizedTarget\n || state.fullscreen !== fullscreen\n\n if (shouldRecreate) {\n state.controller?.close()\n state.controller = createLoading({ ...options, fullscreen, target: normalizedTarget, appContext }, el)\n state.target = normalizedTarget\n state.fullscreen = fullscreen\n return\n }\n\n const controller = state.controller\n if (!controller) return\n controller.setOptions({ ...options, fullscreen, target: normalizedTarget })\n}\n\nexport const vLoading: Directive<HTMLElement, LoadingBindingValue> = {\n mounted(el, binding) {\n const appContext = (binding.instance as any)?.$?.appContext as AppContext | undefined\n sync(el, binding.value, appContext)\n },\n updated(el, binding) {\n const appContext = (binding.instance as any)?.$?.appContext as AppContext | undefined\n sync(el, binding.value, appContext)\n },\n unmounted(el) {\n const state = getState(el)\n state.controller?.close()\n state.controller = undefined\n state.target = undefined\n state.fullscreen = undefined\n },\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { a as allowedExtensionsValidator, c as normalizeFiles, i as allowedMimeTypesValidator, l as runFileValidators, n as maxSizeMbValidator, o as acceptValidator, r as maxFileSizeBytesValidator, s as matchAccept, t as maxTotalSizeBytesValidator, u as FileValidationError } from "../chunks/fileValidation-C3WFaWU2.js";
2
- export { FileValidationError, acceptValidator, allowedExtensionsValidator, allowedMimeTypesValidator, matchAccept, maxFileSizeBytesValidator, maxSizeMbValidator, maxTotalSizeBytesValidator, normalizeFiles, runFileValidators };
1
+ import { a as allowedExtensionsValidator, c as fileValidationI18nKey, d as normalizeFiles, f as runFileValidators, i as allowedMimeTypesValidator, l as resolveFileValidationMessage, n as maxFileSize, o as acceptValidator, p as FileValidationError, r as maxCountValidator, s as FILE_VALIDATION_I18N_NAMESPACE, t as maxTotalSizeBytesValidator, u as matchAccept } from "../chunks/fileValidation-D5TFBhbv.js";
2
+ export { FILE_VALIDATION_I18N_NAMESPACE, FileValidationError, acceptValidator, allowedExtensionsValidator, allowedMimeTypesValidator, fileValidationI18nKey, matchAccept, maxCountValidator, maxFileSize, maxTotalSizeBytesValidator, normalizeFiles, resolveFileValidationMessage, runFileValidators };
@@ -1,32 +1,2 @@
1
- import { n as grButtonSafelist } from "./chunks/safelist-BvO8HPnE.js";
2
- import { n as grProgressBarSafelist } from "./chunks/config-DRKXJ9PW2.js";
3
- import { a as granularityThemeNames, i as granularityDefaultThemes, n as createGranularityProvider, r as granularityComponentConfigs, t as GRANULARITY_PROVIDER_ID } from "./chunks/shared-D-v9lit0.js";
4
- import { defineGranularComponent } from "@feugene/unocss-preset-granular/contract";
5
- import { tokenDefinitionsFromCssSync } from "@feugene/unocss-preset-granular/node";
6
- //#region src/components/GrButton/config.node.ts
7
- var lightCssUrl$1 = new URL("data:text/css;base64,OnJvb3QgewogIC0tZ3ItYnV0dG9uLXByaW1hcnktYmc6IHZhcigtLWdyLXByaW1hcnkpOwogIC0tZ3ItYnV0dG9uLXByaW1hcnktYmctaG92ZXI6IHZhcigtLWdyLXByaW1hcnktaG92ZXIpOwogIC0tZ3ItYnV0dG9uLXByaW1hcnktYmctYWN0aXZlOiB2YXIoLS1nci1wcmltYXJ5LWFjdGl2ZSk7CiAgLS1nci1idXR0b24tcHJpbWFyeS1mZzogdmFyKC0tZ3ItcHJpbWFyeS1mZyk7CiAgLS1nci1idXR0b24tcHJpbWFyeS1zb2Z0LWJnOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZ3ItcHJpbWFyeSkgMTQlLCB2YXIoLS1nci1iZykpOwogIC0tZ3ItYnV0dG9uLXByaW1hcnktc29mdC1iZy1ob3ZlcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWdyLXByaW1hcnkpIDE4JSwgdmFyKC0tZ3ItYmcpKTsKICAtLWdyLWJ1dHRvbi1wcmltYXJ5LXNvZnQtYmctYWN0aXZlOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZ3ItcHJpbWFyeSkgMjQlLCB2YXIoLS1nci1iZykpOwoKICAvKgogICAqINCS0J3QmNCc0JDQndCY0JU6INGN0YLQvtGCINGE0LDQudC7INC/0LDRgNGB0LjRgtGB0Y8g0LrQvtC90YLRgNCw0YHRgi3RgtC10YHRgtC+0Lwg0L3QsNC40LLQvdGL0Lwg0YDQtdCz0Y3QutGB0L/QvtC8INC/0L4g0LLRgdC10LzRgwogICAqINGC0LXQutGB0YLRgywg0LLQutC70Y7Rh9Cw0Y8g0LrQvtC80LzQtdC90YLQsNGA0LjQuC4g0J3QtSDQv9C40YHQsNGC0Ywg0LfQtNC10YHRjCDQuNC80Y8g0YLQvtC60LXQvdCwINGBINC00LLQvtC10YLQvtGH0LjQtdC8INGB0YDQsNC30YMKICAgKiDQv9C+0YHQu9C1IOKAlCDRgtCw0LrQsNGPINGB0YLRgNC+0LrQsCDQsdGD0LTQtdGCINC/0YDQvtGH0LjRgtCw0L3QsCDQutCw0Log0L7QsdGK0Y/QstC70LXQvdC40LUg0Lgg0YHRitC10YHRgiDRgdC70LXQtNGD0Y7RidC10LUuCiAgICoKICAgKiDQmtC90L7Qv9C60LAg0LfQsNC70LjQstCw0LXRgtGB0Y8g0KHQntCR0KHQotCS0JXQndCd0KvQnCDQt9Cw0YLQtdC80L3RkdC90L3Ri9C8INGC0L7QvdC+0LwgKCMwNDc4NTcg0LLQvNC10YHRgtC+INGB0LLQtdGC0LvQvtCz0L4KICAgKiDQs9C70L7QsdCw0LvRjNC90L7Qs9C+IHN1Y2Nlc3MpLCDQv9C+0Y3RgtC+0LzRgyDQuCDRgtC10LrRgdGCINCx0LXRgNGR0YIg0YHQvtCx0YHRgtCy0LXQvdC90YvQuSDQsdC10LvRi9C5LiDQk9C70L7QsdCw0LvRjNC90YvQuQogICAqIHN1Y2Nlc3MtZmcg0L/QsNGA0LXQvSDRgdC+INGB0LLQtdGC0LvQvtC5INC30LDQu9C40LLQutC+0Lkg0Lgg0L/QvtGC0L7QvNGDINGC0ZHQvNC90YvQuSDigJQg0L3QsCDRgtGR0LzQvdC+0Lkg0LfQsNC70LjQstC60LUKICAgKiDQutC90L7Qv9C60Lgg0L7QvSDQtNCw0Lsg0LHRiyAzLjI2OjEuINCR0LXQu9GL0Lkg0LfQtNC10YHRjCDQtNCw0ZHRgiA1LjQ4IC8gNi40NSAvIDcuNzEuCiAgICog0KLQsNC6INC20LUg0YPRgdGC0YDQvtC10L0gYXp1cmUg0L3QuNC20LUuCiAgICovCiAgLS1nci1idXR0b24tc3VjY2Vzcy1iZzogIzA0Nzg1NzsKICAtLWdyLWJ1dHRvbi1zdWNjZXNzLWJnLWhvdmVyOiAjMDM2YzRkOwogIC0tZ3ItYnV0dG9uLXN1Y2Nlc3MtYmctYWN0aXZlOiAjMDI1ZjQ0OwogIC0tZ3ItYnV0dG9uLXN1Y2Nlc3MtZmc6ICNmZmZmZmY7CiAgLS1nci1idXR0b24tc3VjY2Vzcy1zb2Z0LWJnOiB2YXIoLS1nci1zdWNjZXNzLWxpZ2h0KTsKICAtLWdyLWJ1dHRvbi1zdWNjZXNzLXNvZnQtYmctaG92ZXI6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1nci1zdWNjZXNzKSAyMCUsIHZhcigtLWdyLWJnKSk7CiAgLS1nci1idXR0b24tc3VjY2Vzcy1zb2Z0LWJnLWFjdGl2ZTogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWdyLXN1Y2Nlc3MpIDI2JSwgdmFyKC0tZ3ItYmcpKTsKCiAgLS1nci1idXR0b24td2FybmluZy1iZzogI2MyNDEwYzsKICAtLWdyLWJ1dHRvbi13YXJuaW5nLWJnLWhvdmVyOiAjYjUzYjBhOwogIC0tZ3ItYnV0dG9uLXdhcm5pbmctYmctYWN0aXZlOiAjOWYzMzA3OwogIC8qINCi0L7RgiDQttC1INGB0LvRg9GH0LDQuTog0LHQtdC70YvQuSDQvdCwICNjMjQxMGMg4oCUIDUuMTgsINGC0ZHQvNC90YvQuSDQtNCw0Lsg0LHRiyAzLjQ1LiAqLwogIC0tZ3ItYnV0dG9uLXdhcm5pbmctZmc6ICNmZmZmZmY7CiAgLS1nci1idXR0b24td2FybmluZy1zb2Z0LWJnOiB2YXIoLS1nci13YXJuaW5nLWxpZ2h0KTsKICAtLWdyLWJ1dHRvbi13YXJuaW5nLXNvZnQtYmctaG92ZXI6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1nci13YXJuaW5nKSAyMCUsIHZhcigtLWdyLWJnKSk7CiAgLS1nci1idXR0b24td2FybmluZy1zb2Z0LWJnLWFjdGl2ZTogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWdyLXdhcm5pbmcpIDI2JSwgdmFyKC0tZ3ItYmcpKTsKCiAgLS1nci1idXR0b24tZGFuZ2VyLWJnOiB2YXIoLS1nci1kYW5nZXIpOwogIC0tZ3ItYnV0dG9uLWRhbmdlci1iZy1ob3ZlcjogdmFyKC0tZ3ItZGFuZ2VyLWhvdmVyKTsKICAtLWdyLWJ1dHRvbi1kYW5nZXItYmctYWN0aXZlOiB2YXIoLS1nci1kYW5nZXItYWN0aXZlKTsKICAtLWdyLWJ1dHRvbi1kYW5nZXItZmc6IHZhcigtLWdyLWRhbmdlci1mZyk7CiAgLS1nci1idXR0b24tZGFuZ2VyLXNvZnQtYmc6IHZhcigtLWdyLWRhbmdlci1saWdodCk7CiAgLS1nci1idXR0b24tZGFuZ2VyLXNvZnQtYmctaG92ZXI6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1nci1kYW5nZXIpIDIwJSwgdmFyKC0tZ3ItYmcpKTsKICAtLWdyLWJ1dHRvbi1kYW5nZXItc29mdC1iZy1hY3RpdmU6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1nci1kYW5nZXIpIDI2JSwgdmFyKC0tZ3ItYmcpKTsKCiAgLS1nci1idXR0b24taW5mby1iZzogdmFyKC0tZ3ItaW5mbyk7CiAgLS1nci1idXR0b24taW5mby1iZy1ob3ZlcjogdmFyKC0tZ3ItaW5mby1ob3Zlcik7CiAgLS1nci1idXR0b24taW5mby1iZy1hY3RpdmU6IHZhcigtLWdyLWluZm8tYWN0aXZlKTsKICAtLWdyLWJ1dHRvbi1pbmZvLWZnOiB2YXIoLS1nci1pbmZvLWZnKTsKICAtLWdyLWJ1dHRvbi1pbmZvLXNvZnQtYmc6IHZhcigtLWdyLWluZm8tbGlnaHQpOwogIC0tZ3ItYnV0dG9uLWluZm8tc29mdC1iZy1ob3ZlcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWdyLWluZm8pIDIwJSwgdmFyKC0tZ3ItYmcpKTsKICAtLWdyLWJ1dHRvbi1pbmZvLXNvZnQtYmctYWN0aXZlOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZ3ItaW5mbykgMjYlLCB2YXIoLS1nci1iZykpOwoKICAtLWdyLWJ1dHRvbi1zbGF0ZS1iZzogdmFyKC0tZ3Itc2xhdGUpOwogIC0tZ3ItYnV0dG9uLXNsYXRlLWJnLWhvdmVyOiB2YXIoLS1nci1zbGF0ZS1ob3Zlcik7CiAgLS1nci1idXR0b24tc2xhdGUtYmctYWN0aXZlOiB2YXIoLS1nci1zbGF0ZS1hY3RpdmUpOwogIC0tZ3ItYnV0dG9uLXNsYXRlLWZnOiB2YXIoLS1nci1zbGF0ZS1mZyk7CiAgLS1nci1idXR0b24tc2xhdGUtc29mdC1iZzogdmFyKC0tZ3Itc2xhdGUtbGlnaHQpOwogIC0tZ3ItYnV0dG9uLXNsYXRlLXNvZnQtYmctaG92ZXI6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1nci1zbGF0ZSkgMjAlLCB2YXIoLS1nci1iZykpOwogIC0tZ3ItYnV0dG9uLXNsYXRlLXNvZnQtYmctYWN0aXZlOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZ3Itc2xhdGUpIDI2JSwgdmFyKC0tZ3ItYmcpKTsKCiAgLS1nci1idXR0b24tYXp1cmUtYmc6ICMwMzY5YTE7CiAgLS1nci1idXR0b24tYXp1cmUtYmctaG92ZXI6ICMwNzU5ODU7CiAgLS1nci1idXR0b24tYXp1cmUtYmctYWN0aXZlOiAjMGM0YTZlOwogIC0tZ3ItYnV0dG9uLWF6dXJlLWZnOiAjZmZmZmZmOwogIC0tZ3ItYnV0dG9uLWF6dXJlLXNvZnQtYmc6IHZhcigtLWdyLWF6dXJlLWxpZ2h0KTsKICAtLWdyLWJ1dHRvbi1henVyZS1zb2Z0LWJnLWhvdmVyOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZ3ItYXp1cmUpIDIwJSwgdmFyKC0tZ3ItYmcpKTsKICAtLWdyLWJ1dHRvbi1henVyZS1zb2Z0LWJnLWFjdGl2ZTogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWdyLWF6dXJlKSAyNiUsIHZhcigtLWdyLWJnKSk7Cn0=", "" + import.meta.url).href;
8
- var darkCssUrl$1 = new URL("data:text/css;base64,Ci50aGVtZS1kYXJrLAouZGFyaywKW2RhdGEtdGhlbWU9J2RhcmsnXSB7CiAgLS1nci1idXR0b24tcHJpbWFyeS1iZzogIzU5NWNlNjsKICAtLWdyLWJ1dHRvbi1wcmltYXJ5LWJnLWhvdmVyOiAjNTA1M2RkOwogIC0tZ3ItYnV0dG9uLXByaW1hcnktYmctYWN0aXZlOiAjNDc0YWNmOwogIC0tZ3ItYnV0dG9uLXByaW1hcnktZmc6ICNmZmZmZmY7CgogIC0tZ3ItYnV0dG9uLXN1Y2Nlc3MtYmc6ICMwNDc4NTc7CiAgLS1nci1idXR0b24tc3VjY2Vzcy1iZy1ob3ZlcjogIzAzNmM0ZDsKICAtLWdyLWJ1dHRvbi1zdWNjZXNzLWJnLWFjdGl2ZTogIzAyNWY0NDsKICAtLWdyLWJ1dHRvbi1zdWNjZXNzLWZnOiAjZjhmYWZjOwoKICAtLWdyLWJ1dHRvbi13YXJuaW5nLWJnOiAjYzI0MTBjOwogIC0tZ3ItYnV0dG9uLXdhcm5pbmctYmctaG92ZXI6ICNiNTNiMGE7CiAgLS1nci1idXR0b24td2FybmluZy1iZy1hY3RpdmU6ICM5ZjMzMDc7CiAgLS1nci1idXR0b24td2FybmluZy1mZzogI2Y4ZmFmYzsKCiAgLS1nci1idXR0b24tZGFuZ2VyLWJnOiAjYjkxYzFjOwogIC0tZ3ItYnV0dG9uLWRhbmdlci1iZy1ob3ZlcjogI2E5MTkxOTsKICAtLWdyLWJ1dHRvbi1kYW5nZXItYmctYWN0aXZlOiAjOTMxNTE1OwogIC0tZ3ItYnV0dG9uLWRhbmdlci1mZzogI2Y4ZmFmYzsKCiAgLS1nci1idXR0b24taW5mby1iZzogIzQzMzhjYTsKICAtLWdyLWJ1dHRvbi1pbmZvLWJnLWhvdmVyOiAjM2QzM2JiOwogIC0tZ3ItYnV0dG9uLWluZm8tYmctYWN0aXZlOiAjMzYyZGE4OwogIC0tZ3ItYnV0dG9uLWluZm8tZmc6ICNmOGZhZmM7CgogIC0tZ3ItYnV0dG9uLXNsYXRlLWJnOiAjNDc1NTY5OwogIC0tZ3ItYnV0dG9uLXNsYXRlLWJnLWhvdmVyOiAjMzM0MTU1OwogIC0tZ3ItYnV0dG9uLXNsYXRlLWJnLWFjdGl2ZTogIzFlMjkzYjsKICAtLWdyLWJ1dHRvbi1zbGF0ZS1mZzogI2Y4ZmFmYzsKCiAgLS1nci1idXR0b24tYXp1cmUtYmc6ICMwMzY5YTE7CiAgLS1nci1idXR0b24tYXp1cmUtYmctaG92ZXI6ICMwNzU5ODU7CiAgLS1nci1idXR0b24tYXp1cmUtYmctYWN0aXZlOiAjMGM0YTZlOwogIC0tZ3ItYnV0dG9uLWF6dXJlLWZnOiAjZjhmYWZjOwp9", "" + import.meta.url).href;
9
- var grButtonConfig = defineGranularComponent(import.meta.url, {
10
- name: "GrButton",
11
- safelist: grButtonSafelist,
12
- tokenDefinitions: {
13
- light: tokenDefinitionsFromCssSync(lightCssUrl$1, { selector: ":root" }),
14
- dark: tokenDefinitionsFromCssSync(darkCssUrl$1, { as: ".dark, [data-theme=\"dark\"]" })
15
- }
16
- });
17
- //#endregion
18
- //#region src/components/GrProgressBar/config.node.ts
19
- var lightCssUrl = new URL("data:text/css;base64,OnJvb3QgewogIC0tcGItYmc6IHZhcigtLWdyLXByaW1hcnkpOwogIC0tcGItbmV1dHJhbC1iZzogdmFyKC0tZ3Itc2Vjb25kYXJ5KTsKICAtLXBiLXN1Y2Nlc3MtYmc6IHZhcigtLWdyLXN1Y2Nlc3MpOwogIC0tcGItd2FybmluZy1iZzogdmFyKC0tZ3Itd2FybmluZyk7CiAgLS1wYi1kYW5nZXItYmc6IHZhcigtLWdyLWRhbmdlcik7CiAgLS1wYi1pbmZvLWJnOiB2YXIoLS1nci1pbmZvKTsKICAtLXBiLXNsYXRlLWJnOiB2YXIoLS1nci1zbGF0ZSk7CiAgLS1wYi1henVyZS1iZzogdmFyKC0tZ3ItYXp1cmUpOwp9Cg==", "" + import.meta.url).href;
20
- var darkCssUrl = new URL("data:text/css;base64,LnRoZW1lLWRhcmssCi5kYXJrLApbZGF0YS10aGVtZT0nZGFyayddIHsKICAtLXBiLWJnOiB2YXIoLS1nci1wcmltYXJ5KTsKICAtLXBiLW5ldXRyYWwtYmc6IHZhcigtLWdyLXNlY29uZGFyeSk7CiAgLS1wYi1zdWNjZXNzLWJnOiB2YXIoLS1nci1zdWNjZXNzKTsKICAtLXBiLXdhcm5pbmctYmc6IHZhcigtLWdyLXdhcm5pbmcpOwogIC0tcGItZGFuZ2VyLWJnOiB2YXIoLS1nci1kYW5nZXIpOwogIC0tcGItaW5mby1iZzogdmFyKC0tZ3ItaW5mbyk7CiAgLS1wYi1zbGF0ZS1iZzogdmFyKC0tZ3Itc2xhdGUpOwogIC0tcGItYXp1cmUtYmc6IHZhcigtLWdyLWF6dXJlKTsKfQ==", "" + import.meta.url).href;
21
- //#endregion
22
- //#region src/granular-provider/node.ts
23
- var granularityProvider = createGranularityProvider([grButtonConfig, defineGranularComponent(import.meta.url, {
24
- name: "GrProgressBar",
25
- safelist: grProgressBarSafelist,
26
- tokenDefinitions: {
27
- light: tokenDefinitionsFromCssSync(lightCssUrl, { selector: ":root" }),
28
- dark: tokenDefinitionsFromCssSync(darkCssUrl, { as: ".dark, [data-theme=\"dark\"]" })
29
- }
30
- })]);
31
- //#endregion
1
+ import { a as granularityDefaultThemes, i as granularityComponentConfigs, n as GRANULARITY_PROVIDER_ID, o as granularityThemeNames, r as createGranularityProvider, t as granularityProvider } from "./chunks/granular-provider-CtrXGa7c.js";
32
2
  export { GRANULARITY_PROVIDER_ID, createGranularityProvider, granularityProvider as default, granularityProvider, granularityComponentConfigs, granularityDefaultThemes, granularityThemeNames };