@esportsplus/ui 0.18.1 → 0.19.0

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 (91) hide show
  1. package/.github/dependabot.yml +2 -0
  2. package/.github/workflows/bump.yml +2 -0
  3. package/.github/workflows/dependabot.yml +12 -0
  4. package/.github/workflows/publish.yml +2 -0
  5. package/build/components/accordion/index.d.ts +5 -15
  6. package/build/components/accordion/index.js +28 -20
  7. package/build/components/counter/index.d.ts +2 -2
  8. package/build/components/counter/index.js +10 -10
  9. package/build/components/ellipsis/index.d.ts +1 -1
  10. package/build/components/field/checkbox.d.ts +9 -339
  11. package/build/components/field/checkbox.js +24 -21
  12. package/build/components/field/description.d.ts +3 -3
  13. package/build/components/field/error.d.ts +3 -2
  14. package/build/components/field/index.d.ts +1721 -3152
  15. package/build/components/field/input.d.ts +18 -348
  16. package/build/components/field/input.js +33 -23
  17. package/build/components/field/select.d.ts +119 -226
  18. package/build/components/field/select.js +81 -69
  19. package/build/components/field/title.d.ts +114 -107
  20. package/build/components/field/title.js +15 -8
  21. package/build/components/form/action.d.ts +21 -6
  22. package/build/components/form/action.js +20 -9
  23. package/build/components/form/index.d.ts +130 -2
  24. package/build/components/frame/index.d.ts +3 -112
  25. package/build/components/frame/index.js +4 -6
  26. package/build/components/highlight/index.d.ts +5 -7
  27. package/build/components/highlight/index.js +23 -15
  28. package/build/components/icon/index.d.ts +3 -3
  29. package/build/components/index.d.ts +2 -2
  30. package/build/components/index.js +2 -2
  31. package/build/components/loader/index.d.ts +3 -3
  32. package/build/components/loader/index.js +13 -16
  33. package/build/components/loading/index.d.ts +1 -1
  34. package/build/components/overlay/index.d.ts +3 -112
  35. package/build/components/overlay/index.js +4 -6
  36. package/build/components/page/index.d.ts +0 -12
  37. package/build/components/page/index.js +0 -10
  38. package/build/components/root/onclick.js +4 -6
  39. package/build/components/scrollbar/index.d.ts +8 -112
  40. package/build/components/scrollbar/index.js +25 -20
  41. package/build/components/sidebar/index.d.ts +3 -112
  42. package/build/components/sidebar/index.js +4 -6
  43. package/build/components/site/index.d.ts +3 -112
  44. package/build/components/site/index.js +5 -8
  45. package/build/components/template/index.d.ts +8 -4
  46. package/build/components/template/index.js +5 -4
  47. package/build/components/tooltip/index.d.ts +235 -332
  48. package/build/components/tooltip/index.js +3 -106
  49. package/build/components/tooltip/menu.d.ts +20 -0
  50. package/build/components/tooltip/menu.js +28 -0
  51. package/build/components/tooltip/onclick.d.ts +124 -0
  52. package/build/components/tooltip/onclick.js +67 -0
  53. package/build/components/tooltip/onhover.d.ts +7 -0
  54. package/build/components/tooltip/onhover.js +25 -0
  55. package/build/components/typewriter/index.d.ts +4 -6
  56. package/build/components/typewriter/index.js +34 -33
  57. package/package.json +10 -9
  58. package/src/components/accordion/index.ts +41 -26
  59. package/src/components/counter/index.ts +15 -13
  60. package/src/components/field/checkbox.ts +31 -30
  61. package/src/components/field/description.ts +2 -2
  62. package/src/components/field/error.ts +2 -2
  63. package/src/components/field/input.ts +41 -33
  64. package/src/components/field/select.ts +123 -108
  65. package/src/components/field/title.ts +18 -8
  66. package/src/components/form/action.ts +75 -47
  67. package/src/components/frame/index.ts +4 -9
  68. package/src/components/highlight/index.ts +53 -39
  69. package/src/components/icon/index.ts +3 -3
  70. package/src/components/index.ts +2 -2
  71. package/src/components/loader/index.ts +15 -17
  72. package/src/components/overlay/index.ts +4 -9
  73. package/src/components/page/index.ts +1 -17
  74. package/src/components/root/onclick.ts +6 -7
  75. package/src/components/scrollbar/index.ts +34 -23
  76. package/src/components/sidebar/index.ts +4 -9
  77. package/src/components/site/index.ts +5 -13
  78. package/src/components/template/index.ts +18 -10
  79. package/src/components/tooltip/index.ts +4 -156
  80. package/src/components/tooltip/menu.ts +52 -0
  81. package/src/components/tooltip/onclick.ts +97 -0
  82. package/src/components/tooltip/onhover.ts +35 -0
  83. package/src/components/typewriter/index.ts +44 -41
  84. package/build/components/footer/index.d.ts +0 -22
  85. package/build/components/footer/index.js +0 -61
  86. package/build/components/footer/scss/index.scss +0 -2
  87. package/build/components/form/types.d.ts +0 -10
  88. package/build/components/form/types.js +0 -1
  89. package/src/components/footer/index.ts +0 -74
  90. package/src/components/footer/scss/index.scss +0 -26
  91. package/src/components/form/types.ts +0 -14
