@esportsplus/ui 0.8.3 → 0.9.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 (285) hide show
  1. package/.editorconfig +9 -9
  2. package/.gitattributes +2 -2
  3. package/.github/dependabot.yml +23 -0
  4. package/.github/workflows/bump.yml +7 -0
  5. package/.github/workflows/publish.yml +14 -0
  6. package/package.json +9 -22
  7. package/src/components/accordion/index.ts +35 -34
  8. package/src/components/accordion/scss/index.scss +17 -16
  9. package/src/components/accordion/scss/variables.scss +9 -9
  10. package/src/components/anchor/index.ts +1 -0
  11. package/src/components/anchor/scss/index.scss +42 -41
  12. package/src/components/anchor/scss/variables.scss +4 -4
  13. package/src/components/banner/index.ts +1 -0
  14. package/src/components/banner/scss/index.scss +41 -40
  15. package/src/components/banner/scss/variables.scss +9 -9
  16. package/src/components/border/index.ts +1 -0
  17. package/src/components/border/scss/index.scss +12 -0
  18. package/src/components/border/scss/variables.scss +6 -0
  19. package/src/components/bubble/index.ts +1 -0
  20. package/src/components/bubble/scss/index.scss +32 -0
  21. package/src/components/bubble/scss/variables.scss +19 -0
  22. package/src/components/button/index.ts +1 -0
  23. package/src/components/button/scss/index.scss +115 -114
  24. package/src/components/button/scss/variables.scss +66 -66
  25. package/src/components/card/index.ts +1 -0
  26. package/src/components/card/scss/index.scss +36 -35
  27. package/src/components/card/scss/variables.scss +41 -41
  28. package/src/components/clipboard/index.ts +3 -4
  29. package/src/components/clipboard/write.ts +8 -8
  30. package/src/components/container/index.ts +1 -0
  31. package/src/components/container/scss/index.scss +10 -8
  32. package/src/components/container/scss/variables.scss +5 -5
  33. package/src/components/counter/index.ts +99 -93
  34. package/src/components/counter/scss/index.scss +63 -61
  35. package/src/components/counter/scss/variables.scss +26 -26
  36. package/src/components/ellipsis/index.ts +10 -9
  37. package/src/components/ellipsis/scss/index.scss +29 -27
  38. package/src/components/ellipsis/scss/variables.scss +4 -4
  39. package/src/components/field/checkbox.ts +71 -0
  40. package/src/components/field/description.ts +14 -0
  41. package/src/components/field/error.ts +16 -0
  42. package/src/components/field/file.ts +77 -0
  43. package/src/components/field/index.ts +11 -0
  44. package/src/components/field/optional.ts +23 -0
  45. package/src/components/field/scss/_check.scss +225 -0
  46. package/src/components/field/scss/_normalize.scss +36 -0
  47. package/src/components/field/scss/_text.scss +106 -0
  48. package/src/components/field/scss/index.scss +161 -0
  49. package/src/components/field/scss/variables.scss +139 -0
  50. package/src/components/field/select.ts +182 -0
  51. package/src/components/field/switch.ts +9 -0
  52. package/src/components/field/text.ts +92 -0
  53. package/src/components/field/textarea.ts +8 -0
  54. package/src/components/field/title.ts +24 -0
  55. package/src/components/footer/index.ts +83 -78
  56. package/src/components/footer/scss/index.scss +25 -25
  57. package/src/components/form/action.ts +79 -80
  58. package/src/components/form/index.ts +5 -6
  59. package/src/components/form/input.ts +17 -15
  60. package/src/components/form/types.ts +13 -15
  61. package/src/components/frame/index.ts +1 -0
  62. package/src/components/frame/scss/index.scss +11 -11
  63. package/src/components/grid/index.ts +1 -0
  64. package/src/components/grid/scss/index.scss +11 -9
  65. package/src/components/grid/scss/variables.scss +5 -5
  66. package/src/components/group/index.ts +1 -0
  67. package/src/components/group/scss/index.scss +38 -36
  68. package/src/components/group/scss/variables.scss +17 -17
  69. package/src/components/highlight/index.ts +51 -47
  70. package/src/components/highlight/scss/index.scss +6 -4
  71. package/src/components/highlight/scss/variables.scss +3 -3
  72. package/src/components/icon/index.ts +1 -0
  73. package/src/components/icon/scss/index.scss +18 -16
  74. package/src/components/icon/scss/variables.scss +7 -7
  75. package/src/components/index.ts +38 -19
  76. package/src/components/json/download.ts +14 -14
  77. package/src/components/json/index.ts +3 -3
  78. package/src/components/link/hover.ts +18 -18
  79. package/src/components/link/index.ts +4 -3
  80. package/src/components/link/scss/index.scss +66 -65
  81. package/src/components/link/scss/variables.scss +46 -46
  82. package/src/components/loader/index.ts +42 -34
  83. package/src/components/loader/scss/index.scss +70 -68
  84. package/src/components/loader/scss/variables.scss +5 -5
  85. package/src/components/loading/index.ts +13 -7
  86. package/src/components/loading/scss/index.scss +18 -16
  87. package/src/components/loading/scss/variables.scss +5 -5
  88. package/src/components/magnet/index.ts +55 -54
  89. package/src/components/magnet/scss/index.scss +17 -16
  90. package/src/components/magnet/scss/variables.scss +4 -4
  91. package/src/components/modal/index.ts +1 -0
  92. package/src/components/modal/scss/index.scss +35 -34
  93. package/src/components/modal/scss/variables.scss +6 -6
  94. package/src/components/normalize/index.ts +1 -0
  95. package/src/components/number/index.ts +4 -24
  96. package/src/components/page/index.ts +17 -15
  97. package/src/components/page/scss/index.scss +33 -31
  98. package/src/components/page/scss/variables.scss +15 -15
  99. package/src/components/root/index.ts +4 -4
  100. package/src/components/root/onclick.ts +20 -20
  101. package/src/components/root/scss/index.scss +94 -94
  102. package/src/components/root/scss/variables.scss +100 -100
  103. package/src/components/row/index.ts +1 -0
  104. package/src/components/row/scss/index.scss +7 -7
  105. package/src/components/scrollbar/index.ts +49 -43
  106. package/src/components/scrollbar/scss/index.scss +72 -70
  107. package/src/components/scrollbar/scss/variables.scss +6 -6
  108. package/src/components/sidebar/index.ts +1 -0
  109. package/src/components/sidebar/scss/index.scss +50 -49
  110. package/src/components/sidebar/scss/variables.scss +20 -20
  111. package/src/components/site/index.ts +27 -26
  112. package/src/components/site/scss/index.scss +3 -3
  113. package/src/components/text/index.ts +1 -0
  114. package/src/components/text/scss/index.scss +11 -9
  115. package/src/components/text/scss/variables.scss +8 -8
  116. package/src/components/thumbnail/index.ts +1 -0
  117. package/src/components/thumbnail/scss/index.scss +9 -7
  118. package/src/components/thumbnail/scss/variables.scss +7 -7
  119. package/src/components/tooltip/index.ts +85 -84
  120. package/src/components/tooltip/scss/_center.scss +13 -13
  121. package/src/components/tooltip/scss/_east.scss +34 -34
  122. package/src/components/tooltip/scss/_north.scss +34 -34
  123. package/src/components/tooltip/scss/_south.scss +35 -35
  124. package/src/components/tooltip/scss/_west.scss +34 -34
  125. package/src/components/tooltip/scss/index.scss +94 -93
  126. package/src/components/tooltip/scss/variables.scss +24 -24
  127. package/src/components/truncate/index.ts +4 -14
  128. package/src/components/typewriter/index.ts +54 -53
  129. package/src/components/typewriter/scss/index.scss +14 -14
  130. package/src/css-utilities/[margin,padding]/scss/index.scss +43 -41
  131. package/src/css-utilities/[margin,padding]/scss/variables.scss +54 -54
  132. package/src/css-utilities/absolute/scss/index.scss +36 -36
  133. package/src/css-utilities/background/scss/index.scss +1 -0
  134. package/src/css-utilities/background/scss/variables.scss +26 -27
  135. package/src/css-utilities/border/scss/index.scss +23 -21
  136. package/src/css-utilities/border/scss/variables.scss +64 -66
  137. package/src/css-utilities/color/scss/index.scss +1 -0
  138. package/src/css-utilities/color/scss/variables.scss +29 -31
  139. package/src/css-utilities/disabled/scss/index.scss +4 -4
  140. package/src/css-utilities/flex/scss/index.scss +65 -65
  141. package/src/css-utilities/glass/scss/index.scss +4 -2
  142. package/src/css-utilities/glass/scss/variables.scss +2 -2
  143. package/src/css-utilities/hidden/scss/index.scss +28 -28
  144. package/src/css-utilities/index.ts +18 -0
  145. package/src/css-utilities/inline/scss/index.scss +7 -7
  146. package/src/css-utilities/line-height/scss/index.scss +1 -0
  147. package/src/css-utilities/line-height/scss/variables.scss +10 -10
  148. package/src/css-utilities/not-allowed/scss/index.scss +7 -7
  149. package/src/css-utilities/pointer/scss/index.scss +5 -5
  150. package/src/css-utilities/size/scss/index.scss +1 -0
  151. package/src/css-utilities/size/scss/variables.scss +12 -12
  152. package/src/css-utilities/squircle/scss/index.scss +4 -4
  153. package/src/css-utilities/text/scss/index.scss +90 -89
  154. package/src/css-utilities/text/scss/variables.scss +31 -31
  155. package/src/css-utilities/viewport/scss/index.scss +4 -4
  156. package/src/css-utilities/width/scss/index.scss +5 -3
  157. package/src/css-utilities/width/scss/variables.scss +9 -9
  158. package/src/lib/index.scss +7 -7
  159. package/src/lib/scss/breakpoint.scss +41 -41
  160. package/src/lib/scss/color.scss +1 -1
  161. package/src/lib/scss/css-variables.scss +16 -16
  162. package/src/lib/scss/list.scss +77 -77
  163. package/src/lib/scss/map.scss +1 -1
  164. package/src/lib/scss/position.scss +55 -55
  165. package/src/lib/scss/string.scss +34 -34
  166. package/src/tokens/index.scss +11 -11
  167. package/src/tokens/scss/border-radius.scss +12 -12
  168. package/src/tokens/scss/border-width.scss +6 -6
  169. package/src/tokens/scss/box-shadow.scss +39 -39
  170. package/src/tokens/scss/color.scss +68 -64
  171. package/src/tokens/scss/font-size.scss +16 -16
  172. package/src/tokens/scss/font-weight.scss +6 -6
  173. package/src/tokens/scss/line-height.scss +6 -6
  174. package/src/tokens/scss/size.scss +13 -13
  175. package/src/tokens/scss/spacer.scss +10 -10
  176. package/src/tokens/scss/state.scss +85 -87
  177. package/src/tokens/scss/transition-duration.scss +1 -1
  178. package/tsconfig.json +5 -2
  179. package/assets/0af89c10df9bc2f8d646.woff2 +0 -0
  180. package/assets/109e3207d9afea8524be.woff2 +0 -0
  181. package/assets/16663c3f6ab1da2d6c86.woff +0 -0
  182. package/assets/16e8721ef5837bc6375e.woff +0 -0
  183. package/assets/2a3e005f58bfca9c117e.woff +0 -0
  184. package/assets/58a8d7ebc386843b62c5.woff2 +0 -0
  185. package/assets/593de7c561e5ffe80c3e.woff2 +0 -0
  186. package/assets/68b7982c2b30b51bf932.woff2 +0 -0
  187. package/assets/a04b5e24af93da353f0e.woff +0 -0
  188. package/assets/bf331673b91821715c08.woff +0 -0
  189. package/assets/c54b0f4340f2914802d1.woff +0 -0
  190. package/assets/dd8646a41e4397b77fc4.woff2 +0 -0
  191. package/assets/e06c107cc50506570954.woff2 +0 -0
  192. package/assets/ecdfe4c05425592708aa.woff2 +0 -0
  193. package/assets/f0032576ac7462ccbd0c.woff +0 -0
  194. package/assets/f872e621917a45943fbc.woff +0 -0
  195. package/build/components/accordion/index.d.ts +0 -17
  196. package/build/components/accordion/index.js +0 -25
  197. package/build/components/clipboard/index.d.ts +0 -5
  198. package/build/components/clipboard/index.js +0 -3
  199. package/build/components/clipboard/write.d.ts +0 -2
  200. package/build/components/clipboard/write.js +0 -9
  201. package/build/components/counter/index.d.ts +0 -13
  202. package/build/components/counter/index.js +0 -72
  203. package/build/components/ellipsis/index.d.ts +0 -2
  204. package/build/components/ellipsis/index.js +0 -8
  205. package/build/components/footer/index.d.ts +0 -25
  206. package/build/components/footer/index.js +0 -55
  207. package/build/components/form/action.d.ts +0 -5
  208. package/build/components/form/action.js +0 -54
  209. package/build/components/form/index.d.ts +0 -23
  210. package/build/components/form/index.js +0 -4
  211. package/build/components/form/input.d.ts +0 -9
  212. package/build/components/form/input.js +0 -10
  213. package/build/components/form/layout.d.ts +0 -12
  214. package/build/components/form/layout.js +0 -12
  215. package/build/components/form/types.d.ts +0 -11
  216. package/build/components/form/types.js +0 -1
  217. package/build/components/highlight/index.d.ts +0 -8
  218. package/build/components/highlight/index.js +0 -36
  219. package/build/components/index.d.ts +0 -19
  220. package/build/components/index.js +0 -19
  221. package/build/components/json/download.d.ts +0 -2
  222. package/build/components/json/download.js +0 -8
  223. package/build/components/json/index.d.ts +0 -4
  224. package/build/components/json/index.js +0 -2
  225. package/build/components/link/hover.d.ts +0 -10
  226. package/build/components/link/hover.js +0 -17
  227. package/build/components/link/index.d.ts +0 -12
  228. package/build/components/link/index.js +0 -2
  229. package/build/components/loader/index.d.ts +0 -5
  230. package/build/components/loader/index.js +0 -31
  231. package/build/components/loading/index.d.ts +0 -2
  232. package/build/components/loading/index.js +0 -6
  233. package/build/components/magnet/index.d.ts +0 -10
  234. package/build/components/magnet/index.js +0 -46
  235. package/build/components/number/index.d.ts +0 -8
  236. package/build/components/number/index.js +0 -16
  237. package/build/components/page/index.d.ts +0 -22
  238. package/build/components/page/index.js +0 -11
  239. package/build/components/root/index.d.ts +0 -9
  240. package/build/components/root/index.js +0 -3
  241. package/build/components/root/onclick.d.ts +0 -5
  242. package/build/components/root/onclick.js +0 -14
  243. package/build/components/scrollbar/index.d.ts +0 -13
  244. package/build/components/scrollbar/index.js +0 -36
  245. package/build/components/site/index.d.ts +0 -8
  246. package/build/components/site/index.js +0 -16
  247. package/build/components/tooltip/index.d.ts +0 -23
  248. package/build/components/tooltip/index.js +0 -63
  249. package/build/components/truncate/index.d.ts +0 -9
  250. package/build/components/truncate/index.js +0 -10
  251. package/build/components/typewriter/index.d.ts +0 -8
  252. package/build/components/typewriter/index.js +0 -41
  253. package/build/index.d.ts +0 -19
  254. package/build/index.js +0 -19
  255. package/components/styles.css +0 -30
  256. package/components/variables.css +0 -24
  257. package/fonts/montserrat.css +0 -1
  258. package/lib.scss +0 -2
  259. package/normalize.css +0 -1
  260. package/src/components/clipboard/scss/index.scss +0 -3
  261. package/src/components/form/layout.ts +0 -26
  262. package/src/css-utilities/index.scss +0 -14
  263. package/src/css-utilities/overflow/scss/index.scss +0 -5
  264. package/src/index.ts +0 -19
  265. package/storage/fonts/montserrat/Montserrat-Bold.woff +0 -0
  266. package/storage/fonts/montserrat/Montserrat-Bold.woff2 +0 -0
  267. package/storage/fonts/montserrat/Montserrat-BoldItalic.woff +0 -0
  268. package/storage/fonts/montserrat/Montserrat-BoldItalic.woff2 +0 -0
  269. package/storage/fonts/montserrat/Montserrat-Italic.woff +0 -0
  270. package/storage/fonts/montserrat/Montserrat-Italic.woff2 +0 -0
  271. package/storage/fonts/montserrat/Montserrat-Medium.woff +0 -0
  272. package/storage/fonts/montserrat/Montserrat-Medium.woff2 +0 -0
  273. package/storage/fonts/montserrat/Montserrat-MediumItalic.woff +0 -0
  274. package/storage/fonts/montserrat/Montserrat-MediumItalic.woff2 +0 -0
  275. package/storage/fonts/montserrat/Montserrat-Regular.woff +0 -0
  276. package/storage/fonts/montserrat/Montserrat-Regular.woff2 +0 -0
  277. package/storage/fonts/montserrat/Montserrat-SemiBold.woff +0 -0
  278. package/storage/fonts/montserrat/Montserrat-SemiBold.woff2 +0 -0
  279. package/storage/fonts/montserrat/Montserrat-SemiBoldItalic.woff +0 -0
  280. package/storage/fonts/montserrat/Montserrat-SemiBoldItalic.woff2 +0 -0
  281. package/storage/fonts/montserrat/index.css +0 -79
  282. package/tokens.scss +0 -2
  283. package/utilities/styles.css +0 -16
  284. package/utilities/variables.css +0 -9
  285. package/webpack.config.ts +0 -26
