@react-native-styled-system/core 1.0.3 → 1.1.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/lib/commonjs/@types/SxProps.js +33 -1
- package/lib/commonjs/@types/SxProps.js.map +1 -1
- package/lib/commonjs/hook/useSx.js +8 -6
- package/lib/commonjs/hook/useSx.js.map +1 -1
- package/lib/commonjs/hook/useSxStyle.js +3 -2
- package/lib/commonjs/hook/useSxStyle.js.map +1 -1
- package/lib/commonjs/internal/util/StyleHash.js +22 -0
- package/lib/commonjs/internal/util/StyleHash.js.map +1 -0
- package/lib/commonjs/internal/util/mutateShortcutPropToOriginalKeys.js +21 -0
- package/lib/commonjs/internal/util/mutateShortcutPropToOriginalKeys.js.map +1 -0
- package/lib/module/@types/SxProps.js +32 -0
- package/lib/module/@types/SxProps.js.map +1 -1
- package/lib/module/hook/useSx.js +8 -6
- package/lib/module/hook/useSx.js.map +1 -1
- package/lib/module/hook/useSxStyle.js +3 -2
- package/lib/module/hook/useSxStyle.js.map +1 -1
- package/lib/module/internal/util/StyleHash.js +15 -0
- package/lib/module/internal/util/StyleHash.js.map +1 -0
- package/lib/module/internal/util/mutateShortcutPropToOriginalKeys.js +15 -0
- package/lib/module/internal/util/mutateShortcutPropToOriginalKeys.js.map +1 -0
- package/lib/typescript/src/@types/SxProps.d.ts +1 -0
- package/lib/typescript/src/@types/SxProps.d.ts.map +1 -1
- package/lib/typescript/src/hook/useSx.d.ts.map +1 -1
- package/lib/typescript/src/hook/useSxStyle.d.ts.map +1 -1
- package/lib/typescript/src/internal/util/StyleHash.d.ts +3 -0
- package/lib/typescript/src/internal/util/StyleHash.d.ts.map +1 -0
- package/lib/typescript/src/internal/util/mutateShortcutPropToOriginalKeys.d.ts +3 -0
- package/lib/typescript/src/internal/util/mutateShortcutPropToOriginalKeys.d.ts.map +1 -0
- package/package.json +2 -2
- package/src/@types/SxProps.ts +33 -0
- package/src/hook/useSx.test.ts +32 -1
- package/src/hook/useSx.ts +13 -5
- package/src/hook/useSxStyle.ts +7 -4
- package/src/internal/util/StyleHash.ts +19 -0
- package/src/internal/util/mutateShortcutPropToOriginalKeys.ts +18 -0
|
@@ -3,10 +3,42 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports._viewStylePropList = exports._textStylePropList = void 0;
|
|
6
|
+
exports._viewStylePropList = exports._textStylePropList = exports.SHORTCUT_NAME_MAP = void 0;
|
|
7
7
|
/**
|
|
8
8
|
* Always modify if you change API
|
|
9
9
|
*/
|
|
10
10
|
const _viewStylePropList = exports._viewStylePropList = ['style', 'sx', 'backgroundColor', 'bg', 'borderColor', 'margin', 'm', 'marginTop', 'mt', 'marginRight', 'mr', 'marginBottom', 'mb', 'marginLeft', 'ml', 'marginX', 'mx', 'marginY', 'my', 'padding', 'p', 'paddingTop', 'pt', 'paddingRight', 'pr', 'paddingBottom', 'pb', 'paddingLeft', 'pl', 'paddingX', 'px', 'paddingY', 'py', 'top', 'right', 'bottom', 'left', 'gap', 'gapX', 'gapY', 'width', 'w', 'minW', 'minWidth', 'maxW', 'maxWidth', 'height', 'h', 'minH', 'minHeight', 'maxH', 'maxHeight', 'flex', 'alignItems', 'alignContent', 'justifyContent', 'flexWrap', 'flexDirection', 'flexGrow', 'flexShrink', 'flexBasis', 'alignSelf', 'position', 'pos', 'borderWidth', 'borderTopWidth', 'borderRightWidth', 'borderBottomWidth', 'borderLeftWidth', 'borderRadius', 'radius', 'opacity', 'overflow', 'transform', 'aspectRatio', 'display', 'elevation', 'zIndex', 'borderTopLeftRadius', 'borderTopRightRadius', 'borderBottomLeftRadius', 'borderBottomRightRadius'];
|
|
11
11
|
const _textStylePropList = exports._textStylePropList = ['color', 'textDecorationColor', 'textShadowColor', 'fontFamily', 'fontSize', 'fontStyle', 'fontWeight', 'weight', 'letterSpacing', 'lineHeight', 'textAlign', 'align', 'textDecorationLine', 'textDecorationStyle', 'textShadowOffset', 'textShadowRadius', 'textTransform', 'userSelect', 'includeFontPadding', 'typography', 't'];
|
|
12
|
+
const SHORTCUT_NAME_MAP = exports.SHORTCUT_NAME_MAP = {
|
|
13
|
+
bg: 'backgroundColor',
|
|
14
|
+
m: 'margin',
|
|
15
|
+
mt: 'marginTop',
|
|
16
|
+
mr: 'marginRight',
|
|
17
|
+
mb: 'marginBottom',
|
|
18
|
+
ml: 'marginLeft',
|
|
19
|
+
mx: 'marginX',
|
|
20
|
+
my: 'marginY',
|
|
21
|
+
p: 'padding',
|
|
22
|
+
pt: 'paddingTop',
|
|
23
|
+
pr: 'paddingRight',
|
|
24
|
+
pb: 'paddingBottom',
|
|
25
|
+
pl: 'paddingLeft',
|
|
26
|
+
px: 'paddingX',
|
|
27
|
+
py: 'paddingY',
|
|
28
|
+
w: 'width',
|
|
29
|
+
minW: 'minWidth',
|
|
30
|
+
maxW: 'maxWidth',
|
|
31
|
+
h: 'height',
|
|
32
|
+
minH: 'minHeight',
|
|
33
|
+
maxH: 'maxHeight',
|
|
34
|
+
radius: 'borderRadius',
|
|
35
|
+
topLeftRadius: 'borderTopLeftRadius',
|
|
36
|
+
topRightRadius: 'borderTopRightRadius',
|
|
37
|
+
bottomLeftRadius: 'borderBottomLeftRadius',
|
|
38
|
+
bottomRightRadius: 'borderBottomRightRadius',
|
|
39
|
+
pos: 'position',
|
|
40
|
+
weight: 'fontWeight',
|
|
41
|
+
align: 'textAlign',
|
|
42
|
+
t: 'typography'
|
|
43
|
+
};
|
|
12
44
|
//# sourceMappingURL=SxProps.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_viewStylePropList","exports","_textStylePropList"],"sourceRoot":"../../../src","sources":["@types/SxProps.ts"],"mappings":";;;;;;AAMA;AACA;AACA;AACO,MAAMA,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAG,CAChC,OAAO,EACP,IAAI,EACJ,iBAAiB,EACjB,IAAI,EACJ,aAAa,EACb,QAAQ,EACR,GAAG,EACH,WAAW,EACX,IAAI,EACJ,aAAa,EACb,IAAI,EACJ,cAAc,EACd,IAAI,EACJ,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,SAAS,EACT,GAAG,EACH,YAAY,EACZ,IAAI,EACJ,cAAc,EACd,IAAI,EACJ,eAAe,EACf,IAAI,EACJ,aAAa,EACb,IAAI,EACJ,UAAU,EACV,IAAI,EACJ,UAAU,EACV,IAAI,EACJ,KAAK,EACL,OAAO,EACP,QAAQ,EACR,MAAM,EACN,KAAK,EACL,MAAM,EACN,MAAM,EACN,OAAO,EACP,GAAG,EACH,MAAM,EACN,UAAU,EACV,MAAM,EACN,UAAU,EACV,QAAQ,EACR,GAAG,EACH,MAAM,EACN,WAAW,EACX,MAAM,EACN,WAAW,EACX,MAAM,EACN,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,UAAU,EACV,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,KAAK,EACL,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACR,SAAS,EACT,UAAU,EACV,WAAW,EACX,aAAa,EACb,SAAS,EACT,WAAW,EACX,QAAQ,EACR,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,CACU;AAC9B,MAAME,kBAAkB,GAAAD,OAAA,CAAAC,kBAAA,GAAG,CAChC,OAAO,EACP,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,WAAW,EACX,OAAO,EACP,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACZ,GAAG,CAC+D","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_viewStylePropList","exports","_textStylePropList","SHORTCUT_NAME_MAP","bg","m","mt","mr","mb","ml","mx","my","p","pt","pr","pb","pl","px","py","w","minW","maxW","h","minH","maxH","radius","topLeftRadius","topRightRadius","bottomLeftRadius","bottomRightRadius","pos","weight","align","t"],"sourceRoot":"../../../src","sources":["@types/SxProps.ts"],"mappings":";;;;;;AAMA;AACA;AACA;AACO,MAAMA,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAG,CAChC,OAAO,EACP,IAAI,EACJ,iBAAiB,EACjB,IAAI,EACJ,aAAa,EACb,QAAQ,EACR,GAAG,EACH,WAAW,EACX,IAAI,EACJ,aAAa,EACb,IAAI,EACJ,cAAc,EACd,IAAI,EACJ,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,SAAS,EACT,GAAG,EACH,YAAY,EACZ,IAAI,EACJ,cAAc,EACd,IAAI,EACJ,eAAe,EACf,IAAI,EACJ,aAAa,EACb,IAAI,EACJ,UAAU,EACV,IAAI,EACJ,UAAU,EACV,IAAI,EACJ,KAAK,EACL,OAAO,EACP,QAAQ,EACR,MAAM,EACN,KAAK,EACL,MAAM,EACN,MAAM,EACN,OAAO,EACP,GAAG,EACH,MAAM,EACN,UAAU,EACV,MAAM,EACN,UAAU,EACV,QAAQ,EACR,GAAG,EACH,MAAM,EACN,WAAW,EACX,MAAM,EACN,WAAW,EACX,MAAM,EACN,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,UAAU,EACV,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,KAAK,EACL,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACR,SAAS,EACT,UAAU,EACV,WAAW,EACX,aAAa,EACb,SAAS,EACT,WAAW,EACX,QAAQ,EACR,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,CACU;AAC9B,MAAME,kBAAkB,GAAAD,OAAA,CAAAC,kBAAA,GAAG,CAChC,OAAO,EACP,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,WAAW,EACX,OAAO,EACP,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACZ,GAAG,CAC+D;AA6I7D,MAAMC,iBAAyC,GAAAF,OAAA,CAAAE,iBAAA,GAAG;EACvDC,EAAE,EAAE,iBAAiB;EACrBC,CAAC,EAAE,QAAQ;EACXC,EAAE,EAAE,WAAW;EACfC,EAAE,EAAE,aAAa;EACjBC,EAAE,EAAE,cAAc;EAClBC,EAAE,EAAE,YAAY;EAChBC,EAAE,EAAE,SAAS;EACbC,EAAE,EAAE,SAAS;EACbC,CAAC,EAAE,SAAS;EACZC,EAAE,EAAE,YAAY;EAChBC,EAAE,EAAE,cAAc;EAClBC,EAAE,EAAE,eAAe;EACnBC,EAAE,EAAE,aAAa;EACjBC,EAAE,EAAE,UAAU;EACdC,EAAE,EAAE,UAAU;EACdC,CAAC,EAAE,OAAO;EACVC,IAAI,EAAE,UAAU;EAChBC,IAAI,EAAE,UAAU;EAChBC,CAAC,EAAE,QAAQ;EACXC,IAAI,EAAE,WAAW;EACjBC,IAAI,EAAE,WAAW;EACjBC,MAAM,EAAE,cAAc;EACtBC,aAAa,EAAE,qBAAqB;EACpCC,cAAc,EAAE,sBAAsB;EACtCC,gBAAgB,EAAE,wBAAwB;EAC1CC,iBAAiB,EAAE,yBAAyB;EAC5CC,GAAG,EAAE,UAAU;EACfC,MAAM,EAAE,YAAY;EACpBC,KAAK,EAAE,WAAW;EAClBC,CAAC,EAAE;AACL,CAAC","ignoreList":[]}
|
|
@@ -9,7 +9,9 @@ var _reactNative = require("react-native");
|
|
|
9
9
|
var _jsUtil = require("@mj-studio/js-util");
|
|
10
10
|
var _SxProps = require("../@types/SxProps");
|
|
11
11
|
var _useStableCallback = require("../internal/useStableCallback");
|
|
12
|
+
var _mutateShortcutPropToOriginalKeys = require("../internal/util/mutateShortcutPropToOriginalKeys");
|
|
12
13
|
var _printWarning = require("../internal/util/printWarning");
|
|
14
|
+
var _StyleHash = require("../internal/util/StyleHash");
|
|
13
15
|
var _StyledSystemProvider = require("../provider/StyledSystemProvider");
|
|
14
16
|
var _propsToThemedStyle = require("../util/propsToThemedStyle");
|
|
15
17
|
const defaultUseSxOptions = {
|
|
@@ -42,9 +44,9 @@ const useSx = (props, {
|
|
|
42
44
|
|
|
43
45
|
// caution: priority should be ordered correctly.
|
|
44
46
|
const mergedSx = {
|
|
45
|
-
...fallback,
|
|
46
|
-
...props,
|
|
47
|
-
...props?.sx
|
|
47
|
+
...(0, _mutateShortcutPropToOriginalKeys.mutateShortcutPropToOriginalKeys)(fallback),
|
|
48
|
+
...(0, _mutateShortcutPropToOriginalKeys.mutateShortcutPropToOriginalKeys)(props),
|
|
49
|
+
...(0, _mutateShortcutPropToOriginalKeys.mutateShortcutPropToOriginalKeys)(props?.sx)
|
|
48
50
|
};
|
|
49
51
|
const mergedSxStyle = (0, _propsToThemedStyle.propsToThemedStyle)({
|
|
50
52
|
theme,
|
|
@@ -54,13 +56,13 @@ const useSx = (props, {
|
|
|
54
56
|
const composedStyle = !mergedSxStyle ? props?.style : props?.style ? _reactNative.StyleSheet.compose(mergedSxStyle, props.style) : mergedSxStyle;
|
|
55
57
|
if (_jsUtil.is.function(transform)) {
|
|
56
58
|
const transformedSx = transform(_reactNative.StyleSheet.flatten(composedStyle));
|
|
57
|
-
return _reactNative.StyleSheet.compose(composedStyle, (0, _propsToThemedStyle.propsToThemedStyle)({
|
|
59
|
+
return (0, _StyleHash.getCachedStyle)(_reactNative.StyleSheet.compose(composedStyle, (0, _propsToThemedStyle.propsToThemedStyle)({
|
|
58
60
|
theme,
|
|
59
61
|
sx: transformedSx,
|
|
60
62
|
styleType
|
|
61
|
-
}));
|
|
63
|
+
})));
|
|
62
64
|
} else {
|
|
63
|
-
return composedStyle;
|
|
65
|
+
return (0, _StyleHash.getCachedStyle)(composedStyle);
|
|
64
66
|
}
|
|
65
67
|
});
|
|
66
68
|
const filteredProps = (0, _react.useMemo)(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_jsUtil","_SxProps","_useStableCallback","_printWarning","_StyledSystemProvider","_propsToThemedStyle","defaultUseSxOptions","styleType","useSx","props","theme","optionTheme","transform","fallback","styledSystemContext","useContext","StyledSystemContext","getStyle","useStableCallback","skip","is","function","propsToThemedStyle","sx","printWarning","mergedSx","mergedSxStyle","composedStyle","style","StyleSheet","compose","transformedSx","flatten","filteredProps","useMemo","ret","_viewStylePropList","forEach","keyName","_textStylePropList","exports"],"sourceRoot":"../../../src","sources":["hook/useSx.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAGA,IAAAG,QAAA,GAAAH,OAAA;AAEA,IAAAI,kBAAA,GAAAJ,OAAA;AACA,IAAAK,
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_jsUtil","_SxProps","_useStableCallback","_mutateShortcutPropToOriginalKeys","_printWarning","_StyleHash","_StyledSystemProvider","_propsToThemedStyle","defaultUseSxOptions","styleType","useSx","props","theme","optionTheme","transform","fallback","styledSystemContext","useContext","StyledSystemContext","getStyle","useStableCallback","skip","is","function","propsToThemedStyle","sx","printWarning","mergedSx","mutateShortcutPropToOriginalKeys","mergedSxStyle","composedStyle","style","StyleSheet","compose","transformedSx","flatten","getCachedStyle","filteredProps","useMemo","ret","_viewStylePropList","forEach","keyName","_textStylePropList","exports"],"sourceRoot":"../../../src","sources":["hook/useSx.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.useSxStyle = void 0;
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var _printWarning = require("../internal/util/printWarning");
|
|
9
|
+
var _StyleHash = require("../internal/util/StyleHash");
|
|
9
10
|
var _StyledSystemProvider = require("../provider/StyledSystemProvider");
|
|
10
11
|
var _propsToThemedStyle = require("../util/propsToThemedStyle");
|
|
11
12
|
const defaultOptions = {};
|
|
@@ -19,10 +20,10 @@ const useSxStyle = ({
|
|
|
19
20
|
(0, _printWarning.printWarning)('theme not found from useSxStyle, empty style will be returned.');
|
|
20
21
|
return {};
|
|
21
22
|
}
|
|
22
|
-
return (0, _propsToThemedStyle.propsToThemedStyle)({
|
|
23
|
+
return (0, _StyleHash.getCachedStyle)((0, _propsToThemedStyle.propsToThemedStyle)({
|
|
23
24
|
theme,
|
|
24
25
|
sx
|
|
25
|
-
});
|
|
26
|
+
}));
|
|
26
27
|
};
|
|
27
28
|
};
|
|
28
29
|
exports.useSxStyle = useSxStyle;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_printWarning","_StyledSystemProvider","_propsToThemedStyle","defaultOptions","useSxStyle","theme","optionTheme","styledSystemContext","useContext","StyledSystemContext","sx","printWarning","propsToThemedStyle","exports"],"sourceRoot":"../../../src","sources":["hook/useSxStyle.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAKA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,
|
|
1
|
+
{"version":3,"names":["_react","require","_printWarning","_StyleHash","_StyledSystemProvider","_propsToThemedStyle","defaultOptions","useSxStyle","theme","optionTheme","styledSystemContext","useContext","StyledSystemContext","sx","printWarning","getCachedStyle","propsToThemedStyle","exports"],"sourceRoot":"../../../src","sources":["hook/useSxStyle.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAKA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,qBAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA;AAKA,MAAMK,cAAiC,GAAG,CAAC,CAAC;AAErC,MAAMC,UAAU,GAAGA,CAAC;EAAEC,KAAK,EAAEC;AAA+B,CAAC,GAAGH,cAAc,KAAK;EACxF,MAAMI,mBAAmB,GAAG,IAAAC,iBAAU,EAACC,yCAAmB,CAAC;EAE3D,OAAQC,EAAe,IAA2B;IAChD,MAAML,KAAK,GAAGC,WAAW,IAAIC,mBAAmB,EAAEF,KAAK;IAEvD,IAAI,CAACA,KAAK,EAAE;MACV,IAAAM,0BAAY,EAAC,gEAAgE,CAAC;MAE9E,OAAO,CAAC,CAAC;IACX;IAEA,OAAO,IAAAC,yBAAc,EACnB,IAAAC,sCAAkB,EAAC;MACjBR,KAAK;MACLK;IACF,CAAC,CACH,CAAC;EACH,CAAC;AACH,CAAC;AAACI,OAAA,CAAAV,UAAA,GAAAA,UAAA","ignoreList":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getCachedStyle = getCachedStyle;
|
|
7
|
+
var _objectHash = _interopRequireDefault(require("object-hash"));
|
|
8
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
|
+
const _CACHE = {};
|
|
10
|
+
function getCachedStyle(style) {
|
|
11
|
+
if (!style) {
|
|
12
|
+
return style;
|
|
13
|
+
}
|
|
14
|
+
const key = (0, _objectHash.default)(style);
|
|
15
|
+
if (key in _CACHE) {
|
|
16
|
+
return _CACHE[key];
|
|
17
|
+
} else {
|
|
18
|
+
_CACHE[key] = style;
|
|
19
|
+
return style;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=StyleHash.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_objectHash","_interopRequireDefault","require","obj","__esModule","default","_CACHE","getCachedStyle","style","key","hash"],"sourceRoot":"../../../../src","sources":["internal/util/StyleHash.ts"],"mappings":";;;;;;AACA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA+B,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE/B,MAAMG,MAA2B,GAAG,CAAC,CAAC;AAE/B,SAASC,cAAcA,CAACC,KAA4B,EAAE;EAC3D,IAAI,CAACA,KAAK,EAAE;IACV,OAAOA,KAAK;EACd;EAEA,MAAMC,GAAG,GAAG,IAAAC,mBAAI,EAACF,KAAK,CAAC;EACvB,IAAIC,GAAG,IAAIH,MAAM,EAAE;IACjB,OAAOA,MAAM,CAACG,GAAG,CAAC;EACpB,CAAC,MAAM;IACLH,MAAM,CAACG,GAAG,CAAC,GAAGD,KAAK;IAEnB,OAAOA,KAAK;EACd;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.mutateShortcutPropToOriginalKeys = mutateShortcutPropToOriginalKeys;
|
|
7
|
+
var _SxProps = require("../../@types/SxProps");
|
|
8
|
+
function mutateShortcutPropToOriginalKeys(sx) {
|
|
9
|
+
if (!sx) {
|
|
10
|
+
return sx;
|
|
11
|
+
}
|
|
12
|
+
for (const key of Object.keys(sx)) {
|
|
13
|
+
if (_SxProps.SHORTCUT_NAME_MAP[key]) {
|
|
14
|
+
if (!(_SxProps.SHORTCUT_NAME_MAP[key] in sx)) {
|
|
15
|
+
sx[_SxProps.SHORTCUT_NAME_MAP[key]] = sx[key];
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return sx;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=mutateShortcutPropToOriginalKeys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_SxProps","require","mutateShortcutPropToOriginalKeys","sx","key","Object","keys","SHORTCUT_NAME_MAP"],"sourceRoot":"../../../../src","sources":["internal/util/mutateShortcutPropToOriginalKeys.ts"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AAEO,SAASC,gCAAgCA,CAACC,EAAuB,EAAE;EACxE,IAAI,CAACA,EAAE,EAAE;IACP,OAAOA,EAAE;EACX;EAEA,KAAK,MAAMC,GAAG,IAAIC,MAAM,CAACC,IAAI,CAACH,EAAE,CAAC,EAAE;IACjC,IAAII,0BAAiB,CAACH,GAAG,CAAC,EAAE;MAC1B,IAAI,EAAEG,0BAAiB,CAACH,GAAG,CAAC,IAAID,EAAE,CAAC,EAAE;QACnCA,EAAE,CAACI,0BAAiB,CAACH,GAAG,CAAC,CAAC,GAAGD,EAAE,CAACC,GAAG,CAAC;MACtC;IACF;EACF;EAEA,OAAOD,EAAE;AACX","ignoreList":[]}
|
|
@@ -3,4 +3,36 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const _viewStylePropList = ['style', 'sx', 'backgroundColor', 'bg', 'borderColor', 'margin', 'm', 'marginTop', 'mt', 'marginRight', 'mr', 'marginBottom', 'mb', 'marginLeft', 'ml', 'marginX', 'mx', 'marginY', 'my', 'padding', 'p', 'paddingTop', 'pt', 'paddingRight', 'pr', 'paddingBottom', 'pb', 'paddingLeft', 'pl', 'paddingX', 'px', 'paddingY', 'py', 'top', 'right', 'bottom', 'left', 'gap', 'gapX', 'gapY', 'width', 'w', 'minW', 'minWidth', 'maxW', 'maxWidth', 'height', 'h', 'minH', 'minHeight', 'maxH', 'maxHeight', 'flex', 'alignItems', 'alignContent', 'justifyContent', 'flexWrap', 'flexDirection', 'flexGrow', 'flexShrink', 'flexBasis', 'alignSelf', 'position', 'pos', 'borderWidth', 'borderTopWidth', 'borderRightWidth', 'borderBottomWidth', 'borderLeftWidth', 'borderRadius', 'radius', 'opacity', 'overflow', 'transform', 'aspectRatio', 'display', 'elevation', 'zIndex', 'borderTopLeftRadius', 'borderTopRightRadius', 'borderBottomLeftRadius', 'borderBottomRightRadius'];
|
|
5
5
|
export const _textStylePropList = ['color', 'textDecorationColor', 'textShadowColor', 'fontFamily', 'fontSize', 'fontStyle', 'fontWeight', 'weight', 'letterSpacing', 'lineHeight', 'textAlign', 'align', 'textDecorationLine', 'textDecorationStyle', 'textShadowOffset', 'textShadowRadius', 'textTransform', 'userSelect', 'includeFontPadding', 'typography', 't'];
|
|
6
|
+
export const SHORTCUT_NAME_MAP = {
|
|
7
|
+
bg: 'backgroundColor',
|
|
8
|
+
m: 'margin',
|
|
9
|
+
mt: 'marginTop',
|
|
10
|
+
mr: 'marginRight',
|
|
11
|
+
mb: 'marginBottom',
|
|
12
|
+
ml: 'marginLeft',
|
|
13
|
+
mx: 'marginX',
|
|
14
|
+
my: 'marginY',
|
|
15
|
+
p: 'padding',
|
|
16
|
+
pt: 'paddingTop',
|
|
17
|
+
pr: 'paddingRight',
|
|
18
|
+
pb: 'paddingBottom',
|
|
19
|
+
pl: 'paddingLeft',
|
|
20
|
+
px: 'paddingX',
|
|
21
|
+
py: 'paddingY',
|
|
22
|
+
w: 'width',
|
|
23
|
+
minW: 'minWidth',
|
|
24
|
+
maxW: 'maxWidth',
|
|
25
|
+
h: 'height',
|
|
26
|
+
minH: 'minHeight',
|
|
27
|
+
maxH: 'maxHeight',
|
|
28
|
+
radius: 'borderRadius',
|
|
29
|
+
topLeftRadius: 'borderTopLeftRadius',
|
|
30
|
+
topRightRadius: 'borderTopRightRadius',
|
|
31
|
+
bottomLeftRadius: 'borderBottomLeftRadius',
|
|
32
|
+
bottomRightRadius: 'borderBottomRightRadius',
|
|
33
|
+
pos: 'position',
|
|
34
|
+
weight: 'fontWeight',
|
|
35
|
+
align: 'textAlign',
|
|
36
|
+
t: 'typography'
|
|
37
|
+
};
|
|
6
38
|
//# sourceMappingURL=SxProps.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_viewStylePropList","_textStylePropList"],"sourceRoot":"../../../src","sources":["@types/SxProps.ts"],"mappings":"AAMA;AACA;AACA;AACA,OAAO,MAAMA,kBAAkB,GAAG,CAChC,OAAO,EACP,IAAI,EACJ,iBAAiB,EACjB,IAAI,EACJ,aAAa,EACb,QAAQ,EACR,GAAG,EACH,WAAW,EACX,IAAI,EACJ,aAAa,EACb,IAAI,EACJ,cAAc,EACd,IAAI,EACJ,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,SAAS,EACT,GAAG,EACH,YAAY,EACZ,IAAI,EACJ,cAAc,EACd,IAAI,EACJ,eAAe,EACf,IAAI,EACJ,aAAa,EACb,IAAI,EACJ,UAAU,EACV,IAAI,EACJ,UAAU,EACV,IAAI,EACJ,KAAK,EACL,OAAO,EACP,QAAQ,EACR,MAAM,EACN,KAAK,EACL,MAAM,EACN,MAAM,EACN,OAAO,EACP,GAAG,EACH,MAAM,EACN,UAAU,EACV,MAAM,EACN,UAAU,EACV,QAAQ,EACR,GAAG,EACH,MAAM,EACN,WAAW,EACX,MAAM,EACN,WAAW,EACX,MAAM,EACN,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,UAAU,EACV,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,KAAK,EACL,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACR,SAAS,EACT,UAAU,EACV,WAAW,EACX,aAAa,EACb,SAAS,EACT,WAAW,EACX,QAAQ,EACR,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,CACU;AACrC,OAAO,MAAMC,kBAAkB,GAAG,CAChC,OAAO,EACP,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,WAAW,EACX,OAAO,EACP,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACZ,GAAG,CAC+D","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_viewStylePropList","_textStylePropList","SHORTCUT_NAME_MAP","bg","m","mt","mr","mb","ml","mx","my","p","pt","pr","pb","pl","px","py","w","minW","maxW","h","minH","maxH","radius","topLeftRadius","topRightRadius","bottomLeftRadius","bottomRightRadius","pos","weight","align","t"],"sourceRoot":"../../../src","sources":["@types/SxProps.ts"],"mappings":"AAMA;AACA;AACA;AACA,OAAO,MAAMA,kBAAkB,GAAG,CAChC,OAAO,EACP,IAAI,EACJ,iBAAiB,EACjB,IAAI,EACJ,aAAa,EACb,QAAQ,EACR,GAAG,EACH,WAAW,EACX,IAAI,EACJ,aAAa,EACb,IAAI,EACJ,cAAc,EACd,IAAI,EACJ,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,SAAS,EACT,GAAG,EACH,YAAY,EACZ,IAAI,EACJ,cAAc,EACd,IAAI,EACJ,eAAe,EACf,IAAI,EACJ,aAAa,EACb,IAAI,EACJ,UAAU,EACV,IAAI,EACJ,UAAU,EACV,IAAI,EACJ,KAAK,EACL,OAAO,EACP,QAAQ,EACR,MAAM,EACN,KAAK,EACL,MAAM,EACN,MAAM,EACN,OAAO,EACP,GAAG,EACH,MAAM,EACN,UAAU,EACV,MAAM,EACN,UAAU,EACV,QAAQ,EACR,GAAG,EACH,MAAM,EACN,WAAW,EACX,MAAM,EACN,WAAW,EACX,MAAM,EACN,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,UAAU,EACV,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,KAAK,EACL,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACR,SAAS,EACT,UAAU,EACV,WAAW,EACX,aAAa,EACb,SAAS,EACT,WAAW,EACX,QAAQ,EACR,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,CACU;AACrC,OAAO,MAAMC,kBAAkB,GAAG,CAChC,OAAO,EACP,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,WAAW,EACX,OAAO,EACP,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACZ,GAAG,CAC+D;AA6IpE,OAAO,MAAMC,iBAAyC,GAAG;EACvDC,EAAE,EAAE,iBAAiB;EACrBC,CAAC,EAAE,QAAQ;EACXC,EAAE,EAAE,WAAW;EACfC,EAAE,EAAE,aAAa;EACjBC,EAAE,EAAE,cAAc;EAClBC,EAAE,EAAE,YAAY;EAChBC,EAAE,EAAE,SAAS;EACbC,EAAE,EAAE,SAAS;EACbC,CAAC,EAAE,SAAS;EACZC,EAAE,EAAE,YAAY;EAChBC,EAAE,EAAE,cAAc;EAClBC,EAAE,EAAE,eAAe;EACnBC,EAAE,EAAE,aAAa;EACjBC,EAAE,EAAE,UAAU;EACdC,EAAE,EAAE,UAAU;EACdC,CAAC,EAAE,OAAO;EACVC,IAAI,EAAE,UAAU;EAChBC,IAAI,EAAE,UAAU;EAChBC,CAAC,EAAE,QAAQ;EACXC,IAAI,EAAE,WAAW;EACjBC,IAAI,EAAE,WAAW;EACjBC,MAAM,EAAE,cAAc;EACtBC,aAAa,EAAE,qBAAqB;EACpCC,cAAc,EAAE,sBAAsB;EACtCC,gBAAgB,EAAE,wBAAwB;EAC1CC,iBAAiB,EAAE,yBAAyB;EAC5CC,GAAG,EAAE,UAAU;EACfC,MAAM,EAAE,YAAY;EACpBC,KAAK,EAAE,WAAW;EAClBC,CAAC,EAAE;AACL,CAAC","ignoreList":[]}
|
package/lib/module/hook/useSx.js
CHANGED
|
@@ -3,7 +3,9 @@ import { StyleSheet } from 'react-native';
|
|
|
3
3
|
import { is } from '@mj-studio/js-util';
|
|
4
4
|
import { _textStylePropList, _viewStylePropList } from '../@types/SxProps';
|
|
5
5
|
import { useStableCallback } from '../internal/useStableCallback';
|
|
6
|
+
import { mutateShortcutPropToOriginalKeys } from '../internal/util/mutateShortcutPropToOriginalKeys';
|
|
6
7
|
import { printWarning } from '../internal/util/printWarning';
|
|
8
|
+
import { getCachedStyle } from '../internal/util/StyleHash';
|
|
7
9
|
import { StyledSystemContext } from '../provider/StyledSystemProvider';
|
|
8
10
|
import { propsToThemedStyle } from '../util/propsToThemedStyle';
|
|
9
11
|
const defaultUseSxOptions = {
|
|
@@ -36,9 +38,9 @@ export const useSx = (props, {
|
|
|
36
38
|
|
|
37
39
|
// caution: priority should be ordered correctly.
|
|
38
40
|
const mergedSx = {
|
|
39
|
-
...fallback,
|
|
40
|
-
...props,
|
|
41
|
-
...props?.sx
|
|
41
|
+
...mutateShortcutPropToOriginalKeys(fallback),
|
|
42
|
+
...mutateShortcutPropToOriginalKeys(props),
|
|
43
|
+
...mutateShortcutPropToOriginalKeys(props?.sx)
|
|
42
44
|
};
|
|
43
45
|
const mergedSxStyle = propsToThemedStyle({
|
|
44
46
|
theme,
|
|
@@ -48,13 +50,13 @@ export const useSx = (props, {
|
|
|
48
50
|
const composedStyle = !mergedSxStyle ? props?.style : props?.style ? StyleSheet.compose(mergedSxStyle, props.style) : mergedSxStyle;
|
|
49
51
|
if (is.function(transform)) {
|
|
50
52
|
const transformedSx = transform(StyleSheet.flatten(composedStyle));
|
|
51
|
-
return StyleSheet.compose(composedStyle, propsToThemedStyle({
|
|
53
|
+
return getCachedStyle(StyleSheet.compose(composedStyle, propsToThemedStyle({
|
|
52
54
|
theme,
|
|
53
55
|
sx: transformedSx,
|
|
54
56
|
styleType
|
|
55
|
-
}));
|
|
57
|
+
})));
|
|
56
58
|
} else {
|
|
57
|
-
return composedStyle;
|
|
59
|
+
return getCachedStyle(composedStyle);
|
|
58
60
|
}
|
|
59
61
|
});
|
|
60
62
|
const filteredProps = useMemo(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useContext","useMemo","StyleSheet","is","_textStylePropList","_viewStylePropList","useStableCallback","printWarning","StyledSystemContext","propsToThemedStyle","defaultUseSxOptions","styleType","useSx","props","theme","optionTheme","transform","fallback","styledSystemContext","getStyle","skip","function","sx","mergedSx","mergedSxStyle","composedStyle","style","compose","transformedSx","flatten","filteredProps","ret","forEach","keyName"],"sourceRoot":"../../../src","sources":["hook/useSx.ts"],"mappings":"AAAA,SAASA,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAE3C,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,EAAE,QAAQ,oBAAoB;AAGvC,SAASC,kBAAkB,EAAEC,kBAAkB,QAAQ,mBAAmB;AAE1E,SAASC,iBAAiB,QAAQ,+BAA+B;AACjE,SAASC,YAAY,QAAQ,+BAA+B;AAC5D,SAASC,mBAAmB,QAAQ,kCAAkC;AAEtE,SAASC,kBAAkB,QAAQ,4BAA4B;AAY/D,MAAMC,mBAAiC,GAAG;EAAEC,SAAS,EAAE;AAAY,CAAC;AACpE,OAAO,MAAMC,KAAK,GAAGA,CACnBC,KAAgB,EAChB;EACEC,KAAK,EAAEC,WAAW;EAClBJ,SAAS,GAAGD,mBAAmB,CAACC,SAAS;EACzCK,SAAS,GAAGN,mBAAmB,CAACM,SAAS;EACzCC;AACY,CAAC,GAAGP,mBAAmB,KAClC;EACH,MAAMQ,mBAAmB,
|
|
1
|
+
{"version":3,"names":["useContext","useMemo","StyleSheet","is","_textStylePropList","_viewStylePropList","useStableCallback","mutateShortcutPropToOriginalKeys","printWarning","getCachedStyle","StyledSystemContext","propsToThemedStyle","defaultUseSxOptions","styleType","useSx","props","theme","optionTheme","transform","fallback","styledSystemContext","getStyle","skip","function","sx","mergedSx","mergedSxStyle","composedStyle","style","compose","transformedSx","flatten","filteredProps","ret","forEach","keyName"],"sourceRoot":"../../../src","sources":["hook/useSx.ts"],"mappings":"AAAA,SAASA,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAE3C,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,EAAE,QAAQ,oBAAoB;AAGvC,SAASC,kBAAkB,EAAEC,kBAAkB,QAAQ,mBAAmB;AAE1E,SAASC,iBAAiB,QAAQ,+BAA+B;AACjE,SAASC,gCAAgC,QAAQ,mDAAmD;AACpG,SAASC,YAAY,QAAQ,+BAA+B;AAC5D,SAASC,cAAc,QAAQ,4BAA4B;AAC3D,SAASC,mBAAmB,QAAQ,kCAAkC;AAEtE,SAASC,kBAAkB,QAAQ,4BAA4B;AAY/D,MAAMC,mBAAiC,GAAG;EAAEC,SAAS,EAAE;AAAY,CAAC;AACpE,OAAO,MAAMC,KAAK,GAAGA,CACnBC,KAAgB,EAChB;EACEC,KAAK,EAAEC,WAAW;EAClBJ,SAAS,GAAGD,mBAAmB,CAACC,SAAS;EACzCK,SAAS,GAAGN,mBAAmB,CAACM,SAAS;EACzCC;AACY,CAAC,GAAGP,mBAAmB,KAClC;EACH,MAAMQ,mBAAmB,GAAGpB,UAAU,CAACU,mBAAmB,CAAC;EAE3D,MAAMW,QAAQ,GAAGf,iBAAiB,CAAC,MAAgC;IACjE,MAAMgB,IAAI,GAAG,CAACP,KAAK,IAAI,CAACI,QAAQ;IAChC,MAAMH,KAAK,GAAGC,WAAW,IAAIG,mBAAmB,EAAEJ,KAAK;IAEvD,IAAIM,IAAI,EAAE;MACR,IAAInB,EAAE,CAACoB,QAAQ,CAACL,SAAS,CAAC,EAAE;QAC1B,OAAOP,kBAAkB,CAAC;UAAEK,KAAK;UAAEQ,EAAE,EAAEN,SAAS,CAAC,CAAC,CAAC;QAAE,CAAC,CAAC;MACzD,CAAC,MAAM;QACL;MACF;IACF;IAEA,IAAI,CAACF,KAAK,EAAE;MACVR,YAAY,CAAC,yDAAyD,CAAC;MAEvE;IACF;;IAEA;IACA,MAAMiB,QAAqB,GAAG;MAC5B,GAAGlB,gCAAgC,CAACY,QAAQ,CAAC;MAC7C,GAAGZ,gCAAgC,CAACQ,KAAK,CAAC;MAC1C,GAAGR,gCAAgC,CAACQ,KAAK,EAAES,EAAE;IAC/C,CAAC;IAED,MAAME,aAAa,GAAGf,kBAAkB,CAAC;MACvCK,KAAK;MACLQ,EAAE,EAAEC,QAAQ;MACZZ;IACF,CAAC,CAAC;IAEF,MAAMc,aAAa,GAAG,CAACD,aAAa,GAChCX,KAAK,EAAEa,KAAK,GACZb,KAAK,EAAEa,KAAK,GACV1B,UAAU,CAAC2B,OAAO,CAACH,aAAa,EAAEX,KAAK,CAACa,KAAK,CAAC,GAC9CF,aAAa;IAEnB,IAAIvB,EAAE,CAACoB,QAAQ,CAACL,SAAS,CAAC,EAAE;MAC1B,MAAMY,aAAa,GAAGZ,SAAS,CAAChB,UAAU,CAAC6B,OAAO,CAACJ,aAAa,CAAC,CAAC;MAElE,OAAOlB,cAAc,CACnBP,UAAU,CAAC2B,OAAO,CAChBF,aAAa,EACbhB,kBAAkB,CAAC;QAAEK,KAAK;QAAEQ,EAAE,EAAEM,aAAa;QAAEjB;MAAU,CAAC,CAC5D,CACF,CAAC;IACH,CAAC,MAAM;MACL,OAAOJ,cAAc,CAACkB,aAAa,CAAC;IACtC;EACF,CAAC,CAAC;EAEF,MAAMK,aAA6C,GAAG/B,OAAO,CAAC,MAAM;IAClE,MAAMgC,GAAG,GAAG;MAAE,GAAGlB;IAAM,CAAmC;IAE1DV,kBAAkB,CAAC6B,OAAO,CAAEC,OAAO,IAAK,OAAOF,GAAG,CAACE,OAAO,CAAC,CAAC;IAC5D,IAAItB,SAAS,KAAK,WAAW,EAAE;MAC7BT,kBAAkB,CAAC8B,OAAO,CAAEC,OAAO,IAAK,OAAOF,GAAG,CAACE,OAAO,CAAC,CAAC;IAC9D;IAEA,OAAOF,GAAG;EACZ,CAAC,EAAE,CAAClB,KAAK,EAAEF,SAAS,CAAC,CAAC;EAEtB,OAAO;IAAEQ,QAAQ;IAAEW;EAAc,CAAC;AACpC,CAAC","ignoreList":[]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { useContext } from 'react';
|
|
2
2
|
import { printWarning } from '../internal/util/printWarning';
|
|
3
|
+
import { getCachedStyle } from '../internal/util/StyleHash';
|
|
3
4
|
import { StyledSystemContext } from '../provider/StyledSystemProvider';
|
|
4
5
|
import { propsToThemedStyle } from '../util/propsToThemedStyle';
|
|
5
6
|
const defaultOptions = {};
|
|
@@ -13,10 +14,10 @@ export const useSxStyle = ({
|
|
|
13
14
|
printWarning('theme not found from useSxStyle, empty style will be returned.');
|
|
14
15
|
return {};
|
|
15
16
|
}
|
|
16
|
-
return propsToThemedStyle({
|
|
17
|
+
return getCachedStyle(propsToThemedStyle({
|
|
17
18
|
theme,
|
|
18
19
|
sx
|
|
19
|
-
});
|
|
20
|
+
}));
|
|
20
21
|
};
|
|
21
22
|
};
|
|
22
23
|
//# sourceMappingURL=useSxStyle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useContext","printWarning","StyledSystemContext","propsToThemedStyle","defaultOptions","useSxStyle","theme","optionTheme","styledSystemContext","sx"],"sourceRoot":"../../../src","sources":["hook/useSxStyle.ts"],"mappings":"AAAA,SAASA,UAAU,QAAQ,OAAO;AAKlC,SAASC,YAAY,QAAQ,+BAA+B;AAC5D,SAASC,mBAAmB,QAAQ,kCAAkC;AACtE,SAASC,kBAAkB,QAAQ,4BAA4B;AAK/D,MAAMC,cAAiC,GAAG,CAAC,CAAC;AAE5C,OAAO,MAAMC,UAAU,GAAGA,CAAC;EAAEC,KAAK,EAAEC;AAA+B,CAAC,GAAGH,cAAc,KAAK;EACxF,MAAMI,mBAAmB,
|
|
1
|
+
{"version":3,"names":["useContext","printWarning","getCachedStyle","StyledSystemContext","propsToThemedStyle","defaultOptions","useSxStyle","theme","optionTheme","styledSystemContext","sx"],"sourceRoot":"../../../src","sources":["hook/useSxStyle.ts"],"mappings":"AAAA,SAASA,UAAU,QAAQ,OAAO;AAKlC,SAASC,YAAY,QAAQ,+BAA+B;AAC5D,SAASC,cAAc,QAAQ,4BAA4B;AAC3D,SAASC,mBAAmB,QAAQ,kCAAkC;AACtE,SAASC,kBAAkB,QAAQ,4BAA4B;AAK/D,MAAMC,cAAiC,GAAG,CAAC,CAAC;AAE5C,OAAO,MAAMC,UAAU,GAAGA,CAAC;EAAEC,KAAK,EAAEC;AAA+B,CAAC,GAAGH,cAAc,KAAK;EACxF,MAAMI,mBAAmB,GAAGT,UAAU,CAACG,mBAAmB,CAAC;EAE3D,OAAQO,EAAe,IAA2B;IAChD,MAAMH,KAAK,GAAGC,WAAW,IAAIC,mBAAmB,EAAEF,KAAK;IAEvD,IAAI,CAACA,KAAK,EAAE;MACVN,YAAY,CAAC,gEAAgE,CAAC;MAE9E,OAAO,CAAC,CAAC;IACX;IAEA,OAAOC,cAAc,CACnBE,kBAAkB,CAAC;MACjBG,KAAK;MACLG;IACF,CAAC,CACH,CAAC;EACH,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import hash from 'object-hash';
|
|
2
|
+
const _CACHE = {};
|
|
3
|
+
export function getCachedStyle(style) {
|
|
4
|
+
if (!style) {
|
|
5
|
+
return style;
|
|
6
|
+
}
|
|
7
|
+
const key = hash(style);
|
|
8
|
+
if (key in _CACHE) {
|
|
9
|
+
return _CACHE[key];
|
|
10
|
+
} else {
|
|
11
|
+
_CACHE[key] = style;
|
|
12
|
+
return style;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=StyleHash.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["hash","_CACHE","getCachedStyle","style","key"],"sourceRoot":"../../../../src","sources":["internal/util/StyleHash.ts"],"mappings":"AACA,OAAOA,IAAI,MAAM,aAAa;AAE9B,MAAMC,MAA2B,GAAG,CAAC,CAAC;AAEtC,OAAO,SAASC,cAAcA,CAACC,KAA4B,EAAE;EAC3D,IAAI,CAACA,KAAK,EAAE;IACV,OAAOA,KAAK;EACd;EAEA,MAAMC,GAAG,GAAGJ,IAAI,CAACG,KAAK,CAAC;EACvB,IAAIC,GAAG,IAAIH,MAAM,EAAE;IACjB,OAAOA,MAAM,CAACG,GAAG,CAAC;EACpB,CAAC,MAAM;IACLH,MAAM,CAACG,GAAG,CAAC,GAAGD,KAAK;IAEnB,OAAOA,KAAK;EACd;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { SHORTCUT_NAME_MAP } from '../../@types/SxProps';
|
|
2
|
+
export function mutateShortcutPropToOriginalKeys(sx) {
|
|
3
|
+
if (!sx) {
|
|
4
|
+
return sx;
|
|
5
|
+
}
|
|
6
|
+
for (const key of Object.keys(sx)) {
|
|
7
|
+
if (SHORTCUT_NAME_MAP[key]) {
|
|
8
|
+
if (!(SHORTCUT_NAME_MAP[key] in sx)) {
|
|
9
|
+
sx[SHORTCUT_NAME_MAP[key]] = sx[key];
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
return sx;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=mutateShortcutPropToOriginalKeys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["SHORTCUT_NAME_MAP","mutateShortcutPropToOriginalKeys","sx","key","Object","keys"],"sourceRoot":"../../../../src","sources":["internal/util/mutateShortcutPropToOriginalKeys.ts"],"mappings":"AACA,SAASA,iBAAiB,QAAQ,sBAAsB;AAExD,OAAO,SAASC,gCAAgCA,CAACC,EAAuB,EAAE;EACxE,IAAI,CAACA,EAAE,EAAE;IACP,OAAOA,EAAE;EACX;EAEA,KAAK,MAAMC,GAAG,IAAIC,MAAM,CAACC,IAAI,CAACH,EAAE,CAAC,EAAE;IACjC,IAAIF,iBAAiB,CAACG,GAAG,CAAC,EAAE;MAC1B,IAAI,EAAEH,iBAAiB,CAACG,GAAG,CAAC,IAAID,EAAE,CAAC,EAAE;QACnCA,EAAE,CAACF,iBAAiB,CAACG,GAAG,CAAC,CAAC,GAAGD,EAAE,CAACC,GAAG,CAAC;MACtC;IACF;EACF;EAEA,OAAOD,EAAE;AACX","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SxProps.d.ts","sourceRoot":"","sources":["../../../../src/@types/SxProps.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SxProps.d.ts","sourceRoot":"","sources":["../../../../src/@types/SxProps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC;AACxC,MAAM,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC;AAC/C;;GAEG;AACH,eAAO,MAAM,kBAAkB,6gCAmFM,CAAC;AACtC,eAAO,MAAM,kBAAkB,4VAsBqC,CAAC;AACrE,KAAK,qBAAqB,GAAG;IAC3B,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjC,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpB,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;CAC9B,CAAC;AACF,KAAK,yBAAyB,GAAG;IAC/B,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvB,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACrC,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;CAClC,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAClB,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC1B,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5B,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACxB,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACxB,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAClB,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9B,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5B,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACzB,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACzB,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACpB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACtB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACvB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACrB,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACpB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACrB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;CACtB,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACzB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACzB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACrB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAClB,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC1B,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACrB,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC1B,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;CACtB,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACvB,mBAAmB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACpC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9B,oBAAoB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,sBAAsB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACvC,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACjC,uBAAuB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACxC,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;CACnC,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACxB,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;IACpC,YAAY,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IACxC,cAAc,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC5C,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IAChC,aAAa,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;IAC1C,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IAChC,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;IACpC,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAClC,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAClC,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IAChC,GAAG,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IAC3B,WAAW,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;IACtC,cAAc,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC5C,gBAAgB,EAAE,SAAS,CAAC,kBAAkB,CAAC,CAAC;IAChD,iBAAiB,EAAE,SAAS,CAAC,mBAAmB,CAAC,CAAC;IAClD,eAAe,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAC9C,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC9B,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IAChC,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAClC,WAAW,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;IACtC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC9B,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAClC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;IACpC,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IAChC,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAClC,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;IACpC,MAAM,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;IAChC,aAAa,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;IAC1C,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;IACpC,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAClC,KAAK,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAC9B,kBAAkB,EAAE,SAAS,CAAC,oBAAoB,CAAC,CAAC;IACpD,mBAAmB,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACtD,gBAAgB,EAAE,SAAS,CAAC,kBAAkB,CAAC,CAAC;IAChD,gBAAgB,EAAE,SAAS,CAAC,kBAAkB,CAAC,CAAC;IAChD,aAAa,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;IAC1C,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;IACpC,kBAAkB,EAAE,SAAS,CAAC,oBAAoB,CAAC,CAAC;IACpD,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;CACxB,CAAC;AAEF,KAAK,WAAW,GAAG,OAAO,CACxB,oBAAoB,GAClB,qBAAqB,GACrB,oBAAoB,GACpB,qBAAqB,GACrB,qBAAqB,CACxB,CAAC;AAEF,KAAK,eAAe,GAAG,WAAW,GAAG,OAAO,CAAC,yBAAyB,GAAG,oBAAoB,CAAC,CAAC;AAE/F,MAAM,MAAM,OAAO,GAAG,WAAW,GAAG;IAAE,EAAE,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC;AACzD,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG;IAAE,EAAE,CAAC,EAAE,eAAe,CAAA;CAAE,CAAC;AAErE,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA+BpD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSx.d.ts","sourceRoot":"","sources":["../../../../src/hook/useSx.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIpE,OAAO,KAAK,EAAe,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"useSx.d.ts","sourceRoot":"","sources":["../../../../src/hook/useSx.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIpE,OAAO,KAAK,EAAe,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAMvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAGlE,KAAK,KAAK,GAAG;IAAE,KAAK,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAA;CAAE,GAAG,WAAW,CAAC;AAEtD,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,WAAW,CAAC;AAC/D,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AACpD,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,KAAK,qEACR,CAAC,GAAG,IAAI,4DAMb,YAAY;oBAIwB,UAAU,CAAC,CAAC,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+DhE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSxStyle.d.ts","sourceRoot":"","sources":["../../../../src/hook/useSxStyle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"useSxStyle.d.ts","sourceRoot":"","sources":["../../../../src/hook/useSxStyle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAMvD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB,CAAC;AAGF,eAAO,MAAM,UAAU,4BAA4B,iBAAiB,UAGtD,WAAW,KAAG,UAAU,SAAS,CAgB9C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StyleHash.d.ts","sourceRoot":"","sources":["../../../../../src/internal/util/StyleHash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAK9D,wBAAgB,cAAc,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,OAa1D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutateShortcutPropToOriginalKeys.d.ts","sourceRoot":"","sources":["../../../../../src/internal/util/mutateShortcutPropToOriginalKeys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGxD,wBAAgB,gCAAgC,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,IAAI,kCAcvE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-native-styled-system/core",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "React Native Styled System",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"types": "lib/typescript/src/index.d.ts",
|
|
@@ -66,5 +66,5 @@
|
|
|
66
66
|
"**/*.test.*"
|
|
67
67
|
]
|
|
68
68
|
},
|
|
69
|
-
"gitHead": "
|
|
69
|
+
"gitHead": "653b5cc955cd43ad262db35f5b7488855ee90402"
|
|
70
70
|
}
|
package/src/@types/SxProps.ts
CHANGED
|
@@ -253,3 +253,36 @@ type BaseTextSxProps = BaseSxProps & Partial<ThemedColorTokenTextProps & ThemedT
|
|
|
253
253
|
|
|
254
254
|
export type SxProps = BaseSxProps & { sx?: BaseSxProps };
|
|
255
255
|
export type TextSxProps = BaseTextSxProps & { sx?: BaseTextSxProps };
|
|
256
|
+
|
|
257
|
+
export const SHORTCUT_NAME_MAP: Record<string, string> = {
|
|
258
|
+
bg: 'backgroundColor',
|
|
259
|
+
m: 'margin',
|
|
260
|
+
mt: 'marginTop',
|
|
261
|
+
mr: 'marginRight',
|
|
262
|
+
mb: 'marginBottom',
|
|
263
|
+
ml: 'marginLeft',
|
|
264
|
+
mx: 'marginX',
|
|
265
|
+
my: 'marginY',
|
|
266
|
+
p: 'padding',
|
|
267
|
+
pt: 'paddingTop',
|
|
268
|
+
pr: 'paddingRight',
|
|
269
|
+
pb: 'paddingBottom',
|
|
270
|
+
pl: 'paddingLeft',
|
|
271
|
+
px: 'paddingX',
|
|
272
|
+
py: 'paddingY',
|
|
273
|
+
w: 'width',
|
|
274
|
+
minW: 'minWidth',
|
|
275
|
+
maxW: 'maxWidth',
|
|
276
|
+
h: 'height',
|
|
277
|
+
minH: 'minHeight',
|
|
278
|
+
maxH: 'maxHeight',
|
|
279
|
+
radius: 'borderRadius',
|
|
280
|
+
topLeftRadius: 'borderTopLeftRadius',
|
|
281
|
+
topRightRadius: 'borderTopRightRadius',
|
|
282
|
+
bottomLeftRadius: 'borderBottomLeftRadius',
|
|
283
|
+
bottomRightRadius: 'borderBottomRightRadius',
|
|
284
|
+
pos: 'position',
|
|
285
|
+
weight: 'fontWeight',
|
|
286
|
+
align: 'textAlign',
|
|
287
|
+
t: 'typography',
|
|
288
|
+
};
|
package/src/hook/useSx.test.ts
CHANGED
|
@@ -41,6 +41,8 @@ function expectResult(
|
|
|
41
41
|
if (filteredPropsExpectation) {
|
|
42
42
|
expect(filteredProps).toEqual(filteredPropsExpectation);
|
|
43
43
|
}
|
|
44
|
+
|
|
45
|
+
return [getStyle(), filteredProps];
|
|
44
46
|
}
|
|
45
47
|
|
|
46
48
|
const emptyTheme = emptyThemedDict;
|
|
@@ -140,7 +142,6 @@ describe('space parsing', () => {
|
|
|
140
142
|
it('px suffix string, return parsed pixel number value', () => {
|
|
141
143
|
expectResult(emptyTheme, { m: '15px' }, { expectation: { margin: 15 } });
|
|
142
144
|
expectResult(emptyTheme, { m: '-1.5px' }, { expectation: { margin: -1.5 } });
|
|
143
|
-
expectResult(emptyTheme, { m: '-0px' }, { expectation: { margin: -0 } });
|
|
144
145
|
expectResult(emptyTheme, { m: '0px' }, { expectation: { margin: 0 } });
|
|
145
146
|
expectResult(emptyTheme, { m: '-1px' }, { expectation: { margin: -1 } });
|
|
146
147
|
});
|
|
@@ -230,6 +231,14 @@ describe('style parse priority', () => {
|
|
|
230
231
|
it('style prop property > sx prop property', () => {
|
|
231
232
|
expectResult(emptyTheme, { style: { width: 1 }, sx: { w: 2 } }, { expectation: { width: 1 } });
|
|
232
233
|
});
|
|
234
|
+
|
|
235
|
+
it('sx > fallback', () => {
|
|
236
|
+
expectResult(
|
|
237
|
+
emptyTheme,
|
|
238
|
+
{ sx: { w: 2 }, mx: 4 },
|
|
239
|
+
{ fallback: { width: 1, marginX: 5 }, expectation: { width: 2, marginHorizontal: 4 } },
|
|
240
|
+
);
|
|
241
|
+
});
|
|
233
242
|
});
|
|
234
243
|
|
|
235
244
|
describe('radii', () => {
|
|
@@ -346,3 +355,25 @@ describe('transform', () => {
|
|
|
346
355
|
});
|
|
347
356
|
});
|
|
348
357
|
});
|
|
358
|
+
|
|
359
|
+
describe('cache', () => {
|
|
360
|
+
it('same style result will be cached', () => {
|
|
361
|
+
const [style1] = expectResult(
|
|
362
|
+
emptyTheme,
|
|
363
|
+
{ bg: 'red', mt: 2 },
|
|
364
|
+
{
|
|
365
|
+
expectation: { marginTop: 2, backgroundColor: 'red' },
|
|
366
|
+
},
|
|
367
|
+
);
|
|
368
|
+
|
|
369
|
+
const [style2] = expectResult(
|
|
370
|
+
emptyTheme,
|
|
371
|
+
{ mt: 2, sx: { bg: 'red' } },
|
|
372
|
+
{
|
|
373
|
+
expectation: { marginTop: 2, backgroundColor: 'red' },
|
|
374
|
+
},
|
|
375
|
+
);
|
|
376
|
+
|
|
377
|
+
expect(style1 === style2).toBe(true);
|
|
378
|
+
});
|
|
379
|
+
});
|
package/src/hook/useSx.ts
CHANGED
|
@@ -7,7 +7,9 @@ import type { SxPropsKeys, TextSxProps } from '../@types/SxProps';
|
|
|
7
7
|
import { _textStylePropList, _viewStylePropList } from '../@types/SxProps';
|
|
8
8
|
import type { ThemedDict } from '../@types/ThemedDict';
|
|
9
9
|
import { useStableCallback } from '../internal/useStableCallback';
|
|
10
|
+
import { mutateShortcutPropToOriginalKeys } from '../internal/util/mutateShortcutPropToOriginalKeys';
|
|
10
11
|
import { printWarning } from '../internal/util/printWarning';
|
|
12
|
+
import { getCachedStyle } from '../internal/util/StyleHash';
|
|
11
13
|
import { StyledSystemContext } from '../provider/StyledSystemProvider';
|
|
12
14
|
import type { ThemedStyleType } from '../util/propsToThemedStyle';
|
|
13
15
|
import { propsToThemedStyle } from '../util/propsToThemedStyle';
|
|
@@ -53,7 +55,11 @@ export const useSx = <S extends ViewStyle = ViewStyle, P extends Props = Props>(
|
|
|
53
55
|
}
|
|
54
56
|
|
|
55
57
|
// caution: priority should be ordered correctly.
|
|
56
|
-
const mergedSx: TextSxProps = {
|
|
58
|
+
const mergedSx: TextSxProps = {
|
|
59
|
+
...mutateShortcutPropToOriginalKeys(fallback),
|
|
60
|
+
...mutateShortcutPropToOriginalKeys(props),
|
|
61
|
+
...mutateShortcutPropToOriginalKeys(props?.sx),
|
|
62
|
+
};
|
|
57
63
|
|
|
58
64
|
const mergedSxStyle = propsToThemedStyle({
|
|
59
65
|
theme,
|
|
@@ -70,12 +76,14 @@ export const useSx = <S extends ViewStyle = ViewStyle, P extends Props = Props>(
|
|
|
70
76
|
if (is.function(transform)) {
|
|
71
77
|
const transformedSx = transform(StyleSheet.flatten(composedStyle));
|
|
72
78
|
|
|
73
|
-
return
|
|
74
|
-
|
|
75
|
-
|
|
79
|
+
return getCachedStyle(
|
|
80
|
+
StyleSheet.compose(
|
|
81
|
+
composedStyle,
|
|
82
|
+
propsToThemedStyle({ theme, sx: transformedSx, styleType }) as S,
|
|
83
|
+
),
|
|
76
84
|
);
|
|
77
85
|
} else {
|
|
78
|
-
return composedStyle;
|
|
86
|
+
return getCachedStyle(composedStyle);
|
|
79
87
|
}
|
|
80
88
|
});
|
|
81
89
|
|
package/src/hook/useSxStyle.ts
CHANGED
|
@@ -4,6 +4,7 @@ import type { StyleProp, TextStyle } from 'react-native';
|
|
|
4
4
|
import type { TextSxProps } from '../@types/SxProps';
|
|
5
5
|
import type { ThemedDict } from '../@types/ThemedDict';
|
|
6
6
|
import { printWarning } from '../internal/util/printWarning';
|
|
7
|
+
import { getCachedStyle } from '../internal/util/StyleHash';
|
|
7
8
|
import { StyledSystemContext } from '../provider/StyledSystemProvider';
|
|
8
9
|
import { propsToThemedStyle } from '../util/propsToThemedStyle';
|
|
9
10
|
|
|
@@ -24,9 +25,11 @@ export const useSxStyle = ({ theme: optionTheme }: UseSxStyleOptions = defaultOp
|
|
|
24
25
|
return {};
|
|
25
26
|
}
|
|
26
27
|
|
|
27
|
-
return
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
return getCachedStyle(
|
|
29
|
+
propsToThemedStyle({
|
|
30
|
+
theme,
|
|
31
|
+
sx,
|
|
32
|
+
}),
|
|
33
|
+
);
|
|
31
34
|
};
|
|
32
35
|
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type StyleProp, type TextStyle } from 'react-native';
|
|
2
|
+
import hash from 'object-hash';
|
|
3
|
+
|
|
4
|
+
const _CACHE: Record<string, any> = {};
|
|
5
|
+
|
|
6
|
+
export function getCachedStyle(style?: StyleProp<TextStyle>) {
|
|
7
|
+
if (!style) {
|
|
8
|
+
return style;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const key = hash(style);
|
|
12
|
+
if (key in _CACHE) {
|
|
13
|
+
return _CACHE[key];
|
|
14
|
+
} else {
|
|
15
|
+
_CACHE[key] = style;
|
|
16
|
+
|
|
17
|
+
return style;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { TextSxProps } from '../../@types/SxProps';
|
|
2
|
+
import { SHORTCUT_NAME_MAP } from '../../@types/SxProps';
|
|
3
|
+
|
|
4
|
+
export function mutateShortcutPropToOriginalKeys(sx?: TextSxProps | null) {
|
|
5
|
+
if (!sx) {
|
|
6
|
+
return sx;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
for (const key of Object.keys(sx)) {
|
|
10
|
+
if (SHORTCUT_NAME_MAP[key]) {
|
|
11
|
+
if (!(SHORTCUT_NAME_MAP[key] in sx)) {
|
|
12
|
+
sx[SHORTCUT_NAME_MAP[key]] = sx[key];
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
return sx;
|
|
18
|
+
}
|