ag-common 0.0.554 → 0.0.555
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/dist/ui/components/RadioGroup/DarkMode.d.ts +4 -8
- package/dist/ui/components/RadioGroup/DarkMode.js +43 -47
- package/dist/ui/components/RadioGroup/types.d.ts +5 -0
- package/dist/ui/components/RadioGroup/types.js +9 -0
- package/dist/ui/helpers/cookie/get.js +2 -2
- package/dist/ui/helpers/cookie/set.js +1 -1
- package/dist/ui/helpers/cookie/use.js +6 -2
- package/package.json +1 -1
|
@@ -1,17 +1,13 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
3
|
-
'dark' = 0,
|
|
4
|
-
'light' = 1,
|
|
5
|
-
'system' = 2
|
|
6
|
-
}
|
|
2
|
+
import { TDarkMode } from './types';
|
|
7
3
|
export interface IDarkMode {
|
|
8
|
-
|
|
9
|
-
default?: TDarkMode;
|
|
10
|
-
onSubmit: (p: TDarkMode) => void;
|
|
4
|
+
onSubmit?: (p: TDarkMode) => void;
|
|
11
5
|
/** default horiz */
|
|
12
6
|
mode?: 'vert' | 'horiz';
|
|
13
7
|
/** default 2.5rem */
|
|
14
8
|
iconSize?: string;
|
|
15
9
|
className?: string;
|
|
10
|
+
cookieDocument: string;
|
|
16
11
|
}
|
|
12
|
+
/** shows darkmode toggle. Persists to cookie, and modifies html classList with either dark-mode or light-mode */
|
|
17
13
|
export declare const DarkMode: (p: IDarkMode) => React.JSX.Element;
|
|
@@ -1,45 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
'use client';
|
|
3
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
-
if (k2 === undefined) k2 = k;
|
|
5
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
-
}
|
|
9
|
-
Object.defineProperty(o, k2, desc);
|
|
10
|
-
}) : (function(o, m, k, k2) {
|
|
11
|
-
if (k2 === undefined) k2 = k;
|
|
12
|
-
o[k2] = m[k];
|
|
13
|
-
}));
|
|
14
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
-
}) : function(o, v) {
|
|
17
|
-
o["default"] = v;
|
|
18
|
-
});
|
|
19
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
20
|
-
if (mod && mod.__esModule) return mod;
|
|
21
|
-
var result = {};
|
|
22
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
23
|
-
__setModuleDefault(result, mod);
|
|
24
|
-
return result;
|
|
25
|
-
};
|
|
26
3
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
27
4
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
28
5
|
};
|
|
29
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
-
exports.DarkMode =
|
|
7
|
+
exports.DarkMode = void 0;
|
|
31
8
|
const styled_1 = __importDefault(require("@emotion/styled"));
|
|
32
|
-
const react_1 =
|
|
9
|
+
const react_1 = __importDefault(require("react"));
|
|
10
|
+
const use_1 = require("../../helpers/cookie/use");
|
|
33
11
|
const icons_1 = require("../../icons");
|
|
34
12
|
const FlexColumn_1 = require("../FlexColumn");
|
|
35
13
|
const Icon_1 = require("../Icon");
|
|
36
14
|
const Base_1 = require("./Base");
|
|
37
|
-
|
|
38
|
-
(function (TDarkMode) {
|
|
39
|
-
TDarkMode[TDarkMode["dark"] = 0] = "dark";
|
|
40
|
-
TDarkMode[TDarkMode["light"] = 1] = "light";
|
|
41
|
-
TDarkMode[TDarkMode["system"] = 2] = "system";
|
|
42
|
-
})(TDarkMode || (exports.TDarkMode = TDarkMode = {}));
|
|
15
|
+
const types_1 = require("./types");
|
|
43
16
|
const IconStyled = (0, styled_1.default)(Icon_1.Icon) `
|
|
44
17
|
> svg {
|
|
45
18
|
height: 60%;
|
|
@@ -55,38 +28,61 @@ const Label = (0, styled_1.default)(FlexColumn_1.FlexColumn) `
|
|
|
55
28
|
const getColours = (p, vert) => {
|
|
56
29
|
const deg = vert ? '180deg' : '90deg';
|
|
57
30
|
switch (p) {
|
|
58
|
-
case TDarkMode.dark: {
|
|
31
|
+
case types_1.TDarkMode.dark: {
|
|
59
32
|
const d1 = 'rgba(173,128,227,1)';
|
|
60
33
|
const d2 = 'rgba(106,44,181,1)';
|
|
61
34
|
return [d1, `linear-gradient(${deg}, ${d1} 0%, ${d2} 76%)`];
|
|
62
35
|
}
|
|
63
|
-
case TDarkMode.light: {
|
|
36
|
+
case types_1.TDarkMode.light: {
|
|
64
37
|
const l1 = 'rgba(255,169,54,1)';
|
|
65
38
|
const l2 = 'rgba(255,189,100,1)';
|
|
66
39
|
return [l1, `linear-gradient(${deg}, ${l1} 0%, ${l2} 76%)`];
|
|
67
40
|
}
|
|
68
|
-
case TDarkMode.system: {
|
|
41
|
+
case types_1.TDarkMode.system: {
|
|
69
42
|
return ['green', 'green'];
|
|
70
43
|
}
|
|
71
44
|
}
|
|
72
45
|
};
|
|
73
|
-
const
|
|
74
|
-
{ mode: TDarkMode.dark, icon: icons_1.Moon },
|
|
75
|
-
{ mode: TDarkMode.system, icon: icons_1.Computer },
|
|
76
|
-
{ mode: TDarkMode.light, icon: icons_1.Sun },
|
|
46
|
+
const modes = [
|
|
47
|
+
{ mode: types_1.TDarkMode.dark, icon: icons_1.Moon },
|
|
48
|
+
{ mode: types_1.TDarkMode.system, icon: icons_1.Computer },
|
|
49
|
+
{ mode: types_1.TDarkMode.light, icon: icons_1.Sun },
|
|
77
50
|
];
|
|
51
|
+
/** shows darkmode toggle. Persists to cookie, and modifies html classList with either dark-mode or light-mode */
|
|
78
52
|
const DarkMode = (p) => {
|
|
79
53
|
const { iconSize = '2.5rem' } = p;
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
54
|
+
const [darkmode, setDarkmodeRaw] = (0, use_1.useCookie)({
|
|
55
|
+
defaultValue: types_1.TDarkMode.system,
|
|
56
|
+
name: 'darkmode',
|
|
57
|
+
cookieDocument: p.cookieDocument,
|
|
58
|
+
parse: (v) => Number(v),
|
|
59
|
+
stringify: (v) => v.toString(),
|
|
60
|
+
});
|
|
61
|
+
const index = modes.findIndex((d) => d.mode === darkmode);
|
|
62
|
+
const [fill, background] = getColours(modes[index].mode, p.mode === 'vert');
|
|
86
63
|
const twCalc = `calc(${iconSize} + ${iconSize} + ${iconSize} + 20px)`;
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
64
|
+
const setDarkmode = (newDarkMode) => {
|
|
65
|
+
var _a;
|
|
66
|
+
let className = '';
|
|
67
|
+
if (newDarkMode === types_1.TDarkMode.dark) {
|
|
68
|
+
className += 'dark-mode';
|
|
69
|
+
}
|
|
70
|
+
else if (newDarkMode === types_1.TDarkMode.light) {
|
|
71
|
+
className += 'light-mode';
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
className = '';
|
|
75
|
+
}
|
|
76
|
+
document.getElementsByTagName('html')[0].classList.remove('dark-mode');
|
|
77
|
+
document.getElementsByTagName('html')[0].classList.remove('light-mode');
|
|
78
|
+
if (className) {
|
|
79
|
+
document.getElementsByTagName('html')[0].classList.add(className);
|
|
80
|
+
}
|
|
81
|
+
setDarkmodeRaw(newDarkMode);
|
|
82
|
+
(_a = p.onSubmit) === null || _a === void 0 ? void 0 : _a.call(p, newDarkMode);
|
|
83
|
+
};
|
|
84
|
+
return (react_1.default.createElement(Base_1.RadioGroup, { className: p.className, mode: p.mode, values: modes, defaultIndex: index, onSubmit: ({ mode }) => {
|
|
85
|
+
setDarkmode(mode);
|
|
90
86
|
}, style: Object.assign({ background, border: `solid 2px ${fill}`, width: twCalc, height: iconSize }, (p.mode === 'vert' && {
|
|
91
87
|
width: iconSize,
|
|
92
88
|
height: twCalc,
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TDarkMode = void 0;
|
|
4
|
+
var TDarkMode;
|
|
5
|
+
(function (TDarkMode) {
|
|
6
|
+
TDarkMode[TDarkMode["dark"] = 0] = "dark";
|
|
7
|
+
TDarkMode[TDarkMode["light"] = 1] = "light";
|
|
8
|
+
TDarkMode[TDarkMode["system"] = 2] = "system";
|
|
9
|
+
})(TDarkMode || (exports.TDarkMode = TDarkMode = {}));
|
|
@@ -12,7 +12,7 @@ const raw_1 = require("./raw");
|
|
|
12
12
|
*/
|
|
13
13
|
function getCookieRawWrapper({ name, cookieDocument, defaultValue, parse: parseRaw, }) {
|
|
14
14
|
const parse = (s) => {
|
|
15
|
-
if (
|
|
15
|
+
if (s === undefined || s === null) {
|
|
16
16
|
return defaultValue;
|
|
17
17
|
}
|
|
18
18
|
if (parseRaw) {
|
|
@@ -28,7 +28,7 @@ function getCookieRawWrapper({ name, cookieDocument, defaultValue, parse: parseR
|
|
|
28
28
|
name: name + currentCount,
|
|
29
29
|
cookieDocument,
|
|
30
30
|
});
|
|
31
|
-
if (
|
|
31
|
+
if (newv === undefined || newv === null) {
|
|
32
32
|
break;
|
|
33
33
|
}
|
|
34
34
|
raw += newv;
|
|
@@ -5,6 +5,7 @@ const react_1 = require("react");
|
|
|
5
5
|
const get_1 = require("./get");
|
|
6
6
|
const set_1 = require("./set");
|
|
7
7
|
function useCookie(p) {
|
|
8
|
+
var _a;
|
|
8
9
|
const parse = (s) => {
|
|
9
10
|
if (!s) {
|
|
10
11
|
return p.defaultValue;
|
|
@@ -20,7 +21,7 @@ function useCookie(p) {
|
|
|
20
21
|
}
|
|
21
22
|
return JSON.stringify(s);
|
|
22
23
|
};
|
|
23
|
-
const [cookie, setCookie] = (0, react_1.useState)((0, get_1.getCookieRawWrapper)(Object.assign(Object.assign({}, p), { parse }))
|
|
24
|
+
const [cookie, setCookie] = (0, react_1.useState)((_a = (0, get_1.getCookieRawWrapper)(Object.assign(Object.assign({}, p), { parse }))) !== null && _a !== void 0 ? _a : p.defaultValue);
|
|
24
25
|
const setState = (valueRaw) => {
|
|
25
26
|
const value = (valueRaw instanceof Function ? valueRaw(cookie) : valueRaw);
|
|
26
27
|
(0, set_1.setCookieRawWrapper)(Object.assign(Object.assign({}, p), { stringify, value }));
|
|
@@ -29,7 +30,10 @@ function useCookie(p) {
|
|
|
29
30
|
return [cookie, setState];
|
|
30
31
|
}
|
|
31
32
|
exports.useCookie = useCookie;
|
|
32
|
-
const useCookieString = (p) =>
|
|
33
|
+
const useCookieString = (p) => {
|
|
34
|
+
var _a;
|
|
35
|
+
return useCookie(Object.assign(Object.assign({}, p), { parse: (s) => s !== null && s !== void 0 ? s : '', stringify: (s) => s, defaultValue: (_a = p.defaultValue) !== null && _a !== void 0 ? _a : '' }));
|
|
36
|
+
};
|
|
33
37
|
exports.useCookieString = useCookieString;
|
|
34
38
|
const useCookieNumber = (p) => useCookie(Object.assign(Object.assign({}, p), { parse: (s) => (!s ? undefined : Number.parseFloat(s)), stringify: (s) => (!s ? '' : s.toString()), defaultValue: p.defaultValue }));
|
|
35
39
|
exports.useCookieNumber = useCookieNumber;
|
package/package.json
CHANGED