@feugene/granularity 0.16.0 → 0.19.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 (425) hide show
  1. package/dist/chunks/chevron-left-D8AUBAM7.js +23 -0
  2. package/dist/chunks/chevron-left-D8AUBAM7.js.map +1 -0
  3. package/dist/chunks/{chevron-right-BfqMVpbB.js → chevron-right-C6Z01h0X.js} +1 -22
  4. package/dist/chunks/chevron-right-C6Z01h0X.js.map +1 -0
  5. package/dist/chunks/config-8Pcutu1j2.js.map +1 -0
  6. package/dist/chunks/{config-K0C2tcLB.js → config-9PYRZlKE.js} +1 -1
  7. package/dist/chunks/{config-K0C2tcLB.js.map → config-9PYRZlKE.js.map} +1 -1
  8. package/dist/chunks/{config-Zc_bUvZY2.js → config-BDfTXHo12.js} +1 -1
  9. package/dist/chunks/{config-Zc_bUvZY2.js.map → config-BDfTXHo12.js.map} +1 -1
  10. package/dist/chunks/config-BE6n20np2.js.map +1 -0
  11. package/dist/chunks/config-BJ7Bv_G2.js +148 -0
  12. package/dist/chunks/config-BJ7Bv_G2.js.map +1 -0
  13. package/dist/chunks/config-BKvX0q102.js.map +1 -0
  14. package/dist/chunks/{config-CpwwkFBO.js → config-Baj7Wvx-.js} +1 -1
  15. package/dist/chunks/{config-CpwwkFBO.js.map → config-Baj7Wvx-.js.map} +1 -1
  16. package/dist/chunks/{config-D8tSR2uS.js → config-Be9k9bOf.js} +2 -8
  17. package/dist/chunks/config-Be9k9bOf.js.map +1 -0
  18. package/dist/chunks/config-BoNR7_PD2.js.map +1 -0
  19. package/dist/chunks/{config-DxCTVBfx.js → config-BsPDQ0dS.js} +2 -2
  20. package/dist/chunks/config-BsPDQ0dS.js.map +1 -0
  21. package/dist/chunks/{config-DpqOnJiz2.js → config-CDat1wXf2.js} +1 -1
  22. package/dist/chunks/config-CDat1wXf2.js.map +1 -0
  23. package/dist/chunks/config-CN2ULSQL.js.map +1 -0
  24. package/dist/chunks/{config-Cw6TDzWv2.js → config-COpuWGr_.js} +1 -1
  25. package/dist/chunks/config-COpuWGr_.js.map +1 -0
  26. package/dist/chunks/config-CY0_6cMi2.js.map +1 -0
  27. package/dist/chunks/{config-B-g6lT19.js → config-DA6SnEoy.js} +5 -2
  28. package/dist/chunks/config-DA6SnEoy.js.map +1 -0
  29. package/dist/chunks/config-DAX8Deh1.js +68 -0
  30. package/dist/chunks/config-DAX8Deh1.js.map +1 -0
  31. package/dist/chunks/config-DKdlqXiY.js.map +1 -1
  32. package/dist/chunks/{config-CvC0sX8p.js → config-MRvhUl-O.js} +1 -1
  33. package/dist/chunks/{config-CvC0sX8p.js.map → config-MRvhUl-O.js.map} +1 -1
  34. package/dist/chunks/config-Rw9OyW702.js.map +1 -0
  35. package/dist/chunks/config-ScuvHw6k2.js +42 -0
  36. package/dist/chunks/config-ScuvHw6k2.js.map +1 -0
  37. package/dist/chunks/config-T3qdQBgU2.js.map +1 -0
  38. package/dist/chunks/config-eXB87DOi.js.map +1 -0
  39. package/dist/chunks/context-BSYR7RZs.js.map +1 -1
  40. package/dist/chunks/{en-B3xMeswz.js → en-COdzxgAX.js} +30 -5
  41. package/dist/chunks/en-COdzxgAX.js.map +1 -0
  42. package/dist/chunks/{es-CA-mkU--.js → es-ClqJ-4hr.js} +30 -5
  43. package/dist/chunks/es-ClqJ-4hr.js.map +1 -0
  44. package/dist/chunks/{es-Bv8vvqdT.js → es-DGMHwknJ.js} +3 -3
  45. package/dist/chunks/{es-Bv8vvqdT.js.map → es-DGMHwknJ.js.map} +1 -1
  46. package/dist/chunks/generated-BRkbhyxk.js +3270 -0
  47. package/dist/chunks/generated-BRkbhyxk.js.map +1 -0
  48. package/dist/chunks/grKbdStyles-CeZhGQHr.js +43 -0
  49. package/dist/chunks/grKbdStyles-CeZhGQHr.js.map +1 -0
  50. package/dist/chunks/{grTextareaStyles-CWI2SqC8.js → grTextareaStyles-iOcHuVMM.js} +2 -2
  51. package/dist/chunks/{grTextareaStyles-CWI2SqC8.js.map → grTextareaStyles-iOcHuVMM.js.map} +1 -1
  52. package/dist/chunks/{granular-provider-CtrXGa7c.js → granular-provider-C6uAujdJ.js} +23 -21
  53. package/dist/chunks/granular-provider-C6uAujdJ.js.map +1 -0
  54. package/dist/chunks/grip-vertical-lRha2S7q.js +16 -0
  55. package/dist/chunks/grip-vertical-lRha2S7q.js.map +1 -0
  56. package/dist/chunks/icon-Dag2tIMs.js +21 -0
  57. package/dist/chunks/icon-Dag2tIMs.js.map +1 -0
  58. package/dist/chunks/{keyboard-zYvvyHd4.js → keyboard-DE2yhz_b.js} +10 -1
  59. package/dist/chunks/keyboard-DE2yhz_b.js.map +1 -0
  60. package/dist/chunks/{optionFilter-BVY988pC.js → optionFilter-DYw9XPPx.js} +1 -71
  61. package/dist/chunks/optionFilter-DYw9XPPx.js.map +1 -0
  62. package/dist/chunks/{useOverlayLayer-BupuP_hs.js → overlayStack-C8cfsqXa.js} +11 -61
  63. package/dist/chunks/overlayStack-C8cfsqXa.js.map +1 -0
  64. package/dist/chunks/{portalRoot-CWD4zHBm.js → portalRoot-CVhCgdG6.js} +10 -1
  65. package/dist/chunks/{portalRoot-CWD4zHBm.js.map → portalRoot-CVhCgdG6.js.map} +1 -1
  66. package/dist/chunks/{ru-COWxgh2A.js → ru-9z8ix45c.js} +30 -5
  67. package/dist/chunks/ru-9z8ix45c.js.map +1 -0
  68. package/dist/chunks/useDragSort-0l47h4yb.js +265 -0
  69. package/dist/chunks/useDragSort-0l47h4yb.js.map +1 -0
  70. package/dist/chunks/{useModalOverlay-DCM4d3yA.js → useModalOverlay-DrQVYwwA.js} +2 -2
  71. package/dist/chunks/{useModalOverlay-DCM4d3yA.js.map → useModalOverlay-DrQVYwwA.js.map} +1 -1
  72. package/dist/chunks/{usePortalTarget-RyzEgNTb.js → usePortalTarget-Cn-Wiz5d.js} +1 -1
  73. package/dist/chunks/{usePortalTarget-RyzEgNTb.js.map → usePortalTarget-Cn-Wiz5d.js.map} +1 -1
  74. package/dist/components/GrAutocomplete/chunks/{GrAutocomplete-CQ9T7Lly.js → GrAutocomplete-gY4Xopza.js} +35 -26
  75. package/dist/components/GrAutocomplete/chunks/GrAutocomplete-gY4Xopza.js.map +1 -0
  76. package/dist/components/GrAutocomplete/index.js +1 -1
  77. package/dist/components/GrAutocomplete/styles.css +1 -1
  78. package/dist/components/GrBreadcrumbs/chunks/{GrBreadcrumbs-BCNGDS6k.js → GrBreadcrumbs-DS_-PBVt.js} +8 -7
  79. package/dist/components/GrBreadcrumbs/chunks/GrBreadcrumbs-DS_-PBVt.js.map +1 -0
  80. package/dist/components/GrBreadcrumbs/index.js +1 -1
  81. package/dist/components/GrCollapse/chunks/{GrCollapse-B2Fc6A9r.js.map → GrCollapse-Kk0DE8tb.js.map} +1 -1
  82. package/dist/components/GrCollapse/index.js +1 -1
  83. package/dist/components/GrColorPicker/chunks/{GrColorPicker-bnYBRGk8.js → GrColorPicker-CkBTzkqn.js} +4 -4
  84. package/dist/components/GrColorPicker/chunks/{GrColorPicker-bnYBRGk8.js.map → GrColorPicker-CkBTzkqn.js.map} +1 -1
  85. package/dist/components/GrColorPicker/index.js +2 -2
  86. package/dist/components/GrCommandPalette/chunks/{GrCommandPalette-MWDYDPNC.js → GrCommandPalette-BugTlGdj.js} +41 -16
  87. package/dist/components/GrCommandPalette/chunks/GrCommandPalette-BugTlGdj.js.map +1 -0
  88. package/dist/components/GrCommandPalette/index.js +2 -2
  89. package/dist/components/GrCommandPalette/styles.css +1 -1
  90. package/dist/components/GrConfigProvider/index.js +2 -2
  91. package/dist/components/GrConfirmDialog/chunks/{GrConfirmDialog-DaQmlp1_.js → GrConfirmDialog-Ds5T0GiR.js} +1 -1
  92. package/dist/components/GrConfirmDialog/chunks/{GrConfirmDialog-DaQmlp1_.js.map → GrConfirmDialog-Ds5T0GiR.js.map} +1 -1
  93. package/dist/components/GrConfirmDialog/index.js +1 -1
  94. package/dist/components/GrDataTable/chunks/{GrDataTable-DVFho9Cj.js → GrDataTable-CYe2A2WA.js} +498 -48
  95. package/dist/components/GrDataTable/chunks/GrDataTable-CYe2A2WA.js.map +1 -0
  96. package/dist/components/GrDataTable/index.js +2 -2
  97. package/dist/components/GrDialog/chunks/{GrDialog-AE1gIZuz.js → GrDialog-C3tYaA8v.js} +1 -1
  98. package/dist/components/GrDialog/chunks/{GrDialog-AE1gIZuz.js.map → GrDialog-C3tYaA8v.js.map} +1 -1
  99. package/dist/components/GrDialog/index.js +1 -1
  100. package/dist/components/GrDialogService/chunks/{GrDialogService-B4DYWDkA.js → GrDialogService-CTBiiJDI.js} +3 -3
  101. package/dist/components/GrDialogService/chunks/{GrDialogService-B4DYWDkA.js.map → GrDialogService-CTBiiJDI.js.map} +1 -1
  102. package/dist/components/GrDialogService/index.js +1 -1
  103. package/dist/components/GrDivider/chunks/{GrDivider-B2Xwc_QO.js → GrDivider-xxq1_fIl.js} +1 -1
  104. package/dist/components/GrDivider/chunks/{GrDivider-B2Xwc_QO.js.map → GrDivider-xxq1_fIl.js.map} +1 -1
  105. package/dist/components/GrDivider/index.js +2 -2
  106. package/dist/components/GrDrawer/chunks/{GrDrawer-DQwi6aRw.js → GrDrawer-BSSuiNHU.js} +1 -1
  107. package/dist/components/GrDrawer/chunks/{GrDrawer-DQwi6aRw.js.map → GrDrawer-BSSuiNHU.js.map} +1 -1
  108. package/dist/components/GrDrawer/index.js +1 -1
  109. package/dist/components/GrDropdown/chunks/{GrDropdown-BLng6V1m.js → GrDropdown-Bh6UK2M5.js} +3 -3
  110. package/dist/components/GrDropdown/chunks/{GrDropdown-BLng6V1m.js.map → GrDropdown-Bh6UK2M5.js.map} +1 -1
  111. package/dist/components/GrDropdown/index.js +1 -1
  112. package/dist/components/GrDropdownMenu/chunks/{GrDropdownMenu-BImk2Vs7.js → GrDropdownMenu-LyfEFUbg.js} +2 -2
  113. package/dist/components/GrDropdownMenu/chunks/{GrDropdownMenu-BImk2Vs7.js.map → GrDropdownMenu-LyfEFUbg.js.map} +1 -1
  114. package/dist/components/GrDropdownMenu/index.js +2 -2
  115. package/dist/components/GrFileUpload/chunks/{GrFileUpload-D0B-BEsd.js → GrFileUpload-DuDzC43S.js} +2 -2
  116. package/dist/components/GrFileUpload/chunks/{GrFileUpload-D0B-BEsd.js.map → GrFileUpload-DuDzC43S.js.map} +1 -1
  117. package/dist/components/GrFileUpload/index.js +1 -1
  118. package/dist/components/GrImageViewer/chunks/{GrImageViewer-BeCnE8XQ.js → GrImageViewer-DfD4euH5.js} +48 -23
  119. package/dist/components/GrImageViewer/chunks/GrImageViewer-DfD4euH5.js.map +1 -0
  120. package/dist/components/GrImageViewer/index.js +1 -1
  121. package/dist/components/GrInput/chunks/{GrInput-DD2gYdqS.js → GrInput-2wd7Crs0.js} +1 -1
  122. package/dist/components/GrInput/chunks/GrInput-2wd7Crs0.js.map +1 -0
  123. package/dist/components/GrInput/index.js +1 -1
  124. package/dist/components/GrInputTag/chunks/{GrInputTag-DmNunixz.js → GrInputTag-CyV2eY7Z.js} +20 -33
  125. package/dist/components/GrInputTag/chunks/GrInputTag-CyV2eY7Z.js.map +1 -0
  126. package/dist/components/GrInputTag/index.js +1 -1
  127. package/dist/components/GrKbd/chunks/{GrKbd-DRFPvW3G.js → GrKbd-DU2lBkRV.js} +218 -52
  128. package/dist/components/GrKbd/chunks/GrKbd-DU2lBkRV.js.map +1 -0
  129. package/dist/components/GrKbd/index.js +3 -3
  130. package/dist/components/GrModal/chunks/{GrModal-B8I78T0N.js → GrModal-CbMMr6W1.js} +1 -1
  131. package/dist/components/GrModal/chunks/{GrModal-B8I78T0N.js.map → GrModal-CbMMr6W1.js.map} +1 -1
  132. package/dist/components/GrModal/index.js +1 -1
  133. package/dist/components/GrNumberInput/chunks/{GrNumberInput-CZOyPz4J.js → GrNumberInput-B5CHZDBj.js} +2 -1
  134. package/dist/components/GrNumberInput/chunks/{GrNumberInput-CZOyPz4J.js.map → GrNumberInput-B5CHZDBj.js.map} +1 -1
  135. package/dist/components/GrNumberInput/index.js +1 -1
  136. package/dist/components/GrPagination/chunks/{GrPagination-B6N0QZBf.js → GrPagination-BM4FrD6Q.js} +4 -4
  137. package/dist/components/GrPagination/chunks/GrPagination-BM4FrD6Q.js.map +1 -0
  138. package/dist/components/GrPagination/index.js +1 -1
  139. package/dist/components/GrPopover/chunks/{GrPopover-B1eRCOoO.js → GrPopover-DMH4Jjst.js} +1 -1
  140. package/dist/components/GrPopover/chunks/{GrPopover-B1eRCOoO.js.map → GrPopover-DMH4Jjst.js.map} +1 -1
  141. package/dist/components/GrPopover/index.js +1 -1
  142. package/dist/components/GrProgressBar/chunks/{GrProgressBar-BiHnaitu.js → GrProgressBar-xwbNM9QB.js} +1 -1
  143. package/dist/components/GrProgressBar/chunks/GrProgressBar-xwbNM9QB.js.map +1 -0
  144. package/dist/components/GrProgressBar/index.js +1 -1
  145. package/dist/components/GrProgressCircle/chunks/{GrProgressCircle-CTogjcHz.js → GrProgressCircle-B8olXRo5.js} +1 -1
  146. package/dist/components/GrProgressCircle/chunks/{GrProgressCircle-CTogjcHz.js.map → GrProgressCircle-B8olXRo5.js.map} +1 -1
  147. package/dist/components/GrProgressCircle/index.js +2 -2
  148. package/dist/components/GrPromptDialog/chunks/{GrPromptDialog-Ct174NVD.js → GrPromptDialog-Pwr9NPxK.js} +3 -3
  149. package/dist/components/GrPromptDialog/chunks/{GrPromptDialog-Ct174NVD.js.map → GrPromptDialog-Pwr9NPxK.js.map} +1 -1
  150. package/dist/components/GrPromptDialog/index.js +1 -1
  151. package/dist/components/GrRadio/chunks/{GrRadio-DksDro_U.js → GrRadio-DWiRaMzt.js} +8 -32
  152. package/dist/components/GrRadio/chunks/GrRadio-DWiRaMzt.js.map +1 -0
  153. package/dist/components/GrRadio/index.js +1 -1
  154. package/dist/components/GrRadioGroup/chunks/{GrRadioGroup-BOIhejE6.js → GrRadioGroup-DIuBw0wk.js} +34 -27
  155. package/dist/components/GrRadioGroup/chunks/GrRadioGroup-DIuBw0wk.js.map +1 -0
  156. package/dist/components/GrRadioGroup/index.js +1 -1
  157. package/dist/components/GrRating/chunks/{GrRating-JrHXz0Rv.js → GrRating-DVFH3lYu.js} +10 -9
  158. package/dist/components/GrRating/chunks/GrRating-DVFH3lYu.js.map +1 -0
  159. package/dist/components/GrRating/index.js +2 -2
  160. package/dist/components/GrSegmented/chunks/{GrSegmented-BQIlH5KI.js → GrSegmented-CQw3ijqa.js} +47 -65
  161. package/dist/components/GrSegmented/chunks/GrSegmented-CQw3ijqa.js.map +1 -0
  162. package/dist/components/GrSegmented/index.js +1 -1
  163. package/dist/components/GrSelect/chunks/{GrSelect-aqkPCqjd.js → GrSelect-B-Voni7D.js} +69 -55
  164. package/dist/components/GrSelect/chunks/GrSelect-B-Voni7D.js.map +1 -0
  165. package/dist/components/GrSelect/index.js +1 -1
  166. package/dist/components/GrSelect/styles.css +1 -1
  167. package/dist/components/GrSidebar/chunks/{GrSidebar-DRGnnViw.js → GrSidebar-i7AxjhY_.js} +3 -2
  168. package/dist/components/GrSidebar/chunks/{GrSidebar-DRGnnViw.js.map → GrSidebar-i7AxjhY_.js.map} +1 -1
  169. package/dist/components/GrSidebar/index.js +2 -2
  170. package/dist/components/GrSkeleton/index.js +1 -1
  171. package/dist/components/GrSlider/chunks/{GrSlider-DkU9IQSX.js → GrSlider-CyhVsNKn.js} +21 -34
  172. package/dist/components/GrSlider/chunks/GrSlider-CyhVsNKn.js.map +1 -0
  173. package/dist/components/GrSlider/index.js +2 -2
  174. package/dist/components/GrSortableList/chunks/GrSortableList-XB7mXM1W.js +277 -0
  175. package/dist/components/GrSortableList/chunks/GrSortableList-XB7mXM1W.js.map +1 -0
  176. package/dist/components/GrSortableList/index.js +3 -0
  177. package/dist/components/GrSplitter/chunks/{GrSplitter-7To8jbJ8.js → GrSplitter-BzxVQwbY.js} +17 -37
  178. package/dist/components/GrSplitter/chunks/GrSplitter-BzxVQwbY.js.map +1 -0
  179. package/dist/components/GrSplitter/index.js +2 -2
  180. package/dist/components/GrStatistic/chunks/{GrStatistic-CttyoYPT.js → GrStatistic-DOsM6s5V.js} +54 -7
  181. package/dist/components/GrStatistic/chunks/GrStatistic-DOsM6s5V.js.map +1 -0
  182. package/dist/components/GrStatistic/index.js +2 -2
  183. package/dist/components/GrSwitch/chunks/{GrSwitch-B9TYbiih.js → GrSwitch-DpyvVrZG.js} +1 -1
  184. package/dist/components/GrSwitch/chunks/{GrSwitch-B9TYbiih.js.map → GrSwitch-DpyvVrZG.js.map} +1 -1
  185. package/dist/components/GrSwitch/index.js +2 -2
  186. package/dist/components/GrTabPanels/index.js +1 -1
  187. package/dist/components/GrTable/chunks/{GrTable-BB-mI_NM.js → GrTable-BfqgwETQ.js} +7 -1
  188. package/dist/components/GrTable/chunks/GrTable-BfqgwETQ.js.map +1 -0
  189. package/dist/components/GrTable/index.js +1 -1
  190. package/dist/components/GrTabs/chunks/{GrTabs-B8CDq2D9.js → GrTabs-f3-oQenu.js} +55 -65
  191. package/dist/components/GrTabs/chunks/GrTabs-f3-oQenu.js.map +1 -0
  192. package/dist/components/GrTabs/index.js +1 -1
  193. package/dist/components/GrTextarea/chunks/{GrTextarea-DUh5Tlo4.js → GrTextarea-DSvd1nSy.js} +1 -1
  194. package/dist/components/GrTextarea/chunks/{GrTextarea-DUh5Tlo4.js.map → GrTextarea-DSvd1nSy.js.map} +1 -1
  195. package/dist/components/GrTextarea/index.js +2 -2
  196. package/dist/components/GrTimeline/chunks/{GrTimeline-CE9b3s18.js → GrTimeline-B-h2Yanw.js} +1 -1
  197. package/dist/components/GrTimeline/chunks/{GrTimeline-CE9b3s18.js.map → GrTimeline-B-h2Yanw.js.map} +1 -1
  198. package/dist/components/GrTimeline/index.js +2 -2
  199. package/dist/components/GrToaster/chunks/{GrToaster-BKQy3Srm.js → GrToaster-Dqja0Lf9.js} +114 -13
  200. package/dist/components/GrToaster/chunks/GrToaster-Dqja0Lf9.js.map +1 -0
  201. package/dist/components/GrToaster/index.js +2 -2
  202. package/dist/components/GrToaster/styles.css +1 -1
  203. package/dist/components/GrTooltip/chunks/{GrTooltip-DEbejfhA.js → GrTooltip-Cn08heWz.js} +2 -2
  204. package/dist/components/GrTooltip/chunks/{GrTooltip-DEbejfhA.js.map → GrTooltip-Cn08heWz.js.map} +1 -1
  205. package/dist/components/GrTooltip/index.js +2 -2
  206. package/dist/components/GrTree/chunks/{GrTree-wfdbvygw.js → GrTree-BR9a2pay.js} +148 -111
  207. package/dist/components/GrTree/chunks/GrTree-BR9a2pay.js.map +1 -0
  208. package/dist/components/GrTree/index.js +2 -2
  209. package/dist/components/GrTree/styles.css +1 -1
  210. package/dist/components/GrTreeSelect/chunks/{GrTreeSelect-lLWmAMtI.js → GrTreeSelect--muUeB0v.js} +28 -14
  211. package/dist/components/GrTreeSelect/chunks/GrTreeSelect--muUeB0v.js.map +1 -0
  212. package/dist/components/GrTreeSelect/index.js +1 -1
  213. package/dist/composables/useAnnouncer.js +1 -1
  214. package/dist/composables/useComboboxNavigation.js +71 -0
  215. package/dist/composables/useComboboxNavigation.js.map +1 -0
  216. package/dist/composables/useDismissible.js +1 -1
  217. package/dist/composables/useDragGesture.js +55 -0
  218. package/dist/composables/useDragGesture.js.map +1 -0
  219. package/dist/composables/useDragSort.js +2 -0
  220. package/dist/composables/useFloating.js +22 -1
  221. package/dist/composables/useFloating.js.map +1 -1
  222. package/dist/composables/useGrComponentConfig.js +2 -0
  223. package/dist/composables/useGranularityTranslations.js +2 -0
  224. package/dist/composables/useOverlayLayer.js +64 -1
  225. package/dist/composables/useOverlayLayer.js.map +1 -0
  226. package/dist/composables/usePortalTarget.js +1 -1
  227. package/dist/composables/useRovingFocus.js +150 -0
  228. package/dist/composables/useRovingFocus.js.map +1 -0
  229. package/dist/directives/hotkey.js +13 -7
  230. package/dist/directives/hotkey.js.map +1 -1
  231. package/dist/directives/loading.js +1 -1
  232. package/dist/granular-provider-node.js +1 -1
  233. package/dist/granular-provider.js +1 -1
  234. package/dist/i18n/all.js +1 -1
  235. package/dist/i18n/index.js +1 -1
  236. package/dist/index.js +77 -68
  237. package/dist/styles/themes/dark.css +6 -1
  238. package/dist/testing.js +199 -0
  239. package/dist/testing.js.map +1 -0
  240. package/dist/theme-apply.js +33 -0
  241. package/dist/theme-apply.js.map +1 -0
  242. package/dist/theme.js +501 -0
  243. package/dist/theme.js.map +1 -0
  244. package/dist/tokens.js +1 -3131
  245. package/dist/types/src/components/GrAlert/defaults.d.ts +1 -1
  246. package/dist/types/src/components/GrAutocomplete/defaults.d.ts +1 -1
  247. package/dist/types/src/components/GrAvatar/defaults.d.ts +1 -1
  248. package/dist/types/src/components/GrBadge/defaults.d.ts +1 -1
  249. package/dist/types/src/components/GrBottomNav/defaults.d.ts +1 -1
  250. package/dist/types/src/components/GrBreadcrumbs/defaults.d.ts +1 -1
  251. package/dist/types/src/components/GrBreadcrumbs/grBreadcrumbsStyles.d.ts +5 -2
  252. package/dist/types/src/components/GrButton/defaults.d.ts +1 -1
  253. package/dist/types/src/components/GrCard/defaults.d.ts +1 -1
  254. package/dist/types/src/components/GrCheckbox/defaults.d.ts +1 -1
  255. package/dist/types/src/components/GrCheckboxGroup/defaults.d.ts +1 -1
  256. package/dist/types/src/components/GrCollapse/defaults.d.ts +1 -1
  257. package/dist/types/src/components/GrColorPicker/defaults.d.ts +1 -1
  258. package/dist/types/src/components/GrColorPicker/grColorPickerStyles.d.ts +2 -2
  259. package/dist/types/src/components/GrCommandPalette/GrCommandPalette.vue.d.ts +6 -6
  260. package/dist/types/src/components/GrCommandPalette/defaults.d.ts +1 -1
  261. package/dist/types/src/components/GrCommandPalette/filtering.d.ts +6 -2
  262. package/dist/types/src/components/GrConfigProvider/context.d.ts +6 -22
  263. package/dist/types/src/components/GrConfigProvider/index.d.ts +1 -1
  264. package/dist/types/src/components/GrConfirmDialog/defaults.d.ts +1 -1
  265. package/dist/types/src/components/GrDataTable/GrDataTable.vue.d.ts +53 -0
  266. package/dist/types/src/components/GrDataTable/defaults.d.ts +1 -1
  267. package/dist/types/src/components/GrDataTable/grDataTableStyles.d.ts +38 -0
  268. package/dist/types/src/components/GrDialog/defaults.d.ts +1 -1
  269. package/dist/types/src/components/GrDivider/defaults.d.ts +1 -1
  270. package/dist/types/src/components/GrDrawer/defaults.d.ts +1 -1
  271. package/dist/types/src/components/GrEmptyState/defaults.d.ts +1 -1
  272. package/dist/types/src/components/GrFileUpload/defaults.d.ts +1 -1
  273. package/dist/types/src/components/GrFormField/defaults.d.ts +1 -1
  274. package/dist/types/src/components/GrFormFile/defaults.d.ts +1 -1
  275. package/dist/types/src/components/GrFormSection/defaults.d.ts +1 -1
  276. package/dist/types/src/components/GrIcon/defaults.d.ts +1 -1
  277. package/dist/types/src/components/GrImageViewer/composables/usePointerGestures.d.ts +1 -0
  278. package/dist/types/src/components/GrImageViewer/composables/useZoomPan.d.ts +1 -2
  279. package/dist/types/src/components/GrInput/defaults.d.ts +1 -1
  280. package/dist/types/src/components/GrInputTag/defaults.d.ts +1 -1
  281. package/dist/types/src/components/GrKbd/GrKbd.vue.d.ts +18 -3
  282. package/dist/types/src/components/GrKbd/defaults.d.ts +1 -1
  283. package/dist/types/src/components/GrKbd/grKbdStyles.d.ts +20 -3
  284. package/dist/types/src/components/GrKbd/index.d.ts +6 -0
  285. package/dist/types/src/components/GrLink/defaults.d.ts +1 -1
  286. package/dist/types/src/components/GrModal/defaults.d.ts +1 -1
  287. package/dist/types/src/components/GrNumberInput/defaults.d.ts +1 -1
  288. package/dist/types/src/components/GrPagination/defaults.d.ts +1 -1
  289. package/dist/types/src/components/GrPopover/GrPopover.vue.d.ts +1 -1
  290. package/dist/types/src/components/GrPopover/defaults.d.ts +1 -1
  291. package/dist/types/src/components/GrProgressBar/defaults.d.ts +1 -1
  292. package/dist/types/src/components/GrProgressCircle/defaults.d.ts +1 -1
  293. package/dist/types/src/components/GrProgressCircle/grProgressCircleStyles.d.ts +1 -1
  294. package/dist/types/src/components/GrPromptDialog/defaults.d.ts +1 -1
  295. package/dist/types/src/components/GrRadio/defaults.d.ts +1 -1
  296. package/dist/types/src/components/GrRadio/grRadioGroupContext.d.ts +12 -4
  297. package/dist/types/src/components/GrRadioGroup/defaults.d.ts +1 -1
  298. package/dist/types/src/components/GrRating/GrRating.vue.d.ts +9 -4
  299. package/dist/types/src/components/GrRating/defaults.d.ts +1 -1
  300. package/dist/types/src/components/GrSegmented/defaults.d.ts +1 -1
  301. package/dist/types/src/components/GrSelect/defaults.d.ts +1 -1
  302. package/dist/types/src/components/GrSlider/defaults.d.ts +1 -1
  303. package/dist/types/src/components/GrSortableList/GrSortableList.vue.d.ts +68 -0
  304. package/dist/types/src/components/GrSortableList/config.d.ts +1 -0
  305. package/dist/types/src/components/GrSortableList/grSortableListStyles.d.ts +37 -0
  306. package/dist/types/src/components/GrSortableList/index.d.ts +9 -0
  307. package/dist/types/src/components/GrSortableList/safelist.d.ts +1 -0
  308. package/dist/types/src/components/GrSplitter/defaults.d.ts +1 -1
  309. package/dist/types/src/components/GrStatistic/GrStatistic.vue.d.ts +12 -9
  310. package/dist/types/src/components/GrStatistic/defaults.d.ts +1 -1
  311. package/dist/types/src/components/GrStatistic/grStatisticStyles.d.ts +1 -2
  312. package/dist/types/src/components/GrSwitch/defaults.d.ts +1 -1
  313. package/dist/types/src/components/GrTable/GrTable.vue.d.ts +13 -0
  314. package/dist/types/src/components/GrTable/defaults.d.ts +1 -1
  315. package/dist/types/src/components/GrTabs/GrTabs.vue.d.ts +6 -2
  316. package/dist/types/src/components/GrTabs/defaults.d.ts +1 -1
  317. package/dist/types/src/components/GrTextarea/defaults.d.ts +1 -1
  318. package/dist/types/src/components/GrTextarea/grTextareaStyles.d.ts +2 -2
  319. package/dist/types/src/components/GrTimeline/defaults.d.ts +1 -1
  320. package/dist/types/src/components/GrTimeline/grTimelineStyles.d.ts +1 -1
  321. package/dist/types/src/components/GrToaster/GrToaster.vue.d.ts +8 -0
  322. package/dist/types/src/components/GrToaster/grToasterStyles.d.ts +27 -0
  323. package/dist/types/src/components/GrTooltip/defaults.d.ts +1 -1
  324. package/dist/types/src/components/GrTree/defaults.d.ts +1 -1
  325. package/dist/types/src/components/GrTree/grTreeInteractionContext.d.ts +0 -1
  326. package/dist/types/src/components/GrTree/grTreeProps.d.ts +11 -4
  327. package/dist/types/src/components/GrTree/safelist.d.ts +1 -1
  328. package/dist/types/src/components/GrTreeSelect/defaults.d.ts +1 -1
  329. package/dist/types/src/components/shared/hotkey.d.ts +7 -15
  330. package/dist/types/src/components/shared/hotkeyTokens.d.ts +37 -0
  331. package/dist/types/src/components/shared/icon.d.ts +13 -0
  332. package/dist/types/src/composables/internal/dragSortGeometry.d.ts +59 -0
  333. package/dist/types/src/composables/internal/overlayStack.d.ts +11 -0
  334. package/dist/types/src/composables/useDragGesture.d.ts +63 -0
  335. package/dist/types/src/composables/useDragSort.d.ts +80 -0
  336. package/dist/types/src/composables/useFloating.d.ts +5 -1
  337. package/dist/types/src/composables/useGrComponentConfig.d.ts +41 -0
  338. package/dist/types/src/composables/useGranularityTranslations.d.ts +13 -0
  339. package/dist/types/src/composables/useRovingFocus.d.ts +108 -0
  340. package/dist/types/src/granular-provider/shared.d.ts +1 -0
  341. package/dist/types/src/i18n/messages/en.d.ts +48 -0
  342. package/dist/types/src/i18n/messages/es.d.ts +48 -0
  343. package/dist/types/src/i18n/messages/ru.d.ts +48 -0
  344. package/dist/types/src/index.d.ts +12 -0
  345. package/dist/types/src/internal/keyboard.d.ts +6 -0
  346. package/dist/types/src/testing/announcer.d.ts +10 -0
  347. package/dist/types/src/testing/context.d.ts +36 -0
  348. package/dist/types/src/testing/env.d.ts +25 -0
  349. package/dist/types/src/testing/geometry.d.ts +23 -0
  350. package/dist/types/src/testing/index.d.ts +12 -0
  351. package/dist/types/src/testing/pointer.d.ts +31 -0
  352. package/dist/types/src/theme/apply.d.ts +27 -0
  353. package/dist/types/src/theme/color.d.ts +35 -0
  354. package/dist/types/src/theme/extendTheme.d.ts +63 -0
  355. package/dist/types/src/theme/index.d.ts +22 -0
  356. package/dist/types/src/theme/roles.d.ts +16 -0
  357. package/dist/types/src/theme/tone.d.ts +32 -0
  358. package/dist/types/src/theme/validate.d.ts +16 -0
  359. package/dist/types/src/tokens/types.d.ts +8 -0
  360. package/dist/web-types.json +214 -13
  361. package/package.json +47 -4
  362. package/tokens/themes/dark.json +2 -1
  363. package/dist/chunks/chevron-right-BfqMVpbB.js.map +0 -1
  364. package/dist/chunks/config-8Pcutu1j.js.map +0 -1
  365. package/dist/chunks/config-B-g6lT19.js.map +0 -1
  366. package/dist/chunks/config-BE6n20np.js.map +0 -1
  367. package/dist/chunks/config-BKvX0q10.js.map +0 -1
  368. package/dist/chunks/config-BNfQwyL4.js +0 -97
  369. package/dist/chunks/config-BNfQwyL4.js.map +0 -1
  370. package/dist/chunks/config-BoNR7_PD.js.map +0 -1
  371. package/dist/chunks/config-CN2ULSQL2.js.map +0 -1
  372. package/dist/chunks/config-CY0_6cMi.js.map +0 -1
  373. package/dist/chunks/config-Cw6TDzWv2.js.map +0 -1
  374. package/dist/chunks/config-D8tSR2uS.js.map +0 -1
  375. package/dist/chunks/config-DpqOnJiz2.js.map +0 -1
  376. package/dist/chunks/config-DxCTVBfx.js.map +0 -1
  377. package/dist/chunks/config-LGrZIdaZ.js +0 -21
  378. package/dist/chunks/config-LGrZIdaZ.js.map +0 -1
  379. package/dist/chunks/config-Rw9OyW70.js.map +0 -1
  380. package/dist/chunks/config-T3qdQBgU.js.map +0 -1
  381. package/dist/chunks/config-eXB87DOi2.js.map +0 -1
  382. package/dist/chunks/en-B3xMeswz.js.map +0 -1
  383. package/dist/chunks/es-CA-mkU--.js.map +0 -1
  384. package/dist/chunks/grKbdStyles-DAoxiytu.js +0 -31
  385. package/dist/chunks/grKbdStyles-DAoxiytu.js.map +0 -1
  386. package/dist/chunks/granular-provider-CtrXGa7c.js.map +0 -1
  387. package/dist/chunks/keyboard-zYvvyHd4.js.map +0 -1
  388. package/dist/chunks/optionFilter-BVY988pC.js.map +0 -1
  389. package/dist/chunks/ru-COWxgh2A.js.map +0 -1
  390. package/dist/chunks/useOverlayLayer-BupuP_hs.js.map +0 -1
  391. package/dist/components/GrAutocomplete/chunks/GrAutocomplete-CQ9T7Lly.js.map +0 -1
  392. package/dist/components/GrBreadcrumbs/chunks/GrBreadcrumbs-BCNGDS6k.js.map +0 -1
  393. package/dist/components/GrCommandPalette/chunks/GrCommandPalette-MWDYDPNC.js.map +0 -1
  394. package/dist/components/GrDataTable/chunks/GrDataTable-DVFho9Cj.js.map +0 -1
  395. package/dist/components/GrImageViewer/chunks/GrImageViewer-BeCnE8XQ.js.map +0 -1
  396. package/dist/components/GrInput/chunks/GrInput-DD2gYdqS.js.map +0 -1
  397. package/dist/components/GrInputTag/chunks/GrInputTag-DmNunixz.js.map +0 -1
  398. package/dist/components/GrKbd/chunks/GrKbd-DRFPvW3G.js.map +0 -1
  399. package/dist/components/GrPagination/chunks/GrPagination-B6N0QZBf.js.map +0 -1
  400. package/dist/components/GrProgressBar/chunks/GrProgressBar-BiHnaitu.js.map +0 -1
  401. package/dist/components/GrRadio/chunks/GrRadio-DksDro_U.js.map +0 -1
  402. package/dist/components/GrRadioGroup/chunks/GrRadioGroup-BOIhejE6.js.map +0 -1
  403. package/dist/components/GrRating/chunks/GrRating-JrHXz0Rv.js.map +0 -1
  404. package/dist/components/GrSegmented/chunks/GrSegmented-BQIlH5KI.js.map +0 -1
  405. package/dist/components/GrSelect/chunks/GrSelect-aqkPCqjd.js.map +0 -1
  406. package/dist/components/GrSlider/chunks/GrSlider-DkU9IQSX.js.map +0 -1
  407. package/dist/components/GrSplitter/chunks/GrSplitter-7To8jbJ8.js.map +0 -1
  408. package/dist/components/GrStatistic/chunks/GrStatistic-CttyoYPT.js.map +0 -1
  409. package/dist/components/GrTable/chunks/GrTable-BB-mI_NM.js.map +0 -1
  410. package/dist/components/GrTabs/chunks/GrTabs-B8CDq2D9.js.map +0 -1
  411. package/dist/components/GrToaster/chunks/GrToaster-BKQy3Srm.js.map +0 -1
  412. package/dist/components/GrTree/chunks/GrTree-wfdbvygw.js.map +0 -1
  413. package/dist/components/GrTreeSelect/chunks/GrTreeSelect-lLWmAMtI.js.map +0 -1
  414. package/dist/tokens.js.map +0 -1
  415. package/dist/chunks/{config-8Pcutu1j.js → config-8Pcutu1j2.js} +0 -0
  416. package/dist/chunks/{config-BE6n20np.js → config-BE6n20np2.js} +0 -0
  417. package/dist/chunks/{config-BKvX0q10.js → config-BKvX0q102.js} +0 -0
  418. package/dist/chunks/{config-BoNR7_PD.js → config-BoNR7_PD2.js} +0 -0
  419. package/dist/chunks/{config-CN2ULSQL2.js → config-CN2ULSQL.js} +0 -0
  420. package/dist/chunks/{config-CY0_6cMi.js → config-CY0_6cMi2.js} +0 -0
  421. package/dist/chunks/{config-Rw9OyW70.js → config-Rw9OyW702.js} +0 -0
  422. package/dist/chunks/{config-T3qdQBgU.js → config-T3qdQBgU2.js} +0 -0
  423. package/dist/chunks/{config-eXB87DOi2.js → config-eXB87DOi.js} +0 -0
  424. package/dist/components/GrCollapse/chunks/{GrCollapse-B2Fc6A9r.js → GrCollapse-Kk0DE8tb.js} +1 -1
  425. /package/dist/types/src/composables/{internal/useComboboxNavigation.d.ts → useComboboxNavigation.d.ts} +0 -0
