UNPKG

3.96 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5exports.__esModule = true;
6exports["default"] = exports.useAlertIconStyle = void 0;
7
8var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
10var _colorsUtils = require("../theme/colors-utils");
11
12var _ThemeProvider = require("../ThemeProvider");
13
14var _ColorModeProvider = require("../ColorModeProvider");
15
16function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
17
18function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
19
20var leftAccent = function leftAccent(props) {
21 var color = props.color;
22 return {
23 light: _objectSpread({
24 pl: 3
25 }, subtle(props).light, {
26 borderLeft: "4px",
27 borderColor: color + ".500"
28 }),
29 dark: _objectSpread({
30 pl: 3
31 }, subtle(props).dark, {
32 borderLeft: "4px",
33 borderColor: color + ".200"
34 })
35 };
36};
37
38var topAccent = function topAccent(props) {
39 var color = props.color;
40 return {
41 light: _objectSpread({
42 pt: 2
43 }, subtle(props).light, {
44 borderTop: "4px",
45 borderColor: color + ".500"
46 }),
47 dark: _objectSpread({
48 pt: 2
49 }, subtle(props).dark, {
50 borderTop: "4px",
51 borderColor: color + ".200"
52 })
53 };
54};
55
56var solid = function solid(_ref) {
57 var color = _ref.color;
58 return {
59 light: {
60 bg: color + ".500",
61 color: "white"
62 },
63 dark: {
64 bg: color + ".200",
65 color: "gray.900"
66 }
67 };
68};
69
70var subtle = function subtle(_ref2) {
71 var color = _ref2.color,
72 colors = _ref2.theme.colors;
73 var darkBg = colors[color] && colors[color][200];
74 return {
75 light: {
76 bg: color + ".100"
77 },
78 dark: {
79 bg: (0, _colorsUtils.colorEmphasis)(darkBg, "lowest")
80 }
81 };
82};
83
84var statusStyleProps = function statusStyleProps(props) {
85 switch (props.variant) {
86 case "solid":
87 return solid(props);
88
89 case "subtle":
90 return subtle(props);
91
92 case "top-accent":
93 return topAccent(props);
94
95 case "left-accent":
96 return leftAccent(props);
97
98 default:
99 return {};
100 }
101};
102
103var baseProps = {
104 display: "flex",
105 alignItems: "center",
106 position: "relative",
107 overflow: "hidden",
108 pl: 4,
109 pr: 4,
110 pt: 3,
111 pb: 3
112};
113
114var useAlertStyle = function useAlertStyle(props) {
115 var _useColorMode = (0, _ColorModeProvider.useColorMode)(),
116 colorMode = _useColorMode.colorMode;
117
118 var theme = (0, _ThemeProvider.useTheme)();
119
120 var _props = _objectSpread({}, props, {
121 theme: theme
122 });
123
124 return _objectSpread({}, baseProps, {}, statusStyleProps(_props)[colorMode]);
125};
126
127var useAlertIconStyle = function useAlertIconStyle(_ref3) {
128 var variant = _ref3.variant,
129 color = _ref3.color;
130
131 var _useColorMode2 = (0, _ColorModeProvider.useColorMode)(),
132 colorMode = _useColorMode2.colorMode;
133
134 if (["left-accent", "top-accent", "subtle"].includes(variant)) {
135 var result = {
136 light: {
137 color: color + ".500"
138 },
139 dark: {
140 color: color + ".200"
141 }
142 };
143 return result[colorMode];
144 }
145};
146
147exports.useAlertIconStyle = useAlertIconStyle;
148var _default = useAlertStyle;
149exports["default"] = _default;
\No newline at end of file