@feugene/granularity 0.4.0 → 0.4.2
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/dist/chunks/_plugin-vue_export-helper-BG_EqiDU.js +8 -0
- package/dist/chunks/adapter-K6zZTzBi.js +4 -0
- package/dist/chunks/adapter-K6zZTzBi.js.map +1 -0
- package/dist/chunks/arrow-up-DNXrMoAI.js +23 -0
- package/dist/chunks/arrow-up-DNXrMoAI.js.map +1 -0
- package/dist/chunks/classTokens-BPeBXNzu.js +6 -0
- package/dist/chunks/classTokens-BPeBXNzu.js.map +1 -0
- package/dist/chunks/config-1I95Zy4V.js +14 -0
- package/dist/chunks/config-1I95Zy4V.js.map +1 -0
- package/dist/chunks/config-2wgwWaAB.js +8 -0
- package/dist/chunks/config-2wgwWaAB.js.map +1 -0
- package/dist/chunks/config-BA0BWYzs.js +8 -0
- package/dist/chunks/config-BA0BWYzs.js.map +1 -0
- package/dist/chunks/config-BCPyma1I.js +8 -0
- package/dist/chunks/config-BCPyma1I.js.map +1 -0
- package/dist/chunks/config-BDlh6iNz.js +24 -0
- package/dist/chunks/config-BDlh6iNz.js.map +1 -0
- package/dist/chunks/config-BKRmlivc.js +8 -0
- package/dist/chunks/config-BKRmlivc.js.map +1 -0
- package/dist/chunks/config-BN-B2K4r.js +17 -0
- package/dist/chunks/config-BN-B2K4r.js.map +1 -0
- package/dist/chunks/config-BNOf_qjD.js +40 -0
- package/dist/chunks/config-BNOf_qjD.js.map +1 -0
- package/dist/chunks/config-BaMO9dQh.js +20 -0
- package/dist/chunks/config-BaMO9dQh.js.map +1 -0
- package/dist/chunks/config-Bv2G0OU6.js +8 -0
- package/dist/chunks/config-Bv2G0OU6.js.map +1 -0
- package/dist/chunks/config-BvuQUBtZ.js +21 -0
- package/dist/chunks/config-BvuQUBtZ.js.map +1 -0
- package/dist/chunks/config-BzZGpWsj.js +9 -0
- package/dist/chunks/config-BzZGpWsj.js.map +1 -0
- package/dist/chunks/config-C0j836dC.js +8 -0
- package/dist/chunks/config-C0j836dC.js.map +1 -0
- package/dist/chunks/config-C2iI7_QX.js +9 -0
- package/dist/chunks/config-C2iI7_QX.js.map +1 -0
- package/dist/chunks/config-C4AlNm912.js +13 -0
- package/dist/chunks/config-C4AlNm912.js.map +1 -0
- package/dist/chunks/config-C5SJXHQ4.js +9 -0
- package/dist/chunks/config-C5SJXHQ4.js.map +1 -0
- package/dist/chunks/config-C6SBJxcH.js +8 -0
- package/dist/chunks/config-C6SBJxcH.js.map +1 -0
- package/dist/chunks/config-CByfsV-z2.js +9 -0
- package/dist/chunks/config-CByfsV-z2.js.map +1 -0
- package/dist/chunks/config-CM7nbATU2.js +78 -0
- package/dist/chunks/config-CM7nbATU2.js.map +1 -0
- package/dist/chunks/config-CMZE2fu0.js +9 -0
- package/dist/chunks/config-CMZE2fu0.js.map +1 -0
- package/dist/chunks/config-CU_CBd0k.js +22 -0
- package/dist/chunks/config-CU_CBd0k.js.map +1 -0
- package/dist/chunks/config-CUgvsjZx.js +171 -0
- package/dist/chunks/config-CUgvsjZx.js.map +1 -0
- package/dist/chunks/config-CWvHiaqr2.js +23 -0
- package/dist/chunks/config-CWvHiaqr2.js.map +1 -0
- package/dist/chunks/config-Cf0J6wCX.js +58 -0
- package/dist/chunks/config-Cf0J6wCX.js.map +1 -0
- package/dist/chunks/config-CgAY2WP9.js +9 -0
- package/dist/chunks/config-CgAY2WP9.js.map +1 -0
- package/dist/chunks/config-Cgc-D1K4.js +9 -0
- package/dist/chunks/config-Cgc-D1K4.js.map +1 -0
- package/dist/chunks/config-D19pyP4D.js +35 -0
- package/dist/chunks/config-D19pyP4D.js.map +1 -0
- package/dist/chunks/config-DCQO6H6h.js +11 -0
- package/dist/chunks/config-DCQO6H6h.js.map +1 -0
- package/dist/chunks/config-DEv4m-ZP.js +58 -0
- package/dist/chunks/config-DEv4m-ZP.js.map +1 -0
- package/dist/chunks/config-DFRYOcrP.js +9 -0
- package/dist/chunks/config-DFRYOcrP.js.map +1 -0
- package/dist/chunks/config-DTpwUHgF.js +9 -0
- package/dist/chunks/config-DTpwUHgF.js.map +1 -0
- package/dist/chunks/config-DW_RqmUp.js +8 -0
- package/dist/chunks/config-DW_RqmUp.js.map +1 -0
- package/dist/chunks/config-Da90XGsi.js +38 -0
- package/dist/chunks/config-Da90XGsi.js.map +1 -0
- package/dist/chunks/config-DgRJlF00.js +53 -0
- package/dist/chunks/config-DgRJlF00.js.map +1 -0
- package/dist/chunks/config-Dkq0HeLe.js +9 -0
- package/dist/chunks/config-Dkq0HeLe.js.map +1 -0
- package/dist/chunks/config-DmI1IQvI2.js +8 -0
- package/dist/chunks/config-DmI1IQvI2.js.map +1 -0
- package/dist/chunks/config-Dnu4VuO0.js +8 -0
- package/dist/chunks/config-Dnu4VuO0.js.map +1 -0
- package/dist/chunks/config-DxqpV-KM.js +45 -0
- package/dist/chunks/config-DxqpV-KM.js.map +1 -0
- package/dist/chunks/config-TyzU6gLf.js +8 -0
- package/dist/chunks/config-TyzU6gLf.js.map +1 -0
- package/dist/chunks/config-XwI6t8cn.js +39 -0
- package/dist/chunks/config-XwI6t8cn.js.map +1 -0
- package/dist/chunks/config-bpQYM5O-.js +44 -0
- package/dist/chunks/config-bpQYM5O-.js.map +1 -0
- package/dist/chunks/config-etXh7Bsr2.js +9 -0
- package/dist/chunks/config-etXh7Bsr2.js.map +1 -0
- package/dist/chunks/config-fCcRwjIB.js +13 -0
- package/dist/chunks/config-fCcRwjIB.js.map +1 -0
- package/dist/chunks/config-nfOMJXVs.js +9 -0
- package/dist/chunks/config-nfOMJXVs.js.map +1 -0
- package/dist/chunks/config-qJXIIY1E.js +8 -0
- package/dist/chunks/config-qJXIIY1E.js.map +1 -0
- package/dist/chunks/config-r6hzn2Bn2.js +9 -0
- package/dist/chunks/config-r6hzn2Bn2.js.map +1 -0
- package/dist/chunks/config-rQlbnEKn.js +8 -0
- package/dist/chunks/config-rQlbnEKn.js.map +1 -0
- package/dist/chunks/dialogShared-BtXUk6Zc.js +32 -0
- package/dist/chunks/dialogShared-BtXUk6Zc.js.map +1 -0
- package/dist/chunks/en-BeJa78lP.js +48 -0
- package/dist/chunks/en-BeJa78lP.js.map +1 -0
- package/dist/chunks/es-BPqm7rLm.js +20 -0
- package/dist/chunks/es-BPqm7rLm.js.map +1 -0
- package/dist/chunks/es-axYOwwWD.js +48 -0
- package/dist/chunks/es-axYOwwWD.js.map +1 -0
- package/dist/chunks/fileValidation-CwJA8Vmn.js +219 -0
- package/dist/chunks/fileValidation-CwJA8Vmn.js.map +1 -0
- package/dist/chunks/{grBadgeStyles-Bu4H8bFc.js → grBadgeStyles-pqqbVgLk.js} +18 -13
- package/dist/chunks/grBadgeStyles-pqqbVgLk.js.map +1 -0
- package/dist/chunks/{grButtonStyles-C5k0bN2e.js → grButtonStyles-BxZW2x0-.js} +60 -52
- package/dist/chunks/grButtonStyles-BxZW2x0-.js.map +1 -0
- package/dist/chunks/{grDropdownStyles-149X1NeB.js → grDropdownStyles-DMp7RrI9.js} +10 -9
- package/dist/chunks/grDropdownStyles-DMp7RrI9.js.map +1 -0
- package/dist/chunks/grLoadingStyles-CrxZHFL0.js +17 -0
- package/dist/chunks/grLoadingStyles-CrxZHFL0.js.map +1 -0
- package/dist/chunks/{grModalStyles-Dmd4havY.js → grModalStyles-Dv2NXBKi.js} +20 -11
- package/dist/chunks/grModalStyles-Dv2NXBKi.js.map +1 -0
- package/dist/chunks/grSelectStyles-B7doeAQp.js +50 -0
- package/dist/chunks/grSelectStyles-B7doeAQp.js.map +1 -0
- package/dist/chunks/granularityI18n-GCqUz_lo.js +26 -0
- package/dist/chunks/granularityI18n-GCqUz_lo.js.map +1 -0
- package/dist/chunks/info-C0bHmdZq.js +26 -0
- package/dist/chunks/info-C0bHmdZq.js.map +1 -0
- package/dist/chunks/loader-circle-B2rWDk5u.js +23 -0
- package/dist/chunks/loader-circle-B2rWDk5u.js.map +1 -0
- package/dist/chunks/ru-Dqh-2C00.js +48 -0
- package/dist/chunks/ru-Dqh-2C00.js.map +1 -0
- package/dist/chunks/safelist-BF822K15.js +13 -0
- package/dist/chunks/safelist-BF822K15.js.map +1 -0
- package/dist/chunks/safelist-BY7z8fOl.js +24 -0
- package/dist/chunks/safelist-BY7z8fOl.js.map +1 -0
- package/dist/chunks/{shared-BqUqjuxn.js → shared-Cu5QkNmt.js} +149 -111
- package/dist/chunks/shared-Cu5QkNmt.js.map +1 -0
- package/dist/chunks/transition-mJ3PZCHH.js +1692 -0
- package/dist/chunks/transition-mJ3PZCHH.js.map +1 -0
- package/dist/chunks/x-Pa6C2hwi.js +23 -0
- package/dist/chunks/x-Pa6C2hwi.js.map +1 -0
- package/dist/chunks/x-circle-DQSlBLmX.js +67 -0
- package/dist/chunks/x-circle-DQSlBLmX.js.map +1 -0
- package/dist/components/GrAlert/chunks/GrAlert-BjerGcU8.js +146 -0
- package/dist/components/GrAlert/chunks/GrAlert-BjerGcU8.js.map +1 -0
- package/dist/components/GrAlert/index.js +3 -3
- package/dist/components/GrAvatar/chunks/GrAvatar-BjnPKNAL.js +41 -0
- package/dist/components/GrAvatar/chunks/GrAvatar-BjnPKNAL.js.map +1 -0
- package/dist/components/GrAvatar/index.js +3 -3
- package/dist/components/GrBadge/chunks/GrBadge-wuIb4_2K.js +32 -0
- package/dist/components/GrBadge/chunks/GrBadge-wuIb4_2K.js.map +1 -0
- package/dist/components/GrBadge/index.js +3 -3
- package/dist/components/GrBadgeWrap/chunks/GrBadgeWrap-CxtamOZ-.js +33 -0
- package/dist/components/GrBadgeWrap/chunks/GrBadgeWrap-CxtamOZ-.js.map +1 -0
- package/dist/components/GrBadgeWrap/index.js +3 -3
- package/dist/components/GrBottomNav/chunks/GrBottomNav-CsmQ7mTJ.js +31 -0
- package/dist/components/GrBottomNav/chunks/GrBottomNav-CsmQ7mTJ.js.map +1 -0
- package/dist/components/GrBottomNav/index.js +3 -3
- package/dist/components/GrButton/chunks/GrButton-BmGdp8-4.js +83 -0
- package/dist/components/GrButton/chunks/GrButton-BmGdp8-4.js.map +1 -0
- package/dist/components/GrButton/index.js +5 -5
- package/dist/components/GrButtonGroup/chunks/GrButtonGroup-CBj4tpms.js +21 -0
- package/dist/components/GrButtonGroup/chunks/GrButtonGroup-CBj4tpms.js.map +1 -0
- package/dist/components/GrButtonGroup/index.js +3 -3
- package/dist/components/GrCard/chunks/GrCard-xtDcXBr7.js +11 -0
- package/dist/components/GrCard/chunks/GrCard-xtDcXBr7.js.map +1 -0
- package/dist/components/GrCard/index.js +3 -3
- package/dist/components/GrCheckbox/chunks/GrCheckbox-Bt3d7ckE.js +134 -0
- package/dist/components/GrCheckbox/chunks/GrCheckbox-Bt3d7ckE.js.map +1 -0
- package/dist/components/GrCheckbox/index.js +3 -3
- package/dist/components/GrCollapse/chunks/GrCollapse-HU20VTVn.js +205 -0
- package/dist/components/GrCollapse/chunks/GrCollapse-HU20VTVn.js.map +1 -0
- package/dist/components/GrCollapse/index.js +3 -3
- package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-DjGOX9Hd.js +131 -0
- package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-DjGOX9Hd.js.map +1 -0
- package/dist/components/GrConfirmDialog/index.js +3 -3
- package/dist/components/GrDataTable/chunks/GrDataTable-QDOJWmdY.js +179 -0
- package/dist/components/GrDataTable/chunks/GrDataTable-QDOJWmdY.js.map +1 -0
- package/dist/components/GrDataTable/index.js +3 -3
- package/dist/components/GrDialog/chunks/GrDialog-gObmaVEl.js +221 -0
- package/dist/components/GrDialog/chunks/GrDialog-gObmaVEl.js.map +1 -0
- package/dist/components/GrDialog/index.js +4 -4
- package/dist/components/GrDrawer/chunks/GrDrawer-BJL_gTxI.js +156 -0
- package/dist/components/GrDrawer/chunks/GrDrawer-BJL_gTxI.js.map +1 -0
- package/dist/components/GrDrawer/index.js +3 -3
- package/dist/components/GrDropdown/chunks/GrDropdown-BkACCXdp.js +151 -0
- package/dist/components/GrDropdown/chunks/GrDropdown-BkACCXdp.js.map +1 -0
- package/dist/components/GrDropdown/index.js +3 -3
- package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-BEenXrJw.js +309 -0
- package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-BEenXrJw.js.map +1 -0
- package/dist/components/GrDropdownMenu/index.js +3 -3
- package/dist/components/GrEmptyState/chunks/GrEmptyState-BLbMJFW-.js +62 -0
- package/dist/components/GrEmptyState/chunks/GrEmptyState-BLbMJFW-.js.map +1 -0
- package/dist/components/GrEmptyState/index.js +3 -3
- package/dist/components/GrFileUpload/chunks/GrFileUpload-u01j9S0t.js +368 -0
- package/dist/components/GrFileUpload/chunks/GrFileUpload-u01j9S0t.js.map +1 -0
- package/dist/components/GrFileUpload/index.js +4 -4
- package/dist/components/GrFormField/chunks/GrFormField-C6PfAs4u.js +35 -0
- package/dist/components/GrFormField/chunks/GrFormField-C6PfAs4u.js.map +1 -0
- package/dist/components/GrFormField/index.js +3 -3
- package/dist/components/GrFormFile/chunks/GrFormFile-DdM8Bc2B.js +313 -0
- package/dist/components/GrFormFile/chunks/GrFormFile-DdM8Bc2B.js.map +1 -0
- package/dist/components/GrFormFile/index.js +3 -3
- package/dist/components/GrFormSection/chunks/GrFormSection-5djEaQZQ.js +35 -0
- package/dist/components/GrFormSection/chunks/GrFormSection-5djEaQZQ.js.map +1 -0
- package/dist/components/GrFormSection/index.js +3 -3
- package/dist/components/GrIcon/chunks/GrIcon-BV7RBU_0.js +32 -0
- package/dist/components/GrIcon/chunks/GrIcon-BV7RBU_0.js.map +1 -0
- package/dist/components/GrIcon/index.js +3 -3
- package/dist/components/GrImageViewer/chunks/GrImageViewer-CjSnohW7.js +397 -0
- package/dist/components/GrImageViewer/chunks/GrImageViewer-CjSnohW7.js.map +1 -0
- package/dist/components/GrImageViewer/index.js +3 -3
- package/dist/components/GrInput/chunks/GrInput-ghxaTf6d.js +211 -0
- package/dist/components/GrInput/chunks/GrInput-ghxaTf6d.js.map +1 -0
- package/dist/components/GrInput/index.js +3 -3
- package/dist/components/GrInputTag/chunks/GrInputTag-B0x4U0Yk.js +257 -0
- package/dist/components/GrInputTag/chunks/GrInputTag-B0x4U0Yk.js.map +1 -0
- package/dist/components/GrInputTag/index.js +3 -3
- package/dist/components/GrLink/chunks/GrLink-C7-Y1u88.js +80 -0
- package/dist/components/GrLink/chunks/GrLink-C7-Y1u88.js.map +1 -0
- package/dist/components/GrLink/index.js +3 -3
- package/dist/components/GrList/chunks/GrList--Ib4zLNw.js +77 -0
- package/dist/components/GrList/chunks/GrList--Ib4zLNw.js.map +1 -0
- package/dist/components/GrList/index.js +3 -3
- package/dist/components/GrLoading/chunks/GrLoading-C3QZKwE-.js +69 -0
- package/dist/components/GrLoading/chunks/GrLoading-C3QZKwE-.js.map +1 -0
- package/dist/components/GrLoading/index.js +3 -3
- package/dist/components/GrModal/chunks/GrModal-gvfvlp7k.js +168 -0
- package/dist/components/GrModal/chunks/GrModal-gvfvlp7k.js.map +1 -0
- package/dist/components/GrModal/index.js +4 -4
- package/dist/components/GrNavbar/chunks/GrNavbar-nIyuiVj1.js +75 -0
- package/dist/components/GrNavbar/chunks/GrNavbar-nIyuiVj1.js.map +1 -0
- package/dist/components/GrNavbar/index.js +3 -3
- package/dist/components/GrNumberInput/chunks/GrNumberInput-B0mPLjdv.js +397 -0
- package/dist/components/GrNumberInput/chunks/GrNumberInput-B0mPLjdv.js.map +1 -0
- package/dist/components/GrNumberInput/index.js +3 -3
- package/dist/components/GrPagination/chunks/GrPagination-BSTO6flk.js +114 -0
- package/dist/components/GrPagination/chunks/GrPagination-BSTO6flk.js.map +1 -0
- package/dist/components/GrPagination/index.js +3 -3
- package/dist/components/GrProgressBar/chunks/GrProgressBar-MvMnzsJl.js +39 -0
- package/dist/components/GrProgressBar/chunks/GrProgressBar-MvMnzsJl.js.map +1 -0
- package/dist/components/GrProgressBar/index.js +3 -3
- package/dist/components/GrPromptDialog/chunks/GrPromptDialog-DKhbN6ji.js +190 -0
- package/dist/components/GrPromptDialog/chunks/GrPromptDialog-DKhbN6ji.js.map +1 -0
- package/dist/components/GrPromptDialog/index.js +3 -3
- package/dist/components/GrRadio/chunks/GrRadio-BxBs3WHq.js +184 -0
- package/dist/components/GrRadio/chunks/GrRadio-BxBs3WHq.js.map +1 -0
- package/dist/components/GrRadio/index.js +3 -3
- package/dist/components/GrRadioGroup/chunks/GrRadioGroup-CEAfJQ6A.js +80 -0
- package/dist/components/GrRadioGroup/chunks/GrRadioGroup-CEAfJQ6A.js.map +1 -0
- package/dist/components/GrRadioGroup/index.js +3 -3
- package/dist/components/GrSegmented/chunks/GrSegmented-Bwn2qOY4.js +323 -0
- package/dist/components/GrSegmented/chunks/GrSegmented-Bwn2qOY4.js.map +1 -0
- package/dist/components/GrSegmented/index.js +3 -3
- package/dist/components/GrSelect/chunks/GrSelect-9wRWAu2R.js +443 -0
- package/dist/components/GrSelect/chunks/GrSelect-9wRWAu2R.js.map +1 -0
- package/dist/components/GrSelect/index.js +3 -3
- package/dist/components/GrSidebar/chunks/GrSidebar-CSZ3RpFB.js +44 -0
- package/dist/components/GrSidebar/chunks/GrSidebar-CSZ3RpFB.js.map +1 -0
- package/dist/components/GrSidebar/index.js +3 -3
- package/dist/components/GrSkeleton/chunks/GrSkeleton-DKXkqWDa.js +33 -0
- package/dist/components/GrSkeleton/chunks/GrSkeleton-DKXkqWDa.js.map +1 -0
- package/dist/components/GrSkeleton/index.js +3 -3
- package/dist/components/GrSwitch/chunks/GrSwitch-CdBxwV3k.js +79 -0
- package/dist/components/GrSwitch/chunks/GrSwitch-CdBxwV3k.js.map +1 -0
- package/dist/components/GrSwitch/index.js +3 -3
- package/dist/components/GrTable/chunks/GrTable-CyQ9uw8A.js +57 -0
- package/dist/components/GrTable/chunks/GrTable-CyQ9uw8A.js.map +1 -0
- package/dist/components/GrTable/index.js +3 -3
- package/dist/components/GrTabs/chunks/GrTabs-BpF8AAUz.js +118 -0
- package/dist/components/GrTabs/chunks/GrTabs-BpF8AAUz.js.map +1 -0
- package/dist/components/GrTabs/index.js +3 -3
- package/dist/components/GrTextarea/chunks/GrTextarea-DFS9ZkrA.js +71 -0
- package/dist/components/GrTextarea/chunks/GrTextarea-DFS9ZkrA.js.map +1 -0
- package/dist/components/GrTextarea/index.js +3 -3
- package/dist/components/GrToaster/chunks/GrToaster-3Mf0Moxt.js +171 -0
- package/dist/components/GrToaster/chunks/GrToaster-3Mf0Moxt.js.map +1 -0
- package/dist/components/GrToaster/index.js +3 -3
- package/dist/components/GrTooltip/chunks/GrTooltip-BvmsukLW.js +55 -0
- package/dist/components/GrTooltip/chunks/GrTooltip-BvmsukLW.js.map +1 -0
- package/dist/components/GrTooltip/index.js +3 -3
- package/dist/components/GrTree/chunks/GrTree-C2kN-O4Q.js +734 -0
- package/dist/components/GrTree/chunks/GrTree-C2kN-O4Q.js.map +1 -0
- package/dist/components/GrTree/index.js +3 -3
- package/dist/components/GrTreeSelect/chunks/GrTreeSelect-Da-CpRqm.js +454 -0
- package/dist/components/GrTreeSelect/chunks/GrTreeSelect-Da-CpRqm.js.map +1 -0
- package/dist/components/GrTreeSelect/index.js +3 -3
- package/dist/composables/useTheme.js +39 -30
- package/dist/composables/useTheme.js.map +1 -0
- package/dist/composables/useToast.js +41 -34
- package/dist/composables/useToast.js.map +1 -0
- package/dist/directives/autofocus.js +55 -0
- package/dist/directives/autofocus.js.map +1 -0
- package/dist/directives/autosize.js +117 -0
- package/dist/directives/autosize.js.map +1 -0
- package/dist/directives/clickOutside.js +96 -0
- package/dist/directives/clickOutside.js.map +1 -0
- package/dist/directives/dropzone.js +164 -0
- package/dist/directives/dropzone.js.map +1 -0
- package/dist/directives/hotkey.js +138 -0
- package/dist/directives/hotkey.js.map +1 -0
- package/dist/directives/index.js +7 -2
- package/dist/directives/loading.js +163 -0
- package/dist/directives/loading.js.map +1 -0
- package/dist/fileValidation/index.js +2 -2
- package/dist/granular-provider-node.js +23 -14
- package/dist/granular-provider-node.js.map +1 -0
- package/dist/granular-provider.js +3 -3
- package/dist/granular-provider.js.map +1 -0
- package/dist/i18n/all.js +6 -6
- package/dist/i18n/all.js.map +1 -0
- package/dist/i18n/index.js +3 -3
- package/dist/index.js +110 -105
- package/dist/vue/index.js +64 -26
- package/dist/vue/index.js.map +1 -0
- package/package.json +25 -1
- package/dist/chunks/_plugin-vue_export-helper-CHO2XVys.js +0 -8
- package/dist/chunks/adapter-D5uYoOZj.js +0 -4
- package/dist/chunks/arrow-up-Dv3dC3hu.js +0 -23
- package/dist/chunks/classTokens-CT1tqF2j.js +0 -6
- package/dist/chunks/config-B5JCvHys.js +0 -13
- package/dist/chunks/config-BDXa5Sna2.js +0 -9
- package/dist/chunks/config-BG5_FuZ-.js +0 -34
- package/dist/chunks/config-BMYKG1oB.js +0 -10
- package/dist/chunks/config-BQREEXFD.js +0 -8
- package/dist/chunks/config-BUZtbeTr.js +0 -40
- package/dist/chunks/config-BVXycfiO.js +0 -9
- package/dist/chunks/config-BZW-RL6E.js +0 -14
- package/dist/chunks/config-BhbfV-Is.js +0 -48
- package/dist/chunks/config-BmYFupZh.js +0 -8
- package/dist/chunks/config-BsZc_QQ-2.js +0 -20
- package/dist/chunks/config-C1Sn7mn-.js +0 -27
- package/dist/chunks/config-C4_REX-3.js +0 -9
- package/dist/chunks/config-CBFllZZ4.js +0 -9
- package/dist/chunks/config-CDyD_fCt.js +0 -8
- package/dist/chunks/config-CJeG727i.js +0 -149
- package/dist/chunks/config-CLawBqde.js +0 -21
- package/dist/chunks/config-CMz46RPG.js +0 -8
- package/dist/chunks/config-CO-7HRZd2.js +0 -8
- package/dist/chunks/config-CS7E7LME.js +0 -9
- package/dist/chunks/config-CVy124Xj.js +0 -8
- package/dist/chunks/config-CcixQGaN.js +0 -47
- package/dist/chunks/config-CiVXZxyQ.js +0 -9
- package/dist/chunks/config-CoMQmunP.js +0 -8
- package/dist/chunks/config-Cq6ufYtp.js +0 -9
- package/dist/chunks/config-D8CIEWcb.js +0 -8
- package/dist/chunks/config-D8hKc39m.js +0 -18
- package/dist/chunks/config-D9MxGwCJ.js +0 -8
- package/dist/chunks/config-DBXTZE36.js +0 -15
- package/dist/chunks/config-DK9C8O7L.js +0 -9
- package/dist/chunks/config-DTegOmx2.js +0 -8
- package/dist/chunks/config-DYI8XADo.js +0 -47
- package/dist/chunks/config-DlidGf7P.js +0 -8
- package/dist/chunks/config-DtNe7EIX.js +0 -35
- package/dist/chunks/config-EdWeK_ge.js +0 -17
- package/dist/chunks/config-FGAkxHFh.js +0 -8
- package/dist/chunks/config-M76gNxd2.js +0 -37
- package/dist/chunks/config-NuqoO_Of.js +0 -33
- package/dist/chunks/config-QsovJrku2.js +0 -66
- package/dist/chunks/config-R6F6zRJk.js +0 -9
- package/dist/chunks/config-SLwkDc4Q2.js +0 -9
- package/dist/chunks/config-aJ7sb62Y.js +0 -8
- package/dist/chunks/config-b9nc87Oc.js +0 -9
- package/dist/chunks/config-dSI8RttH2.js +0 -8
- package/dist/chunks/config-im2VHeSM.js +0 -9
- package/dist/chunks/config-vKeQ035f.js +0 -9
- package/dist/chunks/config-vMcxHlWi.js +0 -14
- package/dist/chunks/dialogShared-CONROtU2.js +0 -26
- package/dist/chunks/directives-Dr5NPOT8.js +0 -530
- package/dist/chunks/en-j3simI0h.js +0 -41
- package/dist/chunks/es-CIT9s_vo.js +0 -4
- package/dist/chunks/es-CLpJj7KP.js +0 -41
- package/dist/chunks/fileValidation-LFD-vwil.js +0 -193
- package/dist/chunks/grLoadingStyles-Bjo7ylmq.js +0 -15
- package/dist/chunks/grSelectStyles-C3QKIn1J.js +0 -40
- package/dist/chunks/granularityI18n-8_v1B11L.js +0 -24
- package/dist/chunks/info-CNJnuTYC.js +0 -26
- package/dist/chunks/loader-circle-C5vCCMfB.js +0 -23
- package/dist/chunks/ru-CiOZPnBu.js +0 -41
- package/dist/chunks/safelist-Bq32hAXc.js +0 -13
- package/dist/chunks/safelist-CLcTRYB-.js +0 -22
- package/dist/chunks/transition-BJXMi52x.js +0 -1617
- package/dist/chunks/x--kxrj3ez.js +0 -23
- package/dist/chunks/x-circle-ChJ87u1v.js +0 -61
- package/dist/components/GrAlert/chunks/GrAlert-DLHkusb-.js +0 -129
- package/dist/components/GrAvatar/chunks/GrAvatar-BFYH3HJw.js +0 -32
- package/dist/components/GrBadge/chunks/GrBadge-D_AoqGrn.js +0 -27
- package/dist/components/GrBadgeWrap/chunks/GrBadgeWrap-C_N0QJfA.js +0 -26
- package/dist/components/GrBottomNav/chunks/GrBottomNav-Chpu3SVd.js +0 -21
- package/dist/components/GrButton/chunks/GrButton-BXVVt6Od.js +0 -67
- package/dist/components/GrButtonGroup/chunks/GrButtonGroup-CmnYHVH7.js +0 -16
- package/dist/components/GrCard/chunks/GrCard-DEpN6Ptf.js +0 -10
- package/dist/components/GrCheckbox/chunks/GrCheckbox-DF3vJApB.js +0 -111
- package/dist/components/GrCollapse/chunks/GrCollapse-D7QYRqNa.js +0 -150
- package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-C7Eh8-Vn.js +0 -111
- package/dist/components/GrDataTable/chunks/GrDataTable-Dxsg1NMP.js +0 -142
- package/dist/components/GrDialog/chunks/GrDialog-BSd4-uP5.js +0 -169
- package/dist/components/GrDrawer/chunks/GrDrawer-DBBSwe1s.js +0 -135
- package/dist/components/GrDropdown/chunks/GrDropdown-BELyRP4A.js +0 -110
- package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-B8fuk7iP.js +0 -233
- package/dist/components/GrEmptyState/chunks/GrEmptyState-BPGoafJI.js +0 -49
- package/dist/components/GrFileUpload/chunks/GrFileUpload-BPzx3LEM.js +0 -294
- package/dist/components/GrFormField/chunks/GrFormField-Cn8g9eFP.js +0 -28
- package/dist/components/GrFormFile/chunks/GrFormFile-DfinD5Iv.js +0 -248
- package/dist/components/GrFormSection/chunks/GrFormSection-dKpQw-vh.js +0 -27
- package/dist/components/GrIcon/chunks/GrIcon-CXIHuG7L.js +0 -25
- package/dist/components/GrImageViewer/chunks/GrImageViewer-CQSNx-D7.js +0 -322
- package/dist/components/GrInput/chunks/GrInput-CLKX1inm.js +0 -158
- package/dist/components/GrInputTag/chunks/GrInputTag-BAtLody2.js +0 -214
- package/dist/components/GrLink/chunks/GrLink-BpXnly-Y.js +0 -59
- package/dist/components/GrList/chunks/GrList-BrFc7VdS.js +0 -55
- package/dist/components/GrLoading/chunks/GrLoading-dFuoryMY.js +0 -53
- package/dist/components/GrModal/chunks/GrModal-uaWXH08K.js +0 -136
- package/dist/components/GrNavbar/chunks/GrNavbar-KzLHgdjX.js +0 -62
- package/dist/components/GrNumberInput/chunks/GrNumberInput-rENn1802.js +0 -315
- package/dist/components/GrPagination/chunks/GrPagination-DP0x3rx6.js +0 -93
- package/dist/components/GrProgressBar/chunks/GrProgressBar-DpW93sOi.js +0 -29
- package/dist/components/GrPromptDialog/chunks/GrPromptDialog-ASfBwyzQ.js +0 -158
- package/dist/components/GrRadio/chunks/GrRadio-8BOo97XV.js +0 -147
- package/dist/components/GrRadioGroup/chunks/GrRadioGroup-BymbUmqI.js +0 -66
- package/dist/components/GrSegmented/chunks/GrSegmented-CK5C_lN7.js +0 -250
- package/dist/components/GrSelect/chunks/GrSelect-BMfc1-vs.js +0 -314
- package/dist/components/GrSidebar/chunks/GrSidebar-C4SXXhfO.js +0 -29
- package/dist/components/GrSkeleton/chunks/GrSkeleton-QlieOdpY.js +0 -25
- package/dist/components/GrSwitch/chunks/GrSwitch-Cefiutzu.js +0 -64
- package/dist/components/GrTable/chunks/GrTable-k_FUiJQk.js +0 -44
- package/dist/components/GrTabs/chunks/GrTabs-B46P-lUc.js +0 -98
- package/dist/components/GrTextarea/chunks/GrTextarea-BX7L1MJk.js +0 -57
- package/dist/components/GrToaster/chunks/GrToaster-C4l_BjOh.js +0 -139
- package/dist/components/GrTooltip/chunks/GrTooltip-BqRAzuLT.js +0 -37
- package/dist/components/GrTree/chunks/GrTree-C2CXR_vW.js +0 -614
- package/dist/components/GrTreeSelect/chunks/GrTreeSelect-DAAay-QB.js +0 -353
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GrDropdown-BkACCXdp.js","names":[],"sources":["../../../../src/components/GrDropdown/GrDropdown.vue","../../../../src/components/GrDropdown/GrDropdown.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, onUnmounted, ref, watch } from 'vue'\n\nimport { vClickOutside } from '../../directives'\nimport {\n grDropdownAlignmentClass,\n grDropdownContentClass,\n grDropdownWidthClass,\n type GrDropdownAlign,\n type GrDropdownWidth,\n} from './grDropdownStyles'\n\nexport interface GrDropdownProps {\n /** Выравнивание панели относительно триггера. */\n align?: GrDropdownAlign\n /** Ширина панели (tailwind-токены `w-*` или `auto`). */\n width?: GrDropdownWidth\n /** Закрывать панель по клику внутри content. */\n closeOnContentClick?: boolean\n /** Дополнительные классы контейнера content. */\n contentClass?: string\n /** Куда телепортировать панель (`body` по умолчанию). */\n teleportTo?: string | HTMLElement\n}\n\nconst props = withDefaults(defineProps<GrDropdownProps>(), {\n align: 'right',\n width: '48',\n closeOnContentClick: true,\n contentClass: '',\n teleportTo: 'body',\n})\n\nconst open = ref(false)\nconst rootEl = ref<HTMLElement | null>(null)\nconst panelEl = ref<HTMLElement | null>(null)\nconst clickOutsideExclude = [() => panelEl.value]\nconst panelStyle = ref<Record<string, string>>({\n left: '0px',\n top: '0px',\n zIndex: '2147483647',\n})\nlet syncFrame = 0\n\nfunction cancelPanelPositionSync(): void {\n if (typeof window === 'undefined') return\n if (!syncFrame) return\n\n window.cancelAnimationFrame(syncFrame)\n syncFrame = 0\n}\n\nfunction syncPanelPosition(): void {\n if (typeof window === 'undefined') return\n\n const root = rootEl.value\n if (!root) return\n\n const rootRect = root.getBoundingClientRect()\n const left = (() => {\n if (props.align === 'right') return rootRect.right\n if (props.align === 'center') return rootRect.left + (rootRect.width / 2)\n return rootRect.left\n })()\n\n panelStyle.value = {\n left: `${left}px`,\n top: `${rootRect.bottom + 8}px`,\n zIndex: '2147483647',\n }\n}\n\nfunction schedulePanelPositionSync(): void {\n if (typeof window === 'undefined') return\n if (syncFrame) return\n\n syncFrame = window.requestAnimationFrame(() => {\n syncFrame = 0\n\n if (open.value) {\n syncPanelPosition()\n }\n })\n}\n\nfunction bindPanelPositionListeners(): void {\n if (typeof window === 'undefined') return\n window.addEventListener('resize', schedulePanelPositionSync)\n window.addEventListener('scroll', schedulePanelPositionSync, true)\n}\n\nfunction unbindPanelPositionListeners(): void {\n if (typeof window === 'undefined') return\n window.removeEventListener('resize', schedulePanelPositionSync)\n window.removeEventListener('scroll', schedulePanelPositionSync, true)\n}\n\nfunction toggle(): void {\n open.value = !open.value\n}\n\nfunction close(): void {\n open.value = false\n}\n\nfunction closeOnEscape(e: KeyboardEvent): void {\n if (e.key === 'Escape') close()\n}\n\nwatch(\n open,\n (isOpen) => {\n if (typeof document === 'undefined') return\n\n document.removeEventListener('keydown', closeOnEscape)\n unbindPanelPositionListeners()\n cancelPanelPositionSync()\n if (isOpen) document.addEventListener('keydown', closeOnEscape)\n\n if (!isOpen) return\n\n bindPanelPositionListeners()\n syncPanelPosition()\n },\n { immediate: true },\n)\n\nwatch(\n () => props.align,\n () => {\n if (open.value) {\n schedulePanelPositionSync()\n }\n },\n)\n\nonUnmounted(() => {\n if (typeof document === 'undefined') return\n document.removeEventListener('keydown', closeOnEscape)\n unbindPanelPositionListeners()\n cancelPanelPositionSync()\n})\n\nconst widthClass = computed(() => grDropdownWidthClass(props.width))\n\nconst contentClasses = computed(() => grDropdownContentClass(props.contentClass))\n\nconst panelClasses = computed(() => {\n return ['fixed z-50', widthClass.value, grDropdownAlignmentClass(props.align)].filter(Boolean)\n})\n\nfunction onContentClick(): void {\n if (props.closeOnContentClick) {\n close()\n }\n}\n</script>\n\n<template>\n <div data-ds-dropdown>\n <div\n ref=\"rootEl\"\n v-click-outside=\"{ handler: close, enabled: open, exclude: clickOutsideExclude }\"\n data-ds-dropdown-trigger\n class=\"inline-block max-w-full\"\n @click=\"toggle\"\n >\n <slot name=\"trigger\" :open=\"open\" :toggle=\"toggle\" :close=\"close\" />\n </div>\n\n <teleport :to=\"teleportTo\">\n <transition\n enter-active-class=\"transition ease-out duration-150\"\n enter-from-class=\"transform opacity-0 scale-95\"\n enter-to-class=\"transform opacity-100 scale-100\"\n leave-active-class=\"transition ease-in duration-100\"\n leave-from-class=\"transform opacity-100 scale-100\"\n leave-to-class=\"transform opacity-0 scale-95\"\n >\n <div\n v-show=\"open\"\n ref=\"panelEl\"\n data-ds-dropdown-panel\n :class=\"panelClasses\"\n :style=\"panelStyle\"\n @click=\"onContentClick\"\n >\n <div data-ds-dropdown-content :class=\"contentClasses\">\n <slot name=\"content\" :close=\"close\" />\n </div>\n </div>\n </transition>\n </teleport>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed, onUnmounted, ref, watch } from 'vue'\n\nimport { vClickOutside } from '../../directives'\nimport {\n grDropdownAlignmentClass,\n grDropdownContentClass,\n grDropdownWidthClass,\n type GrDropdownAlign,\n type GrDropdownWidth,\n} from './grDropdownStyles'\n\nexport interface GrDropdownProps {\n /** Выравнивание панели относительно триггера. */\n align?: GrDropdownAlign\n /** Ширина панели (tailwind-токены `w-*` или `auto`). */\n width?: GrDropdownWidth\n /** Закрывать панель по клику внутри content. */\n closeOnContentClick?: boolean\n /** Дополнительные классы контейнера content. */\n contentClass?: string\n /** Куда телепортировать панель (`body` по умолчанию). */\n teleportTo?: string | HTMLElement\n}\n\nconst props = withDefaults(defineProps<GrDropdownProps>(), {\n align: 'right',\n width: '48',\n closeOnContentClick: true,\n contentClass: '',\n teleportTo: 'body',\n})\n\nconst open = ref(false)\nconst rootEl = ref<HTMLElement | null>(null)\nconst panelEl = ref<HTMLElement | null>(null)\nconst clickOutsideExclude = [() => panelEl.value]\nconst panelStyle = ref<Record<string, string>>({\n left: '0px',\n top: '0px',\n zIndex: '2147483647',\n})\nlet syncFrame = 0\n\nfunction cancelPanelPositionSync(): void {\n if (typeof window === 'undefined') return\n if (!syncFrame) return\n\n window.cancelAnimationFrame(syncFrame)\n syncFrame = 0\n}\n\nfunction syncPanelPosition(): void {\n if (typeof window === 'undefined') return\n\n const root = rootEl.value\n if (!root) return\n\n const rootRect = root.getBoundingClientRect()\n const left = (() => {\n if (props.align === 'right') return rootRect.right\n if (props.align === 'center') return rootRect.left + (rootRect.width / 2)\n return rootRect.left\n })()\n\n panelStyle.value = {\n left: `${left}px`,\n top: `${rootRect.bottom + 8}px`,\n zIndex: '2147483647',\n }\n}\n\nfunction schedulePanelPositionSync(): void {\n if (typeof window === 'undefined') return\n if (syncFrame) return\n\n syncFrame = window.requestAnimationFrame(() => {\n syncFrame = 0\n\n if (open.value) {\n syncPanelPosition()\n }\n })\n}\n\nfunction bindPanelPositionListeners(): void {\n if (typeof window === 'undefined') return\n window.addEventListener('resize', schedulePanelPositionSync)\n window.addEventListener('scroll', schedulePanelPositionSync, true)\n}\n\nfunction unbindPanelPositionListeners(): void {\n if (typeof window === 'undefined') return\n window.removeEventListener('resize', schedulePanelPositionSync)\n window.removeEventListener('scroll', schedulePanelPositionSync, true)\n}\n\nfunction toggle(): void {\n open.value = !open.value\n}\n\nfunction close(): void {\n open.value = false\n}\n\nfunction closeOnEscape(e: KeyboardEvent): void {\n if (e.key === 'Escape') close()\n}\n\nwatch(\n open,\n (isOpen) => {\n if (typeof document === 'undefined') return\n\n document.removeEventListener('keydown', closeOnEscape)\n unbindPanelPositionListeners()\n cancelPanelPositionSync()\n if (isOpen) document.addEventListener('keydown', closeOnEscape)\n\n if (!isOpen) return\n\n bindPanelPositionListeners()\n syncPanelPosition()\n },\n { immediate: true },\n)\n\nwatch(\n () => props.align,\n () => {\n if (open.value) {\n schedulePanelPositionSync()\n }\n },\n)\n\nonUnmounted(() => {\n if (typeof document === 'undefined') return\n document.removeEventListener('keydown', closeOnEscape)\n unbindPanelPositionListeners()\n cancelPanelPositionSync()\n})\n\nconst widthClass = computed(() => grDropdownWidthClass(props.width))\n\nconst contentClasses = computed(() => grDropdownContentClass(props.contentClass))\n\nconst panelClasses = computed(() => {\n return ['fixed z-50', widthClass.value, grDropdownAlignmentClass(props.align)].filter(Boolean)\n})\n\nfunction onContentClick(): void {\n if (props.closeOnContentClick) {\n close()\n }\n}\n</script>\n\n<template>\n <div data-ds-dropdown>\n <div\n ref=\"rootEl\"\n v-click-outside=\"{ handler: close, enabled: open, exclude: clickOutsideExclude }\"\n data-ds-dropdown-trigger\n class=\"inline-block max-w-full\"\n @click=\"toggle\"\n >\n <slot name=\"trigger\" :open=\"open\" :toggle=\"toggle\" :close=\"close\" />\n </div>\n\n <teleport :to=\"teleportTo\">\n <transition\n enter-active-class=\"transition ease-out duration-150\"\n enter-from-class=\"transform opacity-0 scale-95\"\n enter-to-class=\"transform opacity-100 scale-100\"\n leave-active-class=\"transition ease-in duration-100\"\n leave-from-class=\"transform opacity-100 scale-100\"\n leave-to-class=\"transform opacity-0 scale-95\"\n >\n <div\n v-show=\"open\"\n ref=\"panelEl\"\n data-ds-dropdown-panel\n :class=\"panelClasses\"\n :style=\"panelStyle\"\n @click=\"onContentClick\"\n >\n <div data-ds-dropdown-content :class=\"contentClasses\">\n <slot name=\"content\" :close=\"close\" />\n </div>\n </div>\n </transition>\n </teleport>\n </div>\n</template>\n"],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { t as
|
|
2
|
-
import { n as
|
|
3
|
-
export {
|
|
1
|
+
import { t as GrDropdown_default } from "./chunks/GrDropdown-BkACCXdp.js";
|
|
2
|
+
import { n as grDropdownSafelist, t as grDropdownConfig } from "../../chunks/config-C4AlNm912.js";
|
|
3
|
+
export { GrDropdown_default as GrDropdown, GrDropdown_default as default, grDropdownConfig, grDropdownSafelist };
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
import { t as GrDropdown_default } from "../../GrDropdown/chunks/GrDropdown-BkACCXdp.js";
|
|
2
|
+
import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, guardReactiveProps, mergeProps, normalizeClass, normalizeProps, openBlock, renderSlot, resolveDynamicComponent, toDisplayString, unref, useAttrs, useSlots, withCtx } from "vue";
|
|
3
|
+
//#endregion
|
|
4
|
+
//#region src/components/GrDropdownMenu/GrDropdownMenuList.vue
|
|
5
|
+
var GrDropdownMenuList_default = /* @__PURE__ */ defineComponent({
|
|
6
|
+
__name: "GrDropdownMenuList",
|
|
7
|
+
props: {
|
|
8
|
+
dividers: {
|
|
9
|
+
type: Boolean,
|
|
10
|
+
default: false
|
|
11
|
+
},
|
|
12
|
+
borderTop: {
|
|
13
|
+
type: Boolean,
|
|
14
|
+
default: false
|
|
15
|
+
},
|
|
16
|
+
borderBottom: {
|
|
17
|
+
type: Boolean,
|
|
18
|
+
default: false
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
setup(__props) {
|
|
22
|
+
const props = __props;
|
|
23
|
+
const className = computed(() => {
|
|
24
|
+
return [
|
|
25
|
+
"w-full",
|
|
26
|
+
props.dividers ? "divide-y divide-[var(--brd)]" : "",
|
|
27
|
+
props.borderTop ? "border-t border-[var(--brd)]" : "",
|
|
28
|
+
props.borderBottom ? "border-b border-[var(--brd)]" : ""
|
|
29
|
+
].filter(Boolean).join(" ");
|
|
30
|
+
});
|
|
31
|
+
return (_ctx, _cache) => {
|
|
32
|
+
return openBlock(), createElementBlock("div", {
|
|
33
|
+
"data-ds-dropdown-menu-list": "",
|
|
34
|
+
class: normalizeClass(className.value)
|
|
35
|
+
}, [renderSlot(_ctx.$slots, "default")], 2);
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
//#endregion
|
|
40
|
+
//#region src/components/GrDropdownMenu/GrDropdownMenu.vue
|
|
41
|
+
var GrDropdownMenu_default = /* @__PURE__ */ defineComponent({
|
|
42
|
+
__name: "GrDropdownMenu",
|
|
43
|
+
props: {
|
|
44
|
+
align: { default: "right" },
|
|
45
|
+
width: { default: "48" },
|
|
46
|
+
closeOnContentClick: {
|
|
47
|
+
type: Boolean,
|
|
48
|
+
default: true
|
|
49
|
+
},
|
|
50
|
+
contentClass: { default: "p-0" },
|
|
51
|
+
dividers: {
|
|
52
|
+
type: Boolean,
|
|
53
|
+
default: false
|
|
54
|
+
},
|
|
55
|
+
borderTop: {
|
|
56
|
+
type: Boolean,
|
|
57
|
+
default: false
|
|
58
|
+
},
|
|
59
|
+
borderBottom: {
|
|
60
|
+
type: Boolean,
|
|
61
|
+
default: false
|
|
62
|
+
},
|
|
63
|
+
listClass: { default: "" }
|
|
64
|
+
},
|
|
65
|
+
setup(__props) {
|
|
66
|
+
return (_ctx, _cache) => {
|
|
67
|
+
return openBlock(), createBlock(GrDropdown_default, {
|
|
68
|
+
"data-ds-dropdown-menu": "",
|
|
69
|
+
align: __props.align,
|
|
70
|
+
width: __props.width,
|
|
71
|
+
"close-on-content-click": __props.closeOnContentClick,
|
|
72
|
+
"content-class": __props.contentClass
|
|
73
|
+
}, {
|
|
74
|
+
trigger: withCtx((slotProps) => [renderSlot(_ctx.$slots, "trigger", normalizeProps(guardReactiveProps(slotProps)))]),
|
|
75
|
+
content: withCtx((slotProps) => [createVNode(GrDropdownMenuList_default, {
|
|
76
|
+
dividers: __props.dividers,
|
|
77
|
+
"border-top": __props.borderTop,
|
|
78
|
+
"border-bottom": __props.borderBottom,
|
|
79
|
+
class: normalizeClass(__props.listClass)
|
|
80
|
+
}, {
|
|
81
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps)))]),
|
|
82
|
+
_: 2
|
|
83
|
+
}, 1032, [
|
|
84
|
+
"dividers",
|
|
85
|
+
"border-top",
|
|
86
|
+
"border-bottom",
|
|
87
|
+
"class"
|
|
88
|
+
])]),
|
|
89
|
+
_: 3
|
|
90
|
+
}, 8, [
|
|
91
|
+
"align",
|
|
92
|
+
"width",
|
|
93
|
+
"close-on-content-click",
|
|
94
|
+
"content-class"
|
|
95
|
+
]);
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
//#endregion
|
|
100
|
+
//#region src/components/GrDropdownMenu/GrDropdownMenuColumn.vue
|
|
101
|
+
var GrDropdownMenuColumn_default = /* @__PURE__ */ defineComponent({
|
|
102
|
+
__name: "GrDropdownMenuColumn",
|
|
103
|
+
props: { align: { default: "center" } },
|
|
104
|
+
setup(__props) {
|
|
105
|
+
const alignClass = {
|
|
106
|
+
left: "justify-start text-left",
|
|
107
|
+
center: "justify-center text-center",
|
|
108
|
+
right: "justify-end text-right"
|
|
109
|
+
};
|
|
110
|
+
return (_ctx, _cache) => {
|
|
111
|
+
return openBlock(), createElementBlock("div", {
|
|
112
|
+
"data-ds-dropdown-menu-column": "",
|
|
113
|
+
class: normalizeClass(["px-3 py-2 flex items-center", alignClass[__props.align]])
|
|
114
|
+
}, [renderSlot(_ctx.$slots, "default")], 2);
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
//#endregion
|
|
119
|
+
//#region src/components/GrDropdownMenu/GrDropdownMenuColumns.vue
|
|
120
|
+
var GrDropdownMenuColumns_default = /* @__PURE__ */ defineComponent({
|
|
121
|
+
__name: "GrDropdownMenuColumns",
|
|
122
|
+
props: { cols: { default: 2 } },
|
|
123
|
+
setup(__props) {
|
|
124
|
+
const props = __props;
|
|
125
|
+
const colsClass = computed(() => {
|
|
126
|
+
return {
|
|
127
|
+
2: "grid-cols-2",
|
|
128
|
+
3: "grid-cols-3",
|
|
129
|
+
4: "grid-cols-4"
|
|
130
|
+
}[props.cols];
|
|
131
|
+
});
|
|
132
|
+
return (_ctx, _cache) => {
|
|
133
|
+
return openBlock(), createElementBlock("div", {
|
|
134
|
+
"data-ds-dropdown-menu-columns": "",
|
|
135
|
+
class: normalizeClass(["w-full grid divide-x divide-[var(--brd)]", colsClass.value])
|
|
136
|
+
}, [renderSlot(_ctx.$slots, "default")], 2);
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
//#endregion
|
|
141
|
+
//#region src/components/GrDropdownMenu/GrDropdownMenuDivider.vue
|
|
142
|
+
var GrDropdownMenuDivider_default = /* @__PURE__ */ defineComponent({
|
|
143
|
+
__name: "GrDropdownMenuDivider",
|
|
144
|
+
props: { inset: {
|
|
145
|
+
type: Boolean,
|
|
146
|
+
default: false
|
|
147
|
+
} },
|
|
148
|
+
setup(__props) {
|
|
149
|
+
return (_ctx, _cache) => {
|
|
150
|
+
return openBlock(), createElementBlock("div", {
|
|
151
|
+
"data-ds-dropdown-menu-divider": "",
|
|
152
|
+
role: "separator",
|
|
153
|
+
class: normalizeClass(["border-t border-[var(--brd)]", __props.inset ? "mx-2" : ""])
|
|
154
|
+
}, null, 2);
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
//#endregion
|
|
159
|
+
//#region src/components/GrDropdownMenu/GrDropdownMenuHeader.vue
|
|
160
|
+
var GrDropdownMenuHeader_default = /* @__PURE__ */ defineComponent({
|
|
161
|
+
__name: "GrDropdownMenuHeader",
|
|
162
|
+
props: {
|
|
163
|
+
title: { default: void 0 },
|
|
164
|
+
align: { default: "left" },
|
|
165
|
+
uppercase: {
|
|
166
|
+
type: Boolean,
|
|
167
|
+
default: true
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
setup(__props) {
|
|
171
|
+
const props = __props;
|
|
172
|
+
const slots = useSlots();
|
|
173
|
+
const isVisible = computed(() => Boolean(props.title) || Boolean(slots.default));
|
|
174
|
+
const titleAlignClass = computed(() => {
|
|
175
|
+
return {
|
|
176
|
+
left: "text-left",
|
|
177
|
+
center: "text-center",
|
|
178
|
+
right: "text-right"
|
|
179
|
+
}[props.align];
|
|
180
|
+
});
|
|
181
|
+
return (_ctx, _cache) => {
|
|
182
|
+
return isVisible.value ? (openBlock(), createElementBlock("div", {
|
|
183
|
+
key: 0,
|
|
184
|
+
"data-ds-dropdown-menu-header": "",
|
|
185
|
+
class: normalizeClass(["px-4 py-2 text-[11px] tracking-wide text-[var(--muted-fg)]", [titleAlignClass.value, { uppercase: __props.uppercase }]])
|
|
186
|
+
}, [renderSlot(_ctx.$slots, "default", {}, () => [createTextVNode(toDisplayString(__props.title), 1)])], 2)) : createCommentVNode("", true);
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
//#endregion
|
|
191
|
+
//#region src/components/GrDropdownMenu/GrDropdownMenuGroup.vue?vue&type=script&setup=true&lang.ts
|
|
192
|
+
var _hoisted_1 = {
|
|
193
|
+
"data-ds-dropdown-menu-group": "",
|
|
194
|
+
class: "w-full"
|
|
195
|
+
};
|
|
196
|
+
//#endregion
|
|
197
|
+
//#region src/components/GrDropdownMenu/GrDropdownMenuGroup.vue
|
|
198
|
+
var GrDropdownMenuGroup_default = /* @__PURE__ */ defineComponent({
|
|
199
|
+
__name: "GrDropdownMenuGroup",
|
|
200
|
+
props: {
|
|
201
|
+
title: { default: void 0 },
|
|
202
|
+
titleAlign: { default: "left" },
|
|
203
|
+
dividers: {
|
|
204
|
+
type: Boolean,
|
|
205
|
+
default: false
|
|
206
|
+
},
|
|
207
|
+
uppercase: {
|
|
208
|
+
type: Boolean,
|
|
209
|
+
default: true
|
|
210
|
+
}
|
|
211
|
+
},
|
|
212
|
+
setup(__props) {
|
|
213
|
+
const props = __props;
|
|
214
|
+
const itemsClass = computed(() => {
|
|
215
|
+
return ["w-full", props.dividers ? "divide-y divide-[var(--brd)]" : ""].filter(Boolean).join(" ");
|
|
216
|
+
});
|
|
217
|
+
return (_ctx, _cache) => {
|
|
218
|
+
return openBlock(), createElementBlock("div", _hoisted_1, [__props.title ? (openBlock(), createBlock(GrDropdownMenuHeader_default, {
|
|
219
|
+
key: 0,
|
|
220
|
+
title: __props.title,
|
|
221
|
+
align: __props.titleAlign,
|
|
222
|
+
uppercase: __props.uppercase
|
|
223
|
+
}, null, 8, [
|
|
224
|
+
"title",
|
|
225
|
+
"align",
|
|
226
|
+
"uppercase"
|
|
227
|
+
])) : createCommentVNode("", true), createElementVNode("div", { class: normalizeClass(itemsClass.value) }, [renderSlot(_ctx.$slots, "default")], 2)]);
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
});
|
|
231
|
+
//#endregion
|
|
232
|
+
//#region src/components/GrDropdownMenu/GrDropdownMenuItem.vue
|
|
233
|
+
var GrDropdownMenuItem_default = /* @__PURE__ */ defineComponent({
|
|
234
|
+
inheritAttrs: false,
|
|
235
|
+
__name: "GrDropdownMenuItem",
|
|
236
|
+
props: {
|
|
237
|
+
as: { default: "button" },
|
|
238
|
+
disabled: {
|
|
239
|
+
type: Boolean,
|
|
240
|
+
default: false
|
|
241
|
+
},
|
|
242
|
+
align: { default: "left" },
|
|
243
|
+
variant: { default: "default" }
|
|
244
|
+
},
|
|
245
|
+
setup(__props) {
|
|
246
|
+
const props = __props;
|
|
247
|
+
const attrs = useAttrs();
|
|
248
|
+
const isNativeButton = computed(() => props.as === "button" || props.as === void 0);
|
|
249
|
+
const alignClass = computed(() => {
|
|
250
|
+
return {
|
|
251
|
+
left: "justify-start text-left",
|
|
252
|
+
center: "justify-center text-center",
|
|
253
|
+
right: "justify-end text-right"
|
|
254
|
+
}[props.align];
|
|
255
|
+
});
|
|
256
|
+
const variantClass = computed(() => {
|
|
257
|
+
if (props.variant === "danger") return "text-[var(--ds-danger)]";
|
|
258
|
+
return "text-[var(--fg)]";
|
|
259
|
+
});
|
|
260
|
+
const disabledClass = computed(() => {
|
|
261
|
+
if (!props.disabled) return "";
|
|
262
|
+
return "cursor-not-allowed opacity-60 pointer-events-none";
|
|
263
|
+
});
|
|
264
|
+
const interactiveClass = computed(() => {
|
|
265
|
+
if (props.disabled) return "";
|
|
266
|
+
return "hover:bg-[var(--accent)] hover:text-[var(--accent-fg)]";
|
|
267
|
+
});
|
|
268
|
+
const className = computed(() => {
|
|
269
|
+
return [
|
|
270
|
+
"w-full min-h-[40px] px-4 py-2.5",
|
|
271
|
+
"flex items-center gap-2",
|
|
272
|
+
"text-[13px]",
|
|
273
|
+
"transition-colors duration-150",
|
|
274
|
+
"focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]",
|
|
275
|
+
alignClass.value,
|
|
276
|
+
variantClass.value,
|
|
277
|
+
interactiveClass.value,
|
|
278
|
+
disabledClass.value
|
|
279
|
+
].filter(Boolean).join(" ");
|
|
280
|
+
});
|
|
281
|
+
function onClickCapture(e) {
|
|
282
|
+
if (!props.disabled) return;
|
|
283
|
+
e.preventDefault();
|
|
284
|
+
e.stopPropagation();
|
|
285
|
+
}
|
|
286
|
+
return (_ctx, _cache) => {
|
|
287
|
+
return openBlock(), createBlock(resolveDynamicComponent(__props.as), mergeProps(unref(attrs), {
|
|
288
|
+
"data-ds-dropdown-menu-item": "",
|
|
289
|
+
class: className.value,
|
|
290
|
+
type: isNativeButton.value ? unref(attrs).type ?? "button" : void 0,
|
|
291
|
+
disabled: isNativeButton.value ? __props.disabled : void 0,
|
|
292
|
+
"aria-disabled": __props.disabled ? "true" : void 0,
|
|
293
|
+
tabindex: __props.disabled ? -1 : unref(attrs).tabindex,
|
|
294
|
+
onClickCapture
|
|
295
|
+
}), {
|
|
296
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
|
|
297
|
+
_: 3
|
|
298
|
+
}, 16, [
|
|
299
|
+
"class",
|
|
300
|
+
"type",
|
|
301
|
+
"disabled",
|
|
302
|
+
"aria-disabled",
|
|
303
|
+
"tabindex"
|
|
304
|
+
]);
|
|
305
|
+
};
|
|
306
|
+
}
|
|
307
|
+
});
|
|
308
|
+
//#endregion
|
|
309
|
+
export { GrDropdownMenuColumns_default as a, GrDropdownMenuList_default as c, GrDropdownMenuDivider_default as i, GrDropdownMenuGroup_default as n, GrDropdownMenuColumn_default as o, GrDropdownMenuHeader_default as r, GrDropdownMenu_default as s, GrDropdownMenuItem_default as t };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GrDropdownMenu-BEenXrJw.js","names":[],"sources":["../../../../src/components/GrDropdownMenu/GrDropdownMenuList.vue","../../../../src/components/GrDropdownMenu/GrDropdownMenuList.vue","../../../../src/components/GrDropdownMenu/GrDropdownMenu.vue","../../../../src/components/GrDropdownMenu/GrDropdownMenu.vue","../../../../src/components/GrDropdownMenu/GrDropdownMenuColumn.vue","../../../../src/components/GrDropdownMenu/GrDropdownMenuColumn.vue","../../../../src/components/GrDropdownMenu/GrDropdownMenuColumns.vue","../../../../src/components/GrDropdownMenu/GrDropdownMenuColumns.vue","../../../../src/components/GrDropdownMenu/GrDropdownMenuDivider.vue","../../../../src/components/GrDropdownMenu/GrDropdownMenuDivider.vue","../../../../src/components/GrDropdownMenu/GrDropdownMenuHeader.vue","../../../../src/components/GrDropdownMenu/GrDropdownMenuHeader.vue","../../../../src/components/GrDropdownMenu/GrDropdownMenuGroup.vue","../../../../src/components/GrDropdownMenu/GrDropdownMenuGroup.vue","../../../../src/components/GrDropdownMenu/GrDropdownMenuItem.vue","../../../../src/components/GrDropdownMenu/GrDropdownMenuItem.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nexport interface GrDropdownMenuListProps {\n dividers?: boolean\n borderTop?: boolean\n borderBottom?: boolean\n}\n\nconst props = withDefaults(defineProps<GrDropdownMenuListProps>(), {\n dividers: false,\n borderTop: false,\n borderBottom: false,\n})\n\nconst className = computed(() => {\n return [\n 'w-full',\n props.dividers ? 'divide-y divide-[var(--brd)]' : '',\n props.borderTop ? 'border-t border-[var(--brd)]' : '',\n props.borderBottom ? 'border-b border-[var(--brd)]' : '',\n ].filter(Boolean).join(' ')\n})\n</script>\n\n<template>\n <div data-ds-dropdown-menu-list :class=\"className\">\n <slot />\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nexport interface GrDropdownMenuListProps {\n dividers?: boolean\n borderTop?: boolean\n borderBottom?: boolean\n}\n\nconst props = withDefaults(defineProps<GrDropdownMenuListProps>(), {\n dividers: false,\n borderTop: false,\n borderBottom: false,\n})\n\nconst className = computed(() => {\n return [\n 'w-full',\n props.dividers ? 'divide-y divide-[var(--brd)]' : '',\n props.borderTop ? 'border-t border-[var(--brd)]' : '',\n props.borderBottom ? 'border-b border-[var(--brd)]' : '',\n ].filter(Boolean).join(' ')\n})\n</script>\n\n<template>\n <div data-ds-dropdown-menu-list :class=\"className\">\n <slot />\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport GrDropdown from '../GrDropdown/GrDropdown.vue'\n\nimport GrDropdownMenuList from './GrDropdownMenuList.vue'\n\nexport type GrDropdownMenuAlign = 'left' | 'right' | 'center'\nexport type GrDropdownMenuWidth = 'auto' | '20' | '48' | '60' | '64' | '80'\n\nexport interface GrDropdownMenuProps {\n /** Выравнивание панели относительно триггера. */\n align?: GrDropdownMenuAlign\n /** Ширина панели. */\n width?: GrDropdownMenuWidth\n /** Закрывать по клику внутри content. */\n closeOnContentClick?: boolean\n /** Дополнительные классы content-контейнера; по умолчанию `p-0`. */\n contentClass?: string\n\n // list wrapper\n /** Разделители между пунктами. */\n dividers?: boolean\n /** Верхний бордер контейнера списка. */\n borderTop?: boolean\n /** Нижний бордер контейнера списка. */\n borderBottom?: boolean\n /** Дополнительные классы для wrapper'а списка. */\n listClass?: string\n}\n\nwithDefaults(defineProps<GrDropdownMenuProps>(), {\n align: 'right',\n width: '48',\n closeOnContentClick: true,\n // В `GrDropdown` есть `p-1`, поэтому здесь по умолчанию обнуляем padding,\n // чтобы пункты меню могли растягиваться до границ.\n contentClass: 'p-0',\n dividers: false,\n borderTop: false,\n borderBottom: false,\n listClass: '',\n})\n</script>\n\n<template>\n <GrDropdown\n data-ds-dropdown-menu\n :align=\"align\"\n :width=\"width\"\n :close-on-content-click=\"closeOnContentClick\"\n :content-class=\"contentClass\"\n >\n <template #trigger=\"slotProps\">\n <slot name=\"trigger\" v-bind=\"slotProps\" />\n </template>\n\n <template #content=\"slotProps\">\n <GrDropdownMenuList\n :dividers=\"dividers\"\n :border-top=\"borderTop\"\n :border-bottom=\"borderBottom\"\n :class=\"listClass\"\n >\n <slot v-bind=\"slotProps\" />\n </GrDropdownMenuList>\n </template>\n </GrDropdown>\n</template>\n","<script setup lang=\"ts\">\nimport GrDropdown from '../GrDropdown/GrDropdown.vue'\n\nimport GrDropdownMenuList from './GrDropdownMenuList.vue'\n\nexport type GrDropdownMenuAlign = 'left' | 'right' | 'center'\nexport type GrDropdownMenuWidth = 'auto' | '20' | '48' | '60' | '64' | '80'\n\nexport interface GrDropdownMenuProps {\n /** Выравнивание панели относительно триггера. */\n align?: GrDropdownMenuAlign\n /** Ширина панели. */\n width?: GrDropdownMenuWidth\n /** Закрывать по клику внутри content. */\n closeOnContentClick?: boolean\n /** Дополнительные классы content-контейнера; по умолчанию `p-0`. */\n contentClass?: string\n\n // list wrapper\n /** Разделители между пунктами. */\n dividers?: boolean\n /** Верхний бордер контейнера списка. */\n borderTop?: boolean\n /** Нижний бордер контейнера списка. */\n borderBottom?: boolean\n /** Дополнительные классы для wrapper'а списка. */\n listClass?: string\n}\n\nwithDefaults(defineProps<GrDropdownMenuProps>(), {\n align: 'right',\n width: '48',\n closeOnContentClick: true,\n // В `GrDropdown` есть `p-1`, поэтому здесь по умолчанию обнуляем padding,\n // чтобы пункты меню могли растягиваться до границ.\n contentClass: 'p-0',\n dividers: false,\n borderTop: false,\n borderBottom: false,\n listClass: '',\n})\n</script>\n\n<template>\n <GrDropdown\n data-ds-dropdown-menu\n :align=\"align\"\n :width=\"width\"\n :close-on-content-click=\"closeOnContentClick\"\n :content-class=\"contentClass\"\n >\n <template #trigger=\"slotProps\">\n <slot name=\"trigger\" v-bind=\"slotProps\" />\n </template>\n\n <template #content=\"slotProps\">\n <GrDropdownMenuList\n :dividers=\"dividers\"\n :border-top=\"borderTop\"\n :border-bottom=\"borderBottom\"\n :class=\"listClass\"\n >\n <slot v-bind=\"slotProps\" />\n </GrDropdownMenuList>\n </template>\n </GrDropdown>\n</template>\n","<script setup lang=\"ts\">\nexport type GrDropdownMenuColumnAlign = 'left' | 'center' | 'right'\n\nexport interface GrDropdownMenuColumnProps {\n align?: GrDropdownMenuColumnAlign\n}\n\nwithDefaults(defineProps<GrDropdownMenuColumnProps>(), {\n align: 'center',\n})\n\nconst alignClass: Record<GrDropdownMenuColumnAlign, string> = {\n left: 'justify-start text-left',\n center: 'justify-center text-center',\n right: 'justify-end text-right',\n}\n</script>\n\n<template>\n <div\n data-ds-dropdown-menu-column\n class=\"px-3 py-2 flex items-center\"\n :class=\"alignClass[align]\"\n >\n <slot />\n </div>\n</template>\n","<script setup lang=\"ts\">\nexport type GrDropdownMenuColumnAlign = 'left' | 'center' | 'right'\n\nexport interface GrDropdownMenuColumnProps {\n align?: GrDropdownMenuColumnAlign\n}\n\nwithDefaults(defineProps<GrDropdownMenuColumnProps>(), {\n align: 'center',\n})\n\nconst alignClass: Record<GrDropdownMenuColumnAlign, string> = {\n left: 'justify-start text-left',\n center: 'justify-center text-center',\n right: 'justify-end text-right',\n}\n</script>\n\n<template>\n <div\n data-ds-dropdown-menu-column\n class=\"px-3 py-2 flex items-center\"\n :class=\"alignClass[align]\"\n >\n <slot />\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nexport interface GrDropdownMenuColumnsProps {\n cols?: 2 | 3 | 4\n}\n\nconst props = withDefaults(defineProps<GrDropdownMenuColumnsProps>(), {\n cols: 2,\n})\n\nconst colsClass = computed(() => {\n return {\n 2: 'grid-cols-2',\n 3: 'grid-cols-3',\n 4: 'grid-cols-4',\n }[props.cols]\n})\n</script>\n\n<template>\n <div\n data-ds-dropdown-menu-columns\n class=\"w-full grid divide-x divide-[var(--brd)]\"\n :class=\"colsClass\"\n >\n <slot />\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nexport interface GrDropdownMenuColumnsProps {\n cols?: 2 | 3 | 4\n}\n\nconst props = withDefaults(defineProps<GrDropdownMenuColumnsProps>(), {\n cols: 2,\n})\n\nconst colsClass = computed(() => {\n return {\n 2: 'grid-cols-2',\n 3: 'grid-cols-3',\n 4: 'grid-cols-4',\n }[props.cols]\n})\n</script>\n\n<template>\n <div\n data-ds-dropdown-menu-columns\n class=\"w-full grid divide-x divide-[var(--brd)]\"\n :class=\"colsClass\"\n >\n <slot />\n </div>\n</template>\n","<script setup lang=\"ts\">\nexport interface GrDropdownMenuDividerProps {\n inset?: boolean\n}\n\nwithDefaults(defineProps<GrDropdownMenuDividerProps>(), {\n inset: false,\n})\n</script>\n\n<template>\n <div\n data-ds-dropdown-menu-divider\n role=\"separator\"\n class=\"border-t border-[var(--brd)]\"\n :class=\"inset ? 'mx-2' : ''\"\n />\n</template>\n","<script setup lang=\"ts\">\nexport interface GrDropdownMenuDividerProps {\n inset?: boolean\n}\n\nwithDefaults(defineProps<GrDropdownMenuDividerProps>(), {\n inset: false,\n})\n</script>\n\n<template>\n <div\n data-ds-dropdown-menu-divider\n role=\"separator\"\n class=\"border-t border-[var(--brd)]\"\n :class=\"inset ? 'mx-2' : ''\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport { computed, useSlots } from 'vue'\n\nexport type GrDropdownMenuHeaderAlign = 'left' | 'center' | 'right'\n\nexport interface GrDropdownMenuHeaderProps {\n title?: string\n align?: GrDropdownMenuHeaderAlign\n uppercase?: boolean\n}\n\nconst props = withDefaults(defineProps<GrDropdownMenuHeaderProps>(), {\n title: undefined,\n align: 'left',\n uppercase: true,\n})\n\nconst slots = useSlots()\nconst isVisible = computed(() => Boolean(props.title) || Boolean(slots.default))\n\nconst titleAlignClass = computed(() => {\n const map: Record<GrDropdownMenuHeaderAlign, string> = {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n }\n return map[props.align]\n})\n</script>\n\n<template>\n <div\n v-if=\"isVisible\"\n data-ds-dropdown-menu-header\n class=\"px-4 py-2 text-[11px] tracking-wide text-[var(--muted-fg)]\"\n :class=\"[titleAlignClass, { uppercase }]\"\n >\n <slot>{{ title }}</slot>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed, useSlots } from 'vue'\n\nexport type GrDropdownMenuHeaderAlign = 'left' | 'center' | 'right'\n\nexport interface GrDropdownMenuHeaderProps {\n title?: string\n align?: GrDropdownMenuHeaderAlign\n uppercase?: boolean\n}\n\nconst props = withDefaults(defineProps<GrDropdownMenuHeaderProps>(), {\n title: undefined,\n align: 'left',\n uppercase: true,\n})\n\nconst slots = useSlots()\nconst isVisible = computed(() => Boolean(props.title) || Boolean(slots.default))\n\nconst titleAlignClass = computed(() => {\n const map: Record<GrDropdownMenuHeaderAlign, string> = {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n }\n return map[props.align]\n})\n</script>\n\n<template>\n <div\n v-if=\"isVisible\"\n data-ds-dropdown-menu-header\n class=\"px-4 py-2 text-[11px] tracking-wide text-[var(--muted-fg)]\"\n :class=\"[titleAlignClass, { uppercase }]\"\n >\n <slot>{{ title }}</slot>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nimport GrDropdownMenuHeader from './GrDropdownMenuHeader.vue'\nimport type { GrDropdownMenuHeaderAlign } from './GrDropdownMenuHeader.vue'\n\nexport interface GrDropdownMenuGroupProps {\n title?: string\n titleAlign?: GrDropdownMenuHeaderAlign\n dividers?: boolean\n uppercase?: boolean\n}\n\nconst props = withDefaults(defineProps<GrDropdownMenuGroupProps>(), {\n title: undefined,\n titleAlign: 'left',\n dividers: false,\n uppercase: true,\n})\n\nconst itemsClass = computed(() => {\n return [\n 'w-full',\n props.dividers ? 'divide-y divide-[var(--brd)]' : '',\n ].filter(Boolean).join(' ')\n})\n</script>\n\n<template>\n <div data-ds-dropdown-menu-group class=\"w-full\">\n <GrDropdownMenuHeader\n v-if=\"title\"\n :title=\"title\"\n :align=\"titleAlign\"\n :uppercase=\"uppercase\"\n />\n <div :class=\"itemsClass\">\n <slot />\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nimport GrDropdownMenuHeader from './GrDropdownMenuHeader.vue'\nimport type { GrDropdownMenuHeaderAlign } from './GrDropdownMenuHeader.vue'\n\nexport interface GrDropdownMenuGroupProps {\n title?: string\n titleAlign?: GrDropdownMenuHeaderAlign\n dividers?: boolean\n uppercase?: boolean\n}\n\nconst props = withDefaults(defineProps<GrDropdownMenuGroupProps>(), {\n title: undefined,\n titleAlign: 'left',\n dividers: false,\n uppercase: true,\n})\n\nconst itemsClass = computed(() => {\n return [\n 'w-full',\n props.dividers ? 'divide-y divide-[var(--brd)]' : '',\n ].filter(Boolean).join(' ')\n})\n</script>\n\n<template>\n <div data-ds-dropdown-menu-group class=\"w-full\">\n <GrDropdownMenuHeader\n v-if=\"title\"\n :title=\"title\"\n :align=\"titleAlign\"\n :uppercase=\"uppercase\"\n />\n <div :class=\"itemsClass\">\n <slot />\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed, useAttrs } from 'vue'\nimport type { Component } from 'vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nexport type GrDropdownMenuItemAlign = 'left' | 'center' | 'right'\nexport type GrDropdownMenuItemVariant = 'default' | 'danger'\n\nexport interface GrDropdownMenuItemProps {\n as?: string | Component\n disabled?: boolean\n align?: GrDropdownMenuItemAlign\n variant?: GrDropdownMenuItemVariant\n}\n\nconst props = withDefaults(defineProps<GrDropdownMenuItemProps>(), {\n as: 'button',\n disabled: false,\n align: 'left',\n variant: 'default',\n})\n\nconst attrs = useAttrs()\n\nconst isNativeButton = computed(() => props.as === 'button' || props.as === undefined)\n\nconst alignClass = computed(() => {\n const map: Record<GrDropdownMenuItemAlign, string> = {\n left: 'justify-start text-left',\n center: 'justify-center text-center',\n right: 'justify-end text-right',\n }\n\n return map[props.align]\n})\n\nconst variantClass = computed(() => {\n if (props.variant === 'danger')\n return 'text-[var(--ds-danger)]'\n\n return 'text-[var(--fg)]'\n})\n\nconst disabledClass = computed(() => {\n if (!props.disabled)\n return ''\n\n return 'cursor-not-allowed opacity-60 pointer-events-none'\n})\n\nconst interactiveClass = computed(() => {\n if (props.disabled)\n return ''\n\n return 'hover:bg-[var(--accent)] hover:text-[var(--accent-fg)]'\n})\n\nconst className = computed(() => {\n return [\n // block/flex + размеры\n 'w-full min-h-[40px] px-4 py-2.5',\n 'flex items-center gap-2',\n // типографика\n 'text-[13px]',\n // взаимодействие\n 'transition-colors duration-150',\n 'focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]',\n alignClass.value,\n variantClass.value,\n interactiveClass.value,\n disabledClass.value,\n ].filter(Boolean).join(' ')\n})\n\nfunction onClickCapture(e: MouseEvent) {\n if (!props.disabled)\n return\n\n e.preventDefault()\n e.stopPropagation()\n}\n</script>\n\n<template>\n <component\n :is=\"as\"\n v-bind=\"attrs\"\n data-ds-dropdown-menu-item\n :class=\"className\"\n :type=\"isNativeButton ? (attrs.type as any) ?? 'button' : undefined\"\n :disabled=\"isNativeButton ? disabled : undefined\"\n :aria-disabled=\"disabled ? 'true' : undefined\"\n :tabindex=\"disabled ? -1 : (attrs.tabindex as any)\"\n @click.capture=\"onClickCapture\"\n >\n <slot />\n </component>\n</template>","<script setup lang=\"ts\">\nimport { computed, useAttrs } from 'vue'\nimport type { Component } from 'vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nexport type GrDropdownMenuItemAlign = 'left' | 'center' | 'right'\nexport type GrDropdownMenuItemVariant = 'default' | 'danger'\n\nexport interface GrDropdownMenuItemProps {\n as?: string | Component\n disabled?: boolean\n align?: GrDropdownMenuItemAlign\n variant?: GrDropdownMenuItemVariant\n}\n\nconst props = withDefaults(defineProps<GrDropdownMenuItemProps>(), {\n as: 'button',\n disabled: false,\n align: 'left',\n variant: 'default',\n})\n\nconst attrs = useAttrs()\n\nconst isNativeButton = computed(() => props.as === 'button' || props.as === undefined)\n\nconst alignClass = computed(() => {\n const map: Record<GrDropdownMenuItemAlign, string> = {\n left: 'justify-start text-left',\n center: 'justify-center text-center',\n right: 'justify-end text-right',\n }\n\n return map[props.align]\n})\n\nconst variantClass = computed(() => {\n if (props.variant === 'danger')\n return 'text-[var(--ds-danger)]'\n\n return 'text-[var(--fg)]'\n})\n\nconst disabledClass = computed(() => {\n if (!props.disabled)\n return ''\n\n return 'cursor-not-allowed opacity-60 pointer-events-none'\n})\n\nconst interactiveClass = computed(() => {\n if (props.disabled)\n return ''\n\n return 'hover:bg-[var(--accent)] hover:text-[var(--accent-fg)]'\n})\n\nconst className = computed(() => {\n return [\n // block/flex + размеры\n 'w-full min-h-[40px] px-4 py-2.5',\n 'flex items-center gap-2',\n // типографика\n 'text-[13px]',\n // взаимодействие\n 'transition-colors duration-150',\n 'focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]',\n alignClass.value,\n variantClass.value,\n interactiveClass.value,\n disabledClass.value,\n ].filter(Boolean).join(' ')\n})\n\nfunction onClickCapture(e: MouseEvent) {\n if (!props.disabled)\n return\n\n e.preventDefault()\n e.stopPropagation()\n}\n</script>\n\n<template>\n <component\n :is=\"as\"\n v-bind=\"attrs\"\n data-ds-dropdown-menu-item\n :class=\"className\"\n :type=\"isNativeButton ? (attrs.type as any) ?? 'button' : undefined\"\n :disabled=\"isNativeButton ? disabled : undefined\"\n :aria-disabled=\"disabled ? 'true' : undefined\"\n :tabindex=\"disabled ? -1 : (attrs.tabindex as any)\"\n @click.capture=\"onClickCapture\"\n >\n <slot />\n </component>\n</template>"],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as
|
|
2
|
-
import { t as
|
|
3
|
-
export {
|
|
1
|
+
import { a as GrDropdownMenuColumns_default, c as GrDropdownMenuList_default, i as GrDropdownMenuDivider_default, n as GrDropdownMenuGroup_default, o as GrDropdownMenuColumn_default, r as GrDropdownMenuHeader_default, s as GrDropdownMenu_default, t as GrDropdownMenuItem_default } from "./chunks/GrDropdownMenu-BEenXrJw.js";
|
|
2
|
+
import { t as grDropdownMenuConfig } from "../../chunks/config-etXh7Bsr2.js";
|
|
3
|
+
export { GrDropdownMenu_default as GrDropdownMenu, GrDropdownMenu_default as default, GrDropdownMenuColumn_default as GrDropdownMenuColumn, GrDropdownMenuColumns_default as GrDropdownMenuColumns, GrDropdownMenuDivider_default as GrDropdownMenuDivider, GrDropdownMenuGroup_default as GrDropdownMenuGroup, GrDropdownMenuHeader_default as GrDropdownMenuHeader, GrDropdownMenuItem_default as GrDropdownMenuItem, GrDropdownMenuList_default as GrDropdownMenuList, grDropdownMenuConfig };
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { t as GrIcon_default } from "../../GrIcon/chunks/GrIcon-BV7RBU_0.js";
|
|
2
|
+
import { createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, markRaw, openBlock, renderSlot, toDisplayString, unref, withCtx } from "vue";
|
|
3
|
+
//#region ~icons/lucide/inbox
|
|
4
|
+
var _hoisted_1$1 = {
|
|
5
|
+
viewBox: "0 0 24 24",
|
|
6
|
+
width: "1.2em",
|
|
7
|
+
height: "1.2em"
|
|
8
|
+
};
|
|
9
|
+
function render$1(_ctx, _cache) {
|
|
10
|
+
return openBlock(), createElementBlock("svg", _hoisted_1$1, [..._cache[0] || (_cache[0] = [createElementVNode("g", {
|
|
11
|
+
fill: "none",
|
|
12
|
+
stroke: "currentColor",
|
|
13
|
+
"stroke-linecap": "round",
|
|
14
|
+
"stroke-linejoin": "round",
|
|
15
|
+
"stroke-width": "2"
|
|
16
|
+
}, [createElementVNode("path", { d: "M22 12h-6l-2 3h-4l-2-3H2" }), createElementVNode("path", { d: "M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11" })], -1)])]);
|
|
17
|
+
}
|
|
18
|
+
var inbox_default = markRaw({
|
|
19
|
+
name: "lucide-inbox",
|
|
20
|
+
render: render$1
|
|
21
|
+
});
|
|
22
|
+
//#endregion
|
|
23
|
+
//#region src/components/GrEmptyState/GrEmptyState.vue?vue&type=script&setup=true&lang.ts
|
|
24
|
+
var _hoisted_1 = {
|
|
25
|
+
"data-ds-empty-state": "",
|
|
26
|
+
class: "rounded-[var(--ds-radius-lg)] border border-[var(--brd)] bg-[var(--card)] p-6 text-center"
|
|
27
|
+
};
|
|
28
|
+
var _hoisted_2 = { class: "flex justify-center" };
|
|
29
|
+
var _hoisted_3 = { class: "h-12 w-12 rounded-[12px] bg-[var(--muted)] border border-[var(--brd)] flex items-center justify-center text-[var(--muted-fg)]" };
|
|
30
|
+
var _hoisted_4 = { class: "mt-4 text-[14px] font-700" };
|
|
31
|
+
var _hoisted_5 = {
|
|
32
|
+
key: 0,
|
|
33
|
+
class: "mt-1 text-[13px] text-[var(--muted-fg)]"
|
|
34
|
+
};
|
|
35
|
+
var _hoisted_6 = {
|
|
36
|
+
key: 1,
|
|
37
|
+
class: "mt-4 flex justify-center"
|
|
38
|
+
};
|
|
39
|
+
//#endregion
|
|
40
|
+
//#region src/components/GrEmptyState/GrEmptyState.vue
|
|
41
|
+
var GrEmptyState_default = /* @__PURE__ */ defineComponent({
|
|
42
|
+
__name: "GrEmptyState",
|
|
43
|
+
props: {
|
|
44
|
+
title: {},
|
|
45
|
+
description: { default: void 0 }
|
|
46
|
+
},
|
|
47
|
+
setup(__props) {
|
|
48
|
+
return (_ctx, _cache) => {
|
|
49
|
+
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
50
|
+
createElementVNode("div", _hoisted_2, [createElementVNode("div", _hoisted_3, [renderSlot(_ctx.$slots, "icon", {}, () => [createVNode(GrIcon_default, { size: 24 }, {
|
|
51
|
+
default: withCtx(() => [createVNode(unref(inbox_default), { "aria-hidden": "true" })]),
|
|
52
|
+
_: 1
|
|
53
|
+
})])])]),
|
|
54
|
+
createElementVNode("div", _hoisted_4, toDisplayString(__props.title), 1),
|
|
55
|
+
__props.description ? (openBlock(), createElementBlock("div", _hoisted_5, toDisplayString(__props.description), 1)) : createCommentVNode("", true),
|
|
56
|
+
_ctx.$slots.default ? (openBlock(), createElementBlock("div", _hoisted_6, [renderSlot(_ctx.$slots, "default")])) : createCommentVNode("", true)
|
|
57
|
+
]);
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
//#endregion
|
|
62
|
+
export { GrEmptyState_default as t };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GrEmptyState-BLbMJFW-.js","names":["$slots"],"sources":["../../../../src/components/GrEmptyState/GrEmptyState.vue","../../../../src/components/GrEmptyState/GrEmptyState.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport IconInbox from '~icons/lucide/inbox'\n\nimport GrIcon from '../GrIcon/GrIcon.vue'\n\n/**\n * GrEmptyState — карточка пустого состояния с иконкой, заголовком,\n * опциональным описанием и CTA-слотом.\n *\n * - Иконка по умолчанию — `lucide/inbox`, кастомизируется через слот `#icon`.\n * - Default-слот рендерится как контейнер для действий (центрирован).\n */\nexport interface GrEmptyStateProps {\n title: string\n description?: string\n}\n\nwithDefaults(defineProps<GrEmptyStateProps>(), {\n description: undefined,\n})\n</script>\n\n<template>\n <div\n data-ds-empty-state\n class=\"rounded-[var(--ds-radius-lg)] border border-[var(--brd)] bg-[var(--card)] p-6 text-center\"\n >\n <div class=\"flex justify-center\">\n <div class=\"h-12 w-12 rounded-[12px] bg-[var(--muted)] border border-[var(--brd)] flex items-center justify-center text-[var(--muted-fg)]\">\n <slot name=\"icon\">\n <GrIcon :size=\"24\">\n <IconInbox aria-hidden=\"true\" />\n </GrIcon>\n </slot>\n </div>\n </div>\n\n <div class=\"mt-4 text-[14px] font-700\">\n {{ title }}\n </div>\n\n <div v-if=\"description\" class=\"mt-1 text-[13px] text-[var(--muted-fg)]\">\n {{ description }}\n </div>\n\n <div v-if=\"$slots.default\" class=\"mt-4 flex justify-center\">\n <slot />\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport IconInbox from '~icons/lucide/inbox'\n\nimport GrIcon from '../GrIcon/GrIcon.vue'\n\n/**\n * GrEmptyState — карточка пустого состояния с иконкой, заголовком,\n * опциональным описанием и CTA-слотом.\n *\n * - Иконка по умолчанию — `lucide/inbox`, кастомизируется через слот `#icon`.\n * - Default-слот рендерится как контейнер для действий (центрирован).\n */\nexport interface GrEmptyStateProps {\n title: string\n description?: string\n}\n\nwithDefaults(defineProps<GrEmptyStateProps>(), {\n description: undefined,\n})\n</script>\n\n<template>\n <div\n data-ds-empty-state\n class=\"rounded-[var(--ds-radius-lg)] border border-[var(--brd)] bg-[var(--card)] p-6 text-center\"\n >\n <div class=\"flex justify-center\">\n <div class=\"h-12 w-12 rounded-[12px] bg-[var(--muted)] border border-[var(--brd)] flex items-center justify-center text-[var(--muted-fg)]\">\n <slot name=\"icon\">\n <GrIcon :size=\"24\">\n <IconInbox aria-hidden=\"true\" />\n </GrIcon>\n </slot>\n </div>\n </div>\n\n <div class=\"mt-4 text-[14px] font-700\">\n {{ title }}\n </div>\n\n <div v-if=\"description\" class=\"mt-1 text-[13px] text-[var(--muted-fg)]\">\n {{ description }}\n </div>\n\n <div v-if=\"$slots.default\" class=\"mt-4 flex justify-center\">\n <slot />\n </div>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAuBE,mBAyBM,OAzBN,YAyBM;IArBJ,mBAQM,OARN,YAQM,CAPJ,mBAMM,OANN,YAMM,CALJ,WAIO,KAAA,QAAA,QAAA,EAAA,QAAA,CAHL,YAES,gBAAA,EAFA,MAAM,IAAE,EAAA;4BACiB,CAAhC,YAAgC,MAAA,cAAA,EAAA,EAArB,eAAY,QAAM,CAAA,CAAA,CAAA;;;IAMrC,mBAEM,OAFN,YAEM,gBADD,QAAA,MAAK,EAAA,EAAA;IAGC,QAAA,eAAA,WAAA,EAAX,mBAEM,OAFN,YAEM,gBADD,QAAA,YAAW,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA;IAGLA,KAAAA,OAAO,WAAA,WAAA,EAAlB,mBAEM,OAFN,YAEM,CADJ,WAAQ,KAAA,QAAA,UAAA,CAAA,CAAA,IAAA,mBAAA,IAAA,KAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { t as
|
|
2
|
-
import { t } from "../../chunks/config-
|
|
3
|
-
export {
|
|
1
|
+
import { t as GrEmptyState_default } from "./chunks/GrEmptyState-BLbMJFW-.js";
|
|
2
|
+
import { t as grEmptyStateConfig } from "../../chunks/config-CgAY2WP9.js";
|
|
3
|
+
export { GrEmptyState_default as GrEmptyState, GrEmptyState_default as default, grEmptyStateConfig };
|