@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.
Files changed (49) hide show
  1. package/README.ja.md +61 -1
  2. package/README.md +129 -59
  3. package/lib/commonjs/index.js +6 -0
  4. package/lib/commonjs/index.js.map +1 -1
  5. package/lib/commonjs/utils/base.js +5 -1
  6. package/lib/commonjs/utils/base.js.map +1 -1
  7. package/lib/commonjs/utils/hooks.js +7 -0
  8. package/lib/commonjs/utils/hooks.js.map +1 -1
  9. package/lib/commonjs/utils/types.js.map +1 -1
  10. package/lib/module/index.js +1 -1
  11. package/lib/module/index.js.map +1 -1
  12. package/lib/module/utils/base.js +3 -0
  13. package/lib/module/utils/base.js.map +1 -1
  14. package/lib/module/utils/hooks.js +8 -1
  15. package/lib/module/utils/hooks.js.map +1 -1
  16. package/lib/module/utils/types.js.map +1 -1
  17. package/lib/{types → typescript}/index.d.ts +1 -1
  18. package/lib/{types → typescript}/utils/base.d.ts +2 -1
  19. package/lib/{types → typescript}/utils/hooks.d.ts +2 -1
  20. package/lib/{types → typescript}/utils/types.d.ts +2 -0
  21. package/package.json +11 -5
  22. package/lib/commonjs/tests/index.test.js +0 -224
  23. package/lib/commonjs/tests/index.test.js.map +0 -1
  24. package/lib/commonjs/tests/media.test.js +0 -226
  25. package/lib/commonjs/tests/media.test.js.map +0 -1
  26. package/lib/commonjs/tests/mock.test.js +0 -54
  27. package/lib/commonjs/tests/mock.test.js.map +0 -1
  28. package/lib/commonjs/tests/test-utils.js +0 -60
  29. package/lib/commonjs/tests/test-utils.js.map +0 -1
  30. package/lib/module/tests/index.test.js +0 -220
  31. package/lib/module/tests/index.test.js.map +0 -1
  32. package/lib/module/tests/media.test.js +0 -222
  33. package/lib/module/tests/media.test.js.map +0 -1
  34. package/lib/module/tests/mock.test.js +0 -49
  35. package/lib/module/tests/mock.test.js.map +0 -1
  36. package/lib/module/tests/test-utils.js +0 -52
  37. package/lib/module/tests/test-utils.js.map +0 -1
  38. package/lib/types/tests/check-descriptor.test.d.ts +0 -0
  39. package/lib/types/tests/index.test.d.ts +0 -1
  40. package/lib/types/tests/media.test.d.ts +0 -1
  41. package/lib/types/tests/mock.test.d.ts +0 -1
  42. package/lib/types/tests/test-utils.d.ts +0 -7
  43. package/lib/types/tests/utils.d.ts +0 -6
  44. package/lib/types/utils/index.d.ts +0 -9
  45. package/lib/types/utils/utils.d.ts +0 -4
  46. /package/lib/{types → typescript}/utils/media.d.ts +0 -0
  47. /package/lib/{types → typescript}/utils/theme.d.ts +0 -0
  48. /package/lib/{types → typescript}/utils/tokens.d.ts +0 -0
  49. /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,6 +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;
@@ -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 {};
@@ -1,4 +0,0 @@
1
- type StyleObject = Record<string, any>;
2
- type UtilMap = Record<string, (v: any) => StyleObject>;
3
- export declare function flattenStyles(styles: StyleObject, utils: UtilMap | undefined): StyleObject;
4
- export {};
File without changes
File without changes
File without changes
File without changes