@feugene/granularity 0.18.0 → 0.20.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 (1070) hide show
  1. package/README.md +8 -0
  2. package/dist/chunks/chevron-left-D8AUBAM7.js +23 -0
  3. package/dist/chunks/chevron-left-D8AUBAM7.js.map +1 -0
  4. package/dist/chunks/chevron-right-C6Z01h0X.js +23 -0
  5. package/dist/chunks/chevron-right-C6Z01h0X.js.map +1 -0
  6. package/dist/chunks/config-9PYRZlKE.js +84 -0
  7. package/dist/chunks/config-9PYRZlKE.js.map +1 -0
  8. package/dist/chunks/config-B4w5gBD0.js +89 -0
  9. package/dist/chunks/config-B4w5gBD0.js.map +1 -0
  10. package/dist/chunks/config-BE6n20np.js.map +1 -0
  11. package/dist/chunks/config-BEVBsvni.js +197 -0
  12. package/dist/chunks/config-BEVBsvni.js.map +1 -0
  13. package/dist/chunks/config-BJ7Bv_G2.js +148 -0
  14. package/dist/chunks/config-BJ7Bv_G2.js.map +1 -0
  15. package/dist/chunks/config-BTCOJO5z.js +37 -0
  16. package/dist/chunks/config-BTCOJO5z.js.map +1 -0
  17. package/dist/chunks/config-Be9k9bOf.js +97 -0
  18. package/dist/chunks/config-Be9k9bOf.js.map +1 -0
  19. package/dist/chunks/config-BfsBepkH2.js +83 -0
  20. package/dist/chunks/config-BfsBepkH2.js.map +1 -0
  21. package/dist/chunks/config-Bsh948nP.js +85 -0
  22. package/dist/chunks/config-Bsh948nP.js.map +1 -0
  23. package/dist/chunks/config-CDat1wXf.js +11 -0
  24. package/dist/chunks/config-CDat1wXf.js.map +1 -0
  25. package/dist/chunks/config-COpuWGr_2.js.map +1 -0
  26. package/dist/chunks/config-DAX8Deh12.js +68 -0
  27. package/dist/chunks/config-DAX8Deh12.js.map +1 -0
  28. package/dist/chunks/config-DCFvmHEv.js.map +1 -0
  29. package/dist/chunks/config-DKdlqXiY.js.map +1 -1
  30. package/dist/chunks/config-DWN4x6_e.js +159 -0
  31. package/dist/chunks/config-DWN4x6_e.js.map +1 -0
  32. package/dist/chunks/config-Dgj1Q6JY.js +26 -0
  33. package/dist/chunks/config-Dgj1Q6JY.js.map +1 -0
  34. package/dist/chunks/config-Dguto_6o.js +108 -0
  35. package/dist/chunks/config-Dguto_6o.js.map +1 -0
  36. package/dist/chunks/config-WTNhdh6T.js.map +1 -0
  37. package/dist/chunks/config-eXB87DOi2.js.map +1 -0
  38. package/dist/chunks/config-vSji8w90.js +85 -0
  39. package/dist/chunks/config-vSji8w90.js.map +1 -0
  40. package/dist/chunks/context-CTbuwcYs.js +133 -0
  41. package/dist/chunks/context-CTbuwcYs.js.map +1 -0
  42. package/dist/chunks/generated-BRkbhyxk.js +3270 -0
  43. package/dist/chunks/generated-BRkbhyxk.js.map +1 -0
  44. package/dist/chunks/grRadioStyles-BTjGNhtU.js +96 -0
  45. package/dist/chunks/grRadioStyles-BTjGNhtU.js.map +1 -0
  46. package/dist/chunks/granular-provider-CZYm70Pm.js +195 -0
  47. package/dist/chunks/granular-provider-CZYm70Pm.js.map +1 -0
  48. package/dist/chunks/grip-vertical-lRha2S7q.js +16 -0
  49. package/dist/chunks/grip-vertical-lRha2S7q.js.map +1 -0
  50. package/dist/chunks/icon-Dag2tIMs.js +21 -0
  51. package/dist/chunks/icon-Dag2tIMs.js.map +1 -0
  52. package/dist/chunks/portalRoot-CVhCgdG6.js +44 -0
  53. package/dist/chunks/portalRoot-CVhCgdG6.js.map +1 -0
  54. package/dist/chunks/useModalOverlay-Cv5hF63W.js +212 -0
  55. package/dist/chunks/useModalOverlay-Cv5hF63W.js.map +1 -0
  56. package/dist/chunks/usePortalTarget-C0p-mhaM.js +77 -0
  57. package/dist/chunks/usePortalTarget-C0p-mhaM.js.map +1 -0
  58. package/dist/chunks/validation-DauXRIkL.js +178 -0
  59. package/dist/chunks/validation-DauXRIkL.js.map +1 -0
  60. package/dist/components/GrAlert/chunks/GrAlert-B21QGele.js +258 -0
  61. package/dist/components/GrAlert/chunks/GrAlert-B21QGele.js.map +1 -0
  62. package/dist/components/GrAlert/index.js +2 -2
  63. package/dist/components/GrAutocomplete/chunks/GrAutocomplete-DsevPtiS.js +860 -0
  64. package/dist/components/GrAutocomplete/chunks/GrAutocomplete-DsevPtiS.js.map +1 -0
  65. package/dist/components/GrAutocomplete/index.js +1 -1
  66. package/dist/components/GrAutocomplete/styles.css +1 -1
  67. package/dist/components/GrAvatar/chunks/GrAvatar-BbdKRX8i.js +222 -0
  68. package/dist/components/GrAvatar/chunks/GrAvatar-BbdKRX8i.js.map +1 -0
  69. package/dist/components/GrAvatar/index.js +3 -3
  70. package/dist/components/GrBadge/chunks/GrBadge-u2ZdS7CN.js +40 -0
  71. package/dist/components/GrBadge/chunks/GrBadge-u2ZdS7CN.js.map +1 -0
  72. package/dist/components/GrBadge/index.js +1 -1
  73. package/dist/components/GrBadgeWrap/chunks/GrBadgeWrap-DDoFQscR.js +97 -0
  74. package/dist/components/GrBadgeWrap/chunks/GrBadgeWrap-DDoFQscR.js.map +1 -0
  75. package/dist/components/GrBadgeWrap/index.js +3 -3
  76. package/dist/components/GrBottomNav/chunks/GrBottomNav-JUu4ylYv.js +117 -0
  77. package/dist/components/GrBottomNav/chunks/GrBottomNav-JUu4ylYv.js.map +1 -0
  78. package/dist/components/GrBottomNav/index.js +3 -3
  79. package/dist/components/GrBreadcrumbs/chunks/GrBreadcrumbs-CQ44iU2o.js +267 -0
  80. package/dist/components/GrBreadcrumbs/chunks/GrBreadcrumbs-CQ44iU2o.js.map +1 -0
  81. package/dist/components/GrBreadcrumbs/index.js +1 -1
  82. package/dist/components/GrButton/chunks/GrButton-Bw2AH4uX.js +153 -0
  83. package/dist/components/GrButton/chunks/GrButton-Bw2AH4uX.js.map +1 -0
  84. package/dist/components/GrButton/index.js +2 -3
  85. package/dist/components/GrCard/chunks/GrCard-DfIZOP5N.js +89 -0
  86. package/dist/components/GrCard/chunks/GrCard-DfIZOP5N.js.map +1 -0
  87. package/dist/components/GrCard/index.js +1 -1
  88. package/dist/components/GrCheckbox/chunks/GrCheckbox-CEcHIsXM.js +262 -0
  89. package/dist/components/GrCheckbox/chunks/GrCheckbox-CEcHIsXM.js.map +1 -0
  90. package/dist/components/GrCheckbox/index.js +2 -2
  91. package/dist/components/GrCheckboxGroup/chunks/GrCheckboxGroup-BOwrVcFr.js +140 -0
  92. package/dist/components/GrCheckboxGroup/chunks/GrCheckboxGroup-BOwrVcFr.js.map +1 -0
  93. package/dist/components/GrCheckboxGroup/index.js +1 -1
  94. package/dist/components/GrCollapse/chunks/GrCollapse-KFcrji1L.js +294 -0
  95. package/dist/components/GrCollapse/chunks/GrCollapse-KFcrji1L.js.map +1 -0
  96. package/dist/components/GrCollapse/index.js +2 -2
  97. package/dist/components/GrColorPicker/chunks/GrColorPicker-qQdoEPHF.js +584 -0
  98. package/dist/components/GrColorPicker/chunks/GrColorPicker-qQdoEPHF.js.map +1 -0
  99. package/dist/components/GrColorPicker/index.js +2 -2
  100. package/dist/components/GrCommandPalette/chunks/GrCommandPalette-BFcMf4Pn.js +591 -0
  101. package/dist/components/GrCommandPalette/chunks/GrCommandPalette-BFcMf4Pn.js.map +1 -0
  102. package/dist/components/GrCommandPalette/index.js +3 -3
  103. package/dist/components/GrCommandPalette/styles.css +1 -1
  104. package/dist/components/GrConfigProvider/chunks/GrConfigProvider-UP-EaoAf.js +144 -0
  105. package/dist/components/GrConfigProvider/chunks/GrConfigProvider-UP-EaoAf.js.map +1 -0
  106. package/dist/components/GrConfigProvider/index.js +3 -3
  107. package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-rRtMScJX.js +200 -0
  108. package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-rRtMScJX.js.map +1 -0
  109. package/dist/components/GrConfirmDialog/index.js +1 -1
  110. package/dist/components/GrDataTable/chunks/GrDataTable-CNvZg2HZ.js +1055 -0
  111. package/dist/components/GrDataTable/chunks/GrDataTable-CNvZg2HZ.js.map +1 -0
  112. package/dist/components/GrDataTable/index.js +3 -3
  113. package/dist/components/GrDialog/chunks/GrDialog-D0U5iRqV.js +255 -0
  114. package/dist/components/GrDialog/chunks/GrDialog-D0U5iRqV.js.map +1 -0
  115. package/dist/components/GrDialog/index.js +2 -3
  116. package/dist/components/GrDialogService/chunks/GrDialogService-CrwA4aJq.js +656 -0
  117. package/dist/components/GrDialogService/chunks/GrDialogService-CrwA4aJq.js.map +1 -0
  118. package/dist/components/GrDialogService/index.js +2 -2
  119. package/dist/components/GrDivider/chunks/GrDivider-CAhm9jbE.js +109 -0
  120. package/dist/components/GrDivider/chunks/GrDivider-CAhm9jbE.js.map +1 -0
  121. package/dist/components/GrDivider/index.js +1 -1
  122. package/dist/components/GrDrawer/chunks/GrDrawer-C3zAg2tG.js +251 -0
  123. package/dist/components/GrDrawer/chunks/GrDrawer-C3zAg2tG.js.map +1 -0
  124. package/dist/components/GrDrawer/index.js +1 -1
  125. package/dist/components/GrDropdown/chunks/GrDropdown-BSfFOcDx.js +300 -0
  126. package/dist/components/GrDropdown/chunks/GrDropdown-BSfFOcDx.js.map +1 -0
  127. package/dist/components/GrDropdown/index.js +1 -1
  128. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-LOaFSCyd.js +421 -0
  129. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-LOaFSCyd.js.map +1 -0
  130. package/dist/components/GrDropdownMenu/index.js +2 -2
  131. package/dist/components/GrEmptyState/chunks/GrEmptyState-CS9do8eM.js +86 -0
  132. package/dist/components/GrEmptyState/chunks/GrEmptyState-CS9do8eM.js.map +1 -0
  133. package/dist/components/GrEmptyState/index.js +3 -3
  134. package/dist/components/GrFileUpload/chunks/GrFileUpload-D3-vC-ap.js +1080 -0
  135. package/dist/components/GrFileUpload/chunks/GrFileUpload-D3-vC-ap.js.map +1 -0
  136. package/dist/components/GrFileUpload/index.js +3 -3
  137. package/dist/components/GrForm/chunks/GrForm-DdJw23Pz.js +326 -0
  138. package/dist/components/GrForm/chunks/GrForm-DdJw23Pz.js.map +1 -0
  139. package/dist/components/GrForm/index.js +4 -4
  140. package/dist/components/GrFormField/chunks/GrFormField-kqfVY30N.js +190 -0
  141. package/dist/components/GrFormField/chunks/GrFormField-kqfVY30N.js.map +1 -0
  142. package/dist/components/GrFormField/index.js +3 -3
  143. package/dist/components/GrFormFile/chunks/GrFormFile-D722xHn8.js +452 -0
  144. package/dist/components/GrFormFile/chunks/GrFormFile-D722xHn8.js.map +1 -0
  145. package/dist/components/GrFormFile/index.js +1 -1
  146. package/dist/components/GrFormSection/chunks/GrFormSection-CdGWvzXO.js +63 -0
  147. package/dist/components/GrFormSection/chunks/GrFormSection-CdGWvzXO.js.map +1 -0
  148. package/dist/components/GrFormSection/index.js +3 -3
  149. package/dist/components/GrIcon/chunks/GrIcon-bQwtZtYT.js +57 -0
  150. package/dist/components/GrIcon/chunks/GrIcon-bQwtZtYT.js.map +1 -0
  151. package/dist/components/GrIcon/index.js +1 -1
  152. package/dist/components/GrImageViewer/chunks/GrImageViewer-CMO10TS7.js +1128 -0
  153. package/dist/components/GrImageViewer/chunks/GrImageViewer-CMO10TS7.js.map +1 -0
  154. package/dist/components/GrImageViewer/index.js +1 -1
  155. package/dist/components/GrInput/chunks/GrInput-Bb_pxqpT.js +348 -0
  156. package/dist/components/GrInput/chunks/GrInput-Bb_pxqpT.js.map +1 -0
  157. package/dist/components/GrInput/index.js +1 -1
  158. package/dist/components/GrInputTag/chunks/GrInputTag-Dghhg03-.js +512 -0
  159. package/dist/components/GrInputTag/chunks/GrInputTag-Dghhg03-.js.map +1 -0
  160. package/dist/components/GrInputTag/index.js +1 -1
  161. package/dist/components/GrKbd/chunks/GrKbd-BXbhsH0M.js +358 -0
  162. package/dist/components/GrKbd/chunks/GrKbd-BXbhsH0M.js.map +1 -0
  163. package/dist/components/GrKbd/index.js +1 -1
  164. package/dist/components/GrLink/chunks/GrLink-BQb7U4so.js +163 -0
  165. package/dist/components/GrLink/chunks/GrLink-BQb7U4so.js.map +1 -0
  166. package/dist/components/GrLink/index.js +1 -1
  167. package/dist/components/GrList/chunks/GrList-CHibO0xA.js +277 -0
  168. package/dist/components/GrList/chunks/GrList-CHibO0xA.js.map +1 -0
  169. package/dist/components/GrList/index.js +1 -1
  170. package/dist/components/GrLoading/chunks/GrLoading-C3DZSSuh.js +101 -0
  171. package/dist/components/GrLoading/chunks/GrLoading-C3DZSSuh.js.map +1 -0
  172. package/dist/components/GrLoading/index.js +1 -1
  173. package/dist/components/GrModal/chunks/GrModal-CPz7SWD_.js +313 -0
  174. package/dist/components/GrModal/chunks/GrModal-CPz7SWD_.js.map +1 -0
  175. package/dist/components/GrModal/index.js +1 -1
  176. package/dist/components/GrNavbar/chunks/GrNavbar-DWaaoV7n.js +104 -0
  177. package/dist/components/GrNavbar/chunks/GrNavbar-DWaaoV7n.js.map +1 -0
  178. package/dist/components/GrNavbar/index.js +1 -1
  179. package/dist/components/GrNumberInput/chunks/GrNumberInput-BotnzW77.js +659 -0
  180. package/dist/components/GrNumberInput/chunks/GrNumberInput-BotnzW77.js.map +1 -0
  181. package/dist/components/GrNumberInput/index.js +1 -1
  182. package/dist/components/GrPagination/chunks/GrPagination-GtGtSMJG.js +283 -0
  183. package/dist/components/GrPagination/chunks/GrPagination-GtGtSMJG.js.map +1 -0
  184. package/dist/components/GrPagination/index.js +1 -1
  185. package/dist/components/GrPopover/chunks/GrPopover-b70bIlQ9.js +216 -0
  186. package/dist/components/GrPopover/chunks/GrPopover-b70bIlQ9.js.map +1 -0
  187. package/dist/components/GrPopover/index.js +1 -1
  188. package/dist/components/GrProgressBar/chunks/GrProgressBar-hszUOC8f.js +90 -0
  189. package/dist/components/GrProgressBar/chunks/GrProgressBar-hszUOC8f.js.map +1 -0
  190. package/dist/components/GrProgressBar/index.js +1 -1
  191. package/dist/components/GrProgressCircle/chunks/GrProgressCircle-BeUx1g1f.js +202 -0
  192. package/dist/components/GrProgressCircle/chunks/GrProgressCircle-BeUx1g1f.js.map +1 -0
  193. package/dist/components/GrProgressCircle/index.js +2 -2
  194. package/dist/components/GrPromptDialog/chunks/GrPromptDialog-CEI8bf-t.js +348 -0
  195. package/dist/components/GrPromptDialog/chunks/GrPromptDialog-CEI8bf-t.js.map +1 -0
  196. package/dist/components/GrPromptDialog/index.js +1 -1
  197. package/dist/components/GrRadio/chunks/GrRadio-BdhknbO8.js +253 -0
  198. package/dist/components/GrRadio/chunks/GrRadio-BdhknbO8.js.map +1 -0
  199. package/dist/components/GrRadio/index.js +3 -3
  200. package/dist/components/GrRadioGroup/chunks/GrRadioGroup-BVmjKXcv.js +196 -0
  201. package/dist/components/GrRadioGroup/chunks/GrRadioGroup-BVmjKXcv.js.map +1 -0
  202. package/dist/components/GrRadioGroup/index.js +1 -1
  203. package/dist/components/GrRating/chunks/GrRating-BSEtaibx.js +316 -0
  204. package/dist/components/GrRating/chunks/GrRating-BSEtaibx.js.map +1 -0
  205. package/dist/components/GrRating/index.js +1 -1
  206. package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-CZONq8uT.js +777 -0
  207. package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-CZONq8uT.js.map +1 -0
  208. package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-CgfAwlg3.js +224 -0
  209. package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-CgfAwlg3.js.map +1 -0
  210. package/dist/components/GrResponseErrorBanner/index.js +3 -3
  211. package/dist/components/GrSegmented/chunks/GrSegmented-DP9WMAbm.js +388 -0
  212. package/dist/components/GrSegmented/chunks/GrSegmented-DP9WMAbm.js.map +1 -0
  213. package/dist/components/GrSegmented/index.js +3 -3
  214. package/dist/components/GrSelect/chunks/GrSelect-CaGuyvtb.js +1384 -0
  215. package/dist/components/GrSelect/chunks/GrSelect-CaGuyvtb.js.map +1 -0
  216. package/dist/components/GrSelect/index.js +1 -1
  217. package/dist/components/GrSelect/styles.css +1 -1
  218. package/dist/components/GrSidebar/chunks/GrSidebar-DG_t4aPE.js +258 -0
  219. package/dist/components/GrSidebar/chunks/GrSidebar-DG_t4aPE.js.map +1 -0
  220. package/dist/components/GrSidebar/index.js +3 -3
  221. package/dist/components/GrSkeleton/chunks/GrSkeleton-CgfXxPQ2.js +78 -0
  222. package/dist/components/GrSkeleton/chunks/GrSkeleton-CgfXxPQ2.js.map +1 -0
  223. package/dist/components/GrSkeleton/index.js +2 -2
  224. package/dist/components/GrSlider/chunks/GrSlider-s99yAyz6.js +379 -0
  225. package/dist/components/GrSlider/chunks/GrSlider-s99yAyz6.js.map +1 -0
  226. package/dist/components/GrSlider/index.js +1 -1
  227. package/dist/components/GrSortableList/chunks/GrSortableList-DJFPdUVv.js +277 -0
  228. package/dist/components/GrSortableList/chunks/GrSortableList-DJFPdUVv.js.map +1 -0
  229. package/dist/components/GrSortableList/index.js +2 -2
  230. package/dist/components/GrSplitter/chunks/GrSplitter-B9_JrT7q.js +259 -0
  231. package/dist/components/GrSplitter/chunks/GrSplitter-B9_JrT7q.js.map +1 -0
  232. package/dist/components/GrSplitter/index.js +3 -3
  233. package/dist/components/GrStatistic/chunks/GrStatistic-C3VpykHo.js +366 -0
  234. package/dist/components/GrStatistic/chunks/GrStatistic-C3VpykHo.js.map +1 -0
  235. package/dist/components/GrStatistic/index.js +2 -2
  236. package/dist/components/GrSwitch/chunks/GrSwitch-x_vQQ6ao.js +183 -0
  237. package/dist/components/GrSwitch/chunks/GrSwitch-x_vQQ6ao.js.map +1 -0
  238. package/dist/components/GrSwitch/index.js +1 -1
  239. package/dist/components/GrTabPanels/chunks/GrTabPanels-AJt1w1XC.js +81 -0
  240. package/dist/components/GrTabPanels/chunks/GrTabPanels-AJt1w1XC.js.map +1 -0
  241. package/dist/components/GrTabPanels/index.js +3 -3
  242. package/dist/components/GrTable/chunks/GrTable-f3qCWa99.js +169 -0
  243. package/dist/components/GrTable/chunks/GrTable-f3qCWa99.js.map +1 -0
  244. package/dist/components/GrTable/index.js +2 -2
  245. package/dist/components/GrTabs/chunks/GrTabs-CBHZkOFY.js +262 -0
  246. package/dist/components/GrTabs/chunks/GrTabs-CBHZkOFY.js.map +1 -0
  247. package/dist/components/GrTabs/index.js +3 -3
  248. package/dist/components/GrTextarea/chunks/GrTextarea-CNnkcIG1.js +241 -0
  249. package/dist/components/GrTextarea/chunks/GrTextarea-CNnkcIG1.js.map +1 -0
  250. package/dist/components/GrTextarea/index.js +1 -1
  251. package/dist/components/GrTimeline/chunks/GrTimeline-DlTraRn5.js +274 -0
  252. package/dist/components/GrTimeline/chunks/GrTimeline-DlTraRn5.js.map +1 -0
  253. package/dist/components/GrTimeline/index.js +3 -3
  254. package/dist/components/GrToaster/chunks/GrToaster-Db2NgrXu.js +373 -0
  255. package/dist/components/GrToaster/chunks/GrToaster-Db2NgrXu.js.map +1 -0
  256. package/dist/components/GrToaster/index.js +1 -1
  257. package/dist/components/GrTooltip/chunks/GrTooltip-B6AwE_UX.js +185 -0
  258. package/dist/components/GrTooltip/chunks/GrTooltip-B6AwE_UX.js.map +1 -0
  259. package/dist/components/GrTooltip/index.js +1 -1
  260. package/dist/components/GrTree/chunks/GrTree-BvOeQ3xJ.js +1376 -0
  261. package/dist/components/GrTree/chunks/GrTree-BvOeQ3xJ.js.map +1 -0
  262. package/dist/components/GrTree/index.js +2 -2
  263. package/dist/components/GrTree/styles.css +1 -1
  264. package/dist/components/GrTreeSelect/chunks/GrTreeSelect-_LjTRR7X.js +633 -0
  265. package/dist/components/GrTreeSelect/chunks/GrTreeSelect-_LjTRR7X.js.map +1 -0
  266. package/dist/components/GrTreeSelect/index.js +2 -2
  267. package/dist/composables/useAnnouncer.js +1 -1
  268. package/dist/composables/useGrComponentConfig.js +1 -1
  269. package/dist/composables/usePortalTarget.js +1 -1
  270. package/dist/directives/loading.js +2 -2
  271. package/dist/granular-provider-node.js +1 -1
  272. package/dist/granular-provider.js +1 -1
  273. package/dist/index.js +95 -96
  274. package/dist/styles/themes/dark.css +6 -1
  275. package/dist/testing.js +230 -0
  276. package/dist/testing.js.map +1 -0
  277. package/dist/theme-apply.js +33 -0
  278. package/dist/theme-apply.js.map +1 -0
  279. package/dist/theme.js +501 -0
  280. package/dist/theme.js.map +1 -0
  281. package/dist/tokens.js +1 -3215
  282. package/dist/types/components/GrAlert/index.d.ts +7 -0
  283. package/dist/types/components/GrAvatar/index.d.ts +9 -0
  284. package/dist/types/components/GrBadgeWrap/index.d.ts +7 -0
  285. package/dist/types/components/GrBottomNav/index.d.ts +8 -0
  286. package/dist/types/components/GrBreadcrumbs/grBreadcrumbsStyles.d.ts +89 -0
  287. package/dist/types/components/GrButton/index.d.ts +10 -0
  288. package/dist/types/components/GrCheckbox/index.d.ts +12 -0
  289. package/dist/types/components/GrCollapse/index.d.ts +8 -0
  290. package/dist/types/components/GrColorPicker/index.d.ts +11 -0
  291. package/dist/types/components/GrCommandPalette/GrCommandPalette.vue.d.ts +163 -0
  292. package/dist/types/components/GrCommandPalette/filtering.d.ts +63 -0
  293. package/dist/types/components/GrCommandPalette/index.d.ts +9 -0
  294. package/dist/types/components/GrConfigProvider/index.d.ts +6 -0
  295. package/dist/types/components/GrDataTable/grDataTableStyles.d.ts +67 -0
  296. package/dist/types/components/GrDataTable/index.d.ts +12 -0
  297. package/dist/types/components/GrDialog/index.d.ts +12 -0
  298. package/dist/types/components/GrDialogService/index.d.ts +6 -0
  299. package/dist/types/components/GrDropdownMenu/index.d.ts +21 -0
  300. package/dist/types/components/GrEmptyState/index.d.ts +7 -0
  301. package/dist/types/components/GrFileUpload/index.d.ts +17 -0
  302. package/dist/types/components/GrForm/index.d.ts +10 -0
  303. package/dist/types/components/GrFormField/index.d.ts +8 -0
  304. package/dist/types/components/GrFormSection/index.d.ts +7 -0
  305. package/dist/types/components/GrProgressCircle/index.d.ts +10 -0
  306. package/dist/types/components/GrRadio/index.d.ts +8 -0
  307. package/dist/types/components/GrRating/GrRating.vue.d.ts +178 -0
  308. package/dist/types/components/GrResponseErrorBanner/index.d.ts +15 -0
  309. package/dist/types/components/GrSegmented/index.d.ts +11 -0
  310. package/dist/types/components/GrSelect/GrSelect.vue.d.ts +199 -0
  311. package/dist/types/components/GrSidebar/index.d.ts +9 -0
  312. package/dist/types/components/GrSkeleton/index.d.ts +4 -0
  313. package/dist/types/components/GrSortableList/grSortableListStyles.d.ts +37 -0
  314. package/dist/types/components/GrSplitter/index.d.ts +11 -0
  315. package/dist/types/components/GrStatistic/GrStatistic.vue.d.ts +168 -0
  316. package/dist/types/components/GrStatistic/grStatisticStyles.d.ts +36 -0
  317. package/dist/types/components/GrTabPanels/index.d.ts +7 -0
  318. package/dist/types/components/GrTabs/GrTabs.vue.d.ts +121 -0
  319. package/dist/types/components/GrTabs/index.d.ts +8 -0
  320. package/dist/types/components/GrTimeline/index.d.ts +10 -0
  321. package/dist/types/components/GrTree/grTreeProps.d.ts +119 -0
  322. package/dist/types/components/GrTree/safelist.d.ts +1 -0
  323. package/dist/types/components/GrTreeSelect/GrTreeSelect.vue.d.ts +63 -0
  324. package/dist/types/components/shared/icon.d.ts +13 -0
  325. package/dist/types/testing/announcer.d.ts +10 -0
  326. package/dist/types/testing/context.d.ts +36 -0
  327. package/dist/types/testing/env.d.ts +25 -0
  328. package/dist/types/testing/geometry.d.ts +23 -0
  329. package/dist/types/testing/index.d.ts +13 -0
  330. package/dist/types/testing/keyboard.d.ts +32 -0
  331. package/dist/types/testing/pointer.d.ts +31 -0
  332. package/dist/types/theme/apply.d.ts +27 -0
  333. package/dist/types/theme/color.d.ts +35 -0
  334. package/dist/types/theme/extendTheme.d.ts +63 -0
  335. package/dist/types/theme/index.d.ts +22 -0
  336. package/dist/types/theme/roles.d.ts +16 -0
  337. package/dist/types/theme/tone.d.ts +32 -0
  338. package/dist/types/theme/validate.d.ts +16 -0
  339. package/dist/types/tokens/types.d.ts +62 -0
  340. package/dist/web-types.json +14 -19
  341. package/package.json +122 -104
  342. package/tokens/themes/dark.json +2 -1
  343. package/dist/chunks/chevron-right-BfqMVpbB.js +0 -44
  344. package/dist/chunks/chevron-right-BfqMVpbB.js.map +0 -1
  345. package/dist/chunks/config-06SQjBx0.js +0 -96
  346. package/dist/chunks/config-06SQjBx0.js.map +0 -1
  347. package/dist/chunks/config-B-iNaGdw.js +0 -199
  348. package/dist/chunks/config-B-iNaGdw.js.map +0 -1
  349. package/dist/chunks/config-BE6n20np2.js.map +0 -1
  350. package/dist/chunks/config-BqFjr3tN.js +0 -131
  351. package/dist/chunks/config-BqFjr3tN.js.map +0 -1
  352. package/dist/chunks/config-COpuWGr_.js.map +0 -1
  353. package/dist/chunks/config-D2aNP7Es.js +0 -70
  354. package/dist/chunks/config-D2aNP7Es.js.map +0 -1
  355. package/dist/chunks/config-D3_g2KIn.js +0 -120
  356. package/dist/chunks/config-D3_g2KIn.js.map +0 -1
  357. package/dist/chunks/config-DCFvmHEv2.js.map +0 -1
  358. package/dist/chunks/config-DEvsMTQE.js +0 -150
  359. package/dist/chunks/config-DEvsMTQE.js.map +0 -1
  360. package/dist/chunks/config-DP7eseR1.js +0 -92
  361. package/dist/chunks/config-DP7eseR1.js.map +0 -1
  362. package/dist/chunks/config-DhHbU3zO.js +0 -37
  363. package/dist/chunks/config-DhHbU3zO.js.map +0 -1
  364. package/dist/chunks/config-DpqOnJiz2.js +0 -11
  365. package/dist/chunks/config-DpqOnJiz2.js.map +0 -1
  366. package/dist/chunks/config-DvQIb4kb.js +0 -98
  367. package/dist/chunks/config-DvQIb4kb.js.map +0 -1
  368. package/dist/chunks/config-K0C2tcLB.js +0 -84
  369. package/dist/chunks/config-K0C2tcLB.js.map +0 -1
  370. package/dist/chunks/config-Rw9OyW70.js +0 -87
  371. package/dist/chunks/config-Rw9OyW70.js.map +0 -1
  372. package/dist/chunks/config-WTNhdh6T2.js.map +0 -1
  373. package/dist/chunks/config-_qPUfb6-2.js +0 -165
  374. package/dist/chunks/config-_qPUfb6-2.js.map +0 -1
  375. package/dist/chunks/config-eXB87DOi.js.map +0 -1
  376. package/dist/chunks/config-gvq_hWNM.js +0 -103
  377. package/dist/chunks/config-gvq_hWNM.js.map +0 -1
  378. package/dist/chunks/context-BSYR7RZs.js +0 -152
  379. package/dist/chunks/context-BSYR7RZs.js.map +0 -1
  380. package/dist/chunks/granular-provider-B9nXQCMu.js +0 -195
  381. package/dist/chunks/granular-provider-B9nXQCMu.js.map +0 -1
  382. package/dist/chunks/portalRoot-CWD4zHBm.js +0 -35
  383. package/dist/chunks/portalRoot-CWD4zHBm.js.map +0 -1
  384. package/dist/chunks/useModalOverlay-BTq-0ImG.js +0 -212
  385. package/dist/chunks/useModalOverlay-BTq-0ImG.js.map +0 -1
  386. package/dist/chunks/usePortalTarget-RyzEgNTb.js +0 -77
  387. package/dist/chunks/usePortalTarget-RyzEgNTb.js.map +0 -1
  388. package/dist/chunks/validation-5HhpanPP.js +0 -178
  389. package/dist/chunks/validation-5HhpanPP.js.map +0 -1
  390. package/dist/components/GrAlert/chunks/GrAlert-BC1lplbY.js +0 -272
  391. package/dist/components/GrAlert/chunks/GrAlert-BC1lplbY.js.map +0 -1
  392. package/dist/components/GrAutocomplete/chunks/GrAutocomplete-CPEQxmLZ.js +0 -852
  393. package/dist/components/GrAutocomplete/chunks/GrAutocomplete-CPEQxmLZ.js.map +0 -1
  394. package/dist/components/GrAvatar/chunks/GrAvatar-CVUujLmn.js +0 -222
  395. package/dist/components/GrAvatar/chunks/GrAvatar-CVUujLmn.js.map +0 -1
  396. package/dist/components/GrBadge/chunks/GrBadge-B1tgqfGQ.js +0 -40
  397. package/dist/components/GrBadge/chunks/GrBadge-B1tgqfGQ.js.map +0 -1
  398. package/dist/components/GrBadgeWrap/chunks/GrBadgeWrap-C-E9betg.js +0 -97
  399. package/dist/components/GrBadgeWrap/chunks/GrBadgeWrap-C-E9betg.js.map +0 -1
  400. package/dist/components/GrBottomNav/chunks/GrBottomNav-9GH7Dd9E.js +0 -117
  401. package/dist/components/GrBottomNav/chunks/GrBottomNav-9GH7Dd9E.js.map +0 -1
  402. package/dist/components/GrBreadcrumbs/chunks/GrBreadcrumbs-BCNGDS6k.js +0 -266
  403. package/dist/components/GrBreadcrumbs/chunks/GrBreadcrumbs-BCNGDS6k.js.map +0 -1
  404. package/dist/components/GrButton/chunks/GrButton-D0m_z0XW.js +0 -153
  405. package/dist/components/GrButton/chunks/GrButton-D0m_z0XW.js.map +0 -1
  406. package/dist/components/GrCard/chunks/GrCard-DOrGHf2x.js +0 -89
  407. package/dist/components/GrCard/chunks/GrCard-DOrGHf2x.js.map +0 -1
  408. package/dist/components/GrCheckbox/chunks/GrCheckbox-BLOp8452.js +0 -262
  409. package/dist/components/GrCheckbox/chunks/GrCheckbox-BLOp8452.js.map +0 -1
  410. package/dist/components/GrCheckboxGroup/chunks/GrCheckboxGroup-CXTx2Z5H.js +0 -140
  411. package/dist/components/GrCheckboxGroup/chunks/GrCheckboxGroup-CXTx2Z5H.js.map +0 -1
  412. package/dist/components/GrCollapse/chunks/GrCollapse-B2Fc6A9r.js +0 -308
  413. package/dist/components/GrCollapse/chunks/GrCollapse-B2Fc6A9r.js.map +0 -1
  414. package/dist/components/GrColorPicker/chunks/GrColorPicker-DAdQ-Gc3.js +0 -584
  415. package/dist/components/GrColorPicker/chunks/GrColorPicker-DAdQ-Gc3.js.map +0 -1
  416. package/dist/components/GrCommandPalette/chunks/GrCommandPalette-DMeSqkEv.js +0 -565
  417. package/dist/components/GrCommandPalette/chunks/GrCommandPalette-DMeSqkEv.js.map +0 -1
  418. package/dist/components/GrConfigProvider/chunks/GrConfigProvider-BA6JO7V6.js +0 -144
  419. package/dist/components/GrConfigProvider/chunks/GrConfigProvider-BA6JO7V6.js.map +0 -1
  420. package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-hUTi-GdJ.js +0 -200
  421. package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-hUTi-GdJ.js.map +0 -1
  422. package/dist/components/GrDataTable/chunks/GrDataTable-DzaGLG3A.js +0 -1053
  423. package/dist/components/GrDataTable/chunks/GrDataTable-DzaGLG3A.js.map +0 -1
  424. package/dist/components/GrDialog/chunks/GrDialog-MD9Fzy9C.js +0 -255
  425. package/dist/components/GrDialog/chunks/GrDialog-MD9Fzy9C.js.map +0 -1
  426. package/dist/components/GrDialogService/chunks/GrDialogService-DtgUijMj.js +0 -656
  427. package/dist/components/GrDialogService/chunks/GrDialogService-DtgUijMj.js.map +0 -1
  428. package/dist/components/GrDivider/chunks/GrDivider-B2Xwc_QO.js +0 -109
  429. package/dist/components/GrDivider/chunks/GrDivider-B2Xwc_QO.js.map +0 -1
  430. package/dist/components/GrDrawer/chunks/GrDrawer-DWHdZZzW.js +0 -251
  431. package/dist/components/GrDrawer/chunks/GrDrawer-DWHdZZzW.js.map +0 -1
  432. package/dist/components/GrDropdown/chunks/GrDropdown-0tJK01Kq.js +0 -300
  433. package/dist/components/GrDropdown/chunks/GrDropdown-0tJK01Kq.js.map +0 -1
  434. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-VPPrpCoA.js +0 -421
  435. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-VPPrpCoA.js.map +0 -1
  436. package/dist/components/GrEmptyState/chunks/GrEmptyState-W7Irx3vc.js +0 -86
  437. package/dist/components/GrEmptyState/chunks/GrEmptyState-W7Irx3vc.js.map +0 -1
  438. package/dist/components/GrFileUpload/chunks/GrFileUpload-DuDzC43S.js +0 -1080
  439. package/dist/components/GrFileUpload/chunks/GrFileUpload-DuDzC43S.js.map +0 -1
  440. package/dist/components/GrForm/chunks/GrForm-BCHCfIMv.js +0 -326
  441. package/dist/components/GrForm/chunks/GrForm-BCHCfIMv.js.map +0 -1
  442. package/dist/components/GrFormField/chunks/GrFormField-CL5rcgj6.js +0 -190
  443. package/dist/components/GrFormField/chunks/GrFormField-CL5rcgj6.js.map +0 -1
  444. package/dist/components/GrFormFile/chunks/GrFormFile-BikSD7bg.js +0 -452
  445. package/dist/components/GrFormFile/chunks/GrFormFile-BikSD7bg.js.map +0 -1
  446. package/dist/components/GrFormSection/chunks/GrFormSection-BEh5n4jF.js +0 -63
  447. package/dist/components/GrFormSection/chunks/GrFormSection-BEh5n4jF.js.map +0 -1
  448. package/dist/components/GrIcon/chunks/GrIcon-BvA2ZGXP.js +0 -57
  449. package/dist/components/GrIcon/chunks/GrIcon-BvA2ZGXP.js.map +0 -1
  450. package/dist/components/GrImageViewer/chunks/GrImageViewer-DE7MBbF8.js +0 -1127
  451. package/dist/components/GrImageViewer/chunks/GrImageViewer-DE7MBbF8.js.map +0 -1
  452. package/dist/components/GrInput/chunks/GrInput-2wd7Crs0.js +0 -348
  453. package/dist/components/GrInput/chunks/GrInput-2wd7Crs0.js.map +0 -1
  454. package/dist/components/GrInputTag/chunks/GrInputTag-CyV2eY7Z.js +0 -512
  455. package/dist/components/GrInputTag/chunks/GrInputTag-CyV2eY7Z.js.map +0 -1
  456. package/dist/components/GrKbd/chunks/GrKbd-DU2lBkRV.js +0 -358
  457. package/dist/components/GrKbd/chunks/GrKbd-DU2lBkRV.js.map +0 -1
  458. package/dist/components/GrLink/chunks/GrLink-D-cgUMXW.js +0 -163
  459. package/dist/components/GrLink/chunks/GrLink-D-cgUMXW.js.map +0 -1
  460. package/dist/components/GrList/chunks/GrList-4YU1NZtM.js +0 -277
  461. package/dist/components/GrList/chunks/GrList-4YU1NZtM.js.map +0 -1
  462. package/dist/components/GrLoading/chunks/GrLoading-CH95CFzS.js +0 -101
  463. package/dist/components/GrLoading/chunks/GrLoading-CH95CFzS.js.map +0 -1
  464. package/dist/components/GrModal/chunks/GrModal-BbhcsDQ8.js +0 -313
  465. package/dist/components/GrModal/chunks/GrModal-BbhcsDQ8.js.map +0 -1
  466. package/dist/components/GrNavbar/chunks/GrNavbar-CF0KbM_6.js +0 -104
  467. package/dist/components/GrNavbar/chunks/GrNavbar-CF0KbM_6.js.map +0 -1
  468. package/dist/components/GrNumberInput/chunks/GrNumberInput-CZOyPz4J.js +0 -658
  469. package/dist/components/GrNumberInput/chunks/GrNumberInput-CZOyPz4J.js.map +0 -1
  470. package/dist/components/GrPagination/chunks/GrPagination-waKhxBP7.js +0 -283
  471. package/dist/components/GrPagination/chunks/GrPagination-waKhxBP7.js.map +0 -1
  472. package/dist/components/GrPopover/chunks/GrPopover-DuqeoFaI.js +0 -216
  473. package/dist/components/GrPopover/chunks/GrPopover-DuqeoFaI.js.map +0 -1
  474. package/dist/components/GrProgressBar/chunks/GrProgressBar-xwbNM9QB.js +0 -90
  475. package/dist/components/GrProgressBar/chunks/GrProgressBar-xwbNM9QB.js.map +0 -1
  476. package/dist/components/GrProgressCircle/chunks/GrProgressCircle-B8olXRo5.js +0 -210
  477. package/dist/components/GrProgressCircle/chunks/GrProgressCircle-B8olXRo5.js.map +0 -1
  478. package/dist/components/GrPromptDialog/chunks/GrPromptDialog-JVVqBsPY.js +0 -348
  479. package/dist/components/GrPromptDialog/chunks/GrPromptDialog-JVVqBsPY.js.map +0 -1
  480. package/dist/components/GrRadio/chunks/GrRadio-DWiRaMzt.js +0 -253
  481. package/dist/components/GrRadio/chunks/GrRadio-DWiRaMzt.js.map +0 -1
  482. package/dist/components/GrRadioGroup/chunks/GrRadioGroup-DIuBw0wk.js +0 -196
  483. package/dist/components/GrRadioGroup/chunks/GrRadioGroup-DIuBw0wk.js.map +0 -1
  484. package/dist/components/GrRating/chunks/GrRating-LarIiwJL.js +0 -315
  485. package/dist/components/GrRating/chunks/GrRating-LarIiwJL.js.map +0 -1
  486. package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-C7W9mgYN.js +0 -777
  487. package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-C7W9mgYN.js.map +0 -1
  488. package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-DhX4jjay.js +0 -224
  489. package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-DhX4jjay.js.map +0 -1
  490. package/dist/components/GrSegmented/chunks/GrSegmented-CQw3ijqa.js +0 -388
  491. package/dist/components/GrSegmented/chunks/GrSegmented-CQw3ijqa.js.map +0 -1
  492. package/dist/components/GrSelect/chunks/GrSelect-DAdu044K.js +0 -1373
  493. package/dist/components/GrSelect/chunks/GrSelect-DAdu044K.js.map +0 -1
  494. package/dist/components/GrSidebar/chunks/GrSidebar-DRGnnViw.js +0 -257
  495. package/dist/components/GrSidebar/chunks/GrSidebar-DRGnnViw.js.map +0 -1
  496. package/dist/components/GrSkeleton/chunks/GrSkeleton-DEvNE3bC.js +0 -84
  497. package/dist/components/GrSkeleton/chunks/GrSkeleton-DEvNE3bC.js.map +0 -1
  498. package/dist/components/GrSlider/chunks/GrSlider-CyhVsNKn.js +0 -379
  499. package/dist/components/GrSlider/chunks/GrSlider-CyhVsNKn.js.map +0 -1
  500. package/dist/components/GrSortableList/chunks/GrSortableList-BefVfWKh.js +0 -276
  501. package/dist/components/GrSortableList/chunks/GrSortableList-BefVfWKh.js.map +0 -1
  502. package/dist/components/GrSplitter/chunks/GrSplitter-BzxVQwbY.js +0 -268
  503. package/dist/components/GrSplitter/chunks/GrSplitter-BzxVQwbY.js.map +0 -1
  504. package/dist/components/GrStatistic/chunks/GrStatistic-J4qLs3TH.js +0 -319
  505. package/dist/components/GrStatistic/chunks/GrStatistic-J4qLs3TH.js.map +0 -1
  506. package/dist/components/GrSwitch/chunks/GrSwitch-DpyvVrZG.js +0 -183
  507. package/dist/components/GrSwitch/chunks/GrSwitch-DpyvVrZG.js.map +0 -1
  508. package/dist/components/GrTabPanels/chunks/GrTabPanels-BVe1CZdJ.js +0 -81
  509. package/dist/components/GrTabPanels/chunks/GrTabPanels-BVe1CZdJ.js.map +0 -1
  510. package/dist/components/GrTable/chunks/GrTable-BfqgwETQ.js +0 -169
  511. package/dist/components/GrTable/chunks/GrTable-BfqgwETQ.js.map +0 -1
  512. package/dist/components/GrTabs/chunks/GrTabs-TeXaU5Uh.js +0 -261
  513. package/dist/components/GrTabs/chunks/GrTabs-TeXaU5Uh.js.map +0 -1
  514. package/dist/components/GrTextarea/chunks/GrTextarea-DSvd1nSy.js +0 -241
  515. package/dist/components/GrTextarea/chunks/GrTextarea-DSvd1nSy.js.map +0 -1
  516. package/dist/components/GrTimeline/chunks/GrTimeline-B-h2Yanw.js +0 -285
  517. package/dist/components/GrTimeline/chunks/GrTimeline-B-h2Yanw.js.map +0 -1
  518. package/dist/components/GrToaster/chunks/GrToaster-Ct-39hga.js +0 -373
  519. package/dist/components/GrToaster/chunks/GrToaster-Ct-39hga.js.map +0 -1
  520. package/dist/components/GrTooltip/chunks/GrTooltip-xAcqs0bP.js +0 -185
  521. package/dist/components/GrTooltip/chunks/GrTooltip-xAcqs0bP.js.map +0 -1
  522. package/dist/components/GrTree/chunks/GrTree-CaYK8dGZ.js +0 -1371
  523. package/dist/components/GrTree/chunks/GrTree-CaYK8dGZ.js.map +0 -1
  524. package/dist/components/GrTreeSelect/chunks/GrTreeSelect-DZp7CqqW.js +0 -623
  525. package/dist/components/GrTreeSelect/chunks/GrTreeSelect-DZp7CqqW.js.map +0 -1
  526. package/dist/tokens.js.map +0 -1
  527. package/dist/types/src/components/GrAlert/index.d.ts +0 -8
  528. package/dist/types/src/components/GrAvatar/index.d.ts +0 -10
  529. package/dist/types/src/components/GrBadgeWrap/index.d.ts +0 -7
  530. package/dist/types/src/components/GrBottomNav/index.d.ts +0 -9
  531. package/dist/types/src/components/GrBreadcrumbs/grBreadcrumbsStyles.d.ts +0 -86
  532. package/dist/types/src/components/GrButton/index.d.ts +0 -11
  533. package/dist/types/src/components/GrCheckbox/index.d.ts +0 -13
  534. package/dist/types/src/components/GrCollapse/index.d.ts +0 -9
  535. package/dist/types/src/components/GrColorPicker/index.d.ts +0 -11
  536. package/dist/types/src/components/GrCommandPalette/GrCommandPalette.vue.d.ts +0 -163
  537. package/dist/types/src/components/GrCommandPalette/filtering.d.ts +0 -59
  538. package/dist/types/src/components/GrCommandPalette/index.d.ts +0 -10
  539. package/dist/types/src/components/GrConfigProvider/index.d.ts +0 -6
  540. package/dist/types/src/components/GrDataTable/grDataTableStyles.d.ts +0 -68
  541. package/dist/types/src/components/GrDataTable/index.d.ts +0 -13
  542. package/dist/types/src/components/GrDialog/index.d.ts +0 -12
  543. package/dist/types/src/components/GrDialogService/index.d.ts +0 -6
  544. package/dist/types/src/components/GrDropdownMenu/index.d.ts +0 -22
  545. package/dist/types/src/components/GrEmptyState/index.d.ts +0 -8
  546. package/dist/types/src/components/GrFileUpload/index.d.ts +0 -18
  547. package/dist/types/src/components/GrForm/index.d.ts +0 -10
  548. package/dist/types/src/components/GrFormField/index.d.ts +0 -8
  549. package/dist/types/src/components/GrFormSection/index.d.ts +0 -8
  550. package/dist/types/src/components/GrProgressCircle/index.d.ts +0 -11
  551. package/dist/types/src/components/GrRadio/index.d.ts +0 -9
  552. package/dist/types/src/components/GrRating/GrRating.vue.d.ts +0 -173
  553. package/dist/types/src/components/GrResponseErrorBanner/index.d.ts +0 -16
  554. package/dist/types/src/components/GrSegmented/index.d.ts +0 -11
  555. package/dist/types/src/components/GrSelect/GrSelect.vue.d.ts +0 -205
  556. package/dist/types/src/components/GrSidebar/index.d.ts +0 -10
  557. package/dist/types/src/components/GrSkeleton/index.d.ts +0 -4
  558. package/dist/types/src/components/GrSortableList/grSortableListStyles.d.ts +0 -38
  559. package/dist/types/src/components/GrSplitter/index.d.ts +0 -11
  560. package/dist/types/src/components/GrStatistic/GrStatistic.vue.d.ts +0 -165
  561. package/dist/types/src/components/GrStatistic/grStatisticStyles.d.ts +0 -37
  562. package/dist/types/src/components/GrTabPanels/index.d.ts +0 -8
  563. package/dist/types/src/components/GrTabs/GrTabs.vue.d.ts +0 -117
  564. package/dist/types/src/components/GrTabs/index.d.ts +0 -9
  565. package/dist/types/src/components/GrTimeline/index.d.ts +0 -12
  566. package/dist/types/src/components/GrTree/grTreeProps.d.ts +0 -112
  567. package/dist/types/src/components/GrTree/safelist.d.ts +0 -1
  568. package/dist/types/src/components/GrTreeSelect/GrTreeSelect.vue.d.ts +0 -69
  569. package/dist/types/src/tokens/types.d.ts +0 -54
  570. /package/dist/chunks/{config-BE6n20np2.js → config-BE6n20np.js} +0 -0
  571. /package/dist/chunks/{config-COpuWGr_.js → config-COpuWGr_2.js} +0 -0
  572. /package/dist/chunks/{config-DCFvmHEv2.js → config-DCFvmHEv.js} +0 -0
  573. /package/dist/chunks/{config-WTNhdh6T2.js → config-WTNhdh6T.js} +0 -0
  574. /package/dist/chunks/{config-eXB87DOi.js → config-eXB87DOi2.js} +0 -0
  575. /package/dist/types/{src/components → components}/GrAlert/GrAlert.vue.d.ts +0 -0
  576. /package/dist/types/{src/components → components}/GrAlert/config.d.ts +0 -0
  577. /package/dist/types/{src/components → components}/GrAlert/defaults.d.ts +0 -0
  578. /package/dist/types/{src/components → components}/GrAlert/grAlertStyles.d.ts +0 -0
  579. /package/dist/types/{src/components → components}/GrAutocomplete/GrAutocomplete.vue.d.ts +0 -0
  580. /package/dist/types/{src/components → components}/GrAutocomplete/config.d.ts +0 -0
  581. /package/dist/types/{src/components → components}/GrAutocomplete/defaults.d.ts +0 -0
  582. /package/dist/types/{src/components → components}/GrAutocomplete/grAutocompleteStyles.d.ts +0 -0
  583. /package/dist/types/{src/components → components}/GrAutocomplete/index.d.ts +0 -0
  584. /package/dist/types/{src/components → components}/GrAutocomplete/safelist.d.ts +0 -0
  585. /package/dist/types/{src/components → components}/GrAvatar/GrAvatar.vue.d.ts +0 -0
  586. /package/dist/types/{src/components → components}/GrAvatar/GrAvatarGroup.vue.d.ts +0 -0
  587. /package/dist/types/{src/components → components}/GrAvatar/avatarContext.d.ts +0 -0
  588. /package/dist/types/{src/components → components}/GrAvatar/config.d.ts +0 -0
  589. /package/dist/types/{src/components → components}/GrAvatar/defaults.d.ts +0 -0
  590. /package/dist/types/{src/components → components}/GrAvatar/grAvatarStyles.d.ts +0 -0
  591. /package/dist/types/{src/components → components}/GrAvatar/safelist.d.ts +0 -0
  592. /package/dist/types/{src/components → components}/GrBadge/GrBadge.vue.d.ts +0 -0
  593. /package/dist/types/{src/components → components}/GrBadge/config.d.ts +0 -0
  594. /package/dist/types/{src/components → components}/GrBadge/defaults.d.ts +0 -0
  595. /package/dist/types/{src/components → components}/GrBadge/grBadgeStyles.d.ts +0 -0
  596. /package/dist/types/{src/components → components}/GrBadge/index.d.ts +0 -0
  597. /package/dist/types/{src/components → components}/GrBadge/safelist.d.ts +0 -0
  598. /package/dist/types/{src/components → components}/GrBadgeWrap/GrBadgeWrap.vue.d.ts +0 -0
  599. /package/dist/types/{src/components → components}/GrBadgeWrap/config.d.ts +0 -0
  600. /package/dist/types/{src/components → components}/GrBadgeWrap/grBadgeWrapStyles.d.ts +0 -0
  601. /package/dist/types/{src/components → components}/GrBadgeWrap/safelist.d.ts +0 -0
  602. /package/dist/types/{src/components → components}/GrBottomNav/GrBottomNav.vue.d.ts +0 -0
  603. /package/dist/types/{src/components → components}/GrBottomNav/config.d.ts +0 -0
  604. /package/dist/types/{src/components → components}/GrBottomNav/defaults.d.ts +0 -0
  605. /package/dist/types/{src/components → components}/GrBottomNav/grBottomNavStyles.d.ts +0 -0
  606. /package/dist/types/{src/components → components}/GrBottomNav/safelist.d.ts +0 -0
  607. /package/dist/types/{src/components → components}/GrBreadcrumbs/GrBreadcrumbs.vue.d.ts +0 -0
  608. /package/dist/types/{src/components → components}/GrBreadcrumbs/config.d.ts +0 -0
  609. /package/dist/types/{src/components → components}/GrBreadcrumbs/defaults.d.ts +0 -0
  610. /package/dist/types/{src/components → components}/GrBreadcrumbs/index.d.ts +0 -0
  611. /package/dist/types/{src/components → components}/GrBreadcrumbs/safelist.d.ts +0 -0
  612. /package/dist/types/{src/components → components}/GrButton/GrButton.vue.d.ts +0 -0
  613. /package/dist/types/{src/components → components}/GrButton/config.d.ts +0 -0
  614. /package/dist/types/{src/components → components}/GrButton/defaults.d.ts +0 -0
  615. /package/dist/types/{src/components → components}/GrButton/grButtonStyles.d.ts +0 -0
  616. /package/dist/types/{src/components → components}/GrButton/safelist.d.ts +0 -0
  617. /package/dist/types/{src/components → components}/GrButtonGroup/GrButtonGroup.vue.d.ts +0 -0
  618. /package/dist/types/{src/components → components}/GrButtonGroup/config.d.ts +0 -0
  619. /package/dist/types/{src/components → components}/GrButtonGroup/context.d.ts +0 -0
  620. /package/dist/types/{src/components → components}/GrButtonGroup/index.d.ts +0 -0
  621. /package/dist/types/{src/components → components}/GrCard/GrCard.vue.d.ts +0 -0
  622. /package/dist/types/{src/components → components}/GrCard/config.d.ts +0 -0
  623. /package/dist/types/{src/components → components}/GrCard/defaults.d.ts +0 -0
  624. /package/dist/types/{src/components → components}/GrCard/grCardStyles.d.ts +0 -0
  625. /package/dist/types/{src/components → components}/GrCard/index.d.ts +0 -0
  626. /package/dist/types/{src/components → components}/GrCard/safelist.d.ts +0 -0
  627. /package/dist/types/{src/components → components}/GrCheckbox/GrCheckbox.vue.d.ts +0 -0
  628. /package/dist/types/{src/components → components}/GrCheckbox/config.d.ts +0 -0
  629. /package/dist/types/{src/components → components}/GrCheckbox/defaults.d.ts +0 -0
  630. /package/dist/types/{src/components → components}/GrCheckbox/grCheckboxGroupContext.d.ts +0 -0
  631. /package/dist/types/{src/components → components}/GrCheckbox/grCheckboxStyles.d.ts +0 -0
  632. /package/dist/types/{src/components → components}/GrCheckbox/safelist.d.ts +0 -0
  633. /package/dist/types/{src/components → components}/GrCheckboxGroup/GrCheckboxGroup.vue.d.ts +0 -0
  634. /package/dist/types/{src/components → components}/GrCheckboxGroup/config.d.ts +0 -0
  635. /package/dist/types/{src/components → components}/GrCheckboxGroup/defaults.d.ts +0 -0
  636. /package/dist/types/{src/components → components}/GrCheckboxGroup/index.d.ts +0 -0
  637. /package/dist/types/{src/components → components}/GrCollapse/GrCollapse.vue.d.ts +0 -0
  638. /package/dist/types/{src/components → components}/GrCollapse/GrCollapseItem.vue.d.ts +0 -0
  639. /package/dist/types/{src/components → components}/GrCollapse/config.d.ts +0 -0
  640. /package/dist/types/{src/components → components}/GrCollapse/defaults.d.ts +0 -0
  641. /package/dist/types/{src/components → components}/GrCollapse/grCollapseContext.d.ts +0 -0
  642. /package/dist/types/{src/components → components}/GrCollapse/grCollapseStyles.d.ts +0 -0
  643. /package/dist/types/{src/components → components}/GrCollapse/safelist.d.ts +0 -0
  644. /package/dist/types/{src/components → components}/GrColorPicker/GrColorPicker.vue.d.ts +0 -0
  645. /package/dist/types/{src/components → components}/GrColorPicker/color.d.ts +0 -0
  646. /package/dist/types/{src/components → components}/GrColorPicker/config.d.ts +0 -0
  647. /package/dist/types/{src/components → components}/GrColorPicker/defaults.d.ts +0 -0
  648. /package/dist/types/{src/components → components}/GrColorPicker/grColorPickerStyles.d.ts +0 -0
  649. /package/dist/types/{src/components → components}/GrColorPicker/safelist.d.ts +0 -0
  650. /package/dist/types/{src/components → components}/GrCommandPalette/config.d.ts +0 -0
  651. /package/dist/types/{src/components → components}/GrCommandPalette/defaults.d.ts +0 -0
  652. /package/dist/types/{src/components → components}/GrCommandPalette/grCommandPaletteStyles.d.ts +0 -0
  653. /package/dist/types/{src/components → components}/GrCommandPalette/safelist.d.ts +0 -0
  654. /package/dist/types/{src/components → components}/GrConfigProvider/GrConfigProvider.vue.d.ts +0 -0
  655. /package/dist/types/{src/components → components}/GrConfigProvider/config.d.ts +0 -0
  656. /package/dist/types/{src/components → components}/GrConfigProvider/context.d.ts +0 -0
  657. /package/dist/types/{src/components → components}/GrConfigProvider/zIndexScale.d.ts +0 -0
  658. /package/dist/types/{src/components → components}/GrConfirmDialog/GrConfirmDialog.vue.d.ts +0 -0
  659. /package/dist/types/{src/components → components}/GrConfirmDialog/config.d.ts +0 -0
  660. /package/dist/types/{src/components → components}/GrConfirmDialog/defaults.d.ts +0 -0
  661. /package/dist/types/{src/components → components}/GrConfirmDialog/index.d.ts +0 -0
  662. /package/dist/types/{src/components → components}/GrDataTable/GrDataTable.vue.d.ts +0 -0
  663. /package/dist/types/{src/components → components}/GrDataTable/config.d.ts +0 -0
  664. /package/dist/types/{src/components → components}/GrDataTable/defaults.d.ts +0 -0
  665. /package/dist/types/{src/components → components}/GrDataTable/grDataTableSort.d.ts +0 -0
  666. /package/dist/types/{src/components → components}/GrDataTable/safelist.d.ts +0 -0
  667. /package/dist/types/{src/components → components}/GrDialog/GrDialog.vue.d.ts +0 -0
  668. /package/dist/types/{src/components → components}/GrDialog/GrDialogCloseButton.vue.d.ts +0 -0
  669. /package/dist/types/{src/components → components}/GrDialog/GrDialogFooter.vue.d.ts +0 -0
  670. /package/dist/types/{src/components → components}/GrDialog/GrDialogHeader.vue.d.ts +0 -0
  671. /package/dist/types/{src/components → components}/GrDialog/config.d.ts +0 -0
  672. /package/dist/types/{src/components → components}/GrDialog/defaults.d.ts +0 -0
  673. /package/dist/types/{src/components → components}/GrDialog/dialogShared.d.ts +0 -0
  674. /package/dist/types/{src/components → components}/GrDialog/safelist.d.ts +0 -0
  675. /package/dist/types/{src/components → components}/GrDialogService/GrDialogServiceHost.vue.d.ts +0 -0
  676. /package/dist/types/{src/components → components}/GrDialogService/GrDialogServiceItem.vue.d.ts +0 -0
  677. /package/dist/types/{src/components → components}/GrDialogService/config.d.ts +0 -0
  678. /package/dist/types/{src/components → components}/GrDialogService/store.d.ts +0 -0
  679. /package/dist/types/{src/components → components}/GrDialogService/types.d.ts +0 -0
  680. /package/dist/types/{src/components → components}/GrDialogService/useDialogService.d.ts +0 -0
  681. /package/dist/types/{src/components → components}/GrDivider/GrDivider.vue.d.ts +0 -0
  682. /package/dist/types/{src/components → components}/GrDivider/config.d.ts +0 -0
  683. /package/dist/types/{src/components → components}/GrDivider/defaults.d.ts +0 -0
  684. /package/dist/types/{src/components → components}/GrDivider/grDividerStyles.d.ts +0 -0
  685. /package/dist/types/{src/components → components}/GrDivider/index.d.ts +0 -0
  686. /package/dist/types/{src/components → components}/GrDivider/safelist.d.ts +0 -0
  687. /package/dist/types/{src/components → components}/GrDrawer/GrDrawer.vue.d.ts +0 -0
  688. /package/dist/types/{src/components → components}/GrDrawer/config.d.ts +0 -0
  689. /package/dist/types/{src/components → components}/GrDrawer/defaults.d.ts +0 -0
  690. /package/dist/types/{src/components → components}/GrDrawer/grDrawerStyles.d.ts +0 -0
  691. /package/dist/types/{src/components → components}/GrDrawer/index.d.ts +0 -0
  692. /package/dist/types/{src/components → components}/GrDrawer/safelist.d.ts +0 -0
  693. /package/dist/types/{src/components → components}/GrDropdown/GrDropdown.vue.d.ts +0 -0
  694. /package/dist/types/{src/components → components}/GrDropdown/config.d.ts +0 -0
  695. /package/dist/types/{src/components → components}/GrDropdown/grDropdownStyles.d.ts +0 -0
  696. /package/dist/types/{src/components → components}/GrDropdown/index.d.ts +0 -0
  697. /package/dist/types/{src/components → components}/GrDropdown/safelist.d.ts +0 -0
  698. /package/dist/types/{src/components → components}/GrDropdownMenu/GrDropdownMenu.vue.d.ts +0 -0
  699. /package/dist/types/{src/components → components}/GrDropdownMenu/GrDropdownMenuColumn.vue.d.ts +0 -0
  700. /package/dist/types/{src/components → components}/GrDropdownMenu/GrDropdownMenuColumns.vue.d.ts +0 -0
  701. /package/dist/types/{src/components → components}/GrDropdownMenu/GrDropdownMenuDivider.vue.d.ts +0 -0
  702. /package/dist/types/{src/components → components}/GrDropdownMenu/GrDropdownMenuGroup.vue.d.ts +0 -0
  703. /package/dist/types/{src/components → components}/GrDropdownMenu/GrDropdownMenuHeader.vue.d.ts +0 -0
  704. /package/dist/types/{src/components → components}/GrDropdownMenu/GrDropdownMenuItem.vue.d.ts +0 -0
  705. /package/dist/types/{src/components → components}/GrDropdownMenu/GrDropdownMenuList.vue.d.ts +0 -0
  706. /package/dist/types/{src/components → components}/GrDropdownMenu/config.d.ts +0 -0
  707. /package/dist/types/{src/components → components}/GrDropdownMenu/grDropdownMenuStyles.d.ts +0 -0
  708. /package/dist/types/{src/components → components}/GrDropdownMenu/menuModel.d.ts +0 -0
  709. /package/dist/types/{src/components → components}/GrDropdownMenu/safelist.d.ts +0 -0
  710. /package/dist/types/{src/components → components}/GrEmptyState/GrEmptyState.vue.d.ts +0 -0
  711. /package/dist/types/{src/components → components}/GrEmptyState/config.d.ts +0 -0
  712. /package/dist/types/{src/components → components}/GrEmptyState/defaults.d.ts +0 -0
  713. /package/dist/types/{src/components → components}/GrEmptyState/grEmptyStateStyles.d.ts +0 -0
  714. /package/dist/types/{src/components → components}/GrEmptyState/safelist.d.ts +0 -0
  715. /package/dist/types/{src/components → components}/GrFileUpload/FileValidationError.d.ts +0 -0
  716. /package/dist/types/{src/components → components}/GrFileUpload/GrFileUpload.vue.d.ts +0 -0
  717. /package/dist/types/{src/components → components}/GrFileUpload/acceptValidator.d.ts +0 -0
  718. /package/dist/types/{src/components → components}/GrFileUpload/config.d.ts +0 -0
  719. /package/dist/types/{src/components → components}/GrFileUpload/defaults.d.ts +0 -0
  720. /package/dist/types/{src/components → components}/GrFileUpload/fileEntry.d.ts +0 -0
  721. /package/dist/types/{src/components → components}/GrFileUpload/grFileUploadStyles.d.ts +0 -0
  722. /package/dist/types/{src/components → components}/GrFileUpload/matchAccept.d.ts +0 -0
  723. /package/dist/types/{src/components → components}/GrFileUpload/maxFileSize.d.ts +0 -0
  724. /package/dist/types/{src/components → components}/GrFileUpload/runFileValidators.d.ts +0 -0
  725. /package/dist/types/{src/components → components}/GrFileUpload/safelist.d.ts +0 -0
  726. /package/dist/types/{src/components → components}/GrFileUpload/types.d.ts +0 -0
  727. /package/dist/types/{src/components → components}/GrFileUpload/uploadState.d.ts +0 -0
  728. /package/dist/types/{src/components → components}/GrFileUpload/uploadViaXhr.d.ts +0 -0
  729. /package/dist/types/{src/components → components}/GrFileUpload/useDropZone.d.ts +0 -0
  730. /package/dist/types/{src/components → components}/GrFileUpload/usePerFileUpload.d.ts +0 -0
  731. /package/dist/types/{src/components → components}/GrFileUpload/useUploadState.d.ts +0 -0
  732. /package/dist/types/{src/components → components}/GrForm/GrForm.vue.d.ts +0 -0
  733. /package/dist/types/{src/components → components}/GrForm/config.d.ts +0 -0
  734. /package/dist/types/{src/components → components}/GrForm/context.d.ts +0 -0
  735. /package/dist/types/{src/components → components}/GrForm/fileRule.d.ts +0 -0
  736. /package/dist/types/{src/components → components}/GrForm/modelSnapshot.d.ts +0 -0
  737. /package/dist/types/{src/components → components}/GrForm/validation.d.ts +0 -0
  738. /package/dist/types/{src/components → components}/GrFormField/GrFormField.vue.d.ts +0 -0
  739. /package/dist/types/{src/components → components}/GrFormField/config.d.ts +0 -0
  740. /package/dist/types/{src/components → components}/GrFormField/context.d.ts +0 -0
  741. /package/dist/types/{src/components → components}/GrFormField/defaults.d.ts +0 -0
  742. /package/dist/types/{src/components → components}/GrFormField/grFormFieldStyles.d.ts +0 -0
  743. /package/dist/types/{src/components → components}/GrFormField/safelist.d.ts +0 -0
  744. /package/dist/types/{src/components → components}/GrFormFile/GrFormFile.vue.d.ts +0 -0
  745. /package/dist/types/{src/components → components}/GrFormFile/config.d.ts +0 -0
  746. /package/dist/types/{src/components → components}/GrFormFile/defaults.d.ts +0 -0
  747. /package/dist/types/{src/components → components}/GrFormFile/grFormFileStyles.d.ts +0 -0
  748. /package/dist/types/{src/components → components}/GrFormFile/index.d.ts +0 -0
  749. /package/dist/types/{src/components → components}/GrFormFile/safelist.d.ts +0 -0
  750. /package/dist/types/{src/components → components}/GrFormSection/GrFormSection.vue.d.ts +0 -0
  751. /package/dist/types/{src/components → components}/GrFormSection/config.d.ts +0 -0
  752. /package/dist/types/{src/components → components}/GrFormSection/defaults.d.ts +0 -0
  753. /package/dist/types/{src/components → components}/GrFormSection/grFormSectionStyles.d.ts +0 -0
  754. /package/dist/types/{src/components → components}/GrFormSection/safelist.d.ts +0 -0
  755. /package/dist/types/{src/components → components}/GrIcon/GrIcon.vue.d.ts +0 -0
  756. /package/dist/types/{src/components → components}/GrIcon/config.d.ts +0 -0
  757. /package/dist/types/{src/components → components}/GrIcon/defaults.d.ts +0 -0
  758. /package/dist/types/{src/components → components}/GrIcon/grIconStyles.d.ts +0 -0
  759. /package/dist/types/{src/components → components}/GrIcon/index.d.ts +0 -0
  760. /package/dist/types/{src/components → components}/GrIcon/safelist.d.ts +0 -0
  761. /package/dist/types/{src/components → components}/GrImageViewer/GrImageViewer.vue.d.ts +0 -0
  762. /package/dist/types/{src/components → components}/GrImageViewer/composables/usePointerGestures.d.ts +0 -0
  763. /package/dist/types/{src/components → components}/GrImageViewer/composables/useViewerKeyboard.d.ts +0 -0
  764. /package/dist/types/{src/components → components}/GrImageViewer/composables/useWheelGesture.d.ts +0 -0
  765. /package/dist/types/{src/components → components}/GrImageViewer/composables/useZoomPan.d.ts +0 -0
  766. /package/dist/types/{src/components → components}/GrImageViewer/config.d.ts +0 -0
  767. /package/dist/types/{src/components → components}/GrImageViewer/grImageViewerStyles.d.ts +0 -0
  768. /package/dist/types/{src/components → components}/GrImageViewer/index.d.ts +0 -0
  769. /package/dist/types/{src/components → components}/GrImageViewer/safelist.d.ts +0 -0
  770. /package/dist/types/{src/components → components}/GrInput/GrInput.vue.d.ts +0 -0
  771. /package/dist/types/{src/components → components}/GrInput/config.d.ts +0 -0
  772. /package/dist/types/{src/components → components}/GrInput/defaults.d.ts +0 -0
  773. /package/dist/types/{src/components → components}/GrInput/grInputStyles.d.ts +0 -0
  774. /package/dist/types/{src/components → components}/GrInput/index.d.ts +0 -0
  775. /package/dist/types/{src/components → components}/GrInput/safelist.d.ts +0 -0
  776. /package/dist/types/{src/components → components}/GrInputTag/GrInputTag.vue.d.ts +0 -0
  777. /package/dist/types/{src/components → components}/GrInputTag/config.d.ts +0 -0
  778. /package/dist/types/{src/components → components}/GrInputTag/defaults.d.ts +0 -0
  779. /package/dist/types/{src/components → components}/GrInputTag/grInputTagStyles.d.ts +0 -0
  780. /package/dist/types/{src/components → components}/GrInputTag/index.d.ts +0 -0
  781. /package/dist/types/{src/components → components}/GrInputTag/safelist.d.ts +0 -0
  782. /package/dist/types/{src/components → components}/GrKbd/GrKbd.vue.d.ts +0 -0
  783. /package/dist/types/{src/components → components}/GrKbd/config.d.ts +0 -0
  784. /package/dist/types/{src/components → components}/GrKbd/defaults.d.ts +0 -0
  785. /package/dist/types/{src/components → components}/GrKbd/grKbdStyles.d.ts +0 -0
  786. /package/dist/types/{src/components → components}/GrKbd/index.d.ts +0 -0
  787. /package/dist/types/{src/components → components}/GrKbd/safelist.d.ts +0 -0
  788. /package/dist/types/{src/components → components}/GrLink/GrLink.vue.d.ts +0 -0
  789. /package/dist/types/{src/components → components}/GrLink/config.d.ts +0 -0
  790. /package/dist/types/{src/components → components}/GrLink/defaults.d.ts +0 -0
  791. /package/dist/types/{src/components → components}/GrLink/grLinkStyles.d.ts +0 -0
  792. /package/dist/types/{src/components → components}/GrLink/index.d.ts +0 -0
  793. /package/dist/types/{src/components → components}/GrLink/safelist.d.ts +0 -0
  794. /package/dist/types/{src/components → components}/GrList/GrList.vue.d.ts +0 -0
  795. /package/dist/types/{src/components → components}/GrList/GrListItem.vue.d.ts +0 -0
  796. /package/dist/types/{src/components → components}/GrList/config.d.ts +0 -0
  797. /package/dist/types/{src/components → components}/GrList/grListStyles.d.ts +0 -0
  798. /package/dist/types/{src/components → components}/GrList/index.d.ts +0 -0
  799. /package/dist/types/{src/components → components}/GrList/safelist.d.ts +0 -0
  800. /package/dist/types/{src/components → components}/GrLoading/GrLoading.vue.d.ts +0 -0
  801. /package/dist/types/{src/components → components}/GrLoading/config.d.ts +0 -0
  802. /package/dist/types/{src/components → components}/GrLoading/grLoadingStyles.d.ts +0 -0
  803. /package/dist/types/{src/components → components}/GrLoading/index.d.ts +0 -0
  804. /package/dist/types/{src/components → components}/GrLoading/safelist.d.ts +0 -0
  805. /package/dist/types/{src/components → components}/GrModal/GrModal.vue.d.ts +0 -0
  806. /package/dist/types/{src/components → components}/GrModal/config.d.ts +0 -0
  807. /package/dist/types/{src/components → components}/GrModal/context.d.ts +0 -0
  808. /package/dist/types/{src/components → components}/GrModal/defaults.d.ts +0 -0
  809. /package/dist/types/{src/components → components}/GrModal/grModalStyles.d.ts +0 -0
  810. /package/dist/types/{src/components → components}/GrModal/index.d.ts +0 -0
  811. /package/dist/types/{src/components → components}/GrModal/safelist.d.ts +0 -0
  812. /package/dist/types/{src/components → components}/GrNavbar/GrNavbar.vue.d.ts +0 -0
  813. /package/dist/types/{src/components → components}/GrNavbar/config.d.ts +0 -0
  814. /package/dist/types/{src/components → components}/GrNavbar/grNavbarStyles.d.ts +0 -0
  815. /package/dist/types/{src/components → components}/GrNavbar/index.d.ts +0 -0
  816. /package/dist/types/{src/components → components}/GrNavbar/safelist.d.ts +0 -0
  817. /package/dist/types/{src/components → components}/GrNumberInput/GrNumberInput.vue.d.ts +0 -0
  818. /package/dist/types/{src/components → components}/GrNumberInput/config.d.ts +0 -0
  819. /package/dist/types/{src/components → components}/GrNumberInput/defaults.d.ts +0 -0
  820. /package/dist/types/{src/components → components}/GrNumberInput/grNumberInputStyles.d.ts +0 -0
  821. /package/dist/types/{src/components → components}/GrNumberInput/index.d.ts +0 -0
  822. /package/dist/types/{src/components → components}/GrNumberInput/numberInputMath.d.ts +0 -0
  823. /package/dist/types/{src/components → components}/GrNumberInput/safelist.d.ts +0 -0
  824. /package/dist/types/{src/components → components}/GrPagination/GrPagination.vue.d.ts +0 -0
  825. /package/dist/types/{src/components → components}/GrPagination/config.d.ts +0 -0
  826. /package/dist/types/{src/components → components}/GrPagination/defaults.d.ts +0 -0
  827. /package/dist/types/{src/components → components}/GrPagination/grPaginationStyles.d.ts +0 -0
  828. /package/dist/types/{src/components → components}/GrPagination/index.d.ts +0 -0
  829. /package/dist/types/{src/components → components}/GrPagination/safelist.d.ts +0 -0
  830. /package/dist/types/{src/components → components}/GrPopover/GrPopover.vue.d.ts +0 -0
  831. /package/dist/types/{src/components → components}/GrPopover/config.d.ts +0 -0
  832. /package/dist/types/{src/components → components}/GrPopover/defaults.d.ts +0 -0
  833. /package/dist/types/{src/components → components}/GrPopover/grPopoverStyles.d.ts +0 -0
  834. /package/dist/types/{src/components → components}/GrPopover/index.d.ts +0 -0
  835. /package/dist/types/{src/components → components}/GrPopover/safelist.d.ts +0 -0
  836. /package/dist/types/{src/components → components}/GrProgressBar/GrProgressBar.vue.d.ts +0 -0
  837. /package/dist/types/{src/components → components}/GrProgressBar/config.d.ts +0 -0
  838. /package/dist/types/{src/components → components}/GrProgressBar/defaults.d.ts +0 -0
  839. /package/dist/types/{src/components → components}/GrProgressBar/grStyle.d.ts +0 -0
  840. /package/dist/types/{src/components → components}/GrProgressBar/index.d.ts +0 -0
  841. /package/dist/types/{src/components → components}/GrProgressBar/safelist.d.ts +0 -0
  842. /package/dist/types/{src/components → components}/GrProgressCircle/GrProgressCircle.vue.d.ts +0 -0
  843. /package/dist/types/{src/components → components}/GrProgressCircle/config.d.ts +0 -0
  844. /package/dist/types/{src/components → components}/GrProgressCircle/defaults.d.ts +0 -0
  845. /package/dist/types/{src/components → components}/GrProgressCircle/geometry.d.ts +0 -0
  846. /package/dist/types/{src/components → components}/GrProgressCircle/grProgressCircleStyles.d.ts +0 -0
  847. /package/dist/types/{src/components → components}/GrProgressCircle/safelist.d.ts +0 -0
  848. /package/dist/types/{src/components → components}/GrPromptDialog/GrPromptDialog.vue.d.ts +0 -0
  849. /package/dist/types/{src/components → components}/GrPromptDialog/config.d.ts +0 -0
  850. /package/dist/types/{src/components → components}/GrPromptDialog/defaults.d.ts +0 -0
  851. /package/dist/types/{src/components → components}/GrPromptDialog/index.d.ts +0 -0
  852. /package/dist/types/{src/components → components}/GrRadio/GrRadio.vue.d.ts +0 -0
  853. /package/dist/types/{src/components → components}/GrRadio/config.d.ts +0 -0
  854. /package/dist/types/{src/components → components}/GrRadio/defaults.d.ts +0 -0
  855. /package/dist/types/{src/components → components}/GrRadio/grRadioGroupContext.d.ts +0 -0
  856. /package/dist/types/{src/components → components}/GrRadio/grRadioStyles.d.ts +0 -0
  857. /package/dist/types/{src/components → components}/GrRadio/safelist.d.ts +0 -0
  858. /package/dist/types/{src/components → components}/GrRadioGroup/GrRadioGroup.vue.d.ts +0 -0
  859. /package/dist/types/{src/components → components}/GrRadioGroup/config.d.ts +0 -0
  860. /package/dist/types/{src/components → components}/GrRadioGroup/defaults.d.ts +0 -0
  861. /package/dist/types/{src/components → components}/GrRadioGroup/index.d.ts +0 -0
  862. /package/dist/types/{src/components → components}/GrRating/config.d.ts +0 -0
  863. /package/dist/types/{src/components → components}/GrRating/defaults.d.ts +0 -0
  864. /package/dist/types/{src/components → components}/GrRating/grRatingStyles.d.ts +0 -0
  865. /package/dist/types/{src/components → components}/GrRating/index.d.ts +0 -0
  866. /package/dist/types/{src/components → components}/GrRating/safelist.d.ts +0 -0
  867. /package/dist/types/{src/components → components}/GrResponseErrorBanner/GrFormErrorBanner.vue.d.ts +0 -0
  868. /package/dist/types/{src/components → components}/GrResponseErrorBanner/GrResponseErrorBanner.vue.d.ts +0 -0
  869. /package/dist/types/{src/components → components}/GrResponseErrorBanner/GrUploadErrorBanner.vue.d.ts +0 -0
  870. /package/dist/types/{src/components → components}/GrResponseErrorBanner/config.d.ts +0 -0
  871. /package/dist/types/{src/components → components}/GrResponseErrorBanner/parsers/abortErrorParser.d.ts +0 -0
  872. /package/dist/types/{src/components → components}/GrResponseErrorBanner/parsers/createResponseErrorClassifier.d.ts +0 -0
  873. /package/dist/types/{src/components → components}/GrResponseErrorBanner/parsers/fileValidationParser.d.ts +0 -0
  874. /package/dist/types/{src/components → components}/GrResponseErrorBanner/parsers/httpStatusParser.d.ts +0 -0
  875. /package/dist/types/{src/components → components}/GrResponseErrorBanner/parsers/index.d.ts +0 -0
  876. /package/dist/types/{src/components → components}/GrResponseErrorBanner/parsers/jsonApiErrorParser.d.ts +0 -0
  877. /package/dist/types/{src/components → components}/GrResponseErrorBanner/parsers/laravelValidationParser.d.ts +0 -0
  878. /package/dist/types/{src/components → components}/GrResponseErrorBanner/parsers/networkErrorParser.d.ts +0 -0
  879. /package/dist/types/{src/components → components}/GrResponseErrorBanner/parsers/normalizeError.d.ts +0 -0
  880. /package/dist/types/{src/components → components}/GrResponseErrorBanner/parsers/plainMessageParser.d.ts +0 -0
  881. /package/dist/types/{src/components → components}/GrResponseErrorBanner/parsers/problemDetailsParser.d.ts +0 -0
  882. /package/dist/types/{src/components → components}/GrResponseErrorBanner/responseError.defaults.d.ts +0 -0
  883. /package/dist/types/{src/components → components}/GrResponseErrorBanner/responseError.types.d.ts +0 -0
  884. /package/dist/types/{src/components → components}/GrResponseErrorBanner/useResponseError.d.ts +0 -0
  885. /package/dist/types/{src/components → components}/GrSegmented/GrSegmented.vue.d.ts +0 -0
  886. /package/dist/types/{src/components → components}/GrSegmented/config.d.ts +0 -0
  887. /package/dist/types/{src/components → components}/GrSegmented/defaults.d.ts +0 -0
  888. /package/dist/types/{src/components → components}/GrSegmented/grSegmentedStyles.d.ts +0 -0
  889. /package/dist/types/{src/components → components}/GrSegmented/safelist.d.ts +0 -0
  890. /package/dist/types/{src/components → components}/GrSelect/composables/useSelectNavigation.d.ts +0 -0
  891. /package/dist/types/{src/components → components}/GrSelect/composables/useSelectPanelItems.d.ts +0 -0
  892. /package/dist/types/{src/components → components}/GrSelect/composables/useSelectValues.d.ts +0 -0
  893. /package/dist/types/{src/components → components}/GrSelect/composables/useSelectVirtualization.d.ts +0 -0
  894. /package/dist/types/{src/components → components}/GrSelect/config.d.ts +0 -0
  895. /package/dist/types/{src/components → components}/GrSelect/defaults.d.ts +0 -0
  896. /package/dist/types/{src/components → components}/GrSelect/grSelectStyles.d.ts +0 -0
  897. /package/dist/types/{src/components → components}/GrSelect/index.d.ts +0 -0
  898. /package/dist/types/{src/components → components}/GrSelect/safelist.d.ts +0 -0
  899. /package/dist/types/{src/components → components}/GrSelect/selectValue.d.ts +0 -0
  900. /package/dist/types/{src/components → components}/GrSidebar/GrSidebar.vue.d.ts +0 -0
  901. /package/dist/types/{src/components → components}/GrSidebar/GrSidebarGroup.vue.d.ts +0 -0
  902. /package/dist/types/{src/components → components}/GrSidebar/GrSidebarItem.vue.d.ts +0 -0
  903. /package/dist/types/{src/components → components}/GrSidebar/config.d.ts +0 -0
  904. /package/dist/types/{src/components → components}/GrSidebar/grSidebarStyles.d.ts +0 -0
  905. /package/dist/types/{src/components → components}/GrSidebar/safelist.d.ts +0 -0
  906. /package/dist/types/{src/components → components}/GrSidebar/sidebarContext.d.ts +0 -0
  907. /package/dist/types/{src/components → components}/GrSkeleton/GrSkeleton.vue.d.ts +0 -0
  908. /package/dist/types/{src/components → components}/GrSkeleton/config.d.ts +0 -0
  909. /package/dist/types/{src/components → components}/GrSkeleton/grSkeletonStyles.d.ts +0 -0
  910. /package/dist/types/{src/components → components}/GrSlider/GrSlider.vue.d.ts +0 -0
  911. /package/dist/types/{src/components → components}/GrSlider/config.d.ts +0 -0
  912. /package/dist/types/{src/components → components}/GrSlider/defaults.d.ts +0 -0
  913. /package/dist/types/{src/components → components}/GrSlider/grSliderStyles.d.ts +0 -0
  914. /package/dist/types/{src/components → components}/GrSlider/index.d.ts +0 -0
  915. /package/dist/types/{src/components → components}/GrSlider/safelist.d.ts +0 -0
  916. /package/dist/types/{src/components → components}/GrSortableList/GrSortableList.vue.d.ts +0 -0
  917. /package/dist/types/{src/components → components}/GrSortableList/config.d.ts +0 -0
  918. /package/dist/types/{src/components → components}/GrSortableList/index.d.ts +0 -0
  919. /package/dist/types/{src/components → components}/GrSortableList/safelist.d.ts +0 -0
  920. /package/dist/types/{src/components → components}/GrSplitter/GrSplitter.vue.d.ts +0 -0
  921. /package/dist/types/{src/components → components}/GrSplitter/config.d.ts +0 -0
  922. /package/dist/types/{src/components → components}/GrSplitter/defaults.d.ts +0 -0
  923. /package/dist/types/{src/components → components}/GrSplitter/grSplitterStyles.d.ts +0 -0
  924. /package/dist/types/{src/components → components}/GrSplitter/safelist.d.ts +0 -0
  925. /package/dist/types/{src/components → components}/GrSplitter/splitterGeometry.d.ts +0 -0
  926. /package/dist/types/{src/components → components}/GrStatistic/config.d.ts +0 -0
  927. /package/dist/types/{src/components → components}/GrStatistic/countUp.d.ts +0 -0
  928. /package/dist/types/{src/components → components}/GrStatistic/defaults.d.ts +0 -0
  929. /package/dist/types/{src/components → components}/GrStatistic/formatStatisticValue.d.ts +0 -0
  930. /package/dist/types/{src/components → components}/GrStatistic/index.d.ts +0 -0
  931. /package/dist/types/{src/components → components}/GrStatistic/safelist.d.ts +0 -0
  932. /package/dist/types/{src/components → components}/GrSwitch/GrSwitch.vue.d.ts +0 -0
  933. /package/dist/types/{src/components → components}/GrSwitch/config.d.ts +0 -0
  934. /package/dist/types/{src/components → components}/GrSwitch/defaults.d.ts +0 -0
  935. /package/dist/types/{src/components → components}/GrSwitch/grSwitchStyles.d.ts +0 -0
  936. /package/dist/types/{src/components → components}/GrSwitch/index.d.ts +0 -0
  937. /package/dist/types/{src/components → components}/GrSwitch/safelist.d.ts +0 -0
  938. /package/dist/types/{src/components → components}/GrTabPanels/GrTabPanel.vue.d.ts +0 -0
  939. /package/dist/types/{src/components → components}/GrTabPanels/GrTabPanels.vue.d.ts +0 -0
  940. /package/dist/types/{src/components → components}/GrTabPanels/config.d.ts +0 -0
  941. /package/dist/types/{src/components → components}/GrTabPanels/context.d.ts +0 -0
  942. /package/dist/types/{src/components → components}/GrTable/GrTable.vue.d.ts +0 -0
  943. /package/dist/types/{src/components → components}/GrTable/config.d.ts +0 -0
  944. /package/dist/types/{src/components → components}/GrTable/defaults.d.ts +0 -0
  945. /package/dist/types/{src/components → components}/GrTable/grTableStyles.d.ts +0 -0
  946. /package/dist/types/{src/components → components}/GrTable/index.d.ts +0 -0
  947. /package/dist/types/{src/components → components}/GrTable/safelist.d.ts +0 -0
  948. /package/dist/types/{src/components → components}/GrTabs/config.d.ts +0 -0
  949. /package/dist/types/{src/components → components}/GrTabs/defaults.d.ts +0 -0
  950. /package/dist/types/{src/components → components}/GrTabs/grTabsStyles.d.ts +0 -0
  951. /package/dist/types/{src/components → components}/GrTabs/safelist.d.ts +0 -0
  952. /package/dist/types/{src/components → components}/GrTextarea/GrTextarea.vue.d.ts +0 -0
  953. /package/dist/types/{src/components → components}/GrTextarea/config.d.ts +0 -0
  954. /package/dist/types/{src/components → components}/GrTextarea/defaults.d.ts +0 -0
  955. /package/dist/types/{src/components → components}/GrTextarea/grTextareaStyles.d.ts +0 -0
  956. /package/dist/types/{src/components → components}/GrTextarea/index.d.ts +0 -0
  957. /package/dist/types/{src/components → components}/GrTextarea/safelist.d.ts +0 -0
  958. /package/dist/types/{src/components → components}/GrTimeline/GrTimeline.vue.d.ts +0 -0
  959. /package/dist/types/{src/components → components}/GrTimeline/GrTimelineItem.vue.d.ts +0 -0
  960. /package/dist/types/{src/components → components}/GrTimeline/config.d.ts +0 -0
  961. /package/dist/types/{src/components → components}/GrTimeline/defaults.d.ts +0 -0
  962. /package/dist/types/{src/components → components}/GrTimeline/grTimelineContext.d.ts +0 -0
  963. /package/dist/types/{src/components → components}/GrTimeline/grTimelineStyles.d.ts +0 -0
  964. /package/dist/types/{src/components → components}/GrTimeline/safelist.d.ts +0 -0
  965. /package/dist/types/{src/components → components}/GrTimeline/timelineGroups.d.ts +0 -0
  966. /package/dist/types/{src/components → components}/GrToaster/GrToaster.vue.d.ts +0 -0
  967. /package/dist/types/{src/components → components}/GrToaster/config.d.ts +0 -0
  968. /package/dist/types/{src/components → components}/GrToaster/grToasterStyles.d.ts +0 -0
  969. /package/dist/types/{src/components → components}/GrToaster/index.d.ts +0 -0
  970. /package/dist/types/{src/components → components}/GrToaster/safelist.d.ts +0 -0
  971. /package/dist/types/{src/components → components}/GrTooltip/GrTooltip.vue.d.ts +0 -0
  972. /package/dist/types/{src/components → components}/GrTooltip/config.d.ts +0 -0
  973. /package/dist/types/{src/components → components}/GrTooltip/defaults.d.ts +0 -0
  974. /package/dist/types/{src/components → components}/GrTooltip/grTooltipStyles.d.ts +0 -0
  975. /package/dist/types/{src/components → components}/GrTooltip/index.d.ts +0 -0
  976. /package/dist/types/{src/components → components}/GrTooltip/safelist.d.ts +0 -0
  977. /package/dist/types/{src/components → components}/GrTree/GrTree.vue.d.ts +0 -0
  978. /package/dist/types/{src/components → components}/GrTree/config.d.ts +0 -0
  979. /package/dist/types/{src/components → components}/GrTree/defaults.d.ts +0 -0
  980. /package/dist/types/{src/components → components}/GrTree/grTreeChecking.d.ts +0 -0
  981. /package/dist/types/{src/components → components}/GrTree/grTreeDataAdapter.d.ts +0 -0
  982. /package/dist/types/{src/components → components}/GrTree/grTreeInteractionContext.d.ts +0 -0
  983. /package/dist/types/{src/components → components}/GrTree/grTreeStore.d.ts +0 -0
  984. /package/dist/types/{src/components → components}/GrTree/grTreeStyles.d.ts +0 -0
  985. /package/dist/types/{src/components → components}/GrTree/grTreeTypes.d.ts +0 -0
  986. /package/dist/types/{src/components → components}/GrTree/index.d.ts +0 -0
  987. /package/dist/types/{src/components → components}/GrTreeSelect/config.d.ts +0 -0
  988. /package/dist/types/{src/components → components}/GrTreeSelect/defaults.d.ts +0 -0
  989. /package/dist/types/{src/components → components}/GrTreeSelect/grTreeSelectStyles.d.ts +0 -0
  990. /package/dist/types/{src/components → components}/GrTreeSelect/grTreeSelectTypes.d.ts +0 -0
  991. /package/dist/types/{src/components → components}/GrTreeSelect/index.d.ts +0 -0
  992. /package/dist/types/{src/components → components}/GrTreeSelect/safelist.d.ts +0 -0
  993. /package/dist/types/{src/components → components}/shared/classTokens.d.ts +0 -0
  994. /package/dist/types/{src/components → components}/shared/hotkey.d.ts +0 -0
  995. /package/dist/types/{src/components → components}/shared/hotkeyTokens.d.ts +0 -0
  996. /package/dist/types/{src/components → components}/shared/instance.d.ts +0 -0
  997. /package/dist/types/{src/components → components}/shared/optionFilter.d.ts +0 -0
  998. /package/dist/types/{src/components → components}/shared/sizes.d.ts +0 -0
  999. /package/dist/types/{src/components → components}/shared/slotNodes.d.ts +0 -0
  1000. /package/dist/types/{src/components → components}/shared/tones.d.ts +0 -0
  1001. /package/dist/types/{src/composables → composables}/internal/dragSortGeometry.d.ts +0 -0
  1002. /package/dist/types/{src/composables → composables}/internal/focusables.d.ts +0 -0
  1003. /package/dist/types/{src/composables → composables}/internal/inert.d.ts +0 -0
  1004. /package/dist/types/{src/composables → composables}/internal/overlayStack.d.ts +0 -0
  1005. /package/dist/types/{src/composables → composables}/internal/portalRoot.d.ts +0 -0
  1006. /package/dist/types/{src/composables → composables}/internal/useAddonMeasurement.d.ts +0 -0
  1007. /package/dist/types/{src/composables → composables}/internal/useControlAddons.d.ts +0 -0
  1008. /package/dist/types/{src/composables → composables}/internal/useControlledOpen.d.ts +0 -0
  1009. /package/dist/types/{src/composables → composables}/internal/useFilePreviews.d.ts +0 -0
  1010. /package/dist/types/{src/composables → composables}/internal/useFocusWithin.d.ts +0 -0
  1011. /package/dist/types/{src/composables → composables}/internal/useInertOthers.d.ts +0 -0
  1012. /package/dist/types/{src/composables → composables}/internal/useModalOverlay.d.ts +0 -0
  1013. /package/dist/types/{src/composables → composables}/internal/useOverlayPresence.d.ts +0 -0
  1014. /package/dist/types/{src/composables → composables}/internal/useScrollLock.d.ts +0 -0
  1015. /package/dist/types/{src/composables → composables}/internal/useTeleportEnabled.d.ts +0 -0
  1016. /package/dist/types/{src/composables → composables}/useAnnouncer.d.ts +0 -0
  1017. /package/dist/types/{src/composables → composables}/useComboboxNavigation.d.ts +0 -0
  1018. /package/dist/types/{src/composables → composables}/useDismissible.d.ts +0 -0
  1019. /package/dist/types/{src/composables → composables}/useDragGesture.d.ts +0 -0
  1020. /package/dist/types/{src/composables → composables}/useDragSort.d.ts +0 -0
  1021. /package/dist/types/{src/composables → composables}/useFloating.d.ts +0 -0
  1022. /package/dist/types/{src/composables → composables}/useFocusTrap.d.ts +0 -0
  1023. /package/dist/types/{src/composables → composables}/useGrComponentConfig.d.ts +0 -0
  1024. /package/dist/types/{src/composables → composables}/useGrFormControl.d.ts +0 -0
  1025. /package/dist/types/{src/composables → composables}/useGranularityTranslations.d.ts +0 -0
  1026. /package/dist/types/{src/composables → composables}/useOverlayLayer.d.ts +0 -0
  1027. /package/dist/types/{src/composables → composables}/usePortalTarget.d.ts +0 -0
  1028. /package/dist/types/{src/composables → composables}/useRovingFocus.d.ts +0 -0
  1029. /package/dist/types/{src/composables → composables}/useTheme.d.ts +0 -0
  1030. /package/dist/types/{src/composables → composables}/useToast.d.ts +0 -0
  1031. /package/dist/types/{src/composables → composables}/useVirtualList.d.ts +0 -0
  1032. /package/dist/types/{src/directives → directives}/autofocus.d.ts +0 -0
  1033. /package/dist/types/{src/directives → directives}/autosize.d.ts +0 -0
  1034. /package/dist/types/{src/directives → directives}/clickOutside.d.ts +0 -0
  1035. /package/dist/types/{src/directives → directives}/dropzone.d.ts +0 -0
  1036. /package/dist/types/{src/directives → directives}/globalDirectives.d.ts +0 -0
  1037. /package/dist/types/{src/directives → directives}/hotkey.d.ts +0 -0
  1038. /package/dist/types/{src/directives → directives}/index.d.ts +0 -0
  1039. /package/dist/types/{src/directives → directives}/loading.d.ts +0 -0
  1040. /package/dist/types/{src/fileValidation → fileValidation}/FileValidationError.d.ts +0 -0
  1041. /package/dist/types/{src/fileValidation → fileValidation}/acceptValidator.d.ts +0 -0
  1042. /package/dist/types/{src/fileValidation → fileValidation}/allowedExtensionsValidator.d.ts +0 -0
  1043. /package/dist/types/{src/fileValidation → fileValidation}/allowedMimeTypesValidator.d.ts +0 -0
  1044. /package/dist/types/{src/fileValidation → fileValidation}/i18n.d.ts +0 -0
  1045. /package/dist/types/{src/fileValidation → fileValidation}/index.d.ts +0 -0
  1046. /package/dist/types/{src/fileValidation → fileValidation}/matchAccept.d.ts +0 -0
  1047. /package/dist/types/{src/fileValidation → fileValidation}/maxCountValidator.d.ts +0 -0
  1048. /package/dist/types/{src/fileValidation → fileValidation}/maxFileSize.d.ts +0 -0
  1049. /package/dist/types/{src/fileValidation → fileValidation}/maxTotalSizeBytesValidator.d.ts +0 -0
  1050. /package/dist/types/{src/fileValidation → fileValidation}/runFileValidators.d.ts +0 -0
  1051. /package/dist/types/{src/fileValidation → fileValidation}/types.d.ts +0 -0
  1052. /package/dist/types/{src/granular-provider → granular-provider}/index.d.ts +0 -0
  1053. /package/dist/types/{src/granular-provider → granular-provider}/node.d.ts +0 -0
  1054. /package/dist/types/{src/granular-provider → granular-provider}/shared.d.ts +0 -0
  1055. /package/dist/types/{src/i18n → i18n}/adapter.d.ts +0 -0
  1056. /package/dist/types/{src/i18n → i18n}/all.d.ts +0 -0
  1057. /package/dist/types/{src/i18n → i18n}/index.d.ts +0 -0
  1058. /package/dist/types/{src/i18n → i18n}/messages/const.d.ts +0 -0
  1059. /package/dist/types/{src/i18n → i18n}/messages/en.d.ts +0 -0
  1060. /package/dist/types/{src/i18n → i18n}/messages/es.d.ts +0 -0
  1061. /package/dist/types/{src/i18n → i18n}/messages/index.d.ts +0 -0
  1062. /package/dist/types/{src/i18n → i18n}/messages/ru.d.ts +0 -0
  1063. /package/dist/types/{src/index.d.ts → index.d.ts} +0 -0
  1064. /package/dist/types/{src/internal → internal}/granularityFormat.d.ts +0 -0
  1065. /package/dist/types/{src/internal → internal}/granularityI18n.d.ts +0 -0
  1066. /package/dist/types/{src/internal → internal}/keyboard.d.ts +0 -0
  1067. /package/dist/types/{src/tokens → tokens}/generated.d.ts +0 -0
  1068. /package/dist/types/{src/tokens → tokens}/index.d.ts +0 -0
  1069. /package/dist/types/{src/vue → vue}/index.d.ts +0 -0
  1070. /package/dist/types/{src/vue → vue}/plugin.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GrInputTag-Dghhg03-.js","names":[],"sources":["../../../../src/components/GrInputTag/GrInputTag.vue","../../../../src/components/GrInputTag/GrInputTag.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, nextTick, ref } from 'vue'\n\nimport GrBadge from '../GrBadge/GrBadge.vue'\nimport type { GrBadgeRadius, GrBadgeSize, GrBadgeTone } from '../GrBadge'\nimport GrIcon from '../GrIcon/GrIcon.vue'\nimport IconClose from '~icons/lucide/x'\nimport IconLoader from '~icons/lucide/loader-2'\nimport { useGrComponentProp, useGrComponentSize } from '../GrConfigProvider/context'\nimport { useControlAddons } from '../../composables/internal/useControlAddons'\nimport { useGrFormFieldContext } from '../GrFormField/context'\nimport { useAnnouncer } from '../../composables/useAnnouncer'\nimport { useRovingFocus } from '../../composables/useRovingFocus'\nimport { useGrFormControl } from '../../composables/useGrFormControl'\nimport { useFocusWithin } from '../../composables/internal/useFocusWithin'\nimport { useGranularityTranslations } from '../../internal/granularityI18n'\nimport { isComposingEvent } from '../../internal/keyboard'\n\nimport {\n clearButtonClass,\n grInputTagInputClass,\n grInputTagWrapperClass,\n removeButtonClass,\n spinnerClass,\n type GrInputTagSize,\n type GrInputTagState,\n} from './grInputTagStyles'\n\nexport type { GrInputTagSize, GrInputTagState } from './grInputTagStyles'\n\nconst REGEX_SPECIAL_CHAR_RE = /[.*+?^${}()|[\\]\\\\]/g\n\n/**\n * Props for {@link GrInputTag}.\n * Tag-input primitive: renders a set of badges with an inline `<input>` for entering new tags.\n * Splits input by configurable `separators`, supports paste, Enter and Backspace editing.\n */\nexport interface GrInputTagProps {\n modelValue: string[]\n placeholder?: string\n disabled?: boolean\n readonly?: boolean\n invalid?: boolean\n /** Обязательное поле (`aria-required`). Складывается с `required` у `GrFormField`. */\n required?: boolean\n state?: GrInputTagState\n size?: GrInputTagSize\n separators?: string[]\n allowDuplicates?: boolean\n trim?: boolean\n max?: number\n addOnBlur?: boolean\n clearInputOnAdd?: boolean\n /**\n * Проверка тега перед добавлением. Может быть асинхронной (проверка на\n * сервере). Отклонённый тег не добавляется и уходит в событие `reject`.\n */\n beforeAdd?: (tag: string) => boolean | Promise<boolean>\n /** Кнопка «снести все теги». Настраивается через `GrConfigProvider`. */\n clearable?: boolean\n /** Фоновая работа: спиннер + `aria-busy`. Асинхронный `beforeAdd` поднимает его сам. */\n loading?: boolean\n tagTone?: GrBadgeTone\n tagDark?: boolean\n tagSize?: GrBadgeSize\n tagRadius?: GrBadgeRadius\n tagClosable?: boolean\n /** i18n-friendly aria-label for the per-tag remove button. */\n removeTagLabel?: string\n /** i18n aria-label кнопки «снести все». */\n clearAllLabel?: string\n /**\n * Имя контрола, когда он используется вне `GrFormField`. Внутри поля имя даёт\n * связка с его `<label for>` — там проп не нужен. Без того и другого у инпута\n * нет доступного имени вовсе: placeholder именем не считается.\n */\n ariaLabel?: string\n /** Имя для нативной формы: hidden input на каждый тег. */\n name?: string\n /**\n * Ширины аддонов `prefix`/`suffix` — общий контракт контролов пакета\n * (`docs/form-controls.md`).\n */\n prefixMinWidth?: string\n prefixMaxWidth?: string\n suffixMinWidth?: string\n suffixMaxWidth?: string\n prefixFixed?: boolean\n suffixFixed?: boolean\n}\n\nexport interface GrInputTagEmits {\n (e: 'update:modelValue', value: string[]): void\n (e: 'add', value: string): void\n (e: 'remove', value: string, index: number): void\n /** Тег не прошёл `beforeAdd`. */\n (e: 'reject', value: string): void\n /** Набор снесён кнопкой «очистить». */\n (e: 'clear'): void\n /** Набор тегов изменился. */\n (e: 'change', value: string[]): void\n (e: 'focus', event: FocusEvent): void\n (e: 'blur', event: FocusEvent): void\n}\n\nconst props = withDefaults(\n defineProps<GrInputTagProps>(),\n {\n placeholder: undefined,\n disabled: false,\n readonly: false,\n invalid: false,\n required: false,\n state: 'default',\n // Настраивается через `GrConfigProvider`; дефолт — в резолвере ниже.\n size: undefined,\n separators: () => [','],\n allowDuplicates: false,\n trim: true,\n max: undefined,\n addOnBlur: false,\n clearInputOnAdd: true,\n beforeAdd: undefined,\n clearable: undefined,\n loading: false,\n tagTone: 'neutral',\n tagDark: false,\n tagSize: 'md',\n tagRadius: 'round',\n tagClosable: true,\n removeTagLabel: undefined,\n clearAllLabel: undefined,\n ariaLabel: undefined,\n name: undefined,\n },\n)\n\nconst emit = defineEmits<GrInputTagEmits>()\ndefineSlots<{\n /** Аддон слева от чипов: иконка, метка. */\n prefix?: () => any\n /** Аддон справа, перед кнопкой очистки. */\n suffix?: () => any\n /** Свой чип: `remove` снимает значение. */\n tag?: (props: { tag: string, index: number, remove: () => void }) => any\n}>()\n\n\n// Fallback из контекста `GrFormField` (id/aria-describedby/invalid/required) —\n// как у GrInput и GrSelect: контрол не знает про форму, знает только про поле.\nconst field = useGrFormFieldContext()\nconst resolvedId = computed(() => field?.id.value)\nconst describedBy = computed(() => field?.describedById.value)\nconst {\n disabled: isDisabled,\n invalid: isInvalid,\n required: isRequired,\n readonly: isReadonly,\n} = useGrFormControl(() => props)\n\n// Эффективные значения: локальный проп → `GrConfigProvider` → дефолт компонента.\n/** Ширина аддона по умолчанию — та же лестница, что у `GrInput`. */\nconst ADDON_MIN_WIDTH_BY_SIZE: Record<GrInputTagSize, string> = {\n xs: '2rem',\n sm: '2.25rem',\n md: '2.5rem',\n lg: '3rem',\n}\n\nconst resolvedSize = useGrComponentSize(() => props.size, { component: 'GrInputTag' })\n\n/**\n * Аддоны — флекс-соседи поля: оболочка тегового поля и так флекс-строка с\n * бейджами, поэтому места паддингом резервировать не нужно.\n */\nconst { hasPrefix, hasSuffix, prefixEl, suffixEl, prefixStyle, suffixStyle } = useControlAddons(() => props, {\n defaultMinWidth: () => ADDON_MIN_WIDTH_BY_SIZE[resolvedSize.value],\n paddingX: () => '0px',\n})\nconst resolvedClearable = useGrComponentProp('GrInputTag', 'clearable', () => props.clearable, false)\n\nconst { t } = useGranularityTranslations()\nconst resolvedClearAllLabel = computed(() => props.clearAllLabel ?? t('gr.inputTag.clearAll', 'Clear all tags'))\n\nfunction removeTagLabelFor(tag: string): string {\n // Безликое «Remove tag» на двадцати кнопках подряд не даёт выбрать нужную:\n // имя обязано называть сам тег.\n return props.removeTagLabel ?? t('gr.inputTag.removeTagNamed', 'Remove tag {tag}', { tag })\n}\n\nconst inputValue = ref('')\nconst inputEl = ref<HTMLInputElement | null>(null)\nconst rootEl = ref<HTMLElement | null>(null)\n\n// Внутри корня фокус ходит между полем и кнопками удаления чипов: без границы\n// каждое такое перемещение давало бы потребителю пару `blur` + `focus`.\nconst { onFocusIn, onFocusOut } = useFocusWithin(rootEl, {\n enter: event => emit('focus', event),\n leave: event => emit('blur', event),\n})\nconst removeEls = ref<HTMLButtonElement[]>([])\n\nfunction setRemoveEl(index: number) {\n return (el: unknown): void => {\n removeEls.value[index] = el as HTMLButtonElement\n }\n}\n\nfunction focus(): void {\n inputEl.value?.focus()\n}\n\nfunction blur(): void {\n inputEl.value?.blur()\n}\n\nconst isMaxed = computed(() => props.max !== undefined && props.modelValue.length >= props.max)\nconst canEdit = computed(() => !isDisabled.value && !isReadonly.value)\nconst showRemove = computed(() => props.tagClosable && canEdit.value)\n\n// Добавление, удаление и достигнутый предел — события, а не состояние виджета:\n// показывать их негде, объявить нужно. Это работа общего живого региона.\nconst { announce } = useAnnouncer()\n\n/**\n * Roving tabindex по крестикам: двадцать тегов давали двадцать одну остановку\n * `Tab`. В таб-порядке ровно один крестик, между ними ходят стрелками.\n *\n * Адресация индексом, а не значением тега: теги допускают повторы, и по\n * значению два одинаковых чипа было бы не различить.\n */\nconst tagIndexes = computed(() => props.modelValue.map((_, index) => index))\n\nconst roving = useRovingFocus<number>({\n items: () => tagIndexes.value,\n elementFor: index => removeEls.value[index],\n orientation: () => 'horizontal',\n // Ряд чипов — не кольцо: у него есть край, и за краем стоит поле ввода.\n wrap: () => false,\n onOverflow: (edge) => {\n // За последним чипом — поле ввода: продолжение того же ряда. Слева от\n // первого — начало строки, фокус остаётся на месте.\n if (edge === 'end') focus()\n return true\n },\n // Удаление чипа перерисовывает ряд: без ожидания фокус уехал бы на узел,\n // которого уже нет.\n beforeFocus: () => nextTick(),\n})\n\nasync function focusTag(index: number): Promise<void> {\n const last = props.modelValue.length - 1\n if (last < 0) {\n focus()\n return\n }\n\n await roving.focusKey(Math.min(Math.max(index, 0), last))\n}\n\nfunction escapeRegexChar(ch: string): string {\n return ch.replace(REGEX_SPECIAL_CHAR_RE, '\\\\$&')\n}\n\nconst splitRegex = computed(() => {\n const seps = (props.separators ?? []).filter(Boolean).map(s => s[0]!)\n const uniq = [...new Set([...seps, '\\n', '\\r', '\\t'])]\n const body = uniq.map(escapeRegexChar).join('')\n return new RegExp(`[${body}]+`, 'g')\n})\n\nfunction normalizeTag(raw: string): string {\n return props.trim ? raw.trim() : raw\n}\n\nfunction splitToTags(raw: string): string[] {\n return raw\n .split(splitRegex.value)\n .map(v => normalizeTag(v))\n .filter(Boolean)\n}\n\nfunction addMany(rawTags: string[]): boolean {\n if (!canEdit.value || isMaxed.value)\n return false\n\n const next = props.modelValue.slice()\n const added: string[] = []\n\n for (const raw of rawTags) {\n const tag = normalizeTag(raw)\n if (!tag)\n continue\n\n if (!props.allowDuplicates && next.includes(tag))\n continue\n\n if (props.max !== undefined && next.length >= props.max)\n break\n\n next.push(tag)\n added.push(tag)\n emit('add', tag)\n }\n\n if (!added.length)\n return false\n\n emit('update:modelValue', next)\n emit('change', next)\n announce(added.length === 1\n ? t('gr.inputTag.added', 'Tag added: {tag}', { tag: added[0]! })\n : t('gr.inputTag.addedMany', '{count} tags added', { count: added.length }))\n\n return true\n}\n\n// Счётчик запуска: пока идёт асинхронная проверка, пользователь успевает нажать\n// Enter второй раз — результат устаревшей проверки дописывать нельзя.\nlet validationRun = 0\nconst validating = ref(false)\nconst isBusy = computed(() => props.loading || validating.value)\n\nasync function filterAllowed(tags: string[], run: number): Promise<string[] | null> {\n const check = props.beforeAdd\n if (!check)\n return tags\n\n const allowed: string[] = []\n\n for (const tag of tags) {\n const ok = await check(tag)\n if (run !== validationRun)\n return null\n\n if (ok)\n allowed.push(tag)\n else\n emit('reject', tag)\n }\n\n return allowed\n}\n\nasync function commitInput(): Promise<void> {\n if (!canEdit.value || !inputValue.value)\n return\n\n if (isMaxed.value) {\n announce(t('gr.inputTag.limitReached', 'Tag limit reached'))\n return\n }\n\n const raw = inputValue.value\n const tags = splitToTags(raw)\n if (!tags.length)\n return\n\n const run = ++validationRun\n validating.value = Boolean(props.beforeAdd)\n\n const allowed = await filterAllowed(tags, run)\n\n if (run === validationRun)\n validating.value = false\n\n if (allowed === null || !allowed.length)\n return\n\n const changed = addMany(allowed)\n // Значение могло измениться, пока шла проверка: стирать чужой ввод нельзя.\n if (changed && props.clearInputOnAdd && inputValue.value === raw)\n inputValue.value = ''\n}\n\nfunction removeAt(index: number): void {\n if (!canEdit.value)\n return\n\n const next = props.modelValue.slice()\n const removed = next[index]\n if (removed === undefined)\n return\n\n next.splice(index, 1)\n emit('update:modelValue', next)\n emit('change', next)\n emit('remove', removed, index)\n announce(t('gr.inputTag.removed', 'Tag removed: {tag}', { tag: removed }))\n}\n\n/** Удаление с клавиатуры: фокус переезжает на соседний чип, а не пропадает. */\nasync function removeAtFromKeyboard(index: number): Promise<void> {\n removeAt(index)\n await nextTick()\n\n if (props.modelValue.length === 0) {\n focus()\n return\n }\n\n await focusTag(Math.min(index, props.modelValue.length - 1))\n}\n\nfunction clearAll(): void {\n if (!canEdit.value || props.modelValue.length === 0)\n return\n\n emit('update:modelValue', [])\n emit('change', [])\n emit('clear')\n announce(t('gr.inputTag.cleared', 'All tags removed'))\n focus()\n}\n\nfunction onInput(e: Event): void {\n inputValue.value = (e.target as HTMLInputElement).value\n}\n\nfunction onKeydown(e: KeyboardEvent): void {\n // Enter/сепаратор во время IME-композиции коммитят её, а не тег.\n if (isComposingEvent(e))\n return\n if (!canEdit.value)\n return\n\n if (e.key === 'Enter') {\n e.preventDefault()\n void commitInput()\n return\n }\n\n if ((props.separators ?? []).includes(e.key)) {\n e.preventDefault()\n void commitInput()\n return\n }\n\n if (inputValue.value.length === 0 && props.modelValue.length > 0) {\n if (e.key === 'Backspace') {\n e.preventDefault()\n removeAt(props.modelValue.length - 1)\n return\n }\n\n // Из пустого поля стрелка влево уводит на последний чип — дальше по чипам\n // работают те же стрелки, `Tab` для этого не нужен.\n if (e.key === 'ArrowLeft') {\n e.preventDefault()\n void focusTag(props.modelValue.length - 1)\n }\n }\n}\n\nfunction onTagKeydown(e: KeyboardEvent, index: number): void {\n if (roving.handleNavigationKeys(e)) {\n return\n }\n\n if (e.key === 'Delete' || e.key === 'Backspace') {\n e.preventDefault()\n void removeAtFromKeyboard(index)\n }\n}\n\nfunction onBlur(): void {\n if (props.addOnBlur)\n void commitInput()\n}\n\nfunction onPaste(e: ClipboardEvent): void {\n if (!canEdit.value || isMaxed.value)\n return\n\n const pasted = e.clipboardData?.getData('text')\n if (!pasted)\n return\n\n const tags = splitToTags(pasted)\n if (tags.length <= 1)\n return\n\n e.preventDefault()\n\n const run = ++validationRun\n validating.value = Boolean(props.beforeAdd)\n\n void filterAllowed(tags, run).then((allowed) => {\n if (run === validationRun)\n validating.value = false\n\n if (allowed?.length)\n addMany(allowed)\n })\n}\n\nconst wrapperClassName = computed(() => {\n return grInputTagWrapperClass({\n size: resolvedSize.value,\n state: props.state,\n invalid: isInvalid.value,\n disabled: isDisabled.value,\n })\n})\n\nconst inputClassName = computed(() => grInputTagInputClass(resolvedSize.value))\n\nconst showClearAll = computed(() => resolvedClearable.value && canEdit.value && props.modelValue.length > 0)\n\nconst placeholderText = computed(() => props.modelValue.length > 0 ? undefined : props.placeholder)\n\ndefineExpose({ focus, blur, clear: clearAll })\n</script>\n\n<template>\n <div\n ref=\"rootEl\"\n data-gr-input-tag\n data-testid=\"gr-input-tag\"\n :class=\"wrapperClassName\"\n @click=\"focus\"\n @focusin=\"onFocusIn\"\n @focusout=\"onFocusOut\"\n >\n <span\n v-if=\"hasPrefix\"\n ref=\"prefixEl\"\n data-gr-input-tag-prefix\n class=\"inline-flex shrink-0 items-center justify-center text-[var(--gr-muted-fg)]\"\n :style=\"prefixStyle\"\n >\n <slot name=\"prefix\" />\n </span>\n\n <!-- Нативная форма: hidden на каждый тег — стандартная сериализация набора. -->\n <template v-if=\"name\">\n <input\n v-for=\"(tag, tagIndex) in modelValue\"\n :key=\"`hidden-${tagIndex}`\"\n type=\"hidden\"\n :name=\"name\"\n :value=\"tag\"\n >\n </template>\n <!--\n `display: contents` — список нужен ради роли, а не ради раскладки: чипы\n обязаны переноситься в одном потоке с полем ввода.\n -->\n <span v-if=\"modelValue.length\" role=\"list\" class=\"contents\">\n <GrBadge\n v-for=\"(tag, i) in modelValue\"\n :key=\"`${tag}-${i}`\"\n role=\"listitem\"\n :tone=\"tagTone\"\n :dark=\"tagDark\"\n :size=\"tagSize\"\n :radius=\"tagRadius\"\n data-gr-input-tag-item\n data-testid=\"gr-input-tag-item\"\n :data-index=\"i\"\n >\n <span class=\"inline-flex items-center gap-1 align-middle\">\n <slot name=\"tag\" :tag=\"tag\" :index=\"i\" :remove=\"() => removeAt(i)\">\n <span class=\"truncate max-w-[18rem]\">{{ tag }}</span>\n </slot>\n\n <button\n v-if=\"showRemove\"\n :ref=\"setRemoveEl(i)\"\n type=\"button\"\n :class=\"removeButtonClass\"\n :aria-label=\"removeTagLabelFor(tag)\"\n :tabindex=\"roving.tabindexFor(i)\"\n data-gr-input-tag-remove\n data-testid=\"gr-input-tag-remove\"\n :data-index=\"i\"\n @mousedown.prevent.stop\n @focus=\"roving.setActive(i)\"\n @keydown=\"onTagKeydown($event, i)\"\n @click.stop=\"removeAt(i)\"\n >\n <GrIcon size=\"sm\">\n <IconClose />\n </GrIcon>\n </button>\n </span>\n </GrBadge>\n </span>\n\n <input\n :id=\"resolvedId\"\n ref=\"inputEl\"\n data-gr-input-tag-input\n data-testid=\"gr-input-tag-input\"\n :value=\"inputValue\"\n :disabled=\"isDisabled\"\n :readonly=\"isReadonly\"\n :placeholder=\"placeholderText\"\n :aria-label=\"ariaLabel\"\n :aria-describedby=\"describedBy\"\n :aria-required=\"isRequired ? 'true' : undefined\"\n :aria-readonly=\"isReadonly ? 'true' : undefined\"\n :aria-invalid=\"isInvalid ? 'true' : undefined\"\n :aria-busy=\"isBusy ? 'true' : undefined\"\n class=\"flex-1 min-w-[120px] bg-transparent border-none outline-none placeholder:text-[var(--gr-muted-fg)]\"\n :class=\"inputClassName\"\n @input=\"onInput\"\n @keydown=\"onKeydown\"\n @blur=\"onBlur\"\n @paste=\"onPaste\"\n >\n\n <span\n v-if=\"hasSuffix\"\n ref=\"suffixEl\"\n data-gr-input-tag-suffix\n class=\"inline-flex shrink-0 items-center justify-center text-[var(--gr-muted-fg)]\"\n :style=\"suffixStyle\"\n >\n <slot name=\"suffix\" />\n </span>\n\n <span\n v-if=\"isBusy\"\n data-gr-input-tag-spinner\n :class=\"spinnerClass\"\n aria-hidden=\"true\"\n >\n <GrIcon size=\"sm\">\n <IconLoader class=\"animate-spin\" />\n </GrIcon>\n </span>\n\n <button\n v-if=\"showClearAll\"\n type=\"button\"\n data-gr-input-tag-clear\n :class=\"clearButtonClass\"\n :aria-label=\"resolvedClearAllLabel\"\n @mousedown.prevent.stop\n @click.stop=\"clearAll\"\n >\n <GrIcon size=\"sm\">\n <IconClose />\n </GrIcon>\n </button>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed, nextTick, ref } from 'vue'\n\nimport GrBadge from '../GrBadge/GrBadge.vue'\nimport type { GrBadgeRadius, GrBadgeSize, GrBadgeTone } from '../GrBadge'\nimport GrIcon from '../GrIcon/GrIcon.vue'\nimport IconClose from '~icons/lucide/x'\nimport IconLoader from '~icons/lucide/loader-2'\nimport { useGrComponentProp, useGrComponentSize } from '../GrConfigProvider/context'\nimport { useControlAddons } from '../../composables/internal/useControlAddons'\nimport { useGrFormFieldContext } from '../GrFormField/context'\nimport { useAnnouncer } from '../../composables/useAnnouncer'\nimport { useRovingFocus } from '../../composables/useRovingFocus'\nimport { useGrFormControl } from '../../composables/useGrFormControl'\nimport { useFocusWithin } from '../../composables/internal/useFocusWithin'\nimport { useGranularityTranslations } from '../../internal/granularityI18n'\nimport { isComposingEvent } from '../../internal/keyboard'\n\nimport {\n clearButtonClass,\n grInputTagInputClass,\n grInputTagWrapperClass,\n removeButtonClass,\n spinnerClass,\n type GrInputTagSize,\n type GrInputTagState,\n} from './grInputTagStyles'\n\nexport type { GrInputTagSize, GrInputTagState } from './grInputTagStyles'\n\nconst REGEX_SPECIAL_CHAR_RE = /[.*+?^${}()|[\\]\\\\]/g\n\n/**\n * Props for {@link GrInputTag}.\n * Tag-input primitive: renders a set of badges with an inline `<input>` for entering new tags.\n * Splits input by configurable `separators`, supports paste, Enter and Backspace editing.\n */\nexport interface GrInputTagProps {\n modelValue: string[]\n placeholder?: string\n disabled?: boolean\n readonly?: boolean\n invalid?: boolean\n /** Обязательное поле (`aria-required`). Складывается с `required` у `GrFormField`. */\n required?: boolean\n state?: GrInputTagState\n size?: GrInputTagSize\n separators?: string[]\n allowDuplicates?: boolean\n trim?: boolean\n max?: number\n addOnBlur?: boolean\n clearInputOnAdd?: boolean\n /**\n * Проверка тега перед добавлением. Может быть асинхронной (проверка на\n * сервере). Отклонённый тег не добавляется и уходит в событие `reject`.\n */\n beforeAdd?: (tag: string) => boolean | Promise<boolean>\n /** Кнопка «снести все теги». Настраивается через `GrConfigProvider`. */\n clearable?: boolean\n /** Фоновая работа: спиннер + `aria-busy`. Асинхронный `beforeAdd` поднимает его сам. */\n loading?: boolean\n tagTone?: GrBadgeTone\n tagDark?: boolean\n tagSize?: GrBadgeSize\n tagRadius?: GrBadgeRadius\n tagClosable?: boolean\n /** i18n-friendly aria-label for the per-tag remove button. */\n removeTagLabel?: string\n /** i18n aria-label кнопки «снести все». */\n clearAllLabel?: string\n /**\n * Имя контрола, когда он используется вне `GrFormField`. Внутри поля имя даёт\n * связка с его `<label for>` — там проп не нужен. Без того и другого у инпута\n * нет доступного имени вовсе: placeholder именем не считается.\n */\n ariaLabel?: string\n /** Имя для нативной формы: hidden input на каждый тег. */\n name?: string\n /**\n * Ширины аддонов `prefix`/`suffix` — общий контракт контролов пакета\n * (`docs/form-controls.md`).\n */\n prefixMinWidth?: string\n prefixMaxWidth?: string\n suffixMinWidth?: string\n suffixMaxWidth?: string\n prefixFixed?: boolean\n suffixFixed?: boolean\n}\n\nexport interface GrInputTagEmits {\n (e: 'update:modelValue', value: string[]): void\n (e: 'add', value: string): void\n (e: 'remove', value: string, index: number): void\n /** Тег не прошёл `beforeAdd`. */\n (e: 'reject', value: string): void\n /** Набор снесён кнопкой «очистить». */\n (e: 'clear'): void\n /** Набор тегов изменился. */\n (e: 'change', value: string[]): void\n (e: 'focus', event: FocusEvent): void\n (e: 'blur', event: FocusEvent): void\n}\n\nconst props = withDefaults(\n defineProps<GrInputTagProps>(),\n {\n placeholder: undefined,\n disabled: false,\n readonly: false,\n invalid: false,\n required: false,\n state: 'default',\n // Настраивается через `GrConfigProvider`; дефолт — в резолвере ниже.\n size: undefined,\n separators: () => [','],\n allowDuplicates: false,\n trim: true,\n max: undefined,\n addOnBlur: false,\n clearInputOnAdd: true,\n beforeAdd: undefined,\n clearable: undefined,\n loading: false,\n tagTone: 'neutral',\n tagDark: false,\n tagSize: 'md',\n tagRadius: 'round',\n tagClosable: true,\n removeTagLabel: undefined,\n clearAllLabel: undefined,\n ariaLabel: undefined,\n name: undefined,\n },\n)\n\nconst emit = defineEmits<GrInputTagEmits>()\ndefineSlots<{\n /** Аддон слева от чипов: иконка, метка. */\n prefix?: () => any\n /** Аддон справа, перед кнопкой очистки. */\n suffix?: () => any\n /** Свой чип: `remove` снимает значение. */\n tag?: (props: { tag: string, index: number, remove: () => void }) => any\n}>()\n\n\n// Fallback из контекста `GrFormField` (id/aria-describedby/invalid/required) —\n// как у GrInput и GrSelect: контрол не знает про форму, знает только про поле.\nconst field = useGrFormFieldContext()\nconst resolvedId = computed(() => field?.id.value)\nconst describedBy = computed(() => field?.describedById.value)\nconst {\n disabled: isDisabled,\n invalid: isInvalid,\n required: isRequired,\n readonly: isReadonly,\n} = useGrFormControl(() => props)\n\n// Эффективные значения: локальный проп → `GrConfigProvider` → дефолт компонента.\n/** Ширина аддона по умолчанию — та же лестница, что у `GrInput`. */\nconst ADDON_MIN_WIDTH_BY_SIZE: Record<GrInputTagSize, string> = {\n xs: '2rem',\n sm: '2.25rem',\n md: '2.5rem',\n lg: '3rem',\n}\n\nconst resolvedSize = useGrComponentSize(() => props.size, { component: 'GrInputTag' })\n\n/**\n * Аддоны — флекс-соседи поля: оболочка тегового поля и так флекс-строка с\n * бейджами, поэтому места паддингом резервировать не нужно.\n */\nconst { hasPrefix, hasSuffix, prefixEl, suffixEl, prefixStyle, suffixStyle } = useControlAddons(() => props, {\n defaultMinWidth: () => ADDON_MIN_WIDTH_BY_SIZE[resolvedSize.value],\n paddingX: () => '0px',\n})\nconst resolvedClearable = useGrComponentProp('GrInputTag', 'clearable', () => props.clearable, false)\n\nconst { t } = useGranularityTranslations()\nconst resolvedClearAllLabel = computed(() => props.clearAllLabel ?? t('gr.inputTag.clearAll', 'Clear all tags'))\n\nfunction removeTagLabelFor(tag: string): string {\n // Безликое «Remove tag» на двадцати кнопках подряд не даёт выбрать нужную:\n // имя обязано называть сам тег.\n return props.removeTagLabel ?? t('gr.inputTag.removeTagNamed', 'Remove tag {tag}', { tag })\n}\n\nconst inputValue = ref('')\nconst inputEl = ref<HTMLInputElement | null>(null)\nconst rootEl = ref<HTMLElement | null>(null)\n\n// Внутри корня фокус ходит между полем и кнопками удаления чипов: без границы\n// каждое такое перемещение давало бы потребителю пару `blur` + `focus`.\nconst { onFocusIn, onFocusOut } = useFocusWithin(rootEl, {\n enter: event => emit('focus', event),\n leave: event => emit('blur', event),\n})\nconst removeEls = ref<HTMLButtonElement[]>([])\n\nfunction setRemoveEl(index: number) {\n return (el: unknown): void => {\n removeEls.value[index] = el as HTMLButtonElement\n }\n}\n\nfunction focus(): void {\n inputEl.value?.focus()\n}\n\nfunction blur(): void {\n inputEl.value?.blur()\n}\n\nconst isMaxed = computed(() => props.max !== undefined && props.modelValue.length >= props.max)\nconst canEdit = computed(() => !isDisabled.value && !isReadonly.value)\nconst showRemove = computed(() => props.tagClosable && canEdit.value)\n\n// Добавление, удаление и достигнутый предел — события, а не состояние виджета:\n// показывать их негде, объявить нужно. Это работа общего живого региона.\nconst { announce } = useAnnouncer()\n\n/**\n * Roving tabindex по крестикам: двадцать тегов давали двадцать одну остановку\n * `Tab`. В таб-порядке ровно один крестик, между ними ходят стрелками.\n *\n * Адресация индексом, а не значением тега: теги допускают повторы, и по\n * значению два одинаковых чипа было бы не различить.\n */\nconst tagIndexes = computed(() => props.modelValue.map((_, index) => index))\n\nconst roving = useRovingFocus<number>({\n items: () => tagIndexes.value,\n elementFor: index => removeEls.value[index],\n orientation: () => 'horizontal',\n // Ряд чипов — не кольцо: у него есть край, и за краем стоит поле ввода.\n wrap: () => false,\n onOverflow: (edge) => {\n // За последним чипом — поле ввода: продолжение того же ряда. Слева от\n // первого — начало строки, фокус остаётся на месте.\n if (edge === 'end') focus()\n return true\n },\n // Удаление чипа перерисовывает ряд: без ожидания фокус уехал бы на узел,\n // которого уже нет.\n beforeFocus: () => nextTick(),\n})\n\nasync function focusTag(index: number): Promise<void> {\n const last = props.modelValue.length - 1\n if (last < 0) {\n focus()\n return\n }\n\n await roving.focusKey(Math.min(Math.max(index, 0), last))\n}\n\nfunction escapeRegexChar(ch: string): string {\n return ch.replace(REGEX_SPECIAL_CHAR_RE, '\\\\$&')\n}\n\nconst splitRegex = computed(() => {\n const seps = (props.separators ?? []).filter(Boolean).map(s => s[0]!)\n const uniq = [...new Set([...seps, '\\n', '\\r', '\\t'])]\n const body = uniq.map(escapeRegexChar).join('')\n return new RegExp(`[${body}]+`, 'g')\n})\n\nfunction normalizeTag(raw: string): string {\n return props.trim ? raw.trim() : raw\n}\n\nfunction splitToTags(raw: string): string[] {\n return raw\n .split(splitRegex.value)\n .map(v => normalizeTag(v))\n .filter(Boolean)\n}\n\nfunction addMany(rawTags: string[]): boolean {\n if (!canEdit.value || isMaxed.value)\n return false\n\n const next = props.modelValue.slice()\n const added: string[] = []\n\n for (const raw of rawTags) {\n const tag = normalizeTag(raw)\n if (!tag)\n continue\n\n if (!props.allowDuplicates && next.includes(tag))\n continue\n\n if (props.max !== undefined && next.length >= props.max)\n break\n\n next.push(tag)\n added.push(tag)\n emit('add', tag)\n }\n\n if (!added.length)\n return false\n\n emit('update:modelValue', next)\n emit('change', next)\n announce(added.length === 1\n ? t('gr.inputTag.added', 'Tag added: {tag}', { tag: added[0]! })\n : t('gr.inputTag.addedMany', '{count} tags added', { count: added.length }))\n\n return true\n}\n\n// Счётчик запуска: пока идёт асинхронная проверка, пользователь успевает нажать\n// Enter второй раз — результат устаревшей проверки дописывать нельзя.\nlet validationRun = 0\nconst validating = ref(false)\nconst isBusy = computed(() => props.loading || validating.value)\n\nasync function filterAllowed(tags: string[], run: number): Promise<string[] | null> {\n const check = props.beforeAdd\n if (!check)\n return tags\n\n const allowed: string[] = []\n\n for (const tag of tags) {\n const ok = await check(tag)\n if (run !== validationRun)\n return null\n\n if (ok)\n allowed.push(tag)\n else\n emit('reject', tag)\n }\n\n return allowed\n}\n\nasync function commitInput(): Promise<void> {\n if (!canEdit.value || !inputValue.value)\n return\n\n if (isMaxed.value) {\n announce(t('gr.inputTag.limitReached', 'Tag limit reached'))\n return\n }\n\n const raw = inputValue.value\n const tags = splitToTags(raw)\n if (!tags.length)\n return\n\n const run = ++validationRun\n validating.value = Boolean(props.beforeAdd)\n\n const allowed = await filterAllowed(tags, run)\n\n if (run === validationRun)\n validating.value = false\n\n if (allowed === null || !allowed.length)\n return\n\n const changed = addMany(allowed)\n // Значение могло измениться, пока шла проверка: стирать чужой ввод нельзя.\n if (changed && props.clearInputOnAdd && inputValue.value === raw)\n inputValue.value = ''\n}\n\nfunction removeAt(index: number): void {\n if (!canEdit.value)\n return\n\n const next = props.modelValue.slice()\n const removed = next[index]\n if (removed === undefined)\n return\n\n next.splice(index, 1)\n emit('update:modelValue', next)\n emit('change', next)\n emit('remove', removed, index)\n announce(t('gr.inputTag.removed', 'Tag removed: {tag}', { tag: removed }))\n}\n\n/** Удаление с клавиатуры: фокус переезжает на соседний чип, а не пропадает. */\nasync function removeAtFromKeyboard(index: number): Promise<void> {\n removeAt(index)\n await nextTick()\n\n if (props.modelValue.length === 0) {\n focus()\n return\n }\n\n await focusTag(Math.min(index, props.modelValue.length - 1))\n}\n\nfunction clearAll(): void {\n if (!canEdit.value || props.modelValue.length === 0)\n return\n\n emit('update:modelValue', [])\n emit('change', [])\n emit('clear')\n announce(t('gr.inputTag.cleared', 'All tags removed'))\n focus()\n}\n\nfunction onInput(e: Event): void {\n inputValue.value = (e.target as HTMLInputElement).value\n}\n\nfunction onKeydown(e: KeyboardEvent): void {\n // Enter/сепаратор во время IME-композиции коммитят её, а не тег.\n if (isComposingEvent(e))\n return\n if (!canEdit.value)\n return\n\n if (e.key === 'Enter') {\n e.preventDefault()\n void commitInput()\n return\n }\n\n if ((props.separators ?? []).includes(e.key)) {\n e.preventDefault()\n void commitInput()\n return\n }\n\n if (inputValue.value.length === 0 && props.modelValue.length > 0) {\n if (e.key === 'Backspace') {\n e.preventDefault()\n removeAt(props.modelValue.length - 1)\n return\n }\n\n // Из пустого поля стрелка влево уводит на последний чип — дальше по чипам\n // работают те же стрелки, `Tab` для этого не нужен.\n if (e.key === 'ArrowLeft') {\n e.preventDefault()\n void focusTag(props.modelValue.length - 1)\n }\n }\n}\n\nfunction onTagKeydown(e: KeyboardEvent, index: number): void {\n if (roving.handleNavigationKeys(e)) {\n return\n }\n\n if (e.key === 'Delete' || e.key === 'Backspace') {\n e.preventDefault()\n void removeAtFromKeyboard(index)\n }\n}\n\nfunction onBlur(): void {\n if (props.addOnBlur)\n void commitInput()\n}\n\nfunction onPaste(e: ClipboardEvent): void {\n if (!canEdit.value || isMaxed.value)\n return\n\n const pasted = e.clipboardData?.getData('text')\n if (!pasted)\n return\n\n const tags = splitToTags(pasted)\n if (tags.length <= 1)\n return\n\n e.preventDefault()\n\n const run = ++validationRun\n validating.value = Boolean(props.beforeAdd)\n\n void filterAllowed(tags, run).then((allowed) => {\n if (run === validationRun)\n validating.value = false\n\n if (allowed?.length)\n addMany(allowed)\n })\n}\n\nconst wrapperClassName = computed(() => {\n return grInputTagWrapperClass({\n size: resolvedSize.value,\n state: props.state,\n invalid: isInvalid.value,\n disabled: isDisabled.value,\n })\n})\n\nconst inputClassName = computed(() => grInputTagInputClass(resolvedSize.value))\n\nconst showClearAll = computed(() => resolvedClearable.value && canEdit.value && props.modelValue.length > 0)\n\nconst placeholderText = computed(() => props.modelValue.length > 0 ? undefined : props.placeholder)\n\ndefineExpose({ focus, blur, clear: clearAll })\n</script>\n\n<template>\n <div\n ref=\"rootEl\"\n data-gr-input-tag\n data-testid=\"gr-input-tag\"\n :class=\"wrapperClassName\"\n @click=\"focus\"\n @focusin=\"onFocusIn\"\n @focusout=\"onFocusOut\"\n >\n <span\n v-if=\"hasPrefix\"\n ref=\"prefixEl\"\n data-gr-input-tag-prefix\n class=\"inline-flex shrink-0 items-center justify-center text-[var(--gr-muted-fg)]\"\n :style=\"prefixStyle\"\n >\n <slot name=\"prefix\" />\n </span>\n\n <!-- Нативная форма: hidden на каждый тег — стандартная сериализация набора. -->\n <template v-if=\"name\">\n <input\n v-for=\"(tag, tagIndex) in modelValue\"\n :key=\"`hidden-${tagIndex}`\"\n type=\"hidden\"\n :name=\"name\"\n :value=\"tag\"\n >\n </template>\n <!--\n `display: contents` — список нужен ради роли, а не ради раскладки: чипы\n обязаны переноситься в одном потоке с полем ввода.\n -->\n <span v-if=\"modelValue.length\" role=\"list\" class=\"contents\">\n <GrBadge\n v-for=\"(tag, i) in modelValue\"\n :key=\"`${tag}-${i}`\"\n role=\"listitem\"\n :tone=\"tagTone\"\n :dark=\"tagDark\"\n :size=\"tagSize\"\n :radius=\"tagRadius\"\n data-gr-input-tag-item\n data-testid=\"gr-input-tag-item\"\n :data-index=\"i\"\n >\n <span class=\"inline-flex items-center gap-1 align-middle\">\n <slot name=\"tag\" :tag=\"tag\" :index=\"i\" :remove=\"() => removeAt(i)\">\n <span class=\"truncate max-w-[18rem]\">{{ tag }}</span>\n </slot>\n\n <button\n v-if=\"showRemove\"\n :ref=\"setRemoveEl(i)\"\n type=\"button\"\n :class=\"removeButtonClass\"\n :aria-label=\"removeTagLabelFor(tag)\"\n :tabindex=\"roving.tabindexFor(i)\"\n data-gr-input-tag-remove\n data-testid=\"gr-input-tag-remove\"\n :data-index=\"i\"\n @mousedown.prevent.stop\n @focus=\"roving.setActive(i)\"\n @keydown=\"onTagKeydown($event, i)\"\n @click.stop=\"removeAt(i)\"\n >\n <GrIcon size=\"sm\">\n <IconClose />\n </GrIcon>\n </button>\n </span>\n </GrBadge>\n </span>\n\n <input\n :id=\"resolvedId\"\n ref=\"inputEl\"\n data-gr-input-tag-input\n data-testid=\"gr-input-tag-input\"\n :value=\"inputValue\"\n :disabled=\"isDisabled\"\n :readonly=\"isReadonly\"\n :placeholder=\"placeholderText\"\n :aria-label=\"ariaLabel\"\n :aria-describedby=\"describedBy\"\n :aria-required=\"isRequired ? 'true' : undefined\"\n :aria-readonly=\"isReadonly ? 'true' : undefined\"\n :aria-invalid=\"isInvalid ? 'true' : undefined\"\n :aria-busy=\"isBusy ? 'true' : undefined\"\n class=\"flex-1 min-w-[120px] bg-transparent border-none outline-none placeholder:text-[var(--gr-muted-fg)]\"\n :class=\"inputClassName\"\n @input=\"onInput\"\n @keydown=\"onKeydown\"\n @blur=\"onBlur\"\n @paste=\"onPaste\"\n >\n\n <span\n v-if=\"hasSuffix\"\n ref=\"suffixEl\"\n data-gr-input-tag-suffix\n class=\"inline-flex shrink-0 items-center justify-center text-[var(--gr-muted-fg)]\"\n :style=\"suffixStyle\"\n >\n <slot name=\"suffix\" />\n </span>\n\n <span\n v-if=\"isBusy\"\n data-gr-input-tag-spinner\n :class=\"spinnerClass\"\n aria-hidden=\"true\"\n >\n <GrIcon size=\"sm\">\n <IconLoader class=\"animate-spin\" />\n </GrIcon>\n </span>\n\n <button\n v-if=\"showClearAll\"\n type=\"button\"\n data-gr-input-tag-clear\n :class=\"clearButtonClass\"\n :aria-label=\"resolvedClearAllLabel\"\n @mousedown.prevent.stop\n @click.stop=\"clearAll\"\n >\n <GrIcon size=\"sm\">\n <IconClose />\n </GrIcon>\n </button>\n </div>\n</template>\n"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import { n as grInputTagSafelist, t as grInputTagConfig } from "../../chunks/config-BN4sXYXn.js";
2
- import { t as GrInputTag_default } from "./chunks/GrInputTag-CyV2eY7Z.js";
2
+ import { t as GrInputTag_default } from "./chunks/GrInputTag-Dghhg03-.js";
3
3
  export { GrInputTag_default as GrInputTag, GrInputTag_default as default, grInputTagConfig, grInputTagSafelist };
@@ -0,0 +1,358 @@
1
+ import { a as useGrComponentSize } from "../../../chunks/context-CTbuwcYs.js";
2
+ import { n as useGranularityTranslations } from "../../../chunks/granularityI18n-BC5zsj_d.js";
3
+ import { a as shiftSatisfied, n as isAppleDevice, r as isComposingEvent, t as eventMatchesKey } from "../../../chunks/keyboard-DE2yhz_b.js";
4
+ import { a as grKbdKeyClass, d as sequenceSeparatorClass, i as grKbdInnerKeyClass, r as grKbdComboClass, u as separatorClass } from "../../../chunks/grKbdStyles-CeZhGQHr.js";
5
+ import { Fragment, computed, createCommentVNode, createElementBlock, createElementVNode, defineComponent, normalizeClass, onMounted, openBlock, ref, renderList, renderSlot, toDisplayString, unref } from "vue";
6
+ //#region src/components/shared/hotkeyTokens.ts
7
+ function symbol(label, name) {
8
+ return {
9
+ label,
10
+ name,
11
+ symbol: true
12
+ };
13
+ }
14
+ function word(label, name) {
15
+ return name ? {
16
+ label,
17
+ name
18
+ } : { label };
19
+ }
20
+ var GR_KBD_TOKENS = [
21
+ {
22
+ token: "mod",
23
+ aliases: [],
24
+ group: "modifier",
25
+ apple: symbol("⌘", "command"),
26
+ other: word("Ctrl")
27
+ },
28
+ {
29
+ token: "meta",
30
+ aliases: [
31
+ "cmd",
32
+ "command",
33
+ "⌘"
34
+ ],
35
+ group: "modifier",
36
+ apple: symbol("⌘", "command"),
37
+ other: word("Meta")
38
+ },
39
+ {
40
+ token: "ctrl",
41
+ aliases: ["control", "⌃"],
42
+ group: "modifier",
43
+ apple: symbol("⌃", "control"),
44
+ other: word("Ctrl")
45
+ },
46
+ {
47
+ token: "alt",
48
+ aliases: ["option", "⌥"],
49
+ group: "modifier",
50
+ apple: symbol("⌥", "option"),
51
+ other: word("Alt")
52
+ },
53
+ {
54
+ token: "shift",
55
+ aliases: ["⇧"],
56
+ group: "modifier",
57
+ apple: symbol("⇧", "shift"),
58
+ other: word("Shift")
59
+ },
60
+ {
61
+ token: "enter",
62
+ aliases: [
63
+ "return",
64
+ "↵",
65
+ "↩"
66
+ ],
67
+ group: "editing",
68
+ apple: symbol("↩", "enter"),
69
+ other: word("Enter")
70
+ },
71
+ {
72
+ token: "esc",
73
+ aliases: ["escape"],
74
+ group: "editing",
75
+ apple: word("Esc", "escape"),
76
+ other: word("Esc", "escape")
77
+ },
78
+ {
79
+ token: "tab",
80
+ aliases: ["⇥"],
81
+ group: "editing",
82
+ apple: symbol("⇥", "tab"),
83
+ other: word("Tab")
84
+ },
85
+ {
86
+ token: "space",
87
+ aliases: [],
88
+ group: "editing",
89
+ apple: word("Space"),
90
+ other: word("Space")
91
+ },
92
+ {
93
+ token: "backspace",
94
+ aliases: ["⌫"],
95
+ group: "editing",
96
+ apple: symbol("⌫", "backspace"),
97
+ other: word("Backspace")
98
+ },
99
+ {
100
+ token: "delete",
101
+ aliases: ["del", "⌦"],
102
+ group: "editing",
103
+ apple: symbol("⌦", "delete"),
104
+ other: word("Del")
105
+ },
106
+ {
107
+ token: "up",
108
+ aliases: ["arrowup", "↑"],
109
+ group: "navigation",
110
+ apple: symbol("↑", "arrowUp"),
111
+ other: symbol("↑", "arrowUp")
112
+ },
113
+ {
114
+ token: "down",
115
+ aliases: ["arrowdown", "↓"],
116
+ group: "navigation",
117
+ apple: symbol("↓", "arrowDown"),
118
+ other: symbol("↓", "arrowDown")
119
+ },
120
+ {
121
+ token: "left",
122
+ aliases: ["arrowleft", "←"],
123
+ group: "navigation",
124
+ apple: symbol("←", "arrowLeft"),
125
+ other: symbol("←", "arrowLeft")
126
+ },
127
+ {
128
+ token: "right",
129
+ aliases: ["arrowright", "→"],
130
+ group: "navigation",
131
+ apple: symbol("→", "arrowRight"),
132
+ other: symbol("→", "arrowRight")
133
+ },
134
+ {
135
+ token: "home",
136
+ aliases: [],
137
+ group: "navigation",
138
+ apple: word("Home"),
139
+ other: word("Home")
140
+ },
141
+ {
142
+ token: "end",
143
+ aliases: [],
144
+ group: "navigation",
145
+ apple: word("End"),
146
+ other: word("End")
147
+ },
148
+ {
149
+ token: "pageup",
150
+ aliases: ["pgup", "⇞"],
151
+ group: "navigation",
152
+ apple: symbol("⇞", "pageUp"),
153
+ other: word("PgUp")
154
+ },
155
+ {
156
+ token: "pagedown",
157
+ aliases: [
158
+ "pgdn",
159
+ "pgdown",
160
+ "⇟"
161
+ ],
162
+ group: "navigation",
163
+ apple: symbol("⇟", "pageDown"),
164
+ other: word("PgDn")
165
+ }
166
+ ];
167
+ var BY_ALIAS = /* @__PURE__ */ new Map();
168
+ for (const spec of GR_KBD_TOKENS) {
169
+ BY_ALIAS.set(spec.token, spec);
170
+ for (const alias of spec.aliases) BY_ALIAS.set(alias, spec);
171
+ }
172
+ /** Токен или его синоним — в описание клавиши. Регистр не важен, глиф тоже принимается. */
173
+ function findKbdToken(token) {
174
+ const trimmed = token.trim();
175
+ return BY_ALIAS.get(trimmed.toLowerCase()) ?? BY_ALIAS.get(trimmed);
176
+ }
177
+ //#endregion
178
+ //#region src/components/shared/hotkey.ts
179
+ /**
180
+ * Разбор, матчинг и человекочитаемое представление сочетаний клавиш.
181
+ *
182
+ * Общий модуль, а не часть `GrCommandPalette`: то же нужно `GrKbd`, а импорт из
183
+ * чужой компонентной директории на сборке дал бы ребро `GrKbd →
184
+ * GrCommandPalette` (хелпер уехал бы в чанк палитры) — `granular doctor` считает
185
+ * такое незадекларированной зависимостью.
186
+ *
187
+ * Директива `v-hotkey` для палитры не годится: ей нужен смонтированный элемент,
188
+ * а палитра в закрытом состоянии не рендерит ничего. Поэтому здесь — свой
189
+ * матчер на `window`, с тем же синтаксисом комбинаций плюс токен `mod`.
190
+ */
191
+ function parseCommandHotkey(combo) {
192
+ const parts = combo.split("+").map((p) => p.trim()).filter(Boolean);
193
+ const keyToken = parts.at(-1);
194
+ if (!keyToken) return null;
195
+ const parsed = {
196
+ key: keyToken.length === 1 ? keyToken.toLowerCase() : keyToken,
197
+ ctrl: false,
198
+ meta: false,
199
+ alt: false,
200
+ shift: false,
201
+ mod: false
202
+ };
203
+ for (const part of parts.slice(0, -1)) {
204
+ const token = part.toLowerCase();
205
+ if (token === "mod") parsed.mod = true;
206
+ else if (token === "ctrl" || token === "control") parsed.ctrl = true;
207
+ else if (token === "meta" || token === "cmd" || token === "command" || token === "⌘") parsed.meta = true;
208
+ else if (token === "alt" || token === "option") parsed.alt = true;
209
+ else if (token === "shift") parsed.shift = true;
210
+ }
211
+ return parsed;
212
+ }
213
+ function matchesCommandHotkey(event, hotkey, apple = isAppleDevice()) {
214
+ if (isComposingEvent(event)) return false;
215
+ const expectMeta = hotkey.meta || hotkey.mod && apple;
216
+ const expectCtrl = hotkey.ctrl || hotkey.mod && !apple;
217
+ if (event.metaKey !== expectMeta) return false;
218
+ if (event.ctrlKey !== expectCtrl) return false;
219
+ if (event.altKey !== hotkey.alt) return false;
220
+ if (!shiftSatisfied(event, hotkey.key, hotkey.shift)) return false;
221
+ return eventMatchesKey(event, hotkey.key, { codeFallback: expectMeta || expectCtrl || hotkey.alt });
222
+ }
223
+ /** Человекочитаемые клавиши для подсказки в поле ввода (`⌘` / `Ctrl`). */
224
+ function formatCommandHotkey(hotkey, apple = isAppleDevice()) {
225
+ const keys = [];
226
+ if (hotkey.meta || hotkey.mod && apple) keys.push("⌘");
227
+ if (hotkey.ctrl || hotkey.mod && !apple) keys.push("Ctrl");
228
+ if (hotkey.alt) keys.push(apple ? "⌥" : "Alt");
229
+ if (hotkey.shift) keys.push(apple ? "⇧" : "Shift");
230
+ keys.push(hotkey.key.length === 1 ? hotkey.key.toUpperCase() : hotkey.key);
231
+ return keys;
232
+ }
233
+ /**
234
+ * Токен → то, что видит пользователь. Каталог общий с витриной и докой
235
+ * (`hotkeyTokens.ts`): цепочка `if` расходилась бы со списком, который читает
236
+ * потребитель.
237
+ */
238
+ function formatHotkeyToken(token, apple) {
239
+ const spec = findKbdToken(token);
240
+ if (spec) return apple ? spec.apple : spec.other;
241
+ const t = token.trim();
242
+ return { label: t.length === 1 ? t.toUpperCase() : t };
243
+ }
244
+ function formatHotkeyTokens(tokens, apple) {
245
+ return tokens.map((token) => formatHotkeyToken(token, apple));
246
+ }
247
+ /** Комбинация строкой (`mod+shift+K`) — в набор токенов в порядке показа. */
248
+ function splitHotkeyCombo(combo) {
249
+ return combo.split("+").map((part) => part.trim()).filter(Boolean);
250
+ }
251
+ //#endregion
252
+ //#region src/components/GrKbd/GrKbd.vue?vue&type=script&setup=true&lang.ts
253
+ var _hoisted_1 = ["data-variant"];
254
+ var _hoisted_2 = ["aria-hidden"];
255
+ var _hoisted_3 = {
256
+ key: 0,
257
+ class: "sr-only"
258
+ };
259
+ //#endregion
260
+ //#region src/components/GrKbd/GrKbd.vue
261
+ var GrKbd_default = /* @__PURE__ */ defineComponent({
262
+ __name: "GrKbd",
263
+ props: {
264
+ size: { default: void 0 },
265
+ variant: { default: "merged" },
266
+ keys: { default: void 0 },
267
+ separator: { default: void 0 },
268
+ platform: { default: "auto" }
269
+ },
270
+ setup(__props) {
271
+ const props = __props;
272
+ const resolvedSize = useGrComponentSize(() => props.size, { component: "GrKbd" });
273
+ const { t } = useGranularityTranslations();
274
+ /**
275
+ * Платформа уточняется только после монтирования: `navigator` в теле `setup`
276
+ * либо роняет серверный рендер, либо расходится с ним и ломает гидрацию.
277
+ * До этого момента показываем не-Apple вариант — он же приходит с сервера.
278
+ */
279
+ const detectedApple = ref(false);
280
+ onMounted(() => {
281
+ detectedApple.value = isAppleDevice();
282
+ });
283
+ const isApple = computed(() => {
284
+ if (props.platform === "apple") return true;
285
+ if (props.platform === "other") return false;
286
+ return detectedApple.value;
287
+ });
288
+ const tokens = computed(() => {
289
+ if (props.keys === void 0) return [];
290
+ return Array.isArray(props.keys) ? props.keys : splitHotkeyCombo(props.keys);
291
+ });
292
+ const keyViews = computed(() => formatHotkeyTokens(tokens.value, isApple.value));
293
+ const hasCombo = computed(() => keyViews.value.length > 0);
294
+ const keyClass = computed(() => grKbdKeyClass(resolvedSize.value));
295
+ const innerKeyClass = computed(() => grKbdInnerKeyClass(resolvedSize.value, props.variant));
296
+ const comboClass = computed(() => grKbdComboClass(resolvedSize.value, props.variant));
297
+ /**
298
+ * Разделитель перед клавишей `index`.
299
+ *
300
+ * Авто-правило одно: в общей плашке символы склеиваются, слова — нет. Внутри
301
+ * одной платформы набор однороден (macOS даёт `⌘⌥⇧`, прочие — `Ctrl`, `Alt`),
302
+ * поэтому «слева символ» и означает «пишем как система».
303
+ */
304
+ function separatorAt(index) {
305
+ if (index === 0) return "";
306
+ if (props.separator !== void 0) return props.separator;
307
+ if (props.variant === "sequence") return t("gr.kbd.then", "then");
308
+ if (props.variant === "split") return "+";
309
+ return keyViews.value[index - 1]?.symbol ? "" : "+";
310
+ }
311
+ const NAME_FALLBACKS = {
312
+ command: "Command",
313
+ option: "Option",
314
+ shift: "Shift",
315
+ control: "Control",
316
+ enter: "Enter",
317
+ escape: "Escape",
318
+ tab: "Tab",
319
+ backspace: "Backspace",
320
+ delete: "Delete",
321
+ pageUp: "Page Up",
322
+ pageDown: "Page Down",
323
+ arrowUp: "Arrow Up",
324
+ arrowDown: "Arrow Down",
325
+ arrowLeft: "Arrow Left",
326
+ arrowRight: "Arrow Right"
327
+ };
328
+ /** Читаемое имя символьной клавиши: `⌘` без него диктор произносит как знак. */
329
+ function readableName(name) {
330
+ return t(`gr.kbd.${name}`, NAME_FALLBACKS[name] ?? name);
331
+ }
332
+ return (_ctx, _cache) => {
333
+ return hasCombo.value ? (openBlock(), createElementBlock("kbd", {
334
+ key: 0,
335
+ "data-gr-kbd": "",
336
+ "data-gr-kbd-combo": "",
337
+ "data-variant": __props.variant,
338
+ class: normalizeClass(comboClass.value)
339
+ }, [(openBlock(true), createElementBlock(Fragment, null, renderList(keyViews.value, (key, index) => {
340
+ return openBlock(), createElementBlock(Fragment, { key: `${key.label}-${index}` }, [separatorAt(index) ? (openBlock(), createElementBlock("span", {
341
+ key: 0,
342
+ class: normalizeClass(__props.variant === "sequence" ? unref(sequenceSeparatorClass) : unref(separatorClass)),
343
+ "aria-hidden": "true"
344
+ }, toDisplayString(separatorAt(index)), 3)) : createCommentVNode("", true), createElementVNode("kbd", {
345
+ "data-gr-kbd-key": "",
346
+ class: normalizeClass(innerKeyClass.value)
347
+ }, [createElementVNode("span", { "aria-hidden": key.name ? "true" : void 0 }, toDisplayString(key.label), 9, _hoisted_2), key.name ? (openBlock(), createElementBlock("span", _hoisted_3, toDisplayString(readableName(key.name)), 1)) : createCommentVNode("", true)], 2)], 64);
348
+ }), 128))], 10, _hoisted_1)) : (openBlock(), createElementBlock("kbd", {
349
+ key: 1,
350
+ "data-gr-kbd": "",
351
+ "data-gr-kbd-key": "",
352
+ class: normalizeClass(keyClass.value)
353
+ }, [renderSlot(_ctx.$slots, "default")], 2));
354
+ };
355
+ }
356
+ });
357
+ //#endregion
358
+ export { GR_KBD_TOKENS as a, parseCommandHotkey as i, formatCommandHotkey as n, findKbdToken as o, matchesCommandHotkey as r, GrKbd_default as t };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GrKbd-BXbhsH0M.js","names":[],"sources":["../../../../src/components/shared/hotkeyTokens.ts","../../../../src/components/shared/hotkey.ts","../../../../src/components/GrKbd/GrKbd.vue","../../../../src/components/GrKbd/GrKbd.vue"],"sourcesContent":["/**\n * Каталог клавиш, которые понимает `keys` у `GrKbd`.\n *\n * Таблица, а не цепочка `if`, по двум причинам: во-первых, список — часть\n * публичного контракта (потребителю нужно знать, что можно написать), и\n * витрина показывает именно его, а не свою копию; во-вторых, копия в демо или\n * в доке разошлась бы с форматтером молча.\n */\n\n/** Ключи читаемых имён — `gr.kbd.<name>`. */\nexport type GrKbdKeyName =\n | 'command' | 'option' | 'shift' | 'control' | 'enter' | 'escape' | 'tab'\n | 'backspace' | 'delete' | 'pageUp' | 'pageDown'\n | 'arrowUp' | 'arrowDown' | 'arrowLeft' | 'arrowRight'\n\n/** Одна клавиша в человекочитаемом виде. */\nexport interface HotkeyKeyView {\n /** Что видно на экране: символ (`⌘`) или слово (`Ctrl`). */\n label: string\n /**\n * Ключ читаемого имени (`gr.kbd.<name>`) для символьных клавиш. У `K` или\n * `Ctrl` его нет — они и так читаются вслух.\n */\n name?: GrKbdKeyName\n /** Символ (`⌘`, `↑`) или слово (`Ctrl`, `Esc`): от этого зависит склейка в одной плашке. */\n symbol?: boolean\n}\n\n/** Смысловая группа — ею витрина и дока раскладывают каталог. */\nexport type GrKbdTokenGroup = 'modifier' | 'editing' | 'navigation'\n\nexport interface GrKbdTokenSpec {\n /** Канонический токен: его пишут в `keys`. */\n token: string\n /** Что ещё принимается — синонимы и сам глиф. */\n aliases: readonly string[]\n group: GrKbdTokenGroup\n /** Вид на macOS и на остальных платформах. */\n apple: HotkeyKeyView\n other: HotkeyKeyView\n}\n\nfunction symbol(label: string, name: GrKbdKeyName): HotkeyKeyView {\n return { label, name, symbol: true }\n}\n\nfunction word(label: string, name?: GrKbdKeyName): HotkeyKeyView {\n return name ? { label, name } : { label }\n}\n\nexport const GR_KBD_TOKENS: readonly GrKbdTokenSpec[] = [\n // Модификаторы: на macOS символы, на остальных платформах слова.\n { token: 'mod', aliases: [], group: 'modifier', apple: symbol('⌘', 'command'), other: word('Ctrl') },\n { token: 'meta', aliases: ['cmd', 'command', '⌘'], group: 'modifier', apple: symbol('⌘', 'command'), other: word('Meta') },\n { token: 'ctrl', aliases: ['control', '⌃'], group: 'modifier', apple: symbol('⌃', 'control'), other: word('Ctrl') },\n { token: 'alt', aliases: ['option', '⌥'], group: 'modifier', apple: symbol('⌥', 'option'), other: word('Alt') },\n { token: 'shift', aliases: ['⇧'], group: 'modifier', apple: symbol('⇧', 'shift'), other: word('Shift') },\n\n { token: 'enter', aliases: ['return', '↵', '↩'], group: 'editing', apple: symbol('↩', 'enter'), other: word('Enter') },\n { token: 'esc', aliases: ['escape'], group: 'editing', apple: word('Esc', 'escape'), other: word('Esc', 'escape') },\n { token: 'tab', aliases: ['⇥'], group: 'editing', apple: symbol('⇥', 'tab'), other: word('Tab') },\n { token: 'space', aliases: [], group: 'editing', apple: word('Space'), other: word('Space') },\n { token: 'backspace', aliases: ['⌫'], group: 'editing', apple: symbol('⌫', 'backspace'), other: word('Backspace') },\n { token: 'delete', aliases: ['del', '⌦'], group: 'editing', apple: symbol('⌦', 'delete'), other: word('Del') },\n\n { token: 'up', aliases: ['arrowup', '↑'], group: 'navigation', apple: symbol('↑', 'arrowUp'), other: symbol('↑', 'arrowUp') },\n { token: 'down', aliases: ['arrowdown', '↓'], group: 'navigation', apple: symbol('↓', 'arrowDown'), other: symbol('↓', 'arrowDown') },\n { token: 'left', aliases: ['arrowleft', '←'], group: 'navigation', apple: symbol('←', 'arrowLeft'), other: symbol('←', 'arrowLeft') },\n { token: 'right', aliases: ['arrowright', '→'], group: 'navigation', apple: symbol('→', 'arrowRight'), other: symbol('→', 'arrowRight') },\n { token: 'home', aliases: [], group: 'navigation', apple: word('Home'), other: word('Home') },\n { token: 'end', aliases: [], group: 'navigation', apple: word('End'), other: word('End') },\n { token: 'pageup', aliases: ['pgup', '⇞'], group: 'navigation', apple: symbol('⇞', 'pageUp'), other: word('PgUp') },\n { token: 'pagedown', aliases: ['pgdn', 'pgdown', '⇟'], group: 'navigation', apple: symbol('⇟', 'pageDown'), other: word('PgDn') },\n]\n\nconst BY_ALIAS = new Map<string, GrKbdTokenSpec>()\nfor (const spec of GR_KBD_TOKENS) {\n BY_ALIAS.set(spec.token, spec)\n for (const alias of spec.aliases) BY_ALIAS.set(alias, spec)\n}\n\n/** Токен или его синоним — в описание клавиши. Регистр не важен, глиф тоже принимается. */\nexport function findKbdToken(token: string): GrKbdTokenSpec | undefined {\n const trimmed = token.trim()\n return BY_ALIAS.get(trimmed.toLowerCase()) ?? BY_ALIAS.get(trimmed)\n}\n","/**\n * Разбор, матчинг и человекочитаемое представление сочетаний клавиш.\n *\n * Общий модуль, а не часть `GrCommandPalette`: то же нужно `GrKbd`, а импорт из\n * чужой компонентной директории на сборке дал бы ребро `GrKbd →\n * GrCommandPalette` (хелпер уехал бы в чанк палитры) — `granular doctor` считает\n * такое незадекларированной зависимостью.\n *\n * Директива `v-hotkey` для палитры не годится: ей нужен смонтированный элемент,\n * а палитра в закрытом состоянии не рендерит ничего. Поэтому здесь — свой\n * матчер на `window`, с тем же синтаксисом комбинаций плюс токен `mod`.\n */\n\nimport { eventMatchesKey, isAppleDevice, isComposingEvent, shiftSatisfied } from '../../internal/keyboard'\n\nimport { findKbdToken, type HotkeyKeyView } from './hotkeyTokens'\n\nexport { isAppleDevice } from '../../internal/keyboard'\nexport { findKbdToken, GR_KBD_TOKENS } from './hotkeyTokens'\nexport type { GrKbdKeyName, GrKbdTokenGroup, GrKbdTokenSpec, HotkeyKeyView } from './hotkeyTokens'\n\nexport type ParsedCommandHotkey = {\n key: string\n ctrl: boolean\n meta: boolean\n alt: boolean\n shift: boolean\n /** `mod` — Cmd на macOS, Ctrl на остальных платформах. */\n mod: boolean\n}\n\nexport function parseCommandHotkey(combo: string): ParsedCommandHotkey | null {\n const parts = combo.split('+').map(p => p.trim()).filter(Boolean)\n const keyToken = parts.at(-1)\n if (!keyToken) return null\n\n const parsed: ParsedCommandHotkey = {\n key: keyToken.length === 1 ? keyToken.toLowerCase() : keyToken,\n ctrl: false,\n meta: false,\n alt: false,\n shift: false,\n mod: false,\n }\n\n for (const part of parts.slice(0, -1)) {\n const token = part.toLowerCase()\n if (token === 'mod') parsed.mod = true\n else if (token === 'ctrl' || token === 'control') parsed.ctrl = true\n else if (token === 'meta' || token === 'cmd' || token === 'command' || token === '⌘') parsed.meta = true\n else if (token === 'alt' || token === 'option') parsed.alt = true\n else if (token === 'shift') parsed.shift = true\n }\n\n return parsed\n}\n\nexport function matchesCommandHotkey(\n event: KeyboardEvent,\n hotkey: ParsedCommandHotkey,\n apple = isAppleDevice(),\n): boolean {\n // Клавиша во время IME-композиции принадлежит композиции, а не сочетанию.\n if (isComposingEvent(event)) return false\n\n const expectMeta = hotkey.meta || (hotkey.mod && apple)\n const expectCtrl = hotkey.ctrl || (hotkey.mod && !apple)\n\n if (event.metaKey !== expectMeta) return false\n if (event.ctrlKey !== expectCtrl) return false\n if (event.altKey !== hotkey.alt) return false\n if (!shiftSatisfied(event, hotkey.key, hotkey.shift)) return false\n\n // Комбинация с модификаторами матчится и по физическому коду: на нелатинской\n // раскладке `mod+K` приходит как `key: 'л'`, и без кода сочетание мертво.\n return eventMatchesKey(event, hotkey.key, {\n codeFallback: expectMeta || expectCtrl || hotkey.alt,\n })\n}\n\n/** Человекочитаемые клавиши для подсказки в поле ввода (`⌘` / `Ctrl`). */\nexport function formatCommandHotkey(hotkey: ParsedCommandHotkey, apple = isAppleDevice()): string[] {\n const keys: string[] = []\n if (hotkey.meta || (hotkey.mod && apple)) keys.push('⌘')\n if (hotkey.ctrl || (hotkey.mod && !apple)) keys.push('Ctrl')\n if (hotkey.alt) keys.push(apple ? '⌥' : 'Alt')\n if (hotkey.shift) keys.push(apple ? '⇧' : 'Shift')\n keys.push(hotkey.key.length === 1 ? hotkey.key.toUpperCase() : hotkey.key)\n return keys\n}\n\n/**\n * Токен → то, что видит пользователь. Каталог общий с витриной и докой\n * (`hotkeyTokens.ts`): цепочка `if` расходилась бы со списком, который читает\n * потребитель.\n */\nexport function formatHotkeyToken(token: string, apple: boolean): HotkeyKeyView {\n const spec = findKbdToken(token)\n if (spec) return apple ? spec.apple : spec.other\n\n // Не из каталога — печатная клавиша: одиночный символ заглавным, потому что\n // `k` и `K` на клавише выглядят одинаково.\n const t = token.trim()\n return { label: t.length === 1 ? t.toUpperCase() : t }\n}\n\nexport function formatHotkeyTokens(tokens: readonly string[], apple: boolean): HotkeyKeyView[] {\n return tokens.map(token => formatHotkeyToken(token, apple))\n}\n\n/** Комбинация строкой (`mod+shift+K`) — в набор токенов в порядке показа. */\nexport function splitHotkeyCombo(combo: string): string[] {\n return combo.split('+').map(part => part.trim()).filter(Boolean)\n}\n","<script setup lang=\"ts\">\nimport { computed, onMounted, ref } from 'vue'\n\nimport { useGrComponentSize } from '../GrConfigProvider/context'\nimport type { GrComponentSize } from '../shared/sizes'\nimport { formatHotkeyTokens, isAppleDevice, splitHotkeyCombo } from '../shared/hotkey'\nimport { useGranularityTranslations } from '../../internal/granularityI18n'\n\nimport {\n grKbdComboClass,\n grKbdInnerKeyClass,\n grKbdKeyClass,\n separatorClass,\n sequenceSeparatorClass,\n type GrKbdVariant,\n} from './grKbdStyles'\n\nexport interface GrKbdProps {\n size?: GrKbdSize\n /**\n * `merged` (по умолчанию) — сочетание одной плашкой, как его пишут сами\n * системы: `⌘K` на macOS, `Ctrl+K` на прочих. `split` — по плашке на клавишу.\n * `sequence` — аккорд «G затем I»: клавиши нажимают одну за другой.\n */\n variant?: GrKbdVariant\n /**\n * Сочетание: строкой (`\"mod+shift+K\"`) или набором токенов\n * (`['mod', 'K']`). Токен `mod` — Cmd на macOS, Ctrl на остальных.\n */\n keys?: string | string[]\n /**\n * Разделитель между клавишами. Не задан — авто: в общей плашке символы\n * склеиваются (`⌘K`), а слова разделяются плюсом (`Ctrl+K`); у `split` это\n * плюс, у `sequence` — слово из локали. Пустая строка — только зазор.\n */\n separator?: string\n platform?: GrKbdPlatform\n}\n\n/**\n * GrKbd — GR-примитив для отображения клавиш и сочетаний (`<kbd>`).\n *\n * Одна клавиша — слотом: `<GrKbd>Esc</GrKbd>`.\n * Сочетание — пропом: `<GrKbd keys=\"mod+K\" />` (на macOS `⌘ K`, иначе `Ctrl K`).\n */\nexport type GrKbdSize = GrComponentSize\n\nexport type { GrKbdVariant } from './grKbdStyles'\n\n/** Откуда брать платформу для токена `mod`. */\nexport type GrKbdPlatform = 'auto' | 'apple' | 'other'\n\nconst props = withDefaults(\n defineProps<GrKbdProps>(),\n {\n size: undefined,\n variant: 'merged',\n keys: undefined,\n separator: undefined,\n platform: 'auto',\n },\n)\n\nconst resolvedSize = useGrComponentSize(() => props.size, { component: 'GrKbd' })\nconst { t } = useGranularityTranslations()\n\n/**\n * Платформа уточняется только после монтирования: `navigator` в теле `setup`\n * либо роняет серверный рендер, либо расходится с ним и ломает гидрацию.\n * До этого момента показываем не-Apple вариант — он же приходит с сервера.\n */\nconst detectedApple = ref(false)\n\nonMounted(() => {\n detectedApple.value = isAppleDevice()\n})\n\nconst isApple = computed(() => {\n if (props.platform === 'apple') return true\n if (props.platform === 'other') return false\n return detectedApple.value\n})\n\nconst tokens = computed(() => {\n if (props.keys === undefined) return []\n return Array.isArray(props.keys) ? props.keys : splitHotkeyCombo(props.keys)\n})\n\n// Сочетание рисуется вложенными `<kbd>` — приём из спецификации HTML, а не\n// обёртка-div: сочетание остаётся клавиатурным вводом целиком.\nconst keyViews = computed(() => formatHotkeyTokens(tokens.value, isApple.value))\nconst hasCombo = computed(() => keyViews.value.length > 0)\n\nconst keyClass = computed(() => grKbdKeyClass(resolvedSize.value))\nconst innerKeyClass = computed(() => grKbdInnerKeyClass(resolvedSize.value, props.variant))\nconst comboClass = computed(() => grKbdComboClass(resolvedSize.value, props.variant))\n\n/**\n * Разделитель перед клавишей `index`.\n *\n * Авто-правило одно: в общей плашке символы склеиваются, слова — нет. Внутри\n * одной платформы набор однороден (macOS даёт `⌘⌥⇧`, прочие — `Ctrl`, `Alt`),\n * поэтому «слева символ» и означает «пишем как система».\n */\nfunction separatorAt(index: number): string {\n if (index === 0) return ''\n if (props.separator !== undefined) return props.separator\n if (props.variant === 'sequence') return t('gr.kbd.then', 'then')\n if (props.variant === 'split') return '+'\n\n return keyViews.value[index - 1]?.symbol ? '' : '+'\n}\n\nconst NAME_FALLBACKS: Record<string, string> = {\n command: 'Command',\n option: 'Option',\n shift: 'Shift',\n control: 'Control',\n enter: 'Enter',\n escape: 'Escape',\n tab: 'Tab',\n backspace: 'Backspace',\n delete: 'Delete',\n pageUp: 'Page Up',\n pageDown: 'Page Down',\n arrowUp: 'Arrow Up',\n arrowDown: 'Arrow Down',\n arrowLeft: 'Arrow Left',\n arrowRight: 'Arrow Right',\n}\n\n/** Читаемое имя символьной клавиши: `⌘` без него диктор произносит как знак. */\nfunction readableName(name: string): string {\n return t(`gr.kbd.${name}`, NAME_FALLBACKS[name] ?? name)\n}\n</script>\n\n<template>\n <kbd\n v-if=\"hasCombo\"\n data-gr-kbd\n data-gr-kbd-combo\n :data-variant=\"variant\"\n :class=\"comboClass\"\n ><template\n v-for=\"(key, index) in keyViews\"\n :key=\"`${key.label}-${index}`\"\n ><span\n v-if=\"separatorAt(index)\"\n :class=\"variant === 'sequence' ? sequenceSeparatorClass : separatorClass\"\n aria-hidden=\"true\"\n >{{ separatorAt(index) }}</span><kbd\n data-gr-kbd-key\n :class=\"innerKeyClass\"\n ><span :aria-hidden=\"key.name ? 'true' : undefined\">{{ key.label }}</span><span\n v-if=\"key.name\"\n class=\"sr-only\"\n >{{ readableName(key.name) }}</span></kbd></template></kbd>\n\n <kbd\n v-else\n data-gr-kbd\n data-gr-kbd-key\n :class=\"keyClass\"\n ><slot /></kbd>\n</template>\n","<script setup lang=\"ts\">\nimport { computed, onMounted, ref } from 'vue'\n\nimport { useGrComponentSize } from '../GrConfigProvider/context'\nimport type { GrComponentSize } from '../shared/sizes'\nimport { formatHotkeyTokens, isAppleDevice, splitHotkeyCombo } from '../shared/hotkey'\nimport { useGranularityTranslations } from '../../internal/granularityI18n'\n\nimport {\n grKbdComboClass,\n grKbdInnerKeyClass,\n grKbdKeyClass,\n separatorClass,\n sequenceSeparatorClass,\n type GrKbdVariant,\n} from './grKbdStyles'\n\nexport interface GrKbdProps {\n size?: GrKbdSize\n /**\n * `merged` (по умолчанию) — сочетание одной плашкой, как его пишут сами\n * системы: `⌘K` на macOS, `Ctrl+K` на прочих. `split` — по плашке на клавишу.\n * `sequence` — аккорд «G затем I»: клавиши нажимают одну за другой.\n */\n variant?: GrKbdVariant\n /**\n * Сочетание: строкой (`\"mod+shift+K\"`) или набором токенов\n * (`['mod', 'K']`). Токен `mod` — Cmd на macOS, Ctrl на остальных.\n */\n keys?: string | string[]\n /**\n * Разделитель между клавишами. Не задан — авто: в общей плашке символы\n * склеиваются (`⌘K`), а слова разделяются плюсом (`Ctrl+K`); у `split` это\n * плюс, у `sequence` — слово из локали. Пустая строка — только зазор.\n */\n separator?: string\n platform?: GrKbdPlatform\n}\n\n/**\n * GrKbd — GR-примитив для отображения клавиш и сочетаний (`<kbd>`).\n *\n * Одна клавиша — слотом: `<GrKbd>Esc</GrKbd>`.\n * Сочетание — пропом: `<GrKbd keys=\"mod+K\" />` (на macOS `⌘ K`, иначе `Ctrl K`).\n */\nexport type GrKbdSize = GrComponentSize\n\nexport type { GrKbdVariant } from './grKbdStyles'\n\n/** Откуда брать платформу для токена `mod`. */\nexport type GrKbdPlatform = 'auto' | 'apple' | 'other'\n\nconst props = withDefaults(\n defineProps<GrKbdProps>(),\n {\n size: undefined,\n variant: 'merged',\n keys: undefined,\n separator: undefined,\n platform: 'auto',\n },\n)\n\nconst resolvedSize = useGrComponentSize(() => props.size, { component: 'GrKbd' })\nconst { t } = useGranularityTranslations()\n\n/**\n * Платформа уточняется только после монтирования: `navigator` в теле `setup`\n * либо роняет серверный рендер, либо расходится с ним и ломает гидрацию.\n * До этого момента показываем не-Apple вариант — он же приходит с сервера.\n */\nconst detectedApple = ref(false)\n\nonMounted(() => {\n detectedApple.value = isAppleDevice()\n})\n\nconst isApple = computed(() => {\n if (props.platform === 'apple') return true\n if (props.platform === 'other') return false\n return detectedApple.value\n})\n\nconst tokens = computed(() => {\n if (props.keys === undefined) return []\n return Array.isArray(props.keys) ? props.keys : splitHotkeyCombo(props.keys)\n})\n\n// Сочетание рисуется вложенными `<kbd>` — приём из спецификации HTML, а не\n// обёртка-div: сочетание остаётся клавиатурным вводом целиком.\nconst keyViews = computed(() => formatHotkeyTokens(tokens.value, isApple.value))\nconst hasCombo = computed(() => keyViews.value.length > 0)\n\nconst keyClass = computed(() => grKbdKeyClass(resolvedSize.value))\nconst innerKeyClass = computed(() => grKbdInnerKeyClass(resolvedSize.value, props.variant))\nconst comboClass = computed(() => grKbdComboClass(resolvedSize.value, props.variant))\n\n/**\n * Разделитель перед клавишей `index`.\n *\n * Авто-правило одно: в общей плашке символы склеиваются, слова — нет. Внутри\n * одной платформы набор однороден (macOS даёт `⌘⌥⇧`, прочие — `Ctrl`, `Alt`),\n * поэтому «слева символ» и означает «пишем как система».\n */\nfunction separatorAt(index: number): string {\n if (index === 0) return ''\n if (props.separator !== undefined) return props.separator\n if (props.variant === 'sequence') return t('gr.kbd.then', 'then')\n if (props.variant === 'split') return '+'\n\n return keyViews.value[index - 1]?.symbol ? '' : '+'\n}\n\nconst NAME_FALLBACKS: Record<string, string> = {\n command: 'Command',\n option: 'Option',\n shift: 'Shift',\n control: 'Control',\n enter: 'Enter',\n escape: 'Escape',\n tab: 'Tab',\n backspace: 'Backspace',\n delete: 'Delete',\n pageUp: 'Page Up',\n pageDown: 'Page Down',\n arrowUp: 'Arrow Up',\n arrowDown: 'Arrow Down',\n arrowLeft: 'Arrow Left',\n arrowRight: 'Arrow Right',\n}\n\n/** Читаемое имя символьной клавиши: `⌘` без него диктор произносит как знак. */\nfunction readableName(name: string): string {\n return t(`gr.kbd.${name}`, NAME_FALLBACKS[name] ?? name)\n}\n</script>\n\n<template>\n <kbd\n v-if=\"hasCombo\"\n data-gr-kbd\n data-gr-kbd-combo\n :data-variant=\"variant\"\n :class=\"comboClass\"\n ><template\n v-for=\"(key, index) in keyViews\"\n :key=\"`${key.label}-${index}`\"\n ><span\n v-if=\"separatorAt(index)\"\n :class=\"variant === 'sequence' ? sequenceSeparatorClass : separatorClass\"\n aria-hidden=\"true\"\n >{{ separatorAt(index) }}</span><kbd\n data-gr-kbd-key\n :class=\"innerKeyClass\"\n ><span :aria-hidden=\"key.name ? 'true' : undefined\">{{ key.label }}</span><span\n v-if=\"key.name\"\n class=\"sr-only\"\n >{{ readableName(key.name) }}</span></kbd></template></kbd>\n\n <kbd\n v-else\n data-gr-kbd\n data-gr-kbd-key\n :class=\"keyClass\"\n ><slot /></kbd>\n</template>\n"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import { a as GR_KBD_TOKENS, o as findKbdToken, t as GrKbd_default } from "./chunks/GrKbd-DU2lBkRV.js";
1
+ import { a as GR_KBD_TOKENS, o as findKbdToken, t as GrKbd_default } from "./chunks/GrKbd-BXbhsH0M.js";
2
2
  import { n as grKbdSafelist, t as grKbdConfig } from "../../chunks/config-DA6SnEoy.js";
3
3
  export { GR_KBD_TOKENS, GrKbd_default as GrKbd, GrKbd_default as default, findKbdToken, grKbdConfig, grKbdSafelist };