@uxf/ui 1.0.0-beta.97 → 1.0.0-beta.99
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/color-scheme/color-scheme-defaults.d.ts +1 -1
- package/color-scheme/use-handle-color-scheme.d.ts +1 -1
- package/color-scheme/use-handle-color-scheme.js +3 -2
- package/color-scheme/use-toggle-color-scheme.js +17 -7
- package/css/flash-messages.css +8 -0
- package/css/loader.css +11 -0
- package/flash-messages/flash-messages.stories.js +17 -3
- package/flash-messages/theme.d.ts +2 -0
- package/loader/loader.d.ts +2 -0
- package/loader/loader.js +13 -0
- package/loader/loader.stories.d.ts +7 -0
- package/loader/loader.stories.js +21 -0
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ColorScheme } from "../types";
|
|
2
2
|
export declare const COLOR_SCHEME_DEFAULTS: {
|
|
3
3
|
readonly defaultColorScheme: "light";
|
|
4
|
-
readonly getUserSettings: () => ColorScheme;
|
|
4
|
+
readonly getUserSettings: () => ColorScheme | null;
|
|
5
5
|
readonly respectSystemSetting: true;
|
|
6
6
|
readonly respectUserSettings: true;
|
|
7
7
|
readonly setUserSettings: (colorScheme: ColorScheme) => void;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ColorScheme } from "../types";
|
|
2
2
|
export interface ColorSchemeOptions {
|
|
3
3
|
defaultColorScheme?: ColorScheme;
|
|
4
|
-
getUserSettings: () => ColorScheme;
|
|
4
|
+
getUserSettings: () => ColorScheme | null;
|
|
5
5
|
respectSystemSetting?: boolean;
|
|
6
6
|
respectUserSettings?: boolean;
|
|
7
7
|
setUserSettings: (colorScheme: ColorScheme) => void;
|
|
@@ -7,9 +7,10 @@ function useHandleColorScheme(props) {
|
|
|
7
7
|
const { defaultColorScheme = color_scheme_defaults_1.COLOR_SCHEME_DEFAULTS.defaultColorScheme, getUserSettings, respectSystemSetting, respectUserSettings, setUserSettings, } = props;
|
|
8
8
|
(0, react_1.useEffect)(() => {
|
|
9
9
|
const inverseColorScheme = defaultColorScheme === "light" ? "dark" : "light";
|
|
10
|
-
|
|
10
|
+
const userSettings = getUserSettings();
|
|
11
|
+
if ((respectUserSettings && userSettings === inverseColorScheme) ||
|
|
11
12
|
(respectSystemSetting &&
|
|
12
|
-
!
|
|
13
|
+
!userSettings &&
|
|
13
14
|
window.matchMedia(`(prefers-color-scheme: ${inverseColorScheme})`).matches)) {
|
|
14
15
|
document.body.classList.remove(defaultColorScheme);
|
|
15
16
|
document.body.classList.add(inverseColorScheme);
|
|
@@ -5,16 +5,26 @@ const isServer_1 = require("@uxf/core/utils/isServer");
|
|
|
5
5
|
const react_1 = require("react");
|
|
6
6
|
const context_1 = require("../context");
|
|
7
7
|
function useToggleColorScheme() {
|
|
8
|
-
const { getUserSettings, setUserSettings } = (0, context_1.useComponentContext)("colorScheme");
|
|
8
|
+
const { respectSystemSetting, respectUserSettings, getUserSettings, setUserSettings } = (0, context_1.useComponentContext)("colorScheme");
|
|
9
9
|
return (0, react_1.useCallback)(() => {
|
|
10
10
|
if (isServer_1.isServer) {
|
|
11
11
|
return;
|
|
12
12
|
}
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
const userSettings = getUserSettings();
|
|
14
|
+
let inverseColorScheme;
|
|
15
|
+
if (userSettings && respectUserSettings) {
|
|
16
|
+
document.body.classList.remove(userSettings);
|
|
17
|
+
inverseColorScheme = userSettings === "light" ? "dark" : "light";
|
|
18
|
+
}
|
|
19
|
+
else if (respectSystemSetting) {
|
|
20
|
+
const userColorScheme = window.matchMedia(`(prefers-color-scheme: dark)`).matches ? "dark" : "light";
|
|
21
|
+
document.body.classList.remove(userColorScheme);
|
|
22
|
+
inverseColorScheme = userColorScheme === "light" ? "dark" : "light";
|
|
23
|
+
}
|
|
24
|
+
if (inverseColorScheme) {
|
|
25
|
+
document.body.classList.add(inverseColorScheme);
|
|
26
|
+
setUserSettings(inverseColorScheme);
|
|
27
|
+
}
|
|
28
|
+
}, [getUserSettings, respectSystemSetting, respectUserSettings, setUserSettings]);
|
|
19
29
|
}
|
|
20
30
|
exports.useToggleColorScheme = useToggleColorScheme;
|
package/css/flash-messages.css
CHANGED
|
@@ -17,4 +17,12 @@
|
|
|
17
17
|
&--error {
|
|
18
18
|
@apply bg-error-500 is-hoverable:bg-error-700 text-white;
|
|
19
19
|
}
|
|
20
|
+
|
|
21
|
+
&--warning {
|
|
22
|
+
@apply bg-warning-500 is-hoverable:bg-warning-700 text-white;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
&--info {
|
|
26
|
+
@apply bg-gray-500 is-hoverable:bg-gray-700 text-white;
|
|
27
|
+
}
|
|
20
28
|
}
|
package/css/loader.css
ADDED
|
@@ -14,18 +14,32 @@ exports.default = {
|
|
|
14
14
|
component: flash_messages_1.FlashMessages,
|
|
15
15
|
};
|
|
16
16
|
function Default() {
|
|
17
|
-
return (react_1.default.createElement("div", { className: "light flex space-
|
|
17
|
+
return (react_1.default.createElement("div", { className: "light inline-flex flex-col space-y-4" },
|
|
18
18
|
react_1.default.createElement(button_1.Button, { onClick: () => (0, flash_messages_service_1.flashMessage)({
|
|
19
19
|
message: (react_1.default.createElement("div", { className: "flex items-center space-x-4" },
|
|
20
20
|
react_1.default.createElement(icon_1.Icon, { name: "check", size: 24 }),
|
|
21
21
|
react_1.default.createElement("span", null, "Everything is alright."))),
|
|
22
|
-
}) }, "Click to fire Flash message"),
|
|
22
|
+
}) }, "Click to fire Flash message, variant success"),
|
|
23
23
|
react_1.default.createElement(button_1.Button, { onClick: () => (0, flash_messages_service_1.flashMessage)({
|
|
24
24
|
message: (react_1.default.createElement("div", { className: "flex items-center space-x-4" },
|
|
25
25
|
react_1.default.createElement(icon_1.Icon, { name: "xmarkLarge", size: 24 }),
|
|
26
26
|
react_1.default.createElement("span", null, "Seems like an error occurred :)"))),
|
|
27
27
|
autoDismiss: false,
|
|
28
28
|
variant: "error",
|
|
29
|
-
}) }, "AutoDismiss: false Flash message, variant error")
|
|
29
|
+
}) }, "AutoDismiss: false Flash message, variant error"),
|
|
30
|
+
react_1.default.createElement(button_1.Button, { onClick: () => (0, flash_messages_service_1.flashMessage)({
|
|
31
|
+
message: (react_1.default.createElement("div", { className: "flex items-center space-x-4" },
|
|
32
|
+
react_1.default.createElement(icon_1.Icon, { name: "clock", size: 24 }),
|
|
33
|
+
react_1.default.createElement("span", null, "You should better watch out :)"))),
|
|
34
|
+
autoDismiss: false,
|
|
35
|
+
variant: "warning",
|
|
36
|
+
}) }, "Flash message, variant warning"),
|
|
37
|
+
react_1.default.createElement(button_1.Button, { onClick: () => (0, flash_messages_service_1.flashMessage)({
|
|
38
|
+
message: (react_1.default.createElement("div", { className: "flex items-center space-x-4" },
|
|
39
|
+
react_1.default.createElement(icon_1.Icon, { name: "check", size: 24 }),
|
|
40
|
+
react_1.default.createElement("span", null, "Just letting you know"))),
|
|
41
|
+
autoDismiss: false,
|
|
42
|
+
variant: "info",
|
|
43
|
+
}) }, "Flash message, variant info")));
|
|
30
44
|
}
|
|
31
45
|
exports.Default = Default;
|
package/loader/loader.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
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.Loader = void 0;
|
|
7
|
+
const cx_1 = require("@uxf/core/utils/cx");
|
|
8
|
+
const react_1 = __importDefault(require("react"));
|
|
9
|
+
const forwardRef_1 = require("@uxf/core/utils/forwardRef");
|
|
10
|
+
exports.Loader = (0, forwardRef_1.forwardRef)("Loader", (props, ref) => {
|
|
11
|
+
const loaderClassName = (0, cx_1.cx)("uxf-loader", props.className);
|
|
12
|
+
return react_1.default.createElement("span", { ref: ref, className: loaderClassName });
|
|
13
|
+
});
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
declare const _default: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
5
|
+
};
|
|
6
|
+
export default _default;
|
|
7
|
+
export declare function Default(): JSX.Element;
|
|
@@ -0,0 +1,21 @@
|
|
|
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.Default = void 0;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const loader_1 = require("./loader");
|
|
9
|
+
exports.default = {
|
|
10
|
+
title: "UI/Loader",
|
|
11
|
+
component: loader_1.Loader,
|
|
12
|
+
};
|
|
13
|
+
function Default() {
|
|
14
|
+
const loaders = (react_1.default.createElement(react_1.default.Fragment, null,
|
|
15
|
+
react_1.default.createElement(loader_1.Loader, null),
|
|
16
|
+
react_1.default.createElement(loader_1.Loader, { className: "h-6 w-6" })));
|
|
17
|
+
return (react_1.default.createElement("div", { className: "flex flex-col lg:flex-row" },
|
|
18
|
+
react_1.default.createElement("div", { className: "light space-y-4 space-x-4 rounded bg-white p-8" }, loaders),
|
|
19
|
+
react_1.default.createElement("div", { className: "dark space-y-4 space-x-4 rounded bg-gray-900 p-8 text-white" }, loaders)));
|
|
20
|
+
}
|
|
21
|
+
exports.Default = Default;
|