@feugene/granularity 0.10.0 → 0.12.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 +44 -45
- package/dist/GrButtonGroup.css +1 -1
- package/dist/GrFormFile.css +1 -1
- package/dist/GrIcon.css +1 -1
- package/dist/GrLoading.css +1 -1
- package/dist/GrSkeleton.css +1 -1
- package/dist/GrToaster.css +1 -0
- package/dist/GrTree.css +1 -1
- package/dist/chunks/{adapter-BqqjEZGU.js.map → adapter-CAOxmn2G.js.map} +1 -1
- package/dist/chunks/arrow-up-C_G4jg8M.js.map +1 -0
- package/dist/chunks/{classTokens-BPeBXNzu.js.map → classTokens-BzazaERD.js.map} +1 -1
- package/dist/chunks/{config-A-iei0Ux.js → config-1uSYl98Y2.js} +5 -5
- package/dist/chunks/config-1uSYl98Y2.js.map +1 -0
- package/dist/chunks/{config-DZrlovR42.js.map → config-8Pcutu1j2.js.map} +1 -1
- package/dist/chunks/{config-VJuoznpH.js.map → config-B0qIpo8m.js.map} +1 -1
- package/dist/chunks/{config-C8MM2Dg0.js → config-B7IIWGt_2.js} +3 -3
- package/dist/chunks/config-B7IIWGt_2.js.map +1 -0
- package/dist/chunks/{config-DbghHyY_.js.map → config-BEegFP74.js.map} +1 -1
- package/dist/chunks/{config-D_Pafsjq2.js → config-BIRO0vDJ.js} +6 -6
- package/dist/chunks/config-BIRO0vDJ.js.map +1 -0
- package/dist/chunks/{config-BeBsN0c12.js.map → config-BLHqZhy-2.js.map} +1 -1
- package/dist/chunks/{config-BV4vBzdm.js.map → config-BNu8lFQB.js.map} +1 -1
- package/dist/chunks/config-BOlr7qw7.js +106 -0
- package/dist/chunks/config-BOlr7qw7.js.map +1 -0
- package/dist/chunks/{config-DhQc1TRY.js.map → config-BUHuGBik.js.map} +1 -1
- package/dist/chunks/{config-CPSdAjUi.js.map → config-BWGGp7uV.js.map} +1 -1
- package/dist/chunks/config-BWiPnygb.js +5 -0
- package/dist/chunks/config-BWiPnygb.js.map +1 -0
- package/dist/chunks/config-BX1JTrkV2.js +14 -0
- package/dist/chunks/config-BX1JTrkV2.js.map +1 -0
- package/dist/chunks/config-BXtAmU3s2.js.map +1 -0
- package/dist/chunks/{config-CzgNEHKi.js.map → config-Bah4oHwL.js.map} +1 -1
- package/dist/chunks/{config-C_egzT_K.js → config-C49QUoJL.js} +3 -3
- package/dist/chunks/{config-C_egzT_K.js.map → config-C49QUoJL.js.map} +1 -1
- package/dist/chunks/{config-3I3vqDW4.js → config-C4snOIXg.js} +1 -1
- package/dist/chunks/{config-3I3vqDW4.js.map → config-C4snOIXg.js.map} +1 -1
- package/dist/chunks/{config-DvDNney3.js → config-C7NpDrfO.js} +5 -5
- package/dist/chunks/{config-DvDNney3.js.map → config-C7NpDrfO.js.map} +1 -1
- package/dist/chunks/{config-lMDE_8A5.js.map → config-C86UzUYf.js.map} +1 -1
- package/dist/chunks/{config-BgBWt9-A.js.map → config-C9AcVDkv.js.map} +1 -1
- package/dist/chunks/config-CGHLoBlH.js.map +1 -0
- package/dist/chunks/{config-ChQxl75m.js.map → config-CThzliFi.js.map} +1 -1
- package/dist/chunks/{config-DDwBSoc_.js.map → config-Cb2PAlSD.js.map} +1 -1
- package/dist/chunks/{config-XspHtPsU.js → config-ClhKPJvg.js} +5 -5
- package/dist/chunks/{config-XspHtPsU.js.map → config-ClhKPJvg.js.map} +1 -1
- package/dist/chunks/{config-58Mj2rGH.js → config-Cpi9Mh2J.js} +3 -3
- package/dist/chunks/{config-58Mj2rGH.js.map → config-Cpi9Mh2J.js.map} +1 -1
- package/dist/chunks/{config-nrOj9p6I.js → config-CrG1XiE72.js} +4 -4
- package/dist/chunks/config-CrG1XiE72.js.map +1 -0
- package/dist/chunks/{config-DRpkoSvq.js → config-CziwTDDL.js} +3 -3
- package/dist/chunks/{config-DRpkoSvq.js.map → config-CziwTDDL.js.map} +1 -1
- package/dist/chunks/{config-C5-ujXCI.js.map → config-D7GZO-Dx.js.map} +1 -1
- package/dist/chunks/{config-CUwF4E4R.js.map → config-DBmdgoVf.js.map} +1 -1
- package/dist/chunks/{config-C9MblwGq.js.map → config-DICOd-2X.js.map} +1 -1
- package/dist/chunks/{config-C6zT56Jc2.js → config-DUcu1D682.js} +3 -3
- package/dist/chunks/{config-C6zT56Jc2.js.map → config-DUcu1D682.js.map} +1 -1
- package/dist/chunks/{config-8f8624RN.js → config-D_R56_gT.js} +5 -5
- package/dist/chunks/{config-8f8624RN.js.map → config-D_R56_gT.js.map} +1 -1
- package/dist/chunks/{config-RjfJFv1Y.js → config-DezDih8_.js} +4 -4
- package/dist/chunks/config-DezDih8_.js.map +1 -0
- package/dist/chunks/config-Dlm49Jp5.js +5 -0
- package/dist/chunks/config-Dlm49Jp5.js.map +1 -0
- package/dist/chunks/{config-B0uUCaJW.js → config-DnvPqu4g2.js} +3 -3
- package/dist/chunks/config-DnvPqu4g2.js.map +1 -0
- package/dist/chunks/config-DpqOnJiz.js.map +1 -0
- package/dist/chunks/{config-V3LF-b_F.js.map → config-Dxuwwepq.js.map} +1 -1
- package/dist/chunks/{config-Doa_gU40.js.map → config-HZto2PVy.js.map} +1 -1
- package/dist/chunks/{config-Dl5aZ5VR.js.map → config-JOtB4mzs.js.map} +1 -1
- package/dist/chunks/config-JpHA4Xx02.js.map +1 -0
- package/dist/chunks/{config-DkeLkzxj2.js → config-LGrZIdaZ.js} +1 -1
- package/dist/chunks/config-LGrZIdaZ.js.map +1 -0
- package/dist/chunks/{config-B3dn-gdC.js.map → config-PFg39mYo.js.map} +1 -1
- package/dist/chunks/{config-CU_CBd0k.js → config-QYGvEBu5.js} +2 -2
- package/dist/chunks/{config-CU_CBd0k.js.map → config-QYGvEBu5.js.map} +1 -1
- package/dist/chunks/{config-Bh4NWWsQ.js.map → config-QaIc_gRa.js.map} +1 -1
- package/dist/chunks/{config-vcDVCYXo.js.map → config-U4m9PSql.js.map} +1 -1
- package/dist/chunks/{config-C_q_4FrU.js.map → config-ZiXWIRBX.js.map} +1 -1
- package/dist/chunks/config-eXB87DOi2.js +9 -0
- package/dist/chunks/config-eXB87DOi2.js.map +1 -0
- package/dist/chunks/{config-hSlCXHoG.js → config-eYLZYOUS2.js} +63 -63
- package/dist/chunks/config-eYLZYOUS2.js.map +1 -0
- package/dist/chunks/{config-DDUPnue12.js.map → config-ipvU0lzP2.js.map} +1 -1
- package/dist/chunks/{config-B61cX08u.js → config-jBp9wVv-.js} +4 -4
- package/dist/chunks/{config-B61cX08u.js.map → config-jBp9wVv-.js.map} +1 -1
- package/dist/chunks/{config-D5ek7VSi.js.map → config-xR4XVmcy.js.map} +1 -1
- package/dist/chunks/context-DdNIxa1w.js +9 -0
- package/dist/chunks/context-DdNIxa1w.js.map +1 -0
- package/dist/chunks/{dialogShared-BtXUk6Zc.js.map → dialogShared-CxW62PQE.js.map} +1 -1
- package/dist/chunks/en-CfkDa4GX.js +144 -0
- package/dist/chunks/en-CfkDa4GX.js.map +1 -0
- package/dist/chunks/{es-CISK11Nv.js → es-CgaLnFYx.js} +3 -3
- package/dist/chunks/{es-CISK11Nv.js.map → es-CgaLnFYx.js.map} +1 -1
- package/dist/chunks/es-FkgECuCm.js +144 -0
- package/dist/chunks/es-FkgECuCm.js.map +1 -0
- package/dist/chunks/{fileValidation-c_iBg74s.js → fileValidation-C3WFaWU2.js} +2 -1
- package/dist/chunks/{fileValidation-c_iBg74s.js.map → fileValidation-C3WFaWU2.js.map} +1 -1
- package/dist/chunks/{grBadgeStyles-Cq0hH2Ls.js → grBadgeStyles-DrycBuKT.js} +13 -13
- package/dist/chunks/grBadgeStyles-DrycBuKT.js.map +1 -0
- package/dist/chunks/grButtonStyles-C7Yga_Q1.js +191 -0
- package/dist/chunks/grButtonStyles-C7Yga_Q1.js.map +1 -0
- package/dist/chunks/{grDropdownStyles-Bqx9hOzU.js → grDropdownStyles-B_-DKytw.js} +2 -2
- package/dist/chunks/{grDropdownStyles-Bqx9hOzU.js.map → grDropdownStyles-B_-DKytw.js.map} +1 -1
- package/dist/chunks/{grLoadingStyles-DmI-SJ3i.js.map → grLoadingStyles-R5sreH__.js.map} +1 -1
- package/dist/chunks/grModalEscStack-BXk-9mv7.js +43 -0
- package/dist/chunks/grModalEscStack-BXk-9mv7.js.map +1 -0
- package/dist/chunks/{grModalStyles-FgaKqx50.js → grModalStyles-DWd3i05Q.js} +6 -6
- package/dist/chunks/{grModalStyles-FgaKqx50.js.map → grModalStyles-DWd3i05Q.js.map} +1 -1
- package/dist/chunks/{grSelectStyles-AjWWl007.js → grSelectStyles-CLK5hRd3.js} +3 -3
- package/dist/chunks/grSelectStyles-CLK5hRd3.js.map +1 -0
- package/dist/chunks/{grStyle-D-gPHdyW.js → grStyle-Blc9otAx.js} +6 -6
- package/dist/chunks/grStyle-Blc9otAx.js.map +1 -0
- package/dist/chunks/{granularityI18n-D_7jowK2.js → granularityI18n-DoV7Ca2m.js} +1 -1
- package/dist/chunks/{granularityI18n-D_7jowK2.js.map → granularityI18n-DoV7Ca2m.js.map} +1 -1
- package/dist/chunks/info-Be2OccTu.js.map +1 -0
- package/dist/chunks/loader-circle-CfVLz7lb.js.map +1 -0
- package/dist/chunks/ru-Bl8CxpEa.js +144 -0
- package/dist/chunks/ru-Bl8CxpEa.js.map +1 -0
- package/dist/chunks/{safelist-_UVzJrgE2.js → safelist-CkF4v7DC.js} +3 -3
- package/dist/chunks/safelist-CkF4v7DC.js.map +1 -0
- package/dist/chunks/{safelist-DccvJqCE.js → safelist-Do2RtzLB.js} +3 -3
- package/dist/chunks/{safelist-DccvJqCE.js.map → safelist-Do2RtzLB.js.map} +1 -1
- package/dist/chunks/shared-B6Ay2081.js +174 -0
- package/dist/chunks/shared-B6Ay2081.js.map +1 -0
- package/dist/chunks/useAddonMeasurement-DM0akF4C.js +65 -0
- package/dist/chunks/useAddonMeasurement-DM0akF4C.js.map +1 -0
- package/dist/chunks/useEscapeToClose-C2t_S1gh.js +27 -0
- package/dist/chunks/useEscapeToClose-C2t_S1gh.js.map +1 -0
- package/dist/chunks/{useFloating-CLtbU7eD.js → useFloating-DtM6TyE4.js} +19 -4
- package/dist/chunks/{useFloating-CLtbU7eD.js.map → useFloating-DtM6TyE4.js.map} +1 -1
- package/dist/chunks/{transition-mJ3PZCHH.js → useScrollLock-K7kaP2Ud.js} +78 -13
- package/dist/chunks/useScrollLock-K7kaP2Ud.js.map +1 -0
- package/dist/chunks/x-2KXnqxiD.js.map +1 -0
- package/dist/chunks/x-circle-BCBURwyX.js.map +1 -0
- package/dist/components/GrAlert/chunks/{GrAlert-HyCjYJeL.js → GrAlert-DPJSU_fG.js} +40 -37
- package/dist/components/GrAlert/chunks/GrAlert-DPJSU_fG.js.map +1 -0
- package/dist/components/GrAlert/index.js +2 -2
- package/dist/components/GrAvatar/chunks/{GrAvatar-BjnPKNAL.js → GrAvatar-96CpTCq5.js} +2 -2
- package/dist/components/GrAvatar/chunks/{GrAvatar-BjnPKNAL.js.map → GrAvatar-96CpTCq5.js.map} +1 -1
- package/dist/components/GrAvatar/index.js +2 -2
- package/dist/components/GrBadge/chunks/{GrBadge-Cs_cVfuO.js → GrBadge-B77XlaqE.js} +3 -3
- package/dist/components/GrBadge/chunks/{GrBadge-Cs_cVfuO.js.map → GrBadge-B77XlaqE.js.map} +1 -1
- package/dist/components/GrBadge/index.js +2 -2
- package/dist/components/GrBadgeWrap/chunks/{GrBadgeWrap-BEnE9DyJ.js → GrBadgeWrap-CcktMOdg.js} +2 -2
- package/dist/components/GrBadgeWrap/chunks/{GrBadgeWrap-BEnE9DyJ.js.map → GrBadgeWrap-CcktMOdg.js.map} +1 -1
- package/dist/components/GrBadgeWrap/index.js +2 -2
- package/dist/components/GrBottomNav/chunks/{GrBottomNav-XPHwd7UQ.js.map → GrBottomNav-usuMgG8_.js.map} +1 -1
- package/dist/components/GrBottomNav/index.js +2 -2
- package/dist/components/GrButton/chunks/GrButton-BlffdeJr.js +124 -0
- package/dist/components/GrButton/chunks/GrButton-BlffdeJr.js.map +1 -0
- package/dist/components/GrButton/index.js +4 -4
- package/dist/components/GrButtonGroup/chunks/{GrButtonGroup-CPOH6V-P.js → GrButtonGroup-Bs9dEKfA.js} +1 -1
- package/dist/components/GrButtonGroup/chunks/GrButtonGroup-Bs9dEKfA.js.map +1 -0
- package/dist/components/GrButtonGroup/index.js +2 -2
- package/dist/components/GrCard/chunks/{GrCard-6yk1RRAQ.js → GrCard-DUNMkuHW.js} +3 -3
- package/dist/components/GrCard/chunks/GrCard-DUNMkuHW.js.map +1 -0
- package/dist/components/GrCard/index.js +2 -2
- package/dist/components/GrCheckbox/chunks/{GrCheckbox-Bt3d7ckE.js → GrCheckbox-DJhzZZdO.js} +66 -18
- package/dist/components/GrCheckbox/chunks/GrCheckbox-DJhzZZdO.js.map +1 -0
- package/dist/components/GrCheckbox/index.js +2 -2
- package/dist/components/GrCollapse/chunks/{GrCollapse-CU94BTAR.js → GrCollapse-CPPLh_xU.js} +12 -12
- package/dist/components/GrCollapse/chunks/{GrCollapse-CU94BTAR.js.map → GrCollapse-CPPLh_xU.js.map} +1 -1
- package/dist/components/GrCollapse/index.js +2 -2
- package/dist/components/GrConfirmDialog/chunks/{GrConfirmDialog-Bi2KLumL.js → GrConfirmDialog-D8CkOtqv.js} +20 -14
- package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-D8CkOtqv.js.map +1 -0
- package/dist/components/GrConfirmDialog/index.js +2 -2
- package/dist/components/GrDataTable/chunks/{GrDataTable-ClcYiyc8.js → GrDataTable-Ds5OeGat.js} +49 -23
- package/dist/components/GrDataTable/chunks/GrDataTable-Ds5OeGat.js.map +1 -0
- package/dist/components/GrDataTable/index.js +2 -2
- package/dist/components/GrDialog/chunks/{GrDialog-CxK4Lj4F.js → GrDialog-Ctucxju9.js} +14 -12
- package/dist/components/GrDialog/chunks/GrDialog-Ctucxju9.js.map +1 -0
- package/dist/components/GrDialog/index.js +3 -3
- package/dist/components/GrDialogService/chunks/GrDialogService-CU1Fbonc.js +425 -0
- package/dist/components/GrDialogService/chunks/GrDialogService-CU1Fbonc.js.map +1 -0
- package/dist/components/GrDialogService/index.js +3 -0
- package/dist/components/GrDivider/chunks/GrDivider-5bcE-BB4.js +54 -0
- package/dist/components/GrDivider/chunks/GrDivider-5bcE-BB4.js.map +1 -0
- package/dist/components/GrDivider/index.js +3 -0
- package/dist/components/GrDrawer/chunks/{GrDrawer-BW3wtI7h.js → GrDrawer-SLGKCY2A.js} +54 -26
- package/dist/components/GrDrawer/chunks/GrDrawer-SLGKCY2A.js.map +1 -0
- package/dist/components/GrDrawer/index.js +2 -2
- package/dist/components/GrDropdown/chunks/GrDropdown-BnDMYP8v.js +181 -0
- package/dist/components/GrDropdown/chunks/GrDropdown-BnDMYP8v.js.map +1 -0
- package/dist/components/GrDropdown/index.js +2 -2
- package/dist/components/GrDropdownMenu/chunks/{GrDropdownMenu-CJom_-c2.js → GrDropdownMenu--g9Vofcq.js} +10 -10
- package/dist/components/GrDropdownMenu/chunks/{GrDropdownMenu-CJom_-c2.js.map → GrDropdownMenu--g9Vofcq.js.map} +1 -1
- package/dist/components/GrDropdownMenu/index.js +2 -2
- package/dist/components/GrEmptyState/chunks/{GrEmptyState-yOuZW7-t.js → GrEmptyState-CA3BiTV7.js} +3 -3
- package/dist/components/GrEmptyState/chunks/{GrEmptyState-yOuZW7-t.js.map → GrEmptyState-CA3BiTV7.js.map} +1 -1
- package/dist/components/GrEmptyState/index.js +2 -2
- package/dist/components/GrFileUpload/chunks/{GrFileUpload-CBKK3dgC.js → GrFileUpload-DvWPpiJS.js} +26 -23
- package/dist/components/GrFileUpload/chunks/GrFileUpload-DvWPpiJS.js.map +1 -0
- package/dist/components/GrFileUpload/index.js +3 -3
- package/dist/components/GrFormField/chunks/GrFormField-DnfMHx_U.js +73 -0
- package/dist/components/GrFormField/chunks/GrFormField-DnfMHx_U.js.map +1 -0
- package/dist/components/GrFormField/index.js +4 -3
- package/dist/components/GrFormFile/chunks/{GrFormFile-CkR6cYqf.js → GrFormFile-CXcqqdvV.js} +38 -31
- package/dist/components/GrFormFile/chunks/GrFormFile-CXcqqdvV.js.map +1 -0
- package/dist/components/GrFormFile/index.js +2 -2
- package/dist/components/GrFormSection/chunks/{GrFormSection-dbyzqxYk.js → GrFormSection-Ce21jcgo.js} +1 -1
- package/dist/components/GrFormSection/chunks/{GrFormSection-dbyzqxYk.js.map → GrFormSection-Ce21jcgo.js.map} +1 -1
- package/dist/components/GrFormSection/index.js +2 -2
- package/dist/components/GrIcon/chunks/{GrIcon-BV7RBU_0.js → GrIcon-D9AWQLk2.js} +3 -3
- package/dist/components/GrIcon/chunks/{GrIcon-BV7RBU_0.js.map → GrIcon-D9AWQLk2.js.map} +1 -1
- package/dist/components/GrIcon/index.js +2 -2
- package/dist/components/GrImageViewer/chunks/GrImageViewer-Dla9IBkd.js +650 -0
- package/dist/components/GrImageViewer/chunks/GrImageViewer-Dla9IBkd.js.map +1 -0
- package/dist/components/GrImageViewer/index.js +2 -2
- package/dist/components/GrInput/chunks/GrInput-B8dd3JaA.js +334 -0
- package/dist/components/GrInput/chunks/GrInput-B8dd3JaA.js.map +1 -0
- package/dist/components/GrInput/index.js +2 -2
- package/dist/components/GrInputTag/chunks/{GrInputTag-g-KdUI_Z.js → GrInputTag-zMgFqp2g.js} +27 -24
- package/dist/components/GrInputTag/chunks/GrInputTag-zMgFqp2g.js.map +1 -0
- package/dist/components/GrInputTag/index.js +2 -2
- package/dist/components/GrKbd/chunks/GrKbd-BEoYxWhE.js +22 -0
- package/dist/components/GrKbd/chunks/GrKbd-BEoYxWhE.js.map +1 -0
- package/dist/components/GrKbd/index.js +3 -0
- package/dist/components/GrLink/chunks/{GrLink-KSTmk9Yq.js → GrLink-CYUe-Q8k.js} +14 -7
- package/dist/components/GrLink/chunks/GrLink-CYUe-Q8k.js.map +1 -0
- package/dist/components/GrLink/index.js +2 -2
- package/dist/components/GrList/chunks/{GrList-CUW2sRm_.js → GrList-Dx772Ns4.js} +1 -1
- package/dist/components/GrList/chunks/{GrList-CUW2sRm_.js.map → GrList-Dx772Ns4.js.map} +1 -1
- package/dist/components/GrList/index.js +2 -2
- package/dist/components/GrLoading/chunks/{GrLoading-mfyfghxs.js → GrLoading--X_7rdbb.js} +7 -7
- package/dist/components/GrLoading/chunks/{GrLoading-mfyfghxs.js.map → GrLoading--X_7rdbb.js.map} +1 -1
- package/dist/components/GrLoading/index.js +2 -2
- package/dist/components/GrModal/chunks/{GrModal-CSOL3fHQ.js → GrModal-C0GZrHN3.js} +9 -62
- package/dist/components/GrModal/chunks/GrModal-C0GZrHN3.js.map +1 -0
- package/dist/components/GrModal/index.js +3 -3
- package/dist/components/GrNavbar/chunks/{GrNavbar-CHxwtFIR.js → GrNavbar-DW3MiIIf.js} +6 -6
- package/dist/components/GrNavbar/chunks/{GrNavbar-CHxwtFIR.js.map → GrNavbar-DW3MiIIf.js.map} +1 -1
- package/dist/components/GrNavbar/index.js +2 -2
- package/dist/components/GrNumberInput/chunks/{GrNumberInput-ClPBwkxx.js → GrNumberInput-DxCEvL7V.js} +144 -72
- package/dist/components/GrNumberInput/chunks/GrNumberInput-DxCEvL7V.js.map +1 -0
- package/dist/components/GrNumberInput/index.js +2 -2
- package/dist/components/GrPagination/chunks/{GrPagination-D2GS0ShQ.js → GrPagination-mlyfLjQY.js} +76 -25
- package/dist/components/GrPagination/chunks/GrPagination-mlyfLjQY.js.map +1 -0
- package/dist/components/GrPagination/index.js +2 -2
- package/dist/components/GrProgressBar/chunks/{GrProgressBar-BBSFpVEq.js → GrProgressBar-CC3z-Zqp.js} +3 -3
- package/dist/components/GrProgressBar/chunks/{GrProgressBar-BBSFpVEq.js.map → GrProgressBar-CC3z-Zqp.js.map} +1 -1
- package/dist/components/GrProgressBar/index.js +2 -2
- package/dist/components/GrPromptDialog/chunks/{GrPromptDialog-D_TFqKsF.js → GrPromptDialog-C-_BMNuY.js} +31 -23
- package/dist/components/GrPromptDialog/chunks/GrPromptDialog-C-_BMNuY.js.map +1 -0
- package/dist/components/GrPromptDialog/index.js +2 -2
- package/dist/components/GrRadio/chunks/{GrRadio-CSbTnrom.js → GrRadio-Dr-pvs_9.js} +6 -6
- package/dist/components/GrRadio/chunks/{GrRadio-CSbTnrom.js.map → GrRadio-Dr-pvs_9.js.map} +1 -1
- package/dist/components/GrRadio/index.js +2 -2
- package/dist/components/GrRadioGroup/chunks/{GrRadioGroup-DsrnTygR.js → GrRadioGroup-nOdvfV_g.js} +3 -3
- package/dist/components/GrRadioGroup/chunks/{GrRadioGroup-DsrnTygR.js.map → GrRadioGroup-nOdvfV_g.js.map} +1 -1
- package/dist/components/GrRadioGroup/index.js +2 -2
- package/dist/components/GrResponseErrorBanner/chunks/{GrResponseErrorBanner-K1uZ1mYD.js → GrResponseErrorBanner-BWJNe2gr.js} +21 -18
- package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-BWJNe2gr.js.map +1 -0
- package/dist/components/GrResponseErrorBanner/chunks/{GrResponseErrorBanner-bM8FC_Bw.js → GrResponseErrorBanner-Cdu9ekK9.js} +5 -5
- package/dist/components/GrResponseErrorBanner/chunks/{GrResponseErrorBanner-bM8FC_Bw.js.map → GrResponseErrorBanner-Cdu9ekK9.js.map} +1 -1
- package/dist/components/GrResponseErrorBanner/index.js +2 -2
- package/dist/components/GrSegmented/chunks/{GrSegmented-DpZGs4VX.js → GrSegmented-C1y0UXpQ.js} +5 -5
- package/dist/components/GrSegmented/chunks/{GrSegmented-DpZGs4VX.js.map → GrSegmented-C1y0UXpQ.js.map} +1 -1
- package/dist/components/GrSegmented/index.js +2 -2
- package/dist/components/GrSelect/chunks/{GrSelect-DSz7jvUb.js → GrSelect-BVCmitqa.js} +227 -87
- package/dist/components/GrSelect/chunks/GrSelect-BVCmitqa.js.map +1 -0
- package/dist/components/GrSelect/index.js +2 -2
- package/dist/components/GrSidebar/chunks/GrSidebar-DkWozzwA.js +238 -0
- package/dist/components/GrSidebar/chunks/GrSidebar-DkWozzwA.js.map +1 -0
- package/dist/components/GrSidebar/index.js +3 -3
- package/dist/components/GrSkeleton/chunks/{GrSkeleton-B05K0QKh.js → GrSkeleton-DsN-_CDZ.js} +1 -1
- package/dist/components/GrSkeleton/chunks/{GrSkeleton-B05K0QKh.js.map → GrSkeleton-DsN-_CDZ.js.map} +1 -1
- package/dist/components/GrSkeleton/index.js +2 -2
- package/dist/components/GrSwitch/chunks/{GrSwitch-CSRtcN5-.js → GrSwitch-DAioyccZ.js} +10 -10
- package/dist/components/GrSwitch/chunks/{GrSwitch-CSRtcN5-.js.map → GrSwitch-DAioyccZ.js.map} +1 -1
- package/dist/components/GrSwitch/index.js +2 -2
- package/dist/components/GrTabPanels/chunks/GrTabPanels-DbKybwe-.js +68 -0
- package/dist/components/GrTabPanels/chunks/GrTabPanels-DbKybwe-.js.map +1 -0
- package/dist/components/GrTabPanels/index.js +3 -0
- package/dist/components/GrTable/chunks/{GrTable-dTWUxzRm.js → GrTable-Db3hRnKA.js} +3 -3
- package/dist/components/GrTable/chunks/{GrTable-dTWUxzRm.js.map → GrTable-Db3hRnKA.js.map} +1 -1
- package/dist/components/GrTable/index.js +2 -2
- package/dist/components/GrTabs/chunks/{GrTabs-BfeVNMFJ.js → GrTabs-DsLwWoRz.js} +9 -4
- package/dist/components/GrTabs/chunks/GrTabs-DsLwWoRz.js.map +1 -0
- package/dist/components/GrTabs/index.js +2 -2
- package/dist/components/GrTextarea/chunks/{GrTextarea-CBBzpF2S.js → GrTextarea-CKukGlNl.js} +17 -7
- package/dist/components/GrTextarea/chunks/GrTextarea-CKukGlNl.js.map +1 -0
- package/dist/components/GrTextarea/index.js +2 -2
- package/dist/components/GrToaster/chunks/GrToaster-L2cu6cSR.js +189 -0
- package/dist/components/GrToaster/chunks/GrToaster-L2cu6cSR.js.map +1 -0
- package/dist/components/GrToaster/index.js +2 -2
- package/dist/components/GrTooltip/chunks/{GrTooltip-BC-40SA5.js → GrTooltip-BeyZ8ssR.js} +10 -10
- package/dist/components/GrTooltip/chunks/{GrTooltip-BC-40SA5.js.map → GrTooltip-BeyZ8ssR.js.map} +1 -1
- package/dist/components/GrTooltip/index.js +2 -2
- package/dist/components/GrTree/chunks/{GrTree-uZr5SyQI.js → GrTree-B2_yW6g1.js} +145 -41
- package/dist/components/GrTree/chunks/GrTree-B2_yW6g1.js.map +1 -0
- package/dist/components/GrTree/index.js +2 -2
- package/dist/components/GrTreeSelect/chunks/{GrTreeSelect-CytivcCa.js → GrTreeSelect-0aM62xyu.js} +16 -16
- package/dist/components/GrTreeSelect/chunks/{GrTreeSelect-CytivcCa.js.map → GrTreeSelect-0aM62xyu.js.map} +1 -1
- package/dist/components/GrTreeSelect/index.js +2 -2
- package/dist/composables/useTheme.js +48 -8
- package/dist/composables/useTheme.js.map +1 -1
- package/dist/composables/useToast.js +88 -26
- package/dist/composables/useToast.js.map +1 -1
- package/dist/directives/autofocus.js.map +1 -1
- package/dist/directives/autosize.js.map +1 -1
- package/dist/directives/clickOutside.js.map +1 -1
- package/dist/directives/dropzone.js +6 -5
- package/dist/directives/dropzone.js.map +1 -1
- package/dist/directives/hotkey.js +24 -7
- package/dist/directives/hotkey.js.map +1 -1
- package/dist/directives/loading.js +2 -2
- package/dist/directives/loading.js.map +1 -1
- package/dist/fileValidation/index.js +1 -1
- package/dist/granular-provider-node.js +7 -7
- package/dist/granular-provider-node.js.map +1 -1
- package/dist/granular-provider.js +1 -1
- package/dist/granular-provider.js.map +1 -1
- package/dist/i18n/all.js +1 -1
- package/dist/i18n/all.js.map +1 -1
- package/dist/i18n/index.js +2 -2
- package/dist/index.js +116 -534
- package/dist/index.js.map +1 -1
- package/dist/styles/base.css +54 -0
- package/dist/styles/index.css +15 -0
- package/dist/styles/preflight.css +33 -0
- package/dist/styles/themes/dark.css +107 -0
- package/dist/styles/themes/light.css +98 -0
- package/dist/styles/tokens.css +135 -0
- package/dist/types/src/components/GrButton/GrButton.vue.d.ts +25 -2
- package/dist/types/src/components/GrCheckbox/GrCheckbox.vue.d.ts +7 -2
- package/dist/types/src/components/GrConfirmDialog/GrConfirmDialog.vue.d.ts +8 -8
- package/dist/types/src/components/GrDataTable/GrDataTable.vue.d.ts +29 -5
- package/dist/types/src/components/GrDialog/GrDialog.vue.d.ts +2 -2
- package/dist/types/src/components/GrDialog/GrDialogHeader.vue.d.ts +2 -2
- package/dist/types/src/components/GrDivider/GrDivider.vue.d.ts +58 -0
- package/dist/types/src/components/GrDivider/config.d.ts +1 -0
- package/dist/types/src/components/GrDivider/index.d.ts +4 -0
- package/dist/types/src/components/GrDrawer/GrDrawer.vue.d.ts +6 -6
- package/dist/types/src/components/GrDropdown/GrDropdown.vue.d.ts +7 -0
- package/dist/types/src/components/GrDropdownMenu/GrDropdownMenu.vue.d.ts +6 -0
- package/dist/types/src/components/GrFileUpload/GrFileUpload.vue.d.ts +4 -4
- package/dist/types/src/components/GrFormField/GrFormField.vue.d.ts +15 -2
- package/dist/types/src/components/GrFormField/context.d.ts +20 -0
- package/dist/types/src/components/GrFormField/index.d.ts +1 -0
- package/dist/types/src/components/GrFormFile/GrFormFile.vue.d.ts +11 -11
- package/dist/types/src/components/GrImageViewer/GrImageViewer.vue.d.ts +22 -18
- package/dist/types/src/components/GrImageViewer/composables/useViewerKeyboard.d.ts +20 -0
- package/dist/types/src/components/GrImageViewer/composables/useWheelGesture.d.ts +16 -0
- package/dist/types/src/components/GrImageViewer/composables/useZoomPan.d.ts +50 -0
- package/dist/types/src/components/GrInput/GrInput.vue.d.ts +55 -2
- package/dist/types/src/components/GrInput/grInputStyles.d.ts +3 -3
- package/dist/types/src/components/GrInputTag/GrInputTag.vue.d.ts +2 -2
- package/dist/types/src/components/GrKbd/GrKbd.vue.d.ts +46 -0
- package/dist/types/src/components/GrKbd/config.d.ts +1 -0
- package/dist/types/src/components/GrKbd/index.d.ts +4 -0
- package/dist/types/src/components/GrLink/GrLink.vue.d.ts +12 -6
- package/dist/types/src/components/GrLink/grLinkStyles.d.ts +31 -3
- package/dist/types/src/components/GrLink/index.d.ts +1 -1
- package/dist/types/src/components/GrLoading/GrLoading.vue.d.ts +1 -1
- package/dist/types/src/components/GrModal/grModalStyles.d.ts +1 -1
- package/dist/types/src/components/GrNumberInput/GrNumberInput.vue.d.ts +33 -4
- package/dist/types/src/components/GrPagination/GrPagination.vue.d.ts +13 -1
- package/dist/types/src/components/GrPromptDialog/GrPromptDialog.vue.d.ts +12 -12
- package/dist/types/src/components/GrSegmented/GrSegmented.vue.d.ts +1 -1
- package/dist/types/src/components/GrSegmented/grSegmentedStyles.d.ts +5 -5
- package/dist/types/src/components/GrSelect/GrSelect.vue.d.ts +3 -3
- package/dist/types/src/components/GrSelect/grSelectStyles.d.ts +2 -1
- package/dist/types/src/components/GrSidebar/GrSidebar.vue.d.ts +33 -10
- package/dist/types/src/components/GrSidebar/GrSidebarItem.vue.d.ts +64 -0
- package/dist/types/src/components/GrSidebar/index.d.ts +1 -0
- package/dist/types/src/components/GrSidebar/sidebarContext.d.ts +9 -0
- package/dist/types/src/components/GrSwitch/GrSwitch.vue.d.ts +1 -1
- package/dist/types/src/components/GrSwitch/grSwitchStyles.d.ts +2 -2
- package/dist/types/src/components/GrTabPanels/GrTabPanel.vue.d.ts +46 -0
- package/dist/types/src/components/GrTabPanels/GrTabPanels.vue.d.ts +51 -0
- package/dist/types/src/components/GrTabPanels/config.d.ts +5 -0
- package/dist/types/src/components/GrTabPanels/context.d.ts +9 -0
- package/dist/types/src/components/GrTabPanels/index.d.ts +6 -0
- package/dist/types/src/components/GrTabs/GrTabs.vue.d.ts +6 -0
- package/dist/types/src/components/GrToaster/GrToaster.vue.d.ts +9 -4
- package/dist/types/src/components/GrTree/GrTree.vue.d.ts +1 -1
- package/dist/types/src/components/GrTree/grTreeInteractionContext.d.ts +2 -0
- package/dist/types/src/components/GrTreeSelect/GrTreeSelect.vue.d.ts +2 -2
- package/dist/types/src/components/GrTreeSelect/grTreeSelectStyles.d.ts +1 -1
- package/dist/types/src/components/GrTreeSelect/grTreeSelectTypes.d.ts +1 -1
- package/dist/types/src/composables/internal/useAddonMeasurement.d.ts +18 -0
- package/dist/types/src/composables/internal/useEscapeToClose.d.ts +11 -0
- package/dist/types/src/composables/internal/useScrollLock.d.ts +24 -0
- package/dist/types/src/composables/useTheme.d.ts +5 -2
- package/dist/types/src/composables/useToast.d.ts +33 -1
- package/dist/types/src/directives/hotkey.d.ts +14 -0
- package/dist/types/src/granular-provider/shared.d.ts +4 -3
- package/dist/types/src/i18n/messages/en.d.ts +130 -0
- package/dist/types/src/i18n/messages/es.d.ts +130 -0
- package/dist/types/src/i18n/messages/ru.d.ts +130 -0
- package/dist/types/src/index.d.ts +5 -2
- package/dist/vue/index.js.map +1 -1
- package/dist/web-types.json +4922 -0
- package/package.json +38 -20
- package/dist/chunks/arrow-up-DZdIrpaF.js.map +0 -1
- package/dist/chunks/config-A-iei0Ux.js.map +0 -1
- package/dist/chunks/config-B0uUCaJW.js.map +0 -1
- package/dist/chunks/config-BLa1TEGm2.js.map +0 -1
- package/dist/chunks/config-BduXEXjt.js.map +0 -1
- package/dist/chunks/config-BuoIngj32.js.map +0 -1
- package/dist/chunks/config-C8MM2Dg0.js.map +0 -1
- package/dist/chunks/config-CWTfyPNI.js.map +0 -1
- package/dist/chunks/config-D_Pafsjq2.js.map +0 -1
- package/dist/chunks/config-DkeLkzxj2.js.map +0 -1
- package/dist/chunks/config-NkbzVFZo.js +0 -59
- package/dist/chunks/config-NkbzVFZo.js.map +0 -1
- package/dist/chunks/config-RjfJFv1Y.js.map +0 -1
- package/dist/chunks/config-hSlCXHoG.js.map +0 -1
- package/dist/chunks/config-nrOj9p6I.js.map +0 -1
- package/dist/chunks/en-B_fSdoTi.js +0 -72
- package/dist/chunks/en-B_fSdoTi.js.map +0 -1
- package/dist/chunks/es-DKP6fLir.js +0 -72
- package/dist/chunks/es-DKP6fLir.js.map +0 -1
- package/dist/chunks/grBadgeStyles-Cq0hH2Ls.js.map +0 -1
- package/dist/chunks/grButtonStyles-DKuXUemw.js +0 -191
- package/dist/chunks/grButtonStyles-DKuXUemw.js.map +0 -1
- package/dist/chunks/grSelectStyles-AjWWl007.js.map +0 -1
- package/dist/chunks/grStyle-D-gPHdyW.js.map +0 -1
- package/dist/chunks/info-C0bHmdZq.js.map +0 -1
- package/dist/chunks/loader-circle-BUntgosj.js.map +0 -1
- package/dist/chunks/ru-S6VlnurJ.js +0 -72
- package/dist/chunks/ru-S6VlnurJ.js.map +0 -1
- package/dist/chunks/safelist-_UVzJrgE2.js.map +0 -1
- package/dist/chunks/shared-DpjTvFno.js +0 -169
- package/dist/chunks/shared-DpjTvFno.js.map +0 -1
- package/dist/chunks/transition-mJ3PZCHH.js.map +0 -1
- package/dist/chunks/x-Pa6C2hwi.js.map +0 -1
- package/dist/chunks/x-circle-DQSlBLmX.js.map +0 -1
- package/dist/components/GrAlert/chunks/GrAlert-HyCjYJeL.js.map +0 -1
- package/dist/components/GrButton/chunks/GrButton-CPDKonoB.js +0 -83
- package/dist/components/GrButton/chunks/GrButton-CPDKonoB.js.map +0 -1
- package/dist/components/GrButtonGroup/chunks/GrButtonGroup-CPOH6V-P.js.map +0 -1
- package/dist/components/GrCard/chunks/GrCard-6yk1RRAQ.js.map +0 -1
- package/dist/components/GrCheckbox/chunks/GrCheckbox-Bt3d7ckE.js.map +0 -1
- package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-Bi2KLumL.js.map +0 -1
- package/dist/components/GrDataTable/chunks/GrDataTable-ClcYiyc8.js.map +0 -1
- package/dist/components/GrDialog/chunks/GrDialog-CxK4Lj4F.js.map +0 -1
- package/dist/components/GrDrawer/chunks/GrDrawer-BW3wtI7h.js.map +0 -1
- package/dist/components/GrDropdown/chunks/GrDropdown-BGKeEfZ1.js +0 -105
- package/dist/components/GrDropdown/chunks/GrDropdown-BGKeEfZ1.js.map +0 -1
- package/dist/components/GrFileUpload/chunks/GrFileUpload-CBKK3dgC.js.map +0 -1
- package/dist/components/GrFormField/chunks/GrFormField-U7c_aDPJ.js +0 -35
- package/dist/components/GrFormField/chunks/GrFormField-U7c_aDPJ.js.map +0 -1
- package/dist/components/GrFormFile/chunks/GrFormFile-CkR6cYqf.js.map +0 -1
- package/dist/components/GrImageViewer/chunks/GrImageViewer-BG40DsHa.js +0 -550
- package/dist/components/GrImageViewer/chunks/GrImageViewer-BG40DsHa.js.map +0 -1
- package/dist/components/GrInput/chunks/GrInput-gwFQ1sk4.js +0 -211
- package/dist/components/GrInput/chunks/GrInput-gwFQ1sk4.js.map +0 -1
- package/dist/components/GrInputTag/chunks/GrInputTag-g-KdUI_Z.js.map +0 -1
- package/dist/components/GrLink/chunks/GrLink-KSTmk9Yq.js.map +0 -1
- package/dist/components/GrModal/chunks/GrModal-CSOL3fHQ.js.map +0 -1
- package/dist/components/GrNumberInput/chunks/GrNumberInput-ClPBwkxx.js.map +0 -1
- package/dist/components/GrPagination/chunks/GrPagination-D2GS0ShQ.js.map +0 -1
- package/dist/components/GrPromptDialog/chunks/GrPromptDialog-D_TFqKsF.js.map +0 -1
- package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-K1uZ1mYD.js.map +0 -1
- package/dist/components/GrSelect/chunks/GrSelect-DSz7jvUb.js.map +0 -1
- package/dist/components/GrSidebar/chunks/GrSidebar-BW8LRMZ-.js +0 -44
- package/dist/components/GrSidebar/chunks/GrSidebar-BW8LRMZ-.js.map +0 -1
- package/dist/components/GrTabs/chunks/GrTabs-BfeVNMFJ.js.map +0 -1
- package/dist/components/GrTextarea/chunks/GrTextarea-CBBzpF2S.js.map +0 -1
- package/dist/components/GrToaster/chunks/GrToaster-C6_iHk2J.js +0 -172
- package/dist/components/GrToaster/chunks/GrToaster-C6_iHk2J.js.map +0 -1
- package/dist/components/GrTree/chunks/GrTree-uZr5SyQI.js.map +0 -1
- /package/dist/chunks/{_plugin-vue_export-helper-DQR7Sy7Q.js → _plugin-vue_export-helper-BOaGB7Aw.js} +0 -0
- /package/dist/chunks/{adapter-BqqjEZGU.js → adapter-CAOxmn2G.js} +0 -0
- /package/dist/chunks/{arrow-up-DZdIrpaF.js → arrow-up-C_G4jg8M.js} +0 -0
- /package/dist/chunks/{classTokens-BPeBXNzu.js → classTokens-BzazaERD.js} +0 -0
- /package/dist/chunks/{config-DZrlovR42.js → config-8Pcutu1j2.js} +0 -0
- /package/dist/chunks/{config-VJuoznpH.js → config-B0qIpo8m.js} +0 -0
- /package/dist/chunks/{config-DbghHyY_.js → config-BEegFP74.js} +0 -0
- /package/dist/chunks/{config-BeBsN0c12.js → config-BLHqZhy-2.js} +0 -0
- /package/dist/chunks/{config-BV4vBzdm.js → config-BNu8lFQB.js} +0 -0
- /package/dist/chunks/{config-DhQc1TRY.js → config-BUHuGBik.js} +0 -0
- /package/dist/chunks/{config-CPSdAjUi.js → config-BWGGp7uV.js} +0 -0
- /package/dist/chunks/{config-BduXEXjt.js → config-BXtAmU3s2.js} +0 -0
- /package/dist/chunks/{config-CzgNEHKi.js → config-Bah4oHwL.js} +0 -0
- /package/dist/chunks/{config-lMDE_8A5.js → config-C86UzUYf.js} +0 -0
- /package/dist/chunks/{config-BgBWt9-A.js → config-C9AcVDkv.js} +0 -0
- /package/dist/chunks/{config-BuoIngj32.js → config-CGHLoBlH.js} +0 -0
- /package/dist/chunks/{config-ChQxl75m.js → config-CThzliFi.js} +0 -0
- /package/dist/chunks/{config-DDwBSoc_.js → config-Cb2PAlSD.js} +0 -0
- /package/dist/chunks/{config-C5-ujXCI.js → config-D7GZO-Dx.js} +0 -0
- /package/dist/chunks/{config-CUwF4E4R.js → config-DBmdgoVf.js} +0 -0
- /package/dist/chunks/{config-C9MblwGq.js → config-DICOd-2X.js} +0 -0
- /package/dist/chunks/{config-BLa1TEGm2.js → config-DpqOnJiz.js} +0 -0
- /package/dist/chunks/{config-V3LF-b_F.js → config-Dxuwwepq.js} +0 -0
- /package/dist/chunks/{config-Doa_gU40.js → config-HZto2PVy.js} +0 -0
- /package/dist/chunks/{config-Dl5aZ5VR.js → config-JOtB4mzs.js} +0 -0
- /package/dist/chunks/{config-CWTfyPNI.js → config-JpHA4Xx02.js} +0 -0
- /package/dist/chunks/{config-B3dn-gdC.js → config-PFg39mYo.js} +0 -0
- /package/dist/chunks/{config-Bh4NWWsQ.js → config-QaIc_gRa.js} +0 -0
- /package/dist/chunks/{config-vcDVCYXo.js → config-U4m9PSql.js} +0 -0
- /package/dist/chunks/{config-C_q_4FrU.js → config-ZiXWIRBX.js} +0 -0
- /package/dist/chunks/{config-DDUPnue12.js → config-ipvU0lzP2.js} +0 -0
- /package/dist/chunks/{config-D5ek7VSi.js → config-xR4XVmcy.js} +0 -0
- /package/dist/chunks/{dialogShared-BtXUk6Zc.js → dialogShared-CxW62PQE.js} +0 -0
- /package/dist/chunks/{grLoadingStyles-DmI-SJ3i.js → grLoadingStyles-R5sreH__.js} +0 -0
- /package/dist/chunks/{info-C0bHmdZq.js → info-Be2OccTu.js} +0 -0
- /package/dist/chunks/{loader-circle-BUntgosj.js → loader-circle-CfVLz7lb.js} +0 -0
- /package/dist/chunks/{x-Pa6C2hwi.js → x-2KXnqxiD.js} +0 -0
- /package/dist/chunks/{x-circle-DQSlBLmX.js → x-circle-BCBURwyX.js} +0 -0
- /package/dist/components/GrBottomNav/chunks/{GrBottomNav-XPHwd7UQ.js → GrBottomNav-usuMgG8_.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"granularityI18n-
|
|
1
|
+
{"version":3,"file":"granularityI18n-DoV7Ca2m.js","names":[],"sources":["../../src/internal/granularityI18n.ts"],"sourcesContent":["import { getCurrentInstance, inject, type AppContext } from 'vue'\n\nimport { GRANULARITY_I18N_KEY, type GranularityI18nAdapter } from '../i18n/adapter'\n\nexport type GranularityI18nLike = GranularityI18nAdapter\n\n/**\n * Ключ provide/inject из `@feugene/fint-i18n` (`Symbol.for(\"FintI18n\")`).\n *\n * Дублируем константу здесь, чтобы не делать `@feugene/fint-i18n` обязательной\n * runtime-зависимостью пакета: достаточно, чтобы приложение само установило\n * fint-i18n через `installI18n(app, i18n)` — символ глобальный (Symbol.for),\n * поэтому ключи будут совпадать без прямого импорта.\n */\nconst FINT_I18N_KEY: symbol = Symbol.for('FintI18n')\n\nfunction isGranularityI18nLike(value: unknown): value is GranularityI18nLike {\n return typeof (value as GranularityI18nLike | null)?.t === 'function'\n}\n\nexport function resolveGranularityI18n(context?: AppContext | GranularityI18nLike | null): GranularityI18nLike | null {\n if (isGranularityI18nLike(context)) {\n return context\n }\n\n const provides = context?.provides\n\n if (provides) {\n const fromGranularity = provides[GRANULARITY_I18N_KEY as symbol] as GranularityI18nLike | null | undefined\n if (isGranularityI18nLike(fromGranularity)) {\n return fromGranularity\n }\n\n const fromFint = provides[FINT_I18N_KEY] as GranularityI18nLike | null | undefined\n if (isGranularityI18nLike(fromFint)) {\n return fromFint\n }\n\n return null\n }\n\n if (!getCurrentInstance()) {\n return null\n }\n\n const fromGranularity = inject<GranularityI18nLike | null>(GRANULARITY_I18N_KEY, null)\n if (isGranularityI18nLike(fromGranularity)) {\n return fromGranularity\n }\n\n const fromFint = inject<GranularityI18nLike | null>(FINT_I18N_KEY, null)\n if (isGranularityI18nLike(fromFint)) {\n return fromFint\n }\n\n return null\n}\n\n// Совпадает с синтаксисом плейсхолдеров `@feugene/fint-i18n` (`{name}`, экранирование\n// `{{`/`}}` — см. docs/en/api.md → \"Template Interpolation\"), чтобы fallback-текст вёл\n// себя идентично реальному переводу, когда параметры переданы.\nconst FALLBACK_PLACEHOLDER_RE = /\\{\\{|\\}\\}|\\{([a-zA-Z0-9_.-]+)\\}/g\n\n/**\n * Интерполирует `{name}`-плейсхолдеры во fallback-строке. Нужен, чтобы `t(key, fallback,\n * params)` корректно подставлял параметры и тогда, когда i18n не подключён (или ключ не\n * найден) — иначе вызывающий код получил бы сырой `'Add \"{value}\"'` вместо `'Add \"foo\"'`.\n */\nfunction interpolateFallback(template: string, params?: Record<string, any>): string {\n // `{{`/`}}`-экранирование обязано работать независимо от того, переданы ли `params`\n // (совпадает с fint-i18n: `t('literal')` без параметров тоже разэкранирует `{{name}}`).\n // Ранний выход по `!params` здесь недопустим.\n return template.replace(FALLBACK_PLACEHOLDER_RE, (match, name: string | undefined) => {\n if (match === '{{') return '{'\n if (match === '}}') return '}'\n if (name === undefined) return match\n\n const value = params?.[name]\n return value == null ? match : String(value)\n })\n}\n\nexport function useGranularityTranslations(context?: AppContext | GranularityI18nLike | null) {\n const i18n = resolveGranularityI18n(context)\n\n const t = (key: string, fallback: string, params?: Record<string, any>): string => {\n if (!i18n) {\n return interpolateFallback(fallback, params)\n }\n\n const result = i18n.t(key, params)\n return result === key ? interpolateFallback(fallback, params) : result\n }\n\n return {\n i18n,\n t,\n }\n}"],"mappings":";;;;;;;;;;;AAcA,IAAM,gBAAwB,OAAO,IAAI,UAAU;AAEnD,SAAS,sBAAsB,OAA8C;CAC3E,OAAO,OAAQ,OAAsC,MAAM;AAC7D;AAEA,SAAgB,uBAAuB,SAA+E;CACpH,IAAI,sBAAsB,OAAO,GAC/B,OAAO;CAGT,MAAM,WAAW,SAAS;CAE1B,IAAI,UAAU;EACZ,MAAM,kBAAkB,SAAS;EACjC,IAAI,sBAAsB,eAAe,GACvC,OAAO;EAGT,MAAM,WAAW,SAAS;EAC1B,IAAI,sBAAsB,QAAQ,GAChC,OAAO;EAGT,OAAO;CACT;CAEA,IAAI,CAAC,mBAAmB,GACtB,OAAO;CAGT,MAAM,kBAAkB,OAAmC,sBAAsB,IAAI;CACrF,IAAI,sBAAsB,eAAe,GACvC,OAAO;CAGT,MAAM,WAAW,OAAmC,eAAe,IAAI;CACvE,IAAI,sBAAsB,QAAQ,GAChC,OAAO;CAGT,OAAO;AACT;AAKA,IAAM,0BAA0B;;;;;;AAOhC,SAAS,oBAAoB,UAAkB,QAAsC;CAInF,OAAO,SAAS,QAAQ,0BAA0B,OAAO,SAA6B;EACpF,IAAI,UAAU,MAAM,OAAO;EAC3B,IAAI,UAAU,MAAM,OAAO;EAC3B,IAAI,SAAS,KAAA,GAAW,OAAO;EAE/B,MAAM,QAAQ,SAAS;EACvB,OAAO,SAAS,OAAO,QAAQ,OAAO,KAAK;CAC7C,CAAC;AACH;AAEA,SAAgB,2BAA2B,SAAmD;CAC5F,MAAM,OAAO,uBAAuB,OAAO;CAE3C,MAAM,KAAK,KAAa,UAAkB,WAAyC;EACjF,IAAI,CAAC,MACH,OAAO,oBAAoB,UAAU,MAAM;EAG7C,MAAM,SAAS,KAAK,EAAE,KAAK,MAAM;EACjC,OAAO,WAAW,MAAM,oBAAoB,UAAU,MAAM,IAAI;CAClE;CAEA,OAAO;EACL;EACA;CACF;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info-Be2OccTu.js","names":[],"sources":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader-circle-CfVLz7lb.js","names":[],"sources":[],"mappings":""}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
//#region src/i18n/locales/ru.json
|
|
2
|
+
var common = {
|
|
3
|
+
"confirm": "Подтвердить",
|
|
4
|
+
"cancel": "Отмена",
|
|
5
|
+
"add": "Добавить",
|
|
6
|
+
"clear": "Очистить",
|
|
7
|
+
"close": "Закрыть"
|
|
8
|
+
};
|
|
9
|
+
var loading = { "defaultText": "Загрузка..." };
|
|
10
|
+
var treeSelect = {
|
|
11
|
+
"filterPlaceholder": "Поиск…",
|
|
12
|
+
"empty": "Нет данных"
|
|
13
|
+
};
|
|
14
|
+
var tree = {
|
|
15
|
+
"drag": "Перетащить",
|
|
16
|
+
"expand": "Развернуть",
|
|
17
|
+
"collapse": "Свернуть"
|
|
18
|
+
};
|
|
19
|
+
var select = {
|
|
20
|
+
"customValuePlaceholder": "Добавить значение…",
|
|
21
|
+
"addOption": "Добавить «{value}»",
|
|
22
|
+
"clearOption": "Не выбрано"
|
|
23
|
+
};
|
|
24
|
+
var dialog = {
|
|
25
|
+
"confirm": { "title": "Подтверждение" },
|
|
26
|
+
"prompt": {
|
|
27
|
+
"title": "Введите значение",
|
|
28
|
+
"label": "Значение",
|
|
29
|
+
"required": "Введите значение."
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
var pagination = {
|
|
33
|
+
"label": "Пагинация",
|
|
34
|
+
"pageSize": "Размер страницы",
|
|
35
|
+
"prev": "Назад",
|
|
36
|
+
"next": "Вперёд",
|
|
37
|
+
"page": "Страница {n}",
|
|
38
|
+
"first": "Первая страница",
|
|
39
|
+
"last": "Последняя страница"
|
|
40
|
+
};
|
|
41
|
+
var navbar = { "openMenu": "Открыть меню" };
|
|
42
|
+
var responseError = {
|
|
43
|
+
"networkTitle": "Нет связи с сервером",
|
|
44
|
+
"networkMessage": "Проверьте подключение к интернету и попробуйте ещё раз.",
|
|
45
|
+
"abortedTitle": "Запрос отменён",
|
|
46
|
+
"abortedMessage": "Запрос был отменён.",
|
|
47
|
+
"validationTitle": "Проверьте данные",
|
|
48
|
+
"validationMessage": "Сервер вернул ошибку валидации. Исправьте поля и попробуйте снова.",
|
|
49
|
+
"clientTitle": "Ошибка запроса",
|
|
50
|
+
"clientMessage": "Сервер отклонил запрос.",
|
|
51
|
+
"serverTitle": "Ошибка сервера",
|
|
52
|
+
"serverMessage": "Произошла ошибка на сервере. Попробуйте ещё раз.",
|
|
53
|
+
"unknownTitle": "Что-то пошло не так",
|
|
54
|
+
"unknownMessage": "Не удалось выполнить операцию. Попробуйте ещё раз.",
|
|
55
|
+
"retryLabel": "Повторить",
|
|
56
|
+
"dismissLabel": "Скрыть"
|
|
57
|
+
};
|
|
58
|
+
var colors = {
|
|
59
|
+
"neutral": "Нейтральный",
|
|
60
|
+
"success": "Успех",
|
|
61
|
+
"warning": "Предупреждение",
|
|
62
|
+
"danger": "Опасность",
|
|
63
|
+
"info": "Инфо",
|
|
64
|
+
"primary": "Primary",
|
|
65
|
+
"slate": "Сланцевый",
|
|
66
|
+
"azure": "Лазурный"
|
|
67
|
+
};
|
|
68
|
+
var drawer = { "title": "Панель" };
|
|
69
|
+
var numberInput = {
|
|
70
|
+
"increase": "Увеличить",
|
|
71
|
+
"decrease": "Уменьшить"
|
|
72
|
+
};
|
|
73
|
+
var toaster = {
|
|
74
|
+
"dismiss": "Закрыть",
|
|
75
|
+
"region": "Уведомления"
|
|
76
|
+
};
|
|
77
|
+
var inputTag = { "removeTag": "Удалить тег" };
|
|
78
|
+
var fileUpload = {
|
|
79
|
+
"placeholder": "Перетащите файлы сюда или нажмите для выбора",
|
|
80
|
+
"progress": "Прогресс загрузки"
|
|
81
|
+
};
|
|
82
|
+
var formFile = {
|
|
83
|
+
"upload": "Загрузить файл",
|
|
84
|
+
"change": "Заменить файл",
|
|
85
|
+
"remove": "Удалить",
|
|
86
|
+
"clearAll": "Очистить всё",
|
|
87
|
+
"placeholder": "Файлы не выбраны",
|
|
88
|
+
"validateError": "Не удалось проверить перетащенные файлы"
|
|
89
|
+
};
|
|
90
|
+
var imageViewer = {
|
|
91
|
+
"close": "Закрыть просмотрщик",
|
|
92
|
+
"prev": "Предыдущее изображение",
|
|
93
|
+
"next": "Следующее изображение",
|
|
94
|
+
"zoomIn": "Увеличить",
|
|
95
|
+
"zoomOut": "Уменьшить",
|
|
96
|
+
"resetZoom": "Сбросить масштаб",
|
|
97
|
+
"rotateLeft": "Повернуть влево",
|
|
98
|
+
"rotateRight": "Повернуть вправо",
|
|
99
|
+
"empty": "Нет изображения"
|
|
100
|
+
};
|
|
101
|
+
var formErrorBanner = {
|
|
102
|
+
"validationTitle": "Проверьте поля формы",
|
|
103
|
+
"validationMessage": "Сервер отклонил данные. Исправьте выделенные поля и попробуйте снова.",
|
|
104
|
+
"clientTitle": "Не удалось сохранить",
|
|
105
|
+
"serverTitle": "Ошибка сохранения",
|
|
106
|
+
"serverMessage": "Не удалось сохранить данные. Попробуйте позже."
|
|
107
|
+
};
|
|
108
|
+
var uploadErrorBanner = {
|
|
109
|
+
"networkTitle": "Не удалось загрузить файлы",
|
|
110
|
+
"networkMessage": "Проверьте подключение и попробуйте снова.",
|
|
111
|
+
"validationTitle": "Файлы не прошли проверку",
|
|
112
|
+
"validationMessage": "Некоторые файлы не соответствуют требованиям.",
|
|
113
|
+
"serverTitle": "Ошибка загрузки на сервере",
|
|
114
|
+
"serverMessage": "Сервер не смог обработать загрузку. Попробуйте снова."
|
|
115
|
+
};
|
|
116
|
+
var input = {
|
|
117
|
+
"clear": "Очистить",
|
|
118
|
+
"showPassword": "Показать пароль",
|
|
119
|
+
"hidePassword": "Скрыть пароль"
|
|
120
|
+
};
|
|
121
|
+
var ru_default = {
|
|
122
|
+
common,
|
|
123
|
+
loading,
|
|
124
|
+
treeSelect,
|
|
125
|
+
tree,
|
|
126
|
+
select,
|
|
127
|
+
dialog,
|
|
128
|
+
pagination,
|
|
129
|
+
navbar,
|
|
130
|
+
responseError,
|
|
131
|
+
colors,
|
|
132
|
+
drawer,
|
|
133
|
+
numberInput,
|
|
134
|
+
toaster,
|
|
135
|
+
inputTag,
|
|
136
|
+
fileUpload,
|
|
137
|
+
formFile,
|
|
138
|
+
imageViewer,
|
|
139
|
+
formErrorBanner,
|
|
140
|
+
uploadErrorBanner,
|
|
141
|
+
input
|
|
142
|
+
};
|
|
143
|
+
//#endregion
|
|
144
|
+
export { colors, common, ru_default as default, dialog, drawer, fileUpload, formErrorBanner, formFile, imageViewer, input, inputTag, loading, navbar, numberInput, pagination, responseError, select, toaster, tree, treeSelect, uploadErrorBanner };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ru-Bl8CxpEa.js","names":[],"sources":["../../src/i18n/locales/ru.json"],"sourcesContent":["{\n \"common\": {\n \"confirm\": \"Подтвердить\",\n \"cancel\": \"Отмена\",\n \"add\": \"Добавить\",\n \"clear\": \"Очистить\",\n \"close\": \"Закрыть\"\n },\n \"loading\": {\n \"defaultText\": \"Загрузка...\"\n },\n \"treeSelect\": {\n \"filterPlaceholder\": \"Поиск…\",\n \"empty\": \"Нет данных\"\n },\n \"tree\": {\n \"drag\": \"Перетащить\",\n \"expand\": \"Развернуть\",\n \"collapse\": \"Свернуть\"\n },\n \"select\": {\n \"customValuePlaceholder\": \"Добавить значение…\",\n \"addOption\": \"Добавить «{value}»\",\n \"clearOption\": \"Не выбрано\"\n },\n \"dialog\": {\n \"confirm\": {\n \"title\": \"Подтверждение\"\n },\n \"prompt\": {\n \"title\": \"Введите значение\",\n \"label\": \"Значение\",\n \"required\": \"Введите значение.\"\n }\n },\n \"pagination\": {\n \"label\": \"Пагинация\",\n \"pageSize\": \"Размер страницы\",\n \"prev\": \"Назад\",\n \"next\": \"Вперёд\",\n \"page\": \"Страница {n}\",\n \"first\": \"Первая страница\",\n \"last\": \"Последняя страница\"\n },\n \"navbar\": {\n \"openMenu\": \"Открыть меню\"\n },\n \"responseError\": {\n \"networkTitle\": \"Нет связи с сервером\",\n \"networkMessage\": \"Проверьте подключение к интернету и попробуйте ещё раз.\",\n \"abortedTitle\": \"Запрос отменён\",\n \"abortedMessage\": \"Запрос был отменён.\",\n \"validationTitle\": \"Проверьте данные\",\n \"validationMessage\": \"Сервер вернул ошибку валидации. Исправьте поля и попробуйте снова.\",\n \"clientTitle\": \"Ошибка запроса\",\n \"clientMessage\": \"Сервер отклонил запрос.\",\n \"serverTitle\": \"Ошибка сервера\",\n \"serverMessage\": \"Произошла ошибка на сервере. Попробуйте ещё раз.\",\n \"unknownTitle\": \"Что-то пошло не так\",\n \"unknownMessage\": \"Не удалось выполнить операцию. Попробуйте ещё раз.\",\n \"retryLabel\": \"Повторить\",\n \"dismissLabel\": \"Скрыть\"\n },\n \"colors\": {\n \"neutral\": \"Нейтральный\",\n \"success\": \"Успех\",\n \"warning\": \"Предупреждение\",\n \"danger\": \"Опасность\",\n \"info\": \"Инфо\",\n \"primary\": \"Primary\",\n \"slate\": \"Сланцевый\",\n \"azure\": \"Лазурный\"\n },\n \"drawer\": {\n \"title\": \"Панель\"\n },\n \"numberInput\": {\n \"increase\": \"Увеличить\",\n \"decrease\": \"Уменьшить\"\n },\n \"toaster\": {\n \"dismiss\": \"Закрыть\",\n \"region\": \"Уведомления\"\n },\n \"inputTag\": {\n \"removeTag\": \"Удалить тег\"\n },\n \"fileUpload\": {\n \"placeholder\": \"Перетащите файлы сюда или нажмите для выбора\",\n \"progress\": \"Прогресс загрузки\"\n },\n \"formFile\": {\n \"upload\": \"Загрузить файл\",\n \"change\": \"Заменить файл\",\n \"remove\": \"Удалить\",\n \"clearAll\": \"Очистить всё\",\n \"placeholder\": \"Файлы не выбраны\",\n \"validateError\": \"Не удалось проверить перетащенные файлы\"\n },\n \"imageViewer\": {\n \"close\": \"Закрыть просмотрщик\",\n \"prev\": \"Предыдущее изображение\",\n \"next\": \"Следующее изображение\",\n \"zoomIn\": \"Увеличить\",\n \"zoomOut\": \"Уменьшить\",\n \"resetZoom\": \"Сбросить масштаб\",\n \"rotateLeft\": \"Повернуть влево\",\n \"rotateRight\": \"Повернуть вправо\",\n \"empty\": \"Нет изображения\"\n },\n \"formErrorBanner\": {\n \"validationTitle\": \"Проверьте поля формы\",\n \"validationMessage\": \"Сервер отклонил данные. Исправьте выделенные поля и попробуйте снова.\",\n \"clientTitle\": \"Не удалось сохранить\",\n \"serverTitle\": \"Ошибка сохранения\",\n \"serverMessage\": \"Не удалось сохранить данные. Попробуйте позже.\"\n },\n \"uploadErrorBanner\": {\n \"networkTitle\": \"Не удалось загрузить файлы\",\n \"networkMessage\": \"Проверьте подключение и попробуйте снова.\",\n \"validationTitle\": \"Файлы не прошли проверку\",\n \"validationMessage\": \"Некоторые файлы не соответствуют требованиям.\",\n \"serverTitle\": \"Ошибка загрузки на сервере\",\n \"serverMessage\": \"Сервер не смог обработать загрузку. Попробуйте снова.\"\n },\n \"input\": {\n \"clear\": \"Очистить\",\n \"showPassword\": \"Показать пароль\",\n \"hidePassword\": \"Скрыть пароль\"\n }\n}\n"],"mappings":""}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { t as splitClassTokens } from "./classTokens-
|
|
2
|
-
import { n as DEFAULT_GR_DIALOG_FOOTER_CONFIG, r as DEFAULT_GR_DIALOG_HEADER_CONFIG, t as DEFAULT_GR_DIALOG_BODY_CONFIG } from "./dialogShared-
|
|
1
|
+
import { t as splitClassTokens } from "./classTokens-BzazaERD.js";
|
|
2
|
+
import { n as DEFAULT_GR_DIALOG_FOOTER_CONFIG, r as DEFAULT_GR_DIALOG_HEADER_CONFIG, t as DEFAULT_GR_DIALOG_BODY_CONFIG } from "./dialogShared-CxW62PQE.js";
|
|
3
3
|
//#region src/components/GrDialog/safelist.ts
|
|
4
4
|
function configTokens(config) {
|
|
5
5
|
return [...splitClassTokens(config.paddingX), ...splitClassTokens(config.paddingY)];
|
|
6
6
|
}
|
|
7
|
-
var grDialogSafelist = [
|
|
7
|
+
var grDialogSafelist = [.../* @__PURE__ */ new Set([
|
|
8
8
|
...configTokens(DEFAULT_GR_DIALOG_HEADER_CONFIG),
|
|
9
9
|
...configTokens(DEFAULT_GR_DIALOG_FOOTER_CONFIG),
|
|
10
10
|
...configTokens(DEFAULT_GR_DIALOG_BODY_CONFIG)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safelist-CkF4v7DC.js","names":[],"sources":["../../src/components/GrDialog/safelist.ts"],"sourcesContent":["import { splitClassTokens } from '../shared/classTokens'\nimport {\n DEFAULT_GR_DIALOG_BODY_CONFIG,\n DEFAULT_GR_DIALOG_FOOTER_CONFIG,\n DEFAULT_GR_DIALOG_HEADER_CONFIG,\n} from './dialogShared'\n\n// В safelist попадают ТОЛЬКО токены, которые нельзя обнаружить статическим\n// сканом шаблонов: значения из дефолтных конфигов секций (`paddingX`/`paddingY`),\n// которые используются через `:class` и могут переопределяться консьюмером.\n//\n// Все литералы, прописанные напрямую в шаблонах (`class=\"...\"` или\n// статические строки в `:class=\"[...]\"` внутри .vue), UnoCSS найдёт сам —\n// дублировать их здесь не нужно.\nfunction configTokens(config: { paddingX: string, paddingY: string }): string[] {\n return [\n ...splitClassTokens(config.paddingX),\n ...splitClassTokens(config.paddingY),\n ]\n}\n\nexport const grDialogSafelist = [...new Set([\n ...configTokens(DEFAULT_GR_DIALOG_HEADER_CONFIG),\n ...configTokens(DEFAULT_GR_DIALOG_FOOTER_CONFIG),\n ...configTokens(DEFAULT_GR_DIALOG_BODY_CONFIG),\n])]\n"],"mappings":";;;AAcA,SAAS,aAAa,QAA0D;CAC9E,OAAO,CACL,GAAG,iBAAiB,OAAO,QAAQ,GACnC,GAAG,iBAAiB,OAAO,QAAQ,CACrC;AACF;AAEA,IAAa,mBAAmB,CAAC,mBAAG,IAAI,IAAI;CAC1C,GAAG,aAAa,+BAA+B;CAC/C,GAAG,aAAa,+BAA+B;CAC/C,GAAG,aAAa,6BAA6B;AAC/C,CAAC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as splitClassTokens } from "./classTokens-
|
|
2
|
-
import { a as squareSizes, i as sizes, o as tones, s as variantClass, t as base } from "./grButtonStyles-
|
|
1
|
+
import { t as splitClassTokens } from "./classTokens-BzazaERD.js";
|
|
2
|
+
import { a as squareSizes, i as sizes, o as tones, s as variantClass, t as base } from "./grButtonStyles-C7Yga_Q1.js";
|
|
3
3
|
//#region src/components/GrButton/safelist.ts
|
|
4
4
|
var variantTokens = Object.keys(tones).flatMap((tone) => [
|
|
5
5
|
"primary",
|
|
@@ -14,7 +14,7 @@ var grButtonClassTokens = {
|
|
|
14
14
|
squareSizes: Object.values(squareSizes).flatMap(splitClassTokens),
|
|
15
15
|
variants: variantTokens
|
|
16
16
|
};
|
|
17
|
-
var grButtonSafelist = [
|
|
17
|
+
var grButtonSafelist = [.../* @__PURE__ */ new Set([
|
|
18
18
|
...grButtonClassTokens.base,
|
|
19
19
|
...grButtonClassTokens.sizes,
|
|
20
20
|
...grButtonClassTokens.squareSizes,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safelist-
|
|
1
|
+
{"version":3,"file":"safelist-Do2RtzLB.js","names":[],"sources":["../../src/components/GrButton/safelist.ts"],"sourcesContent":["import {splitClassTokens} from '../shared/classTokens'\nimport {\n base,\n sizes,\n squareSizes,\n tones,\n variantClass,\n type GrButtonTone,\n type GrButtonVariant,\n} from './grButtonStyles'\n\nconst variantTokens = (Object.keys(tones) as GrButtonTone[]).flatMap(tone =>\n (['primary', 'secondary', 'outline', 'ghost', 'ghost-border'] as GrButtonVariant[])\n .flatMap(variant => splitClassTokens(variantClass(variant, tone))),\n)\n\nexport const grButtonClassTokens = {\n base: splitClassTokens(base),\n sizes: Object.values(sizes).flatMap(splitClassTokens),\n squareSizes: Object.values(squareSizes).flatMap(splitClassTokens),\n variants: variantTokens,\n} as const\n\nexport const grButtonSafelist = [...new Set([\n ...grButtonClassTokens.base,\n ...grButtonClassTokens.sizes,\n ...grButtonClassTokens.squareSizes,\n ...grButtonClassTokens.variants,\n])]\n"],"mappings":";;;AAWA,IAAM,gBAAiB,OAAO,KAAK,KAAK,CAAC,CAAoB,SAAQ,SAChE;CAAC;CAAW;CAAa;CAAW;CAAS;AAAc,CAAC,CACxD,SAAQ,YAAW,iBAAiB,aAAa,SAAS,IAAI,CAAC,CAAC,CACzE;AAEA,IAAa,sBAAsB;CAC/B,MAAM,iBAAiB,IAAI;CAC3B,OAAO,OAAO,OAAO,KAAK,CAAC,CAAC,QAAQ,gBAAgB;CACpD,aAAa,OAAO,OAAO,WAAW,CAAC,CAAC,QAAQ,gBAAgB;CAChE,UAAU;AACd;AAEA,IAAa,mBAAmB,CAAC,mBAAG,IAAI,IAAI;CACxC,GAAG,oBAAoB;CACvB,GAAG,oBAAoB;CACvB,GAAG,oBAAoB;CACvB,GAAG,oBAAoB;AAC3B,CAAC,CAAC"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { t as grAlertConfig } from "./config-BNu8lFQB.js";
|
|
2
|
+
import { t as grAvatarConfig } from "./config-QYGvEBu5.js";
|
|
3
|
+
import { t as grBadgeConfig } from "./config-jBp9wVv-.js";
|
|
4
|
+
import { t as grBadgeWrapConfig } from "./config-Dxuwwepq.js";
|
|
5
|
+
import { t as grBottomNavConfig } from "./config-C9AcVDkv.js";
|
|
6
|
+
import { t as grButtonConfig } from "./config-C4snOIXg.js";
|
|
7
|
+
import { t as grButtonGroupConfig } from "./config-DBmdgoVf.js";
|
|
8
|
+
import { t as grCardConfig } from "./config-CThzliFi.js";
|
|
9
|
+
import { t as grCheckboxConfig } from "./config-DICOd-2X.js";
|
|
10
|
+
import { t as grIconConfig } from "./config-BEegFP74.js";
|
|
11
|
+
import { t as grCollapseConfig } from "./config-xR4XVmcy.js";
|
|
12
|
+
import { t as grConfirmDialogConfig } from "./config-BXtAmU3s2.js";
|
|
13
|
+
import { t as grDataTableConfig } from "./config-U4m9PSql.js";
|
|
14
|
+
import { t as grDialogSafelist } from "./safelist-CkF4v7DC.js";
|
|
15
|
+
import { t as grDialogServiceConfig } from "./config-BX1JTrkV2.js";
|
|
16
|
+
import { t as grDividerConfig } from "./config-BWiPnygb.js";
|
|
17
|
+
import { t as grDrawerConfig } from "./config-DUcu1D682.js";
|
|
18
|
+
import { t as grDropdownConfig } from "./config-C49QUoJL.js";
|
|
19
|
+
import { t as grDropdownMenuConfig } from "./config-Cb2PAlSD.js";
|
|
20
|
+
import { t as grEmptyStateConfig } from "./config-Bah4oHwL.js";
|
|
21
|
+
import { t as grFileUploadConfig } from "./config-BWGGp7uV.js";
|
|
22
|
+
import { t as grFormFieldConfig } from "./config-PFg39mYo.js";
|
|
23
|
+
import { t as grFormFileConfig } from "./config-D7GZO-Dx.js";
|
|
24
|
+
import { t as grFormSectionConfig } from "./config-B0qIpo8m.js";
|
|
25
|
+
import { t as grImageViewerConfig } from "./config-HZto2PVy.js";
|
|
26
|
+
import { t as grInputConfig } from "./config-D_R56_gT.js";
|
|
27
|
+
import { t as grInputTagConfig } from "./config-ClhKPJvg.js";
|
|
28
|
+
import { t as grKbdConfig } from "./config-Dlm49Jp5.js";
|
|
29
|
+
import { t as grLinkConfig } from "./config-BOlr7qw7.js";
|
|
30
|
+
import { t as grListConfig } from "./config-C86UzUYf.js";
|
|
31
|
+
import { t as grLoadingConfig } from "./config-Cpi9Mh2J.js";
|
|
32
|
+
import { t as grModalConfig } from "./config-CziwTDDL.js";
|
|
33
|
+
import { t as grNavbarConfig } from "./config-ZiXWIRBX.js";
|
|
34
|
+
import { t as grNumberInputConfig } from "./config-C7NpDrfO.js";
|
|
35
|
+
import { t as grPaginationConfig } from "./config-JpHA4Xx02.js";
|
|
36
|
+
import { t as grProgressBarConfig } from "./config-DnvPqu4g2.js";
|
|
37
|
+
import { t as grPromptDialogConfig } from "./config-BUHuGBik.js";
|
|
38
|
+
import { t as grRadioConfig } from "./config-CrG1XiE72.js";
|
|
39
|
+
import { t as grRadioGroupConfig } from "./config-QaIc_gRa.js";
|
|
40
|
+
import { t as grSegmentedConfig } from "./config-eYLZYOUS2.js";
|
|
41
|
+
import { t as grSelectConfig } from "./config-B7IIWGt_2.js";
|
|
42
|
+
import { t as grSidebarConfig } from "./config-CGHLoBlH.js";
|
|
43
|
+
import { t as grSkeletonConfig } from "./config-8Pcutu1j2.js";
|
|
44
|
+
import { t as grSwitchConfig } from "./config-DezDih8_.js";
|
|
45
|
+
import { t as grTableConfig } from "./config-ipvU0lzP2.js";
|
|
46
|
+
import { t as grTabPanelsConfig } from "./config-eXB87DOi2.js";
|
|
47
|
+
import { t as grTabsConfig } from "./config-BLHqZhy-2.js";
|
|
48
|
+
import { t as grTextareaConfig } from "./config-1uSYl98Y2.js";
|
|
49
|
+
import { t as grToasterConfig } from "./config-LGrZIdaZ.js";
|
|
50
|
+
import { t as grTooltipConfig } from "./config-JOtB4mzs.js";
|
|
51
|
+
import { t as grTreeConfig } from "./config-DpqOnJiz.js";
|
|
52
|
+
import { t as grTreeSelectConfig } from "./config-BIRO0vDJ.js";
|
|
53
|
+
import { defineGranularComponent, defineGranularProvider } from "@feugene/unocss-preset-granular/contract";
|
|
54
|
+
//#region src/components/GrDialog/config.ts
|
|
55
|
+
var grDialogConfig = defineGranularComponent(import.meta.url, {
|
|
56
|
+
name: "GrDialog",
|
|
57
|
+
dependencies: ["GrButton", "GrModal"],
|
|
58
|
+
safelist: grDialogSafelist
|
|
59
|
+
});
|
|
60
|
+
//#endregion
|
|
61
|
+
//#region src/components/GrResponseErrorBanner/config.ts
|
|
62
|
+
var grResponseErrorBannerConfig = defineGranularComponent(import.meta.url, {
|
|
63
|
+
name: "GrResponseErrorBanner",
|
|
64
|
+
dependencies: ["GrAlert", "GrButton"]
|
|
65
|
+
});
|
|
66
|
+
//#endregion
|
|
67
|
+
//#region src/granular-provider/shared.ts
|
|
68
|
+
/** Идентификатор провайдера — совпадает с именем пакета. */
|
|
69
|
+
var GRANULARITY_PROVIDER_ID = "@feugene/granularity";
|
|
70
|
+
var packageBaseUrl = `${import.meta.url.slice(0, import.meta.url.lastIndexOf("/", import.meta.url.lastIndexOf("/") - 1) + 1)}`;
|
|
71
|
+
/** Встроенные темы пакета. Единственный источник правды о списке тем. */
|
|
72
|
+
var granularityThemeNames = ["light", "dark"];
|
|
73
|
+
/** Темы, активные по умолчанию, если окружение не переопределяет выбор. */
|
|
74
|
+
var granularityDefaultThemes = ["light"];
|
|
75
|
+
var theme = {
|
|
76
|
+
baseCssUrl: new URL("data:text/css;base64,LyoKICogR1It0LHQsNC30L7QstGL0Lkg0YHQu9C+0LkuCiAqCiAqINCT0LvQvtCx0LDQu9GM0L3Ri9C5INGB0LHRgNC+0YEg0YHRgtGA0LDQvdC40YbRiyAoYGJvZHlgLCBgYm94LXNpemluZ2ApINC/0YDQvtC00YPQsdC70LjRgNC+0LLQsNC9INC40LcKICogYHByZWZsaWdodC5jc3NgINCd0JDQn9Cg0K/QnNCj0K4gKNCwINC90LUg0YfQtdGA0LXQtyBgQGltcG9ydGApLiDQn9GA0LjRh9C40L3QsDogZ3JhbnVsYXItcHJvdmlkZXIKICog0LLRgdGC0YDQsNC40LLQsNC10YIg0YHQvtC00LXRgNC20LjQvNC+0LUgYGJhc2UuY3NzYCDQutCw0LogYmFzZTY0IGBkYXRhOmAtVVJMINC90LAg0Y3RgtCw0L/QtSDRgdCx0L7RgNC60Lgg0L/QsNC60LXRgtCwCiAqINC4INC+0YLQtNCw0ZHRgiDQtdCz0L4g0LIgVW5vQ1NTINC60LDQuiBwcmVmbGlnaHQt0YHRgtGA0L7QutGDLiDQktC70L7QttC10L3QvdGL0LkgYEBpbXBvcnRgINCyINGC0LDQutC+0Lkg0YHRgtGA0L7QutC1CiAqICjQsCkg0L3QtSDRgNC10LfQvtC70LLQuNGC0YHRjyAo0L7RgtC90L7RgdC40YLQtdC70YzQvdGL0Lkg0L/Rg9GC0Ywg0LLQvdGD0YLRgNC4IGRhdGEtVVJMKSDQuCAo0LEpINC+0LrQsNC30YvQstCw0LXRgtGB0Y8g0J3QlSDQsgogKiDQvdCw0YfQsNC70LUg0YTQuNC90LDQu9GM0L3QvtCz0L4gQ1NTIOKGkiBQb3N0Q1NTINC/0LDQtNCw0LXRgjogwqtAaW1wb3J0IG11c3QgcHJlY2VkZSBhbGwgb3RoZXIKICogc3RhdGVtZW50c8K7LiDQn9C+0Y3RgtC+0LzRgyByZXNldCDQuNC90LvQsNC50L3QuNGC0YHRjyDRgdGO0LTQsC4gYHByZWZsaWdodC5jc3NgINC+0YHRgtCw0ZHRgtGB0Y8g0L7RgtC00LXQu9GM0L3Ri9C8CiAqINC/0YPQsdC70LjRh9C90YvQvCDRhNCw0LnQu9C+0LwgKGAuL3N0eWxlcy9wcmVmbGlnaHQuY3NzYCkg0LTQu9GPIHN0YW5kYWxvbmUt0L/QvtGC0YDQtdCx0LjRgtC10LvQtdC5IOKAlAogKiDQtNC10YDQttC40YLQtSDQvtCx0LAg0LHQu9C+0LrQsCDRgdC40L3RhdGA0L7QvdC90YvQvNC4LgogKgogKiDQn9C+0YLRgNC10LHQuNGC0LXQu9GMLCDQutC+0YLQvtGA0L7QvNGDINCz0LvQvtCx0LDQu9GM0L3Ri9C1INGB0LDQudC0LdGN0YTRhNC10LrRgtGLINC90LUg0L3Rg9C20L3Riywg0LzQvtC20LXRgiDQv9C+0LTQutC70Y7Rh9C40YLRjAogKiBgdG9rZW5zLmNzc2AgKyDRgtC10LzRgyDQuCDQv9GA0L7Qv9GD0YHRgtC40YLRjCBgYmFzZS5jc3NgL2BwcmVmbGlnaHQuY3NzYC4KICoKICog0J3QuNC20LUsINC/0L7QvNC40LzQviByZXNldCwg4oCUINC90LjQt9C60L7RgdC/0LXRhtC40YTQuNGH0L3Ri9C1IChgOndoZXJlKClgKSDQtNC10YTQvtC70YLRiyDRgdCw0LzQvtC5IEdSLCDQutC+0YLQvtGA0YvQtQogKiDQsdC10LfQvtC/0LDRgdC90L4g0L3QsNC60LvQsNC00YvQstCw0Y7RgtGB0Y8g0L3QsCDQv9GA0LjQu9C+0LbQtdC90LjQtSDQuCDQu9C10LPQutC+INC/0LXRgNC10L7Qv9GA0LXQtNC10LvRj9GO0YLRgdGPLgogKi8KCi8qIC0tLSByZXNldCAo0YHQuNC90YXRgNC+0L3QuNC30LjRgNC+0LLQsNC90L4g0YEgcHJlZmxpZ2h0LmNzcykgLS0tICovCmh0bWwsCmJvZHkgewogICAgaGVpZ2h0OiAxMDAlOwp9Cgpib2R5IHsKICAgIG1hcmdpbjogMDsKICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1nci1mb250LXVpKTsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnKTsKICAgIGNvbG9yOiB2YXIoLS1mZyk7Cn0KCiogewogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQoKLyoKICogVW5vQ1NTIHRhaWx3aW5kLWNvbXBhdCByZXNldCBpbnRlbnRpb25hbGx5IGRvZXMgbm90IGZvcmNlIGBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGAgZm9yIGJ1dHRvbnMKICogKHRvIGF2b2lkIGJyZWFraW5nIGNvbXBvbmVudCBsaWJyYXJpZXMpLiBJbiBvdXIgR1Igd2Ugd2FudCBwbGFpbiBidXR0b25zL2xpbmtzIHRvIGJlIHRyYW5zcGFyZW50IGJ5IGRlZmF1bHQuCiAqLwo6d2hlcmUoYSwgYnV0dG9uKSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKfQoKOndoZXJlKGlucHV0W3R5cGU9J2J1dHRvbiddLCBpbnB1dFt0eXBlPSdzdWJtaXQnXSwgaW5wdXRbdHlwZT0ncmVzZXQnXSkgewogICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KCmNvZGUsCnByZSwKa2JkIHsKICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1nci1mb250LW1vbm8pOwp9Cg==", "" + import.meta.url).href,
|
|
77
|
+
tokensCssUrl: new URL("data:text/css;base64,OnJvb3QgewogIC8qIEZvdW5kYXRpb25zOiBuZXV0cmFsIHBhbGV0dGUgKi8KICAtLWdyLXNsYXRlLTA6ICNmZmZmZmY7CiAgLS1nci1zbGF0ZS01MDogI2Y4ZmFmYzsKICAtLWdyLXNsYXRlLTEwMDogI2YxZjVmOTsKICAtLWdyLXNsYXRlLTIwMDogI2UyZThmMDsKICAtLWdyLXNsYXRlLTMwMDogI2NiZDVlMTsKICAtLWdyLXNsYXRlLTQwMDogIzk0YTNiODsKICAtLWdyLXNsYXRlLTUwMDogIzY0NzQ4YjsKICAtLWdyLXNsYXRlLTYwMDogIzQ3NTU2OTsKICAtLWdyLXNsYXRlLTcwMDogIzMzNDE1NTsKICAtLWdyLXNsYXRlLTgwMDogIzFlMjkzYjsKICAtLWdyLXNsYXRlLTkwMDogIzBmMTcyYTsKCiAgLyogVHlwb2dyYXBoeTogZm9udCBmYW1pbGllcyAqLwogIC0tZ3ItZm9udC11aTogSW50ZXIsIFJvYm90bywgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgLS1nci1mb250LW1vbm86ICdKZXRCcmFpbnMgTW9ubycsIHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgbW9ub3NwYWNlOwoKICAvKiBUeXBvZ3JhcGh5OiBmb250IHNpemVzICovCiAgLS1nci10ZXh0LXhzOiAxMnB4OwogIC0tZ3ItdGV4dC1zbTogMTRweDsKICAtLWdyLXRleHQtYmFzZTogMTZweDsKICAtLWdyLXRleHQtbGc6IDE4cHg7CiAgLS1nci10ZXh0LXhsOiAyMHB4OwogIC0tZ3ItdGV4dC0yeGw6IDI0cHg7CiAgLS1nci10ZXh0LTN4bDogMzBweDsKICAtLWdyLXRleHQtNHhsOiAzNnB4OwoKICAvKiBUeXBvZ3JhcGh5OiBsaW5lIGhlaWdodHMgKi8KICAtLWdyLWxlYWRpbmctdGlnaHQ6IDEuMjU7CiAgLS1nci1sZWFkaW5nLW5vcm1hbDogMS41OwogIC0tZ3ItbGVhZGluZy1yZWxheGVkOiAxLjYyNTsKCiAgLyogVHlwb2dyYXBoeTogZm9udCB3ZWlnaHRzICovCiAgLS1nci1mb250LXJlZ3VsYXI6IDQwMDsKICAtLWdyLWZvbnQtbWVkaXVtOiA1MDA7CiAgLS1nci1mb250LXNlbWlib2xkOiA2MDA7CiAgLS1nci1mb250LWJvbGQ6IDcwMDsKCiAgLyogTGF5b3V0OiBzcGFjaW5nIHNjYWxlICovCiAgLS1nci1zcGFjZS0wOiAwcHg7CiAgLS1nci1zcGFjZS0xOiA0cHg7CiAgLS1nci1zcGFjZS0yOiA4cHg7CiAgLS1nci1zcGFjZS0zOiAxMnB4OwogIC0tZ3Itc3BhY2UtNDogMTZweDsKICAtLWdyLXNwYWNlLTU6IDIwcHg7CiAgLS1nci1zcGFjZS02OiAyNHB4OwogIC0tZ3Itc3BhY2UtODogMzJweDsKICAtLWdyLXNwYWNlLTEwOiA0MHB4OwogIC0tZ3Itc3BhY2UtMTI6IDQ4cHg7CiAgLS1nci1zcGFjZS0xNjogNjRweDsKICAtLWdyLXNwYWNlLTIwOiA4MHB4OwogIC0tZ3Itc3BhY2UtMjQ6IDk2cHg7CiAgLS1nci1zcGFjZS0zMjogMTI4cHg7CiAgLS1nci1zcGFjZS00MDogMTYwcHg7CiAgLS1nci1zcGFjZS00ODogMTkycHg7CiAgLS1nci1zcGFjZS02NDogMjU2cHg7CgogIC8qIExheW91dDogY29udGFpbmVycyAqLwogIC0tZ3ItY29udGFpbmVyLW1heDogMTI4MHB4OwogIC0tZ3ItY29udGFpbmVyLW1heC0yeGw6IDE0NDBweDsKICAtLWdyLWNvbnRhaW5lci1wYWRkaW5nLW1vYmlsZTogMTZweDsKICAtLWdyLWNvbnRhaW5lci1wYWRkaW5nLXRhYmxldDogMjRweDsKICAtLWdyLWNvbnRhaW5lci1wYWRkaW5nLWRlc2t0b3A6IDMycHg7CgogIC8qIExheW91dDogYnJlYWtwb2ludHMgKi8KICAtLWdyLWJwLXNtOiA2NDBweDsKICAtLWdyLWJwLW1kOiA3NjhweDsKICAtLWdyLWJwLWxnOiAxMDI0cHg7CiAgLS1nci1icC14bDogMTI4MHB4OwogIC0tZ3ItYnAtMnhsOiAxNTM2cHg7CgogIC8qIFNoYXBlczogcmFkaWkgYW5kIGNvbXBhdGliaWxpdHkgYWxpYXNlcyAqLwogIC0tcmFkaXVzOiAwLjVyZW07CiAgLS1nci1yYWRpdXMtbm9uZTogMHB4OwogIC0tZ3ItcmFkaXVzLXNtOiA0cHg7CiAgLS1nci1yYWRpdXMtbWQ6IDhweDsKICAtLWdyLXJhZGl1cy1sZzogMTJweDsKICAtLWdyLXJhZGl1cy14bDogMTZweDsKICAtLWdyLXJhZGl1cy1mdWxsOiA5OTk5cHg7CgogIC8qIEVsZXZhdGlvbiAqLwogIC0tZ3Itc2hhZG93LTA6IG5vbmU7CiAgLS1nci1zaGFkb3ctMTogMCAxcHggMnB4IHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7CiAgLS1nci1zaGFkb3ctMjogMCA4cHggMjRweCByZ2JhKDE1LCAyMywgNDIsIDAuMTQpOwogIC0tZ3Itc2hhZG93LTM6IDAgMTZweCA0OHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4yMCk7CgogIC8qIE1vdGlvbiAqLwogIC0tZ3ItZHVyYXRpb24tZmFzdDogMTUwbXM7CiAgLS1nci1kdXJhdGlvbi1iYXNlOiAyMDBtczsKICAtLWdyLWR1cmF0aW9uLXNsb3c6IDMwMG1zOwogIC0tZ3ItZWFzZS1vdXQ6IGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpOwogIC0tZ3ItZWFzZS1pbjogY3ViaWMtYmV6aWVyKDAuNywgMCwgMC44NCwgMCk7CgogIC8qCiAgICogWi1pbmRleCBsYXllcmluZyBzY2FsZS4KICAgKgogICAqINCV0LTQuNC90YvQuSDQuNGB0YLQvtGH0L3QuNC6INC40YHRgtC40L3RiyDQtNC70Y8g0YHQu9C+0ZHQsiDQstGB0LXRhSDQutC+0LzQv9C+0L3QtdC90YLQvtCyLCDQuNGB0L/QvtC70YzQt9GD0Y7RidC40YUgYHBvc2l0aW9uOiBmaXhlZGAKICAgKiDQv9C+0LLQtdGA0YUg0L7RgdGC0LDQu9GM0L3QvtCz0L4g0LrQvtC90YLQtdC90YLQsC4g0J/RgNCw0LLQuNC70L46INGH0LXQvCDQstGL0YjQtSDQsiBVSS3RgdGC0LXQutC1INGB0LvQvtC5INC+0LHRj9C30LDQvSDQvtC60LDQt9Cw0YLRjNGB0Y8sCiAgICog0YLQtdC8INCx0L7Qu9GM0YjQtSDQt9C90LDRh9C10L3QuNC1LiBGbG9hdGluZy3Qv9Cw0L3QtdC70LggKGRyb3Bkb3duL3NlbGVjdC90cmVlLXNlbGVjdC90b29sdGlwKSDRgdGC0L7Rj9GCCiAgICog0L3QuNC20LUg0LzQvtC00LDQu9C+0LosINGH0YLQvtCx0Ysg0L/QvtC/0L7QstC10YAsINC+0YLQutGA0YvRgtGL0Lkg0JLQndCj0KLQoNCYINC80L7QtNCw0LvQutC4LCDQvdC1INC/0L7RgtC10YDRj9C70YHRjyDQv9C+0LQg0L3QtdC5LCDQvdC+CiAgICog0YHQsNC8INGN0YLQvtGCINC/0L7Qv9C+0LLQtdGAINC90LUg0L7QsdGP0LfQsNC9INC/0LXRgNC10LrRgNGL0LLQsNGC0Ywg0LzQvtC00LDQu9C60YMg0YHQvdCw0YDRg9C20Lgg4oCUINC30LAg0L/RgNC10LTQtdC70Ysg0YHQstC+0LXQs9C+INC00LXRgNC10LLQsAogICAqIGZsb2F0aW5nLdC60L7QvNC/0L7QvdC10L3RgtGLINC90LUg0LLRi9GF0L7QtNGP0YIg0L/QviDQv9C+0YHRgtGA0L7QtdC90LjRjiAodi1jbGljay1vdXRzaWRlL3BvcnRhbCDRgNGP0LTQvtC8INGBINGC0YDQuNCz0LPQtdGA0L7QvCkuCiAgICog0KLQvtGB0YLRiyDigJQg0LXQtNC40L3RgdGC0LLQtdC90L3Ri9C5INGB0LvQvtC5LCDQutC+0YLQvtGA0YvQuSDQvtCx0Y/Qt9Cw0L0g0LHRi9GC0Ywg0LLQuNC00LXQvSDQv9C+0LLQtdGA0YUg0LDQsdGB0L7Qu9GO0YLQvdC+INCy0YHQtdCz0L4sCiAgICog0LLQutC70Y7Rh9Cw0Y8g0L7RgtC60YDRi9GC0YvQtSDQvNC+0LTQsNC70LrQuCAo0Y3RgtC+INGD0LLQtdC00L7QvNC70LXQvdC40LUg0YPRgNC+0LLQvdGPINC/0YDQuNC70L7QttC10L3QuNGPKS4KICAgKi8KICAtLWdyLXotZHJvcGRvd246IDEwMDA7CiAgLS1nci16LXRvb2x0aXA6IDEwNTA7CiAgLS1nci16LW1vZGFsOiAxMTAwOwogIC0tZ3Itei10b2FzdDogMTIwMDsKCiAgLyogRGVyaXZlZCBpbnRlcmFjdGlvbiBmb3JtdWxhczogYWN0aW9uIHJvbGVzICovCiAgLS1wcmltYXJ5LWhvdmVyOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tcHJpbWFyeSkgOTIlLCB2YXIoLS1mZykpOwogIC0tcHJpbWFyeS1hY3RpdmU6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1wcmltYXJ5KSA4NCUsIHZhcigtLWZnKSk7CiAgLS1zZWNvbmRhcnktaG92ZXI6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnkpIDkyJSwgdmFyKC0tZmcpKTsKICAtLXNlY29uZGFyeS1hY3RpdmU6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnkpIDg0JSwgdmFyKC0tZmcpKTsKICAtLWJyZC1ob3ZlcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJyZCkgNzAlLCB2YXIoLS1mZykpOwogIC0tYnJkLWFjdGl2ZTogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJyZCkgNTUlLCB2YXIoLS1mZykpOwogIC0tZGVzdHJ1Y3RpdmUtaG92ZXI6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1kZXN0cnVjdGl2ZSkgOTIlLCB2YXIoLS1mZykpOwogIC0tZGVzdHJ1Y3RpdmUtYWN0aXZlOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZGVzdHJ1Y3RpdmUpIDg0JSwgdmFyKC0tZmcpKTsKCiAgLyogRGVyaXZlZCBpbnRlcmFjdGlvbiBmb3JtdWxhczogc3RhdHVzIHJvbGVzICovCiAgLS1nci1zdWNjZXNzLWhvdmVyOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZ3Itc3VjY2VzcykgOTIlLCB2YXIoLS1mZykpOwogIC0tZ3Itc3VjY2Vzcy1hY3RpdmU6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1nci1zdWNjZXNzKSA4NCUsIHZhcigtLWZnKSk7CiAgLS1nci13YXJuaW5nLWhvdmVyOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZ3Itd2FybmluZykgOTIlLCB2YXIoLS1mZykpOwogIC0tZ3Itd2FybmluZy1hY3RpdmU6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1nci13YXJuaW5nKSA4NCUsIHZhcigtLWZnKSk7CiAgLS1nci1kYW5nZXItaG92ZXI6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1nci1kYW5nZXIpIDkyJSwgdmFyKC0tZmcpKTsKICAtLWdyLWRhbmdlci1hY3RpdmU6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1nci1kYW5nZXIpIDg0JSwgdmFyKC0tZmcpKTsKICAtLWdyLWluZm8taG92ZXI6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1nci1pbmZvKSA5MiUsIHZhcigtLWZnKSk7CiAgLS1nci1pbmZvLWFjdGl2ZTogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWdyLWluZm8pIDg0JSwgdmFyKC0tZmcpKTsKICAtLWdyLXNsYXRlLWhvdmVyOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZ3Itc2xhdGUpIDkyJSwgdmFyKC0tZmcpKTsKICAtLWdyLXNsYXRlLWFjdGl2ZTogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWdyLXNsYXRlKSA4NCUsIHZhcigtLWZnKSk7CiAgLS1nci1henVyZS1ob3ZlcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWdyLWF6dXJlKSA5MiUsIHZhcigtLWZnKSk7CiAgLS1nci1henVyZS1hY3RpdmU6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1nci1henVyZSkgODQlLCB2YXIoLS1mZykpOwp9Cg==", "" + import.meta.url).href,
|
|
78
|
+
themes: {
|
|
79
|
+
light: new URL("data:text/css;base64,OnJvb3QgewogIC8qIFN1cmZhY2Ugcm9sZXMgKi8KICAtLWJnOiAjZjhmYWZjOwogIC0tZmc6ICMwZjE3MmE7CiAgLS1jYXJkOiAjZmZmZmZmOwogIC0tY2FyZC1mZzogIzBmMTcyYTsKICAtLXBvcG92ZXI6ICNmZmZmZmY7CiAgLS1wb3BvdmVyLWZnOiAjMGYxNzJhOwogIC0tbXV0ZWQ6ICNmMWY1Zjk7CiAgLS1tdXRlZC1mZzogIzY0NzQ4YjsKICAtLXNlY29uZGFyeTogI2UyZThmMDsKICAtLXNlY29uZGFyeS1mZzogIzFlMjkzYjsKICAtLWJyZDogI2UyZThmMDsKICAtLWlucHV0OiAjZTJlOGYwOwogIC0tcmluZzogIzYzNjZmMTsKCiAgLyogQWN0aW9uIHJvbGVzICovCiAgLS1wcmltYXJ5OiAjNGY0NmU1OwogIC0tcHJpbWFyeS1mZzogI2ZmZmZmZjsKICAtLWFjY2VudDogI2VlZjJmZjsKICAtLWFjY2VudC1mZzogIzM3MzBhMzsKICAtLWRlc3RydWN0aXZlOiAjZGMyNjI2OwogIC0tZGVzdHJ1Y3RpdmUtZmc6ICNmZmZmZmY7CgogIC8qIFN0YXR1cyByb2xlcyAqLwogIC0tZ3Itc3VjY2VzczogIzEwYjk4MTsKICAtLWdyLXN1Y2Nlc3MtbGlnaHQ6ICNkMWZhZTU7CiAgLS1nci1zdWNjZXNzLWZnOiAjZmZmZmZmOwogIC0tZ3Itc3VjY2Vzcy10ZXh0OiAjMDY1ZjQ2OwogIC0tZ3Itd2FybmluZzogI2Y5NzMxNjsKICAtLWdyLXdhcm5pbmctbGlnaHQ6ICNmZmVkZDU7CiAgLS1nci13YXJuaW5nLWZnOiAjZmZmZmZmOwogIC0tZ3Itd2FybmluZy10ZXh0OiAjN2MyZDEyOwogIC0tZ3ItZGFuZ2VyOiAjZGMyNjI2OwogIC0tZ3ItZGFuZ2VyLWxpZ2h0OiAjZmVlMmUyOwogIC0tZ3ItZGFuZ2VyLWZnOiAjZmZmZmZmOwogIC0tZ3ItZGFuZ2VyLXRleHQ6ICM5OTFiMWI7CiAgLS1nci1pbmZvOiAjNTg1MGVjOwogIC0tZ3ItaW5mby1saWdodDogI2UwZTdmZjsKICAtLWdyLWluZm8tZmc6ICNmZmZmZmY7CiAgLS1nci1pbmZvLXRleHQ6ICMzNzMwYTM7CiAgLS1nci1zbGF0ZTogIzQ3NTU2OTsKICAtLWdyLXNsYXRlLWxpZ2h0OiAjZTJlOGYwOwogIC0tZ3Itc2xhdGUtZmc6ICNmZmZmZmY7CiAgLS1nci1zbGF0ZS10ZXh0OiAjMzM0MTU1OwogIC0tZ3ItYXp1cmU6ICMwZWE1ZTk7CiAgLS1nci1henVyZS1saWdodDogI2UwZjJmZTsKICAtLWdyLWF6dXJlLWZnOiAjZmZmZmZmOwogIC0tZ3ItYXp1cmUtdGV4dDogIzA3NTk4NTsKCiAgLyogRGF0YSB2aXN1YWxpemF0aW9uIHJvbGVzICovCiAgLS1jaGFydC0xOiAjNGY0NmU1OwogIC0tY2hhcnQtMjogIzEwYjk4MTsKICAtLWNoYXJ0LTM6ICNmOTczMTY7CiAgLS1jaGFydC00OiAjNjM2NmYxOwogIC0tY2hhcnQtNTogIzhiNWNmNjsKCiAgLyogTmF2aWdhdGlvbiByb2xlcyAqLwogIC0tc2lkZWJhcjogI2ZmZmZmZjsKICAtLXNpZGViYXItZmc6ICMwZjE3MmE7CiAgLS1zaWRlYmFyLXByaW1hcnk6ICM0ZjQ2ZTU7CiAgLS1zaWRlYmFyLXByaW1hcnktZmc6ICNmZmZmZmY7CiAgLS1zaWRlYmFyLWFjY2VudDogI2YxZjVmOTsKICAtLXNpZGViYXItYWNjZW50LWZnOiAjMWUyOTNiOwogIC0tc2lkZWJhci1icmQ6ICNlMmU4ZjA7CiAgLS1zaWRlYmFyLXJpbmc6ICM2MzY2ZjE7Cn0KCkBzdXBwb3J0cyBub3QgKGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgIzAwMCA1MCUsICNmZmYpKSB7CiAgOnJvb3QgewogICAgLyogQWN0aW9uIHJvbGUgZmFsbGJhY2tzICovCiAgICAtLXByaW1hcnktaG92ZXI6ICM0YTQyZDY7CiAgICAtLXByaW1hcnktYWN0aXZlOiAjNDUzZWM3OwogICAgLS1zZWNvbmRhcnktaG92ZXI6ICNkMWQ3ZTA7CiAgICAtLXNlY29uZGFyeS1hY3RpdmU6ICNjMGM3ZDA7CiAgICAtLWJyZC1ob3ZlcjogI2EzYTliNTsKICAgIC0tYnJkLWFjdGl2ZTogIzgzOGE5NzsKICAgIC0tZGVzdHJ1Y3RpdmUtaG92ZXI6ICNjYzI1MjY7CiAgICAtLWRlc3RydWN0aXZlLWFjdGl2ZTogI2JiMjQyNzsKCiAgICAvKiBTdGF0dXMgcm9sZSBmYWxsYmFja3MgKi8KICAgIC0tZ3Itc3VjY2Vzcy1ob3ZlcjogIzEwYWM3YTsKICAgIC0tZ3Itc3VjY2Vzcy1hY3RpdmU6ICMxMDlmNzM7CiAgICAtLWdyLXdhcm5pbmctaG92ZXI6ICNlNjZjMTg7CiAgICAtLWdyLXdhcm5pbmctYWN0aXZlOiAjZDQ2NDE5OwogICAgLS1nci1kYW5nZXItaG92ZXI6ICNjYzI1MjY7CiAgICAtLWdyLWRhbmdlci1hY3RpdmU6ICNiYjI0Mjc7CiAgICAtLWdyLWluZm8taG92ZXI6ICM1YzYwZTE7CiAgICAtLWdyLWluZm8tYWN0aXZlOiAjNTY1OWQxOwogICAgLS1nci1zbGF0ZS1ob3ZlcjogIzQzNTA2MjsKICAgIC0tZ3Itc2xhdGUtYWN0aXZlOiAjM2Q0YTViOwogICAgLS1nci1henVyZS1ob3ZlcjogIzAyODRjNzsKICAgIC0tZ3ItYXp1cmUtYWN0aXZlOiAjMDM2OWExOwoKICAgIC8qIENvbXBvbmVudCBzZW1hbnRpYyBmYWxsYmFja3MgKi8KICAgIC8qLS1nci1jYXRlZ29yeS10cmVlLWJyYW5jaC1saW5lLWFjdGl2ZS1jb2xvcjogI2M0Y2RmNzsqLwogIH0KfQo=", "" + import.meta.url).href,
|
|
80
|
+
dark: new URL("data:text/css;base64,LyoKICog0KLRkdC80L3QsNGPINGC0LXQvNCwLiDQmtCw0L3QvtC9IOKAlCDQsNGC0YDQuNCx0YPRgiBgW2RhdGEtdGhlbWU9J2RhcmsnXWAg0L3QsCBgPGh0bWw+YCAo0LXQs9C+INGB0YLQsNCy0LjRggogKiBgdXNlVGhlbWVgL2Bpbml0VGhlbWVFYXJseWApLiDQodC10LvQtdC60YLQvtGA0YsgYC50aGVtZS1kYXJrYCDQuCBgLmRhcmtgIOKAlCBERVBSRUNBVEVELdCw0LvQuNCw0YHRiwogKiDQtNC70Y8g0L7QsdGA0LDRgtC90L7QuSDRgdC+0LLQvNC10YHRgtC40LzQvtGB0YLQuDsg0LIg0L3QvtCy0L7QvCDQutC+0LTQtSDQuNGB0L/QvtC70YzQt9GD0LnRgtC1IGBbZGF0YS10aGVtZV1gLgogKi8KW2RhdGEtdGhlbWU9J2RhcmsnXSwKLnRoZW1lLWRhcmssCi5kYXJrIHsKICAvKiBTdXJmYWNlIHJvbGVzICovCiAgLS1iZzogIzBmMTcyYTsKICAtLWZnOiAjZjhmYWZjOwogIC0tY2FyZDogIzFlMjkzYjsKICAtLWNhcmQtZmc6ICNmOGZhZmM7CiAgLS1wb3BvdmVyOiAjMWUyOTNiOwogIC0tcG9wb3Zlci1mZzogI2Y4ZmFmYzsKICAtLW11dGVkOiAjMzM0MTU1OwogIC0tbXV0ZWQtZmc6ICM5NGEzYjg7CiAgLS1zZWNvbmRhcnk6ICMzMzQxNTU7CiAgLS1zZWNvbmRhcnktZmc6ICNmMWY1Zjk7CiAgLS1icmQ6ICMzMzQxNTU7CiAgLS1pbnB1dDogIzMzNDE1NTsKICAtLXJpbmc6ICM4MThjZjg7CgogIC8qIEFjdGlvbiByb2xlcyAqLwogIC0tcHJpbWFyeTogIzYzNjZmMTsKICAtLXByaW1hcnktZmc6ICNmZmZmZmY7CiAgLS1hY2NlbnQ6ICMxZTFiNGI7CiAgLS1hY2NlbnQtZmc6ICNjN2QyZmU7CiAgLS1kZXN0cnVjdGl2ZTogI2VmNDQ0NDsKICAtLWRlc3RydWN0aXZlLWZnOiAjZmZmZmZmOwoKICAvKiBTdGF0dXMgcm9sZXMgKi8KICAtLWdyLXN1Y2Nlc3M6ICMzNGQzOTk7CiAgLS1nci1zdWNjZXNzLWxpZ2h0OiAjMDY0ZTNiOwogIC0tZ3Itc3VjY2Vzcy1mZzogIzBmMTcyYTsKICAtLWdyLXN1Y2Nlc3MtdGV4dDogIzZlZTdiNzsKICAtLWdyLXdhcm5pbmc6ICNmYjkyM2M7CiAgLS1nci13YXJuaW5nLWxpZ2h0OiAjN2MyZDEyOwogIC0tZ3Itd2FybmluZy1mZzogIzBmMTcyYTsKICAtLWdyLXdhcm5pbmctdGV4dDogI2ZkYmE3NDsKICAtLWdyLWRhbmdlcjogI2Y4NzE3MTsKICAtLWdyLWRhbmdlci1saWdodDogIzdmMWQxZDsKICAtLWdyLWRhbmdlci1mZzogIzBmMTcyYTsKICAtLWdyLWRhbmdlci10ZXh0OiAjZmNhNWE1OwogIC0tZ3ItaW5mbzogIzgxOGNmODsKICAtLWdyLWluZm8tbGlnaHQ6ICMzMTJlODE7CiAgLS1nci1pbmZvLWZnOiAjMGYxNzJhOwogIC0tZ3ItaW5mby10ZXh0OiAjYzdkMmZlOwogIC0tZ3Itc2xhdGU6ICM5NGEzYjg7CiAgLS1nci1zbGF0ZS1saWdodDogIzMzNDE1NTsKICAtLWdyLXNsYXRlLWZnOiAjMGYxNzJhOwogIC0tZ3Itc2xhdGUtdGV4dDogI2NiZDVlMTsKICAtLWdyLWF6dXJlOiAjMzhiZGY4OwogIC0tZ3ItYXp1cmUtbGlnaHQ6ICMwYzRhNmU7CiAgLS1nci1henVyZS1mZzogIzBmMTcyYTsKICAtLWdyLWF6dXJlLXRleHQ6ICNiYWU2ZmQ7CgogIC8qIERhdGEgdmlzdWFsaXphdGlvbiByb2xlcyAqLwogIC0tY2hhcnQtMTogIzYzNjZmMTsKICAtLWNoYXJ0LTI6ICMzNGQzOTk7CiAgLS1jaGFydC0zOiAjZmI5MjNjOwogIC0tY2hhcnQtNDogIzgxOGNmODsKICAtLWNoYXJ0LTU6ICNhNzhiZmE7CgogIC8qIE5hdmlnYXRpb24gcm9sZXMgKi8KICAtLXNpZGViYXI6ICMxZTI5M2I7CiAgLS1zaWRlYmFyLWZnOiAjZjhmYWZjOwogIC0tc2lkZWJhci1wcmltYXJ5OiAjNjM2NmYxOwogIC0tc2lkZWJhci1wcmltYXJ5LWZnOiAjZmZmZmZmOwogIC0tc2lkZWJhci1hY2NlbnQ6ICMzMzQxNTU7CiAgLS1zaWRlYmFyLWFjY2VudC1mZzogI2YxZjVmOTsKICAtLXNpZGViYXItYnJkOiAjMzM0MTU1OwogIC0tc2lkZWJhci1yaW5nOiAjODE4Y2Y4Owp9CgpAc3VwcG9ydHMgbm90IChjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsICMwMDAgNTAlLCAjZmZmKSkgewogIC50aGVtZS1kYXJrLAogIC5kYXJrLAogIFtkYXRhLXRoZW1lPSdkYXJrJ10gewogICAgLyogQWN0aW9uIHJvbGUgZmFsbGJhY2tzICovCiAgICAtLXByaW1hcnktaG92ZXI6ICM2ZjcyZjI7CiAgICAtLXByaW1hcnktYWN0aXZlOiAjN2I3ZWYzOwogICAgLS1zZWNvbmRhcnktaG92ZXI6ICM0MzUwNjI7CiAgICAtLXNlY29uZGFyeS1hY3RpdmU6ICM1MzVmNzA7CiAgICAtLWJyZC1ob3ZlcjogIzZlNzk4NzsKICAgIC0tYnJkLWFjdGl2ZTogIzhjOTRhMDsKICAgIC0tZGVzdHJ1Y3RpdmUtaG92ZXI6ICNmMDUzNTM7CiAgICAtLWRlc3RydWN0aXZlLWFjdGl2ZTogI2YwNjE2MTsKCiAgICAvKiBTdGF0dXMgcm9sZSBmYWxsYmFja3MgKi8KICAgIC0tZ3Itc3VjY2Vzcy1ob3ZlcjogIzQ0ZDZhMTsKICAgIC0tZ3Itc3VjY2Vzcy1hY3RpdmU6ICM1M2Q5YTk7CiAgICAtLWdyLXdhcm5pbmctaG92ZXI6ICNmYjlhNGI7CiAgICAtLWdyLXdhcm5pbmctYWN0aXZlOiAjZmJhMzViOwogICAgLS1nci1kYW5nZXItaG92ZXI6ICNmODdjN2M7CiAgICAtLWdyLWRhbmdlci1hY3RpdmU6ICNmODg3ODc7CiAgICAtLWdyLWluZm8taG92ZXI6ICM4Yjk1Zjg7CiAgICAtLWdyLWluZm8tYWN0aXZlOiAjOTQ5ZWY5OwogICAgLS1nci1zbGF0ZS1ob3ZlcjogIzlmYWVjMDsKICAgIC0tZ3Itc2xhdGUtYWN0aXZlOiAjYWFiN2M4OwogICAgLS1nci1henVyZS1ob3ZlcjogIzRiYzNmOTsKICAgIC0tZ3ItYXp1cmUtYWN0aXZlOiAjNWRjYmY5OwoKICAgIC8qIENvbXBvbmVudCBzZW1hbnRpYyBmYWxsYmFja3MgKi8KICAgIC8qLS1nci1jYXRlZ29yeS10cmVlLWJyYW5jaC1saW5lLWFjdGl2ZS1jb2xvcjogIzUwNWI4YzsqLwogIH0KfQo=", "" + import.meta.url).href
|
|
81
|
+
},
|
|
82
|
+
defaultThemes: granularityDefaultThemes
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Полный реестр публичных компонентов пакета `@feugene/granularity`.
|
|
86
|
+
*
|
|
87
|
+
* Ключи — имена компонентов (совпадают с публичным subpath‑экспортом
|
|
88
|
+
* `@feugene/granularity/components/<Name>`). Значения — browser‑safe
|
|
89
|
+
* `ds<Name>Config` из `./config.ts` рядом с SFC.
|
|
90
|
+
*
|
|
91
|
+
* Для компонентов, у которых есть node-only вариант конфига
|
|
92
|
+
* (например, `GrButton` с `tokenDefinitionsFromCssSync`), browser‑конфиг
|
|
93
|
+
* остаётся здесь, а node‑вариант подставляется снаружи через
|
|
94
|
+
* `createGranularityProvider(overrides)` — см. `./index.ts` (browser)
|
|
95
|
+
* и `./node.ts` (node).
|
|
96
|
+
*/
|
|
97
|
+
var granularityComponentConfigs = {
|
|
98
|
+
GrAlert: grAlertConfig,
|
|
99
|
+
GrAvatar: grAvatarConfig,
|
|
100
|
+
GrBadge: grBadgeConfig,
|
|
101
|
+
GrBadgeWrap: grBadgeWrapConfig,
|
|
102
|
+
GrBottomNav: grBottomNavConfig,
|
|
103
|
+
GrButton: grButtonConfig,
|
|
104
|
+
GrButtonGroup: grButtonGroupConfig,
|
|
105
|
+
GrCard: grCardConfig,
|
|
106
|
+
GrCheckbox: grCheckboxConfig,
|
|
107
|
+
GrCollapse: grCollapseConfig,
|
|
108
|
+
GrConfirmDialog: grConfirmDialogConfig,
|
|
109
|
+
GrDataTable: grDataTableConfig,
|
|
110
|
+
GrDialog: grDialogConfig,
|
|
111
|
+
GrDialogService: grDialogServiceConfig,
|
|
112
|
+
GrDivider: grDividerConfig,
|
|
113
|
+
GrDrawer: grDrawerConfig,
|
|
114
|
+
GrDropdown: grDropdownConfig,
|
|
115
|
+
GrDropdownMenu: grDropdownMenuConfig,
|
|
116
|
+
GrEmptyState: grEmptyStateConfig,
|
|
117
|
+
GrFileUpload: grFileUploadConfig,
|
|
118
|
+
GrFormField: grFormFieldConfig,
|
|
119
|
+
GrFormFile: grFormFileConfig,
|
|
120
|
+
GrFormSection: grFormSectionConfig,
|
|
121
|
+
GrIcon: grIconConfig,
|
|
122
|
+
GrImageViewer: grImageViewerConfig,
|
|
123
|
+
GrInput: grInputConfig,
|
|
124
|
+
GrInputTag: grInputTagConfig,
|
|
125
|
+
GrKbd: grKbdConfig,
|
|
126
|
+
GrLink: grLinkConfig,
|
|
127
|
+
GrList: grListConfig,
|
|
128
|
+
GrLoading: grLoadingConfig,
|
|
129
|
+
GrModal: grModalConfig,
|
|
130
|
+
GrNavbar: grNavbarConfig,
|
|
131
|
+
GrNumberInput: grNumberInputConfig,
|
|
132
|
+
GrPagination: grPaginationConfig,
|
|
133
|
+
GrProgressBar: grProgressBarConfig,
|
|
134
|
+
GrPromptDialog: grPromptDialogConfig,
|
|
135
|
+
GrRadio: grRadioConfig,
|
|
136
|
+
GrRadioGroup: grRadioGroupConfig,
|
|
137
|
+
GrResponseErrorBanner: grResponseErrorBannerConfig,
|
|
138
|
+
GrSegmented: grSegmentedConfig,
|
|
139
|
+
GrSelect: grSelectConfig,
|
|
140
|
+
GrSidebar: grSidebarConfig,
|
|
141
|
+
GrSkeleton: grSkeletonConfig,
|
|
142
|
+
GrSwitch: grSwitchConfig,
|
|
143
|
+
GrTable: grTableConfig,
|
|
144
|
+
GrTabPanels: grTabPanelsConfig,
|
|
145
|
+
GrTabs: grTabsConfig,
|
|
146
|
+
GrTextarea: grTextareaConfig,
|
|
147
|
+
GrToaster: grToasterConfig,
|
|
148
|
+
GrTooltip: grTooltipConfig,
|
|
149
|
+
GrTree: grTreeConfig,
|
|
150
|
+
GrTreeSelect: grTreeSelectConfig
|
|
151
|
+
};
|
|
152
|
+
/** Базовый (browser-safe) набор компонентов в порядке реестра. */
|
|
153
|
+
var baseComponents = Object.values(granularityComponentConfigs);
|
|
154
|
+
/**
|
|
155
|
+
* Собирает granular-provider пакета `@feugene/granularity`.
|
|
156
|
+
*
|
|
157
|
+
* Принимает массив `GranularComponentDescriptor`'ов — это компоненты,
|
|
158
|
+
* у которых есть node-only вариант конфига (например, `GrButton` с
|
|
159
|
+
* `tokenDefinitionsFromCssSync`). Дескрипторы с именем, которое уже
|
|
160
|
+
* присутствует в базовом наборе, переопределяют его (побеждает
|
|
161
|
+
* переданный снаружи), остальные — добавляются в конец списка.
|
|
162
|
+
*/
|
|
163
|
+
function createGranularityProvider(overrides = []) {
|
|
164
|
+
const overrideByName = new Map(overrides.map((component) => [component.name, component]));
|
|
165
|
+
return defineGranularProvider({
|
|
166
|
+
id: GRANULARITY_PROVIDER_ID,
|
|
167
|
+
contractVersion: 1,
|
|
168
|
+
packageBaseUrl,
|
|
169
|
+
components: [...baseComponents.map((component) => overrideByName.get(component.name) ?? component), ...overrides.filter((component) => !baseComponents.some((base) => base.name === component.name))],
|
|
170
|
+
theme
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
//#endregion
|
|
174
|
+
export { granularityThemeNames as a, granularityDefaultThemes as i, createGranularityProvider as n, granularityComponentConfigs as r, GRANULARITY_PROVIDER_ID as t };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-B6Ay2081.js","names":[],"sources":["../../src/components/GrDialog/config.ts","../../src/components/GrResponseErrorBanner/config.ts","../../src/granular-provider/shared.ts"],"sourcesContent":["import {defineGranularComponent} from '@feugene/unocss-preset-granular/contract'\n\nimport { grDialogSafelist } from './safelist'\n\nexport const grDialogConfig = defineGranularComponent(import.meta.url, {\n name: 'GrDialog',\n dependencies: ['GrButton', 'GrModal'],\n safelist: grDialogSafelist,\n})\n","import { defineGranularComponent } from '@feugene/unocss-preset-granular/contract'\n\nexport const grResponseErrorBannerConfig = defineGranularComponent(import.meta.url, {\n name: 'GrResponseErrorBanner',\n dependencies: ['GrAlert', 'GrButton'],\n})\n","// Общий код browser- и node-entry granular-provider'а.\n//\n// Оба entry (`./index.ts`, `./node.ts`) отличаются только списком\n// компонентов, у которых есть node-only вариант конфига (например,\n// `GrButton`, чей `config.node.ts` использует `tokenDefinitionsFromCssSync`\n// и тянет `node:fs`). Browser-вариант таких компонентов берёт облегчённый\n// `./config.ts`, node-вариант — `./config.node.ts`. Всё остальное — `id`,\n// `theme.*`, `packageBaseUrl` и полный список browser-safe компонентов —\n// живёт здесь.\n//\n// ВАЖНО: все `new URL('../styles/...', import.meta.url)` намеренно находятся\n// здесь — `shared.ts` лежит в той же директории, что и `index.ts` / `node.ts`,\n// поэтому относительные пути идентичны. Это ОК для браузера: бандлеры\n// транслируют такие конструкции в статические asset-URL и `node:*` в бандл\n// не утаскивают.\n//\n// `apps/showcase/scripts/generate-component-api.mjs` берёт список компонентов из\n// `Object.keys(granularityComponentConfigs)` (импорт модуля через vite SSR),\n// поэтому спецформат строк реестра больше не является API — можно свободно рефакторить.\nimport {\n defineGranularProvider,\n type GranularComponentDescriptor,\n type GranularProvider,\n} from '@feugene/unocss-preset-granular/contract'\nimport { grAlertConfig } from '../components/GrAlert/config'\nimport { grAvatarConfig } from '../components/GrAvatar/config'\nimport { grBadgeConfig } from '../components/GrBadge/config'\nimport { grBadgeWrapConfig } from '../components/GrBadgeWrap/config'\nimport { grBottomNavConfig } from '../components/GrBottomNav/config'\nimport { grButtonConfig } from '../components/GrButton/config'\nimport { grButtonGroupConfig } from '../components/GrButtonGroup/config'\nimport { grCardConfig } from '../components/GrCard/config'\nimport { grCheckboxConfig } from '../components/GrCheckbox/config'\nimport { grCollapseConfig } from '../components/GrCollapse/config'\nimport { grConfirmDialogConfig } from '../components/GrConfirmDialog/config'\nimport { grDataTableConfig } from '../components/GrDataTable/config'\nimport { grDialogConfig } from '../components/GrDialog/config'\nimport { grDialogServiceConfig } from '../components/GrDialogService/config'\nimport { grDividerConfig } from '../components/GrDivider/config'\nimport { grDrawerConfig } from '../components/GrDrawer/config'\nimport { grDropdownConfig } from '../components/GrDropdown/config'\nimport { grDropdownMenuConfig } from '../components/GrDropdownMenu/config'\nimport { grEmptyStateConfig } from '../components/GrEmptyState/config'\nimport { grFileUploadConfig } from '../components/GrFileUpload/config'\nimport { grFormFieldConfig } from '../components/GrFormField/config'\nimport { grFormFileConfig } from '../components/GrFormFile/config'\nimport { grFormSectionConfig } from '../components/GrFormSection/config'\nimport { grIconConfig } from '../components/GrIcon/config'\nimport { grImageViewerConfig } from '../components/GrImageViewer/config'\nimport { grInputConfig } from '../components/GrInput/config'\nimport { grInputTagConfig } from '../components/GrInputTag/config'\nimport { grKbdConfig } from '../components/GrKbd/config'\nimport { grLinkConfig } from '../components/GrLink/config'\nimport { grListConfig } from '../components/GrList/config'\nimport { grLoadingConfig } from '../components/GrLoading/config'\nimport { grModalConfig } from '../components/GrModal/config'\nimport { grNavbarConfig } from '../components/GrNavbar/config'\nimport { grNumberInputConfig } from '../components/GrNumberInput/config'\nimport { grPaginationConfig } from '../components/GrPagination/config'\nimport { grProgressBarConfig } from '../components/GrProgressBar/config'\nimport { grPromptDialogConfig } from '../components/GrPromptDialog/config'\nimport { grRadioConfig } from '../components/GrRadio/config'\nimport { grRadioGroupConfig } from '../components/GrRadioGroup/config'\nimport { grResponseErrorBannerConfig } from '../components/GrResponseErrorBanner/config'\nimport { grSegmentedConfig } from '../components/GrSegmented/config'\nimport { grSelectConfig } from '../components/GrSelect/config'\nimport { grSidebarConfig } from '../components/GrSidebar/config'\nimport { grSkeletonConfig } from '../components/GrSkeleton/config'\nimport { grSwitchConfig } from '../components/GrSwitch/config'\nimport { grTableConfig } from '../components/GrTable/config'\nimport { grTabPanelsConfig } from '../components/GrTabPanels/config'\nimport { grTabsConfig } from '../components/GrTabs/config'\nimport { grTextareaConfig } from '../components/GrTextarea/config'\nimport { grToasterConfig } from '../components/GrToaster/config'\nimport { grTooltipConfig } from '../components/GrTooltip/config'\nimport { grTreeConfig } from '../components/GrTree/config'\nimport { grTreeSelectConfig } from '../components/GrTreeSelect/config'\n\n/** Идентификатор провайдера — совпадает с именем пакета. */\nexport const GRANULARITY_PROVIDER_ID = '@feugene/granularity'\n\n// runtime-concat: литерал `new URL('..', import.meta.url)` rolldown заменяет\n// на `data:`-URL, поэтому собираем корень пакета из `import.meta.url` вручную\n// (отрезая два последних сегмента: имя файла и каталог `granular-provider/`).\nconst packageBaseUrl = `${import.meta.url.slice(\n 0,\n import.meta.url.lastIndexOf('/', import.meta.url.lastIndexOf('/') - 1) + 1,\n)}`\n\n/** Встроенные темы пакета. Единственный источник правды о списке тем. */\nexport const granularityThemeNames = ['light', 'dark'] as const\nexport type GranularityThemeName = (typeof granularityThemeNames)[number]\n\n/** Темы, активные по умолчанию, если окружение не переопределяет выбор. */\nexport const granularityDefaultThemes: readonly GranularityThemeName[] = ['light']\n\nconst theme = {\n baseCssUrl: new URL('../styles/base.css', import.meta.url).href,\n tokensCssUrl: new URL('../styles/tokens.css', import.meta.url).href,\n themes: {\n light: new URL('../styles/themes/light.css', import.meta.url).href,\n dark: new URL('../styles/themes/dark.css', import.meta.url).href,\n },\n defaultThemes: granularityDefaultThemes,\n} as const\n\n/**\n * Полный реестр публичных компонентов пакета `@feugene/granularity`.\n *\n * Ключи — имена компонентов (совпадают с публичным subpath‑экспортом\n * `@feugene/granularity/components/<Name>`). Значения — browser‑safe\n * `ds<Name>Config` из `./config.ts` рядом с SFC.\n *\n * Для компонентов, у которых есть node-only вариант конфига\n * (например, `GrButton` с `tokenDefinitionsFromCssSync`), browser‑конфиг\n * остаётся здесь, а node‑вариант подставляется снаружи через\n * `createGranularityProvider(overrides)` — см. `./index.ts` (browser)\n * и `./node.ts` (node).\n */\nexport const granularityComponentConfigs = {\n GrAlert: grAlertConfig,\n GrAvatar: grAvatarConfig,\n GrBadge: grBadgeConfig,\n GrBadgeWrap: grBadgeWrapConfig,\n GrBottomNav: grBottomNavConfig,\n GrButton: grButtonConfig,\n GrButtonGroup: grButtonGroupConfig,\n GrCard: grCardConfig,\n GrCheckbox: grCheckboxConfig,\n GrCollapse: grCollapseConfig,\n GrConfirmDialog: grConfirmDialogConfig,\n GrDataTable: grDataTableConfig,\n GrDialog: grDialogConfig,\n GrDialogService: grDialogServiceConfig,\n GrDivider: grDividerConfig,\n GrDrawer: grDrawerConfig,\n GrDropdown: grDropdownConfig,\n GrDropdownMenu: grDropdownMenuConfig,\n GrEmptyState: grEmptyStateConfig,\n GrFileUpload: grFileUploadConfig,\n GrFormField: grFormFieldConfig,\n GrFormFile: grFormFileConfig,\n GrFormSection: grFormSectionConfig,\n GrIcon: grIconConfig,\n GrImageViewer: grImageViewerConfig,\n GrInput: grInputConfig,\n GrInputTag: grInputTagConfig,\n GrKbd: grKbdConfig,\n GrLink: grLinkConfig,\n GrList: grListConfig,\n GrLoading: grLoadingConfig,\n GrModal: grModalConfig,\n GrNavbar: grNavbarConfig,\n GrNumberInput: grNumberInputConfig,\n GrPagination: grPaginationConfig,\n GrProgressBar: grProgressBarConfig,\n GrPromptDialog: grPromptDialogConfig,\n GrRadio: grRadioConfig,\n GrRadioGroup: grRadioGroupConfig,\n GrResponseErrorBanner: grResponseErrorBannerConfig,\n GrSegmented: grSegmentedConfig,\n GrSelect: grSelectConfig,\n GrSidebar: grSidebarConfig,\n GrSkeleton: grSkeletonConfig,\n GrSwitch: grSwitchConfig,\n GrTable: grTableConfig,\n GrTabPanels: grTabPanelsConfig,\n GrTabs: grTabsConfig,\n GrTextarea: grTextareaConfig,\n GrToaster: grToasterConfig,\n GrTooltip: grTooltipConfig,\n GrTree: grTreeConfig,\n GrTreeSelect: grTreeSelectConfig,\n}\n\nexport type GranularityComponentName = keyof typeof granularityComponentConfigs\n\n/** Базовый (browser-safe) набор компонентов в порядке реестра. */\nconst baseComponents: readonly GranularComponentDescriptor[] = Object.values(\n granularityComponentConfigs,\n)\n\n/**\n * Собирает granular-provider пакета `@feugene/granularity`.\n *\n * Принимает массив `GranularComponentDescriptor`'ов — это компоненты,\n * у которых есть node-only вариант конфига (например, `GrButton` с\n * `tokenDefinitionsFromCssSync`). Дескрипторы с именем, которое уже\n * присутствует в базовом наборе, переопределяют его (побеждает\n * переданный снаружи), остальные — добавляются в конец списка.\n */\nexport function createGranularityProvider(\n overrides: readonly GranularComponentDescriptor[] = [],\n): GranularProvider {\n const overrideByName = new Map(\n overrides.map(component => [component.name, component]),\n )\n const components: GranularComponentDescriptor[] = [\n ...baseComponents.map(component => overrideByName.get(component.name) ?? component),\n ...overrides.filter(component => !baseComponents.some(base => base.name === component.name)),\n ]\n\n return defineGranularProvider({\n id: GRANULARITY_PROVIDER_ID,\n contractVersion: 1,\n packageBaseUrl,\n components,\n theme,\n })\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAa,iBAAiB,wBAAwB,OAAO,KAAK,KAAK;CACrE,MAAM;CACN,cAAc,CAAC,YAAY,SAAS;CACpC,UAAU;AACZ,CAAC;;;ACND,IAAa,8BAA8B,wBAAwB,OAAO,KAAK,KAAK;CAClF,MAAM;CACN,cAAc,CAAC,WAAW,UAAU;AACtC,CAAC;;;;AC0ED,IAAa,0BAA0B;AAKvC,IAAM,iBAAiB,GAAG,OAAO,KAAK,IAAI,MACxC,GACA,OAAO,KAAK,IAAI,YAAY,KAAK,OAAO,KAAK,IAAI,YAAY,GAAG,IAAI,CAAC,IAAI,CAC3E;;AAGA,IAAa,wBAAwB,CAAC,SAAS,MAAM;;AAIrD,IAAa,2BAA4D,CAAC,OAAO;AAEjF,IAAM,QAAQ;CACZ,YAAY,IAAA,IAAA,64FAAA,KAAA,OAAA,KAAA,GAAA,CAA8C,CAAC;CAC3D,cAAc,IAAA,IAAA,y2NAAA,KAAA,OAAA,KAAA,GAAA,CAAgD,CAAC;CAC/D,QAAQ;EACN,OAAO,IAAA,IAAA,qrGAAA,KAAA,OAAA,KAAA,GAAA,CAAsD,CAAC;EAC9D,MAAM,IAAA,IAAA,6tHAAA,KAAA,OAAA,KAAA,GAAA,CAAqD,CAAC;CAC9D;CACA,eAAe;AACjB;;;;;;;;;;;;;;AAeA,IAAa,8BAA8B;CACzC,SAAS;CACT,UAAU;CACV,SAAS;CACT,aAAa;CACb,aAAa;CACb,UAAU;CACV,eAAe;CACf,QAAQ;CACR,YAAY;CACZ,YAAY;CACZ,iBAAiB;CACjB,aAAa;CACb,UAAU;CACV,iBAAiB;CACjB,WAAW;CACX,UAAU;CACV,YAAY;CACZ,gBAAgB;CAChB,cAAc;CACd,cAAc;CACd,aAAa;CACb,YAAY;CACZ,eAAe;CACf,QAAQ;CACR,eAAe;CACf,SAAS;CACT,YAAY;CACZ,OAAO;CACP,QAAQ;CACR,QAAQ;CACR,WAAW;CACX,SAAS;CACT,UAAU;CACV,eAAe;CACf,cAAc;CACd,eAAe;CACf,gBAAgB;CAChB,SAAS;CACT,cAAc;CACd,uBAAuB;CACvB,aAAa;CACb,UAAU;CACV,WAAW;CACX,YAAY;CACZ,UAAU;CACV,SAAS;CACT,aAAa;CACb,QAAQ;CACR,YAAY;CACZ,WAAW;CACX,WAAW;CACX,QAAQ;CACR,cAAc;AAChB;;AAKA,IAAM,iBAAyD,OAAO,OACpE,2BACF;;;;;;;;;;AAWA,SAAgB,0BACd,YAAoD,CAAC,GACnC;CAClB,MAAM,iBAAiB,IAAI,IACzB,UAAU,KAAI,cAAa,CAAC,UAAU,MAAM,SAAS,CAAC,CACxD;CAMA,OAAO,uBAAuB;EAC5B,IAAI;EACJ,iBAAiB;EACjB;EACA,aARA,GAAG,eAAe,KAAI,cAAa,eAAe,IAAI,UAAU,IAAI,KAAK,SAAS,GAClF,GAAG,UAAU,QAAO,cAAa,CAAC,eAAe,MAAK,SAAQ,KAAK,SAAS,UAAU,IAAI,CAAC,CAO3F;EACA;CACF,CAAC;AACH"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { nextTick, onBeforeUnmount, onMounted, onUpdated, ref } from "vue";
|
|
2
|
+
//#region src/composables/internal/useAddonMeasurement.ts
|
|
3
|
+
/**
|
|
4
|
+
* Измерение фактической ширины prefix/suffix add-on'ов через `ResizeObserver`.
|
|
5
|
+
* Общая логика GrInput/GrNumberInput (раньше дублировалась ~60 строк в каждом).
|
|
6
|
+
*
|
|
7
|
+
* Потребитель вешает возвращённые `prefixEl`/`suffixEl` на DOM-элементы аддонов
|
|
8
|
+
* и передаёт реактивные `hasPrefix`/`hasSuffix` (обычно — наличие слотов).
|
|
9
|
+
* Возвращает измеренные ширины (`"<n>px"` или `undefined`, если элемент
|
|
10
|
+
* отсутствует/скрыт/нулевой — например, в jsdom).
|
|
11
|
+
*/
|
|
12
|
+
function useAddonMeasurement(hasPrefix, hasSuffix) {
|
|
13
|
+
const prefixEl = ref(null);
|
|
14
|
+
const suffixEl = ref(null);
|
|
15
|
+
const measuredPrefixWidth = ref(void 0);
|
|
16
|
+
const measuredSuffixWidth = ref(void 0);
|
|
17
|
+
let ro = null;
|
|
18
|
+
let scheduled = false;
|
|
19
|
+
function readWidthPx(el) {
|
|
20
|
+
if (!el) return void 0;
|
|
21
|
+
const width = Math.ceil(el.getBoundingClientRect().width || 0);
|
|
22
|
+
if (width <= 0) return void 0;
|
|
23
|
+
return `${width}px`;
|
|
24
|
+
}
|
|
25
|
+
function measure() {
|
|
26
|
+
measuredPrefixWidth.value = hasPrefix.value ? readWidthPx(prefixEl.value) : void 0;
|
|
27
|
+
measuredSuffixWidth.value = hasSuffix.value ? readWidthPx(suffixEl.value) : void 0;
|
|
28
|
+
}
|
|
29
|
+
function refreshObserver() {
|
|
30
|
+
if (typeof ResizeObserver === "undefined") return;
|
|
31
|
+
if (!ro) ro = new ResizeObserver(() => measure());
|
|
32
|
+
ro.disconnect();
|
|
33
|
+
if (prefixEl.value) ro.observe(prefixEl.value);
|
|
34
|
+
if (suffixEl.value) ro.observe(suffixEl.value);
|
|
35
|
+
}
|
|
36
|
+
function scheduleMeasure() {
|
|
37
|
+
if (scheduled) return;
|
|
38
|
+
scheduled = true;
|
|
39
|
+
nextTick(() => {
|
|
40
|
+
scheduled = false;
|
|
41
|
+
measure();
|
|
42
|
+
refreshObserver();
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
onMounted(() => scheduleMeasure());
|
|
46
|
+
onUpdated(() => scheduleMeasure());
|
|
47
|
+
onBeforeUnmount(() => ro?.disconnect());
|
|
48
|
+
return {
|
|
49
|
+
prefixEl,
|
|
50
|
+
suffixEl,
|
|
51
|
+
measuredPrefixWidth,
|
|
52
|
+
measuredSuffixWidth
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/** Складывает две CSS-длины: числовые `px` — арифметически, иначе через `calc()`. */
|
|
56
|
+
function addLen(a, b) {
|
|
57
|
+
if (a === "0px") return b;
|
|
58
|
+
if (b === "0px") return a;
|
|
59
|
+
const apx = a.endsWith("px") ? Number(a.slice(0, -2)) : null;
|
|
60
|
+
const bpx = b.endsWith("px") ? Number(b.slice(0, -2)) : null;
|
|
61
|
+
if (apx !== null && Number.isFinite(apx) && bpx !== null && Number.isFinite(bpx)) return `${apx + bpx}px`;
|
|
62
|
+
return `calc(${a} + ${b})`;
|
|
63
|
+
}
|
|
64
|
+
//#endregion
|
|
65
|
+
export { useAddonMeasurement as n, addLen as t };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAddonMeasurement-DM0akF4C.js","names":[],"sources":["../../src/composables/internal/useAddonMeasurement.ts"],"sourcesContent":["import { nextTick, onBeforeUnmount, onMounted, onUpdated, ref } from 'vue'\nimport type { Ref } from 'vue'\n\n/**\n * Измерение фактической ширины prefix/suffix add-on'ов через `ResizeObserver`.\n * Общая логика GrInput/GrNumberInput (раньше дублировалась ~60 строк в каждом).\n *\n * Потребитель вешает возвращённые `prefixEl`/`suffixEl` на DOM-элементы аддонов\n * и передаёт реактивные `hasPrefix`/`hasSuffix` (обычно — наличие слотов).\n * Возвращает измеренные ширины (`\"<n>px\"` или `undefined`, если элемент\n * отсутствует/скрыт/нулевой — например, в jsdom).\n */\nexport function useAddonMeasurement(hasPrefix: Ref<boolean>, hasSuffix: Ref<boolean>) {\n const prefixEl = ref<HTMLElement | null>(null)\n const suffixEl = ref<HTMLElement | null>(null)\n\n const measuredPrefixWidth = ref<string | undefined>(undefined)\n const measuredSuffixWidth = ref<string | undefined>(undefined)\n\n let ro: ResizeObserver | null = null\n let scheduled = false\n\n function readWidthPx(el: HTMLElement | null): string | undefined {\n if (!el) return undefined\n\n const width = Math.ceil(el.getBoundingClientRect().width || 0)\n // jsdom часто отдаёт 0; не перезатираем fallback minWidth в этом случае.\n if (width <= 0) return undefined\n\n return `${width}px`\n }\n\n function measure(): void {\n measuredPrefixWidth.value = hasPrefix.value ? readWidthPx(prefixEl.value) : undefined\n measuredSuffixWidth.value = hasSuffix.value ? readWidthPx(suffixEl.value) : undefined\n }\n\n function refreshObserver(): void {\n if (typeof ResizeObserver === 'undefined') return\n if (!ro) ro = new ResizeObserver(() => measure())\n\n ro.disconnect()\n if (prefixEl.value) ro.observe(prefixEl.value)\n if (suffixEl.value) ro.observe(suffixEl.value)\n }\n\n function scheduleMeasure(): void {\n if (scheduled) return\n scheduled = true\n\n void nextTick(() => {\n scheduled = false\n measure()\n refreshObserver()\n })\n }\n\n onMounted(() => scheduleMeasure())\n onUpdated(() => scheduleMeasure())\n onBeforeUnmount(() => ro?.disconnect())\n\n return {\n prefixEl,\n suffixEl,\n measuredPrefixWidth,\n measuredSuffixWidth,\n }\n}\n\n/** Складывает две CSS-длины: числовые `px` — арифметически, иначе через `calc()`. */\nexport function addLen(a: string, b: string): string {\n if (a === '0px') return b\n if (b === '0px') return a\n\n const apx = a.endsWith('px') ? Number(a.slice(0, -2)) : null\n const bpx = b.endsWith('px') ? Number(b.slice(0, -2)) : null\n\n if (apx !== null && Number.isFinite(apx) && bpx !== null && Number.isFinite(bpx)) {\n return `${apx + bpx}px`\n }\n\n return `calc(${a} + ${b})`\n}\n"],"mappings":";;;;;;;;;;;AAYA,SAAgB,oBAAoB,WAAyB,WAAyB;CACpF,MAAM,WAAW,IAAwB,IAAI;CAC7C,MAAM,WAAW,IAAwB,IAAI;CAE7C,MAAM,sBAAsB,IAAwB,KAAA,CAAS;CAC7D,MAAM,sBAAsB,IAAwB,KAAA,CAAS;CAE7D,IAAI,KAA4B;CAChC,IAAI,YAAY;CAEhB,SAAS,YAAY,IAA4C;EAC/D,IAAI,CAAC,IAAI,OAAO,KAAA;EAEhB,MAAM,QAAQ,KAAK,KAAK,GAAG,sBAAsB,CAAC,CAAC,SAAS,CAAC;EAE7D,IAAI,SAAS,GAAG,OAAO,KAAA;EAEvB,OAAO,GAAG,MAAM;CAClB;CAEA,SAAS,UAAgB;EACvB,oBAAoB,QAAQ,UAAU,QAAQ,YAAY,SAAS,KAAK,IAAI,KAAA;EAC5E,oBAAoB,QAAQ,UAAU,QAAQ,YAAY,SAAS,KAAK,IAAI,KAAA;CAC9E;CAEA,SAAS,kBAAwB;EAC/B,IAAI,OAAO,mBAAmB,aAAa;EAC3C,IAAI,CAAC,IAAI,KAAK,IAAI,qBAAqB,QAAQ,CAAC;EAEhD,GAAG,WAAW;EACd,IAAI,SAAS,OAAO,GAAG,QAAQ,SAAS,KAAK;EAC7C,IAAI,SAAS,OAAO,GAAG,QAAQ,SAAS,KAAK;CAC/C;CAEA,SAAS,kBAAwB;EAC/B,IAAI,WAAW;EACf,YAAY;EAEZ,eAAoB;GAClB,YAAY;GACZ,QAAQ;GACR,gBAAgB;EAClB,CAAC;CACH;CAEA,gBAAgB,gBAAgB,CAAC;CACjC,gBAAgB,gBAAgB,CAAC;CACjC,sBAAsB,IAAI,WAAW,CAAC;CAEtC,OAAO;EACL;EACA;EACA;EACA;CACF;AACF;;AAGA,SAAgB,OAAO,GAAW,GAAmB;CACnD,IAAI,MAAM,OAAO,OAAO;CACxB,IAAI,MAAM,OAAO,OAAO;CAExB,MAAM,MAAM,EAAE,SAAS,IAAI,IAAI,OAAO,EAAE,MAAM,GAAG,EAAE,CAAC,IAAI;CACxD,MAAM,MAAM,EAAE,SAAS,IAAI,IAAI,OAAO,EAAE,MAAM,GAAG,EAAE,CAAC,IAAI;CAExD,IAAI,QAAQ,QAAQ,OAAO,SAAS,GAAG,KAAK,QAAQ,QAAQ,OAAO,SAAS,GAAG,GAC7E,OAAO,GAAG,MAAM,IAAI;CAGtB,OAAO,QAAQ,EAAE,KAAK,EAAE;AAC1B"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { onUnmounted, watch } from "vue";
|
|
2
|
+
//#region src/composables/internal/useEscapeToClose.ts
|
|
3
|
+
/**
|
|
4
|
+
* Пока `open` истинно, слушает `keydown` на `document` и вызывает `onEscape`
|
|
5
|
+
* по нажатию Esc; снимает слушатель при закрытии и размонтировании.
|
|
6
|
+
*
|
|
7
|
+
* Общая dismiss-логика floating-компонентов (GrSelect/GrDropdown) — раньше
|
|
8
|
+
* дублировалась (`closeOnEscape` + watch(open) + onUnmounted) в каждом.
|
|
9
|
+
* Click-outside у этих компонентов закрывается общей директивой `vClickOutside`,
|
|
10
|
+
* поэтому здесь только Esc-часть.
|
|
11
|
+
*/
|
|
12
|
+
function useEscapeToClose(open, onEscape) {
|
|
13
|
+
function onKeydown(event) {
|
|
14
|
+
if (event.key === "Escape") onEscape();
|
|
15
|
+
}
|
|
16
|
+
watch(open, (isOpen) => {
|
|
17
|
+
if (typeof document === "undefined") return;
|
|
18
|
+
document.removeEventListener("keydown", onKeydown);
|
|
19
|
+
if (isOpen) document.addEventListener("keydown", onKeydown);
|
|
20
|
+
}, { immediate: true });
|
|
21
|
+
onUnmounted(() => {
|
|
22
|
+
if (typeof document === "undefined") return;
|
|
23
|
+
document.removeEventListener("keydown", onKeydown);
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
//#endregion
|
|
27
|
+
export { useEscapeToClose as t };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useEscapeToClose-C2t_S1gh.js","names":[],"sources":["../../src/composables/internal/useEscapeToClose.ts"],"sourcesContent":["import { onUnmounted, watch } from 'vue'\nimport type { Ref } from 'vue'\n\n/**\n * Пока `open` истинно, слушает `keydown` на `document` и вызывает `onEscape`\n * по нажатию Esc; снимает слушатель при закрытии и размонтировании.\n *\n * Общая dismiss-логика floating-компонентов (GrSelect/GrDropdown) — раньше\n * дублировалась (`closeOnEscape` + watch(open) + onUnmounted) в каждом.\n * Click-outside у этих компонентов закрывается общей директивой `vClickOutside`,\n * поэтому здесь только Esc-часть.\n */\nexport function useEscapeToClose(open: Ref<boolean>, onEscape: () => void): void {\n function onKeydown(event: KeyboardEvent): void {\n if (event.key === 'Escape') onEscape()\n }\n\n watch(\n open,\n (isOpen) => {\n if (typeof document === 'undefined') return\n\n document.removeEventListener('keydown', onKeydown)\n if (isOpen) document.addEventListener('keydown', onKeydown)\n },\n { immediate: true },\n )\n\n onUnmounted(() => {\n if (typeof document === 'undefined') return\n document.removeEventListener('keydown', onKeydown)\n })\n}\n"],"mappings":";;;;;;;;;;;AAYA,SAAgB,iBAAiB,MAAoB,UAA4B;CAC/E,SAAS,UAAU,OAA4B;EAC7C,IAAI,MAAM,QAAQ,UAAU,SAAS;CACvC;CAEA,MACE,OACC,WAAW;EACV,IAAI,OAAO,aAAa,aAAa;EAErC,SAAS,oBAAoB,WAAW,SAAS;EACjD,IAAI,QAAQ,SAAS,iBAAiB,WAAW,SAAS;CAC5D,GACA,EAAE,WAAW,KAAK,CACpB;CAEA,kBAAkB;EAChB,IAAI,OAAO,aAAa,aAAa;EACrC,SAAS,oBAAoB,WAAW,SAAS;CACnD,CAAC;AACH"}
|