qc-trousse-sdg 1.4.0-develop.1 → 1.4.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 (293) hide show
  1. package/README.md +22 -5
  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/fonts/open-sans-v43-latin-500.woff2 +0 -0
  6. package/dist/fonts/open-sans-v43-latin-500italic.woff2 +0 -0
  7. package/dist/fonts/open-sans-v43-latin-600.woff2 +0 -0
  8. package/dist/fonts/open-sans-v43-latin-600italic.woff2 +0 -0
  9. package/dist/fonts/open-sans-v43-latin-700.woff2 +0 -0
  10. package/dist/fonts/open-sans-v43-latin-700italic.woff2 +0 -0
  11. package/dist/fonts/open-sans-v43-latin-italic.woff2 +0 -0
  12. package/dist/fonts/open-sans-v43-latin-regular.woff2 +0 -0
  13. package/dist/fonts/roboto-mono-v30-latin-500.woff2 +0 -0
  14. package/dist/fonts/roboto-mono-v30-latin-500italic.woff2 +0 -0
  15. package/dist/fonts/roboto-mono-v30-latin-600.woff2 +0 -0
  16. package/dist/fonts/roboto-mono-v30-latin-600italic.woff2 +0 -0
  17. package/dist/fonts/roboto-mono-v30-latin-700.woff2 +0 -0
  18. package/dist/fonts/roboto-mono-v30-latin-700italic.woff2 +0 -0
  19. package/dist/fonts/roboto-mono-v30-latin-italic.woff2 +0 -0
  20. package/dist/fonts/roboto-mono-v30-latin-regular.woff2 +0 -0
  21. package/dist/fonts/roboto-v48-latin-500.woff2 +0 -0
  22. package/dist/fonts/roboto-v48-latin-500italic.woff2 +0 -0
  23. package/dist/fonts/roboto-v48-latin-600.woff2 +0 -0
  24. package/dist/fonts/roboto-v48-latin-600italic.woff2 +0 -0
  25. package/dist/fonts/roboto-v48-latin-700.woff2 +0 -0
  26. package/dist/fonts/roboto-v48-latin-700italic.woff2 +0 -0
  27. package/dist/fonts/roboto-v48-latin-italic.woff2 +0 -0
  28. package/dist/fonts/roboto-v48-latin-regular.woff2 +0 -0
  29. package/dist/img/icon/adresse.svg +4 -0
  30. package/dist/img/icon/arrow-up.svg +3 -0
  31. package/dist/img/icon/calendar.svg +1 -0
  32. package/dist/img/icon/checkmark.svg +3 -0
  33. package/dist/img/icon/chevron-up-thin.svg +5 -0
  34. package/dist/img/{chevron-white.svg → icon/chevron-up.svg} +1 -1
  35. package/{public/img → dist/img/icon}/clipboard.svg +3 -3
  36. package/dist/img/icon/clock.svg +1 -0
  37. package/dist/img/icon/email.svg +1 -0
  38. package/dist/img/icon/error.svg +1 -0
  39. package/{public/img/exclamation-white.svg → dist/img/icon/exclamation.svg} +2 -2
  40. package/{public/img → dist/img/icon}/external-link.svg +2 -2
  41. package/dist/img/icon/information.svg +1 -0
  42. package/dist/img/icon/ligth-bulb.svg +1 -0
  43. package/{public/img → dist/img/icon}/minus.svg +1 -1
  44. package/dist/img/icon/note.svg +1 -0
  45. package/dist/img/icon/phone.svg +1 -0
  46. package/dist/img/{plus.svg → icon/plus.svg} +1 -1
  47. package/{public/img → dist/img/icon}/question-mark.svg +2 -2
  48. package/dist/img/icon/search-thin.svg +10 -0
  49. package/dist/img/icon/search.svg +1 -0
  50. package/dist/img/icon/success.svg +1 -0
  51. package/dist/img/icon/user.svg +6 -0
  52. package/dist/img/icon/warning.svg +1 -0
  53. package/dist/img/icon/website.svg +1 -0
  54. package/dist/img/icon/xclose.svg +1 -0
  55. package/dist/js/qc-sdg.min.js +1 -1
  56. package/package.json +11 -3
  57. package/playwright.config.ts +79 -0
  58. package/plugins/buildDevDoc.js +36 -0
  59. package/plugins/buildHtmlDoc.js +43 -0
  60. package/plugins/buildTestFixtures.js +37 -0
  61. package/public/css/qc-doc-sdg.css +4 -67
  62. package/public/css/qc-sdg-design-tokens.css +17 -0
  63. package/public/css/qc-sdg-no-grid.css +2001 -1108
  64. package/public/css/qc-sdg.css +1999 -1106
  65. package/public/img/checkmark.svg +3 -0
  66. package/public/img/question.svg +10 -0
  67. package/public/index.html +3104 -1387
  68. package/public/js/qc-doc-sdg.js +5705 -285
  69. package/public/js/qc-sdg.js +5660 -1415
  70. package/rollup.config.js +67 -41
  71. package/scripts/buildImagesMap.js +85 -0
  72. package/scripts/check-release-note.sh +11 -0
  73. package/scripts/compile-doc.sh +4 -0
  74. package/src/doc/_index.html +100 -0
  75. package/src/doc/_nav.html +53 -0
  76. package/src/doc/_test.html +32 -0
  77. package/src/doc/components/Code.svelte +6 -2
  78. package/src/doc/components/TopNav.svelte +8 -9
  79. package/src/doc/components/color-doc.svelte +1 -1
  80. package/src/doc/ejs/layout/index.ejs +129 -0
  81. package/src/doc/qc-doc-sdg.js +1 -2
  82. package/src/doc/scss/components/_code.scss +1 -1
  83. package/src/doc/scss/jQueryUI/_jquery-ui.autocomplete.scss +1 -0
  84. package/src/doc/scss/qc-doc-sdg.scss +1 -1
  85. package/src/doc/scss/settings/_base.scss +4 -0
  86. package/src/sdg/_components.js +9 -2
  87. package/src/sdg/{components → bases}/Icon/Icon.svelte +13 -6
  88. package/src/sdg/bases/Icon/IconDoc.ejs +129 -0
  89. package/src/sdg/{components → bases}/Icon/IconWC.svelte +3 -1
  90. package/src/sdg/bases/Icon/Test/IconEmbeddedTest.html +1 -0
  91. package/src/sdg/bases/Icon/Test/IconEmbeddedTest.svelte +168 -0
  92. package/src/sdg/bases/Icon/Test/iconTest.html +156 -0
  93. package/src/sdg/bases/Icon/_icon.html +254 -0
  94. package/src/sdg/bases/Icon/_icons.scss +47 -0
  95. package/src/sdg/{scss/base → bases/accessibility}/_accessibility.scss +1 -1
  96. package/src/sdg/bases/colors/_colors.html +112 -0
  97. package/src/sdg/bases/figures/_figure.html +16 -0
  98. package/src/sdg/{scss/base → bases/form}/_form.scss +10 -3
  99. package/src/sdg/bases/grid/_grid.html +118 -0
  100. package/src/sdg/bases/headings/_headings.html +18 -0
  101. package/src/sdg/bases/headings/_headings.scss +25 -0
  102. package/src/sdg/{scss/base → bases/layout}/_layout.scss +1 -4
  103. package/src/sdg/bases/links/_links.html +104 -0
  104. package/src/sdg/bases/links/_links.scss +51 -0
  105. package/src/sdg/bases/lists/_lists.html +27 -0
  106. package/src/sdg/bases/separator/_separator.html +7 -0
  107. package/src/sdg/bases/separator/_separator.scss +5 -0
  108. package/src/sdg/bases/shadings/_shadings.html +14 -0
  109. package/src/sdg/{scss/base → bases/shadings}/_shadings.scss +1 -1
  110. package/src/sdg/bases/typography/_font.html +45 -0
  111. package/src/sdg/bases/typography/_fonts.scss +162 -0
  112. package/src/sdg/bases/typography/_paragraph.html +17 -0
  113. package/src/sdg/bases/typography/_paragraph.scss +33 -0
  114. package/src/sdg/components/Alert/Alert.svelte +2 -5
  115. package/src/sdg/components/Alert/AlertWC.svelte +3 -2
  116. package/src/sdg/components/Alert/_alert.html +110 -0
  117. package/src/sdg/{scss/components → components/Alert}/_alert.scss +1 -1
  118. package/src/sdg/components/Button/Button.svelte +50 -0
  119. package/src/sdg/components/Button/ButtonWC.svelte +36 -0
  120. package/src/sdg/components/Button/Test/buttonTest.html +349 -0
  121. package/src/sdg/components/Button/_button.html +186 -0
  122. package/src/sdg/components/Button/_button.scss +202 -0
  123. package/src/sdg/components/CharCount/_charCount.html +7 -0
  124. package/src/sdg/components/Checkbox/Checkbox.svelte +77 -0
  125. package/src/sdg/components/Checkbox/CheckboxWC.svelte +49 -0
  126. package/src/sdg/components/Checkbox/_checkbox.html +86 -0
  127. package/src/sdg/components/Checkbox/_checkbox.scss +70 -0
  128. package/src/sdg/components/Checkbox/updateInput.svelte.js +23 -0
  129. package/src/sdg/components/ChoiceGroup/ChoiceGroup.svelte +56 -0
  130. package/src/sdg/components/ChoiceGroup/ChoiceGroupWC.svelte +47 -0
  131. package/src/sdg/components/ChoiceGroup/Test/ChoiceGroupeEmbededTest.svelte +261 -0
  132. package/src/sdg/components/ChoiceGroup/Test/checkboxEmbeddedTest.html +1 -0
  133. package/src/sdg/components/ChoiceGroup/Test/checkboxTest.html +253 -0
  134. package/src/sdg/components/ChoiceGroup/Test/radiosEmbeddedTest.html +1 -0
  135. package/src/sdg/components/ChoiceGroup/Test/radiosTest.html +185 -0
  136. package/src/sdg/components/ChoiceGroup/ToggleSwitchGroupWC.svelte +56 -0
  137. package/src/sdg/components/ChoiceGroup/_choiceGroup.html +285 -0
  138. package/src/sdg/components/ChoiceGroup/_choiceGroup.scss +32 -0
  139. package/src/sdg/components/ChoiceGroup/_selectionButton.scss +53 -0
  140. package/src/sdg/components/ChoiceGroup/_selectionButtons.html +130 -0
  141. package/src/sdg/components/DropdownList/DropdownList.svelte +394 -0
  142. package/src/sdg/components/DropdownList/DropdownListButton/DropdownListButton.svelte +43 -0
  143. package/src/sdg/components/DropdownList/DropdownListButton/_dropdownListButton.scss +65 -0
  144. package/src/sdg/components/DropdownList/DropdownListItems/DropdownListItems.svelte +110 -0
  145. package/src/sdg/components/DropdownList/DropdownListItems/DropdownListItemsMultiple/DropdownListItemsMultiple.svelte +185 -0
  146. package/src/sdg/components/DropdownList/DropdownListItems/DropdownListItemsMultiple/_dropdownListItemsMultiple.scss +19 -0
  147. package/src/sdg/components/DropdownList/DropdownListItems/DropdownListItemsSingle/DropdownListItemsSingle.svelte +136 -0
  148. package/src/sdg/components/DropdownList/DropdownListItems/DropdownListItemsSingle/_dropdownListItemsSingle.scss +11 -0
  149. package/src/sdg/components/DropdownList/DropdownListItems/_dropdownListItems.scss +67 -0
  150. package/src/sdg/components/DropdownList/SelectWC.svelte +158 -0
  151. package/src/sdg/components/DropdownList/Test/DropdownListEmbeddedTest.svelte +89 -0
  152. package/src/sdg/components/DropdownList/Test/dropdownListEmbeddedTest.html +1 -0
  153. package/src/sdg/components/DropdownList/Test/dropdownListTest.html +194 -0
  154. package/src/sdg/components/DropdownList/Test/dropdownListTestUtils.js +113 -0
  155. package/src/sdg/components/DropdownList/_dropdownList.scss +73 -0
  156. package/src/sdg/components/DropdownList/_select.html +212 -0
  157. package/src/sdg/components/ExternalLink/ExternalLink.svelte +1 -1
  158. package/src/sdg/components/Fieldset/Fieldset.svelte +73 -0
  159. package/src/sdg/components/Fieldset/_fieldset.scss +95 -0
  160. package/src/sdg/components/FormError/FormError.svelte +51 -0
  161. package/src/sdg/components/FormError/_formError.scss +21 -0
  162. package/src/sdg/components/FormfieldRow/_formfieldRow.html +108 -0
  163. package/src/sdg/components/IconButton/IconButton.svelte +1 -1
  164. package/src/sdg/components/IconButton/_iconButton.scss +14 -0
  165. package/src/sdg/components/Label/Label.svelte +28 -0
  166. package/src/sdg/components/Label/LabelText.svelte +4 -0
  167. package/src/sdg/components/Label/_label.scss +19 -0
  168. package/src/sdg/components/Notice/Notice.svelte +1 -2
  169. package/src/sdg/components/Notice/NoticeWC.svelte +3 -0
  170. package/src/sdg/components/Notice/_notice.html +141 -0
  171. package/src/sdg/{scss/components → components/Notice}/_notice.scss +1 -1
  172. package/src/sdg/components/PivFooter/PivFooter.svelte +8 -9
  173. package/src/sdg/components/PivFooter/PivFooterWC.svelte +6 -14
  174. package/src/sdg/components/PivFooter/_pivFooter.html +153 -0
  175. package/src/sdg/{scss/components → components/PivFooter}/_pivFooter.scss +1 -1
  176. package/src/sdg/components/PivHeader/PivHeader.svelte +47 -53
  177. package/src/sdg/components/PivHeader/PivHeaderWC.svelte +9 -20
  178. package/src/sdg/components/PivHeader/Test/pivHeaderEmbeddedTest.html +1 -0
  179. package/src/sdg/components/PivHeader/Test/pivHeaderEmbeddedTest.svelte +28 -0
  180. package/src/sdg/components/PivHeader/Test/pivHeaderTest.html +43 -0
  181. package/src/sdg/components/PivHeader/_pivHeader.html +221 -0
  182. package/src/sdg/{scss/components → components/PivHeader}/_pivHeader.scss +55 -77
  183. package/src/sdg/components/RadioButton/_radioButton.html +24 -0
  184. package/src/sdg/components/RadioButton/_radioButton.scss +29 -0
  185. package/src/sdg/components/SearchBar/SearchBar.svelte +12 -32
  186. package/src/sdg/components/SearchBar/_searchBar.html +125 -0
  187. package/src/sdg/{scss/components → components/SearchBar}/_searchBar.scss +3 -3
  188. package/src/sdg/components/SearchInput/SearchInput.svelte +26 -4
  189. package/src/sdg/components/SearchInput/SearchInputWC.svelte +3 -1
  190. package/src/sdg/components/SearchInput/_searchInput.html +85 -0
  191. package/src/sdg/{scss/components → components/SearchInput}/_searchInput.scss +27 -2
  192. package/src/sdg/components/TextField/Doc/TextFieldDemo.svelte +143 -0
  193. package/src/sdg/components/TextField/Test/TextFieldEmbededTest.svelte +129 -0
  194. package/src/sdg/components/TextField/Test/textFieldEmbeddedTest.html +1 -0
  195. package/src/sdg/components/TextField/Test/textFieldTest.html +121 -0
  196. package/src/sdg/components/TextField/TextField.svelte +171 -0
  197. package/src/sdg/components/TextField/TextFieldWC.svelte +90 -0
  198. package/src/sdg/components/TextField/_textField.html +218 -0
  199. package/src/sdg/components/TextField/_textField.scss +110 -0
  200. package/src/sdg/components/TextField/textFieldUtils.js +19 -0
  201. package/src/sdg/components/ToTop/ToTop.svelte +2 -4
  202. package/src/sdg/components/ToTop/_toTop.html +45 -0
  203. package/src/sdg/{scss/components → components/ToTop}/_toTop.scss +2 -2
  204. package/src/sdg/components/ToggleSwitch/Test/ToggleSwitchEmbeddedTest.svelte +46 -0
  205. package/src/sdg/components/ToggleSwitch/Test/toggleSwitchEmbeddedTest.html +1 -0
  206. package/src/sdg/components/ToggleSwitch/Test/toggleSwitchTest.html +34 -0
  207. package/src/sdg/components/ToggleSwitch/ToggleSwitch.svelte +34 -0
  208. package/src/sdg/components/ToggleSwitch/ToggleSwitchWC.svelte +66 -0
  209. package/src/sdg/components/ToggleSwitch/_toggleSwitch.html +160 -0
  210. package/src/sdg/components/ToggleSwitch/_toggleSwitch.scss +97 -0
  211. package/src/sdg/components/utils.js +81 -1
  212. package/src/sdg/qc-sdg-test.js +6 -0
  213. package/src/sdg/scss/lib/_functions.scss +10 -2
  214. package/src/sdg/scss/lib/_mixins.scss +63 -26
  215. package/src/sdg/scss/qc-sdg.scss +1 -1
  216. package/src/sdg/scss/qc-sgd-no-grid.scss +30 -18
  217. package/src/sdg/scss/settings/_base.scss +5 -33
  218. package/src/sdg/scss/settings/_images.scss +30 -0
  219. package/src/sdg/scss/settings/_tokens.scss +23 -0
  220. package/src/sdg/scss/utilities/_display.scss +1 -1
  221. package/src/sdg/scss/utilities/_states.scss +13 -0
  222. package/tests/button.spec.ts +11 -0
  223. package/tests/choice-group.spec.ts +36 -0
  224. package/tests/dropdown-list.spec.ts +529 -0
  225. package/tests/icon.spec.ts +19 -0
  226. package/tests/pivHeader.spec.ts +22 -0
  227. package/tests/textfield.spec.ts +21 -0
  228. package/tests/toggle-switch.spec.ts +20 -0
  229. package/dist/img/arrow-up-white.svg +0 -3
  230. package/dist/img/chevron-blue.svg +0 -3
  231. package/dist/img/clipboard.svg +0 -8
  232. package/dist/img/error-white.svg +0 -1
  233. package/dist/img/error.svg +0 -1
  234. package/dist/img/exclamation-white.svg +0 -37
  235. package/dist/img/external-link-white.svg +0 -18
  236. package/dist/img/external-link.svg +0 -10
  237. package/dist/img/facebook.svg +0 -6
  238. package/dist/img/information-white.svg +0 -1
  239. package/dist/img/information.svg +0 -1
  240. package/dist/img/linkedin.svg +0 -5
  241. package/dist/img/loupe-piv-fonce.svg +0 -1
  242. package/dist/img/minus.svg +0 -6
  243. package/dist/img/qc-sprite.svg +0 -1
  244. package/dist/img/question-mark.svg +0 -47
  245. package/dist/img/success-white.svg +0 -1
  246. package/dist/img/success.svg +0 -1
  247. package/dist/img/twitter.svg +0 -8
  248. package/dist/img/warning.svg +0 -1
  249. package/dist/img/xclose-blue.svg +0 -6
  250. package/dist/img/xclose-white.svg +0 -1
  251. package/dist/img/youtube.svg +0 -3
  252. package/public/img/ampoule.svg +0 -1
  253. package/public/img/arrow-up-white.svg +0 -3
  254. package/public/img/chevron-blue.svg +0 -3
  255. package/public/img/chevron-white.svg +0 -3
  256. package/public/img/error-white.svg +0 -1
  257. package/public/img/error.svg +0 -1
  258. package/public/img/external-link-white.svg +0 -18
  259. package/public/img/facebook.svg +0 -6
  260. package/public/img/information-white.svg +0 -1
  261. package/public/img/information.svg +0 -1
  262. package/public/img/linkedin.svg +0 -5
  263. package/public/img/logo-piv-footer-mess.png +0 -0
  264. package/public/img/loupe-piv-droite.svg +0 -1
  265. package/public/img/loupe-piv-fonce.svg +0 -1
  266. package/public/img/note.svg +0 -1
  267. package/public/img/piv-bas-MCE-theme-clair.png +0 -0
  268. package/public/img/piv-bas-MCE-theme-sombre.png +0 -0
  269. package/public/img/piv-logo-pied-de-page.svg +0 -37
  270. package/public/img/plus.svg +0 -6
  271. package/public/img/qc-sprite.svg +0 -1
  272. package/public/img/quebec-logo.svg +0 -13
  273. package/public/img/success-white.svg +0 -1
  274. package/public/img/success.svg +0 -1
  275. package/public/img/twitter.svg +0 -8
  276. package/public/img/warning.svg +0 -1
  277. package/public/img/xclose-blue.svg +0 -6
  278. package/public/img/xclose-white.svg +0 -1
  279. package/public/img/youtube.svg +0 -3
  280. package/src/doc/scss/components/_button.scss +0 -61
  281. package/src/sdg/components/PivFooter/_defaultCopyright.svelte +0 -11
  282. package/src/sdg/components/PivHeader/_defaultLinks.svelte +0 -24
  283. package/src/sdg/components/QcCustomElement.js +0 -10
  284. package/src/sdg/scss/base/_fonts.scss +0 -29
  285. package/src/sdg/scss/base/_typography.scss +0 -94
  286. package/src/sdg/scss/components/_icons.scss +0 -169
  287. package/src/sdg/scss/components/_separator.scss +0 -5
  288. /package/dist/img/{loupe-piv-droite.svg → piv-search.svg} +0 -0
  289. /package/src/sdg/{scss/base → bases/colors}/_colors.scss +0 -0
  290. /package/src/sdg/{scss/base → bases/figures}/_figure.scss +0 -0
  291. /package/src/sdg/{scss → bases}/grid/_grid-lib.scss +0 -0
  292. /package/src/sdg/{scss → bases}/grid/_grid.scss +0 -0
  293. /package/src/sdg/{scss/base → bases/lists}/_lists.scss +0 -0