package/dist/index.js CHANGED
@@ -1,8 +1,9 @@
1
- import { a as useGrComponentProp, i as useGrComponentDefaults, n as GR_CONFIG_KEY, o as useGrComponentSize, r as resolveGrConfig, s as useGrConfig, t as GR_COMPONENT_SIZES } from "./chunks/context-BSYR7RZs.js";
1
+ import { a as useGrComponentProp, c as useGrThemeAttrs, i as useGrComponentDefaults, n as GR_CONFIG_KEY, o as useGrComponentSize, r as resolveGrConfig, s as useGrConfig, t as GR_COMPONENT_SIZES } from "./chunks/context-BSYR7RZs.js";
2
+ import { n as useGranularityTranslations } from "./chunks/granularityI18n-BC5zsj_d.js";
2
3
  import { n as GR_ALERT_VARIANTS, t as GrAlert_default } from "./components/GrAlert/chunks/GrAlert-BC1lplbY.js";
3
4
  import { t as grAlertConfig } from "./chunks/config-BNu8lFQB.js";
4
5
  import "./components/GrAlert/index.js";
5
- import { t as usePortalTarget } from "./chunks/usePortalTarget-RyzEgNTb.js";
6
+ import { t as usePortalTarget } from "./chunks/usePortalTarget-Cn-Wiz5d.js";
6
7
  import { vAutofocus } from "./directives/autofocus.js";
