@feugene/granularity 0.49.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 (368) 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-DIDz_E5m.js → config-B34mkd53.js} +66 -1
  7. package/dist/chunks/config-B34mkd53.js.map +1 -0
  8. package/dist/chunks/{config-B5SBUa6u.js → config-B7qZqiUB.js} +28 -1
  9. package/dist/chunks/config-B7qZqiUB.js.map +1 -0
  10. package/dist/chunks/config-BBrPUEye.js +8 -0
  11. package/dist/chunks/config-BBrPUEye.js.map +1 -0
  12. package/dist/chunks/{config-CT4lP6S4.js → config-BOCzHqWh.js} +2 -2
  13. package/dist/chunks/{config-CT4lP6S4.js.map → config-BOCzHqWh.js.map} +1 -1
  14. package/dist/chunks/{config-iemgzS4x.js → config-BP1ktzwh.js} +2 -24
  15. package/dist/chunks/config-BP1ktzwh.js.map +1 -0
  16. package/dist/chunks/config-BTxmdRzT.js +28 -0
  17. package/dist/chunks/config-BTxmdRzT.js.map +1 -0
  18. package/dist/chunks/{config-CjWOTgLL.js → config-Bk52xd5l.js} +12 -5
  19. package/dist/chunks/config-Bk52xd5l.js.map +1 -0
  20. package/dist/chunks/{config-D3HOuHDe.js → config-C3SqBqSQ.js} +3 -1
  21. package/dist/chunks/config-C3SqBqSQ.js.map +1 -0
  22. package/dist/chunks/{config-2ZHRsdOc.js → config-C3uqd-sW.js} +1 -1
  23. package/dist/chunks/config-C3uqd-sW.js.map +1 -0
  24. package/dist/chunks/{config-BXRmsn3t.js → config-CPhcZzHi.js} +72 -10
  25. package/dist/chunks/config-CPhcZzHi.js.map +1 -0
  26. package/dist/chunks/config-CWtfxkM9.js.map +1 -1
  27. package/dist/chunks/{config--t2dxj0t.js → config-CmLTCmY9.js} +2 -2
  28. package/dist/chunks/{config--t2dxj0t.js.map → config-CmLTCmY9.js.map} +1 -1
  29. package/dist/chunks/{config-BAse0laT.js → config-CvtqB4ki.js} +8 -3
  30. package/dist/chunks/config-CvtqB4ki.js.map +1 -0
  31. package/dist/chunks/{config-BcXX7S7B.js → config-D-JgqV0J.js} +5 -1
  32. package/dist/chunks/{config-BcXX7S7B.js.map → config-D-JgqV0J.js.map} +1 -1
  33. package/dist/chunks/{config-BHLMTJaR.js → config-D1oVht-E.js} +8 -3
  34. package/dist/chunks/config-D1oVht-E.js.map +1 -0
  35. package/dist/chunks/{config-B42iJ48O.js → config-DG41PD9i.js} +13 -1
  36. package/dist/chunks/config-DG41PD9i.js.map +1 -0
  37. package/dist/chunks/{config-Bs1HwUcx.js → config-DPJ3jtiB.js} +12 -2
  38. package/dist/chunks/config-DPJ3jtiB.js.map +1 -0
  39. package/dist/chunks/{config-tNqtapcT.js → config-DpqjlCfB.js} +2 -2
  40. package/dist/chunks/{config-tNqtapcT.js.map → config-DpqjlCfB.js.map} +1 -1
  41. package/dist/chunks/{config-DNDgp9bB.js → config-DpzFoSIh.js} +64 -2
  42. package/dist/chunks/config-DpzFoSIh.js.map +1 -0
  43. package/dist/chunks/config-SPugeaHT.js +37 -0
  44. package/dist/chunks/config-SPugeaHT.js.map +1 -0
  45. package/dist/chunks/{en-CsQUoBS2.js → en-mIFywnV2.js} +22 -6
  46. package/dist/chunks/en-mIFywnV2.js.map +1 -0
  47. package/dist/chunks/{es-9nbkPvdA.js → es-CvthYwtB.js} +22 -6
  48. package/dist/chunks/es-CvthYwtB.js.map +1 -0
  49. package/dist/chunks/{es-DrUz5J6I.js → es-DlGd6Mrj.js} +3 -3
  50. package/dist/chunks/{es-DrUz5J6I.js.map → es-DlGd6Mrj.js.map} +1 -1
  51. package/dist/chunks/{generated-CxvC5O0V.js → generated-Cx4C7GRN.js} +84 -0
  52. package/dist/chunks/{generated-CxvC5O0V.js.map → generated-Cx4C7GRN.js.map} +1 -1
  53. package/dist/chunks/{grPopoverStyles-CYAeO3Ov.js → grPopoverStyles-CncEkiPu.js} +1 -1
  54. package/dist/chunks/{grPopoverStyles-CYAeO3Ov.js.map → grPopoverStyles-CncEkiPu.js.map} +1 -1
  55. package/dist/chunks/{grSelectStyles-D9EQ-pgK.js → grSelectStyles-Cam-IG9s.js} +3 -2
  56. package/dist/chunks/grSelectStyles-Cam-IG9s.js.map +1 -0
  57. package/dist/chunks/{grSliderStyles-kaz6VXZ3.js → grSliderStyles-CqzV0hll.js} +1 -1
  58. package/dist/chunks/grSliderStyles-CqzV0hll.js.map +1 -0
  59. package/dist/chunks/{config-CbEbLyDE.js → grSortableListStyles-CxieDmpe.js} +1 -27
  60. package/dist/chunks/grSortableListStyles-CxieDmpe.js.map +1 -0
  61. package/dist/chunks/grTableStyles-CPSxDTOW.js +66 -0
  62. package/dist/chunks/grTableStyles-CPSxDTOW.js.map +1 -0
  63. package/dist/chunks/{config-CMNfZO7S.js → grTabsStyles-DIz2VdIm.js} +1 -36
  64. package/dist/chunks/grTabsStyles-DIz2VdIm.js.map +1 -0
  65. package/dist/chunks/grTooltipStyles-CtbGEEGV.js +24 -0
  66. package/dist/chunks/grTooltipStyles-CtbGEEGV.js.map +1 -0
  67. package/dist/chunks/{granular-provider-B6xomapW.js → granular-provider-cv5vaM1a.js} +21 -19
  68. package/dist/chunks/granular-provider-cv5vaM1a.js.map +1 -0
  69. package/dist/chunks/hotkeySequence-BTHIM_5A.js +46 -0
  70. package/dist/chunks/hotkeySequence-BTHIM_5A.js.map +1 -0
  71. package/dist/chunks/{keyboard-DE2yhz_b.js → keyboard-BiFSgWLt.js} +70 -1
  72. package/dist/chunks/keyboard-BiFSgWLt.js.map +1 -0
  73. package/dist/chunks/optionPanel-DvY7Tv_4.js +182 -0
  74. package/dist/chunks/optionPanel-DvY7Tv_4.js.map +1 -0
  75. package/dist/chunks/overlayListPanel-D91jBCHU.js +21 -0
  76. package/dist/chunks/overlayListPanel-D91jBCHU.js.map +1 -0
  77. package/dist/chunks/{overlayStack-DH4Z7am1.js → overlayStack-DCkCgXZP.js} +1 -1
  78. package/dist/chunks/{overlayStack-DH4Z7am1.js.map → overlayStack-DCkCgXZP.js.map} +1 -1
  79. package/dist/chunks/{overlayPanelSurface-BKeMhRx4.js → overlayTransition-C0FDMx7Q.js} +24 -24
  80. package/dist/chunks/overlayTransition-C0FDMx7Q.js.map +1 -0
  81. package/dist/chunks/{ru-88i1WG0b.js → ru-CQKDR-kD.js} +22 -6
  82. package/dist/chunks/ru-CQKDR-kD.js.map +1 -0
  83. package/dist/chunks/{useMenuItemsFocus-B7Bl_aFA.js → useMenuItemsFocus-C031blYS.js} +1 -1
  84. package/dist/chunks/{useMenuItemsFocus-B7Bl_aFA.js.map → useMenuItemsFocus-C031blYS.js.map} +1 -1
  85. package/dist/chunks/{useModalOverlay-ACRkflzx.js → useModalOverlay-CKCQkGdB.js} +1 -1
  86. package/dist/chunks/{useModalOverlay-ACRkflzx.js.map → useModalOverlay-CKCQkGdB.js.map} +1 -1
  87. package/dist/components/GrAutocomplete/chunks/{GrAutocomplete-Chhw65pI.js → GrAutocomplete-Cyr1-ENw.js} +181 -123
  88. package/dist/components/GrAutocomplete/chunks/GrAutocomplete-Cyr1-ENw.js.map +1 -0
  89. package/dist/components/GrAutocomplete/index.js +2 -2
  90. package/dist/components/GrAutocomplete/styles.css +1 -1
  91. package/dist/components/GrCarousel/chunks/{GrCarousel-ByuughtI.js → GrCarousel-CBj-PEPB.js} +186 -37
  92. package/dist/components/GrCarousel/chunks/GrCarousel-CBj-PEPB.js.map +1 -0
  93. package/dist/components/GrCarousel/index.js +2 -2
  94. package/dist/components/GrCarousel/styles.css +1 -1
  95. package/dist/components/GrCheckbox/chunks/{GrCheckbox-Dp201frb.js → GrCheckbox-B4NJc7Ur.js} +2 -1
  96. package/dist/components/GrCheckbox/chunks/GrCheckbox-B4NJc7Ur.js.map +1 -0
  97. package/dist/components/GrCheckbox/index.js +1 -1
  98. package/dist/components/GrCheckboxGroup/chunks/{GrCheckboxGroup-IpqG5qwm.js → GrCheckboxGroup-qZHpNFCX.js} +1 -1
  99. package/dist/components/GrCheckboxGroup/chunks/{GrCheckboxGroup-IpqG5qwm.js.map → GrCheckboxGroup-qZHpNFCX.js.map} +1 -1
  100. package/dist/components/GrCheckboxGroup/index.js +1 -1
  101. package/dist/components/GrColorPicker/chunks/{GrColorPicker-BRM_4lyI.js → GrColorPicker-vGSgpUV9.js} +353 -38
  102. package/dist/components/GrColorPicker/chunks/GrColorPicker-vGSgpUV9.js.map +1 -0
  103. package/dist/components/GrColorPicker/index.js +2 -2
  104. package/dist/components/GrColorPicker/styles.css +1 -1
  105. package/dist/components/GrCommandPalette/chunks/{GrCommandPalette-BJHmkDQv.js → GrCommandPalette-CAHgj0Aa.js} +23 -7
  106. package/dist/components/GrCommandPalette/chunks/GrCommandPalette-CAHgj0Aa.js.map +1 -0
  107. package/dist/components/GrCommandPalette/index.js +1 -1
  108. package/dist/components/GrCommandPalette/styles.css +1 -1
  109. package/dist/components/GrConfirmDialog/chunks/{GrConfirmDialog-BzUQwbec.js → GrConfirmDialog-dg021BMd.js} +1 -1
  110. package/dist/components/GrConfirmDialog/chunks/{GrConfirmDialog-BzUQwbec.js.map → GrConfirmDialog-dg021BMd.js.map} +1 -1
  111. package/dist/components/GrConfirmDialog/index.js +1 -1
  112. package/dist/components/GrContextMenu/chunks/{GrContextMenu-RpxMHQXH.js → GrContextMenu-bQ1Vvy2c.js} +3 -3
  113. package/dist/components/GrContextMenu/chunks/{GrContextMenu-RpxMHQXH.js.map → GrContextMenu-bQ1Vvy2c.js.map} +1 -1
  114. package/dist/components/GrContextMenu/index.js +1 -1
  115. package/dist/components/GrDataTable/chunks/{GrDataTable-DQxYYgQk.js → GrDataTable-Bb2jWnRG.js} +576 -136
  116. package/dist/components/GrDataTable/chunks/GrDataTable-Bb2jWnRG.js.map +1 -0
  117. package/dist/components/GrDataTable/index.js +2 -2
  118. package/dist/components/GrDelta/chunks/{GrDelta-CgTvfoIN.js → GrDelta-BSv1KdMy.js} +0 -0
  119. package/dist/components/GrDelta/chunks/{GrDelta-CgTvfoIN.js.map → GrDelta-BSv1KdMy.js.map} +1 -1
  120. package/dist/components/GrDelta/index.js +2 -2
  121. package/dist/components/GrDialog/chunks/{GrDialog-DDz_OEhk.js → GrDialog-C9Zu72jB.js} +1 -1
  122. package/dist/components/GrDialog/chunks/{GrDialog-DDz_OEhk.js.map → GrDialog-C9Zu72jB.js.map} +1 -1
  123. package/dist/components/GrDialog/index.js +1 -1
  124. package/dist/components/GrDialogService/chunks/{GrDialogService-Dtq0ZCN5.js → GrDialogService-DLBifO61.js} +2 -2
  125. package/dist/components/GrDialogService/chunks/{GrDialogService-Dtq0ZCN5.js.map → GrDialogService-DLBifO61.js.map} +1 -1
  126. package/dist/components/GrDialogService/index.js +1 -1
  127. package/dist/components/GrDrawer/chunks/{GrDrawer-CNpSMuN-.js → GrDrawer-DOcRTE8G.js} +1 -1
  128. package/dist/components/GrDrawer/chunks/{GrDrawer-CNpSMuN-.js.map → GrDrawer-DOcRTE8G.js.map} +1 -1
  129. package/dist/components/GrDrawer/index.js +1 -1
  130. package/dist/components/GrDropdown/chunks/{GrDropdown-cLZuZMEY.js → GrDropdown-kxwmgfSe.js} +2 -2
  131. package/dist/components/GrDropdown/chunks/{GrDropdown-cLZuZMEY.js.map → GrDropdown-kxwmgfSe.js.map} +1 -1
  132. package/dist/components/GrDropdown/index.js +2 -2
  133. package/dist/components/GrDropdownMenu/chunks/{GrDropdownMenu-Dxkz_ry4.js → GrDropdownMenu--VoK3VY0.js} +3 -34
  134. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu--VoK3VY0.js.map +1 -0
  135. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-CkM3BFPL.js +34 -0
  136. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-CkM3BFPL.js.map +1 -0
  137. package/dist/components/GrDropdownMenu/index.js +2 -1
  138. package/dist/components/GrEmptyState/chunks/{GrEmptyState-BbvwE-E0.js → GrEmptyState-Bz6-_ED4.js} +42 -6
  139. package/dist/components/GrEmptyState/chunks/GrEmptyState-Bz6-_ED4.js.map +1 -0
  140. package/dist/components/GrEmptyState/index.js +1 -1
  141. package/dist/components/GrFileUpload/chunks/{GrFileUpload-BwMR71zN.js → GrFileUpload-Bgdfnkd8.js} +5 -2
  142. package/dist/components/GrFileUpload/chunks/GrFileUpload-Bgdfnkd8.js.map +1 -0
  143. package/dist/components/GrFileUpload/index.js +1 -1
  144. package/dist/components/GrFormFile/chunks/{GrFormFile-Dlxx-9zi.js → GrFormFile-Ctq1isz-.js} +78 -11
  145. package/dist/components/GrFormFile/chunks/GrFormFile-Ctq1isz-.js.map +1 -0
  146. package/dist/components/GrFormFile/index.js +2 -2
  147. package/dist/components/GrFormFile/styles.css +1 -1
  148. package/dist/components/GrImageViewer/chunks/{GrImageViewer-DK-iVHHC.js → GrImageViewer-Bnql_dNP.js} +1 -1
  149. package/dist/components/GrImageViewer/chunks/{GrImageViewer-DK-iVHHC.js.map → GrImageViewer-Bnql_dNP.js.map} +1 -1
  150. package/dist/components/GrImageViewer/index.js +1 -1
  151. package/dist/components/GrInput/chunks/{GrInput-DV4gMWPR.js → GrInput-CoaFLpaU.js} +43 -22
  152. package/dist/components/GrInput/chunks/GrInput-CoaFLpaU.js.map +1 -0
  153. package/dist/components/GrInput/index.js +1 -1
  154. package/dist/components/GrInputTag/chunks/{GrInputTag-qnRdAZnn.js → GrInputTag-BzzNRBe3.js} +245 -18
  155. package/dist/components/GrInputTag/chunks/GrInputTag-BzzNRBe3.js.map +1 -0
  156. package/dist/components/GrInputTag/index.js +2 -2
  157. package/dist/components/GrJsonViewer/chunks/{GrJsonViewer-D7CyWzhT.js → GrJsonViewer-B6ZJ3GFH.js} +2 -2
  158. package/dist/components/GrJsonViewer/chunks/{GrJsonViewer-D7CyWzhT.js.map → GrJsonViewer-B6ZJ3GFH.js.map} +1 -1
  159. package/dist/components/GrJsonViewer/index.js +1 -1
  160. package/dist/components/GrKbd/chunks/{GrKbd-BNMeoaLV.js → GrKbd-D2rHDkQv.js} +42 -37
  161. package/dist/components/GrKbd/chunks/GrKbd-D2rHDkQv.js.map +1 -0
  162. package/dist/components/GrKbd/index.js +1 -1
  163. package/dist/components/GrModal/chunks/{GrModal-Cm0mtSXk.js → GrModal-SHb1U2qx.js} +1 -1
  164. package/dist/components/GrModal/chunks/{GrModal-Cm0mtSXk.js.map → GrModal-SHb1U2qx.js.map} +1 -1
  165. package/dist/components/GrModal/index.js +1 -1
  166. package/dist/components/GrNavbar/chunks/{GrNavbar-BRGuksiy.js → GrNavbar-IEIHC5Vt.js} +10 -4
  167. package/dist/components/GrNavbar/chunks/GrNavbar-IEIHC5Vt.js.map +1 -0
  168. package/dist/components/GrNavbar/index.js +2 -2
  169. package/dist/components/GrNumberInput/chunks/{GrNumberInput-BI6-vkcs.js → GrNumberInput-CmnUDaKi.js} +2 -22
  170. package/dist/components/GrNumberInput/chunks/{GrNumberInput-BI6-vkcs.js.map → GrNumberInput-CmnUDaKi.js.map} +1 -1
  171. package/dist/components/GrNumberInput/index.js +1 -1
  172. package/dist/components/GrPagination/chunks/{GrPagination-CMrLPzvL.js → GrPagination-AMbn5D8I.js} +1 -1
  173. package/dist/components/GrPagination/chunks/{GrPagination-CMrLPzvL.js.map → GrPagination-AMbn5D8I.js.map} +1 -1
  174. package/dist/components/GrPagination/index.js +1 -1
  175. package/dist/components/GrPopover/chunks/{GrPopover-CcWvr1ZA.js → GrPopover-DjVxt8bf.js} +3 -3
  176. package/dist/components/GrPopover/chunks/{GrPopover-CcWvr1ZA.js.map → GrPopover-DjVxt8bf.js.map} +1 -1
  177. package/dist/components/GrPopover/index.js +2 -2
  178. package/dist/components/GrPromptDialog/chunks/{GrPromptDialog-BEL-QgwE.js → GrPromptDialog-BhbIZP1f.js} +3 -3
  179. package/dist/components/GrPromptDialog/chunks/{GrPromptDialog-BEL-QgwE.js.map → GrPromptDialog-BhbIZP1f.js.map} +1 -1
  180. package/dist/components/GrPromptDialog/index.js +1 -1
  181. package/dist/components/GrSelect/chunks/{GrSelect-DvSq-nV-.js → GrSelect-B-ykrHpL.js} +24 -180
  182. package/dist/components/GrSelect/chunks/GrSelect-B-ykrHpL.js.map +1 -0
  183. package/dist/components/GrSelect/index.js +2 -2
  184. package/dist/components/GrSelect/styles.css +1 -1
  185. package/dist/components/GrSidebar/chunks/GrSidebar-jVvoLGDO.js +543 -0
  186. package/dist/components/GrSidebar/chunks/GrSidebar-jVvoLGDO.js.map +1 -0
  187. package/dist/components/GrSidebar/index.js +2 -2
  188. package/dist/components/GrSlider/chunks/{GrSlider-CO8N9SF6.js → GrSlider-DF2Cq0rV.js} +29 -4
  189. package/dist/components/GrSlider/chunks/GrSlider-DF2Cq0rV.js.map +1 -0
  190. package/dist/components/GrSlider/index.js +2 -2
  191. package/dist/components/GrSortableList/chunks/{GrSortableList-NKriuGm_.js → GrSortableList-ChH9nQBv.js} +1 -1
  192. package/dist/components/GrSortableList/chunks/{GrSortableList-NKriuGm_.js.map → GrSortableList-ChH9nQBv.js.map} +1 -1
  193. package/dist/components/GrSortableList/index.js +2 -2
  194. package/dist/components/GrTabPanels/chunks/GrTabPanels-BDt5oVdd.js +30 -0
  195. package/dist/components/GrTabPanels/chunks/GrTabPanels-BDt5oVdd.js.map +1 -0
  196. package/dist/components/GrTabPanels/chunks/GrTabPanels-BJvAflnA.js +83 -0
  197. package/dist/components/GrTabPanels/chunks/GrTabPanels-BJvAflnA.js.map +1 -0
  198. package/dist/components/GrTabPanels/index.js +2 -1
  199. package/dist/components/GrTable/chunks/{GrTable-CKJ-HrsN.js → GrTable-BQitSDep.js} +52 -16
  200. package/dist/components/GrTable/chunks/GrTable-BQitSDep.js.map +1 -0
  201. package/dist/components/GrTable/index.js +2 -2
  202. package/dist/components/GrTabs/chunks/{GrTabs-s9RzC1WX.js → GrTabs-DVC6nfWB.js} +1 -1
  203. package/dist/components/GrTabs/chunks/{GrTabs-s9RzC1WX.js.map → GrTabs-DVC6nfWB.js.map} +1 -1
  204. package/dist/components/GrTabs/index.js +2 -2
  205. package/dist/components/GrTabsWithPanels/chunks/GrTabsWithPanels-BYtuzouj.js +98 -0
  206. package/dist/components/GrTabsWithPanels/chunks/GrTabsWithPanels-BYtuzouj.js.map +1 -0
  207. package/dist/components/GrTabsWithPanels/index.js +3 -0
  208. package/dist/components/GrTextarea/chunks/{GrTextarea-Bfgc0DD2.js → GrTextarea-BFwyqcHB.js} +22 -5
  209. package/dist/components/GrTextarea/chunks/GrTextarea-BFwyqcHB.js.map +1 -0
  210. package/dist/components/GrTextarea/index.js +1 -1
  211. package/dist/components/GrToaster/chunks/{GrToaster-CZixNk0l.js → GrToaster-OzT1VKcp.js} +163 -32
  212. package/dist/components/GrToaster/chunks/GrToaster-OzT1VKcp.js.map +1 -0
  213. package/dist/components/GrToaster/index.js +2 -2
  214. package/dist/components/GrToaster/styles.css +1 -1
  215. package/dist/components/GrTooltip/chunks/{GrTooltip-DkMMM0uq.js → GrTooltip-BDcFycvW.js} +26 -13
  216. package/dist/components/GrTooltip/chunks/GrTooltip-BDcFycvW.js.map +1 -0
  217. package/dist/components/GrTooltip/index.js +2 -2
  218. package/dist/components/GrTransfer/chunks/{GrTransfer-DdfBUf35.js → GrTransfer-CV7BL5UK.js} +114 -12
  219. package/dist/components/GrTransfer/chunks/GrTransfer-CV7BL5UK.js.map +1 -0
  220. package/dist/components/GrTransfer/index.js +1 -1
  221. package/dist/components/GrTransfer/styles.css +1 -1
  222. package/dist/components/GrTree/chunks/{GrTree-6yZrncJE.js → GrTree-DpgaP8hk.js} +39 -1
  223. package/dist/components/GrTree/chunks/GrTree-DpgaP8hk.js.map +1 -0
  224. package/dist/components/GrTree/index.js +1 -1
  225. package/dist/components/GrTree/styles.css +1 -1
  226. package/dist/components/GrTreeSections/chunks/{GrTreeSections-DcmDcLwj.js → GrTreeSections-BeOj__44.js} +1 -1
  227. package/dist/components/GrTreeSections/chunks/{GrTreeSections-DcmDcLwj.js.map → GrTreeSections-BeOj__44.js.map} +1 -1
  228. package/dist/components/GrTreeSections/index.js +1 -1
  229. package/dist/components/GrTreeSelect/chunks/{GrTreeSelect-B6KoDYiZ.js → GrTreeSelect-BHq-T8wH.js} +113 -14
  230. package/dist/components/GrTreeSelect/chunks/GrTreeSelect-BHq-T8wH.js.map +1 -0
  231. package/dist/components/GrTreeSelect/index.js +2 -2
  232. package/dist/composables/useFloating.js +1 -1
  233. package/dist/composables/useHotkeys.js +89 -0
  234. package/dist/composables/useHotkeys.js.map +1 -0
  235. package/dist/composables/useOverlayLayer.js +1 -1
  236. package/dist/directives/hotkey.js +19 -46
  237. package/dist/directives/hotkey.js.map +1 -1
  238. package/dist/granular-provider-node.js +1 -1
  239. package/dist/granular-provider.js +1 -1
  240. package/dist/i18n/all.js +1 -1
  241. package/dist/i18n/index.js +1 -1
  242. package/dist/index.js +71 -63
  243. package/dist/theme.js +1 -1
  244. package/dist/tokens.js +1 -1
  245. package/dist/types/components/GrAutocomplete/GrAutocomplete.vue.d.ts +4 -4
  246. package/dist/types/components/GrAutocomplete/composables/useAutocompleteNavigation.d.ts +12 -3
  247. package/dist/types/components/GrAutocomplete/composables/useAutocompletePanel.d.ts +12 -2
  248. package/dist/types/components/GrAutocomplete/composables/useAutocompleteValues.d.ts +7 -4
  249. package/dist/types/components/GrAutocomplete/composables/useRemoteOptions.d.ts +4 -4
  250. package/dist/types/components/GrAutocomplete/grAutocompleteStyles.d.ts +15 -1
  251. package/dist/types/components/GrAutocomplete/index.d.ts +1 -1
  252. package/dist/types/components/GrCarousel/GrCarousel.vue.d.ts +29 -1
  253. package/dist/types/components/GrCarousel/composables/useCarouselSwipe.d.ts +5 -0
  254. package/dist/types/components/GrCarousel/grCarouselContext.d.ts +21 -0
  255. package/dist/types/components/GrCarousel/grCarouselStyles.d.ts +39 -9
  256. package/dist/types/components/GrCheckbox/GrCheckbox.vue.d.ts +13 -0
  257. package/dist/types/components/GrColorPicker/GrColorPicker.vue.d.ts +18 -2
  258. package/dist/types/components/GrColorPicker/color.d.ts +13 -1
  259. package/dist/types/components/GrColorPicker/colorArea.d.ts +59 -0
  260. package/dist/types/components/GrColorPicker/defaults.d.ts +3 -1
  261. package/dist/types/components/GrColorPicker/eyeDropper.d.ts +21 -0
  262. package/dist/types/components/GrColorPicker/grColorPickerStyles.d.ts +42 -0
  263. package/dist/types/components/GrCommandPalette/GrCommandPalette.vue.d.ts +10 -1
  264. package/dist/types/components/GrDataTable/GrDataTable.vue.d.ts +41 -1
  265. package/dist/types/components/GrDataTable/composables/useDataTableGridNavigation.d.ts +53 -0
  266. package/dist/types/components/GrDataTable/grDataTableStyles.d.ts +8 -0
  267. package/dist/types/components/GrDataTable/index.d.ts +1 -1
  268. package/dist/types/components/GrDelta/grDeltaStyles.d.ts +10 -3
  269. package/dist/types/components/GrEmptyState/GrEmptyState.vue.d.ts +11 -2
  270. package/dist/types/components/GrEmptyState/grEmptyStateStyles.d.ts +10 -0
  271. package/dist/types/components/GrEmptyState/index.d.ts +1 -1
  272. package/dist/types/components/GrFileUpload/GrFileUpload.vue.d.ts +2 -1
  273. package/dist/types/components/GrFormFile/GrFormFile.vue.d.ts +10 -0
  274. package/dist/types/components/GrInput/GrInput.vue.d.ts +15 -0
  275. package/dist/types/components/GrInputTag/GrInputTag.vue.d.ts +16 -0
  276. package/dist/types/components/GrInputTag/grInputTagStyles.d.ts +11 -0
  277. package/dist/types/components/GrKbd/GrKbd.vue.d.ts +14 -0
  278. package/dist/types/components/GrNavbar/GrNavbar.vue.d.ts +18 -0
  279. package/dist/types/components/GrNavbar/grNavbarStyles.d.ts +10 -1
  280. package/dist/types/components/GrNavbar/index.d.ts +1 -0
  281. package/dist/types/components/GrSelect/composables/useSelectPanelItems.d.ts +8 -34
  282. package/dist/types/components/GrSelect/composables/useSelectVirtualization.d.ts +7 -0
  283. package/dist/types/components/GrSelect/grSelectStyles.d.ts +1 -1
  284. package/dist/types/components/GrSidebar/GrSidebar.vue.d.ts +20 -0
  285. package/dist/types/components/GrSidebar/GrSidebarItem.vue.d.ts +39 -5
  286. package/dist/types/components/GrSidebar/grSidebarStyles.d.ts +32 -0
  287. package/dist/types/components/GrSidebar/index.d.ts +1 -1
  288. package/dist/types/components/GrSidebar/sidebarContext.d.ts +23 -1
  289. package/dist/types/components/GrSlider/GrSlider.vue.d.ts +39 -1
  290. package/dist/types/components/GrSlider/grSliderStyles.d.ts +1 -1
  291. package/dist/types/components/GrTabPanels/context.d.ts +6 -0
  292. package/dist/types/components/GrTable/GrTable.vue.d.ts +37 -0
  293. package/dist/types/components/GrTable/grTableStyles.d.ts +16 -7
  294. package/dist/types/components/GrTabsWithPanels/GrTabsWithPanels.vue.d.ts +77 -0
  295. package/dist/types/components/GrTabsWithPanels/config.d.ts +1 -0
  296. package/dist/types/components/GrTabsWithPanels/index.d.ts +4 -0
  297. package/dist/types/components/GrTextarea/GrTextarea.vue.d.ts +19 -1
  298. package/dist/types/components/GrToaster/GrToaster.vue.d.ts +12 -0
  299. package/dist/types/components/GrToaster/grToasterStyles.d.ts +26 -0
  300. package/dist/types/components/GrTooltip/GrTooltip.vue.d.ts +22 -0
  301. package/dist/types/components/GrTransfer/GrTransfer.vue.d.ts +23 -0
  302. package/dist/types/components/GrTreeSelect/grTreeSelectStyles.d.ts +1 -1
  303. package/dist/types/components/GrTreeSelect/grTreeSelectTypes.d.ts +20 -0
  304. package/dist/types/components/shared/hotkey.d.ts +8 -9
  305. package/dist/types/components/shared/optionPanel.d.ts +100 -0
  306. package/dist/types/components/shared/overlayListPanel.d.ts +18 -0
  307. package/dist/types/composables/useHotkeys.d.ts +43 -0
  308. package/dist/types/granular-provider/shared.d.ts +1 -0
  309. package/dist/types/i18n/messages/en.d.ts +28 -0
  310. package/dist/types/i18n/messages/es.d.ts +28 -0
  311. package/dist/types/i18n/messages/ru.d.ts +28 -0
  312. package/dist/types/index.d.ts +3 -0
  313. package/dist/types/internal/hotkeySequence.d.ts +22 -0
  314. package/dist/types/internal/keyboard.d.ts +45 -0
  315. package/dist/web-types.json +463 -26
  316. package/package.json +9 -1
  317. package/dist/chunks/config-2ZHRsdOc.js.map +0 -1
  318. package/dist/chunks/config-B42iJ48O.js.map +0 -1
  319. package/dist/chunks/config-B5SBUa6u.js.map +0 -1
  320. package/dist/chunks/config-BAse0laT.js.map +0 -1
  321. package/dist/chunks/config-BHLMTJaR.js.map +0 -1
  322. package/dist/chunks/config-BXRmsn3t.js.map +0 -1
  323. package/dist/chunks/config-Bs1HwUcx.js.map +0 -1
  324. package/dist/chunks/config-CMNfZO7S.js.map +0 -1
  325. package/dist/chunks/config-CbEbLyDE.js.map +0 -1
  326. package/dist/chunks/config-CjWOTgLL.js.map +0 -1
  327. package/dist/chunks/config-D3HOuHDe.js.map +0 -1
  328. package/dist/chunks/config-DIDz_E5m.js.map +0 -1
  329. package/dist/chunks/config-DNDgp9bB.js.map +0 -1
  330. package/dist/chunks/config-iemgzS4x.js.map +0 -1
  331. package/dist/chunks/en-CsQUoBS2.js.map +0 -1
  332. package/dist/chunks/es-9nbkPvdA.js.map +0 -1
  333. package/dist/chunks/grSelectStyles-D9EQ-pgK.js.map +0 -1
  334. package/dist/chunks/grSliderStyles-kaz6VXZ3.js.map +0 -1
  335. package/dist/chunks/grTableStyles-DkQPMfx9.js +0 -39
  336. package/dist/chunks/grTableStyles-DkQPMfx9.js.map +0 -1
  337. package/dist/chunks/granular-provider-B6xomapW.js.map +0 -1
  338. package/dist/chunks/keyboard-DE2yhz_b.js.map +0 -1
  339. package/dist/chunks/overlayPanelSurface-BKeMhRx4.js.map +0 -1
  340. package/dist/chunks/ru-88i1WG0b.js.map +0 -1
  341. package/dist/components/GrAutocomplete/chunks/GrAutocomplete-Chhw65pI.js.map +0 -1
  342. package/dist/components/GrCarousel/chunks/GrCarousel-ByuughtI.js.map +0 -1
  343. package/dist/components/GrCheckbox/chunks/GrCheckbox-Dp201frb.js.map +0 -1
  344. package/dist/components/GrColorPicker/chunks/GrColorPicker-BRM_4lyI.js.map +0 -1
  345. package/dist/components/GrCommandPalette/chunks/GrCommandPalette-BJHmkDQv.js.map +0 -1
  346. package/dist/components/GrDataTable/chunks/GrDataTable-DQxYYgQk.js.map +0 -1
  347. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-Dxkz_ry4.js.map +0 -1
  348. package/dist/components/GrEmptyState/chunks/GrEmptyState-BbvwE-E0.js.map +0 -1
  349. package/dist/components/GrFileUpload/chunks/GrFileUpload-BwMR71zN.js.map +0 -1
  350. package/dist/components/GrFormFile/chunks/GrFormFile-Dlxx-9zi.js.map +0 -1
  351. package/dist/components/GrInput/chunks/GrInput-DV4gMWPR.js.map +0 -1
  352. package/dist/components/GrInputTag/chunks/GrInputTag-qnRdAZnn.js.map +0 -1
  353. package/dist/components/GrKbd/chunks/GrKbd-BNMeoaLV.js.map +0 -1
  354. package/dist/components/GrNavbar/chunks/GrNavbar-BRGuksiy.js.map +0 -1
  355. package/dist/components/GrSelect/chunks/GrSelect-DvSq-nV-.js.map +0 -1
  356. package/dist/components/GrSidebar/chunks/GrSidebar-DoKLlHSw.js +0 -264
  357. package/dist/components/GrSidebar/chunks/GrSidebar-DoKLlHSw.js.map +0 -1
  358. package/dist/components/GrSlider/chunks/GrSlider-CO8N9SF6.js.map +0 -1
  359. package/dist/components/GrTabPanels/chunks/GrTabPanels-5zsbqS1v.js +0 -92
  360. package/dist/components/GrTabPanels/chunks/GrTabPanels-5zsbqS1v.js.map +0 -1
  361. package/dist/components/GrTable/chunks/GrTable-CKJ-HrsN.js.map +0 -1
  362. package/dist/components/GrTextarea/chunks/GrTextarea-Bfgc0DD2.js.map +0 -1
  363. package/dist/components/GrToaster/chunks/GrToaster-CZixNk0l.js.map +0 -1
  364. package/dist/components/GrTooltip/chunks/GrTooltip-DkMMM0uq.js.map +0 -1
  365. package/dist/components/GrTransfer/chunks/GrTransfer-DdfBUf35.js.map +0 -1
  366. package/dist/components/GrTree/chunks/GrTree-6yZrncJE.js.map +0 -1
  367. package/dist/components/GrTreeSelect/chunks/GrTreeSelect-B6KoDYiZ.js.map +0 -1
  368. package/dist/types/components/GrAutocomplete/composables/useAutocompleteVirtual.d.ts +0 -33
