@hanzogui/react-native-web-internals 2.0.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/LICENSE +21 -0
- package/dist/cjs/StyleSheet/__tests__/compiler-createReactDOMStyle-test.cjs +240 -0
- package/dist/cjs/StyleSheet/__tests__/compiler-test.cjs +407 -0
- package/dist/cjs/StyleSheet/__tests__/dom-createOrderedCSSStyleSheet-test.cjs +121 -0
- package/dist/cjs/StyleSheet/__tests__/index-test.cjs +404 -0
- package/dist/cjs/StyleSheet/__tests__/preprocess-test.cjs +108 -0
- package/dist/cjs/StyleSheet/__tests__/validate-test.cjs +36 -0
- package/dist/cjs/StyleSheet/compiler/createReactDOMStyle.cjs +87 -0
- package/dist/cjs/StyleSheet/compiler/hash.cjs +26 -0
- package/dist/cjs/StyleSheet/compiler/hyphenateStyleName.cjs +36 -0
- package/dist/cjs/StyleSheet/compiler/index.cjs +318 -0
- package/dist/cjs/StyleSheet/compiler/normalizeColor.cjs +40 -0
- package/dist/cjs/StyleSheet/compiler/normalizeValueWithProperty.cjs +43 -0
- package/dist/cjs/StyleSheet/compiler/resolveShadowValue.cjs +48 -0
- package/dist/cjs/StyleSheet/dom/createCSSStyleSheet.cjs +37 -0
- package/dist/cjs/StyleSheet/dom/createOrderedCSSStyleSheet.cjs +110 -0
- package/dist/cjs/StyleSheet/dom/index.cjs +67 -0
- package/dist/cjs/StyleSheet/index.cjs +57 -0
- package/dist/cjs/StyleSheet/preprocess.cjs +101 -0
- package/dist/cjs/StyleSheet/validate.cjs +69 -0
- package/dist/cjs/TextAncestorContext.cjs +27 -0
- package/dist/cjs/colorProps.cjs +37 -0
- package/dist/cjs/index.cjs +103 -0
- package/dist/cjs/modules/AccessibilityUtil/__tests__/propsToAccessibilityComponent-test.cjs +50 -0
- package/dist/cjs/modules/AccessibilityUtil/__tests__/propsToAriaRole-test.cjs +40 -0
- package/dist/cjs/modules/AccessibilityUtil/index.cjs +33 -0
- package/dist/cjs/modules/AccessibilityUtil/isDisabled.cjs +26 -0
- package/dist/cjs/modules/AccessibilityUtil/propsToAccessibilityComponent.cjs +57 -0
- package/dist/cjs/modules/AccessibilityUtil/propsToAriaRole.cjs +47 -0
- package/dist/cjs/modules/AssetRegistry/index.cjs +33 -0
- package/dist/cjs/modules/ImageLoader/index.cjs +111 -0
- package/dist/cjs/modules/InteractionManager.cjs +184 -0
- package/dist/cjs/modules/Platform/__tests__/index-test.cjs +48 -0
- package/dist/cjs/modules/Platform/index.cjs +30 -0
- package/dist/cjs/modules/TextInputState/index.cjs +55 -0
- package/dist/cjs/modules/UIManager/__tests__/index-test.cjs +90 -0
- package/dist/cjs/modules/UIManager/index.cjs +60 -0
- package/dist/cjs/modules/canUseDOM.cjs +26 -0
- package/dist/cjs/modules/createDOMProps/__tests__/index-test.cjs +156 -0
- package/dist/cjs/modules/createDOMProps/index.cjs +179 -0
- package/dist/cjs/modules/createEventHandle/__tests__/index-test.cjs +344 -0
- package/dist/cjs/modules/createEventHandle/index.cjs +67 -0
- package/dist/cjs/modules/dismissKeyboard/index.cjs +29 -0
- package/dist/cjs/modules/forwardedProps/index.cjs +161 -0
- package/dist/cjs/modules/getBoundingClientRect/index.cjs +28 -0
- package/dist/cjs/modules/invariant.cjs +36 -0
- package/dist/cjs/modules/isSelectionValid/index.cjs +35 -0
- package/dist/cjs/modules/isWebColor/index.cjs +26 -0
- package/dist/cjs/modules/mergeRefs/__tests__/index-test.cjs +42 -0
- package/dist/cjs/modules/mergeRefs/index.cjs +42 -0
- package/dist/cjs/modules/modality/__tests__/index-test.cjs +32 -0
- package/dist/cjs/modules/modality/index.cjs +135 -0
- package/dist/cjs/modules/multiplyStyleLengthValue/__tests__/index-test.cjs +30 -0
- package/dist/cjs/modules/multiplyStyleLengthValue/index.cjs +35 -0
- package/dist/cjs/modules/normalizeColor/index.cjs +39 -0
- package/dist/cjs/modules/pick/index.cjs +30 -0
- package/dist/cjs/modules/processColor/__tests__/index-test.cjs +66 -0
- package/dist/cjs/modules/processColor/index.cjs +42 -0
- package/dist/cjs/modules/requestIdleCallback/index.cjs +44 -0
- package/dist/cjs/modules/setValueForStyles/dangerousStyleValue.cjs +35 -0
- package/dist/cjs/modules/setValueForStyles/index.cjs +35 -0
- package/dist/cjs/modules/unitlessNumbers/index.cjs +85 -0
- package/dist/cjs/modules/useElementLayout/index.cjs +39 -0
- package/dist/cjs/modules/useEvent/__tests__/index-test.cjs +408 -0
- package/dist/cjs/modules/useEvent/index.cjs +45 -0
- package/dist/cjs/modules/useHover/__tests__/index-test.cjs +273 -0
- package/dist/cjs/modules/useHover/index.cjs +97 -0
- package/dist/cjs/modules/useLayoutEffect/index.cjs +39 -0
- package/dist/cjs/modules/useLocale/index.cjs +66 -0
- package/dist/cjs/modules/useLocale/isLocaleRTL.cjs +83 -0
- package/dist/cjs/modules/useMergeRefs/__tests__/index-test.cjs +102 -0
- package/dist/cjs/modules/useMergeRefs/index.cjs +43 -0
- package/dist/cjs/modules/usePlatformMethods/index.cjs +35 -0
- package/dist/cjs/modules/useStable/__tests__/index-test.cjs +92 -0
- package/dist/cjs/modules/useStable/index.cjs +42 -0
- package/dist/cjs/styleTypes.cjs +16 -0
- package/dist/cjs/types.cjs +16 -0
- package/dist/esm/StyleSheet/__tests__/compiler-createReactDOMStyle-test.mjs +219 -0
- package/dist/esm/StyleSheet/__tests__/compiler-createReactDOMStyle-test.mjs.map +1 -0
- package/dist/esm/StyleSheet/__tests__/compiler-test.mjs +408 -0
- package/dist/esm/StyleSheet/__tests__/compiler-test.mjs.map +1 -0
- package/dist/esm/StyleSheet/__tests__/dom-createOrderedCSSStyleSheet-test.mjs +100 -0
- package/dist/esm/StyleSheet/__tests__/dom-createOrderedCSSStyleSheet-test.mjs.map +1 -0
- package/dist/esm/StyleSheet/__tests__/index-test.mjs +383 -0
- package/dist/esm/StyleSheet/__tests__/index-test.mjs.map +1 -0
- package/dist/esm/StyleSheet/__tests__/preprocess-test.mjs +109 -0
- package/dist/esm/StyleSheet/__tests__/preprocess-test.mjs.map +1 -0
- package/dist/esm/StyleSheet/__tests__/validate-test.mjs +37 -0
- package/dist/esm/StyleSheet/__tests__/validate-test.mjs.map +1 -0
- package/dist/esm/StyleSheet/compiler/createReactDOMStyle.mjs +63 -0
- package/dist/esm/StyleSheet/compiler/createReactDOMStyle.mjs.map +1 -0
- package/dist/esm/StyleSheet/compiler/hash.mjs +3 -0
- package/dist/esm/StyleSheet/compiler/hash.mjs.map +1 -0
- package/dist/esm/StyleSheet/compiler/hyphenateStyleName.mjs +13 -0
- package/dist/esm/StyleSheet/compiler/hyphenateStyleName.mjs.map +1 -0
- package/dist/esm/StyleSheet/compiler/index.mjs +292 -0
- package/dist/esm/StyleSheet/compiler/index.mjs.map +1 -0
- package/dist/esm/StyleSheet/compiler/normalizeColor.mjs +17 -0
- package/dist/esm/StyleSheet/compiler/normalizeColor.mjs.map +1 -0
- package/dist/esm/StyleSheet/compiler/normalizeValueWithProperty.mjs +20 -0
- package/dist/esm/StyleSheet/compiler/normalizeValueWithProperty.mjs.map +1 -0
- package/dist/esm/StyleSheet/compiler/resolveShadowValue.mjs +25 -0
- package/dist/esm/StyleSheet/compiler/resolveShadowValue.mjs.map +1 -0
- package/dist/esm/StyleSheet/dom/createCSSStyleSheet.mjs +14 -0
- package/dist/esm/StyleSheet/dom/createCSSStyleSheet.mjs.map +1 -0
- package/dist/esm/StyleSheet/dom/createOrderedCSSStyleSheet.mjs +87 -0
- package/dist/esm/StyleSheet/dom/createOrderedCSSStyleSheet.mjs.map +1 -0
- package/dist/esm/StyleSheet/dom/index.mjs +44 -0
- package/dist/esm/StyleSheet/dom/index.mjs.map +1 -0
- package/dist/esm/StyleSheet/index.mjs +33 -0
- package/dist/esm/StyleSheet/index.mjs.map +1 -0
- package/dist/esm/StyleSheet/preprocess.mjs +75 -0
- package/dist/esm/StyleSheet/preprocess.mjs.map +1 -0
- package/dist/esm/StyleSheet/validate.mjs +46 -0
- package/dist/esm/StyleSheet/validate.mjs.map +1 -0
- package/dist/esm/TextAncestorContext.mjs +4 -0
- package/dist/esm/TextAncestorContext.mjs.map +1 -0
- package/dist/esm/colorProps.mjs +14 -0
- package/dist/esm/colorProps.mjs.map +1 -0
- package/dist/esm/index.js +45 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/index.mjs +45 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/modules/AccessibilityUtil/__tests__/propsToAccessibilityComponent-test.mjs +29 -0
- package/dist/esm/modules/AccessibilityUtil/__tests__/propsToAccessibilityComponent-test.mjs.map +1 -0
- package/dist/esm/modules/AccessibilityUtil/__tests__/propsToAriaRole-test.mjs +19 -0
- package/dist/esm/modules/AccessibilityUtil/__tests__/propsToAriaRole-test.mjs.map +1 -0
- package/dist/esm/modules/AccessibilityUtil/index.mjs +10 -0
- package/dist/esm/modules/AccessibilityUtil/index.mjs.map +1 -0
- package/dist/esm/modules/AccessibilityUtil/isDisabled.mjs +3 -0
- package/dist/esm/modules/AccessibilityUtil/isDisabled.mjs.map +1 -0
- package/dist/esm/modules/AccessibilityUtil/propsToAccessibilityComponent.mjs +34 -0
- package/dist/esm/modules/AccessibilityUtil/propsToAccessibilityComponent.mjs.map +1 -0
- package/dist/esm/modules/AccessibilityUtil/propsToAriaRole.mjs +24 -0
- package/dist/esm/modules/AccessibilityUtil/propsToAriaRole.mjs.map +1 -0
- package/dist/esm/modules/AssetRegistry/index.mjs +9 -0
- package/dist/esm/modules/AssetRegistry/index.mjs.map +1 -0
- package/dist/esm/modules/ImageLoader/index.mjs +87 -0
- package/dist/esm/modules/ImageLoader/index.mjs.map +1 -0
- package/dist/esm/modules/InteractionManager.mjs +161 -0
- package/dist/esm/modules/InteractionManager.mjs.map +1 -0
- package/dist/esm/modules/Platform/__tests__/index-test.mjs +27 -0
- package/dist/esm/modules/Platform/__tests__/index-test.mjs.map +1 -0
- package/dist/esm/modules/Platform/index.mjs +7 -0
- package/dist/esm/modules/Platform/index.mjs.map +1 -0
- package/dist/esm/modules/TextInputState/index.mjs +32 -0
- package/dist/esm/modules/TextInputState/index.mjs.map +1 -0
- package/dist/esm/modules/UIManager/__tests__/index-test.mjs +69 -0
- package/dist/esm/modules/UIManager/__tests__/index-test.mjs.map +1 -0
- package/dist/esm/modules/UIManager/index.mjs +37 -0
- package/dist/esm/modules/UIManager/index.mjs.map +1 -0
- package/dist/esm/modules/canUseDOM.mjs +3 -0
- package/dist/esm/modules/canUseDOM.mjs.map +1 -0
- package/dist/esm/modules/createDOMProps/__tests__/index-test.mjs +135 -0
- package/dist/esm/modules/createDOMProps/__tests__/index-test.mjs.map +1 -0
- package/dist/esm/modules/createDOMProps/index.mjs +155 -0
- package/dist/esm/modules/createDOMProps/index.mjs.map +1 -0
- package/dist/esm/modules/createEventHandle/__tests__/index-test.mjs +323 -0
- package/dist/esm/modules/createEventHandle/__tests__/index-test.mjs.map +1 -0
- package/dist/esm/modules/createEventHandle/index.mjs +42 -0
- package/dist/esm/modules/createEventHandle/index.mjs.map +1 -0
- package/dist/esm/modules/dismissKeyboard/index.mjs +6 -0
- package/dist/esm/modules/dismissKeyboard/index.mjs.map +1 -0
- package/dist/esm/modules/forwardedProps/index.mjs +128 -0
- package/dist/esm/modules/forwardedProps/index.mjs.map +1 -0
- package/dist/esm/modules/getBoundingClientRect/index.mjs +5 -0
- package/dist/esm/modules/getBoundingClientRect/index.mjs.map +1 -0
- package/dist/esm/modules/invariant.mjs +12 -0
- package/dist/esm/modules/invariant.mjs.map +1 -0
- package/dist/esm/modules/isSelectionValid/index.mjs +12 -0
- package/dist/esm/modules/isSelectionValid/index.mjs.map +1 -0
- package/dist/esm/modules/isWebColor/index.mjs +3 -0
- package/dist/esm/modules/isWebColor/index.mjs.map +1 -0
- package/dist/esm/modules/mergeRefs/__tests__/index-test.mjs +21 -0
- package/dist/esm/modules/mergeRefs/__tests__/index-test.mjs.map +1 -0
- package/dist/esm/modules/mergeRefs/index.mjs +19 -0
- package/dist/esm/modules/mergeRefs/index.mjs.map +1 -0
- package/dist/esm/modules/modality/__tests__/index-test.mjs +33 -0
- package/dist/esm/modules/modality/__tests__/index-test.mjs.map +1 -0
- package/dist/esm/modules/modality/index.mjs +109 -0
- package/dist/esm/modules/modality/index.mjs.map +1 -0
- package/dist/esm/modules/multiplyStyleLengthValue/__tests__/index-test.mjs +9 -0
- package/dist/esm/modules/multiplyStyleLengthValue/__tests__/index-test.mjs.map +1 -0
- package/dist/esm/modules/multiplyStyleLengthValue/index.mjs +12 -0
- package/dist/esm/modules/multiplyStyleLengthValue/index.mjs.map +1 -0
- package/dist/esm/modules/normalizeColor/index.mjs +16 -0
- package/dist/esm/modules/normalizeColor/index.mjs.map +1 -0
- package/dist/esm/modules/pick/index.mjs +7 -0
- package/dist/esm/modules/pick/index.mjs.map +1 -0
- package/dist/esm/modules/processColor/__tests__/index-test.mjs +45 -0
- package/dist/esm/modules/processColor/__tests__/index-test.mjs.map +1 -0
- package/dist/esm/modules/processColor/index.mjs +8 -0
- package/dist/esm/modules/processColor/index.mjs.map +1 -0
- package/dist/esm/modules/requestIdleCallback/index.mjs +20 -0
- package/dist/esm/modules/requestIdleCallback/index.mjs.map +1 -0
- package/dist/esm/modules/setValueForStyles/dangerousStyleValue.mjs +12 -0
- package/dist/esm/modules/setValueForStyles/dangerousStyleValue.mjs.map +1 -0
- package/dist/esm/modules/setValueForStyles/index.mjs +12 -0
- package/dist/esm/modules/setValueForStyles/index.mjs.map +1 -0
- package/dist/esm/modules/unitlessNumbers/index.mjs +62 -0
- package/dist/esm/modules/unitlessNumbers/index.mjs.map +1 -0
- package/dist/esm/modules/useElementLayout/index.mjs +16 -0
- package/dist/esm/modules/useElementLayout/index.mjs.map +1 -0
- package/dist/esm/modules/useEvent/__tests__/index-test.mjs +387 -0
- package/dist/esm/modules/useEvent/__tests__/index-test.mjs.map +1 -0
- package/dist/esm/modules/useEvent/index.mjs +22 -0
- package/dist/esm/modules/useEvent/index.mjs.map +1 -0
- package/dist/esm/modules/useHover/__tests__/index-test.mjs +252 -0
- package/dist/esm/modules/useHover/__tests__/index-test.mjs.map +1 -0
- package/dist/esm/modules/useHover/index.mjs +74 -0
- package/dist/esm/modules/useHover/index.mjs.map +1 -0
- package/dist/esm/modules/useLayoutEffect/index.mjs +5 -0
- package/dist/esm/modules/useLayoutEffect/index.mjs.map +1 -0
- package/dist/esm/modules/useLocale/index.mjs +30 -0
- package/dist/esm/modules/useLocale/index.mjs.map +1 -0
- package/dist/esm/modules/useLocale/isLocaleRTL.mjs +60 -0
- package/dist/esm/modules/useLocale/isLocaleRTL.mjs.map +1 -0
- package/dist/esm/modules/useMergeRefs/__tests__/index-test.mjs +81 -0
- package/dist/esm/modules/useMergeRefs/__tests__/index-test.mjs.map +1 -0
- package/dist/esm/modules/useMergeRefs/index.mjs +9 -0
- package/dist/esm/modules/useMergeRefs/index.mjs.map +1 -0
- package/dist/esm/modules/usePlatformMethods/index.mjs +12 -0
- package/dist/esm/modules/usePlatformMethods/index.mjs.map +1 -0
- package/dist/esm/modules/useStable/__tests__/index-test.mjs +71 -0
- package/dist/esm/modules/useStable/__tests__/index-test.mjs.map +1 -0
- package/dist/esm/modules/useStable/index.mjs +8 -0
- package/dist/esm/modules/useStable/index.mjs.map +1 -0
- package/dist/esm/styleTypes.mjs +2 -0
- package/dist/esm/styleTypes.mjs.map +1 -0
- package/dist/esm/types.mjs +2 -0
- package/dist/esm/types.mjs.map +1 -0
- package/package.json +58 -0
- package/src/StyleSheet/__tests__/compiler-createReactDOMStyle-test.tsx +236 -0
- package/src/StyleSheet/__tests__/compiler-test.tsx +426 -0
- package/src/StyleSheet/__tests__/dom-createOrderedCSSStyleSheet-test.tsx +169 -0
- package/src/StyleSheet/__tests__/index-test.tsx +406 -0
- package/src/StyleSheet/__tests__/preprocess-test.tsx +107 -0
- package/src/StyleSheet/__tests__/validate-test.tsx +42 -0
- package/src/StyleSheet/compiler/createReactDOMStyle.tsx +215 -0
- package/src/StyleSheet/compiler/hash.tsx +1 -0
- package/src/StyleSheet/compiler/hyphenateStyleName.tsx +25 -0
- package/src/StyleSheet/compiler/index.tsx +478 -0
- package/src/StyleSheet/compiler/normalizeColor.tsx +35 -0
- package/src/StyleSheet/compiler/normalizeValueWithProperty.tsx +34 -0
- package/src/StyleSheet/compiler/resolveShadowValue.tsx +26 -0
- package/src/StyleSheet/dom/createCSSStyleSheet.tsx +42 -0
- package/src/StyleSheet/dom/createOrderedCSSStyleSheet.tsx +195 -0
- package/src/StyleSheet/dom/index.tsx +92 -0
- package/src/StyleSheet/index.tsx +99 -0
- package/src/StyleSheet/preprocess.tsx +119 -0
- package/src/StyleSheet/validate.tsx +90 -0
- package/src/TextAncestorContext.tsx +13 -0
- package/src/colorProps.tsx +12 -0
- package/src/index.tsx +58 -0
- package/src/modules/AccessibilityUtil/__tests__/propsToAccessibilityComponent-test.tsx +44 -0
- package/src/modules/AccessibilityUtil/__tests__/propsToAriaRole-test.tsx +25 -0
- package/src/modules/AccessibilityUtil/index.tsx +18 -0
- package/src/modules/AccessibilityUtil/isDisabled.tsx +13 -0
- package/src/modules/AccessibilityUtil/propsToAccessibilityComponent.tsx +54 -0
- package/src/modules/AccessibilityUtil/propsToAriaRole.tsx +37 -0
- package/src/modules/AssetRegistry/index.tsx +32 -0
- package/src/modules/ImageLoader/index.tsx +165 -0
- package/src/modules/InteractionManager.tsx +315 -0
- package/src/modules/Platform/__tests__/index-test.tsx +45 -0
- package/src/modules/Platform/index.tsx +15 -0
- package/src/modules/TextInputState/index.tsx +62 -0
- package/src/modules/UIManager/__tests__/index-test.tsx +87 -0
- package/src/modules/UIManager/index.tsx +68 -0
- package/src/modules/canUseDOM.tsx +14 -0
- package/src/modules/createDOMProps/__tests__/index-test.tsx +138 -0
- package/src/modules/createDOMProps/index.tsx +436 -0
- package/src/modules/createEventHandle/__tests__/index-test.tsx +459 -0
- package/src/modules/createEventHandle/index.tsx +100 -0
- package/src/modules/dismissKeyboard/index.tsx +14 -0
- package/src/modules/forwardedProps/index.tsx +145 -0
- package/src/modules/getBoundingClientRect/index.tsx +17 -0
- package/src/modules/invariant.ts +23 -0
- package/src/modules/isSelectionValid/index.tsx +20 -0
- package/src/modules/isWebColor/index.tsx +14 -0
- package/src/modules/mergeRefs/__tests__/index-test.tsx +32 -0
- package/src/modules/mergeRefs/index.tsx +36 -0
- package/src/modules/modality/__tests__/index-test.tsx +66 -0
- package/src/modules/modality/index.tsx +228 -0
- package/src/modules/multiplyStyleLengthValue/__tests__/index-test.tsx +23 -0
- package/src/modules/multiplyStyleLengthValue/index.tsx +26 -0
- package/src/modules/normalizeColor/index.tsx +32 -0
- package/src/modules/pick/index.tsx +25 -0
- package/src/modules/processColor/__tests__/index-test.tsx +78 -0
- package/src/modules/processColor/index.tsx +28 -0
- package/src/modules/requestIdleCallback/index.tsx +35 -0
- package/src/modules/setValueForStyles/dangerousStyleValue.tsx +74 -0
- package/src/modules/setValueForStyles/index.tsx +39 -0
- package/src/modules/unitlessNumbers/index.tsx +77 -0
- package/src/modules/useElementLayout/index.tsx +28 -0
- package/src/modules/useEvent/__tests__/index-test.tsx +511 -0
- package/src/modules/useEvent/index.tsx +64 -0
- package/src/modules/useHover/__tests__/index-test.tsx +342 -0
- package/src/modules/useHover/index.tsx +181 -0
- package/src/modules/useLayoutEffect/index.ts +15 -0
- package/src/modules/useLocale/index.tsx +57 -0
- package/src/modules/useLocale/isLocaleRTL.tsx +74 -0
- package/src/modules/useMergeRefs/__tests__/index-test.tsx +91 -0
- package/src/modules/useMergeRefs/index.tsx +22 -0
- package/src/modules/usePlatformMethods/index.tsx +40 -0
- package/src/modules/useStable/__tests__/index-test.tsx +101 -0
- package/src/modules/useStable/index.tsx +24 -0
- package/src/styleTypes.ts +321 -0
- package/src/types.ts +77 -0
- package/types/StyleSheet/compiler/createReactDOMStyle.d.ts +18 -0
- package/types/StyleSheet/compiler/createReactDOMStyle.d.ts.map +1 -0
- package/types/StyleSheet/compiler/hash.d.ts +2 -0
- package/types/StyleSheet/compiler/hash.d.ts.map +1 -0
- package/types/StyleSheet/compiler/hyphenateStyleName.d.ts +10 -0
- package/types/StyleSheet/compiler/hyphenateStyleName.d.ts.map +1 -0
- package/types/StyleSheet/compiler/index.d.ts +39 -0
- package/types/StyleSheet/compiler/index.d.ts.map +1 -0
- package/types/StyleSheet/compiler/normalizeColor.d.ts +10 -0
- package/types/StyleSheet/compiler/normalizeColor.d.ts.map +1 -0
- package/types/StyleSheet/compiler/normalizeValueWithProperty.d.ts +10 -0
- package/types/StyleSheet/compiler/normalizeValueWithProperty.d.ts.map +1 -0
- package/types/StyleSheet/compiler/resolveShadowValue.d.ts +10 -0
- package/types/StyleSheet/compiler/resolveShadowValue.d.ts.map +1 -0
- package/types/StyleSheet/dom/createCSSStyleSheet.d.ts +10 -0
- package/types/StyleSheet/dom/createCSSStyleSheet.d.ts.map +1 -0
- package/types/StyleSheet/dom/createOrderedCSSStyleSheet.d.ts +29 -0
- package/types/StyleSheet/dom/createOrderedCSSStyleSheet.d.ts.map +1 -0
- package/types/StyleSheet/dom/index.d.ts +15 -0
- package/types/StyleSheet/dom/index.d.ts.map +1 -0
- package/types/StyleSheet/index.d.ts +69 -0
- package/types/StyleSheet/index.d.ts.map +1 -0
- package/types/StyleSheet/preprocess.d.ts +16 -0
- package/types/StyleSheet/preprocess.d.ts.map +1 -0
- package/types/StyleSheet/validate.d.ts +10 -0
- package/types/StyleSheet/validate.d.ts.map +1 -0
- package/types/TextAncestorContext.d.ts +11 -0
- package/types/TextAncestorContext.d.ts.map +1 -0
- package/types/colorProps.d.ts +13 -0
- package/types/colorProps.d.ts.map +1 -0
- package/types/index.d.ts +45 -0
- package/types/index.d.ts.map +1 -0
- package/types/modules/AccessibilityUtil/index.d.ts +16 -0
- package/types/modules/AccessibilityUtil/index.d.ts.map +1 -0
- package/types/modules/AccessibilityUtil/isDisabled.d.ts +10 -0
- package/types/modules/AccessibilityUtil/isDisabled.d.ts.map +1 -0
- package/types/modules/AccessibilityUtil/propsToAccessibilityComponent.d.ts +10 -0
- package/types/modules/AccessibilityUtil/propsToAccessibilityComponent.d.ts.map +1 -0
- package/types/modules/AccessibilityUtil/propsToAriaRole.d.ts +12 -0
- package/types/modules/AccessibilityUtil/propsToAriaRole.d.ts.map +1 -0
- package/types/modules/AssetRegistry/index.d.ts +22 -0
- package/types/modules/AssetRegistry/index.d.ts.map +1 -0
- package/types/modules/ImageLoader/index.d.ts +27 -0
- package/types/modules/ImageLoader/index.d.ts.map +1 -0
- package/types/modules/InteractionManager.d.ts +48 -0
- package/types/modules/InteractionManager.d.ts.map +1 -0
- package/types/modules/Platform/index.d.ts +15 -0
- package/types/modules/Platform/index.d.ts.map +1 -0
- package/types/modules/TextInputState/index.d.ts +38 -0
- package/types/modules/TextInputState/index.d.ts.map +1 -0
- package/types/modules/UIManager/index.d.ts +23 -0
- package/types/modules/UIManager/index.d.ts.map +1 -0
- package/types/modules/canUseDOM.d.ts +10 -0
- package/types/modules/canUseDOM.d.ts.map +1 -0
- package/types/modules/createDOMProps/index.d.ts +12 -0
- package/types/modules/createDOMProps/index.d.ts.map +1 -0
- package/types/modules/createEventHandle/index.d.ts +20 -0
- package/types/modules/createEventHandle/index.d.ts.map +1 -0
- package/types/modules/dismissKeyboard/index.d.ts +10 -0
- package/types/modules/dismissKeyboard/index.d.ts.map +1 -0
- package/types/modules/forwardedProps/index.d.ts +383 -0
- package/types/modules/forwardedProps/index.d.ts.map +1 -0
- package/types/modules/getBoundingClientRect/index.d.ts +10 -0
- package/types/modules/getBoundingClientRect/index.d.ts.map +1 -0
- package/types/modules/invariant.d.ts +3 -0
- package/types/modules/invariant.d.ts.map +1 -0
- package/types/modules/isSelectionValid/index.d.ts +10 -0
- package/types/modules/isSelectionValid/index.d.ts.map +1 -0
- package/types/modules/isWebColor/index.d.ts +10 -0
- package/types/modules/isWebColor/index.d.ts.map +1 -0
- package/types/modules/mergeRefs/index.d.ts +11 -0
- package/types/modules/mergeRefs/index.d.ts.map +1 -0
- package/types/modules/modality/index.d.ts +17 -0
- package/types/modules/modality/index.d.ts.map +1 -0
- package/types/modules/multiplyStyleLengthValue/index.d.ts +10 -0
- package/types/modules/multiplyStyleLengthValue/index.d.ts.map +1 -0
- package/types/modules/normalizeColor/index.d.ts +10 -0
- package/types/modules/normalizeColor/index.d.ts.map +1 -0
- package/types/modules/pick/index.d.ts +12 -0
- package/types/modules/pick/index.d.ts.map +1 -0
- package/types/modules/processColor/index.d.ts +11 -0
- package/types/modules/processColor/index.d.ts.map +1 -0
- package/types/modules/requestIdleCallback/index.d.ts +3 -0
- package/types/modules/requestIdleCallback/index.d.ts.map +1 -0
- package/types/modules/setValueForStyles/dangerousStyleValue.d.ts +11 -0
- package/types/modules/setValueForStyles/dangerousStyleValue.d.ts.map +1 -0
- package/types/modules/setValueForStyles/index.d.ts +9 -0
- package/types/modules/setValueForStyles/index.d.ts.map +1 -0
- package/types/modules/unitlessNumbers/index.d.ts +60 -0
- package/types/modules/unitlessNumbers/index.d.ts.map +1 -0
- package/types/modules/useElementLayout/index.d.ts +4 -0
- package/types/modules/useElementLayout/index.d.ts.map +1 -0
- package/types/modules/useEvent/index.d.ts +24 -0
- package/types/modules/useEvent/index.d.ts.map +1 -0
- package/types/modules/useHover/index.d.ts +21 -0
- package/types/modules/useHover/index.d.ts.map +1 -0
- package/types/modules/useLayoutEffect/index.d.ts +13 -0
- package/types/modules/useLayoutEffect/index.d.ts.map +1 -0
- package/types/modules/useLocale/index.d.ts +14 -0
- package/types/modules/useLocale/index.d.ts.map +1 -0
- package/types/modules/useLocale/isLocaleRTL.d.ts +13 -0
- package/types/modules/useLocale/isLocaleRTL.d.ts.map +1 -0
- package/types/modules/useMergeRefs/index.d.ts +11 -0
- package/types/modules/useMergeRefs/index.d.ts.map +1 -0
- package/types/modules/usePlatformMethods/index.d.ts +18 -0
- package/types/modules/usePlatformMethods/index.d.ts.map +1 -0
- package/types/modules/useStable/index.d.ts +10 -0
- package/types/modules/useStable/index.d.ts.map +1 -0
- package/types/styleTypes.d.ts +211 -0
- package/types/styleTypes.d.ts.map +1 -0
- package/types/types.d.ts +46 -0
- package/types/types.d.ts.map +1 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Nicolas Gallagher.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @flow strict
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
export const getBoundingClientRect = (node: HTMLElement | null): void | ClientRect => {
|
|
11
|
+
if (node != null) {
|
|
12
|
+
const isElement = node.nodeType === 1 /* Node.ELEMENT_NODE */
|
|
13
|
+
if (isElement && typeof node.getBoundingClientRect === 'function') {
|
|
14
|
+
return node.getBoundingClientRect()
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export function invariant(condition: any, log: string, ...logVars: string[]) {
|
|
2
|
+
if (!condition) {
|
|
3
|
+
throw new Error(
|
|
4
|
+
process.env.NODE_ENV === 'development'
|
|
5
|
+
? log
|
|
6
|
+
.split('%s')
|
|
7
|
+
.flatMap((chunk, i) => [chunk, logVars[i]])
|
|
8
|
+
.join('')
|
|
9
|
+
: log
|
|
10
|
+
)
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export function warning(condition: any, log: string, ...logVars: string[]) {
|
|
15
|
+
if (process.env.NODE_ENV === 'development') {
|
|
16
|
+
try {
|
|
17
|
+
invariant(condition, log, ...logVars)
|
|
18
|
+
} catch (err) {
|
|
19
|
+
console.warn(err)
|
|
20
|
+
// allow to pass through
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Nicolas Gallagher
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @flow
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
export function isSelectionValid(): boolean {
|
|
11
|
+
const selection = window.getSelection()
|
|
12
|
+
if (!selection) return false
|
|
13
|
+
const string = selection.toString()
|
|
14
|
+
const anchorNode = selection.anchorNode
|
|
15
|
+
const focusNode = selection.focusNode
|
|
16
|
+
const isTextNode =
|
|
17
|
+
(anchorNode && anchorNode.nodeType === window.Node.TEXT_NODE) ||
|
|
18
|
+
(focusNode && focusNode.nodeType === window.Node.TEXT_NODE)
|
|
19
|
+
return string.length >= 1 && string !== '\n' && !!isTextNode
|
|
20
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Nicolas Gallagher.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @flow
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
export const isWebColor = (color: string): boolean =>
|
|
11
|
+
color === 'currentcolor' ||
|
|
12
|
+
color === 'currentColor' ||
|
|
13
|
+
color === 'inherit' ||
|
|
14
|
+
color.startsWith('var(')
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { render } from '@testing-library/react'
|
|
9
|
+
import * as React from 'react'
|
|
10
|
+
|
|
11
|
+
import mergeRefs from '..'
|
|
12
|
+
|
|
13
|
+
describe('modules/mergeRefs', () => {
|
|
14
|
+
test('merges refs of different types', () => {
|
|
15
|
+
const ref = React.createRef(null)
|
|
16
|
+
let functionRefValue = null
|
|
17
|
+
let hookRef
|
|
18
|
+
function Component() {
|
|
19
|
+
const functionRef = (x) => {
|
|
20
|
+
functionRefValue = x
|
|
21
|
+
}
|
|
22
|
+
hookRef = React.useRef(null)
|
|
23
|
+
return <div ref={mergeRefs(ref, hookRef, functionRef)} />
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
render(<Component />)
|
|
27
|
+
|
|
28
|
+
expect(ref.current).toBeInstanceOf(HTMLDivElement)
|
|
29
|
+
expect(hookRef.current).toBeInstanceOf(HTMLDivElement)
|
|
30
|
+
expect(functionRefValue).toBeInstanceOf(HTMLDivElement)
|
|
31
|
+
})
|
|
32
|
+
})
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @flow strict
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type * as React from 'react'
|
|
11
|
+
|
|
12
|
+
export function mergeRefs(
|
|
13
|
+
...args: ReadonlyArray<React.Ref<any>>
|
|
14
|
+
): (node: HTMLElement | null) => void {
|
|
15
|
+
return function forwardRef(node: HTMLElement | null) {
|
|
16
|
+
args.forEach((ref: React.Ref<any>) => {
|
|
17
|
+
if (ref == null) {
|
|
18
|
+
return
|
|
19
|
+
}
|
|
20
|
+
if (typeof ref === 'function') {
|
|
21
|
+
ref(node)
|
|
22
|
+
return
|
|
23
|
+
}
|
|
24
|
+
if (typeof ref === 'object') {
|
|
25
|
+
// @ts-ignore
|
|
26
|
+
ref.current = node
|
|
27
|
+
return
|
|
28
|
+
}
|
|
29
|
+
console.error(
|
|
30
|
+
`mergeRefs cannot handle Refs of type boolean, number or string, received ref ${String(
|
|
31
|
+
ref
|
|
32
|
+
)}`
|
|
33
|
+
)
|
|
34
|
+
})
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Nicolas Gallagher.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import {
|
|
9
|
+
clearPointers,
|
|
10
|
+
createEventTarget,
|
|
11
|
+
describeWithPointerEvent,
|
|
12
|
+
setPointerEvent,
|
|
13
|
+
testWithPointerType,
|
|
14
|
+
} from 'dom-event-testing-library'
|
|
15
|
+
|
|
16
|
+
import { getActiveModality, getModality, testOnly_resetActiveModality } from '..'
|
|
17
|
+
|
|
18
|
+
describeWithPointerEvent('modules/modality', (hasPointerEvent) => {
|
|
19
|
+
let rootNode
|
|
20
|
+
|
|
21
|
+
beforeEach(() => {
|
|
22
|
+
setPointerEvent(hasPointerEvent)
|
|
23
|
+
rootNode = document.createElement('div')
|
|
24
|
+
document.body.appendChild(rootNode)
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
afterEach(() => {
|
|
28
|
+
document.body.removeChild(rootNode)
|
|
29
|
+
rootNode = null
|
|
30
|
+
clearPointers()
|
|
31
|
+
testOnly_resetActiveModality()
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
describe('getModality', () => {
|
|
35
|
+
testWithPointerType('reflects currently-in-use modality', (pointerType) => {
|
|
36
|
+
const target = createEventTarget(rootNode)
|
|
37
|
+
expect(getModality()).toBe('keyboard')
|
|
38
|
+
target.pointerdown({ pointerType })
|
|
39
|
+
expect(getModality()).toBe(pointerType)
|
|
40
|
+
target.pointerup({ pointerType })
|
|
41
|
+
target.keydown()
|
|
42
|
+
expect(getModality()).toBe('keyboard')
|
|
43
|
+
if (pointerType !== 'touch') {
|
|
44
|
+
target.pointermove({ pointerType })
|
|
45
|
+
expect(getModality()).toBe(pointerType)
|
|
46
|
+
target.keydown()
|
|
47
|
+
expect(getModality()).toBe('keyboard')
|
|
48
|
+
}
|
|
49
|
+
})
|
|
50
|
+
})
|
|
51
|
+
|
|
52
|
+
describe('getActiveModality', () => {
|
|
53
|
+
testWithPointerType('reflects last actively used modality', (pointerType) => {
|
|
54
|
+
const target = createEventTarget(rootNode)
|
|
55
|
+
expect(getActiveModality()).toBe('keyboard')
|
|
56
|
+
target.pointerdown({ pointerType })
|
|
57
|
+
expect(getActiveModality()).toBe(pointerType)
|
|
58
|
+
target.pointerup({ pointerType })
|
|
59
|
+
target.keydown()
|
|
60
|
+
if (pointerType !== 'touch') {
|
|
61
|
+
target.pointermove({ pointerType })
|
|
62
|
+
expect(getActiveModality()).toBe('keyboard')
|
|
63
|
+
}
|
|
64
|
+
})
|
|
65
|
+
})
|
|
66
|
+
})
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Nicolas Gallagher.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @flow
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { canUseDOM } from '../canUseDOM'
|
|
11
|
+
import { createEventHandle } from '../createEventHandle/index'
|
|
12
|
+
|
|
13
|
+
export type Modality = 'keyboard' | 'mouse' | 'touch' | 'pen'
|
|
14
|
+
|
|
15
|
+
const supportsPointerEvent = () =>
|
|
16
|
+
!!(typeof window !== 'undefined' && window.PointerEvent != null)
|
|
17
|
+
|
|
18
|
+
let activeModality = 'keyboard'
|
|
19
|
+
let modality = 'keyboard'
|
|
20
|
+
let previousModality
|
|
21
|
+
let previousActiveModality
|
|
22
|
+
let isEmulatingMouseEvents = false
|
|
23
|
+
const listeners = new Set()
|
|
24
|
+
|
|
25
|
+
const KEYBOARD = 'keyboard'
|
|
26
|
+
const MOUSE = 'mouse'
|
|
27
|
+
const TOUCH = 'touch'
|
|
28
|
+
|
|
29
|
+
const BLUR = 'blur'
|
|
30
|
+
const CONTEXTMENU = 'contextmenu'
|
|
31
|
+
const FOCUS = 'focus'
|
|
32
|
+
const KEYDOWN = 'keydown'
|
|
33
|
+
const MOUSEDOWN = 'mousedown'
|
|
34
|
+
const MOUSEMOVE = 'mousemove'
|
|
35
|
+
const MOUSEUP = 'mouseup'
|
|
36
|
+
const POINTERDOWN = 'pointerdown'
|
|
37
|
+
const POINTERMOVE = 'pointermove'
|
|
38
|
+
const SCROLL = 'scroll'
|
|
39
|
+
const SELECTIONCHANGE = 'selectionchange'
|
|
40
|
+
const TOUCHCANCEL = 'touchcancel'
|
|
41
|
+
const TOUCHMOVE = 'touchmove'
|
|
42
|
+
const TOUCHSTART = 'touchstart'
|
|
43
|
+
const VISIBILITYCHANGE = 'visibilitychange'
|
|
44
|
+
|
|
45
|
+
const bubbleOptions = { passive: true }
|
|
46
|
+
const captureOptions = { capture: true, passive: true }
|
|
47
|
+
|
|
48
|
+
// Window events
|
|
49
|
+
const addBlurListener = createEventHandle(BLUR, bubbleOptions)
|
|
50
|
+
const addFocusListener = createEventHandle(FOCUS, bubbleOptions)
|
|
51
|
+
// Must be capture phase because 'stopPropagation' might prevent these
|
|
52
|
+
// events bubbling to the document.
|
|
53
|
+
const addVisibilityChangeListener = createEventHandle(VISIBILITYCHANGE, captureOptions)
|
|
54
|
+
const addKeyDownListener = createEventHandle(KEYDOWN, captureOptions)
|
|
55
|
+
const addPointerDownListener = createEventHandle(POINTERDOWN, captureOptions)
|
|
56
|
+
const addPointerMoveListener = createEventHandle(POINTERMOVE, captureOptions)
|
|
57
|
+
// Fallback events
|
|
58
|
+
const addContextMenuListener = createEventHandle(CONTEXTMENU, captureOptions)
|
|
59
|
+
const addMouseDownListener = createEventHandle(MOUSEDOWN, captureOptions)
|
|
60
|
+
const addMouseMoveListener = createEventHandle(MOUSEMOVE, captureOptions)
|
|
61
|
+
const addMouseUpListener = createEventHandle(MOUSEUP, captureOptions)
|
|
62
|
+
const addScrollListener = createEventHandle(SCROLL, captureOptions)
|
|
63
|
+
const addSelectiomChangeListener = createEventHandle(SELECTIONCHANGE, captureOptions)
|
|
64
|
+
const addTouchCancelListener = createEventHandle(TOUCHCANCEL, captureOptions)
|
|
65
|
+
const addTouchMoveListener = createEventHandle(TOUCHMOVE, captureOptions)
|
|
66
|
+
const addTouchStartListener = createEventHandle(TOUCHSTART, captureOptions)
|
|
67
|
+
|
|
68
|
+
function restoreModality() {
|
|
69
|
+
if (previousModality != null || previousActiveModality != null) {
|
|
70
|
+
if (previousModality != null) {
|
|
71
|
+
modality = previousModality
|
|
72
|
+
previousModality = null
|
|
73
|
+
}
|
|
74
|
+
if (previousActiveModality != null) {
|
|
75
|
+
activeModality = previousActiveModality
|
|
76
|
+
previousActiveModality = null
|
|
77
|
+
}
|
|
78
|
+
callListeners()
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
function onBlurWindow() {
|
|
83
|
+
previousModality = modality
|
|
84
|
+
previousActiveModality = activeModality
|
|
85
|
+
activeModality = KEYBOARD
|
|
86
|
+
modality = KEYBOARD
|
|
87
|
+
callListeners()
|
|
88
|
+
// for fallback events
|
|
89
|
+
isEmulatingMouseEvents = false
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
function onFocusWindow() {
|
|
93
|
+
restoreModality()
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
function onKeyDown(event) {
|
|
97
|
+
if (event.metaKey || event.altKey || event.ctrlKey) {
|
|
98
|
+
return
|
|
99
|
+
}
|
|
100
|
+
if (modality !== KEYBOARD) {
|
|
101
|
+
modality = KEYBOARD
|
|
102
|
+
activeModality = KEYBOARD
|
|
103
|
+
callListeners()
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
function onVisibilityChange() {
|
|
108
|
+
if (document.visibilityState !== 'hidden') {
|
|
109
|
+
restoreModality()
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
function onPointerish(event: any) {
|
|
114
|
+
const eventType = event.type
|
|
115
|
+
|
|
116
|
+
if (supportsPointerEvent()) {
|
|
117
|
+
if (eventType === POINTERDOWN) {
|
|
118
|
+
if (activeModality !== event.pointerType) {
|
|
119
|
+
modality = event.pointerType
|
|
120
|
+
activeModality = event.pointerType
|
|
121
|
+
callListeners()
|
|
122
|
+
}
|
|
123
|
+
return
|
|
124
|
+
}
|
|
125
|
+
if (eventType === POINTERMOVE) {
|
|
126
|
+
if (modality !== event.pointerType) {
|
|
127
|
+
modality = event.pointerType
|
|
128
|
+
callListeners()
|
|
129
|
+
}
|
|
130
|
+
return
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
// Fallback for non-PointerEvent environment
|
|
134
|
+
else {
|
|
135
|
+
if (!isEmulatingMouseEvents) {
|
|
136
|
+
if (eventType === MOUSEDOWN) {
|
|
137
|
+
if (activeModality !== MOUSE) {
|
|
138
|
+
modality = MOUSE
|
|
139
|
+
activeModality = MOUSE
|
|
140
|
+
callListeners()
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
if (eventType === MOUSEMOVE) {
|
|
144
|
+
if (modality !== MOUSE) {
|
|
145
|
+
modality = MOUSE
|
|
146
|
+
callListeners()
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// Flag when browser may produce emulated events
|
|
152
|
+
if (eventType === TOUCHSTART) {
|
|
153
|
+
isEmulatingMouseEvents = true
|
|
154
|
+
if (event.touches && event.touches.length > 1) {
|
|
155
|
+
isEmulatingMouseEvents = false
|
|
156
|
+
}
|
|
157
|
+
if (activeModality !== TOUCH) {
|
|
158
|
+
modality = TOUCH
|
|
159
|
+
activeModality = TOUCH
|
|
160
|
+
callListeners()
|
|
161
|
+
}
|
|
162
|
+
return
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
// Remove flag after emulated events are finished or cancelled, and if an
|
|
166
|
+
// event occurs that cuts short a touch event sequence.
|
|
167
|
+
if (
|
|
168
|
+
eventType === CONTEXTMENU ||
|
|
169
|
+
eventType === MOUSEUP ||
|
|
170
|
+
eventType === SELECTIONCHANGE ||
|
|
171
|
+
eventType === SCROLL ||
|
|
172
|
+
eventType === TOUCHCANCEL ||
|
|
173
|
+
eventType === TOUCHMOVE
|
|
174
|
+
) {
|
|
175
|
+
isEmulatingMouseEvents = false
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
if (canUseDOM) {
|
|
181
|
+
addBlurListener(window, onBlurWindow)
|
|
182
|
+
addFocusListener(window, onFocusWindow)
|
|
183
|
+
addKeyDownListener(document, onKeyDown)
|
|
184
|
+
addPointerDownListener(document, onPointerish)
|
|
185
|
+
addPointerMoveListener(document, onPointerish)
|
|
186
|
+
addVisibilityChangeListener(document, onVisibilityChange)
|
|
187
|
+
// fallbacks
|
|
188
|
+
addContextMenuListener(document, onPointerish)
|
|
189
|
+
addMouseDownListener(document, onPointerish)
|
|
190
|
+
addMouseMoveListener(document, onPointerish)
|
|
191
|
+
addMouseUpListener(document, onPointerish)
|
|
192
|
+
addTouchCancelListener(document, onPointerish)
|
|
193
|
+
addTouchMoveListener(document, onPointerish)
|
|
194
|
+
addTouchStartListener(document, onPointerish)
|
|
195
|
+
addSelectiomChangeListener(document, onPointerish)
|
|
196
|
+
addScrollListener(document, onPointerish)
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
function callListeners() {
|
|
200
|
+
const value = { activeModality, modality }
|
|
201
|
+
listeners.forEach((listener) => {
|
|
202
|
+
// @ts-ignore
|
|
203
|
+
listener(value)
|
|
204
|
+
})
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
export function getActiveModality() {
|
|
208
|
+
return activeModality as Modality
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
export function getModality() {
|
|
212
|
+
return modality as Modality
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
export function addModalityListener(
|
|
216
|
+
listener: (arg0: { activeModality: Modality; modality: Modality }) => void
|
|
217
|
+
): () => void {
|
|
218
|
+
listeners.add(listener)
|
|
219
|
+
return () => {
|
|
220
|
+
listeners.delete(listener)
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
export function testOnly_resetActiveModality() {
|
|
225
|
+
isEmulatingMouseEvents = false
|
|
226
|
+
activeModality = KEYBOARD
|
|
227
|
+
modality = KEYBOARD
|
|
228
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Nicolas Gallagher.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import multiplyStyleLengthValue from '..'
|
|
9
|
+
|
|
10
|
+
describe('modules/multiplyStyleLengthValue', () => {
|
|
11
|
+
test('number', () => {
|
|
12
|
+
expect(multiplyStyleLengthValue(2, -1)).toEqual(-2)
|
|
13
|
+
expect(multiplyStyleLengthValue(2, 2)).toEqual(4)
|
|
14
|
+
expect(multiplyStyleLengthValue(2.5, 2)).toEqual(5)
|
|
15
|
+
})
|
|
16
|
+
|
|
17
|
+
test('length', () => {
|
|
18
|
+
expect(multiplyStyleLengthValue('2rem', -1)).toEqual('-2rem')
|
|
19
|
+
expect(multiplyStyleLengthValue('2px', 2)).toEqual('4px')
|
|
20
|
+
expect(multiplyStyleLengthValue('2.5em', 2)).toEqual('5em')
|
|
21
|
+
expect(multiplyStyleLengthValue('2e3px', 2)).toEqual('4000px')
|
|
22
|
+
})
|
|
23
|
+
})
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Nicolas Gallagher.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @noflow
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
const CSS_UNIT_RE = /^[+-]?\d*(?:\.\d+)?(?:[Ee][+-]?\d+)?(%|\w*)/
|
|
11
|
+
|
|
12
|
+
const getUnit = (str) => str.match(CSS_UNIT_RE)[1]
|
|
13
|
+
|
|
14
|
+
const isNumeric = (n) => {
|
|
15
|
+
return !isNaN(parseFloat(n)) && isFinite(n)
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export const multiplyStyleLengthValue = (value: string | number, multiple) => {
|
|
19
|
+
if (typeof value === 'string') {
|
|
20
|
+
const number = parseFloat(value) * multiple
|
|
21
|
+
const unit = getUnit(value)
|
|
22
|
+
return `${number}${unit}`
|
|
23
|
+
} else if (isNumeric(value)) {
|
|
24
|
+
return value * multiple
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Nicolas Gallagher.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @flow
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { isWebColor } from '../isWebColor/index'
|
|
11
|
+
import { processColor } from '../processColor/index'
|
|
12
|
+
|
|
13
|
+
export const normalizeColor = (
|
|
14
|
+
color: number | string | null | undefined,
|
|
15
|
+
opacity = 1
|
|
16
|
+
): void | string => {
|
|
17
|
+
if (color == null) return
|
|
18
|
+
|
|
19
|
+
if (typeof color === 'string' && isWebColor(color)) {
|
|
20
|
+
return color
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const colorInt = processColor(color)
|
|
24
|
+
if (colorInt != null) {
|
|
25
|
+
const r = (colorInt >> 16) & 255
|
|
26
|
+
const g = (colorInt >> 8) & 255
|
|
27
|
+
const b = colorInt & 255
|
|
28
|
+
const a = ((colorInt >> 24) & 255) / 255
|
|
29
|
+
const alpha = (a * opacity).toFixed(2)
|
|
30
|
+
return `rgba(${r},${g},${b},${alpha})`
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Nicolas Gallagher.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @flow
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
export function pick(
|
|
11
|
+
obj: object,
|
|
12
|
+
list: {
|
|
13
|
+
[K in string]: boolean
|
|
14
|
+
}
|
|
15
|
+
): object {
|
|
16
|
+
const nextObj = {}
|
|
17
|
+
for (const key in obj) {
|
|
18
|
+
if (obj.hasOwnProperty(key)) {
|
|
19
|
+
if (list[key] === true) {
|
|
20
|
+
nextObj[key] = obj[key]
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return nextObj
|
|
25
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Nicolas Gallagher.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import processColor from '..'
|
|
9
|
+
|
|
10
|
+
const platformSpecific = (x) => x
|
|
11
|
+
|
|
12
|
+
describe('processColor', () => {
|
|
13
|
+
describe('predefined color names', () => {
|
|
14
|
+
it('should convert red', () => {
|
|
15
|
+
const colorFromString = processColor('red')
|
|
16
|
+
const expectedInt = 0xffff0000
|
|
17
|
+
expect(colorFromString).toEqual(platformSpecific(expectedInt))
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
it('should convert white', () => {
|
|
21
|
+
const colorFromString = processColor('white')
|
|
22
|
+
const expectedInt = 0xffffffff
|
|
23
|
+
expect(colorFromString).toEqual(platformSpecific(expectedInt))
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
it('should convert black', () => {
|
|
27
|
+
const colorFromString = processColor('black')
|
|
28
|
+
const expectedInt = 0xff000000
|
|
29
|
+
expect(colorFromString).toEqual(platformSpecific(expectedInt))
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
it('should convert transparent', () => {
|
|
33
|
+
const colorFromString = processColor('transparent')
|
|
34
|
+
const expectedInt = 0x00000000
|
|
35
|
+
expect(colorFromString).toEqual(platformSpecific(expectedInt))
|
|
36
|
+
})
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
describe('RGB strings', () => {
|
|
40
|
+
it('should convert rgb(x, y, z)', () => {
|
|
41
|
+
const colorFromString = processColor('rgb(10, 20, 30)')
|
|
42
|
+
const expectedInt = 0xff0a141e
|
|
43
|
+
expect(colorFromString).toEqual(platformSpecific(expectedInt))
|
|
44
|
+
})
|
|
45
|
+
})
|
|
46
|
+
|
|
47
|
+
describe('RGBA strings', () => {
|
|
48
|
+
it('should convert rgba(x, y, z, a)', () => {
|
|
49
|
+
const colorFromString = processColor('rgba(10, 20, 30, 0.4)')
|
|
50
|
+
const expectedInt = 0x660a141e
|
|
51
|
+
expect(colorFromString).toEqual(platformSpecific(expectedInt))
|
|
52
|
+
})
|
|
53
|
+
})
|
|
54
|
+
|
|
55
|
+
describe('HSL strings', () => {
|
|
56
|
+
it('should convert hsl(x, y%, z%)', () => {
|
|
57
|
+
const colorFromString = processColor('hsl(318, 69%, 55%)')
|
|
58
|
+
const expectedInt = 0xffdb3dac
|
|
59
|
+
expect(colorFromString).toEqual(platformSpecific(expectedInt))
|
|
60
|
+
})
|
|
61
|
+
})
|
|
62
|
+
|
|
63
|
+
describe('HSLA strings', () => {
|
|
64
|
+
it('should convert hsla(x, y%, z%, a)', () => {
|
|
65
|
+
const colorFromString = processColor('hsla(318, 69%, 55%, 0.25)')
|
|
66
|
+
const expectedInt = 0x40db3dac
|
|
67
|
+
expect(colorFromString).toEqual(platformSpecific(expectedInt))
|
|
68
|
+
})
|
|
69
|
+
})
|
|
70
|
+
|
|
71
|
+
describe('hex strings', () => {
|
|
72
|
+
it('should convert #xxxxxx', () => {
|
|
73
|
+
const colorFromString = processColor('#1e83c9')
|
|
74
|
+
const expectedInt = 0xff1e83c9
|
|
75
|
+
expect(colorFromString).toEqual(platformSpecific(expectedInt))
|
|
76
|
+
})
|
|
77
|
+
})
|
|
78
|
+
})
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) Nicolas Gallagher.
|
|
4
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the MIT license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*
|
|
9
|
+
* @flow
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import normalizeColor from '@hanzogui/normalize-css-color'
|
|
13
|
+
|
|
14
|
+
export const processColor = (color?: string | number): number | null => {
|
|
15
|
+
if (color === undefined || color === null) {
|
|
16
|
+
return color
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// convert number and hex
|
|
20
|
+
let int32Color = normalizeColor(color)
|
|
21
|
+
if (int32Color === undefined || int32Color === null) {
|
|
22
|
+
return undefined
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
int32Color = ((int32Color << 24) | (int32Color >>> 8)) >>> 0
|
|
26
|
+
|
|
27
|
+
return int32Color
|
|
28
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Nicolas Gallagher.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @flow
|
|
8
|
+
*/
|
|
9
|
+
import { canUseDOM } from '../canUseDOM'
|
|
10
|
+
|
|
11
|
+
const _requestIdleCallback = function (cb: Function, options?: object) {
|
|
12
|
+
return setTimeout(() => {
|
|
13
|
+
const start = Date.now()
|
|
14
|
+
cb({
|
|
15
|
+
didTimeout: false,
|
|
16
|
+
timeRemaining() {
|
|
17
|
+
return Math.max(0, 50 - (Date.now() - start))
|
|
18
|
+
},
|
|
19
|
+
})
|
|
20
|
+
}, 1)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const _cancelIdleCallback = function (id) {
|
|
24
|
+
clearTimeout(id)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const isSupported = canUseDOM && typeof window.requestIdleCallback !== 'undefined'
|
|
28
|
+
|
|
29
|
+
export const requestIdleCallback = isSupported
|
|
30
|
+
? window.requestIdleCallback
|
|
31
|
+
: _requestIdleCallback
|
|
32
|
+
|
|
33
|
+
export const cancelIdleCallback = isSupported
|
|
34
|
+
? window.cancelIdleCallback
|
|
35
|
+
: _cancelIdleCallback
|