7
8
  import { vAutosize } from "./directives/autosize.js";
8
9
  import { vClickOutside } from "./directives/clickOutside.js";
@@ -13,14 +14,15 @@ import { t as GrIcon_default } from "./components/GrIcon/chunks/GrIcon-BvA2ZGXP.
13
14
  import { t as GrLoading_default } from "./components/GrLoading/chunks/GrLoading-CH95CFzS.js";
14
15
  import { createLoading, vLoading } from "./directives/loading.js";
15
16
  import { useFloating } from "./composables/useFloating.js";
16
- import { t as useOverlayLayer } from "./chunks/useOverlayLayer-BupuP_hs.js";
17
+ import { useOverlayLayer } from "./composables/useOverlayLayer.js";
17
18
  import { useDismissible } from "./composables/useDismissible.js";
18
19
  import { useVirtualList } from "./composables/useVirtualList.js";
19
20
  import { n as useGrFormFieldContext, t as GR_FORM_FIELD_KEY } from "./chunks/context-DdNIxa1w.js";
20
21
  import { useGrFormControl } from "./composables/useGrFormControl.js";
22
+ import { useComboboxNavigation } from "./composables/useComboboxNavigation.js";
21
23
  import { t as GrBadge_default } from "./components/GrBadge/chunks/GrBadge-B1tgqfGQ.js";
22
24
  import { n as grAutocompleteSafelist, t as grAutocompleteConfig } from "./chunks/config-BbY2SKGE.js";
23
- import { t as GrAutocomplete_default } from "./components/GrAutocomplete/chunks/GrAutocomplete-CQ9T7Lly.js";
25
+ import { t as GrAutocomplete_default } from "./components/GrAutocomplete/chunks/GrAutocomplete-gY4Xopza.js";
24
26
  import { n as GR_SKELETON_VARIANTS, t as GrSkeleton_default } from "./components/GrSkeleton/chunks/GrSkeleton-DEvNE3bC.js";
25
27
  import { n as GrAvatar_default, t as GrAvatarGroup_default } from "./components/GrAvatar/chunks/GrAvatar-CVUujLmn.js";
26
28
  import { l as initialsFrom, n as grAvatarSafelist, r as GR_AVATAR_STATUSES, t as grAvatarConfig } from "./chunks/config-DP7eseR1.js";