@@ -1,4 +1,5 @@
1
- import { a as shiftSatisfied, i as isEditableTarget, n as isAppleDevice, r as isComposingEvent, t as eventMatchesKey } from "../chunks/keyboard-DE2yhz_b.js";
1
+ import { a as parseHotkeySequence, i as matchesHotkeyCombo, n as isComposingEvent, r as isEditableTarget, t as isAppleDevice } from "../chunks/keyboard-BiFSgWLt.js";
2
+ import { t as createHotkeySequenceTracker } from "../chunks/hotkeySequence-BTHIM_5A.js";
2
3
  //#region src/directives/hotkey.ts
3
4
  var states = /* @__PURE__ */ new WeakMap();
4
5
  function normalizeBinding(value) {
@@ -21,57 +22,22 @@ function normalizeBinding(value) {
21
22
  scope: "global"
22
23
  };
23
24
  }
24
- function normalizeKeyToken(token) {
25
- const t = token.trim().toLowerCase();
26
- if (t === "esc") return "Escape";
27
- if (t === "escape") return "Escape";
28
- if (t === "space") return " ";
29
- if (t.length === 1) return t;
30
- return token.trim();
31
- }
32
25
  function parseHotkeys(map) {
33
26
  const parsed = [];
34
27
  for (const [combo, entry] of Object.entries(map)) {
35
- const parts = combo.split("+").map((p) => p.trim()).filter(Boolean);
36
- if (!parts.length) continue;
37
- let ctrl = false;
38
- let meta = false;
39
- let mod = false;
40
- let alt = false;
41
- let shift = false;
42
- const keyToken = parts.at(-1);
43
- if (!keyToken) continue;
44
- for (const p of parts.slice(0, -1)) {
45
- const t = p.toLowerCase();
46
- if (t === "mod") mod = true;
47
- else if (t === "ctrl" || t === "control") ctrl = true;
48
- else if (t === "meta" || t === "cmd" || t === "command" || t === "⌘") meta = true;
49
- else if (t === "alt" || t === "option") alt = true;
50
- else if (t === "shift") shift = true;
51
- }
52
- const key = normalizeKeyToken(keyToken);
28
+ const steps = parseHotkeySequence(combo);
29
+ if (steps.length === 0) continue;
53
30
  parsed.push({
54
31
  original: combo,
55
- key,
56
- ctrl,
57
- meta,
58
- mod,
59
- alt,
60
- shift,
32
+ steps,
61
33
  entry
62
34
  });
63
35
  }
64
36
  return parsed;
65
37
  }
