@feugene/granularity 0.16.0 → 0.18.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 (343) hide show
  1. package/dist/chunks/{config-Zc_bUvZY2.js → config-BDfTXHo12.js} +1 -1
  2. package/dist/chunks/{config-Zc_bUvZY2.js.map → config-BDfTXHo12.js.map} +1 -1
  3. package/dist/chunks/config-BE6n20np2.js.map +1 -0
  4. package/dist/chunks/{config-CpwwkFBO.js → config-Baj7Wvx-.js} +1 -1
  5. package/dist/chunks/{config-CpwwkFBO.js.map → config-Baj7Wvx-.js.map} +1 -1
  6. package/dist/chunks/config-BoNR7_PD2.js.map +1 -0
  7. package/dist/chunks/{config-DxCTVBfx.js → config-BsPDQ0dS.js} +2 -2
  8. package/dist/chunks/config-BsPDQ0dS.js.map +1 -0
  9. package/dist/chunks/config-CN2ULSQL.js.map +1 -0
  10. package/dist/chunks/{config-Cw6TDzWv2.js → config-COpuWGr_.js} +1 -1
  11. package/dist/chunks/config-COpuWGr_.js.map +1 -0
  12. package/dist/chunks/config-D2aNP7Es.js +70 -0
  13. package/dist/chunks/config-D2aNP7Es.js.map +1 -0
  14. package/dist/chunks/config-D94Z9po5.js.map +1 -0
  15. package/dist/chunks/{config-B-g6lT19.js → config-DA6SnEoy.js} +5 -2
  16. package/dist/chunks/config-DA6SnEoy.js.map +1 -0
  17. package/dist/chunks/config-DCFvmHEv2.js.map +1 -0
  18. package/dist/chunks/config-DEvsMTQE.js +150 -0
  19. package/dist/chunks/config-DEvsMTQE.js.map +1 -0
  20. package/dist/chunks/{config-CvC0sX8p.js → config-MRvhUl-O.js} +1 -1
  21. package/dist/chunks/{config-CvC0sX8p.js.map → config-MRvhUl-O.js.map} +1 -1
  22. package/dist/chunks/config-ScuvHw6k2.js +42 -0
  23. package/dist/chunks/config-ScuvHw6k2.js.map +1 -0
  24. package/dist/chunks/config-T3qdQBgU2.js.map +1 -0
  25. package/dist/chunks/config-eXB87DOi.js.map +1 -0
  26. package/dist/chunks/{config-D8tSR2uS.js → config-gvq_hWNM.js} +1 -1
  27. package/dist/chunks/{config-D8tSR2uS.js.map → config-gvq_hWNM.js.map} +1 -1
  28. package/dist/chunks/context-BSYR7RZs.js.map +1 -1
  29. package/dist/chunks/{en-B3xMeswz.js → en-COdzxgAX.js} +30 -5
  30. package/dist/chunks/en-COdzxgAX.js.map +1 -0
  31. package/dist/chunks/{es-CA-mkU--.js → es-ClqJ-4hr.js} +30 -5
  32. package/dist/chunks/es-ClqJ-4hr.js.map +1 -0
  33. package/dist/chunks/{es-Bv8vvqdT.js → es-DGMHwknJ.js} +3 -3
  34. package/dist/chunks/{es-Bv8vvqdT.js.map → es-DGMHwknJ.js.map} +1 -1
  35. package/dist/chunks/grKbdStyles-CeZhGQHr.js +43 -0
  36. package/dist/chunks/grKbdStyles-CeZhGQHr.js.map +1 -0
  37. package/dist/chunks/{grTextareaStyles-CWI2SqC8.js → grTextareaStyles-iOcHuVMM.js} +2 -2
  38. package/dist/chunks/{grTextareaStyles-CWI2SqC8.js.map → grTextareaStyles-iOcHuVMM.js.map} +1 -1
  39. package/dist/chunks/{granular-provider-CtrXGa7c.js → granular-provider-B9nXQCMu.js} +18 -16
  40. package/dist/chunks/granular-provider-B9nXQCMu.js.map +1 -0
  41. package/dist/chunks/{keyboard-zYvvyHd4.js → keyboard-DE2yhz_b.js} +10 -1
  42. package/dist/chunks/keyboard-DE2yhz_b.js.map +1 -0
  43. package/dist/chunks/{optionFilter-BVY988pC.js → optionFilter-DYw9XPPx.js} +1 -71
  44. package/dist/chunks/optionFilter-DYw9XPPx.js.map +1 -0
  45. package/dist/chunks/{useOverlayLayer-BupuP_hs.js → overlayStack-C8cfsqXa.js} +11 -61
  46. package/dist/chunks/overlayStack-C8cfsqXa.js.map +1 -0
  47. package/dist/chunks/{ru-COWxgh2A.js → ru-9z8ix45c.js} +30 -5
  48. package/dist/chunks/ru-9z8ix45c.js.map +1 -0
  49. package/dist/chunks/useDragSort-0l47h4yb.js +265 -0
  50. package/dist/chunks/useDragSort-0l47h4yb.js.map +1 -0
  51. package/dist/chunks/{useModalOverlay-DCM4d3yA.js → useModalOverlay-BTq-0ImG.js} +1 -1
  52. package/dist/chunks/{useModalOverlay-DCM4d3yA.js.map → useModalOverlay-BTq-0ImG.js.map} +1 -1
  53. package/dist/components/GrAutocomplete/chunks/{GrAutocomplete-CQ9T7Lly.js → GrAutocomplete-CPEQxmLZ.js} +4 -3
  54. package/dist/components/GrAutocomplete/chunks/GrAutocomplete-CPEQxmLZ.js.map +1 -0
  55. package/dist/components/GrAutocomplete/index.js +1 -1
  56. package/dist/components/GrAutocomplete/styles.css +1 -1
  57. package/dist/components/GrColorPicker/chunks/{GrColorPicker-bnYBRGk8.js → GrColorPicker-DAdQ-Gc3.js} +4 -4
  58. package/dist/components/GrColorPicker/chunks/{GrColorPicker-bnYBRGk8.js.map → GrColorPicker-DAdQ-Gc3.js.map} +1 -1
  59. package/dist/components/GrColorPicker/index.js +2 -2
  60. package/dist/components/GrCommandPalette/chunks/{GrCommandPalette-MWDYDPNC.js → GrCommandPalette-DMeSqkEv.js} +6 -7
  61. package/dist/components/GrCommandPalette/chunks/GrCommandPalette-DMeSqkEv.js.map +1 -0
  62. package/dist/components/GrCommandPalette/index.js +1 -1
  63. package/dist/components/GrCommandPalette/styles.css +1 -1
  64. package/dist/components/GrConfigProvider/index.js +2 -2
  65. package/dist/components/GrConfirmDialog/chunks/{GrConfirmDialog-DaQmlp1_.js → GrConfirmDialog-hUTi-GdJ.js} +1 -1
  66. package/dist/components/GrConfirmDialog/chunks/{GrConfirmDialog-DaQmlp1_.js.map → GrConfirmDialog-hUTi-GdJ.js.map} +1 -1
  67. package/dist/components/GrConfirmDialog/index.js +1 -1
  68. package/dist/components/GrDataTable/chunks/{GrDataTable-DVFho9Cj.js → GrDataTable-DzaGLG3A.js} +495 -47
  69. package/dist/components/GrDataTable/chunks/GrDataTable-DzaGLG3A.js.map +1 -0
  70. package/dist/components/GrDataTable/index.js +2 -2
  71. package/dist/components/GrDialog/chunks/{GrDialog-AE1gIZuz.js → GrDialog-MD9Fzy9C.js} +1 -1
  72. package/dist/components/GrDialog/chunks/{GrDialog-AE1gIZuz.js.map → GrDialog-MD9Fzy9C.js.map} +1 -1
  73. package/dist/components/GrDialog/index.js +1 -1
  74. package/dist/components/GrDialogService/chunks/{GrDialogService-B4DYWDkA.js → GrDialogService-DtgUijMj.js} +2 -2
  75. package/dist/components/GrDialogService/chunks/{GrDialogService-B4DYWDkA.js.map → GrDialogService-DtgUijMj.js.map} +1 -1
  76. package/dist/components/GrDialogService/index.js +1 -1
  77. package/dist/components/GrDrawer/chunks/{GrDrawer-DQwi6aRw.js → GrDrawer-DWHdZZzW.js} +2 -2
  78. package/dist/components/GrDrawer/chunks/{GrDrawer-DQwi6aRw.js.map → GrDrawer-DWHdZZzW.js.map} +1 -1
  79. package/dist/components/GrDrawer/index.js +2 -2
  80. package/dist/components/GrDropdown/chunks/{GrDropdown-BLng6V1m.js → GrDropdown-0tJK01Kq.js} +2 -2
  81. package/dist/components/GrDropdown/chunks/{GrDropdown-BLng6V1m.js.map → GrDropdown-0tJK01Kq.js.map} +1 -1
  82. package/dist/components/GrDropdown/index.js +1 -1
  83. package/dist/components/GrDropdownMenu/chunks/{GrDropdownMenu-BImk2Vs7.js → GrDropdownMenu-VPPrpCoA.js} +1 -1
  84. package/dist/components/GrDropdownMenu/chunks/{GrDropdownMenu-BImk2Vs7.js.map → GrDropdownMenu-VPPrpCoA.js.map} +1 -1
  85. package/dist/components/GrDropdownMenu/index.js +1 -1
  86. package/dist/components/GrFileUpload/chunks/{GrFileUpload-D0B-BEsd.js → GrFileUpload-DuDzC43S.js} +2 -2
  87. package/dist/components/GrFileUpload/chunks/{GrFileUpload-D0B-BEsd.js.map → GrFileUpload-DuDzC43S.js.map} +1 -1
  88. package/dist/components/GrFileUpload/index.js +1 -1
  89. package/dist/components/GrImageViewer/chunks/{GrImageViewer-BeCnE8XQ.js → GrImageViewer-DE7MBbF8.js} +46 -22
  90. package/dist/components/GrImageViewer/chunks/GrImageViewer-DE7MBbF8.js.map +1 -0
  91. package/dist/components/GrImageViewer/index.js +1 -1
  92. package/dist/components/GrInput/chunks/{GrInput-DD2gYdqS.js → GrInput-2wd7Crs0.js} +1 -1
  93. package/dist/components/GrInput/chunks/GrInput-2wd7Crs0.js.map +1 -0
  94. package/dist/components/GrInput/index.js +1 -1
  95. package/dist/components/GrInputTag/chunks/{GrInputTag-DmNunixz.js → GrInputTag-CyV2eY7Z.js} +20 -33
  96. package/dist/components/GrInputTag/chunks/GrInputTag-CyV2eY7Z.js.map +1 -0
  97. package/dist/components/GrInputTag/index.js +1 -1
  98. package/dist/components/GrKbd/chunks/{GrKbd-DRFPvW3G.js → GrKbd-DU2lBkRV.js} +218 -52
  99. package/dist/components/GrKbd/chunks/GrKbd-DU2lBkRV.js.map +1 -0
  100. package/dist/components/GrKbd/index.js +3 -3
  101. package/dist/components/GrModal/chunks/{GrModal-B8I78T0N.js → GrModal-BbhcsDQ8.js} +1 -1
  102. package/dist/components/GrModal/chunks/{GrModal-B8I78T0N.js.map → GrModal-BbhcsDQ8.js.map} +1 -1
  103. package/dist/components/GrModal/index.js +1 -1
  104. package/dist/components/GrPagination/chunks/{GrPagination-B6N0QZBf.js → GrPagination-waKhxBP7.js} +4 -4
  105. package/dist/components/GrPagination/chunks/GrPagination-waKhxBP7.js.map +1 -0
  106. package/dist/components/GrPagination/index.js +1 -1
  107. package/dist/components/GrPopover/chunks/{GrPopover-B1eRCOoO.js → GrPopover-DuqeoFaI.js} +1 -1
  108. package/dist/components/GrPopover/chunks/{GrPopover-B1eRCOoO.js.map → GrPopover-DuqeoFaI.js.map} +1 -1
  109. package/dist/components/GrPopover/index.js +1 -1
  110. package/dist/components/GrProgressBar/chunks/{GrProgressBar-BiHnaitu.js → GrProgressBar-xwbNM9QB.js} +1 -1
  111. package/dist/components/GrProgressBar/chunks/GrProgressBar-xwbNM9QB.js.map +1 -0
  112. package/dist/components/GrProgressBar/index.js +1 -1
  113. package/dist/components/GrProgressCircle/chunks/{GrProgressCircle-CTogjcHz.js → GrProgressCircle-B8olXRo5.js} +1 -1
  114. package/dist/components/GrProgressCircle/chunks/{GrProgressCircle-CTogjcHz.js.map → GrProgressCircle-B8olXRo5.js.map} +1 -1
  115. package/dist/components/GrProgressCircle/index.js +2 -2
  116. package/dist/components/GrPromptDialog/chunks/{GrPromptDialog-Ct174NVD.js → GrPromptDialog-JVVqBsPY.js} +3 -3
  117. package/dist/components/GrPromptDialog/chunks/{GrPromptDialog-Ct174NVD.js.map → GrPromptDialog-JVVqBsPY.js.map} +1 -1
  118. package/dist/components/GrPromptDialog/index.js +1 -1
  119. package/dist/components/GrRadio/chunks/{GrRadio-DksDro_U.js → GrRadio-DWiRaMzt.js} +8 -32
  120. package/dist/components/GrRadio/chunks/GrRadio-DWiRaMzt.js.map +1 -0
  121. package/dist/components/GrRadio/index.js +1 -1
  122. package/dist/components/GrRadioGroup/chunks/{GrRadioGroup-BOIhejE6.js → GrRadioGroup-DIuBw0wk.js} +34 -27
  123. package/dist/components/GrRadioGroup/chunks/GrRadioGroup-DIuBw0wk.js.map +1 -0
  124. package/dist/components/GrRadioGroup/index.js +1 -1
  125. package/dist/components/GrRating/chunks/{GrRating-JrHXz0Rv.js → GrRating-LarIiwJL.js} +2 -2
  126. package/dist/components/GrRating/chunks/GrRating-LarIiwJL.js.map +1 -0
  127. package/dist/components/GrRating/index.js +2 -2
  128. package/dist/components/GrSegmented/chunks/{GrSegmented-BQIlH5KI.js → GrSegmented-CQw3ijqa.js} +47 -65
  129. package/dist/components/GrSegmented/chunks/GrSegmented-CQw3ijqa.js.map +1 -0
  130. package/dist/components/GrSegmented/index.js +1 -1
  131. package/dist/components/GrSelect/chunks/{GrSelect-aqkPCqjd.js → GrSelect-DAdu044K.js} +4 -3
  132. package/dist/components/GrSelect/chunks/GrSelect-DAdu044K.js.map +1 -0
  133. package/dist/components/GrSelect/index.js +1 -1
  134. package/dist/components/GrSlider/chunks/{GrSlider-DkU9IQSX.js → GrSlider-CyhVsNKn.js} +21 -34
  135. package/dist/components/GrSlider/chunks/GrSlider-CyhVsNKn.js.map +1 -0
  136. package/dist/components/GrSlider/index.js +2 -2
  137. package/dist/components/GrSortableList/chunks/GrSortableList-BefVfWKh.js +276 -0
  138. package/dist/components/GrSortableList/chunks/GrSortableList-BefVfWKh.js.map +1 -0
  139. package/dist/components/GrSortableList/index.js +3 -0
  140. package/dist/components/GrSplitter/chunks/{GrSplitter-7To8jbJ8.js → GrSplitter-BzxVQwbY.js} +17 -37
  141. package/dist/components/GrSplitter/chunks/GrSplitter-BzxVQwbY.js.map +1 -0
  142. package/dist/components/GrSplitter/index.js +2 -2
  143. package/dist/components/GrStatistic/chunks/{GrStatistic-CttyoYPT.js → GrStatistic-J4qLs3TH.js} +1 -1
  144. package/dist/components/GrStatistic/chunks/{GrStatistic-CttyoYPT.js.map → GrStatistic-J4qLs3TH.js.map} +1 -1
  145. package/dist/components/GrStatistic/index.js +2 -2
  146. package/dist/components/GrSwitch/chunks/{GrSwitch-B9TYbiih.js → GrSwitch-DpyvVrZG.js} +1 -1
  147. package/dist/components/GrSwitch/chunks/{GrSwitch-B9TYbiih.js.map → GrSwitch-DpyvVrZG.js.map} +1 -1
  148. package/dist/components/GrSwitch/index.js +2 -2
  149. package/dist/components/GrTabPanels/index.js +1 -1
  150. package/dist/components/GrTable/chunks/{GrTable-BB-mI_NM.js → GrTable-BfqgwETQ.js} +7 -1
  151. package/dist/components/GrTable/chunks/GrTable-BfqgwETQ.js.map +1 -0
  152. package/dist/components/GrTable/index.js +1 -1
  153. package/dist/components/GrTabs/chunks/{GrTabs-B8CDq2D9.js → GrTabs-TeXaU5Uh.js} +50 -61
  154. package/dist/components/GrTabs/chunks/GrTabs-TeXaU5Uh.js.map +1 -0
  155. package/dist/components/GrTabs/index.js +1 -1
  156. package/dist/components/GrTextarea/chunks/{GrTextarea-DUh5Tlo4.js → GrTextarea-DSvd1nSy.js} +1 -1
  157. package/dist/components/GrTextarea/chunks/{GrTextarea-DUh5Tlo4.js.map → GrTextarea-DSvd1nSy.js.map} +1 -1
  158. package/dist/components/GrTextarea/index.js +2 -2
  159. package/dist/components/GrTimeline/chunks/{GrTimeline-CE9b3s18.js → GrTimeline-B-h2Yanw.js} +1 -1
  160. package/dist/components/GrTimeline/chunks/{GrTimeline-CE9b3s18.js.map → GrTimeline-B-h2Yanw.js.map} +1 -1
  161. package/dist/components/GrTimeline/index.js +2 -2
  162. package/dist/components/GrToaster/chunks/{GrToaster-BKQy3Srm.js → GrToaster-Ct-39hga.js} +113 -12
  163. package/dist/components/GrToaster/chunks/GrToaster-Ct-39hga.js.map +1 -0
  164. package/dist/components/GrToaster/index.js +2 -2
  165. package/dist/components/GrToaster/styles.css +1 -1
  166. package/dist/components/GrTooltip/chunks/{GrTooltip-DEbejfhA.js → GrTooltip-xAcqs0bP.js} +1 -1
  167. package/dist/components/GrTooltip/chunks/{GrTooltip-DEbejfhA.js.map → GrTooltip-xAcqs0bP.js.map} +1 -1
  168. package/dist/components/GrTooltip/index.js +2 -2
  169. package/dist/components/GrTree/chunks/{GrTree-wfdbvygw.js → GrTree-CaYK8dGZ.js} +124 -92
  170. package/dist/components/GrTree/chunks/GrTree-CaYK8dGZ.js.map +1 -0
  171. package/dist/components/GrTree/index.js +1 -1
  172. package/dist/components/GrTree/styles.css +1 -1
  173. package/dist/components/GrTreeSelect/chunks/{GrTreeSelect-lLWmAMtI.js → GrTreeSelect-DZp7CqqW.js} +4 -4
  174. package/dist/components/GrTreeSelect/chunks/{GrTreeSelect-lLWmAMtI.js.map → GrTreeSelect-DZp7CqqW.js.map} +1 -1
  175. package/dist/components/GrTreeSelect/index.js +2 -2
  176. package/dist/composables/useComboboxNavigation.js +71 -0
  177. package/dist/composables/useComboboxNavigation.js.map +1 -0
  178. package/dist/composables/useDismissible.js +1 -1
  179. package/dist/composables/useDragGesture.js +55 -0
  180. package/dist/composables/useDragGesture.js.map +1 -0
  181. package/dist/composables/useDragSort.js +2 -0
  182. package/dist/composables/useFloating.js +22 -1
  183. package/dist/composables/useFloating.js.map +1 -1
  184. package/dist/composables/useGrComponentConfig.js +2 -0
  185. package/dist/composables/useGranularityTranslations.js +2 -0
  186. package/dist/composables/useOverlayLayer.js +64 -1
  187. package/dist/composables/useOverlayLayer.js.map +1 -0
  188. package/dist/composables/useRovingFocus.js +150 -0
  189. package/dist/composables/useRovingFocus.js.map +1 -0
  190. package/dist/directives/hotkey.js +13 -7
  191. package/dist/directives/hotkey.js.map +1 -1
  192. package/dist/granular-provider-node.js +1 -1
  193. package/dist/granular-provider.js +1 -1
  194. package/dist/i18n/all.js +1 -1
  195. package/dist/i18n/index.js +1 -1
  196. package/dist/index.js +67 -58
  197. package/dist/tokens.js +84 -0
  198. package/dist/tokens.js.map +1 -1
  199. package/dist/types/src/components/GrAlert/defaults.d.ts +1 -1
  200. package/dist/types/src/components/GrAutocomplete/defaults.d.ts +1 -1
  201. package/dist/types/src/components/GrAvatar/defaults.d.ts +1 -1
  202. package/dist/types/src/components/GrBadge/defaults.d.ts +1 -1
  203. package/dist/types/src/components/GrBottomNav/defaults.d.ts +1 -1
  204. package/dist/types/src/components/GrBreadcrumbs/defaults.d.ts +1 -1
  205. package/dist/types/src/components/GrButton/defaults.d.ts +1 -1
  206. package/dist/types/src/components/GrCard/defaults.d.ts +1 -1
  207. package/dist/types/src/components/GrCheckbox/defaults.d.ts +1 -1
  208. package/dist/types/src/components/GrCheckboxGroup/defaults.d.ts +1 -1
  209. package/dist/types/src/components/GrCollapse/defaults.d.ts +1 -1
  210. package/dist/types/src/components/GrColorPicker/defaults.d.ts +1 -1
  211. package/dist/types/src/components/GrColorPicker/grColorPickerStyles.d.ts +2 -2
  212. package/dist/types/src/components/GrCommandPalette/defaults.d.ts +1 -1
  213. package/dist/types/src/components/GrConfigProvider/context.d.ts +6 -22
  214. package/dist/types/src/components/GrConfigProvider/index.d.ts +1 -1
  215. package/dist/types/src/components/GrConfirmDialog/defaults.d.ts +1 -1
  216. package/dist/types/src/components/GrDataTable/GrDataTable.vue.d.ts +53 -0
  217. package/dist/types/src/components/GrDataTable/defaults.d.ts +1 -1
  218. package/dist/types/src/components/GrDataTable/grDataTableStyles.d.ts +39 -0
  219. package/dist/types/src/components/GrDialog/defaults.d.ts +1 -1
  220. package/dist/types/src/components/GrDivider/defaults.d.ts +1 -1
  221. package/dist/types/src/components/GrDrawer/defaults.d.ts +1 -1
  222. package/dist/types/src/components/GrEmptyState/defaults.d.ts +1 -1
  223. package/dist/types/src/components/GrFileUpload/defaults.d.ts +1 -1
  224. package/dist/types/src/components/GrFormField/defaults.d.ts +1 -1
  225. package/dist/types/src/components/GrFormFile/defaults.d.ts +1 -1
  226. package/dist/types/src/components/GrFormSection/defaults.d.ts +1 -1
  227. package/dist/types/src/components/GrIcon/defaults.d.ts +1 -1
  228. package/dist/types/src/components/GrImageViewer/composables/usePointerGestures.d.ts +1 -0
  229. package/dist/types/src/components/GrImageViewer/composables/useZoomPan.d.ts +1 -2
  230. package/dist/types/src/components/GrInput/defaults.d.ts +1 -1
  231. package/dist/types/src/components/GrInputTag/defaults.d.ts +1 -1
  232. package/dist/types/src/components/GrKbd/GrKbd.vue.d.ts +18 -3
  233. package/dist/types/src/components/GrKbd/defaults.d.ts +1 -1
  234. package/dist/types/src/components/GrKbd/grKbdStyles.d.ts +20 -3
  235. package/dist/types/src/components/GrKbd/index.d.ts +6 -0
  236. package/dist/types/src/components/GrLink/defaults.d.ts +1 -1
  237. package/dist/types/src/components/GrModal/defaults.d.ts +1 -1
  238. package/dist/types/src/components/GrNumberInput/defaults.d.ts +1 -1
  239. package/dist/types/src/components/GrPagination/defaults.d.ts +1 -1
  240. package/dist/types/src/components/GrPopover/GrPopover.vue.d.ts +1 -1
  241. package/dist/types/src/components/GrPopover/defaults.d.ts +1 -1
  242. package/dist/types/src/components/GrProgressBar/defaults.d.ts +1 -1
  243. package/dist/types/src/components/GrProgressCircle/defaults.d.ts +1 -1
  244. package/dist/types/src/components/GrProgressCircle/grProgressCircleStyles.d.ts +1 -1
  245. package/dist/types/src/components/GrPromptDialog/defaults.d.ts +1 -1
  246. package/dist/types/src/components/GrRadio/defaults.d.ts +1 -1
  247. package/dist/types/src/components/GrRadio/grRadioGroupContext.d.ts +12 -4
  248. package/dist/types/src/components/GrRadioGroup/defaults.d.ts +1 -1
  249. package/dist/types/src/components/GrRating/defaults.d.ts +1 -1
  250. package/dist/types/src/components/GrSegmented/defaults.d.ts +1 -1
  251. package/dist/types/src/components/GrSelect/defaults.d.ts +1 -1
  252. package/dist/types/src/components/GrSlider/defaults.d.ts +1 -1
  253. package/dist/types/src/components/GrSortableList/GrSortableList.vue.d.ts +68 -0
  254. package/dist/types/src/components/GrSortableList/config.d.ts +1 -0
  255. package/dist/types/src/components/GrSortableList/grSortableListStyles.d.ts +38 -0
  256. package/dist/types/src/components/GrSortableList/index.d.ts +9 -0
  257. package/dist/types/src/components/GrSortableList/safelist.d.ts +1 -0
  258. package/dist/types/src/components/GrSplitter/defaults.d.ts +1 -1
  259. package/dist/types/src/components/GrStatistic/defaults.d.ts +1 -1
  260. package/dist/types/src/components/GrStatistic/grStatisticStyles.d.ts +1 -1
  261. package/dist/types/src/components/GrSwitch/defaults.d.ts +1 -1
  262. package/dist/types/src/components/GrTable/GrTable.vue.d.ts +13 -0
  263. package/dist/types/src/components/GrTable/defaults.d.ts +1 -1
  264. package/dist/types/src/components/GrTabs/defaults.d.ts +1 -1
  265. package/dist/types/src/components/GrTextarea/defaults.d.ts +1 -1
  266. package/dist/types/src/components/GrTextarea/grTextareaStyles.d.ts +2 -2
  267. package/dist/types/src/components/GrTimeline/defaults.d.ts +1 -1
  268. package/dist/types/src/components/GrTimeline/grTimelineStyles.d.ts +1 -1
  269. package/dist/types/src/components/GrToaster/GrToaster.vue.d.ts +8 -0
  270. package/dist/types/src/components/GrToaster/grToasterStyles.d.ts +27 -0
  271. package/dist/types/src/components/GrTooltip/defaults.d.ts +1 -1
  272. package/dist/types/src/components/GrTree/defaults.d.ts +1 -1
  273. package/dist/types/src/components/GrTree/grTreeInteractionContext.d.ts +0 -1
  274. package/dist/types/src/components/GrTreeSelect/defaults.d.ts +1 -1
  275. package/dist/types/src/components/shared/hotkey.d.ts +7 -15
  276. package/dist/types/src/components/shared/hotkeyTokens.d.ts +37 -0
  277. package/dist/types/src/composables/internal/dragSortGeometry.d.ts +59 -0
  278. package/dist/types/src/composables/internal/overlayStack.d.ts +11 -0
  279. package/dist/types/src/composables/useDragGesture.d.ts +63 -0
  280. package/dist/types/src/composables/useDragSort.d.ts +80 -0
  281. package/dist/types/src/composables/useFloating.d.ts +5 -1
  282. package/dist/types/src/composables/useGrComponentConfig.d.ts +41 -0
  283. package/dist/types/src/composables/useGranularityTranslations.d.ts +13 -0
  284. package/dist/types/src/composables/useRovingFocus.d.ts +108 -0
  285. package/dist/types/src/granular-provider/shared.d.ts +1 -0
  286. package/dist/types/src/i18n/messages/en.d.ts +48 -0
  287. package/dist/types/src/i18n/messages/es.d.ts +48 -0
  288. package/dist/types/src/i18n/messages/ru.d.ts +48 -0
  289. package/dist/types/src/index.d.ts +12 -0
  290. package/dist/types/src/internal/keyboard.d.ts +6 -0
  291. package/dist/web-types.json +201 -3
  292. package/package.json +31 -3
  293. package/dist/chunks/config-B-g6lT19.js.map +0 -1
  294. package/dist/chunks/config-BE6n20np.js.map +0 -1
  295. package/dist/chunks/config-BNfQwyL4.js +0 -97
  296. package/dist/chunks/config-BNfQwyL4.js.map +0 -1
  297. package/dist/chunks/config-BoNR7_PD.js.map +0 -1
  298. package/dist/chunks/config-CN2ULSQL2.js.map +0 -1
  299. package/dist/chunks/config-Cw6TDzWv2.js.map +0 -1
  300. package/dist/chunks/config-D94Z9po52.js.map +0 -1
  301. package/dist/chunks/config-DCFvmHEv.js.map +0 -1
  302. package/dist/chunks/config-DxCTVBfx.js.map +0 -1
  303. package/dist/chunks/config-LGrZIdaZ.js +0 -21
  304. package/dist/chunks/config-LGrZIdaZ.js.map +0 -1
  305. package/dist/chunks/config-T3qdQBgU.js.map +0 -1
  306. package/dist/chunks/config-eXB87DOi2.js.map +0 -1
  307. package/dist/chunks/en-B3xMeswz.js.map +0 -1
  308. package/dist/chunks/es-CA-mkU--.js.map +0 -1
  309. package/dist/chunks/grKbdStyles-DAoxiytu.js +0 -31
  310. package/dist/chunks/grKbdStyles-DAoxiytu.js.map +0 -1
  311. package/dist/chunks/granular-provider-CtrXGa7c.js.map +0 -1
  312. package/dist/chunks/keyboard-zYvvyHd4.js.map +0 -1
  313. package/dist/chunks/optionFilter-BVY988pC.js.map +0 -1
  314. package/dist/chunks/ru-COWxgh2A.js.map +0 -1
  315. package/dist/chunks/useOverlayLayer-BupuP_hs.js.map +0 -1
  316. package/dist/components/GrAutocomplete/chunks/GrAutocomplete-CQ9T7Lly.js.map +0 -1
  317. package/dist/components/GrCommandPalette/chunks/GrCommandPalette-MWDYDPNC.js.map +0 -1
  318. package/dist/components/GrDataTable/chunks/GrDataTable-DVFho9Cj.js.map +0 -1
  319. package/dist/components/GrImageViewer/chunks/GrImageViewer-BeCnE8XQ.js.map +0 -1
  320. package/dist/components/GrInput/chunks/GrInput-DD2gYdqS.js.map +0 -1
  321. package/dist/components/GrInputTag/chunks/GrInputTag-DmNunixz.js.map +0 -1
  322. package/dist/components/GrKbd/chunks/GrKbd-DRFPvW3G.js.map +0 -1
  323. package/dist/components/GrPagination/chunks/GrPagination-B6N0QZBf.js.map +0 -1
  324. package/dist/components/GrProgressBar/chunks/GrProgressBar-BiHnaitu.js.map +0 -1
  325. package/dist/components/GrRadio/chunks/GrRadio-DksDro_U.js.map +0 -1
  326. package/dist/components/GrRadioGroup/chunks/GrRadioGroup-BOIhejE6.js.map +0 -1
  327. package/dist/components/GrRating/chunks/GrRating-JrHXz0Rv.js.map +0 -1
  328. package/dist/components/GrSegmented/chunks/GrSegmented-BQIlH5KI.js.map +0 -1
  329. package/dist/components/GrSelect/chunks/GrSelect-aqkPCqjd.js.map +0 -1
  330. package/dist/components/GrSlider/chunks/GrSlider-DkU9IQSX.js.map +0 -1
  331. package/dist/components/GrSplitter/chunks/GrSplitter-7To8jbJ8.js.map +0 -1
  332. package/dist/components/GrTable/chunks/GrTable-BB-mI_NM.js.map +0 -1
  333. package/dist/components/GrTabs/chunks/GrTabs-B8CDq2D9.js.map +0 -1
  334. package/dist/components/GrToaster/chunks/GrToaster-BKQy3Srm.js.map +0 -1
  335. package/dist/components/GrTree/chunks/GrTree-wfdbvygw.js.map +0 -1
  336. /package/dist/chunks/{config-BE6n20np.js → config-BE6n20np2.js} +0 -0
  337. /package/dist/chunks/{config-BoNR7_PD.js → config-BoNR7_PD2.js} +0 -0
  338. /package/dist/chunks/{config-CN2ULSQL2.js → config-CN2ULSQL.js} +0 -0
  339. /package/dist/chunks/{config-D94Z9po52.js → config-D94Z9po5.js} +0 -0
  340. /package/dist/chunks/{config-DCFvmHEv.js → config-DCFvmHEv2.js} +0 -0
  341. /package/dist/chunks/{config-T3qdQBgU.js → config-T3qdQBgU2.js} +0 -0
  342. /package/dist/chunks/{config-eXB87DOi2.js → config-eXB87DOi.js} +0 -0
  343. /package/dist/types/src/composables/{internal/useComboboxNavigation.d.ts → useComboboxNavigation.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"GrConfirmDialog-DaQmlp1_.js","names":[],"sources":["../../../../src/components/GrConfirmDialog/GrConfirmDialog.vue","../../../../src/components/GrConfirmDialog/GrConfirmDialog.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * GrConfirmDialog — GR-примитив диалога подтверждения поверх `GrDialog`.\n *\n * Синхронизирован с `GrDialog`/`GrPromptDialog` по набору проп-проксирования:\n * `size`, `closeOnBackdrop`, `closeOnEsc`, `showHeader`, `showCloseButton`,\n * `headerConfig`, `footerConfig`, `bodyConfig`, `closeLabel`.\n *\n * Клик по «Confirm»/«Cancel» эмитит одноимённое событие и закрывает диалог\n * через `update:modelValue`.\n */\nimport { useGrComponentProp } from '../GrConfigProvider/context'\nimport { computed, ref, watch } from 'vue'\n\nimport GrButton from '../GrButton/GrButton.vue'\nimport GrDialog from '../GrDialog/GrDialog.vue'\nimport GrResponseErrorBanner from '../GrResponseErrorBanner/GrResponseErrorBanner.vue'\nimport { useGranularityTranslations } from '../../internal/granularityI18n'\nimport type { GrButtonSize, GrButtonTone, GrButtonVariant } from '../GrButton'\nimport type { GrDialogSectionConfig, GrDialogSize } from '../GrDialog'\nimport type { ResponseErrorInfo } from '../GrResponseErrorBanner'\n\n/** Какое действие получает фокус при открытии окна. */\nexport type GrConfirmDialogFocusAction = 'confirm' | 'cancel' | 'none'\n\nexport interface GrConfirmDialogProps {\n modelValue: boolean\n title?: string\n description?: string\n closeOnBackdrop?: boolean\n closeOnEsc?: boolean\n showHeader?: boolean\n showCloseButton?: boolean\n size?: GrDialogSize\n headerConfig?: GrDialogSectionConfig\n footerConfig?: GrDialogSectionConfig\n bodyConfig?: GrDialogSectionConfig\n /** A11y-лейбл кнопки закрытия (i18n). */\n closeLabel?: string\n buttonSize?: GrButtonSize\n confirmText?: string\n cancelText?: string\n confirmVariant?: GrButtonVariant\n confirmTone?: GrButtonTone\n /**\n * Структура ошибки ответа сервера для показа в теле диалога\n * (через `GrResponseErrorBanner`). Используется императивным\n * `useDialogService` для async-`onConfirm`. `null` — блок скрыт.\n */\n error?: ResponseErrorInfo | null\n /** Состояние загрузки кнопки Confirm (async-`onConfirm` in-flight). */\n confirmLoading?: boolean\n /** Принудительно дизейблит кнопку Confirm. */\n confirmDisabled?: boolean\n /**\n * Закрывать ли диалог автоматически по клику Confirm. По умолчанию `true`\n * (историческое поведение). `false` — отдаёт управление закрытием наружу\n * (нужно `useDialogService`, который ждёт результат async-`onConfirm`).\n */\n closeOnConfirm?: boolean\n /**\n * Какое действие получает фокус при открытии. По умолчанию «Отмена»:\n * подтверждение бывает деструктивным, и `Enter` сразу после открытия не\n * должен его запускать. `none` оставляет фокус на панели окна.\n *\n * Имя не `initialFocus` намеренно: у `GrModal`/`GrDrawer` так называется\n * проп с элементом, а здесь выбирается действие.\n */\n focusAction?: GrConfirmDialogFocusAction\n /**\n * Запрет закрытия «мягкими» способами (Esc, клик по бэкдропу), пока идёт\n * подтверждение (`confirmLoading`). Кнопка закрытия и «Отмена» остаются:\n * окно без единого выхода — ловушка.\n */\n persistent?: boolean\n}\n\nexport interface GrConfirmDialogEmits {\n (e: 'update:modelValue', value: boolean): void\n (e: 'confirm'): void\n (e: 'cancel'): void\n}\n\nimport './defaults'\n\nconst props = withDefaults(defineProps<GrConfirmDialogProps>(), {\n title: undefined,\n description: undefined,\n closeOnBackdrop: true,\n closeOnEsc: true,\n showHeader: true,\n showCloseButton: true,\n // Дефолт `size` живёт в резолвере ниже, а не здесь: Vue подставил бы его\n // до того, как компонент заглянет в `GrConfigProvider`.\n size: undefined,\n headerConfig: undefined,\n footerConfig: undefined,\n bodyConfig: undefined,\n closeLabel: undefined,\n buttonSize: undefined,\n confirmText: undefined,\n cancelText: undefined,\n confirmVariant: 'primary',\n confirmTone: 'primary',\n error: null,\n confirmLoading: false,\n confirmDisabled: false,\n closeOnConfirm: true,\n focusAction: 'cancel',\n persistent: false,\n})\n\n// Эффективный размер: локальный проп → `GrConfigProvider` → дефолт компонента.\nconst resolvedSize = useGrComponentProp('GrConfirmDialog', 'size', () => props.size, 'md')\n\nconst emit = defineEmits<GrConfirmDialogEmits>()\n\n// Дефолты берём из общего i18n-блока пакета (fallback — англ.), а не хардкодим.\nconst { t } = useGranularityTranslations()\nconst resolvedTitle = computed(() => props.title ?? t('gr.dialog.confirm.title', 'Confirm'))\nconst resolvedCloseLabel = computed(() => props.closeLabel ?? t('gr.common.close', 'Close'))\nconst resolvedConfirmText = computed(() => props.confirmText ?? t('gr.common.confirm', 'Confirm'))\nconst resolvedCancelText = computed(() => props.cancelText ?? t('gr.common.cancel', 'Cancel'))\n\nconst open = computed({\n get: () => props.modelValue,\n set: (value: boolean) => emit('update:modelValue', value),\n})\n\nconst confirmButtonRef = ref<InstanceType<typeof GrButton> | null>(null)\nconst cancelButtonRef = ref<InstanceType<typeof GrButton> | null>(null)\n\n// Пока подтверждение в полёте, случайное движение не должно оборвать операцию.\nconst softCloseBlocked = computed(() => props.persistent && props.confirmLoading)\nconst resolvedCloseOnBackdrop = computed(() => (softCloseBlocked.value ? false : props.closeOnBackdrop))\nconst resolvedCloseOnEsc = computed(() => (softCloseBlocked.value ? false : props.closeOnEsc))\n\n/**\n * Фокус ставит содержимое после отрисовки, а не проп `initialFocus` у\n * `GrModal`: кнопка рождается внутри поддерева диалога, и возврат её же пропом\n * наверх замыкает рендер в цикл (проверено на `GrPromptDialog`).\n *\n * Молчит, когда фокусировать нечего: со своим слотом `#footer` кнопок с\n * рефами в DOM нет, и фокус остаётся на панели — это корректный исход, а не\n * повод падать.\n */\nfunction focusAction(): void {\n if (props.focusAction === 'confirm') confirmButtonRef.value?.focus()\n else if (props.focusAction === 'cancel') cancelButtonRef.value?.focus()\n}\n\n// Источник — не только `modelValue`, но и сами кнопки: содержимое панели\n// появляется на такт позже открытия, и фокус по фиксированному `nextTick`\n// приходился на момент, когда фокусировать ещё нечего.\nwatch(\n [() => props.modelValue, cancelButtonRef, confirmButtonRef],\n () => {\n if (!props.modelValue || props.focusAction === 'none') return\n focusAction()\n },\n // `immediate`: окно могут смонтировать уже открытым — смены пропа тогда нет.\n { immediate: true, flush: 'post' },\n)\n\nfunction onCancel(): void {\n emit('cancel')\n emit('update:modelValue', false)\n}\n\nfunction onConfirm(): void {\n emit('confirm')\n if (props.closeOnConfirm)\n emit('update:modelValue', false)\n}\n</script>\n\n<template>\n <GrDialog\n v-model=\"open\"\n :title=\"resolvedTitle\"\n :size=\"resolvedSize\"\n :close-on-backdrop=\"resolvedCloseOnBackdrop\"\n :close-on-esc=\"resolvedCloseOnEsc\"\n :show-header=\"showHeader\"\n :show-close-button=\"showCloseButton\"\n :header-config=\"headerConfig\"\n :footer-config=\"footerConfig\"\n :body-config=\"bodyConfig\"\n :close-label=\"resolvedCloseLabel\"\n >\n <div class=\"grid gap-4\">\n <slot>\n <div v-if=\"description\" class=\"text-[length:var(--gr-control-text-md)] text-[var(--gr-muted-fg)]\">\n {{ description }}\n </div>\n </slot>\n\n <slot name=\"error\" :error=\"error\">\n <GrResponseErrorBanner v-if=\"error\" :error=\"error\" :can-dismiss=\"false\" />\n </slot>\n </div>\n\n <template #footer>\n <slot name=\"footer\">\n <div class=\"flex items-center justify-end gap-3\">\n <GrButton ref=\"cancelButtonRef\" data-testid=\"gr-confirm-cancel\" variant=\"outline\" :size=\"buttonSize\" @click=\"onCancel\">\n {{ resolvedCancelText }}\n </GrButton>\n <GrButton\n ref=\"confirmButtonRef\"\n data-testid=\"gr-confirm-confirm\"\n :variant=\"confirmVariant\"\n :tone=\"confirmTone\"\n :size=\"buttonSize\"\n :loading=\"confirmLoading\"\n :disabled=\"confirmDisabled\"\n @click=\"onConfirm\"\n >\n {{ resolvedConfirmText }}\n </GrButton>\n </div>\n </slot>\n </template>\n </GrDialog>\n</template>\n","<script setup lang=\"ts\">\n/**\n * GrConfirmDialog — GR-примитив диалога подтверждения поверх `GrDialog`.\n *\n * Синхронизирован с `GrDialog`/`GrPromptDialog` по набору проп-проксирования:\n * `size`, `closeOnBackdrop`, `closeOnEsc`, `showHeader`, `showCloseButton`,\n * `headerConfig`, `footerConfig`, `bodyConfig`, `closeLabel`.\n *\n * Клик по «Confirm»/«Cancel» эмитит одноимённое событие и закрывает диалог\n * через `update:modelValue`.\n */\nimport { useGrComponentProp } from '../GrConfigProvider/context'\nimport { computed, ref, watch } from 'vue'\n\nimport GrButton from '../GrButton/GrButton.vue'\nimport GrDialog from '../GrDialog/GrDialog.vue'\nimport GrResponseErrorBanner from '../GrResponseErrorBanner/GrResponseErrorBanner.vue'\nimport { useGranularityTranslations } from '../../internal/granularityI18n'\nimport type { GrButtonSize, GrButtonTone, GrButtonVariant } from '../GrButton'\nimport type { GrDialogSectionConfig, GrDialogSize } from '../GrDialog'\nimport type { ResponseErrorInfo } from '../GrResponseErrorBanner'\n\n/** Какое действие получает фокус при открытии окна. */\nexport type GrConfirmDialogFocusAction = 'confirm' | 'cancel' | 'none'\n\nexport interface GrConfirmDialogProps {\n modelValue: boolean\n title?: string\n description?: string\n closeOnBackdrop?: boolean\n closeOnEsc?: boolean\n showHeader?: boolean\n showCloseButton?: boolean\n size?: GrDialogSize\n headerConfig?: GrDialogSectionConfig\n footerConfig?: GrDialogSectionConfig\n bodyConfig?: GrDialogSectionConfig\n /** A11y-лейбл кнопки закрытия (i18n). */\n closeLabel?: string\n buttonSize?: GrButtonSize\n confirmText?: string\n cancelText?: string\n confirmVariant?: GrButtonVariant\n confirmTone?: GrButtonTone\n /**\n * Структура ошибки ответа сервера для показа в теле диалога\n * (через `GrResponseErrorBanner`). Используется императивным\n * `useDialogService` для async-`onConfirm`. `null` — блок скрыт.\n */\n error?: ResponseErrorInfo | null\n /** Состояние загрузки кнопки Confirm (async-`onConfirm` in-flight). */\n confirmLoading?: boolean\n /** Принудительно дизейблит кнопку Confirm. */\n confirmDisabled?: boolean\n /**\n * Закрывать ли диалог автоматически по клику Confirm. По умолчанию `true`\n * (историческое поведение). `false` — отдаёт управление закрытием наружу\n * (нужно `useDialogService`, который ждёт результат async-`onConfirm`).\n */\n closeOnConfirm?: boolean\n /**\n * Какое действие получает фокус при открытии. По умолчанию «Отмена»:\n * подтверждение бывает деструктивным, и `Enter` сразу после открытия не\n * должен его запускать. `none` оставляет фокус на панели окна.\n *\n * Имя не `initialFocus` намеренно: у `GrModal`/`GrDrawer` так называется\n * проп с элементом, а здесь выбирается действие.\n */\n focusAction?: GrConfirmDialogFocusAction\n /**\n * Запрет закрытия «мягкими» способами (Esc, клик по бэкдропу), пока идёт\n * подтверждение (`confirmLoading`). Кнопка закрытия и «Отмена» остаются:\n * окно без единого выхода — ловушка.\n */\n persistent?: boolean\n}\n\nexport interface GrConfirmDialogEmits {\n (e: 'update:modelValue', value: boolean): void\n (e: 'confirm'): void\n (e: 'cancel'): void\n}\n\nimport './defaults'\n\nconst props = withDefaults(defineProps<GrConfirmDialogProps>(), {\n title: undefined,\n description: undefined,\n closeOnBackdrop: true,\n closeOnEsc: true,\n showHeader: true,\n showCloseButton: true,\n // Дефолт `size` живёт в резолвере ниже, а не здесь: Vue подставил бы его\n // до того, как компонент заглянет в `GrConfigProvider`.\n size: undefined,\n headerConfig: undefined,\n footerConfig: undefined,\n bodyConfig: undefined,\n closeLabel: undefined,\n buttonSize: undefined,\n confirmText: undefined,\n cancelText: undefined,\n confirmVariant: 'primary',\n confirmTone: 'primary',\n error: null,\n confirmLoading: false,\n confirmDisabled: false,\n closeOnConfirm: true,\n focusAction: 'cancel',\n persistent: false,\n})\n\n// Эффективный размер: локальный проп → `GrConfigProvider` → дефолт компонента.\nconst resolvedSize = useGrComponentProp('GrConfirmDialog', 'size', () => props.size, 'md')\n\nconst emit = defineEmits<GrConfirmDialogEmits>()\n\n// Дефолты берём из общего i18n-блока пакета (fallback — англ.), а не хардкодим.\nconst { t } = useGranularityTranslations()\nconst resolvedTitle = computed(() => props.title ?? t('gr.dialog.confirm.title', 'Confirm'))\nconst resolvedCloseLabel = computed(() => props.closeLabel ?? t('gr.common.close', 'Close'))\nconst resolvedConfirmText = computed(() => props.confirmText ?? t('gr.common.confirm', 'Confirm'))\nconst resolvedCancelText = computed(() => props.cancelText ?? t('gr.common.cancel', 'Cancel'))\n\nconst open = computed({\n get: () => props.modelValue,\n set: (value: boolean) => emit('update:modelValue', value),\n})\n\nconst confirmButtonRef = ref<InstanceType<typeof GrButton> | null>(null)\nconst cancelButtonRef = ref<InstanceType<typeof GrButton> | null>(null)\n\n// Пока подтверждение в полёте, случайное движение не должно оборвать операцию.\nconst softCloseBlocked = computed(() => props.persistent && props.confirmLoading)\nconst resolvedCloseOnBackdrop = computed(() => (softCloseBlocked.value ? false : props.closeOnBackdrop))\nconst resolvedCloseOnEsc = computed(() => (softCloseBlocked.value ? false : props.closeOnEsc))\n\n/**\n * Фокус ставит содержимое после отрисовки, а не проп `initialFocus` у\n * `GrModal`: кнопка рождается внутри поддерева диалога, и возврат её же пропом\n * наверх замыкает рендер в цикл (проверено на `GrPromptDialog`).\n *\n * Молчит, когда фокусировать нечего: со своим слотом `#footer` кнопок с\n * рефами в DOM нет, и фокус остаётся на панели — это корректный исход, а не\n * повод падать.\n */\nfunction focusAction(): void {\n if (props.focusAction === 'confirm') confirmButtonRef.value?.focus()\n else if (props.focusAction === 'cancel') cancelButtonRef.value?.focus()\n}\n\n// Источник — не только `modelValue`, но и сами кнопки: содержимое панели\n// появляется на такт позже открытия, и фокус по фиксированному `nextTick`\n// приходился на момент, когда фокусировать ещё нечего.\nwatch(\n [() => props.modelValue, cancelButtonRef, confirmButtonRef],\n () => {\n if (!props.modelValue || props.focusAction === 'none') return\n focusAction()\n },\n // `immediate`: окно могут смонтировать уже открытым — смены пропа тогда нет.\n { immediate: true, flush: 'post' },\n)\n\nfunction onCancel(): void {\n emit('cancel')\n emit('update:modelValue', false)\n}\n\nfunction onConfirm(): void {\n emit('confirm')\n if (props.closeOnConfirm)\n emit('update:modelValue', false)\n}\n</script>\n\n<template>\n <GrDialog\n v-model=\"open\"\n :title=\"resolvedTitle\"\n :size=\"resolvedSize\"\n :close-on-backdrop=\"resolvedCloseOnBackdrop\"\n :close-on-esc=\"resolvedCloseOnEsc\"\n :show-header=\"showHeader\"\n :show-close-button=\"showCloseButton\"\n :header-config=\"headerConfig\"\n :footer-config=\"footerConfig\"\n :body-config=\"bodyConfig\"\n :close-label=\"resolvedCloseLabel\"\n >\n <div class=\"grid gap-4\">\n <slot>\n <div v-if=\"description\" class=\"text-[length:var(--gr-control-text-md)] text-[var(--gr-muted-fg)]\">\n {{ description }}\n </div>\n </slot>\n\n <slot name=\"error\" :error=\"error\">\n <GrResponseErrorBanner v-if=\"error\" :error=\"error\" :can-dismiss=\"false\" />\n </slot>\n </div>\n\n <template #footer>\n <slot name=\"footer\">\n <div class=\"flex items-center justify-end gap-3\">\n <GrButton ref=\"cancelButtonRef\" data-testid=\"gr-confirm-cancel\" variant=\"outline\" :size=\"buttonSize\" @click=\"onCancel\">\n {{ resolvedCancelText }}\n </GrButton>\n <GrButton\n ref=\"confirmButtonRef\"\n data-testid=\"gr-confirm-confirm\"\n :variant=\"confirmVariant\"\n :tone=\"confirmTone\"\n :size=\"buttonSize\"\n :loading=\"confirmLoading\"\n :disabled=\"confirmDisabled\"\n @click=\"onConfirm\"\n >\n {{ resolvedConfirmText }}\n </GrButton>\n </div>\n </slot>\n </template>\n </GrDialog>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqFA,MAAM,QAAQ;EA4Bd,MAAM,eAAe,mBAAmB,mBAAmB,cAAc,MAAM,MAAM,IAAI;EAEzF,MAAM,OAAO;EAGb,MAAM,EAAE,MAAM,2BAA2B;EACzC,MAAM,gBAAgB,eAAe,MAAM,SAAS,EAAE,2BAA2B,SAAS,CAAC;EAC3F,MAAM,qBAAqB,eAAe,MAAM,cAAc,EAAE,mBAAmB,OAAO,CAAC;EAC3F,MAAM,sBAAsB,eAAe,MAAM,eAAe,EAAE,qBAAqB,SAAS,CAAC;EACjG,MAAM,qBAAqB,eAAe,MAAM,cAAc,EAAE,oBAAoB,QAAQ,CAAC;EAE7F,MAAM,OAAO,SAAS;GACpB,WAAW,MAAM;GACjB,MAAM,UAAmB,KAAK,qBAAqB,KAAK;EAC1D,CAAC;EAED,MAAM,mBAAmB,IAA0C,IAAI;EACvE,MAAM,kBAAkB,IAA0C,IAAI;EAGtE,MAAM,mBAAmB,eAAe,MAAM,cAAc,MAAM,cAAc;EAChF,MAAM,0BAA0B,eAAgB,iBAAiB,QAAQ,QAAQ,MAAM,eAAgB;EACvG,MAAM,qBAAqB,eAAgB,iBAAiB,QAAQ,QAAQ,MAAM,UAAW;;;;;;;;;;EAW7F,SAAS,cAAoB;GAC3B,IAAI,MAAM,gBAAgB,WAAW,iBAAiB,OAAO,MAAM;QAC9D,IAAI,MAAM,gBAAgB,UAAU,gBAAgB,OAAO,MAAM;EACxE;EAKA,MACE;SAAO,MAAM;GAAY;GAAiB;EAAgB,SACpD;GACJ,IAAI,CAAC,MAAM,cAAc,MAAM,gBAAgB,QAAQ;GACvD,YAAY;EACd,GAEA;GAAE,WAAW;GAAM,OAAO;EAAO,CACnC;EAEA,SAAS,WAAiB;GACxB,KAAK,QAAQ;GACb,KAAK,qBAAqB,KAAK;EACjC;EAEA,SAAS,YAAkB;GACzB,KAAK,SAAS;GACd,IAAI,MAAM,gBACR,KAAK,qBAAqB,KAAK;EACnC;;uBAIE,YA8CW,kBAAA;gBA7CA,KAAA;sEAAI,QAAA;IACZ,OAAO,cAAA;IACP,MAAM,MAAA,YAAA;IACN,qBAAmB,wBAAA;IACnB,gBAAc,mBAAA;IACd,eAAa,QAAA;IACb,qBAAmB,QAAA;IACnB,iBAAe,QAAA;IACf,iBAAe,QAAA;IACf,eAAa,QAAA;IACb,eAAa,mBAAA;;IAcH,QAAM,cAmBR,CAlBP,WAkBO,KAAA,QAAA,UAAA,CAAA,SAAA,CAjBL,mBAgBM,OAhBN,YAgBM,CAfJ,YAEW,kBAAA;cAFG;KAAJ,KAAI;KAAkB,eAAY;KAAoB,SAAQ;KAAW,MAAM,QAAA;KAAa,SAAO;;4BACnF,CAAA,gBAAA,gBAArB,mBAAA,KAAkB,GAAA,CAAA,CAAA,CAAA;;qBAEvB,YAWW,kBAAA;cAVL;KAAJ,KAAI;KACJ,eAAY;KACX,SAAS,QAAA;KACT,MAAM,QAAA;KACN,MAAM,QAAA;KACN,SAAS,QAAA;KACT,UAAU,QAAA;KACV,SAAO;;4BAEiB,CAAA,gBAAA,gBAAtB,oBAAA,KAAmB,GAAA,CAAA,CAAA,CAAA;;;;;;;;;2BAlBxB,CAVN,mBAUM,OAVN,YAUM,CATJ,WAIO,KAAA,QAAA,WAAA,CAAA,SAAA,CAHM,QAAA,eAAA,UAAA,GAAX,mBAEM,OAFN,YAEM,gBADD,QAAA,WAAW,GAAA,CAAA,KAAA,mBAAA,IAAA,IAAA,CAAA,CAAA,GAIlB,WAEO,KAAA,QAAA,SAAA,EAFa,OAAO,QAAA,MAAK,SAEzB,CADwB,QAAA,SAAA,UAAA,GAA7B,YAA0E,+BAAA;;KAArC,OAAO,QAAA;KAAQ,eAAa"}
1
+ {"version":3,"file":"GrConfirmDialog-hUTi-GdJ.js","names":[],"sources":["../../../../src/components/GrConfirmDialog/GrConfirmDialog.vue","../../../../src/components/GrConfirmDialog/GrConfirmDialog.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * GrConfirmDialog — GR-примитив диалога подтверждения поверх `GrDialog`.\n *\n * Синхронизирован с `GrDialog`/`GrPromptDialog` по набору проп-проксирования:\n * `size`, `closeOnBackdrop`, `closeOnEsc`, `showHeader`, `showCloseButton`,\n * `headerConfig`, `footerConfig`, `bodyConfig`, `closeLabel`.\n *\n * Клик по «Confirm»/«Cancel» эмитит одноимённое событие и закрывает диалог\n * через `update:modelValue`.\n */\nimport { useGrComponentProp } from '../GrConfigProvider/context'\nimport { computed, ref, watch } from 'vue'\n\nimport GrButton from '../GrButton/GrButton.vue'\nimport GrDialog from '../GrDialog/GrDialog.vue'\nimport GrResponseErrorBanner from '../GrResponseErrorBanner/GrResponseErrorBanner.vue'\nimport { useGranularityTranslations } from '../../internal/granularityI18n'\nimport type { GrButtonSize, GrButtonTone, GrButtonVariant } from '../GrButton'\nimport type { GrDialogSectionConfig, GrDialogSize } from '../GrDialog'\nimport type { ResponseErrorInfo } from '../GrResponseErrorBanner'\n\n/** Какое действие получает фокус при открытии окна. */\nexport type GrConfirmDialogFocusAction = 'confirm' | 'cancel' | 'none'\n\nexport interface GrConfirmDialogProps {\n modelValue: boolean\n title?: string\n description?: string\n closeOnBackdrop?: boolean\n closeOnEsc?: boolean\n showHeader?: boolean\n showCloseButton?: boolean\n size?: GrDialogSize\n headerConfig?: GrDialogSectionConfig\n footerConfig?: GrDialogSectionConfig\n bodyConfig?: GrDialogSectionConfig\n /** A11y-лейбл кнопки закрытия (i18n). */\n closeLabel?: string\n buttonSize?: GrButtonSize\n confirmText?: string\n cancelText?: string\n confirmVariant?: GrButtonVariant\n confirmTone?: GrButtonTone\n /**\n * Структура ошибки ответа сервера для показа в теле диалога\n * (через `GrResponseErrorBanner`). Используется императивным\n * `useDialogService` для async-`onConfirm`. `null` — блок скрыт.\n */\n error?: ResponseErrorInfo | null\n /** Состояние загрузки кнопки Confirm (async-`onConfirm` in-flight). */\n confirmLoading?: boolean\n /** Принудительно дизейблит кнопку Confirm. */\n confirmDisabled?: boolean\n /**\n * Закрывать ли диалог автоматически по клику Confirm. По умолчанию `true`\n * (историческое поведение). `false` — отдаёт управление закрытием наружу\n * (нужно `useDialogService`, который ждёт результат async-`onConfirm`).\n */\n closeOnConfirm?: boolean\n /**\n * Какое действие получает фокус при открытии. По умолчанию «Отмена»:\n * подтверждение бывает деструктивным, и `Enter` сразу после открытия не\n * должен его запускать. `none` оставляет фокус на панели окна.\n *\n * Имя не `initialFocus` намеренно: у `GrModal`/`GrDrawer` так называется\n * проп с элементом, а здесь выбирается действие.\n */\n focusAction?: GrConfirmDialogFocusAction\n /**\n * Запрет закрытия «мягкими» способами (Esc, клик по бэкдропу), пока идёт\n * подтверждение (`confirmLoading`). Кнопка закрытия и «Отмена» остаются:\n * окно без единого выхода — ловушка.\n */\n persistent?: boolean\n}\n\nexport interface GrConfirmDialogEmits {\n (e: 'update:modelValue', value: boolean): void\n (e: 'confirm'): void\n (e: 'cancel'): void\n}\n\nimport './defaults'\n\nconst props = withDefaults(defineProps<GrConfirmDialogProps>(), {\n title: undefined,\n description: undefined,\n closeOnBackdrop: true,\n closeOnEsc: true,\n showHeader: true,\n showCloseButton: true,\n // Дефолт `size` живёт в резолвере ниже, а не здесь: Vue подставил бы его\n // до того, как компонент заглянет в `GrConfigProvider`.\n size: undefined,\n headerConfig: undefined,\n footerConfig: undefined,\n bodyConfig: undefined,\n closeLabel: undefined,\n buttonSize: undefined,\n confirmText: undefined,\n cancelText: undefined,\n confirmVariant: 'primary',\n confirmTone: 'primary',\n error: null,\n confirmLoading: false,\n confirmDisabled: false,\n closeOnConfirm: true,\n focusAction: 'cancel',\n persistent: false,\n})\n\n// Эффективный размер: локальный проп → `GrConfigProvider` → дефолт компонента.\nconst resolvedSize = useGrComponentProp('GrConfirmDialog', 'size', () => props.size, 'md')\n\nconst emit = defineEmits<GrConfirmDialogEmits>()\n\n// Дефолты берём из общего i18n-блока пакета (fallback — англ.), а не хардкодим.\nconst { t } = useGranularityTranslations()\nconst resolvedTitle = computed(() => props.title ?? t('gr.dialog.confirm.title', 'Confirm'))\nconst resolvedCloseLabel = computed(() => props.closeLabel ?? t('gr.common.close', 'Close'))\nconst resolvedConfirmText = computed(() => props.confirmText ?? t('gr.common.confirm', 'Confirm'))\nconst resolvedCancelText = computed(() => props.cancelText ?? t('gr.common.cancel', 'Cancel'))\n\nconst open = computed({\n get: () => props.modelValue,\n set: (value: boolean) => emit('update:modelValue', value),\n})\n\nconst confirmButtonRef = ref<InstanceType<typeof GrButton> | null>(null)\nconst cancelButtonRef = ref<InstanceType<typeof GrButton> | null>(null)\n\n// Пока подтверждение в полёте, случайное движение не должно оборвать операцию.\nconst softCloseBlocked = computed(() => props.persistent && props.confirmLoading)\nconst resolvedCloseOnBackdrop = computed(() => (softCloseBlocked.value ? false : props.closeOnBackdrop))\nconst resolvedCloseOnEsc = computed(() => (softCloseBlocked.value ? false : props.closeOnEsc))\n\n/**\n * Фокус ставит содержимое после отрисовки, а не проп `initialFocus` у\n * `GrModal`: кнопка рождается внутри поддерева диалога, и возврат её же пропом\n * наверх замыкает рендер в цикл (проверено на `GrPromptDialog`).\n *\n * Молчит, когда фокусировать нечего: со своим слотом `#footer` кнопок с\n * рефами в DOM нет, и фокус остаётся на панели — это корректный исход, а не\n * повод падать.\n */\nfunction focusAction(): void {\n if (props.focusAction === 'confirm') confirmButtonRef.value?.focus()\n else if (props.focusAction === 'cancel') cancelButtonRef.value?.focus()\n}\n\n// Источник — не только `modelValue`, но и сами кнопки: содержимое панели\n// появляется на такт позже открытия, и фокус по фиксированному `nextTick`\n// приходился на момент, когда фокусировать ещё нечего.\nwatch(\n [() => props.modelValue, cancelButtonRef, confirmButtonRef],\n () => {\n if (!props.modelValue || props.focusAction === 'none') return\n focusAction()\n },\n // `immediate`: окно могут смонтировать уже открытым — смены пропа тогда нет.\n { immediate: true, flush: 'post' },\n)\n\nfunction onCancel(): void {\n emit('cancel')\n emit('update:modelValue', false)\n}\n\nfunction onConfirm(): void {\n emit('confirm')\n if (props.closeOnConfirm)\n emit('update:modelValue', false)\n}\n</script>\n\n<template>\n <GrDialog\n v-model=\"open\"\n :title=\"resolvedTitle\"\n :size=\"resolvedSize\"\n :close-on-backdrop=\"resolvedCloseOnBackdrop\"\n :close-on-esc=\"resolvedCloseOnEsc\"\n :show-header=\"showHeader\"\n :show-close-button=\"showCloseButton\"\n :header-config=\"headerConfig\"\n :footer-config=\"footerConfig\"\n :body-config=\"bodyConfig\"\n :close-label=\"resolvedCloseLabel\"\n >\n <div class=\"grid gap-4\">\n <slot>\n <div v-if=\"description\" class=\"text-[length:var(--gr-control-text-md)] text-[var(--gr-muted-fg)]\">\n {{ description }}\n </div>\n </slot>\n\n <slot name=\"error\" :error=\"error\">\n <GrResponseErrorBanner v-if=\"error\" :error=\"error\" :can-dismiss=\"false\" />\n </slot>\n </div>\n\n <template #footer>\n <slot name=\"footer\">\n <div class=\"flex items-center justify-end gap-3\">\n <GrButton ref=\"cancelButtonRef\" data-testid=\"gr-confirm-cancel\" variant=\"outline\" :size=\"buttonSize\" @click=\"onCancel\">\n {{ resolvedCancelText }}\n </GrButton>\n <GrButton\n ref=\"confirmButtonRef\"\n data-testid=\"gr-confirm-confirm\"\n :variant=\"confirmVariant\"\n :tone=\"confirmTone\"\n :size=\"buttonSize\"\n :loading=\"confirmLoading\"\n :disabled=\"confirmDisabled\"\n @click=\"onConfirm\"\n >\n {{ resolvedConfirmText }}\n </GrButton>\n </div>\n </slot>\n </template>\n </GrDialog>\n</template>\n","<script setup lang=\"ts\">\n/**\n * GrConfirmDialog — GR-примитив диалога подтверждения поверх `GrDialog`.\n *\n * Синхронизирован с `GrDialog`/`GrPromptDialog` по набору проп-проксирования:\n * `size`, `closeOnBackdrop`, `closeOnEsc`, `showHeader`, `showCloseButton`,\n * `headerConfig`, `footerConfig`, `bodyConfig`, `closeLabel`.\n *\n * Клик по «Confirm»/«Cancel» эмитит одноимённое событие и закрывает диалог\n * через `update:modelValue`.\n */\nimport { useGrComponentProp } from '../GrConfigProvider/context'\nimport { computed, ref, watch } from 'vue'\n\nimport GrButton from '../GrButton/GrButton.vue'\nimport GrDialog from '../GrDialog/GrDialog.vue'\nimport GrResponseErrorBanner from '../GrResponseErrorBanner/GrResponseErrorBanner.vue'\nimport { useGranularityTranslations } from '../../internal/granularityI18n'\nimport type { GrButtonSize, GrButtonTone, GrButtonVariant } from '../GrButton'\nimport type { GrDialogSectionConfig, GrDialogSize } from '../GrDialog'\nimport type { ResponseErrorInfo } from '../GrResponseErrorBanner'\n\n/** Какое действие получает фокус при открытии окна. */\nexport type GrConfirmDialogFocusAction = 'confirm' | 'cancel' | 'none'\n\nexport interface GrConfirmDialogProps {\n modelValue: boolean\n title?: string\n description?: string\n closeOnBackdrop?: boolean\n closeOnEsc?: boolean\n showHeader?: boolean\n showCloseButton?: boolean\n size?: GrDialogSize\n headerConfig?: GrDialogSectionConfig\n footerConfig?: GrDialogSectionConfig\n bodyConfig?: GrDialogSectionConfig\n /** A11y-лейбл кнопки закрытия (i18n). */\n closeLabel?: string\n buttonSize?: GrButtonSize\n confirmText?: string\n cancelText?: string\n confirmVariant?: GrButtonVariant\n confirmTone?: GrButtonTone\n /**\n * Структура ошибки ответа сервера для показа в теле диалога\n * (через `GrResponseErrorBanner`). Используется императивным\n * `useDialogService` для async-`onConfirm`. `null` — блок скрыт.\n */\n error?: ResponseErrorInfo | null\n /** Состояние загрузки кнопки Confirm (async-`onConfirm` in-flight). */\n confirmLoading?: boolean\n /** Принудительно дизейблит кнопку Confirm. */\n confirmDisabled?: boolean\n /**\n * Закрывать ли диалог автоматически по клику Confirm. По умолчанию `true`\n * (историческое поведение). `false` — отдаёт управление закрытием наружу\n * (нужно `useDialogService`, который ждёт результат async-`onConfirm`).\n */\n closeOnConfirm?: boolean\n /**\n * Какое действие получает фокус при открытии. По умолчанию «Отмена»:\n * подтверждение бывает деструктивным, и `Enter` сразу после открытия не\n * должен его запускать. `none` оставляет фокус на панели окна.\n *\n * Имя не `initialFocus` намеренно: у `GrModal`/`GrDrawer` так называется\n * проп с элементом, а здесь выбирается действие.\n */\n focusAction?: GrConfirmDialogFocusAction\n /**\n * Запрет закрытия «мягкими» способами (Esc, клик по бэкдропу), пока идёт\n * подтверждение (`confirmLoading`). Кнопка закрытия и «Отмена» остаются:\n * окно без единого выхода — ловушка.\n */\n persistent?: boolean\n}\n\nexport interface GrConfirmDialogEmits {\n (e: 'update:modelValue', value: boolean): void\n (e: 'confirm'): void\n (e: 'cancel'): void\n}\n\nimport './defaults'\n\nconst props = withDefaults(defineProps<GrConfirmDialogProps>(), {\n title: undefined,\n description: undefined,\n closeOnBackdrop: true,\n closeOnEsc: true,\n showHeader: true,\n showCloseButton: true,\n // Дефолт `size` живёт в резолвере ниже, а не здесь: Vue подставил бы его\n // до того, как компонент заглянет в `GrConfigProvider`.\n size: undefined,\n headerConfig: undefined,\n footerConfig: undefined,\n bodyConfig: undefined,\n closeLabel: undefined,\n buttonSize: undefined,\n confirmText: undefined,\n cancelText: undefined,\n confirmVariant: 'primary',\n confirmTone: 'primary',\n error: null,\n confirmLoading: false,\n confirmDisabled: false,\n closeOnConfirm: true,\n focusAction: 'cancel',\n persistent: false,\n})\n\n// Эффективный размер: локальный проп → `GrConfigProvider` → дефолт компонента.\nconst resolvedSize = useGrComponentProp('GrConfirmDialog', 'size', () => props.size, 'md')\n\nconst emit = defineEmits<GrConfirmDialogEmits>()\n\n// Дефолты берём из общего i18n-блока пакета (fallback — англ.), а не хардкодим.\nconst { t } = useGranularityTranslations()\nconst resolvedTitle = computed(() => props.title ?? t('gr.dialog.confirm.title', 'Confirm'))\nconst resolvedCloseLabel = computed(() => props.closeLabel ?? t('gr.common.close', 'Close'))\nconst resolvedConfirmText = computed(() => props.confirmText ?? t('gr.common.confirm', 'Confirm'))\nconst resolvedCancelText = computed(() => props.cancelText ?? t('gr.common.cancel', 'Cancel'))\n\nconst open = computed({\n get: () => props.modelValue,\n set: (value: boolean) => emit('update:modelValue', value),\n})\n\nconst confirmButtonRef = ref<InstanceType<typeof GrButton> | null>(null)\nconst cancelButtonRef = ref<InstanceType<typeof GrButton> | null>(null)\n\n// Пока подтверждение в полёте, случайное движение не должно оборвать операцию.\nconst softCloseBlocked = computed(() => props.persistent && props.confirmLoading)\nconst resolvedCloseOnBackdrop = computed(() => (softCloseBlocked.value ? false : props.closeOnBackdrop))\nconst resolvedCloseOnEsc = computed(() => (softCloseBlocked.value ? false : props.closeOnEsc))\n\n/**\n * Фокус ставит содержимое после отрисовки, а не проп `initialFocus` у\n * `GrModal`: кнопка рождается внутри поддерева диалога, и возврат её же пропом\n * наверх замыкает рендер в цикл (проверено на `GrPromptDialog`).\n *\n * Молчит, когда фокусировать нечего: со своим слотом `#footer` кнопок с\n * рефами в DOM нет, и фокус остаётся на панели — это корректный исход, а не\n * повод падать.\n */\nfunction focusAction(): void {\n if (props.focusAction === 'confirm') confirmButtonRef.value?.focus()\n else if (props.focusAction === 'cancel') cancelButtonRef.value?.focus()\n}\n\n// Источник — не только `modelValue`, но и сами кнопки: содержимое панели\n// появляется на такт позже открытия, и фокус по фиксированному `nextTick`\n// приходился на момент, когда фокусировать ещё нечего.\nwatch(\n [() => props.modelValue, cancelButtonRef, confirmButtonRef],\n () => {\n if (!props.modelValue || props.focusAction === 'none') return\n focusAction()\n },\n // `immediate`: окно могут смонтировать уже открытым — смены пропа тогда нет.\n { immediate: true, flush: 'post' },\n)\n\nfunction onCancel(): void {\n emit('cancel')\n emit('update:modelValue', false)\n}\n\nfunction onConfirm(): void {\n emit('confirm')\n if (props.closeOnConfirm)\n emit('update:modelValue', false)\n}\n</script>\n\n<template>\n <GrDialog\n v-model=\"open\"\n :title=\"resolvedTitle\"\n :size=\"resolvedSize\"\n :close-on-backdrop=\"resolvedCloseOnBackdrop\"\n :close-on-esc=\"resolvedCloseOnEsc\"\n :show-header=\"showHeader\"\n :show-close-button=\"showCloseButton\"\n :header-config=\"headerConfig\"\n :footer-config=\"footerConfig\"\n :body-config=\"bodyConfig\"\n :close-label=\"resolvedCloseLabel\"\n >\n <div class=\"grid gap-4\">\n <slot>\n <div v-if=\"description\" class=\"text-[length:var(--gr-control-text-md)] text-[var(--gr-muted-fg)]\">\n {{ description }}\n </div>\n </slot>\n\n <slot name=\"error\" :error=\"error\">\n <GrResponseErrorBanner v-if=\"error\" :error=\"error\" :can-dismiss=\"false\" />\n </slot>\n </div>\n\n <template #footer>\n <slot name=\"footer\">\n <div class=\"flex items-center justify-end gap-3\">\n <GrButton ref=\"cancelButtonRef\" data-testid=\"gr-confirm-cancel\" variant=\"outline\" :size=\"buttonSize\" @click=\"onCancel\">\n {{ resolvedCancelText }}\n </GrButton>\n <GrButton\n ref=\"confirmButtonRef\"\n data-testid=\"gr-confirm-confirm\"\n :variant=\"confirmVariant\"\n :tone=\"confirmTone\"\n :size=\"buttonSize\"\n :loading=\"confirmLoading\"\n :disabled=\"confirmDisabled\"\n @click=\"onConfirm\"\n >\n {{ resolvedConfirmText }}\n </GrButton>\n </div>\n </slot>\n </template>\n </GrDialog>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqFA,MAAM,QAAQ;EA4Bd,MAAM,eAAe,mBAAmB,mBAAmB,cAAc,MAAM,MAAM,IAAI;EAEzF,MAAM,OAAO;EAGb,MAAM,EAAE,MAAM,2BAA2B;EACzC,MAAM,gBAAgB,eAAe,MAAM,SAAS,EAAE,2BAA2B,SAAS,CAAC;EAC3F,MAAM,qBAAqB,eAAe,MAAM,cAAc,EAAE,mBAAmB,OAAO,CAAC;EAC3F,MAAM,sBAAsB,eAAe,MAAM,eAAe,EAAE,qBAAqB,SAAS,CAAC;EACjG,MAAM,qBAAqB,eAAe,MAAM,cAAc,EAAE,oBAAoB,QAAQ,CAAC;EAE7F,MAAM,OAAO,SAAS;GACpB,WAAW,MAAM;GACjB,MAAM,UAAmB,KAAK,qBAAqB,KAAK;EAC1D,CAAC;EAED,MAAM,mBAAmB,IAA0C,IAAI;EACvE,MAAM,kBAAkB,IAA0C,IAAI;EAGtE,MAAM,mBAAmB,eAAe,MAAM,cAAc,MAAM,cAAc;EAChF,MAAM,0BAA0B,eAAgB,iBAAiB,QAAQ,QAAQ,MAAM,eAAgB;EACvG,MAAM,qBAAqB,eAAgB,iBAAiB,QAAQ,QAAQ,MAAM,UAAW;;;;;;;;;;EAW7F,SAAS,cAAoB;GAC3B,IAAI,MAAM,gBAAgB,WAAW,iBAAiB,OAAO,MAAM;QAC9D,IAAI,MAAM,gBAAgB,UAAU,gBAAgB,OAAO,MAAM;EACxE;EAKA,MACE;SAAO,MAAM;GAAY;GAAiB;EAAgB,SACpD;GACJ,IAAI,CAAC,MAAM,cAAc,MAAM,gBAAgB,QAAQ;GACvD,YAAY;EACd,GAEA;GAAE,WAAW;GAAM,OAAO;EAAO,CACnC;EAEA,SAAS,WAAiB;GACxB,KAAK,QAAQ;GACb,KAAK,qBAAqB,KAAK;EACjC;EAEA,SAAS,YAAkB;GACzB,KAAK,SAAS;GACd,IAAI,MAAM,gBACR,KAAK,qBAAqB,KAAK;EACnC;;uBAIE,YA8CW,kBAAA;gBA7CA,KAAA;sEAAI,QAAA;IACZ,OAAO,cAAA;IACP,MAAM,MAAA,YAAA;IACN,qBAAmB,wBAAA;IACnB,gBAAc,mBAAA;IACd,eAAa,QAAA;IACb,qBAAmB,QAAA;IACnB,iBAAe,QAAA;IACf,iBAAe,QAAA;IACf,eAAa,QAAA;IACb,eAAa,mBAAA;;IAcH,QAAM,cAmBR,CAlBP,WAkBO,KAAA,QAAA,UAAA,CAAA,SAAA,CAjBL,mBAgBM,OAhBN,YAgBM,CAfJ,YAEW,kBAAA;cAFG;KAAJ,KAAI;KAAkB,eAAY;KAAoB,SAAQ;KAAW,MAAM,QAAA;KAAa,SAAO;;4BACnF,CAAA,gBAAA,gBAArB,mBAAA,KAAkB,GAAA,CAAA,CAAA,CAAA;;qBAEvB,YAWW,kBAAA;cAVL;KAAJ,KAAI;KACJ,eAAY;KACX,SAAS,QAAA;KACT,MAAM,QAAA;KACN,MAAM,QAAA;KACN,SAAS,QAAA;KACT,UAAU,QAAA;KACV,SAAO;;4BAEiB,CAAA,gBAAA,gBAAtB,oBAAA,KAAmB,GAAA,CAAA,CAAA,CAAA;;;;;;;;;2BAlBxB,CAVN,mBAUM,OAVN,YAUM,CATJ,WAIO,KAAA,QAAA,WAAA,CAAA,SAAA,CAHM,QAAA,eAAA,UAAA,GAAX,mBAEM,OAFN,YAEM,gBADD,QAAA,WAAW,GAAA,CAAA,KAAA,mBAAA,IAAA,IAAA,CAAA,CAAA,GAIlB,WAEO,KAAA,QAAA,SAAA,EAFa,OAAO,QAAA,MAAK,SAEzB,CADwB,QAAA,SAAA,UAAA,GAA7B,YAA0E,+BAAA;;KAArC,OAAO,QAAA;KAAQ,eAAa"}
@@ -1,3 +1,3 @@
1
- import { t as GrConfirmDialog_default } from "./chunks/GrConfirmDialog-DaQmlp1_.js";
1
+ import { t as GrConfirmDialog_default } from "./chunks/GrConfirmDialog-hUTi-GdJ.js";
2
2
  import { t as grConfirmDialogConfig } from "../../chunks/config-A-bBiotF.js";
3
3
  export { GrConfirmDialog_default as GrConfirmDialog, GrConfirmDialog_default as default, grConfirmDialogConfig };