@@ -1,9 +1,7 @@
1
- import { toArray } from '@esportsplus/utilities';
2
1
  import scrollbar from '../../components/scrollbar/index.js';
3
- import template from '../../components/template/index.js';
4
2
  import './scss/index.scss';
5
- export default template.factory((attributes, content) => {
6
- attributes.class = toArray(attributes.class);
7
- attributes.class.push('frame');
8
- return scrollbar(attributes, content);
3
+ export default scrollbar.bind({
4
+ attributes: {
5
+ class: 'frame'
6
+ }
9
7
  });
@@ -1,10 +1,8 @@
1
- import { Element } from '@esportsplus/template';
1
+ import { Attributes } from '@esportsplus/template';
2
2
  import './scss/index.scss';
3
- declare const _default: (background: string) => {
4
- attributes: {
5
- class: string;
6
- onrender: (element: Element) => void;
7
- style: (string | (() => string))[];
8
- };
3
+ declare const _default: {
4
+ (): import("@esportsplus/template").Renderable<unknown>;
5
+ (content: import("@esportsplus/template").Renderable<unknown>): import("@esportsplus/template").Renderable<unknown>;
6
+ (attributes: Attributes, content: import("@esportsplus/template").Renderable<unknown>): import("@esportsplus/template").Renderable<unknown>;
9
7
  };
10
8
  export default _default;
@@ -1,7 +1,11 @@
1
1
  import { reactive } from '@esportsplus/reactivity';
2
+ import { html } from '@esportsplus/template';
3
+ import { omit } from '@esportsplus/utilities';
4
+ import template from '../../components/template/index.js';
2
5
  import './scss/index.scss';
6
+ const OMIT = ['background'];
3
7
  let key = Symbol(), observer = null;
4
- export default (background) => {
8
+ export default template.factory((attributes, content) => {
5
9
  if (observer === null) {
6
10
  observer = new IntersectionObserver((entries) => {
7
11
  let disconnected = 0, n = entries.length;
@@ -24,17 +28,21 @@ export default (background) => {
24
28
  let state = reactive({
25
29
  highlight: 0
26
30
  });
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
- };
31
+ return html `
32
+ <div class='highlight'
33
+ ${omit(attributes, OMIT)}
34
+ ${{
35
+ onrender: (element) => {
36
+ element[key] = state;
37
+ observer.observe(element);
38
+ },
39
+ style: [
40
+ () => `--highlight: ${state.highlight}`,
41
+ `--background: ${attributes.background}`,
42
+ ]
43
+ }}
44
+ >
45
+ ${content}
46
+ </div>
47
+ `;
48
+ });
@@ -1,7 +1,7 @@
1
- import { Attributes } from '@esportsplus/template';
2
1
  import './scss/index.scss';
3
2
  declare const _default: {
4
- (content: string): import("@esportsplus/template").Renderable;
5
- (attributes: Attributes, content: string): import("@esportsplus/template").Renderable;
3
+ (): import("@esportsplus/template").Renderable<unknown>;
4
+ (content: string): import("@esportsplus/template").Renderable<unknown>;
5
+ (attributes: import("@esportsplus/template").Attributes, content: string): import("@esportsplus/template").Renderable<unknown>;
6
6
  };
7
7
  export default _default;
@@ -10,7 +10,6 @@ export * as container from './container/index.js';
10
10
  export { default as counter } from './counter/index.js';
11
11
  export { default as ellipsis } from './ellipsis/index.js';
12
12
  export { default as field } from './field/index.js';
13
- export { default as footer } from './footer/index.js';
14
13
  export { default as form } from './form/index.js';
15
14
  export * as frame from './frame/index.js';
16
15
  export * as grid from './grid/index.js';
@@ -24,12 +23,13 @@ export { default as loading } from './loading/index.js';
24
23
  export * as modal from './modal/index.js';
25
24
  export { default as number } from './number/index.js';
26
25
  export { default as overlay } from './overlay/index.js';
27
- export { default as page } from './page/index.js';
26
+ export * from './page/index.js';
28
27
  export { default as root } from './root/index.js';
29
28
  export * as row from './row/index.js';
30
29
  export { default as scrollbar } from './scrollbar/index.js';
31
30
  export { default as sidebar } from './sidebar/index.js';
32
31
  export { default as site } from './site/index.js';
32
+ export { default as template } from './template/index.js';
33
33
  export * as text from './text/index.js';
34
34
  export * as thumbnail from './thumbnail/index.js';
35
35
  export { default as tooltip } from './tooltip/index.js';
@@ -10,7 +10,6 @@ export * as container from './container/index.js';
10
10
  export { default as counter } from './counter/index.js';
11
11
  export { default as ellipsis } from './ellipsis/index.js';
12
12
  export { default as field } from './field/index.js';
13
- export { default as footer } from './footer/index.js';
14
13
  export { default as form } from './form/index.js';
15
14
  export * as frame from './frame/index.js';
16
15
  export * as grid from './grid/index.js';
@@ -24,12 +23,13 @@ export { default as loading } from './loading/index.js';
24
23
  export * as modal from './modal/index.js';
25
24
  export { default as number } from './number/index.js';
26
25
  export { default as overlay } from './overlay/index.js';
27
- export { default as page } from './page/index.js';
26
+ export * from './page/index.js';
28
27
  export { default as root } from './root/index.js';
29
28
  export * as row from './row/index.js';
30
29
  export { default as scrollbar } from './scrollbar/index.js';
31
30
  export { default as sidebar } from './sidebar/index.js';
32
31
  export { default as site } from './site/index.js';
32
+ export { default as template } from './template/index.js';
33
33
  export * as text from './text/index.js';
34
34
  export * as thumbnail from './thumbnail/index.js';
35
35
  export { default as tooltip } from './tooltip/index.js';
@@ -1,7 +1,7 @@
1
- import { Attributes } from '@esportsplus/template';
2
1
  import './scss/index.scss';
3
2
  declare const _default: {
4
- (content: unknown): import("@esportsplus/template").Renderable;
5
- (attributes: Attributes, content: unknown): import("@esportsplus/template").Renderable;
3
+ (): import("@esportsplus/template").Renderable<unknown>;
4
+ (content: import("@esportsplus/template").Renderable<unknown>): import("@esportsplus/template").Renderable<unknown>;
5
+ (attributes: import("@esportsplus/template").Attributes, content: import("@esportsplus/template").Renderable<unknown>): import("@esportsplus/template").Renderable<unknown>;
6
6
  };
7
7
  export default _default;
@@ -1,9 +1,9 @@
1
- import { html } from '@esportsplus/template';
2
1
  import { reactive } from '@esportsplus/reactivity';
2
+ import { html } from '@esportsplus/template';
3
3
  import template from '../../components/template/index.js';
4
4
  import './scss/index.scss';
5
5
  export default template.factory((attributes, content) => {
6
- let state = reactive({
6
+ let c = () => state.load && 'loader--load', state = reactive({
7
7
  load: false,
8
8
  scale: false
9
9
  });
@@ -11,24 +11,21 @@ export default template.factory((attributes, content) => {
11
11
  state.scale = true;
12
12
  }, 300);
13
13
  return html `
14
- <div class='loader ${() => state.load && 'loader--load'}'>
15
- <div class='loader ${() => state.load && 'loader--load'}'>
14
+ <div class='loader' ${{ class: c }}>
15
+ <div class='loader' ${{ class: c }}>
16
16
  <div class='loader-content'>
17
17
  <div
18
- class='
19
- ${() => state.scale && 'loader-logo--scale'}
20
- loader-logo
21
- text
22
- --flex-center
23
- --text-uppercase --text-600
24
- '
18
+ class='loader-logo text --flex-center --text-uppercase --text-600'
25
19
  style='color: var(--color-grey-500);'
26
- onanimationend='${({ animationName: name }) => {
27
- if (name === 'scale') {
28
- state.load = true;
29
- }
30
- }}'
31
20
  ${attributes}
21
+ ${{
22
+ class: () => state.scale && 'loader-logo--scale',
23
+ onanimationend: ({ animationName: name }) => {
24
+ if (name === 'scale') {
25
+ state.load = true;
26
+ }
27
+ }
28
+ }}
32
29
  >
33
30
  ${content}
34
31
  </div>
@@ -1,4 +1,4 @@
1
1
  import { Attributes } from '@esportsplus/template';
2
2
  import './scss/index.scss';
3
- declare const _default: (attributes?: Attributes) => import("@esportsplus/template/build/types").RenderableTemplate;
3
+ declare const _default: (attributes?: Attributes) => Node;
4
4
  export default _default;
@@ -1,116 +1,7 @@
1
1
  import './scss/index.scss';
2
2
  declare const _default: {
3
- (content: unknown): import("@esportsplus/template").Renderable;
4
- (attributes: {
5
- class?: string | (string | (() => unknown))[];
6
- style?: string | (string | (() => unknown))[];
7
- } & {
8
- onabort?: ((event: UIEvent) => void) | undefined;
9
- onanimationcancel?: ((event: AnimationEvent) => void) | undefined;
10
- onanimationend?: ((event: AnimationEvent) => void) | undefined;
11
- onanimationiteration?: ((event: AnimationEvent) => void) | undefined;
12
- onanimationstart?: ((event: AnimationEvent) => void) | undefined;
13
- onauxclick?: ((event: MouseEvent) => void) | undefined;
14
- onbeforeinput?: ((event: InputEvent) => void) | undefined;
15
- onbeforetoggle?: ((event: Event) => void) | undefined;
16
- onblur?: ((event: FocusEvent) => void) | undefined;
17
- oncancel?: ((event: Event) => void) | undefined;
18
- oncanplay?: ((event: Event) => void) | undefined;
19
- oncanplaythrough?: ((event: Event) => void) | undefined;
20
- onchange?: ((event: Event) => void) | undefined;
21
- onclick?: ((event: MouseEvent) => void) | undefined;
22
- onclose?: ((event: Event) => void) | undefined;
23
- oncompositionend?: ((event: CompositionEvent) => void) | undefined;
24
- oncompositionstart?: ((event: CompositionEvent) => void) | undefined;
25
- oncompositionupdate?: ((event: CompositionEvent) => void) | undefined;
26
- oncontextlost?: ((event: Event) => void) | undefined;
27
- oncontextmenu?: ((event: MouseEvent) => void) | undefined;
28
- oncontextrestored?: ((event: Event) => void) | undefined;
29
- oncopy?: ((event: ClipboardEvent) => void) | undefined;
30
- oncuechange?: ((event: Event) => void) | undefined;
31
- oncut?: ((event: ClipboardEvent) => void) | undefined;
32
- ondblclick?: ((event: MouseEvent) => void) | undefined;
33
- ondrag?: ((event: DragEvent) => void) | undefined;
34
- ondragend?: ((event: DragEvent) => void) | undefined;
35
- ondragenter?: ((event: DragEvent) => void) | undefined;
36
- ondragleave?: ((event: DragEvent) => void) | undefined;
37
- ondragover?: ((event: DragEvent) => void) | undefined;
38
- ondragstart?: ((event: DragEvent) => void) | undefined;
39
- ondrop?: ((event: DragEvent) => void) | undefined;
40
- ondurationchange?: ((event: Event) => void) | undefined;
41
- onemptied?: ((event: Event) => void) | undefined;
42
- onended?: ((event: Event) => void) | undefined;
43
- onerror?: ((event: ErrorEvent) => void) | undefined;
44
- onfocus?: ((event: FocusEvent) => void) | undefined;
45
- onfocusin?: ((event: FocusEvent) => void) | undefined;
46
- onfocusout?: ((event: FocusEvent) => void) | undefined;
47
- onformdata?: ((event: FormDataEvent) => void) | undefined;
48
- ongotpointercapture?: ((event: PointerEvent) => void) | undefined;
49
- oninput?: ((event: Event) => void) | undefined;
50
- oninvalid?: ((event: Event) => void) | undefined;
51
- onkeydown?: ((event: KeyboardEvent) => void) | undefined;
52
- onkeypress?: ((event: KeyboardEvent) => void) | undefined;
53
- onkeyup?: ((event: KeyboardEvent) => void) | undefined;
54
- onload?: ((event: Event) => void) | undefined;
55
- onloadeddata?: ((event: Event) => void) | undefined;
56
- onloadedmetadata?: ((event: Event) => void) | undefined;
57
- onloadstart?: ((event: Event) => void) | undefined;
58
- onlostpointercapture?: ((event: PointerEvent) => void) | undefined;
59
- onmousedown?: ((event: MouseEvent) => void) | undefined;
60
- onmouseenter?: ((event: MouseEvent) => void) | undefined;
61
- onmouseleave?: ((event: MouseEvent) => void) | undefined;
62
- onmousemove?: ((event: MouseEvent) => void) | undefined;
63
- onmouseout?: ((event: MouseEvent) => void) | undefined;
64
- onmouseover?: ((event: MouseEvent) => void) | undefined;
65
- onmouseup?: ((event: MouseEvent) => void) | undefined;
66
- onpaste?: ((event: ClipboardEvent) => void) | undefined;
67
- onpause?: ((event: Event) => void) | undefined;
68
- onplay?: ((event: Event) => void) | undefined;
69
- onplaying?: ((event: Event) => void) | undefined;
70
- onpointercancel?: ((event: PointerEvent) => void) | undefined;
71
- onpointerdown?: ((event: PointerEvent) => void) | undefined;
72
- onpointerenter?: ((event: PointerEvent) => void) | undefined;
73
- onpointerleave?: ((event: PointerEvent) => void) | undefined;
74
- onpointermove?: ((event: PointerEvent) => void) | undefined;
75
- onpointerout?: ((event: PointerEvent) => void) | undefined;
76
- onpointerover?: ((event: PointerEvent) => void) | undefined;
77
- onpointerup?: ((event: PointerEvent) => void) | undefined;
78
- onprogress?: ((event: ProgressEvent<EventTarget>) => void) | undefined;
79
- onratechange?: ((event: Event) => void) | undefined;
80
- onreset?: ((event: Event) => void) | undefined;
81
- onresize?: ((event: UIEvent) => void) | undefined;
82
- onscroll?: ((event: Event) => void) | undefined;
83
- onscrollend?: ((event: Event) => void) | undefined;
84
- onsecuritypolicyviolation?: ((event: SecurityPolicyViolationEvent) => void) | undefined;
85
- onseeked?: ((event: Event) => void) | undefined;
86
- onseeking?: ((event: Event) => void) | undefined;
87
- onselect?: ((event: Event) => void) | undefined;
88
- onselectionchange?: ((event: Event) => void) | undefined;
89
- onselectstart?: ((event: Event) => void) | undefined;
90
- onslotchange?: ((event: Event) => void) | undefined;
91
- onstalled?: ((event: Event) => void) | undefined;
92
- onsubmit?: ((event: SubmitEvent) => void) | undefined;
93
- onsuspend?: ((event: Event) => void) | undefined;
94
- ontimeupdate?: ((event: Event) => void) | undefined;
95
- ontoggle?: ((event: Event) => void) | undefined;
96
- ontouchcancel?: ((event: TouchEvent) => void) | undefined;
97
- ontouchend?: ((event: TouchEvent) => void) | undefined;
98
- ontouchmove?: ((event: TouchEvent) => void) | undefined;
99
- ontouchstart?: ((event: TouchEvent) => void) | undefined;
100
- ontransitioncancel?: ((event: TransitionEvent) => void) | undefined;
101
- ontransitionend?: ((event: TransitionEvent) => void) | undefined;
102
- ontransitionrun?: ((event: TransitionEvent) => void) | undefined;
103
- ontransitionstart?: ((event: TransitionEvent) => void) | undefined;
104
- onvolumechange?: ((event: Event) => void) | undefined;
105
- onwaiting?: ((event: Event) => void) | undefined;
106
- onwebkitanimationend?: ((event: Event) => void) | undefined;
107
- onwebkitanimationiteration?: ((event: Event) => void) | undefined;
108
- onwebkitanimationstart?: ((event: Event) => void) | undefined;
109
- onwebkittransitionend?: ((event: Event) => void) | undefined;
110
- onwheel?: ((event: WheelEvent) => void) | undefined;
111
- } & Record<PropertyKey, unknown> & {
112
- scrollbar?: import("@esportsplus/template").Attributes;
113
- 'scrollbar-container-content'?: import("@esportsplus/template").Attributes;
114
- }, content: unknown): import("@esportsplus/template").Renderable;
3
+ (): import("@esportsplus/template").Renderable<unknown>;
4
+ (content: import("@esportsplus/template").Renderable<unknown>): import("@esportsplus/template").Renderable<unknown>;
5
+ (attributes: import("../../components/scrollbar/index.js").Attributes, content: import("@esportsplus/template").Renderable<unknown>): import("@esportsplus/template").Renderable<unknown>;
115
6
  };
116
7
  export default _default;
@@ -1,9 +1,7 @@
1
- import { toArray } from '@esportsplus/utilities';
2
1
  import scrollbar from '../../components/scrollbar/index.js';
3
- import template from '../../components/template/index.js';
4
2
  import './scss/index.scss';
5
- export default template.factory((attributes, content) => {
6
- attributes.class = toArray(attributes.class);
7
- attributes.class.push('overlay');
8
- return scrollbar(attributes, content);
3
+ export default scrollbar.bind({
4
+ attributes: {
5
+ class: 'overlay'
6
+ }
9
7
  });
@@ -1,13 +1 @@
1
1
  import './scss/index.scss';
2
- declare const _default: {
3
- subtitle: {
4
- class: string;
5
- };
6
- suptitle: {
7
- class: string;
8
- };
9
- title: {
10
- class: string;
11
- };
12
- };
13
- export default _default;
@@ -1,11 +1 @@
1
1
  import './scss/index.scss';
2
- const subtitle = {
3
- class: 'page-subtitle --margin-200 --text-crop-bottom'
4
- };
5
- const suptitle = {
6
- class: 'page-suptitle --text-bold-600 --text-crop --text-uppercase --text-300'
7
- };
8
- const title = {
9
- class: 'page-title --line-height-200 --margin-400 --text-crop'
10
- };
11
- export default { subtitle, suptitle, title };
@@ -1,14 +1,12 @@
1
- let queue = [];
1
+ import factory from '@esportsplus/queue';
2
+ let queue = factory(64);
2
3
  const onclick = async () => {
3
- if (queue.length === 0) {
4
- return;
5
- }
6
4
  let item;
7
- while (item = queue.pop()) {
5
+ while (item = queue.next()) {
8
6
  await item();
9
7
  }
10
8
  };
11
9
  onclick.push = (fn) => {
12
- queue.push(fn);
10
+ queue.add(fn);
13
11
  };
14
12
  export default onclick;
@@ -1,117 +1,13 @@
1
1
  import { type Attributes } from '@esportsplus/template';
2
2
  import './scss/index.scss';
3
+ type A = Attributes & {
4
+ scrollbar?: Attributes;
5
+ 'scrollbar-container-content'?: Attributes;
6
+ };
3
7
  declare const _default: {
4
- (content: unknown): import("@esportsplus/template").Renderable;
5
- (attributes: {
6
- class?: string | (string | (() => unknown))[];
7
- style?: string | (string | (() => unknown))[];
8
- } & {
9
- onabort?: ((event: UIEvent) => void) | undefined;
10
- onanimationcancel?: ((event: AnimationEvent) => void) | undefined;
11
- onanimationend?: ((event: AnimationEvent) => void) | undefined;
12
- onanimationiteration?: ((event: AnimationEvent) => void) | undefined;
13
- onanimationstart?: ((event: AnimationEvent) => void) | undefined;
14
- onauxclick?: ((event: MouseEvent) => void) | undefined;
15
- onbeforeinput?: ((event: InputEvent) => void) | undefined;
16
- onbeforetoggle?: ((event: Event) => void) | undefined;
17
- onblur?: ((event: FocusEvent) => void) | undefined;
18
- oncancel?: ((event: Event) => void) | undefined;
19
- oncanplay?: ((event: Event) => void) | undefined;
20
- oncanplaythrough?: ((event: Event) => void) | undefined;
21
- onchange?: ((event: Event) => void) | undefined;
22
- onclick?: ((event: MouseEvent) => void) | undefined;
23
- onclose?: ((event: Event) => void) | undefined;
24
- oncompositionend?: ((event: CompositionEvent) => void) | undefined;
25
- oncompositionstart?: ((event: CompositionEvent) => void) | undefined;
26
- oncompositionupdate?: ((event: CompositionEvent) => void) | undefined;
27
- oncontextlost?: ((event: Event) => void) | undefined;
28
- oncontextmenu?: ((event: MouseEvent) => void) | undefined;
29
- oncontextrestored?: ((event: Event) => void) | undefined;
30
- oncopy?: ((event: ClipboardEvent) => void) | undefined;
31
- oncuechange?: ((event: Event) => void) | undefined;
32
- oncut?: ((event: ClipboardEvent) => void) | undefined;
33
- ondblclick?: ((event: MouseEvent) => void) | undefined;
34
- ondrag?: ((event: DragEvent) => void) | undefined;
35
- ondragend?: ((event: DragEvent) => void) | undefined;
36
- ondragenter?: ((event: DragEvent) => void) | undefined;
37
- ondragleave?: ((event: DragEvent) => void) | undefined;
38
- ondragover?: ((event: DragEvent) => void) | undefined;
39
- ondragstart?: ((event: DragEvent) => void) | undefined;
40
- ondrop?: ((event: DragEvent) => void) | undefined;
41
- ondurationchange?: ((event: Event) => void) | undefined;
42
- onemptied?: ((event: Event) => void) | undefined;
43
- onended?: ((event: Event) => void) | undefined;
44
- onerror?: ((event: ErrorEvent) => void) | undefined;
45
- onfocus?: ((event: FocusEvent) => void) | undefined;
46
- onfocusin?: ((event: FocusEvent) => void) | undefined;
47
- onfocusout?: ((event: FocusEvent) => void) | undefined;
48
- onformdata?: ((event: FormDataEvent) => void) | undefined;
49
- ongotpointercapture?: ((event: PointerEvent) => void) | undefined;
50
- oninput?: ((event: Event) => void) | undefined;
51
- oninvalid?: ((event: Event) => void) | undefined;
52
- onkeydown?: ((event: KeyboardEvent) => void) | undefined;
53
- onkeypress?: ((event: KeyboardEvent) => void) | undefined;
54
- onkeyup?: ((event: KeyboardEvent) => void) | undefined;
55
- onload?: ((event: Event) => void) | undefined;
56
- onloadeddata?: ((event: Event) => void) | undefined;
57
- onloadedmetadata?: ((event: Event) => void) | undefined;
58
- onloadstart?: ((event: Event) => void) | undefined;
59
- onlostpointercapture?: ((event: PointerEvent) => void) | undefined;
60
- onmousedown?: ((event: MouseEvent) => void) | undefined;
61
- onmouseenter?: ((event: MouseEvent) => void) | undefined;
62
- onmouseleave?: ((event: MouseEvent) => void) | undefined;
63
- onmousemove?: ((event: MouseEvent) => void) | undefined;
64
- onmouseout?: ((event: MouseEvent) => void) | undefined;
65
- onmouseover?: ((event: MouseEvent) => void) | undefined;
66
- onmouseup?: ((event: MouseEvent) => void) | undefined;
67
- onpaste?: ((event: ClipboardEvent) => void) | undefined;
68
- onpause?: ((event: Event) => void) | undefined;
69
- onplay?: ((event: Event) => void) | undefined;
70
- onplaying?: ((event: Event) => void) | undefined;
71
- onpointercancel?: ((event: PointerEvent) => void) | undefined;
72
- onpointerdown?: ((event: PointerEvent) => void) | undefined;
73
- onpointerenter?: ((event: PointerEvent) => void) | undefined;
74
- onpointerleave?: ((event: PointerEvent) => void) | undefined;
75
- onpointermove?: ((event: PointerEvent) => void) | undefined;
76
- onpointerout?: ((event: PointerEvent) => void) | undefined;
77
- onpointerover?: ((event: PointerEvent) => void) | undefined;
78
- onpointerup?: ((event: PointerEvent) => void) | undefined;
79
- onprogress?: ((event: ProgressEvent<EventTarget>) => void) | undefined;
80
- onratechange?: ((event: Event) => void) | undefined;
81
- onreset?: ((event: Event) => void) | undefined;
82
- onresize?: ((event: UIEvent) => void) | undefined;
83
- onscroll?: ((event: Event) => void) | undefined;
84
- onscrollend?: ((event: Event) => void) | undefined;
85
- onsecuritypolicyviolation?: ((event: SecurityPolicyViolationEvent) => void) | undefined;
86
- onseeked?: ((event: Event) => void) | undefined;
87
- onseeking?: ((event: Event) => void) | undefined;
88
- onselect?: ((event: Event) => void) | undefined;
89
- onselectionchange?: ((event: Event) => void) | undefined;
90
- onselectstart?: ((event: Event) => void) | undefined;
91
- onslotchange?: ((event: Event) => void) | undefined;
92
- onstalled?: ((event: Event) => void) | undefined;
93
- onsubmit?: ((event: SubmitEvent) => void) | undefined;
94
- onsuspend?: ((event: Event) => void) | undefined;
95
- ontimeupdate?: ((event: Event) => void) | undefined;
96
- ontoggle?: ((event: Event) => void) | undefined;
97
- ontouchcancel?: ((event: TouchEvent) => void) | undefined;
98
- ontouchend?: ((event: TouchEvent) => void) | undefined;
99
- ontouchmove?: ((event: TouchEvent) => void) | undefined;
100
- ontouchstart?: ((event: TouchEvent) => void) | undefined;
101
- ontransitioncancel?: ((event: TransitionEvent) => void) | undefined;
102
- ontransitionend?: ((event: TransitionEvent) => void) | undefined;
103
- ontransitionrun?: ((event: TransitionEvent) => void) | undefined;
104
- ontransitionstart?: ((event: TransitionEvent) => void) | undefined;
105
- onvolumechange?: ((event: Event) => void) | undefined;
106
- onwaiting?: ((event: Event) => void) | undefined;
107
- onwebkitanimationend?: ((event: Event) => void) | undefined;
108
- onwebkitanimationiteration?: ((event: Event) => void) | undefined;
109
- onwebkitanimationstart?: ((event: Event) => void) | undefined;
110
- onwebkittransitionend?: ((event: Event) => void) | undefined;
111
- onwheel?: ((event: WheelEvent) => void) | undefined;
112
- } & Record<PropertyKey, unknown> & {
113
- scrollbar?: Attributes;
114
- 'scrollbar-container-content'?: Attributes;
115
- }, content: unknown): import("@esportsplus/template").Renderable;
8
+ (): import("@esportsplus/template").Renderable<unknown>;
9
+ (content: import("@esportsplus/template").Renderable<unknown>): import("@esportsplus/template").Renderable<unknown>;
10
+ (attributes: A, content: import("@esportsplus/template").Renderable<unknown>): import("@esportsplus/template").Renderable<unknown>;
116
11
  };
117
12
  export default _default;
13
+ export type { A as Attributes };
@@ -3,8 +3,9 @@ import { html } from '@esportsplus/template';
3
3
  import { omit } from '@esportsplus/utilities';
4
4
  import template from '../../components/template/index.js';
5
5
  import './scss/index.scss';
6
+ const OMIT = ['scrollbar', 'scrollbar-container-content'];
6
7
  let root = document.body, width;
7
- export default template.factory((attributes, content) => {
8
+ export default template.factory(function (attributes, content) {
8
9
  let state = reactive({
9
10
  height: 100,
10
11
  translate: 0
@@ -12,35 +13,39 @@ export default template.factory((attributes, content) => {
12
13
  return html `
13
14
  <div
14
15
  class='scrollbar-container'
15
- ${omit(attributes, ['scrollbar-container-content', 'scrollbar'])}
16
+ ${omit(attributes, OMIT)}
17
+ ${this.attributes && omit(this.attributes, OMIT)}
16
18
  >
17
19
  <div
18
20
  class='scrollbar-container-content'
19
- onscroll='${function () {
20
- if (width === undefined) {
21
- width = this.offsetWidth - this.clientWidth;
22
- if (width && width !== 17) {
23
- root.style.setProperty('--scrollbar-width', `${width}px`);
21
+ ${attributes['scrollbar-container-content']}
22
+ ${this.attributes?.['scrollbar-container-content']}
23
+ ${{
24
+ onscroll: function () {
25
+ if (width === undefined) {
26
+ width = this.offsetWidth - this.clientWidth;
27
+ if (width && width !== 17) {
28
+ root.style.setProperty('--scrollbar-width', `${width}px`);
29
+ }
24
30
  }
31
+ state.height = (this.clientHeight / this.scrollHeight) * 100;
32
+ state.translate = (this.scrollTop / this.clientHeight) * 100;
25
33
  }
26
- state.height = (this.clientHeight / this.scrollHeight) * 100;
27
- state.translate = (this.scrollTop / this.clientHeight) * 100;
28
- }}'
29
- ${attributes['scrollbar-container-content']}
34
+ }}
30
35
  >
31
36
  ${content}
32
37
  </div>
33
38
 
34
39
  <div
35
- class='
36
- ${() => state.height >= 100 && 'scrollbar--hidden'}
37
- scrollbar
38
- '
39
- style='${() => `
40
- --translate: translate3d(0, ${state.translate}%, 0);
41
- --height: ${state.height}%;
42
- `}'
43
- ${attributes.scrollbar}
40
+ class='scrollbar'
41
+ ${this.attributes?.scrollbar}
42
+ ${{
43
+ class: () => state.height >= 100 && 'scrollbar--hidden',
44
+ style: () => `
45
+ --translate: translate3d(0, ${state.translate}%, 0);
46
+ --height: ${state.height}%;
47
+ `
48
+ }}
44
49
  >
45
50
  </div>
46
51
  </div>