@feugene/granularity 0.48.0 → 0.50.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 (418) hide show
  1. package/README.md +3 -3
  2. package/dist/chunks/chevron-up-BhW6hi8L.js +23 -0
  3. package/dist/chunks/chevron-up-BhW6hi8L.js.map +1 -0
  4. package/dist/chunks/{config-E1cTyRVV.js → config-8n1VR0ju.js} +1 -1
  5. package/dist/chunks/{config-E1cTyRVV.js.map → config-8n1VR0ju.js.map} +1 -1
  6. package/dist/chunks/{config-2vrOFn2f.js → config-AKpLyIGD.js} +2 -2
  7. package/dist/chunks/{config-2vrOFn2f.js.map → config-AKpLyIGD.js.map} +1 -1
  8. package/dist/chunks/{config-DIDz_E5m.js → config-B34mkd53.js} +66 -1
  9. package/dist/chunks/config-B34mkd53.js.map +1 -0
  10. package/dist/chunks/{config-B5SBUa6u.js → config-B7qZqiUB.js} +28 -1
  11. package/dist/chunks/config-B7qZqiUB.js.map +1 -0
  12. package/dist/chunks/config-BBrPUEye.js +8 -0
  13. package/dist/chunks/config-BBrPUEye.js.map +1 -0
  14. package/dist/chunks/config-BBtBQE3s.js +108 -0
  15. package/dist/chunks/config-BBtBQE3s.js.map +1 -0
  16. package/dist/chunks/{config-CT4lP6S4.js → config-BOCzHqWh.js} +2 -2
  17. package/dist/chunks/{config-CT4lP6S4.js.map → config-BOCzHqWh.js.map} +1 -1
  18. package/dist/chunks/{config-iemgzS4x.js → config-BP1ktzwh.js} +2 -24
  19. package/dist/chunks/config-BP1ktzwh.js.map +1 -0
  20. package/dist/chunks/config-BTxmdRzT.js +28 -0
  21. package/dist/chunks/config-BTxmdRzT.js.map +1 -0
  22. package/dist/chunks/{config-CjWOTgLL.js → config-Bk52xd5l.js} +12 -5
  23. package/dist/chunks/config-Bk52xd5l.js.map +1 -0
  24. package/dist/chunks/{config-D3HOuHDe.js → config-C3SqBqSQ.js} +3 -1
  25. package/dist/chunks/config-C3SqBqSQ.js.map +1 -0
  26. package/dist/chunks/{config-2ZHRsdOc.js → config-C3uqd-sW.js} +1 -1
  27. package/dist/chunks/config-C3uqd-sW.js.map +1 -0
  28. package/dist/chunks/{config-BXRmsn3t.js → config-CPhcZzHi.js} +72 -10
  29. package/dist/chunks/config-CPhcZzHi.js.map +1 -0
  30. package/dist/chunks/config-CWtfxkM9.js.map +1 -1
  31. package/dist/chunks/{config--t2dxj0t.js → config-CmLTCmY9.js} +2 -2
  32. package/dist/chunks/{config--t2dxj0t.js.map → config-CmLTCmY9.js.map} +1 -1
  33. package/dist/chunks/{config-BAse0laT.js → config-CvtqB4ki.js} +8 -3
  34. package/dist/chunks/config-CvtqB4ki.js.map +1 -0
  35. package/dist/chunks/{config-BcXX7S7B.js → config-D-JgqV0J.js} +5 -1
  36. package/dist/chunks/{config-BcXX7S7B.js.map → config-D-JgqV0J.js.map} +1 -1
  37. package/dist/chunks/{config-BHLMTJaR.js → config-D1oVht-E.js} +8 -3
  38. package/dist/chunks/config-D1oVht-E.js.map +1 -0
  39. package/dist/chunks/{config-BscVxZR3.js → config-DF1ezU6y.js} +1 -1
  40. package/dist/chunks/{config-BscVxZR3.js.map → config-DF1ezU6y.js.map} +1 -1
  41. package/dist/chunks/{config-B42iJ48O.js → config-DG41PD9i.js} +13 -1
  42. package/dist/chunks/config-DG41PD9i.js.map +1 -0
  43. package/dist/chunks/{config-Bs1HwUcx.js → config-DPJ3jtiB.js} +12 -2
  44. package/dist/chunks/config-DPJ3jtiB.js.map +1 -0
  45. package/dist/chunks/{config-tNqtapcT.js → config-DpqjlCfB.js} +2 -2
  46. package/dist/chunks/{config-tNqtapcT.js.map → config-DpqjlCfB.js.map} +1 -1
  47. package/dist/chunks/{config-DNDgp9bB.js → config-DpzFoSIh.js} +64 -2
  48. package/dist/chunks/config-DpzFoSIh.js.map +1 -0
  49. package/dist/chunks/config-MUkhktTP.js +267 -0
  50. package/dist/chunks/config-MUkhktTP.js.map +1 -0
  51. package/dist/chunks/config-SPugeaHT.js +37 -0
  52. package/dist/chunks/config-SPugeaHT.js.map +1 -0
  53. package/dist/chunks/{en-Bxyn5lW7.js → en-mIFywnV2.js} +27 -7
  54. package/dist/chunks/en-mIFywnV2.js.map +1 -0
  55. package/dist/chunks/{es-Dtl-a7ui.js → es-CvthYwtB.js} +27 -7
  56. package/dist/chunks/es-CvthYwtB.js.map +1 -0
  57. package/dist/chunks/{es-Bj_vc18Z.js → es-DlGd6Mrj.js} +3 -3
  58. package/dist/chunks/{es-Bj_vc18Z.js.map → es-DlGd6Mrj.js.map} +1 -1
  59. package/dist/chunks/{generated-hELWB0gZ.js → generated-Cx4C7GRN.js} +126 -0
  60. package/dist/chunks/{generated-hELWB0gZ.js.map → generated-Cx4C7GRN.js.map} +1 -1
  61. package/dist/chunks/{grBadgeStyles-DV0DrAew.js → grBadgeStyles-D51AXbj5.js} +57 -1
  62. package/dist/chunks/grBadgeStyles-D51AXbj5.js.map +1 -0
  63. package/dist/chunks/{grChipStyles-DcDyxAL0.js → grChipStyles-CA9Wj1_E.js} +1 -1
  64. package/dist/chunks/{grChipStyles-DcDyxAL0.js.map → grChipStyles-CA9Wj1_E.js.map} +1 -1
  65. package/dist/chunks/{grPopoverStyles-CYAeO3Ov.js → grPopoverStyles-CncEkiPu.js} +1 -1
  66. package/dist/chunks/{grPopoverStyles-CYAeO3Ov.js.map → grPopoverStyles-CncEkiPu.js.map} +1 -1
  67. package/dist/chunks/{grSelectStyles-D9EQ-pgK.js → grSelectStyles-Cam-IG9s.js} +3 -2
  68. package/dist/chunks/grSelectStyles-Cam-IG9s.js.map +1 -0
  69. package/dist/chunks/{grSliderStyles-kaz6VXZ3.js → grSliderStyles-CqzV0hll.js} +1 -1
  70. package/dist/chunks/grSliderStyles-CqzV0hll.js.map +1 -0
  71. package/dist/chunks/{config-CbEbLyDE.js → grSortableListStyles-CxieDmpe.js} +1 -27
  72. package/dist/chunks/grSortableListStyles-CxieDmpe.js.map +1 -0
  73. package/dist/chunks/grTableStyles-CPSxDTOW.js +66 -0
  74. package/dist/chunks/grTableStyles-CPSxDTOW.js.map +1 -0
  75. package/dist/chunks/{config-CMNfZO7S.js → grTabsStyles-DIz2VdIm.js} +1 -36
  76. package/dist/chunks/grTabsStyles-DIz2VdIm.js.map +1 -0
  77. package/dist/chunks/grTooltipStyles-CtbGEEGV.js +24 -0
  78. package/dist/chunks/grTooltipStyles-CtbGEEGV.js.map +1 -0
  79. package/dist/chunks/{granular-provider-BOQp7N5o.js → granular-provider-cv5vaM1a.js} +26 -22
  80. package/dist/chunks/granular-provider-cv5vaM1a.js.map +1 -0
  81. package/dist/chunks/hotkeySequence-BTHIM_5A.js +46 -0
  82. package/dist/chunks/hotkeySequence-BTHIM_5A.js.map +1 -0
  83. package/dist/chunks/{keyboard-DE2yhz_b.js → keyboard-BiFSgWLt.js} +70 -1
  84. package/dist/chunks/keyboard-BiFSgWLt.js.map +1 -0
  85. package/dist/chunks/optionPanel-DvY7Tv_4.js +182 -0
  86. package/dist/chunks/optionPanel-DvY7Tv_4.js.map +1 -0
  87. package/dist/chunks/overlayListPanel-D91jBCHU.js +21 -0
  88. package/dist/chunks/overlayListPanel-D91jBCHU.js.map +1 -0
  89. package/dist/chunks/{overlayStack-DH4Z7am1.js → overlayStack-DCkCgXZP.js} +1 -1
  90. package/dist/chunks/{overlayStack-DH4Z7am1.js.map → overlayStack-DCkCgXZP.js.map} +1 -1
  91. package/dist/chunks/{overlayPanelSurface-BKeMhRx4.js → overlayTransition-C0FDMx7Q.js} +24 -24
  92. package/dist/chunks/overlayTransition-C0FDMx7Q.js.map +1 -0
  93. package/dist/chunks/{ru-hrB4I1u_.js → ru-CQKDR-kD.js} +27 -7
  94. package/dist/chunks/ru-CQKDR-kD.js.map +1 -0
  95. package/dist/chunks/{safelist-x8USecK8.js → safelist-CSfynUC1.js} +5 -1
  96. package/dist/chunks/safelist-CSfynUC1.js.map +1 -0
  97. package/dist/chunks/{useMenuItemsFocus-B7Bl_aFA.js → useMenuItemsFocus-C031blYS.js} +1 -1
  98. package/dist/chunks/{useMenuItemsFocus-B7Bl_aFA.js.map → useMenuItemsFocus-C031blYS.js.map} +1 -1
  99. package/dist/chunks/{useModalOverlay-ACRkflzx.js → useModalOverlay-CKCQkGdB.js} +1 -1
  100. package/dist/chunks/{useModalOverlay-ACRkflzx.js.map → useModalOverlay-CKCQkGdB.js.map} +1 -1
  101. package/dist/components/GrAutocomplete/chunks/{GrAutocomplete-C-uovdv8.js → GrAutocomplete-Cyr1-ENw.js} +183 -125
  102. package/dist/components/GrAutocomplete/chunks/GrAutocomplete-Cyr1-ENw.js.map +1 -0
  103. package/dist/components/GrAutocomplete/index.js +2 -2
  104. package/dist/components/GrAutocomplete/styles.css +1 -1
  105. package/dist/components/GrBadge/chunks/GrBadge-C42KLyUD.js +71 -0
  106. package/dist/components/GrBadge/chunks/GrBadge-C42KLyUD.js.map +1 -0
  107. package/dist/components/GrBadge/index.js +3 -3
  108. package/dist/components/GrBadge/styles.css +1 -1
  109. package/dist/components/GrCarousel/chunks/{GrCarousel-ByuughtI.js → GrCarousel-CBj-PEPB.js} +186 -37
  110. package/dist/components/GrCarousel/chunks/GrCarousel-CBj-PEPB.js.map +1 -0
  111. package/dist/components/GrCarousel/index.js +2 -2
  112. package/dist/components/GrCarousel/styles.css +1 -1
  113. package/dist/components/GrCheckbox/chunks/{GrCheckbox-Dp201frb.js → GrCheckbox-B4NJc7Ur.js} +2 -1
  114. package/dist/components/GrCheckbox/chunks/GrCheckbox-B4NJc7Ur.js.map +1 -0
  115. package/dist/components/GrCheckbox/index.js +1 -1
  116. package/dist/components/GrCheckboxGroup/chunks/{GrCheckboxGroup-IpqG5qwm.js → GrCheckboxGroup-qZHpNFCX.js} +1 -1
  117. package/dist/components/GrCheckboxGroup/chunks/{GrCheckboxGroup-IpqG5qwm.js.map → GrCheckboxGroup-qZHpNFCX.js.map} +1 -1
  118. package/dist/components/GrCheckboxGroup/index.js +1 -1
  119. package/dist/components/GrChip/chunks/{GrChip-CKqyzYcv.js → GrChip-DoyS1Dr4.js} +1 -1
  120. package/dist/components/GrChip/chunks/{GrChip-CKqyzYcv.js.map → GrChip-DoyS1Dr4.js.map} +1 -1
  121. package/dist/components/GrChip/index.js +2 -2
  122. package/dist/components/GrColorPicker/chunks/{GrColorPicker-BRM_4lyI.js → GrColorPicker-vGSgpUV9.js} +353 -38
  123. package/dist/components/GrColorPicker/chunks/GrColorPicker-vGSgpUV9.js.map +1 -0
  124. package/dist/components/GrColorPicker/index.js +2 -2
  125. package/dist/components/GrColorPicker/styles.css +1 -1
  126. package/dist/components/GrCommandPalette/chunks/{GrCommandPalette-BJHmkDQv.js → GrCommandPalette-CAHgj0Aa.js} +23 -7
  127. package/dist/components/GrCommandPalette/chunks/GrCommandPalette-CAHgj0Aa.js.map +1 -0
  128. package/dist/components/GrCommandPalette/index.js +1 -1
  129. package/dist/components/GrCommandPalette/styles.css +1 -1
  130. package/dist/components/GrConfirmDialog/chunks/{GrConfirmDialog-BzUQwbec.js → GrConfirmDialog-dg021BMd.js} +1 -1
  131. package/dist/components/GrConfirmDialog/chunks/{GrConfirmDialog-BzUQwbec.js.map → GrConfirmDialog-dg021BMd.js.map} +1 -1
  132. package/dist/components/GrConfirmDialog/index.js +1 -1
  133. package/dist/components/GrContextMenu/chunks/{GrContextMenu-RpxMHQXH.js → GrContextMenu-bQ1Vvy2c.js} +3 -3
  134. package/dist/components/GrContextMenu/chunks/{GrContextMenu-RpxMHQXH.js.map → GrContextMenu-bQ1Vvy2c.js.map} +1 -1
  135. package/dist/components/GrContextMenu/index.js +1 -1
  136. package/dist/components/GrDataTable/chunks/{GrDataTable-DQxYYgQk.js → GrDataTable-Bb2jWnRG.js} +576 -136
  137. package/dist/components/GrDataTable/chunks/GrDataTable-Bb2jWnRG.js.map +1 -0
  138. package/dist/components/GrDataTable/index.js +2 -2
  139. package/dist/components/GrDelta/chunks/{GrDelta-CgTvfoIN.js → GrDelta-BSv1KdMy.js} +0 -0
  140. package/dist/components/GrDelta/chunks/{GrDelta-CgTvfoIN.js.map → GrDelta-BSv1KdMy.js.map} +1 -1
  141. package/dist/components/GrDelta/index.js +2 -2
  142. package/dist/components/GrDialog/chunks/{GrDialog-DDz_OEhk.js → GrDialog-C9Zu72jB.js} +1 -1
  143. package/dist/components/GrDialog/chunks/{GrDialog-DDz_OEhk.js.map → GrDialog-C9Zu72jB.js.map} +1 -1
  144. package/dist/components/GrDialog/index.js +1 -1
  145. package/dist/components/GrDialogService/chunks/{GrDialogService-Dtq0ZCN5.js → GrDialogService-DLBifO61.js} +2 -2
  146. package/dist/components/GrDialogService/chunks/{GrDialogService-Dtq0ZCN5.js.map → GrDialogService-DLBifO61.js.map} +1 -1
  147. package/dist/components/GrDialogService/index.js +1 -1
  148. package/dist/components/GrDrawer/chunks/{GrDrawer-CNpSMuN-.js → GrDrawer-DOcRTE8G.js} +1 -1
  149. package/dist/components/GrDrawer/chunks/{GrDrawer-CNpSMuN-.js.map → GrDrawer-DOcRTE8G.js.map} +1 -1
  150. package/dist/components/GrDrawer/index.js +1 -1
  151. package/dist/components/GrDropdown/chunks/{GrDropdown-cLZuZMEY.js → GrDropdown-kxwmgfSe.js} +2 -2
  152. package/dist/components/GrDropdown/chunks/{GrDropdown-cLZuZMEY.js.map → GrDropdown-kxwmgfSe.js.map} +1 -1
  153. package/dist/components/GrDropdown/index.js +2 -2
  154. package/dist/components/GrDropdownMenu/chunks/{GrDropdownMenu-Dxkz_ry4.js → GrDropdownMenu--VoK3VY0.js} +3 -34
  155. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu--VoK3VY0.js.map +1 -0
  156. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-CkM3BFPL.js +34 -0
  157. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-CkM3BFPL.js.map +1 -0
  158. package/dist/components/GrDropdownMenu/index.js +2 -1
  159. package/dist/components/GrEmptyState/chunks/{GrEmptyState-BbvwE-E0.js → GrEmptyState-Bz6-_ED4.js} +42 -6
  160. package/dist/components/GrEmptyState/chunks/GrEmptyState-Bz6-_ED4.js.map +1 -0
  161. package/dist/components/GrEmptyState/index.js +1 -1
  162. package/dist/components/GrFileUpload/chunks/{GrFileUpload-BwMR71zN.js → GrFileUpload-Bgdfnkd8.js} +5 -2
  163. package/dist/components/GrFileUpload/chunks/GrFileUpload-Bgdfnkd8.js.map +1 -0
  164. package/dist/components/GrFileUpload/index.js +1 -1
  165. package/dist/components/GrFormFile/chunks/{GrFormFile-Dlxx-9zi.js → GrFormFile-Ctq1isz-.js} +78 -11
  166. package/dist/components/GrFormFile/chunks/GrFormFile-Ctq1isz-.js.map +1 -0
  167. package/dist/components/GrFormFile/index.js +2 -2
  168. package/dist/components/GrFormFile/styles.css +1 -1
  169. package/dist/components/GrImageViewer/chunks/{GrImageViewer-DK-iVHHC.js → GrImageViewer-Bnql_dNP.js} +1 -1
  170. package/dist/components/GrImageViewer/chunks/{GrImageViewer-DK-iVHHC.js.map → GrImageViewer-Bnql_dNP.js.map} +1 -1
  171. package/dist/components/GrImageViewer/index.js +1 -1
  172. package/dist/components/GrInput/chunks/{GrInput-DV4gMWPR.js → GrInput-CoaFLpaU.js} +43 -22
  173. package/dist/components/GrInput/chunks/GrInput-CoaFLpaU.js.map +1 -0
  174. package/dist/components/GrInput/index.js +1 -1
  175. package/dist/components/GrInputTag/chunks/{GrInputTag-CO0YU-ok.js → GrInputTag-BzzNRBe3.js} +247 -20
  176. package/dist/components/GrInputTag/chunks/GrInputTag-BzzNRBe3.js.map +1 -0
  177. package/dist/components/GrInputTag/index.js +2 -2
  178. package/dist/components/GrJsonViewer/chunks/{GrJsonViewer-D7CyWzhT.js → GrJsonViewer-B6ZJ3GFH.js} +2 -2
  179. package/dist/components/GrJsonViewer/chunks/{GrJsonViewer-D7CyWzhT.js.map → GrJsonViewer-B6ZJ3GFH.js.map} +1 -1
  180. package/dist/components/GrJsonViewer/index.js +1 -1
  181. package/dist/components/GrKbd/chunks/{GrKbd-BNMeoaLV.js → GrKbd-D2rHDkQv.js} +42 -37
  182. package/dist/components/GrKbd/chunks/GrKbd-D2rHDkQv.js.map +1 -0
  183. package/dist/components/GrKbd/index.js +1 -1
  184. package/dist/components/GrModal/chunks/{GrModal-Cm0mtSXk.js → GrModal-SHb1U2qx.js} +1 -1
  185. package/dist/components/GrModal/chunks/{GrModal-Cm0mtSXk.js.map → GrModal-SHb1U2qx.js.map} +1 -1
  186. package/dist/components/GrModal/index.js +1 -1
  187. package/dist/components/GrNavbar/chunks/{GrNavbar-BRGuksiy.js → GrNavbar-IEIHC5Vt.js} +10 -4
  188. package/dist/components/GrNavbar/chunks/GrNavbar-IEIHC5Vt.js.map +1 -0
  189. package/dist/components/GrNavbar/index.js +2 -2
  190. package/dist/components/GrNumberInput/chunks/{GrNumberInput-BI6-vkcs.js → GrNumberInput-CmnUDaKi.js} +2 -22
  191. package/dist/components/GrNumberInput/chunks/{GrNumberInput-BI6-vkcs.js.map → GrNumberInput-CmnUDaKi.js.map} +1 -1
  192. package/dist/components/GrNumberInput/index.js +1 -1
  193. package/dist/components/GrOtpInput/chunks/GrOtpInput-B_Q-RDLw.js +419 -0
  194. package/dist/components/GrOtpInput/chunks/GrOtpInput-B_Q-RDLw.js.map +1 -0
  195. package/dist/components/GrOtpInput/index.js +3 -0
  196. package/dist/components/GrOtpInput/styles.css +1 -0
  197. package/dist/components/GrPagination/chunks/{GrPagination-BbaF5eXk.js → GrPagination-AMbn5D8I.js} +1 -1
  198. package/dist/components/GrPagination/chunks/{GrPagination-BbaF5eXk.js.map → GrPagination-AMbn5D8I.js.map} +1 -1
  199. package/dist/components/GrPagination/index.js +1 -1
  200. package/dist/components/GrPopover/chunks/{GrPopover-CcWvr1ZA.js → GrPopover-DjVxt8bf.js} +3 -3
  201. package/dist/components/GrPopover/chunks/{GrPopover-CcWvr1ZA.js.map → GrPopover-DjVxt8bf.js.map} +1 -1
  202. package/dist/components/GrPopover/index.js +2 -2
  203. package/dist/components/GrPromptDialog/chunks/{GrPromptDialog-BEL-QgwE.js → GrPromptDialog-BhbIZP1f.js} +3 -3
  204. package/dist/components/GrPromptDialog/chunks/{GrPromptDialog-BEL-QgwE.js.map → GrPromptDialog-BhbIZP1f.js.map} +1 -1
  205. package/dist/components/GrPromptDialog/index.js +1 -1
  206. package/dist/components/GrSelect/chunks/{GrSelect-0iI4wdR_.js → GrSelect-B-ykrHpL.js} +26 -182
  207. package/dist/components/GrSelect/chunks/GrSelect-B-ykrHpL.js.map +1 -0
  208. package/dist/components/GrSelect/index.js +2 -2
  209. package/dist/components/GrSelect/styles.css +1 -1
  210. package/dist/components/GrSidebar/chunks/GrSidebar-jVvoLGDO.js +543 -0
  211. package/dist/components/GrSidebar/chunks/GrSidebar-jVvoLGDO.js.map +1 -0
  212. package/dist/components/GrSidebar/index.js +2 -2
  213. package/dist/components/GrSlider/chunks/{GrSlider-CO8N9SF6.js → GrSlider-DF2Cq0rV.js} +29 -4
  214. package/dist/components/GrSlider/chunks/GrSlider-DF2Cq0rV.js.map +1 -0
  215. package/dist/components/GrSlider/index.js +2 -2
  216. package/dist/components/GrSortableList/chunks/{GrSortableList-NKriuGm_.js → GrSortableList-ChH9nQBv.js} +1 -1
  217. package/dist/components/GrSortableList/chunks/{GrSortableList-NKriuGm_.js.map → GrSortableList-ChH9nQBv.js.map} +1 -1
  218. package/dist/components/GrSortableList/index.js +2 -2
  219. package/dist/components/GrSwitch/chunks/{GrSwitch-CriHWT2A.js → GrSwitch-D7X42uIA.js} +61 -7
  220. package/dist/components/GrSwitch/chunks/GrSwitch-D7X42uIA.js.map +1 -0
  221. package/dist/components/GrSwitch/index.js +2 -2
  222. package/dist/components/GrTabPanels/chunks/GrTabPanels-BDt5oVdd.js +30 -0
  223. package/dist/components/GrTabPanels/chunks/GrTabPanels-BDt5oVdd.js.map +1 -0
  224. package/dist/components/GrTabPanels/chunks/GrTabPanels-BJvAflnA.js +83 -0
  225. package/dist/components/GrTabPanels/chunks/GrTabPanels-BJvAflnA.js.map +1 -0
  226. package/dist/components/GrTabPanels/index.js +2 -1
  227. package/dist/components/GrTable/chunks/{GrTable-CKJ-HrsN.js → GrTable-BQitSDep.js} +52 -16
  228. package/dist/components/GrTable/chunks/GrTable-BQitSDep.js.map +1 -0
  229. package/dist/components/GrTable/index.js +2 -2
  230. package/dist/components/GrTabs/chunks/{GrTabs-s9RzC1WX.js → GrTabs-DVC6nfWB.js} +1 -1
  231. package/dist/components/GrTabs/chunks/{GrTabs-s9RzC1WX.js.map → GrTabs-DVC6nfWB.js.map} +1 -1
  232. package/dist/components/GrTabs/index.js +2 -2
  233. package/dist/components/GrTabsWithPanels/chunks/GrTabsWithPanels-BYtuzouj.js +98 -0
  234. package/dist/components/GrTabsWithPanels/chunks/GrTabsWithPanels-BYtuzouj.js.map +1 -0
  235. package/dist/components/GrTabsWithPanels/index.js +3 -0
  236. package/dist/components/GrTextarea/chunks/{GrTextarea-Bfgc0DD2.js → GrTextarea-BFwyqcHB.js} +22 -5
  237. package/dist/components/GrTextarea/chunks/GrTextarea-BFwyqcHB.js.map +1 -0
  238. package/dist/components/GrTextarea/index.js +1 -1
  239. package/dist/components/GrToaster/chunks/{GrToaster-CZixNk0l.js → GrToaster-OzT1VKcp.js} +163 -32
  240. package/dist/components/GrToaster/chunks/GrToaster-OzT1VKcp.js.map +1 -0
  241. package/dist/components/GrToaster/index.js +2 -2
  242. package/dist/components/GrToaster/styles.css +1 -1
  243. package/dist/components/GrTooltip/chunks/{GrTooltip-DkMMM0uq.js → GrTooltip-BDcFycvW.js} +26 -13
  244. package/dist/components/GrTooltip/chunks/GrTooltip-BDcFycvW.js.map +1 -0
  245. package/dist/components/GrTooltip/index.js +2 -2
  246. package/dist/components/GrTransfer/chunks/{GrTransfer-DdfBUf35.js → GrTransfer-CV7BL5UK.js} +114 -12
  247. package/dist/components/GrTransfer/chunks/GrTransfer-CV7BL5UK.js.map +1 -0
  248. package/dist/components/GrTransfer/index.js +1 -1
  249. package/dist/components/GrTransfer/styles.css +1 -1
  250. package/dist/components/GrTree/chunks/{GrTree-6yZrncJE.js → GrTree-DpgaP8hk.js} +39 -1
  251. package/dist/components/GrTree/chunks/GrTree-DpgaP8hk.js.map +1 -0
  252. package/dist/components/GrTree/index.js +1 -1
  253. package/dist/components/GrTree/styles.css +1 -1
  254. package/dist/components/GrTreeSections/chunks/{GrTreeSections-DcmDcLwj.js → GrTreeSections-BeOj__44.js} +1 -1
  255. package/dist/components/GrTreeSections/chunks/{GrTreeSections-DcmDcLwj.js.map → GrTreeSections-BeOj__44.js.map} +1 -1
  256. package/dist/components/GrTreeSections/index.js +1 -1
  257. package/dist/components/GrTreeSelect/chunks/{GrTreeSelect-B6KoDYiZ.js → GrTreeSelect-BHq-T8wH.js} +113 -14
  258. package/dist/components/GrTreeSelect/chunks/GrTreeSelect-BHq-T8wH.js.map +1 -0
  259. package/dist/components/GrTreeSelect/index.js +2 -2
  260. package/dist/composables/useFloating.js +1 -1
  261. package/dist/composables/useHotkeys.js +89 -0
  262. package/dist/composables/useHotkeys.js.map +1 -0
  263. package/dist/composables/useOverlayLayer.js +1 -1
  264. package/dist/directives/hotkey.js +19 -46
  265. package/dist/directives/hotkey.js.map +1 -1
  266. package/dist/granular-provider-node.js +1 -1
  267. package/dist/granular-provider.js +1 -1
  268. package/dist/i18n/all.js +1 -1
  269. package/dist/i18n/index.js +1 -1
  270. package/dist/index.js +80 -71
  271. package/dist/theme.js +1 -1
  272. package/dist/tokens.js +1 -1
  273. package/dist/types/components/GrAutocomplete/GrAutocomplete.vue.d.ts +4 -4
  274. package/dist/types/components/GrAutocomplete/composables/useAutocompleteNavigation.d.ts +12 -3
  275. package/dist/types/components/GrAutocomplete/composables/useAutocompletePanel.d.ts +12 -2
  276. package/dist/types/components/GrAutocomplete/composables/useAutocompleteValues.d.ts +7 -4
  277. package/dist/types/components/GrAutocomplete/composables/useRemoteOptions.d.ts +4 -4
  278. package/dist/types/components/GrAutocomplete/grAutocompleteStyles.d.ts +15 -1
  279. package/dist/types/components/GrAutocomplete/index.d.ts +1 -1
  280. package/dist/types/components/GrBadge/GrBadge.vue.d.ts +15 -1
  281. package/dist/types/components/GrBadge/grBadgeStyles.d.ts +57 -0
  282. package/dist/types/components/GrBadge/index.d.ts +1 -1
  283. package/dist/types/components/GrCarousel/GrCarousel.vue.d.ts +29 -1
  284. package/dist/types/components/GrCarousel/composables/useCarouselSwipe.d.ts +5 -0
  285. package/dist/types/components/GrCarousel/grCarouselContext.d.ts +21 -0
  286. package/dist/types/components/GrCarousel/grCarouselStyles.d.ts +39 -9
  287. package/dist/types/components/GrCheckbox/GrCheckbox.vue.d.ts +13 -0
  288. package/dist/types/components/GrColorPicker/GrColorPicker.vue.d.ts +18 -2
  289. package/dist/types/components/GrColorPicker/color.d.ts +13 -1
  290. package/dist/types/components/GrColorPicker/colorArea.d.ts +59 -0
  291. package/dist/types/components/GrColorPicker/defaults.d.ts +3 -1
  292. package/dist/types/components/GrColorPicker/eyeDropper.d.ts +21 -0
  293. package/dist/types/components/GrColorPicker/grColorPickerStyles.d.ts +42 -0
  294. package/dist/types/components/GrCommandPalette/GrCommandPalette.vue.d.ts +10 -1
  295. package/dist/types/components/GrDataTable/GrDataTable.vue.d.ts +41 -1
  296. package/dist/types/components/GrDataTable/composables/useDataTableGridNavigation.d.ts +53 -0
  297. package/dist/types/components/GrDataTable/grDataTableStyles.d.ts +8 -0
  298. package/dist/types/components/GrDataTable/index.d.ts +1 -1
  299. package/dist/types/components/GrDelta/grDeltaStyles.d.ts +10 -3
  300. package/dist/types/components/GrEmptyState/GrEmptyState.vue.d.ts +11 -2
  301. package/dist/types/components/GrEmptyState/grEmptyStateStyles.d.ts +10 -0
  302. package/dist/types/components/GrEmptyState/index.d.ts +1 -1
  303. package/dist/types/components/GrFileUpload/GrFileUpload.vue.d.ts +2 -1
  304. package/dist/types/components/GrFormFile/GrFormFile.vue.d.ts +10 -0
  305. package/dist/types/components/GrInput/GrInput.vue.d.ts +15 -0
  306. package/dist/types/components/GrInputTag/GrInputTag.vue.d.ts +16 -0
  307. package/dist/types/components/GrInputTag/grInputTagStyles.d.ts +11 -0
  308. package/dist/types/components/GrKbd/GrKbd.vue.d.ts +14 -0
  309. package/dist/types/components/GrNavbar/GrNavbar.vue.d.ts +18 -0
  310. package/dist/types/components/GrNavbar/grNavbarStyles.d.ts +10 -1
  311. package/dist/types/components/GrNavbar/index.d.ts +1 -0
  312. package/dist/types/components/GrOtpInput/GrOtpInput.vue.d.ts +164 -0
  313. package/dist/types/components/GrOtpInput/config.d.ts +1 -0
  314. package/dist/types/components/GrOtpInput/defaults.d.ts +15 -0
  315. package/dist/types/components/GrOtpInput/grOtpInputStyles.d.ts +62 -0
  316. package/dist/types/components/GrOtpInput/index.d.ts +9 -0
  317. package/dist/types/components/GrOtpInput/otpValue.d.ts +71 -0
  318. package/dist/types/components/GrOtpInput/safelist.d.ts +7 -0
  319. package/dist/types/components/GrSelect/composables/useSelectPanelItems.d.ts +8 -34
  320. package/dist/types/components/GrSelect/composables/useSelectVirtualization.d.ts +7 -0
  321. package/dist/types/components/GrSelect/grSelectStyles.d.ts +1 -1
  322. package/dist/types/components/GrSidebar/GrSidebar.vue.d.ts +20 -0
  323. package/dist/types/components/GrSidebar/GrSidebarItem.vue.d.ts +39 -5
  324. package/dist/types/components/GrSidebar/grSidebarStyles.d.ts +32 -0
  325. package/dist/types/components/GrSidebar/index.d.ts +1 -1
  326. package/dist/types/components/GrSidebar/sidebarContext.d.ts +23 -1
  327. package/dist/types/components/GrSlider/GrSlider.vue.d.ts +39 -1
  328. package/dist/types/components/GrSlider/grSliderStyles.d.ts +1 -1
  329. package/dist/types/components/GrSwitch/GrSwitch.vue.d.ts +42 -4
  330. package/dist/types/components/GrSwitch/defaults.d.ts +2 -0
  331. package/dist/types/components/GrSwitch/grSwitchStyles.d.ts +129 -25
  332. package/dist/types/components/GrSwitch/index.d.ts +1 -1
  333. package/dist/types/components/GrSwitch/safelist.d.ts +4 -3
  334. package/dist/types/components/GrTabPanels/context.d.ts +6 -0
  335. package/dist/types/components/GrTable/GrTable.vue.d.ts +37 -0
  336. package/dist/types/components/GrTable/grTableStyles.d.ts +16 -7
  337. package/dist/types/components/GrTabsWithPanels/GrTabsWithPanels.vue.d.ts +77 -0
  338. package/dist/types/components/GrTabsWithPanels/config.d.ts +1 -0
  339. package/dist/types/components/GrTabsWithPanels/index.d.ts +4 -0
  340. package/dist/types/components/GrTextarea/GrTextarea.vue.d.ts +19 -1
  341. package/dist/types/components/GrToaster/GrToaster.vue.d.ts +12 -0
  342. package/dist/types/components/GrToaster/grToasterStyles.d.ts +26 -0
  343. package/dist/types/components/GrTooltip/GrTooltip.vue.d.ts +22 -0
  344. package/dist/types/components/GrTransfer/GrTransfer.vue.d.ts +23 -0
  345. package/dist/types/components/GrTreeSelect/grTreeSelectStyles.d.ts +1 -1
  346. package/dist/types/components/GrTreeSelect/grTreeSelectTypes.d.ts +20 -0
  347. package/dist/types/components/shared/hotkey.d.ts +8 -9
  348. package/dist/types/components/shared/optionPanel.d.ts +100 -0
  349. package/dist/types/components/shared/overlayListPanel.d.ts +18 -0
  350. package/dist/types/composables/useHotkeys.d.ts +43 -0
  351. package/dist/types/granular-provider/shared.d.ts +2 -0
  352. package/dist/types/i18n/messages/en.d.ts +32 -0
  353. package/dist/types/i18n/messages/es.d.ts +32 -0
  354. package/dist/types/i18n/messages/ru.d.ts +32 -0
  355. package/dist/types/index.d.ts +4 -0
  356. package/dist/types/internal/hotkeySequence.d.ts +22 -0
  357. package/dist/types/internal/keyboard.d.ts +45 -0
  358. package/dist/web-types.json +784 -101
  359. package/package.json +13 -1
  360. package/dist/chunks/config-2ZHRsdOc.js.map +0 -1
  361. package/dist/chunks/config-B42iJ48O.js.map +0 -1
  362. package/dist/chunks/config-B5SBUa6u.js.map +0 -1
  363. package/dist/chunks/config-BAse0laT.js.map +0 -1
  364. package/dist/chunks/config-BHLMTJaR.js.map +0 -1
  365. package/dist/chunks/config-BXRmsn3t.js.map +0 -1
  366. package/dist/chunks/config-Bs1HwUcx.js.map +0 -1
  367. package/dist/chunks/config-CMNfZO7S.js.map +0 -1
  368. package/dist/chunks/config-CbEbLyDE.js.map +0 -1
  369. package/dist/chunks/config-CjWOTgLL.js.map +0 -1
  370. package/dist/chunks/config-D3HOuHDe.js.map +0 -1
  371. package/dist/chunks/config-DIDz_E5m.js.map +0 -1
  372. package/dist/chunks/config-DNDgp9bB.js.map +0 -1
  373. package/dist/chunks/config-Yy67uWHY.js +0 -140
  374. package/dist/chunks/config-Yy67uWHY.js.map +0 -1
  375. package/dist/chunks/config-iemgzS4x.js.map +0 -1
  376. package/dist/chunks/en-Bxyn5lW7.js.map +0 -1
  377. package/dist/chunks/es-Dtl-a7ui.js.map +0 -1
  378. package/dist/chunks/grBadgeStyles-DV0DrAew.js.map +0 -1
  379. package/dist/chunks/grSelectStyles-D9EQ-pgK.js.map +0 -1
  380. package/dist/chunks/grSliderStyles-kaz6VXZ3.js.map +0 -1
  381. package/dist/chunks/grTableStyles-DkQPMfx9.js +0 -39
  382. package/dist/chunks/grTableStyles-DkQPMfx9.js.map +0 -1
  383. package/dist/chunks/granular-provider-BOQp7N5o.js.map +0 -1
  384. package/dist/chunks/keyboard-DE2yhz_b.js.map +0 -1
  385. package/dist/chunks/overlayPanelSurface-BKeMhRx4.js.map +0 -1
  386. package/dist/chunks/ru-hrB4I1u_.js.map +0 -1
  387. package/dist/chunks/safelist-x8USecK8.js.map +0 -1
  388. package/dist/components/GrAutocomplete/chunks/GrAutocomplete-C-uovdv8.js.map +0 -1
  389. package/dist/components/GrBadge/chunks/GrBadge-DBeQXEir.js +0 -47
  390. package/dist/components/GrBadge/chunks/GrBadge-DBeQXEir.js.map +0 -1
  391. package/dist/components/GrCarousel/chunks/GrCarousel-ByuughtI.js.map +0 -1
  392. package/dist/components/GrCheckbox/chunks/GrCheckbox-Dp201frb.js.map +0 -1
  393. package/dist/components/GrColorPicker/chunks/GrColorPicker-BRM_4lyI.js.map +0 -1
  394. package/dist/components/GrCommandPalette/chunks/GrCommandPalette-BJHmkDQv.js.map +0 -1
  395. package/dist/components/GrDataTable/chunks/GrDataTable-DQxYYgQk.js.map +0 -1
  396. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-Dxkz_ry4.js.map +0 -1
  397. package/dist/components/GrEmptyState/chunks/GrEmptyState-BbvwE-E0.js.map +0 -1
  398. package/dist/components/GrFileUpload/chunks/GrFileUpload-BwMR71zN.js.map +0 -1
  399. package/dist/components/GrFormFile/chunks/GrFormFile-Dlxx-9zi.js.map +0 -1
  400. package/dist/components/GrInput/chunks/GrInput-DV4gMWPR.js.map +0 -1
  401. package/dist/components/GrInputTag/chunks/GrInputTag-CO0YU-ok.js.map +0 -1
  402. package/dist/components/GrKbd/chunks/GrKbd-BNMeoaLV.js.map +0 -1
  403. package/dist/components/GrNavbar/chunks/GrNavbar-BRGuksiy.js.map +0 -1
  404. package/dist/components/GrSelect/chunks/GrSelect-0iI4wdR_.js.map +0 -1
  405. package/dist/components/GrSidebar/chunks/GrSidebar-DoKLlHSw.js +0 -264
  406. package/dist/components/GrSidebar/chunks/GrSidebar-DoKLlHSw.js.map +0 -1
  407. package/dist/components/GrSlider/chunks/GrSlider-CO8N9SF6.js.map +0 -1
  408. package/dist/components/GrSwitch/chunks/GrSwitch-CriHWT2A.js.map +0 -1
  409. package/dist/components/GrTabPanels/chunks/GrTabPanels-5zsbqS1v.js +0 -92
  410. package/dist/components/GrTabPanels/chunks/GrTabPanels-5zsbqS1v.js.map +0 -1
  411. package/dist/components/GrTable/chunks/GrTable-CKJ-HrsN.js.map +0 -1
  412. package/dist/components/GrTextarea/chunks/GrTextarea-Bfgc0DD2.js.map +0 -1
  413. package/dist/components/GrToaster/chunks/GrToaster-CZixNk0l.js.map +0 -1
  414. package/dist/components/GrTooltip/chunks/GrTooltip-DkMMM0uq.js.map +0 -1
  415. package/dist/components/GrTransfer/chunks/GrTransfer-DdfBUf35.js.map +0 -1
  416. package/dist/components/GrTree/chunks/GrTree-6yZrncJE.js.map +0 -1
  417. package/dist/components/GrTreeSelect/chunks/GrTreeSelect-B6KoDYiZ.js.map +0 -1
  418. package/dist/types/components/GrAutocomplete/composables/useAutocompleteVirtual.d.ts +0 -33
