@feugene/granularity 0.49.0 → 0.50.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/chunks/chevron-up-BhW6hi8L.js +23 -0
- package/dist/chunks/chevron-up-BhW6hi8L.js.map +1 -0
- package/dist/chunks/{config-E1cTyRVV.js → config-8n1VR0ju.js} +1 -1
- package/dist/chunks/{config-E1cTyRVV.js.map → config-8n1VR0ju.js.map} +1 -1
- package/dist/chunks/{config-DIDz_E5m.js → config-B34mkd53.js} +66 -1
- package/dist/chunks/config-B34mkd53.js.map +1 -0
- package/dist/chunks/{config-B5SBUa6u.js → config-B7qZqiUB.js} +28 -1
- package/dist/chunks/config-B7qZqiUB.js.map +1 -0
- package/dist/chunks/config-BBrPUEye.js +8 -0
- package/dist/chunks/config-BBrPUEye.js.map +1 -0
- package/dist/chunks/{config-CT4lP6S4.js → config-BOCzHqWh.js} +2 -2
- package/dist/chunks/{config-CT4lP6S4.js.map → config-BOCzHqWh.js.map} +1 -1
- package/dist/chunks/{config-iemgzS4x.js → config-BP1ktzwh.js} +2 -24
- package/dist/chunks/config-BP1ktzwh.js.map +1 -0
- package/dist/chunks/config-BTxmdRzT.js +28 -0
- package/dist/chunks/config-BTxmdRzT.js.map +1 -0
- package/dist/chunks/{config-CjWOTgLL.js → config-Bk52xd5l.js} +12 -5
- package/dist/chunks/config-Bk52xd5l.js.map +1 -0
- package/dist/chunks/{config-D3HOuHDe.js → config-C3SqBqSQ.js} +3 -1
- package/dist/chunks/config-C3SqBqSQ.js.map +1 -0
- package/dist/chunks/{config-2ZHRsdOc.js → config-C3uqd-sW.js} +1 -1
- package/dist/chunks/config-C3uqd-sW.js.map +1 -0
- package/dist/chunks/{config-BXRmsn3t.js → config-CPhcZzHi.js} +72 -10
- package/dist/chunks/config-CPhcZzHi.js.map +1 -0
- package/dist/chunks/config-CWtfxkM9.js.map +1 -1
- package/dist/chunks/{config--t2dxj0t.js → config-CmLTCmY9.js} +2 -2
- package/dist/chunks/{config--t2dxj0t.js.map → config-CmLTCmY9.js.map} +1 -1
- package/dist/chunks/{config-BAse0laT.js → config-CvtqB4ki.js} +8 -3
- package/dist/chunks/config-CvtqB4ki.js.map +1 -0
- package/dist/chunks/{config-BcXX7S7B.js → config-D-JgqV0J.js} +5 -1
- package/dist/chunks/{config-BcXX7S7B.js.map → config-D-JgqV0J.js.map} +1 -1
- package/dist/chunks/{config-BHLMTJaR.js → config-D1oVht-E.js} +8 -3
- package/dist/chunks/config-D1oVht-E.js.map +1 -0
- package/dist/chunks/{config-B42iJ48O.js → config-DG41PD9i.js} +13 -1
- package/dist/chunks/config-DG41PD9i.js.map +1 -0
- package/dist/chunks/{config-Bs1HwUcx.js → config-DPJ3jtiB.js} +12 -2
- package/dist/chunks/config-DPJ3jtiB.js.map +1 -0
- package/dist/chunks/{config-tNqtapcT.js → config-DpqjlCfB.js} +2 -2
- package/dist/chunks/{config-tNqtapcT.js.map → config-DpqjlCfB.js.map} +1 -1
- package/dist/chunks/{config-DNDgp9bB.js → config-DpzFoSIh.js} +64 -2
- package/dist/chunks/config-DpzFoSIh.js.map +1 -0
- package/dist/chunks/config-SPugeaHT.js +37 -0
- package/dist/chunks/config-SPugeaHT.js.map +1 -0
- package/dist/chunks/{en-CsQUoBS2.js → en-mIFywnV2.js} +22 -6
- package/dist/chunks/en-mIFywnV2.js.map +1 -0
- package/dist/chunks/{es-9nbkPvdA.js → es-CvthYwtB.js} +22 -6
- package/dist/chunks/es-CvthYwtB.js.map +1 -0
- package/dist/chunks/{es-DrUz5J6I.js → es-DlGd6Mrj.js} +3 -3
- package/dist/chunks/{es-DrUz5J6I.js.map → es-DlGd6Mrj.js.map} +1 -1
- package/dist/chunks/{generated-CxvC5O0V.js → generated-Cx4C7GRN.js} +84 -0
- package/dist/chunks/{generated-CxvC5O0V.js.map → generated-Cx4C7GRN.js.map} +1 -1
- package/dist/chunks/{grPopoverStyles-CYAeO3Ov.js → grPopoverStyles-CncEkiPu.js} +1 -1
- package/dist/chunks/{grPopoverStyles-CYAeO3Ov.js.map → grPopoverStyles-CncEkiPu.js.map} +1 -1
- package/dist/chunks/{grSelectStyles-D9EQ-pgK.js → grSelectStyles-Cam-IG9s.js} +3 -2
- package/dist/chunks/grSelectStyles-Cam-IG9s.js.map +1 -0
- package/dist/chunks/{grSliderStyles-kaz6VXZ3.js → grSliderStyles-CqzV0hll.js} +1 -1
- package/dist/chunks/grSliderStyles-CqzV0hll.js.map +1 -0
- package/dist/chunks/{config-CbEbLyDE.js → grSortableListStyles-CxieDmpe.js} +1 -27
- package/dist/chunks/grSortableListStyles-CxieDmpe.js.map +1 -0
- package/dist/chunks/grTableStyles-CPSxDTOW.js +66 -0
- package/dist/chunks/grTableStyles-CPSxDTOW.js.map +1 -0
- package/dist/chunks/{config-CMNfZO7S.js → grTabsStyles-DIz2VdIm.js} +1 -36
- package/dist/chunks/grTabsStyles-DIz2VdIm.js.map +1 -0
- package/dist/chunks/grTooltipStyles-CtbGEEGV.js +24 -0
- package/dist/chunks/grTooltipStyles-CtbGEEGV.js.map +1 -0
- package/dist/chunks/{granular-provider-B6xomapW.js → granular-provider-cv5vaM1a.js} +21 -19
- package/dist/chunks/granular-provider-cv5vaM1a.js.map +1 -0
- package/dist/chunks/hotkeySequence-BTHIM_5A.js +46 -0
- package/dist/chunks/hotkeySequence-BTHIM_5A.js.map +1 -0
- package/dist/chunks/{keyboard-DE2yhz_b.js → keyboard-BiFSgWLt.js} +70 -1
- package/dist/chunks/keyboard-BiFSgWLt.js.map +1 -0
- package/dist/chunks/optionPanel-DvY7Tv_4.js +182 -0
- package/dist/chunks/optionPanel-DvY7Tv_4.js.map +1 -0
- package/dist/chunks/overlayListPanel-D91jBCHU.js +21 -0
- package/dist/chunks/overlayListPanel-D91jBCHU.js.map +1 -0
- package/dist/chunks/{overlayStack-DH4Z7am1.js → overlayStack-DCkCgXZP.js} +1 -1
- package/dist/chunks/{overlayStack-DH4Z7am1.js.map → overlayStack-DCkCgXZP.js.map} +1 -1
- package/dist/chunks/{overlayPanelSurface-BKeMhRx4.js → overlayTransition-C0FDMx7Q.js} +24 -24
- package/dist/chunks/overlayTransition-C0FDMx7Q.js.map +1 -0
- package/dist/chunks/{ru-88i1WG0b.js → ru-CQKDR-kD.js} +22 -6
- package/dist/chunks/ru-CQKDR-kD.js.map +1 -0
- package/dist/chunks/{useMenuItemsFocus-B7Bl_aFA.js → useMenuItemsFocus-C031blYS.js} +1 -1
- package/dist/chunks/{useMenuItemsFocus-B7Bl_aFA.js.map → useMenuItemsFocus-C031blYS.js.map} +1 -1
- package/dist/chunks/{useModalOverlay-ACRkflzx.js → useModalOverlay-CKCQkGdB.js} +1 -1
- package/dist/chunks/{useModalOverlay-ACRkflzx.js.map → useModalOverlay-CKCQkGdB.js.map} +1 -1
- package/dist/components/GrAutocomplete/chunks/{GrAutocomplete-Chhw65pI.js → GrAutocomplete-Cyr1-ENw.js} +181 -123
- package/dist/components/GrAutocomplete/chunks/GrAutocomplete-Cyr1-ENw.js.map +1 -0
- package/dist/components/GrAutocomplete/index.js +2 -2
- package/dist/components/GrAutocomplete/styles.css +1 -1
- package/dist/components/GrCarousel/chunks/{GrCarousel-ByuughtI.js → GrCarousel-CBj-PEPB.js} +186 -37
- package/dist/components/GrCarousel/chunks/GrCarousel-CBj-PEPB.js.map +1 -0
- package/dist/components/GrCarousel/index.js +2 -2
- package/dist/components/GrCarousel/styles.css +1 -1
- package/dist/components/GrCheckbox/chunks/{GrCheckbox-Dp201frb.js → GrCheckbox-B4NJc7Ur.js} +2 -1
- package/dist/components/GrCheckbox/chunks/GrCheckbox-B4NJc7Ur.js.map +1 -0
- package/dist/components/GrCheckbox/index.js +1 -1
- package/dist/components/GrCheckboxGroup/chunks/{GrCheckboxGroup-IpqG5qwm.js → GrCheckboxGroup-qZHpNFCX.js} +1 -1
- package/dist/components/GrCheckboxGroup/chunks/{GrCheckboxGroup-IpqG5qwm.js.map → GrCheckboxGroup-qZHpNFCX.js.map} +1 -1
- package/dist/components/GrCheckboxGroup/index.js +1 -1
- package/dist/components/GrColorPicker/chunks/{GrColorPicker-BRM_4lyI.js → GrColorPicker-vGSgpUV9.js} +353 -38
- package/dist/components/GrColorPicker/chunks/GrColorPicker-vGSgpUV9.js.map +1 -0
- package/dist/components/GrColorPicker/index.js +2 -2
- package/dist/components/GrColorPicker/styles.css +1 -1
- package/dist/components/GrCommandPalette/chunks/{GrCommandPalette-BJHmkDQv.js → GrCommandPalette-CAHgj0Aa.js} +23 -7
- package/dist/components/GrCommandPalette/chunks/GrCommandPalette-CAHgj0Aa.js.map +1 -0
- package/dist/components/GrCommandPalette/index.js +1 -1
- package/dist/components/GrCommandPalette/styles.css +1 -1
- package/dist/components/GrConfirmDialog/chunks/{GrConfirmDialog-BzUQwbec.js → GrConfirmDialog-dg021BMd.js} +1 -1
- package/dist/components/GrConfirmDialog/chunks/{GrConfirmDialog-BzUQwbec.js.map → GrConfirmDialog-dg021BMd.js.map} +1 -1
- package/dist/components/GrConfirmDialog/index.js +1 -1
- package/dist/components/GrContextMenu/chunks/{GrContextMenu-RpxMHQXH.js → GrContextMenu-bQ1Vvy2c.js} +3 -3
- package/dist/components/GrContextMenu/chunks/{GrContextMenu-RpxMHQXH.js.map → GrContextMenu-bQ1Vvy2c.js.map} +1 -1
- package/dist/components/GrContextMenu/index.js +1 -1
- package/dist/components/GrDataTable/chunks/{GrDataTable-DQxYYgQk.js → GrDataTable-Bb2jWnRG.js} +576 -136
- package/dist/components/GrDataTable/chunks/GrDataTable-Bb2jWnRG.js.map +1 -0
- package/dist/components/GrDataTable/index.js +2 -2
- package/dist/components/GrDelta/chunks/{GrDelta-CgTvfoIN.js → GrDelta-BSv1KdMy.js} +0 -0
- package/dist/components/GrDelta/chunks/{GrDelta-CgTvfoIN.js.map → GrDelta-BSv1KdMy.js.map} +1 -1
- package/dist/components/GrDelta/index.js +2 -2
- package/dist/components/GrDialog/chunks/{GrDialog-DDz_OEhk.js → GrDialog-C9Zu72jB.js} +1 -1
- package/dist/components/GrDialog/chunks/{GrDialog-DDz_OEhk.js.map → GrDialog-C9Zu72jB.js.map} +1 -1
- package/dist/components/GrDialog/index.js +1 -1
- package/dist/components/GrDialogService/chunks/{GrDialogService-Dtq0ZCN5.js → GrDialogService-DLBifO61.js} +2 -2
- package/dist/components/GrDialogService/chunks/{GrDialogService-Dtq0ZCN5.js.map → GrDialogService-DLBifO61.js.map} +1 -1
- package/dist/components/GrDialogService/index.js +1 -1
- package/dist/components/GrDrawer/chunks/{GrDrawer-CNpSMuN-.js → GrDrawer-DOcRTE8G.js} +1 -1
- package/dist/components/GrDrawer/chunks/{GrDrawer-CNpSMuN-.js.map → GrDrawer-DOcRTE8G.js.map} +1 -1
- package/dist/components/GrDrawer/index.js +1 -1
- package/dist/components/GrDropdown/chunks/{GrDropdown-cLZuZMEY.js → GrDropdown-kxwmgfSe.js} +2 -2
- package/dist/components/GrDropdown/chunks/{GrDropdown-cLZuZMEY.js.map → GrDropdown-kxwmgfSe.js.map} +1 -1
- package/dist/components/GrDropdown/index.js +2 -2
- package/dist/components/GrDropdownMenu/chunks/{GrDropdownMenu-Dxkz_ry4.js → GrDropdownMenu--VoK3VY0.js} +3 -34
- package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu--VoK3VY0.js.map +1 -0
- package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-CkM3BFPL.js +34 -0
- package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-CkM3BFPL.js.map +1 -0
- package/dist/components/GrDropdownMenu/index.js +2 -1
- package/dist/components/GrEmptyState/chunks/{GrEmptyState-BbvwE-E0.js → GrEmptyState-Bz6-_ED4.js} +42 -6
- package/dist/components/GrEmptyState/chunks/GrEmptyState-Bz6-_ED4.js.map +1 -0
- package/dist/components/GrEmptyState/index.js +1 -1
- package/dist/components/GrFileUpload/chunks/{GrFileUpload-BwMR71zN.js → GrFileUpload-Bgdfnkd8.js} +5 -2
- package/dist/components/GrFileUpload/chunks/GrFileUpload-Bgdfnkd8.js.map +1 -0
- package/dist/components/GrFileUpload/index.js +1 -1
- package/dist/components/GrFormFile/chunks/{GrFormFile-Dlxx-9zi.js → GrFormFile-Ctq1isz-.js} +78 -11
- package/dist/components/GrFormFile/chunks/GrFormFile-Ctq1isz-.js.map +1 -0
- package/dist/components/GrFormFile/index.js +2 -2
- package/dist/components/GrFormFile/styles.css +1 -1
- package/dist/components/GrImageViewer/chunks/{GrImageViewer-DK-iVHHC.js → GrImageViewer-Bnql_dNP.js} +1 -1
- package/dist/components/GrImageViewer/chunks/{GrImageViewer-DK-iVHHC.js.map → GrImageViewer-Bnql_dNP.js.map} +1 -1
- package/dist/components/GrImageViewer/index.js +1 -1
- package/dist/components/GrInput/chunks/{GrInput-DV4gMWPR.js → GrInput-CoaFLpaU.js} +43 -22
- package/dist/components/GrInput/chunks/GrInput-CoaFLpaU.js.map +1 -0
- package/dist/components/GrInput/index.js +1 -1
- package/dist/components/GrInputTag/chunks/{GrInputTag-qnRdAZnn.js → GrInputTag-BzzNRBe3.js} +245 -18
- package/dist/components/GrInputTag/chunks/GrInputTag-BzzNRBe3.js.map +1 -0
- package/dist/components/GrInputTag/index.js +2 -2
- package/dist/components/GrJsonViewer/chunks/{GrJsonViewer-D7CyWzhT.js → GrJsonViewer-B6ZJ3GFH.js} +2 -2
- package/dist/components/GrJsonViewer/chunks/{GrJsonViewer-D7CyWzhT.js.map → GrJsonViewer-B6ZJ3GFH.js.map} +1 -1
- package/dist/components/GrJsonViewer/index.js +1 -1
- package/dist/components/GrKbd/chunks/{GrKbd-BNMeoaLV.js → GrKbd-D2rHDkQv.js} +42 -37
- package/dist/components/GrKbd/chunks/GrKbd-D2rHDkQv.js.map +1 -0
- package/dist/components/GrKbd/index.js +1 -1
- package/dist/components/GrModal/chunks/{GrModal-Cm0mtSXk.js → GrModal-SHb1U2qx.js} +1 -1
- package/dist/components/GrModal/chunks/{GrModal-Cm0mtSXk.js.map → GrModal-SHb1U2qx.js.map} +1 -1
- package/dist/components/GrModal/index.js +1 -1
- package/dist/components/GrNavbar/chunks/{GrNavbar-BRGuksiy.js → GrNavbar-IEIHC5Vt.js} +10 -4
- package/dist/components/GrNavbar/chunks/GrNavbar-IEIHC5Vt.js.map +1 -0
- package/dist/components/GrNavbar/index.js +2 -2
- package/dist/components/GrNumberInput/chunks/{GrNumberInput-BI6-vkcs.js → GrNumberInput-CmnUDaKi.js} +2 -22
- package/dist/components/GrNumberInput/chunks/{GrNumberInput-BI6-vkcs.js.map → GrNumberInput-CmnUDaKi.js.map} +1 -1
- package/dist/components/GrNumberInput/index.js +1 -1
- package/dist/components/GrPagination/chunks/{GrPagination-CMrLPzvL.js → GrPagination-AMbn5D8I.js} +1 -1
- package/dist/components/GrPagination/chunks/{GrPagination-CMrLPzvL.js.map → GrPagination-AMbn5D8I.js.map} +1 -1
- package/dist/components/GrPagination/index.js +1 -1
- package/dist/components/GrPopover/chunks/{GrPopover-CcWvr1ZA.js → GrPopover-DjVxt8bf.js} +3 -3
- package/dist/components/GrPopover/chunks/{GrPopover-CcWvr1ZA.js.map → GrPopover-DjVxt8bf.js.map} +1 -1
- package/dist/components/GrPopover/index.js +2 -2
- package/dist/components/GrPromptDialog/chunks/{GrPromptDialog-BEL-QgwE.js → GrPromptDialog-BhbIZP1f.js} +3 -3
- package/dist/components/GrPromptDialog/chunks/{GrPromptDialog-BEL-QgwE.js.map → GrPromptDialog-BhbIZP1f.js.map} +1 -1
- package/dist/components/GrPromptDialog/index.js +1 -1
- package/dist/components/GrSelect/chunks/{GrSelect-DvSq-nV-.js → GrSelect-B-ykrHpL.js} +24 -180
- package/dist/components/GrSelect/chunks/GrSelect-B-ykrHpL.js.map +1 -0
- package/dist/components/GrSelect/index.js +2 -2
- package/dist/components/GrSelect/styles.css +1 -1
- package/dist/components/GrSidebar/chunks/GrSidebar-jVvoLGDO.js +543 -0
- package/dist/components/GrSidebar/chunks/GrSidebar-jVvoLGDO.js.map +1 -0
- package/dist/components/GrSidebar/index.js +2 -2
- package/dist/components/GrSlider/chunks/{GrSlider-CO8N9SF6.js → GrSlider-DF2Cq0rV.js} +29 -4
- package/dist/components/GrSlider/chunks/GrSlider-DF2Cq0rV.js.map +1 -0
- package/dist/components/GrSlider/index.js +2 -2
- package/dist/components/GrSortableList/chunks/{GrSortableList-NKriuGm_.js → GrSortableList-ChH9nQBv.js} +1 -1
- package/dist/components/GrSortableList/chunks/{GrSortableList-NKriuGm_.js.map → GrSortableList-ChH9nQBv.js.map} +1 -1
- package/dist/components/GrSortableList/index.js +2 -2
- package/dist/components/GrTabPanels/chunks/GrTabPanels-BDt5oVdd.js +30 -0
- package/dist/components/GrTabPanels/chunks/GrTabPanels-BDt5oVdd.js.map +1 -0
- package/dist/components/GrTabPanels/chunks/GrTabPanels-BJvAflnA.js +83 -0
- package/dist/components/GrTabPanels/chunks/GrTabPanels-BJvAflnA.js.map +1 -0
- package/dist/components/GrTabPanels/index.js +2 -1
- package/dist/components/GrTable/chunks/{GrTable-CKJ-HrsN.js → GrTable-BQitSDep.js} +52 -16
- package/dist/components/GrTable/chunks/GrTable-BQitSDep.js.map +1 -0
- package/dist/components/GrTable/index.js +2 -2
- package/dist/components/GrTabs/chunks/{GrTabs-s9RzC1WX.js → GrTabs-DVC6nfWB.js} +1 -1
- package/dist/components/GrTabs/chunks/{GrTabs-s9RzC1WX.js.map → GrTabs-DVC6nfWB.js.map} +1 -1
- package/dist/components/GrTabs/index.js +2 -2
- package/dist/components/GrTabsWithPanels/chunks/GrTabsWithPanels-BYtuzouj.js +98 -0
- package/dist/components/GrTabsWithPanels/chunks/GrTabsWithPanels-BYtuzouj.js.map +1 -0
- package/dist/components/GrTabsWithPanels/index.js +3 -0
- package/dist/components/GrTextarea/chunks/{GrTextarea-Bfgc0DD2.js → GrTextarea-BFwyqcHB.js} +22 -5
- package/dist/components/GrTextarea/chunks/GrTextarea-BFwyqcHB.js.map +1 -0
- package/dist/components/GrTextarea/index.js +1 -1
- package/dist/components/GrToaster/chunks/{GrToaster-CZixNk0l.js → GrToaster-OzT1VKcp.js} +163 -32
- package/dist/components/GrToaster/chunks/GrToaster-OzT1VKcp.js.map +1 -0
- package/dist/components/GrToaster/index.js +2 -2
- package/dist/components/GrToaster/styles.css +1 -1
- package/dist/components/GrTooltip/chunks/{GrTooltip-DkMMM0uq.js → GrTooltip-BDcFycvW.js} +26 -13
- package/dist/components/GrTooltip/chunks/GrTooltip-BDcFycvW.js.map +1 -0
- package/dist/components/GrTooltip/index.js +2 -2
- package/dist/components/GrTransfer/chunks/{GrTransfer-DdfBUf35.js → GrTransfer-CV7BL5UK.js} +114 -12
- package/dist/components/GrTransfer/chunks/GrTransfer-CV7BL5UK.js.map +1 -0
- package/dist/components/GrTransfer/index.js +1 -1
- package/dist/components/GrTransfer/styles.css +1 -1
- package/dist/components/GrTree/chunks/{GrTree-6yZrncJE.js → GrTree-DpgaP8hk.js} +39 -1
- package/dist/components/GrTree/chunks/GrTree-DpgaP8hk.js.map +1 -0
- package/dist/components/GrTree/index.js +1 -1
- package/dist/components/GrTree/styles.css +1 -1
- package/dist/components/GrTreeSections/chunks/{GrTreeSections-DcmDcLwj.js → GrTreeSections-BeOj__44.js} +1 -1
- package/dist/components/GrTreeSections/chunks/{GrTreeSections-DcmDcLwj.js.map → GrTreeSections-BeOj__44.js.map} +1 -1
- package/dist/components/GrTreeSections/index.js +1 -1
- package/dist/components/GrTreeSelect/chunks/{GrTreeSelect-B6KoDYiZ.js → GrTreeSelect-BHq-T8wH.js} +113 -14
- package/dist/components/GrTreeSelect/chunks/GrTreeSelect-BHq-T8wH.js.map +1 -0
- package/dist/components/GrTreeSelect/index.js +2 -2
- package/dist/composables/useFloating.js +1 -1
- package/dist/composables/useHotkeys.js +89 -0
- package/dist/composables/useHotkeys.js.map +1 -0
- package/dist/composables/useOverlayLayer.js +1 -1
- package/dist/directives/hotkey.js +19 -46
- package/dist/directives/hotkey.js.map +1 -1
- package/dist/granular-provider-node.js +1 -1
- package/dist/granular-provider.js +1 -1
- package/dist/i18n/all.js +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/index.js +71 -63
- package/dist/theme.js +1 -1
- package/dist/tokens.js +1 -1
- package/dist/types/components/GrAutocomplete/GrAutocomplete.vue.d.ts +4 -4
- package/dist/types/components/GrAutocomplete/composables/useAutocompleteNavigation.d.ts +12 -3
- package/dist/types/components/GrAutocomplete/composables/useAutocompletePanel.d.ts +12 -2
- package/dist/types/components/GrAutocomplete/composables/useAutocompleteValues.d.ts +7 -4
- package/dist/types/components/GrAutocomplete/composables/useRemoteOptions.d.ts +4 -4
- package/dist/types/components/GrAutocomplete/grAutocompleteStyles.d.ts +15 -1
- package/dist/types/components/GrAutocomplete/index.d.ts +1 -1
- package/dist/types/components/GrCarousel/GrCarousel.vue.d.ts +29 -1
- package/dist/types/components/GrCarousel/composables/useCarouselSwipe.d.ts +5 -0
- package/dist/types/components/GrCarousel/grCarouselContext.d.ts +21 -0
- package/dist/types/components/GrCarousel/grCarouselStyles.d.ts +39 -9
- package/dist/types/components/GrCheckbox/GrCheckbox.vue.d.ts +13 -0
- package/dist/types/components/GrColorPicker/GrColorPicker.vue.d.ts +18 -2
- package/dist/types/components/GrColorPicker/color.d.ts +13 -1
- package/dist/types/components/GrColorPicker/colorArea.d.ts +59 -0
- package/dist/types/components/GrColorPicker/defaults.d.ts +3 -1
- package/dist/types/components/GrColorPicker/eyeDropper.d.ts +21 -0
- package/dist/types/components/GrColorPicker/grColorPickerStyles.d.ts +42 -0
- package/dist/types/components/GrCommandPalette/GrCommandPalette.vue.d.ts +10 -1
- package/dist/types/components/GrDataTable/GrDataTable.vue.d.ts +41 -1
- package/dist/types/components/GrDataTable/composables/useDataTableGridNavigation.d.ts +53 -0
- package/dist/types/components/GrDataTable/grDataTableStyles.d.ts +8 -0
- package/dist/types/components/GrDataTable/index.d.ts +1 -1
- package/dist/types/components/GrDelta/grDeltaStyles.d.ts +10 -3
- package/dist/types/components/GrEmptyState/GrEmptyState.vue.d.ts +11 -2
- package/dist/types/components/GrEmptyState/grEmptyStateStyles.d.ts +10 -0
- package/dist/types/components/GrEmptyState/index.d.ts +1 -1
- package/dist/types/components/GrFileUpload/GrFileUpload.vue.d.ts +2 -1
- package/dist/types/components/GrFormFile/GrFormFile.vue.d.ts +10 -0
- package/dist/types/components/GrInput/GrInput.vue.d.ts +15 -0
- package/dist/types/components/GrInputTag/GrInputTag.vue.d.ts +16 -0
- package/dist/types/components/GrInputTag/grInputTagStyles.d.ts +11 -0
- package/dist/types/components/GrKbd/GrKbd.vue.d.ts +14 -0
- package/dist/types/components/GrNavbar/GrNavbar.vue.d.ts +18 -0
- package/dist/types/components/GrNavbar/grNavbarStyles.d.ts +10 -1
- package/dist/types/components/GrNavbar/index.d.ts +1 -0
- package/dist/types/components/GrSelect/composables/useSelectPanelItems.d.ts +8 -34
- package/dist/types/components/GrSelect/composables/useSelectVirtualization.d.ts +7 -0
- package/dist/types/components/GrSelect/grSelectStyles.d.ts +1 -1
- package/dist/types/components/GrSidebar/GrSidebar.vue.d.ts +20 -0
- package/dist/types/components/GrSidebar/GrSidebarItem.vue.d.ts +39 -5
- package/dist/types/components/GrSidebar/grSidebarStyles.d.ts +32 -0
- package/dist/types/components/GrSidebar/index.d.ts +1 -1
- package/dist/types/components/GrSidebar/sidebarContext.d.ts +23 -1
- package/dist/types/components/GrSlider/GrSlider.vue.d.ts +39 -1
- package/dist/types/components/GrSlider/grSliderStyles.d.ts +1 -1
- package/dist/types/components/GrTabPanels/context.d.ts +6 -0
- package/dist/types/components/GrTable/GrTable.vue.d.ts +37 -0
- package/dist/types/components/GrTable/grTableStyles.d.ts +16 -7
- package/dist/types/components/GrTabsWithPanels/GrTabsWithPanels.vue.d.ts +77 -0
- package/dist/types/components/GrTabsWithPanels/config.d.ts +1 -0
- package/dist/types/components/GrTabsWithPanels/index.d.ts +4 -0
- package/dist/types/components/GrTextarea/GrTextarea.vue.d.ts +19 -1
- package/dist/types/components/GrToaster/GrToaster.vue.d.ts +12 -0
- package/dist/types/components/GrToaster/grToasterStyles.d.ts +26 -0
- package/dist/types/components/GrTooltip/GrTooltip.vue.d.ts +22 -0
- package/dist/types/components/GrTransfer/GrTransfer.vue.d.ts +23 -0
- package/dist/types/components/GrTreeSelect/grTreeSelectStyles.d.ts +1 -1
- package/dist/types/components/GrTreeSelect/grTreeSelectTypes.d.ts +20 -0
- package/dist/types/components/shared/hotkey.d.ts +8 -9
- package/dist/types/components/shared/optionPanel.d.ts +100 -0
- package/dist/types/components/shared/overlayListPanel.d.ts +18 -0
- package/dist/types/composables/useHotkeys.d.ts +43 -0
- package/dist/types/granular-provider/shared.d.ts +1 -0
- package/dist/types/i18n/messages/en.d.ts +28 -0
- package/dist/types/i18n/messages/es.d.ts +28 -0
- package/dist/types/i18n/messages/ru.d.ts +28 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/internal/hotkeySequence.d.ts +22 -0
- package/dist/types/internal/keyboard.d.ts +45 -0
- package/dist/web-types.json +463 -26
- package/package.json +9 -1
- package/dist/chunks/config-2ZHRsdOc.js.map +0 -1
- package/dist/chunks/config-B42iJ48O.js.map +0 -1
- package/dist/chunks/config-B5SBUa6u.js.map +0 -1
- package/dist/chunks/config-BAse0laT.js.map +0 -1
- package/dist/chunks/config-BHLMTJaR.js.map +0 -1
- package/dist/chunks/config-BXRmsn3t.js.map +0 -1
- package/dist/chunks/config-Bs1HwUcx.js.map +0 -1
- package/dist/chunks/config-CMNfZO7S.js.map +0 -1
- package/dist/chunks/config-CbEbLyDE.js.map +0 -1
- package/dist/chunks/config-CjWOTgLL.js.map +0 -1
- package/dist/chunks/config-D3HOuHDe.js.map +0 -1
- package/dist/chunks/config-DIDz_E5m.js.map +0 -1
- package/dist/chunks/config-DNDgp9bB.js.map +0 -1
- package/dist/chunks/config-iemgzS4x.js.map +0 -1
- package/dist/chunks/en-CsQUoBS2.js.map +0 -1
- package/dist/chunks/es-9nbkPvdA.js.map +0 -1
- package/dist/chunks/grSelectStyles-D9EQ-pgK.js.map +0 -1
- package/dist/chunks/grSliderStyles-kaz6VXZ3.js.map +0 -1
- package/dist/chunks/grTableStyles-DkQPMfx9.js +0 -39
- package/dist/chunks/grTableStyles-DkQPMfx9.js.map +0 -1
- package/dist/chunks/granular-provider-B6xomapW.js.map +0 -1
- package/dist/chunks/keyboard-DE2yhz_b.js.map +0 -1
- package/dist/chunks/overlayPanelSurface-BKeMhRx4.js.map +0 -1
- package/dist/chunks/ru-88i1WG0b.js.map +0 -1
- package/dist/components/GrAutocomplete/chunks/GrAutocomplete-Chhw65pI.js.map +0 -1
- package/dist/components/GrCarousel/chunks/GrCarousel-ByuughtI.js.map +0 -1
- package/dist/components/GrCheckbox/chunks/GrCheckbox-Dp201frb.js.map +0 -1
- package/dist/components/GrColorPicker/chunks/GrColorPicker-BRM_4lyI.js.map +0 -1
- package/dist/components/GrCommandPalette/chunks/GrCommandPalette-BJHmkDQv.js.map +0 -1
- package/dist/components/GrDataTable/chunks/GrDataTable-DQxYYgQk.js.map +0 -1
- package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-Dxkz_ry4.js.map +0 -1
- package/dist/components/GrEmptyState/chunks/GrEmptyState-BbvwE-E0.js.map +0 -1
- package/dist/components/GrFileUpload/chunks/GrFileUpload-BwMR71zN.js.map +0 -1
- package/dist/components/GrFormFile/chunks/GrFormFile-Dlxx-9zi.js.map +0 -1
- package/dist/components/GrInput/chunks/GrInput-DV4gMWPR.js.map +0 -1
- package/dist/components/GrInputTag/chunks/GrInputTag-qnRdAZnn.js.map +0 -1
- package/dist/components/GrKbd/chunks/GrKbd-BNMeoaLV.js.map +0 -1
- package/dist/components/GrNavbar/chunks/GrNavbar-BRGuksiy.js.map +0 -1
- package/dist/components/GrSelect/chunks/GrSelect-DvSq-nV-.js.map +0 -1
- package/dist/components/GrSidebar/chunks/GrSidebar-DoKLlHSw.js +0 -264
- package/dist/components/GrSidebar/chunks/GrSidebar-DoKLlHSw.js.map +0 -1
- package/dist/components/GrSlider/chunks/GrSlider-CO8N9SF6.js.map +0 -1
- package/dist/components/GrTabPanels/chunks/GrTabPanels-5zsbqS1v.js +0 -92
- package/dist/components/GrTabPanels/chunks/GrTabPanels-5zsbqS1v.js.map +0 -1
- package/dist/components/GrTable/chunks/GrTable-CKJ-HrsN.js.map +0 -1
- package/dist/components/GrTextarea/chunks/GrTextarea-Bfgc0DD2.js.map +0 -1
- package/dist/components/GrToaster/chunks/GrToaster-CZixNk0l.js.map +0 -1
- package/dist/components/GrTooltip/chunks/GrTooltip-DkMMM0uq.js.map +0 -1
- package/dist/components/GrTransfer/chunks/GrTransfer-DdfBUf35.js.map +0 -1
- package/dist/components/GrTree/chunks/GrTree-6yZrncJE.js.map +0 -1
- package/dist/components/GrTreeSelect/chunks/GrTreeSelect-B6KoDYiZ.js.map +0 -1
- package/dist/types/components/GrAutocomplete/composables/useAutocompleteVirtual.d.ts +0 -33
|
@@ -2,13 +2,15 @@ import { i as useGrComponentProp } from "../../../chunks/context-CPMRfwVr.js";
|
|
|
2
2
|
import { n as useGranularityTranslations } from "../../../chunks/granularityI18n-BC5zsj_d.js";
|
|
3
3
|
import { t as useFocusWithin } from "../../../chunks/useFocusWithin-BwHE0rzm.js";
|
|
4
4
|
import { useRovingFocus } from "../../../composables/useRovingFocus.js";
|
|
5
|
+
import { t as chevron_down_default } from "../../../chunks/chevron-down-CQS2OG_s.js";
|
|
5
6
|
import { useAnnouncer } from "../../../composables/useAnnouncer.js";
|
|
6
7
|
import { t as resolveScrollOverflow } from "../../../chunks/scrollOverflow-B_kEdcol.js";
|
|
7
8
|
import { useDragGesture } from "../../../composables/useDragGesture.js";
|
|
8
|
-
import { a as
|
|
9
|
+
import { _ as grCarouselControlClass, a as carouselRootBase, c as carouselThumbFallbackClass, d as carouselTrackAxis, f as carouselTrackBase, g as carouselViewportTouchAction, h as carouselViewportSwipeClass, i as carouselRootAxis, l as carouselThumbImageClass, m as carouselViewportBase, o as carouselSlideAxis, p as carouselViewportAxis, r as carouselIconClass, s as carouselSlideBase, u as carouselToggleClass, v as grCarouselIndicatorClass, y as grCarouselIndicatorsClass } from "../../../chunks/config-CPhcZzHi.js";
|
|
9
10
|
import { t as chevron_left_default } from "../../../chunks/chevron-left-D8AUBAM7.js";
|
|
10
11
|
import { t as chevron_right_default } from "../../../chunks/chevron-right-C6Z01h0X.js";
|
|
11
|
-
import {
|
|
12
|
+
import { t as chevron_up_default } from "../../../chunks/chevron-up-BhW6hi8L.js";
|
|
13
|
+
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, defineComponent, inject, markRaw, nextTick, normalizeClass, normalizeStyle, onBeforeUnmount, onMounted, onScopeDispose, openBlock, provide, ref, renderList, renderSlot, resolveDynamicComponent, toDisplayString, unref, useId, useSlots, watch, watchEffect, withModifiers } from "vue";
|
|
12
14
|
import '../styles.css';/**
|
|
13
15
|
* Доля ширины вьюпорта, начиная с которой жест засчитывается. Работает вместе
|
|
14
16
|
* с {@link SWIPE_THRESHOLD_PX} по максимуму: 60px на герое шириной 1200px —
|
|
@@ -178,8 +180,9 @@ function useCarouselSwipe(options) {
|
|
|
178
180
|
},
|
|
179
181
|
onMove: (event) => {
|
|
180
182
|
event.preventDefault();
|
|
181
|
-
const
|
|
182
|
-
const
|
|
183
|
+
const vertical = options.orientation?.() === "vertical";
|
|
184
|
+
const dx = vertical ? event.clientY - startY : event.clientX - startX;
|
|
185
|
+
const dy = vertical ? event.clientX - startX : event.clientY - startY;
|
|
183
186
|
if (Math.abs(dx) < Math.abs(dy) * 1.5) {
|
|
184
187
|
offset.value = 0;
|
|
185
188
|
return;
|
|
@@ -188,7 +191,7 @@ function useCarouselSwipe(options) {
|
|
|
188
191
|
offset.value = resistOffset(dx, options.atEdge(logical));
|
|
189
192
|
},
|
|
190
193
|
onEnd: (event) => {
|
|
191
|
-
const direction = event ? resolveSwipeDirection(event.clientX - startX, event.clientY - startY, threshold) : 0;
|
|
194
|
+
const direction = event ? resolveSwipeDirection(options.orientation?.() === "vertical" ? event.clientY - startY : event.clientX - startX, options.orientation?.() === "vertical" ? event.clientX - startX : event.clientY - startY, threshold) : 0;
|
|
192
195
|
reset();
|
|
193
196
|
if (direction !== 0) options.onSwipe(physicalToLogical(direction));
|
|
194
197
|
},
|
|
@@ -269,15 +272,16 @@ var _hoisted_1$1 = [
|
|
|
269
272
|
"aria-labelledby"
|
|
270
273
|
];
|
|
271
274
|
var _hoisted_2 = ["aria-live"];
|
|
272
|
-
var _hoisted_3 = ["
|
|
273
|
-
var _hoisted_4 = ["aria-
|
|
275
|
+
var _hoisted_3 = ["data-gr-carousel-vertical", "data-gr-carousel-wrapping"];
|
|
276
|
+
var _hoisted_4 = ["aria-label"];
|
|
274
277
|
var _hoisted_5 = ["aria-disabled", "aria-label"];
|
|
275
|
-
var _hoisted_6 = [
|
|
278
|
+
var _hoisted_6 = ["aria-disabled", "aria-label"];
|
|
279
|
+
var _hoisted_7 = [
|
|
276
280
|
"data-variant",
|
|
277
281
|
"data-overflow",
|
|
278
282
|
"aria-label"
|
|
279
283
|
];
|
|
280
|
-
var
|
|
284
|
+
var _hoisted_8 = [
|
|
281
285
|
"id",
|
|
282
286
|
"aria-selected",
|
|
283
287
|
"aria-controls",
|
|
@@ -285,7 +289,8 @@ var _hoisted_7 = [
|
|
|
285
289
|
"tabindex",
|
|
286
290
|
"onClick"
|
|
287
291
|
];
|
|
288
|
-
var
|
|
292
|
+
var _hoisted_9 = ["src"];
|
|
293
|
+
var WRAP_FALLBACK_MS = 600;
|
|
289
294
|
//#endregion
|
|
290
295
|
//#region src/components/GrCarousel/GrCarousel.vue
|
|
291
296
|
var GrCarousel_default = /* @__PURE__ */ defineComponent({
|
|
@@ -301,6 +306,12 @@ var GrCarousel_default = /* @__PURE__ */ defineComponent({
|
|
|
301
306
|
type: Boolean,
|
|
302
307
|
default: true
|
|
303
308
|
},
|
|
309
|
+
orientation: { default: "horizontal" },
|
|
310
|
+
virtual: {
|
|
311
|
+
type: Boolean,
|
|
312
|
+
default: false
|
|
313
|
+
},
|
|
314
|
+
virtualOverscan: { default: 1 },
|
|
304
315
|
indicators: { default: void 0 },
|
|
305
316
|
tone: { default: void 0 },
|
|
306
317
|
activationMode: { default: void 0 },
|
|
@@ -368,8 +379,93 @@ var GrCarousel_default = /* @__PURE__ */ defineComponent({
|
|
|
368
379
|
scheduleReorder();
|
|
369
380
|
};
|
|
370
381
|
}
|
|
382
|
+
/**
|
|
383
|
+
* Потолок ожидания конца перехода ленты. `--gr-duration-base` — 240ms; запас
|
|
384
|
+
* нужен на прерванный переход и на среду, где переходов нет вовсе.
|
|
385
|
+
*/
|
|
371
386
|
const internalIndex = ref(0);
|
|
372
387
|
const currentIndex = computed(() => clampIndex(props.modelValue ?? internalIndex.value, total.value));
|
|
388
|
+
/**
|
|
389
|
+
* Замыкание кольца: `1` — идём с последнего кадра на первый, `-1` — обратно,
|
|
390
|
+
* `0` — обычный шаг.
|
|
391
|
+
*
|
|
392
|
+
* Раньше `loop` просто сбрасывал индекс, и лента **прокручивалась назад через
|
|
393
|
+
* все кадры**: на десятикадровой карусели с автопрокруткой каждый десятый шаг
|
|
394
|
+
* был длинным обратным ходом. Теперь крайний слайд временно переезжает на
|
|
395
|
+
* противоположный конец, лента доезжает до него как до соседа, и уже после
|
|
396
|
+
* перехода индекс снимается без анимации.
|
|
397
|
+
*/
|
|
398
|
+
const wrapStep = ref(0);
|
|
399
|
+
/** Сама лента: по ней делается принудительная перерисовка при снятии кольца. */
|
|
400
|
+
const trackEl = ref(null);
|
|
401
|
+
/** На время снятия индекса переход выключается — иначе снятие само поедет. */
|
|
402
|
+
const suppressTransition = ref(false);
|
|
403
|
+
let wrapFallback;
|
|
404
|
+
/** Позиция ленты: при замыкании она уезжает на один кадр за край. */
|
|
405
|
+
const trackIndex = computed(() => {
|
|
406
|
+
if (wrapStep.value === 1) return total.value;
|
|
407
|
+
if (wrapStep.value === -1) return -1;
|
|
408
|
+
return currentIndex.value;
|
|
409
|
+
});
|
|
410
|
+
/**
|
|
411
|
+
* Смещение слайда, изображающего соседа за краем. Вперёд — первый кадр уезжает
|
|
412
|
+
* за последний, назад — последний встаёт перед первым.
|
|
413
|
+
*/
|
|
414
|
+
function displacementOf(id) {
|
|
415
|
+
if (wrapStep.value === 0 || total.value < 2) return 0;
|
|
416
|
+
const index = entries.value.findIndex((entry) => entry.id === id);
|
|
417
|
+
if (wrapStep.value === 1) return index === 0 ? total.value * 100 : 0;
|
|
418
|
+
return index === total.value - 1 ? total.value * -100 : 0;
|
|
419
|
+
}
|
|
420
|
+
/**
|
|
421
|
+
* Попадает ли кадр в окно отрисовки. Окно замкнуто вместе с лентой: при `loop`
|
|
422
|
+
* соседи последнего кадра — первые, и не нарисовать их значит показать пустоту
|
|
423
|
+
* ровно в момент замыкания кольца.
|
|
424
|
+
*/
|
|
425
|
+
function shouldRender(id) {
|
|
426
|
+
if (!props.virtual) return true;
|
|
427
|
+
const count = total.value;
|
|
428
|
+
if (count === 0) return true;
|
|
429
|
+
const index = entries.value.findIndex((entry) => entry.id === id);
|
|
430
|
+
if (index < 0) return true;
|
|
431
|
+
const overscan = Math.max(1, Math.trunc(props.virtualOverscan));
|
|
432
|
+
const distance = Math.abs(index - currentIndex.value);
|
|
433
|
+
return props.loop ? Math.min(distance, count - distance) <= overscan : distance <= overscan;
|
|
434
|
+
}
|
|
435
|
+
/**
|
|
436
|
+
* Конец замыкания: лента возвращается с позиции «за краем» на настоящий индекс.
|
|
437
|
+
*
|
|
438
|
+
* Модель здесь уже давно на новом кадре — её обновил `startWrap`. Отложи мы её
|
|
439
|
+
* до этого момента, `update:modelValue` опаздывал бы на длительность перехода,
|
|
440
|
+
* а там, где переходов нет вовсе, — на страховочный таймер.
|
|
441
|
+
*/
|
|
442
|
+
function finishWrap() {
|
|
443
|
+
if (wrapStep.value === 0) return;
|
|
444
|
+
clearTimeout(wrapFallback);
|
|
445
|
+
wrapFallback = void 0;
|
|
446
|
+
suppressTransition.value = true;
|
|
447
|
+
wrapStep.value = 0;
|
|
448
|
+
nextTick().then(() => {
|
|
449
|
+
trackEl.value?.offsetHeight;
|
|
450
|
+
suppressTransition.value = false;
|
|
451
|
+
});
|
|
452
|
+
}
|
|
453
|
+
/**
|
|
454
|
+
* Замкнуть кольцо в сторону `direction`. Возвращает `false`, если шаг обычный
|
|
455
|
+
* и его надо выполнить как раньше.
|
|
456
|
+
*/
|
|
457
|
+
function startWrap(direction) {
|
|
458
|
+
if (!props.loop || total.value < 2) return false;
|
|
459
|
+
const atLast = currentIndex.value === total.value - 1;
|
|
460
|
+
const atFirst = currentIndex.value === 0;
|
|
461
|
+
if (!(direction === 1 ? atLast : atFirst)) return false;
|
|
462
|
+
finishWrap();
|
|
463
|
+
wrapStep.value = direction;
|
|
464
|
+
setIndex(direction === 1 ? 0 : total.value - 1);
|
|
465
|
+
wrapFallback = setTimeout(finishWrap, WRAP_FALLBACK_MS);
|
|
466
|
+
return true;
|
|
467
|
+
}
|
|
468
|
+
onBeforeUnmount(() => clearTimeout(wrapFallback));
|
|
373
469
|
function setIndex(next) {
|
|
374
470
|
const value = clampIndex(next, total.value);
|
|
375
471
|
if (value === currentIndex.value) return;
|
|
@@ -395,10 +491,11 @@ var GrCarousel_default = /* @__PURE__ */ defineComponent({
|
|
|
395
491
|
const swipeGesture = useCarouselSwipe({
|
|
396
492
|
disabled: () => !props.swipe || total.value <= 1,
|
|
397
493
|
viewport: () => viewportEl.value,
|
|
494
|
+
orientation: () => props.orientation,
|
|
398
495
|
atEdge: (direction) => direction === 1 ? atEnd.value : atStart.value,
|
|
399
496
|
onStart: stopAutoplay,
|
|
400
497
|
onSwipe: (direction) => {
|
|
401
|
-
|
|
498
|
+
stepBy(direction);
|
|
402
499
|
}
|
|
403
500
|
});
|
|
404
501
|
const autoplayTimer = useCarouselAutoplay({
|
|
@@ -406,11 +503,13 @@ var GrCarousel_default = /* @__PURE__ */ defineComponent({
|
|
|
406
503
|
enabled: () => playing.value,
|
|
407
504
|
paused: () => hovered.value || documentHidden.value || swipeGesture.isDragging.value,
|
|
408
505
|
advance: () => {
|
|
506
|
+
if (startWrap(1)) return;
|
|
409
507
|
const next = stepIndex(currentIndex.value, 1, total.value, props.loop);
|
|
410
508
|
if (next === currentIndex.value) {
|
|
411
509
|
userIntent.value = false;
|
|
412
510
|
return;
|
|
413
511
|
}
|
|
512
|
+
finishWrap();
|
|
414
513
|
setIndex(next);
|
|
415
514
|
}
|
|
416
515
|
});
|
|
@@ -428,8 +527,29 @@ var GrCarousel_default = /* @__PURE__ */ defineComponent({
|
|
|
428
527
|
stopAutoplay();
|
|
429
528
|
await nextTick();
|
|
430
529
|
}
|
|
530
|
+
finishWrap();
|
|
431
531
|
setIndex(next);
|
|
432
532
|
}
|
|
533
|
+
/**
|
|
534
|
+
* Шаг на соседний кадр. На краю кольца замыкание идёт через смещение крайнего
|
|
535
|
+
* слайда, а не через сброс индекса: сброс прокручивал бы ленту назад через всё.
|
|
536
|
+
*/
|
|
537
|
+
async function stepBy(delta) {
|
|
538
|
+
if (playing.value) {
|
|
539
|
+
stopAutoplay();
|
|
540
|
+
await nextTick();
|
|
541
|
+
}
|
|
542
|
+
if (startWrap(delta)) return;
|
|
543
|
+
finishWrap();
|
|
544
|
+
setIndex(stepIndex(currentIndex.value, delta, total.value, props.loop));
|
|
545
|
+
}
|
|
546
|
+
/**
|
|
547
|
+
* Переход ленты доехал — можно снимать замыкание. Слушаем только свой узел
|
|
548
|
+
* (`.self`): всплывший переход дочернего кадра снял бы кольцо раньше времени.
|
|
549
|
+
*/
|
|
550
|
+
function onTrackTransitionEnd(event) {
|
|
551
|
+
if (event.propertyName === "transform") finishWrap();
|
|
552
|
+
}
|
|
433
553
|
function toggleAutoplay() {
|
|
434
554
|
if (playing.value) {
|
|
435
555
|
stopAutoplay();
|
|
@@ -442,7 +562,7 @@ var GrCarousel_default = /* @__PURE__ */ defineComponent({
|
|
|
442
562
|
commitUserNavigation(clampIndex(index, total.value));
|
|
443
563
|
}
|
|
444
564
|
function step(delta) {
|
|
445
|
-
|
|
565
|
+
stepBy(delta);
|
|
446
566
|
}
|
|
447
567
|
const roving = useRovingFocus({
|
|
448
568
|
items: () => entries.value.map((_, index) => index),
|
|
@@ -554,7 +674,7 @@ var GrCarousel_default = /* @__PURE__ */ defineComponent({
|
|
|
554
674
|
}
|
|
555
675
|
const trackStyle = computed(() => {
|
|
556
676
|
const style = {
|
|
557
|
-
"--gr-carousel-index": String(
|
|
677
|
+
"--gr-carousel-index": String(trackIndex.value),
|
|
558
678
|
"--gr-carousel-drag": `${swipeGesture.offset.value}px`
|
|
559
679
|
};
|
|
560
680
|
if (swipeGesture.isDragging.value) style.transition = "none";
|
|
@@ -575,13 +695,22 @@ var GrCarousel_default = /* @__PURE__ */ defineComponent({
|
|
|
575
695
|
positionLabel: (id) => {
|
|
576
696
|
const index = entries.value.findIndex((entry) => entry.id === id);
|
|
577
697
|
return positionLabelAt(index >= 0 ? index : 0);
|
|
578
|
-
}
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
if (!props.arrows && resolvedIndicators.value === "none" && total.value > 1) console.warn("[granularity] GrCarousel: `arrows: false` вместе с `indicators: \"none\"` не оставляет ни одного способа сменить кадр с клавиатуры.");
|
|
583
|
-
if (isThumbnails.value && total.value > 0 && entries.value.every((entry) => !entry.hasThumbnail() && !entry.thumbnailSrc())) console.warn("[granularity] GrCarousel: `indicators=\"thumbnails\"`, но ни один слайд не дал миниатюру — задайте проп `thumbnail` или слот `#thumbnail` у `GrCarouselSlide`.");
|
|
698
|
+
},
|
|
699
|
+
displacementOf,
|
|
700
|
+
orientation: computed(() => props.orientation),
|
|
701
|
+
shouldRender
|
|
584
702
|
});
|
|
703
|
+
if (process.env.NODE_ENV !== "production") {
|
|
704
|
+
onMounted(() => {
|
|
705
|
+
if (props.orientation !== "vertical") return;
|
|
706
|
+
if ((viewportEl.value?.clientHeight ?? 0) === 0) console.warn("[granularity] GrCarousel: у вертикальной ленты нулевая высота вьюпорта — шаг считается от неё. Задайте высоту классом или стилем, иначе кадры встанут столбцом.");
|
|
707
|
+
});
|
|
708
|
+
watchEffect(() => {
|
|
709
|
+
if (!props.ariaLabel && !props.ariaLabelledby) console.warn("[granularity] GrCarousel: у карусели нет доступного имени — передайте `ariaLabel` или `ariaLabelledby`. `aria-roledescription` именем не является.");
|
|
710
|
+
if (!props.arrows && resolvedIndicators.value === "none" && total.value > 1) console.warn("[granularity] GrCarousel: `arrows: false` вместе с `indicators: \"none\"` не оставляет ни одного способа сменить кадр с клавиатуры.");
|
|
711
|
+
if (isThumbnails.value && total.value > 0 && entries.value.every((entry) => !entry.hasThumbnail() && !entry.thumbnailSrc())) console.warn("[granularity] GrCarousel: `indicators=\"thumbnails\"`, но ни один слайд не дал миниатюру — задайте проп `thumbnail` или слот `#thumbnail` у `GrCarouselSlide`.");
|
|
712
|
+
});
|
|
713
|
+
}
|
|
585
714
|
__expose({
|
|
586
715
|
/** Текущий кадр — единственный способ прочитать позицию без `v-model`. */
|
|
587
716
|
index: computed(() => currentIndex.value),
|
|
@@ -602,7 +731,7 @@ var GrCarousel_default = /* @__PURE__ */ defineComponent({
|
|
|
602
731
|
ref_key: "rootEl",
|
|
603
732
|
ref: rootEl,
|
|
604
733
|
"data-gr-carousel": "",
|
|
605
|
-
class: normalizeClass(unref(carouselRootBase)),
|
|
734
|
+
class: normalizeClass([unref(carouselRootBase), unref(carouselRootAxis)[props.orientation]]),
|
|
606
735
|
role: __props.landmark ? "region" : "group",
|
|
607
736
|
"aria-roledescription": unref(t)("gr.carousel.roledescription", "carousel"),
|
|
608
737
|
"aria-label": __props.ariaLabelledby ? void 0 : __props.ariaLabel,
|
|
@@ -615,16 +744,26 @@ var GrCarousel_default = /* @__PURE__ */ defineComponent({
|
|
|
615
744
|
ref_key: "viewportEl",
|
|
616
745
|
ref: viewportEl,
|
|
617
746
|
"data-gr-carousel-viewport": "",
|
|
618
|
-
class: normalizeClass([
|
|
747
|
+
class: normalizeClass([
|
|
748
|
+
unref(carouselViewportBase),
|
|
749
|
+
unref(carouselViewportAxis)[props.orientation],
|
|
750
|
+
unref(carouselViewportTouchAction)[props.orientation],
|
|
751
|
+
props.swipe ? unref(carouselViewportSwipeClass) : ""
|
|
752
|
+
]),
|
|
619
753
|
"aria-live": liveMode.value,
|
|
620
754
|
"aria-atomic": "true",
|
|
621
755
|
onPointerdown: _cache[2] || (_cache[2] = (...args) => unref(swipeGesture).start && unref(swipeGesture).start(...args))
|
|
622
756
|
}, [
|
|
623
757
|
createElementVNode("div", {
|
|
758
|
+
ref_key: "trackEl",
|
|
759
|
+
ref: trackEl,
|
|
624
760
|
"data-gr-carousel-track": "",
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
761
|
+
"data-gr-carousel-vertical": props.orientation === "vertical" ? "" : void 0,
|
|
762
|
+
"data-gr-carousel-wrapping": suppressTransition.value ? "" : void 0,
|
|
763
|
+
class: normalizeClass([unref(carouselTrackBase), unref(carouselTrackAxis)[props.orientation]]),
|
|
764
|
+
style: normalizeStyle(trackStyle.value),
|
|
765
|
+
onTransitionend: withModifiers(onTrackTransitionEnd, ["self"])
|
|
766
|
+
}, [renderSlot(_ctx.$slots, "default")], 46, _hoisted_3),
|
|
628
767
|
props.autoplay && total.value > 1 ? (openBlock(), createElementBlock("button", {
|
|
629
768
|
key: 0,
|
|
630
769
|
type: "button",
|
|
@@ -635,31 +774,31 @@ var GrCarousel_default = /* @__PURE__ */ defineComponent({
|
|
|
635
774
|
}, [(openBlock(), createBlock(resolveDynamicComponent(playing.value ? unref(pause_default) : unref(play_default)), {
|
|
636
775
|
class: normalizeClass(unref(carouselIconClass)),
|
|
637
776
|
"aria-hidden": "true"
|
|
638
|
-
}, null, 8, ["class"]))], 10,
|
|
777
|
+
}, null, 8, ["class"]))], 10, _hoisted_4)) : createCommentVNode("", true),
|
|
639
778
|
showArrows.value ? (openBlock(), createElementBlock("button", {
|
|
640
779
|
key: 1,
|
|
641
780
|
type: "button",
|
|
642
781
|
"data-gr-carousel-prev": "",
|
|
643
|
-
class: normalizeClass(unref(grCarouselControlClass)("prev", atStart.value)),
|
|
782
|
+
class: normalizeClass(unref(grCarouselControlClass)("prev", atStart.value, props.orientation)),
|
|
644
783
|
"aria-disabled": atStart.value ? "true" : void 0,
|
|
645
784
|
"aria-label": __props.prevLabel ?? unref(t)("gr.carousel.previous", "Previous slide"),
|
|
646
785
|
onClick: _cache[0] || (_cache[0] = ($event) => atStart.value ? void 0 : step(-1))
|
|
647
|
-
}, [renderSlot(_ctx.$slots, "prev", { disabled: atStart.value }, () => [
|
|
786
|
+
}, [renderSlot(_ctx.$slots, "prev", { disabled: atStart.value }, () => [(openBlock(), createBlock(resolveDynamicComponent(props.orientation === "vertical" ? unref(chevron_up_default) : unref(chevron_left_default)), {
|
|
648
787
|
class: normalizeClass(unref(carouselIconClass)),
|
|
649
788
|
"aria-hidden": "true"
|
|
650
|
-
}, null, 8, ["class"])])], 10,
|
|
789
|
+
}, null, 8, ["class"]))])], 10, _hoisted_5)) : createCommentVNode("", true),
|
|
651
790
|
showArrows.value ? (openBlock(), createElementBlock("button", {
|
|
652
791
|
key: 2,
|
|
653
792
|
type: "button",
|
|
654
793
|
"data-gr-carousel-next": "",
|
|
655
|
-
class: normalizeClass(unref(grCarouselControlClass)("next", atEnd.value)),
|
|
794
|
+
class: normalizeClass(unref(grCarouselControlClass)("next", atEnd.value, props.orientation)),
|
|
656
795
|
"aria-disabled": atEnd.value ? "true" : void 0,
|
|
657
796
|
"aria-label": __props.nextLabel ?? unref(t)("gr.carousel.next", "Next slide"),
|
|
658
797
|
onClick: _cache[1] || (_cache[1] = ($event) => atEnd.value ? void 0 : step(1))
|
|
659
|
-
}, [renderSlot(_ctx.$slots, "next", { disabled: atEnd.value }, () => [
|
|
798
|
+
}, [renderSlot(_ctx.$slots, "next", { disabled: atEnd.value }, () => [(openBlock(), createBlock(resolveDynamicComponent(props.orientation === "vertical" ? unref(chevron_down_default) : unref(chevron_right_default)), {
|
|
660
799
|
class: normalizeClass(unref(carouselIconClass)),
|
|
661
800
|
"aria-hidden": "true"
|
|
662
|
-
}, null, 8, ["class"])])], 10,
|
|
801
|
+
}, null, 8, ["class"]))])], 10, _hoisted_6)) : createCommentVNode("", true)
|
|
663
802
|
], 42, _hoisted_2), showIndicators.value ? (openBlock(), createElementBlock("div", {
|
|
664
803
|
key: 0,
|
|
665
804
|
ref_key: "indicatorsEl",
|
|
@@ -694,11 +833,11 @@ var GrCarousel_default = /* @__PURE__ */ defineComponent({
|
|
|
694
833
|
loading: "lazy",
|
|
695
834
|
decoding: "async",
|
|
696
835
|
class: normalizeClass(unref(carouselThumbImageClass))
|
|
697
|
-
}, null, 10,
|
|
836
|
+
}, null, 10, _hoisted_9)) : isThumbnails.value ? (openBlock(), createElementBlock("span", {
|
|
698
837
|
key: 2,
|
|
699
838
|
class: normalizeClass(unref(carouselThumbFallbackClass))
|
|
700
|
-
}, toDisplayString(index + 1), 3)) : createCommentVNode("", true)], 10,
|
|
701
|
-
}), 128))], 42,
|
|
839
|
+
}, toDisplayString(index + 1), 3)) : createCommentVNode("", true)], 10, _hoisted_8);
|
|
840
|
+
}), 128))], 42, _hoisted_7)) : createCommentVNode("", true)], 42, _hoisted_1$1);
|
|
702
841
|
};
|
|
703
842
|
}
|
|
704
843
|
});
|
|
@@ -739,6 +878,15 @@ var GrCarouselSlide_default = /* @__PURE__ */ defineComponent({
|
|
|
739
878
|
el: () => rootEl.value
|
|
740
879
|
}));
|
|
741
880
|
const isCurrent = computed(() => carousel.isCurrent(slideId));
|
|
881
|
+
const renders = computed(() => carousel.shouldRender(slideId));
|
|
882
|
+
/**
|
|
883
|
+
* Слайд не анимирует своё смещение намеренно: он обязан оказаться на новом
|
|
884
|
+
* месте **до** того, как поедет лента, иначе кадр гнался бы за ней.
|
|
885
|
+
*/
|
|
886
|
+
const displacementStyle = computed(() => {
|
|
887
|
+
const percent = carousel.displacementOf(slideId);
|
|
888
|
+
return percent === 0 ? void 0 : { transform: `translateX(${percent}%)` };
|
|
889
|
+
});
|
|
742
890
|
const labelledBy = computed(() => carousel.tabIdFor(slideId));
|
|
743
891
|
const accessibleName = computed(() => props.label ?? carousel.positionLabel(slideId));
|
|
744
892
|
return (_ctx, _cache) => {
|
|
@@ -747,13 +895,14 @@ var GrCarouselSlide_default = /* @__PURE__ */ defineComponent({
|
|
|
747
895
|
ref_key: "rootEl",
|
|
748
896
|
ref: rootEl,
|
|
749
897
|
"data-gr-carousel-slide": "",
|
|
750
|
-
class: normalizeClass(unref(carouselSlideBase)),
|
|
898
|
+
class: normalizeClass([unref(carouselSlideBase), unref(carouselSlideAxis)[unref(carousel).orientation.value]]),
|
|
751
899
|
role: unref(carousel).slideRole.value,
|
|
752
900
|
"aria-roledescription": unref(carousel).slideRoledescription.value,
|
|
753
901
|
"aria-labelledby": labelledBy.value,
|
|
754
902
|
"aria-label": labelledBy.value ? void 0 : accessibleName.value,
|
|
755
|
-
inert: isCurrent.value ? void 0 : true
|
|
756
|
-
|
|
903
|
+
inert: isCurrent.value ? void 0 : true,
|
|
904
|
+
style: normalizeStyle(displacementStyle.value)
|
|
905
|
+
}, [renders.value ? renderSlot(_ctx.$slots, "default", {}, void 0, void 0, 0) : createCommentVNode("", true)], 14, _hoisted_1);
|
|
757
906
|
};
|
|
758
907
|
}
|
|
759
908
|
});
|