qc-trousse-sdg 1.4.1 → 1.4.3

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 (58) hide show
  1. package/README.md +21 -0
  2. package/dist/css/qc-sdg-no-grid.min.css +1 -1
  3. package/dist/css/qc-sdg.min.css +1 -1
  4. package/dist/js/qc-sdg.min.js +1 -1
  5. package/index.html +6 -0
  6. package/package.json +2 -2
  7. package/plugins/buildSvelteTests.js +36 -0
  8. package/public/css/qc-sdg-no-grid.css +42 -27
  9. package/public/css/qc-sdg.css +42 -27
  10. package/public/index.html +29 -4
  11. package/public/js/qc-doc-sdg.js +2888 -4618
  12. package/public/js/qc-sdg.js +759 -1796
  13. package/rollup.config.js +5 -0
  14. package/src/doc/components/TopNav.svelte +2 -2
  15. package/src/sdg/bases/Icon/Icon.svelte +1 -0
  16. package/src/sdg/bases/Icon/IconDoc.ejs +1 -1
  17. package/src/sdg/bases/Icon/_icon.html +1 -1
  18. package/src/sdg/components/Button/Test/{buttonTest.html → buttonBaselineTest.html} +3 -3
  19. package/src/sdg/components/Button/_button.html +28 -3
  20. package/src/sdg/components/Button/_button.scss +16 -6
  21. package/src/sdg/components/ChoiceGroup/_selectionButton.scss +5 -0
  22. package/src/sdg/components/DropdownList/DropdownListButton/_dropdownListButton.scss +1 -1
  23. package/src/sdg/components/DropdownList/_dropdownList.scss +4 -0
  24. package/src/sdg/components/Label/_label.scss +1 -1
  25. package/src/sdg/components/TextField/_textField.scss +3 -3
  26. package/src/sdg/components/ToTop/_toTop.scss +1 -0
  27. package/src/sdg/qc-sdg-test.js +1 -1
  28. package/src/sdg/scss/settings/_base.scss +0 -6
  29. package/tests/buildSvelteTestsIgnore.json +4 -0
  30. package/tests/{button.spec.ts → button-baseline.spec.ts} +2 -2
  31. package/tests/choice-group-baseline.spec.ts +20 -0
  32. package/tests/choice-group-svelte.spec.ts +20 -0
  33. package/tests/{icon.spec.ts → icon-baseline.spec.ts} +1 -9
  34. package/tests/icon-svelte.spec.ts +11 -0
  35. package/tests/piv-header-baseline.spec.ts +11 -0
  36. package/tests/piv-header-svelte.spec.ts +11 -0
  37. package/tests/{textfield.spec.ts → textfield-baseline.spec.ts} +1 -10
  38. package/tests/textfield-svelte.spec.ts +1 -1
  39. package/tests/toggle-switch-baseline.spec.ts +11 -0
  40. package/tests/toggle-switch-svelte.spec.ts +11 -0
  41. package/tests/choice-group.spec.ts +0 -36
  42. package/tests/pivHeader.spec.ts +0 -22
  43. package/tests/toggle-switch.spec.ts +0 -20
  44. /package/src/sdg/bases/Icon/Test/{IconEmbeddedTest.html → IconSvelteTest.html} +0 -0
  45. /package/src/sdg/bases/Icon/Test/{iconTest.html → iconBaselineTest.html} +0 -0
  46. /package/src/sdg/components/ChoiceGroup/Test/{checkboxTest.html → checkboxBaselineTest.html} +0 -0
  47. /package/src/sdg/components/ChoiceGroup/Test/{checkboxEmbeddedTest.html → checkboxSvelteTest.html} +0 -0
  48. /package/src/sdg/components/ChoiceGroup/Test/{radiosTest.html → radiosBaselineTest.html} +0 -0
  49. /package/src/sdg/components/ChoiceGroup/Test/{radiosEmbeddedTest.html → radiosSvelteTest.html} +0 -0
  50. /package/src/sdg/components/DropdownList/Test/{DropdownListEmbeddedTest.svelte → DropdownListSvelteTest.svelte} +0 -0
  51. /package/src/sdg/components/DropdownList/Test/{dropdownListEmbeddedTest.html → dropdownListSvelteTest.html} +0 -0
  52. /package/src/sdg/components/PivHeader/Test/{pivHeaderTest.html → pivHeaderBaselineTest.html} +0 -0
  53. /package/src/sdg/components/PivHeader/Test/{pivHeaderEmbeddedTest.html → pivHeaderSvelteTest.html} +0 -0
  54. /package/src/sdg/components/TextField/Test/{textFieldTest.html → textFieldBaselineTest.html} +0 -0
  55. /package/src/sdg/components/TextField/Test/{textFieldEmbeddedTest.html → textFieldSvelteTest.html} +0 -0
  56. /package/src/sdg/components/ToggleSwitch/Test/{toggleSwitchTest.html → toggleSwitchBaselineTest.html} +0 -0
  57. /package/src/sdg/components/ToggleSwitch/Test/{toggleSwitchEmbeddedTest.html → toggleSwitchSvelteTest.html} +0 -0
  58. /package/tests/{dropdown-list.spec.ts → dropdown-list-baseline.spec.ts} +0 -0
