@uxf/ui 1.0.0-beta.97 → 1.0.0-beta.98
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/loader.css +11 -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/loader.css
ADDED
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;
|