@feugene/granularity 0.9.4 → 0.11.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-B_nSBc7W.js → config-1uSYl98Y.js} +5 -5
- package/dist/chunks/{config-B_nSBc7W.js.map → config-1uSYl98Y.js.map} +1 -1
- package/dist/chunks/{config-DaHI5bD_2.js.map → config-8Pcutu1j2.js.map} +1 -1
- package/dist/chunks/{config-DoBk_CzG.js.map → config-B0qIpo8m.js.map} +1 -1
- package/dist/chunks/{config-BY81UKv0.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-72sW9Bag2.js → config-BIRO0vDJ2.js} +6 -6
- package/dist/chunks/{config-72sW9Bag2.js.map → config-BIRO0vDJ2.js.map} +1 -1
- package/dist/chunks/{config-Dzd6BzIN2.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-B1kFmhpM.js.map → config-BUHuGBik.js.map} +1 -1
- package/dist/chunks/{config-DF_RlCIO.js.map → config-BWGGp7uV.js.map} +1 -1
- package/dist/chunks/config-BX1JTrkV2.js +14 -0
- package/dist/chunks/config-BX1JTrkV2.js.map +1 -0
- package/dist/chunks/{config-BduXEXjt.js.map → config-BXtAmU3s.js.map} +1 -1
- package/dist/chunks/{config-O1_FTqD3.js.map → config-Bah4oHwL.js.map} +1 -1
- package/dist/chunks/{config-Br_qI3Za.js → config-C49QUoJL.js} +3 -3
- package/dist/chunks/config-C49QUoJL.js.map +1 -0
- 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-CdJpnjDj.js → config-C7NpDrfO.js} +5 -5
- package/dist/chunks/{config-CdJpnjDj.js.map → config-C7NpDrfO.js.map} +1 -1
- package/dist/chunks/{config-DSBlHQVa.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-BeQuykDk2.js.map → config-CGHLoBlH2.js.map} +1 -1
- package/dist/chunks/{config-ChQxl75m.js.map → config-CThzliFi.js.map} +1 -1
- package/dist/chunks/{config-DmjwIqx1.js.map → config-Cb2PAlSD.js.map} +1 -1
- package/dist/chunks/{config-BnWSHTEU.js → config-ClhKPJvg.js} +5 -5
- package/dist/chunks/{config-BnWSHTEU.js.map → config-ClhKPJvg.js.map} +1 -1
- package/dist/chunks/{config-d386uO3O.js → config-Cpi9Mh2J.js} +3 -3
- package/dist/chunks/{config-d386uO3O.js.map → config-Cpi9Mh2J.js.map} +1 -1
- package/dist/chunks/{config-Cp_XHsze.js → config-CrG1XiE7.js} +4 -4
- package/dist/chunks/{config-Cp_XHsze.js.map → config-CrG1XiE7.js.map} +1 -1
- package/dist/chunks/{config-C5OwJM3-.js → config-CziwTDDL.js} +3 -3
- package/dist/chunks/{config-C5OwJM3-.js.map → config-CziwTDDL.js.map} +1 -1
- package/dist/chunks/{config-BbKroFtR.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-DUcu1D68.js} +3 -3
- package/dist/chunks/config-DUcu1D68.js.map +1 -0
- package/dist/chunks/{config-D4s_QWVP.js → config-D_R56_gT.js} +5 -5
- package/dist/chunks/{config-D4s_QWVP.js.map → config-D_R56_gT.js.map} +1 -1
- package/dist/chunks/{config-_3De4HFf.js → config-DezDih8_.js} +4 -4
- package/dist/chunks/config-DezDih8_.js.map +1 -0
- package/dist/chunks/{config-CFf7xaG1.js → config-DnvPqu4g.js} +3 -3
- package/dist/chunks/{config-CFf7xaG1.js.map → config-DnvPqu4g.js.map} +1 -1
- package/dist/chunks/{config-D6Oe3blW2.js.map → config-DpqOnJiz2.js.map} +1 -1
- package/dist/chunks/{config-V3LF-b_F.js.map → config-Dxuwwepq.js.map} +1 -1
- package/dist/chunks/{config-CvGdaXvH.js.map → config-HZto2PVy.js.map} +1 -1
- package/dist/chunks/{config-BOdu-O_B.js.map → config-JOtB4mzs.js.map} +1 -1
- package/dist/chunks/{config-iuMz79Mg.js.map → config-JpHA4Xx0.js.map} +1 -1
- package/dist/chunks/{config-CetsgpaZ2.js → config-LGrZIdaZ2.js} +1 -1
- package/dist/chunks/{config-CetsgpaZ2.js.map → config-LGrZIdaZ2.js.map} +1 -1
- package/dist/chunks/{config-Dcb7xK-C.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-BU0olrvr.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-Ci9nXGUV.js.map → config-ZiXWIRBX.js.map} +1 -1
- package/dist/chunks/{config-B2YTEe_h.js → config-eYLZYOUS2.js} +63 -63
- package/dist/chunks/config-eYLZYOUS2.js.map +1 -0
- package/dist/chunks/{config-Bcf-8XlK2.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/{dialogShared-BtXUk6Zc.js.map → dialogShared-CxW62PQE.js.map} +1 -1
- package/dist/chunks/en-BdtiS2d3.js +138 -0
- package/dist/chunks/en-BdtiS2d3.js.map +1 -0
- package/dist/chunks/es-BGRMZbe9.js +138 -0
- package/dist/chunks/es-BGRMZbe9.js.map +1 -0
- package/dist/chunks/{es-Bx3Kuy6z.js → es-DBhctWg-.js} +3 -3
- package/dist/chunks/{es-Bx3Kuy6z.js.map → es-DBhctWg-.js.map} +1 -1
- 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-B_-DKytw.js +35 -0
- package/dist/chunks/grDropdownStyles-B_-DKytw.js.map +1 -0
- package/dist/chunks/{grLoadingStyles-DmI-SJ3i.js.map → grLoadingStyles-R5sreH__.js.map} +1 -1
- package/dist/chunks/{grModalStyles-DS1Vl6EW.js → grModalStyles-DWd3i05Q.js} +7 -7
- package/dist/chunks/grModalStyles-DWd3i05Q.js.map +1 -0
- package/dist/chunks/{grSelectStyles-pUt19VGy.js → grSelectStyles-CLK5hRd3.js} +3 -3
- package/dist/chunks/grSelectStyles-CLK5hRd3.js.map +1 -0
- package/dist/chunks/{grStyle-CUaTmpyW.js → grStyle-Blc9otAx.js} +6 -6
- package/dist/chunks/grStyle-Blc9otAx.js.map +1 -0
- package/dist/chunks/{granularityI18n-LcJ88Vce.js → granularityI18n-DoV7Ca2m.js} +18 -3
- package/dist/chunks/granularityI18n-DoV7Ca2m.js.map +1 -0
- package/dist/chunks/info-Be2OccTu.js.map +1 -0
- package/dist/chunks/loader-circle-CfVLz7lb.js.map +1 -0
- package/dist/chunks/ru-BFCnOiML.js +138 -0
- package/dist/chunks/ru-BFCnOiML.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-ChvcQgDl.js +168 -0
- package/dist/chunks/shared-ChvcQgDl.js.map +1 -0
- package/dist/chunks/{transition-mJ3PZCHH.js → transition-TLFw4KBn.js} +26 -12
- package/dist/chunks/{transition-mJ3PZCHH.js.map → transition-TLFw4KBn.js.map} +1 -1
- 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-DtM6TyE4.js +1249 -0
- package/dist/chunks/useFloating-DtM6TyE4.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-Br6WJkLE.js → GrConfirmDialog-BWYKCsHd.js} +20 -14
- package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-BWYKCsHd.js.map +1 -0
- package/dist/components/GrConfirmDialog/index.js +2 -2
- package/dist/components/GrDataTable/chunks/{GrDataTable-ClcYiyc8.js → GrDataTable-ptbARmJ3.js} +7 -7
- package/dist/components/GrDataTable/chunks/{GrDataTable-ClcYiyc8.js.map → GrDataTable-ptbARmJ3.js.map} +1 -1
- package/dist/components/GrDataTable/index.js +2 -2
- package/dist/components/GrDialog/chunks/{GrDialog-C7XLxp8e.js → GrDialog-5DAS-1Lb.js} +14 -12
- package/dist/components/GrDialog/chunks/GrDialog-5DAS-1Lb.js.map +1 -0
- package/dist/components/GrDialog/index.js +3 -3
- package/dist/components/GrDialogService/chunks/GrDialogService-DY_fmaMu.js +425 -0
- package/dist/components/GrDialogService/chunks/GrDialogService-DY_fmaMu.js.map +1 -0
- package/dist/components/GrDialogService/index.js +3 -0
- package/dist/components/GrDrawer/chunks/{GrDrawer-BW3wtI7h.js → GrDrawer-D1kzsjXN.js} +19 -15
- package/dist/components/GrDrawer/chunks/GrDrawer-D1kzsjXN.js.map +1 -0
- package/dist/components/GrDrawer/index.js +2 -2
- package/dist/components/GrDropdown/chunks/GrDropdown-BXb5Cxxf.js +95 -0
- package/dist/components/GrDropdown/chunks/GrDropdown-BXb5Cxxf.js.map +1 -0
- package/dist/components/GrDropdown/index.js +2 -2
- package/dist/components/GrDropdownMenu/chunks/{GrDropdownMenu-CLPwbiyG.js → GrDropdownMenu-DFEJLPcV.js} +10 -10
- package/dist/components/GrDropdownMenu/chunks/{GrDropdownMenu-CLPwbiyG.js.map → GrDropdownMenu-DFEJLPcV.js.map} +1 -1
- package/dist/components/GrDropdownMenu/index.js +2 -2
- package/dist/components/GrEmptyState/chunks/{GrEmptyState-Dj2V5GaX.js → GrEmptyState-CA3BiTV7.js} +3 -3
- package/dist/components/GrEmptyState/chunks/{GrEmptyState-Dj2V5GaX.js.map → GrEmptyState-CA3BiTV7.js.map} +1 -1
- package/dist/components/GrEmptyState/index.js +2 -2
- package/dist/components/GrFileUpload/chunks/{GrFileUpload-BEKNB1RM.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-U7c_aDPJ.js → GrFormField-BujNQrw8.js} +1 -1
- package/dist/components/GrFormField/chunks/{GrFormField-U7c_aDPJ.js.map → GrFormField-BujNQrw8.js.map} +1 -1
- package/dist/components/GrFormField/index.js +2 -2
- package/dist/components/GrFormFile/chunks/{GrFormFile-CIleXnfr.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-DpGhY7MX.js → GrFormSection-Ce21jcgo.js} +1 -1
- package/dist/components/GrFormSection/chunks/{GrFormSection-DpGhY7MX.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-CsvXQHM9.js → GrImageViewer-OCUIrNh2.js} +44 -33
- package/dist/components/GrImageViewer/chunks/GrImageViewer-OCUIrNh2.js.map +1 -0
- package/dist/components/GrImageViewer/index.js +2 -2
- package/dist/components/GrInput/chunks/{GrInput-gwFQ1sk4.js → GrInput-C8pOJgCi.js} +43 -66
- package/dist/components/GrInput/chunks/GrInput-C8pOJgCi.js.map +1 -0
- package/dist/components/GrInput/index.js +2 -2
- package/dist/components/GrInputTag/chunks/{GrInputTag-Dcj3F6rQ.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/GrLink/chunks/{GrLink-BMwn2iJ9.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-D8nM1FuV.js → GrList-Dx772Ns4.js} +1 -1
- package/dist/components/GrList/chunks/{GrList-D8nM1FuV.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-lh0lOmoi.js → GrModal-BkjW9jZS.js} +7 -7
- package/dist/components/GrModal/chunks/{GrModal-lh0lOmoi.js.map → GrModal-BkjW9jZS.js.map} +1 -1
- package/dist/components/GrModal/index.js +3 -3
- package/dist/components/GrNavbar/chunks/{GrNavbar-BH7XiF9q.js → GrNavbar-DW3MiIIf.js} +6 -6
- package/dist/components/GrNavbar/chunks/{GrNavbar-BH7XiF9q.js.map → GrNavbar-DW3MiIIf.js.map} +1 -1
- package/dist/components/GrNavbar/index.js +2 -2
- package/dist/components/GrNumberInput/chunks/{GrNumberInput-YIWhV85S.js → GrNumberInput-CldPIWQx.js} +51 -61
- package/dist/components/GrNumberInput/chunks/GrNumberInput-CldPIWQx.js.map +1 -0
- package/dist/components/GrNumberInput/index.js +2 -2
- package/dist/components/GrPagination/chunks/GrPagination-Bu9wv6it.js +165 -0
- package/dist/components/GrPagination/chunks/GrPagination-Bu9wv6it.js.map +1 -0
- package/dist/components/GrPagination/index.js +2 -2
- package/dist/components/GrProgressBar/chunks/{GrProgressBar-C2HdYjp4.js → GrProgressBar-CC3z-Zqp.js} +3 -3
- package/dist/components/GrProgressBar/chunks/{GrProgressBar-C2HdYjp4.js.map → GrProgressBar-CC3z-Zqp.js.map} +1 -1
- package/dist/components/GrProgressBar/index.js +2 -2
- package/dist/components/GrPromptDialog/chunks/{GrPromptDialog-BV4EW3XO.js → GrPromptDialog-TmWXbpEP.js} +31 -23
- package/dist/components/GrPromptDialog/chunks/GrPromptDialog-TmWXbpEP.js.map +1 -0
- package/dist/components/GrPromptDialog/index.js +2 -2
- package/dist/components/GrRadio/chunks/{GrRadio-IFU9Hiu2.js → GrRadio-CPTixXaY.js} +6 -6
- package/dist/components/GrRadio/chunks/{GrRadio-IFU9Hiu2.js.map → GrRadio-CPTixXaY.js.map} +1 -1
- package/dist/components/GrRadio/index.js +2 -2
- package/dist/components/GrRadioGroup/chunks/{GrRadioGroup-C8IcJuuF.js → GrRadioGroup-vKZCbkCp.js} +3 -3
- package/dist/components/GrRadioGroup/chunks/{GrRadioGroup-C8IcJuuF.js.map → GrRadioGroup-vKZCbkCp.js.map} +1 -1
- package/dist/components/GrRadioGroup/index.js +2 -2
- package/dist/components/GrResponseErrorBanner/chunks/{GrResponseErrorBanner-BMvXREcv.js → GrResponseErrorBanner-BWJNe2gr.js} +21 -18
- package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-BWJNe2gr.js.map +1 -0
- package/dist/components/GrResponseErrorBanner/chunks/{GrResponseErrorBanner-CzdTh4gd.js → GrResponseErrorBanner-Cdu9ekK9.js} +5 -5
- package/dist/components/GrResponseErrorBanner/chunks/{GrResponseErrorBanner-CzdTh4gd.js.map → GrResponseErrorBanner-Cdu9ekK9.js.map} +1 -1
- package/dist/components/GrResponseErrorBanner/index.js +2 -2
- package/dist/components/GrSegmented/chunks/{GrSegmented-BRmwBsEG.js → GrSegmented-C1y0UXpQ.js} +5 -5
- package/dist/components/GrSegmented/chunks/{GrSegmented-BRmwBsEG.js.map → GrSegmented-C1y0UXpQ.js.map} +1 -1
- package/dist/components/GrSegmented/index.js +2 -2
- package/dist/components/GrSelect/chunks/{GrSelect-CnHdbPlf.js → GrSelect-RShK21lK.js} +106 -112
- package/dist/components/GrSelect/chunks/GrSelect-RShK21lK.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-URyMkBqI.js → GrSkeleton-DsN-_CDZ.js} +1 -1
- package/dist/components/GrSkeleton/chunks/{GrSkeleton-URyMkBqI.js.map → GrSkeleton-DsN-_CDZ.js.map} +1 -1
- package/dist/components/GrSkeleton/index.js +2 -2
- package/dist/components/GrSwitch/chunks/{GrSwitch-29h0QhMO.js → GrSwitch-DAioyccZ.js} +10 -10
- package/dist/components/GrSwitch/chunks/{GrSwitch-29h0QhMO.js.map → GrSwitch-DAioyccZ.js.map} +1 -1
- package/dist/components/GrSwitch/index.js +2 -2
- 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-D3ntDdtg.js → GrTabs-Z-FDJUr_.js} +3 -3
- package/dist/components/GrTabs/chunks/{GrTabs-D3ntDdtg.js.map → GrTabs-Z-FDJUr_.js.map} +1 -1
- package/dist/components/GrTabs/index.js +2 -2
- package/dist/components/GrTextarea/chunks/{GrTextarea-Cv6r2GuC.js → GrTextarea-D56YxhKq.js} +3 -3
- package/dist/components/GrTextarea/chunks/{GrTextarea-Cv6r2GuC.js.map → GrTextarea-D56YxhKq.js.map} +1 -1
- package/dist/components/GrTextarea/index.js +2 -2
- package/dist/components/GrToaster/chunks/GrToaster-eI8YvnIo.js +189 -0
- package/dist/components/GrToaster/chunks/GrToaster-eI8YvnIo.js.map +1 -0
- package/dist/components/GrToaster/index.js +2 -2
- package/dist/components/GrTooltip/chunks/GrTooltip-BeyZ8ssR.js +109 -0
- package/dist/components/GrTooltip/chunks/GrTooltip-BeyZ8ssR.js.map +1 -0
- package/dist/components/GrTooltip/index.js +2 -2
- package/dist/components/GrTree/chunks/{GrTree-B2SMU5Py.js → GrTree-D3ODe2dB.js} +40 -35
- package/dist/components/GrTree/chunks/GrTree-D3ODe2dB.js.map +1 -0
- package/dist/components/GrTree/index.js +2 -2
- package/dist/components/GrTreeSelect/chunks/{GrTreeSelect-C1abr5uH.js → GrTreeSelect-B2xBKs5Q.js} +21 -49
- package/dist/components/GrTreeSelect/chunks/GrTreeSelect-B2xBKs5Q.js.map +1 -0
- 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 +109 -534
- package/dist/index.js.map +1 -1
- package/dist/styles/base.css +32 -0
- package/dist/styles/index.css +15 -0
- package/dist/styles/preflight.css +29 -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 +1 -1
- 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/GrDrawer/GrDrawer.vue.d.ts +2 -2
- package/dist/types/src/components/GrDropdown/grDropdownStyles.d.ts +3 -2
- package/dist/types/src/components/GrDropdownMenu/GrDropdownMenu.vue.d.ts +2 -2
- package/dist/types/src/components/GrDropdownMenu/GrDropdownMenuGroup.vue.d.ts +1 -1
- package/dist/types/src/components/GrDropdownMenu/GrDropdownMenuList.vue.d.ts +2 -2
- package/dist/types/src/components/GrFileUpload/GrFileUpload.vue.d.ts +5 -5
- package/dist/types/src/components/GrFormFile/GrFormFile.vue.d.ts +11 -11
- package/dist/types/src/components/GrImageViewer/GrImageViewer.vue.d.ts +18 -18
- package/dist/types/src/components/GrInput/GrInput.vue.d.ts +14 -0
- 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/GrLink/GrLink.vue.d.ts +11 -5
- 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 +2 -2
- package/dist/types/src/components/GrNumberInput/GrNumberInput.vue.d.ts +17 -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 +2 -2
- package/dist/types/src/components/GrSegmented/grSegmentedStyles.d.ts +5 -5
- package/dist/types/src/components/GrSelect/GrSelect.vue.d.ts +7 -7
- 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/GrToaster/GrToaster.vue.d.ts +9 -4
- package/dist/types/src/components/GrTree/GrTree.vue.d.ts +1 -1
- 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/useFloating.d.ts +53 -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 +1 -3
- package/dist/types/src/i18n/messages/en.d.ts +132 -0
- package/dist/types/src/i18n/messages/es.d.ts +132 -0
- package/dist/types/src/i18n/messages/ru.d.ts +132 -0
- package/dist/types/src/index.d.ts +2 -2
- package/dist/vue/index.js.map +1 -1
- package/dist/web-types.json +4673 -0
- package/package.json +33 -19
- package/dist/chunks/arrow-up-DZdIrpaF.js.map +0 -1
- package/dist/chunks/config-B2YTEe_h.js.map +0 -1
- package/dist/chunks/config-BY81UKv0.js.map +0 -1
- package/dist/chunks/config-Br_qI3Za.js.map +0 -1
- package/dist/chunks/config-C6zT56Jc2.js.map +0 -1
- package/dist/chunks/config-CpMYmvVT.js +0 -59
- package/dist/chunks/config-CpMYmvVT.js.map +0 -1
- package/dist/chunks/config-_3De4HFf.js.map +0 -1
- package/dist/chunks/en-foQA8imU.js +0 -65
- package/dist/chunks/en-foQA8imU.js.map +0 -1
- package/dist/chunks/es-DZFSojYL.js +0 -65
- package/dist/chunks/es-DZFSojYL.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/grDropdownStyles-B41mVR1H.js +0 -32
- package/dist/chunks/grDropdownStyles-B41mVR1H.js.map +0 -1
- package/dist/chunks/grModalStyles-DS1Vl6EW.js.map +0 -1
- package/dist/chunks/grSelectStyles-pUt19VGy.js.map +0 -1
- package/dist/chunks/grStyle-CUaTmpyW.js.map +0 -1
- package/dist/chunks/granularityI18n-LcJ88Vce.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-LhkPpPIl.js +0 -65
- package/dist/chunks/ru-LhkPpPIl.js.map +0 -1
- package/dist/chunks/safelist-_UVzJrgE2.js.map +0 -1
- package/dist/chunks/shared-BiqXd5MW.js +0 -169
- package/dist/chunks/shared-BiqXd5MW.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-Br6WJkLE.js.map +0 -1
- package/dist/components/GrDialog/chunks/GrDialog-C7XLxp8e.js.map +0 -1
- package/dist/components/GrDrawer/chunks/GrDrawer-BW3wtI7h.js.map +0 -1
- package/dist/components/GrDropdown/chunks/GrDropdown-DOvHKnih.js +0 -151
- package/dist/components/GrDropdown/chunks/GrDropdown-DOvHKnih.js.map +0 -1
- package/dist/components/GrFileUpload/chunks/GrFileUpload-BEKNB1RM.js.map +0 -1
- package/dist/components/GrFormFile/chunks/GrFormFile-CIleXnfr.js.map +0 -1
- package/dist/components/GrImageViewer/chunks/GrImageViewer-CsvXQHM9.js.map +0 -1
- package/dist/components/GrInput/chunks/GrInput-gwFQ1sk4.js.map +0 -1
- package/dist/components/GrInputTag/chunks/GrInputTag-Dcj3F6rQ.js.map +0 -1
- package/dist/components/GrLink/chunks/GrLink-BMwn2iJ9.js.map +0 -1
- package/dist/components/GrNumberInput/chunks/GrNumberInput-YIWhV85S.js.map +0 -1
- package/dist/components/GrPagination/chunks/GrPagination-BNDEqM8_.js +0 -114
- package/dist/components/GrPagination/chunks/GrPagination-BNDEqM8_.js.map +0 -1
- package/dist/components/GrPromptDialog/chunks/GrPromptDialog-BV4EW3XO.js.map +0 -1
- package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-BMvXREcv.js.map +0 -1
- package/dist/components/GrSelect/chunks/GrSelect-CnHdbPlf.js.map +0 -1
- package/dist/components/GrSidebar/chunks/GrSidebar-BpBtAGBs.js +0 -44
- package/dist/components/GrSidebar/chunks/GrSidebar-BpBtAGBs.js.map +0 -1
- package/dist/components/GrToaster/chunks/GrToaster-DluJmR5D.js +0 -171
- package/dist/components/GrToaster/chunks/GrToaster-DluJmR5D.js.map +0 -1
- package/dist/components/GrTooltip/chunks/GrTooltip-B7I1AVIC.js +0 -55
- package/dist/components/GrTooltip/chunks/GrTooltip-B7I1AVIC.js.map +0 -1
- package/dist/components/GrTree/chunks/GrTree-B2SMU5Py.js.map +0 -1
- package/dist/components/GrTreeSelect/chunks/GrTreeSelect-C1abr5uH.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-DaHI5bD_2.js → config-8Pcutu1j2.js} +0 -0
- /package/dist/chunks/{config-DoBk_CzG.js → config-B0qIpo8m.js} +0 -0
- /package/dist/chunks/{config-DbghHyY_.js → config-BEegFP74.js} +0 -0
- /package/dist/chunks/{config-Dzd6BzIN2.js → config-BLHqZhy-2.js} +0 -0
- /package/dist/chunks/{config-BV4vBzdm.js → config-BNu8lFQB.js} +0 -0
- /package/dist/chunks/{config-B1kFmhpM.js → config-BUHuGBik.js} +0 -0
- /package/dist/chunks/{config-DF_RlCIO.js → config-BWGGp7uV.js} +0 -0
- /package/dist/chunks/{config-BduXEXjt.js → config-BXtAmU3s.js} +0 -0
- /package/dist/chunks/{config-O1_FTqD3.js → config-Bah4oHwL.js} +0 -0
- /package/dist/chunks/{config-DSBlHQVa.js → config-C86UzUYf.js} +0 -0
- /package/dist/chunks/{config-BgBWt9-A.js → config-C9AcVDkv.js} +0 -0
- /package/dist/chunks/{config-BeQuykDk2.js → config-CGHLoBlH2.js} +0 -0
- /package/dist/chunks/{config-ChQxl75m.js → config-CThzliFi.js} +0 -0
- /package/dist/chunks/{config-DmjwIqx1.js → config-Cb2PAlSD.js} +0 -0
- /package/dist/chunks/{config-BbKroFtR.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-D6Oe3blW2.js → config-DpqOnJiz2.js} +0 -0
- /package/dist/chunks/{config-V3LF-b_F.js → config-Dxuwwepq.js} +0 -0
- /package/dist/chunks/{config-CvGdaXvH.js → config-HZto2PVy.js} +0 -0
- /package/dist/chunks/{config-BOdu-O_B.js → config-JOtB4mzs.js} +0 -0
- /package/dist/chunks/{config-iuMz79Mg.js → config-JpHA4Xx0.js} +0 -0
- /package/dist/chunks/{config-Dcb7xK-C.js → config-PFg39mYo.js} +0 -0
- /package/dist/chunks/{config-BU0olrvr.js → config-QaIc_gRa.js} +0 -0
- /package/dist/chunks/{config-vcDVCYXo.js → config-U4m9PSql.js} +0 -0
- /package/dist/chunks/{config-Ci9nXGUV.js → config-ZiXWIRBX.js} +0 -0
- /package/dist/chunks/{config-Bcf-8XlK2.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,32 +0,0 @@
|
|
|
1
|
-
//#region src/components/GrDropdown/grDropdownStyles.ts
|
|
2
|
-
var widthClassByWidth = {
|
|
3
|
-
auto: "",
|
|
4
|
-
20: "w-20",
|
|
5
|
-
48: "w-48",
|
|
6
|
-
60: "w-60",
|
|
7
|
-
64: "w-64",
|
|
8
|
-
80: "w-80"
|
|
9
|
-
};
|
|
10
|
-
var alignmentClassByAlign = {
|
|
11
|
-
left: "origin-top-left",
|
|
12
|
-
right: "origin-top-right -translate-x-full",
|
|
13
|
-
center: "origin-top -translate-x-1/2"
|
|
14
|
-
};
|
|
15
|
-
function grDropdownWidthClass(width) {
|
|
16
|
-
return widthClassByWidth[width];
|
|
17
|
-
}
|
|
18
|
-
function grDropdownAlignmentClass(align) {
|
|
19
|
-
return alignmentClassByAlign[align];
|
|
20
|
-
}
|
|
21
|
-
function grDropdownContentClass(contentClass) {
|
|
22
|
-
return [
|
|
23
|
-
"rounded-[var(--ds-radius-xl)]",
|
|
24
|
-
"border border-[var(--brd)]",
|
|
25
|
-
"bg-[var(--card)] text-[var(--card-fg)]",
|
|
26
|
-
"shadow-[var(--ds-shadow-2)]",
|
|
27
|
-
"p-1",
|
|
28
|
-
contentClass
|
|
29
|
-
].filter(Boolean).join(" ");
|
|
30
|
-
}
|
|
31
|
-
//#endregion
|
|
32
|
-
export { widthClassByWidth as a, grDropdownWidthClass as i, grDropdownAlignmentClass as n, grDropdownContentClass as r, alignmentClassByAlign as t };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"grDropdownStyles-B41mVR1H.js","names":[],"sources":["../../src/components/GrDropdown/grDropdownStyles.ts"],"sourcesContent":["export type GrDropdownAlign = 'left' | 'right' | 'center'\nexport type GrDropdownWidth = 'auto' | '20' | '48' | '60' | '64' | '80'\n\nexport const widthClassByWidth: Record<GrDropdownWidth, string> = {\n auto: '',\n 20: 'w-20',\n 48: 'w-48',\n 60: 'w-60',\n 64: 'w-64',\n 80: 'w-80',\n}\n\nexport const alignmentClassByAlign: Record<GrDropdownAlign, string> = {\n left: 'origin-top-left',\n right: 'origin-top-right -translate-x-full',\n center: 'origin-top -translate-x-1/2',\n}\n\nexport function grDropdownWidthClass(width: GrDropdownWidth): string {\n return widthClassByWidth[width]\n}\n\nexport function grDropdownAlignmentClass(align: GrDropdownAlign): string {\n return alignmentClassByAlign[align]\n}\n\nexport function grDropdownContentClass(contentClass?: string): string {\n return [\n 'rounded-[var(--ds-radius-xl)]',\n 'border border-[var(--brd)]',\n 'bg-[var(--card)] text-[var(--card-fg)]',\n 'shadow-[var(--ds-shadow-2)]',\n 'p-1',\n contentClass,\n ].filter(Boolean).join(' ')\n}\n"],"mappings":";AAGA,IAAa,oBAAqD;CAChE,MAAM;CACN,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACL;AAED,IAAa,wBAAyD;CACpE,MAAM;CACN,OAAO;CACP,QAAQ;CACT;AAED,SAAgB,qBAAqB,OAAgC;AACnE,QAAO,kBAAkB;;AAG3B,SAAgB,yBAAyB,OAAgC;AACvE,QAAO,sBAAsB;;AAG/B,SAAgB,uBAAuB,cAA+B;AACpE,QAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACD,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"grModalStyles-DS1Vl6EW.js","names":[],"sources":["../../src/components/GrModal/grModalStyles.ts"],"sourcesContent":["export type GrModalSize = 'sm' | 'md' | 'lg' | 'xl' | 'full'\n\n// Корневые утилитарные классы, используемые шаблоном `GrModal.vue`.\n// Они же являются единственным источником истины для safelist.\nexport const root = 'fixed inset-0 z-50'\nexport const shell = 'fixed inset-0 overflow-y-auto p-4 sm:p-6'\nexport const layout = 'min-h-full flex items-center justify-center'\nexport const overlay = 'fixed inset-0 z-0 bg-black/40'\n\n// Классы для `<TransitionChild :enter=\"...\" :enter-from=\"...\" ...>`.\n// Разбиты по фазам транзишна, чтобы не склеивать их в «мешок токенов».\nexport const overlayTransition = {\n enter: 'duration-200 ease-out',\n enterFrom: 'opacity-0',\n enterTo: 'opacity-100',\n leave: 'duration-150 ease-in',\n leaveFrom: 'opacity-100',\n leaveTo: 'opacity-0',\n} as const\n\nexport const panelTransition = {\n enter: 'duration-200 ease-out',\n enterFrom: 'opacity-0 translate-y-2 sm:translate-y-0 sm:scale-95',\n enterTo: 'opacity-100 translate-y-0 sm:scale-100',\n leave: 'duration-150 ease-in',\n leaveFrom: 'opacity-100 translate-y-0 sm:scale-100',\n leaveTo: 'opacity-0 translate-y-2 sm:translate-y-0 sm:scale-95',\n} as const\n\nexport const panelBase\n = 'w-full overflow-hidden relative z-10 border border-[var(--brd)] bg-[var(--card)] text-[var(--card-fg)] shadow-[var(--ds-shadow-2)] outline-none'\n\nexport const panelWidthBySize: Record<GrModalSize, string> = {\n sm: 'max-w-[420px]',\n md: 'max-w-[560px]',\n lg: 'max-w-[720px]',\n xl: 'max-w-[920px]',\n full: 'max-w-none',\n}\n\nexport const panelRadiusBySize: Record<GrModalSize, string> = {\n sm: 'rounded-[var(--ds-radius-xl)]',\n md: 'rounded-[var(--ds-radius-xl)]',\n lg: 'rounded-[var(--ds-radius-xl)]',\n xl: 'rounded-[var(--ds-radius-xl)]',\n full: 'rounded-none sm:rounded-[var(--ds-radius-xl)]',\n}\n\n// Для большинства размеров высота не задаётся — `Partial` + фильтрация пустых\n// значений в `getGrModalPanelClass` избавляют от двойных пробелов.\nexport const panelHeightBySize: Partial<Record<GrModalSize, string>> = {\n full: 'h-[100svh] sm:h-auto',\n}\n\nexport function getGrModalPanelClass(size: GrModalSize): string {\n return [\n panelBase,\n panelWidthBySize[size],\n panelHeightBySize[size],\n panelRadiusBySize[size],\n ]\n .filter(Boolean)\n .join(' ')\n}\n"],"mappings":";AAIA,IAAa,OAAO;AACpB,IAAa,QAAQ;AACrB,IAAa,SAAS;AACtB,IAAa,UAAU;AAIvB,IAAa,oBAAoB;CAC/B,OAAO;CACP,WAAW;CACX,SAAS;CACT,OAAO;CACP,WAAW;CACX,SAAS;CACV;AAED,IAAa,kBAAkB;CAC7B,OAAO;CACP,WAAW;CACX,SAAS;CACT,OAAO;CACP,WAAW;CACX,SAAS;CACV;AAED,IAAa,YACT;AAEJ,IAAa,mBAAgD;CAC3D,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,MAAM;CACP;AAED,IAAa,oBAAiD;CAC5D,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,MAAM;CACP;AAID,IAAa,oBAA0D,EACrE,MAAM,wBACP;AAED,SAAgB,qBAAqB,MAA2B;AAC9D,QAAO;EACL;EACA,iBAAiB;EACjB,kBAAkB;EAClB,kBAAkB;EACnB,CACE,OAAO,QAAQ,CACf,KAAK,IAAI"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"grSelectStyles-pUt19VGy.js","names":[],"sources":["../../src/components/GrSelect/grSelectStyles.ts"],"sourcesContent":["export type GrSelectView = 'default' | 'link'\nexport type GrSelectSize = 'xs' | 'sm' | 'md' | 'lg'\nexport type GrSelectVariant = 'primary' | 'default' | 'muted' | 'danger'\nexport type GrSelectUnderline = 'auto' | 'always' | 'none'\nexport type GrSelectOptionsView = 'native' | 'panel'\nexport type GrSelectOption = { value: string, label: string }\n/** Группа опций: заголовок `label` + вложенные опции `options`. */\nexport type GrSelectOptionGroup = { label: string, options: GrSelectOption[] }\n/** Элемент списка опций: либо одиночная опция, либо группа опций. */\nexport type GrSelectOptionOrGroup = GrSelectOption | GrSelectOptionGroup\nexport type GrSelectModelValue = string | string[]\n\nexport const defaultBaseClass = 'w-full rounded-md border border-[var(--brd)] bg-[var(--bg)] text-[var(--fg)] transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]'\nexport const linkBaseClass = 'cursor-pointer inline-block w-auto align-baseline appearance-none bg-transparent border border-transparent px-0 py-0 rounded-[6px] transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]'\n\n\nexport const selectSizeClassBySize: Record<GrSelectSize, string> = {\n xs: 'h-7 px-2.5 text-[12px]',\n sm: 'h-8 px-3 text-[13px]',\n md: 'h-10 px-3 text-[14px]',\n lg: 'h-11 px-4 text-[16px]',\n}\n\nexport const selectLinkSizeClassBySize: Record<GrSelectSize, string> = {\n xs: 'text-[12px]',\n sm: 'text-[13px]',\n md: 'text-[14px]',\n lg: 'text-[16px]',\n}\n\nexport const selectLinkVariantClassByVariant: Record<GrSelectVariant, string> = {\n primary: 'text-[var(--primary)] hover:text-[var(--primary-hover)] active:text-[var(--primary-active)]',\n default: 'text-[var(--fg)] hover:text-[var(--primary)] active:text-[var(--primary-active)]',\n muted: 'text-[var(--muted-fg)] hover:text-[var(--fg)] active:text-[var(--fg)]',\n danger: 'text-[var(--ds-danger)] hover:text-[var(--ds-danger-hover)] active:text-[var(--ds-danger-active)]',\n}\n\n/**\n * Variant-классы для видимой метки в `view=\"link\"` + `optionsView=\"native\"`.\n * Hover-цвет приходит через `peer-hover:` от прозрачного `<select>`-overlay,\n * т.к. видимая метка имеет `pointer-events-none` и не получает hover напрямую.\n */\nexport const selectLinkNativeLabelVariantClassByVariant: Record<GrSelectVariant, string> = {\n primary: 'text-[var(--primary)] peer-hover:text-[var(--primary-hover)] peer-active:text-[var(--primary-active)]',\n default: 'text-[var(--fg)] peer-hover:text-[var(--primary)] peer-active:text-[var(--primary-active)]',\n muted: 'text-[var(--muted-fg)] peer-hover:text-[var(--fg)] peer-active:text-[var(--fg)]',\n danger: 'text-[var(--ds-danger)] peer-hover:text-[var(--ds-danger-hover)] peer-active:text-[var(--ds-danger-active)]',\n}\n\nfunction selectLinkUnderlineClass(options: { underline: GrSelectUnderline, disabled: boolean }): string {\n if (options.disabled) return 'no-underline'\n if (options.underline === 'always') return 'underline underline-offset-4'\n if (options.underline === 'none') return 'no-underline'\n return 'no-underline hover:underline hover:underline-offset-4'\n}\n\n/**\n * Underline-классы для видимой метки в `view=\"link\"` + `optionsView=\"native\"`.\n * Видимая метка имеет `pointer-events-none`, а hover получает прозрачный\n * `<select>`-overlay (peer), поэтому для `underline=\"auto\"` используем\n * `peer-hover:underline` вместо `hover:underline`.\n */\nfunction selectLinkNativeLabelUnderlineClass(options: { underline: GrSelectUnderline, disabled: boolean }): string {\n if (options.disabled) return 'no-underline'\n if (options.underline === 'always') return 'underline underline-offset-4'\n if (options.underline === 'none') return 'no-underline'\n return 'no-underline peer-hover:underline peer-hover:underline-offset-4'\n}\n\n/**\n * Классы прозрачного `<select>`-overlay для `view=\"link\"` + `optionsView=\"native\"`.\n * Нативный селект растягивается на всю обёртку, но визуально невидим — ширину обёртки\n * задаёт видимый `<span>` с выбранной меткой, благодаря чему компонент в закрытом\n * состоянии занимает столько места, сколько нужно текущей опции (а не самой длинной).\n */\nexport const grSelectLinkNativeOverlayClass = 'peer absolute inset-0 w-full h-full m-0 p-0 border-0 bg-transparent text-transparent appearance-none opacity-0 cursor-pointer disabled:cursor-not-allowed focus:outline-none'\n\n/**\n * Классы видимой метки для `view=\"link\"` + `optionsView=\"native\"` (поверх прозрачного `<select>`).\n * Получает все link-стили (size/variant/underline), а также focus-ring через `peer-focus-visible`.\n */\nexport function grSelectLinkNativeLabelClass(options: {\n size: GrSelectSize\n variant: GrSelectVariant\n underline: GrSelectUnderline\n disabled: boolean\n}): string {\n return [\n 'pointer-events-none inline-block whitespace-nowrap align-baseline rounded-[6px] transition-colors duration-150',\n selectLinkSizeClassBySize[options.size],\n selectLinkNativeLabelUnderlineClass({ underline: options.underline, disabled: options.disabled }),\n selectLinkNativeLabelVariantClassByVariant[options.variant],\n options.disabled ? 'opacity-60 text-[var(--muted-fg)] no-underline' : '',\n 'peer-focus-visible:outline-none peer-focus-visible:ring-2 peer-focus-visible:ring-[var(--ring)]',\n ]\n .filter(Boolean)\n .join(' ')\n}\n\nexport function grSelectClass(options: {\n view: GrSelectView\n size: GrSelectSize\n disabled: boolean\n variant: GrSelectVariant\n underline: GrSelectUnderline\n}): string {\n if (options.view === 'link') {\n return [\n selectLinkSizeClassBySize[options.size],\n selectLinkUnderlineClass({ underline: options.underline, disabled: options.disabled }),\n selectLinkVariantClassByVariant[options.variant],\n 'disabled:opacity-60 disabled:cursor-not-allowed disabled:text-[var(--muted-fg)] disabled:no-underline',\n ].join(' ')\n }\n\n return [\n selectSizeClassBySize[options.size],\n 'disabled:opacity-50 disabled:cursor-not-allowed',\n ].join(' ')\n}\n\nexport function grSelectNativeClass(options: {\n view: GrSelectView\n size: GrSelectSize\n disabled: boolean\n variant: GrSelectVariant\n underline: GrSelectUnderline\n showNativeChevron: boolean\n}): string {\n return [\n grSelectClass(options),\n options.showNativeChevron ? 'appearance-none pr-9' : '',\n ]\n .filter(Boolean)\n .join(' ')\n}\n\nexport function grSelectTriggerClass(options: {\n view: GrSelectView\n optionsView: GrSelectOptionsView\n size: GrSelectSize\n disabled: boolean\n variant: GrSelectVariant\n underline: GrSelectUnderline\n}): string {\n if (options.optionsView !== 'panel') {\n return grSelectClass(options)\n }\n\n if (options.view === 'link') {\n return [\n grSelectClass(options),\n 'inline-flex items-center gap-1 text-left',\n ].join(' ')\n }\n\n return [\n grSelectClass(options),\n 'flex items-center justify-between text-left',\n ].join(' ')\n}\n\nexport const grSelectPanelClasses = 'rounded-[var(--ds-radius-xl)] border border-[var(--brd)] bg-[var(--card)] text-[var(--card-fg)] shadow-[var(--ds-shadow-2)] overflow-hidden'\n"],"mappings":";AAYA,IAAa,mBAAmB;AAChC,IAAa,gBAAgB;AAG7B,IAAa,wBAAsD;CACjE,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACL;AAED,IAAa,4BAA0D;CACrE,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACL;AAED,IAAa,kCAAmE;CAC9E,SAAS;CACT,SAAS;CACT,OAAO;CACP,QAAQ;CACT;;;;;;AAOD,IAAa,6CAA8E;CACzF,SAAS;CACT,SAAS;CACT,OAAO;CACP,QAAQ;CACT;AAED,SAAS,yBAAyB,SAAsE;AACtG,KAAI,QAAQ,SAAU,QAAO;AAC7B,KAAI,QAAQ,cAAc,SAAU,QAAO;AAC3C,KAAI,QAAQ,cAAc,OAAQ,QAAO;AACzC,QAAO;;;;;;;;AAST,SAAS,oCAAoC,SAAsE;AACjH,KAAI,QAAQ,SAAU,QAAO;AAC7B,KAAI,QAAQ,cAAc,SAAU,QAAO;AAC3C,KAAI,QAAQ,cAAc,OAAQ,QAAO;AACzC,QAAO;;;;;;;;AAST,IAAa,iCAAiC;;;;;AAM9C,SAAgB,6BAA6B,SAKlC;AACT,QAAO;EACL;EACA,0BAA0B,QAAQ;EAClC,oCAAoC;GAAE,WAAW,QAAQ;GAAW,UAAU,QAAQ;GAAU,CAAC;EACjG,2CAA2C,QAAQ;EACnD,QAAQ,WAAW,mDAAmD;EACtE;EACD,CACE,OAAO,QAAQ,CACf,KAAK,IAAI;;AAGd,SAAgB,cAAc,SAMnB;AACT,KAAI,QAAQ,SAAS,OACnB,QAAO;EACL,0BAA0B,QAAQ;EAClC,yBAAyB;GAAE,WAAW,QAAQ;GAAW,UAAU,QAAQ;GAAU,CAAC;EACtF,gCAAgC,QAAQ;EACxC;EACD,CAAC,KAAK,IAAI;AAGb,QAAO,CACL,sBAAsB,QAAQ,OAC9B,kDACD,CAAC,KAAK,IAAI;;AAGb,SAAgB,oBAAoB,SAOzB;AACT,QAAO,CACL,cAAc,QAAQ,EACtB,QAAQ,oBAAoB,yBAAyB,GACtD,CACE,OAAO,QAAQ,CACf,KAAK,IAAI;;AAGd,SAAgB,qBAAqB,SAO1B;AACT,KAAI,QAAQ,gBAAgB,QAC1B,QAAO,cAAc,QAAQ;AAG/B,KAAI,QAAQ,SAAS,OACnB,QAAO,CACL,cAAc,QAAQ,EACtB,2CACD,CAAC,KAAK,IAAI;AAGb,QAAO,CACL,cAAc,QAAQ,EACtB,8CACD,CAAC,KAAK,IAAI;;AAGb,IAAa,uBAAuB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"grStyle-CUaTmpyW.js","names":[],"sources":["../../src/components/GrProgressBar/grStyle.ts"],"sourcesContent":["import type { GrTone } from '../shared/tones'\n\nexport type GrProgressBarTone = GrTone\n\nfunction withVar(token: string): string {\n return `[${token}]`\n}\n\nconst toneVars: Record<GrProgressBarTone, string> = {\n primary: 'var(--pb-bg,var(--primary))',\n neutral: 'var(--pb-neutral-bg,var(--secondary))',\n success: 'var(--pb-success-bg,var(--ds-success))',\n warning: 'var(--pb-warning-bg,var(--ds-warning))',\n danger: 'var(--pb-danger-bg,var(--ds-danger))',\n info: 'var(--pb-info-bg,var(--ds-info))',\n slate: 'var(--pb-slate-bg,var(--ds-slate))',\n azure: 'var(--pb-azure-bg,var(--ds-azure))',\n}\n\nexport function grProgressBarFillClass(tone: GrProgressBarTone): string {\n return `bg-${withVar(toneVars[tone])}`\n}\n"],"mappings":";AAIA,SAAS,QAAQ,OAAuB;AACtC,QAAO,IAAI,MAAM;;AAGnB,IAAM,WAA8C;CAClD,SAAS;CACT,SAAS;CACT,SAAS;CACT,SAAS;CACT,QAAQ;CACR,MAAM;CACN,OAAO;CACP,OAAO;CACR;AAED,SAAgB,uBAAuB,MAAiC;AACtE,QAAO,MAAM,QAAQ,SAAS,MAAM"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"granularityI18n-LcJ88Vce.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\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 fallback\n }\n\n const result = i18n.t(key, params)\n return result === key ? fallback : result\n }\n\n return {\n i18n,\n t,\n }\n}"],"mappings":";;;;;;;;;;;AAcA,IAAM,gBAAwB,OAAO,IAAI,WAAW;AAEpD,SAAS,sBAAsB,OAA8C;AAC3E,QAAO,OAAQ,OAAsC,MAAM;;AAG7D,SAAgB,uBAAuB,SAA+E;AACpH,KAAI,sBAAsB,QAAQ,CAChC,QAAO;CAGT,MAAM,WAAW,SAAS;AAE1B,KAAI,UAAU;EACZ,MAAM,kBAAkB,SAAS;AACjC,MAAI,sBAAsB,gBAAgB,CACxC,QAAO;EAGT,MAAM,WAAW,SAAS;AAC1B,MAAI,sBAAsB,SAAS,CACjC,QAAO;AAGT,SAAO;;AAGT,KAAI,CAAC,oBAAoB,CACvB,QAAO;CAGT,MAAM,kBAAkB,OAAmC,sBAAsB,KAAK;AACtF,KAAI,sBAAsB,gBAAgB,CACxC,QAAO;CAGT,MAAM,WAAW,OAAmC,eAAe,KAAK;AACxE,KAAI,sBAAsB,SAAS,CACjC,QAAO;AAGT,QAAO;;AAGT,SAAgB,2BAA2B,SAAmD;CAC5F,MAAM,OAAO,uBAAuB,QAAQ;CAE5C,MAAM,KAAK,KAAa,UAAkB,WAAyC;AACjF,MAAI,CAAC,KACH,QAAO;EAGT,MAAM,SAAS,KAAK,EAAE,KAAK,OAAO;AAClC,SAAO,WAAW,MAAM,WAAW;;AAGrC,QAAO;EACL;EACA;EACD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"info-C0bHmdZq.js","names":[],"sources":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loader-circle-BUntgosj.js","names":[],"sources":[],"mappings":""}
|
|
@@ -1,65 +0,0 @@
|
|
|
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 dialog = {
|
|
15
|
-
"confirm": { "title": "Подтверждение" },
|
|
16
|
-
"prompt": {
|
|
17
|
-
"title": "Введите значение",
|
|
18
|
-
"label": "Значение",
|
|
19
|
-
"required": "Введите значение."
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
var pagination = {
|
|
23
|
-
"pageSize": "Размер страницы",
|
|
24
|
-
"prev": "Назад",
|
|
25
|
-
"next": "Вперёд"
|
|
26
|
-
};
|
|
27
|
-
var navbar = { "openMenu": "Открыть меню" };
|
|
28
|
-
var responseError = {
|
|
29
|
-
"networkTitle": "Нет связи с сервером",
|
|
30
|
-
"networkMessage": "Проверьте подключение к интернету и попробуйте ещё раз.",
|
|
31
|
-
"abortedTitle": "Запрос отменён",
|
|
32
|
-
"abortedMessage": "Запрос был отменён.",
|
|
33
|
-
"validationTitle": "Проверьте данные",
|
|
34
|
-
"validationMessage": "Сервер вернул ошибку валидации. Исправьте поля и попробуйте снова.",
|
|
35
|
-
"clientTitle": "Ошибка запроса",
|
|
36
|
-
"clientMessage": "Сервер отклонил запрос.",
|
|
37
|
-
"serverTitle": "Ошибка сервера",
|
|
38
|
-
"serverMessage": "Произошла ошибка на сервере. Попробуйте ещё раз.",
|
|
39
|
-
"unknownTitle": "Что-то пошло не так",
|
|
40
|
-
"unknownMessage": "Не удалось выполнить операцию. Попробуйте ещё раз.",
|
|
41
|
-
"retryLabel": "Повторить",
|
|
42
|
-
"dismissLabel": "Скрыть"
|
|
43
|
-
};
|
|
44
|
-
var colors = {
|
|
45
|
-
"neutral": "Нейтральный",
|
|
46
|
-
"success": "Успех",
|
|
47
|
-
"warning": "Предупреждение",
|
|
48
|
-
"danger": "Опасность",
|
|
49
|
-
"info": "Инфо",
|
|
50
|
-
"primary": "Primary",
|
|
51
|
-
"slate": "Сланцевый",
|
|
52
|
-
"azure": "Лазурный"
|
|
53
|
-
};
|
|
54
|
-
var ru_default = {
|
|
55
|
-
common,
|
|
56
|
-
loading,
|
|
57
|
-
treeSelect,
|
|
58
|
-
dialog,
|
|
59
|
-
pagination,
|
|
60
|
-
navbar,
|
|
61
|
-
responseError,
|
|
62
|
-
colors
|
|
63
|
-
};
|
|
64
|
-
//#endregion
|
|
65
|
-
export { colors, common, ru_default as default, dialog, loading, navbar, pagination, responseError, treeSelect };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ru-LhkPpPIl.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 \"dialog\": {\n \"confirm\": {\n \"title\": \"Подтверждение\"\n },\n \"prompt\": {\n \"title\": \"Введите значение\",\n \"label\": \"Значение\",\n \"required\": \"Введите значение.\"\n }\n },\n \"pagination\": {\n \"pageSize\": \"Размер страницы\",\n \"prev\": \"Назад\",\n \"next\": \"Вперёд\"\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}\n"],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"safelist-_UVzJrgE2.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;AAC9E,QAAO,CACL,GAAG,iBAAiB,OAAO,SAAS,EACpC,GAAG,iBAAiB,OAAO,SAAS,CACrC;;AAGH,IAAa,mBAAmB,CAAC,GAAG,IAAI,IAAI;CAC1C,GAAG,aAAa,gCAAgC;CAChD,GAAG,aAAa,gCAAgC;CAChD,GAAG,aAAa,8BAA8B;CAC/C,CAAC,CAAC"}
|
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
import { t as grAlertConfig } from "./config-BV4vBzdm.js";
|
|
2
|
-
import { t as grAvatarConfig } from "./config-CU_CBd0k.js";
|
|
3
|
-
import { t as grBadgeConfig } from "./config-B61cX08u.js";
|
|
4
|
-
import { t as grBadgeWrapConfig } from "./config-V3LF-b_F.js";
|
|
5
|
-
import { t as grBottomNavConfig } from "./config-BgBWt9-A.js";
|
|
6
|
-
import { t as grButtonConfig } from "./config-3I3vqDW4.js";
|
|
7
|
-
import { t as grButtonGroupConfig } from "./config-CUwF4E4R.js";
|
|
8
|
-
import { t as grCardConfig } from "./config-ChQxl75m.js";
|
|
9
|
-
import { t as grCheckboxConfig } from "./config-C9MblwGq.js";
|
|
10
|
-
import { t as grIconConfig } from "./config-DbghHyY_.js";
|
|
11
|
-
import { t as grCollapseConfig } from "./config-D5ek7VSi.js";
|
|
12
|
-
import { t as grConfirmDialogConfig } from "./config-BduXEXjt.js";
|
|
13
|
-
import { t as grDataTableConfig } from "./config-vcDVCYXo.js";
|
|
14
|
-
import { t as grDialogSafelist } from "./safelist-_UVzJrgE2.js";
|
|
15
|
-
import { t as grDrawerConfig } from "./config-C6zT56Jc2.js";
|
|
16
|
-
import { t as grDropdownConfig } from "./config-Br_qI3Za.js";
|
|
17
|
-
import { t as grDropdownMenuConfig } from "./config-DmjwIqx1.js";
|
|
18
|
-
import { t as grEmptyStateConfig } from "./config-O1_FTqD3.js";
|
|
19
|
-
import { t as grFileUploadConfig } from "./config-DF_RlCIO.js";
|
|
20
|
-
import { t as grFormFieldConfig } from "./config-Dcb7xK-C.js";
|
|
21
|
-
import { t as grFormFileConfig } from "./config-BbKroFtR.js";
|
|
22
|
-
import { t as grFormSectionConfig } from "./config-DoBk_CzG.js";
|
|
23
|
-
import { t as grImageViewerConfig } from "./config-CvGdaXvH.js";
|
|
24
|
-
import { t as grInputConfig } from "./config-D4s_QWVP.js";
|
|
25
|
-
import { t as grInputTagConfig } from "./config-BnWSHTEU.js";
|
|
26
|
-
import { t as grLinkConfig } from "./config-CpMYmvVT.js";
|
|
27
|
-
import { t as grListConfig } from "./config-DSBlHQVa.js";
|
|
28
|
-
import { t as grLoadingConfig } from "./config-d386uO3O.js";
|
|
29
|
-
import { t as grModalConfig } from "./config-C5OwJM3-.js";
|
|
30
|
-
import { t as grNavbarConfig } from "./config-Ci9nXGUV.js";
|
|
31
|
-
import { t as grNumberInputConfig } from "./config-CdJpnjDj.js";
|
|
32
|
-
import { t as grPaginationConfig } from "./config-iuMz79Mg.js";
|
|
33
|
-
import { t as grProgressBarConfig } from "./config-CFf7xaG1.js";
|
|
34
|
-
import { t as grPromptDialogConfig } from "./config-B1kFmhpM.js";
|
|
35
|
-
import { t as grRadioConfig } from "./config-Cp_XHsze.js";
|
|
36
|
-
import { t as grRadioGroupConfig } from "./config-BU0olrvr.js";
|
|
37
|
-
import { t as grSegmentedConfig } from "./config-B2YTEe_h.js";
|
|
38
|
-
import { t as grSelectConfig } from "./config-BY81UKv0.js";
|
|
39
|
-
import { t as grSidebarConfig } from "./config-BeQuykDk2.js";
|
|
40
|
-
import { t as grSkeletonConfig } from "./config-DaHI5bD_2.js";
|
|
41
|
-
import { t as grSwitchConfig } from "./config-_3De4HFf.js";
|
|
42
|
-
import { t as grTableConfig } from "./config-Bcf-8XlK2.js";
|
|
43
|
-
import { t as grTabsConfig } from "./config-Dzd6BzIN2.js";
|
|
44
|
-
import { t as grTextareaConfig } from "./config-B_nSBc7W.js";
|
|
45
|
-
import { t as grToasterConfig } from "./config-CetsgpaZ2.js";
|
|
46
|
-
import { t as grTooltipConfig } from "./config-BOdu-O_B.js";
|
|
47
|
-
import { t as grTreeConfig } from "./config-D6Oe3blW2.js";
|
|
48
|
-
import { t as grTreeSelectConfig } from "./config-72sW9Bag2.js";
|
|
49
|
-
import { defineGranularComponent, defineGranularProvider } from "@feugene/unocss-preset-granular/contract";
|
|
50
|
-
//#region src/components/GrDialog/config.ts
|
|
51
|
-
var grDialogConfig = defineGranularComponent(import.meta.url, {
|
|
52
|
-
name: "GrDialog",
|
|
53
|
-
dependencies: ["GrButton", "GrModal"],
|
|
54
|
-
safelist: grDialogSafelist
|
|
55
|
-
});
|
|
56
|
-
//#endregion
|
|
57
|
-
//#region src/components/GrResponseErrorBanner/config.ts
|
|
58
|
-
var grResponseErrorBannerConfig = defineGranularComponent(import.meta.url, {
|
|
59
|
-
name: "GrResponseErrorBanner",
|
|
60
|
-
dependencies: ["GrAlert", "GrButton"]
|
|
61
|
-
});
|
|
62
|
-
//#endregion
|
|
63
|
-
//#region src/granular-provider/shared.ts
|
|
64
|
-
/** Идентификатор провайдера — совпадает с именем пакета. */
|
|
65
|
-
var GRANULARITY_PROVIDER_ID = "@feugene/granularity";
|
|
66
|
-
var packageBaseUrl = `${import.meta.url.slice(0, import.meta.url.lastIndexOf("/", import.meta.url.lastIndexOf("/") - 1) + 1)}`;
|
|
67
|
-
/** Встроенные темы пакета. Единственный источник правды о списке тем. */
|
|
68
|
-
var granularityThemeNames = ["light", "dark"];
|
|
69
|
-
/** Темы, активные по умолчанию, если окружение не переопределяет выбор. */
|
|
70
|
-
var granularityDefaultThemes = ["light"];
|
|
71
|
-
var theme = {
|
|
72
|
-
baseCssUrl: new URL("data:text/css;base64,aHRtbCwKYm9keSB7CiAgICBoZWlnaHQ6IDEwMCU7Cn0KCmJvZHkgewogICAgbWFyZ2luOiAwOwogICAgZm9udC1mYW1pbHk6IHZhcigtLWRzLWZvbnQtdWkpOwogICAgYmFja2dyb3VuZDogdmFyKC0tYmcpOwogICAgY29sb3I6IHZhcigtLWZnKTsKfQoKLyoKICogVW5vQ1NTIHRhaWx3aW5kLWNvbXBhdCByZXNldCBpbnRlbnRpb25hbGx5IGRvZXMgbm90IGZvcmNlIGBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGAgZm9yIGJ1dHRvbnMKICogKHRvIGF2b2lkIGJyZWFraW5nIGNvbXBvbmVudCBsaWJyYXJpZXMpLiBJbiBvdXIgRFMgd2Ugd2FudCBwbGFpbiBidXR0b25zL2xpbmtzIHRvIGJlIHRyYW5zcGFyZW50IGJ5IGRlZmF1bHQuCiAqLwo6d2hlcmUoYSwgYnV0dG9uKSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKfQoKOndoZXJlKGlucHV0W3R5cGU9J2J1dHRvbiddLCBpbnB1dFt0eXBlPSdzdWJtaXQnXSwgaW5wdXRbdHlwZT0ncmVzZXQnXSkgewogICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KCmNvZGUsCnByZSwKa2JkIHsKICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1kcy1mb250LW1vbm8pOwp9CgoqIHsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0K", "" + import.meta.url).href,
|
|
73
|
-
tokensCssUrl: new URL("data:text/css;base64,OnJvb3QgewogIC8qIEZvdW5kYXRpb25zOiBuZXV0cmFsIHBhbGV0dGUgKi8KICAtLWRzLXNsYXRlLTA6ICNmZmZmZmY7CiAgLS1kcy1zbGF0ZS01MDogI2Y4ZmFmYzsKICAtLWRzLXNsYXRlLTEwMDogI2YxZjVmOTsKICAtLWRzLXNsYXRlLTIwMDogI2UyZThmMDsKICAtLWRzLXNsYXRlLTMwMDogI2NiZDVlMTsKICAtLWRzLXNsYXRlLTQwMDogIzk0YTNiODsKICAtLWRzLXNsYXRlLTUwMDogIzY0NzQ4YjsKICAtLWRzLXNsYXRlLTYwMDogIzQ3NTU2OTsKICAtLWRzLXNsYXRlLTcwMDogIzMzNDE1NTsKICAtLWRzLXNsYXRlLTgwMDogIzFlMjkzYjsKICAtLWRzLXNsYXRlLTkwMDogIzBmMTcyYTsKCiAgLyogVHlwb2dyYXBoeTogZm9udCBmYW1pbGllcyAqLwogIC0tZHMtZm9udC11aTogSW50ZXIsIFJvYm90bywgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgLS1kcy1mb250LW1vbm86ICdKZXRCcmFpbnMgTW9ubycsIHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgbW9ub3NwYWNlOwoKICAvKiBUeXBvZ3JhcGh5OiBmb250IHNpemVzICovCiAgLS1kcy10ZXh0LXhzOiAxMnB4OwogIC0tZHMtdGV4dC1zbTogMTRweDsKICAtLWRzLXRleHQtYmFzZTogMTZweDsKICAtLWRzLXRleHQtbGc6IDE4cHg7CiAgLS1kcy10ZXh0LXhsOiAyMHB4OwogIC0tZHMtdGV4dC0yeGw6IDI0cHg7CiAgLS1kcy10ZXh0LTN4bDogMzBweDsKICAtLWRzLXRleHQtNHhsOiAzNnB4OwoKICAvKiBUeXBvZ3JhcGh5OiBsaW5lIGhlaWdodHMgKi8KICAtLWRzLWxlYWRpbmctdGlnaHQ6IDEuMjU7CiAgLS1kcy1sZWFkaW5nLW5vcm1hbDogMS41OwogIC0tZHMtbGVhZGluZy1yZWxheGVkOiAxLjYyNTsKCiAgLyogVHlwb2dyYXBoeTogZm9udCB3ZWlnaHRzICovCiAgLS1kcy1mb250LXJlZ3VsYXI6IDQwMDsKICAtLWRzLWZvbnQtbWVkaXVtOiA1MDA7CiAgLS1kcy1mb250LXNlbWlib2xkOiA2MDA7CiAgLS1kcy1mb250LWJvbGQ6IDcwMDsKCiAgLyogTGF5b3V0OiBzcGFjaW5nIHNjYWxlICovCiAgLS1kcy1zcGFjZS0wOiAwcHg7CiAgLS1kcy1zcGFjZS0xOiA0cHg7CiAgLS1kcy1zcGFjZS0yOiA4cHg7CiAgLS1kcy1zcGFjZS0zOiAxMnB4OwogIC0tZHMtc3BhY2UtNDogMTZweDsKICAtLWRzLXNwYWNlLTU6IDIwcHg7CiAgLS1kcy1zcGFjZS02OiAyNHB4OwogIC0tZHMtc3BhY2UtODogMzJweDsKICAtLWRzLXNwYWNlLTEwOiA0MHB4OwogIC0tZHMtc3BhY2UtMTI6IDQ4cHg7CiAgLS1kcy1zcGFjZS0xNjogNjRweDsKICAtLWRzLXNwYWNlLTIwOiA4MHB4OwogIC0tZHMtc3BhY2UtMjQ6IDk2cHg7CiAgLS1kcy1zcGFjZS0zMjogMTI4cHg7CiAgLS1kcy1zcGFjZS00MDogMTYwcHg7CiAgLS1kcy1zcGFjZS00ODogMTkycHg7CiAgLS1kcy1zcGFjZS02NDogMjU2cHg7CgogIC8qIExheW91dDogY29udGFpbmVycyAqLwogIC0tZHMtY29udGFpbmVyLW1heDogMTI4MHB4OwogIC0tZHMtY29udGFpbmVyLW1heC0yeGw6IDE0NDBweDsKICAtLWRzLWNvbnRhaW5lci1wYWRkaW5nLW1vYmlsZTogMTZweDsKICAtLWRzLWNvbnRhaW5lci1wYWRkaW5nLXRhYmxldDogMjRweDsKICAtLWRzLWNvbnRhaW5lci1wYWRkaW5nLWRlc2t0b3A6IDMycHg7CgogIC8qIExheW91dDogYnJlYWtwb2ludHMgKi8KICAtLWRzLWJwLXNtOiA2NDBweDsKICAtLWRzLWJwLW1kOiA3NjhweDsKICAtLWRzLWJwLWxnOiAxMDI0cHg7CiAgLS1kcy1icC14bDogMTI4MHB4OwogIC0tZHMtYnAtMnhsOiAxNTM2cHg7CgogIC8qIFNoYXBlczogcmFkaWkgYW5kIGNvbXBhdGliaWxpdHkgYWxpYXNlcyAqLwogIC0tcmFkaXVzOiAwLjVyZW07CiAgLS1kcy1yYWRpdXMtbm9uZTogMHB4OwogIC0tZHMtcmFkaXVzLXNtOiA0cHg7CiAgLS1kcy1yYWRpdXMtbWQ6IDhweDsKICAtLWRzLXJhZGl1cy1sZzogMTJweDsKICAtLWRzLXJhZGl1cy14bDogMTZweDsKICAtLWRzLXJhZGl1cy1mdWxsOiA5OTk5cHg7CgogIC8qIEVsZXZhdGlvbiAqLwogIC0tZHMtc2hhZG93LTA6IG5vbmU7CiAgLS1kcy1zaGFkb3ctMTogMCAxcHggMnB4IHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7CiAgLS1kcy1zaGFkb3ctMjogMCA4cHggMjRweCByZ2JhKDE1LCAyMywgNDIsIDAuMTQpOwogIC0tZHMtc2hhZG93LTM6IDAgMTZweCA0OHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4yMCk7CgogIC8qIE1vdGlvbiAqLwogIC0tZHMtZHVyYXRpb24tZmFzdDogMTUwbXM7CiAgLS1kcy1kdXJhdGlvbi1iYXNlOiAyMDBtczsKICAtLWRzLWR1cmF0aW9uLXNsb3c6IDMwMG1zOwogIC0tZHMtZWFzZS1vdXQ6IGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpOwogIC0tZHMtZWFzZS1pbjogY3ViaWMtYmV6aWVyKDAuNywgMCwgMC44NCwgMCk7CgogIC8qIERlcml2ZWQgaW50ZXJhY3Rpb24gZm9ybXVsYXM6IGFjdGlvbiByb2xlcyAqLwogIC0tcHJpbWFyeS1ob3ZlcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXByaW1hcnkpIDkyJSwgdmFyKC0tZmcpKTsKICAtLXByaW1hcnktYWN0aXZlOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tcHJpbWFyeSkgODQlLCB2YXIoLS1mZykpOwogIC0tc2Vjb25kYXJ5LWhvdmVyOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5KSA5MiUsIHZhcigtLWZnKSk7CiAgLS1zZWNvbmRhcnktYWN0aXZlOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5KSA4NCUsIHZhcigtLWZnKSk7CiAgLS1icmQtaG92ZXI6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1icmQpIDcwJSwgdmFyKC0tZmcpKTsKICAtLWJyZC1hY3RpdmU6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1icmQpIDU1JSwgdmFyKC0tZmcpKTsKICAtLWRlc3RydWN0aXZlLWhvdmVyOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZGVzdHJ1Y3RpdmUpIDkyJSwgdmFyKC0tZmcpKTsKICAtLWRlc3RydWN0aXZlLWFjdGl2ZTogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWRlc3RydWN0aXZlKSA4NCUsIHZhcigtLWZnKSk7CgogIC8qIERlcml2ZWQgaW50ZXJhY3Rpb24gZm9ybXVsYXM6IHN0YXR1cyByb2xlcyAqLwogIC0tZHMtc3VjY2Vzcy1ob3ZlcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWRzLXN1Y2Nlc3MpIDkyJSwgdmFyKC0tZmcpKTsKICAtLWRzLXN1Y2Nlc3MtYWN0aXZlOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZHMtc3VjY2VzcykgODQlLCB2YXIoLS1mZykpOwogIC0tZHMtd2FybmluZy1ob3ZlcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWRzLXdhcm5pbmcpIDkyJSwgdmFyKC0tZmcpKTsKICAtLWRzLXdhcm5pbmctYWN0aXZlOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZHMtd2FybmluZykgODQlLCB2YXIoLS1mZykpOwogIC0tZHMtZGFuZ2VyLWhvdmVyOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZHMtZGFuZ2VyKSA5MiUsIHZhcigtLWZnKSk7CiAgLS1kcy1kYW5nZXItYWN0aXZlOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZHMtZGFuZ2VyKSA4NCUsIHZhcigtLWZnKSk7CiAgLS1kcy1pbmZvLWhvdmVyOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZHMtaW5mbykgOTIlLCB2YXIoLS1mZykpOwogIC0tZHMtaW5mby1hY3RpdmU6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1kcy1pbmZvKSA4NCUsIHZhcigtLWZnKSk7CiAgLS1kcy1zbGF0ZS1ob3ZlcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWRzLXNsYXRlKSA5MiUsIHZhcigtLWZnKSk7CiAgLS1kcy1zbGF0ZS1hY3RpdmU6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1kcy1zbGF0ZSkgODQlLCB2YXIoLS1mZykpOwogIC0tZHMtYXp1cmUtaG92ZXI6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1kcy1henVyZSkgOTIlLCB2YXIoLS1mZykpOwogIC0tZHMtYXp1cmUtYWN0aXZlOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZHMtYXp1cmUpIDg0JSwgdmFyKC0tZmcpKTsKfQo=", "" + import.meta.url).href,
|
|
74
|
-
themes: {
|
|
75
|
-
light: new URL("data:text/css;base64,OnJvb3QgewogIC8qIFN1cmZhY2Ugcm9sZXMgKi8KICAtLWJnOiAjZjhmYWZjOwogIC0tZmc6ICMwZjE3MmE7CiAgLS1jYXJkOiAjZmZmZmZmOwogIC0tY2FyZC1mZzogIzBmMTcyYTsKICAtLXBvcG92ZXI6ICNmZmZmZmY7CiAgLS1wb3BvdmVyLWZnOiAjMGYxNzJhOwogIC0tbXV0ZWQ6ICNmMWY1Zjk7CiAgLS1tdXRlZC1mZzogIzY0NzQ4YjsKICAtLXNlY29uZGFyeTogI2UyZThmMDsKICAtLXNlY29uZGFyeS1mZzogIzFlMjkzYjsKICAtLWJyZDogI2UyZThmMDsKICAtLWlucHV0OiAjZTJlOGYwOwogIC0tcmluZzogIzYzNjZmMTsKCiAgLyogQWN0aW9uIHJvbGVzICovCiAgLS1wcmltYXJ5OiAjNGY0NmU1OwogIC0tcHJpbWFyeS1mZzogI2ZmZmZmZjsKICAtLWFjY2VudDogI2VlZjJmZjsKICAtLWFjY2VudC1mZzogIzM3MzBhMzsKICAtLWRlc3RydWN0aXZlOiAjZGMyNjI2OwogIC0tZGVzdHJ1Y3RpdmUtZmc6ICNmZmZmZmY7CgogIC8qIFN0YXR1cyByb2xlcyAqLwogIC0tZHMtc3VjY2VzczogIzEwYjk4MTsKICAtLWRzLXN1Y2Nlc3MtbGlnaHQ6ICNkMWZhZTU7CiAgLS1kcy1zdWNjZXNzLWZnOiAjZmZmZmZmOwogIC0tZHMtc3VjY2Vzcy10ZXh0OiAjMDY1ZjQ2OwogIC0tZHMtd2FybmluZzogI2Y5NzMxNjsKICAtLWRzLXdhcm5pbmctbGlnaHQ6ICNmZmVkZDU7CiAgLS1kcy13YXJuaW5nLWZnOiAjZmZmZmZmOwogIC0tZHMtd2FybmluZy10ZXh0OiAjN2MyZDEyOwogIC0tZHMtZGFuZ2VyOiAjZGMyNjI2OwogIC0tZHMtZGFuZ2VyLWxpZ2h0OiAjZmVlMmUyOwogIC0tZHMtZGFuZ2VyLWZnOiAjZmZmZmZmOwogIC0tZHMtZGFuZ2VyLXRleHQ6ICM5OTFiMWI7CiAgLS1kcy1pbmZvOiAjNTg1MGVjOwogIC0tZHMtaW5mby1saWdodDogI2UwZTdmZjsKICAtLWRzLWluZm8tZmc6ICNmZmZmZmY7CiAgLS1kcy1pbmZvLXRleHQ6ICMzNzMwYTM7CiAgLS1kcy1zbGF0ZTogIzQ3NTU2OTsKICAtLWRzLXNsYXRlLWxpZ2h0OiAjZTJlOGYwOwogIC0tZHMtc2xhdGUtZmc6ICNmZmZmZmY7CiAgLS1kcy1zbGF0ZS10ZXh0OiAjMzM0MTU1OwogIC0tZHMtYXp1cmU6ICMwZWE1ZTk7CiAgLS1kcy1henVyZS1saWdodDogI2UwZjJmZTsKICAtLWRzLWF6dXJlLWZnOiAjZmZmZmZmOwogIC0tZHMtYXp1cmUtdGV4dDogIzA3NTk4NTsKCiAgLyogRGF0YSB2aXN1YWxpemF0aW9uIHJvbGVzICovCiAgLS1jaGFydC0xOiAjNGY0NmU1OwogIC0tY2hhcnQtMjogIzEwYjk4MTsKICAtLWNoYXJ0LTM6ICNmOTczMTY7CiAgLS1jaGFydC00OiAjNjM2NmYxOwogIC0tY2hhcnQtNTogIzhiNWNmNjsKCiAgLyogTmF2aWdhdGlvbiByb2xlcyAqLwogIC0tc2lkZWJhcjogI2ZmZmZmZjsKICAtLXNpZGViYXItZmc6ICMwZjE3MmE7CiAgLS1zaWRlYmFyLXByaW1hcnk6ICM0ZjQ2ZTU7CiAgLS1zaWRlYmFyLXByaW1hcnktZmc6ICNmZmZmZmY7CiAgLS1zaWRlYmFyLWFjY2VudDogI2YxZjVmOTsKICAtLXNpZGViYXItYWNjZW50LWZnOiAjMWUyOTNiOwogIC0tc2lkZWJhci1icmQ6ICNlMmU4ZjA7CiAgLS1zaWRlYmFyLXJpbmc6ICM2MzY2ZjE7Cn0KCkBzdXBwb3J0cyBub3QgKGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgIzAwMCA1MCUsICNmZmYpKSB7CiAgOnJvb3QgewogICAgLyogQWN0aW9uIHJvbGUgZmFsbGJhY2tzICovCiAgICAtLXByaW1hcnktaG92ZXI6ICM0YTQyZDY7CiAgICAtLXByaW1hcnktYWN0aXZlOiAjNDUzZWM3OwogICAgLS1zZWNvbmRhcnktaG92ZXI6ICNkMWQ3ZTA7CiAgICAtLXNlY29uZGFyeS1hY3RpdmU6ICNjMGM3ZDA7CiAgICAtLWJyZC1ob3ZlcjogI2EzYTliNTsKICAgIC0tYnJkLWFjdGl2ZTogIzgzOGE5NzsKICAgIC0tZGVzdHJ1Y3RpdmUtaG92ZXI6ICNjYzI1MjY7CiAgICAtLWRlc3RydWN0aXZlLWFjdGl2ZTogI2JiMjQyNzsKCiAgICAvKiBTdGF0dXMgcm9sZSBmYWxsYmFja3MgKi8KICAgIC0tZHMtc3VjY2Vzcy1ob3ZlcjogIzEwYWM3YTsKICAgIC0tZHMtc3VjY2Vzcy1hY3RpdmU6ICMxMDlmNzM7CiAgICAtLWRzLXdhcm5pbmctaG92ZXI6ICNlNjZjMTg7CiAgICAtLWRzLXdhcm5pbmctYWN0aXZlOiAjZDQ2NDE5OwogICAgLS1kcy1kYW5nZXItaG92ZXI6ICNjYzI1MjY7CiAgICAtLWRzLWRhbmdlci1hY3RpdmU6ICNiYjI0Mjc7CiAgICAtLWRzLWluZm8taG92ZXI6ICM1YzYwZTE7CiAgICAtLWRzLWluZm8tYWN0aXZlOiAjNTY1OWQxOwogICAgLS1kcy1zbGF0ZS1ob3ZlcjogIzQzNTA2MjsKICAgIC0tZHMtc2xhdGUtYWN0aXZlOiAjM2Q0YTViOwogICAgLS1kcy1henVyZS1ob3ZlcjogIzAyODRjNzsKICAgIC0tZHMtYXp1cmUtYWN0aXZlOiAjMDM2OWExOwoKICAgIC8qIENvbXBvbmVudCBzZW1hbnRpYyBmYWxsYmFja3MgKi8KICAgIC8qLS1kcy1jYXRlZ29yeS10cmVlLWJyYW5jaC1saW5lLWFjdGl2ZS1jb2xvcjogI2M0Y2RmNzsqLwogIH0KfQo=", "" + import.meta.url).href,
|
|
76
|
-
dark: new URL("data:text/css;base64,LnRoZW1lLWRhcmssCi5kYXJrLApbZGF0YS10aGVtZT0nZGFyayddIHsKICAvKiBTdXJmYWNlIHJvbGVzICovCiAgLS1iZzogIzBmMTcyYTsKICAtLWZnOiAjZjhmYWZjOwogIC0tY2FyZDogIzFlMjkzYjsKICAtLWNhcmQtZmc6ICNmOGZhZmM7CiAgLS1wb3BvdmVyOiAjMWUyOTNiOwogIC0tcG9wb3Zlci1mZzogI2Y4ZmFmYzsKICAtLW11dGVkOiAjMzM0MTU1OwogIC0tbXV0ZWQtZmc6ICM5NGEzYjg7CiAgLS1zZWNvbmRhcnk6ICMzMzQxNTU7CiAgLS1zZWNvbmRhcnktZmc6ICNmMWY1Zjk7CiAgLS1icmQ6ICMzMzQxNTU7CiAgLS1pbnB1dDogIzMzNDE1NTsKICAtLXJpbmc6ICM4MThjZjg7CgogIC8qIEFjdGlvbiByb2xlcyAqLwogIC0tcHJpbWFyeTogIzYzNjZmMTsKICAtLXByaW1hcnktZmc6ICNmZmZmZmY7CiAgLS1hY2NlbnQ6ICMxZTFiNGI7CiAgLS1hY2NlbnQtZmc6ICNjN2QyZmU7CiAgLS1kZXN0cnVjdGl2ZTogI2VmNDQ0NDsKICAtLWRlc3RydWN0aXZlLWZnOiAjZmZmZmZmOwoKICAvKiBTdGF0dXMgcm9sZXMgKi8KICAtLWRzLXN1Y2Nlc3M6ICMzNGQzOTk7CiAgLS1kcy1zdWNjZXNzLWxpZ2h0OiAjMDY0ZTNiOwogIC0tZHMtc3VjY2Vzcy1mZzogIzBmMTcyYTsKICAtLWRzLXN1Y2Nlc3MtdGV4dDogIzZlZTdiNzsKICAtLWRzLXdhcm5pbmc6ICNmYjkyM2M7CiAgLS1kcy13YXJuaW5nLWxpZ2h0OiAjN2MyZDEyOwogIC0tZHMtd2FybmluZy1mZzogIzBmMTcyYTsKICAtLWRzLXdhcm5pbmctdGV4dDogI2ZkYmE3NDsKICAtLWRzLWRhbmdlcjogI2Y4NzE3MTsKICAtLWRzLWRhbmdlci1saWdodDogIzdmMWQxZDsKICAtLWRzLWRhbmdlci1mZzogIzBmMTcyYTsKICAtLWRzLWRhbmdlci10ZXh0OiAjZmNhNWE1OwogIC0tZHMtaW5mbzogIzgxOGNmODsKICAtLWRzLWluZm8tbGlnaHQ6ICMzMTJlODE7CiAgLS1kcy1pbmZvLWZnOiAjMGYxNzJhOwogIC0tZHMtaW5mby10ZXh0OiAjYzdkMmZlOwogIC0tZHMtc2xhdGU6ICM5NGEzYjg7CiAgLS1kcy1zbGF0ZS1saWdodDogIzMzNDE1NTsKICAtLWRzLXNsYXRlLWZnOiAjMGYxNzJhOwogIC0tZHMtc2xhdGUtdGV4dDogI2NiZDVlMTsKICAtLWRzLWF6dXJlOiAjMzhiZGY4OwogIC0tZHMtYXp1cmUtbGlnaHQ6ICMwYzRhNmU7CiAgLS1kcy1henVyZS1mZzogIzBmMTcyYTsKICAtLWRzLWF6dXJlLXRleHQ6ICNiYWU2ZmQ7CgogIC8qIERhdGEgdmlzdWFsaXphdGlvbiByb2xlcyAqLwogIC0tY2hhcnQtMTogIzYzNjZmMTsKICAtLWNoYXJ0LTI6ICMzNGQzOTk7CiAgLS1jaGFydC0zOiAjZmI5MjNjOwogIC0tY2hhcnQtNDogIzgxOGNmODsKICAtLWNoYXJ0LTU6ICNhNzhiZmE7CgogIC8qIE5hdmlnYXRpb24gcm9sZXMgKi8KICAtLXNpZGViYXI6ICMxZTI5M2I7CiAgLS1zaWRlYmFyLWZnOiAjZjhmYWZjOwogIC0tc2lkZWJhci1wcmltYXJ5OiAjNjM2NmYxOwogIC0tc2lkZWJhci1wcmltYXJ5LWZnOiAjZmZmZmZmOwogIC0tc2lkZWJhci1hY2NlbnQ6ICMzMzQxNTU7CiAgLS1zaWRlYmFyLWFjY2VudC1mZzogI2YxZjVmOTsKICAtLXNpZGViYXItYnJkOiAjMzM0MTU1OwogIC0tc2lkZWJhci1yaW5nOiAjODE4Y2Y4Owp9CgpAc3VwcG9ydHMgbm90IChjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsICMwMDAgNTAlLCAjZmZmKSkgewogIC50aGVtZS1kYXJrLAogIC5kYXJrLAogIFtkYXRhLXRoZW1lPSdkYXJrJ10gewogICAgLyogQWN0aW9uIHJvbGUgZmFsbGJhY2tzICovCiAgICAtLXByaW1hcnktaG92ZXI6ICM2ZjcyZjI7CiAgICAtLXByaW1hcnktYWN0aXZlOiAjN2I3ZWYzOwogICAgLS1zZWNvbmRhcnktaG92ZXI6ICM0MzUwNjI7CiAgICAtLXNlY29uZGFyeS1hY3RpdmU6ICM1MzVmNzA7CiAgICAtLWJyZC1ob3ZlcjogIzZlNzk4NzsKICAgIC0tYnJkLWFjdGl2ZTogIzhjOTRhMDsKICAgIC0tZGVzdHJ1Y3RpdmUtaG92ZXI6ICNmMDUzNTM7CiAgICAtLWRlc3RydWN0aXZlLWFjdGl2ZTogI2YwNjE2MTsKCiAgICAvKiBTdGF0dXMgcm9sZSBmYWxsYmFja3MgKi8KICAgIC0tZHMtc3VjY2Vzcy1ob3ZlcjogIzQ0ZDZhMTsKICAgIC0tZHMtc3VjY2Vzcy1hY3RpdmU6ICM1M2Q5YTk7CiAgICAtLWRzLXdhcm5pbmctaG92ZXI6ICNmYjlhNGI7CiAgICAtLWRzLXdhcm5pbmctYWN0aXZlOiAjZmJhMzViOwogICAgLS1kcy1kYW5nZXItaG92ZXI6ICNmODdjN2M7CiAgICAtLWRzLWRhbmdlci1hY3RpdmU6ICNmODg3ODc7CiAgICAtLWRzLWluZm8taG92ZXI6ICM4Yjk1Zjg7CiAgICAtLWRzLWluZm8tYWN0aXZlOiAjOTQ5ZWY5OwogICAgLS1kcy1zbGF0ZS1ob3ZlcjogIzlmYWVjMDsKICAgIC0tZHMtc2xhdGUtYWN0aXZlOiAjYWFiN2M4OwogICAgLS1kcy1henVyZS1ob3ZlcjogIzRiYzNmOTsKICAgIC0tZHMtYXp1cmUtYWN0aXZlOiAjNWRjYmY5OwoKICAgIC8qIENvbXBvbmVudCBzZW1hbnRpYyBmYWxsYmFja3MgKi8KICAgIC8qLS1kcy1jYXRlZ29yeS10cmVlLWJyYW5jaC1saW5lLWFjdGl2ZS1jb2xvcjogIzUwNWI4YzsqLwogIH0KfQo=", "" + import.meta.url).href
|
|
77
|
-
},
|
|
78
|
-
defaultThemes: granularityDefaultThemes
|
|
79
|
-
};
|
|
80
|
-
/**
|
|
81
|
-
* Полный реестр публичных компонентов пакета `@feugene/granularity`.
|
|
82
|
-
*
|
|
83
|
-
* Ключи — имена компонентов (совпадают с публичным subpath‑экспортом
|
|
84
|
-
* `@feugene/granularity/components/<Name>`). Значения — browser‑safe
|
|
85
|
-
* `ds<Name>Config` из `./config.ts` рядом с SFC.
|
|
86
|
-
*
|
|
87
|
-
* Для компонентов, у которых есть node-only вариант конфига
|
|
88
|
-
* (например, `GrButton` с `tokenDefinitionsFromCssSync`), browser‑конфиг
|
|
89
|
-
* остаётся здесь, а node‑вариант подставляется снаружи через
|
|
90
|
-
* `createGranularityProvider(overrides)` — см. `./index.ts` (browser)
|
|
91
|
-
* и `./node.ts` (node).
|
|
92
|
-
*
|
|
93
|
-
* Формат записи `<Name>: ds<Name>Config` критичен для regex‑парсинга
|
|
94
|
-
* в `apps/showcase/scripts/generate-component-api.mjs`, не ломайте его.
|
|
95
|
-
*/
|
|
96
|
-
var granularityComponentConfigs = {
|
|
97
|
-
GrAlert: grAlertConfig,
|
|
98
|
-
GrAvatar: grAvatarConfig,
|
|
99
|
-
GrBadge: grBadgeConfig,
|
|
100
|
-
GrBadgeWrap: grBadgeWrapConfig,
|
|
101
|
-
GrBottomNav: grBottomNavConfig,
|
|
102
|
-
GrButton: grButtonConfig,
|
|
103
|
-
GrButtonGroup: grButtonGroupConfig,
|
|
104
|
-
GrCard: grCardConfig,
|
|
105
|
-
GrCheckbox: grCheckboxConfig,
|
|
106
|
-
GrCollapse: grCollapseConfig,
|
|
107
|
-
GrConfirmDialog: grConfirmDialogConfig,
|
|
108
|
-
GrDataTable: grDataTableConfig,
|
|
109
|
-
GrDialog: grDialogConfig,
|
|
110
|
-
GrDrawer: grDrawerConfig,
|
|
111
|
-
GrDropdown: grDropdownConfig,
|
|
112
|
-
GrDropdownMenu: grDropdownMenuConfig,
|
|
113
|
-
GrEmptyState: grEmptyStateConfig,
|
|
114
|
-
GrFileUpload: grFileUploadConfig,
|
|
115
|
-
GrFormField: grFormFieldConfig,
|
|
116
|
-
GrFormFile: grFormFileConfig,
|
|
117
|
-
GrFormSection: grFormSectionConfig,
|
|
118
|
-
GrIcon: grIconConfig,
|
|
119
|
-
GrImageViewer: grImageViewerConfig,
|
|
120
|
-
GrInput: grInputConfig,
|
|
121
|
-
GrInputTag: grInputTagConfig,
|
|
122
|
-
GrLink: grLinkConfig,
|
|
123
|
-
GrList: grListConfig,
|
|
124
|
-
GrLoading: grLoadingConfig,
|
|
125
|
-
GrModal: grModalConfig,
|
|
126
|
-
GrNavbar: grNavbarConfig,
|
|
127
|
-
GrNumberInput: grNumberInputConfig,
|
|
128
|
-
GrPagination: grPaginationConfig,
|
|
129
|
-
GrProgressBar: grProgressBarConfig,
|
|
130
|
-
GrPromptDialog: grPromptDialogConfig,
|
|
131
|
-
GrRadio: grRadioConfig,
|
|
132
|
-
GrRadioGroup: grRadioGroupConfig,
|
|
133
|
-
GrResponseErrorBanner: grResponseErrorBannerConfig,
|
|
134
|
-
GrSegmented: grSegmentedConfig,
|
|
135
|
-
GrSelect: grSelectConfig,
|
|
136
|
-
GrSidebar: grSidebarConfig,
|
|
137
|
-
GrSkeleton: grSkeletonConfig,
|
|
138
|
-
GrSwitch: grSwitchConfig,
|
|
139
|
-
GrTable: grTableConfig,
|
|
140
|
-
GrTabs: grTabsConfig,
|
|
141
|
-
GrTextarea: grTextareaConfig,
|
|
142
|
-
GrToaster: grToasterConfig,
|
|
143
|
-
GrTooltip: grTooltipConfig,
|
|
144
|
-
GrTree: grTreeConfig,
|
|
145
|
-
GrTreeSelect: grTreeSelectConfig
|
|
146
|
-
};
|
|
147
|
-
/** Базовый (browser-safe) набор компонентов в порядке реестра. */
|
|
148
|
-
var baseComponents = Object.values(granularityComponentConfigs);
|
|
149
|
-
/**
|
|
150
|
-
* Собирает granular-provider пакета `@feugene/granularity`.
|
|
151
|
-
*
|
|
152
|
-
* Принимает массив `GranularComponentDescriptor`'ов — это компоненты,
|
|
153
|
-
* у которых есть node-only вариант конфига (например, `GrButton` с
|
|
154
|
-
* `tokenDefinitionsFromCssSync`). Дескрипторы с именем, которое уже
|
|
155
|
-
* присутствует в базовом наборе, переопределяют его (побеждает
|
|
156
|
-
* переданный снаружи), остальные — добавляются в конец списка.
|
|
157
|
-
*/
|
|
158
|
-
function createGranularityProvider(overrides = []) {
|
|
159
|
-
const overrideByName = new Map(overrides.map((component) => [component.name, component]));
|
|
160
|
-
return defineGranularProvider({
|
|
161
|
-
id: GRANULARITY_PROVIDER_ID,
|
|
162
|
-
contractVersion: 1,
|
|
163
|
-
packageBaseUrl,
|
|
164
|
-
components: [...baseComponents.map((component) => overrideByName.get(component.name) ?? component), ...overrides.filter((component) => !baseComponents.some((base) => base.name === component.name))],
|
|
165
|
-
theme
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
//#endregion
|
|
169
|
-
export { granularityThemeNames as a, granularityDefaultThemes as i, createGranularityProvider as n, granularityComponentConfigs as r, GRANULARITY_PROVIDER_ID as t };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shared-BiqXd5MW.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// Ключи записи `<Name>: ds<Name>Config` в `granularityComponentConfigs`\n// критичны для regex‑парсинга в `apps/showcase/scripts/generate-component-api.mjs`,\n// не ломайте формат.\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 { 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 { 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 { 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 *\n * Формат записи `<Name>: ds<Name>Config` критичен для regex‑парсинга\n * в `apps/showcase/scripts/generate-component-api.mjs`, не ломайте его.\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 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 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 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,UAAU;CACrC,UAAU;CACX,CAAC;;;ACNF,IAAa,8BAA8B,wBAAwB,OAAO,KAAK,KAAK;CAClF,MAAM;CACN,cAAc,CAAC,WAAW,WAAW;CACtC,CAAC;;;;ACsEF,IAAa,0BAA0B;AAKvC,IAAM,iBAAiB,GAAG,OAAO,KAAK,IAAI,MACxC,GACA,OAAO,KAAK,IAAI,YAAY,KAAK,OAAO,KAAK,IAAI,YAAY,IAAI,GAAG,EAAE,GAAG,EAC1E;;AAGD,IAAa,wBAAwB,CAAC,SAAS,OAAO;;AAItD,IAAa,2BAA4D,CAAC,QAAQ;AAElF,IAAM,QAAQ;CACZ,YAAY,IAAA,IAAA,i2BAAA,KAAA,OAAA,KAAA,IAA8C,CAAC;CAC3D,cAAc,IAAA,IAAA,iuKAAA,KAAA,OAAA,KAAA,IAAgD,CAAC;CAC/D,QAAQ;EACN,OAAO,IAAA,IAAA,qrGAAA,KAAA,OAAA,KAAA,IAAsD,CAAC;EAC9D,MAAM,IAAA,IAAA,qxGAAA,KAAA,OAAA,KAAA,IAAqD,CAAC;EAC7D;CACD,eAAe;CAChB;;;;;;;;;;;;;;;;;AAkBD,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,UAAU;CACV,YAAY;CACZ,gBAAgB;CAChB,cAAc;CACd,cAAc;CACd,aAAa;CACb,YAAY;CACZ,eAAe;CACf,QAAQ;CACR,eAAe;CACf,SAAS;CACT,YAAY;CACZ,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,QAAQ;CACR,YAAY;CACZ,WAAW;CACX,WAAW;CACX,QAAQ;CACR,cAAc;CACf;;AAKD,IAAM,iBAAyD,OAAO,OACpE,4BACD;;;;;;;;;;AAWD,SAAgB,0BACd,YAAoD,EAAE,EACpC;CAClB,MAAM,iBAAiB,IAAI,IACzB,UAAU,KAAI,cAAa,CAAC,UAAU,MAAM,UAAU,CAAC,CACxD;AAMD,QAAO,uBAAuB;EAC5B,IAAI;EACJ,iBAAiB;EACjB;EACA,YATgD,CAChD,GAAG,eAAe,KAAI,cAAa,eAAe,IAAI,UAAU,KAAK,IAAI,UAAU,EACnF,GAAG,UAAU,QAAO,cAAa,CAAC,eAAe,MAAK,SAAQ,KAAK,SAAS,UAAU,KAAK,CAAC,CAC7F;EAOC;EACD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"x-Pa6C2hwi.js","names":[],"sources":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"x-circle-DQSlBLmX.js","names":[],"sources":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GrAlert-HyCjYJeL.js","names":[],"sources":["../../../../src/components/GrAlert/GrAlert.vue","../../../../src/components/GrAlert/GrAlert.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nimport IconWarning from '~icons/lucide/alert-triangle'\nimport IconCheck from '~icons/lucide/check-circle'\nimport IconInfo from '~icons/lucide/info'\nimport IconClose from '~icons/lucide/x'\nimport IconError from '~icons/lucide/x-circle'\n\nimport type { GrTone } from '../shared/tones'\n\nexport type GrAlertTone = GrTone\nexport type GrAlertVariant = 'soft' | 'light'\n\ntype GrAlertResolvedStyles = {\n bg: string\n border: string\n icon: string\n title: string\n text: string\n close: string\n closeHover: string\n Icon: unknown\n}\n\nconst DEFAULT_TEXT_COLORS = {\n title: 'var(--fg)',\n text: 'var(--muted-fg)',\n close: 'var(--muted-fg)',\n closeHover: 'var(--fg)',\n} as const\n\nconst WARNING_LIGHT_TEXT_COLOR = '#92400e'\n\nconst emit = defineEmits<{\n (event: 'close'): void\n}>()\n\nconst props = withDefaults(defineProps<{\n tone?: GrAlertTone\n variant?: GrAlertVariant\n title?: string\n closable?: boolean\n backgroundColor?: string\n textColor?: string\n borderColor?: string\n}>(), {\n tone: 'info',\n variant: 'soft',\n title: undefined,\n closable: false,\n backgroundColor: undefined,\n textColor: undefined,\n borderColor: undefined,\n})\n\nconst getCustomColor = (value?: string) => value?.trim() || undefined\n\nconst SOFT_TONE_STYLES: Record<GrAlertTone, GrAlertResolvedStyles> = {\n primary: {\n bg: 'var(--accent)',\n border: 'color-mix(in srgb, var(--primary) 22%, var(--brd))',\n icon: 'var(--primary)',\n ...DEFAULT_TEXT_COLORS,\n Icon: IconInfo,\n },\n neutral: {\n bg: 'var(--muted)',\n border: 'var(--brd)',\n icon: 'var(--muted-fg)',\n ...DEFAULT_TEXT_COLORS,\n Icon: IconInfo,\n },\n info: {\n bg: 'var(--ds-info-light)',\n border: 'color-mix(in srgb, var(--ds-info) 22%, var(--brd))',\n icon: 'var(--ds-info)',\n ...DEFAULT_TEXT_COLORS,\n Icon: IconInfo,\n },\n success: {\n bg: 'var(--ds-success-light)',\n border: 'color-mix(in srgb, var(--ds-success) 22%, var(--brd))',\n icon: 'var(--ds-success)',\n ...DEFAULT_TEXT_COLORS,\n Icon: IconCheck,\n },\n warning: {\n bg: 'var(--ds-warning-light)',\n border: 'color-mix(in srgb, var(--ds-warning) 22%, var(--brd))',\n icon: 'var(--ds-warning)',\n ...DEFAULT_TEXT_COLORS,\n Icon: IconWarning,\n },\n danger: {\n bg: 'var(--ds-danger-light)',\n border: 'color-mix(in srgb, var(--ds-danger) 22%, var(--brd))',\n icon: 'var(--ds-danger)',\n ...DEFAULT_TEXT_COLORS,\n Icon: IconError,\n },\n slate: {\n bg: 'var(--ds-slate-light)',\n border: 'color-mix(in srgb, var(--ds-slate) 22%, var(--brd))',\n icon: 'var(--ds-slate)',\n ...DEFAULT_TEXT_COLORS,\n Icon: IconInfo,\n },\n azure: {\n bg: 'var(--ds-azure-light)',\n border: 'color-mix(in srgb, var(--ds-azure) 22%, var(--brd))',\n icon: 'var(--ds-azure)',\n ...DEFAULT_TEXT_COLORS,\n Icon: IconInfo,\n },\n}\n\nconst LIGHT_TONE_STYLES: Partial<Record<GrAlertTone, GrAlertResolvedStyles>> = {\n warning: {\n bg: '#fffbeb',\n border: '#fcd34d',\n icon: WARNING_LIGHT_TEXT_COLOR,\n title: WARNING_LIGHT_TEXT_COLOR,\n text: WARNING_LIGHT_TEXT_COLOR,\n close: WARNING_LIGHT_TEXT_COLOR,\n closeHover: WARNING_LIGHT_TEXT_COLOR,\n Icon: IconWarning,\n },\n}\n\nconst styles = computed<GrAlertResolvedStyles>(() => {\n const base = (props.variant === 'light' ? LIGHT_TONE_STYLES[props.tone] : undefined) ?? SOFT_TONE_STYLES[props.tone]\n const customTextColor = getCustomColor(props.textColor)\n\n return {\n ...base,\n bg: getCustomColor(props.backgroundColor) ?? base.bg,\n border: getCustomColor(props.borderColor) ?? base.border,\n icon: customTextColor ?? base.icon,\n title: customTextColor ?? base.title,\n text: customTextColor ?? base.text,\n close: customTextColor ?? base.close,\n closeHover: customTextColor ?? base.closeHover,\n }\n})\n\nconst rootStyle = computed(() => ({\n '--ds-alert-bg': styles.value.bg,\n '--ds-alert-brd': styles.value.border,\n '--ds-alert-icon-color': styles.value.icon,\n '--ds-alert-title-color': styles.value.title,\n '--ds-alert-text-color': styles.value.text,\n '--ds-alert-close-color': styles.value.close,\n '--ds-alert-close-hover-color': styles.value.closeHover,\n background: 'var(--ds-alert-bg)',\n borderColor: 'var(--ds-alert-brd)',\n}))\n</script>\n\n<template>\n <div\n role=\"alert\"\n class=\"rounded-[var(--ds-radius-lg)] border px-4 py-3\"\n :style=\"rootStyle\"\n >\n <div class=\"flex items-start gap-3\">\n <component :is=\"styles.Icon\" class=\"mt-0.5 h-5 w-5 text-[var(--ds-alert-icon-color)]\" aria-hidden=\"true\" />\n <div class=\"min-w-0 flex-1\">\n <div v-if=\"props.title\" class=\"text-[14px] font-700 text-[var(--ds-alert-title-color)]\">\n {{ props.title }}\n </div>\n <div class=\"mt-0.5 text-[13px] text-[var(--ds-alert-text-color)]\">\n <slot />\n </div>\n </div>\n\n <button\n v-if=\"props.closable\"\n type=\"button\"\n class=\"-mr-1 -mt-1 rounded-[var(--ds-radius-md)] p-1 text-[var(--ds-alert-close-color)] transition-colors hover:text-[var(--ds-alert-close-hover-color)]\"\n aria-label=\"Close\"\n @click=\"emit('close')\"\n >\n <IconClose class=\"h-4 w-4\" aria-hidden=\"true\" />\n </button>\n </div>\n </div>\n</template>","<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nimport IconWarning from '~icons/lucide/alert-triangle'\nimport IconCheck from '~icons/lucide/check-circle'\nimport IconInfo from '~icons/lucide/info'\nimport IconClose from '~icons/lucide/x'\nimport IconError from '~icons/lucide/x-circle'\n\nimport type { GrTone } from '../shared/tones'\n\nexport type GrAlertTone = GrTone\nexport type GrAlertVariant = 'soft' | 'light'\n\ntype GrAlertResolvedStyles = {\n bg: string\n border: string\n icon: string\n title: string\n text: string\n close: string\n closeHover: string\n Icon: unknown\n}\n\nconst DEFAULT_TEXT_COLORS = {\n title: 'var(--fg)',\n text: 'var(--muted-fg)',\n close: 'var(--muted-fg)',\n closeHover: 'var(--fg)',\n} as const\n\nconst WARNING_LIGHT_TEXT_COLOR = '#92400e'\n\nconst emit = defineEmits<{\n (event: 'close'): void\n}>()\n\nconst props = withDefaults(defineProps<{\n tone?: GrAlertTone\n variant?: GrAlertVariant\n title?: string\n closable?: boolean\n backgroundColor?: string\n textColor?: string\n borderColor?: string\n}>(), {\n tone: 'info',\n variant: 'soft',\n title: undefined,\n closable: false,\n backgroundColor: undefined,\n textColor: undefined,\n borderColor: undefined,\n})\n\nconst getCustomColor = (value?: string) => value?.trim() || undefined\n\nconst SOFT_TONE_STYLES: Record<GrAlertTone, GrAlertResolvedStyles> = {\n primary: {\n bg: 'var(--accent)',\n border: 'color-mix(in srgb, var(--primary) 22%, var(--brd))',\n icon: 'var(--primary)',\n ...DEFAULT_TEXT_COLORS,\n Icon: IconInfo,\n },\n neutral: {\n bg: 'var(--muted)',\n border: 'var(--brd)',\n icon: 'var(--muted-fg)',\n ...DEFAULT_TEXT_COLORS,\n Icon: IconInfo,\n },\n info: {\n bg: 'var(--ds-info-light)',\n border: 'color-mix(in srgb, var(--ds-info) 22%, var(--brd))',\n icon: 'var(--ds-info)',\n ...DEFAULT_TEXT_COLORS,\n Icon: IconInfo,\n },\n success: {\n bg: 'var(--ds-success-light)',\n border: 'color-mix(in srgb, var(--ds-success) 22%, var(--brd))',\n icon: 'var(--ds-success)',\n ...DEFAULT_TEXT_COLORS,\n Icon: IconCheck,\n },\n warning: {\n bg: 'var(--ds-warning-light)',\n border: 'color-mix(in srgb, var(--ds-warning) 22%, var(--brd))',\n icon: 'var(--ds-warning)',\n ...DEFAULT_TEXT_COLORS,\n Icon: IconWarning,\n },\n danger: {\n bg: 'var(--ds-danger-light)',\n border: 'color-mix(in srgb, var(--ds-danger) 22%, var(--brd))',\n icon: 'var(--ds-danger)',\n ...DEFAULT_TEXT_COLORS,\n Icon: IconError,\n },\n slate: {\n bg: 'var(--ds-slate-light)',\n border: 'color-mix(in srgb, var(--ds-slate) 22%, var(--brd))',\n icon: 'var(--ds-slate)',\n ...DEFAULT_TEXT_COLORS,\n Icon: IconInfo,\n },\n azure: {\n bg: 'var(--ds-azure-light)',\n border: 'color-mix(in srgb, var(--ds-azure) 22%, var(--brd))',\n icon: 'var(--ds-azure)',\n ...DEFAULT_TEXT_COLORS,\n Icon: IconInfo,\n },\n}\n\nconst LIGHT_TONE_STYLES: Partial<Record<GrAlertTone, GrAlertResolvedStyles>> = {\n warning: {\n bg: '#fffbeb',\n border: '#fcd34d',\n icon: WARNING_LIGHT_TEXT_COLOR,\n title: WARNING_LIGHT_TEXT_COLOR,\n text: WARNING_LIGHT_TEXT_COLOR,\n close: WARNING_LIGHT_TEXT_COLOR,\n closeHover: WARNING_LIGHT_TEXT_COLOR,\n Icon: IconWarning,\n },\n}\n\nconst styles = computed<GrAlertResolvedStyles>(() => {\n const base = (props.variant === 'light' ? LIGHT_TONE_STYLES[props.tone] : undefined) ?? SOFT_TONE_STYLES[props.tone]\n const customTextColor = getCustomColor(props.textColor)\n\n return {\n ...base,\n bg: getCustomColor(props.backgroundColor) ?? base.bg,\n border: getCustomColor(props.borderColor) ?? base.border,\n icon: customTextColor ?? base.icon,\n title: customTextColor ?? base.title,\n text: customTextColor ?? base.text,\n close: customTextColor ?? base.close,\n closeHover: customTextColor ?? base.closeHover,\n }\n})\n\nconst rootStyle = computed(() => ({\n '--ds-alert-bg': styles.value.bg,\n '--ds-alert-brd': styles.value.border,\n '--ds-alert-icon-color': styles.value.icon,\n '--ds-alert-title-color': styles.value.title,\n '--ds-alert-text-color': styles.value.text,\n '--ds-alert-close-color': styles.value.close,\n '--ds-alert-close-hover-color': styles.value.closeHover,\n background: 'var(--ds-alert-bg)',\n borderColor: 'var(--ds-alert-brd)',\n}))\n</script>\n\n<template>\n <div\n role=\"alert\"\n class=\"rounded-[var(--ds-radius-lg)] border px-4 py-3\"\n :style=\"rootStyle\"\n >\n <div class=\"flex items-start gap-3\">\n <component :is=\"styles.Icon\" class=\"mt-0.5 h-5 w-5 text-[var(--ds-alert-icon-color)]\" aria-hidden=\"true\" />\n <div class=\"min-w-0 flex-1\">\n <div v-if=\"props.title\" class=\"text-[14px] font-700 text-[var(--ds-alert-title-color)]\">\n {{ props.title }}\n </div>\n <div class=\"mt-0.5 text-[13px] text-[var(--ds-alert-text-color)]\">\n <slot />\n </div>\n </div>\n\n <button\n v-if=\"props.closable\"\n type=\"button\"\n class=\"-mr-1 -mt-1 rounded-[var(--ds-radius-md)] p-1 text-[var(--ds-alert-close-color)] transition-colors hover:text-[var(--ds-alert-close-hover-color)]\"\n aria-label=\"Close\"\n @click=\"emit('close')\"\n >\n <IconClose class=\"h-4 w-4\" aria-hidden=\"true\" />\n </button>\n </div>\n </div>\n</template>"],"mappings":";;;;;;;;;;;;AAgCA,IAAM,2BAA2B;;;;;;;;;;;;;;;;;;;EAPjC,MAAM,sBAAsB;GAC1B,OAAO;GACP,MAAM;GACN,OAAO;GACP,YAAY;GACb;EAID,MAAM,OAAO;EAIb,MAAM,QAAQ;EAkBd,MAAM,kBAAkB,UAAmB,OAAO,MAAM,IAAI,KAAA;EAE5D,MAAM,mBAA+D;GACnE,SAAS;IACP,IAAI;IACJ,QAAQ;IACR,MAAM;IACN,GAAG;IACH,MAAM;IACP;GACD,SAAS;IACP,IAAI;IACJ,QAAQ;IACR,MAAM;IACN,GAAG;IACH,MAAM;IACP;GACD,MAAM;IACJ,IAAI;IACJ,QAAQ;IACR,MAAM;IACN,GAAG;IACH,MAAM;IACP;GACD,SAAS;IACP,IAAI;IACJ,QAAQ;IACR,MAAM;IACN,GAAG;IACH,MAAM;IACP;GACD,SAAS;IACP,IAAI;IACJ,QAAQ;IACR,MAAM;IACN,GAAG;IACH,MAAM;IACP;GACD,QAAQ;IACN,IAAI;IACJ,QAAQ;IACR,MAAM;IACN,GAAG;IACH,MAAM;IACP;GACD,OAAO;IACL,IAAI;IACJ,QAAQ;IACR,MAAM;IACN,GAAG;IACH,MAAM;IACP;GACD,OAAO;IACL,IAAI;IACJ,QAAQ;IACR,MAAM;IACN,GAAG;IACH,MAAM;IACP;GACH;EAEA,MAAM,oBAAyE,EAC7E,SAAS;GACP,IAAI;GACJ,QAAQ;GACR,MAAM;GACN,OAAO;GACP,MAAM;GACN,OAAO;GACP,YAAY;GACZ,MAAM;GACP,EACH;EAEA,MAAM,SAAS,eAAsC;GACnD,MAAM,QAAQ,MAAM,YAAY,UAAU,kBAAkB,MAAM,QAAQ,KAAA,MAAc,iBAAiB,MAAM;GAC/G,MAAM,kBAAkB,eAAe,MAAM,UAAS;AAEtD,UAAO;IACL,GAAG;IACH,IAAI,eAAe,MAAM,gBAAgB,IAAI,KAAK;IAClD,QAAQ,eAAe,MAAM,YAAY,IAAI,KAAK;IAClD,MAAM,mBAAmB,KAAK;IAC9B,OAAO,mBAAmB,KAAK;IAC/B,MAAM,mBAAmB,KAAK;IAC9B,OAAO,mBAAmB,KAAK;IAC/B,YAAY,mBAAmB,KAAK;IACtC;IACD;EAED,MAAM,YAAY,gBAAgB;GAChC,iBAAiB,OAAO,MAAM;GAC9B,kBAAkB,OAAO,MAAM;GAC/B,yBAAyB,OAAO,MAAM;GACtC,0BAA0B,OAAO,MAAM;GACvC,yBAAyB,OAAO,MAAM;GACtC,0BAA0B,OAAO,MAAM;GACvC,gCAAgC,OAAO,MAAM;GAC7C,YAAY;GACZ,aAAa;GACd,EAAC;;uBAIA,mBA0BM,OAAA;IAzBJ,MAAK;IACL,OAAM;IACL,OAAK,eAAE,UAAA,MAAS;OAEjB,mBAoBM,OApBN,YAoBM;kBAnBJ,YAA2G,wBAA3F,OAAA,MAAO,KAAI,EAAA;KAAE,OAAM;KAAmD,eAAY;;IAClG,mBAOM,OAPN,YAOM,CANO,MAAM,SAAA,WAAA,EAAjB,mBAEM,OAFN,YAEM,gBADD,MAAM,MAAK,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA,EAEhB,mBAEM,OAFN,YAEM,CADJ,WAAQ,KAAA,QAAA,UAAA,CAAA,CAAA,CAAA,CAAA;IAKJ,MAAM,YAAA,WAAA,EADd,mBAQS,UAAA;;KANP,MAAK;KACL,OAAM;KACN,cAAW;KACV,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,KAAI,QAAA;QAEZ,YAAgD,MAAA,UAAA,EAAA;KAArC,OAAM;KAAU,eAAY"}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { t as loader_circle_default } from "../../../chunks/loader-circle-BUntgosj.js";
|
|
2
|
-
import { n as grButtonBaseClass, r as grButtonClass } from "../../../chunks/grButtonStyles-DKuXUemw.js";
|
|
3
|
-
import { computed, createBlock, createCommentVNode, createElementBlock, defineComponent, normalizeClass, normalizeStyle, openBlock, renderSlot, unref } from "vue";
|
|
4
|
-
//#region src/components/GrButton/GrButton.vue?vue&type=script&setup=true&lang.ts
|
|
5
|
-
var _hoisted_1 = [
|
|
6
|
-
"data-ds-variant",
|
|
7
|
-
"data-ds-tone",
|
|
8
|
-
"type",
|
|
9
|
-
"disabled",
|
|
10
|
-
"aria-busy",
|
|
11
|
-
"aria-label"
|
|
12
|
-
];
|
|
13
|
-
//#endregion
|
|
14
|
-
//#region src/components/GrButton/GrButton.vue
|
|
15
|
-
var GrButton_default = /* @__PURE__ */ defineComponent({
|
|
16
|
-
__name: "GrButton",
|
|
17
|
-
props: {
|
|
18
|
-
variant: { default: "primary" },
|
|
19
|
-
tone: { default: "primary" },
|
|
20
|
-
size: { default: "md" },
|
|
21
|
-
loading: {
|
|
22
|
-
type: Boolean,
|
|
23
|
-
default: false
|
|
24
|
-
},
|
|
25
|
-
disabled: {
|
|
26
|
-
type: Boolean,
|
|
27
|
-
default: false
|
|
28
|
-
},
|
|
29
|
-
square: {
|
|
30
|
-
type: Boolean,
|
|
31
|
-
default: false
|
|
32
|
-
},
|
|
33
|
-
type: { default: "button" },
|
|
34
|
-
ariaLabel: { default: void 0 }
|
|
35
|
-
},
|
|
36
|
-
setup(__props) {
|
|
37
|
-
const props = __props;
|
|
38
|
-
const isDisabled = computed(() => props.disabled || props.loading);
|
|
39
|
-
const isSquare = computed(() => props.square);
|
|
40
|
-
const squareStyle = computed(() => {
|
|
41
|
-
if (!isSquare.value) return void 0;
|
|
42
|
-
const v = `${(() => {
|
|
43
|
-
if (props.size === "xs") return 28;
|
|
44
|
-
if (props.size === "sm") return 32;
|
|
45
|
-
if (props.size === "lg") return 44;
|
|
46
|
-
return 40;
|
|
47
|
-
})()}px`;
|
|
48
|
-
return {
|
|
49
|
-
width: v,
|
|
50
|
-
minWidth: v,
|
|
51
|
-
height: v,
|
|
52
|
-
padding: "0px"
|
|
53
|
-
};
|
|
54
|
-
});
|
|
55
|
-
const className = computed(() => {
|
|
56
|
-
return grButtonClass({
|
|
57
|
-
variant: props.variant,
|
|
58
|
-
tone: props.tone,
|
|
59
|
-
size: props.size,
|
|
60
|
-
square: isSquare.value
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
return (_ctx, _cache) => {
|
|
64
|
-
return openBlock(), createElementBlock("button", {
|
|
65
|
-
"data-ds-button": "",
|
|
66
|
-
"data-ds-variant": props.variant,
|
|
67
|
-
"data-ds-tone": props.tone,
|
|
68
|
-
type: props.type,
|
|
69
|
-
disabled: isDisabled.value,
|
|
70
|
-
"aria-busy": props.loading ? "true" : void 0,
|
|
71
|
-
"aria-label": props.ariaLabel,
|
|
72
|
-
class: normalizeClass([unref(grButtonBaseClass), className.value]),
|
|
73
|
-
style: normalizeStyle(squareStyle.value)
|
|
74
|
-
}, [props.loading ? (openBlock(), createBlock(unref(loader_circle_default), {
|
|
75
|
-
key: 0,
|
|
76
|
-
class: "h-4 w-4 animate-spin",
|
|
77
|
-
"aria-hidden": "true"
|
|
78
|
-
})) : createCommentVNode("", true), renderSlot(_ctx.$slots, "default")], 14, _hoisted_1);
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
//#endregion
|
|
83
|
-
export { GrButton_default as t };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GrButton-CPDKonoB.js","names":[],"sources":["../../../../src/components/GrButton/GrButton.vue","../../../../src/components/GrButton/GrButton.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nimport IconLoader from '~icons/lucide/loader-circle'\n\nexport type { GrButtonSize, GrButtonTone, GrButtonVariant } from './grButtonStyles'\n\nimport {\n grButtonBaseClass,\n grButtonClass,\n type GrButtonSize,\n type GrButtonTone,\n type GrButtonVariant,\n} from './grButtonStyles'\n\nconst props = withDefaults(\n defineProps<{\n variant?: GrButtonVariant\n tone?: GrButtonTone\n size?: GrButtonSize\n loading?: boolean\n disabled?: boolean\n square?: boolean\n type?: 'button' | 'submit' | 'reset'\n ariaLabel?: string\n }>(),\n {\n variant: 'primary',\n tone: 'primary',\n size: 'md',\n loading: false,\n disabled: false,\n square: false,\n type: 'button',\n ariaLabel: undefined,\n },\n)\n\nconst isDisabled = computed(() => props.disabled || props.loading)\nconst isSquare = computed(() => props.square)\n\nconst squareStyle = computed(() => {\n if (!isSquare.value) return undefined\n\n const px = (() => {\n if (props.size === 'xs') return 28\n if (props.size === 'sm') return 32\n if (props.size === 'lg') return 44\n return 40\n })()\n\n const v = `${px}px`\n return {\n width: v,\n minWidth: v,\n height: v,\n padding: '0px',\n } as const\n})\n\nconst className = computed(() => {\n return grButtonClass({\n variant: props.variant,\n tone: props.tone,\n size: props.size,\n square: isSquare.value,\n })\n})\n</script>\n\n<template>\n <button\n data-ds-button\n :data-ds-variant=\"props.variant\"\n :data-ds-tone=\"props.tone\"\n :type=\"props.type\"\n :disabled=\"isDisabled\"\n :aria-busy=\"props.loading ? 'true' : undefined\"\n :aria-label=\"props.ariaLabel\"\n :class=\"[grButtonBaseClass, className]\"\n :style=\"squareStyle\"\n >\n <IconLoader v-if=\"props.loading\" class=\"h-4 w-4 animate-spin\" aria-hidden=\"true\" />\n <slot />\n </button>\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nimport IconLoader from '~icons/lucide/loader-circle'\n\nexport type { GrButtonSize, GrButtonTone, GrButtonVariant } from './grButtonStyles'\n\nimport {\n grButtonBaseClass,\n grButtonClass,\n type GrButtonSize,\n type GrButtonTone,\n type GrButtonVariant,\n} from './grButtonStyles'\n\nconst props = withDefaults(\n defineProps<{\n variant?: GrButtonVariant\n tone?: GrButtonTone\n size?: GrButtonSize\n loading?: boolean\n disabled?: boolean\n square?: boolean\n type?: 'button' | 'submit' | 'reset'\n ariaLabel?: string\n }>(),\n {\n variant: 'primary',\n tone: 'primary',\n size: 'md',\n loading: false,\n disabled: false,\n square: false,\n type: 'button',\n ariaLabel: undefined,\n },\n)\n\nconst isDisabled = computed(() => props.disabled || props.loading)\nconst isSquare = computed(() => props.square)\n\nconst squareStyle = computed(() => {\n if (!isSquare.value) return undefined\n\n const px = (() => {\n if (props.size === 'xs') return 28\n if (props.size === 'sm') return 32\n if (props.size === 'lg') return 44\n return 40\n })()\n\n const v = `${px}px`\n return {\n width: v,\n minWidth: v,\n height: v,\n padding: '0px',\n } as const\n})\n\nconst className = computed(() => {\n return grButtonClass({\n variant: props.variant,\n tone: props.tone,\n size: props.size,\n square: isSquare.value,\n })\n})\n</script>\n\n<template>\n <button\n data-ds-button\n :data-ds-variant=\"props.variant\"\n :data-ds-tone=\"props.tone\"\n :type=\"props.type\"\n :disabled=\"isDisabled\"\n :aria-busy=\"props.loading ? 'true' : undefined\"\n :aria-label=\"props.ariaLabel\"\n :class=\"[grButtonBaseClass, className]\"\n :style=\"squareStyle\"\n >\n <IconLoader v-if=\"props.loading\" class=\"h-4 w-4 animate-spin\" aria-hidden=\"true\" />\n <slot />\n </button>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAeA,MAAM,QAAQ;EAuBd,MAAM,aAAa,eAAe,MAAM,YAAY,MAAM,QAAO;EACjE,MAAM,WAAW,eAAe,MAAM,OAAM;EAE5C,MAAM,cAAc,eAAe;AACjC,OAAI,CAAC,SAAS,MAAO,QAAO,KAAA;GAS5B,MAAM,IAAI,UAPQ;AAChB,QAAI,MAAM,SAAS,KAAM,QAAO;AAChC,QAAI,MAAM,SAAS,KAAM,QAAO;AAChC,QAAI,MAAM,SAAS,KAAM,QAAO;AAChC,WAAO;OACN,CAEa;AAChB,UAAO;IACL,OAAO;IACP,UAAU;IACV,QAAQ;IACR,SAAS;IACV;IACF;EAED,MAAM,YAAY,eAAe;AAC/B,UAAO,cAAc;IACnB,SAAS,MAAM;IACf,MAAM,MAAM;IACZ,MAAM,MAAM;IACZ,QAAQ,SAAS;IAClB,CAAA;IACF;;uBAIC,mBAaS,UAAA;IAZP,kBAAA;IACC,mBAAiB,MAAM;IACvB,gBAAc,MAAM;IACpB,MAAM,MAAM;IACZ,UAAU,WAAA;IACV,aAAW,MAAM,UAAO,SAAY,KAAA;IACpC,cAAY,MAAM;IAClB,OAAK,eAAA,CAAG,MAAA,kBAAiB,EAAE,UAAA,MAAS,CAAA;IACpC,OAAK,eAAE,YAAA,MAAW;OAED,MAAM,WAAA,WAAA,EAAxB,YAAmF,MAAA,sBAAA,EAAA;;IAAlD,OAAM;IAAuB,eAAY;uCAC1E,WAAQ,KAAA,QAAA,UAAA,CAAA,EAAA,IAAA,WAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GrButtonGroup-CPOH6V-P.js","names":[],"sources":["../../../../src/components/GrButtonGroup/GrButtonGroup.vue","../../../../src/components/GrButtonGroup/GrButtonGroup.vue"],"sourcesContent":["<script setup lang=\"ts\">\nwithDefaults(\n defineProps<{\n ariaLabel?: string\n }>(),\n {\n ariaLabel: undefined,\n },\n)\n</script>\n\n<template>\n <div\n data-ds-button-group\n class=\"inline-flex items-stretch\"\n role=\"group\"\n :aria-label=\"ariaLabel\"\n >\n <slot />\n </div>\n</template>\n<style>\n[data-ds-button-group] {\n --ds-button-group-radius: 0.375rem;\n}\n\n[data-ds-button-group] > [data-ds-button] {\n border-radius: 0;\n position: relative;\n}\n\n[data-ds-button-group] > [data-ds-button] + [data-ds-button] {\n margin-inline-start: -1px;\n}\n\n[data-ds-button-group] > [data-ds-button]:hover,\n[data-ds-button-group] > [data-ds-button]:focus-visible {\n z-index: 1;\n}\n\n[data-ds-button-group] > [data-ds-button]:first-child {\n border-start-start-radius: var(--ds-button-group-radius);\n border-end-start-radius: var(--ds-button-group-radius);\n}\n\n[data-ds-button-group] > [data-ds-button]:last-child {\n border-start-end-radius: var(--ds-button-group-radius);\n border-end-end-radius: var(--ds-button-group-radius);\n}\n\n</style>","<script setup lang=\"ts\">\nwithDefaults(\n defineProps<{\n ariaLabel?: string\n }>(),\n {\n ariaLabel: undefined,\n },\n)\n</script>\n\n<template>\n <div\n data-ds-button-group\n class=\"inline-flex items-stretch\"\n role=\"group\"\n :aria-label=\"ariaLabel\"\n >\n <slot />\n </div>\n</template>\n<style>\n[data-ds-button-group] {\n --ds-button-group-radius: 0.375rem;\n}\n\n[data-ds-button-group] > [data-ds-button] {\n border-radius: 0;\n position: relative;\n}\n\n[data-ds-button-group] > [data-ds-button] + [data-ds-button] {\n margin-inline-start: -1px;\n}\n\n[data-ds-button-group] > [data-ds-button]:hover,\n[data-ds-button-group] > [data-ds-button]:focus-visible {\n z-index: 1;\n}\n\n[data-ds-button-group] > [data-ds-button]:first-child {\n border-start-start-radius: var(--ds-button-group-radius);\n border-end-start-radius: var(--ds-button-group-radius);\n}\n\n[data-ds-button-group] > [data-ds-button]:last-child {\n border-start-end-radius: var(--ds-button-group-radius);\n border-end-end-radius: var(--ds-button-group-radius);\n}\n\n</style>"],"mappings":";;;;;;;;;;uBAYE,mBAOM,OAAA;IANF,wBAAA;IACA,OAAM;IACN,MAAK;IACJ,cAAY,QAAA;OAEf,WAAQ,KAAA,QAAA,UAAA,CAAA,EAAA,GAAA,WAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GrCard-6yk1RRAQ.js","names":[],"sources":["../../../../src/components/GrCard/GrCard.vue"],"sourcesContent":["<template>\n <div\n class=\"rounded-[var(--ds-radius-lg)] border border-[var(--brd)] bg-[var(--card)] text-[var(--card-fg)] shadow-sm\"\n>\n <slot />\n </div>\n</template>"],"mappings":";;;;mBAEM,OAAM,6GAA2G;;qBADrH,mBAIM,OAJN,YAIM,CADJ,WAAQ,KAAA,QAAA,UAAA,CAAA,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GrCheckbox-Bt3d7ckE.js","names":[],"sources":["../../../../src/components/GrCheckbox/GrCheckbox.vue","../../../../src/components/GrCheckbox/GrCheckbox.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * GrCheckbox — DS-примитив чекбокса с нативным скрытым `<input type=\"checkbox\">`\n * для интеграции с HTML-формами (`FormData`, `required`, `form`).\n *\n * Клавиатура: `Space`/`Enter` переключают значение, фокус — на корневом элементе.\n * A11y: `role=\"checkbox\"` + `aria-checked`/`aria-disabled`.\n */\nimport { ref, watch } from 'vue'\nimport IconCheck from '~icons/lucide/check'\n\nexport interface GrCheckboxProps {\n modelValue?: boolean\n disabled?: boolean\n name?: string\n value?: string\n required?: boolean\n form?: string\n /** Пробрасывается на скрытый нативный `<input>`, чтобы работал `<label for=\"...\">`. */\n id?: string\n}\n\nconst hiddenInputStyle = {\n position: 'absolute',\n opacity: '0',\n width: '0',\n height: '0',\n pointerEvents: 'none',\n} as const\n\nconst props = withDefaults(defineProps<GrCheckboxProps>(), {\n modelValue: false,\n disabled: false,\n name: undefined,\n value: 'on',\n required: false,\n form: undefined,\n id: undefined,\n})\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: boolean): void\n}>()\n\n// Держим `.checked` на нативном input синхронно с пропом — `:checked`-биндинг\n// на скрытом элементе иногда отстаёт при программных обновлениях.\nconst nativeInput = ref<HTMLInputElement | null>(null)\nwatch(\n () => props.modelValue,\n (value) => {\n if (nativeInput.value && nativeInput.value.checked !== value)\n nativeInput.value.checked = value\n },\n)\n\nfunction toggle(): void {\n if (props.disabled)\n return\n emit('update:modelValue', !props.modelValue)\n}\n\nfunction isInteractiveTarget(target: EventTarget | null): boolean {\n const el = target as HTMLElement | null\n if (!el)\n return false\n return !!el.closest('a,button,input,select,textarea,label,[role=\"button\"],[role=\"link\"]')\n}\n\nfunction onClick(e: MouseEvent): void {\n if (isInteractiveTarget(e.target))\n return\n toggle()\n}\n</script>\n<template>\n <div\n data-ds-checkbox\n class=\"inline-flex items-center gap-2 select-none focus-visible:outline-none focus-visible:rounded-[8px] focus-visible:shadow-[0_0_0_2px_var(--ring),0_0_0_4px_var(--bg)]\"\n role=\"checkbox\"\n :aria-checked=\"modelValue ? 'true' : 'false'\"\n :aria-disabled=\"disabled ? 'true' : undefined\"\n :tabindex=\"disabled ? -1 : 0\"\n :class=\"disabled ? 'cursor-not-allowed opacity-70' : 'cursor-pointer'\"\n @click=\"onClick\"\n @keydown.space.prevent=\"toggle\"\n @keydown.enter.prevent=\"toggle\"\n >\n <input\n :id=\"id\"\n ref=\"nativeInput\"\n type=\"checkbox\"\n :checked=\"modelValue\"\n :disabled=\"disabled\"\n :name=\"name\"\n :value=\"value\"\n :required=\"required\"\n :form=\"form\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n :style=\"hiddenInputStyle\"\n >\n <span\n data-ds-checkbox-indicator\n aria-hidden=\"true\"\n class=\"h-4 w-4 rounded border flex items-center justify-center transition-colors duration-150\"\n :class=\"modelValue\n ? 'border-[var(--primary)] bg-[var(--primary)]'\n : 'border-[var(--brd)] bg-[var(--bg)]'\"\n >\n <IconCheck\n class=\"ds-checkbox-icon h-3.5 w-3.5 transition-transform transition-opacity duration-150\"\n :class=\"modelValue\n ? 'opacity-100 scale-100 text-[var(--primary-fg)]'\n : 'opacity-0 scale-75 text-transparent'\"\n />\n </span>\n <span class=\"text-sm text-[var(--muted-fg)]\">\n <slot />\n </span>\n </div>\n</template>\n","<script setup lang=\"ts\">\n/**\n * GrCheckbox — DS-примитив чекбокса с нативным скрытым `<input type=\"checkbox\">`\n * для интеграции с HTML-формами (`FormData`, `required`, `form`).\n *\n * Клавиатура: `Space`/`Enter` переключают значение, фокус — на корневом элементе.\n * A11y: `role=\"checkbox\"` + `aria-checked`/`aria-disabled`.\n */\nimport { ref, watch } from 'vue'\nimport IconCheck from '~icons/lucide/check'\n\nexport interface GrCheckboxProps {\n modelValue?: boolean\n disabled?: boolean\n name?: string\n value?: string\n required?: boolean\n form?: string\n /** Пробрасывается на скрытый нативный `<input>`, чтобы работал `<label for=\"...\">`. */\n id?: string\n}\n\nconst hiddenInputStyle = {\n position: 'absolute',\n opacity: '0',\n width: '0',\n height: '0',\n pointerEvents: 'none',\n} as const\n\nconst props = withDefaults(defineProps<GrCheckboxProps>(), {\n modelValue: false,\n disabled: false,\n name: undefined,\n value: 'on',\n required: false,\n form: undefined,\n id: undefined,\n})\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: boolean): void\n}>()\n\n// Держим `.checked` на нативном input синхронно с пропом — `:checked`-биндинг\n// на скрытом элементе иногда отстаёт при программных обновлениях.\nconst nativeInput = ref<HTMLInputElement | null>(null)\nwatch(\n () => props.modelValue,\n (value) => {\n if (nativeInput.value && nativeInput.value.checked !== value)\n nativeInput.value.checked = value\n },\n)\n\nfunction toggle(): void {\n if (props.disabled)\n return\n emit('update:modelValue', !props.modelValue)\n}\n\nfunction isInteractiveTarget(target: EventTarget | null): boolean {\n const el = target as HTMLElement | null\n if (!el)\n return false\n return !!el.closest('a,button,input,select,textarea,label,[role=\"button\"],[role=\"link\"]')\n}\n\nfunction onClick(e: MouseEvent): void {\n if (isInteractiveTarget(e.target))\n return\n toggle()\n}\n</script>\n<template>\n <div\n data-ds-checkbox\n class=\"inline-flex items-center gap-2 select-none focus-visible:outline-none focus-visible:rounded-[8px] focus-visible:shadow-[0_0_0_2px_var(--ring),0_0_0_4px_var(--bg)]\"\n role=\"checkbox\"\n :aria-checked=\"modelValue ? 'true' : 'false'\"\n :aria-disabled=\"disabled ? 'true' : undefined\"\n :tabindex=\"disabled ? -1 : 0\"\n :class=\"disabled ? 'cursor-not-allowed opacity-70' : 'cursor-pointer'\"\n @click=\"onClick\"\n @keydown.space.prevent=\"toggle\"\n @keydown.enter.prevent=\"toggle\"\n >\n <input\n :id=\"id\"\n ref=\"nativeInput\"\n type=\"checkbox\"\n :checked=\"modelValue\"\n :disabled=\"disabled\"\n :name=\"name\"\n :value=\"value\"\n :required=\"required\"\n :form=\"form\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n :style=\"hiddenInputStyle\"\n >\n <span\n data-ds-checkbox-indicator\n aria-hidden=\"true\"\n class=\"h-4 w-4 rounded border flex items-center justify-center transition-colors duration-150\"\n :class=\"modelValue\n ? 'border-[var(--primary)] bg-[var(--primary)]'\n : 'border-[var(--brd)] bg-[var(--bg)]'\"\n >\n <IconCheck\n class=\"ds-checkbox-icon h-3.5 w-3.5 transition-transform transition-opacity duration-150\"\n :class=\"modelValue\n ? 'opacity-100 scale-100 text-[var(--primary-fg)]'\n : 'opacity-0 scale-75 text-transparent'\"\n />\n </span>\n <span class=\"text-sm text-[var(--muted-fg)]\">\n <slot />\n </span>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsBA,MAAM,mBAAmB;GACvB,UAAU;GACV,SAAS;GACT,OAAO;GACP,QAAQ;GACR,eAAe;GAChB;EAED,MAAM,QAAQ;EAUd,MAAM,OAAO;EAMb,MAAM,cAAc,IAA6B,KAAI;AACrD,cACQ,MAAM,aACX,UAAU;AACT,OAAI,YAAY,SAAS,YAAY,MAAM,YAAY,MACrD,aAAY,MAAM,UAAU;IAElC;EAEA,SAAS,SAAe;AACtB,OAAI,MAAM,SACR;AACF,QAAK,qBAAqB,CAAC,MAAM,WAAU;;EAG7C,SAAS,oBAAoB,QAAqC;GAChE,MAAM,KAAK;AACX,OAAI,CAAC,GACH,QAAO;AACT,UAAO,CAAC,CAAC,GAAG,QAAQ,yEAAoE;;EAG1F,SAAS,QAAQ,GAAqB;AACpC,OAAI,oBAAoB,EAAE,OAAO,CAC/B;AACF,WAAO;;;uBAIP,mBA4CM,OAAA;IA3CJ,oBAAA;IACA,OAAK,eAAA,CAAC,sKAKE,QAAA,WAAQ,kCAAA,iBAAA,CAAA;IAJhB,MAAK;IACJ,gBAAc,QAAA,aAAU,SAAA;IACxB,iBAAe,QAAA,WAAQ,SAAY,KAAA;IACnC,UAAU,QAAA,WAAQ,KAAA;IAEX;IACP,WAAO,CAAA,SAAA,cAAgB,QAAM,CAAA,UAAA,CAAA,EAAA,CAAA,QAAA,CAAA,EAAA,SAAA,cACN,QAAM,CAAA,UAAA,CAAA,EAAA,CAAA,QAAA,CAAA,CAAA;;IAE9B,mBAaC,SAAA;KAZE,IAAI,QAAA;cACD;KAAJ,KAAI;KACJ,MAAK;KACJ,SAAS,QAAA;KACT,UAAU,QAAA;KACV,MAAM,QAAA;KACN,OAAO,QAAA;KACP,UAAU,QAAA;KACV,MAAM,QAAA;KACP,UAAS;KACT,eAAY;KACX,OAAO;;IAEV,mBAcO,QAAA;KAbL,8BAAA;KACA,eAAY;KACZ,OAAK,eAAA,CAAC,0FACE,QAAA,aAAA,gDAAA,qCAAA,CAAA;QAIR,YAKE,MAAA,cAAA,EAAA,EAJA,OAAK,eAAA,CAAC,qFACE,QAAA,aAAA,mDAAA,sCAAA,CAAA,EAAA,EAAA,MAAA,GAAA,CAAA,QAAA,CAAA,CAAA,EAAA,EAAA;IAKZ,mBAEO,QAFP,YAEO,CADL,WAAQ,KAAA,QAAA,UAAA,CAAA,CAAA"}
|