@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
package/dist/index.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { a as useGrComponentProp, i as useGrComponentDefaults, n as GR_CONFIG_KEY, o as useGrComponentSize, r as resolveGrConfig, s as useGrConfig, t as GR_COMPONENT_SIZES } from "./chunks/context-BSYR7RZs.js";
|
|
1
|
+
import { a as useGrComponentProp, c as useGrThemeAttrs, i as useGrComponentDefaults, n as GR_CONFIG_KEY, o as useGrComponentSize, r as resolveGrConfig, s as useGrConfig, t as GR_COMPONENT_SIZES } from "./chunks/context-BSYR7RZs.js";
|
|
2
|
+
import { n as useGranularityTranslations } from "./chunks/granularityI18n-BC5zsj_d.js";
|
|
2
3
|
import { n as GR_ALERT_VARIANTS, t as GrAlert_default } from "./components/GrAlert/chunks/GrAlert-BC1lplbY.js";
|
|
3
4
|
import { t as grAlertConfig } from "./chunks/config-BNu8lFQB.js";
|
|
4
5
|
import "./components/GrAlert/index.js";
|
|
5
|
-
import { t as usePortalTarget } from "./chunks/usePortalTarget-
|
|
6
|
+
import { t as usePortalTarget } from "./chunks/usePortalTarget-Cn-Wiz5d.js";
|
|
6
7
|
import { vAutofocus } from "./directives/autofocus.js";
|
|
7
8
|
import { vAutosize } from "./directives/autosize.js";
|
|
8
9
|
import { vClickOutside } from "./directives/clickOutside.js";
|
|
@@ -13,14 +14,15 @@ import { t as GrIcon_default } from "./components/GrIcon/chunks/GrIcon-BvA2ZGXP.
|
|
|
13
14
|
import { t as GrLoading_default } from "./components/GrLoading/chunks/GrLoading-CH95CFzS.js";
|
|
14
15
|
import { createLoading, vLoading } from "./directives/loading.js";
|
|
15
16
|
import { useFloating } from "./composables/useFloating.js";
|
|
16
|
-
import {
|
|
17
|
+
import { useOverlayLayer } from "./composables/useOverlayLayer.js";
|
|
17
18
|
import { useDismissible } from "./composables/useDismissible.js";
|
|
18
19
|
import { useVirtualList } from "./composables/useVirtualList.js";
|
|
19
20
|
import { n as useGrFormFieldContext, t as GR_FORM_FIELD_KEY } from "./chunks/context-DdNIxa1w.js";
|
|
20
21
|
import { useGrFormControl } from "./composables/useGrFormControl.js";
|
|
22
|
+
import { useComboboxNavigation } from "./composables/useComboboxNavigation.js";
|
|
21
23
|
import { t as GrBadge_default } from "./components/GrBadge/chunks/GrBadge-B1tgqfGQ.js";
|
|
22
24
|
import { n as grAutocompleteSafelist, t as grAutocompleteConfig } from "./chunks/config-BbY2SKGE.js";
|
|
23
|
-
import { t as GrAutocomplete_default } from "./components/GrAutocomplete/chunks/GrAutocomplete-
|
|
25
|
+
import { t as GrAutocomplete_default } from "./components/GrAutocomplete/chunks/GrAutocomplete-gY4Xopza.js";
|
|
24
26
|
import { n as GR_SKELETON_VARIANTS, t as GrSkeleton_default } from "./components/GrSkeleton/chunks/GrSkeleton-DEvNE3bC.js";
|
|
25
27
|
import { n as GrAvatar_default, t as GrAvatarGroup_default } from "./components/GrAvatar/chunks/GrAvatar-CVUujLmn.js";
|
|
26
28
|
import { l as initialsFrom, n as grAvatarSafelist, r as GR_AVATAR_STATUSES, t as grAvatarConfig } from "./chunks/config-DP7eseR1.js";
|
|
@@ -32,7 +34,7 @@ import { i as GR_BOTTOM_NAV_POSITIONS, n as grBottomNavSafelist, r as GR_BOTTOM_
|
|
|
32
34
|
import { t as GrBottomNav_default } from "./components/GrBottomNav/chunks/GrBottomNav-9GH7Dd9E.js";
|
|
33
35
|
import { t as GrLink_default } from "./components/GrLink/chunks/GrLink-D-cgUMXW.js";
|
|
34
36
|
import { m as resolveBreadcrumbsLayout, n as grBreadcrumbsSafelist, p as resolveBreadcrumbsFit, t as grBreadcrumbsConfig } from "./chunks/config-DKdlqXiY.js";
|
|
35
|
-
import { t as GrBreadcrumbs_default } from "./components/GrBreadcrumbs/chunks/GrBreadcrumbs-
|
|
37
|
+
import { t as GrBreadcrumbs_default } from "./components/GrBreadcrumbs/chunks/GrBreadcrumbs-DS_-PBVt.js";
|
|
36
38
|
import { n as useGrButtonGroup } from "./chunks/context-BfIQv7m1.js";
|
|
37
39
|
import { a as grButtonClass } from "./chunks/grButtonStyles-B_-YRE__.js";
|
|
38
40
|
import { t as GrButton_default } from "./components/GrButton/chunks/GrButton-D0m_z0XW.js";
|
|
@@ -49,52 +51,56 @@ import "./components/GrCheckbox/index.js";
|
|
|
49
51
|
import { t as GrCheckboxGroup_default } from "./components/GrCheckboxGroup/chunks/GrCheckboxGroup-CXTx2Z5H.js";
|
|
50
52
|
import { t as grCheckboxGroupConfig } from "./chunks/config-BuGlNPE9.js";
|
|
51
53
|
import { n as grCollapseSafelist, t as grCollapseConfig } from "./chunks/config-DU2DNSRx2.js";
|
|
52
|
-
import { a as GR_COLLAPSE_ICON_POSITIONS, i as GR_COLLAPSE_HEADING_LEVELS, n as GrCollapse_default, r as GR_COLLAPSE_CONTEXT, t as GrCollapseItem_default } from "./components/GrCollapse/chunks/GrCollapse-
|
|
54
|
+
import { a as GR_COLLAPSE_ICON_POSITIONS, i as GR_COLLAPSE_HEADING_LEVELS, n as GrCollapse_default, r as GR_COLLAPSE_CONTEXT, t as GrCollapseItem_default } from "./components/GrCollapse/chunks/GrCollapse-Kk0DE8tb.js";
|
|
53
55
|
import { n as grIconSafelist, t as grIconConfig } from "./chunks/config-Cp0DE0GH.js";
|
|
54
|
-
import { t as GrInput_default } from "./components/GrInput/chunks/GrInput-
|
|
56
|
+
import { t as GrInput_default } from "./components/GrInput/chunks/GrInput-2wd7Crs0.js";
|
|
55
57
|
import { useFocusTrap } from "./composables/useFocusTrap.js";
|
|
56
|
-
import { t as GrPopover_default } from "./components/GrPopover/chunks/GrPopover-
|
|
57
|
-
import {
|
|
58
|
-
import {
|
|
59
|
-
import { n as
|
|
60
|
-
import { t as
|
|
61
|
-
import { t as
|
|
62
|
-
import {
|
|
63
|
-
import { n as
|
|
58
|
+
import { t as GrPopover_default } from "./components/GrPopover/chunks/GrPopover-DMH4Jjst.js";
|
|
59
|
+
import { useDragGesture } from "./composables/useDragGesture.js";
|
|
60
|
+
import { t as GrSlider_default } from "./components/GrSlider/chunks/GrSlider-CyhVsNKn.js";
|
|
61
|
+
import { n as formatHexColor, r as parseHexColor, t as GrColorPicker_default } from "./components/GrColorPicker/chunks/GrColorPicker-CkBTzkqn.js";
|
|
62
|
+
import { n as grColorPickerSafelist, t as grColorPickerConfig } from "./chunks/config-BsPDQ0dS.js";
|
|
63
|
+
import { a as GR_KBD_TOKENS, o as findKbdToken, t as GrKbd_default } from "./components/GrKbd/chunks/GrKbd-DU2lBkRV.js";
|
|
64
|
+
import { t as GrModal_default } from "./components/GrModal/chunks/GrModal-CbMMr6W1.js";
|
|
65
|
+
import { i as matchCommandItem, n as filterCommandItems, r as groupCommandItems, t as GrCommandPalette_default } from "./components/GrCommandPalette/chunks/GrCommandPalette-BugTlGdj.js";
|
|
66
|
+
import { n as grCommandPaletteSafelist, t as grCommandPaletteConfig } from "./chunks/config-9PYRZlKE.js";
|
|
64
67
|
import { t as GrConfigProvider_default } from "./components/GrConfigProvider/chunks/GrConfigProvider-BA6JO7V6.js";
|
|
65
68
|
import { t as grConfigProviderConfig } from "./chunks/config-B7W9VlZ7.js";
|
|
66
69
|
import { a as resolveGrDialogTitle, i as resolveGrDialogSectionConfig, n as DEFAULT_GR_DIALOG_FOOTER_CONFIG, r as DEFAULT_GR_DIALOG_HEADER_CONFIG, t as DEFAULT_GR_DIALOG_BODY_CONFIG } from "./chunks/dialogShared-CxW62PQE.js";
|
|
67
|
-
import { i as GrDialogFooter_default, n as GrDialogHeader_default, r as GrDialogCloseButton_default, t as GrDialog_default } from "./components/GrDialog/chunks/GrDialog-
|
|
70
|
+
import { i as GrDialogFooter_default, n as GrDialogHeader_default, r as GrDialogCloseButton_default, t as GrDialog_default } from "./components/GrDialog/chunks/GrDialog-C3tYaA8v.js";
|
|
68
71
|
import { _ as DEFAULT_AUTO_HIDE_KINDS, a as extendDefaultParsers, c as problemDetailsParser, d as networkErrorParser, f as laravelValidationParser, g as abortErrorParser, h as fileValidationParser, i as defaultResponseErrorParsers, l as plainMessageParser, m as httpStatusParser, n as coreResponseErrorParsers, o as resolveResponseErrorTitle, p as jsonApiErrorParser, r as createResponseErrorClassifier, s as responseErrorParserPresets, t as GrResponseErrorBanner_default, u as normalizeError, v as DEFAULT_RESPONSE_ERROR_TEXTS, y as DEFAULT_TONE_BY_KIND } from "./components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-C7W9mgYN.js";
|
|
69
|
-
import { t as GrConfirmDialog_default } from "./components/GrConfirmDialog/chunks/GrConfirmDialog-
|
|
72
|
+
import { t as GrConfirmDialog_default } from "./components/GrConfirmDialog/chunks/GrConfirmDialog-Ds5T0GiR.js";
|
|
70
73
|
import { t as grConfirmDialogConfig } from "./chunks/config-A-bBiotF.js";
|
|
71
74
|
import "./components/GrConfirmDialog/index.js";
|
|
72
|
-
import { t as GrTable_default } from "./components/GrTable/chunks/GrTable-
|
|
73
|
-
import {
|
|
74
|
-
import {
|
|
75
|
+
import { t as GrTable_default } from "./components/GrTable/chunks/GrTable-BfqgwETQ.js";
|
|
76
|
+
import { useAnnouncer } from "./composables/useAnnouncer.js";
|
|
77
|
+
import { t as useDragSort } from "./chunks/useDragSort-0l47h4yb.js";
|
|
78
|
+
import { useRovingFocus } from "./composables/useRovingFocus.js";
|
|
79
|
+
import { i as sortRows, n as compareCells, r as isEmptyCell, t as GrDataTable_default } from "./components/GrDataTable/chunks/GrDataTable-CYe2A2WA.js";
|
|
80
|
+
import { n as grDataTableSafelist, t as grDataTableConfig } from "./chunks/config-BJ7Bv_G2.js";
|
|
75
81
|
import { t as grDialogSafelist } from "./chunks/safelist-CkF4v7DC.js";
|
|
76
82
|
import "./components/GrDialog/index.js";
|
|
77
83
|
import { n as useGrFormContext, t as GR_FORM_KEY } from "./chunks/context-Bfrgsluh.js";
|
|
78
84
|
import { t as GrFormField_default } from "./components/GrFormField/chunks/GrFormField-CL5rcgj6.js";
|
|
79
|
-
import { t as GrTextarea_default } from "./components/GrTextarea/chunks/GrTextarea-
|
|
85
|
+
import { t as GrTextarea_default } from "./components/GrTextarea/chunks/GrTextarea-DSvd1nSy.js";
|
|
80
86
|
import { n as getByPath, o as runFieldRules, r as isEmpty, t as createGrFormMessageResolver } from "./chunks/validation-5HhpanPP.js";
|
|
81
|
-
import { t as GrPromptDialog_default } from "./components/GrPromptDialog/chunks/GrPromptDialog-
|
|
87
|
+
import { t as GrPromptDialog_default } from "./components/GrPromptDialog/chunks/GrPromptDialog-Pwr9NPxK.js";
|
|
82
88
|
import { n as GrFormErrorBanner_default, r as GrUploadErrorBanner_default, t as useResponseError } from "./components/GrResponseErrorBanner/chunks/GrResponseErrorBanner-DhX4jjay.js";
|
|
83
|
-
import { a as teardownDialogService, i as granularityDialogServicePlugin, n as GRANULARITY_DIALOG_SERVICE_STATE, o as useDialogService, r as dialogService, t as GrDialogServiceHost_default } from "./components/GrDialogService/chunks/GrDialogService-
|
|
89
|
+
import { a as teardownDialogService, i as granularityDialogServicePlugin, n as GRANULARITY_DIALOG_SERVICE_STATE, o as useDialogService, r as dialogService, t as GrDialogServiceHost_default } from "./components/GrDialogService/chunks/GrDialogService-CTBiiJDI.js";
|
|
84
90
|
import { t as grDialogServiceConfig } from "./chunks/config-CjXjhphs.js";
|
|
85
|
-
import { n as grDividerSafelist, t as grDividerConfig } from "./chunks/config-
|
|
86
|
-
import { t as GrDivider_default } from "./components/GrDivider/chunks/GrDivider-
|
|
91
|
+
import { n as grDividerSafelist, t as grDividerConfig } from "./chunks/config-CY0_6cMi2.js";
|
|
92
|
+
import { t as GrDivider_default } from "./components/GrDivider/chunks/GrDivider-xxq1_fIl.js";
|
|
87
93
|
import { n as grDrawerSafelist, t as grDrawerConfig } from "./chunks/config-D94Z9po52.js";
|
|
88
|
-
import { t as GrDrawer_default } from "./components/GrDrawer/chunks/GrDrawer-
|
|
89
|
-
import { t as GrDropdown_default } from "./components/GrDropdown/chunks/GrDropdown-
|
|
94
|
+
import { t as GrDrawer_default } from "./components/GrDrawer/chunks/GrDrawer-BSSuiNHU.js";
|
|
95
|
+
import { t as GrDropdown_default } from "./components/GrDropdown/chunks/GrDropdown-Bh6UK2M5.js";
|
|
90
96
|
import { n as grDropdownSafelist, t as grDropdownConfig } from "./chunks/config-BViooYNv.js";
|
|
91
97
|
import "./components/GrDropdown/index.js";
|
|
92
|
-
import { n as grDropdownMenuSafelist, t as grDropdownMenuConfig } from "./chunks/config-
|
|
93
|
-
import { a as isMenuSection, c as GrDropdownMenuItem_default, d as GrDropdownMenuDivider_default, i as isMenuAction, l as GrDropdownMenuGroup_default, n as GrDropdownMenuColumn_default, o as isMenuSeparator, r as GrDropdownMenu_default, s as GrDropdownMenuList_default, t as GrDropdownMenuColumns_default, u as GrDropdownMenuHeader_default } from "./components/GrDropdownMenu/chunks/GrDropdownMenu-
|
|
98
|
+
import { n as grDropdownMenuSafelist, t as grDropdownMenuConfig } from "./chunks/config-BKvX0q102.js";
|
|
99
|
+
import { a as isMenuSection, c as GrDropdownMenuItem_default, d as GrDropdownMenuDivider_default, i as isMenuAction, l as GrDropdownMenuGroup_default, n as GrDropdownMenuColumn_default, o as isMenuSeparator, r as GrDropdownMenu_default, s as GrDropdownMenuList_default, t as GrDropdownMenuColumns_default, u as GrDropdownMenuHeader_default } from "./components/GrDropdownMenu/chunks/GrDropdownMenu-LyfEFUbg.js";
|
|
94
100
|
import { t as GrEmptyState_default } from "./components/GrEmptyState/chunks/GrEmptyState-W7Irx3vc.js";
|
|
95
101
|
import { i as GR_EMPTY_STATE_VARIANTS, n as grEmptyStateSafelist, r as GR_EMPTY_STATE_HEADING_LEVELS, t as grEmptyStateConfig } from "./chunks/config-DvQIb4kb.js";
|
|
96
|
-
import { t as GrProgressBar_default } from "./components/GrProgressBar/chunks/GrProgressBar-
|
|
97
|
-
import { a as createFileEntry, i as GrUploadHttpError, n as GR_UPLOAD_STATE_IDLE, o as summarizeFileEntries, r as GrUploadAbortError, t as GrFileUpload_default } from "./components/GrFileUpload/chunks/GrFileUpload-
|
|
102
|
+
import { t as GrProgressBar_default } from "./components/GrProgressBar/chunks/GrProgressBar-xwbNM9QB.js";
|
|
103
|
+
import { a as createFileEntry, i as GrUploadHttpError, n as GR_UPLOAD_STATE_IDLE, o as summarizeFileEntries, r as GrUploadAbortError, t as GrFileUpload_default } from "./components/GrFileUpload/chunks/GrFileUpload-DuDzC43S.js";
|
|
98
104
|
import { n as grFileUploadSafelist, t as grFileUploadConfig } from "./chunks/config-CN970ZcJ.js";
|
|
99
105
|
import { t as GrForm_default } from "./components/GrForm/chunks/GrForm-BCHCfIMv.js";
|
|
100
106
|
import { t as grFormConfig } from "./chunks/config-Droqn55j.js";
|
|
@@ -104,14 +110,13 @@ import { t as GrFormFile_default } from "./components/GrFormFile/chunks/GrFormFi
|
|
|
104
110
|
import { n as grFormFileSafelist, t as grFormFileConfig } from "./chunks/config-COvrUfhR.js";
|
|
105
111
|
import { n as grFormSectionSafelist, r as GR_FORM_SECTION_HEADING_LEVELS, t as grFormSectionConfig } from "./chunks/config-DhHbU3zO.js";
|
|
106
112
|
import { t as GrFormSection_default } from "./components/GrFormSection/chunks/GrFormSection-BEh5n4jF.js";
|
|
107
|
-
import {
|
|
108
|
-
import { t as GrImageViewer_default } from "./components/GrImageViewer/chunks/GrImageViewer-BeCnE8XQ.js";
|
|
113
|
+
import { t as GrImageViewer_default } from "./components/GrImageViewer/chunks/GrImageViewer-DfD4euH5.js";
|
|
109
114
|
import { n as grImageViewerSafelist, t as grImageViewerConfig } from "./chunks/config-BeZRuonp.js";
|
|
110
115
|
import { n as grInputSafelist, t as grInputConfig } from "./chunks/config-DpeQchsV.js";
|
|
111
116
|
import "./components/GrInput/index.js";
|
|
112
117
|
import { n as grInputTagSafelist, t as grInputTagConfig } from "./chunks/config-BN4sXYXn.js";
|
|
113
|
-
import { t as GrInputTag_default } from "./components/GrInputTag/chunks/GrInputTag-
|
|
114
|
-
import { n as grKbdSafelist, t as grKbdConfig } from "./chunks/config-
|
|
118
|
+
import { t as GrInputTag_default } from "./components/GrInputTag/chunks/GrInputTag-CyV2eY7Z.js";
|
|
119
|
+
import { n as grKbdSafelist, t as grKbdConfig } from "./chunks/config-DA6SnEoy.js";
|
|
115
120
|
import "./components/GrKbd/index.js";
|
|
116
121
|
import { n as grLinkSafelist, t as grLinkConfig } from "./chunks/config-Cl4ST6Qd.js";
|
|
117
122
|
import "./components/GrLink/index.js";
|
|
@@ -124,58 +129,62 @@ import "./components/GrModal/index.js";
|
|
|
124
129
|
import { t as GrNavbar_default } from "./components/GrNavbar/chunks/GrNavbar-CF0KbM_6.js";
|
|
125
130
|
import { n as grNavbarSafelist, t as grNavbarConfig } from "./chunks/config-Bpt9Xbxm.js";
|
|
126
131
|
import { n as grNumberInputSafelist, t as grNumberInputConfig } from "./chunks/config-zjeAJ4ho.js";
|
|
127
|
-
import { t as GrNumberInput_default } from "./components/GrNumberInput/chunks/GrNumberInput-
|
|
128
|
-
import { t as GrSelect_default } from "./components/GrSelect/chunks/GrSelect-
|
|
132
|
+
import { t as GrNumberInput_default } from "./components/GrNumberInput/chunks/GrNumberInput-B5CHZDBj.js";
|
|
133
|
+
import { t as GrSelect_default } from "./components/GrSelect/chunks/GrSelect-B-Voni7D.js";
|
|
129
134
|
import { n as grPaginationSafelist, t as grPaginationConfig } from "./chunks/config-DSJY6aEl.js";
|
|
130
|
-
import { t as GrPagination_default } from "./components/GrPagination/chunks/GrPagination-
|
|
135
|
+
import { t as GrPagination_default } from "./components/GrPagination/chunks/GrPagination-BM4FrD6Q.js";
|
|
131
136
|
import { n as grPopoverSafelist, t as grPopoverConfig } from "./chunks/config-BSyiFlbi.js";
|
|
132
137
|
import "./components/GrPopover/index.js";
|
|
133
138
|
import { n as grProgressBarSafelist, r as GR_TONES, t as grProgressBarConfig } from "./chunks/config-CQzGyi1C.js";
|
|
134
139
|
import "./components/GrProgressBar/index.js";
|
|
135
|
-
import { i as clampProgress, n as GR_PROGRESS_CIRCLE_SHAPES, r as arcGeometry, t as GrProgressCircle_default } from "./components/GrProgressCircle/chunks/GrProgressCircle-
|
|
136
|
-
import { n as grProgressCircleSafelist, t as grProgressCircleConfig } from "./chunks/config-
|
|
140
|
+
import { i as clampProgress, n as GR_PROGRESS_CIRCLE_SHAPES, r as arcGeometry, t as GrProgressCircle_default } from "./components/GrProgressCircle/chunks/GrProgressCircle-B8olXRo5.js";
|
|
141
|
+
import { n as grProgressCircleSafelist, t as grProgressCircleConfig } from "./chunks/config-MRvhUl-O.js";
|
|
137
142
|
import { t as grPromptDialogConfig } from "./chunks/config-C0Ea9ePP.js";
|
|
138
143
|
import "./components/GrPromptDialog/index.js";
|
|
139
144
|
import { n as grRadioSafelist, t as grRadioConfig } from "./chunks/config-BqFjr3tN.js";
|
|
140
|
-
import { n as GR_RADIO_GROUP_CONTEXT, t as GrRadio_default } from "./components/GrRadio/chunks/GrRadio-
|
|
141
|
-
import { t as GrRadioGroup_default } from "./components/GrRadioGroup/chunks/GrRadioGroup-
|
|
145
|
+
import { n as GR_RADIO_GROUP_CONTEXT, t as GrRadio_default } from "./components/GrRadio/chunks/GrRadio-DWiRaMzt.js";
|
|
146
|
+
import { t as GrRadioGroup_default } from "./components/GrRadioGroup/chunks/GrRadioGroup-DIuBw0wk.js";
|
|
142
147
|
import { t as grRadioGroupConfig } from "./chunks/config-QaIc_gRa.js";
|
|
143
|
-
import { n as grRatingSafelist, t as grRatingConfig } from "./chunks/config-
|
|
144
|
-
import { t as GrRating_default } from "./components/GrRating/chunks/GrRating-
|
|
148
|
+
import { n as grRatingSafelist, t as grRatingConfig } from "./chunks/config-Baj7Wvx-.js";
|
|
149
|
+
import { t as GrRating_default } from "./components/GrRating/chunks/GrRating-DVFH3lYu.js";
|
|
145
150
|
import { n as grSegmentedSafelist, r as GR_SEGMENTED_ORIENTATIONS, t as grSegmentedConfig } from "./chunks/config-B-iNaGdw.js";
|
|
146
|
-
import { t as GrSegmented_default } from "./components/GrSegmented/chunks/GrSegmented-
|
|
151
|
+
import { t as GrSegmented_default } from "./components/GrSegmented/chunks/GrSegmented-CQw3ijqa.js";
|
|
147
152
|
import { n as grSelectSafelist, t as grSelectConfig } from "./chunks/config-Cwd3yjRw.js";
|
|
148
153
|
import "./components/GrSelect/index.js";
|
|
149
|
-
import { i as GR_SIDEBAR_POSITIONS, n as grSidebarSafelist, r as GR_SIDEBAR_LANDMARKS, t as grSidebarConfig } from "./chunks/config-
|
|
150
|
-
import { n as GrSidebarItem_default, r as GrSidebar_default, t as GrSidebarGroup_default } from "./components/GrSidebar/chunks/GrSidebar-
|
|
151
|
-
import { t as grSkeletonConfig } from "./chunks/config-
|
|
154
|
+
import { i as GR_SIDEBAR_POSITIONS, n as grSidebarSafelist, r as GR_SIDEBAR_LANDMARKS, t as grSidebarConfig } from "./chunks/config-Rw9OyW702.js";
|
|
155
|
+
import { n as GrSidebarItem_default, r as GrSidebar_default, t as GrSidebarGroup_default } from "./components/GrSidebar/chunks/GrSidebar-i7AxjhY_.js";
|
|
156
|
+
import { t as grSkeletonConfig } from "./chunks/config-8Pcutu1j2.js";
|
|
152
157
|
import "./components/GrSkeleton/index.js";
|
|
153
|
-
import { n as grSliderSafelist, t as grSliderConfig } from "./chunks/config-
|
|
158
|
+
import { n as grSliderSafelist, t as grSliderConfig } from "./chunks/config-T3qdQBgU2.js";
|
|
154
159
|
import "./components/GrSlider/index.js";
|
|
155
|
-
import { n as
|
|
156
|
-
import {
|
|
157
|
-
import { n as
|
|
158
|
-
import { n as
|
|
159
|
-
import { n as
|
|
160
|
-
import { t as
|
|
160
|
+
import { n as grSortableListSafelist, t as grSortableListConfig } from "./chunks/config-DAX8Deh1.js";
|
|
161
|
+
import { t as GrSortableList_default } from "./components/GrSortableList/chunks/GrSortableList-XB7mXM1W.js";
|
|
162
|
+
import { n as grSplitterSafelist, t as grSplitterConfig } from "./chunks/config-BE6n20np2.js";
|
|
163
|
+
import { a as sizeFromPointer, i as shouldCollapse, n as GR_SPLITTER_ORIENTATIONS, r as clampSize, t as GrSplitter_default } from "./components/GrSplitter/chunks/GrSplitter-BzxVQwbY.js";
|
|
164
|
+
import { n as formatStatisticValue, t as GrStatistic_default } from "./components/GrStatistic/chunks/GrStatistic-DOsM6s5V.js";
|
|
165
|
+
import { n as grStatisticSafelist, t as grStatisticConfig } from "./chunks/config-Be9k9bOf.js";
|
|
166
|
+
import { n as grSwitchSafelist, t as grSwitchConfig } from "./chunks/config-BoNR7_PD2.js";
|
|
167
|
+
import { t as GrSwitch_default } from "./components/GrSwitch/chunks/GrSwitch-DpyvVrZG.js";
|
|
161
168
|
import { n as grTableSafelist, t as grTableConfig } from "./chunks/config-WTNhdh6T2.js";
|
|
162
169
|
import "./components/GrTable/index.js";
|
|
163
170
|
import { n as GrTabPanels_default, r as GR_TAB_PANELS_KEY, t as GrTabPanel_default } from "./components/GrTabPanels/chunks/GrTabPanels-BVe1CZdJ.js";
|
|
164
|
-
import { t as grTabPanelsConfig } from "./chunks/config-
|
|
171
|
+
import { t as grTabPanelsConfig } from "./chunks/config-eXB87DOi.js";
|
|
165
172
|
import { n as grTabsSafelist, r as GR_TABS_VARIANTS, t as grTabsConfig } from "./chunks/config-_qPUfb6-2.js";
|
|
166
|
-
import { t as GrTabs_default } from "./components/GrTabs/chunks/GrTabs-
|
|
167
|
-
import { n as grTextareaSafelist, t as grTextareaConfig } from "./chunks/config-
|
|
173
|
+
import { t as GrTabs_default } from "./components/GrTabs/chunks/GrTabs-f3-oQenu.js";
|
|
174
|
+
import { n as grTextareaSafelist, t as grTextareaConfig } from "./chunks/config-BDfTXHo12.js";
|
|
168
175
|
import "./components/GrTextarea/index.js";
|
|
169
|
-
import { i as GR_TIMELINE_HEADING_LEVELS, n as GrTimeline_default, r as groupTimelineItems, t as GrTimelineItem_default } from "./components/GrTimeline/chunks/GrTimeline-
|
|
170
|
-
import { n as grTimelineSafelist, t as grTimelineConfig } from "./chunks/config-
|
|
176
|
+
import { i as GR_TIMELINE_HEADING_LEVELS, n as GrTimeline_default, r as groupTimelineItems, t as GrTimelineItem_default } from "./components/GrTimeline/chunks/GrTimeline-B-h2Yanw.js";
|
|
177
|
+
import { n as grTimelineSafelist, t as grTimelineConfig } from "./chunks/config-COpuWGr_.js";
|
|
171
178
|
import { GRANULARITY_TOAST_STATE, granularityToastPlugin, useToast } from "./composables/useToast.js";
|
|
172
|
-
import { n as grToasterSafelist, t as grToasterConfig } from "./chunks/config-
|
|
173
|
-
import { t as GrToaster_default } from "./components/GrToaster/chunks/GrToaster-
|
|
174
|
-
import { n as grTooltipSafelist, t as grTooltipConfig } from "./chunks/config-
|
|
175
|
-
import { t as GrTooltip_default } from "./components/GrTooltip/chunks/GrTooltip-
|
|
176
|
-
import { t as GrTree_default } from "./components/GrTree/chunks/GrTree-
|
|
177
|
-
import { n as grTreeSafelist, t as grTreeConfig } from "./chunks/config-
|
|
179
|
+
import { n as grToasterSafelist, t as grToasterConfig } from "./chunks/config-ScuvHw6k2.js";
|
|
180
|
+
import { t as GrToaster_default } from "./components/GrToaster/chunks/GrToaster-Dqja0Lf9.js";
|
|
181
|
+
import { n as grTooltipSafelist, t as grTooltipConfig } from "./chunks/config-CN2ULSQL.js";
|
|
182
|
+
import { t as GrTooltip_default } from "./components/GrTooltip/chunks/GrTooltip-Cn08heWz.js";
|
|
183
|
+
import { t as GrTree_default } from "./components/GrTree/chunks/GrTree-BR9a2pay.js";
|
|
184
|
+
import { n as grTreeSafelist, t as grTreeConfig } from "./chunks/config-CDat1wXf2.js";
|
|
178
185
|
import { n as grTreeSelectSafelist, t as grTreeSelectConfig } from "./chunks/config-DCFvmHEv.js";
|
|
179
|
-
import { t as GrTreeSelect_default } from "./components/GrTreeSelect/chunks/GrTreeSelect
|
|
186
|
+
import { t as GrTreeSelect_default } from "./components/GrTreeSelect/chunks/GrTreeSelect--muUeB0v.js";
|
|
187
|
+
import "./composables/useGrComponentConfig.js";
|
|
188
|
+
import "./composables/useGranularityTranslations.js";
|
|
180
189
|
import { GRANULARITY_THEME_STATE, granularityThemePlugin, initThemeEarly, useTheme } from "./composables/useTheme.js";
|
|
181
|
-
export { DEFAULT_AUTO_HIDE_KINDS, DEFAULT_GR_DIALOG_BODY_CONFIG, DEFAULT_GR_DIALOG_FOOTER_CONFIG, DEFAULT_GR_DIALOG_HEADER_CONFIG, DEFAULT_RESPONSE_ERROR_TEXTS, DEFAULT_TONE_BY_KIND, FILE_VALIDATION_I18N_NAMESPACE, FileValidationError, GRANULARITY_DIALOG_SERVICE_STATE, GRANULARITY_THEME_STATE, GRANULARITY_TOAST_STATE, GR_ALERT_VARIANTS, GR_AVATAR_STATUSES, GR_BADGE_WRAP_PLACEMENTS, GR_BOTTOM_NAV_HIDE_ABOVE, GR_BOTTOM_NAV_POSITIONS, GR_CHECKBOX_GROUP_CONTEXT, GR_COLLAPSE_CONTEXT, GR_COLLAPSE_HEADING_LEVELS, GR_COLLAPSE_ICON_POSITIONS, GR_COMPONENT_SIZES, GR_CONFIG_KEY, GR_EMPTY_STATE_HEADING_LEVELS, GR_EMPTY_STATE_VARIANTS, GR_FORM_FIELD_KEY, GR_FORM_KEY, GR_FORM_SECTION_HEADING_LEVELS, GR_PROGRESS_CIRCLE_SHAPES, GR_RADIO_GROUP_CONTEXT, GR_SEGMENTED_ORIENTATIONS, GR_SIDEBAR_LANDMARKS, GR_SIDEBAR_POSITIONS, GR_SKELETON_VARIANTS, GR_SPLITTER_ORIENTATIONS, GR_TABS_VARIANTS, GR_TAB_PANELS_KEY, GR_TIMELINE_HEADING_LEVELS, GR_TONES, GR_UPLOAD_STATE_IDLE, GrAlert_default as GrAlert, GrAutocomplete_default as GrAutocomplete, GrAvatar_default as GrAvatar, GrAvatarGroup_default as GrAvatarGroup, GrBadge_default as GrBadge, GrBadgeWrap_default as GrBadgeWrap, GrBottomNav_default as GrBottomNav, GrBreadcrumbs_default as GrBreadcrumbs, GrButton_default as GrButton, GrButtonGroup_default as GrButtonGroup, GrCard_default as GrCard, GrCheckbox_default as GrCheckbox, GrCheckboxGroup_default as GrCheckboxGroup, GrCollapse_default as GrCollapse, GrCollapseItem_default as GrCollapseItem, GrColorPicker_default as GrColorPicker, GrCommandPalette_default as GrCommandPalette, GrConfigProvider_default as GrConfigProvider, GrConfirmDialog_default as GrConfirmDialog, GrDataTable_default as GrDataTable, GrDialog_default as GrDialog, GrDialogCloseButton_default as GrDialogCloseButton, GrDialogFooter_default as GrDialogFooter, GrDialogHeader_default as GrDialogHeader, GrDialogServiceHost_default as GrDialogServiceHost, GrDivider_default as GrDivider, GrDrawer_default as GrDrawer, GrDropdown_default as GrDropdown, GrDropdownMenu_default as GrDropdownMenu, GrDropdownMenuColumn_default as GrDropdownMenuColumn, GrDropdownMenuColumns_default as GrDropdownMenuColumns, GrDropdownMenuDivider_default as GrDropdownMenuDivider, GrDropdownMenuGroup_default as GrDropdownMenuGroup, GrDropdownMenuHeader_default as GrDropdownMenuHeader, GrDropdownMenuItem_default as GrDropdownMenuItem, GrDropdownMenuList_default as GrDropdownMenuList, GrEmptyState_default as GrEmptyState, GrFileUpload_default as GrFileUpload, GrForm_default as GrForm, GrFormErrorBanner_default as GrFormErrorBanner, GrFormField_default as GrFormField, GrFormFile_default as GrFormFile, GrFormSection_default as GrFormSection, GrIcon_default as GrIcon, GrImageViewer_default as GrImageViewer, GrInput_default as GrInput, GrInputTag_default as GrInputTag, GrKbd_default as GrKbd, GrLink_default as GrLink, GrList_default as GrList, GrListItem_default as GrListItem, GrLoading_default as GrLoading, GrModal_default as GrModal, GrNavbar_default as GrNavbar, GrNumberInput_default as GrNumberInput, GrPagination_default as GrPagination, GrPopover_default as GrPopover, GrProgressBar_default as GrProgressBar, GrProgressCircle_default as GrProgressCircle, GrPromptDialog_default as GrPromptDialog, GrRadio_default as GrRadio, GrRadioGroup_default as GrRadioGroup, GrRating_default as GrRating, GrResponseErrorBanner_default as GrResponseErrorBanner, GrSegmented_default as GrSegmented, GrSelect_default as GrSelect, GrSidebar_default as GrSidebar, GrSidebarGroup_default as GrSidebarGroup, GrSidebarItem_default as GrSidebarItem, GrSkeleton_default as GrSkeleton, GrSlider_default as GrSlider, GrSplitter_default as GrSplitter, GrStatistic_default as GrStatistic, GrSwitch_default as GrSwitch, GrTabPanel_default as GrTabPanel, GrTabPanels_default as GrTabPanels, GrTable_default as GrTable, GrTabs_default as GrTabs, GrTextarea_default as GrTextarea, GrTimeline_default as GrTimeline, GrTimelineItem_default as GrTimelineItem, GrToaster_default as GrToaster, GrTooltip_default as GrTooltip, GrTree_default as GrTree, GrTreeSelect_default as GrTreeSelect, GrUploadAbortError, GrUploadErrorBanner_default as GrUploadErrorBanner, GrUploadHttpError, abortErrorParser, acceptValidator, allowedExtensionsValidator, allowedMimeTypesValidator, arcGeometry, clampProgress, clampSize, compareCells, coreResponseErrorParsers, createFileEntry, createGrFormMessageResolver, createLoading, createResponseErrorClassifier, defaultResponseErrorParsers, dialogService, extendDefaultParsers, fileValidationI18nKey, fileValidationParser, filterCommandItems, formatBadgeValue, formatHexColor, formatStatisticValue, getByPath, grAlertConfig, grAutocompleteConfig, grAutocompleteSafelist, grAvatarConfig, grAvatarSafelist, grBadgeConfig, grBadgeSafelist, grBadgeWrapConfig, grBadgeWrapSafelist, grBottomNavConfig, grBottomNavSafelist, grBreadcrumbsConfig, grBreadcrumbsSafelist, grButtonClass, grButtonConfig, grButtonGroupConfig, grButtonSafelist, grCardConfig, grCardSafelist, grCheckboxConfig, grCheckboxGroupConfig, grCheckboxSafelist, grCollapseConfig, grCollapseSafelist, grColorPickerConfig, grColorPickerSafelist, grCommandPaletteConfig, grCommandPaletteSafelist, grConfigProviderConfig, grConfirmDialogConfig, grDataTableConfig, grDataTableSafelist, grDialogSafelist, grDialogServiceConfig, grDividerConfig, grDividerSafelist, grDrawerConfig, grDrawerSafelist, grDropdownConfig, grDropdownMenuConfig, grDropdownMenuSafelist, grDropdownSafelist, grEmptyStateConfig, grEmptyStateSafelist, grFileUploadConfig, grFileUploadSafelist, grFormConfig, grFormFieldConfig, grFormFieldSafelist, grFormFileConfig, grFormFileSafelist, grFormSectionConfig, grFormSectionSafelist, grIconConfig, grIconSafelist, grImageViewerConfig, grImageViewerSafelist, grInputConfig, grInputSafelist, grInputTagConfig, grInputTagSafelist, grKbdConfig, grKbdSafelist, grLinkConfig, grLinkSafelist, grListConfig, grListSafelist, grLoadingConfig, grLoadingSafelist, grModalConfig, grModalSafelist, grNavbarConfig, grNavbarSafelist, grNumberInputConfig, grNumberInputSafelist, grPaginationConfig, grPaginationSafelist, grPopoverConfig, grPopoverSafelist, grProgressBarConfig, grProgressBarSafelist, grProgressCircleConfig, grProgressCircleSafelist, grPromptDialogConfig, grRadioConfig, grRadioGroupConfig, grRadioSafelist, grRatingConfig, grRatingSafelist, grSegmentedConfig, grSegmentedSafelist, grSelectConfig, grSelectSafelist, grSidebarConfig, grSidebarSafelist, grSkeletonConfig, grSliderConfig, grSliderSafelist, grSplitterConfig, grSplitterSafelist, grStatisticConfig, grStatisticSafelist, grSwitchConfig, grSwitchSafelist, grTabPanelsConfig, grTableConfig, grTableSafelist, grTabsConfig, grTabsSafelist, grTextareaConfig, grTextareaSafelist, grTimelineConfig, grTimelineSafelist, grToasterConfig, grToasterSafelist, grTooltipConfig, grTooltipSafelist, grTreeConfig, grTreeSafelist, grTreeSelectConfig, grTreeSelectSafelist, granularityDialogServicePlugin, granularityThemePlugin, granularityToastPlugin, groupCommandItems, groupTimelineItems, httpStatusParser, initThemeEarly, initialsFrom, isEmpty, isEmptyCell, isMenuAction, isMenuSection, isMenuSeparator, jsonApiErrorParser, laravelValidationParser, matchAccept, matchCommandItem, maxCountValidator, maxFileSize, maxTotalSizeBytesValidator, networkErrorParser, normalizeError, normalizeFiles, parseHexColor, plainMessageParser, problemDetailsParser, resolveBreadcrumbsFit, resolveBreadcrumbsLayout, resolveFileValidationMessage, resolveGrConfig, resolveGrDialogSectionConfig, resolveGrDialogTitle, resolveResponseErrorTitle, responseErrorParserPresets, runFieldRules, runFileValidators, shouldCollapse, sizeFromPointer, sortRows, summarizeFileEntries, teardownDialogService, useAnnouncer, useDialogService, useDismissible, useFloating, useFocusTrap, useGrButtonGroup, useGrComponentDefaults, useGrComponentProp, useGrComponentSize, useGrConfig, useGrFormContext, useGrFormControl, useGrFormFieldContext, useOverlayLayer, usePortalTarget, useResponseError, useTheme, useToast, useVirtualList, vAutofocus, vAutosize, vClickOutside, vDropzone, vHotkey, vLoading };
|
|
190
|
+
export { DEFAULT_AUTO_HIDE_KINDS, DEFAULT_GR_DIALOG_BODY_CONFIG, DEFAULT_GR_DIALOG_FOOTER_CONFIG, DEFAULT_GR_DIALOG_HEADER_CONFIG, DEFAULT_RESPONSE_ERROR_TEXTS, DEFAULT_TONE_BY_KIND, FILE_VALIDATION_I18N_NAMESPACE, FileValidationError, GRANULARITY_DIALOG_SERVICE_STATE, GRANULARITY_THEME_STATE, GRANULARITY_TOAST_STATE, GR_ALERT_VARIANTS, GR_AVATAR_STATUSES, GR_BADGE_WRAP_PLACEMENTS, GR_BOTTOM_NAV_HIDE_ABOVE, GR_BOTTOM_NAV_POSITIONS, GR_CHECKBOX_GROUP_CONTEXT, GR_COLLAPSE_CONTEXT, GR_COLLAPSE_HEADING_LEVELS, GR_COLLAPSE_ICON_POSITIONS, GR_COMPONENT_SIZES, GR_CONFIG_KEY, GR_EMPTY_STATE_HEADING_LEVELS, GR_EMPTY_STATE_VARIANTS, GR_FORM_FIELD_KEY, GR_FORM_KEY, GR_FORM_SECTION_HEADING_LEVELS, GR_KBD_TOKENS, GR_PROGRESS_CIRCLE_SHAPES, GR_RADIO_GROUP_CONTEXT, GR_SEGMENTED_ORIENTATIONS, GR_SIDEBAR_LANDMARKS, GR_SIDEBAR_POSITIONS, GR_SKELETON_VARIANTS, GR_SPLITTER_ORIENTATIONS, GR_TABS_VARIANTS, GR_TAB_PANELS_KEY, GR_TIMELINE_HEADING_LEVELS, GR_TONES, GR_UPLOAD_STATE_IDLE, GrAlert_default as GrAlert, GrAutocomplete_default as GrAutocomplete, GrAvatar_default as GrAvatar, GrAvatarGroup_default as GrAvatarGroup, GrBadge_default as GrBadge, GrBadgeWrap_default as GrBadgeWrap, GrBottomNav_default as GrBottomNav, GrBreadcrumbs_default as GrBreadcrumbs, GrButton_default as GrButton, GrButtonGroup_default as GrButtonGroup, GrCard_default as GrCard, GrCheckbox_default as GrCheckbox, GrCheckboxGroup_default as GrCheckboxGroup, GrCollapse_default as GrCollapse, GrCollapseItem_default as GrCollapseItem, GrColorPicker_default as GrColorPicker, GrCommandPalette_default as GrCommandPalette, GrConfigProvider_default as GrConfigProvider, GrConfirmDialog_default as GrConfirmDialog, GrDataTable_default as GrDataTable, GrDialog_default as GrDialog, GrDialogCloseButton_default as GrDialogCloseButton, GrDialogFooter_default as GrDialogFooter, GrDialogHeader_default as GrDialogHeader, GrDialogServiceHost_default as GrDialogServiceHost, GrDivider_default as GrDivider, GrDrawer_default as GrDrawer, GrDropdown_default as GrDropdown, GrDropdownMenu_default as GrDropdownMenu, GrDropdownMenuColumn_default as GrDropdownMenuColumn, GrDropdownMenuColumns_default as GrDropdownMenuColumns, GrDropdownMenuDivider_default as GrDropdownMenuDivider, GrDropdownMenuGroup_default as GrDropdownMenuGroup, GrDropdownMenuHeader_default as GrDropdownMenuHeader, GrDropdownMenuItem_default as GrDropdownMenuItem, GrDropdownMenuList_default as GrDropdownMenuList, GrEmptyState_default as GrEmptyState, GrFileUpload_default as GrFileUpload, GrForm_default as GrForm, GrFormErrorBanner_default as GrFormErrorBanner, GrFormField_default as GrFormField, GrFormFile_default as GrFormFile, GrFormSection_default as GrFormSection, GrIcon_default as GrIcon, GrImageViewer_default as GrImageViewer, GrInput_default as GrInput, GrInputTag_default as GrInputTag, GrKbd_default as GrKbd, GrLink_default as GrLink, GrList_default as GrList, GrListItem_default as GrListItem, GrLoading_default as GrLoading, GrModal_default as GrModal, GrNavbar_default as GrNavbar, GrNumberInput_default as GrNumberInput, GrPagination_default as GrPagination, GrPopover_default as GrPopover, GrProgressBar_default as GrProgressBar, GrProgressCircle_default as GrProgressCircle, GrPromptDialog_default as GrPromptDialog, GrRadio_default as GrRadio, GrRadioGroup_default as GrRadioGroup, GrRating_default as GrRating, GrResponseErrorBanner_default as GrResponseErrorBanner, GrSegmented_default as GrSegmented, GrSelect_default as GrSelect, GrSidebar_default as GrSidebar, GrSidebarGroup_default as GrSidebarGroup, GrSidebarItem_default as GrSidebarItem, GrSkeleton_default as GrSkeleton, GrSlider_default as GrSlider, GrSortableList_default as GrSortableList, GrSplitter_default as GrSplitter, GrStatistic_default as GrStatistic, GrSwitch_default as GrSwitch, GrTabPanel_default as GrTabPanel, GrTabPanels_default as GrTabPanels, GrTable_default as GrTable, GrTabs_default as GrTabs, GrTextarea_default as GrTextarea, GrTimeline_default as GrTimeline, GrTimelineItem_default as GrTimelineItem, GrToaster_default as GrToaster, GrTooltip_default as GrTooltip, GrTree_default as GrTree, GrTreeSelect_default as GrTreeSelect, GrUploadAbortError, GrUploadErrorBanner_default as GrUploadErrorBanner, GrUploadHttpError, abortErrorParser, acceptValidator, allowedExtensionsValidator, allowedMimeTypesValidator, arcGeometry, clampProgress, clampSize, compareCells, coreResponseErrorParsers, createFileEntry, createGrFormMessageResolver, createLoading, createResponseErrorClassifier, defaultResponseErrorParsers, dialogService, extendDefaultParsers, fileValidationI18nKey, fileValidationParser, filterCommandItems, findKbdToken, formatBadgeValue, formatHexColor, formatStatisticValue, getByPath, grAlertConfig, grAutocompleteConfig, grAutocompleteSafelist, grAvatarConfig, grAvatarSafelist, grBadgeConfig, grBadgeSafelist, grBadgeWrapConfig, grBadgeWrapSafelist, grBottomNavConfig, grBottomNavSafelist, grBreadcrumbsConfig, grBreadcrumbsSafelist, grButtonClass, grButtonConfig, grButtonGroupConfig, grButtonSafelist, grCardConfig, grCardSafelist, grCheckboxConfig, grCheckboxGroupConfig, grCheckboxSafelist, grCollapseConfig, grCollapseSafelist, grColorPickerConfig, grColorPickerSafelist, grCommandPaletteConfig, grCommandPaletteSafelist, grConfigProviderConfig, grConfirmDialogConfig, grDataTableConfig, grDataTableSafelist, grDialogSafelist, grDialogServiceConfig, grDividerConfig, grDividerSafelist, grDrawerConfig, grDrawerSafelist, grDropdownConfig, grDropdownMenuConfig, grDropdownMenuSafelist, grDropdownSafelist, grEmptyStateConfig, grEmptyStateSafelist, grFileUploadConfig, grFileUploadSafelist, grFormConfig, grFormFieldConfig, grFormFieldSafelist, grFormFileConfig, grFormFileSafelist, grFormSectionConfig, grFormSectionSafelist, grIconConfig, grIconSafelist, grImageViewerConfig, grImageViewerSafelist, grInputConfig, grInputSafelist, grInputTagConfig, grInputTagSafelist, grKbdConfig, grKbdSafelist, grLinkConfig, grLinkSafelist, grListConfig, grListSafelist, grLoadingConfig, grLoadingSafelist, grModalConfig, grModalSafelist, grNavbarConfig, grNavbarSafelist, grNumberInputConfig, grNumberInputSafelist, grPaginationConfig, grPaginationSafelist, grPopoverConfig, grPopoverSafelist, grProgressBarConfig, grProgressBarSafelist, grProgressCircleConfig, grProgressCircleSafelist, grPromptDialogConfig, grRadioConfig, grRadioGroupConfig, grRadioSafelist, grRatingConfig, grRatingSafelist, grSegmentedConfig, grSegmentedSafelist, grSelectConfig, grSelectSafelist, grSidebarConfig, grSidebarSafelist, grSkeletonConfig, grSliderConfig, grSliderSafelist, grSortableListConfig, grSortableListSafelist, grSplitterConfig, grSplitterSafelist, grStatisticConfig, grStatisticSafelist, grSwitchConfig, grSwitchSafelist, grTabPanelsConfig, grTableConfig, grTableSafelist, grTabsConfig, grTabsSafelist, grTextareaConfig, grTextareaSafelist, grTimelineConfig, grTimelineSafelist, grToasterConfig, grToasterSafelist, grTooltipConfig, grTooltipSafelist, grTreeConfig, grTreeSafelist, grTreeSelectConfig, grTreeSelectSafelist, granularityDialogServicePlugin, granularityThemePlugin, granularityToastPlugin, groupCommandItems, groupTimelineItems, httpStatusParser, initThemeEarly, initialsFrom, isEmpty, isEmptyCell, isMenuAction, isMenuSection, isMenuSeparator, jsonApiErrorParser, laravelValidationParser, matchAccept, matchCommandItem, maxCountValidator, maxFileSize, maxTotalSizeBytesValidator, networkErrorParser, normalizeError, normalizeFiles, parseHexColor, plainMessageParser, problemDetailsParser, resolveBreadcrumbsFit, resolveBreadcrumbsLayout, resolveFileValidationMessage, resolveGrConfig, resolveGrDialogSectionConfig, resolveGrDialogTitle, resolveResponseErrorTitle, responseErrorParserPresets, runFieldRules, runFileValidators, shouldCollapse, sizeFromPointer, sortRows, summarizeFileEntries, teardownDialogService, useAnnouncer, useComboboxNavigation, useDialogService, useDismissible, useDragGesture, useDragSort, useFloating, useFocusTrap, useGrButtonGroup, useGrComponentDefaults, useGrComponentProp, useGrComponentSize, useGrConfig, useGrFormContext, useGrFormControl, useGrFormFieldContext, useGrThemeAttrs, useGranularityTranslations, useOverlayLayer, usePortalTarget, useResponseError, useRovingFocus, useTheme, useToast, useVirtualList, vAutofocus, vAutosize, vClickOutside, vDropzone, vHotkey, vLoading };
|
|
@@ -138,7 +138,12 @@
|
|
|
138
138
|
/* Navigation roles */
|
|
139
139
|
--gr-sidebar: #1e293b;
|
|
140
140
|
--gr-sidebar-fg: #f8fafc;
|
|
141
|
-
|
|
141
|
+
/*
|
|
142
|
+
* Белый текст на #6366f1 даёт 4.47:1 — тот же недолёт AA, из-за которого
|
|
143
|
+
* перекрашен `--gr-primary` (заметка выше). Здесь взят минимальный шаг, снимающий
|
|
144
|
+
* недолёт без смены вида: 4.52:1 при ΔE 0.42 к прежнему цвету.
|
|
145
|
+
*/
|
|
146
|
+
--gr-sidebar-primary: #6365f0;
|
|
142
147
|
--gr-sidebar-primary-fg: #ffffff;
|
|
143
148
|
--gr-sidebar-accent: #334155;
|
|
144
149
|
--gr-sidebar-accent-fg: #f1f5f9;
|
package/dist/testing.js
ADDED
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { n as GR_CONFIG_KEY } from "./chunks/context-BSYR7RZs.js";
|
|
2
|
+
import { t as GRANULARITY_I18N_KEY } from "./chunks/adapter-CAOxmn2G.js";
|
|
3
|
+
import { n as resetPortalRoot } from "./chunks/portalRoot-CVhCgdG6.js";
|
|
4
|
+
import { resetAnnouncer } from "./composables/useAnnouncer.js";
|
|
5
|
+
import { useToast } from "./composables/useToast.js";
|
|
6
|
+
import { computed, ref } from "vue";
|
|
7
|
+
//#region src/testing/pointer.ts
|
|
8
|
+
/**
|
|
9
|
+
* Указательные жесты в тестах.
|
|
10
|
+
*
|
|
11
|
+
* Две вещи, которые ломают наивную запись жеста, и обе неочевидны:
|
|
12
|
+
*
|
|
13
|
+
* 1. **`pointerdown` идёт в элемент, а `pointermove`/`pointerup`/`pointercancel` — в `window`.**
|
|
14
|
+
* Так слушает `useDragGesture` (и всё, что на нём стоит: слайдер, сплиттер,
|
|
15
|
+
* перестановка, смахивание тоста): нажатие приходит от разметки, а движение
|
|
16
|
+
* ловится глобально, иначе жест обрывался бы на выходе курсора за элемент.
|
|
17
|
+
* Тест, отправивший движение в тот же элемент, ничего не проверяет — и молча.
|
|
18
|
+
* 2. **`PointerEvent` в jsdom нет**, а `wrapper.trigger('pointerdown', { clientY })`
|
|
19
|
+
* падает на попытке записать `clientY`. Поэтому события собираются
|
|
20
|
+
* `MouseEvent`-ом и отправляются через `dispatchEvent`.
|
|
21
|
+
*
|
|
22
|
+
* Плюс `button: 0` по умолчанию: жест игнорирует неосновную кнопку, и без этого
|
|
23
|
+
* «перетаскивание» в тесте не начинается вовсе.
|
|
24
|
+
*/
|
|
25
|
+
/** Событие указателя: `MouseEvent`, потому что `PointerEvent` в jsdom не реализован. */
|
|
26
|
+
function pointer(type, init = {}) {
|
|
27
|
+
return new MouseEvent(type, {
|
|
28
|
+
bubbles: true,
|
|
29
|
+
...init
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
/** Нажатие: единственное событие жеста, которое адресуется элементу. */
|
|
33
|
+
function press(target, init = {}) {
|
|
34
|
+
target.dispatchEvent(pointer("pointerdown", {
|
|
35
|
+
button: 0,
|
|
36
|
+
...init
|
|
37
|
+
}));
|
|
38
|
+
}
|
|
39
|
+
function move(init = {}) {
|
|
40
|
+
window.dispatchEvent(pointer("pointermove", init));
|
|
41
|
+
}
|
|
42
|
+
function release(init = {}) {
|
|
43
|
+
window.dispatchEvent(pointer("pointerup", init));
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Обрыв жеста: система забрала указатель (системный жест, звонок, потеря окна).
|
|
47
|
+
* Отдельная ветка поведения у всех потребителей — смахивание возвращает тост,
|
|
48
|
+
* перестановка откатывает порядок, — поэтому проверяется отдельно от `release`.
|
|
49
|
+
*/
|
|
50
|
+
function cancelPointer(init = {}) {
|
|
51
|
+
window.dispatchEvent(pointer("pointercancel", init));
|
|
52
|
+
}
|
|
53
|
+
/** Жест целиком: нажали на элементе, провели, отпустили. */
|
|
54
|
+
function drag(target, from, to) {
|
|
55
|
+
press(target, from);
|
|
56
|
+
move(to);
|
|
57
|
+
release(to);
|
|
58
|
+
}
|
|
59
|
+
//#endregion
|
|
60
|
+
//#region src/testing/geometry.ts
|
|
61
|
+
/** Прямоугольник элемента. Незаданные стороны выводятся из заданных. */
|
|
62
|
+
function mockRect(target, rect) {
|
|
63
|
+
const left = rect.left ?? rect.x ?? 0;
|
|
64
|
+
const top = rect.top ?? rect.y ?? 0;
|
|
65
|
+
const width = rect.width ?? (rect.right ?? 0) - left;
|
|
66
|
+
const height = rect.height ?? (rect.bottom ?? 0) - top;
|
|
67
|
+
const value = {
|
|
68
|
+
x: left,
|
|
69
|
+
y: top,
|
|
70
|
+
left,
|
|
71
|
+
top,
|
|
72
|
+
width,
|
|
73
|
+
height,
|
|
74
|
+
right: rect.right ?? left + width,
|
|
75
|
+
bottom: rect.bottom ?? top + height,
|
|
76
|
+
toJSON: () => ({})
|
|
77
|
+
};
|
|
78
|
+
target.getBoundingClientRect = () => value;
|
|
79
|
+
}
|
|
80
|
+
/** Элементы подряд, встык, без зазоров: строки списка, ячейки шапки, деления шкалы. */
|
|
81
|
+
function stackRects(targets, options) {
|
|
82
|
+
const { size, axis = "vertical", start = 0, cross = 100 } = options;
|
|
83
|
+
let offset = start;
|
|
84
|
+
for (const target of targets) {
|
|
85
|
+
mockRect(target, axis === "vertical" ? {
|
|
86
|
+
top: offset,
|
|
87
|
+
height: size,
|
|
88
|
+
left: 0,
|
|
89
|
+
width: cross
|
|
90
|
+
} : {
|
|
91
|
+
left: offset,
|
|
92
|
+
width: size,
|
|
93
|
+
top: 0,
|
|
94
|
+
height: cross
|
|
95
|
+
});
|
|
96
|
+
offset += size;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
//#endregion
|
|
100
|
+
//#region src/testing/env.ts
|
|
101
|
+
/**
|
|
102
|
+
* Уборка между тестами.
|
|
103
|
+
*
|
|
104
|
+
* `document.body.innerHTML = ''` сам по себе оставляет пакет в разобранном
|
|
105
|
+
* состоянии: корень портала и хост живого региона закэшированы модулями, и
|
|
106
|
+
* после очистки `body` они указывают на узлы **вне документа**. Следующий
|
|
107
|
+
* монтаж телепортирует туда оверлеи, тест ищет их в документе и не находит —
|
|
108
|
+
* без единой ошибки в консоли. Очередь тостов переживает размонтирование по
|
|
109
|
+
* замыслу, поэтому её тоже гасим.
|
|
110
|
+
*/
|
|
111
|
+
function resetGranularityDom() {
|
|
112
|
+
useToast().clear();
|
|
113
|
+
resetAnnouncer();
|
|
114
|
+
resetPortalRoot();
|
|
115
|
+
if (typeof document !== "undefined") document.body.innerHTML = "";
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Ответ `matchMedia` — например «пользователь просил меньше движения».
|
|
119
|
+
*
|
|
120
|
+
* Не для того, чтобы «не падало»: сам пакет зовёт `matchMedia` опционально и без
|
|
121
|
+
* него живёт. Нужно, когда проверяется поведение **под** медиазапросом.
|
|
122
|
+
* Возвращает функцию отката: глобальное состояние обязано уйти вместе с тестом.
|
|
123
|
+
*/
|
|
124
|
+
function stubMatchMedia(options = {}) {
|
|
125
|
+
const { reducedMotion = false, matches = false } = options;
|
|
126
|
+
const original = window.matchMedia;
|
|
127
|
+
window.matchMedia = ((query) => ({
|
|
128
|
+
media: query,
|
|
129
|
+
matches: query.includes("prefers-reduced-motion") ? reducedMotion : matches,
|
|
130
|
+
onchange: null,
|
|
131
|
+
addEventListener: () => {},
|
|
132
|
+
removeEventListener: () => {},
|
|
133
|
+
addListener: () => {},
|
|
134
|
+
removeListener: () => {},
|
|
135
|
+
dispatchEvent: () => false
|
|
136
|
+
}));
|
|
137
|
+
return () => {
|
|
138
|
+
window.matchMedia = original;
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
//#endregion
|
|
142
|
+
//#region src/testing/context.ts
|
|
143
|
+
/** Адаптер перевода для теста: словарь или своя функция. */
|
|
144
|
+
function i18nAdapter(options = {}) {
|
|
145
|
+
if (typeof options.t !== "function" && !("locale" in options) && !("te" in options)) {
|
|
146
|
+
const dictionary = options;
|
|
147
|
+
return {
|
|
148
|
+
t: (key) => dictionary[key] ?? key,
|
|
149
|
+
te: (key) => key in dictionary
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
const { t, te, locale } = options;
|
|
153
|
+
return {
|
|
154
|
+
t: t ?? ((key) => key),
|
|
155
|
+
te,
|
|
156
|
+
locale: typeof locale === "string" ? ref(locale) : locale
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Окружение пакета для монтирования — то, что `<GrConfigProvider>` раздаёт
|
|
161
|
+
* через `provide`.
|
|
162
|
+
*
|
|
163
|
+
* Отдаётся объектом, а не компонентом-обёрткой, намеренно: провайдер тянет за
|
|
164
|
+
* собой лишний корневой элемент, а искать компонент внутри чужой разметки в
|
|
165
|
+
* каждом тесте дороже, чем передать `global`. Проверять **сам** провайдер
|
|
166
|
+
* (`data-gr-config-provider`, тема на корне) этим нельзя и не нужно — для этого
|
|
167
|
+
* его и монтируют.
|
|
168
|
+
*
|
|
169
|
+
* ```ts
|
|
170
|
+
* mount(GrSelect, { props, global: granularityGlobal({ size: 'sm' }) })
|
|
171
|
+
* ```
|
|
172
|
+
*/
|
|
173
|
+
function granularityGlobal(options = {}) {
|
|
174
|
+
const config = {
|
|
175
|
+
size: computed(() => options.size),
|
|
176
|
+
componentDefaults: computed(() => options.componentDefaults ?? {}),
|
|
177
|
+
theme: computed(() => options.theme),
|
|
178
|
+
portalTarget: computed(() => options.portalTarget)
|
|
179
|
+
};
|
|
180
|
+
const provide = { [GR_CONFIG_KEY]: config };
|
|
181
|
+
if (options.i18n) provide[GRANULARITY_I18N_KEY] = "t" in options.i18n && typeof options.i18n.t === "function" ? options.i18n : i18nAdapter(options.i18n);
|
|
182
|
+
return { provide };
|
|
183
|
+
}
|
|
184
|
+
//#endregion
|
|
185
|
+
//#region src/testing/announcer.ts
|
|
186
|
+
/**
|
|
187
|
+
* Текст живого региона.
|
|
188
|
+
*
|
|
189
|
+
* Ждать здесь обязательно: `announce` пишет в регион **отложенным** макротаском,
|
|
190
|
+
* и это не деталь реализации, а условие работы. Регион, в котором текст
|
|
191
|
+
* появился в том же кадре, что и сам регион, часть AT не объявляет вовсе;
|
|
192
|
+
* поэтому синхронное чтение сразу после действия покажет пустую строку.
|
|
193
|
+
*/
|
|
194
|
+
async function announced(politeness = "polite") {
|
|
195
|
+
await new Promise((resolve) => setTimeout(resolve, 2));
|
|
196
|
+
return document.querySelector(`[data-gr-announcer-region="${politeness}"]`)?.textContent ?? "";
|
|
197
|
+
}
|
|
198
|
+
//#endregion
|
|
199
|
+
export { announced, cancelPointer, drag, granularityGlobal, i18nAdapter, mockRect, move, pointer, press, release, resetGranularityDom, stackRects, stubMatchMedia };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testing.js","names":[],"sources":["../src/testing/pointer.ts","../src/testing/geometry.ts","../src/testing/env.ts","../src/testing/context.ts","../src/testing/announcer.ts"],"sourcesContent":["/**\n * Указательные жесты в тестах.\n *\n * Две вещи, которые ломают наивную запись жеста, и обе неочевидны:\n *\n * 1. **`pointerdown` идёт в элемент, а `pointermove`/`pointerup`/`pointercancel` — в `window`.**\n * Так слушает `useDragGesture` (и всё, что на нём стоит: слайдер, сплиттер,\n * перестановка, смахивание тоста): нажатие приходит от разметки, а движение\n * ловится глобально, иначе жест обрывался бы на выходе курсора за элемент.\n * Тест, отправивший движение в тот же элемент, ничего не проверяет — и молча.\n * 2. **`PointerEvent` в jsdom нет**, а `wrapper.trigger('pointerdown', { clientY })`\n * падает на попытке записать `clientY`. Поэтому события собираются\n * `MouseEvent`-ом и отправляются через `dispatchEvent`.\n *\n * Плюс `button: 0` по умолчанию: жест игнорирует неосновную кнопку, и без этого\n * «перетаскивание» в тесте не начинается вовсе.\n */\n\n/** Событие указателя: `MouseEvent`, потому что `PointerEvent` в jsdom не реализован. */\nexport function pointer(type: string, init: MouseEventInit = {}): MouseEvent {\n return new MouseEvent(type, { bubbles: true, ...init })\n}\n\n/** Нажатие: единственное событие жеста, которое адресуется элементу. */\nexport function press(target: Element, init: MouseEventInit = {}): void {\n target.dispatchEvent(pointer('pointerdown', { button: 0, ...init }))\n}\n\nexport function move(init: MouseEventInit = {}): void {\n window.dispatchEvent(pointer('pointermove', init))\n}\n\nexport function release(init: MouseEventInit = {}): void {\n window.dispatchEvent(pointer('pointerup', init))\n}\n\n/**\n * Обрыв жеста: система забрала указатель (системный жест, звонок, потеря окна).\n * Отдельная ветка поведения у всех потребителей — смахивание возвращает тост,\n * перестановка откатывает порядок, — поэтому проверяется отдельно от `release`.\n */\nexport function cancelPointer(init: MouseEventInit = {}): void {\n window.dispatchEvent(pointer('pointercancel', init))\n}\n\n/** Жест целиком: нажали на элементе, провели, отпустили. */\nexport function drag(target: Element, from: MouseEventInit, to: MouseEventInit): void {\n press(target, from)\n move(to)\n release(to)\n}\n","/**\n * Геометрия в jsdom.\n *\n * Раскладки в jsdom нет: `getBoundingClientRect` у любого элемента возвращает\n * нули. Всё, что считает попадание указателя — слайдер, сплиттер, перестановка,\n * ширины колонок таблицы, — на нулевом прямоугольнике проверять не на чем,\n * поэтому геометрия задаётся руками.\n */\n\nexport type MockRect = Partial<Omit<DOMRect, 'toJSON'>>\n\n/** Прямоугольник элемента. Незаданные стороны выводятся из заданных. */\nexport function mockRect(target: Element, rect: MockRect): void {\n const left = rect.left ?? rect.x ?? 0\n const top = rect.top ?? rect.y ?? 0\n const width = rect.width ?? (rect.right ?? 0) - left\n const height = rect.height ?? (rect.bottom ?? 0) - top\n\n const value: DOMRect = {\n x: left,\n y: top,\n left,\n top,\n width,\n height,\n right: rect.right ?? left + width,\n bottom: rect.bottom ?? top + height,\n toJSON: () => ({}),\n }\n\n target.getBoundingClientRect = () => value\n}\n\nexport interface StackRectsOptions {\n /** Размер элемента вдоль оси. */\n size: number\n /** Ось раскладки. По умолчанию вертикальная — так лежат списки и строки. */\n axis?: 'vertical' | 'horizontal'\n /** Смещение первого элемента. */\n start?: number\n /** Размер поперёк оси. */\n cross?: number\n}\n\n/** Элементы подряд, встык, без зазоров: строки списка, ячейки шапки, деления шкалы. */\nexport function stackRects(targets: Iterable<Element>, options: StackRectsOptions): void {\n const { size, axis = 'vertical', start = 0, cross = 100 } = options\n\n let offset = start\n\n for (const target of targets) {\n mockRect(target, axis === 'vertical'\n ? { top: offset, height: size, left: 0, width: cross }\n : { left: offset, width: size, top: 0, height: cross })\n\n offset += size\n }\n}\n","import { resetAnnouncer } from '../composables/useAnnouncer'\nimport { resetPortalRoot } from '../composables/internal/portalRoot'\nimport { useToast } from '../composables/useToast'\n\n/**\n * Уборка между тестами.\n *\n * `document.body.innerHTML = ''` сам по себе оставляет пакет в разобранном\n * состоянии: корень портала и хост живого региона закэшированы модулями, и\n * после очистки `body` они указывают на узлы **вне документа**. Следующий\n * монтаж телепортирует туда оверлеи, тест ищет их в документе и не находит —\n * без единой ошибки в консоли. Очередь тостов переживает размонтирование по\n * замыслу, поэтому её тоже гасим.\n */\nexport function resetGranularityDom(): void {\n useToast().clear()\n resetAnnouncer()\n resetPortalRoot()\n\n if (typeof document !== 'undefined')\n document.body.innerHTML = ''\n}\n\nexport interface StubMatchMediaOptions {\n /** Ответ на `(prefers-reduced-motion: reduce)`. */\n reducedMotion?: boolean\n /** Ответ на остальные запросы. */\n matches?: boolean\n}\n\n/**\n * Ответ `matchMedia` — например «пользователь просил меньше движения».\n *\n * Не для того, чтобы «не падало»: сам пакет зовёт `matchMedia` опционально и без\n * него живёт. Нужно, когда проверяется поведение **под** медиазапросом.\n * Возвращает функцию отката: глобальное состояние обязано уйти вместе с тестом.\n */\nexport function stubMatchMedia(options: StubMatchMediaOptions = {}): () => void {\n const { reducedMotion = false, matches = false } = options\n const original = window.matchMedia\n\n window.matchMedia = ((query: string) => ({\n media: query,\n matches: query.includes('prefers-reduced-motion') ? reducedMotion : matches,\n onchange: null,\n addEventListener: () => {},\n removeEventListener: () => {},\n addListener: () => {},\n removeListener: () => {},\n dispatchEvent: () => false,\n }))\n\n return () => {\n window.matchMedia = original\n }\n}\n","import { computed, ref, type Ref } from 'vue'\n\nimport { GR_CONFIG_KEY, type GrComponentDefaults, type GrComponentSize, type GrConfigContext } from '../components/GrConfigProvider/context'\nimport { GRANULARITY_I18N_KEY, type GranularityI18nAdapter, type GranularityI18nParams } from '../i18n/adapter'\n\nexport interface I18nAdapterOptions {\n /** Перевод по ключу. По умолчанию — сам ключ: видно, что спросили. */\n t?: (key: string, params?: GranularityI18nParams) => string\n te?: (key: string) => boolean\n locale?: string | Ref<string>\n}\n\n/** Адаптер перевода для теста: словарь или своя функция. */\nexport function i18nAdapter(options: I18nAdapterOptions | Record<string, string> = {}): GranularityI18nAdapter {\n const isDictionary = typeof (options as I18nAdapterOptions).t !== 'function'\n && !('locale' in options)\n && !('te' in options)\n\n if (isDictionary) {\n const dictionary = options as Record<string, string>\n\n return {\n t: key => dictionary[key] ?? key,\n te: key => key in dictionary,\n }\n }\n\n const { t, te, locale } = options as I18nAdapterOptions\n\n return {\n t: t ?? (key => key),\n te,\n locale: typeof locale === 'string' ? ref(locale) : locale,\n }\n}\n\nexport interface GranularityGlobalOptions {\n size?: GrComponentSize\n componentDefaults?: GrComponentDefaults\n theme?: string\n portalTarget?: string | HTMLElement\n /** Адаптер перевода: готовый, словарь `{ ключ: перевод }` или опции `i18nAdapter`. */\n i18n?: GranularityI18nAdapter | I18nAdapterOptions | Record<string, string>\n}\n\n/**\n * Окружение пакета для монтирования — то, что `<GrConfigProvider>` раздаёт\n * через `provide`.\n *\n * Отдаётся объектом, а не компонентом-обёрткой, намеренно: провайдер тянет за\n * собой лишний корневой элемент, а искать компонент внутри чужой разметки в\n * каждом тесте дороже, чем передать `global`. Проверять **сам** провайдер\n * (`data-gr-config-provider`, тема на корне) этим нельзя и не нужно — для этого\n * его и монтируют.\n *\n * ```ts\n * mount(GrSelect, { props, global: granularityGlobal({ size: 'sm' }) })\n * ```\n */\nexport function granularityGlobal(options: GranularityGlobalOptions = {}): { provide: Record<symbol, unknown> } {\n const config: GrConfigContext = {\n size: computed(() => options.size),\n componentDefaults: computed(() => options.componentDefaults ?? {}),\n theme: computed(() => options.theme),\n portalTarget: computed(() => options.portalTarget),\n }\n\n const provide: Record<symbol, unknown> = { [GR_CONFIG_KEY]: config }\n\n if (options.i18n)\n provide[GRANULARITY_I18N_KEY] = 't' in options.i18n && typeof options.i18n.t === 'function'\n ? options.i18n\n : i18nAdapter(options.i18n)\n\n return { provide }\n}\n","import type { GrAnnouncerPoliteness } from '../composables/useAnnouncer'\n\n/**\n * Текст живого региона.\n *\n * Ждать здесь обязательно: `announce` пишет в регион **отложенным** макротаском,\n * и это не деталь реализации, а условие работы. Регион, в котором текст\n * появился в том же кадре, что и сам регион, часть AT не объявляет вовсе;\n * поэтому синхронное чтение сразу после действия покажет пустую строку.\n */\nexport async function announced(politeness: GrAnnouncerPoliteness = 'polite'): Promise<string> {\n await new Promise(resolve => setTimeout(resolve, 2))\n\n return document.querySelector(`[data-gr-announcer-region=\"${politeness}\"]`)?.textContent ?? ''\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,SAAgB,QAAQ,MAAc,OAAuB,CAAC,GAAe;CAC3E,OAAO,IAAI,WAAW,MAAM;EAAE,SAAS;EAAM,GAAG;CAAK,CAAC;AACxD;;AAGA,SAAgB,MAAM,QAAiB,OAAuB,CAAC,GAAS;CACtE,OAAO,cAAc,QAAQ,eAAe;EAAE,QAAQ;EAAG,GAAG;CAAK,CAAC,CAAC;AACrE;AAEA,SAAgB,KAAK,OAAuB,CAAC,GAAS;CACpD,OAAO,cAAc,QAAQ,eAAe,IAAI,CAAC;AACnD;AAEA,SAAgB,QAAQ,OAAuB,CAAC,GAAS;CACvD,OAAO,cAAc,QAAQ,aAAa,IAAI,CAAC;AACjD;;;;;;AAOA,SAAgB,cAAc,OAAuB,CAAC,GAAS;CAC7D,OAAO,cAAc,QAAQ,iBAAiB,IAAI,CAAC;AACrD;;AAGA,SAAgB,KAAK,QAAiB,MAAsB,IAA0B;CACpF,MAAM,QAAQ,IAAI;CAClB,KAAK,EAAE;CACP,QAAQ,EAAE;AACZ;;;;ACtCA,SAAgB,SAAS,QAAiB,MAAsB;CAC9D,MAAM,OAAO,KAAK,QAAQ,KAAK,KAAK;CACpC,MAAM,MAAM,KAAK,OAAO,KAAK,KAAK;CAClC,MAAM,QAAQ,KAAK,UAAU,KAAK,SAAS,KAAK;CAChD,MAAM,SAAS,KAAK,WAAW,KAAK,UAAU,KAAK;CAEnD,MAAM,QAAiB;EACrB,GAAG;EACH,GAAG;EACH;EACA;EACA;EACA;EACA,OAAO,KAAK,SAAS,OAAO;EAC5B,QAAQ,KAAK,UAAU,MAAM;EAC7B,eAAe,CAAC;CAClB;CAEA,OAAO,8BAA8B;AACvC;;AAcA,SAAgB,WAAW,SAA4B,SAAkC;CACvF,MAAM,EAAE,MAAM,OAAO,YAAY,QAAQ,GAAG,QAAQ,QAAQ;CAE5D,IAAI,SAAS;CAEb,KAAK,MAAM,UAAU,SAAS;EAC5B,SAAS,QAAQ,SAAS,aACtB;GAAE,KAAK;GAAQ,QAAQ;GAAM,MAAM;GAAG,OAAO;EAAM,IACnD;GAAE,MAAM;GAAQ,OAAO;GAAM,KAAK;GAAG,QAAQ;EAAM,CAAC;EAExD,UAAU;CACZ;AACF;;;;;;;;;;;;;AC3CA,SAAgB,sBAA4B;CAC1C,SAAS,CAAC,CAAC,MAAM;CACjB,eAAe;CACf,gBAAgB;CAEhB,IAAI,OAAO,aAAa,aACtB,SAAS,KAAK,YAAY;AAC9B;;;;;;;;AAgBA,SAAgB,eAAe,UAAiC,CAAC,GAAe;CAC9E,MAAM,EAAE,gBAAgB,OAAO,UAAU,UAAU;CACnD,MAAM,WAAW,OAAO;CAExB,OAAO,eAAe,WAAmB;EACvC,OAAO;EACP,SAAS,MAAM,SAAS,wBAAwB,IAAI,gBAAgB;EACpE,UAAU;EACV,wBAAwB,CAAC;EACzB,2BAA2B,CAAC;EAC5B,mBAAmB,CAAC;EACpB,sBAAsB,CAAC;EACvB,qBAAqB;CACvB;CAEA,aAAa;EACX,OAAO,aAAa;CACtB;AACF;;;;AC1CA,SAAgB,YAAY,UAAuD,CAAC,GAA2B;CAK7G,IAJqB,OAAQ,QAA+B,MAAM,cAC7D,EAAE,YAAY,YACd,EAAE,QAAQ,UAEG;EAChB,MAAM,aAAa;EAEnB,OAAO;GACL,IAAG,QAAO,WAAW,QAAQ;GAC7B,KAAI,QAAO,OAAO;EACpB;CACF;CAEA,MAAM,EAAE,GAAG,IAAI,WAAW;CAE1B,OAAO;EACL,GAAG,OAAM,QAAO;EAChB;EACA,QAAQ,OAAO,WAAW,WAAW,IAAI,MAAM,IAAI;CACrD;AACF;;;;;;;;;;;;;;;AAyBA,SAAgB,kBAAkB,UAAoC,CAAC,GAAyC;CAC9G,MAAM,SAA0B;EAC9B,MAAM,eAAe,QAAQ,IAAI;EACjC,mBAAmB,eAAe,QAAQ,qBAAqB,CAAC,CAAC;EACjE,OAAO,eAAe,QAAQ,KAAK;EACnC,cAAc,eAAe,QAAQ,YAAY;CACnD;CAEA,MAAM,UAAmC,GAAG,gBAAgB,OAAO;CAEnE,IAAI,QAAQ,MACV,QAAQ,wBAAwB,OAAO,QAAQ,QAAQ,OAAO,QAAQ,KAAK,MAAM,aAC7E,QAAQ,OACR,YAAY,QAAQ,IAAI;CAE9B,OAAO,EAAE,QAAQ;AACnB;;;;;;;;;;;ACjEA,eAAsB,UAAU,aAAoC,UAA2B;CAC7F,MAAM,IAAI,SAAQ,YAAW,WAAW,SAAS,CAAC,CAAC;CAEnD,OAAO,SAAS,cAAc,8BAA8B,WAAW,GAAG,CAAC,EAAE,eAAe;AAC9F"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
//#region src/theme/apply.ts
|
|
2
|
+
/**
|
|
3
|
+
* Подключение темы в рантайме — `@feugene/granularity/theme/apply`.
|
|
4
|
+
*
|
|
5
|
+
* Отдельный подпуть от `@feugene/granularity/theme` не по вкусу, а по весу:
|
|
6
|
+
* там справочник токенов (сотня килобайт данных), нужный, чтобы тему
|
|
7
|
+
* **собрать**. Чтобы её **подключить**, не нужно ничего, кроме готовой строки,
|
|
8
|
+
* — и приложению незачем платить за первое, если оно делает второе.
|
|
9
|
+
*
|
|
10
|
+
* Штатный путь всё же другой: собрать тему на сборке и отдать браузеру обычный
|
|
11
|
+
* CSS-файл. Этот модуль — для случаев, когда тема появляется только в браузере:
|
|
12
|
+
* редактор тем, превью, тема из пользовательских настроек.
|
|
13
|
+
*/
|
|
14
|
+
var ATTRIBUTE = "data-gr-theme";
|
|
15
|
+
/** Подключает CSS темы и возвращает функцию, которая его снимает. */
|
|
16
|
+
function applyTheme(css, options = {}) {
|
|
17
|
+
const { name = "custom", target } = options;
|
|
18
|
+
if (typeof document === "undefined") return () => {};
|
|
19
|
+
const host = target ?? document.head;
|
|
20
|
+
const existing = host.querySelector(`style[${ATTRIBUTE}="${name}"]`);
|
|
21
|
+
const style = existing ?? document.createElement("style");
|
|
22
|
+
style.setAttribute(ATTRIBUTE, name);
|
|
23
|
+
style.textContent = css;
|
|
24
|
+
if (!existing) host.append(style);
|
|
25
|
+
return () => style.remove();
|
|
26
|
+
}
|
|
27
|
+
/** Снимает тему, подключённую `applyTheme`. */
|
|
28
|
+
function removeTheme(name = "custom", target) {
|
|
29
|
+
if (typeof document === "undefined") return;
|
|
30
|
+
(target ?? document.head).querySelector(`style[${ATTRIBUTE}="${name}"]`)?.remove();
|
|
31
|
+
}
|
|
32
|
+
//#endregion
|
|
33
|
+
export { applyTheme, removeTheme };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-apply.js","names":[],"sources":["../src/theme/apply.ts"],"sourcesContent":["/**\n * Подключение темы в рантайме — `@feugene/granularity/theme/apply`.\n *\n * Отдельный подпуть от `@feugene/granularity/theme` не по вкусу, а по весу:\n * там справочник токенов (сотня килобайт данных), нужный, чтобы тему\n * **собрать**. Чтобы её **подключить**, не нужно ничего, кроме готовой строки,\n * — и приложению незачем платить за первое, если оно делает второе.\n *\n * Штатный путь всё же другой: собрать тему на сборке и отдать браузеру обычный\n * CSS-файл. Этот модуль — для случаев, когда тема появляется только в браузере:\n * редактор тем, превью, тема из пользовательских настроек.\n */\n\nconst ATTRIBUTE = 'data-gr-theme'\n\nexport interface ApplyThemeOptions {\n /**\n * Имя, под которым тема живёт в документе. Повторный вызов с тем же именем\n * заменяет её содержимое, а не добавляет второй `<style>`: иначе редактор\n * темы за минуту работы оставил бы в `<head>` сотню слоёв, и побеждал бы\n * последний — то есть результат зависел бы от истории правок.\n */\n name?: string\n /** Куда вставлять. По умолчанию `document.head`. */\n target?: HTMLElement | null\n}\n\n/** Подключает CSS темы и возвращает функцию, которая его снимает. */\nexport function applyTheme(css: string, options: ApplyThemeOptions = {}): () => void {\n const { name = 'custom', target } = options\n\n if (typeof document === 'undefined')\n return () => {}\n\n const host = target ?? document.head\n const existing = host.querySelector<HTMLStyleElement>(`style[${ATTRIBUTE}=\"${name}\"]`)\n const style = existing ?? document.createElement('style')\n\n style.setAttribute(ATTRIBUTE, name)\n style.textContent = css\n\n if (!existing) host.append(style)\n\n return () => style.remove()\n}\n\n/** Снимает тему, подключённую `applyTheme`. */\nexport function removeTheme(name = 'custom', target?: HTMLElement | null): void {\n if (typeof document === 'undefined') return\n\n const host = target ?? document.head\n host.querySelector(`style[${ATTRIBUTE}=\"${name}\"]`)?.remove()\n}\n"],"mappings":";;;;;;;;;;;;;AAaA,IAAM,YAAY;;AAelB,SAAgB,WAAW,KAAa,UAA6B,CAAC,GAAe;CACnF,MAAM,EAAE,OAAO,UAAU,WAAW;CAEpC,IAAI,OAAO,aAAa,aACtB,aAAa,CAAC;CAEhB,MAAM,OAAO,UAAU,SAAS;CAChC,MAAM,WAAW,KAAK,cAAgC,SAAS,UAAU,IAAI,KAAK,GAAG;CACrF,MAAM,QAAQ,YAAY,SAAS,cAAc,OAAO;CAExD,MAAM,aAAa,WAAW,IAAI;CAClC,MAAM,cAAc;CAEpB,IAAI,CAAC,UAAU,KAAK,OAAO,KAAK;CAEhC,aAAa,MAAM,OAAO;AAC5B;;AAGA,SAAgB,YAAY,OAAO,UAAU,QAAmC;CAC9E,IAAI,OAAO,aAAa,aAAa;CAGrC,CADa,UAAU,SAAS,KAAA,CAC3B,cAAc,SAAS,UAAU,IAAI,KAAK,GAAG,CAAC,EAAE,OAAO;AAC9D"}
|