@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.
Files changed (131) hide show
  1. package/build/components/index.d.ts +20 -20
  2. package/build/components/index.js +20 -20
  3. package/package.json +1 -1
  4. package/src/components/index.ts +20 -20
  5. package/dist/components/accordion/index.js +0 -26
  6. package/dist/components/accordion/scss/index.scss +0 -2
  7. package/dist/components/anchor/index.js +0 -1
  8. package/dist/components/anchor/scss/index.scss +0 -2
  9. package/dist/components/banner/index.js +0 -1
  10. package/dist/components/banner/scss/index.scss +0 -2
  11. package/dist/components/border/index.js +0 -1
  12. package/dist/components/border/scss/index.scss +0 -2
  13. package/dist/components/bubble/index.js +0 -1
  14. package/dist/components/bubble/scss/index.scss +0 -2
  15. package/dist/components/button/index.js +0 -1
  16. package/dist/components/button/scss/index.scss +0 -2
  17. package/dist/components/card/index.js +0 -1
  18. package/dist/components/card/scss/index.scss +0 -2
  19. package/dist/components/clipboard/index.js +0 -2
  20. package/dist/components/clipboard/write.js +0 -9
  21. package/dist/components/container/index.js +0 -1
  22. package/dist/components/container/scss/index.scss +0 -2
  23. package/dist/components/counter/index.js +0 -78
  24. package/dist/components/counter/scss/index.scss +0 -2
  25. package/dist/components/ellipsis/index.js +0 -9
  26. package/dist/components/ellipsis/scss/index.scss +0 -2
  27. package/dist/components/field/checkbox.js +0 -52
  28. package/dist/components/field/description.js +0 -11
  29. package/dist/components/field/error.js +0 -13
  30. package/dist/components/field/file.js +0 -51
  31. package/dist/components/field/index.js +0 -9
  32. package/dist/components/field/optional.js +0 -16
  33. package/dist/components/field/scss/index.scss +0 -2
  34. package/dist/components/field/select.js +0 -135
  35. package/dist/components/field/switch.js +0 -6
  36. package/dist/components/field/text.js +0 -64
  37. package/dist/components/field/textarea.js +0 -5
  38. package/dist/components/field/title.js +0 -21
  39. package/dist/components/footer/index.js +0 -60
  40. package/dist/components/footer/scss/index.scss +0 -2
  41. package/dist/components/form/action.js +0 -57
  42. package/dist/components/form/index.js +0 -3
  43. package/dist/components/form/input.js +0 -10
  44. package/dist/components/form/types.js +0 -1
  45. package/dist/components/frame/index.js +0 -1
  46. package/dist/components/frame/scss/index.scss +0 -2
  47. package/dist/components/grid/index.js +0 -1
  48. package/dist/components/grid/scss/index.scss +0 -2
  49. package/dist/components/group/index.js +0 -1
  50. package/dist/components/group/scss/index.scss +0 -2
  51. package/dist/components/highlight/index.js +0 -40
  52. package/dist/components/highlight/scss/index.scss +0 -2
  53. package/dist/components/icon/index.js +0 -1
  54. package/dist/components/icon/scss/index.scss +0 -2
  55. package/dist/components/index.js +0 -38
  56. package/dist/components/json/download.js +0 -8
  57. package/dist/components/json/index.js +0 -2
  58. package/dist/components/link/hover.js +0 -17
  59. package/dist/components/link/index.js +0 -3
  60. package/dist/components/link/scss/index.scss +0 -2
  61. package/dist/components/loader/index.js +0 -39
  62. package/dist/components/loader/scss/index.scss +0 -2
  63. package/dist/components/loading/index.js +0 -12
  64. package/dist/components/loading/scss/index.scss +0 -2
  65. package/dist/components/magnet/index.js +0 -47
  66. package/dist/components/magnet/scss/index.scss +0 -2
  67. package/dist/components/modal/index.js +0 -1
  68. package/dist/components/modal/scss/index.scss +0 -2
  69. package/dist/components/normalize/index.js +0 -1
  70. package/dist/components/normalize/scss/index.scss +0 -3
  71. package/dist/components/number/index.js +0 -2
  72. package/dist/components/page/index.js +0 -11
  73. package/dist/components/page/scss/index.scss +0 -2
  74. package/dist/components/root/index.js +0 -3
  75. package/dist/components/root/onclick.js +0 -14
  76. package/dist/components/root/scss/index.scss +0 -2
  77. package/dist/components/row/index.js +0 -1
  78. package/dist/components/row/scss/index.scss +0 -2
  79. package/dist/components/scrollbar/index.js +0 -42
  80. package/dist/components/scrollbar/scss/index.scss +0 -2
  81. package/dist/components/sidebar/index.js +0 -1
  82. package/dist/components/sidebar/scss/index.scss +0 -2
  83. package/dist/components/site/index.js +0 -17
  84. package/dist/components/site/scss/index.scss +0 -2
  85. package/dist/components/text/index.js +0 -1
  86. package/dist/components/text/scss/index.scss +0 -2
  87. package/dist/components/thumbnail/index.js +0 -1
  88. package/dist/components/thumbnail/scss/index.scss +0 -2
  89. package/dist/components/tooltip/index.js +0 -64
  90. package/dist/components/tooltip/scss/index.scss +0 -2
  91. package/dist/components/truncate/index.js +0 -2
  92. package/dist/components/typewriter/index.js +0 -42
  93. package/dist/components/typewriter/scss/index.scss +0 -2
  94. package/dist/css-utilities/[margin,padding]/scss/index.scss +0 -2
  95. package/dist/css-utilities/absolute/scss/index.scss +0 -2
  96. package/dist/css-utilities/background/scss/index.scss +0 -2
  97. package/dist/css-utilities/border/scss/index.scss +0 -2
  98. package/dist/css-utilities/color/scss/index.scss +0 -2
  99. package/dist/css-utilities/disabled/scss/index.scss +0 -2
  100. package/dist/css-utilities/flex/scss/index.scss +0 -2
  101. package/dist/css-utilities/glass/scss/index.scss +0 -2
  102. package/dist/css-utilities/hidden/scss/index.scss +0 -2
  103. package/dist/css-utilities/index.js +0 -18
  104. package/dist/css-utilities/inline/scss/index.scss +0 -2
  105. package/dist/css-utilities/line-height/scss/index.scss +0 -2
  106. package/dist/css-utilities/not-allowed/scss/index.scss +0 -2
  107. package/dist/css-utilities/pointer/scss/index.scss +0 -2
  108. package/dist/css-utilities/size/scss/index.scss +0 -2
  109. package/dist/css-utilities/squircle/scss/index.scss +0 -2
  110. package/dist/css-utilities/text/scss/index.scss +0 -2
  111. package/dist/css-utilities/viewport/scss/index.scss +0 -2
  112. package/dist/css-utilities/width/scss/index.scss +0 -2
  113. package/dist/fonts/index.js +0 -1
  114. package/dist/fonts/montserrat/index.js +0 -1
  115. package/dist/fonts/montserrat/scss/Montserrat-Bold.woff +0 -0
  116. package/dist/fonts/montserrat/scss/Montserrat-Bold.woff2 +0 -0
  117. package/dist/fonts/montserrat/scss/Montserrat-BoldItalic.woff +0 -0
  118. package/dist/fonts/montserrat/scss/Montserrat-BoldItalic.woff2 +0 -0
  119. package/dist/fonts/montserrat/scss/Montserrat-Italic.woff +0 -0
  120. package/dist/fonts/montserrat/scss/Montserrat-Italic.woff2 +0 -0
  121. package/dist/fonts/montserrat/scss/Montserrat-Medium.woff +0 -0
  122. package/dist/fonts/montserrat/scss/Montserrat-Medium.woff2 +0 -0
  123. package/dist/fonts/montserrat/scss/Montserrat-MediumItalic.woff +0 -0
  124. package/dist/fonts/montserrat/scss/Montserrat-MediumItalic.woff2 +0 -0
  125. package/dist/fonts/montserrat/scss/Montserrat-Regular.woff +0 -0
  126. package/dist/fonts/montserrat/scss/Montserrat-Regular.woff2 +0 -0
  127. package/dist/fonts/montserrat/scss/Montserrat-SemiBold.woff +0 -0
  128. package/dist/fonts/montserrat/scss/Montserrat-SemiBold.woff2 +0 -0
  129. package/dist/fonts/montserrat/scss/Montserrat-SemiBoldItalic.woff +0 -0
  130. package/dist/fonts/montserrat/scss/Montserrat-SemiBoldItalic.woff2 +0 -0
  131. 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,6 +0,0 @@
