@feugene/granularity 0.9.4 → 0.10.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/dist/chunks/{config-d386uO3O.js.map → config-58Mj2rGH.js.map} +1 -1
- package/dist/chunks/{config-D4s_QWVP.js.map → config-8f8624RN.js.map} +1 -1
- package/dist/chunks/{config-B_nSBc7W.js.map → config-A-iei0Ux.js.map} +1 -1
- package/dist/chunks/{config-CFf7xaG1.js → config-B0uUCaJW.js} +1 -1
- package/dist/chunks/{config-CFf7xaG1.js.map → config-B0uUCaJW.js.map} +1 -1
- package/dist/chunks/{config-Dcb7xK-C.js.map → config-B3dn-gdC.js.map} +1 -1
- package/dist/chunks/{config-D6Oe3blW2.js.map → config-BLa1TEGm2.js.map} +1 -1
- package/dist/chunks/{config-Dzd6BzIN2.js.map → config-BeBsN0c12.js.map} +1 -1
- package/dist/chunks/{config-BU0olrvr.js.map → config-Bh4NWWsQ.js.map} +1 -1
- package/dist/chunks/{config-BeQuykDk2.js.map → config-BuoIngj32.js.map} +1 -1
- package/dist/chunks/{config-BbKroFtR.js.map → config-C5-ujXCI.js.map} +1 -1
- package/dist/chunks/{config-BY81UKv0.js → config-C8MM2Dg0.js} +1 -1
- package/dist/chunks/{config-BY81UKv0.js.map → config-C8MM2Dg0.js.map} +1 -1
- package/dist/chunks/{config-DF_RlCIO.js.map → config-CPSdAjUi.js.map} +1 -1
- package/dist/chunks/{config-iuMz79Mg.js.map → config-CWTfyPNI.js.map} +1 -1
- package/dist/chunks/{config-Br_qI3Za.js → config-C_egzT_K.js} +2 -2
- package/dist/chunks/config-C_egzT_K.js.map +1 -0
- package/dist/chunks/{config-Ci9nXGUV.js.map → config-C_q_4FrU.js.map} +1 -1
- package/dist/chunks/{config-O1_FTqD3.js.map → config-CzgNEHKi.js.map} +1 -1
- package/dist/chunks/{config-Bcf-8XlK2.js.map → config-DDUPnue12.js.map} +1 -1
- package/dist/chunks/{config-DmjwIqx1.js.map → config-DDwBSoc_.js.map} +1 -1
- package/dist/chunks/{config-C5OwJM3-.js → config-DRpkoSvq.js} +1 -1
- package/dist/chunks/{config-C5OwJM3-.js.map → config-DRpkoSvq.js.map} +1 -1
- package/dist/chunks/{config-DaHI5bD_2.js.map → config-DZrlovR42.js.map} +1 -1
- package/dist/chunks/{config-72sW9Bag2.js.map → config-D_Pafsjq2.js.map} +1 -1
- package/dist/chunks/{config-B1kFmhpM.js.map → config-DhQc1TRY.js.map} +1 -1
- package/dist/chunks/{config-CetsgpaZ2.js.map → config-DkeLkzxj2.js.map} +1 -1
- package/dist/chunks/{config-BOdu-O_B.js.map → config-Dl5aZ5VR.js.map} +1 -1
- package/dist/chunks/{config-CvGdaXvH.js.map → config-Doa_gU40.js.map} +1 -1
- package/dist/chunks/{config-CdJpnjDj.js.map → config-DvDNney3.js.map} +1 -1
- package/dist/chunks/{config-CpMYmvVT.js.map → config-NkbzVFZo.js.map} +1 -1
- package/dist/chunks/{config-_3De4HFf.js.map → config-RjfJFv1Y.js.map} +1 -1
- package/dist/chunks/{config-DoBk_CzG.js.map → config-VJuoznpH.js.map} +1 -1
- package/dist/chunks/{config-BnWSHTEU.js.map → config-XspHtPsU.js.map} +1 -1
- package/dist/chunks/{config-B2YTEe_h.js.map → config-hSlCXHoG.js.map} +1 -1
- package/dist/chunks/{config-DSBlHQVa.js.map → config-lMDE_8A5.js.map} +1 -1
- package/dist/chunks/{config-Cp_XHsze.js.map → config-nrOj9p6I.js.map} +1 -1
- package/dist/chunks/{en-foQA8imU.js → en-B_fSdoTi.js} +9 -2
- package/dist/chunks/en-B_fSdoTi.js.map +1 -0
- package/dist/chunks/{es-Bx3Kuy6z.js → es-CISK11Nv.js} +3 -3
- package/dist/chunks/{es-Bx3Kuy6z.js.map → es-CISK11Nv.js.map} +1 -1
- package/dist/chunks/{es-DZFSojYL.js → es-DKP6fLir.js} +9 -2
- package/dist/chunks/es-DKP6fLir.js.map +1 -0
- package/dist/chunks/{grDropdownStyles-B41mVR1H.js → grDropdownStyles-Bqx9hOzU.js} +10 -7
- package/dist/chunks/grDropdownStyles-Bqx9hOzU.js.map +1 -0
- package/dist/chunks/{grModalStyles-DS1Vl6EW.js → grModalStyles-FgaKqx50.js} +1 -1
- package/dist/chunks/grModalStyles-FgaKqx50.js.map +1 -0
- package/dist/chunks/{grSelectStyles-pUt19VGy.js.map → grSelectStyles-AjWWl007.js.map} +1 -1
- package/dist/chunks/{grStyle-CUaTmpyW.js.map → grStyle-D-gPHdyW.js.map} +1 -1
- package/dist/chunks/{granularityI18n-LcJ88Vce.js → granularityI18n-D_7jowK2.js} +17 -2
- package/dist/chunks/granularityI18n-D_7jowK2.js.map +1 -0
- package/dist/chunks/{ru-LhkPpPIl.js → ru-S6VlnurJ.js} +9 -2
- package/dist/chunks/ru-S6VlnurJ.js.map +1 -0
- package/dist/chunks/{shared-BiqXd5MW.js → shared-DpjTvFno.js} +34 -34
- package/dist/chunks/{shared-BiqXd5MW.js.map → shared-DpjTvFno.js.map} +1 -1
- package/dist/chunks/useFloating-CLtbU7eD.js +1234 -0
- package/dist/chunks/useFloating-CLtbU7eD.js.map +1 -0
- package/dist/components/GrConfirmDialog/chunks/{GrConfirmDialog-Br6WJkLE.js → GrConfirmDialog-Bi2KLumL.js} +2 -2
- package/dist/components/GrConfirmDialog/chunks/{GrConfirmDialog-Br6WJkLE.js.map → GrConfirmDialog-Bi2KLumL.js.map} +1 -1
- package/dist/components/GrConfirmDialog/index.js +1 -1
- package/dist/components/GrDialog/chunks/{GrDialog-C7XLxp8e.js → GrDialog-CxK4Lj4F.js} +1 -1
- package/dist/components/GrDialog/chunks/{GrDialog-C7XLxp8e.js.map → GrDialog-CxK4Lj4F.js.map} +1 -1
- package/dist/components/GrDialog/index.js +1 -1
- package/dist/components/GrDropdown/chunks/{GrDropdown-DOvHKnih.js → GrDropdown-BGKeEfZ1.js} +13 -59
- package/dist/components/GrDropdown/chunks/GrDropdown-BGKeEfZ1.js.map +1 -0
- package/dist/components/GrDropdown/index.js +2 -2
- package/dist/components/GrDropdownMenu/chunks/{GrDropdownMenu-CLPwbiyG.js → GrDropdownMenu-CJom_-c2.js} +1 -1
- package/dist/components/GrDropdownMenu/chunks/{GrDropdownMenu-CLPwbiyG.js.map → GrDropdownMenu-CJom_-c2.js.map} +1 -1
- package/dist/components/GrDropdownMenu/index.js +2 -2
- package/dist/components/GrEmptyState/chunks/{GrEmptyState-Dj2V5GaX.js.map → GrEmptyState-yOuZW7-t.js.map} +1 -1
- package/dist/components/GrEmptyState/index.js +2 -2
- package/dist/components/GrFileUpload/chunks/{GrFileUpload-BEKNB1RM.js → GrFileUpload-CBKK3dgC.js} +1 -1
- package/dist/components/GrFileUpload/chunks/{GrFileUpload-BEKNB1RM.js.map → GrFileUpload-CBKK3dgC.js.map} +1 -1
- package/dist/components/GrFileUpload/index.js +2 -2
- package/dist/components/GrFormField/index.js +1 -1
- package/dist/components/GrFormFile/chunks/{GrFormFile-CIleXnfr.js.map → GrFormFile-CkR6cYqf.js.map} +1 -1
- package/dist/components/GrFormFile/index.js +2 -2
- package/dist/components/GrFormSection/chunks/{GrFormSection-DpGhY7MX.js.map → GrFormSection-dbyzqxYk.js.map} +1 -1
- package/dist/components/GrFormSection/index.js +2 -2
- package/dist/components/GrImageViewer/chunks/{GrImageViewer-CsvXQHM9.js.map → GrImageViewer-BG40DsHa.js.map} +1 -1
- package/dist/components/GrImageViewer/index.js +2 -2
- package/dist/components/GrInput/index.js +1 -1
- package/dist/components/GrInputTag/chunks/{GrInputTag-Dcj3F6rQ.js → GrInputTag-g-KdUI_Z.js} +1 -1
- package/dist/components/GrInputTag/chunks/{GrInputTag-Dcj3F6rQ.js.map → GrInputTag-g-KdUI_Z.js.map} +1 -1
- package/dist/components/GrInputTag/index.js +2 -2
- package/dist/components/GrLink/chunks/{GrLink-BMwn2iJ9.js → GrLink-KSTmk9Yq.js} +1 -1
- package/dist/components/GrLink/chunks/{GrLink-BMwn2iJ9.js.map → GrLink-KSTmk9Yq.js.map} +1 -1
- package/dist/components/GrLink/index.js +2 -2
- package/dist/components/GrList/chunks/{GrList-D8nM1FuV.js.map → GrList-CUW2sRm_.js.map} +1 -1
- package/dist/components/GrList/index.js +2 -2
- package/dist/components/GrLoading/index.js +1 -1
- package/dist/components/GrModal/chunks/{GrModal-lh0lOmoi.js → GrModal-CSOL3fHQ.js} +1 -1
- package/dist/components/GrModal/chunks/{GrModal-lh0lOmoi.js.map → GrModal-CSOL3fHQ.js.map} +1 -1
- package/dist/components/GrModal/index.js +3 -3
- package/dist/components/GrNavbar/chunks/{GrNavbar-BH7XiF9q.js → GrNavbar-CHxwtFIR.js} +1 -1
- package/dist/components/GrNavbar/chunks/{GrNavbar-BH7XiF9q.js.map → GrNavbar-CHxwtFIR.js.map} +1 -1
- package/dist/components/GrNavbar/index.js +2 -2
- package/dist/components/GrNumberInput/chunks/{GrNumberInput-YIWhV85S.js → GrNumberInput-ClPBwkxx.js} +1 -1
- package/dist/components/GrNumberInput/chunks/{GrNumberInput-YIWhV85S.js.map → GrNumberInput-ClPBwkxx.js.map} +1 -1
- package/dist/components/GrNumberInput/index.js +2 -2
- package/dist/components/GrPagination/chunks/{GrPagination-BNDEqM8_.js → GrPagination-D2GS0ShQ.js} +4 -4
- package/dist/components/GrPagination/chunks/GrPagination-D2GS0ShQ.js.map +1 -0
- package/dist/components/GrPagination/index.js +2 -2
- package/dist/components/GrProgressBar/chunks/{GrProgressBar-C2HdYjp4.js → GrProgressBar-BBSFpVEq.js} +1 -1
- package/dist/components/GrProgressBar/chunks/{GrProgressBar-C2HdYjp4.js.map → GrProgressBar-BBSFpVEq.js.map} +1 -1
- package/dist/components/GrProgressBar/index.js +2 -2
- package/dist/components/GrPromptDialog/chunks/{GrPromptDialog-BV4EW3XO.js → GrPromptDialog-D_TFqKsF.js} +2 -2
- package/dist/components/GrPromptDialog/chunks/{GrPromptDialog-BV4EW3XO.js.map → GrPromptDialog-D_TFqKsF.js.map} +1 -1
- package/dist/components/GrPromptDialog/index.js +2 -2
- package/dist/components/GrRadio/chunks/{GrRadio-IFU9Hiu2.js → GrRadio-CSbTnrom.js} +1 -1
- package/dist/components/GrRadio/chunks/{GrRadio-IFU9Hiu2.js.map → GrRadio-CSbTnrom.js.map} +1 -1
- package/dist/components/GrRadio/index.js +2 -2
- package/dist/components/GrRadioGroup/chunks/{GrRadioGroup-C8IcJuuF.js → GrRadioGroup-DsrnTygR.js} +1 -1
- package/dist/components/GrRadioGroup/chunks/{GrRadioGroup-C8IcJuuF.js.map → GrRadioGroup-DsrnTygR.js.map} +1 -1
- package/dist/components/GrRadioGroup/index.js +2 -2
- package/dist/components/GrResponseErrorBanner/chunks/{GrResponseErrorBanner-BMvXREcv.js → GrResponseErrorBanner-K1uZ1mYD.js} +1 -1
- package/dist/components/GrResponseErrorBanner/chunks/{GrResponseErrorBanner-BMvXREcv.js.map → GrResponseErrorBanner-K1uZ1mYD.js.map} +1 -1
- package/dist/components/GrResponseErrorBanner/chunks/{GrResponseErrorBanner-CzdTh4gd.js → GrResponseErrorBanner-bM8FC_Bw.js} +1 -1
- package/dist/components/GrResponseErrorBanner/chunks/{GrResponseErrorBanner-CzdTh4gd.js.map → GrResponseErrorBanner-bM8FC_Bw.js.map} +1 -1
- package/dist/components/GrResponseErrorBanner/index.js +2 -2
- package/dist/components/GrSegmented/chunks/{GrSegmented-BRmwBsEG.js → GrSegmented-DpZGs4VX.js} +1 -1
- package/dist/components/GrSegmented/chunks/{GrSegmented-BRmwBsEG.js.map → GrSegmented-DpZGs4VX.js.map} +1 -1
- package/dist/components/GrSegmented/index.js +2 -2
- package/dist/components/GrSelect/chunks/{GrSelect-CnHdbPlf.js → GrSelect-DSz7jvUb.js} +25 -51
- package/dist/components/GrSelect/chunks/GrSelect-DSz7jvUb.js.map +1 -0
- package/dist/components/GrSelect/index.js +2 -2
- package/dist/components/GrSidebar/chunks/{GrSidebar-BpBtAGBs.js.map → GrSidebar-BW8LRMZ-.js.map} +1 -1
- package/dist/components/GrSidebar/index.js +2 -2
- package/dist/components/GrSkeleton/chunks/{GrSkeleton-URyMkBqI.js.map → GrSkeleton-B05K0QKh.js.map} +1 -1
- package/dist/components/GrSkeleton/index.js +2 -2
- package/dist/components/GrSwitch/chunks/{GrSwitch-29h0QhMO.js → GrSwitch-CSRtcN5-.js} +1 -1
- package/dist/components/GrSwitch/chunks/{GrSwitch-29h0QhMO.js.map → GrSwitch-CSRtcN5-.js.map} +1 -1
- package/dist/components/GrSwitch/index.js +2 -2
- package/dist/components/GrTable/index.js +1 -1
- package/dist/components/GrTabs/chunks/{GrTabs-D3ntDdtg.js.map → GrTabs-BfeVNMFJ.js.map} +1 -1
- package/dist/components/GrTabs/index.js +2 -2
- package/dist/components/GrTextarea/chunks/{GrTextarea-Cv6r2GuC.js → GrTextarea-CBBzpF2S.js} +1 -1
- package/dist/components/GrTextarea/chunks/{GrTextarea-Cv6r2GuC.js.map → GrTextarea-CBBzpF2S.js.map} +1 -1
- package/dist/components/GrTextarea/index.js +2 -2
- package/dist/components/GrToaster/chunks/{GrToaster-DluJmR5D.js → GrToaster-C6_iHk2J.js} +4 -3
- package/dist/components/GrToaster/chunks/GrToaster-C6_iHk2J.js.map +1 -0
- package/dist/components/GrToaster/index.js +2 -2
- package/dist/components/GrTooltip/chunks/GrTooltip-BC-40SA5.js +109 -0
- package/dist/components/GrTooltip/chunks/GrTooltip-BC-40SA5.js.map +1 -0
- package/dist/components/GrTooltip/index.js +2 -2
- package/dist/components/GrTree/chunks/{GrTree-B2SMU5Py.js.map → GrTree-uZr5SyQI.js.map} +1 -1
- package/dist/components/GrTree/index.js +2 -2
- package/dist/components/GrTreeSelect/chunks/{GrTreeSelect-C1abr5uH.js → GrTreeSelect-CytivcCa.js} +9 -37
- package/dist/components/GrTreeSelect/chunks/GrTreeSelect-CytivcCa.js.map +1 -0
- package/dist/components/GrTreeSelect/index.js +2 -2
- package/dist/granular-provider-node.js +2 -2
- package/dist/granular-provider.js +1 -1
- package/dist/i18n/all.js +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/index.js +67 -67
- 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 +1 -1
- package/dist/types/src/components/GrLink/GrLink.vue.d.ts +1 -1
- package/dist/types/src/components/GrModal/grModalStyles.d.ts +1 -1
- package/dist/types/src/components/GrSegmented/GrSegmented.vue.d.ts +1 -1
- package/dist/types/src/components/GrSelect/GrSelect.vue.d.ts +6 -6
- package/dist/types/src/composables/internal/useFloating.d.ts +53 -0
- package/dist/types/src/i18n/messages/en.d.ts +12 -0
- package/dist/types/src/i18n/messages/es.d.ts +12 -0
- package/dist/types/src/i18n/messages/ru.d.ts +12 -0
- package/package.json +9 -1
- package/dist/chunks/config-Br_qI3Za.js.map +0 -1
- package/dist/chunks/en-foQA8imU.js.map +0 -1
- package/dist/chunks/es-DZFSojYL.js.map +0 -1
- package/dist/chunks/grDropdownStyles-B41mVR1H.js.map +0 -1
- package/dist/chunks/grModalStyles-DS1Vl6EW.js.map +0 -1
- package/dist/chunks/granularityI18n-LcJ88Vce.js.map +0 -1
- package/dist/chunks/ru-LhkPpPIl.js.map +0 -1
- package/dist/components/GrDropdown/chunks/GrDropdown-DOvHKnih.js.map +0 -1
- package/dist/components/GrPagination/chunks/GrPagination-BNDEqM8_.js.map +0 -1
- package/dist/components/GrSelect/chunks/GrSelect-CnHdbPlf.js.map +0 -1
- 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/GrTreeSelect/chunks/GrTreeSelect-C1abr5uH.js.map +0 -1
- /package/dist/chunks/{config-d386uO3O.js → config-58Mj2rGH.js} +0 -0
- /package/dist/chunks/{config-D4s_QWVP.js → config-8f8624RN.js} +0 -0
- /package/dist/chunks/{config-B_nSBc7W.js → config-A-iei0Ux.js} +0 -0
- /package/dist/chunks/{config-Dcb7xK-C.js → config-B3dn-gdC.js} +0 -0
- /package/dist/chunks/{config-D6Oe3blW2.js → config-BLa1TEGm2.js} +0 -0
- /package/dist/chunks/{config-Dzd6BzIN2.js → config-BeBsN0c12.js} +0 -0
- /package/dist/chunks/{config-BU0olrvr.js → config-Bh4NWWsQ.js} +0 -0
- /package/dist/chunks/{config-BeQuykDk2.js → config-BuoIngj32.js} +0 -0
- /package/dist/chunks/{config-BbKroFtR.js → config-C5-ujXCI.js} +0 -0
- /package/dist/chunks/{config-DF_RlCIO.js → config-CPSdAjUi.js} +0 -0
- /package/dist/chunks/{config-iuMz79Mg.js → config-CWTfyPNI.js} +0 -0
- /package/dist/chunks/{config-Ci9nXGUV.js → config-C_q_4FrU.js} +0 -0
- /package/dist/chunks/{config-O1_FTqD3.js → config-CzgNEHKi.js} +0 -0
- /package/dist/chunks/{config-Bcf-8XlK2.js → config-DDUPnue12.js} +0 -0
- /package/dist/chunks/{config-DmjwIqx1.js → config-DDwBSoc_.js} +0 -0
- /package/dist/chunks/{config-DaHI5bD_2.js → config-DZrlovR42.js} +0 -0
- /package/dist/chunks/{config-72sW9Bag2.js → config-D_Pafsjq2.js} +0 -0
- /package/dist/chunks/{config-B1kFmhpM.js → config-DhQc1TRY.js} +0 -0
- /package/dist/chunks/{config-CetsgpaZ2.js → config-DkeLkzxj2.js} +0 -0
- /package/dist/chunks/{config-BOdu-O_B.js → config-Dl5aZ5VR.js} +0 -0
- /package/dist/chunks/{config-CvGdaXvH.js → config-Doa_gU40.js} +0 -0
- /package/dist/chunks/{config-CdJpnjDj.js → config-DvDNney3.js} +0 -0
- /package/dist/chunks/{config-CpMYmvVT.js → config-NkbzVFZo.js} +0 -0
- /package/dist/chunks/{config-_3De4HFf.js → config-RjfJFv1Y.js} +0 -0
- /package/dist/chunks/{config-DoBk_CzG.js → config-VJuoznpH.js} +0 -0
- /package/dist/chunks/{config-BnWSHTEU.js → config-XspHtPsU.js} +0 -0
- /package/dist/chunks/{config-B2YTEe_h.js → config-hSlCXHoG.js} +0 -0
- /package/dist/chunks/{config-DSBlHQVa.js → config-lMDE_8A5.js} +0 -0
- /package/dist/chunks/{config-Cp_XHsze.js → config-nrOj9p6I.js} +0 -0
- /package/dist/chunks/{grSelectStyles-pUt19VGy.js → grSelectStyles-AjWWl007.js} +0 -0
- /package/dist/chunks/{grStyle-CUaTmpyW.js → grStyle-D-gPHdyW.js} +0 -0
- /package/dist/components/GrEmptyState/chunks/{GrEmptyState-Dj2V5GaX.js → GrEmptyState-yOuZW7-t.js} +0 -0
- /package/dist/components/GrFormFile/chunks/{GrFormFile-CIleXnfr.js → GrFormFile-CkR6cYqf.js} +0 -0
- /package/dist/components/GrFormSection/chunks/{GrFormSection-DpGhY7MX.js → GrFormSection-dbyzqxYk.js} +0 -0
- /package/dist/components/GrImageViewer/chunks/{GrImageViewer-CsvXQHM9.js → GrImageViewer-BG40DsHa.js} +0 -0
- /package/dist/components/GrList/chunks/{GrList-D8nM1FuV.js → GrList-CUW2sRm_.js} +0 -0
- /package/dist/components/GrSidebar/chunks/{GrSidebar-BpBtAGBs.js → GrSidebar-BW8LRMZ-.js} +0 -0
- /package/dist/components/GrSkeleton/chunks/{GrSkeleton-URyMkBqI.js → GrSkeleton-B05K0QKh.js} +0 -0
- /package/dist/components/GrTabs/chunks/{GrTabs-D3ntDdtg.js → GrTabs-BfeVNMFJ.js} +0 -0
- /package/dist/components/GrTree/chunks/{GrTree-B2SMU5Py.js → GrTree-uZr5SyQI.js} +0 -0
package/dist/components/GrTreeSelect/chunks/{GrTreeSelect-C1abr5uH.js → GrTreeSelect-CytivcCa.js}
RENAMED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { t as useGranularityTranslations } from "../../../chunks/granularityI18n-
|
|
1
|
+
import { t as useGranularityTranslations } from "../../../chunks/granularityI18n-D_7jowK2.js";
|
|
2
2
|
import { t as GrInput_default } from "../../GrInput/chunks/GrInput-gwFQ1sk4.js";
|
|
3
3
|
import { vClickOutside } from "../../../directives/clickOutside.js";
|
|
4
|
-
import { t as
|
|
5
|
-
import {
|
|
4
|
+
import { t as useFloating } from "../../../chunks/useFloating-CLtbU7eD.js";
|
|
5
|
+
import { t as GrTree_default } from "../../GrTree/chunks/GrTree-uZr5SyQI.js";
|
|
6
|
+
import { i as grTreeSelectPanelClass, r as grTreeSelectClass } from "../../../chunks/config-D_Pafsjq2.js";
|
|
6
7
|
import { Teleport, Transition, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, nextTick, normalizeClass, normalizeStyle, onUnmounted, openBlock, ref, renderSlot, toDisplayString, unref, vShow, watch, withCtx, withDirectives, withModifiers } from "vue";
|
|
7
8
|
//#region src/components/GrTreeSelect/GrTreeSelect.vue?vue&type=script&setup=true&lang.ts
|
|
8
9
|
var _hoisted_1 = { class: "relative" };
|
|
@@ -103,34 +104,11 @@ var GrTreeSelect_default = /* @__PURE__ */ defineComponent({
|
|
|
103
104
|
let hadPointerDownOnTrigger = false;
|
|
104
105
|
const open = ref(false);
|
|
105
106
|
const filterValue = ref("");
|
|
106
|
-
const
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
zIndex: "2147483647"
|
|
107
|
+
const { floatingStyle } = useFloating(rootEl, panelEl, open, {
|
|
108
|
+
placement: "bottom-start",
|
|
109
|
+
matchWidth: true,
|
|
110
|
+
zIndexVar: "--gr-z-dropdown"
|
|
111
111
|
});
|
|
112
|
-
function syncPanelPosition() {
|
|
113
|
-
if (typeof window === "undefined") return;
|
|
114
|
-
const root = rootEl.value;
|
|
115
|
-
if (!root) return;
|
|
116
|
-
const rect = root.getBoundingClientRect();
|
|
117
|
-
panelStyle.value = {
|
|
118
|
-
left: `${rect.left}px`,
|
|
119
|
-
top: `${rect.bottom + 8}px`,
|
|
120
|
-
width: `${rect.width}px`,
|
|
121
|
-
zIndex: "2147483647"
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
function bindPanelPositionListeners() {
|
|
125
|
-
if (typeof window === "undefined") return;
|
|
126
|
-
window.addEventListener("resize", syncPanelPosition);
|
|
127
|
-
window.addEventListener("scroll", syncPanelPosition, true);
|
|
128
|
-
}
|
|
129
|
-
function unbindPanelPositionListeners() {
|
|
130
|
-
if (typeof window === "undefined") return;
|
|
131
|
-
window.removeEventListener("resize", syncPanelPosition);
|
|
132
|
-
window.removeEventListener("scroll", syncPanelPosition, true);
|
|
133
|
-
}
|
|
134
112
|
const closeOnSelectResolved = computed(() => {
|
|
135
113
|
return props.closeOnSelect ?? !props.multiple;
|
|
136
114
|
});
|
|
@@ -266,12 +244,8 @@ var GrTreeSelect_default = /* @__PURE__ */ defineComponent({
|
|
|
266
244
|
watch(open, async (isOpen) => {
|
|
267
245
|
if (typeof document === "undefined") return;
|
|
268
246
|
document.removeEventListener("keydown", closeOnEscape);
|
|
269
|
-
unbindPanelPositionListeners();
|
|
270
247
|
if (isOpen) document.addEventListener("keydown", closeOnEscape);
|
|
271
248
|
if (!isOpen) return;
|
|
272
|
-
bindPanelPositionListeners();
|
|
273
|
-
await nextTick();
|
|
274
|
-
syncPanelPosition();
|
|
275
249
|
if (!props.multiple) {
|
|
276
250
|
const v = props.modelValue;
|
|
277
251
|
if (v != null && !Array.isArray(v)) treeRef.value?.setCurrentKey(v);
|
|
@@ -284,7 +258,6 @@ var GrTreeSelect_default = /* @__PURE__ */ defineComponent({
|
|
|
284
258
|
onUnmounted(() => {
|
|
285
259
|
if (typeof document === "undefined") return;
|
|
286
260
|
document.removeEventListener("keydown", closeOnEscape);
|
|
287
|
-
unbindPanelPositionListeners();
|
|
288
261
|
});
|
|
289
262
|
watch(() => props.modelValue, (v) => {
|
|
290
263
|
if (props.multiple) return;
|
|
@@ -392,8 +365,7 @@ var GrTreeSelect_default = /* @__PURE__ */ defineComponent({
|
|
|
392
365
|
ref: panelEl,
|
|
393
366
|
"data-testid": "ds-tree-select-panel",
|
|
394
367
|
"data-ds-tree-select-panel": "",
|
|
395
|
-
|
|
396
|
-
style: normalizeStyle(panelStyle.value)
|
|
368
|
+
style: normalizeStyle(unref(floatingStyle))
|
|
397
369
|
}, [createElementVNode("div", { class: normalizeClass(panelClasses.value) }, [__props.filterable ? (openBlock(), createElementBlock("div", _hoisted_6, [createVNode(GrInput_default, {
|
|
398
370
|
ref_key: "filterInputRef",
|
|
399
371
|
ref: filterInputRef,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GrTreeSelect-CytivcCa.js","names":["$slots"],"sources":["../../../../src/components/GrTreeSelect/GrTreeSelect.vue","../../../../src/components/GrTreeSelect/GrTreeSelect.vue"],"sourcesContent":["<script setup lang=\"ts\" generic=\"T extends Record<string, any> = any\">\nimport { computed, nextTick, onUnmounted, ref, watch } from 'vue'\n\nimport { vClickOutside } from '../../directives'\nimport { useFloating } from '../../composables/internal/useFloating'\nimport { useGranularityTranslations } from '../../internal/granularityI18n'\nimport GrInput from '../GrInput/GrInput.vue'\nimport GrTree, {\n type GrTreeInstance,\n type GrTreeKey,\n type GrTreeNode,\n} from '../GrTree'\nimport type { GrTreeSelectModelValue, GrTreeSelectProps } from './grTreeSelectTypes'\nimport { grTreeSelectClass, grTreeSelectPanelClass } from './grTreeSelectStyles'\n\nconst props = withDefaults(\n defineProps<GrTreeSelectProps<T>>(),\n {\n props: () => ({\n children: 'children',\n label: 'label',\n }),\n nodeKey: 'id' as any,\n defaultExpandedKeys: () => [],\n disabled: false,\n placeholder: undefined,\n size: 'md',\n invalid: false,\n state: 'default',\n multiple: false,\n clearable: false,\n valueDisplay: 'label',\n filterable: false,\n filterPlaceholder: undefined,\n filterInputmode: undefined,\n filterNodeMethod: undefined,\n closeOnSelect: undefined,\n dropdownMaxHeight: 320,\n },\n)\n\nconst { t } = useGranularityTranslations()\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: GrTreeSelectModelValue): void\n (e: 'change', value: GrTreeSelectModelValue): void\n (e: 'visibleChange', visible: boolean): void\n (e: 'clear'): void\n (e: 'nodeClick', data: T, node: GrTreeNode<T>): void\n}>()\n\ndefineSlots<{\n /** Рендер значения внутри триггера (вместо дефолтного текста). */\n value?: (props: { value: GrTreeSelectModelValue; labels: string[]; displayValue: string; pathLabels?: string[] }) => any\n /** Рендер строки дерева. */\n node?: (props: { node: GrTreeNode<T>; data: T; selected: boolean }) => any\n /** Содержимое пустого состояния (когда нет данных). */\n empty?: () => any\n}>()\n\nconst rootEl = ref<HTMLElement | null>(null)\nconst triggerEl = ref<HTMLInputElement | null>(null)\nconst filterInputRef = ref<InstanceType<typeof GrInput> | null>(null)\nconst treeRef = ref<GrTreeInstance | null>(null)\nconst panelEl = ref<HTMLElement | null>(null)\n\nconst clickOutsideExclude = [() => panelEl.value]\n\nlet hadPointerDownOnTrigger = false\n\nconst open = ref(false)\nconst filterValue = ref('')\n\nconst { floatingStyle } = useFloating(rootEl, panelEl, open, {\n placement: 'bottom-start',\n matchWidth: true,\n zIndexVar: '--gr-z-dropdown',\n})\n\nconst closeOnSelectResolved = computed(() => {\n return props.closeOnSelect ?? !props.multiple\n})\n\nfunction getChildrenKey() {\n return props.props.children ?? 'children'\n}\n\nfunction getLabelKey() {\n return props.props.label ?? 'label'\n}\n\nfunction nodeLabel(data: T): string {\n const key = getLabelKey() as keyof T\n const v = data[key]\n return v == null ? '' : String(v)\n}\n\nfunction nodeChildren(data: T): T[] {\n const key = getChildrenKey() as keyof T\n const v = data[key]\n return Array.isArray(v) ? (v as any) : []\n}\n\nfunction nodeKeyOf(data: T, index: number, parentKey: GrTreeKey | undefined): GrTreeKey {\n const keyName = props.nodeKey as keyof T\n const v = data[keyName]\n if (v != null)\n return v as GrTreeKey\n\n return parentKey == null ? index : `${String(parentKey)}:${index}`\n}\n\nconst labelByKey = computed(() => {\n const map = new Map<GrTreeKey, string>()\n\n const walk = (items: T[], parentKey: GrTreeKey | undefined) => {\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n const key = nodeKeyOf(item, i, parentKey)\n map.set(key, nodeLabel(item))\n walk(nodeChildren(item), key)\n }\n }\n\n walk(props.data ?? [], undefined)\n return map\n})\n\nconst pathLabelsByKey = computed(() => {\n const map = new Map<GrTreeKey, string[]>()\n\n const walk = (items: T[], parentKey: GrTreeKey | undefined, parentPath: string[]) => {\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n const key = nodeKeyOf(item, i, parentKey)\n const label = nodeLabel(item)\n const path = [...parentPath, label]\n map.set(key, path)\n walk(nodeChildren(item), key, path)\n }\n }\n\n walk(props.data ?? [], undefined, [])\n return map\n})\n\nconst selectedKeys = computed<GrTreeKey[]>(() => {\n if (props.multiple) {\n return Array.isArray(props.modelValue) ? props.modelValue : []\n }\n\n const v = props.modelValue\n if (v == null || Array.isArray(v))\n return []\n return [v]\n})\n\nconst selectedKeySet = computed(() => new Set(selectedKeys.value))\n\nconst selectedLabels = computed(() => {\n const map = labelByKey.value\n return selectedKeys.value.map((k) => map.get(k) ?? String(k))\n})\n\nconst selectedPathLabels = computed<string[] | undefined>(() => {\n if (props.multiple)\n return undefined\n\n const key = selectedKeys.value[0]\n if (key == null)\n return undefined\n\n const path = pathLabelsByKey.value.get(key)\n if (path?.length)\n return path\n\n const labels = selectedLabels.value\n return labels.length ? [labels[0]] : undefined\n})\n\nconst displayValue = computed(() => {\n const labels = selectedLabels.value\n if (labels.length === 0)\n return ''\n\n if (!props.multiple) {\n if (props.valueDisplay === 'path') {\n const path = selectedPathLabels.value\n if (path?.length)\n return path.join(' / ')\n }\n return labels[0]\n }\n\n if (labels.length === 1)\n return labels[0]\n return `${labels[0]} +${labels.length - 1}`\n})\n\nconst hasSelection = computed(() => selectedKeys.value.length > 0)\n\nconst resolvedFilterPlaceholder = computed(() => {\n return props.filterPlaceholder ?? t('gr.treeSelect.filterPlaceholder', 'Search…')\n})\n\nconst className = computed(() => {\n return grTreeSelectClass({\n size: props.size,\n state: props.state,\n invalid: props.invalid,\n })\n})\n\nconst panelClasses = computed(() => {\n return grTreeSelectPanelClass\n})\n\nfunction setOpen(next: boolean) {\n if (props.disabled)\n return\n\n if (open.value === next)\n return\n\n open.value = next\n emit('visibleChange', next)\n}\n\nfunction onClickOutside(): void {\n setOpen(false)\n}\n\nfunction openDropdown(): void {\n setOpen(true)\n}\n\nfunction closeDropdown(): void {\n setOpen(false)\n}\n\nfunction toggleDropdown(): void {\n setOpen(!open.value)\n}\n\nfunction onTriggerPointerDown(): void {\n hadPointerDownOnTrigger = true\n if (typeof window !== 'undefined') {\n window.setTimeout(() => {\n hadPointerDownOnTrigger = false\n }, 0)\n }\n else {\n // SSR / no window: reset sync\n hadPointerDownOnTrigger = false\n }\n}\n\nfunction onTriggerFocus(): void {\n if (hadPointerDownOnTrigger)\n return\n openDropdown()\n}\n\nfunction closeOnEscape(e: KeyboardEvent): void {\n if (e.key === 'Escape') {\n closeDropdown()\n nextTick(() => triggerEl.value?.focus())\n }\n}\n\nwatch(\n open,\n async (isOpen) => {\n if (typeof document === 'undefined')\n return\n\n document.removeEventListener('keydown', closeOnEscape)\n\n if (isOpen)\n document.addEventListener('keydown', closeOnEscape)\n\n if (!isOpen)\n return\n\n // sync tree highlight\n if (!props.multiple) {\n const v = props.modelValue\n if (v != null && !Array.isArray(v))\n treeRef.value?.setCurrentKey(v)\n }\n\n // focus filter input\n if (props.filterable) {\n await nextTick()\n filterInputRef.value?.focus()\n }\n },\n { immediate: true },\n)\n\nonUnmounted(() => {\n if (typeof document === 'undefined')\n return\n document.removeEventListener('keydown', closeOnEscape)\n})\n\nwatch(\n () => props.modelValue,\n (v) => {\n if (props.multiple)\n return\n if (v == null || Array.isArray(v)) {\n treeRef.value?.setCurrentKey(undefined)\n return\n }\n treeRef.value?.setCurrentKey(v)\n },\n)\n\nwatch(\n filterValue,\n (v) => {\n treeRef.value?.filter(v)\n },\n)\n\nwatch(\n open,\n (isOpen) => {\n if (isOpen)\n return\n if (filterValue.value.trim().length > 0)\n filterValue.value = ''\n },\n)\n\nfunction emitModel(next: GrTreeSelectModelValue) {\n emit('update:modelValue', next)\n emit('change', next)\n}\n\nfunction clear(): void {\n if (props.disabled)\n return\n\n const next: GrTreeSelectModelValue = props.multiple ? [] : null\n emitModel(next)\n emit('clear')\n if (!props.multiple)\n treeRef.value?.setCurrentKey(undefined)\n}\n\nfunction onTriggerKeydown(e: KeyboardEvent): void {\n if (props.disabled)\n return\n\n if (e.key === 'ArrowDown' || e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n openDropdown()\n }\n if (e.key === 'Escape') {\n e.preventDefault()\n closeDropdown()\n }\n}\n\nfunction onNodeClick(data: T, node: GrTreeNode<T>): void {\n emit('nodeClick', data, node)\n\n if (props.disabled)\n return\n\n if (props.multiple) {\n const next = new Set(selectedKeySet.value)\n if (next.has(node.key))\n next.delete(node.key)\n else\n next.add(node.key)\n emitModel([...next])\n\n if (closeOnSelectResolved.value) {\n closeDropdown()\n }\n return\n }\n\n emitModel(node.key)\n if (closeOnSelectResolved.value) {\n closeDropdown()\n }\n}\n</script>\n\n<template>\n <div\n ref=\"rootEl\"\n v-click-outside=\"{ handler: onClickOutside, enabled: open, exclude: clickOutsideExclude }\"\n data-ds-tree-select\n class=\"relative\"\n >\n <div class=\"relative\">\n <input\n ref=\"triggerEl\"\n data-testid=\"ds-tree-select-trigger\"\n data-ds-tree-select-trigger\n type=\"text\"\n :value=\"displayValue\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n readonly\n role=\"combobox\"\n aria-readonly=\"true\"\n :aria-expanded=\"open ? 'true' : 'false'\"\n :aria-invalid=\"invalid ? 'true' : undefined\"\n class=\"w-full rounded-md border bg-[var(--bg)] text-[var(--fg)] placeholder:text-[var(--muted-fg)] transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] disabled:opacity-50 disabled:cursor-not-allowed\"\n :class=\"[className, $slots.value ? 'text-transparent placeholder:text-transparent' : '']\"\n @pointerdown=\"onTriggerPointerDown\"\n @click=\"toggleDropdown\"\n @focus=\"onTriggerFocus\"\n @keydown=\"onTriggerKeydown\"\n >\n\n <button\n v-if=\"clearable && hasSelection\"\n data-testid=\"ds-tree-select-clear\"\n data-ds-tree-select-clear\n type=\"button\"\n class=\"absolute top-1/2 -translate-y-1/2 right-3 h-6 w-6 inline-flex items-center justify-center rounded-md text-[var(--muted-fg)] hover:text-[var(--fg)] hover:bg-[color-mix(in_srgb,var(--muted)_25%,transparent)] disabled:opacity-50\"\n :disabled=\"disabled\"\n :aria-label=\"t('gr.common.clear', 'Clear')\"\n @click.stop=\"clear\"\n >\n <span class=\"i-lucide-x inline-block h-4 w-4\" />\n </button>\n\n <span\n v-else\n data-testid=\"ds-tree-select-chevron\"\n data-ds-tree-select-chevron\n class=\"absolute top-1/2 -translate-y-1/2 right-3 text-[var(--muted-fg)] pointer-events-none\"\n >\n <span\n class=\"i-lucide-chevron-down inline-block h-4 w-4 transition-transform duration-150\"\n :class=\"open ? 'rotate-180' : ''\"\n />\n </span>\n\n <div\n v-if=\"$slots.value\"\n class=\"absolute inset-y-0 left-3 right-9 flex items-center pointer-events-none\"\n >\n <slot\n name=\"value\"\n :value=\"modelValue\"\n :labels=\"selectedLabels\"\n :display-value=\"displayValue\"\n :path-labels=\"selectedPathLabels\"\n />\n </div>\n </div>\n\n <teleport to=\"body\">\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-testid=\"ds-tree-select-panel\"\n data-ds-tree-select-panel\n :style=\"floatingStyle\"\n >\n <div :class=\"panelClasses\">\n <div v-if=\"filterable\" class=\"p-2 border-b border-[var(--brd)]\">\n <GrInput\n ref=\"filterInputRef\"\n v-model=\"filterValue\"\n data-testid=\"ds-tree-select-filter\"\n data-ds-tree-select-filter\n type=\"search\"\n :inputmode=\"filterInputmode\"\n :placeholder=\"resolvedFilterPlaceholder\"\n size=\"sm\"\n />\n </div>\n\n <div\n class=\"p-1 overflow-auto\"\n :style=\"{ maxHeight: `${dropdownMaxHeight}px` }\"\n >\n <div v-if=\"(data?.length ?? 0) === 0\" class=\"px-3 py-2 text-[13px] text-[var(--muted-fg)]\">\n <slot name=\"empty\">\n {{ t('gr.treeSelect.empty', 'No data') }}\n </slot>\n </div>\n\n <GrTree\n v-else\n ref=\"treeRef\"\n :data=\"data\"\n :props=\"props.props\"\n :node-key=\"nodeKey as any\"\n :default-expanded-keys=\"defaultExpandedKeys\"\n :filter-node-method=\"filterNodeMethod\"\n :highlight-current=\"!multiple\"\n @node-click=\"onNodeClick\"\n >\n <template #default=\"{ node, data }\">\n <slot\n name=\"node\"\n :node=\"node\"\n :data=\"data\"\n :selected=\"selectedKeySet.has(node.key)\"\n >\n <div class=\"flex items-center gap-2 min-w-0\">\n <span\n class=\"inline-block h-4 w-4 shrink-0\"\n :class=\"selectedKeySet.has(node.key) ? 'i-lucide-check text-[var(--primary)]' : ''\"\n aria-hidden=\"true\"\n />\n <span class=\"truncate\">{{ node.label }}</span>\n </div>\n </slot>\n </template>\n </GrTree>\n </div>\n </div>\n </div>\n </transition>\n </teleport>\n </div>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> = any\">\nimport { computed, nextTick, onUnmounted, ref, watch } from 'vue'\n\nimport { vClickOutside } from '../../directives'\nimport { useFloating } from '../../composables/internal/useFloating'\nimport { useGranularityTranslations } from '../../internal/granularityI18n'\nimport GrInput from '../GrInput/GrInput.vue'\nimport GrTree, {\n type GrTreeInstance,\n type GrTreeKey,\n type GrTreeNode,\n} from '../GrTree'\nimport type { GrTreeSelectModelValue, GrTreeSelectProps } from './grTreeSelectTypes'\nimport { grTreeSelectClass, grTreeSelectPanelClass } from './grTreeSelectStyles'\n\nconst props = withDefaults(\n defineProps<GrTreeSelectProps<T>>(),\n {\n props: () => ({\n children: 'children',\n label: 'label',\n }),\n nodeKey: 'id' as any,\n defaultExpandedKeys: () => [],\n disabled: false,\n placeholder: undefined,\n size: 'md',\n invalid: false,\n state: 'default',\n multiple: false,\n clearable: false,\n valueDisplay: 'label',\n filterable: false,\n filterPlaceholder: undefined,\n filterInputmode: undefined,\n filterNodeMethod: undefined,\n closeOnSelect: undefined,\n dropdownMaxHeight: 320,\n },\n)\n\nconst { t } = useGranularityTranslations()\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: GrTreeSelectModelValue): void\n (e: 'change', value: GrTreeSelectModelValue): void\n (e: 'visibleChange', visible: boolean): void\n (e: 'clear'): void\n (e: 'nodeClick', data: T, node: GrTreeNode<T>): void\n}>()\n\ndefineSlots<{\n /** Рендер значения внутри триггера (вместо дефолтного текста). */\n value?: (props: { value: GrTreeSelectModelValue; labels: string[]; displayValue: string; pathLabels?: string[] }) => any\n /** Рендер строки дерева. */\n node?: (props: { node: GrTreeNode<T>; data: T; selected: boolean }) => any\n /** Содержимое пустого состояния (когда нет данных). */\n empty?: () => any\n}>()\n\nconst rootEl = ref<HTMLElement | null>(null)\nconst triggerEl = ref<HTMLInputElement | null>(null)\nconst filterInputRef = ref<InstanceType<typeof GrInput> | null>(null)\nconst treeRef = ref<GrTreeInstance | null>(null)\nconst panelEl = ref<HTMLElement | null>(null)\n\nconst clickOutsideExclude = [() => panelEl.value]\n\nlet hadPointerDownOnTrigger = false\n\nconst open = ref(false)\nconst filterValue = ref('')\n\nconst { floatingStyle } = useFloating(rootEl, panelEl, open, {\n placement: 'bottom-start',\n matchWidth: true,\n zIndexVar: '--gr-z-dropdown',\n})\n\nconst closeOnSelectResolved = computed(() => {\n return props.closeOnSelect ?? !props.multiple\n})\n\nfunction getChildrenKey() {\n return props.props.children ?? 'children'\n}\n\nfunction getLabelKey() {\n return props.props.label ?? 'label'\n}\n\nfunction nodeLabel(data: T): string {\n const key = getLabelKey() as keyof T\n const v = data[key]\n return v == null ? '' : String(v)\n}\n\nfunction nodeChildren(data: T): T[] {\n const key = getChildrenKey() as keyof T\n const v = data[key]\n return Array.isArray(v) ? (v as any) : []\n}\n\nfunction nodeKeyOf(data: T, index: number, parentKey: GrTreeKey | undefined): GrTreeKey {\n const keyName = props.nodeKey as keyof T\n const v = data[keyName]\n if (v != null)\n return v as GrTreeKey\n\n return parentKey == null ? index : `${String(parentKey)}:${index}`\n}\n\nconst labelByKey = computed(() => {\n const map = new Map<GrTreeKey, string>()\n\n const walk = (items: T[], parentKey: GrTreeKey | undefined) => {\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n const key = nodeKeyOf(item, i, parentKey)\n map.set(key, nodeLabel(item))\n walk(nodeChildren(item), key)\n }\n }\n\n walk(props.data ?? [], undefined)\n return map\n})\n\nconst pathLabelsByKey = computed(() => {\n const map = new Map<GrTreeKey, string[]>()\n\n const walk = (items: T[], parentKey: GrTreeKey | undefined, parentPath: string[]) => {\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n const key = nodeKeyOf(item, i, parentKey)\n const label = nodeLabel(item)\n const path = [...parentPath, label]\n map.set(key, path)\n walk(nodeChildren(item), key, path)\n }\n }\n\n walk(props.data ?? [], undefined, [])\n return map\n})\n\nconst selectedKeys = computed<GrTreeKey[]>(() => {\n if (props.multiple) {\n return Array.isArray(props.modelValue) ? props.modelValue : []\n }\n\n const v = props.modelValue\n if (v == null || Array.isArray(v))\n return []\n return [v]\n})\n\nconst selectedKeySet = computed(() => new Set(selectedKeys.value))\n\nconst selectedLabels = computed(() => {\n const map = labelByKey.value\n return selectedKeys.value.map((k) => map.get(k) ?? String(k))\n})\n\nconst selectedPathLabels = computed<string[] | undefined>(() => {\n if (props.multiple)\n return undefined\n\n const key = selectedKeys.value[0]\n if (key == null)\n return undefined\n\n const path = pathLabelsByKey.value.get(key)\n if (path?.length)\n return path\n\n const labels = selectedLabels.value\n return labels.length ? [labels[0]] : undefined\n})\n\nconst displayValue = computed(() => {\n const labels = selectedLabels.value\n if (labels.length === 0)\n return ''\n\n if (!props.multiple) {\n if (props.valueDisplay === 'path') {\n const path = selectedPathLabels.value\n if (path?.length)\n return path.join(' / ')\n }\n return labels[0]\n }\n\n if (labels.length === 1)\n return labels[0]\n return `${labels[0]} +${labels.length - 1}`\n})\n\nconst hasSelection = computed(() => selectedKeys.value.length > 0)\n\nconst resolvedFilterPlaceholder = computed(() => {\n return props.filterPlaceholder ?? t('gr.treeSelect.filterPlaceholder', 'Search…')\n})\n\nconst className = computed(() => {\n return grTreeSelectClass({\n size: props.size,\n state: props.state,\n invalid: props.invalid,\n })\n})\n\nconst panelClasses = computed(() => {\n return grTreeSelectPanelClass\n})\n\nfunction setOpen(next: boolean) {\n if (props.disabled)\n return\n\n if (open.value === next)\n return\n\n open.value = next\n emit('visibleChange', next)\n}\n\nfunction onClickOutside(): void {\n setOpen(false)\n}\n\nfunction openDropdown(): void {\n setOpen(true)\n}\n\nfunction closeDropdown(): void {\n setOpen(false)\n}\n\nfunction toggleDropdown(): void {\n setOpen(!open.value)\n}\n\nfunction onTriggerPointerDown(): void {\n hadPointerDownOnTrigger = true\n if (typeof window !== 'undefined') {\n window.setTimeout(() => {\n hadPointerDownOnTrigger = false\n }, 0)\n }\n else {\n // SSR / no window: reset sync\n hadPointerDownOnTrigger = false\n }\n}\n\nfunction onTriggerFocus(): void {\n if (hadPointerDownOnTrigger)\n return\n openDropdown()\n}\n\nfunction closeOnEscape(e: KeyboardEvent): void {\n if (e.key === 'Escape') {\n closeDropdown()\n nextTick(() => triggerEl.value?.focus())\n }\n}\n\nwatch(\n open,\n async (isOpen) => {\n if (typeof document === 'undefined')\n return\n\n document.removeEventListener('keydown', closeOnEscape)\n\n if (isOpen)\n document.addEventListener('keydown', closeOnEscape)\n\n if (!isOpen)\n return\n\n // sync tree highlight\n if (!props.multiple) {\n const v = props.modelValue\n if (v != null && !Array.isArray(v))\n treeRef.value?.setCurrentKey(v)\n }\n\n // focus filter input\n if (props.filterable) {\n await nextTick()\n filterInputRef.value?.focus()\n }\n },\n { immediate: true },\n)\n\nonUnmounted(() => {\n if (typeof document === 'undefined')\n return\n document.removeEventListener('keydown', closeOnEscape)\n})\n\nwatch(\n () => props.modelValue,\n (v) => {\n if (props.multiple)\n return\n if (v == null || Array.isArray(v)) {\n treeRef.value?.setCurrentKey(undefined)\n return\n }\n treeRef.value?.setCurrentKey(v)\n },\n)\n\nwatch(\n filterValue,\n (v) => {\n treeRef.value?.filter(v)\n },\n)\n\nwatch(\n open,\n (isOpen) => {\n if (isOpen)\n return\n if (filterValue.value.trim().length > 0)\n filterValue.value = ''\n },\n)\n\nfunction emitModel(next: GrTreeSelectModelValue) {\n emit('update:modelValue', next)\n emit('change', next)\n}\n\nfunction clear(): void {\n if (props.disabled)\n return\n\n const next: GrTreeSelectModelValue = props.multiple ? [] : null\n emitModel(next)\n emit('clear')\n if (!props.multiple)\n treeRef.value?.setCurrentKey(undefined)\n}\n\nfunction onTriggerKeydown(e: KeyboardEvent): void {\n if (props.disabled)\n return\n\n if (e.key === 'ArrowDown' || e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n openDropdown()\n }\n if (e.key === 'Escape') {\n e.preventDefault()\n closeDropdown()\n }\n}\n\nfunction onNodeClick(data: T, node: GrTreeNode<T>): void {\n emit('nodeClick', data, node)\n\n if (props.disabled)\n return\n\n if (props.multiple) {\n const next = new Set(selectedKeySet.value)\n if (next.has(node.key))\n next.delete(node.key)\n else\n next.add(node.key)\n emitModel([...next])\n\n if (closeOnSelectResolved.value) {\n closeDropdown()\n }\n return\n }\n\n emitModel(node.key)\n if (closeOnSelectResolved.value) {\n closeDropdown()\n }\n}\n</script>\n\n<template>\n <div\n ref=\"rootEl\"\n v-click-outside=\"{ handler: onClickOutside, enabled: open, exclude: clickOutsideExclude }\"\n data-ds-tree-select\n class=\"relative\"\n >\n <div class=\"relative\">\n <input\n ref=\"triggerEl\"\n data-testid=\"ds-tree-select-trigger\"\n data-ds-tree-select-trigger\n type=\"text\"\n :value=\"displayValue\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n readonly\n role=\"combobox\"\n aria-readonly=\"true\"\n :aria-expanded=\"open ? 'true' : 'false'\"\n :aria-invalid=\"invalid ? 'true' : undefined\"\n class=\"w-full rounded-md border bg-[var(--bg)] text-[var(--fg)] placeholder:text-[var(--muted-fg)] transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] disabled:opacity-50 disabled:cursor-not-allowed\"\n :class=\"[className, $slots.value ? 'text-transparent placeholder:text-transparent' : '']\"\n @pointerdown=\"onTriggerPointerDown\"\n @click=\"toggleDropdown\"\n @focus=\"onTriggerFocus\"\n @keydown=\"onTriggerKeydown\"\n >\n\n <button\n v-if=\"clearable && hasSelection\"\n data-testid=\"ds-tree-select-clear\"\n data-ds-tree-select-clear\n type=\"button\"\n class=\"absolute top-1/2 -translate-y-1/2 right-3 h-6 w-6 inline-flex items-center justify-center rounded-md text-[var(--muted-fg)] hover:text-[var(--fg)] hover:bg-[color-mix(in_srgb,var(--muted)_25%,transparent)] disabled:opacity-50\"\n :disabled=\"disabled\"\n :aria-label=\"t('gr.common.clear', 'Clear')\"\n @click.stop=\"clear\"\n >\n <span class=\"i-lucide-x inline-block h-4 w-4\" />\n </button>\n\n <span\n v-else\n data-testid=\"ds-tree-select-chevron\"\n data-ds-tree-select-chevron\n class=\"absolute top-1/2 -translate-y-1/2 right-3 text-[var(--muted-fg)] pointer-events-none\"\n >\n <span\n class=\"i-lucide-chevron-down inline-block h-4 w-4 transition-transform duration-150\"\n :class=\"open ? 'rotate-180' : ''\"\n />\n </span>\n\n <div\n v-if=\"$slots.value\"\n class=\"absolute inset-y-0 left-3 right-9 flex items-center pointer-events-none\"\n >\n <slot\n name=\"value\"\n :value=\"modelValue\"\n :labels=\"selectedLabels\"\n :display-value=\"displayValue\"\n :path-labels=\"selectedPathLabels\"\n />\n </div>\n </div>\n\n <teleport to=\"body\">\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-testid=\"ds-tree-select-panel\"\n data-ds-tree-select-panel\n :style=\"floatingStyle\"\n >\n <div :class=\"panelClasses\">\n <div v-if=\"filterable\" class=\"p-2 border-b border-[var(--brd)]\">\n <GrInput\n ref=\"filterInputRef\"\n v-model=\"filterValue\"\n data-testid=\"ds-tree-select-filter\"\n data-ds-tree-select-filter\n type=\"search\"\n :inputmode=\"filterInputmode\"\n :placeholder=\"resolvedFilterPlaceholder\"\n size=\"sm\"\n />\n </div>\n\n <div\n class=\"p-1 overflow-auto\"\n :style=\"{ maxHeight: `${dropdownMaxHeight}px` }\"\n >\n <div v-if=\"(data?.length ?? 0) === 0\" class=\"px-3 py-2 text-[13px] text-[var(--muted-fg)]\">\n <slot name=\"empty\">\n {{ t('gr.treeSelect.empty', 'No data') }}\n </slot>\n </div>\n\n <GrTree\n v-else\n ref=\"treeRef\"\n :data=\"data\"\n :props=\"props.props\"\n :node-key=\"nodeKey as any\"\n :default-expanded-keys=\"defaultExpandedKeys\"\n :filter-node-method=\"filterNodeMethod\"\n :highlight-current=\"!multiple\"\n @node-click=\"onNodeClick\"\n >\n <template #default=\"{ node, data }\">\n <slot\n name=\"node\"\n :node=\"node\"\n :data=\"data\"\n :selected=\"selectedKeySet.has(node.key)\"\n >\n <div class=\"flex items-center gap-2 min-w-0\">\n <span\n class=\"inline-block h-4 w-4 shrink-0\"\n :class=\"selectedKeySet.has(node.key) ? 'i-lucide-check text-[var(--primary)]' : ''\"\n aria-hidden=\"true\"\n />\n <span class=\"truncate\">{{ node.label }}</span>\n </div>\n </slot>\n </template>\n </GrTree>\n </div>\n </div>\n </div>\n </transition>\n </teleport>\n </div>\n</template>\n"],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as grTreeSelectSafelist, t as grTreeSelectConfig } from "../../chunks/config-
|
|
2
|
-
import { t as GrTreeSelect_default } from "./chunks/GrTreeSelect-
|
|
1
|
+
import { n as grTreeSelectSafelist, t as grTreeSelectConfig } from "../../chunks/config-D_Pafsjq2.js";
|
|
2
|
+
import { t as GrTreeSelect_default } from "./chunks/GrTreeSelect-CytivcCa.js";
|
|
3
3
|
export { GrTreeSelect_default as GrTreeSelect, GrTreeSelect_default as default, grTreeSelectConfig, grTreeSelectSafelist };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as grButtonSafelist } from "./chunks/safelist-DccvJqCE.js";
|
|
2
|
-
import { n as grProgressBarSafelist } from "./chunks/config-
|
|
3
|
-
import { a as granularityThemeNames, i as granularityDefaultThemes, n as createGranularityProvider, r as granularityComponentConfigs, t as GRANULARITY_PROVIDER_ID } from "./chunks/shared-
|
|
2
|
+
import { n as grProgressBarSafelist } from "./chunks/config-B0uUCaJW.js";
|
|
3
|
+
import { a as granularityThemeNames, i as granularityDefaultThemes, n as createGranularityProvider, r as granularityComponentConfigs, t as GRANULARITY_PROVIDER_ID } from "./chunks/shared-DpjTvFno.js";
|
|
4
4
|
import { defineGranularComponent } from "@feugene/unocss-preset-granular/contract";
|
|
5
5
|
import { tokenDefinitionsFromCssSync } from "@feugene/unocss-preset-granular/node";
|
|
6
6
|
//#region src/components/GrButton/config.node.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as granularityThemeNames, i as granularityDefaultThemes, n as createGranularityProvider, r as granularityComponentConfigs, t as GRANULARITY_PROVIDER_ID } from "./chunks/shared-
|
|
1
|
+
import { a as granularityThemeNames, i as granularityDefaultThemes, n as createGranularityProvider, r as granularityComponentConfigs, t as GRANULARITY_PROVIDER_ID } from "./chunks/shared-DpjTvFno.js";
|
|
2
2
|
//#region src/granular-provider/index.ts
|
|
3
3
|
var granularityProvider = createGranularityProvider();
|
|
4
4
|
//#endregion
|
package/dist/i18n/all.js
CHANGED
package/dist/i18n/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { t as GRANULARITY_I18N_KEY } from "../chunks/adapter-BqqjEZGU.js";
|
|
2
|
-
import { i as GRANULARITY_I18N_BLOCK, n as ru, r as en, t as es } from "../chunks/es-
|
|
2
|
+
import { i as GRANULARITY_I18N_BLOCK, n as ru, r as en, t as es } from "../chunks/es-CISK11Nv.js";
|
|
3
3
|
export { GRANULARITY_I18N_BLOCK, GRANULARITY_I18N_KEY, en, es, ru };
|
package/dist/index.js
CHANGED
|
@@ -25,12 +25,12 @@ import { n as GrCollapse_default, r as GR_COLLAPSE_CONTEXT, t as GrCollapseItem_
|
|
|
25
25
|
import { t as GrIcon_default } from "./components/GrIcon/chunks/GrIcon-BV7RBU_0.js";
|
|
26
26
|
import { t as grIconConfig } from "./chunks/config-DbghHyY_.js";
|
|
27
27
|
import { t as grCollapseConfig } from "./chunks/config-D5ek7VSi.js";
|
|
28
|
-
import { t as GrModal_default } from "./components/GrModal/chunks/GrModal-
|
|
29
|
-
import { t as getGrModalPanelClass } from "./chunks/grModalStyles-
|
|
28
|
+
import { t as GrModal_default } from "./components/GrModal/chunks/GrModal-CSOL3fHQ.js";
|
|
29
|
+
import { t as getGrModalPanelClass } from "./chunks/grModalStyles-FgaKqx50.js";
|
|
30
30
|
import { a as resolveGrDialogTitle, i as resolveGrDialogSectionConfig, n as DEFAULT_GR_DIALOG_FOOTER_CONFIG, r as DEFAULT_GR_DIALOG_HEADER_CONFIG, t as DEFAULT_GR_DIALOG_BODY_CONFIG } from "./chunks/dialogShared-BtXUk6Zc.js";
|
|
31
|
-
import { i as GrDialogFooter_default, n as GrDialogHeader_default, r as GrDialogCloseButton_default, t as GrDialog_default } from "./components/GrDialog/chunks/GrDialog-
|
|
32
|
-
import { _ as DEFAULT_AUTO_HIDE_KINDS, a as extendDefaultParsers, c as problemDetailsParser, d as networkErrorParser, f as laravelValidationParser, g as abortErrorParser, h as fileValidationParser, i as defaultResponseErrorParsers, l as plainMessageParser, m as httpStatusParser, n as coreResponseErrorParsers, o as resolveResponseErrorTitle, p as jsonApiErrorParser, r as createResponseErrorClassifier, s as responseErrorParserPresets, t as GrResponseErrorBanner_default, u as normalizeError, v as DEFAULT_RESPONSE_ERROR_TEXTS, y as DEFAULT_TONE_BY_KIND } from "./components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-
|
|
33
|
-
import { t as GrConfirmDialog_default } from "./components/GrConfirmDialog/chunks/GrConfirmDialog-
|
|
31
|
+
import { i as GrDialogFooter_default, n as GrDialogHeader_default, r as GrDialogCloseButton_default, t as GrDialog_default } from "./components/GrDialog/chunks/GrDialog-CxK4Lj4F.js";
|
|
32
|
+
import { _ as DEFAULT_AUTO_HIDE_KINDS, a as extendDefaultParsers, c as problemDetailsParser, d as networkErrorParser, f as laravelValidationParser, g as abortErrorParser, h as fileValidationParser, i as defaultResponseErrorParsers, l as plainMessageParser, m as httpStatusParser, n as coreResponseErrorParsers, o as resolveResponseErrorTitle, p as jsonApiErrorParser, r as createResponseErrorClassifier, s as responseErrorParserPresets, t as GrResponseErrorBanner_default, u as normalizeError, v as DEFAULT_RESPONSE_ERROR_TEXTS, y as DEFAULT_TONE_BY_KIND } from "./components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-bM8FC_Bw.js";
|
|
33
|
+
import { t as GrConfirmDialog_default } from "./components/GrConfirmDialog/chunks/GrConfirmDialog-Bi2KLumL.js";
|
|
34
34
|
import { t as grConfirmDialogConfig } from "./chunks/config-BduXEXjt.js";
|
|
35
35
|
import { t as GrTable_default } from "./components/GrTable/chunks/GrTable-dTWUxzRm.js";
|
|
36
36
|
import { t as GrDataTable_default } from "./components/GrDataTable/chunks/GrDataTable-ClcYiyc8.js";
|
|
@@ -39,8 +39,8 @@ import { t as grDialogSafelist } from "./chunks/safelist-_UVzJrgE2.js";
|
|
|
39
39
|
import "./components/GrDialog/index.js";
|
|
40
40
|
import { t as GrFormField_default } from "./components/GrFormField/chunks/GrFormField-U7c_aDPJ.js";
|
|
41
41
|
import { t as GrInput_default } from "./components/GrInput/chunks/GrInput-gwFQ1sk4.js";
|
|
42
|
-
import { t as GrPromptDialog_default } from "./components/GrPromptDialog/chunks/GrPromptDialog-
|
|
43
|
-
import { n as GrFormErrorBanner_default, r as GrUploadErrorBanner_default, t as useResponseError } from "./components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-
|
|
42
|
+
import { t as GrPromptDialog_default } from "./components/GrPromptDialog/chunks/GrPromptDialog-D_TFqKsF.js";
|
|
43
|
+
import { n as GrFormErrorBanner_default, r as GrUploadErrorBanner_default, t as useResponseError } from "./components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-K1uZ1mYD.js";
|
|
44
44
|
import { n as grDrawerSafelist, t as grDrawerConfig } from "./chunks/config-C6zT56Jc2.js";
|
|
45
45
|
import { t as GrDrawer_default } from "./components/GrDrawer/chunks/GrDrawer-BW3wtI7h.js";
|
|
46
46
|
import { vAutofocus } from "./directives/autofocus.js";
|
|
@@ -51,75 +51,75 @@ import { vDropzone } from "./directives/dropzone.js";
|
|
|
51
51
|
import { vHotkey } from "./directives/hotkey.js";
|
|
52
52
|
import { t as GrLoading_default } from "./components/GrLoading/chunks/GrLoading-mfyfghxs.js";
|
|
53
53
|
import { createLoading, vLoading } from "./directives/loading.js";
|
|
54
|
-
import { t as GrDropdown_default } from "./components/GrDropdown/chunks/GrDropdown-
|
|
55
|
-
import { n as grDropdownSafelist, t as grDropdownConfig } from "./chunks/config-
|
|
54
|
+
import { t as GrDropdown_default } from "./components/GrDropdown/chunks/GrDropdown-BGKeEfZ1.js";
|
|
55
|
+
import { n as grDropdownSafelist, t as grDropdownConfig } from "./chunks/config-C_egzT_K.js";
|
|
56
56
|
import "./components/GrDropdown/index.js";
|
|
57
|
-
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 "./components/GrDropdownMenu/chunks/GrDropdownMenu-
|
|
58
|
-
import { t as grDropdownMenuConfig } from "./chunks/config-
|
|
59
|
-
import { t as GrEmptyState_default } from "./components/GrEmptyState/chunks/GrEmptyState-
|
|
60
|
-
import { t as grEmptyStateConfig } from "./chunks/config-
|
|
61
|
-
import { t as GrProgressBar_default } from "./components/GrProgressBar/chunks/GrProgressBar-
|
|
62
|
-
import { i as GrUploadHttpError, n as GR_UPLOAD_STATE_IDLE, r as GrUploadAbortError, t as GrFileUpload_default } from "./components/GrFileUpload/chunks/GrFileUpload-
|
|
63
|
-
import { t as grFileUploadConfig } from "./chunks/config-
|
|
64
|
-
import { t as grFormFieldConfig } from "./chunks/config-
|
|
57
|
+
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 "./components/GrDropdownMenu/chunks/GrDropdownMenu-CJom_-c2.js";
|
|
58
|
+
import { t as grDropdownMenuConfig } from "./chunks/config-DDwBSoc_.js";
|
|
59
|
+
import { t as GrEmptyState_default } from "./components/GrEmptyState/chunks/GrEmptyState-yOuZW7-t.js";
|
|
60
|
+
import { t as grEmptyStateConfig } from "./chunks/config-CzgNEHKi.js";
|
|
61
|
+
import { t as GrProgressBar_default } from "./components/GrProgressBar/chunks/GrProgressBar-BBSFpVEq.js";
|
|
62
|
+
import { i as GrUploadHttpError, n as GR_UPLOAD_STATE_IDLE, r as GrUploadAbortError, t as GrFileUpload_default } from "./components/GrFileUpload/chunks/GrFileUpload-CBKK3dgC.js";
|
|
63
|
+
import { t as grFileUploadConfig } from "./chunks/config-CPSdAjUi.js";
|
|
64
|
+
import { t as grFormFieldConfig } from "./chunks/config-B3dn-gdC.js";
|
|
65
65
|
import "./components/GrFormField/index.js";
|
|
66
|
-
import { t as GrFormFile_default } from "./components/GrFormFile/chunks/GrFormFile-
|
|
67
|
-
import { t as grFormFileConfig } from "./chunks/config-
|
|
68
|
-
import { t as GrFormSection_default } from "./components/GrFormSection/chunks/GrFormSection-
|
|
69
|
-
import { t as grFormSectionConfig } from "./chunks/config-
|
|
70
|
-
import { t as GrImageViewer_default } from "./components/GrImageViewer/chunks/GrImageViewer-
|
|
71
|
-
import { t as grImageViewerConfig } from "./chunks/config-
|
|
72
|
-
import { n as grInputSafelist, t as grInputConfig } from "./chunks/config-
|
|
66
|
+
import { t as GrFormFile_default } from "./components/GrFormFile/chunks/GrFormFile-CkR6cYqf.js";
|
|
67
|
+
import { t as grFormFileConfig } from "./chunks/config-C5-ujXCI.js";
|
|
68
|
+
import { t as GrFormSection_default } from "./components/GrFormSection/chunks/GrFormSection-dbyzqxYk.js";
|
|
69
|
+
import { t as grFormSectionConfig } from "./chunks/config-VJuoznpH.js";
|
|
70
|
+
import { t as GrImageViewer_default } from "./components/GrImageViewer/chunks/GrImageViewer-BG40DsHa.js";
|
|
71
|
+
import { t as grImageViewerConfig } from "./chunks/config-Doa_gU40.js";
|
|
72
|
+
import { n as grInputSafelist, t as grInputConfig } from "./chunks/config-8f8624RN.js";
|
|
73
73
|
import "./components/GrInput/index.js";
|
|
74
|
-
import { n as grInputTagSafelist, t as grInputTagConfig } from "./chunks/config-
|
|
75
|
-
import { t as GrInputTag_default } from "./components/GrInputTag/chunks/GrInputTag-
|
|
76
|
-
import { n as grLinkSafelist, t as grLinkConfig } from "./chunks/config-
|
|
77
|
-
import { t as GrLink_default } from "./components/GrLink/chunks/GrLink-
|
|
78
|
-
import { n as GrList_default, t as GrListItem_default } from "./components/GrList/chunks/GrList-
|
|
79
|
-
import { t as grListConfig } from "./chunks/config-
|
|
80
|
-
import { n as grLoadingSafelist, t as grLoadingConfig } from "./chunks/config-
|
|
74
|
+
import { n as grInputTagSafelist, t as grInputTagConfig } from "./chunks/config-XspHtPsU.js";
|
|
75
|
+
import { t as GrInputTag_default } from "./components/GrInputTag/chunks/GrInputTag-g-KdUI_Z.js";
|
|
76
|
+
import { n as grLinkSafelist, t as grLinkConfig } from "./chunks/config-NkbzVFZo.js";
|
|
77
|
+
import { t as GrLink_default } from "./components/GrLink/chunks/GrLink-KSTmk9Yq.js";
|
|
78
|
+
import { n as GrList_default, t as GrListItem_default } from "./components/GrList/chunks/GrList-CUW2sRm_.js";
|
|
79
|
+
import { t as grListConfig } from "./chunks/config-lMDE_8A5.js";
|
|
80
|
+
import { n as grLoadingSafelist, t as grLoadingConfig } from "./chunks/config-58Mj2rGH.js";
|
|
81
81
|
import "./components/GrLoading/index.js";
|
|
82
|
-
import { n as grModalClassTokens, r as grModalSafelist, t as grModalConfig } from "./chunks/config-
|
|
82
|
+
import { n as grModalClassTokens, r as grModalSafelist, t as grModalConfig } from "./chunks/config-DRpkoSvq.js";
|
|
83
83
|
import "./components/GrModal/index.js";
|
|
84
|
-
import { t as GrNavbar_default } from "./components/GrNavbar/chunks/GrNavbar-
|
|
85
|
-
import { t as grNavbarConfig } from "./chunks/config-
|
|
86
|
-
import { n as grNumberInputSafelist, t as grNumberInputConfig } from "./chunks/config-
|
|
87
|
-
import { t as GrNumberInput_default } from "./components/GrNumberInput/chunks/GrNumberInput-
|
|
88
|
-
import { t as GrSelect_default } from "./components/GrSelect/chunks/GrSelect-
|
|
89
|
-
import { t as GrPagination_default } from "./components/GrPagination/chunks/GrPagination-
|
|
90
|
-
import { t as grPaginationConfig } from "./chunks/config-
|
|
91
|
-
import { n as grProgressBarSafelist, t as grProgressBarConfig } from "./chunks/config-
|
|
84
|
+
import { t as GrNavbar_default } from "./components/GrNavbar/chunks/GrNavbar-CHxwtFIR.js";
|
|
85
|
+
import { t as grNavbarConfig } from "./chunks/config-C_q_4FrU.js";
|
|
86
|
+
import { n as grNumberInputSafelist, t as grNumberInputConfig } from "./chunks/config-DvDNney3.js";
|
|
87
|
+
import { t as GrNumberInput_default } from "./components/GrNumberInput/chunks/GrNumberInput-ClPBwkxx.js";
|
|
88
|
+
import { t as GrSelect_default } from "./components/GrSelect/chunks/GrSelect-DSz7jvUb.js";
|
|
89
|
+
import { t as GrPagination_default } from "./components/GrPagination/chunks/GrPagination-D2GS0ShQ.js";
|
|
90
|
+
import { t as grPaginationConfig } from "./chunks/config-CWTfyPNI.js";
|
|
91
|
+
import { n as grProgressBarSafelist, t as grProgressBarConfig } from "./chunks/config-B0uUCaJW.js";
|
|
92
92
|
import "./components/GrProgressBar/index.js";
|
|
93
|
-
import { t as grPromptDialogConfig } from "./chunks/config-
|
|
94
|
-
import { n as grRadioSafelist, t as grRadioConfig } from "./chunks/config-
|
|
95
|
-
import { n as GR_RADIO_GROUP_CONTEXT, t as GrRadio_default } from "./components/GrRadio/chunks/GrRadio-
|
|
96
|
-
import { t as GrRadioGroup_default } from "./components/GrRadioGroup/chunks/GrRadioGroup-
|
|
97
|
-
import { t as grRadioGroupConfig } from "./chunks/config-
|
|
98
|
-
import { n as grSegmentedSafelist, t as grSegmentedConfig } from "./chunks/config-
|
|
99
|
-
import { t as GrSegmented_default } from "./components/GrSegmented/chunks/GrSegmented-
|
|
100
|
-
import { n as grSelectSafelist, t as grSelectConfig } from "./chunks/config-
|
|
93
|
+
import { t as grPromptDialogConfig } from "./chunks/config-DhQc1TRY.js";
|
|
94
|
+
import { n as grRadioSafelist, t as grRadioConfig } from "./chunks/config-nrOj9p6I.js";
|
|
95
|
+
import { n as GR_RADIO_GROUP_CONTEXT, t as GrRadio_default } from "./components/GrRadio/chunks/GrRadio-CSbTnrom.js";
|
|
96
|
+
import { t as GrRadioGroup_default } from "./components/GrRadioGroup/chunks/GrRadioGroup-DsrnTygR.js";
|
|
97
|
+
import { t as grRadioGroupConfig } from "./chunks/config-Bh4NWWsQ.js";
|
|
98
|
+
import { n as grSegmentedSafelist, t as grSegmentedConfig } from "./chunks/config-hSlCXHoG.js";
|
|
99
|
+
import { t as GrSegmented_default } from "./components/GrSegmented/chunks/GrSegmented-DpZGs4VX.js";
|
|
100
|
+
import { n as grSelectSafelist, t as grSelectConfig } from "./chunks/config-C8MM2Dg0.js";
|
|
101
101
|
import "./components/GrSelect/index.js";
|
|
102
|
-
import { t as GrSidebar_default } from "./components/GrSidebar/chunks/GrSidebar-
|
|
103
|
-
import { t as grSidebarConfig } from "./chunks/config-
|
|
104
|
-
import { t as GrSkeleton_default } from "./components/GrSkeleton/chunks/GrSkeleton-
|
|
105
|
-
import { t as grSkeletonConfig } from "./chunks/config-
|
|
106
|
-
import { n as grSwitchSafelist, t as grSwitchConfig } from "./chunks/config-
|
|
107
|
-
import { t as GrSwitch_default } from "./components/GrSwitch/chunks/GrSwitch-
|
|
108
|
-
import { t as grTableConfig } from "./chunks/config-
|
|
102
|
+
import { t as GrSidebar_default } from "./components/GrSidebar/chunks/GrSidebar-BW8LRMZ-.js";
|
|
103
|
+
import { t as grSidebarConfig } from "./chunks/config-BuoIngj32.js";
|
|
104
|
+
import { t as GrSkeleton_default } from "./components/GrSkeleton/chunks/GrSkeleton-B05K0QKh.js";
|
|
105
|
+
import { t as grSkeletonConfig } from "./chunks/config-DZrlovR42.js";
|
|
106
|
+
import { n as grSwitchSafelist, t as grSwitchConfig } from "./chunks/config-RjfJFv1Y.js";
|
|
107
|
+
import { t as GrSwitch_default } from "./components/GrSwitch/chunks/GrSwitch-CSRtcN5-.js";
|
|
108
|
+
import { t as grTableConfig } from "./chunks/config-DDUPnue12.js";
|
|
109
109
|
import "./components/GrTable/index.js";
|
|
110
|
-
import { t as GrTabs_default } from "./components/GrTabs/chunks/GrTabs-
|
|
111
|
-
import { t as grTabsConfig } from "./chunks/config-
|
|
112
|
-
import { n as grTextareaSafelist, t as grTextareaConfig } from "./chunks/config-
|
|
113
|
-
import { t as GrTextarea_default } from "./components/GrTextarea/chunks/GrTextarea-
|
|
110
|
+
import { t as GrTabs_default } from "./components/GrTabs/chunks/GrTabs-BfeVNMFJ.js";
|
|
111
|
+
import { t as grTabsConfig } from "./chunks/config-BeBsN0c12.js";
|
|
112
|
+
import { n as grTextareaSafelist, t as grTextareaConfig } from "./chunks/config-A-iei0Ux.js";
|
|
113
|
+
import { t as GrTextarea_default } from "./components/GrTextarea/chunks/GrTextarea-CBBzpF2S.js";
|
|
114
114
|
import { useToast } from "./composables/useToast.js";
|
|
115
|
-
import { n as grToasterSafelist, t as grToasterConfig } from "./chunks/config-
|
|
116
|
-
import { t as GrToaster_default } from "./components/GrToaster/chunks/GrToaster-
|
|
117
|
-
import { t as GrTooltip_default } from "./components/GrTooltip/chunks/GrTooltip-
|
|
118
|
-
import { t as grTooltipConfig } from "./chunks/config-
|
|
119
|
-
import { t as GrTree_default } from "./components/GrTree/chunks/GrTree-
|
|
120
|
-
import { n as grTreeSafelist, t as grTreeConfig } from "./chunks/config-
|
|
121
|
-
import { n as grTreeSelectSafelist, t as grTreeSelectConfig } from "./chunks/config-
|
|
122
|
-
import { t as GrTreeSelect_default } from "./components/GrTreeSelect/chunks/GrTreeSelect-
|
|
115
|
+
import { n as grToasterSafelist, t as grToasterConfig } from "./chunks/config-DkeLkzxj2.js";
|
|
116
|
+
import { t as GrToaster_default } from "./components/GrToaster/chunks/GrToaster-C6_iHk2J.js";
|
|
117
|
+
import { t as GrTooltip_default } from "./components/GrTooltip/chunks/GrTooltip-BC-40SA5.js";
|
|
118
|
+
import { t as grTooltipConfig } from "./chunks/config-Dl5aZ5VR.js";
|
|
119
|
+
import { t as GrTree_default } from "./components/GrTree/chunks/GrTree-uZr5SyQI.js";
|
|
120
|
+
import { n as grTreeSafelist, t as grTreeConfig } from "./chunks/config-BLa1TEGm2.js";
|
|
121
|
+
import { n as grTreeSelectSafelist, t as grTreeSelectConfig } from "./chunks/config-D_Pafsjq2.js";
|
|
122
|
+
import { t as GrTreeSelect_default } from "./components/GrTreeSelect/chunks/GrTreeSelect-CytivcCa.js";
|
|
123
123
|
import { initThemeEarly, useTheme } from "./composables/useTheme.js";
|
|
124
124
|
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, getCurrentInstance, mergeProps, nextTick, onBeforeUnmount, openBlock, reactive, ref, render, shallowRef, toDisplayString, watch, withCtx } from "vue";
|
|
125
125
|
import { defineGranularComponent } from "@feugene/unocss-preset-granular/contract";
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import type { Placement } from '@floating-ui/dom';
|
|
1
2
|
export type GrDropdownAlign = 'left' | 'right' | 'center';
|
|
2
3
|
export type GrDropdownWidth = 'auto' | '20' | '48' | '60' | '64' | '80';
|
|
3
4
|
export declare const widthClassByWidth: Record<GrDropdownWidth, string>;
|
|
4
|
-
export declare const
|
|
5
|
+
export declare const originClassByPlacement: Partial<Record<Placement, string>>;
|
|
5
6
|
export declare function grDropdownWidthClass(width: GrDropdownWidth): string;
|
|
6
|
-
export declare function
|
|
7
|
+
export declare function grDropdownOriginClass(placement: Placement): string;
|
|
7
8
|
export declare function grDropdownContentClass(contentClass?: string): string;
|
|
@@ -51,11 +51,11 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
51
51
|
}>>> & Readonly<{}>, {
|
|
52
52
|
width: GrDropdownMenuWidth;
|
|
53
53
|
align: GrDropdownMenuAlign;
|
|
54
|
+
borderBottom: boolean;
|
|
55
|
+
borderTop: boolean;
|
|
54
56
|
closeOnContentClick: boolean;
|
|
55
57
|
contentClass: string;
|
|
56
58
|
dividers: boolean;
|
|
57
|
-
borderTop: boolean;
|
|
58
|
-
borderBottom: boolean;
|
|
59
59
|
listClass: string;
|
|
60
60
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
61
61
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -21,8 +21,8 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
21
21
|
uppercase: boolean;
|
|
22
22
|
}>>> & Readonly<{}>, {
|
|
23
23
|
title: string;
|
|
24
|
-
dividers: boolean;
|
|
25
24
|
uppercase: boolean;
|
|
25
|
+
dividers: boolean;
|
|
26
26
|
titleAlign: GrDropdownMenuHeaderAlign;
|
|
27
27
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
28
28
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -16,9 +16,9 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
16
16
|
borderTop: boolean;
|
|
17
17
|
borderBottom: boolean;
|
|
18
18
|
}>>> & Readonly<{}>, {
|
|
19
|
-
dividers: boolean;
|
|
20
|
-
borderTop: boolean;
|
|
21
19
|
borderBottom: boolean;
|
|
20
|
+
borderTop: boolean;
|
|
21
|
+
dividers: boolean;
|
|
22
22
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
23
23
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
24
24
|
declare const _default: typeof __VLS_export;
|
|
@@ -159,10 +159,10 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
159
159
|
name: string;
|
|
160
160
|
headers: Record<string, string>;
|
|
161
161
|
placeholder: string;
|
|
162
|
+
multiple: boolean;
|
|
162
163
|
withCredentials: boolean;
|
|
163
164
|
action: string;
|
|
164
165
|
request: GrFileUploadRequest;
|
|
165
|
-
multiple: boolean;
|
|
166
166
|
limit: number;
|
|
167
167
|
onExceed: (files: File[], limit: number) => void;
|
|
168
168
|
beforeUpload: (file: File) => boolean | Promise<unknown>;
|
|
@@ -68,9 +68,9 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
68
68
|
as: string | Component;
|
|
69
69
|
target: string;
|
|
70
70
|
href: string;
|
|
71
|
+
underline: GrLinkUnderline;
|
|
71
72
|
external: boolean;
|
|
72
73
|
rel: string;
|
|
73
|
-
underline: GrLinkUnderline;
|
|
74
74
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
75
75
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
76
76
|
declare const _default: typeof __VLS_export;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export type GrModalSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';
|
|
2
|
-
export declare const root = "fixed inset-0 z-
|
|
2
|
+
export declare const root = "fixed inset-0 z-[var(--gr-z-modal)]";
|
|
3
3
|
export declare const shell = "fixed inset-0 overflow-y-auto p-4 sm:p-6";
|
|
4
4
|
export declare const layout = "min-h-full flex items-center justify-center";
|
|
5
5
|
export declare const overlay = "fixed inset-0 z-0 bg-black/40";
|
|
@@ -52,8 +52,8 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
52
52
|
disabled: boolean;
|
|
53
53
|
ariaLabel: string;
|
|
54
54
|
name: string;
|
|
55
|
-
indicatorDuration: number;
|
|
56
55
|
block: boolean;
|
|
56
|
+
indicatorDuration: number;
|
|
57
57
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
58
58
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
59
59
|
declare const _default: typeof __VLS_export;
|
|
@@ -19,7 +19,7 @@ export interface GrSelectProps {
|
|
|
19
19
|
optionsView?: GrSelectOptionsView;
|
|
20
20
|
/** Разрешает ввод/выбор значения, которого нет в `options`. */
|
|
21
21
|
allowCustomValue?: boolean;
|
|
22
|
-
/** Placeholder для инпута кастомного значения (только в `optionsView="panel"`). */
|
|
22
|
+
/** Placeholder для инпута кастомного значения (только в `optionsView="panel"`). i18n-friendly: если не задан — берётся из адаптера перевода (`gr.select.customValuePlaceholder`), иначе — встроенный fallback. */
|
|
23
23
|
customValuePlaceholder?: string;
|
|
24
24
|
/** Максимальная высота панели (только в `optionsView="panel"`). */
|
|
25
25
|
dropdownMaxHeight?: number;
|
|
@@ -67,11 +67,11 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
67
67
|
multiple: boolean;
|
|
68
68
|
optionsView: string;
|
|
69
69
|
allowCustomValue: boolean;
|
|
70
|
-
customValuePlaceholder:
|
|
70
|
+
customValuePlaceholder: undefined;
|
|
71
71
|
dropdownMaxHeight: number;
|
|
72
72
|
closeOnSelect: boolean;
|
|
73
73
|
clearable: boolean;
|
|
74
|
-
clearLabel:
|
|
74
|
+
clearLabel: undefined;
|
|
75
75
|
variant: string;
|
|
76
76
|
underline: string;
|
|
77
77
|
}>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
@@ -86,11 +86,11 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
86
86
|
multiple: boolean;
|
|
87
87
|
optionsView: string;
|
|
88
88
|
allowCustomValue: boolean;
|
|
89
|
-
customValuePlaceholder:
|
|
89
|
+
customValuePlaceholder: undefined;
|
|
90
90
|
dropdownMaxHeight: number;
|
|
91
91
|
closeOnSelect: boolean;
|
|
92
92
|
clearable: boolean;
|
|
93
|
-
clearLabel:
|
|
93
|
+
clearLabel: undefined;
|
|
94
94
|
variant: string;
|
|
95
95
|
underline: string;
|
|
96
96
|
}>>> & Readonly<{
|
|
@@ -103,8 +103,8 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
103
103
|
ariaLabel: string;
|
|
104
104
|
placeholder: string;
|
|
105
105
|
options: GrSelectOptionOrGroup[];
|
|
106
|
-
multiple: boolean;
|
|
107
106
|
underline: GrSelectUnderline;
|
|
107
|
+
multiple: boolean;
|
|
108
108
|
optionsView: GrSelectOptionsView;
|
|
109
109
|
allowCustomValue: boolean;
|
|
110
110
|
customValuePlaceholder: string;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { CSSProperties, Ref } from 'vue';
|
|
2
|
+
import type { Placement } from '@floating-ui/dom';
|
|
3
|
+
export type UseFloatingPlacement = Placement;
|
|
4
|
+
export interface UseFloatingOptions {
|
|
5
|
+
/**
|
|
6
|
+
* Предпочитаемое место панели относительно триггера. По умолчанию `bottom-start`.
|
|
7
|
+
* Можно передать функцию-геттер, если место зависит от реактивного пропа
|
|
8
|
+
* (например, `align`) — она вызывается заново при каждом пересчёте позиции.
|
|
9
|
+
*/
|
|
10
|
+
placement?: UseFloatingPlacement | (() => UseFloatingPlacement);
|
|
11
|
+
/** Зазор между триггером и панелью, px. По умолчанию `8`. */
|
|
12
|
+
offsetPx?: number;
|
|
13
|
+
/** Минимальный отступ от края viewport при flip/shift, px. По умолчанию `8`. */
|
|
14
|
+
boundaryPadding?: number;
|
|
15
|
+
/**
|
|
16
|
+
* Согласовать ширину панели с шириной триггера (актуально для Select/TreeSelect).
|
|
17
|
+
* Не годится для Dropdown/Tooltip, где ширина панели определяется контентом.
|
|
18
|
+
* - `true` — точная ширина (`width = ширина триггера`);
|
|
19
|
+
* - `'min'` — панель растёт по контенту (`width: max-content`), но не уже триггера
|
|
20
|
+
* (`min-width = ширина триггера`) — режим `GrSelect view="link"`;
|
|
21
|
+
* - функция-геттер — как и `placement`, для реактивной зависимости от пропа.
|
|
22
|
+
*/
|
|
23
|
+
matchWidth?: boolean | 'min' | (() => boolean | 'min');
|
|
24
|
+
/** CSS-переменная шкалы слоёв (см. `styles/tokens.css`). По умолчанию `--gr-z-dropdown`. */
|
|
25
|
+
zIndexVar?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface UseFloatingReturn {
|
|
28
|
+
/** Готовый объект для `:style` на плавающем элементе. */
|
|
29
|
+
floatingStyle: Ref<CSSProperties>;
|
|
30
|
+
/**
|
|
31
|
+
* Итоговое место панели ПОСЛЕ применения `flip` — может отличаться от запрошенного
|
|
32
|
+
* `placement`, если места не хватило и панель перевернуло на противоположную сторону.
|
|
33
|
+
* Полезно для выбора `transform-origin`/направления transition в потребителе.
|
|
34
|
+
*/
|
|
35
|
+
resolvedPlacement: Ref<Placement>;
|
|
36
|
+
/** Принудительный пересчёт позиции (например, после изменения контента панели). */
|
|
37
|
+
update: () => void;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Единый движок позиционирования floating-панелей (Dropdown/Select/TreeSelect/Tooltip)
|
|
41
|
+
* поверх `@floating-ui/dom`: flip (переворот при нехватке места), shift (клэмп к границам
|
|
42
|
+
* viewport), опциональный `size`-мидлвар для растягивания по ширине триггера.
|
|
43
|
+
*
|
|
44
|
+
* Пересчёт положения при скролле/ресайзе делает `autoUpdate` из `@floating-ui/dom` —
|
|
45
|
+
* он сам использует `ResizeObserver`/`IntersectionObserver` и пассивные слушатели вместо
|
|
46
|
+
* наивного враппера на каждый `scroll`/`resize`, поэтому отдельный rAF-throttling здесь
|
|
47
|
+
* не нужен (в отличие от прежней ручной реализации в `GrSelect`/`GrDropdown`).
|
|
48
|
+
*
|
|
49
|
+
* Требует, чтобы `floatingEl` был примонтирован в DOM на момент открытия (обычно —
|
|
50
|
+
* `<teleport to="body">` + `v-show`, а не `v-if`): позиционирование не может измерить
|
|
51
|
+
* элемент, которого нет в дереве.
|
|
52
|
+
*/
|
|
53
|
+
export declare function useFloating(referenceEl: Ref<HTMLElement | null>, floatingEl: Ref<HTMLElement | null>, open: Ref<boolean>, options?: UseFloatingOptions): UseFloatingReturn;
|