@feugene/granularity 0.13.0 → 0.16.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 +14 -1
- package/dist/chunks/adapter-CAOxmn2G.js.map +1 -1
- package/dist/chunks/check-BZI24Qs4.js +23 -0
- package/dist/chunks/check-BZI24Qs4.js.map +1 -0
- package/dist/chunks/chevron-down-CQS2OG_s.js +23 -0
- package/dist/chunks/chevron-down-CQS2OG_s.js.map +1 -0
- package/dist/chunks/chevron-right-BfqMVpbB.js +44 -0
- package/dist/chunks/chevron-right-BfqMVpbB.js.map +1 -0
- package/dist/chunks/config-06SQjBx0.js +96 -0
- package/dist/chunks/config-06SQjBx0.js.map +1 -0
- package/dist/chunks/config-A-bBiotF.js +12 -0
- package/dist/chunks/config-A-bBiotF.js.map +1 -0
- package/dist/chunks/config-B-g6lT19.js +19 -0
- package/dist/chunks/config-B-g6lT19.js.map +1 -0
- package/dist/chunks/config-B-iNaGdw.js +199 -0
- package/dist/chunks/config-B-iNaGdw.js.map +1 -0
- package/dist/chunks/config-B84z1aos.js +19 -0
- package/dist/chunks/config-B84z1aos.js.map +1 -0
- package/dist/chunks/config-BE6n20np.js +27 -0
- package/dist/chunks/config-BE6n20np.js.map +1 -0
- package/dist/chunks/config-BKvX0q10.js +89 -0
- package/dist/chunks/config-BKvX0q10.js.map +1 -0
- package/dist/chunks/config-BN4sXYXn.js +77 -0
- package/dist/chunks/config-BN4sXYXn.js.map +1 -0
- package/dist/chunks/config-BNfQwyL4.js +97 -0
- package/dist/chunks/config-BNfQwyL4.js.map +1 -0
- package/dist/chunks/config-BNu8lFQB.js.map +1 -1
- package/dist/chunks/config-BSyiFlbi.js +17 -0
- package/dist/chunks/config-BSyiFlbi.js.map +1 -0
- package/dist/chunks/config-BViooYNv.js +13 -0
- package/dist/chunks/config-BViooYNv.js.map +1 -0
- package/dist/chunks/config-BbY2SKGE.js +90 -0
- package/dist/chunks/config-BbY2SKGE.js.map +1 -0
- package/dist/chunks/config-BeZRuonp.js +54 -0
- package/dist/chunks/config-BeZRuonp.js.map +1 -0
- package/dist/chunks/config-BoNR7_PD.js +140 -0
- package/dist/chunks/config-BoNR7_PD.js.map +1 -0
- package/dist/chunks/config-Bpt9Xbxm.js +49 -0
- package/dist/chunks/config-Bpt9Xbxm.js.map +1 -0
- package/dist/chunks/config-BqFjr3tN.js +131 -0
- package/dist/chunks/config-BqFjr3tN.js.map +1 -0
- package/dist/chunks/config-BsuDM3Hb.js +55 -0
- package/dist/chunks/config-BsuDM3Hb.js.map +1 -0
- package/dist/chunks/config-BtXRpAtq.js +48 -0
- package/dist/chunks/config-BtXRpAtq.js.map +1 -0
- package/dist/chunks/config-BuGlNPE9.js +8 -0
- package/dist/chunks/config-BuGlNPE9.js.map +1 -0
- package/dist/chunks/config-C0Ea9ePP.js +15 -0
- package/dist/chunks/config-C0Ea9ePP.js.map +1 -0
- package/dist/chunks/config-CN2ULSQL2.js +36 -0
- package/dist/chunks/config-CN2ULSQL2.js.map +1 -0
- package/dist/chunks/config-CN970ZcJ.js +113 -0
- package/dist/chunks/config-CN970ZcJ.js.map +1 -0
- package/dist/chunks/config-COvrUfhR.js +83 -0
- package/dist/chunks/config-COvrUfhR.js.map +1 -0
- package/dist/chunks/config-CQzGyi1C.js +54 -0
- package/dist/chunks/config-CQzGyi1C.js.map +1 -0
- package/dist/chunks/config-CY0_6cMi.js +51 -0
- package/dist/chunks/config-CY0_6cMi.js.map +1 -0
- package/dist/chunks/config-CjXjhphs.js +12 -0
- package/dist/chunks/config-CjXjhphs.js.map +1 -0
- package/dist/chunks/config-CjnbevbD.js +13 -0
- package/dist/chunks/config-CjnbevbD.js.map +1 -0
- package/dist/chunks/config-Cl4ST6Qd.js +21 -0
- package/dist/chunks/config-Cl4ST6Qd.js.map +1 -0
- package/dist/chunks/config-Cp0DE0GH.js +12 -0
- package/dist/chunks/config-Cp0DE0GH.js.map +1 -0
- package/dist/chunks/config-CpwwkFBO.js +72 -0
- package/dist/chunks/config-CpwwkFBO.js.map +1 -0
- package/dist/chunks/config-CvC0sX8p.js +81 -0
- package/dist/chunks/config-CvC0sX8p.js.map +1 -0
- package/dist/chunks/config-Cw6TDzWv2.js +72 -0
- package/dist/chunks/config-Cw6TDzWv2.js.map +1 -0
- package/dist/chunks/config-Cwd3yjRw.js +41 -0
- package/dist/chunks/config-Cwd3yjRw.js.map +1 -0
- package/dist/chunks/config-D3_g2KIn.js +120 -0
- package/dist/chunks/config-D3_g2KIn.js.map +1 -0
- package/dist/chunks/config-D6W1rnlp.js +26 -0
- package/dist/chunks/config-D6W1rnlp.js.map +1 -0
- package/dist/chunks/config-D8tSR2uS.js +103 -0
- package/dist/chunks/config-D8tSR2uS.js.map +1 -0
- package/dist/chunks/config-D94Z9po52.js +126 -0
- package/dist/chunks/config-D94Z9po52.js.map +1 -0
- package/dist/chunks/config-DBmdgoVf.js.map +1 -1
- package/dist/chunks/config-DCFvmHEv.js +76 -0
- package/dist/chunks/config-DCFvmHEv.js.map +1 -0
- package/dist/chunks/config-DKdlqXiY.js +109 -0
- package/dist/chunks/config-DKdlqXiY.js.map +1 -0
- package/dist/chunks/config-DP7eseR1.js +92 -0
- package/dist/chunks/config-DP7eseR1.js.map +1 -0
- package/dist/chunks/config-DSJY6aEl.js +80 -0
- package/dist/chunks/config-DSJY6aEl.js.map +1 -0
- package/dist/chunks/config-DU2DNSRx2.js +116 -0
- package/dist/chunks/config-DU2DNSRx2.js.map +1 -0
- package/dist/chunks/config-DhHbU3zO.js +37 -0
- package/dist/chunks/config-DhHbU3zO.js.map +1 -0
- package/dist/chunks/config-DpeQchsV.js +21 -0
- package/dist/chunks/config-DpeQchsV.js.map +1 -0
- package/dist/chunks/config-DpqOnJiz2.js.map +1 -0
- package/dist/chunks/config-DvQIb4kb.js +98 -0
- package/dist/chunks/config-DvQIb4kb.js.map +1 -0
- package/dist/chunks/config-DxCTVBfx.js +97 -0
- package/dist/chunks/config-DxCTVBfx.js.map +1 -0
- package/dist/chunks/config-K0C2tcLB.js +84 -0
- package/dist/chunks/config-K0C2tcLB.js.map +1 -0
- package/dist/chunks/config-QaIc_gRa.js.map +1 -0
- package/dist/chunks/config-Rw9OyW70.js +87 -0
- package/dist/chunks/config-Rw9OyW70.js.map +1 -0
- package/dist/chunks/config-T3qdQBgU.js +40 -0
- package/dist/chunks/config-T3qdQBgU.js.map +1 -0
- package/dist/chunks/config-WTNhdh6T2.js +20 -0
- package/dist/chunks/config-WTNhdh6T2.js.map +1 -0
- package/dist/chunks/config-Zc_bUvZY2.js +23 -0
- package/dist/chunks/config-Zc_bUvZY2.js.map +1 -0
- package/dist/chunks/config-_qPUfb6-2.js +165 -0
- package/dist/chunks/config-_qPUfb6-2.js.map +1 -0
- package/dist/chunks/config-eXB87DOi2.js.map +1 -0
- package/dist/chunks/config-esdviAPL.js +41 -0
- package/dist/chunks/config-esdviAPL.js.map +1 -0
- package/dist/chunks/config-gwro_7yn.js +55 -0
- package/dist/chunks/config-gwro_7yn.js.map +1 -0
- package/dist/chunks/config-qVg3Zz_A.js +30 -0
- package/dist/chunks/config-qVg3Zz_A.js.map +1 -0
- package/dist/chunks/config-zjeAJ4ho.js +64 -0
- package/dist/chunks/config-zjeAJ4ho.js.map +1 -0
- package/dist/chunks/context-BSYR7RZs.js +152 -0
- package/dist/chunks/context-BSYR7RZs.js.map +1 -0
- package/dist/chunks/context-BfIQv7m1.js +18 -0
- package/dist/chunks/context-BfIQv7m1.js.map +1 -0
- package/dist/chunks/context-Bfrgsluh.js.map +1 -1
- package/dist/chunks/context-DdNIxa1w.js.map +1 -1
- package/dist/chunks/dialogShared-CxW62PQE.js.map +1 -1
- package/dist/chunks/en-B3xMeswz.js +327 -0
- package/dist/chunks/en-B3xMeswz.js.map +1 -0
- package/dist/chunks/es-Bv8vvqdT.js +20 -0
- package/dist/chunks/es-Bv8vvqdT.js.map +1 -0
- package/dist/chunks/es-CA-mkU--.js +329 -0
- package/dist/chunks/es-CA-mkU--.js.map +1 -0
- package/dist/chunks/fileValidation-D5TFBhbv.js +296 -0
- package/dist/chunks/fileValidation-D5TFBhbv.js.map +1 -0
- package/dist/chunks/focusables-BkzK42SQ.js +87 -0
- package/dist/chunks/focusables-BkzK42SQ.js.map +1 -0
- package/dist/chunks/grBadgeStyles-C2wLlkjF.js +61 -0
- package/dist/chunks/grBadgeStyles-C2wLlkjF.js.map +1 -0
- package/dist/chunks/grButtonStyles-B_-YRE__.js +221 -0
- package/dist/chunks/grButtonStyles-B_-YRE__.js.map +1 -0
- package/dist/chunks/grCheckboxStyles-hOAgURZG.js +82 -0
- package/dist/chunks/grCheckboxStyles-hOAgURZG.js.map +1 -0
- package/dist/chunks/grDropdownStyles-V7TRiCXn.js +24 -0
- package/dist/chunks/grDropdownStyles-V7TRiCXn.js.map +1 -0
- package/dist/chunks/grFormFieldStyles-BkeZHIw0.js +32 -0
- package/dist/chunks/grFormFieldStyles-BkeZHIw0.js.map +1 -0
- package/dist/chunks/grIconStyles-BwJrml2L.js +44 -0
- package/dist/chunks/grIconStyles-BwJrml2L.js.map +1 -0
- package/dist/chunks/grInputStyles-CJeMhUe5.js +66 -0
- package/dist/chunks/grInputStyles-CJeMhUe5.js.map +1 -0
- package/dist/chunks/grKbdStyles-DAoxiytu.js +31 -0
- package/dist/chunks/grKbdStyles-DAoxiytu.js.map +1 -0
- package/dist/chunks/grLinkStyles-BoL8QYcV.js +84 -0
- package/dist/chunks/grLinkStyles-BoL8QYcV.js.map +1 -0
- package/dist/chunks/grLoadingStyles-DEmji2wv.js +30 -0
- package/dist/chunks/grLoadingStyles-DEmji2wv.js.map +1 -0
- package/dist/chunks/grModalStyles-EZfuEiw_.js +77 -0
- package/dist/chunks/grModalStyles-EZfuEiw_.js.map +1 -0
- package/dist/chunks/grPopoverStyles-Rz_Z5nLW.js +46 -0
- package/dist/chunks/grPopoverStyles-Rz_Z5nLW.js.map +1 -0
- package/dist/chunks/grSelectStyles-eTz4uPMP.js +147 -0
- package/dist/chunks/grSelectStyles-eTz4uPMP.js.map +1 -0
- package/dist/chunks/grSliderStyles-B5uNxNJq.js +133 -0
- package/dist/chunks/grSliderStyles-B5uNxNJq.js.map +1 -0
- package/dist/chunks/grStyle-CrgLQKKf.js +46 -0
- package/dist/chunks/grStyle-CrgLQKKf.js.map +1 -0
- package/dist/chunks/grTableStyles-C-iaqQUN.js +26 -0
- package/dist/chunks/grTableStyles-C-iaqQUN.js.map +1 -0
- package/dist/chunks/grTextareaStyles-CWI2SqC8.js +50 -0
- package/dist/chunks/grTextareaStyles-CWI2SqC8.js.map +1 -0
- package/dist/chunks/granular-provider-CtrXGa7c.js +193 -0
- package/dist/chunks/granular-provider-CtrXGa7c.js.map +1 -0
- package/dist/chunks/granularityI18n-BC5zsj_d.js +68 -0
- package/dist/chunks/granularityI18n-BC5zsj_d.js.map +1 -0
- package/dist/chunks/inert-DIHCCn_1.js +78 -0
- package/dist/chunks/inert-DIHCCn_1.js.map +1 -0
- package/dist/chunks/keyboard-zYvvyHd4.js +61 -0
- package/dist/chunks/keyboard-zYvvyHd4.js.map +1 -0
- package/dist/chunks/loader-2-B1fdsdWW.js +23 -0
- package/dist/chunks/loader-2-B1fdsdWW.js.map +1 -0
- package/dist/chunks/minus-oxdbHF33.js +23 -0
- package/dist/chunks/minus-oxdbHF33.js.map +1 -0
- package/dist/chunks/optionFilter-BVY988pC.js +149 -0
- package/dist/chunks/optionFilter-BVY988pC.js.map +1 -0
- package/dist/chunks/portalRoot-CWD4zHBm.js +35 -0
- package/dist/chunks/portalRoot-CWD4zHBm.js.map +1 -0
- package/dist/chunks/ru-COWxgh2A.js +331 -0
- package/dist/chunks/ru-COWxgh2A.js.map +1 -0
- package/dist/chunks/safelist-CudBLyAD.js +26 -0
- package/dist/chunks/safelist-CudBLyAD.js.map +1 -0
- package/dist/chunks/slotNodes-DxNXpC7v.js +39 -0
- package/dist/chunks/slotNodes-DxNXpC7v.js.map +1 -0
- package/dist/chunks/useControlAddons-asUr10Pf.js +128 -0
- package/dist/chunks/useControlAddons-asUr10Pf.js.map +1 -0
- package/dist/chunks/useControlledOpen-DV3SqLTP.js +27 -0
- package/dist/chunks/useControlledOpen-DV3SqLTP.js.map +1 -0
- package/dist/chunks/useFilePreviews-DnwgdyBs.js +53 -0
- package/dist/chunks/useFilePreviews-DnwgdyBs.js.map +1 -0
- package/dist/chunks/useFocusWithin-BwHE0rzm.js +33 -0
- package/dist/chunks/useFocusWithin-BwHE0rzm.js.map +1 -0
- package/dist/chunks/useModalOverlay-DCM4d3yA.js +212 -0
- package/dist/chunks/useModalOverlay-DCM4d3yA.js.map +1 -0
- package/dist/chunks/useOverlayLayer-BupuP_hs.js +149 -0
- package/dist/chunks/useOverlayLayer-BupuP_hs.js.map +1 -0
- package/dist/chunks/usePortalTarget-RyzEgNTb.js +77 -0
- package/dist/chunks/usePortalTarget-RyzEgNTb.js.map +1 -0
- package/dist/chunks/validation-5HhpanPP.js +178 -0
- package/dist/chunks/validation-5HhpanPP.js.map +1 -0
- package/dist/components/GrAlert/chunks/GrAlert-BC1lplbY.js +272 -0
- package/dist/components/GrAlert/chunks/GrAlert-BC1lplbY.js.map +1 -0
- package/dist/components/GrAlert/index.js +2 -2
- package/dist/components/GrAutocomplete/chunks/GrAutocomplete-CQ9T7Lly.js +851 -0
- package/dist/components/GrAutocomplete/chunks/GrAutocomplete-CQ9T7Lly.js.map +1 -0
- package/dist/components/GrAutocomplete/index.js +2 -2
- package/dist/components/GrAutocomplete/styles.css +1 -0
- package/dist/components/GrAvatar/chunks/GrAvatar-CVUujLmn.js +222 -0
- package/dist/components/GrAvatar/chunks/GrAvatar-CVUujLmn.js.map +1 -0
- package/dist/components/GrAvatar/index.js +3 -3
- package/dist/components/GrBadge/chunks/GrBadge-B1tgqfGQ.js +40 -0
- package/dist/components/GrBadge/chunks/GrBadge-B1tgqfGQ.js.map +1 -0
- package/dist/components/GrBadge/index.js +2 -2
- package/dist/components/GrBadge/styles.css +1 -0
- package/dist/components/GrBadge/themes/dark.css +19 -0
- package/dist/components/GrBadge/themes/light.css +18 -0
- package/dist/components/GrBadgeWrap/chunks/GrBadgeWrap-C-E9betg.js +97 -0
- package/dist/components/GrBadgeWrap/chunks/GrBadgeWrap-C-E9betg.js.map +1 -0
- package/dist/components/GrBadgeWrap/index.js +3 -3
- package/dist/components/GrBadgeWrap/styles.css +1 -0
- package/dist/components/GrBottomNav/chunks/GrBottomNav-9GH7Dd9E.js +117 -0
- package/dist/components/GrBottomNav/chunks/GrBottomNav-9GH7Dd9E.js.map +1 -0
- package/dist/components/GrBottomNav/index.js +3 -3
- package/dist/components/GrBreadcrumbs/chunks/GrBreadcrumbs-BCNGDS6k.js +266 -0
- package/dist/components/GrBreadcrumbs/chunks/GrBreadcrumbs-BCNGDS6k.js.map +1 -0
- package/dist/components/GrBreadcrumbs/index.js +3 -0
- package/dist/components/GrButton/chunks/GrButton-D0m_z0XW.js +153 -0
- package/dist/components/GrButton/chunks/GrButton-D0m_z0XW.js.map +1 -0
- package/dist/components/GrButton/index.js +5 -5
- package/dist/components/GrButton/themes/dark.css +46 -0
- package/dist/components/GrButton/themes/light.css +82 -0
- package/dist/components/GrButtonGroup/chunks/GrButtonGroup-CKyiAV8K.js +44 -0
- package/dist/components/GrButtonGroup/chunks/GrButtonGroup-CKyiAV8K.js.map +1 -0
- package/dist/components/GrButtonGroup/index.js +3 -2
- package/dist/components/GrButtonGroup/styles.css +1 -0
- package/dist/components/GrCard/chunks/GrCard-DOrGHf2x.js +89 -0
- package/dist/components/GrCard/chunks/GrCard-DOrGHf2x.js.map +1 -0
- package/dist/components/GrCard/index.js +3 -3
- package/dist/components/GrCheckbox/chunks/GrCheckbox-BLOp8452.js +262 -0
- package/dist/components/GrCheckbox/chunks/GrCheckbox-BLOp8452.js.map +1 -0
- package/dist/components/GrCheckbox/index.js +3 -3
- package/dist/components/GrCheckboxGroup/chunks/GrCheckboxGroup-CXTx2Z5H.js +140 -0
- package/dist/components/GrCheckboxGroup/chunks/GrCheckboxGroup-CXTx2Z5H.js.map +1 -0
- package/dist/components/GrCheckboxGroup/index.js +3 -0
- package/dist/components/GrCollapse/chunks/GrCollapse-B2Fc6A9r.js +308 -0
- package/dist/components/GrCollapse/chunks/GrCollapse-B2Fc6A9r.js.map +1 -0
- package/dist/components/GrCollapse/index.js +3 -3
- package/dist/components/GrColorPicker/chunks/GrColorPicker-bnYBRGk8.js +584 -0
- package/dist/components/GrColorPicker/chunks/GrColorPicker-bnYBRGk8.js.map +1 -0
- package/dist/components/GrColorPicker/index.js +3 -0
- package/dist/components/GrColorPicker/styles.css +1 -0
- package/dist/components/GrCommandPalette/chunks/GrCommandPalette-MWDYDPNC.js +566 -0
- package/dist/components/GrCommandPalette/chunks/GrCommandPalette-MWDYDPNC.js.map +1 -0
- package/dist/components/GrCommandPalette/index.js +2 -2
- package/dist/components/GrCommandPalette/styles.css +1 -0
- package/dist/components/GrConfigProvider/chunks/GrConfigProvider-BA6JO7V6.js +144 -0
- package/dist/components/GrConfigProvider/chunks/GrConfigProvider-BA6JO7V6.js.map +1 -0
- package/dist/components/GrConfigProvider/index.js +2 -2
- package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-DaQmlp1_.js +200 -0
- package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-DaQmlp1_.js.map +1 -0
- package/dist/components/GrConfirmDialog/index.js +2 -2
- package/dist/components/GrDataTable/chunks/GrDataTable-DVFho9Cj.js +605 -0
- package/dist/components/GrDataTable/chunks/GrDataTable-DVFho9Cj.js.map +1 -0
- package/dist/components/GrDataTable/index.js +3 -3
- package/dist/components/GrDialog/chunks/GrDialog-AE1gIZuz.js +255 -0
- package/dist/components/GrDialog/chunks/GrDialog-AE1gIZuz.js.map +1 -0
- package/dist/components/GrDialog/index.js +1 -1
- package/dist/components/GrDialogService/chunks/GrDialogService-B4DYWDkA.js +656 -0
- package/dist/components/GrDialogService/chunks/GrDialogService-B4DYWDkA.js.map +1 -0
- package/dist/components/GrDialogService/index.js +3 -3
- package/dist/components/GrDivider/chunks/GrDivider-B2Xwc_QO.js +109 -0
- package/dist/components/GrDivider/chunks/GrDivider-B2Xwc_QO.js.map +1 -0
- package/dist/components/GrDivider/index.js +3 -3
- package/dist/components/GrDrawer/chunks/GrDrawer-DQwi6aRw.js +251 -0
- package/dist/components/GrDrawer/chunks/GrDrawer-DQwi6aRw.js.map +1 -0
- package/dist/components/GrDrawer/index.js +2 -2
- package/dist/components/GrDropdown/chunks/GrDropdown-BLng6V1m.js +300 -0
- package/dist/components/GrDropdown/chunks/GrDropdown-BLng6V1m.js.map +1 -0
- package/dist/components/GrDropdown/index.js +2 -2
- package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-BImk2Vs7.js +421 -0
- package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-BImk2Vs7.js.map +1 -0
- package/dist/components/GrDropdownMenu/index.js +3 -3
- package/dist/components/GrEmptyState/chunks/GrEmptyState-W7Irx3vc.js +86 -0
- package/dist/components/GrEmptyState/chunks/GrEmptyState-W7Irx3vc.js.map +1 -0
- package/dist/components/GrEmptyState/index.js +3 -3
- package/dist/components/GrFileUpload/chunks/GrFileUpload-D0B-BEsd.js +1080 -0
- package/dist/components/GrFileUpload/chunks/GrFileUpload-D0B-BEsd.js.map +1 -0
- package/dist/components/GrFileUpload/index.js +4 -4
- package/dist/components/GrForm/chunks/GrForm-BCHCfIMv.js +326 -0
- package/dist/components/GrForm/chunks/GrForm-BCHCfIMv.js.map +1 -0
- package/dist/components/GrForm/index.js +3 -2
- package/dist/components/GrFormField/chunks/GrFormField-CL5rcgj6.js +190 -0
- package/dist/components/GrFormField/chunks/GrFormField-CL5rcgj6.js.map +1 -0
- package/dist/components/GrFormField/index.js +3 -3
- package/dist/components/GrFormFile/chunks/GrFormFile-BikSD7bg.js +452 -0
- package/dist/components/GrFormFile/chunks/GrFormFile-BikSD7bg.js.map +1 -0
- package/dist/components/GrFormFile/index.js +3 -3
- package/dist/components/GrFormFile/styles.css +1 -0
- package/dist/components/GrFormSection/chunks/GrFormSection-BEh5n4jF.js +63 -0
- package/dist/components/GrFormSection/chunks/GrFormSection-BEh5n4jF.js.map +1 -0
- package/dist/components/GrFormSection/index.js +3 -3
- package/dist/components/GrIcon/chunks/GrIcon-BvA2ZGXP.js +57 -0
- package/dist/components/GrIcon/chunks/GrIcon-BvA2ZGXP.js.map +1 -0
- package/dist/components/GrIcon/index.js +3 -3
- package/dist/components/GrIcon/styles.css +1 -0
- package/dist/components/GrImageViewer/chunks/GrImageViewer-BeCnE8XQ.js +1103 -0
- package/dist/components/GrImageViewer/chunks/GrImageViewer-BeCnE8XQ.js.map +1 -0
- package/dist/components/GrImageViewer/index.js +3 -3
- package/dist/components/GrImageViewer/themes/dark.css +17 -0
- package/dist/components/GrImageViewer/themes/light.css +16 -0
- package/dist/components/GrInput/chunks/GrInput-DD2gYdqS.js +348 -0
- package/dist/components/GrInput/chunks/GrInput-DD2gYdqS.js.map +1 -0
- package/dist/components/GrInput/index.js +2 -2
- package/dist/components/GrInputTag/chunks/GrInputTag-DmNunixz.js +525 -0
- package/dist/components/GrInputTag/chunks/GrInputTag-DmNunixz.js.map +1 -0
- package/dist/components/GrInputTag/index.js +2 -2
- package/dist/components/GrKbd/chunks/GrKbd-DRFPvW3G.js +192 -0
- package/dist/components/GrKbd/chunks/GrKbd-DRFPvW3G.js.map +1 -0
- package/dist/components/GrKbd/index.js +3 -3
- package/dist/components/GrLink/chunks/GrLink-D-cgUMXW.js +163 -0
- package/dist/components/GrLink/chunks/GrLink-D-cgUMXW.js.map +1 -0
- package/dist/components/GrLink/index.js +2 -2
- package/dist/components/GrList/chunks/GrList-4YU1NZtM.js +277 -0
- package/dist/components/GrList/chunks/GrList-4YU1NZtM.js.map +1 -0
- package/dist/components/GrList/index.js +3 -3
- package/dist/components/GrList/styles.css +1 -0
- package/dist/components/GrLoading/chunks/GrLoading-CH95CFzS.js +101 -0
- package/dist/components/GrLoading/chunks/GrLoading-CH95CFzS.js.map +1 -0
- package/dist/components/GrLoading/index.js +2 -2
- package/dist/components/GrModal/chunks/GrModal-B8I78T0N.js +313 -0
- package/dist/components/GrModal/chunks/GrModal-B8I78T0N.js.map +1 -0
- package/dist/components/GrModal/index.js +3 -4
- package/dist/components/GrNavbar/chunks/GrNavbar-CF0KbM_6.js +104 -0
- package/dist/components/GrNavbar/chunks/GrNavbar-CF0KbM_6.js.map +1 -0
- package/dist/components/GrNavbar/index.js +3 -3
- package/dist/components/GrNumberInput/chunks/GrNumberInput-CZOyPz4J.js +658 -0
- package/dist/components/GrNumberInput/chunks/GrNumberInput-CZOyPz4J.js.map +1 -0
- package/dist/components/GrNumberInput/index.js +2 -2
- package/dist/components/GrPagination/chunks/GrPagination-B6N0QZBf.js +283 -0
- package/dist/components/GrPagination/chunks/GrPagination-B6N0QZBf.js.map +1 -0
- package/dist/components/GrPagination/index.js +3 -3
- package/dist/components/GrPopover/chunks/GrPopover-B1eRCOoO.js +216 -0
- package/dist/components/GrPopover/chunks/GrPopover-B1eRCOoO.js.map +1 -0
- package/dist/components/GrPopover/index.js +3 -0
- package/dist/components/GrProgressBar/chunks/GrProgressBar-BiHnaitu.js +90 -0
- package/dist/components/GrProgressBar/chunks/GrProgressBar-BiHnaitu.js.map +1 -0
- package/dist/components/GrProgressBar/index.js +2 -2
- package/dist/components/GrProgressBar/styles.css +1 -0
- package/dist/components/GrProgressBar/themes/dark.css +13 -0
- package/dist/components/GrProgressBar/themes/light.css +12 -0
- package/dist/components/GrProgressCircle/chunks/GrProgressCircle-CTogjcHz.js +210 -0
- package/dist/components/GrProgressCircle/chunks/GrProgressCircle-CTogjcHz.js.map +1 -0
- package/dist/components/GrProgressCircle/index.js +3 -0
- package/dist/components/GrProgressCircle/styles.css +1 -0
- package/dist/components/GrPromptDialog/chunks/GrPromptDialog-Ct174NVD.js +348 -0
- package/dist/components/GrPromptDialog/chunks/GrPromptDialog-Ct174NVD.js.map +1 -0
- package/dist/components/GrPromptDialog/index.js +2 -2
- package/dist/components/GrRadio/chunks/GrRadio-DksDro_U.js +277 -0
- package/dist/components/GrRadio/chunks/GrRadio-DksDro_U.js.map +1 -0
- package/dist/components/GrRadio/index.js +2 -2
- package/dist/components/GrRadioGroup/chunks/GrRadioGroup-BOIhejE6.js +189 -0
- package/dist/components/GrRadioGroup/chunks/GrRadioGroup-BOIhejE6.js.map +1 -0
- package/dist/components/GrRadioGroup/index.js +2 -2
- package/dist/components/GrRating/chunks/GrRating-JrHXz0Rv.js +315 -0
- package/dist/components/GrRating/chunks/GrRating-JrHXz0Rv.js.map +1 -0
- package/dist/components/GrRating/index.js +2 -2
- package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-C7W9mgYN.js +777 -0
- package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-C7W9mgYN.js.map +1 -0
- package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-DhX4jjay.js +224 -0
- package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-DhX4jjay.js.map +1 -0
- package/dist/components/GrResponseErrorBanner/index.js +2 -2
- package/dist/components/GrSegmented/chunks/GrSegmented-BQIlH5KI.js +406 -0
- package/dist/components/GrSegmented/chunks/GrSegmented-BQIlH5KI.js.map +1 -0
- package/dist/components/GrSegmented/index.js +3 -3
- package/dist/components/GrSelect/chunks/GrSelect-aqkPCqjd.js +1372 -0
- package/dist/components/GrSelect/chunks/GrSelect-aqkPCqjd.js.map +1 -0
- package/dist/components/GrSelect/index.js +2 -2
- package/dist/components/GrSelect/styles.css +1 -0
- package/dist/components/GrSidebar/chunks/GrSidebar-DRGnnViw.js +257 -0
- package/dist/components/GrSidebar/chunks/GrSidebar-DRGnnViw.js.map +1 -0
- package/dist/components/GrSidebar/index.js +3 -3
- package/dist/components/GrSkeleton/chunks/GrSkeleton-DEvNE3bC.js +84 -0
- package/dist/components/GrSkeleton/chunks/GrSkeleton-DEvNE3bC.js.map +1 -0
- package/dist/components/GrSkeleton/index.js +2 -2
- package/dist/components/GrSlider/chunks/GrSlider-DkU9IQSX.js +392 -0
- package/dist/components/GrSlider/chunks/GrSlider-DkU9IQSX.js.map +1 -0
- package/dist/components/GrSlider/index.js +2 -2
- package/dist/components/GrSplitter/chunks/GrSplitter-7To8jbJ8.js +288 -0
- package/dist/components/GrSplitter/chunks/GrSplitter-7To8jbJ8.js.map +1 -0
- package/dist/components/GrSplitter/index.js +3 -0
- package/dist/components/GrSplitter/styles.css +1 -0
- package/dist/components/GrStatistic/chunks/GrStatistic-CttyoYPT.js +319 -0
- package/dist/components/GrStatistic/chunks/GrStatistic-CttyoYPT.js.map +1 -0
- package/dist/components/GrStatistic/index.js +2 -2
- package/dist/components/GrSwitch/chunks/GrSwitch-B9TYbiih.js +183 -0
- package/dist/components/GrSwitch/chunks/GrSwitch-B9TYbiih.js.map +1 -0
- package/dist/components/GrSwitch/index.js +2 -2
- package/dist/components/GrTabPanels/chunks/GrTabPanels-BVe1CZdJ.js +81 -0
- package/dist/components/GrTabPanels/chunks/GrTabPanels-BVe1CZdJ.js.map +1 -0
- package/dist/components/GrTabPanels/index.js +2 -2
- package/dist/components/GrTable/chunks/GrTable-BB-mI_NM.js +163 -0
- package/dist/components/GrTable/chunks/GrTable-BB-mI_NM.js.map +1 -0
- package/dist/components/GrTable/index.js +3 -3
- package/dist/components/GrTabs/chunks/GrTabs-B8CDq2D9.js +272 -0
- package/dist/components/GrTabs/chunks/GrTabs-B8CDq2D9.js.map +1 -0
- package/dist/components/GrTabs/index.js +3 -3
- package/dist/components/GrTextarea/chunks/GrTextarea-DUh5Tlo4.js +241 -0
- package/dist/components/GrTextarea/chunks/GrTextarea-DUh5Tlo4.js.map +1 -0
- package/dist/components/GrTextarea/index.js +2 -2
- package/dist/components/GrTimeline/chunks/GrTimeline-CE9b3s18.js +285 -0
- package/dist/components/GrTimeline/chunks/GrTimeline-CE9b3s18.js.map +1 -0
- package/dist/components/GrTimeline/index.js +3 -0
- package/dist/components/GrTimeline/styles.css +1 -0
- package/dist/components/GrToaster/chunks/GrToaster-BKQy3Srm.js +272 -0
- package/dist/components/GrToaster/chunks/GrToaster-BKQy3Srm.js.map +1 -0
- package/dist/components/GrToaster/index.js +1 -1
- package/dist/components/GrToaster/styles.css +1 -0
- package/dist/components/GrTooltip/chunks/GrTooltip-DEbejfhA.js +185 -0
- package/dist/components/GrTooltip/chunks/GrTooltip-DEbejfhA.js.map +1 -0
- package/dist/components/GrTooltip/index.js +3 -3
- package/dist/components/GrTree/chunks/GrTree-wfdbvygw.js +1339 -0
- package/dist/components/GrTree/chunks/GrTree-wfdbvygw.js.map +1 -0
- package/dist/components/GrTree/index.js +2 -2
- package/dist/components/GrTree/styles.css +1 -0
- package/dist/components/GrTreeSelect/chunks/GrTreeSelect-lLWmAMtI.js +623 -0
- package/dist/components/GrTreeSelect/chunks/GrTreeSelect-lLWmAMtI.js.map +1 -0
- package/dist/components/GrTreeSelect/index.js +2 -2
- package/dist/composables/useAnnouncer.js +114 -0
- package/dist/composables/useAnnouncer.js.map +1 -0
- package/dist/composables/useDismissible.js +31 -0
- package/dist/composables/useDismissible.js.map +1 -0
- package/dist/composables/useFloating.js +112 -0
- package/dist/composables/useFloating.js.map +1 -0
- package/dist/composables/useFocusTrap.js +124 -0
- package/dist/composables/useFocusTrap.js.map +1 -0
- package/dist/composables/useGrFormControl.js +24 -0
- package/dist/composables/useGrFormControl.js.map +1 -0
- package/dist/composables/useOverlayLayer.js +2 -0
- package/dist/composables/usePortalTarget.js +2 -0
- package/dist/composables/useTheme.js +106 -36
- package/dist/composables/useTheme.js.map +1 -1
- package/dist/composables/useToast.js +123 -7
- package/dist/composables/useToast.js.map +1 -1
- package/dist/composables/useVirtualList.js +244 -0
- package/dist/composables/useVirtualList.js.map +1 -0
- package/dist/directives/dropzone.js +1 -1
- package/dist/directives/hotkey.js +9 -15
- package/dist/directives/hotkey.js.map +1 -1
- package/dist/directives/loading.js +43 -7
- package/dist/directives/loading.js.map +1 -1
- package/dist/fileValidation/index.js +2 -2
- package/dist/granular-provider-node.js +1 -31
- package/dist/granular-provider.js +1 -4
- package/dist/i18n/all.js +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/index.js +148 -140
- package/dist/styles/base.css +32 -0
- package/dist/styles/preflight.css +33 -0
- package/dist/styles/themes/dark.css +81 -26
- package/dist/styles/themes/light.css +86 -15
- package/dist/styles/tokens.css +63 -4
- package/dist/tokens.js +3132 -0
- package/dist/tokens.js.map +1 -0
- package/dist/types/src/components/GrAlert/GrAlert.vue.d.ts +42 -10
- package/dist/types/src/components/GrAlert/config.d.ts +1 -1
- package/dist/types/src/components/GrAlert/defaults.d.ts +9 -3
- package/dist/types/src/components/GrAlert/grAlertStyles.d.ts +0 -7
- package/dist/types/src/components/GrAlert/index.d.ts +3 -2
- package/dist/types/src/components/GrAutocomplete/GrAutocomplete.vue.d.ts +112 -99
- package/dist/types/src/components/GrAutocomplete/config.d.ts +1 -1
- package/dist/types/src/components/GrAutocomplete/grAutocompleteStyles.d.ts +43 -7
- package/dist/types/src/components/GrAutocomplete/index.d.ts +4 -0
- package/dist/types/src/components/GrAvatar/GrAvatar.vue.d.ts +40 -17
- package/dist/types/src/components/GrAvatar/GrAvatarGroup.vue.d.ts +70 -0
- package/dist/types/src/components/GrAvatar/avatarContext.d.ts +12 -0
- package/dist/types/src/components/GrAvatar/config.d.ts +1 -1
- package/dist/types/src/components/GrAvatar/defaults.d.ts +16 -0
- package/dist/types/src/components/GrAvatar/grAvatarStyles.d.ts +38 -0
- package/dist/types/src/components/GrAvatar/index.d.ts +5 -0
- package/dist/types/src/components/GrAvatar/safelist.d.ts +4 -0
- package/dist/types/src/components/GrBadge/GrBadge.vue.d.ts +4 -4
- package/dist/types/src/components/GrBadge/config.d.ts +1 -1
- package/dist/types/src/components/GrBadge/grBadgeStyles.d.ts +13 -1
- package/dist/types/src/components/GrBadge/index.d.ts +1 -0
- package/dist/types/src/components/GrBadgeWrap/GrBadgeWrap.vue.d.ts +42 -5
- package/dist/types/src/components/GrBadgeWrap/config.d.ts +1 -1
- package/dist/types/src/components/GrBadgeWrap/grBadgeWrapStyles.d.ts +46 -0
- package/dist/types/src/components/GrBadgeWrap/index.d.ts +4 -0
- package/dist/types/src/components/GrBadgeWrap/safelist.d.ts +1 -0
- package/dist/types/src/components/GrBottomNav/GrBottomNav.vue.d.ts +91 -4
- package/dist/types/src/components/GrBottomNav/config.d.ts +1 -1
- package/dist/types/src/components/GrBottomNav/defaults.d.ts +16 -0
- package/dist/types/src/components/GrBottomNav/grBottomNavStyles.d.ts +56 -0
- package/dist/types/src/components/GrBottomNav/index.d.ts +6 -1
- package/dist/types/src/components/GrBottomNav/safelist.d.ts +1 -0
- package/dist/types/src/components/GrBreadcrumbs/GrBreadcrumbs.vue.d.ts +117 -0
- package/dist/types/src/components/GrBreadcrumbs/config.d.ts +1 -0
- package/dist/types/src/components/GrBreadcrumbs/defaults.d.ts +15 -0
- package/dist/types/src/components/GrBreadcrumbs/grBreadcrumbsStyles.d.ts +86 -0
- package/dist/types/src/components/GrBreadcrumbs/index.d.ts +8 -0
- package/dist/types/src/components/GrBreadcrumbs/safelist.d.ts +1 -0
- package/dist/types/src/components/GrButton/GrButton.vue.d.ts +31 -7
- package/dist/types/src/components/GrButton/config.d.ts +1 -1
- package/dist/types/src/components/GrButton/grButtonStyles.d.ts +27 -3
- package/dist/types/src/components/GrButton/index.d.ts +5 -1
- package/dist/types/src/components/GrButton/safelist.d.ts +1 -0
- package/dist/types/src/components/GrButtonGroup/GrButtonGroup.vue.d.ts +32 -4
- package/dist/types/src/components/GrButtonGroup/config.d.ts +1 -1
- package/dist/types/src/components/GrButtonGroup/context.d.ts +20 -0
- package/dist/types/src/components/GrButtonGroup/index.d.ts +3 -0
- package/dist/types/src/components/GrCard/GrCard.vue.d.ts +80 -3
- package/dist/types/src/components/GrCard/config.d.ts +1 -1
- package/dist/types/src/components/GrCard/defaults.d.ts +15 -0
- package/dist/types/src/components/GrCard/grCardStyles.d.ts +24 -0
- package/dist/types/src/components/GrCard/index.d.ts +5 -0
- package/dist/types/src/components/GrCard/safelist.d.ts +1 -0
- package/dist/types/src/components/GrCheckbox/GrCheckbox.vue.d.ts +56 -10
- package/dist/types/src/components/GrCheckbox/config.d.ts +1 -1
- package/dist/types/src/components/GrCheckbox/defaults.d.ts +14 -0
- package/dist/types/src/components/GrCheckbox/grCheckboxGroupContext.d.ts +19 -0
- package/dist/types/src/components/GrCheckbox/grCheckboxStyles.d.ts +44 -0
- package/dist/types/src/components/GrCheckbox/index.d.ts +9 -0
- package/dist/types/src/components/GrCheckbox/safelist.d.ts +13 -0
- package/dist/types/src/components/GrCheckboxGroup/GrCheckboxGroup.vue.d.ts +105 -0
- package/dist/types/src/components/GrCheckboxGroup/config.d.ts +1 -0
- package/dist/types/src/components/GrCheckboxGroup/defaults.d.ts +14 -0
- package/dist/types/src/components/GrCheckboxGroup/index.d.ts +9 -0
- package/dist/types/src/components/GrCollapse/GrCollapse.vue.d.ts +55 -7
- package/dist/types/src/components/GrCollapse/GrCollapseItem.vue.d.ts +13 -3
- package/dist/types/src/components/GrCollapse/config.d.ts +1 -1
- package/dist/types/src/components/GrCollapse/defaults.d.ts +19 -0
- package/dist/types/src/components/GrCollapse/grCollapseContext.d.ts +20 -0
- package/dist/types/src/components/GrCollapse/grCollapseStyles.d.ts +42 -0
- package/dist/types/src/components/GrCollapse/index.d.ts +3 -0
- package/dist/types/src/components/GrCollapse/safelist.d.ts +15 -0
- package/dist/types/src/components/GrColorPicker/GrColorPicker.vue.d.ts +104 -0
- package/dist/types/src/components/GrColorPicker/color.d.ts +38 -0
- package/dist/types/src/components/GrColorPicker/config.d.ts +1 -0
- package/dist/types/src/components/GrColorPicker/defaults.d.ts +15 -0
- package/dist/types/src/components/GrColorPicker/grColorPickerStyles.d.ts +39 -0
- package/dist/types/src/components/GrColorPicker/index.d.ts +11 -0
- package/dist/types/src/components/GrColorPicker/safelist.d.ts +1 -0
- package/dist/types/src/components/GrCommandPalette/GrCommandPalette.vue.d.ts +45 -10
- package/dist/types/src/components/GrCommandPalette/config.d.ts +1 -1
- package/dist/types/src/components/GrCommandPalette/defaults.d.ts +14 -0
- package/dist/types/src/components/GrCommandPalette/filtering.d.ts +24 -0
- package/dist/types/src/components/GrCommandPalette/grCommandPaletteStyles.d.ts +33 -8
- package/dist/types/src/components/GrCommandPalette/index.d.ts +4 -0
- package/dist/types/src/components/GrConfigProvider/GrConfigProvider.vue.d.ts +38 -4
- package/dist/types/src/components/GrConfigProvider/config.d.ts +1 -1
- package/dist/types/src/components/GrConfigProvider/context.d.ts +27 -0
- package/dist/types/src/components/GrConfigProvider/index.d.ts +1 -0
- package/dist/types/src/components/GrConfigProvider/zIndexScale.d.ts +23 -0
- package/dist/types/src/components/GrConfirmDialog/GrConfirmDialog.vue.d.ts +33 -4
- package/dist/types/src/components/GrConfirmDialog/config.d.ts +1 -1
- package/dist/types/src/components/GrConfirmDialog/defaults.d.ts +14 -0
- package/dist/types/src/components/GrConfirmDialog/index.d.ts +2 -1
- package/dist/types/src/components/GrDataTable/GrDataTable.vue.d.ts +92 -27
- package/dist/types/src/components/GrDataTable/config.d.ts +1 -1
- package/dist/types/src/components/GrDataTable/defaults.d.ts +10 -0
- package/dist/types/src/components/GrDataTable/grDataTableSort.d.ts +25 -0
- package/dist/types/src/components/GrDataTable/grDataTableStyles.d.ts +29 -0
- package/dist/types/src/components/GrDataTable/index.d.ts +10 -1
- package/dist/types/src/components/GrDataTable/safelist.d.ts +1 -0
- package/dist/types/src/components/GrDialog/GrDialog.vue.d.ts +51 -4
- package/dist/types/src/components/GrDialog/GrDialogCloseButton.vue.d.ts +3 -0
- package/dist/types/src/components/GrDialog/GrDialogHeader.vue.d.ts +3 -0
- package/dist/types/src/components/GrDialog/config.d.ts +1 -1
- package/dist/types/src/components/GrDialog/defaults.d.ts +14 -0
- package/dist/types/src/components/GrDialog/dialogShared.d.ts +2 -1
- package/dist/types/src/components/GrDialog/index.d.ts +5 -0
- package/dist/types/src/components/GrDialogService/GrDialogServiceHost.vue.d.ts +18 -1
- package/dist/types/src/components/GrDialogService/GrDialogServiceItem.vue.d.ts +15 -0
- package/dist/types/src/components/GrDialogService/config.d.ts +1 -1
- package/dist/types/src/components/GrDialogService/index.d.ts +3 -1
- package/dist/types/src/components/GrDialogService/store.d.ts +78 -7
- package/dist/types/src/components/GrDialogService/types.d.ts +22 -1
- package/dist/types/src/components/GrDialogService/useDialogService.d.ts +31 -1
- package/dist/types/src/components/GrDivider/GrDivider.vue.d.ts +44 -9
- package/dist/types/src/components/GrDivider/config.d.ts +1 -1
- package/dist/types/src/components/GrDivider/defaults.d.ts +15 -0
- package/dist/types/src/components/GrDivider/grDividerStyles.d.ts +19 -0
- package/dist/types/src/components/GrDivider/index.d.ts +4 -1
- package/dist/types/src/components/GrDivider/safelist.d.ts +1 -0
- package/dist/types/src/components/GrDrawer/GrDrawer.vue.d.ts +93 -17
- package/dist/types/src/components/GrDrawer/config.d.ts +1 -1
- package/dist/types/src/components/GrDrawer/defaults.d.ts +19 -0
- package/dist/types/src/components/GrDrawer/grDrawerStyles.d.ts +48 -2
- package/dist/types/src/components/GrDrawer/index.d.ts +6 -1
- package/dist/types/src/components/GrDropdown/GrDropdown.vue.d.ts +66 -13
- package/dist/types/src/components/GrDropdown/config.d.ts +1 -1
- package/dist/types/src/components/GrDropdown/grDropdownStyles.d.ts +4 -5
- package/dist/types/src/components/GrDropdown/index.d.ts +5 -2
- package/dist/types/src/components/GrDropdownMenu/GrDropdownMenu.vue.d.ts +79 -16
- package/dist/types/src/components/GrDropdownMenu/GrDropdownMenuColumn.vue.d.ts +2 -1
- package/dist/types/src/components/GrDropdownMenu/GrDropdownMenuColumns.vue.d.ts +3 -2
- package/dist/types/src/components/GrDropdownMenu/GrDropdownMenuGroup.vue.d.ts +2 -2
- package/dist/types/src/components/GrDropdownMenu/GrDropdownMenuHeader.vue.d.ts +3 -2
- package/dist/types/src/components/GrDropdownMenu/GrDropdownMenuItem.vue.d.ts +51 -5
- package/dist/types/src/components/GrDropdownMenu/GrDropdownMenuList.vue.d.ts +5 -0
- package/dist/types/src/components/GrDropdownMenu/config.d.ts +1 -1
- package/dist/types/src/components/GrDropdownMenu/grDropdownMenuStyles.d.ts +33 -0
- package/dist/types/src/components/GrDropdownMenu/index.d.ts +6 -2
- package/dist/types/src/components/GrDropdownMenu/menuModel.d.ts +42 -0
- package/dist/types/src/components/GrDropdownMenu/safelist.d.ts +7 -0
- package/dist/types/src/components/GrEmptyState/GrEmptyState.vue.d.ts +33 -10
- package/dist/types/src/components/GrEmptyState/config.d.ts +1 -1
- package/dist/types/src/components/GrEmptyState/defaults.d.ts +16 -0
- package/dist/types/src/components/GrEmptyState/grEmptyStateStyles.d.ts +32 -0
- package/dist/types/src/components/GrEmptyState/index.d.ts +4 -0
- package/dist/types/src/components/GrEmptyState/safelist.d.ts +1 -0
- package/dist/types/src/components/GrFileUpload/GrFileUpload.vue.d.ts +158 -148
- package/dist/types/src/components/GrFileUpload/config.d.ts +1 -1
- package/dist/types/src/components/GrFileUpload/defaults.d.ts +10 -0
- package/dist/types/src/components/GrFileUpload/fileEntry.d.ts +26 -0
- package/dist/types/src/components/GrFileUpload/grFileUploadStyles.d.ts +45 -0
- package/dist/types/src/components/GrFileUpload/index.d.ts +10 -1
- package/dist/types/src/components/GrFileUpload/maxFileSize.d.ts +2 -0
- package/dist/types/src/components/GrFileUpload/safelist.d.ts +1 -0
- package/dist/types/src/components/GrFileUpload/useDropZone.d.ts +24 -0
- package/dist/types/src/components/GrFileUpload/usePerFileUpload.d.ts +38 -0
- package/dist/types/src/components/GrFileUpload/useUploadState.d.ts +30 -0
- package/dist/types/src/components/GrForm/GrForm.vue.d.ts +38 -2
- package/dist/types/src/components/GrForm/config.d.ts +1 -1
- package/dist/types/src/components/GrForm/context.d.ts +22 -3
- package/dist/types/src/components/GrForm/fileRule.d.ts +43 -0
- package/dist/types/src/components/GrForm/index.d.ts +6 -2
- package/dist/types/src/components/GrForm/modelSnapshot.d.ts +17 -0
- package/dist/types/src/components/GrForm/validation.d.ts +16 -1
- package/dist/types/src/components/GrFormField/GrFormField.vue.d.ts +56 -10
- package/dist/types/src/components/GrFormField/config.d.ts +1 -1
- package/dist/types/src/components/GrFormField/context.d.ts +19 -0
- package/dist/types/src/components/GrFormField/defaults.d.ts +15 -0
- package/dist/types/src/components/GrFormField/grFormFieldStyles.d.ts +19 -0
- package/dist/types/src/components/GrFormField/index.d.ts +5 -1
- package/dist/types/src/components/GrFormField/safelist.d.ts +1 -0
- package/dist/types/src/components/GrFormFile/GrFormFile.vue.d.ts +70 -16
- package/dist/types/src/components/GrFormFile/config.d.ts +1 -1
- package/dist/types/src/components/GrFormFile/defaults.d.ts +10 -0
- package/dist/types/src/components/GrFormFile/grFormFileStyles.d.ts +22 -0
- package/dist/types/src/components/GrFormFile/index.d.ts +7 -0
- package/dist/types/src/components/GrFormFile/safelist.d.ts +1 -0
- package/dist/types/src/components/GrFormSection/GrFormSection.vue.d.ts +34 -7
- package/dist/types/src/components/GrFormSection/config.d.ts +1 -1
- package/dist/types/src/components/GrFormSection/defaults.d.ts +14 -0
- package/dist/types/src/components/GrFormSection/grFormSectionStyles.d.ts +12 -0
- package/dist/types/src/components/GrFormSection/index.d.ts +4 -0
- package/dist/types/src/components/GrFormSection/safelist.d.ts +1 -0
- package/dist/types/src/components/GrIcon/GrIcon.vue.d.ts +40 -4
- package/dist/types/src/components/GrIcon/config.d.ts +1 -1
- package/dist/types/src/components/GrIcon/defaults.d.ts +14 -0
- package/dist/types/src/components/GrIcon/grIconStyles.d.ts +25 -0
- package/dist/types/src/components/GrIcon/index.d.ts +4 -0
- package/dist/types/src/components/GrIcon/safelist.d.ts +1 -0
- package/dist/types/src/components/GrImageViewer/GrImageViewer.vue.d.ts +87 -16
- package/dist/types/src/components/GrImageViewer/composables/usePointerGestures.d.ts +36 -0
- package/dist/types/src/components/GrImageViewer/composables/useViewerKeyboard.d.ts +7 -4
- package/dist/types/src/components/GrImageViewer/composables/useWheelGesture.d.ts +3 -2
- package/dist/types/src/components/GrImageViewer/composables/useZoomPan.d.ts +17 -3
- package/dist/types/src/components/GrImageViewer/config.d.ts +1 -1
- package/dist/types/src/components/GrImageViewer/grImageViewerStyles.d.ts +21 -0
- package/dist/types/src/components/GrImageViewer/index.d.ts +7 -0
- package/dist/types/src/components/GrImageViewer/safelist.d.ts +1 -0
- package/dist/types/src/components/GrInput/GrInput.vue.d.ts +66 -21
- package/dist/types/src/components/GrInput/config.d.ts +1 -1
- package/dist/types/src/components/GrInput/grInputStyles.d.ts +53 -7
- package/dist/types/src/components/GrInput/index.d.ts +5 -0
- package/dist/types/src/components/GrInputTag/GrInputTag.vue.d.ts +97 -14
- package/dist/types/src/components/GrInputTag/config.d.ts +1 -1
- package/dist/types/src/components/GrInputTag/defaults.d.ts +17 -0
- package/dist/types/src/components/GrInputTag/grInputTagStyles.d.ts +24 -1
- package/dist/types/src/components/GrInputTag/index.d.ts +5 -0
- package/dist/types/src/components/GrKbd/GrKbd.vue.d.ts +31 -10
- package/dist/types/src/components/GrKbd/config.d.ts +1 -1
- package/dist/types/src/components/GrKbd/defaults.d.ts +14 -0
- package/dist/types/src/components/GrKbd/grKbdStyles.d.ts +15 -0
- package/dist/types/src/components/GrKbd/index.d.ts +4 -1
- package/dist/types/src/components/GrKbd/safelist.d.ts +1 -0
- package/dist/types/src/components/GrLink/GrLink.vue.d.ts +23 -10
- package/dist/types/src/components/GrLink/config.d.ts +1 -1
- package/dist/types/src/components/GrLink/defaults.d.ts +14 -0
- package/dist/types/src/components/GrLink/grLinkStyles.d.ts +11 -13
- package/dist/types/src/components/GrLink/index.d.ts +2 -0
- package/dist/types/src/components/GrList/GrList.vue.d.ts +57 -32
- package/dist/types/src/components/GrList/GrListItem.vue.d.ts +42 -9
- package/dist/types/src/components/GrList/config.d.ts +1 -1
- package/dist/types/src/components/GrList/grListStyles.d.ts +25 -0
- package/dist/types/src/components/GrList/index.d.ts +5 -0
- package/dist/types/src/components/GrList/safelist.d.ts +1 -0
- package/dist/types/src/components/GrLoading/GrLoading.vue.d.ts +59 -19
- package/dist/types/src/components/GrLoading/config.d.ts +1 -1
- package/dist/types/src/components/GrLoading/grLoadingStyles.d.ts +10 -2
- package/dist/types/src/components/GrLoading/index.d.ts +1 -0
- package/dist/types/src/components/GrModal/GrModal.vue.d.ts +58 -12
- package/dist/types/src/components/GrModal/config.d.ts +1 -1
- package/dist/types/src/components/GrModal/context.d.ts +37 -0
- package/dist/types/src/components/GrModal/defaults.d.ts +14 -0
- package/dist/types/src/components/GrModal/grModalStyles.d.ts +25 -10
- package/dist/types/src/components/GrModal/index.d.ts +6 -3
- package/dist/types/src/components/GrNavbar/GrNavbar.vue.d.ts +28 -9
- package/dist/types/src/components/GrNavbar/config.d.ts +1 -1
- package/dist/types/src/components/GrNavbar/grNavbarStyles.d.ts +23 -0
- package/dist/types/src/components/GrNavbar/index.d.ts +2 -0
- package/dist/types/src/components/GrNavbar/safelist.d.ts +1 -0
- package/dist/types/src/components/GrNumberInput/GrNumberInput.vue.d.ts +64 -17
- package/dist/types/src/components/GrNumberInput/config.d.ts +1 -1
- package/dist/types/src/components/GrNumberInput/defaults.d.ts +1 -0
- package/dist/types/src/components/GrNumberInput/grNumberInputStyles.d.ts +20 -4
- package/dist/types/src/components/GrNumberInput/index.d.ts +4 -0
- package/dist/types/src/components/GrNumberInput/numberInputMath.d.ts +17 -0
- package/dist/types/src/components/GrPagination/GrPagination.vue.d.ts +47 -1
- package/dist/types/src/components/GrPagination/config.d.ts +1 -1
- package/dist/types/src/components/GrPagination/defaults.d.ts +10 -0
- package/dist/types/src/components/GrPagination/grPaginationStyles.d.ts +19 -0
- package/dist/types/src/components/GrPagination/index.d.ts +4 -0
- package/dist/types/src/components/GrPagination/safelist.d.ts +1 -0
- package/dist/types/src/components/GrPopover/GrPopover.vue.d.ts +161 -0
- package/dist/types/src/components/GrPopover/config.d.ts +1 -0
- package/dist/types/src/components/GrPopover/defaults.d.ts +15 -0
- package/dist/types/src/components/GrPopover/grPopoverStyles.d.ts +28 -0
- package/dist/types/src/components/GrPopover/index.d.ts +11 -0
- package/dist/types/src/components/GrPopover/safelist.d.ts +1 -0
- package/dist/types/src/components/GrProgressBar/GrProgressBar.vue.d.ts +37 -5
- package/dist/types/src/components/GrProgressBar/config.d.ts +1 -1
- package/dist/types/src/components/GrProgressBar/defaults.d.ts +11 -0
- package/dist/types/src/components/GrProgressBar/grStyle.d.ts +14 -0
- package/dist/types/src/components/GrProgressBar/index.d.ts +2 -1
- package/dist/types/src/components/GrProgressBar/safelist.d.ts +4 -0
- package/dist/types/src/components/GrProgressCircle/GrProgressCircle.vue.d.ts +103 -0
- package/dist/types/src/components/GrProgressCircle/config.d.ts +1 -0
- package/dist/types/src/components/GrProgressCircle/defaults.d.ts +18 -0
- package/dist/types/src/components/GrProgressCircle/geometry.d.ts +29 -0
- package/dist/types/src/components/GrProgressCircle/grProgressCircleStyles.d.ts +34 -0
- package/dist/types/src/components/GrProgressCircle/index.d.ts +11 -0
- package/dist/types/src/components/GrProgressCircle/safelist.d.ts +1 -0
- package/dist/types/src/components/GrPromptDialog/GrPromptDialog.vue.d.ts +78 -10
- package/dist/types/src/components/GrPromptDialog/config.d.ts +1 -1
- package/dist/types/src/components/GrPromptDialog/defaults.d.ts +14 -0
- package/dist/types/src/components/GrPromptDialog/index.d.ts +1 -0
- package/dist/types/src/components/GrRadio/GrRadio.vue.d.ts +28 -9
- package/dist/types/src/components/GrRadio/config.d.ts +1 -1
- package/dist/types/src/components/GrRadio/grRadioGroupContext.d.ts +37 -2
- package/dist/types/src/components/GrRadio/grRadioStyles.d.ts +49 -6
- package/dist/types/src/components/GrRadio/index.d.ts +1 -0
- package/dist/types/src/components/GrRadioGroup/GrRadioGroup.vue.d.ts +54 -10
- package/dist/types/src/components/GrRadioGroup/config.d.ts +1 -1
- package/dist/types/src/components/GrRadioGroup/index.d.ts +4 -0
- package/dist/types/src/components/GrRating/GrRating.vue.d.ts +66 -17
- package/dist/types/src/components/GrRating/config.d.ts +1 -1
- package/dist/types/src/components/GrRating/grRatingStyles.d.ts +4 -1
- package/dist/types/src/components/GrRating/index.d.ts +4 -0
- package/dist/types/src/components/GrResponseErrorBanner/GrFormErrorBanner.vue.d.ts +8 -4
- package/dist/types/src/components/GrResponseErrorBanner/GrResponseErrorBanner.vue.d.ts +8 -4
- package/dist/types/src/components/GrResponseErrorBanner/GrUploadErrorBanner.vue.d.ts +11 -4
- package/dist/types/src/components/GrResponseErrorBanner/config.d.ts +1 -1
- package/dist/types/src/components/GrResponseErrorBanner/index.d.ts +6 -0
- package/dist/types/src/components/GrResponseErrorBanner/parsers/httpStatusParser.d.ts +3 -1
- package/dist/types/src/components/GrResponseErrorBanner/parsers/plainMessageParser.d.ts +4 -1
- package/dist/types/src/components/GrResponseErrorBanner/responseError.types.d.ts +12 -2
- package/dist/types/src/components/GrSegmented/GrSegmented.vue.d.ts +48 -9
- package/dist/types/src/components/GrSegmented/config.d.ts +1 -1
- package/dist/types/src/components/GrSegmented/grSegmentedStyles.d.ts +31 -5
- package/dist/types/src/components/GrSegmented/index.d.ts +5 -1
- package/dist/types/src/components/GrSegmented/safelist.d.ts +3 -1
- package/dist/types/src/components/GrSelect/GrSelect.vue.d.ts +138 -114
- package/dist/types/src/components/GrSelect/composables/useSelectNavigation.d.ts +52 -0
- package/dist/types/src/components/GrSelect/composables/useSelectPanelItems.d.ts +67 -0
- package/dist/types/src/components/GrSelect/composables/useSelectValues.d.ts +37 -0
- package/dist/types/src/components/GrSelect/composables/useSelectVirtualization.d.ts +27 -0
- package/dist/types/src/components/GrSelect/config.d.ts +1 -1
- package/dist/types/src/components/GrSelect/grSelectStyles.d.ts +64 -9
- package/dist/types/src/components/GrSelect/index.d.ts +5 -1
- package/dist/types/src/components/GrSelect/selectValue.d.ts +20 -0
- package/dist/types/src/components/GrSidebar/GrSidebar.vue.d.ts +30 -5
- package/dist/types/src/components/GrSidebar/GrSidebarGroup.vue.d.ts +43 -0
- package/dist/types/src/components/GrSidebar/GrSidebarItem.vue.d.ts +4 -4
- package/dist/types/src/components/GrSidebar/config.d.ts +1 -1
- package/dist/types/src/components/GrSidebar/grSidebarStyles.d.ts +48 -0
- package/dist/types/src/components/GrSidebar/index.d.ts +6 -0
- package/dist/types/src/components/GrSidebar/safelist.d.ts +1 -0
- package/dist/types/src/components/GrSkeleton/GrSkeleton.vue.d.ts +22 -6
- package/dist/types/src/components/GrSkeleton/config.d.ts +1 -1
- package/dist/types/src/components/GrSkeleton/grSkeletonStyles.d.ts +9 -0
- package/dist/types/src/components/GrSkeleton/index.d.ts +1 -0
- package/dist/types/src/components/GrSlider/GrSlider.vue.d.ts +54 -4
- package/dist/types/src/components/GrSlider/config.d.ts +1 -1
- package/dist/types/src/components/GrSlider/grSliderStyles.d.ts +47 -8
- package/dist/types/src/components/GrSlider/index.d.ts +4 -0
- package/dist/types/src/components/GrSplitter/GrSplitter.vue.d.ts +121 -0
- package/dist/types/src/components/GrSplitter/config.d.ts +1 -0
- package/dist/types/src/components/GrSplitter/defaults.d.ts +16 -0
- package/dist/types/src/components/GrSplitter/grSplitterStyles.d.ts +9 -0
- package/dist/types/src/components/GrSplitter/index.d.ts +11 -0
- package/dist/types/src/components/GrSplitter/safelist.d.ts +1 -0
- package/dist/types/src/components/GrSplitter/splitterGeometry.d.ts +39 -0
- package/dist/types/src/components/GrStatistic/GrStatistic.vue.d.ts +65 -16
- package/dist/types/src/components/GrStatistic/config.d.ts +1 -1
- package/dist/types/src/components/GrStatistic/countUp.d.ts +17 -0
- package/dist/types/src/components/GrStatistic/defaults.d.ts +14 -0
- package/dist/types/src/components/GrStatistic/formatStatisticValue.d.ts +6 -2
- package/dist/types/src/components/GrStatistic/grStatisticStyles.d.ts +14 -1
- package/dist/types/src/components/GrStatistic/index.d.ts +2 -1
- package/dist/types/src/components/GrSwitch/GrSwitch.vue.d.ts +68 -6
- package/dist/types/src/components/GrSwitch/config.d.ts +1 -1
- package/dist/types/src/components/GrSwitch/grSwitchStyles.d.ts +45 -4
- package/dist/types/src/components/GrSwitch/index.d.ts +5 -1
- package/dist/types/src/components/GrSwitch/safelist.d.ts +4 -1
- package/dist/types/src/components/GrTabPanels/GrTabPanel.vue.d.ts +12 -9
- package/dist/types/src/components/GrTabPanels/GrTabPanels.vue.d.ts +4 -14
- package/dist/types/src/components/GrTabPanels/config.d.ts +1 -1
- package/dist/types/src/components/GrTabPanels/context.d.ts +1 -1
- package/dist/types/src/components/GrTabPanels/index.d.ts +2 -0
- package/dist/types/src/components/GrTable/GrTable.vue.d.ts +85 -15
- package/dist/types/src/components/GrTable/config.d.ts +1 -1
- package/dist/types/src/components/GrTable/defaults.d.ts +10 -0
- package/dist/types/src/components/GrTable/grTableStyles.d.ts +20 -0
- package/dist/types/src/components/GrTable/index.d.ts +7 -1
- package/dist/types/src/components/GrTable/safelist.d.ts +1 -0
- package/dist/types/src/components/GrTabs/GrTabs.vue.d.ts +92 -6
- package/dist/types/src/components/GrTabs/config.d.ts +1 -1
- package/dist/types/src/components/GrTabs/defaults.d.ts +12 -0
- package/dist/types/src/components/GrTabs/grTabsStyles.d.ts +71 -0
- package/dist/types/src/components/GrTabs/index.d.ts +5 -0
- package/dist/types/src/components/GrTabs/safelist.d.ts +1 -0
- package/dist/types/src/components/GrTextarea/GrTextarea.vue.d.ts +89 -24
- package/dist/types/src/components/GrTextarea/config.d.ts +1 -1
- package/dist/types/src/components/GrTextarea/defaults.d.ts +18 -0
- package/dist/types/src/components/GrTextarea/grTextareaStyles.d.ts +33 -1
- package/dist/types/src/components/GrTextarea/index.d.ts +6 -1
- package/dist/types/src/components/GrTimeline/GrTimeline.vue.d.ts +70 -0
- package/dist/types/src/components/GrTimeline/GrTimelineItem.vue.d.ts +84 -0
- package/dist/types/src/components/GrTimeline/config.d.ts +1 -0
- package/dist/types/src/components/GrTimeline/defaults.d.ts +19 -0
- package/dist/types/src/components/GrTimeline/grTimelineContext.d.ts +18 -0
- package/dist/types/src/components/GrTimeline/grTimelineStyles.d.ts +37 -0
- package/dist/types/src/components/GrTimeline/index.d.ts +12 -0
- package/dist/types/src/components/GrTimeline/safelist.d.ts +1 -0
- package/dist/types/src/components/GrTimeline/timelineGroups.d.ts +23 -0
- package/dist/types/src/components/GrToaster/GrToaster.vue.d.ts +25 -1
- package/dist/types/src/components/GrToaster/config.d.ts +1 -1
- package/dist/types/src/components/GrToaster/index.d.ts +3 -0
- package/dist/types/src/components/GrTooltip/GrTooltip.vue.d.ts +57 -6
- package/dist/types/src/components/GrTooltip/config.d.ts +1 -1
- package/dist/types/src/components/GrTooltip/defaults.d.ts +10 -0
- package/dist/types/src/components/GrTooltip/grTooltipStyles.d.ts +8 -0
- package/dist/types/src/components/GrTooltip/index.d.ts +5 -1
- package/dist/types/src/components/GrTooltip/safelist.d.ts +1 -0
- package/dist/types/src/components/GrTree/GrTree.vue.d.ts +20 -7
- package/dist/types/src/components/GrTree/config.d.ts +1 -1
- package/dist/types/src/components/GrTree/defaults.d.ts +10 -0
- package/dist/types/src/components/GrTree/grTreeChecking.d.ts +31 -0
- package/dist/types/src/components/GrTree/grTreeDataAdapter.d.ts +2 -0
- package/dist/types/src/components/GrTree/grTreeInteractionContext.d.ts +9 -0
- package/dist/types/src/components/GrTree/grTreeProps.d.ts +60 -11
- package/dist/types/src/components/GrTree/grTreeStore.d.ts +27 -1
- package/dist/types/src/components/GrTree/grTreeStyles.d.ts +22 -0
- package/dist/types/src/components/GrTree/grTreeTypes.d.ts +15 -0
- package/dist/types/src/components/GrTree/index.d.ts +5 -1
- package/dist/types/src/components/GrTreeSelect/GrTreeSelect.vue.d.ts +30 -9
- package/dist/types/src/components/GrTreeSelect/config.d.ts +1 -1
- package/dist/types/src/components/GrTreeSelect/defaults.d.ts +10 -0
- package/dist/types/src/components/GrTreeSelect/grTreeSelectStyles.d.ts +29 -1
- package/dist/types/src/components/GrTreeSelect/grTreeSelectTypes.d.ts +43 -0
- package/dist/types/src/components/GrTreeSelect/index.d.ts +5 -0
- package/dist/types/src/components/shared/hotkey.d.ts +46 -0
- package/dist/types/src/components/shared/instance.d.ts +15 -0
- package/dist/types/src/components/shared/optionFilter.d.ts +61 -0
- package/dist/types/src/components/shared/sizes.d.ts +30 -0
- package/dist/types/src/components/shared/slotNodes.d.ts +19 -0
- package/dist/types/src/composables/internal/focusables.d.ts +30 -0
- package/dist/types/src/composables/internal/inert.d.ts +35 -0
- package/dist/types/src/composables/internal/overlayStack.d.ts +60 -0
- package/dist/types/src/composables/internal/portalRoot.d.ts +27 -0
- package/dist/types/src/composables/internal/useAddonMeasurement.d.ts +1 -1
- package/dist/types/src/composables/internal/useComboboxNavigation.d.ts +51 -0
- package/dist/types/src/composables/internal/useControlAddons.d.ts +61 -0
- package/dist/types/src/composables/internal/useControlledOpen.d.ts +14 -0
- package/dist/types/src/composables/internal/useFilePreviews.d.ts +26 -0
- package/dist/types/src/composables/internal/useFocusWithin.d.ts +32 -0
- package/dist/types/src/composables/internal/useInertOthers.d.ts +9 -0
- package/dist/types/src/composables/internal/useModalOverlay.d.ts +95 -0
- package/dist/types/src/composables/internal/useOverlayPresence.d.ts +24 -0
- package/dist/types/src/composables/internal/useScrollLock.d.ts +10 -5
- package/dist/types/src/composables/internal/useTeleportEnabled.d.ts +35 -0
- package/dist/types/src/composables/useAnnouncer.d.ts +44 -0
- package/dist/types/src/composables/useDismissible.d.ts +32 -0
- package/dist/types/src/composables/useFocusTrap.d.ts +50 -0
- package/dist/types/src/composables/useGrFormControl.d.ts +52 -0
- package/dist/types/src/composables/useOverlayLayer.d.ts +67 -0
- package/dist/types/src/composables/usePortalTarget.d.ts +28 -0
- package/dist/types/src/composables/useTheme.d.ts +48 -2
- package/dist/types/src/composables/useToast.d.ts +20 -11
- package/dist/types/src/composables/useVirtualList.d.ts +119 -0
- package/dist/types/src/directives/loading.d.ts +7 -1
- package/dist/types/src/fileValidation/i18n.d.ts +24 -0
- package/dist/types/src/fileValidation/index.d.ts +4 -2
- package/dist/types/src/fileValidation/maxCountValidator.d.ts +9 -0
- package/dist/types/src/fileValidation/maxFileSize.d.ts +16 -0
- package/dist/types/src/fileValidation/types.d.ts +8 -2
- package/dist/types/src/granular-provider/index.d.ts +1 -1
- package/dist/types/src/granular-provider/node.d.ts +2 -3
- package/dist/types/src/granular-provider/shared.d.ts +13 -18
- package/dist/types/src/i18n/adapter.d.ts +24 -0
- package/dist/types/src/i18n/messages/en.d.ts +286 -2
- package/dist/types/src/i18n/messages/es.d.ts +290 -2
- package/dist/types/src/i18n/messages/ru.d.ts +294 -2
- package/dist/types/src/index.d.ts +26 -3
- package/dist/types/src/internal/granularityFormat.d.ts +19 -0
- package/dist/types/src/internal/granularityI18n.d.ts +6 -0
- package/dist/types/src/internal/keyboard.d.ts +46 -0
- package/dist/types/src/tokens/generated.d.ts +6 -0
- package/dist/types/src/tokens/index.d.ts +13 -0
- package/dist/types/src/tokens/types.d.ts +54 -0
- package/dist/vue/index.js.map +1 -1
- package/dist/web-types.json +6309 -2024
- package/package.json +90 -17
- package/tokens/derived.json +142 -0
- package/tokens/foundation.json +558 -0
- package/tokens/themes/dark.json +499 -0
- package/tokens/themes/light.json +499 -0
- package/dist/GrBadge.css +0 -1
- package/dist/GrButtonGroup.css +0 -1
- package/dist/GrFormFile.css +0 -1
- package/dist/GrIcon.css +0 -1
- package/dist/GrLoading.css +0 -1
- package/dist/GrToaster.css +0 -1
- package/dist/GrTree.css +0 -1
- package/dist/chunks/config-23WtUiAL.js +0 -53
- package/dist/chunks/config-23WtUiAL.js.map +0 -1
- package/dist/chunks/config-B0i5r8kH.js +0 -23
- package/dist/chunks/config-B0i5r8kH.js.map +0 -1
- package/dist/chunks/config-B0qIpo8m.js +0 -5
- package/dist/chunks/config-B0qIpo8m.js.map +0 -1
- package/dist/chunks/config-B5Rknzkd.js +0 -100
- package/dist/chunks/config-B5Rknzkd.js.map +0 -1
- package/dist/chunks/config-BDSHekVC.js +0 -84
- package/dist/chunks/config-BDSHekVC.js.map +0 -1
- package/dist/chunks/config-BEegFP74.js +0 -5
- package/dist/chunks/config-BEegFP74.js.map +0 -1
- package/dist/chunks/config-BLHqZhy-.js +0 -5
- package/dist/chunks/config-BLHqZhy-.js.map +0 -1
- package/dist/chunks/config-BMKNHFMD2.js +0 -171
- package/dist/chunks/config-BMKNHFMD2.js.map +0 -1
- package/dist/chunks/config-BUHuGBik2.js +0 -13
- package/dist/chunks/config-BUHuGBik2.js.map +0 -1
- package/dist/chunks/config-BWGGp7uV.js +0 -8
- package/dist/chunks/config-BWGGp7uV.js.map +0 -1
- package/dist/chunks/config-BWiPnygb.js +0 -5
- package/dist/chunks/config-BWiPnygb.js.map +0 -1
- package/dist/chunks/config-BX1JTrkV.js +0 -14
- package/dist/chunks/config-BX1JTrkV.js.map +0 -1
- package/dist/chunks/config-BXtAmU3s.js +0 -8
- package/dist/chunks/config-BXtAmU3s.js.map +0 -1
- package/dist/chunks/config-BZFUM3Ky.js +0 -75
- package/dist/chunks/config-BZFUM3Ky.js.map +0 -1
- package/dist/chunks/config-Bah4oHwL.js +0 -8
- package/dist/chunks/config-Bah4oHwL.js.map +0 -1
- package/dist/chunks/config-BmNT0Fmx.js +0 -45
- package/dist/chunks/config-BmNT0Fmx.js.map +0 -1
- package/dist/chunks/config-BvVq2gbd.js +0 -13
- package/dist/chunks/config-BvVq2gbd.js.map +0 -1
- package/dist/chunks/config-C4hJxXDa.js +0 -58
- package/dist/chunks/config-C4hJxXDa.js.map +0 -1
- package/dist/chunks/config-C86UzUYf.js +0 -13
- package/dist/chunks/config-C86UzUYf.js.map +0 -1
- package/dist/chunks/config-C9AcVDkv.js +0 -5
- package/dist/chunks/config-C9AcVDkv.js.map +0 -1
- package/dist/chunks/config-CB4RVt9M.js +0 -66
- package/dist/chunks/config-CB4RVt9M.js.map +0 -1
- package/dist/chunks/config-CGHLoBlH2.js +0 -5
- package/dist/chunks/config-CGHLoBlH2.js.map +0 -1
- package/dist/chunks/config-COE_vZ-l.js +0 -52
- package/dist/chunks/config-COE_vZ-l.js.map +0 -1
- package/dist/chunks/config-CPdmr7tC.js +0 -39
- package/dist/chunks/config-CPdmr7tC.js.map +0 -1
- package/dist/chunks/config-CThzliFi.js +0 -5
- package/dist/chunks/config-CThzliFi.js.map +0 -1
- package/dist/chunks/config-Cb2PAlSD.js +0 -8
- package/dist/chunks/config-Cb2PAlSD.js.map +0 -1
- package/dist/chunks/config-D7GZO-Dx.js +0 -8
- package/dist/chunks/config-D7GZO-Dx.js.map +0 -1
- package/dist/chunks/config-DICOd-2X.js +0 -5
- package/dist/chunks/config-DICOd-2X.js.map +0 -1
- package/dist/chunks/config-DPDFYzIa.js +0 -40
- package/dist/chunks/config-DPDFYzIa.js.map +0 -1
- package/dist/chunks/config-DRKXJ9PW2.js +0 -22
- package/dist/chunks/config-DRKXJ9PW2.js.map +0 -1
- package/dist/chunks/config-DToHb81g.js +0 -45
- package/dist/chunks/config-DToHb81g.js.map +0 -1
- package/dist/chunks/config-D_myOZbA.js +0 -20
- package/dist/chunks/config-D_myOZbA.js.map +0 -1
- package/dist/chunks/config-Dg_6FTvJ.js +0 -35
- package/dist/chunks/config-Dg_6FTvJ.js.map +0 -1
- package/dist/chunks/config-Dlm49Jp5.js +0 -5
- package/dist/chunks/config-Dlm49Jp5.js.map +0 -1
- package/dist/chunks/config-DpqOnJiz.js.map +0 -1
- package/dist/chunks/config-Dqy0rPPO2.js +0 -17
- package/dist/chunks/config-Dqy0rPPO2.js.map +0 -1
- package/dist/chunks/config-Dxuwwepq.js +0 -5
- package/dist/chunks/config-Dxuwwepq.js.map +0 -1
- package/dist/chunks/config-HZto2PVy.js +0 -5
- package/dist/chunks/config-HZto2PVy.js.map +0 -1
- package/dist/chunks/config-JOtB4mzs.js +0 -8
- package/dist/chunks/config-JOtB4mzs.js.map +0 -1
- package/dist/chunks/config-JpHA4Xx0.js +0 -8
- package/dist/chunks/config-JpHA4Xx0.js.map +0 -1
- package/dist/chunks/config-KXuionN3.js +0 -9
- package/dist/chunks/config-KXuionN3.js.map +0 -1
- package/dist/chunks/config-LqDC_rvp.js +0 -78
- package/dist/chunks/config-LqDC_rvp.js.map +0 -1
- package/dist/chunks/config-PFg39mYo.js +0 -5
- package/dist/chunks/config-PFg39mYo.js.map +0 -1
- package/dist/chunks/config-QYGvEBu5.js +0 -22
- package/dist/chunks/config-QYGvEBu5.js.map +0 -1
- package/dist/chunks/config-QaIc_gRa2.js.map +0 -1
- package/dist/chunks/config-U4m9PSql2.js +0 -8
- package/dist/chunks/config-U4m9PSql2.js.map +0 -1
- package/dist/chunks/config-XmTv4pnI.js +0 -26
- package/dist/chunks/config-XmTv4pnI.js.map +0 -1
- package/dist/chunks/config-ZiXWIRBX.js +0 -8
- package/dist/chunks/config-ZiXWIRBX.js.map +0 -1
- package/dist/chunks/config-eXB87DOi.js.map +0 -1
- package/dist/chunks/config-gZWR75Bh2.js +0 -44
- package/dist/chunks/config-gZWR75Bh2.js.map +0 -1
- package/dist/chunks/config-ipvU0lzP.js +0 -5
- package/dist/chunks/config-ipvU0lzP.js.map +0 -1
- package/dist/chunks/config-xR4XVmcy2.js +0 -8
- package/dist/chunks/config-xR4XVmcy2.js.map +0 -1
- package/dist/chunks/context-DfWYCBB-.js +0 -129
- package/dist/chunks/context-DfWYCBB-.js.map +0 -1
- package/dist/chunks/en-Cr6EkG8c.js +0 -186
- package/dist/chunks/en-Cr6EkG8c.js.map +0 -1
- package/dist/chunks/es-DuYb1Qju.js +0 -20
- package/dist/chunks/es-DuYb1Qju.js.map +0 -1
- package/dist/chunks/es-i08e9Sdo.js +0 -186
- package/dist/chunks/es-i08e9Sdo.js.map +0 -1
- package/dist/chunks/fileValidation-C3WFaWU2.js +0 -220
- package/dist/chunks/fileValidation-C3WFaWU2.js.map +0 -1
- package/dist/chunks/grBadgeStyles-D3dFjr_N.js +0 -50
- package/dist/chunks/grBadgeStyles-D3dFjr_N.js.map +0 -1
- package/dist/chunks/grButtonStyles-DRBgDmOp.js +0 -191
- package/dist/chunks/grButtonStyles-DRBgDmOp.js.map +0 -1
- package/dist/chunks/grDropdownStyles-HBPkghVr.js +0 -35
- package/dist/chunks/grDropdownStyles-HBPkghVr.js.map +0 -1
- package/dist/chunks/grLoadingStyles-R5sreH__.js +0 -17
- package/dist/chunks/grLoadingStyles-R5sreH__.js.map +0 -1
- package/dist/chunks/grModalEscStack-BXk-9mv7.js +0 -43
- package/dist/chunks/grModalEscStack-BXk-9mv7.js.map +0 -1
- package/dist/chunks/grModalStyles-D8-shx9A.js +0 -47
- package/dist/chunks/grModalStyles-D8-shx9A.js.map +0 -1
- package/dist/chunks/grSelectStyles-CwMUQrBZ.js +0 -97
- package/dist/chunks/grSelectStyles-CwMUQrBZ.js.map +0 -1
- package/dist/chunks/grStyle-CdvxTXPH.js +0 -19
- package/dist/chunks/grStyle-CdvxTXPH.js.map +0 -1
- package/dist/chunks/granularityI18n-SH0I--GW.js +0 -61
- package/dist/chunks/granularityI18n-SH0I--GW.js.map +0 -1
- package/dist/chunks/ru-B5XOOYZt.js +0 -186
- package/dist/chunks/ru-B5XOOYZt.js.map +0 -1
- package/dist/chunks/safelist-BvO8HPnE.js +0 -24
- package/dist/chunks/safelist-BvO8HPnE.js.map +0 -1
- package/dist/chunks/shared-D-v9lit0.js +0 -188
- package/dist/chunks/shared-D-v9lit0.js.map +0 -1
- package/dist/chunks/useAddonMeasurement-DM0akF4C.js +0 -65
- package/dist/chunks/useAddonMeasurement-DM0akF4C.js.map +0 -1
- package/dist/chunks/useEscapeToClose-C2t_S1gh.js +0 -27
- package/dist/chunks/useEscapeToClose-C2t_S1gh.js.map +0 -1
- package/dist/chunks/useFloating-DtM6TyE4.js +0 -1249
- package/dist/chunks/useFloating-DtM6TyE4.js.map +0 -1
- package/dist/chunks/useScrollLock-K7kaP2Ud.js +0 -1757
- package/dist/chunks/useScrollLock-K7kaP2Ud.js.map +0 -1
- package/dist/components/GrAlert/chunks/GrAlert-B9gmpoPC.js +0 -251
- package/dist/components/GrAlert/chunks/GrAlert-B9gmpoPC.js.map +0 -1
- package/dist/components/GrAutocomplete/chunks/GrAutocomplete-BVLoQ5tZ.js +0 -499
- package/dist/components/GrAutocomplete/chunks/GrAutocomplete-BVLoQ5tZ.js.map +0 -1
- package/dist/components/GrAvatar/chunks/GrAvatar-CTOUVBF7.js +0 -41
- package/dist/components/GrAvatar/chunks/GrAvatar-CTOUVBF7.js.map +0 -1
- package/dist/components/GrBadge/chunks/GrBadge-D1jefy4S.js +0 -40
- package/dist/components/GrBadge/chunks/GrBadge-D1jefy4S.js.map +0 -1
- package/dist/components/GrBadgeWrap/chunks/GrBadgeWrap-DWDxHdiQ.js +0 -33
- package/dist/components/GrBadgeWrap/chunks/GrBadgeWrap-DWDxHdiQ.js.map +0 -1
- package/dist/components/GrBottomNav/chunks/GrBottomNav-vSE4LXmk.js +0 -31
- package/dist/components/GrBottomNav/chunks/GrBottomNav-vSE4LXmk.js.map +0 -1
- package/dist/components/GrButton/chunks/GrButton-DCi4CUpo.js +0 -128
- package/dist/components/GrButton/chunks/GrButton-DCi4CUpo.js.map +0 -1
- package/dist/components/GrButtonGroup/chunks/GrButtonGroup-Bs9dEKfA.js +0 -21
- package/dist/components/GrButtonGroup/chunks/GrButtonGroup-Bs9dEKfA.js.map +0 -1
- package/dist/components/GrCard/chunks/GrCard-CxCjyHMb.js +0 -11
- package/dist/components/GrCard/chunks/GrCard-CxCjyHMb.js.map +0 -1
- package/dist/components/GrCheckbox/chunks/GrCheckbox-BbIDRXtl.js +0 -182
- package/dist/components/GrCheckbox/chunks/GrCheckbox-BbIDRXtl.js.map +0 -1
- package/dist/components/GrCollapse/chunks/GrCollapse-DApXztn8.js +0 -205
- package/dist/components/GrCollapse/chunks/GrCollapse-DApXztn8.js.map +0 -1
- package/dist/components/GrCommandPalette/chunks/GrCommandPalette-6OyvNbek.js +0 -410
- package/dist/components/GrCommandPalette/chunks/GrCommandPalette-6OyvNbek.js.map +0 -1
- package/dist/components/GrConfigProvider/chunks/GrConfigProvider-BtyeBGm8.js +0 -57
- package/dist/components/GrConfigProvider/chunks/GrConfigProvider-BtyeBGm8.js.map +0 -1
- package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-e4120mWw.js +0 -160
- package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-e4120mWw.js.map +0 -1
- package/dist/components/GrDataTable/chunks/GrDataTable-C1CzxV0p.js +0 -307
- package/dist/components/GrDataTable/chunks/GrDataTable-C1CzxV0p.js.map +0 -1
- package/dist/components/GrDialog/chunks/GrDialog-BPMvDHOz.js +0 -223
- package/dist/components/GrDialog/chunks/GrDialog-BPMvDHOz.js.map +0 -1
- package/dist/components/GrDialogService/chunks/GrDialogService-CYXCTGm3.js +0 -450
- package/dist/components/GrDialogService/chunks/GrDialogService-CYXCTGm3.js.map +0 -1
- package/dist/components/GrDivider/chunks/GrDivider-BdENZ1w0.js +0 -54
- package/dist/components/GrDivider/chunks/GrDivider-BdENZ1w0.js.map +0 -1
- package/dist/components/GrDrawer/chunks/GrDrawer-KevdZ5BB.js +0 -184
- package/dist/components/GrDrawer/chunks/GrDrawer-KevdZ5BB.js.map +0 -1
- package/dist/components/GrDropdown/chunks/GrDropdown-BKoy8hm-.js +0 -181
- package/dist/components/GrDropdown/chunks/GrDropdown-BKoy8hm-.js.map +0 -1
- package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-zCatXzmt.js +0 -309
- package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-zCatXzmt.js.map +0 -1
- package/dist/components/GrEmptyState/chunks/GrEmptyState-CNb0BzjG.js +0 -62
- package/dist/components/GrEmptyState/chunks/GrEmptyState-CNb0BzjG.js.map +0 -1
- package/dist/components/GrFileUpload/chunks/GrFileUpload-CnLgUGDF.js +0 -592
- package/dist/components/GrFileUpload/chunks/GrFileUpload-CnLgUGDF.js.map +0 -1
- package/dist/components/GrForm/chunks/GrForm-CdaFjcyl.js +0 -234
- package/dist/components/GrForm/chunks/GrForm-CdaFjcyl.js.map +0 -1
- package/dist/components/GrFormField/chunks/GrFormField-CXCDBd99.js +0 -100
- package/dist/components/GrFormField/chunks/GrFormField-CXCDBd99.js.map +0 -1
- package/dist/components/GrFormFile/chunks/GrFormFile-CqacSbUl.js +0 -320
- package/dist/components/GrFormFile/chunks/GrFormFile-CqacSbUl.js.map +0 -1
- package/dist/components/GrFormSection/chunks/GrFormSection-C3w9DQJf.js +0 -35
- package/dist/components/GrFormSection/chunks/GrFormSection-C3w9DQJf.js.map +0 -1
- package/dist/components/GrIcon/chunks/GrIcon-D9AWQLk2.js +0 -32
- package/dist/components/GrIcon/chunks/GrIcon-D9AWQLk2.js.map +0 -1
- package/dist/components/GrImageViewer/chunks/GrImageViewer-DDLJkvIU.js +0 -650
- package/dist/components/GrImageViewer/chunks/GrImageViewer-DDLJkvIU.js.map +0 -1
- package/dist/components/GrInput/chunks/GrInput-C1VBL0dg.js +0 -337
- package/dist/components/GrInput/chunks/GrInput-C1VBL0dg.js.map +0 -1
- package/dist/components/GrInputTag/chunks/GrInputTag-BMk9jm42.js +0 -260
- package/dist/components/GrInputTag/chunks/GrInputTag-BMk9jm42.js.map +0 -1
- package/dist/components/GrKbd/chunks/GrKbd-DTspwtoN.js +0 -22
- package/dist/components/GrKbd/chunks/GrKbd-DTspwtoN.js.map +0 -1
- package/dist/components/GrLink/chunks/GrLink-BP0YrnL9.js +0 -100
- package/dist/components/GrLink/chunks/GrLink-BP0YrnL9.js.map +0 -1
- package/dist/components/GrList/chunks/GrList-5RA-tZzE.js +0 -77
- package/dist/components/GrList/chunks/GrList-5RA-tZzE.js.map +0 -1
- package/dist/components/GrLoading/chunks/GrLoading-fRDtVfi7.js +0 -69
- package/dist/components/GrLoading/chunks/GrLoading-fRDtVfi7.js.map +0 -1
- package/dist/components/GrModal/chunks/GrModal-BTu1-5eY.js +0 -233
- package/dist/components/GrModal/chunks/GrModal-BTu1-5eY.js.map +0 -1
- package/dist/components/GrNavbar/chunks/GrNavbar-keKT_mIM.js +0 -75
- package/dist/components/GrNavbar/chunks/GrNavbar-keKT_mIM.js.map +0 -1
- package/dist/components/GrNumberInput/chunks/GrNumberInput-l9ZOHG9D.js +0 -471
- package/dist/components/GrNumberInput/chunks/GrNumberInput-l9ZOHG9D.js.map +0 -1
- package/dist/components/GrPagination/chunks/GrPagination-C5Y69CuK.js +0 -208
- package/dist/components/GrPagination/chunks/GrPagination-C5Y69CuK.js.map +0 -1
- package/dist/components/GrProgressBar/chunks/GrProgressBar-Dqg4Fj9S.js +0 -39
- package/dist/components/GrProgressBar/chunks/GrProgressBar-Dqg4Fj9S.js.map +0 -1
- package/dist/components/GrPromptDialog/chunks/GrPromptDialog-DNUjRVB9.js +0 -224
- package/dist/components/GrPromptDialog/chunks/GrPromptDialog-DNUjRVB9.js.map +0 -1
- package/dist/components/GrRadio/chunks/GrRadio-DlhxPGqf.js +0 -182
- package/dist/components/GrRadio/chunks/GrRadio-DlhxPGqf.js.map +0 -1
- package/dist/components/GrRadioGroup/chunks/GrRadioGroup-BXt9iw4q.js +0 -82
- package/dist/components/GrRadioGroup/chunks/GrRadioGroup-BXt9iw4q.js.map +0 -1
- package/dist/components/GrRating/chunks/GrRating-Co-3Rk4h.js +0 -241
- package/dist/components/GrRating/chunks/GrRating-Co-3Rk4h.js.map +0 -1
- package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-2CvM7Z08.js +0 -224
- package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-2CvM7Z08.js.map +0 -1
- package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-C8NGx8pE.js +0 -782
- package/dist/components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-C8NGx8pE.js.map +0 -1
- package/dist/components/GrSegmented/chunks/GrSegmented-CTd3n4PA.js +0 -326
- package/dist/components/GrSegmented/chunks/GrSegmented-CTd3n4PA.js.map +0 -1
- package/dist/components/GrSelect/chunks/GrSelect-Dn3FgJ3Z.js +0 -730
- package/dist/components/GrSelect/chunks/GrSelect-Dn3FgJ3Z.js.map +0 -1
- package/dist/components/GrSidebar/chunks/GrSidebar-cvnzBfj3.js +0 -238
- package/dist/components/GrSidebar/chunks/GrSidebar-cvnzBfj3.js.map +0 -1
- package/dist/components/GrSkeleton/chunks/GrSkeleton-BucA5F4J.js +0 -33
- package/dist/components/GrSkeleton/chunks/GrSkeleton-BucA5F4J.js.map +0 -1
- package/dist/components/GrSlider/chunks/GrSlider-CzzJ3bD-.js +0 -286
- package/dist/components/GrSlider/chunks/GrSlider-CzzJ3bD-.js.map +0 -1
- package/dist/components/GrStatistic/chunks/GrStatistic-gHiAwrX5.js +0 -128
- package/dist/components/GrStatistic/chunks/GrStatistic-gHiAwrX5.js.map +0 -1
- package/dist/components/GrSwitch/chunks/GrSwitch-CJdRvS0s.js +0 -88
- package/dist/components/GrSwitch/chunks/GrSwitch-CJdRvS0s.js.map +0 -1
- package/dist/components/GrTabPanels/chunks/GrTabPanels-DeEMgb_y.js +0 -68
- package/dist/components/GrTabPanels/chunks/GrTabPanels-DeEMgb_y.js.map +0 -1
- package/dist/components/GrTable/chunks/GrTable-sNvsA8wa.js +0 -70
- package/dist/components/GrTable/chunks/GrTable-sNvsA8wa.js.map +0 -1
- package/dist/components/GrTabs/chunks/GrTabs-BqTak0SR.js +0 -123
- package/dist/components/GrTabs/chunks/GrTabs-BqTak0SR.js.map +0 -1
- package/dist/components/GrTextarea/chunks/GrTextarea-DIYBAPpP.js +0 -81
- package/dist/components/GrTextarea/chunks/GrTextarea-DIYBAPpP.js.map +0 -1
- package/dist/components/GrToaster/chunks/GrToaster-BVHjIHcM.js +0 -230
- package/dist/components/GrToaster/chunks/GrToaster-BVHjIHcM.js.map +0 -1
- package/dist/components/GrTooltip/chunks/GrTooltip-BMKH2lIx.js +0 -109
- package/dist/components/GrTooltip/chunks/GrTooltip-BMKH2lIx.js.map +0 -1
- package/dist/components/GrTree/chunks/GrTree-_12ChXRQ.js +0 -838
- package/dist/components/GrTree/chunks/GrTree-_12ChXRQ.js.map +0 -1
- package/dist/components/GrTreeSelect/chunks/GrTreeSelect-CdaLG7Xq.js +0 -426
- package/dist/components/GrTreeSelect/chunks/GrTreeSelect-CdaLG7Xq.js.map +0 -1
- package/dist/granular-provider-node.js.map +0 -1
- package/dist/granular-provider.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/types/src/components/GrButton/config.node.d.ts +0 -1
- package/dist/types/src/components/GrCommandPalette/hotkey.d.ts +0 -23
- package/dist/types/src/components/GrFileUpload/maxSizeMbValidator.d.ts +0 -1
- package/dist/types/src/components/GrModal/grModalEscStack.d.ts +0 -30
- package/dist/types/src/components/GrModal/grModalTopStack.d.ts +0 -31
- package/dist/types/src/components/GrProgressBar/config.node.d.ts +0 -1
- package/dist/types/src/composables/internal/useEscapeToClose.d.ts +0 -11
- package/dist/types/src/fileValidation/maxFileSizeBytesValidator.d.ts +0 -2
- package/dist/types/src/fileValidation/maxSizeMbValidator.d.ts +0 -2
- /package/dist/chunks/{config-DpqOnJiz.js → config-DpqOnJiz2.js} +0 -0
- /package/dist/chunks/{config-QaIc_gRa2.js → config-QaIc_gRa.js} +0 -0
- /package/dist/chunks/{config-eXB87DOi.js → config-eXB87DOi2.js} +0 -0
- /package/dist/{GrSkeleton.css → components/GrSkeleton/styles.css} +0 -0
- /package/dist/types/src/composables/{internal/useFloating.d.ts → useFloating.d.ts} +0 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Comment, Fragment, Text } from "vue";
|
|
2
|
+
//#region src/components/shared/slotNodes.ts
|
|
3
|
+
/**
|
|
4
|
+
* Разбор содержимого слота.
|
|
5
|
+
*
|
|
6
|
+
* Общий модуль, а не приватные функции внутри SFC: то же самое нужно и
|
|
7
|
+
* `GrFileUpload` («слот с кастомным UI или просто текст»), и `GrList` («в
|
|
8
|
+
* списке пусто»). Импорт из чужой компонентной директории на сборке дал бы
|
|
9
|
+
* ребро между компонентами, которого в разметке нет.
|
|
10
|
+
*/
|
|
11
|
+
/** `v-for` и `<template>` приходят фрагментами — разворачиваем до реальных узлов. */
|
|
12
|
+
function flattenSlotNodes(nodes) {
|
|
13
|
+
const out = [];
|
|
14
|
+
for (const node of nodes) {
|
|
15
|
+
if (node.type === Fragment && Array.isArray(node.children)) {
|
|
16
|
+
out.push(...flattenSlotNodes(node.children));
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
out.push(node);
|
|
20
|
+
}
|
|
21
|
+
return out;
|
|
22
|
+
}
|
|
23
|
+
function isWhitespaceTextNode(node) {
|
|
24
|
+
if (node.type !== Text) return false;
|
|
25
|
+
return typeof node.children === "string" && node.children.trim().length === 0;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Узлы, которые пользователь действительно видит: без комментариев (их
|
|
29
|
+
* оставляет после себя каждый `v-if`) и без переносов строк из шаблона.
|
|
30
|
+
*/
|
|
31
|
+
function meaningfulSlotNodes(nodes) {
|
|
32
|
+
return flattenSlotNodes(nodes).filter((node) => node.type !== Comment && !isWhitespaceTextNode(node));
|
|
33
|
+
}
|
|
34
|
+
/** Есть ли в слоте хоть что-то, кроме комментариев и пробелов. */
|
|
35
|
+
function hasMeaningfulSlotContent(nodes) {
|
|
36
|
+
return meaningfulSlotNodes(nodes).length > 0;
|
|
37
|
+
}
|
|
38
|
+
//#endregion
|
|
39
|
+
export { hasMeaningfulSlotContent as n, meaningfulSlotNodes as r, flattenSlotNodes as t };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slotNodes-DxNXpC7v.js","names":[],"sources":["../../src/components/shared/slotNodes.ts"],"sourcesContent":["import { Comment, Fragment, Text, type VNode } from 'vue'\n\n/**\n * Разбор содержимого слота.\n *\n * Общий модуль, а не приватные функции внутри SFC: то же самое нужно и\n * `GrFileUpload` («слот с кастомным UI или просто текст»), и `GrList` («в\n * списке пусто»). Импорт из чужой компонентной директории на сборке дал бы\n * ребро между компонентами, которого в разметке нет.\n */\n\n/** `v-for` и `<template>` приходят фрагментами — разворачиваем до реальных узлов. */\nexport function flattenSlotNodes(nodes: VNode[]): VNode[] {\n const out: VNode[] = []\n\n for (const node of nodes) {\n if (node.type === Fragment && Array.isArray(node.children)) {\n out.push(...flattenSlotNodes(node.children as VNode[]))\n continue\n }\n\n out.push(node)\n }\n\n return out\n}\n\nexport function isWhitespaceTextNode(node: VNode): boolean {\n if (node.type !== Text) return false\n return typeof node.children === 'string' && node.children.trim().length === 0\n}\n\n/**\n * Узлы, которые пользователь действительно видит: без комментариев (их\n * оставляет после себя каждый `v-if`) и без переносов строк из шаблона.\n */\nexport function meaningfulSlotNodes(nodes: VNode[]): VNode[] {\n return flattenSlotNodes(nodes).filter(node => node.type !== Comment && !isWhitespaceTextNode(node))\n}\n\n/** Есть ли в слоте хоть что-то, кроме комментариев и пробелов. */\nexport function hasMeaningfulSlotContent(nodes: VNode[]): boolean {\n return meaningfulSlotNodes(nodes).length > 0\n}\n"],"mappings":";;;;;;;;;;;AAYA,SAAgB,iBAAiB,OAAyB;CACxD,MAAM,MAAe,CAAC;CAEtB,KAAK,MAAM,QAAQ,OAAO;EACxB,IAAI,KAAK,SAAS,YAAY,MAAM,QAAQ,KAAK,QAAQ,GAAG;GAC1D,IAAI,KAAK,GAAG,iBAAiB,KAAK,QAAmB,CAAC;GACtD;EACF;EAEA,IAAI,KAAK,IAAI;CACf;CAEA,OAAO;AACT;AAEA,SAAgB,qBAAqB,MAAsB;CACzD,IAAI,KAAK,SAAS,MAAM,OAAO;CAC/B,OAAO,OAAO,KAAK,aAAa,YAAY,KAAK,SAAS,KAAK,CAAC,CAAC,WAAW;AAC9E;;;;;AAMA,SAAgB,oBAAoB,OAAyB;CAC3D,OAAO,iBAAiB,KAAK,CAAC,CAAC,QAAO,SAAQ,KAAK,SAAS,WAAW,CAAC,qBAAqB,IAAI,CAAC;AACpG;;AAGA,SAAgB,yBAAyB,OAAyB;CAChE,OAAO,oBAAoB,KAAK,CAAC,CAAC,SAAS;AAC7C"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { computed, nextTick, onBeforeUnmount, onMounted, onUpdated, ref, useSlots } from "vue";
|
|
2
|
+
//#region src/composables/internal/useAddonMeasurement.ts
|
|
3
|
+
/**
|
|
4
|
+
* Измерение фактической ширины prefix/suffix add-on'ов через `ResizeObserver`.
|
|
5
|
+
* Общая логика GrInput/GrNumberInput.
|
|
6
|
+
*
|
|
7
|
+
* Потребитель вешает возвращённые `prefixEl`/`suffixEl` на DOM-элементы аддонов
|
|
8
|
+
* и передаёт реактивные `hasPrefix`/`hasSuffix` (обычно — наличие слотов).
|
|
9
|
+
* Возвращает измеренные ширины (`"<n>px"` или `undefined`, если элемент
|
|
10
|
+
* отсутствует/скрыт/нулевой — например, в jsdom).
|
|
11
|
+
*/
|
|
12
|
+
function useAddonMeasurement(hasPrefix, hasSuffix) {
|
|
13
|
+
const prefixEl = ref(null);
|
|
14
|
+
const suffixEl = ref(null);
|
|
15
|
+
const measuredPrefixWidth = ref(void 0);
|
|
16
|
+
const measuredSuffixWidth = ref(void 0);
|
|
17
|
+
let ro = null;
|
|
18
|
+
let scheduled = false;
|
|
19
|
+
function readWidthPx(el) {
|
|
20
|
+
if (!el) return void 0;
|
|
21
|
+
const width = Math.ceil(el.getBoundingClientRect().width || 0);
|
|
22
|
+
if (width <= 0) return void 0;
|
|
23
|
+
return `${width}px`;
|
|
24
|
+
}
|
|
25
|
+
function measure() {
|
|
26
|
+
measuredPrefixWidth.value = hasPrefix.value ? readWidthPx(prefixEl.value) : void 0;
|
|
27
|
+
measuredSuffixWidth.value = hasSuffix.value ? readWidthPx(suffixEl.value) : void 0;
|
|
28
|
+
}
|
|
29
|
+
function refreshObserver() {
|
|
30
|
+
if (typeof ResizeObserver === "undefined") return;
|
|
31
|
+
if (!ro) ro = new ResizeObserver(() => measure());
|
|
32
|
+
ro.disconnect();
|
|
33
|
+
if (prefixEl.value) ro.observe(prefixEl.value);
|
|
34
|
+
if (suffixEl.value) ro.observe(suffixEl.value);
|
|
35
|
+
}
|
|
36
|
+
function scheduleMeasure() {
|
|
37
|
+
if (scheduled) return;
|
|
38
|
+
scheduled = true;
|
|
39
|
+
nextTick(() => {
|
|
40
|
+
scheduled = false;
|
|
41
|
+
measure();
|
|
42
|
+
refreshObserver();
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
onMounted(() => scheduleMeasure());
|
|
46
|
+
onUpdated(() => scheduleMeasure());
|
|
47
|
+
onBeforeUnmount(() => ro?.disconnect());
|
|
48
|
+
return {
|
|
49
|
+
prefixEl,
|
|
50
|
+
suffixEl,
|
|
51
|
+
measuredPrefixWidth,
|
|
52
|
+
measuredSuffixWidth
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/** Складывает две CSS-длины: числовые `px` — арифметически, иначе через `calc()`. */
|
|
56
|
+
function addLen(a, b) {
|
|
57
|
+
if (a === "0px") return b;
|
|
58
|
+
if (b === "0px") return a;
|
|
59
|
+
const apx = a.endsWith("px") ? Number(a.slice(0, -2)) : null;
|
|
60
|
+
const bpx = b.endsWith("px") ? Number(b.slice(0, -2)) : null;
|
|
61
|
+
if (apx !== null && Number.isFinite(apx) && bpx !== null && Number.isFinite(bpx)) return `${apx + bpx}px`;
|
|
62
|
+
return `calc(${a} + ${b})`;
|
|
63
|
+
}
|
|
64
|
+
//#endregion
|
|
65
|
+
//#region src/composables/internal/useControlAddons.ts
|
|
66
|
+
function useControlAddons(props, options) {
|
|
67
|
+
const slots = useSlots();
|
|
68
|
+
const hasPrefix = computed(() => Boolean(slots.prefix));
|
|
69
|
+
const hasSuffix = computed(() => Boolean(slots.suffix));
|
|
70
|
+
const prefixMinWidth = computed(() => props().prefixMinWidth ?? options.defaultMinWidth());
|
|
71
|
+
const suffixMinWidth = computed(() => props().suffixMinWidth ?? options.defaultMinWidth());
|
|
72
|
+
const prefixFixedWidth = computed(() => props().prefixMaxWidth ?? props().prefixMinWidth ?? options.defaultMinWidth());
|
|
73
|
+
const suffixFixedWidth = computed(() => props().suffixMaxWidth ?? props().suffixMinWidth ?? options.defaultMinWidth());
|
|
74
|
+
const { prefixEl, suffixEl, measuredPrefixWidth, measuredSuffixWidth } = useAddonMeasurement(hasPrefix, hasSuffix);
|
|
75
|
+
const prefixLen = computed(() => {
|
|
76
|
+
if (!hasPrefix.value) return "0px";
|
|
77
|
+
return props().prefixFixed ? prefixFixedWidth.value : measuredPrefixWidth.value ?? prefixMinWidth.value;
|
|
78
|
+
});
|
|
79
|
+
const suffixLen = computed(() => {
|
|
80
|
+
if (!hasSuffix.value) return "0px";
|
|
81
|
+
return props().suffixFixed ? suffixFixedWidth.value : measuredSuffixWidth.value ?? suffixMinWidth.value;
|
|
82
|
+
});
|
|
83
|
+
return {
|
|
84
|
+
hasPrefix,
|
|
85
|
+
hasSuffix,
|
|
86
|
+
prefixEl,
|
|
87
|
+
suffixEl,
|
|
88
|
+
prefixLen,
|
|
89
|
+
suffixLen,
|
|
90
|
+
prefixStyle: computed(() => {
|
|
91
|
+
if (props().prefixFixed) return {
|
|
92
|
+
width: prefixFixedWidth.value,
|
|
93
|
+
minWidth: prefixFixedWidth.value,
|
|
94
|
+
maxWidth: prefixFixedWidth.value
|
|
95
|
+
};
|
|
96
|
+
return {
|
|
97
|
+
minWidth: prefixMinWidth.value,
|
|
98
|
+
maxWidth: props().prefixMaxWidth
|
|
99
|
+
};
|
|
100
|
+
}),
|
|
101
|
+
suffixStyle: computed(() => {
|
|
102
|
+
const anchor = options.anchorSuffixRight ? { right: "0px" } : {};
|
|
103
|
+
if (props().suffixFixed) return {
|
|
104
|
+
...anchor,
|
|
105
|
+
width: suffixFixedWidth.value,
|
|
106
|
+
minWidth: suffixFixedWidth.value,
|
|
107
|
+
maxWidth: suffixFixedWidth.value
|
|
108
|
+
};
|
|
109
|
+
return {
|
|
110
|
+
...anchor,
|
|
111
|
+
minWidth: suffixMinWidth.value,
|
|
112
|
+
maxWidth: props().suffixMaxWidth
|
|
113
|
+
};
|
|
114
|
+
}),
|
|
115
|
+
fieldPadding: computed(() => {
|
|
116
|
+
const leading = options.leadingReserve?.() ?? "0px";
|
|
117
|
+
const trailing = options.trailingReserve?.() ?? "0px";
|
|
118
|
+
const left = addLen(prefixLen.value, leading);
|
|
119
|
+
const right = addLen(suffixLen.value, trailing);
|
|
120
|
+
return {
|
|
121
|
+
paddingLeft: hasPrefix.value || leading !== "0px" ? addLen(left, options.paddingX()) : void 0,
|
|
122
|
+
paddingRight: hasSuffix.value || trailing !== "0px" ? addLen(right, options.paddingX()) : void 0
|
|
123
|
+
};
|
|
124
|
+
})
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
//#endregion
|
|
128
|
+
export { addLen as n, useControlAddons as t };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useControlAddons-asUr10Pf.js","names":[],"sources":["../../src/composables/internal/useAddonMeasurement.ts","../../src/composables/internal/useControlAddons.ts"],"sourcesContent":["import { nextTick, onBeforeUnmount, onMounted, onUpdated, ref } from 'vue'\nimport type { Ref } from 'vue'\n\n/**\n * Измерение фактической ширины prefix/suffix add-on'ов через `ResizeObserver`.\n * Общая логика GrInput/GrNumberInput.\n *\n * Потребитель вешает возвращённые `prefixEl`/`suffixEl` на DOM-элементы аддонов\n * и передаёт реактивные `hasPrefix`/`hasSuffix` (обычно — наличие слотов).\n * Возвращает измеренные ширины (`\"<n>px\"` или `undefined`, если элемент\n * отсутствует/скрыт/нулевой — например, в jsdom).\n */\nexport function useAddonMeasurement(hasPrefix: Ref<boolean>, hasSuffix: Ref<boolean>) {\n const prefixEl = ref<HTMLElement | null>(null)\n const suffixEl = ref<HTMLElement | null>(null)\n\n const measuredPrefixWidth = ref<string | undefined>(undefined)\n const measuredSuffixWidth = ref<string | undefined>(undefined)\n\n let ro: ResizeObserver | null = null\n let scheduled = false\n\n function readWidthPx(el: HTMLElement | null): string | undefined {\n if (!el) return undefined\n\n const width = Math.ceil(el.getBoundingClientRect().width || 0)\n // jsdom часто отдаёт 0; не перезатираем fallback minWidth в этом случае.\n if (width <= 0) return undefined\n\n return `${width}px`\n }\n\n function measure(): void {\n measuredPrefixWidth.value = hasPrefix.value ? readWidthPx(prefixEl.value) : undefined\n measuredSuffixWidth.value = hasSuffix.value ? readWidthPx(suffixEl.value) : undefined\n }\n\n function refreshObserver(): void {\n if (typeof ResizeObserver === 'undefined') return\n if (!ro) ro = new ResizeObserver(() => measure())\n\n ro.disconnect()\n if (prefixEl.value) ro.observe(prefixEl.value)\n if (suffixEl.value) ro.observe(suffixEl.value)\n }\n\n function scheduleMeasure(): void {\n if (scheduled) return\n scheduled = true\n\n void nextTick(() => {\n scheduled = false\n measure()\n refreshObserver()\n })\n }\n\n onMounted(() => scheduleMeasure())\n onUpdated(() => scheduleMeasure())\n onBeforeUnmount(() => ro?.disconnect())\n\n return {\n prefixEl,\n suffixEl,\n measuredPrefixWidth,\n measuredSuffixWidth,\n }\n}\n\n/** Складывает две CSS-длины: числовые `px` — арифметически, иначе через `calc()`. */\nexport function addLen(a: string, b: string): string {\n if (a === '0px') return b\n if (b === '0px') return a\n\n const apx = a.endsWith('px') ? Number(a.slice(0, -2)) : null\n const bpx = b.endsWith('px') ? Number(b.slice(0, -2)) : null\n\n if (apx !== null && Number.isFinite(apx) && bpx !== null && Number.isFinite(bpx)) {\n return `${apx + bpx}px`\n }\n\n return `calc(${a} + ${b})`\n}\n","import type { ComputedRef, Ref } from 'vue'\nimport { computed, useSlots } from 'vue'\n\nimport { addLen, useAddonMeasurement } from './useAddonMeasurement'\n\n/**\n * Аддоны контрола: слоты `prefix`/`suffix` и геометрия вокруг них.\n *\n * Слот здесь — вершина айсберга. Контракт аддона состоит из шести пропов ширины,\n * замера фактического размера через `ResizeObserver` и пересчёта внутренних\n * отступов поля, чтобы текст не заезжал под аддон. Эта математика была написана\n * дважды — в `GrInput` и `GrNumberInput`, — и раскатать её ещё на четыре\n * контрола копипастой значило бы завести шесть копий одного расчёта.\n *\n * Правило, которое держит композабл: **аддон резервирует место, а не заменяет\n * отступ**. Поле с аддоном и без него выглядит одинаково отбитым от края —\n * ширина аддона прибавляется к базовому паддингу ступени, а не вытесняет его.\n *\n * Карта ширины по умолчанию остаётся у компонента (`defaultMinWidth`): у\n * `GrInput` она в `rem`, у `GrNumberInput` — в тех же значениях, но в пикселях,\n * потому что оттуда же считаются ширины степперов. Сводить их к одной строке\n * значило бы менять то, что уезжает в `style`, ради косметики.\n */\nexport interface GrControlAddonProps {\n /** Минимальная ширина префикса. По умолчанию — ширина аддона для ступени размера. */\n prefixMinWidth?: string\n /** Максимальная ширина префикса: содержимое шире — обрезается. */\n prefixMaxWidth?: string\n suffixMinWidth?: string\n suffixMaxWidth?: string\n /**\n * Жёсткая ширина префикса (из `prefixMaxWidth` → `prefixMinWidth` → дефолт).\n * Нужна, когда аддоны соседних полей обязаны совпасть по ширине: без этого\n * каждое поле меряет свой аддон и колонка «плывёт».\n */\n prefixFixed?: boolean\n suffixFixed?: boolean\n}\n\nexport interface UseControlAddonsOptions {\n /** Ширина аддона по умолчанию для текущей ступени размера. */\n defaultMinWidth: () => string\n /** Базовый горизонтальный отступ поля из size-мапы. */\n paddingX: () => string\n /** Место, занятое собственными элементами контрола слева (степперы `GrNumberInput`). */\n leadingReserve?: () => string\n /** То же справа: кнопки очистки и показа пароля, спиннер, степперы. */\n trailingReserve?: () => string\n /** Прижать суффикс к правому краю — там, где аддон позиционируется абсолютно. */\n anchorSuffixRight?: boolean\n}\n\nexport interface ControlAddons {\n hasPrefix: ComputedRef<boolean>\n hasSuffix: ComputedRef<boolean>\n /** Вешаются на DOM-элементы аддонов: по ним идёт замер. */\n prefixEl: Ref<HTMLElement | null>\n suffixEl: Ref<HTMLElement | null>\n /** Занятое аддоном место (`0px`, если слота нет) — контролу нужно для своих кнопок. */\n prefixLen: ComputedRef<string>\n suffixLen: ComputedRef<string>\n prefixStyle: ComputedRef<Record<string, string | undefined>>\n suffixStyle: ComputedRef<Record<string, string | undefined>>\n /** `paddingLeft`/`paddingRight` поля с учётом аддонов и собственных кнопок. */\n fieldPadding: ComputedRef<Record<string, string | undefined>>\n}\n\nexport function useControlAddons(\n props: () => GrControlAddonProps,\n options: UseControlAddonsOptions,\n): ControlAddons {\n const slots = useSlots()\n\n const hasPrefix = computed(() => Boolean(slots.prefix))\n const hasSuffix = computed(() => Boolean(slots.suffix))\n\n const prefixMinWidth = computed(() => props().prefixMinWidth ?? options.defaultMinWidth())\n const suffixMinWidth = computed(() => props().suffixMinWidth ?? options.defaultMinWidth())\n\n // Жёсткая ширина для fixed-режима: max → min → дефолт.\n const prefixFixedWidth = computed(() => props().prefixMaxWidth ?? props().prefixMinWidth ?? options.defaultMinWidth())\n const suffixFixedWidth = computed(() => props().suffixMaxWidth ?? props().suffixMinWidth ?? options.defaultMinWidth())\n\n const { prefixEl, suffixEl, measuredPrefixWidth, measuredSuffixWidth } = useAddonMeasurement(hasPrefix, hasSuffix)\n\n const prefixLen = computed(() => {\n if (!hasPrefix.value) return '0px'\n return props().prefixFixed ? prefixFixedWidth.value : measuredPrefixWidth.value ?? prefixMinWidth.value\n })\n\n const suffixLen = computed(() => {\n if (!hasSuffix.value) return '0px'\n return props().suffixFixed ? suffixFixedWidth.value : measuredSuffixWidth.value ?? suffixMinWidth.value\n })\n\n const prefixStyle = computed<Record<string, string | undefined>>(() => {\n if (props().prefixFixed) {\n return {\n width: prefixFixedWidth.value,\n minWidth: prefixFixedWidth.value,\n maxWidth: prefixFixedWidth.value,\n }\n }\n\n return {\n minWidth: prefixMinWidth.value,\n maxWidth: props().prefixMaxWidth,\n }\n })\n\n const suffixStyle = computed<Record<string, string | undefined>>(() => {\n const anchor = options.anchorSuffixRight ? { right: '0px' } : {}\n\n if (props().suffixFixed) {\n return {\n ...anchor,\n width: suffixFixedWidth.value,\n minWidth: suffixFixedWidth.value,\n maxWidth: suffixFixedWidth.value,\n }\n }\n\n return {\n ...anchor,\n minWidth: suffixMinWidth.value,\n maxWidth: props().suffixMaxWidth,\n }\n })\n\n const fieldPadding = computed<Record<string, string | undefined>>(() => {\n const leading = options.leadingReserve?.() ?? '0px'\n const trailing = options.trailingReserve?.() ?? '0px'\n\n const left = addLen(prefixLen.value, leading)\n const right = addLen(suffixLen.value, trailing)\n\n return {\n // Отступ добавляется поверх зарезервированного места: поле с аддоном и без\n // него отбито от края одинаково.\n paddingLeft: hasPrefix.value || leading !== '0px' ? addLen(left, options.paddingX()) : undefined,\n paddingRight: hasSuffix.value || trailing !== '0px' ? addLen(right, options.paddingX()) : undefined,\n }\n })\n\n return {\n hasPrefix,\n hasSuffix,\n prefixEl,\n suffixEl,\n prefixLen,\n suffixLen,\n prefixStyle,\n suffixStyle,\n fieldPadding,\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { computed, ref } from "vue";
|
|
2
|
+
//#region src/composables/internal/useControlledOpen.ts
|
|
3
|
+
/**
|
|
4
|
+
* Контролируемое состояние открытия оверлея — единый контракт `v-model:open`
|
|
5
|
+
* панельных компонентов (Popover, Select, TreeSelect, Autocomplete, Dropdown).
|
|
6
|
+
*
|
|
7
|
+
* Uncontrolled-состояние; в controlled-режиме перекрывается пропом `open`.
|
|
8
|
+
* Без пропа `v-model` был бы обязателен, а поповер без модели — самый частый
|
|
9
|
+
* случай использования. Гарды компонента (disabled/readonly) остаются на его
|
|
10
|
+
* стороне — примитив ведёт только состояние и эмит.
|
|
11
|
+
*/
|
|
12
|
+
function useControlledOpen(controlled, onChange) {
|
|
13
|
+
const internalOpen = ref(false);
|
|
14
|
+
const isControlled = computed(() => controlled() !== void 0);
|
|
15
|
+
const open = computed(() => controlled() ?? internalOpen.value);
|
|
16
|
+
function setOpen(next) {
|
|
17
|
+
if (next === open.value) return;
|
|
18
|
+
if (!isControlled.value) internalOpen.value = next;
|
|
19
|
+
onChange(next);
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
open,
|
|
23
|
+
setOpen
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//#endregion
|
|
27
|
+
export { useControlledOpen as t };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useControlledOpen-DV3SqLTP.js","names":[],"sources":["../../src/composables/internal/useControlledOpen.ts"],"sourcesContent":["import type { ComputedRef } from 'vue'\nimport { computed, ref } from 'vue'\n\n/**\n * Контролируемое состояние открытия оверлея — единый контракт `v-model:open`\n * панельных компонентов (Popover, Select, TreeSelect, Autocomplete, Dropdown).\n *\n * Uncontrolled-состояние; в controlled-режиме перекрывается пропом `open`.\n * Без пропа `v-model` был бы обязателен, а поповер без модели — самый частый\n * случай использования. Гарды компонента (disabled/readonly) остаются на его\n * стороне — примитив ведёт только состояние и эмит.\n */\nexport function useControlledOpen(\n controlled: () => boolean | undefined,\n onChange: (value: boolean) => void,\n): { open: ComputedRef<boolean>, setOpen: (next: boolean) => void } {\n const internalOpen = ref(false)\n const isControlled = computed(() => controlled() !== undefined)\n const open = computed(() => controlled() ?? internalOpen.value)\n\n function setOpen(next: boolean): void {\n // Сравнение — ДО мутации: в uncontrolled-режиме запись в `internalOpen`\n // немедленно меняет `open`, и проверка после неё всегда была бы ложной,\n // то есть `onChange` не вызывался бы никогда.\n if (next === open.value) return\n\n if (!isControlled.value) internalOpen.value = next\n\n onChange(next)\n }\n\n return { open, setOpen }\n}\n"],"mappings":";;;;;;;;;;;AAYA,SAAgB,kBACd,YACA,UACkE;CAClE,MAAM,eAAe,IAAI,KAAK;CAC9B,MAAM,eAAe,eAAe,WAAW,MAAM,KAAA,CAAS;CAC9D,MAAM,OAAO,eAAe,WAAW,KAAK,aAAa,KAAK;CAE9D,SAAS,QAAQ,MAAqB;EAIpC,IAAI,SAAS,KAAK,OAAO;EAEzB,IAAI,CAAC,aAAa,OAAO,aAAa,QAAQ;EAE9C,SAAS,IAAI;CACf;CAEA,OAAO;EAAE;EAAM;CAAQ;AACzB"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
//#region src/composables/internal/useFilePreviews.ts
|
|
2
|
+
/**
|
|
3
|
+
* Ключи списка и миниатюры превью. Общий на файловые компоненты пакета:
|
|
4
|
+
* `GrFileUpload` (отправка) и `GrFormFile` (поле формы) показывают один и тот
|
|
5
|
+
* же набор одинаково, и правила «что считать картинкой» у них обязаны совпадать.
|
|
6
|
+
*
|
|
7
|
+
* Ключ считается от самого файла, а не от имени: два одноимённых файла из
|
|
8
|
+
* разных папок делили бы один `<li>`, и кнопка удаления в строке снимала бы
|
|
9
|
+
* не тот файл.
|
|
10
|
+
*
|
|
11
|
+
* `object URL` живёт ровно столько, сколько файл в наборе: без отзыва blob
|
|
12
|
+
* висит в памяти вкладки до перезагрузки — утечка тем заметнее, чем чаще
|
|
13
|
+
* пользователь перевыбирает файлы.
|
|
14
|
+
*/
|
|
15
|
+
function useFilePreviews(options) {
|
|
16
|
+
const keys = /* @__PURE__ */ new WeakMap();
|
|
17
|
+
const urls = /* @__PURE__ */ new Map();
|
|
18
|
+
let counter = 0;
|
|
19
|
+
function fileKey(file) {
|
|
20
|
+
const existing = keys.get(file);
|
|
21
|
+
if (existing !== void 0) return existing;
|
|
22
|
+
counter += 1;
|
|
23
|
+
const key = `gr-file-${counter}`;
|
|
24
|
+
keys.set(file, key);
|
|
25
|
+
return key;
|
|
26
|
+
}
|
|
27
|
+
function previewUrl(file) {
|
|
28
|
+
if (!options.enabled() || !file.type.startsWith("image/")) return void 0;
|
|
29
|
+
const existing = urls.get(file);
|
|
30
|
+
if (existing) return existing;
|
|
31
|
+
if (typeof URL === "undefined" || typeof URL.createObjectURL !== "function") return void 0;
|
|
32
|
+
const url = URL.createObjectURL(file);
|
|
33
|
+
urls.set(file, url);
|
|
34
|
+
return url;
|
|
35
|
+
}
|
|
36
|
+
function revokePreview(file) {
|
|
37
|
+
const url = urls.get(file);
|
|
38
|
+
if (!url) return;
|
|
39
|
+
URL.revokeObjectURL(url);
|
|
40
|
+
urls.delete(file);
|
|
41
|
+
}
|
|
42
|
+
function revokeAllPreviews() {
|
|
43
|
+
for (const file of [...urls.keys()]) revokePreview(file);
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
fileKey,
|
|
47
|
+
previewUrl,
|
|
48
|
+
revokePreview,
|
|
49
|
+
revokeAllPreviews
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
//#endregion
|
|
53
|
+
export { useFilePreviews as t };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFilePreviews-DnwgdyBs.js","names":[],"sources":["../../src/composables/internal/useFilePreviews.ts"],"sourcesContent":["export interface UseFilePreviewsOptions {\n /** Включены ли миниатюры. Геттер — проп реактивен. */\n enabled: () => boolean\n}\n\nexport interface UseFilePreviewsReturn {\n /** Стабильный ключ файла для `v-for`. */\n fileKey: (file: File) => string\n /** `object URL` миниатюры или `undefined`, если файл не картинка. */\n previewUrl: (file: File) => string | undefined\n revokePreview: (file: File) => void\n revokeAllPreviews: () => void\n}\n\n/**\n * Ключи списка и миниатюры превью. Общий на файловые компоненты пакета:\n * `GrFileUpload` (отправка) и `GrFormFile` (поле формы) показывают один и тот\n * же набор одинаково, и правила «что считать картинкой» у них обязаны совпадать.\n *\n * Ключ считается от самого файла, а не от имени: два одноимённых файла из\n * разных папок делили бы один `<li>`, и кнопка удаления в строке снимала бы\n * не тот файл.\n *\n * `object URL` живёт ровно столько, сколько файл в наборе: без отзыва blob\n * висит в памяти вкладки до перезагрузки — утечка тем заметнее, чем чаще\n * пользователь перевыбирает файлы.\n */\nexport function useFilePreviews(options: UseFilePreviewsOptions): UseFilePreviewsReturn {\n const keys = new WeakMap<File, string>()\n const urls = new Map<File, string>()\n let counter = 0\n\n function fileKey(file: File): string {\n const existing = keys.get(file)\n if (existing !== undefined) return existing\n\n counter += 1\n const key = `gr-file-${counter}`\n keys.set(file, key)\n return key\n }\n\n function previewUrl(file: File): string | undefined {\n if (!options.enabled() || !file.type.startsWith('image/')) return undefined\n\n const existing = urls.get(file)\n if (existing) return existing\n\n if (typeof URL === 'undefined' || typeof URL.createObjectURL !== 'function') return undefined\n\n const url = URL.createObjectURL(file)\n urls.set(file, url)\n return url\n }\n\n function revokePreview(file: File): void {\n const url = urls.get(file)\n if (!url) return\n\n URL.revokeObjectURL(url)\n urls.delete(file)\n }\n\n function revokeAllPreviews(): void {\n for (const file of [...urls.keys()]) revokePreview(file)\n }\n\n return { fileKey, previewUrl, revokePreview, revokeAllPreviews }\n}\n"],"mappings":";;;;;;;;;;;;;;AA2BA,SAAgB,gBAAgB,SAAwD;CACtF,MAAM,uBAAO,IAAI,QAAsB;CACvC,MAAM,uBAAO,IAAI,IAAkB;CACnC,IAAI,UAAU;CAEd,SAAS,QAAQ,MAAoB;EACnC,MAAM,WAAW,KAAK,IAAI,IAAI;EAC9B,IAAI,aAAa,KAAA,GAAW,OAAO;EAEnC,WAAW;EACX,MAAM,MAAM,WAAW;EACvB,KAAK,IAAI,MAAM,GAAG;EAClB,OAAO;CACT;CAEA,SAAS,WAAW,MAAgC;EAClD,IAAI,CAAC,QAAQ,QAAQ,KAAK,CAAC,KAAK,KAAK,WAAW,QAAQ,GAAG,OAAO,KAAA;EAElE,MAAM,WAAW,KAAK,IAAI,IAAI;EAC9B,IAAI,UAAU,OAAO;EAErB,IAAI,OAAO,QAAQ,eAAe,OAAO,IAAI,oBAAoB,YAAY,OAAO,KAAA;EAEpF,MAAM,MAAM,IAAI,gBAAgB,IAAI;EACpC,KAAK,IAAI,MAAM,GAAG;EAClB,OAAO;CACT;CAEA,SAAS,cAAc,MAAkB;EACvC,MAAM,MAAM,KAAK,IAAI,IAAI;EACzB,IAAI,CAAC,KAAK;EAEV,IAAI,gBAAgB,GAAG;EACvB,KAAK,OAAO,IAAI;CAClB;CAEA,SAAS,oBAA0B;EACjC,KAAK,MAAM,QAAQ,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,cAAc,IAAI;CACzD;CAEA,OAAO;EAAE;EAAS;EAAY;EAAe;CAAkB;AACjE"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
//#region src/composables/internal/useFocusWithin.ts
|
|
2
|
+
/**
|
|
3
|
+
* Граница фокуса составного контрола.
|
|
4
|
+
*
|
|
5
|
+
* Нативные `focus`/`blur` не всплывают, поэтому у группы (радиогруппа,
|
|
6
|
+
* сегменты, набор чекбоксов) их не поймать на корне вовсе — всплывают только
|
|
7
|
+
* `focusin`/`focusout`. Но всплывают они и когда фокус переезжает **внутри**
|
|
8
|
+
* группы: между её пунктами, с поля на его же кнопку очистки. Для потребителя
|
|
9
|
+
* это не уход и не приход — контрол всё это время в фокусе, — а необработанный
|
|
10
|
+
* переход дал бы `blur` + `focus` на каждую стрелку клавиатуры.
|
|
11
|
+
*
|
|
12
|
+
* Поэтому событие считается состоявшимся, только если `relatedTarget` лежит вне
|
|
13
|
+
* корня. `relatedTarget: null` (клик по body, уход из окна, программный фокус)
|
|
14
|
+
* — тоже пересечение границы.
|
|
15
|
+
*/
|
|
16
|
+
function useFocusWithin(root, options) {
|
|
17
|
+
function crossedBoundary(event) {
|
|
18
|
+
const other = event.relatedTarget;
|
|
19
|
+
if (!other) return true;
|
|
20
|
+
if (root.value?.contains(other)) return false;
|
|
21
|
+
return !options.containers?.().some((node) => node?.contains(other));
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
onFocusIn(event) {
|
|
25
|
+
if (crossedBoundary(event)) options.enter?.(event);
|
|
26
|
+
},
|
|
27
|
+
onFocusOut(event) {
|
|
28
|
+
if (crossedBoundary(event)) options.leave?.(event);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
//#endregion
|
|
33
|
+
export { useFocusWithin as t };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFocusWithin-BwHE0rzm.js","names":[],"sources":["../../src/composables/internal/useFocusWithin.ts"],"sourcesContent":["import type { Ref } from 'vue'\n\nexport interface UseFocusWithinOptions {\n /** Фокус пришёл снаружи внутрь. */\n enter?: (event: FocusEvent) => void\n /** Фокус ушёл изнутри наружу. */\n leave?: (event: FocusEvent) => void\n /**\n * Узлы, которые считаются частью контрола, хотя лежат вне корня. Нужны там,\n * где панель телепортирована в `body`, а фокус в неё уходит по-настоящему:\n * без них переход в поле фильтра открытой панели выглядел бы уходом наружу.\n */\n containers?: () => (HTMLElement | null | undefined)[]\n}\n\nexport interface UseFocusWithinHandlers {\n onFocusIn: (event: FocusEvent) => void\n onFocusOut: (event: FocusEvent) => void\n}\n\n/**\n * Граница фокуса составного контрола.\n *\n * Нативные `focus`/`blur` не всплывают, поэтому у группы (радиогруппа,\n * сегменты, набор чекбоксов) их не поймать на корне вовсе — всплывают только\n * `focusin`/`focusout`. Но всплывают они и когда фокус переезжает **внутри**\n * группы: между её пунктами, с поля на его же кнопку очистки. Для потребителя\n * это не уход и не приход — контрол всё это время в фокусе, — а необработанный\n * переход дал бы `blur` + `focus` на каждую стрелку клавиатуры.\n *\n * Поэтому событие считается состоявшимся, только если `relatedTarget` лежит вне\n * корня. `relatedTarget: null` (клик по body, уход из окна, программный фокус)\n * — тоже пересечение границы.\n */\nexport function useFocusWithin(\n root: Ref<HTMLElement | null>,\n options: UseFocusWithinOptions,\n): UseFocusWithinHandlers {\n function crossedBoundary(event: FocusEvent): boolean {\n const other = event.relatedTarget as Node | null\n if (!other) return true\n\n if (root.value?.contains(other)) return false\n\n return !options.containers?.().some(node => node?.contains(other))\n }\n\n return {\n onFocusIn(event) {\n if (crossedBoundary(event)) options.enter?.(event)\n },\n onFocusOut(event) {\n if (crossedBoundary(event)) options.leave?.(event)\n },\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAkCA,SAAgB,eACd,MACA,SACwB;CACxB,SAAS,gBAAgB,OAA4B;EACnD,MAAM,QAAQ,MAAM;EACpB,IAAI,CAAC,OAAO,OAAO;EAEnB,IAAI,KAAK,OAAO,SAAS,KAAK,GAAG,OAAO;EAExC,OAAO,CAAC,QAAQ,aAAa,CAAC,CAAC,MAAK,SAAQ,MAAM,SAAS,KAAK,CAAC;CACnE;CAEA,OAAO;EACL,UAAU,OAAO;GACf,IAAI,gBAAgB,KAAK,GAAG,QAAQ,QAAQ,KAAK;EACnD;EACA,WAAW,OAAO;GAChB,IAAI,gBAAgB,KAAK,GAAG,QAAQ,QAAQ,KAAK;EACnD;CACF;AACF"}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import { c as useGrThemeAttrs } from "./context-BSYR7RZs.js";
|
|
2
|
+
import { t as usePortalTarget } from "./usePortalTarget-RyzEgNTb.js";
|
|
3
|
+
import { n as markInert, t as inertableOutside } from "./inert-DIHCCn_1.js";
|
|
4
|
+
import { t as useOverlayLayer } from "./useOverlayLayer-BupuP_hs.js";
|
|
5
|
+
import { useFocusTrap } from "../composables/useFocusTrap.js";
|
|
6
|
+
import { computed, onBeforeUnmount, onScopeDispose, ref, watch } from "vue";
|
|
7
|
+
//#region src/composables/internal/useInertOthers.ts
|
|
8
|
+
/**
|
|
9
|
+
* Пока слой активен, всё вне его ветки помечено `inert`: от корня оверлея вверх
|
|
10
|
+
* до `<body>`, на каждом уровне — соседи.
|
|
11
|
+
*
|
|
12
|
+
* Это вторая половина модальности: `z-index` перекрывает страницу глазами,
|
|
13
|
+
* `inert` — клавиатурой и скринридером.
|
|
14
|
+
*/
|
|
15
|
+
function useInertOthers(root, active) {
|
|
16
|
+
let release;
|
|
17
|
+
function apply() {
|
|
18
|
+
release?.();
|
|
19
|
+
release = markInert(inertableOutside(root.value));
|
|
20
|
+
}
|
|
21
|
+
function clear() {
|
|
22
|
+
release?.();
|
|
23
|
+
release = void 0;
|
|
24
|
+
}
|
|
25
|
+
watch(() => Boolean(active()) && Boolean(root.value), (isActive) => {
|
|
26
|
+
if (isActive) apply();
|
|
27
|
+
else clear();
|
|
28
|
+
}, {
|
|
29
|
+
immediate: true,
|
|
30
|
+
flush: "post"
|
|
31
|
+
});
|
|
32
|
+
onScopeDispose(clear);
|
|
33
|
+
}
|
|
34
|
+
//#endregion
|
|
35
|
+
//#region src/composables/internal/useOverlayPresence.ts
|
|
36
|
+
/**
|
|
37
|
+
* Присутствие оверлея в DOM отдельно от его видимости.
|
|
38
|
+
*
|
|
39
|
+
* Штатный `<Transition>` анимирует свой элемент, но не координирует соседей:
|
|
40
|
+
* убери обёртку по `v-if` — и подложка с панелью исчезнут мгновенно, без
|
|
41
|
+
* leave-анимации. Поэтому присутствие поддерева и видимость слоя — два разных
|
|
42
|
+
* флага: первый снимается только по концу leave-анимации панели.
|
|
43
|
+
*
|
|
44
|
+
* Видимость включается **в том же такте**, что и монтирование: содержимое окна
|
|
45
|
+
* обязано появляться в DOM сразу после открытия — на этом стоит и код
|
|
46
|
+
* потребителя, и внутренние компоненты, которые ищут в панели свои элементы.
|
|
47
|
+
* Enter-анимацию это не отменяет: `<Transition appear>` проигрывает её и на
|
|
48
|
+
* первом рендере ребёнка.
|
|
49
|
+
*/
|
|
50
|
+
function useOverlayPresence(open) {
|
|
51
|
+
const mounted = ref(open.value);
|
|
52
|
+
const visible = ref(open.value);
|
|
53
|
+
watch(open, (isOpen) => {
|
|
54
|
+
if (isOpen) mounted.value = true;
|
|
55
|
+
visible.value = isOpen;
|
|
56
|
+
});
|
|
57
|
+
function onPanelAfterLeave() {
|
|
58
|
+
if (!open.value) mounted.value = false;
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
mounted,
|
|
62
|
+
visible,
|
|
63
|
+
onPanelAfterLeave
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
//#endregion
|
|
67
|
+
//#region src/composables/internal/useScrollLock.ts
|
|
68
|
+
var lockCount = 0;
|
|
69
|
+
var saved = null;
|
|
70
|
+
var savedScrollY = 0;
|
|
71
|
+
var releaseTouchGuard = null;
|
|
72
|
+
/**
|
|
73
|
+
* iOS определяем по платформе, а не по ширине экрана: лечение специфично для
|
|
74
|
+
* движка, а не для размера. `maxTouchPoints` отличает iPadOS, который со времён
|
|
75
|
+
* 13-й версии представляется десктопным Mac.
|
|
76
|
+
*/
|
|
77
|
+
function isIOS() {
|
|
78
|
+
if (typeof navigator === "undefined") return false;
|
|
79
|
+
return /iP(?:hone|ad|od)/.test(navigator.platform) || navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1;
|
|
80
|
+
}
|
|
81
|
+
/** Прокручиваемая область оверлея — единственное, чему `touchmove` разрешён. */
|
|
82
|
+
function isScrollableOverlayArea(target) {
|
|
83
|
+
if (!(target instanceof Element)) return false;
|
|
84
|
+
for (let node = target; node; node = node.parentElement) {
|
|
85
|
+
if (!(node instanceof HTMLElement)) continue;
|
|
86
|
+
if (node.hasAttribute("data-gr-overlay-root")) return true;
|
|
87
|
+
}
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
function applyTouchGuard() {
|
|
91
|
+
if (!isIOS()) return;
|
|
92
|
+
const onTouchMove = (event) => {
|
|
93
|
+
if (isScrollableOverlayArea(event.target)) return;
|
|
94
|
+
if (event.cancelable) event.preventDefault();
|
|
95
|
+
};
|
|
96
|
+
document.addEventListener("touchmove", onTouchMove, { passive: false });
|
|
97
|
+
releaseTouchGuard = () => document.removeEventListener("touchmove", onTouchMove);
|
|
98
|
+
}
|
|
99
|
+
function getScrollbarWidth() {
|
|
100
|
+
return window.innerWidth - document.documentElement.clientWidth;
|
|
101
|
+
}
|
|
102
|
+
function applyLock() {
|
|
103
|
+
const body = document.body;
|
|
104
|
+
saved = {
|
|
105
|
+
overflow: body.style.overflow,
|
|
106
|
+
paddingRight: body.style.paddingRight,
|
|
107
|
+
overscrollBehavior: body.style.overscrollBehavior
|
|
108
|
+
};
|
|
109
|
+
savedScrollY = window.scrollY;
|
|
110
|
+
const scrollbarWidth = getScrollbarWidth();
|
|
111
|
+
body.style.overflow = "hidden";
|
|
112
|
+
body.style.overscrollBehavior = "contain";
|
|
113
|
+
if (scrollbarWidth > 0) {
|
|
114
|
+
const currentPadding = Number.parseFloat(getComputedStyle(body).paddingRight) || 0;
|
|
115
|
+
body.style.paddingRight = `${currentPadding + scrollbarWidth}px`;
|
|
116
|
+
}
|
|
117
|
+
applyTouchGuard();
|
|
118
|
+
}
|
|
119
|
+
function releaseLock() {
|
|
120
|
+
releaseTouchGuard?.();
|
|
121
|
+
releaseTouchGuard = null;
|
|
122
|
+
if (!saved) return;
|
|
123
|
+
document.body.style.overflow = saved.overflow;
|
|
124
|
+
document.body.style.paddingRight = saved.paddingRight;
|
|
125
|
+
document.body.style.overscrollBehavior = saved.overscrollBehavior;
|
|
126
|
+
saved = null;
|
|
127
|
+
if (isIOS() && window.scrollY !== savedScrollY) window.scrollTo(0, savedScrollY);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Возвращает пару `lock`/`unlock`, идемпотентную **в пределах одного инстанса**
|
|
131
|
+
* (повторный `lock()` без `unlock()` не увеличивает глобальный счётчик дважды).
|
|
132
|
+
* Глобальный счётчик разделяется всеми оверлеями.
|
|
133
|
+
*/
|
|
134
|
+
function useScrollLock() {
|
|
135
|
+
const isClient = typeof window !== "undefined";
|
|
136
|
+
let held = false;
|
|
137
|
+
function lock() {
|
|
138
|
+
if (!isClient || held) return;
|
|
139
|
+
held = true;
|
|
140
|
+
lockCount += 1;
|
|
141
|
+
if (lockCount === 1) applyLock();
|
|
142
|
+
}
|
|
143
|
+
function unlock() {
|
|
144
|
+
if (!isClient || !held) return;
|
|
145
|
+
held = false;
|
|
146
|
+
lockCount = Math.max(0, lockCount - 1);
|
|
147
|
+
if (lockCount === 0) releaseLock();
|
|
148
|
+
}
|
|
149
|
+
return {
|
|
150
|
+
lock,
|
|
151
|
+
unlock
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
//#endregion
|
|
155
|
+
//#region src/composables/internal/useModalOverlay.ts
|
|
156
|
+
function useModalOverlay(open, onDismiss, options) {
|
|
157
|
+
const isModal = () => typeof options.modal === "function" ? options.modal() : options.modal ?? true;
|
|
158
|
+
const rootEl = options.root ?? ref(null);
|
|
159
|
+
const isTopmost = ref(true);
|
|
160
|
+
const inertAttr = computed(() => open.value && isModal() && !isTopmost.value ? true : void 0);
|
|
161
|
+
const { target: portalTarget, enabled: teleportEnabled } = usePortalTarget(options.teleportTo);
|
|
162
|
+
const themeAttrs = useGrThemeAttrs();
|
|
163
|
+
const { mounted: isMounted, visible: isVisible, onPanelAfterLeave } = useOverlayPresence(open);
|
|
164
|
+
const layer = useOverlayLayer(open, onDismiss, {
|
|
165
|
+
modal: isModal,
|
|
166
|
+
closeOnEscape: options.closeOnEscape,
|
|
167
|
+
onTopmostChange: (value) => {
|
|
168
|
+
isTopmost.value = value;
|
|
169
|
+
},
|
|
170
|
+
root: rootEl
|
|
171
|
+
});
|
|
172
|
+
useFocusTrap(options.panel, {
|
|
173
|
+
active: () => open.value && isModal() && isTopmost.value,
|
|
174
|
+
initialFocus: options.initialFocus,
|
|
175
|
+
fallbackFocus: () => options.panel.value,
|
|
176
|
+
containers: layer.rootsAbove,
|
|
177
|
+
restoreFocus: false
|
|
178
|
+
});
|
|
179
|
+
useInertOthers(rootEl, () => open.value && isModal() && isTopmost.value);
|
|
180
|
+
const { lock, unlock } = useScrollLock();
|
|
181
|
+
watch(() => options.lockScroll?.() ?? (open.value && isModal()), (locked) => {
|
|
182
|
+
if (locked) lock();
|
|
183
|
+
else unlock();
|
|
184
|
+
}, { immediate: true });
|
|
185
|
+
onBeforeUnmount(unlock);
|
|
186
|
+
let pointerDownOnBackdrop = false;
|
|
187
|
+
return {
|
|
188
|
+
rootEl,
|
|
189
|
+
isMounted,
|
|
190
|
+
isVisible,
|
|
191
|
+
isTopmost,
|
|
192
|
+
inertAttr,
|
|
193
|
+
portalTarget,
|
|
194
|
+
teleportEnabled,
|
|
195
|
+
themeAttrs,
|
|
196
|
+
onPanelAfterLeave,
|
|
197
|
+
backdrop: {
|
|
198
|
+
mousedown(event) {
|
|
199
|
+
pointerDownOnBackdrop = event.target === event.currentTarget;
|
|
200
|
+
},
|
|
201
|
+
click(event) {
|
|
202
|
+
const startedHere = pointerDownOnBackdrop;
|
|
203
|
+
pointerDownOnBackdrop = false;
|
|
204
|
+
if (!startedHere || event.target !== event.currentTarget) return;
|
|
205
|
+
if (options.closeOnBackdrop?.() === false) return;
|
|
206
|
+
onDismiss();
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
//#endregion
|
|
212
|
+
export { useModalOverlay as t };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useModalOverlay-DCM4d3yA.js","names":[],"sources":["../../src/composables/internal/useInertOthers.ts","../../src/composables/internal/useOverlayPresence.ts","../../src/composables/internal/useScrollLock.ts","../../src/composables/internal/useModalOverlay.ts"],"sourcesContent":["import type { Ref } from 'vue'\nimport { onScopeDispose, watch } from 'vue'\n\nimport { inertableOutside, markInert } from './inert'\n\n/**\n * Пока слой активен, всё вне его ветки помечено `inert`: от корня оверлея вверх\n * до `<body>`, на каждом уровне — соседи.\n *\n * Это вторая половина модальности: `z-index` перекрывает страницу глазами,\n * `inert` — клавиатурой и скринридером.\n */\nexport function useInertOthers(root: Ref<HTMLElement | null>, active: () => boolean): void {\n let release: (() => void) | undefined\n\n function apply(): void {\n release?.()\n release = markInert(inertableOutside(root.value))\n }\n\n function clear(): void {\n release?.()\n release = undefined\n }\n\n watch(\n () => Boolean(active()) && Boolean(root.value),\n (isActive) => {\n if (isActive) apply()\n else clear()\n },\n { immediate: true, flush: 'post' },\n )\n\n onScopeDispose(clear)\n}\n","import type { Ref } from 'vue'\nimport { ref, watch } from 'vue'\n\nexport interface OverlayPresence {\n /** Смонтировано ли поддерево слоя: держится до конца leave-анимации. */\n mounted: Ref<boolean>\n /** Показан ли слой: этим переключаются `<Transition>` внутри. */\n visible: Ref<boolean>\n /** Вызывается из `@after-leave` панели. */\n onPanelAfterLeave: () => void\n}\n\n/**\n * Присутствие оверлея в DOM отдельно от его видимости.\n *\n * Штатный `<Transition>` анимирует свой элемент, но не координирует соседей:\n * убери обёртку по `v-if` — и подложка с панелью исчезнут мгновенно, без\n * leave-анимации. Поэтому присутствие поддерева и видимость слоя — два разных\n * флага: первый снимается только по концу leave-анимации панели.\n *\n * Видимость включается **в том же такте**, что и монтирование: содержимое окна\n * обязано появляться в DOM сразу после открытия — на этом стоит и код\n * потребителя, и внутренние компоненты, которые ищут в панели свои элементы.\n * Enter-анимацию это не отменяет: `<Transition appear>` проигрывает её и на\n * первом рендере ребёнка.\n */\nexport function useOverlayPresence(open: Ref<boolean>): OverlayPresence {\n const mounted = ref(open.value)\n const visible = ref(open.value)\n\n watch(open, (isOpen) => {\n if (isOpen) mounted.value = true\n visible.value = isOpen\n })\n\n function onPanelAfterLeave(): void {\n // Пока панель уезжала, слой могли открыть заново — тогда размонтировать\n // нечего и незачем.\n if (!open.value) mounted.value = false\n }\n\n return { mounted, visible, onPanelAfterLeave }\n}\n","/**\n * useScrollLock — общий **reference-counted** lock скролла `<body>` для оверлеев\n * (GrModal, GrDrawer, GrImageViewer).\n *\n * Зачем счётчик: состояние `<body>` принадлежит не оверлею, а их совокупности.\n * Держи каждый свой `savedBodyOverflow`, и закрытие A при ещё открытой B вернуло\n * бы странице прокрутку под открытым окном — закрывают не всегда в порядке\n * открытия. Поэтому состояние сохраняется один раз (переход счётчика 0→1) и\n * восстанавливается только когда закрыт последний оверлей (1→0).\n *\n * Плюс компенсация ширины скроллбара: при `overflow: hidden` скроллбар исчезает и\n * контент дёргается вправо — добавляем `padding-right` на его ширину.\n *\n * Отдельная ветка — iOS Safari: там `overflow: hidden` фон не держит, страница\n * продолжает «резинить» под открытым окном. Лечится тем же, чем лечил\n * HeadlessUI (`handleIOSLocking`): гасим `touchmove` вне скроллящихся областей\n * оверлея и возвращаем позицию прокрутки после снятия лока.\n */\n\ninterface SavedBodyStyle {\n overflow: string\n paddingRight: string\n overscrollBehavior: string\n}\n\nlet lockCount = 0\nlet saved: SavedBodyStyle | null = null\nlet savedScrollY = 0\nlet releaseTouchGuard: (() => void) | null = null\n\n/**\n * iOS определяем по платформе, а не по ширине экрана: лечение специфично для\n * движка, а не для размера. `maxTouchPoints` отличает iPadOS, который со времён\n * 13-й версии представляется десктопным Mac.\n */\nfunction isIOS(): boolean {\n if (typeof navigator === 'undefined') return false\n return /iP(?:hone|ad|od)/.test(navigator.platform)\n || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)\n}\n\n/** Прокручиваемая область оверлея — единственное, чему `touchmove` разрешён. */\nfunction isScrollableOverlayArea(target: EventTarget | null): boolean {\n if (!(target instanceof Element)) return false\n\n for (let node: Element | null = target; node; node = node.parentElement) {\n if (!(node instanceof HTMLElement)) continue\n if (node.hasAttribute('data-gr-overlay-root')) return true\n }\n\n return false\n}\n\nfunction applyTouchGuard(): void {\n if (!isIOS()) return\n\n const onTouchMove = (event: TouchEvent): void => {\n // Внутри оверлея скролл законен (длинное окно, лента изображений), а всё\n // остальное — это и есть фон, который лок обязан держать.\n if (isScrollableOverlayArea(event.target)) return\n if (event.cancelable) event.preventDefault()\n }\n\n document.addEventListener('touchmove', onTouchMove, { passive: false })\n releaseTouchGuard = () => document.removeEventListener('touchmove', onTouchMove)\n}\n\nfunction getScrollbarWidth(): number {\n return window.innerWidth - document.documentElement.clientWidth\n}\n\nfunction applyLock(): void {\n const body = document.body\n saved = {\n overflow: body.style.overflow,\n paddingRight: body.style.paddingRight,\n overscrollBehavior: body.style.overscrollBehavior,\n }\n savedScrollY = window.scrollY\n\n // Ширину скроллбара считаем ДО `overflow: hidden` (после — `clientWidth` меняется).\n const scrollbarWidth = getScrollbarWidth()\n\n body.style.overflow = 'hidden'\n // Прокрутка, «доехавшая» до края внутри окна, не должна продолжаться фоном.\n body.style.overscrollBehavior = 'contain'\n if (scrollbarWidth > 0) {\n const currentPadding = Number.parseFloat(getComputedStyle(body).paddingRight) || 0\n body.style.paddingRight = `${currentPadding + scrollbarWidth}px`\n }\n\n applyTouchGuard()\n}\n\nfunction releaseLock(): void {\n releaseTouchGuard?.()\n releaseTouchGuard = null\n\n if (!saved) return\n document.body.style.overflow = saved.overflow\n document.body.style.paddingRight = saved.paddingRight\n document.body.style.overscrollBehavior = saved.overscrollBehavior\n saved = null\n\n // iOS сдвигает страницу, пока фон заблокирован; возвращаем её на место.\n if (isIOS() && window.scrollY !== savedScrollY) window.scrollTo(0, savedScrollY)\n}\n\n/**\n * Возвращает пару `lock`/`unlock`, идемпотентную **в пределах одного инстанса**\n * (повторный `lock()` без `unlock()` не увеличивает глобальный счётчик дважды).\n * Глобальный счётчик разделяется всеми оверлеями.\n */\nexport function useScrollLock() {\n const isClient = typeof window !== 'undefined'\n let held = false\n\n function lock(): void {\n if (!isClient || held) return\n held = true\n lockCount += 1\n if (lockCount === 1) applyLock()\n }\n\n function unlock(): void {\n if (!isClient || !held) return\n held = false\n lockCount = Math.max(0, lockCount - 1)\n if (lockCount === 0) releaseLock()\n }\n\n return { lock, unlock }\n}\n\n/** Тестовая/служебная очистка глобального состояния. */\nexport function resetScrollLock(): void {\n lockCount = 0\n if (typeof document !== 'undefined') releaseLock()\n saved = null\n}\n","import type { ComputedRef, Ref } from 'vue'\nimport { computed, onBeforeUnmount, ref, watch } from 'vue'\n\nimport { useGrThemeAttrs } from '../../components/GrConfigProvider/context'\nimport { useFocusTrap } from '../useFocusTrap'\nimport { useOverlayLayer } from '../useOverlayLayer'\nimport { usePortalTarget } from '../usePortalTarget'\nimport { useInertOthers } from './useInertOthers'\nimport { useOverlayPresence } from './useOverlayPresence'\nimport { useScrollLock } from './useScrollLock'\n\n/**\n * Модальный слой целиком: одна сборка на весь пакет.\n *\n * Модальность собиралась вручную в трёх компонентах (`GrModal`, `GrDrawer`,\n * `GrImageViewer`) из шести примитивов, и сборка повторялась дословно. Дело не\n * в объёме: в этой проводке сидят инварианты, каждый из которых при пропуске\n * даёт тихий баг доступности, а не заметную поломку. Здесь они собраны в одном\n * месте — забыть часть модального слоя больше нельзя.\n *\n * Что именно неочевидно:\n *\n * - **`restoreFocus: false` у ловушки.** Возврат фокуса принадлежит стеку\n * слоёв: у него правило строже — вернуть, только если на момент закрытия\n * фокус ещё был внутри слоя. Две системы возврата подрались бы за фокус.\n * - **`containers: layer.rootsAbove`.** Панель селекта, открытого ВНУТРИ окна,\n * телепортирована в `body` и лежит вне поддерева панели. Без этого списка\n * ловушка считала бы её «снаружи» и отбирала фокус.\n * - **Ловушка и `inert` работают, только пока слой верхний.** Иначе нижнее\n * окно ворует фокус у открытого поверх него, а `inert` гасит собственную\n * панель вместе со страницей.\n * - **Клик по подложке считается только тот, что на ней и начался.** Иначе\n * выделение текста мышью или перетаскивание, отпущенное за пределами панели,\n * закрывает слой.\n *\n * Чего композабл НЕ делает: не рисует разметку. Корневой `div`, подложка и\n * панель у трёх компонентов различаются по существу (обёртки скролла у окна,\n * сквозные клики у немодальной панели, слои хрома у просмотрщика), а классами\n * общий модуль владеть не вправе — пресет гранулярности подмешивает safelist\n * только по директориям выбранных компонентов.\n */\nexport interface UseModalOverlayOptions {\n /**\n * Модальный ли слой: блокирует страницу, держит фокус, гасит нижние окна.\n * Геттером — там, где модальность включается пропом (`GrDrawer`).\n */\n modal?: boolean | (() => boolean)\n /** Закрывать ли по Esc. Геттер — проп компонента реактивен. */\n closeOnEscape?: () => boolean\n /** Закрывать ли по клику в подложку; читается обработчиками `backdrop`. */\n closeOnBackdrop?: () => boolean\n /** Панель слоя: контейнер ловушки фокуса и её запасной приёмник. */\n panel: Ref<HTMLElement | null>\n /**\n * Свой корень слоя. У якорного оверлея (`GrPopover`) корень и панель — один\n * элемент: в портал уезжает сама панель, отдельной обёртки нет. Не задан —\n * композабл заводит корень сам, как у центрированных окон.\n */\n root?: Ref<HTMLElement | null>\n /**\n * Точечное переопределение точки монтирования (проп `teleportTo`). По\n * умолчанию — общий портал оверлеев.\n */\n teleportTo?: () => string | HTMLElement | undefined\n /**\n * Кому отдать фокус при открытии. Не задан — первому фокусируемому внутри\n * панели (правило `useFocusTrap`): просмотрщику нужна именно кнопка тулбара,\n * а окну — сама панель, и оно передаёт её явно.\n */\n initialFocus?: () => HTMLElement | null | undefined\n /**\n * Блокировать ли скролл страницы. По умолчанию — пока слой открыт и модален:\n * немодальная панель существует ровно ради работы со страницей под ней.\n */\n lockScroll?: () => boolean\n}\n\nexport interface ModalOverlay {\n /** Корень слоя: цель `ref` в шаблоне, хозяин `inert` и корень для стека слоёв. */\n rootEl: Ref<HTMLElement | null>\n /** Смонтировано ли поддерево: держится до конца leave-анимации панели. */\n isMounted: Ref<boolean>\n /** Показан ли слой: этим переключаются `<Transition>` внутри. */\n isVisible: Ref<boolean>\n /** Верхний ли это слой сейчас. */\n isTopmost: Ref<boolean>\n /** Значение атрибута `inert` для корня: слой перестал быть верхним. */\n inertAttr: ComputedRef<true | undefined>\n portalTarget: ComputedRef<string | HTMLElement>\n teleportEnabled: ComputedRef<boolean>\n /** `data-theme` на телепортированный корень: в DOM он вне обёртки провайдера. */\n themeAttrs: ComputedRef<{ 'data-theme'?: string }>\n /** Для `@after-leave` панели. Компонент оборачивает, если ему нужен эмит `closed`. */\n onPanelAfterLeave: () => void\n /**\n * Обработчики подложки вместе с guard'ом «клик начался на ней». Имена — под\n * `v-on=\"backdrop\"`: объектный синтаксис ждёт имена событий, а не пропов.\n */\n backdrop: {\n mousedown: (event: MouseEvent) => void\n click: (event: MouseEvent) => void\n }\n}\n\nexport function useModalOverlay(\n open: Ref<boolean>,\n onDismiss: () => void,\n options: UseModalOverlayOptions,\n): ModalOverlay {\n const isModal = (): boolean =>\n typeof options.modal === 'function' ? options.modal() : options.modal ?? true\n\n const rootEl = options.root ?? ref<HTMLElement | null>(null)\n const isTopmost = ref(true)\n\n const inertAttr = computed(() => (open.value && isModal() && !isTopmost.value ? true : undefined))\n\n // Телепорт включается только ПОСЛЕ монтирования: иначе первый клиентский\n // рендер не совпадёт с серверным и сломается гидрация.\n const { target: portalTarget, enabled: teleportEnabled } = usePortalTarget(options.teleportTo)\n\n // Панель уезжает в `body`, то есть вне обёртки провайдера, и `data-theme` с\n // неё не наследуется. В дереве компонентов слой остаётся внутри — `inject`\n // доходит, и тему он ставит себе сам.\n const themeAttrs = useGrThemeAttrs()\n\n const { mounted: isMounted, visible: isVisible, onPanelAfterLeave } = useOverlayPresence(open)\n\n const layer = useOverlayLayer(open, onDismiss, {\n modal: isModal,\n closeOnEscape: options.closeOnEscape,\n onTopmostChange: (value) => { isTopmost.value = value },\n root: rootEl,\n })\n\n useFocusTrap(options.panel, {\n active: () => open.value && isModal() && isTopmost.value,\n initialFocus: options.initialFocus,\n fallbackFocus: () => options.panel.value,\n containers: layer.rootsAbove,\n restoreFocus: false,\n })\n\n useInertOthers(rootEl, () => open.value && isModal() && isTopmost.value)\n\n // Общий reference-counted lock: несколько открытых оверлеев снимают блокировку\n // независимо от порядка закрытия, ширина скроллбара компенсируется.\n const { lock, unlock } = useScrollLock()\n\n watch(\n () => options.lockScroll?.() ?? (open.value && isModal()),\n (locked) => {\n if (locked) lock()\n else unlock()\n },\n { immediate: true },\n )\n\n onBeforeUnmount(unlock)\n\n let pointerDownOnBackdrop = false\n\n return {\n rootEl,\n isMounted,\n isVisible,\n isTopmost,\n inertAttr,\n portalTarget,\n teleportEnabled,\n themeAttrs,\n onPanelAfterLeave,\n backdrop: {\n mousedown(event: MouseEvent): void {\n pointerDownOnBackdrop = event.target === event.currentTarget\n },\n click(event: MouseEvent): void {\n const startedHere = pointerDownOnBackdrop\n pointerDownOnBackdrop = false\n\n if (!startedHere || event.target !== event.currentTarget) return\n if (options.closeOnBackdrop?.() === false) return\n\n onDismiss()\n },\n },\n }\n}\n"],"mappings":"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"}
|