@esportsplus/ui 0.5.2 → 0.5.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 (150) hide show
  1. package/.editorconfig +9 -9
  2. package/.gitattributes +2 -2
  3. package/.github/dependabot.yml +22 -22
  4. package/.github/workflows/bump.yml +6 -6
  5. package/.github/workflows/publish.yml +13 -13
  6. package/build/components/aurora/index.js +4 -4
  7. package/build/components/counter/index.js +16 -16
  8. package/build/components/ellipsis/index.js +6 -6
  9. package/build/components/footer/index.js +46 -46
  10. package/build/components/form/layout.js +10 -10
  11. package/build/components/magnet/index.js +7 -7
  12. package/build/components/scrollbar/index.js +9 -9
  13. package/build/components/site/index.js +5 -5
  14. package/lib.scss +1 -1
  15. package/package.json +25 -25
  16. package/src/components/accordion/index.ts +34 -34
  17. package/src/components/accordion/scss/index.scss +16 -16
  18. package/src/components/accordion/scss/variables.scss +9 -9
  19. package/src/components/anchor/scss/index.scss +41 -41
  20. package/src/components/anchor/scss/variables.scss +4 -4
  21. package/src/components/aurora/index.ts +21 -21
  22. package/src/components/aurora/scss/index.scss +59 -59
  23. package/src/components/banner/scss/index.scss +40 -40
  24. package/src/components/banner/scss/variables.scss +9 -9
  25. package/src/components/border/scss/index.scss +10 -10
  26. package/src/components/border/scss/variables.scss +6 -6
  27. package/src/components/bubble/scss/index.scss +30 -30
  28. package/src/components/bubble/scss/variables.scss +19 -19
  29. package/src/components/button/scss/index.scss +114 -114
  30. package/src/components/button/scss/variables.scss +66 -66
  31. package/src/components/card/scss/index.scss +35 -35
  32. package/src/components/card/scss/variables.scss +41 -41
  33. package/src/components/clipboard/index.ts +3 -3
  34. package/src/components/clipboard/write.ts +8 -8
  35. package/src/components/container/scss/index.scss +8 -8
  36. package/src/components/container/scss/variables.scss +5 -5
  37. package/src/components/counter/index.ts +93 -93
  38. package/src/components/counter/scss/index.scss +61 -61
  39. package/src/components/counter/scss/variables.scss +26 -26
  40. package/src/components/ellipsis/index.ts +9 -9
  41. package/src/components/ellipsis/scss/index.scss +27 -27
  42. package/src/components/ellipsis/scss/variables.scss +4 -4
  43. package/src/components/footer/index.ts +78 -78
  44. package/src/components/footer/scss/index.scss +25 -25
  45. package/src/components/form/action.ts +80 -80
  46. package/src/components/form/index.ts +5 -5
  47. package/src/components/form/input.ts +14 -14
  48. package/src/components/form/layout.ts +25 -25
  49. package/src/components/form/types.ts +15 -15
  50. package/src/components/grid/scss/index.scss +9 -9
  51. package/src/components/grid/scss/variables.scss +5 -5
  52. package/src/components/group/scss/index.scss +36 -36
  53. package/src/components/group/scss/variables.scss +17 -17
  54. package/src/components/highlight/index.ts +47 -47
  55. package/src/components/highlight/scss/index.scss +4 -4
  56. package/src/components/highlight/scss/variables.scss +3 -3
  57. package/src/components/icon/scss/index.scss +16 -16
  58. package/src/components/icon/scss/variables.scss +7 -7
  59. package/src/components/json/download.ts +14 -14
  60. package/src/components/json/index.ts +3 -3
  61. package/src/components/link/scss/index.scss +28 -28
  62. package/src/components/link/scss/variables.scss +46 -46
  63. package/src/components/loading/scss/index.scss +16 -16
  64. package/src/components/loading/scss/variables.scss +5 -5
  65. package/src/components/magnet/index.ts +54 -54
  66. package/src/components/magnet/scss/index.scss +16 -16
  67. package/src/components/magnet/scss/variables.scss +4 -4
  68. package/src/components/modal/scss/index.scss +34 -34
  69. package/src/components/modal/scss/variables.scss +6 -6
  70. package/src/components/number/index.ts +23 -23
  71. package/src/components/page/index.ts +14 -14
  72. package/src/components/page/scss/index.scss +31 -31
  73. package/src/components/page/scss/variables.scss +15 -15
  74. package/src/components/root/index.ts +4 -4
  75. package/src/components/root/onclick.ts +20 -20
  76. package/src/components/root/scss/index.scss +94 -94
  77. package/src/components/root/scss/variables.scss +99 -99
  78. package/src/components/row/scss/index.scss +7 -7
  79. package/src/components/scrollbar/index.ts +43 -43
  80. package/src/components/scrollbar/scss/index.scss +70 -70
  81. package/src/components/scrollbar/scss/variables.scss +6 -6
  82. package/src/components/sidebar/scss/index.scss +49 -49
  83. package/src/components/sidebar/scss/variables.scss +20 -20
  84. package/src/components/site/index.ts +26 -26
  85. package/src/components/site/scss/index.scss +3 -3
  86. package/src/components/text/scss/index.scss +9 -9
  87. package/src/components/text/scss/variables.scss +8 -8
  88. package/src/components/thumbnail/scss/index.scss +7 -7
  89. package/src/components/thumbnail/scss/variables.scss +7 -7
  90. package/src/components/tooltip/index.ts +84 -84
  91. package/src/components/tooltip/scss/_center.scss +13 -13
  92. package/src/components/tooltip/scss/_east.scss +34 -34
  93. package/src/components/tooltip/scss/_north.scss +34 -34
  94. package/src/components/tooltip/scss/_south.scss +35 -35
  95. package/src/components/tooltip/scss/_west.scss +34 -34
  96. package/src/components/tooltip/scss/index.scss +93 -93
  97. package/src/components/tooltip/scss/variables.scss +24 -24
  98. package/src/components/truncate/index.ts +13 -13
  99. package/src/css-utilities/[margin,padding]/scss/index.scss +41 -41
  100. package/src/css-utilities/[margin,padding]/scss/variables.scss +54 -54
  101. package/src/css-utilities/absolute/scss/index.scss +36 -36
  102. package/src/css-utilities/background/scss/variables.scss +27 -27
  103. package/src/css-utilities/border/scss/index.scss +21 -21
  104. package/src/css-utilities/border/scss/variables.scss +66 -66
  105. package/src/css-utilities/color/scss/variables.scss +31 -31
  106. package/src/css-utilities/disabled/scss/index.scss +4 -4
  107. package/src/css-utilities/flex/scss/index.scss +65 -65
  108. package/src/css-utilities/glass/scss/index.scss +2 -2
  109. package/src/css-utilities/glass/scss/variables.scss +2 -2
  110. package/src/css-utilities/hidden/scss/index.scss +28 -28
  111. package/src/css-utilities/index.scss +14 -14
  112. package/src/css-utilities/inline/scss/index.scss +7 -7
  113. package/src/css-utilities/line-height/scss/variables.scss +10 -10
  114. package/src/css-utilities/not-allowed/scss/index.scss +7 -7
  115. package/src/css-utilities/overflow/scss/index.scss +4 -4
  116. package/src/css-utilities/pointer/scss/index.scss +5 -5
  117. package/src/css-utilities/size/scss/variables.scss +12 -12
  118. package/src/css-utilities/squircle/scss/index.scss +4 -4
  119. package/src/css-utilities/text/scss/index.scss +89 -89
  120. package/src/css-utilities/text/scss/variables.scss +31 -31
  121. package/src/css-utilities/viewport/scss/index.scss +4 -4
  122. package/src/css-utilities/width/scss/index.scss +3 -3
  123. package/src/css-utilities/width/scss/variables.scss +9 -9
  124. package/src/index.ts +16 -16
  125. package/src/lib/index.scss +7 -7
  126. package/src/lib/scss/breakpoint.scss +41 -41
  127. package/src/lib/scss/color.scss +1 -1
  128. package/src/lib/scss/css-variables.scss +13 -13
  129. package/src/lib/scss/list.scss +76 -76
  130. package/src/lib/scss/map.scss +1 -1
  131. package/src/lib/scss/position.scss +53 -53
  132. package/src/lib/scss/string.scss +33 -33
  133. package/src/tokens/index.scss +11 -11
  134. package/src/tokens/scss/border-radius.scss +12 -12
  135. package/src/tokens/scss/border-width.scss +6 -6
  136. package/src/tokens/scss/box-shadow.scss +21 -21
  137. package/src/tokens/scss/color.scss +64 -64
  138. package/src/tokens/scss/font-size.scss +16 -16
  139. package/src/tokens/scss/font-weight.scss +6 -6
  140. package/src/tokens/scss/line-height.scss +6 -6
  141. package/src/tokens/scss/size.scss +13 -13
  142. package/src/tokens/scss/spacer.scss +8 -8
  143. package/src/tokens/scss/state.scss +86 -86
  144. package/src/tokens/scss/transition-duration.scss +1 -1
  145. package/storage/fonts/montserrat/index.css +79 -79
  146. package/tokens.scss +1 -1
  147. package/tsconfig.json +2 -2
  148. package/utilities/styles.css +1 -1
  149. package/utilities/variables.css +1 -1
  150. package/webpack.config.ts +25 -25