66
- function matchesHotkey(event, hk) {
67
- const apple = hk.mod ? isAppleDevice() : false;
68
- const expectMeta = hk.meta || hk.mod && apple;
69
- const expectCtrl = hk.ctrl || hk.mod && !apple;
70
- if (expectCtrl !== event.ctrlKey) return false;
71
- if (expectMeta !== event.metaKey) return false;
72
- if (hk.alt !== event.altKey) return false;
73
- if (!shiftSatisfied(event, hk.key, hk.shift)) return false;
74
- return eventMatchesKey(event, hk.key, { codeFallback: expectCtrl || expectMeta || hk.alt });
38
+ /** Есть ли у сочетания модификаторы: по ним решается перехват ввода и `preventDefault`. */
39
+ function hasModifier(steps) {
40
+ return steps.some((step) => step.ctrl || step.meta || step.mod || step.alt || step.shift);
75
41
  }
76
42
  function resolveEntry(entry) {
77
43
  if (typeof entry === "function") return {
@@ -109,19 +75,25 @@ var vHotkey = {
109
75
  const state = {
110
76
  enabled,
111
77
  hotkeys: parseHotkeys(handlers),
78
+ sequence: createHotkeySequenceTracker(),
112
79
  listener: (event) => {
113
80
  const current = states.get(el);
114
81
  if (!current?.enabled) return;
115
82
  if (!el.isConnected) return;
116
83
  if (isComposingEvent(event)) return;
84
+ const apple = isAppleDevice();
85
+ current.sequence.push(event, Date.now());
117
86
  const editable = isEditableTarget(event.target);
118
87
  for (const hk of current.hotkeys) {
119
- if (!matchesHotkey(event, hk)) continue;
88
+ const isChain = hk.steps.length > 1;
89
+ if (!(isChain ? current.sequence.matches(hk.steps, apple) : matchesHotkeyCombo(event, hk.steps[0], apple))) continue;
120
90
  const entry = resolveEntry(hk.entry);
121
- const hasModifier = hk.ctrl || hk.meta || hk.mod || hk.alt || hk.shift;
122
- if (editable && !entry.allowInEditable && !hasModifier && hk.key !== "Escape") continue;
123
- if (entry.preventDefault ?? (hk.ctrl || hk.meta || hk.mod || hk.alt)) event.preventDefault();
91
+ const modified = hasModifier(hk.steps);
92
+ const isEscape = !isChain && hk.steps[0].key === "Escape";
93
+ if (editable && !entry.allowInEditable && !modified && !isEscape) continue;
94
+ if (entry.preventDefault ?? modified) event.preventDefault();
124
95
  if (entry.stopPropagation) event.stopPropagation();
96
+ if (isChain) current.sequence.reset();
125
97
  entry.handler(event);
126
98
  return;
127
99
  }
@@ -137,6 +109,7 @@ var vHotkey = {
137
109
  const next = normalizeBinding(binding.value);
138
110
  state.enabled = next.enabled;
139
111
  state.hotkeys = parseHotkeys(next.handlers);
112
+ state.sequence.reset();
140
113
  const nextTarget = next.scope === "element" ? el : window;
141
114
  if (nextTarget !== state.target) {
142
115
  state.target.removeEventListener("keydown", state.listener);
@@ -1 +1 @@
1
- {"version":3,"file":"hotkey.js","names":[],"sources":["../../src/directives/hotkey.ts"],"sourcesContent":["import type { Directive } from 'vue'\n\nimport { eventMatchesKey, isAppleDevice, isComposingEvent, isEditableTarget, shiftSatisfied } from '../internal/keyboard'\n\nexport type HotkeyHandler = (event: KeyboardEvent) => void\n\nexport type HotkeyEntry\n = | HotkeyHandler\n | {\n handler: HotkeyHandler\n /** По умолчанию: `true` для комбинаций с Ctrl/Meta/Alt, иначе `false`. */\n preventDefault?: boolean\n /** По умолчанию `false`. */\n stopPropagation?: boolean\n /** Разрешить срабатывать, когда фокус в `input/textarea/[contenteditable]`. */\n allowInEditable?: boolean\n }\n\nexport type HotkeyMap = Record<string, HotkeyEntry>\n\n/**\n * Где слушать клавиатуру:\n * - `'global'` (по умолчанию) — слушатель на `window`; хоткеи работают из любого места страницы.\n * - `'element'` — слушатель на самом элементе; хоткеи срабатывают только когда фокус внутри\n * элемента (событие всплывает до него). Элемент должен быть фокусируемым (`tabindex`).\n */\nexport type HotkeyScope = 'global' | 'element'\n\nexport type HotkeyBindingValue\n = | HotkeyMap\n | {\n handlers: HotkeyMap\n enabled?: boolean\n scope?: HotkeyScope\n }\n\ntype ParsedHotkey = {\n original: string\n key: string\n ctrl: boolean\n meta: boolean\n /** `mod` — Cmd на macOS, Ctrl на прочих: подсказка и привязка пишутся одинаково. */\n mod: boolean\n alt: boolean\n shift: boolean\n entry: HotkeyEntry\n}\n\ntype InternalState = {\n enabled: boolean\n hotkeys: ParsedHotkey[]\n listener: (event: KeyboardEvent) => void\n /** Цель, на которой висит слушатель (`window` для 'global', сам `el` для 'element'). */\n target: Window | HTMLElement\n}\n\nconst states = new WeakMap<HTMLElement, InternalState>()\n\nfunction normalizeBinding(value: HotkeyBindingValue | undefined) {\n if (!value)\n return { enabled: false, handlers: {} as HotkeyMap, scope: 'global' as HotkeyScope }\n if ('handlers' in (value as any)) {\n const v = value as { handlers: HotkeyMap, enabled?: boolean, scope?: HotkeyScope }\n return { enabled: v.enabled ?? true, handlers: v.handlers ?? {}, scope: v.scope ?? 'global' }\n }\n return { enabled: true, handlers: value as HotkeyMap, scope: 'global' as HotkeyScope }\n}\n\nfunction normalizeKeyToken(token: string): string {\n const t = token.trim().toLowerCase()\n if (t === 'esc')\n return 'Escape'\n if (t === 'escape')\n return 'Escape'\n if (t === 'space')\n return ' '\n if (t.length === 1)\n return t\n return token.trim()\n}\n\nfunction parseHotkeys(map: HotkeyMap): ParsedHotkey[] {\n const parsed: ParsedHotkey[] = []\n\n for (const [combo, entry] of Object.entries(map)) {\n const parts = combo\n .split('+')\n .map(p => p.trim())\n .filter(Boolean)\n\n if (!parts.length)\n continue\n\n let ctrl = false\n let meta = false\n let mod = false\n let alt = false\n let shift = false\n\n const keyToken = parts.at(-1)\n if (!keyToken)\n continue\n for (const p of parts.slice(0, -1)) {\n const t = p.toLowerCase()\n if (t === 'mod')\n mod = true\n else if (t === 'ctrl' || t === 'control')\n ctrl = true\n else if (t === 'meta' || t === 'cmd' || t === 'command' || t === '⌘')\n meta = true\n else if (t === 'alt' || t === 'option')\n alt = true\n else if (t === 'shift')\n shift = true\n }\n\n const key = normalizeKeyToken(keyToken)\n parsed.push({ original: combo, key, ctrl, meta, mod, alt, shift, entry })\n }\n\n return parsed\n}\n\nfunction matchesHotkey(event: KeyboardEvent, hk: ParsedHotkey): boolean {\n // Платформа читается в момент события: `navigator` в теле модуля на сервере\n // либо отсутствует, либо отвечает не за ту машину.\n const apple = hk.mod ? isAppleDevice() : false\n const expectMeta = hk.meta || (hk.mod && apple)\n const expectCtrl = hk.ctrl || (hk.mod && !apple)\n\n if (expectCtrl !== event.ctrlKey)\n return false\n if (expectMeta !== event.metaKey)\n return false\n if (hk.alt !== event.altKey)\n return false\n if (!shiftSatisfied(event, hk.key, hk.shift))\n return false\n\n // По физическому коду матчатся только комбинации с модификаторами: там\n // клавиша — позиция на клавиатуре, и `Ctrl+K` обязан работать на любой\n // раскладке. Одиночная клавиша — печатная, её раскладка и определяет.\n return eventMatchesKey(event, hk.key, { codeFallback: expectCtrl || expectMeta || hk.alt })\n}\n\nfunction resolveEntry(entry: HotkeyEntry) {\n if (typeof entry === 'function') {\n return {\n handler: entry,\n preventDefault: undefined as boolean | undefined,\n stopPropagation: false,\n allowInEditable: false,\n }\n }\n\n return {\n handler: entry.handler,\n preventDefault: entry.preventDefault,\n stopPropagation: entry.stopPropagation ?? false,\n allowInEditable: entry.allowInEditable ?? false,\n }\n}\n\n/**\n * `v-hotkey` — горячие клавиши на компонент/страницу.\n *\n * Пример:\n * ```vue\n * <div v-hotkey=\"{ 'Escape': close, 'Ctrl+K': openSearch }\" />\n * ```\n *\n * По умолчанию слушатель глобальный (`window`). Чтобы хоткеи срабатывали только\n * когда фокус внутри элемента, используйте `scope: 'element'`:\n * ```vue\n * <div tabindex=\"0\" v-hotkey=\"{ handlers: { 'j': next }, scope: 'element' }\" />\n * ```\n */\nexport const vHotkey: Directive<HTMLElement, HotkeyBindingValue> = {\n mounted(el, binding) {\n if (typeof window === 'undefined')\n return\n\n const { enabled, handlers, scope } = normalizeBinding(binding.value)\n const target: Window | HTMLElement = scope === 'element' ? el : window\n\n const state: InternalState = {\n enabled,\n hotkeys: parseHotkeys(handlers),\n listener: (event: KeyboardEvent) => {\n const current = states.get(el)\n if (!current?.enabled)\n return\n if (!el.isConnected)\n return\n // Клавиша во время IME-композиции принадлежит композиции, а не хоткею.\n if (isComposingEvent(event))\n return\n\n const editable = isEditableTarget(event.target)\n\n for (const hk of current.hotkeys) {\n if (!matchesHotkey(event, hk))\n continue\n\n const entry = resolveEntry(hk.entry)\n\n // По умолчанию не перехватываем \"простые\" клавиши во время ввода.\n const hasModifier = hk.ctrl || hk.meta || hk.mod || hk.alt || hk.shift\n if (editable && !entry.allowInEditable && !hasModifier && hk.key !== 'Escape') {\n continue\n }\n\n const preventDefault = entry.preventDefault ?? (hk.ctrl || hk.meta || hk.mod || hk.alt)\n if (preventDefault)\n event.preventDefault()\n if (entry.stopPropagation)\n event.stopPropagation()\n\n entry.handler(event)\n return\n }\n },\n target,\n }\n\n states.set(el, state)\n target.addEventListener('keydown', state.listener as EventListener)\n },\n updated(el, binding) {\n const state = states.get(el)\n if (!state)\n return\n\n const next = normalizeBinding(binding.value)\n state.enabled = next.enabled\n state.hotkeys = parseHotkeys(next.handlers)\n\n // Смена scope на лету — переносим слушатель на новую цель.\n const nextTarget: Window | HTMLElement = next.scope === 'element' ? el : window\n if (nextTarget !== state.target) {\n state.target.removeEventListener('keydown', state.listener as EventListener)\n state.target = nextTarget\n nextTarget.addEventListener('keydown', state.listener as EventListener)\n }\n },\n unmounted(el) {\n const state = states.get(el)\n if (!state)\n return\n state.target.removeEventListener('keydown', state.listener as EventListener)\n states.delete(el)\n },\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"hotkey.js","names":[],"sources":["../../src/directives/hotkey.ts"],"sourcesContent":["import type { Directive } from 'vue'\n\nimport { createHotkeySequenceTracker } from '../internal/hotkeySequence'\nimport { isAppleDevice, isComposingEvent, isEditableTarget, matchesHotkeyCombo, parseHotkeySequence } from '../internal/keyboard'\nimport type { ParsedHotkeyCombo } from '../internal/keyboard'\n\nexport type HotkeyHandler = (event: KeyboardEvent) => void\n\nexport type HotkeyEntry\n = | HotkeyHandler\n | {\n handler: HotkeyHandler\n /** По умолчанию: `true` для комбинаций с Ctrl/Meta/Alt, иначе `false`. */\n preventDefault?: boolean\n /** По умолчанию `false`. */\n stopPropagation?: boolean\n /** Разрешить срабатывать, когда фокус в `input/textarea/[contenteditable]`. */\n allowInEditable?: boolean\n }\n\nexport type HotkeyMap = Record<string, HotkeyEntry>\n\n/**\n * Где слушать клавиатуру:\n * - `'global'` (по умолчанию) — слушатель на `window`; хоткеи работают из любого места страницы.\n * - `'element'` — слушатель на самом элементе; хоткеи срабатывают только когда фокус внутри\n * элемента (событие всплывает до него). Элемент должен быть фокусируемым (`tabindex`).\n */\nexport type HotkeyScope = 'global' | 'element'\n\nexport type HotkeyBindingValue\n = | HotkeyMap\n | {\n handlers: HotkeyMap\n enabled?: boolean\n scope?: HotkeyScope\n }\n\ntype ParsedHotkey = {\n original: string\n /**\n * Шаги сочетания. Аккорд — один шаг, «G, затем I» — два: обе формы идут одним\n * путём, поэтому у цепочки нет собственной ветки, которую можно забыть.\n */\n steps: ParsedHotkeyCombo[]\n entry: HotkeyEntry\n}\n\ntype InternalState = {\n enabled: boolean\n hotkeys: ParsedHotkey[]\n /** Набранное для цепочек: один буфер на элемент, общий для всех его хоткеев. */\n sequence: ReturnType<typeof createHotkeySequenceTracker>\n listener: (event: KeyboardEvent) => void\n /** Цель, на которой висит слушатель (`window` для 'global', сам `el` для 'element'). */\n target: Window | HTMLElement\n}\n\nconst states = new WeakMap<HTMLElement, InternalState>()\n\nfunction normalizeBinding(value: HotkeyBindingValue | undefined) {\n if (!value)\n return { enabled: false, handlers: {} as HotkeyMap, scope: 'global' as HotkeyScope }\n if ('handlers' in (value as any)) {\n const v = value as { handlers: HotkeyMap, enabled?: boolean, scope?: HotkeyScope }\n return { enabled: v.enabled ?? true, handlers: v.handlers ?? {}, scope: v.scope ?? 'global' }\n }\n return { enabled: true, handlers: value as HotkeyMap, scope: 'global' as HotkeyScope }\n}\n\nfunction parseHotkeys(map: HotkeyMap): ParsedHotkey[] {\n const parsed: ParsedHotkey[] = []\n\n for (const [combo, entry] of Object.entries(map)) {\n const steps = parseHotkeySequence(combo)\n if (steps.length === 0)\n continue\n\n parsed.push({ original: combo, steps, entry })\n }\n\n return parsed\n}\n\n/** Есть ли у сочетания модификаторы: по ним решается перехват ввода и `preventDefault`. */\nfunction hasModifier(steps: readonly ParsedHotkeyCombo[]): boolean {\n return steps.some(step => step.ctrl || step.meta || step.mod || step.alt || step.shift)\n}\n\nfunction resolveEntry(entry: HotkeyEntry) {\n if (typeof entry === 'function') {\n return {\n handler: entry,\n preventDefault: undefined as boolean | undefined,\n stopPropagation: false,\n allowInEditable: false,\n }\n }\n\n return {\n handler: entry.handler,\n preventDefault: entry.preventDefault,\n stopPropagation: entry.stopPropagation ?? false,\n allowInEditable: entry.allowInEditable ?? false,\n }\n}\n\n/**\n * `v-hotkey` — горячие клавиши на компонент/страницу.\n *\n * Пример:\n * ```vue\n * <div v-hotkey=\"{ 'Escape': close, 'Ctrl+K': openSearch }\" />\n * ```\n *\n * По умолчанию слушатель глобальный (`window`). Чтобы хоткеи срабатывали только\n * когда фокус внутри элемента, используйте `scope: 'element'`:\n * ```vue\n * <div tabindex=\"0\" v-hotkey=\"{ handlers: { 'j': next }, scope: 'element' }\" />\n * ```\n */\nexport const vHotkey: Directive<HTMLElement, HotkeyBindingValue> = {\n mounted(el, binding) {\n if (typeof window === 'undefined')\n return\n\n const { enabled, handlers, scope } = normalizeBinding(binding.value)\n const target: Window | HTMLElement = scope === 'element' ? el : window\n\n const state: InternalState = {\n enabled,\n hotkeys: parseHotkeys(handlers),\n sequence: createHotkeySequenceTracker(),\n listener: (event: KeyboardEvent) => {\n const current = states.get(el)\n if (!current?.enabled)\n return\n if (!el.isConnected)\n return\n // Клавиша во время IME-композиции принадлежит композиции, а не хоткею.\n if (isComposingEvent(event))\n return\n\n /*\n * Платформа спрашивается один раз на событие, а не на каждый хоткей:\n * `navigator` в теле модуля на сервере либо отсутствует, либо отвечает не\n * за ту машину, поэтому вопрос откладывается до события — но повторять\n * его в цикле незачем.\n */\n const apple = isAppleDevice()\n\n // Нажатие идёт в буфер до перебора: цепочка складывается из событий, а\n // не из совпадений, и шаг, не подошедший ни одному хоткею, всё равно её часть.\n current.sequence.push(event, Date.now())\n\n const editable = isEditableTarget(event.target)\n\n for (const hk of current.hotkeys) {\n const isChain = hk.steps.length > 1\n const matched = isChain\n ? current.sequence.matches(hk.steps, apple)\n : matchesHotkeyCombo(event, hk.steps[0], apple)\n\n if (!matched)\n continue\n\n const entry = resolveEntry(hk.entry)\n const modified = hasModifier(hk.steps)\n\n /*\n * Простые клавиши во время ввода не перехватываются. Цепочка — тоже\n * простая: набирая текст, пользователь легко напечатает «g i», и\n * увести его со страницы посреди слова было бы худшим из возможных\n * ответов.\n */\n const isEscape = !isChain && hk.steps[0].key === 'Escape'\n if (editable && !entry.allowInEditable && !modified && !isEscape)\n continue\n\n const preventDefault = entry.preventDefault ?? modified\n if (preventDefault)\n event.preventDefault()\n if (entry.stopPropagation)\n event.stopPropagation()\n\n // Сложившаяся цепочка снимается с буфера: иначе следующее нажатие\n // достроило бы её заново и сработало бы второй раз.\n if (isChain)\n current.sequence.reset()\n\n entry.handler(event)\n return\n }\n },\n target,\n }\n\n states.set(el, state)\n target.addEventListener('keydown', state.listener as EventListener)\n },\n updated(el, binding) {\n const state = states.get(el)\n if (!state)\n return\n\n const next = normalizeBinding(binding.value)\n state.enabled = next.enabled\n state.hotkeys = parseHotkeys(next.handlers)\n // Смена карты обнуляет набранное: половина цепочки от прошлого набора\n // достроилась бы клавишей из нового и сработала бы не тем хоткеем.\n state.sequence.reset()\n\n // Смена scope на лету — переносим слушатель на новую цель.\n const nextTarget: Window | HTMLElement = next.scope === 'element' ? el : window\n if (nextTarget !== state.target) {\n state.target.removeEventListener('keydown', state.listener as EventListener)\n state.target = nextTarget\n nextTarget.addEventListener('keydown', state.listener as EventListener)\n }\n },\n unmounted(el) {\n const state = states.get(el)\n if (!state)\n return\n state.target.removeEventListener('keydown', state.listener as EventListener)\n states.delete(el)\n },\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { a as granularityDefaultThemes, i as granularityComponentConfigs, n as GRANULARITY_PROVIDER_ID, o as granularityThemeNames, r as createGranularityProvider, t as granularityProvider } from "./chunks/granular-provider-B6xomapW.js";
1
+ import { a as granularityDefaultThemes, i as granularityComponentConfigs, n as GRANULARITY_PROVIDER_ID, o as granularityThemeNames, r as createGranularityProvider, t as granularityProvider } from "./chunks/granular-provider-cv5vaM1a.js";
2
2
  export { GRANULARITY_PROVIDER_ID, createGranularityProvider, granularityProvider as default, granularityProvider, granularityComponentConfigs, granularityDefaultThemes, granularityThemeNames };
@@ -1,2 +1,2 @@
1
- import { a as granularityDefaultThemes, i as granularityComponentConfigs, n as GRANULARITY_PROVIDER_ID, o as granularityThemeNames, r as createGranularityProvider, t as granularityProvider } from "./chunks/granular-provider-B6xomapW.js";
1
+ import { a as granularityDefaultThemes, i as granularityComponentConfigs, n as GRANULARITY_PROVIDER_ID, o as granularityThemeNames, r as createGranularityProvider, t as granularityProvider } from "./chunks/granular-provider-cv5vaM1a.js";
2
2
  export { GRANULARITY_PROVIDER_ID, createGranularityProvider, granularityProvider as default, granularityProvider, granularityComponentConfigs, granularityDefaultThemes, granularityThemeNames };
package/dist/i18n/all.js CHANGED
@@ -1,4 +1,4 @@
1
- import { n as ru, r as en, t as es } from "../chunks/es-DrUz5J6I.js";
1
+ import { n as ru, r as en, t as es } from "../chunks/es-DlGd6Mrj.js";
2
2
  //#region src/i18n/all.ts
3
3
  var all = [
4
4
  en,
@@ -1,3 +1,3 @@
1
1
  import { t as GRANULARITY_I18N_KEY } from "../chunks/adapter-CAOxmn2G.js";
2
- import { i as GRANULARITY_I18N_BLOCK, n as ru, r as en, t as es } from "../chunks/es-DrUz5J6I.js";
2
+ import { i as GRANULARITY_I18N_BLOCK, n as ru, r as en, t as es } from "../chunks/es-DlGd6Mrj.js";
3
3
  export { GRANULARITY_I18N_BLOCK, GRANULARITY_I18N_KEY, en, es, ru };
package/dist/index.js CHANGED
@@ -18,14 +18,14 @@ import { createLoading, vLoading } from "./directives/loading.js";
18
18
  import { useFloating } from "./composables/useFloating.js";
19
19
  import { useOverlayLayer } from "./composables/useOverlayLayer.js";
20
20
  import { useDismissible } from "./composables/useDismissible.js";
21
- import { t as GrAutocomplete_default } from "./components/GrAutocomplete/chunks/GrAutocomplete-Chhw65pI.js";
21
+ import { n as grAutocompleteSafelist, t as grAutocompleteConfig } from "./chunks/config-D1oVht-E.js";
22
+ import { t as GrAutocomplete_default } from "./components/GrAutocomplete/chunks/GrAutocomplete-Cyr1-ENw.js";
22
23
  import { useVirtualList } from "./composables/useVirtualList.js";
23
24
  import { useComboboxNavigation } from "./composables/useComboboxNavigation.js";
24
25
  import { n as useGrFormFieldContext } from "./chunks/context-DdNIxa1w.js";
25
26
  import { useGrFormControl } from "./composables/useGrFormControl.js";
26
27
  import { useRovingFocus } from "./composables/useRovingFocus.js";
27
28
  import { t as GrChip_default } from "./components/GrChip/chunks/GrChip-DoyS1Dr4.js";
28
- import { n as grAutocompleteSafelist, t as grAutocompleteConfig } from "./chunks/config-BHLMTJaR.js";
29
29
  import { t as GrSkeleton_default } from "./components/GrSkeleton/chunks/GrSkeleton-CgfXxPQ2.js";
30
30
  import { n as GrAvatar_default, t as GrAvatarGroup_default } from "./components/GrAvatar/chunks/GrAvatar-Do5-C409.js";
31
31
  import { n as grAvatarSafelist, t as grAvatarConfig, u as initialsFrom } from "./chunks/config-CzeZg2LO.js";
@@ -48,13 +48,13 @@ import { t as grButtonGroupConfig } from "./chunks/config-DBmdgoVf.js";
48
48
  import { n as grCardSafelist, t as grCardConfig } from "./chunks/config-DUbbGcfw.js";
49
49
  import { t as GrCard_default } from "./components/GrCard/chunks/GrCard-Ck5--lMF.js";
50
50
  import { useAnnouncer } from "./composables/useAnnouncer.js";
51
- import { n as GrCarousel_default, t as GrCarouselSlide_default } from "./components/GrCarousel/chunks/GrCarousel-ByuughtI.js";
51
+ import { n as GrCarousel_default, t as GrCarouselSlide_default } from "./components/GrCarousel/chunks/GrCarousel-CBj-PEPB.js";
52
52
  import { useDragGesture } from "./composables/useDragGesture.js";
53
- import { n as grCarouselSafelist, t as grCarouselConfig } from "./chunks/config-BXRmsn3t.js";
53
+ import { n as grCarouselSafelist, t as grCarouselConfig } from "./chunks/config-CPhcZzHi.js";
54
54
  import { t as GR_TONES } from "./chunks/tones-CRJAaYyg.js";
55
- import { t as GrCheckbox_default } from "./components/GrCheckbox/chunks/GrCheckbox-Dp201frb.js";
55
+ import { t as GrCheckbox_default } from "./components/GrCheckbox/chunks/GrCheckbox-B4NJc7Ur.js";
56
56
  import { n as grCheckboxSafelist, t as grCheckboxConfig } from "./chunks/config-DZCUPHPU.js";
57
- import { t as GrCheckboxGroup_default } from "./components/GrCheckboxGroup/chunks/GrCheckboxGroup-IpqG5qwm.js";
57
+ import { t as GrCheckboxGroup_default } from "./components/GrCheckboxGroup/chunks/GrCheckboxGroup-qZHpNFCX.js";
58
58
  import { t as grCheckboxGroupConfig } from "./chunks/config-BuGlNPE9.js";
59
59
  import { n as grChipSafelist, t as grChipConfig } from "./chunks/config-AKpLyIGD.js";
60
60
  import "./components/GrChip/index.js";
@@ -63,78 +63,81 @@ import { t as GrChipGroup_default } from "./components/GrChipGroup/chunks/GrChip
63
63
  import { n as grCollapseSafelist, t as grCollapseConfig } from "./chunks/config-BoUI0t-t.js";
64
64
  import { n as GrCollapse_default, t as GrCollapseItem_default } from "./components/GrCollapse/chunks/GrCollapse-DWH3QAnU.js";
65
65
  import { n as grIconSafelist, t as grIconConfig } from "./chunks/config-3bQeQvqd.js";
66
- import { t as GrInput_default } from "./components/GrInput/chunks/GrInput-DV4gMWPR.js";
66
+ import { t as GrColorPicker_default } from "./components/GrColorPicker/chunks/GrColorPicker-vGSgpUV9.js";
67
+ import { t as GrInput_default } from "./components/GrInput/chunks/GrInput-CoaFLpaU.js";
67
68
  import { t as useFocusTrap } from "./chunks/useFocusTrap-D9bIPNF6.js";
68
- import { t as GrPopover_default } from "./components/GrPopover/chunks/GrPopover-CcWvr1ZA.js";
69
- import { t as GrSlider_default } from "./components/GrSlider/chunks/GrSlider-CO8N9SF6.js";
70
- import { t as GrColorPicker_default } from "./components/GrColorPicker/chunks/GrColorPicker-BRM_4lyI.js";
71
- import { n as grColorPickerSafelist, t as grColorPickerConfig } from "./chunks/config-DIDz_E5m.js";
72
- import { a as GR_KBD_TOKENS, o as findKbdToken, t as GrKbd_default } from "./components/GrKbd/chunks/GrKbd-BNMeoaLV.js";
73
- import { t as GrModal_default } from "./components/GrModal/chunks/GrModal-Cm0mtSXk.js";
74
- import { t as GrCommandPalette_default } from "./components/GrCommandPalette/chunks/GrCommandPalette-BJHmkDQv.js";
69
+ import { t as GrPopover_default } from "./components/GrPopover/chunks/GrPopover-DjVxt8bf.js";
70
+ import { t as GrSlider_default } from "./components/GrSlider/chunks/GrSlider-DF2Cq0rV.js";
71
+ import { n as grColorPickerSafelist, t as grColorPickerConfig } from "./chunks/config-B34mkd53.js";
72
+ import { GRANULARITY_HOTKEYS_STATE, granularityHotkeysPlugin, useHotkeys } from "./composables/useHotkeys.js";
73
+ import { i as findKbdToken, r as GR_KBD_TOKENS, t as GrKbd_default } from "./components/GrKbd/chunks/GrKbd-D2rHDkQv.js";
74
+ import { t as GrModal_default } from "./components/GrModal/chunks/GrModal-SHb1U2qx.js";
75
+ import { t as GrCommandPalette_default } from "./components/GrCommandPalette/chunks/GrCommandPalette-CAHgj0Aa.js";
75
76
  import { n as grCommandPaletteSafelist, t as grCommandPaletteConfig } from "./chunks/config-D0NzGYaE.js";
76
77
  import { t as GrConfigProvider_default } from "./components/GrConfigProvider/chunks/GrConfigProvider-t9x2UToH.js";
77
78
  import { t as grConfigProviderConfig } from "./chunks/config-B7W9VlZ7.js";
78
- import { i as GrDialogFooter_default, n as GrDialogHeader_default, r as GrDialogCloseButton_default, t as GrDialog_default } from "./components/GrDialog/chunks/GrDialog-DDz_OEhk.js";
79
+ import { i as GrDialogFooter_default, n as GrDialogHeader_default, r as GrDialogCloseButton_default, t as GrDialog_default } from "./components/GrDialog/chunks/GrDialog-C9Zu72jB.js";
79
80
  import { a as extendDefaultParsers, n as coreResponseErrorParsers, r as createResponseErrorClassifier, s as normalizeError, t as GrResponseErrorBanner_default } from "./components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-Bdd5c07x.js";
80
- import { t as GrConfirmDialog_default } from "./components/GrConfirmDialog/chunks/GrConfirmDialog-BzUQwbec.js";
81
+ import { t as GrConfirmDialog_default } from "./components/GrConfirmDialog/chunks/GrConfirmDialog-dg021BMd.js";
81
82
  import { t as grConfirmDialogConfig } from "./chunks/config-A-bBiotF.js";
82
83
  import "./components/GrConfirmDialog/index.js";
83
84
  import { a as GrDropdownMenuItem_default, c as GrDropdownMenuDivider_default, o as GrDropdownMenuGroup_default, s as GrDropdownMenuHeader_default, t as GrDropdownMenuList_default } from "./components/GrDropdownMenu/chunks/GrDropdownMenuList-B33ZzwfB.js";
84
- import { t as GrContextMenu_default } from "./components/GrContextMenu/chunks/GrContextMenu-RpxMHQXH.js";
85
+ import { t as GrContextMenu_default } from "./components/GrContextMenu/chunks/GrContextMenu-bQ1Vvy2c.js";
85
86
  import { t as grContextMenuConfig } from "./chunks/config-CsCUuukB.js";
86
- import { t as GrTable_default } from "./components/GrTable/chunks/GrTable-CKJ-HrsN.js";
87
- import { t as GrDataTable_default } from "./components/GrDataTable/chunks/GrDataTable-DQxYYgQk.js";
87
+ import { t as GrTable_default } from "./components/GrTable/chunks/GrTable-BQitSDep.js";
88
+ import { t as GrDropdown_default } from "./components/GrDropdown/chunks/GrDropdown-kxwmgfSe.js";
89
+ import { t as GrDropdownMenu_default } from "./components/GrDropdownMenu/chunks/GrDropdownMenu--VoK3VY0.js";
90
+ import { t as GrDataTable_default } from "./components/GrDataTable/chunks/GrDataTable-Bb2jWnRG.js";
88
91
  import { useDragSort } from "./composables/useDragSort.js";
89
- import { n as grDataTableSafelist, t as grDataTableConfig } from "./chunks/config-Bs1HwUcx.js";
90
- import { t as GrDelta_default } from "./components/GrDelta/chunks/GrDelta-CgTvfoIN.js";
92
+ import { n as grDataTableSafelist, t as grDataTableConfig } from "./chunks/config-DPJ3jtiB.js";
93
+ import { t as GrDelta_default } from "./components/GrDelta/chunks/GrDelta-BSv1KdMy.js";
91
94
  import { n as grValueSafelist, t as grValueConfig } from "./chunks/config-Z5LeUXys.js";
92
95
  import { t as GrValue_default } from "./components/GrValue/chunks/GrValue-ezkQM05Q.js";
93
96
  import { n as deltaTone, t as deltaDirection } from "./chunks/deltaTone-B5OoS1vo.js";
94
- import { n as grDeltaSafelist, t as grDeltaConfig } from "./chunks/config-CjWOTgLL.js";
97
+ import { n as grDeltaSafelist, t as grDeltaConfig } from "./chunks/config-Bk52xd5l.js";
95
98
  import { n as grDescriptionListSafelist, t as grDescriptionListConfig } from "./chunks/config-CnYdE3HZ.js";
96
99
  import { t as GrDescriptionList_default } from "./components/GrDescriptionList/chunks/GrDescriptionList-Dz2Jj1if.js";
97
100
  import { t as grDialogSafelist } from "./chunks/safelist-Y3zrlhOa.js";
98
101
  import "./components/GrDialog/index.js";
99
102
  import { n as useGrFormContext } from "./chunks/context-Bfrgsluh.js";
100
103
  import { t as GrFormField_default } from "./components/GrFormField/chunks/GrFormField-DO61vxpS.js";
101
- import { t as GrTextarea_default } from "./components/GrTextarea/chunks/GrTextarea-Bfgc0DD2.js";
104
+ import { t as GrTextarea_default } from "./components/GrTextarea/chunks/GrTextarea-BFwyqcHB.js";
102
105
  import { n as getByPath, o as runFieldRules, r as isEmpty, s as setByPath, t as createGrFormMessageResolver } from "./chunks/validation-BDjqsuGB.js";
103
- import { t as GrPromptDialog_default } from "./components/GrPromptDialog/chunks/GrPromptDialog-BEL-QgwE.js";
104
- import { a as useDialogService, i as teardownDialogService, n as dialogService, r as granularityDialogServicePlugin, t as GrDialogServiceHost_default } from "./components/GrDialogService/chunks/GrDialogService-Dtq0ZCN5.js";
106
+ import { t as GrPromptDialog_default } from "./components/GrPromptDialog/chunks/GrPromptDialog-BhbIZP1f.js";
107
+ import { a as useDialogService, i as teardownDialogService, n as dialogService, r as granularityDialogServicePlugin, t as GrDialogServiceHost_default } from "./components/GrDialogService/chunks/GrDialogService-DLBifO61.js";
105
108
  import { t as grDialogServiceConfig } from "./chunks/config-CjXjhphs.js";
106
109
  import { n as grDividerSafelist, t as grDividerConfig } from "./chunks/config-D82r782v.js";
107
110
  import { t as GrDivider_default } from "./components/GrDivider/chunks/GrDivider-DxA-zV25.js";
108
111
  import { n as grDrawerSafelist, t as grDrawerConfig } from "./chunks/config-CviN-0d4.js";
109
- import { t as GrDrawer_default } from "./components/GrDrawer/chunks/GrDrawer-CNpSMuN-.js";
110
- import { t as GrDropdown_default } from "./components/GrDropdown/chunks/GrDropdown-cLZuZMEY.js";
111
- import { n as grDropdownSafelist, t as grDropdownConfig } from "./chunks/config-CT4lP6S4.js";
112
+ import { t as GrDrawer_default } from "./components/GrDrawer/chunks/GrDrawer-DOcRTE8G.js";
113
+ import { n as grDropdownSafelist, t as grDropdownConfig } from "./chunks/config-BOCzHqWh.js";
112
114
  import "./components/GrDropdown/index.js";
113
- import { n as GrDropdownMenuColumn_default, r as GrDropdownMenu_default, t as GrDropdownMenuColumns_default } from "./components/GrDropdownMenu/chunks/GrDropdownMenu-Dxkz_ry4.js";
115
+ import { n as GrDropdownMenuColumn_default, t as GrDropdownMenuColumns_default } from "./components/GrDropdownMenu/chunks/GrDropdownMenu-CkM3BFPL.js";
114
116
  import { n as grDropdownMenuSafelist, t as grDropdownMenuConfig } from "./chunks/config-_jbgsFpw.js";
115
- import { t as GrEmptyState_default } from "./components/GrEmptyState/chunks/GrEmptyState-BbvwE-E0.js";
117
+ import { t as GrEmptyState_default } from "./components/GrEmptyState/chunks/GrEmptyState-Bz6-_ED4.js";
116
118
  import { n as grEmptyStateSafelist, t as grEmptyStateConfig } from "./chunks/config-CWtfxkM9.js";
117
119
  import { n as fileKindOf, r as isPreviewableKind, t as GrFilePreview_default } from "./components/GrFilePreview/chunks/GrFilePreview-2kVOg1C7.js";
118
120
  import { n as grFilePreviewSafelist, t as grFilePreviewConfig } from "./chunks/config-BaWANzzB.js";
119
121
  import { t as GrProgressBar_default } from "./components/GrProgressBar/chunks/GrProgressBar-C3NRBqIP.js";
120
- import { n as GrUploadAbortError, r as GrUploadHttpError, t as GrFileUpload_default } from "./components/GrFileUpload/chunks/GrFileUpload-BwMR71zN.js";
122
+ import { n as GrUploadAbortError, r as GrUploadHttpError, t as GrFileUpload_default } from "./components/GrFileUpload/chunks/GrFileUpload-Bgdfnkd8.js";
121
123
  import { n as grFileUploadSafelist, t as grFileUploadConfig } from "./chunks/config-BlJa1Mj9.js";
122
124
  import { t as GrForm_default } from "./components/GrForm/chunks/GrForm-xTtavR-K.js";
123
125
  import { t as grFormConfig } from "./chunks/config-Droqn55j.js";
124
126
  import { n as grFormFieldSafelist, t as grFormFieldConfig } from "./chunks/config-B0uvcTPH.js";
125
127
  import "./components/GrFormField/index.js";
126
- import { t as GrFormFile_default } from "./components/GrFormFile/chunks/GrFormFile-Dlxx-9zi.js";
127
- import { n as grFormFileSafelist, t as grFormFileConfig } from "./chunks/config-BcXX7S7B.js";
128
+ import { t as GrFormFile_default } from "./components/GrFormFile/chunks/GrFormFile-Ctq1isz-.js";
129
+ import { t as GrSortableList_default } from "./components/GrSortableList/chunks/GrSortableList-ChH9nQBv.js";
130
+ import { n as grFormFileSafelist, t as grFormFileConfig } from "./chunks/config-D-JgqV0J.js";
128
131
  import { n as grFormSectionSafelist, t as grFormSectionConfig } from "./chunks/config-BEO7brpO.js";
129
132
  import { t as GrFormSection_default } from "./components/GrFormSection/chunks/GrFormSection-DV1S6R_N.js";
130
- import { t as GrImageViewer_default } from "./components/GrImageViewer/chunks/GrImageViewer-DK-iVHHC.js";
133
+ import { t as GrImageViewer_default } from "./components/GrImageViewer/chunks/GrImageViewer-Bnql_dNP.js";
131
134
  import { n as grImageViewerSafelist, t as grImageViewerConfig } from "./chunks/config-DjRhIB5g.js";
132
135
  import { n as grInputSafelist, t as grInputConfig } from "./chunks/config-CIUU9ZpY.js";
133
- import { n as grInputTagSafelist, t as grInputTagConfig } from "./chunks/config-B42iJ48O.js";
134
- import { t as GrInputTag_default } from "./components/GrInputTag/chunks/GrInputTag-qnRdAZnn.js";
136
+ import { n as grInputTagSafelist, t as grInputTagConfig } from "./chunks/config-DG41PD9i.js";
137
+ import { t as GrInputTag_default } from "./components/GrInputTag/chunks/GrInputTag-BzzNRBe3.js";
135
138
  import { t as useTree } from "./chunks/useTree-BebEiBcL.js";
136
- import { n as grTreeViewVars, t as GrTree_default } from "./components/GrTree/chunks/GrTree-6yZrncJE.js";
137
- import { t as GrJsonViewer_default } from "./components/GrJsonViewer/chunks/GrJsonViewer-D7CyWzhT.js";
139
+ import { n as grTreeViewVars, t as GrTree_default } from "./components/GrTree/chunks/GrTree-DpgaP8hk.js";
140
+ import { t as GrJsonViewer_default } from "./components/GrJsonViewer/chunks/GrJsonViewer-B6ZJ3GFH.js";
138
141
  import { n as grJsonViewerSafelist, t as grJsonViewerConfig } from "./chunks/config-DpAYidyY.js";
139
142
  import { n as grKbdSafelist, t as grKbdConfig } from "./chunks/config-Ca8qr8Q3.js";
140
143
  import "./components/GrKbd/index.js";
@@ -146,16 +149,16 @@ import { n as grLoadingSafelist, t as grLoadingConfig } from "./chunks/config-Bj
146
149
  import "./components/GrLoading/index.js";
147
150
  import { n as grModalSafelist, t as grModalConfig } from "./chunks/config-DZv2N7zH.js";
148
151
  import "./components/GrModal/index.js";
149
- import { t as GrNavbar_default } from "./components/GrNavbar/chunks/GrNavbar-BRGuksiy.js";
150
- import { n as grNavbarSafelist, t as grNavbarConfig } from "./chunks/config-2ZHRsdOc.js";
152
+ import { t as GrNavbar_default } from "./components/GrNavbar/chunks/GrNavbar-IEIHC5Vt.js";
153
+ import { n as grNavbarSafelist, t as grNavbarConfig } from "./chunks/config-C3uqd-sW.js";
151
154
  import { n as grNumberInputSafelist, t as grNumberInputConfig } from "./chunks/config-BLP94dPY.js";
152
- import { t as GrNumberInput_default } from "./components/GrNumberInput/chunks/GrNumberInput-BI6-vkcs.js";
155
+ import { t as GrNumberInput_default } from "./components/GrNumberInput/chunks/GrNumberInput-CmnUDaKi.js";
153
156
  import { n as grOtpInputSafelist, t as grOtpInputConfig } from "./chunks/config-BBtBQE3s.js";
154
157
  import { t as GrOtpInput_default } from "./components/GrOtpInput/chunks/GrOtpInput-B_Q-RDLw.js";
155
- import { t as GrSelect_default } from "./components/GrSelect/chunks/GrSelect-DvSq-nV-.js";
158
+ import { t as GrSelect_default } from "./components/GrSelect/chunks/GrSelect-B-ykrHpL.js";
156
159
  import { n as grPaginationSafelist, t as grPaginationConfig } from "./chunks/config-Bdf1bt-m.js";
157
- import { t as GrPagination_default } from "./components/GrPagination/chunks/GrPagination-CMrLPzvL.js";
158
- import { n as grPopoverSafelist, t as grPopoverConfig } from "./chunks/config-tNqtapcT.js";
160
+ import { t as GrPagination_default } from "./components/GrPagination/chunks/GrPagination-AMbn5D8I.js";
161
+ import { n as grPopoverSafelist, t as grPopoverConfig } from "./chunks/config-DpqjlCfB.js";
159
162
  import "./components/GrPopover/index.js";
160
163
  import { n as grProgressBarSafelist, t as grProgressBarConfig } from "./chunks/config-hnoZvcIM.js";
161
164
  import "./components/GrProgressBar/index.js";
@@ -176,16 +179,17 @@ import { t as GrScrollSpy_default } from "./components/GrScrollSpy/chunks/GrScro
176
179
  import { n as grScrollSpySafelist, t as grScrollSpyConfig } from "./chunks/config-BkQ2jvXv.js";
177
180
  import { n as titleWhenTruncated, t as GrSegmented_default } from "./components/GrSegmented/chunks/GrSegmented-CuDaKA6S.js";
178
181
  import { n as grSegmentedSafelist, t as grSegmentedConfig } from "./chunks/config-rLkc9Zn2.js";
179
- import { n as grSelectSafelist, t as grSelectConfig } from "./chunks/config--t2dxj0t.js";
182
+ import { n as grSelectSafelist, t as grSelectConfig } from "./chunks/config-CmLTCmY9.js";
180
183
  import "./components/GrSelect/index.js";
181
- import { n as grSidebarSafelist, t as grSidebarConfig } from "./chunks/config-DNDgp9bB.js";
182
- import { n as GrSidebarItem_default, r as GrSidebar_default, t as GrSidebarGroup_default } from "./components/GrSidebar/chunks/GrSidebar-DoKLlHSw.js";
184
+ import { n as grSidebarSafelist, t as grSidebarConfig } from "./chunks/config-DpzFoSIh.js";
185
+ import { n as GrSidebarItem_default, r as GrSidebar_default, t as GrSidebarGroup_default } from "./components/GrSidebar/chunks/GrSidebar-jVvoLGDO.js";
186
+ import { t as GrTooltip_default } from "./components/GrTooltip/chunks/GrTooltip-BDcFycvW.js";
183
187
  import { t as grSkeletonConfig } from "./chunks/config-8Pcutu1j.js";
184
188
  import "./components/GrSkeleton/index.js";
185
- import { n as grSliderSafelist, t as grSliderConfig } from "./chunks/config-E1cTyRVV.js";
189
+ import { n as grSliderSafelist, t as grSliderConfig } from "./chunks/config-8n1VR0ju.js";
186
190
  import "./components/GrSlider/index.js";
187
- import { n as grSortableListSafelist, t as grSortableListConfig } from "./chunks/config-CbEbLyDE.js";
188
- import { t as GrSortableList_default } from "./components/GrSortableList/chunks/GrSortableList-NKriuGm_.js";
191
+ import { n as grSortableListSafelist, t as grSortableListConfig } from "./chunks/config-BTxmdRzT.js";
192
+ import "./components/GrSortableList/index.js";
189
193
  import { n as grSplitterSafelist, t as grSplitterConfig } from "./chunks/config-CvbVM4ep.js";
190
194
  import { n as sizeFromPointer, t as GrSplitter_default } from "./components/GrSplitter/chunks/GrSplitter-C-XQzq7q.js";
191
195
  import { n as formatStatisticValue, t as GrStatistic_default } from "./components/GrStatistic/chunks/GrStatistic-C1_nY4Gc.js";
@@ -194,28 +198,32 @@ import { n as grStepsSafelist, t as grStepsConfig } from "./chunks/config-CLjjjP
194
198
  import { t as GrSteps_default } from "./components/GrSteps/chunks/GrSteps-Cng-Wrjk.js";
195
199
  import { n as grSwitchSafelist, t as grSwitchConfig } from "./chunks/config-MUkhktTP.js";
196
200
  import { t as GrSwitch_default } from "./components/GrSwitch/chunks/GrSwitch-D7X42uIA.js";
197
- import { n as grTableSafelist, t as grTableConfig } from "./chunks/config-D3HOuHDe.js";
201
+ import { n as grTableSafelist, t as grTableConfig } from "./chunks/config-C3SqBqSQ.js";
198
202
  import "./components/GrTable/index.js";
199
- import { n as GrTabPanels_default, t as GrTabPanel_default } from "./components/GrTabPanels/chunks/GrTabPanels-5zsbqS1v.js";
203
+ import { t as GrTabPanels_default } from "./components/GrTabPanels/chunks/GrTabPanels-BDt5oVdd.js";
204
+ import { t as GrTabPanel_default } from "./components/GrTabPanels/chunks/GrTabPanels-BJvAflnA.js";
200
205
  import { t as grTabPanelsConfig } from "./chunks/config-eXB87DOi.js";
201
- import { n as grTabsSafelist, t as grTabsConfig } from "./chunks/config-CMNfZO7S.js";
202
- import { t as GrTabs_default } from "./components/GrTabs/chunks/GrTabs-s9RzC1WX.js";
206
+ import { t as GrTabs_default } from "./components/GrTabs/chunks/GrTabs-DVC6nfWB.js";
207
+ import { n as grTabsSafelist, t as grTabsConfig } from "./chunks/config-SPugeaHT.js";
208
+ import "./components/GrTabs/index.js";
209
+ import { t as GrTabsWithPanels_default } from "./components/GrTabsWithPanels/chunks/GrTabsWithPanels-BYtuzouj.js";
210
+ import { t as grTabsWithPanelsConfig } from "./chunks/config-BBrPUEye.js";
203
211
  import { n as grTextareaSafelist, t as grTextareaConfig } from "./chunks/config-DENqOoh0.js";
204
212
  import "./components/GrTextarea/index.js";
205
213
  import { n as GrTimeline_default, t as GrTimelineItem_default } from "./components/GrTimeline/chunks/GrTimeline-Bs60huw0.js";
206
214
  import { n as grTimelineSafelist, t as grTimelineConfig } from "./chunks/config-Bd7QfiGj.js";
207
215
  import { GRANULARITY_TOAST_STATE, granularityToastPlugin, useToast } from "./composables/useToast.js";
208
- import { n as grToasterSafelist, t as grToasterConfig } from "./chunks/config-B5SBUa6u.js";
209
- import { t as GrToaster_default } from "./components/GrToaster/chunks/GrToaster-CZixNk0l.js";
210
- import { n as grTooltipSafelist, t as grTooltipConfig } from "./chunks/config-iemgzS4x.js";
211
- import { t as GrTooltip_default } from "./components/GrTooltip/chunks/GrTooltip-DkMMM0uq.js";
216
+ import { n as grToasterSafelist, t as grToasterConfig } from "./chunks/config-B7qZqiUB.js";
217
+ import { t as GrToaster_default } from "./components/GrToaster/chunks/GrToaster-OzT1VKcp.js";
218
+ import { n as grTooltipSafelist, t as grTooltipConfig } from "./chunks/config-BP1ktzwh.js";
219
+ import "./components/GrTooltip/index.js";
212
220
  import { n as grTransferSafelist, t as grTransferConfig } from "./chunks/config-DmED6aJV.js";
213
- import { t as GrTransfer_default } from "./components/GrTransfer/chunks/GrTransfer-DdfBUf35.js";
221
+ import { t as GrTransfer_default } from "./components/GrTransfer/chunks/GrTransfer-CV7BL5UK.js";
214
222
  import { n as grTreeSafelist, t as grTreeConfig } from "./chunks/config-CDat1wXf.js";
215
223
  import { n as grTreeSectionsSafelist, t as grTreeSectionsConfig } from "./chunks/config-bjDf8nBf.js";
216
- import { t as GrTreeSections_default } from "./components/GrTreeSections/chunks/GrTreeSections-DcmDcLwj.js";
217
- import { n as grTreeSelectSafelist, t as grTreeSelectConfig } from "./chunks/config-BAse0laT.js";
218
- import { t as GrTreeSelect_default } from "./components/GrTreeSelect/chunks/GrTreeSelect-B6KoDYiZ.js";
224
+ import { t as GrTreeSections_default } from "./components/GrTreeSections/chunks/GrTreeSections-BeOj__44.js";
225
+ import { n as grTreeSelectSafelist, t as grTreeSelectConfig } from "./chunks/config-CvtqB4ki.js";
226
+ import { t as GrTreeSelect_default } from "./components/GrTreeSelect/chunks/GrTreeSelect-BHq-T8wH.js";
219
227
  import "./composables/useGranularityTranslations.js";
220
228
  import { GRANULARITY_THEME_STATE, granularityThemePlugin, initThemeEarly, useTheme } from "./composables/useTheme.js";
221
- export { FileValidationError, GRANULARITY_THEME_STATE, GRANULARITY_TOAST_STATE, GR_KBD_TOKENS, GR_TONES, GrAffix_default as GrAffix, GrAlert_default as GrAlert, GrAutocomplete_default as GrAutocomplete, GrAvatar_default as GrAvatar, GrAvatarGroup_default as GrAvatarGroup, GrBadge_default as GrBadge, GrBadgeWrap_default as GrBadgeWrap, GrBottomNav_default as GrBottomNav, GrBreadcrumbs_default as GrBreadcrumbs, GrButton_default as GrButton, GrButtonGroup_default as GrButtonGroup, GrCard_default as GrCard, GrCarousel_default as GrCarousel, GrCarouselSlide_default as GrCarouselSlide, GrCheckbox_default as GrCheckbox, GrCheckboxGroup_default as GrCheckboxGroup, GrChip_default as GrChip, GrChipGroup_default as GrChipGroup, GrCollapse_default as GrCollapse, GrCollapseItem_default as GrCollapseItem, GrColorPicker_default as GrColorPicker, GrCommandPalette_default as GrCommandPalette, GrConfigProvider_default as GrConfigProvider, GrConfirmDialog_default as GrConfirmDialog, GrContextMenu_default as GrContextMenu, GrDataTable_default as GrDataTable, GrDelta_default as GrDelta, GrDescriptionList_default as GrDescriptionList, GrDialog_default as GrDialog, GrDialogCloseButton_default as GrDialogCloseButton, GrDialogFooter_default as GrDialogFooter, GrDialogHeader_default as GrDialogHeader, GrDialogServiceHost_default as GrDialogServiceHost, GrDivider_default as GrDivider, GrDrawer_default as GrDrawer, GrDropdown_default as GrDropdown, GrDropdownMenu_default as GrDropdownMenu, GrDropdownMenuColumn_default as GrDropdownMenuColumn, GrDropdownMenuColumns_default as GrDropdownMenuColumns, GrDropdownMenuDivider_default as GrDropdownMenuDivider, GrDropdownMenuGroup_default as GrDropdownMenuGroup, GrDropdownMenuHeader_default as GrDropdownMenuHeader, GrDropdownMenuItem_default as GrDropdownMenuItem, GrDropdownMenuList_default as GrDropdownMenuList, GrEmptyState_default as GrEmptyState, GrFilePreview_default as GrFilePreview, GrFileUpload_default as GrFileUpload, GrForm_default as GrForm, GrFormErrorBanner_default as GrFormErrorBanner, GrFormField_default as GrFormField, GrFormFile_default as GrFormFile, GrFormSection_default as GrFormSection, GrIcon_default as GrIcon, GrImageViewer_default as GrImageViewer, GrInput_default as GrInput, GrInputTag_default as GrInputTag, GrJsonViewer_default as GrJsonViewer, GrKbd_default as GrKbd, GrLink_default as GrLink, GrList_default as GrList, GrListItem_default as GrListItem, GrLoading_default as GrLoading, GrModal_default as GrModal, GrNavbar_default as GrNavbar, GrNumberInput_default as GrNumberInput, GrOtpInput_default as GrOtpInput, GrPagination_default as GrPagination, GrPopover_default as GrPopover, GrProgressBar_default as GrProgressBar, GrProgressCircle_default as GrProgressCircle, GrPromptDialog_default as GrPromptDialog, GrRadio_default as GrRadio, GrRadioGroup_default as GrRadioGroup, GrRating_default as GrRating, GrResponseErrorBanner_default as GrResponseErrorBanner, GrScrollSpy_default as GrScrollSpy, GrSegmented_default as GrSegmented, GrSelect_default as GrSelect, GrSidebar_default as GrSidebar, GrSidebarGroup_default as GrSidebarGroup, GrSidebarItem_default as GrSidebarItem, GrSkeleton_default as GrSkeleton, GrSlider_default as GrSlider, GrSortableList_default as GrSortableList, GrSplitter_default as GrSplitter, GrStatistic_default as GrStatistic, GrSteps_default as GrSteps, GrSwitch_default as GrSwitch, GrTabPanel_default as GrTabPanel, GrTabPanels_default as GrTabPanels, GrTable_default as GrTable, GrTabs_default as GrTabs, GrTextarea_default as GrTextarea, GrTimeline_default as GrTimeline, GrTimelineItem_default as GrTimelineItem, GrToaster_default as GrToaster, GrTooltip_default as GrTooltip, GrTransfer_default as GrTransfer, GrTree_default as GrTree, GrTreeSections_default as GrTreeSections, GrTreeSelect_default as GrTreeSelect, GrUploadAbortError, GrUploadErrorBanner_default as GrUploadErrorBanner, GrUploadHttpError, GrValue_default as GrValue, coreResponseErrorParsers, createGrFormMessageResolver, createLoading, createResponseErrorClassifier, deltaDirection, deltaTone, dialogService, extendDefaultParsers, fileKindOf, findKbdToken, formatBadgeValue, formatStatisticValue, getByPath, grAffixConfig, grAffixSafelist, grAlertConfig, grAutocompleteConfig, grAutocompleteSafelist, grAvatarConfig, grAvatarSafelist, grBadgeConfig, grBadgeSafelist, grBadgeWrapConfig, grBadgeWrapSafelist, grBottomNavConfig, grBottomNavSafelist, grBreadcrumbsConfig, grBreadcrumbsSafelist, grButtonConfig, grButtonGroupConfig, grButtonSafelist, grCardConfig, grCardSafelist, grCarouselConfig, grCarouselSafelist, grCheckboxConfig, grCheckboxGroupConfig, grCheckboxSafelist, grChipConfig, grChipGroupConfig, grChipGroupSafelist, grChipSafelist, grCollapseConfig, grCollapseSafelist, grColorPickerConfig, grColorPickerSafelist, grCommandPaletteConfig, grCommandPaletteSafelist, grConfigProviderConfig, grConfirmDialogConfig, grContextMenuConfig, grDataTableConfig, grDataTableSafelist, grDeltaConfig, grDeltaSafelist, grDescriptionListConfig, grDescriptionListSafelist, grDialogSafelist, grDialogServiceConfig, grDividerConfig, grDividerSafelist, grDrawerConfig, grDrawerSafelist, grDropdownConfig, grDropdownMenuConfig, grDropdownMenuSafelist, grDropdownSafelist, grEmptyStateConfig, grEmptyStateSafelist, grFilePreviewConfig, grFilePreviewSafelist, grFileUploadConfig, grFileUploadSafelist, grFormConfig, grFormFieldConfig, grFormFieldSafelist, grFormFileConfig, grFormFileSafelist, grFormSectionConfig, grFormSectionSafelist, grIconConfig, grIconSafelist, grImageViewerConfig, grImageViewerSafelist, grInputConfig, grInputSafelist, grInputTagConfig, grInputTagSafelist, grJsonViewerConfig, grJsonViewerSafelist, grKbdConfig, grKbdSafelist, grLinkConfig, grLinkSafelist, grListConfig, grListSafelist, grLoadingConfig, grLoadingSafelist, grModalConfig, grModalSafelist, grNavbarConfig, grNavbarSafelist, grNumberInputConfig, grNumberInputSafelist, grOtpInputConfig, grOtpInputSafelist, grPaginationConfig, grPaginationSafelist, grPopoverConfig, grPopoverSafelist, grProgressBarConfig, grProgressBarSafelist, grProgressCircleConfig, grProgressCircleSafelist, grPromptDialogConfig, grRadioConfig, grRadioGroupConfig, grRadioSafelist, grRatingConfig, grRatingSafelist, grScrollSpyConfig, grScrollSpySafelist, grSegmentedConfig, grSegmentedSafelist, grSelectConfig, grSelectSafelist, grSidebarConfig, grSidebarSafelist, grSkeletonConfig, grSliderConfig, grSliderSafelist, grSortableListConfig, grSortableListSafelist, grSplitterConfig, grSplitterSafelist, grStatisticConfig, grStatisticSafelist, grStepsConfig, grStepsSafelist, grSwitchConfig, grSwitchSafelist, grTabPanelsConfig, grTableConfig, grTableSafelist, grTabsConfig, grTabsSafelist, grTextareaConfig, grTextareaSafelist, grTimelineConfig, grTimelineSafelist, grToasterConfig, grToasterSafelist, grTooltipConfig, grTooltipSafelist, grTransferConfig, grTransferSafelist, grTreeConfig, grTreeSafelist, grTreeSectionsConfig, grTreeSectionsSafelist, grTreeSelectConfig, grTreeSelectSafelist, grTreeViewVars, grValueConfig, grValueSafelist, granularityDialogServicePlugin, granularityThemePlugin, granularityToastPlugin, initThemeEarly, initialsFrom, isEmpty, isPreviewableKind, normalizeError, resolveBreadcrumbsFit, resolveBreadcrumbsLayout, resolveGrConfig, runFieldRules, setByPath, sizeFromPointer, teardownDialogService, titleWhenTruncated, useAnnouncer, useComboboxNavigation, useDialogService, useDismissible, useDragGesture, useDragSort, useFloating, useFocusTrap, useGrButtonGroup, useGrComponentDefaults, useGrComponentProp, useGrComponentSize, useGrConfig, useGrFormContext, useGrFormControl, useGrFormFieldContext, useGrThemeAttrs, useGranularityTranslations, useOverlayLayer, usePortalTarget, useResponseError, useRovingFocus, useScrollSpy, useTheme, useToast, useTree, useVirtualList, vAutofocus, vAutosize, vClickOutside, vDropzone, vHotkey, vLoading };
229
+ export { FileValidationError, GRANULARITY_HOTKEYS_STATE, GRANULARITY_THEME_STATE, GRANULARITY_TOAST_STATE, GR_KBD_TOKENS, GR_TONES, GrAffix_default as GrAffix, GrAlert_default as GrAlert, GrAutocomplete_default as GrAutocomplete, GrAvatar_default as GrAvatar, GrAvatarGroup_default as GrAvatarGroup, GrBadge_default as GrBadge, GrBadgeWrap_default as GrBadgeWrap, GrBottomNav_default as GrBottomNav, GrBreadcrumbs_default as GrBreadcrumbs, GrButton_default as GrButton, GrButtonGroup_default as GrButtonGroup, GrCard_default as GrCard, GrCarousel_default as GrCarousel, GrCarouselSlide_default as GrCarouselSlide, GrCheckbox_default as GrCheckbox, GrCheckboxGroup_default as GrCheckboxGroup, GrChip_default as GrChip, GrChipGroup_default as GrChipGroup, GrCollapse_default as GrCollapse, GrCollapseItem_default as GrCollapseItem, GrColorPicker_default as GrColorPicker, GrCommandPalette_default as GrCommandPalette, GrConfigProvider_default as GrConfigProvider, GrConfirmDialog_default as GrConfirmDialog, GrContextMenu_default as GrContextMenu, GrDataTable_default as GrDataTable, GrDelta_default as GrDelta, GrDescriptionList_default as GrDescriptionList, GrDialog_default as GrDialog, GrDialogCloseButton_default as GrDialogCloseButton, GrDialogFooter_default as GrDialogFooter, GrDialogHeader_default as GrDialogHeader, GrDialogServiceHost_default as GrDialogServiceHost, GrDivider_default as GrDivider, GrDrawer_default as GrDrawer, GrDropdown_default as GrDropdown, GrDropdownMenu_default as GrDropdownMenu, GrDropdownMenuColumn_default as GrDropdownMenuColumn, GrDropdownMenuColumns_default as GrDropdownMenuColumns, GrDropdownMenuDivider_default as GrDropdownMenuDivider, GrDropdownMenuGroup_default as GrDropdownMenuGroup, GrDropdownMenuHeader_default as GrDropdownMenuHeader, GrDropdownMenuItem_default as GrDropdownMenuItem, GrDropdownMenuList_default as GrDropdownMenuList, GrEmptyState_default as GrEmptyState, GrFilePreview_default as GrFilePreview, GrFileUpload_default as GrFileUpload, GrForm_default as GrForm, GrFormErrorBanner_default as GrFormErrorBanner, GrFormField_default as GrFormField, GrFormFile_default as GrFormFile, GrFormSection_default as GrFormSection, GrIcon_default as GrIcon, GrImageViewer_default as GrImageViewer, GrInput_default as GrInput, GrInputTag_default as GrInputTag, GrJsonViewer_default as GrJsonViewer, GrKbd_default as GrKbd, GrLink_default as GrLink, GrList_default as GrList, GrListItem_default as GrListItem, GrLoading_default as GrLoading, GrModal_default as GrModal, GrNavbar_default as GrNavbar, GrNumberInput_default as GrNumberInput, GrOtpInput_default as GrOtpInput, GrPagination_default as GrPagination, GrPopover_default as GrPopover, GrProgressBar_default as GrProgressBar, GrProgressCircle_default as GrProgressCircle, GrPromptDialog_default as GrPromptDialog, GrRadio_default as GrRadio, GrRadioGroup_default as GrRadioGroup, GrRating_default as GrRating, GrResponseErrorBanner_default as GrResponseErrorBanner, GrScrollSpy_default as GrScrollSpy, GrSegmented_default as GrSegmented, GrSelect_default as GrSelect, GrSidebar_default as GrSidebar, GrSidebarGroup_default as GrSidebarGroup, GrSidebarItem_default as GrSidebarItem, GrSkeleton_default as GrSkeleton, GrSlider_default as GrSlider, GrSortableList_default as GrSortableList, GrSplitter_default as GrSplitter, GrStatistic_default as GrStatistic, GrSteps_default as GrSteps, GrSwitch_default as GrSwitch, GrTabPanel_default as GrTabPanel, GrTabPanels_default as GrTabPanels, GrTable_default as GrTable, GrTabs_default as GrTabs, GrTabsWithPanels_default as GrTabsWithPanels, GrTextarea_default as GrTextarea, GrTimeline_default as GrTimeline, GrTimelineItem_default as GrTimelineItem, GrToaster_default as GrToaster, GrTooltip_default as GrTooltip, GrTransfer_default as GrTransfer, GrTree_default as GrTree, GrTreeSections_default as GrTreeSections, GrTreeSelect_default as GrTreeSelect, GrUploadAbortError, GrUploadErrorBanner_default as GrUploadErrorBanner, GrUploadHttpError, GrValue_default as GrValue, coreResponseErrorParsers, createGrFormMessageResolver, createLoading, createResponseErrorClassifier, deltaDirection, deltaTone, dialogService, extendDefaultParsers, fileKindOf, findKbdToken, formatBadgeValue, formatStatisticValue, getByPath, grAffixConfig, grAffixSafelist, grAlertConfig, grAutocompleteConfig, grAutocompleteSafelist, grAvatarConfig, grAvatarSafelist, grBadgeConfig, grBadgeSafelist, grBadgeWrapConfig, grBadgeWrapSafelist, grBottomNavConfig, grBottomNavSafelist, grBreadcrumbsConfig, grBreadcrumbsSafelist, grButtonConfig, grButtonGroupConfig, grButtonSafelist, grCardConfig, grCardSafelist, grCarouselConfig, grCarouselSafelist, grCheckboxConfig, grCheckboxGroupConfig, grCheckboxSafelist, grChipConfig, grChipGroupConfig, grChipGroupSafelist, grChipSafelist, grCollapseConfig, grCollapseSafelist, grColorPickerConfig, grColorPickerSafelist, grCommandPaletteConfig, grCommandPaletteSafelist, grConfigProviderConfig, grConfirmDialogConfig, grContextMenuConfig, grDataTableConfig, grDataTableSafelist, grDeltaConfig, grDeltaSafelist, grDescriptionListConfig, grDescriptionListSafelist, grDialogSafelist, grDialogServiceConfig, grDividerConfig, grDividerSafelist, grDrawerConfig, grDrawerSafelist, grDropdownConfig, grDropdownMenuConfig, grDropdownMenuSafelist, grDropdownSafelist, grEmptyStateConfig, grEmptyStateSafelist, grFilePreviewConfig, grFilePreviewSafelist, grFileUploadConfig, grFileUploadSafelist, grFormConfig, grFormFieldConfig, grFormFieldSafelist, grFormFileConfig, grFormFileSafelist, grFormSectionConfig, grFormSectionSafelist, grIconConfig, grIconSafelist, grImageViewerConfig, grImageViewerSafelist, grInputConfig, grInputSafelist, grInputTagConfig, grInputTagSafelist, grJsonViewerConfig, grJsonViewerSafelist, grKbdConfig, grKbdSafelist, grLinkConfig, grLinkSafelist, grListConfig, grListSafelist, grLoadingConfig, grLoadingSafelist, grModalConfig, grModalSafelist, grNavbarConfig, grNavbarSafelist, grNumberInputConfig, grNumberInputSafelist, grOtpInputConfig, grOtpInputSafelist, grPaginationConfig, grPaginationSafelist, grPopoverConfig, grPopoverSafelist, grProgressBarConfig, grProgressBarSafelist, grProgressCircleConfig, grProgressCircleSafelist, grPromptDialogConfig, grRadioConfig, grRadioGroupConfig, grRadioSafelist, grRatingConfig, grRatingSafelist, grScrollSpyConfig, grScrollSpySafelist, grSegmentedConfig, grSegmentedSafelist, grSelectConfig, grSelectSafelist, grSidebarConfig, grSidebarSafelist, grSkeletonConfig, grSliderConfig, grSliderSafelist, grSortableListConfig, grSortableListSafelist, grSplitterConfig, grSplitterSafelist, grStatisticConfig, grStatisticSafelist, grStepsConfig, grStepsSafelist, grSwitchConfig, grSwitchSafelist, grTabPanelsConfig, grTableConfig, grTableSafelist, grTabsConfig, grTabsSafelist, grTabsWithPanelsConfig, grTextareaConfig, grTextareaSafelist, grTimelineConfig, grTimelineSafelist, grToasterConfig, grToasterSafelist, grTooltipConfig, grTooltipSafelist, grTransferConfig, grTransferSafelist, grTreeConfig, grTreeSafelist, grTreeSectionsConfig, grTreeSectionsSafelist, grTreeSelectConfig, grTreeSelectSafelist, grTreeViewVars, grValueConfig, grValueSafelist, granularityDialogServicePlugin, granularityHotkeysPlugin, granularityThemePlugin, granularityToastPlugin, initThemeEarly, initialsFrom, isEmpty, isPreviewableKind, normalizeError, resolveBreadcrumbsFit, resolveBreadcrumbsLayout, resolveGrConfig, runFieldRules, setByPath, sizeFromPointer, teardownDialogService, titleWhenTruncated, useAnnouncer, useComboboxNavigation, useDialogService, useDismissible, useDragGesture, useDragSort, useFloating, useFocusTrap, useGrButtonGroup, useGrComponentDefaults, useGrComponentProp, useGrComponentSize, useGrConfig, useGrFormContext, useGrFormControl, useGrFormFieldContext, useGrThemeAttrs, useGranularityTranslations, useHotkeys, useOverlayLayer, usePortalTarget, useResponseError, useRovingFocus, useScrollSpy, useTheme, useToast, useTree, useVirtualList, vAutofocus, vAutosize, vClickOutside, vDropzone, vHotkey, vLoading };
package/dist/theme.js CHANGED
@@ -1,4 +1,4 @@
1
- import { a as grThemeTokens, n as grDerivedTokens, t as grComponentTokens } from "./chunks/generated-CxvC5O0V.js";
1
+ import { a as grThemeTokens, n as grDerivedTokens, t as grComponentTokens } from "./chunks/generated-Cx4C7GRN.js";
2
2
  //#region src/theme/color.ts
3
3
  function parseHex(value) {
4
4
  const match = value.trim().match(/^#([\da-f]{3}|[\da-f]{6})$/i);
package/dist/tokens.js CHANGED
@@ -1,2 +1,2 @@
1
- import { a as grThemeTokens, i as grThemeNames, n as grDerivedTokens, r as grFoundationTokens, t as grComponentTokens } from "./chunks/generated-CxvC5O0V.js";
1
+ import { a as grThemeTokens, i as grThemeNames, n as grDerivedTokens, r as grFoundationTokens, t as grComponentTokens } from "./chunks/generated-Cx4C7GRN.js";
2
2
  export { grComponentTokens, grDerivedTokens, grFoundationTokens, grThemeNames, grThemeTokens };
@@ -1,6 +1,6 @@
1
1
  import type { GrBadgeRadius, GrBadgeSize, GrBadgeTone } from '../GrBadge/grBadgeStyles';
2
- import { type GrAutocompleteModelValue, type GrAutocompleteOption, type GrAutocompleteValue, type GrAutocompleteSize } from './grAutocompleteStyles';
3
- export type { GrAutocompleteModelValue, GrAutocompleteOption, GrAutocompleteSize, GrAutocompleteValue, } from './grAutocompleteStyles';
2
+ import { type GrAutocompleteModelValue, type GrAutocompleteOption, type GrAutocompleteOptionOrGroup, type GrAutocompleteValue, type GrAutocompleteSize } from './grAutocompleteStyles';
3
+ export type { GrAutocompleteModelValue, GrAutocompleteOption, GrAutocompleteOptionGroup, GrAutocompleteOptionOrGroup, GrAutocompleteSize, GrAutocompleteValue, } from './grAutocompleteStyles';
4
4
  /**
5
5
  * Публичный GR-примитив «Autocomplete / Combobox» (WAI-ARIA editable combobox).
6
6
  *
@@ -18,7 +18,7 @@ export interface GrAutocompleteProps<TValue extends GrAutocompleteValue = string
18
18
  * Для remote-режима (`filterable=false`) — список, который родитель обновляет
19
19
  * в ответ на событие `search`.
20
20
  */
21
- options?: GrAutocompleteOption<TValue>[];
21
+ options?: GrAutocompleteOptionOrGroup<TValue>[];
22
22
  multiple?: boolean;
23
23
  /**
24
24
  * Вид чипов выбранных значений в режиме `multiple`. Рисует их `GrChip`, но
@@ -62,7 +62,7 @@ export interface GrAutocompleteProps<TValue extends GrAutocompleteValue = string
62
62
  * выключена: список фильтрует сервер. Альтернатива — событие `search`, если
63
63
  * запрос ведёт само приложение.
64
64
  */
65
- fetchOptions?: (query: string, signal: AbortSignal) => Promise<GrAutocompleteOption<TValue>[]>;
65
+ fetchOptions?: (query: string, signal: AbortSignal) => Promise<GrAutocompleteOptionOrGroup<TValue>[]>;
66
66
  /** Минимальная длина запроса до эмита `search` (для дебаунса remote-загрузки). */
67
67
  minQueryLength?: number;
68
68
  /** Задержка дебаунса события `search`, мс. */
@@ -1,4 +1,5 @@
1
1
  import type { ComputedRef, Ref } from 'vue';
2
+ import type { GrAutocompletePanelItem } from './useAutocompletePanel';
2
3
  import type { GrAutocompleteOption, GrAutocompleteValue } from '../GrAutocomplete.vue';
3
4
  /**
4
5
  * Клавиатурная навигация ходит и по опциям, и по варианту «добавить своё»:
@@ -7,13 +8,20 @@ import type { GrAutocompleteOption, GrAutocompleteValue } from '../GrAutocomplet
7
8
  */
8
9
  export type GrAutocompleteNavigableItem<TValue extends GrAutocompleteValue> = {
9
10
  kind: 'add';
10
- } | {
11
+ }
12
+ /**
13
+ * `index` — позиция в `panelItems`, а не среди опций: заголовки групп занимают
14
+ * в наборе такие же строки, и по этому же индексу считаются `id` опции и окно
15
+ * виртуализации. Индекс «среди опций» разошёлся бы с обоими, как только
16
+ * появилась первая группа.
17
+ */
18
+ | {
11
19
  kind: 'option';
12
20
  option: GrAutocompleteOption<TValue>;
13
21
  index: number;
14
22
  };
15
23
  export interface UseAutocompleteNavigationOptions<TValue extends GrAutocompleteValue> {
16
- effectiveOptions: ComputedRef<GrAutocompleteOption<TValue>[]>;
24
+ panelItems: ComputedRef<GrAutocompletePanelItem<TValue>[]>;
17
25
  canAddCustom: ComputedRef<boolean>;
18
26
  selectedValues: ComputedRef<TValue[]>;
19
27
  open: Ref<boolean>;
@@ -27,7 +35,8 @@ export interface UseAutocompleteNavigationOptions<TValue extends GrAutocompleteV
27
35
  export interface AutocompleteNavigation<TValue extends GrAutocompleteValue> {
28
36
  navigableItems: ComputedRef<Array<GrAutocompleteNavigableItem<TValue>>>;
29
37
  isSelected: (value: TValue) => boolean;
30
- navigableIndexOf: (value: TValue) => number;
38
+ /** Индекс навигации по позиции строки в панели — для наведения мышью. */
39
+ navigableIndexOfPanelIndex: (index: number) => number;
31
40
  activeIndex: Ref<number>;
32
41
  activeItem: ComputedRef<GrAutocompleteNavigableItem<TValue> | undefined>;
33
42
  activeDescendantId: ComputedRef<string | undefined>;
@@ -1,5 +1,8 @@
1
1
  import type { ComputedRef, Ref } from 'vue';
2
- import type { GrAutocompleteOption, GrAutocompleteValue } from '../GrAutocomplete.vue';
2
+ import type { OptionPanelItem, OptionPanelRow } from '../../shared/optionPanel';
3
+ import type { GrAutocompleteOption, GrAutocompleteOptionOrGroup, GrAutocompleteValue } from '../GrAutocomplete.vue';
4
+ export type GrAutocompletePanelItem<TValue extends GrAutocompleteValue> = OptionPanelItem<GrAutocompleteOption<TValue>>;
5
+ export type GrAutocompletePanelRow<TValue extends GrAutocompleteValue> = OptionPanelRow<GrAutocompleteOption<TValue>>;
3
6
  /**
4
7
  * Состав панели `GrAutocomplete`: что показывать под запросом.
5
8
  *
@@ -11,7 +14,9 @@ import type { GrAutocompleteOption, GrAutocompleteValue } from '../GrAutocomplet
11
14
  * уже есть среди опций.
12
15
  */
13
16
  export interface UseAutocompletePanelOptions<TValue extends GrAutocompleteValue> {
14
- optionsResolved: ComputedRef<GrAutocompleteOption<TValue>[]>;
17
+ optionsResolved: ComputedRef<GrAutocompleteOptionOrGroup<TValue>[]>;
18
+ /** Список без групп: по нему проверяется «такое значение уже есть». */
19
+ flatOptions: ComputedRef<GrAutocompleteOption<TValue>[]>;
15
20
  /** Введённый текст без нормализации: тримит уже сам модуль. */
16
21
  query: Ref<string>;
17
22
  /** Пользователь начал ввод — до этого single-режим показывает весь список. */
@@ -29,6 +34,11 @@ export interface UseAutocompletePanelOptions<TValue extends GrAutocompleteValue>
29
34
  export interface AutocompletePanel<TValue extends GrAutocompleteValue> {
30
35
  searchQuery: ComputedRef<string>;
31
36
  belowMinQuery: ComputedRef<boolean>;
37
+ /** Плоский набор строк панели: заголовки групп идут в нём наравне с опциями. */
38
+ panelItems: ComputedRef<GrAutocompletePanelItem<TValue>[]>;
39
+ /** Те же строки, собранные в группы для рендера. */
40
+ panelRows: ComputedRef<GrAutocompletePanelRow<TValue>[]>;
41
+ /** Только опции — по ним ходит клавиатура и считается «список пуст». */
32
42
  effectiveOptions: ComputedRef<GrAutocompleteOption<TValue>[]>;
33
43
  canAddCustom: ComputedRef<boolean>;
34
44
  showEmpty: ComputedRef<boolean>;