1
- import checkbox from './checkbox.js';
2
- export default (data) => {
3
- data.mask = data.mask || {};
4
- data.mask.class = `field-mask--switch ${data.mask?.class || ''}`;
5
- return checkbox(data);
6
- };
@@ -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,5 +0,0 @@
1
- import text from './text.js';
2
- export default (data) => {
3
- data.textarea = true;
4
- return text(data);
5
- };
@@ -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
- &copy; ${`${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,3 +0,0 @@
1
- import action from './action.js';
2
- import input from './input.js';
3
- export default { action, input };
@@ -1,10 +0,0 @@
1
- let key = Symbol();
2
- const get = (element) => {
3
- return element ? element[key] : undefined;
4
- };
5
- const onrender = (reactive) => {
6
- return (element) => {
7
- element[key] = reactive;
8
- };
9
- };
10
- export default { get, onrender };
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- import './scss/index.scss';
@@ -1,2 +0,0 @@
1
- .frame{flex-wrap:wrap;justify-content:flex-start;width:100%;display:none;position:relative}.frame.--active{display:flex}
2
- /*$vite$:1*/
@@ -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,2 +0,0 @@
1
- .highlight{--background:transparent;--highlight:1;background:linear-gradient(90deg,var(--background)50%,transparent 50%)110% 0/200% 100% no-repeat;background-position:calc((1 - var(--highlight))*110%)0;transition:background-position .32s}
2
- /*$vite$:1*/
@@ -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*/
@@ -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,2 +0,0 @@
1
- import download from './download.js';
2
- export default { download };
@@ -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,3 +0,0 @@
1
- import hover from './hover.js';
2
- import './scss/index.scss';
3
- export default { hover };
@@ -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';