@@ -3,12 +3,14 @@ import { a as useGrComponentSize, i as useGrComponentProp, s as useGrThemeAttrs
3
3
  import { n as useGranularityTranslations } from "../../../chunks/granularityI18n-BC5zsj_d.js";
4
4
  import { t as usePortalTarget } from "../../../chunks/usePortalTarget-BhrRgdqW.js";
5
5
  import { vClickOutside } from "../../../directives/clickOutside.js";
6
- import { r as isComposingEvent } from "../../../chunks/keyboard-DE2yhz_b.js";
6
+ import { n as isComposingEvent } from "../../../chunks/keyboard-BiFSgWLt.js";
7
7
  import { t as loader_circle_default } from "../../../chunks/loader-circle-CfVLz7lb.js";
8
8
  import { useFloating } from "../../../composables/useFloating.js";
9
9
  import { useDismissible } from "../../../composables/useDismissible.js";
10
+ import { t as panelPopTransition } from "../../../chunks/overlayTransition-C0FDMx7Q.js";
11
+ import { a as autocompleteShellClass, i as autocompletePanelClasses, o as autocompleteStateClass, r as autocompleteOptionClass, s as isAutocompleteOptionGroup } from "../../../chunks/config-D1oVht-E.js";
10
12
  import { a as resolveSelectedOptions, t as filterOptions } from "../../../chunks/optionFilter-DYw9XPPx.js";
11
- import { useVirtualList } from "../../../composables/useVirtualList.js";
13
+ import { n as useOptionPanelVirtualization, t as buildOptionPanelRows } from "../../../chunks/optionPanel-DvY7Tv_4.js";
12
14
  import { useComboboxNavigation } from "../../../composables/useComboboxNavigation.js";
13
15
  import { n as useGrFormFieldContext } from "../../../chunks/context-DdNIxa1w.js";
14
16
  import { useGrFormControl } from "../../../composables/useGrFormControl.js";
@@ -16,10 +18,8 @@ import { t as useFocusWithin } from "../../../chunks/useFocusWithin-BwHE0rzm.js"
16
18
  import { t as useControlledOpen } from "../../../chunks/useControlledOpen-DV3SqLTP.js";
17
19
  import { useRovingFocus } from "../../../composables/useRovingFocus.js";
18
20
  import { t as useControlAddons } from "../../../chunks/useControlAddons-asUr10Pf.js";
19
- import { d as chipSizeForBadgeScale } from "../../../chunks/grChipStyles-DcDyxAL0.js";
20
- import { t as GrChip_default } from "../../GrChip/chunks/GrChip-CKqyzYcv.js";
21
- import { n as panelPopTransition } from "../../../chunks/overlayPanelSurface-BKeMhRx4.js";
22
- import { a as autocompleteShellClass, i as autocompletePanelClasses, o as autocompleteStateClass, r as autocompleteOptionClass } from "../../../chunks/config-BHLMTJaR.js";
21
+ import { d as chipSizeForBadgeScale } from "../../../chunks/grChipStyles-CA9Wj1_E.js";
22
+ import { t as GrChip_default } from "../../GrChip/chunks/GrChip-DoyS1Dr4.js";
23
23
  import { t as check_default } from "../../../chunks/check-BZI24Qs4.js";
24
24
  import { t as chevron_down_default } from "../../../chunks/chevron-down-CQS2OG_s.js";
25
25
  import { t as _plugin_vue_export_helper_default } from "../../../chunks/_plugin-vue_export-helper-BOaGB7Aw.js";
@@ -85,7 +85,7 @@ function useRemoteOptions(options) {
85
85
  * и remote-результаты исчезали бы прямо посреди выбора.
86
86
  */
87
87
  function optionsSignature(list) {
88
- return (list ?? []).map((o) => `${String(o.value)}\u0000${o.label}`).join("");
88
+ return (list ?? []).map((item) => isAutocompleteOptionGroup(item) ? `${item.label}\u0000${optionsSignature(item.options)}` : `${String(item.value)}\u0000${item.label}`).join("");
89
89
  }
90
90
  watch(() => optionsSignature(options.options()), () => {
91
91
  if (!options.fetchOptions()) return;
@@ -106,6 +106,11 @@ function useRemoteOptions(options) {
106
106
  //#region src/components/GrAutocomplete/composables/useAutocompleteValues.ts
107
107
  function useAutocompleteValues(options) {
108
108
  const optionsResolved = computed(() => options.fetchOptions() && options.remoteAnswered.value ? options.remoteOptions.value : options.options() ?? []);
109
+ /**
110
+ * Плоский список: метку выбранного значения и проверку «такое уже есть» группы
111
+ * не касаются — они про показ, а не про состав.
112
+ */
113
+ const flatOptions = computed(() => optionsResolved.value.flatMap((item) => isAutocompleteOptionGroup(item) ? item.options : [item]));
109
114
  /** `0` — валидное значение, поэтому «пусто» проверяется явно, а не через falsy. */
110
115
  function isEmptyValue(value) {
111
116
  return value === void 0 || value === null || value === "";
@@ -123,16 +128,17 @@ function useAutocompleteValues(options) {
123
128
  const selectedValues = computed(() => options.multiple() ? toArray(options.modelValue()) : isEmptyValue(modelSingle.value) ? [] : [modelSingle.value]);
124
129
  const hasSelection = computed(() => selectedValues.value.length > 0);
125
130
  function labelFor(value) {
126
- return optionsResolved.value.find((o) => o.value === value)?.label ?? String(value);
131
+ return flatOptions.value.find((o) => o.value === value)?.label ?? String(value);
127
132
  }
128
133
  return {
129
134
  optionsResolved,
135
+ flatOptions,
130
136
  isEmptyValue,
131
137
  modelSingle,
132
138
  selectedValues,
133
139
  hasSelection,
134
140
  labelFor,
135
- selectedOptions: computed(() => resolveSelectedOptions(selectedValues.value, optionsResolved.value)),
141
+ selectedOptions: computed(() => resolveSelectedOptions(selectedValues.value, flatOptions.value)),
136
142
  singleSelectedLabel: computed(() => options.multiple() || isEmptyValue(modelSingle.value) ? "" : labelFor(modelSingle.value))
137
143
  };
138
144
  }
@@ -144,102 +150,75 @@ function useAutocompletePanel(options) {
144
150
  if (!options.multiple() && !options.dirty.value) return "";
145
151
  return options.query.value.trim();
146
152
  });
147
- const filteredOptions = computed(() => filterOptions(options.optionsResolved.value, searchQuery.value, options.filter()));
153
+ /**
154
+ * Строки панели: группы сохраняются, фильтр применяется к их содержимому, и
155
+ * группа, у которой ничего не совпало, исчезает целиком вместе с заголовком —
156
+ * заголовок над пустотой читается как сбой, а не как «здесь ничего нет».
157
+ */
158
+ const filteredItems = computed(() => {
159
+ const items = [];
160
+ options.optionsResolved.value.forEach((item, index) => {
161
+ if (isAutocompleteOptionGroup(item)) {
162
+ const matched = filterOptions(item.options, searchQuery.value, options.filter());
163
+ if (!matched.length) return;
164
+ const groupKey = `__group__${index}`;
165
+ items.push({
166
+ kind: "group",
167
+ label: item.label,
168
+ key: groupKey
169
+ });
170
+ for (const option of matched) items.push({
171
+ kind: "option",
172
+ option,
173
+ key: `${index}:${String(option.value)}`,
174
+ groupKey
175
+ });
176
+ return;
177
+ }
178
+ if (filterOptions([item], searchQuery.value, options.filter()).length) items.push({
179
+ kind: "option",
180
+ option: item,
181
+ key: `${index}:${String(item.value)}`
182
+ });
183
+ });
184
+ return items;
185
+ });
148
186
  const belowMinQuery = computed(() => options.minQueryLength() > 0 && options.query.value.trim().length < options.minQueryLength());
149
187
  /**
150
188
  * Опции к показу и навигации. Ниже `minQueryLength` — пусто: список ещё
151
189
  * относится к прошлому запросу, показывать его под подсказкой «введите ещё N»
152
190
  * значит дезинформировать.
153
191
  */
154
- const effectiveOptions = computed(() => belowMinQuery.value ? [] : filteredOptions.value);
192
+ const panelItems = computed(() => belowMinQuery.value ? [] : filteredItems.value);
193
+ const panelRows = computed(() => buildOptionPanelRows(panelItems.value));
194
+ const effectiveOptions = computed(() => panelItems.value.flatMap((item) => item.kind === "option" ? [item.option] : []));
155
195
  const canAddCustom = computed(() => {
156
196
  if (!options.allowCustomValue()) return false;
157
197
  const v = options.query.value.trim();
158
198
  if (!v) return false;
159
199
  if (options.multiple() && options.selectedValues.value.includes(v)) return false;
160
200
  if (!options.multiple() && v === options.modelSingle.value) return false;
161
- return !options.optionsResolved.value.some((o) => o.value === v || o.label === v);
201
+ return !options.flatOptions.value.some((o) => o.value === v || o.label === v);
162
202
  });
163
203
  return {
164
204
  searchQuery,
165
205
  belowMinQuery,
206
+ panelItems,
207
+ panelRows,
166
208
  effectiveOptions,
167
209
  canAddCustom,
168
210
  showEmpty: computed(() => !options.isLoading.value && effectiveOptions.value.length === 0 && !canAddCustom.value)
169
211
  };
170
212
  }
171
213
  //#endregion
172
- //#region src/components/GrAutocomplete/composables/useAutocompleteVirtual.ts
173
- /** Оценка высоты опции: `py-2` вокруг строки кегля `sm`. Уточняется замером. */
174
- var OPTION_SIZE_ESTIMATE = 36;
175
- function useAutocompleteVirtual(options) {
176
- const addOffset = computed(() => options.canAddCustom.value ? 1 : 0);
177
- const virtualCount = computed(() => options.effectiveOptions.value.length + addOffset.value);
178
- const virtualizer = useVirtualList({
179
- container: options.listboxEl,
180
- count: () => options.virtual() ? virtualCount.value : 0,
181
- source: () => options.effectiveOptions.value,
182
- itemSize: OPTION_SIZE_ESTIMATE,
183
- viewportSize: () => options.dropdownMaxHeight()
184
- });
185
- /** Виден ли «Add …»: вне виртуального окна его рисовать нельзя — он элемент набора. */
186
- const showAddOption = computed(() => {
187
- if (!options.canAddCustom.value) return false;
188
- return !options.virtual() || virtualizer.range.value.start === 0;
189
- });
190
- /** Опции к отрисовке вместе с их абсолютным индексом в `effectiveOptions`. */
191
- const renderedOptions = computed(() => {
192
- const all = options.effectiveOptions.value;
193
- if (!options.virtual()) return all.map((option, index) => ({
194
- option,
195
- index
196
- }));
197
- const { start, end } = virtualizer.range.value;
198
- const from = Math.max(0, start - addOffset.value);
199
- const to = Math.max(0, end - addOffset.value);
200
- return all.slice(from, to).map((option, offset) => ({
201
- option,
202
- index: from + offset
203
- }));
204
- });
205
- /**
206
- * Размер набора и позиция в нём объявляются только при виртуализации: в обычном
207
- * режиме диктор выводит их из DOM, а при неполном наборе получил бы «3 из 15»
208
- * на списке в десять тысяч.
209
- */
210
- function optionSetProps(virtualIndex) {
211
- if (!options.virtual()) return void 0;
212
- return {
213
- "aria-setsize": virtualCount.value,
214
- "aria-posinset": virtualIndex + 1
215
- };
216
- }
217
- return {
218
- addOffset,
219
- virtualCount,
220
- virtualizer,
221
- showAddOption,
222
- renderedOptions,
223
- optionSetProps,
224
- listboxStyle: computed(() => {
225
- const base = { maxHeight: `${options.dropdownMaxHeight()}px` };
226
- if (!options.virtual()) return base;
227
- return {
228
- ...base,
229
- ...virtualizer.spacerStyle.value
230
- };
231
- })
232
- };
233
- }
234
- //#endregion
235
214
  //#region src/components/GrAutocomplete/composables/useAutocompleteNavigation.ts
236
215
  function useAutocompleteNavigation(options) {
237
216
  const navigableItems = computed(() => {
238
217
  const items = options.canAddCustom.value ? [{ kind: "add" }] : [];
239
- options.effectiveOptions.value.forEach((option, index) => {
240
- if (!option.disabled) items.push({
218
+ options.panelItems.value.forEach((item, index) => {
219
+ if (item.kind === "option" && !item.option.disabled) items.push({
241
220
  kind: "option",
242
- option,
221
+ option: item.option,
243
222
  index
244
223
  });
245
224
  });
@@ -248,8 +227,22 @@ function useAutocompleteNavigation(options) {
248
227
  function isSelected(value) {
249
228
  return options.selectedValues.value.includes(value);
250
229
  }
251
- function navigableIndexOf(value) {
252
- return navigableItems.value.findIndex((item) => item.kind === "option" && item.option.value === value);
230
+ /**
231
+ * Navigable-индекс по позиции в `panelItems` O(1) на каждое движение мыши
232
+ * вместо поиска по значению.
233
+ *
234
+ * Поиск по значению здесь ещё и неверен: одно и то же значение может стоять в
235
+ * двух группах, и наведение на вторую опцию подсвечивало бы первую.
236
+ */
237
+ const navigableIndexByPanelIndex = computed(() => {
238
+ const map = /* @__PURE__ */ new Map();
239
+ navigableItems.value.forEach((item, navIndex) => {
240
+ if (item.kind === "option") map.set(item.index, navIndex);
241
+ });
242
+ return map;
243
+ });
244
+ function navigableIndexOfPanelIndex(index) {
245
+ return navigableIndexByPanelIndex.value.get(index) ?? -1;
253
246
  }
254
247
  /** Прокрутка к активному: сперва окно виртуального списка, затем доводка. */
255
248
  async function scrollActiveIntoView(item) {
@@ -268,7 +261,7 @@ function useAutocompleteNavigation(options) {
268
261
  return {
269
262
  navigableItems,
270
263
  isSelected,
271
- navigableIndexOf,
264
+ navigableIndexOfPanelIndex,
272
265
  activeIndex,
273
266
  activeItem,
274
267
  activeDescendantId,
@@ -315,7 +308,9 @@ var _hoisted_7 = [
315
308
  "aria-multiselectable"
316
309
  ];
317
310
  var _hoisted_8 = ["id"];
318
- var _hoisted_9 = [
311
+ var _hoisted_9 = ["aria-labelledby", "aria-label"];
312
+ var _hoisted_10 = ["id"];
313
+ var _hoisted_11 = [
319
314
  "id",
320
315
  "disabled",
321
316
  "aria-selected",
@@ -323,22 +318,36 @@ var _hoisted_9 = [
323
318
  "onClick",
324
319
  "onMousemove"
325
320
  ];
326
- var _hoisted_10 = { class: "flex items-center gap-2 min-w-0" };
327
- var _hoisted_11 = {
321
+ var _hoisted_12 = { class: "flex items-center gap-2 min-w-0" };
322
+ var _hoisted_13 = {
328
323
  class: "inline-block h-4 w-4 shrink-0",
329
324
  "aria-hidden": "true"
330
325
  };
331
- var _hoisted_12 = { class: "truncate" };
332
- var _hoisted_13 = {
326
+ var _hoisted_14 = { class: "truncate" };
327
+ var _hoisted_15 = [
328
+ "id",
329
+ "disabled",
330
+ "aria-selected",
331
+ "aria-disabled",
332
+ "onClick",
333
+ "onMousemove"
334
+ ];
335
+ var _hoisted_16 = { class: "flex items-center gap-2 min-w-0" };
336
+ var _hoisted_17 = {
337
+ class: "inline-block h-4 w-4 shrink-0",
338
+ "aria-hidden": "true"
339
+ };
340
+ var _hoisted_18 = { class: "truncate" };
341
+ var _hoisted_19 = {
333
342
  key: 0,
334
343
  "data-gr-autocomplete-loading": "",
335
344
  class: "flex items-center gap-2"
336
345
  };
337
- var _hoisted_14 = {
346
+ var _hoisted_20 = {
338
347
  key: 1,
339
348
  "data-gr-autocomplete-hint": ""
340
349
  };
341
- var _hoisted_15 = {
350
+ var _hoisted_21 = {
342
351
  key: 2,
343
352
  "data-gr-autocomplete-empty": ""
344
353
  };
@@ -487,7 +496,7 @@ var GrAutocomplete_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
487
496
  onSearch: (value) => emit("search", value),
488
497
  onSearchError: (error) => emit("searchError", error)
489
498
  });
490
- const { optionsResolved, modelSingle, selectedValues, hasSelection, selectedOptions, singleSelectedLabel } = useAutocompleteValues({
499
+ const { optionsResolved, flatOptions, modelSingle, selectedValues, hasSelection, selectedOptions, singleSelectedLabel } = useAutocompleteValues({
491
500
  modelValue: () => props.modelValue,
492
501
  options: () => props.options,
493
502
  multiple: () => props.multiple,
@@ -527,8 +536,9 @@ var GrAutocomplete_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
527
536
  zIndexVar: "--gr-z-dropdown"
528
537
  });
529
538
  useDismissible(open, closeDropdown);
530
- const { belowMinQuery, effectiveOptions, canAddCustom, showEmpty } = useAutocompletePanel({
539
+ const { belowMinQuery, panelItems, panelRows, canAddCustom, showEmpty } = useAutocompletePanel({
531
540
  optionsResolved,
541
+ flatOptions,
532
542
  query,
533
543
  dirty,
534
544
  filterable: () => props.filterable,
@@ -551,21 +561,26 @@ var GrAutocomplete_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
551
561
  return `${listboxId}-opt-${index}`;
552
562
  }
553
563
  const addOptionDomId = computed(() => `${listboxId}-add`);
554
- const { addOffset, virtualizer, showAddOption, renderedOptions, optionSetProps, listboxStyle } = useAutocompleteVirtual({
564
+ const { virtualEnabled, addOffset, scrollToIndex: scrollVirtualToIndex, measure: measureVirtualRow, optionSetProps, leadingRowSetProps, showLeadingRow: showAddOption, renderedPanelRows, listboxStyle } = useOptionPanelVirtualization({
565
+ panelItems,
566
+ panelRows,
567
+ hasLeadingRow: canAddCustom,
555
568
  listboxEl,
556
- effectiveOptions,
557
- canAddCustom,
558
- virtual: () => props.virtual,
559
- dropdownMaxHeight: () => props.dropdownMaxHeight
569
+ enabled: () => props.virtual,
570
+ maxHeight: () => props.dropdownMaxHeight
560
571
  });
561
- const { isSelected, navigableIndexOf, activeIndex, activeItem, activeDescendantId, activeValue, initActiveIndex, resetActive, handleNavigationKeys } = useAutocompleteNavigation({
562
- effectiveOptions,
572
+ /** Имя группы для `aria-labelledby`: заголовок живёт внутри своей группы. */
573
+ function groupLabelId(groupKey) {
574
+ return `${listboxId}-${groupKey}`;
575
+ }
576
+ const { isSelected, navigableIndexOfPanelIndex, activeIndex, activeItem, activeDescendantId, initActiveIndex, resetActive, handleNavigationKeys } = useAutocompleteNavigation({
577
+ panelItems,
563
578
  canAddCustom,
564
579
  selectedValues,
565
580
  open,
566
581
  virtual: () => props.virtual,
567
582
  addOffset,
568
- scrollToIndex: (index) => virtualizer.scrollToIndex(index),
583
+ scrollToIndex: scrollVirtualToIndex,
569
584
  optionDomId,
570
585
  addOptionDomId
571
586
  });
@@ -742,8 +757,8 @@ var GrAutocomplete_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
742
757
  ref: rootEl,
743
758
  "data-gr-autocomplete": "",
744
759
  class: "relative w-full",
745
- onFocusin: _cache[3] || (_cache[3] = (...args) => unref(onFocusIn) && unref(onFocusIn)(...args)),
746
- onFocusout: _cache[4] || (_cache[4] = (...args) => unref(onFocusOut) && unref(onFocusOut)(...args))
760
+ onFocusin: _cache[4] || (_cache[4] = (...args) => unref(onFocusIn) && unref(onFocusIn)(...args)),
761
+ onFocusout: _cache[5] || (_cache[5] = (...args) => unref(onFocusOut) && unref(onFocusOut)(...args))
747
762
  }, [
748
763
  createElementVNode("div", {
749
764
  "data-gr-autocomplete-shell": "",
@@ -874,14 +889,14 @@ var GrAutocomplete_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
874
889
  "data-gr-autocomplete-panel": "",
875
890
  "data-gr-overlay-root": "",
876
891
  style: unref(floatingStyle)
877
- }), [createElementVNode("div", { class: normalizeClass(unref(autocompletePanelClasses)) }, [unref(showAddOption) || unref(renderedOptions).length ? (openBlock(), createElementBlock("div", {
892
+ }), [createElementVNode("div", { class: normalizeClass(unref(autocompletePanelClasses)) }, [unref(showAddOption) || unref(renderedPanelRows).length ? (openBlock(), createElementBlock("div", {
878
893
  key: 0,
879
894
  id: unref(listboxId),
880
895
  ref_key: "listboxEl",
881
896
  ref: listboxEl,
882
897
  "data-gr-autocomplete-listbox": "",
883
898
  "data-gr-virtual": __props.virtual ? "" : void 0,
884
- class: normalizeClass(["p-1 overflow-auto", __props.virtual ? "flex flex-col" : ""]),
899
+ class: normalizeClass(["p-1 min-h-0 overflow-auto", __props.virtual ? "flex flex-col" : ""]),
885
900
  style: normalizeStyle(unref(listboxStyle)),
886
901
  role: "listbox",
887
902
  "aria-multiselectable": __props.multiple ? "true" : void 0
@@ -892,7 +907,7 @@ var GrAutocomplete_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
892
907
  role: "option",
893
908
  "aria-selected": "false",
894
909
  tabindex: "-1"
895
- }, unref(optionSetProps)(0), {
910
+ }, unref(leadingRowSetProps), {
896
911
  "data-testid": "gr-autocomplete-add-option",
897
912
  "data-gr-autocomplete-add-option": "",
898
913
  class: unref(autocompleteOptionClass)({
@@ -902,44 +917,87 @@ var GrAutocomplete_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
902
917
  onMousedown: _cache[0] || (_cache[0] = withModifiers(() => {}, ["prevent"])),
903
918
  onClick: commitCustom,
904
919
  onMousemove: _cache[1] || (_cache[1] = ($event) => activeIndex.value = 0)
905
- }), toDisplayString(unref(t)("gr.autocomplete.addOption", "Add \"{value}\"", { value: query.value.trim() })), 17, _hoisted_8)) : createCommentVNode("", true), (openBlock(true), createElementBlock(Fragment, null, renderList(unref(renderedOptions), ({ option, index: optionIndex }) => {
906
- return openBlock(), createElementBlock("button", mergeProps({
907
- id: optionDomId(optionIndex),
908
- key: option.value,
920
+ }), toDisplayString(unref(t)("gr.autocomplete.addOption", "Add \"{value}\"", { value: query.value.trim() })), 17, _hoisted_8)) : createCommentVNode("", true), (openBlock(true), createElementBlock(Fragment, null, renderList(unref(renderedPanelRows), (row) => {
921
+ return openBlock(), createElementBlock(Fragment, { key: row.key }, [row.kind === "group" ? (openBlock(), createElementBlock("div", {
922
+ key: 0,
923
+ "data-gr-autocomplete-group": "",
924
+ role: "group",
925
+ class: normalizeClass(unref(virtualEnabled) ? "flex flex-col" : ""),
926
+ "aria-labelledby": unref(virtualEnabled) ? void 0 : groupLabelId(row.key),
927
+ "aria-label": unref(virtualEnabled) ? row.label : void 0
928
+ }, [row.labelVisible !== false ? (openBlock(), createElementBlock("div", {
929
+ key: 0,
930
+ id: groupLabelId(row.key),
931
+ ref_for: true,
932
+ ref: (el) => unref(virtualEnabled) && row.labelIndex !== void 0 && unref(measureVirtualRow)(row.labelIndex + unref(addOffset), el),
933
+ "data-gr-autocomplete-group-label": "",
934
+ role: "presentation",
935
+ class: "px-3 pt-2 pb-1 text-[length:var(--gr-text-xs)] leading-[var(--gr-leading-xs)] font-semibold uppercase tracking-wide text-[var(--gr-muted-fg)]"
936
+ }, toDisplayString(row.label), 9, _hoisted_10)) : createCommentVNode("", true), (openBlock(true), createElementBlock(Fragment, null, renderList(row.options, (child) => {
937
+ return openBlock(), createElementBlock("button", mergeProps({
938
+ id: optionDomId(child.index),
939
+ key: child.key,
940
+ ref_for: true,
941
+ ref: (el) => unref(virtualEnabled) && unref(measureVirtualRow)(child.index + unref(addOffset), el),
942
+ "data-gr-autocomplete-option": "",
943
+ type: "button",
944
+ role: "option",
945
+ tabindex: "-1"
946
+ }, { ref_for: true }, unref(optionSetProps)(child.index), {
947
+ disabled: child.option.disabled,
948
+ "aria-selected": unref(isSelected)(child.option.value) ? "true" : "false",
949
+ "aria-disabled": child.option.disabled ? "true" : void 0,
950
+ class: unref(autocompleteOptionClass)({
951
+ disabled: !!child.option.disabled,
952
+ active: unref(activeItem)?.kind === "option" && unref(activeItem).index === child.index
953
+ }),
954
+ onMousedown: _cache[2] || (_cache[2] = withModifiers(() => {}, ["prevent"])),
955
+ onClick: ($event) => chooseOption(child.option),
956
+ onMousemove: ($event) => activeIndex.value = unref(navigableIndexOfPanelIndex)(child.index)
957
+ }), [renderSlot(_ctx.$slots, "option", {
958
+ option: child.option,
959
+ selected: unref(isSelected)(child.option.value)
960
+ }, () => [createElementVNode("span", _hoisted_12, [createElementVNode("span", _hoisted_13, [unref(isSelected)(child.option.value) ? (openBlock(), createBlock(unref(check_default), {
961
+ key: 0,
962
+ class: "block h-4 w-4 text-[var(--gr-primary-text)]"
963
+ })) : createCommentVNode("", true)]), createElementVNode("span", _hoisted_14, toDisplayString(child.option.label), 1)])], true)], 16, _hoisted_11);
964
+ }), 128))], 10, _hoisted_9)) : (openBlock(), createElementBlock("button", mergeProps({
965
+ key: 1,
966
+ id: optionDomId(row.index),
909
967
  ref_for: true,
910
- ref: (el) => __props.virtual && unref(virtualizer).measure(optionIndex + unref(addOffset), el),
968
+ ref: (el) => unref(virtualEnabled) && unref(measureVirtualRow)(row.index + unref(addOffset), el),
911
969
  "data-gr-autocomplete-option": "",
912
970
  type: "button",
913
971
  role: "option",
914
972
  tabindex: "-1"
915
- }, { ref_for: true }, unref(optionSetProps)(optionIndex + unref(addOffset)), {
916
- disabled: option.disabled,
917
- "aria-selected": unref(isSelected)(option.value) ? "true" : "false",
918
- "aria-disabled": option.disabled ? "true" : void 0,
973
+ }, { ref_for: true }, unref(optionSetProps)(row.index), {
974
+ disabled: row.option.disabled,
975
+ "aria-selected": unref(isSelected)(row.option.value) ? "true" : "false",
976
+ "aria-disabled": row.option.disabled ? "true" : void 0,
919
977
  class: unref(autocompleteOptionClass)({
920
- disabled: !!option.disabled,
921
- active: unref(activeValue) === option.value
978
+ disabled: !!row.option.disabled,
979
+ active: unref(activeItem)?.kind === "option" && unref(activeItem).index === row.index
922
980
  }),
923
- onMousedown: _cache[2] || (_cache[2] = withModifiers(() => {}, ["prevent"])),
924
- onClick: ($event) => chooseOption(option),
925
- onMousemove: ($event) => activeIndex.value = unref(navigableIndexOf)(option.value)
981
+ onMousedown: _cache[3] || (_cache[3] = withModifiers(() => {}, ["prevent"])),
982
+ onClick: ($event) => chooseOption(row.option),
983
+ onMousemove: ($event) => activeIndex.value = unref(navigableIndexOfPanelIndex)(row.index)
926
984
  }), [renderSlot(_ctx.$slots, "option", {
927
- option,
928
- selected: unref(isSelected)(option.value)
929
- }, () => [createElementVNode("span", _hoisted_10, [createElementVNode("span", _hoisted_11, [unref(isSelected)(option.value) ? (openBlock(), createBlock(unref(check_default), {
985
+ option: row.option,
986
+ selected: unref(isSelected)(row.option.value)
987
+ }, () => [createElementVNode("span", _hoisted_16, [createElementVNode("span", _hoisted_17, [unref(isSelected)(row.option.value) ? (openBlock(), createBlock(unref(check_default), {
930
988
  key: 0,
931
989
  class: "block h-4 w-4 text-[var(--gr-primary-text)]"
932
- })) : createCommentVNode("", true)]), createElementVNode("span", _hoisted_12, toDisplayString(option.label), 1)])], true)], 16, _hoisted_9);
990
+ })) : createCommentVNode("", true)]), createElementVNode("span", _hoisted_18, toDisplayString(row.option.label), 1)])], true)], 16, _hoisted_15))], 64);
933
991
  }), 128))], 14, _hoisted_7)) : createCommentVNode("", true), isLoading.value || unref(belowMinQuery) || unref(showEmpty) ? (openBlock(), createElementBlock("div", {
934
992
  key: 1,
935
993
  "data-gr-autocomplete-status": "",
936
994
  role: "status",
937
995
  "aria-live": "polite",
938
- class: normalizeClass(unref(autocompleteStateClass))
939
- }, [isLoading.value ? (openBlock(), createElementBlock("span", _hoisted_13, [renderSlot(_ctx.$slots, "loading", {}, () => [createVNode(unref(loader_circle_default), {
996
+ class: normalizeClass(["shrink-0", unref(autocompleteStateClass)])
997
+ }, [isLoading.value ? (openBlock(), createElementBlock("span", _hoisted_19, [renderSlot(_ctx.$slots, "loading", {}, () => [createVNode(unref(loader_circle_default), {
940
998
  class: "block h-4 w-4 animate-spin",
941
999
  "aria-hidden": "true"
942
- }), createElementVNode("span", null, toDisplayString(resolvedLoadingText.value), 1)], true)])) : unref(belowMinQuery) ? (openBlock(), createElementBlock("span", _hoisted_14, toDisplayString(resolvedTypeMoreText.value), 1)) : (openBlock(), createElementBlock("span", _hoisted_15, [renderSlot(_ctx.$slots, "empty", {}, () => [createTextVNode(toDisplayString(resolvedNoResultsText.value), 1)], true)]))], 2)) : createCommentVNode("", true)], 2)], 16), [[vShow, unref(open)]])]),
1000
+ }), createElementVNode("span", null, toDisplayString(resolvedLoadingText.value), 1)], true)])) : unref(belowMinQuery) ? (openBlock(), createElementBlock("span", _hoisted_20, toDisplayString(resolvedTypeMoreText.value), 1)) : (openBlock(), createElementBlock("span", _hoisted_21, [renderSlot(_ctx.$slots, "empty", {}, () => [createTextVNode(toDisplayString(resolvedNoResultsText.value), 1)], true)]))], 2)) : createCommentVNode("", true)], 2)], 16), [[vShow, unref(open)]])]),
943
1001
  _: 3
944
1002
  }, 8, [
945
1003
  "enter-active-class",
@@ -956,6 +1014,6 @@ var GrAutocomplete_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
956
1014
  }]]);
957
1015
  };
958
1016
  }
959
- }), [["__scopeId", "data-v-c4989846"]]);
1017
+ }), [["__scopeId", "data-v-103fa23f"]]);
960
1018
  //#endregion
961
1019
  export { GrAutocomplete_default as t };