@cssxjs/runtime 0.2.9 → 0.2.11
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/CHANGELOG.md +24 -0
- package/dimensions.js +10 -0
- package/entrypoints/react-native-teamplay.js +1 -0
- package/entrypoints/react-native.js +1 -0
- package/entrypoints/web-teamplay.js +1 -0
- package/entrypoints/web.js +1 -0
- package/package.json +5 -3
- package/platformHelpers/index.js +9 -0
- package/platformHelpers/react-native.js +22 -0
- package/platformHelpers/web.js +28 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,27 @@
|
|
|
1
|
+
# v0.2.11 (Fri Nov 07 2025)
|
|
2
|
+
|
|
3
|
+
#### 🐛 Bug Fix
|
|
4
|
+
|
|
5
|
+
- fix: make pug reconstruct bindings; add extra options to babel preset; implement reactive update of @media for web and RN ([@cray0000](https://github.com/cray0000))
|
|
6
|
+
|
|
7
|
+
#### Authors: 1
|
|
8
|
+
|
|
9
|
+
- Pavel Zhukov ([@cray0000](https://github.com/cray0000))
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# v0.2.10 (Wed Nov 05 2025)
|
|
14
|
+
|
|
15
|
+
#### 🐛 Bug Fix
|
|
16
|
+
|
|
17
|
+
- fix: export matcher, variables, dimensions from @cssxjs/runtime and from the main cssxjs ([@cray0000](https://github.com/cray0000))
|
|
18
|
+
|
|
19
|
+
#### Authors: 1
|
|
20
|
+
|
|
21
|
+
- Pavel Zhukov ([@cray0000](https://github.com/cray0000))
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
1
25
|
# v0.2.9 (Wed Nov 05 2025)
|
|
2
26
|
|
|
3
27
|
#### 🐛 Bug Fix
|
package/dimensions.js
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import { observable } from '@nx-js/observer-util'
|
|
2
2
|
|
|
3
|
+
let dimensionsInitialized = false
|
|
4
|
+
|
|
5
|
+
export function setDimensionsInitialized (value) {
|
|
6
|
+
dimensionsInitialized = value
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function getDimensionsInitialized () {
|
|
10
|
+
return dimensionsInitialized
|
|
11
|
+
}
|
|
12
|
+
|
|
3
13
|
export default observable({
|
|
4
14
|
width: 0
|
|
5
15
|
})
|
package/entrypoints/web.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cssxjs/runtime",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.11",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -18,7 +18,9 @@
|
|
|
18
18
|
"./entrypoints/web-teamplay": "./entrypoints/web-teamplay.js",
|
|
19
19
|
"./entrypoints/react-native-teamplay": "./entrypoints/react-native-teamplay.js",
|
|
20
20
|
"./constants": "./constants.cjs",
|
|
21
|
-
"./dimensions": "./dimensions.js"
|
|
21
|
+
"./dimensions": "./dimensions.js",
|
|
22
|
+
"./variables": "./variables.js",
|
|
23
|
+
"./matcher": "./matcher.js"
|
|
22
24
|
},
|
|
23
25
|
"type": "module",
|
|
24
26
|
"scripts": {
|
|
@@ -52,5 +54,5 @@
|
|
|
52
54
|
"optional": true
|
|
53
55
|
}
|
|
54
56
|
},
|
|
55
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "93a4681bc0182d5c2faa9e3b8aa4cbdff6c4e780"
|
|
56
58
|
}
|
package/platformHelpers/index.js
CHANGED
|
@@ -39,3 +39,12 @@ export function isPureReact (...args) {
|
|
|
39
39
|
throw err
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
+
|
|
43
|
+
export function initDimensionsUpdater (...args) {
|
|
44
|
+
try {
|
|
45
|
+
return platformHelpers.initDimensionsUpdater(...args)
|
|
46
|
+
} catch (err) {
|
|
47
|
+
console.error('[cssxjs] platform helpers \'initDimensionsUpdater\' is not specified. Babel is probably misconfigured')
|
|
48
|
+
throw err
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Dimensions, Platform } from 'react-native'
|
|
2
|
+
import dimensions, { getDimensionsInitialized, setDimensionsInitialized } from '../dimensions.js'
|
|
2
3
|
|
|
3
4
|
export function getDimensions () {
|
|
4
5
|
return Dimensions.get('window')
|
|
@@ -11,3 +12,24 @@ export function getPlatform () {
|
|
|
11
12
|
export function isPureReact () {
|
|
12
13
|
return false
|
|
13
14
|
}
|
|
15
|
+
|
|
16
|
+
// this is needed to trigger components rerendering to update @media queries
|
|
17
|
+
export function initDimensionsUpdater () {
|
|
18
|
+
if (getDimensionsInitialized()) return
|
|
19
|
+
setDimensionsInitialized(true)
|
|
20
|
+
dimensions.width = Dimensions.get('window').width
|
|
21
|
+
console.log('> Init dimensions updater for React Native. Initial width:', dimensions.width)
|
|
22
|
+
|
|
23
|
+
// debounce by 200ms to avoid too many updates in a short time
|
|
24
|
+
let timeoutId
|
|
25
|
+
Dimensions.addEventListener('change', ({ window }) => {
|
|
26
|
+
if (timeoutId) clearTimeout(timeoutId)
|
|
27
|
+
timeoutId = setTimeout(() => {
|
|
28
|
+
if (dimensions.width !== window.width) {
|
|
29
|
+
console.log('> update window width:', window.width)
|
|
30
|
+
dimensions.width = window.width
|
|
31
|
+
}
|
|
32
|
+
timeoutId = undefined
|
|
33
|
+
}, 200)
|
|
34
|
+
})
|
|
35
|
+
}
|
package/platformHelpers/web.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import dimensions, { getDimensionsInitialized, setDimensionsInitialized } from '../dimensions.js'
|
|
2
|
+
|
|
1
3
|
export function getDimensions () {
|
|
2
4
|
if (typeof window === 'undefined' || !window.innerWidth || !window.innerHeight) {
|
|
3
5
|
console.warn('[cssx] No "window" global variable. Falling back to constant window width and height of 1024x768')
|
|
@@ -16,3 +18,29 @@ export function getPlatform () {
|
|
|
16
18
|
export function isPureReact () {
|
|
17
19
|
return true
|
|
18
20
|
}
|
|
21
|
+
|
|
22
|
+
// this is needed to trigger components rerendering to update @media queries
|
|
23
|
+
export function initDimensionsUpdater () {
|
|
24
|
+
if (getDimensionsInitialized()) return
|
|
25
|
+
setDimensionsInitialized(true)
|
|
26
|
+
if (typeof window === 'undefined' || !window.innerWidth || !window.addEventListener) {
|
|
27
|
+
console.warn('[cssx] No "window" global variable. Setting default window width to 1024 and skipping updater.')
|
|
28
|
+
dimensions.width = 1024
|
|
29
|
+
return
|
|
30
|
+
}
|
|
31
|
+
dimensions.width = window.innerWidth
|
|
32
|
+
console.log('> Init dimensions updater for Web. Initial width:', dimensions.width)
|
|
33
|
+
|
|
34
|
+
// debounce by 200ms to avoid too many updates in a short time
|
|
35
|
+
let timeoutId
|
|
36
|
+
window.addEventListener('resize', () => {
|
|
37
|
+
if (timeoutId) clearTimeout(timeoutId)
|
|
38
|
+
timeoutId = setTimeout(() => {
|
|
39
|
+
if (dimensions.width !== window.innerWidth) {
|
|
40
|
+
console.log('> update window width:', window.innerWidth)
|
|
41
|
+
dimensions.width = window.innerWidth
|
|
42
|
+
}
|
|
43
|
+
timeoutId = undefined
|
|
44
|
+
}, 200)
|
|
45
|
+
})
|
|
46
|
+
}
|