@mochi-inc-japan/react-native-stylex-sheet 1.0.0 → 1.0.2
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/README.ja.md +61 -1
- package/README.md +129 -59
- package/lib/commonjs/index.js +6 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/utils/base.js +5 -1
- package/lib/commonjs/utils/base.js.map +1 -1
- package/lib/commonjs/utils/hooks.js +7 -0
- package/lib/commonjs/utils/hooks.js.map +1 -1
- package/lib/commonjs/utils/types.js.map +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/utils/base.js +3 -0
- package/lib/module/utils/base.js.map +1 -1
- package/lib/module/utils/hooks.js +8 -1
- package/lib/module/utils/hooks.js.map +1 -1
- package/lib/module/utils/types.js.map +1 -1
- package/lib/{types → typescript}/index.d.ts +1 -1
- package/lib/{types → typescript}/utils/base.d.ts +2 -1
- package/lib/{types → typescript}/utils/hooks.d.ts +2 -1
- package/lib/{types → typescript}/utils/types.d.ts +2 -0
- package/package.json +11 -5
- package/lib/commonjs/tests/index.test.js +0 -224
- package/lib/commonjs/tests/index.test.js.map +0 -1
- package/lib/commonjs/tests/media.test.js +0 -226
- package/lib/commonjs/tests/media.test.js.map +0 -1
- package/lib/commonjs/tests/mock.test.js +0 -54
- package/lib/commonjs/tests/mock.test.js.map +0 -1
- package/lib/commonjs/tests/test-utils.js +0 -60
- package/lib/commonjs/tests/test-utils.js.map +0 -1
- package/lib/module/tests/index.test.js +0 -220
- package/lib/module/tests/index.test.js.map +0 -1
- package/lib/module/tests/media.test.js +0 -222
- package/lib/module/tests/media.test.js.map +0 -1
- package/lib/module/tests/mock.test.js +0 -49
- package/lib/module/tests/mock.test.js.map +0 -1
- package/lib/module/tests/test-utils.js +0 -52
- package/lib/module/tests/test-utils.js.map +0 -1
- package/lib/types/tests/check-descriptor.test.d.ts +0 -0
- package/lib/types/tests/index.test.d.ts +0 -1
- package/lib/types/tests/media.test.d.ts +0 -1
- package/lib/types/tests/mock.test.d.ts +0 -1
- package/lib/types/tests/test-utils.d.ts +0 -7
- package/lib/types/tests/utils.d.ts +0 -6
- package/lib/types/utils/index.d.ts +0 -9
- package/lib/types/utils/utils.d.ts +0 -4
- /package/lib/{types → typescript}/utils/media.d.ts +0 -0
- /package/lib/{types → typescript}/utils/theme.d.ts +0 -0
- /package/lib/{types → typescript}/utils/tokens.d.ts +0 -0
- /package/lib/{types → typescript}/utils/variant.d.ts +0 -0
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { View } from 'react-native';
|
|
3
|
-
import { mockDimensions, finalStyle } from './test-utils';
|
|
4
|
-
jest.mock('../utils/media', () => {
|
|
5
|
-
const originalModule = jest.requireActual('../utils/media');
|
|
6
|
-
return {
|
|
7
|
-
...originalModule,
|
|
8
|
-
media: jest.fn(originalModule.media)
|
|
9
|
-
};
|
|
10
|
-
});
|
|
11
|
-
it('preset media effectively key access', async () => {
|
|
12
|
-
const mediaUtils = await import('../utils/media');
|
|
13
|
-
const stylex = await import('../');
|
|
14
|
-
const mocked = jest.mocked(mediaUtils.media);
|
|
15
|
-
const mediaVal = stylex.defineConsts({
|
|
16
|
-
md: '(width >= 750px)',
|
|
17
|
-
lg: '(width >= 1080px)'
|
|
18
|
-
});
|
|
19
|
-
const styles = stylex.create({
|
|
20
|
-
view: {
|
|
21
|
-
backgroundColor: {
|
|
22
|
-
default: 'yellow',
|
|
23
|
-
[mediaVal.md]: 'blue',
|
|
24
|
-
[mediaVal.lg]: 'green'
|
|
25
|
-
},
|
|
26
|
-
width: {
|
|
27
|
-
default: 100,
|
|
28
|
-
[mediaVal.md]: 200,
|
|
29
|
-
[mediaVal.lg]: 300
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
mockDimensions({
|
|
34
|
-
width: 750
|
|
35
|
-
});
|
|
36
|
-
function Comp() {
|
|
37
|
-
const sx = stylex.useStylex();
|
|
38
|
-
return /*#__PURE__*/React.createElement(View, sx.props(styles.view));
|
|
39
|
-
}
|
|
40
|
-
expect(finalStyle(/*#__PURE__*/React.createElement(stylex.RNStyleXProvider, {
|
|
41
|
-
media: mediaVal
|
|
42
|
-
}, /*#__PURE__*/React.createElement(Comp, null)))).toMatchObject({
|
|
43
|
-
backgroundColor: 'blue',
|
|
44
|
-
width: 200
|
|
45
|
-
});
|
|
46
|
-
expect(jest.isMockFunction(mocked)).toBe(true);
|
|
47
|
-
expect(mocked.mock.calls[0][1]).toBe(mediaVal.md);
|
|
48
|
-
});
|
|
49
|
-
//# sourceMappingURL=mock.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","mockDimensions","finalStyle","jest","mock","originalModule","requireActual","media","fn","it","mediaUtils","stylex","mocked","mediaVal","defineConsts","md","lg","styles","create","view","backgroundColor","default","width","Comp","sx","useStylex","createElement","props","expect","RNStyleXProvider","toMatchObject","isMockFunction","toBe","calls"],"sources":["mock.test.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\n\nimport { mockDimensions, finalStyle } from './test-utils';\n\njest.mock('../utils/media', () => {\n const originalModule = jest.requireActual('../utils/media');\n\n return {\n ...originalModule,\n media: jest.fn(originalModule.media),\n };\n});\n\nit('preset media effectively key access', async () => {\n const mediaUtils = await import( '../utils/media');\n const stylex = await import( '../');\n\n const mocked = jest.mocked(mediaUtils.media);\n\n const mediaVal = stylex.defineConsts({\n md: '(width >= 750px)',\n lg: '(width >= 1080px)',\n });\n\n const styles = stylex.create({\n view: {\n backgroundColor: {\n default: 'yellow',\n [mediaVal.md]: 'blue',\n [mediaVal.lg]: 'green',\n },\n width: {\n default: 100,\n [mediaVal.md]: 200,\n [mediaVal.lg]: 300,\n },\n },\n });\n\n mockDimensions({ width: 750 });\n\n function Comp() {\n const sx = stylex.useStylex();\n return <View {...sx.props(styles.view)} />;\n }\n\n expect(\n finalStyle(\n <stylex.RNStyleXProvider media={mediaVal}>\n <Comp />\n </stylex.RNStyleXProvider>\n )\n ).toMatchObject({\n backgroundColor: 'blue',\n width: 200,\n });\n\n expect(jest.isMockFunction(mocked)).toBe(true);\n expect(mocked.mock.calls[0][1]).toBe(mediaVal.md);\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,cAAc;AAEnC,SAASC,cAAc,EAAEC,UAAU,QAAQ,cAAc;AAEzDC,IAAI,CAACC,IAAI,CAAC,gBAAgB,EAAE,MAAM;EAChC,MAAMC,cAAc,GAAGF,IAAI,CAACG,aAAa,CAAC,gBAAgB,CAAC;EAE3D,OAAO;IACL,GAAGD,cAAc;IACjBE,KAAK,EAAEJ,IAAI,CAACK,EAAE,CAACH,cAAc,CAACE,KAAK;EACrC,CAAC;AACH,CAAC,CAAC;AAEFE,EAAE,CAAC,qCAAqC,EAAE,YAAY;EACpD,MAAMC,UAAU,GAAG,MAAM,MAAM,CAAE,gBAAgB,CAAC;EAClD,MAAMC,MAAM,GAAG,MAAM,MAAM,CAAE,KAAK,CAAC;EAEnC,MAAMC,MAAM,GAAGT,IAAI,CAACS,MAAM,CAACF,UAAU,CAACH,KAAK,CAAC;EAE5C,MAAMM,QAAQ,GAAGF,MAAM,CAACG,YAAY,CAAC;IACnCC,EAAE,EAAE,kBAAkB;IACtBC,EAAE,EAAE;EACN,CAAC,CAAC;EAEF,MAAMC,MAAM,GAAGN,MAAM,CAACO,MAAM,CAAC;IAC3BC,IAAI,EAAE;MACJC,eAAe,EAAE;QACfC,OAAO,EAAE,QAAQ;QACjB,CAACR,QAAQ,CAACE,EAAE,GAAG,MAAM;QACrB,CAACF,QAAQ,CAACG,EAAE,GAAG;MACjB,CAAC;MACDM,KAAK,EAAE;QACLD,OAAO,EAAE,GAAG;QACZ,CAACR,QAAQ,CAACE,EAAE,GAAG,GAAG;QAClB,CAACF,QAAQ,CAACG,EAAE,GAAG;MACjB;IACF;EACF,CAAC,CAAC;EAEFf,cAAc,CAAC;IAAEqB,KAAK,EAAE;EAAI,CAAC,CAAC;EAE9B,SAASC,IAAIA,CAAA,EAAG;IACd,MAAMC,EAAE,GAAGb,MAAM,CAACc,SAAS,CAAC,CAAC;IAC7B,oBAAO1B,KAAA,CAAA2B,aAAA,CAAC1B,IAAI,EAAKwB,EAAE,CAACG,KAAK,CAACV,MAAM,CAACE,IAAI,CAAI,CAAC;EAC5C;EAEAS,MAAM,CACJ1B,UAAU,cACRH,KAAA,CAAA2B,aAAA,CAACf,MAAM,CAACkB,gBAAgB;IAACtB,KAAK,EAAEM;EAAS,gBACvCd,KAAA,CAAA2B,aAAA,CAACH,IAAI,MAAE,CACgB,CAC3B,CACF,CAAC,CAACO,aAAa,CAAC;IACdV,eAAe,EAAE,MAAM;IACvBE,KAAK,EAAE;EACT,CAAC,CAAC;EAEFM,MAAM,CAACzB,IAAI,CAAC4B,cAAc,CAACnB,MAAM,CAAC,CAAC,CAACoB,IAAI,CAAC,IAAI,CAAC;EAC9CJ,MAAM,CAAChB,MAAM,CAACR,IAAI,CAAC6B,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACD,IAAI,CAACnB,QAAQ,CAACE,EAAE,CAAC;AACnD,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { render } from '@testing-library/react-native';
|
|
2
|
-
const aspectRatio = 19.5 / 9; // iPhone 14
|
|
3
|
-
|
|
4
|
-
export function mockDimensions(_ref) {
|
|
5
|
-
let {
|
|
6
|
-
width = 750,
|
|
7
|
-
height = width * aspectRatio,
|
|
8
|
-
pixelRatio = 1
|
|
9
|
-
} = _ref;
|
|
10
|
-
jest.resetModules();
|
|
11
|
-
jest.doMock('react-native/Libraries/Utilities/useWindowDimensions', () => ({
|
|
12
|
-
__esModule: true,
|
|
13
|
-
default: jest.fn().mockReturnValue({
|
|
14
|
-
width,
|
|
15
|
-
height
|
|
16
|
-
})
|
|
17
|
-
}));
|
|
18
|
-
// The react-native index.js exports PixelRatio via a lazy getter:
|
|
19
|
-
// get PixelRatio() { return require('./Libraries/Utilities/PixelRatio').default }
|
|
20
|
-
// so the mock must be wrapped under `default`.
|
|
21
|
-
jest.doMock('react-native/Libraries/Utilities/PixelRatio', () => ({
|
|
22
|
-
__esModule: true,
|
|
23
|
-
default: {
|
|
24
|
-
get: () => pixelRatio,
|
|
25
|
-
getFontScale: () => 1,
|
|
26
|
-
getPixelSizeForLayoutSize: layoutSize => layoutSize * pixelRatio,
|
|
27
|
-
roundToNearestPixel: layoutSize => Math.round(layoutSize * pixelRatio) / pixelRatio
|
|
28
|
-
}
|
|
29
|
-
}));
|
|
30
|
-
jest.doMock('react-native/Libraries/Utilities/Dimensions', () => ({
|
|
31
|
-
__esModule: true,
|
|
32
|
-
default: {
|
|
33
|
-
get: jest.fn().mockReturnValue({
|
|
34
|
-
width,
|
|
35
|
-
height
|
|
36
|
-
}),
|
|
37
|
-
addEventListener: jest.fn(),
|
|
38
|
-
removeEventListener: jest.fn()
|
|
39
|
-
}
|
|
40
|
-
}));
|
|
41
|
-
}
|
|
42
|
-
export function reduceStyles(s) {
|
|
43
|
-
return s.reduce((s1, s2) => ({
|
|
44
|
-
...s1,
|
|
45
|
-
...s2
|
|
46
|
-
}), {});
|
|
47
|
-
}
|
|
48
|
-
export function finalStyle(Component) {
|
|
49
|
-
var _render$toJSON;
|
|
50
|
-
return reduceStyles((_render$toJSON = render(Component).toJSON()) === null || _render$toJSON === void 0 ? void 0 : _render$toJSON.props.style);
|
|
51
|
-
}
|
|
52
|
-
//# sourceMappingURL=test-utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["render","aspectRatio","mockDimensions","_ref","width","height","pixelRatio","jest","resetModules","doMock","__esModule","default","fn","mockReturnValue","get","getFontScale","getPixelSizeForLayoutSize","layoutSize","roundToNearestPixel","Math","round","addEventListener","removeEventListener","reduceStyles","s","reduce","s1","s2","finalStyle","Component","_render$toJSON","toJSON","props","style"],"sources":["test-utils.tsx"],"sourcesContent":["import { render } from '@testing-library/react-native';\n\nconst aspectRatio = 19.5 / 9; // iPhone 14\n\nexport function mockDimensions({\n width = 750,\n height = width * aspectRatio,\n pixelRatio = 1,\n}: {\n width?: number;\n height?: number;\n pixelRatio?: number;\n}) {\n jest.resetModules();\n jest.doMock('react-native/Libraries/Utilities/useWindowDimensions', () => ({\n __esModule: true,\n default: jest.fn().mockReturnValue({ width, height }),\n }));\n // The react-native index.js exports PixelRatio via a lazy getter:\n // get PixelRatio() { return require('./Libraries/Utilities/PixelRatio').default }\n // so the mock must be wrapped under `default`.\n jest.doMock('react-native/Libraries/Utilities/PixelRatio', () => ({\n __esModule: true,\n default: {\n get: () => pixelRatio,\n getFontScale: () => 1,\n getPixelSizeForLayoutSize: (layoutSize: number) =>\n layoutSize * pixelRatio,\n roundToNearestPixel: (layoutSize: number) =>\n Math.round(layoutSize * pixelRatio) / pixelRatio,\n },\n }));\n jest.doMock('react-native/Libraries/Utilities/Dimensions', () => ({\n __esModule: true,\n default: {\n get: jest.fn().mockReturnValue({ width, height }),\n addEventListener: jest.fn(),\n removeEventListener: jest.fn(),\n },\n }));\n}\n\nexport function reduceStyles(s: any) {\n return s.reduce((s1: any, s2: any) => ({ ...s1, ...s2 }), {});\n}\n\nexport function finalStyle(Component: React.ReactElement) {\n return reduceStyles(\n render(\n Component\n ).toJSON()?.props.style\n );\n}\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,+BAA+B;AAEtD,MAAMC,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;;AAE9B,OAAO,SAASC,cAAcA,CAAAC,IAAA,EAQ3B;EAAA,IAR4B;IAC7BC,KAAK,GAAG,GAAG;IACXC,MAAM,GAAGD,KAAK,GAAGH,WAAW;IAC5BK,UAAU,GAAG;EAKf,CAAC,GAAAH,IAAA;EACCI,IAAI,CAACC,YAAY,CAAC,CAAC;EACnBD,IAAI,CAACE,MAAM,CAAC,sDAAsD,EAAE,OAAO;IACzEC,UAAU,EAAE,IAAI;IAChBC,OAAO,EAAEJ,IAAI,CAACK,EAAE,CAAC,CAAC,CAACC,eAAe,CAAC;MAAET,KAAK;MAAEC;IAAO,CAAC;EACtD,CAAC,CAAC,CAAC;EACH;EACA;EACA;EACAE,IAAI,CAACE,MAAM,CAAC,6CAA6C,EAAE,OAAO;IAChEC,UAAU,EAAE,IAAI;IAChBC,OAAO,EAAE;MACPG,GAAG,EAAEA,CAAA,KAAMR,UAAU;MACrBS,YAAY,EAAEA,CAAA,KAAM,CAAC;MACrBC,yBAAyB,EAAGC,UAAkB,IAC5CA,UAAU,GAAGX,UAAU;MACzBY,mBAAmB,EAAGD,UAAkB,IACtCE,IAAI,CAACC,KAAK,CAACH,UAAU,GAAGX,UAAU,CAAC,GAAGA;IAC1C;EACF,CAAC,CAAC,CAAC;EACHC,IAAI,CAACE,MAAM,CAAC,6CAA6C,EAAE,OAAO;IAChEC,UAAU,EAAE,IAAI;IAChBC,OAAO,EAAE;MACPG,GAAG,EAAEP,IAAI,CAACK,EAAE,CAAC,CAAC,CAACC,eAAe,CAAC;QAAET,KAAK;QAAEC;MAAO,CAAC,CAAC;MACjDgB,gBAAgB,EAAEd,IAAI,CAACK,EAAE,CAAC,CAAC;MAC3BU,mBAAmB,EAAEf,IAAI,CAACK,EAAE,CAAC;IAC/B;EACF,CAAC,CAAC,CAAC;AACL;AAEA,OAAO,SAASW,YAAYA,CAACC,CAAM,EAAE;EACnC,OAAOA,CAAC,CAACC,MAAM,CAAC,CAACC,EAAO,EAAEC,EAAO,MAAM;IAAE,GAAGD,EAAE;IAAE,GAAGC;EAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/D;AAEA,OAAO,SAASC,UAAUA,CAACC,SAA6B,EAAE;EAAA,IAAAC,cAAA;EACxD,OAAOP,YAAY,EAAAO,cAAA,GACjB9B,MAAM,CACJ6B,SACF,CAAC,CAACE,MAAM,CAAC,CAAC,cAAAD,cAAA,uBAFVA,cAAA,CAEYE,KAAK,CAACC,KACpB,CAAC;AACH","ignoreList":[]}
|
|
File without changes
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export declare function mockDimensions({ width, height, pixelRatio, }: {
|
|
2
|
-
width?: number;
|
|
3
|
-
height?: number;
|
|
4
|
-
pixelRatio?: number;
|
|
5
|
-
}): void;
|
|
6
|
-
export declare function reduceStyles(s: any): any;
|
|
7
|
-
export declare function finalStyle(Component: React.ReactElement): any;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { XRNStyleSheets, NamedStyles, RNStyle, VariantStyleSheet } from './types';
|
|
2
|
-
export declare const create: <T extends NamedStyles<any, R>, R extends RNStyle>(args: T) => XRNStyleSheets<T, R>;
|
|
3
|
-
export declare const createVariants: <K extends string, A extends Record<string, RNStyle>>(variantKey: K, args: A) => Record<`@${K}_${keyof A & string}`, RNStyle>;
|
|
4
|
-
export declare const variants: <T extends VariantStyleSheet<any, RNStyle>, V extends Record<string, string>>(target: T, variants: V) => T[keyof T][];
|
|
5
|
-
type PropValue = VariantStyleSheet<string, RNStyle> | RNStyle;
|
|
6
|
-
export declare const props: <T extends RNStyle>(...args: (PropValue | RNStyle[])[]) => {
|
|
7
|
-
style: T[];
|
|
8
|
-
};
|
|
9
|
-
export {};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|