@uni-design-system/uni-react 0.0.17 → 0.0.19

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/README.md +1 -1
  2. package/dist/cjs/components/button/button.component.js +1 -1
  3. package/dist/cjs/components/card/card.component.js +2 -1
  4. package/dist/cjs/components/grainy-gradient-background/grainy-gradient-background.component.d.ts +13 -0
  5. package/dist/cjs/components/grainy-gradient-background/grainy-gradient-background.component.js +42 -0
  6. package/dist/cjs/components/icon-text-row/icon-text-row.component.js +1 -1
  7. package/dist/cjs/components/switch/switch.component.d.ts +1 -1
  8. package/dist/cjs/core/background/background.component.d.ts +11 -5
  9. package/dist/cjs/core/background/background.component.js +13 -11
  10. package/dist/cjs/core/background/index.d.ts +1 -0
  11. package/dist/cjs/core/background/index.js +17 -0
  12. package/dist/cjs/core/container/container.component.d.ts +7 -2
  13. package/dist/cjs/core/container/container.component.js +29 -6
  14. package/dist/cjs/core/index.d.ts +1 -0
  15. package/dist/cjs/core/index.js +1 -0
  16. package/dist/cjs/core/text/text.component.d.ts +1 -1
  17. package/dist/cjs/core/text/text.component.js +34 -14
  18. package/dist/esm/components/button/button.component.js +1 -1
  19. package/dist/esm/components/card/card.component.js +2 -1
  20. package/dist/esm/components/grainy-gradient-background/grainy-gradient-background.component.d.ts +13 -0
  21. package/dist/esm/components/grainy-gradient-background/grainy-gradient-background.component.js +35 -0
  22. package/dist/esm/components/icon-text-row/icon-text-row.component.js +1 -1
  23. package/dist/esm/components/switch/switch.component.d.ts +1 -1
  24. package/dist/esm/core/background/background.component.d.ts +11 -5
  25. package/dist/esm/core/background/background.component.js +12 -10
  26. package/dist/esm/core/background/index.d.ts +1 -0
  27. package/dist/esm/core/background/index.js +1 -0
  28. package/dist/esm/core/container/container.component.d.ts +7 -2
  29. package/dist/esm/core/container/container.component.js +5 -3
  30. package/dist/esm/core/index.d.ts +1 -0
  31. package/dist/esm/core/index.js +1 -0
  32. package/dist/esm/core/text/text.component.d.ts +1 -1
  33. package/dist/esm/core/text/text.component.js +11 -11
  34. package/package.json +1 -1
  35. package/dist/cjs/core/theme/theme.context.d.ts +0 -9
  36. package/dist/cjs/core/theme/theme.context.js +0 -16
  37. package/dist/cjs/core/theme/theme.hook.d.ts +0 -5
  38. package/dist/cjs/core/theme/theme.hook.js +0 -53
  39. package/dist/cjs/core/theme/theme.provider.d.ts +0 -9
  40. package/dist/cjs/core/theme/theme.provider.js +0 -73
  41. package/dist/esm/core/theme/theme.context.d.ts +0 -9
  42. package/dist/esm/core/theme/theme.context.js +0 -11
  43. package/dist/esm/core/theme/theme.hook.d.ts +0 -5
  44. package/dist/esm/core/theme/theme.hook.js +0 -22
  45. package/dist/esm/core/theme/theme.provider.d.ts +0 -9
  46. package/dist/esm/core/theme/theme.provider.js +0 -43
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  <p align="center">
2
2
  <a href="https://uni-design-system.github.io/uni-react/" target="_blank">
3
- <img src="./.github/uni-logo.png" alt="UNI Design System">
3
+ <img src="https://github.com/uni-design-system/uni-react/raw/v0.0.17/.github/uni-logo.png" alt="UNI Design System">
4
4
  </a>
5
5
  </p>
6
6
 
@@ -62,7 +62,7 @@ const Button = (_a) => {
62
62
  setClick(true);
63
63
  onClick && onClick(event);
64
64
  };
65
- return (react_1.default.createElement("button", Object.assign({ onMouseDown: createRipple, onMouseEnter: () => setHover(true), onMouseLeave: () => setHover(false), onClick: handleClick, disabled: disabled, style: Object.assign(Object.assign({}, style), userStyle), ref: ref }, rest), iconName ? (react_1.default.createElement(icon_text_row_1.IconTextRow, { iconName: iconName, color: contentColor, textRole: "button" }, text || children)) : (react_1.default.createElement(core_1.Text, { align: "center", role: "button", color: contentColor }, text || children))));
65
+ return (react_1.default.createElement("button", Object.assign({ onMouseDown: createRipple, onMouseEnter: () => setHover(true), onMouseLeave: () => setHover(false), onClick: handleClick, disabled: disabled, style: Object.assign(Object.assign({}, style), userStyle), ref: ref }, rest), iconName ? (react_1.default.createElement(icon_text_row_1.IconTextRow, { iconName: iconName, color: contentColor, textRole: "button" }, text || children)) : (react_1.default.createElement(core_1.Text, { align: "center", role: "button", colorToken: contentColor }, text || children))));
66
66
  };