@@ -32,7 +34,7 @@ import { i as GR_BOTTOM_NAV_POSITIONS, n as grBottomNavSafelist, r as GR_BOTTOM_
32
34
  import { t as GrBottomNav_default } from "./components/GrBottomNav/chunks/GrBottomNav-9GH7Dd9E.js";
33
35
  import { t as GrLink_default } from "./components/GrLink/chunks/GrLink-D-cgUMXW.js";
34
36
  import { m as resolveBreadcrumbsLayout, n as grBreadcrumbsSafelist, p as resolveBreadcrumbsFit, t as grBreadcrumbsConfig } from "./chunks/config-DKdlqXiY.js";
35
- import { t as GrBreadcrumbs_default } from "./components/GrBreadcrumbs/chunks/GrBreadcrumbs-BCNGDS6k.js";
37
+ import { t as GrBreadcrumbs_default } from "./components/GrBreadcrumbs/chunks/GrBreadcrumbs-DS_-PBVt.js";
36
38
  import { n as useGrButtonGroup } from "./chunks/context-BfIQv7m1.js";
37
39
  import { a as grButtonClass } from "./chunks/grButtonStyles-B_-YRE__.js";
38
40
  import { t as GrButton_default } from "./components/GrButton/chunks/GrButton-D0m_z0XW.js";
@@ -49,52 +51,56 @@ import "./components/GrCheckbox/index.js";
49
51
  import { t as GrCheckboxGroup_default } from "./components/GrCheckboxGroup/chunks/GrCheckboxGroup-CXTx2Z5H.js";
50
52
  import { t as grCheckboxGroupConfig } from "./chunks/config-BuGlNPE9.js";
51
53
  import { n as grCollapseSafelist, t as grCollapseConfig } from "./chunks/config-DU2DNSRx2.js";
52
- import { a as GR_COLLAPSE_ICON_POSITIONS, i as GR_COLLAPSE_HEADING_LEVELS, n as GrCollapse_default, r as GR_COLLAPSE_CONTEXT, t as GrCollapseItem_default } from "./components/GrCollapse/chunks/GrCollapse-B2Fc6A9r.js";
54
+ import { a as GR_COLLAPSE_ICON_POSITIONS, i as GR_COLLAPSE_HEADING_LEVELS, n as GrCollapse_default, r as GR_COLLAPSE_CONTEXT, t as GrCollapseItem_default } from "./components/GrCollapse/chunks/GrCollapse-Kk0DE8tb.js";
53
55
  import { n as grIconSafelist, t as grIconConfig } from "./chunks/config-Cp0DE0GH.js";
54
- import { t as GrInput_default } from "./components/GrInput/chunks/GrInput-DD2gYdqS.js";
56
+ import { t as GrInput_default } from "./components/GrInput/chunks/GrInput-2wd7Crs0.js";
55
57
  import { useFocusTrap } from "./composables/useFocusTrap.js";
56
- import { t as GrPopover_default } from "./components/GrPopover/chunks/GrPopover-B1eRCOoO.js";
57
- import { t as GrSlider_default } from "./components/GrSlider/chunks/GrSlider-DkU9IQSX.js";
58
- import { n as formatHexColor, r as parseHexColor, t as GrColorPicker_default } from "./components/GrColorPicker/chunks/GrColorPicker-bnYBRGk8.js";
59
- import { n as grColorPickerSafelist, t as grColorPickerConfig } from "./chunks/config-DxCTVBfx.js";
60
- import { t as GrKbd_default } from "./components/GrKbd/chunks/GrKbd-DRFPvW3G.js";
61
- import { t as GrModal_default } from "./components/GrModal/chunks/GrModal-B8I78T0N.js";
62
- import { i as matchCommandItem, n as filterCommandItems, r as groupCommandItems, t as GrCommandPalette_default } from "./components/GrCommandPalette/chunks/GrCommandPalette-MWDYDPNC.js";
63
- import { n as grCommandPaletteSafelist, t as grCommandPaletteConfig } from "./chunks/config-K0C2tcLB.js";
58
+ import { t as GrPopover_default } from "./components/GrPopover/chunks/GrPopover-DMH4Jjst.js";
59
+ import { useDragGesture } from "./composables/useDragGesture.js";
60
+ import { t as GrSlider_default } from "./components/GrSlider/chunks/GrSlider-CyhVsNKn.js";
61
+ import { n as formatHexColor, r as parseHexColor, t as GrColorPicker_default } from "./components/GrColorPicker/chunks/GrColorPicker-CkBTzkqn.js";
62
+ import { n as grColorPickerSafelist, t as grColorPickerConfig } from "./chunks/config-BsPDQ0dS.js";
63
+ import { a as GR_KBD_TOKENS, o as findKbdToken, t as GrKbd_default } from "./components/GrKbd/chunks/GrKbd-DU2lBkRV.js";
64
+ import { t as GrModal_default } from "./components/GrModal/chunks/GrModal-CbMMr6W1.js";
65
+ import { i as matchCommandItem, n as filterCommandItems, r as groupCommandItems, t as GrCommandPalette_default } from "./components/GrCommandPalette/chunks/GrCommandPalette-BugTlGdj.js";
66
+ import { n as grCommandPaletteSafelist, t as grCommandPaletteConfig } from "./chunks/config-9PYRZlKE.js";
64
67
  import { t as GrConfigProvider_default } from "./components/GrConfigProvider/chunks/GrConfigProvider-BA6JO7V6.js";
65
68
  import { t as grConfigProviderConfig } from "./chunks/config-B7W9VlZ7.js";
66
69
  import { a as resolveGrDialogTitle, i as resolveGrDialogSectionConfig, n as DEFAULT_GR_DIALOG_FOOTER_CONFIG, r as DEFAULT_GR_DIALOG_HEADER_CONFIG, t as DEFAULT_GR_DIALOG_BODY_CONFIG } from "./chunks/dialogShared-CxW62PQE.js";
67
- import { i as GrDialogFooter_default, n as GrDialogHeader_default, r as GrDialogCloseButton_default, t as GrDialog_default } from "./components/GrDialog/chunks/GrDialog-AE1gIZuz.js";
70
+ import { i as GrDialogFooter_default, n as GrDialogHeader_default, r as GrDialogCloseButton_default, t as GrDialog_default } from "./components/GrDialog/chunks/GrDialog-C3tYaA8v.js";
68
71
  import { _ as DEFAULT_AUTO_HIDE_KINDS, a as extendDefaultParsers, c as problemDetailsParser, d as networkErrorParser, f as laravelValidationParser, g as abortErrorParser, h as fileValidationParser, i as defaultResponseErrorParsers, l as plainMessageParser, m as httpStatusParser, n as coreResponseErrorParsers, o as resolveResponseErrorTitle, p as jsonApiErrorParser, r as createResponseErrorClassifier, s as responseErrorParserPresets, t as GrResponseErrorBanner_default, u as normalizeError, v as DEFAULT_RESPONSE_ERROR_TEXTS, y as DEFAULT_TONE_BY_KIND } from "./components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-C7W9mgYN.js";
69
- import { t as GrConfirmDialog_default } from "./components/GrConfirmDialog/chunks/GrConfirmDialog-DaQmlp1_.js";
72
+ import { t as GrConfirmDialog_default } from "./components/GrConfirmDialog/chunks/GrConfirmDialog-Ds5T0GiR.js";
70
73
  import { t as grConfirmDialogConfig } from "./chunks/config-A-bBiotF.js";
71
74
  import "./components/GrConfirmDialog/index.js";
72
- import { t as GrTable_default } from "./components/GrTable/chunks/GrTable-BB-mI_NM.js";
73
- import { i as sortRows, n as compareCells, r as isEmptyCell, t as GrDataTable_default } from "./components/GrDataTable/chunks/GrDataTable-DVFho9Cj.js";
74
- import { n as grDataTableSafelist, t as grDataTableConfig } from "./chunks/config-BNfQwyL4.js";
75
+ import { t as GrTable_default } from "./components/GrTable/chunks/GrTable-BfqgwETQ.js";
76
+ import { useAnnouncer } from "./composables/useAnnouncer.js";
77
+ import { t as useDragSort } from "./chunks/useDragSort-0l47h4yb.js";
78
+ import { useRovingFocus } from "./composables/useRovingFocus.js";
79
+ import { i as sortRows, n as compareCells, r as isEmptyCell, t as GrDataTable_default } from "./components/GrDataTable/chunks/GrDataTable-CYe2A2WA.js";
80
+ import { n as grDataTableSafelist, t as grDataTableConfig } from "./chunks/config-BJ7Bv_G2.js";
75
81
  import { t as grDialogSafelist } from "./chunks/safelist-CkF4v7DC.js";
76
82
  import "./components/GrDialog/index.js";
77
83
  import { n as useGrFormContext, t as GR_FORM_KEY } from "./chunks/context-Bfrgsluh.js";
78
84
  import { t as GrFormField_default } from "./components/GrFormField/chunks/GrFormField-CL5rcgj6.js";
79
- import { t as GrTextarea_default } from "./components/GrTextarea/chunks/GrTextarea-DUh5Tlo4.js";
85
+ import { t as GrTextarea_default } from "./components/GrTextarea/chunks/GrTextarea-DSvd1nSy.js";
80
86
  import { n as getByPath, o as runFieldRules, r as isEmpty, t as createGrFormMessageResolver } from "./chunks/validation-5HhpanPP.js";
81
- import { t as GrPromptDialog_default } from "./components/GrPromptDialog/chunks/GrPromptDialog-Ct174NVD.js";
87
+ import { t as GrPromptDialog_default } from "./components/GrPromptDialog/chunks/GrPromptDialog-Pwr9NPxK.js";
82
88
  import { n as GrFormErrorBanner_default, r as GrUploadErrorBanner_default, t as useResponseError } from "./components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-DhX4jjay.js";
83
- import { a as teardownDialogService, i as granularityDialogServicePlugin, n as GRANULARITY_DIALOG_SERVICE_STATE, o as useDialogService, r as dialogService, t as GrDialogServiceHost_default } from "./components/GrDialogService/chunks/GrDialogService-B4DYWDkA.js";
89
+ import { a as teardownDialogService, i as granularityDialogServicePlugin, n as GRANULARITY_DIALOG_SERVICE_STATE, o as useDialogService, r as dialogService, t as GrDialogServiceHost_default } from "./components/GrDialogService/chunks/GrDialogService-CTBiiJDI.js";
84
90
  import { t as grDialogServiceConfig } from "./chunks/config-CjXjhphs.js";
85
- import { n as grDividerSafelist, t as grDividerConfig } from "./chunks/config-CY0_6cMi.js";
86
- import { t as GrDivider_default } from "./components/GrDivider/chunks/GrDivider-B2Xwc_QO.js";
91
+ import { n as grDividerSafelist, t as grDividerConfig } from "./chunks/config-CY0_6cMi2.js";
92
+ import { t as GrDivider_default } from "./components/GrDivider/chunks/GrDivider-xxq1_fIl.js";
87
93
  import { n as grDrawerSafelist, t as grDrawerConfig } from "./chunks/config-D94Z9po52.js";
88
- import { t as GrDrawer_default } from "./components/GrDrawer/chunks/GrDrawer-DQwi6aRw.js";
89
- import { t as GrDropdown_default } from "./components/GrDropdown/chunks/GrDropdown-BLng6V1m.js";
94
+ import { t as GrDrawer_default } from "./components/GrDrawer/chunks/GrDrawer-BSSuiNHU.js";
95
+ import { t as GrDropdown_default } from "./components/GrDropdown/chunks/GrDropdown-Bh6UK2M5.js";
90
96
  import { n as grDropdownSafelist, t as grDropdownConfig } from "./chunks/config-BViooYNv.js";
91
97
  import "./components/GrDropdown/index.js";
92
- import { n as grDropdownMenuSafelist, t as grDropdownMenuConfig } from "./chunks/config-BKvX0q10.js";
93
- import { a as isMenuSection, c as GrDropdownMenuItem_default, d as GrDropdownMenuDivider_default, i as isMenuAction, l as GrDropdownMenuGroup_default, n as GrDropdownMenuColumn_default, o as isMenuSeparator, r as GrDropdownMenu_default, s as GrDropdownMenuList_default, t as GrDropdownMenuColumns_default, u as GrDropdownMenuHeader_default } from "./components/GrDropdownMenu/chunks/GrDropdownMenu-BImk2Vs7.js";
98
+ import { n as grDropdownMenuSafelist, t as grDropdownMenuConfig } from "./chunks/config-BKvX0q102.js";
99
+ import { a as isMenuSection, c as GrDropdownMenuItem_default, d as GrDropdownMenuDivider_default, i as isMenuAction, l as GrDropdownMenuGroup_default, n as GrDropdownMenuColumn_default, o as isMenuSeparator, r as GrDropdownMenu_default, s as GrDropdownMenuList_default, t as GrDropdownMenuColumns_default, u as GrDropdownMenuHeader_default } from "./components/GrDropdownMenu/chunks/GrDropdownMenu-LyfEFUbg.js";
94
100
  import { t as GrEmptyState_default } from "./components/GrEmptyState/chunks/GrEmptyState-W7Irx3vc.js";
95
101
  import { i as GR_EMPTY_STATE_VARIANTS, n as grEmptyStateSafelist, r as GR_EMPTY_STATE_HEADING_LEVELS, t as grEmptyStateConfig } from "./chunks/config-DvQIb4kb.js";
96
- import { t as GrProgressBar_default } from "./components/GrProgressBar/chunks/GrProgressBar-BiHnaitu.js";
97
- import { a as createFileEntry, i as GrUploadHttpError, n as GR_UPLOAD_STATE_IDLE, o as summarizeFileEntries, r as GrUploadAbortError, t as GrFileUpload_default } from "./components/GrFileUpload/chunks/GrFileUpload-D0B-BEsd.js";
102
+ import { t as GrProgressBar_default } from "./components/GrProgressBar/chunks/GrProgressBar-xwbNM9QB.js";
103
+ import { a as createFileEntry, i as GrUploadHttpError, n as GR_UPLOAD_STATE_IDLE, o as summarizeFileEntries, r as GrUploadAbortError, t as GrFileUpload_default } from "./components/GrFileUpload/chunks/GrFileUpload-DuDzC43S.js";
98
104
  import { n as grFileUploadSafelist, t as grFileUploadConfig } from "./chunks/config-CN970ZcJ.js";
99
105
  import { t as GrForm_default } from "./components/GrForm/chunks/GrForm-BCHCfIMv.js";
100
106
  import { t as grFormConfig } from "./chunks/config-Droqn55j.js";
@@ -104,14 +110,13 @@ import { t as GrFormFile_default } from "./components/GrFormFile/chunks/GrFormFi
104
110
  import { n as grFormFileSafelist, t as grFormFileConfig } from "./chunks/config-COvrUfhR.js";
105
111
  import { n as grFormSectionSafelist, r as GR_FORM_SECTION_HEADING_LEVELS, t as grFormSectionConfig } from "./chunks/config-DhHbU3zO.js";
106
112
  import { t as GrFormSection_default } from "./components/GrFormSection/chunks/GrFormSection-BEh5n4jF.js";
107
- import { useAnnouncer } from "./composables/useAnnouncer.js";
108
- import { t as GrImageViewer_default } from "./components/GrImageViewer/chunks/GrImageViewer-BeCnE8XQ.js";
113
+ import { t as GrImageViewer_default } from "./components/GrImageViewer/chunks/GrImageViewer-DfD4euH5.js";
109
114
  import { n as grImageViewerSafelist, t as grImageViewerConfig } from "./chunks/config-BeZRuonp.js";
110
115
  import { n as grInputSafelist, t as grInputConfig } from "./chunks/config-DpeQchsV.js";
111
116
  import "./components/GrInput/index.js";
112
117
  import { n as grInputTagSafelist, t as grInputTagConfig } from "./chunks/config-BN4sXYXn.js";
113
- import { t as GrInputTag_default } from "./components/GrInputTag/chunks/GrInputTag-DmNunixz.js";
114
- import { n as grKbdSafelist, t as grKbdConfig } from "./chunks/config-B-g6lT19.js";
118
+ import { t as GrInputTag_default } from "./components/GrInputTag/chunks/GrInputTag-CyV2eY7Z.js";
119
+ import { n as grKbdSafelist, t as grKbdConfig } from "./chunks/config-DA6SnEoy.js";
115
120
  import "./components/GrKbd/index.js";
116
121
  import { n as grLinkSafelist, t as grLinkConfig } from "./chunks/config-Cl4ST6Qd.js";
117
122
  import "./components/GrLink/index.js";
@@ -124,58 +129,62 @@ import "./components/GrModal/index.js";
124
129
  import { t as GrNavbar_default } from "./components/GrNavbar/chunks/GrNavbar-CF0KbM_6.js";
125
130
  import { n as grNavbarSafelist, t as grNavbarConfig } from "./chunks/config-Bpt9Xbxm.js";
126
131
  import { n as grNumberInputSafelist, t as grNumberInputConfig } from "./chunks/config-zjeAJ4ho.js";
127
- import { t as GrNumberInput_default } from "./components/GrNumberInput/chunks/GrNumberInput-CZOyPz4J.js";
128
- import { t as GrSelect_default } from "./components/GrSelect/chunks/GrSelect-aqkPCqjd.js";
132
+ import { t as GrNumberInput_default } from "./components/GrNumberInput/chunks/GrNumberInput-B5CHZDBj.js";
133
+ import { t as GrSelect_default } from "./components/GrSelect/chunks/GrSelect-B-Voni7D.js";
129
134
  import { n as grPaginationSafelist, t as grPaginationConfig } from "./chunks/config-DSJY6aEl.js";
130
- import { t as GrPagination_default } from "./components/GrPagination/chunks/GrPagination-B6N0QZBf.js";
135
+ import { t as GrPagination_default } from "./components/GrPagination/chunks/GrPagination-BM4FrD6Q.js";
131
136
  import { n as grPopoverSafelist, t as grPopoverConfig } from "./chunks/config-BSyiFlbi.js";
132
137
  import "./components/GrPopover/index.js";
133
138
  import { n as grProgressBarSafelist, r as GR_TONES, t as grProgressBarConfig } from "./chunks/config-CQzGyi1C.js";
134
139
  import "./components/GrProgressBar/index.js";
135
- import { i as clampProgress, n as GR_PROGRESS_CIRCLE_SHAPES, r as arcGeometry, t as GrProgressCircle_default } from "./components/GrProgressCircle/chunks/GrProgressCircle-CTogjcHz.js";
136
- import { n as grProgressCircleSafelist, t as grProgressCircleConfig } from "./chunks/config-CvC0sX8p.js";
140
+ import { i as clampProgress, n as GR_PROGRESS_CIRCLE_SHAPES, r as arcGeometry, t as GrProgressCircle_default } from "./components/GrProgressCircle/chunks/GrProgressCircle-B8olXRo5.js";
141
+ import { n as grProgressCircleSafelist, t as grProgressCircleConfig } from "./chunks/config-MRvhUl-O.js";
137
142
  import { t as grPromptDialogConfig } from "./chunks/config-C0Ea9ePP.js";
138
143
  import "./components/GrPromptDialog/index.js";
139
144
  import { n as grRadioSafelist, t as grRadioConfig } from "./chunks/config-BqFjr3tN.js";
140
- import { n as GR_RADIO_GROUP_CONTEXT, t as GrRadio_default } from "./components/GrRadio/chunks/GrRadio-DksDro_U.js";
141
- import { t as GrRadioGroup_default } from "./components/GrRadioGroup/chunks/GrRadioGroup-BOIhejE6.js";
145
+ import { n as GR_RADIO_GROUP_CONTEXT, t as GrRadio_default } from "./components/GrRadio/chunks/GrRadio-DWiRaMzt.js";
146
+ import { t as GrRadioGroup_default } from "./components/GrRadioGroup/chunks/GrRadioGroup-DIuBw0wk.js";
142
147
  import { t as grRadioGroupConfig } from "./chunks/config-QaIc_gRa.js";
143
- import { n as grRatingSafelist, t as grRatingConfig } from "./chunks/config-CpwwkFBO.js";
144
- import { t as GrRating_default } from "./components/GrRating/chunks/GrRating-JrHXz0Rv.js";
148
+ import { n as grRatingSafelist, t as grRatingConfig } from "./chunks/config-Baj7Wvx-.js";
149
+ import { t as GrRating_default } from "./components/GrRating/chunks/GrRating-DVFH3lYu.js";
145
150
  import { n as grSegmentedSafelist, r as GR_SEGMENTED_ORIENTATIONS, t as grSegmentedConfig } from "./chunks/config-B-iNaGdw.js";
146
- import { t as GrSegmented_default } from "./components/GrSegmented/chunks/GrSegmented-BQIlH5KI.js";
151
+ import { t as GrSegmented_default } from "./components/GrSegmented/chunks/GrSegmented-CQw3ijqa.js";
147
152
  import { n as grSelectSafelist, t as grSelectConfig } from "./chunks/config-Cwd3yjRw.js";
148
153
  import "./components/GrSelect/index.js";
149
- import { i as GR_SIDEBAR_POSITIONS, n as grSidebarSafelist, r as GR_SIDEBAR_LANDMARKS, t as grSidebarConfig } from "./chunks/config-Rw9OyW70.js";
150
- import { n as GrSidebarItem_default, r as GrSidebar_default, t as GrSidebarGroup_default } from "./components/GrSidebar/chunks/GrSidebar-DRGnnViw.js";
151
- import { t as grSkeletonConfig } from "./chunks/config-8Pcutu1j.js";
154
+ import { i as GR_SIDEBAR_POSITIONS, n as grSidebarSafelist, r as GR_SIDEBAR_LANDMARKS, t as grSidebarConfig } from "./chunks/config-Rw9OyW702.js";
155
+ import { n as GrSidebarItem_default, r as GrSidebar_default, t as GrSidebarGroup_default } from "./components/GrSidebar/chunks/GrSidebar-i7AxjhY_.js";
156
+ import { t as grSkeletonConfig } from "./chunks/config-8Pcutu1j2.js";
152
157
  import "./components/GrSkeleton/index.js";
153
- import { n as grSliderSafelist, t as grSliderConfig } from "./chunks/config-T3qdQBgU.js";
158
+ import { n as grSliderSafelist, t as grSliderConfig } from "./chunks/config-T3qdQBgU2.js";
154
159
  import "./components/GrSlider/index.js";
155
- import { n as grSplitterSafelist, t as grSplitterConfig } from "./chunks/config-BE6n20np.js";
156
- import { a as sizeFromPointer, i as shouldCollapse, n as GR_SPLITTER_ORIENTATIONS, r as clampSize, t as GrSplitter_default } from "./components/GrSplitter/chunks/GrSplitter-7To8jbJ8.js";
157
- import { n as formatStatisticValue, t as GrStatistic_default } from "./components/GrStatistic/chunks/GrStatistic-CttyoYPT.js";
158
- import { n as grStatisticSafelist, t as grStatisticConfig } from "./chunks/config-D8tSR2uS.js";
159
- import { n as grSwitchSafelist, t as grSwitchConfig } from "./chunks/config-BoNR7_PD.js";
160
- import { t as GrSwitch_default } from "./components/GrSwitch/chunks/GrSwitch-B9TYbiih.js";
160
+ import { n as grSortableListSafelist, t as grSortableListConfig } from "./chunks/config-DAX8Deh1.js";
161
+ import { t as GrSortableList_default } from "./components/GrSortableList/chunks/GrSortableList-XB7mXM1W.js";
162
+ import { n as grSplitterSafelist, t as grSplitterConfig } from "./chunks/config-BE6n20np2.js";
163
+ import { a as sizeFromPointer, i as shouldCollapse, n as GR_SPLITTER_ORIENTATIONS, r as clampSize, t as GrSplitter_default } from "./components/GrSplitter/chunks/GrSplitter-BzxVQwbY.js";
164
+ import { n as formatStatisticValue, t as GrStatistic_default } from "./components/GrStatistic/chunks/GrStatistic-DOsM6s5V.js";
165
+ import { n as grStatisticSafelist, t as grStatisticConfig } from "./chunks/config-Be9k9bOf.js";
166
+ import { n as grSwitchSafelist, t as grSwitchConfig } from "./chunks/config-BoNR7_PD2.js";
167
+ import { t as GrSwitch_default } from "./components/GrSwitch/chunks/GrSwitch-DpyvVrZG.js";
161
168
  import { n as grTableSafelist, t as grTableConfig } from "./chunks/config-WTNhdh6T2.js";
162
169
  import "./components/GrTable/index.js";
163
170
  import { n as GrTabPanels_default, r as GR_TAB_PANELS_KEY, t as GrTabPanel_default } from "./components/GrTabPanels/chunks/GrTabPanels-BVe1CZdJ.js";
164
- import { t as grTabPanelsConfig } from "./chunks/config-eXB87DOi2.js";
171
+ import { t as grTabPanelsConfig } from "./chunks/config-eXB87DOi.js";
165
172
  import { n as grTabsSafelist, r as GR_TABS_VARIANTS, t as grTabsConfig } from "./chunks/config-_qPUfb6-2.js";
166
- import { t as GrTabs_default } from "./components/GrTabs/chunks/GrTabs-B8CDq2D9.js";
167
- import { n as grTextareaSafelist, t as grTextareaConfig } from "./chunks/config-Zc_bUvZY2.js";
173
+ import { t as GrTabs_default } from "./components/GrTabs/chunks/GrTabs-f3-oQenu.js";
174
+ import { n as grTextareaSafelist, t as grTextareaConfig } from "./chunks/config-BDfTXHo12.js";
168
175
  import "./components/GrTextarea/index.js";
169
- import { i as GR_TIMELINE_HEADING_LEVELS, n as GrTimeline_default, r as groupTimelineItems, t as GrTimelineItem_default } from "./components/GrTimeline/chunks/GrTimeline-CE9b3s18.js";
170
- import { n as grTimelineSafelist, t as grTimelineConfig } from "./chunks/config-Cw6TDzWv2.js";
176
+ import { i as GR_TIMELINE_HEADING_LEVELS, n as GrTimeline_default, r as groupTimelineItems, t as GrTimelineItem_default } from "./components/GrTimeline/chunks/GrTimeline-B-h2Yanw.js";
177
+ import { n as grTimelineSafelist, t as grTimelineConfig } from "./chunks/config-COpuWGr_.js";
171
178
  import { GRANULARITY_TOAST_STATE, granularityToastPlugin, useToast } from "./composables/useToast.js";
172
- import { n as grToasterSafelist, t as grToasterConfig } from "./chunks/config-LGrZIdaZ.js";
173
- import { t as GrToaster_default } from "./components/GrToaster/chunks/GrToaster-BKQy3Srm.js";
174
- import { n as grTooltipSafelist, t as grTooltipConfig } from "./chunks/config-CN2ULSQL2.js";
175
- import { t as GrTooltip_default } from "./components/GrTooltip/chunks/GrTooltip-DEbejfhA.js";
176
- import { t as GrTree_default } from "./components/GrTree/chunks/GrTree-wfdbvygw.js";
177
- import { n as grTreeSafelist, t as grTreeConfig } from "./chunks/config-DpqOnJiz2.js";
179
+ import { n as grToasterSafelist, t as grToasterConfig } from "./chunks/config-ScuvHw6k2.js";
180
+ import { t as GrToaster_default } from "./components/GrToaster/chunks/GrToaster-Dqja0Lf9.js";
181
+ import { n as grTooltipSafelist, t as grTooltipConfig } from "./chunks/config-CN2ULSQL.js";
182
+ import { t as GrTooltip_default } from "./components/GrTooltip/chunks/GrTooltip-Cn08heWz.js";
183
+ import { t as GrTree_default } from "./components/GrTree/chunks/GrTree-BR9a2pay.js";
184
+ import { n as grTreeSafelist, t as grTreeConfig } from "./chunks/config-CDat1wXf2.js";
178
185
  import { n as grTreeSelectSafelist, t as grTreeSelectConfig } from "./chunks/config-DCFvmHEv.js";
179
- import { t as GrTreeSelect_default } from "./components/GrTreeSelect/chunks/GrTreeSelect-lLWmAMtI.js";
186
+ import { t as GrTreeSelect_default } from "./components/GrTreeSelect/chunks/GrTreeSelect--muUeB0v.js";
187
+ import "./composables/useGrComponentConfig.js";
188
+ import "./composables/useGranularityTranslations.js";
180
189
  import { GRANULARITY_THEME_STATE, granularityThemePlugin, initThemeEarly, useTheme } from "./composables/useTheme.js";
181
- export { DEFAULT_AUTO_HIDE_KINDS, DEFAULT_GR_DIALOG_BODY_CONFIG, DEFAULT_GR_DIALOG_FOOTER_CONFIG, DEFAULT_GR_DIALOG_HEADER_CONFIG, DEFAULT_RESPONSE_ERROR_TEXTS, DEFAULT_TONE_BY_KIND, FILE_VALIDATION_I18N_NAMESPACE, FileValidationError, GRANULARITY_DIALOG_SERVICE_STATE, GRANULARITY_THEME_STATE, GRANULARITY_TOAST_STATE, GR_ALERT_VARIANTS, GR_AVATAR_STATUSES, GR_BADGE_WRAP_PLACEMENTS, GR_BOTTOM_NAV_HIDE_ABOVE, GR_BOTTOM_NAV_POSITIONS, GR_CHECKBOX_GROUP_CONTEXT, GR_COLLAPSE_CONTEXT, GR_COLLAPSE_HEADING_LEVELS, GR_COLLAPSE_ICON_POSITIONS, GR_COMPONENT_SIZES, GR_CONFIG_KEY, GR_EMPTY_STATE_HEADING_LEVELS, GR_EMPTY_STATE_VARIANTS, GR_FORM_FIELD_KEY, GR_FORM_KEY, GR_FORM_SECTION_HEADING_LEVELS, GR_PROGRESS_CIRCLE_SHAPES, GR_RADIO_GROUP_CONTEXT, GR_SEGMENTED_ORIENTATIONS, GR_SIDEBAR_LANDMARKS, GR_SIDEBAR_POSITIONS, GR_SKELETON_VARIANTS, GR_SPLITTER_ORIENTATIONS, GR_TABS_VARIANTS, GR_TAB_PANELS_KEY, GR_TIMELINE_HEADING_LEVELS, GR_TONES, GR_UPLOAD_STATE_IDLE, GrAlert_default as GrAlert, GrAutocomplete_default as GrAutocomplete, GrAvatar_default as GrAvatar, GrAvatarGroup_default as GrAvatarGroup, GrBadge_default as GrBadge, GrBadgeWrap_default as GrBadgeWrap, GrBottomNav_default as GrBottomNav, GrBreadcrumbs_default as GrBreadcrumbs, GrButton_default as GrButton, GrButtonGroup_default as GrButtonGroup, GrCard_default as GrCard, GrCheckbox_default as GrCheckbox, GrCheckboxGroup_default as GrCheckboxGroup, GrCollapse_default as GrCollapse, GrCollapseItem_default as GrCollapseItem, GrColorPicker_default as GrColorPicker, GrCommandPalette_default as GrCommandPalette, GrConfigProvider_default as GrConfigProvider, GrConfirmDialog_default as GrConfirmDialog, GrDataTable_default as GrDataTable, GrDialog_default as GrDialog, GrDialogCloseButton_default as GrDialogCloseButton, GrDialogFooter_default as GrDialogFooter, GrDialogHeader_default as GrDialogHeader, GrDialogServiceHost_default as GrDialogServiceHost, GrDivider_default as GrDivider, GrDrawer_default as GrDrawer, GrDropdown_default as GrDropdown, GrDropdownMenu_default as GrDropdownMenu, GrDropdownMenuColumn_default as GrDropdownMenuColumn, GrDropdownMenuColumns_default as GrDropdownMenuColumns, GrDropdownMenuDivider_default as GrDropdownMenuDivider, GrDropdownMenuGroup_default as GrDropdownMenuGroup, GrDropdownMenuHeader_default as GrDropdownMenuHeader, GrDropdownMenuItem_default as GrDropdownMenuItem, GrDropdownMenuList_default as GrDropdownMenuList, GrEmptyState_default as GrEmptyState, GrFileUpload_default as GrFileUpload, GrForm_default as GrForm, GrFormErrorBanner_default as GrFormErrorBanner, GrFormField_default as GrFormField, GrFormFile_default as GrFormFile, GrFormSection_default as GrFormSection, GrIcon_default as GrIcon, GrImageViewer_default as GrImageViewer, GrInput_default as GrInput, GrInputTag_default as GrInputTag, GrKbd_default as GrKbd, GrLink_default as GrLink, GrList_default as GrList, GrListItem_default as GrListItem, GrLoading_default as GrLoading, GrModal_default as GrModal, GrNavbar_default as GrNavbar, GrNumberInput_default as GrNumberInput, GrPagination_default as GrPagination, GrPopover_default as GrPopover, GrProgressBar_default as GrProgressBar, GrProgressCircle_default as GrProgressCircle, GrPromptDialog_default as GrPromptDialog, GrRadio_default as GrRadio, GrRadioGroup_default as GrRadioGroup, GrRating_default as GrRating, GrResponseErrorBanner_default as GrResponseErrorBanner, GrSegmented_default as GrSegmented, GrSelect_default as GrSelect, GrSidebar_default as GrSidebar, GrSidebarGroup_default as GrSidebarGroup, GrSidebarItem_default as GrSidebarItem, GrSkeleton_default as GrSkeleton, GrSlider_default as GrSlider, GrSplitter_default as GrSplitter, GrStatistic_default as GrStatistic, GrSwitch_default as GrSwitch, GrTabPanel_default as GrTabPanel, GrTabPanels_default as GrTabPanels, GrTable_default as GrTable, GrTabs_default as GrTabs, GrTextarea_default as GrTextarea, GrTimeline_default as GrTimeline, GrTimelineItem_default as GrTimelineItem, GrToaster_default as GrToaster, GrTooltip_default as GrTooltip, GrTree_default as GrTree, GrTreeSelect_default as GrTreeSelect, GrUploadAbortError, GrUploadErrorBanner_default as GrUploadErrorBanner, GrUploadHttpError, abortErrorParser, acceptValidator, allowedExtensionsValidator, allowedMimeTypesValidator, arcGeometry, clampProgress, clampSize, compareCells, coreResponseErrorParsers, createFileEntry, createGrFormMessageResolver, createLoading, createResponseErrorClassifier, defaultResponseErrorParsers, dialogService, extendDefaultParsers, fileValidationI18nKey, fileValidationParser, filterCommandItems, formatBadgeValue, formatHexColor, formatStatisticValue, getByPath, grAlertConfig, grAutocompleteConfig, grAutocompleteSafelist, grAvatarConfig, grAvatarSafelist, grBadgeConfig, grBadgeSafelist, grBadgeWrapConfig, grBadgeWrapSafelist, grBottomNavConfig, grBottomNavSafelist, grBreadcrumbsConfig, grBreadcrumbsSafelist, grButtonClass, grButtonConfig, grButtonGroupConfig, grButtonSafelist, grCardConfig, grCardSafelist, grCheckboxConfig, grCheckboxGroupConfig, grCheckboxSafelist, grCollapseConfig, grCollapseSafelist, grColorPickerConfig, grColorPickerSafelist, grCommandPaletteConfig, grCommandPaletteSafelist, grConfigProviderConfig, grConfirmDialogConfig, grDataTableConfig, grDataTableSafelist, grDialogSafelist, grDialogServiceConfig, grDividerConfig, grDividerSafelist, grDrawerConfig, grDrawerSafelist, grDropdownConfig, grDropdownMenuConfig, grDropdownMenuSafelist, grDropdownSafelist, grEmptyStateConfig, grEmptyStateSafelist, grFileUploadConfig, grFileUploadSafelist, grFormConfig, grFormFieldConfig, grFormFieldSafelist, grFormFileConfig, grFormFileSafelist, grFormSectionConfig, grFormSectionSafelist, grIconConfig, grIconSafelist, grImageViewerConfig, grImageViewerSafelist, grInputConfig, grInputSafelist, grInputTagConfig, grInputTagSafelist, grKbdConfig, grKbdSafelist, grLinkConfig, grLinkSafelist, grListConfig, grListSafelist, grLoadingConfig, grLoadingSafelist, grModalConfig, grModalSafelist, grNavbarConfig, grNavbarSafelist, grNumberInputConfig, grNumberInputSafelist, grPaginationConfig, grPaginationSafelist, grPopoverConfig, grPopoverSafelist, grProgressBarConfig, grProgressBarSafelist, grProgressCircleConfig, grProgressCircleSafelist, grPromptDialogConfig, grRadioConfig, grRadioGroupConfig, grRadioSafelist, grRatingConfig, grRatingSafelist, grSegmentedConfig, grSegmentedSafelist, grSelectConfig, grSelectSafelist, grSidebarConfig, grSidebarSafelist, grSkeletonConfig, grSliderConfig, grSliderSafelist, grSplitterConfig, grSplitterSafelist, grStatisticConfig, grStatisticSafelist, grSwitchConfig, grSwitchSafelist, grTabPanelsConfig, grTableConfig, grTableSafelist, grTabsConfig, grTabsSafelist, grTextareaConfig, grTextareaSafelist, grTimelineConfig, grTimelineSafelist, grToasterConfig, grToasterSafelist, grTooltipConfig, grTooltipSafelist, grTreeConfig, grTreeSafelist, grTreeSelectConfig, grTreeSelectSafelist, granularityDialogServicePlugin, granularityThemePlugin, granularityToastPlugin, groupCommandItems, groupTimelineItems, httpStatusParser, initThemeEarly, initialsFrom, isEmpty, isEmptyCell, isMenuAction, isMenuSection, isMenuSeparator, jsonApiErrorParser, laravelValidationParser, matchAccept, matchCommandItem, maxCountValidator, maxFileSize, maxTotalSizeBytesValidator, networkErrorParser, normalizeError, normalizeFiles, parseHexColor, plainMessageParser, problemDetailsParser, resolveBreadcrumbsFit, resolveBreadcrumbsLayout, resolveFileValidationMessage, resolveGrConfig, resolveGrDialogSectionConfig, resolveGrDialogTitle, resolveResponseErrorTitle, responseErrorParserPresets, runFieldRules, runFileValidators, shouldCollapse, sizeFromPointer, sortRows, summarizeFileEntries, teardownDialogService, useAnnouncer, useDialogService, useDismissible, useFloating, useFocusTrap, useGrButtonGroup, useGrComponentDefaults, useGrComponentProp, useGrComponentSize, useGrConfig, useGrFormContext, useGrFormControl, useGrFormFieldContext, useOverlayLayer, usePortalTarget, useResponseError, useTheme, useToast, useVirtualList, vAutofocus, vAutosize, vClickOutside, vDropzone, vHotkey, vLoading };
190
+ export { DEFAULT_AUTO_HIDE_KINDS, DEFAULT_GR_DIALOG_BODY_CONFIG, DEFAULT_GR_DIALOG_FOOTER_CONFIG, DEFAULT_GR_DIALOG_HEADER_CONFIG, DEFAULT_RESPONSE_ERROR_TEXTS, DEFAULT_TONE_BY_KIND, FILE_VALIDATION_I18N_NAMESPACE, FileValidationError, GRANULARITY_DIALOG_SERVICE_STATE, GRANULARITY_THEME_STATE, GRANULARITY_TOAST_STATE, GR_ALERT_VARIANTS, GR_AVATAR_STATUSES, GR_BADGE_WRAP_PLACEMENTS, GR_BOTTOM_NAV_HIDE_ABOVE, GR_BOTTOM_NAV_POSITIONS, GR_CHECKBOX_GROUP_CONTEXT, GR_COLLAPSE_CONTEXT, GR_COLLAPSE_HEADING_LEVELS, GR_COLLAPSE_ICON_POSITIONS, GR_COMPONENT_SIZES, GR_CONFIG_KEY, GR_EMPTY_STATE_HEADING_LEVELS, GR_EMPTY_STATE_VARIANTS, GR_FORM_FIELD_KEY, GR_FORM_KEY, GR_FORM_SECTION_HEADING_LEVELS, GR_KBD_TOKENS, GR_PROGRESS_CIRCLE_SHAPES, GR_RADIO_GROUP_CONTEXT, GR_SEGMENTED_ORIENTATIONS, GR_SIDEBAR_LANDMARKS, GR_SIDEBAR_POSITIONS, GR_SKELETON_VARIANTS, GR_SPLITTER_ORIENTATIONS, GR_TABS_VARIANTS, GR_TAB_PANELS_KEY, GR_TIMELINE_HEADING_LEVELS, GR_TONES, GR_UPLOAD_STATE_IDLE, GrAlert_default as GrAlert, GrAutocomplete_default as GrAutocomplete, GrAvatar_default as GrAvatar, GrAvatarGroup_default as GrAvatarGroup, GrBadge_default as GrBadge, GrBadgeWrap_default as GrBadgeWrap, GrBottomNav_default as GrBottomNav, GrBreadcrumbs_default as GrBreadcrumbs, GrButton_default as GrButton, GrButtonGroup_default as GrButtonGroup, GrCard_default as GrCard, GrCheckbox_default as GrCheckbox, GrCheckboxGroup_default as GrCheckboxGroup, GrCollapse_default as GrCollapse, GrCollapseItem_default as GrCollapseItem, GrColorPicker_default as GrColorPicker, GrCommandPalette_default as GrCommandPalette, GrConfigProvider_default as GrConfigProvider, GrConfirmDialog_default as GrConfirmDialog, GrDataTable_default as GrDataTable, GrDialog_default as GrDialog, GrDialogCloseButton_default as GrDialogCloseButton, GrDialogFooter_default as GrDialogFooter, GrDialogHeader_default as GrDialogHeader, GrDialogServiceHost_default as GrDialogServiceHost, GrDivider_default as GrDivider, GrDrawer_default as GrDrawer, GrDropdown_default as GrDropdown, GrDropdownMenu_default as GrDropdownMenu, GrDropdownMenuColumn_default as GrDropdownMenuColumn, GrDropdownMenuColumns_default as GrDropdownMenuColumns, GrDropdownMenuDivider_default as GrDropdownMenuDivider, GrDropdownMenuGroup_default as GrDropdownMenuGroup, GrDropdownMenuHeader_default as GrDropdownMenuHeader, GrDropdownMenuItem_default as GrDropdownMenuItem, GrDropdownMenuList_default as GrDropdownMenuList, GrEmptyState_default as GrEmptyState, GrFileUpload_default as GrFileUpload, GrForm_default as GrForm, GrFormErrorBanner_default as GrFormErrorBanner, GrFormField_default as GrFormField, GrFormFile_default as GrFormFile, GrFormSection_default as GrFormSection, GrIcon_default as GrIcon, GrImageViewer_default as GrImageViewer, GrInput_default as GrInput, GrInputTag_default as GrInputTag, GrKbd_default as GrKbd, GrLink_default as GrLink, GrList_default as GrList, GrListItem_default as GrListItem, GrLoading_default as GrLoading, GrModal_default as GrModal, GrNavbar_default as GrNavbar, GrNumberInput_default as GrNumberInput, GrPagination_default as GrPagination, GrPopover_default as GrPopover, GrProgressBar_default as GrProgressBar, GrProgressCircle_default as GrProgressCircle, GrPromptDialog_default as GrPromptDialog, GrRadio_default as GrRadio, GrRadioGroup_default as GrRadioGroup, GrRating_default as GrRating, GrResponseErrorBanner_default as GrResponseErrorBanner, GrSegmented_default as GrSegmented, GrSelect_default as GrSelect, GrSidebar_default as GrSidebar, GrSidebarGroup_default as GrSidebarGroup, GrSidebarItem_default as GrSidebarItem, GrSkeleton_default as GrSkeleton, GrSlider_default as GrSlider, GrSortableList_default as GrSortableList, GrSplitter_default as GrSplitter, GrStatistic_default as GrStatistic, GrSwitch_default as GrSwitch, GrTabPanel_default as GrTabPanel, GrTabPanels_default as GrTabPanels, GrTable_default as GrTable, GrTabs_default as GrTabs, GrTextarea_default as GrTextarea, GrTimeline_default as GrTimeline, GrTimelineItem_default as GrTimelineItem, GrToaster_default as GrToaster, GrTooltip_default as GrTooltip, GrTree_default as GrTree, GrTreeSelect_default as GrTreeSelect, GrUploadAbortError, GrUploadErrorBanner_default as GrUploadErrorBanner, GrUploadHttpError, abortErrorParser, acceptValidator, allowedExtensionsValidator, allowedMimeTypesValidator, arcGeometry, clampProgress, clampSize, compareCells, coreResponseErrorParsers, createFileEntry, createGrFormMessageResolver, createLoading, createResponseErrorClassifier, defaultResponseErrorParsers, dialogService, extendDefaultParsers, fileValidationI18nKey, fileValidationParser, filterCommandItems, findKbdToken, formatBadgeValue, formatHexColor, formatStatisticValue, getByPath, grAlertConfig, grAutocompleteConfig, grAutocompleteSafelist, grAvatarConfig, grAvatarSafelist, grBadgeConfig, grBadgeSafelist, grBadgeWrapConfig, grBadgeWrapSafelist, grBottomNavConfig, grBottomNavSafelist, grBreadcrumbsConfig, grBreadcrumbsSafelist, grButtonClass, grButtonConfig, grButtonGroupConfig, grButtonSafelist, grCardConfig, grCardSafelist, grCheckboxConfig, grCheckboxGroupConfig, grCheckboxSafelist, grCollapseConfig, grCollapseSafelist, grColorPickerConfig, grColorPickerSafelist, grCommandPaletteConfig, grCommandPaletteSafelist, grConfigProviderConfig, grConfirmDialogConfig, grDataTableConfig, grDataTableSafelist, grDialogSafelist, grDialogServiceConfig, grDividerConfig, grDividerSafelist, grDrawerConfig, grDrawerSafelist, grDropdownConfig, grDropdownMenuConfig, grDropdownMenuSafelist, grDropdownSafelist, grEmptyStateConfig, grEmptyStateSafelist, grFileUploadConfig, grFileUploadSafelist, grFormConfig, grFormFieldConfig, grFormFieldSafelist, grFormFileConfig, grFormFileSafelist, grFormSectionConfig, grFormSectionSafelist, grIconConfig, grIconSafelist, grImageViewerConfig, grImageViewerSafelist, grInputConfig, grInputSafelist, grInputTagConfig, grInputTagSafelist, grKbdConfig, grKbdSafelist, grLinkConfig, grLinkSafelist, grListConfig, grListSafelist, grLoadingConfig, grLoadingSafelist, grModalConfig, grModalSafelist, grNavbarConfig, grNavbarSafelist, grNumberInputConfig, grNumberInputSafelist, grPaginationConfig, grPaginationSafelist, grPopoverConfig, grPopoverSafelist, grProgressBarConfig, grProgressBarSafelist, grProgressCircleConfig, grProgressCircleSafelist, grPromptDialogConfig, grRadioConfig, grRadioGroupConfig, grRadioSafelist, grRatingConfig, grRatingSafelist, grSegmentedConfig, grSegmentedSafelist, grSelectConfig, grSelectSafelist, grSidebarConfig, grSidebarSafelist, grSkeletonConfig, grSliderConfig, grSliderSafelist, grSortableListConfig, grSortableListSafelist, grSplitterConfig, grSplitterSafelist, grStatisticConfig, grStatisticSafelist, grSwitchConfig, grSwitchSafelist, grTabPanelsConfig, grTableConfig, grTableSafelist, grTabsConfig, grTabsSafelist, grTextareaConfig, grTextareaSafelist, grTimelineConfig, grTimelineSafelist, grToasterConfig, grToasterSafelist, grTooltipConfig, grTooltipSafelist, grTreeConfig, grTreeSafelist, grTreeSelectConfig, grTreeSelectSafelist, granularityDialogServicePlugin, granularityThemePlugin, granularityToastPlugin, groupCommandItems, groupTimelineItems, httpStatusParser, initThemeEarly, initialsFrom, isEmpty, isEmptyCell, isMenuAction, isMenuSection, isMenuSeparator, jsonApiErrorParser, laravelValidationParser, matchAccept, matchCommandItem, maxCountValidator, maxFileSize, maxTotalSizeBytesValidator, networkErrorParser, normalizeError, normalizeFiles, parseHexColor, plainMessageParser, problemDetailsParser, resolveBreadcrumbsFit, resolveBreadcrumbsLayout, resolveFileValidationMessage, resolveGrConfig, resolveGrDialogSectionConfig, resolveGrDialogTitle, resolveResponseErrorTitle, responseErrorParserPresets, runFieldRules, runFileValidators, shouldCollapse, sizeFromPointer, sortRows, summarizeFileEntries, teardownDialogService, useAnnouncer, useComboboxNavigation, useDialogService, useDismissible, useDragGesture, useDragSort, useFloating, useFocusTrap, useGrButtonGroup, useGrComponentDefaults, useGrComponentProp, useGrComponentSize, useGrConfig, useGrFormContext, useGrFormControl, useGrFormFieldContext, useGrThemeAttrs, useGranularityTranslations, useOverlayLayer, usePortalTarget, useResponseError, useRovingFocus, useTheme, useToast, useVirtualList, vAutofocus, vAutosize, vClickOutside, vDropzone, vHotkey, vLoading };
@@ -138,7 +138,12 @@
138
138
  /* Navigation roles */
139
139
  --gr-sidebar: #1e293b;
140
140
  --gr-sidebar-fg: #f8fafc;
141
- --gr-sidebar-primary: #6366f1;
141
+ /*
142
+ * Белый текст на #6366f1 даёт 4.47:1 — тот же недолёт AA, из-за которого
143
+ * перекрашен `--gr-primary` (заметка выше). Здесь взят минимальный шаг, снимающий
144
+ * недолёт без смены вида: 4.52:1 при ΔE 0.42 к прежнему цвету.
145
+ */
146
+ --gr-sidebar-primary: #6365f0;
142
147
  --gr-sidebar-primary-fg: #ffffff;
143
148
  --gr-sidebar-accent: #334155;
144
149
  --gr-sidebar-accent-fg: #f1f5f9;
@@ -0,0 +1,199 @@
1
+ import { n as GR_CONFIG_KEY } from "./chunks/context-BSYR7RZs.js";
2
+ import { t as GRANULARITY_I18N_KEY } from "./chunks/adapter-CAOxmn2G.js";
3
+ import { n as resetPortalRoot } from "./chunks/portalRoot-CVhCgdG6.js";
4
+ import { resetAnnouncer } from "./composables/useAnnouncer.js";
5
+ import { useToast } from "./composables/useToast.js";
6
+ import { computed, ref } from "vue";
7
+ //#region src/testing/pointer.ts
8
+ /**
9
+ * Указательные жесты в тестах.
10
+ *
11
+ * Две вещи, которые ломают наивную запись жеста, и обе неочевидны:
12
+ *
13
+ * 1. **`pointerdown` идёт в элемент, а `pointermove`/`pointerup`/`pointercancel` — в `window`.**
14
+ * Так слушает `useDragGesture` (и всё, что на нём стоит: слайдер, сплиттер,
15
+ * перестановка, смахивание тоста): нажатие приходит от разметки, а движение
16
+ * ловится глобально, иначе жест обрывался бы на выходе курсора за элемент.
17
+ * Тест, отправивший движение в тот же элемент, ничего не проверяет — и молча.
18
+ * 2. **`PointerEvent` в jsdom нет**, а `wrapper.trigger('pointerdown', { clientY })`
19
+ * падает на попытке записать `clientY`. Поэтому события собираются
20
+ * `MouseEvent`-ом и отправляются через `dispatchEvent`.
21
+ *
22
+ * Плюс `button: 0` по умолчанию: жест игнорирует неосновную кнопку, и без этого
23
+ * «перетаскивание» в тесте не начинается вовсе.
24
+ */
25
+ /** Событие указателя: `MouseEvent`, потому что `PointerEvent` в jsdom не реализован. */
26
+ function pointer(type, init = {}) {
27
+ return new MouseEvent(type, {
28
+ bubbles: true,
29
+ ...init
30
+ });
31
+ }
32
+ /** Нажатие: единственное событие жеста, которое адресуется элементу. */
33
+ function press(target, init = {}) {
34
+ target.dispatchEvent(pointer("pointerdown", {
35
+ button: 0,
36
+ ...init
37
+ }));
38
+ }
39
+ function move(init = {}) {
40
+ window.dispatchEvent(pointer("pointermove", init));
41
+ }
42
+ function release(init = {}) {
43
+ window.dispatchEvent(pointer("pointerup", init));
44
+ }
45
+ /**
46
+ * Обрыв жеста: система забрала указатель (системный жест, звонок, потеря окна).
47
+ * Отдельная ветка поведения у всех потребителей — смахивание возвращает тост,
48
+ * перестановка откатывает порядок, — поэтому проверяется отдельно от `release`.
49
+ */
50
+ function cancelPointer(init = {}) {
51
+ window.dispatchEvent(pointer("pointercancel", init));
52
+ }
53
+ /** Жест целиком: нажали на элементе, провели, отпустили. */
54
+ function drag(target, from, to) {
55
+ press(target, from);
56
+ move(to);
57
+ release(to);
58
+ }
59
+ //#endregion
60
+ //#region src/testing/geometry.ts
61
+ /** Прямоугольник элемента. Незаданные стороны выводятся из заданных. */
62
+ function mockRect(target, rect) {
63
+ const left = rect.left ?? rect.x ?? 0;
64
+ const top = rect.top ?? rect.y ?? 0;
65
+ const width = rect.width ?? (rect.right ?? 0) - left;
66
+ const height = rect.height ?? (rect.bottom ?? 0) - top;
67
+ const value = {
68
+ x: left,
69
+ y: top,
70
+ left,
71
+ top,
72
+ width,
73
+ height,
74
+ right: rect.right ?? left + width,
75
+ bottom: rect.bottom ?? top + height,
76
+ toJSON: () => ({})
77
+ };
78
+ target.getBoundingClientRect = () => value;
79
+ }
80
+ /** Элементы подряд, встык, без зазоров: строки списка, ячейки шапки, деления шкалы. */
81
+ function stackRects(targets, options) {
82
+ const { size, axis = "vertical", start = 0, cross = 100 } = options;
83
+ let offset = start;
84
+ for (const target of targets) {
85
+ mockRect(target, axis === "vertical" ? {
86
+ top: offset,
87
+ height: size,
88
+ left: 0,
89
+ width: cross
90
+ } : {
91
+ left: offset,
92
+ width: size,
93
+ top: 0,
94
+ height: cross
95
+ });
96
+ offset += size;
97
+ }
98
+ }
99
+ //#endregion
100
+ //#region src/testing/env.ts
101
+ /**
102
+ * Уборка между тестами.
103
+ *
104
+ * `document.body.innerHTML = ''` сам по себе оставляет пакет в разобранном
105
+ * состоянии: корень портала и хост живого региона закэшированы модулями, и
106
+ * после очистки `body` они указывают на узлы **вне документа**. Следующий
107
+ * монтаж телепортирует туда оверлеи, тест ищет их в документе и не находит —
108
+ * без единой ошибки в консоли. Очередь тостов переживает размонтирование по
109
+ * замыслу, поэтому её тоже гасим.
110
+ */
111
+ function resetGranularityDom() {
112
+ useToast().clear();
113
+ resetAnnouncer();
114
+ resetPortalRoot();
115
+ if (typeof document !== "undefined") document.body.innerHTML = "";
116
+ }
117
+ /**
118
+ * Ответ `matchMedia` — например «пользователь просил меньше движения».
119
+ *
120
+ * Не для того, чтобы «не падало»: сам пакет зовёт `matchMedia` опционально и без
121
+ * него живёт. Нужно, когда проверяется поведение **под** медиазапросом.
122
+ * Возвращает функцию отката: глобальное состояние обязано уйти вместе с тестом.
123
+ */
124
+ function stubMatchMedia(options = {}) {
125
+ const { reducedMotion = false, matches = false } = options;
126
+ const original = window.matchMedia;
127
+ window.matchMedia = ((query) => ({
128
+ media: query,
129
+ matches: query.includes("prefers-reduced-motion") ? reducedMotion : matches,
130
+ onchange: null,
131
+ addEventListener: () => {},
132
+ removeEventListener: () => {},
133
+ addListener: () => {},
134
+ removeListener: () => {},
135
+ dispatchEvent: () => false
136
+ }));
137
+ return () => {
138
+ window.matchMedia = original;
139
+ };
140
+ }
141
+ //#endregion
142
+ //#region src/testing/context.ts
143
+ /** Адаптер перевода для теста: словарь или своя функция. */
144
+ function i18nAdapter(options = {}) {
145
+ if (typeof options.t !== "function" && !("locale" in options) && !("te" in options)) {
146
+ const dictionary = options;
147
+ return {
148
+ t: (key) => dictionary[key] ?? key,
149
+ te: (key) => key in dictionary
150
+ };
151
+ }
152
+ const { t, te, locale } = options;
153
+ return {
154
+ t: t ?? ((key) => key),
155
+ te,
156
+ locale: typeof locale === "string" ? ref(locale) : locale
157
+ };
158
+ }
159
+ /**
160
+ * Окружение пакета для монтирования — то, что `<GrConfigProvider>` раздаёт
161
+ * через `provide`.
162
+ *
163
+ * Отдаётся объектом, а не компонентом-обёрткой, намеренно: провайдер тянет за
164
+ * собой лишний корневой элемент, а искать компонент внутри чужой разметки в
165
+ * каждом тесте дороже, чем передать `global`. Проверять **сам** провайдер
166
+ * (`data-gr-config-provider`, тема на корне) этим нельзя и не нужно — для этого
167
+ * его и монтируют.
168
+ *
169
+ * ```ts
170
+ * mount(GrSelect, { props, global: granularityGlobal({ size: 'sm' }) })
171
+ * ```
172
+ */
173
+ function granularityGlobal(options = {}) {
174
+ const config = {
175
+ size: computed(() => options.size),
176
+ componentDefaults: computed(() => options.componentDefaults ?? {}),
177
+ theme: computed(() => options.theme),
178
+ portalTarget: computed(() => options.portalTarget)
179
+ };
180
+ const provide = { [GR_CONFIG_KEY]: config };
181
+ if (options.i18n) provide[GRANULARITY_I18N_KEY] = "t" in options.i18n && typeof options.i18n.t === "function" ? options.i18n : i18nAdapter(options.i18n);
182
+ return { provide };
183
+ }
184
+ //#endregion
185
+ //#region src/testing/announcer.ts
186
+ /**
187
+ * Текст живого региона.
188
+ *
189
+ * Ждать здесь обязательно: `announce` пишет в регион **отложенным** макротаском,
190
+ * и это не деталь реализации, а условие работы. Регион, в котором текст
191
+ * появился в том же кадре, что и сам регион, часть AT не объявляет вовсе;
192
+ * поэтому синхронное чтение сразу после действия покажет пустую строку.
193
+ */
194
+ async function announced(politeness = "polite") {
195
+ await new Promise((resolve) => setTimeout(resolve, 2));
196
+ return document.querySelector(`[data-gr-announcer-region="${politeness}"]`)?.textContent ?? "";
197
+ }
198
+ //#endregion
199
+ export { announced, cancelPointer, drag, granularityGlobal, i18nAdapter, mockRect, move, pointer, press, release, resetGranularityDom, stackRects, stubMatchMedia };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing.js","names":[],"sources":["../src/testing/pointer.ts","../src/testing/geometry.ts","../src/testing/env.ts","../src/testing/context.ts","../src/testing/announcer.ts"],"sourcesContent":["/**\n * Указательные жесты в тестах.\n *\n * Две вещи, которые ломают наивную запись жеста, и обе неочевидны:\n *\n * 1. **`pointerdown` идёт в элемент, а `pointermove`/`pointerup`/`pointercancel` — в `window`.**\n * Так слушает `useDragGesture` (и всё, что на нём стоит: слайдер, сплиттер,\n * перестановка, смахивание тоста): нажатие приходит от разметки, а движение\n * ловится глобально, иначе жест обрывался бы на выходе курсора за элемент.\n * Тест, отправивший движение в тот же элемент, ничего не проверяет — и молча.\n * 2. **`PointerEvent` в jsdom нет**, а `wrapper.trigger('pointerdown', { clientY })`\n * падает на попытке записать `clientY`. Поэтому события собираются\n * `MouseEvent`-ом и отправляются через `dispatchEvent`.\n *\n * Плюс `button: 0` по умолчанию: жест игнорирует неосновную кнопку, и без этого\n * «перетаскивание» в тесте не начинается вовсе.\n */\n\n/** Событие указателя: `MouseEvent`, потому что `PointerEvent` в jsdom не реализован. */\nexport function pointer(type: string, init: MouseEventInit = {}): MouseEvent {\n return new MouseEvent(type, { bubbles: true, ...init })\n}\n\n/** Нажатие: единственное событие жеста, которое адресуется элементу. */\nexport function press(target: Element, init: MouseEventInit = {}): void {\n target.dispatchEvent(pointer('pointerdown', { button: 0, ...init }))\n}\n\nexport function move(init: MouseEventInit = {}): void {\n window.dispatchEvent(pointer('pointermove', init))\n}\n\nexport function release(init: MouseEventInit = {}): void {\n window.dispatchEvent(pointer('pointerup', init))\n}\n\n/**\n * Обрыв жеста: система забрала указатель (системный жест, звонок, потеря окна).\n * Отдельная ветка поведения у всех потребителей — смахивание возвращает тост,\n * перестановка откатывает порядок, — поэтому проверяется отдельно от `release`.\n */\nexport function cancelPointer(init: MouseEventInit = {}): void {\n window.dispatchEvent(pointer('pointercancel', init))\n}\n\n/** Жест целиком: нажали на элементе, провели, отпустили. */\nexport function drag(target: Element, from: MouseEventInit, to: MouseEventInit): void {\n press(target, from)\n move(to)\n release(to)\n}\n","/**\n * Геометрия в jsdom.\n *\n * Раскладки в jsdom нет: `getBoundingClientRect` у любого элемента возвращает\n * нули. Всё, что считает попадание указателя — слайдер, сплиттер, перестановка,\n * ширины колонок таблицы, — на нулевом прямоугольнике проверять не на чем,\n * поэтому геометрия задаётся руками.\n */\n\nexport type MockRect = Partial<Omit<DOMRect, 'toJSON'>>\n\n/** Прямоугольник элемента. Незаданные стороны выводятся из заданных. */\nexport function mockRect(target: Element, rect: MockRect): void {\n const left = rect.left ?? rect.x ?? 0\n const top = rect.top ?? rect.y ?? 0\n const width = rect.width ?? (rect.right ?? 0) - left\n const height = rect.height ?? (rect.bottom ?? 0) - top\n\n const value: DOMRect = {\n x: left,\n y: top,\n left,\n top,\n width,\n height,\n right: rect.right ?? left + width,\n bottom: rect.bottom ?? top + height,\n toJSON: () => ({}),\n }\n\n target.getBoundingClientRect = () => value\n}\n\nexport interface StackRectsOptions {\n /** Размер элемента вдоль оси. */\n size: number\n /** Ось раскладки. По умолчанию вертикальная — так лежат списки и строки. */\n axis?: 'vertical' | 'horizontal'\n /** Смещение первого элемента. */\n start?: number\n /** Размер поперёк оси. */\n cross?: number\n}\n\n/** Элементы подряд, встык, без зазоров: строки списка, ячейки шапки, деления шкалы. */\nexport function stackRects(targets: Iterable<Element>, options: StackRectsOptions): void {\n const { size, axis = 'vertical', start = 0, cross = 100 } = options\n\n let offset = start\n\n for (const target of targets) {\n mockRect(target, axis === 'vertical'\n ? { top: offset, height: size, left: 0, width: cross }\n : { left: offset, width: size, top: 0, height: cross })\n\n offset += size\n }\n}\n","import { resetAnnouncer } from '../composables/useAnnouncer'\nimport { resetPortalRoot } from '../composables/internal/portalRoot'\nimport { useToast } from '../composables/useToast'\n\n/**\n * Уборка между тестами.\n *\n * `document.body.innerHTML = ''` сам по себе оставляет пакет в разобранном\n * состоянии: корень портала и хост живого региона закэшированы модулями, и\n * после очистки `body` они указывают на узлы **вне документа**. Следующий\n * монтаж телепортирует туда оверлеи, тест ищет их в документе и не находит —\n * без единой ошибки в консоли. Очередь тостов переживает размонтирование по\n * замыслу, поэтому её тоже гасим.\n */\nexport function resetGranularityDom(): void {\n useToast().clear()\n resetAnnouncer()\n resetPortalRoot()\n\n if (typeof document !== 'undefined')\n document.body.innerHTML = ''\n}\n\nexport interface StubMatchMediaOptions {\n /** Ответ на `(prefers-reduced-motion: reduce)`. */\n reducedMotion?: boolean\n /** Ответ на остальные запросы. */\n matches?: boolean\n}\n\n/**\n * Ответ `matchMedia` — например «пользователь просил меньше движения».\n *\n * Не для того, чтобы «не падало»: сам пакет зовёт `matchMedia` опционально и без\n * него живёт. Нужно, когда проверяется поведение **под** медиазапросом.\n * Возвращает функцию отката: глобальное состояние обязано уйти вместе с тестом.\n */\nexport function stubMatchMedia(options: StubMatchMediaOptions = {}): () => void {\n const { reducedMotion = false, matches = false } = options\n const original = window.matchMedia\n\n window.matchMedia = ((query: string) => ({\n media: query,\n matches: query.includes('prefers-reduced-motion') ? reducedMotion : matches,\n onchange: null,\n addEventListener: () => {},\n removeEventListener: () => {},\n addListener: () => {},\n removeListener: () => {},\n dispatchEvent: () => false,\n }))\n\n return () => {\n window.matchMedia = original\n }\n}\n","import { computed, ref, type Ref } from 'vue'\n\nimport { GR_CONFIG_KEY, type GrComponentDefaults, type GrComponentSize, type GrConfigContext } from '../components/GrConfigProvider/context'\nimport { GRANULARITY_I18N_KEY, type GranularityI18nAdapter, type GranularityI18nParams } from '../i18n/adapter'\n\nexport interface I18nAdapterOptions {\n /** Перевод по ключу. По умолчанию — сам ключ: видно, что спросили. */\n t?: (key: string, params?: GranularityI18nParams) => string\n te?: (key: string) => boolean\n locale?: string | Ref<string>\n}\n\n/** Адаптер перевода для теста: словарь или своя функция. */\nexport function i18nAdapter(options: I18nAdapterOptions | Record<string, string> = {}): GranularityI18nAdapter {\n const isDictionary = typeof (options as I18nAdapterOptions).t !== 'function'\n && !('locale' in options)\n && !('te' in options)\n\n if (isDictionary) {\n const dictionary = options as Record<string, string>\n\n return {\n t: key => dictionary[key] ?? key,\n te: key => key in dictionary,\n }\n }\n\n const { t, te, locale } = options as I18nAdapterOptions\n\n return {\n t: t ?? (key => key),\n te,\n locale: typeof locale === 'string' ? ref(locale) : locale,\n }\n}\n\nexport interface GranularityGlobalOptions {\n size?: GrComponentSize\n componentDefaults?: GrComponentDefaults\n theme?: string\n portalTarget?: string | HTMLElement\n /** Адаптер перевода: готовый, словарь `{ ключ: перевод }` или опции `i18nAdapter`. */\n i18n?: GranularityI18nAdapter | I18nAdapterOptions | Record<string, string>\n}\n\n/**\n * Окружение пакета для монтирования — то, что `<GrConfigProvider>` раздаёт\n * через `provide`.\n *\n * Отдаётся объектом, а не компонентом-обёрткой, намеренно: провайдер тянет за\n * собой лишний корневой элемент, а искать компонент внутри чужой разметки в\n * каждом тесте дороже, чем передать `global`. Проверять **сам** провайдер\n * (`data-gr-config-provider`, тема на корне) этим нельзя и не нужно — для этого\n * его и монтируют.\n *\n * ```ts\n * mount(GrSelect, { props, global: granularityGlobal({ size: 'sm' }) })\n * ```\n */\nexport function granularityGlobal(options: GranularityGlobalOptions = {}): { provide: Record<symbol, unknown> } {\n const config: GrConfigContext = {\n size: computed(() => options.size),\n componentDefaults: computed(() => options.componentDefaults ?? {}),\n theme: computed(() => options.theme),\n portalTarget: computed(() => options.portalTarget),\n }\n\n const provide: Record<symbol, unknown> = { [GR_CONFIG_KEY]: config }\n\n if (options.i18n)\n provide[GRANULARITY_I18N_KEY] = 't' in options.i18n && typeof options.i18n.t === 'function'\n ? options.i18n\n : i18nAdapter(options.i18n)\n\n return { provide }\n}\n","import type { GrAnnouncerPoliteness } from '../composables/useAnnouncer'\n\n/**\n * Текст живого региона.\n *\n * Ждать здесь обязательно: `announce` пишет в регион **отложенным** макротаском,\n * и это не деталь реализации, а условие работы. Регион, в котором текст\n * появился в том же кадре, что и сам регион, часть AT не объявляет вовсе;\n * поэтому синхронное чтение сразу после действия покажет пустую строку.\n */\nexport async function announced(politeness: GrAnnouncerPoliteness = 'polite'): Promise<string> {\n await new Promise(resolve => setTimeout(resolve, 2))\n\n return document.querySelector(`[data-gr-announcer-region=\"${politeness}\"]`)?.textContent ?? ''\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,SAAgB,QAAQ,MAAc,OAAuB,CAAC,GAAe;CAC3E,OAAO,IAAI,WAAW,MAAM;EAAE,SAAS;EAAM,GAAG;CAAK,CAAC;AACxD;;AAGA,SAAgB,MAAM,QAAiB,OAAuB,CAAC,GAAS;CACtE,OAAO,cAAc,QAAQ,eAAe;EAAE,QAAQ;EAAG,GAAG;CAAK,CAAC,CAAC;AACrE;AAEA,SAAgB,KAAK,OAAuB,CAAC,GAAS;CACpD,OAAO,cAAc,QAAQ,eAAe,IAAI,CAAC;AACnD;AAEA,SAAgB,QAAQ,OAAuB,CAAC,GAAS;CACvD,OAAO,cAAc,QAAQ,aAAa,IAAI,CAAC;AACjD;;;;;;AAOA,SAAgB,cAAc,OAAuB,CAAC,GAAS;CAC7D,OAAO,cAAc,QAAQ,iBAAiB,IAAI,CAAC;AACrD;;AAGA,SAAgB,KAAK,QAAiB,MAAsB,IAA0B;CACpF,MAAM,QAAQ,IAAI;CAClB,KAAK,EAAE;CACP,QAAQ,EAAE;AACZ;;;;ACtCA,SAAgB,SAAS,QAAiB,MAAsB;CAC9D,MAAM,OAAO,KAAK,QAAQ,KAAK,KAAK;CACpC,MAAM,MAAM,KAAK,OAAO,KAAK,KAAK;CAClC,MAAM,QAAQ,KAAK,UAAU,KAAK,SAAS,KAAK;CAChD,MAAM,SAAS,KAAK,WAAW,KAAK,UAAU,KAAK;CAEnD,MAAM,QAAiB;EACrB,GAAG;EACH,GAAG;EACH;EACA;EACA;EACA;EACA,OAAO,KAAK,SAAS,OAAO;EAC5B,QAAQ,KAAK,UAAU,MAAM;EAC7B,eAAe,CAAC;CAClB;CAEA,OAAO,8BAA8B;AACvC;;AAcA,SAAgB,WAAW,SAA4B,SAAkC;CACvF,MAAM,EAAE,MAAM,OAAO,YAAY,QAAQ,GAAG,QAAQ,QAAQ;CAE5D,IAAI,SAAS;CAEb,KAAK,MAAM,UAAU,SAAS;EAC5B,SAAS,QAAQ,SAAS,aACtB;GAAE,KAAK;GAAQ,QAAQ;GAAM,MAAM;GAAG,OAAO;EAAM,IACnD;GAAE,MAAM;GAAQ,OAAO;GAAM,KAAK;GAAG,QAAQ;EAAM,CAAC;EAExD,UAAU;CACZ;AACF;;;;;;;;;;;;;AC3CA,SAAgB,sBAA4B;CAC1C,SAAS,CAAC,CAAC,MAAM;CACjB,eAAe;CACf,gBAAgB;CAEhB,IAAI,OAAO,aAAa,aACtB,SAAS,KAAK,YAAY;AAC9B;;;;;;;;AAgBA,SAAgB,eAAe,UAAiC,CAAC,GAAe;CAC9E,MAAM,EAAE,gBAAgB,OAAO,UAAU,UAAU;CACnD,MAAM,WAAW,OAAO;CAExB,OAAO,eAAe,WAAmB;EACvC,OAAO;EACP,SAAS,MAAM,SAAS,wBAAwB,IAAI,gBAAgB;EACpE,UAAU;EACV,wBAAwB,CAAC;EACzB,2BAA2B,CAAC;EAC5B,mBAAmB,CAAC;EACpB,sBAAsB,CAAC;EACvB,qBAAqB;CACvB;CAEA,aAAa;EACX,OAAO,aAAa;CACtB;AACF;;;;AC1CA,SAAgB,YAAY,UAAuD,CAAC,GAA2B;CAK7G,IAJqB,OAAQ,QAA+B,MAAM,cAC7D,EAAE,YAAY,YACd,EAAE,QAAQ,UAEG;EAChB,MAAM,aAAa;EAEnB,OAAO;GACL,IAAG,QAAO,WAAW,QAAQ;GAC7B,KAAI,QAAO,OAAO;EACpB;CACF;CAEA,MAAM,EAAE,GAAG,IAAI,WAAW;CAE1B,OAAO;EACL,GAAG,OAAM,QAAO;EAChB;EACA,QAAQ,OAAO,WAAW,WAAW,IAAI,MAAM,IAAI;CACrD;AACF;;;;;;;;;;;;;;;AAyBA,SAAgB,kBAAkB,UAAoC,CAAC,GAAyC;CAC9G,MAAM,SAA0B;EAC9B,MAAM,eAAe,QAAQ,IAAI;EACjC,mBAAmB,eAAe,QAAQ,qBAAqB,CAAC,CAAC;EACjE,OAAO,eAAe,QAAQ,KAAK;EACnC,cAAc,eAAe,QAAQ,YAAY;CACnD;CAEA,MAAM,UAAmC,GAAG,gBAAgB,OAAO;CAEnE,IAAI,QAAQ,MACV,QAAQ,wBAAwB,OAAO,QAAQ,QAAQ,OAAO,QAAQ,KAAK,MAAM,aAC7E,QAAQ,OACR,YAAY,QAAQ,IAAI;CAE9B,OAAO,EAAE,QAAQ;AACnB;;;;;;;;;;;ACjEA,eAAsB,UAAU,aAAoC,UAA2B;CAC7F,MAAM,IAAI,SAAQ,YAAW,WAAW,SAAS,CAAC,CAAC;CAEnD,OAAO,SAAS,cAAc,8BAA8B,WAAW,GAAG,CAAC,EAAE,eAAe;AAC9F"}
@@ -0,0 +1,33 @@
1
+ //#region src/theme/apply.ts
2
+ /**
3
+ * Подключение темы в рантайме — `@feugene/granularity/theme/apply`.
4
+ *
5
+ * Отдельный подпуть от `@feugene/granularity/theme` не по вкусу, а по весу:
6
+ * там справочник токенов (сотня килобайт данных), нужный, чтобы тему
7
+ * **собрать**. Чтобы её **подключить**, не нужно ничего, кроме готовой строки,
8
+ * — и приложению незачем платить за первое, если оно делает второе.
9
+ *
10
+ * Штатный путь всё же другой: собрать тему на сборке и отдать браузеру обычный
11
+ * CSS-файл. Этот модуль — для случаев, когда тема появляется только в браузере:
12
+ * редактор тем, превью, тема из пользовательских настроек.
13
+ */
14
+ var ATTRIBUTE = "data-gr-theme";
15
+ /** Подключает CSS темы и возвращает функцию, которая его снимает. */
16
+ function applyTheme(css, options = {}) {
17
+ const { name = "custom", target } = options;
18
+ if (typeof document === "undefined") return () => {};
19
+ const host = target ?? document.head;
20
+ const existing = host.querySelector(`style[${ATTRIBUTE}="${name}"]`);
21
+ const style = existing ?? document.createElement("style");
22
+ style.setAttribute(ATTRIBUTE, name);
23
+ style.textContent = css;
24
+ if (!existing) host.append(style);
25
+ return () => style.remove();
26
+ }
27
+ /** Снимает тему, подключённую `applyTheme`. */
28
+ function removeTheme(name = "custom", target) {
29
+ if (typeof document === "undefined") return;
30
+ (target ?? document.head).querySelector(`style[${ATTRIBUTE}="${name}"]`)?.remove();
31
+ }
32
+ //#endregion
33
+ export { applyTheme, removeTheme };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-apply.js","names":[],"sources":["../src/theme/apply.ts"],"sourcesContent":["/**\n * Подключение темы в рантайме — `@feugene/granularity/theme/apply`.\n *\n * Отдельный подпуть от `@feugene/granularity/theme` не по вкусу, а по весу:\n * там справочник токенов (сотня килобайт данных), нужный, чтобы тему\n * **собрать**. Чтобы её **подключить**, не нужно ничего, кроме готовой строки,\n * — и приложению незачем платить за первое, если оно делает второе.\n *\n * Штатный путь всё же другой: собрать тему на сборке и отдать браузеру обычный\n * CSS-файл. Этот модуль — для случаев, когда тема появляется только в браузере:\n * редактор тем, превью, тема из пользовательских настроек.\n */\n\nconst ATTRIBUTE = 'data-gr-theme'\n\nexport interface ApplyThemeOptions {\n /**\n * Имя, под которым тема живёт в документе. Повторный вызов с тем же именем\n * заменяет её содержимое, а не добавляет второй `<style>`: иначе редактор\n * темы за минуту работы оставил бы в `<head>` сотню слоёв, и побеждал бы\n * последний — то есть результат зависел бы от истории правок.\n */\n name?: string\n /** Куда вставлять. По умолчанию `document.head`. */\n target?: HTMLElement | null\n}\n\n/** Подключает CSS темы и возвращает функцию, которая его снимает. */\nexport function applyTheme(css: string, options: ApplyThemeOptions = {}): () => void {\n const { name = 'custom', target } = options\n\n if (typeof document === 'undefined')\n return () => {}\n\n const host = target ?? document.head\n const existing = host.querySelector<HTMLStyleElement>(`style[${ATTRIBUTE}=\"${name}\"]`)\n const style = existing ?? document.createElement('style')\n\n style.setAttribute(ATTRIBUTE, name)\n style.textContent = css\n\n if (!existing) host.append(style)\n\n return () => style.remove()\n}\n\n/** Снимает тему, подключённую `applyTheme`. */\nexport function removeTheme(name = 'custom', target?: HTMLElement | null): void {\n if (typeof document === 'undefined') return\n\n const host = target ?? document.head\n host.querySelector(`style[${ATTRIBUTE}=\"${name}\"]`)?.remove()\n}\n"],"mappings":";;;;;;;;;;;;;AAaA,IAAM,YAAY;;AAelB,SAAgB,WAAW,KAAa,UAA6B,CAAC,GAAe;CACnF,MAAM,EAAE,OAAO,UAAU,WAAW;CAEpC,IAAI,OAAO,aAAa,aACtB,aAAa,CAAC;CAEhB,MAAM,OAAO,UAAU,SAAS;CAChC,MAAM,WAAW,KAAK,cAAgC,SAAS,UAAU,IAAI,KAAK,GAAG;CACrF,MAAM,QAAQ,YAAY,SAAS,cAAc,OAAO;CAExD,MAAM,aAAa,WAAW,IAAI;CAClC,MAAM,cAAc;CAEpB,IAAI,CAAC,UAAU,KAAK,OAAO,KAAK;CAEhC,aAAa,MAAM,OAAO;AAC5B;;AAGA,SAAgB,YAAY,OAAO,UAAU,QAAmC;CAC9E,IAAI,OAAO,aAAa,aAAa;CAGrC,CADa,UAAU,SAAS,KAAA,CAC3B,cAAc,SAAS,UAAU,IAAI,KAAK,GAAG,CAAC,EAAE,OAAO;AAC9D"}