@soyfri/template 1.0.7 → 1.0.8

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 (45) hide show
  1. package/README.md +2 -2
  2. package/dist/assets/sass/_init.scss +23 -19
  3. package/dist/assets/sass/components/components.scss +3 -3
  4. package/dist/assets/sass/core/base/_functions.scss +5 -5
  5. package/dist/assets/sass/core/base/_mixins.scss +6 -6
  6. package/dist/assets/sass/core/base/functions/_get.scss +23 -20
  7. package/dist/assets/sass/core/base/functions/_math.scss +2 -1
  8. package/dist/assets/sass/core/base/functions/_set.scss +16 -13
  9. package/dist/assets/sass/core/base/functions/_theme-colors.scss +5 -3
  10. package/dist/assets/sass/core/components/_bootstrap-icon.scss +2 -1
  11. package/dist/assets/sass/core/components/_buttons.scss +2 -2
  12. package/dist/assets/sass/core/components/_card.scss +2 -1
  13. package/dist/assets/sass/core/components/_fixed.scss +2 -1
  14. package/dist/assets/sass/core/components/_forms.scss +8 -8
  15. package/dist/assets/sass/core/components/_helpers.scss +7 -7
  16. package/dist/assets/sass/core/components/_menu.scss +2 -2
  17. package/dist/assets/sass/core/components/_mixins.scss +8 -8
  18. package/dist/assets/sass/core/components/_scroll.scss +2 -1
  19. package/dist/assets/sass/core/components/_stepper.scss +3 -3
  20. package/dist/assets/sass/core/components/_svg-icon.scss +2 -1
  21. package/dist/assets/sass/core/components/_symbol.scss +2 -1
  22. package/dist/assets/sass/core/components/_tables.scss +2 -1
  23. package/dist/assets/sass/core/components/_utilities.scss +2 -1
  24. package/dist/assets/sass/core/components/_variables-dark.scss +2 -1
  25. package/dist/assets/sass/core/components/_variables.scss +8 -7
  26. package/dist/assets/sass/core/components/buttons/_theme.scss +4 -3
  27. package/dist/assets/sass/core/components/components.scss +72 -63
  28. package/dist/assets/sass/core/components/helpers/_background.scss +2 -1
  29. package/dist/assets/sass/core/components/helpers/_flex.scss +2 -1
  30. package/dist/assets/sass/core/components/menu/_base.scss +2 -1
  31. package/dist/assets/sass/core/components/mixins/_menu.scss +4 -2
  32. package/dist/assets/sass/core/components/wizard.scss +1 -1
  33. package/dist/assets/sass/core/layout/base/_layout.scss +25 -25
  34. package/dist/assets/sass/core/vendors/plugins/_mixins.scss +1 -1
  35. package/dist/assets/sass/core/vendors/plugins/_plugins.angular.scss +7 -7
  36. package/dist/assets/sass/core/vendors/plugins/_plugins.react.scss +7 -7
  37. package/dist/assets/sass/core/vendors/plugins/_plugins.scss +29 -29
  38. package/dist/assets/sass/core/vendors/plugins/_plugins.vue.scss +7 -7
  39. package/dist/assets/sass/core/vendors/plugins/_variables-dark.scss +5 -4
  40. package/dist/assets/sass/core/vendors/plugins/_variables.scss +5 -4
  41. package/dist/assets/sass/layout/_layout.scss +13 -13
  42. package/dist/assets/sass/layout/_variables.custom.scss +3 -2
  43. package/dist/assets/sass/style.react.scss +8 -4
  44. package/dist/assets/sass/style.scss +5 -5
  45. package/package.json +14 -12
package/README.md CHANGED
@@ -20,8 +20,8 @@ yarn add @soyfri/template
20
20
 
21
21
  ## Requirements
22
22
  ### Peer Dependencies
23
- - React >=16.8.0
24
- - React DOM >=16.8.0
23
+ - React >=19.0.0
24
+ - React DOM >=19.0.0
25
25
 
26
26
  ## Usage
27
27
 
@@ -4,29 +4,33 @@
4
4
 
5
5
 
6
6
  // Custom functions & mixins
7
- @import "./core/base/functions";
8
- @import "./core/base/mixins";
9
- @import "./core/components/mixins";
10
- @import "./core/vendors/plugins/mixins";
7
+ @use "./core/base/functions" as *; // Use 'as *' to make functions globally accessible
8
+ @use "./core/base/mixins" as *; // Use 'as *' to make mixins globally accessible
9
+ @use "./core/components/mixins" as *; // Use 'as *' to make mixins globally accessible
10
+ @use "./core/vendors/plugins/mixins" as *; // Use 'as *' to make mixins globally accessible
11
11
 
12
12
  // Custom variables
13
- @import "components/variables.custom";
14
- @import "./core/components/variables";
15
- @import "./core/components/variables-dark";
16
- @import "components/variables.override";
13
+ @use "components/variables.custom" as *; // Use 'as *' to make variables globally accessible
14
+ @use "./core/components/variables" as *; // Use 'as *' to make variables globally accessible
15
+ @use "./core/components/variables-dark" as *; // Use 'as *' to make variables globally accessible
16
+ @use "components/variables.override" as *; // Use 'as *' to make variables globally accessible
17
17
 
18
- // Bootstrap initializaton
19
- @import "bootstrap/scss/functions";
20
- @import "bootstrap/scss/variables";
21
- @import "bootstrap/scss/variables-dark";
22
- @import "bootstrap/scss/maps";
23
- @import "bootstrap/scss/mixins";
24
- @import "bootstrap/scss/utilities";
18
+ // Bootstrap initialization
19
+ // Bootstrap modules are designed to be used with `@use`.
20
+ // By default, many of their core components and utilities are exposed globally
21
+ // once their respective modules are `@use`-ed. We'll use `as *` for consistency,
22
+ // assuming you want their functions, variables, and mixins widely available.
23
+ @use "bootstrap/scss/functions" as *;
24
+ @use "bootstrap/scss/variables" as *;
25
+ @use "bootstrap/scss/variables-dark" as *;
26
+ @use "bootstrap/scss/maps" as *;
27
+ @use "bootstrap/scss/mixins" as *;
28
+ @use "bootstrap/scss/utilities" as *;
25
29
 
