@pyreon/rocketstyle 0.11.7 → 0.11.8
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/lib/index.js +8 -15
- package/package.json +7 -7
- package/src/rocketstyle.ts +20 -21
package/lib/index.js
CHANGED
|
@@ -511,13 +511,9 @@ const rocketComponent = (options) => {
|
|
|
511
511
|
});
|
|
512
512
|
const RESERVED_STYLING_PROPS_KEYS = Object.keys(reservedPropNames);
|
|
513
513
|
const $rocketstyleAccessor = () => {
|
|
514
|
-
const { pseudo, ...mergeProps } = {
|
|
515
|
-
...localCtx,
|
|
516
|
-
...props
|
|
517
|
-
};
|
|
518
514
|
const mode = themeAttrs.mode;
|
|
519
515
|
const rocketstate = _calculateStylingAttrs({
|
|
520
|
-
props: pickStyledAttrs(
|
|
516
|
+
props: pickStyledAttrs(props, reservedPropNames),
|
|
521
517
|
dimensions
|
|
522
518
|
});
|
|
523
519
|
const modeBaseHelper = ThemeManager$1.modeBaseTheme[mode];
|
|
@@ -533,21 +529,18 @@ const rocketComponent = (options) => {
|
|
|
533
529
|
appTheme: theme
|
|
534
530
|
});
|
|
535
531
|
};
|
|
532
|
+
const localPseudo = localCtx?.pseudo;
|
|
533
|
+
const propPseudo = pick(props, [...PSEUDO_KEYS, ...PSEUDO_META_KEYS]);
|
|
536
534
|
const $rocketstateAccessor = () => {
|
|
537
|
-
const { pseudo, ...mergeProps } = {
|
|
538
|
-
...localCtx,
|
|
539
|
-
...props
|
|
540
|
-
};
|
|
541
|
-
const pseudoRocketstate = {
|
|
542
|
-
...pseudo,
|
|
543
|
-
...pick(props, [...PSEUDO_KEYS, ...PSEUDO_META_KEYS])
|
|
544
|
-
};
|
|
545
535
|
return {
|
|
546
536
|
..._calculateStylingAttrs({
|
|
547
|
-
props: pickStyledAttrs(
|
|
537
|
+
props: pickStyledAttrs(props, reservedPropNames),
|
|
548
538
|
dimensions
|
|
549
539
|
}),
|
|
550
|
-
pseudo:
|
|
540
|
+
pseudo: {
|
|
541
|
+
...localPseudo,
|
|
542
|
+
...propPseudo
|
|
543
|
+
}
|
|
551
544
|
};
|
|
552
545
|
};
|
|
553
546
|
const { pseudo: _pseudo, ...mergeProps } = {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pyreon/rocketstyle",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.8",
|
|
4
4
|
"description": "Multi-dimensional style composition for Pyreon components",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -41,15 +41,15 @@
|
|
|
41
41
|
"typecheck": "tsc --noEmit"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
|
-
"@pyreon/test-utils": "^0.11.
|
|
45
|
-
"@pyreon/typescript": "^0.11.
|
|
44
|
+
"@pyreon/test-utils": "^0.11.8",
|
|
45
|
+
"@pyreon/typescript": "^0.11.8",
|
|
46
46
|
"@vitus-labs/tools-rolldown": "^1.15.3"
|
|
47
47
|
},
|
|
48
48
|
"peerDependencies": {
|
|
49
|
-
"@pyreon/core": "^0.11.
|
|
50
|
-
"@pyreon/reactivity": "^0.11.
|
|
51
|
-
"@pyreon/styler": "^0.11.
|
|
52
|
-
"@pyreon/ui-core": "^0.11.
|
|
49
|
+
"@pyreon/core": "^0.11.8",
|
|
50
|
+
"@pyreon/reactivity": "^0.11.8",
|
|
51
|
+
"@pyreon/styler": "^0.11.8",
|
|
52
|
+
"@pyreon/ui-core": "^0.11.8"
|
|
53
53
|
},
|
|
54
54
|
"engines": {
|
|
55
55
|
"node": ">= 22"
|
package/src/rocketstyle.ts
CHANGED
|
@@ -142,18 +142,16 @@ const rocketComponent: RocketComponent = (options) => {
|
|
|
142
142
|
// (signals, getters) produce updated dimension values.
|
|
143
143
|
// --------------------------------------------------
|
|
144
144
|
const $rocketstyleAccessor = () => {
|
|
145
|
-
//
|
|
146
|
-
//
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
}
|
|
151
|
-
|
|
145
|
+
// Only read mode and dimension props — NOT pseudo state.
|
|
146
|
+
// Pseudo state (hover, focus, pressed) is read by .styles()
|
|
147
|
+
// via $rocketstate inside runUntracked(). Reading pseudo signals
|
|
148
|
+
// here would subscribe this accessor to hover/focus/pressed,
|
|
149
|
+
// causing CSS recomputation on every mouse event.
|
|
152
150
|
const mode = themeAttrs.mode // reactive: tracks mode signal
|
|
153
151
|
|
|
154
|
-
// Resolve active dimensions from
|
|
152
|
+
// Resolve active dimensions from props (not localCtx which has pseudo getters)
|
|
155
153
|
const rocketstate = _calculateStylingAttrs({
|
|
156
|
-
props: pickStyledAttrs(
|
|
154
|
+
props: pickStyledAttrs(props as Record<string, unknown>, reservedPropNames),
|
|
157
155
|
dimensions,
|
|
158
156
|
})
|
|
159
157
|
|
|
@@ -183,23 +181,24 @@ const rocketComponent: RocketComponent = (options) => {
|
|
|
183
181
|
// $rocketstate as a FUNCTION ACCESSOR — reactive on prop changes.
|
|
184
182
|
// Re-evaluates active dimensions + pseudo state from current props.
|
|
185
183
|
// --------------------------------------------------
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
const pseudoRocketstate = {
|
|
193
|
-
...pseudo,
|
|
194
|
-
...pick(props, [...PSEUDO_KEYS, ...PSEUDO_META_KEYS]),
|
|
195
|
-
}
|
|
184
|
+
// Capture pseudo from localCtx once at setup — pseudo properties are
|
|
185
|
+
// getters (from createLocalProvider) that read signals lazily.
|
|
186
|
+
// Passing them through preserves reactivity without subscribing here.
|
|
187
|
+
const localPseudo = localCtx?.pseudo
|
|
188
|
+
const propPseudo = pick(props, [...PSEUDO_KEYS, ...PSEUDO_META_KEYS])
|
|
196
189
|
|
|
190
|
+
const $rocketstateAccessor = () => {
|
|
197
191
|
const rocketstate = _calculateStylingAttrs({
|
|
198
|
-
props: pickStyledAttrs(
|
|
192
|
+
props: pickStyledAttrs(props as Record<string, unknown>, reservedPropNames),
|
|
199
193
|
dimensions,
|
|
200
194
|
})
|
|
201
195
|
|
|
202
|
-
|
|
196
|
+
// Pseudo state uses getter properties — they're evaluated lazily
|
|
197
|
+
// by .styles() inside runUntracked(), not here.
|
|
198
|
+
return {
|
|
199
|
+
...rocketstate,
|
|
200
|
+
pseudo: { ...localPseudo, ...propPseudo },
|
|
201
|
+
}
|
|
203
202
|
}
|
|
204
203
|
|
|
205
204
|
// --------------------------------------------------
|