@bexis2/bexis2-core-ui 0.0.2 → 0.0.4
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/.eslintignore +13 -0
- package/.eslintrc.cjs +20 -0
- package/.prettierignore +13 -0
- package/.prettierrc +9 -0
- package/.vscode/settings.json +99 -0
- package/{TableView.svelte.d.ts → dist/TableView.svelte.d.ts} +23 -23
- package/{components → dist/components}/File/FileIcon.svelte.d.ts +23 -23
- package/{components → dist/components}/File/FileInfo.svelte.d.ts +27 -27
- package/dist/components/File/FileUploader.svelte +217 -0
- package/{components → dist/components}/File/FileUploader.svelte.d.ts +44 -27
- package/{components → dist/components}/ListView.svelte.d.ts +14 -14
- package/dist/components/Spinner/Spinner.svelte +8 -0
- package/dist/components/Spinner/Spinner.svelte.d.ts +23 -0
- package/dist/css/core.ui.postcss +2 -0
- package/{index.d.ts → dist/index.d.ts} +9 -9
- package/{index.js → dist/index.js} +9 -9
- package/{models → dist/models}/Models.d.ts +31 -31
- package/{models → dist/models}/Models.js +1 -1
- package/{services → dist/services}/Api.d.ts +7 -7
- package/{services → dist/services}/Api.js +44 -44
- package/{stores → dist/stores}/apistore.d.ts +4 -4
- package/{stores → dist/stores}/apistore.js +22 -22
- package/package.json +36 -167
- package/playwright.config.ts +11 -0
- package/postcss.config.cjs +6 -0
- package/src/app.d.ts +11 -0
- package/src/app.html +15 -0
- package/src/app.postcss +2 -0
- package/src/index.test.ts +7 -0
- package/src/lib/TableView.svelte +1 -0
- package/src/lib/components/File/FileIcon.svelte +49 -0
- package/src/lib/components/File/FileInfo.svelte +14 -0
- package/src/lib/components/File/FileUploader.svelte +217 -0
- package/src/lib/components/ListView.svelte +13 -0
- package/src/lib/components/Spinner/Spinner.svelte +8 -0
- package/src/lib/css/core.ui.postcss +2 -0
- package/src/lib/css/themes/theme-crimson.css +100 -0
- package/src/lib/css/themes/theme-gold-nouveau.css +140 -0
- package/src/lib/css/themes/theme-hamlindigo.css +111 -0
- package/src/lib/css/themes/theme-modern.css +127 -0
- package/src/lib/css/themes/theme-rocket.css +119 -0
- package/src/lib/css/themes/theme-sahara.css +128 -0
- package/src/lib/css/themes/theme-seafoam.css +121 -0
- package/src/lib/css/themes/theme-seasonal.css +115 -0
- package/src/lib/css/themes/theme-skeleton.css +118 -0
- package/src/lib/css/themes/theme-vintage.css +125 -0
- package/src/lib/index.ts +19 -0
- package/src/lib/models/Models.ts +39 -0
- package/src/lib/services/Api.ts +58 -0
- package/src/lib/stores/apistore.ts +32 -0
- package/src/routes/+layout.svelte +10 -0
- package/src/routes/+page.svelte +0 -0
- package/static/favicon.png +0 -0
- package/svelte.config.js +18 -0
- package/tailwind.config.cjs +9 -0
- package/tests/test.ts +6 -0
- package/tsconfig.json +19 -0
- package/vite.config.ts +9 -0
- package/components/File/FileUploader.svelte +0 -135
- /package/{TableView.svelte → dist/TableView.svelte} +0 -0
- /package/{components → dist/components}/File/FileIcon.svelte +0 -0
- /package/{components → dist/components}/File/FileInfo.svelte +0 -0
- /package/{components → dist/components}/ListView.svelte +0 -0
- /package/{themes → dist/css/themes}/theme-crimson.css +0 -0
- /package/{themes → dist/css/themes}/theme-gold-nouveau.css +0 -0
- /package/{themes → dist/css/themes}/theme-hamlindigo.css +0 -0
- /package/{themes → dist/css/themes}/theme-modern.css +0 -0
- /package/{themes → dist/css/themes}/theme-rocket.css +0 -0
- /package/{themes → dist/css/themes}/theme-sahara.css +0 -0
- /package/{themes → dist/css/themes}/theme-seafoam.css +0 -0
- /package/{themes → dist/css/themes}/theme-seasonal.css +0 -0
- /package/{themes → dist/css/themes}/theme-skeleton.css +0 -0
- /package/{themes → dist/css/themes}/theme-vintage.css +0 -0
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
<script type="ts">
|
|
2
|
+
|
|
3
|
+
import type { FileUploaderModel, FileInfo, Files} from '../../models/Models.js'
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
import DropZone from "svelte-file-dropzone/Dropzone.svelte";
|
|
7
|
+
import {Fa} from 'svelte-fa'
|
|
8
|
+
|
|
9
|
+
import Spinner from '../Spinner/Spinner.svelte';
|
|
10
|
+
import { createEventDispatcher } from 'svelte';
|
|
11
|
+
import { faTrash } from '@fortawesome/free-solid-svg-icons'
|
|
12
|
+
import { faSave } from '@fortawesome/free-regular-svg-icons'
|
|
13
|
+
import { faFileUpload } from '@fortawesome/free-solid-svg-icons'
|
|
14
|
+
|
|
15
|
+
import { Api } from '../../services/Api.js'
|
|
16
|
+
|
|
17
|
+
export let id=0;
|
|
18
|
+
export let version=1;
|
|
19
|
+
|
|
20
|
+
import { onMount } from 'svelte'
|
|
21
|
+
|
|
22
|
+
// export let description="";
|
|
23
|
+
// export let status=0;
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
//action to load fileupload model
|
|
27
|
+
export let start="";
|
|
28
|
+
//action to save selected file
|
|
29
|
+
export let submit="";
|
|
30
|
+
|
|
31
|
+
export let context="";
|
|
32
|
+
|
|
33
|
+
export let data:FileUploaderModel | undefined;
|
|
34
|
+
|
|
35
|
+
$:model= data;
|
|
36
|
+
$:submitBt ="submit";
|
|
37
|
+
|
|
38
|
+
let maxSize=0;
|
|
39
|
+
|
|
40
|
+
const dispatch = createEventDispatcher();
|
|
41
|
+
|
|
42
|
+
let fx:FileInfo[]
|
|
43
|
+
|
|
44
|
+
let files:Files = {accepted:[], rejected:[]};
|
|
45
|
+
$:files;
|
|
46
|
+
|
|
47
|
+
onMount(async () => {
|
|
48
|
+
|
|
49
|
+
console.log("fileupload - OnMount", data);
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
if(!data)
|
|
53
|
+
{
|
|
54
|
+
load();
|
|
55
|
+
}
|
|
56
|
+
else
|
|
57
|
+
{
|
|
58
|
+
model = data;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
if(model)
|
|
62
|
+
{
|
|
63
|
+
submitBt += context;
|
|
64
|
+
maxSize = (model.maxSize*1024)*1024
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
})
|
|
68
|
+
|
|
69
|
+
// load modal from server
|
|
70
|
+
async function load()
|
|
71
|
+
{
|
|
72
|
+
let url = start+"?id="+id+"&version="+version;
|
|
73
|
+
|
|
74
|
+
// load menu froms server
|
|
75
|
+
const res = await Api.get(url);
|
|
76
|
+
model = await res.json();
|
|
77
|
+
|
|
78
|
+
console.log("fileupload",model);
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
function handleFilesSelect(e:any) {
|
|
84
|
+
|
|
85
|
+
console.log("handleFilesSelect", e);
|
|
86
|
+
console.log("files", files);
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
const { acceptedFiles, fileRejections } = e.detail;
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
files.accepted = [...files.accepted, ...acceptedFiles];
|
|
93
|
+
files.rejected = [...files.rejected, ...fileRejections];
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
console.log("acceptedFiles", acceptedFiles);
|
|
97
|
+
console.log("files.accepted", files.accepted);
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
if(fileRejections.length>0)
|
|
101
|
+
{
|
|
102
|
+
//alert("the dropped file is not supported");
|
|
103
|
+
console.log("the dropped file is not supported.");
|
|
104
|
+
console.log(files.rejected);
|
|
105
|
+
|
|
106
|
+
let messages = [""];
|
|
107
|
+
|
|
108
|
+
for (let index = 0; index < fileRejections.length; index++) {
|
|
109
|
+
const element = fileRejections[index];
|
|
110
|
+
messages.push(getErrorMessage(element))
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
console.log(messages);
|
|
114
|
+
|
|
115
|
+
dispatch("error", {messages})
|
|
116
|
+
//list up the errors somewhere
|
|
117
|
+
files.rejected = []
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
if(acceptedFiles.length>0)
|
|
121
|
+
{
|
|
122
|
+
document.getElementById(submitBt)?.click();
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
function getErrorMessage(rejected)
|
|
128
|
+
{
|
|
129
|
+
let message = "";
|
|
130
|
+
message = rejected.file.path+" : ";
|
|
131
|
+
let errors = rejected.errors;
|
|
132
|
+
for (let index = 0; index < errors.length; index++) {
|
|
133
|
+
const error = errors[index];
|
|
134
|
+
message+=error.message
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
return message;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
async function handleSubmit() {
|
|
141
|
+
|
|
142
|
+
console.log("SUBMIT");
|
|
143
|
+
|
|
144
|
+
dispatch('submit')
|
|
145
|
+
|
|
146
|
+
let url = submit+"?id="+id;
|
|
147
|
+
|
|
148
|
+
// console.log(model);
|
|
149
|
+
// console.log(url);
|
|
150
|
+
console.log("SUBMIT");
|
|
151
|
+
|
|
152
|
+
if (files.accepted.length > 0) {
|
|
153
|
+
|
|
154
|
+
console.log(files);
|
|
155
|
+
|
|
156
|
+
const formData = new FormData();
|
|
157
|
+
formData.append("files","123");
|
|
158
|
+
// Looping over all files and add it to FormData object
|
|
159
|
+
for (var i = 0; i < files.accepted.length; i++) {
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
formData.append(files.accepted[i].name, files.accepted[i]);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
const response = await Api.post(url, formData);
|
|
167
|
+
|
|
168
|
+
if(response.status==200)
|
|
169
|
+
{
|
|
170
|
+
dispatch('submited');
|
|
171
|
+
|
|
172
|
+
let message = files.accepted.length +" is/are uploaded";
|
|
173
|
+
dispatch('success', {text:message})
|
|
174
|
+
|
|
175
|
+
files.accepted = [];
|
|
176
|
+
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
</script>
|
|
182
|
+
|
|
183
|
+
<form on:submit|preventDefault={handleSubmit}>
|
|
184
|
+
{#if model}
|
|
185
|
+
<!--if model exist -->
|
|
186
|
+
<div>
|
|
187
|
+
|
|
188
|
+
<DropZone
|
|
189
|
+
on:drop={handleFilesSelect}
|
|
190
|
+
accept={model.accept}
|
|
191
|
+
multiple={model.multiple}
|
|
192
|
+
{maxSize}>
|
|
193
|
+
|
|
194
|
+
<b style="font-size:xx-large"><Fa icon={faFileUpload}/></b>
|
|
195
|
+
<span><b>Drag 'n' drop some files here, or click to select files</b>
|
|
196
|
+
<b>max file : {model.maxSize} mb</b></span>
|
|
197
|
+
<p>
|
|
198
|
+
{#if model.accept}
|
|
199
|
+
{#each model.accept as ext}
|
|
200
|
+
{ext} ,
|
|
201
|
+
{/each}
|
|
202
|
+
{/if}
|
|
203
|
+
</p>
|
|
204
|
+
</DropZone>
|
|
205
|
+
|
|
206
|
+
</div>
|
|
207
|
+
|
|
208
|
+
<button id="{submitBt}" color="primary" style="display:none" ><Fa icon={faSave}/></button>
|
|
209
|
+
|
|
210
|
+
{:else} <!-- while data is not loaded show a loading information -->
|
|
211
|
+
|
|
212
|
+
<Spinner/>
|
|
213
|
+
{/if}
|
|
214
|
+
|
|
215
|
+
</form>
|
|
216
|
+
|
|
217
|
+
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<div
|
|
2
|
+
class="inline-block h-8 w-8 animate-spin rounded-full border-4 border-solid border-current border-r-transparent align-[-0.125em] motion-reduce:animate-[spin_1.5s_linear_infinite]"
|
|
3
|
+
role="status">
|
|
4
|
+
<span
|
|
5
|
+
class="!absolute !-m-px !h-px !w-px !overflow-hidden !whitespace-nowrap !border-0 !p-0 ![clip:rect(0,0,0,0)]"
|
|
6
|
+
>Loading...</span
|
|
7
|
+
>
|
|
8
|
+
</div>
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/* =~= Crimson Theme - made by GitHub user @ak4zh for the Skeleton community theme contest. =~= */
|
|
2
|
+
/* https://github.com/skeletonlabs/skeleton/discussions/401 */
|
|
3
|
+
|
|
4
|
+
:root {
|
|
5
|
+
/* =~= Theme Styles =~= */
|
|
6
|
+
--theme-font-family-base: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,
|
|
7
|
+
'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
|
|
8
|
+
--theme-font-family-heading: system-ui;
|
|
9
|
+
--theme-font-color-base: var(--color-surface-900);
|
|
10
|
+
--theme-font-color-dark: var(--color-surface-50);
|
|
11
|
+
--theme-rounded-base: 24px;
|
|
12
|
+
--theme-rounded-container: 24px;
|
|
13
|
+
--theme-border-base: 1px;
|
|
14
|
+
/* =~= Theme On-X Colors =~= */
|
|
15
|
+
--on-primary: 255 255 255;
|
|
16
|
+
--on-secondary: 255 255 255;
|
|
17
|
+
--on-tertiary: 0 0 0;
|
|
18
|
+
--on-success: 0 0 0;
|
|
19
|
+
--on-warning: 0 0 0;
|
|
20
|
+
--on-error: 0 0 0;
|
|
21
|
+
--on-surface: 255 255 255;
|
|
22
|
+
/* =~= Theme Colors =~= */
|
|
23
|
+
/* primary | #d4163c */
|
|
24
|
+
--color-primary-50: 249 220 226; /* ⬅ #f9dce2 */
|
|
25
|
+
--color-primary-100: 246 208 216; /* ⬅ #f6d0d8 */
|
|
26
|
+
--color-primary-200: 244 197 206; /* ⬅ #f4c5ce */
|
|
27
|
+
--color-primary-300: 238 162 177; /* ⬅ #eea2b1 */
|
|
28
|
+
--color-primary-400: 225 92 119; /* ⬅ #e15c77 */
|
|
29
|
+
--color-primary-500: 212 22 60; /* ⬅ #d4163c */
|
|
30
|
+
--color-primary-600: 191 20 54; /* ⬅ #bf1436 */
|
|
31
|
+
--color-primary-700: 159 17 45; /* ⬅ #9f112d */
|
|
32
|
+
--color-primary-800: 127 13 36; /* ⬅ #7f0d24 */
|
|
33
|
+
--color-primary-900: 104 11 29; /* ⬅ #680b1d */
|
|
34
|
+
/* secondary | #4685af */
|
|
35
|
+
--color-secondary-50: 227 237 243; /* ⬅ #e3edf3 */
|
|
36
|
+
--color-secondary-100: 218 231 239; /* ⬅ #dae7ef */
|
|
37
|
+
--color-secondary-200: 209 225 235; /* ⬅ #d1e1eb */
|
|
38
|
+
--color-secondary-300: 181 206 223; /* ⬅ #b5cedf */
|
|
39
|
+
--color-secondary-400: 126 170 199; /* ⬅ #7eaac7 */
|
|
40
|
+
--color-secondary-500: 70 133 175; /* ⬅ #4685af */
|
|
41
|
+
--color-secondary-600: 63 120 158; /* ⬅ #3f789e */
|
|
42
|
+
--color-secondary-700: 53 100 131; /* ⬅ #356483 */
|
|
43
|
+
--color-secondary-800: 42 80 105; /* ⬅ #2a5069 */
|
|
44
|
+
--color-secondary-900: 34 65 86; /* ⬅ #224156 */
|
|
45
|
+
/* tertiary | #c0b6b4 */
|
|
46
|
+
--color-tertiary-50: 246 244 244; /* ⬅ #f6f4f4 */
|
|
47
|
+
--color-tertiary-100: 242 240 240; /* ⬅ #f2f0f0 */
|
|
48
|
+
--color-tertiary-200: 239 237 236; /* ⬅ #efedec */
|
|
49
|
+
--color-tertiary-300: 230 226 225; /* ⬅ #e6e2e1 */
|
|
50
|
+
--color-tertiary-400: 211 204 203; /* ⬅ #d3cccb */
|
|
51
|
+
--color-tertiary-500: 192 182 180; /* ⬅ #c0b6b4 */
|
|
52
|
+
--color-tertiary-600: 173 164 162; /* ⬅ #ada4a2 */
|
|
53
|
+
--color-tertiary-700: 144 137 135; /* ⬅ #908987 */
|
|
54
|
+
--color-tertiary-800: 115 109 108; /* ⬅ #736d6c */
|
|
55
|
+
--color-tertiary-900: 94 89 88; /* ⬅ #5e5958 */
|
|
56
|
+
/* success | #c1dd97 */
|
|
57
|
+
--color-success-50: 246 250 239; /* ⬅ #f6faef */
|
|
58
|
+
--color-success-100: 243 248 234; /* ⬅ #f3f8ea */
|
|
59
|
+
--color-success-200: 240 247 229; /* ⬅ #f0f7e5 */
|
|
60
|
+
--color-success-300: 230 241 213; /* ⬅ #e6f1d5 */
|
|
61
|
+
--color-success-400: 212 231 182; /* ⬅ #d4e7b6 */
|
|
62
|
+
--color-success-500: 193 221 151; /* ⬅ #c1dd97 */
|
|
63
|
+
--color-success-600: 174 199 136; /* ⬅ #aec788 */
|
|
64
|
+
--color-success-700: 145 166 113; /* ⬅ #91a671 */
|
|
65
|
+
--color-success-800: 116 133 91; /* ⬅ #74855b */
|
|
66
|
+
--color-success-900: 95 108 74; /* ⬅ #5f6c4a */
|
|
67
|
+
/* warning | #e4c25e */
|
|
68
|
+
--color-warning-50: 251 246 231; /* ⬅ #fbf6e7 */
|
|
69
|
+
--color-warning-100: 250 243 223; /* ⬅ #faf3df */
|
|
70
|
+
--color-warning-200: 248 240 215; /* ⬅ #f8f0d7 */
|
|
71
|
+
--color-warning-300: 244 231 191; /* ⬅ #f4e7bf */
|
|
72
|
+
--color-warning-400: 236 212 142; /* ⬅ #ecd48e */
|
|
73
|
+
--color-warning-500: 228 194 94; /* ⬅ #e4c25e */
|
|
74
|
+
--color-warning-600: 205 175 85; /* ⬅ #cdaf55 */
|
|
75
|
+
--color-warning-700: 171 146 71; /* ⬅ #ab9247 */
|
|
76
|
+
--color-warning-800: 137 116 56; /* ⬅ #897438 */
|
|
77
|
+
--color-warning-900: 112 95 46; /* ⬅ #705f2e */
|
|
78
|
+
/* error | #d27f81 */
|
|
79
|
+
--color-error-50: 248 236 236; /* ⬅ #f8ecec */
|
|
80
|
+
--color-error-100: 246 229 230; /* ⬅ #f6e5e6 */
|
|
81
|
+
--color-error-200: 244 223 224; /* ⬅ #f4dfe0 */
|
|
82
|
+
--color-error-300: 237 204 205; /* ⬅ #edcccd */
|
|
83
|
+
--color-error-400: 224 165 167; /* ⬅ #e0a5a7 */
|
|
84
|
+
--color-error-500: 210 127 129; /* ⬅ #d27f81 */
|
|
85
|
+
--color-error-600: 189 114 116; /* ⬅ #bd7274 */
|
|
86
|
+
--color-error-700: 158 95 97; /* ⬅ #9e5f61 */
|
|
87
|
+
--color-error-800: 126 76 77; /* ⬅ #7e4c4d */
|
|
88
|
+
--color-error-900: 103 62 63; /* ⬅ #673e3f */
|
|
89
|
+
/* surface | #2b2e40 */
|
|
90
|
+
--color-surface-50: 223 224 226; /* ⬅ #dfe0e2 */
|
|
91
|
+
--color-surface-100: 213 213 217; /* ⬅ #d5d5d9 */
|
|
92
|
+
--color-surface-200: 202 203 207; /* ⬅ #cacbcf */
|
|
93
|
+
--color-surface-300: 170 171 179; /* ⬅ #aaabb3 */
|
|
94
|
+
--color-surface-400: 107 109 121; /* ⬅ #6b6d79 */
|
|
95
|
+
--color-surface-500: 43 46 64; /* ⬅ #2b2e40 */
|
|
96
|
+
--color-surface-600: 39 41 58; /* ⬅ #27293a */
|
|
97
|
+
--color-surface-700: 32 35 48; /* ⬅ #202330 */
|
|
98
|
+
--color-surface-800: 26 28 38; /* ⬅ #1a1c26 */
|
|
99
|
+
--color-surface-900: 21 23 31; /* ⬅ #15171f */
|
|
100
|
+
}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/* =~= Gold Nouveau - made by GitHub user @Sarenor for the Skeleton community theme contest. =~= */
|
|
2
|
+
/* https://github.com/skeletonlabs/skeleton/discussions/401 */
|
|
3
|
+
|
|
4
|
+
/* https://fonts.google.com/specimen/Quicksand?query=Quicksand */
|
|
5
|
+
@import url('https://fonts.googleapis.com/css2?family=Quicksand:wght@300;400;500;600;700&display=swap');
|
|
6
|
+
|
|
7
|
+
/* =~= Gold Nouveau =~= */
|
|
8
|
+
:root {
|
|
9
|
+
/* =~= Theme Properties =~= */
|
|
10
|
+
--theme-font-family-base: system-ui, sans-serif;
|
|
11
|
+
--theme-font-family-heading: 'Quicksand', sans-serif;
|
|
12
|
+
--theme-font-color-base: var(--color-surface-900);
|
|
13
|
+
--theme-font-color-dark: var(--color-surface-50);
|
|
14
|
+
--theme-rounded-base: 4px;
|
|
15
|
+
--theme-rounded-container: 4px;
|
|
16
|
+
--theme-border-base: 1px;
|
|
17
|
+
/* =~= Theme On-X Colors =~= */
|
|
18
|
+
--on-primary: 255 255 255;
|
|
19
|
+
--on-secondary: 255 255 255;
|
|
20
|
+
--on-tertiary: 255 255 255;
|
|
21
|
+
--on-success: 0 0 0;
|
|
22
|
+
--on-warning: 0 0 0;
|
|
23
|
+
--on-error: 255 255 255;
|
|
24
|
+
--on-surface: 255 255 255;
|
|
25
|
+
/* =~= Theme Colors =~= */
|
|
26
|
+
/* primary | #744aa1 */
|
|
27
|
+
--color-primary-50: 250 248 252; /* ⬅ #faf8fc */
|
|
28
|
+
--color-primary-100: 242 238 247; /* ⬅ #f2eef7 */
|
|
29
|
+
--color-primary-200: 229 220 239; /* ⬅ #e5dcef */
|
|
30
|
+
--color-primary-300: 209 192 226; /* ⬅ #d1c0e2 */
|
|
31
|
+
--color-primary-400: 162 129 197; /* ⬅ #a281c5 */
|
|
32
|
+
--color-primary-500: 116 74 161; /* ⬅ #744aa1 */
|
|
33
|
+
--color-primary-600: 83 53 115; /* ⬅ #533573 */
|
|
34
|
+
--color-primary-700: 60 39 84; /* ⬅ #3c2754 */
|
|
35
|
+
--color-primary-800: 35 22 49; /* ⬅ #231631 */
|
|
36
|
+
--color-primary-900: 18 11 24; /* ⬅ #120b18 */
|
|
37
|
+
/* secondary | #0672e5 */
|
|
38
|
+
--color-secondary-50: 218 234 251; /* ⬅ #daeafb */
|
|
39
|
+
--color-secondary-100: 205 227 250; /* ⬅ #cde3fa */
|
|
40
|
+
--color-secondary-200: 193 220 249; /* ⬅ #c1dcf9 */
|
|
41
|
+
--color-secondary-300: 155 199 245; /* ⬅ #9bc7f5 */
|
|
42
|
+
--color-secondary-400: 81 156 237; /* ⬅ #519ced */
|
|
43
|
+
--color-secondary-500: 6 114 229; /* ⬅ #0672e5 */
|
|
44
|
+
--color-secondary-600: 5 103 206; /* ⬅ #0567ce */
|
|
45
|
+
--color-secondary-700: 5 86 172; /* ⬅ #0556ac */
|
|
46
|
+
--color-secondary-800: 4 68 137; /* ⬅ #044489 */
|
|
47
|
+
--color-secondary-900: 3 56 112; /* ⬅ #033870 */
|
|
48
|
+
/* tertiary | #7f78dd */
|
|
49
|
+
--color-tertiary-50: 236 235 250; /* ⬅ #ecebfa */
|
|
50
|
+
--color-tertiary-100: 229 228 248; /* ⬅ #e5e4f8 */
|
|
51
|
+
--color-tertiary-200: 223 221 247; /* ⬅ #dfddf7 */
|
|
52
|
+
--color-tertiary-300: 204 201 241; /* ⬅ #ccc9f1 */
|
|
53
|
+
--color-tertiary-400: 165 161 231; /* ⬅ #a5a1e7 */
|
|
54
|
+
--color-tertiary-500: 127 120 221; /* ⬅ #7f78dd */
|
|
55
|
+
--color-tertiary-600: 114 108 199; /* ⬅ #726cc7 */
|
|
56
|
+
--color-tertiary-700: 95 90 166; /* ⬅ #5f5aa6 */
|
|
57
|
+
--color-tertiary-800: 76 72 133; /* ⬅ #4c4885 */
|
|
58
|
+
--color-tertiary-900: 62 59 108; /* ⬅ #3e3b6c */
|
|
59
|
+
/* success | #72c585 */
|
|
60
|
+
--color-success-50: 234 246 237; /* ⬅ #eaf6ed */
|
|
61
|
+
--color-success-100: 227 243 231; /* ⬅ #e3f3e7 */
|
|
62
|
+
--color-success-200: 220 241 225; /* ⬅ #dcf1e1 */
|
|
63
|
+
--color-success-300: 199 232 206; /* ⬅ #c7e8ce */
|
|
64
|
+
--color-success-400: 156 214 170; /* ⬅ #9cd6aa */
|
|
65
|
+
--color-success-500: 114 197 133; /* ⬅ #72c585 */
|
|
66
|
+
--color-success-600: 103 177 120; /* ⬅ #67b178 */
|
|
67
|
+
--color-success-700: 86 148 100; /* ⬅ #569464 */
|
|
68
|
+
--color-success-800: 68 118 80; /* ⬅ #447650 */
|
|
69
|
+
--color-success-900: 56 97 65; /* ⬅ #386141 */
|
|
70
|
+
/* warning | #e77f08 */
|
|
71
|
+
--color-warning-50: 251 236 218; /* ⬅ #fbecda */
|
|
72
|
+
--color-warning-100: 250 229 206; /* ⬅ #fae5ce */
|
|
73
|
+
--color-warning-200: 249 223 193; /* ⬅ #f9dfc1 */
|
|
74
|
+
--color-warning-300: 245 204 156; /* ⬅ #f5cc9c */
|
|
75
|
+
--color-warning-400: 238 165 82; /* ⬅ #eea552 */
|
|
76
|
+
--color-warning-500: 231 127 8; /* ⬅ #e77f08 */
|
|
77
|
+
--color-warning-600: 208 114 7; /* ⬅ #d07207 */
|
|
78
|
+
--color-warning-700: 173 95 6; /* ⬅ #ad5f06 */
|
|
79
|
+
--color-warning-800: 139 76 5; /* ⬅ #8b4c05 */
|
|
80
|
+
--color-warning-900: 113 62 4; /* ⬅ #713e04 */
|
|
81
|
+
/* error | #8f0f22 */
|
|
82
|
+
--color-error-50: 238 219 222; /* ⬅ #eedbde */
|
|
83
|
+
--color-error-100: 233 207 211; /* ⬅ #e9cfd3 */
|
|
84
|
+
--color-error-200: 227 195 200; /* ⬅ #e3c3c8 */
|
|
85
|
+
--color-error-300: 210 159 167; /* ⬅ #d29fa7 */
|
|
86
|
+
--color-error-400: 177 87 100; /* ⬅ #b15764 */
|
|
87
|
+
--color-error-500: 143 15 34; /* ⬅ #8f0f22 */
|
|
88
|
+
--color-error-600: 129 14 31; /* ⬅ #810e1f */
|
|
89
|
+
--color-error-700: 107 11 26; /* ⬅ #6b0b1a */
|
|
90
|
+
--color-error-800: 86 9 20; /* ⬅ #560914 */
|
|
91
|
+
--color-error-900: 70 7 17; /* ⬅ #460711 */
|
|
92
|
+
/* surface | #744aa1 */
|
|
93
|
+
--color-surface-50: 250 248 252; /* ⬅ #faf8fc */
|
|
94
|
+
--color-surface-100: 242 238 247; /* ⬅ #f2eef7 */
|
|
95
|
+
--color-surface-200: 229 220 239; /* ⬅ #e5dcef */
|
|
96
|
+
--color-surface-300: 209 192 226; /* ⬅ #d1c0e2 */
|
|
97
|
+
--color-surface-400: 162 129 197; /* ⬅ #a281c5 */
|
|
98
|
+
--color-surface-500: 116 74 161; /* ⬅ #744aa1 */
|
|
99
|
+
--color-surface-600: 83 53 115; /* ⬅ #533573 */
|
|
100
|
+
--color-surface-700: 60 39 84; /* ⬅ #3c2754 */
|
|
101
|
+
--color-surface-800: 35 22 49; /* ⬅ #231631 */
|
|
102
|
+
--color-surface-900: 18 11 24; /* ⬅ #120b18 */
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/* =~= Gold Nouveau (dark mode overrides) =~= */
|
|
106
|
+
.dark [data-theme='gold-nouveau'] {
|
|
107
|
+
/* =~= Theme On-X Colors =~= */
|
|
108
|
+
--on-primary: 0 0 0;
|
|
109
|
+
/* =~= Theme Colors =~= */
|
|
110
|
+
/* primary | #e6c833 */
|
|
111
|
+
--color-primary-50: 251 247 224; /* ⬅ #fbf7e0 */
|
|
112
|
+
--color-primary-100: 250 244 214; /* ⬅ #faf4d6 */
|
|
113
|
+
--color-primary-200: 249 241 204; /* ⬅ #f9f1cc */
|
|
114
|
+
--color-primary-300: 245 233 173; /* ⬅ #f5e9ad */
|
|
115
|
+
--color-primary-400: 238 217 112; /* ⬅ #eed970 */
|
|
116
|
+
--color-primary-500: 230 200 51; /* ⬅ #e6c833 */
|
|
117
|
+
--color-primary-600: 207 180 46; /* ⬅ #cfb42e */
|
|
118
|
+
--color-primary-700: 173 150 38; /* ⬅ #ad9626 */
|
|
119
|
+
--color-primary-800: 138 120 31; /* ⬅ #8a781f */
|
|
120
|
+
--color-primary-900: 113 98 25; /* ⬅ #716219 */
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/* Headings */
|
|
124
|
+
[data-theme='gold-nouveau'] h1,
|
|
125
|
+
[data-theme='gold-nouveau'] h2,
|
|
126
|
+
[data-theme='gold-nouveau'] h3,
|
|
127
|
+
[data-theme='gold-nouveau'] h4,
|
|
128
|
+
[data-theme='gold-nouveau'] h5,
|
|
129
|
+
[data-theme='gold-nouveau'] h6 {
|
|
130
|
+
font-weight: bold;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/* Applied to body with `<body data-theme="gold-nouveau">` */
|
|
134
|
+
/* Created with: https://csshero.org/mesher/ */
|
|
135
|
+
/* prettier-ignore */
|
|
136
|
+
[data-theme='gold-nouveau'] {
|
|
137
|
+
background-image:
|
|
138
|
+
radial-gradient(at 0% 100%, rgba(var(--color-secondary-500) / 0.33) 0px, transparent 50%),
|
|
139
|
+
radial-gradient(at 98% 100%, rgba(var(--color-error-500) / 0.33) 0px, transparent 50%);
|
|
140
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/* =~= Hamlindigo Theme - made by GitHub user @rcgy for the Skeleton community. Go watch Better Call Saul. =~= */
|
|
2
|
+
/* https://github.com/skeletonlabs/skeleton/discussions/401 */
|
|
3
|
+
|
|
4
|
+
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;0,800;0,900;1,400;1,500;1,600;1,700;1,800&display=swap');
|
|
5
|
+
|
|
6
|
+
:root {
|
|
7
|
+
/* =~= Hamlindigo Theme | Custom =~= */
|
|
8
|
+
--theme-font-family-base: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,
|
|
9
|
+
'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
|
|
10
|
+
--theme-font-family-heading: 'Playfair Display', serif;
|
|
11
|
+
--theme-font-color-base: 0 0 0;
|
|
12
|
+
--theme-font-color-dark: 255 255 255;
|
|
13
|
+
--theme-rounded-base: 2px;
|
|
14
|
+
--theme-rounded-container: 2px;
|
|
15
|
+
--theme-border-base: 2px;
|
|
16
|
+
/* =~= Theme On-X Colors =~= */
|
|
17
|
+
--on-primary: 0 0 0;
|
|
18
|
+
--on-secondary: 255 255 255;
|
|
19
|
+
--on-tertiary: 255 255 255;
|
|
20
|
+
--on-success: 255 255 255;
|
|
21
|
+
--on-warning: 0 0 0;
|
|
22
|
+
--on-error: 255 255 255;
|
|
23
|
+
--on-surface: 255 255 255;
|
|
24
|
+
/* =~= Theme Colors =~= */
|
|
25
|
+
/* primary | #a8bef1 */
|
|
26
|
+
--color-primary-50: 242 245 253; /* ⬅ #f2f5fd */
|
|
27
|
+
--color-primary-100: 238 242 252; /* ⬅ #eef2fc */
|
|
28
|
+
--color-primary-200: 233 239 252; /* ⬅ #e9effc */
|
|
29
|
+
--color-primary-300: 220 229 249; /* ⬅ #dce5f9 */
|
|
30
|
+
--color-primary-400: 194 210 245; /* ⬅ #c2d2f5 */
|
|
31
|
+
--color-primary-500: 168 190 241; /* ⬅ #a8bef1 */
|
|
32
|
+
--color-primary-600: 151 171 217; /* ⬅ #97abd9 */
|
|
33
|
+
--color-primary-700: 126 143 181; /* ⬅ #7e8fb5 */
|
|
34
|
+
--color-primary-800: 101 114 145; /* ⬅ #657291 */
|
|
35
|
+
--color-primary-900: 82 93 118; /* ⬅ #525d76 */
|
|
36
|
+
/* secondary | #a48e5b */
|
|
37
|
+
--color-secondary-50: 241 238 230; /* ⬅ #f1eee6 */
|
|
38
|
+
--color-secondary-100: 237 232 222; /* ⬅ #ede8de */
|
|
39
|
+
--color-secondary-200: 232 227 214; /* ⬅ #e8e3d6 */
|
|
40
|
+
--color-secondary-300: 219 210 189; /* ⬅ #dbd2bd */
|
|
41
|
+
--color-secondary-400: 191 176 140; /* ⬅ #bfb08c */
|
|
42
|
+
--color-secondary-500: 164 142 91; /* ⬅ #a48e5b */
|
|
43
|
+
--color-secondary-600: 148 128 82; /* ⬅ #948052 */
|
|
44
|
+
--color-secondary-700: 123 107 68; /* ⬅ #7b6b44 */
|
|
45
|
+
--color-secondary-800: 98 85 55; /* ⬅ #625537 */
|
|
46
|
+
--color-secondary-900: 80 70 45; /* ⬅ #50462d */
|
|
47
|
+
/* tertiary | #6197a3 */
|
|
48
|
+
--color-tertiary-50: 231 239 241; /* ⬅ #e7eff1 */
|
|
49
|
+
--color-tertiary-100: 223 234 237; /* ⬅ #dfeaed */
|
|
50
|
+
--color-tertiary-200: 216 229 232; /* ⬅ #d8e5e8 */
|
|
51
|
+
--color-tertiary-300: 192 213 218; /* ⬅ #c0d5da */
|
|
52
|
+
--color-tertiary-400: 144 182 191; /* ⬅ #90b6bf */
|
|
53
|
+
--color-tertiary-500: 97 151 163; /* ⬅ #6197a3 */
|
|
54
|
+
--color-tertiary-600: 87 136 147; /* ⬅ #578893 */
|
|
55
|
+
--color-tertiary-700: 73 113 122; /* ⬅ #49717a */
|
|
56
|
+
--color-tertiary-800: 58 91 98; /* ⬅ #3a5b62 */
|
|
57
|
+
--color-tertiary-900: 48 74 80; /* ⬅ #304a50 */
|
|
58
|
+
/* success | #47947d */
|
|
59
|
+
--color-success-50: 227 239 236; /* ⬅ #e3efec */
|
|
60
|
+
--color-success-100: 218 234 229; /* ⬅ #daeae5 */
|
|
61
|
+
--color-success-200: 209 228 223; /* ⬅ #d1e4df */
|
|
62
|
+
--color-success-300: 181 212 203; /* ⬅ #b5d4cb */
|
|
63
|
+
--color-success-400: 126 180 164; /* ⬅ #7eb4a4 */
|
|
64
|
+
--color-success-500: 71 148 125; /* ⬅ #47947d */
|
|
65
|
+
--color-success-600: 64 133 113; /* ⬅ #408571 */
|
|
66
|
+
--color-success-700: 53 111 94; /* ⬅ #356f5e */
|
|
67
|
+
--color-success-800: 43 89 75; /* ⬅ #2b594b */
|
|
68
|
+
--color-success-900: 35 73 61; /* ⬅ #23493d */
|
|
69
|
+
/* warning | #daa93e */
|
|
70
|
+
--color-warning-50: 249 242 226; /* ⬅ #f9f2e2 */
|
|
71
|
+
--color-warning-100: 248 238 216; /* ⬅ #f8eed8 */
|
|
72
|
+
--color-warning-200: 246 234 207; /* ⬅ #f6eacf */
|
|
73
|
+
--color-warning-300: 240 221 178; /* ⬅ #f0ddb2 */
|
|
74
|
+
--color-warning-400: 229 195 120; /* ⬅ #e5c378 */
|
|
75
|
+
--color-warning-500: 218 169 62; /* ⬅ #daa93e */
|
|
76
|
+
--color-warning-600: 196 152 56; /* ⬅ #c49838 */
|
|
77
|
+
--color-warning-700: 164 127 47; /* ⬅ #a47f2f */
|
|
78
|
+
--color-warning-800: 131 101 37; /* ⬅ #836525 */
|
|
79
|
+
--color-warning-900: 107 83 30; /* ⬅ #6b531e */
|
|
80
|
+
/* error | #a26175 */
|
|
81
|
+
--color-error-50: 241 231 234; /* ⬅ #f1e7ea */
|
|
82
|
+
--color-error-100: 236 223 227; /* ⬅ #ecdfe3 */
|
|
83
|
+
--color-error-200: 232 216 221; /* ⬅ #e8d8dd */
|
|
84
|
+
--color-error-300: 218 192 200; /* ⬅ #dac0c8 */
|
|
85
|
+
--color-error-400: 190 144 158; /* ⬅ #be909e */
|
|
86
|
+
--color-error-500: 162 97 117; /* ⬅ #a26175 */
|
|
87
|
+
--color-error-600: 146 87 105; /* ⬅ #925769 */
|
|
88
|
+
--color-error-700: 122 73 88; /* ⬅ #7a4958 */
|
|
89
|
+
--color-error-800: 97 58 70; /* ⬅ #613a46 */
|
|
90
|
+
--color-error-900: 79 48 57; /* ⬅ #4f3039 */
|
|
91
|
+
/* surface | #6376a3 */
|
|
92
|
+
--color-surface-50: 232 234 241; /* ⬅ #e8eaf1 */
|
|
93
|
+
--color-surface-100: 224 228 237; /* ⬅ #e0e4ed */
|
|
94
|
+
--color-surface-200: 216 221 232; /* ⬅ #d8dde8 */
|
|
95
|
+
--color-surface-300: 193 200 218; /* ⬅ #c1c8da */
|
|
96
|
+
--color-surface-400: 146 159 191; /* ⬅ #929fbf */
|
|
97
|
+
--color-surface-500: 99 118 163; /* ⬅ #6376a3 */
|
|
98
|
+
--color-surface-600: 89 106 147; /* ⬅ #596a93 */
|
|
99
|
+
--color-surface-700: 74 89 122; /* ⬅ #4a597a */
|
|
100
|
+
--color-surface-800: 59 71 98; /* ⬅ #3b4762 */
|
|
101
|
+
--color-surface-900: 49 58 80; /* ⬅ #313a50 */
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/* Applied to body with `<body data-theme="hamlindigo">` */
|
|
105
|
+
/* Generated via: https://heropatterns.com/ */
|
|
106
|
+
[data-theme='hamlindigo'] {
|
|
107
|
+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cg fill='%23e0e4ed' fill-opacity='0.5'%3E%3Cpath fill-rule='evenodd' d='M0 0h4v4H0V0zm4 4h4v4H4V4z'/%3E%3C/g%3E%3C/svg%3E");
|
|
108
|
+
}
|
|
109
|
+
.dark [data-theme='hamlindigo'] {
|
|
110
|
+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cg fill='%233b4762' fill-opacity='0.2'%3E%3Cpath fill-rule='evenodd' d='M0 0h4v4H0V0zm4 4h4v4H4V4z'/%3E%3C/g%3E%3C/svg%3E");
|
|
111
|
+
}
|