@feugene/granularity 0.18.0 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -0
- package/dist/chunks/chevron-left-D8AUBAM7.js +23 -0
- package/dist/chunks/chevron-left-D8AUBAM7.js.map +1 -0
- package/dist/chunks/chevron-right-C6Z01h0X.js +23 -0
- package/dist/chunks/chevron-right-C6Z01h0X.js.map +1 -0
- package/dist/chunks/config-9PYRZlKE.js +84 -0
- package/dist/chunks/config-9PYRZlKE.js.map +1 -0
- package/dist/chunks/config-B4w5gBD0.js +89 -0
- package/dist/chunks/config-B4w5gBD0.js.map +1 -0
- package/dist/chunks/config-BE6n20np.js.map +1 -0
- package/dist/chunks/config-BEVBsvni.js +197 -0
- package/dist/chunks/config-BEVBsvni.js.map +1 -0
- package/dist/chunks/config-BJ7Bv_G2.js +148 -0
- package/dist/chunks/config-BJ7Bv_G2.js.map +1 -0
- package/dist/chunks/config-BTCOJO5z.js +37 -0
- package/dist/chunks/config-BTCOJO5z.js.map +1 -0
- package/dist/chunks/config-Be9k9bOf.js +97 -0
- package/dist/chunks/config-Be9k9bOf.js.map +1 -0
- package/dist/chunks/config-BfsBepkH2.js +83 -0
- package/dist/chunks/config-BfsBepkH2.js.map +1 -0
- package/dist/chunks/config-Bsh948nP.js +85 -0
- package/dist/chunks/config-Bsh948nP.js.map +1 -0
- package/dist/chunks/config-CDat1wXf.js +11 -0
- package/dist/chunks/config-CDat1wXf.js.map +1 -0
- package/dist/chunks/config-COpuWGr_2.js.map +1 -0
- package/dist/chunks/config-DAX8Deh12.js +68 -0
- package/dist/chunks/config-DAX8Deh12.js.map +1 -0
- package/dist/chunks/config-DCFvmHEv.js.map +1 -0
- package/dist/chunks/config-DKdlqXiY.js.map +1 -1
- package/dist/chunks/config-DWN4x6_e.js +159 -0
- package/dist/chunks/config-DWN4x6_e.js.map +1 -0
- package/dist/chunks/config-Dgj1Q6JY.js +26 -0
- package/dist/chunks/config-Dgj1Q6JY.js.map +1 -0
- package/dist/chunks/config-Dguto_6o.js +108 -0
- package/dist/chunks/config-Dguto_6o.js.map +1 -0
- package/dist/chunks/config-WTNhdh6T.js.map +1 -0
- package/dist/chunks/config-eXB87DOi2.js.map +1 -0
- package/dist/chunks/config-vSji8w90.js +85 -0
- package/dist/chunks/config-vSji8w90.js.map +1 -0
- package/dist/chunks/context-CTbuwcYs.js +133 -0
- package/dist/chunks/context-CTbuwcYs.js.map +1 -0
- package/dist/chunks/generated-BRkbhyxk.js +3270 -0
- package/dist/chunks/generated-BRkbhyxk.js.map +1 -0
- package/dist/chunks/grRadioStyles-BTjGNhtU.js +96 -0
- package/dist/chunks/grRadioStyles-BTjGNhtU.js.map +1 -0
- package/dist/chunks/granular-provider-CZYm70Pm.js +195 -0
- package/dist/chunks/granular-provider-CZYm70Pm.js.map +1 -0
- package/dist/chunks/grip-vertical-lRha2S7q.js +16 -0
- package/dist/chunks/grip-vertical-lRha2S7q.js.map +1 -0
- package/dist/chunks/icon-Dag2tIMs.js +21 -0
- package/dist/chunks/icon-Dag2tIMs.js.map +1 -0
- package/dist/chunks/portalRoot-CVhCgdG6.js +44 -0
- package/dist/chunks/portalRoot-CVhCgdG6.js.map +1 -0
- package/dist/chunks/useModalOverlay-Cv5hF63W.js +212 -0
- package/dist/chunks/useModalOverlay-Cv5hF63W.js.map +1 -0
- package/dist/chunks/usePortalTarget-C0p-mhaM.js +77 -0
- package/dist/chunks/usePortalTarget-C0p-mhaM.js.map +1 -0
- package/dist/chunks/validation-DauXRIkL.js +178 -0
- package/dist/chunks/validation-DauXRIkL.js.map +1 -0
- package/dist/components/GrAlert/chunks/GrAlert-B21QGele.js +258 -0
- package/dist/components/GrAlert/chunks/GrAlert-B21QGele.js.map +1 -0
- package/dist/components/GrAlert/index.js +2 -2
- package/dist/components/GrAutocomplete/chunks/GrAutocomplete-DsevPtiS.js +860 -0
- package/dist/components/GrAutocomplete/chunks/GrAutocomplete-DsevPtiS.js.map +1 -0
- package/dist/components/GrAutocomplete/index.js +1 -1
- package/dist/components/GrAutocomplete/styles.css +1 -1
- package/dist/components/GrAvatar/chunks/GrAvatar-BbdKRX8i.js +222 -0
- package/dist/components/GrAvatar/chunks/GrAvatar-BbdKRX8i.js.map +1 -0
- package/dist/components/GrAvatar/index.js +3 -3
- package/dist/components/GrBadge/chunks/GrBadge-u2ZdS7CN.js +40 -0
- package/dist/components/GrBadge/chunks/GrBadge-u2ZdS7CN.js.map +1 -0
- package/dist/components/GrBadge/index.js +1 -1
- package/dist/components/GrBadgeWrap/chunks/GrBadgeWrap-DDoFQscR.js +97 -0
- package/dist/components/GrBadgeWrap/chunks/GrBadgeWrap-DDoFQscR.js.map +1 -0
- package/dist/components/GrBadgeWrap/index.js +3 -3
- package/dist/components/GrBottomNav/chunks/GrBottomNav-JUu4ylYv.js +117 -0
- package/dist/components/GrBottomNav/chunks/GrBottomNav-JUu4ylYv.js.map +1 -0
- package/dist/components/GrBottomNav/index.js +3 -3
- package/dist/components/GrBreadcrumbs/chunks/GrBreadcrumbs-CQ44iU2o.js +267 -0
- package/dist/components/GrBreadcrumbs/chunks/GrBreadcrumbs-CQ44iU2o.js.map +1 -0
- package/dist/components/GrBreadcrumbs/index.js +1 -1
- package/dist/components/GrButton/chunks/GrButton-Bw2AH4uX.js +153 -0
- package/dist/components/GrButton/chunks/GrButton-Bw2AH4uX.js.map +1 -0
- package/dist/components/GrButton/index.js +2 -3
- package/dist/components/GrCard/chunks/GrCard-DfIZOP5N.js +89 -0
- package/dist/components/GrCard/chunks/GrCard-DfIZOP5N.js.map +1 -0
- package/dist/components/GrCard/index.js +1 -1
- package/dist/components/GrCheckbox/chunks/GrCheckbox-CEcHIsXM.js +262 -0
- package/dist/components/GrCheckbox/chunks/GrCheckbox-CEcHIsXM.js.map +1 -0
- package/dist/components/GrCheckbox/index.js +2 -2
- package/dist/components/GrCheckboxGroup/chunks/GrCheckboxGroup-BOwrVcFr.js +140 -0
- package/dist/components/GrCheckboxGroup/chunks/GrCheckboxGroup-BOwrVcFr.js.map +1 -0
- package/dist/components/GrCheckboxGroup/index.js +1 -1
- package/dist/components/GrCollapse/chunks/GrCollapse-KFcrji1L.js +294 -0
- package/dist/components/GrCollapse/chunks/GrCollapse-KFcrji1L.js.map +1 -0
- package/dist/components/GrCollapse/index.js +2 -2
- package/dist/components/GrColorPicker/chunks/GrColorPicker-qQdoEPHF.js +584 -0
- package/dist/components/GrColorPicker/chunks/GrColorPicker-qQdoEPHF.js.map +1 -0
- package/dist/components/GrColorPicker/index.js +2 -2
- package/dist/components/GrCommandPalette/chunks/GrCommandPalette-BFcMf4Pn.js +591 -0
- package/dist/components/GrCommandPalette/chunks/GrCommandPalette-BFcMf4Pn.js.map +1 -0
- package/dist/components/GrCommandPalette/index.js +3 -3
- package/dist/components/GrCommandPalette/styles.css +1 -1
- package/dist/components/GrConfigProvider/chunks/GrConfigProvider-UP-EaoAf.js +144 -0
- package/dist/components/GrConfigProvider/chunks/GrConfigProvider-UP-EaoAf.js.map +1 -0
- package/dist/components/GrConfigProvider/index.js +3 -3
- package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-rRtMScJX.js +200 -0
- package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-rRtMScJX.js.map +1 -0
- package/dist/components/GrConfirmDialog/index.js +1 -1
- package/dist/components/GrDataTable/chunks/GrDataTable-CNvZg2HZ.js +1055 -0
- package/dist/components/GrDataTable/chunks/GrDataTable-CNvZg2HZ.js.map +1 -0
- package/dist/components/GrDataTable/index.js +3 -3
- package/dist/components/GrDialog/chunks/GrDialog-D0U5iRqV.js +255 -0
- package/dist/components/GrDialog/chunks/GrDialog-D0U5iRqV.js.map +1 -0
- package/dist/components/GrDialog/index.js +2 -3
- package/dist/components/GrDialogService/chunks/GrDialogService-CrwA4aJq.js +656 -0
- package/dist/components/GrDialogService/chunks/GrDialogService-CrwA4aJq.js.map +1 -0
- package/dist/components/GrDialogService/index.js +2 -2
- package/dist/components/GrDivider/chunks/GrDivider-CAhm9jbE.js +109 -0
- package/dist/components/GrDivider/chunks/GrDivider-CAhm9jbE.js.map +1 -0
- package/dist/components/GrDivider/index.js +1 -1
- package/dist/components/GrDrawer/chunks/GrDrawer-C3zAg2tG.js +251 -0
- package/dist/components/GrDrawer/chunks/GrDrawer-C3zAg2tG.js.map +1 -0
- package/dist/components/GrDrawer/index.js +1 -1
- package/dist/components/GrDropdown/chunks/GrDropdown-BSfFOcDx.js +300 -0
- package/dist/components/GrDropdown/chunks/GrDropdown-BSfFOcDx.js.map +1 -0
- package/dist/components/GrDropdown/index.js +1 -1
- package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-LOaFSCyd.js +421 -0
- package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-LOaFSCyd.js.map +1 -0
- package/dist/components/GrDropdownMenu/index.js +2 -2
- package/dist/components/GrEmptyState/chunks/GrEmptyState-CS9do8eM.js +86 -0
- package/dist/components/GrEmptyState/chunks/GrEmptyState-CS9do8eM.js.map +1 -0
- package/dist/components/GrEmptyState/index.js +3 -3
- package/dist/components/GrFileUpload/chunks/GrFileUpload-D3-vC-ap.js +1080 -0
- package/dist/components/GrFileUpload/chunks/GrFileUpload-D3-vC-ap.js.map +1 -0
- package/dist/components/GrFileUpload/index.js +3 -3
- package/dist/components/GrForm/chunks/GrForm-DdJw23Pz.js +326 -0
- package/dist/components/GrForm/chunks/GrForm-DdJw23Pz.js.map +1 -0
- package/dist/components/GrForm/index.js +4 -4
- package/dist/components/GrFormField/chunks/GrFormField-kqfVY30N.js +190 -0
- package/dist/components/GrFormField/chunks/GrFormField-kqfVY30N.js.map +1 -0
- package/dist/components/GrFormField/index.js +3 -3
- package/dist/components/GrFormFile/chunks/GrFormFile-D722xHn8.js +452 -0
- package/dist/components/GrFormFile/chunks/GrFormFile-D722xHn8.js.map +1 -0
- package/dist/components/GrFormFile/index.js +1 -1
- package/dist/components/GrFormSection/chunks/GrFormSection-CdGWvzXO.js +63 -0
- package/dist/components/GrFormSection/chunks/GrFormSection-CdGWvzXO.js.map +1 -0
- package/dist/components/GrFormSection/index.js +3 -3
- package/dist/components/GrIcon/chunks/GrIcon-bQwtZtYT.js +57 -0
- package/dist/components/GrIcon/chunks/GrIcon-bQwtZtYT.js.map +1 -0
- package/dist/components/GrIcon/index.js +1 -1
- package/dist/components/GrImageViewer/chunks/GrImageViewer-CMO10TS7.js +1128 -0
- package/dist/components/GrImageViewer/chunks/GrImageViewer-CMO10TS7.js.map +1 -0
- package/dist/components/GrImageViewer/index.js +1 -1
- package/dist/components/GrInput/chunks/GrInput-Bb_pxqpT.js +348 -0
- package/dist/components/GrInput/chunks/GrInput-Bb_pxqpT.js.map +1 -0
- package/dist/components/GrInput/index.js +1 -1
- package/dist/components/GrInputTag/chunks/GrInputTag-Dghhg03-.js +512 -0
- package/dist/components/GrInputTag/chunks/GrInputTag-Dghhg03-.js.map +1 -0
- package/dist/components/GrInputTag/index.js +1 -1
- package/dist/components/GrKbd/chunks/GrKbd-BXbhsH0M.js +358 -0
- package/dist/components/GrKbd/chunks/GrKbd-BXbhsH0M.js.map +1 -0
- package/dist/components/GrKbd/index.js +1 -1
- package/dist/components/GrLink/chunks/GrLink-BQb7U4so.js +163 -0
- package/dist/components/GrLink/chunks/GrLink-BQb7U4so.js.map +1 -0
- package/dist/components/GrLink/index.js +1 -1
- package/dist/components/GrList/chunks/GrList-CHibO0xA.js +277 -0
- package/dist/components/GrList/chunks/GrList-CHibO0xA.js.map +1 -0
- package/dist/components/GrList/index.js +1 -1
- package/dist/components/GrLoading/chunks/GrLoading-C3DZSSuh.js +101 -0
- package/dist/components/GrLoading/chunks/GrLoading-C3DZSSuh.js.map +1 -0
- package/dist/components/GrLoading/index.js +1 -1
- package/dist/components/GrModal/chunks/GrModal-CPz7SWD_.js +313 -0
- package/dist/components/GrModal/chunks/GrModal-CPz7SWD_.js.map +1 -0
- package/dist/components/GrModal/index.js +1 -1
- package/dist/components/GrNavbar/chunks/GrNavbar-DWaaoV7n.js +104 -0
- package/dist/components/GrNavbar/chunks/GrNavbar-DWaaoV7n.js.map +1 -0
- package/dist/components/GrNavbar/index.js +1 -1
- package/dist/components/GrNumberInput/chunks/GrNumberInput-BotnzW77.js +659 -0
- package/dist/components/GrNumberInput/chunks/GrNumberInput-BotnzW77.js.map +1 -0
- package/dist/components/GrNumberInput/index.js +1 -1
- package/dist/components/GrPagination/chunks/GrPagination-GtGtSMJG.js +283 -0
- package/dist/components/GrPagination/chunks/GrPagination-GtGtSMJG.js.map +1 -0
- package/dist/components/GrPagination/index.js +1 -1
- package/dist/components/GrPopover/chunks/GrPopover-b70bIlQ9.js +216 -0
- package/dist/components/GrPopover/chunks/GrPopover-b70bIlQ9.js.map +1 -0
- package/dist/components/GrPopover/index.js +1 -1
- package/dist/components/GrProgressBar/chunks/GrProgressBar-hszUOC8f.js +90 -0
- package/dist/components/GrProgressBar/chunks/GrProgressBar-hszUOC8f.js.map +1 -0
- package/dist/components/GrProgressBar/index.js +1 -1
- package/dist/components/GrProgressCircle/chunks/GrProgressCircle-BeUx1g1f.js +202 -0
- package/dist/components/GrProgressCircle/chunks/GrProgressCircle-BeUx1g1f.js.map +1 -0
- package/dist/components/GrProgressCircle/index.js +2 -2
- package/dist/components/GrPromptDialog/chunks/GrPromptDialog-CEI8bf-t.js +348 -0
- package/dist/components/GrPromptDialog/chunks/GrPromptDialog-CEI8bf-t.js.map +1 -0
- package/dist/components/GrPromptDialog/index.js +1 -1
- package/dist/components/GrRadio/chunks/GrRadio-BdhknbO8.js +253 -0
- package/dist/components/GrRadio/chunks/GrRadio-BdhknbO8.js.map +1 -0
- package/dist/components/GrRadio/index.js +3 -3
- package/dist/components/GrRadioGroup/chunks/GrRadioGroup-BVmjKXcv.js +196 -0
- package/dist/components/GrRadioGroup/chunks/GrRadioGroup-BVmjKXcv.js.map +1 -0
- package/dist/components/GrRadioGroup/index.js +1 -1
- package/dist/components/GrRating/chunks/GrRating-BSEtaibx.js +316 -0
- package/dist/components/GrRating/chunks/GrRating-BSEtaibx.js.map +1 -0
- package/dist/components/GrRating/index.js +1 -1
- package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-CZONq8uT.js +777 -0
- package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-CZONq8uT.js.map +1 -0
- package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-CgfAwlg3.js +224 -0
- package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-CgfAwlg3.js.map +1 -0
- package/dist/components/GrResponseErrorBanner/index.js +3 -3
- package/dist/components/GrSegmented/chunks/GrSegmented-DP9WMAbm.js +388 -0
- package/dist/components/GrSegmented/chunks/GrSegmented-DP9WMAbm.js.map +1 -0
- package/dist/components/GrSegmented/index.js +3 -3
- package/dist/components/GrSelect/chunks/GrSelect-CaGuyvtb.js +1384 -0
- package/dist/components/GrSelect/chunks/GrSelect-CaGuyvtb.js.map +1 -0
- package/dist/components/GrSelect/index.js +1 -1
- package/dist/components/GrSelect/styles.css +1 -1
- package/dist/components/GrSidebar/chunks/GrSidebar-DG_t4aPE.js +258 -0
- package/dist/components/GrSidebar/chunks/GrSidebar-DG_t4aPE.js.map +1 -0
- package/dist/components/GrSidebar/index.js +3 -3
- package/dist/components/GrSkeleton/chunks/GrSkeleton-CgfXxPQ2.js +78 -0
- package/dist/components/GrSkeleton/chunks/GrSkeleton-CgfXxPQ2.js.map +1 -0
- package/dist/components/GrSkeleton/index.js +2 -2
- package/dist/components/GrSlider/chunks/GrSlider-s99yAyz6.js +379 -0
- package/dist/components/GrSlider/chunks/GrSlider-s99yAyz6.js.map +1 -0
- package/dist/components/GrSlider/index.js +1 -1
- package/dist/components/GrSortableList/chunks/GrSortableList-DJFPdUVv.js +277 -0
- package/dist/components/GrSortableList/chunks/GrSortableList-DJFPdUVv.js.map +1 -0
- package/dist/components/GrSortableList/index.js +2 -2
- package/dist/components/GrSplitter/chunks/GrSplitter-B9_JrT7q.js +259 -0
- package/dist/components/GrSplitter/chunks/GrSplitter-B9_JrT7q.js.map +1 -0
- package/dist/components/GrSplitter/index.js +3 -3
- package/dist/components/GrStatistic/chunks/GrStatistic-C3VpykHo.js +366 -0
- package/dist/components/GrStatistic/chunks/GrStatistic-C3VpykHo.js.map +1 -0
- package/dist/components/GrStatistic/index.js +2 -2
- package/dist/components/GrSwitch/chunks/GrSwitch-x_vQQ6ao.js +183 -0
- package/dist/components/GrSwitch/chunks/GrSwitch-x_vQQ6ao.js.map +1 -0
- package/dist/components/GrSwitch/index.js +1 -1
- package/dist/components/GrTabPanels/chunks/GrTabPanels-AJt1w1XC.js +81 -0
- package/dist/components/GrTabPanels/chunks/GrTabPanels-AJt1w1XC.js.map +1 -0
- package/dist/components/GrTabPanels/index.js +3 -3
- package/dist/components/GrTable/chunks/GrTable-f3qCWa99.js +169 -0
- package/dist/components/GrTable/chunks/GrTable-f3qCWa99.js.map +1 -0
- package/dist/components/GrTable/index.js +2 -2
- package/dist/components/GrTabs/chunks/GrTabs-CBHZkOFY.js +262 -0
- package/dist/components/GrTabs/chunks/GrTabs-CBHZkOFY.js.map +1 -0
- package/dist/components/GrTabs/index.js +3 -3
- package/dist/components/GrTextarea/chunks/GrTextarea-CNnkcIG1.js +241 -0
- package/dist/components/GrTextarea/chunks/GrTextarea-CNnkcIG1.js.map +1 -0
- package/dist/components/GrTextarea/index.js +1 -1
- package/dist/components/GrTimeline/chunks/GrTimeline-DlTraRn5.js +274 -0
- package/dist/components/GrTimeline/chunks/GrTimeline-DlTraRn5.js.map +1 -0
- package/dist/components/GrTimeline/index.js +3 -3
- package/dist/components/GrToaster/chunks/GrToaster-Db2NgrXu.js +373 -0
- package/dist/components/GrToaster/chunks/GrToaster-Db2NgrXu.js.map +1 -0
- package/dist/components/GrToaster/index.js +1 -1
- package/dist/components/GrTooltip/chunks/GrTooltip-B6AwE_UX.js +185 -0
- package/dist/components/GrTooltip/chunks/GrTooltip-B6AwE_UX.js.map +1 -0
- package/dist/components/GrTooltip/index.js +1 -1
- package/dist/components/GrTree/chunks/GrTree-BvOeQ3xJ.js +1376 -0
- package/dist/components/GrTree/chunks/GrTree-BvOeQ3xJ.js.map +1 -0
- package/dist/components/GrTree/index.js +2 -2
- package/dist/components/GrTree/styles.css +1 -1
- package/dist/components/GrTreeSelect/chunks/GrTreeSelect-_LjTRR7X.js +633 -0
- package/dist/components/GrTreeSelect/chunks/GrTreeSelect-_LjTRR7X.js.map +1 -0
- package/dist/components/GrTreeSelect/index.js +2 -2
- package/dist/composables/useAnnouncer.js +1 -1
- package/dist/composables/useGrComponentConfig.js +1 -1
- package/dist/composables/usePortalTarget.js +1 -1
- package/dist/directives/loading.js +2 -2
- package/dist/granular-provider-node.js +1 -1
- package/dist/granular-provider.js +1 -1
- package/dist/index.js +95 -96
- package/dist/styles/themes/dark.css +6 -1
- package/dist/testing.js +230 -0
- package/dist/testing.js.map +1 -0
- package/dist/theme-apply.js +33 -0
- package/dist/theme-apply.js.map +1 -0
- package/dist/theme.js +501 -0
- package/dist/theme.js.map +1 -0
- package/dist/tokens.js +1 -3215
- package/dist/types/components/GrAlert/index.d.ts +7 -0
- package/dist/types/components/GrAvatar/index.d.ts +9 -0
- package/dist/types/components/GrBadgeWrap/index.d.ts +7 -0
- package/dist/types/components/GrBottomNav/index.d.ts +8 -0
- package/dist/types/components/GrBreadcrumbs/grBreadcrumbsStyles.d.ts +89 -0
- package/dist/types/components/GrButton/index.d.ts +10 -0
- package/dist/types/components/GrCheckbox/index.d.ts +12 -0
- package/dist/types/components/GrCollapse/index.d.ts +8 -0
- package/dist/types/components/GrColorPicker/index.d.ts +11 -0
- package/dist/types/components/GrCommandPalette/GrCommandPalette.vue.d.ts +163 -0
- package/dist/types/components/GrCommandPalette/filtering.d.ts +63 -0
- package/dist/types/components/GrCommandPalette/index.d.ts +9 -0
- package/dist/types/components/GrConfigProvider/index.d.ts +6 -0
- package/dist/types/components/GrDataTable/grDataTableStyles.d.ts +67 -0
- package/dist/types/components/GrDataTable/index.d.ts +12 -0
- package/dist/types/components/GrDialog/index.d.ts +12 -0
- package/dist/types/components/GrDialogService/index.d.ts +6 -0
- package/dist/types/components/GrDropdownMenu/index.d.ts +21 -0
- package/dist/types/components/GrEmptyState/index.d.ts +7 -0
- package/dist/types/components/GrFileUpload/index.d.ts +17 -0
- package/dist/types/components/GrForm/index.d.ts +10 -0
- package/dist/types/components/GrFormField/index.d.ts +8 -0
- package/dist/types/components/GrFormSection/index.d.ts +7 -0
- package/dist/types/components/GrProgressCircle/index.d.ts +10 -0
- package/dist/types/components/GrRadio/index.d.ts +8 -0
- package/dist/types/components/GrRating/GrRating.vue.d.ts +178 -0
- package/dist/types/components/GrResponseErrorBanner/index.d.ts +15 -0
- package/dist/types/components/GrSegmented/index.d.ts +11 -0
- package/dist/types/components/GrSelect/GrSelect.vue.d.ts +199 -0
- package/dist/types/components/GrSidebar/index.d.ts +9 -0
- package/dist/types/components/GrSkeleton/index.d.ts +4 -0
- package/dist/types/components/GrSortableList/grSortableListStyles.d.ts +37 -0
- package/dist/types/components/GrSplitter/index.d.ts +11 -0
- package/dist/types/components/GrStatistic/GrStatistic.vue.d.ts +168 -0
- package/dist/types/components/GrStatistic/grStatisticStyles.d.ts +36 -0
- package/dist/types/components/GrTabPanels/index.d.ts +7 -0
- package/dist/types/components/GrTabs/GrTabs.vue.d.ts +121 -0
- package/dist/types/components/GrTabs/index.d.ts +8 -0
- package/dist/types/components/GrTimeline/index.d.ts +10 -0
- package/dist/types/components/GrTree/grTreeProps.d.ts +119 -0
- package/dist/types/components/GrTree/safelist.d.ts +1 -0
- package/dist/types/components/GrTreeSelect/GrTreeSelect.vue.d.ts +63 -0
- package/dist/types/components/shared/icon.d.ts +13 -0
- package/dist/types/testing/announcer.d.ts +10 -0
- package/dist/types/testing/context.d.ts +36 -0
- package/dist/types/testing/env.d.ts +25 -0
- package/dist/types/testing/geometry.d.ts +23 -0
- package/dist/types/testing/index.d.ts +13 -0
- package/dist/types/testing/keyboard.d.ts +32 -0
- package/dist/types/testing/pointer.d.ts +31 -0
- package/dist/types/theme/apply.d.ts +27 -0
- package/dist/types/theme/color.d.ts +35 -0
- package/dist/types/theme/extendTheme.d.ts +63 -0
- package/dist/types/theme/index.d.ts +22 -0
- package/dist/types/theme/roles.d.ts +16 -0
- package/dist/types/theme/tone.d.ts +32 -0
- package/dist/types/theme/validate.d.ts +16 -0
- package/dist/types/tokens/types.d.ts +62 -0
- package/dist/web-types.json +14 -19
- package/package.json +122 -104
- package/tokens/themes/dark.json +2 -1
- package/dist/chunks/chevron-right-BfqMVpbB.js +0 -44
- package/dist/chunks/chevron-right-BfqMVpbB.js.map +0 -1
- package/dist/chunks/config-06SQjBx0.js +0 -96
- package/dist/chunks/config-06SQjBx0.js.map +0 -1
- package/dist/chunks/config-B-iNaGdw.js +0 -199
- package/dist/chunks/config-B-iNaGdw.js.map +0 -1
- package/dist/chunks/config-BE6n20np2.js.map +0 -1
- package/dist/chunks/config-BqFjr3tN.js +0 -131
- package/dist/chunks/config-BqFjr3tN.js.map +0 -1
- package/dist/chunks/config-COpuWGr_.js.map +0 -1
- package/dist/chunks/config-D2aNP7Es.js +0 -70
- package/dist/chunks/config-D2aNP7Es.js.map +0 -1
- package/dist/chunks/config-D3_g2KIn.js +0 -120
- package/dist/chunks/config-D3_g2KIn.js.map +0 -1
- package/dist/chunks/config-DCFvmHEv2.js.map +0 -1
- package/dist/chunks/config-DEvsMTQE.js +0 -150
- package/dist/chunks/config-DEvsMTQE.js.map +0 -1
- package/dist/chunks/config-DP7eseR1.js +0 -92
- package/dist/chunks/config-DP7eseR1.js.map +0 -1
- package/dist/chunks/config-DhHbU3zO.js +0 -37
- package/dist/chunks/config-DhHbU3zO.js.map +0 -1
- package/dist/chunks/config-DpqOnJiz2.js +0 -11
- package/dist/chunks/config-DpqOnJiz2.js.map +0 -1
- package/dist/chunks/config-DvQIb4kb.js +0 -98
- package/dist/chunks/config-DvQIb4kb.js.map +0 -1
- package/dist/chunks/config-K0C2tcLB.js +0 -84
- package/dist/chunks/config-K0C2tcLB.js.map +0 -1
- package/dist/chunks/config-Rw9OyW70.js +0 -87
- package/dist/chunks/config-Rw9OyW70.js.map +0 -1
- package/dist/chunks/config-WTNhdh6T2.js.map +0 -1
- package/dist/chunks/config-_qPUfb6-2.js +0 -165
- package/dist/chunks/config-_qPUfb6-2.js.map +0 -1
- package/dist/chunks/config-eXB87DOi.js.map +0 -1
- package/dist/chunks/config-gvq_hWNM.js +0 -103
- package/dist/chunks/config-gvq_hWNM.js.map +0 -1
- package/dist/chunks/context-BSYR7RZs.js +0 -152
- package/dist/chunks/context-BSYR7RZs.js.map +0 -1
- package/dist/chunks/granular-provider-B9nXQCMu.js +0 -195
- package/dist/chunks/granular-provider-B9nXQCMu.js.map +0 -1
- package/dist/chunks/portalRoot-CWD4zHBm.js +0 -35
- package/dist/chunks/portalRoot-CWD4zHBm.js.map +0 -1
- package/dist/chunks/useModalOverlay-BTq-0ImG.js +0 -212
- package/dist/chunks/useModalOverlay-BTq-0ImG.js.map +0 -1
- package/dist/chunks/usePortalTarget-RyzEgNTb.js +0 -77
- package/dist/chunks/usePortalTarget-RyzEgNTb.js.map +0 -1
- package/dist/chunks/validation-5HhpanPP.js +0 -178
- package/dist/chunks/validation-5HhpanPP.js.map +0 -1
- package/dist/components/GrAlert/chunks/GrAlert-BC1lplbY.js +0 -272
- package/dist/components/GrAlert/chunks/GrAlert-BC1lplbY.js.map +0 -1
- package/dist/components/GrAutocomplete/chunks/GrAutocomplete-CPEQxmLZ.js +0 -852
- package/dist/components/GrAutocomplete/chunks/GrAutocomplete-CPEQxmLZ.js.map +0 -1
- package/dist/components/GrAvatar/chunks/GrAvatar-CVUujLmn.js +0 -222
- package/dist/components/GrAvatar/chunks/GrAvatar-CVUujLmn.js.map +0 -1
- package/dist/components/GrBadge/chunks/GrBadge-B1tgqfGQ.js +0 -40
- package/dist/components/GrBadge/chunks/GrBadge-B1tgqfGQ.js.map +0 -1
- package/dist/components/GrBadgeWrap/chunks/GrBadgeWrap-C-E9betg.js +0 -97
- package/dist/components/GrBadgeWrap/chunks/GrBadgeWrap-C-E9betg.js.map +0 -1
- package/dist/components/GrBottomNav/chunks/GrBottomNav-9GH7Dd9E.js +0 -117
- package/dist/components/GrBottomNav/chunks/GrBottomNav-9GH7Dd9E.js.map +0 -1
- package/dist/components/GrBreadcrumbs/chunks/GrBreadcrumbs-BCNGDS6k.js +0 -266
- package/dist/components/GrBreadcrumbs/chunks/GrBreadcrumbs-BCNGDS6k.js.map +0 -1
- package/dist/components/GrButton/chunks/GrButton-D0m_z0XW.js +0 -153
- package/dist/components/GrButton/chunks/GrButton-D0m_z0XW.js.map +0 -1
- package/dist/components/GrCard/chunks/GrCard-DOrGHf2x.js +0 -89
- package/dist/components/GrCard/chunks/GrCard-DOrGHf2x.js.map +0 -1
- package/dist/components/GrCheckbox/chunks/GrCheckbox-BLOp8452.js +0 -262
- package/dist/components/GrCheckbox/chunks/GrCheckbox-BLOp8452.js.map +0 -1
- package/dist/components/GrCheckboxGroup/chunks/GrCheckboxGroup-CXTx2Z5H.js +0 -140
- package/dist/components/GrCheckboxGroup/chunks/GrCheckboxGroup-CXTx2Z5H.js.map +0 -1
- package/dist/components/GrCollapse/chunks/GrCollapse-B2Fc6A9r.js +0 -308
- package/dist/components/GrCollapse/chunks/GrCollapse-B2Fc6A9r.js.map +0 -1
- package/dist/components/GrColorPicker/chunks/GrColorPicker-DAdQ-Gc3.js +0 -584
- package/dist/components/GrColorPicker/chunks/GrColorPicker-DAdQ-Gc3.js.map +0 -1
- package/dist/components/GrCommandPalette/chunks/GrCommandPalette-DMeSqkEv.js +0 -565
- package/dist/components/GrCommandPalette/chunks/GrCommandPalette-DMeSqkEv.js.map +0 -1
- package/dist/components/GrConfigProvider/chunks/GrConfigProvider-BA6JO7V6.js +0 -144
- package/dist/components/GrConfigProvider/chunks/GrConfigProvider-BA6JO7V6.js.map +0 -1
- package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-hUTi-GdJ.js +0 -200
- package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-hUTi-GdJ.js.map +0 -1
- package/dist/components/GrDataTable/chunks/GrDataTable-DzaGLG3A.js +0 -1053
- package/dist/components/GrDataTable/chunks/GrDataTable-DzaGLG3A.js.map +0 -1
- package/dist/components/GrDialog/chunks/GrDialog-MD9Fzy9C.js +0 -255
- package/dist/components/GrDialog/chunks/GrDialog-MD9Fzy9C.js.map +0 -1
- package/dist/components/GrDialogService/chunks/GrDialogService-DtgUijMj.js +0 -656
- package/dist/components/GrDialogService/chunks/GrDialogService-DtgUijMj.js.map +0 -1
- package/dist/components/GrDivider/chunks/GrDivider-B2Xwc_QO.js +0 -109
- package/dist/components/GrDivider/chunks/GrDivider-B2Xwc_QO.js.map +0 -1
- package/dist/components/GrDrawer/chunks/GrDrawer-DWHdZZzW.js +0 -251
- package/dist/components/GrDrawer/chunks/GrDrawer-DWHdZZzW.js.map +0 -1
- package/dist/components/GrDropdown/chunks/GrDropdown-0tJK01Kq.js +0 -300
- package/dist/components/GrDropdown/chunks/GrDropdown-0tJK01Kq.js.map +0 -1
- package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-VPPrpCoA.js +0 -421
- package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-VPPrpCoA.js.map +0 -1
- package/dist/components/GrEmptyState/chunks/GrEmptyState-W7Irx3vc.js +0 -86
- package/dist/components/GrEmptyState/chunks/GrEmptyState-W7Irx3vc.js.map +0 -1
- package/dist/components/GrFileUpload/chunks/GrFileUpload-DuDzC43S.js +0 -1080
- package/dist/components/GrFileUpload/chunks/GrFileUpload-DuDzC43S.js.map +0 -1
- package/dist/components/GrForm/chunks/GrForm-BCHCfIMv.js +0 -326
- package/dist/components/GrForm/chunks/GrForm-BCHCfIMv.js.map +0 -1
- package/dist/components/GrFormField/chunks/GrFormField-CL5rcgj6.js +0 -190
- package/dist/components/GrFormField/chunks/GrFormField-CL5rcgj6.js.map +0 -1
- package/dist/components/GrFormFile/chunks/GrFormFile-BikSD7bg.js +0 -452
- package/dist/components/GrFormFile/chunks/GrFormFile-BikSD7bg.js.map +0 -1
- package/dist/components/GrFormSection/chunks/GrFormSection-BEh5n4jF.js +0 -63
- package/dist/components/GrFormSection/chunks/GrFormSection-BEh5n4jF.js.map +0 -1
- package/dist/components/GrIcon/chunks/GrIcon-BvA2ZGXP.js +0 -57
- package/dist/components/GrIcon/chunks/GrIcon-BvA2ZGXP.js.map +0 -1
- package/dist/components/GrImageViewer/chunks/GrImageViewer-DE7MBbF8.js +0 -1127
- package/dist/components/GrImageViewer/chunks/GrImageViewer-DE7MBbF8.js.map +0 -1
- package/dist/components/GrInput/chunks/GrInput-2wd7Crs0.js +0 -348
- package/dist/components/GrInput/chunks/GrInput-2wd7Crs0.js.map +0 -1
- package/dist/components/GrInputTag/chunks/GrInputTag-CyV2eY7Z.js +0 -512
- package/dist/components/GrInputTag/chunks/GrInputTag-CyV2eY7Z.js.map +0 -1
- package/dist/components/GrKbd/chunks/GrKbd-DU2lBkRV.js +0 -358
- package/dist/components/GrKbd/chunks/GrKbd-DU2lBkRV.js.map +0 -1
- package/dist/components/GrLink/chunks/GrLink-D-cgUMXW.js +0 -163
- package/dist/components/GrLink/chunks/GrLink-D-cgUMXW.js.map +0 -1
- package/dist/components/GrList/chunks/GrList-4YU1NZtM.js +0 -277
- package/dist/components/GrList/chunks/GrList-4YU1NZtM.js.map +0 -1
- package/dist/components/GrLoading/chunks/GrLoading-CH95CFzS.js +0 -101
- package/dist/components/GrLoading/chunks/GrLoading-CH95CFzS.js.map +0 -1
- package/dist/components/GrModal/chunks/GrModal-BbhcsDQ8.js +0 -313
- package/dist/components/GrModal/chunks/GrModal-BbhcsDQ8.js.map +0 -1
- package/dist/components/GrNavbar/chunks/GrNavbar-CF0KbM_6.js +0 -104
- package/dist/components/GrNavbar/chunks/GrNavbar-CF0KbM_6.js.map +0 -1
- package/dist/components/GrNumberInput/chunks/GrNumberInput-CZOyPz4J.js +0 -658
- package/dist/components/GrNumberInput/chunks/GrNumberInput-CZOyPz4J.js.map +0 -1
- package/dist/components/GrPagination/chunks/GrPagination-waKhxBP7.js +0 -283
- package/dist/components/GrPagination/chunks/GrPagination-waKhxBP7.js.map +0 -1
- package/dist/components/GrPopover/chunks/GrPopover-DuqeoFaI.js +0 -216
- package/dist/components/GrPopover/chunks/GrPopover-DuqeoFaI.js.map +0 -1
- package/dist/components/GrProgressBar/chunks/GrProgressBar-xwbNM9QB.js +0 -90
- package/dist/components/GrProgressBar/chunks/GrProgressBar-xwbNM9QB.js.map +0 -1
- package/dist/components/GrProgressCircle/chunks/GrProgressCircle-B8olXRo5.js +0 -210
- package/dist/components/GrProgressCircle/chunks/GrProgressCircle-B8olXRo5.js.map +0 -1
- package/dist/components/GrPromptDialog/chunks/GrPromptDialog-JVVqBsPY.js +0 -348
- package/dist/components/GrPromptDialog/chunks/GrPromptDialog-JVVqBsPY.js.map +0 -1
- package/dist/components/GrRadio/chunks/GrRadio-DWiRaMzt.js +0 -253
- package/dist/components/GrRadio/chunks/GrRadio-DWiRaMzt.js.map +0 -1
- package/dist/components/GrRadioGroup/chunks/GrRadioGroup-DIuBw0wk.js +0 -196
- package/dist/components/GrRadioGroup/chunks/GrRadioGroup-DIuBw0wk.js.map +0 -1
- package/dist/components/GrRating/chunks/GrRating-LarIiwJL.js +0 -315
- package/dist/components/GrRating/chunks/GrRating-LarIiwJL.js.map +0 -1
- package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-C7W9mgYN.js +0 -777
- package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-C7W9mgYN.js.map +0 -1
- package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-DhX4jjay.js +0 -224
- package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-DhX4jjay.js.map +0 -1
- package/dist/components/GrSegmented/chunks/GrSegmented-CQw3ijqa.js +0 -388
- package/dist/components/GrSegmented/chunks/GrSegmented-CQw3ijqa.js.map +0 -1
- package/dist/components/GrSelect/chunks/GrSelect-DAdu044K.js +0 -1373
- package/dist/components/GrSelect/chunks/GrSelect-DAdu044K.js.map +0 -1
- package/dist/components/GrSidebar/chunks/GrSidebar-DRGnnViw.js +0 -257
- package/dist/components/GrSidebar/chunks/GrSidebar-DRGnnViw.js.map +0 -1
- package/dist/components/GrSkeleton/chunks/GrSkeleton-DEvNE3bC.js +0 -84
- package/dist/components/GrSkeleton/chunks/GrSkeleton-DEvNE3bC.js.map +0 -1
- package/dist/components/GrSlider/chunks/GrSlider-CyhVsNKn.js +0 -379
- package/dist/components/GrSlider/chunks/GrSlider-CyhVsNKn.js.map +0 -1
- package/dist/components/GrSortableList/chunks/GrSortableList-BefVfWKh.js +0 -276
- package/dist/components/GrSortableList/chunks/GrSortableList-BefVfWKh.js.map +0 -1
- package/dist/components/GrSplitter/chunks/GrSplitter-BzxVQwbY.js +0 -268
- package/dist/components/GrSplitter/chunks/GrSplitter-BzxVQwbY.js.map +0 -1
- package/dist/components/GrStatistic/chunks/GrStatistic-J4qLs3TH.js +0 -319
- package/dist/components/GrStatistic/chunks/GrStatistic-J4qLs3TH.js.map +0 -1
- package/dist/components/GrSwitch/chunks/GrSwitch-DpyvVrZG.js +0 -183
- package/dist/components/GrSwitch/chunks/GrSwitch-DpyvVrZG.js.map +0 -1
- package/dist/components/GrTabPanels/chunks/GrTabPanels-BVe1CZdJ.js +0 -81
- package/dist/components/GrTabPanels/chunks/GrTabPanels-BVe1CZdJ.js.map +0 -1
- package/dist/components/GrTable/chunks/GrTable-BfqgwETQ.js +0 -169
- package/dist/components/GrTable/chunks/GrTable-BfqgwETQ.js.map +0 -1
- package/dist/components/GrTabs/chunks/GrTabs-TeXaU5Uh.js +0 -261
- package/dist/components/GrTabs/chunks/GrTabs-TeXaU5Uh.js.map +0 -1
- package/dist/components/GrTextarea/chunks/GrTextarea-DSvd1nSy.js +0 -241
- package/dist/components/GrTextarea/chunks/GrTextarea-DSvd1nSy.js.map +0 -1
- package/dist/components/GrTimeline/chunks/GrTimeline-B-h2Yanw.js +0 -285
- package/dist/components/GrTimeline/chunks/GrTimeline-B-h2Yanw.js.map +0 -1
- package/dist/components/GrToaster/chunks/GrToaster-Ct-39hga.js +0 -373
- package/dist/components/GrToaster/chunks/GrToaster-Ct-39hga.js.map +0 -1
- package/dist/components/GrTooltip/chunks/GrTooltip-xAcqs0bP.js +0 -185
- package/dist/components/GrTooltip/chunks/GrTooltip-xAcqs0bP.js.map +0 -1
- package/dist/components/GrTree/chunks/GrTree-CaYK8dGZ.js +0 -1371
- package/dist/components/GrTree/chunks/GrTree-CaYK8dGZ.js.map +0 -1
- package/dist/components/GrTreeSelect/chunks/GrTreeSelect-DZp7CqqW.js +0 -623
- package/dist/components/GrTreeSelect/chunks/GrTreeSelect-DZp7CqqW.js.map +0 -1
- package/dist/tokens.js.map +0 -1
- package/dist/types/src/components/GrAlert/index.d.ts +0 -8
- package/dist/types/src/components/GrAvatar/index.d.ts +0 -10
- package/dist/types/src/components/GrBadgeWrap/index.d.ts +0 -7
- package/dist/types/src/components/GrBottomNav/index.d.ts +0 -9
- package/dist/types/src/components/GrBreadcrumbs/grBreadcrumbsStyles.d.ts +0 -86
- package/dist/types/src/components/GrButton/index.d.ts +0 -11
- package/dist/types/src/components/GrCheckbox/index.d.ts +0 -13
- package/dist/types/src/components/GrCollapse/index.d.ts +0 -9
- package/dist/types/src/components/GrColorPicker/index.d.ts +0 -11
- package/dist/types/src/components/GrCommandPalette/GrCommandPalette.vue.d.ts +0 -163
- package/dist/types/src/components/GrCommandPalette/filtering.d.ts +0 -59
- package/dist/types/src/components/GrCommandPalette/index.d.ts +0 -10
- package/dist/types/src/components/GrConfigProvider/index.d.ts +0 -6
- package/dist/types/src/components/GrDataTable/grDataTableStyles.d.ts +0 -68
- package/dist/types/src/components/GrDataTable/index.d.ts +0 -13
- package/dist/types/src/components/GrDialog/index.d.ts +0 -12
- package/dist/types/src/components/GrDialogService/index.d.ts +0 -6
- package/dist/types/src/components/GrDropdownMenu/index.d.ts +0 -22
- package/dist/types/src/components/GrEmptyState/index.d.ts +0 -8
- package/dist/types/src/components/GrFileUpload/index.d.ts +0 -18
- package/dist/types/src/components/GrForm/index.d.ts +0 -10
- package/dist/types/src/components/GrFormField/index.d.ts +0 -8
- package/dist/types/src/components/GrFormSection/index.d.ts +0 -8
- package/dist/types/src/components/GrProgressCircle/index.d.ts +0 -11
- package/dist/types/src/components/GrRadio/index.d.ts +0 -9
- package/dist/types/src/components/GrRating/GrRating.vue.d.ts +0 -173
- package/dist/types/src/components/GrResponseErrorBanner/index.d.ts +0 -16
- package/dist/types/src/components/GrSegmented/index.d.ts +0 -11
- package/dist/types/src/components/GrSelect/GrSelect.vue.d.ts +0 -205
- package/dist/types/src/components/GrSidebar/index.d.ts +0 -10
- package/dist/types/src/components/GrSkeleton/index.d.ts +0 -4
- package/dist/types/src/components/GrSortableList/grSortableListStyles.d.ts +0 -38
- package/dist/types/src/components/GrSplitter/index.d.ts +0 -11
- package/dist/types/src/components/GrStatistic/GrStatistic.vue.d.ts +0 -165
- package/dist/types/src/components/GrStatistic/grStatisticStyles.d.ts +0 -37
- package/dist/types/src/components/GrTabPanels/index.d.ts +0 -8
- package/dist/types/src/components/GrTabs/GrTabs.vue.d.ts +0 -117
- package/dist/types/src/components/GrTabs/index.d.ts +0 -9
- package/dist/types/src/components/GrTimeline/index.d.ts +0 -12
- package/dist/types/src/components/GrTree/grTreeProps.d.ts +0 -112
- package/dist/types/src/components/GrTree/safelist.d.ts +0 -1
- package/dist/types/src/components/GrTreeSelect/GrTreeSelect.vue.d.ts +0 -69
- package/dist/types/src/tokens/types.d.ts +0 -54
- /package/dist/chunks/{config-BE6n20np2.js → config-BE6n20np.js} +0 -0
- /package/dist/chunks/{config-COpuWGr_.js → config-COpuWGr_2.js} +0 -0
- /package/dist/chunks/{config-DCFvmHEv2.js → config-DCFvmHEv.js} +0 -0
- /package/dist/chunks/{config-WTNhdh6T2.js → config-WTNhdh6T.js} +0 -0
- /package/dist/chunks/{config-eXB87DOi.js → config-eXB87DOi2.js} +0 -0
- /package/dist/types/{src/components → components}/GrAlert/GrAlert.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrAlert/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrAlert/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrAlert/grAlertStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrAutocomplete/GrAutocomplete.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrAutocomplete/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrAutocomplete/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrAutocomplete/grAutocompleteStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrAutocomplete/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrAutocomplete/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrAvatar/GrAvatar.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrAvatar/GrAvatarGroup.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrAvatar/avatarContext.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrAvatar/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrAvatar/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrAvatar/grAvatarStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrAvatar/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrBadge/GrBadge.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrBadge/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrBadge/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrBadge/grBadgeStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrBadge/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrBadge/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrBadgeWrap/GrBadgeWrap.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrBadgeWrap/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrBadgeWrap/grBadgeWrapStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrBadgeWrap/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrBottomNav/GrBottomNav.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrBottomNav/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrBottomNav/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrBottomNav/grBottomNavStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrBottomNav/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrBreadcrumbs/GrBreadcrumbs.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrBreadcrumbs/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrBreadcrumbs/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrBreadcrumbs/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrBreadcrumbs/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrButton/GrButton.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrButton/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrButton/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrButton/grButtonStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrButton/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrButtonGroup/GrButtonGroup.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrButtonGroup/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrButtonGroup/context.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrButtonGroup/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrCard/GrCard.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrCard/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrCard/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrCard/grCardStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrCard/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrCard/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrCheckbox/GrCheckbox.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrCheckbox/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrCheckbox/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrCheckbox/grCheckboxGroupContext.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrCheckbox/grCheckboxStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrCheckbox/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrCheckboxGroup/GrCheckboxGroup.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrCheckboxGroup/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrCheckboxGroup/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrCheckboxGroup/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrCollapse/GrCollapse.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrCollapse/GrCollapseItem.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrCollapse/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrCollapse/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrCollapse/grCollapseContext.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrCollapse/grCollapseStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrCollapse/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrColorPicker/GrColorPicker.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrColorPicker/color.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrColorPicker/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrColorPicker/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrColorPicker/grColorPickerStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrColorPicker/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrCommandPalette/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrCommandPalette/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrCommandPalette/grCommandPaletteStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrCommandPalette/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrConfigProvider/GrConfigProvider.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrConfigProvider/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrConfigProvider/context.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrConfigProvider/zIndexScale.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrConfirmDialog/GrConfirmDialog.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrConfirmDialog/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrConfirmDialog/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrConfirmDialog/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDataTable/GrDataTable.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDataTable/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDataTable/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDataTable/grDataTableSort.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDataTable/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDialog/GrDialog.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDialog/GrDialogCloseButton.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDialog/GrDialogFooter.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDialog/GrDialogHeader.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDialog/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDialog/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDialog/dialogShared.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDialog/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDialogService/GrDialogServiceHost.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDialogService/GrDialogServiceItem.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDialogService/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDialogService/store.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDialogService/types.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDialogService/useDialogService.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDivider/GrDivider.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDivider/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDivider/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDivider/grDividerStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDivider/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDivider/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDrawer/GrDrawer.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDrawer/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDrawer/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDrawer/grDrawerStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDrawer/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDrawer/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDropdown/GrDropdown.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDropdown/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDropdown/grDropdownStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDropdown/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDropdown/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDropdownMenu/GrDropdownMenu.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDropdownMenu/GrDropdownMenuColumn.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDropdownMenu/GrDropdownMenuColumns.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDropdownMenu/GrDropdownMenuDivider.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDropdownMenu/GrDropdownMenuGroup.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDropdownMenu/GrDropdownMenuHeader.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDropdownMenu/GrDropdownMenuItem.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDropdownMenu/GrDropdownMenuList.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDropdownMenu/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDropdownMenu/grDropdownMenuStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDropdownMenu/menuModel.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrDropdownMenu/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrEmptyState/GrEmptyState.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrEmptyState/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrEmptyState/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrEmptyState/grEmptyStateStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrEmptyState/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFileUpload/FileValidationError.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFileUpload/GrFileUpload.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFileUpload/acceptValidator.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFileUpload/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFileUpload/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFileUpload/fileEntry.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFileUpload/grFileUploadStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFileUpload/matchAccept.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFileUpload/maxFileSize.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFileUpload/runFileValidators.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFileUpload/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFileUpload/types.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFileUpload/uploadState.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFileUpload/uploadViaXhr.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFileUpload/useDropZone.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFileUpload/usePerFileUpload.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFileUpload/useUploadState.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrForm/GrForm.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrForm/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrForm/context.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrForm/fileRule.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrForm/modelSnapshot.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrForm/validation.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFormField/GrFormField.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFormField/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFormField/context.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFormField/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFormField/grFormFieldStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFormField/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFormFile/GrFormFile.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFormFile/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFormFile/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFormFile/grFormFileStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFormFile/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFormFile/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFormSection/GrFormSection.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFormSection/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFormSection/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFormSection/grFormSectionStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrFormSection/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrIcon/GrIcon.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrIcon/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrIcon/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrIcon/grIconStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrIcon/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrIcon/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrImageViewer/GrImageViewer.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrImageViewer/composables/usePointerGestures.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrImageViewer/composables/useViewerKeyboard.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrImageViewer/composables/useWheelGesture.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrImageViewer/composables/useZoomPan.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrImageViewer/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrImageViewer/grImageViewerStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrImageViewer/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrImageViewer/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrInput/GrInput.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrInput/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrInput/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrInput/grInputStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrInput/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrInput/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrInputTag/GrInputTag.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrInputTag/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrInputTag/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrInputTag/grInputTagStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrInputTag/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrInputTag/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrKbd/GrKbd.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrKbd/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrKbd/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrKbd/grKbdStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrKbd/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrKbd/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrLink/GrLink.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrLink/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrLink/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrLink/grLinkStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrLink/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrLink/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrList/GrList.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrList/GrListItem.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrList/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrList/grListStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrList/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrList/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrLoading/GrLoading.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrLoading/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrLoading/grLoadingStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrLoading/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrLoading/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrModal/GrModal.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrModal/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrModal/context.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrModal/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrModal/grModalStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrModal/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrModal/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrNavbar/GrNavbar.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrNavbar/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrNavbar/grNavbarStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrNavbar/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrNavbar/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrNumberInput/GrNumberInput.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrNumberInput/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrNumberInput/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrNumberInput/grNumberInputStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrNumberInput/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrNumberInput/numberInputMath.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrNumberInput/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrPagination/GrPagination.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrPagination/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrPagination/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrPagination/grPaginationStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrPagination/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrPagination/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrPopover/GrPopover.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrPopover/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrPopover/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrPopover/grPopoverStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrPopover/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrPopover/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrProgressBar/GrProgressBar.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrProgressBar/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrProgressBar/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrProgressBar/grStyle.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrProgressBar/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrProgressBar/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrProgressCircle/GrProgressCircle.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrProgressCircle/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrProgressCircle/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrProgressCircle/geometry.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrProgressCircle/grProgressCircleStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrProgressCircle/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrPromptDialog/GrPromptDialog.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrPromptDialog/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrPromptDialog/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrPromptDialog/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrRadio/GrRadio.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrRadio/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrRadio/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrRadio/grRadioGroupContext.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrRadio/grRadioStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrRadio/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrRadioGroup/GrRadioGroup.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrRadioGroup/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrRadioGroup/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrRadioGroup/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrRating/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrRating/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrRating/grRatingStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrRating/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrRating/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrResponseErrorBanner/GrFormErrorBanner.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrResponseErrorBanner/GrResponseErrorBanner.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrResponseErrorBanner/GrUploadErrorBanner.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrResponseErrorBanner/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrResponseErrorBanner/parsers/abortErrorParser.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrResponseErrorBanner/parsers/createResponseErrorClassifier.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrResponseErrorBanner/parsers/fileValidationParser.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrResponseErrorBanner/parsers/httpStatusParser.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrResponseErrorBanner/parsers/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrResponseErrorBanner/parsers/jsonApiErrorParser.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrResponseErrorBanner/parsers/laravelValidationParser.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrResponseErrorBanner/parsers/networkErrorParser.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrResponseErrorBanner/parsers/normalizeError.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrResponseErrorBanner/parsers/plainMessageParser.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrResponseErrorBanner/parsers/problemDetailsParser.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrResponseErrorBanner/responseError.defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrResponseErrorBanner/responseError.types.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrResponseErrorBanner/useResponseError.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSegmented/GrSegmented.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSegmented/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSegmented/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSegmented/grSegmentedStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSegmented/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSelect/composables/useSelectNavigation.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSelect/composables/useSelectPanelItems.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSelect/composables/useSelectValues.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSelect/composables/useSelectVirtualization.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSelect/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSelect/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSelect/grSelectStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSelect/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSelect/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSelect/selectValue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSidebar/GrSidebar.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSidebar/GrSidebarGroup.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSidebar/GrSidebarItem.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSidebar/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSidebar/grSidebarStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSidebar/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSidebar/sidebarContext.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSkeleton/GrSkeleton.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSkeleton/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSkeleton/grSkeletonStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSlider/GrSlider.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSlider/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSlider/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSlider/grSliderStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSlider/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSlider/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSortableList/GrSortableList.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSortableList/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSortableList/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSortableList/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSplitter/GrSplitter.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSplitter/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSplitter/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSplitter/grSplitterStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSplitter/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSplitter/splitterGeometry.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrStatistic/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrStatistic/countUp.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrStatistic/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrStatistic/formatStatisticValue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrStatistic/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrStatistic/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSwitch/GrSwitch.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSwitch/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSwitch/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSwitch/grSwitchStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSwitch/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrSwitch/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTabPanels/GrTabPanel.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTabPanels/GrTabPanels.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTabPanels/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTabPanels/context.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTable/GrTable.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTable/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTable/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTable/grTableStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTable/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTable/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTabs/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTabs/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTabs/grTabsStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTabs/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTextarea/GrTextarea.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTextarea/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTextarea/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTextarea/grTextareaStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTextarea/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTextarea/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTimeline/GrTimeline.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTimeline/GrTimelineItem.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTimeline/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTimeline/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTimeline/grTimelineContext.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTimeline/grTimelineStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTimeline/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTimeline/timelineGroups.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrToaster/GrToaster.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrToaster/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrToaster/grToasterStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrToaster/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrToaster/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTooltip/GrTooltip.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTooltip/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTooltip/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTooltip/grTooltipStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTooltip/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTooltip/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTree/GrTree.vue.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTree/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTree/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTree/grTreeChecking.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTree/grTreeDataAdapter.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTree/grTreeInteractionContext.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTree/grTreeStore.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTree/grTreeStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTree/grTreeTypes.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTree/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTreeSelect/config.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTreeSelect/defaults.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTreeSelect/grTreeSelectStyles.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTreeSelect/grTreeSelectTypes.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTreeSelect/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/GrTreeSelect/safelist.d.ts +0 -0
- /package/dist/types/{src/components → components}/shared/classTokens.d.ts +0 -0
- /package/dist/types/{src/components → components}/shared/hotkey.d.ts +0 -0
- /package/dist/types/{src/components → components}/shared/hotkeyTokens.d.ts +0 -0
- /package/dist/types/{src/components → components}/shared/instance.d.ts +0 -0
- /package/dist/types/{src/components → components}/shared/optionFilter.d.ts +0 -0
- /package/dist/types/{src/components → components}/shared/sizes.d.ts +0 -0
- /package/dist/types/{src/components → components}/shared/slotNodes.d.ts +0 -0
- /package/dist/types/{src/components → components}/shared/tones.d.ts +0 -0
- /package/dist/types/{src/composables → composables}/internal/dragSortGeometry.d.ts +0 -0
- /package/dist/types/{src/composables → composables}/internal/focusables.d.ts +0 -0
- /package/dist/types/{src/composables → composables}/internal/inert.d.ts +0 -0
- /package/dist/types/{src/composables → composables}/internal/overlayStack.d.ts +0 -0
- /package/dist/types/{src/composables → composables}/internal/portalRoot.d.ts +0 -0
- /package/dist/types/{src/composables → composables}/internal/useAddonMeasurement.d.ts +0 -0
- /package/dist/types/{src/composables → composables}/internal/useControlAddons.d.ts +0 -0
- /package/dist/types/{src/composables → composables}/internal/useControlledOpen.d.ts +0 -0
- /package/dist/types/{src/composables → composables}/internal/useFilePreviews.d.ts +0 -0
- /package/dist/types/{src/composables → composables}/internal/useFocusWithin.d.ts +0 -0
- /package/dist/types/{src/composables → composables}/internal/useInertOthers.d.ts +0 -0
- /package/dist/types/{src/composables → composables}/internal/useModalOverlay.d.ts +0 -0
- /package/dist/types/{src/composables → composables}/internal/useOverlayPresence.d.ts +0 -0
- /package/dist/types/{src/composables → composables}/internal/useScrollLock.d.ts +0 -0
- /package/dist/types/{src/composables → composables}/internal/useTeleportEnabled.d.ts +0 -0
- /package/dist/types/{src/composables → composables}/useAnnouncer.d.ts +0 -0
- /package/dist/types/{src/composables → composables}/useComboboxNavigation.d.ts +0 -0
- /package/dist/types/{src/composables → composables}/useDismissible.d.ts +0 -0
- /package/dist/types/{src/composables → composables}/useDragGesture.d.ts +0 -0
- /package/dist/types/{src/composables → composables}/useDragSort.d.ts +0 -0
- /package/dist/types/{src/composables → composables}/useFloating.d.ts +0 -0
- /package/dist/types/{src/composables → composables}/useFocusTrap.d.ts +0 -0
- /package/dist/types/{src/composables → composables}/useGrComponentConfig.d.ts +0 -0
- /package/dist/types/{src/composables → composables}/useGrFormControl.d.ts +0 -0
- /package/dist/types/{src/composables → composables}/useGranularityTranslations.d.ts +0 -0
- /package/dist/types/{src/composables → composables}/useOverlayLayer.d.ts +0 -0
- /package/dist/types/{src/composables → composables}/usePortalTarget.d.ts +0 -0
- /package/dist/types/{src/composables → composables}/useRovingFocus.d.ts +0 -0
- /package/dist/types/{src/composables → composables}/useTheme.d.ts +0 -0
- /package/dist/types/{src/composables → composables}/useToast.d.ts +0 -0
- /package/dist/types/{src/composables → composables}/useVirtualList.d.ts +0 -0
- /package/dist/types/{src/directives → directives}/autofocus.d.ts +0 -0
- /package/dist/types/{src/directives → directives}/autosize.d.ts +0 -0
- /package/dist/types/{src/directives → directives}/clickOutside.d.ts +0 -0
- /package/dist/types/{src/directives → directives}/dropzone.d.ts +0 -0
- /package/dist/types/{src/directives → directives}/globalDirectives.d.ts +0 -0
- /package/dist/types/{src/directives → directives}/hotkey.d.ts +0 -0
- /package/dist/types/{src/directives → directives}/index.d.ts +0 -0
- /package/dist/types/{src/directives → directives}/loading.d.ts +0 -0
- /package/dist/types/{src/fileValidation → fileValidation}/FileValidationError.d.ts +0 -0
- /package/dist/types/{src/fileValidation → fileValidation}/acceptValidator.d.ts +0 -0
- /package/dist/types/{src/fileValidation → fileValidation}/allowedExtensionsValidator.d.ts +0 -0
- /package/dist/types/{src/fileValidation → fileValidation}/allowedMimeTypesValidator.d.ts +0 -0
- /package/dist/types/{src/fileValidation → fileValidation}/i18n.d.ts +0 -0
- /package/dist/types/{src/fileValidation → fileValidation}/index.d.ts +0 -0
- /package/dist/types/{src/fileValidation → fileValidation}/matchAccept.d.ts +0 -0
- /package/dist/types/{src/fileValidation → fileValidation}/maxCountValidator.d.ts +0 -0
- /package/dist/types/{src/fileValidation → fileValidation}/maxFileSize.d.ts +0 -0
- /package/dist/types/{src/fileValidation → fileValidation}/maxTotalSizeBytesValidator.d.ts +0 -0
- /package/dist/types/{src/fileValidation → fileValidation}/runFileValidators.d.ts +0 -0
- /package/dist/types/{src/fileValidation → fileValidation}/types.d.ts +0 -0
- /package/dist/types/{src/granular-provider → granular-provider}/index.d.ts +0 -0
- /package/dist/types/{src/granular-provider → granular-provider}/node.d.ts +0 -0
- /package/dist/types/{src/granular-provider → granular-provider}/shared.d.ts +0 -0
- /package/dist/types/{src/i18n → i18n}/adapter.d.ts +0 -0
- /package/dist/types/{src/i18n → i18n}/all.d.ts +0 -0
- /package/dist/types/{src/i18n → i18n}/index.d.ts +0 -0
- /package/dist/types/{src/i18n → i18n}/messages/const.d.ts +0 -0
- /package/dist/types/{src/i18n → i18n}/messages/en.d.ts +0 -0
- /package/dist/types/{src/i18n → i18n}/messages/es.d.ts +0 -0
- /package/dist/types/{src/i18n → i18n}/messages/index.d.ts +0 -0
- /package/dist/types/{src/i18n → i18n}/messages/ru.d.ts +0 -0
- /package/dist/types/{src/index.d.ts → index.d.ts} +0 -0
- /package/dist/types/{src/internal → internal}/granularityFormat.d.ts +0 -0
- /package/dist/types/{src/internal → internal}/granularityI18n.d.ts +0 -0
- /package/dist/types/{src/internal → internal}/keyboard.d.ts +0 -0
- /package/dist/types/{src/tokens → tokens}/generated.d.ts +0 -0
- /package/dist/types/{src/tokens → tokens}/index.d.ts +0 -0
- /package/dist/types/{src/vue → vue}/index.d.ts +0 -0
- /package/dist/types/{src/vue → vue}/plugin.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GrSplitter-B9_JrT7q.js","names":[],"sources":["../../../../src/components/GrSplitter/splitterGeometry.ts","../../../../src/components/GrSplitter/GrSplitter.vue","../../../../src/components/GrSplitter/GrSplitter.vue"],"sourcesContent":["/**\n * Арифметика раздвижных панелей. Без Vue — проверяется без монтирования.\n *\n * Всё считается в процентах ширины (или высоты) контейнера: клавиатура,\n * границы и сворачивание работают без единого замера DOM, а серверный рендер\n * совпадает с клиентским. Замер нужен ровно в одном месте — перевод координаты\n * указателя в проценты.\n */\n\nexport const GR_SPLITTER_ORIENTATIONS = ['horizontal', 'vertical'] as const\n\nexport type GrSplitterOrientation = typeof GR_SPLITTER_ORIENTATIONS[number]\n\nexport interface GrSplitterBounds {\n /** Минимум первой панели. */\n min: number\n /** Максимум первой панели. */\n max: number\n /** Минимум второй панели: без него её можно задавить в ноль. */\n minEnd: number\n}\n\nfunction toFinite(value: number, fallback: number): number {\n return Number.isFinite(value) ? value : fallback\n}\n\n/**\n * Приводит долю первой панели к допустимой.\n *\n * При конфликте `min` и `minEnd` побеждает `min`: первая панель не должна\n * уезжать под свой минимум, даже если вторая при этом окажется уже своего.\n * Обратный порядок дал бы панель, которую пользователь не может вернуть.\n */\nexport function clampSize(value: number, bounds: GrSplitterBounds): number {\n const min = Math.min(100, Math.max(0, toFinite(bounds.min, 0)))\n const max = Math.min(100, Math.max(min, toFinite(bounds.max, 100)))\n const minEnd = Math.min(100, Math.max(0, toFinite(bounds.minEnd, 0)))\n\n const upper = Math.max(min, Math.min(max, 100 - minEnd))\n\n return Math.min(upper, Math.max(min, toFinite(value, min)))\n}\n\n/** Доля, соответствующая позиции указателя. Вне контейнера — его края. */\nexport function sizeFromPointer(\n rect: { left: number, top: number, width: number, height: number },\n clientX: number,\n clientY: number,\n orientation: GrSplitterOrientation,\n): number {\n const total = orientation === 'horizontal' ? rect.width : rect.height\n // Схлопнутый контейнер (ещё не в раскладке, `display: none`) — делить не на что.\n if (!(total > 0)) return 0\n\n const offset = orientation === 'horizontal' ? clientX - rect.left : clientY - rect.top\n\n return Math.min(100, Math.max(0, (offset / total) * 100))\n}\n\n/**\n * Тянуть панель ниже половины её минимума пользователь может только с одним\n * намерением — убрать её совсем. Это единственный способ свернуть панель\n * мышью: двойной клик занят сбросом к дефолту, `Enter` — клавиатурой.\n */\nexport function shouldCollapse(value: number, bounds: GrSplitterBounds): boolean {\n const min = Math.min(100, Math.max(0, toFinite(bounds.min, 0)))\n if (min <= 0) return false\n\n return toFinite(value, min) < min / 2\n}\n","<script setup lang=\"ts\">\nimport { computed, ref, useId, watch } from 'vue'\n\nimport { useGrComponentProp } from '../GrConfigProvider/context'\nimport { useDragGesture } from '../../composables/useDragGesture'\nimport { useGranularityTranslations } from '../../internal/granularityI18n'\n\nimport { paneClass, rootClass, separatorClass } from './grSplitterStyles'\nimport {\n clampSize,\n shouldCollapse,\n sizeFromPointer,\n type GrSplitterBounds,\n type GrSplitterOrientation,\n} from './splitterGeometry'\n\nexport type { GrSplitterOrientation } from './splitterGeometry'\n\n/**\n * Пропы {@link GrSplitter}.\n *\n * Две панели и разделитель между ними. Размер первой панели — доля контейнера\n * в процентах: она переживает смену ширины окна и рендерится на сервере без\n * замеров.\n */\nexport interface GrSplitterProps {\n /** Доля первой панели в процентах. Поддерживает `v-model`; без него компонент помнит размер сам. */\n modelValue?: number\n /** Стартовая доля и точка возврата по двойному клику. */\n defaultSize?: number\n /** `horizontal` — панели рядом, `vertical` — одна над другой. */\n orientation?: GrSplitterOrientation\n /** Минимум первой панели в процентах. */\n min?: number\n /** Максимум первой панели в процентах. */\n max?: number\n /** Минимум второй панели: без него её можно задавить в ноль. */\n minEnd?: number\n /** Шаг стрелок. */\n step?: number\n /** Шаг стрелок с `Shift`. */\n bigStep?: number\n /** Разрешить сворачивание первой панели. */\n collapsible?: boolean\n /** Первая панель свёрнута. Поддерживает `v-model:collapsed`. */\n collapsed?: boolean\n /** Разделитель не тянется, не фокусируется и не отвечает на клавиши. */\n disabled?: boolean\n /** Имя разделителя для скринридера. Не задано — из локали. */\n ariaLabel?: string\n}\n\nexport interface GrSplitterEmits {\n (e: 'update:modelValue', value: number): void\n (e: 'update:collapsed', value: boolean): void\n /** Конец жеста и каждый шаг с клавиатуры: сюда вешают сохранение раскладки. */\n (e: 'change', value: number): void\n}\n\nconst props = withDefaults(defineProps<GrSplitterProps>(), {\n modelValue: undefined,\n defaultSize: 50,\n min: 10,\n max: 90,\n minEnd: 10,\n step: 1,\n bigStep: 10,\n collapsed: false,\n disabled: false,\n ariaLabel: undefined,\n // `undefined`, а не готовые значения: иначе `componentDefaults` до них не дошли бы.\n orientation: undefined,\n collapsible: undefined,\n})\n\nconst emit = defineEmits<GrSplitterEmits>()\n\ndefineSlots<{\n /** Первая панель — та, чей размер задаёт модель. */\n start?: () => any\n /** Вторая панель: занимает остаток. */\n end?: () => any\n}>()\n\nconst { t } = useGranularityTranslations()\n\nconst orientation = useGrComponentProp('GrSplitter', 'orientation', () => props.orientation, 'horizontal')\nconst collapsible = useGrComponentProp('GrSplitter', 'collapsible', () => props.collapsible, false)\n\nconst startId = useId()\nconst rootEl = ref<HTMLElement | null>(null)\n\nconst bounds = computed<GrSplitterBounds>(() => ({\n min: props.min,\n max: props.max,\n minEnd: props.minEnd,\n}))\n\n/**\n * Локальное состояние с синхронизацией из пропа — поддерживает и controlled\n * (`v-model`), и uncontrolled (сплиттер помнит размер сам), как `collapsed`\n * у `GrSidebar`.\n */\nconst sizeState = ref(clampSize(props.modelValue ?? props.defaultSize, bounds.value))\nwatch(() => props.modelValue, (value) => {\n if (value !== undefined) sizeState.value = clampSize(value, bounds.value)\n})\n\nconst collapsedState = ref(props.collapsed)\nwatch(() => props.collapsed, value => (collapsedState.value = value))\n\n/** Размер, к которому возвращает `Enter`: свёрнутость не должна его терять. */\nconst restoreSize = ref(sizeState.value)\n\n/** Значение до начала жеста: `pointercancel` откатывает к нему. */\nlet sizeBeforeDrag = sizeState.value\nlet collapsedBeforeDrag = false\n\nconst isCollapsed = computed(() => collapsible.value && collapsedState.value)\n\n/** Что видно на экране: свёрнутая панель — это ноль в треке, но не ноль в модели. */\nconst renderedSize = computed(() => (isCollapsed.value ? 0 : clampSize(sizeState.value, bounds.value)))\n\nconst gridStyle = computed(() => {\n const track = `${renderedSize.value}% var(--gr-splitter-size, 6px) 1fr`\n\n return orientation.value === 'horizontal'\n ? { gridTemplateColumns: track }\n : { gridTemplateRows: track }\n})\n\n/**\n * `aria-orientation` описывает **сам разделитель**, а не раскладку: панели,\n * стоящие рядом, разделяет вертикальная полоса.\n */\nconst separatorOrientation = computed(() => (orientation.value === 'horizontal' ? 'vertical' : 'horizontal'))\n\nconst label = computed(() => props.ariaLabel ?? t('gr.splitter.label', 'Resize panels'))\n\nfunction setSize(next: number, commit: boolean): void {\n const value = clampSize(next, bounds.value)\n const changed = value !== sizeState.value\n\n sizeState.value = value\n if (changed) emit('update:modelValue', value)\n if (commit) emit('change', value)\n}\n\nfunction setCollapsed(value: boolean): void {\n if (collapsedState.value === value) return\n\n collapsedState.value = value\n emit('update:collapsed', value)\n}\n\n/**\n * Шаг размера. Свёрнутая панель на первое нажатие возвращается — двигать\n * то, чего не видно, значит менять раскладку вслепую.\n */\nfunction moveBy(delta: number): void {\n if (isCollapsed.value) {\n setCollapsed(false)\n setSize(restoreSize.value, true)\n return\n }\n\n restoreSize.value = clampSize(sizeState.value + delta, bounds.value)\n setSize(sizeState.value + delta, true)\n}\n\nfunction toggleCollapsed(): void {\n if (!collapsible.value) return\n\n if (isCollapsed.value) {\n setCollapsed(false)\n setSize(restoreSize.value, true)\n return\n }\n\n restoreSize.value = sizeState.value\n setCollapsed(true)\n emit('change', 0)\n}\n\nfunction reset(): void {\n setCollapsed(false)\n restoreSize.value = clampSize(props.defaultSize, bounds.value)\n setSize(props.defaultSize, true)\n}\n\n// ————— Указатель.\nfunction onPointerMove(event: PointerEvent): void {\n const rect = rootEl.value?.getBoundingClientRect()\n if (!rect) return\n\n // Против выделения текста под курсором во время жеста.\n event.preventDefault()\n\n const raw = sizeFromPointer(rect, event.clientX, event.clientY, orientation.value)\n\n if (collapsible.value && shouldCollapse(raw, bounds.value)) {\n if (!collapsedState.value) restoreSize.value = sizeState.value\n setCollapsed(true)\n return\n }\n\n setCollapsed(false)\n restoreSize.value = clampSize(raw, bounds.value)\n setSize(raw, false)\n}\n\nconst { isDragging, start: onPointerDown } = useDragGesture({\n disabled: () => props.disabled,\n onStart: () => {\n sizeBeforeDrag = sizeState.value\n collapsedBeforeDrag = collapsedState.value\n },\n onMove: onPointerMove,\n onEnd: () => emit('change', renderedSize.value),\n // Оборванный жест (браузер забрал указатель) не коммитит ничего: раскладка\n // возвращается к той, что была до нажатия.\n onCancel: () => {\n setCollapsed(collapsedBeforeDrag)\n setSize(sizeBeforeDrag, false)\n },\n})\n\n// ————— Клавиатура.\nconst decreaseKey = computed(() => (orientation.value === 'horizontal' ? 'ArrowLeft' : 'ArrowUp'))\nconst increaseKey = computed(() => (orientation.value === 'horizontal' ? 'ArrowRight' : 'ArrowDown'))\n\nfunction onKeydown(event: KeyboardEvent): void {\n if (props.disabled) return\n\n const step = event.shiftKey ? props.bigStep : props.step\n\n if (event.key === decreaseKey.value) moveBy(-step)\n else if (event.key === increaseKey.value) moveBy(step)\n else if (event.key === 'Home') moveBy(-100)\n else if (event.key === 'End') moveBy(100)\n else if (event.key === 'Enter') toggleCollapsed()\n else return\n\n // Дошли сюда — клавиша наша: страница не должна ещё и прокрутиться.\n event.preventDefault()\n}\n\nfunction onDoubleClick(): void {\n if (props.disabled) return\n\n reset()\n}\n</script>\n\n<template>\n <div\n ref=\"rootEl\"\n data-gr-splitter\n :data-orientation=\"orientation\"\n :data-dragging=\"isDragging ? '' : undefined\"\n :data-collapsed=\"isCollapsed ? '' : undefined\"\n :class=\"rootClass\"\n :style=\"gridStyle\"\n >\n <div\n :id=\"startId\"\n data-gr-splitter-pane=\"start\"\n :class=\"paneClass\"\n >\n <slot name=\"start\" />\n </div>\n\n <div\n data-gr-splitter-separator\n role=\"separator\"\n :tabindex=\"disabled ? undefined : 0\"\n :aria-orientation=\"separatorOrientation\"\n :aria-label=\"label\"\n :aria-controls=\"startId\"\n :aria-valuenow=\"Math.round(renderedSize)\"\n :aria-valuemin=\"Math.round(min)\"\n :aria-valuemax=\"Math.round(max)\"\n :aria-disabled=\"disabled ? 'true' : undefined\"\n :class=\"separatorClass\"\n @pointerdown=\"onPointerDown\"\n @keydown=\"onKeydown\"\n @dblclick=\"onDoubleClick\"\n />\n\n <div\n data-gr-splitter-pane=\"end\"\n :class=\"paneClass\"\n >\n <slot name=\"end\" />\n </div>\n </div>\n</template>\n\n<style>\n[data-gr-splitter-separator] {\n background-color: var(--gr-splitter-color, var(--gr-brd));\n}\n\n/*\n * Зона захвата шире видимой полосы: шесть пикселей мышью не берутся, а делать\n * ради этого полосу толще — значит красить раскладку под удобство мыши.\n */\n[data-gr-splitter-separator]::before {\n content: '';\n position: absolute;\n inset: calc(-1 * var(--gr-splitter-hit, 4px));\n}\n\n/* Насечка: короткая полоса посередине — единственный видимый намёк, что это ручка. */\n[data-gr-splitter-separator]::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n border-radius: var(--gr-radius-full);\n background-color: var(--gr-splitter-hover-color, var(--gr-muted-fg));\n opacity: 0;\n transform: translate(-50%, -50%);\n transition: opacity var(--gr-duration-fast) var(--gr-ease-out);\n}\n\n[data-gr-splitter][data-orientation='horizontal'] [data-gr-splitter-separator] {\n cursor: col-resize;\n}\n\n[data-gr-splitter][data-orientation='horizontal'] [data-gr-splitter-separator]::after {\n width: 2px;\n height: var(--gr-splitter-grip, 24px);\n}\n\n[data-gr-splitter][data-orientation='vertical'] [data-gr-splitter-separator] {\n cursor: row-resize;\n}\n\n[data-gr-splitter][data-orientation='vertical'] [data-gr-splitter-separator]::after {\n width: var(--gr-splitter-grip, 24px);\n height: 2px;\n}\n\n[data-gr-splitter-separator]:hover {\n background-color: var(--gr-splitter-hover-color, var(--gr-muted-fg));\n}\n\n[data-gr-splitter-separator]:hover::after,\n[data-gr-splitter-separator]:focus-visible::after {\n opacity: 1;\n}\n\n/* На залитой полосе насечка читается только вырезом — цветом страницы. */\n[data-gr-splitter-separator]:hover::after,\n[data-gr-splitter][data-dragging] [data-gr-splitter-separator]::after {\n background-color: var(--gr-bg);\n}\n\n/* Во время жеста полоса подсвечена, даже если курсор ушёл с неё. */\n[data-gr-splitter][data-dragging] [data-gr-splitter-separator] {\n background-color: var(--gr-splitter-active-color, var(--gr-primary));\n}\n\n[data-gr-splitter][data-dragging] [data-gr-splitter-separator]::after {\n opacity: 1;\n}\n\n/* Жест не должен попутно выделять текст в панелях. */\n[data-gr-splitter][data-dragging] {\n user-select: none;\n}\n\n[data-gr-splitter-separator][aria-disabled='true'] {\n cursor: default;\n}\n\n[data-gr-splitter-separator][aria-disabled='true']::after {\n display: none;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, ref, useId, watch } from 'vue'\n\nimport { useGrComponentProp } from '../GrConfigProvider/context'\nimport { useDragGesture } from '../../composables/useDragGesture'\nimport { useGranularityTranslations } from '../../internal/granularityI18n'\n\nimport { paneClass, rootClass, separatorClass } from './grSplitterStyles'\nimport {\n clampSize,\n shouldCollapse,\n sizeFromPointer,\n type GrSplitterBounds,\n type GrSplitterOrientation,\n} from './splitterGeometry'\n\nexport type { GrSplitterOrientation } from './splitterGeometry'\n\n/**\n * Пропы {@link GrSplitter}.\n *\n * Две панели и разделитель между ними. Размер первой панели — доля контейнера\n * в процентах: она переживает смену ширины окна и рендерится на сервере без\n * замеров.\n */\nexport interface GrSplitterProps {\n /** Доля первой панели в процентах. Поддерживает `v-model`; без него компонент помнит размер сам. */\n modelValue?: number\n /** Стартовая доля и точка возврата по двойному клику. */\n defaultSize?: number\n /** `horizontal` — панели рядом, `vertical` — одна над другой. */\n orientation?: GrSplitterOrientation\n /** Минимум первой панели в процентах. */\n min?: number\n /** Максимум первой панели в процентах. */\n max?: number\n /** Минимум второй панели: без него её можно задавить в ноль. */\n minEnd?: number\n /** Шаг стрелок. */\n step?: number\n /** Шаг стрелок с `Shift`. */\n bigStep?: number\n /** Разрешить сворачивание первой панели. */\n collapsible?: boolean\n /** Первая панель свёрнута. Поддерживает `v-model:collapsed`. */\n collapsed?: boolean\n /** Разделитель не тянется, не фокусируется и не отвечает на клавиши. */\n disabled?: boolean\n /** Имя разделителя для скринридера. Не задано — из локали. */\n ariaLabel?: string\n}\n\nexport interface GrSplitterEmits {\n (e: 'update:modelValue', value: number): void\n (e: 'update:collapsed', value: boolean): void\n /** Конец жеста и каждый шаг с клавиатуры: сюда вешают сохранение раскладки. */\n (e: 'change', value: number): void\n}\n\nconst props = withDefaults(defineProps<GrSplitterProps>(), {\n modelValue: undefined,\n defaultSize: 50,\n min: 10,\n max: 90,\n minEnd: 10,\n step: 1,\n bigStep: 10,\n collapsed: false,\n disabled: false,\n ariaLabel: undefined,\n // `undefined`, а не готовые значения: иначе `componentDefaults` до них не дошли бы.\n orientation: undefined,\n collapsible: undefined,\n})\n\nconst emit = defineEmits<GrSplitterEmits>()\n\ndefineSlots<{\n /** Первая панель — та, чей размер задаёт модель. */\n start?: () => any\n /** Вторая панель: занимает остаток. */\n end?: () => any\n}>()\n\nconst { t } = useGranularityTranslations()\n\nconst orientation = useGrComponentProp('GrSplitter', 'orientation', () => props.orientation, 'horizontal')\nconst collapsible = useGrComponentProp('GrSplitter', 'collapsible', () => props.collapsible, false)\n\nconst startId = useId()\nconst rootEl = ref<HTMLElement | null>(null)\n\nconst bounds = computed<GrSplitterBounds>(() => ({\n min: props.min,\n max: props.max,\n minEnd: props.minEnd,\n}))\n\n/**\n * Локальное состояние с синхронизацией из пропа — поддерживает и controlled\n * (`v-model`), и uncontrolled (сплиттер помнит размер сам), как `collapsed`\n * у `GrSidebar`.\n */\nconst sizeState = ref(clampSize(props.modelValue ?? props.defaultSize, bounds.value))\nwatch(() => props.modelValue, (value) => {\n if (value !== undefined) sizeState.value = clampSize(value, bounds.value)\n})\n\nconst collapsedState = ref(props.collapsed)\nwatch(() => props.collapsed, value => (collapsedState.value = value))\n\n/** Размер, к которому возвращает `Enter`: свёрнутость не должна его терять. */\nconst restoreSize = ref(sizeState.value)\n\n/** Значение до начала жеста: `pointercancel` откатывает к нему. */\nlet sizeBeforeDrag = sizeState.value\nlet collapsedBeforeDrag = false\n\nconst isCollapsed = computed(() => collapsible.value && collapsedState.value)\n\n/** Что видно на экране: свёрнутая панель — это ноль в треке, но не ноль в модели. */\nconst renderedSize = computed(() => (isCollapsed.value ? 0 : clampSize(sizeState.value, bounds.value)))\n\nconst gridStyle = computed(() => {\n const track = `${renderedSize.value}% var(--gr-splitter-size, 6px) 1fr`\n\n return orientation.value === 'horizontal'\n ? { gridTemplateColumns: track }\n : { gridTemplateRows: track }\n})\n\n/**\n * `aria-orientation` описывает **сам разделитель**, а не раскладку: панели,\n * стоящие рядом, разделяет вертикальная полоса.\n */\nconst separatorOrientation = computed(() => (orientation.value === 'horizontal' ? 'vertical' : 'horizontal'))\n\nconst label = computed(() => props.ariaLabel ?? t('gr.splitter.label', 'Resize panels'))\n\nfunction setSize(next: number, commit: boolean): void {\n const value = clampSize(next, bounds.value)\n const changed = value !== sizeState.value\n\n sizeState.value = value\n if (changed) emit('update:modelValue', value)\n if (commit) emit('change', value)\n}\n\nfunction setCollapsed(value: boolean): void {\n if (collapsedState.value === value) return\n\n collapsedState.value = value\n emit('update:collapsed', value)\n}\n\n/**\n * Шаг размера. Свёрнутая панель на первое нажатие возвращается — двигать\n * то, чего не видно, значит менять раскладку вслепую.\n */\nfunction moveBy(delta: number): void {\n if (isCollapsed.value) {\n setCollapsed(false)\n setSize(restoreSize.value, true)\n return\n }\n\n restoreSize.value = clampSize(sizeState.value + delta, bounds.value)\n setSize(sizeState.value + delta, true)\n}\n\nfunction toggleCollapsed(): void {\n if (!collapsible.value) return\n\n if (isCollapsed.value) {\n setCollapsed(false)\n setSize(restoreSize.value, true)\n return\n }\n\n restoreSize.value = sizeState.value\n setCollapsed(true)\n emit('change', 0)\n}\n\nfunction reset(): void {\n setCollapsed(false)\n restoreSize.value = clampSize(props.defaultSize, bounds.value)\n setSize(props.defaultSize, true)\n}\n\n// ————— Указатель.\nfunction onPointerMove(event: PointerEvent): void {\n const rect = rootEl.value?.getBoundingClientRect()\n if (!rect) return\n\n // Против выделения текста под курсором во время жеста.\n event.preventDefault()\n\n const raw = sizeFromPointer(rect, event.clientX, event.clientY, orientation.value)\n\n if (collapsible.value && shouldCollapse(raw, bounds.value)) {\n if (!collapsedState.value) restoreSize.value = sizeState.value\n setCollapsed(true)\n return\n }\n\n setCollapsed(false)\n restoreSize.value = clampSize(raw, bounds.value)\n setSize(raw, false)\n}\n\nconst { isDragging, start: onPointerDown } = useDragGesture({\n disabled: () => props.disabled,\n onStart: () => {\n sizeBeforeDrag = sizeState.value\n collapsedBeforeDrag = collapsedState.value\n },\n onMove: onPointerMove,\n onEnd: () => emit('change', renderedSize.value),\n // Оборванный жест (браузер забрал указатель) не коммитит ничего: раскладка\n // возвращается к той, что была до нажатия.\n onCancel: () => {\n setCollapsed(collapsedBeforeDrag)\n setSize(sizeBeforeDrag, false)\n },\n})\n\n// ————— Клавиатура.\nconst decreaseKey = computed(() => (orientation.value === 'horizontal' ? 'ArrowLeft' : 'ArrowUp'))\nconst increaseKey = computed(() => (orientation.value === 'horizontal' ? 'ArrowRight' : 'ArrowDown'))\n\nfunction onKeydown(event: KeyboardEvent): void {\n if (props.disabled) return\n\n const step = event.shiftKey ? props.bigStep : props.step\n\n if (event.key === decreaseKey.value) moveBy(-step)\n else if (event.key === increaseKey.value) moveBy(step)\n else if (event.key === 'Home') moveBy(-100)\n else if (event.key === 'End') moveBy(100)\n else if (event.key === 'Enter') toggleCollapsed()\n else return\n\n // Дошли сюда — клавиша наша: страница не должна ещё и прокрутиться.\n event.preventDefault()\n}\n\nfunction onDoubleClick(): void {\n if (props.disabled) return\n\n reset()\n}\n</script>\n\n<template>\n <div\n ref=\"rootEl\"\n data-gr-splitter\n :data-orientation=\"orientation\"\n :data-dragging=\"isDragging ? '' : undefined\"\n :data-collapsed=\"isCollapsed ? '' : undefined\"\n :class=\"rootClass\"\n :style=\"gridStyle\"\n >\n <div\n :id=\"startId\"\n data-gr-splitter-pane=\"start\"\n :class=\"paneClass\"\n >\n <slot name=\"start\" />\n </div>\n\n <div\n data-gr-splitter-separator\n role=\"separator\"\n :tabindex=\"disabled ? undefined : 0\"\n :aria-orientation=\"separatorOrientation\"\n :aria-label=\"label\"\n :aria-controls=\"startId\"\n :aria-valuenow=\"Math.round(renderedSize)\"\n :aria-valuemin=\"Math.round(min)\"\n :aria-valuemax=\"Math.round(max)\"\n :aria-disabled=\"disabled ? 'true' : undefined\"\n :class=\"separatorClass\"\n @pointerdown=\"onPointerDown\"\n @keydown=\"onKeydown\"\n @dblclick=\"onDoubleClick\"\n />\n\n <div\n data-gr-splitter-pane=\"end\"\n :class=\"paneClass\"\n >\n <slot name=\"end\" />\n </div>\n </div>\n</template>\n\n<style>\n[data-gr-splitter-separator] {\n background-color: var(--gr-splitter-color, var(--gr-brd));\n}\n\n/*\n * Зона захвата шире видимой полосы: шесть пикселей мышью не берутся, а делать\n * ради этого полосу толще — значит красить раскладку под удобство мыши.\n */\n[data-gr-splitter-separator]::before {\n content: '';\n position: absolute;\n inset: calc(-1 * var(--gr-splitter-hit, 4px));\n}\n\n/* Насечка: короткая полоса посередине — единственный видимый намёк, что это ручка. */\n[data-gr-splitter-separator]::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n border-radius: var(--gr-radius-full);\n background-color: var(--gr-splitter-hover-color, var(--gr-muted-fg));\n opacity: 0;\n transform: translate(-50%, -50%);\n transition: opacity var(--gr-duration-fast) var(--gr-ease-out);\n}\n\n[data-gr-splitter][data-orientation='horizontal'] [data-gr-splitter-separator] {\n cursor: col-resize;\n}\n\n[data-gr-splitter][data-orientation='horizontal'] [data-gr-splitter-separator]::after {\n width: 2px;\n height: var(--gr-splitter-grip, 24px);\n}\n\n[data-gr-splitter][data-orientation='vertical'] [data-gr-splitter-separator] {\n cursor: row-resize;\n}\n\n[data-gr-splitter][data-orientation='vertical'] [data-gr-splitter-separator]::after {\n width: var(--gr-splitter-grip, 24px);\n height: 2px;\n}\n\n[data-gr-splitter-separator]:hover {\n background-color: var(--gr-splitter-hover-color, var(--gr-muted-fg));\n}\n\n[data-gr-splitter-separator]:hover::after,\n[data-gr-splitter-separator]:focus-visible::after {\n opacity: 1;\n}\n\n/* На залитой полосе насечка читается только вырезом — цветом страницы. */\n[data-gr-splitter-separator]:hover::after,\n[data-gr-splitter][data-dragging] [data-gr-splitter-separator]::after {\n background-color: var(--gr-bg);\n}\n\n/* Во время жеста полоса подсвечена, даже если курсор ушёл с неё. */\n[data-gr-splitter][data-dragging] [data-gr-splitter-separator] {\n background-color: var(--gr-splitter-active-color, var(--gr-primary));\n}\n\n[data-gr-splitter][data-dragging] [data-gr-splitter-separator]::after {\n opacity: 1;\n}\n\n/* Жест не должен попутно выделять текст в панелях. */\n[data-gr-splitter][data-dragging] {\n user-select: none;\n}\n\n[data-gr-splitter-separator][aria-disabled='true'] {\n cursor: default;\n}\n\n[data-gr-splitter-separator][aria-disabled='true']::after {\n display: none;\n}\n</style>\n"],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as grSplitterSafelist, t as grSplitterConfig } from "../../chunks/config-
|
|
2
|
-
import {
|
|
3
|
-
export {
|
|
1
|
+
import { n as grSplitterSafelist, t as grSplitterConfig } from "../../chunks/config-BE6n20np.js";
|
|
2
|
+
import { n as sizeFromPointer, t as GrSplitter_default } from "./chunks/GrSplitter-B9_JrT7q.js";
|
|
3
|
+
export { GrSplitter_default as GrSplitter, GrSplitter_default as default, grSplitterConfig, grSplitterSafelist, sizeFromPointer };
|
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
import { a as useGrComponentSize } from "../../../chunks/context-CTbuwcYs.js";
|
|
2
|
+
import { n as useGranularityTranslations } from "../../../chunks/granularityI18n-BC5zsj_d.js";
|
|
3
|
+
import { t as GrSkeleton_default } from "../../GrSkeleton/chunks/GrSkeleton-CgfXxPQ2.js";
|
|
4
|
+
import { n as iconTag, t as iconClass } from "../../../chunks/icon-Dag2tIMs.js";
|
|
5
|
+
import { t as minus_default } from "../../../chunks/minus-oxdbHF33.js";
|
|
6
|
+
import { a as statisticRootClass, c as statisticTrendClassByTrend, i as statisticPlaceholderHeightBySize, l as statisticTrendSizeBySize, o as statisticTitleClass, r as statisticAffixSizeBySize, s as statisticTitleSizeBySize, u as statisticValueClass } from "../../../chunks/config-Be9k9bOf.js";
|
|
7
|
+
import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, markRaw, normalizeClass, onBeforeUnmount, onMounted, openBlock, ref, renderSlot, resolveDynamicComponent, toDisplayString, unref, useSlots, watch, withCtx } from "vue";
|
|
8
|
+
//#region ~icons/lucide/trending-down
|
|
9
|
+
var _hoisted_1$2 = {
|
|
10
|
+
viewBox: "0 0 24 24",
|
|
11
|
+
width: "1.2em",
|
|
12
|
+
height: "1.2em"
|
|
13
|
+
};
|
|
14
|
+
function render$2(_ctx, _cache) {
|
|
15
|
+
return openBlock(), createElementBlock("svg", _hoisted_1$2, [..._cache[0] || (_cache[0] = [createElementVNode("g", {
|
|
16
|
+
fill: "none",
|
|
17
|
+
stroke: "currentColor",
|
|
18
|
+
"stroke-linecap": "round",
|
|
19
|
+
"stroke-linejoin": "round",
|
|
20
|
+
"stroke-width": "2"
|
|
21
|
+
}, [createElementVNode("path", { d: "M16 17h6v-6" }), createElementVNode("path", { d: "m22 17l-8.5-8.5l-5 5L2 7" })], -1)])]);
|
|
22
|
+
}
|
|
23
|
+
var trending_down_default = markRaw({
|
|
24
|
+
name: "lucide-trending-down",
|
|
25
|
+
render: render$2
|
|
26
|
+
});
|
|
27
|
+
//#endregion
|
|
28
|
+
//#region ~icons/lucide/trending-up
|
|
29
|
+
var _hoisted_1$1 = {
|
|
30
|
+
viewBox: "0 0 24 24",
|
|
31
|
+
width: "1.2em",
|
|
32
|
+
height: "1.2em"
|
|
33
|
+
};
|
|
34
|
+
function render$1(_ctx, _cache) {
|
|
35
|
+
return openBlock(), createElementBlock("svg", _hoisted_1$1, [..._cache[0] || (_cache[0] = [createElementVNode("g", {
|
|
36
|
+
fill: "none",
|
|
37
|
+
stroke: "currentColor",
|
|
38
|
+
"stroke-linecap": "round",
|
|
39
|
+
"stroke-linejoin": "round",
|
|
40
|
+
"stroke-width": "2"
|
|
41
|
+
}, [createElementVNode("path", { d: "M16 7h6v6" }), createElementVNode("path", { d: "m22 7l-8.5 8.5l-5-5L2 17" })], -1)])]);
|
|
42
|
+
}
|
|
43
|
+
var trending_up_default = markRaw({
|
|
44
|
+
name: "lucide-trending-up",
|
|
45
|
+
render: render$1
|
|
46
|
+
});
|
|
47
|
+
//#endregion
|
|
48
|
+
//#region src/components/GrStatistic/countUp.ts
|
|
49
|
+
/**
|
|
50
|
+
* Перебор чисел для `GrStatistic`: чистая арифметика кадра без Vue и таймеров.
|
|
51
|
+
*
|
|
52
|
+
* Вынесено отдельным модулем по той же причине, что и `formatStatisticValue`:
|
|
53
|
+
* кривая и округление проверяются напрямую, без монтирования и подмены `rAF`.
|
|
54
|
+
*/
|
|
55
|
+
/** Быстрый старт, мягкая остановка — та же форма, что у `--gr-ease-out`. */
|
|
56
|
+
function easeOutCubic(t) {
|
|
57
|
+
return 1 - (1 - Math.min(Math.max(t, 0), 1)) ** 3;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Значение кадра на `elapsed` миллисекунде перехода `from → to`.
|
|
61
|
+
*
|
|
62
|
+
* Округление до `precision` обязательно: без него кадры показывали бы
|
|
63
|
+
* `1283.6666666666667` там, где показатель целый, и ширина строки прыгала бы
|
|
64
|
+
* даже при `tabular-nums`. Последний кадр возвращает ровно `to` — приближение
|
|
65
|
+
* не должно оставлять показатель в 1283.9999.
|
|
66
|
+
*/
|
|
67
|
+
function countUpFrame(from, to, elapsed, duration, precision) {
|
|
68
|
+
if (!(duration > 0) || elapsed >= duration) return to;
|
|
69
|
+
const digits = Math.min(Math.max(precision ?? 0, 0), 20);
|
|
70
|
+
const value = from + (to - from) * easeOutCubic(elapsed / duration);
|
|
71
|
+
return Number(value.toFixed(digits));
|
|
72
|
+
}
|
|
73
|
+
//#endregion
|
|
74
|
+
//#region src/components/GrStatistic/formatStatisticValue.ts
|
|
75
|
+
var DEFAULT_GROUP_SEPARATOR = " ";
|
|
76
|
+
var DEFAULT_DECIMAL_SEPARATOR = ".";
|
|
77
|
+
/**
|
|
78
|
+
* Форматирует значение показателя: фиксирует точность и расставляет разделители.
|
|
79
|
+
*
|
|
80
|
+
* Нечисловые значения возвращаются без изменений — это позволяет показывать в
|
|
81
|
+
* `GrStatistic` уже готовые строки («2 ч 15 мин», «—») без обходных пропов.
|
|
82
|
+
* Вынесено из SFC отдельным модулем, чтобы тестировалось без монтирования.
|
|
83
|
+
*
|
|
84
|
+
* Порядок разрешения разделителей: явный проп → локаль → встроенный дефолт.
|
|
85
|
+
*/
|
|
86
|
+
function formatStatisticValue(value, options = {}) {
|
|
87
|
+
const { precision, groupSeparator, decimalSeparator, locale } = options;
|
|
88
|
+
const numeric = typeof value === "number" ? value : Number(value);
|
|
89
|
+
if (typeof value === "string" && (value.trim() === "" || !Number.isFinite(numeric))) return value;
|
|
90
|
+
if (!Number.isFinite(numeric)) return String(value);
|
|
91
|
+
if (locale) return formatByLocale(numeric, locale, {
|
|
92
|
+
precision,
|
|
93
|
+
groupSeparator,
|
|
94
|
+
decimalSeparator
|
|
95
|
+
});
|
|
96
|
+
const fixed = precision === void 0 ? String(numeric) : numeric.toFixed(precision);
|
|
97
|
+
if (fixed.includes("e") || fixed.includes("E")) return fixed;
|
|
98
|
+
const negative = fixed.startsWith("-");
|
|
99
|
+
const [intPart, fracPart] = (negative ? fixed.slice(1) : fixed).split(".");
|
|
100
|
+
const separator = groupSeparator ?? DEFAULT_GROUP_SEPARATOR;
|
|
101
|
+
const grouped = separator ? intPart.replace(/\B(?=(\d{3})+(?!\d))/g, separator) : intPart;
|
|
102
|
+
return [
|
|
103
|
+
negative ? "-" : "",
|
|
104
|
+
grouped,
|
|
105
|
+
fracPart ? `${decimalSeparator ?? DEFAULT_DECIMAL_SEPARATOR}${fracPart}` : ""
|
|
106
|
+
].join("");
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* `formatToParts` вместо `format`: даёт заменить отдельные разделители, оставив
|
|
110
|
+
* остальные правила локали (индийская группировка, знак минуса, порядок частей).
|
|
111
|
+
*/
|
|
112
|
+
function formatByLocale(value, locale, options) {
|
|
113
|
+
const { precision, groupSeparator, decimalSeparator } = options;
|
|
114
|
+
const digits = precision === void 0 ? void 0 : Math.min(Math.max(precision, 0), 20);
|
|
115
|
+
return new Intl.NumberFormat(locale, {
|
|
116
|
+
useGrouping: true,
|
|
117
|
+
minimumFractionDigits: digits,
|
|
118
|
+
maximumFractionDigits: digits ?? 20
|
|
119
|
+
}).formatToParts(value).map((part) => {
|
|
120
|
+
if (part.type === "group" && groupSeparator !== void 0) return groupSeparator;
|
|
121
|
+
if (part.type === "decimal" && decimalSeparator !== void 0) return decimalSeparator;
|
|
122
|
+
return part.value;
|
|
123
|
+
}).join("");
|
|
124
|
+
}
|
|
125
|
+
//#endregion
|
|
126
|
+
//#region src/components/GrStatistic/GrStatistic.vue?vue&type=script&setup=true&lang.ts
|
|
127
|
+
var _hoisted_1 = {
|
|
128
|
+
key: 0,
|
|
129
|
+
"data-gr-statistic-icon": "",
|
|
130
|
+
class: "mt-0.5 inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-[var(--gr-radius-lg)] bg-[var(--gr-muted)] text-[var(--gr-muted-fg)]"
|
|
131
|
+
};
|
|
132
|
+
var _hoisted_2 = { class: "min-w-0" };
|
|
133
|
+
var _hoisted_3 = { class: "sr-only" };
|
|
134
|
+
var _hoisted_4 = ["aria-hidden"];
|
|
135
|
+
var _hoisted_5 = {
|
|
136
|
+
key: 1,
|
|
137
|
+
"data-gr-statistic-final": "",
|
|
138
|
+
class: "sr-only"
|
|
139
|
+
};
|
|
140
|
+
var _hoisted_6 = {
|
|
141
|
+
key: 0,
|
|
142
|
+
"data-gr-statistic-trend-label": "",
|
|
143
|
+
class: "sr-only"
|
|
144
|
+
};
|
|
145
|
+
//#endregion
|
|
146
|
+
//#region src/components/GrStatistic/GrStatistic.vue
|
|
147
|
+
var GrStatistic_default = /* @__PURE__ */ defineComponent({
|
|
148
|
+
__name: "GrStatistic",
|
|
149
|
+
props: {
|
|
150
|
+
value: {},
|
|
151
|
+
title: { default: void 0 },
|
|
152
|
+
precision: { default: void 0 },
|
|
153
|
+
groupSeparator: { default: void 0 },
|
|
154
|
+
decimalSeparator: { default: void 0 },
|
|
155
|
+
locale: { default: void 0 },
|
|
156
|
+
prefix: { default: void 0 },
|
|
157
|
+
suffix: { default: void 0 },
|
|
158
|
+
icon: { default: void 0 },
|
|
159
|
+
size: { default: void 0 },
|
|
160
|
+
tone: { default: "neutral" },
|
|
161
|
+
trend: { default: void 0 },
|
|
162
|
+
trendText: { default: void 0 },
|
|
163
|
+
loading: {
|
|
164
|
+
type: Boolean,
|
|
165
|
+
default: false
|
|
166
|
+
},
|
|
167
|
+
animate: {
|
|
168
|
+
type: Boolean,
|
|
169
|
+
default: false
|
|
170
|
+
},
|
|
171
|
+
animateDuration: { default: 600 },
|
|
172
|
+
as: { default: void 0 },
|
|
173
|
+
href: { default: void 0 },
|
|
174
|
+
clickable: {
|
|
175
|
+
type: Boolean,
|
|
176
|
+
default: false
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
emits: ["click"],
|
|
180
|
+
setup(__props, { emit: __emit }) {
|
|
181
|
+
const props = __props;
|
|
182
|
+
const emit = __emit;
|
|
183
|
+
const slots = useSlots();
|
|
184
|
+
const { t, locale } = useGranularityTranslations();
|
|
185
|
+
const resolvedLocale = computed(() => props.locale ?? locale.value);
|
|
186
|
+
/**
|
|
187
|
+
* Число текущего кадра перебора. `null` — перебора нет, показываем сам проп:
|
|
188
|
+
* так значение остаётся конечным и на сервере, и до первого твина.
|
|
189
|
+
*/
|
|
190
|
+
const frameValue = ref(null);
|
|
191
|
+
const formatted = computed(() => formatStatisticValue(frameValue.value ?? props.value, {
|
|
192
|
+
precision: props.precision,
|
|
193
|
+
groupSeparator: props.groupSeparator,
|
|
194
|
+
decimalSeparator: props.decimalSeparator,
|
|
195
|
+
locale: resolvedLocale.value
|
|
196
|
+
}));
|
|
197
|
+
/** Конечное значение — то, что читает диктор, пока на экране идёт перебор. */
|
|
198
|
+
const finalFormatted = computed(() => formatStatisticValue(props.value, {
|
|
199
|
+
precision: props.precision,
|
|
200
|
+
groupSeparator: props.groupSeparator,
|
|
201
|
+
decimalSeparator: props.decimalSeparator,
|
|
202
|
+
locale: resolvedLocale.value
|
|
203
|
+
}));
|
|
204
|
+
const isCounting = computed(() => frameValue.value !== null);
|
|
205
|
+
const hasTitle = computed(() => Boolean(props.title || slots.title));
|
|
206
|
+
const isInteractive = computed(() => Boolean(props.as || props.href || props.clickable));
|
|
207
|
+
const rootTag = computed(() => {
|
|
208
|
+
if (props.as) return typeof props.as === "string" ? props.as : markRaw(props.as);
|
|
209
|
+
if (props.href) return "a";
|
|
210
|
+
return props.clickable ? "button" : "div";
|
|
211
|
+
});
|
|
212
|
+
const rootClass = computed(() => statisticRootClass({ interactive: isInteractive.value }));
|
|
213
|
+
function toNumber(value) {
|
|
214
|
+
const numeric = typeof value === "number" ? value : Number(value);
|
|
215
|
+
return Number.isFinite(numeric) ? numeric : null;
|
|
216
|
+
}
|
|
217
|
+
let frameHandle = null;
|
|
218
|
+
function stopCounting() {
|
|
219
|
+
if (frameHandle !== null) cancelAnimationFrame(frameHandle);
|
|
220
|
+
frameHandle = null;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Перебор чисел ведёт JS, а глобальный кламп в `base.css` гасит только CSS —
|
|
224
|
+
* значит уважать «уменьшить движение» обязан сам компонент (`docs/motion.md`).
|
|
225
|
+
* Читается в момент старта, а не в теле `setup`: `matchMedia` на сервере нет, и
|
|
226
|
+
* первый клиентский рендер разошёлся бы с серверным.
|
|
227
|
+
*/
|
|
228
|
+
function prefersReducedMotion() {
|
|
229
|
+
return typeof window !== "undefined" && window.matchMedia?.("(prefers-reduced-motion: reduce)")?.matches === true;
|
|
230
|
+
}
|
|
231
|
+
function runCountUp(from, to) {
|
|
232
|
+
stopCounting();
|
|
233
|
+
const duration = props.animateDuration;
|
|
234
|
+
if (!(duration > 0) || from === to || prefersReducedMotion()) {
|
|
235
|
+
frameValue.value = null;
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
const started = performance.now();
|
|
239
|
+
frameValue.value = from;
|
|
240
|
+
const step = (now) => {
|
|
241
|
+
const elapsed = now - started;
|
|
242
|
+
const value = countUpFrame(from, to, elapsed, duration, props.precision);
|
|
243
|
+
if (elapsed >= duration) {
|
|
244
|
+
frameValue.value = null;
|
|
245
|
+
frameHandle = null;
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
frameValue.value = value;
|
|
249
|
+
frameHandle = requestAnimationFrame(step);
|
|
250
|
+
};
|
|
251
|
+
frameHandle = requestAnimationFrame(step);
|
|
252
|
+
}
|
|
253
|
+
/** Перебирать можно только числа: «2 ч 15 мин» и «—» ставятся сразу. */
|
|
254
|
+
function startIfNumeric(from, to) {
|
|
255
|
+
if (!props.animate || props.loading) {
|
|
256
|
+
stopCounting();
|
|
257
|
+
frameValue.value = null;
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
const target = toNumber(to);
|
|
261
|
+
const source = toNumber(from);
|
|
262
|
+
if (target === null || source === null) {
|
|
263
|
+
stopCounting();
|
|
264
|
+
frameValue.value = null;
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
runCountUp(source, target);
|
|
268
|
+
}
|
|
269
|
+
onMounted(() => startIfNumeric(0, props.value));
|
|
270
|
+
watch(() => props.value, (next, prev) => startIfNumeric(prev, next));
|
|
271
|
+
onBeforeUnmount(stopCounting);
|
|
272
|
+
const resolvedSize = useGrComponentSize(() => props.size, { component: "GrStatistic" });
|
|
273
|
+
const trendIconByTrend = {
|
|
274
|
+
up: trending_up_default,
|
|
275
|
+
down: trending_down_default,
|
|
276
|
+
flat: minus_default
|
|
277
|
+
};
|
|
278
|
+
const trendLabel = computed(() => {
|
|
279
|
+
if (!props.trend) return void 0;
|
|
280
|
+
return {
|
|
281
|
+
up: () => t("gr.statistic.trendUp", "Increase"),
|
|
282
|
+
down: () => t("gr.statistic.trendDown", "Decrease"),
|
|
283
|
+
flat: () => t("gr.statistic.trendFlat", "No change")
|
|
284
|
+
}[props.trend]();
|
|
285
|
+
});
|
|
286
|
+
return (_ctx, _cache) => {
|
|
287
|
+
return openBlock(), createBlock(resolveDynamicComponent(rootTag.value), {
|
|
288
|
+
"data-gr-statistic": "",
|
|
289
|
+
type: rootTag.value === "button" ? "button" : void 0,
|
|
290
|
+
href: rootTag.value === "a" ? __props.href : void 0,
|
|
291
|
+
class: normalizeClass(rootClass.value),
|
|
292
|
+
onClick: _cache[0] || (_cache[0] = ($event) => emit("click", $event))
|
|
293
|
+
}, {
|
|
294
|
+
default: withCtx(() => [__props.icon || _ctx.$slots.icon ? (openBlock(), createElementBlock("span", _hoisted_1, [renderSlot(_ctx.$slots, "icon", {}, () => [(openBlock(), createBlock(resolveDynamicComponent(unref(iconTag)(__props.icon)), {
|
|
295
|
+
class: normalizeClass(["block h-4 w-4", unref(iconClass)(__props.icon)]),
|
|
296
|
+
"aria-hidden": "true"
|
|
297
|
+
}, null, 8, ["class"]))])])) : createCommentVNode("", true), createElementVNode("div", _hoisted_2, [(openBlock(), createBlock(resolveDynamicComponent(hasTitle.value ? "dl" : "div"), { class: "m-0" }, {
|
|
298
|
+
default: withCtx(() => [hasTitle.value ? (openBlock(), createElementBlock("dt", {
|
|
299
|
+
key: 0,
|
|
300
|
+
"data-gr-statistic-title": "",
|
|
301
|
+
class: normalizeClass([unref(statisticTitleClass), unref(statisticTitleSizeBySize)[unref(resolvedSize)]])
|
|
302
|
+
}, [renderSlot(_ctx.$slots, "title", {}, () => [createTextVNode(toDisplayString(__props.title), 1)])], 2)) : createCommentVNode("", true), __props.loading ? (openBlock(), createBlock(resolveDynamicComponent(hasTitle.value ? "dd" : "div"), {
|
|
303
|
+
key: 1,
|
|
304
|
+
"data-gr-statistic-placeholder": "",
|
|
305
|
+
"data-testid": "gr-statistic-placeholder",
|
|
306
|
+
class: "m-0 mt-1",
|
|
307
|
+
role: "status",
|
|
308
|
+
"aria-busy": "true"
|
|
309
|
+
}, {
|
|
310
|
+
default: withCtx(() => [createVNode(GrSkeleton_default, {
|
|
311
|
+
width: "6rem",
|
|
312
|
+
height: unref(statisticPlaceholderHeightBySize)[unref(resolvedSize)],
|
|
313
|
+
rounded: "var(--gr-radius-md)"
|
|
314
|
+
}, null, 8, ["height"]), createElementVNode("span", _hoisted_3, toDisplayString(unref(t)("gr.loading.defaultText", "Loading...")), 1)]),
|
|
315
|
+
_: 1
|
|
316
|
+
})) : (openBlock(), createBlock(resolveDynamicComponent(hasTitle.value ? "dd" : "div"), {
|
|
317
|
+
key: 2,
|
|
318
|
+
"data-gr-statistic-value": "",
|
|
319
|
+
"data-testid": "gr-statistic-value",
|
|
320
|
+
class: "m-0 mt-0.5 flex items-baseline gap-1"
|
|
321
|
+
}, {
|
|
322
|
+
default: withCtx(() => [
|
|
323
|
+
__props.prefix || _ctx.$slots.prefix ? (openBlock(), createElementBlock("span", {
|
|
324
|
+
key: 0,
|
|
325
|
+
"data-gr-statistic-prefix": "",
|
|
326
|
+
class: normalizeClass(["text-[var(--gr-muted-fg)]", unref(statisticAffixSizeBySize)[unref(resolvedSize)]])
|
|
327
|
+
}, [renderSlot(_ctx.$slots, "prefix", {}, () => [createTextVNode(toDisplayString(__props.prefix), 1)])], 2)) : createCommentVNode("", true),
|
|
328
|
+
createElementVNode("span", {
|
|
329
|
+
"data-gr-statistic-number": "",
|
|
330
|
+
class: normalizeClass(unref(statisticValueClass)({
|
|
331
|
+
size: unref(resolvedSize),
|
|
332
|
+
tone: __props.tone
|
|
333
|
+
})),
|
|
334
|
+
"aria-hidden": isCounting.value ? "true" : void 0
|
|
335
|
+
}, [renderSlot(_ctx.$slots, "default", {}, () => [createTextVNode(toDisplayString(formatted.value), 1)])], 10, _hoisted_4),
|
|
336
|
+
isCounting.value ? (openBlock(), createElementBlock("span", _hoisted_5, toDisplayString(finalFormatted.value), 1)) : createCommentVNode("", true),
|
|
337
|
+
__props.suffix || _ctx.$slots.suffix ? (openBlock(), createElementBlock("span", {
|
|
338
|
+
key: 2,
|
|
339
|
+
"data-gr-statistic-suffix": "",
|
|
340
|
+
class: normalizeClass(["text-[var(--gr-muted-fg)]", unref(statisticAffixSizeBySize)[unref(resolvedSize)]])
|
|
341
|
+
}, [renderSlot(_ctx.$slots, "suffix", {}, () => [createTextVNode(toDisplayString(__props.suffix), 1)])], 2)) : createCommentVNode("", true)
|
|
342
|
+
]),
|
|
343
|
+
_: 3
|
|
344
|
+
}))]),
|
|
345
|
+
_: 3
|
|
346
|
+
})), __props.trend || __props.trendText || _ctx.$slots.trend ? (openBlock(), createElementBlock("div", {
|
|
347
|
+
key: 0,
|
|
348
|
+
"data-gr-statistic-trend": "",
|
|
349
|
+
"data-testid": "gr-statistic-trend",
|
|
350
|
+
class: normalizeClass(["mt-1 inline-flex items-center gap-1", [unref(statisticTrendSizeBySize)[unref(resolvedSize)], unref(statisticTrendClassByTrend)[__props.trend ?? "flat"]]])
|
|
351
|
+
}, [trendLabel.value ? (openBlock(), createElementBlock("span", _hoisted_6, toDisplayString(trendLabel.value), 1)) : createCommentVNode("", true), renderSlot(_ctx.$slots, "trend", {}, () => [__props.trend ? (openBlock(), createBlock(resolveDynamicComponent(trendIconByTrend[__props.trend]), {
|
|
352
|
+
key: 0,
|
|
353
|
+
class: "block h-3.5 w-3.5",
|
|
354
|
+
"aria-hidden": "true"
|
|
355
|
+
})) : createCommentVNode("", true), createElementVNode("span", null, toDisplayString(__props.trendText), 1)])], 2)) : createCommentVNode("", true)])]),
|
|
356
|
+
_: 3
|
|
357
|
+
}, 8, [
|
|
358
|
+
"type",
|
|
359
|
+
"href",
|
|
360
|
+
"class"
|
|
361
|
+
]);
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
});
|
|
365
|
+
//#endregion
|
|
366
|
+
export { formatStatisticValue as n, GrStatistic_default as t };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GrStatistic-C3VpykHo.js","names":["$slots"],"sources":["../../../../src/components/GrStatistic/countUp.ts","../../../../src/components/GrStatistic/formatStatisticValue.ts","../../../../src/components/GrStatistic/GrStatistic.vue","../../../../src/components/GrStatistic/GrStatistic.vue"],"sourcesContent":["/**\n * Перебор чисел для `GrStatistic`: чистая арифметика кадра без Vue и таймеров.\n *\n * Вынесено отдельным модулем по той же причине, что и `formatStatisticValue`:\n * кривая и округление проверяются напрямую, без монтирования и подмены `rAF`.\n */\n\n/** Быстрый старт, мягкая остановка — та же форма, что у `--gr-ease-out`. */\nexport function easeOutCubic(t: number): number {\n const clamped = Math.min(Math.max(t, 0), 1)\n return 1 - (1 - clamped) ** 3\n}\n\n/**\n * Значение кадра на `elapsed` миллисекунде перехода `from → to`.\n *\n * Округление до `precision` обязательно: без него кадры показывали бы\n * `1283.6666666666667` там, где показатель целый, и ширина строки прыгала бы\n * даже при `tabular-nums`. Последний кадр возвращает ровно `to` — приближение\n * не должно оставлять показатель в 1283.9999.\n */\nexport function countUpFrame(\n from: number,\n to: number,\n elapsed: number,\n duration: number,\n precision?: number,\n): number {\n if (!(duration > 0) || elapsed >= duration) return to\n\n const digits = Math.min(Math.max(precision ?? 0, 0), 20)\n const value = from + (to - from) * easeOutCubic(elapsed / duration)\n\n return Number(value.toFixed(digits))\n}\n","export type GrStatisticFormatOptions = {\n /** Число знаков после запятой. `undefined` — оставить как есть. */\n precision?: number\n /** Разделитель групп разрядов. Сильнее локали. */\n groupSeparator?: string\n /** Десятичный разделитель. Сильнее локали. */\n decimalSeparator?: string\n /** BCP-47 локаль: разделители берутся из `Intl.NumberFormat`. */\n locale?: string\n}\n\nconst DEFAULT_GROUP_SEPARATOR = ' '\nconst DEFAULT_DECIMAL_SEPARATOR = '.'\n\n/**\n * Форматирует значение показателя: фиксирует точность и расставляет разделители.\n *\n * Нечисловые значения возвращаются без изменений — это позволяет показывать в\n * `GrStatistic` уже готовые строки («2 ч 15 мин», «—») без обходных пропов.\n * Вынесено из SFC отдельным модулем, чтобы тестировалось без монтирования.\n *\n * Порядок разрешения разделителей: явный проп → локаль → встроенный дефолт.\n */\nexport function formatStatisticValue(\n value: number | string,\n options: GrStatisticFormatOptions = {},\n): string {\n const { precision, groupSeparator, decimalSeparator, locale } = options\n\n const numeric = typeof value === 'number' ? value : Number(value)\n if (typeof value === 'string' && (value.trim() === '' || !Number.isFinite(numeric))) {\n return value\n }\n if (!Number.isFinite(numeric)) return String(value)\n\n if (locale) {\n return formatByLocale(numeric, locale, { precision, groupSeparator, decimalSeparator })\n }\n\n const fixed = precision === undefined ? String(numeric) : numeric.toFixed(precision)\n // `toFixed` не даёт экспоненциальной записи, а `String(число)` — может (1e21+).\n // В таком случае группировать нечего: возвращаем как есть.\n if (fixed.includes('e') || fixed.includes('E')) return fixed\n\n const negative = fixed.startsWith('-')\n const [intPart, fracPart] = (negative ? fixed.slice(1) : fixed).split('.')\n\n const separator = groupSeparator ?? DEFAULT_GROUP_SEPARATOR\n const grouped = separator\n ? intPart.replace(/\\B(?=(\\d{3})+(?!\\d))/g, separator)\n : intPart\n\n return [\n negative ? '-' : '',\n grouped,\n fracPart ? `${decimalSeparator ?? DEFAULT_DECIMAL_SEPARATOR}${fracPart}` : '',\n ].join('')\n}\n\n/**\n * `formatToParts` вместо `format`: даёт заменить отдельные разделители, оставив\n * остальные правила локали (индийская группировка, знак минуса, порядок частей).\n */\nfunction formatByLocale(\n value: number,\n locale: string,\n options: Pick<GrStatisticFormatOptions, 'precision' | 'groupSeparator' | 'decimalSeparator'>,\n): string {\n const { precision, groupSeparator, decimalSeparator } = options\n // `Intl` принимает не больше 20 знаков и падает `RangeError` на большем,\n // тогда как ручная ветка через `toFixed` пережила бы до 100.\n const digits = precision === undefined ? undefined : Math.min(Math.max(precision, 0), 20)\n\n return new Intl.NumberFormat(locale, {\n useGrouping: true,\n minimumFractionDigits: digits,\n maximumFractionDigits: digits ?? 20,\n })\n .formatToParts(value)\n .map((part) => {\n if (part.type === 'group' && groupSeparator !== undefined) return groupSeparator\n if (part.type === 'decimal' && decimalSeparator !== undefined) return decimalSeparator\n return part.value\n })\n .join('')\n}\n","<script setup lang=\"ts\">\nimport { useGrComponentSize } from '../GrConfigProvider/context'\nimport { computed, markRaw, onBeforeUnmount, onMounted, ref, useSlots, watch, type Component } from 'vue'\n\nimport { useGranularityTranslations } from '../../internal/granularityI18n'\nimport { iconClass, iconTag } from '../shared/icon'\nimport GrSkeleton from '../GrSkeleton/GrSkeleton.vue'\n\nimport IconMinus from '~icons/lucide/minus'\nimport IconTrendingDown from '~icons/lucide/trending-down'\nimport IconTrendingUp from '~icons/lucide/trending-up'\n\nimport { countUpFrame } from './countUp'\nimport { formatStatisticValue } from './formatStatisticValue'\n\nimport {\n statisticAffixSizeBySize,\n statisticPlaceholderHeightBySize,\n statisticRootClass,\n statisticTitleClass,\n statisticTitleSizeBySize,\n statisticTrendClassByTrend,\n statisticTrendSizeBySize,\n statisticValueClass,\n type GrStatisticSize,\n type GrStatisticTone,\n type GrStatisticTrend,\n} from './grStatisticStyles'\n\nexport type {\n GrStatisticSize,\n GrStatisticTone,\n GrStatisticTrend,\n} from './grStatisticStyles'\nexport type { GrStatisticFormatOptions } from './formatStatisticValue'\n\n/**\n * Публичный GR-примитив «Statistic» — крупный числовой показатель с подписью,\n * префиксом/суффиксом и строкой динамики.\n *\n * Компонент презентационный: не грузит данные и не считает дельту, только\n * форматирует и подаёт. Форматирование — чистая функция `formatStatisticValue`.\n */\nexport interface GrStatisticProps {\n /** Значение показателя. Нечисловая строка выводится как есть. */\n value: number | string\n /** Подпись над значением. */\n title?: string\n /** Число знаков после запятой. */\n precision?: number\n /** Разделитель разрядов. Сильнее локали; без него и без локали — узкий пробел. */\n groupSeparator?: string\n /** Десятичный разделитель. Сильнее локали; без него и без локали — точка. */\n decimalSeparator?: string\n /**\n * BCP-47 локаль форматирования. Не задана — берётся из i18n-адаптера; нет и\n * адаптера — работают ручные разделители.\n */\n locale?: string\n /** Приписка перед значением (валюта, знак). */\n prefix?: string\n /** Приписка после значения (единица измерения, `%`). */\n suffix?: string\n /**\n * Иконка слева от блока: Vue-компонент либо класс иконки вашей UnoCSS-сборки\n * (`'i-lucide-users'` — тогда нужен ваш `presetIcons`, см. `docs/installation.md`).\n */\n icon?: string | Component\n size?: GrStatisticSize\n /** Тон значения; точечно перекрывается `--gr-statistic-value-color`. */\n tone?: GrStatisticTone\n /** Направление динамики — задаёт цвет и иконку строки под значением. */\n trend?: GrStatisticTrend\n /** Текст динамики (например `+12,5% к прошлой неделе`). */\n trendText?: string\n /** Состояние загрузки: вместо значения — плейсхолдер. */\n loading?: boolean\n /**\n * Перебирать числа при появлении и при смене значения. Нечисловое значение\n * ставится сразу, под `prefers-reduced-motion: reduce` — тоже.\n */\n animate?: boolean\n /**\n * Длительность перебора в миллисекундах. Не токеном: шкала `--gr-duration-*`\n * заканчивается на 300 мс и описывает смену состояния, а перебор чисел —\n * другой жанр, и его число живёт там же, где твин.\n */\n animateDuration?: number\n /** Свой корневой тег (`RouterLink`, `Link` от Inertia). Сильнее `href`. */\n as?: string | Component\n /** Показатель-ссылка: переход к деталям. */\n href?: string\n /** Показатель-кнопка: интерактивна вся плитка. */\n clickable?: boolean\n}\n\nexport interface GrStatisticEmits {\n (e: 'click', event: MouseEvent): void\n}\n\nconst props = withDefaults(\n defineProps<GrStatisticProps>(),\n {\n title: undefined,\n precision: undefined,\n // Дефолты живут в `formatStatisticValue`: иначе «пользователь задал пробел»\n // было бы неотличимо от «сработал дефолт», и локаль не смогла бы победить.\n groupSeparator: undefined,\n decimalSeparator: undefined,\n locale: undefined,\n prefix: undefined,\n suffix: undefined,\n icon: undefined,\n size: undefined,\n tone: 'neutral',\n trend: undefined,\n trendText: undefined,\n loading: false,\n animate: false,\n animateDuration: 600,\n as: undefined,\n href: undefined,\n clickable: false,\n },\n)\n\nconst emit = defineEmits<GrStatisticEmits>()\n\nconst slots = useSlots()\n\nconst { t, locale } = useGranularityTranslations()\n\nconst resolvedLocale = computed(() => props.locale ?? locale.value)\n\n/**\n * Число текущего кадра перебора. `null` — перебора нет, показываем сам проп:\n * так значение остаётся конечным и на сервере, и до первого твина.\n */\nconst frameValue = ref<number | null>(null)\n\nconst formatted = computed(() => formatStatisticValue(frameValue.value ?? props.value, {\n precision: props.precision,\n groupSeparator: props.groupSeparator,\n decimalSeparator: props.decimalSeparator,\n locale: resolvedLocale.value,\n}))\n\n/** Конечное значение — то, что читает диктор, пока на экране идёт перебор. */\nconst finalFormatted = computed(() => formatStatisticValue(props.value, {\n precision: props.precision,\n groupSeparator: props.groupSeparator,\n decimalSeparator: props.decimalSeparator,\n locale: resolvedLocale.value,\n}))\n\nconst isCounting = computed(() => frameValue.value !== null)\n\nconst hasTitle = computed(() => Boolean(props.title || slots.title))\n\nconst isInteractive = computed(() => Boolean(props.as || props.href || props.clickable))\n\nconst rootTag = computed<string | Component>(() => {\n if (props.as)\n return typeof props.as === 'string' ? props.as : markRaw(props.as)\n\n if (props.href)\n return 'a'\n\n return props.clickable ? 'button' : 'div'\n})\n\nconst rootClass = computed(() => statisticRootClass({ interactive: isInteractive.value }))\n\nfunction toNumber(value: number | string): number | null {\n const numeric = typeof value === 'number' ? value : Number(value)\n return Number.isFinite(numeric) ? numeric : null\n}\n\nlet frameHandle: number | null = null\n\nfunction stopCounting(): void {\n if (frameHandle !== null) cancelAnimationFrame(frameHandle)\n frameHandle = null\n}\n\n/**\n * Перебор чисел ведёт JS, а глобальный кламп в `base.css` гасит только CSS —\n * значит уважать «уменьшить движение» обязан сам компонент (`docs/motion.md`).\n * Читается в момент старта, а не в теле `setup`: `matchMedia` на сервере нет, и\n * первый клиентский рендер разошёлся бы с серверным.\n */\nfunction prefersReducedMotion(): boolean {\n return typeof window !== 'undefined'\n && window.matchMedia?.('(prefers-reduced-motion: reduce)')?.matches === true\n}\n\nfunction runCountUp(from: number, to: number): void {\n stopCounting()\n\n const duration = props.animateDuration\n if (!(duration > 0) || from === to || prefersReducedMotion()) {\n frameValue.value = null\n return\n }\n\n const started = performance.now()\n frameValue.value = from\n\n const step = (now: number): void => {\n const elapsed = now - started\n const value = countUpFrame(from, to, elapsed, duration, props.precision)\n\n if (elapsed >= duration) {\n // Конец перебора снимает и подмену значения, и подмену для диктора.\n frameValue.value = null\n frameHandle = null\n return\n }\n\n frameValue.value = value\n frameHandle = requestAnimationFrame(step)\n }\n\n frameHandle = requestAnimationFrame(step)\n}\n\n/** Перебирать можно только числа: «2 ч 15 мин» и «—» ставятся сразу. */\nfunction startIfNumeric(from: number | string, to: number | string): void {\n if (!props.animate || props.loading) {\n stopCounting()\n frameValue.value = null\n return\n }\n\n const target = toNumber(to)\n const source = toNumber(from)\n\n if (target === null || source === null) {\n stopCounting()\n frameValue.value = null\n return\n }\n\n runCountUp(source, target)\n}\n\n// Появление плитки считается переходом от нуля: ради этого эффекта проп и нужен.\nonMounted(() => startIfNumeric(0, props.value))\n\nwatch(() => props.value, (next, prev) => startIfNumeric(prev, next))\n\nonBeforeUnmount(stopCounting)\n\nconst resolvedSize = useGrComponentSize(() => props.size, { component: 'GrStatistic' })\n\nconst trendIconByTrend: Record<GrStatisticTrend, Component> = {\n up: IconTrendingUp,\n down: IconTrendingDown,\n flat: IconMinus,\n}\n\n// Иконка направления `aria-hidden`, а «+12,5 %» само по себе рост от падения не\n// отличает: направление доносит скрытая подпись.\nconst trendLabel = computed(() => {\n if (!props.trend) return undefined\n\n const labels = {\n up: () => t('gr.statistic.trendUp', 'Increase'),\n down: () => t('gr.statistic.trendDown', 'Decrease'),\n flat: () => t('gr.statistic.trendFlat', 'No change'),\n }\n\n return labels[props.trend]()\n})\n</script>\n\n<template>\n <component\n :is=\"rootTag\"\n data-gr-statistic\n :type=\"rootTag === 'button' ? 'button' : undefined\"\n :href=\"rootTag === 'a' ? href : undefined\"\n :class=\"rootClass\"\n @click=\"emit('click', $event)\"\n >\n <span\n v-if=\"icon || $slots.icon\"\n data-gr-statistic-icon\n class=\"mt-0.5 inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-[var(--gr-radius-lg)] bg-[var(--gr-muted)] text-[var(--gr-muted-fg)]\"\n >\n <slot name=\"icon\">\n <component :is=\"iconTag(icon)\" class=\"block h-4 w-4\" :class=\"iconClass(icon)\" aria-hidden=\"true\" />\n </slot>\n </span>\n\n <div class=\"min-w-0\">\n <!--\n Подпись и значение — пара «термин — значение», а не два соседних блока.\n `<dl>` появляется только вместе с подписью: список определений без `<dt>`\n — та же бессвязность, только с претензией на семантику. Поля обнуляются\n руками: preflight пакета сбрасывает их лишь у `body`.\n -->\n <component :is=\"hasTitle ? 'dl' : 'div'\" class=\"m-0\">\n <dt\n v-if=\"hasTitle\"\n data-gr-statistic-title\n :class=\"[statisticTitleClass, statisticTitleSizeBySize[resolvedSize]]\"\n >\n <slot name=\"title\">\n {{ title }}\n </slot>\n </dt>\n\n <!-- Плейсхолдер загрузки повторяет высоту строки значения, чтобы блок не прыгал. -->\n <component\n :is=\"hasTitle ? 'dd' : 'div'\"\n v-if=\"loading\"\n data-gr-statistic-placeholder\n data-testid=\"gr-statistic-placeholder\"\n class=\"m-0 mt-1\"\n role=\"status\"\n aria-busy=\"true\"\n >\n <GrSkeleton\n width=\"6rem\"\n :height=\"statisticPlaceholderHeightBySize[resolvedSize]\"\n rounded=\"var(--gr-radius-md)\"\n />\n <span class=\"sr-only\">{{ t('gr.loading.defaultText', 'Loading...') }}</span>\n </component>\n\n <component\n :is=\"hasTitle ? 'dd' : 'div'\"\n v-else\n data-gr-statistic-value\n data-testid=\"gr-statistic-value\"\n class=\"m-0 mt-0.5 flex items-baseline gap-1\"\n >\n <span\n v-if=\"prefix || $slots.prefix\"\n data-gr-statistic-prefix\n class=\"text-[var(--gr-muted-fg)]\"\n :class=\"statisticAffixSizeBySize[resolvedSize]\"\n >\n <slot name=\"prefix\">{{ prefix }}</slot>\n </span>\n\n <span\n data-gr-statistic-number\n :class=\"statisticValueClass({ size: resolvedSize, tone })\"\n :aria-hidden=\"isCounting ? 'true' : undefined\"\n >\n <slot>{{ formatted }}</slot>\n </span>\n\n <!--\n Пока идёт перебор, на экране промежуточное число. Диктору отдаётся\n конечное: «1 284» глазами и «743» в ушах — не шум, а неверные данные.\n -->\n <span v-if=\"isCounting\" data-gr-statistic-final class=\"sr-only\">{{ finalFormatted }}</span>\n\n <span\n v-if=\"suffix || $slots.suffix\"\n data-gr-statistic-suffix\n class=\"text-[var(--gr-muted-fg)]\"\n :class=\"statisticAffixSizeBySize[resolvedSize]\"\n >\n <slot name=\"suffix\">{{ suffix }}</slot>\n </span>\n </component>\n </component>\n\n <div\n v-if=\"trend || trendText || $slots.trend\"\n data-gr-statistic-trend\n data-testid=\"gr-statistic-trend\"\n class=\"mt-1 inline-flex items-center gap-1\"\n :class=\"[statisticTrendSizeBySize[resolvedSize], statisticTrendClassByTrend[trend ?? 'flat']]\"\n >\n <span v-if=\"trendLabel\" data-gr-statistic-trend-label class=\"sr-only\">{{ trendLabel }}</span>\n\n <slot name=\"trend\">\n <component\n :is=\"trendIconByTrend[trend]\"\n v-if=\"trend\"\n class=\"block h-3.5 w-3.5\"\n aria-hidden=\"true\"\n />\n <span>{{ trendText }}</span>\n </slot>\n </div>\n </div>\n </component>\n</template>\n","<script setup lang=\"ts\">\nimport { useGrComponentSize } from '../GrConfigProvider/context'\nimport { computed, markRaw, onBeforeUnmount, onMounted, ref, useSlots, watch, type Component } from 'vue'\n\nimport { useGranularityTranslations } from '../../internal/granularityI18n'\nimport { iconClass, iconTag } from '../shared/icon'\nimport GrSkeleton from '../GrSkeleton/GrSkeleton.vue'\n\nimport IconMinus from '~icons/lucide/minus'\nimport IconTrendingDown from '~icons/lucide/trending-down'\nimport IconTrendingUp from '~icons/lucide/trending-up'\n\nimport { countUpFrame } from './countUp'\nimport { formatStatisticValue } from './formatStatisticValue'\n\nimport {\n statisticAffixSizeBySize,\n statisticPlaceholderHeightBySize,\n statisticRootClass,\n statisticTitleClass,\n statisticTitleSizeBySize,\n statisticTrendClassByTrend,\n statisticTrendSizeBySize,\n statisticValueClass,\n type GrStatisticSize,\n type GrStatisticTone,\n type GrStatisticTrend,\n} from './grStatisticStyles'\n\nexport type {\n GrStatisticSize,\n GrStatisticTone,\n GrStatisticTrend,\n} from './grStatisticStyles'\nexport type { GrStatisticFormatOptions } from './formatStatisticValue'\n\n/**\n * Публичный GR-примитив «Statistic» — крупный числовой показатель с подписью,\n * префиксом/суффиксом и строкой динамики.\n *\n * Компонент презентационный: не грузит данные и не считает дельту, только\n * форматирует и подаёт. Форматирование — чистая функция `formatStatisticValue`.\n */\nexport interface GrStatisticProps {\n /** Значение показателя. Нечисловая строка выводится как есть. */\n value: number | string\n /** Подпись над значением. */\n title?: string\n /** Число знаков после запятой. */\n precision?: number\n /** Разделитель разрядов. Сильнее локали; без него и без локали — узкий пробел. */\n groupSeparator?: string\n /** Десятичный разделитель. Сильнее локали; без него и без локали — точка. */\n decimalSeparator?: string\n /**\n * BCP-47 локаль форматирования. Не задана — берётся из i18n-адаптера; нет и\n * адаптера — работают ручные разделители.\n */\n locale?: string\n /** Приписка перед значением (валюта, знак). */\n prefix?: string\n /** Приписка после значения (единица измерения, `%`). */\n suffix?: string\n /**\n * Иконка слева от блока: Vue-компонент либо класс иконки вашей UnoCSS-сборки\n * (`'i-lucide-users'` — тогда нужен ваш `presetIcons`, см. `docs/installation.md`).\n */\n icon?: string | Component\n size?: GrStatisticSize\n /** Тон значения; точечно перекрывается `--gr-statistic-value-color`. */\n tone?: GrStatisticTone\n /** Направление динамики — задаёт цвет и иконку строки под значением. */\n trend?: GrStatisticTrend\n /** Текст динамики (например `+12,5% к прошлой неделе`). */\n trendText?: string\n /** Состояние загрузки: вместо значения — плейсхолдер. */\n loading?: boolean\n /**\n * Перебирать числа при появлении и при смене значения. Нечисловое значение\n * ставится сразу, под `prefers-reduced-motion: reduce` — тоже.\n */\n animate?: boolean\n /**\n * Длительность перебора в миллисекундах. Не токеном: шкала `--gr-duration-*`\n * заканчивается на 300 мс и описывает смену состояния, а перебор чисел —\n * другой жанр, и его число живёт там же, где твин.\n */\n animateDuration?: number\n /** Свой корневой тег (`RouterLink`, `Link` от Inertia). Сильнее `href`. */\n as?: string | Component\n /** Показатель-ссылка: переход к деталям. */\n href?: string\n /** Показатель-кнопка: интерактивна вся плитка. */\n clickable?: boolean\n}\n\nexport interface GrStatisticEmits {\n (e: 'click', event: MouseEvent): void\n}\n\nconst props = withDefaults(\n defineProps<GrStatisticProps>(),\n {\n title: undefined,\n precision: undefined,\n // Дефолты живут в `formatStatisticValue`: иначе «пользователь задал пробел»\n // было бы неотличимо от «сработал дефолт», и локаль не смогла бы победить.\n groupSeparator: undefined,\n decimalSeparator: undefined,\n locale: undefined,\n prefix: undefined,\n suffix: undefined,\n icon: undefined,\n size: undefined,\n tone: 'neutral',\n trend: undefined,\n trendText: undefined,\n loading: false,\n animate: false,\n animateDuration: 600,\n as: undefined,\n href: undefined,\n clickable: false,\n },\n)\n\nconst emit = defineEmits<GrStatisticEmits>()\n\nconst slots = useSlots()\n\nconst { t, locale } = useGranularityTranslations()\n\nconst resolvedLocale = computed(() => props.locale ?? locale.value)\n\n/**\n * Число текущего кадра перебора. `null` — перебора нет, показываем сам проп:\n * так значение остаётся конечным и на сервере, и до первого твина.\n */\nconst frameValue = ref<number | null>(null)\n\nconst formatted = computed(() => formatStatisticValue(frameValue.value ?? props.value, {\n precision: props.precision,\n groupSeparator: props.groupSeparator,\n decimalSeparator: props.decimalSeparator,\n locale: resolvedLocale.value,\n}))\n\n/** Конечное значение — то, что читает диктор, пока на экране идёт перебор. */\nconst finalFormatted = computed(() => formatStatisticValue(props.value, {\n precision: props.precision,\n groupSeparator: props.groupSeparator,\n decimalSeparator: props.decimalSeparator,\n locale: resolvedLocale.value,\n}))\n\nconst isCounting = computed(() => frameValue.value !== null)\n\nconst hasTitle = computed(() => Boolean(props.title || slots.title))\n\nconst isInteractive = computed(() => Boolean(props.as || props.href || props.clickable))\n\nconst rootTag = computed<string | Component>(() => {\n if (props.as)\n return typeof props.as === 'string' ? props.as : markRaw(props.as)\n\n if (props.href)\n return 'a'\n\n return props.clickable ? 'button' : 'div'\n})\n\nconst rootClass = computed(() => statisticRootClass({ interactive: isInteractive.value }))\n\nfunction toNumber(value: number | string): number | null {\n const numeric = typeof value === 'number' ? value : Number(value)\n return Number.isFinite(numeric) ? numeric : null\n}\n\nlet frameHandle: number | null = null\n\nfunction stopCounting(): void {\n if (frameHandle !== null) cancelAnimationFrame(frameHandle)\n frameHandle = null\n}\n\n/**\n * Перебор чисел ведёт JS, а глобальный кламп в `base.css` гасит только CSS —\n * значит уважать «уменьшить движение» обязан сам компонент (`docs/motion.md`).\n * Читается в момент старта, а не в теле `setup`: `matchMedia` на сервере нет, и\n * первый клиентский рендер разошёлся бы с серверным.\n */\nfunction prefersReducedMotion(): boolean {\n return typeof window !== 'undefined'\n && window.matchMedia?.('(prefers-reduced-motion: reduce)')?.matches === true\n}\n\nfunction runCountUp(from: number, to: number): void {\n stopCounting()\n\n const duration = props.animateDuration\n if (!(duration > 0) || from === to || prefersReducedMotion()) {\n frameValue.value = null\n return\n }\n\n const started = performance.now()\n frameValue.value = from\n\n const step = (now: number): void => {\n const elapsed = now - started\n const value = countUpFrame(from, to, elapsed, duration, props.precision)\n\n if (elapsed >= duration) {\n // Конец перебора снимает и подмену значения, и подмену для диктора.\n frameValue.value = null\n frameHandle = null\n return\n }\n\n frameValue.value = value\n frameHandle = requestAnimationFrame(step)\n }\n\n frameHandle = requestAnimationFrame(step)\n}\n\n/** Перебирать можно только числа: «2 ч 15 мин» и «—» ставятся сразу. */\nfunction startIfNumeric(from: number | string, to: number | string): void {\n if (!props.animate || props.loading) {\n stopCounting()\n frameValue.value = null\n return\n }\n\n const target = toNumber(to)\n const source = toNumber(from)\n\n if (target === null || source === null) {\n stopCounting()\n frameValue.value = null\n return\n }\n\n runCountUp(source, target)\n}\n\n// Появление плитки считается переходом от нуля: ради этого эффекта проп и нужен.\nonMounted(() => startIfNumeric(0, props.value))\n\nwatch(() => props.value, (next, prev) => startIfNumeric(prev, next))\n\nonBeforeUnmount(stopCounting)\n\nconst resolvedSize = useGrComponentSize(() => props.size, { component: 'GrStatistic' })\n\nconst trendIconByTrend: Record<GrStatisticTrend, Component> = {\n up: IconTrendingUp,\n down: IconTrendingDown,\n flat: IconMinus,\n}\n\n// Иконка направления `aria-hidden`, а «+12,5 %» само по себе рост от падения не\n// отличает: направление доносит скрытая подпись.\nconst trendLabel = computed(() => {\n if (!props.trend) return undefined\n\n const labels = {\n up: () => t('gr.statistic.trendUp', 'Increase'),\n down: () => t('gr.statistic.trendDown', 'Decrease'),\n flat: () => t('gr.statistic.trendFlat', 'No change'),\n }\n\n return labels[props.trend]()\n})\n</script>\n\n<template>\n <component\n :is=\"rootTag\"\n data-gr-statistic\n :type=\"rootTag === 'button' ? 'button' : undefined\"\n :href=\"rootTag === 'a' ? href : undefined\"\n :class=\"rootClass\"\n @click=\"emit('click', $event)\"\n >\n <span\n v-if=\"icon || $slots.icon\"\n data-gr-statistic-icon\n class=\"mt-0.5 inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-[var(--gr-radius-lg)] bg-[var(--gr-muted)] text-[var(--gr-muted-fg)]\"\n >\n <slot name=\"icon\">\n <component :is=\"iconTag(icon)\" class=\"block h-4 w-4\" :class=\"iconClass(icon)\" aria-hidden=\"true\" />\n </slot>\n </span>\n\n <div class=\"min-w-0\">\n <!--\n Подпись и значение — пара «термин — значение», а не два соседних блока.\n `<dl>` появляется только вместе с подписью: список определений без `<dt>`\n — та же бессвязность, только с претензией на семантику. Поля обнуляются\n руками: preflight пакета сбрасывает их лишь у `body`.\n -->\n <component :is=\"hasTitle ? 'dl' : 'div'\" class=\"m-0\">\n <dt\n v-if=\"hasTitle\"\n data-gr-statistic-title\n :class=\"[statisticTitleClass, statisticTitleSizeBySize[resolvedSize]]\"\n >\n <slot name=\"title\">\n {{ title }}\n </slot>\n </dt>\n\n <!-- Плейсхолдер загрузки повторяет высоту строки значения, чтобы блок не прыгал. -->\n <component\n :is=\"hasTitle ? 'dd' : 'div'\"\n v-if=\"loading\"\n data-gr-statistic-placeholder\n data-testid=\"gr-statistic-placeholder\"\n class=\"m-0 mt-1\"\n role=\"status\"\n aria-busy=\"true\"\n >\n <GrSkeleton\n width=\"6rem\"\n :height=\"statisticPlaceholderHeightBySize[resolvedSize]\"\n rounded=\"var(--gr-radius-md)\"\n />\n <span class=\"sr-only\">{{ t('gr.loading.defaultText', 'Loading...') }}</span>\n </component>\n\n <component\n :is=\"hasTitle ? 'dd' : 'div'\"\n v-else\n data-gr-statistic-value\n data-testid=\"gr-statistic-value\"\n class=\"m-0 mt-0.5 flex items-baseline gap-1\"\n >\n <span\n v-if=\"prefix || $slots.prefix\"\n data-gr-statistic-prefix\n class=\"text-[var(--gr-muted-fg)]\"\n :class=\"statisticAffixSizeBySize[resolvedSize]\"\n >\n <slot name=\"prefix\">{{ prefix }}</slot>\n </span>\n\n <span\n data-gr-statistic-number\n :class=\"statisticValueClass({ size: resolvedSize, tone })\"\n :aria-hidden=\"isCounting ? 'true' : undefined\"\n >\n <slot>{{ formatted }}</slot>\n </span>\n\n <!--\n Пока идёт перебор, на экране промежуточное число. Диктору отдаётся\n конечное: «1 284» глазами и «743» в ушах — не шум, а неверные данные.\n -->\n <span v-if=\"isCounting\" data-gr-statistic-final class=\"sr-only\">{{ finalFormatted }}</span>\n\n <span\n v-if=\"suffix || $slots.suffix\"\n data-gr-statistic-suffix\n class=\"text-[var(--gr-muted-fg)]\"\n :class=\"statisticAffixSizeBySize[resolvedSize]\"\n >\n <slot name=\"suffix\">{{ suffix }}</slot>\n </span>\n </component>\n </component>\n\n <div\n v-if=\"trend || trendText || $slots.trend\"\n data-gr-statistic-trend\n data-testid=\"gr-statistic-trend\"\n class=\"mt-1 inline-flex items-center gap-1\"\n :class=\"[statisticTrendSizeBySize[resolvedSize], statisticTrendClassByTrend[trend ?? 'flat']]\"\n >\n <span v-if=\"trendLabel\" data-gr-statistic-trend-label class=\"sr-only\">{{ trendLabel }}</span>\n\n <slot name=\"trend\">\n <component\n :is=\"trendIconByTrend[trend]\"\n v-if=\"trend\"\n class=\"block h-3.5 w-3.5\"\n aria-hidden=\"true\"\n />\n <span>{{ trendText }}</span>\n </slot>\n </div>\n </div>\n </component>\n</template>\n"],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as formatStatisticValue, t as GrStatistic_default } from "./chunks/GrStatistic-
|
|
2
|
-
import { n as grStatisticSafelist, t as grStatisticConfig } from "../../chunks/config-
|
|
1
|
+
import { n as formatStatisticValue, t as GrStatistic_default } from "./chunks/GrStatistic-C3VpykHo.js";
|
|
2
|
+
import { n as grStatisticSafelist, t as grStatisticConfig } from "../../chunks/config-Be9k9bOf.js";
|
|
3
3
|
export { GrStatistic_default as GrStatistic, GrStatistic_default as default, formatStatisticValue, grStatisticConfig, grStatisticSafelist };
|