qc-trousse-sdg 1.2.5 → 1.3.0-develop.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 (148) hide show
  1. package/README.md +18 -23
  2. package/dist/css/qc-sdg-design-tokens.min.css +1 -1
  3. package/dist/css/qc-sdg-no-grid.min.css +1 -1
  4. package/dist/css/qc-sdg.min.css +1 -1
  5. package/dist/img/QUEBEC_couleur.svg +24 -0
  6. package/dist/js/qc-sdg.min.js +1 -1
  7. package/package.json +23 -18
  8. package/public/css/qc-doc-sdg.css +247 -335
  9. package/public/css/qc-sdg-design-tokens.css +111 -64
  10. package/public/css/qc-sdg-no-grid.css +957 -453
  11. package/public/css/qc-sdg.css +966 -634
  12. package/public/img/QUEBEC_couleur.svg +24 -0
  13. package/public/img/ampoule.svg +1 -0
  14. package/public/img/arrow-up-white.svg +3 -0
  15. package/public/img/chevron-blue.svg +3 -0
  16. package/public/img/chevron-white.svg +3 -0
  17. package/public/img/clipboard.svg +8 -0
  18. package/public/img/error-white.svg +1 -0
  19. package/public/img/error.svg +1 -0
  20. package/public/img/exclamation-white.svg +37 -0
  21. package/public/img/external-link-white.svg +18 -0
  22. package/public/img/facebook.svg +6 -0
  23. package/public/img/information-white.svg +1 -0
  24. package/public/img/information.svg +1 -0
  25. package/public/img/linkedin.svg +5 -0
  26. package/public/img/loupe-piv-droite.svg +1 -0
  27. package/public/img/loupe-piv-fonce.svg +1 -0
  28. package/public/img/minus.svg +6 -0
  29. package/public/img/note.svg +1 -0
  30. package/public/img/piv-MCE-theme-clair.svg +79 -0
  31. package/public/img/piv-MCE-theme-sombre.svg +62 -0
  32. package/public/img/piv-bas-MCE-theme-clair.png +0 -0
  33. package/public/img/piv-bas-MCE-theme-sombre.png +0 -0
  34. package/public/img/piv-logo-pied-de-page.svg +37 -0
  35. package/public/img/plus.svg +6 -0
  36. package/public/img/question-mark.svg +47 -0
  37. package/public/img/success-white.svg +1 -0
  38. package/public/img/success.svg +1 -0
  39. package/public/img/twitter.svg +8 -0
  40. package/public/img/warning.svg +1 -0
  41. package/public/img/xclose-blue.svg +6 -0
  42. package/public/img/xclose-white.svg +1 -0
  43. package/public/img/youtube.svg +3 -0
  44. package/public/index.html +871 -715
  45. package/public/js/qc-doc-exemple.js +9 -0
  46. package/public/js/qc-doc-sdg.js +6893 -3724
  47. package/public/js/qc-sdg.js +2103 -962
  48. package/rollup.config.js +58 -32
  49. package/src/doc/components/Code.svelte +69 -0
  50. package/src/doc/components/Exemple.svelte +71 -0
  51. package/src/doc/components/Switch.svelte +108 -0
  52. package/src/doc/components/TopNav.svelte +53 -0
  53. package/src/doc/components/color-doc.svelte +44 -0
  54. package/src/doc/qc-doc-sdg.js +25 -14
  55. package/src/doc/scss/_tables.scss +1 -2
  56. package/src/doc/scss/components/_button.scss +14 -14
  57. package/src/doc/scss/components/_code.scss +106 -4
  58. package/src/doc/scss/jQueryUI/_jquery-ui.autocomplete.scss +48 -0
  59. package/src/doc/scss/qc-doc-sdg.scss +76 -75
  60. package/src/sdg/components/Button/IconButton.svelte +29 -0
  61. package/src/sdg/components/Icon.svelte +39 -0
  62. package/src/sdg/components/{pivHeader.svelte → PivHeader/pivHeader.svelte} +49 -69
  63. package/src/sdg/components/SearchBar/searchBar.svelte +87 -0
  64. package/src/sdg/components/SearchInput/SearchInput.svelte +48 -0
  65. package/src/sdg/components/alert.svelte +40 -23
  66. package/src/sdg/components/componentWrapper.js +0 -3
  67. package/src/sdg/components/externalLink.svelte +92 -0
  68. package/src/sdg/components/notice.svelte +61 -34
  69. package/src/sdg/components/pivFooter.svelte +37 -36
  70. package/src/sdg/components/toTop.svelte +17 -11
  71. package/src/sdg/components/utils.js +28 -4
  72. package/src/sdg/qc-sdg.js +11 -3
  73. package/src/sdg/scss/_qc-sdg-lib.scss +3 -0
  74. package/src/sdg/scss/base/_accessibility.scss +4 -0
  75. package/src/sdg/scss/base/_colors.scss +10 -10
  76. package/src/sdg/scss/base/_figure.scss +14 -9
  77. package/src/sdg/scss/base/_fonts.scss +4 -4
  78. package/src/sdg/scss/base/_form.scss +7 -0
  79. package/src/sdg/scss/base/_layout.scss +45 -0
  80. package/src/sdg/scss/base/_lists.scss +5 -5
  81. package/src/sdg/scss/base/_shadings.scss +3 -11
  82. package/src/sdg/scss/base/_typography.scss +42 -25
  83. package/src/sdg/scss/components/_alert.scss +11 -34
  84. package/src/sdg/scss/components/_icons.scss +80 -57
  85. package/src/sdg/scss/components/_notice.scss +51 -44
  86. package/src/sdg/scss/components/_pivFooter.scss +35 -23
  87. package/src/sdg/scss/components/_pivHeader.scss +131 -154
  88. package/src/sdg/scss/components/_searchBar.scss +75 -0
  89. package/src/sdg/scss/components/_searchInput.scss +64 -0
  90. package/src/sdg/scss/components/_separator.scss +2 -5
  91. package/src/sdg/scss/components/_toTop.scss +4 -6
  92. package/src/sdg/scss/grid/_grid-lib.scss +516 -0
  93. package/src/sdg/scss/grid/_grid.scss +78 -0
  94. package/src/sdg/scss/lib/_functions.scss +78 -0
  95. package/src/sdg/scss/lib/_gridless-lib.scss +4 -0
  96. package/src/sdg/scss/lib/_mixins.scss +221 -0
  97. package/src/sdg/scss/qc-design-tokens.scss +31 -8
  98. package/src/sdg/scss/qc-sdg-utilities.scss +1 -0
  99. package/src/sdg/scss/qc-sdg.scss +1 -1
  100. package/src/sdg/scss/qc-sgd-no-grid.scss +20 -15
  101. package/src/sdg/scss/settings/_base.scss +58 -0
  102. package/src/sdg/scss/settings/_tokens.scss +145 -77
  103. package/src/sdg/scss/utilities/_display.scss +43 -3
  104. package/src/sdg/scss/utilities/_themes.scss +17 -0
  105. package/src/sdg/scss/vendor/modern-css-reset/src/reset.css +9 -8
  106. package/src/doc/components/code.svelte +0 -54
  107. package/src/sdg/scss/base/_grid.scss +0 -9
  108. package/src/sdg/scss/functions/_tokens.scss +0 -12
  109. package/src/sdg/scss/functions/_utils.scss +0 -44
  110. package/src/sdg/scss/modules/_grid.scss +0 -19
  111. package/src/sdg/scss/modules/_map.scss +0 -14
  112. package/src/sdg/scss/modules/_tokens.scss +0 -3
  113. package/src/sdg/scss/modules/_utils.scss +0 -55
  114. package/src/sdg/scss/settings/_grid.scss +0 -24
  115. package/src/sdg/scss/settings/_settings.scss +0 -12
  116. package/src/sdg/sprites/dist/view/svg/sprite.view.svg +0 -1
  117. package/src/sdg/sprites/gulpfile.js +0 -41
  118. package/src/sdg/sprites/package-lock.json +0 -5949
  119. package/src/sdg/sprites/package.json +0 -16
  120. package/src/sdg/sprites/svg/QUEBEC_blanc.svg +0 -13
  121. package/src/sdg/sprites/svg/external-link.svg +0 -10
  122. package/src/sdg/sprites/svg/logo-quebec-piv-footer.svg +0 -1
  123. /package/dist/img/{quebec-logo.svg → QUEBEC_blanc.svg} +0 -0
  124. /package/{src/sdg/sprites/svg → dist/img}/arrow-up-white.svg +0 -0
  125. /package/{src/sdg/sprites/svg → dist/img}/chevron-blue.svg +0 -0
  126. /package/{src/sdg/sprites/svg → dist/img}/chevron-white.svg +0 -0
  127. /package/{src/sdg/sprites/svg → dist/img}/clipboard.svg +0 -0
  128. /package/{src/sdg/sprites/svg → dist/img}/error-white.svg +0 -0
  129. /package/{src/sdg/sprites/svg → dist/img}/error.svg +0 -0
  130. /package/{src/sdg/sprites/svg → dist/img}/exclamation-white.svg +0 -0
  131. /package/{src/sdg/sprites/svg → dist/img}/external-link-white.svg +0 -0
  132. /package/{src/sdg/sprites/svg → dist/img}/facebook.svg +0 -0
  133. /package/{src/sdg/sprites/svg → dist/img}/information-white.svg +0 -0
  134. /package/{src/sdg/sprites/svg → dist/img}/information.svg +0 -0
  135. /package/{src/sdg/sprites/svg → dist/img}/linkedin.svg +0 -0
  136. /package/{src/sdg/sprites/svg → dist/img}/loupe-piv-droite.svg +0 -0
  137. /package/{src/sdg/sprites/svg → dist/img}/loupe-piv-fonce.svg +0 -0
  138. /package/{src/sdg/sprites/svg → dist/img}/minus.svg +0 -0
  139. /package/{src/sdg/sprites/svg → dist/img}/plus.svg +0 -0
  140. /package/{src/sdg/sprites/svg → dist/img}/question-mark.svg +0 -0
  141. /package/{src/sdg/sprites/svg → dist/img}/success-white.svg +0 -0
  142. /package/{src/sdg/sprites/svg → dist/img}/success.svg +0 -0
  143. /package/{src/sdg/sprites/svg → dist/img}/twitter.svg +0 -0
  144. /package/{src/sdg/sprites/svg → dist/img}/warning.svg +0 -0
  145. /package/{src/sdg/sprites/svg → dist/img}/xclose-blue.svg +0 -0
  146. /package/{src/sdg/sprites/svg → dist/img}/xclose-white.svg +0 -0
  147. /package/{src/sdg/sprites/svg → dist/img}/youtube.svg +0 -0
  148. /package/{src/sdg/sprites/svg/quebec-logo.svg → public/img/QUEBEC_blanc.svg} +0 -0
