@feugene/granularity 0.48.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-2vrOFn2f.js → config-AKpLyIGD.js} +2 -2
- package/dist/chunks/{config-2vrOFn2f.js.map → config-AKpLyIGD.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-BBtBQE3s.js +108 -0
- package/dist/chunks/config-BBtBQE3s.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-BscVxZR3.js → config-DF1ezU6y.js} +1 -1
- package/dist/chunks/{config-BscVxZR3.js.map → config-DF1ezU6y.js.map} +1 -1
- 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-MUkhktTP.js +267 -0
- package/dist/chunks/config-MUkhktTP.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-Bxyn5lW7.js → en-mIFywnV2.js} +27 -7
- package/dist/chunks/en-mIFywnV2.js.map +1 -0
- package/dist/chunks/{es-Dtl-a7ui.js → es-CvthYwtB.js} +27 -7
- package/dist/chunks/es-CvthYwtB.js.map +1 -0
- package/dist/chunks/{es-Bj_vc18Z.js → es-DlGd6Mrj.js} +3 -3
- package/dist/chunks/{es-Bj_vc18Z.js.map → es-DlGd6Mrj.js.map} +1 -1
- package/dist/chunks/{generated-hELWB0gZ.js → generated-Cx4C7GRN.js} +126 -0
- package/dist/chunks/{generated-hELWB0gZ.js.map → generated-Cx4C7GRN.js.map} +1 -1
- package/dist/chunks/{grBadgeStyles-DV0DrAew.js → grBadgeStyles-D51AXbj5.js} +57 -1
- package/dist/chunks/grBadgeStyles-D51AXbj5.js.map +1 -0
- package/dist/chunks/{grChipStyles-DcDyxAL0.js → grChipStyles-CA9Wj1_E.js} +1 -1
- package/dist/chunks/{grChipStyles-DcDyxAL0.js.map → grChipStyles-CA9Wj1_E.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-BOQp7N5o.js → granular-provider-cv5vaM1a.js} +26 -22
- 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-hrB4I1u_.js → ru-CQKDR-kD.js} +27 -7
- package/dist/chunks/ru-CQKDR-kD.js.map +1 -0
- package/dist/chunks/{safelist-x8USecK8.js → safelist-CSfynUC1.js} +5 -1
- package/dist/chunks/safelist-CSfynUC1.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-C-uovdv8.js → GrAutocomplete-Cyr1-ENw.js} +183 -125
- 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/GrBadge/chunks/GrBadge-C42KLyUD.js +71 -0
- package/dist/components/GrBadge/chunks/GrBadge-C42KLyUD.js.map +1 -0
- package/dist/components/GrBadge/index.js +3 -3
- package/dist/components/GrBadge/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/GrChip/chunks/{GrChip-CKqyzYcv.js → GrChip-DoyS1Dr4.js} +1 -1
- package/dist/components/GrChip/chunks/{GrChip-CKqyzYcv.js.map → GrChip-DoyS1Dr4.js.map} +1 -1
- package/dist/components/GrChip/index.js +2 -2
- 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-CO0YU-ok.js → GrInputTag-BzzNRBe3.js} +247 -20
- 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/GrOtpInput/chunks/GrOtpInput-B_Q-RDLw.js +419 -0
- package/dist/components/GrOtpInput/chunks/GrOtpInput-B_Q-RDLw.js.map +1 -0
- package/dist/components/GrOtpInput/index.js +3 -0
- package/dist/components/GrOtpInput/styles.css +1 -0
- package/dist/components/GrPagination/chunks/{GrPagination-BbaF5eXk.js → GrPagination-AMbn5D8I.js} +1 -1
- package/dist/components/GrPagination/chunks/{GrPagination-BbaF5eXk.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-0iI4wdR_.js → GrSelect-B-ykrHpL.js} +26 -182
- 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/GrSwitch/chunks/{GrSwitch-CriHWT2A.js → GrSwitch-D7X42uIA.js} +61 -7
- package/dist/components/GrSwitch/chunks/GrSwitch-D7X42uIA.js.map +1 -0
- package/dist/components/GrSwitch/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 +80 -71
- 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/GrBadge/GrBadge.vue.d.ts +15 -1
- package/dist/types/components/GrBadge/grBadgeStyles.d.ts +57 -0
- package/dist/types/components/GrBadge/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/GrOtpInput/GrOtpInput.vue.d.ts +164 -0
- package/dist/types/components/GrOtpInput/config.d.ts +1 -0
- package/dist/types/components/GrOtpInput/defaults.d.ts +15 -0
- package/dist/types/components/GrOtpInput/grOtpInputStyles.d.ts +62 -0
- package/dist/types/components/GrOtpInput/index.d.ts +9 -0
- package/dist/types/components/GrOtpInput/otpValue.d.ts +71 -0
- package/dist/types/components/GrOtpInput/safelist.d.ts +7 -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/GrSwitch/GrSwitch.vue.d.ts +42 -4
- package/dist/types/components/GrSwitch/defaults.d.ts +2 -0
- package/dist/types/components/GrSwitch/grSwitchStyles.d.ts +129 -25
- package/dist/types/components/GrSwitch/index.d.ts +1 -1
- package/dist/types/components/GrSwitch/safelist.d.ts +4 -3
- 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 +2 -0
- package/dist/types/i18n/messages/en.d.ts +32 -0
- package/dist/types/i18n/messages/es.d.ts +32 -0
- package/dist/types/i18n/messages/ru.d.ts +32 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/internal/hotkeySequence.d.ts +22 -0
- package/dist/types/internal/keyboard.d.ts +45 -0
- package/dist/web-types.json +784 -101
- package/package.json +13 -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-Yy67uWHY.js +0 -140
- package/dist/chunks/config-Yy67uWHY.js.map +0 -1
- package/dist/chunks/config-iemgzS4x.js.map +0 -1
- package/dist/chunks/en-Bxyn5lW7.js.map +0 -1
- package/dist/chunks/es-Dtl-a7ui.js.map +0 -1
- package/dist/chunks/grBadgeStyles-DV0DrAew.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-BOQp7N5o.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-hrB4I1u_.js.map +0 -1
- package/dist/chunks/safelist-x8USecK8.js.map +0 -1
- package/dist/components/GrAutocomplete/chunks/GrAutocomplete-C-uovdv8.js.map +0 -1
- package/dist/components/GrBadge/chunks/GrBadge-DBeQXEir.js +0 -47
- package/dist/components/GrBadge/chunks/GrBadge-DBeQXEir.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-CO0YU-ok.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-0iI4wdR_.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/GrSwitch/chunks/GrSwitch-CriHWT2A.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
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Пипетка экрана поверх `EyeDropper`.
|
|
3
|
+
*
|
|
4
|
+
* API есть не везде (сегодня — браузеры на Chromium), поэтому вызывается через
|
|
5
|
+
* проверку, а не через `try`: кнопка не должна появляться там, где нажатие
|
|
6
|
+
* ничего не даст.
|
|
7
|
+
*
|
|
8
|
+
* Отказ пользователя ошибкой не считается. `open()` отклоняется `AbortError`
|
|
9
|
+
* и на `Esc`, и на обрыв через `AbortSignal` — оба исхода означают «цвет не
|
|
10
|
+
* выбран», и разговаривать о них с пользователем не о чем.
|
|
11
|
+
*/
|
|
12
|
+
/** Поддерживается ли пипетка. Зовётся после монтирования: на сервере `window` нет. */
|
|
13
|
+
export declare function isEyeDropperSupported(): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Открыть пипетку и дождаться цвета. `null` — пользователь отказался или API
|
|
16
|
+
* недоступно.
|
|
17
|
+
*
|
|
18
|
+
* Вызов обязан идти прямо из обработчика нажатия: без свежего жеста браузер
|
|
19
|
+
* отклоняет `open()` как `NotAllowedError`.
|
|
20
|
+
*/
|
|
21
|
+
export declare function pickScreenColor(signal?: AbortSignal): Promise<string | null>;
|
|
@@ -24,6 +24,43 @@ export declare const swatchBaseClass = "relative shrink-0 overflow-hidden rounde
|
|
|
24
24
|
export declare const swatchFillClass = "absolute inset-0";
|
|
25
25
|
export declare const panelBaseClass = "grid";
|
|
26
26
|
export declare const previewClass = "relative h-10 w-full overflow-hidden rounded-[var(--gr-radius-md)] border border-[color-mix(in_srgb,var(--gr-fg)_18%,transparent)]";
|
|
27
|
+
/** Вид панели: лестница каналов или квадрат насыщенность × светлота. */
|
|
28
|
+
export declare const GR_COLOR_PICKER_VIEWS: readonly ["sliders", "area"];
|
|
29
|
+
export type GrColorPickerView = typeof GR_COLOR_PICKER_VIEWS[number];
|
|
30
|
+
/**
|
|
31
|
+
* Высота области. Ширину задаёт панель, поэтому квадрат тут не буквальный:
|
|
32
|
+
* на узкой ступени доля высоты крупнее, иначе область вырождается в полоску.
|
|
33
|
+
*/
|
|
34
|
+
export declare const areaHeightBySize: Record<GrColorPickerSize, string>;
|
|
35
|
+
/**
|
|
36
|
+
* Область насыщенности и светлоты.
|
|
37
|
+
*
|
|
38
|
+
* Кольцо фокуса живёт на обёртке через `focus-within`: фокус получают скрытые
|
|
39
|
+
* `input[type=range]` внутри, и своё кольцо у них было бы шириной в пиксель.
|
|
40
|
+
*/
|
|
41
|
+
export declare const areaBaseClass = "relative w-full overflow-hidden rounded-[var(--gr-radius-md)] border border-[color-mix(in_srgb,var(--gr-fg)_18%,transparent)] [touch-action:none] focus-within:outline-none focus-within:ring-2 focus-within:ring-[var(--gr-ring)]";
|
|
42
|
+
export declare const areaEnabledClass = "cursor-crosshair";
|
|
43
|
+
export declare const areaDisabledClass = "cursor-not-allowed";
|
|
44
|
+
/**
|
|
45
|
+
* Ручка области.
|
|
46
|
+
*
|
|
47
|
+
* Обвода два, светлый и тёмный: ручка лежит поверх произвольного цвета, и
|
|
48
|
+
* одиночный пропадал бы на своём конце шкалы — белый в углу белого, тёмный в
|
|
49
|
+
* углу чёрного.
|
|
50
|
+
*
|
|
51
|
+
* Оба независимы от темы намеренно: под ручкой не подложка компонента, а
|
|
52
|
+
* выбираемый цвет, и `--gr-fg` спорил бы с ним, а не с фоном страницы.
|
|
53
|
+
*/
|
|
54
|
+
export declare const areaThumbClass = "pointer-events-none absolute h-[var(--gr-color-picker-area-thumb-size,0.875rem)] w-[var(--gr-color-picker-area-thumb-size,0.875rem)] -translate-x-1/2 -translate-y-1/2 rounded-[var(--gr-radius-full)] border-2 border-[var(--gr-color-picker-area-thumb-border,#fff)] shadow-[0_0_0_1px_var(--gr-color-picker-area-thumb-ring,rgba(0,0,0,0.45))]";
|
|
55
|
+
/** Оба поля осей: доступны диктору и клавиатуре, но не видны. */
|
|
56
|
+
export declare const areaInputClass = "sr-only";
|
|
57
|
+
/** Пипетка стоит в одном ряду с полем hex и повторяет его высоту. */
|
|
58
|
+
export declare const eyedropperClass = "inline-flex shrink-0 items-center justify-center rounded-[var(--gr-radius-control)] border border-[var(--gr-brd)] bg-[var(--gr-bg)] text-[var(--gr-fg)] transition-colors duration-[var(--gr-duration-fast)] hover:border-[var(--gr-primary)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--gr-ring)] disabled:cursor-not-allowed disabled:border-[var(--gr-brd)] disabled:bg-[var(--gr-muted)] disabled:text-[var(--gr-disabled-fg)]";
|
|
59
|
+
export declare const eyedropperSizeBySize: Record<GrColorPickerSize, string>;
|
|
60
|
+
export declare const eyedropperIconClass = "h-4 w-4 shrink-0";
|
|
61
|
+
/** Поле hex и пипетка стоят рядом: поле тянется, кнопка держит свою ширину. */
|
|
62
|
+
export declare const hexRowClass = "flex items-center gap-2";
|
|
63
|
+
export declare const hexFieldClass = "min-w-0 flex-1";
|
|
27
64
|
export declare const rowClass = "grid grid-cols-[1.25rem_minmax(0,1fr)_2.75rem] items-center gap-2";
|
|
28
65
|
export declare const rowLabelClass = "text-[var(--gr-muted-fg)]";
|
|
29
66
|
export declare const rowValueClass = "text-right text-[var(--gr-muted-fg)] tabular-nums";
|
|
@@ -37,3 +74,8 @@ export declare function grColorPickerTriggerClass(options: {
|
|
|
37
74
|
}): string;
|
|
38
75
|
export declare function grColorPickerPanelClass(size: GrColorPickerSize): string;
|
|
39
76
|
export declare function grColorPickerPresetClass(selected: boolean): string;
|
|
77
|
+
export declare function grColorPickerAreaClass(options: {
|
|
78
|
+
size: GrColorPickerSize;
|
|
79
|
+
locked: boolean;
|
|
80
|
+
}): string;
|
|
81
|
+
export declare function grColorPickerEyedropperClass(size: GrColorPickerSize): string;
|
|
@@ -29,6 +29,12 @@ export interface GrCommandPaletteProps {
|
|
|
29
29
|
size?: GrCommandPaletteSize;
|
|
30
30
|
/** Глобальное сочетание открытия. `null` — не вешать слушатель. */
|
|
31
31
|
hotkey?: string | null;
|
|
32
|
+
/**
|
|
33
|
+
* Идентификатор записи в реестре (`granularityHotkeysPlugin`) вместо
|
|
34
|
+
* сочетания строкой: подсказка и привязка берутся из одного источника и не
|
|
35
|
+
* могут разойтись. Сильнее `hotkey`.
|
|
36
|
+
*/
|
|
37
|
+
hotkeyId?: string;
|
|
32
38
|
/** Локальная фильтрация по запросу. `false` — фильтрует владелец по событию `search`. */
|
|
33
39
|
filterable?: boolean;
|
|
34
40
|
/** Кастомный матчер локальной фильтрации. */
|
|
@@ -83,6 +89,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
83
89
|
placeholder: undefined;
|
|
84
90
|
size: undefined;
|
|
85
91
|
hotkey: string;
|
|
92
|
+
hotkeyId: undefined;
|
|
86
93
|
filterable: boolean;
|
|
87
94
|
filter: undefined;
|
|
88
95
|
loading: boolean;
|
|
@@ -106,6 +113,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
106
113
|
placeholder: undefined;
|
|
107
114
|
size: undefined;
|
|
108
115
|
hotkey: string;
|
|
116
|
+
hotkeyId: undefined;
|
|
109
117
|
filterable: boolean;
|
|
110
118
|
filter: undefined;
|
|
111
119
|
loading: boolean;
|
|
@@ -131,8 +139,9 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
131
139
|
closeOnSelect: boolean;
|
|
132
140
|
virtual: boolean;
|
|
133
141
|
items: GrCommandItem[];
|
|
134
|
-
recentIds: string[];
|
|
135
142
|
hotkey: string | null;
|
|
143
|
+
recentIds: string[];
|
|
144
|
+
hotkeyId: string;
|
|
136
145
|
showHotkeyHint: boolean;
|
|
137
146
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
138
147
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -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>;
|