qc-trousse-sdg 1.4.5 → 1.4.7

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 (73) hide show
  1. package/README.md +16 -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/package-lock.json +4689 -0
  6. package/package.json +1 -1
  7. package/plugins/buildHtmlDoc.js +5 -1
  8. package/public/css/qc-doc-sdg.css +69 -34
  9. package/public/css/qc-sdg-no-grid.css +86 -45
  10. package/public/css/qc-sdg.css +86 -45
  11. package/public/index.html +82 -51
  12. package/public/js/qc-doc-sdg.js +8081 -3972
  13. package/public/js/qc-sdg.js +8772 -5119
  14. package/rollup.config.js +3 -4
  15. package/src/doc/components/Code.svelte +13 -5
  16. package/src/doc/components/Exemple.svelte +0 -13
  17. package/src/doc/qc-doc-sdg.js +6 -1
  18. package/src/doc/scss/components/_code.scss +4 -21
  19. package/src/doc/scss/components/_exemple.scss +25 -0
  20. package/src/doc/scss/qc-doc-sdg.scss +23 -4
  21. package/src/sdg/bases/Icon/Icon.svelte +2 -0
  22. package/src/sdg/bases/links/_links.html +10 -10
  23. package/src/sdg/bases/links/_links.scss +18 -12
  24. package/src/sdg/components/Alert/Alert.svelte +28 -9
  25. package/src/sdg/components/Alert/AlertWC.svelte +20 -5
  26. package/src/sdg/components/Alert/Test/AlertSvelteTest.svelte +25 -0
  27. package/src/sdg/components/Alert/Test/alertBaselineTest.html +13 -0
  28. package/src/sdg/components/Alert/Test/alertSvelteTest.html +1 -0
  29. package/src/sdg/components/Alert/_alert.html +25 -13
  30. package/src/sdg/components/Checkbox/Checkbox.svelte +6 -5
  31. package/src/sdg/components/ChoiceGroup/_choiceGroup.html +0 -2
  32. package/src/sdg/components/DropdownList/DropdownList.svelte +65 -14
  33. package/src/sdg/components/DropdownList/DropdownListButton/DropdownListButton.svelte +2 -6
  34. package/src/sdg/components/DropdownList/DropdownListItems/DropdownListItems.svelte +4 -22
  35. package/src/sdg/components/DropdownList/DropdownListItems/DropdownListItemsMultiple/DropdownListItemsMultiple.svelte +2 -1
  36. package/src/sdg/components/DropdownList/DropdownListItems/DropdownListItemsSingle/DropdownListItemsSingle.svelte +2 -1
  37. package/src/sdg/components/DropdownList/SelectWC.svelte +39 -13
  38. package/src/sdg/components/DropdownList/Test/DropdownListSvelteTest.svelte +2 -2
  39. package/src/sdg/components/DropdownList/Test/dropdownListBaselineTest.html +7 -0
  40. package/src/sdg/components/DropdownList/_dropdownList.scss +7 -5
  41. package/src/sdg/components/DropdownList/_select.html +31 -5
  42. package/src/sdg/components/ExternalLink/ExternalLink.svelte +36 -74
  43. package/src/sdg/components/ExternalLink/ExternalLinkWC.svelte +44 -1
  44. package/src/sdg/components/ExternalLink/externalLinkBaselineTest.html +45 -0
  45. package/src/sdg/components/Fieldset/_fieldset.scss +1 -1
  46. package/src/sdg/components/FormfieldRow/_formfieldRow.html +7 -7
  47. package/src/sdg/components/Label/LabelText.svelte +2 -1
  48. package/src/sdg/components/Label/_label.scss +10 -2
  49. package/src/sdg/components/Notice/_notice.html +3 -3
  50. package/src/sdg/components/PivFooter/_pivFooter.html +4 -4
  51. package/src/sdg/components/PivHeader/Test/pivHeaderBaselineTest.html +2 -2
  52. package/src/sdg/components/PivHeader/Test/pivHeaderEmbeddedTest.svelte +2 -1
  53. package/src/sdg/components/PivHeader/_pivHeader.html +2 -2
  54. package/src/sdg/components/PivHeader/_pivHeader.scss +6 -4
  55. package/src/sdg/components/TextField/Test/TextFieldEmbededTest.svelte +19 -3
  56. package/src/sdg/components/TextField/Test/textFieldBaselineTest.html +5 -2
  57. package/src/sdg/components/TextField/TextField.svelte +12 -6
  58. package/src/sdg/components/TextField/TextFieldWC.svelte +27 -13
  59. package/src/sdg/components/TextField/_textField.html +0 -5
  60. package/src/sdg/components/TextField/textFieldUtils.js +3 -2
  61. package/src/sdg/components/utils.js +78 -14
  62. package/src/sdg/qc-sdg-test.js +2 -1
  63. package/src/sdg/scss/lib/_mixins.scss +6 -0
  64. package/src/sdg/scss/utilities/_states.scss +1 -1
  65. package/tests/alert-baseline.spec.ts +23 -0
  66. package/tests/alert-svelte.spec.ts +23 -0
  67. package/tests/buildSvelteTestsIgnore.json +2 -1
  68. package/tests/dropdown-list-baseline.spec.ts +8 -0
  69. package/tests/external-link-baseline.spec.ts +30 -0
  70. package/tests/textfield-baseline.spec.ts +5 -5
  71. package/tests/textfield-svelte.spec.ts +5 -5
  72. package/src/sdg/components/CharCount/_charCount.html +0 -7
  73. package/src/sdg/components/RadioButton/_radioButton.html +0 -24
