@feugene/granularity 0.13.0 → 0.18.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 (1266) 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-iNaGdw.js +199 -0
  14. package/dist/chunks/config-B-iNaGdw.js.map +1 -0
  15. package/dist/chunks/config-B84z1aos.js +19 -0
  16. package/dist/chunks/config-B84z1aos.js.map +1 -0
  17. package/dist/chunks/config-BDfTXHo12.js +23 -0
  18. package/dist/chunks/config-BDfTXHo12.js.map +1 -0
  19. package/dist/chunks/config-BE6n20np2.js +27 -0
  20. package/dist/chunks/config-BE6n20np2.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-BNu8lFQB.js.map +1 -1
  26. package/dist/chunks/config-BSyiFlbi.js +17 -0
  27. package/dist/chunks/config-BSyiFlbi.js.map +1 -0
  28. package/dist/chunks/config-BViooYNv.js +13 -0
  29. package/dist/chunks/config-BViooYNv.js.map +1 -0
  30. package/dist/chunks/config-Baj7Wvx-.js +72 -0
  31. package/dist/chunks/config-Baj7Wvx-.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_PD2.js +140 -0
  37. package/dist/chunks/config-BoNR7_PD2.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-BsPDQ0dS.js +97 -0
  43. package/dist/chunks/config-BsPDQ0dS.js.map +1 -0
  44. package/dist/chunks/config-BsuDM3Hb.js +55 -0
  45. package/dist/chunks/config-BsuDM3Hb.js.map +1 -0
  46. package/dist/chunks/config-BtXRpAtq.js +48 -0
  47. package/dist/chunks/config-BtXRpAtq.js.map +1 -0
  48. package/dist/chunks/config-BuGlNPE9.js +8 -0
  49. package/dist/chunks/config-BuGlNPE9.js.map +1 -0
  50. package/dist/chunks/config-C0Ea9ePP.js +15 -0
  51. package/dist/chunks/config-C0Ea9ePP.js.map +1 -0
  52. package/dist/chunks/config-CN2ULSQL.js +36 -0
  53. package/dist/chunks/config-CN2ULSQL.js.map +1 -0
  54. package/dist/chunks/config-CN970ZcJ.js +113 -0
  55. package/dist/chunks/config-CN970ZcJ.js.map +1 -0
  56. package/dist/chunks/config-COpuWGr_.js +72 -0
  57. package/dist/chunks/config-COpuWGr_.js.map +1 -0
  58. package/dist/chunks/config-COvrUfhR.js +83 -0
  59. package/dist/chunks/config-COvrUfhR.js.map +1 -0
  60. package/dist/chunks/config-CQzGyi1C.js +54 -0
  61. package/dist/chunks/config-CQzGyi1C.js.map +1 -0
  62. package/dist/chunks/config-CY0_6cMi.js +51 -0
  63. package/dist/chunks/config-CY0_6cMi.js.map +1 -0
  64. package/dist/chunks/config-CjXjhphs.js +12 -0
  65. package/dist/chunks/config-CjXjhphs.js.map +1 -0
  66. package/dist/chunks/config-CjnbevbD.js +13 -0
  67. package/dist/chunks/config-CjnbevbD.js.map +1 -0
  68. package/dist/chunks/config-Cl4ST6Qd.js +21 -0
  69. package/dist/chunks/config-Cl4ST6Qd.js.map +1 -0
  70. package/dist/chunks/config-Cp0DE0GH.js +12 -0
  71. package/dist/chunks/config-Cp0DE0GH.js.map +1 -0
  72. package/dist/chunks/config-Cwd3yjRw.js +41 -0
  73. package/dist/chunks/config-Cwd3yjRw.js.map +1 -0
  74. package/dist/chunks/config-D2aNP7Es.js +70 -0
  75. package/dist/chunks/config-D2aNP7Es.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-D94Z9po5.js +126 -0
  81. package/dist/chunks/config-D94Z9po5.js.map +1 -0
  82. package/dist/chunks/config-DA6SnEoy.js +22 -0
  83. package/dist/chunks/config-DA6SnEoy.js.map +1 -0
  84. package/dist/chunks/config-DBmdgoVf.js.map +1 -1
  85. package/dist/chunks/config-DCFvmHEv2.js +76 -0
  86. package/dist/chunks/config-DCFvmHEv2.js.map +1 -0
  87. package/dist/chunks/config-DEvsMTQE.js +150 -0
  88. package/dist/chunks/config-DEvsMTQE.js.map +1 -0
  89. package/dist/chunks/config-DKdlqXiY.js +109 -0
  90. package/dist/chunks/config-DKdlqXiY.js.map +1 -0
  91. package/dist/chunks/config-DP7eseR1.js +92 -0
  92. package/dist/chunks/config-DP7eseR1.js.map +1 -0
  93. package/dist/chunks/config-DSJY6aEl.js +80 -0
  94. package/dist/chunks/config-DSJY6aEl.js.map +1 -0
  95. package/dist/chunks/config-DU2DNSRx2.js +116 -0
  96. package/dist/chunks/config-DU2DNSRx2.js.map +1 -0
  97. package/dist/chunks/config-DhHbU3zO.js +37 -0
  98. package/dist/chunks/config-DhHbU3zO.js.map +1 -0
  99. package/dist/chunks/config-DpeQchsV.js +21 -0
  100. package/dist/chunks/config-DpeQchsV.js.map +1 -0
  101. package/dist/chunks/config-DpqOnJiz2.js.map +1 -0
  102. package/dist/chunks/config-DvQIb4kb.js +98 -0
  103. package/dist/chunks/config-DvQIb4kb.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-MRvhUl-O.js +81 -0
  107. package/dist/chunks/config-MRvhUl-O.js.map +1 -0
  108. package/dist/chunks/config-QaIc_gRa.js.map +1 -0
  109. package/dist/chunks/config-Rw9OyW70.js +87 -0
  110. package/dist/chunks/config-Rw9OyW70.js.map +1 -0
  111. package/dist/chunks/config-ScuvHw6k2.js +42 -0
  112. package/dist/chunks/config-ScuvHw6k2.js.map +1 -0
  113. package/dist/chunks/config-T3qdQBgU2.js +40 -0
  114. package/dist/chunks/config-T3qdQBgU2.js.map +1 -0
  115. package/dist/chunks/config-WTNhdh6T2.js +20 -0
  116. package/dist/chunks/config-WTNhdh6T2.js.map +1 -0
  117. package/dist/chunks/config-_qPUfb6-2.js +165 -0
  118. package/dist/chunks/config-_qPUfb6-2.js.map +1 -0
  119. package/dist/chunks/config-esdviAPL.js +41 -0
  120. package/dist/chunks/config-esdviAPL.js.map +1 -0
  121. package/dist/chunks/config-gvq_hWNM.js +103 -0
  122. package/dist/chunks/config-gvq_hWNM.js.map +1 -0
  123. package/dist/chunks/config-gwro_7yn.js +55 -0
  124. package/dist/chunks/config-gwro_7yn.js.map +1 -0
  125. package/dist/chunks/config-qVg3Zz_A.js +30 -0
  126. package/dist/chunks/config-qVg3Zz_A.js.map +1 -0
  127. package/dist/chunks/config-zjeAJ4ho.js +64 -0
  128. package/dist/chunks/config-zjeAJ4ho.js.map +1 -0
  129. package/dist/chunks/context-BSYR7RZs.js +152 -0
  130. package/dist/chunks/context-BSYR7RZs.js.map +1 -0
  131. package/dist/chunks/context-BfIQv7m1.js +18 -0
  132. package/dist/chunks/context-BfIQv7m1.js.map +1 -0
  133. package/dist/chunks/context-Bfrgsluh.js.map +1 -1
  134. package/dist/chunks/context-DdNIxa1w.js.map +1 -1
  135. package/dist/chunks/dialogShared-CxW62PQE.js.map +1 -1
  136. package/dist/chunks/en-COdzxgAX.js +352 -0
  137. package/dist/chunks/en-COdzxgAX.js.map +1 -0
  138. package/dist/chunks/es-ClqJ-4hr.js +354 -0
  139. package/dist/chunks/es-ClqJ-4hr.js.map +1 -0
  140. package/dist/chunks/es-DGMHwknJ.js +20 -0
  141. package/dist/chunks/es-DGMHwknJ.js.map +1 -0
  142. package/dist/chunks/fileValidation-D5TFBhbv.js +296 -0
  143. package/dist/chunks/fileValidation-D5TFBhbv.js.map +1 -0
  144. package/dist/chunks/focusables-BkzK42SQ.js +87 -0
  145. package/dist/chunks/focusables-BkzK42SQ.js.map +1 -0
  146. package/dist/chunks/grBadgeStyles-C2wLlkjF.js +61 -0
  147. package/dist/chunks/grBadgeStyles-C2wLlkjF.js.map +1 -0
  148. package/dist/chunks/grButtonStyles-B_-YRE__.js +221 -0
  149. package/dist/chunks/grButtonStyles-B_-YRE__.js.map +1 -0
  150. package/dist/chunks/grCheckboxStyles-hOAgURZG.js +82 -0
  151. package/dist/chunks/grCheckboxStyles-hOAgURZG.js.map +1 -0
  152. package/dist/chunks/grDropdownStyles-V7TRiCXn.js +24 -0
  153. package/dist/chunks/grDropdownStyles-V7TRiCXn.js.map +1 -0
  154. package/dist/chunks/grFormFieldStyles-BkeZHIw0.js +32 -0
  155. package/dist/chunks/grFormFieldStyles-BkeZHIw0.js.map +1 -0
  156. package/dist/chunks/grIconStyles-BwJrml2L.js +44 -0
  157. package/dist/chunks/grIconStyles-BwJrml2L.js.map +1 -0
  158. package/dist/chunks/grInputStyles-CJeMhUe5.js +66 -0
  159. package/dist/chunks/grInputStyles-CJeMhUe5.js.map +1 -0
  160. package/dist/chunks/grKbdStyles-CeZhGQHr.js +43 -0
  161. package/dist/chunks/grKbdStyles-CeZhGQHr.js.map +1 -0
  162. package/dist/chunks/grLinkStyles-BoL8QYcV.js +84 -0
  163. package/dist/chunks/grLinkStyles-BoL8QYcV.js.map +1 -0
  164. package/dist/chunks/grLoadingStyles-DEmji2wv.js +30 -0
  165. package/dist/chunks/grLoadingStyles-DEmji2wv.js.map +1 -0
  166. package/dist/chunks/grModalStyles-EZfuEiw_.js +77 -0
  167. package/dist/chunks/grModalStyles-EZfuEiw_.js.map +1 -0
  168. package/dist/chunks/grPopoverStyles-Rz_Z5nLW.js +46 -0
  169. package/dist/chunks/grPopoverStyles-Rz_Z5nLW.js.map +1 -0
  170. package/dist/chunks/grSelectStyles-eTz4uPMP.js +147 -0
  171. package/dist/chunks/grSelectStyles-eTz4uPMP.js.map +1 -0
  172. package/dist/chunks/grSliderStyles-B5uNxNJq.js +133 -0
  173. package/dist/chunks/grSliderStyles-B5uNxNJq.js.map +1 -0
  174. package/dist/chunks/grStyle-CrgLQKKf.js +46 -0
  175. package/dist/chunks/grStyle-CrgLQKKf.js.map +1 -0
  176. package/dist/chunks/grTableStyles-C-iaqQUN.js +26 -0
  177. package/dist/chunks/grTableStyles-C-iaqQUN.js.map +1 -0
  178. package/dist/chunks/grTextareaStyles-iOcHuVMM.js +50 -0
  179. package/dist/chunks/grTextareaStyles-iOcHuVMM.js.map +1 -0
  180. package/dist/chunks/granular-provider-B9nXQCMu.js +195 -0
  181. package/dist/chunks/granular-provider-B9nXQCMu.js.map +1 -0
  182. package/dist/chunks/granularityI18n-BC5zsj_d.js +68 -0
  183. package/dist/chunks/granularityI18n-BC5zsj_d.js.map +1 -0
  184. package/dist/chunks/inert-DIHCCn_1.js +78 -0
  185. package/dist/chunks/inert-DIHCCn_1.js.map +1 -0
  186. package/dist/chunks/keyboard-DE2yhz_b.js +70 -0
  187. package/dist/chunks/keyboard-DE2yhz_b.js.map +1 -0
  188. package/dist/chunks/loader-2-B1fdsdWW.js +23 -0
  189. package/dist/chunks/loader-2-B1fdsdWW.js.map +1 -0
  190. package/dist/chunks/minus-oxdbHF33.js +23 -0
  191. package/dist/chunks/minus-oxdbHF33.js.map +1 -0
  192. package/dist/chunks/optionFilter-DYw9XPPx.js +79 -0
  193. package/dist/chunks/optionFilter-DYw9XPPx.js.map +1 -0
  194. package/dist/chunks/overlayStack-C8cfsqXa.js +99 -0
  195. package/dist/chunks/overlayStack-C8cfsqXa.js.map +1 -0
  196. package/dist/chunks/portalRoot-CWD4zHBm.js +35 -0
  197. package/dist/chunks/portalRoot-CWD4zHBm.js.map +1 -0
  198. package/dist/chunks/ru-9z8ix45c.js +356 -0
  199. package/dist/chunks/ru-9z8ix45c.js.map +1 -0
  200. package/dist/chunks/safelist-CudBLyAD.js +26 -0
  201. package/dist/chunks/safelist-CudBLyAD.js.map +1 -0
  202. package/dist/chunks/slotNodes-DxNXpC7v.js +39 -0
  203. package/dist/chunks/slotNodes-DxNXpC7v.js.map +1 -0
  204. package/dist/chunks/useControlAddons-asUr10Pf.js +128 -0
  205. package/dist/chunks/useControlAddons-asUr10Pf.js.map +1 -0
  206. package/dist/chunks/useControlledOpen-DV3SqLTP.js +27 -0
  207. package/dist/chunks/useControlledOpen-DV3SqLTP.js.map +1 -0
  208. package/dist/chunks/useDragSort-0l47h4yb.js +265 -0
  209. package/dist/chunks/useDragSort-0l47h4yb.js.map +1 -0
  210. package/dist/chunks/useFilePreviews-DnwgdyBs.js +53 -0
  211. package/dist/chunks/useFilePreviews-DnwgdyBs.js.map +1 -0
  212. package/dist/chunks/useFocusWithin-BwHE0rzm.js +33 -0
  213. package/dist/chunks/useFocusWithin-BwHE0rzm.js.map +1 -0
  214. package/dist/chunks/useModalOverlay-BTq-0ImG.js +212 -0
  215. package/dist/chunks/useModalOverlay-BTq-0ImG.js.map +1 -0
  216. package/dist/chunks/usePortalTarget-RyzEgNTb.js +77 -0
  217. package/dist/chunks/usePortalTarget-RyzEgNTb.js.map +1 -0
  218. package/dist/chunks/validation-5HhpanPP.js +178 -0
  219. package/dist/chunks/validation-5HhpanPP.js.map +1 -0
  220. package/dist/components/GrAlert/chunks/GrAlert-BC1lplbY.js +272 -0
  221. package/dist/components/GrAlert/chunks/GrAlert-BC1lplbY.js.map +1 -0
  222. package/dist/components/GrAlert/index.js +2 -2
  223. package/dist/components/GrAutocomplete/chunks/GrAutocomplete-CPEQxmLZ.js +852 -0
  224. package/dist/components/GrAutocomplete/chunks/GrAutocomplete-CPEQxmLZ.js.map +1 -0
  225. package/dist/components/GrAutocomplete/index.js +2 -2
  226. package/dist/components/GrAutocomplete/styles.css +1 -0
  227. package/dist/components/GrAvatar/chunks/GrAvatar-CVUujLmn.js +222 -0
  228. package/dist/components/GrAvatar/chunks/GrAvatar-CVUujLmn.js.map +1 -0
  229. package/dist/components/GrAvatar/index.js +3 -3
  230. package/dist/components/GrBadge/chunks/GrBadge-B1tgqfGQ.js +40 -0
  231. package/dist/components/GrBadge/chunks/GrBadge-B1tgqfGQ.js.map +1 -0
  232. package/dist/components/GrBadge/index.js +2 -2
  233. package/dist/components/GrBadge/styles.css +1 -0
  234. package/dist/components/GrBadge/themes/dark.css +19 -0
  235. package/dist/components/GrBadge/themes/light.css +18 -0
  236. package/dist/components/GrBadgeWrap/chunks/GrBadgeWrap-C-E9betg.js +97 -0
  237. package/dist/components/GrBadgeWrap/chunks/GrBadgeWrap-C-E9betg.js.map +1 -0
  238. package/dist/components/GrBadgeWrap/index.js +3 -3
  239. package/dist/components/GrBadgeWrap/styles.css +1 -0
  240. package/dist/components/GrBottomNav/chunks/GrBottomNav-9GH7Dd9E.js +117 -0
  241. package/dist/components/GrBottomNav/chunks/GrBottomNav-9GH7Dd9E.js.map +1 -0
  242. package/dist/components/GrBottomNav/index.js +3 -3
  243. package/dist/components/GrBreadcrumbs/chunks/GrBreadcrumbs-BCNGDS6k.js +266 -0
  244. package/dist/components/GrBreadcrumbs/chunks/GrBreadcrumbs-BCNGDS6k.js.map +1 -0
  245. package/dist/components/GrBreadcrumbs/index.js +3 -0
  246. package/dist/components/GrButton/chunks/GrButton-D0m_z0XW.js +153 -0
  247. package/dist/components/GrButton/chunks/GrButton-D0m_z0XW.js.map +1 -0
  248. package/dist/components/GrButton/index.js +5 -5
  249. package/dist/components/GrButton/themes/dark.css +46 -0
  250. package/dist/components/GrButton/themes/light.css +82 -0
  251. package/dist/components/GrButtonGroup/chunks/GrButtonGroup-CKyiAV8K.js +44 -0
  252. package/dist/components/GrButtonGroup/chunks/GrButtonGroup-CKyiAV8K.js.map +1 -0
  253. package/dist/components/GrButtonGroup/index.js +3 -2
  254. package/dist/components/GrButtonGroup/styles.css +1 -0
  255. package/dist/components/GrCard/chunks/GrCard-DOrGHf2x.js +89 -0
  256. package/dist/components/GrCard/chunks/GrCard-DOrGHf2x.js.map +1 -0
  257. package/dist/components/GrCard/index.js +3 -3
  258. package/dist/components/GrCheckbox/chunks/GrCheckbox-BLOp8452.js +262 -0
  259. package/dist/components/GrCheckbox/chunks/GrCheckbox-BLOp8452.js.map +1 -0
  260. package/dist/components/GrCheckbox/index.js +3 -3
  261. package/dist/components/GrCheckboxGroup/chunks/GrCheckboxGroup-CXTx2Z5H.js +140 -0
  262. package/dist/components/GrCheckboxGroup/chunks/GrCheckboxGroup-CXTx2Z5H.js.map +1 -0
  263. package/dist/components/GrCheckboxGroup/index.js +3 -0
  264. package/dist/components/GrCollapse/chunks/GrCollapse-B2Fc6A9r.js +308 -0
  265. package/dist/components/GrCollapse/chunks/GrCollapse-B2Fc6A9r.js.map +1 -0
  266. package/dist/components/GrCollapse/index.js +3 -3
  267. package/dist/components/GrColorPicker/chunks/GrColorPicker-DAdQ-Gc3.js +584 -0
  268. package/dist/components/GrColorPicker/chunks/GrColorPicker-DAdQ-Gc3.js.map +1 -0
  269. package/dist/components/GrColorPicker/index.js +3 -0
  270. package/dist/components/GrColorPicker/styles.css +1 -0
  271. package/dist/components/GrCommandPalette/chunks/GrCommandPalette-DMeSqkEv.js +565 -0
  272. package/dist/components/GrCommandPalette/chunks/GrCommandPalette-DMeSqkEv.js.map +1 -0
  273. package/dist/components/GrCommandPalette/index.js +2 -2
  274. package/dist/components/GrCommandPalette/styles.css +1 -0
  275. package/dist/components/GrConfigProvider/chunks/GrConfigProvider-BA6JO7V6.js +144 -0
  276. package/dist/components/GrConfigProvider/chunks/GrConfigProvider-BA6JO7V6.js.map +1 -0
  277. package/dist/components/GrConfigProvider/index.js +3 -3
  278. package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-hUTi-GdJ.js +200 -0
  279. package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-hUTi-GdJ.js.map +1 -0
  280. package/dist/components/GrConfirmDialog/index.js +2 -2
  281. package/dist/components/GrDataTable/chunks/GrDataTable-DzaGLG3A.js +1053 -0
  282. package/dist/components/GrDataTable/chunks/GrDataTable-DzaGLG3A.js.map +1 -0
  283. package/dist/components/GrDataTable/index.js +3 -3
  284. package/dist/components/GrDialog/chunks/GrDialog-MD9Fzy9C.js +255 -0
  285. package/dist/components/GrDialog/chunks/GrDialog-MD9Fzy9C.js.map +1 -0
  286. package/dist/components/GrDialog/index.js +1 -1
  287. package/dist/components/GrDialogService/chunks/GrDialogService-DtgUijMj.js +656 -0
  288. package/dist/components/GrDialogService/chunks/GrDialogService-DtgUijMj.js.map +1 -0
  289. package/dist/components/GrDialogService/index.js +3 -3
  290. package/dist/components/GrDivider/chunks/GrDivider-B2Xwc_QO.js +109 -0
  291. package/dist/components/GrDivider/chunks/GrDivider-B2Xwc_QO.js.map +1 -0
  292. package/dist/components/GrDivider/index.js +3 -3
  293. package/dist/components/GrDrawer/chunks/GrDrawer-DWHdZZzW.js +251 -0
  294. package/dist/components/GrDrawer/chunks/GrDrawer-DWHdZZzW.js.map +1 -0
  295. package/dist/components/GrDrawer/index.js +2 -2
  296. package/dist/components/GrDropdown/chunks/GrDropdown-0tJK01Kq.js +300 -0
  297. package/dist/components/GrDropdown/chunks/GrDropdown-0tJK01Kq.js.map +1 -0
  298. package/dist/components/GrDropdown/index.js +2 -2
  299. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-VPPrpCoA.js +421 -0
  300. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-VPPrpCoA.js.map +1 -0
  301. package/dist/components/GrDropdownMenu/index.js +3 -3
  302. package/dist/components/GrEmptyState/chunks/GrEmptyState-W7Irx3vc.js +86 -0
  303. package/dist/components/GrEmptyState/chunks/GrEmptyState-W7Irx3vc.js.map +1 -0
  304. package/dist/components/GrEmptyState/index.js +3 -3
  305. package/dist/components/GrFileUpload/chunks/GrFileUpload-DuDzC43S.js +1080 -0
  306. package/dist/components/GrFileUpload/chunks/GrFileUpload-DuDzC43S.js.map +1 -0
  307. package/dist/components/GrFileUpload/index.js +4 -4
  308. package/dist/components/GrForm/chunks/GrForm-BCHCfIMv.js +326 -0
  309. package/dist/components/GrForm/chunks/GrForm-BCHCfIMv.js.map +1 -0
  310. package/dist/components/GrForm/index.js +3 -2
  311. package/dist/components/GrFormField/chunks/GrFormField-CL5rcgj6.js +190 -0
  312. package/dist/components/GrFormField/chunks/GrFormField-CL5rcgj6.js.map +1 -0
  313. package/dist/components/GrFormField/index.js +3 -3
  314. package/dist/components/GrFormFile/chunks/GrFormFile-BikSD7bg.js +452 -0
  315. package/dist/components/GrFormFile/chunks/GrFormFile-BikSD7bg.js.map +1 -0
  316. package/dist/components/GrFormFile/index.js +3 -3
  317. package/dist/components/GrFormFile/styles.css +1 -0
  318. package/dist/components/GrFormSection/chunks/GrFormSection-BEh5n4jF.js +63 -0
  319. package/dist/components/GrFormSection/chunks/GrFormSection-BEh5n4jF.js.map +1 -0
  320. package/dist/components/GrFormSection/index.js +3 -3
  321. package/dist/components/GrIcon/chunks/GrIcon-BvA2ZGXP.js +57 -0
  322. package/dist/components/GrIcon/chunks/GrIcon-BvA2ZGXP.js.map +1 -0
  323. package/dist/components/GrIcon/index.js +3 -3
  324. package/dist/components/GrIcon/styles.css +1 -0
  325. package/dist/components/GrImageViewer/chunks/GrImageViewer-DE7MBbF8.js +1127 -0
  326. package/dist/components/GrImageViewer/chunks/GrImageViewer-DE7MBbF8.js.map +1 -0
  327. package/dist/components/GrImageViewer/index.js +3 -3
  328. package/dist/components/GrImageViewer/themes/dark.css +17 -0
  329. package/dist/components/GrImageViewer/themes/light.css +16 -0
  330. package/dist/components/GrInput/chunks/GrInput-2wd7Crs0.js +348 -0
  331. package/dist/components/GrInput/chunks/GrInput-2wd7Crs0.js.map +1 -0
  332. package/dist/components/GrInput/index.js +2 -2
  333. package/dist/components/GrInputTag/chunks/GrInputTag-CyV2eY7Z.js +512 -0
  334. package/dist/components/GrInputTag/chunks/GrInputTag-CyV2eY7Z.js.map +1 -0
  335. package/dist/components/GrInputTag/index.js +2 -2
  336. package/dist/components/GrKbd/chunks/GrKbd-DU2lBkRV.js +358 -0
  337. package/dist/components/GrKbd/chunks/GrKbd-DU2lBkRV.js.map +1 -0
  338. package/dist/components/GrKbd/index.js +3 -3
  339. package/dist/components/GrLink/chunks/GrLink-D-cgUMXW.js +163 -0
  340. package/dist/components/GrLink/chunks/GrLink-D-cgUMXW.js.map +1 -0
  341. package/dist/components/GrLink/index.js +2 -2
  342. package/dist/components/GrList/chunks/GrList-4YU1NZtM.js +277 -0
  343. package/dist/components/GrList/chunks/GrList-4YU1NZtM.js.map +1 -0
  344. package/dist/components/GrList/index.js +3 -3
  345. package/dist/components/GrList/styles.css +1 -0
  346. package/dist/components/GrLoading/chunks/GrLoading-CH95CFzS.js +101 -0
  347. package/dist/components/GrLoading/chunks/GrLoading-CH95CFzS.js.map +1 -0
  348. package/dist/components/GrLoading/index.js +2 -2
  349. package/dist/components/GrModal/chunks/GrModal-BbhcsDQ8.js +313 -0
  350. package/dist/components/GrModal/chunks/GrModal-BbhcsDQ8.js.map +1 -0
  351. package/dist/components/GrModal/index.js +3 -4
  352. package/dist/components/GrNavbar/chunks/GrNavbar-CF0KbM_6.js +104 -0
  353. package/dist/components/GrNavbar/chunks/GrNavbar-CF0KbM_6.js.map +1 -0
  354. package/dist/components/GrNavbar/index.js +3 -3
  355. package/dist/components/GrNumberInput/chunks/GrNumberInput-CZOyPz4J.js +658 -0
  356. package/dist/components/GrNumberInput/chunks/GrNumberInput-CZOyPz4J.js.map +1 -0
  357. package/dist/components/GrNumberInput/index.js +2 -2
  358. package/dist/components/GrPagination/chunks/GrPagination-waKhxBP7.js +283 -0
  359. package/dist/components/GrPagination/chunks/GrPagination-waKhxBP7.js.map +1 -0
  360. package/dist/components/GrPagination/index.js +3 -3
  361. package/dist/components/GrPopover/chunks/GrPopover-DuqeoFaI.js +216 -0
  362. package/dist/components/GrPopover/chunks/GrPopover-DuqeoFaI.js.map +1 -0
  363. package/dist/components/GrPopover/index.js +3 -0
  364. package/dist/components/GrProgressBar/chunks/GrProgressBar-xwbNM9QB.js +90 -0
  365. package/dist/components/GrProgressBar/chunks/GrProgressBar-xwbNM9QB.js.map +1 -0
  366. package/dist/components/GrProgressBar/index.js +2 -2
  367. package/dist/components/GrProgressBar/styles.css +1 -0
  368. package/dist/components/GrProgressBar/themes/dark.css +13 -0
  369. package/dist/components/GrProgressBar/themes/light.css +12 -0
  370. package/dist/components/GrProgressCircle/chunks/GrProgressCircle-B8olXRo5.js +210 -0
  371. package/dist/components/GrProgressCircle/chunks/GrProgressCircle-B8olXRo5.js.map +1 -0
  372. package/dist/components/GrProgressCircle/index.js +3 -0
  373. package/dist/components/GrProgressCircle/styles.css +1 -0
  374. package/dist/components/GrPromptDialog/chunks/GrPromptDialog-JVVqBsPY.js +348 -0
  375. package/dist/components/GrPromptDialog/chunks/GrPromptDialog-JVVqBsPY.js.map +1 -0
  376. package/dist/components/GrPromptDialog/index.js +2 -2
  377. package/dist/components/GrRadio/chunks/GrRadio-DWiRaMzt.js +253 -0
  378. package/dist/components/GrRadio/chunks/GrRadio-DWiRaMzt.js.map +1 -0
  379. package/dist/components/GrRadio/index.js +2 -2
  380. package/dist/components/GrRadioGroup/chunks/GrRadioGroup-DIuBw0wk.js +196 -0
  381. package/dist/components/GrRadioGroup/chunks/GrRadioGroup-DIuBw0wk.js.map +1 -0
  382. package/dist/components/GrRadioGroup/index.js +2 -2
  383. package/dist/components/GrRating/chunks/GrRating-LarIiwJL.js +315 -0
  384. package/dist/components/GrRating/chunks/GrRating-LarIiwJL.js.map +1 -0
  385. package/dist/components/GrRating/index.js +2 -2
  386. package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-C7W9mgYN.js +777 -0
  387. package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-C7W9mgYN.js.map +1 -0
  388. package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-DhX4jjay.js +224 -0
  389. package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-DhX4jjay.js.map +1 -0
  390. package/dist/components/GrResponseErrorBanner/index.js +2 -2
  391. package/dist/components/GrSegmented/chunks/GrSegmented-CQw3ijqa.js +388 -0
  392. package/dist/components/GrSegmented/chunks/GrSegmented-CQw3ijqa.js.map +1 -0
  393. package/dist/components/GrSegmented/index.js +3 -3
  394. package/dist/components/GrSelect/chunks/GrSelect-DAdu044K.js +1373 -0
  395. package/dist/components/GrSelect/chunks/GrSelect-DAdu044K.js.map +1 -0
  396. package/dist/components/GrSelect/index.js +2 -2
  397. package/dist/components/GrSelect/styles.css +1 -0
  398. package/dist/components/GrSidebar/chunks/GrSidebar-DRGnnViw.js +257 -0
  399. package/dist/components/GrSidebar/chunks/GrSidebar-DRGnnViw.js.map +1 -0
  400. package/dist/components/GrSidebar/index.js +3 -3
  401. package/dist/components/GrSkeleton/chunks/GrSkeleton-DEvNE3bC.js +84 -0
  402. package/dist/components/GrSkeleton/chunks/GrSkeleton-DEvNE3bC.js.map +1 -0
  403. package/dist/components/GrSkeleton/index.js +2 -2
  404. package/dist/components/GrSlider/chunks/GrSlider-CyhVsNKn.js +379 -0
  405. package/dist/components/GrSlider/chunks/GrSlider-CyhVsNKn.js.map +1 -0
  406. package/dist/components/GrSlider/index.js +2 -2
  407. package/dist/components/GrSortableList/chunks/GrSortableList-BefVfWKh.js +276 -0
  408. package/dist/components/GrSortableList/chunks/GrSortableList-BefVfWKh.js.map +1 -0
  409. package/dist/components/GrSortableList/index.js +3 -0
  410. package/dist/components/GrSplitter/chunks/GrSplitter-BzxVQwbY.js +268 -0
  411. package/dist/components/GrSplitter/chunks/GrSplitter-BzxVQwbY.js.map +1 -0
  412. package/dist/components/GrSplitter/index.js +3 -0
  413. package/dist/components/GrSplitter/styles.css +1 -0
  414. package/dist/components/GrStatistic/chunks/GrStatistic-J4qLs3TH.js +319 -0
  415. package/dist/components/GrStatistic/chunks/GrStatistic-J4qLs3TH.js.map +1 -0
  416. package/dist/components/GrStatistic/index.js +2 -2
  417. package/dist/components/GrSwitch/chunks/GrSwitch-DpyvVrZG.js +183 -0
  418. package/dist/components/GrSwitch/chunks/GrSwitch-DpyvVrZG.js.map +1 -0
  419. package/dist/components/GrSwitch/index.js +2 -2
  420. package/dist/components/GrTabPanels/chunks/GrTabPanels-BVe1CZdJ.js +81 -0
  421. package/dist/components/GrTabPanels/chunks/GrTabPanels-BVe1CZdJ.js.map +1 -0
  422. package/dist/components/GrTabPanels/index.js +1 -1
  423. package/dist/components/GrTable/chunks/GrTable-BfqgwETQ.js +169 -0
  424. package/dist/components/GrTable/chunks/GrTable-BfqgwETQ.js.map +1 -0
  425. package/dist/components/GrTable/index.js +3 -3
  426. package/dist/components/GrTabs/chunks/GrTabs-TeXaU5Uh.js +261 -0
  427. package/dist/components/GrTabs/chunks/GrTabs-TeXaU5Uh.js.map +1 -0
  428. package/dist/components/GrTabs/index.js +3 -3
  429. package/dist/components/GrTextarea/chunks/GrTextarea-DSvd1nSy.js +241 -0
  430. package/dist/components/GrTextarea/chunks/GrTextarea-DSvd1nSy.js.map +1 -0
  431. package/dist/components/GrTextarea/index.js +2 -2
  432. package/dist/components/GrTimeline/chunks/GrTimeline-B-h2Yanw.js +285 -0
  433. package/dist/components/GrTimeline/chunks/GrTimeline-B-h2Yanw.js.map +1 -0
  434. package/dist/components/GrTimeline/index.js +3 -0
  435. package/dist/components/GrTimeline/styles.css +1 -0
  436. package/dist/components/GrToaster/chunks/GrToaster-Ct-39hga.js +373 -0
  437. package/dist/components/GrToaster/chunks/GrToaster-Ct-39hga.js.map +1 -0
  438. package/dist/components/GrToaster/index.js +2 -2
  439. package/dist/components/GrToaster/styles.css +1 -0
  440. package/dist/components/GrTooltip/chunks/GrTooltip-xAcqs0bP.js +185 -0
  441. package/dist/components/GrTooltip/chunks/GrTooltip-xAcqs0bP.js.map +1 -0
  442. package/dist/components/GrTooltip/index.js +3 -3
  443. package/dist/components/GrTree/chunks/GrTree-CaYK8dGZ.js +1371 -0
  444. package/dist/components/GrTree/chunks/GrTree-CaYK8dGZ.js.map +1 -0
  445. package/dist/components/GrTree/index.js +2 -2
  446. package/dist/components/GrTree/styles.css +1 -0
  447. package/dist/components/GrTreeSelect/chunks/GrTreeSelect-DZp7CqqW.js +623 -0
  448. package/dist/components/GrTreeSelect/chunks/GrTreeSelect-DZp7CqqW.js.map +1 -0
  449. package/dist/components/GrTreeSelect/index.js +2 -2
  450. package/dist/composables/useAnnouncer.js +114 -0
  451. package/dist/composables/useAnnouncer.js.map +1 -0
  452. package/dist/composables/useComboboxNavigation.js +71 -0
  453. package/dist/composables/useComboboxNavigation.js.map +1 -0
  454. package/dist/composables/useDismissible.js +31 -0
  455. package/dist/composables/useDismissible.js.map +1 -0
  456. package/dist/composables/useDragGesture.js +55 -0
  457. package/dist/composables/useDragGesture.js.map +1 -0
  458. package/dist/composables/useDragSort.js +2 -0
  459. package/dist/composables/useFloating.js +133 -0
  460. package/dist/composables/useFloating.js.map +1 -0
  461. package/dist/composables/useFocusTrap.js +124 -0
  462. package/dist/composables/useFocusTrap.js.map +1 -0
  463. package/dist/composables/useGrComponentConfig.js +2 -0
  464. package/dist/composables/useGrFormControl.js +24 -0
  465. package/dist/composables/useGrFormControl.js.map +1 -0
  466. package/dist/composables/useGranularityTranslations.js +2 -0
  467. package/dist/composables/useOverlayLayer.js +65 -0
  468. package/dist/composables/useOverlayLayer.js.map +1 -0
  469. package/dist/composables/usePortalTarget.js +2 -0
  470. package/dist/composables/useRovingFocus.js +150 -0
  471. package/dist/composables/useRovingFocus.js.map +1 -0
  472. package/dist/composables/useTheme.js +106 -36
  473. package/dist/composables/useTheme.js.map +1 -1
  474. package/dist/composables/useToast.js +123 -7
  475. package/dist/composables/useToast.js.map +1 -1
  476. package/dist/composables/useVirtualList.js +244 -0
  477. package/dist/composables/useVirtualList.js.map +1 -0
  478. package/dist/directives/dropzone.js +1 -1
  479. package/dist/directives/hotkey.js +18 -18
  480. package/dist/directives/hotkey.js.map +1 -1
  481. package/dist/directives/loading.js +43 -7
  482. package/dist/directives/loading.js.map +1 -1
  483. package/dist/fileValidation/index.js +2 -2
  484. package/dist/granular-provider-node.js +1 -31
  485. package/dist/granular-provider.js +1 -4
  486. package/dist/i18n/all.js +1 -1
  487. package/dist/i18n/index.js +1 -1
  488. package/dist/index.js +157 -140
  489. package/dist/styles/base.css +32 -0
  490. package/dist/styles/preflight.css +33 -0
  491. package/dist/styles/themes/dark.css +81 -26
  492. package/dist/styles/themes/light.css +86 -15
  493. package/dist/styles/tokens.css +63 -4
  494. package/dist/tokens.js +3216 -0
  495. package/dist/tokens.js.map +1 -0
  496. package/dist/types/src/components/GrAlert/GrAlert.vue.d.ts +42 -10
  497. package/dist/types/src/components/GrAlert/config.d.ts +1 -1
  498. package/dist/types/src/components/GrAlert/defaults.d.ts +10 -4
  499. package/dist/types/src/components/GrAlert/grAlertStyles.d.ts +0 -7
  500. package/dist/types/src/components/GrAlert/index.d.ts +3 -2
  501. package/dist/types/src/components/GrAutocomplete/GrAutocomplete.vue.d.ts +112 -99
  502. package/dist/types/src/components/GrAutocomplete/config.d.ts +1 -1
  503. package/dist/types/src/components/GrAutocomplete/defaults.d.ts +1 -1
  504. package/dist/types/src/components/GrAutocomplete/grAutocompleteStyles.d.ts +43 -7
  505. package/dist/types/src/components/GrAutocomplete/index.d.ts +4 -0
  506. package/dist/types/src/components/GrAvatar/GrAvatar.vue.d.ts +40 -17
  507. package/dist/types/src/components/GrAvatar/GrAvatarGroup.vue.d.ts +70 -0
  508. package/dist/types/src/components/GrAvatar/avatarContext.d.ts +12 -0
  509. package/dist/types/src/components/GrAvatar/config.d.ts +1 -1
  510. package/dist/types/src/components/GrAvatar/defaults.d.ts +16 -0
  511. package/dist/types/src/components/GrAvatar/grAvatarStyles.d.ts +38 -0
  512. package/dist/types/src/components/GrAvatar/index.d.ts +5 -0
  513. package/dist/types/src/components/GrAvatar/safelist.d.ts +4 -0
  514. package/dist/types/src/components/GrBadge/GrBadge.vue.d.ts +4 -4
  515. package/dist/types/src/components/GrBadge/config.d.ts +1 -1
  516. package/dist/types/src/components/GrBadge/defaults.d.ts +1 -1
  517. package/dist/types/src/components/GrBadge/grBadgeStyles.d.ts +13 -1
  518. package/dist/types/src/components/GrBadge/index.d.ts +1 -0
  519. package/dist/types/src/components/GrBadgeWrap/GrBadgeWrap.vue.d.ts +42 -5
  520. package/dist/types/src/components/GrBadgeWrap/config.d.ts +1 -1
  521. package/dist/types/src/components/GrBadgeWrap/grBadgeWrapStyles.d.ts +46 -0
  522. package/dist/types/src/components/GrBadgeWrap/index.d.ts +4 -0
  523. package/dist/types/src/components/GrBadgeWrap/safelist.d.ts +1 -0
  524. package/dist/types/src/components/GrBottomNav/GrBottomNav.vue.d.ts +91 -4
  525. package/dist/types/src/components/GrBottomNav/config.d.ts +1 -1
  526. package/dist/types/src/components/GrBottomNav/defaults.d.ts +16 -0
  527. package/dist/types/src/components/GrBottomNav/grBottomNavStyles.d.ts +56 -0
  528. package/dist/types/src/components/GrBottomNav/index.d.ts +6 -1
  529. package/dist/types/src/components/GrBottomNav/safelist.d.ts +1 -0
  530. package/dist/types/src/components/GrBreadcrumbs/GrBreadcrumbs.vue.d.ts +117 -0
  531. package/dist/types/src/components/GrBreadcrumbs/config.d.ts +1 -0
  532. package/dist/types/src/components/GrBreadcrumbs/defaults.d.ts +15 -0
  533. package/dist/types/src/components/GrBreadcrumbs/grBreadcrumbsStyles.d.ts +86 -0
  534. package/dist/types/src/components/GrBreadcrumbs/index.d.ts +8 -0
  535. package/dist/types/src/components/GrBreadcrumbs/safelist.d.ts +1 -0
  536. package/dist/types/src/components/GrButton/GrButton.vue.d.ts +31 -7
  537. package/dist/types/src/components/GrButton/config.d.ts +1 -1
  538. package/dist/types/src/components/GrButton/defaults.d.ts +1 -1
  539. package/dist/types/src/components/GrButton/grButtonStyles.d.ts +27 -3
  540. package/dist/types/src/components/GrButton/index.d.ts +5 -1
  541. package/dist/types/src/components/GrButton/safelist.d.ts +1 -0
  542. package/dist/types/src/components/GrButtonGroup/GrButtonGroup.vue.d.ts +32 -4
  543. package/dist/types/src/components/GrButtonGroup/config.d.ts +1 -1
  544. package/dist/types/src/components/GrButtonGroup/context.d.ts +20 -0
  545. package/dist/types/src/components/GrButtonGroup/index.d.ts +3 -0
  546. package/dist/types/src/components/GrCard/GrCard.vue.d.ts +80 -3
  547. package/dist/types/src/components/GrCard/config.d.ts +1 -1
  548. package/dist/types/src/components/GrCard/defaults.d.ts +15 -0
  549. package/dist/types/src/components/GrCard/grCardStyles.d.ts +24 -0
  550. package/dist/types/src/components/GrCard/index.d.ts +5 -0
  551. package/dist/types/src/components/GrCard/safelist.d.ts +1 -0
  552. package/dist/types/src/components/GrCheckbox/GrCheckbox.vue.d.ts +56 -10
  553. package/dist/types/src/components/GrCheckbox/config.d.ts +1 -1
  554. package/dist/types/src/components/GrCheckbox/defaults.d.ts +14 -0
  555. package/dist/types/src/components/GrCheckbox/grCheckboxGroupContext.d.ts +19 -0
  556. package/dist/types/src/components/GrCheckbox/grCheckboxStyles.d.ts +44 -0
  557. package/dist/types/src/components/GrCheckbox/index.d.ts +9 -0
  558. package/dist/types/src/components/GrCheckbox/safelist.d.ts +13 -0
  559. package/dist/types/src/components/GrCheckboxGroup/GrCheckboxGroup.vue.d.ts +105 -0
  560. package/dist/types/src/components/GrCheckboxGroup/config.d.ts +1 -0
  561. package/dist/types/src/components/GrCheckboxGroup/defaults.d.ts +14 -0
  562. package/dist/types/src/components/GrCheckboxGroup/index.d.ts +9 -0
  563. package/dist/types/src/components/GrCollapse/GrCollapse.vue.d.ts +55 -7
  564. package/dist/types/src/components/GrCollapse/GrCollapseItem.vue.d.ts +13 -3
  565. package/dist/types/src/components/GrCollapse/config.d.ts +1 -1
  566. package/dist/types/src/components/GrCollapse/defaults.d.ts +19 -0
  567. package/dist/types/src/components/GrCollapse/grCollapseContext.d.ts +20 -0
  568. package/dist/types/src/components/GrCollapse/grCollapseStyles.d.ts +42 -0
  569. package/dist/types/src/components/GrCollapse/index.d.ts +3 -0
  570. package/dist/types/src/components/GrCollapse/safelist.d.ts +15 -0
  571. package/dist/types/src/components/GrColorPicker/GrColorPicker.vue.d.ts +104 -0
  572. package/dist/types/src/components/GrColorPicker/color.d.ts +38 -0
  573. package/dist/types/src/components/GrColorPicker/config.d.ts +1 -0
  574. package/dist/types/src/components/GrColorPicker/defaults.d.ts +15 -0
  575. package/dist/types/src/components/GrColorPicker/grColorPickerStyles.d.ts +39 -0
  576. package/dist/types/src/components/GrColorPicker/index.d.ts +11 -0
  577. package/dist/types/src/components/GrColorPicker/safelist.d.ts +1 -0
  578. package/dist/types/src/components/GrCommandPalette/GrCommandPalette.vue.d.ts +45 -10
  579. package/dist/types/src/components/GrCommandPalette/config.d.ts +1 -1
  580. package/dist/types/src/components/GrCommandPalette/defaults.d.ts +14 -0
  581. package/dist/types/src/components/GrCommandPalette/filtering.d.ts +24 -0
  582. package/dist/types/src/components/GrCommandPalette/grCommandPaletteStyles.d.ts +33 -8
  583. package/dist/types/src/components/GrCommandPalette/index.d.ts +4 -0
  584. package/dist/types/src/components/GrConfigProvider/GrConfigProvider.vue.d.ts +38 -4
  585. package/dist/types/src/components/GrConfigProvider/config.d.ts +1 -1
  586. package/dist/types/src/components/GrConfigProvider/context.d.ts +33 -22
  587. package/dist/types/src/components/GrConfigProvider/index.d.ts +2 -1
  588. package/dist/types/src/components/GrConfigProvider/zIndexScale.d.ts +23 -0
  589. package/dist/types/src/components/GrConfirmDialog/GrConfirmDialog.vue.d.ts +33 -4
  590. package/dist/types/src/components/GrConfirmDialog/config.d.ts +1 -1
  591. package/dist/types/src/components/GrConfirmDialog/defaults.d.ts +14 -0
  592. package/dist/types/src/components/GrConfirmDialog/index.d.ts +2 -1
  593. package/dist/types/src/components/GrDataTable/GrDataTable.vue.d.ts +145 -27
  594. package/dist/types/src/components/GrDataTable/config.d.ts +1 -1
  595. package/dist/types/src/components/GrDataTable/defaults.d.ts +10 -0
  596. package/dist/types/src/components/GrDataTable/grDataTableSort.d.ts +25 -0
  597. package/dist/types/src/components/GrDataTable/grDataTableStyles.d.ts +68 -0
  598. package/dist/types/src/components/GrDataTable/index.d.ts +10 -1
  599. package/dist/types/src/components/GrDataTable/safelist.d.ts +1 -0
  600. package/dist/types/src/components/GrDialog/GrDialog.vue.d.ts +51 -4
  601. package/dist/types/src/components/GrDialog/GrDialogCloseButton.vue.d.ts +3 -0
  602. package/dist/types/src/components/GrDialog/GrDialogHeader.vue.d.ts +3 -0
  603. package/dist/types/src/components/GrDialog/config.d.ts +1 -1
  604. package/dist/types/src/components/GrDialog/defaults.d.ts +14 -0
  605. package/dist/types/src/components/GrDialog/dialogShared.d.ts +2 -1
  606. package/dist/types/src/components/GrDialog/index.d.ts +5 -0
  607. package/dist/types/src/components/GrDialogService/GrDialogServiceHost.vue.d.ts +18 -1
  608. package/dist/types/src/components/GrDialogService/GrDialogServiceItem.vue.d.ts +15 -0
  609. package/dist/types/src/components/GrDialogService/config.d.ts +1 -1
  610. package/dist/types/src/components/GrDialogService/index.d.ts +3 -1
  611. package/dist/types/src/components/GrDialogService/store.d.ts +78 -7
  612. package/dist/types/src/components/GrDialogService/types.d.ts +22 -1
  613. package/dist/types/src/components/GrDialogService/useDialogService.d.ts +31 -1
  614. package/dist/types/src/components/GrDivider/GrDivider.vue.d.ts +44 -9
  615. package/dist/types/src/components/GrDivider/config.d.ts +1 -1
  616. package/dist/types/src/components/GrDivider/defaults.d.ts +15 -0
  617. package/dist/types/src/components/GrDivider/grDividerStyles.d.ts +19 -0
  618. package/dist/types/src/components/GrDivider/index.d.ts +4 -1
  619. package/dist/types/src/components/GrDivider/safelist.d.ts +1 -0
  620. package/dist/types/src/components/GrDrawer/GrDrawer.vue.d.ts +93 -17
  621. package/dist/types/src/components/GrDrawer/config.d.ts +1 -1
  622. package/dist/types/src/components/GrDrawer/defaults.d.ts +19 -0
  623. package/dist/types/src/components/GrDrawer/grDrawerStyles.d.ts +48 -2
  624. package/dist/types/src/components/GrDrawer/index.d.ts +6 -1
  625. package/dist/types/src/components/GrDropdown/GrDropdown.vue.d.ts +66 -13
  626. package/dist/types/src/components/GrDropdown/config.d.ts +1 -1
  627. package/dist/types/src/components/GrDropdown/grDropdownStyles.d.ts +4 -5
  628. package/dist/types/src/components/GrDropdown/index.d.ts +5 -2
  629. package/dist/types/src/components/GrDropdownMenu/GrDropdownMenu.vue.d.ts +79 -16
  630. package/dist/types/src/components/GrDropdownMenu/GrDropdownMenuColumn.vue.d.ts +2 -1
  631. package/dist/types/src/components/GrDropdownMenu/GrDropdownMenuColumns.vue.d.ts +3 -2
  632. package/dist/types/src/components/GrDropdownMenu/GrDropdownMenuGroup.vue.d.ts +2 -2
  633. package/dist/types/src/components/GrDropdownMenu/GrDropdownMenuHeader.vue.d.ts +3 -2
  634. package/dist/types/src/components/GrDropdownMenu/GrDropdownMenuItem.vue.d.ts +51 -5
  635. package/dist/types/src/components/GrDropdownMenu/GrDropdownMenuList.vue.d.ts +5 -0
  636. package/dist/types/src/components/GrDropdownMenu/config.d.ts +1 -1
  637. package/dist/types/src/components/GrDropdownMenu/grDropdownMenuStyles.d.ts +33 -0
  638. package/dist/types/src/components/GrDropdownMenu/index.d.ts +6 -2
  639. package/dist/types/src/components/GrDropdownMenu/menuModel.d.ts +42 -0
  640. package/dist/types/src/components/GrDropdownMenu/safelist.d.ts +7 -0
  641. package/dist/types/src/components/GrEmptyState/GrEmptyState.vue.d.ts +33 -10
  642. package/dist/types/src/components/GrEmptyState/config.d.ts +1 -1
  643. package/dist/types/src/components/GrEmptyState/defaults.d.ts +16 -0
  644. package/dist/types/src/components/GrEmptyState/grEmptyStateStyles.d.ts +32 -0
  645. package/dist/types/src/components/GrEmptyState/index.d.ts +4 -0
  646. package/dist/types/src/components/GrEmptyState/safelist.d.ts +1 -0
  647. package/dist/types/src/components/GrFileUpload/GrFileUpload.vue.d.ts +158 -148
  648. package/dist/types/src/components/GrFileUpload/config.d.ts +1 -1
  649. package/dist/types/src/components/GrFileUpload/defaults.d.ts +10 -0
  650. package/dist/types/src/components/GrFileUpload/fileEntry.d.ts +26 -0
  651. package/dist/types/src/components/GrFileUpload/grFileUploadStyles.d.ts +45 -0
  652. package/dist/types/src/components/GrFileUpload/index.d.ts +10 -1
  653. package/dist/types/src/components/GrFileUpload/maxFileSize.d.ts +2 -0
  654. package/dist/types/src/components/GrFileUpload/safelist.d.ts +1 -0
  655. package/dist/types/src/components/GrFileUpload/useDropZone.d.ts +24 -0
  656. package/dist/types/src/components/GrFileUpload/usePerFileUpload.d.ts +38 -0
  657. package/dist/types/src/components/GrFileUpload/useUploadState.d.ts +30 -0
  658. package/dist/types/src/components/GrForm/GrForm.vue.d.ts +38 -2
  659. package/dist/types/src/components/GrForm/config.d.ts +1 -1
  660. package/dist/types/src/components/GrForm/context.d.ts +22 -3
  661. package/dist/types/src/components/GrForm/fileRule.d.ts +43 -0
  662. package/dist/types/src/components/GrForm/index.d.ts +6 -2
  663. package/dist/types/src/components/GrForm/modelSnapshot.d.ts +17 -0
  664. package/dist/types/src/components/GrForm/validation.d.ts +16 -1
  665. package/dist/types/src/components/GrFormField/GrFormField.vue.d.ts +56 -10
  666. package/dist/types/src/components/GrFormField/config.d.ts +1 -1
  667. package/dist/types/src/components/GrFormField/context.d.ts +19 -0
  668. package/dist/types/src/components/GrFormField/defaults.d.ts +15 -0
  669. package/dist/types/src/components/GrFormField/grFormFieldStyles.d.ts +19 -0
  670. package/dist/types/src/components/GrFormField/index.d.ts +5 -1
  671. package/dist/types/src/components/GrFormField/safelist.d.ts +1 -0
  672. package/dist/types/src/components/GrFormFile/GrFormFile.vue.d.ts +70 -16
  673. package/dist/types/src/components/GrFormFile/config.d.ts +1 -1
  674. package/dist/types/src/components/GrFormFile/defaults.d.ts +10 -0
  675. package/dist/types/src/components/GrFormFile/grFormFileStyles.d.ts +22 -0
  676. package/dist/types/src/components/GrFormFile/index.d.ts +7 -0
  677. package/dist/types/src/components/GrFormFile/safelist.d.ts +1 -0
  678. package/dist/types/src/components/GrFormSection/GrFormSection.vue.d.ts +34 -7
  679. package/dist/types/src/components/GrFormSection/config.d.ts +1 -1
  680. package/dist/types/src/components/GrFormSection/defaults.d.ts +14 -0
  681. package/dist/types/src/components/GrFormSection/grFormSectionStyles.d.ts +12 -0
  682. package/dist/types/src/components/GrFormSection/index.d.ts +4 -0
  683. package/dist/types/src/components/GrFormSection/safelist.d.ts +1 -0
  684. package/dist/types/src/components/GrIcon/GrIcon.vue.d.ts +40 -4
  685. package/dist/types/src/components/GrIcon/config.d.ts +1 -1
  686. package/dist/types/src/components/GrIcon/defaults.d.ts +14 -0
  687. package/dist/types/src/components/GrIcon/grIconStyles.d.ts +25 -0
  688. package/dist/types/src/components/GrIcon/index.d.ts +4 -0
  689. package/dist/types/src/components/GrIcon/safelist.d.ts +1 -0
  690. package/dist/types/src/components/GrImageViewer/GrImageViewer.vue.d.ts +87 -16
  691. package/dist/types/src/components/GrImageViewer/composables/usePointerGestures.d.ts +37 -0
  692. package/dist/types/src/components/GrImageViewer/composables/useViewerKeyboard.d.ts +7 -4
  693. package/dist/types/src/components/GrImageViewer/composables/useWheelGesture.d.ts +3 -2
  694. package/dist/types/src/components/GrImageViewer/composables/useZoomPan.d.ts +18 -5
  695. package/dist/types/src/components/GrImageViewer/config.d.ts +1 -1
  696. package/dist/types/src/components/GrImageViewer/grImageViewerStyles.d.ts +21 -0
  697. package/dist/types/src/components/GrImageViewer/index.d.ts +7 -0
  698. package/dist/types/src/components/GrImageViewer/safelist.d.ts +1 -0
  699. package/dist/types/src/components/GrInput/GrInput.vue.d.ts +66 -21
  700. package/dist/types/src/components/GrInput/config.d.ts +1 -1
  701. package/dist/types/src/components/GrInput/defaults.d.ts +1 -1
  702. package/dist/types/src/components/GrInput/grInputStyles.d.ts +53 -7
  703. package/dist/types/src/components/GrInput/index.d.ts +5 -0
  704. package/dist/types/src/components/GrInputTag/GrInputTag.vue.d.ts +97 -14
  705. package/dist/types/src/components/GrInputTag/config.d.ts +1 -1
  706. package/dist/types/src/components/GrInputTag/defaults.d.ts +17 -0
  707. package/dist/types/src/components/GrInputTag/grInputTagStyles.d.ts +24 -1
  708. package/dist/types/src/components/GrInputTag/index.d.ts +5 -0
  709. package/dist/types/src/components/GrKbd/GrKbd.vue.d.ts +46 -10
  710. package/dist/types/src/components/GrKbd/config.d.ts +1 -1
  711. package/dist/types/src/components/GrKbd/defaults.d.ts +14 -0
  712. package/dist/types/src/components/GrKbd/grKbdStyles.d.ts +32 -0
  713. package/dist/types/src/components/GrKbd/index.d.ts +10 -1
  714. package/dist/types/src/components/GrKbd/safelist.d.ts +1 -0
  715. package/dist/types/src/components/GrLink/GrLink.vue.d.ts +23 -10
  716. package/dist/types/src/components/GrLink/config.d.ts +1 -1
  717. package/dist/types/src/components/GrLink/defaults.d.ts +14 -0
  718. package/dist/types/src/components/GrLink/grLinkStyles.d.ts +11 -13
  719. package/dist/types/src/components/GrLink/index.d.ts +2 -0
  720. package/dist/types/src/components/GrList/GrList.vue.d.ts +57 -32
  721. package/dist/types/src/components/GrList/GrListItem.vue.d.ts +42 -9
  722. package/dist/types/src/components/GrList/config.d.ts +1 -1
  723. package/dist/types/src/components/GrList/grListStyles.d.ts +25 -0
  724. package/dist/types/src/components/GrList/index.d.ts +5 -0
  725. package/dist/types/src/components/GrList/safelist.d.ts +1 -0
  726. package/dist/types/src/components/GrLoading/GrLoading.vue.d.ts +59 -19
  727. package/dist/types/src/components/GrLoading/config.d.ts +1 -1
  728. package/dist/types/src/components/GrLoading/grLoadingStyles.d.ts +10 -2
  729. package/dist/types/src/components/GrLoading/index.d.ts +1 -0
  730. package/dist/types/src/components/GrModal/GrModal.vue.d.ts +58 -12
  731. package/dist/types/src/components/GrModal/config.d.ts +1 -1
  732. package/dist/types/src/components/GrModal/context.d.ts +37 -0
  733. package/dist/types/src/components/GrModal/defaults.d.ts +14 -0
  734. package/dist/types/src/components/GrModal/grModalStyles.d.ts +25 -10
  735. package/dist/types/src/components/GrModal/index.d.ts +6 -3
  736. package/dist/types/src/components/GrNavbar/GrNavbar.vue.d.ts +28 -9
  737. package/dist/types/src/components/GrNavbar/config.d.ts +1 -1
  738. package/dist/types/src/components/GrNavbar/grNavbarStyles.d.ts +23 -0
  739. package/dist/types/src/components/GrNavbar/index.d.ts +2 -0
  740. package/dist/types/src/components/GrNavbar/safelist.d.ts +1 -0
  741. package/dist/types/src/components/GrNumberInput/GrNumberInput.vue.d.ts +64 -17
  742. package/dist/types/src/components/GrNumberInput/config.d.ts +1 -1
  743. package/dist/types/src/components/GrNumberInput/defaults.d.ts +2 -1
  744. package/dist/types/src/components/GrNumberInput/grNumberInputStyles.d.ts +20 -4
  745. package/dist/types/src/components/GrNumberInput/index.d.ts +4 -0
  746. package/dist/types/src/components/GrNumberInput/numberInputMath.d.ts +17 -0
  747. package/dist/types/src/components/GrPagination/GrPagination.vue.d.ts +47 -1
  748. package/dist/types/src/components/GrPagination/config.d.ts +1 -1
  749. package/dist/types/src/components/GrPagination/defaults.d.ts +10 -0
  750. package/dist/types/src/components/GrPagination/grPaginationStyles.d.ts +19 -0
  751. package/dist/types/src/components/GrPagination/index.d.ts +4 -0
  752. package/dist/types/src/components/GrPagination/safelist.d.ts +1 -0
  753. package/dist/types/src/components/GrPopover/GrPopover.vue.d.ts +161 -0
  754. package/dist/types/src/components/GrPopover/config.d.ts +1 -0
  755. package/dist/types/src/components/GrPopover/defaults.d.ts +15 -0
  756. package/dist/types/src/components/GrPopover/grPopoverStyles.d.ts +28 -0
  757. package/dist/types/src/components/GrPopover/index.d.ts +11 -0
  758. package/dist/types/src/components/GrPopover/safelist.d.ts +1 -0
  759. package/dist/types/src/components/GrProgressBar/GrProgressBar.vue.d.ts +37 -5
  760. package/dist/types/src/components/GrProgressBar/config.d.ts +1 -1
  761. package/dist/types/src/components/GrProgressBar/defaults.d.ts +11 -0
  762. package/dist/types/src/components/GrProgressBar/grStyle.d.ts +14 -0
  763. package/dist/types/src/components/GrProgressBar/index.d.ts +2 -1
  764. package/dist/types/src/components/GrProgressBar/safelist.d.ts +4 -0
  765. package/dist/types/src/components/GrProgressCircle/GrProgressCircle.vue.d.ts +103 -0
  766. package/dist/types/src/components/GrProgressCircle/config.d.ts +1 -0
  767. package/dist/types/src/components/GrProgressCircle/defaults.d.ts +18 -0
  768. package/dist/types/src/components/GrProgressCircle/geometry.d.ts +29 -0
  769. package/dist/types/src/components/GrProgressCircle/grProgressCircleStyles.d.ts +34 -0
  770. package/dist/types/src/components/GrProgressCircle/index.d.ts +11 -0
  771. package/dist/types/src/components/GrProgressCircle/safelist.d.ts +1 -0
  772. package/dist/types/src/components/GrPromptDialog/GrPromptDialog.vue.d.ts +78 -10
  773. package/dist/types/src/components/GrPromptDialog/config.d.ts +1 -1
  774. package/dist/types/src/components/GrPromptDialog/defaults.d.ts +14 -0
  775. package/dist/types/src/components/GrPromptDialog/index.d.ts +1 -0
  776. package/dist/types/src/components/GrRadio/GrRadio.vue.d.ts +28 -9
  777. package/dist/types/src/components/GrRadio/config.d.ts +1 -1
  778. package/dist/types/src/components/GrRadio/defaults.d.ts +1 -1
  779. package/dist/types/src/components/GrRadio/grRadioGroupContext.d.ts +45 -2
  780. package/dist/types/src/components/GrRadio/grRadioStyles.d.ts +49 -6
  781. package/dist/types/src/components/GrRadio/index.d.ts +1 -0
  782. package/dist/types/src/components/GrRadioGroup/GrRadioGroup.vue.d.ts +54 -10
  783. package/dist/types/src/components/GrRadioGroup/config.d.ts +1 -1
  784. package/dist/types/src/components/GrRadioGroup/defaults.d.ts +1 -1
  785. package/dist/types/src/components/GrRadioGroup/index.d.ts +4 -0
  786. package/dist/types/src/components/GrRating/GrRating.vue.d.ts +66 -17
  787. package/dist/types/src/components/GrRating/config.d.ts +1 -1
  788. package/dist/types/src/components/GrRating/defaults.d.ts +1 -1
  789. package/dist/types/src/components/GrRating/grRatingStyles.d.ts +4 -1
  790. package/dist/types/src/components/GrRating/index.d.ts +4 -0
  791. package/dist/types/src/components/GrResponseErrorBanner/GrFormErrorBanner.vue.d.ts +8 -4
  792. package/dist/types/src/components/GrResponseErrorBanner/GrResponseErrorBanner.vue.d.ts +8 -4
  793. package/dist/types/src/components/GrResponseErrorBanner/GrUploadErrorBanner.vue.d.ts +11 -4
  794. package/dist/types/src/components/GrResponseErrorBanner/config.d.ts +1 -1
  795. package/dist/types/src/components/GrResponseErrorBanner/index.d.ts +6 -0
  796. package/dist/types/src/components/GrResponseErrorBanner/parsers/httpStatusParser.d.ts +3 -1
  797. package/dist/types/src/components/GrResponseErrorBanner/parsers/plainMessageParser.d.ts +4 -1
  798. package/dist/types/src/components/GrResponseErrorBanner/responseError.types.d.ts +12 -2
  799. package/dist/types/src/components/GrSegmented/GrSegmented.vue.d.ts +48 -9
  800. package/dist/types/src/components/GrSegmented/config.d.ts +1 -1
  801. package/dist/types/src/components/GrSegmented/defaults.d.ts +1 -1
  802. package/dist/types/src/components/GrSegmented/grSegmentedStyles.d.ts +31 -5
  803. package/dist/types/src/components/GrSegmented/index.d.ts +5 -1
  804. package/dist/types/src/components/GrSegmented/safelist.d.ts +3 -1
  805. package/dist/types/src/components/GrSelect/GrSelect.vue.d.ts +138 -114
  806. package/dist/types/src/components/GrSelect/composables/useSelectNavigation.d.ts +52 -0
  807. package/dist/types/src/components/GrSelect/composables/useSelectPanelItems.d.ts +67 -0
  808. package/dist/types/src/components/GrSelect/composables/useSelectValues.d.ts +37 -0
  809. package/dist/types/src/components/GrSelect/composables/useSelectVirtualization.d.ts +27 -0
  810. package/dist/types/src/components/GrSelect/config.d.ts +1 -1
  811. package/dist/types/src/components/GrSelect/defaults.d.ts +1 -1
  812. package/dist/types/src/components/GrSelect/grSelectStyles.d.ts +64 -9
  813. package/dist/types/src/components/GrSelect/index.d.ts +5 -1
  814. package/dist/types/src/components/GrSelect/selectValue.d.ts +20 -0
  815. package/dist/types/src/components/GrSidebar/GrSidebar.vue.d.ts +30 -5
  816. package/dist/types/src/components/GrSidebar/GrSidebarGroup.vue.d.ts +43 -0
  817. package/dist/types/src/components/GrSidebar/GrSidebarItem.vue.d.ts +4 -4
  818. package/dist/types/src/components/GrSidebar/config.d.ts +1 -1
  819. package/dist/types/src/components/GrSidebar/grSidebarStyles.d.ts +48 -0
  820. package/dist/types/src/components/GrSidebar/index.d.ts +6 -0
  821. package/dist/types/src/components/GrSidebar/safelist.d.ts +1 -0
  822. package/dist/types/src/components/GrSkeleton/GrSkeleton.vue.d.ts +22 -6
  823. package/dist/types/src/components/GrSkeleton/config.d.ts +1 -1
  824. package/dist/types/src/components/GrSkeleton/grSkeletonStyles.d.ts +9 -0
  825. package/dist/types/src/components/GrSkeleton/index.d.ts +1 -0
  826. package/dist/types/src/components/GrSlider/GrSlider.vue.d.ts +54 -4
  827. package/dist/types/src/components/GrSlider/config.d.ts +1 -1
  828. package/dist/types/src/components/GrSlider/defaults.d.ts +1 -1
  829. package/dist/types/src/components/GrSlider/grSliderStyles.d.ts +47 -8
  830. package/dist/types/src/components/GrSlider/index.d.ts +4 -0
  831. package/dist/types/src/components/GrSortableList/GrSortableList.vue.d.ts +68 -0
  832. package/dist/types/src/components/GrSortableList/config.d.ts +1 -0
  833. package/dist/types/src/components/GrSortableList/grSortableListStyles.d.ts +38 -0
  834. package/dist/types/src/components/GrSortableList/index.d.ts +9 -0
  835. package/dist/types/src/components/GrSortableList/safelist.d.ts +1 -0
  836. package/dist/types/src/components/GrSplitter/GrSplitter.vue.d.ts +121 -0
  837. package/dist/types/src/components/GrSplitter/config.d.ts +1 -0
  838. package/dist/types/src/components/GrSplitter/defaults.d.ts +16 -0
  839. package/dist/types/src/components/GrSplitter/grSplitterStyles.d.ts +9 -0
  840. package/dist/types/src/components/GrSplitter/index.d.ts +11 -0
  841. package/dist/types/src/components/GrSplitter/safelist.d.ts +1 -0
  842. package/dist/types/src/components/GrSplitter/splitterGeometry.d.ts +39 -0
  843. package/dist/types/src/components/GrStatistic/GrStatistic.vue.d.ts +65 -16
  844. package/dist/types/src/components/GrStatistic/config.d.ts +1 -1
  845. package/dist/types/src/components/GrStatistic/countUp.d.ts +17 -0
  846. package/dist/types/src/components/GrStatistic/defaults.d.ts +14 -0
  847. package/dist/types/src/components/GrStatistic/formatStatisticValue.d.ts +6 -2
  848. package/dist/types/src/components/GrStatistic/grStatisticStyles.d.ts +14 -1
  849. package/dist/types/src/components/GrStatistic/index.d.ts +2 -1
  850. package/dist/types/src/components/GrSwitch/GrSwitch.vue.d.ts +68 -6
  851. package/dist/types/src/components/GrSwitch/config.d.ts +1 -1
  852. package/dist/types/src/components/GrSwitch/defaults.d.ts +1 -1
  853. package/dist/types/src/components/GrSwitch/grSwitchStyles.d.ts +45 -4
  854. package/dist/types/src/components/GrSwitch/index.d.ts +5 -1
  855. package/dist/types/src/components/GrSwitch/safelist.d.ts +4 -1
  856. package/dist/types/src/components/GrTabPanels/GrTabPanel.vue.d.ts +12 -9
  857. package/dist/types/src/components/GrTabPanels/GrTabPanels.vue.d.ts +4 -14
  858. package/dist/types/src/components/GrTabPanels/config.d.ts +1 -1
  859. package/dist/types/src/components/GrTabPanels/context.d.ts +1 -1
  860. package/dist/types/src/components/GrTabPanels/index.d.ts +2 -0
  861. package/dist/types/src/components/GrTable/GrTable.vue.d.ts +98 -15
  862. package/dist/types/src/components/GrTable/config.d.ts +1 -1
  863. package/dist/types/src/components/GrTable/defaults.d.ts +10 -0
  864. package/dist/types/src/components/GrTable/grTableStyles.d.ts +20 -0
  865. package/dist/types/src/components/GrTable/index.d.ts +7 -1
  866. package/dist/types/src/components/GrTable/safelist.d.ts +1 -0
  867. package/dist/types/src/components/GrTabs/GrTabs.vue.d.ts +92 -6
  868. package/dist/types/src/components/GrTabs/config.d.ts +1 -1
  869. package/dist/types/src/components/GrTabs/defaults.d.ts +12 -0
  870. package/dist/types/src/components/GrTabs/grTabsStyles.d.ts +71 -0
  871. package/dist/types/src/components/GrTabs/index.d.ts +5 -0
  872. package/dist/types/src/components/GrTabs/safelist.d.ts +1 -0
  873. package/dist/types/src/components/GrTextarea/GrTextarea.vue.d.ts +89 -24
  874. package/dist/types/src/components/GrTextarea/config.d.ts +1 -1
  875. package/dist/types/src/components/GrTextarea/defaults.d.ts +18 -0
  876. package/dist/types/src/components/GrTextarea/grTextareaStyles.d.ts +33 -1
  877. package/dist/types/src/components/GrTextarea/index.d.ts +6 -1
  878. package/dist/types/src/components/GrTimeline/GrTimeline.vue.d.ts +70 -0
  879. package/dist/types/src/components/GrTimeline/GrTimelineItem.vue.d.ts +84 -0
  880. package/dist/types/src/components/GrTimeline/config.d.ts +1 -0
  881. package/dist/types/src/components/GrTimeline/defaults.d.ts +19 -0
  882. package/dist/types/src/components/GrTimeline/grTimelineContext.d.ts +18 -0
  883. package/dist/types/src/components/GrTimeline/grTimelineStyles.d.ts +37 -0
  884. package/dist/types/src/components/GrTimeline/index.d.ts +12 -0
  885. package/dist/types/src/components/GrTimeline/safelist.d.ts +1 -0
  886. package/dist/types/src/components/GrTimeline/timelineGroups.d.ts +23 -0
  887. package/dist/types/src/components/GrToaster/GrToaster.vue.d.ts +33 -1
  888. package/dist/types/src/components/GrToaster/config.d.ts +1 -1
  889. package/dist/types/src/components/GrToaster/grToasterStyles.d.ts +27 -0
  890. package/dist/types/src/components/GrToaster/index.d.ts +3 -0
  891. package/dist/types/src/components/GrTooltip/GrTooltip.vue.d.ts +57 -6
  892. package/dist/types/src/components/GrTooltip/config.d.ts +1 -1
  893. package/dist/types/src/components/GrTooltip/defaults.d.ts +10 -0
  894. package/dist/types/src/components/GrTooltip/grTooltipStyles.d.ts +8 -0
  895. package/dist/types/src/components/GrTooltip/index.d.ts +5 -1
  896. package/dist/types/src/components/GrTooltip/safelist.d.ts +1 -0
  897. package/dist/types/src/components/GrTree/GrTree.vue.d.ts +20 -7
  898. package/dist/types/src/components/GrTree/config.d.ts +1 -1
  899. package/dist/types/src/components/GrTree/defaults.d.ts +10 -0
  900. package/dist/types/src/components/GrTree/grTreeChecking.d.ts +31 -0
  901. package/dist/types/src/components/GrTree/grTreeDataAdapter.d.ts +2 -0
  902. package/dist/types/src/components/GrTree/grTreeInteractionContext.d.ts +9 -1
  903. package/dist/types/src/components/GrTree/grTreeProps.d.ts +60 -11
  904. package/dist/types/src/components/GrTree/grTreeStore.d.ts +27 -1
  905. package/dist/types/src/components/GrTree/grTreeStyles.d.ts +22 -0
  906. package/dist/types/src/components/GrTree/grTreeTypes.d.ts +15 -0
  907. package/dist/types/src/components/GrTree/index.d.ts +5 -1
  908. package/dist/types/src/components/GrTreeSelect/GrTreeSelect.vue.d.ts +30 -9
  909. package/dist/types/src/components/GrTreeSelect/config.d.ts +1 -1
  910. package/dist/types/src/components/GrTreeSelect/defaults.d.ts +10 -0
  911. package/dist/types/src/components/GrTreeSelect/grTreeSelectStyles.d.ts +29 -1
  912. package/dist/types/src/components/GrTreeSelect/grTreeSelectTypes.d.ts +43 -0
  913. package/dist/types/src/components/GrTreeSelect/index.d.ts +5 -0
  914. package/dist/types/src/components/shared/hotkey.d.ts +38 -0
  915. package/dist/types/src/components/shared/hotkeyTokens.d.ts +37 -0
  916. package/dist/types/src/components/shared/instance.d.ts +15 -0
  917. package/dist/types/src/components/shared/optionFilter.d.ts +61 -0
  918. package/dist/types/src/components/shared/sizes.d.ts +30 -0
  919. package/dist/types/src/components/shared/slotNodes.d.ts +19 -0
  920. package/dist/types/src/composables/internal/dragSortGeometry.d.ts +59 -0
  921. package/dist/types/src/composables/internal/focusables.d.ts +30 -0
  922. package/dist/types/src/composables/internal/inert.d.ts +35 -0
  923. package/dist/types/src/composables/internal/overlayStack.d.ts +71 -0
  924. package/dist/types/src/composables/internal/portalRoot.d.ts +27 -0
  925. package/dist/types/src/composables/internal/useAddonMeasurement.d.ts +1 -1
  926. package/dist/types/src/composables/internal/useControlAddons.d.ts +61 -0
  927. package/dist/types/src/composables/internal/useControlledOpen.d.ts +14 -0
  928. package/dist/types/src/composables/internal/useFilePreviews.d.ts +26 -0
  929. package/dist/types/src/composables/internal/useFocusWithin.d.ts +32 -0
  930. package/dist/types/src/composables/internal/useInertOthers.d.ts +9 -0
  931. package/dist/types/src/composables/internal/useModalOverlay.d.ts +95 -0
  932. package/dist/types/src/composables/internal/useOverlayPresence.d.ts +24 -0
  933. package/dist/types/src/composables/internal/useScrollLock.d.ts +10 -5
  934. package/dist/types/src/composables/internal/useTeleportEnabled.d.ts +35 -0
  935. package/dist/types/src/composables/useAnnouncer.d.ts +44 -0
  936. package/dist/types/src/composables/useComboboxNavigation.d.ts +51 -0
  937. package/dist/types/src/composables/useDismissible.d.ts +32 -0
  938. package/dist/types/src/composables/useDragGesture.d.ts +63 -0
  939. package/dist/types/src/composables/useDragSort.d.ts +80 -0
  940. package/dist/types/src/composables/useFloating.d.ts +57 -0
  941. package/dist/types/src/composables/useFocusTrap.d.ts +50 -0
  942. package/dist/types/src/composables/useGrComponentConfig.d.ts +41 -0
  943. package/dist/types/src/composables/useGrFormControl.d.ts +52 -0
  944. package/dist/types/src/composables/useGranularityTranslations.d.ts +13 -0
  945. package/dist/types/src/composables/useOverlayLayer.d.ts +67 -0
  946. package/dist/types/src/composables/usePortalTarget.d.ts +28 -0
  947. package/dist/types/src/composables/useRovingFocus.d.ts +108 -0
  948. package/dist/types/src/composables/useTheme.d.ts +48 -2
  949. package/dist/types/src/composables/useToast.d.ts +20 -11
  950. package/dist/types/src/composables/useVirtualList.d.ts +119 -0
  951. package/dist/types/src/directives/loading.d.ts +7 -1
  952. package/dist/types/src/fileValidation/i18n.d.ts +24 -0
  953. package/dist/types/src/fileValidation/index.d.ts +4 -2
  954. package/dist/types/src/fileValidation/maxCountValidator.d.ts +9 -0
  955. package/dist/types/src/fileValidation/maxFileSize.d.ts +16 -0
  956. package/dist/types/src/fileValidation/types.d.ts +8 -2
  957. package/dist/types/src/granular-provider/index.d.ts +1 -1
  958. package/dist/types/src/granular-provider/node.d.ts +2 -3
  959. package/dist/types/src/granular-provider/shared.d.ts +14 -18
  960. package/dist/types/src/i18n/adapter.d.ts +24 -0
  961. package/dist/types/src/i18n/messages/en.d.ts +334 -2
  962. package/dist/types/src/i18n/messages/es.d.ts +338 -2
  963. package/dist/types/src/i18n/messages/ru.d.ts +342 -2
  964. package/dist/types/src/index.d.ts +38 -3
  965. package/dist/types/src/internal/granularityFormat.d.ts +19 -0
  966. package/dist/types/src/internal/granularityI18n.d.ts +6 -0
  967. package/dist/types/src/internal/keyboard.d.ts +52 -0
  968. package/dist/types/src/tokens/generated.d.ts +6 -0
  969. package/dist/types/src/tokens/index.d.ts +13 -0
  970. package/dist/types/src/tokens/types.d.ts +54 -0
  971. package/dist/vue/index.js.map +1 -1
  972. package/dist/web-types.json +6503 -2020
  973. package/package.json +118 -17
  974. package/tokens/derived.json +142 -0
  975. package/tokens/foundation.json +558 -0
  976. package/tokens/themes/dark.json +499 -0
  977. package/tokens/themes/light.json +499 -0
  978. package/dist/GrBadge.css +0 -1
  979. package/dist/GrButtonGroup.css +0 -1
  980. package/dist/GrFormFile.css +0 -1
  981. package/dist/GrIcon.css +0 -1
  982. package/dist/GrLoading.css +0 -1
  983. package/dist/GrToaster.css +0 -1
  984. package/dist/GrTree.css +0 -1
  985. package/dist/chunks/config-23WtUiAL.js +0 -53
  986. package/dist/chunks/config-23WtUiAL.js.map +0 -1
  987. package/dist/chunks/config-B0i5r8kH.js +0 -23
  988. package/dist/chunks/config-B0i5r8kH.js.map +0 -1
  989. package/dist/chunks/config-B0qIpo8m.js +0 -5
  990. package/dist/chunks/config-B0qIpo8m.js.map +0 -1
  991. package/dist/chunks/config-B5Rknzkd.js +0 -100
  992. package/dist/chunks/config-B5Rknzkd.js.map +0 -1
  993. package/dist/chunks/config-BDSHekVC.js +0 -84
  994. package/dist/chunks/config-BDSHekVC.js.map +0 -1
  995. package/dist/chunks/config-BEegFP74.js +0 -5
  996. package/dist/chunks/config-BEegFP74.js.map +0 -1
  997. package/dist/chunks/config-BLHqZhy-.js +0 -5
  998. package/dist/chunks/config-BLHqZhy-.js.map +0 -1
  999. package/dist/chunks/config-BMKNHFMD2.js +0 -171
  1000. package/dist/chunks/config-BMKNHFMD2.js.map +0 -1
  1001. package/dist/chunks/config-BUHuGBik2.js +0 -13
  1002. package/dist/chunks/config-BUHuGBik2.js.map +0 -1
  1003. package/dist/chunks/config-BWGGp7uV.js +0 -8
  1004. package/dist/chunks/config-BWGGp7uV.js.map +0 -1
  1005. package/dist/chunks/config-BWiPnygb.js +0 -5
  1006. package/dist/chunks/config-BWiPnygb.js.map +0 -1
  1007. package/dist/chunks/config-BX1JTrkV.js +0 -14
  1008. package/dist/chunks/config-BX1JTrkV.js.map +0 -1
  1009. package/dist/chunks/config-BXtAmU3s.js +0 -8
  1010. package/dist/chunks/config-BXtAmU3s.js.map +0 -1
  1011. package/dist/chunks/config-BZFUM3Ky.js +0 -75
  1012. package/dist/chunks/config-BZFUM3Ky.js.map +0 -1
  1013. package/dist/chunks/config-Bah4oHwL.js +0 -8
  1014. package/dist/chunks/config-Bah4oHwL.js.map +0 -1
  1015. package/dist/chunks/config-BmNT0Fmx.js +0 -45
  1016. package/dist/chunks/config-BmNT0Fmx.js.map +0 -1
  1017. package/dist/chunks/config-BvVq2gbd.js +0 -13
  1018. package/dist/chunks/config-BvVq2gbd.js.map +0 -1
  1019. package/dist/chunks/config-C4hJxXDa.js +0 -58
  1020. package/dist/chunks/config-C4hJxXDa.js.map +0 -1
  1021. package/dist/chunks/config-C86UzUYf.js +0 -13
  1022. package/dist/chunks/config-C86UzUYf.js.map +0 -1
  1023. package/dist/chunks/config-C9AcVDkv.js +0 -5
  1024. package/dist/chunks/config-C9AcVDkv.js.map +0 -1
  1025. package/dist/chunks/config-CB4RVt9M.js +0 -66
  1026. package/dist/chunks/config-CB4RVt9M.js.map +0 -1
  1027. package/dist/chunks/config-CGHLoBlH2.js +0 -5
  1028. package/dist/chunks/config-CGHLoBlH2.js.map +0 -1
  1029. package/dist/chunks/config-COE_vZ-l.js +0 -52
  1030. package/dist/chunks/config-COE_vZ-l.js.map +0 -1
  1031. package/dist/chunks/config-CPdmr7tC.js +0 -39
  1032. package/dist/chunks/config-CPdmr7tC.js.map +0 -1
  1033. package/dist/chunks/config-CThzliFi.js +0 -5
  1034. package/dist/chunks/config-CThzliFi.js.map +0 -1
  1035. package/dist/chunks/config-Cb2PAlSD.js +0 -8
  1036. package/dist/chunks/config-Cb2PAlSD.js.map +0 -1
  1037. package/dist/chunks/config-D7GZO-Dx.js +0 -8
  1038. package/dist/chunks/config-D7GZO-Dx.js.map +0 -1
  1039. package/dist/chunks/config-DICOd-2X.js +0 -5
  1040. package/dist/chunks/config-DICOd-2X.js.map +0 -1
  1041. package/dist/chunks/config-DPDFYzIa.js +0 -40
  1042. package/dist/chunks/config-DPDFYzIa.js.map +0 -1
  1043. package/dist/chunks/config-DRKXJ9PW2.js +0 -22
  1044. package/dist/chunks/config-DRKXJ9PW2.js.map +0 -1
  1045. package/dist/chunks/config-DToHb81g.js +0 -45
  1046. package/dist/chunks/config-DToHb81g.js.map +0 -1
  1047. package/dist/chunks/config-D_myOZbA.js +0 -20
  1048. package/dist/chunks/config-D_myOZbA.js.map +0 -1
  1049. package/dist/chunks/config-Dg_6FTvJ.js +0 -35
  1050. package/dist/chunks/config-Dg_6FTvJ.js.map +0 -1
  1051. package/dist/chunks/config-Dlm49Jp5.js +0 -5
  1052. package/dist/chunks/config-Dlm49Jp5.js.map +0 -1
  1053. package/dist/chunks/config-DpqOnJiz.js.map +0 -1
  1054. package/dist/chunks/config-Dqy0rPPO2.js +0 -17
  1055. package/dist/chunks/config-Dqy0rPPO2.js.map +0 -1
  1056. package/dist/chunks/config-Dxuwwepq.js +0 -5
  1057. package/dist/chunks/config-Dxuwwepq.js.map +0 -1
  1058. package/dist/chunks/config-HZto2PVy.js +0 -5
  1059. package/dist/chunks/config-HZto2PVy.js.map +0 -1
  1060. package/dist/chunks/config-JOtB4mzs.js +0 -8
  1061. package/dist/chunks/config-JOtB4mzs.js.map +0 -1
  1062. package/dist/chunks/config-JpHA4Xx0.js +0 -8
  1063. package/dist/chunks/config-JpHA4Xx0.js.map +0 -1
  1064. package/dist/chunks/config-KXuionN3.js +0 -9
  1065. package/dist/chunks/config-KXuionN3.js.map +0 -1
  1066. package/dist/chunks/config-LGrZIdaZ.js +0 -21
  1067. package/dist/chunks/config-LGrZIdaZ.js.map +0 -1
  1068. package/dist/chunks/config-LqDC_rvp.js +0 -78
  1069. package/dist/chunks/config-LqDC_rvp.js.map +0 -1
  1070. package/dist/chunks/config-PFg39mYo.js +0 -5
  1071. package/dist/chunks/config-PFg39mYo.js.map +0 -1
  1072. package/dist/chunks/config-QYGvEBu5.js +0 -22
  1073. package/dist/chunks/config-QYGvEBu5.js.map +0 -1
  1074. package/dist/chunks/config-QaIc_gRa2.js.map +0 -1
  1075. package/dist/chunks/config-U4m9PSql2.js +0 -8
  1076. package/dist/chunks/config-U4m9PSql2.js.map +0 -1
  1077. package/dist/chunks/config-XmTv4pnI.js +0 -26
  1078. package/dist/chunks/config-XmTv4pnI.js.map +0 -1
  1079. package/dist/chunks/config-ZiXWIRBX.js +0 -8
  1080. package/dist/chunks/config-ZiXWIRBX.js.map +0 -1
  1081. package/dist/chunks/config-gZWR75Bh2.js +0 -44
  1082. package/dist/chunks/config-gZWR75Bh2.js.map +0 -1
  1083. package/dist/chunks/config-ipvU0lzP.js +0 -5
  1084. package/dist/chunks/config-ipvU0lzP.js.map +0 -1
  1085. package/dist/chunks/config-xR4XVmcy2.js +0 -8
  1086. package/dist/chunks/config-xR4XVmcy2.js.map +0 -1
  1087. package/dist/chunks/context-DfWYCBB-.js +0 -129
  1088. package/dist/chunks/context-DfWYCBB-.js.map +0 -1
  1089. package/dist/chunks/en-Cr6EkG8c.js +0 -186
  1090. package/dist/chunks/en-Cr6EkG8c.js.map +0 -1
  1091. package/dist/chunks/es-DuYb1Qju.js +0 -20
  1092. package/dist/chunks/es-DuYb1Qju.js.map +0 -1
  1093. package/dist/chunks/es-i08e9Sdo.js +0 -186
  1094. package/dist/chunks/es-i08e9Sdo.js.map +0 -1
  1095. package/dist/chunks/fileValidation-C3WFaWU2.js +0 -220
  1096. package/dist/chunks/fileValidation-C3WFaWU2.js.map +0 -1
  1097. package/dist/chunks/grBadgeStyles-D3dFjr_N.js +0 -50
  1098. package/dist/chunks/grBadgeStyles-D3dFjr_N.js.map +0 -1
  1099. package/dist/chunks/grButtonStyles-DRBgDmOp.js +0 -191
  1100. package/dist/chunks/grButtonStyles-DRBgDmOp.js.map +0 -1
  1101. package/dist/chunks/grDropdownStyles-HBPkghVr.js +0 -35
  1102. package/dist/chunks/grDropdownStyles-HBPkghVr.js.map +0 -1
  1103. package/dist/chunks/grLoadingStyles-R5sreH__.js +0 -17
  1104. package/dist/chunks/grLoadingStyles-R5sreH__.js.map +0 -1
  1105. package/dist/chunks/grModalEscStack-BXk-9mv7.js +0 -43
  1106. package/dist/chunks/grModalEscStack-BXk-9mv7.js.map +0 -1
  1107. package/dist/chunks/grModalStyles-D8-shx9A.js +0 -47
  1108. package/dist/chunks/grModalStyles-D8-shx9A.js.map +0 -1
  1109. package/dist/chunks/grSelectStyles-CwMUQrBZ.js +0 -97
  1110. package/dist/chunks/grSelectStyles-CwMUQrBZ.js.map +0 -1
  1111. package/dist/chunks/grStyle-CdvxTXPH.js +0 -19
  1112. package/dist/chunks/grStyle-CdvxTXPH.js.map +0 -1
  1113. package/dist/chunks/granularityI18n-SH0I--GW.js +0 -61
  1114. package/dist/chunks/granularityI18n-SH0I--GW.js.map +0 -1
  1115. package/dist/chunks/ru-B5XOOYZt.js +0 -186
  1116. package/dist/chunks/ru-B5XOOYZt.js.map +0 -1
  1117. package/dist/chunks/safelist-BvO8HPnE.js +0 -24
  1118. package/dist/chunks/safelist-BvO8HPnE.js.map +0 -1
  1119. package/dist/chunks/shared-D-v9lit0.js +0 -188
  1120. package/dist/chunks/shared-D-v9lit0.js.map +0 -1
  1121. package/dist/chunks/useAddonMeasurement-DM0akF4C.js +0 -65
  1122. package/dist/chunks/useAddonMeasurement-DM0akF4C.js.map +0 -1
  1123. package/dist/chunks/useEscapeToClose-C2t_S1gh.js +0 -27
  1124. package/dist/chunks/useEscapeToClose-C2t_S1gh.js.map +0 -1
  1125. package/dist/chunks/useFloating-DtM6TyE4.js +0 -1249
  1126. package/dist/chunks/useFloating-DtM6TyE4.js.map +0 -1
  1127. package/dist/chunks/useScrollLock-K7kaP2Ud.js +0 -1757
  1128. package/dist/chunks/useScrollLock-K7kaP2Ud.js.map +0 -1
  1129. package/dist/components/GrAlert/chunks/GrAlert-B9gmpoPC.js +0 -251
  1130. package/dist/components/GrAlert/chunks/GrAlert-B9gmpoPC.js.map +0 -1
  1131. package/dist/components/GrAutocomplete/chunks/GrAutocomplete-BVLoQ5tZ.js +0 -499
  1132. package/dist/components/GrAutocomplete/chunks/GrAutocomplete-BVLoQ5tZ.js.map +0 -1
  1133. package/dist/components/GrAvatar/chunks/GrAvatar-CTOUVBF7.js +0 -41
  1134. package/dist/components/GrAvatar/chunks/GrAvatar-CTOUVBF7.js.map +0 -1
  1135. package/dist/components/GrBadge/chunks/GrBadge-D1jefy4S.js +0 -40
  1136. package/dist/components/GrBadge/chunks/GrBadge-D1jefy4S.js.map +0 -1
  1137. package/dist/components/GrBadgeWrap/chunks/GrBadgeWrap-DWDxHdiQ.js +0 -33
  1138. package/dist/components/GrBadgeWrap/chunks/GrBadgeWrap-DWDxHdiQ.js.map +0 -1
  1139. package/dist/components/GrBottomNav/chunks/GrBottomNav-vSE4LXmk.js +0 -31
  1140. package/dist/components/GrBottomNav/chunks/GrBottomNav-vSE4LXmk.js.map +0 -1
  1141. package/dist/components/GrButton/chunks/GrButton-DCi4CUpo.js +0 -128
  1142. package/dist/components/GrButton/chunks/GrButton-DCi4CUpo.js.map +0 -1
  1143. package/dist/components/GrButtonGroup/chunks/GrButtonGroup-Bs9dEKfA.js +0 -21
  1144. package/dist/components/GrButtonGroup/chunks/GrButtonGroup-Bs9dEKfA.js.map +0 -1
  1145. package/dist/components/GrCard/chunks/GrCard-CxCjyHMb.js +0 -11
  1146. package/dist/components/GrCard/chunks/GrCard-CxCjyHMb.js.map +0 -1
  1147. package/dist/components/GrCheckbox/chunks/GrCheckbox-BbIDRXtl.js +0 -182
  1148. package/dist/components/GrCheckbox/chunks/GrCheckbox-BbIDRXtl.js.map +0 -1
  1149. package/dist/components/GrCollapse/chunks/GrCollapse-DApXztn8.js +0 -205
  1150. package/dist/components/GrCollapse/chunks/GrCollapse-DApXztn8.js.map +0 -1
  1151. package/dist/components/GrCommandPalette/chunks/GrCommandPalette-6OyvNbek.js +0 -410
  1152. package/dist/components/GrCommandPalette/chunks/GrCommandPalette-6OyvNbek.js.map +0 -1
  1153. package/dist/components/GrConfigProvider/chunks/GrConfigProvider-BtyeBGm8.js +0 -57
  1154. package/dist/components/GrConfigProvider/chunks/GrConfigProvider-BtyeBGm8.js.map +0 -1
  1155. package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-e4120mWw.js +0 -160
  1156. package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-e4120mWw.js.map +0 -1
  1157. package/dist/components/GrDataTable/chunks/GrDataTable-C1CzxV0p.js +0 -307
  1158. package/dist/components/GrDataTable/chunks/GrDataTable-C1CzxV0p.js.map +0 -1
  1159. package/dist/components/GrDialog/chunks/GrDialog-BPMvDHOz.js +0 -223
  1160. package/dist/components/GrDialog/chunks/GrDialog-BPMvDHOz.js.map +0 -1
  1161. package/dist/components/GrDialogService/chunks/GrDialogService-CYXCTGm3.js +0 -450
  1162. package/dist/components/GrDialogService/chunks/GrDialogService-CYXCTGm3.js.map +0 -1
  1163. package/dist/components/GrDivider/chunks/GrDivider-BdENZ1w0.js +0 -54
  1164. package/dist/components/GrDivider/chunks/GrDivider-BdENZ1w0.js.map +0 -1
  1165. package/dist/components/GrDrawer/chunks/GrDrawer-KevdZ5BB.js +0 -184
  1166. package/dist/components/GrDrawer/chunks/GrDrawer-KevdZ5BB.js.map +0 -1
  1167. package/dist/components/GrDropdown/chunks/GrDropdown-BKoy8hm-.js +0 -181
  1168. package/dist/components/GrDropdown/chunks/GrDropdown-BKoy8hm-.js.map +0 -1
  1169. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-zCatXzmt.js +0 -309
  1170. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-zCatXzmt.js.map +0 -1
  1171. package/dist/components/GrEmptyState/chunks/GrEmptyState-CNb0BzjG.js +0 -62
  1172. package/dist/components/GrEmptyState/chunks/GrEmptyState-CNb0BzjG.js.map +0 -1
  1173. package/dist/components/GrFileUpload/chunks/GrFileUpload-CnLgUGDF.js +0 -592
  1174. package/dist/components/GrFileUpload/chunks/GrFileUpload-CnLgUGDF.js.map +0 -1
  1175. package/dist/components/GrForm/chunks/GrForm-CdaFjcyl.js +0 -234
  1176. package/dist/components/GrForm/chunks/GrForm-CdaFjcyl.js.map +0 -1
  1177. package/dist/components/GrFormField/chunks/GrFormField-CXCDBd99.js +0 -100
  1178. package/dist/components/GrFormField/chunks/GrFormField-CXCDBd99.js.map +0 -1
  1179. package/dist/components/GrFormFile/chunks/GrFormFile-CqacSbUl.js +0 -320
  1180. package/dist/components/GrFormFile/chunks/GrFormFile-CqacSbUl.js.map +0 -1
  1181. package/dist/components/GrFormSection/chunks/GrFormSection-C3w9DQJf.js +0 -35
  1182. package/dist/components/GrFormSection/chunks/GrFormSection-C3w9DQJf.js.map +0 -1
  1183. package/dist/components/GrIcon/chunks/GrIcon-D9AWQLk2.js +0 -32
  1184. package/dist/components/GrIcon/chunks/GrIcon-D9AWQLk2.js.map +0 -1
  1185. package/dist/components/GrImageViewer/chunks/GrImageViewer-DDLJkvIU.js +0 -650
  1186. package/dist/components/GrImageViewer/chunks/GrImageViewer-DDLJkvIU.js.map +0 -1
  1187. package/dist/components/GrInput/chunks/GrInput-C1VBL0dg.js +0 -337
  1188. package/dist/components/GrInput/chunks/GrInput-C1VBL0dg.js.map +0 -1
  1189. package/dist/components/GrInputTag/chunks/GrInputTag-BMk9jm42.js +0 -260
  1190. package/dist/components/GrInputTag/chunks/GrInputTag-BMk9jm42.js.map +0 -1
  1191. package/dist/components/GrKbd/chunks/GrKbd-DTspwtoN.js +0 -22
  1192. package/dist/components/GrKbd/chunks/GrKbd-DTspwtoN.js.map +0 -1
  1193. package/dist/components/GrLink/chunks/GrLink-BP0YrnL9.js +0 -100
  1194. package/dist/components/GrLink/chunks/GrLink-BP0YrnL9.js.map +0 -1
  1195. package/dist/components/GrList/chunks/GrList-5RA-tZzE.js +0 -77
  1196. package/dist/components/GrList/chunks/GrList-5RA-tZzE.js.map +0 -1
  1197. package/dist/components/GrLoading/chunks/GrLoading-fRDtVfi7.js +0 -69
  1198. package/dist/components/GrLoading/chunks/GrLoading-fRDtVfi7.js.map +0 -1
  1199. package/dist/components/GrModal/chunks/GrModal-BTu1-5eY.js +0 -233
  1200. package/dist/components/GrModal/chunks/GrModal-BTu1-5eY.js.map +0 -1
  1201. package/dist/components/GrNavbar/chunks/GrNavbar-keKT_mIM.js +0 -75
  1202. package/dist/components/GrNavbar/chunks/GrNavbar-keKT_mIM.js.map +0 -1
  1203. package/dist/components/GrNumberInput/chunks/GrNumberInput-l9ZOHG9D.js +0 -471
  1204. package/dist/components/GrNumberInput/chunks/GrNumberInput-l9ZOHG9D.js.map +0 -1
  1205. package/dist/components/GrPagination/chunks/GrPagination-C5Y69CuK.js +0 -208
  1206. package/dist/components/GrPagination/chunks/GrPagination-C5Y69CuK.js.map +0 -1
  1207. package/dist/components/GrProgressBar/chunks/GrProgressBar-Dqg4Fj9S.js +0 -39
  1208. package/dist/components/GrProgressBar/chunks/GrProgressBar-Dqg4Fj9S.js.map +0 -1
  1209. package/dist/components/GrPromptDialog/chunks/GrPromptDialog-DNUjRVB9.js +0 -224
  1210. package/dist/components/GrPromptDialog/chunks/GrPromptDialog-DNUjRVB9.js.map +0 -1
  1211. package/dist/components/GrRadio/chunks/GrRadio-DlhxPGqf.js +0 -182
  1212. package/dist/components/GrRadio/chunks/GrRadio-DlhxPGqf.js.map +0 -1
  1213. package/dist/components/GrRadioGroup/chunks/GrRadioGroup-BXt9iw4q.js +0 -82
  1214. package/dist/components/GrRadioGroup/chunks/GrRadioGroup-BXt9iw4q.js.map +0 -1
  1215. package/dist/components/GrRating/chunks/GrRating-Co-3Rk4h.js +0 -241
  1216. package/dist/components/GrRating/chunks/GrRating-Co-3Rk4h.js.map +0 -1
  1217. package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-2CvM7Z08.js +0 -224
  1218. package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-2CvM7Z08.js.map +0 -1
  1219. package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-C8NGx8pE.js +0 -782
  1220. package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-C8NGx8pE.js.map +0 -1
  1221. package/dist/components/GrSegmented/chunks/GrSegmented-CTd3n4PA.js +0 -326
  1222. package/dist/components/GrSegmented/chunks/GrSegmented-CTd3n4PA.js.map +0 -1
  1223. package/dist/components/GrSelect/chunks/GrSelect-Dn3FgJ3Z.js +0 -730
  1224. package/dist/components/GrSelect/chunks/GrSelect-Dn3FgJ3Z.js.map +0 -1
  1225. package/dist/components/GrSidebar/chunks/GrSidebar-cvnzBfj3.js +0 -238
  1226. package/dist/components/GrSidebar/chunks/GrSidebar-cvnzBfj3.js.map +0 -1
  1227. package/dist/components/GrSkeleton/chunks/GrSkeleton-BucA5F4J.js +0 -33
  1228. package/dist/components/GrSkeleton/chunks/GrSkeleton-BucA5F4J.js.map +0 -1
  1229. package/dist/components/GrSlider/chunks/GrSlider-CzzJ3bD-.js +0 -286
  1230. package/dist/components/GrSlider/chunks/GrSlider-CzzJ3bD-.js.map +0 -1
  1231. package/dist/components/GrStatistic/chunks/GrStatistic-gHiAwrX5.js +0 -128
  1232. package/dist/components/GrStatistic/chunks/GrStatistic-gHiAwrX5.js.map +0 -1
  1233. package/dist/components/GrSwitch/chunks/GrSwitch-CJdRvS0s.js +0 -88
  1234. package/dist/components/GrSwitch/chunks/GrSwitch-CJdRvS0s.js.map +0 -1
  1235. package/dist/components/GrTabPanels/chunks/GrTabPanels-DeEMgb_y.js +0 -68
  1236. package/dist/components/GrTabPanels/chunks/GrTabPanels-DeEMgb_y.js.map +0 -1
  1237. package/dist/components/GrTable/chunks/GrTable-sNvsA8wa.js +0 -70
  1238. package/dist/components/GrTable/chunks/GrTable-sNvsA8wa.js.map +0 -1
  1239. package/dist/components/GrTabs/chunks/GrTabs-BqTak0SR.js +0 -123
  1240. package/dist/components/GrTabs/chunks/GrTabs-BqTak0SR.js.map +0 -1
  1241. package/dist/components/GrTextarea/chunks/GrTextarea-DIYBAPpP.js +0 -81
  1242. package/dist/components/GrTextarea/chunks/GrTextarea-DIYBAPpP.js.map +0 -1
  1243. package/dist/components/GrToaster/chunks/GrToaster-BVHjIHcM.js +0 -230
  1244. package/dist/components/GrToaster/chunks/GrToaster-BVHjIHcM.js.map +0 -1
  1245. package/dist/components/GrTooltip/chunks/GrTooltip-BMKH2lIx.js +0 -109
  1246. package/dist/components/GrTooltip/chunks/GrTooltip-BMKH2lIx.js.map +0 -1
  1247. package/dist/components/GrTree/chunks/GrTree-_12ChXRQ.js +0 -838
  1248. package/dist/components/GrTree/chunks/GrTree-_12ChXRQ.js.map +0 -1
  1249. package/dist/components/GrTreeSelect/chunks/GrTreeSelect-CdaLG7Xq.js +0 -426
  1250. package/dist/components/GrTreeSelect/chunks/GrTreeSelect-CdaLG7Xq.js.map +0 -1
  1251. package/dist/granular-provider-node.js.map +0 -1
  1252. package/dist/granular-provider.js.map +0 -1
  1253. package/dist/index.js.map +0 -1
  1254. package/dist/types/src/components/GrButton/config.node.d.ts +0 -1
  1255. package/dist/types/src/components/GrCommandPalette/hotkey.d.ts +0 -23
  1256. package/dist/types/src/components/GrFileUpload/maxSizeMbValidator.d.ts +0 -1
  1257. package/dist/types/src/components/GrModal/grModalEscStack.d.ts +0 -30
  1258. package/dist/types/src/components/GrModal/grModalTopStack.d.ts +0 -31
  1259. package/dist/types/src/components/GrProgressBar/config.node.d.ts +0 -1
  1260. package/dist/types/src/composables/internal/useEscapeToClose.d.ts +0 -11
  1261. package/dist/types/src/composables/internal/useFloating.d.ts +0 -53
  1262. package/dist/types/src/fileValidation/maxFileSizeBytesValidator.d.ts +0 -2
  1263. package/dist/types/src/fileValidation/maxSizeMbValidator.d.ts +0 -2
  1264. /package/dist/chunks/{config-DpqOnJiz.js → config-DpqOnJiz2.js} +0 -0
  1265. /package/dist/chunks/{config-QaIc_gRa2.js → config-QaIc_gRa.js} +0 -0
  1266. /package/dist/{GrSkeleton.css → components/GrSkeleton/styles.css} +0 -0
