@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
|
@@ -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';
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { type GrOtpInputSize } from './grOtpInputStyles';
|
|
2
|
+
import { type GrOtpInputType } from './otpValue';
|
|
3
|
+
export type { GrOtpInputSize } from './grOtpInputStyles';
|
|
4
|
+
export type { GrOtpInputType } from './otpValue';
|
|
5
|
+
export interface GrOtpInputProps {
|
|
6
|
+
/** Код целиком, без разделителей. */
|
|
7
|
+
modelValue?: string;
|
|
8
|
+
/** Число ячеек. */
|
|
9
|
+
length?: number;
|
|
10
|
+
/** Допустимый алфавит и раскладка мобильной клавиатуры. */
|
|
11
|
+
type?: GrOtpInputType;
|
|
12
|
+
/** Свой алфавит регуляркой на **один символ**. Перекрывает `type`. */
|
|
13
|
+
pattern?: string;
|
|
14
|
+
/** Разбивка на группы: `[3, 3]` рисует `123 – 456`. Сумма обязана равняться `length`. */
|
|
15
|
+
groups?: number[];
|
|
16
|
+
/** Точки вместо символов — сценарий PIN. На `modelValue` не влияет. */
|
|
17
|
+
masked?: boolean;
|
|
18
|
+
/** Знак в пустой ячейке. */
|
|
19
|
+
placeholder?: string;
|
|
20
|
+
size?: GrOtpInputSize;
|
|
21
|
+
autofocus?: boolean;
|
|
22
|
+
/** `autocomplete="one-time-code"`: код из SMS подставляется на iOS и macOS. */
|
|
23
|
+
oneTimeCode?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Приём кода из SMS на Android через WebOTP. Выключен: требует HTTPS и
|
|
26
|
+
* особого хвоста в тексте сообщения, который добавляет бэкенд.
|
|
27
|
+
*/
|
|
28
|
+
webOtp?: boolean;
|
|
29
|
+
/** Имя поля для нативной отправки формы. */
|
|
30
|
+
name?: string;
|
|
31
|
+
/** `id` формы, если поле лежит вне неё. */
|
|
32
|
+
form?: string;
|
|
33
|
+
disabled?: boolean;
|
|
34
|
+
readonly?: boolean;
|
|
35
|
+
invalid?: boolean;
|
|
36
|
+
required?: boolean;
|
|
37
|
+
ariaLabel?: string;
|
|
38
|
+
}
|
|
39
|
+
export interface GrOtpInputEmits {
|
|
40
|
+
(e: 'update:modelValue', value: string): void;
|
|
41
|
+
(e: 'change', value: string): void;
|
|
42
|
+
(e: 'focus', event: FocusEvent): void;
|
|
43
|
+
(e: 'blur', event: FocusEvent): void;
|
|
44
|
+
/** Код набран целиком. Точка автосабмита. */
|
|
45
|
+
(e: 'complete', value: string): void;
|
|
46
|
+
}
|
|
47
|
+
type __VLS_Slots = {
|
|
48
|
+
/** Своё оформление ячейки. Размер и рамку по-прежнему держит компонент. */
|
|
49
|
+
cell?: (props: {
|
|
50
|
+
char: string;
|
|
51
|
+
index: number;
|
|
52
|
+
active: boolean;
|
|
53
|
+
filled: boolean;
|
|
54
|
+
masked: boolean;
|
|
55
|
+
}) => any;
|
|
56
|
+
/** Знак между группами. По умолчанию — тире. */
|
|
57
|
+
separator?: (props: {
|
|
58
|
+
index: number;
|
|
59
|
+
}) => any;
|
|
60
|
+
};
|
|
61
|
+
declare function focus(): void;
|
|
62
|
+
declare function blur(): void;
|
|
63
|
+
/** Штатный сценарий: сервер отверг код, поле чистится и снова ждёт ввода. */
|
|
64
|
+
declare function clear(): void;
|
|
65
|
+
declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<GrOtpInputProps>, {
|
|
66
|
+
modelValue: string;
|
|
67
|
+
length: undefined;
|
|
68
|
+
type: string;
|
|
69
|
+
pattern: undefined;
|
|
70
|
+
groups: undefined;
|
|
71
|
+
masked: undefined;
|
|
72
|
+
placeholder: string;
|
|
73
|
+
size: undefined;
|
|
74
|
+
autofocus: boolean;
|
|
75
|
+
oneTimeCode: boolean;
|
|
76
|
+
webOtp: boolean;
|
|
77
|
+
name: undefined;
|
|
78
|
+
form: undefined;
|
|
79
|
+
disabled: boolean;
|
|
80
|
+
readonly: boolean;
|
|
81
|
+
invalid: boolean;
|
|
82
|
+
required: boolean;
|
|
83
|
+
ariaLabel: undefined;
|
|
84
|
+
}>>, {
|
|
85
|
+
focus: typeof focus;
|
|
86
|
+
blur: typeof blur;
|
|
87
|
+
clear: typeof clear;
|
|
88
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
89
|
+
"update:modelValue": (value: string) => void;
|
|
90
|
+
change: (value: string) => void;
|
|
91
|
+
focus: (event: FocusEvent) => void;
|
|
92
|
+
blur: (event: FocusEvent) => void;
|
|
93
|
+
complete: (value: string) => void;
|
|
94
|
+
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<GrOtpInputProps>, {
|
|
95
|
+
modelValue: string;
|
|
96
|
+
length: undefined;
|
|
97
|
+
type: string;
|
|
98
|
+
pattern: undefined;
|
|
99
|
+
groups: undefined;
|
|
100
|
+
masked: undefined;
|
|
101
|
+
placeholder: string;
|
|
102
|
+
size: undefined;
|
|
103
|
+
autofocus: boolean;
|
|
104
|
+
oneTimeCode: boolean;
|
|
105
|
+
webOtp: boolean;
|
|
106
|
+
name: undefined;
|
|
107
|
+
form: undefined;
|
|
108
|
+
disabled: boolean;
|
|
109
|
+
readonly: boolean;
|
|
110
|
+
invalid: boolean;
|
|
111
|
+
required: boolean;
|
|
112
|
+
ariaLabel: undefined;
|
|
113
|
+
}>>> & Readonly<{
|
|
114
|
+
onBlur?: ((event: FocusEvent) => any) | undefined;
|
|
115
|
+
onChange?: ((value: string) => any) | undefined;
|
|
116
|
+
onFocus?: ((event: FocusEvent) => any) | undefined;
|
|
117
|
+
"onUpdate:modelValue"?: ((value: string) => any) | undefined;
|
|
118
|
+
onComplete?: ((value: string) => any) | undefined;
|
|
119
|
+
}>, {
|
|
120
|
+
length: number;
|
|
121
|
+
disabled: boolean;
|
|
122
|
+
readonly: boolean;
|
|
123
|
+
form: string;
|
|
124
|
+
pattern: string;
|
|
125
|
+
type: GrOtpInputType;
|
|
126
|
+
size: GrOtpInputSize;
|
|
127
|
+
masked: boolean;
|
|
128
|
+
name: string;
|
|
129
|
+
invalid: boolean;
|
|
130
|
+
ariaLabel: string;
|
|
131
|
+
modelValue: string;
|
|
132
|
+
required: boolean;
|
|
133
|
+
placeholder: string;
|
|
134
|
+
groups: number[];
|
|
135
|
+
autofocus: boolean;
|
|
136
|
+
oneTimeCode: boolean;
|
|
137
|
+
webOtp: boolean;
|
|
138
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
139
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
140
|
+
declare const _default: typeof __VLS_export;
|
|
141
|
+
export default _default;
|
|
142
|
+
type __VLS_TypePropsToOption<T> = {
|
|
143
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
144
|
+
type: import('vue').PropType<Required<T>[K]>;
|
|
145
|
+
} : {
|
|
146
|
+
type: import('vue').PropType<T[K]>;
|
|
147
|
+
required: true;
|
|
148
|
+
};
|
|
149
|
+
};
|
|
150
|
+
type __VLS_WithDefaults<P, D> = {
|
|
151
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
|
|
152
|
+
default: D[K];
|
|
153
|
+
}> : P[K];
|
|
154
|
+
};
|
|
155
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
156
|
+
new (): {
|
|
157
|
+
$slots: S;
|
|
158
|
+
};
|
|
159
|
+
};
|
|
160
|
+
type __VLS_PrettifyLocal<T> = (T extends any ? {
|
|
161
|
+
[K in keyof T]: T[K];
|
|
162
|
+
} : {
|
|
163
|
+
[K in keyof T as K]: T[K];
|
|
164
|
+
}) & {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const grOtpInputConfig: import("@feugene/unocss-preset-granular/contract").GranularComponentDescriptor<"GrOtpInput">;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { GrComponentSize } from '../GrConfigProvider/context';
|
|
2
|
+
/**
|
|
3
|
+
* Пропы `GrOtpInput`, настраиваемые глобально через `componentDefaults`.
|
|
4
|
+
* Только оформление и поведение по умолчанию — см. `GrButton/defaults.ts`.
|
|
5
|
+
*/
|
|
6
|
+
export interface GrOtpInputConfigurableProps {
|
|
7
|
+
size: GrComponentSize;
|
|
8
|
+
length: number;
|
|
9
|
+
masked: boolean;
|
|
10
|
+
}
|
|
11
|
+
declare module '../../composables/useGrComponentConfig' {
|
|
12
|
+
interface GrComponentDefaultsRegistry {
|
|
13
|
+
GrOtpInput: GrOtpInputConfigurableProps;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { GrComponentSize } from '../shared/sizes';
|
|
2
|
+
export type GrOtpInputSize = GrComponentSize;
|
|
3
|
+
/**
|
|
4
|
+
* `w-fit` тут не украшение. Гридовый или флексовый родитель **блокифицирует**
|
|
5
|
+
* `inline-flex`, и ряд растягивался на всю колонку: сами ячейки оставались на
|
|
6
|
+
* месте, а невидимое поле поверх них ловило клики далеко справа от кода.
|
|
7
|
+
*/
|
|
8
|
+
export declare const rootBaseClass = "relative inline-flex w-fit items-center";
|
|
9
|
+
export declare const rootGaps: Record<GrOtpInputSize, string>;
|
|
10
|
+
/**
|
|
11
|
+
* Настоящее поле лежит **поверх** ряда ячеек и невидимо: текст, каретка и
|
|
12
|
+
* подсветка выделения прозрачны, всё видимое рисуют ячейки.
|
|
13
|
+
*
|
|
14
|
+
* Оно остаётся полноценным `<input>`, и потому даром достаются вставка,
|
|
15
|
+
* автозаполнение кода из SMS, отмена, выделение и вся каретка со стрелками —
|
|
16
|
+
* см. `docs/components/GrOtpInput.md`.
|
|
17
|
+
*
|
|
18
|
+
* `z-index` не нужен: поле позиционировано, ячейки — нет, а позиционированный
|
|
19
|
+
* элемент и так красится поверх статичных соседей. Литерал слоя тут был бы
|
|
20
|
+
* лишней записью в шкале `docs/z-index.md`.
|
|
21
|
+
*/
|
|
22
|
+
export declare const fieldClass = "absolute inset-0 w-full cursor-text bg-transparent text-transparent [caret-color:transparent] outline-none selection:bg-transparent disabled:cursor-not-allowed";
|
|
23
|
+
export declare const cellBaseClass = "relative inline-flex shrink-0 items-center justify-center rounded-[var(--gr-radius-control)] border [font-variant-numeric:tabular-nums] transition-colors duration-[var(--gr-duration-fast)]";
|
|
24
|
+
/**
|
|
25
|
+
* Сторона ячейки повторяет высоту `GrInput` на той же ступени: код стоит в
|
|
26
|
+
* форме рядом с полями, и ряд обязан садиться с ними в одну линию.
|
|
27
|
+
*
|
|
28
|
+
* Через хук, а не классом-числом: квадратная ячейка — решение оформления, и
|
|
29
|
+
* макет вправе сделать её шире.
|
|
30
|
+
*/
|
|
31
|
+
export declare const cellSizes: Record<GrOtpInputSize, string>;
|
|
32
|
+
export declare const cellIdleClass = "border-[var(--gr-brd)] bg-[var(--gr-bg)] text-[var(--gr-fg)]";
|
|
33
|
+
/** Активная ячейка — та, в которой стоит каретка, и только пока поле в фокусе. */
|
|
34
|
+
export declare const cellActiveClass = "border-[var(--gr-otp-input-active-brd,var(--gr-primary))] ring-2 ring-[var(--gr-ring)]";
|
|
35
|
+
/**
|
|
36
|
+
* Вердикт валидации красится своей ролью, а не декоративным `danger`: тема
|
|
37
|
+
* вправе развести подсветку по решению разработчика и ошибку формы.
|
|
38
|
+
*/
|
|
39
|
+
export declare const cellInvalidClass = "border-[var(--gr-invalid-brd)] bg-[var(--gr-bg)] text-[var(--gr-fg)]";
|
|
40
|
+
export declare const cellInvalidActiveClass = "ring-2 ring-[var(--gr-invalid-ring)]";
|
|
41
|
+
/**
|
|
42
|
+
* Недоступность гасится фоном, а не `opacity`: прозрачность разбавляет
|
|
43
|
+
* выверенные на AA токены текста и роняет контраст кода.
|
|
44
|
+
*/
|
|
45
|
+
export declare const cellDisabledClass = "border-[var(--gr-disabled-brd)] bg-[var(--gr-disabled-bg)] text-[var(--gr-disabled-fg)]";
|
|
46
|
+
export declare const placeholderClass = "text-[var(--gr-muted-fg)]";
|
|
47
|
+
/**
|
|
48
|
+
* Каретка рисуется своей, потому что настоящая скрыта вместе с текстом.
|
|
49
|
+
* Мигание — CSS-анимация, значит подчиняется глобальному клампу движения
|
|
50
|
+
* пакета (`docs/motion.md`), а не собственному таймеру.
|
|
51
|
+
*/
|
|
52
|
+
export declare const caretClass = "pointer-events-none absolute h-[1em] w-px bg-[var(--gr-otp-input-caret,var(--gr-primary))]";
|
|
53
|
+
export declare const separatorClass = "select-none px-0.5 text-[var(--gr-muted-fg)]";
|
|
54
|
+
export declare function grOtpInputRootClass(size: GrOtpInputSize): string;
|
|
55
|
+
type GrOtpInputCellClassOptions = {
|
|
56
|
+
size: GrOtpInputSize;
|
|
57
|
+
active: boolean;
|
|
58
|
+
invalid: boolean;
|
|
59
|
+
disabled: boolean;
|
|
60
|
+
};
|
|
61
|
+
export declare function grOtpInputCellClass(options: GrOtpInputCellClassOptions): string;
|
|
62
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ComponentExposed } from '../shared/instance';
|
|
2
|
+
import type GrOtpInputComponent from './GrOtpInput.vue';
|
|
3
|
+
export { default } from './GrOtpInput.vue';
|
|
4
|
+
export { default as GrOtpInput } from './GrOtpInput.vue';
|
|
5
|
+
export { grOtpInputConfig } from './config';
|
|
6
|
+
export type { GrOtpInputConfigurableProps } from './defaults';
|
|
7
|
+
export { grOtpInputSafelist } from './safelist';
|
|
8
|
+
export type { GrOtpInputEmits, GrOtpInputProps, GrOtpInputSize, GrOtpInputType } from './GrOtpInput.vue';
|
|
9
|
+
export type GrOtpInputInstance = ComponentExposed<typeof GrOtpInputComponent>;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Чистая логика значения OTP-поля: алфавит, нормализация ввода и разбивка на
|
|
3
|
+
* группы. Без Vue и без DOM — здесь дёшево перебрать края, а края тут и есть
|
|
4
|
+
* весь риск.
|
|
5
|
+
*/
|
|
6
|
+
export declare const GR_OTP_INPUT_TYPES: readonly ["numeric", "alphanumeric", "text"];
|
|
7
|
+
export type GrOtpInputType = typeof GR_OTP_INPUT_TYPES[number];
|
|
8
|
+
/**
|
|
9
|
+
* Алфавиты по типу. `text` — любой непробельный символ: пробел в коде не несёт
|
|
10
|
+
* смысла, а при вставке из мессенджера приходит вместе с ним.
|
|
11
|
+
*/
|
|
12
|
+
export declare const OTP_TYPE_PATTERNS: Record<GrOtpInputType, string>;
|
|
13
|
+
/** Раскладка клавиатуры на мобильном: цифровой блок только там, где он уместен. */
|
|
14
|
+
export declare const OTP_TYPE_INPUT_MODES: Record<GrOtpInputType, 'numeric' | 'text'>;
|
|
15
|
+
export type OtpMatcher = (char: string) => boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Матчер алфавита. Своя регулярка потребителя перекрывает тип; сломанная —
|
|
18
|
+
* повод сказать об этом в dev и вернуться к типу, а не уронить рендер.
|
|
19
|
+
*/
|
|
20
|
+
export declare function createOtpMatcher(type: GrOtpInputType, pattern?: string): OtpMatcher;
|
|
21
|
+
export interface NormalizeOtpOptions {
|
|
22
|
+
/** Значение до правки: по нему считается, сколько символов вставлено. */
|
|
23
|
+
previous: string;
|
|
24
|
+
/** Сырое содержимое поля после события `input`. */
|
|
25
|
+
raw: string;
|
|
26
|
+
/** Каретка в координатах **сырой** строки. */
|
|
27
|
+
caret: number;
|
|
28
|
+
length: number;
|
|
29
|
+
matcher: OtpMatcher;
|
|
30
|
+
/** Приводить ли к верхнему регистру: коды печатают капсом. */
|
|
31
|
+
uppercase: boolean;
|
|
32
|
+
}
|
|
33
|
+
export interface NormalizedOtp {
|
|
34
|
+
value: string;
|
|
35
|
+
caret: number;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Свести сырое содержимое поля к коду фиксированной длины.
|
|
39
|
+
*
|
|
40
|
+
* Одна функция на все источники ввода — символ с клавиатуры, вставка из буфера,
|
|
41
|
+
* подстановка кода из SMS, — потому что различить их по событию нельзя:
|
|
42
|
+
* мобильные клавиатуры и автозаполнение присылают целую строку одним `input`.
|
|
43
|
+
*
|
|
44
|
+
* Три шага, и каждый закрывает свой отказ:
|
|
45
|
+
*
|
|
46
|
+
* 1. **Отсев чужих символов с переносом каретки.** Индексы после отсева
|
|
47
|
+
* съезжают, и каретку надо считать в новых координатах, иначе вставка
|
|
48
|
+
* `123-456` поставит её на два символа правее конца.
|
|
49
|
+
* 2. **Печать заменяет, а не сдвигает.** Ячейка держит ровно один символ, и
|
|
50
|
+
* напечатанное в неё занимает её место, а хвост кода остаётся где стоял.
|
|
51
|
+
* Правило безусловное, а не «когда поле заполнено»: иначе одно и то же
|
|
52
|
+
* нажатие в начале кода то заменяло бы символ, то двигало весь остаток —
|
|
53
|
+
* в зависимости от того, сколько ячеек занято.
|
|
54
|
+
* 3. **Обрезка по длине.** Вставка длиннее поля режется со стороны каретки:
|
|
55
|
+
* выкусывать за ней уже нечего, а сдвигать набранное нельзя.
|
|
56
|
+
*/
|
|
57
|
+
export declare function normalizeOtpInput(options: NormalizeOtpOptions): NormalizedOtp;
|
|
58
|
+
/** Отсев без каретки — для значения, пришедшего из `v-model`. */
|
|
59
|
+
export declare function sanitizeOtpValue(value: string, options: {
|
|
60
|
+
length: number;
|
|
61
|
+
matcher: OtpMatcher;
|
|
62
|
+
uppercase: boolean;
|
|
63
|
+
}): string;
|
|
64
|
+
/**
|
|
65
|
+
* Индексы ячеек, **перед** которыми стоит разделитель.
|
|
66
|
+
*
|
|
67
|
+
* Разбивка, не сходящаяся с длиной, — ошибка потребителя, а не повод рисовать
|
|
68
|
+
* половину: группы игнорируются целиком, о чём говорит предупреждение в вызове.
|
|
69
|
+
*/
|
|
70
|
+
export declare function otpSeparatorIndexes(length: number, groups?: number[]): Set<number>;
|
|
71
|
+
export declare function isOtpGroupsValid(length: number, groups?: number[]): boolean;
|
|
@@ -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";
|
|
@@ -24,9 +24,21 @@ export interface GrSidebarProps {
|
|
|
24
24
|
landmark?: GrSidebarLandmark;
|
|
25
25
|
/** Имя лендмарка: без него две панели на странице неразличимы. */
|
|
26
26
|
ariaLabel?: string;
|
|
27
|
+
/**
|
|
28
|
+
* Панель как модальный слой поверх страницы: подложка, `Esc`, ловушка фокуса,
|
|
29
|
+
* блокировка прокрутки. Для узкого экрана, где колонке места нет.
|
|
30
|
+
*
|
|
31
|
+
* Когда включать — решает приложение: своей системы брейкпоинтов у пакета нет,
|
|
32
|
+
* а спрашивать среду в `setup` нельзя — первый клиентский рендер разошёлся бы
|
|
33
|
+
* с серверным и сломал гидрацию.
|
|
34
|
+
*/
|
|
35
|
+
overlay?: boolean;
|
|
36
|
+
/** Открыт ли слой. Поддерживает `v-model:open`; без `overlay` не значит ничего. */
|
|
37
|
+
open?: boolean;
|
|
27
38
|
}
|
|
28
39
|
export interface GrSidebarEmits {
|
|
29
40
|
(e: 'update:collapsed', value: boolean): void;
|
|
41
|
+
(e: 'update:open', value: boolean): void;
|
|
30
42
|
}
|
|
31
43
|
type __VLS_Slots = {
|
|
32
44
|
/** Содержимое панели: навигация, группы, произвольная разметка. */
|
|
@@ -47,8 +59,11 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
47
59
|
position: string;
|
|
48
60
|
landmark: string;
|
|
49
61
|
ariaLabel: undefined;
|
|
62
|
+
overlay: boolean;
|
|
63
|
+
open: boolean;
|
|
50
64
|
}>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
51
65
|
"update:collapsed": (value: boolean) => void;
|
|
66
|
+
"update:open": (value: boolean) => void;
|
|
52
67
|
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<GrSidebarProps>, {
|
|
53
68
|
title: undefined;
|
|
54
69
|
subtitle: undefined;
|
|
@@ -60,12 +75,17 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
60
75
|
position: string;
|
|
61
76
|
landmark: string;
|
|
62
77
|
ariaLabel: undefined;
|
|
78
|
+
overlay: boolean;
|
|
79
|
+
open: boolean;
|
|
63
80
|
}>>> & Readonly<{
|
|
81
|
+
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
64
82
|
"onUpdate:collapsed"?: ((value: boolean) => any) | undefined;
|
|
65
83
|
}>, {
|
|
84
|
+
overlay: boolean;
|
|
66
85
|
title: string;
|
|
67
86
|
width: string;
|
|
68
87
|
position: GrSidebarPosition;
|
|
88
|
+
open: boolean;
|
|
69
89
|
ariaLabel: string;
|
|
70
90
|
landmark: GrSidebarLandmark;
|
|
71
91
|
subtitle: string;
|
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
* Контракт:
|
|
5
5
|
* - развёрнутая панель — `[иконка] метка [бейдж]`;
|
|
6
6
|
* - свёрнутая панель — только иконка; если иконки нет, показывается ПЕРВАЯ БУКВА
|
|
7
|
-
* метки (uppercase).
|
|
8
|
-
*
|
|
7
|
+
* метки (uppercase). Имя пункту даёт `aria-label`, а подпись показывает
|
|
8
|
+
* `GrTooltip`: нативный `title` появлялся только по наведению, то есть с
|
|
9
|
+
* клавиатуры свёрнутую панель было не прочесть.
|
|
9
10
|
*
|
|
10
11
|
* Корневой тег: `as` → `<a href>` → `<button>` (в этом порядке).
|
|
11
12
|
*/
|
|
@@ -19,29 +20,57 @@ export interface GrSidebarItemProps {
|
|
|
19
20
|
active?: boolean;
|
|
20
21
|
disabled?: boolean;
|
|
21
22
|
badge?: string | number;
|
|
23
|
+
/**
|
|
24
|
+
* Раскрыто ли поддерево. Поддерживает `v-model:expanded`; без пропа пункт
|
|
25
|
+
* ведёт себя сам.
|
|
26
|
+
*/
|
|
27
|
+
expanded?: boolean;
|
|
28
|
+
/** Начальное состояние поддерева, когда `expanded` не контролируется. */
|
|
29
|
+
defaultExpanded?: boolean;
|
|
22
30
|
}
|
|
23
|
-
|
|
31
|
+
export interface GrSidebarItemEmits {
|
|
32
|
+
(e: 'update:expanded', value: boolean): void;
|
|
33
|
+
}
|
|
34
|
+
type __VLS_Slots = {
|
|
35
|
+
/**
|
|
36
|
+
* Вложенные пункты. Их наличие превращает пункт в раскрывающийся: он теряет
|
|
37
|
+
* роль ссылки и становится переключателем поддерева.
|
|
38
|
+
*/
|
|
39
|
+
default?: () => unknown;
|
|
40
|
+
};
|
|
41
|
+
declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<GrSidebarItemProps>, {
|
|
24
42
|
icon: undefined;
|
|
25
43
|
href: undefined;
|
|
26
44
|
as: undefined;
|
|
27
45
|
active: boolean;
|
|
28
46
|
disabled: boolean;
|
|
29
47
|
badge: undefined;
|
|
30
|
-
|
|
48
|
+
expanded: undefined;
|
|
49
|
+
defaultExpanded: boolean;
|
|
50
|
+
}>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
51
|
+
"update:expanded": (value: boolean) => void;
|
|
52
|
+
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<GrSidebarItemProps>, {
|
|
31
53
|
icon: undefined;
|
|
32
54
|
href: undefined;
|
|
33
55
|
as: undefined;
|
|
34
56
|
active: boolean;
|
|
35
57
|
disabled: boolean;
|
|
36
58
|
badge: undefined;
|
|
37
|
-
|
|
59
|
+
expanded: undefined;
|
|
60
|
+
defaultExpanded: boolean;
|
|
61
|
+
}>>> & Readonly<{
|
|
62
|
+
"onUpdate:expanded"?: ((value: boolean) => any) | undefined;
|
|
63
|
+
}>, {
|
|
38
64
|
disabled: boolean;
|
|
39
65
|
icon: string | Component;
|
|
40
66
|
href: string;
|
|
67
|
+
expanded: boolean;
|
|
41
68
|
active: boolean;
|
|
42
69
|
as: string | Component;
|
|
43
70
|
badge: string | number;
|
|
71
|
+
defaultExpanded: boolean;
|
|
44
72
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
73
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
45
74
|
declare const _default: typeof __VLS_export;
|
|
46
75
|
export default _default;
|
|
47
76
|
type __VLS_TypePropsToOption<T> = {
|
|
@@ -57,6 +86,11 @@ type __VLS_WithDefaults<P, D> = {
|
|
|
57
86
|
default: D[K];
|
|
58
87
|
}> : P[K];
|
|
59
88
|
};
|
|
89
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
90
|
+
new (): {
|
|
91
|
+
$slots: S;
|
|
92
|
+
};
|
|
93
|
+
};
|
|
60
94
|
type __VLS_PrettifyLocal<T> = (T extends any ? {
|
|
61
95
|
[K in keyof T]: T[K];
|
|
62
96
|
} : {
|
|
@@ -46,3 +46,35 @@ export declare function grSidebarItemClass(options: {
|
|
|
46
46
|
disabled: boolean;
|
|
47
47
|
active: boolean;
|
|
48
48
|
}): string;
|
|
49
|
+
/**
|
|
50
|
+
* Гнездо вложенного пункта: сам пункт плюс поддерево под ним. Обёртка нужна
|
|
51
|
+
* потому, что двух корней у компонента быть не может — при них ломается проброс
|
|
52
|
+
* атрибутов.
|
|
53
|
+
*/
|
|
54
|
+
export declare const itemNestClass = "flex flex-col";
|
|
55
|
+
/** Поддерево подпунктов. Отступ уровня задаётся строкам, а не контейнеру. */
|
|
56
|
+
export declare const itemChildrenClass = "flex flex-col";
|
|
57
|
+
/**
|
|
58
|
+
* Шеврон раскрытия. Поворотом показывает состояние, но смысла не несёт: его
|
|
59
|
+
* сообщает `aria-expanded` на самом пункте, поэтому от диктора шеврон скрыт.
|
|
60
|
+
*/
|
|
61
|
+
export declare const itemChevronClass = "ml-auto h-4 w-4 shrink-0 text-[var(--gr-muted-fg)] transition-transform duration-[var(--gr-duration-fast)]";
|
|
62
|
+
export declare const itemChevronExpandedClass = "rotate-90";
|
|
63
|
+
/**
|
|
64
|
+
* Отступ уровня вложенности. Считается от базового `px-3` пункта: своим
|
|
65
|
+
* `padding` строка отодвигается целиком, вместе с подсветкой и кольцом фокуса,
|
|
66
|
+
* — сдвинь мы только текст, активный фон уезжал бы под соседний уровень.
|
|
67
|
+
*/
|
|
68
|
+
export declare function itemNestIndent(level: number): string | undefined;
|
|
69
|
+
/**
|
|
70
|
+
* Корень модального слоя. В обычном режиме обёртка остаётся в разметке, но
|
|
71
|
+
* `display: contents` убирает её из раскладки — так панель и её шапка описаны
|
|
72
|
+
* один раз на оба режима, а не продублированы.
|
|
73
|
+
*/
|
|
74
|
+
export declare const layerRootClass = "fixed inset-0";
|
|
75
|
+
export declare const layerPassThroughClass = "contents";
|
|
76
|
+
export declare const layerBackdropClass = "fixed inset-0 bg-[var(--gr-overlay-bg)]";
|
|
77
|
+
/** Панель слоя прижата к своему краю и тянется на всю высоту экрана. */
|
|
78
|
+
export declare const layerPanelPositions: Record<GrSidebarPosition, string>;
|
|
79
|
+
/** Откуда выезжает панель: из-за своего края, а не из глубины экрана. */
|
|
80
|
+
export declare const layerPanelEnterFrom: Record<GrSidebarPosition, string>;
|
|
@@ -6,4 +6,4 @@ export { grSidebarConfig } from './config';
|
|
|
6
6
|
export type { GrSidebarLandmark, GrSidebarPosition } from './grSidebarStyles';
|
|
7
7
|
export { grSidebarSafelist } from './safelist';
|
|
8
8
|
export type { GrSidebarEmits } from './GrSidebar.vue';
|
|
9
|
-
export type { GrSidebarItemProps } from './GrSidebarItem.vue';
|
|
9
|
+
export type { GrSidebarItemEmits, GrSidebarItemProps } from './GrSidebarItem.vue';
|