@@ -755,7 +755,7 @@ qc-icon {
755
755
  mask-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAzMDEuNjkxIDMwMS42OTEiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMwMS42OTEgMzAxLjY5MTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxwb2x5Z29uIHBvaW50cz0iMTE5LjE1MSwwIDEyOS42LDIxOC40MDYgMTcyLjA2LDIxOC40MDYgMTgyLjU0LDAiIC8+Cgk8cmVjdCB4PSIxMzAuNTYzIiB5PSIyNjEuMTY4IiB3aWR0aD0iNDAuNTI1IiBoZWlnaHQ9IjQwLjUyMyIgLz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K");
756
756
  }
757
757
 
758
- .icon-external-link, span.qc-ext-link-img, .qc-icon[data-img-type=external-link] {
758
+ .icon-external-link, .qc-ext-link-img, .qc-icon[data-img-type=external-link] {
759
759
  mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyOS4yMDciIGhlaWdodD0iMjkuNjA4IiB2aWV3Qm94PSIwIDAgMjkuMjA3IDI5LjYwOCI+CiAgPGcgaWQ9Ikdyb3VwZV8zOTQiIGRhdGEtbmFtZT0iR3JvdXBlIDM5NCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEzOSAtNTQ1LjYyNCkiPgogICAgPGcgaWQ9Ikdyb3VwZV8zOTAiIGRhdGEtbmFtZT0iR3JvdXBlIDM5MCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTE3MjIuMDA4IDQzNy41MjQpIj4KICAgICAgPGcgaWQ9Ikdyb3VwZV8zODkiIGRhdGEtbmFtZT0iR3JvdXBlIDM4OSI+CiAgICAgICAgPHBhdGggaWQ9IlRyYWPDqV82NzEiIGRhdGEtbmFtZT0iVHJhY8OpIDY3MSIgZD0iTTE4ODQuMDg3LDEyMC44MTRhMS4xNDUsMS4xNDUsMCwwLDAtMS4xNDUsMS4xNDV2MTMuNDU4SDE4NjMuM3YtMjAuMWgxMy4wNTdhMS4xNDYsMS4xNDYsMCwxLDAsMC0yLjI5MWgtMTUuMzQ4djI0LjY4M2gyNC4yMjVWMTIxLjk1OUExLjE0NiwxLjE0NiwwLDAsMCwxODg0LjA4NywxMjAuODE0WiIgLz4KICAgICAgICA8cGF0aCBpZD0iVHJhY8OpXzY3MiIgZGF0YS1uYW1lPSJUcmFjw6kgNjcyIiBkPSJNMTg3OS43OTIsMTA4LjFhMS4xNDYsMS4xNDYsMCwwLDAsMCwyLjI5MWg2LjUzM2wtMTQuMDE5LDE0LjE3YTEuMTQ2LDEuMTQ2LDAsMCwwLDEuNjI5LDEuNjExbDEzLjk4OS0xNC4xNHY2LjM3N2ExLjE0NiwxLjE0NiwwLDAsMCwyLjI5MSwwVjEwOC4xWiIgLz4KICAgICAgPC9nPgogICAgPC9nPgogIDwvZz4KPC9zdmc+Cg==");
760
760
  }
761
761
 
@@ -826,6 +826,10 @@ qc-icon {
826
826
  a {
827
827
  color: var(--qc-color-link-text);
828
828
  }
829
+ a:has(.qc-ext-link-text) {
830
+ white-space: nowrap;
831
+ text-decoration: none;
832
+ }
829
833
  a:visited {
830
834
  color: var(--qc-color-link-visited);
831
835
  }
@@ -833,9 +837,17 @@ a:hover {
833
837
  color: var(--qc-color-link-hover);
834
838
  text-decoration: none;
835
839
  }
840
+ a:hover .qc-ext-link-text {
841
+ text-decoration: none;
842
+ }
836
843
  a:focus, a:focus-visible {
837
844
  color: var(--qc-color-link-hover);
838
845
  text-decoration: none;
846
+ }
847
+ a:focus .qc-ext-link-text, a:focus-visible .qc-ext-link-text {
848
+ text-decoration: none;
849
+ }
850
+ a:focus, a:focus-visible {
839
851
  outline: 2px solid var(--qc-color-link-focus-outline);
840
852
  outline-offset: 1px;
841
853
  }
@@ -843,33 +855,38 @@ a:active {
843
855
  color: var(--qc-color-link-active);
844
856
  text-decoration: none;
845
857
  }
858
+ a:active .qc-ext-link-text {
859
+ text-decoration: none;
860
+ }
846
861
  a .img-wrap {
847
862
  white-space: nowrap;
848
863
  }
849
864
 
850
- span.qc-ext-link-img {
865
+ .qc-external-link .qc-ext-link-text {
866
+ white-space: normal;
867
+ text-decoration: underline;
868
+ }
869
+
870
+ .qc-ext-link-img {
851
871
  height: 0.6875em;
852
872
  width: 0.6875em;
853
- display: inline-block;
854
873
  background: var(--qc-color-link-text);
855
874
  mask-size: 0.6875em;
856
- margin-left: 4px;
875
+ display: inline-block;
876
+ mask-repeat: no-repeat;
857
877
  }
858
- a:visited span.qc-ext-link-img {
878
+ a:visited .qc-ext-link-img {
859
879
  background: var(--qc-color-link-visited);
860
880
  }
861
- a:focus span.qc-ext-link-img {
881
+ a:focus .qc-ext-link-img {
862
882
  background: var(--qc-color-link-hover);
863
883
  }
864
- a:hover span.qc-ext-link-img {
884
+ a:hover .qc-ext-link-img {
865
885
  background: var(--qc-color-link-hover);
866
886
  }
867
- a:active span.qc-ext-link-img {
887
+ a:active .qc-ext-link-img {
868
888
  background: var(--qc-color-link-active);
869
889
  }
870
- .img-wrap + span.qc-ext-link-img {
871
- display: none;
872
- }
873
890
 
874
891
  p {
875
892
  margin-top: 0;
@@ -1270,7 +1287,7 @@ hr {
1270
1287
  line-height: var(--qc-line-height-md);
1271
1288
  font-weight: var(--qc-font-weight-bold);
1272
1289
  color: var(--qc-color-red-regular);
1273
- margin-left: 0.6rem;
1290
+ margin-left: var(--qc-spacer-xs);
1274
1291
  }
1275
1292
 
1276
1293
  .qc-disabled {
@@ -1372,7 +1389,6 @@ hr {
1372
1389
 
1373
1390
  qc-notice {
1374
1391
  display: block;
1375
- margin-bottom: 3.2rem;
1376
1392
  }
1377
1393
  qc-notice h1, qc-notice h2, qc-notice h3, qc-notice h4, qc-notice h5, qc-notice h6, qc-notice [role=heading] {
1378
1394
  margin: 0;
@@ -1385,18 +1401,21 @@ qc-notice h1, qc-notice h2, qc-notice h3, qc-notice h4, qc-notice h5, qc-notice
1385
1401
  qc-notice ul {
1386
1402
  padding-left: var(--qc-spacer-sm) !important;
1387
1403
  }
1388
- qc-notice[type=error] ul li {
1389
- color: var(--qc-color-red-regular);
1390
- }
1391
1404
  qc-notice[type=error] ul li::marker {
1392
1405
  color: var(--qc-color-text-primary);
1393
1406
  }
1407
+ qc-notice[type=error] ul li {
1408
+ color: var(--qc-color-red-regular);
1409
+ }
1394
1410
  qc-notice[type=error] ul li a {
1395
1411
  color: inherit;
1396
1412
  }
1397
1413
  qc-notice[type=error] ul li a:hover, qc-notice[type=error] ul li a:focus {
1398
1414
  text-decoration: none;
1399
1415
  }
1416
+ qc-notice {
1417
+ margin-bottom: 3.2rem;
1418
+ }
1400
1419
 
1401
1420
  .qc-piv-header .piv-top .right-section .links ul, qc-piv-header [slot=links], qc-piv-header [slot=links] ul {
1402
1421
  list-style: none;
@@ -1524,9 +1543,6 @@ qc-piv-header a,
1524
1543
  --qc-color-link-text: white;
1525
1544
  --qc-color-link-visited: white;
1526
1545
  --qc-color-link-active: white;
1527
- font-family: var(--qc-font-family-header);
1528
- text-decoration: none;
1529
- font-weight: var(--qc-font-weight-regular);
1530
1546
  }
1531
1547
  qc-piv-header a:hover,
1532
1548
  .qc-piv-header a:hover {
@@ -1537,6 +1553,13 @@ qc-piv-header a:focus-visible:has(img), qc-piv-header a:focus:has(img),
1537
1553
  .qc-piv-header a:focus:has(img) {
1538
1554
  outline-offset: -2px;
1539
1555
  }
1556
+ qc-piv-header a, qc-piv-header span,
1557
+ .qc-piv-header a,
1558
+ .qc-piv-header span {
1559
+ font-family: var(--qc-font-family-header);
1560
+ text-decoration: none;
1561
+ font-weight: var(--qc-font-weight-regular);
1562
+ }
1540
1563
 
1541
1564
  .go-to-content {
1542
1565
  display: flex;
@@ -1688,8 +1711,6 @@ qc-piv-footer a:hover {
1688
1711
  z-index: 10;
1689
1712
  background: transparent;
1690
1713
  border: 0;
1691
- flex-shrink: 0;
1692
- cursor: pointer;
1693
1714
  }
1694
1715
  .qc-general-alert button::before {
1695
1716
  position: absolute;
@@ -1705,9 +1726,15 @@ qc-piv-footer a:hover {
1705
1726
  .qc-general-alert button:has(input:focus)::before, .qc-general-alert button:focus::before, .qc-general-alert button:has(textarea:focus)::before {
1706
1727
  border: 2px solid var(--qc-color-formfield-focus-border);
1707
1728
  }
1729
+ .qc-general-alert button {
1730
+ flex-shrink: 0;
1731
+ }
1708
1732
  .qc-general-alert button::before {
1709
1733
  background: transparent;
1710
1734
  }
1735
+ .qc-general-alert button {
1736
+ cursor: pointer;
1737
+ }
1711
1738
 
1712
1739
  qc-alert {
1713
1740
  display: block;
@@ -1719,6 +1746,11 @@ qc-alert [slot] a, qc-alert:not([slot=content]) a {
1719
1746
  color: var(--qc-color-blue-piv);
1720
1747
  }
1721
1748
 
1749
+ .qc-to-top[demo=false] {
1750
+ position: fixed;
1751
+ bottom: 9.6rem;
1752
+ right: 3.2rem;
1753
+ }
1722
1754
  .qc-to-top {
1723
1755
  display: flex;
1724
1756
  z-index: 99;
@@ -1733,11 +1765,6 @@ qc-alert [slot] a, qc-alert:not([slot=content]) a {
1733
1765
  background-size: 1.6rem 2rem;
1734
1766
  box-shadow: 0 var(--qc-box_shadow-1-offset) var(--qc-box_shadow-1-blur) var(--qc-color-box_shadow);
1735
1767
  }
1736
- .qc-to-top[demo=false] {
1737
- position: fixed;
1738
- bottom: 9.6rem;
1739
- right: 3.2rem;
1740
- }
1741
1768
  .qc-to-top[style*=block] {
1742
1769
  display: flex !important;
1743
1770
  }
@@ -1783,13 +1810,13 @@ qc-search-input {
1783
1810
  .qc-search-bar::before, .qc-search-input::before {
1784
1811
  border: 1px solid var(--qc-color-formfield-border);
1785
1812
  }
1813
+ .qc-search-bar button::before, .qc-search-input button::before {
1814
+ background: transparent;
1815
+ }
1786
1816
  .qc-search-bar button, .qc-search-input button {
1787
1817
  width: 4rem;
1788
1818
  flex-shrink: 0;
1789
1819
  }
1790
- .qc-search-bar button::before, .qc-search-input button::before {
1791
- background: transparent;
1792
- }
1793
1820
 
1794
1821
  .qc-search-input.qc-search-left-icon-disabled qc-icon, .qc-search-input.qc-search-left-icon-disabled::before {
1795
1822
  background-color: var(--qc-color-grey-pale);
@@ -1825,12 +1852,12 @@ qc-search-input {
1825
1852
  .qc-search-input.qc-search-left-icon {
1826
1853
  padding-left: var(--qc-spacer-xs);
1827
1854
  }
1828
- .qc-search-input button {
1829
- cursor: pointer;
1830
- }
1831
1855
  .qc-search-input button::before {
1832
1856
  background: transparent;
1833
1857
  }
1858
+ .qc-search-input button {
1859
+ cursor: pointer;
1860
+ }
1834
1861
  qc-search-bar {
1835
1862
  position: relative;
1836
1863
  display: block;
@@ -1893,8 +1920,6 @@ label.qc-selection-button {
1893
1920
  z-index: 10;
1894
1921
  background: transparent;
1895
1922
  border: 0;
1896
- padding: var(--qc-spacer-sm);
1897
- min-width: 100%;
1898
1923
  }
1899
1924
  label.qc-selection-button::before {
1900
1925
  position: absolute;
@@ -1910,6 +1935,10 @@ label.qc-selection-button:has(input:focus), label.qc-selection-button:focus, lab
1910
1935
  label.qc-selection-button:has(input:focus)::before, label.qc-selection-button:focus::before, label.qc-selection-button:has(textarea:focus)::before {
1911
1936
  border: 2px solid var(--qc-color-formfield-focus-border);
1912
1937
  }
1938
+ label.qc-selection-button {
1939
+ padding: var(--qc-spacer-sm);
1940
+ min-width: 100%;
1941
+ }
1913
1942
  label.qc-selection-button::before {
1914
1943
  border-style: solid;
1915
1944
  border-width: 0.1rem;
@@ -2001,9 +2030,9 @@ input[type=radio].qc-choicefield:checked.qc-compact::before {
2001
2030
  justify-items: start;
2002
2031
  }
2003
2032
  .qc-fieldset legend {
2004
- font-weight: var(--qc-font-weight-content-bold);
2005
2033
  display: inline-block;
2006
2034
  margin-bottom: var(--qc-spacer-md);
2035
+ white-space: nowrap;
2007
2036
  }
2008
2037
  .qc-fieldset.qc-compact {
2009
2038
  margin-bottom: var(--qc-spacer-sm);
@@ -2156,9 +2185,10 @@ input[type=checkbox].qc-choicefield.qc-compact:checked::after {
2156
2185
  }
2157
2186
  .qc-label, qc-textfield label,
2158
2187
  .qc-textfield label {
2159
- font-weight: var(--qc-font-weight-content-bold);
2160
- display: block;
2188
+ display: inline-block;
2161
2189
  width: fit-content;
2190
+ white-space: nowrap;
2191
+ margin: 0;
2162
2192
  }
2163
2193
  .qc-label.qc-compact, qc-textfield label.qc-compact,
2164
2194
  .qc-textfield label.qc-compact {
@@ -2174,6 +2204,14 @@ input[type=checkbox].qc-choicefield.qc-compact:checked::after {
2174
2204
  cursor: not-allowed;
2175
2205
  }
2176
2206
 
2207
+ .qc-label-text {
2208
+ white-space: wrap;
2209
+ margin: 0;
2210
+ font-size: var(--qc-font-size-md);
2211
+ line-height: var(--qc-line-height-md);
2212
+ font-weight: var(--qc-font-weight-bold);
2213
+ }
2214
+
2177
2215
  qc-textfield,
2178
2216
  .qc-textfield {
2179
2217
  display: block;
@@ -2491,9 +2529,6 @@ li[aria-selected=true] {
2491
2529
  z-index: 10;
2492
2530
  background: transparent;
2493
2531
  border: 0;
2494
- font-size: var(--qc-font-size-md);
2495
- line-height: var(--qc-line-height-md);
2496
- font-weight: var(--qc-font-weight-regular);
2497
2532
  }
2498
2533
  .qc-dropdown-button::before {
2499
2534
  position: absolute;
@@ -2509,6 +2544,11 @@ li[aria-selected=true] {
2509
2544
  .qc-dropdown-button:has(input:focus)::before, .qc-dropdown-button:focus::before, .qc-dropdown-button:has(textarea:focus)::before {
2510
2545
  border: 2px solid var(--qc-color-formfield-focus-border);
2511
2546
  }
2547
+ .qc-dropdown-button {
2548
+ font-size: var(--qc-font-size-md);
2549
+ line-height: var(--qc-line-height-md);
2550
+ font-weight: var(--qc-font-weight-regular);
2551
+ }
2512
2552
  .qc-dropdown-button:hover {
2513
2553
  cursor: pointer;
2514
2554
  }
@@ -2594,15 +2634,16 @@ li[aria-selected=true] {
2594
2634
 
2595
2635
  .qc-dropdown-list-expanded {
2596
2636
  position: absolute;
2597
- width: calc(100% + 2px);
2598
- left: -0.1rem;
2599
- right: -0.1rem;
2600
- top: 100%;
2637
+ width: calc(100% + 2 * var(--dropdown-button-border) px);
2638
+ left: calc(var(--dropdown-button-border) * 0.1 * -1rem);
2639
+ right: calc(var(--dropdown-button-border) * 0.1 * -1rem);
2640
+ top: calc(var(--dropdown-items-top-offset) * 0.1 * 1rem);
2601
2641
  z-index: 11;
2602
2642
  background-color: var(--qc-color-background);
2603
2643
  border-left: 0.1rem solid var(--qc-color-grey-medium);
2604
2644
  border-right: 0.1rem solid var(--qc-color-grey-medium);
2605
- border-bottom: 0.1rem solid var(--qc-color-grey-medium);
2645
+ border-bottom: calc(var(--dropdown-items-bottom-border) * 0.1 * 1rem) solid var(--qc-color-grey-medium);
2646
+ border-top: calc(var(--dropdown-items-top-border) * 0.1 * 1rem) solid var(--qc-color-grey-medium);
2606
2647
  }
2607
2648
 
2608
2649
  .qc-dropdown-list-hidden {
package/public/index.html CHANGED
@@ -600,33 +600,33 @@
600
600
  <qc-doc-exemple caption="Exemple de différents liens hypertexte selon leurs états.">
601
601
  <dl>
602
602
  <dt>Lien interne</dt>
603
- <dd><a href="javascript:;" class="not-visited">Lien interne</a></dd>
603
+ <dd><a href="#" class="not-visited">Lien interne</a></dd>
604
604
  <dd>
605
- <qc-external-link><a href="javascript:;" class="not-visited">Lien externe</a></qc-external-link>
605
+ <qc-external-link><a href="#" class="not-visited">Lien externe</a></qc-external-link>
606
606
  </dd>
607
607
 
608
608
  <dt>Lien au survol (pseudo-classe :hover)</dt>
609
- <dd><a href="javascript:;" class="pseudo-hover">Lien interne</a></dd>
609
+ <dd><a href="#" class="pseudo-hover">Lien interne</a></dd>
610
610
  <dd>
611
- <qc-external-link><a href="javascript:;" class="pseudo-hover">Lien externe</a>
611
+ <qc-external-link><a href="#" class="pseudo-hover">Lien externe</a>
612
612
  </qc-external-link>
613
613
  </dd>
614
614
  <dt>Lien au focus (pseudo-classe :focus)</dt>
615
- <dd><a href="javascript:;" class="pseudo-focus">Lien interne</a></dd>
615
+ <dd><a href="#" class="pseudo-focus">Lien interne</a></dd>
616
616
  <dd>
617
- <qc-external-link><a href="javascript:;" class="pseudo-focus">Lien externe</a>
617
+ <qc-external-link><a href="#" class="pseudo-focus">Lien externe</a>
618
618
  </qc-external-link>
619
619
  </dd>
620
620
  <dt>Lien au clic (pseudo-classe :active)</dt>
621
- <dd><a href="javascript:;" class="pseudo-active">Lien interne</a></dd>
621
+ <dd><a href="#" class="pseudo-active">Lien interne</a></dd>
622
622
  <dd>
623
- <qc-external-link><a href="javascript:;" class="pseudo-active">Lien externe</a>
623
+ <qc-external-link><a href="#" class="pseudo-active">Lien externe</a>
624
624
  </qc-external-link>
625
625
  </dd>
626
626
  <dt>Lien visité (pseudo-classe :visited)</dt>
627
- <dd><a href="javascript:;" class="pseudo-visited">Lien interne</a></dd>
627
+ <dd><a href="#" class="pseudo-visited">Lien interne</a></dd>
628
628
  <dd>
629
- <qc-external-link><a href="javascript:;" class="pseudo-visited">Lien externe</a>
629
+ <qc-external-link><a href="#" class="pseudo-visited">Lien externe</a>
630
630
  </qc-external-link>
631
631
  </dd>
632
632
  </dl>
@@ -839,7 +839,7 @@
839
839
  <h3>Exemples</h3>
840
840
  <h4>Alerte jaune</h4>
841
841
  <p>
842
- <a href="javascript:;"
842
+ <a href="#"
843
843
  id="show-qc-alert"
844
844
  hidden
845
845
  >
@@ -848,27 +848,26 @@
848
848
  </p>
849
849
 
850
850
  <qc-doc-exemple id="alert-warning"
851
- caption="Exemple d’alerte jaune">
851
+ caption="Exemple d’alerte jaune masquable. Elle reste masquée après rafraîchissement de la page tant que la session courante est active.">
852
852
  <qc-alert id="alerte-masquable"
853
853
  type="warning"
854
854
  maskable="true"
855
855
  content="Alerte jaune d’importance élevée"
856
+ persist-hidden
857
+ persistence-key="hash-1234"
856
858
  >
857
859
  </qc-alert>
858
860
  </qc-doc-exemple>
859
- <!-- <qc-code target-id="alert-warning"></qc-code>-->
860
861
 
861
862
  <h4>Alerte bleue</h4>
862
863
  <qc-doc-exemple id="alert-general"
863
864
  caption="Exemple d’alerte générale">
864
865
  <qc-alert type="general"
865
866
  maskable="false">
866
- <p>Alerte bleue d’importance modérée <a href="javascript:;">avec un lien textuel</a></p>
867
+ <p>Alerte bleue d’importance modérée <a href="#">avec un lien textuel</a></p>
867
868
  </qc-alert>
868
869
  </qc-doc-exemple>
869
870
 
870
- <!-- <qc-code target-id="alert-general"></qc-code>-->
871
-
872
871
  <h3>Documentation technique</h3>
873
872
 
874
873
  <h4>Attributs</h4>
@@ -888,12 +887,6 @@
888
887
  <td>"general"</td>
889
888
  <td>Type de l’alerte : s'il s'agit d’une alerte bleue ou jaune</td>
890
889
  </tr>
891
- <tr>
892
- <td>maskable</td>
893
- <td>"true" ou "false"</td>
894
- <td>"true"</td>
895
- <td>Afficher le bouton de fermeture de l’alerte</td>
896
- </tr>
897
890
  <tr>
898
891
  <td>content</td>
899
892
  <td>Texte</td>
@@ -914,6 +907,25 @@
914
907
  qc-container-fluid)
915
908
  </td>
916
909
  </tr>
910
+ <tr>
911
+ <td>maskable</td>
912
+ <td>"true" ou "false"</td>
913
+ <td>"true"</td>
914
+ <td>Afficher le bouton de fermeture de l’alerte</td>
915
+ </tr>
916
+ <tr>
917
+ <td>persist-hidden</td>
918
+ <td>na</td>
919
+ <td></td>
920
+ <td>Masque l'alerte de façon persistente une fois qu'elle est masquée par l'internaute, c‑à‑d. qu'elle reste masquée lorsque l'utilisateur rafraîchit la page, pendant tout le temps de sa session.</td>
921
+ </tr>
922
+ <tr>
923
+ <td>persistence-key</td>
924
+ <td>Chaîne de caractère</td>
925
+ <td>Id de l'élément, valeur nulle sinon</td>
926
+ <td>Clé pour le stockage de session (<code>Window.sessionStorage</code>). Si non défini, l'id de l'élément sera utilisé. Si celui-ci non plus n'est pas défini, la persistence du masquage n'aura pas lieu.</td>
927
+ </tr>
928
+
917
929
  </table>
918
930
  </div>
919
931
 
@@ -926,7 +938,7 @@
926
938
  document.addEventListener(
927
939
  'qc.alert.hide',
928
940
  (e) => {
929
- console.log('Fermeture de l\'alerte id=\'' + e.target.id + '\'');
941
+ console.log(`Fermeture de l'alerte id='${e.target.id}'`);
930
942
  }
931
943
  )
932
944
  </script>
@@ -1009,13 +1021,13 @@
1009
1021
  title="Des erreurs sont présentes dans le formulaire :">
1010
1022
  <ul>
1011
1023
  <li>
1012
- <a href="javascript:;">Le champ « Nom de famille » est obligatoire ;</a>
1024
+ <a href="#">Le champ « Nom de famille » est obligatoire ;</a>
1013
1025
  </li>
1014
1026
  <li>
1015
- <a href="javascript:;">Le champ « Prénom » est obligatoire ;</a>
1027
+ <a href="#">Le champ « Prénom » est obligatoire ;</a>
1016
1028
  </li>
1017
1029
  <li>
1018
- <a href="javascript:;">Le champ « Numéro de dossier » est obligatoire.</a>
1030
+ <a href="#">Le champ « Numéro de dossier » est obligatoire.</a>
1019
1031
  </li>
1020
1032
  </ul>
1021
1033
  </qc-notice>
@@ -1708,8 +1720,6 @@
1708
1720
  </table>
1709
1721
  </div>
1710
1722
 
1711
- <p>Pour les autres attributs, voir la rubrique de <a href="#selection-button-attributes">boutons de sélection</a>.</p>
1712
-
1713
1723
  <h5>Zone d’ajout de contenu HTML</h5>
1714
1724
 
1715
1725
  <p>Ce composant ne comporte qu'une seule zone d'ajout de contenu par défaut.</p>
@@ -2120,11 +2130,6 @@
2120
2130
  </table>
2121
2131
  </div>
2122
2132
 
2123
- <h4>Champs alignés horizontalement (classe <code>qc-textfield-row</code>)</h4>
2124
-
2125
- <p>Les champs regroupés sur une ligne peuvent être placés dans un div avec la classe <code>qc-textfield-row</code>. De cette façon, les messages d'erreur ne provoquent pas de décalage. <br/>
2126
- Voir le code des champs Téléphone et Poste dans l'exemple ci-dessus.</p>
2127
-
2128
2133
  <h4>Propriété js</h4>
2129
2134
  <div class="table-overflow">
2130
2135
  <table class="qc-table qc-striped component-attributes-description">
@@ -2432,6 +2437,20 @@
2432
2437
  </select>
2433
2438
  </qc-select>
2434
2439
 
2440
+ <script>
2441
+ const selectElement = document.getElementById("select-single-choice");
2442
+
2443
+ selectElement.addEventListener("change", (event) => {
2444
+ console.log("Option sélectionnée :", event.target.value);
2445
+ });
2446
+ selectElement.addEventListener("qc.select.show", () => {
2447
+ console.log("Options affichées");
2448
+ });
2449
+ selectElement.addEventListener("qc.select.hide", () => {
2450
+ console.log("Options cachées");
2451
+ });
2452
+ </script>
2453
+
2435
2454
  <qc-select id="qc-select-single-choice-search" enable-search>
2436
2455
  <label for="select-single-choice-search">Choix unique avec recherche</label>
2437
2456
  <select id="select-single-choice-search">
@@ -2607,11 +2626,11 @@
2607
2626
  <div class="table-overflow">
2608
2627
  <table class="qc-table qc-striped component-attributes-description">
2609
2628
  <thead>
2610
- <tr>
2611
- <th>Nom</th>
2612
- <th>Type</th>
2613
- <th>Description</th>
2614
- </tr>
2629
+ <tr>
2630
+ <th>Nom</th>
2631
+ <th>Type</th>
2632
+ <th>Description</th>
2633
+ </tr>
2615
2634
  </thead>
2616
2635
  <tbody>
2617
2636
  <tr>
@@ -2619,17 +2638,34 @@
2619
2638
  <td>Tableau de chaîne de caractères</td>
2620
2639
  <td>Valeur(s) sélectionnée(s) dans la liste déroulante</td>
2621
2640
  </tr>
2641
+ <tr>
2642
+ <td>expanded</td>
2643
+ <td>Booléen</td>
2644
+ <td>Indique que la liste déroulante est ouverte</td>
2645
+ </tr>
2622
2646
  </tbody>
2623
2647
  </table>
2624
2648
  </div>
2625
2649
 
2650
+ <h5>Événements JS</h5>
2651
+ <ul>
2652
+ <li>Un événement JS <code class="qc-bg-color-grey-pale">change</code> est émis lors du changement de valeur sélectionnée dans la liste déroulante.</li>
2653
+ <li>Un événement JS <code class="qc-bg-color-grey-pale">qc.select.show</code> est émis lorsqu'une liste déroulante est ouverte.</li>
2654
+ <li>Un événement JS <code class="qc-bg-color-grey-pale">qc.select.hide</code> est émis lorsqu'une liste déroulante est fermée.</li>
2655
+ </ul>
2656
+
2626
2657
  <h5>Zone d'ajout de contenu HTML</h5>
2627
2658
  <p>Ce composant ne comporte qu'une seule zone d'ajout de contenu.</p>
2628
2659
 
2629
2660
  <hr/>
2630
- <h3 id="champs-alignes">Champs alignés horizontalement (classe <code>qc‑textfield‑row</code>)</h3>
2661
+ <h3 id="champs-alignes">Champs alignés horizontalement (classe <code>qc‑formfield‑row</code>)</h3>
2631
2662
 
2632
- <p>Les champs regroupés sur une ligne doivent être placés dans un div avec la classe <code>qc-textfield-row</code> pour correctement afficher les messages d’erreur en cas de soumission invalide.</p>
2663
+ <p>
2664
+ Les champs regroupés sur une ligne doivent être placés dans un <code>div</code> avec la classe <code>qc-formfield-row</code>.
2665
+ De cette façon, les messages d'erreur ne provoquent pas de décalage.
2666
+ <br/><br/>
2667
+ Voir le code des champs Téléphone et Poste dans l'exemple ci-dessus.
2668
+ </p>
2633
2669
 
2634
2670
  <h4>Exemple</h4>
2635
2671
  <qc-doc-exemple caption="Exemple de champs sur une seule ligne">
@@ -2731,11 +2767,6 @@
2731
2767
  });
2732
2768
  </script>
2733
2769
 
2734
- <h4>Documentation technique</h4>
2735
- <p>Placer les champs à regrouper sur une seule ligne dans un div avec la classe <code>qc-formfield-row</code></p>
2736
-
2737
-
2738
-
2739
2770
  <hr/>
2740
2771
  <h2 id="toTop">Haut de page</h2>
2741
2772
  <p>
@@ -2811,7 +2842,7 @@
2811
2842
  <ul>
2812
2843
  <li><a href="#fakeEnglish">English</a>
2813
2844
  </li>
2814
- <li><a href="javascript:;">Nous joindre</a>
2845
+ <li><a href="#">Nous joindre</a>
2815
2846
  </li>
2816
2847
  </ul>
2817
2848
  </nav>
@@ -2832,7 +2863,7 @@
2832
2863
  <ul slot="links">
2833
2864
  <li><a href="#fakeEnglish">English</a>
2834
2865
  </li>
2835
- <li><a href="javascript:;">Nous joindre</a>
2866
+ <li><a href="#">Nous joindre</a>
2836
2867
  </li>
2837
2868
  </ul>
2838
2869
 
@@ -3079,7 +3110,7 @@
3079
3110
  <td>Le chemin de l’image en thème clair.</td>
3080
3111
  <td>Le chemin vers l’image dist/img/QUEBEC_couleur.svg de la trousse</td>
3081
3112
  <td>Adresse de l’image du pied de page en thème clair (fond transparent, texte et drapeaux en
3082
- couleur, voir <a href="#piv-footer-ex-2">l’exemple de pied de page PIV personnalisé</a>).
3113
+ couleur, voir <a href="#piv-footer-ex-2">l’exemple de pied de page du PIV personnalisé</a>).
3083
3114
  </td>
3084
3115
  </tr>
3085
3116
  <tr>
@@ -3087,7 +3118,7 @@
3087
3118
  <td>Le chemin de l’image en thème sombre.</td>
3088
3119
  <td>Le chemin vers l’image dist/img/QUEBEC_blanc.svg de la trousse</td>
3089
3120
  <td>Adresse de l’image du pied de page en thème sombre (fond transparent, texte et drapeaux en
3090
- blanc, voir <a href="#piv-footer-ex-2">l’exemple de pied de page PIV personnalisé</a>).
3121
+ blanc, voir <a href="#piv-footer-ex-2">l’exemple de pied de page du PIV personnalisé</a>).
3091
3122
  </td>
3092
3123
  </tr>
3093
3124
  <tr>
@@ -3138,7 +3169,7 @@
3138
3169
  </table>
3139
3170
  </div>
3140
3171
 
3141
- <qc-notice type="information">Les images du pied de page PIV doivent respecter
3172
+ <qc-notice type="information">Les images du pied de page du PIV doivent respecter
3142
3173
  <qc-external-link><a href="https://www.piv.gouv.qc.ca/fileadmin/documents/guide/section1_general.pdf">les
3143
3174
  normes graphiques du système d’identification visuelle.</a>. Nous vous invitons à privilégier le format
3144
3175
  SVG, qui permet de conserver la lisibilité de l’image en cas de zoom.
@@ -3149,7 +3180,7 @@
3149
3180
 
3150
3181
  <p>Ci-dessous, les zones d’ajout de contenu HTML (balise &lt;slot&gt;) délimitées en pointillé.</p>
3151
3182
  <qc-doc-exemple id="qc-piv-footer-slots"
3152
- caption="Présentation des zones d’ajout de contenu du pied de page PIV">
3183
+ caption="Présentation des zones d’ajout de contenu du pied de page du PIV">
3153
3184
  <qc-piv-footer>
3154
3185
  <div style="border:2px dashed;padding: var(--qc-spacer-xs);">
3155
3186
  Contenu par défaut