@@ -0,0 +1,133 @@
1
+ import { n as openModalCount } from "../chunks/overlayStack-C8cfsqXa.js";
2
+ import { nextTick, onBeforeUnmount, ref, watch } from "vue";
3
+ import { autoUpdate, computePosition, flip, offset, shift, size } from "@floating-ui/dom";
4
+ //#region src/composables/useFloating.ts
5
+ /**
6
+ * Device pixel ratio плавающего элемента. Нужен, чтобы округлять координаты к сетке
7
+ * физических пикселей (см. `roundByDPR`) — иначе субпиксельные `left/top` дают размытый
8
+ * текст/границы панели на не-целочисленных позициях и HiDPI-экранах. Подход перенят у
9
+ * официального `@floating-ui/vue` (`useFloating` → `roundByDPR`), чтобы не тянуть весь
10
+ * пакет ради одной утилиты.
11
+ */
12
+ /**
13
+ * Высота панели: своя шкала снаружи и подъём над окном внутри него.
14
+ *
15
+ * Панель телепортируется в общий портал, то есть становится **соседом** корня
16
+ * модального окна, а не его потомком: собственный stacking-контекст окна её не
17
+ * накрывает, и статический `--gr-z-dropdown` (1000) оставлял её под окном
18
+ * (`--gr-z-modal`, 1100). Поэтому высоту берём из стека слоёв — единственного
19
+ * места, которое знает, что сейчас открыто.
20
+ *
21
+ * Слагаемое — **число** модальных слоёв, а не шаг шкалы: вложенные окна дают
22
+ * +2, а полноэкранная загрузка (1150) и тосты (1200) остаются сверху.
23
+ *
24
+ * Обратный случай — «поповер снаружи не должен перекрывать окно» — не страдает:
25
+ * пока окно открыто, страница под ним в `inert`, и открыть там поповер нечем.
26
+ * Ненулевой счётчик означает ровно «панель открыта изнутри окна».
27
+ */
28
+ function floatingZIndex(zIndexVar) {
29
+ const modals = openModalCount();
30
+ return modals > 0 ? `calc(var(--gr-z-modal) + ${modals})` : `var(${zIndexVar})`;
31
+ }
32
+ function getDpr(element) {
33
+ if (typeof window === "undefined") return 1;
34
+ return (element.ownerDocument?.defaultView ?? window).devicePixelRatio || 1;
35
+ }
36
+ function roundByDpr(element, value) {
37
+ const dpr = getDpr(element);
38
+ return Math.round(value * dpr) / dpr;
39
+ }
40
+ /**
41
+ * Единый движок позиционирования floating-панелей (Dropdown/Select/TreeSelect/Tooltip)
42
+ * поверх `@floating-ui/dom`: flip (переворот при нехватке места), shift (клэмп к границам
43
+ * viewport), опциональный `size`-мидлвар для растягивания по ширине триггера.
44
+ *
45
+ * Пересчёт положения при скролле/ресайзе делает `autoUpdate` из `@floating-ui/dom` —
46
+ * он сам использует `ResizeObserver`/`IntersectionObserver` и пассивные слушатели вместо
47
+ * наивного враппера на каждый `scroll`/`resize`, поэтому отдельный rAF-throttling здесь
48
+ * не нужен (в отличие от прежней ручной реализации в `GrSelect`/`GrDropdown`).
49
+ *
50
+ * Требует, чтобы `floatingEl` был примонтирован в DOM на момент открытия (обычно —
51
+ * `<teleport to="body">` + `v-show`, а не `v-if`): позиционирование не может измерить
52
+ * элемент, которого нет в дереве.
53
+ */
54
+ function useFloating(referenceEl, floatingEl, open, options = {}) {
55
+ const floatingStyle = ref({
56
+ position: "fixed",
57
+ top: "0px",
58
+ left: "0px"
59
+ });
60
+ function resolveRequestedPlacement() {
61
+ return typeof options.placement === "function" ? options.placement() : options.placement ?? "bottom-start";
62
+ }
63
+ function resolveMatchWidth() {
64
+ return typeof options.matchWidth === "function" ? options.matchWidth() : options.matchWidth ?? false;
65
+ }
66
+ const resolvedPlacement = ref(resolveRequestedPlacement());
67
+ let stopAutoUpdate = null;
68
+ async function update() {
69
+ const reference = referenceEl.value;
70
+ const floating = floatingEl.value;
71
+ if (!reference || !floating) return;
72
+ const middleware = [
73
+ offset(options.offsetPx ?? 8),
74
+ flip({ padding: options.boundaryPadding ?? 8 }),
75
+ shift({ padding: options.boundaryPadding ?? 8 })
76
+ ];
77
+ const matchWidth = resolveMatchWidth();
78
+ if (matchWidth) middleware.push(size({ apply({ rects, elements }) {
79
+ if (matchWidth === "min") {
80
+ Object.assign(elements.floating.style, {
81
+ width: "max-content",
82
+ minWidth: `${rects.reference.width}px`
83
+ });
84
+ return;
85
+ }
86
+ Object.assign(elements.floating.style, {
87
+ width: `${rects.reference.width}px`,
88
+ minWidth: ""
89
+ });
90
+ } }));
91
+ const { x, y, placement } = await computePosition(reference, floating, {
92
+ placement: resolveRequestedPlacement(),
93
+ strategy: "fixed",
94
+ middleware
95
+ });
96
+ resolvedPlacement.value = placement;
97
+ floatingStyle.value = {
98
+ position: "fixed",
99
+ left: `${roundByDpr(floating, x)}px`,
100
+ top: `${roundByDpr(floating, y)}px`,
101
+ zIndex: floatingZIndex(options.zIndexVar ?? "--gr-z-dropdown")
102
+ };
103
+ }
104
+ function stop() {
105
+ stopAutoUpdate?.();
106
+ stopAutoUpdate = null;
107
+ }
108
+ function start() {
109
+ stop();
110
+ const reference = referenceEl.value;
111
+ const floating = floatingEl.value;
112
+ if (!reference || !floating) return;
113
+ update();
114
+ stopAutoUpdate = autoUpdate(reference, floating, () => void update());
115
+ }
116
+ watch(open, (isOpen) => {
117
+ if (!isOpen) {
118
+ stop();
119
+ return;
120
+ }
121
+ nextTick(() => {
122
+ if (open.value) start();
123
+ });
124
+ }, { immediate: true });
125
+ onBeforeUnmount(stop);
126
+ return {
127
+ floatingStyle,
128
+ resolvedPlacement,
129
+ update: () => void update()
130
+ };
131
+ }
132
+ //#endregion
133
+ export { useFloating };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFloating.js","names":[],"sources":["../../src/composables/useFloating.ts"],"sourcesContent":["import type { CSSProperties, Ref } from 'vue'\nimport type { Middleware, Placement } from '@floating-ui/dom'\nimport { autoUpdate, computePosition, flip, offset as offsetMiddleware, shift, size as sizeMiddleware } from '@floating-ui/dom'\nimport { nextTick, onBeforeUnmount, ref, watch } from 'vue'\n\nimport { openModalCount } from './internal/overlayStack'\n\nexport type UseFloatingPlacement = Placement\n\n/**\n * Device pixel ratio плавающего элемента. Нужен, чтобы округлять координаты к сетке\n * физических пикселей (см. `roundByDPR`) — иначе субпиксельные `left/top` дают размытый\n * текст/границы панели на не-целочисленных позициях и HiDPI-экранах. Подход перенят у\n * официального `@floating-ui/vue` (`useFloating` → `roundByDPR`), чтобы не тянуть весь\n * пакет ради одной утилиты.\n */\n/**\n * Высота панели: своя шкала снаружи и подъём над окном внутри него.\n *\n * Панель телепортируется в общий портал, то есть становится **соседом** корня\n * модального окна, а не его потомком: собственный stacking-контекст окна её не\n * накрывает, и статический `--gr-z-dropdown` (1000) оставлял её под окном\n * (`--gr-z-modal`, 1100). Поэтому высоту берём из стека слоёв — единственного\n * места, которое знает, что сейчас открыто.\n *\n * Слагаемое — **число** модальных слоёв, а не шаг шкалы: вложенные окна дают\n * +2, а полноэкранная загрузка (1150) и тосты (1200) остаются сверху.\n *\n * Обратный случай — «поповер снаружи не должен перекрывать окно» — не страдает:\n * пока окно открыто, страница под ним в `inert`, и открыть там поповер нечем.\n * Ненулевой счётчик означает ровно «панель открыта изнутри окна».\n */\nfunction floatingZIndex(zIndexVar: string): string {\n const modals = openModalCount()\n\n return modals > 0 ? `calc(var(--gr-z-modal) + ${modals})` : `var(${zIndexVar})`\n}\n\nfunction getDpr(element: HTMLElement): number {\n if (typeof window === 'undefined')\n return 1\n\n const win = element.ownerDocument?.defaultView ?? window\n return win.devicePixelRatio || 1\n}\n\nfunction roundByDpr(element: HTMLElement, value: number): number {\n const dpr = getDpr(element)\n return Math.round(value * dpr) / dpr\n}\n\nexport interface UseFloatingOptions {\n /**\n * Предпочитаемое место панели относительно триггера. По умолчанию `bottom-start`.\n * Можно передать функцию-геттер, если место зависит от реактивного пропа\n * (например, `align`) — она вызывается заново при каждом пересчёте позиции.\n */\n placement?: UseFloatingPlacement | (() => UseFloatingPlacement)\n /** Зазор между триггером и панелью, px. По умолчанию `8`. */\n offsetPx?: number\n /** Минимальный отступ от края viewport при flip/shift, px. По умолчанию `8`. */\n boundaryPadding?: number\n /**\n * Согласовать ширину панели с шириной триггера (актуально для Select/TreeSelect).\n * Не годится для Dropdown/Tooltip, где ширина панели определяется контентом.\n * - `true` — точная ширина (`width = ширина триггера`);\n * - `'min'` — панель растёт по контенту (`width: max-content`), но не уже триггера\n * (`min-width = ширина триггера`) — режим `GrSelect view=\"link\"`;\n * - функция-геттер — как и `placement`, для реактивной зависимости от пропа.\n */\n matchWidth?: boolean | 'min' | (() => boolean | 'min')\n /**\n * CSS-переменная шкалы слоёв (см. `styles/tokens.css`). По умолчанию\n * `--gr-z-dropdown`. Действует, пока панель открыта вне модального окна: над\n * окном высоту задаёт стек слоёв (см. {@link floatingZIndex}).\n */\n zIndexVar?: string\n}\n\nexport interface UseFloatingReturn {\n /** Готовый объект для `:style` на плавающем элементе. */\n floatingStyle: Ref<CSSProperties>\n /**\n * Итоговое место панели ПОСЛЕ применения `flip` — может отличаться от запрошенного\n * `placement`, если места не хватило и панель перевернуло на противоположную сторону.\n * Полезно для выбора `transform-origin`/направления transition в потребителе.\n */\n resolvedPlacement: Ref<Placement>\n /** Принудительный пересчёт позиции (например, после изменения контента панели). */\n update: () => void\n}\n\n/**\n * Единый движок позиционирования floating-панелей (Dropdown/Select/TreeSelect/Tooltip)\n * поверх `@floating-ui/dom`: flip (переворот при нехватке места), shift (клэмп к границам\n * viewport), опциональный `size`-мидлвар для растягивания по ширине триггера.\n *\n * Пересчёт положения при скролле/ресайзе делает `autoUpdate` из `@floating-ui/dom` —\n * он сам использует `ResizeObserver`/`IntersectionObserver` и пассивные слушатели вместо\n * наивного враппера на каждый `scroll`/`resize`, поэтому отдельный rAF-throttling здесь\n * не нужен (в отличие от прежней ручной реализации в `GrSelect`/`GrDropdown`).\n *\n * Требует, чтобы `floatingEl` был примонтирован в DOM на момент открытия (обычно —\n * `<teleport to=\"body\">` + `v-show`, а не `v-if`): позиционирование не может измерить\n * элемент, которого нет в дереве.\n */\nexport function useFloating(\n referenceEl: Ref<HTMLElement | null>,\n floatingEl: Ref<HTMLElement | null>,\n open: Ref<boolean>,\n options: UseFloatingOptions = {},\n): UseFloatingReturn {\n const floatingStyle = ref<CSSProperties>({\n position: 'fixed',\n top: '0px',\n left: '0px',\n })\n function resolveRequestedPlacement(): Placement {\n return typeof options.placement === 'function' ? options.placement() : options.placement ?? 'bottom-start'\n }\n\n function resolveMatchWidth(): boolean | 'min' {\n return typeof options.matchWidth === 'function' ? options.matchWidth() : options.matchWidth ?? false\n }\n\n const resolvedPlacement = ref<Placement>(resolveRequestedPlacement())\n\n let stopAutoUpdate: (() => void) | null = null\n\n async function update(): Promise<void> {\n const reference = referenceEl.value\n const floating = floatingEl.value\n if (!reference || !floating)\n return\n\n const middleware: Middleware[] = [\n offsetMiddleware(options.offsetPx ?? 8),\n flip({ padding: options.boundaryPadding ?? 8 }),\n shift({ padding: options.boundaryPadding ?? 8 }),\n ]\n\n const matchWidth = resolveMatchWidth()\n if (matchWidth) {\n middleware.push(\n sizeMiddleware({\n apply({ rects, elements }) {\n if (matchWidth === 'min') {\n Object.assign(elements.floating.style, {\n width: 'max-content',\n minWidth: `${rects.reference.width}px`,\n })\n return\n }\n\n Object.assign(elements.floating.style, {\n width: `${rects.reference.width}px`,\n minWidth: '',\n })\n },\n }),\n )\n }\n\n const { x, y, placement } = await computePosition(reference, floating, {\n placement: resolveRequestedPlacement(),\n strategy: 'fixed',\n middleware,\n })\n\n resolvedPlacement.value = placement\n floatingStyle.value = {\n position: 'fixed',\n left: `${roundByDpr(floating, x)}px`,\n top: `${roundByDpr(floating, y)}px`,\n zIndex: floatingZIndex(options.zIndexVar ?? '--gr-z-dropdown'),\n }\n }\n\n function stop(): void {\n stopAutoUpdate?.()\n stopAutoUpdate = null\n }\n\n function start(): void {\n stop()\n const reference = referenceEl.value\n const floating = floatingEl.value\n if (!reference || !floating)\n return\n\n // `autoUpdate` подписывается на `ResizeObserver`/`IntersectionObserver` для\n // последующих пересчётов, но не гарантирует немедленный вызов `update` —\n // особенно в средах без этих API (например, jsdom в тестах). Считаем позицию\n // сразу, чтобы панель не «мигала» в 0,0 до первого scroll/resize.\n void update()\n stopAutoUpdate = autoUpdate(reference, floating, () => void update())\n }\n\n watch(\n open,\n (isOpen) => {\n if (!isOpen) {\n stop()\n return\n }\n\n // `floatingEl` монтируется в том же тике, что и `open` переключается\n // (v-show уже в DOM, но teleport/переход могут ещё не отработать) —\n // ждём тик, чтобы `getBoundingClientRect` не читал нулевые размеры.\n // Перепроверка `open`: панель могли закрыть, пока `start()` ждал в\n // очереди, — `stop()` уже отработал, и снимать подписку было бы некому.\n void nextTick(() => {\n if (open.value) start()\n })\n },\n { immediate: true },\n )\n\n onBeforeUnmount(stop)\n\n return {\n floatingStyle,\n resolvedPlacement,\n update: () => void update(),\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCA,SAAS,eAAe,WAA2B;CACjD,MAAM,SAAS,eAAe;CAE9B,OAAO,SAAS,IAAI,4BAA4B,OAAO,KAAK,OAAO,UAAU;AAC/E;AAEA,SAAS,OAAO,SAA8B;CAC5C,IAAI,OAAO,WAAW,aACpB,OAAO;CAGT,QADY,QAAQ,eAAe,eAAe,OAAA,CACvC,oBAAoB;AACjC;AAEA,SAAS,WAAW,SAAsB,OAAuB;CAC/D,MAAM,MAAM,OAAO,OAAO;CAC1B,OAAO,KAAK,MAAM,QAAQ,GAAG,IAAI;AACnC;;;;;;;;;;;;;;;AAyDA,SAAgB,YACd,aACA,YACA,MACA,UAA8B,CAAC,GACZ;CACnB,MAAM,gBAAgB,IAAmB;EACvC,UAAU;EACV,KAAK;EACL,MAAM;CACR,CAAC;CACD,SAAS,4BAAuC;EAC9C,OAAO,OAAO,QAAQ,cAAc,aAAa,QAAQ,UAAU,IAAI,QAAQ,aAAa;CAC9F;CAEA,SAAS,oBAAqC;EAC5C,OAAO,OAAO,QAAQ,eAAe,aAAa,QAAQ,WAAW,IAAI,QAAQ,cAAc;CACjG;CAEA,MAAM,oBAAoB,IAAe,0BAA0B,CAAC;CAEpE,IAAI,iBAAsC;CAE1C,eAAe,SAAwB;EACrC,MAAM,YAAY,YAAY;EAC9B,MAAM,WAAW,WAAW;EAC5B,IAAI,CAAC,aAAa,CAAC,UACjB;EAEF,MAAM,aAA2B;GAC/B,OAAiB,QAAQ,YAAY,CAAC;GACtC,KAAK,EAAE,SAAS,QAAQ,mBAAmB,EAAE,CAAC;GAC9C,MAAM,EAAE,SAAS,QAAQ,mBAAmB,EAAE,CAAC;EACjD;EAEA,MAAM,aAAa,kBAAkB;EACrC,IAAI,YACF,WAAW,KACT,KAAe,EACb,MAAM,EAAE,OAAO,YAAY;GACzB,IAAI,eAAe,OAAO;IACxB,OAAO,OAAO,SAAS,SAAS,OAAO;KACrC,OAAO;KACP,UAAU,GAAG,MAAM,UAAU,MAAM;IACrC,CAAC;IACD;GACF;GAEA,OAAO,OAAO,SAAS,SAAS,OAAO;IACrC,OAAO,GAAG,MAAM,UAAU,MAAM;IAChC,UAAU;GACZ,CAAC;EACH,EACF,CAAC,CACH;EAGF,MAAM,EAAE,GAAG,GAAG,cAAc,MAAM,gBAAgB,WAAW,UAAU;GACrE,WAAW,0BAA0B;GACrC,UAAU;GACV;EACF,CAAC;EAED,kBAAkB,QAAQ;EAC1B,cAAc,QAAQ;GACpB,UAAU;GACV,MAAM,GAAG,WAAW,UAAU,CAAC,EAAE;GACjC,KAAK,GAAG,WAAW,UAAU,CAAC,EAAE;GAChC,QAAQ,eAAe,QAAQ,aAAa,iBAAiB;EAC/D;CACF;CAEA,SAAS,OAAa;EACpB,iBAAiB;EACjB,iBAAiB;CACnB;CAEA,SAAS,QAAc;EACrB,KAAK;EACL,MAAM,YAAY,YAAY;EAC9B,MAAM,WAAW,WAAW;EAC5B,IAAI,CAAC,aAAa,CAAC,UACjB;EAMF,OAAY;EACZ,iBAAiB,WAAW,WAAW,gBAAgB,KAAK,OAAO,CAAC;CACtE;CAEA,MACE,OACC,WAAW;EACV,IAAI,CAAC,QAAQ;GACX,KAAK;GACL;EACF;EAOA,eAAoB;GAClB,IAAI,KAAK,OAAO,MAAM;EACxB,CAAC;CACH,GACA,EAAE,WAAW,KAAK,CACpB;CAEA,gBAAgB,IAAI;CAEpB,OAAO;EACL;EACA;EACA,cAAc,KAAK,OAAO;CAC5B;AACF"}
@@ -0,0 +1,124 @@
1
+ import { n as getFocusableElementsIn, r as isFocusable } from "../chunks/focusables-BkzK42SQ.js";
2
+ import { nextTick, onScopeDispose, watch } from "vue";
3
+ //#region src/composables/useFocusTrap.ts
4
+ /**
5
+ * Ловушка фокуса: пока активна, Tab ходит по кругу внутри слоя, а фокус,
6
+ * утёкший наружу, возвращается обратно.
7
+ *
8
+ * Реализована на `keydown` и `focusin`, **без sentinel-узлов**: распространённый
9
+ * подход с двумя focus-guard кнопками по краям кладёт в разметку интерактивные
10
+ * элементы, а внутрь контейнера с ARIA-ролью их класть нельзя — роль объявляет
11
+ * потомков презентационными (axe: `nested-interactive`).
12
+ *
13
+ * Слой из ловушки не выводится: порядок окон, Esc и `inert` — забота
14
+ * `useOverlayLayer`. Композиция такая:
15
+ *
16
+ * ```ts
17
+ * const layer = useOverlayLayer(open, close, { modal: true, root: panelRef })
18
+ * useFocusTrap(panelRef, {
19
+ * active: () => open.value && isTopmost.value,
20
+ * containers: layer.rootsAbove,
21
+ * })
22
+ * ```
23
+ */
24
+ function useFocusTrap(container, options = {}) {
25
+ let previouslyFocused = null;
26
+ let listening = false;
27
+ let lastFocusedInside = null;
28
+ function roots() {
29
+ const extra = options.containers?.() ?? [];
30
+ return [container.value, ...extra].filter((root) => Boolean(root));
31
+ }
32
+ function contains(target) {
33
+ if (!target) return false;
34
+ return roots().some((root) => root === target || root.contains(target));
35
+ }
36
+ function focusables() {
37
+ return getFocusableElementsIn(roots());
38
+ }
39
+ function focusInitial() {
40
+ if (contains(document.activeElement)) return;
41
+ const requested = options.initialFocus?.();
42
+ if (requested && isFocusable(requested)) {
43
+ requested.focus();
44
+ return;
45
+ }
46
+ const [first] = focusables();
47
+ if (first) {
48
+ first.focus();
49
+ return;
50
+ }
51
+ (options.fallbackFocus?.() ?? container.value)?.focus();
52
+ }
53
+ function onKeydown(event) {
54
+ if (event.key !== "Tab") return;
55
+ if (!contains(document.activeElement)) return;
56
+ const items = focusables();
57
+ if (items.length === 0) {
58
+ event.preventDefault();
59
+ (options.fallbackFocus?.() ?? container.value)?.focus();
60
+ return;
61
+ }
62
+ const first = items[0];
63
+ const last = items[items.length - 1];
64
+ const active = document.activeElement;
65
+ if ((active ? items.indexOf(active) : -1) === -1) {
66
+ event.preventDefault();
67
+ (event.shiftKey ? last : first).focus();
68
+ return;
69
+ }
70
+ if (event.shiftKey && active === first) {
71
+ event.preventDefault();
72
+ last.focus();
73
+ return;
74
+ }
75
+ if (!event.shiftKey && active === last) {
76
+ event.preventDefault();
77
+ first.focus();
78
+ }
79
+ }
80
+ function onFocusIn(event) {
81
+ const target = event.target;
82
+ if (contains(target)) {
83
+ lastFocusedInside = target;
84
+ return;
85
+ }
86
+ if (lastFocusedInside && contains(lastFocusedInside) && isFocusable(lastFocusedInside)) {
87
+ lastFocusedInside.focus();
88
+ return;
89
+ }
90
+ focusInitial();
91
+ }
92
+ function activate() {
93
+ if (listening) return;
94
+ if (typeof document === "undefined") return;
95
+ listening = true;
96
+ previouslyFocused = document.activeElement ?? null;
97
+ lastFocusedInside = null;
98
+ document.addEventListener("keydown", onKeydown, true);
99
+ document.addEventListener("focusin", onFocusIn, true);
100
+ nextTick(() => {
101
+ if (!listening) return;
102
+ focusInitial();
103
+ });
104
+ }
105
+ function deactivate() {
106
+ if (!listening) return;
107
+ listening = false;
108
+ document.removeEventListener("keydown", onKeydown, true);
109
+ document.removeEventListener("focusin", onFocusIn, true);
110
+ const target = previouslyFocused;
111
+ previouslyFocused = null;
112
+ lastFocusedInside = null;
113
+ if (options.restoreFocus === false || !target) return;
114
+ if (!target.isConnected) return;
115
+ target.focus?.();
116
+ }
117
+ watch(() => Boolean(options.active?.() ?? true) && Boolean(container.value), (isActive) => {
118
+ if (isActive) activate();
119
+ else deactivate();
120
+ }, { immediate: true });
121
+ onScopeDispose(deactivate);
122
+ }
123
+ //#endregion
124
+ export { useFocusTrap };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFocusTrap.js","names":[],"sources":["../../src/composables/useFocusTrap.ts"],"sourcesContent":["import type { Ref } from 'vue'\nimport { nextTick, onScopeDispose, watch } from 'vue'\n\nimport { getFocusableElementsIn, isFocusable } from './internal/focusables'\n\nexport interface UseFocusTrapOptions {\n /**\n * Работает ли ловушка сейчас. Геттер, а не значение: модальное окно держит\n * фокус, только пока оно верхнее в стеке слоёв, — иначе нижнее окно отбирало\n * бы фокус у открытого поверх него.\n */\n active?: () => boolean\n /** Кому отдать фокус при активации. Не задан или не фокусируем — первый в контейнере. */\n initialFocus?: () => HTMLElement | null | undefined\n /**\n * Запасной приёмник фокуса, когда фокусировать внутри нечего: обычно сама\n * панель с `tabindex=\"-1\"`. Без него фокус остался бы снаружи, и Tab увёл бы\n * пользователя на страницу под окном.\n */\n fallbackFocus?: () => HTMLElement | null | undefined\n /**\n * Дополнительные корни, которые считаются частью слоя. Панель селекта,\n * открытого внутри окна, телепортирована в `body` и лежит вне поддерева\n * контейнера — без этого списка ловушка отбирала бы у неё фокус.\n */\n containers?: () => (HTMLElement | null | undefined)[]\n /**\n * Возвращать фокус туда, где он был до активации. По умолчанию — да.\n * Оверлеи пакета выключают: возврат делает стек слоёв по более строгому\n * правилу (только если фокус на момент закрытия ещё внутри слоя).\n */\n restoreFocus?: boolean\n}\n\n/**\n * Ловушка фокуса: пока активна, Tab ходит по кругу внутри слоя, а фокус,\n * утёкший наружу, возвращается обратно.\n *\n * Реализована на `keydown` и `focusin`, **без sentinel-узлов**: распространённый\n * подход с двумя focus-guard кнопками по краям кладёт в разметку интерактивные\n * элементы, а внутрь контейнера с ARIA-ролью их класть нельзя — роль объявляет\n * потомков презентационными (axe: `nested-interactive`).\n *\n * Слой из ловушки не выводится: порядок окон, Esc и `inert` — забота\n * `useOverlayLayer`. Композиция такая:\n *\n * ```ts\n * const layer = useOverlayLayer(open, close, { modal: true, root: panelRef })\n * useFocusTrap(panelRef, {\n * active: () => open.value && isTopmost.value,\n * containers: layer.rootsAbove,\n * })\n * ```\n */\nexport function useFocusTrap(\n container: Ref<HTMLElement | null>,\n options: UseFocusTrapOptions = {},\n): void {\n let previouslyFocused: HTMLElement | null = null\n let listening = false\n // Последний законный держатель фокуса: с него начинается возврат, когда\n // фокус ушёл в никуда (например, кликом по неинтерактивному фону).\n let lastFocusedInside: HTMLElement | null = null\n\n function roots(): HTMLElement[] {\n const extra = options.containers?.() ?? []\n return [container.value, ...extra].filter((root): root is HTMLElement => Boolean(root))\n }\n\n function contains(target: Node | null): boolean {\n if (!target) return false\n return roots().some(root => root === target || root.contains(target))\n }\n\n function focusables(): HTMLElement[] {\n return getFocusableElementsIn(roots())\n }\n\n function focusInitial(): void {\n // Фокус уже внутри слоя — его поставили осознанно: диалог наводит на свою\n // кнопку, окно ввода — на поле, и делают это в тот же такт, когда панель\n // появилась. `initialFocus` — дефолт слоя, а не приказ, поэтому такую\n // установку он не перебивает.\n if (contains(document.activeElement)) return\n\n const requested = options.initialFocus?.()\n if (requested && isFocusable(requested)) {\n requested.focus()\n return\n }\n\n const [first] = focusables()\n if (first) {\n first.focus()\n return\n }\n\n // Фокусировать нечего — забираем фокус на сам слой, иначе он останется\n // снаружи и Tab уведёт пользователя под окно.\n const fallback = options.fallbackFocus?.() ?? container.value\n fallback?.focus()\n }\n\n function onKeydown(event: KeyboardEvent): void {\n if (event.key !== 'Tab') return\n if (!contains(document.activeElement)) return\n\n const items = focusables()\n if (items.length === 0) {\n // Внутри некуда идти — держим фокус на слое, а не отпускаем на страницу.\n event.preventDefault()\n ;(options.fallbackFocus?.() ?? container.value)?.focus()\n return\n }\n\n const first = items[0]\n const last = items[items.length - 1]\n const active = document.activeElement as HTMLElement | null\n const index = active ? items.indexOf(active) : -1\n\n // Фокус на самой панели (`tabindex=\"-1\"`, в списке её нет): Tab обязан\n // войти внутрь, а не выпрыгнуть за слой.\n if (index === -1) {\n event.preventDefault()\n ;(event.shiftKey ? last : first).focus()\n return\n }\n\n if (event.shiftKey && active === first) {\n event.preventDefault()\n last.focus()\n return\n }\n\n if (!event.shiftKey && active === last) {\n event.preventDefault()\n first.focus()\n }\n }\n\n function onFocusIn(event: FocusEvent): void {\n const target = event.target as HTMLElement | null\n\n if (contains(target)) {\n lastFocusedInside = target\n return\n }\n\n // Фокус утёк наружу — программным `focus()`, кликом по фону или обходом\n // через адресную строку. Возвращаем его на последнее законное место.\n if (lastFocusedInside && contains(lastFocusedInside) && isFocusable(lastFocusedInside)) {\n lastFocusedInside.focus()\n return\n }\n\n focusInitial()\n }\n\n function activate(): void {\n if (listening) return\n if (typeof document === 'undefined') return\n listening = true\n\n previouslyFocused = (document.activeElement as HTMLElement) ?? null\n lastFocusedInside = null\n\n document.addEventListener('keydown', onKeydown, true)\n document.addEventListener('focusin', onFocusIn, true)\n\n // Ждём, пока Vue домонтирует содержимое слоя: до этого фокусировать нечего.\n void nextTick(() => {\n if (!listening) return\n focusInitial()\n })\n }\n\n function deactivate(): void {\n if (!listening) return\n listening = false\n\n document.removeEventListener('keydown', onKeydown, true)\n document.removeEventListener('focusin', onFocusIn, true)\n\n const target = previouslyFocused\n previouslyFocused = null\n lastFocusedInside = null\n\n if (options.restoreFocus === false || !target) return\n if (!target.isConnected) return\n target.focus?.()\n }\n\n watch(\n () => Boolean(options.active?.() ?? true) && Boolean(container.value),\n (isActive) => {\n if (isActive) activate()\n else deactivate()\n },\n { immediate: true },\n )\n\n onScopeDispose(deactivate)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAsDA,SAAgB,aACd,WACA,UAA+B,CAAC,GAC1B;CACN,IAAI,oBAAwC;CAC5C,IAAI,YAAY;CAGhB,IAAI,oBAAwC;CAE5C,SAAS,QAAuB;EAC9B,MAAM,QAAQ,QAAQ,aAAa,KAAK,CAAC;EACzC,OAAO,CAAC,UAAU,OAAO,GAAG,KAAK,CAAC,CAAC,QAAQ,SAA8B,QAAQ,IAAI,CAAC;CACxF;CAEA,SAAS,SAAS,QAA8B;EAC9C,IAAI,CAAC,QAAQ,OAAO;EACpB,OAAO,MAAM,CAAC,CAAC,MAAK,SAAQ,SAAS,UAAU,KAAK,SAAS,MAAM,CAAC;CACtE;CAEA,SAAS,aAA4B;EACnC,OAAO,uBAAuB,MAAM,CAAC;CACvC;CAEA,SAAS,eAAqB;EAK5B,IAAI,SAAS,SAAS,aAAa,GAAG;EAEtC,MAAM,YAAY,QAAQ,eAAe;EACzC,IAAI,aAAa,YAAY,SAAS,GAAG;GACvC,UAAU,MAAM;GAChB;EACF;EAEA,MAAM,CAAC,SAAS,WAAW;EAC3B,IAAI,OAAO;GACT,MAAM,MAAM;GACZ;EACF;EAKA,CADiB,QAAQ,gBAAgB,KAAK,UAAU,MAAA,EAC9C,MAAM;CAClB;CAEA,SAAS,UAAU,OAA4B;EAC7C,IAAI,MAAM,QAAQ,OAAO;EACzB,IAAI,CAAC,SAAS,SAAS,aAAa,GAAG;EAEvC,MAAM,QAAQ,WAAW;EACzB,IAAI,MAAM,WAAW,GAAG;GAEtB,MAAM,eAAe;GACpB,CAAC,QAAQ,gBAAgB,KAAK,UAAU,MAAA,EAAQ,MAAM;GACvD;EACF;EAEA,MAAM,QAAQ,MAAM;EACpB,MAAM,OAAO,MAAM,MAAM,SAAS;EAClC,MAAM,SAAS,SAAS;EAKxB,KAJc,SAAS,MAAM,QAAQ,MAAM,IAAI,QAIjC,IAAI;GAChB,MAAM,eAAe;GACpB,CAAC,MAAM,WAAW,OAAO,MAAA,CAAO,MAAM;GACvC;EACF;EAEA,IAAI,MAAM,YAAY,WAAW,OAAO;GACtC,MAAM,eAAe;GACrB,KAAK,MAAM;GACX;EACF;EAEA,IAAI,CAAC,MAAM,YAAY,WAAW,MAAM;GACtC,MAAM,eAAe;GACrB,MAAM,MAAM;EACd;CACF;CAEA,SAAS,UAAU,OAAyB;EAC1C,MAAM,SAAS,MAAM;EAErB,IAAI,SAAS,MAAM,GAAG;GACpB,oBAAoB;GACpB;EACF;EAIA,IAAI,qBAAqB,SAAS,iBAAiB,KAAK,YAAY,iBAAiB,GAAG;GACtF,kBAAkB,MAAM;GACxB;EACF;EAEA,aAAa;CACf;CAEA,SAAS,WAAiB;EACxB,IAAI,WAAW;EACf,IAAI,OAAO,aAAa,aAAa;EACrC,YAAY;EAEZ,oBAAqB,SAAS,iBAAiC;EAC/D,oBAAoB;EAEpB,SAAS,iBAAiB,WAAW,WAAW,IAAI;EACpD,SAAS,iBAAiB,WAAW,WAAW,IAAI;EAGpD,eAAoB;GAClB,IAAI,CAAC,WAAW;GAChB,aAAa;EACf,CAAC;CACH;CAEA,SAAS,aAAmB;EAC1B,IAAI,CAAC,WAAW;EAChB,YAAY;EAEZ,SAAS,oBAAoB,WAAW,WAAW,IAAI;EACvD,SAAS,oBAAoB,WAAW,WAAW,IAAI;EAEvD,MAAM,SAAS;EACf,oBAAoB;EACpB,oBAAoB;EAEpB,IAAI,QAAQ,iBAAiB,SAAS,CAAC,QAAQ;EAC/C,IAAI,CAAC,OAAO,aAAa;EACzB,OAAO,QAAQ;CACjB;CAEA,YACQ,QAAQ,QAAQ,SAAS,KAAK,IAAI,KAAK,QAAQ,UAAU,KAAK,IACnE,aAAa;EACZ,IAAI,UAAU,SAAS;OAClB,WAAW;CAClB,GACA,EAAE,WAAW,KAAK,CACpB;CAEA,eAAe,UAAU;AAC3B"}
@@ -0,0 +1,2 @@
1
+ import { a as useGrComponentProp, c as useGrThemeAttrs, i as useGrComponentDefaults, o as useGrComponentSize, r as resolveGrConfig, s as useGrConfig } from "../chunks/context-BSYR7RZs.js";
2
+ export { resolveGrConfig, useGrComponentDefaults, useGrComponentProp, useGrComponentSize, useGrConfig, useGrThemeAttrs };
@@ -0,0 +1,24 @@
1
+ import { n as useGrFormFieldContext } from "../chunks/context-DdNIxa1w.js";
2
+ import { computed } from "vue";
3
+ //#region src/composables/useGrFormControl.ts
4
+ /**
5
+ * @param source геттер собственных пропов контрола. Геттер, а не объект, —
6
+ * чтобы не терять реактивность на `props`.
7
+ */
8
+ function useGrFormControl(source = () => ({})) {
9
+ const field = useGrFormFieldContext();
10
+ const disabled = computed(() => Boolean(source().disabled) || Boolean(field?.disabled.value));
11
+ const readonly = computed(() => Boolean(source().readonly) || Boolean(field?.readonly.value));
12
+ return {
13
+ disabled,
14
+ readonly,
15
+ invalid: computed(() => Boolean(source().invalid) || Boolean(field?.invalid.value)),
16
+ required: computed(() => Boolean(source().required) || Boolean(field?.required.value)),
17
+ id: computed(() => field?.id.value),
18
+ labelId: computed(() => field?.labelId.value),
19
+ describedBy: computed(() => field?.describedById.value),
20
+ locked: computed(() => disabled.value || readonly.value)
21
+ };
22
+ }
23
+ //#endregion
24
+ export { useGrFormControl };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGrFormControl.js","names":[],"sources":["../../src/composables/useGrFormControl.ts"],"sourcesContent":["import type { ComputedRef } from 'vue'\nimport { computed } from 'vue'\n\nimport { useGrFormFieldContext } from '../components/GrFormField/context'\n\n/**\n * Общий контракт форм-контрола.\n *\n * До него каждый контрол решал одно и то же по-своему: `invalid` был то своим\n * пропом, то только контекстом, то не был реализован вовсе; `readonly` жил у\n * трёх контролов из пятнадцати, `required` — у двух. Из-за этого «форма только\n * на чтение» приходилось делать через `disabled`, а это меняет и семантику\n * (значение не уходит в форму), и контраст.\n *\n * Композабл сводит два источника — собственные пропы контрола и контекст\n * `GrFormField` — в одно состояние. Правило одно: **проп контрола сильнее**,\n * контекст работает как fallback. Исключение — `invalid`, `required` и\n * `disabled`: там источники складываются по «или», потому что поле может\n * объявить ошибку, о которой контрол не знает (правило формы), а форма —\n * выключить себя целиком на время отправки.\n */\n\nexport interface GrFormControlProps {\n /** Контрол недоступен: не фокусируется, значение не отправляется. */\n disabled?: boolean\n /** Значение видно и отправляется, но не редактируется. */\n readonly?: boolean\n /** Визуальное и ARIA-состояние ошибки. */\n invalid?: boolean\n /** Обязательное поле. */\n required?: boolean\n /** Доступное имя вне `GrFormField`. */\n ariaLabel?: string\n}\n\nexport interface GrFormControlState {\n /** Итоговый `disabled`. */\n disabled: ComputedRef<boolean>\n /** Итоговый `readonly`. */\n readonly: ComputedRef<boolean>\n /** Итоговый `invalid`: свой проп ИЛИ ошибка поля. */\n invalid: ComputedRef<boolean>\n /** Итоговый `required`: свой проп ИЛИ обязательность поля. */\n required: ComputedRef<boolean>\n /** Id контрола из поля (для `<label for>`). */\n id: ComputedRef<string | undefined>\n /** Id подписи поля — для виджетов с ARIA-ролью, к которым `<label for>` неприменим. */\n labelId: ComputedRef<string | undefined>\n /** `aria-describedby`: подсказка и/или текст ошибки поля. */\n describedBy: ComputedRef<string | undefined>\n /** `true`, когда контрол не принимает ввод (`disabled` или `readonly`). */\n locked: ComputedRef<boolean>\n}\n\n/**\n * @param source геттер собственных пропов контрола. Геттер, а не объект, —\n * чтобы не терять реактивность на `props`.\n */\nexport function useGrFormControl(source: () => GrFormControlProps = () => ({})): GrFormControlState {\n const field = useGrFormFieldContext()\n\n // Везде «или», а не `??`: у контролов эти пропы объявлены с дефолтом `false`,\n // и `??` до контекста просто не доходил бы — поле не смогло бы включить\n // `readonly` контролу, у которого свой проп не выставлен.\n const disabled = computed(() => Boolean(source().disabled) || Boolean(field?.disabled.value))\n const readonly = computed(() => Boolean(source().readonly) || Boolean(field?.readonly.value))\n const invalid = computed(() => Boolean(source().invalid) || Boolean(field?.invalid.value))\n const required = computed(() => Boolean(source().required) || Boolean(field?.required.value))\n\n return {\n disabled,\n readonly,\n invalid,\n required,\n id: computed(() => field?.id.value),\n labelId: computed(() => field?.labelId.value),\n describedBy: computed(() => field?.describedById.value),\n locked: computed(() => disabled.value || readonly.value),\n }\n}\n"],"mappings":";;;;;;;AA0DA,SAAgB,iBAAiB,gBAA0C,CAAC,IAAwB;CAClG,MAAM,QAAQ,sBAAsB;CAKpC,MAAM,WAAW,eAAe,QAAQ,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,OAAO,SAAS,KAAK,CAAC;CAC5F,MAAM,WAAW,eAAe,QAAQ,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,OAAO,SAAS,KAAK,CAAC;CAI5F,OAAO;EACL;EACA;EACA,SANc,eAAe,QAAQ,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,OAAO,QAAQ,KAAK,CAMtF;EACA,UANe,eAAe,QAAQ,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,OAAO,SAAS,KAAK,CAMzF;EACA,IAAI,eAAe,OAAO,GAAG,KAAK;EAClC,SAAS,eAAe,OAAO,QAAQ,KAAK;EAC5C,aAAa,eAAe,OAAO,cAAc,KAAK;EACtD,QAAQ,eAAe,SAAS,SAAS,SAAS,KAAK;CACzD;AACF"}
@@ -0,0 +1,2 @@
1
+ import { n as useGranularityTranslations } from "../chunks/granularityI18n-BC5zsj_d.js";
2
+ export { useGranularityTranslations };
@@ -0,0 +1,65 @@
1
+ import { i as removeOverlayLayer, r as pushOverlayLayer, t as layerRootsAbove } from "../chunks/overlayStack-C8cfsqXa.js";
2
+ import { nextTick, onUnmounted, watch } from "vue";
3
+ //#region src/composables/useOverlayLayer.ts
4
+ /**
5
+ * Регистрирует оверлей в общем стеке слоёв, пока `open` истинно.
6
+ *
7
+ * Один контракт на порядок Esc, `inert` и возврат фокуса — три механизма,
8
+ * которые обязаны видеть один и тот же порядок слоёв. Что берёт на себя:
9
+ *
10
+ * - **Esc** — верхнему слою, вниз не проваливается;
11
+ * - **`inert`** — через `onTopmostChange` у модальных слоёв;
12
+ * - **возврат фокуса** — по единому правилу (см. ниже).
13
+ *
14
+ * Чего **не** делает: фокус-ловушку — это `useFocusTrap`, отдельный примитив.
15
+ * Поповеру ловушка и не нужна: Tab обязан уводить фокус наружу и закрывать его,
16
+ * поэтому связка «слой + ловушка» собирается в компоненте, а не тут.
17
+ *
18
+ * Правило возврата фокуса: восстанавливаем, **только если на момент закрытия
19
+ * фокус всё ещё внутри слоя**. Если пользователь кликнул в другое поле, фокус
20
+ * уже там — забирать его обратно нельзя. Эвристика «возвращать, если открыли с
21
+ * клавиатуры» промахивается в обе стороны: мышью открытый слой фокус не вернёт,
22
+ * а клавиатурный отберёт его у того, куда пользователь ушёл сам.
23
+ */
24
+ function useOverlayLayer(open, onDismiss, options = {}) {
25
+ let layerId = null;
26
+ let previouslyFocused = null;
27
+ function register() {
28
+ if (layerId !== null) return;
29
+ if (typeof window === "undefined") return;
30
+ if (options.restoreFocus !== false && typeof document !== "undefined") previouslyFocused = document.activeElement ?? null;
31
+ layerId = pushOverlayLayer({
32
+ modal: typeof options.modal === "function" ? options.modal() : options.modal ?? false,
33
+ shouldClose: () => options.closeOnEscape?.() ?? true,
34
+ close: onDismiss,
35
+ setTopmost: options.onTopmostChange,
36
+ root: () => options.root?.value ?? null
37
+ });
38
+ }
39
+ function unregister() {
40
+ if (layerId === null) return;
41
+ removeOverlayLayer(layerId);
42
+ layerId = null;
43
+ restoreFocus();
44
+ }
45
+ function restoreFocus() {
46
+ const target = previouslyFocused;
47
+ previouslyFocused = null;
48
+ if (options.restoreFocus === false || !target) return;
49
+ if (typeof document === "undefined") return;
50
+ const active = document.activeElement;
51
+ const root = options.root?.value;
52
+ if (root && active && active !== document.body && !root.contains(active)) return;
53
+ nextTick(() => {
54
+ if (target.isConnected) target.focus?.();
55
+ });
56
+ }
57
+ watch(open, (isOpen) => {
58
+ if (isOpen) register();
59
+ else unregister();
60
+ }, { immediate: true });
61
+ onUnmounted(unregister);
62
+ return { rootsAbove: () => layerId === null ? [] : layerRootsAbove(layerId) };
63
+ }
64
+ //#endregion
65
+ export { useOverlayLayer };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOverlayLayer.js","names":[],"sources":["../../src/composables/useOverlayLayer.ts"],"sourcesContent":["import type { Ref } from 'vue'\nimport { nextTick, onUnmounted, watch } from 'vue'\n\nimport { layerRootsAbove, pushOverlayLayer, removeOverlayLayer } from './internal/overlayStack'\n\nexport interface UseOverlayLayerOptions {\n /**\n * Модальный слой: блокирует страницу, и модалки под ним получают `inert`.\n * Немодальные (поповеры, меню, подсказки) участвуют только в очереди Esc.\n * По умолчанию `false`.\n *\n * Геттером — там, где модальность включается пропом (`GrDrawer`): значение\n * читается в момент регистрации, то есть при каждом открытии.\n */\n modal?: boolean | (() => boolean)\n /**\n * Закрывать ли слой по Esc. Геттер, а не значение, — чтобы читать реактивный\n * проп (`closeOnEsc`). По умолчанию закрывается всегда.\n *\n * Если геттер вернёт `false`, нажатие всё равно не пройдёт на слой ниже:\n * пользователь видит верхним этот слой, и Esc адресован ему.\n */\n closeOnEscape?: () => boolean\n /**\n * Уведомление «этот модальный слой сейчас верхний». Компонент вешает по нему\n * `inert` на свой корень, когда перестал быть верхним.\n */\n onTopmostChange?: (isTopmost: boolean) => void\n /**\n * Возвращать фокус элементу, который был активен до открытия. По умолчанию —\n * да. Отключать имеет смысл там, где фокус с триггера и не уходил: `GrSelect`\n * ведёт список через `aria-activedescendant`.\n */\n restoreFocus?: boolean\n /**\n * Корень слоя. Нужен дважды: для правила возврата фокуса (если на момент\n * закрытия фокус уже вне слоя, пользователь ушёл сам — забирать нельзя) и\n * для ловушки фокуса слоя под ним, которая обязана считать этот корень\n * своим (панель селекта внутри модалки телепортирована в `body`).\n */\n root?: Ref<HTMLElement | null>\n}\n\nexport interface OverlayLayerHandle {\n /**\n * Корни слоёв, открытых поверх этого. Передаётся в `useFocusTrap` как\n * `containers`: пока панель, открытая изнутри окна, жива, фокус в ней\n * законен.\n */\n rootsAbove: () => HTMLElement[]\n}\n\n/**\n * Регистрирует оверлей в общем стеке слоёв, пока `open` истинно.\n *\n * Один контракт на порядок Esc, `inert` и возврат фокуса — три механизма,\n * которые обязаны видеть один и тот же порядок слоёв. Что берёт на себя:\n *\n * - **Esc** — верхнему слою, вниз не проваливается;\n * - **`inert`** — через `onTopmostChange` у модальных слоёв;\n * - **возврат фокуса** — по единому правилу (см. ниже).\n *\n * Чего **не** делает: фокус-ловушку — это `useFocusTrap`, отдельный примитив.\n * Поповеру ловушка и не нужна: Tab обязан уводить фокус наружу и закрывать его,\n * поэтому связка «слой + ловушка» собирается в компоненте, а не тут.\n *\n * Правило возврата фокуса: восстанавливаем, **только если на момент закрытия\n * фокус всё ещё внутри слоя**. Если пользователь кликнул в другое поле, фокус\n * уже там — забирать его обратно нельзя. Эвристика «возвращать, если открыли с\n * клавиатуры» промахивается в обе стороны: мышью открытый слой фокус не вернёт,\n * а клавиатурный отберёт его у того, куда пользователь ушёл сам.\n */\nexport function useOverlayLayer(\n open: Ref<boolean>,\n onDismiss: () => void,\n options: UseOverlayLayerOptions = {},\n): OverlayLayerHandle {\n let layerId: number | null = null\n let previouslyFocused: HTMLElement | null = null\n\n function register(): void {\n if (layerId !== null) return\n\n // Стек — браузерное понятие: Esc, `inert` и возврат фокуса на сервере\n // бессмысленны. Регистрируйся слой и там — он остался бы в модульном массиве\n // навсегда, потому что `onUnmounted` при `renderToString` не вызывается, и\n // каждый серверный рендер открытого оверлея копил бы замыкание со ссылками\n // на свои компоненты.\n if (typeof window === 'undefined') return\n\n if (options.restoreFocus !== false && typeof document !== 'undefined')\n previouslyFocused = (document.activeElement as HTMLElement) ?? null\n\n layerId = pushOverlayLayer({\n modal: typeof options.modal === 'function' ? options.modal() : options.modal ?? false,\n shouldClose: () => options.closeOnEscape?.() ?? true,\n close: onDismiss,\n setTopmost: options.onTopmostChange,\n root: () => options.root?.value ?? null,\n })\n }\n\n function unregister(): void {\n if (layerId === null) return\n removeOverlayLayer(layerId)\n layerId = null\n\n restoreFocus()\n }\n\n function restoreFocus(): void {\n const target = previouslyFocused\n previouslyFocused = null\n\n if (options.restoreFocus === false || !target) return\n if (typeof document === 'undefined') return\n\n // Фокус уже вне слоя — пользователь ушёл сам, отбирать нельзя. Решение\n // принимаем сейчас, пока слой ещё в DOM, а применяем следующим тиком.\n const active = document.activeElement\n const root = options.root?.value\n if (root && active && active !== document.body && !root.contains(active)) return\n\n // Возврат откладывается намеренно: ловушка фокуса того же слоя снимает свои\n // слушатели в этом же флаше, и сфокусируй мы триггер сразу — она затащила бы\n // фокус обратно в закрывающийся слой.\n void nextTick(() => {\n if (target.isConnected) target.focus?.()\n })\n }\n\n watch(\n open,\n (isOpen) => {\n if (isOpen) register()\n else unregister()\n },\n { immediate: true },\n )\n\n onUnmounted(unregister)\n\n return {\n rootsAbove: () => (layerId === null ? [] : layerRootsAbove(layerId)),\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAwEA,SAAgB,gBACd,MACA,WACA,UAAkC,CAAC,GACf;CACpB,IAAI,UAAyB;CAC7B,IAAI,oBAAwC;CAE5C,SAAS,WAAiB;EACxB,IAAI,YAAY,MAAM;EAOtB,IAAI,OAAO,WAAW,aAAa;EAEnC,IAAI,QAAQ,iBAAiB,SAAS,OAAO,aAAa,aACxD,oBAAqB,SAAS,iBAAiC;EAEjE,UAAU,iBAAiB;GACzB,OAAO,OAAO,QAAQ,UAAU,aAAa,QAAQ,MAAM,IAAI,QAAQ,SAAS;GAChF,mBAAmB,QAAQ,gBAAgB,KAAK;GAChD,OAAO;GACP,YAAY,QAAQ;GACpB,YAAY,QAAQ,MAAM,SAAS;EACrC,CAAC;CACH;CAEA,SAAS,aAAmB;EAC1B,IAAI,YAAY,MAAM;EACtB,mBAAmB,OAAO;EAC1B,UAAU;EAEV,aAAa;CACf;CAEA,SAAS,eAAqB;EAC5B,MAAM,SAAS;EACf,oBAAoB;EAEpB,IAAI,QAAQ,iBAAiB,SAAS,CAAC,QAAQ;EAC/C,IAAI,OAAO,aAAa,aAAa;EAIrC,MAAM,SAAS,SAAS;EACxB,MAAM,OAAO,QAAQ,MAAM;EAC3B,IAAI,QAAQ,UAAU,WAAW,SAAS,QAAQ,CAAC,KAAK,SAAS,MAAM,GAAG;EAK1E,eAAoB;GAClB,IAAI,OAAO,aAAa,OAAO,QAAQ;EACzC,CAAC;CACH;CAEA,MACE,OACC,WAAW;EACV,IAAI,QAAQ,SAAS;OAChB,WAAW;CAClB,GACA,EAAE,WAAW,KAAK,CACpB;CAEA,YAAY,UAAU;CAEtB,OAAO,EACL,kBAAmB,YAAY,OAAO,CAAC,IAAI,gBAAgB,OAAO,EACpE;AACF"}
@@ -0,0 +1,2 @@
1
+ import { t as usePortalTarget } from "../chunks/usePortalTarget-RyzEgNTb.js";
2
+ export { usePortalTarget };
@@ -0,0 +1,150 @@
1
+ import { computed, ref } from "vue";
2
+ //#region src/composables/useRovingFocus.ts
3
+ function useRovingFocus(options) {
4
+ const activeKey = ref();
5
+ const orientation = () => options.orientation?.() ?? "vertical";
6
+ const wraps = () => options.wrap?.() ?? true;
7
+ const skips = () => options.skipDisabled?.() ?? false;
8
+ const disabled = (key) => options.isDisabled?.(key) ?? false;
9
+ function firstFocusable(items) {
10
+ if (!skips()) return items[0];
11
+ return items.find((key) => !disabled(key)) ?? items[0];
12
+ }
13
+ /**
14
+ * Роверный элемент. Порядок: явно активный (если ещё в наборе) → стартовый →
15
+ * первый доступный. Именно здесь живёт инвариант «ровно один `tabindex=0`»:
16
+ * пока набор непуст, ответ не бывает пустым.
17
+ */
18
+ const rovingKey = computed(() => {
19
+ const items = options.items();
20
+ if (items.length === 0) return void 0;
21
+ const active = activeKey.value;
22
+ if (active !== void 0 && items.includes(active)) return active;
23
+ const initial = options.initialKey?.();
24
+ if (initial !== void 0 && items.includes(initial)) return initial;
25
+ return firstFocusable(items);
26
+ });
27
+ function tabindexFor(key) {
28
+ return rovingKey.value === key ? 0 : -1;
29
+ }
30
+ function setActive(key) {
31
+ activeKey.value = key;
32
+ }
33
+ function reset() {
34
+ activeKey.value = void 0;
35
+ }
36
+ function focusKey(key) {
37
+ const previous = rovingKey.value;
38
+ activeKey.value = key;
39
+ if (key !== previous) options.onMove?.(key, previous);
40
+ const focusNow = () => {
41
+ options.elementFor(key)?.focus();
42
+ };
43
+ const pending = options.beforeFocus?.(key);
44
+ if (pending && typeof pending.then === "function") return pending.then(focusNow);
45
+ focusNow();
46
+ return Promise.resolve();
47
+ }
48
+ /**
49
+ * Индекс цели после сдвига. `undefined` — движение невозможно: упёрлись в
50
+ * край без зацикливания либо весь набор выключен.
51
+ */
52
+ function targetIndex(from, delta) {
53
+ const items = options.items();
54
+ const len = items.length;
55
+ if (len === 0 || delta === 0) return void 0;
56
+ let index = from;
57
+ for (let attempt = 0; attempt < len; attempt += 1) {
58
+ const next = index + delta;
59
+ if (next < 0 || next >= len) {
60
+ if (!wraps()) return void 0;
61
+ index = (next % len + len) % len;
62
+ } else index = next;
63
+ if (!skips() || !disabled(items[index])) return index;
64
+ }
65
+ }
66
+ function currentIndex() {
67
+ const items = options.items();
68
+ const key = rovingKey.value;
69
+ return key === void 0 ? -1 : items.indexOf(key);
70
+ }
71
+ function moveBy(delta) {
72
+ const items = options.items();
73
+ const from = currentIndex();
74
+ if (from < 0) return false;
75
+ const target = targetIndex(from, delta);
76
+ if (target === void 0) {
77
+ const edge = delta > 0 ? "end" : "start";
78
+ return options.onOverflow?.(edge, delta) ?? false;
79
+ }
80
+ focusKey(items[target]);
81
+ return true;
82
+ }
83
+ function rowBounds(index) {
84
+ const len = options.items().length;
85
+ const width = Math.max(1, options.columns?.() ?? len);
86
+ const row = Math.floor(index / width);
87
+ return [row * width, Math.min(row * width + width - 1, len - 1)];
88
+ }
89
+ function moveToEdge(edge) {
90
+ const items = options.items();
91
+ if (items.length === 0) return false;
92
+ const from = currentIndex();
93
+ const [start, end] = orientation() === "grid" && from >= 0 ? rowBounds(from) : [0, items.length - 1];
94
+ const target = edge === "start" ? start : end;
95
+ if (!skips()) {
96
+ focusKey(items[target]);
97
+ return true;
98
+ }
99
+ const direction = edge === "start" ? 1 : -1;
100
+ for (let index = target; index >= start && index <= end; index += direction) {
101
+ const key = items[index];
102
+ if (!disabled(key)) {
103
+ focusKey(key);
104
+ return true;
105
+ }
106
+ }
107
+ return false;
108
+ }
109
+ /** Шаг вперёд/назад по объявленной ориентации; `0` — клавиша этой оси не касается. */
110
+ function deltaForKey(key) {
111
+ const mode = orientation();
112
+ const columns = Math.max(1, options.columns?.() ?? 1);
113
+ switch (key) {
114
+ case "ArrowRight": return mode === "vertical" ? 0 : 1;
115
+ case "ArrowLeft": return mode === "vertical" ? 0 : -1;
116
+ case "ArrowDown":
117
+ if (mode === "horizontal") return 0;
118
+ return mode === "grid" ? columns : 1;
119
+ case "ArrowUp":
120
+ if (mode === "horizontal") return 0;
121
+ return mode === "grid" ? -columns : -1;
122
+ default: return 0;
123
+ }
124
+ }
125
+ function handleNavigationKeys(event) {
126
+ if (event.altKey || event.ctrlKey || event.metaKey) return false;
127
+ if (event.key === "Home" || event.key === "End") {
128
+ const moved = moveToEdge(event.key === "Home" ? "start" : "end");
129
+ if (moved) event.preventDefault();
130
+ return moved;
131
+ }
132
+ const delta = deltaForKey(event.key);
133
+ if (delta === 0) return false;
134
+ const moved = moveBy(delta);
135
+ if (moved) event.preventDefault();
136
+ return moved;
137
+ }
138
+ return {
139
+ rovingKey,
140
+ tabindexFor,
141
+ setActive,
142
+ reset,
143
+ focusKey,
144
+ moveBy,
145
+ moveToEdge,
146
+ handleNavigationKeys
147
+ };
148
+ }
149
+ //#endregion
150
+ export { useRovingFocus };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRovingFocus.js","names":[],"sources":["../../src/composables/useRovingFocus.ts"],"sourcesContent":["import type { ComputedRef, Ref } from 'vue'\nimport { computed, ref } from 'vue'\n\n/**\n * Roving tabindex: группа — одна остановка `Tab`, внутрь заходят стрелками.\n *\n * Механика написана в пакете шесть раз (`GrDropdownMenu`, `GrTree`, `GrTabs`,\n * `GrSegmented`, `GrRadio`, `GrInputTag`) и разошлась не стилистически, а по\n * существу: у одних кольцо зациклено, у других упирается в края; одни\n * пропускают выключенные элементы, другие намеренно нет; адресуются то\n * индексом, то ключом, то значением. Каждое расхождение здесь стало опцией —\n * поэтому опций много, и это дешевле, чем седьмая копия.\n *\n * Осознанно **не** обобщается активация: `Enter`/`Space` и «двигает ли стрелка\n * выбор» — доменная логика компонента. У `GrSegmented` и `GrRadio` стрелка\n * меняет значение, у `GrTree` и `GrInputTag` — нет, у `GrTabs` это проп.\n * Примитив ведёт фокус и отдаёт `onMove`; что делать с переездом, решает\n * компонент.\n *\n * Инвариант «ровно один элемент с `tabindex=\"0\"`» держит `rovingKey`: это\n * `computed`, а не `ref`, поэтому при смене набора он самокорректируется в\n * момент чтения. Отдельная нормализация с `watch(..., { flush: 'sync' })`,\n * как в `GrTree`, больше не нужна.\n */\n\n/** Какие стрелки ведут по набору. */\nexport type GrRovingOrientation = 'horizontal' | 'vertical' | 'both' | 'grid'\n\n/** Край набора, в который упёрлось движение. */\nexport type GrRovingEdge = 'start' | 'end'\n\nexport interface UseRovingFocusOptions<TKey> {\n /** Ключи элементов в порядке отображения. Индекс, значение, opaque-ключ — что угодно сравнимое по `===`. */\n items: () => readonly TKey[]\n /**\n * DOM-узел элемента. Массив ref-ов, `Map`, `querySelector` — примитиву\n * безразлично, знать раскладку обязан компонент.\n */\n elementFor: (key: TKey) => HTMLElement | null | undefined\n /** Выключен ли элемент. Спрашивается только при `skipDisabled`. */\n isDisabled?: (key: TKey) => boolean\n /** По умолчанию `vertical`. */\n orientation?: () => GrRovingOrientation\n /** Ширина строки для `orientation: 'grid'`. Игнорируется в остальных режимах. */\n columns?: () => number\n /** Замкнуто ли кольцо. По умолчанию `true`. */\n wrap?: () => boolean\n /**\n * Пропускать выключенные при движении. По умолчанию `false`: в паттерне\n * `menu` выключенный пункт остаётся в обходе намеренно — `aria-disabled`\n * оставляет его фокусируемым, чтобы скринридер прочёл, что он есть.\n */\n skipDisabled?: () => boolean\n /**\n * Стартовый элемент, когда фокус в группе ещё не был — обычно выбранное\n * значение.\n *\n * **Выключенность здесь не проверяется, и это не упущение.** Проверить её\n * автоматически по `isDisabled` нельзя: у `GrSegmented` загружающийся сегмент\n * остановку `Tab` сохраняет, хотя для движения заблокирован, а у `GrRadio`\n * выключенный переключатель терять её обязан. Условие знает только вызывающий,\n * поэтому геттер обязан вернуть `undefined` для значения, которое не может\n * принять фокус. Забыть об этом — значит оставить группу без остановки `Tab`\n * вовсе: элемент с `tabindex=\"0\"` будет назначен, но отрисует `-1`.\n */\n initialKey?: () => TKey | undefined\n /**\n * Позиция переехала — компонент решает, менять ли заодно выбор. Вызывается\n * **до** переноса фокуса: в `radiogroup` стрелка переносит выбор, и модель\n * обязана примениться раньше, чем сфокусируется целевой элемент.\n */\n onMove?: (key: TKey, previous: TKey | undefined) => void\n /**\n * Движение упёрлось в край при `wrap: false`. Вернул `true` — считаем клавишу\n * обработанной (кольцо `GrInputTag` так отдаёт фокус полю ввода, календарь —\n * листает месяц).\n */\n onOverflow?: (edge: GrRovingEdge, delta: number) => boolean\n /**\n * Донести элемент до экрана перед фокусом: виртуализация, `scrollIntoView`,\n * ожидание перерисовки после `onMove`. Вернул промис — фокус ждёт ровно его,\n * без добавленных примитивом тиков; вернул `undefined` — фокус остаётся\n * синхронным, чтобы не менять тайминг у компонентов, которые на него\n * полагаются.\n */\n beforeFocus?: (key: TKey) => void | Promise<void>\n}\n\nexport interface UseRovingFocusReturn<TKey> {\n /** Элемент, который держит `tabindex=\"0\"`. Никогда не «никто» при непустом наборе. */\n rovingKey: ComputedRef<TKey | undefined>\n /** `0` для роверного элемента, `-1` для всех остальных. */\n tabindexFor: (key: TKey) => 0 | -1\n /** Сделать активным без переноса фокуса — для синхронизации с мышью (`@focus`, `@click`). */\n setActive: (key: TKey) => void\n /**\n * Забыть явно наведённый фокус: остановка `Tab` возвращается к производной\n * (`initialKey` → первый доступный). Нужно, когда набор опустел, — иначе\n * устаревший ключ всплывёт, как только элементы появятся снова.\n */\n reset: () => void\n /** Сделать активным и перенести фокус. */\n focusKey: (key: TKey) => Promise<void>\n /** Сдвиг на `delta` позиций от текущего. Вернёт `false`, если движение не состоялось. */\n moveBy: (delta: number) => boolean\n /** На край набора (в `grid` — на край текущей строки). */\n moveToEdge: (edge: GrRovingEdge) => boolean\n /**\n * Стрелки, `Home`, `End` по объявленной ориентации. Возвращает `true`, если\n * клавиша обработана (с `preventDefault`) — остальное компонент разбирает сам.\n */\n handleNavigationKeys: (event: KeyboardEvent) => boolean\n}\n\nexport function useRovingFocus<TKey>(\n options: UseRovingFocusOptions<TKey>,\n): UseRovingFocusReturn<TKey> {\n const activeKey: Ref<TKey | undefined> = ref()\n\n const orientation = (): GrRovingOrientation => options.orientation?.() ?? 'vertical'\n const wraps = (): boolean => options.wrap?.() ?? true\n const skips = (): boolean => options.skipDisabled?.() ?? false\n const disabled = (key: TKey): boolean => options.isDisabled?.(key) ?? false\n\n function firstFocusable(items: readonly TKey[]): TKey | undefined {\n if (!skips()) return items[0]\n return items.find(key => !disabled(key)) ?? items[0]\n }\n\n /**\n * Роверный элемент. Порядок: явно активный (если ещё в наборе) → стартовый →\n * первый доступный. Именно здесь живёт инвариант «ровно один `tabindex=0`»:\n * пока набор непуст, ответ не бывает пустым.\n */\n const rovingKey = computed<TKey | undefined>(() => {\n const items = options.items()\n if (items.length === 0) return undefined\n\n const active = activeKey.value\n if (active !== undefined && items.includes(active)) return active\n\n const initial = options.initialKey?.()\n if (initial !== undefined && items.includes(initial)) return initial\n\n return firstFocusable(items)\n })\n\n function tabindexFor(key: TKey): 0 | -1 {\n return rovingKey.value === key ? 0 : -1\n }\n\n function setActive(key: TKey): void {\n activeKey.value = key\n }\n\n function reset(): void {\n activeKey.value = undefined\n }\n\n function focusKey(key: TKey): Promise<void> {\n const previous = rovingKey.value\n activeKey.value = key\n\n // Состояние — до фокуса: `onMove` часто меняет модель (в `radiogroup`\n // стрелка переносит выбор), и компонент вправе рассчитывать, что к моменту\n // фокуса оно уже применено.\n if (key !== previous) options.onMove?.(key, previous)\n\n const focusNow = (): void => {\n options.elementFor(key)?.focus()\n }\n\n const pending = options.beforeFocus?.(key)\n if (pending && typeof pending.then === 'function') {\n return pending.then(focusNow)\n }\n\n focusNow()\n return Promise.resolve()\n }\n\n /**\n * Индекс цели после сдвига. `undefined` — движение невозможно: упёрлись в\n * край без зацикливания либо весь набор выключен.\n */\n function targetIndex(from: number, delta: number): number | undefined {\n const items = options.items()\n const len = items.length\n if (len === 0 || delta === 0) return undefined\n\n let index = from\n\n // Шагов не больше размера набора: полный оборот без единого доступного\n // элемента означает, что двигаться некуда. Шаг на каждой итерации тот же —\n // выключенный элемент в сетке перешагивается по вертикали, сохраняя\n // колонку; прыжок «вбок» был бы неожиданным.\n for (let attempt = 0; attempt < len; attempt += 1) {\n const next = index + delta\n\n if (next < 0 || next >= len) {\n if (!wraps()) return undefined\n // Зацикливание по модулю набора. Колонку это сохраняет, когда длина\n // кратна ширине строки — у календарной сетки 42 = 6 × 7 так и есть.\n index = ((next % len) + len) % len\n }\n else {\n index = next\n }\n\n if (!skips() || !disabled(items[index])) return index\n }\n\n return undefined\n }\n\n function currentIndex(): number {\n const items = options.items()\n const key = rovingKey.value\n return key === undefined ? -1 : items.indexOf(key)\n }\n\n function moveBy(delta: number): boolean {\n const items = options.items()\n // `rovingKey` пуст только при пустом наборе — двигаться нечем.\n const from = currentIndex()\n if (from < 0) return false\n\n const target = targetIndex(from, delta)\n if (target === undefined) {\n const edge: GrRovingEdge = delta > 0 ? 'end' : 'start'\n return options.onOverflow?.(edge, delta) ?? false\n }\n\n void focusKey(items[target])\n return true\n }\n\n function rowBounds(index: number): [number, number] {\n const len = options.items().length\n const width = Math.max(1, options.columns?.() ?? len)\n const row = Math.floor(index / width)\n return [row * width, Math.min(row * width + width - 1, len - 1)]\n }\n\n function moveToEdge(edge: GrRovingEdge): boolean {\n const items = options.items()\n if (items.length === 0) return false\n\n const from = currentIndex()\n // В сетке `Home`/`End` — края строки (в календаре это начало и конец\n // недели); в линейных режимах — края всего набора.\n const [start, end] = orientation() === 'grid' && from >= 0\n ? rowBounds(from)\n : [0, items.length - 1]\n\n const target = edge === 'start' ? start : end\n if (!skips()) {\n void focusKey(items[target])\n return true\n }\n\n const direction = edge === 'start' ? 1 : -1\n for (let index = target; index >= start && index <= end; index += direction) {\n const key = items[index]\n if (!disabled(key)) {\n void focusKey(key)\n return true\n }\n }\n return false\n }\n\n /** Шаг вперёд/назад по объявленной ориентации; `0` — клавиша этой оси не касается. */\n function deltaForKey(key: string): number {\n const mode = orientation()\n const columns = Math.max(1, options.columns?.() ?? 1)\n\n switch (key) {\n case 'ArrowRight':\n return mode === 'vertical' ? 0 : 1\n case 'ArrowLeft':\n return mode === 'vertical' ? 0 : -1\n case 'ArrowDown':\n if (mode === 'horizontal') return 0\n return mode === 'grid' ? columns : 1\n case 'ArrowUp':\n if (mode === 'horizontal') return 0\n return mode === 'grid' ? -columns : -1\n default:\n return 0\n }\n }\n\n function handleNavigationKeys(event: KeyboardEvent): boolean {\n if (event.altKey || event.ctrlKey || event.metaKey) return false\n\n if (event.key === 'Home' || event.key === 'End') {\n const moved = moveToEdge(event.key === 'Home' ? 'start' : 'end')\n if (moved) event.preventDefault()\n return moved\n }\n\n const delta = deltaForKey(event.key)\n if (delta === 0) return false\n\n const moved = moveBy(delta)\n if (moved) event.preventDefault()\n return moved\n }\n\n return { rovingKey, tabindexFor, setActive, reset, focusKey, moveBy, moveToEdge, handleNavigationKeys }\n}\n"],"mappings":";;AAkHA,SAAgB,eACd,SAC4B;CAC5B,MAAM,YAAmC,IAAI;CAE7C,MAAM,oBAAyC,QAAQ,cAAc,KAAK;CAC1E,MAAM,cAAuB,QAAQ,OAAO,KAAK;CACjD,MAAM,cAAuB,QAAQ,eAAe,KAAK;CACzD,MAAM,YAAY,QAAuB,QAAQ,aAAa,GAAG,KAAK;CAEtE,SAAS,eAAe,OAA0C;EAChE,IAAI,CAAC,MAAM,GAAG,OAAO,MAAM;EAC3B,OAAO,MAAM,MAAK,QAAO,CAAC,SAAS,GAAG,CAAC,KAAK,MAAM;CACpD;;;;;;CAOA,MAAM,YAAY,eAAiC;EACjD,MAAM,QAAQ,QAAQ,MAAM;EAC5B,IAAI,MAAM,WAAW,GAAG,OAAO,KAAA;EAE/B,MAAM,SAAS,UAAU;EACzB,IAAI,WAAW,KAAA,KAAa,MAAM,SAAS,MAAM,GAAG,OAAO;EAE3D,MAAM,UAAU,QAAQ,aAAa;EACrC,IAAI,YAAY,KAAA,KAAa,MAAM,SAAS,OAAO,GAAG,OAAO;EAE7D,OAAO,eAAe,KAAK;CAC7B,CAAC;CAED,SAAS,YAAY,KAAmB;EACtC,OAAO,UAAU,UAAU,MAAM,IAAI;CACvC;CAEA,SAAS,UAAU,KAAiB;EAClC,UAAU,QAAQ;CACpB;CAEA,SAAS,QAAc;EACrB,UAAU,QAAQ,KAAA;CACpB;CAEA,SAAS,SAAS,KAA0B;EAC1C,MAAM,WAAW,UAAU;EAC3B,UAAU,QAAQ;EAKlB,IAAI,QAAQ,UAAU,QAAQ,SAAS,KAAK,QAAQ;EAEpD,MAAM,iBAAuB;GAC3B,QAAQ,WAAW,GAAG,CAAC,EAAE,MAAM;EACjC;EAEA,MAAM,UAAU,QAAQ,cAAc,GAAG;EACzC,IAAI,WAAW,OAAO,QAAQ,SAAS,YACrC,OAAO,QAAQ,KAAK,QAAQ;EAG9B,SAAS;EACT,OAAO,QAAQ,QAAQ;CACzB;;;;;CAMA,SAAS,YAAY,MAAc,OAAmC;EACpE,MAAM,QAAQ,QAAQ,MAAM;EAC5B,MAAM,MAAM,MAAM;EAClB,IAAI,QAAQ,KAAK,UAAU,GAAG,OAAO,KAAA;EAErC,IAAI,QAAQ;EAMZ,KAAK,IAAI,UAAU,GAAG,UAAU,KAAK,WAAW,GAAG;GACjD,MAAM,OAAO,QAAQ;GAErB,IAAI,OAAO,KAAK,QAAQ,KAAK;IAC3B,IAAI,CAAC,MAAM,GAAG,OAAO,KAAA;IAGrB,SAAU,OAAO,MAAO,OAAO;GACjC,OAEE,QAAQ;GAGV,IAAI,CAAC,MAAM,KAAK,CAAC,SAAS,MAAM,MAAM,GAAG,OAAO;EAClD;CAGF;CAEA,SAAS,eAAuB;EAC9B,MAAM,QAAQ,QAAQ,MAAM;EAC5B,MAAM,MAAM,UAAU;EACtB,OAAO,QAAQ,KAAA,IAAY,KAAK,MAAM,QAAQ,GAAG;CACnD;CAEA,SAAS,OAAO,OAAwB;EACtC,MAAM,QAAQ,QAAQ,MAAM;EAE5B,MAAM,OAAO,aAAa;EAC1B,IAAI,OAAO,GAAG,OAAO;EAErB,MAAM,SAAS,YAAY,MAAM,KAAK;EACtC,IAAI,WAAW,KAAA,GAAW;GACxB,MAAM,OAAqB,QAAQ,IAAI,QAAQ;GAC/C,OAAO,QAAQ,aAAa,MAAM,KAAK,KAAK;EAC9C;EAEA,SAAc,MAAM,OAAO;EAC3B,OAAO;CACT;CAEA,SAAS,UAAU,OAAiC;EAClD,MAAM,MAAM,QAAQ,MAAM,CAAC,CAAC;EAC5B,MAAM,QAAQ,KAAK,IAAI,GAAG,QAAQ,UAAU,KAAK,GAAG;EACpD,MAAM,MAAM,KAAK,MAAM,QAAQ,KAAK;EACpC,OAAO,CAAC,MAAM,OAAO,KAAK,IAAI,MAAM,QAAQ,QAAQ,GAAG,MAAM,CAAC,CAAC;CACjE;CAEA,SAAS,WAAW,MAA6B;EAC/C,MAAM,QAAQ,QAAQ,MAAM;EAC5B,IAAI,MAAM,WAAW,GAAG,OAAO;EAE/B,MAAM,OAAO,aAAa;EAG1B,MAAM,CAAC,OAAO,OAAO,YAAY,MAAM,UAAU,QAAQ,IACrD,UAAU,IAAI,IACd,CAAC,GAAG,MAAM,SAAS,CAAC;EAExB,MAAM,SAAS,SAAS,UAAU,QAAQ;EAC1C,IAAI,CAAC,MAAM,GAAG;GACZ,SAAc,MAAM,OAAO;GAC3B,OAAO;EACT;EAEA,MAAM,YAAY,SAAS,UAAU,IAAI;EACzC,KAAK,IAAI,QAAQ,QAAQ,SAAS,SAAS,SAAS,KAAK,SAAS,WAAW;GAC3E,MAAM,MAAM,MAAM;GAClB,IAAI,CAAC,SAAS,GAAG,GAAG;IAClB,SAAc,GAAG;IACjB,OAAO;GACT;EACF;EACA,OAAO;CACT;;CAGA,SAAS,YAAY,KAAqB;EACxC,MAAM,OAAO,YAAY;EACzB,MAAM,UAAU,KAAK,IAAI,GAAG,QAAQ,UAAU,KAAK,CAAC;EAEpD,QAAQ,KAAR;GACE,KAAK,cACH,OAAO,SAAS,aAAa,IAAI;GACnC,KAAK,aACH,OAAO,SAAS,aAAa,IAAI;GACnC,KAAK;IACH,IAAI,SAAS,cAAc,OAAO;IAClC,OAAO,SAAS,SAAS,UAAU;GACrC,KAAK;IACH,IAAI,SAAS,cAAc,OAAO;IAClC,OAAO,SAAS,SAAS,CAAC,UAAU;GACtC,SACE,OAAO;EACX;CACF;CAEA,SAAS,qBAAqB,OAA+B;EAC3D,IAAI,MAAM,UAAU,MAAM,WAAW,MAAM,SAAS,OAAO;EAE3D,IAAI,MAAM,QAAQ,UAAU,MAAM,QAAQ,OAAO;GAC/C,MAAM,QAAQ,WAAW,MAAM,QAAQ,SAAS,UAAU,KAAK;GAC/D,IAAI,OAAO,MAAM,eAAe;GAChC,OAAO;EACT;EAEA,MAAM,QAAQ,YAAY,MAAM,GAAG;EACnC,IAAI,UAAU,GAAG,OAAO;EAExB,MAAM,QAAQ,OAAO,KAAK;EAC1B,IAAI,OAAO,MAAM,eAAe;EAChC,OAAO;CACT;CAEA,OAAO;EAAE;EAAW;EAAa;EAAW;EAAO;EAAU;EAAQ;EAAY;CAAqB;AACxG"}