26
30
  // 3rd-Party plugins variables
27
- @import "./core/vendors/plugins/variables";
28
- @import "./core/vendors/plugins/variables-dark";
31
+ @use "./core/vendors/plugins/variables" as *; // Use 'as *' to make variables globally accessible
32
+ @use "./core/vendors/plugins/variables-dark" as *; // Use 'as *' to make variables globally accessible
29
33
 
30
34
  // Custom layout variables
31
- @import "./core/layout/base/variables";
32
- @import "layout/variables.custom";
35
+ @use "./core/layout/base/variables" as *; // Use 'as *' to make variables globally accessible
36
+ @use "layout/variables.custom" as *; // Use 'as *' to make variables globally accessible
@@ -3,6 +3,6 @@
3
3
  //
4
4
 
5
5
  // Import Dependencies
6
- @import "stepper/multistep";
7
- @import "landing";
8
- @import "btn-secondary";
6
+ @use "stepper/multistep";
7
+ @use "landing";
8
+ @use "btn-secondary";
@@ -3,8 +3,8 @@
3
3
  //
4
4
 
5
5
  // Import Dependencies
6
- @import "functions/get";
7
- @import "functions/set";
8
- @import "functions/math";
9
- @import "functions/valueif";
10
- @import "functions/theme-colors";
6
+ @use "functions/get";
7
+ @use "functions/set";
8
+ @use "functions/math";
9
+ @use "functions/valueif";
10
+ @use "functions/theme-colors";
@@ -3,9 +3,9 @@
3
3
  //
4
4
 
5
5
  // Import Dependencies
6
- @import "mixins/property";
7
- @import "mixins/browsers";
8
- @import "mixins/fixes";
9
- @import "mixins/reset";
10
- @import "mixins/placeholder";
11
- @import "mixins/breakpoints";
6
+ @use "mixins/property";
7
+ @use "mixins/browsers";
8
+ @use "mixins/fixes";
9
+ @use "mixins/reset";
10
+ @use "mixins/placeholder";
11
+ @use "mixins/breakpoints";
@@ -1,32 +1,35 @@
1
+ @use "sass:list";
2
+ @use "sass:map";
3
+ @use "sass:meta";
1
4
  //
2
5
  // Get
3
6
  //
4
7
 
