@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
|
@@ -33,8 +33,16 @@ export type GrDataColumn<TRow extends Record<string, unknown> = Record<string, u
|
|
|
33
33
|
* колонки из группы в группу запрещён, иначе «закреплена слева» перестало бы
|
|
34
34
|
* означать «слева».
|
|
35
35
|
*/
|
|
36
|
-
pinned?:
|
|
36
|
+
pinned?: GrColumnPinSide;
|
|
37
37
|
};
|
|
38
|
+
/** Край, к которому липнет колонка. */
|
|
39
|
+
export type GrColumnPinSide = 'left' | 'right';
|
|
40
|
+
/**
|
|
41
|
+
* Закрепление, выбранное пользователем. `null` — не «как в конфиге», а
|
|
42
|
+
* «откреплена»: без него снять закрепление, объявленное у колонки, было бы
|
|
43
|
+
* нечем — отсутствие ключа означает «решает конфиг».
|
|
44
|
+
*/
|
|
45
|
+
export type GrColumnPin = GrColumnPinSide | null;
|
|
38
46
|
/**
|
|
39
47
|
* Значения итоговой строки по ключам колонок.
|
|
40
48
|
*
|
|
@@ -150,6 +158,28 @@ export interface GrDataTableProps<TRow extends Record<string, unknown> = Record<
|
|
|
150
158
|
* Не заданы — ширины компонент помнит сам.
|
|
151
159
|
*/
|
|
152
160
|
columnWidths?: Record<string, number>;
|
|
161
|
+
/**
|
|
162
|
+
* Закрепление колонок задаёт пользователь: в шапке появляется меню с
|
|
163
|
+
* «закрепить слева / справа / открепить».
|
|
164
|
+
*
|
|
165
|
+
* Без пропа `pinned` у колонки остаётся тем, чем был, — объявлением в
|
|
166
|
+
* конфиге, которое меняется только кодом.
|
|
167
|
+
*/
|
|
168
|
+
pinnableColumns?: boolean;
|
|
169
|
+
/**
|
|
170
|
+
* Контролируемое закрепление по ключу колонки (`v-model:pinnedColumns`).
|
|
171
|
+
* Не задано — компонент помнит его сам, начиная с `pinned` у колонок.
|
|
172
|
+
*/
|
|
173
|
+
pinnedColumns?: Record<string, GrColumnPin>;
|
|
174
|
+
/**
|
|
175
|
+
* Клавиатура по ячейкам: паттерн `grid` из WAI-ARIA APG.
|
|
176
|
+
*
|
|
177
|
+
* Вся таблица становится **одной** остановкой `Tab`, внутрь ведут стрелки, а
|
|
178
|
+
* в содержимое ячейки — `Enter` или `F2`. Поэтому проп отдельный, а не
|
|
179
|
+
* поведение по умолчанию: он переставляет таб-порядок у всех, кто таблицу
|
|
180
|
+
* уже поставил.
|
|
181
|
+
*/
|
|
182
|
+
cellNavigation?: boolean;
|
|
153
183
|
/**
|
|
154
184
|
* Второй ярус строки: колонка с кнопкой раскрытия и блок подробностей под
|
|
155
185
|
* строкой. Содержимое рисует слот `#detail`.
|
|
@@ -200,6 +230,11 @@ export interface GrDataTableEmits<TRow extends Record<string, unknown> = Record<
|
|
|
200
230
|
key: string;
|
|
201
231
|
width: number;
|
|
202
232
|
}): void;
|
|
233
|
+
(e: 'update:pinnedColumns', value: Record<string, GrColumnPin>): void;
|
|
234
|
+
(e: 'columnPin', payload: {
|
|
235
|
+
key: string;
|
|
236
|
+
pinned: GrColumnPin;
|
|
237
|
+
}): void;
|
|
203
238
|
(e: 'update:expandedKeys', value: Array<string | number>): void;
|
|
204
239
|
(e: 'expand', payload: {
|
|
205
240
|
row: TRow;
|
|
@@ -248,6 +283,11 @@ declare const __VLS_export: <TRow extends Record<string, unknown> = Record<strin
|
|
|
248
283
|
key: string;
|
|
249
284
|
width: number;
|
|
250
285
|
}) => any) | undefined;
|
|
286
|
+
"onUpdate:pinnedColumns"?: ((value: Record<string, GrColumnPin>) => any) | undefined;
|
|
287
|
+
onColumnPin?: ((payload: {
|
|
288
|
+
key: string;
|
|
289
|
+
pinned: GrColumnPin;
|
|
290
|
+
}) => any) | undefined;
|
|
251
291
|
"onUpdate:expandedKeys"?: ((value: (string | number)[]) => any) | undefined;
|
|
252
292
|
onDetailLoadError?: ((payload: {
|
|
253
293
|
row: TRow;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { ComputedRef } from 'vue';
|
|
2
|
+
/**
|
|
3
|
+
* Клавиатура по ячейкам: паттерн `grid` из WAI-ARIA APG.
|
|
4
|
+
*
|
|
5
|
+
* Своей арифметики здесь нет — её ведёт `useRovingFocus` в режиме `grid`. Этот
|
|
6
|
+
* модуль отвечает за то, чего примитив знать не может: как адресуется ячейка
|
|
7
|
+
* таблицы, что делать на краю окна виртуализации и куда прокрутить, прежде чем
|
|
8
|
+
* фокусировать.
|
|
9
|
+
*
|
|
10
|
+
* **Кольцо не замкнуто.** У списка зацикливание уместно, у сетки нет: строка
|
|
11
|
+
* ниже последней — это не первая, а «дальше некуда», и в виртуальном списке
|
|
12
|
+
* именно на этом краю начинается подгрузка.
|
|
13
|
+
*
|
|
14
|
+
* **Набор — отрисованное окно, а не вся таблица.** У десяти тысяч строк на шесть
|
|
15
|
+
* колонок ключей было бы шестьдесят тысяч, и пересобирались бы они при каждом
|
|
16
|
+
* чтении. Шаг за край окна разбирается до примитива (`windowStep`): список
|
|
17
|
+
* прокручивается, и фокус уходит в строку, появившуюся следующим кадром.
|
|
18
|
+
*/
|
|
19
|
+
/** Строка шапки адресуется как `-1`: в наборе она первая, но строкой данных не является. */
|
|
20
|
+
export declare const HEADER_ROW_INDEX = -1;
|
|
21
|
+
/** Ключ ячейки. Строка вместо пары чисел — примитив сравнивает ключи по `===`. */
|
|
22
|
+
export type GrGridCellKey = string;
|
|
23
|
+
export declare function gridCellKey(row: number, column: number): GrGridCellKey;
|
|
24
|
+
export declare function parseGridCellKey(key: GrGridCellKey): {
|
|
25
|
+
row: number;
|
|
26
|
+
column: number;
|
|
27
|
+
};
|
|
28
|
+
export interface UseDataTableGridNavigationOptions {
|
|
29
|
+
/** Включена ли навигация по ячейкам. Выключенная не занимает ни одной клавиши. */
|
|
30
|
+
enabled: () => boolean;
|
|
31
|
+
/** Ширина сетки со служебными колонками. */
|
|
32
|
+
columns: () => number;
|
|
33
|
+
/** Индексы отрисованных строк в порядке показа. При виртуализации — только окно. */
|
|
34
|
+
renderedRows: () => number[];
|
|
35
|
+
/** Сколько всего строк: по нему считается край при виртуализации. */
|
|
36
|
+
totalRows: () => number;
|
|
37
|
+
/** Узлы ячеек по ключу. Заполняется `:ref` самой таблицы. */
|
|
38
|
+
cellEls: Map<GrGridCellKey, HTMLElement>;
|
|
39
|
+
/**
|
|
40
|
+
* Прокрутить список к строке. Есть только при виртуализации: без неё строка
|
|
41
|
+
* уже в разметке, и доводить до экрана её незачем.
|
|
42
|
+
*/
|
|
43
|
+
scrollToRow?: (index: number) => void;
|
|
44
|
+
}
|
|
45
|
+
export interface DataTableGridNavigation {
|
|
46
|
+
/** Ключ ячейки, держащей остановку `Tab`. */
|
|
47
|
+
rovingKey: ComputedRef<GrGridCellKey | undefined>;
|
|
48
|
+
tabindexFor: (row: number, column: number) => 0 | -1;
|
|
49
|
+
setActive: (row: number, column: number) => void;
|
|
50
|
+
/** Обработчик `keydown` на таблице. Возвращает `true`, если клавиша разобрана. */
|
|
51
|
+
onKeydown: (event: KeyboardEvent) => boolean;
|
|
52
|
+
}
|
|
53
|
+
export declare function useDataTableGridNavigation(options: UseDataTableGridNavigationOptions): DataTableGridNavigation;
|
|
@@ -18,6 +18,14 @@ export declare const placeholderPaddings: Record<GrDataTableSize, string>;
|
|
|
18
18
|
*/
|
|
19
19
|
export declare const columnHandleClass = "inline-flex shrink-0 cursor-grab items-center text-[var(--gr-datatable-drag-handle,var(--gr-muted-fg))] opacity-0 [touch-action:none] transition-opacity duration-[var(--gr-duration-fast)] focus:outline-none focus-visible:opacity-100 focus-visible:ring-2 focus-visible:ring-[var(--gr-ring)] rounded-[var(--gr-radius-sm)] group-hover:opacity-100";
|
|
20
20
|
export declare const columnHandleActiveClass = "opacity-100";
|
|
21
|
+
/**
|
|
22
|
+
* Кнопка меню колонки. Как и ручка переноса, в покое не видна: три значка в
|
|
23
|
+
* каждом заголовке — шум, а нужны они по случаю.
|
|
24
|
+
*
|
|
25
|
+
* Открытое меню держит кнопку видимой само (`aria-expanded`), иначе она гасла
|
|
26
|
+
* бы ровно в тот момент, когда указатель уходит с заголовка на её же панель.
|
|
27
|
+
*/
|
|
28
|
+
export declare const columnMenuTriggerClass = "absolute end-1 top-1/2 -translate-y-1/2 inline-flex shrink-0 items-center rounded-[var(--gr-radius-sm)] text-[var(--gr-muted-fg)] opacity-0 transition-opacity duration-[var(--gr-duration-fast)] hover:text-[var(--gr-fg)] focus:outline-none focus-visible:opacity-100 focus-visible:ring-2 focus-visible:ring-[var(--gr-ring)] group-hover:opacity-100 [&[aria-expanded=true]]:opacity-100 disabled:cursor-not-allowed disabled:text-[var(--gr-disabled-fg)]";
|
|
21
29
|
/** Переносимая колонка гасится, чтобы было видно, что она «поднята». */
|
|
22
30
|
export declare const columnDraggingClass = "bg-[var(--gr-muted)]";
|
|
23
31
|
/**
|
|
@@ -2,7 +2,7 @@ import type { ComponentExposed } from '../shared/instance';
|
|
|
2
2
|
import type GrDataTableComponent from './GrDataTable.vue';
|
|
3
3
|
export { default } from './GrDataTable.vue';
|
|
4
4
|
export { default as GrDataTable } from './GrDataTable.vue';
|
|
5
|
-
export type { GrDataColumn, GrDataColumnKey, GrDataTableProps, GrDataTableRowKey, GrDataTableSortCycle, GrDataTableSummary, } from './GrDataTable.vue';
|
|
5
|
+
export type { GrColumnPin, GrColumnPinSide, GrDataColumn, GrDataColumnKey, GrDataTableProps, GrDataTableRowKey, GrDataTableSortCycle, GrDataTableSummary, } from './GrDataTable.vue';
|
|
6
6
|
export type { GrDataTableSortDir } from './grDataTableSort';
|
|
7
7
|
export { grDataTableConfig } from './config';
|
|
8
8
|
export type { GrDataTableConfigurableProps } from './defaults';
|
|
@@ -20,8 +20,12 @@ export declare const deltaRootClass = "inline-flex items-baseline tabular-nums";
|
|
|
20
20
|
* оказывается мельче окружающих слов.
|
|
21
21
|
*
|
|
22
22
|
* Дефолт `GrValue` рассчитан на плитку, где величина крупная и приписке есть
|
|
23
|
-
* куда уменьшаться. Здесь он
|
|
24
|
-
*
|
|
23
|
+
* куда уменьшаться. Здесь он переопределяется.
|
|
24
|
+
*
|
|
25
|
+
* **Переопределение ссылается на свои хуки, а не задаёт значение.** Стиль
|
|
26
|
+
* применяется инлайном, а инлайн бьёт любой CSS потребителя: напиши тут
|
|
27
|
+
* `currentColor` — и вернуть приглушённый суффикс у дельты стало бы нечем.
|
|
28
|
+
* Ссылка на `--gr-delta-suffix-*` оставляет решение за тем, кто его задал.
|
|
25
29
|
*
|
|
26
30
|
* `currentColor` и `1em`, а не `inherit`: у пользовательского свойства
|
|
27
31
|
* `inherit` значит «наследовать саму переменную», то есть ничего.
|
|
@@ -35,8 +39,11 @@ export declare const deltaValueStyle: Record<string, string>;
|
|
|
35
39
|
* пиксельная лестница оставила бы стрелку 14-пиксельной внутри заголовка.
|
|
36
40
|
* Чуть меньше единицы: стрелка декоративна, и равный вес спорил бы с самим
|
|
37
41
|
* числом.
|
|
42
|
+
*
|
|
43
|
+
* Отбивка **логическая** (`me-`), как у приписок `GrValue`: физический
|
|
44
|
+
* `margin-right` в RTL поставил бы стрелку зазором не с той стороны.
|
|
38
45
|
*/
|
|
39
|
-
export declare const deltaArrowClass = "
|
|
46
|
+
export declare const deltaArrowClass = "me-[var(--gr-delta-arrow-gap,0.125rem)] self-center shrink-0 h-[var(--gr-delta-arrow-size,0.875em)] w-[var(--gr-delta-arrow-size,0.875em)]";
|
|
40
47
|
export declare const deltaToneClass: Record<GrDeltaTone, string>;
|
|
41
48
|
/** Прочерк вместо величины: тона у него нет, но и цвет основного текста ему не нужен. */
|
|
42
49
|
export declare const deltaEmptyClass = "text-[var(--gr-muted-fg)]";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type GrEmptyStateHeadingLevel, type GrEmptyStateSize, type GrEmptyStateVariant } from './grEmptyStateStyles';
|
|
2
|
-
export type { GrEmptyStateHeadingLevel, GrEmptyStateSize, GrEmptyStateVariant, } from './grEmptyStateStyles';
|
|
1
|
+
import { type GrEmptyStateHeadingLevel, type GrEmptyStateSize, type GrEmptyStateKind, type GrEmptyStateVariant } from './grEmptyStateStyles';
|
|
2
|
+
export type { GrEmptyStateHeadingLevel, GrEmptyStateKind, GrEmptyStateSize, GrEmptyStateVariant, } from './grEmptyStateStyles';
|
|
3
3
|
/**
|
|
4
4
|
* GrEmptyState — карточка пустого состояния: иконка, заголовок, описание и
|
|
5
5
|
* слот действий.
|
|
@@ -16,6 +16,12 @@ export interface GrEmptyStateProps {
|
|
|
16
16
|
/** `ghost` снимает рамку и фон: карточка внутри карточки рисует вторую рамку. */
|
|
17
17
|
variant?: GrEmptyStateVariant;
|
|
18
18
|
headingLevel?: GrEmptyStateHeadingLevel;
|
|
19
|
+
/**
|
|
20
|
+
* Что за пустота: ещё ничего не создано (`empty`) или под запросом ничего не
|
|
21
|
+
* нашлось (`search`). Меняет иконку и заголовок по умолчанию; заданный
|
|
22
|
+
* `title` сильнее в обоих случаях.
|
|
23
|
+
*/
|
|
24
|
+
kind?: GrEmptyStateKind;
|
|
19
25
|
}
|
|
20
26
|
type __VLS_Slots = {
|
|
21
27
|
/** Иконка вместо встроенной. */
|
|
@@ -32,18 +38,21 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
32
38
|
size: undefined;
|
|
33
39
|
variant: undefined;
|
|
34
40
|
headingLevel: undefined;
|
|
41
|
+
kind: string;
|
|
35
42
|
}>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<GrEmptyStateProps>, {
|
|
36
43
|
title: undefined;
|
|
37
44
|
description: undefined;
|
|
38
45
|
size: undefined;
|
|
39
46
|
variant: undefined;
|
|
40
47
|
headingLevel: undefined;
|
|
48
|
+
kind: string;
|
|
41
49
|
}>>> & Readonly<{}>, {
|
|
42
50
|
title: string;
|
|
43
51
|
variant: GrEmptyStateVariant;
|
|
44
52
|
size: GrEmptyStateSize;
|
|
45
53
|
headingLevel: GrEmptyStateHeadingLevel;
|
|
46
54
|
description: string;
|
|
55
|
+
kind: GrEmptyStateKind;
|
|
47
56
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
48
57
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
49
58
|
declare const _default: typeof __VLS_export;
|
|
@@ -7,6 +7,16 @@ export type GrEmptyStateVariant = typeof GR_EMPTY_STATE_VARIANTS[number];
|
|
|
7
7
|
* Уровень заголовка. `h1` намеренно нет: пустое состояние живёт внутри уже
|
|
8
8
|
* существующей структуры страницы, а не задаёт её.
|
|
9
9
|
*/
|
|
10
|
+
/**
|
|
11
|
+
* Что за пустота. Значений два, и это не упрощение, а весь корпус: по репозиторию
|
|
12
|
+
* повторяются ровно они — «ещё ничего не создано» и «под запросом не нашлось».
|
|
13
|
+
*
|
|
14
|
+
* Разводить их обязательно: дефолтный заголовок «Пока пусто» под фильтром
|
|
15
|
+
* дезинформирует — данные есть, просто не совпали. Ошибка загрузки сюда не
|
|
16
|
+
* входит намеренно, у неё в пакете свои компоненты (`GrResponseErrorBanner`).
|
|
17
|
+
*/
|
|
18
|
+
export declare const GR_EMPTY_STATE_KINDS: readonly ["empty", "search"];
|
|
19
|
+
export type GrEmptyStateKind = typeof GR_EMPTY_STATE_KINDS[number];
|
|
10
20
|
export declare const GR_EMPTY_STATE_HEADING_LEVELS: readonly [2, 3, 4, 5, 6];
|
|
11
21
|
export type GrEmptyStateHeadingLevel = typeof GR_EMPTY_STATE_HEADING_LEVELS[number];
|
|
12
22
|
export declare const rootBaseClass = "text-center";
|
|
@@ -3,5 +3,5 @@ export { default as GrEmptyState } from './GrEmptyState.vue';
|
|
|
3
3
|
export type { GrEmptyStateProps } from './GrEmptyState.vue';
|
|
4
4
|
export { grEmptyStateConfig } from './config';
|
|
5
5
|
export type { GrEmptyStateConfigurableProps } from './defaults';
|
|
6
|
-
export type { GrEmptyStateHeadingLevel, GrEmptyStateSize, GrEmptyStateVariant, } from './grEmptyStateStyles';
|
|
6
|
+
export type { GrEmptyStateHeadingLevel, GrEmptyStateKind, GrEmptyStateSize, GrEmptyStateVariant, } from './grEmptyStateStyles';
|
|
7
7
|
export { grEmptyStateSafelist } from './safelist';
|
|
@@ -22,7 +22,8 @@ export type GrFileUploadRequest<TResponse = unknown> = (files: File[], ctx: GrFi
|
|
|
22
22
|
* Пропы `GrFileUpload`.
|
|
23
23
|
*
|
|
24
24
|
* Либо `action` (URL для POST multipart/form-data), либо `request` — кастомный
|
|
25
|
-
* загрузчик (например, через axios). Если переданы оба — приоритет у `request
|
|
25
|
+
* загрузчик (например, через axios). Если переданы оба — приоритет у `request`,
|
|
26
|
+
* а `action` не используется; в dev-сборке об этом предупреждает консоль.
|
|
26
27
|
*
|
|
27
28
|
* `placeholder` — надпись в дефолтном UI-варианте (без слота default).
|
|
28
29
|
*/
|
|
@@ -33,6 +33,13 @@ export interface GrFormFileProps {
|
|
|
33
33
|
size?: GrFormFileSize;
|
|
34
34
|
/** Миниатюры для картинок в наборе. Файлы других типов остаются строкой. */
|
|
35
35
|
preview?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Порядок набора задаёт пользователь: у строки появляется ручка переноса.
|
|
38
|
+
*
|
|
39
|
+
* Нужно там, где последовательность файлов что-то значит, — галерея,
|
|
40
|
+
* страницы документа, очередь вложений. Осмысленно только с `multiple`.
|
|
41
|
+
*/
|
|
42
|
+
reorderable?: boolean;
|
|
36
43
|
/** Дополнительная (кастомная) валидация на стороне потребителя. */
|
|
37
44
|
validate?: (files: File[]) => GrFormFileError[] | Promise<GrFormFileError[]>;
|
|
38
45
|
/**
|
|
@@ -62,6 +69,7 @@ declare function blur(): void;
|
|
|
62
69
|
declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<GrFormFileProps>, {
|
|
63
70
|
multiple: boolean;
|
|
64
71
|
preview: boolean;
|
|
72
|
+
reorderable: boolean;
|
|
65
73
|
disabled: boolean;
|
|
66
74
|
readonly: boolean;
|
|
67
75
|
invalid: boolean;
|
|
@@ -91,6 +99,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
91
99
|
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<GrFormFileProps>, {
|
|
92
100
|
multiple: boolean;
|
|
93
101
|
preview: boolean;
|
|
102
|
+
reorderable: boolean;
|
|
94
103
|
disabled: boolean;
|
|
95
104
|
readonly: boolean;
|
|
96
105
|
invalid: boolean;
|
|
@@ -133,6 +142,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
133
142
|
changeText: string;
|
|
134
143
|
removeText: string;
|
|
135
144
|
clearAllText: string;
|
|
145
|
+
reorderable: boolean;
|
|
136
146
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
137
147
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
138
148
|
declare const _default: typeof __VLS_export;
|
|
@@ -31,6 +31,18 @@ export interface GrInputProps {
|
|
|
31
31
|
maxlength?: number;
|
|
32
32
|
/** Показывать счётчик символов (`len` или `len/maxlength`). */
|
|
33
33
|
showCount?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Аддоны `prefix`/`suffix` несут смысл, а не украшают.
|
|
36
|
+
*
|
|
37
|
+
* По умолчанию они скрыты от скринридера: чаще всего там иконка поиска или
|
|
38
|
+
* глиф, повторяющий подпись поля, и второе прочтение мешает. Но `https://`
|
|
39
|
+
* или `₽` бывают единственным местом, где сказано, что вводить, — тогда
|
|
40
|
+
* аддон уезжает в `aria-describedby` поля.
|
|
41
|
+
*
|
|
42
|
+
* Декоративную иконку внутри слота помечайте `aria-hidden` сами: проп снимает
|
|
43
|
+
* скрытие со всей обёртки, а не разбирает её содержимое.
|
|
44
|
+
*/
|
|
45
|
+
describeAddons?: boolean;
|
|
34
46
|
/**
|
|
35
47
|
* Фоновая работа по полю (проверка занятости логина, автосохранение):
|
|
36
48
|
* спиннер в trailing-области + `aria-busy`. Ввод не блокируется —
|
|
@@ -112,6 +124,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
112
124
|
clearLabel: undefined;
|
|
113
125
|
maxlength: undefined;
|
|
114
126
|
showCount: boolean;
|
|
127
|
+
describeAddons: boolean;
|
|
115
128
|
loading: boolean;
|
|
116
129
|
passwordToggle: boolean;
|
|
117
130
|
passwordShowLabel: undefined;
|
|
@@ -153,6 +166,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
153
166
|
clearLabel: undefined;
|
|
154
167
|
maxlength: undefined;
|
|
155
168
|
showCount: boolean;
|
|
169
|
+
describeAddons: boolean;
|
|
156
170
|
loading: boolean;
|
|
157
171
|
passwordToggle: boolean;
|
|
158
172
|
passwordShowLabel: undefined;
|
|
@@ -198,6 +212,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
198
212
|
inputmode: "search" | "text" | "none" | "email" | "tel" | "url" | "numeric" | "decimal";
|
|
199
213
|
state: "default" | "success" | "warning" | "danger";
|
|
200
214
|
maxlength: number;
|
|
215
|
+
describeAddons: boolean;
|
|
201
216
|
passwordToggle: boolean;
|
|
202
217
|
passwordShowLabel: string;
|
|
203
218
|
passwordHideLabel: string;
|
|
@@ -27,6 +27,15 @@ export interface GrInputTagProps {
|
|
|
27
27
|
* сервере). Отклонённый тег не добавляется и уходит в событие `reject`.
|
|
28
28
|
*/
|
|
29
29
|
beforeAdd?: (tag: string) => boolean | Promise<boolean>;
|
|
30
|
+
/**
|
|
31
|
+
* Правка тега на месте: `F2` на чипе или двойной клик по нему открывают
|
|
32
|
+
* поле, `Enter` подтверждает, `Escape` отменяет.
|
|
33
|
+
*
|
|
34
|
+
* Проп, а не поведение по умолчанию: двойной клик по чипу сегодня ничего не
|
|
35
|
+
* делает, и превращать его во вход в правку у всех потребителей — тихая
|
|
36
|
+
* смена поведения.
|
|
37
|
+
*/
|
|
38
|
+
editable?: boolean;
|
|
30
39
|
/** Кнопка «снести все теги». Настраивается через `GrConfigProvider`. */
|
|
31
40
|
clearable?: boolean;
|
|
32
41
|
/** Фоновая работа: спиннер + `aria-busy`. Асинхронный `beforeAdd` поднимает его сам. */
|
|
@@ -63,6 +72,8 @@ export interface GrInputTagEmits {
|
|
|
63
72
|
(e: 'update:modelValue', value: string[]): void;
|
|
64
73
|
(e: 'add', value: string): void;
|
|
65
74
|
(e: 'remove', value: string, index: number): void;
|
|
75
|
+
/** Тег изменён на месте: новое значение, его позиция и то, что стояло раньше. */
|
|
76
|
+
(e: 'edit', value: string, index: number, previous: string): void;
|
|
66
77
|
/** Тег не прошёл `beforeAdd`. */
|
|
67
78
|
(e: 'reject', value: string): void;
|
|
68
79
|
/** Набор снесён кнопкой «очистить». */
|
|
@@ -101,6 +112,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
101
112
|
max: undefined;
|
|
102
113
|
addOnBlur: boolean;
|
|
103
114
|
clearInputOnAdd: boolean;
|
|
115
|
+
editable: boolean;
|
|
104
116
|
beforeAdd: undefined;
|
|
105
117
|
clearable: undefined;
|
|
106
118
|
loading: boolean;
|
|
@@ -121,6 +133,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
121
133
|
"update:modelValue": (value: string[]) => void;
|
|
122
134
|
add: (value: string) => void;
|
|
123
135
|
remove: (value: string, index: number) => void;
|
|
136
|
+
edit: (value: string, index: number, previous: string) => void;
|
|
124
137
|
reject: (value: string) => void;
|
|
125
138
|
clear: () => void;
|
|
126
139
|
change: (value: string[]) => void;
|
|
@@ -140,6 +153,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
140
153
|
max: undefined;
|
|
141
154
|
addOnBlur: boolean;
|
|
142
155
|
clearInputOnAdd: boolean;
|
|
156
|
+
editable: boolean;
|
|
143
157
|
beforeAdd: undefined;
|
|
144
158
|
clearable: undefined;
|
|
145
159
|
loading: boolean;
|
|
@@ -160,6 +174,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
160
174
|
onFocus?: ((event: FocusEvent) => any) | undefined;
|
|
161
175
|
onRemove?: ((value: string, index: number) => any) | undefined;
|
|
162
176
|
"onUpdate:modelValue"?: ((value: string[]) => any) | undefined;
|
|
177
|
+
onEdit?: ((value: string, index: number, previous: string) => any) | undefined;
|
|
163
178
|
onReject?: ((value: string) => any) | undefined;
|
|
164
179
|
}>, {
|
|
165
180
|
disabled: boolean;
|
|
@@ -184,6 +199,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
184
199
|
addOnBlur: boolean;
|
|
185
200
|
clearInputOnAdd: boolean;
|
|
186
201
|
beforeAdd: (tag: string) => boolean | Promise<boolean>;
|
|
202
|
+
editable: boolean;
|
|
187
203
|
tagClosable: boolean;
|
|
188
204
|
removeTagLabel: string;
|
|
189
205
|
clearAllLabel: string;
|
|
@@ -28,3 +28,14 @@ export declare function grInputTagWrapperClass(options: {
|
|
|
28
28
|
disabled: boolean;
|
|
29
29
|
}): string;
|
|
30
30
|
export declare function grInputTagInputClass(size: GrInputTagSize): string;
|
|
31
|
+
/**
|
|
32
|
+
* Поле правки тега — внутри чипа, вместо его содержимого.
|
|
33
|
+
*
|
|
34
|
+
* Ни фона, ни рамки: их рисует сам чип, и второй набор внутри выглядел бы
|
|
35
|
+
* полем в поле. А вот кольцо фокуса нужно: без него чип в правке неотличим от
|
|
36
|
+
* обычного — единственным признаком остаётся каретка, и режим не виден.
|
|
37
|
+
*
|
|
38
|
+
* Ширину задаёт нативный `size` по длине черновика: в режиме правки у чипа нет
|
|
39
|
+
* содержимого, от которого он взял бы ширину.
|
|
40
|
+
*/
|
|
41
|
+
export declare const tagEditInputClass = "min-w-[2ch] bg-transparent border-none p-0 text-inherit [font:inherit] rounded-[var(--gr-radius-sm)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--gr-ring)]";
|
|
@@ -11,8 +11,19 @@ export interface GrKbdProps {
|
|
|
11
11
|
/**
|
|
12
12
|
* Сочетание: строкой (`"mod+shift+K"`) или набором токенов
|
|
13
13
|
* (`['mod', 'K']`). Токен `mod` — Cmd на macOS, Ctrl на остальных.
|
|
14
|
+
*
|
|
15
|
+
* Пробел в строке делит её на шаги: `"g i"` рисуется как «G затем I», а
|
|
16
|
+
* `"mod+k p"` — как «⌘K затем P». Форма массива остаётся плоским аккордом:
|
|
17
|
+
* что там шаг, а что клавиша, массив не различает.
|
|
14
18
|
*/
|
|
15
19
|
keys?: string | string[];
|
|
20
|
+
/**
|
|
21
|
+
* Идентификатор записи в реестре (`granularityHotkeysPlugin`). Сочетание
|
|
22
|
+
* берётся оттуда, поэтому подсказка не может разойтись с привязкой. Сильнее
|
|
23
|
+
* `keys`: если задан и он, побеждает реестр — иначе два источника спорили бы
|
|
24
|
+
* молча.
|
|
25
|
+
*/
|
|
26
|
+
hotkey?: string;
|
|
16
27
|
/**
|
|
17
28
|
* Разделитель между клавишами. Не задан — авто: в общей плашке символы
|
|
18
29
|
* склеиваются (`⌘K`), а слова разделяются плюсом (`Ctrl+K`); у `split` это
|
|
@@ -39,12 +50,14 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
39
50
|
size: undefined;
|
|
40
51
|
variant: string;
|
|
41
52
|
keys: undefined;
|
|
53
|
+
hotkey: undefined;
|
|
42
54
|
separator: undefined;
|
|
43
55
|
platform: string;
|
|
44
56
|
}>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<GrKbdProps>, {
|
|
45
57
|
size: undefined;
|
|
46
58
|
variant: string;
|
|
47
59
|
keys: undefined;
|
|
60
|
+
hotkey: undefined;
|
|
48
61
|
separator: undefined;
|
|
49
62
|
platform: string;
|
|
50
63
|
}>>> & Readonly<{}>, {
|
|
@@ -53,6 +66,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
53
66
|
size: GrKbdSize;
|
|
54
67
|
separator: string;
|
|
55
68
|
platform: GrKbdPlatform;
|
|
69
|
+
hotkey: string;
|
|
56
70
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
57
71
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
58
72
|
declare const _default: typeof __VLS_export;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type GrComponentSize } from '../GrConfigProvider/context';
|
|
2
|
+
import type { GrNavbarHeadingLevel } from './grNavbarStyles';
|
|
2
3
|
/**
|
|
3
4
|
* GrNavbar — верхняя панель приложения (header) с тремя зонами: слева заголовок
|
|
4
5
|
* и кнопка меню, по центру — свободная зона (поиск, хлебные крошки), справа —
|
|
@@ -10,6 +11,20 @@ import { type GrComponentSize } from '../GrConfigProvider/context';
|
|
|
10
11
|
export interface GrNavbarProps {
|
|
11
12
|
/** Заголовок строкой. Слот `#title` сильнее и позволяет обойтись без пропа. */
|
|
12
13
|
title?: string;
|
|
14
|
+
/**
|
|
15
|
+
* Сделать заголовок настоящим `h1`…`h6`.
|
|
16
|
+
*
|
|
17
|
+
* По умолчанию заголовок — `div`, и это верно для большинства шапок: логотип
|
|
18
|
+
* и название приложения заголовками не являются, и `h1` на них исказил бы
|
|
19
|
+
* структуру страницы. Но шапка раздела админки или имя документа — заголовок
|
|
20
|
+
* и есть, а обойти такую страницу по структуре иначе нечем.
|
|
21
|
+
*
|
|
22
|
+
* Через `GrConfigProvider` не настраивается намеренно: «заголовка нет» там не
|
|
23
|
+
* выразить (`useGrComponentProp` требует не-nullable фолбэк), то есть общим
|
|
24
|
+
* дефолтом стал бы какой-то уровень. Да и шапка у оболочки одна — глобальный
|
|
25
|
+
* дефолт настраивал бы единственное место вызова.
|
|
26
|
+
*/
|
|
27
|
+
headingLevel?: GrNavbarHeadingLevel;
|
|
13
28
|
showMenuButton?: boolean;
|
|
14
29
|
/**
|
|
15
30
|
* Ступень кнопки меню — и только её: остальное в шапке принадлежит
|
|
@@ -44,6 +59,7 @@ type __VLS_Slots = {
|
|
|
44
59
|
};
|
|
45
60
|
declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<GrNavbarProps>, {
|
|
46
61
|
title: undefined;
|
|
62
|
+
headingLevel: undefined;
|
|
47
63
|
showMenuButton: boolean;
|
|
48
64
|
size: undefined;
|
|
49
65
|
menuButtonClass: string;
|
|
@@ -52,6 +68,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
52
68
|
menu: () => void;
|
|
53
69
|
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<GrNavbarProps>, {
|
|
54
70
|
title: undefined;
|
|
71
|
+
headingLevel: undefined;
|
|
55
72
|
showMenuButton: boolean;
|
|
56
73
|
size: undefined;
|
|
57
74
|
menuButtonClass: string;
|
|
@@ -62,6 +79,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
62
79
|
sticky: boolean;
|
|
63
80
|
title: string;
|
|
64
81
|
size: GrComponentSize;
|
|
82
|
+
headingLevel: GrNavbarHeadingLevel;
|
|
65
83
|
showMenuButton: boolean;
|
|
66
84
|
menuButtonClass: string;
|
|
67
85
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
@@ -19,5 +19,14 @@ export declare const navbarSideClass = "flex min-w-0 items-center gap-3";
|
|
|
19
19
|
export declare const navbarSideGrowClass = "flex-1";
|
|
20
20
|
export declare const navbarRightAlignClass = "justify-end";
|
|
21
21
|
export declare const navbarCenterClass = "flex min-w-0 flex-1 items-center justify-center gap-3";
|
|
22
|
-
|
|
22
|
+
/**
|
|
23
|
+
* Уровни заголовка шапки.
|
|
24
|
+
*
|
|
25
|
+
* Единица разрешена, в отличие от `GrCard`, где шкала начинается с двойки:
|
|
26
|
+
* карточка никогда не бывает заголовком страницы, а шапка раздела — бывает, и
|
|
27
|
+
* имя раздела в ней и есть `h1`.
|
|
28
|
+
*/
|
|
29
|
+
export declare const GR_NAVBAR_HEADING_LEVELS: readonly [1, 2, 3, 4, 5, 6];
|
|
30
|
+
export type GrNavbarHeadingLevel = typeof GR_NAVBAR_HEADING_LEVELS[number];
|
|
31
|
+
export declare const navbarTitleClass = "m-0 text-[length:var(--gr-text-sm)] leading-[var(--gr-leading-sm)] font-700";
|
|
23
32
|
export declare function grNavbarRootClass(sticky: boolean): string;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { default } from './GrNavbar.vue';
|
|
2
2
|
export { default as GrNavbar } from './GrNavbar.vue';
|
|
3
3
|
export type { GrNavbarProps } from './GrNavbar.vue';
|
|
4
|
+
export type { GrNavbarHeadingLevel } from './grNavbarStyles';
|
|
4
5
|
export type { GrNavbarConfigurableProps } from './defaults';
|
|
5
6
|
export { grNavbarConfig } from './config';
|
|
6
7
|
export { grNavbarSafelist } from './safelist';
|
|
@@ -1,42 +1,16 @@
|
|
|
1
1
|
import type { ComputedRef } from 'vue';
|
|
2
|
+
import type { OptionPanelItem, OptionPanelOptionRow, OptionPanelRow } from '../../shared/optionPanel';
|
|
2
3
|
import type { GrSelectOption, GrSelectOptionGroup, GrSelectOptionOrGroup, GrSelectValue } from '../grSelectStyles';
|
|
3
4
|
/**
|
|
4
5
|
* Элемент рендера панели: либо заголовок группы, либо опция.
|
|
5
|
-
*
|
|
6
|
+
*
|
|
7
|
+
* Типы — алиасы общей машинерии (`shared/optionPanel`): алгоритм у панели
|
|
8
|
+
* `GrSelect` и `GrAutocomplete` один, и копия разошлась бы с оригиналом молча.
|
|
9
|
+
* Имена остаются своими, потому что они публичные.
|
|
6
10
|
*/
|
|
7
|
-
export type GrSelectPanelItem<TValue extends GrSelectValue> =
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
key: string;
|
|
11
|
-
}
|
|
12
|
-
/** `groupKey` связывает опцию с заголовком её группы для скринридера. */
|
|
13
|
-
| {
|
|
14
|
-
kind: 'option';
|
|
15
|
-
option: GrSelectOption<TValue>;
|
|
16
|
-
key: string;
|
|
17
|
-
groupKey?: string;
|
|
18
|
-
};
|
|
19
|
-
export type GrSelectPanelOptionRow<TValue extends GrSelectValue> = {
|
|
20
|
-
option: GrSelectOption<TValue>;
|
|
21
|
-
key: string;
|
|
22
|
-
index: number;
|
|
23
|
-
};
|
|
24
|
-
export type GrSelectPanelRow<TValue extends GrSelectValue> = {
|
|
25
|
-
kind: 'group';
|
|
26
|
-
label: string;
|
|
27
|
-
key: string;
|
|
28
|
-
options: GrSelectPanelOptionRow<TValue>[];
|
|
29
|
-
/**
|
|
30
|
-
* Есть ли в этой отрисовке видимый заголовок. При виртуализации окно может
|
|
31
|
-
* начаться серединой группы: обёртка нужна всё равно, а заголовка нет —
|
|
32
|
-
* имя тогда идёт в `aria-label`.
|
|
33
|
-
*/
|
|
34
|
-
labelVisible?: boolean;
|
|
35
|
-
/** Позиция заголовка в `panelItems` — по ней его замеряет виртуализатор. */
|
|
36
|
-
labelIndex?: number;
|
|
37
|
-
} | ({
|
|
38
|
-
kind: 'option';
|
|
39
|
-
} & GrSelectPanelOptionRow<TValue>);
|
|
11
|
+
export type GrSelectPanelItem<TValue extends GrSelectValue> = OptionPanelItem<GrSelectOption<TValue>>;
|
|
12
|
+
export type GrSelectPanelOptionRow<TValue extends GrSelectValue> = OptionPanelOptionRow<GrSelectOption<TValue>>;
|
|
13
|
+
export type GrSelectPanelRow<TValue extends GrSelectValue> = OptionPanelRow<GrSelectOption<TValue>>;
|
|
40
14
|
/**
|
|
41
15
|
* Состав панели `GrSelect`: плоский набор строк, их группировка и признак
|
|
42
16
|
* «набранное можно добавить».
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import type { ComputedRef, Ref } from 'vue';
|
|
2
2
|
import type { GrSelectValue } from '../grSelectStyles';
|
|
3
3
|
import type { GrSelectPanelItem, GrSelectPanelRow } from './useSelectPanelItems';
|
|
4
|
+
/**
|
|
5
|
+
* Виртуализация панели `GrSelect` — тонкая обёртка над общей машинерией
|
|
6
|
+
* (`shared/optionPanel`): алгоритм тот же, что у `GrAutocomplete`, и держать
|
|
7
|
+
* его в двух местах значило бы разойтись молча.
|
|
8
|
+
*
|
|
9
|
+
* Своё здесь только имя ведущей строки: у селекта это «Add …».
|
|
10
|
+
*/
|
|
4
11
|
export interface UseSelectVirtualizationOptions<TValue extends GrSelectValue> {
|
|
5
12
|
panelItems: ComputedRef<GrSelectPanelItem<TValue>[]>;
|
|
6
13
|
panelRows: ComputedRef<GrSelectPanelRow<TValue>[]>;
|
|
@@ -122,7 +122,7 @@ export declare function grSelectTriggerClass(options: {
|
|
|
122
122
|
state?: GrSelectState;
|
|
123
123
|
invalid?: boolean;
|
|
124
124
|
}): string;
|
|
125
|
-
export declare const grSelectPanelClasses = "rounded-[var(--gr-radius-xl)] border border-[var(--gr-brd)] bg-[var(--gr-popover)] text-[var(--gr-popover-fg)] shadow-[var(--gr-shadow-2)] overflow-hidden";
|
|
125
|
+
export declare const grSelectPanelClasses = "rounded-[var(--gr-radius-xl)] border border-[var(--gr-brd)] bg-[var(--gr-popover)] text-[var(--gr-popover-fg)] shadow-[var(--gr-shadow-2)] flex flex-col max-h-[var(--gr-floating-available-height,100vh)] overflow-hidden";
|
|
126
126
|
export declare const selectOptionBaseClass = "rounded-[var(--gr-radius-md)] px-3 py-2 text-left text-[length:var(--gr-text-sm)] leading-[var(--gr-leading-sm)]";
|
|
127
127
|
export declare const selectOptionLinkWidthClass = "block min-w-full w-max whitespace-nowrap";
|
|
128
128
|
export declare const selectOptionWidthClass = "w-full";
|