@feugene/granularity 0.16.0 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/chevron-left-D8AUBAM7.js +23 -0
- package/dist/chunks/chevron-left-D8AUBAM7.js.map +1 -0
- package/dist/chunks/{chevron-right-BfqMVpbB.js → chevron-right-C6Z01h0X.js} +1 -22
- package/dist/chunks/chevron-right-C6Z01h0X.js.map +1 -0
- package/dist/chunks/config-8Pcutu1j2.js.map +1 -0
- package/dist/chunks/{config-K0C2tcLB.js → config-9PYRZlKE.js} +1 -1
- package/dist/chunks/{config-K0C2tcLB.js.map → config-9PYRZlKE.js.map} +1 -1
- package/dist/chunks/{config-Zc_bUvZY2.js → config-BDfTXHo12.js} +1 -1
- package/dist/chunks/{config-Zc_bUvZY2.js.map → config-BDfTXHo12.js.map} +1 -1
- package/dist/chunks/config-BE6n20np2.js.map +1 -0
- package/dist/chunks/config-BJ7Bv_G2.js +148 -0
- package/dist/chunks/config-BJ7Bv_G2.js.map +1 -0
- package/dist/chunks/config-BKvX0q102.js.map +1 -0
- package/dist/chunks/{config-CpwwkFBO.js → config-Baj7Wvx-.js} +1 -1
- package/dist/chunks/{config-CpwwkFBO.js.map → config-Baj7Wvx-.js.map} +1 -1
- package/dist/chunks/{config-D8tSR2uS.js → config-Be9k9bOf.js} +2 -8
- package/dist/chunks/config-Be9k9bOf.js.map +1 -0
- package/dist/chunks/config-BoNR7_PD2.js.map +1 -0
- package/dist/chunks/{config-DxCTVBfx.js → config-BsPDQ0dS.js} +2 -2
- package/dist/chunks/config-BsPDQ0dS.js.map +1 -0
- package/dist/chunks/{config-DpqOnJiz2.js → config-CDat1wXf2.js} +1 -1
- package/dist/chunks/config-CDat1wXf2.js.map +1 -0
- package/dist/chunks/config-CN2ULSQL.js.map +1 -0
- package/dist/chunks/{config-Cw6TDzWv2.js → config-COpuWGr_.js} +1 -1
- package/dist/chunks/config-COpuWGr_.js.map +1 -0
- package/dist/chunks/config-CY0_6cMi2.js.map +1 -0
- package/dist/chunks/{config-B-g6lT19.js → config-DA6SnEoy.js} +5 -2
- package/dist/chunks/config-DA6SnEoy.js.map +1 -0
- package/dist/chunks/config-DAX8Deh1.js +68 -0
- package/dist/chunks/config-DAX8Deh1.js.map +1 -0
- package/dist/chunks/config-DKdlqXiY.js.map +1 -1
- package/dist/chunks/{config-CvC0sX8p.js → config-MRvhUl-O.js} +1 -1
- package/dist/chunks/{config-CvC0sX8p.js.map → config-MRvhUl-O.js.map} +1 -1
- package/dist/chunks/config-Rw9OyW702.js.map +1 -0
- package/dist/chunks/config-ScuvHw6k2.js +42 -0
- package/dist/chunks/config-ScuvHw6k2.js.map +1 -0
- package/dist/chunks/config-T3qdQBgU2.js.map +1 -0
- package/dist/chunks/config-eXB87DOi.js.map +1 -0
- package/dist/chunks/context-BSYR7RZs.js.map +1 -1
- package/dist/chunks/{en-B3xMeswz.js → en-COdzxgAX.js} +30 -5
- package/dist/chunks/en-COdzxgAX.js.map +1 -0
- package/dist/chunks/{es-CA-mkU--.js → es-ClqJ-4hr.js} +30 -5
- package/dist/chunks/es-ClqJ-4hr.js.map +1 -0
- package/dist/chunks/{es-Bv8vvqdT.js → es-DGMHwknJ.js} +3 -3
- package/dist/chunks/{es-Bv8vvqdT.js.map → es-DGMHwknJ.js.map} +1 -1
- package/dist/chunks/generated-BRkbhyxk.js +3270 -0
- package/dist/chunks/generated-BRkbhyxk.js.map +1 -0
- package/dist/chunks/grKbdStyles-CeZhGQHr.js +43 -0
- package/dist/chunks/grKbdStyles-CeZhGQHr.js.map +1 -0
- package/dist/chunks/{grTextareaStyles-CWI2SqC8.js → grTextareaStyles-iOcHuVMM.js} +2 -2
- package/dist/chunks/{grTextareaStyles-CWI2SqC8.js.map → grTextareaStyles-iOcHuVMM.js.map} +1 -1
- package/dist/chunks/{granular-provider-CtrXGa7c.js → granular-provider-C6uAujdJ.js} +23 -21
- package/dist/chunks/granular-provider-C6uAujdJ.js.map +1 -0
- package/dist/chunks/grip-vertical-lRha2S7q.js +16 -0
- package/dist/chunks/grip-vertical-lRha2S7q.js.map +1 -0
- package/dist/chunks/icon-Dag2tIMs.js +21 -0
- package/dist/chunks/icon-Dag2tIMs.js.map +1 -0
- package/dist/chunks/{keyboard-zYvvyHd4.js → keyboard-DE2yhz_b.js} +10 -1
- package/dist/chunks/keyboard-DE2yhz_b.js.map +1 -0
- package/dist/chunks/{optionFilter-BVY988pC.js → optionFilter-DYw9XPPx.js} +1 -71
- package/dist/chunks/optionFilter-DYw9XPPx.js.map +1 -0
- package/dist/chunks/{useOverlayLayer-BupuP_hs.js → overlayStack-C8cfsqXa.js} +11 -61
- package/dist/chunks/overlayStack-C8cfsqXa.js.map +1 -0
- package/dist/chunks/{portalRoot-CWD4zHBm.js → portalRoot-CVhCgdG6.js} +10 -1
- package/dist/chunks/{portalRoot-CWD4zHBm.js.map → portalRoot-CVhCgdG6.js.map} +1 -1
- package/dist/chunks/{ru-COWxgh2A.js → ru-9z8ix45c.js} +30 -5
- package/dist/chunks/ru-9z8ix45c.js.map +1 -0
- package/dist/chunks/useDragSort-0l47h4yb.js +265 -0
- package/dist/chunks/useDragSort-0l47h4yb.js.map +1 -0
- package/dist/chunks/{useModalOverlay-DCM4d3yA.js → useModalOverlay-DrQVYwwA.js} +2 -2
- package/dist/chunks/{useModalOverlay-DCM4d3yA.js.map → useModalOverlay-DrQVYwwA.js.map} +1 -1
- package/dist/chunks/{usePortalTarget-RyzEgNTb.js → usePortalTarget-Cn-Wiz5d.js} +1 -1
- package/dist/chunks/{usePortalTarget-RyzEgNTb.js.map → usePortalTarget-Cn-Wiz5d.js.map} +1 -1
- package/dist/components/GrAutocomplete/chunks/{GrAutocomplete-CQ9T7Lly.js → GrAutocomplete-gY4Xopza.js} +35 -26
- package/dist/components/GrAutocomplete/chunks/GrAutocomplete-gY4Xopza.js.map +1 -0
- package/dist/components/GrAutocomplete/index.js +1 -1
- package/dist/components/GrAutocomplete/styles.css +1 -1
- package/dist/components/GrBreadcrumbs/chunks/{GrBreadcrumbs-BCNGDS6k.js → GrBreadcrumbs-DS_-PBVt.js} +8 -7
- package/dist/components/GrBreadcrumbs/chunks/GrBreadcrumbs-DS_-PBVt.js.map +1 -0
- package/dist/components/GrBreadcrumbs/index.js +1 -1
- package/dist/components/GrCollapse/chunks/{GrCollapse-B2Fc6A9r.js.map → GrCollapse-Kk0DE8tb.js.map} +1 -1
- package/dist/components/GrCollapse/index.js +1 -1
- package/dist/components/GrColorPicker/chunks/{GrColorPicker-bnYBRGk8.js → GrColorPicker-CkBTzkqn.js} +4 -4
- package/dist/components/GrColorPicker/chunks/{GrColorPicker-bnYBRGk8.js.map → GrColorPicker-CkBTzkqn.js.map} +1 -1
- package/dist/components/GrColorPicker/index.js +2 -2
- package/dist/components/GrCommandPalette/chunks/{GrCommandPalette-MWDYDPNC.js → GrCommandPalette-BugTlGdj.js} +41 -16
- package/dist/components/GrCommandPalette/chunks/GrCommandPalette-BugTlGdj.js.map +1 -0
- package/dist/components/GrCommandPalette/index.js +2 -2
- package/dist/components/GrCommandPalette/styles.css +1 -1
- package/dist/components/GrConfigProvider/index.js +2 -2
- package/dist/components/GrConfirmDialog/chunks/{GrConfirmDialog-DaQmlp1_.js → GrConfirmDialog-Ds5T0GiR.js} +1 -1
- package/dist/components/GrConfirmDialog/chunks/{GrConfirmDialog-DaQmlp1_.js.map → GrConfirmDialog-Ds5T0GiR.js.map} +1 -1
- package/dist/components/GrConfirmDialog/index.js +1 -1
- package/dist/components/GrDataTable/chunks/{GrDataTable-DVFho9Cj.js → GrDataTable-CYe2A2WA.js} +498 -48
- package/dist/components/GrDataTable/chunks/GrDataTable-CYe2A2WA.js.map +1 -0
- package/dist/components/GrDataTable/index.js +2 -2
- package/dist/components/GrDialog/chunks/{GrDialog-AE1gIZuz.js → GrDialog-C3tYaA8v.js} +1 -1
- package/dist/components/GrDialog/chunks/{GrDialog-AE1gIZuz.js.map → GrDialog-C3tYaA8v.js.map} +1 -1
- package/dist/components/GrDialog/index.js +1 -1
- package/dist/components/GrDialogService/chunks/{GrDialogService-B4DYWDkA.js → GrDialogService-CTBiiJDI.js} +3 -3
- package/dist/components/GrDialogService/chunks/{GrDialogService-B4DYWDkA.js.map → GrDialogService-CTBiiJDI.js.map} +1 -1
- package/dist/components/GrDialogService/index.js +1 -1
- package/dist/components/GrDivider/chunks/{GrDivider-B2Xwc_QO.js → GrDivider-xxq1_fIl.js} +1 -1
- package/dist/components/GrDivider/chunks/{GrDivider-B2Xwc_QO.js.map → GrDivider-xxq1_fIl.js.map} +1 -1
- package/dist/components/GrDivider/index.js +2 -2
- package/dist/components/GrDrawer/chunks/{GrDrawer-DQwi6aRw.js → GrDrawer-BSSuiNHU.js} +1 -1
- package/dist/components/GrDrawer/chunks/{GrDrawer-DQwi6aRw.js.map → GrDrawer-BSSuiNHU.js.map} +1 -1
- package/dist/components/GrDrawer/index.js +1 -1
- package/dist/components/GrDropdown/chunks/{GrDropdown-BLng6V1m.js → GrDropdown-Bh6UK2M5.js} +3 -3
- package/dist/components/GrDropdown/chunks/{GrDropdown-BLng6V1m.js.map → GrDropdown-Bh6UK2M5.js.map} +1 -1
- package/dist/components/GrDropdown/index.js +1 -1
- package/dist/components/GrDropdownMenu/chunks/{GrDropdownMenu-BImk2Vs7.js → GrDropdownMenu-LyfEFUbg.js} +2 -2
- package/dist/components/GrDropdownMenu/chunks/{GrDropdownMenu-BImk2Vs7.js.map → GrDropdownMenu-LyfEFUbg.js.map} +1 -1
- package/dist/components/GrDropdownMenu/index.js +2 -2
- package/dist/components/GrFileUpload/chunks/{GrFileUpload-D0B-BEsd.js → GrFileUpload-DuDzC43S.js} +2 -2
- package/dist/components/GrFileUpload/chunks/{GrFileUpload-D0B-BEsd.js.map → GrFileUpload-DuDzC43S.js.map} +1 -1
- package/dist/components/GrFileUpload/index.js +1 -1
- package/dist/components/GrImageViewer/chunks/{GrImageViewer-BeCnE8XQ.js → GrImageViewer-DfD4euH5.js} +48 -23
- package/dist/components/GrImageViewer/chunks/GrImageViewer-DfD4euH5.js.map +1 -0
- package/dist/components/GrImageViewer/index.js +1 -1
- package/dist/components/GrInput/chunks/{GrInput-DD2gYdqS.js → GrInput-2wd7Crs0.js} +1 -1
- package/dist/components/GrInput/chunks/GrInput-2wd7Crs0.js.map +1 -0
- package/dist/components/GrInput/index.js +1 -1
- package/dist/components/GrInputTag/chunks/{GrInputTag-DmNunixz.js → GrInputTag-CyV2eY7Z.js} +20 -33
- package/dist/components/GrInputTag/chunks/GrInputTag-CyV2eY7Z.js.map +1 -0
- package/dist/components/GrInputTag/index.js +1 -1
- package/dist/components/GrKbd/chunks/{GrKbd-DRFPvW3G.js → GrKbd-DU2lBkRV.js} +218 -52
- package/dist/components/GrKbd/chunks/GrKbd-DU2lBkRV.js.map +1 -0
- package/dist/components/GrKbd/index.js +3 -3
- package/dist/components/GrModal/chunks/{GrModal-B8I78T0N.js → GrModal-CbMMr6W1.js} +1 -1
- package/dist/components/GrModal/chunks/{GrModal-B8I78T0N.js.map → GrModal-CbMMr6W1.js.map} +1 -1
- package/dist/components/GrModal/index.js +1 -1
- package/dist/components/GrNumberInput/chunks/{GrNumberInput-CZOyPz4J.js → GrNumberInput-B5CHZDBj.js} +2 -1
- package/dist/components/GrNumberInput/chunks/{GrNumberInput-CZOyPz4J.js.map → GrNumberInput-B5CHZDBj.js.map} +1 -1
- package/dist/components/GrNumberInput/index.js +1 -1
- package/dist/components/GrPagination/chunks/{GrPagination-B6N0QZBf.js → GrPagination-BM4FrD6Q.js} +4 -4
- package/dist/components/GrPagination/chunks/GrPagination-BM4FrD6Q.js.map +1 -0
- package/dist/components/GrPagination/index.js +1 -1
- package/dist/components/GrPopover/chunks/{GrPopover-B1eRCOoO.js → GrPopover-DMH4Jjst.js} +1 -1
- package/dist/components/GrPopover/chunks/{GrPopover-B1eRCOoO.js.map → GrPopover-DMH4Jjst.js.map} +1 -1
- package/dist/components/GrPopover/index.js +1 -1
- package/dist/components/GrProgressBar/chunks/{GrProgressBar-BiHnaitu.js → GrProgressBar-xwbNM9QB.js} +1 -1
- package/dist/components/GrProgressBar/chunks/GrProgressBar-xwbNM9QB.js.map +1 -0
- package/dist/components/GrProgressBar/index.js +1 -1
- package/dist/components/GrProgressCircle/chunks/{GrProgressCircle-CTogjcHz.js → GrProgressCircle-B8olXRo5.js} +1 -1
- package/dist/components/GrProgressCircle/chunks/{GrProgressCircle-CTogjcHz.js.map → GrProgressCircle-B8olXRo5.js.map} +1 -1
- package/dist/components/GrProgressCircle/index.js +2 -2
- package/dist/components/GrPromptDialog/chunks/{GrPromptDialog-Ct174NVD.js → GrPromptDialog-Pwr9NPxK.js} +3 -3
- package/dist/components/GrPromptDialog/chunks/{GrPromptDialog-Ct174NVD.js.map → GrPromptDialog-Pwr9NPxK.js.map} +1 -1
- package/dist/components/GrPromptDialog/index.js +1 -1
- package/dist/components/GrRadio/chunks/{GrRadio-DksDro_U.js → GrRadio-DWiRaMzt.js} +8 -32
- package/dist/components/GrRadio/chunks/GrRadio-DWiRaMzt.js.map +1 -0
- package/dist/components/GrRadio/index.js +1 -1
- package/dist/components/GrRadioGroup/chunks/{GrRadioGroup-BOIhejE6.js → GrRadioGroup-DIuBw0wk.js} +34 -27
- package/dist/components/GrRadioGroup/chunks/GrRadioGroup-DIuBw0wk.js.map +1 -0
- package/dist/components/GrRadioGroup/index.js +1 -1
- package/dist/components/GrRating/chunks/{GrRating-JrHXz0Rv.js → GrRating-DVFH3lYu.js} +10 -9
- package/dist/components/GrRating/chunks/GrRating-DVFH3lYu.js.map +1 -0
- package/dist/components/GrRating/index.js +2 -2
- package/dist/components/GrSegmented/chunks/{GrSegmented-BQIlH5KI.js → GrSegmented-CQw3ijqa.js} +47 -65
- package/dist/components/GrSegmented/chunks/GrSegmented-CQw3ijqa.js.map +1 -0
- package/dist/components/GrSegmented/index.js +1 -1
- package/dist/components/GrSelect/chunks/{GrSelect-aqkPCqjd.js → GrSelect-B-Voni7D.js} +69 -55
- package/dist/components/GrSelect/chunks/GrSelect-B-Voni7D.js.map +1 -0
- package/dist/components/GrSelect/index.js +1 -1
- package/dist/components/GrSelect/styles.css +1 -1
- package/dist/components/GrSidebar/chunks/{GrSidebar-DRGnnViw.js → GrSidebar-i7AxjhY_.js} +3 -2
- package/dist/components/GrSidebar/chunks/{GrSidebar-DRGnnViw.js.map → GrSidebar-i7AxjhY_.js.map} +1 -1
- package/dist/components/GrSidebar/index.js +2 -2
- package/dist/components/GrSkeleton/index.js +1 -1
- package/dist/components/GrSlider/chunks/{GrSlider-DkU9IQSX.js → GrSlider-CyhVsNKn.js} +21 -34
- package/dist/components/GrSlider/chunks/GrSlider-CyhVsNKn.js.map +1 -0
- package/dist/components/GrSlider/index.js +2 -2
- package/dist/components/GrSortableList/chunks/GrSortableList-XB7mXM1W.js +277 -0
- package/dist/components/GrSortableList/chunks/GrSortableList-XB7mXM1W.js.map +1 -0
- package/dist/components/GrSortableList/index.js +3 -0
- package/dist/components/GrSplitter/chunks/{GrSplitter-7To8jbJ8.js → GrSplitter-BzxVQwbY.js} +17 -37
- package/dist/components/GrSplitter/chunks/GrSplitter-BzxVQwbY.js.map +1 -0
- package/dist/components/GrSplitter/index.js +2 -2
- package/dist/components/GrStatistic/chunks/{GrStatistic-CttyoYPT.js → GrStatistic-DOsM6s5V.js} +54 -7
- package/dist/components/GrStatistic/chunks/GrStatistic-DOsM6s5V.js.map +1 -0
- package/dist/components/GrStatistic/index.js +2 -2
- package/dist/components/GrSwitch/chunks/{GrSwitch-B9TYbiih.js → GrSwitch-DpyvVrZG.js} +1 -1
- package/dist/components/GrSwitch/chunks/{GrSwitch-B9TYbiih.js.map → GrSwitch-DpyvVrZG.js.map} +1 -1
- package/dist/components/GrSwitch/index.js +2 -2
- package/dist/components/GrTabPanels/index.js +1 -1
- package/dist/components/GrTable/chunks/{GrTable-BB-mI_NM.js → GrTable-BfqgwETQ.js} +7 -1
- package/dist/components/GrTable/chunks/GrTable-BfqgwETQ.js.map +1 -0
- package/dist/components/GrTable/index.js +1 -1
- package/dist/components/GrTabs/chunks/{GrTabs-B8CDq2D9.js → GrTabs-f3-oQenu.js} +55 -65
- package/dist/components/GrTabs/chunks/GrTabs-f3-oQenu.js.map +1 -0
- package/dist/components/GrTabs/index.js +1 -1
- package/dist/components/GrTextarea/chunks/{GrTextarea-DUh5Tlo4.js → GrTextarea-DSvd1nSy.js} +1 -1
- package/dist/components/GrTextarea/chunks/{GrTextarea-DUh5Tlo4.js.map → GrTextarea-DSvd1nSy.js.map} +1 -1
- package/dist/components/GrTextarea/index.js +2 -2
- package/dist/components/GrTimeline/chunks/{GrTimeline-CE9b3s18.js → GrTimeline-B-h2Yanw.js} +1 -1
- package/dist/components/GrTimeline/chunks/{GrTimeline-CE9b3s18.js.map → GrTimeline-B-h2Yanw.js.map} +1 -1
- package/dist/components/GrTimeline/index.js +2 -2
- package/dist/components/GrToaster/chunks/{GrToaster-BKQy3Srm.js → GrToaster-Dqja0Lf9.js} +114 -13
- package/dist/components/GrToaster/chunks/GrToaster-Dqja0Lf9.js.map +1 -0
- package/dist/components/GrToaster/index.js +2 -2
- package/dist/components/GrToaster/styles.css +1 -1
- package/dist/components/GrTooltip/chunks/{GrTooltip-DEbejfhA.js → GrTooltip-Cn08heWz.js} +2 -2
- package/dist/components/GrTooltip/chunks/{GrTooltip-DEbejfhA.js.map → GrTooltip-Cn08heWz.js.map} +1 -1
- package/dist/components/GrTooltip/index.js +2 -2
- package/dist/components/GrTree/chunks/{GrTree-wfdbvygw.js → GrTree-BR9a2pay.js} +148 -111
- package/dist/components/GrTree/chunks/GrTree-BR9a2pay.js.map +1 -0
- package/dist/components/GrTree/index.js +2 -2
- package/dist/components/GrTree/styles.css +1 -1
- package/dist/components/GrTreeSelect/chunks/{GrTreeSelect-lLWmAMtI.js → GrTreeSelect--muUeB0v.js} +28 -14
- package/dist/components/GrTreeSelect/chunks/GrTreeSelect--muUeB0v.js.map +1 -0
- package/dist/components/GrTreeSelect/index.js +1 -1
- package/dist/composables/useAnnouncer.js +1 -1
- package/dist/composables/useComboboxNavigation.js +71 -0
- package/dist/composables/useComboboxNavigation.js.map +1 -0
- package/dist/composables/useDismissible.js +1 -1
- package/dist/composables/useDragGesture.js +55 -0
- package/dist/composables/useDragGesture.js.map +1 -0
- package/dist/composables/useDragSort.js +2 -0
- package/dist/composables/useFloating.js +22 -1
- package/dist/composables/useFloating.js.map +1 -1
- package/dist/composables/useGrComponentConfig.js +2 -0
- package/dist/composables/useGranularityTranslations.js +2 -0
- package/dist/composables/useOverlayLayer.js +64 -1
- package/dist/composables/useOverlayLayer.js.map +1 -0
- package/dist/composables/usePortalTarget.js +1 -1
- package/dist/composables/useRovingFocus.js +150 -0
- package/dist/composables/useRovingFocus.js.map +1 -0
- package/dist/directives/hotkey.js +13 -7
- package/dist/directives/hotkey.js.map +1 -1
- package/dist/directives/loading.js +1 -1
- package/dist/granular-provider-node.js +1 -1
- package/dist/granular-provider.js +1 -1
- package/dist/i18n/all.js +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/index.js +77 -68
- package/dist/styles/themes/dark.css +6 -1
- package/dist/testing.js +199 -0
- package/dist/testing.js.map +1 -0
- package/dist/theme-apply.js +33 -0
- package/dist/theme-apply.js.map +1 -0
- package/dist/theme.js +501 -0
- package/dist/theme.js.map +1 -0
- package/dist/tokens.js +1 -3131
- package/dist/types/src/components/GrAlert/defaults.d.ts +1 -1
- package/dist/types/src/components/GrAutocomplete/defaults.d.ts +1 -1
- package/dist/types/src/components/GrAvatar/defaults.d.ts +1 -1
- package/dist/types/src/components/GrBadge/defaults.d.ts +1 -1
- package/dist/types/src/components/GrBottomNav/defaults.d.ts +1 -1
- package/dist/types/src/components/GrBreadcrumbs/defaults.d.ts +1 -1
- package/dist/types/src/components/GrBreadcrumbs/grBreadcrumbsStyles.d.ts +5 -2
- package/dist/types/src/components/GrButton/defaults.d.ts +1 -1
- package/dist/types/src/components/GrCard/defaults.d.ts +1 -1
- package/dist/types/src/components/GrCheckbox/defaults.d.ts +1 -1
- package/dist/types/src/components/GrCheckboxGroup/defaults.d.ts +1 -1
- package/dist/types/src/components/GrCollapse/defaults.d.ts +1 -1
- package/dist/types/src/components/GrColorPicker/defaults.d.ts +1 -1
- package/dist/types/src/components/GrColorPicker/grColorPickerStyles.d.ts +2 -2
- package/dist/types/src/components/GrCommandPalette/GrCommandPalette.vue.d.ts +6 -6
- package/dist/types/src/components/GrCommandPalette/defaults.d.ts +1 -1
- package/dist/types/src/components/GrCommandPalette/filtering.d.ts +6 -2
- package/dist/types/src/components/GrConfigProvider/context.d.ts +6 -22
- package/dist/types/src/components/GrConfigProvider/index.d.ts +1 -1
- package/dist/types/src/components/GrConfirmDialog/defaults.d.ts +1 -1
- package/dist/types/src/components/GrDataTable/GrDataTable.vue.d.ts +53 -0
- package/dist/types/src/components/GrDataTable/defaults.d.ts +1 -1
- package/dist/types/src/components/GrDataTable/grDataTableStyles.d.ts +38 -0
- package/dist/types/src/components/GrDialog/defaults.d.ts +1 -1
- package/dist/types/src/components/GrDivider/defaults.d.ts +1 -1
- package/dist/types/src/components/GrDrawer/defaults.d.ts +1 -1
- package/dist/types/src/components/GrEmptyState/defaults.d.ts +1 -1
- package/dist/types/src/components/GrFileUpload/defaults.d.ts +1 -1
- package/dist/types/src/components/GrFormField/defaults.d.ts +1 -1
- package/dist/types/src/components/GrFormFile/defaults.d.ts +1 -1
- package/dist/types/src/components/GrFormSection/defaults.d.ts +1 -1
- package/dist/types/src/components/GrIcon/defaults.d.ts +1 -1
- package/dist/types/src/components/GrImageViewer/composables/usePointerGestures.d.ts +1 -0
- package/dist/types/src/components/GrImageViewer/composables/useZoomPan.d.ts +1 -2
- package/dist/types/src/components/GrInput/defaults.d.ts +1 -1
- package/dist/types/src/components/GrInputTag/defaults.d.ts +1 -1
- package/dist/types/src/components/GrKbd/GrKbd.vue.d.ts +18 -3
- package/dist/types/src/components/GrKbd/defaults.d.ts +1 -1
- package/dist/types/src/components/GrKbd/grKbdStyles.d.ts +20 -3
- package/dist/types/src/components/GrKbd/index.d.ts +6 -0
- package/dist/types/src/components/GrLink/defaults.d.ts +1 -1
- package/dist/types/src/components/GrModal/defaults.d.ts +1 -1
- package/dist/types/src/components/GrNumberInput/defaults.d.ts +1 -1
- package/dist/types/src/components/GrPagination/defaults.d.ts +1 -1
- package/dist/types/src/components/GrPopover/GrPopover.vue.d.ts +1 -1
- package/dist/types/src/components/GrPopover/defaults.d.ts +1 -1
- package/dist/types/src/components/GrProgressBar/defaults.d.ts +1 -1
- package/dist/types/src/components/GrProgressCircle/defaults.d.ts +1 -1
- package/dist/types/src/components/GrProgressCircle/grProgressCircleStyles.d.ts +1 -1
- package/dist/types/src/components/GrPromptDialog/defaults.d.ts +1 -1
- package/dist/types/src/components/GrRadio/defaults.d.ts +1 -1
- package/dist/types/src/components/GrRadio/grRadioGroupContext.d.ts +12 -4
- package/dist/types/src/components/GrRadioGroup/defaults.d.ts +1 -1
- package/dist/types/src/components/GrRating/GrRating.vue.d.ts +9 -4
- package/dist/types/src/components/GrRating/defaults.d.ts +1 -1
- package/dist/types/src/components/GrSegmented/defaults.d.ts +1 -1
- package/dist/types/src/components/GrSelect/defaults.d.ts +1 -1
- package/dist/types/src/components/GrSlider/defaults.d.ts +1 -1
- package/dist/types/src/components/GrSortableList/GrSortableList.vue.d.ts +68 -0
- package/dist/types/src/components/GrSortableList/config.d.ts +1 -0
- package/dist/types/src/components/GrSortableList/grSortableListStyles.d.ts +37 -0
- package/dist/types/src/components/GrSortableList/index.d.ts +9 -0
- package/dist/types/src/components/GrSortableList/safelist.d.ts +1 -0
- package/dist/types/src/components/GrSplitter/defaults.d.ts +1 -1
- package/dist/types/src/components/GrStatistic/GrStatistic.vue.d.ts +12 -9
- package/dist/types/src/components/GrStatistic/defaults.d.ts +1 -1
- package/dist/types/src/components/GrStatistic/grStatisticStyles.d.ts +1 -2
- package/dist/types/src/components/GrSwitch/defaults.d.ts +1 -1
- package/dist/types/src/components/GrTable/GrTable.vue.d.ts +13 -0
- package/dist/types/src/components/GrTable/defaults.d.ts +1 -1
- package/dist/types/src/components/GrTabs/GrTabs.vue.d.ts +6 -2
- package/dist/types/src/components/GrTabs/defaults.d.ts +1 -1
- package/dist/types/src/components/GrTextarea/defaults.d.ts +1 -1
- package/dist/types/src/components/GrTextarea/grTextareaStyles.d.ts +2 -2
- package/dist/types/src/components/GrTimeline/defaults.d.ts +1 -1
- package/dist/types/src/components/GrTimeline/grTimelineStyles.d.ts +1 -1
- package/dist/types/src/components/GrToaster/GrToaster.vue.d.ts +8 -0
- package/dist/types/src/components/GrToaster/grToasterStyles.d.ts +27 -0
- package/dist/types/src/components/GrTooltip/defaults.d.ts +1 -1
- package/dist/types/src/components/GrTree/defaults.d.ts +1 -1
- package/dist/types/src/components/GrTree/grTreeInteractionContext.d.ts +0 -1
- package/dist/types/src/components/GrTree/grTreeProps.d.ts +11 -4
- package/dist/types/src/components/GrTree/safelist.d.ts +1 -1
- package/dist/types/src/components/GrTreeSelect/defaults.d.ts +1 -1
- package/dist/types/src/components/shared/hotkey.d.ts +7 -15
- package/dist/types/src/components/shared/hotkeyTokens.d.ts +37 -0
- package/dist/types/src/components/shared/icon.d.ts +13 -0
- package/dist/types/src/composables/internal/dragSortGeometry.d.ts +59 -0
- package/dist/types/src/composables/internal/overlayStack.d.ts +11 -0
- package/dist/types/src/composables/useDragGesture.d.ts +63 -0
- package/dist/types/src/composables/useDragSort.d.ts +80 -0
- package/dist/types/src/composables/useFloating.d.ts +5 -1
- package/dist/types/src/composables/useGrComponentConfig.d.ts +41 -0
- package/dist/types/src/composables/useGranularityTranslations.d.ts +13 -0
- package/dist/types/src/composables/useRovingFocus.d.ts +108 -0
- package/dist/types/src/granular-provider/shared.d.ts +1 -0
- package/dist/types/src/i18n/messages/en.d.ts +48 -0
- package/dist/types/src/i18n/messages/es.d.ts +48 -0
- package/dist/types/src/i18n/messages/ru.d.ts +48 -0
- package/dist/types/src/index.d.ts +12 -0
- package/dist/types/src/internal/keyboard.d.ts +6 -0
- package/dist/types/src/testing/announcer.d.ts +10 -0
- package/dist/types/src/testing/context.d.ts +36 -0
- package/dist/types/src/testing/env.d.ts +25 -0
- package/dist/types/src/testing/geometry.d.ts +23 -0
- package/dist/types/src/testing/index.d.ts +12 -0
- package/dist/types/src/testing/pointer.d.ts +31 -0
- package/dist/types/src/theme/apply.d.ts +27 -0
- package/dist/types/src/theme/color.d.ts +35 -0
- package/dist/types/src/theme/extendTheme.d.ts +63 -0
- package/dist/types/src/theme/index.d.ts +22 -0
- package/dist/types/src/theme/roles.d.ts +16 -0
- package/dist/types/src/theme/tone.d.ts +32 -0
- package/dist/types/src/theme/validate.d.ts +16 -0
- package/dist/types/src/tokens/types.d.ts +8 -0
- package/dist/web-types.json +214 -13
- package/package.json +47 -4
- package/tokens/themes/dark.json +2 -1
- package/dist/chunks/chevron-right-BfqMVpbB.js.map +0 -1
- package/dist/chunks/config-8Pcutu1j.js.map +0 -1
- package/dist/chunks/config-B-g6lT19.js.map +0 -1
- package/dist/chunks/config-BE6n20np.js.map +0 -1
- package/dist/chunks/config-BKvX0q10.js.map +0 -1
- package/dist/chunks/config-BNfQwyL4.js +0 -97
- package/dist/chunks/config-BNfQwyL4.js.map +0 -1
- package/dist/chunks/config-BoNR7_PD.js.map +0 -1
- package/dist/chunks/config-CN2ULSQL2.js.map +0 -1
- package/dist/chunks/config-CY0_6cMi.js.map +0 -1
- package/dist/chunks/config-Cw6TDzWv2.js.map +0 -1
- package/dist/chunks/config-D8tSR2uS.js.map +0 -1
- package/dist/chunks/config-DpqOnJiz2.js.map +0 -1
- package/dist/chunks/config-DxCTVBfx.js.map +0 -1
- package/dist/chunks/config-LGrZIdaZ.js +0 -21
- package/dist/chunks/config-LGrZIdaZ.js.map +0 -1
- package/dist/chunks/config-Rw9OyW70.js.map +0 -1
- package/dist/chunks/config-T3qdQBgU.js.map +0 -1
- package/dist/chunks/config-eXB87DOi2.js.map +0 -1
- package/dist/chunks/en-B3xMeswz.js.map +0 -1
- package/dist/chunks/es-CA-mkU--.js.map +0 -1
- package/dist/chunks/grKbdStyles-DAoxiytu.js +0 -31
- package/dist/chunks/grKbdStyles-DAoxiytu.js.map +0 -1
- package/dist/chunks/granular-provider-CtrXGa7c.js.map +0 -1
- package/dist/chunks/keyboard-zYvvyHd4.js.map +0 -1
- package/dist/chunks/optionFilter-BVY988pC.js.map +0 -1
- package/dist/chunks/ru-COWxgh2A.js.map +0 -1
- package/dist/chunks/useOverlayLayer-BupuP_hs.js.map +0 -1
- package/dist/components/GrAutocomplete/chunks/GrAutocomplete-CQ9T7Lly.js.map +0 -1
- package/dist/components/GrBreadcrumbs/chunks/GrBreadcrumbs-BCNGDS6k.js.map +0 -1
- package/dist/components/GrCommandPalette/chunks/GrCommandPalette-MWDYDPNC.js.map +0 -1
- package/dist/components/GrDataTable/chunks/GrDataTable-DVFho9Cj.js.map +0 -1
- package/dist/components/GrImageViewer/chunks/GrImageViewer-BeCnE8XQ.js.map +0 -1
- package/dist/components/GrInput/chunks/GrInput-DD2gYdqS.js.map +0 -1
- package/dist/components/GrInputTag/chunks/GrInputTag-DmNunixz.js.map +0 -1
- package/dist/components/GrKbd/chunks/GrKbd-DRFPvW3G.js.map +0 -1
- package/dist/components/GrPagination/chunks/GrPagination-B6N0QZBf.js.map +0 -1
- package/dist/components/GrProgressBar/chunks/GrProgressBar-BiHnaitu.js.map +0 -1
- package/dist/components/GrRadio/chunks/GrRadio-DksDro_U.js.map +0 -1
- package/dist/components/GrRadioGroup/chunks/GrRadioGroup-BOIhejE6.js.map +0 -1
- package/dist/components/GrRating/chunks/GrRating-JrHXz0Rv.js.map +0 -1
- package/dist/components/GrSegmented/chunks/GrSegmented-BQIlH5KI.js.map +0 -1
- package/dist/components/GrSelect/chunks/GrSelect-aqkPCqjd.js.map +0 -1
- package/dist/components/GrSlider/chunks/GrSlider-DkU9IQSX.js.map +0 -1
- package/dist/components/GrSplitter/chunks/GrSplitter-7To8jbJ8.js.map +0 -1
- package/dist/components/GrStatistic/chunks/GrStatistic-CttyoYPT.js.map +0 -1
- package/dist/components/GrTable/chunks/GrTable-BB-mI_NM.js.map +0 -1
- package/dist/components/GrTabs/chunks/GrTabs-B8CDq2D9.js.map +0 -1
- package/dist/components/GrToaster/chunks/GrToaster-BKQy3Srm.js.map +0 -1
- package/dist/components/GrTree/chunks/GrTree-wfdbvygw.js.map +0 -1
- package/dist/components/GrTreeSelect/chunks/GrTreeSelect-lLWmAMtI.js.map +0 -1
- package/dist/tokens.js.map +0 -1
- package/dist/chunks/{config-8Pcutu1j.js → config-8Pcutu1j2.js} +0 -0
- package/dist/chunks/{config-BE6n20np.js → config-BE6n20np2.js} +0 -0
- package/dist/chunks/{config-BKvX0q10.js → config-BKvX0q102.js} +0 -0
- package/dist/chunks/{config-BoNR7_PD.js → config-BoNR7_PD2.js} +0 -0
- package/dist/chunks/{config-CN2ULSQL2.js → config-CN2ULSQL.js} +0 -0
- package/dist/chunks/{config-CY0_6cMi.js → config-CY0_6cMi2.js} +0 -0
- package/dist/chunks/{config-Rw9OyW70.js → config-Rw9OyW702.js} +0 -0
- package/dist/chunks/{config-T3qdQBgU.js → config-T3qdQBgU2.js} +0 -0
- package/dist/chunks/{config-eXB87DOi2.js → config-eXB87DOi.js} +0 -0
- package/dist/components/GrCollapse/chunks/{GrCollapse-B2Fc6A9r.js → GrCollapse-Kk0DE8tb.js} +1 -1
- /package/dist/types/src/composables/{internal/useComboboxNavigation.d.ts → useComboboxNavigation.d.ts} +0 -0
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import type { ComputedRef } from 'vue';
|
|
2
|
+
/**
|
|
3
|
+
* Roving tabindex: группа — одна остановка `Tab`, внутрь заходят стрелками.
|
|
4
|
+
*
|
|
5
|
+
* Механика написана в пакете шесть раз (`GrDropdownMenu`, `GrTree`, `GrTabs`,
|
|
6
|
+
* `GrSegmented`, `GrRadio`, `GrInputTag`) и разошлась не стилистически, а по
|
|
7
|
+
* существу: у одних кольцо зациклено, у других упирается в края; одни
|
|
8
|
+
* пропускают выключенные элементы, другие намеренно нет; адресуются то
|
|
9
|
+
* индексом, то ключом, то значением. Каждое расхождение здесь стало опцией —
|
|
10
|
+
* поэтому опций много, и это дешевле, чем седьмая копия.
|
|
11
|
+
*
|
|
12
|
+
* Осознанно **не** обобщается активация: `Enter`/`Space` и «двигает ли стрелка
|
|
13
|
+
* выбор» — доменная логика компонента. У `GrSegmented` и `GrRadio` стрелка
|
|
14
|
+
* меняет значение, у `GrTree` и `GrInputTag` — нет, у `GrTabs` это проп.
|
|
15
|
+
* Примитив ведёт фокус и отдаёт `onMove`; что делать с переездом, решает
|
|
16
|
+
* компонент.
|
|
17
|
+
*
|
|
18
|
+
* Инвариант «ровно один элемент с `tabindex="0"`» держит `rovingKey`: это
|
|
19
|
+
* `computed`, а не `ref`, поэтому при смене набора он самокорректируется в
|
|
20
|
+
* момент чтения. Отдельная нормализация с `watch(..., { flush: 'sync' })`,
|
|
21
|
+
* как в `GrTree`, больше не нужна.
|
|
22
|
+
*/
|
|
23
|
+
/** Какие стрелки ведут по набору. */
|
|
24
|
+
export type GrRovingOrientation = 'horizontal' | 'vertical' | 'both' | 'grid';
|
|
25
|
+
/** Край набора, в который упёрлось движение. */
|
|
26
|
+
export type GrRovingEdge = 'start' | 'end';
|
|
27
|
+
export interface UseRovingFocusOptions<TKey> {
|
|
28
|
+
/** Ключи элементов в порядке отображения. Индекс, значение, opaque-ключ — что угодно сравнимое по `===`. */
|
|
29
|
+
items: () => readonly TKey[];
|
|
30
|
+
/**
|
|
31
|
+
* DOM-узел элемента. Массив ref-ов, `Map`, `querySelector` — примитиву
|
|
32
|
+
* безразлично, знать раскладку обязан компонент.
|
|
33
|
+
*/
|
|
34
|
+
elementFor: (key: TKey) => HTMLElement | null | undefined;
|
|
35
|
+
/** Выключен ли элемент. Спрашивается только при `skipDisabled`. */
|
|
36
|
+
isDisabled?: (key: TKey) => boolean;
|
|
37
|
+
/** По умолчанию `vertical`. */
|
|
38
|
+
orientation?: () => GrRovingOrientation;
|
|
39
|
+
/** Ширина строки для `orientation: 'grid'`. Игнорируется в остальных режимах. */
|
|
40
|
+
columns?: () => number;
|
|
41
|
+
/** Замкнуто ли кольцо. По умолчанию `true`. */
|
|
42
|
+
wrap?: () => boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Пропускать выключенные при движении. По умолчанию `false`: в паттерне
|
|
45
|
+
* `menu` выключенный пункт остаётся в обходе намеренно — `aria-disabled`
|
|
46
|
+
* оставляет его фокусируемым, чтобы скринридер прочёл, что он есть.
|
|
47
|
+
*/
|
|
48
|
+
skipDisabled?: () => boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Стартовый элемент, когда фокус в группе ещё не был — обычно выбранное
|
|
51
|
+
* значение.
|
|
52
|
+
*
|
|
53
|
+
* **Выключенность здесь не проверяется, и это не упущение.** Проверить её
|
|
54
|
+
* автоматически по `isDisabled` нельзя: у `GrSegmented` загружающийся сегмент
|
|
55
|
+
* остановку `Tab` сохраняет, хотя для движения заблокирован, а у `GrRadio`
|
|
56
|
+
* выключенный переключатель терять её обязан. Условие знает только вызывающий,
|
|
57
|
+
* поэтому геттер обязан вернуть `undefined` для значения, которое не может
|
|
58
|
+
* принять фокус. Забыть об этом — значит оставить группу без остановки `Tab`
|
|
59
|
+
* вовсе: элемент с `tabindex="0"` будет назначен, но отрисует `-1`.
|
|
60
|
+
*/
|
|
61
|
+
initialKey?: () => TKey | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* Позиция переехала — компонент решает, менять ли заодно выбор. Вызывается
|
|
64
|
+
* **до** переноса фокуса: в `radiogroup` стрелка переносит выбор, и модель
|
|
65
|
+
* обязана примениться раньше, чем сфокусируется целевой элемент.
|
|
66
|
+
*/
|
|
67
|
+
onMove?: (key: TKey, previous: TKey | undefined) => void;
|
|
68
|
+
/**
|
|
69
|
+
* Движение упёрлось в край при `wrap: false`. Вернул `true` — считаем клавишу
|
|
70
|
+
* обработанной (кольцо `GrInputTag` так отдаёт фокус полю ввода, календарь —
|
|
71
|
+
* листает месяц).
|
|
72
|
+
*/
|
|
73
|
+
onOverflow?: (edge: GrRovingEdge, delta: number) => boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Донести элемент до экрана перед фокусом: виртуализация, `scrollIntoView`,
|
|
76
|
+
* ожидание перерисовки после `onMove`. Вернул промис — фокус ждёт ровно его,
|
|
77
|
+
* без добавленных примитивом тиков; вернул `undefined` — фокус остаётся
|
|
78
|
+
* синхронным, чтобы не менять тайминг у компонентов, которые на него
|
|
79
|
+
* полагаются.
|
|
80
|
+
*/
|
|
81
|
+
beforeFocus?: (key: TKey) => void | Promise<void>;
|
|
82
|
+
}
|
|
83
|
+
export interface UseRovingFocusReturn<TKey> {
|
|
84
|
+
/** Элемент, который держит `tabindex="0"`. Никогда не «никто» при непустом наборе. */
|
|
85
|
+
rovingKey: ComputedRef<TKey | undefined>;
|
|
86
|
+
/** `0` для роверного элемента, `-1` для всех остальных. */
|
|
87
|
+
tabindexFor: (key: TKey) => 0 | -1;
|
|
88
|
+
/** Сделать активным без переноса фокуса — для синхронизации с мышью (`@focus`, `@click`). */
|
|
89
|
+
setActive: (key: TKey) => void;
|
|
90
|
+
/**
|
|
91
|
+
* Забыть явно наведённый фокус: остановка `Tab` возвращается к производной
|
|
92
|
+
* (`initialKey` → первый доступный). Нужно, когда набор опустел, — иначе
|
|
93
|
+
* устаревший ключ всплывёт, как только элементы появятся снова.
|
|
94
|
+
*/
|
|
95
|
+
reset: () => void;
|
|
96
|
+
/** Сделать активным и перенести фокус. */
|
|
97
|
+
focusKey: (key: TKey) => Promise<void>;
|
|
98
|
+
/** Сдвиг на `delta` позиций от текущего. Вернёт `false`, если движение не состоялось. */
|
|
99
|
+
moveBy: (delta: number) => boolean;
|
|
100
|
+
/** На край набора (в `grid` — на край текущей строки). */
|
|
101
|
+
moveToEdge: (edge: GrRovingEdge) => boolean;
|
|
102
|
+
/**
|
|
103
|
+
* Стрелки, `Home`, `End` по объявленной ориентации. Возвращает `true`, если
|
|
104
|
+
* клавиша обработана (с `preventDefault`) — остальное компонент разбирает сам.
|
|
105
|
+
*/
|
|
106
|
+
handleNavigationKeys: (event: KeyboardEvent) => boolean;
|
|
107
|
+
}
|
|
108
|
+
export declare function useRovingFocus<TKey>(options: UseRovingFocusOptions<TKey>): UseRovingFocusReturn<TKey>;
|
|
@@ -66,6 +66,7 @@ export declare const granularityComponentConfigs: {
|
|
|
66
66
|
GrSidebar: GranularComponentDescriptor<"GrSidebar">;
|
|
67
67
|
GrSkeleton: GranularComponentDescriptor<"GrSkeleton">;
|
|
68
68
|
GrSlider: GranularComponentDescriptor<"GrSlider">;
|
|
69
|
+
GrSortableList: GranularComponentDescriptor<"GrSortableList">;
|
|
69
70
|
GrSplitter: GranularComponentDescriptor<"GrSplitter">;
|
|
70
71
|
GrStatistic: GranularComponentDescriptor<"GrStatistic">;
|
|
71
72
|
GrSwitch: GranularComponentDescriptor<"GrSwitch">;
|
|
@@ -41,6 +41,7 @@ export declare const en: {
|
|
|
41
41
|
drag: string;
|
|
42
42
|
expand: string;
|
|
43
43
|
collapse: string;
|
|
44
|
+
moved: string;
|
|
44
45
|
};
|
|
45
46
|
select: {
|
|
46
47
|
customValuePlaceholder: string;
|
|
@@ -59,6 +60,10 @@ export declare const en: {
|
|
|
59
60
|
sortAsc: string;
|
|
60
61
|
sortDesc: string;
|
|
61
62
|
sortNone: string;
|
|
63
|
+
moveColumn: string;
|
|
64
|
+
columnMoved: string;
|
|
65
|
+
resizeColumn: string;
|
|
66
|
+
columnResized: string;
|
|
62
67
|
};
|
|
63
68
|
breadcrumbs: {
|
|
64
69
|
label: string;
|
|
@@ -277,6 +282,16 @@ export declare const en: {
|
|
|
277
282
|
control: string;
|
|
278
283
|
enter: string;
|
|
279
284
|
escape: string;
|
|
285
|
+
tab: string;
|
|
286
|
+
backspace: string;
|
|
287
|
+
delete: string;
|
|
288
|
+
pageUp: string;
|
|
289
|
+
pageDown: string;
|
|
290
|
+
arrowUp: string;
|
|
291
|
+
arrowDown: string;
|
|
292
|
+
arrowLeft: string;
|
|
293
|
+
arrowRight: string;
|
|
294
|
+
then: string;
|
|
280
295
|
};
|
|
281
296
|
link: {
|
|
282
297
|
opensInNewTab: string;
|
|
@@ -317,6 +332,15 @@ export declare const en: {
|
|
|
317
332
|
emptyState: {
|
|
318
333
|
title: string;
|
|
319
334
|
};
|
|
335
|
+
sortable: {
|
|
336
|
+
label: string;
|
|
337
|
+
handle: string;
|
|
338
|
+
empty: string;
|
|
339
|
+
grabbed: string;
|
|
340
|
+
moved: string;
|
|
341
|
+
dropped: string;
|
|
342
|
+
cancelled: string;
|
|
343
|
+
};
|
|
320
344
|
};
|
|
321
345
|
common: {
|
|
322
346
|
confirm: string;
|
|
@@ -350,6 +374,7 @@ export declare const en: {
|
|
|
350
374
|
drag: string;
|
|
351
375
|
expand: string;
|
|
352
376
|
collapse: string;
|
|
377
|
+
moved: string;
|
|
353
378
|
};
|
|
354
379
|
select: {
|
|
355
380
|
customValuePlaceholder: string;
|
|
@@ -368,6 +393,10 @@ export declare const en: {
|
|
|
368
393
|
sortAsc: string;
|
|
369
394
|
sortDesc: string;
|
|
370
395
|
sortNone: string;
|
|
396
|
+
moveColumn: string;
|
|
397
|
+
columnMoved: string;
|
|
398
|
+
resizeColumn: string;
|
|
399
|
+
columnResized: string;
|
|
371
400
|
};
|
|
372
401
|
breadcrumbs: {
|
|
373
402
|
label: string;
|
|
@@ -586,6 +615,16 @@ export declare const en: {
|
|
|
586
615
|
control: string;
|
|
587
616
|
enter: string;
|
|
588
617
|
escape: string;
|
|
618
|
+
tab: string;
|
|
619
|
+
backspace: string;
|
|
620
|
+
delete: string;
|
|
621
|
+
pageUp: string;
|
|
622
|
+
pageDown: string;
|
|
623
|
+
arrowUp: string;
|
|
624
|
+
arrowDown: string;
|
|
625
|
+
arrowLeft: string;
|
|
626
|
+
arrowRight: string;
|
|
627
|
+
then: string;
|
|
589
628
|
};
|
|
590
629
|
link: {
|
|
591
630
|
opensInNewTab: string;
|
|
@@ -626,6 +665,15 @@ export declare const en: {
|
|
|
626
665
|
emptyState: {
|
|
627
666
|
title: string;
|
|
628
667
|
};
|
|
668
|
+
sortable: {
|
|
669
|
+
label: string;
|
|
670
|
+
handle: string;
|
|
671
|
+
empty: string;
|
|
672
|
+
grabbed: string;
|
|
673
|
+
moved: string;
|
|
674
|
+
dropped: string;
|
|
675
|
+
cancelled: string;
|
|
676
|
+
};
|
|
629
677
|
}>;
|
|
630
678
|
};
|
|
631
679
|
};
|
|
@@ -34,6 +34,7 @@ export declare const es: {
|
|
|
34
34
|
drag: string;
|
|
35
35
|
expand: string;
|
|
36
36
|
collapse: string;
|
|
37
|
+
moved: string;
|
|
37
38
|
};
|
|
38
39
|
select: {
|
|
39
40
|
customValuePlaceholder: string;
|
|
@@ -52,6 +53,10 @@ export declare const es: {
|
|
|
52
53
|
sortAsc: string;
|
|
53
54
|
sortDesc: string;
|
|
54
55
|
sortNone: string;
|
|
56
|
+
moveColumn: string;
|
|
57
|
+
columnMoved: string;
|
|
58
|
+
resizeColumn: string;
|
|
59
|
+
columnResized: string;
|
|
55
60
|
};
|
|
56
61
|
breadcrumbs: {
|
|
57
62
|
label: string;
|
|
@@ -272,6 +277,16 @@ export declare const es: {
|
|
|
272
277
|
control: string;
|
|
273
278
|
enter: string;
|
|
274
279
|
escape: string;
|
|
280
|
+
tab: string;
|
|
281
|
+
backspace: string;
|
|
282
|
+
delete: string;
|
|
283
|
+
pageUp: string;
|
|
284
|
+
pageDown: string;
|
|
285
|
+
arrowUp: string;
|
|
286
|
+
arrowDown: string;
|
|
287
|
+
arrowLeft: string;
|
|
288
|
+
arrowRight: string;
|
|
289
|
+
then: string;
|
|
275
290
|
};
|
|
276
291
|
link: {
|
|
277
292
|
opensInNewTab: string;
|
|
@@ -312,6 +327,15 @@ export declare const es: {
|
|
|
312
327
|
emptyState: {
|
|
313
328
|
title: string;
|
|
314
329
|
};
|
|
330
|
+
sortable: {
|
|
331
|
+
label: string;
|
|
332
|
+
handle: string;
|
|
333
|
+
empty: string;
|
|
334
|
+
grabbed: string;
|
|
335
|
+
moved: string;
|
|
336
|
+
dropped: string;
|
|
337
|
+
cancelled: string;
|
|
338
|
+
};
|
|
315
339
|
};
|
|
316
340
|
common: {
|
|
317
341
|
confirm: string;
|
|
@@ -345,6 +369,7 @@ export declare const es: {
|
|
|
345
369
|
drag: string;
|
|
346
370
|
expand: string;
|
|
347
371
|
collapse: string;
|
|
372
|
+
moved: string;
|
|
348
373
|
};
|
|
349
374
|
select: {
|
|
350
375
|
customValuePlaceholder: string;
|
|
@@ -363,6 +388,10 @@ export declare const es: {
|
|
|
363
388
|
sortAsc: string;
|
|
364
389
|
sortDesc: string;
|
|
365
390
|
sortNone: string;
|
|
391
|
+
moveColumn: string;
|
|
392
|
+
columnMoved: string;
|
|
393
|
+
resizeColumn: string;
|
|
394
|
+
columnResized: string;
|
|
366
395
|
};
|
|
367
396
|
breadcrumbs: {
|
|
368
397
|
label: string;
|
|
@@ -583,6 +612,16 @@ export declare const es: {
|
|
|
583
612
|
control: string;
|
|
584
613
|
enter: string;
|
|
585
614
|
escape: string;
|
|
615
|
+
tab: string;
|
|
616
|
+
backspace: string;
|
|
617
|
+
delete: string;
|
|
618
|
+
pageUp: string;
|
|
619
|
+
pageDown: string;
|
|
620
|
+
arrowUp: string;
|
|
621
|
+
arrowDown: string;
|
|
622
|
+
arrowLeft: string;
|
|
623
|
+
arrowRight: string;
|
|
624
|
+
then: string;
|
|
586
625
|
};
|
|
587
626
|
link: {
|
|
588
627
|
opensInNewTab: string;
|
|
@@ -623,6 +662,15 @@ export declare const es: {
|
|
|
623
662
|
emptyState: {
|
|
624
663
|
title: string;
|
|
625
664
|
};
|
|
665
|
+
sortable: {
|
|
666
|
+
label: string;
|
|
667
|
+
handle: string;
|
|
668
|
+
empty: string;
|
|
669
|
+
grabbed: string;
|
|
670
|
+
moved: string;
|
|
671
|
+
dropped: string;
|
|
672
|
+
cancelled: string;
|
|
673
|
+
};
|
|
626
674
|
}>;
|
|
627
675
|
};
|
|
628
676
|
};
|
|
@@ -34,6 +34,7 @@ export declare const ru: {
|
|
|
34
34
|
drag: string;
|
|
35
35
|
expand: string;
|
|
36
36
|
collapse: string;
|
|
37
|
+
moved: string;
|
|
37
38
|
};
|
|
38
39
|
select: {
|
|
39
40
|
customValuePlaceholder: string;
|
|
@@ -52,6 +53,10 @@ export declare const ru: {
|
|
|
52
53
|
sortAsc: string;
|
|
53
54
|
sortDesc: string;
|
|
54
55
|
sortNone: string;
|
|
56
|
+
moveColumn: string;
|
|
57
|
+
columnMoved: string;
|
|
58
|
+
resizeColumn: string;
|
|
59
|
+
columnResized: string;
|
|
55
60
|
};
|
|
56
61
|
breadcrumbs: {
|
|
57
62
|
label: string;
|
|
@@ -274,6 +279,16 @@ export declare const ru: {
|
|
|
274
279
|
control: string;
|
|
275
280
|
enter: string;
|
|
276
281
|
escape: string;
|
|
282
|
+
tab: string;
|
|
283
|
+
backspace: string;
|
|
284
|
+
delete: string;
|
|
285
|
+
pageUp: string;
|
|
286
|
+
pageDown: string;
|
|
287
|
+
arrowUp: string;
|
|
288
|
+
arrowDown: string;
|
|
289
|
+
arrowLeft: string;
|
|
290
|
+
arrowRight: string;
|
|
291
|
+
then: string;
|
|
277
292
|
};
|
|
278
293
|
link: {
|
|
279
294
|
opensInNewTab: string;
|
|
@@ -314,6 +329,15 @@ export declare const ru: {
|
|
|
314
329
|
emptyState: {
|
|
315
330
|
title: string;
|
|
316
331
|
};
|
|
332
|
+
sortable: {
|
|
333
|
+
label: string;
|
|
334
|
+
handle: string;
|
|
335
|
+
empty: string;
|
|
336
|
+
grabbed: string;
|
|
337
|
+
moved: string;
|
|
338
|
+
dropped: string;
|
|
339
|
+
cancelled: string;
|
|
340
|
+
};
|
|
317
341
|
};
|
|
318
342
|
common: {
|
|
319
343
|
confirm: string;
|
|
@@ -347,6 +371,7 @@ export declare const ru: {
|
|
|
347
371
|
drag: string;
|
|
348
372
|
expand: string;
|
|
349
373
|
collapse: string;
|
|
374
|
+
moved: string;
|
|
350
375
|
};
|
|
351
376
|
select: {
|
|
352
377
|
customValuePlaceholder: string;
|
|
@@ -365,6 +390,10 @@ export declare const ru: {
|
|
|
365
390
|
sortAsc: string;
|
|
366
391
|
sortDesc: string;
|
|
367
392
|
sortNone: string;
|
|
393
|
+
moveColumn: string;
|
|
394
|
+
columnMoved: string;
|
|
395
|
+
resizeColumn: string;
|
|
396
|
+
columnResized: string;
|
|
368
397
|
};
|
|
369
398
|
breadcrumbs: {
|
|
370
399
|
label: string;
|
|
@@ -587,6 +616,16 @@ export declare const ru: {
|
|
|
587
616
|
control: string;
|
|
588
617
|
enter: string;
|
|
589
618
|
escape: string;
|
|
619
|
+
tab: string;
|
|
620
|
+
backspace: string;
|
|
621
|
+
delete: string;
|
|
622
|
+
pageUp: string;
|
|
623
|
+
pageDown: string;
|
|
624
|
+
arrowUp: string;
|
|
625
|
+
arrowDown: string;
|
|
626
|
+
arrowLeft: string;
|
|
627
|
+
arrowRight: string;
|
|
628
|
+
then: string;
|
|
590
629
|
};
|
|
591
630
|
link: {
|
|
592
631
|
opensInNewTab: string;
|
|
@@ -627,6 +666,15 @@ export declare const ru: {
|
|
|
627
666
|
emptyState: {
|
|
628
667
|
title: string;
|
|
629
668
|
};
|
|
669
|
+
sortable: {
|
|
670
|
+
label: string;
|
|
671
|
+
handle: string;
|
|
672
|
+
empty: string;
|
|
673
|
+
grabbed: string;
|
|
674
|
+
moved: string;
|
|
675
|
+
dropped: string;
|
|
676
|
+
cancelled: string;
|
|
677
|
+
};
|
|
630
678
|
}>;
|
|
631
679
|
};
|
|
632
680
|
};
|
|
@@ -53,6 +53,7 @@ export * from './components/GrSelect';
|
|
|
53
53
|
export * from './components/GrSidebar';
|
|
54
54
|
export * from './components/GrSkeleton';
|
|
55
55
|
export * from './components/GrSlider';
|
|
56
|
+
export * from './components/GrSortableList';
|
|
56
57
|
export * from './components/GrSplitter';
|
|
57
58
|
export * from './components/GrStatistic';
|
|
58
59
|
export * from './components/GrSwitch';
|
|
@@ -73,12 +74,23 @@ export { usePortalTarget } from './composables/usePortalTarget';
|
|
|
73
74
|
export type { PortalTarget } from './composables/usePortalTarget';
|
|
74
75
|
export { useOverlayLayer } from './composables/useOverlayLayer';
|
|
75
76
|
export type { OverlayLayerHandle, UseOverlayLayerOptions } from './composables/useOverlayLayer';
|
|
77
|
+
export { useRovingFocus } from './composables/useRovingFocus';
|
|
78
|
+
export type { GrRovingEdge, GrRovingOrientation, UseRovingFocusOptions, UseRovingFocusReturn, } from './composables/useRovingFocus';
|
|
79
|
+
export * from './composables/useGrComponentConfig';
|
|
80
|
+
export { useComboboxNavigation } from './composables/useComboboxNavigation';
|
|
81
|
+
export type { UseComboboxNavigationOptions, UseComboboxNavigationReturn, } from './composables/useComboboxNavigation';
|
|
82
|
+
export { useGranularityTranslations } from './composables/useGranularityTranslations';
|
|
83
|
+
export type { GranularityI18nLike } from './composables/useGranularityTranslations';
|
|
76
84
|
export { useFloating } from './composables/useFloating';
|
|
77
85
|
export type { UseFloatingOptions, UseFloatingPlacement, UseFloatingReturn } from './composables/useFloating';
|
|
78
86
|
export { useAnnouncer } from './composables/useAnnouncer';
|
|
79
87
|
export type { GrAnnounceOptions, GrAnnouncer, GrAnnouncerPoliteness } from './composables/useAnnouncer';
|
|
80
88
|
export { useVirtualList } from './composables/useVirtualList';
|
|
81
89
|
export type { GrVirtualAlign, UseVirtualListOptions, UseVirtualListReturn } from './composables/useVirtualList';
|
|
90
|
+
export { useDragGesture } from './composables/useDragGesture';
|
|
91
|
+
export type { UseDragGestureOptions, UseDragGestureReturn } from './composables/useDragGesture';
|
|
92
|
+
export { useDragSort } from './composables/useDragSort';
|
|
93
|
+
export type { DragSortHit, DragSortMode, DragSortOrientation, UseDragSortOptions, UseDragSortReturn, } from './composables/useDragSort';
|
|
82
94
|
export { useGrFormControl } from './composables/useGrFormControl';
|
|
83
95
|
export type { GrFormControlProps, GrFormControlState } from './composables/useGrFormControl';
|
|
84
96
|
export { GRANULARITY_THEME_STATE, granularityThemePlugin, initThemeEarly, useTheme } from './composables/useTheme';
|
|
@@ -21,6 +21,12 @@ export declare function isComposingEvent(event: KeyboardEvent): boolean;
|
|
|
21
21
|
* typeahead меню обязаны молчать, пока пользователь печатает в поле внутри них.
|
|
22
22
|
*/
|
|
23
23
|
export declare function isEditableTarget(target: EventTarget | null): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* macOS определяем по платформе: от неё зависит, чем является токен `mod` —
|
|
26
|
+
* Cmd или Ctrl. Живёт здесь, а не рядом с одним потребителем: то же нужно
|
|
27
|
+
* `GrKbd` (что показать), палитре (что слушать) и директиве `v-hotkey`.
|
|
28
|
+
*/
|
|
29
|
+
export declare function isAppleDevice(): boolean;
|
|
24
30
|
/** Физический код клавиши для латинской буквы или цифры; иначе `null`. */
|
|
25
31
|
export declare function codeForChar(ch: string): string | null;
|
|
26
32
|
export interface EventMatchesKeyOptions {
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { GrAnnouncerPoliteness } from '../composables/useAnnouncer';
|
|
2
|
+
/**
|
|
3
|
+
* Текст живого региона.
|
|
4
|
+
*
|
|
5
|
+
* Ждать здесь обязательно: `announce` пишет в регион **отложенным** макротаском,
|
|
6
|
+
* и это не деталь реализации, а условие работы. Регион, в котором текст
|
|
7
|
+
* появился в том же кадре, что и сам регион, часть AT не объявляет вовсе;
|
|
8
|
+
* поэтому синхронное чтение сразу после действия покажет пустую строку.
|
|
9
|
+
*/
|
|
10
|
+
export declare function announced(politeness?: GrAnnouncerPoliteness): Promise<string>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { type Ref } from 'vue';
|
|
2
|
+
import { type GrComponentDefaults, type GrComponentSize } from '../components/GrConfigProvider/context';
|
|
3
|
+
import { type GranularityI18nAdapter, type GranularityI18nParams } from '../i18n/adapter';
|
|
4
|
+
export interface I18nAdapterOptions {
|
|
5
|
+
/** Перевод по ключу. По умолчанию — сам ключ: видно, что спросили. */
|
|
6
|
+
t?: (key: string, params?: GranularityI18nParams) => string;
|
|
7
|
+
te?: (key: string) => boolean;
|
|
8
|
+
locale?: string | Ref<string>;
|
|
9
|
+
}
|
|
10
|
+
/** Адаптер перевода для теста: словарь или своя функция. */
|
|
11
|
+
export declare function i18nAdapter(options?: I18nAdapterOptions | Record<string, string>): GranularityI18nAdapter;
|
|
12
|
+
export interface GranularityGlobalOptions {
|
|
13
|
+
size?: GrComponentSize;
|
|
14
|
+
componentDefaults?: GrComponentDefaults;
|
|
15
|
+
theme?: string;
|
|
16
|
+
portalTarget?: string | HTMLElement;
|
|
17
|
+
/** Адаптер перевода: готовый, словарь `{ ключ: перевод }` или опции `i18nAdapter`. */
|
|
18
|
+
i18n?: GranularityI18nAdapter | I18nAdapterOptions | Record<string, string>;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Окружение пакета для монтирования — то, что `<GrConfigProvider>` раздаёт
|
|
22
|
+
* через `provide`.
|
|
23
|
+
*
|
|
24
|
+
* Отдаётся объектом, а не компонентом-обёрткой, намеренно: провайдер тянет за
|
|
25
|
+
* собой лишний корневой элемент, а искать компонент внутри чужой разметки в
|
|
26
|
+
* каждом тесте дороже, чем передать `global`. Проверять **сам** провайдер
|
|
27
|
+
* (`data-gr-config-provider`, тема на корне) этим нельзя и не нужно — для этого
|
|
28
|
+
* его и монтируют.
|
|
29
|
+
*
|
|
30
|
+
* ```ts
|
|
31
|
+
* mount(GrSelect, { props, global: granularityGlobal({ size: 'sm' }) })
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export declare function granularityGlobal(options?: GranularityGlobalOptions): {
|
|
35
|
+
provide: Record<symbol, unknown>;
|
|
36
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Уборка между тестами.
|
|
3
|
+
*
|
|
4
|
+
* `document.body.innerHTML = ''` сам по себе оставляет пакет в разобранном
|
|
5
|
+
* состоянии: корень портала и хост живого региона закэшированы модулями, и
|
|
6
|
+
* после очистки `body` они указывают на узлы **вне документа**. Следующий
|
|
7
|
+
* монтаж телепортирует туда оверлеи, тест ищет их в документе и не находит —
|
|
8
|
+
* без единой ошибки в консоли. Очередь тостов переживает размонтирование по
|
|
9
|
+
* замыслу, поэтому её тоже гасим.
|
|
10
|
+
*/
|
|
11
|
+
export declare function resetGranularityDom(): void;
|
|
12
|
+
export interface StubMatchMediaOptions {
|
|
13
|
+
/** Ответ на `(prefers-reduced-motion: reduce)`. */
|
|
14
|
+
reducedMotion?: boolean;
|
|
15
|
+
/** Ответ на остальные запросы. */
|
|
16
|
+
matches?: boolean;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Ответ `matchMedia` — например «пользователь просил меньше движения».
|
|
20
|
+
*
|
|
21
|
+
* Не для того, чтобы «не падало»: сам пакет зовёт `matchMedia` опционально и без
|
|
22
|
+
* него живёт. Нужно, когда проверяется поведение **под** медиазапросом.
|
|
23
|
+
* Возвращает функцию отката: глобальное состояние обязано уйти вместе с тестом.
|
|
24
|
+
*/
|
|
25
|
+
export declare function stubMatchMedia(options?: StubMatchMediaOptions): () => void;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Геометрия в jsdom.
|
|
3
|
+
*
|
|
4
|
+
* Раскладки в jsdom нет: `getBoundingClientRect` у любого элемента возвращает
|
|
5
|
+
* нули. Всё, что считает попадание указателя — слайдер, сплиттер, перестановка,
|
|
6
|
+
* ширины колонок таблицы, — на нулевом прямоугольнике проверять не на чем,
|
|
7
|
+
* поэтому геометрия задаётся руками.
|
|
8
|
+
*/
|
|
9
|
+
export type MockRect = Partial<Omit<DOMRect, 'toJSON'>>;
|
|
10
|
+
/** Прямоугольник элемента. Незаданные стороны выводятся из заданных. */
|
|
11
|
+
export declare function mockRect(target: Element, rect: MockRect): void;
|
|
12
|
+
export interface StackRectsOptions {
|
|
13
|
+
/** Размер элемента вдоль оси. */
|
|
14
|
+
size: number;
|
|
15
|
+
/** Ось раскладки. По умолчанию вертикальная — так лежат списки и строки. */
|
|
16
|
+
axis?: 'vertical' | 'horizontal';
|
|
17
|
+
/** Смещение первого элемента. */
|
|
18
|
+
start?: number;
|
|
19
|
+
/** Размер поперёк оси. */
|
|
20
|
+
cross?: number;
|
|
21
|
+
}
|
|
22
|
+
/** Элементы подряд, встык, без зазоров: строки списка, ячейки шапки, деления шкалы. */
|
|
23
|
+
export declare function stackRects(targets: Iterable<Element>, options: StackRectsOptions): void;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Тестовые утилиты пакета — `@feugene/granularity/testing`.
|
|
3
|
+
*
|
|
4
|
+
* Ни `vitest`, ни `@vue/test-utils` здесь нет и не будет: утилиты отдают данные
|
|
5
|
+
* и действия над DOM, а монтирует и утверждает потребитель — своим раннером.
|
|
6
|
+
* Документация: `docs/testing.md`.
|
|
7
|
+
*/
|
|
8
|
+
export { cancelPointer, drag, move, pointer, press, release } from './pointer';
|
|
9
|
+
export { mockRect, type MockRect, stackRects, type StackRectsOptions } from './geometry';
|
|
10
|
+
export { resetGranularityDom, stubMatchMedia, type StubMatchMediaOptions } from './env';
|
|
11
|
+
export { granularityGlobal, type GranularityGlobalOptions, i18nAdapter, type I18nAdapterOptions } from './context';
|
|
12
|
+
export { announced } from './announcer';
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Указательные жесты в тестах.
|
|
3
|
+
*
|
|
4
|
+
* Две вещи, которые ломают наивную запись жеста, и обе неочевидны:
|
|
5
|
+
*
|
|
6
|
+
* 1. **`pointerdown` идёт в элемент, а `pointermove`/`pointerup`/`pointercancel` — в `window`.**
|
|
7
|
+
* Так слушает `useDragGesture` (и всё, что на нём стоит: слайдер, сплиттер,
|
|
8
|
+
* перестановка, смахивание тоста): нажатие приходит от разметки, а движение
|
|
9
|
+
* ловится глобально, иначе жест обрывался бы на выходе курсора за элемент.
|
|
10
|
+
* Тест, отправивший движение в тот же элемент, ничего не проверяет — и молча.
|
|
11
|
+
* 2. **`PointerEvent` в jsdom нет**, а `wrapper.trigger('pointerdown', { clientY })`
|
|
12
|
+
* падает на попытке записать `clientY`. Поэтому события собираются
|
|
13
|
+
* `MouseEvent`-ом и отправляются через `dispatchEvent`.
|
|
14
|
+
*
|
|
15
|
+
* Плюс `button: 0` по умолчанию: жест игнорирует неосновную кнопку, и без этого
|
|
16
|
+
* «перетаскивание» в тесте не начинается вовсе.
|
|
17
|
+
*/
|
|
18
|
+
/** Событие указателя: `MouseEvent`, потому что `PointerEvent` в jsdom не реализован. */
|
|
19
|
+
export declare function pointer(type: string, init?: MouseEventInit): MouseEvent;
|
|
20
|
+
/** Нажатие: единственное событие жеста, которое адресуется элементу. */
|
|
21
|
+
export declare function press(target: Element, init?: MouseEventInit): void;
|
|
22
|
+
export declare function move(init?: MouseEventInit): void;
|
|
23
|
+
export declare function release(init?: MouseEventInit): void;
|
|
24
|
+
/**
|
|
25
|
+
* Обрыв жеста: система забрала указатель (системный жест, звонок, потеря окна).
|
|
26
|
+
* Отдельная ветка поведения у всех потребителей — смахивание возвращает тост,
|
|
27
|
+
* перестановка откатывает порядок, — поэтому проверяется отдельно от `release`.
|
|
28
|
+
*/
|
|
29
|
+
export declare function cancelPointer(init?: MouseEventInit): void;
|
|
30
|
+
/** Жест целиком: нажали на элементе, провели, отпустили. */
|
|
31
|
+
export declare function drag(target: Element, from: MouseEventInit, to: MouseEventInit): void;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Подключение темы в рантайме — `@feugene/granularity/theme/apply`.
|
|
3
|
+
*
|
|
4
|
+
* Отдельный подпуть от `@feugene/granularity/theme` не по вкусу, а по весу:
|
|
5
|
+
* там справочник токенов (сотня килобайт данных), нужный, чтобы тему
|
|
6
|
+
* **собрать**. Чтобы её **подключить**, не нужно ничего, кроме готовой строки,
|
|
7
|
+
* — и приложению незачем платить за первое, если оно делает второе.
|
|
8
|
+
*
|
|
9
|
+
* Штатный путь всё же другой: собрать тему на сборке и отдать браузеру обычный
|
|
10
|
+
* CSS-файл. Этот модуль — для случаев, когда тема появляется только в браузере:
|
|
11
|
+
* редактор тем, превью, тема из пользовательских настроек.
|
|
12
|
+
*/
|
|
13
|
+
export interface ApplyThemeOptions {
|
|
14
|
+
/**
|
|
15
|
+
* Имя, под которым тема живёт в документе. Повторный вызов с тем же именем
|
|
16
|
+
* заменяет её содержимое, а не добавляет второй `<style>`: иначе редактор
|
|
17
|
+
* темы за минуту работы оставил бы в `<head>` сотню слоёв, и побеждал бы
|
|
18
|
+
* последний — то есть результат зависел бы от истории правок.
|
|
19
|
+
*/
|
|
20
|
+
name?: string;
|
|
21
|
+
/** Куда вставлять. По умолчанию `document.head`. */
|
|
22
|
+
target?: HTMLElement | null;
|
|
23
|
+
}
|
|
24
|
+
/** Подключает CSS темы и возвращает функцию, которая его снимает. */
|
|
25
|
+
export declare function applyTheme(css: string, options?: ApplyThemeOptions): () => void;
|
|
26
|
+
/** Снимает тему, подключённую `applyTheme`. */
|
|
27
|
+
export declare function removeTheme(name?: string, target?: HTMLElement | null): void;
|