@@ -1,81 +1,80 @@
1
- import response from '@esportsplus/action';
2
- import { Action } from './types';
3
- // import alert from '~/components/alert';
4
- import input from './input';
5
-
6
-
7
- function parse(input: ReturnType<FormData['entries']>) {
8
- let data: Record<string, any> = {};
9
-
10
- for (let [path, value] of input) {
11
- let bucket = data,
12
- segments = path.indexOf('.') !== -1 ? path.split('.') : [path];
13
-
14
- for (let i = 0; i < segments.length - 1; i++) {
15
- bucket = bucket[ segments[i] ] = bucket[ segments[i] ] || {};
16
- }
17
-
18
- let key = segments.at(-1)!;
19
-
20
- if (path.endsWith('[]')) {
21
- if (typeof value === 'string' && value.trim() === '') {
22
- continue;
23
- }
24
-
25
- bucket = bucket[ key.substring(0, key.length - 2) ] ??= [];
26
- bucket.push(value);
27
- }
28
- else {
29
- bucket[key] = value;
30
- }
31
- }
32
-
33
- return data;
34
- };
35
-
36
-
37
- export default function(action: Action) {
38
- return {
39
- onclick: function(this: HTMLFormElement, event: Event) {
40
- let trigger = event.target as HTMLButtonElement;
41
-
42
- if (trigger?.type !== 'submit') {
43
- return;
44
- }
45
-
46
- // On initial page load both events will be dispatched without preventDefault
47
- event.preventDefault();
48
-
49
- this.dispatchEvent(
50
- new SubmitEvent('submit', { cancelable: true, bubbles:true, submitter: trigger })
51
- );
52
- },
53
- onsubmit: async function(this: HTMLFormElement, event: SubmitEvent) {
54
- // TODO: Figure out button--processing
55
- // - Could pass reactive value above and tie it to form layout handler
56
- event.preventDefault();
57
- event?.submitter?.classList.add('button--processing');
58
-
59
- let { errors } = await action({
60
- // @ts-ignore
61
- alert: null,
62
- input: parse( new FormData( this ).entries() ),
63
- response
64
- });
65
-
66
- for (let i = 0, n = errors.length; i < n; i++) {
67
- let { message, path } = errors[i],
68
- state = input.get( this[path!] );
69
-
70
- if (!state) {
71
- continue;
72
- }
73
-
74
- state.error = `${message[0].toUpperCase()}${message.substring(1)}`;
75
- }
76
-
77
- // TODO: replace with signal
78
- event?.submitter?.classList.remove('button--processing');
79
- }
80
- };
1
+ import response from '@esportsplus/action';
2
+ import { Action } from './types';
3
+ import input from './input';
4
+
5
+
6
+ function parse(input: ReturnType<FormData['entries']>) {
7
+ let data: Record<string, any> = {};
8
+
9
+ for (let [path, value] of input) {
10
+ let bucket = data,
11
+ segments = path.indexOf('.') !== -1 ? path.split('.') : [path];
12
+
13
+ for (let i = 0; i < segments.length - 1; i++) {
14
+ bucket = bucket[ segments[i] ] = bucket[ segments[i] ] || {};
15
+ }
16
+
17
+ let key = segments.at(-1)!;
18
+
19
+ if (path.endsWith('[]')) {
20
+ if (typeof value === 'string' && value.trim() === '') {
21
+ continue;
22
+ }
23
+
24
+ bucket = bucket[ key.substring(0, key.length - 2) ] ??= [];
25
+ bucket.push(value);
26
+ }
27
+ else {
28
+ bucket[key] = value;
29
+ }
30
+ }
31
+
32
+ return data;
33
+ };
34
+
35
+
36
+ export default function(action: Action, s?: { processing: boolean }) {
37
+ return {
38
+ onclick: function(this: HTMLFormElement, event: Event) {
39
+ let trigger = event.target as HTMLButtonElement;
40
+
41
+ if (trigger?.type !== 'submit') {
42
+ return;
43
+ }
44
+
45
+ // On initial page load both events will be dispatched without preventDefault
46
+ event.preventDefault();
47
+
48
+ this.dispatchEvent(
49
+ new SubmitEvent('submit', { cancelable: true, bubbles:true, submitter: trigger })
50
+ );
51
+ },
52
+ onsubmit: async function(this: HTMLFormElement, event: SubmitEvent) {
53
+ event.preventDefault();
54
+
55
+ if (s) {
56
+ s.processing = true;
57
+ }
58
+
59
+ let { errors } = await action({
60
+ input: parse( new FormData( this ).entries() ),
61
+ response
62
+ });
63
+
64
+ for (let i = 0, n = errors.length; i < n; i++) {
65
+ let { message, path } = errors[i],
66
+ reactive = input.get( this[path!] );
67
+
68
+ if (!reactive) {
69
+ continue;
70
+ }
71
+
72
+ reactive.error = `${message[0].toUpperCase()}${message.substring(1)}`;
73
+ }
74
+
75
+ if (s) {
76
+ s.processing = false;
77
+ }
78
+ }
79
+ };
81
80
  };
@@ -1,6 +1,5 @@
1
- import action from './action';
2
- import input from './input';
3
- import layout from './layout';
4
-
5
-
6
- export default { action, input, layout };
1
+ import action from './action';
2
+ import input from './input';
3
+
4
+
5
+ export default { action, input };
@@ -1,15 +1,17 @@
1
- let cache = new WeakMap<HTMLInputElement | HTMLSelectElement, { error: string }>();
2
-
3
-
4
- const attributes = (reactive: { error: string }) => {
5
- return (element: HTMLInputElement | HTMLSelectElement) => {
6
- cache.set(element, reactive);
7
- };
8
- };
9
-
10
- const get = (element?: HTMLInputElement | HTMLSelectElement) => {
11
- return element ? cache.get(element) : undefined;
12
- };
13
-
14
-
15
- export default { attributes, get };
1
+ let key = Symbol();
2
+
3
+
4
+ const get = (element?: HTMLInputElement | HTMLSelectElement) => {
5
+ // @ts-ignore
6
+ return element ? element[key] : undefined;
7
+ };
8
+
9
+ const onrender = (reactive: { error: string }) => {
10
+ return (element: HTMLInputElement | HTMLSelectElement) => {
11
+ // @ts-ignore
12
+ element[key] = reactive;
13
+ };
14
+ };
15
+
16
+
17
+ export default { get, onrender };
@@ -1,16 +1,14 @@
1
- import response, { Response } from '@esportsplus/action';
2
- // import alert from '~/components/alert';
3
-
4
-
5
- type Action = (data: Payload) => Promise<Errors> | Errors;
6
-
7
- type Errors = { errors: Response<unknown>['errors'] };
8
-
9
- type Payload = {
10
- alert: typeof alert;
11
- input: Record<string, any>;
12
- response: typeof response;
13
- };
14
-
15
-
1
+ import response, { Response } from '@esportsplus/action';
2
+
3
+
4
+ type Action = (data: Payload) => Promise<Errors> | Errors;
5
+
6
+ type Errors = { errors: Response<unknown>['errors'] };
7
+
8
+ type Payload = {
9
+ input: Record<string, any>;
10
+ response: typeof response;
11
+ };
12
+
13
+
16
14
  export type { Action, Errors, Payload };
@@ -0,0 +1 @@
1
+ import './scss/index.scss';
@@ -1,12 +1,12 @@
1
- .frame {
2
- display: none;
3
- flex-wrap: wrap;
4
- justify-content: flex-start;
5
- position: relative;
6
- width: 100%;
7
-
8
-
9
- &.--active {
10
- display: flex;
11
- }
1
+ .frame {
2
+ display: none;
3
+ flex-wrap: wrap;
4
+ justify-content: flex-start;
5
+ position: relative;
6
+ width: 100%;
7
+
8
+
9
+ &.--active {
10
+ display: flex;
11
+ }
12
12
  }
@@ -0,0 +1 @@
1
+ import './scss/index.scss';
@@ -1,10 +1,12 @@
1
- .grid {
2
- display: grid;
3
- grid-gap: var(--margin-horizontal) var(--margin-vertical);
4
- grid-template-columns: repeat(auto-fit, minmax(var(--min-width), var(--max-width)));
5
- position: relative;
6
-
7
- .grid-item {
8
- width: 100%;
9
- }
1
+ @use './variables.scss';
2
+
3
+ .grid {
4
+ display: grid;
5
+ grid-gap: var(--margin-horizontal) var(--margin-vertical);
6
+ grid-template-columns: repeat(auto-fit, minmax(var(--min-width), var(--max-width)));
7
+ position: relative;
8
+
9
+ .grid-item {
10
+ width: 100%;
11
+ }
10
12
  }
@@ -1,6 +1,6 @@
1
- .grid {
2
- --margin-horizontal: var(--size-400);
3
- --margin-vertical: var(--size-400);
4
- --max-width: 1fr;
5
- --min-width: 200px;
1
+ .grid {
2
+ --margin-horizontal: var(--size-400);
3
+ --margin-vertical: var(--size-400);
4
+ --max-width: 1fr;
5
+ --min-width: 200px;
6
6
  }
@@ -0,0 +1 @@
1
+ import './scss/index.scss';
@@ -1,36 +1,38 @@
1
- .group {
2
- display: flex;
3
- flex-wrap: wrap;
4
- justify-content: flex-start;
5
- margin: 0 calc(var(--margin-horizontal) / -2);
6
- position: relative;
7
- width: calc(100% + var(--margin-horizontal));
8
-
9
-
10
- &--offset {
11
- @each $direction in 'bottom' 'top' {
12
- &-#{$direction} {
13
- margin-#{$direction}: calc(var(--margin-vertical) * -1);
14
- }
15
- }
16
- }
17
-
18
- &--scroller {
19
- flex-flow: row;
20
- margin-bottom: calc(var(--scrollbar-width) * -1);
21
- overflow-y: hidden;
22
- padding-bottom: var(--scrollbar-width);
23
- }
24
-
25
-
26
- &-item {
27
- display: flex;
28
- margin: var(--margin-vertical) calc(var(--margin-horizontal) / 2) 0;
29
- position: relative;
30
- width: var(--width);
31
-
32
- &[class*='--width'] {
33
- width: calc(var(--width) - var(--margin-horizontal));
34
- }
35
- }
36
- }
1
+ @use './variables.scss';
2
+
3
+ .group {
4
+ display: flex;
5
+ flex-wrap: wrap;
6
+ justify-content: flex-start;
7
+ margin: 0 calc(var(--margin-horizontal) / -2);
8
+ position: relative;
9
+ width: calc(100% + var(--margin-horizontal));
10
+
11
+
12
+ &--offset {
13
+ @each $direction in 'bottom' 'top' {
14
+ &-#{$direction} {
15
+ margin-#{$direction}: calc(var(--margin-vertical) * -1);
16
+ }
17
+ }
18
+ }
19
+
20
+ &--scroller {
21
+ flex-flow: row;
22
+ margin-bottom: calc(var(--scrollbar-width) * -1);
23
+ overflow-y: hidden;
24
+ padding-bottom: var(--scrollbar-width);
25
+ }
26
+
27
+
28
+ &-item {
29
+ display: flex;
30
+ margin: var(--margin-vertical) calc(var(--margin-horizontal) / 2) 0;
31
+ position: relative;
32
+ width: var(--width);
33
+
34
+ &[class*='--width'] {
35
+ width: calc(var(--width) - var(--margin-horizontal));
36
+ }
37
+ }
38
+ }
@@ -1,17 +1,17 @@
1
- .group {
2
- --margin-horizontal: var(--size-400);
3
- --width: auto;
4
-
5
-
6
- &.--flex-column {
7
- .group-item {
8
- --width: 100%;
9
- }
10
- }
11
-
12
- &--scroller {
13
- .group-item {
14
- --margin-vertical: 0px;
15
- }
16
- }
17
- }
1
+ .group {
2
+ --margin-horizontal: var(--size-400);
3
+ --width: auto;
4
+
5
+
6
+ &.--flex-column {
7
+ .group-item {
8
+ --width: 100%;
9
+ }
10
+ }
11
+
12
+ &--scroller {
13
+ .group-item {
14
+ --margin-vertical: 0px;
15
+ }
16
+ }
17
+ }
@@ -1,48 +1,52 @@
1
- import { reactive } from '@esportsplus/reactivity'
2
-
3
-
4
- let key = Symbol(),
5
- observer: IntersectionObserver | null = null;
6
-
7
-
8
- export default (background: string) => {
9
- if (observer === null) {
10
- observer = new IntersectionObserver((entries) => {
11
- let disconnected = 0,
12
- n = entries.length;
13
-
14
- for (let i = 0; i < n; i++) {
15
- let { isIntersecting, target } = entries[i];
16
-
17
- if (target.isConnected) {
18
- // @ts-ignore
19
- target[key].highlight = +isIntersecting;
20
- }
21
- else {
22
- disconnected++;
23
- observer!.unobserve(target);
24
- }
25
- }
26
-
27
- if (n - disconnected === 0) {
28
- observer!.disconnect();
29
- observer = null;
30
- }
31
- }, { threshold: 1 });
32
- }
33
-
34
- let state = reactive({
35
- highlight: 0
36
- });
37
-
38
- return {
39
- attributes: {
40
- class: 'highlight',
41
- onrender: function(element: HTMLElement & Record<PropertyKey, unknown>) {
42
- element[key] = state;
43
- observer!.observe(element);
44
- },
45
- style: [ `--background: ${background}`, () => `--highlight: ${state.highlight}` ]
46
- }
47
- };
1
+ import { reactive } from '@esportsplus/reactivity'
2
+ import './scss/index.scss';
3
+
4
+
5
+ let key = Symbol(),
6
+ observer: IntersectionObserver | null = null;
7
+
8
+
9
+ export default (background: string) => {
10
+ if (observer === null) {
11
+ observer = new IntersectionObserver((entries) => {
12
+ let disconnected = 0,
13
+ n = entries.length;
14
+
15
+ for (let i = 0; i < n; i++) {
16
+ let { isIntersecting, target } = entries[i];
17
+
18
+ if (target.isConnected) {
19
+ // @ts-ignore
20
+ target[key].highlight = +isIntersecting;
21
+ }
22
+ else {
23
+ disconnected++;
24
+ observer!.unobserve(target);
25
+ }
26
+ }
27
+
28
+ if (n - disconnected === 0) {
29
+ observer!.disconnect();
30
+ observer = null;
31
+ }
32
+ }, { threshold: 1 });
33
+ }
34
+
35
+ let state = reactive({
36
+ highlight: 0
37
+ });
38
+
39
+ return {
40
+ attributes: {
41
+ class: 'highlight',
42
+ onrender: function(element: HTMLElement & Record<PropertyKey, unknown>) {
43
+ element[key] = state;
44
+ observer!.observe(element);
45
+ },
46
+ style: [
47
+ () => `--highlight: ${state.highlight}`,
48
+ `--background: ${background}`,
49
+ ]
50
+ }
51
+ };
48
52
  }
@@ -1,5 +1,7 @@
1
- .highlight {
2
- background: linear-gradient(90deg, var(--background) 50%, transparent 50%) 110% 0 / 200% 100% no-repeat;
3
- background-position: calc((1 - var(--highlight)) * 110%) 0;
4
- transition: background-position 0.32s;
1
+ @use './variables.scss';
2
+
3
+ .highlight {
4
+ background: linear-gradient(90deg, var(--background) 50%, transparent 50%) 110% 0 / 200% 100% no-repeat;
5
+ background-position: calc((1 - var(--highlight)) * 110%) 0;
6
+ transition: background-position 0.32s;
5
7
  }
@@ -1,4 +1,4 @@
1
- .highlight {
2
- --background: transparent;
3
- --highlight: 1;
1
+ .highlight {
2
+ --background: transparent;
3
+ --highlight: 1;
4
4
  }
@@ -0,0 +1 @@
1
+ import './scss/index.scss';
@@ -1,16 +1,18 @@
1
- .icon {
2
- color: var(--color);
3
- display: flex;
4
- flex: 0 0 var(--width);
5
- height: var(--height);
6
- position: relative;
7
- width: var(--width);
8
-
9
-
10
- svg {
11
- color: currentColor;
12
- fill: currentColor;
13
- height: 100%;
14
- width: 100%;
15
- }
16
- }
1
+ @use './variables.scss';
2
+
3
+ .icon {
4
+ color: var(--color);
5
+ display: flex;
6
+ flex: 0 0 var(--width);
7
+ height: var(--height);
8
+ position: relative;
9
+ width: var(--width);
10
+
11
+
12
+ svg {
13
+ color: currentColor;
14
+ fill: currentColor;
15
+ height: 100%;
16
+ width: 100%;
17
+ }
18
+ }
@@ -1,7 +1,7 @@
1
- .icon {
2
- --color: inherit;
3
- --height: var(--size);
4
- --margin-horizontal: var(--size-300);
5
- --size: var(--size-400);
6
- --width: var(--size);
7
- }
1
+ .icon {
2
+ --color: inherit;
3
+ --height: var(--size);
4
+ --margin-horizontal: var(--size-300);
5
+ --size: var(--size-400);
6
+ --width: var(--size);
7
+ }