@@ -0,0 +1,221 @@
1
+ <h2 id="piv-header">Bandeau d’en-tête du PIV (qc-piv-header)</h2>
2
+
3
+ <h3>Exemples</h3>
4
+ <!-- TODO remplacer les aria-label des qc-doc-exemple par aria-labelby et cibler le titre -->
5
+ <qc-doc-exemple id="pivEnteteExempleLiens"
6
+ caption="Exemple de bandeau d’en-tête PIV de base"
7
+ >
8
+ <qc-piv-header alt-logo="Accédez à Québec.ca"
9
+ join-us-url="#join-us"
10
+ alt-language-url="#fakeEnglish"
11
+ >
12
+ </qc-piv-header>
13
+ </qc-doc-exemple>
14
+ <!-- <qc-code target-id="pivEnteteExempleLiens"></qc-code>-->
15
+
16
+ <qc-doc-exemple id="pivEnteteExempleRecherche"
17
+ caption="Exemple de personnalisation des liens du bandeau d’en-tête PIV"
18
+ >
19
+ <qc-piv-header
20
+ title-text="Titre du site ou du service"
21
+ title-url="https://www.quebec.ca/"
22
+ alt-logo="Accédez à Québec.ca"
23
+ >
24
+ <nav slot="links"
25
+ aria-label="Navigation PIV">
26
+ <ul>
27
+ <li><a href="#fakeEnglish">English</a>
28
+ </li>
29
+ <li><a href="javascript:;">Nous joindre</a>
30
+ </li>
31
+ </ul>
32
+ </nav>
33
+ </qc-piv-header>
34
+ </qc-doc-exemple>
35
+ <!-- <qc-code target-id="pivEnteteExempleRecherche"></qc-code>-->
36
+
37
+ <qc-doc-exemple caption="Exemple de bandeau d’en-tête PIV avec recherche personnalisée"
38
+
39
+ >
40
+ <div id="pivEnteteExempleRecherchePersonnalisee">
41
+ <qc-piv-header title-text="Titre du site ou du service"
42
+ alt-logo="Accédez à Québec.ca"
43
+ enable-search="true"
44
+ show-search="true"
45
+ >
46
+ <ul slot="links">
47
+ <li><a href="#fakeEnglish">English</a>
48
+ </li>
49
+ <li><a href="javascript:;">Nous joindre</a>
50
+ </li>
51
+ </ul>
52
+
53
+ <form slot="search-zone"
54
+ method="get"
55
+ action="https://www.google.ca/search"
56
+ >
57
+ <qc-search-bar name="q" piv-background></qc-search-bar>
58
+ </form>
59
+ </qc-piv-header>
60
+ </div>
61
+ </qc-doc-exemple>
62
+
63
+
64
+ <h3>Documentation technique</h3>
65
+ <h4>Attributs</h4>
66
+ <div class="table-overflow">
67
+ <table class="qc-table qc-striped component-attributes-description">
68
+ <thead>
69
+ <tr>
70
+ <th>Nom</th>
71
+ <th>Valeur attendue</th>
72
+ <th>Valeur par défaut</th>
73
+ <th>Description</th>
74
+ </tr>
75
+ </thead>
76
+ <tbody>
77
+ <tr>
78
+ <td>title-text</td>
79
+ <td>Texte</td>
80
+ <td>Chaîne vide</td>
81
+ <td>Titre au milieu du bandeau (dans un hyperlien)</td>
82
+ </tr>
83
+ <tr>
84
+ <td>title-url</td>
85
+
86
+ <td>Adresse</td>
87
+ <td>/</td>
88
+ <td>URL de l’hyperlien du titre</td>
89
+ </tr>
90
+ <tr>
91
+ <td>logo-url</td>
92
+ <td>Adresse</td>
93
+ <td>/</td>
94
+ <td>Adresse du lien du logo</td>
95
+ </tr>
96
+ <tr>
97
+ <td>logo-src</td>
98
+ <td>Adresse</td>
99
+ <td>Adresse du logo inclus dans la trousse</td>
100
+ <td>Adresse du logo</td>
101
+ </tr>
102
+ <tr>
103
+ <td>logo-alt</td>
104
+ <td>texte</td>
105
+ <td>Logo du gouvernement du Québec/Logo of government of Québec</td>
106
+ <td>Attribut « alt » de la balise img du logo</td>
107
+ </tr>
108
+ <tr>
109
+ <td>alt-language-text</td>
110
+ <td>Texte</td>
111
+ <td>English/Français</td>
112
+ <td>Texte du lien de changement de langue</td>
113
+ </tr>
114
+ <tr>
115
+ <td>alt-language-url</td>
116
+ <td>Adresse</td>
117
+ <td>vide</td>
118
+ <td>L’URL de l’autre langue. Si vide, le lien n'apparaît pas.</td>
119
+ </tr>
120
+ <tr>
121
+ <td>join-us-text</td>
122
+ <td>Texte</td>
123
+ <td>Nous joindre/Contact us</td>
124
+ <td>Texte du lien « Nous joindre »</td>
125
+ </tr>
126
+ <tr>
127
+ <td>join-us-url</td>
128
+ <td>Adresse</td>
129
+ <td>Vide</td>
130
+ <td>Adresse du lien « Nous joindre ». Si vide, le lien n'apparaît pas.</td>
131
+ </tr>
132
+ <tr>
133
+ <td>go-to-content</td>
134
+ <td>"true" ou "false"</td>
135
+ <td>"true"</td>
136
+ <td>Afficher ou non le lien pour aller directement au contenu.</td>
137
+ </tr>
138
+ <tr>
139
+ <td>go-to-content-text</td>
140
+ <td>Texte</td>
141
+ <td>Passer au contenu/Skip to content</td>
142
+ <td>Texte du lien pour passer directement au contenu.</td>
143
+ </tr>
144
+ <tr>
145
+ <td>go-to-content-anchor</td>
146
+ <td>id du 1<sup>er</sup> élément de contenu</td>
147
+ <td>"main"</td>
148
+ <td>Cible du lien pour passer directement au contenu.</td>
149
+ </tr>
150
+ <tr>
151
+ <td>full-width</td>
152
+ <td>"true" ou "false"</td>
153
+ <td>"false"</td>
154
+ <td>Affiche le bandeau en pleine largeur (classe de conteneur « qc‑container‑fluid »).</td>
155
+ </tr>
156
+ <tr>
157
+ <td>enable-search</td>
158
+ <td>"true" ou "false"</td>
159
+ <td>"false"</td>
160
+ <td>
161
+ Active la recherche dans le bandeau PIV :
162
+ <ul>
163
+ <li style="margin-bottom: 0">le bouton de recherche en forme de loupe est alors
164
+ affiché ;
165
+ </li>
166
+ <li>au clic, il affiche le formulaire de recherche.</li>
167
+ </ul>
168
+ </td>
169
+ </tr>
170
+ <tr>
171
+ <td>show-search</td>
172
+ <td>"true" ou "false"</td>
173
+ <td>"false"</td>
174
+ <td>Affiche le formulaire de recherche (normalement caché tant que le bouton de recherche n'a
175
+ pas été pressé).
176
+ </td>
177
+ </tr>
178
+
179
+ <tr>
180
+ <td>display-search-text</td>
181
+ <td>Texte</td>
182
+ <td>Cliquer pour faire une recherche / Click to search</td>
183
+ <td>Texte du bouton de recherche (en forme de loupe) pour les lecteurs d’écran pour afficher la
184
+ barre de recherche.
185
+ </td>
186
+ </tr>
187
+ <tr>
188
+ <td>hide-search-text</td>
189
+ <td>Texte</td>
190
+ <td>Masquer la barre de recherche / Hide search bar</td>
191
+ <td>Texte du bouton de recherche (en forme de loupe) pour les lecteurs d’écran pour masquer la
192
+ barre de recherche.
193
+ </td>
194
+ </tr>
195
+ </tbody>
196
+ </table>
197
+ </div>
198
+ <h4>Zones d’ajout de contenu HTML</h4>
199
+
200
+ <p>Ci-dessous, les zones d’ajout de contenu HTML (balise &lt;slot&gt;) délimitées en pointillé.</p>
201
+ <qc-doc-exemple id="qc-piv-header-slots"
202
+ caption="Présentation des zones d’ajout de contenu dans le PIV"
203
+ hide-code
204
+ >
205
+ <qc-piv-header
206
+ style="margin-bottom: var(--qc-spacer-content-block-mb);"
207
+ enable-search="true"
208
+ show-search="true">
209
+ <div slot="search-zone"
210
+ style="border:2px dashed;padding: var(--qc-spacer-xs);">
211
+ slot="search-zone"
212
+ </div>
213
+ <div slot="links"
214
+ style="border:2px dashed;padding: var(--qc-spacer-xs);"
215
+ >
216
+ slot="links"
217
+ </div>
218
+ </qc-piv-header>
219
+ </qc-doc-exemple>
220
+
221
+ <!-- <qc-code target-id="qc-piv-header-slots"></qc-code>-->
@@ -37,71 +37,42 @@ qc-piv-header {
37
37
 
38
38
  .qc-piv-header {
39
39
  color: map.get($colors, white);
40
+ container-type: normal;
41
+ container-name: piv-header;
40
42
  .go-to-content {
41
43
  position: relative;
42
44
  }
43
45
  .piv-top {
44
46
  display: flex;
45
- flex-wrap: wrap;
46
- //justify-content: space-between;
47
47
  align-items: start;
48
- > * {
49
- min-height: rem(72);
50
- }
51
- .signature-group {
48
+ min-width: rem(72);
49
+ .logo {
52
50
  display: flex;
53
- flex-grow: 1;
54
- flex-wrap: wrap;
55
- align-items: start;
56
- margin-right: auto;
57
- * {
51
+ flex-basis: rem(256);
52
+ margin-right: 0;
53
+ [role=img] {
54
+ background-image: var(--logo-src);
55
+ background-repeat: no-repeat;
56
+ background-size: 100%;
57
+ background-position: center;
58
+ margin-right: 16px;
59
+ min-width: 150px;
60
+ width: 100%;
61
+ max-width: rem(200);
58
62
  min-height: rem(72);
59
63
  }
60
- .logo {
61
- display: flex;
62
- flex-basis: rem(256);
63
- //margin-right: rem(64);
64
- [role=img] {
65
- background-image: var(--logo-src);
66
- background-repeat: no-repeat;
67
- background-size: 100%;
68
- background-position: center;
69
- margin-right: 16px;
70
- min-width: 150px;
71
- //object-fit: fill;
72
- width: 100%;
73
- max-width: rem(200);
74
- min-height: rem(72);
75
- }
76
- }
77
- .title {
78
- display: flex;
79
- flex-grow: 1;
80
- align-items: center;
81
- @include content-font(100);
82
- flex-basis: fit-content;
83
- //margin-top: auto;
84
- //margin-bottom: auto;
85
- //margin-right: auto;
86
- //padding-right: 40px;
87
- > * {
88
- //display: -webkit-box;
89
- //-webkit-line-clamp: 2;
90
- //-webkit-box-orient: vertical;
91
- //overflow: hidden;
92
- //max-height: rem(72);
93
- }
94
- }
95
64
  }
96
-
97
-
98
-
99
-
65
+ .title {
66
+ align-items: center;
67
+ align-self: center;
68
+ }
100
69
  .right-section {
101
70
  min-width: fit-content;
102
71
  display: flex;
72
+ align-self: center;
103
73
  align-items: center;
104
74
  flex-basis: fit-content;
75
+ margin-left: auto;
105
76
  .links ul {
106
77
  @extend %piv-links;
107
78
  }
@@ -109,24 +80,27 @@ qc-piv-header {
109
80
  @include media-mobile() {
110
81
  min-width: auto;
111
82
  }
112
- }
113
83
 
114
- .qc-search {
115
- background-image: getImageUrl(loupe-piv-droite);
116
- background-repeat: no-repeat;
117
- min-width: rem(24);
118
- height: rem(24);
119
- margin-right: token-value(spacer md);;
120
- @include media-mobile() {
121
- margin-right: token-value(spacer sm);
122
- }
84
+ .qc-search {
85
+ background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1Mi42NyA1Mi4yMSI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNmZmY7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5GaWNoaWVyIDE8L3RpdGxlPjxnIGlkPSJDYWxxdWVfMiIgZGF0YS1uYW1lPSJDYWxxdWUgMiI+PGcgaWQ9IkNhbHF1ZV8xLTIiIGRhdGEtbmFtZT0iQ2FscXVlIDEiPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTUyLjY3LDQ3LjgxbC0xNS0xNWEyMC43NywyMC43NywwLDEsMC00LjMyLDQuNDZMNDguMjgsNTIuMjFaTTIwLjc4LDM1LjM2QTE0LjQxLDE0LjQxLDAsMSwxLDM1LjE5LDIxaDBBMTQuNDMsMTQuNDMsMCwwLDEsMjAuNzgsMzUuMzZaIi8+PC9nPjwvZz48L3N2Zz4=');
86
+ background-repeat: no-repeat;
87
+ min-width: rem(24);
88
+ height: rem(24);
89
+ margin-right: token-value(spacer md);;
90
+ @include media-mobile() {
91
+ margin-right: token-value(spacer sm);
92
+ }
123
93
 
124
- span {
125
- @include sr-only();
94
+ span {
95
+ @include sr-only();
96
+ }
126
97
  }
127
98
  }
128
- }
99
+ & + .title {
100
+ display: none;
101
+ }
129
102
 
103
+ }
130
104
  .piv-bottom {
131
105
  .search-zone {
132
106
  padding-bottom: token-value(spacer md);
@@ -182,9 +156,9 @@ qc-piv-header,
182
156
  @include media-mobile(){
183
157
  .qc-piv-header {
184
158
  .piv-top {
185
- flex-wrap: wrap;
159
+ //flex-wrap: wrap;
186
160
  .logo {
187
- flex-shrink: 1;
161
+ flex: 1 1 auto;
188
162
  margin-right: auto;
189
163
  min-width: 0;
190
164
  img {
@@ -194,27 +168,31 @@ qc-piv-header,
194
168
  }
195
169
 
196
170
  .title {
197
- min-width: 100%;
198
- padding: 0;
199
- //height: auto;
200
- height: fit-content;
201
- max-height: fit-content;
202
- order: 2;
203
- margin-left: 0;
204
- margin-right: 0;
205
- display: flex;
206
- align-items: center;
171
+ display: none;
207
172
  }
208
-
209
173
  .right-section {
174
+ flex: 0 1 fit-content;
210
175
  min-width: 0;
211
176
  margin-right: 0;
212
- margin-left: 0;
177
+ margin-left: auto;
178
+ }
179
+
180
+ & + .title {
181
+ display: block;
182
+ padding: 0 0 rem(16)
213
183
  }
214
184
  }
185
+
186
+ }
187
+ }
188
+ @media (max-width: 400px) {
189
+ .piv-top {
190
+ flex-wrap: wrap;
215
191
  }
216
192
  }
217
193
 
218
194
 
219
195
 
220
196
 
197
+
198
+
@@ -0,0 +1,24 @@
1
+ <h2 id="radio-button">Boutons radio</h2>
2
+ <p>Les boutons radio sont aussi disponibles au format de <a href="#selection-button">boutons de sélection</a>.</p>
3
+ <h3>Exemples</h3>
4
+
5
+
6
+ <qc-radio-group id="exemple-radio-md"
7
+ legend="Choisissez une option :"
8
+ name="ex-md"
9
+ selection-button
10
+ >
11
+ <label>
12
+ <input type="radio"
13
+ name="ma-radio"
14
+ value="option1">
15
+ <span>Option 1</span>
16
+ </label>
17
+ <label>
18
+ <input type="radio"
19
+ name="ma-radio"
20
+ value="option2">
21
+ <span>Option 2</span>
22
+ </label>
23
+ </qc-radio-group>
24
+
@@ -0,0 +1,29 @@
1
+ @use "qc-sdg-lib" as *;
2
+ @use "../ChoiceGroup/choiceGroup" as *;
3
+
4
+ input[type=radio].qc-choicefield {
5
+ border-radius: 100%;
6
+
7
+ &::before {
8
+ border-radius: 100%;
9
+ background-color: token-value(color, blue, regular);
10
+ }
11
+
12
+ &:checked {
13
+ &::before {
14
+ opacity: 1;
15
+ }
16
+
17
+ &::before {
18
+ width: rem(14);
19
+ height: rem(14);
20
+ }
21
+ &.qc-compact {
22
+ &::before {
23
+ width: rem(10);
24
+ height: rem(10);
25
+ }
26
+ }
27
+
28
+ }
29
+ }
@@ -22,45 +22,25 @@
22
22
  "aria-label": lang === "fr" ? "Lancer la recherche" : "Submit search"
23
23
  }
24
24
  };
25
-
26
- let inputProps = $state({});
27
- let submitProps = $state({});
28
-
29
-
30
- $effect(() => {
31
- const [inputAttrs, submitAttrs] = computeFieldsAttributes(rest);
32
- inputProps = {
33
- ...inputAttrs,
25
+ let inputProps = $derived({
26
+ ...defaultsAttributes.input,
27
+ ...Utils.computeFieldsAttributes("input", rest),
34
28
  name,
35
- };
36
- submitProps = submitAttrs;
37
- });
38
-
39
- /**
40
- * @param {{[p: string]: T}} restProps
41
- */
42
- function computeFieldsAttributes(restProps) {
43
- return ["input","submit"].map(control => {
44
- const prefix = `${control}-`;
45
- return {
46
- ...defaultsAttributes[control],
47
- ...Object.fromEntries(
48
- Object.entries(restProps)
49
- .map(([k,v]) => k.startsWith(prefix) ? [k.replace(prefix, ''),v] : null)
50
- .filter(Boolean) // élimine les éléments null
51
- )
52
- };
29
+ }),
30
+ submitProps = $derived({
31
+ ...defaultsAttributes.input,
32
+ ...Utils.computeFieldsAttributes("submit", rest)
53
33
  });
54
- }
55
-
56
-
34
+ ;
57
35
  </script>
36
+
58
37
  <div class="qc-search-bar" class:piv-background={pivBackground}>
59
- <SearchInput bind:value {...inputProps}/>
38
+ <SearchInput bind:value
39
+ {...inputProps}/>
60
40
  <IconButton
61
41
  type="submit"
62
42
  iconColor={pivBackground ? 'blue-piv' : 'background'}
63
- icon="loupe-piv-fine"
43
+ icon="search-thin"
64
44
  iconSize="md"
65
45
  {...submitProps}
66
46
  />
@@ -0,0 +1,125 @@
1
+ <h2 id="search-bar">Barre de recherche</h2>
2
+ <h3>Exemples</h3>
3
+ <qc-doc-exemple caption="Exemple de barre de recherche">
4
+ <form action="http://www.quebec.ca/resultats-de-recherche">
5
+ <qc-search-bar name="tx_solr[q]"></qc-search-bar>
6
+ </form>
7
+ </qc-doc-exemple>
8
+
9
+ <qc-doc-exemple caption="Exemple de barre de recherche sur fond blanc et bleu PIV">
10
+
11
+ <qc-search-bar></qc-search-bar>
12
+
13
+ <div style="margin: var(--qc-spacer-content-block-mb) 0 0;
14
+ padding: var(--qc-spacer-md);
15
+ background-color: var(--qc-color-blue-piv);">
16
+ <qc-search-bar piv-background></qc-search-bar>
17
+ </div>
18
+
19
+ </qc-doc-exemple>
20
+
21
+ <h3>Saisie semi-automatique (<i>autocomplete</i>)</h3>
22
+
23
+ <p>La barre de recherche n’offre pas encore la possibilité d’ajouter des suggestions à la saisie de texte.
24
+ Cependant il vous est possible d’utiliser votre propre bibliothèque javascript. Voici un exemple avec
25
+ jQuery UI.</p>
26
+
27
+ <qc-doc-exemple caption="Exemple de barre de recherche avec saisie semi-automatique basée sur jQuery UI">
28
+
29
+ <script src="https://code.jquery.com/jquery-3.7.1.js"></script>
30
+ <script src="https://code.jquery.com/ui/1.14.1/jquery-ui.js"></script>
31
+
32
+ <qc-search-bar class="autocomplete-search-bar"
33
+ input-placeholder="Tapez 'aaa' pour faire apparaître de nombreuses suggestions…"
34
+ style="margin-bottom: var(--qc-spacer-content-block-mb)"
35
+ ></qc-search-bar>
36
+
37
+ <script>
38
+ $(function () {
39
+ $.widget("ui.autocomplete", $.ui.autocomplete, {
40
+ _resizeMenu: function () {
41
+ // pour donner au panneau des suggestions la largeur de la barre de recherche
42
+ let component = this.element.closest("qc-search-bar");
43
+ this.menu.element.outerWidth(component.outerWidth());
44
+ },
45
+ });
46
+ // personnalisation des messages jquery ui pour le lecteur d’écran en français
47
+ $.extend($.ui.autocomplete.prototype.options.messages, {
48
+ noResults: "Aucun résultat trouvé.",
49
+ results: function (count) {
50
+ let s = count > 1 ? "s" : ''
51
+ return `${count} résultat${s} disponible${s}, utilisez les flèches directionnelles haut et bas pour vous déplacer dans la liste.`;
52
+ }
53
+ });
54
+
55
+ $(".autocomplete-search-bar input[type=search]").autocomplete({
56
+ source: [...Array(1000)].map((v, k) => "aaaa - " + k)
57
+ });
58
+ })
59
+
60
+
61
+ </script>
62
+
63
+ </qc-doc-exemple>
64
+
65
+
66
+ <h3>Attributs</h3>
67
+ <div class="table-overflow">
68
+ <table class="qc-table qc-striped component-attributes-description">
69
+ <thead>
70
+ <tr>
71
+ <th>Nom</th>
72
+ <th>Valeur attendue</th>
73
+ <th>Valeur par défaut</th>
74
+ <th>Description</th>
75
+ </tr>
76
+ </thead>
77
+ <tbody>
78
+ <tr>
79
+ <td>name</td>
80
+ <td>Texte</td>
81
+ <td>q</td>
82
+ <td>Nom du champ dans le formulaire</td>
83
+ </tr>
84
+ <tr>
85
+ <td>value</td>
86
+ <td>Texte</td>
87
+ <td>Chaîne vide</td>
88
+ <td>Valeur du champ dans le formulaire</td>
89
+ </tr>
90
+ <tr>
91
+ <td>input-*</td>
92
+ <td>na</td>
93
+ <td>na</td>
94
+ <td>Tout attribut commençant par <code>input-</code> sera ajouté au champ texte du composant.
95
+ </td>
96
+ </tr>
97
+ <tr>
98
+ <td>submit-aria-label</td>
99
+ <td>Texte</td>
100
+ <td>Lancer la recherche/Submit search</td>
101
+ <td>Valeur de l’attribut aria-label du bouton</td>
102
+ </tr>
103
+ <tr>
104
+ <td>submit-*</td>
105
+ <td>na</td>
106
+ <td>na</td>
107
+ <td>Tout attribut commençant par <code>submit-</code> sera ajouté au bouton du composant. Utile
108
+ par exemple pour lui donner un nom et une valeur.
109
+ </td>
110
+ </tr>
111
+ <tr>
112
+ <td>piv-background</td>
113
+ <td>Aucune (simplement ajouter l’attribut)</td>
114
+ <td>False</td>
115
+ <td>Indique que la barre de recherche est sur fond bleu PIV</td>
116
+ </tr>
117
+ </tbody>
118
+ </table>
119
+ </div>
120
+
121
+ <h3>Zone d’ajout de contenu HTML</h3>
122
+ <p>Aucune zone d’ajout de contenu n'est définie pour ce composant.</p>
123
+
124
+ <h3>Précision concernant le DOM d’ombre (Shadow DOM)</h3>
125
+ <p>Ce composant ne contient pas de DOM d’ombre.</p>
@@ -1,5 +1,5 @@
1
- @use "qc-sdg-lib" as *;
2
- @use "searchInput" as *;
1
+ @use "../../scss/qc-sdg-lib" as *;
2
+ @use "../SearchInput/searchInput" as *;
3
3
 
4
4
  qc-search-bar {
5
5
  position: relative;
@@ -7,7 +7,7 @@ qc-search-bar {
7
7
  }
8
8
  .qc-search-bar {
9
9
  @extend %qc-search-wrapper;
10
- max-width: rem(640);
10
+ max-width: token-value(size search-bar max-width);
11
11
  width: 100%;
12
12
  border: 0;
13
13
  &:has(input:focus) {