@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
@@ -0,0 +1,543 @@
1
+ import { t as x_default } from "../../../chunks/x-2KXnqxiD.js";
2
+ import { n as useGranularityTranslations } from "../../../chunks/granularityI18n-BC5zsj_d.js";
3
+ import { t as GrIcon_default } from "../../GrIcon/chunks/GrIcon-DTZIgmje.js";
4
+ import { t as GrButton_default } from "../../GrButton/chunks/GrButton-CS4TqMtG.js";
5
+ import { t as chevron_left_default } from "../../../chunks/chevron-left-D8AUBAM7.js";
6
+ import { t as chevron_right_default } from "../../../chunks/chevron-right-C6Z01h0X.js";
7
+ import { t as useModalOverlay } from "../../../chunks/useModalOverlay-CKCQkGdB.js";
8
+ import { C as titleClass, S as subtitleClass, _ as layerBackdropClass, a as grSidebarItemClass, b as layerPassThroughClass, c as groupLabelClass, d as itemChevronClass, f as itemChevronExpandedClass, g as itemNestIndent, h as itemNestClass, i as grSidebarCollapseDirection, l as headerBase, m as itemLetterClass, o as grSidebarRootClass, p as itemChildrenClass, r as contentBase, s as groupCollapsedClass, u as itemBadgeClass, v as layerPanelEnterFrom, x as layerRootClass, y as layerPanelPositions } from "../../../chunks/config-DpzFoSIh.js";
9
+ import { t as GrTooltip_default } from "../../GrTooltip/chunks/GrTooltip-BDcFycvW.js";
10
+ import { Teleport, Transition, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, inject, markRaw, mergeProps, normalizeClass, normalizeStyle, openBlock, provide, ref, renderSlot, resolveDynamicComponent, toDisplayString, toHandlers, unref, useId, useSlots, watch, withCtx } from "vue";
11
+ //#region src/components/GrSidebar/sidebarContext.ts
12
+ var GR_SIDEBAR_KEY = Symbol.for("@feugene/granularity/sidebar");
13
+ /**
14
+ * Уровень вложенности пункта. Раздаётся не панелью, а самими пунктами: каждый
15
+ * объявляет своим детям `level + 1`, поэтому глубина считается разметкой, а не
16
+ * пропом, который потребителю пришлось бы проставлять руками и держать в
17
+ * синхроне при перестановке ветки.
18
+ */
19
+ var GR_SIDEBAR_LEVEL_KEY = Symbol.for("@feugene/granularity/sidebar-level");
20
+ //#endregion
21
+ //#region src/components/GrSidebar/GrSidebar.vue?vue&type=script&setup=true&lang.ts
22
+ var _hoisted_1$2 = [
23
+ "data-gr-sidebar-layer",
24
+ "data-gr-overlay-root",
25
+ "role",
26
+ "aria-modal",
27
+ "aria-label",
28
+ "inert"
29
+ ];
30
+ var _hoisted_2$2 = {
31
+ key: 0,
32
+ class: "min-w-0"
33
+ };
34
+ //#endregion
35
+ //#region src/components/GrSidebar/GrSidebar.vue
36
+ var GrSidebar_default = /* @__PURE__ */ defineComponent({
37
+ inheritAttrs: false,
38
+ __name: "GrSidebar",
39
+ props: {
40
+ title: { default: void 0 },
41
+ subtitle: { default: void 0 },
42
+ collapsed: {
43
+ type: Boolean,
44
+ default: false
45
+ },
46
+ showToggleButton: {
47
+ type: Boolean,
48
+ default: false
49
+ },
50
+ width: { default: "240px" },
51
+ collapsedWidth: { default: "64px" },
52
+ toggleLabel: { default: void 0 },
53
+ position: { default: "left" },
54
+ landmark: { default: "complementary" },
55
+ ariaLabel: { default: void 0 },
56
+ overlay: {
57
+ type: Boolean,
58
+ default: false
59
+ },
60
+ open: {
61
+ type: Boolean,
62
+ default: false
63
+ }
64
+ },
65
+ emits: ["update:collapsed", "update:open"],
66
+ setup(__props, { emit: __emit }) {
67
+ /**
68
+ * GrSidebar — боковая панель приложения с опциональным заголовком, кнопкой
69
+ * сворачивания и слотом контента (обычно — список `GrSidebarItem`).
70
+ *
71
+ * - Свёрнутое состояние (`collapsed`, поддерживает `v-model:collapsed`) сужает
72
+ * панель до иконочной ширины; `GrSidebarItem`'ы через inject показывают только
73
+ * иконку (или первую букву метки).
74
+ * - Кнопка тогла (`show-toggle-button`) переключает состояние.
75
+ * - Хедер рендерится только если есть `title`/`subtitle` (или кнопка тогла) —
76
+ * иначе панель начинается сразу с контента.
77
+ * - Слоты `#title` / `#subtitle` имеют приоритет над одноимёнными пропами.
78
+ */
79
+ const props = __props;
80
+ const { t } = useGranularityTranslations();
81
+ const emit = __emit;
82
+ const collapsedState = ref(props.collapsed);
83
+ watch(() => props.collapsed, (value) => collapsedState.value = value);
84
+ function toggle() {
85
+ collapsedState.value = !collapsedState.value;
86
+ emit("update:collapsed", collapsedState.value);
87
+ }
88
+ function expand() {
89
+ if (!collapsedState.value) return;
90
+ collapsedState.value = false;
91
+ emit("update:collapsed", false);
92
+ }
93
+ const panelEl = ref(null);
94
+ const openState = ref(props.open);
95
+ watch(() => props.open, (value) => openState.value = value);
96
+ function closeOverlay() {
97
+ openState.value = false;
98
+ emit("update:open", false);
99
+ }
100
+ /**
101
+ * Слой активен только вместе с `overlay`: композабл зовётся всегда — условным
102
+ * его сделать нельзя, — но при выключенном режиме открытым не бывает никогда, и
103
+ * ни портал, ни ловушка фокуса не включаются.
104
+ */
105
+ const layerOpen = computed(() => props.overlay && openState.value);
106
+ const { rootEl, isMounted, isVisible, inertAttr, layerZIndex, portalTarget, teleportEnabled, themeAttrs, backdrop, onPanelAfterLeave } = useModalOverlay(layerOpen, closeOverlay, { panel: panelEl });
107
+ /**
108
+ * Портал включается только под слой. В обычном режиме панель обязана остаться
109
+ * там, где её поставил потребитель: она часть его раскладки, а не всплывающий
110
+ * элемент.
111
+ *
112
+ * До монтирования слой не рисуется вовсе — ни панели, ни подложки. Иначе первый
113
+ * клиентский рендер показал бы модальную панель прямо в потоке страницы: телепорт
114
+ * включается только после монтирования, чтобы совпасть с серверным рендером.
115
+ *
116
+ * `isMounted` здесь обязателен: корень слоя растянут на весь экран, и оставь мы
117
+ * его при закрытой панели, страница получила бы невидимую плёнку, перехватывающую
118
+ * все клики.
119
+ */
120
+ const layerActive = computed(() => props.overlay && teleportEnabled.value && isMounted.value);
121
+ /**
122
+ * В слое панель показывается целиком: рейл шириной в иконку внутри модального
123
+ * окна — это половина экрана, потраченная на пустоту. Поэтому свёрнутость там
124
+ * игнорируется.
125
+ */
126
+ const effectiveCollapsed = computed(() => collapsedState.value && !props.overlay);
127
+ /**
128
+ * Кнопка в шапке меняет смысл вместе с режимом: в колонке она сворачивает
129
+ * панель, в слое — закрывает его. Сворачивать там нечего, а закрыть иначе можно
130
+ * только `Esc` или подложкой.
131
+ */
132
+ function onHeaderButton() {
133
+ if (props.overlay) closeOverlay();
134
+ else toggle();
135
+ }
136
+ provide(GR_SIDEBAR_KEY, {
137
+ collapsed: effectiveCollapsed,
138
+ position: computed(() => props.position),
139
+ expand
140
+ });
141
+ const hasTitle = computed(() => Boolean(props.title));
142
+ const hasSubtitle = computed(() => Boolean(props.subtitle));
143
+ const showHeader = computed(() => Boolean(hasTitle.value || hasSubtitle.value || props.showToggleButton));
144
+ const asideStyle = computed(() => ({ width: collapsedState.value ? props.collapsedWidth : props.width }));
145
+ const resolvedToggleLabel = computed(() => props.toggleLabel ?? (collapsedState.value ? t("gr.sidebar.expand", "Expand sidebar") : t("gr.sidebar.collapse", "Collapse sidebar")));
146
+ const rootTag = computed(() => props.landmark === "navigation" ? "nav" : "aside");
147
+ const rootClass = computed(() => grSidebarRootClass(props.position));
148
+ const collapseDirection = computed(() => grSidebarCollapseDirection(props.position, collapsedState.value));
149
+ const collapseIcon = computed(() => collapseDirection.value === "right" ? chevron_right_default : chevron_left_default);
150
+ return (_ctx, _cache) => {
151
+ return openBlock(), createBlock(Teleport, {
152
+ to: unref(portalTarget),
153
+ disabled: !layerActive.value
154
+ }, [createElementVNode("div", {
155
+ ref_key: "rootEl",
156
+ ref: rootEl,
157
+ "data-gr-sidebar-layer": layerActive.value ? "" : void 0,
158
+ "data-gr-overlay-root": layerActive.value ? "" : void 0,
159
+ role: layerActive.value ? "dialog" : void 0,
160
+ "aria-modal": layerActive.value ? "true" : void 0,
161
+ "aria-label": layerActive.value ? __props.ariaLabel : void 0,
162
+ class: normalizeClass(layerActive.value ? unref(layerRootClass) : unref(layerPassThroughClass)),
163
+ style: normalizeStyle(layerActive.value ? { zIndex: unref(layerZIndex) } : void 0),
164
+ inert: unref(inertAttr)
165
+ }, [createVNode(Transition, {
166
+ "enter-active-class": "transition-opacity duration-[var(--gr-duration-base)] ease-[var(--gr-ease-out)]",
167
+ "enter-from-class": "opacity-0",
168
+ "leave-active-class": "transition-opacity duration-[var(--gr-duration-fast)] ease-[var(--gr-ease-in)]",
169
+ "leave-to-class": "opacity-0"
170
+ }, {
171
+ default: withCtx(() => [layerActive.value && unref(isVisible) ? (openBlock(), createElementBlock("div", mergeProps({
172
+ key: 0,
173
+ "data-gr-sidebar-backdrop": "",
174
+ class: unref(layerBackdropClass),
175
+ "aria-hidden": "true"
176
+ }, toHandlers(unref(backdrop), true)), null, 16)) : createCommentVNode("", true)]),
177
+ _: 1
178
+ }), createVNode(Transition, {
179
+ "enter-active-class": "transition-transform duration-[var(--gr-duration-base)] ease-[var(--gr-ease-out)]",
180
+ "enter-from-class": unref(layerPanelEnterFrom)[__props.position],
181
+ "leave-active-class": "transition-transform duration-[var(--gr-duration-fast)] ease-[var(--gr-ease-in)]",
182
+ "leave-to-class": unref(layerPanelEnterFrom)[__props.position],
183
+ onAfterLeave: unref(onPanelAfterLeave)
184
+ }, {
185
+ default: withCtx(() => [(__props.overlay ? layerActive.value && unref(isVisible) : true) ? (openBlock(), createBlock(resolveDynamicComponent(rootTag.value), mergeProps({
186
+ key: 0,
187
+ ref_key: "panelEl",
188
+ ref: panelEl
189
+ }, {
190
+ ..._ctx.$attrs,
191
+ ...layerActive.value ? unref(themeAttrs) : {}
192
+ }, {
193
+ "data-gr-sidebar": "",
194
+ "data-collapsed": effectiveCollapsed.value ? "true" : void 0,
195
+ "data-position": __props.position,
196
+ "aria-label": __props.ariaLabel,
197
+ class: [rootClass.value, layerActive.value ? unref(layerPanelPositions)[__props.position] : ""],
198
+ style: asideStyle.value
199
+ }), {
200
+ default: withCtx(() => [showHeader.value ? (openBlock(), createElementBlock("div", {
201
+ key: 0,
202
+ "data-gr-sidebar-header": "",
203
+ class: normalizeClass([unref(headerBase), collapsedState.value ? "justify-center" : "justify-between"])
204
+ }, [!collapsedState.value && (hasTitle.value || hasSubtitle.value || _ctx.$slots.title || _ctx.$slots.subtitle) ? (openBlock(), createElementBlock("div", _hoisted_2$2, [_ctx.$slots.subtitle || hasSubtitle.value ? (openBlock(), createElementBlock("div", {
205
+ key: 0,
206
+ "data-gr-sidebar-subtitle": "",
207
+ class: normalizeClass(unref(subtitleClass))
208
+ }, [renderSlot(_ctx.$slots, "subtitle", {}, () => [createTextVNode(toDisplayString(__props.subtitle), 1)])], 2)) : createCommentVNode("", true), _ctx.$slots.title || hasTitle.value ? (openBlock(), createElementBlock("div", {
209
+ key: 1,
210
+ "data-gr-sidebar-title": "",
211
+ class: normalizeClass(unref(titleClass))
212
+ }, [renderSlot(_ctx.$slots, "title", {}, () => [createTextVNode(toDisplayString(__props.title), 1)])], 2)) : createCommentVNode("", true)])) : createCommentVNode("", true), __props.showToggleButton ? (openBlock(), createBlock(GrButton_default, {
213
+ key: 1,
214
+ "data-gr-sidebar-toggle": "",
215
+ variant: "ghost",
216
+ size: "sm",
217
+ square: "",
218
+ "aria-label": resolvedToggleLabel.value,
219
+ "aria-expanded": __props.overlay ? void 0 : collapsedState.value ? "false" : "true",
220
+ "data-direction": __props.overlay ? void 0 : collapseDirection.value,
221
+ onClick: onHeaderButton
222
+ }, {
223
+ default: withCtx(() => [createVNode(GrIcon_default, { size: 16 }, {
224
+ default: withCtx(() => [(openBlock(), createBlock(resolveDynamicComponent(__props.overlay ? unref(x_default) : collapseIcon.value)))]),
225
+ _: 1
226
+ })]),
227
+ _: 1
228
+ }, 8, [
229
+ "aria-label",
230
+ "aria-expanded",
231
+ "data-direction"
232
+ ])) : createCommentVNode("", true)], 2)) : createCommentVNode("", true), createElementVNode("div", {
233
+ "data-gr-sidebar-content": "",
234
+ tabindex: "0",
235
+ class: normalizeClass([unref(contentBase), effectiveCollapsed.value ? "p-2" : "p-3"])
236
+ }, [renderSlot(_ctx.$slots, "default")], 2)]),
237
+ _: 3
238
+ }, 16, [
239
+ "data-collapsed",
240
+ "data-position",
241
+ "aria-label",
242
+ "class",
243
+ "style"
244
+ ])) : createCommentVNode("", true)]),
245
+ _: 3
246
+ }, 8, [
247
+ "enter-from-class",
248
+ "leave-to-class",
249
+ "onAfterLeave"
250
+ ])], 14, _hoisted_1$2)], 8, ["to", "disabled"]);
251
+ };
252
+ }
253
+ });
254
+ //#endregion
255
+ //#region src/components/GrSidebar/GrSidebarItem.vue?vue&type=script&setup=true&lang.ts
256
+ var _hoisted_1$1 = { class: "flex h-5 w-5 shrink-0 items-center justify-center" };
257
+ var _hoisted_2$1 = [
258
+ "aria-current",
259
+ "aria-disabled",
260
+ "aria-expanded",
261
+ "aria-controls"
262
+ ];
263
+ var _hoisted_3 = { class: "flex h-5 w-5 shrink-0 items-center justify-center" };
264
+ var _hoisted_4 = { class: "min-w-0 flex-1 truncate text-left" };
265
+ var _hoisted_5 = ["id"];
266
+ var _hoisted_6 = { class: "flex h-5 w-5 shrink-0 items-center justify-center" };
267
+ var _hoisted_7 = { class: "min-w-0 flex-1 truncate text-left" };
268
+ //#endregion
269
+ //#region src/components/GrSidebar/GrSidebarItem.vue
270
+ var GrSidebarItem_default = /* @__PURE__ */ defineComponent({
271
+ __name: "GrSidebarItem",
272
+ props: {
273
+ label: {},
274
+ icon: { default: void 0 },
275
+ href: { default: void 0 },
276
+ as: { default: void 0 },
277
+ active: {
278
+ type: Boolean,
279
+ default: false
280
+ },
281
+ disabled: {
282
+ type: Boolean,
283
+ default: false
284
+ },
285
+ badge: { default: void 0 },
286
+ expanded: {
287
+ type: Boolean,
288
+ default: void 0
289
+ },
290
+ defaultExpanded: {
291
+ type: Boolean,
292
+ default: false
293
+ }
294
+ },
295
+ emits: ["update:expanded"],
296
+ setup(__props, { emit: __emit }) {
297
+ /**
298
+ * GrSidebarItem — пункт навигации боковой панели `GrSidebar`.
299
+ *
300
+ * Контракт:
301
+ * - развёрнутая панель — `[иконка] метка [бейдж]`;
302
+ * - свёрнутая панель — только иконка; если иконки нет, показывается ПЕРВАЯ БУКВА
303
+ * метки (uppercase). Имя пункту даёт `aria-label`, а подпись показывает
304
+ * `GrTooltip`: нативный `title` появлялся только по наведению, то есть с
305
+ * клавиатуры свёрнутую панель было не прочесть.
306
+ *
307
+ * Корневой тег: `as` → `<a href>` → `<button>` (в этом порядке).
308
+ */
309
+ const props = __props;
310
+ const emit = __emit;
311
+ const slots = useSlots();
312
+ const sidebar = inject(GR_SIDEBAR_KEY, null);
313
+ const collapsed = computed(() => sidebar?.collapsed.value ?? false);
314
+ /**
315
+ * Подсказка уходит **от** панели: у левой — вправо, у правой — влево. Иначе
316
+ * она легла бы поверх самой панели и закрыла соседние пункты.
317
+ */
318
+ const tooltipPlacement = computed(() => sidebar?.position.value === "right" ? "left" : "right");
319
+ const level = inject(GR_SIDEBAR_LEVEL_KEY, 0);
320
+ provide(GR_SIDEBAR_LEVEL_KEY, level + 1);
321
+ const hasChildren = computed(() => Boolean(slots.default));
322
+ const childrenId = useId();
323
+ /**
324
+ * Раскрытие живёт локально, пока проп не задан: панель навигации чаще всего
325
+ * управляет собой сама, и требовать `v-model` на каждую ветку значило бы
326
+ * заставить потребителя держать дерево состояний ради поведения по умолчанию.
327
+ */
328
+ const uncontrolledExpanded = ref(props.defaultExpanded);
329
+ const isExpanded = computed(() => props.expanded ?? uncontrolledExpanded.value);
330
+ function toggleChildren() {
331
+ const next = !isExpanded.value;
332
+ uncontrolledExpanded.value = next;
333
+ emit("update:expanded", next);
334
+ }
335
+ /**
336
+ * Нажатие на ветку в свёрнутом рейле сперва возвращает панели ширину: показать
337
+ * подпункты в шестидесяти четырёх пикселях негде, и без этого кнопка ничего бы
338
+ * не делала.
339
+ */
340
+ function onCollapsedActivate() {
341
+ if (!hasChildren.value) return;
342
+ sidebar?.expand();
343
+ if (!isExpanded.value) toggleChildren();
344
+ }
345
+ if (process.env.NODE_ENV !== "production") watch(() => hasChildren.value && (props.href !== void 0 || props.as !== void 0), (conflict) => {
346
+ if (conflict) console.warn(`[GrSidebarItem] У пункта "${props.label}" есть подпункты, поэтому он стал переключателем ветки: \`href\` и \`as\` не используются. Ссылкой сделайте отдельный подпункт.`);
347
+ }, { immediate: true });
348
+ const isStringIcon = computed(() => typeof props.icon === "string");
349
+ const iconComponent = computed(() => props.icon && typeof props.icon !== "string" ? markRaw(props.icon) : null);
350
+ const firstLetter = computed(() => props.label.trim().charAt(0).toUpperCase() || "•");
351
+ const rootTag = computed(() => {
352
+ if (props.disabled) return "span";
353
+ if (hasChildren.value) return "button";
354
+ if (props.as) return typeof props.as === "string" ? props.as : markRaw(props.as);
355
+ return props.href ? "a" : "button";
356
+ });
357
+ /**
358
+ * Компонент-ссылка (`Link` от Inertia, `RouterLink`) рендерит `<a>` сам, и без
359
+ * `href` он ведёт в никуда. Строковый тег, кроме `a`, атрибут не понимает —
360
+ * там он и гасится.
361
+ */
362
+ const rootHref = computed(() => typeof rootTag.value === "string" && rootTag.value !== "a" ? void 0 : props.href);
363
+ const rootClass = computed(() => grSidebarItemClass({
364
+ collapsed: collapsed.value,
365
+ disabled: props.disabled,
366
+ active: props.active
367
+ }));
368
+ /**
369
+ * Отступ уровня — в свёрнутом рейле его нет: там строка шириной с иконку, и
370
+ * сдвигать её некуда.
371
+ */
372
+ const rootStyle = computed(() => {
373
+ const indent = collapsed.value ? void 0 : itemNestIndent(level);
374
+ return indent ? { paddingInlineStart: indent } : void 0;
375
+ });
376
+ /**
377
+ * Поддерево исчезает из DOM, а не прячется: невидимая ветка ловила бы `Tab` и
378
+ * читалась бы диктором вопреки `aria-expanded="false"`.
379
+ *
380
+ * Свёрнутость здесь не проверяется — её перехватывает `v-if="collapsed"` раньше:
381
+ * в рейле пункт рисуется иконкой с подсказкой, и до ветки дело не доходит.
382
+ */
383
+ const showChildren = computed(() => hasChildren.value && isExpanded.value);
384
+ return (_ctx, _cache) => {
385
+ return collapsed.value ? (openBlock(), createBlock(GrTooltip_default, {
386
+ key: 0,
387
+ text: __props.label,
388
+ placement: tooltipPlacement.value,
389
+ block: "",
390
+ "describe-trigger": false,
391
+ "data-gr-sidebar-item-tooltip": ""
392
+ }, {
393
+ default: withCtx(() => [(openBlock(), createBlock(resolveDynamicComponent(rootTag.value), {
394
+ "data-gr-sidebar-item": "",
395
+ type: rootTag.value === "button" ? "button" : void 0,
396
+ href: rootHref.value,
397
+ "aria-current": __props.active ? "page" : void 0,
398
+ "aria-disabled": __props.disabled ? "true" : void 0,
399
+ "aria-label": __props.label,
400
+ "aria-expanded": hasChildren.value ? "false" : void 0,
401
+ class: normalizeClass(rootClass.value),
402
+ onClick: onCollapsedActivate
403
+ }, {
404
+ default: withCtx(() => [createElementVNode("span", _hoisted_1$1, [iconComponent.value ? (openBlock(), createBlock(resolveDynamicComponent(iconComponent.value), {
405
+ key: 0,
406
+ class: "h-5 w-5",
407
+ "aria-hidden": "true"
408
+ })) : isStringIcon.value ? (openBlock(), createElementBlock("span", {
409
+ key: 1,
410
+ class: normalizeClass([__props.icon, "block h-5 w-5"]),
411
+ "aria-hidden": "true"
412
+ }, null, 2)) : (openBlock(), createElementBlock("span", {
413
+ key: 2,
414
+ class: normalizeClass(unref(itemLetterClass)),
415
+ "aria-hidden": "true"
416
+ }, toDisplayString(firstLetter.value), 3))])]),
417
+ _: 1
418
+ }, 8, [
419
+ "type",
420
+ "href",
421
+ "aria-current",
422
+ "aria-disabled",
423
+ "aria-label",
424
+ "aria-expanded",
425
+ "class"
426
+ ]))]),
427
+ _: 1
428
+ }, 8, ["text", "placement"])) : hasChildren.value ? (openBlock(), createElementBlock("div", {
429
+ key: 1,
430
+ "data-gr-sidebar-item-nest": "",
431
+ class: normalizeClass(unref(itemNestClass))
432
+ }, [createElementVNode("button", {
433
+ "data-gr-sidebar-item": "",
434
+ type: "button",
435
+ "aria-current": __props.active ? "page" : void 0,
436
+ "aria-disabled": __props.disabled ? "true" : void 0,
437
+ "aria-expanded": isExpanded.value ? "true" : "false",
438
+ "aria-controls": showChildren.value ? unref(childrenId) : void 0,
439
+ class: normalizeClass(rootClass.value),
440
+ style: normalizeStyle(rootStyle.value),
441
+ onClick: toggleChildren
442
+ }, [
443
+ createElementVNode("span", _hoisted_3, [iconComponent.value ? (openBlock(), createBlock(resolveDynamicComponent(iconComponent.value), {
444
+ key: 0,
445
+ class: "h-5 w-5",
446
+ "aria-hidden": "true"
447
+ })) : isStringIcon.value ? (openBlock(), createElementBlock("span", {
448
+ key: 1,
449
+ class: normalizeClass([__props.icon, "block h-5 w-5"]),
450
+ "aria-hidden": "true"
451
+ }, null, 2)) : createCommentVNode("", true)]),
452
+ createElementVNode("span", _hoisted_4, toDisplayString(__props.label), 1),
453
+ __props.badge != null ? (openBlock(), createElementBlock("span", {
454
+ key: 0,
455
+ class: normalizeClass(unref(itemBadgeClass))
456
+ }, toDisplayString(__props.badge), 3)) : createCommentVNode("", true),
457
+ createVNode(unref(chevron_right_default), {
458
+ "aria-hidden": "true",
459
+ class: normalizeClass([unref(itemChevronClass), isExpanded.value ? unref(itemChevronExpandedClass) : ""])
460
+ }, null, 8, ["class"])
461
+ ], 14, _hoisted_2$1), showChildren.value ? (openBlock(), createElementBlock("div", {
462
+ key: 0,
463
+ id: unref(childrenId),
464
+ "data-gr-sidebar-item-children": "",
465
+ class: normalizeClass(unref(itemChildrenClass))
466
+ }, [renderSlot(_ctx.$slots, "default")], 10, _hoisted_5)) : createCommentVNode("", true)], 2)) : (openBlock(), createBlock(resolveDynamicComponent(rootTag.value), {
467
+ key: 2,
468
+ "data-gr-sidebar-item": "",
469
+ type: rootTag.value === "button" ? "button" : void 0,
470
+ href: rootHref.value,
471
+ "aria-current": __props.active ? "page" : void 0,
472
+ "aria-disabled": __props.disabled ? "true" : void 0,
473
+ class: normalizeClass(rootClass.value),
474
+ style: normalizeStyle(rootStyle.value)
475
+ }, {
476
+ default: withCtx(() => [
477
+ createElementVNode("span", _hoisted_6, [iconComponent.value ? (openBlock(), createBlock(resolveDynamicComponent(iconComponent.value), {
478
+ key: 0,
479
+ class: "h-5 w-5",
480
+ "aria-hidden": "true"
481
+ })) : isStringIcon.value ? (openBlock(), createElementBlock("span", {
482
+ key: 1,
483
+ class: normalizeClass([__props.icon, "block h-5 w-5"]),
484
+ "aria-hidden": "true"
485
+ }, null, 2)) : createCommentVNode("", true)]),
486
+ createElementVNode("span", _hoisted_7, toDisplayString(__props.label), 1),
487
+ __props.badge != null ? (openBlock(), createElementBlock("span", {
488
+ key: 0,
489
+ class: normalizeClass(unref(itemBadgeClass))
490
+ }, toDisplayString(__props.badge), 3)) : createCommentVNode("", true)
491
+ ]),
492
+ _: 1
493
+ }, 8, [
494
+ "type",
495
+ "href",
496
+ "aria-current",
497
+ "aria-disabled",
498
+ "class",
499
+ "style"
500
+ ]));
501
+ };
502
+ }
503
+ });
504
+ //#endregion
505
+ //#region src/components/GrSidebar/GrSidebarGroup.vue?vue&type=script&setup=true&lang.ts
506
+ var _hoisted_1 = ["aria-labelledby"];
507
+ var _hoisted_2 = ["id"];
508
+ //#endregion
509
+ //#region src/components/GrSidebar/GrSidebarGroup.vue
510
+ var GrSidebarGroup_default = /* @__PURE__ */ defineComponent({
511
+ __name: "GrSidebarGroup",
512
+ props: { label: { default: void 0 } },
513
+ setup(__props) {
514
+ /**
515
+ * GrSidebarGroup — секция пунктов `GrSidebar` с заголовком.
516
+ *
517
+ * В свёрнутой панели заголовку негде поместиться: он скрывается, а секции
518
+ * разделяет линия — без неё иконки соседних секций сливаются в один столбец.
519
+ */
520
+ const props = __props;
521
+ const slots = useSlots();
522
+ const sidebar = inject(GR_SIDEBAR_KEY, null);
523
+ const collapsed = computed(() => sidebar?.collapsed.value ?? false);
524
+ const labelId = useId();
525
+ const hasLabel = computed(() => Boolean(props.label || slots.label));
526
+ const showLabel = computed(() => hasLabel.value && !collapsed.value);
527
+ return (_ctx, _cache) => {
528
+ return openBlock(), createElementBlock("div", {
529
+ "data-gr-sidebar-group": "",
530
+ role: "group",
531
+ "aria-labelledby": showLabel.value ? unref(labelId) : void 0,
532
+ class: normalizeClass(collapsed.value ? unref(groupCollapsedClass) : void 0)
533
+ }, [showLabel.value ? (openBlock(), createElementBlock("div", {
534
+ key: 0,
535
+ id: unref(labelId),
536
+ "data-gr-sidebar-group-label": "",
537
+ class: normalizeClass(unref(groupLabelClass))
538
+ }, [renderSlot(_ctx.$slots, "label", {}, () => [createTextVNode(toDisplayString(__props.label), 1)])], 10, _hoisted_2)) : createCommentVNode("", true), renderSlot(_ctx.$slots, "default")], 10, _hoisted_1);
539
+ };
540
+ }
541
+ });
542
+ //#endregion
543
+ export { GrSidebarItem_default as n, GrSidebar_default as r, GrSidebarGroup_default as t };