@fluentui-react-native/experimental-shadow 0.2.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.
Files changed (46) hide show
  1. package/.eslintrc.js +3 -0
  2. package/CHANGELOG.json +20 -0
  3. package/CHANGELOG.md +13 -0
  4. package/SPEC.md +5 -0
  5. package/babel.config.js +1 -0
  6. package/jest.config.js +2 -0
  7. package/just.config.js +3 -0
  8. package/lib/Shadow.d.ts +4 -0
  9. package/lib/Shadow.d.ts.map +1 -0
  10. package/lib/Shadow.js +26 -0
  11. package/lib/Shadow.js.map +1 -0
  12. package/lib/Shadow.types.d.ts +6 -0
  13. package/lib/Shadow.types.d.ts.map +1 -0
  14. package/lib/Shadow.types.js +2 -0
  15. package/lib/Shadow.types.js.map +1 -0
  16. package/lib/__tests__/Shadow.test.d.ts +2 -0
  17. package/lib/__tests__/Shadow.test.d.ts.map +1 -0
  18. package/lib/__tests__/Shadow.test.js +23 -0
  19. package/lib/__tests__/Shadow.test.js.map +1 -0
  20. package/lib/index.d.ts +3 -0
  21. package/lib/index.d.ts.map +1 -0
  22. package/lib/index.js +2 -0
  23. package/lib/index.js.map +1 -0
  24. package/lib-commonjs/Shadow.d.ts +4 -0
  25. package/lib-commonjs/Shadow.d.ts.map +1 -0
  26. package/lib-commonjs/Shadow.js +49 -0
  27. package/lib-commonjs/Shadow.js.map +1 -0
  28. package/lib-commonjs/Shadow.types.d.ts +6 -0
  29. package/lib-commonjs/Shadow.types.d.ts.map +1 -0
  30. package/lib-commonjs/Shadow.types.js +3 -0
  31. package/lib-commonjs/Shadow.types.js.map +1 -0
  32. package/lib-commonjs/__tests__/Shadow.test.d.ts +2 -0
  33. package/lib-commonjs/__tests__/Shadow.test.d.ts.map +1 -0
  34. package/lib-commonjs/__tests__/Shadow.test.js +44 -0
  35. package/lib-commonjs/__tests__/Shadow.test.js.map +1 -0
  36. package/lib-commonjs/index.d.ts +3 -0
  37. package/lib-commonjs/index.d.ts.map +1 -0
  38. package/lib-commonjs/index.js +6 -0
  39. package/lib-commonjs/index.js.map +1 -0
  40. package/package.json +37 -0
  41. package/src/Shadow.tsx +31 -0
  42. package/src/Shadow.types.ts +7 -0
  43. package/src/__tests__/Shadow.test.tsx +40 -0
  44. package/src/__tests__/__snapshots__/Shadow.test.tsx.snap +11 -0
  45. package/src/index.ts +2 -0
  46. package/tsconfig.json +8 -0