package/index.html ADDED
@@ -0,0 +1,6 @@
1
+ <!DOCTYPE html>
2
+ <html lang="fr">
3
+ <head>
4
+ <meta http-equiv="refresh" content="0;url=/public/index.html" />
5
+ </head>
6
+ </html>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qc-trousse-sdg",
3
- "version": "1.4.1",
3
+ "version": "1.4.3",
4
4
  "description": "Trousse de développement du Système de design gouvernemental du Québec",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -8,7 +8,7 @@
8
8
  "preversion": "./scripts/check-release-note.sh",
9
9
  "version": "./scripts/compile-doc.sh",
10
10
  "build": "rollup -c --bundleConfigAsCjs",
11
- "start": "sirv public",
11
+ "start": "sirv .",
12
12
  "rewrite-bootstrap": "gulp rewriteBs",
13
13
  "build-images-scss-map": "node ./scripts/buildImagesMap.js"
14
14
  },
@@ -0,0 +1,36 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ import glob from 'glob';
4
+
5
+ function buildSvelteTests({input, ignorePathsFile}) {
6
+ return {
7
+ name: "build-svelte-tests",
8
+ buildStart() {
9
+ const testsRoot = path.resolve(input);
10
+ const resolvedIgnorePathsFile = ignorePathsFile ? `${testsRoot}/${ignorePathsFile}` : null;
11
+ const ignorePaths = resolvedIgnorePathsFile ?
12
+ JSON.parse(fs.readFileSync(resolvedIgnorePathsFile, 'utf-8'))
13
+ : [];
14
+
15
+ const partialPaths = glob.sync('**/*-baseline.spec.ts', {
16
+ cwd: testsRoot,
17
+ absolute: true,
18
+ ignore: ignorePaths
19
+ });
20
+
21
+ partialPaths.forEach(partialPath => {
22
+ this.addWatchFile(partialPath);
23
+
24
+ let testCode = fs.readFileSync(partialPath, 'utf-8');
25
+
26
+ testCode = testCode.replace(/Baseline\.test\.html/g, "Svelte.test.html");
27
+ testCode = testCode.replace(/baseline/g, "svelte");
28
+
29
+ const outputPath = partialPath.replace(/-baseline\.spec\.ts/g, "-svelte.spec.ts");
30
+ fs.writeFileSync(outputPath, testCode, 'utf-8');
31
+ });
32
+ }
33
+ }
34
+ }
35
+
36
+ export default buildSvelteTests;
@@ -950,7 +950,7 @@ dd {
950
950
  font-family: "Open Sans";
951
951
  font-style: normal;
952
952
  font-weight: 400;
953
- src: url("../../dist/fonts/open-sans-v43-latin-regular.woff2") format("woff2");
953
+ src: url("../fonts/open-sans-v43-latin-regular.woff2") format("woff2");
954
954
  }
955
955
  /* open-sans-italic - latin */