@@ -0,0 +1,3 @@
1
+ // @use this file to access every variables, function, mixin or %class from Qc SDG
2
+ @forward "lib/gridless-lib";
3
+ @forward "lib/mixins";
@@ -0,0 +1,4 @@
1
+ @use "qc-sdg-lib" as *;
2
+ .qc-sr-only {
3
+ @include sr-only();
4
+ }
@@ -1,12 +1,12 @@
1
- @use "modules/utils" as *;
2
- @use "modules/tokens" as *;
3
- @use "modules/map" as *;
1
+ @use "qc-sdg-lib" as *;
4
2
  @use "sass:map";
5
3
 
6
- $colors : (color : map.get($xl-tokens, color));
7
- @include map-deep-parse($colors) using ($path,$value)
8
- {
9
- .qc-bg-#{deep-implode($path, '-')} {
10
- background-color: $value;
11
- }
12
- };
4
+ @mixin generate-color-classes($colors) {
5
+ @include map-deep-parse($colors) using ($path,$value)
6
+ {
7
+ .qc-bg-#{deep-implode($path, '-')} {
8
+ background-color: token-value($path);
9
+ }
10
+ };
11
+ }
12
+ @include generate-color-classes((color : map.get($lg-tokens, color)));
@@ -1,25 +1,30 @@
1
- @use "modules/tokens" as *;
2
- @use "modules/utils" as *;
1
+ @use "qc-sdg-lib" as *;
2
+
3
+ img {
4
+ border: none;
5
+ vertical-align: middle;
6
+ }
3
7
 
