@esportsplus/ui 0.9.2 → 0.9.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/build/components/index.d.ts +20 -20
- package/build/components/index.js +20 -20
- package/package.json +1 -1
- package/src/components/index.ts +20 -20
- package/dist/components/accordion/index.js +0 -26
- package/dist/components/accordion/scss/index.scss +0 -2
- package/dist/components/anchor/index.js +0 -1
- package/dist/components/anchor/scss/index.scss +0 -2
- package/dist/components/banner/index.js +0 -1
- package/dist/components/banner/scss/index.scss +0 -2
- package/dist/components/border/index.js +0 -1
- package/dist/components/border/scss/index.scss +0 -2
- package/dist/components/bubble/index.js +0 -1
- package/dist/components/bubble/scss/index.scss +0 -2
- package/dist/components/button/index.js +0 -1
- package/dist/components/button/scss/index.scss +0 -2
- package/dist/components/card/index.js +0 -1
- package/dist/components/card/scss/index.scss +0 -2
- package/dist/components/clipboard/index.js +0 -2
- package/dist/components/clipboard/write.js +0 -9
- package/dist/components/container/index.js +0 -1
- package/dist/components/container/scss/index.scss +0 -2
- package/dist/components/counter/index.js +0 -78
- package/dist/components/counter/scss/index.scss +0 -2
- package/dist/components/ellipsis/index.js +0 -9
- package/dist/components/ellipsis/scss/index.scss +0 -2
- package/dist/components/field/checkbox.js +0 -52
- package/dist/components/field/description.js +0 -11
- package/dist/components/field/error.js +0 -13
- package/dist/components/field/file.js +0 -51
- package/dist/components/field/index.js +0 -9
- package/dist/components/field/optional.js +0 -16
- package/dist/components/field/scss/index.scss +0 -2
- package/dist/components/field/select.js +0 -135
- package/dist/components/field/switch.js +0 -6
- package/dist/components/field/text.js +0 -64
- package/dist/components/field/textarea.js +0 -5
- package/dist/components/field/title.js +0 -21
- package/dist/components/footer/index.js +0 -60
- package/dist/components/footer/scss/index.scss +0 -2
- package/dist/components/form/action.js +0 -57
- package/dist/components/form/index.js +0 -3
- package/dist/components/form/input.js +0 -10
- package/dist/components/form/types.js +0 -1
- package/dist/components/frame/index.js +0 -1
- package/dist/components/frame/scss/index.scss +0 -2
- package/dist/components/grid/index.js +0 -1
- package/dist/components/grid/scss/index.scss +0 -2
- package/dist/components/group/index.js +0 -1
- package/dist/components/group/scss/index.scss +0 -2
- package/dist/components/highlight/index.js +0 -40
- package/dist/components/highlight/scss/index.scss +0 -2
- package/dist/components/icon/index.js +0 -1
- package/dist/components/icon/scss/index.scss +0 -2
- package/dist/components/index.js +0 -38
- package/dist/components/json/download.js +0 -8
- package/dist/components/json/index.js +0 -2
- package/dist/components/link/hover.js +0 -17
- package/dist/components/link/index.js +0 -3
- package/dist/components/link/scss/index.scss +0 -2
- package/dist/components/loader/index.js +0 -39
- package/dist/components/loader/scss/index.scss +0 -2
- package/dist/components/loading/index.js +0 -12
- package/dist/components/loading/scss/index.scss +0 -2
- package/dist/components/magnet/index.js +0 -47
- package/dist/components/magnet/scss/index.scss +0 -2
- package/dist/components/modal/index.js +0 -1
- package/dist/components/modal/scss/index.scss +0 -2
- package/dist/components/normalize/index.js +0 -1
- package/dist/components/normalize/scss/index.scss +0 -3
- package/dist/components/number/index.js +0 -2
- package/dist/components/page/index.js +0 -11
- package/dist/components/page/scss/index.scss +0 -2
- package/dist/components/root/index.js +0 -3
- package/dist/components/root/onclick.js +0 -14
- package/dist/components/root/scss/index.scss +0 -2
- package/dist/components/row/index.js +0 -1
- package/dist/components/row/scss/index.scss +0 -2
- package/dist/components/scrollbar/index.js +0 -42
- package/dist/components/scrollbar/scss/index.scss +0 -2
- package/dist/components/sidebar/index.js +0 -1
- package/dist/components/sidebar/scss/index.scss +0 -2
- package/dist/components/site/index.js +0 -17
- package/dist/components/site/scss/index.scss +0 -2
- package/dist/components/text/index.js +0 -1
- package/dist/components/text/scss/index.scss +0 -2
- package/dist/components/thumbnail/index.js +0 -1
- package/dist/components/thumbnail/scss/index.scss +0 -2
- package/dist/components/tooltip/index.js +0 -64
- package/dist/components/tooltip/scss/index.scss +0 -2
- package/dist/components/truncate/index.js +0 -2
- package/dist/components/typewriter/index.js +0 -42
- package/dist/components/typewriter/scss/index.scss +0 -2
- package/dist/css-utilities/[margin,padding]/scss/index.scss +0 -2
- package/dist/css-utilities/absolute/scss/index.scss +0 -2
- package/dist/css-utilities/background/scss/index.scss +0 -2
- package/dist/css-utilities/border/scss/index.scss +0 -2
- package/dist/css-utilities/color/scss/index.scss +0 -2
- package/dist/css-utilities/disabled/scss/index.scss +0 -2
- package/dist/css-utilities/flex/scss/index.scss +0 -2
- package/dist/css-utilities/glass/scss/index.scss +0 -2
- package/dist/css-utilities/hidden/scss/index.scss +0 -2
- package/dist/css-utilities/index.js +0 -18
- package/dist/css-utilities/inline/scss/index.scss +0 -2
- package/dist/css-utilities/line-height/scss/index.scss +0 -2
- package/dist/css-utilities/not-allowed/scss/index.scss +0 -2
- package/dist/css-utilities/pointer/scss/index.scss +0 -2
- package/dist/css-utilities/size/scss/index.scss +0 -2
- package/dist/css-utilities/squircle/scss/index.scss +0 -2
- package/dist/css-utilities/text/scss/index.scss +0 -2
- package/dist/css-utilities/viewport/scss/index.scss +0 -2
- package/dist/css-utilities/width/scss/index.scss +0 -2
- package/dist/fonts/index.js +0 -1
- package/dist/fonts/montserrat/index.js +0 -1
- package/dist/fonts/montserrat/scss/Montserrat-Bold.woff +0 -0
- package/dist/fonts/montserrat/scss/Montserrat-Bold.woff2 +0 -0
- package/dist/fonts/montserrat/scss/Montserrat-BoldItalic.woff +0 -0
- package/dist/fonts/montserrat/scss/Montserrat-BoldItalic.woff2 +0 -0
- package/dist/fonts/montserrat/scss/Montserrat-Italic.woff +0 -0
- package/dist/fonts/montserrat/scss/Montserrat-Italic.woff2 +0 -0
- package/dist/fonts/montserrat/scss/Montserrat-Medium.woff +0 -0
- package/dist/fonts/montserrat/scss/Montserrat-Medium.woff2 +0 -0
- package/dist/fonts/montserrat/scss/Montserrat-MediumItalic.woff +0 -0
- package/dist/fonts/montserrat/scss/Montserrat-MediumItalic.woff2 +0 -0
- package/dist/fonts/montserrat/scss/Montserrat-Regular.woff +0 -0
- package/dist/fonts/montserrat/scss/Montserrat-Regular.woff2 +0 -0
- package/dist/fonts/montserrat/scss/Montserrat-SemiBold.woff +0 -0
- package/dist/fonts/montserrat/scss/Montserrat-SemiBold.woff2 +0 -0
- package/dist/fonts/montserrat/scss/Montserrat-SemiBoldItalic.woff +0 -0
- package/dist/fonts/montserrat/scss/Montserrat-SemiBoldItalic.woff2 +0 -0
- package/dist/fonts/montserrat/scss/index.scss +0 -2
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import { reactive } from '@esportsplus/reactivity';
|
|
2
|
-
import { html } from '@esportsplus/template';
|
|
3
|
-
import { omit } from '@esportsplus/utilities';
|
|
4
|
-
import form from '../../components/form/index.js';
|
|
5
|
-
import scrollbar from '../../components/scrollbar/index.js';
|
|
6
|
-
import root from '../../components/root/index.js';
|
|
7
|
-
import description from './description.js';
|
|
8
|
-
import error from './error.js';
|
|
9
|
-
import title from './title.js';
|
|
10
|
-
const FIELD_OMIT = [
|
|
11
|
-
'content',
|
|
12
|
-
'description',
|
|
13
|
-
'effect',
|
|
14
|
-
'mask',
|
|
15
|
-
'name',
|
|
16
|
-
'options', 'option',
|
|
17
|
-
'required',
|
|
18
|
-
'selected', 'scrollbar',
|
|
19
|
-
'tag', 'text', 'title', 'tooltip'
|
|
20
|
-
];
|
|
21
|
-
const TOOLTIP_OMIT = ['direction'];
|
|
22
|
-
function parse(keys, selected) {
|
|
23
|
-
let options = {};
|
|
24
|
-
for (let key of keys) {
|
|
25
|
-
options[key] = false;
|
|
26
|
-
}
|
|
27
|
-
options[selected] = true;
|
|
28
|
-
return {
|
|
29
|
-
options,
|
|
30
|
-
selected: selected || keys[0]
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
function template(data, state) {
|
|
34
|
-
data.scrollbar ??= {};
|
|
35
|
-
data.scrollbar.style = data.scrollbar.style || '--background-default: var(--color-black-400);';
|
|
36
|
-
data.tooltip ??= {};
|
|
37
|
-
data.tooltip.class = `tooltip-content--${data.tooltip?.direction || 's'} ${data.tooltip?.class || ''}`;
|
|
38
|
-
data.tooltip.direction ??= 's';
|
|
39
|
-
let { html: h, parent: { attributes: a } } = scrollbar({
|
|
40
|
-
attributes: data.scrollbar,
|
|
41
|
-
fixed: true
|
|
42
|
-
});
|
|
43
|
-
return html `
|
|
44
|
-
<div
|
|
45
|
-
class='tooltip-content --flex-column --width-full'
|
|
46
|
-
${omit(data.tooltip, TOOLTIP_OMIT)}
|
|
47
|
-
>
|
|
48
|
-
<div
|
|
49
|
-
class='row --flex-column'
|
|
50
|
-
onclick='${(e) => {
|
|
51
|
-
let key = e?.target?.dataset?.key;
|
|
52
|
-
if (key === undefined) {
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
state.options[key] = true;
|
|
56
|
-
state.options[state.selected] = false;
|
|
57
|
-
state.active = false;
|
|
58
|
-
state.selected = key;
|
|
59
|
-
if (data.effect) {
|
|
60
|
-
data.effect(key);
|
|
61
|
-
}
|
|
62
|
-
}}'
|
|
63
|
-
${a}
|
|
64
|
-
>
|
|
65
|
-
${Object.keys(data.options || {}).map((key) => html `
|
|
66
|
-
<div
|
|
67
|
-
class='
|
|
68
|
-
${() => state.options[key] && '--active'}
|
|
69
|
-
link
|
|
70
|
-
--flex-vertical
|
|
71
|
-
'
|
|
72
|
-
data-key='${key}'
|
|
73
|
-
${data.option}
|
|
74
|
-
>
|
|
75
|
-
<span class='--text-truncate'>
|
|
76
|
-
${data.options[key]}
|
|
77
|
-
</span>
|
|
78
|
-
</div>
|
|
79
|
-
`)}
|
|
80
|
-
</div>
|
|
81
|
-
|
|
82
|
-
${h}
|
|
83
|
-
</div>
|
|
84
|
-
`;
|
|
85
|
-
}
|
|
86
|
-
export default (data) => {
|
|
87
|
-
let state = reactive(Object.assign({
|
|
88
|
-
active: false,
|
|
89
|
-
error: '',
|
|
90
|
-
render: false,
|
|
91
|
-
}, parse(Object.keys(data.options || {}), data.selected)));
|
|
92
|
-
data.mask ??= {};
|
|
93
|
-
data.mask.onclick = () => {
|
|
94
|
-
state.render = true;
|
|
95
|
-
state.active = !state.active;
|
|
96
|
-
if (state.active) {
|
|
97
|
-
root.onclick.push(() => state.active = false);
|
|
98
|
-
}
|
|
99
|
-
};
|
|
100
|
-
data.tag ??= {};
|
|
101
|
-
data.tag.name = data.name;
|
|
102
|
-
data.tag.onclick = () => { };
|
|
103
|
-
data.tag.onrender = form.input.onrender(state);
|
|
104
|
-
data.tag.value = () => state.selected;
|
|
105
|
-
return html `
|
|
106
|
-
<div class='
|
|
107
|
-
${() => state.active ? '--active' : ''}
|
|
108
|
-
field
|
|
109
|
-
tooltip
|
|
110
|
-
--flex-column
|
|
111
|
-
'
|
|
112
|
-
${omit(data, FIELD_OMIT)}
|
|
113
|
-
>
|
|
114
|
-
${title(data)}
|
|
115
|
-
|
|
116
|
-
<label
|
|
117
|
-
class='field-mask field-mask--select --flex-row --padding-400'
|
|
118
|
-
${data.mask}
|
|
119
|
-
>
|
|
120
|
-
<input class='field-tag field-tag--hidden' ${data.tag}>
|
|
121
|
-
|
|
122
|
-
<div class='field-text' style='pointer-events: none' ${data.text}>
|
|
123
|
-
${() => data.options[state.selected] || '-'}
|
|
124
|
-
</div>
|
|
125
|
-
|
|
126
|
-
<div class='field-mask-arrow'></div>
|
|
127
|
-
|
|
128
|
-
${() => state.render && template(data, state)}
|
|
129
|
-
</label>
|
|
130
|
-
|
|
131
|
-
${description(data)}
|
|
132
|
-
${error(state)}
|
|
133
|
-
</div>
|
|
134
|
-
`;
|
|
135
|
-
};
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { reactive } from '@esportsplus/reactivity';
|
|
2
|
-
import { html } from '@esportsplus/template';
|
|
3
|
-
import { omit, pick } from '@esportsplus/utilities';
|
|
4
|
-
import form from '../../components/form/index.js';
|
|
5
|
-
import description from './description.js';
|
|
6
|
-
import error from './error.js';
|
|
7
|
-
import title from './title.js';
|
|
8
|
-
const FIELD_OMIT = [
|
|
9
|
-
'content',
|
|
10
|
-
'description',
|
|
11
|
-
'mask',
|
|
12
|
-
'name',
|
|
13
|
-
'placeholder',
|
|
14
|
-
'required',
|
|
15
|
-
'tag', 'textarea', 'title', 'type',
|
|
16
|
-
'value'
|
|
17
|
-
];
|
|
18
|
-
const INPUT_PICK = ['name', 'placeholder', 'required', 'type', 'value'];
|
|
19
|
-
const TEXTAREA_PICK = ['name', 'placeholder'];
|
|
20
|
-
export default (data) => {
|
|
21
|
-
let state = reactive({
|
|
22
|
-
active: false,
|
|
23
|
-
error: ''
|
|
24
|
-
});
|
|
25
|
-
data.onfocusin = () => {
|
|
26
|
-
state.active = true;
|
|
27
|
-
};
|
|
28
|
-
data.onfocusout = () => {
|
|
29
|
-
state.active = false;
|
|
30
|
-
};
|
|
31
|
-
data.tag ??= {};
|
|
32
|
-
data.tag.class = `field-tag --padding-400 ${data.tag.class || ''}`;
|
|
33
|
-
data.tag.onrender = form.input.onrender(state);
|
|
34
|
-
data.type ??= 'string';
|
|
35
|
-
data.value ??= '';
|
|
36
|
-
return html `
|
|
37
|
-
<div
|
|
38
|
-
class='
|
|
39
|
-
${() => state.active && '--active'}
|
|
40
|
-
field
|
|
41
|
-
--flex-column
|
|
42
|
-
'
|
|
43
|
-
${omit(data, FIELD_OMIT)}
|
|
44
|
-
>
|
|
45
|
-
${title(data)}
|
|
46
|
-
|
|
47
|
-
<label class='field-mask field-mask--input --flex-row' ${data.mask}>
|
|
48
|
-
${data.textarea
|
|
49
|
-
? html `
|
|
50
|
-
<textarea ${data.tag} ${pick(data, TEXTAREA_PICK)}>
|
|
51
|
-
${data.value}
|
|
52
|
-
</textarea>
|
|
53
|
-
`
|
|
54
|
-
: html `
|
|
55
|
-
<input ${data.tag} ${pick(data, INPUT_PICK)}>
|
|
56
|
-
`}
|
|
57
|
-
${data.content || ''}
|
|
58
|
-
</label>
|
|
59
|
-
|
|
60
|
-
${description(data)}
|
|
61
|
-
${error(state)}
|
|
62
|
-
</div>
|
|
63
|
-
`;
|
|
64
|
-
};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { html } from '@esportsplus/template';
|
|
2
|
-
import tooltip from '../../components/tooltip/index.js';
|
|
3
|
-
export default (data) => {
|
|
4
|
-
if (!data?.title) {
|
|
5
|
-
return '';
|
|
6
|
-
}
|
|
7
|
-
return html `
|
|
8
|
-
<div class='field-title --flex-horizontal-space-between --flex-vertical'>
|
|
9
|
-
${data.title}
|
|
10
|
-
|
|
11
|
-
${data?.required && html `
|
|
12
|
-
<div
|
|
13
|
-
class='bubble --background-primary --margin-left'
|
|
14
|
-
${tooltip.onhover().attributes}
|
|
15
|
-
>
|
|
16
|
-
<span class='tooltip-message tooltip-message--w'>Required</span>
|
|
17
|
-
</div>
|
|
18
|
-
`}
|
|
19
|
-
</div>
|
|
20
|
-
`;
|
|
21
|
-
};
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { html, svg } from '@esportsplus/template';
|
|
2
|
-
import './scss/index.scss';
|
|
3
|
-
function copy({ attributes, brand }) {
|
|
4
|
-
return html `
|
|
5
|
-
<div class='footer-copyright group-item --flex-center'>
|
|
6
|
-
<div
|
|
7
|
-
class='text --padding-vertical --padding-300 --text-300'
|
|
8
|
-
style='--color-default: var(--color-grey-500);'
|
|
9
|
-
${attributes}
|
|
10
|
-
>
|
|
11
|
-
© ${`${new Date().getFullYear()} ${brand}, All rights reserved`}
|
|
12
|
-
</div>
|
|
13
|
-
</div>
|
|
14
|
-
`;
|
|
15
|
-
}
|
|
16
|
-
export default ({ copyright, footer, nav, social }) => {
|
|
17
|
-
return html `
|
|
18
|
-
<footer class='footer' ${footer?.attributes}>
|
|
19
|
-
<div class='container'>
|
|
20
|
-
<div class='group group--offset-top --flex-center --margin-400'>
|
|
21
|
-
|
|
22
|
-
${nav
|
|
23
|
-
? nav.links.map(({ text, url }) => html `
|
|
24
|
-
<div class='group-item'>
|
|
25
|
-
<a
|
|
26
|
-
class='link --color-white --padding-vertical-300 --text-300'
|
|
27
|
-
href='${url}'
|
|
28
|
-
style='--color-default: var(--color-grey-500);'
|
|
29
|
-
${nav.attributes}
|
|
30
|
-
>
|
|
31
|
-
${text}
|
|
32
|
-
</a>
|
|
33
|
-
</div>
|
|
34
|
-
`)
|
|
35
|
-
: copy(copyright)}
|
|
36
|
-
|
|
37
|
-
<div class='footer-break'></div>
|
|
38
|
-
|
|
39
|
-
${social?.links && social.links.map(({ icon, url }) => html `
|
|
40
|
-
<div class='group-item'>
|
|
41
|
-
<a
|
|
42
|
-
class='link --color-white --padding-0px'
|
|
43
|
-
href='${url}'
|
|
44
|
-
style='--color-default: var(--color-grey-500);'
|
|
45
|
-
${social.attributes}
|
|
46
|
-
>
|
|
47
|
-
<div class='icon --size-500'>
|
|
48
|
-
${svg.sprite(icon)}
|
|
49
|
-
</div>
|
|
50
|
-
</a>
|
|
51
|
-
</div>
|
|
52
|
-
`)}
|
|
53
|
-
|
|
54
|
-
${nav && copy(copyright)}
|
|
55
|
-
|
|
56
|
-
</div>
|
|
57
|
-
</div>
|
|
58
|
-
</footer>
|
|
59
|
-
`;
|
|
60
|
-
};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
.footer,.footer-break{width:100%}@media (max-width:640px){.footer-copyright:first-child{--width:100%}}@media (min-width:640px){.footer-copyright:first-child{margin-right:auto}}.footer-copyright:first-child+.footer-break{display:none}.footer-copyright:last-child{--width:100%}
|
|
2
|
-
/*$vite$:1*/
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import response from '@esportsplus/action';
|
|
2
|
-
import input from './input.js';
|
|
3
|
-
function parse(input) {
|
|
4
|
-
let data = {};
|
|
5
|
-
for (let [path, value] of input) {
|
|
6
|
-
let bucket = data, segments = path.indexOf('.') !== -1 ? path.split('.') : [path];
|
|
7
|
-
for (let i = 0; i < segments.length - 1; i++) {
|
|
8
|
-
bucket = bucket[segments[i]] = bucket[segments[i]] || {};
|
|
9
|
-
}
|
|
10
|
-
let key = segments.at(-1);
|
|
11
|
-
if (path.endsWith('[]')) {
|
|
12
|
-
if (typeof value === 'string' && value.trim() === '') {
|
|
13
|
-
continue;
|
|
14
|
-
}
|
|
15
|
-
bucket = bucket[key.substring(0, key.length - 2)] ??= [];
|
|
16
|
-
bucket.push(value);
|
|
17
|
-
}
|
|
18
|
-
else {
|
|
19
|
-
bucket[key] = value;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
return data;
|
|
23
|
-
}
|
|
24
|
-
;
|
|
25
|
-
export default function (action, s) {
|
|
26
|
-
return {
|
|
27
|
-
onclick: function (event) {
|
|
28
|
-
let trigger = event.target;
|
|
29
|
-
if (trigger?.type !== 'submit') {
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
event.preventDefault();
|
|
33
|
-
this.dispatchEvent(new SubmitEvent('submit', { cancelable: true, bubbles: true, submitter: trigger }));
|
|
34
|
-
},
|
|
35
|
-
onsubmit: async function (event) {
|
|
36
|
-
event.preventDefault();
|
|
37
|
-
if (s) {
|
|
38
|
-
s.processing = true;
|
|
39
|
-
}
|
|
40
|
-
let { errors } = await action({
|
|
41
|
-
input: parse(new FormData(this).entries()),
|
|
42
|
-
response
|
|
43
|
-
});
|
|
44
|
-
for (let i = 0, n = errors.length; i < n; i++) {
|
|
45
|
-
let { message, path } = errors[i], reactive = input.get(this[path]);
|
|
46
|
-
if (!reactive) {
|
|
47
|
-
continue;
|
|
48
|
-
}
|
|
49
|
-
reactive.error = `${message[0].toUpperCase()}${message.substring(1)}`;
|
|
50
|
-
}
|
|
51
|
-
if (s) {
|
|
52
|
-
s.processing = false;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import './scss/index.scss';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import './scss/index.scss';
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
.grid{--margin-horizontal:var(--size-400);--margin-vertical:var(--size-400);--max-width:1fr;--min-width:200px;grid-gap:var(--margin-horizontal)var(--margin-vertical);grid-template-columns:repeat(auto-fit,minmax(var(--min-width),var(--max-width)));display:grid;position:relative}.grid .grid-item{width:100%}
|
|
2
|
-
/*$vite$:1*/
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import './scss/index.scss';
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
.group{--margin-horizontal:var(--size-400);--width:auto}.group.--flex-column .group-item{--width:100%}.group--scroller .group-item{--margin-vertical:0px}.group{margin:0 calc(var(--margin-horizontal)/-2);width:calc(100% + var(--margin-horizontal));flex-wrap:wrap;justify-content:flex-start;display:flex;position:relative}.group--offset-bottom{margin-bottom:calc(var(--margin-vertical)*-1)}.group--offset-top{margin-top:calc(var(--margin-vertical)*-1)}.group--scroller{margin-bottom:calc(var(--scrollbar-width)*-1);padding-bottom:var(--scrollbar-width);flex-flow:row;overflow-y:hidden}.group-item{margin:var(--margin-vertical)calc(var(--margin-horizontal)/2)0;width:var(--width);display:flex;position:relative}.group-item[class*=--width]{width:calc(var(--width) - var(--margin-horizontal))}
|
|
2
|
-
/*$vite$:1*/
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { reactive } from '@esportsplus/reactivity';
|
|
2
|
-
import './scss/index.scss';
|
|
3
|
-
let key = Symbol(), observer = null;
|
|
4
|
-
export default (background) => {
|
|
5
|
-
if (observer === null) {
|
|
6
|
-
observer = new IntersectionObserver((entries) => {
|
|
7
|
-
let disconnected = 0, n = entries.length;
|
|
8
|
-
for (let i = 0; i < n; i++) {
|
|
9
|
-
let { isIntersecting, target } = entries[i];
|
|
10
|
-
if (target.isConnected) {
|
|
11
|
-
target[key].highlight = +isIntersecting;
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
14
|
-
disconnected++;
|
|
15
|
-
observer.unobserve(target);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
if (n - disconnected === 0) {
|
|
19
|
-
observer.disconnect();
|
|
20
|
-
observer = null;
|
|
21
|
-
}
|
|
22
|
-
}, { threshold: 1 });
|
|
23
|
-
}
|
|
24
|
-
let state = reactive({
|
|
25
|
-
highlight: 0
|
|
26
|
-
});
|
|
27
|
-
return {
|
|
28
|
-
attributes: {
|
|
29
|
-
class: 'highlight',
|
|
30
|
-
onrender: function (element) {
|
|
31
|
-
element[key] = state;
|
|
32
|
-
observer.observe(element);
|
|
33
|
-
},
|
|
34
|
-
style: [
|
|
35
|
-
() => `--highlight: ${state.highlight}`,
|
|
36
|
-
`--background: ${background}`,
|
|
37
|
-
]
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import './scss/index.scss';
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
.icon{--color:inherit;--height:var(--size);--margin-horizontal:var(--size-300);--size:var(--size-400);--width:var(--size);color:var(--color);flex:0 0 var(--width);height:var(--height);width:var(--width);display:flex;position:relative}.icon svg{color:currentColor;fill:currentColor;width:100%;height:100%}
|
|
2
|
-
/*$vite$:1*/
|
package/dist/components/index.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
export * as accordion from './accordion/index.js';
|
|
2
|
-
export * as anchor from './anchor/index.js';
|
|
3
|
-
export * as banner from './banner/index.js';
|
|
4
|
-
export * as border from './border/index.js';
|
|
5
|
-
export * as bubble from './bubble/index.js';
|
|
6
|
-
export * as button from './button/index.js';
|
|
7
|
-
export * as card from './card/index.js';
|
|
8
|
-
export * as clipboard from './clipboard/index.js';
|
|
9
|
-
export * as container from './container/index.js';
|
|
10
|
-
export * as counter from './counter/index.js';
|
|
11
|
-
export * as ellipsis from './ellipsis/index.js';
|
|
12
|
-
export * as field from './field/index.js';
|
|
13
|
-
export * as footer from './footer/index.js';
|
|
14
|
-
export * as form from './form/index.js';
|
|
15
|
-
export * as frame from './frame/index.js';
|
|
16
|
-
export * as grid from './grid/index.js';
|
|
17
|
-
export * as group from './group/index.js';
|
|
18
|
-
export * as highlight from './highlight/index.js';
|
|
19
|
-
export * as icon from './icon/index.js';
|
|
20
|
-
export * as json from './json/index.js';
|
|
21
|
-
export * as link from './link/index.js';
|
|
22
|
-
export * as loader from './loader/index.js';
|
|
23
|
-
export * as loading from './loading/index.js';
|
|
24
|
-
export * as magnet from './magnet/index.js';
|
|
25
|
-
export * as modal from './modal/index.js';
|
|
26
|
-
export * as normalize from './normalize/index.js';
|
|
27
|
-
export * as number from './number/index.js';
|
|
28
|
-
export * as page from './page/index.js';
|
|
29
|
-
export * as root from './root/index.js';
|
|
30
|
-
export * as row from './row/index.js';
|
|
31
|
-
export * as scrollbar from './scrollbar/index.js';
|
|
32
|
-
export * as sidebar from './sidebar/index.js';
|
|
33
|
-
export * as site from './site/index.js';
|
|
34
|
-
export * as text from './text/index.js';
|
|
35
|
-
export * as thumbnail from './thumbnail/index.js';
|
|
36
|
-
export * as tooltip from './tooltip/index.js';
|
|
37
|
-
export * as truncate from './truncate/index.js';
|
|
38
|
-
export * as typewriter from './typewriter/index.js';
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export default (content, name) => {
|
|
2
|
-
let link = document.createElement('a');
|
|
3
|
-
link.download = name + '.json';
|
|
4
|
-
link.href = window.URL.createObjectURL(new Blob([JSON.stringify(content)], { type: 'application/json' }));
|
|
5
|
-
document.body.appendChild(link);
|
|
6
|
-
link.click();
|
|
7
|
-
document.body.removeChild(link);
|
|
8
|
-
};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { html } from '@esportsplus/template';
|
|
2
|
-
export default ({ attributes, content }) => {
|
|
3
|
-
return {
|
|
4
|
-
attributes: {
|
|
5
|
-
class: 'link--hover'
|
|
6
|
-
},
|
|
7
|
-
html: html `
|
|
8
|
-
<span class='link-hover link-hover--one' ${attributes}>
|
|
9
|
-
${content}
|
|
10
|
-
</span>
|
|
11
|
-
|
|
12
|
-
<span class='link-hover link-hover--two' ${attributes}>
|
|
13
|
-
${content}
|
|
14
|
-
</span>
|
|
15
|
-
`
|
|
16
|
-
};
|
|
17
|
-
};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
.link{--background:var(--background-default);--background-active:var(--background-default);--background-default:transparent;--background-hover:var(--background-default);--background-pressed:var(--background-default);--border-color:var(--border-color-default);--border-color-active:var(--border-color-default);--border-color-default:var(--background);--border-color-hover:var(--border-color-default);--border-color-pressed:var(--border-color-default);--border-radius:var(--border-radius-400);--border-width:0px;--color:var(--color-default);--color-active:var(--color-default);--color-default:var(--color-text-400);--color-hover:var(--color-default);--color-pressed:var(--color-default);--font-size:var(--font-size-400);--font-weight:var(--font-weight-500);--line-height:var(--line-height-400);--padding-horizontal:0px;--padding-vertical:var(--size-400);--width:auto}.link.--active{--background:var(--background-active);--border-color:var(--border-color-active);--color:var(--color-active)}.link:not(.--active):hover{--background:var(--background-hover);--border-color:var(--border-color-hover);--color:var(--color-hover)}.link:not(.--active):active{--background:var(--background-pressed);--border-color:var(--border-color-pressed);--color:var(--color-pressed)}.link{background:var(--background);color:var(--color);cursor:pointer;font-size:var(--font-size);line-height:var(--line-height);padding:calc(var(--padding-vertical) - var(--border-width))calc(var(--padding-horizontal) - var(--border-width));transition:background var(--transition-duration)ease-in-out,border-color var(--transition-duration)ease-in-out,color var(--transition-duration)ease-in-out,opacity var(--transition-duration)ease-in-out;width:var(--width);flex-wrap:wrap;place-content:center flex-start;display:flex;position:relative}.link--hover.tooltip:hover .link-hover--one,.link--hover:not(.--active):hover .link-hover--one{opacity:0;transform:translateY(-75%)}.link--hover.tooltip:hover .link-hover--two,.link--hover:not(.--active):hover .link-hover--two{opacity:1;transform:translate(50%,50%)}.link--underline.--active,.link--underline:not(.--active):hover{text-decoration:underline}.link-hover{transition:opacity .3s ease-in-out,all .3s cubic-bezier(.23,.65,.74,1.09)}.link-hover--one{transform:translateY(0)}.link-hover--two{opacity:0;padding:0 var(--padding-horizontal);white-space:nowrap;position:absolute;bottom:50%;right:50%;transform:translate(50%,125%)}
|
|
2
|
-
/*$vite$:1*/
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { html } from '@esportsplus/template';
|
|
2
|
-
import { reactive } from '@esportsplus/reactivity';
|
|
3
|
-
import './scss/index.scss';
|
|
4
|
-
export default ({ attributes, content }) => {
|
|
5
|
-
let state = reactive({
|
|
6
|
-
load: false,
|
|
7
|
-
scale: false
|
|
8
|
-
});
|
|
9
|
-
setTimeout(() => {
|
|
10
|
-
state.scale = true;
|
|
11
|
-
}, 300);
|
|
12
|
-
return html `
|
|
13
|
-
<div class='loader ${() => state.load && 'loader--load'}'>
|
|
14
|
-
<div class='loader ${() => state.load && 'loader--load'}'>
|
|
15
|
-
<div class='loader-content'>
|
|
16
|
-
<div
|
|
17
|
-
class='
|
|
18
|
-
${() => state.scale && 'loader-logo--scale'}
|
|
19
|
-
loader-logo
|
|
20
|
-
text
|
|
21
|
-
--flex-center
|
|
22
|
-
--text-uppercase
|
|
23
|
-
--text-600
|
|
24
|
-
'
|
|
25
|
-
style='color: var(--color-grey-500);'
|
|
26
|
-
onanimationend='${({ animationName: name }) => {
|
|
27
|
-
if (name === 'scale') {
|
|
28
|
-
state.load = true;
|
|
29
|
-
}
|
|
30
|
-
}}'
|
|
31
|
-
${attributes}
|
|
32
|
-
>
|
|
33
|
-
${content}
|
|
34
|
-
</div>
|
|
35
|
-
</div>
|
|
36
|
-
</div>
|
|
37
|
-
</div>
|
|
38
|
-
`;
|
|
39
|
-
};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
.loader-logo{--size:10svh;--translateY:8px}.loader{background-color:var(--color-black-500);opacity:1;pointer-events:none;visibility:visible;z-index:9999;transition:all .3s ease-in-out;position:fixed;inset:0}.loader--load{animation:.6s ease-in-out .2s both move}.loader--load .loader--load{animation:.6s ease-in-out both move}@keyframes move{0%{transform:translateY(0)}80%{transform:translateY(-102%)}to{transform:translateY(-102%)}}.loader .loader{background-color:var(--color-black-400)}.loader-content{position:absolute;inset:50% auto auto 50%;transform:translate(-50%)translateY(-50%)}.loader-logo{color:#fff}.loader-logo--scale{animation:.32s both scale}@keyframes scale{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale3d(1.8,1.8,1.8)}}
|
|
2
|
-
/*$vite$:1*/
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { html } from '@esportsplus/template';
|
|
2
|
-
import './scss/index.scss';
|
|
3
|
-
export default (attributes) => {
|
|
4
|
-
return html `
|
|
5
|
-
<div
|
|
6
|
-
class='loading --border-width-700 --size-800'
|
|
7
|
-
style='--border-color: var(--color-border-500);'
|
|
8
|
-
${attributes}
|
|
9
|
-
>
|
|
10
|
-
</div>
|
|
11
|
-
`;
|
|
12
|
-
};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
.loading{--animation-duration:.64s;--border-color:var(--color);--border-width:var(--border-width-400);--size:var(--size-400);animation:loading var(--animation-duration)linear infinite;border:var(--border-width)solid color-mix(in srgb,var(--border-color),transparent 90%);border-left-color:var(--border-color);height:var(--size);width:var(--size);border-radius:100%}@keyframes loading{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
|
|
2
|
-
/*$vite$:1*/
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { reactive } from '@esportsplus/reactivity';
|
|
2
|
-
import { html } from '@esportsplus/template';
|
|
3
|
-
import './scss/index.scss';
|
|
4
|
-
export default ({ attributes, hide }) => {
|
|
5
|
-
let active = false, events = {
|
|
6
|
-
onmouseover: function () {
|
|
7
|
-
let { offsetHeight, offsetLeft, offsetTop, offsetWidth } = this;
|
|
8
|
-
active = true;
|
|
9
|
-
state.height = offsetHeight;
|
|
10
|
-
state.left = offsetLeft;
|
|
11
|
-
state.opacity = 1;
|
|
12
|
-
state.top = offsetTop;
|
|
13
|
-
state.width = offsetWidth;
|
|
14
|
-
}
|
|
15
|
-
}, state = reactive({
|
|
16
|
-
height: null,
|
|
17
|
-
hide: true,
|
|
18
|
-
left: 0,
|
|
19
|
-
opacity: 0,
|
|
20
|
-
top: 0,
|
|
21
|
-
width: 0
|
|
22
|
-
});
|
|
23
|
-
if (hide === true) {
|
|
24
|
-
events.onmouseout = () => {
|
|
25
|
-
active = false;
|
|
26
|
-
setTimeout(() => {
|
|
27
|
-
if (active === true) {
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
state.opacity = 0;
|
|
31
|
-
}, 50);
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
return {
|
|
35
|
-
html: html `
|
|
36
|
-
<div class='magnet' style='${() => `
|
|
37
|
-
height: ${state.height ? `${state.height}px` : '100%'};
|
|
38
|
-
opacity: ${state.opacity};
|
|
39
|
-
transform: translate(${state.left}px, ${state.top}px);
|
|
40
|
-
width: ${state.width}px;
|
|
41
|
-
`}' ${attributes}></div>
|
|
42
|
-
`,
|
|
43
|
-
sibling: {
|
|
44
|
-
attributes: events
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
.magnet{--background:transparent;--border-radius:var(--border-radius-400);--timing-function:var(--timing-circ);background:var(--background);border-radius:var(--border-radius);opacity:0;height:0;transition:height var(--transition-duration)var(--timing-function),opacity var(--transition-duration)var(--timing-function),transform var(--transition-duration)var(--timing-function),width var(--transition-duration)var(--timing-function);z-index:-1;width:0;position:absolute;top:0;left:0}
|
|
2
|
-
/*$vite$:1*/
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import './scss/index.scss';
|