5
8
  @function get($map, $keys...) {
6
- @if length($keys) == 1 {
7
- $keys: nth($keys, 1);
9
+ @if list.length($keys) == 1 {
10
+ $keys: list.nth($keys, 1);
8
11
  }
9
12
 
10
- @if type-of($map) != 'map' or $map == null {
13
+ @if meta.type-of($map) != 'map' or $map == null {
11
14
  //@return false;
12
15
  }
13
16
 
14
- $warn: "#{nth($keys, 1)}";
15
- $length: length($keys);
16
- $get: map-get($map, nth($keys, 1));
17
+ $warn: "#{list.nth($keys, 1)}";
18
+ $length: list.length($keys);
19
+ $get: map.get($map, list.nth($keys, 1));
17
20
 
18
21
  @if $length > 1 {
19
22
  @for $i from 2 through $length {
20
- @if $get != null and type-of($get) == 'map' {
21
- $warn: $warn + "->#{nth($keys, $i)}";
22
- $get: map-get($get, nth($keys, $i));
23
+ @if $get != null and meta.type-of($get) == 'map' {
24
+ $warn: $warn + "->#{list.nth($keys, $i)}";
25
+ $get: map.get($get, list.nth($keys, $i));
23
26
 
24
27
  @if $get == null {
25
28
  @return null;
26
29
  }
27
30
  }
28
31
  @else {
29
- @return get-warning($warn, $get, nth($keys, $i));
32
+ @return get-warning($warn, $get, list.nth($keys, $i));
30
33
  }
31
34
  }
32
35
  }
@@ -35,23 +38,23 @@
35
38
  }
36
39
 
37
40
  @function has($map, $keys...) {
38
- @if length($keys) == 1 {
39
- $keys: nth($keys, 1);
41
+ @if list.length($keys) == 1 {
42
+ $keys: list.nth($keys, 1);
40
43
  }
41
44
 
42
- @if type-of($map) != 'map' or $map == null {
45
+ @if meta.type-of($map) != 'map' or $map == null {
43
46
  //@return false;
44
47
  }
45
48
 
46
- $warn: "#{nth($keys, 1)}";
47
- $length: length($keys);
48
- $get: map-get($map, nth($keys, 1));
49
+ $warn: "#{list.nth($keys, 1)}";
50
+ $length: list.length($keys);
51
+ $get: map.get($map, list.nth($keys, 1));
49
52
 
50
53
  @if $length > 1 {
51
54
  @for $i from 2 through $length {
52
- @if $get != null and type-of($get) == 'map' {
53
- $warn: $warn + "->#{nth($keys, $i)}";
54
- $get: map-get($get, nth($keys, $i));
55
+ @if $get != null and meta.type-of($get) == 'map' {
56
+ $warn: $warn + "->#{list.nth($keys, $i)}";
57
+ $get: map.get($get, list.nth($keys, $i));
55
58
 
56
59
  @if $get == null {
57
60
  @return false;
@@ -75,7 +78,7 @@
75
78
  @if $get == null {
76
79
  @warn "Map has no value for key search `#{$warn}`";
77
80
  }
78
- @else if type-of($get) != 'map' {
81
+ @else if meta.type-of($get) != 'map' {
79
82
  @warn "Non-map value found for key search `#{$warn}`, cannot search for key `#{$key}`";
80
83
  }
81
84
  @return null;
@@ -1,3 +1,4 @@
1
+ @use "sass:math";
1
2
  //
2
3
  // Math
3
4
  //
@@ -7,7 +8,7 @@
7
8
  $x1: $x0;
8
9
 
9
10
  @for $i from 1 through 10 {
10
- $x1: $x0 - ($x0 * $x0 - abs($r)) / (2 * $x0);
11
+ $x1: $x0 - ($x0 * $x0 - math.abs($r)) / (2 * $x0);
11
12
  $x0: $x1;
12
13
  }
13
14
 
@@ -1,3 +1,6 @@
1
+ @use "sass:list";
2
+ @use "sass:map";
3
+ @use "sass:meta";
1
4
  /// Deep set function to set a value in nested maps
2
5
 
3
6
  @function set($map, $keys, $value) {
@@ -6,36 +9,36 @@
6
9
 
7
10
  // If the last key is a map already
8
11
  // Warn the user we will be overriding it with $value
9
- @if type-of(nth($keys, -1)) == "map" {
12
+ @if meta.type-of(list.nth($keys, -1)) == "map" {
10
13
  @warn "The last key you specified is a map; it will be overrided with `#{$value}`.";
11
14
  }
12
15
 
13
16
  // If $keys is a single key
14
17
  // Just merge and return
15
- @if length($keys) == 1 {
16
- @return map-merge($map, ($keys: $value));
18
+ @if list.length($keys) == 1 {
19
+ @return map.merge($map, ($keys: $value));
17
20
  }
18
21
 
19
22
  // Loop from the first to the second to last key from $keys
20
23
  // Store the associated map to this key in the $maps list
21
24
  // If the key doesn't exist, throw an error
22
- @for $i from 1 through length($keys) - 1 {
23
- $current-key: nth($keys, $i);
24
- $current-map: nth($maps, -1);
25
- $current-get: map-get($current-map, $current-key);
25
+ @for $i from 1 through list.length($keys) - 1 {
26
+ $current-key: list.nth($keys, $i);
27
+ $current-map: list.nth($maps, -1);
28
+ $current-get: map.get($current-map, $current-key);
26
29
  @if $current-get == null {
27
30
  @error "Key `#{$key}` doesn't exist at current level in map.";
28
31
  }
29
- $maps: append($maps, $current-get);
32
+ $maps: list.append($maps, $current-get);
30
33
  }
31
34
 
32
35
  // Loop from the last map to the first one
33
36
  // Merge it with the previous one
34
- @for $i from length($maps) through 1 {
35
- $current-map: nth($maps, $i);
36
- $current-key: nth($keys, $i);
37
- $current-val: if($i == length($maps), $value, $result);
38
- $result: map-merge($current-map, ($current-key: $current-val));
37
+ @for $i from list.length($maps) through 1 {
38
+ $current-map: list.nth($maps, $i);
39
+ $current-key: list.nth($keys, $i);
40
+ $current-val: if($i == list.length($maps), $value, $result);
41
+ $result: map.merge($current-map, ($current-key: $current-val));
39
42
  }
40
43
 
41
44
  // Return result
@@ -1,15 +1,17 @@
1
+ @use "functions/get";
2
+
1
3
  //
2
4
  // Bootstrap extended functions
3
5
  //
4
6
 
5
7
  @function theme-inverse-color($key: "primary") {
6
- @return get($theme-inverse-colors, $key);
8
+ @return get.get($theme-inverse-colors, $key);
7
9
  }
8
10
 
9
11
  @function theme-active-color($key: "primary") {
10
- @return get($theme-active-colors, $key);
12
+ @return get.get($theme-active-colors, $key);
11
13
  }
12
14
 
13
15
  @function theme-light-color($key: "primary") {
14
- @return get($theme-light-colors, $key);
16
+ @return get.get($theme-light-colors, $key);
15
17
  }
@@ -1,5 +1,6 @@
1
+ @use "sass:map";
1
2
  .bi {
2
- @each $breakpoint in map-keys($grid-breakpoints) {
3
+ @each $breakpoint in map.keys($grid-breakpoints) {
3
4
  @include media-breakpoint-up($breakpoint) {
4
5
  $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
5
6
 
@@ -3,5 +3,5 @@
3
3
  //
4
4
 
5
5
  // Import Dependencies
6
- @import "buttons/base";
7
- @import "buttons/theme";
6
+ @use "buttons/base";
7
+ @use "buttons/theme";
@@ -1,3 +1,4 @@
1
+ @use "sass:map";
1
2
  //
2
3
  // Card
3
4
  //
@@ -211,7 +212,7 @@
211
212
 
212
213
  // Responsive stretch heights
213
214
  .card {
214
- @each $breakpoint in map-keys($grid-breakpoints) {
215
+ @each $breakpoint in map.keys($grid-breakpoints) {
215
216
  @include media-breakpoint-up($breakpoint) {
216
217
  $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
217
218
 
@@ -1,8 +1,9 @@
1
+ @use "sass:map";
1
2
  //
2
3
  // Fixed
3
4
  //
4
5
 
5
- @each $breakpoint in map-keys($grid-breakpoints) {
6
+ @each $breakpoint in map.keys($grid-breakpoints) {
6
7
  @include media-breakpoint-up($breakpoint) {
7
8
  $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
8
9
 
@@ -3,11 +3,11 @@
3
3
  //
4
4
 
5
5
  // Import Dependencies
6
- @import "forms/labels";
7
- @import "forms/form-control";
8
- @import "forms/floating-labels";
9
- @import "forms/form-select";
10
- @import "forms/form-check";
11
- @import "forms/input-group";
12
- @import "forms/floating-labels";
13
- @import "forms/required";
6
+ @use "forms/labels";
7
+ @use "forms/form-control";
8
+ @use "forms/floating-labels";
9
+ @use "forms/form-select";
10
+ @use "forms/form-check";
11
+ @use "forms/input-group";
12
+ @use "forms/floating-labels";
13
+ @use "forms/required";
@@ -3,10 +3,10 @@
3
3
  //
4
4
 
5
5
  // Import Dependencies
6
- @import "helpers/background";
7
- @import "helpers/borders";
8
- @import "helpers/flex";
9
- @import "helpers/shadow";
10
- @import "helpers/text";
11
- @import "helpers/opacity";
12
- @import "helpers/transform";
6
+ @use "helpers/background";
7
+ @use "helpers/borders";
8
+ @use "helpers/flex";
9
+ @use "helpers/shadow";
10
+ @use "helpers/text";
11
+ @use "helpers/opacity";
12
+ @use "helpers/transform";
@@ -3,5 +3,5 @@
3
3
  //
4
4
 
5
5
  // Import Dependencies
6
- @import "menu/base";
7
- @import "menu/theme";
6
+ @use "menu/base";
7
+ @use "menu/theme";
@@ -3,11 +3,11 @@
3
3
  //
4
4
 
5
5
  // Import Dependencies
6
- @import "mixins/menu";
7
- @import "mixins/buttons";
8
- @import "mixins/ki";
9
- @import "mixins/symbol";
10
- @import "mixins/svg-icon";
11
- @import "mixins/svg-bg-icon";
12
- @import "mixins/scroll";
13
- @import "mixins/shape";
6
+ @use "mixins/menu";
7
+ @use "mixins/buttons";
8
+ @use "mixins/ki";
9
+ @use "mixins/symbol";
10
+ @use "mixins/svg-icon";
11
+ @use "mixins/svg-bg-icon";
12
+ @use "mixins/scroll";
13
+ @use "mixins/shape";
@@ -1,3 +1,4 @@
1
+ @use "sass:map";
1
2
  //
2
3
  // Scroll
3
4
  //
@@ -80,7 +81,7 @@
80
81
  }
81
82
 
82
83
  // Utilities
83
- @each $breakpoint in map-keys($grid-breakpoints) {
84
+ @each $breakpoint in map.keys($grid-breakpoints) {
84
85
  @include media-breakpoint-up($breakpoint) {
85
86
  $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
86
87
 
@@ -3,6 +3,6 @@
3
3
  //
4
4
 
5
5
  // Import Dependencies
6
- @import "stepper/base";
7
- @import "stepper/pills";
8
- @import "stepper/links";
6
+ @use "stepper/base";
7
+ @use "stepper/pills";
8
+ @use "stepper/links";
@@ -1,3 +1,4 @@
1
+ @use "sass:map";
1
2
  //
2
3
  // SVG Icon
3
4
  //
@@ -15,7 +16,7 @@
15
16
  }
16
17
 
17
18
  // Responsive icon sizes
18
- @each $breakpoint in map-keys($grid-breakpoints) {
19
+ @each $breakpoint in map.keys($grid-breakpoints) {
19
20
  @include media-breakpoint-up($breakpoint) {
20
21
  $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
21
22
 
@@ -1,3 +1,4 @@
1
+ @use "sass:map";
1
2
  //
2
3
  // symbol
3
4
  //
@@ -69,7 +70,7 @@
69
70
  // Sizes
70
71
  @include symbol-size(get($symbol-sizes, default));
71
72
 
72
- @each $breakpoint in map-keys($grid-breakpoints) {
73
+ @each $breakpoint in map.keys($grid-breakpoints) {
73
74
  @include media-breakpoint-up($breakpoint) {
74
75
  $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
75
76
 
@@ -1,3 +1,4 @@
1
+ @use "sass:map";
1
2
  //
2
3
  // Table
3
4
  //
@@ -197,7 +198,7 @@
197
198
  }
198
199
 
199
200
  // Cell gutters
200
- @each $breakpoint in map-keys($grid-breakpoints) {
201
+ @each $breakpoint in map.keys($grid-breakpoints) {
201
202
  @include media-breakpoint-up($breakpoint) {
202
203
  $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
203
204
 
@@ -1,8 +1,9 @@
1
+ @use "sass:map";
1
2
  //
2
3
  // Custom utilities
3
4
  //
4
5
 
5
- $utilities: map-merge(
6
+ $utilities: map.merge(
6
7
  $utilities,
7
8
  (
8
9
  "cursor": (
@@ -1,3 +1,4 @@
1
+ @use "sass:color";
1
2
  // Bootstrap color system
2
3
 
3
4
  //
@@ -321,7 +322,7 @@ $rating-color-active-dark: #FFAD0F !default;
321
322
  // Keenthemes ribbon component
322
323
  $ribbon-label-box-shadow-dark: 0px -1px 5px 0px rgba($white, 0.1) !default;
323
324
  $ribbon-label-bg-dark: $primary !default;
324
- $ribbon-label-border-color-dark: darken($primary, 20%) !default;
325
+ $ribbon-label-border-color-dark: color.adjust($primary, $lightness: -20%) !default;
325
326
  $ribbon-clip-bg-dark: $light !default;
326
327
 
327
328
  // Engage panel
@@ -1,3 +1,4 @@
1
+ @use "sass:color";
1
2
  //
2
3
  // Bootstrap & Custom Variables
3
4
  // Safely override any variable in _variables.custom.scss
@@ -1257,7 +1258,7 @@ $rating-color-active: #FFAD0F !default;
1257
1258
  // Keenthemes ribbon component
1258
1259
  $ribbon-label-box-shadow: 0px -1px 5px 0px rgba($dark, 0.1) !default;
1259
1260
  $ribbon-label-bg: $primary !default;
1260
- $ribbon-label-border-color: darken($primary, 20%) !default;
1261
+ $ribbon-label-border-color: color.adjust($primary, $lightness: -20%) !default;
1261
1262
  $ribbon-clip-bg: $dark !default;
1262
1263
 
1263
1264
  // Keenthemes fixed component
@@ -1278,36 +1279,36 @@ $social-colors: (
1278
1279
  base: #3b5998,
1279
1280
  inverse: #ffffff,
1280
1281
  light: rgba(#3b5998, 0.1),
1281
- active: darken(#3b5998, 7.5%)
1282
+ active: color.adjust(#3b5998, $lightness: -7.5%)
1282
1283
  ),
1283
1284
  google: (
1284
1285
  base: #dd4b39,
1285
1286
  inverse: #ffffff,
1286
1287
  light: rgba(#dd4b39, 0.1),
1287
- active: darken(#dd4b39, 7.5%)
1288
+ active: color.adjust(#dd4b39, $lightness: -7.5%)
1288
1289
  ),
1289
1290
  twitter: (
1290
1291
  base: #1da1f2,
1291
1292
  inverse: #ffffff,
1292
1293
  light: rgba(#1da1f2, 0.1),
1293
- active: darken(#1da1f2, 7.5%)
1294
+ active: color.adjust(#1da1f2, $lightness: -7.5%)
1294
1295
  ),
1295
1296
  instagram: (
1296
1297
  base: #e1306c,
1297
1298
  inverse: #ffffff,
1298
1299
  light: rgba(#e1306c, 0.1),
1299
- active: darken(#e1306c, 7.5%)
1300
+ active: color.adjust(#e1306c, $lightness: -7.5%)
1300
1301
  ),
1301
1302
  youtube: (
1302
1303
  base: #ff0000,
1303
1304
  inverse: #ffffff,
1304
1305
  light: rgba(#ff0000, 0.1),
1305
- active: darken(#ff0000, 7.5%)
1306
+ active: color.adjust(#ff0000, $lightness: -7.5%)
1306
1307
  ),
1307
1308
  linkedin: (
1308
1309
  base: #0077b5,
1309
1310
  inverse: #ffffff,
1310
1311
  light: rgba(#0077b5, 0.1),
1311
- active: darken(#0077b5, 7.5%)
1312
+ active: color.adjust(#0077b5, $lightness: -7.5%)
1312
1313
  )
1313
1314
  ) !default;
@@ -1,3 +1,4 @@
1
+ @use "sass:color";
1
2
  //
2
3
  // Buttons Theme
3
4
  //
@@ -298,10 +299,10 @@
298
299
  $icon-color: $gray-800-dark,
299
300
  $border-color: null,
300
301
  $bg-color: $gray-400-dark,
301
- $color-active: lighten($gray-800-dark, 3%),
302
- $icon-color-active: lighten($gray-800-dark, 3%),
302
+ $color-active: color.adjust($gray-800-dark, $lightness: 3%),
303
+ $icon-color-active: color.adjust($gray-800-dark, $lightness: 3%),
303
304
  $border-color-active: null,
304
- $bg-color-active: lighten($gray-400-dark, 3%),
305
+ $bg-color-active: color.adjust($gray-400-dark, $lightness: 3%),
305
306
  );
306
307
  }
307
308
  }
@@ -3,70 +3,79 @@
3
3
  //
4
4
 
5
5
  // Extended bootstrap utilities
6
- @import "utilities";
6
+ @use "utilities" as *; // Using `as *` to merge utilities directly into this scope
7
7
 
8
8
  // Bootstrap components
9
- @import "bootstrap/scss/bootstrap";
9
+ // Bootstrap's main SCSS file is designed to be @used.
10
+ // By default, it exposes a lot of things globally if you import it this way,
11
+ // but for a cleaner approach, you could import specific modules and use their functions/mixins.
12
+ // However, for simplicity and common usage, importing the main bootstrap.scss and then other components
13
+ // often means you still want some level of global access for standard Bootstrap elements.
14
+ // If you encounter issues, you might need to import specific bootstrap modules (e.g., @use "bootstrap/scss/mixins" as bs-mixins;)
15
+ // or configure Bootstrap's own @use statements in its entry point.
16
+ @use "bootstrap/scss/bootstrap" as *; // Assuming you want all Bootstrap components globally available
10
17
 
11
18
  // Custom components
12
- @import "root";
13
- @import "reboot";
14
- @import "type";
15
- @import "theme-mode";
16
- @import "animation";
17
- @import "alert";
18
- @import "dropdown";
19
- @import "toasts";
20
- @import "nav";
21
- @import "nav-line-tabs";
22
- @import "nav-pills-custom";
23
- @import "pagination";
24
- @import "separator";
25
- @import "carousel";
26
- @import "menu";
27
- @import "anchor";
28
- @import "card";
29
- @import "breadcrumb";
30
- @import "buttons";
31
- @import "modal";
32
- @import "code";
33
- @import "forms";
34
- @import "progress";
35
- @import "tables";
36
- @import "popover";
37
- @import "tooltip";
38
- @import "accordion";
39
- @import "image-input";
40
- @import "symbol";
41
- @import "pulse";
42
- @import "page-loader";
43
- @import "scrolltop";
44
- @import "svg-icon";
45
- @import "fixed";
46
- @import "timeline";
47
- @import "timeline-label";
48
- @import "overlay";
49
- @import "bullet";
50
- @import "drawer";
51
- @import "badge";
52
- @import "indicator";
53
- @import "hover";
54
- @import "rotate";
55
- @import "scroll";
56
- @import "rating";
57
- @import "stepper";
58
- @import "toggle";
59
- @import "shape";
60
- @import "ribbon";
61
- @import "blockui";
62
- @import "explore";
63
- @import "engage";
64
- @import "cookiealert";
65
- @import "print";
66
- @import "helpers";
67
- @import "tree";
68
- @import "testimonials-slider";
69
- @import "bootstrap-icon";
70
- @import "wizard";
71
- @import "title-reports";
72
- @import "image.scss"
19
+ // Using `as *` for each custom component to make their styles, variables, and mixins
20
+ // available directly without needing a prefix like `root.$variable`.
21
+ @use "root" as *;
22
+ @use "reboot" as *;
23
+ @use "type" as *;
24
+ @use "theme-mode" as *;
25
+ @use "animation" as *;
26
+ @use "alert" as *;
27
+ @use "dropdown" as *;
28
+ @use "toasts" as *;
29
+ @use "nav" as *;
30
+ @use "nav-line-tabs" as *;
31
+ @use "nav-pills-custom" as *;
32
+ @use "pagination" as *;
33
+ @use "separator" as *;
34
+ @use "carousel" as *;
35
+ @use "menu" as *;
36
+ @use "anchor" as *;
37
+ @use "card" as *;
38
+ @use "breadcrumb" as *;
39
+ @use "buttons" as *;
40
+ @use "modal" as *;
41
+ @use "code" as *;
42
+ @use "forms" as *;
43
+ @use "progress" as *;
44
+ @use "tables" as *;
45
+ @use "popover" as *;
46
+ @use "tooltip" as *;
47
+ @use "accordion" as *;
48
+ @use "image-input" as *;
49
+ @use "symbol" as *;
50
+ @use "pulse" as *;
51
+ @use "page-loader" as *;
52
+ @use "scrolltop" as *;
53
+ @use "svg-icon" as *;
54
+ @use "fixed" as *;
55
+ @use "timeline" as *;
56
+ @use "timeline-label" as *;
57
+ @use "overlay" as *;
58
+ @use "bullet" as *;
59
+ @use "drawer" as *;
60
+ @use "badge" as *;
61
+ @use "indicator" as *;
62
+ @use "hover" as *;
63
+ @use "rotate" as *;
64
+ @use "scroll" as *;
65
+ @use "rating" as *;
66
+ @use "stepper" as *;
67
+ @use "toggle" as *;
68
+ @use "shape" as *;
69
+ @use "ribbon" as *;
70
+ @use "blockui" as *;
71
+ @use "explore" as *;
72
+ @use "engage" as *;
73
+ @use "cookiealert" as *;
74
+ @use "print" as *;
75
+ @use "helpers" as *;
76
+ @use "tree" as *;
77
+ @use "testimonials-slider" as *;
78
+ @use "bootstrap-icon" as *;
79
+ @use "wizard" as *;
80
+ @use "title-reports" as *;
81
+ @use "image.scss" as *;
@@ -1,3 +1,4 @@
1
+ @use "sass:map";
1
2
  //
2
3
  // Custom background helpers
3
4
  //
@@ -216,7 +217,7 @@
216
217
  }
217
218
 
218
219
  // Responsive helpers
219
- @each $breakpoint in map-keys($grid-breakpoints) {
220
+ @each $breakpoint in map.keys($grid-breakpoints) {
220
221
  @include media-breakpoint-up($breakpoint) {
221
222
  $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
222
223
 
@@ -1,9 +1,10 @@
1
+ @use "sass:map";
1
2
  //
2
3
  // Flex Utilities
3
4
  //
4
5
 
5
6
 
6
- @each $breakpoint in map-keys($grid-breakpoints) {
7
+ @each $breakpoint in map.keys($grid-breakpoints) {
7
8
  @include media-breakpoint-up($breakpoint) {
8
9
  $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
9
10
 
@@ -1,3 +1,4 @@
1
+ @use "sass:map";
1
2
  //
2
3
  // Menu Base
3
4
  //
@@ -147,7 +148,7 @@
147
148
 
148
149
  // Responsive
149
150
  @each $direction in (up, down) {
150
- @each $breakpoint in map-keys($grid-breakpoints) {
151
+ @each $breakpoint in map.keys($grid-breakpoints) {
151
152
  $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
152
153
 
153
154
  @if $infix and $direction == down {
@@ -1,3 +1,5 @@
1
+ @use "svg-bg-icon";
2
+
1
3
  //
2
4
  // Label
3
5
  //
@@ -166,9 +168,9 @@
166
168
  @if ( $arrow-color != null ) {
167
169
  // Arrow
168
170
  .menu-arrow:after {
169
- @include svg-bg-icon(arrow-start, $arrow-color);
171
+ @include svg-bg-icon.svg-bg-icon(arrow-start, $arrow-color);
170
172
  /*rtl:begin:remove*/
171
- @include svg-bg-icon(arrow-end, $arrow-color);
173
+ @include svg-bg-icon.svg-bg-icon(arrow-end, $arrow-color);
172
174
  /*rtl:end:remove*/
173
175
  }
174
176
  }
@@ -3,4 +3,4 @@
3
3
  //
4
4
 
5
5
  // Import Dependencies
6
- @import "wizard/wizard";
6
+ @use "wizard/wizard";
@@ -2,28 +2,28 @@
2
2
  // App Layout
3
3
  //
4
4
 
5
- @import "mixins/layout-minimize";
6
- @import "mixins/layout-transition";
7
- @import "root";
8
- @import "reboot";
9
- @import "page";
10
- @import "page-loader";
11
- @import "container";
12
- @import "print";
13
- @import "navbar";
14
- @import "header/header";
15
- @import "header/header-primary";
16
- @import "header/header-secondary";
17
- @import "header/header-tertiary";
18
- @import "toolbar";
19
- @import "hero";
20
- @import "sidebar/sidebar";
21
- @import "sidebar/sidebar-primary";
22
- @import "sidebar/sidebar-secondary";
23
- @import "sidebar/sidebar-panel";
24
- @import "aside/aside";
25
- @import "wrapper";
26
- @import "main";
27
- @import "content";
28
- @import "footer";
29
- @import "layout-builder";
5
+ @use "mixins/layout-minimize";
6
+ @use "mixins/layout-transition";
7
+ @use "root";
8
+ @use "reboot";
9
+ @use "page";
10
+ @use "page-loader";
11
+ @use "container";
12
+ @use "print";
13
+ @use "navbar";
14
+ @use "header/header";
15
+ @use "header/header-primary";
16
+ @use "header/header-secondary";
17
+ @use "header/header-tertiary";
18
+ @use "toolbar";
19
+ @use "hero";
20
+ @use "sidebar/sidebar";
21
+ @use "sidebar/sidebar-primary";
22
+ @use "sidebar/sidebar-secondary";
23
+ @use "sidebar/sidebar-panel";
24
+ @use "aside/aside";
25
+ @use "wrapper";
26
+ @use "main";
27
+ @use "content";
28
+ @use "footer";
29
+ @use "layout-builder";
@@ -2,4 +2,4 @@
2
2
  // Mixins
3
3
  //
4
4
 
5
- @import "mixins/nouislider";
5
+ @use "mixins/nouislider";
@@ -3,10 +3,10 @@
3
3
  //
4
4
 
5
5
  // Import Dependencies
6
- @import "root";
7
- @import "prismjs";
8
- @import "nouislider";
9
- @import "apexcharts";
10
- @import "fslightbox";
11
- @import "tiny-slider";
12
- @import "fullcalendar";
6
+ @use "root";
7
+ @use "prismjs";
8
+ @use "nouislider";
9
+ @use "apexcharts";
10
+ @use "fslightbox";
11
+ @use "tiny-slider";
12
+ @use "fullcalendar";
@@ -3,10 +3,10 @@
3
3
  //
4
4
 
5
5
  // Import Dependencies
6
- @import "root";
7
- @import "prismjs";
8
- @import "nouislider";
9
- @import "apexcharts";
10
- @import "fslightbox";
11
- @import "tiny-slider";
12
- @import "fullcalendar";
6
+ @use "root";
7
+ @use "prismjs";
8
+ @use "nouislider";
9
+ @use "apexcharts";
10
+ @use "fslightbox";
11
+ @use "tiny-slider";
12
+ @use "fullcalendar";
@@ -3,32 +3,32 @@
3
3
  //
4
4
 
5
5
  // Import Dependencies
6
- @import "root";
7
- @import "prismjs";
8
- @import "fslightbox";
9
- @import "select2";
10
- @import "formvalidation";
11
- @import "daterangepicker";
12
- @import "flatpickr";
13
- @import "tagify";
14
- @import "bootstrap-maxlength";
15
- @import "ckeditor";
16
- @import "datatables";
17
- @import "dropzone";
18
- @import "gmaps";
19
- @import "nouislider";
20
- @import "quill";
21
- @import "recaptcha";
22
- @import "sweetalert2";
23
- @import "tinymce";
24
- @import "toastr";
25
- @import "draggable";
26
- @import "apexcharts";
27
- @import "leaflet";
28
- @import "tiny-slider";
29
- @import "fullcalendar";
30
- @import "jkanban";
31
- @import "jstree";
32
- @import "vis-timeline";
33
- @import "tempus-dominus";
34
- @import "keenicons";
6
+ @use "root";
7
+ @use "prismjs";
8
+ @use "fslightbox";
9
+ @use "select2";
10
+ @use "formvalidation";
11
+ @use "daterangepicker";
12
+ @use "flatpickr";
13
+ @use "tagify";
14
+ @use "bootstrap-maxlength";
15
+ @use "ckeditor";
16
+ @use "datatables";
17
+ @use "dropzone";
18
+ @use "gmaps";
19
+ @use "nouislider";
20
+ @use "quill";
21
+ @use "recaptcha";
22
+ @use "sweetalert2";
23
+ @use "tinymce";
24
+ @use "toastr";
25
+ @use "draggable";
26
+ @use "apexcharts";
27
+ @use "leaflet";
28
+ @use "tiny-slider";
29
+ @use "fullcalendar";
30
+ @use "jkanban";
31
+ @use "jstree";
32
+ @use "vis-timeline";
33
+ @use "tempus-dominus";
34
+ @use "keenicons";
@@ -3,10 +3,10 @@
3
3
  //
4
4
 
5
5
  // Import Dependencies
6
- @import "root";
7
- @import "prismjs";
8
- @import "nouislider";
9
- @import "apexcharts";
10
- @import "fslightbox";
11
- @import "tiny-slider";
12
- @import "fullcalendar";
6
+ @use "root";
7
+ @use "prismjs";
8
+ @use "nouislider";
9
+ @use "apexcharts";
10
+ @use "fslightbox";
11
+ @use "tiny-slider";
12
+ @use "fullcalendar";
@@ -1,3 +1,4 @@
1
+ @use "sass:color";
1
2
  //
2
3
  // 3rd-party config
3
4
  //
@@ -8,11 +9,11 @@ $prismjs-bg-dark: #151521;
8
9
 
9
10
  $prismjs-border-dark: rgba($white, 0.1);
10
11
 
11
- $prismjs-btn-bg-dark: lighten($prismjs-bg-dark, 9%);
12
- $prismjs-btn-bg-hover-dark: lighten($prismjs-bg-dark, 9%);
12
+ $prismjs-btn-bg-dark: color.adjust($prismjs-bg-dark, $lightness: 9%);
13
+ $prismjs-btn-bg-hover-dark: color.adjust($prismjs-bg-dark, $lightness: 9%);
13
14
 
14
15
  $prismjs-btn-color-dark: rgba($white, 0.75);
15
16
  $prismjs-btn-color-hover-dark: $primary;
16
17
 
17
- $prismjs-scrollbar-color-dark: lighten($prismjs-bg-dark, 12%);
18
- $prismjs-scrollbar-color-hover-dark: lighten($prismjs-bg-dark, 15%);
18
+ $prismjs-scrollbar-color-dark: color.adjust($prismjs-bg-dark, $lightness: 12%);
19
+ $prismjs-scrollbar-color-hover-dark: color.adjust($prismjs-bg-dark, $lightness: 15%);
@@ -1,3 +1,4 @@
1
+ @use "sass:color";
1
2
  //
2
3
  // 3rd-party config
3
4
  //
@@ -8,14 +9,14 @@ $prismjs-bg: #1e1e3f;
8
9
 
9
10
  $prismjs-border: rgba($white, 0.1);
10
11
 
11
- $prismjs-btn-bg: lighten($prismjs-bg, 9%);
12
- $prismjs-btn-bg-hover: lighten($prismjs-bg, 9%);
12
+ $prismjs-btn-bg: color.adjust($prismjs-bg, $lightness: 9%);
13
+ $prismjs-btn-bg-hover: color.adjust($prismjs-bg, $lightness: 9%);
13
14
 
14
15
  $prismjs-btn-color: rgba($white, 0.75);
15
16
  $prismjs-btn-color-hover: $primary;
16
17
 
17
- $prismjs-scrollbar-color: lighten($prismjs-bg, 12%);
18
- $prismjs-scrollbar-color-hover: lighten($prismjs-bg, 15%);
18
+ $prismjs-scrollbar-color: color.adjust($prismjs-bg, $lightness: 12%);
19
+ $prismjs-scrollbar-color-hover: color.adjust($prismjs-bg, $lightness: 15%);
19
20
 
20
21
  // Bootstrap Maxlength
21
22
  $bootstrap-maxlength-z-index: 1040;
@@ -2,16 +2,16 @@
2
2
  // Layout
3
3
  //
4
4
 
5
- @import "root";
6
- @import "sidebar/sidebar";
7
- @import "sidebar/sidebar-minimize";
8
- @import "sidebar/sidebar-dark";
9
- @import "sidebar/sidebar-light";
10
- @import "aside";
11
- @import "header/header";
12
- @import "header/header-dark";
13
- @import "header/header-sidebar-light";
14
- @import "content";
15
- @import "toolbar";
16
- @import "main";
17
- @import "page-title";
5
+ @use "root";
6
+ @use "sidebar/sidebar";
7
+ @use "sidebar/sidebar-minimize";
8
+ @use "sidebar/sidebar-dark";
9
+ @use "sidebar/sidebar-light";
10
+ @use "aside";
11
+ @use "header/header";
12
+ @use "header/header-dark";
13
+ @use "header/header-sidebar-light";
14
+ @use "content";
15
+ @use "toolbar";
16
+ @use "main";
17
+ @use "page-title";
@@ -1,3 +1,4 @@
1
+ @use "sass:color";
1
2
  //
2
3
  // Variables
3
4
  //
@@ -43,7 +44,7 @@ $app-header-light-separator-color-dark: $border-color-dark;
43
44
  $app-header-dark-bg-color:$coal-600;
44
45
  $app-header-dark-separator-color: #282a3d;
45
46
  $app-header-dark-scrollbar-color: #3b3b64;
46
- $app-header-dark-scrollbar-color-hover: lighten($app-header-dark-scrollbar-color, 3%);
47
+ $app-header-dark-scrollbar-color-hover: color.adjust($app-header-dark-scrollbar-color, $lightness: 3%);
47
48
  $app-header-dark-menu-active-link-bg-color: #242424;
48
49
 
49
50
  // Sidebar base
@@ -88,7 +89,7 @@ $app-sidebar-light-header-menu-link-bg-color-active-dark: $gray-100-dark;
88
89
  // Sidebar dark
89
90
  $app-sidebar-dark-bg-color: $coal-500;
90
91
  $app-sidebar-dark-separator-color: $light-light-dark;
91
- $app-sidebar-dark-scrollbar-color-hover: lighten($app-sidebar-dark-separator-color, 2%);
92
+ $app-sidebar-dark-scrollbar-color-hover: color.adjust($app-sidebar-dark-separator-color, $lightness: 2%);
92
93
  $app-sidebar-dark-menu-heading-color: $gray-500-dark;
93
94
  $app-sidebar-dark-menu-sub-link-color: $gray-600-dark;;
94
95
  $app-sidebar-dark-menu-link-bg-color-active: #1C1C21;
@@ -17,12 +17,16 @@
17
17
  ////////////////////////////////////////////////////////////////
18
18
 
19
19
  // Initialize
20
- @import "init";
20
+ // Asumimos que 'init' no expone miembros para ser usados con prefijo, o que Metronic los espera globales.
21
+ // Si expone mixins/variables que usas directamente en otros archivos sin prefijo, podrías necesitar `as *`.
22
+ @use "init";
21
23
 
22
24
  // Plugins
23
- @import "./core/vendors/plugins/plugins";
24
- @import "vendors/react-select.scss";
25
+ // Similar al anterior, si no usas explícitamente sus miembros con prefijo.
26
+ // 'react-select.scss' es un buen candidato para usar `as *` si sus estilos no tienen prefijos únicos.
27
+ @use "./core/vendors/plugins/plugins";
28
+ @use "vendors/react-select.scss" as *; // Usamos `as *` para importar sus estilos sin prefijo.
25
29
 
26
30
  #root {
27
31
  display: contents;
28
- }
32
+ }
@@ -3,12 +3,12 @@
3
3
  //
4
4
 
5
5
  // Initialize
6
- @import "init";
6
+ @use "init"; // Cambiado de @import "init";
7
7
 
8
8
  // Components
9
- @import "./core/components/components";
10
- @import "components/components";
9
+ @use "./core/components/components"; // Cambiado de @import "./core/components/components";
10
+ @use "components/components"; // Cambiado de @import "components/components";
11
11
 
12
12
  // Layout
13
- @import "./core/layout/base/layout";
14
- @import "layout/layout";
13
+ @use "./core/layout/base/layout"; // Cambiado de @import "./core/layout/base/layout";
14
+ @use "layout/layout"; // Cambiado de @import "layout/layout";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@soyfri/template",
3
- "version": "1.0.7",
3
+ "version": "1.0.8",
4
4
  "description": "Metronic template components and utilities for Fri projects",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -12,6 +12,7 @@
12
12
  "build": "tsc && npm run assets",
13
13
  "assets": "cp -r _metronic/assets dist/",
14
14
  "prepare": "npm run build",
15
+ "migrate-scss": "node migrate-scss.js",
15
16
  "test": "echo \"Error: no test specified\" && exit 1"
16
17
  },
17
18
  "repository": {
@@ -35,35 +36,36 @@
35
36
  "react-dom": ">=19.0.0"
36
37
  },
37
38
  "dependencies": {
39
+ "@formatjs/intl-pluralrules": "^5.2.14",
40
+ "@formatjs/intl-relativetimeformat": "^11.2.14",
41
+ "@fortawesome/fontawesome-free": "^6.6.0",
42
+ "animate.css": "^4.1.1",
38
43
  "apexcharts": "^4.7.0",
39
44
  "bootstrap": "^5.3.3",
40
45
  "bootstrap-icons": "^1.11.3",
41
46
  "clsx": "^2.1.1",
47
+ "line-awesome": "^1.3.0",
48
+ "nouislider": "^15.8.1",
42
49
  "or": "^0.2.0",
43
50
  "prism-react-renderer": "^2.4.0",
51
+ "prism-themes": "^1.9.0",
44
52
  "qs": "^6.13.0",
45
53
  "react-apexcharts": "^1.7.0",
46
54
  "react-bootstrap": "^2.10.5",
47
55
  "react-inlinesvg": "^4.2.0",
48
56
  "react-intl": "^7.1.11",
49
57
  "react-router-dom": "^6.28.0",
50
- "socicon": "^3.0.5",
51
- "@fortawesome/fontawesome-free": "^6.6.0",
52
- "line-awesome": "^1.3.0",
53
- "prism-themes": "^1.9.0",
54
- "animate.css": "^4.1.1",
55
- "nouislider": "^15.8.1",
56
- "@formatjs/intl-pluralrules": "^5.2.14",
57
- "@formatjs/intl-relativetimeformat": "^11.2.14"
58
+ "socicon": "^3.0.5"
58
59
  },
59
60
  "devDependencies": {
60
61
  "@types/bootstrap": "^5.2.10",
62
+ "@types/qs": "^6.9.17",
61
63
  "@types/react": "^19.0.2",
62
64
  "@types/react-dom": "^19.0.2",
63
- "typescript": "^5.7.2",
64
- "@types/qs": "^6.9.17"
65
+ "sass": "^1.89.2",
66
+ "typescript": "^5.7.2"
65
67
  },
66
68
  "publishConfig": {
67
69
  "access": "public"
68
70
  }
69
- }
71
+ }