lupine.components 1.1.13 → 1.1.15
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/README.md +3 -3
- package/package.json +42 -42
- package/src/components/action-sheet.tsx +419 -419
- package/src/components/button-push-animation.tsx +147 -138
- package/src/components/button.tsx +55 -55
- package/src/components/desktop-footer.tsx +17 -17
- package/src/components/desktop-header.tsx +52 -52
- package/src/components/drag-refresh.tsx +129 -129
- package/src/components/editable-label.tsx +83 -83
- package/src/components/float-window.tsx +233 -233
- package/src/components/grid.tsx +18 -18
- package/src/components/html-load.tsx +41 -41
- package/src/components/html-var.tsx +81 -81
- package/src/components/index.ts +43 -44
- package/src/components/input-with-title.tsx +24 -24
- package/src/components/link-item.tsx +13 -13
- package/src/components/link-list.tsx +62 -62
- package/src/components/menu-bar.tsx +219 -219
- package/src/components/menu-item-props.tsx +13 -13
- package/src/components/menu-sidebar.tsx +325 -318
- package/src/components/message-box.tsx +44 -44
- package/src/components/meta-data.tsx +36 -36
- package/src/components/meta-description.tsx +12 -12
- package/src/components/mobile-components/icon-menu-item-props.ts +6 -6
- package/src/components/mobile-components/index.ts +8 -9
- package/src/components/mobile-components/mobile-footer-menu.tsx +95 -95
- package/src/components/mobile-components/mobile-header-component.tsx +101 -101
- package/src/components/mobile-components/mobile-header-title-icon.tsx +109 -101
- package/src/components/mobile-components/mobile-header-with-back.tsx +127 -117
- package/src/components/mobile-components/mobile-side-menu.tsx +154 -154
- package/src/components/mobile-components/mobile-top-sys-icon.tsx +18 -18
- package/src/components/mobile-components/mobile-top-sys-menu.tsx +62 -62
- package/src/components/modal.tsx +33 -33
- package/src/components/notice-message.tsx +118 -118
- package/src/components/page-title.tsx +6 -6
- package/src/components/paging-link.tsx +175 -175
- package/src/components/panel.tsx +21 -21
- package/src/components/popup-menu.tsx +289 -289
- package/src/components/progress.tsx +91 -91
- package/src/components/radio-label-component.tsx +36 -36
- package/src/components/redirect.tsx +19 -19
- package/src/components/resizable-splitter.tsx +128 -128
- package/src/components/select-angle-component.tsx +127 -127
- package/src/components/select-with-title.tsx +37 -37
- package/src/components/slide-tab-component.tsx +144 -149
- package/src/components/spinner.tsx +106 -100
- package/src/components/stars-component.tsx +66 -66
- package/src/components/svg.tsx +24 -24
- package/src/components/tabs.tsx +279 -279
- package/src/components/text-glow.tsx +37 -37
- package/src/components/text-scale.tsx +42 -42
- package/src/components/text-wave.tsx +55 -55
- package/src/components/theme-selector.tsx +28 -28
- package/src/components/toggle-base.tsx +285 -269
- package/src/components/toggle-switch.tsx +160 -160
- package/src/frames/index.ts +3 -3
- package/src/frames/responsive-frame.tsx +83 -83
- package/src/frames/slider-frame.tsx +111 -111
- package/src/frames/top-frame.tsx +30 -30
- package/src/index.ts +5 -5
- package/src/lib/back-action-helper.ts +54 -54
- package/src/lib/base62.ts +23 -23
- package/src/lib/blob-utils.ts +23 -23
- package/src/lib/calculate-text-width.ts +13 -13
- package/src/lib/date-utils.ts +317 -317
- package/src/lib/deep-merge.ts +37 -37
- package/src/lib/document-ready.ts +34 -34
- package/src/lib/dom-utils.ts +32 -32
- package/src/lib/download-file.ts +118 -118
- package/src/lib/download-link.ts +12 -12
- package/src/lib/download-stream.ts +19 -19
- package/src/lib/drag-util.ts +118 -118
- package/src/lib/dynamical-load.ts +134 -134
- package/src/lib/encode-html.ts +27 -27
- package/src/lib/find-parent-tag.ts +8 -8
- package/src/lib/format-bytes.ts +11 -11
- package/src/lib/index.ts +24 -24
- package/src/lib/lite-dom.ts +225 -225
- package/src/lib/message-hub.ts +103 -104
- package/src/lib/observable.ts +188 -188
- package/src/lib/path-utils.ts +42 -42
- package/src/lib/promise-timeout.ts +1 -1
- package/src/lib/simple-storage.ts +40 -40
- package/src/lib/stop-propagation.ts +7 -7
- package/src/lib/upload-file.ts +101 -101
- package/src/styles/base-themes.ts +17 -17
- package/src/styles/dark-themes.ts +99 -99
- package/src/styles/index.ts +5 -5
- package/src/styles/light-themes.ts +106 -106
- package/src/styles/media-query.ts +93 -93
- package/src/styles/shared-themes.ts +57 -57
- package/tsconfig.json +113 -113
package/src/lib/upload-file.ts
CHANGED
|
@@ -1,101 +1,101 @@
|
|
|
1
|
-
import { getRenderPageProps } from 'lupine.web';
|
|
2
|
-
import { NotificationColor, NotificationMessage } from '../components';
|
|
3
|
-
|
|
4
|
-
const _saveChunkSize = {
|
|
5
|
-
size: 1024 * 200,
|
|
6
|
-
};
|
|
7
|
-
export const setUploadChunkSize = (chunkSize: number) => {
|
|
8
|
-
_saveChunkSize.size = chunkSize;
|
|
9
|
-
};
|
|
10
|
-
export const getUploadChunkSize = () => {
|
|
11
|
-
return _saveChunkSize.size;
|
|
12
|
-
};
|
|
13
|
-
export const checkUploadedFileSize = async (uploadUrl: string) => {
|
|
14
|
-
let url = uploadUrl + (uploadUrl.indexOf('?') === -1 ? '?' : '') + '&check-size=1';
|
|
15
|
-
const json = await getRenderPageProps().renderPageFunctions.fetchData(url);
|
|
16
|
-
return json && json.json.size ? json.json.size : 0;
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
// should return { chunkNumber: number }
|
|
20
|
-
export const uploadFileChunk = async (
|
|
21
|
-
chunk: any,
|
|
22
|
-
chunkNumber: number,
|
|
23
|
-
totalChunks: number,
|
|
24
|
-
uploadUrl: string,
|
|
25
|
-
key: string,
|
|
26
|
-
retryCount = 3,
|
|
27
|
-
retryMessage = '' // can have ${tryCount}
|
|
28
|
-
) => {
|
|
29
|
-
let url = uploadUrl + (uploadUrl.indexOf('?') === -1 ? '?' : '');
|
|
30
|
-
url += `&chunkNumber=${chunkNumber.toString()}`;
|
|
31
|
-
url += `&totalChunks=${totalChunks.toString()}`;
|
|
32
|
-
if (key) {
|
|
33
|
-
url += `&key=${key}`;
|
|
34
|
-
}
|
|
35
|
-
let tryCount = 0;
|
|
36
|
-
let json;
|
|
37
|
-
while (tryCount < retryCount) {
|
|
38
|
-
try {
|
|
39
|
-
json = await getRenderPageProps().renderPageFunctions.fetchData(url, chunk);
|
|
40
|
-
if (json && json.json) {
|
|
41
|
-
json = json.json;
|
|
42
|
-
}
|
|
43
|
-
if (json && json.status) {
|
|
44
|
-
// ok or error
|
|
45
|
-
break;
|
|
46
|
-
}
|
|
47
|
-
} catch (error) {
|
|
48
|
-
console.log(`uploadFileChunk error, try: ${tryCount}`, error);
|
|
49
|
-
}
|
|
50
|
-
tryCount++;
|
|
51
|
-
if (retryMessage) {
|
|
52
|
-
NotificationMessage.sendMessage(
|
|
53
|
-
retryMessage.replace('${tryCount}', tryCount.toString()),
|
|
54
|
-
NotificationColor.Warning
|
|
55
|
-
);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
return json;
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
export const uploadFile = async (
|
|
62
|
-
file: File | string,
|
|
63
|
-
uploadUrl: string,
|
|
64
|
-
progressFn?: (percentage: number, chunkNumber: number, totalChunks: number) => void,
|
|
65
|
-
chunkSize = 0,
|
|
66
|
-
retryCount = 3,
|
|
67
|
-
retryMessage = '' // can have ${tryCount}
|
|
68
|
-
) => {
|
|
69
|
-
// const uploadedSize = await checkUploadedFileSize(uploadUrl);
|
|
70
|
-
let key = '';
|
|
71
|
-
const len = file instanceof File ? file.size : file.length;
|
|
72
|
-
if (!chunkSize) {
|
|
73
|
-
chunkSize = _saveChunkSize.size;
|
|
74
|
-
}
|
|
75
|
-
if (len <= chunkSize) {
|
|
76
|
-
const result = await uploadFileChunk(file, 0, 1, uploadUrl, key, retryCount, retryMessage);
|
|
77
|
-
if (!result || result.status !== 'ok') {
|
|
78
|
-
return result;
|
|
79
|
-
}
|
|
80
|
-
if (progressFn) {
|
|
81
|
-
progressFn(1, 0, len);
|
|
82
|
-
}
|
|
83
|
-
return true;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
const totalChunks = Math.ceil(len / chunkSize);
|
|
87
|
-
for (let i = 0; i < totalChunks; i++) {
|
|
88
|
-
const start = i * chunkSize;
|
|
89
|
-
const end = Math.min((i + 1) * chunkSize, len);
|
|
90
|
-
const chunk = file.slice(start, end);
|
|
91
|
-
const result = await uploadFileChunk(chunk, i, totalChunks, uploadUrl, key, retryCount, retryMessage);
|
|
92
|
-
if (!result || result.status !== 'ok') {
|
|
93
|
-
return result;
|
|
94
|
-
}
|
|
95
|
-
key = result.key;
|
|
96
|
-
if (progressFn) {
|
|
97
|
-
progressFn(Math.round(((i + 1) / totalChunks) * 100) / 100, i, totalChunks);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
return true;
|
|
101
|
-
};
|
|
1
|
+
import { getRenderPageProps } from 'lupine.web';
|
|
2
|
+
import { NotificationColor, NotificationMessage } from '../components';
|
|
3
|
+
|
|
4
|
+
const _saveChunkSize = {
|
|
5
|
+
size: 1024 * 200,
|
|
6
|
+
};
|
|
7
|
+
export const setUploadChunkSize = (chunkSize: number) => {
|
|
8
|
+
_saveChunkSize.size = chunkSize;
|
|
9
|
+
};
|
|
10
|
+
export const getUploadChunkSize = () => {
|
|
11
|
+
return _saveChunkSize.size;
|
|
12
|
+
};
|
|
13
|
+
export const checkUploadedFileSize = async (uploadUrl: string) => {
|
|
14
|
+
let url = uploadUrl + (uploadUrl.indexOf('?') === -1 ? '?' : '') + '&check-size=1';
|
|
15
|
+
const json = await getRenderPageProps().renderPageFunctions.fetchData(url);
|
|
16
|
+
return json && json.json.size ? json.json.size : 0;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
// should return { chunkNumber: number }
|
|
20
|
+
export const uploadFileChunk = async (
|
|
21
|
+
chunk: any,
|
|
22
|
+
chunkNumber: number,
|
|
23
|
+
totalChunks: number,
|
|
24
|
+
uploadUrl: string,
|
|
25
|
+
key: string,
|
|
26
|
+
retryCount = 3,
|
|
27
|
+
retryMessage = '' // can have ${tryCount}
|
|
28
|
+
) => {
|
|
29
|
+
let url = uploadUrl + (uploadUrl.indexOf('?') === -1 ? '?' : '');
|
|
30
|
+
url += `&chunkNumber=${chunkNumber.toString()}`;
|
|
31
|
+
url += `&totalChunks=${totalChunks.toString()}`;
|
|
32
|
+
if (key) {
|
|
33
|
+
url += `&key=${key}`;
|
|
34
|
+
}
|
|
35
|
+
let tryCount = 0;
|
|
36
|
+
let json;
|
|
37
|
+
while (tryCount < retryCount) {
|
|
38
|
+
try {
|
|
39
|
+
json = await getRenderPageProps().renderPageFunctions.fetchData(url, chunk);
|
|
40
|
+
if (json && json.json) {
|
|
41
|
+
json = json.json;
|
|
42
|
+
}
|
|
43
|
+
if (json && json.status) {
|
|
44
|
+
// ok or error
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
} catch (error) {
|
|
48
|
+
console.log(`uploadFileChunk error, try: ${tryCount}`, error);
|
|
49
|
+
}
|
|
50
|
+
tryCount++;
|
|
51
|
+
if (retryMessage) {
|
|
52
|
+
NotificationMessage.sendMessage(
|
|
53
|
+
retryMessage.replace('${tryCount}', tryCount.toString()),
|
|
54
|
+
NotificationColor.Warning
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return json;
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
export const uploadFile = async (
|
|
62
|
+
file: File | string,
|
|
63
|
+
uploadUrl: string,
|
|
64
|
+
progressFn?: (percentage: number, chunkNumber: number, totalChunks: number) => void,
|
|
65
|
+
chunkSize = 0,
|
|
66
|
+
retryCount = 3,
|
|
67
|
+
retryMessage = '' // can have ${tryCount}
|
|
68
|
+
) => {
|
|
69
|
+
// const uploadedSize = await checkUploadedFileSize(uploadUrl);
|
|
70
|
+
let key = '';
|
|
71
|
+
const len = file instanceof File ? file.size : file.length;
|
|
72
|
+
if (!chunkSize) {
|
|
73
|
+
chunkSize = _saveChunkSize.size;
|
|
74
|
+
}
|
|
75
|
+
if (len <= chunkSize) {
|
|
76
|
+
const result = await uploadFileChunk(file, 0, 1, uploadUrl, key, retryCount, retryMessage);
|
|
77
|
+
if (!result || result.status !== 'ok') {
|
|
78
|
+
return result;
|
|
79
|
+
}
|
|
80
|
+
if (progressFn) {
|
|
81
|
+
progressFn(1, 0, len);
|
|
82
|
+
}
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
const totalChunks = Math.ceil(len / chunkSize);
|
|
87
|
+
for (let i = 0; i < totalChunks; i++) {
|
|
88
|
+
const start = i * chunkSize;
|
|
89
|
+
const end = Math.min((i + 1) * chunkSize, len);
|
|
90
|
+
const chunk = file.slice(start, end);
|
|
91
|
+
const result = await uploadFileChunk(chunk, i, totalChunks, uploadUrl, key, retryCount, retryMessage);
|
|
92
|
+
if (!result || result.status !== 'ok') {
|
|
93
|
+
return result;
|
|
94
|
+
}
|
|
95
|
+
key = result.key;
|
|
96
|
+
if (progressFn) {
|
|
97
|
+
progressFn(Math.round(((i + 1) / totalChunks) * 100) / 100, i, totalChunks);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return true;
|
|
101
|
+
};
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { ThemesProps } from 'lupine.web';
|
|
2
|
-
import { darkThemes } from './dark-themes';
|
|
3
|
-
import { lightThemes } from './light-themes';
|
|
4
|
-
|
|
5
|
-
export const baseThemes: ThemesProps = {
|
|
6
|
-
light: lightThemes,
|
|
7
|
-
dark: darkThemes,
|
|
8
|
-
lightGreen: {
|
|
9
|
-
...lightThemes,
|
|
10
|
-
'--background-primary': '#d8ffe3', // Primary background
|
|
11
|
-
'--color-primary': '#303030', // Primary text color
|
|
12
|
-
backgroundPrimary: '', // Primary background
|
|
13
|
-
backgroundOnPrimary: '', // Background for surfaces on top of primary background
|
|
14
|
-
backgroundSecondary: '#f5f5f7', // Secondary background
|
|
15
|
-
backgroundOnSecondary: '#e5e5e7', // Background for surfaces on top of secondary background
|
|
16
|
-
},
|
|
17
|
-
};
|
|
1
|
+
import { ThemesProps } from 'lupine.web';
|
|
2
|
+
import { darkThemes } from './dark-themes';
|
|
3
|
+
import { lightThemes } from './light-themes';
|
|
4
|
+
|
|
5
|
+
export const baseThemes: ThemesProps = {
|
|
6
|
+
light: lightThemes,
|
|
7
|
+
dark: darkThemes,
|
|
8
|
+
lightGreen: {
|
|
9
|
+
...lightThemes,
|
|
10
|
+
'--background-primary': '#d8ffe3', // Primary background
|
|
11
|
+
'--color-primary': '#303030', // Primary text color
|
|
12
|
+
backgroundPrimary: '', // Primary background
|
|
13
|
+
backgroundOnPrimary: '', // Background for surfaces on top of primary background
|
|
14
|
+
backgroundSecondary: '#f5f5f7', // Secondary background
|
|
15
|
+
backgroundOnSecondary: '#e5e5e7', // Background for surfaces on top of secondary background
|
|
16
|
+
},
|
|
17
|
+
};
|
|
@@ -1,99 +1,99 @@
|
|
|
1
|
-
import { ThemeProps } from 'lupine.web';
|
|
2
|
-
import { sharedThemes } from './shared-themes';
|
|
3
|
-
|
|
4
|
-
export const darkThemes: ThemeProps = {
|
|
5
|
-
...sharedThemes,
|
|
6
|
-
'--theme-name': 'dark',
|
|
7
|
-
|
|
8
|
-
'--scrollbar-bg': '#1c1c1c',
|
|
9
|
-
'--scrollbar-thumb-bg': '#373636',
|
|
10
|
-
'--scrollbar-active-thumb-bg': '#5b5b5b',
|
|
11
|
-
|
|
12
|
-
'--primary-color': '#d8d8d8',
|
|
13
|
-
'--primary-color-disabled': '#7d7d7d',
|
|
14
|
-
'--primary-bg-color': '#000000',
|
|
15
|
-
'--primary-border-color': '#aeaeae',
|
|
16
|
-
'--primary-border': '1px solid var(--primary-border-color)',
|
|
17
|
-
'--primary-opacity': '0.5', // used for dark theme
|
|
18
|
-
'--primary-disabled-opacity': '0.7', // used for dark theme
|
|
19
|
-
'--primary-accent-color': '#1a588a', // used for radio and checkbox's background color
|
|
20
|
-
|
|
21
|
-
'--secondary-color': '#747474',
|
|
22
|
-
'--secondary-bg-color': '#1c1c1c',
|
|
23
|
-
'--secondary-border-color': '#494949',
|
|
24
|
-
'--secondary-border': '1px solid var(--secondary-border-color)',
|
|
25
|
-
|
|
26
|
-
// including menus, tabs
|
|
27
|
-
'--activatable-color-normal': 'var(--primary-color)',
|
|
28
|
-
'--activatable-bg-color-normal': 'var(--primary-bg-color)',
|
|
29
|
-
'--activatable-color-hover': '#e2e2e2',
|
|
30
|
-
'--activatable-bg-color-hover': '#6d6d6d',
|
|
31
|
-
'--activatable-color-selected': '#c2c2c2',
|
|
32
|
-
'--activatable-bg-color-selected': '#5d5d5d',
|
|
33
|
-
// '--menu-color-hover': '#303030',
|
|
34
|
-
// '--menu-color': 'var(--primary-color)', //'#2a2a2a',
|
|
35
|
-
// '--menu-bg-color': 'var(--primary-bg-color)', //'#2a2a2a',
|
|
36
|
-
// '--menu-bg-color-hover': '#a0a0a0',
|
|
37
|
-
'--menu-font-size': '1rem',
|
|
38
|
-
'--menubar-color': '#eeeeee',
|
|
39
|
-
'--menubar-bg-color': '#000000',
|
|
40
|
-
'--menubar-sub-bg-color': '#f9f9f9',
|
|
41
|
-
'--sidebar-color': 'var(--primary-color)',
|
|
42
|
-
'--sidebar-bg-color': '#000000',
|
|
43
|
-
// '--sidebar-sub-color': 'var(--sidebar-color)',
|
|
44
|
-
// '--sidebar-sub-bg-color': '#000000',
|
|
45
|
-
'--sidebar-border': '1px solid #303030',
|
|
46
|
-
// '--sidebar-hover-color': 'var(--sidebar-color)',
|
|
47
|
-
// '--sidebar-hover-bg-color': '#000000',
|
|
48
|
-
|
|
49
|
-
'--row-1-bg-color': '#212121',
|
|
50
|
-
'--row-2-bg-color': '#303030',
|
|
51
|
-
'--row-hover-bg-color': '#383838',
|
|
52
|
-
|
|
53
|
-
'--success-color': '#04AA6D',
|
|
54
|
-
'--info-color': '#2196F3',
|
|
55
|
-
'--warning-color': '#ff9800',
|
|
56
|
-
'--error-color': '#f44336',
|
|
57
|
-
'--success-bg-color': '#10553b',
|
|
58
|
-
'--info-bg-color': '#1a588a',
|
|
59
|
-
'--warning-bg-color': '#a36305',
|
|
60
|
-
'--error-bg-color': '#882c25',
|
|
61
|
-
'--notice-color-with-bg': '#ececec',
|
|
62
|
-
|
|
63
|
-
'--cover-mask-bg-color': '#878a9460',
|
|
64
|
-
'--cover-bg-color': '#202020',
|
|
65
|
-
// for dropdown-menu
|
|
66
|
-
'--cover-box-shadow': '1px 1px 4px #c6c6c6',
|
|
67
|
-
// for big block, deeper shadow arround, good for dark theme
|
|
68
|
-
'--cover-box-shadow-around': '#ffffff 0 0 6px 1px',
|
|
69
|
-
|
|
70
|
-
'--input-color': '#bdbdbd',
|
|
71
|
-
'--input-bg-color': '#000000',
|
|
72
|
-
'--input-box-shadow': '0px 0px 0px #000000, 1px 1px 0px 0px #50505045',
|
|
73
|
-
'--input-border-focus': '1px solid #0074d9',
|
|
74
|
-
|
|
75
|
-
'--button-color': '#bdbdbd',
|
|
76
|
-
'--button-bg': '-webkit-linear-gradient(top, #282828 0%, #212223 74%, #1a1a1a 100%)', // darker
|
|
77
|
-
'--button-bg-hover': '-webkit-linear-gradient(top, #282828 0%, #313233 74%, #252525 100%)', // darker
|
|
78
|
-
// '--button-bg': '-webkit-linear-gradient(top, #414141 0%, #373e48 74%, #434242 100%)',
|
|
79
|
-
'--button-border': '1px solid #373e48',
|
|
80
|
-
'--button-box-shadow': 'unset',
|
|
81
|
-
|
|
82
|
-
'--header-color': '#000080',
|
|
83
|
-
'--header-bg-color': '#000000',
|
|
84
|
-
|
|
85
|
-
// for setting-section
|
|
86
|
-
'--ss-group-color': 'var(--primary-color)',
|
|
87
|
-
'--ss-group-bg-color': '#232323',
|
|
88
|
-
'--ss-row-btn-color': '#eee',
|
|
89
|
-
'--ss-row-btn-bg-color': '#262626',
|
|
90
|
-
'--ss-row-btn-warn-color': 'red',
|
|
91
|
-
'--mobile-header-shadow': '0px -1px 4px 1px #848484',
|
|
92
|
-
|
|
93
|
-
// '--background-primary': '#353536', // Primary background
|
|
94
|
-
// '--color-primary': '#e0e0e0', // Primary text color
|
|
95
|
-
// backgroundPrimary: '', // Primary background
|
|
96
|
-
// backgroundOnPrimary: '', // Background for surfaces on top of primary background
|
|
97
|
-
// backgroundSecondary: '#f5f5f6', // Secondary background
|
|
98
|
-
// backgroundOnSecondary: '#e5e5e6', // Background for surfaces on top of secondary background
|
|
99
|
-
};
|
|
1
|
+
import { ThemeProps } from 'lupine.web';
|
|
2
|
+
import { sharedThemes } from './shared-themes';
|
|
3
|
+
|
|
4
|
+
export const darkThemes: ThemeProps = {
|
|
5
|
+
...sharedThemes,
|
|
6
|
+
'--theme-name': 'dark',
|
|
7
|
+
|
|
8
|
+
'--scrollbar-bg': '#1c1c1c',
|
|
9
|
+
'--scrollbar-thumb-bg': '#373636',
|
|
10
|
+
'--scrollbar-active-thumb-bg': '#5b5b5b',
|
|
11
|
+
|
|
12
|
+
'--primary-color': '#d8d8d8',
|
|
13
|
+
'--primary-color-disabled': '#7d7d7d',
|
|
14
|
+
'--primary-bg-color': '#000000',
|
|
15
|
+
'--primary-border-color': '#aeaeae',
|
|
16
|
+
'--primary-border': '1px solid var(--primary-border-color)',
|
|
17
|
+
'--primary-opacity': '0.5', // used for dark theme
|
|
18
|
+
'--primary-disabled-opacity': '0.7', // used for dark theme
|
|
19
|
+
'--primary-accent-color': '#1a588a', // used for radio and checkbox's background color
|
|
20
|
+
|
|
21
|
+
'--secondary-color': '#747474',
|
|
22
|
+
'--secondary-bg-color': '#1c1c1c',
|
|
23
|
+
'--secondary-border-color': '#494949',
|
|
24
|
+
'--secondary-border': '1px solid var(--secondary-border-color)',
|
|
25
|
+
|
|
26
|
+
// including menus, tabs
|
|
27
|
+
'--activatable-color-normal': 'var(--primary-color)',
|
|
28
|
+
'--activatable-bg-color-normal': 'var(--primary-bg-color)',
|
|
29
|
+
'--activatable-color-hover': '#e2e2e2',
|
|
30
|
+
'--activatable-bg-color-hover': '#6d6d6d',
|
|
31
|
+
'--activatable-color-selected': '#c2c2c2',
|
|
32
|
+
'--activatable-bg-color-selected': '#5d5d5d',
|
|
33
|
+
// '--menu-color-hover': '#303030',
|
|
34
|
+
// '--menu-color': 'var(--primary-color)', //'#2a2a2a',
|
|
35
|
+
// '--menu-bg-color': 'var(--primary-bg-color)', //'#2a2a2a',
|
|
36
|
+
// '--menu-bg-color-hover': '#a0a0a0',
|
|
37
|
+
'--menu-font-size': '1rem',
|
|
38
|
+
'--menubar-color': '#eeeeee',
|
|
39
|
+
'--menubar-bg-color': '#000000',
|
|
40
|
+
'--menubar-sub-bg-color': '#f9f9f9',
|
|
41
|
+
'--sidebar-color': 'var(--primary-color)',
|
|
42
|
+
'--sidebar-bg-color': '#000000',
|
|
43
|
+
// '--sidebar-sub-color': 'var(--sidebar-color)',
|
|
44
|
+
// '--sidebar-sub-bg-color': '#000000',
|
|
45
|
+
'--sidebar-border': '1px solid #303030',
|
|
46
|
+
// '--sidebar-hover-color': 'var(--sidebar-color)',
|
|
47
|
+
// '--sidebar-hover-bg-color': '#000000',
|
|
48
|
+
|
|
49
|
+
'--row-1-bg-color': '#212121',
|
|
50
|
+
'--row-2-bg-color': '#303030',
|
|
51
|
+
'--row-hover-bg-color': '#383838',
|
|
52
|
+
|
|
53
|
+
'--success-color': '#04AA6D',
|
|
54
|
+
'--info-color': '#2196F3',
|
|
55
|
+
'--warning-color': '#ff9800',
|
|
56
|
+
'--error-color': '#f44336',
|
|
57
|
+
'--success-bg-color': '#10553b',
|
|
58
|
+
'--info-bg-color': '#1a588a',
|
|
59
|
+
'--warning-bg-color': '#a36305',
|
|
60
|
+
'--error-bg-color': '#882c25',
|
|
61
|
+
'--notice-color-with-bg': '#ececec',
|
|
62
|
+
|
|
63
|
+
'--cover-mask-bg-color': '#878a9460',
|
|
64
|
+
'--cover-bg-color': '#202020',
|
|
65
|
+
// for dropdown-menu
|
|
66
|
+
'--cover-box-shadow': '1px 1px 4px #c6c6c6',
|
|
67
|
+
// for big block, deeper shadow arround, good for dark theme
|
|
68
|
+
'--cover-box-shadow-around': '#ffffff 0 0 6px 1px',
|
|
69
|
+
|
|
70
|
+
'--input-color': '#bdbdbd',
|
|
71
|
+
'--input-bg-color': '#000000',
|
|
72
|
+
'--input-box-shadow': '0px 0px 0px #000000, 1px 1px 0px 0px #50505045',
|
|
73
|
+
'--input-border-focus': '1px solid #0074d9',
|
|
74
|
+
|
|
75
|
+
'--button-color': '#bdbdbd',
|
|
76
|
+
'--button-bg': '-webkit-linear-gradient(top, #282828 0%, #212223 74%, #1a1a1a 100%)', // darker
|
|
77
|
+
'--button-bg-hover': '-webkit-linear-gradient(top, #282828 0%, #313233 74%, #252525 100%)', // darker
|
|
78
|
+
// '--button-bg': '-webkit-linear-gradient(top, #414141 0%, #373e48 74%, #434242 100%)',
|
|
79
|
+
'--button-border': '1px solid #373e48',
|
|
80
|
+
'--button-box-shadow': 'unset',
|
|
81
|
+
|
|
82
|
+
'--header-color': '#000080',
|
|
83
|
+
'--header-bg-color': '#000000',
|
|
84
|
+
|
|
85
|
+
// for setting-section
|
|
86
|
+
'--ss-group-color': 'var(--primary-color)',
|
|
87
|
+
'--ss-group-bg-color': '#232323',
|
|
88
|
+
'--ss-row-btn-color': '#eee',
|
|
89
|
+
'--ss-row-btn-bg-color': '#262626',
|
|
90
|
+
'--ss-row-btn-warn-color': 'red',
|
|
91
|
+
'--mobile-header-shadow': '0px -1px 4px 1px #848484',
|
|
92
|
+
|
|
93
|
+
// '--background-primary': '#353536', // Primary background
|
|
94
|
+
// '--color-primary': '#e0e0e0', // Primary text color
|
|
95
|
+
// backgroundPrimary: '', // Primary background
|
|
96
|
+
// backgroundOnPrimary: '', // Background for surfaces on top of primary background
|
|
97
|
+
// backgroundSecondary: '#f5f5f6', // Secondary background
|
|
98
|
+
// backgroundOnSecondary: '#e5e5e6', // Background for surfaces on top of secondary background
|
|
99
|
+
};
|
package/src/styles/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from './media-query';
|
|
2
|
-
export * from './shared-themes';
|
|
3
|
-
export * from './dark-themes';
|
|
4
|
-
export * from './light-themes';
|
|
5
|
-
export * from './base-themes';
|
|
1
|
+
export * from './media-query';
|
|
2
|
+
export * from './shared-themes';
|
|
3
|
+
export * from './dark-themes';
|
|
4
|
+
export * from './light-themes';
|
|
5
|
+
export * from './base-themes';
|