67
67
  exports.Button = Button;
68
68
  function Style(theme, buttonType, size = 'md', hover, disabled, click) {
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.Card = void 0;
18
18
  const react_1 = __importDefault(require("react"));
19
19
  const core_1 = require("../../core");
20
+ const container_component_1 = __importDefault(require("../../core/container/container.component"));
20
21
  function Card(_a) {
21
22
  var { children, cardType, elevation, colorToken = 'surface', width, height, borderRadius, style } = _a, rest = __rest(_a, ["children", "cardType", "elevation", "colorToken", "width", "height", "borderRadius", "style"]);
22
23
  const { colors, containers } = (0, core_1.useTheme)();
@@ -29,6 +30,6 @@ function Card(_a) {
29
30
  if (borderRadii && borderRadius !== 'none') {
30
31
  styles.borderRadius = borderRadii[borderRadius || 'md'];
31
32
  }
32
- return (react_1.default.createElement("div", Object.assign({ style: styles }, rest), children));
33
+ return (react_1.default.createElement(container_component_1.default, Object.assign({ colorToken: colorToken, style: styles }, rest), children));
33
34
  }
34
35
  exports.Card = Card;
@@ -0,0 +1,13 @@
1
+ import { ReactNode } from 'react';
2
+ import { Property } from 'csstype';
3
+ export interface GrainyGradientProps {
4
+ children?: ReactNode;
5
+ noiseFrequency?: number;
6
+ noiseOctaves?: number;
7
+ size?: number;
8
+ minHeight?: Property.MinHeight;
9
+ angle?: number;
10
+ gradientColor?: Property.Color;
11
+ backgroundColor?: Property.Color;
12
+ }
13
+ export declare const GrainyGradientBackground: ({ children, noiseFrequency, noiseOctaves, minHeight, size, angle, gradientColor, backgroundColor, }: GrainyGradientProps) => JSX.Element;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.GrainyGradientBackground = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const GrainyGradientBackground = ({ children, noiseFrequency = 0.65, noiseOctaves = 3, minHeight, size = 740, angle = 20, gradientColor = 'rebeccapurple', backgroundColor = 'moccasin', }) => {
9
+ const gradient = `linear-gradient(${angle}deg, ${gradientColor}, transparent)`;
10
+ const image = `url("data:image/svg+xml,%3Csvg viewBox='0 0 ${size} ${size}' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='${noiseFrequency}' numOctaves='${noiseOctaves}' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E")`;
11
+ const container = {};
12
+ const content = {
13
+ position: 'absolute',
14
+ width: '100%',
15
+ height: '100%',
16
+ };
17
+ const noise = {
18
+ filter: 'contrast(290%) brightness(1000%)',
19
+ background: gradient + ', ' + image,
20
+ minHeight,
21
+ };
22
+ const isolate = {
23
+ isolation: 'isolate',
24
+ position: 'absolute',
25
+ width: '100%',
26
+ height: '100%',
27
+ };
28
+ const overlay = {
29
+ position: 'absolute',
30
+ top: 0,
31
+ width: '100%',
32
+ height: '100%',
33
+ background: backgroundColor,
34
+ mixBlendMode: 'multiply',
35
+ };
36
+ return (react_1.default.createElement("div", { style: container },
37
+ react_1.default.createElement("div", { style: isolate },
38
+ react_1.default.createElement("div", { style: noise }),
39
+ react_1.default.createElement("div", { style: overlay })),
40
+ react_1.default.createElement("div", { style: content }, children)));
41
+ };
42
+ exports.GrainyGradientBackground = GrainyGradientBackground;
@@ -19,7 +19,7 @@ const IconTextRow = ({ iconName, color, align = 'left', text, textRole = 'title-
19
19
  }
20
20
  function RowText() {
21
21
  return (react_1.default.createElement("div", { style: Object.assign(Object.assign({}, core_1.expand), { paddingLeft: textMargin, paddingRight: textMargin }) },
22
- react_1.default.createElement(core_1.Text, { align: align, color: color, role: textRole }, text || children)));
22
+ react_1.default.createElement(core_1.Text, { align: align, colorToken: color, role: textRole }, text || children)));
23
23
  }
24
24
  function RowCenter() {
25
25
  return align === 'center' ? react_1.default.createElement("div", { style: Object.assign({}, core_1.expand) }) : null;
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import { Size } from '@uni-design-system/uni-core';
3
3
  export interface SwitchProps {
4
- size: Size;
4
+ size?: Size;
5
5
  on?: boolean;
6
6
  onChange?: (on: boolean) => void;
7
7
  }
@@ -1,9 +1,15 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { Property } from 'csstype';
3
- interface BackgroundProps {
3
+ export interface BackgroundProps {
4
+ className?: string;
4
5
  children?: ReactNode;
5
- image?: Property.BackgroundImage | undefined;
6
- gradiant?: Property.BackgroundImage | undefined;
6
+ image?: Property.BackgroundImage;
7
+ imageUrl?: string;
8
+ gradiant?: Property.BackgroundImage;
9
+ position?: Property.BackgroundPosition;
10
+ size?: Property.BackgroundSize;
11
+ attachment?: 'fixed' | 'local' | 'scroll';
12
+ minHeight?: Property.MinHeight;
13
+ color?: string;
7
14
  }
8
- export declare const Background: ({ children, image, gradiant }: BackgroundProps) => JSX.Element;
9
- export {};
15
+ export declare const Background: ({ children, image, imageUrl, gradiant, position, size, attachment, className, minHeight, color, }: BackgroundProps) => JSX.Element;
@@ -5,16 +5,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Background = void 0;
7
7
  const react_1 = __importDefault(require("react"));
8
- const theme_1 = require("../theme");
9
- const Background = ({ children, image, gradiant }) => {
10
- const theme = (0, theme_1.useTheme)();
11
- const style = BackgroundStyle({ theme, image, gradiant });
12
- return react_1.default.createElement("div", { style: style }, children);
13
- };
14
- exports.Background = Background;
15
- function BackgroundStyle({ image, gradiant, theme }) {
16
- return {
17
- backgroundColor: theme.colors.background,
8
+ const Background = ({ children, image, imageUrl, gradiant, position, size, attachment, className, minHeight, color, }) => {
9
+ if (!!imageUrl) {
10
+ image = `url(${imageUrl})`;
11
+ }
12
+ const style = {
13
+ backgroundColor: color,
18
14
  backgroundImage: image || gradiant,
15
+ backgroundPosition: position,
16
+ backgroundSize: size,
17
+ minHeight,
18
+ backgroundAttachment: attachment,
19
19
  };
20
- }
20
+ return (react_1.default.createElement("div", { className: className, style: style }, children));
21
+ };
22
+ exports.Background = Background;
@@ -0,0 +1 @@
1
+ export * from './background.component';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./background.component"), exports);
@@ -1,6 +1,11 @@
1
- import { CSSProperties, ReactNode } from 'react';
1
+ import React, { CSSProperties, ReactNode } from 'react';
2
+ import { ContainerColorToken } from '@uni-design-system/uni-core';
2
3
  export interface ContainerProps {
3
4
  children: ReactNode;
4
5
  style: CSSProperties;
6
+ colorToken?: ContainerColorToken;
5
7
  }
6
- export default function Container({ children, style, ...rest }: ContainerProps): JSX.Element;
8
+ export declare const ContainerContext: React.Context<{
9
+ colorToken?: ContainerColorToken | undefined;
10
+ }>;
11
+ export default function Container({ children, style, colorToken, ...rest }: ContainerProps): JSX.Element;
@@ -1,4 +1,27 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  var __rest = (this && this.__rest) || function (s, e) {
3
26
  var t = {};
4
27
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -10,13 +33,13 @@ var __rest = (this && this.__rest) || function (s, e) {
10
33
  }
11
34
  return t;
12
35
  };
13
- var __importDefault = (this && this.__importDefault) || function (mod) {
14
- return (mod && mod.__esModule) ? mod : { "default": mod };
15
- };
16
36
  Object.defineProperty(exports, "__esModule", { value: true });
17
- const react_1 = __importDefault(require("react"));
37
+ exports.ContainerContext = void 0;
38
+ const react_1 = __importStar(require("react"));
39
+ exports.ContainerContext = (0, react_1.createContext)({});
18
40
  function Container(_a) {
19
- var { children, style } = _a, rest = __rest(_a, ["children", "style"]);
20
- return (react_1.default.createElement("div", Object.assign({ style: style }, rest), children));
41
+ var { children, style, colorToken } = _a, rest = __rest(_a, ["children", "style", "colorToken"]);
42
+ return (react_1.default.createElement(exports.ContainerContext.Provider, { value: { colorToken } },
43
+ react_1.default.createElement("div", Object.assign({ style: style }, rest), children)));
21
44
  }
22
45
  exports.default = Container;
@@ -1,3 +1,4 @@
1
+ export * from './background';
1
2
  export * from './border';
2
3
  export * from './container';
3
4
  export * from './flex';
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./background"), exports);
17
18
  __exportStar(require("./border"), exports);
18
19
  __exportStar(require("./container"), exports);
19
20
  __exportStar(require("./flex"), exports);
@@ -6,6 +6,6 @@ export interface TextProps {
6
6
  align?: HorizontalAlign;
7
7
  role?: TextRole;
8
8
  scale?: Size;
9
- color?: ContentColorToken;
9
+ colorToken?: ContentColorToken;
10
10
  }
11
11
  export declare function Text(props: TextProps): JSX.Element;
@@ -1,30 +1,50 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
4
24
  };
5
25
  Object.defineProperty(exports, "__esModule", { value: true });
6
26
  exports.Text = void 0;
7
- const react_1 = __importDefault(require("react"));
27
+ const react_1 = __importStar(require("react"));
8
28
  const uni_core_1 = require("@uni-design-system/uni-core");
9
29
  const theme_1 = require("../theme");
30
+ const container_1 = require("../container");
10
31
  function Text(props) {
11
- const { text, children, align, role = 'body-1-long', color } = props;
12
- const theme = (0, theme_1.useTheme)();
13
- const style = Style(theme, align, role, color);
14
- return react_1.default.createElement("div", { style: style }, text || children);
15
- }
16
- exports.Text = Text;
17
- function Style(theme, textAlign, role, color) {
18
- const { fontSize, letterSpacing, lineHeight, fontWeight, fontFamily, fontStyle, textTransform } = theme.typography[role];
19
- return {
20
- color: theme.colors[color || 'on-background'],
32
+ const { text, children, align, role = 'body-1-long', colorToken: overridingColorToken } = props;
33
+ const { colors, typography } = (0, theme_1.useTheme)();
34
+ const { colorToken: containerColorToken } = (0, react_1.useContext)(container_1.ContainerContext);
35
+ const colorToken = containerColorToken ? `on-${containerColorToken}` : undefined;
36
+ const { fontSize, letterSpacing, lineHeight, fontWeight, fontFamily, fontStyle, textTransform } = typography[role];
37
+ const style = {
38
+ color: colors[overridingColorToken || colorToken || 'on-surface'],
21
39
  fontSize: fontSize + 'px',
22
40
  letterSpacing,
23
- textAlign,
41
+ textAlign: align,
24
42
  textTransform,
25
43
  lineHeight: lineHeight + 'px',
26
44
  fontFamily,
27
45
  fontStyle,
28
46
  fontWeight: uni_core_1.FontWeightMap[fontWeight],
29
47
  };
48
+ return react_1.default.createElement("div", { style: style }, text || children);
30
49
  }
50
+ exports.Text = Text;
@@ -33,7 +33,7 @@ export const Button = (_a) => {
33
33
  setClick(true);
34
34
  onClick && onClick(event);
35
35
  };
36
- return (React.createElement("button", Object.assign({ onMouseDown: createRipple, onMouseEnter: () => setHover(true), onMouseLeave: () => setHover(false), onClick: handleClick, disabled: disabled, style: Object.assign(Object.assign({}, style), userStyle), ref: ref }, rest), iconName ? (React.createElement(IconTextRow, { iconName: iconName, color: contentColor, textRole: "button" }, text || children)) : (React.createElement(Text, { align: "center", role: "button", color: contentColor }, text || children))));
36
+ return (React.createElement("button", Object.assign({ onMouseDown: createRipple, onMouseEnter: () => setHover(true), onMouseLeave: () => setHover(false), onClick: handleClick, disabled: disabled, style: Object.assign(Object.assign({}, style), userStyle), ref: ref }, rest), iconName ? (React.createElement(IconTextRow, { iconName: iconName, color: contentColor, textRole: "button" }, text || children)) : (React.createElement(Text, { align: "center", role: "button", colorToken: contentColor }, text || children))));
37
37
  };
38
38
  function Style(theme, buttonType, size = 'md', hover, disabled, click) {
39
39
  const { color, horizontalPadding, verticalPadding, borderColor, borderWidth, borderRadius, contentColor } = theme.buttons[buttonType];
@@ -11,6 +11,7 @@ var __rest = (this && this.__rest) || function (s, e) {
11
11
  };
12
12
  import React from 'react';
13
13
  import { BoxShadow, Padding, useTheme } from '../../core';
14
+ import Container from '../../core/container/container.component';
14
15
  export function Card(_a) {
15
16
  var { children, cardType, elevation, colorToken = 'surface', width, height, borderRadius, style } = _a, rest = __rest(_a, ["children", "cardType", "elevation", "colorToken", "width", "height", "borderRadius", "style"]);
16
17
  const { colors, containers } = useTheme();
@@ -23,5 +24,5 @@ export function Card(_a) {
23
24
  if (borderRadii && borderRadius !== 'none') {
24
25
  styles.borderRadius = borderRadii[borderRadius || 'md'];
25
26
  }
26
- return (React.createElement("div", Object.assign({ style: styles }, rest), children));
27
+ return (React.createElement(Container, Object.assign({ colorToken: colorToken, style: styles }, rest), children));
27
28
  }
@@ -0,0 +1,13 @@
1
+ import { ReactNode } from 'react';
2
+ import { Property } from 'csstype';
3
+ export interface GrainyGradientProps {
4
+ children?: ReactNode;
5
+ noiseFrequency?: number;
6
+ noiseOctaves?: number;
7
+ size?: number;
8
+ minHeight?: Property.MinHeight;
9
+ angle?: number;
10
+ gradientColor?: Property.Color;
11
+ backgroundColor?: Property.Color;
12
+ }
13
+ export declare const GrainyGradientBackground: ({ children, noiseFrequency, noiseOctaves, minHeight, size, angle, gradientColor, backgroundColor, }: GrainyGradientProps) => JSX.Element;
@@ -0,0 +1,35 @@
1
+ import React from 'react';
2
+ export const GrainyGradientBackground = ({ children, noiseFrequency = 0.65, noiseOctaves = 3, minHeight, size = 740, angle = 20, gradientColor = 'rebeccapurple', backgroundColor = 'moccasin', }) => {
3
+ const gradient = `linear-gradient(${angle}deg, ${gradientColor}, transparent)`;
4
+ const image = `url("data:image/svg+xml,%3Csvg viewBox='0 0 ${size} ${size}' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='${noiseFrequency}' numOctaves='${noiseOctaves}' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E")`;
5
+ const container = {};
6
+ const content = {
7
+ position: 'absolute',
8
+ width: '100%',
9
+ height: '100%',
10
+ };
11
+ const noise = {
12
+ filter: 'contrast(290%) brightness(1000%)',
13
+ background: gradient + ', ' + image,
14
+ minHeight,
15
+ };
16
+ const isolate = {
17
+ isolation: 'isolate',
18
+ position: 'absolute',
19
+ width: '100%',
20
+ height: '100%',
21
+ };
22
+ const overlay = {
23
+ position: 'absolute',
24
+ top: 0,
25
+ width: '100%',
26
+ height: '100%',
27
+ background: backgroundColor,
28
+ mixBlendMode: 'multiply',
29
+ };
30
+ return (React.createElement("div", { style: container },
31
+ React.createElement("div", { style: isolate },
32
+ React.createElement("div", { style: noise }),
33
+ React.createElement("div", { style: overlay })),
34
+ React.createElement("div", { style: content }, children)));
35
+ };
@@ -13,7 +13,7 @@ export const IconTextRow = ({ iconName, color, align = 'left', text, textRole =
13
13
  }
14
14
  function RowText() {
15
15
  return (React.createElement("div", { style: Object.assign(Object.assign({}, expand), { paddingLeft: textMargin, paddingRight: textMargin }) },
16
- React.createElement(Text, { align: align, color: color, role: textRole }, text || children)));
16
+ React.createElement(Text, { align: align, colorToken: color, role: textRole }, text || children)));
17
17
  }
18
18
  function RowCenter() {
19
19
  return align === 'center' ? React.createElement("div", { style: Object.assign({}, expand) }) : null;
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import { Size } from '@uni-design-system/uni-core';
3
3
  export interface SwitchProps {
4
- size: Size;
4
+ size?: Size;
5
5
  on?: boolean;
6
6
  onChange?: (on: boolean) => void;
7
7
  }
@@ -1,9 +1,15 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { Property } from 'csstype';
3
- interface BackgroundProps {
3
+ export interface BackgroundProps {
4
+ className?: string;
4
5
  children?: ReactNode;
5
- image?: Property.BackgroundImage | undefined;
6
- gradiant?: Property.BackgroundImage | undefined;
6
+ image?: Property.BackgroundImage;
7
+ imageUrl?: string;
8
+ gradiant?: Property.BackgroundImage;
9
+ position?: Property.BackgroundPosition;
10
+ size?: Property.BackgroundSize;
11
+ attachment?: 'fixed' | 'local' | 'scroll';
12
+ minHeight?: Property.MinHeight;
13
+ color?: string;
7
14
  }
8
- export declare const Background: ({ children, image, gradiant }: BackgroundProps) => JSX.Element;
9
- export {};
15
+ export declare const Background: ({ children, image, imageUrl, gradiant, position, size, attachment, className, minHeight, color, }: BackgroundProps) => JSX.Element;
@@ -1,13 +1,15 @@
1
1
  import React from 'react';
2
- import { useTheme } from '../theme';
3
- export const Background = ({ children, image, gradiant }) => {
4
- const theme = useTheme();
5
- const style = BackgroundStyle({ theme, image, gradiant });
6
- return React.createElement("div", { style: style }, children);
7
- };
8
- function BackgroundStyle({ image, gradiant, theme }) {
9
- return {
10
- backgroundColor: theme.colors.background,
2
+ export const Background = ({ children, image, imageUrl, gradiant, position, size, attachment, className, minHeight, color, }) => {
3
+ if (!!imageUrl) {
4
+ image = `url(${imageUrl})`;
5
+ }
6
+ const style = {
7
+ backgroundColor: color,
11
8
  backgroundImage: image || gradiant,
9
+ backgroundPosition: position,
10
+ backgroundSize: size,
11
+ minHeight,
12
+ backgroundAttachment: attachment,
12
13
  };
13
- }
14
+ return (React.createElement("div", { className: className, style: style }, children));
15
+ };
@@ -0,0 +1 @@
1
+ export * from './background.component';
@@ -0,0 +1 @@
1
+ export * from './background.component';
@@ -1,6 +1,11 @@
1
- import { CSSProperties, ReactNode } from 'react';
1
+ import React, { CSSProperties, ReactNode } from 'react';
2
+ import { ContainerColorToken } from '@uni-design-system/uni-core';
2
3
  export interface ContainerProps {
3
4
  children: ReactNode;
4
5
  style: CSSProperties;
6
+ colorToken?: ContainerColorToken;
5
7
  }
6
- export default function Container({ children, style, ...rest }: ContainerProps): JSX.Element;
8
+ export declare const ContainerContext: React.Context<{
9
+ colorToken?: ContainerColorToken | undefined;
10
+ }>;
11
+ export default function Container({ children, style, colorToken, ...rest }: ContainerProps): JSX.Element;
@@ -9,8 +9,10 @@ var __rest = (this && this.__rest) || function (s, e) {
9
9
  }
10
10
  return t;
11
11
  };
12
- import React from 'react';
12
+ import React, { createContext } from 'react';
13
+ export const ContainerContext = createContext({});
13
14
  export default function Container(_a) {
14
- var { children, style } = _a, rest = __rest(_a, ["children", "style"]);
15
- return (React.createElement("div", Object.assign({ style: style }, rest), children));
15
+ var { children, style, colorToken } = _a, rest = __rest(_a, ["children", "style", "colorToken"]);
16
+ return (React.createElement(ContainerContext.Provider, { value: { colorToken } },
17
+ React.createElement("div", Object.assign({ style: style }, rest), children)));
16
18
  }
@@ -1,3 +1,4 @@
1
+ export * from './background';
1
2
  export * from './border';
2
3
  export * from './container';
3
4
  export * from './flex';
@@ -1,3 +1,4 @@
1
+ export * from './background';
1
2
  export * from './border';
2
3
  export * from './container';
3
4
  export * from './flex';
@@ -6,6 +6,6 @@ export interface TextProps {
6
6
  align?: HorizontalAlign;
7
7
  role?: TextRole;
8
8
  scale?: Size;
9
- color?: ContentColorToken;
9
+ colorToken?: ContentColorToken;
10
10
  }
11
11
  export declare function Text(props: TextProps): JSX.Element;
@@ -1,23 +1,23 @@
1
- import React from 'react';
1
+ import React, { useContext } from 'react';
2
2
  import { FontWeightMap, } from '@uni-design-system/uni-core';
3
3
  import { useTheme } from '../theme';
4
+ import { ContainerContext } from '../container';
4
5
  export function Text(props) {
5
- const { text, children, align, role = 'body-1-long', color } = props;
6
- const theme = useTheme();
7
- const style = Style(theme, align, role, color);
8
- return React.createElement("div", { style: style }, text || children);
9
- }
10
- function Style(theme, textAlign, role, color) {
11
- const { fontSize, letterSpacing, lineHeight, fontWeight, fontFamily, fontStyle, textTransform } = theme.typography[role];
12
- return {
13
- color: theme.colors[color || 'on-background'],
6
+ const { text, children, align, role = 'body-1-long', colorToken: overridingColorToken } = props;
7
+ const { colors, typography } = useTheme();
8
+ const { colorToken: containerColorToken } = useContext(ContainerContext);
9
+ const colorToken = containerColorToken ? `on-${containerColorToken}` : undefined;
10
+ const { fontSize, letterSpacing, lineHeight, fontWeight, fontFamily, fontStyle, textTransform } = typography[role];
11
+ const style = {
12
+ color: colors[overridingColorToken || colorToken || 'on-surface'],
14
13
  fontSize: fontSize + 'px',
15
14
  letterSpacing,
16
- textAlign,
15
+ textAlign: align,
17
16
  textTransform,
18
17
  lineHeight: lineHeight + 'px',
19
18
  fontFamily,
20
19
  fontStyle,
21
20
  fontWeight: FontWeightMap[fontWeight],
22
21
  };
22
+ return React.createElement("div", { style: style }, text || children);
23
23
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uni-design-system/uni-react",
3
- "version": "0.0.17",
3
+ "version": "0.0.19",
4
4
  "description": "React component library for the UNI Design System.",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -1,9 +0,0 @@
1
- import React from 'react';
2
- import { Theme } from '@uni-design-system/uni-core';
3
- export interface ThemeContextProps {
4
- themeId?: string;
5
- themes?: Record<string, Theme>;
6
- switchTheme: (themeId: string) => void;
7
- }
8
- declare const ThemeContext: React.Context<ThemeContextProps>;
9
- export default ThemeContext;
@@ -1,16 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const react_1 = __importDefault(require("react"));
7
- const uni_core_1 = require("@uni-design-system/uni-core");
8
- const ThemeContext = react_1.default.createContext({
9
- themeId: 'LightTheme',
10
- themes: { LightTheme: uni_core_1.LightTheme },
11
- switchTheme: () => { },
12
- });
13
- if (process.env.NODE_ENV !== 'production') {
14
- ThemeContext.displayName = 'ThemeContext';
15
- }
16
- exports.default = ThemeContext;
@@ -1,5 +0,0 @@
1
- import { Theme } from '@uni-design-system/uni-core';
2
- export declare const useTheme: () => Theme;
3
- export declare const useSwitchTheme: () => {
4
- switchTheme: (themeId: string) => void;
5
- };
@@ -1,53 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.useSwitchTheme = exports.useTheme = void 0;
30
- const react_1 = __importStar(require("react"));
31
- const theme_context_1 = __importDefault(require("./theme.context"));
32
- const uni_core_1 = require("@uni-design-system/uni-core");
33
- const useTheme = () => {
34
- const { themeId, themes } = (0, react_1.useContext)(theme_context_1.default);
35
- let theme = themes && themeId ? themes[themeId] : uni_core_1.BaseTheme;
36
- (0, react_1.useEffect)(() => { }, [themeId]);
37
- if (process.env.NODE_ENV !== 'production') {
38
- // eslint-disable-next-line react-hooks/rules-of-hooks
39
- react_1.default.useDebugValue(theme);
40
- }
41
- (0, react_1.useEffect)(() => {
42
- console.log(themeId);
43
- theme = themes && themeId ? themes[themeId] : uni_core_1.BaseTheme;
44
- }, [themeId]);
45
- // return theme || LightTheme;
46
- return theme;
47
- };
48
- exports.useTheme = useTheme;
49
- const useSwitchTheme = () => {
50
- const { switchTheme } = (0, react_1.useContext)(theme_context_1.default);
51
- return { switchTheme };
52
- };
53
- exports.useSwitchTheme = useSwitchTheme;
@@ -1,9 +0,0 @@
1
- import React from 'react';
2
- import { Theme } from '@uni-design-system/uni-core';
3
- interface ThemeProviderProps {
4
- themeId?: string;
5
- themes?: Record<string, Theme>;
6
- children?: React.ReactChild;
7
- }
8
- export declare const ThemeProvider: ({ children, themeId, themes }: ThemeProviderProps) => JSX.Element;
9
- export {};
@@ -1,73 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- var __importDefault = (this && this.__importDefault) || function (mod) {
35
- return (mod && mod.__esModule) ? mod : { "default": mod };
36
- };
37
- Object.defineProperty(exports, "__esModule", { value: true });
38
- exports.ThemeProvider = void 0;
39
- const react_1 = __importStar(require("react"));
40
- const theme_context_1 = __importDefault(require("./theme.context"));
41
- const STORAGE_KEY = 'THEME_ID';
42
- const ThemeProvider = ({ children, themeId, themes }) => {
43
- const [_themeId, setThemeId] = (0, react_1.useState)(themeId);
44
- (0, react_1.useEffect)(() => {
45
- (() => __awaiter(void 0, void 0, void 0, function* () {
46
- const id = localStorage.getItem(STORAGE_KEY);
47
- setThemeId(id || themeId);
48
- }))();
49
- }, [themeId]);
50
- return (react_1.default.createElement(theme_context_1.default.Provider, { value: { themeId: _themeId, themes, switchTheme: setThemeId } }, _themeId ? children : null));
51
- };
52
- exports.ThemeProvider = ThemeProvider;
53
- /*export function withTheme(Component: ({children, theme, themes }: (any & ThemeProps)) => JSX.Element) {
54
-
55
- return (props: JSX.IntrinsicAttributes) => {
56
- const { themeId, setThemeId } = useContext(ThemeContext);
57
-
58
- const getTheme = (themeId: string) => themes[themeId];
59
- const setTheme = (themeId: string) => {
60
- localStorage.setItem(STORAGE_KEY, themeId);
61
- setThemeId(themeId);
62
- };
63
-
64
- return (
65
- <Component
66
- {...props}
67
- themes={Themes}
68
- theme={getTheme(themeId)}
69
- setTheme={setTheme}
70
- />
71
- );
72
- };
73
- }*/
@@ -1,9 +0,0 @@
1
- import React from 'react';
2
- import { Theme } from '@uni-design-system/uni-core';
3
- export interface ThemeContextProps {
4
- themeId?: string;
5
- themes?: Record<string, Theme>;
6
- switchTheme: (themeId: string) => void;
7
- }
8
- declare const ThemeContext: React.Context<ThemeContextProps>;
9
- export default ThemeContext;
@@ -1,11 +0,0 @@
1
- import React from 'react';
2
- import { LightTheme } from '@uni-design-system/uni-core';
3
- const ThemeContext = React.createContext({
4
- themeId: 'LightTheme',
5
- themes: { LightTheme },
6
- switchTheme: () => { },
7
- });
8
- if (process.env.NODE_ENV !== 'production') {
9
- ThemeContext.displayName = 'ThemeContext';
10
- }
11
- export default ThemeContext;
@@ -1,5 +0,0 @@
1
- import { Theme } from '@uni-design-system/uni-core';
2
- export declare const useTheme: () => Theme;
3
- export declare const useSwitchTheme: () => {
4
- switchTheme: (themeId: string) => void;
5
- };
@@ -1,22 +0,0 @@
1
- import React, { useContext, useEffect } from 'react';
2
- import ThemeContext from './theme.context';
3
- import { BaseTheme } from '@uni-design-system/uni-core';
4
- export const useTheme = () => {
5
- const { themeId, themes } = useContext(ThemeContext);
6
- let theme = themes && themeId ? themes[themeId] : BaseTheme;
7
- useEffect(() => { }, [themeId]);
8
- if (process.env.NODE_ENV !== 'production') {
9
- // eslint-disable-next-line react-hooks/rules-of-hooks
10
- React.useDebugValue(theme);
11
- }
12
- useEffect(() => {
13
- console.log(themeId);
14
- theme = themes && themeId ? themes[themeId] : BaseTheme;
15
- }, [themeId]);
16
- // return theme || LightTheme;
17
- return theme;
18
- };
19
- export const useSwitchTheme = () => {
20
- const { switchTheme } = useContext(ThemeContext);
21
- return { switchTheme };
22
- };
@@ -1,9 +0,0 @@
1
- import React from 'react';
2
- import { Theme } from '@uni-design-system/uni-core';
3
- interface ThemeProviderProps {
4
- themeId?: string;
5
- themes?: Record<string, Theme>;
6
- children?: React.ReactChild;
7
- }
8
- export declare const ThemeProvider: ({ children, themeId, themes }: ThemeProviderProps) => JSX.Element;
9
- export {};
@@ -1,43 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import React, { useEffect, useState } from 'react';
11
- import ThemeContext from './theme.context';
12
- const STORAGE_KEY = 'THEME_ID';
13
- export const ThemeProvider = ({ children, themeId, themes }) => {
14
- const [_themeId, setThemeId] = useState(themeId);
15
- useEffect(() => {
16
- (() => __awaiter(void 0, void 0, void 0, function* () {
17
- const id = localStorage.getItem(STORAGE_KEY);
18
- setThemeId(id || themeId);
19
- }))();
20
- }, [themeId]);
21
- return (React.createElement(ThemeContext.Provider, { value: { themeId: _themeId, themes, switchTheme: setThemeId } }, _themeId ? children : null));
22
- };
23
- /*export function withTheme(Component: ({children, theme, themes }: (any & ThemeProps)) => JSX.Element) {
24
-
25
- return (props: JSX.IntrinsicAttributes) => {
26
- const { themeId, setThemeId } = useContext(ThemeContext);
27
-
28
- const getTheme = (themeId: string) => themes[themeId];
29
- const setTheme = (themeId: string) => {
30
- localStorage.setItem(STORAGE_KEY, themeId);
31
- setThemeId(themeId);
32
- };
33
-
34
- return (
35
- <Component
36
- {...props}
37
- themes={Themes}
38
- theme={getTheme(themeId)}
39
- setTheme={setTheme}
40
- />
41
- );
42
- };
43
- }*/