@@ -1,89 +1,89 @@
1
- @use '/lib';
2
- @use '/tokens';
3
-
4
- .--text {
5
- &-bold {
6
- font-weight: var(--font-weight-500);
7
-
8
- @each $key in lib.map-keys(tokens.$font-weight) {
9
- @if $key > 500 {
10
- &-#{$key} {
11
- font-weight: var(--font-weight-#{$key});
12
- }
13
- }
14
- }
15
- }
16
-
17
- &-center {
18
- text-align: center;
19
- }
20
-
21
- &-crop {
22
- &::after,
23
- &::before,
24
- &-bottom::after,
25
- &-top::before {
26
- content: '';
27
- display: block;
28
- height: 0;
29
- width: 100%;
30
- }
31
-
32
- &::after,
33
- &-bottom::after {
34
- margin-bottom: calc((1 - var(--line-height)) * 0.618em);
35
- }
36
-
37
- &::before,
38
- &-top::before {
39
- margin-top: calc((1 - var(--line-height)) * 0.618em);
40
- }
41
- }
42
-
43
- &-italic {
44
- font-style: italic;
45
- }
46
-
47
- &-line-through {
48
- text-decoration: line-through;
49
- text-decoration-thickness: var(--line-width);
50
- }
51
-
52
- &-multiplier {
53
- font-size: calc(var(--font-size) * var(--text-multiplier));
54
- }
55
-
56
- &-outline {
57
- color: var(--color);
58
- word-break: break-word;
59
- word-wrap: break-word;
60
-
61
- @supports (-webkit-text-stroke-width: 1px) {
62
- color: transparent;
63
- -webkit-text-fill-color: transparent;
64
- -webkit-text-stroke-color: var(--color);
65
- -webkit-text-stroke-width: var(--stroke-width);
66
- }
67
- }
68
-
69
- &-truncate {
70
- line-height: var(--size);
71
- max-width: 100%;
72
- overflow: hidden;
73
- text-overflow: ellipsis;
74
- white-space: nowrap;
75
- }
76
-
77
- &-underline {
78
- text-decoration: underline;
79
-
80
- &-dotted {
81
- text-decoration: underline;
82
- text-decoration-style: dotted;
83
- }
84
- }
85
-
86
- &-uppercase {
87
- text-transform: uppercase;
88
- }
89
- }
1
+ @use '/lib';
2
+ @use '/tokens';
3
+
4
+ .--text {
5
+ &-bold {
6
+ font-weight: var(--font-weight-500);
7
+
8
+ @each $key in lib.map-keys(tokens.$font-weight) {
9
+ @if $key > 500 {
10
+ &-#{$key} {
11
+ font-weight: var(--font-weight-#{$key});
12
+ }
13
+ }
14
+ }
15
+ }
16
+
17
+ &-center {
18
+ text-align: center;
19
+ }
20
+
21
+ &-crop {
22
+ &::after,
23
+ &::before,
24
+ &-bottom::after,
25
+ &-top::before {
26
+ content: '';
27
+ display: block;
28
+ height: 0;
29
+ width: 100%;
30
+ }
31
+
32
+ &::after,
33
+ &-bottom::after {
34
+ margin-bottom: calc((1 - var(--line-height)) * 0.618em);
35
+ }
36
+
37
+ &::before,
38
+ &-top::before {
39
+ margin-top: calc((1 - var(--line-height)) * 0.618em);
40
+ }
41
+ }
42
+
43
+ &-italic {
44
+ font-style: italic;
45
+ }
46
+
47
+ &-line-through {
48
+ text-decoration: line-through;
49
+ text-decoration-thickness: var(--line-width);
50
+ }
51
+
52
+ &-multiplier {
53
+ font-size: calc(var(--font-size) * var(--text-multiplier));
54
+ }
55
+
56
+ &-outline {
57
+ color: var(--color);
58
+ word-break: break-word;
59
+ word-wrap: break-word;
60
+
61
+ @supports (-webkit-text-stroke-width: 1px) {
62
+ color: transparent;
63
+ -webkit-text-fill-color: transparent;
64
+ -webkit-text-stroke-color: var(--color);
65
+ -webkit-text-stroke-width: var(--stroke-width);
66
+ }
67
+ }
68
+
69
+ &-truncate {
70
+ line-height: var(--size);
71
+ max-width: 100%;
72
+ overflow: hidden;
73
+ text-overflow: ellipsis;
74
+ white-space: nowrap;
75
+ }
76
+
77
+ &-underline {
78
+ text-decoration: underline;
79
+
80
+ &-dotted {
81
+ text-decoration: underline;
82
+ text-decoration-style: dotted;
83
+ }
84
+ }
85
+
86
+ &-uppercase {
87
+ text-transform: uppercase;
88
+ }
89
+ }
@@ -1,31 +1,31 @@
1
- @use '/lib';
2
- @use '/tokens';
3
-
4
- .--text {
5
- @each $key in lib.map-keys(tokens.$font-size) {
6
- &-#{$key} {
7
- --font-size: var(--font-size-#{$key});
8
- }
9
- }
10
-
11
- &-line-through {
12
- --line-width: var(--border-width-400);
13
-
14
- @each $key in lib.map-keys(tokens.$border-width) {
15
- &-#{$key} {
16
- --line-width: var(--border-width-#{$key});
17
- }
18
- }
19
- }
20
-
21
- &-outline {
22
- --color: inherit;
23
- --stroke-width: var(--border-width-400);
24
-
25
- @each $key in lib.map-keys(tokens.$border-width) {
26
- &-#{$key} {
27
- --stroke-width: var(--border-width-#{$key});
28
- }
29
- }
30
- }
31
- }
1
+ @use '/lib';
2
+ @use '/tokens';
3
+
4
+ .--text {
5
+ @each $key in lib.map-keys(tokens.$font-size) {
6
+ &-#{$key} {
7
+ --font-size: var(--font-size-#{$key});
8
+ }
9
+ }
10
+
11
+ &-line-through {
12
+ --line-width: var(--border-width-400);
13
+
14
+ @each $key in lib.map-keys(tokens.$border-width) {
15
+ &-#{$key} {
16
+ --line-width: var(--border-width-#{$key});
17
+ }
18
+ }
19
+ }
20
+
21
+ &-outline {
22
+ --color: inherit;
23
+ --stroke-width: var(--border-width-400);
24
+
25
+ @each $key in lib.map-keys(tokens.$border-width) {
26
+ &-#{$key} {
27
+ --stroke-width: var(--border-width-#{$key});
28
+ }
29
+ }
30
+ }
31
+ }
@@ -1,5 +1,5 @@
1
- .--viewport {
2
- overflow: hidden;
3
- height: calc(100svh - var(--margin-vertical, 0px) * 2);
4
- width: calc(100vw - var(--margin-horizontal, 0px) * 2);
1
+ .--viewport {
2
+ overflow: hidden;
3
+ height: calc(100svh - var(--margin-vertical, 0px) * 2);
4
+ width: calc(100vw - var(--margin-horizontal, 0px) * 2);
5
5
  }
@@ -1,3 +1,3 @@
1
- .--width {
2
- width: var(--width);
3
- }
1
+ .--width {
2
+ width: var(--width);
3
+ }
@@ -1,9 +1,9 @@
1
- .--width {
2
- &-full {
3
- --width: 100%;
4
- }
5
-
6
- &-half {
7
- --width: 50%;
8
- }
9
- }
1
+ .--width {
2
+ &-full {
3
+ --width: 100%;
4
+ }
5
+
6
+ &-half {
7
+ --width: 50%;
8
+ }
9
+ }
package/src/index.ts CHANGED
@@ -1,17 +1,17 @@
1
- import '@esportsplus/webpack/global.d.ts';
2
-
3
- export { default as accordion }from './components/accordion';
4
- export { default as aurora }from './components/aurora';
5
- export { default as clipboard }from './components/clipboard';
6
- export { default as counter }from './components/counter';
7
- export { default as ellipsis }from './components/ellipsis';
8
- export { default as form }from './components/form';
9
- export { default as json }from './components/json';
10
- export { default as magnet }from './components/magnet';
11
- export { default as number }from './components/number';
12
- export { default as page }from './components/page';
13
- export { default as root }from './components/root';
14
- export { default as scrollbar }from './components/scrollbar';
15
- export { default as site }from './components/site';
16
- export { default as tooltip }from './components/tooltip';
1
+ import '@esportsplus/webpack/global.d.ts';
2
+
3
+ export { default as accordion }from './components/accordion';
4
+ export { default as aurora }from './components/aurora';
5
+ export { default as clipboard }from './components/clipboard';
6
+ export { default as counter }from './components/counter';
7
+ export { default as ellipsis }from './components/ellipsis';
8
+ export { default as form }from './components/form';
9
+ export { default as json }from './components/json';
10
+ export { default as magnet }from './components/magnet';
11
+ export { default as number }from './components/number';
12
+ export { default as page }from './components/page';
13
+ export { default as root }from './components/root';
14
+ export { default as scrollbar }from './components/scrollbar';
15
+ export { default as site }from './components/site';
16
+ export { default as tooltip }from './components/tooltip';
17
17
  export { default as truncate }from './components/truncate';
@@ -1,7 +1,7 @@
1
- @forward 'scss/breakpoint';
2
- @forward 'scss/color' as color-*;
3
- @forward 'scss/css-variables';
4
- @forward 'scss/list' as list-*;
5
- @forward 'scss/map' as map-*;
6
- @forward 'scss/position';
7
- @forward 'scss/string' as string-*;
1
+ @forward 'scss/breakpoint';
2
+ @forward 'scss/color' as color-*;
3
+ @forward 'scss/css-variables';
4
+ @forward 'scss/list' as list-*;
5
+ @forward 'scss/map' as map-*;
6
+ @forward 'scss/position';
7
+ @forward 'scss/string' as string-*;
@@ -1,41 +1,41 @@
1
- @mixin breakpoint($function, $param: null) {
2
- @if $function == min-width or $function == min-height {
3
- @media only screen and ($function: #{$param + 1px}) {
4
- @content;
5
- }
6
- }
7
- @else if $function == max-width or $function == max-height {
8
- @media only screen and ($function: $param) {
9
- @content;
10
- }
11
- }
12
- @else if $function == between-width {
13
- @media only screen and (min-width: #{nth($param, 1) + 1px}) and (max-width: nth($param, 2)) {
14
- @content;
15
- }
16
- }
17
- @else if $function == orientation {
18
- @if $param == landscape {
19
- @media only screen and (min-aspect-ratio: 13/9) {
20
- @content;
21
- }
22
- }
23
- @else if $param == portrait {
24
- @media only screen and (max-aspect-ratio: 13/9) {
25
- @content;
26
- }
27
- }
28
- }
29
- @else if $function == retina {
30
- @media
31
- only screen and (-webkit-min-device-pixel-ratio: 1.25),
32
- only screen and ( min--moz-device-pixel-ratio: 1.25),
33
- only screen and ( -o-min-device-pixel-ratio: 1.25/1),
34
- only screen and ( min-device-pixel-ratio: 1.25),
35
- only screen and ( min-resolution: 200dpi),
36
- only screen and ( min-resolution: 1.25dppx)
37
- {
38
- @content;
39
- }
40
- }
41
- }
1
+ @mixin breakpoint($function, $param: null) {
2
+ @if $function == min-width or $function == min-height {
3
+ @media only screen and ($function: #{$param + 1px}) {
4
+ @content;
5
+ }
6
+ }
7
+ @else if $function == max-width or $function == max-height {
8
+ @media only screen and ($function: $param) {
9
+ @content;
10
+ }
11
+ }
12
+ @else if $function == between-width {
13
+ @media only screen and (min-width: #{nth($param, 1) + 1px}) and (max-width: nth($param, 2)) {
14
+ @content;
15
+ }
16
+ }
17
+ @else if $function == orientation {
18
+ @if $param == landscape {
19
+ @media only screen and (min-aspect-ratio: 13/9) {
20
+ @content;
21
+ }
22
+ }
23
+ @else if $param == portrait {
24
+ @media only screen and (max-aspect-ratio: 13/9) {
25
+ @content;
26
+ }
27
+ }
28
+ }
29
+ @else if $function == retina {
30
+ @media
31
+ only screen and (-webkit-min-device-pixel-ratio: 1.25),
32
+ only screen and ( min--moz-device-pixel-ratio: 1.25),
33
+ only screen and ( -o-min-device-pixel-ratio: 1.25/1),
34
+ only screen and ( min-device-pixel-ratio: 1.25),
35
+ only screen and ( min-resolution: 200dpi),
36
+ only screen and ( min-resolution: 1.25dppx)
37
+ {
38
+ @content;
39
+ }
40
+ }
41
+ }
@@ -1 +1 @@
1
- @forward 'sass:color';
1
+ @forward 'sass:color';
@@ -1,13 +1,13 @@
1
- @mixin css-variables($prefix, $tokens) {
2
- @each $key, $value in $tokens {
3
- @if type-of($value) == 'map' {
4
- @each $subkey, $subvalue in $value {
5
- --#{$prefix}-#{$key}-#{$subkey}: #{$subvalue};
6
- }
7
- }
8
- @else {
9
- --#{$prefix}-#{$key}: #{$value};
10
- }
11
- }
12
- }
13
-
1
+ @mixin css-variables($prefix, $tokens) {
2
+ @each $key, $value in $tokens {
3
+ @if type-of($value) == 'map' {
4
+ @each $subkey, $subvalue in $value {
5
+ --#{$prefix}-#{$key}-#{$subkey}: #{$subvalue};
6
+ }
7
+ }
8
+ @else {
9
+ --#{$prefix}-#{$key}: #{$value};
10
+ }
11
+ }
12
+ }
13
+
@@ -1,76 +1,76 @@
1
- @use 'sass:list';
2
- @use 'sass:string';
3
-
4
- @forward 'sass:list';
5
-
6
- @function contains($needles, $haystack) {
7
- $haystack: to-list($haystack);
8
- $needles: to-list($needles);
9
-
10
- @each $needle in $needles {
11
- @if list.index($haystack, $needle) {
12
- @return true;
13
- }
14
- }
15
-
16
- @return false;
17
- }
18
-
19
- @function implode($glue, $list) {
20
- $list: unique($list);
21
- $output: null;
22
-
23
- @if type-of($list) != list {
24
- @error "#{$list} Is Not A Valid List";
25
- }
26
-
27
- @for $i from 1 through list.length($list) {
28
- $m: nth($list, $i);
29
-
30
- // If $k Is A List Flatten By Running Through Function Again
31
- @if type-of($m) == list {
32
- $output: string.unquote("#{$output}#{$glue}#{implode($glue, $m)}");
33
- }
34
- // Piece Together String
35
- @else {
36
- $output: string.unquote("#{$output}#{$glue}#{$m}");
37
- }
38
- }
39
-
40
- @if $output != null {
41
- $output: string.slice($output, string.length($glue) + 1, -1);
42
- }
43
-
44
- @return $output;
45
- }
46
-
47
- @function to-list($input) {
48
- $output: $input;
49
-
50
- @if type-of($input) != list {
51
- $output: ($input,);
52
- }
53
-
54
- @return $output;
55
- }
56
-
57
- @function unique($list, $recursive: false) {
58
- $result: ();
59
-
60
- @if type-of($list) != list {
61
- @error "#{$list} Is Not A Valid List";
62
- }
63
-
64
- @each $item in $list {
65
- @if not list.index($result, $item) and $item != '' {
66
- @if list.length($item) > 1 and $recursive {
67
- $result: list.append($result, unique($item, $recursive));
68
- }
69
- @else {
70
- $result: list.append($result, $item);
71
- }
72
- }
73
- }
74
-
75
- @return $result;
76
- }
1
+ @use 'sass:list';
2
+ @use 'sass:string';
3
+
4
+ @forward 'sass:list';
5
+
6
+ @function contains($needles, $haystack) {
7
+ $haystack: to-list($haystack);
8
+ $needles: to-list($needles);
9
+
10
+ @each $needle in $needles {
11
+ @if list.index($haystack, $needle) {
12
+ @return true;
13
+ }
14
+ }
15
+
16
+ @return false;
17
+ }
18
+
19
+ @function implode($glue, $list) {
20
+ $list: unique($list);
21
+ $output: null;
22
+
23
+ @if type-of($list) != list {
24
+ @error "#{$list} Is Not A Valid List";
25
+ }
26
+
27
+ @for $i from 1 through list.length($list) {
28
+ $m: nth($list, $i);
29
+
30
+ // If $k Is A List Flatten By Running Through Function Again
31
+ @if type-of($m) == list {
32
+ $output: string.unquote("#{$output}#{$glue}#{implode($glue, $m)}");
33
+ }
34
+ // Piece Together String
35
+ @else {
36
+ $output: string.unquote("#{$output}#{$glue}#{$m}");
37
+ }
38
+ }
39
+
40
+ @if $output != null {
41
+ $output: string.slice($output, string.length($glue) + 1, -1);
42
+ }
43
+
44
+ @return $output;
45
+ }
46
+
47
+ @function to-list($input) {
48
+ $output: $input;
49
+
50
+ @if type-of($input) != list {
51
+ $output: ($input,);
52
+ }
53
+
54
+ @return $output;
55
+ }
56
+
57
+ @function unique($list, $recursive: false) {
58
+ $result: ();
59
+
60
+ @if type-of($list) != list {
61
+ @error "#{$list} Is Not A Valid List";
62
+ }
63
+
64
+ @each $item in $list {
65
+ @if not list.index($result, $item) and $item != '' {
66
+ @if list.length($item) > 1 and $recursive {
67
+ $result: list.append($result, unique($item, $recursive));
68
+ }
69
+ @else {
70
+ $result: list.append($result, $item);
71
+ }
72
+ }
73
+ }
74
+
75
+ @return $result;
76
+ }
@@ -1 +1 @@
1
- @forward 'sass:map';
1
+ @forward 'sass:map';