4
8
  figure {
5
- display: inline-block;
6
- flex-direction: column;
9
+ margin: 0 0 token-value(spacer content-block mb);
10
+ display: table;
11
+ overflow-x: auto;
7
12
  img {
8
- max-width: 100%;
13
+ width: 100%;
9
14
  height: auto;
10
15
  }
11
16
  }
12
17
  figcaption {
18
+ display: table-caption;
19
+ caption-side: bottom;
13
20
  @include content-font(sm);
21
+ max-inline-size: token-value(max-content-width);
14
22
  background-color: token-value(color, grey, pale);
15
23
  padding: rem($base-spacer);
16
24
  margin-top: rem($base-spacer);
17
25
  p {
18
26
  @include content-font(sm);
19
- &:last-child {
20
- margin-bottom: 0;
21
- }
27
+ margin-bottom: 0;
22
28
  }
23
- //margin-bottom: token-value(spacer md);
24
29
  }
25
30
 
@@ -1,12 +1,12 @@
1
- @use "modules/tokens" as *;
2
- @use "modules/utils" as *;
1
+ @use "sass:meta";
2
+ @use "qc-sdg-lib" as *;
3
3
  @use "sass:map";
4
4
  @use "sass:list";
5
5
 
6
6
  @if $google-api-font {
7
7
  // ci dessous on construit l'url pour importer les fonts google
8
8
  // en se basant sur la déclaration des tokens (les font-weights)
9
- $font-weights : map.values(map-get($xl-tokens, font, weight));
9
+ $font-weights : map.values(map.get($lg-tokens, font, weight));
10
10
  $url : 'https://fonts.googleapis.com/css2';
11
11
  $param-separator : '?';
12
12
  @each $name, $fonts in $google-fonts {
@@ -15,7 +15,7 @@
15
15
  $separator : '@';
16
16
  @each $i in (0,1) {
17
17
  @each $scale in $font-weights {
18
- @if type-of($scale) != 'map' {
18
+ @if meta.type-of($scale) != 'map' {
19
19
  $request : '#{$request}#{$separator}#{$i},#{$scale}';
20
20
  $separator : ';';
21
21
  }
@@ -0,0 +1,7 @@
1
+ // Inherit fonts for inputs and buttons
2
+ input,
3
+ button,
4
+ textarea,
5
+ select {
6
+ font: inherit;
7
+ }
@@ -0,0 +1,45 @@
1
+ @use "qc-sdg-lib" as *;
2
+
3
+ :root {
4
+ font-size: token-value(font size root-percent);
5
+ }
6
+
7
+ // Box sizing rules
8
+ *,
9
+ *::before,
10
+ *::after {
11
+ box-sizing: border-box;
12
+ }
13
+
14
+ body {
15
+ @include content-font($scale: md , $include-family: 1);
16
+ margin:0;
17
+ background-color: token-value(color, background);
18
+ color: token-value(color, text, primary);
19
+ min-height: 100vh;
20
+ text-rendering: optimizeSpeed;
21
+ &:focus-within {
22
+ scroll-behavior: smooth;
23
+ }
24
+
25
+ }
26
+
27
+
28
+ // Remove all animations and transitions for people that prefer not to see them
29
+ @media (prefers-reduced-motion: reduce) {
30
+ html:focus-within {
31
+ scroll-behavior: auto;
32
+ }
33
+ *,
34
+ *::before,
35
+ *::after {
36
+ animation-duration: 0.01ms !important;
37
+ animation-iteration-count: 1 !important;
38
+ transition-duration: 0.01ms !important;
39
+ scroll-behavior: auto !important;
40
+ }
41
+ }
42
+
43
+ legend {
44
+ padding: 0;
45
+ }
@@ -1,18 +1,18 @@
1
- @use "modules/tokens" as *;
2
- @use "modules/utils" as *;
1
+ @use "qc-sdg-lib" as *;
3
2
 
4
3
  ul {
5
4
  max-inline-size: token-value(max-content-width);
6
5
  list-style: disc;
7
6
  margin-top: 0;
8
- margin-bottom: token-value(spacer list mb);
7
+ margin-bottom: token-value(spacer content-block mb);
9
8
  padding-left: token-value(spacer list pl);
10
9
  li {
11
10
  margin-bottom: token-value(spacer list-item mb);
11
+ margin-top: token-value(spacer list-item mb);
12
12
  }
13
13
  ul {
14
- margin-top: token-value(spacer list-item mb);
15
- margin-bottom: token-value(spacer list embedded-mb);
14
+ margin-top: 0;
15
+ margin-bottom: 0;
16
16
  list-style: circle;
17
17
  }
18
18
  }
@@ -1,16 +1,8 @@
1
- @use "../modules/tokens" as *;
2
- @use "../modules/utils" as *;
3
- @use "../modules/map" as *;
1
+ @use "qc-sdg-lib" as *;
4
2
  @use "sass:map";
5
3
 
6
- @each $index, $blur in map.get($xl-tokens, box-shadow, blur) {
7
- $color : token-value(box-shadow color);
8
- // qc-shading-0 and qc-shading-1
9
- @if($index in [0,1]){
10
- $color: token-value(color, grey, light);
11
- }
12
- $offset : map.get($xl-tokens, box-shadow, offset, $index);
4
+ @each $index,$settings in map.get($lg-tokens, box_shadow) {
13
5
  .qc-shading-#{$index} {
14
- box-shadow: 0 $offset $blur $color;
6
+ @include qc-shading($index)
15
7
  }
16
8
  }
@@ -1,23 +1,8 @@
1
- @use "modules/tokens" as *;
2
- @use "modules/utils" as *;
3
-
4
- :root {
5
- font-size: token-value(font size root-percent);
6
- }
7
-
8
- body {
9
- @include content-font($scale: md , $include-family: 1);
10
- background-color: token-value(color, white);
11
- color: token-value(color, text, primary);
12
- }
13
-
1
+ @use "qc-sdg-lib" as *;
14
2
 
15
3
  @for $i from 1 through 6 {
16
4
  h#{$i}, .qc-h#{$i} {
17
- @include header-font(h#{$i});
18
- max-inline-size: token-value(max-content-width);
19
- margin-top: token-value(spacer h#{$i} mt);
20
- margin-bottom: token-value(spacer h#{$i} mb);
5
+ @include heading($i);
21
6
  }
22
7
  }
23
8
 
@@ -46,33 +31,65 @@ p {
46
31
  max-inline-size: token-value(max-content-width);
47
32
  }
48
33
 
49
- img {
50
- border: none;
51
- vertical-align: middle;
52
- }
53
-
54
34
  a {
55
35
  color: token-value(color, link, text);
56
36
  &:visited {
57
37
  color: token-value(color, link, visited);
58
38
  }
59
- &:hover,&:focus {
39
+ &:hover {
60
40
  @include hover-link();
61
41
  }
42
+ &:focus, &:focus-visible {
43
+ @include focus-link();
44
+ }
62
45
  &:active {
63
46
  @include active-link();
64
47
  }
65
- /* to assure non breaking space inter last word and icon */
48
+ //DEPRECATED: use <qc-external-link> instead.
49
+ // to assure non breaking space inter last word and icon
66
50
  .qc-external-link-tail {
67
51
  white-space: nowrap;
68
52
  img {
69
53
  @include external-link-img();
70
- content:url(#{$img-dir}/external-link.svg?v={{pkg-version}});
54
+ content:getImageUrl(external-link);
71
55
  }
72
56
  }
57
+ .img-wrap {
58
+ white-space: nowrap;
59
+ }
60
+
73
61
 
74
62
  }
63
+ span.qc-ext-link-img {
64
+ @include external-link-img();
65
+ .img-wrap + & {
66
+ display: none;
67
+ }
68
+ }
75
69
 
76
70
  code, .qc-code {
77
71
  font-family: token-value(font, family, code);
78
72
  }
73
+
74
+ // pour les très petites résolutions, on ajoute des tirets aux mots.
75
+ @media (max-width: 320px) {
76
+ body {
77
+ overflow-wrap: break-word;
78
+ hyphens: auto;
79
+ }
80
+ }
81
+
82
+
83
+ .qc-font-size-sm {
84
+ @include content-font("sm");
85
+ }
86
+
87
+ .qc-font-size-lg {
88
+ @include content-font("lg");
89
+ }
90
+ .qc-font-size-xl {
91
+ @include content-font("xl");
92
+ }
93
+ .qc-font-size-md {
94
+ @include content-font("md");
95
+ }
@@ -1,18 +1,14 @@
1
- @use "modules/tokens" as *;
2
- @use "modules/utils" as *;
3
- @use "../modules/grid" as *;
1
+ @use "qc-sdg-lib" as *;
4
2
 
5
3
  .qc-general-alert {
6
- max-inline-size: token-value(max-content-width);
7
- padding: token-value(spacer, md) token-value(spacer, sm);
4
+ padding: token-value(spacer, md) 0;
8
5
 
9
6
  @include media-mobile() {
10
- padding: token-value(spacer, sm);
7
+ padding: token-value(spacer, sm) 0;
11
8
  }
12
9
 
13
10
  .qc-general-alert-elements {
14
11
  display: flex;
15
- padding: 0;
16
12
  }
17
13
 
18
14
  &.warning {
@@ -23,11 +19,6 @@
23
19
  background-color: token-value(color, blue, pale);
24
20
  }
25
21
 
26
- .qc-icon {
27
- min-width: token-value(spacer, md);
28
- height: token-value(spacer, md);
29
- }
30
-
31
22
  .qc-alert-content {
32
23
  @include content-font(md, semi-bold);
33
24
  margin: 0 token-value(spacer, md);
@@ -38,39 +29,25 @@
38
29
  }
39
30
  }
40
31
 
41
- .qc-alert-close {
42
- display: flex;
43
- align-items: center;
44
- @include media-mobile() {
45
- align-items: inherit;
46
- }
47
- }
48
-
49
- .qc-close {
50
- padding: 0;
51
- background-color: transparent;
52
- border: 0;
53
- display: inline-flex;
54
- justify-content: center;
55
-
56
- .qc-close-alert-icon {
57
- display: inline-block;
58
- min-width: token-value(spacer, sm);
59
- height: token-value(spacer, sm);
60
- vertical-align: middle;
61
- cursor: pointer;
32
+ button {
33
+ @include qc-formcontrol-box;
34
+ flex-shrink: 0;
35
+ &::before {
36
+ background: transparent;
62
37
  }
38
+ cursor: pointer;
63
39
  }
64
40
  }
65
41
 
66
42
  qc-alert {
43
+ display: block;
67
44
  [slot], &:not([slot=content]) {
68
45
  * {
69
46
  margin-bottom: 0;
70
47
  }
71
48
 
72
49
  a {
73
- color: token-value(color blue dark);
50
+ color: token-value(color blue piv);
74
51
  }
75
52
  }
76
53
  }
@@ -1,18 +1,33 @@
1
- @use "modules/tokens" as *;
2
- @use "modules/utils" as *;
3
- @use "modules/grid" as *;
1
+ @use "qc-sdg-lib" as *;
2
+
3
+ qc-icon {
4
+ display: inline-flex;
5
+ align-items: stretch;
6
+ }
7
+
8
+
4
9
 
5
- //$img-dir-sprite: "#{$img-dir}/qc-sprite.svg?v={{pkg-version}})";
6
10
 
7
- /* TODO voir si meilleure façon d'intégrer en scss... */
11
+ // TODO retirer une fois toutes les icônes remplacées par Icon dans les composants
8
12
  .qc-icon {
9
13
  display: inline-block;
10
- content: "";
11
- background-repeat: no-repeat;
12
- background-position: center;
13
- background-size: 100% auto;
14
- min-width: 32px;
15
- height: 32px;
14
+ flex-shrink: 0;
15
+ width: var(--img-width);
16
+ height: var(--img-height);
17
+ // TODO questionner une échelle [0 - 10 ou 100]
18
+ @each $size-type, $size in (xs: 12, sm: 16, md: 20, nm: 24, lg: 28, xl: 32) {
19
+ &[data-img-size=#{$size-type}] {
20
+ height: rem($size);
21
+ width: rem($size);
22
+ }
23
+ }
24
+ background-color: var(--img-color);
25
+ @each $name, $url in $images {
26
+ &[data-img-type=#{$name}] {
27
+ mask: getImageUrl($name) no-repeat;
28
+ mask-size: 100% 100%;
29
+ }
30
+ }
16
31
 
17
32
  &.qc-icon-sm {
18
33
  min-width: 12px;
@@ -30,120 +45,128 @@
30
45
  }
31
46
 
32
47
  &.qc-external-link {
33
- background-image: url(#{$img-dir}/qc-sprite.svg?v={{pkg-version}}#external-link);
48
+ background-image: getImageUrl(external-link);
34
49
  }
35
50
 
36
51
  &.qc-warning {
37
- background-image: url(#{$img-dir}/qc-sprite.svg?v={{pkg-version}}#warning);
52
+ background-image: getImageUrl(warning);
38
53
  }
39
-
54
+
40
55
  &.qc-arrow-up-white {
41
- background-image: url(#{$img-dir}/qc-sprite.svg?v={{pkg-version}}#arrow-up-white);
56
+ background-image: getImageUrl(arrow-up-white);
42
57
  }
43
58
 
44
-
59
+
45
60
  &.qc-clipboard {
46
- background-image: url(#{$img-dir}/qc-sprite.svg?v={{pkg-version}}#clipboard);
61
+ background-image: getImageUrl(clipboard);
47
62
  }
48
-
63
+
49
64
  &.qc-error {
50
- background-image: url(#{$img-dir}/qc-sprite.svg?v={{pkg-version}}#error);
65
+ background-image: getImageUrl(error);
51
66
  }
52
67
 
53
68
  &.qc-error-white {
54
- background-image: url(#{$img-dir}/qc-sprite.svg?v={{pkg-version}}#error-white);
69
+ background-image: getImageUrl(error-white);
55
70
  }
56
-
71
+
57
72
  &.qc-information {
58
- background-image: url(#{$img-dir}/qc-sprite.svg?v={{pkg-version}}#information);
73
+ background-image: getImageUrl(information);
59
74
  }
60
-
75
+
61
76
  &.qc-information-white {
62
- background-image: url(#{$img-dir}/qc-sprite.svg?v={{pkg-version}}#information-white);
77
+ background-image: getImageUrl(information-white);
63
78
  }
64
-
79
+
65
80
  &.qc-minus {
66
- background-image: url(#{$img-dir}/qc-sprite.svg?v={{pkg-version}}#minus);
81
+ background-image: getImageUrl(minus);
67
82
  }
68
-
83
+
69
84
  &.qc-plus {
70
- background-image: url(#{$img-dir}/qc-sprite.svg?v={{pkg-version}}#plus);
85
+ background-image: getImageUrl(plus);
71
86
  }
72
-
87
+
73
88
  &.qc-question-mark {
74
- background-image: url(#{$img-dir}/qc-sprite.svg?v={{pkg-version}}#question-mark);
89
+ background-image: getImageUrl(question-mark);
75
90
  }
76
-
91
+
77
92
  &.qc-success {
78
- background-image: url(#{$img-dir}/qc-sprite.svg?v={{pkg-version}}#success);
93
+ background-image: getImageUrl(success);
79
94
  }
80
95
  &.qc-success-white {
81
- background-image: url(#{$img-dir}/qc-sprite.svg?v={{pkg-version}}#success-white);
96
+ background-image: getImageUrl(success-white);
82
97
  }
83
-
98
+
84
99
  &.qc-xclose-white {
85
100
  width: 16px;
86
101
  height: 16px;
87
102
  min-width: 16px;
88
- background-image: url(#{$img-dir}/qc-sprite.svg?v={{pkg-version}}#xclose-white);
103
+ background-image: getImageUrl(xclose-white);
89
104
  }
90
105
  &.qc-xclose-blue {
91
106
  width: 16px;
92
107
  height: 16px;
93
108
  min-width: 16px;
94
- background-image: url(#{$img-dir}/qc-sprite.svg?v={{pkg-version}}#xclose-blue);
109
+ background-image: getImageUrl(xclose-blue);
95
110
  }
96
-
111
+
97
112
  &.qc-chevron-blue,
98
113
  &.qc-chevron-white {
99
114
  width: 16px;
100
115
  min-width: 16px;
101
116
  height: 10px;
102
117
  }
103
-
118
+
104
119
  &.qc-chevron-blue {
105
- background-image: url(#{$img-dir}/qc-sprite.svg?v={{pkg-version}}#chevron-blue);
120
+ background-image: getImageUrl(chevron-blue);
106
121
  }
107
-
122
+
108
123
  &.qc-chevron-white {
109
- background-image: url(#{$img-dir}/qc-sprite.svg?v={{pkg-version}}#chevron-white);
124
+ background-image: getImageUrl(chevron-white);
110
125
  }
111
-
126
+
112
127
  &.qc-facebook {
113
- background-image: url(#{$img-dir}/qc-sprite.svg?v={{pkg-version}}#facebook);
128
+ background-image: getImageUrl(facebook);
114
129
  }
115
-
130
+
116
131
  &.qc-linkedin {
117
- background-image: url(#{$img-dir}/qc-sprite.svg?v={{pkg-version}}#linkedin);
132
+ background-image: getImageUrl(linkedin);
118
133
  height: 30px;
119
134
  }
120
-
135
+
121
136
  &.qc-twitter {
122
- background-image: url(#{$img-dir}/qc-sprite.svg?v={{pkg-version}}#twitter);
137
+ background-image: getImageUrl(twitter);
123
138
  }
124
-
139
+
125
140
  &.qc-youtube {
126
- background-image: url(#{$img-dir}/qc-sprite.svg?v={{pkg-version}}#youtube);
141
+ background-image: getImageUrl(youtube);
127
142
  }
128
143
 
129
144
  &.qc-warning-alert-icon {
130
- background-image: url(#{$img-dir}/qc-sprite.svg?v={{pkg-version}}#warning);
145
+ background-image: getImageUrl(warning);
131
146
  }
132
147
 
133
148
  &.qc-general-alert-icon {
134
- background-image: url(#{$img-dir}/qc-sprite.svg?v={{pkg-version}}#information);
149
+ background-image: getImageUrl(information);
135
150
  }
136
151
 
137
152
  &.qc-search {
138
- background-image: url(#{$img-dir}/qc-sprite.svg?v={{pkg-version}}#loupe-piv-droite);
153
+ background-image: getImageUrl(loupe-piv-droite);
139
154
  }
140
155
  &.qc-search-submit {
141
- background-image: url(#{$img-dir}/qc-sprite.svg?v={{pkg-version}}#loupe-piv-fonce);
156
+ background-image: getImageUrl(loupe-piv-fonce);
142
157
  }
143
158
 
144
159
  }
145
160
 
146
-
147
-
148
-
149
-
161
+ .qc-icon-button {
162
+ display: flex;
163
+ align-items: center;
164
+ justify-content: center;
165
+ flex-shrink: 0;
166
+ @each $size-type, $size in ( sm: 16, md: 20, nm: 24, lg: 32, xl: 40) {
167
+ &[data-button-size=#{$size-type}] {
168
+ height: rem($size);
169
+ width: rem($size);
170
+ }
171
+ }
172
+ }