956
956
  @font-face {
@@ -958,7 +958,7 @@ dd {
958
958
  font-family: "Open Sans";
959
959
  font-style: italic;
960
960
  font-weight: 400;
961
- src: url("../../dist/fonts/open-sans-v43-latin-italic.woff2") format("woff2");
961
+ src: url("../fonts/open-sans-v43-latin-italic.woff2") format("woff2");
962
962
  }
963
963
  /* open-sans-500 - latin */
964
964
  @font-face {
@@ -966,7 +966,7 @@ dd {
966
966
  font-family: "Open Sans";
967
967
  font-style: normal;
968
968
  font-weight: 500;
969
- src: url("../../dist/fonts/open-sans-v43-latin-500.woff2") format("woff2");
969
+ src: url("../fonts/open-sans-v43-latin-500.woff2") format("woff2");
970
970
  }
971
971
  /* open-sans-500italic - latin */
972
972
  @font-face {
@@ -974,7 +974,7 @@ dd {
974
974
  font-family: "Open Sans";
975
975
  font-style: italic;
976
976
  font-weight: 500;
977
- src: url("../../dist/fonts/open-sans-v43-latin-500italic.woff2") format("woff2");
977
+ src: url("../fonts/open-sans-v43-latin-500italic.woff2") format("woff2");
978
978
  }
979
979
  /* open-sans-600 - latin */
980
980
  @font-face {
@@ -982,7 +982,7 @@ dd {
982
982
  font-family: "Open Sans";
983
983
  font-style: normal;
984
984
  font-weight: 600;
985
- src: url("../../dist/fonts/open-sans-v43-latin-600.woff2") format("woff2");
985
+ src: url("../fonts/open-sans-v43-latin-600.woff2") format("woff2");
986
986
  }
987
987
  /* open-sans-600italic - latin */
988
988
  @font-face {
@@ -990,7 +990,7 @@ dd {
990
990
  font-family: "Open Sans";
991
991
  font-style: italic;
992
992
  font-weight: 600;
993
- src: url("../../dist/fonts/open-sans-v43-latin-600italic.woff2") format("woff2");
993
+ src: url("../fonts/open-sans-v43-latin-600italic.woff2") format("woff2");
994
994
  }
995
995
  /* open-sans-700 - latin */
996
996
  @font-face {
@@ -998,7 +998,7 @@ dd {
998
998
  font-family: "Open Sans";
999
999
  font-style: normal;
1000
1000
  font-weight: 700;
1001
- src: url("../../dist/fonts/open-sans-v43-latin-700.woff2") format("woff2");
1001
+ src: url("../fonts/open-sans-v43-latin-700.woff2") format("woff2");
1002
1002
  }
1003
1003
  /* open-sans-700italic - latin */
1004
1004
  @font-face {
@@ -1006,7 +1006,7 @@ dd {
1006
1006
  font-family: "Open Sans";
1007
1007
  font-style: italic;
1008
1008
  font-weight: 700;
1009
- src: url("../../dist/fonts/open-sans-v43-latin-700italic.woff2") format("woff2");
1009
+ src: url("../fonts/open-sans-v43-latin-700italic.woff2") format("woff2");
1010
1010
  }
1011
1011
  /* roboto-regular - latin */
1012
1012
  @font-face {
@@ -1014,7 +1014,7 @@ dd {
1014
1014
  font-family: "Roboto";
1015
1015
  font-style: normal;
1016
1016
  font-weight: 400;
1017
- src: url("../../dist/fonts/roboto-v48-latin-regular.woff2") format("woff2");
1017
+ src: url("../fonts/roboto-v48-latin-regular.woff2") format("woff2");
1018
1018
  }
1019
1019
  /* roboto-italic - latin */
1020
1020
  @font-face {
@@ -1022,7 +1022,7 @@ dd {
1022
1022
  font-family: "Roboto";
1023
1023
  font-style: italic;
1024
1024
  font-weight: 400;
1025
- src: url("../../dist/fonts/roboto-v48-latin-italic.woff2") format("woff2");
1025
+ src: url("../fonts/roboto-v48-latin-italic.woff2") format("woff2");
1026
1026
  }
1027
1027
  /* roboto-500 - latin */
1028
1028
  @font-face {
@@ -1030,7 +1030,7 @@ dd {
1030
1030
  font-family: "Roboto";
1031
1031
  font-style: normal;
1032
1032
  font-weight: 500;
1033
- src: url("../../dist/fonts/roboto-v48-latin-500.woff2") format("woff2");
1033
+ src: url("../fonts/roboto-v48-latin-500.woff2") format("woff2");
1034
1034
  }
1035
1035
  /* roboto-500italic - latin */
1036
1036
  @font-face {
@@ -1038,7 +1038,7 @@ dd {
1038
1038
  font-family: "Roboto";
1039
1039
  font-style: italic;
1040
1040
  font-weight: 500;
1041
- src: url("../../dist/fonts/roboto-v48-latin-500italic.woff2") format("woff2");
1041
+ src: url("../fonts/roboto-v48-latin-500italic.woff2") format("woff2");
1042
1042
  }
1043
1043
  /* roboto-600 - latin */
1044
1044
  @font-face {
@@ -1046,7 +1046,7 @@ dd {
1046
1046
  font-family: "Roboto";
1047
1047
  font-style: normal;
1048
1048
  font-weight: 600;
1049
- src: url("../../dist/fonts/roboto-v48-latin-600.woff2") format("woff2");
1049
+ src: url("../fonts/roboto-v48-latin-600.woff2") format("woff2");
1050
1050
  }
1051
1051
  /* roboto-600italic - latin */
1052
1052
  @font-face {
@@ -1054,7 +1054,7 @@ dd {
1054
1054
  font-family: "Roboto";
1055
1055
  font-style: italic;
1056
1056
  font-weight: 600;
1057
- src: url("../../dist/fonts/roboto-v48-latin-600italic.woff2") format("woff2");
1057
+ src: url("../fonts/roboto-v48-latin-600italic.woff2") format("woff2");
1058
1058
  }
1059
1059
  /* roboto-700 - latin */
1060
1060
  @font-face {
@@ -1062,7 +1062,7 @@ dd {
1062
1062
  font-family: "Roboto";
1063
1063
  font-style: normal;
1064
1064
  font-weight: 700;
1065
- src: url("../../dist/fonts/roboto-v48-latin-700.woff2") format("woff2");
1065
+ src: url("../fonts/roboto-v48-latin-700.woff2") format("woff2");
1066
1066
  }
1067
1067
  /* roboto-700italic - latin */
1068
1068
  @font-face {
@@ -1070,7 +1070,7 @@ dd {
1070
1070
  font-family: "Roboto";
1071
1071
  font-style: italic;
1072
1072
  font-weight: 700;
1073
- src: url("../../dist/fonts/roboto-v48-latin-700italic.woff2") format("woff2");
1073
+ src: url("../fonts/roboto-v48-latin-700italic.woff2") format("woff2");
1074
1074
  }
1075
1075
  hr {
1076
1076
  margin: var(--qc-spacer-lg) 0;
@@ -1732,6 +1732,7 @@ qc-alert [slot] a, qc-alert:not([slot=content]) a {
1732
1732
  background-color: var(--qc-color-blue-regular);
1733
1733
  outline: 2px solid var(--qc-color-blue-light);
1734
1734
  border: 2px solid var(--qc-color-blue-dark);
1735
+ outline-offset: 0;
1735
1736
  box-shadow: 0 var(--qc-box_shadow-2-offset) var(--qc-box_shadow-2-blur) var(--qc-color-box_shadow);
1736
1737
  }
1737
1738
  .qc-to-top:active {
@@ -1903,6 +1904,10 @@ label.qc-selection-button:hover::before {
1903
1904
  }
1904
1905
  label.qc-selection-button:has(input:checked)::before {
1905
1906
  background-color: var(--qc-color-blue-pale);
1907
+ border-color: var(--qc-color-blue-light);
1908
+ }
1909
+ label.qc-selection-button:focus, label.qc-selection-button:has(input:focus)::before {
1910
+ border-color: inherit;
1906
1911
  }
1907
1912
  label.qc-selection-button:has(input:disabled)::before {
1908
1913
  background-color: var(--qc-color-grey-pale);
@@ -2110,7 +2115,7 @@ input[type=checkbox].qc-choicefield.qc-compact:checked::after {
2110
2115
  }
2111
2116
  .qc-label, qc-textfield label,
2112
2117
  .qc-textfield label {
2113
- font-weight: var(--qc-font-weight-content-medium);
2118
+ font-weight: var(--qc-font-weight-content-bold);
2114
2119
  display: block;
2115
2120
  }
2116
2121
  .qc-label.qc-compact, qc-textfield label.qc-compact,
@@ -2151,7 +2156,7 @@ qc-textfield textarea {
2151
2156
  position: relative;
2152
2157
  color: var(--qc-color-text-primary);
2153
2158
  background-color: var(--qc-color-background);
2154
- padding: 0.8rem;
2159
+ padding: 0.7rem;
2155
2160
  text-overflow: ellipsis;
2156
2161
  overflow: hidden;
2157
2162
  margin-top: 0.4rem;
@@ -2170,7 +2175,7 @@ qc-textfield textarea:focus,
2170
2175
  qc-textfield textarea:focus-visible {
2171
2176
  outline: 2px solid var(--qc-color-formfield-focus-outline);
2172
2177
  border: 2px solid var(--qc-color-formfield-focus-border);
2173
- padding: 0.7rem;
2178
+ padding: 0.6rem;
2174
2179
  }
2175
2180
  .qc-textfield input:disabled, qc-textfield input:disabled,
2176
2181
  .qc-textfield textarea:disabled,
@@ -2183,7 +2188,7 @@ qc-textfield textarea:disabled {
2183
2188
  [invalid] > textarea {
2184
2189
  border-color: var(--qc-color-red-regular);
2185
2190
  border-width: 2px;
2186
- padding: 0.7rem;
2191
+ padding: 0.6rem;
2187
2192
  }
2188
2193
 
2189
2194
  .qc-textfield input, qc-textfield input,
@@ -2428,7 +2433,7 @@ li[aria-selected=true] {
2428
2433
  display: flex;
2429
2434
  width: 100%;
2430
2435
  justify-content: space-between;
2431
- height: 4rem;
2436
+ height: 3.8rem;
2432
2437
  align-items: center;
2433
2438
  background-color: var(--qc-color-background);
2434
2439
  border: none;
@@ -2544,6 +2549,9 @@ li[aria-selected=true] {
2544
2549
  .qc-dropdown-list.qc-dropdown-list-invalid {
2545
2550
  border: 0.2rem solid var(--qc-color-red-regular) !important;
2546
2551
  }
2552
+ .qc-dropdown-list.qc-dropdown-list-invalid > .qc-dropdown-button {
2553
+ height: 3.6rem;
2554
+ }
2547
2555
 
2548
2556
  .qc-dropdown-list-search {
2549
2557
  margin: var(--qc-spacer-xs);
@@ -2582,11 +2590,10 @@ li[aria-selected=true] {
2582
2590
  min-width: 11.2rem;
2583
2591
  max-width: 36rem;
2584
2592
  min-height: 5.6rem;
2585
- padding: 1.6rem 2.4rem;
2593
+ padding: 1.4rem 2.2rem;
2586
2594
  vertical-align: middle;
2587
- border: 2px solid transparent;
2595
+ border: 0.2rem solid transparent;
2588
2596
  cursor: pointer;
2589
- margin-right: 3.2rem;
2590
2597
  margin-bottom: var(--qc-spacer-md);
2591
2598
  }
2592
2599
  .qc-button:focus, .qc-button:focus-visible {
@@ -2596,9 +2603,8 @@ li[aria-selected=true] {
2596
2603
  font-weight: var(--qc-font-weight-semi-bold);
2597
2604
  min-width: 8rem;
2598
2605
  min-height: 4rem;
2599
- padding: 0.8rem 1.6rem;
2600
- border-width: 1px;
2601
- margin-right: var(--qc-spacer-md);
2606
+ padding: 0.7rem 1.5rem;
2607
+ border-width: 0.1rem;
2602
2608
  margin-bottom: var(--qc-spacer-sm);
2603
2609
  }
2604
2610
  .qc-button.qc-button-rounded {
@@ -2719,4 +2725,13 @@ li[aria-selected=true] {
2719
2725
  }
2720
2726
  a.qc-button {
2721
2727
  text-decoration: none;
2728
+ }
2729
+
2730
+ .qc-button-group {
2731
+ display: flex;
2732
+ flex-wrap: wrap;
2733
+ column-gap: 3.2rem;
2734
+ }
2735
+ .qc-button-group.qc-compact {
2736
+ column-gap: var(--qc-spacer-md);
2722
2737
  }
@@ -950,7 +950,7 @@ dd {
950
950
  font-family: "Open Sans";
951
951
  font-style: normal;
952
952
  font-weight: 400;
953
- src: url("../../dist/fonts/open-sans-v43-latin-regular.woff2") format("woff2");
953
+ src: url("../fonts/open-sans-v43-latin-regular.woff2") format("woff2");
954
954
  }
955
955
  /* open-sans-italic - latin */
956
956
  @font-face {
@@ -958,7 +958,7 @@ dd {
958
958
  font-family: "Open Sans";
959
959
  font-style: italic;
960
960
  font-weight: 400;
961
- src: url("../../dist/fonts/open-sans-v43-latin-italic.woff2") format("woff2");
961
+ src: url("../fonts/open-sans-v43-latin-italic.woff2") format("woff2");
962
962
  }
963
963
  /* open-sans-500 - latin */
964
964
  @font-face {
@@ -966,7 +966,7 @@ dd {
966
966
  font-family: "Open Sans";
967
967
  font-style: normal;
968
968
  font-weight: 500;
969
- src: url("../../dist/fonts/open-sans-v43-latin-500.woff2") format("woff2");
969
+ src: url("../fonts/open-sans-v43-latin-500.woff2") format("woff2");
970
970
  }
971
971
  /* open-sans-500italic - latin */
972
972
  @font-face {
@@ -974,7 +974,7 @@ dd {
974
974
  font-family: "Open Sans";
975
975
  font-style: italic;
976
976
  font-weight: 500;
977
- src: url("../../dist/fonts/open-sans-v43-latin-500italic.woff2") format("woff2");
977
+ src: url("../fonts/open-sans-v43-latin-500italic.woff2") format("woff2");
978
978
  }
979
979
  /* open-sans-600 - latin */
980
980
  @font-face {
@@ -982,7 +982,7 @@ dd {
982
982
  font-family: "Open Sans";
983
983
  font-style: normal;
984
984
  font-weight: 600;
985
- src: url("../../dist/fonts/open-sans-v43-latin-600.woff2") format("woff2");
985
+ src: url("../fonts/open-sans-v43-latin-600.woff2") format("woff2");
986
986
  }
987
987
  /* open-sans-600italic - latin */
988
988
  @font-face {
@@ -990,7 +990,7 @@ dd {
990
990
  font-family: "Open Sans";
991
991
  font-style: italic;
992
992
  font-weight: 600;
993
- src: url("../../dist/fonts/open-sans-v43-latin-600italic.woff2") format("woff2");
993
+ src: url("../fonts/open-sans-v43-latin-600italic.woff2") format("woff2");
994
994
  }
995
995
  /* open-sans-700 - latin */
996
996
  @font-face {
@@ -998,7 +998,7 @@ dd {
998
998
  font-family: "Open Sans";
999
999
  font-style: normal;
1000
1000
  font-weight: 700;
1001
- src: url("../../dist/fonts/open-sans-v43-latin-700.woff2") format("woff2");
1001
+ src: url("../fonts/open-sans-v43-latin-700.woff2") format("woff2");
1002
1002
  }
1003
1003
  /* open-sans-700italic - latin */
1004
1004
  @font-face {
@@ -1006,7 +1006,7 @@ dd {
1006
1006
  font-family: "Open Sans";
1007
1007
  font-style: italic;
1008
1008
  font-weight: 700;
1009
- src: url("../../dist/fonts/open-sans-v43-latin-700italic.woff2") format("woff2");
1009
+ src: url("../fonts/open-sans-v43-latin-700italic.woff2") format("woff2");
1010
1010
  }
1011
1011
  /* roboto-regular - latin */
1012
1012
  @font-face {
@@ -1014,7 +1014,7 @@ dd {
1014
1014
  font-family: "Roboto";
1015
1015
  font-style: normal;
1016
1016
  font-weight: 400;
1017
- src: url("../../dist/fonts/roboto-v48-latin-regular.woff2") format("woff2");
1017
+ src: url("../fonts/roboto-v48-latin-regular.woff2") format("woff2");
1018
1018
  }
1019
1019
  /* roboto-italic - latin */
1020
1020
  @font-face {
@@ -1022,7 +1022,7 @@ dd {
1022
1022
  font-family: "Roboto";
1023
1023
  font-style: italic;
1024
1024
  font-weight: 400;
1025
- src: url("../../dist/fonts/roboto-v48-latin-italic.woff2") format("woff2");
1025
+ src: url("../fonts/roboto-v48-latin-italic.woff2") format("woff2");
1026
1026
  }
1027
1027
  /* roboto-500 - latin */
1028
1028
  @font-face {
@@ -1030,7 +1030,7 @@ dd {
1030
1030
  font-family: "Roboto";
1031
1031
  font-style: normal;
1032
1032
  font-weight: 500;
1033
- src: url("../../dist/fonts/roboto-v48-latin-500.woff2") format("woff2");
1033
+ src: url("../fonts/roboto-v48-latin-500.woff2") format("woff2");
1034
1034
  }
1035
1035
  /* roboto-500italic - latin */
1036
1036
  @font-face {
@@ -1038,7 +1038,7 @@ dd {
1038
1038
  font-family: "Roboto";
1039
1039
  font-style: italic;
1040
1040
  font-weight: 500;
1041
- src: url("../../dist/fonts/roboto-v48-latin-500italic.woff2") format("woff2");
1041
+ src: url("../fonts/roboto-v48-latin-500italic.woff2") format("woff2");
1042
1042
  }
1043
1043
  /* roboto-600 - latin */
1044
1044
  @font-face {
@@ -1046,7 +1046,7 @@ dd {
1046
1046
  font-family: "Roboto";
1047
1047
  font-style: normal;
1048
1048
  font-weight: 600;
1049
- src: url("../../dist/fonts/roboto-v48-latin-600.woff2") format("woff2");
1049
+ src: url("../fonts/roboto-v48-latin-600.woff2") format("woff2");
1050
1050
  }
1051
1051
  /* roboto-600italic - latin */
1052
1052
  @font-face {
@@ -1054,7 +1054,7 @@ dd {
1054
1054
  font-family: "Roboto";
1055
1055
  font-style: italic;
1056
1056
  font-weight: 600;
1057
- src: url("../../dist/fonts/roboto-v48-latin-600italic.woff2") format("woff2");
1057
+ src: url("../fonts/roboto-v48-latin-600italic.woff2") format("woff2");
1058
1058
  }
1059
1059
  /* roboto-700 - latin */
1060
1060
  @font-face {
@@ -1062,7 +1062,7 @@ dd {
1062
1062
  font-family: "Roboto";
1063
1063
  font-style: normal;
1064
1064
  font-weight: 700;
1065
- src: url("../../dist/fonts/roboto-v48-latin-700.woff2") format("woff2");
1065
+ src: url("../fonts/roboto-v48-latin-700.woff2") format("woff2");
1066
1066
  }
1067
1067
  /* roboto-700italic - latin */
1068
1068
  @font-face {
@@ -1070,7 +1070,7 @@ dd {
1070
1070
  font-family: "Roboto";
1071
1071
  font-style: italic;
1072
1072
  font-weight: 700;
1073
- src: url("../../dist/fonts/roboto-v48-latin-700italic.woff2") format("woff2");
1073
+ src: url("../fonts/roboto-v48-latin-700italic.woff2") format("woff2");
1074
1074
  }
1075
1075
  hr {
1076
1076
  margin: var(--qc-spacer-lg) 0;
@@ -1732,6 +1732,7 @@ qc-alert [slot] a, qc-alert:not([slot=content]) a {
1732
1732
  background-color: var(--qc-color-blue-regular);
1733
1733
  outline: 2px solid var(--qc-color-blue-light);
1734
1734
  border: 2px solid var(--qc-color-blue-dark);
1735
+ outline-offset: 0;
1735
1736
  box-shadow: 0 var(--qc-box_shadow-2-offset) var(--qc-box_shadow-2-blur) var(--qc-color-box_shadow);
1736
1737
  }
1737
1738
  .qc-to-top:active {
@@ -1903,6 +1904,10 @@ label.qc-selection-button:hover::before {
1903
1904
  }
1904
1905
  label.qc-selection-button:has(input:checked)::before {
1905
1906
  background-color: var(--qc-color-blue-pale);
1907
+ border-color: var(--qc-color-blue-light);
1908
+ }
1909
+ label.qc-selection-button:focus, label.qc-selection-button:has(input:focus)::before {
1910
+ border-color: inherit;
1906
1911
  }
1907
1912
  label.qc-selection-button:has(input:disabled)::before {
1908
1913
  background-color: var(--qc-color-grey-pale);
@@ -2110,7 +2115,7 @@ input[type=checkbox].qc-choicefield.qc-compact:checked::after {
2110
2115
  }
2111
2116
  .qc-label, qc-textfield label,
2112
2117
  .qc-textfield label {
2113
- font-weight: var(--qc-font-weight-content-medium);
2118
+ font-weight: var(--qc-font-weight-content-bold);
2114
2119
  display: block;
2115
2120
  }
2116
2121
  .qc-label.qc-compact, qc-textfield label.qc-compact,
@@ -2151,7 +2156,7 @@ qc-textfield textarea {
2151
2156
  position: relative;
2152
2157
  color: var(--qc-color-text-primary);
2153
2158
  background-color: var(--qc-color-background);
2154
- padding: 0.8rem;
2159
+ padding: 0.7rem;
2155
2160
  text-overflow: ellipsis;
2156
2161
  overflow: hidden;
2157
2162
  margin-top: 0.4rem;
@@ -2170,7 +2175,7 @@ qc-textfield textarea:focus,
2170
2175
  qc-textfield textarea:focus-visible {
2171
2176
  outline: 2px solid var(--qc-color-formfield-focus-outline);
2172
2177
  border: 2px solid var(--qc-color-formfield-focus-border);
2173
- padding: 0.7rem;
2178
+ padding: 0.6rem;
2174
2179
  }
2175
2180
  .qc-textfield input:disabled, qc-textfield input:disabled,
2176
2181
  .qc-textfield textarea:disabled,
@@ -2183,7 +2188,7 @@ qc-textfield textarea:disabled {
2183
2188
  [invalid] > textarea {
2184
2189
  border-color: var(--qc-color-red-regular);
2185
2190
  border-width: 2px;
2186
- padding: 0.7rem;
2191
+ padding: 0.6rem;
2187
2192
  }
2188
2193
 
2189
2194
  .qc-textfield input, qc-textfield input,
@@ -2428,7 +2433,7 @@ li[aria-selected=true] {
2428
2433
  display: flex;
2429
2434
  width: 100%;
2430
2435
  justify-content: space-between;
2431
- height: 4rem;
2436
+ height: 3.8rem;
2432
2437
  align-items: center;
2433
2438
  background-color: var(--qc-color-background);
2434
2439
  border: none;
@@ -2544,6 +2549,9 @@ li[aria-selected=true] {
2544
2549
  .qc-dropdown-list.qc-dropdown-list-invalid {
2545
2550
  border: 0.2rem solid var(--qc-color-red-regular) !important;
2546
2551
  }
2552
+ .qc-dropdown-list.qc-dropdown-list-invalid > .qc-dropdown-button {
2553
+ height: 3.6rem;
2554
+ }
2547
2555
 
2548
2556
  .qc-dropdown-list-search {
2549
2557
  margin: var(--qc-spacer-xs);
@@ -2582,11 +2590,10 @@ li[aria-selected=true] {
2582
2590
  min-width: 11.2rem;
2583
2591
  max-width: 36rem;
2584
2592
  min-height: 5.6rem;
2585
- padding: 1.6rem 2.4rem;
2593
+ padding: 1.4rem 2.2rem;
2586
2594
  vertical-align: middle;
2587
- border: 2px solid transparent;
2595
+ border: 0.2rem solid transparent;
2588
2596
  cursor: pointer;
2589
- margin-right: 3.2rem;
2590
2597
  margin-bottom: var(--qc-spacer-md);
2591
2598
  }
2592
2599
  .qc-button:focus, .qc-button:focus-visible {
@@ -2596,9 +2603,8 @@ li[aria-selected=true] {
2596
2603
  font-weight: var(--qc-font-weight-semi-bold);
2597
2604
  min-width: 8rem;
2598
2605
  min-height: 4rem;
2599
- padding: 0.8rem 1.6rem;
2600
- border-width: 1px;
2601
- margin-right: var(--qc-spacer-md);
2606
+ padding: 0.7rem 1.5rem;
2607
+ border-width: 0.1rem;
2602
2608
  margin-bottom: var(--qc-spacer-sm);
2603
2609
  }
2604
2610
  .qc-button.qc-button-rounded {
@@ -2721,6 +2727,15 @@ a.qc-button {
2721
2727
  text-decoration: none;
2722
2728
  }
2723
2729
 
2730
+ .qc-button-group {
2731
+ display: flex;
2732
+ flex-wrap: wrap;
2733
+ column-gap: 3.2rem;
2734
+ }
2735
+ .qc-button-group.qc-compact {
2736
+ column-gap: var(--qc-spacer-md);
2737
+ }
2738
+
2724
2739
  .qc-container,
2725
2740
  .qc-container-fluid,
2726
2741
  .qc-container-lg,
package/public/index.html CHANGED
@@ -402,7 +402,7 @@
402
402
  <td>label</td>
403
403
  <td>Texte</td>
404
404
  <td>""</td>
405
- <td>Texte alternatif pour l’accessibilité. Sert de libellé pour les lecteurs d’écran.</td>
405
+ <td>Texte alternatif pour l’accessibilité. Sert de libellé pour les lecteurs d’écran. Si absent, l'icône sera masquée au lecteur d'écran (via l'attribut <code>aria-hidden</code></td>
406
406
  </tr>
407
407
  <tr>
408
408
  <td>rotate</td>
@@ -1301,7 +1301,7 @@
1301
1301
  </div>
1302
1302
  </div>
1303
1303
 
1304
- <div>
1304
+ <div class="qc-button-group">
1305
1305
  <button class="qc-button qc-simple">
1306
1306
  <qc-icon type="information"></qc-icon>
1307
1307
  Action
@@ -1312,7 +1312,7 @@
1312
1312
  Action
1313
1313
  </button>
1314
1314
  </div>
1315
- <div>
1315
+ <div class="qc-button-group qc-compact">
1316
1316
  <button class="qc-button qc-simple qc-compact">
1317
1317
  <qc-icon type="information"></qc-icon>
1318
1318
  Action
@@ -1327,7 +1327,7 @@
1327
1327
  </qc-doc-exemple>
1328
1328
 
1329
1329
  <qc-doc-exemple caption="Exemples de boutons avec icône.<br/>NB: voir la section <a href='#icons'>Icônes</a> pour plus de détails concernant le composant <code>qc-icon</code>.">
1330
- <div>
1330
+ <div class="qc-button-group">
1331
1331
  <button class="qc-button qc-primary">
1332
1332
  <qc-icon type="arrow-up" rotate="-90"></qc-icon>
1333
1333
  Précédent
@@ -1341,6 +1341,7 @@
1341
1341
  </qc-doc-exemple>
1342
1342
 
1343
1343
  <qc-doc-exemple caption="Exemples avec un lien et un bouton de soumission.">
1344
+ <div class="qc-button-group">
1344
1345
  <a href="javascript:void(0);"
1345
1346
  class="qc-button qc-primary"
1346
1347
  role="button"
@@ -1348,11 +1349,13 @@
1348
1349
  Action
1349
1350
  </a>
1350
1351
  <input type="submit" value="Action" class="qc-button qc-primary" />
1352
+ </div>
1351
1353
  </qc-doc-exemple>
1352
1354
 
1353
1355
 
1354
1356
  <h3>Classes CSS</h3>
1355
1357
 
1358
+ <h4>Classes de boutons</h4>
1356
1359
  <div class="table-overflow">
1357
1360
  <table class="qc-table qc-striped">
1358
1361
  <thead>
@@ -1398,6 +1401,28 @@
1398
1401
  </table>
1399
1402
  </div>
1400
1403
 
1404
+ <h4>Classes pour le contenant parent d'un groupe de boutons</h4>
1405
+ <div class="table-overflow">
1406
+ <table class="qc-table qc-striped">
1407
+ <thead>
1408
+ <tr>
1409
+ <th>Classe / Attribut</th>
1410
+ <th>Description</th>
1411
+ </tr>
1412
+ </thead>
1413
+ <tbody>
1414
+ <tr>
1415
+ <td><code>qc‑button-group</code></td>
1416
+ <td>Gère les espacements horizontaux entre les boutons en groupe</td>
1417
+ </tr>
1418
+ <tr>
1419
+ <td><code>qc‑compact</code></td>
1420
+ <td>Espacements au format compact des boutons en groupe</td>
1421
+ </tr>
1422
+ </tbody>
1423
+ </table>
1424
+ </div>
1425
+
1401
1426
  <hr/>
1402
1427
  <h2 id="formulaires">Formulaires</h2>
1403
1428
  <h3 id="radios-checkboxes">Boutons radios et cases à cocher</h3>