@feugene/granularity 0.4.0 → 0.4.1
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-C7fKeUa4.js +6 -0
- package/dist/chunks/adapter-C7fKeUa4.js.map +1 -0
- package/dist/chunks/arrow-up-DNXrMoAI.js +25 -0
- package/dist/chunks/arrow-up-DNXrMoAI.js.map +1 -0
- package/dist/chunks/classTokens-BPeBXNzu.js +8 -0
- package/dist/chunks/classTokens-BPeBXNzu.js.map +1 -0
- package/dist/chunks/config-2wgwWaAB.js +10 -0
- package/dist/chunks/config-2wgwWaAB.js.map +1 -0
- package/dist/chunks/config-BKRmlivc.js +10 -0
- package/dist/chunks/config-BKRmlivc.js.map +1 -0
- package/dist/chunks/config-BRU5PR8_.js +10 -0
- package/dist/chunks/config-BRU5PR8_.js.map +1 -0
- package/dist/chunks/config-BUGfFjmC.js +16 -0
- package/dist/chunks/config-BUGfFjmC.js.map +1 -0
- package/dist/chunks/config-BXffa3ta.js +60 -0
- package/dist/chunks/config-BXffa3ta.js.map +1 -0
- package/dist/chunks/config-BaMO9dQh.js +22 -0
- package/dist/chunks/config-BaMO9dQh.js.map +1 -0
- package/dist/chunks/config-BbtK511H.js +11 -0
- package/dist/chunks/config-BbtK511H.js.map +1 -0
- package/dist/chunks/config-BcFOkUhh.js +15 -0
- package/dist/chunks/config-BcFOkUhh.js.map +1 -0
- package/dist/chunks/config-BcpRsZTe.js +10 -0
- package/dist/chunks/config-BcpRsZTe.js.map +1 -0
- package/dist/chunks/config-BhubOeci.js +15 -0
- package/dist/chunks/config-BhubOeci.js.map +1 -0
- package/dist/chunks/config-BhvNm4Pp.js +173 -0
- package/dist/chunks/config-BhvNm4Pp.js.map +1 -0
- package/dist/chunks/config-Bv2G0OU6.js +10 -0
- package/dist/chunks/config-Bv2G0OU6.js.map +1 -0
- package/dist/chunks/config-Bv5Dok4j.js +41 -0
- package/dist/chunks/config-Bv5Dok4j.js.map +1 -0
- package/dist/chunks/config-BzQ4S4Hb.js +11 -0
- package/dist/chunks/config-BzQ4S4Hb.js.map +1 -0
- package/dist/chunks/config-BzZGpWsj.js +11 -0
- package/dist/chunks/config-BzZGpWsj.js.map +1 -0
- package/dist/chunks/config-C0b_3LJV.js +42 -0
- package/dist/chunks/config-C0b_3LJV.js.map +1 -0
- package/dist/chunks/config-C2JKq8-2.js +60 -0
- package/dist/chunks/config-C2JKq8-2.js.map +1 -0
- package/dist/chunks/config-C6SBJxcH.js +10 -0
- package/dist/chunks/config-C6SBJxcH.js.map +1 -0
- package/dist/chunks/config-CJbjLC5X.js +55 -0
- package/dist/chunks/config-CJbjLC5X.js.map +1 -0
- package/dist/chunks/config-CJeyaUTp.js +40 -0
- package/dist/chunks/config-CJeyaUTp.js.map +1 -0
- package/dist/chunks/config-CMZE2fu0.js +11 -0
- package/dist/chunks/config-CMZE2fu0.js.map +1 -0
- package/dist/chunks/config-CU_CBd0k.js +24 -0
- package/dist/chunks/config-CU_CBd0k.js.map +1 -0
- package/dist/chunks/config-CYPU3ztl.js +26 -0
- package/dist/chunks/config-CYPU3ztl.js.map +1 -0
- package/dist/chunks/config-CcmeMlic.js +19 -0
- package/dist/chunks/config-CcmeMlic.js.map +1 -0
- package/dist/chunks/config-CdAx6ify2.js +11 -0
- package/dist/chunks/config-CdAx6ify2.js.map +1 -0
- package/dist/chunks/config-CxCAfXZ1.js +23 -0
- package/dist/chunks/config-CxCAfXZ1.js.map +1 -0
- package/dist/chunks/config-D1gSaT52.js +11 -0
- package/dist/chunks/config-D1gSaT52.js.map +1 -0
- package/dist/chunks/config-D7iuXJbl.js +11 -0
- package/dist/chunks/config-D7iuXJbl.js.map +1 -0
- package/dist/chunks/config-D7tRu8u3.js +11 -0
- package/dist/chunks/config-D7tRu8u3.js.map +1 -0
- package/dist/chunks/config-DBYCntwl.js +10 -0
- package/dist/chunks/config-DBYCntwl.js.map +1 -0
- package/dist/chunks/config-DFRYOcrP.js +11 -0
- package/dist/chunks/config-DFRYOcrP.js.map +1 -0
- package/dist/chunks/config-DW_RqmUp.js +10 -0
- package/dist/chunks/config-DW_RqmUp.js.map +1 -0
- package/dist/chunks/config-Dkq0HeLe.js +11 -0
- package/dist/chunks/config-Dkq0HeLe.js.map +1 -0
- package/dist/chunks/config-DlLE49_I.js +11 -0
- package/dist/chunks/config-DlLE49_I.js.map +1 -0
- package/dist/chunks/config-DvTUDLT1.js +46 -0
- package/dist/chunks/config-DvTUDLT1.js.map +1 -0
- package/dist/chunks/config-DwB5-qdP2.js +10 -0
- package/dist/chunks/config-DwB5-qdP2.js.map +1 -0
- package/dist/chunks/config-DxqMXzNV2.js +25 -0
- package/dist/chunks/config-DxqMXzNV2.js.map +1 -0
- package/dist/chunks/config-DxqpV-KM.js +47 -0
- package/dist/chunks/config-DxqpV-KM.js.map +1 -0
- package/dist/chunks/config-Dzz9P-GV2.js +11 -0
- package/dist/chunks/config-Dzz9P-GV2.js.map +1 -0
- package/dist/chunks/config-KGTIAFD92.js +10 -0
- package/dist/chunks/config-KGTIAFD92.js.map +1 -0
- package/dist/chunks/config-TyzU6gLf.js +10 -0
- package/dist/chunks/config-TyzU6gLf.js.map +1 -0
- package/dist/chunks/config-cn6knwud.js +37 -0
- package/dist/chunks/config-cn6knwud.js.map +1 -0
- package/dist/chunks/config-dD6Po-Cq.js +10 -0
- package/dist/chunks/config-dD6Po-Cq.js.map +1 -0
- package/dist/chunks/config-rFwazRKi.js +11 -0
- package/dist/chunks/config-rFwazRKi.js.map +1 -0
- package/dist/chunks/config-rQlbnEKn.js +10 -0
- package/dist/chunks/config-rQlbnEKn.js.map +1 -0
- package/dist/chunks/config-rxFL-6yF2.js +80 -0
- package/dist/chunks/config-rxFL-6yF2.js.map +1 -0
- package/dist/chunks/config-ug8O8epd.js +13 -0
- package/dist/chunks/config-ug8O8epd.js.map +1 -0
- package/dist/chunks/dialogShared-BtXUk6Zc.js +34 -0
- package/dist/chunks/dialogShared-BtXUk6Zc.js.map +1 -0
- package/dist/chunks/directives-Cuib0yOO.js +728 -0
- package/dist/chunks/directives-Cuib0yOO.js.map +1 -0
- package/dist/chunks/en-BMjJZttK.js +50 -0
- package/dist/chunks/en-BMjJZttK.js.map +1 -0
- package/dist/chunks/es-Cu_RlgIr.js +22 -0
- package/dist/chunks/es-Cu_RlgIr.js.map +1 -0
- package/dist/chunks/es-EYCf8G_1.js +50 -0
- package/dist/chunks/es-EYCf8G_1.js.map +1 -0
- package/dist/chunks/fileValidation-CgjTGoUx.js +221 -0
- package/dist/chunks/fileValidation-CgjTGoUx.js.map +1 -0
- package/dist/chunks/{grBadgeStyles-Bu4H8bFc.js → grBadgeStyles-pqqbVgLk.js} +20 -13
- package/dist/chunks/grBadgeStyles-pqqbVgLk.js.map +1 -0
- package/dist/chunks/{grButtonStyles-C5k0bN2e.js → grButtonStyles-BxZW2x0-.js} +62 -52
- package/dist/chunks/grButtonStyles-BxZW2x0-.js.map +1 -0
- package/dist/chunks/grDropdownStyles-DQfLh-bp.js +34 -0
- package/dist/chunks/grDropdownStyles-DQfLh-bp.js.map +1 -0
- package/dist/chunks/grLoadingStyles-CERsxyk9.js +19 -0
- package/dist/chunks/grLoadingStyles-CERsxyk9.js.map +1 -0
- package/dist/chunks/grModalStyles-Dv2NXBKi.js +49 -0
- package/dist/chunks/grModalStyles-Dv2NXBKi.js.map +1 -0
- package/dist/chunks/grSelectStyles-C1zNEkV7.js +52 -0
- package/dist/chunks/grSelectStyles-C1zNEkV7.js.map +1 -0
- package/dist/chunks/granularityI18n-BEWP9aJs.js +28 -0
- package/dist/chunks/granularityI18n-BEWP9aJs.js.map +1 -0
- package/dist/chunks/info-C0bHmdZq.js +28 -0
- package/dist/chunks/info-C0bHmdZq.js.map +1 -0
- package/dist/chunks/loader-circle-B2rWDk5u.js +25 -0
- package/dist/chunks/loader-circle-B2rWDk5u.js.map +1 -0
- package/dist/chunks/ru-DKswMSdd.js +50 -0
- package/dist/chunks/ru-DKswMSdd.js.map +1 -0
- package/dist/chunks/safelist-BF822K15.js +15 -0
- package/dist/chunks/safelist-BF822K15.js.map +1 -0
- package/dist/chunks/safelist-BY7z8fOl.js +26 -0
- package/dist/chunks/safelist-BY7z8fOl.js.map +1 -0
- package/dist/chunks/{shared-BqUqjuxn.js → shared-Bvjkhhm2.js} +151 -111
- package/dist/chunks/shared-Bvjkhhm2.js.map +1 -0
- package/dist/chunks/transition-mJ3PZCHH.js +1694 -0
- package/dist/chunks/transition-mJ3PZCHH.js.map +1 -0
- package/dist/chunks/x-Pa6C2hwi.js +25 -0
- package/dist/chunks/x-Pa6C2hwi.js.map +1 -0
- package/dist/chunks/x-circle-DQSlBLmX.js +69 -0
- package/dist/chunks/x-circle-DQSlBLmX.js.map +1 -0
- package/dist/components/GrAlert/chunks/GrAlert-BjerGcU8.js +148 -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 +43 -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 +34 -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 +35 -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 +33 -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 +85 -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 +23 -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 +13 -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 +136 -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 +207 -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 +133 -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 +181 -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 +223 -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 +158 -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-DVTU32T_.js +153 -0
- package/dist/components/GrDropdown/chunks/GrDropdown-DVTU32T_.js.map +1 -0
- package/dist/components/GrDropdown/index.js +3 -3
- package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-fePQRcgh.js +311 -0
- package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-fePQRcgh.js.map +1 -0
- package/dist/components/GrDropdownMenu/index.js +3 -3
- package/dist/components/GrEmptyState/chunks/GrEmptyState-Bs8d3tgb.js +64 -0
- package/dist/components/GrEmptyState/chunks/GrEmptyState-Bs8d3tgb.js.map +1 -0
- package/dist/components/GrEmptyState/index.js +3 -3
- package/dist/components/GrFileUpload/chunks/GrFileUpload-DVv8yXpl.js +370 -0
- package/dist/components/GrFileUpload/chunks/GrFileUpload-DVv8yXpl.js.map +1 -0
- package/dist/components/GrFileUpload/index.js +4 -4
- package/dist/components/GrFormField/chunks/GrFormField-BzezYcS8.js +37 -0
- package/dist/components/GrFormField/chunks/GrFormField-BzezYcS8.js.map +1 -0
- package/dist/components/GrFormField/index.js +3 -3
- package/dist/components/GrFormFile/chunks/GrFormFile-DtZOypJW.js +315 -0
- package/dist/components/GrFormFile/chunks/GrFormFile-DtZOypJW.js.map +1 -0
- package/dist/components/GrFormFile/index.js +3 -3
- package/dist/components/GrFormSection/chunks/GrFormSection-BIPB1RIk.js +37 -0
- package/dist/components/GrFormSection/chunks/GrFormSection-BIPB1RIk.js.map +1 -0
- package/dist/components/GrFormSection/index.js +3 -3
- package/dist/components/GrIcon/chunks/GrIcon-BV7RBU_0.js +34 -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-fn8ilJTA.js +399 -0
- package/dist/components/GrImageViewer/chunks/GrImageViewer-fn8ilJTA.js.map +1 -0
- package/dist/components/GrImageViewer/index.js +3 -3
- package/dist/components/GrInput/chunks/GrInput-DLLRrH1A.js +213 -0
- package/dist/components/GrInput/chunks/GrInput-DLLRrH1A.js.map +1 -0
- package/dist/components/GrInput/index.js +3 -3
- package/dist/components/GrInputTag/chunks/GrInputTag-CzrrBxgU.js +259 -0
- package/dist/components/GrInputTag/chunks/GrInputTag-CzrrBxgU.js.map +1 -0
- package/dist/components/GrInputTag/index.js +3 -3
- package/dist/components/GrLink/chunks/GrLink-Dhkid3Mp.js +82 -0
- package/dist/components/GrLink/chunks/GrLink-Dhkid3Mp.js.map +1 -0
- package/dist/components/GrLink/index.js +3 -3
- package/dist/components/GrList/chunks/GrList-CjgeVjhY.js +79 -0
- package/dist/components/GrList/chunks/GrList-CjgeVjhY.js.map +1 -0
- package/dist/components/GrList/index.js +3 -3
- package/dist/components/GrLoading/chunks/GrLoading-DihGX3ol.js +71 -0
- package/dist/components/GrLoading/chunks/GrLoading-DihGX3ol.js.map +1 -0
- package/dist/components/GrLoading/index.js +3 -3
- package/dist/components/GrModal/chunks/GrModal-gvfvlp7k.js +170 -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-CQOAfO6y.js +77 -0
- package/dist/components/GrNavbar/chunks/GrNavbar-CQOAfO6y.js.map +1 -0
- package/dist/components/GrNavbar/index.js +3 -3
- package/dist/components/GrNumberInput/chunks/GrNumberInput-CyHgUotG.js +399 -0
- package/dist/components/GrNumberInput/chunks/GrNumberInput-CyHgUotG.js.map +1 -0
- package/dist/components/GrNumberInput/index.js +3 -3
- package/dist/components/GrPagination/chunks/GrPagination-C5cxRJsF.js +116 -0
- package/dist/components/GrPagination/chunks/GrPagination-C5cxRJsF.js.map +1 -0
- package/dist/components/GrPagination/index.js +3 -3
- package/dist/components/GrProgressBar/chunks/GrProgressBar-C9wAAFxR.js +41 -0
- package/dist/components/GrProgressBar/chunks/GrProgressBar-C9wAAFxR.js.map +1 -0
- package/dist/components/GrProgressBar/index.js +3 -3
- package/dist/components/GrPromptDialog/chunks/GrPromptDialog-Cfq9bvL3.js +192 -0
- package/dist/components/GrPromptDialog/chunks/GrPromptDialog-Cfq9bvL3.js.map +1 -0
- package/dist/components/GrPromptDialog/index.js +3 -3
- package/dist/components/GrRadio/chunks/GrRadio-B_t_ZNVl.js +186 -0
- package/dist/components/GrRadio/chunks/GrRadio-B_t_ZNVl.js.map +1 -0
- package/dist/components/GrRadio/index.js +3 -3
- package/dist/components/GrRadioGroup/chunks/GrRadioGroup-CVlgpUBr.js +82 -0
- package/dist/components/GrRadioGroup/chunks/GrRadioGroup-CVlgpUBr.js.map +1 -0
- package/dist/components/GrRadioGroup/index.js +3 -3
- package/dist/components/GrSegmented/chunks/GrSegmented-BPl1koHc.js +325 -0
- package/dist/components/GrSegmented/chunks/GrSegmented-BPl1koHc.js.map +1 -0
- package/dist/components/GrSegmented/index.js +3 -3
- package/dist/components/GrSelect/chunks/GrSelect-aVqUL-1F.js +445 -0
- package/dist/components/GrSelect/chunks/GrSelect-aVqUL-1F.js.map +1 -0
- package/dist/components/GrSelect/index.js +3 -3
- package/dist/components/GrSidebar/chunks/GrSidebar-DVucgcfV.js +46 -0
- package/dist/components/GrSidebar/chunks/GrSidebar-DVucgcfV.js.map +1 -0
- package/dist/components/GrSidebar/index.js +3 -3
- package/dist/components/GrSkeleton/chunks/GrSkeleton-CDTvCSoH.js +35 -0
- package/dist/components/GrSkeleton/chunks/GrSkeleton-CDTvCSoH.js.map +1 -0
- package/dist/components/GrSkeleton/index.js +3 -3
- package/dist/components/GrSwitch/chunks/GrSwitch-Bnamgqb2.js +81 -0
- package/dist/components/GrSwitch/chunks/GrSwitch-Bnamgqb2.js.map +1 -0
- package/dist/components/GrSwitch/index.js +3 -3
- package/dist/components/GrTable/chunks/GrTable-CyQ9uw8A.js +59 -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-CiGmcmvm.js +120 -0
- package/dist/components/GrTabs/chunks/GrTabs-CiGmcmvm.js.map +1 -0
- package/dist/components/GrTabs/index.js +3 -3
- package/dist/components/GrTextarea/chunks/GrTextarea-VBSc6A7D.js +73 -0
- package/dist/components/GrTextarea/chunks/GrTextarea-VBSc6A7D.js.map +1 -0
- package/dist/components/GrTextarea/index.js +3 -3
- package/dist/components/GrToaster/chunks/GrToaster-I1e-zCpf.js +173 -0
- package/dist/components/GrToaster/chunks/GrToaster-I1e-zCpf.js.map +1 -0
- package/dist/components/GrToaster/index.js +3 -3
- package/dist/components/GrTooltip/chunks/GrTooltip-CrV1gI_c.js +57 -0
- package/dist/components/GrTooltip/chunks/GrTooltip-CrV1gI_c.js.map +1 -0
- package/dist/components/GrTooltip/index.js +3 -3
- package/dist/components/GrTree/chunks/GrTree-Dlev9oBd.js +736 -0
- package/dist/components/GrTree/chunks/GrTree-Dlev9oBd.js.map +1 -0
- package/dist/components/GrTree/index.js +3 -3
- package/dist/components/GrTreeSelect/chunks/GrTreeSelect-DN6XFjOD.js +456 -0
- package/dist/components/GrTreeSelect/chunks/GrTreeSelect-DN6XFjOD.js.map +1 -0
- package/dist/components/GrTreeSelect/index.js +3 -3
- package/dist/composables/useTheme.js +41 -30
- package/dist/composables/useTheme.js.map +1 -0
- package/dist/composables/useToast.js +43 -34
- package/dist/composables/useToast.js.map +1 -0
- package/dist/directives/index.js +2 -2
- package/dist/fileValidation/index.js +2 -2
- package/dist/granular-provider-node.js +25 -14
- package/dist/granular-provider-node.js.map +1 -0
- package/dist/granular-provider.js +5 -3
- package/dist/granular-provider.js.map +1 -0
- package/dist/i18n/all.js +8 -6
- package/dist/i18n/all.js.map +1 -0
- package/dist/i18n/index.js +3 -3
- package/dist/index.js +105 -105
- package/dist/vue/index.js +66 -26
- package/dist/vue/index.js.map +1 -0
- package/package.json +1 -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/grDropdownStyles-149X1NeB.js +0 -31
- package/dist/chunks/grLoadingStyles-Bjo7ylmq.js +0 -15
- package/dist/chunks/grModalStyles-Dmd4havY.js +0 -38
- 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,41 @@
|
|
|
1
|
+
import { r as grProgressBarFillClass } from "../../../chunks/config-CJeyaUTp.js";
|
|
2
|
+
import { computed, createElementBlock, createElementVNode, defineComponent, normalizeClass, normalizeStyle, openBlock } from "vue";
|
|
3
|
+
//#region src/components/GrProgressBar/GrProgressBar.vue?vue&type=script&setup=true&lang.ts
|
|
4
|
+
var _hoisted_1 = ["aria-label", "aria-valuenow"];
|
|
5
|
+
//#endregion
|
|
6
|
+
//#region src/components/GrProgressBar/GrProgressBar.vue
|
|
7
|
+
var GrProgressBar_default = /* @__PURE__ */ defineComponent({
|
|
8
|
+
__name: "GrProgressBar",
|
|
9
|
+
props: {
|
|
10
|
+
value: {},
|
|
11
|
+
ariaLabel: { default: void 0 },
|
|
12
|
+
tone: { default: "primary" }
|
|
13
|
+
},
|
|
14
|
+
setup(__props) {
|
|
15
|
+
const props = __props;
|
|
16
|
+
const safe = computed(() => {
|
|
17
|
+
if (Number.isNaN(props.value)) return 0;
|
|
18
|
+
return Math.min(100, Math.max(0, props.value));
|
|
19
|
+
});
|
|
20
|
+
const fillClassName = computed(() => grProgressBarFillClass(props.tone));
|
|
21
|
+
return (_ctx, _cache) => {
|
|
22
|
+
return openBlock(), createElementBlock("div", {
|
|
23
|
+
"data-ds-progress-bar": "",
|
|
24
|
+
role: "progressbar",
|
|
25
|
+
"aria-label": __props.ariaLabel,
|
|
26
|
+
"aria-valuenow": safe.value,
|
|
27
|
+
"aria-valuemin": "0",
|
|
28
|
+
"aria-valuemax": "100",
|
|
29
|
+
class: "h-2 w-full rounded-full bg-[var(--muted)] border border-[var(--brd)] overflow-hidden"
|
|
30
|
+
}, [createElementVNode("div", {
|
|
31
|
+
"data-ds-progress-bar-fill": "",
|
|
32
|
+
class: normalizeClass(["h-full", fillClassName.value]),
|
|
33
|
+
style: normalizeStyle({ width: `${safe.value}%` })
|
|
34
|
+
}, null, 6)], 8, _hoisted_1);
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
//#endregion
|
|
39
|
+
export { GrProgressBar_default as t };
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=GrProgressBar-C9wAAFxR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GrProgressBar-C9wAAFxR.js","names":[],"sources":["../../../../src/components/GrProgressBar/GrProgressBar.vue","../../../../src/components/GrProgressBar/GrProgressBar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nimport { grProgressBarFillClass, type GrProgressBarTone } from './grStyle'\n\n/**\n * GrProgressBar — линейный индикатор прогресса.\n *\n * @prop value — текущее значение `0..100`; выходящие за границы значения клампятся, `NaN` → `0`.\n * @prop ariaLabel — метка для скринридера (обязательна, если рядом нет видимого заголовка).\n * @prop tone — цветовая тональность заливки (CSS-переменная из `tokens.css`).\n */\nexport interface GrProgressBarProps {\n value: number\n ariaLabel?: string\n tone?: GrProgressBarTone\n}\n\nconst props = withDefaults(defineProps<GrProgressBarProps>(), {\n ariaLabel: undefined,\n tone: 'primary',\n})\n\nconst safe = computed(() => {\n if (Number.isNaN(props.value))\n return 0\n return Math.min(100, Math.max(0, props.value))\n})\n\nconst fillClassName = computed(() => grProgressBarFillClass(props.tone))\n</script>\n\n<template>\n <div\n data-ds-progress-bar\n role=\"progressbar\"\n :aria-label=\"ariaLabel\"\n :aria-valuenow=\"safe\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n class=\"h-2 w-full rounded-full bg-[var(--muted)] border border-[var(--brd)] overflow-hidden\"\n >\n <div\n data-ds-progress-bar-fill\n class=\"h-full\"\n :class=\"fillClassName\"\n :style=\"{ width: `${safe}%` }\"\n />\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nimport { grProgressBarFillClass, type GrProgressBarTone } from './grStyle'\n\n/**\n * GrProgressBar — линейный индикатор прогресса.\n *\n * @prop value — текущее значение `0..100`; выходящие за границы значения клампятся, `NaN` → `0`.\n * @prop ariaLabel — метка для скринридера (обязательна, если рядом нет видимого заголовка).\n * @prop tone — цветовая тональность заливки (CSS-переменная из `tokens.css`).\n */\nexport interface GrProgressBarProps {\n value: number\n ariaLabel?: string\n tone?: GrProgressBarTone\n}\n\nconst props = withDefaults(defineProps<GrProgressBarProps>(), {\n ariaLabel: undefined,\n tone: 'primary',\n})\n\nconst safe = computed(() => {\n if (Number.isNaN(props.value))\n return 0\n return Math.min(100, Math.max(0, props.value))\n})\n\nconst fillClassName = computed(() => grProgressBarFillClass(props.tone))\n</script>\n\n<template>\n <div\n data-ds-progress-bar\n role=\"progressbar\"\n :aria-label=\"ariaLabel\"\n :aria-valuenow=\"safe\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n class=\"h-2 w-full rounded-full bg-[var(--muted)] border border-[var(--brd)] overflow-hidden\"\n >\n <div\n data-ds-progress-bar-fill\n class=\"h-full\"\n :class=\"fillClassName\"\n :style=\"{ width: `${safe}%` }\"\n />\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;EAkBA,MAAM,QAAQ;EAKd,MAAM,OAAO,eAAe;AAC1B,OAAI,OAAO,MAAM,MAAM,MAAM,CAC3B,QAAO;AACT,UAAO,KAAK,IAAI,KAAK,KAAK,IAAI,GAAG,MAAM,MAAM,CAAA;IAC9C;EAED,MAAM,gBAAgB,eAAe,uBAAuB,MAAM,KAAK,CAAA;;uBAIrE,mBAeM,OAAA;IAdJ,wBAAA;IACA,MAAK;IACJ,cAAY,QAAA;IACZ,iBAAe,KAAA;IAChB,iBAAc;IACd,iBAAc;IACd,OAAM;OAEN,mBAKE,OAAA;IAJA,6BAAA;IACA,OAAK,eAAA,CAAC,UACE,cAAA,MAAa,CAAA;IACpB,OAAK,eAAA,EAAA,OAAA,GAAc,KAAA,MAAI,IAAA,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as
|
|
2
|
-
import { t as
|
|
3
|
-
export {
|
|
1
|
+
import { n as grProgressBarSafelist, t as grProgressBarConfig } from "../../chunks/config-CJeyaUTp.js";
|
|
2
|
+
import { t as GrProgressBar_default } from "./chunks/GrProgressBar-C9wAAFxR.js";
|
|
3
|
+
export { GrProgressBar_default as GrProgressBar, GrProgressBar_default as default, grProgressBarConfig, grProgressBarSafelist };
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import { t as GrButton_default } from "../../GrButton/chunks/GrButton-BmGdp8-4.js";
|
|
2
|
+
import { t as GrDialog_default } from "../../GrDialog/chunks/GrDialog-gObmaVEl.js";
|
|
3
|
+
import { t as GrFormField_default } from "../../GrFormField/chunks/GrFormField-BzezYcS8.js";
|
|
4
|
+
import { t as GrInput_default } from "../../GrInput/chunks/GrInput-DLLRrH1A.js";
|
|
5
|
+
import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, openBlock, ref, renderSlot, toDisplayString, watch, withCtx } from "vue";
|
|
6
|
+
//#region src/components/GrPromptDialog/GrPromptDialog.vue?vue&type=script&setup=true&lang.ts
|
|
7
|
+
var _hoisted_1 = { class: "grid gap-4" };
|
|
8
|
+
var _hoisted_2 = {
|
|
9
|
+
key: 0,
|
|
10
|
+
class: "text-[14px] text-[var(--muted-fg)]"
|
|
11
|
+
};
|
|
12
|
+
var _hoisted_3 = { class: "flex items-center justify-end gap-3" };
|
|
13
|
+
//#endregion
|
|
14
|
+
//#region src/components/GrPromptDialog/GrPromptDialog.vue
|
|
15
|
+
var GrPromptDialog_default = /* @__PURE__ */ defineComponent({
|
|
16
|
+
__name: "GrPromptDialog",
|
|
17
|
+
props: {
|
|
18
|
+
modelValue: { type: Boolean },
|
|
19
|
+
value: {},
|
|
20
|
+
title: { default: "Prompt" },
|
|
21
|
+
description: { default: void 0 },
|
|
22
|
+
label: { default: "Value" },
|
|
23
|
+
placeholder: { default: void 0 },
|
|
24
|
+
closeOnBackdrop: {
|
|
25
|
+
type: Boolean,
|
|
26
|
+
default: true
|
|
27
|
+
},
|
|
28
|
+
closeOnEsc: {
|
|
29
|
+
type: Boolean,
|
|
30
|
+
default: true
|
|
31
|
+
},
|
|
32
|
+
showHeader: {
|
|
33
|
+
type: Boolean,
|
|
34
|
+
default: true
|
|
35
|
+
},
|
|
36
|
+
showCloseButton: {
|
|
37
|
+
type: Boolean,
|
|
38
|
+
default: true
|
|
39
|
+
},
|
|
40
|
+
size: { default: "md" },
|
|
41
|
+
headerConfig: { default: void 0 },
|
|
42
|
+
footerConfig: { default: void 0 },
|
|
43
|
+
bodyConfig: { default: void 0 },
|
|
44
|
+
closeLabel: { default: "Close" },
|
|
45
|
+
buttonSize: { default: void 0 },
|
|
46
|
+
confirmText: { default: "Confirm" },
|
|
47
|
+
cancelText: { default: "Cancel" },
|
|
48
|
+
requiredErrorText: { default: "Enter a value." },
|
|
49
|
+
confirmVariant: { default: "primary" },
|
|
50
|
+
confirmTone: { default: "primary" },
|
|
51
|
+
required: {
|
|
52
|
+
type: Boolean,
|
|
53
|
+
default: true
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
emits: [
|
|
57
|
+
"update:modelValue",
|
|
58
|
+
"update:value",
|
|
59
|
+
"confirm",
|
|
60
|
+
"cancel"
|
|
61
|
+
],
|
|
62
|
+
setup(__props, { emit: __emit }) {
|
|
63
|
+
/**
|
|
64
|
+
* GrPromptDialog — DS-примитив диалога ввода значения поверх `GrDialog`.
|
|
65
|
+
*
|
|
66
|
+
* Синхронизирован с `GrDialog` по набору проп-проксирования:
|
|
67
|
+
* `size`, `closeOnBackdrop`, `closeOnEsc`, `showHeader`, `showCloseButton`,
|
|
68
|
+
* `headerConfig`, `footerConfig`, `bodyConfig`, `closeLabel`.
|
|
69
|
+
*
|
|
70
|
+
* Поведение `required=true` (по умолчанию): пустое значение подсвечивается
|
|
71
|
+
* ошибкой только после первого «касания» (blur или попытка confirm),
|
|
72
|
+
* чтобы не шуметь при открытии.
|
|
73
|
+
*/
|
|
74
|
+
const props = __props;
|
|
75
|
+
const emit = __emit;
|
|
76
|
+
const open = computed({
|
|
77
|
+
get: () => props.modelValue,
|
|
78
|
+
set: (v) => emit("update:modelValue", v)
|
|
79
|
+
});
|
|
80
|
+
const valueModel = computed({
|
|
81
|
+
get: () => props.value,
|
|
82
|
+
set: (v) => emit("update:value", v)
|
|
83
|
+
});
|
|
84
|
+
const touched = ref(false);
|
|
85
|
+
const inputRef = ref(null);
|
|
86
|
+
watch(() => props.modelValue, (v) => {
|
|
87
|
+
if (v) touched.value = false;
|
|
88
|
+
});
|
|
89
|
+
const canConfirm = computed(() => {
|
|
90
|
+
if (!props.required) return true;
|
|
91
|
+
return valueModel.value.trim().length > 0;
|
|
92
|
+
});
|
|
93
|
+
const error = computed(() => {
|
|
94
|
+
if (!props.required) return void 0;
|
|
95
|
+
if (!touched.value) return void 0;
|
|
96
|
+
return valueModel.value.trim().length > 0 ? void 0 : props.requiredErrorText;
|
|
97
|
+
});
|
|
98
|
+
function onCancel() {
|
|
99
|
+
emit("cancel");
|
|
100
|
+
emit("update:modelValue", false);
|
|
101
|
+
}
|
|
102
|
+
function onConfirm() {
|
|
103
|
+
if (!canConfirm.value) {
|
|
104
|
+
touched.value = true;
|
|
105
|
+
inputRef.value?.focus();
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
emit("confirm", valueModel.value);
|
|
109
|
+
emit("update:modelValue", false);
|
|
110
|
+
}
|
|
111
|
+
return (_ctx, _cache) => {
|
|
112
|
+
return openBlock(), createBlock(GrDialog_default, {
|
|
113
|
+
modelValue: open.value,
|
|
114
|
+
"onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => open.value = $event),
|
|
115
|
+
title: __props.title,
|
|
116
|
+
size: __props.size,
|
|
117
|
+
"close-on-backdrop": __props.closeOnBackdrop,
|
|
118
|
+
"close-on-esc": __props.closeOnEsc,
|
|
119
|
+
"show-header": __props.showHeader,
|
|
120
|
+
"show-close-button": __props.showCloseButton,
|
|
121
|
+
"header-config": __props.headerConfig,
|
|
122
|
+
"footer-config": __props.footerConfig,
|
|
123
|
+
"body-config": __props.bodyConfig,
|
|
124
|
+
"close-label": __props.closeLabel
|
|
125
|
+
}, {
|
|
126
|
+
footer: withCtx(() => [renderSlot(_ctx.$slots, "footer", {}, () => [createElementVNode("div", _hoisted_3, [createVNode(GrButton_default, {
|
|
127
|
+
"data-testid": "ds-prompt-cancel",
|
|
128
|
+
variant: "outline",
|
|
129
|
+
size: __props.buttonSize,
|
|
130
|
+
onClick: onCancel
|
|
131
|
+
}, {
|
|
132
|
+
default: withCtx(() => [createTextVNode(toDisplayString(__props.cancelText), 1)]),
|
|
133
|
+
_: 1
|
|
134
|
+
}, 8, ["size"]), createVNode(GrButton_default, {
|
|
135
|
+
"data-testid": "ds-prompt-confirm",
|
|
136
|
+
variant: __props.confirmVariant,
|
|
137
|
+
tone: __props.confirmTone,
|
|
138
|
+
size: __props.buttonSize,
|
|
139
|
+
disabled: __props.required && touched.value && !canConfirm.value,
|
|
140
|
+
onClick: onConfirm
|
|
141
|
+
}, {
|
|
142
|
+
default: withCtx(() => [createTextVNode(toDisplayString(__props.confirmText), 1)]),
|
|
143
|
+
_: 1
|
|
144
|
+
}, 8, [
|
|
145
|
+
"variant",
|
|
146
|
+
"tone",
|
|
147
|
+
"size",
|
|
148
|
+
"disabled"
|
|
149
|
+
])])])]),
|
|
150
|
+
default: withCtx(() => [createElementVNode("div", _hoisted_1, [renderSlot(_ctx.$slots, "default", {}, () => [__props.description ? (openBlock(), createElementBlock("div", _hoisted_2, toDisplayString(__props.description), 1)) : createCommentVNode("", true)]), createVNode(GrFormField_default, {
|
|
151
|
+
label: __props.label,
|
|
152
|
+
error: error.value,
|
|
153
|
+
"for-id": "ds-prompt-input"
|
|
154
|
+
}, {
|
|
155
|
+
default: withCtx(() => [createVNode(GrInput_default, {
|
|
156
|
+
id: "ds-prompt-input",
|
|
157
|
+
ref_key: "inputRef",
|
|
158
|
+
ref: inputRef,
|
|
159
|
+
modelValue: valueModel.value,
|
|
160
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => valueModel.value = $event),
|
|
161
|
+
"data-testid": "ds-prompt-input",
|
|
162
|
+
placeholder: __props.placeholder,
|
|
163
|
+
invalid: !!error.value,
|
|
164
|
+
onBlur: _cache[1] || (_cache[1] = ($event) => touched.value = true)
|
|
165
|
+
}, null, 8, [
|
|
166
|
+
"modelValue",
|
|
167
|
+
"placeholder",
|
|
168
|
+
"invalid"
|
|
169
|
+
])]),
|
|
170
|
+
_: 1
|
|
171
|
+
}, 8, ["label", "error"])])]),
|
|
172
|
+
_: 3
|
|
173
|
+
}, 8, [
|
|
174
|
+
"modelValue",
|
|
175
|
+
"title",
|
|
176
|
+
"size",
|
|
177
|
+
"close-on-backdrop",
|
|
178
|
+
"close-on-esc",
|
|
179
|
+
"show-header",
|
|
180
|
+
"show-close-button",
|
|
181
|
+
"header-config",
|
|
182
|
+
"footer-config",
|
|
183
|
+
"body-config",
|
|
184
|
+
"close-label"
|
|
185
|
+
]);
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
//#endregion
|
|
190
|
+
export { GrPromptDialog_default as t };
|
|
191
|
+
|
|
192
|
+
//# sourceMappingURL=GrPromptDialog-Cfq9bvL3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GrPromptDialog-Cfq9bvL3.js","names":[],"sources":["../../../../src/components/GrPromptDialog/GrPromptDialog.vue","../../../../src/components/GrPromptDialog/GrPromptDialog.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * GrPromptDialog — DS-примитив диалога ввода значения поверх `GrDialog`.\n *\n * Синхронизирован с `GrDialog` по набору проп-проксирования:\n * `size`, `closeOnBackdrop`, `closeOnEsc`, `showHeader`, `showCloseButton`,\n * `headerConfig`, `footerConfig`, `bodyConfig`, `closeLabel`.\n *\n * Поведение `required=true` (по умолчанию): пустое значение подсвечивается\n * ошибкой только после первого «касания» (blur или попытка confirm),\n * чтобы не шуметь при открытии.\n */\nimport { computed, ref, watch } from 'vue'\n\nimport GrButton from '../GrButton/GrButton.vue'\nimport GrDialog from '../GrDialog/GrDialog.vue'\nimport GrFormField from '../GrFormField/GrFormField.vue'\nimport GrInput from '../GrInput/GrInput.vue'\nimport type { GrButtonSize, GrButtonTone, GrButtonVariant } from '../GrButton'\nimport type { GrDialogSectionConfig, GrDialogSize } from '../GrDialog'\n\nexport interface GrPromptDialogProps {\n modelValue: boolean\n value: string\n title?: string\n description?: string\n label?: string\n placeholder?: string\n closeOnBackdrop?: boolean\n closeOnEsc?: boolean\n showHeader?: boolean\n showCloseButton?: boolean\n size?: GrDialogSize\n headerConfig?: GrDialogSectionConfig\n footerConfig?: GrDialogSectionConfig\n bodyConfig?: GrDialogSectionConfig\n /** A11y-лейбл кнопки закрытия (i18n). */\n closeLabel?: string\n buttonSize?: GrButtonSize\n confirmText?: string\n cancelText?: string\n /** Текст ошибки для пустого значения при `required=true` (i18n). */\n requiredErrorText?: string\n confirmVariant?: GrButtonVariant\n confirmTone?: GrButtonTone\n required?: boolean\n}\n\nconst props = withDefaults(defineProps<GrPromptDialogProps>(), {\n title: 'Prompt',\n description: undefined,\n label: 'Value',\n placeholder: undefined,\n closeOnBackdrop: true,\n closeOnEsc: true,\n showHeader: true,\n showCloseButton: true,\n size: 'md',\n headerConfig: undefined,\n footerConfig: undefined,\n bodyConfig: undefined,\n closeLabel: 'Close',\n buttonSize: undefined,\n confirmText: 'Confirm',\n cancelText: 'Cancel',\n requiredErrorText: 'Enter a value.',\n confirmVariant: 'primary',\n confirmTone: 'primary',\n required: true,\n})\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: boolean): void\n (e: 'update:value', value: string): void\n (e: 'confirm', value: string): void\n (e: 'cancel'): void\n}>()\n\nconst open = computed({\n get: () => props.modelValue,\n set: (v: boolean) => emit('update:modelValue', v),\n})\n\nconst valueModel = computed({\n get: () => props.value,\n set: (v: string) => emit('update:value', v),\n})\n\nconst touched = ref(false)\nconst inputRef = ref<InstanceType<typeof GrInput> | null>(null)\n\nwatch(\n () => props.modelValue,\n (v) => {\n if (v) touched.value = false\n },\n)\n\nconst canConfirm = computed(() => {\n if (!props.required) return true\n return valueModel.value.trim().length > 0\n})\n\nconst error = computed(() => {\n if (!props.required) return undefined\n if (!touched.value) return undefined\n return valueModel.value.trim().length > 0\n ? undefined\n : props.requiredErrorText\n})\n\nfunction onCancel(): void {\n emit('cancel')\n emit('update:modelValue', false)\n}\n\nfunction onConfirm(): void {\n if (!canConfirm.value) {\n touched.value = true\n inputRef.value?.focus()\n return\n }\n\n emit('confirm', valueModel.value)\n emit('update:modelValue', false)\n}\n</script>\n\n<template>\n <GrDialog\n v-model=\"open\"\n :title=\"title\"\n :size=\"size\"\n :close-on-backdrop=\"closeOnBackdrop\"\n :close-on-esc=\"closeOnEsc\"\n :show-header=\"showHeader\"\n :show-close-button=\"showCloseButton\"\n :header-config=\"headerConfig\"\n :footer-config=\"footerConfig\"\n :body-config=\"bodyConfig\"\n :close-label=\"closeLabel\"\n >\n <div class=\"grid gap-4\">\n <slot>\n <div v-if=\"description\" class=\"text-[14px] text-[var(--muted-fg)]\">\n {{ description }}\n </div>\n </slot>\n\n <GrFormField :label=\"label\" :error=\"error\" for-id=\"ds-prompt-input\">\n <GrInput\n id=\"ds-prompt-input\"\n ref=\"inputRef\"\n v-model=\"valueModel\"\n data-testid=\"ds-prompt-input\"\n :placeholder=\"placeholder\"\n :invalid=\"!!error\"\n @blur=\"touched = true\"\n />\n </GrFormField>\n </div>\n\n <template #footer>\n <slot name=\"footer\">\n <div class=\"flex items-center justify-end gap-3\">\n <GrButton data-testid=\"ds-prompt-cancel\" variant=\"outline\" :size=\"buttonSize\" @click=\"onCancel\">\n {{ cancelText }}\n </GrButton>\n <GrButton\n data-testid=\"ds-prompt-confirm\"\n :variant=\"confirmVariant\"\n :tone=\"confirmTone\"\n :size=\"buttonSize\"\n :disabled=\"required && touched && !canConfirm\"\n @click=\"onConfirm\"\n >\n {{ confirmText }}\n </GrButton>\n </div>\n </slot>\n </template>\n </GrDialog>\n</template>\n","<script setup lang=\"ts\">\n/**\n * GrPromptDialog — DS-примитив диалога ввода значения поверх `GrDialog`.\n *\n * Синхронизирован с `GrDialog` по набору проп-проксирования:\n * `size`, `closeOnBackdrop`, `closeOnEsc`, `showHeader`, `showCloseButton`,\n * `headerConfig`, `footerConfig`, `bodyConfig`, `closeLabel`.\n *\n * Поведение `required=true` (по умолчанию): пустое значение подсвечивается\n * ошибкой только после первого «касания» (blur или попытка confirm),\n * чтобы не шуметь при открытии.\n */\nimport { computed, ref, watch } from 'vue'\n\nimport GrButton from '../GrButton/GrButton.vue'\nimport GrDialog from '../GrDialog/GrDialog.vue'\nimport GrFormField from '../GrFormField/GrFormField.vue'\nimport GrInput from '../GrInput/GrInput.vue'\nimport type { GrButtonSize, GrButtonTone, GrButtonVariant } from '../GrButton'\nimport type { GrDialogSectionConfig, GrDialogSize } from '../GrDialog'\n\nexport interface GrPromptDialogProps {\n modelValue: boolean\n value: string\n title?: string\n description?: string\n label?: string\n placeholder?: string\n closeOnBackdrop?: boolean\n closeOnEsc?: boolean\n showHeader?: boolean\n showCloseButton?: boolean\n size?: GrDialogSize\n headerConfig?: GrDialogSectionConfig\n footerConfig?: GrDialogSectionConfig\n bodyConfig?: GrDialogSectionConfig\n /** A11y-лейбл кнопки закрытия (i18n). */\n closeLabel?: string\n buttonSize?: GrButtonSize\n confirmText?: string\n cancelText?: string\n /** Текст ошибки для пустого значения при `required=true` (i18n). */\n requiredErrorText?: string\n confirmVariant?: GrButtonVariant\n confirmTone?: GrButtonTone\n required?: boolean\n}\n\nconst props = withDefaults(defineProps<GrPromptDialogProps>(), {\n title: 'Prompt',\n description: undefined,\n label: 'Value',\n placeholder: undefined,\n closeOnBackdrop: true,\n closeOnEsc: true,\n showHeader: true,\n showCloseButton: true,\n size: 'md',\n headerConfig: undefined,\n footerConfig: undefined,\n bodyConfig: undefined,\n closeLabel: 'Close',\n buttonSize: undefined,\n confirmText: 'Confirm',\n cancelText: 'Cancel',\n requiredErrorText: 'Enter a value.',\n confirmVariant: 'primary',\n confirmTone: 'primary',\n required: true,\n})\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: boolean): void\n (e: 'update:value', value: string): void\n (e: 'confirm', value: string): void\n (e: 'cancel'): void\n}>()\n\nconst open = computed({\n get: () => props.modelValue,\n set: (v: boolean) => emit('update:modelValue', v),\n})\n\nconst valueModel = computed({\n get: () => props.value,\n set: (v: string) => emit('update:value', v),\n})\n\nconst touched = ref(false)\nconst inputRef = ref<InstanceType<typeof GrInput> | null>(null)\n\nwatch(\n () => props.modelValue,\n (v) => {\n if (v) touched.value = false\n },\n)\n\nconst canConfirm = computed(() => {\n if (!props.required) return true\n return valueModel.value.trim().length > 0\n})\n\nconst error = computed(() => {\n if (!props.required) return undefined\n if (!touched.value) return undefined\n return valueModel.value.trim().length > 0\n ? undefined\n : props.requiredErrorText\n})\n\nfunction onCancel(): void {\n emit('cancel')\n emit('update:modelValue', false)\n}\n\nfunction onConfirm(): void {\n if (!canConfirm.value) {\n touched.value = true\n inputRef.value?.focus()\n return\n }\n\n emit('confirm', valueModel.value)\n emit('update:modelValue', false)\n}\n</script>\n\n<template>\n <GrDialog\n v-model=\"open\"\n :title=\"title\"\n :size=\"size\"\n :close-on-backdrop=\"closeOnBackdrop\"\n :close-on-esc=\"closeOnEsc\"\n :show-header=\"showHeader\"\n :show-close-button=\"showCloseButton\"\n :header-config=\"headerConfig\"\n :footer-config=\"footerConfig\"\n :body-config=\"bodyConfig\"\n :close-label=\"closeLabel\"\n >\n <div class=\"grid gap-4\">\n <slot>\n <div v-if=\"description\" class=\"text-[14px] text-[var(--muted-fg)]\">\n {{ description }}\n </div>\n </slot>\n\n <GrFormField :label=\"label\" :error=\"error\" for-id=\"ds-prompt-input\">\n <GrInput\n id=\"ds-prompt-input\"\n ref=\"inputRef\"\n v-model=\"valueModel\"\n data-testid=\"ds-prompt-input\"\n :placeholder=\"placeholder\"\n :invalid=\"!!error\"\n @blur=\"touched = true\"\n />\n </GrFormField>\n </div>\n\n <template #footer>\n <slot name=\"footer\">\n <div class=\"flex items-center justify-end gap-3\">\n <GrButton data-testid=\"ds-prompt-cancel\" variant=\"outline\" :size=\"buttonSize\" @click=\"onCancel\">\n {{ cancelText }}\n </GrButton>\n <GrButton\n data-testid=\"ds-prompt-confirm\"\n :variant=\"confirmVariant\"\n :tone=\"confirmTone\"\n :size=\"buttonSize\"\n :disabled=\"required && touched && !canConfirm\"\n @click=\"onConfirm\"\n >\n {{ confirmText }}\n </GrButton>\n </div>\n </slot>\n </template>\n </GrDialog>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgDA,MAAM,QAAQ;EAuBd,MAAM,OAAO;EAOb,MAAM,OAAO,SAAS;GACpB,WAAW,MAAM;GACjB,MAAM,MAAe,KAAK,qBAAqB,EAAE;GAClD,CAAA;EAED,MAAM,aAAa,SAAS;GAC1B,WAAW,MAAM;GACjB,MAAM,MAAc,KAAK,gBAAgB,EAAE;GAC5C,CAAA;EAED,MAAM,UAAU,IAAI,MAAK;EACzB,MAAM,WAAW,IAAyC,KAAI;AAE9D,cACQ,MAAM,aACX,MAAM;AACL,OAAI,EAAG,SAAQ,QAAQ;IAE3B;EAEA,MAAM,aAAa,eAAe;AAChC,OAAI,CAAC,MAAM,SAAU,QAAO;AAC5B,UAAO,WAAW,MAAM,MAAM,CAAC,SAAS;IACzC;EAED,MAAM,QAAQ,eAAe;AAC3B,OAAI,CAAC,MAAM,SAAU,QAAO,KAAA;AAC5B,OAAI,CAAC,QAAQ,MAAO,QAAO,KAAA;AAC3B,UAAO,WAAW,MAAM,MAAM,CAAC,SAAS,IACpC,KAAA,IACA,MAAM;IACX;EAED,SAAS,WAAiB;AACxB,QAAK,SAAQ;AACb,QAAK,qBAAqB,MAAK;;EAGjC,SAAS,YAAkB;AACzB,OAAI,CAAC,WAAW,OAAO;AACrB,YAAQ,QAAQ;AAChB,aAAS,OAAO,OAAM;AACtB;;AAGF,QAAK,WAAW,WAAW,MAAK;AAChC,QAAK,qBAAqB,MAAK;;;uBAK/B,YAoDW,kBAAA;gBAnDA,KAAA;sEAAI,QAAA;IACZ,OAAO,QAAA;IACP,MAAM,QAAA;IACN,qBAAmB,QAAA;IACnB,gBAAc,QAAA;IACd,eAAa,QAAA;IACb,qBAAmB,QAAA;IACnB,iBAAe,QAAA;IACf,iBAAe,QAAA;IACf,eAAa,QAAA;IACb,eAAa,QAAA;;IAsBH,QAAM,cAiBR,CAhBP,WAgBO,KAAA,QAAA,UAAA,EAAA,QAAA,CAfL,mBAcM,OAdN,YAcM,CAbJ,YAEW,kBAAA;KAFD,eAAY;KAAmB,SAAQ;KAAW,MAAM,QAAA;KAAa,SAAO;;4BACpE,CAAA,gBAAA,gBAAb,QAAA,WAAU,EAAA,EAAA,CAAA,CAAA;;qBAEf,YASW,kBAAA;KART,eAAY;KACX,SAAS,QAAA;KACT,MAAM,QAAA;KACN,MAAM,QAAA;KACN,UAAU,QAAA,YAAY,QAAA,SAAO,CAAK,WAAA;KAClC,SAAO;;4BAES,CAAA,gBAAA,gBAAd,QAAA,YAAW,EAAA,EAAA,CAAA,CAAA;;;;;;;;2BAhBhB,CAlBN,mBAkBM,OAlBN,YAkBM,CAjBJ,WAIO,KAAA,QAAA,WAAA,EAAA,QAAA,CAHM,QAAA,eAAA,WAAA,EAAX,mBAEM,OAFN,YAEM,gBADD,QAAA,YAAW,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA,CAAA,CAAA,EAIlB,YAUc,qBAAA;KAVA,OAAO,QAAA;KAAQ,OAAO,MAAA;KAAO,UAAO;;4BAS9C,CARF,YAQE,iBAAA;MAPA,IAAG;eACC;MAAJ,KAAI;kBACK,WAAA;8EAAU,QAAA;MACnB,eAAY;MACX,aAAa,QAAA;MACb,SAAO,CAAA,CAAI,MAAA;MACX,QAAI,OAAA,OAAA,OAAA,MAAA,WAAE,QAAA,QAAO"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { t as
|
|
2
|
-
import { t } from "../../chunks/config-
|
|
3
|
-
export {
|
|
1
|
+
import { t as GrPromptDialog_default } from "./chunks/GrPromptDialog-Cfq9bvL3.js";
|
|
2
|
+
import { t as grPromptDialogConfig } from "../../chunks/config-BUGfFjmC.js";
|
|
3
|
+
export { GrPromptDialog_default as GrPromptDialog, GrPromptDialog_default as default, grPromptDialogConfig };
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { a as grRadioDotBaseClass, i as grRadioControlClass, o as grRadioDotClass, r as grRadioButtonClass, s as grRadioRootClass } from "../../../chunks/config-BXffa3ta.js";
|
|
2
|
+
import { computed, createElementBlock, createElementVNode, defineComponent, inject, normalizeClass, openBlock, renderSlot, unref, withKeys, withModifiers } from "vue";
|
|
3
|
+
//#region src/components/GrRadio/grRadioGroupContext.ts
|
|
4
|
+
var GR_RADIO_GROUP_CONTEXT = Symbol("GR_RADIO_GROUP_CONTEXT");
|
|
5
|
+
//#endregion
|
|
6
|
+
//#region src/components/GrRadio/GrRadio.vue?vue&type=script&setup=true&lang.ts
|
|
7
|
+
var _hoisted_1 = [
|
|
8
|
+
"aria-checked",
|
|
9
|
+
"aria-label",
|
|
10
|
+
"aria-disabled",
|
|
11
|
+
"tabindex",
|
|
12
|
+
"onKeydown"
|
|
13
|
+
];
|
|
14
|
+
var _hoisted_2 = [
|
|
15
|
+
"id",
|
|
16
|
+
"checked",
|
|
17
|
+
"disabled",
|
|
18
|
+
"name",
|
|
19
|
+
"value",
|
|
20
|
+
"required",
|
|
21
|
+
"form"
|
|
22
|
+
];
|
|
23
|
+
var _hoisted_3 = [
|
|
24
|
+
"aria-checked",
|
|
25
|
+
"aria-label",
|
|
26
|
+
"aria-disabled",
|
|
27
|
+
"tabindex",
|
|
28
|
+
"onKeydown"
|
|
29
|
+
];
|
|
30
|
+
var _hoisted_4 = [
|
|
31
|
+
"id",
|
|
32
|
+
"checked",
|
|
33
|
+
"disabled",
|
|
34
|
+
"name",
|
|
35
|
+
"value",
|
|
36
|
+
"required",
|
|
37
|
+
"form"
|
|
38
|
+
];
|
|
39
|
+
var _hoisted_5 = { class: "text-sm text-[var(--muted-fg)]" };
|
|
40
|
+
//#endregion
|
|
41
|
+
//#region src/components/GrRadio/GrRadio.vue
|
|
42
|
+
var GrRadio_default = /* @__PURE__ */ defineComponent({
|
|
43
|
+
__name: "GrRadio",
|
|
44
|
+
props: {
|
|
45
|
+
value: {},
|
|
46
|
+
modelValue: { default: void 0 },
|
|
47
|
+
disabled: {
|
|
48
|
+
type: Boolean,
|
|
49
|
+
default: void 0
|
|
50
|
+
},
|
|
51
|
+
name: { default: void 0 },
|
|
52
|
+
required: {
|
|
53
|
+
type: Boolean,
|
|
54
|
+
default: false
|
|
55
|
+
},
|
|
56
|
+
form: { default: void 0 },
|
|
57
|
+
id: { default: void 0 },
|
|
58
|
+
size: { default: void 0 },
|
|
59
|
+
variant: { default: "radiobox" },
|
|
60
|
+
buttonVariant: { default: "outline" },
|
|
61
|
+
buttonTone: { default: "neutral" },
|
|
62
|
+
selectedButtonVariant: { default: "primary" },
|
|
63
|
+
selectedButtonTone: { default: "primary" },
|
|
64
|
+
ariaLabel: { default: void 0 }
|
|
65
|
+
},
|
|
66
|
+
emits: ["update:modelValue"],
|
|
67
|
+
setup(__props, { emit: __emit }) {
|
|
68
|
+
const hiddenInputStyle = {
|
|
69
|
+
position: "absolute",
|
|
70
|
+
opacity: "0",
|
|
71
|
+
width: "0",
|
|
72
|
+
height: "0",
|
|
73
|
+
pointerEvents: "none"
|
|
74
|
+
};
|
|
75
|
+
const props = __props;
|
|
76
|
+
const emit = __emit;
|
|
77
|
+
const group = inject(GR_RADIO_GROUP_CONTEXT, null);
|
|
78
|
+
const resolvedModelValue = computed(() => {
|
|
79
|
+
if (props.modelValue !== void 0) return props.modelValue;
|
|
80
|
+
return group?.modelValue.value ?? "";
|
|
81
|
+
});
|
|
82
|
+
const resolvedDisabled = computed(() => {
|
|
83
|
+
if (props.disabled !== void 0) return props.disabled;
|
|
84
|
+
return group?.disabled.value ?? false;
|
|
85
|
+
});
|
|
86
|
+
const resolvedName = computed(() => {
|
|
87
|
+
if (props.name) return props.name;
|
|
88
|
+
return group?.name.value;
|
|
89
|
+
});
|
|
90
|
+
const resolvedSize = computed(() => {
|
|
91
|
+
if (props.size) return props.size;
|
|
92
|
+
return group?.size.value ?? "md";
|
|
93
|
+
});
|
|
94
|
+
const checked = computed(() => resolvedModelValue.value === props.value);
|
|
95
|
+
const buttonClassName = computed(() => {
|
|
96
|
+
return grRadioButtonClass({
|
|
97
|
+
checked: checked.value,
|
|
98
|
+
disabled: resolvedDisabled.value,
|
|
99
|
+
size: resolvedSize.value,
|
|
100
|
+
buttonVariant: props.buttonVariant,
|
|
101
|
+
buttonTone: props.buttonTone,
|
|
102
|
+
selectedButtonVariant: props.selectedButtonVariant,
|
|
103
|
+
selectedButtonTone: props.selectedButtonTone
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
const rootClassName = computed(() => grRadioRootClass(resolvedDisabled.value));
|
|
107
|
+
const controlClassName = computed(() => grRadioControlClass(checked.value));
|
|
108
|
+
const dotClassName = computed(() => grRadioDotClass(checked.value));
|
|
109
|
+
function setValue(next) {
|
|
110
|
+
if (resolvedDisabled.value) return;
|
|
111
|
+
if (props.modelValue !== void 0) {
|
|
112
|
+
emit("update:modelValue", next);
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
group?.setValue(next);
|
|
116
|
+
}
|
|
117
|
+
function onButtonClick() {
|
|
118
|
+
setValue(props.value);
|
|
119
|
+
}
|
|
120
|
+
return (_ctx, _cache) => {
|
|
121
|
+
return __props.variant === "button" ? (openBlock(), createElementBlock("div", {
|
|
122
|
+
key: 0,
|
|
123
|
+
"data-ds-button": "",
|
|
124
|
+
"data-ds-radio": "",
|
|
125
|
+
role: "radio",
|
|
126
|
+
"aria-checked": checked.value ? "true" : "false",
|
|
127
|
+
"aria-label": __props.ariaLabel,
|
|
128
|
+
"aria-disabled": resolvedDisabled.value ? "true" : void 0,
|
|
129
|
+
tabindex: resolvedDisabled.value ? -1 : 0,
|
|
130
|
+
class: normalizeClass(buttonClassName.value),
|
|
131
|
+
onClick: onButtonClick,
|
|
132
|
+
onKeydown: [withKeys(withModifiers(onButtonClick, ["prevent"]), ["space"]), withKeys(withModifiers(onButtonClick, ["prevent"]), ["enter"])]
|
|
133
|
+
}, [createElementVNode("input", {
|
|
134
|
+
id: __props.id,
|
|
135
|
+
type: "radio",
|
|
136
|
+
checked: checked.value,
|
|
137
|
+
disabled: resolvedDisabled.value,
|
|
138
|
+
name: resolvedName.value,
|
|
139
|
+
value: __props.value,
|
|
140
|
+
required: __props.required,
|
|
141
|
+
form: __props.form,
|
|
142
|
+
tabindex: "-1",
|
|
143
|
+
"aria-hidden": "true",
|
|
144
|
+
style: hiddenInputStyle
|
|
145
|
+
}, null, 8, _hoisted_2), renderSlot(_ctx.$slots, "default")], 42, _hoisted_1)) : (openBlock(), createElementBlock("div", {
|
|
146
|
+
key: 1,
|
|
147
|
+
"data-ds-radio": "",
|
|
148
|
+
role: "radio",
|
|
149
|
+
"aria-checked": checked.value ? "true" : "false",
|
|
150
|
+
"aria-label": __props.ariaLabel,
|
|
151
|
+
"aria-disabled": resolvedDisabled.value ? "true" : void 0,
|
|
152
|
+
tabindex: resolvedDisabled.value ? -1 : 0,
|
|
153
|
+
class: normalizeClass(["inline-flex items-center gap-2 select-none focus-visible:outline-none focus-visible:rounded-[8px] focus-visible:shadow-[0_0_0_2px_var(--ring),0_0_0_4px_var(--bg)]", rootClassName.value]),
|
|
154
|
+
onClick: onButtonClick,
|
|
155
|
+
onKeydown: [withKeys(withModifiers(onButtonClick, ["prevent"]), ["space"]), withKeys(withModifiers(onButtonClick, ["prevent"]), ["enter"])]
|
|
156
|
+
}, [
|
|
157
|
+
createElementVNode("input", {
|
|
158
|
+
id: __props.id,
|
|
159
|
+
type: "radio",
|
|
160
|
+
checked: checked.value,
|
|
161
|
+
disabled: resolvedDisabled.value,
|
|
162
|
+
name: resolvedName.value,
|
|
163
|
+
value: __props.value,
|
|
164
|
+
required: __props.required,
|
|
165
|
+
form: __props.form,
|
|
166
|
+
tabindex: "-1",
|
|
167
|
+
"aria-hidden": "true",
|
|
168
|
+
style: hiddenInputStyle
|
|
169
|
+
}, null, 8, _hoisted_4),
|
|
170
|
+
createElementVNode("span", {
|
|
171
|
+
"data-ds-radio-control": "",
|
|
172
|
+
"aria-hidden": "true",
|
|
173
|
+
class: normalizeClass(["h-4 w-4 rounded-full border flex items-center justify-center transition-colors duration-150", controlClassName.value])
|
|
174
|
+
}, [createElementVNode("span", {
|
|
175
|
+
"data-ds-radio-dot": "",
|
|
176
|
+
class: normalizeClass([unref(grRadioDotBaseClass), dotClassName.value])
|
|
177
|
+
}, null, 2)], 2),
|
|
178
|
+
createElementVNode("span", _hoisted_5, [renderSlot(_ctx.$slots, "default")])
|
|
179
|
+
], 42, _hoisted_3));
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
//#endregion
|
|
184
|
+
export { GR_RADIO_GROUP_CONTEXT as n, GrRadio_default as t };
|
|
185
|
+
|
|
186
|
+
//# sourceMappingURL=GrRadio-B_t_ZNVl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GrRadio-B_t_ZNVl.js","names":[],"sources":["../../../../src/components/GrRadio/grRadioGroupContext.ts","../../../../src/components/GrRadio/GrRadio.vue","../../../../src/components/GrRadio/GrRadio.vue"],"sourcesContent":["import type { ComputedRef, InjectionKey } from 'vue'\n\nimport type { GrButtonSize } from '../GrButton/grButtonStyles'\n\nexport type GrRadioGroupContext = {\n modelValue: ComputedRef<string>\n name: ComputedRef<string | undefined>\n disabled: ComputedRef<boolean>\n size: ComputedRef<GrButtonSize>\n setValue: (value: string) => void\n}\n\nexport const GR_RADIO_GROUP_CONTEXT: InjectionKey<GrRadioGroupContext> = Symbol('GR_RADIO_GROUP_CONTEXT')","<script setup lang=\"ts\">\nimport { computed, inject } from 'vue'\n\nimport type { GrButtonSize, GrButtonTone, GrButtonVariant } from '../GrButton'\n\nimport {\n grRadioButtonClass,\n grRadioControlClass,\n grRadioDotBaseClass,\n grRadioDotClass,\n grRadioRootClass,\n type GrRadioVariant,\n} from './grRadioStyles'\nimport { GR_RADIO_GROUP_CONTEXT } from './grRadioGroupContext'\n\n/**\n * GrRadio — одиночный элемент группы выбора.\n *\n * Может работать автономно (через `v-model`) либо внутри `GrRadioGroup`\n * (тогда `modelValue`/`disabled`/`size`/`name` приходят через `inject`).\n *\n * @prop value — значение этого элемента, сравнивается с `modelValue` группы.\n * @prop variant — визуальное представление: `radiobox` (круг+dot) или `button` (стиль `GrButton`).\n */\nexport interface GrRadioProps {\n value: string\n modelValue?: string\n disabled?: boolean\n name?: string\n required?: boolean\n form?: string\n id?: string\n size?: GrButtonSize\n variant?: GrRadioVariant\n buttonVariant?: GrButtonVariant\n buttonTone?: GrButtonTone\n selectedButtonVariant?: GrButtonVariant\n selectedButtonTone?: GrButtonTone\n ariaLabel?: string\n}\n\nconst hiddenInputStyle = {\n position: 'absolute',\n opacity: '0',\n width: '0',\n height: '0',\n pointerEvents: 'none',\n} as const\n\nconst props = withDefaults(defineProps<GrRadioProps>(), {\n modelValue: undefined,\n disabled: undefined,\n name: undefined,\n required: false,\n form: undefined,\n id: undefined,\n size: undefined,\n variant: 'radiobox',\n buttonVariant: 'outline',\n buttonTone: 'neutral',\n selectedButtonVariant: 'primary',\n selectedButtonTone: 'primary',\n ariaLabel: undefined,\n})\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: string): void\n}>()\n\nconst group = inject(GR_RADIO_GROUP_CONTEXT, null)\n\nconst resolvedModelValue = computed(() => {\n if (props.modelValue !== undefined)\n return props.modelValue\n\n return group?.modelValue.value ?? ''\n})\n\nconst resolvedDisabled = computed(() => {\n if (props.disabled !== undefined)\n return props.disabled\n\n return group?.disabled.value ?? false\n})\n\nconst resolvedName = computed(() => {\n if (props.name)\n return props.name\n\n return group?.name.value\n})\n\nconst resolvedSize = computed<GrButtonSize>(() => {\n if (props.size)\n return props.size\n\n return group?.size.value ?? 'md'\n})\n\nconst checked = computed(() => resolvedModelValue.value === props.value)\n\nconst buttonClassName = computed(() => {\n return grRadioButtonClass({\n checked: checked.value,\n disabled: resolvedDisabled.value,\n size: resolvedSize.value,\n buttonVariant: props.buttonVariant,\n buttonTone: props.buttonTone,\n selectedButtonVariant: props.selectedButtonVariant,\n selectedButtonTone: props.selectedButtonTone,\n })\n})\n\nconst rootClassName = computed(() => grRadioRootClass(resolvedDisabled.value))\nconst controlClassName = computed(() => grRadioControlClass(checked.value))\nconst dotClassName = computed(() => grRadioDotClass(checked.value))\n\nfunction setValue(next: string): void {\n if (resolvedDisabled.value)\n return\n\n if (props.modelValue !== undefined) {\n emit('update:modelValue', next)\n return\n }\n\n group?.setValue(next)\n}\n\nfunction onButtonClick(): void {\n setValue(props.value)\n}\n</script>\n\n<template>\n <div\n v-if=\"variant === 'button'\"\n data-ds-button\n data-ds-radio\n role=\"radio\"\n :aria-checked=\"checked ? 'true' : 'false'\"\n :aria-label=\"ariaLabel\"\n :aria-disabled=\"resolvedDisabled ? 'true' : undefined\"\n :tabindex=\"resolvedDisabled ? -1 : 0\"\n :class=\"buttonClassName\"\n @click=\"onButtonClick\"\n @keydown.space.prevent=\"onButtonClick\"\n @keydown.enter.prevent=\"onButtonClick\"\n >\n <input\n :id=\"id\"\n type=\"radio\"\n :checked=\"checked\"\n :disabled=\"resolvedDisabled\"\n :name=\"resolvedName\"\n :value=\"value\"\n :required=\"required\"\n :form=\"form\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n :style=\"hiddenInputStyle\"\n >\n\n <slot />\n </div>\n\n <div\n v-else\n data-ds-radio\n role=\"radio\"\n :aria-checked=\"checked ? 'true' : 'false'\"\n :aria-label=\"ariaLabel\"\n :aria-disabled=\"resolvedDisabled ? 'true' : undefined\"\n :tabindex=\"resolvedDisabled ? -1 : 0\"\n class=\"inline-flex items-center gap-2 select-none focus-visible:outline-none focus-visible:rounded-[8px] focus-visible:shadow-[0_0_0_2px_var(--ring),0_0_0_4px_var(--bg)]\"\n :class=\"rootClassName\"\n @click=\"onButtonClick\"\n @keydown.space.prevent=\"onButtonClick\"\n @keydown.enter.prevent=\"onButtonClick\"\n >\n <input\n :id=\"id\"\n type=\"radio\"\n :checked=\"checked\"\n :disabled=\"resolvedDisabled\"\n :name=\"resolvedName\"\n :value=\"value\"\n :required=\"required\"\n :form=\"form\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n :style=\"hiddenInputStyle\"\n >\n\n <span\n data-ds-radio-control\n aria-hidden=\"true\"\n class=\"h-4 w-4 rounded-full border flex items-center justify-center transition-colors duration-150\"\n :class=\"controlClassName\"\n >\n <span\n data-ds-radio-dot\n :class=\"[grRadioDotBaseClass, dotClassName]\"\n />\n </span>\n\n <span class=\"text-sm text-[var(--muted-fg)]\">\n <slot />\n </span>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed, inject } from 'vue'\n\nimport type { GrButtonSize, GrButtonTone, GrButtonVariant } from '../GrButton'\n\nimport {\n grRadioButtonClass,\n grRadioControlClass,\n grRadioDotBaseClass,\n grRadioDotClass,\n grRadioRootClass,\n type GrRadioVariant,\n} from './grRadioStyles'\nimport { GR_RADIO_GROUP_CONTEXT } from './grRadioGroupContext'\n\n/**\n * GrRadio — одиночный элемент группы выбора.\n *\n * Может работать автономно (через `v-model`) либо внутри `GrRadioGroup`\n * (тогда `modelValue`/`disabled`/`size`/`name` приходят через `inject`).\n *\n * @prop value — значение этого элемента, сравнивается с `modelValue` группы.\n * @prop variant — визуальное представление: `radiobox` (круг+dot) или `button` (стиль `GrButton`).\n */\nexport interface GrRadioProps {\n value: string\n modelValue?: string\n disabled?: boolean\n name?: string\n required?: boolean\n form?: string\n id?: string\n size?: GrButtonSize\n variant?: GrRadioVariant\n buttonVariant?: GrButtonVariant\n buttonTone?: GrButtonTone\n selectedButtonVariant?: GrButtonVariant\n selectedButtonTone?: GrButtonTone\n ariaLabel?: string\n}\n\nconst hiddenInputStyle = {\n position: 'absolute',\n opacity: '0',\n width: '0',\n height: '0',\n pointerEvents: 'none',\n} as const\n\nconst props = withDefaults(defineProps<GrRadioProps>(), {\n modelValue: undefined,\n disabled: undefined,\n name: undefined,\n required: false,\n form: undefined,\n id: undefined,\n size: undefined,\n variant: 'radiobox',\n buttonVariant: 'outline',\n buttonTone: 'neutral',\n selectedButtonVariant: 'primary',\n selectedButtonTone: 'primary',\n ariaLabel: undefined,\n})\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: string): void\n}>()\n\nconst group = inject(GR_RADIO_GROUP_CONTEXT, null)\n\nconst resolvedModelValue = computed(() => {\n if (props.modelValue !== undefined)\n return props.modelValue\n\n return group?.modelValue.value ?? ''\n})\n\nconst resolvedDisabled = computed(() => {\n if (props.disabled !== undefined)\n return props.disabled\n\n return group?.disabled.value ?? false\n})\n\nconst resolvedName = computed(() => {\n if (props.name)\n return props.name\n\n return group?.name.value\n})\n\nconst resolvedSize = computed<GrButtonSize>(() => {\n if (props.size)\n return props.size\n\n return group?.size.value ?? 'md'\n})\n\nconst checked = computed(() => resolvedModelValue.value === props.value)\n\nconst buttonClassName = computed(() => {\n return grRadioButtonClass({\n checked: checked.value,\n disabled: resolvedDisabled.value,\n size: resolvedSize.value,\n buttonVariant: props.buttonVariant,\n buttonTone: props.buttonTone,\n selectedButtonVariant: props.selectedButtonVariant,\n selectedButtonTone: props.selectedButtonTone,\n })\n})\n\nconst rootClassName = computed(() => grRadioRootClass(resolvedDisabled.value))\nconst controlClassName = computed(() => grRadioControlClass(checked.value))\nconst dotClassName = computed(() => grRadioDotClass(checked.value))\n\nfunction setValue(next: string): void {\n if (resolvedDisabled.value)\n return\n\n if (props.modelValue !== undefined) {\n emit('update:modelValue', next)\n return\n }\n\n group?.setValue(next)\n}\n\nfunction onButtonClick(): void {\n setValue(props.value)\n}\n</script>\n\n<template>\n <div\n v-if=\"variant === 'button'\"\n data-ds-button\n data-ds-radio\n role=\"radio\"\n :aria-checked=\"checked ? 'true' : 'false'\"\n :aria-label=\"ariaLabel\"\n :aria-disabled=\"resolvedDisabled ? 'true' : undefined\"\n :tabindex=\"resolvedDisabled ? -1 : 0\"\n :class=\"buttonClassName\"\n @click=\"onButtonClick\"\n @keydown.space.prevent=\"onButtonClick\"\n @keydown.enter.prevent=\"onButtonClick\"\n >\n <input\n :id=\"id\"\n type=\"radio\"\n :checked=\"checked\"\n :disabled=\"resolvedDisabled\"\n :name=\"resolvedName\"\n :value=\"value\"\n :required=\"required\"\n :form=\"form\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n :style=\"hiddenInputStyle\"\n >\n\n <slot />\n </div>\n\n <div\n v-else\n data-ds-radio\n role=\"radio\"\n :aria-checked=\"checked ? 'true' : 'false'\"\n :aria-label=\"ariaLabel\"\n :aria-disabled=\"resolvedDisabled ? 'true' : undefined\"\n :tabindex=\"resolvedDisabled ? -1 : 0\"\n class=\"inline-flex items-center gap-2 select-none focus-visible:outline-none focus-visible:rounded-[8px] focus-visible:shadow-[0_0_0_2px_var(--ring),0_0_0_4px_var(--bg)]\"\n :class=\"rootClassName\"\n @click=\"onButtonClick\"\n @keydown.space.prevent=\"onButtonClick\"\n @keydown.enter.prevent=\"onButtonClick\"\n >\n <input\n :id=\"id\"\n type=\"radio\"\n :checked=\"checked\"\n :disabled=\"resolvedDisabled\"\n :name=\"resolvedName\"\n :value=\"value\"\n :required=\"required\"\n :form=\"form\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n :style=\"hiddenInputStyle\"\n >\n\n <span\n data-ds-radio-control\n aria-hidden=\"true\"\n class=\"h-4 w-4 rounded-full border flex items-center justify-center transition-colors duration-150\"\n :class=\"controlClassName\"\n >\n <span\n data-ds-radio-dot\n :class=\"[grRadioDotBaseClass, dotClassName]\"\n />\n </span>\n\n <span class=\"text-sm text-[var(--muted-fg)]\">\n <slot />\n </span>\n </div>\n</template>\n"],"mappings":";;;AAYA,IAAa,yBAA4D,OAAO,yBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EC6BhF,MAAM,mBAAmB;GACvB,UAAU;GACV,SAAS;GACT,OAAO;GACP,QAAQ;GACR,eAAe;GAChB;EAED,MAAM,QAAQ;EAgBd,MAAM,OAAO;EAIb,MAAM,QAAQ,OAAO,wBAAwB,KAAI;EAEjD,MAAM,qBAAqB,eAAe;AACxC,OAAI,MAAM,eAAe,KAAA,EACvB,QAAO,MAAM;AAEf,UAAO,OAAO,WAAW,SAAS;IACnC;EAED,MAAM,mBAAmB,eAAe;AACtC,OAAI,MAAM,aAAa,KAAA,EACrB,QAAO,MAAM;AAEf,UAAO,OAAO,SAAS,SAAS;IACjC;EAED,MAAM,eAAe,eAAe;AAClC,OAAI,MAAM,KACR,QAAO,MAAM;AAEf,UAAO,OAAO,KAAK;IACpB;EAED,MAAM,eAAe,eAA6B;AAChD,OAAI,MAAM,KACR,QAAO,MAAM;AAEf,UAAO,OAAO,KAAK,SAAS;IAC7B;EAED,MAAM,UAAU,eAAe,mBAAmB,UAAU,MAAM,MAAK;EAEvE,MAAM,kBAAkB,eAAe;AACrC,UAAO,mBAAmB;IACxB,SAAS,QAAQ;IACjB,UAAU,iBAAiB;IAC3B,MAAM,aAAa;IACnB,eAAe,MAAM;IACrB,YAAY,MAAM;IAClB,uBAAuB,MAAM;IAC7B,oBAAoB,MAAM;IAC3B,CAAA;IACF;EAED,MAAM,gBAAgB,eAAe,iBAAiB,iBAAiB,MAAM,CAAA;EAC7E,MAAM,mBAAmB,eAAe,oBAAoB,QAAQ,MAAM,CAAA;EAC1E,MAAM,eAAe,eAAe,gBAAgB,QAAQ,MAAM,CAAA;EAElE,SAAS,SAAS,MAAoB;AACpC,OAAI,iBAAiB,MACnB;AAEF,OAAI,MAAM,eAAe,KAAA,GAAW;AAClC,SAAK,qBAAqB,KAAI;AAC9B;;AAGF,UAAO,SAAS,KAAI;;EAGtB,SAAS,gBAAsB;AAC7B,YAAS,MAAM,MAAK;;;UAMZ,QAAA,YAAO,YAAA,WAAA,EADf,mBA6BM,OAAA;;IA3BJ,kBAAA;IACA,iBAAA;IACA,MAAK;IACJ,gBAAc,QAAA,QAAO,SAAA;IACrB,cAAY,QAAA;IACZ,iBAAe,iBAAA,QAAgB,SAAY,KAAA;IAC3C,UAAU,iBAAA,QAAgB,KAAA;IAC1B,OAAK,eAAE,gBAAA,MAAe;IACtB,SAAO;IACP,WAAO,CAAA,SAAA,cAAgB,eAAa,CAAA,UAAA,CAAA,EAAA,CAAA,QAAA,CAAA,EAAA,SAAA,cACb,eAAa,CAAA,UAAA,CAAA,EAAA,CAAA,QAAA,CAAA,CAAA;OAErC,mBAYC,SAAA;IAXE,IAAI,QAAA;IACL,MAAK;IACJ,SAAS,QAAA;IACT,UAAU,iBAAA;IACV,MAAM,aAAA;IACN,OAAO,QAAA;IACP,UAAU,QAAA;IACV,MAAM,QAAA;IACP,UAAS;IACT,eAAY;IACX,OAAO;4BAGV,WAAQ,KAAA,QAAA,UAAA,CAAA,EAAA,IAAA,WAAA,KAAA,WAAA,EAGV,mBA2CM,OAAA;;IAzCJ,iBAAA;IACA,MAAK;IACJ,gBAAc,QAAA,QAAO,SAAA;IACrB,cAAY,QAAA;IACZ,iBAAe,iBAAA,QAAgB,SAAY,KAAA;IAC3C,UAAU,iBAAA,QAAgB,KAAA;IAC3B,OAAK,eAAA,CAAC,sKACE,cAAA,MAAa,CAAA;IACpB,SAAO;IACP,WAAO,CAAA,SAAA,cAAgB,eAAa,CAAA,UAAA,CAAA,EAAA,CAAA,QAAA,CAAA,EAAA,SAAA,cACb,eAAa,CAAA,UAAA,CAAA,EAAA,CAAA,QAAA,CAAA,CAAA;;IAErC,mBAYC,SAAA;KAXE,IAAI,QAAA;KACL,MAAK;KACJ,SAAS,QAAA;KACT,UAAU,iBAAA;KACV,MAAM,aAAA;KACN,OAAO,QAAA;KACP,UAAU,QAAA;KACV,MAAM,QAAA;KACP,UAAS;KACT,eAAY;KACX,OAAO;;IAGV,mBAUO,QAAA;KATL,yBAAA;KACA,eAAY;KACZ,OAAK,eAAA,CAAC,+FACE,iBAAA,MAAgB,CAAA;QAExB,mBAGE,QAAA;KAFA,qBAAA;KACC,OAAK,eAAA,CAAG,MAAA,oBAAmB,EAAE,aAAA,MAAY,CAAA;;IAI9C,mBAEO,QAFP,YAEO,CADL,WAAQ,KAAA,QAAA,UAAA,CAAA,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as
|
|
2
|
-
import { n, t as
|
|
3
|
-
export {
|
|
1
|
+
import { n as grRadioSafelist, t as grRadioConfig } from "../../chunks/config-BXffa3ta.js";
|
|
2
|
+
import { n as GR_RADIO_GROUP_CONTEXT, t as GrRadio_default } from "./chunks/GrRadio-B_t_ZNVl.js";
|
|
3
|
+
export { GR_RADIO_GROUP_CONTEXT, GrRadio_default as GrRadio, GrRadio_default as default, grRadioConfig, grRadioSafelist };
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { t as GrButtonGroup_default } from "../../GrButtonGroup/chunks/GrButtonGroup-CBj4tpms.js";
|
|
2
|
+
import { n as GR_RADIO_GROUP_CONTEXT, t as GrRadio_default } from "../../GrRadio/chunks/GrRadio-B_t_ZNVl.js";
|
|
3
|
+
import { Fragment, computed, createBlock, createElementBlock, createTextVNode, defineComponent, openBlock, provide, renderList, renderSlot, toDisplayString, withCtx } from "vue";
|
|
4
|
+
//#region src/components/GrRadioGroup/GrRadioGroup.vue?vue&type=script&setup=true&lang.ts
|
|
5
|
+
var _hoisted_1 = ["aria-label", "aria-disabled"];
|
|
6
|
+
var _hoisted_2 = {
|
|
7
|
+
key: 1,
|
|
8
|
+
class: "grid gap-2"
|
|
9
|
+
};
|
|
10
|
+
var _hoisted_3 = {
|
|
11
|
+
key: 1,
|
|
12
|
+
class: "grid gap-2"
|
|
13
|
+
};
|
|
14
|
+
//#endregion
|
|
15
|
+
//#region src/components/GrRadioGroup/GrRadioGroup.vue
|
|
16
|
+
var GrRadioGroup_default = /* @__PURE__ */ defineComponent({
|
|
17
|
+
__name: "GrRadioGroup",
|
|
18
|
+
props: {
|
|
19
|
+
modelValue: {},
|
|
20
|
+
options: { default: void 0 },
|
|
21
|
+
name: { default: void 0 },
|
|
22
|
+
disabled: {
|
|
23
|
+
type: Boolean,
|
|
24
|
+
default: false
|
|
25
|
+
},
|
|
26
|
+
variant: { default: "radiobox" },
|
|
27
|
+
size: { default: "md" },
|
|
28
|
+
ariaLabel: { default: void 0 }
|
|
29
|
+
},
|
|
30
|
+
emits: ["update:modelValue"],
|
|
31
|
+
setup(__props, { emit: __emit }) {
|
|
32
|
+
const props = __props;
|
|
33
|
+
const emit = __emit;
|
|
34
|
+
function setValue(next) {
|
|
35
|
+
if (props.disabled) return;
|
|
36
|
+
emit("update:modelValue", next);
|
|
37
|
+
}
|
|
38
|
+
provide(GR_RADIO_GROUP_CONTEXT, {
|
|
39
|
+
modelValue: computed(() => props.modelValue),
|
|
40
|
+
name: computed(() => props.name),
|
|
41
|
+
disabled: computed(() => props.disabled),
|
|
42
|
+
size: computed(() => props.size),
|
|
43
|
+
setValue
|
|
44
|
+
});
|
|
45
|
+
return (_ctx, _cache) => {
|
|
46
|
+
return openBlock(), createElementBlock("div", {
|
|
47
|
+
"data-ds-radio-group": "",
|
|
48
|
+
role: "radiogroup",
|
|
49
|
+
"aria-label": __props.ariaLabel,
|
|
50
|
+
"aria-disabled": __props.disabled ? "true" : void 0
|
|
51
|
+
}, [_ctx.$slots.default ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [__props.variant === "button" ? (openBlock(), createBlock(GrButtonGroup_default, { key: 0 }, {
|
|
52
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
|
|
53
|
+
_: 3
|
|
54
|
+
})) : (openBlock(), createElementBlock("div", _hoisted_2, [renderSlot(_ctx.$slots, "default")]))], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [__props.variant === "button" ? (openBlock(), createBlock(GrButtonGroup_default, { key: 0 }, {
|
|
55
|
+
default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.options ?? [], (opt) => {
|
|
56
|
+
return openBlock(), createBlock(GrRadio_default, {
|
|
57
|
+
key: opt.value,
|
|
58
|
+
value: opt.value,
|
|
59
|
+
variant: "button",
|
|
60
|
+
size: __props.size
|
|
61
|
+
}, {
|
|
62
|
+
default: withCtx(() => [createTextVNode(toDisplayString(opt.label), 1)]),
|
|
63
|
+
_: 2
|
|
64
|
+
}, 1032, ["value", "size"]);
|
|
65
|
+
}), 128))]),
|
|
66
|
+
_: 1
|
|
67
|
+
})) : (openBlock(), createElementBlock("div", _hoisted_3, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.options ?? [], (opt) => {
|
|
68
|
+
return openBlock(), createBlock(GrRadio_default, {
|
|
69
|
+
key: opt.value,
|
|
70
|
+
value: opt.value
|
|
71
|
+
}, {
|
|
72
|
+
default: withCtx(() => [createTextVNode(toDisplayString(opt.label), 1)]),
|
|
73
|
+
_: 2
|
|
74
|
+
}, 1032, ["value"]);
|
|
75
|
+
}), 128))]))], 64))], 8, _hoisted_1);
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
//#endregion
|
|
80
|
+
export { GrRadioGroup_default as t };
|
|
81
|
+
|
|
82
|
+
//# sourceMappingURL=GrRadioGroup-CVlgpUBr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GrRadioGroup-CVlgpUBr.js","names":["$slots"],"sources":["../../../../src/components/GrRadioGroup/GrRadioGroup.vue","../../../../src/components/GrRadioGroup/GrRadioGroup.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, provide } from 'vue'\n\nimport type { GrButtonSize } from '../GrButton'\nimport GrButtonGroup from '../GrButtonGroup/GrButtonGroup.vue'\nimport GrRadio from '../GrRadio/GrRadio.vue'\nimport { GR_RADIO_GROUP_CONTEXT } from '../GrRadio'\n\nexport type GrRadioGroupVariant = 'radiobox' | 'button'\nexport interface GrRadioGroupOption { value: string, label: string }\n\n/**\n * GrRadioGroup — контейнер группы `GrRadio`.\n *\n * Может работать как через слот (ручной рендер `GrRadio`), так и через проп `options`.\n * Предоставляет дочерним `GrRadio` общий `modelValue`/`disabled`/`size`/`name` через `inject`.\n */\nexport interface GrRadioGroupProps {\n modelValue: string\n options?: GrRadioGroupOption[]\n name?: string\n disabled?: boolean\n variant?: GrRadioGroupVariant\n size?: GrButtonSize\n ariaLabel?: string\n}\n\nconst props = withDefaults(defineProps<GrRadioGroupProps>(), {\n options: undefined,\n name: undefined,\n disabled: false,\n variant: 'radiobox',\n size: 'md',\n ariaLabel: undefined,\n})\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: string): void\n}>()\n\nfunction setValue(next: string): void {\n if (props.disabled)\n return\n emit('update:modelValue', next)\n}\n\nprovide(GR_RADIO_GROUP_CONTEXT, {\n modelValue: computed(() => props.modelValue),\n name: computed(() => props.name),\n disabled: computed(() => props.disabled),\n size: computed(() => props.size),\n setValue,\n})\n</script>\n\n<template>\n <div\n data-ds-radio-group\n role=\"radiogroup\"\n :aria-label=\"ariaLabel\"\n :aria-disabled=\"disabled ? 'true' : undefined\"\n >\n <template v-if=\"$slots.default\">\n <GrButtonGroup v-if=\"variant === 'button'\">\n <slot />\n </GrButtonGroup>\n <div v-else class=\"grid gap-2\">\n <slot />\n </div>\n </template>\n <template v-else>\n <GrButtonGroup v-if=\"variant === 'button'\">\n <GrRadio\n v-for=\"opt in options ?? []\"\n :key=\"opt.value\"\n :value=\"opt.value\"\n variant=\"button\"\n :size=\"size\"\n >\n {{ opt.label }}\n </GrRadio>\n </GrButtonGroup>\n <div v-else class=\"grid gap-2\">\n <GrRadio v-for=\"opt in options ?? []\" :key=\"opt.value\" :value=\"opt.value\">\n {{ opt.label }}\n </GrRadio>\n </div>\n </template>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed, provide } from 'vue'\n\nimport type { GrButtonSize } from '../GrButton'\nimport GrButtonGroup from '../GrButtonGroup/GrButtonGroup.vue'\nimport GrRadio from '../GrRadio/GrRadio.vue'\nimport { GR_RADIO_GROUP_CONTEXT } from '../GrRadio'\n\nexport type GrRadioGroupVariant = 'radiobox' | 'button'\nexport interface GrRadioGroupOption { value: string, label: string }\n\n/**\n * GrRadioGroup — контейнер группы `GrRadio`.\n *\n * Может работать как через слот (ручной рендер `GrRadio`), так и через проп `options`.\n * Предоставляет дочерним `GrRadio` общий `modelValue`/`disabled`/`size`/`name` через `inject`.\n */\nexport interface GrRadioGroupProps {\n modelValue: string\n options?: GrRadioGroupOption[]\n name?: string\n disabled?: boolean\n variant?: GrRadioGroupVariant\n size?: GrButtonSize\n ariaLabel?: string\n}\n\nconst props = withDefaults(defineProps<GrRadioGroupProps>(), {\n options: undefined,\n name: undefined,\n disabled: false,\n variant: 'radiobox',\n size: 'md',\n ariaLabel: undefined,\n})\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: string): void\n}>()\n\nfunction setValue(next: string): void {\n if (props.disabled)\n return\n emit('update:modelValue', next)\n}\n\nprovide(GR_RADIO_GROUP_CONTEXT, {\n modelValue: computed(() => props.modelValue),\n name: computed(() => props.name),\n disabled: computed(() => props.disabled),\n size: computed(() => props.size),\n setValue,\n})\n</script>\n\n<template>\n <div\n data-ds-radio-group\n role=\"radiogroup\"\n :aria-label=\"ariaLabel\"\n :aria-disabled=\"disabled ? 'true' : undefined\"\n >\n <template v-if=\"$slots.default\">\n <GrButtonGroup v-if=\"variant === 'button'\">\n <slot />\n </GrButtonGroup>\n <div v-else class=\"grid gap-2\">\n <slot />\n </div>\n </template>\n <template v-else>\n <GrButtonGroup v-if=\"variant === 'button'\">\n <GrRadio\n v-for=\"opt in options ?? []\"\n :key=\"opt.value\"\n :value=\"opt.value\"\n variant=\"button\"\n :size=\"size\"\n >\n {{ opt.label }}\n </GrRadio>\n </GrButtonGroup>\n <div v-else class=\"grid gap-2\">\n <GrRadio v-for=\"opt in options ?? []\" :key=\"opt.value\" :value=\"opt.value\">\n {{ opt.label }}\n </GrRadio>\n </div>\n </template>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BA,MAAM,QAAQ;EASd,MAAM,OAAO;EAIb,SAAS,SAAS,MAAoB;AACpC,OAAI,MAAM,SACR;AACF,QAAK,qBAAqB,KAAI;;AAGhC,UAAQ,wBAAwB;GAC9B,YAAY,eAAe,MAAM,WAAW;GAC5C,MAAM,eAAe,MAAM,KAAK;GAChC,UAAU,eAAe,MAAM,SAAS;GACxC,MAAM,eAAe,MAAM,KAAK;GAChC;GACD,CAAA;;uBAIC,mBAgCM,OAAA;IA/BJ,uBAAA;IACA,MAAK;IACJ,cAAY,QAAA;IACZ,iBAAe,QAAA,WAAQ,SAAY,KAAA;OAEpBA,KAAAA,OAAO,WAAA,WAAA,EAAvB,mBAOW,UAAA,EAAA,KAAA,GAAA,EAAA,CANY,QAAA,YAAO,YAAA,WAAA,EAA5B,YAEgB,uBAAA,EAAA,KAAA,GAAA,EAAA;2BADN,CAAR,WAAQ,KAAA,QAAA,UAAA,CAAA,CAAA;;uBAEV,mBAEM,OAFN,YAEM,CADJ,WAAQ,KAAA,QAAA,UAAA,CAAA,CAAA,EAAA,EAAA,GAAA,KAAA,WAAA,EAGZ,mBAiBW,UAAA,EAAA,KAAA,GAAA,EAAA,CAhBY,QAAA,YAAO,YAAA,WAAA,EAA5B,YAUgB,uBAAA,EAAA,KAAA,GAAA,EAAA;2BARgB,EAAA,UAAA,KAAA,EAD9B,mBAQU,UAAA,MAAA,WAPM,QAAA,WAAO,EAAA,GAAd,QAAG;yBADZ,YAQU,iBAAA;MANP,KAAK,IAAI;MACT,OAAO,IAAI;MACZ,SAAQ;MACP,MAAM,QAAA;;6BAEQ,CAAA,gBAAA,gBAAZ,IAAI,MAAK,EAAA,EAAA,CAAA,CAAA;;;;;uBAGhB,mBAIM,OAJN,YAIM,EAAA,UAAA,KAAA,EAHJ,mBAEU,UAAA,MAAA,WAFa,QAAA,WAAO,EAAA,GAAd,QAAG;wBAAnB,YAEU,iBAAA;KAF6B,KAAK,IAAI;KAAQ,OAAO,IAAI;;4BAClD,CAAA,gBAAA,gBAAZ,IAAI,MAAK,EAAA,EAAA,CAAA,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { t as
|
|
2
|
-
import { t } from "../../chunks/config-
|
|
3
|
-
export {
|
|
1
|
+
import { t as GrRadioGroup_default } from "./chunks/GrRadioGroup-CVlgpUBr.js";
|
|
2
|
+
import { t as grRadioGroupConfig } from "../../chunks/config-D7tRu8u3.js";
|
|
3
|
+
export { GrRadioGroup_default as GrRadioGroup, GrRadioGroup_default as default, grRadioGroupConfig };
|