@gfazioli/mantine-reflection 0.1.1

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Giovambattista Fazioli
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,78 @@
1
+ # Mantine Reflection Component
2
+
3
+ <p align="center">
4
+
5
+ </p>
6
+
7
+ ---
8
+
9
+ <p align="center">
10
+ <a aria-label="NPM version" href="https://www.npmjs.com/package/@gfazioli/mantine-reflection">
11
+ <img alt="NPM version" src="https://img.shields.io/npm/v/%40gfazioli%2Fmantine-reflection?style=for-the-badge">
12
+ </a>
13
+
14
+ <a aria-label="NPM version" href="https://www.npmjs.com/package/@gfazioli/mantine-reflection">
15
+ <img alt="NPM Downloads" src="https://img.shields.io/npm/dm/%40gfazioli%2Fmantine-reflection?style=for-the-badge">
16
+ </a>
17
+
18
+ <img alt="NPM License" src="https://img.shields.io/npm/l/%40gfazioli%2Fmantine-reflection?style=for-the-badge">
19
+
20
+ </p>
21
+
22
+ ## Overview
23
+
24
+ This component is created on top of the [Mantine](https://mantine.dev/) library.
25
+ Adds a reflection effect to a component. It simply wraps the content to be reflected.
26
+
27
+ ## Installation
28
+
29
+ ```sh
30
+ npm install @gfazioli/mantine-reflection
31
+ ```
32
+ or
33
+
34
+ ```sh
35
+ yarn add @gfazioli/mantine-reflection
36
+ ```
37
+
38
+ ## Usage
39
+
40
+ ```tsx
41
+ import { Reflection } from '@gfazioli/mantine-reflection';
42
+
43
+ function Demo() {
44
+ return (
45
+ <Reflection>
46
+ <img
47
+ width={150}
48
+ style={{ display: 'block', borderRadius: '50%' }}
49
+ alt="test"
50
+ src="https://source.unsplash.com/9QmbsTDAI4g/150x150"
51
+ />
52
+ </Reflection>
53
+ );
54
+ }
55
+ ```
56
+
57
+ ## Props
58
+
59
+ | Name | Type | Description |
60
+ | ----------------- | ----------------- | --------------------------------------------- |
61
+ | children | React.ReactNode | Children to reflect |
62
+ | disableChildren | boolean | Disable the children |
63
+ | reflectionBlur | number | The blur of the reflection |
64
+ | reflectionDistance| number \| MantineSize \| (string & {}) | The distance of the reflection from the original element|
65
+ | reflectionEnd | number | The end of the reflection (gradient) |
66
+ | reflectionOpacity | number | The opacity of the reflection |
67
+ | reflectionStart | number | The start of the reflection (gradient) |
68
+ | reflectionStretch | number | The stretch of the reflection. May you should adjust the reflectionDistance|
69
+ | shadow | boolean | Shadow props |
70
+ | shadowBlur | number | The blur of the shadow |
71
+ | shadowColor | string | The color of the shadow |
72
+ | shadowOffset | number | The offset of the shadow |
73
+ | shadowOpacity | number | The opacity of the shadow |
74
+ | shadowScaleX | number | The scale of the shadow in the x-axis |
75
+ | shadowScaleY | number | The scale of the shadow in the y-axis |
76
+ | shadowSize | number \| MantineSize \| (string & {}) | The size of the shadow |
77
+
78
+
@@ -0,0 +1,132 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var core = require('@mantine/core');
5
+ var React = require('react');
6
+ var Reflection_module = require('./Reflection.module.css.cjs');
7
+
8
+ const defaultProps = {
9
+ disableChildren: false,
10
+ reflectionDistance: 0,
11
+ reflectionOpacity: 0.3,
12
+ reflectionStart: 25,
13
+ reflectionEnd: 75,
14
+ reflectionStretch: 1,
15
+ reflectionBlur: 0,
16
+ shadow: true,
17
+ shadowOffset: -4,
18
+ shadowOpacity: 0.5,
19
+ shadowBlur: 0,
20
+ shadowColor: "black",
21
+ shadowScaleX: 1.5,
22
+ shadowScaleY: 1,
23
+ shadowSize: 10
24
+ };
25
+ const varsResolver = core.createVarsResolver(
26
+ (_, {
27
+ reflectionDistance,
28
+ reflectionOpacity,
29
+ reflectionStart,
30
+ reflectionEnd,
31
+ reflectionStretch,
32
+ reflectionBlur,
33
+ shadowOffset,
34
+ shadowOpacity,
35
+ shadowBlur,
36
+ shadowColor,
37
+ shadowScaleX,
38
+ shadowScaleY,
39
+ shadowSize
40
+ }) => {
41
+ return {
42
+ root: {
43
+ "--shadow-offset": core.getSize(shadowOffset, "shadow-offset"),
44
+ "--shadow-opacity": shadowOpacity?.toString(),
45
+ "--shadow-blur": core.rem(shadowBlur),
46
+ "--shadow-color": shadowColor,
47
+ "--shadow-scale-x": shadowScaleX,
48
+ "--shadow-scale-y": shadowScaleY,
49
+ "--shadow-size": core.getSize(shadowSize, "shadow-size")
50
+ },
51
+ reflection: {
52
+ "--reflection-distance": core.getSize(reflectionDistance, "reflection-distance"),
53
+ "--reflection-opacity": reflectionOpacity.toString(),
54
+ "--reflection-start": (reflectionStart?.toString() || "25") + "%",
55
+ "--reflection-end": (reflectionEnd?.toString() || "75") + "%",
56
+ "--reflection-stretch": reflectionStretch?.toString() || "1",
57
+ "--reflection-blur": core.rem(reflectionBlur || 0)
58
+ }
59
+ };
60
+ }
61
+ );
62
+ const Reflection = core.polymorphicFactory((_props, ref) => {
63
+ const props = core.useProps("Reflection", defaultProps, _props);
64
+ const {
65
+ reflectionDistance,
66
+ reflectionOpacity,
67
+ reflectionStart,
68
+ reflectionEnd,
69
+ reflectionStretch,
70
+ reflectionBlur,
71
+ shadow,
72
+ shadowOffset,
73
+ shadowOpacity,
74
+ shadowBlur,
75
+ shadowColor,
76
+ shadowScaleX,
77
+ shadowScaleY,
78
+ shadowSize,
79
+ disableChildren,
80
+ classNames,
81
+ style,
82
+ styles,
83
+ unstyled,
84
+ vars,
85
+ children,
86
+ className,
87
+ ...others
88
+ } = props;
89
+ const getStyles = core.useStyles({
90
+ name: "Reflection",
91
+ props,
92
+ classes: Reflection_module,
93
+ className,
94
+ style,
95
+ classNames,
96
+ styles,
97
+ unstyled,
98
+ vars,
99
+ varsResolver
100
+ });
101
+ const childrenArray = React.Children.toArray(children);
102
+ if (childrenArray.length !== 1) {
103
+ throw new Error("Reflection component must have a children");
104
+ }
105
+ const DisabledRecursiveComponent = ({ children: children2 }) => {
106
+ if (!disableChildren) {
107
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, children2);
108
+ }
109
+ const setDisabledRecursive = (children3) => {
110
+ return React.Children.map(children3, (child) => {
111
+ if (React.isValidElement(child)) {
112
+ const updatedProps = {
113
+ ...child.props,
114
+ disabled: true
115
+ };
116
+ const updatedChildren2 = setDisabledRecursive(child.props.children);
117
+ return React.cloneElement(child, updatedProps, updatedChildren2);
118
+ }
119
+ return child;
120
+ });
121
+ };
122
+ const updatedChildren = setDisabledRecursive(children2);
123
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, updatedChildren);
124
+ };
125
+ return /* @__PURE__ */ React.createElement(core.Box, { ref, ...getStyles("root"), ...others, mod: { shadow } }, /* @__PURE__ */ React.createElement("div", null, children), /* @__PURE__ */ React.createElement("div", { ...getStyles("reflection") }, /* @__PURE__ */ React.createElement(DisabledRecursiveComponent, null, children)));
126
+ });
127
+ Reflection.classes = Reflection_module;
128
+ Reflection.displayName = "Reflection";
129
+
130
+ exports.Reflection = Reflection;
131
+ exports.defaultProps = defaultProps;
132
+ //# sourceMappingURL=Reflection.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Reflection.cjs","sources":["../../src/Reflection.tsx"],"sourcesContent":["import {\n Box,\n BoxProps,\n Factory,\n MantineSize,\n StylesApiProps,\n createVarsResolver,\n getSize,\n polymorphicFactory,\n rem,\n useProps,\n useStyles,\n} from '@mantine/core';\nimport React from 'react';\nimport classes from './Reflection.module.css';\n\nexport type ReflectionStylesNames = 'root' | 'reflection';\n\nexport type ReflectionCssVariables = {\n root: '--shadow-offset' | '--shadow-opacity' | '--shadow-blur' | '--shadow-color';\n reflection:\n | '--reflection-distance'\n | '--reflection-opacity'\n | '--reflection-start'\n | '--reflection-end'\n | '--reflection-stretch'\n | '--reflection-blur';\n};\n\nexport interface ReflectionBaseProps {\n /** Disable the children */\n disableChildren?: boolean;\n\n /** The distance of the reflection from the original element */\n reflectionDistance?: MantineSize | number | (string & {});\n\n /** The opacity of the reflection */\n reflectionOpacity?: number;\n\n /** The start of the reflection (gradient) */\n reflectionStart?: number;\n\n /** The end of the reflection (gradient) */\n reflectionEnd?: number;\n\n /** The stretch of the reflection. May you should adjust the `reflectionDistance` */\n reflectionStretch?: number;\n\n /** The blur of the reflection */\n reflectionBlur?: number;\n\n /** Shadow props */\n shadow?: boolean;\n\n /** The offset of the shadow */\n shadowOffset?: number;\n\n /** The opacity of the shadow */\n shadowOpacity?: number;\n\n /** The blur of the shadow */\n shadowBlur?: number;\n\n /** The color of the shadow */\n shadowColor?: string;\n\n /** The scale of the shadow in the x-axis */\n shadowScaleX?: number;\n\n /** The scale of the shadow in the y-axis */\n shadowScaleY?: number;\n\n /** The size of the shadow */\n shadowSize?: MantineSize | number | (string & {});\n\n /** Children to reflect */\n children?: React.ReactNode;\n}\n\nexport interface ReflectionProps\n extends BoxProps,\n ReflectionBaseProps,\n StylesApiProps<ReflectionFactory> {}\n\nexport type ReflectionFactory = Factory<{\n props: ReflectionProps;\n defaultComponent: 'div';\n defaultRef: HTMLDivElement;\n stylesNames: ReflectionStylesNames;\n vars: ReflectionCssVariables;\n}>;\n\nexport const defaultProps: Partial<ReflectionProps> = {\n disableChildren: false,\n reflectionDistance: 0,\n reflectionOpacity: 0.3,\n reflectionStart: 25,\n reflectionEnd: 75,\n reflectionStretch: 1,\n reflectionBlur: 0,\n shadow: true,\n shadowOffset: -4,\n shadowOpacity: 0.5,\n shadowBlur: 0,\n shadowColor: 'black',\n shadowScaleX: 1.5,\n shadowScaleY: 1,\n shadowSize: 10,\n};\n\nconst varsResolver = createVarsResolver<ReflectionFactory>(\n (\n _,\n {\n reflectionDistance,\n reflectionOpacity,\n reflectionStart,\n reflectionEnd,\n reflectionStretch,\n reflectionBlur,\n shadowOffset,\n shadowOpacity,\n shadowBlur,\n shadowColor,\n shadowScaleX,\n shadowScaleY,\n shadowSize,\n }\n ) => {\n return {\n root: {\n '--shadow-offset': getSize(shadowOffset, 'shadow-offset'),\n '--shadow-opacity': shadowOpacity?.toString(),\n '--shadow-blur': rem(shadowBlur),\n '--shadow-color': shadowColor,\n '--shadow-scale-x': shadowScaleX,\n '--shadow-scale-y': shadowScaleY,\n '--shadow-size': getSize(shadowSize, 'shadow-size'),\n },\n reflection: {\n '--reflection-distance': getSize(reflectionDistance, 'reflection-distance'),\n '--reflection-opacity': reflectionOpacity.toString() as string,\n '--reflection-start': ((reflectionStart?.toString() || '25') + '%') as string,\n '--reflection-end': ((reflectionEnd?.toString() || '75') + '%') as string,\n '--reflection-stretch': reflectionStretch?.toString() || '1',\n '--reflection-blur': rem(reflectionBlur || 0),\n },\n };\n }\n);\n\nimport { ReactNode } from 'react';\n\ntype DisabledRecursiveProps = {\n children: ReactNode;\n};\n\nexport const Reflection = polymorphicFactory<ReflectionFactory>((_props, ref) => {\n const props = useProps('Reflection', defaultProps, _props);\n const {\n reflectionDistance,\n reflectionOpacity,\n reflectionStart,\n reflectionEnd,\n reflectionStretch,\n reflectionBlur,\n\n shadow,\n shadowOffset,\n shadowOpacity,\n shadowBlur,\n shadowColor,\n\n shadowScaleX,\n shadowScaleY,\n shadowSize,\n\n disableChildren,\n\n classNames,\n style,\n styles,\n unstyled,\n vars,\n children,\n className,\n\n ...others\n } = props;\n\n const getStyles = useStyles<ReflectionFactory>({\n name: 'Reflection',\n props,\n classes,\n className,\n style,\n classNames,\n styles,\n unstyled,\n vars,\n varsResolver,\n });\n\n const childrenArray = React.Children.toArray(children);\n\n if (childrenArray.length !== 1) {\n throw new Error('Reflection component must have a children');\n }\n\n const DisabledRecursiveComponent = ({ children }: DisabledRecursiveProps) => {\n if (!disableChildren) {\n return <>{children}</>;\n }\n\n const setDisabledRecursive = (children: ReactNode): ReactNode => {\n return React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n const updatedProps = {\n ...child.props,\n disabled: true,\n };\n const updatedChildren = setDisabledRecursive(child.props.children);\n return React.cloneElement(child, updatedProps, updatedChildren);\n }\n return child;\n });\n };\n\n const updatedChildren = setDisabledRecursive(children);\n\n return <>{updatedChildren}</>;\n };\n\n return (\n <Box ref={ref} {...getStyles('root')} {...others} mod={{ shadow: shadow }}>\n <div>{children}</div>\n <div {...getStyles('reflection')}>\n <DisabledRecursiveComponent>{children}</DisabledRecursiveComponent>\n </div>\n </Box>\n );\n});\n\nReflection.classes = classes;\nReflection.displayName = 'Reflection';\n"],"names":["createVarsResolver","getSize","rem","polymorphicFactory","useProps","useStyles","classes","Box"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var classes = {"root":"me-5b265124","reflection":"me-c90002ed"};
5
+
6
+ module.exports = classes;
7
+ //# sourceMappingURL=Reflection.module.css.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Reflection.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
@@ -0,0 +1,9 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var Reflection = require('./Reflection.cjs');
5
+
6
+
7
+
8
+ exports.Reflection = Reflection.Reflection;
9
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -0,0 +1,129 @@
1
+ 'use client';
2
+ import { createVarsResolver, getSize, rem, polymorphicFactory, useProps, useStyles, Box } from '@mantine/core';
3
+ import React from 'react';
4
+ import classes from './Reflection.module.css.mjs';
5
+
6
+ const defaultProps = {
7
+ disableChildren: false,
8
+ reflectionDistance: 0,
9
+ reflectionOpacity: 0.3,
10
+ reflectionStart: 25,
11
+ reflectionEnd: 75,
12
+ reflectionStretch: 1,
13
+ reflectionBlur: 0,
14
+ shadow: true,
15
+ shadowOffset: -4,
16
+ shadowOpacity: 0.5,
17
+ shadowBlur: 0,
18
+ shadowColor: "black",
19
+ shadowScaleX: 1.5,
20
+ shadowScaleY: 1,
21
+ shadowSize: 10
22
+ };
23
+ const varsResolver = createVarsResolver(
24
+ (_, {
25
+ reflectionDistance,
26
+ reflectionOpacity,
27
+ reflectionStart,
28
+ reflectionEnd,
29
+ reflectionStretch,
30
+ reflectionBlur,
31
+ shadowOffset,
32
+ shadowOpacity,
33
+ shadowBlur,
34
+ shadowColor,
35
+ shadowScaleX,
36
+ shadowScaleY,
37
+ shadowSize
38
+ }) => {
39
+ return {
40
+ root: {
41
+ "--shadow-offset": getSize(shadowOffset, "shadow-offset"),
42
+ "--shadow-opacity": shadowOpacity?.toString(),
43
+ "--shadow-blur": rem(shadowBlur),
44
+ "--shadow-color": shadowColor,
45
+ "--shadow-scale-x": shadowScaleX,
46
+ "--shadow-scale-y": shadowScaleY,
47
+ "--shadow-size": getSize(shadowSize, "shadow-size")
48
+ },
49
+ reflection: {
50
+ "--reflection-distance": getSize(reflectionDistance, "reflection-distance"),
51
+ "--reflection-opacity": reflectionOpacity.toString(),
52
+ "--reflection-start": (reflectionStart?.toString() || "25") + "%",
53
+ "--reflection-end": (reflectionEnd?.toString() || "75") + "%",
54
+ "--reflection-stretch": reflectionStretch?.toString() || "1",
55
+ "--reflection-blur": rem(reflectionBlur || 0)
56
+ }
57
+ };
58
+ }
59
+ );
60
+ const Reflection = polymorphicFactory((_props, ref) => {
61
+ const props = useProps("Reflection", defaultProps, _props);
62
+ const {
63
+ reflectionDistance,
64
+ reflectionOpacity,
65
+ reflectionStart,
66
+ reflectionEnd,
67
+ reflectionStretch,
68
+ reflectionBlur,
69
+ shadow,
70
+ shadowOffset,
71
+ shadowOpacity,
72
+ shadowBlur,
73
+ shadowColor,
74
+ shadowScaleX,
75
+ shadowScaleY,
76
+ shadowSize,
77
+ disableChildren,
78
+ classNames,
79
+ style,
80
+ styles,
81
+ unstyled,
82
+ vars,
83
+ children,
84
+ className,
85
+ ...others
86
+ } = props;
87
+ const getStyles = useStyles({
88
+ name: "Reflection",
89
+ props,
90
+ classes,
91
+ className,
92
+ style,
93
+ classNames,
94
+ styles,
95
+ unstyled,
96
+ vars,
97
+ varsResolver
98
+ });
99
+ const childrenArray = React.Children.toArray(children);
100
+ if (childrenArray.length !== 1) {
101
+ throw new Error("Reflection component must have a children");
102
+ }
103
+ const DisabledRecursiveComponent = ({ children: children2 }) => {
104
+ if (!disableChildren) {
105
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, children2);
106
+ }
107
+ const setDisabledRecursive = (children3) => {
108
+ return React.Children.map(children3, (child) => {
109
+ if (React.isValidElement(child)) {
110
+ const updatedProps = {
111
+ ...child.props,
112
+ disabled: true
113
+ };
114
+ const updatedChildren2 = setDisabledRecursive(child.props.children);
115
+ return React.cloneElement(child, updatedProps, updatedChildren2);
116
+ }
117
+ return child;
118
+ });
119
+ };
120
+ const updatedChildren = setDisabledRecursive(children2);
121
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, updatedChildren);
122
+ };
123
+ return /* @__PURE__ */ React.createElement(Box, { ref, ...getStyles("root"), ...others, mod: { shadow } }, /* @__PURE__ */ React.createElement("div", null, children), /* @__PURE__ */ React.createElement("div", { ...getStyles("reflection") }, /* @__PURE__ */ React.createElement(DisabledRecursiveComponent, null, children)));
124
+ });
125
+ Reflection.classes = classes;
126
+ Reflection.displayName = "Reflection";
127
+
128
+ export { Reflection, defaultProps };
129
+ //# sourceMappingURL=Reflection.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Reflection.mjs","sources":["../../src/Reflection.tsx"],"sourcesContent":["import {\n Box,\n BoxProps,\n Factory,\n MantineSize,\n StylesApiProps,\n createVarsResolver,\n getSize,\n polymorphicFactory,\n rem,\n useProps,\n useStyles,\n} from '@mantine/core';\nimport React from 'react';\nimport classes from './Reflection.module.css';\n\nexport type ReflectionStylesNames = 'root' | 'reflection';\n\nexport type ReflectionCssVariables = {\n root: '--shadow-offset' | '--shadow-opacity' | '--shadow-blur' | '--shadow-color';\n reflection:\n | '--reflection-distance'\n | '--reflection-opacity'\n | '--reflection-start'\n | '--reflection-end'\n | '--reflection-stretch'\n | '--reflection-blur';\n};\n\nexport interface ReflectionBaseProps {\n /** Disable the children */\n disableChildren?: boolean;\n\n /** The distance of the reflection from the original element */\n reflectionDistance?: MantineSize | number | (string & {});\n\n /** The opacity of the reflection */\n reflectionOpacity?: number;\n\n /** The start of the reflection (gradient) */\n reflectionStart?: number;\n\n /** The end of the reflection (gradient) */\n reflectionEnd?: number;\n\n /** The stretch of the reflection. May you should adjust the `reflectionDistance` */\n reflectionStretch?: number;\n\n /** The blur of the reflection */\n reflectionBlur?: number;\n\n /** Shadow props */\n shadow?: boolean;\n\n /** The offset of the shadow */\n shadowOffset?: number;\n\n /** The opacity of the shadow */\n shadowOpacity?: number;\n\n /** The blur of the shadow */\n shadowBlur?: number;\n\n /** The color of the shadow */\n shadowColor?: string;\n\n /** The scale of the shadow in the x-axis */\n shadowScaleX?: number;\n\n /** The scale of the shadow in the y-axis */\n shadowScaleY?: number;\n\n /** The size of the shadow */\n shadowSize?: MantineSize | number | (string & {});\n\n /** Children to reflect */\n children?: React.ReactNode;\n}\n\nexport interface ReflectionProps\n extends BoxProps,\n ReflectionBaseProps,\n StylesApiProps<ReflectionFactory> {}\n\nexport type ReflectionFactory = Factory<{\n props: ReflectionProps;\n defaultComponent: 'div';\n defaultRef: HTMLDivElement;\n stylesNames: ReflectionStylesNames;\n vars: ReflectionCssVariables;\n}>;\n\nexport const defaultProps: Partial<ReflectionProps> = {\n disableChildren: false,\n reflectionDistance: 0,\n reflectionOpacity: 0.3,\n reflectionStart: 25,\n reflectionEnd: 75,\n reflectionStretch: 1,\n reflectionBlur: 0,\n shadow: true,\n shadowOffset: -4,\n shadowOpacity: 0.5,\n shadowBlur: 0,\n shadowColor: 'black',\n shadowScaleX: 1.5,\n shadowScaleY: 1,\n shadowSize: 10,\n};\n\nconst varsResolver = createVarsResolver<ReflectionFactory>(\n (\n _,\n {\n reflectionDistance,\n reflectionOpacity,\n reflectionStart,\n reflectionEnd,\n reflectionStretch,\n reflectionBlur,\n shadowOffset,\n shadowOpacity,\n shadowBlur,\n shadowColor,\n shadowScaleX,\n shadowScaleY,\n shadowSize,\n }\n ) => {\n return {\n root: {\n '--shadow-offset': getSize(shadowOffset, 'shadow-offset'),\n '--shadow-opacity': shadowOpacity?.toString(),\n '--shadow-blur': rem(shadowBlur),\n '--shadow-color': shadowColor,\n '--shadow-scale-x': shadowScaleX,\n '--shadow-scale-y': shadowScaleY,\n '--shadow-size': getSize(shadowSize, 'shadow-size'),\n },\n reflection: {\n '--reflection-distance': getSize(reflectionDistance, 'reflection-distance'),\n '--reflection-opacity': reflectionOpacity.toString() as string,\n '--reflection-start': ((reflectionStart?.toString() || '25') + '%') as string,\n '--reflection-end': ((reflectionEnd?.toString() || '75') + '%') as string,\n '--reflection-stretch': reflectionStretch?.toString() || '1',\n '--reflection-blur': rem(reflectionBlur || 0),\n },\n };\n }\n);\n\nimport { ReactNode } from 'react';\n\ntype DisabledRecursiveProps = {\n children: ReactNode;\n};\n\nexport const Reflection = polymorphicFactory<ReflectionFactory>((_props, ref) => {\n const props = useProps('Reflection', defaultProps, _props);\n const {\n reflectionDistance,\n reflectionOpacity,\n reflectionStart,\n reflectionEnd,\n reflectionStretch,\n reflectionBlur,\n\n shadow,\n shadowOffset,\n shadowOpacity,\n shadowBlur,\n shadowColor,\n\n shadowScaleX,\n shadowScaleY,\n shadowSize,\n\n disableChildren,\n\n classNames,\n style,\n styles,\n unstyled,\n vars,\n children,\n className,\n\n ...others\n } = props;\n\n const getStyles = useStyles<ReflectionFactory>({\n name: 'Reflection',\n props,\n classes,\n className,\n style,\n classNames,\n styles,\n unstyled,\n vars,\n varsResolver,\n });\n\n const childrenArray = React.Children.toArray(children);\n\n if (childrenArray.length !== 1) {\n throw new Error('Reflection component must have a children');\n }\n\n const DisabledRecursiveComponent = ({ children }: DisabledRecursiveProps) => {\n if (!disableChildren) {\n return <>{children}</>;\n }\n\n const setDisabledRecursive = (children: ReactNode): ReactNode => {\n return React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n const updatedProps = {\n ...child.props,\n disabled: true,\n };\n const updatedChildren = setDisabledRecursive(child.props.children);\n return React.cloneElement(child, updatedProps, updatedChildren);\n }\n return child;\n });\n };\n\n const updatedChildren = setDisabledRecursive(children);\n\n return <>{updatedChildren}</>;\n };\n\n return (\n <Box ref={ref} {...getStyles('root')} {...others} mod={{ shadow: shadow }}>\n <div>{children}</div>\n <div {...getStyles('reflection')}>\n <DisabledRecursiveComponent>{children}</DisabledRecursiveComponent>\n </div>\n </Box>\n );\n});\n\nReflection.classes = classes;\nReflection.displayName = 'Reflection';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ 'use client';
2
+ var classes = {"root":"me-5b265124","reflection":"me-c90002ed"};
3
+
4
+ export { classes as default };
5
+ //# sourceMappingURL=Reflection.module.css.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Reflection.module.css.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -0,0 +1,2 @@
1
+ export { Reflection } from './Reflection.mjs';
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ .me-5b265124{display:inline-block}.me-5b265124,.me-5b265124>:first-child{position:relative}.me-5b265124[data-shadow]>:first-child:after{background:radial-gradient(ellipse at center,var(--shadow-color,"black") 0,transparent 70%);bottom:var(--shadow-offset,0);content:"";filter:blur(var(--shadow-blur));height:var(--shadow-size,10);left:0;opacity:var(--shadow-opacity);position:absolute;transform:scaleX(var(--shadow-scale-x,1.1)) scaleY(var(--shadow-scale-y,1));width:100%;z-index:-1}.me-c90002ed{--reflection-distance-xs:calc(1.125rem*var(--mantine-scale));--reflection-distance-sm:calc(1.375rem*var(--mantine-scale));--reflection-distance-md:calc(1.75rem*var(--mantine-scale));--reflection-distance-lg:calc(2.125rem*var(--mantine-scale));--reflection-distance-xl:calc(2.75rem*var(--mantine-scale));filter:blur(var(--reflection-blur));-webkit-mask-image:linear-gradient(to bottom,transparent var(--reflection-start),#000 var(--reflection-end));mask-image:linear-gradient(to bottom,transparent var(--reflection-start),#000 var(--reflection-end));opacity:var(--reflection-opacity);pointer-events:none;position:absolute;top:calc(100% + var(--reflection-distance, 0));transform:scaleY(-1) scaleY(var(--reflection-stretch,1));z-index:-2}
@@ -0,0 +1 @@
1
+ @layer mantine {.me-5b265124{display:inline-block}.me-5b265124,.me-5b265124>:first-child{position:relative}.me-5b265124[data-shadow]>:first-child:after{background:radial-gradient(ellipse at center,var(--shadow-color,"black") 0,transparent 70%);bottom:var(--shadow-offset,0);content:"";filter:blur(var(--shadow-blur));height:var(--shadow-size,10);left:0;opacity:var(--shadow-opacity);position:absolute;transform:scaleX(var(--shadow-scale-x,1.1)) scaleY(var(--shadow-scale-y,1));width:100%;z-index:-1}.me-c90002ed{--reflection-distance-xs:calc(1.125rem*var(--mantine-scale));--reflection-distance-sm:calc(1.375rem*var(--mantine-scale));--reflection-distance-md:calc(1.75rem*var(--mantine-scale));--reflection-distance-lg:calc(2.125rem*var(--mantine-scale));--reflection-distance-xl:calc(2.75rem*var(--mantine-scale));filter:blur(var(--reflection-blur));-webkit-mask-image:linear-gradient(to bottom,transparent var(--reflection-start),#000 var(--reflection-end));mask-image:linear-gradient(to bottom,transparent var(--reflection-start),#000 var(--reflection-end));opacity:var(--reflection-opacity);pointer-events:none;position:absolute;top:calc(100% + var(--reflection-distance, 0));transform:scaleY(-1) scaleY(var(--reflection-stretch,1));z-index:-2}}
@@ -0,0 +1,72 @@
1
+ import { BoxProps, Factory, MantineSize, StylesApiProps } from '@mantine/core';
2
+ import React from 'react';
3
+ export type ReflectionStylesNames = 'root' | 'reflection';
4
+ export type ReflectionCssVariables = {
5
+ root: '--shadow-offset' | '--shadow-opacity' | '--shadow-blur' | '--shadow-color';
6
+ reflection: '--reflection-distance' | '--reflection-opacity' | '--reflection-start' | '--reflection-end' | '--reflection-stretch' | '--reflection-blur';
7
+ };
8
+ export interface ReflectionBaseProps {
9
+ /** Disable the children */
10
+ disableChildren?: boolean;
11
+ /** The distance of the reflection from the original element */
12
+ reflectionDistance?: MantineSize | number | (string & {});
13
+ /** The opacity of the reflection */
14
+ reflectionOpacity?: number;
15
+ /** The start of the reflection (gradient) */
16
+ reflectionStart?: number;
17
+ /** The end of the reflection (gradient) */
18
+ reflectionEnd?: number;
19
+ /** The stretch of the reflection. May you should adjust the `reflectionDistance` */
20
+ reflectionStretch?: number;
21
+ /** The blur of the reflection */
22
+ reflectionBlur?: number;
23
+ /** Shadow props */
24
+ shadow?: boolean;
25
+ /** The offset of the shadow */
26
+ shadowOffset?: number;
27
+ /** The opacity of the shadow */
28
+ shadowOpacity?: number;
29
+ /** The blur of the shadow */
30
+ shadowBlur?: number;
31
+ /** The color of the shadow */
32
+ shadowColor?: string;
33
+ /** The scale of the shadow in the x-axis */
34
+ shadowScaleX?: number;
35
+ /** The scale of the shadow in the y-axis */
36
+ shadowScaleY?: number;
37
+ /** The size of the shadow */
38
+ shadowSize?: MantineSize | number | (string & {});
39
+ /** Children to reflect */
40
+ children?: React.ReactNode;
41
+ }
42
+ export interface ReflectionProps extends BoxProps, ReflectionBaseProps, StylesApiProps<ReflectionFactory> {
43
+ }
44
+ export type ReflectionFactory = Factory<{
45
+ props: ReflectionProps;
46
+ defaultComponent: 'div';
47
+ defaultRef: HTMLDivElement;
48
+ stylesNames: ReflectionStylesNames;
49
+ vars: ReflectionCssVariables;
50
+ }>;
51
+ export declare const defaultProps: Partial<ReflectionProps>;
52
+ export declare const Reflection: (<C = "div">(props: import("@mantine/core/lib/core/factory/create-polymorphic-component").PolymorphicComponentProps<C, ReflectionProps>) => React.ReactElement<any, string | React.JSXElementConstructor<any>>) & Omit<React.FunctionComponent<(ReflectionProps & {
53
+ component?: any;
54
+ } & Omit<Omit<any, "ref">, keyof ReflectionProps | "component"> & {
55
+ ref?: any;
56
+ renderRoot?: (props: any) => any;
57
+ }) | (ReflectionProps & {
58
+ component: React.ElementType<any>;
59
+ renderRoot?: (props: Record<string, any>) => any;
60
+ })>, never> & import("@mantine/core/lib/core/factory/factory").ThemeExtend<{
61
+ props: ReflectionProps;
62
+ defaultComponent: 'div';
63
+ defaultRef: HTMLDivElement;
64
+ stylesNames: ReflectionStylesNames;
65
+ vars: ReflectionCssVariables;
66
+ }> & import("@mantine/core/lib/core/factory/factory").ComponentClasses<{
67
+ props: ReflectionProps;
68
+ defaultComponent: 'div';
69
+ defaultRef: HTMLDivElement;
70
+ stylesNames: ReflectionStylesNames;
71
+ vars: ReflectionCssVariables;
72
+ }>;
@@ -0,0 +1,2 @@
1
+ export { Reflection } from './Reflection';
2
+ export type { ReflectionBaseProps, ReflectionCssVariables, ReflectionFactory } from './Reflection';
@@ -0,0 +1,2 @@
1
+ export { Reflection } from './Reflection';
2
+ export type { ReflectionBaseProps, ReflectionCssVariables, ReflectionFactory } from './Reflection';
package/package.json ADDED
@@ -0,0 +1,46 @@
1
+ {
2
+ "name": "@gfazioli/mantine-reflection",
3
+ "version": "0.1.1",
4
+ "description": "Mantine Reflection is a React component that allows you to create a reflection effect on an image or any other component.",
5
+ "homepage": "https://gfazioli.github.io/mantine-reflection/",
6
+ "packageManager": "yarn@4.0.1",
7
+ "license": "MIT",
8
+ "author": "Giovambattista Fazioli <giovambattista.fazioli@gmail.com>",
9
+ "keywords": [
10
+ "extension",
11
+ "mantine",
12
+ "mirror",
13
+ "react",
14
+ "react-component",
15
+ "reflection",
16
+ "typescript"
17
+ ],
18
+ "main": "./dist/cjs/index.cjs",
19
+ "module": "./dist/esm/index.mjs",
20
+ "types": "./dist/types/index.d.ts",
21
+ "exports": {
22
+ ".": {
23
+ "import": {
24
+ "types": "./dist/types/index.d.mts",
25
+ "default": "./dist/esm/index.mjs"
26
+ },
27
+ "require": {
28
+ "types": "./dist/types/index.d.ts",
29
+ "default": "./dist/cjs/index.cjs"
30
+ }
31
+ },
32
+ "./styles.css": "./dist/styles.css",
33
+ "./styles.layer.css": "./dist/styles.layer.css"
34
+ },
35
+ "repository": "git+https://github.com/gfazioli/mantine-reflection.git",
36
+ "workspaces": [
37
+ "docs"
38
+ ],
39
+ "peerDependencies": {
40
+ "@mantine/core": ">=7.0.0",
41
+ "@mantine/hooks": ">=7.0.0",
42
+ "react": "^18.2.0",
43
+ "react-dom": "^18.2.0"
44
+ },
45
+ "bugs": "https://github.com/gfazioli/mantine-reflection/issues"
46
+ }