package/.eslintrc.js ADDED
@@ -0,0 +1,3 @@
1
+ module.exports = {
2
+ extends: ['@fluentui-react-native/eslint-config-rules'],
3
+ };
package/CHANGELOG.json ADDED
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "@fluentui-react-native/experimental-shadow",
3
+ "entries": [
4
+ {
5
+ "date": "Tue, 28 Jun 2022 00:53:30 GMT",
6
+ "tag": "@fluentui-react-native/experimental-shadow_v0.2.0",
7
+ "version": "0.2.0",
8
+ "comments": {
9
+ "minor": [
10
+ {
11
+ "author": "78454019+lyzhan7@users.noreply.github.com",
12
+ "package": "@fluentui-react-native/experimental-shadow",
13
+ "commit": "b2d247cc39d7d3c8ca426f362a05f04e06b54d9b",
14
+ "comment": "Rename shadow to experimental-shadow"
15
+ }
16
+ ]
17
+ }
18
+ }
19
+ ]
20
+ }
package/CHANGELOG.md ADDED
@@ -0,0 +1,13 @@
1
+ # Change Log - @fluentui-react-native/experimental-shadow
2
+
3
+ This log was last generated on Tue, 28 Jun 2022 00:53:30 GMT and should not be manually modified.
4
+
5
+ <!-- Start content -->
6
+
7
+ ## 0.2.0
8
+
9
+ Tue, 28 Jun 2022 00:53:30 GMT
10
+
11
+ ### Minor changes
12
+
13
+ - Rename shadow to experimental-shadow (78454019+lyzhan7@users.noreply.github.com)
package/SPEC.md ADDED
@@ -0,0 +1,5 @@
1
+ # Shadow
2
+
3
+ ## Background
4
+
5
+ Please write here you documentation...
@@ -0,0 +1 @@
1
+ module.exports = require('@fluentui-react-native/scripts/babel.config');
package/jest.config.js ADDED
@@ -0,0 +1,2 @@
1
+ const { configureReactNativeJest } = require('@fluentui-react-native/scripts');
2
+ module.exports = configureReactNativeJest('android');
package/just.config.js ADDED
@@ -0,0 +1,3 @@
1
+ const { preset } = require('@fluentui-react-native/scripts');
2
+
3
+ preset();
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ import { ShadowProps } from './Shadow.types';
3
+ export declare const Shadow: React.FunctionComponent<ShadowProps>;
4
+ //# sourceMappingURL=Shadow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Shadow.d.ts","sourceRoot":"","sources":["../src/Shadow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CA0BvD,CAAC"}
package/lib/Shadow.js ADDED
@@ -0,0 +1,26 @@
1
+ import * as React from 'react';
2
+ import { View } from 'react-native';
3
+ export var Shadow = function (props) {
4
+ var noOffset = { width: 0, height: 0 };
5
+ var neutralShadowAmbient = { shadowOffset: noOffset, shadowOpacity: 0.12, shadowRadius: 2 };
6
+ var neutralShadowAmbientDarker = { shadowOffset: noOffset, shadowOpacity: 0.2, shadowRadius: 8 };
7
+ var ambientShadow = {
8
+ '2': neutralShadowAmbient,
9
+ '4': neutralShadowAmbient,
10
+ '8': neutralShadowAmbient,
11
+ '16': neutralShadowAmbient,
12
+ '28': neutralShadowAmbientDarker,
13
+ '64': neutralShadowAmbientDarker,
14
+ };
15
+ var keyShadow = {
16
+ '2': { shadowOffset: { width: 0, height: 1 }, shadowOpacity: 0.14, shadowRadius: 2 },
17
+ '4': { shadowOffset: { width: 0, height: 2 }, shadowOpacity: 0.14, shadowRadius: 4 },
18
+ '8': { shadowOffset: { width: 0, height: 4 }, shadowOpacity: 0.14, shadowRadius: 8 },
19
+ '16': { shadowOffset: { width: 0, height: 8 }, shadowOpacity: 0.14, shadowRadius: 16 },
20
+ '28': { shadowOffset: { width: 0, height: 14 }, shadowOpacity: 0.24, shadowRadius: 28 },
21
+ '64': { shadowOffset: { width: 0, height: 32 }, shadowOpacity: 0.24, shadowRadius: 64 },
22
+ };
23
+ return (React.createElement(View, { style: ambientShadow[props.depth] },
24
+ React.createElement(View, { style: keyShadow[props.depth] }, props.children)));
25
+ };
26
+ //# sourceMappingURL=Shadow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Shadow.js","sourceRoot":"","sources":["../src/Shadow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGpC,MAAM,CAAC,IAAM,MAAM,GAAyC,UAAC,KAAkB;IAC7E,IAAM,QAAQ,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACzC,IAAM,oBAAoB,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;IAC9F,IAAM,0BAA0B,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;IACnG,IAAM,aAAa,GAAG;QACpB,GAAG,EAAE,oBAAoB;QACzB,GAAG,EAAE,oBAAoB;QACzB,GAAG,EAAE,oBAAoB;QACzB,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE,0BAA0B;QAChC,IAAI,EAAE,0BAA0B;KACjC,CAAC;IACF,IAAM,SAAS,GAAG;QAChB,GAAG,EAAE,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE;QACpF,GAAG,EAAE,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE;QACpF,GAAG,EAAE,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE;QACpF,IAAI,EAAE,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE;QACtF,IAAI,EAAE,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE;QACvF,IAAI,EAAE,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE;KACxF,CAAC;IAEF,OAAO,CACL,oBAAC,IAAI,IAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC;QACrC,oBAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,IAAG,KAAK,CAAC,QAAQ,CAAQ,CACvD,CACR,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { ViewProps } from 'react-native';
2
+ export declare type ShadowDepth = '2' | '4' | '8' | '16' | '28' | '64';
3
+ export interface ShadowProps extends ViewProps {
4
+ depth?: ShadowDepth;
5
+ }
6
+ //# sourceMappingURL=Shadow.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Shadow.types.d.ts","sourceRoot":"","sources":["../src/Shadow.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,oBAAY,WAAW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE/D,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Shadow.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Shadow.types.js","sourceRoot":"","sources":["../src/Shadow.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Shadow.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Shadow.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/Shadow.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ import * as React from 'react';
2
+ import { Text } from 'react-native';
3
+ import { Shadow } from '../Shadow';
4
+ import * as renderer from 'react-test-renderer';
5
+ import { checkRenderConsistency, checkReRender } from '@fluentui-react-native/test-tools';
6
+ describe('Shadow component tests', function () {
7
+ it('Shadow default', function () {
8
+ var tree = renderer
9
+ .create(React.createElement(Shadow, null,
10
+ React.createElement(Text, null, "Shadow default test")))
11
+ .toJSON();
12
+ expect(tree).toMatchSnapshot();
13
+ });
14
+ it('Shadow simple rendering does not invalidate styling', function () {
15
+ checkRenderConsistency(function () { return (React.createElement(Shadow, null,
16
+ React.createElement(Text, null, "Shadow render test"))); }, 2);
17
+ });
18
+ it('Shadow re-renders correctly', function () {
19
+ checkReRender(function () { return (React.createElement(Shadow, null,
20
+ React.createElement(Text, null, "Shadow render twice test"))); }, 2);
21
+ });
22
+ });
23
+ //# sourceMappingURL=Shadow.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Shadow.test.js","sourceRoot":"","sources":["../../src/__tests__/Shadow.test.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAE1F,QAAQ,CAAC,wBAAwB,EAAE;IACjC,EAAE,CAAC,gBAAgB,EAAE;QACnB,IAAM,IAAI,GAAG,QAAQ;aAClB,MAAM,CACL,oBAAC,MAAM;YACL,oBAAC,IAAI,8BAA2B,CACzB,CACV;aACA,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE;QACxD,sBAAsB,CACpB,cAAM,OAAA,CACJ,oBAAC,MAAM;YACL,oBAAC,IAAI,6BAA0B,CACxB,CACV,EAJK,CAIL,EACD,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE;QAChC,aAAa,CACX,cAAM,OAAA,CACJ,oBAAC,MAAM;YACL,oBAAC,IAAI,mCAAgC,CAC9B,CACV,EAJK,CAIL,EACD,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export { Shadow } from './Shadow';
2
+ export { ShadowDepth, ShadowProps } from './Shadow.types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
package/lib/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export { Shadow } from './Shadow';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ import { ShadowProps } from './Shadow.types';
3
+ export declare const Shadow: React.FunctionComponent<ShadowProps>;
4
+ //# sourceMappingURL=Shadow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Shadow.d.ts","sourceRoot":"","sources":["../src/Shadow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CA0BvD,CAAC"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.Shadow = void 0;
23
+ var React = __importStar(require("react"));
24
+ var react_native_1 = require("react-native");
25
+ var Shadow = function (props) {
26
+ var noOffset = { width: 0, height: 0 };
27
+ var neutralShadowAmbient = { shadowOffset: noOffset, shadowOpacity: 0.12, shadowRadius: 2 };
28
+ var neutralShadowAmbientDarker = { shadowOffset: noOffset, shadowOpacity: 0.2, shadowRadius: 8 };
29
+ var ambientShadow = {
30
+ '2': neutralShadowAmbient,
31
+ '4': neutralShadowAmbient,
32
+ '8': neutralShadowAmbient,
33
+ '16': neutralShadowAmbient,
34
+ '28': neutralShadowAmbientDarker,
35
+ '64': neutralShadowAmbientDarker,
36
+ };
37
+ var keyShadow = {
38
+ '2': { shadowOffset: { width: 0, height: 1 }, shadowOpacity: 0.14, shadowRadius: 2 },
39
+ '4': { shadowOffset: { width: 0, height: 2 }, shadowOpacity: 0.14, shadowRadius: 4 },
40
+ '8': { shadowOffset: { width: 0, height: 4 }, shadowOpacity: 0.14, shadowRadius: 8 },
41
+ '16': { shadowOffset: { width: 0, height: 8 }, shadowOpacity: 0.14, shadowRadius: 16 },
42
+ '28': { shadowOffset: { width: 0, height: 14 }, shadowOpacity: 0.24, shadowRadius: 28 },
43
+ '64': { shadowOffset: { width: 0, height: 32 }, shadowOpacity: 0.24, shadowRadius: 64 },
44
+ };
45
+ return (React.createElement(react_native_1.View, { style: ambientShadow[props.depth] },
46
+ React.createElement(react_native_1.View, { style: keyShadow[props.depth] }, props.children)));
47
+ };
48
+ exports.Shadow = Shadow;
49
+ //# sourceMappingURL=Shadow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Shadow.js","sourceRoot":"","sources":["../src/Shadow.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA+B;AAC/B,6CAAoC;AAG7B,IAAM,MAAM,GAAyC,UAAC,KAAkB;IAC7E,IAAM,QAAQ,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACzC,IAAM,oBAAoB,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;IAC9F,IAAM,0BAA0B,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;IACnG,IAAM,aAAa,GAAG;QACpB,GAAG,EAAE,oBAAoB;QACzB,GAAG,EAAE,oBAAoB;QACzB,GAAG,EAAE,oBAAoB;QACzB,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE,0BAA0B;QAChC,IAAI,EAAE,0BAA0B;KACjC,CAAC;IACF,IAAM,SAAS,GAAG;QAChB,GAAG,EAAE,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE;QACpF,GAAG,EAAE,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE;QACpF,GAAG,EAAE,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE;QACpF,IAAI,EAAE,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE;QACtF,IAAI,EAAE,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE;QACvF,IAAI,EAAE,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE;KACxF,CAAC;IAEF,OAAO,CACL,oBAAC,mBAAI,IAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC;QACrC,oBAAC,mBAAI,IAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,IAAG,KAAK,CAAC,QAAQ,CAAQ,CACvD,CACR,CAAC;AACJ,CAAC,CAAC;AA1BW,QAAA,MAAM,UA0BjB"}
@@ -0,0 +1,6 @@
1
+ import { ViewProps } from 'react-native';
2
+ export declare type ShadowDepth = '2' | '4' | '8' | '16' | '28' | '64';
3
+ export interface ShadowProps extends ViewProps {
4
+ depth?: ShadowDepth;
5
+ }
6
+ //# sourceMappingURL=Shadow.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Shadow.types.d.ts","sourceRoot":"","sources":["../src/Shadow.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,oBAAY,WAAW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE/D,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=Shadow.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Shadow.types.js","sourceRoot":"","sources":["../src/Shadow.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Shadow.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Shadow.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/Shadow.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ var React = __importStar(require("react"));
23
+ var react_native_1 = require("react-native");
24
+ var Shadow_1 = require("../Shadow");
25
+ var renderer = __importStar(require("react-test-renderer"));
26
+ var test_tools_1 = require("@fluentui-react-native/test-tools");
27
+ describe('Shadow component tests', function () {
28
+ it('Shadow default', function () {
29
+ var tree = renderer
30
+ .create(React.createElement(Shadow_1.Shadow, null,
31
+ React.createElement(react_native_1.Text, null, "Shadow default test")))
32
+ .toJSON();
33
+ expect(tree).toMatchSnapshot();
34
+ });
35
+ it('Shadow simple rendering does not invalidate styling', function () {
36
+ (0, test_tools_1.checkRenderConsistency)(function () { return (React.createElement(Shadow_1.Shadow, null,
37
+ React.createElement(react_native_1.Text, null, "Shadow render test"))); }, 2);
38
+ });
39
+ it('Shadow re-renders correctly', function () {
40
+ (0, test_tools_1.checkReRender)(function () { return (React.createElement(Shadow_1.Shadow, null,
41
+ React.createElement(react_native_1.Text, null, "Shadow render twice test"))); }, 2);
42
+ });
43
+ });
44
+ //# sourceMappingURL=Shadow.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Shadow.test.js","sourceRoot":"","sources":["../../src/__tests__/Shadow.test.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,2CAA+B;AAC/B,6CAAoC;AACpC,oCAAmC;AACnC,4DAAgD;AAChD,gEAA0F;AAE1F,QAAQ,CAAC,wBAAwB,EAAE;IACjC,EAAE,CAAC,gBAAgB,EAAE;QACnB,IAAM,IAAI,GAAG,QAAQ;aAClB,MAAM,CACL,oBAAC,eAAM;YACL,oBAAC,mBAAI,8BAA2B,CACzB,CACV;aACA,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE;QACxD,IAAA,mCAAsB,EACpB,cAAM,OAAA,CACJ,oBAAC,eAAM;YACL,oBAAC,mBAAI,6BAA0B,CACxB,CACV,EAJK,CAIL,EACD,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE;QAChC,IAAA,0BAAa,EACX,cAAM,OAAA,CACJ,oBAAC,eAAM;YACL,oBAAC,mBAAI,mCAAgC,CAC9B,CACV,EAJK,CAIL,EACD,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { Shadow } from './Shadow';
2
+ export { ShadowDepth, ShadowProps } from './Shadow.types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Shadow = void 0;
4
+ var Shadow_1 = require("./Shadow");
5
+ Object.defineProperty(exports, "Shadow", { enumerable: true, get: function () { return Shadow_1.Shadow; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAAkC;AAAzB,gGAAA,MAAM,OAAA"}
package/package.json ADDED
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "@fluentui-react-native/experimental-shadow",
3
+ "version": "0.2.0",
4
+ "description": "A cross-platform Shadow component using the Fluent Design System",
5
+ "main": "lib-commonjs/index.js",
6
+ "module": "lib/index.js",
7
+ "typings": "lib/index.d.ts",
8
+ "scripts": {
9
+ "build": "fluentui-scripts build",
10
+ "clean": "fluentui-scripts clean",
11
+ "depcheck": "fluentui-scripts depcheck",
12
+ "just": "fluentui-scripts",
13
+ "lint": "fluentui-scripts eslint",
14
+ "test": "fluentui-scripts jest",
15
+ "update-snapshots": "fluentui-scripts jest -u",
16
+ "prettier": "fluentui-scripts prettier",
17
+ "prettier-fix": "fluentui-scripts prettier --fix true"
18
+ },
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "https://github.com/microsoft/fluentui-react-native.git",
22
+ "directory": "packages/experimental/Shadow"
23
+ },
24
+ "devDependencies": {
25
+ "@fluentui-react-native/eslint-config-rules": "^0.1.1",
26
+ "@fluentui-react-native/test-tools": ">=0.1.1 <1.0.0",
27
+ "@fluentui-react-native/scripts": "^0.1.1",
28
+ "react": ">=17.0.1",
29
+ "react-native": ">=0.64.3"
30
+ },
31
+ "peerDependencies": {
32
+ "react": ">=17.0.1",
33
+ "react-native": ">=0.64.3"
34
+ },
35
+ "author": "",
36
+ "license": "MIT"
37
+ }
package/src/Shadow.tsx ADDED
@@ -0,0 +1,31 @@
1
+ import * as React from 'react';
2
+ import { View } from 'react-native';
3
+ import { ShadowProps } from './Shadow.types';
4
+
5
+ export const Shadow: React.FunctionComponent<ShadowProps> = (props: ShadowProps) => {
6
+ const noOffset = { width: 0, height: 0 };
7
+ const neutralShadowAmbient = { shadowOffset: noOffset, shadowOpacity: 0.12, shadowRadius: 2 };
8
+ const neutralShadowAmbientDarker = { shadowOffset: noOffset, shadowOpacity: 0.2, shadowRadius: 8 };
9
+ const ambientShadow = {
10
+ '2': neutralShadowAmbient,
11
+ '4': neutralShadowAmbient,
12
+ '8': neutralShadowAmbient,
13
+ '16': neutralShadowAmbient,
14
+ '28': neutralShadowAmbientDarker,
15
+ '64': neutralShadowAmbientDarker,
16
+ };
17
+ const keyShadow = {
18
+ '2': { shadowOffset: { width: 0, height: 1 }, shadowOpacity: 0.14, shadowRadius: 2 },
19
+ '4': { shadowOffset: { width: 0, height: 2 }, shadowOpacity: 0.14, shadowRadius: 4 },
20
+ '8': { shadowOffset: { width: 0, height: 4 }, shadowOpacity: 0.14, shadowRadius: 8 },
21
+ '16': { shadowOffset: { width: 0, height: 8 }, shadowOpacity: 0.14, shadowRadius: 16 },
22
+ '28': { shadowOffset: { width: 0, height: 14 }, shadowOpacity: 0.24, shadowRadius: 28 },
23
+ '64': { shadowOffset: { width: 0, height: 32 }, shadowOpacity: 0.24, shadowRadius: 64 },
24
+ };
25
+
26
+ return (
27
+ <View style={ambientShadow[props.depth]}>
28
+ <View style={keyShadow[props.depth]}>{props.children}</View>
29
+ </View>
30
+ );
31
+ };
@@ -0,0 +1,7 @@
1
+ import { ViewProps } from 'react-native';
2
+
3
+ export type ShadowDepth = '2' | '4' | '8' | '16' | '28' | '64';
4
+
5
+ export interface ShadowProps extends ViewProps {
6
+ depth?: ShadowDepth;
7
+ }
@@ -0,0 +1,40 @@
1
+ import * as React from 'react';
2
+ import { Text } from 'react-native';
3
+ import { Shadow } from '../Shadow';
4
+ import * as renderer from 'react-test-renderer';
5
+ import { checkRenderConsistency, checkReRender } from '@fluentui-react-native/test-tools';
6
+
7
+ describe('Shadow component tests', () => {
8
+ it('Shadow default', () => {
9
+ const tree = renderer
10
+ .create(
11
+ <Shadow>
12
+ <Text>Shadow default test</Text>
13
+ </Shadow>,
14
+ )
15
+ .toJSON();
16
+ expect(tree).toMatchSnapshot();
17
+ });
18
+
19
+ it('Shadow simple rendering does not invalidate styling', () => {
20
+ checkRenderConsistency(
21
+ () => (
22
+ <Shadow>
23
+ <Text>Shadow render test</Text>
24
+ </Shadow>
25
+ ),
26
+ 2,
27
+ );
28
+ });
29
+
30
+ it('Shadow re-renders correctly', () => {
31
+ checkReRender(
32
+ () => (
33
+ <Shadow>
34
+ <Text>Shadow render twice test</Text>
35
+ </Shadow>
36
+ ),
37
+ 2,
38
+ );
39
+ });
40
+ });
@@ -0,0 +1,11 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`Shadow component tests Shadow default 1`] = `
4
+ <View>
5
+ <View>
6
+ <Text>
7
+ Shadow default test
8
+ </Text>
9
+ </View>
10
+ </View>
11
+ `;
package/src/index.ts ADDED
@@ -0,0 +1,2 @@
1
+ export { Shadow } from './Shadow';
2
+ export { ShadowDepth, ShadowProps } from './Shadow.types';
package/tsconfig.json ADDED
@@ -0,0 +1,8 @@
1
+ {
2
+ "extends": "@fluentui-react-native/scripts/tsconfig.json",
3
+ "compilerOptions": {
4
+ "outDir": "lib",
5
+ "types": ["node", "jest"]
6
+ },
7
+ "include": ["src"]
8
+ }