@spw-ds/spw-stencil-library 1.3.0 → 1.3.2

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 (782) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/spw-accordion.spw-accordion-content.spw-accordion-item.spw-accordion-title.entry.cjs.js.map +1 -1
  3. package/dist/cjs/spw-accordion_4.cjs.entry.js +28 -5
  4. package/dist/cjs/spw-accordion_4.cjs.entry.js.map +1 -1
  5. package/dist/cjs/spw-breadcrumb-item.cjs.entry.js +5 -2
  6. package/dist/cjs/spw-breadcrumb-item.cjs.entry.js.map +1 -1
  7. package/dist/cjs/spw-breadcrumb-item.entry.cjs.js.map +1 -1
  8. package/dist/cjs/spw-breadcrumb.cjs.entry.js +2 -2
  9. package/dist/cjs/spw-breadcrumb.cjs.entry.js.map +1 -1
  10. package/dist/cjs/spw-breadcrumb.entry.cjs.js.map +1 -1
  11. package/dist/cjs/spw-button_2.cjs.entry.js +2 -2
  12. package/dist/cjs/spw-card-content.cjs.entry.js +1 -1
  13. package/dist/cjs/spw-card-excerpt.cjs.entry.js +1 -1
  14. package/dist/cjs/spw-card-image.cjs.entry.js +1 -1
  15. package/dist/cjs/spw-card-subtag-item.cjs.entry.js +1 -1
  16. package/dist/cjs/spw-card-subtags.cjs.entry.js +1 -1
  17. package/dist/cjs/spw-card-title.cjs.entry.js +1 -1
  18. package/dist/cjs/spw-card.cjs.entry.js +1 -1
  19. package/dist/cjs/spw-checkbox.cjs.entry.js +1 -1
  20. package/dist/cjs/spw-custom-select.cjs.entry.js +3 -3
  21. package/dist/cjs/spw-date-picker.cjs.entry.js +5 -3
  22. package/dist/cjs/spw-date-picker.cjs.entry.js.map +1 -1
  23. package/dist/cjs/spw-date-picker.entry.cjs.js.map +1 -1
  24. package/dist/cjs/spw-dropdown-container.cjs.entry.js +1 -1
  25. package/dist/cjs/spw-dropdown-item.cjs.entry.js +1 -1
  26. package/dist/cjs/spw-dropdown.cjs.entry.js +1 -1
  27. package/dist/cjs/spw-field-label_6.cjs.entry.js +6 -6
  28. package/dist/cjs/spw-field-message.cjs.entry.js +1 -1
  29. package/dist/cjs/spw-file-upload.cjs.entry.js +2 -2
  30. package/dist/cjs/spw-footer-bottom.cjs.entry.js +1 -1
  31. package/dist/cjs/spw-footer-content-col.cjs.entry.js +1 -1
  32. package/dist/cjs/spw-footer-content.cjs.entry.js +1 -1
  33. package/dist/cjs/spw-footer-link.cjs.entry.js +1 -1
  34. package/dist/cjs/spw-footer.cjs.entry.js +1 -1
  35. package/dist/cjs/spw-grid-item.cjs.entry.js +2 -2
  36. package/dist/cjs/spw-grid.cjs.entry.js +2 -2
  37. package/dist/cjs/spw-header-lang-item.cjs.entry.js +1 -1
  38. package/dist/cjs/spw-header-lang.cjs.entry.js +1 -1
  39. package/dist/cjs/spw-header-navigation-dropdown.cjs.entry.js +1 -1
  40. package/dist/cjs/spw-header-navigation-item.cjs.entry.js +1 -1
  41. package/dist/cjs/spw-header-navigation.cjs.entry.js +1 -1
  42. package/dist/cjs/spw-header-persona-item.cjs.entry.js +1 -1
  43. package/dist/cjs/spw-header-persona.cjs.entry.js +1 -1
  44. package/dist/cjs/spw-header.cjs.entry.js +1 -1
  45. package/dist/cjs/spw-hero.cjs.entry.js +10 -3
  46. package/dist/cjs/spw-hero.cjs.entry.js.map +1 -1
  47. package/dist/cjs/spw-hero.entry.cjs.js.map +1 -1
  48. package/dist/cjs/spw-illustration.cjs.entry.js +488 -1
  49. package/dist/cjs/spw-illustration.cjs.entry.js.map +1 -1
  50. package/dist/cjs/spw-illustration.entry.cjs.js.map +1 -1
  51. package/dist/cjs/spw-iodda.cjs.entry.js +1 -1
  52. package/dist/cjs/spw-list-description.cjs.entry.js +1 -1
  53. package/dist/cjs/spw-list-item.cjs.entry.js +1 -1
  54. package/dist/cjs/spw-list-title.cjs.entry.js +1 -1
  55. package/dist/cjs/spw-list.cjs.entry.js +1 -1
  56. package/dist/cjs/spw-modal.cjs.entry.js +1 -1
  57. package/dist/cjs/spw-mosaic-item.cjs.entry.js +1 -1
  58. package/dist/cjs/spw-mosaic.cjs.entry.js +1 -1
  59. package/dist/cjs/spw-pagination.cjs.entry.js +10 -10
  60. package/dist/cjs/spw-pagination.cjs.entry.js.map +1 -1
  61. package/dist/cjs/spw-pagination.entry.cjs.js.map +1 -1
  62. package/dist/cjs/spw-radio.cjs.entry.js +1 -1
  63. package/dist/cjs/spw-search-field.cjs.entry.js +2 -2
  64. package/dist/cjs/spw-sidebar-navigation-dropdown.cjs.entry.js +1 -1
  65. package/dist/cjs/spw-sidebar-navigation-item.cjs.entry.js +3 -3
  66. package/dist/cjs/spw-sidebar-navigation-separator.cjs.entry.js +1 -1
  67. package/dist/cjs/spw-sidebar.cjs.entry.js +1 -1
  68. package/dist/cjs/spw-skeleton.cjs.entry.js +1 -1
  69. package/dist/cjs/spw-slider-item.cjs.entry.js +1 -1
  70. package/dist/cjs/spw-slider.cjs.entry.js +11 -4
  71. package/dist/cjs/spw-slider.cjs.entry.js.map +1 -1
  72. package/dist/cjs/spw-slider.entry.cjs.js.map +1 -1
  73. package/dist/cjs/spw-socials.cjs.entry.js +1 -1
  74. package/dist/cjs/spw-stencil-library.cjs.js +1 -1
  75. package/dist/cjs/spw-table-body.cjs.entry.js +1 -1
  76. package/dist/cjs/spw-table-cell.cjs.entry.js +1 -1
  77. package/dist/cjs/spw-table-container.cjs.entry.js +20 -0
  78. package/dist/cjs/spw-table-container.cjs.entry.js.map +1 -0
  79. package/dist/cjs/spw-table-container.entry.cjs.js.map +1 -0
  80. package/dist/cjs/spw-table-footer.cjs.entry.js +2 -2
  81. package/dist/cjs/spw-table-footer.cjs.entry.js.map +1 -1
  82. package/dist/cjs/spw-table-footer.entry.cjs.js.map +1 -1
  83. package/dist/cjs/spw-table-head.cjs.entry.js +1 -1
  84. package/dist/cjs/spw-table-header.cjs.entry.js +3 -3
  85. package/dist/cjs/spw-table-header.cjs.entry.js.map +1 -1
  86. package/dist/cjs/spw-table-header.entry.cjs.js.map +1 -1
  87. package/dist/cjs/spw-table-row.cjs.entry.js +1 -1
  88. package/dist/cjs/spw-table-sidebar.cjs.entry.js +142 -0
  89. package/dist/cjs/spw-table-sidebar.cjs.entry.js.map +1 -0
  90. package/dist/cjs/spw-table-sidebar.entry.cjs.js.map +1 -0
  91. package/dist/cjs/spw-table.cjs.entry.js +34 -17
  92. package/dist/cjs/spw-table.cjs.entry.js.map +1 -1
  93. package/dist/cjs/spw-table.entry.cjs.js.map +1 -1
  94. package/dist/cjs/spw-tabs-navigation-item.cjs.entry.js +1 -1
  95. package/dist/cjs/spw-tabs-navigation.cjs.entry.js +1 -1
  96. package/dist/cjs/spw-tabs.cjs.entry.js +1 -1
  97. package/dist/cjs/spw-tag.cjs.entry.js +1 -1
  98. package/dist/cjs/spw-text-field.cjs.entry.js +1 -1
  99. package/dist/cjs/spw-textarea.cjs.entry.js +2 -2
  100. package/dist/cjs/spw-textarea.cjs.entry.js.map +1 -1
  101. package/dist/cjs/spw-textarea.entry.cjs.js.map +1 -1
  102. package/dist/cjs/spw-tile-description.cjs.entry.js +1 -1
  103. package/dist/cjs/spw-tile-title.cjs.entry.js +1 -1
  104. package/dist/cjs/spw-tile.cjs.entry.js +1 -1
  105. package/dist/cjs/spw-toc-container.cjs.entry.js +73 -0
  106. package/dist/cjs/spw-toc-container.cjs.entry.js.map +1 -0
  107. package/dist/cjs/spw-toc-container.entry.cjs.js.map +1 -0
  108. package/dist/cjs/spw-toc-navigation.cjs.entry.js +283 -0
  109. package/dist/cjs/spw-toc-navigation.cjs.entry.js.map +1 -0
  110. package/dist/cjs/spw-toc-navigation.entry.cjs.js.map +1 -0
  111. package/dist/cjs/spw-toc.cjs.entry.js +20 -0
  112. package/dist/cjs/spw-toc.cjs.entry.js.map +1 -0
  113. package/dist/cjs/spw-toc.entry.cjs.js.map +1 -0
  114. package/dist/cjs/spw-tooltip.cjs.entry.js +1 -1
  115. package/dist/cjs/spw-topbar.cjs.entry.js +1 -1
  116. package/dist/cjs/spw-wizard-item.cjs.entry.js +1 -1
  117. package/dist/cjs/spw-wizard.cjs.entry.js +1 -1
  118. package/dist/collection/collection-manifest.json +5 -0
  119. package/dist/collection/components/spw-accordion/spw-accordion-content/spw-accordion-content.js +1 -1
  120. package/dist/collection/components/spw-accordion/spw-accordion-item/spw-accordion-item.css +1 -1
  121. package/dist/collection/components/spw-accordion/spw-accordion-item/spw-accordion-item.js +1 -1
  122. package/dist/collection/components/spw-accordion/spw-accordion-title/spw-accordion-title.js +1 -1
  123. package/dist/collection/components/spw-accordion/spw-accordion.js +53 -1
  124. package/dist/collection/components/spw-accordion/spw-accordion.js.map +1 -1
  125. package/dist/collection/components/spw-breadcrumb/spw-breadcrumb-item/spw-breadcrumb-item.css +1 -1
  126. package/dist/collection/components/spw-breadcrumb/spw-breadcrumb-item/spw-breadcrumb-item.js +4 -1
  127. package/dist/collection/components/spw-breadcrumb/spw-breadcrumb-item/spw-breadcrumb-item.js.map +1 -1
  128. package/dist/collection/components/spw-breadcrumb/spw-breadcrumb.css +1 -1
  129. package/dist/collection/components/spw-breadcrumb/spw-breadcrumb.js +1 -1
  130. package/dist/collection/components/spw-button/spw-button.js +1 -1
  131. package/dist/collection/components/spw-card/spw-card-content/spw-card-content.js +1 -1
  132. package/dist/collection/components/spw-card/spw-card-excerpt/spw-card-excerpt.js +1 -1
  133. package/dist/collection/components/spw-card/spw-card-image/spw-card-image.js +1 -1
  134. package/dist/collection/components/spw-card/spw-card-subtag-item/spw-card-subtag-item.js +1 -1
  135. package/dist/collection/components/spw-card/spw-card-subtags/spw-card-subtags.js +1 -1
  136. package/dist/collection/components/spw-card/spw-card-title/spw-card-title.js +1 -1
  137. package/dist/collection/components/spw-card/spw-card.js +1 -1
  138. package/dist/collection/components/spw-checkbox/spw-checkbox.js +1 -1
  139. package/dist/collection/components/spw-custom-select/spw-custom-select.js +3 -3
  140. package/dist/collection/components/spw-date-picker/spw-date-picker.js +5 -3
  141. package/dist/collection/components/spw-date-picker/spw-date-picker.js.map +1 -1
  142. package/dist/collection/components/spw-dropdown/spw-dropdown-container/spw-dropdown-container.js +1 -1
  143. package/dist/collection/components/spw-dropdown/spw-dropdown-item/spw-dropdown-item.js +1 -1
  144. package/dist/collection/components/spw-dropdown/spw-dropdown.js +1 -1
  145. package/dist/collection/components/spw-field-label/spw-field-label.js +1 -1
  146. package/dist/collection/components/spw-field-message/spw-field-message.js +1 -1
  147. package/dist/collection/components/spw-file-upload/spw-file-upload.js +2 -2
  148. package/dist/collection/components/spw-footer/spw-footer-bottom/spw-footer-bottom.js +1 -1
  149. package/dist/collection/components/spw-footer/spw-footer-content/spw-footer-content.js +1 -1
  150. package/dist/collection/components/spw-footer/spw-footer-content-col/spw-footer-content-col.js +1 -1
  151. package/dist/collection/components/spw-footer/spw-footer-link/spw-footer-link.js +1 -1
  152. package/dist/collection/components/spw-footer/spw-footer.js +1 -1
  153. package/dist/collection/components/spw-grid/spw-grid-item/spw-grid-item.js +2 -2
  154. package/dist/collection/components/spw-grid/spw-grid.js +2 -2
  155. package/dist/collection/components/spw-group/spw-group.js +1 -1
  156. package/dist/collection/components/spw-header/spw-header-lang/spw-header-lang.js +1 -1
  157. package/dist/collection/components/spw-header/spw-header-lang-item/spw-header-lang-item.js +1 -1
  158. package/dist/collection/components/spw-header/spw-header-navigation/spw-header-navigation.js +1 -1
  159. package/dist/collection/components/spw-header/spw-header-navigation-dropdown/spw-header-navigation-dropdown.js +1 -1
  160. package/dist/collection/components/spw-header/spw-header-navigation-item/spw-header-navigation-item.js +1 -1
  161. package/dist/collection/components/spw-header/spw-header-persona/spw-header-persona.js +1 -1
  162. package/dist/collection/components/spw-header/spw-header-persona-item/spw-header-persona-item.js +1 -1
  163. package/dist/collection/components/spw-header/spw-header.js +1 -1
  164. package/dist/collection/components/spw-hero/spw-hero.css +1 -1
  165. package/dist/collection/components/spw-hero/spw-hero.js +51 -4
  166. package/dist/collection/components/spw-hero/spw-hero.js.map +1 -1
  167. package/dist/collection/components/spw-icon/spw-icon.js +1 -1
  168. package/dist/collection/components/spw-illustration/spw-illustration.css +1 -1
  169. package/dist/collection/components/spw-illustration/spw-illustration.js +488 -1
  170. package/dist/collection/components/spw-illustration/spw-illustration.js.map +1 -1
  171. package/dist/collection/components/spw-iodda/spw-iodda.js +1 -1
  172. package/dist/collection/components/spw-link/spw-link.js +1 -1
  173. package/dist/collection/components/spw-list/spw-list-description/spw-list-description.js +1 -1
  174. package/dist/collection/components/spw-list/spw-list-item/spw-list-item.js +1 -1
  175. package/dist/collection/components/spw-list/spw-list-title/spw-list-title.js +1 -1
  176. package/dist/collection/components/spw-list/spw-list.js +1 -1
  177. package/dist/collection/components/spw-loading/spw-loading.js +1 -1
  178. package/dist/collection/components/spw-modal/spw-modal.js +1 -1
  179. package/dist/collection/components/spw-mosaic/spw-mosaic-item/spw-mosaic-item.js +1 -1
  180. package/dist/collection/components/spw-mosaic/spw-mosaic.js +1 -1
  181. package/dist/collection/components/spw-pagination/spw-pagination.js +12 -9
  182. package/dist/collection/components/spw-pagination/spw-pagination.js.map +1 -1
  183. package/dist/collection/components/spw-radio/spw-radio.js +1 -1
  184. package/dist/collection/components/spw-search-field/spw-search-field.js +2 -2
  185. package/dist/collection/components/spw-separator/spw-separator.js +1 -1
  186. package/dist/collection/components/spw-sidebar/spw-sidebar-navigation-dropdown/spw-sidebar-navigation-dropdown.js +1 -1
  187. package/dist/collection/components/spw-sidebar/spw-sidebar-navigation-item/spw-sidebar-navigation-item.js +3 -3
  188. package/dist/collection/components/spw-sidebar/spw-sidebar-navigation-separator/spw-sidebar-navigation-separator.js +1 -1
  189. package/dist/collection/components/spw-sidebar/spw-sidebar.js +1 -1
  190. package/dist/collection/components/spw-skeleton/spw-skeleton.js +1 -1
  191. package/dist/collection/components/spw-slider/spw-slider-item/spw-slider-item.js +1 -1
  192. package/dist/collection/components/spw-slider/spw-slider.css +1 -1
  193. package/dist/collection/components/spw-slider/spw-slider.js +30 -3
  194. package/dist/collection/components/spw-slider/spw-slider.js.map +1 -1
  195. package/dist/collection/components/spw-socials/spw-socials.js +1 -1
  196. package/dist/collection/components/spw-table/spw-table-body/spw-table-body.js +1 -1
  197. package/dist/collection/components/spw-table/spw-table-cell/spw-table-cell.js +1 -1
  198. package/dist/collection/components/spw-table/spw-table-container/spw-table-container.css +2 -0
  199. package/dist/collection/components/spw-table/spw-table-container/spw-table-container.js +19 -0
  200. package/dist/collection/components/spw-table/spw-table-container/spw-table-container.js.map +1 -0
  201. package/dist/collection/components/spw-table/spw-table-footer/spw-table-footer.css +1 -1
  202. package/dist/collection/components/spw-table/spw-table-footer/spw-table-footer.js +1 -1
  203. package/dist/collection/components/spw-table/spw-table-footer/spw-table-footer.js.map +1 -1
  204. package/dist/collection/components/spw-table/spw-table-head/spw-table-head.js +1 -1
  205. package/dist/collection/components/spw-table/spw-table-header/spw-table-header.css +1 -1
  206. package/dist/collection/components/spw-table/spw-table-header/spw-table-header.js +2 -2
  207. package/dist/collection/components/spw-table/spw-table-header/spw-table-header.js.map +1 -1
  208. package/dist/collection/components/spw-table/spw-table-row/spw-table-row.js +1 -1
  209. package/dist/collection/components/spw-table/spw-table-sidebar/spw-table-sidebar.css +2 -0
  210. package/dist/collection/components/spw-table/spw-table-sidebar/spw-table-sidebar.js +290 -0
  211. package/dist/collection/components/spw-table/spw-table-sidebar/spw-table-sidebar.js.map +1 -0
  212. package/dist/collection/components/spw-table/spw-table.css +1 -1
  213. package/dist/collection/components/spw-table/spw-table.js +33 -16
  214. package/dist/collection/components/spw-table/spw-table.js.map +1 -1
  215. package/dist/collection/components/spw-tabs/spw-tabs-navigation/spw-tabs-navigation.js +1 -1
  216. package/dist/collection/components/spw-tabs/spw-tabs-navigation-item/spw-tabs-navigation-item.js +1 -1
  217. package/dist/collection/components/spw-tabs/spw-tabs.js +1 -1
  218. package/dist/collection/components/spw-tag/spw-tag.js +1 -1
  219. package/dist/collection/components/spw-text-field/spw-text-field.js +1 -1
  220. package/dist/collection/components/spw-textarea/spw-textarea.js +3 -3
  221. package/dist/collection/components/spw-textarea/spw-textarea.js.map +1 -1
  222. package/dist/collection/components/spw-theme-provider/spw-theme-provider.js +1 -1
  223. package/dist/collection/components/spw-tile/spw-tile-description/spw-tile-description.js +1 -1
  224. package/dist/collection/components/spw-tile/spw-tile-title/spw-tile-title.js +1 -1
  225. package/dist/collection/components/spw-tile/spw-tile.js +1 -1
  226. package/dist/collection/components/spw-toc/spw-toc-container/spw-toc-container.css +2 -0
  227. package/dist/collection/components/spw-toc/spw-toc-container/spw-toc-container.js +120 -0
  228. package/dist/collection/components/spw-toc/spw-toc-container/spw-toc-container.js.map +1 -0
  229. package/dist/collection/components/spw-toc/spw-toc-navigation/spw-toc-navigation.css +2 -0
  230. package/dist/collection/components/spw-toc/spw-toc-navigation/spw-toc-navigation.js +301 -0
  231. package/dist/collection/components/spw-toc/spw-toc-navigation/spw-toc-navigation.js.map +1 -0
  232. package/dist/collection/components/spw-toc/spw-toc.css +2 -0
  233. package/dist/collection/components/spw-toc/spw-toc.js +18 -0
  234. package/dist/collection/components/spw-toc/spw-toc.js.map +1 -0
  235. package/dist/collection/components/spw-tooltip/spw-tooltip.js +1 -1
  236. package/dist/collection/components/spw-topbar/spw-topbar.js +1 -1
  237. package/dist/collection/components/spw-wizard/spw-wizard-item/spw-wizard-item.js +1 -1
  238. package/dist/collection/components/spw-wizard/spw-wizard.js +1 -1
  239. package/dist/collection/stories/components/spw-breadcrumb/spw-breadcrumb.stories.js +32 -1
  240. package/dist/collection/stories/components/spw-breadcrumb/spw-breadcrumb.stories.js.map +1 -1
  241. package/dist/collection/stories/components/spw-button/spw-button.stories.js +59 -1
  242. package/dist/collection/stories/components/spw-button/spw-button.stories.js.map +1 -1
  243. package/dist/collection/stories/components/spw-checkbox/spw-checkbox.stories.js +37 -1
  244. package/dist/collection/stories/components/spw-checkbox/spw-checkbox.stories.js.map +1 -1
  245. package/dist/collection/stories/components/spw-custom-select/spw-custom-select.stories.js +60 -1
  246. package/dist/collection/stories/components/spw-custom-select/spw-custom-select.stories.js.map +1 -1
  247. package/dist/collection/stories/components/spw-date-picker/spw-date-picker.stories.js +60 -1
  248. package/dist/collection/stories/components/spw-date-picker/spw-date-picker.stories.js.map +1 -1
  249. package/dist/collection/stories/components/spw-dropdown/spw-dropdown.stories.js +19 -1
  250. package/dist/collection/stories/components/spw-dropdown/spw-dropdown.stories.js.map +1 -1
  251. package/dist/collection/stories/components/spw-field-message/spw-field-message.stories.js +52 -1
  252. package/dist/collection/stories/components/spw-field-message/spw-field-message.stories.js.map +1 -1
  253. package/dist/collection/stories/components/spw-file-upload/spw-file-upload.stories.js +20 -1
  254. package/dist/collection/stories/components/spw-file-upload/spw-file-upload.stories.js.map +1 -1
  255. package/dist/collection/stories/components/spw-icon/spw-icon.stories.js +21 -1
  256. package/dist/collection/stories/components/spw-icon/spw-icon.stories.js.map +1 -1
  257. package/dist/collection/stories/components/spw-link/spw-link.stories.js +31 -1
  258. package/dist/collection/stories/components/spw-link/spw-link.stories.js.map +1 -1
  259. package/dist/collection/stories/components/spw-loading/spw-loading.stories.js +29 -1
  260. package/dist/collection/stories/components/spw-loading/spw-loading.stories.js.map +1 -1
  261. package/dist/collection/stories/components/spw-pagination/spw-pagination.stories.js +37 -1
  262. package/dist/collection/stories/components/spw-pagination/spw-pagination.stories.js.map +1 -1
  263. package/dist/collection/stories/components/spw-radio/spw-radio.stories.js +17 -1
  264. package/dist/collection/stories/components/spw-radio/spw-radio.stories.js.map +1 -1
  265. package/dist/collection/stories/components/spw-search-field/spw-search-field.stories.js +33 -1
  266. package/dist/collection/stories/components/spw-search-field/spw-search-field.stories.js.map +1 -1
  267. package/dist/collection/stories/components/spw-select/spw-select.stories.js +19 -1
  268. package/dist/collection/stories/components/spw-select/spw-select.stories.js.map +1 -1
  269. package/dist/collection/stories/components/spw-separator/spw-separator.stories.js +33 -1
  270. package/dist/collection/stories/components/spw-separator/spw-separator.stories.js.map +1 -1
  271. package/dist/collection/stories/components/spw-skeleton/spw-skeleton.stories.js +51 -2
  272. package/dist/collection/stories/components/spw-skeleton/spw-skeleton.stories.js.map +1 -1
  273. package/dist/collection/stories/components/spw-tag/spw-tag.stories.js +72 -1
  274. package/dist/collection/stories/components/spw-tag/spw-tag.stories.js.map +1 -1
  275. package/dist/collection/stories/components/spw-text-field/spw-text-field.stories.js +34 -1
  276. package/dist/collection/stories/components/spw-text-field/spw-text-field.stories.js.map +1 -1
  277. package/dist/collection/stories/components/spw-textarea/spw-textarea.stories.js +16 -1
  278. package/dist/collection/stories/components/spw-textarea/spw-textarea.stories.js.map +1 -1
  279. package/dist/collection/stories/components/spw-tooltip/spw-tooltip.stories.js +17 -1
  280. package/dist/collection/stories/components/spw-tooltip/spw-tooltip.stories.js.map +1 -1
  281. package/dist/collection/stories/organisms/spw-accordion/spw-accordion.stories.js +17 -4
  282. package/dist/collection/stories/organisms/spw-accordion/spw-accordion.stories.js.map +1 -1
  283. package/dist/collection/stories/organisms/spw-card/spw-card.stories.js +96 -1
  284. package/dist/collection/stories/organisms/spw-card/spw-card.stories.js.map +1 -1
  285. package/dist/collection/stories/organisms/spw-footer/spw-footer.stories.js +38 -1
  286. package/dist/collection/stories/organisms/spw-footer/spw-footer.stories.js.map +1 -1
  287. package/dist/collection/stories/organisms/spw-grid/spw-grid.stories.js +25 -1
  288. package/dist/collection/stories/organisms/spw-grid/spw-grid.stories.js.map +1 -1
  289. package/dist/collection/stories/organisms/spw-group/spw-group.stories.js +46 -7
  290. package/dist/collection/stories/organisms/spw-group/spw-group.stories.js.map +1 -1
  291. package/dist/collection/stories/organisms/spw-header/spw-header.stories.js +58 -7
  292. package/dist/collection/stories/organisms/spw-header/spw-header.stories.js.map +1 -1
  293. package/dist/collection/stories/organisms/spw-hero/spw-hero.stories.js +87 -1
  294. package/dist/collection/stories/organisms/spw-hero/spw-hero.stories.js.map +1 -1
  295. package/dist/collection/stories/organisms/spw-list/spw-list.stories.js +57 -1
  296. package/dist/collection/stories/organisms/spw-list/spw-list.stories.js.map +1 -1
  297. package/dist/collection/stories/organisms/spw-message/spw-message.stories.js +71 -1
  298. package/dist/collection/stories/organisms/spw-message/spw-message.stories.js.map +1 -1
  299. package/dist/collection/stories/organisms/spw-modal/spw-modal.stories.js +62 -1
  300. package/dist/collection/stories/organisms/spw-modal/spw-modal.stories.js.map +1 -1
  301. package/dist/collection/stories/organisms/spw-mosaic/spw-mosaic.stories.js +74 -1
  302. package/dist/collection/stories/organisms/spw-mosaic/spw-mosaic.stories.js.map +1 -1
  303. package/dist/collection/stories/organisms/spw-sidebar/spw-sidebar.stories.js +31 -1
  304. package/dist/collection/stories/organisms/spw-sidebar/spw-sidebar.stories.js.map +1 -1
  305. package/dist/collection/stories/organisms/spw-slider/spw-slider.stories.js +21 -1
  306. package/dist/collection/stories/organisms/spw-slider/spw-slider.stories.js.map +1 -1
  307. package/dist/collection/stories/organisms/spw-socials/spw-socials.stories.js +25 -1
  308. package/dist/collection/stories/organisms/spw-socials/spw-socials.stories.js.map +1 -1
  309. package/dist/collection/stories/organisms/spw-table/spw-table.stories.js +69 -1
  310. package/dist/collection/stories/organisms/spw-table/spw-table.stories.js.map +1 -1
  311. package/dist/collection/stories/organisms/spw-tabs/spw-tabs.stories.js +57 -1
  312. package/dist/collection/stories/organisms/spw-tabs/spw-tabs.stories.js.map +1 -1
  313. package/dist/collection/stories/organisms/spw-tile/spw-tile.stories.js +83 -1
  314. package/dist/collection/stories/organisms/spw-tile/spw-tile.stories.js.map +1 -1
  315. package/dist/collection/stories/organisms/spw-toc/spw-toc.stories.js +256 -0
  316. package/dist/collection/stories/organisms/spw-toc/spw-toc.stories.js.map +1 -0
  317. package/dist/collection/stories/organisms/spw-topbar/spw-topbar.stories.js +52 -1
  318. package/dist/collection/stories/organisms/spw-topbar/spw-topbar.stories.js.map +1 -1
  319. package/dist/components/{p-QqgPCBuq.js → p-BCWtq89_.js} +3 -3
  320. package/dist/components/{p-QqgPCBuq.js.map → p-BCWtq89_.js.map} +1 -1
  321. package/dist/components/{p-DzdAUdJU.js → p-BTvGjWzW.js} +3 -3
  322. package/dist/components/{p-DzdAUdJU.js.map → p-BTvGjWzW.js.map} +1 -1
  323. package/dist/components/{p-DtyDCGAt.js → p-BZeR2u__.js} +3 -3
  324. package/dist/components/{p-DtyDCGAt.js.map → p-BZeR2u__.js.map} +1 -1
  325. package/dist/components/{p-BJuYSBNu.js → p-Bu2NP1Hz.js} +4 -4
  326. package/dist/components/{p-BJuYSBNu.js.map → p-Bu2NP1Hz.js.map} +1 -1
  327. package/dist/components/{p-CFQbmE2_.js → p-C0RRW46w.js} +4 -4
  328. package/dist/components/p-C0RRW46w.js.map +1 -0
  329. package/dist/components/{p-BYWyi-Sg.js → p-Cwnv6xZs.js} +4 -4
  330. package/dist/components/{p-BYWyi-Sg.js.map → p-Cwnv6xZs.js.map} +1 -1
  331. package/dist/components/{p-YZZxQbyU.js → p-CyyuvuPG.js} +5 -5
  332. package/dist/components/{p-YZZxQbyU.js.map → p-CyyuvuPG.js.map} +1 -1
  333. package/dist/components/{p-CQpGzRKu.js → p-D4uTODSD.js} +31 -4
  334. package/dist/components/p-D4uTODSD.js.map +1 -0
  335. package/dist/components/{p-CN-VU2O8.js → p-DPJAZYpY.js} +3 -3
  336. package/dist/components/{p-CN-VU2O8.js.map → p-DPJAZYpY.js.map} +1 -1
  337. package/dist/components/{p-Otqq8W18.js → p-DYC6u5kd.js} +3 -3
  338. package/dist/components/{p-Otqq8W18.js.map → p-DYC6u5kd.js.map} +1 -1
  339. package/dist/components/{p-CIwDs15y.js → p-DrAfEAz-.js} +3 -3
  340. package/dist/components/{p-CIwDs15y.js.map → p-DrAfEAz-.js.map} +1 -1
  341. package/dist/components/{p-BPeRFxsF.js → p-DvSE7JLV.js} +4 -4
  342. package/dist/components/{p-BPeRFxsF.js.map → p-DvSE7JLV.js.map} +1 -1
  343. package/dist/components/{p-C47wKUeG.js → p-L8eHcqaq.js} +17 -17
  344. package/dist/components/p-L8eHcqaq.js.map +1 -0
  345. package/dist/components/{p-DTm94uQW.js → p-d3hqDeA0.js} +4 -4
  346. package/dist/components/{p-DTm94uQW.js.map → p-d3hqDeA0.js.map} +1 -1
  347. package/dist/components/{p-Cdk2nQ84.js → p-kJsRMeYL.js} +6 -6
  348. package/dist/components/{p-Cdk2nQ84.js.map → p-kJsRMeYL.js.map} +1 -1
  349. package/dist/components/spw-accordion-content.js +1 -1
  350. package/dist/components/spw-accordion-item.js +1 -1
  351. package/dist/components/spw-accordion-title.js +1 -1
  352. package/dist/components/spw-accordion.js +1 -1
  353. package/dist/components/spw-breadcrumb-item.js +7 -4
  354. package/dist/components/spw-breadcrumb-item.js.map +1 -1
  355. package/dist/components/spw-breadcrumb.js +2 -2
  356. package/dist/components/spw-breadcrumb.js.map +1 -1
  357. package/dist/components/spw-button.js +1 -1
  358. package/dist/components/spw-card-content.js +1 -1
  359. package/dist/components/spw-card-excerpt.js +1 -1
  360. package/dist/components/spw-card-image.js +2 -2
  361. package/dist/components/spw-card-subtag-item.js +1 -1
  362. package/dist/components/spw-card-subtags.js +1 -1
  363. package/dist/components/spw-card-title.js +1 -1
  364. package/dist/components/spw-card.js +1 -1
  365. package/dist/components/spw-checkbox.js +1 -1
  366. package/dist/components/spw-cookies.js +8 -8
  367. package/dist/components/spw-custom-select.js +7 -7
  368. package/dist/components/spw-date-picker.js +8 -6
  369. package/dist/components/spw-date-picker.js.map +1 -1
  370. package/dist/components/spw-dropdown-container.js +1 -1
  371. package/dist/components/spw-dropdown-item.js +2 -2
  372. package/dist/components/spw-dropdown.js +1 -1
  373. package/dist/components/spw-field-label.js +1 -1
  374. package/dist/components/spw-field-message.js +1 -1
  375. package/dist/components/spw-file-upload.js +5 -5
  376. package/dist/components/spw-footer-bottom.js +1 -1
  377. package/dist/components/spw-footer-content-col.js +1 -1
  378. package/dist/components/spw-footer-content.js +1 -1
  379. package/dist/components/spw-footer-link.js +1 -1
  380. package/dist/components/spw-footer.js +1 -1
  381. package/dist/components/spw-grid-item.js +2 -2
  382. package/dist/components/spw-grid.js +2 -2
  383. package/dist/components/spw-group.js +2 -2
  384. package/dist/components/spw-header-lang-item.js +1 -1
  385. package/dist/components/spw-header-lang.js +4 -4
  386. package/dist/components/spw-header-navigation-dropdown.js +1 -1
  387. package/dist/components/spw-header-navigation-item.js +2 -2
  388. package/dist/components/spw-header-navigation.js +4 -4
  389. package/dist/components/spw-header-persona-item.js +1 -1
  390. package/dist/components/spw-header-persona.js +2 -2
  391. package/dist/components/spw-header.js +4 -4
  392. package/dist/components/spw-hero.js +14 -5
  393. package/dist/components/spw-hero.js.map +1 -1
  394. package/dist/components/spw-icon.js +1 -1
  395. package/dist/components/spw-illustration.js +488 -1
  396. package/dist/components/spw-illustration.js.map +1 -1
  397. package/dist/components/spw-iodda.js +7 -7
  398. package/dist/components/spw-link.js +1 -1
  399. package/dist/components/spw-list-description.js +1 -1
  400. package/dist/components/spw-list-item.js +2 -2
  401. package/dist/components/spw-list-title.js +2 -2
  402. package/dist/components/spw-list.js +1 -1
  403. package/dist/components/spw-loading.js +1 -1
  404. package/dist/components/spw-message.js +2 -2
  405. package/dist/components/spw-modal.js +2 -2
  406. package/dist/components/spw-mosaic-item.js +1 -1
  407. package/dist/components/spw-mosaic.js +1 -1
  408. package/dist/components/spw-pagination.js +1 -1
  409. package/dist/components/spw-radio.js +1 -1
  410. package/dist/components/spw-search-field.js +6 -6
  411. package/dist/components/spw-select.js +3 -3
  412. package/dist/components/spw-separator.js +1 -1
  413. package/dist/components/spw-sidebar-navigation-dropdown.js +1 -1
  414. package/dist/components/spw-sidebar-navigation-item.js +5 -5
  415. package/dist/components/spw-sidebar-navigation-separator.js +2 -2
  416. package/dist/components/spw-sidebar.js +2 -2
  417. package/dist/components/spw-skeleton.js +1 -1
  418. package/dist/components/spw-slider-item.js +1 -1
  419. package/dist/components/spw-slider.js +14 -6
  420. package/dist/components/spw-slider.js.map +1 -1
  421. package/dist/components/spw-socials.js +1 -1
  422. package/dist/components/spw-table-body.js +1 -1
  423. package/dist/components/spw-table-cell.js +1 -1
  424. package/dist/components/spw-table-container.d.ts +11 -0
  425. package/dist/components/spw-table-container.js +36 -0
  426. package/dist/components/spw-table-container.js.map +1 -0
  427. package/dist/components/spw-table-footer.js +2 -2
  428. package/dist/components/spw-table-footer.js.map +1 -1
  429. package/dist/components/spw-table-head.js +1 -1
  430. package/dist/components/spw-table-header.js +5 -5
  431. package/dist/components/spw-table-header.js.map +1 -1
  432. package/dist/components/spw-table-row.js +1 -1
  433. package/dist/components/spw-table-sidebar.d.ts +11 -0
  434. package/dist/components/spw-table-sidebar.js +185 -0
  435. package/dist/components/spw-table-sidebar.js.map +1 -0
  436. package/dist/components/spw-table.js +34 -17
  437. package/dist/components/spw-table.js.map +1 -1
  438. package/dist/components/spw-tabs-navigation-item.js +3 -3
  439. package/dist/components/spw-tabs-navigation.js +2 -2
  440. package/dist/components/spw-tabs.js +1 -1
  441. package/dist/components/spw-tag.js +2 -2
  442. package/dist/components/spw-text-field.js +1 -1
  443. package/dist/components/spw-textarea.js +5 -5
  444. package/dist/components/spw-textarea.js.map +1 -1
  445. package/dist/components/spw-theme-provider.js +1 -1
  446. package/dist/components/spw-tile-description.js +1 -1
  447. package/dist/components/spw-tile-title.js +1 -1
  448. package/dist/components/spw-tile.js +2 -2
  449. package/dist/components/spw-toc-container.d.ts +11 -0
  450. package/dist/components/spw-toc-container.js +90 -0
  451. package/dist/components/spw-toc-container.js.map +1 -0
  452. package/dist/components/spw-toc-navigation.d.ts +11 -0
  453. package/dist/components/spw-toc-navigation.js +304 -0
  454. package/dist/components/spw-toc-navigation.js.map +1 -0
  455. package/dist/components/spw-toc.d.ts +11 -0
  456. package/dist/components/spw-toc.js +35 -0
  457. package/dist/components/spw-toc.js.map +1 -0
  458. package/dist/components/spw-tooltip.js +1 -1
  459. package/dist/components/spw-topbar.js +1 -1
  460. package/dist/components/spw-wizard-item.js +2 -2
  461. package/dist/components/spw-wizard.js +1 -1
  462. package/dist/components_json.json +461 -16
  463. package/dist/components_vscode.json +3409 -0
  464. package/dist/esm/loader.js +1 -1
  465. package/dist/esm/spw-accordion.spw-accordion-content.spw-accordion-item.spw-accordion-title.entry.js.map +1 -1
  466. package/dist/esm/spw-accordion_4.entry.js +28 -5
  467. package/dist/esm/spw-accordion_4.entry.js.map +1 -1
  468. package/dist/esm/spw-breadcrumb-item.entry.js +5 -2
  469. package/dist/esm/spw-breadcrumb-item.entry.js.map +1 -1
  470. package/dist/esm/spw-breadcrumb.entry.js +2 -2
  471. package/dist/esm/spw-breadcrumb.entry.js.map +1 -1
  472. package/dist/esm/spw-button_2.entry.js +2 -2
  473. package/dist/esm/spw-card-content.entry.js +1 -1
  474. package/dist/esm/spw-card-excerpt.entry.js +1 -1
  475. package/dist/esm/spw-card-image.entry.js +1 -1
  476. package/dist/esm/spw-card-subtag-item.entry.js +1 -1
  477. package/dist/esm/spw-card-subtags.entry.js +1 -1
  478. package/dist/esm/spw-card-title.entry.js +1 -1
  479. package/dist/esm/spw-card.entry.js +1 -1
  480. package/dist/esm/spw-checkbox.entry.js +1 -1
  481. package/dist/esm/spw-custom-select.entry.js +3 -3
  482. package/dist/esm/spw-date-picker.entry.js +5 -3
  483. package/dist/esm/spw-date-picker.entry.js.map +1 -1
  484. package/dist/esm/spw-dropdown-container.entry.js +1 -1
  485. package/dist/esm/spw-dropdown-item.entry.js +1 -1
  486. package/dist/esm/spw-dropdown.entry.js +1 -1
  487. package/dist/esm/spw-field-label_6.entry.js +6 -6
  488. package/dist/esm/spw-field-message.entry.js +1 -1
  489. package/dist/esm/spw-file-upload.entry.js +2 -2
  490. package/dist/esm/spw-footer-bottom.entry.js +1 -1
  491. package/dist/esm/spw-footer-content-col.entry.js +1 -1
  492. package/dist/esm/spw-footer-content.entry.js +1 -1
  493. package/dist/esm/spw-footer-link.entry.js +1 -1
  494. package/dist/esm/spw-footer.entry.js +1 -1
  495. package/dist/esm/spw-grid-item.entry.js +2 -2
  496. package/dist/esm/spw-grid.entry.js +2 -2
  497. package/dist/esm/spw-header-lang-item.entry.js +1 -1
  498. package/dist/esm/spw-header-lang.entry.js +1 -1
  499. package/dist/esm/spw-header-navigation-dropdown.entry.js +1 -1
  500. package/dist/esm/spw-header-navigation-item.entry.js +1 -1
  501. package/dist/esm/spw-header-navigation.entry.js +1 -1
  502. package/dist/esm/spw-header-persona-item.entry.js +1 -1
  503. package/dist/esm/spw-header-persona.entry.js +1 -1
  504. package/dist/esm/spw-header.entry.js +1 -1
  505. package/dist/esm/spw-hero.entry.js +10 -3
  506. package/dist/esm/spw-hero.entry.js.map +1 -1
  507. package/dist/esm/spw-illustration.entry.js +488 -1
  508. package/dist/esm/spw-illustration.entry.js.map +1 -1
  509. package/dist/esm/spw-iodda.entry.js +1 -1
  510. package/dist/esm/spw-list-description.entry.js +1 -1
  511. package/dist/esm/spw-list-item.entry.js +1 -1
  512. package/dist/esm/spw-list-title.entry.js +1 -1
  513. package/dist/esm/spw-list.entry.js +1 -1
  514. package/dist/esm/spw-modal.entry.js +1 -1
  515. package/dist/esm/spw-mosaic-item.entry.js +1 -1
  516. package/dist/esm/spw-mosaic.entry.js +1 -1
  517. package/dist/esm/spw-pagination.entry.js +10 -10
  518. package/dist/esm/spw-pagination.entry.js.map +1 -1
  519. package/dist/esm/spw-radio.entry.js +1 -1
  520. package/dist/esm/spw-search-field.entry.js +2 -2
  521. package/dist/esm/spw-sidebar-navigation-dropdown.entry.js +1 -1
  522. package/dist/esm/spw-sidebar-navigation-item.entry.js +3 -3
  523. package/dist/esm/spw-sidebar-navigation-separator.entry.js +1 -1
  524. package/dist/esm/spw-sidebar.entry.js +1 -1
  525. package/dist/esm/spw-skeleton.entry.js +1 -1
  526. package/dist/esm/spw-slider-item.entry.js +1 -1
  527. package/dist/esm/spw-slider.entry.js +11 -4
  528. package/dist/esm/spw-slider.entry.js.map +1 -1
  529. package/dist/esm/spw-socials.entry.js +1 -1
  530. package/dist/esm/spw-stencil-library.js +1 -1
  531. package/dist/esm/spw-table-body.entry.js +1 -1
  532. package/dist/esm/spw-table-cell.entry.js +1 -1
  533. package/dist/esm/spw-table-container.entry.js +18 -0
  534. package/dist/esm/spw-table-container.entry.js.map +1 -0
  535. package/dist/esm/spw-table-footer.entry.js +2 -2
  536. package/dist/esm/spw-table-footer.entry.js.map +1 -1
  537. package/dist/esm/spw-table-head.entry.js +1 -1
  538. package/dist/esm/spw-table-header.entry.js +3 -3
  539. package/dist/esm/spw-table-header.entry.js.map +1 -1
  540. package/dist/esm/spw-table-row.entry.js +1 -1
  541. package/dist/esm/spw-table-sidebar.entry.js +140 -0
  542. package/dist/esm/spw-table-sidebar.entry.js.map +1 -0
  543. package/dist/esm/spw-table.entry.js +34 -17
  544. package/dist/esm/spw-table.entry.js.map +1 -1
  545. package/dist/esm/spw-tabs-navigation-item.entry.js +1 -1
  546. package/dist/esm/spw-tabs-navigation.entry.js +1 -1
  547. package/dist/esm/spw-tabs.entry.js +1 -1
  548. package/dist/esm/spw-tag.entry.js +1 -1
  549. package/dist/esm/spw-text-field.entry.js +1 -1
  550. package/dist/esm/spw-textarea.entry.js +2 -2
  551. package/dist/esm/spw-textarea.entry.js.map +1 -1
  552. package/dist/esm/spw-tile-description.entry.js +1 -1
  553. package/dist/esm/spw-tile-title.entry.js +1 -1
  554. package/dist/esm/spw-tile.entry.js +1 -1
  555. package/dist/esm/spw-toc-container.entry.js +71 -0
  556. package/dist/esm/spw-toc-container.entry.js.map +1 -0
  557. package/dist/esm/spw-toc-navigation.entry.js +281 -0
  558. package/dist/esm/spw-toc-navigation.entry.js.map +1 -0
  559. package/dist/esm/spw-toc.entry.js +18 -0
  560. package/dist/esm/spw-toc.entry.js.map +1 -0
  561. package/dist/esm/spw-tooltip.entry.js +1 -1
  562. package/dist/esm/spw-topbar.entry.js +1 -1
  563. package/dist/esm/spw-wizard-item.entry.js +1 -1
  564. package/dist/esm/spw-wizard.entry.js +1 -1
  565. package/dist/spw-stencil-library/{p-4bc3d2ef.entry.js → p-04aa5d86.entry.js} +2 -2
  566. package/dist/spw-stencil-library/{p-a2fd09f8.entry.js → p-0839efb1.entry.js} +2 -2
  567. package/dist/spw-stencil-library/p-0a69cead.entry.js +2 -0
  568. package/dist/spw-stencil-library/p-0a69cead.entry.js.map +1 -0
  569. package/dist/spw-stencil-library/{p-84645c94.entry.js → p-0bc1209e.entry.js} +2 -2
  570. package/dist/spw-stencil-library/{p-1644bf7d.entry.js → p-0e7f2c1a.entry.js} +2 -2
  571. package/dist/spw-stencil-library/{p-6e37db2d.entry.js → p-0f728bbd.entry.js} +2 -2
  572. package/dist/spw-stencil-library/{p-6e37db2d.entry.js.map → p-0f728bbd.entry.js.map} +1 -1
  573. package/dist/spw-stencil-library/{p-670f0edc.entry.js → p-1306c0ff.entry.js} +2 -2
  574. package/dist/spw-stencil-library/{p-ed61e2a8.entry.js → p-137f2856.entry.js} +2 -2
  575. package/dist/spw-stencil-library/{p-d02b077c.entry.js → p-1416942e.entry.js} +2 -2
  576. package/dist/spw-stencil-library/p-1416942e.entry.js.map +1 -0
  577. package/dist/spw-stencil-library/{p-5e0b04c0.entry.js → p-1bb4a071.entry.js} +2 -2
  578. package/dist/spw-stencil-library/{p-eb26b450.entry.js → p-1c728c37.entry.js} +2 -2
  579. package/dist/spw-stencil-library/{p-44bb3ec0.entry.js → p-20fa2637.entry.js} +2 -2
  580. package/dist/spw-stencil-library/{p-2b70c24a.entry.js → p-2965d7ca.entry.js} +2 -2
  581. package/dist/spw-stencil-library/{p-82ed2f9b.entry.js → p-29fb06a6.entry.js} +2 -2
  582. package/dist/spw-stencil-library/p-2d6f393e.entry.js +2 -0
  583. package/dist/spw-stencil-library/p-2d6f393e.entry.js.map +1 -0
  584. package/dist/spw-stencil-library/{p-2760ef2b.entry.js → p-2d7492af.entry.js} +2 -2
  585. package/dist/spw-stencil-library/p-2dea4478.entry.js +2 -0
  586. package/dist/spw-stencil-library/p-2dea4478.entry.js.map +1 -0
  587. package/dist/spw-stencil-library/{p-6c88a82d.entry.js → p-3067d3dd.entry.js} +2 -2
  588. package/dist/spw-stencil-library/{p-e5f141b6.entry.js → p-31980405.entry.js} +2 -2
  589. package/dist/spw-stencil-library/{p-9d0e8d02.entry.js → p-3553e1f1.entry.js} +2 -2
  590. package/dist/spw-stencil-library/p-3753277e.entry.js +2 -0
  591. package/dist/spw-stencil-library/p-3753277e.entry.js.map +1 -0
  592. package/dist/spw-stencil-library/{p-cbf4ef91.entry.js → p-3c524edb.entry.js} +2 -2
  593. package/dist/spw-stencil-library/{p-93dc746d.entry.js → p-40b238cb.entry.js} +2 -2
  594. package/dist/spw-stencil-library/{p-93dc746d.entry.js.map → p-40b238cb.entry.js.map} +1 -1
  595. package/dist/spw-stencil-library/{p-d37963e0.entry.js → p-420fd27d.entry.js} +2 -2
  596. package/dist/spw-stencil-library/{p-87249c32.entry.js → p-460b4ede.entry.js} +2 -2
  597. package/dist/spw-stencil-library/{p-c3f21e33.entry.js → p-47f6b942.entry.js} +2 -2
  598. package/dist/spw-stencil-library/p-48f1e67a.entry.js +2 -0
  599. package/dist/spw-stencil-library/p-48f1e67a.entry.js.map +1 -0
  600. package/dist/spw-stencil-library/{p-f26fd3b1.entry.js → p-49227f48.entry.js} +2 -2
  601. package/dist/spw-stencil-library/{p-a065a834.entry.js → p-4ab97219.entry.js} +2 -2
  602. package/dist/spw-stencil-library/{p-3545f888.entry.js → p-5ba3deea.entry.js} +2 -2
  603. package/dist/spw-stencil-library/{p-5e1aae61.entry.js → p-6c0993d6.entry.js} +2 -2
  604. package/dist/spw-stencil-library/{p-95749696.entry.js → p-70ccb73f.entry.js} +2 -2
  605. package/dist/spw-stencil-library/{p-6f084e62.entry.js → p-70f46bf2.entry.js} +2 -2
  606. package/dist/spw-stencil-library/{p-b3e76f4c.entry.js → p-7214cc7b.entry.js} +2 -2
  607. package/dist/spw-stencil-library/{p-0c3e8d91.entry.js → p-798bac47.entry.js} +2 -2
  608. package/dist/spw-stencil-library/{p-a4111a43.entry.js → p-8483cd8b.entry.js} +2 -2
  609. package/dist/spw-stencil-library/{p-931bea3a.entry.js → p-8c2f0377.entry.js} +2 -2
  610. package/dist/spw-stencil-library/{p-e4e2cb61.entry.js → p-93bd4d23.entry.js} +2 -2
  611. package/dist/spw-stencil-library/{p-25204236.entry.js → p-95ec862e.entry.js} +2 -2
  612. package/dist/spw-stencil-library/{p-5adfcd7e.entry.js → p-9a3dcf80.entry.js} +2 -2
  613. package/dist/spw-stencil-library/{p-6cdf16ac.entry.js → p-9d5deba6.entry.js} +2 -2
  614. package/dist/spw-stencil-library/{p-d28a7068.entry.js → p-a264b181.entry.js} +2 -2
  615. package/dist/spw-stencil-library/{p-95fa97a9.entry.js → p-aa4ddfa1.entry.js} +2 -2
  616. package/dist/spw-stencil-library/{p-9dea2f39.entry.js → p-ad964a8e.entry.js} +2 -2
  617. package/dist/spw-stencil-library/{p-08000970.entry.js → p-ada217d5.entry.js} +2 -2
  618. package/dist/spw-stencil-library/{p-197a694e.entry.js → p-aed34c29.entry.js} +2 -2
  619. package/dist/spw-stencil-library/{p-94069aff.entry.js → p-b4805c08.entry.js} +2 -2
  620. package/dist/spw-stencil-library/{p-277bb102.entry.js → p-bb4c4e16.entry.js} +2 -2
  621. package/dist/spw-stencil-library/{p-a5004a01.entry.js → p-bb7f1387.entry.js} +2 -2
  622. package/dist/spw-stencil-library/{p-b4c2fdf2.entry.js → p-bcceb61b.entry.js} +2 -2
  623. package/dist/spw-stencil-library/{p-68f93962.entry.js → p-bf070798.entry.js} +2 -2
  624. package/dist/spw-stencil-library/{p-110ca863.entry.js → p-c02b7133.entry.js} +2 -2
  625. package/dist/spw-stencil-library/{p-ca98ee5d.entry.js → p-c278daa3.entry.js} +2 -2
  626. package/dist/spw-stencil-library/{p-428aa721.entry.js → p-c398550f.entry.js} +2 -2
  627. package/dist/spw-stencil-library/{p-803b2bb5.entry.js → p-c77adac8.entry.js} +2 -2
  628. package/dist/spw-stencil-library/{p-aeec7eeb.entry.js → p-c7b2c5d7.entry.js} +2 -2
  629. package/dist/spw-stencil-library/p-c7b2c5d7.entry.js.map +1 -0
  630. package/dist/spw-stencil-library/p-c85f2f9a.entry.js +2 -0
  631. package/dist/spw-stencil-library/p-c85f2f9a.entry.js.map +1 -0
  632. package/dist/spw-stencil-library/{p-ea0cfe62.entry.js → p-cc3a84a1.entry.js} +2 -2
  633. package/dist/spw-stencil-library/{p-91b264d1.entry.js → p-cc869e6f.entry.js} +2 -2
  634. package/dist/spw-stencil-library/{p-a1d06611.entry.js → p-ccbc7c44.entry.js} +2 -2
  635. package/dist/spw-stencil-library/p-d0cb71d3.entry.js +2 -0
  636. package/dist/spw-stencil-library/p-d0cb71d3.entry.js.map +1 -0
  637. package/dist/spw-stencil-library/{p-3ac699ae.entry.js → p-d18146ca.entry.js} +2 -2
  638. package/dist/spw-stencil-library/p-d2b6aae7.entry.js +2 -0
  639. package/dist/spw-stencil-library/p-d2b6aae7.entry.js.map +1 -0
  640. package/dist/spw-stencil-library/{p-65aec904.entry.js → p-d2f5d210.entry.js} +2 -2
  641. package/dist/spw-stencil-library/p-d672e985.entry.js +2 -0
  642. package/dist/spw-stencil-library/p-d672e985.entry.js.map +1 -0
  643. package/dist/spw-stencil-library/{p-bb2421dc.entry.js → p-d8cae37d.entry.js} +2 -2
  644. package/dist/spw-stencil-library/{p-e2bac6be.entry.js → p-db817793.entry.js} +2 -2
  645. package/dist/spw-stencil-library/{p-c3246505.entry.js → p-dbb7e719.entry.js} +2 -2
  646. package/dist/spw-stencil-library/{p-df4d1f42.entry.js → p-de771d14.entry.js} +2 -2
  647. package/dist/spw-stencil-library/p-dedeaccc.entry.js +2 -0
  648. package/dist/spw-stencil-library/p-dedeaccc.entry.js.map +1 -0
  649. package/dist/spw-stencil-library/{p-187d02cb.entry.js → p-e369abbb.entry.js} +2 -2
  650. package/dist/spw-stencil-library/{p-67b7b947.entry.js → p-e44b8ebb.entry.js} +2 -2
  651. package/dist/spw-stencil-library/p-e55b0c4b.entry.js +2 -0
  652. package/dist/spw-stencil-library/p-e55b0c4b.entry.js.map +1 -0
  653. package/dist/spw-stencil-library/{p-1271e178.entry.js → p-e6b25971.entry.js} +2 -2
  654. package/dist/spw-stencil-library/p-e6b25971.entry.js.map +1 -0
  655. package/dist/spw-stencil-library/p-e6c8a3e4.entry.js +2 -0
  656. package/dist/spw-stencil-library/p-e6c8a3e4.entry.js.map +1 -0
  657. package/dist/spw-stencil-library/{p-6461fb4b.entry.js → p-e78304f0.entry.js} +2 -2
  658. package/dist/spw-stencil-library/{p-25aaf6a6.entry.js → p-ea5f2427.entry.js} +2 -2
  659. package/dist/spw-stencil-library/{p-95891f3a.entry.js → p-ea952c66.entry.js} +2 -2
  660. package/dist/spw-stencil-library/{p-22f022ca.entry.js → p-eaa1025a.entry.js} +2 -2
  661. package/dist/spw-stencil-library/{p-ef8f15e9.entry.js → p-f05cd056.entry.js} +2 -2
  662. package/dist/spw-stencil-library/{p-2ef45489.entry.js → p-fad06d00.entry.js} +2 -2
  663. package/dist/spw-stencil-library/spw-accordion.spw-accordion-content.spw-accordion-item.spw-accordion-title.entry.esm.js.map +1 -1
  664. package/dist/spw-stencil-library/spw-breadcrumb-item.entry.esm.js.map +1 -1
  665. package/dist/spw-stencil-library/spw-breadcrumb.entry.esm.js.map +1 -1
  666. package/dist/spw-stencil-library/spw-date-picker.entry.esm.js.map +1 -1
  667. package/dist/spw-stencil-library/spw-hero.entry.esm.js.map +1 -1
  668. package/dist/spw-stencil-library/spw-illustration.entry.esm.js.map +1 -1
  669. package/dist/spw-stencil-library/spw-pagination.entry.esm.js.map +1 -1
  670. package/dist/spw-stencil-library/spw-slider.entry.esm.js.map +1 -1
  671. package/dist/spw-stencil-library/spw-stencil-library.css +1 -1
  672. package/dist/spw-stencil-library/spw-stencil-library.esm.js +1 -1
  673. package/dist/spw-stencil-library/spw-table-container.entry.esm.js.map +1 -0
  674. package/dist/spw-stencil-library/spw-table-footer.entry.esm.js.map +1 -1
  675. package/dist/spw-stencil-library/spw-table-header.entry.esm.js.map +1 -1
  676. package/dist/spw-stencil-library/spw-table-sidebar.entry.esm.js.map +1 -0
  677. package/dist/spw-stencil-library/spw-table.entry.esm.js.map +1 -1
  678. package/dist/spw-stencil-library/spw-textarea.entry.esm.js.map +1 -1
  679. package/dist/spw-stencil-library/spw-toc-container.entry.esm.js.map +1 -0
  680. package/dist/spw-stencil-library/spw-toc-navigation.entry.esm.js.map +1 -0
  681. package/dist/spw-stencil-library/spw-toc.entry.esm.js.map +1 -0
  682. package/dist/stats.json +2225 -592
  683. package/dist/types/components/spw-accordion/spw-accordion.d.ts +6 -0
  684. package/dist/types/components/spw-hero/spw-hero.d.ts +5 -1
  685. package/dist/types/components/spw-illustration/spw-illustration.d.ts +2 -0
  686. package/dist/types/components/spw-pagination/spw-pagination.d.ts +1 -0
  687. package/dist/types/components/spw-slider/spw-slider.d.ts +3 -0
  688. package/dist/types/components/spw-table/spw-table-container/spw-table-container.d.ts +3 -0
  689. package/dist/types/components/spw-table/spw-table-sidebar/spw-table-sidebar.d.ts +34 -0
  690. package/dist/types/components/spw-table/spw-table.d.ts +2 -0
  691. package/dist/types/components/spw-toc/spw-toc-container/spw-toc-container.d.ts +18 -0
  692. package/dist/types/components/spw-toc/spw-toc-navigation/spw-toc-navigation.d.ts +24 -0
  693. package/dist/types/components/spw-toc/spw-toc.d.ts +3 -0
  694. package/dist/types/components.d.ts +185 -2
  695. package/dist/types/stories/organisms/spw-toc/spw-toc.stories.d.ts +5 -0
  696. package/hydrate/index.js +1245 -134
  697. package/hydrate/index.mjs +1245 -134
  698. package/package.json +4 -4
  699. package/dist/components/p-C47wKUeG.js.map +0 -1
  700. package/dist/components/p-CFQbmE2_.js.map +0 -1
  701. package/dist/components/p-CQpGzRKu.js.map +0 -1
  702. package/dist/spw-stencil-library/p-1271e178.entry.js.map +0 -1
  703. package/dist/spw-stencil-library/p-33f33d6d.entry.js +0 -2
  704. package/dist/spw-stencil-library/p-33f33d6d.entry.js.map +0 -1
  705. package/dist/spw-stencil-library/p-5c745e85.entry.js +0 -2
  706. package/dist/spw-stencil-library/p-5c745e85.entry.js.map +0 -1
  707. package/dist/spw-stencil-library/p-71519d62.entry.js +0 -2
  708. package/dist/spw-stencil-library/p-71519d62.entry.js.map +0 -1
  709. package/dist/spw-stencil-library/p-98bddf34.entry.js +0 -2
  710. package/dist/spw-stencil-library/p-98bddf34.entry.js.map +0 -1
  711. package/dist/spw-stencil-library/p-aeec7eeb.entry.js.map +0 -1
  712. package/dist/spw-stencil-library/p-b8645217.entry.js +0 -2
  713. package/dist/spw-stencil-library/p-b8645217.entry.js.map +0 -1
  714. package/dist/spw-stencil-library/p-bf7cd8c9.entry.js +0 -2
  715. package/dist/spw-stencil-library/p-bf7cd8c9.entry.js.map +0 -1
  716. package/dist/spw-stencil-library/p-c43d3406.entry.js +0 -2
  717. package/dist/spw-stencil-library/p-c43d3406.entry.js.map +0 -1
  718. package/dist/spw-stencil-library/p-d02b077c.entry.js.map +0 -1
  719. /package/dist/spw-stencil-library/{p-4bc3d2ef.entry.js.map → p-04aa5d86.entry.js.map} +0 -0
  720. /package/dist/spw-stencil-library/{p-a2fd09f8.entry.js.map → p-0839efb1.entry.js.map} +0 -0
  721. /package/dist/spw-stencil-library/{p-84645c94.entry.js.map → p-0bc1209e.entry.js.map} +0 -0
  722. /package/dist/spw-stencil-library/{p-1644bf7d.entry.js.map → p-0e7f2c1a.entry.js.map} +0 -0
  723. /package/dist/spw-stencil-library/{p-670f0edc.entry.js.map → p-1306c0ff.entry.js.map} +0 -0
  724. /package/dist/spw-stencil-library/{p-ed61e2a8.entry.js.map → p-137f2856.entry.js.map} +0 -0
  725. /package/dist/spw-stencil-library/{p-5e0b04c0.entry.js.map → p-1bb4a071.entry.js.map} +0 -0
  726. /package/dist/spw-stencil-library/{p-eb26b450.entry.js.map → p-1c728c37.entry.js.map} +0 -0
  727. /package/dist/spw-stencil-library/{p-44bb3ec0.entry.js.map → p-20fa2637.entry.js.map} +0 -0
  728. /package/dist/spw-stencil-library/{p-2b70c24a.entry.js.map → p-2965d7ca.entry.js.map} +0 -0
  729. /package/dist/spw-stencil-library/{p-82ed2f9b.entry.js.map → p-29fb06a6.entry.js.map} +0 -0
  730. /package/dist/spw-stencil-library/{p-2760ef2b.entry.js.map → p-2d7492af.entry.js.map} +0 -0
  731. /package/dist/spw-stencil-library/{p-6c88a82d.entry.js.map → p-3067d3dd.entry.js.map} +0 -0
  732. /package/dist/spw-stencil-library/{p-e5f141b6.entry.js.map → p-31980405.entry.js.map} +0 -0
  733. /package/dist/spw-stencil-library/{p-9d0e8d02.entry.js.map → p-3553e1f1.entry.js.map} +0 -0
  734. /package/dist/spw-stencil-library/{p-cbf4ef91.entry.js.map → p-3c524edb.entry.js.map} +0 -0
  735. /package/dist/spw-stencil-library/{p-d37963e0.entry.js.map → p-420fd27d.entry.js.map} +0 -0
  736. /package/dist/spw-stencil-library/{p-87249c32.entry.js.map → p-460b4ede.entry.js.map} +0 -0
  737. /package/dist/spw-stencil-library/{p-c3f21e33.entry.js.map → p-47f6b942.entry.js.map} +0 -0
  738. /package/dist/spw-stencil-library/{p-f26fd3b1.entry.js.map → p-49227f48.entry.js.map} +0 -0
  739. /package/dist/spw-stencil-library/{p-a065a834.entry.js.map → p-4ab97219.entry.js.map} +0 -0
  740. /package/dist/spw-stencil-library/{p-3545f888.entry.js.map → p-5ba3deea.entry.js.map} +0 -0
  741. /package/dist/spw-stencil-library/{p-5e1aae61.entry.js.map → p-6c0993d6.entry.js.map} +0 -0
  742. /package/dist/spw-stencil-library/{p-95749696.entry.js.map → p-70ccb73f.entry.js.map} +0 -0
  743. /package/dist/spw-stencil-library/{p-6f084e62.entry.js.map → p-70f46bf2.entry.js.map} +0 -0
  744. /package/dist/spw-stencil-library/{p-b3e76f4c.entry.js.map → p-7214cc7b.entry.js.map} +0 -0
  745. /package/dist/spw-stencil-library/{p-0c3e8d91.entry.js.map → p-798bac47.entry.js.map} +0 -0
  746. /package/dist/spw-stencil-library/{p-a4111a43.entry.js.map → p-8483cd8b.entry.js.map} +0 -0
  747. /package/dist/spw-stencil-library/{p-931bea3a.entry.js.map → p-8c2f0377.entry.js.map} +0 -0
  748. /package/dist/spw-stencil-library/{p-e4e2cb61.entry.js.map → p-93bd4d23.entry.js.map} +0 -0
  749. /package/dist/spw-stencil-library/{p-25204236.entry.js.map → p-95ec862e.entry.js.map} +0 -0
  750. /package/dist/spw-stencil-library/{p-5adfcd7e.entry.js.map → p-9a3dcf80.entry.js.map} +0 -0
  751. /package/dist/spw-stencil-library/{p-6cdf16ac.entry.js.map → p-9d5deba6.entry.js.map} +0 -0
  752. /package/dist/spw-stencil-library/{p-d28a7068.entry.js.map → p-a264b181.entry.js.map} +0 -0
  753. /package/dist/spw-stencil-library/{p-95fa97a9.entry.js.map → p-aa4ddfa1.entry.js.map} +0 -0
  754. /package/dist/spw-stencil-library/{p-9dea2f39.entry.js.map → p-ad964a8e.entry.js.map} +0 -0
  755. /package/dist/spw-stencil-library/{p-08000970.entry.js.map → p-ada217d5.entry.js.map} +0 -0
  756. /package/dist/spw-stencil-library/{p-197a694e.entry.js.map → p-aed34c29.entry.js.map} +0 -0
  757. /package/dist/spw-stencil-library/{p-94069aff.entry.js.map → p-b4805c08.entry.js.map} +0 -0
  758. /package/dist/spw-stencil-library/{p-277bb102.entry.js.map → p-bb4c4e16.entry.js.map} +0 -0
  759. /package/dist/spw-stencil-library/{p-a5004a01.entry.js.map → p-bb7f1387.entry.js.map} +0 -0
  760. /package/dist/spw-stencil-library/{p-b4c2fdf2.entry.js.map → p-bcceb61b.entry.js.map} +0 -0
  761. /package/dist/spw-stencil-library/{p-68f93962.entry.js.map → p-bf070798.entry.js.map} +0 -0
  762. /package/dist/spw-stencil-library/{p-110ca863.entry.js.map → p-c02b7133.entry.js.map} +0 -0
  763. /package/dist/spw-stencil-library/{p-ca98ee5d.entry.js.map → p-c278daa3.entry.js.map} +0 -0
  764. /package/dist/spw-stencil-library/{p-428aa721.entry.js.map → p-c398550f.entry.js.map} +0 -0
  765. /package/dist/spw-stencil-library/{p-803b2bb5.entry.js.map → p-c77adac8.entry.js.map} +0 -0
  766. /package/dist/spw-stencil-library/{p-ea0cfe62.entry.js.map → p-cc3a84a1.entry.js.map} +0 -0
  767. /package/dist/spw-stencil-library/{p-91b264d1.entry.js.map → p-cc869e6f.entry.js.map} +0 -0
  768. /package/dist/spw-stencil-library/{p-a1d06611.entry.js.map → p-ccbc7c44.entry.js.map} +0 -0
  769. /package/dist/spw-stencil-library/{p-3ac699ae.entry.js.map → p-d18146ca.entry.js.map} +0 -0
  770. /package/dist/spw-stencil-library/{p-65aec904.entry.js.map → p-d2f5d210.entry.js.map} +0 -0
  771. /package/dist/spw-stencil-library/{p-bb2421dc.entry.js.map → p-d8cae37d.entry.js.map} +0 -0
  772. /package/dist/spw-stencil-library/{p-e2bac6be.entry.js.map → p-db817793.entry.js.map} +0 -0
  773. /package/dist/spw-stencil-library/{p-c3246505.entry.js.map → p-dbb7e719.entry.js.map} +0 -0
  774. /package/dist/spw-stencil-library/{p-df4d1f42.entry.js.map → p-de771d14.entry.js.map} +0 -0
  775. /package/dist/spw-stencil-library/{p-187d02cb.entry.js.map → p-e369abbb.entry.js.map} +0 -0
  776. /package/dist/spw-stencil-library/{p-67b7b947.entry.js.map → p-e44b8ebb.entry.js.map} +0 -0
  777. /package/dist/spw-stencil-library/{p-6461fb4b.entry.js.map → p-e78304f0.entry.js.map} +0 -0
  778. /package/dist/spw-stencil-library/{p-25aaf6a6.entry.js.map → p-ea5f2427.entry.js.map} +0 -0
  779. /package/dist/spw-stencil-library/{p-95891f3a.entry.js.map → p-ea952c66.entry.js.map} +0 -0
  780. /package/dist/spw-stencil-library/{p-22f022ca.entry.js.map → p-eaa1025a.entry.js.map} +0 -0
  781. /package/dist/spw-stencil-library/{p-ef8f15e9.entry.js.map → p-f05cd056.entry.js.map} +0 -0
  782. /package/dist/spw-stencil-library/{p-2ef45489.entry.js.map → p-fad06d00.entry.js.map} +0 -0
@@ -21,7 +21,24 @@ const meta = {
21
21
  component: `
22
22
  <strong class="mr-2">Statut du composant :</strong> <spw-tag size="small" variant="green">Prêt</spw-tag>
23
23
 
24
- Fenêtre superposée affichant du contenu ou des actions importantes.
24
+ Le composant Modal affiche une fenêtre superposée qui capte l'attention de l'utilisateur pour afficher du contenu ou des actions importantes. Il masque temporairement le reste de l'interface et nécessite une interaction avant de continuer.
25
+
26
+ ## Tailles disponibles
27
+
28
+ - **Small** : Pour des messages courts ou confirmations simples
29
+ - **Medium** : Taille par défaut pour la plupart des cas d'usage
30
+ - **Large** : Pour du contenu plus riche ou des formulaires complets
31
+ - **Fluid** : S'adapte dynamiquement au contenu
32
+
33
+ ## Fonctionnalités
34
+
35
+ - Ouverture via attribut data-modal-trigger sur n'importe quel élément
36
+ - Fermeture via attribut data-modal-close, touche Escape, ou clic overlay
37
+ - Piège de focus (focus trap) pour l'accessibilité
38
+ - Animations d'entrée/sortie en fondu
39
+ - Gestion automatique des vidéos (arrêt à la fermeture)
40
+ - Méthodes programmatiques openModal() et closeModal()
41
+ - Événements spwModalOpen et spwModalClose
25
42
 
26
43
  [<spw-link>Consulter la documentation</spw-link>](https://zeroheight.com/2310c7a1e/p/75759c-modale)
27
44
  `,
@@ -74,6 +91,17 @@ Small.args = {
74
91
  </spw-group>
75
92
  `,
76
93
  };
94
+ Small.parameters = {
95
+ docs: {
96
+ description: {
97
+ story: `
98
+ Modal de petite taille idéale pour des messages de confirmation courts ou des alertes simples. Elle capte l'attention sans occuper trop d'espace à l'écran.
99
+
100
+ Cas d'usage : confirmations d'actions ("Êtes-vous sûr de vouloir supprimer ?"), messages d'alerte courts, notifications importantes nécessitant une action utilisateur.
101
+ `,
102
+ },
103
+ },
104
+ };
77
105
  export const Medium = Template.bind({});
78
106
  Medium.args = {
79
107
  size: 'medium',
@@ -86,6 +114,17 @@ Medium.args = {
86
114
  </spw-group>
87
115
  `,
88
116
  };
117
+ Medium.parameters = {
118
+ docs: {
119
+ description: {
120
+ story: `
121
+ Modal de taille moyenne, la plus couramment utilisée. Elle offre un bon équilibre entre espace disponible et focus de l'utilisateur.
122
+
123
+ Cas d'usage : formulaires de taille moyenne, affichage d'informations détaillées, paramètres de configuration, dialogues nécessitant plusieurs champs de saisie.
124
+ `,
125
+ },
126
+ },
127
+ };
89
128
  export const Large = Template.bind({});
90
129
  Large.args = {
91
130
  size: 'large',
@@ -98,6 +137,17 @@ Large.args = {
98
137
  </spw-group>
99
138
  `,
100
139
  };
140
+ Large.parameters = {
141
+ docs: {
142
+ description: {
143
+ story: `
144
+ Grande modal pour afficher du contenu riche ou des formulaires complexes. Elle maximise l'espace disponible tout en conservant les marges nécessaires.
145
+
146
+ Cas d'usage : formulaires longs avec plusieurs sections, affichage de tableaux ou listes détaillées, éditeurs de contenu, prévisualisation de documents.
147
+ `,
148
+ },
149
+ },
150
+ };
101
151
  export const Fluid = Template.bind({});
102
152
  Fluid.args = {
103
153
  size: 'fluid',
@@ -110,4 +160,15 @@ Fluid.args = {
110
160
  </spw-group>
111
161
  `,
112
162
  };
163
+ Fluid.parameters = {
164
+ docs: {
165
+ description: {
166
+ story: `
167
+ Modal fluide qui s'adapte dynamiquement à la taille de son contenu. Elle ajuste automatiquement sa largeur en fonction de ce qu'elle contient, dans les limites raisonnables.
168
+
169
+ Cas d'usage : contenu dynamique de taille variable, images ou médias dont la taille n'est pas connue à l'avance, galeries adaptatives.
170
+ `,
171
+ },
172
+ },
173
+ };
113
174
  //# sourceMappingURL=spw-modal.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spw-modal.stories.js","sourceRoot":"","sources":["../../../../src/stories/organisms/spw-modal/spw-modal.stories.ts"],"names":[],"mappings":"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","sourcesContent":["let componentsData: any;\n\ntry {\n componentsData = require('../../../../dist/components_json.json');\n} catch (error) {\n console.warn('components_json.json non trouvé. Utilisation de valeurs par défaut.');\n componentsData = {};\n}\n\nimport { Meta, StoryFn } from '@storybook/web-components';\nimport { withComponentControls, toKebabCase } from '@utils/utils';\nimport '../../assets/css/components.css';\n\nconst elementTag = 'spw-modal';\n\nconst argTypes = withComponentControls(componentsData, { tag: elementTag });\n\nconst meta: Meta = {\n title: 'Organismes/Modale',\n component: elementTag,\n argTypes: {\n ...argTypes,\n content: { control: 'text' },\n buttons: { control: 'text' },\n },\n tags: ['autodocs'],\n parameters: {\n docs: {\n description: {\n component: `\n<strong class=\"mr-2\">Statut du composant :</strong> <spw-tag size=\"small\" variant=\"green\">Prêt</spw-tag>\n\nFenêtre superposée affichant du contenu ou des actions importantes.\n\n[<spw-link>Consulter la documentation</spw-link>](https://zeroheight.com/2310c7a1e/p/75759c-modale)\n `,\n },\n },\n },\n};\n\nexport default meta;\n\nconst Template: StoryFn = args => {\n const fragment = new DocumentFragment();\n\n const button = document.createElement('spw-button');\n button.textContent = 'Ouvrir fenêtre modale';\n\n const element = document.createElement(elementTag);\n\n Object.entries(args).forEach(([key, val]) => {\n if (key.startsWith('on')) {\n element.addEventListener(key.substring(2).toLowerCase(), val);\n } else {\n if (key !== 'content' && key !== 'buttons' && key !== 'closeModal' && key !== 'openModal') {\n element.setAttribute(toKebabCase(key), val as string);\n }\n }\n });\n\n button.setAttribute('data-modal-trigger', args.id);\n\n if (args.content) {\n const contentDiv = document.createElement('div');\n contentDiv.setAttribute('slot', 'content');\n contentDiv.innerHTML = args.content;\n element.appendChild(contentDiv);\n }\n\n if (args.buttons) {\n const buttonsDiv = document.createElement('div');\n buttonsDiv.setAttribute('slot', 'buttons');\n buttonsDiv.innerHTML = args.buttons;\n element.appendChild(buttonsDiv);\n }\n\n fragment.appendChild(button);\n fragment.appendChild(element);\n\n return fragment;\n};\n\nexport const Small = Template.bind({});\nSmall.args = {\n size: 'small',\n id: 'modal1',\n content: 'Lorem ipsum dolor sit amet consectetur adipiscing scelerisque dui lorem ipsum.',\n buttons: `\n <spw-group alignment=\"right\">\n <spw-button size=\"medium\" variant=\"primary\" data-modal-close=\"modal1\">Valider</spw-button>\n <spw-button size=\"medium\" variant=\"secondary\" data-modal-close=\"modal1\">Fermer</spw-button>\n </spw-group>\n `,\n};\n\nexport const Medium = Template.bind({});\nMedium.args = {\n size: 'medium',\n id: 'modal2',\n content: 'Lorem ipsum dolor sit amet consectetur adipiscing scelerisque dui lorem ipsum.',\n buttons: `\n <spw-group alignment=\"right\">\n <spw-button size=\"medium\" variant=\"primary\" data-modal-close=\"modal2\">Valider</spw-button>\n <spw-button size=\"medium\" variant=\"secondary\" data-modal-close=\"modal2\">Fermer</spw-button>\n </spw-group>\n `,\n};\n\nexport const Large = Template.bind({});\nLarge.args = {\n size: 'large',\n id: 'modal3',\n content: 'Lorem ipsum dolor sit amet consectetur adipiscing scelerisque dui lorem ipsum.',\n buttons: `\n <spw-group alignment=\"right\">\n <spw-button size=\"medium\" variant=\"primary\" data-modal-close=\"modal3\">Valider</spw-button>\n <spw-button size=\"medium\" variant=\"secondary\" data-modal-close=\"modal3\">Fermer</spw-button>\n </spw-group>\n `,\n};\n\nexport const Fluid = Template.bind({});\nFluid.args = {\n size: 'fluid',\n id: 'modal4',\n content: 'Lorem ipsum dolor sit amet consectetur adipiscing scelerisque dui lorem ipsum.',\n buttons: `\n <spw-group alignment=\"right\">\n <spw-button size=\"medium\" variant=\"primary\" data-modal-close=\"modal4\">Valider</spw-button>\n <spw-button size=\"medium\" variant=\"secondary\" data-modal-close=\"modal4\">Fermer</spw-button>\n </spw-group>\n `,\n};\n"]}
1
+ {"version":3,"file":"spw-modal.stories.js","sourceRoot":"","sources":["../../../../src/stories/organisms/spw-modal/spw-modal.stories.ts"],"names":[],"mappings":"AAAA,IAAI,cAAmB,CAAC;AAExB,IAAI,CAAC;IACH,cAAc,GAAG,OAAO,CAAC,uCAAuC,CAAC,CAAC;AACpE,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,OAAO,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;IACpF,cAAc,GAAG,EAAE,CAAC;AACtB,CAAC;AAGD,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,iCAAiC,CAAC;AAEzC,MAAM,UAAU,GAAG,WAAW,CAAC;AAE/B,MAAM,QAAQ,GAAG,qBAAqB,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;AAE5E,MAAM,IAAI,GAAS;IACjB,KAAK,EAAE,mBAAmB;IAC1B,SAAS,EAAE,UAAU;IACrB,QAAQ,kCACH,QAAQ,KACX,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAC5B,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAC7B;IACD,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,WAAW,EAAE;gBACX,SAAS,EAAE;;;;;;;;;;;;;;;;;;;;;;;SAuBV;aACF;SACF;KACF;CACF,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,MAAM,QAAQ,GAAY,IAAI,CAAC,EAAE;IAC/B,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAExC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IACpD,MAAM,CAAC,WAAW,GAAG,uBAAuB,CAAC;IAE7C,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAEnD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;QAC1C,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,YAAY,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;gBAC1F,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,GAAa,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,YAAY,CAAC,oBAAoB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAEnD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACjD,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC3C,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;QACpC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACjD,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC3C,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;QACpC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IAED,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAE9B,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvC,KAAK,CAAC,IAAI,GAAG;IACX,IAAI,EAAE,OAAO;IACb,EAAE,EAAE,QAAQ;IACZ,OAAO,EAAE,gFAAgF;IACzF,OAAO,EAAE;;;;;GAKR;CACF,CAAC;AACF,KAAK,CAAC,UAAU,GAAG;IACjB,IAAI,EAAE;QACJ,WAAW,EAAE;YACX,KAAK,EAAE;;;;OAIN;SACF;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxC,MAAM,CAAC,IAAI,GAAG;IACZ,IAAI,EAAE,QAAQ;IACd,EAAE,EAAE,QAAQ;IACZ,OAAO,EAAE,gFAAgF;IACzF,OAAO,EAAE;;;;;GAKR;CACF,CAAC;AACF,MAAM,CAAC,UAAU,GAAG;IAClB,IAAI,EAAE;QACJ,WAAW,EAAE;YACX,KAAK,EAAE;;;;OAIN;SACF;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvC,KAAK,CAAC,IAAI,GAAG;IACX,IAAI,EAAE,OAAO;IACb,EAAE,EAAE,QAAQ;IACZ,OAAO,EAAE,gFAAgF;IACzF,OAAO,EAAE;;;;;GAKR;CACF,CAAC;AACF,KAAK,CAAC,UAAU,GAAG;IACjB,IAAI,EAAE;QACJ,WAAW,EAAE;YACX,KAAK,EAAE;;;;OAIN;SACF;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvC,KAAK,CAAC,IAAI,GAAG;IACX,IAAI,EAAE,OAAO;IACb,EAAE,EAAE,QAAQ;IACZ,OAAO,EAAE,gFAAgF;IACzF,OAAO,EAAE;;;;;KAKN;CACJ,CAAC;AACF,KAAK,CAAC,UAAU,GAAG;IACjB,IAAI,EAAE;QACJ,WAAW,EAAE;YACX,KAAK,EAAE;;;;OAIN;SACF;KACF;CACF,CAAC","sourcesContent":["let componentsData: any;\n\ntry {\n componentsData = require('../../../../dist/components_json.json');\n} catch (error) {\n console.warn('components_json.json non trouvé. Utilisation de valeurs par défaut.');\n componentsData = {};\n}\n\nimport { Meta, StoryFn } from '@storybook/web-components';\nimport { withComponentControls, toKebabCase } from '@utils/utils';\nimport '../../assets/css/components.css';\n\nconst elementTag = 'spw-modal';\n\nconst argTypes = withComponentControls(componentsData, { tag: elementTag });\n\nconst meta: Meta = {\n title: 'Organismes/Modale',\n component: elementTag,\n argTypes: {\n ...argTypes,\n content: { control: 'text' },\n buttons: { control: 'text' },\n },\n tags: ['autodocs'],\n parameters: {\n docs: {\n description: {\n component: `\n<strong class=\"mr-2\">Statut du composant :</strong> <spw-tag size=\"small\" variant=\"green\">Prêt</spw-tag>\n\nLe composant Modal affiche une fenêtre superposée qui capte l'attention de l'utilisateur pour afficher du contenu ou des actions importantes. Il masque temporairement le reste de l'interface et nécessite une interaction avant de continuer.\n\n## Tailles disponibles\n\n- **Small** : Pour des messages courts ou confirmations simples\n- **Medium** : Taille par défaut pour la plupart des cas d'usage\n- **Large** : Pour du contenu plus riche ou des formulaires complets\n- **Fluid** : S'adapte dynamiquement au contenu\n\n## Fonctionnalités\n\n- Ouverture via attribut data-modal-trigger sur n'importe quel élément\n- Fermeture via attribut data-modal-close, touche Escape, ou clic overlay\n- Piège de focus (focus trap) pour l'accessibilité\n- Animations d'entrée/sortie en fondu\n- Gestion automatique des vidéos (arrêt à la fermeture)\n- Méthodes programmatiques openModal() et closeModal()\n- Événements spwModalOpen et spwModalClose\n\n[<spw-link>Consulter la documentation</spw-link>](https://zeroheight.com/2310c7a1e/p/75759c-modale)\n `,\n },\n },\n },\n};\n\nexport default meta;\n\nconst Template: StoryFn = args => {\n const fragment = new DocumentFragment();\n\n const button = document.createElement('spw-button');\n button.textContent = 'Ouvrir fenêtre modale';\n\n const element = document.createElement(elementTag);\n\n Object.entries(args).forEach(([key, val]) => {\n if (key.startsWith('on')) {\n element.addEventListener(key.substring(2).toLowerCase(), val);\n } else {\n if (key !== 'content' && key !== 'buttons' && key !== 'closeModal' && key !== 'openModal') {\n element.setAttribute(toKebabCase(key), val as string);\n }\n }\n });\n\n button.setAttribute('data-modal-trigger', args.id);\n\n if (args.content) {\n const contentDiv = document.createElement('div');\n contentDiv.setAttribute('slot', 'content');\n contentDiv.innerHTML = args.content;\n element.appendChild(contentDiv);\n }\n\n if (args.buttons) {\n const buttonsDiv = document.createElement('div');\n buttonsDiv.setAttribute('slot', 'buttons');\n buttonsDiv.innerHTML = args.buttons;\n element.appendChild(buttonsDiv);\n }\n\n fragment.appendChild(button);\n fragment.appendChild(element);\n\n return fragment;\n};\n\nexport const Small = Template.bind({});\nSmall.args = {\n size: 'small',\n id: 'modal1',\n content: 'Lorem ipsum dolor sit amet consectetur adipiscing scelerisque dui lorem ipsum.',\n buttons: `\n <spw-group alignment=\"right\">\n <spw-button size=\"medium\" variant=\"primary\" data-modal-close=\"modal1\">Valider</spw-button>\n <spw-button size=\"medium\" variant=\"secondary\" data-modal-close=\"modal1\">Fermer</spw-button>\n </spw-group>\n `,\n};\nSmall.parameters = {\n docs: {\n description: {\n story: `\nModal de petite taille idéale pour des messages de confirmation courts ou des alertes simples. Elle capte l'attention sans occuper trop d'espace à l'écran.\n\nCas d'usage : confirmations d'actions (\"Êtes-vous sûr de vouloir supprimer ?\"), messages d'alerte courts, notifications importantes nécessitant une action utilisateur.\n `,\n },\n },\n};\n\nexport const Medium = Template.bind({});\nMedium.args = {\n size: 'medium',\n id: 'modal2',\n content: 'Lorem ipsum dolor sit amet consectetur adipiscing scelerisque dui lorem ipsum.',\n buttons: `\n <spw-group alignment=\"right\">\n <spw-button size=\"medium\" variant=\"primary\" data-modal-close=\"modal2\">Valider</spw-button>\n <spw-button size=\"medium\" variant=\"secondary\" data-modal-close=\"modal2\">Fermer</spw-button>\n </spw-group>\n `,\n};\nMedium.parameters = {\n docs: {\n description: {\n story: `\nModal de taille moyenne, la plus couramment utilisée. Elle offre un bon équilibre entre espace disponible et focus de l'utilisateur.\n\nCas d'usage : formulaires de taille moyenne, affichage d'informations détaillées, paramètres de configuration, dialogues nécessitant plusieurs champs de saisie.\n `,\n },\n },\n};\n\nexport const Large = Template.bind({});\nLarge.args = {\n size: 'large',\n id: 'modal3',\n content: 'Lorem ipsum dolor sit amet consectetur adipiscing scelerisque dui lorem ipsum.',\n buttons: `\n <spw-group alignment=\"right\">\n <spw-button size=\"medium\" variant=\"primary\" data-modal-close=\"modal3\">Valider</spw-button>\n <spw-button size=\"medium\" variant=\"secondary\" data-modal-close=\"modal3\">Fermer</spw-button>\n </spw-group>\n `,\n};\nLarge.parameters = {\n docs: {\n description: {\n story: `\nGrande modal pour afficher du contenu riche ou des formulaires complexes. Elle maximise l'espace disponible tout en conservant les marges nécessaires.\n\nCas d'usage : formulaires longs avec plusieurs sections, affichage de tableaux ou listes détaillées, éditeurs de contenu, prévisualisation de documents.\n `,\n },\n },\n};\n\nexport const Fluid = Template.bind({});\nFluid.args = {\n size: 'fluid',\n id: 'modal4',\n content: 'Lorem ipsum dolor sit amet consectetur adipiscing scelerisque dui lorem ipsum.',\n buttons: `\n <spw-group alignment=\"right\">\n <spw-button size=\"medium\" variant=\"primary\" data-modal-close=\"modal4\">Valider</spw-button>\n <spw-button size=\"medium\" variant=\"secondary\" data-modal-close=\"modal4\">Fermer</spw-button>\n </spw-group>\n `,\n};\nFluid.parameters = {\n docs: {\n description: {\n story: `\nModal fluide qui s'adapte dynamiquement à la taille de son contenu. Elle ajuste automatiquement sa largeur en fonction de ce qu'elle contient, dans les limites raisonnables.\n\nCas d'usage : contenu dynamique de taille variable, images ou médias dont la taille n'est pas connue à l'avance, galeries adaptatives.\n `,\n },\n },\n};\n"]}
@@ -21,7 +21,36 @@ const meta = {
21
21
  component: `
22
22
  <strong class="mr-2">Statut du composant :</strong> <spw-tag size="small" variant="green">Prêt</spw-tag>
23
23
 
24
- Permet d'afficher une grille d'éléments sous la forme d'un masonry.
24
+ Le composant Mosaic permet d'afficher une grille d'éléments sous la forme d'un masonry (mise en page dynamique type Pinterest). Il s'adapte automatiquement à la hauteur variable des contenus et offre une configuration responsive.
25
+
26
+ ## Structure
27
+
28
+ Le composant se compose de deux éléments :
29
+ - **spw-mosaic** : Conteneur principal avec gestion du masonry layout
30
+ - **spw-mosaic-item** : Wrapper pour chaque élément de la grille
31
+
32
+ ## Configuration responsive
33
+
34
+ - **colsDesktop** : Nombre de colonnes en vue desktop (défaut: 3)
35
+ - **colsTablet** : Nombre de colonnes en vue tablette (défaut: 2)
36
+ - **colsMobile** : Nombre de colonnes en vue mobile (défaut: 1)
37
+ - **isMasonry** : Active/désactive le mode masonry layout
38
+
39
+ ## Fonctionnalités
40
+
41
+ - Layout masonry automatique avec bibliothèque Masonry.js
42
+ - Grille responsive configurée par breakpoint
43
+ - Chargement intelligent des images avant disposition
44
+ - Support de tout type de contenu (cards, tiles)
45
+ - Mode grille classique si masonry désactivé
46
+
47
+ ## Cas d'usage
48
+
49
+ - Galeries d'actualités avec images de tailles variées
50
+ - Grilles de cartes avec contenus de hauteurs différentes
51
+ - Affichage de tuiles d'accès rapides organisées
52
+
53
+ [<spw-link>Consulter la documentation</spw-link>](https://zeroheight.com/2310c7a1e/p/378091-carousel-slider)
25
54
  `,
26
55
  },
27
56
  },
@@ -287,4 +316,48 @@ BigTiles.args = {
287
316
  colsTablet: 2,
288
317
  colsMobile: 1,
289
318
  };
319
+ Cards.parameters = {
320
+ docs: {
321
+ description: {
322
+ story: `
323
+ Mosaïque de cartes (spw-card) avec masonry activé en 3 colonnes desktop, 2 tablette, 1 mobile. Mélange de cartes avec et sans images, avec contenus de hauteurs variables (titres courts et longs).
324
+
325
+ Cas d'usage : galerie d'actualités, liste d'événements avec visuels optionnels, affichage de contenus éditoriaux mixtes. Le masonry permet une disposition harmonieuse malgré les hauteurs différentes.
326
+ `,
327
+ },
328
+ },
329
+ };
330
+ IconTiles.parameters = {
331
+ docs: {
332
+ description: {
333
+ story: `
334
+ Mosaïque de tuiles icônes (spw-tile variant="icon") organisées en grille masonry. Chaque tuile affiche une icône FontAwesome, un titre et une description. Configuration 3/2/1 colonnes.
335
+
336
+ Cas d'usage : grille d'accès rapides aux services, menu de fonctionnalités principales, portail d'outils avec icônes représentatives. Format compact et visuellement équilibré.
337
+ `,
338
+ },
339
+ },
340
+ };
341
+ LightTiles.parameters = {
342
+ docs: {
343
+ description: {
344
+ story: `
345
+ Mosaïque de tuiles légères (spw-tile variant="light") avec images de fond. Format minimaliste avec titre en overlay sur l'image. Configuration responsive 3/2/1 colonnes.
346
+
347
+ Cas d'usage : galerie de catégories thématiques, navigation visuelle par sections, portfolio de projets avec aperçu visuel. L'image attire l'attention et le titre identifie le contenu.
348
+ `,
349
+ },
350
+ },
351
+ };
352
+ BigTiles.parameters = {
353
+ docs: {
354
+ description: {
355
+ story: `
356
+ Mosaïque de grandes tuiles (spw-tile variant="big") avec images plein format et titre en overlay. Format impactant avec icône chevron indiquant l'interactivité. Configuration 3/2/1 colonnes.
357
+
358
+ Cas d'usage : mise en avant de grandes thématiques, landing pages avec sections principales, portails avec accès aux univers majeurs. Format généreux qui valorise le contenu visuel.
359
+ `,
360
+ },
361
+ },
362
+ };
290
363
  //# sourceMappingURL=spw-mosaic.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spw-mosaic.stories.js","sourceRoot":"","sources":["../../../../src/stories/organisms/spw-mosaic/spw-mosaic.stories.ts"],"names":[],"mappings":"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","sourcesContent":["let componentsData: any;\n\ntry {\n componentsData = require('../../../../dist/components_json.json');\n} catch (error) {\n console.warn('components_json.json non trouvé. Utilisation de valeurs par défaut.');\n componentsData = {};\n}\n\nimport { Meta, StoryFn } from '@storybook/web-components';\nimport { withComponentControls, extractArgTypes } from '@utils/utils';\n\nconst elementTag = 'spw-mosaic';\n\nconst subComponentTags = ['spw-mosaic-item'];\n\nconst argTypes = {\n ...withComponentControls(componentsData, { tag: elementTag }),\n ...extractArgTypes(componentsData, subComponentTags),\n};\n\nconst meta: Meta = {\n title: \"Organismes/Mosaique d'éléments (masonry)\",\n component: elementTag,\n argTypes,\n tags: ['autodocs'],\n parameters: {\n docs: {\n description: {\n component: `\n<strong class=\"mr-2\">Statut du composant :</strong> <spw-tag size=\"small\" variant=\"green\">Prêt</spw-tag>\n\nPermet d'afficher une grille d'éléments sous la forme d'un masonry.\n `,\n },\n },\n },\n};\n\nexport default meta;\n\nfunction htmlContentCards() {\n return /* HTML */ `\n <spw-mosaic-item>\n <spw-card full-height=\"true\" href=\"http://google.com\" target=\"_blank\">\n <spw-card-content subtag=\"Tag\" tag=\"Catégorie\" date=\"2024-02-09\">\n <spw-card-subtags>\n <spw-card-subtag-item link=\"http://google.be\">Sous-tag 1</spw-card-subtag-item>\n <spw-card-subtag-item link=\"http://google.be\">Sous-tag 2</spw-card-subtag-item>\n </spw-card-subtags>\n <spw-card-title>Lorem ipsum dolor sit amet consectetur adipiscing</spw-card-title>\n <spw-card-excerpt>\n Nullam et orci ac sapien hendrerit porta non in ligula. Suspendisse quis mattis neque. Cras sagittis nisi non urna congue, sed iaculis felis fermentum.\n </spw-card-excerpt>\n </spw-card-content>\n </spw-card>\n </spw-mosaic-item>\n <spw-mosaic-item>\n <spw-card full-height=\"true\" href=\"http://google.com\" target=\"_blank\">\n <spw-card-image label=\"Tag\">\n <img alt=\"Image\" src=\"https://images.unsplash.com/photo-1465056836041-7f43ac27dcb5\" />\n </spw-card-image>\n <spw-card-content subtag=\"Tag\" tag=\"Catégorie\" date=\"2024-02-09\">\n <spw-card-title>Lorem ipsum dolor sit amet consectetur adipiscing</spw-card-title>\n <spw-card-excerpt>\n Nullam et orci ac sapien hendrerit porta non in ligula. Suspendisse quis mattis neque. Cras sagittis nisi non urna congue, sed iaculis felis fermentum.\n </spw-card-excerpt>\n </spw-card-content>\n </spw-card>\n </spw-mosaic-item>\n <spw-mosaic-item>\n <spw-card full-height=\"true\" href=\"http://google.com\" target=\"_blank\">\n <spw-card-image label=\"Tag\">\n <img alt=\"Image\" src=\"https://images.unsplash.com/photo-1465056836041-7f43ac27dcb5\" />\n </spw-card-image>\n <spw-card-content subtag=\"Tag\" tag=\"Catégorie\" date=\"2024-02-09\">\n <spw-card-title>Lorem ipsum dolor sit</spw-card-title>\n <spw-card-excerpt>\n Nullam et orci ac sapien hendrerit porta non in ligula. Suspendisse quis mattis neque. Cras sagittis nisi non urna congue, sed iaculis felis fermentum.\n </spw-card-excerpt>\n </spw-card-content>\n </spw-card>\n </spw-mosaic-item>\n <spw-mosaic-item>\n <spw-card full-height=\"true\" href=\"http://google.com\" target=\"_blank\">\n <spw-card-image label=\"Tag\">\n <img alt=\"Image\" src=\"https://images.unsplash.com/photo-1465056836041-7f43ac27dcb5\" />\n </spw-card-image>\n <spw-card-content subtag=\"Tag\" tag=\"Catégorie\" date=\"2024-02-09\">\n <spw-card-title>Lorem ipsum dolor sit amet consectetur adipiscing</spw-card-title>\n <spw-card-excerpt>\n Nullam et orci ac sapien hendrerit porta non in ligula. Suspendisse quis mattis neque. Cras sagittis nisi non urna congue, sed iaculis felis fermentum.\n </spw-card-excerpt>\n </spw-card-content>\n </spw-card>\n </spw-mosaic-item>\n <spw-mosaic-item>\n <spw-card full-height=\"true\" href=\"http://google.com\" target=\"_blank\">\n <spw-card-image label=\"Tag\">\n <img alt=\"Image\" src=\"https://images.unsplash.com/photo-1465056836041-7f43ac27dcb5\" />\n </spw-card-image>\n <spw-card-content subtag=\"Tag\" tag=\"Catégorie\" date=\"2024-02-09\">\n <spw-card-title>Lorem ipsum dolor sit amet consectetur adipiscing</spw-card-title>\n <spw-card-excerpt>\n Nullam et orci ac sapien hendrerit porta non in ligula. Suspendisse quis mattis neque. Cras sagittis nisi non urna congue, sed iaculis felis fermentum.\n </spw-card-excerpt>\n </spw-card-content>\n </spw-card>\n </spw-mosaic-item>\n <spw-mosaic-item>\n <spw-card full-height=\"true\" href=\"http://google.com\" target=\"_blank\">\n <spw-card-content subtag=\"Tag\" tag=\"Catégorie\" date=\"2024-02-09\">\n <spw-card-title>Lorem ipsum dolor sit amet</spw-card-title>\n <spw-card-excerpt>\n Nullam et orci ac sapien hendrerit porta non in ligula. Suspendisse quis mattis neque. Cras sagittis nisi non urna congue, sed iaculis felis fermentum.\n </spw-card-excerpt>\n </spw-card-content>\n </spw-card>\n </spw-mosaic-item>\n `;\n}\n\nfunction htmlContentIconTiles() {\n return /* HTML */ `\n <spw-mosaic-item>\n <spw-tile variant=\"icon\" href=\"http://google.com\" target=\"_blank\">\n <spw-icon icon=\"fa-power-off\"></spw-icon>\n <spw-tile-title>Titre de ma tuile</spw-tile-title>\n <spw-tile-description>Description de ma tuile</spw-tile-description>\n </spw-tile>\n </spw-mosaic-item>\n <spw-mosaic-item>\n <spw-tile variant=\"icon\" href=\"http://google.com\" target=\"_blank\">\n <spw-icon icon=\"fa-map-location-dot\"></spw-icon>\n <spw-tile-title>Titre de ma tuile</spw-tile-title>\n <spw-tile-description>Description de ma tuile</spw-tile-description>\n </spw-tile>\n </spw-mosaic-item>\n <spw-mosaic-item>\n <spw-tile variant=\"icon\" href=\"http://google.com\" target=\"_blank\">\n <spw-icon icon=\"fa-paper-plane\"></spw-icon>\n <spw-tile-title>Titre de ma tuile</spw-tile-title>\n <spw-tile-description>Description de ma tuile</spw-tile-description>\n </spw-tile>\n </spw-mosaic-item>\n <spw-mosaic-item>\n <spw-tile variant=\"icon\" href=\"http://google.com\" target=\"_blank\">\n <spw-icon icon=\"fa-user\"></spw-icon>\n <spw-tile-title>Titre de ma tuile</spw-tile-title>\n <spw-tile-description>Description de ma tuile</spw-tile-description>\n </spw-tile>\n </spw-mosaic-item>\n <spw-mosaic-item>\n <spw-tile variant=\"icon\" href=\"http://google.com\" target=\"_blank\">\n <spw-icon icon=\"fa-image\"></spw-icon>\n <spw-tile-title>Titre de ma tuile</spw-tile-title>\n <spw-tile-description>Description de ma tuile</spw-tile-description>\n </spw-tile>\n </spw-mosaic-item>\n <spw-mosaic-item>\n <spw-tile variant=\"icon\" href=\"http://google.com\" target=\"_blank\">\n <spw-icon icon=\"fa-bell\"></spw-icon>\n <spw-tile-title>Titre de ma tuile</spw-tile-title>\n <spw-tile-description>Description de ma tuile</spw-tile-description>\n </spw-tile>\n </spw-mosaic-item>\n `;\n}\n\nfunction htmlContentLightTiles() {\n return /* HTML */ `\n <spw-mosaic-item>\n <spw-tile image-src=\"https://images.unsplash.com/photo-1465056836041-7f43ac27dcb5\" image-alt=\"Image de tuile\" variant=\"light\" href=\"http://google.com\" target=\"_blank\">\n <spw-tile-title>Titre de ma tuile</spw-tile-title>\n </spw-tile>\n </spw-mosaic-item>\n <spw-mosaic-item>\n <spw-tile image-src=\"https://images.unsplash.com/photo-1465056836041-7f43ac27dcb5\" image-alt=\"Image de tuile\" variant=\"light\" href=\"http://google.com\" target=\"_blank\">\n <spw-tile-title>Titre de ma tuile</spw-tile-title>\n </spw-tile>\n </spw-mosaic-item>\n <spw-mosaic-item>\n <spw-tile image-src=\"https://images.unsplash.com/photo-1465056836041-7f43ac27dcb5\" image-alt=\"Image de tuile\" variant=\"light\" href=\"http://google.com\" target=\"_blank\">\n <spw-tile-title>Titre de ma tuile</spw-tile-title>\n </spw-tile>\n </spw-mosaic-item>\n `;\n}\n\nfunction htmlContentBigTiles() {\n return /* HTML */ `\n <spw-mosaic-item>\n <spw-tile image-src=\"https://images.unsplash.com/photo-1465056836041-7f43ac27dcb5\" image-alt=\"Image de tuile\" variant=\"big\" href=\"http://google.com\" target=\"_blank\">\n <spw-tile-title>Titre de ma tuile</spw-tile-title>\n </spw-tile>\n </spw-mosaic-item>\n <spw-mosaic-item>\n <spw-tile image-src=\"https://images.unsplash.com/photo-1465056836041-7f43ac27dcb5\" image-alt=\"Image de tuile\" variant=\"big\" href=\"http://google.com\" target=\"_blank\">\n <spw-tile-title>Titre de ma tuile</spw-tile-title>\n </spw-tile>\n </spw-mosaic-item>\n <spw-mosaic-item>\n <spw-tile image-src=\"https://images.unsplash.com/photo-1465056836041-7f43ac27dcb5\" image-alt=\"Image de tuile\" variant=\"big\" href=\"http://google.com\" target=\"_blank\">\n <spw-tile-title>Titre de ma tuile</spw-tile-title>\n </spw-tile>\n </spw-mosaic-item>\n `;\n}\n\nfunction camelToKebab(str: string) {\n return str.replace(/[A-Z]/g, match => `-${match.toLowerCase()}`);\n}\n\nconst TemplateCards: StoryFn = args => {\n const element = document.createElement(elementTag);\n\n const controls = withComponentControls(componentsData, { tag: elementTag }) || {};\n const masterProps = controls.__realProps || Object.keys(controls);\n\n Object.entries(args).forEach(([key, val]) => {\n if (masterProps.includes(key)) {\n const kebabKey = camelToKebab(key);\n element.setAttribute(kebabKey, val);\n } else if (key.startsWith('on')) {\n element.addEventListener(key.substring(2).toLowerCase(), val);\n }\n });\n\n element.innerHTML = htmlContentCards();\n\n return element;\n};\n\nconst TemplateIconTiles: StoryFn = args => {\n const element = document.createElement(elementTag);\n\n const controls = withComponentControls(componentsData, { tag: elementTag }) || {};\n const masterProps = controls.__realProps || Object.keys(controls);\n\n Object.entries(args).forEach(([key, val]) => {\n if (masterProps.includes(key)) {\n const kebabKey = camelToKebab(key);\n element.setAttribute(kebabKey, val);\n } else if (key.startsWith('on')) {\n element.addEventListener(key.substring(2).toLowerCase(), val);\n }\n });\n\n element.innerHTML = htmlContentIconTiles();\n\n return element;\n};\n\nconst TemplateLightTiles: StoryFn = args => {\n const element = document.createElement(elementTag);\n\n const controls = withComponentControls(componentsData, { tag: elementTag }) || {};\n const masterProps = controls.__realProps || Object.keys(controls);\n\n Object.entries(args).forEach(([key, val]) => {\n if (masterProps.includes(key)) {\n const kebabKey = camelToKebab(key);\n element.setAttribute(kebabKey, val);\n } else if (key.startsWith('on')) {\n element.addEventListener(key.substring(2).toLowerCase(), val);\n }\n });\n\n element.innerHTML = htmlContentLightTiles();\n\n return element;\n};\n\nconst TemplateBigTiles: StoryFn = args => {\n const element = document.createElement(elementTag);\n\n const controls = withComponentControls(componentsData, { tag: elementTag }) || {};\n const masterProps = controls.__realProps || Object.keys(controls);\n\n Object.entries(args).forEach(([key, val]) => {\n if (masterProps.includes(key)) {\n const kebabKey = camelToKebab(key);\n element.setAttribute(kebabKey, val);\n } else if (key.startsWith('on')) {\n element.addEventListener(key.substring(2).toLowerCase(), val);\n }\n });\n\n element.innerHTML = htmlContentBigTiles();\n\n return element;\n};\n\nexport const Cards = TemplateCards.bind({});\nCards.args = {\n isMasonry: true,\n colsDesktop: 3,\n colsTablet: 2,\n colsMobile: 1,\n};\n\nexport const IconTiles = TemplateIconTiles.bind({});\nIconTiles.args = {\n isMasonry: true,\n colsDesktop: 3,\n colsTablet: 2,\n colsMobile: 1,\n};\n\nexport const LightTiles = TemplateLightTiles.bind({});\nLightTiles.args = {\n isMasonry: true,\n colsDesktop: 3,\n colsTablet: 2,\n colsMobile: 1,\n};\n\nexport const BigTiles = TemplateBigTiles.bind({});\nBigTiles.args = {\n isMasonry: true,\n colsDesktop: 3,\n colsTablet: 2,\n colsMobile: 1,\n};\n"]}
1
+ {"version":3,"file":"spw-mosaic.stories.js","sourceRoot":"","sources":["../../../../src/stories/organisms/spw-mosaic/spw-mosaic.stories.ts"],"names":[],"mappings":"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","sourcesContent":["let componentsData: any;\n\ntry {\n componentsData = require('../../../../dist/components_json.json');\n} catch (error) {\n console.warn('components_json.json non trouvé. Utilisation de valeurs par défaut.');\n componentsData = {};\n}\n\nimport { Meta, StoryFn } from '@storybook/web-components';\nimport { withComponentControls, extractArgTypes } from '@utils/utils';\n\nconst elementTag = 'spw-mosaic';\n\nconst subComponentTags = ['spw-mosaic-item'];\n\nconst argTypes = {\n ...withComponentControls(componentsData, { tag: elementTag }),\n ...extractArgTypes(componentsData, subComponentTags),\n};\n\nconst meta: Meta = {\n title: \"Organismes/Mosaique d'éléments (masonry)\",\n component: elementTag,\n argTypes,\n tags: ['autodocs'],\n parameters: {\n docs: {\n description: {\n component: `\n<strong class=\"mr-2\">Statut du composant :</strong> <spw-tag size=\"small\" variant=\"green\">Prêt</spw-tag>\n\nLe composant Mosaic permet d'afficher une grille d'éléments sous la forme d'un masonry (mise en page dynamique type Pinterest). Il s'adapte automatiquement à la hauteur variable des contenus et offre une configuration responsive.\n\n## Structure\n\nLe composant se compose de deux éléments :\n- **spw-mosaic** : Conteneur principal avec gestion du masonry layout\n- **spw-mosaic-item** : Wrapper pour chaque élément de la grille\n\n## Configuration responsive\n\n- **colsDesktop** : Nombre de colonnes en vue desktop (défaut: 3)\n- **colsTablet** : Nombre de colonnes en vue tablette (défaut: 2)\n- **colsMobile** : Nombre de colonnes en vue mobile (défaut: 1)\n- **isMasonry** : Active/désactive le mode masonry layout\n\n## Fonctionnalités\n\n- Layout masonry automatique avec bibliothèque Masonry.js\n- Grille responsive configurée par breakpoint\n- Chargement intelligent des images avant disposition\n- Support de tout type de contenu (cards, tiles)\n- Mode grille classique si masonry désactivé\n\n## Cas d'usage\n\n- Galeries d'actualités avec images de tailles variées\n- Grilles de cartes avec contenus de hauteurs différentes\n- Affichage de tuiles d'accès rapides organisées\n\n[<spw-link>Consulter la documentation</spw-link>](https://zeroheight.com/2310c7a1e/p/378091-carousel-slider)\n `,\n },\n },\n },\n};\n\nexport default meta;\n\nfunction htmlContentCards() {\n return /* HTML */ `\n <spw-mosaic-item>\n <spw-card full-height=\"true\" href=\"http://google.com\" target=\"_blank\">\n <spw-card-content subtag=\"Tag\" tag=\"Catégorie\" date=\"2024-02-09\">\n <spw-card-subtags>\n <spw-card-subtag-item link=\"http://google.be\">Sous-tag 1</spw-card-subtag-item>\n <spw-card-subtag-item link=\"http://google.be\">Sous-tag 2</spw-card-subtag-item>\n </spw-card-subtags>\n <spw-card-title>Lorem ipsum dolor sit amet consectetur adipiscing</spw-card-title>\n <spw-card-excerpt>\n Nullam et orci ac sapien hendrerit porta non in ligula. Suspendisse quis mattis neque. Cras sagittis nisi non urna congue, sed iaculis felis fermentum.\n </spw-card-excerpt>\n </spw-card-content>\n </spw-card>\n </spw-mosaic-item>\n <spw-mosaic-item>\n <spw-card full-height=\"true\" href=\"http://google.com\" target=\"_blank\">\n <spw-card-image label=\"Tag\">\n <img alt=\"Image\" src=\"https://images.unsplash.com/photo-1465056836041-7f43ac27dcb5\" />\n </spw-card-image>\n <spw-card-content subtag=\"Tag\" tag=\"Catégorie\" date=\"2024-02-09\">\n <spw-card-title>Lorem ipsum dolor sit amet consectetur adipiscing</spw-card-title>\n <spw-card-excerpt>\n Nullam et orci ac sapien hendrerit porta non in ligula. Suspendisse quis mattis neque. Cras sagittis nisi non urna congue, sed iaculis felis fermentum.\n </spw-card-excerpt>\n </spw-card-content>\n </spw-card>\n </spw-mosaic-item>\n <spw-mosaic-item>\n <spw-card full-height=\"true\" href=\"http://google.com\" target=\"_blank\">\n <spw-card-image label=\"Tag\">\n <img alt=\"Image\" src=\"https://images.unsplash.com/photo-1465056836041-7f43ac27dcb5\" />\n </spw-card-image>\n <spw-card-content subtag=\"Tag\" tag=\"Catégorie\" date=\"2024-02-09\">\n <spw-card-title>Lorem ipsum dolor sit</spw-card-title>\n <spw-card-excerpt>\n Nullam et orci ac sapien hendrerit porta non in ligula. Suspendisse quis mattis neque. Cras sagittis nisi non urna congue, sed iaculis felis fermentum.\n </spw-card-excerpt>\n </spw-card-content>\n </spw-card>\n </spw-mosaic-item>\n <spw-mosaic-item>\n <spw-card full-height=\"true\" href=\"http://google.com\" target=\"_blank\">\n <spw-card-image label=\"Tag\">\n <img alt=\"Image\" src=\"https://images.unsplash.com/photo-1465056836041-7f43ac27dcb5\" />\n </spw-card-image>\n <spw-card-content subtag=\"Tag\" tag=\"Catégorie\" date=\"2024-02-09\">\n <spw-card-title>Lorem ipsum dolor sit amet consectetur adipiscing</spw-card-title>\n <spw-card-excerpt>\n Nullam et orci ac sapien hendrerit porta non in ligula. Suspendisse quis mattis neque. Cras sagittis nisi non urna congue, sed iaculis felis fermentum.\n </spw-card-excerpt>\n </spw-card-content>\n </spw-card>\n </spw-mosaic-item>\n <spw-mosaic-item>\n <spw-card full-height=\"true\" href=\"http://google.com\" target=\"_blank\">\n <spw-card-image label=\"Tag\">\n <img alt=\"Image\" src=\"https://images.unsplash.com/photo-1465056836041-7f43ac27dcb5\" />\n </spw-card-image>\n <spw-card-content subtag=\"Tag\" tag=\"Catégorie\" date=\"2024-02-09\">\n <spw-card-title>Lorem ipsum dolor sit amet consectetur adipiscing</spw-card-title>\n <spw-card-excerpt>\n Nullam et orci ac sapien hendrerit porta non in ligula. Suspendisse quis mattis neque. Cras sagittis nisi non urna congue, sed iaculis felis fermentum.\n </spw-card-excerpt>\n </spw-card-content>\n </spw-card>\n </spw-mosaic-item>\n <spw-mosaic-item>\n <spw-card full-height=\"true\" href=\"http://google.com\" target=\"_blank\">\n <spw-card-content subtag=\"Tag\" tag=\"Catégorie\" date=\"2024-02-09\">\n <spw-card-title>Lorem ipsum dolor sit amet</spw-card-title>\n <spw-card-excerpt>\n Nullam et orci ac sapien hendrerit porta non in ligula. Suspendisse quis mattis neque. Cras sagittis nisi non urna congue, sed iaculis felis fermentum.\n </spw-card-excerpt>\n </spw-card-content>\n </spw-card>\n </spw-mosaic-item>\n `;\n}\n\nfunction htmlContentIconTiles() {\n return /* HTML */ `\n <spw-mosaic-item>\n <spw-tile variant=\"icon\" href=\"http://google.com\" target=\"_blank\">\n <spw-icon icon=\"fa-power-off\"></spw-icon>\n <spw-tile-title>Titre de ma tuile</spw-tile-title>\n <spw-tile-description>Description de ma tuile</spw-tile-description>\n </spw-tile>\n </spw-mosaic-item>\n <spw-mosaic-item>\n <spw-tile variant=\"icon\" href=\"http://google.com\" target=\"_blank\">\n <spw-icon icon=\"fa-map-location-dot\"></spw-icon>\n <spw-tile-title>Titre de ma tuile</spw-tile-title>\n <spw-tile-description>Description de ma tuile</spw-tile-description>\n </spw-tile>\n </spw-mosaic-item>\n <spw-mosaic-item>\n <spw-tile variant=\"icon\" href=\"http://google.com\" target=\"_blank\">\n <spw-icon icon=\"fa-paper-plane\"></spw-icon>\n <spw-tile-title>Titre de ma tuile</spw-tile-title>\n <spw-tile-description>Description de ma tuile</spw-tile-description>\n </spw-tile>\n </spw-mosaic-item>\n <spw-mosaic-item>\n <spw-tile variant=\"icon\" href=\"http://google.com\" target=\"_blank\">\n <spw-icon icon=\"fa-user\"></spw-icon>\n <spw-tile-title>Titre de ma tuile</spw-tile-title>\n <spw-tile-description>Description de ma tuile</spw-tile-description>\n </spw-tile>\n </spw-mosaic-item>\n <spw-mosaic-item>\n <spw-tile variant=\"icon\" href=\"http://google.com\" target=\"_blank\">\n <spw-icon icon=\"fa-image\"></spw-icon>\n <spw-tile-title>Titre de ma tuile</spw-tile-title>\n <spw-tile-description>Description de ma tuile</spw-tile-description>\n </spw-tile>\n </spw-mosaic-item>\n <spw-mosaic-item>\n <spw-tile variant=\"icon\" href=\"http://google.com\" target=\"_blank\">\n <spw-icon icon=\"fa-bell\"></spw-icon>\n <spw-tile-title>Titre de ma tuile</spw-tile-title>\n <spw-tile-description>Description de ma tuile</spw-tile-description>\n </spw-tile>\n </spw-mosaic-item>\n `;\n}\n\nfunction htmlContentLightTiles() {\n return /* HTML */ `\n <spw-mosaic-item>\n <spw-tile image-src=\"https://images.unsplash.com/photo-1465056836041-7f43ac27dcb5\" image-alt=\"Image de tuile\" variant=\"light\" href=\"http://google.com\" target=\"_blank\">\n <spw-tile-title>Titre de ma tuile</spw-tile-title>\n </spw-tile>\n </spw-mosaic-item>\n <spw-mosaic-item>\n <spw-tile image-src=\"https://images.unsplash.com/photo-1465056836041-7f43ac27dcb5\" image-alt=\"Image de tuile\" variant=\"light\" href=\"http://google.com\" target=\"_blank\">\n <spw-tile-title>Titre de ma tuile</spw-tile-title>\n </spw-tile>\n </spw-mosaic-item>\n <spw-mosaic-item>\n <spw-tile image-src=\"https://images.unsplash.com/photo-1465056836041-7f43ac27dcb5\" image-alt=\"Image de tuile\" variant=\"light\" href=\"http://google.com\" target=\"_blank\">\n <spw-tile-title>Titre de ma tuile</spw-tile-title>\n </spw-tile>\n </spw-mosaic-item>\n `;\n}\n\nfunction htmlContentBigTiles() {\n return /* HTML */ `\n <spw-mosaic-item>\n <spw-tile image-src=\"https://images.unsplash.com/photo-1465056836041-7f43ac27dcb5\" image-alt=\"Image de tuile\" variant=\"big\" href=\"http://google.com\" target=\"_blank\">\n <spw-tile-title>Titre de ma tuile</spw-tile-title>\n </spw-tile>\n </spw-mosaic-item>\n <spw-mosaic-item>\n <spw-tile image-src=\"https://images.unsplash.com/photo-1465056836041-7f43ac27dcb5\" image-alt=\"Image de tuile\" variant=\"big\" href=\"http://google.com\" target=\"_blank\">\n <spw-tile-title>Titre de ma tuile</spw-tile-title>\n </spw-tile>\n </spw-mosaic-item>\n <spw-mosaic-item>\n <spw-tile image-src=\"https://images.unsplash.com/photo-1465056836041-7f43ac27dcb5\" image-alt=\"Image de tuile\" variant=\"big\" href=\"http://google.com\" target=\"_blank\">\n <spw-tile-title>Titre de ma tuile</spw-tile-title>\n </spw-tile>\n </spw-mosaic-item>\n `;\n}\n\nfunction camelToKebab(str: string) {\n return str.replace(/[A-Z]/g, match => `-${match.toLowerCase()}`);\n}\n\nconst TemplateCards: StoryFn = args => {\n const element = document.createElement(elementTag);\n\n const controls = withComponentControls(componentsData, { tag: elementTag }) || {};\n const masterProps = controls.__realProps || Object.keys(controls);\n\n Object.entries(args).forEach(([key, val]) => {\n if (masterProps.includes(key)) {\n const kebabKey = camelToKebab(key);\n element.setAttribute(kebabKey, val);\n } else if (key.startsWith('on')) {\n element.addEventListener(key.substring(2).toLowerCase(), val);\n }\n });\n\n element.innerHTML = htmlContentCards();\n\n return element;\n};\n\nconst TemplateIconTiles: StoryFn = args => {\n const element = document.createElement(elementTag);\n\n const controls = withComponentControls(componentsData, { tag: elementTag }) || {};\n const masterProps = controls.__realProps || Object.keys(controls);\n\n Object.entries(args).forEach(([key, val]) => {\n if (masterProps.includes(key)) {\n const kebabKey = camelToKebab(key);\n element.setAttribute(kebabKey, val);\n } else if (key.startsWith('on')) {\n element.addEventListener(key.substring(2).toLowerCase(), val);\n }\n });\n\n element.innerHTML = htmlContentIconTiles();\n\n return element;\n};\n\nconst TemplateLightTiles: StoryFn = args => {\n const element = document.createElement(elementTag);\n\n const controls = withComponentControls(componentsData, { tag: elementTag }) || {};\n const masterProps = controls.__realProps || Object.keys(controls);\n\n Object.entries(args).forEach(([key, val]) => {\n if (masterProps.includes(key)) {\n const kebabKey = camelToKebab(key);\n element.setAttribute(kebabKey, val);\n } else if (key.startsWith('on')) {\n element.addEventListener(key.substring(2).toLowerCase(), val);\n }\n });\n\n element.innerHTML = htmlContentLightTiles();\n\n return element;\n};\n\nconst TemplateBigTiles: StoryFn = args => {\n const element = document.createElement(elementTag);\n\n const controls = withComponentControls(componentsData, { tag: elementTag }) || {};\n const masterProps = controls.__realProps || Object.keys(controls);\n\n Object.entries(args).forEach(([key, val]) => {\n if (masterProps.includes(key)) {\n const kebabKey = camelToKebab(key);\n element.setAttribute(kebabKey, val);\n } else if (key.startsWith('on')) {\n element.addEventListener(key.substring(2).toLowerCase(), val);\n }\n });\n\n element.innerHTML = htmlContentBigTiles();\n\n return element;\n};\n\nexport const Cards = TemplateCards.bind({});\nCards.args = {\n isMasonry: true,\n colsDesktop: 3,\n colsTablet: 2,\n colsMobile: 1,\n};\n\nexport const IconTiles = TemplateIconTiles.bind({});\nIconTiles.args = {\n isMasonry: true,\n colsDesktop: 3,\n colsTablet: 2,\n colsMobile: 1,\n};\n\nexport const LightTiles = TemplateLightTiles.bind({});\nLightTiles.args = {\n isMasonry: true,\n colsDesktop: 3,\n colsTablet: 2,\n colsMobile: 1,\n};\n\nexport const BigTiles = TemplateBigTiles.bind({});\nBigTiles.args = {\n isMasonry: true,\n colsDesktop: 3,\n colsTablet: 2,\n colsMobile: 1,\n};\n\nCards.parameters = {\n docs: {\n description: {\n story: `\nMosaïque de cartes (spw-card) avec masonry activé en 3 colonnes desktop, 2 tablette, 1 mobile. Mélange de cartes avec et sans images, avec contenus de hauteurs variables (titres courts et longs).\n\nCas d'usage : galerie d'actualités, liste d'événements avec visuels optionnels, affichage de contenus éditoriaux mixtes. Le masonry permet une disposition harmonieuse malgré les hauteurs différentes.\n `,\n },\n },\n};\n\nIconTiles.parameters = {\n docs: {\n description: {\n story: `\nMosaïque de tuiles icônes (spw-tile variant=\"icon\") organisées en grille masonry. Chaque tuile affiche une icône FontAwesome, un titre et une description. Configuration 3/2/1 colonnes.\n\nCas d'usage : grille d'accès rapides aux services, menu de fonctionnalités principales, portail d'outils avec icônes représentatives. Format compact et visuellement équilibré.\n `,\n },\n },\n};\n\nLightTiles.parameters = {\n docs: {\n description: {\n story: `\nMosaïque de tuiles légères (spw-tile variant=\"light\") avec images de fond. Format minimaliste avec titre en overlay sur l'image. Configuration responsive 3/2/1 colonnes.\n\nCas d'usage : galerie de catégories thématiques, navigation visuelle par sections, portfolio de projets avec aperçu visuel. L'image attire l'attention et le titre identifie le contenu.\n `,\n },\n },\n};\n\nBigTiles.parameters = {\n docs: {\n description: {\n story: `\nMosaïque de grandes tuiles (spw-tile variant=\"big\") avec images plein format et titre en overlay. Format impactant avec icône chevron indiquant l'interactivité. Configuration 3/2/1 colonnes.\n\nCas d'usage : mise en avant de grandes thématiques, landing pages avec sections principales, portails avec accès aux univers majeurs. Format généreux qui valorise le contenu visuel.\n `,\n },\n },\n};\n"]}
@@ -21,7 +21,37 @@ const meta = {
21
21
  component: `
22
22
  <strong class="mr-2">Statut du composant :</strong> <spw-tag size="small" variant="green">Prêt</spw-tag>
23
23
 
24
- Panneau latéral pour navigation ou actions contextuelles.
24
+ Le composant Sidebar est un panneau latéral rétractable pour la navigation principale ou les actions contextuelles. Idéal pour les back-offices et applications web complexes nécessitant une navigation permanente et accessible.
25
+
26
+ ## Structure
27
+
28
+ Le composant se compose de quatre éléments :
29
+ - **spw-sidebar** : Conteneur principal avec gestion de l'état déplié/rétracté
30
+ - **spw-sidebar-navigation-item** : Item de navigation avec icône, tooltip, badge et état actif
31
+ - **spw-sidebar-navigation-dropdown** : Menu déroulant multi-niveaux
32
+ - **spw-sidebar-navigation-separator** : Séparateur visuel entre groupes d'items
33
+
34
+ ## Slots disponibles
35
+
36
+ - **navigation-top** : Éléments de navigation principaux (partie haute)
37
+ - **navigation-bottom** : Éléments de navigation secondaires (partie basse, fixée au bas)
38
+
39
+ ## Fonctionnalités
40
+
41
+ - Rétracter/déplier via bouton toggle ou bordure cliquable
42
+ - Navigation multi-niveaux avec dropdowns imbriqués
43
+ - Tooltips automatiques en mode rétracté
44
+ - Badges de notification sur items
45
+ - État actif synchronisé avec la page courante
46
+ - Gestion automatique de la classe body pour adaptation du layout
47
+ - Compatible avec spw-topbar (détection automatique)
48
+
49
+ ## Cas d'usage
50
+
51
+ - Navigation principale de back-office
52
+ - Menus de configuration et administration
53
+ - Interfaces d'applications métier
54
+ - Portails avec navigation complexe
25
55
 
26
56
  [<spw-link>Consulter la documentation</spw-link>](https://zeroheight.com/2310c7a1e/p/30d84f-sidebar)
27
57
  `,
@@ -1 +1 @@
1
- {"version":3,"file":"spw-sidebar.stories.js","sourceRoot":"","sources":["../../../../src/stories/organisms/spw-sidebar/spw-sidebar.stories.ts"],"names":[],"mappings":"AAAA,IAAI,cAAmB,CAAC;AAExB,IAAI,CAAC;IACH,cAAc,GAAG,OAAO,CAAC,uCAAuC,CAAC,CAAC;AACpE,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,OAAO,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;IACpF,cAAc,GAAG,EAAE,CAAC;AACtB,CAAC;AAGD,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEnF,MAAM,UAAU,GAAG,aAAa,CAAC;AAEjC,MAAM,gBAAgB,GAAG,CAAC,kCAAkC,EAAE,iCAAiC,EAAE,6BAA6B,CAAC,CAAC;AAEhI,MAAM,QAAQ,mCACT,qBAAqB,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,GAC1D,eAAe,CAAC,cAAc,EAAE,gBAAgB,CAAC,CACrD,CAAC;AAEF,MAAM,IAAI,GAAS;IACjB,KAAK,EAAE,oBAAoB;IAC3B,SAAS,EAAE,UAAU;IACrB,QAAQ;IACR,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,WAAW,EAAE;gBACX,SAAS,EAAE;;;;;;SAMV;aACF;SACF;KACF;CACF,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,SAAS,kBAAkB;IACzB,OAAO,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CjB,CAAC;AACJ,CAAC;AAED,MAAM,eAAe,GAAY,IAAI,CAAC,EAAE;IACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAEnD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC;IAClF,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAElE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;QAC1C,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,GAAa,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,SAAS,GAAG,kBAAkB,EAAE,CAAC;IAEzC,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAChD,OAAO,CAAC,IAAI,GAAG;IACb,eAAe,EAAE,KAAK;CACvB,CAAC","sourcesContent":["let componentsData: any;\n\ntry {\n componentsData = require('../../../../dist/components_json.json');\n} catch (error) {\n console.warn('components_json.json non trouvé. Utilisation de valeurs par défaut.');\n componentsData = {};\n}\n\nimport { Meta, StoryFn } from '@storybook/web-components';\nimport { withComponentControls, extractArgTypes, toKebabCase } from '@utils/utils';\n\nconst elementTag = 'spw-sidebar';\n\nconst subComponentTags = ['spw-sidebar-navigation-separator', 'spw-sidebar-navigation-dropdown', 'spw-sidebar-navigation-item'];\n\nconst argTypes = {\n ...withComponentControls(componentsData, { tag: elementTag }),\n ...extractArgTypes(componentsData, subComponentTags),\n};\n\nconst meta: Meta = {\n title: 'Organismes/Sidebar',\n component: elementTag,\n argTypes,\n tags: ['autodocs'],\n parameters: {\n docs: {\n description: {\n component: `\n<strong class=\"mr-2\">Statut du composant :</strong> <spw-tag size=\"small\" variant=\"green\">Prêt</spw-tag>\n\nPanneau latéral pour navigation ou actions contextuelles. \n\n[<spw-link>Consulter la documentation</spw-link>](https://zeroheight.com/2310c7a1e/p/30d84f-sidebar)\n `,\n },\n },\n },\n};\n\nexport default meta;\n\nfunction htmlContentDefault() {\n return /* HTML */ `\n <div slot=\"navigation-top\">\n <spw-sidebar-navigation-item icon=\"fa-home\" tooltip-title=\"Accueil\" active> Accueil </spw-sidebar-navigation-item>\n <spw-sidebar-navigation-separator></spw-sidebar-navigation-separator>\n <spw-sidebar-navigation-item icon=\"fa-file\" bubble=\"3\" tooltip-title=\"Documents\">\n Documents\n <spw-sidebar-navigation-dropdown slot=\"dropdown\">\n <spw-sidebar-navigation-item> Item </spw-sidebar-navigation-item>\n <spw-sidebar-navigation-item>\n Sous-catégorie\n <spw-sidebar-navigation-dropdown slot=\"dropdown\">\n <spw-sidebar-navigation-item> Item </spw-sidebar-navigation-item>\n <spw-sidebar-navigation-item> Item </spw-sidebar-navigation-item>\n </spw-sidebar-navigation-dropdown></spw-sidebar-navigation-item\n >\n <spw-sidebar-navigation-item>\n Sous-catégorie\n <spw-sidebar-navigation-dropdown slot=\"dropdown\">\n <spw-sidebar-navigation-item> Item </spw-sidebar-navigation-item>\n <spw-sidebar-navigation-item> Item </spw-sidebar-navigation-item>\n </spw-sidebar-navigation-dropdown></spw-sidebar-navigation-item\n >\n <spw-sidebar-navigation-item>\n Sous-catégorie\n <spw-sidebar-navigation-dropdown slot=\"dropdown\">\n <spw-sidebar-navigation-item> Item </spw-sidebar-navigation-item>\n <spw-sidebar-navigation-item> Item </spw-sidebar-navigation-item>\n </spw-sidebar-navigation-dropdown></spw-sidebar-navigation-item\n >\n </spw-sidebar-navigation-dropdown>\n </spw-sidebar-navigation-item>\n <spw-sidebar-navigation-item icon=\"fa-calendar\" tooltip-title=\"Calendrier\"> Calendrier </spw-sidebar-navigation-item>\n <spw-sidebar-navigation-item icon=\"fa-envelope\" tooltip-title=\"Messages\" bubble=\"9\"> Messages </spw-sidebar-navigation-item>\n <spw-sidebar-navigation-item icon=\"fa-chart-sine\" tooltip-title=\"Statistiques\"> Statistiques </spw-sidebar-navigation-item>\n <spw-sidebar-navigation-item icon=\"fa-cloud\" tooltip-title=\"Fichiers\"> Fichiers </spw-sidebar-navigation-item>\n <spw-sidebar-navigation-item icon=\"fa-user-shield\" tooltip-title=\"Permissions\" disabled> Permissions </spw-sidebar-navigation-item>\n <spw-sidebar-navigation-separator></spw-sidebar-navigation-separator>\n <spw-sidebar-navigation-item icon=\"fa-address-book\" tooltip-title=\"Annuaire\" bubbles=\"1\"> Annuaire </spw-sidebar-navigation-item>\n <spw-sidebar-navigation-item icon=\"fa-moon\" tooltip-title=\"Mode sombre\"> Mode sombre </spw-sidebar-navigation-item>\n </div>\n <div slot=\"navigation-bottom\">\n <spw-sidebar-navigation-separator></spw-sidebar-navigation-separator>\n <spw-sidebar-navigation-item icon=\"fa-globe\" tooltip-title=\"Liens utiles\"> Liens utiles </spw-sidebar-navigation-item>\n <spw-sidebar-navigation-item icon=\"fa-circle-question\" tooltip-title=\"Aide\"> Aide </spw-sidebar-navigation-item>\n </div>\n `;\n}\n\nconst TemplateDefault: StoryFn = args => {\n const element = document.createElement(elementTag);\n\n const controls = withComponentControls(componentsData, { tag: elementTag }) || {};\n const masterProps = controls.__realProps || Object.keys(controls);\n\n Object.entries(args).forEach(([key, val]) => {\n if (masterProps.includes(key)) {\n element.setAttribute(toKebabCase(key), val as string);\n } else if (key.startsWith('on')) {\n element.addEventListener(key.substring(2).toLowerCase(), val);\n }\n });\n\n element.innerHTML = htmlContentDefault();\n\n return element;\n};\n\nexport const Default = TemplateDefault.bind({});\nDefault.args = {\n defaultExpanded: false,\n};\n"]}
1
+ {"version":3,"file":"spw-sidebar.stories.js","sourceRoot":"","sources":["../../../../src/stories/organisms/spw-sidebar/spw-sidebar.stories.ts"],"names":[],"mappings":"AAAA,IAAI,cAAmB,CAAC;AAExB,IAAI,CAAC;IACH,cAAc,GAAG,OAAO,CAAC,uCAAuC,CAAC,CAAC;AACpE,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,OAAO,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;IACpF,cAAc,GAAG,EAAE,CAAC;AACtB,CAAC;AAGD,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEnF,MAAM,UAAU,GAAG,aAAa,CAAC;AAEjC,MAAM,gBAAgB,GAAG,CAAC,kCAAkC,EAAE,iCAAiC,EAAE,6BAA6B,CAAC,CAAC;AAEhI,MAAM,QAAQ,mCACT,qBAAqB,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,GAC1D,eAAe,CAAC,cAAc,EAAE,gBAAgB,CAAC,CACrD,CAAC;AAEF,MAAM,IAAI,GAAS;IACjB,KAAK,EAAE,oBAAoB;IAC3B,SAAS,EAAE,UAAU;IACrB,QAAQ;IACR,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,WAAW,EAAE;gBACX,SAAS,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAoCV;aACF;SACF;KACF;CACF,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,SAAS,kBAAkB;IACzB,OAAO,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CjB,CAAC;AACJ,CAAC;AAED,MAAM,eAAe,GAAY,IAAI,CAAC,EAAE;IACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAEnD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC;IAClF,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAElE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;QAC1C,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,GAAa,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,SAAS,GAAG,kBAAkB,EAAE,CAAC;IAEzC,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAChD,OAAO,CAAC,IAAI,GAAG;IACb,eAAe,EAAE,KAAK;CACvB,CAAC","sourcesContent":["let componentsData: any;\n\ntry {\n componentsData = require('../../../../dist/components_json.json');\n} catch (error) {\n console.warn('components_json.json non trouvé. Utilisation de valeurs par défaut.');\n componentsData = {};\n}\n\nimport { Meta, StoryFn } from '@storybook/web-components';\nimport { withComponentControls, extractArgTypes, toKebabCase } from '@utils/utils';\n\nconst elementTag = 'spw-sidebar';\n\nconst subComponentTags = ['spw-sidebar-navigation-separator', 'spw-sidebar-navigation-dropdown', 'spw-sidebar-navigation-item'];\n\nconst argTypes = {\n ...withComponentControls(componentsData, { tag: elementTag }),\n ...extractArgTypes(componentsData, subComponentTags),\n};\n\nconst meta: Meta = {\n title: 'Organismes/Sidebar',\n component: elementTag,\n argTypes,\n tags: ['autodocs'],\n parameters: {\n docs: {\n description: {\n component: `\n<strong class=\"mr-2\">Statut du composant :</strong> <spw-tag size=\"small\" variant=\"green\">Prêt</spw-tag>\n\nLe composant Sidebar est un panneau latéral rétractable pour la navigation principale ou les actions contextuelles. Idéal pour les back-offices et applications web complexes nécessitant une navigation permanente et accessible.\n\n## Structure\n\nLe composant se compose de quatre éléments :\n- **spw-sidebar** : Conteneur principal avec gestion de l'état déplié/rétracté\n- **spw-sidebar-navigation-item** : Item de navigation avec icône, tooltip, badge et état actif\n- **spw-sidebar-navigation-dropdown** : Menu déroulant multi-niveaux\n- **spw-sidebar-navigation-separator** : Séparateur visuel entre groupes d'items\n\n## Slots disponibles\n\n- **navigation-top** : Éléments de navigation principaux (partie haute)\n- **navigation-bottom** : Éléments de navigation secondaires (partie basse, fixée au bas)\n\n## Fonctionnalités\n\n- Rétracter/déplier via bouton toggle ou bordure cliquable\n- Navigation multi-niveaux avec dropdowns imbriqués\n- Tooltips automatiques en mode rétracté\n- Badges de notification sur items\n- État actif synchronisé avec la page courante\n- Gestion automatique de la classe body pour adaptation du layout\n- Compatible avec spw-topbar (détection automatique)\n\n## Cas d'usage\n\n- Navigation principale de back-office\n- Menus de configuration et administration\n- Interfaces d'applications métier\n- Portails avec navigation complexe\n\n[<spw-link>Consulter la documentation</spw-link>](https://zeroheight.com/2310c7a1e/p/30d84f-sidebar)\n `,\n },\n },\n },\n};\n\nexport default meta;\n\nfunction htmlContentDefault() {\n return /* HTML */ `\n <div slot=\"navigation-top\">\n <spw-sidebar-navigation-item icon=\"fa-home\" tooltip-title=\"Accueil\" active> Accueil </spw-sidebar-navigation-item>\n <spw-sidebar-navigation-separator></spw-sidebar-navigation-separator>\n <spw-sidebar-navigation-item icon=\"fa-file\" bubble=\"3\" tooltip-title=\"Documents\">\n Documents\n <spw-sidebar-navigation-dropdown slot=\"dropdown\">\n <spw-sidebar-navigation-item> Item </spw-sidebar-navigation-item>\n <spw-sidebar-navigation-item>\n Sous-catégorie\n <spw-sidebar-navigation-dropdown slot=\"dropdown\">\n <spw-sidebar-navigation-item> Item </spw-sidebar-navigation-item>\n <spw-sidebar-navigation-item> Item </spw-sidebar-navigation-item>\n </spw-sidebar-navigation-dropdown></spw-sidebar-navigation-item\n >\n <spw-sidebar-navigation-item>\n Sous-catégorie\n <spw-sidebar-navigation-dropdown slot=\"dropdown\">\n <spw-sidebar-navigation-item> Item </spw-sidebar-navigation-item>\n <spw-sidebar-navigation-item> Item </spw-sidebar-navigation-item>\n </spw-sidebar-navigation-dropdown></spw-sidebar-navigation-item\n >\n <spw-sidebar-navigation-item>\n Sous-catégorie\n <spw-sidebar-navigation-dropdown slot=\"dropdown\">\n <spw-sidebar-navigation-item> Item </spw-sidebar-navigation-item>\n <spw-sidebar-navigation-item> Item </spw-sidebar-navigation-item>\n </spw-sidebar-navigation-dropdown></spw-sidebar-navigation-item\n >\n </spw-sidebar-navigation-dropdown>\n </spw-sidebar-navigation-item>\n <spw-sidebar-navigation-item icon=\"fa-calendar\" tooltip-title=\"Calendrier\"> Calendrier </spw-sidebar-navigation-item>\n <spw-sidebar-navigation-item icon=\"fa-envelope\" tooltip-title=\"Messages\" bubble=\"9\"> Messages </spw-sidebar-navigation-item>\n <spw-sidebar-navigation-item icon=\"fa-chart-sine\" tooltip-title=\"Statistiques\"> Statistiques </spw-sidebar-navigation-item>\n <spw-sidebar-navigation-item icon=\"fa-cloud\" tooltip-title=\"Fichiers\"> Fichiers </spw-sidebar-navigation-item>\n <spw-sidebar-navigation-item icon=\"fa-user-shield\" tooltip-title=\"Permissions\" disabled> Permissions </spw-sidebar-navigation-item>\n <spw-sidebar-navigation-separator></spw-sidebar-navigation-separator>\n <spw-sidebar-navigation-item icon=\"fa-address-book\" tooltip-title=\"Annuaire\" bubbles=\"1\"> Annuaire </spw-sidebar-navigation-item>\n <spw-sidebar-navigation-item icon=\"fa-moon\" tooltip-title=\"Mode sombre\"> Mode sombre </spw-sidebar-navigation-item>\n </div>\n <div slot=\"navigation-bottom\">\n <spw-sidebar-navigation-separator></spw-sidebar-navigation-separator>\n <spw-sidebar-navigation-item icon=\"fa-globe\" tooltip-title=\"Liens utiles\"> Liens utiles </spw-sidebar-navigation-item>\n <spw-sidebar-navigation-item icon=\"fa-circle-question\" tooltip-title=\"Aide\"> Aide </spw-sidebar-navigation-item>\n </div>\n `;\n}\n\nconst TemplateDefault: StoryFn = args => {\n const element = document.createElement(elementTag);\n\n const controls = withComponentControls(componentsData, { tag: elementTag }) || {};\n const masterProps = controls.__realProps || Object.keys(controls);\n\n Object.entries(args).forEach(([key, val]) => {\n if (masterProps.includes(key)) {\n element.setAttribute(toKebabCase(key), val as string);\n } else if (key.startsWith('on')) {\n element.addEventListener(key.substring(2).toLowerCase(), val);\n }\n });\n\n element.innerHTML = htmlContentDefault();\n\n return element;\n};\n\nexport const Default = TemplateDefault.bind({});\nDefault.args = {\n defaultExpanded: false,\n};\n"]}
@@ -21,7 +21,27 @@ const meta = {
21
21
  component: `
22
22
  <strong class="mr-2">Statut du composant :</strong> <spw-tag size="small" variant="green">Prêt</spw-tag>
23
23
 
24
- Enchaînement d’éléments défilants pour navigation et mise en avant.
24
+ Le composant Slider (carousel) permet d'afficher un enchaînement d'éléments défilants. Idéal pour mettre en avant plusieurs contenus importants dans un espace limité avec navigation fluide entre les items.
25
+
26
+ ## Structure
27
+
28
+ Le composant se compose de deux éléments :
29
+ - **spw-slider** : Conteneur du carousel avec contrôles
30
+ - **spw-slider-item** : Item individuel du carousel (généralement contient un spw-hero)
31
+
32
+ ## Fonctionnalités
33
+
34
+ - Navigation par flèches (clavier et boutons)
35
+ - Indicateurs de pagination cliquables
36
+ - Autoplay avec contrôle play/pause
37
+ - Swipe tactile sur mobile et tablette
38
+ - Support du clavier (flèches gauche/droite)
39
+ - Boucle infinie optionnelle
40
+
41
+ ## Cas d'usage
42
+
43
+ - Bannières de mise en avant sur homepage
44
+ - Carrousels d'actualités ou événements
25
45
 
26
46
  [<spw-link>Consulter la documentation</spw-link>](https://zeroheight.com/2310c7a1e/p/378091-carousel-slider)
27
47
  `,
@@ -1 +1 @@
1
- {"version":3,"file":"spw-slider.stories.js","sourceRoot":"","sources":["../../../../src/stories/organisms/spw-slider/spw-slider.stories.ts"],"names":[],"mappings":"AAAA,IAAI,cAAmB,CAAC;AAExB,IAAI,CAAC;IACH,cAAc,GAAG,OAAO,CAAC,uCAAuC,CAAC,CAAC;AACpE,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,OAAO,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;IACpF,cAAc,GAAG,EAAE,CAAC;AACtB,CAAC;AAGD,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEnF,MAAM,UAAU,GAAG,YAAY,CAAC;AAEhC,MAAM,gBAAgB,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAE7C,MAAM,QAAQ,mCACT,qBAAqB,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,GAC1D,eAAe,CAAC,cAAc,EAAE,gBAAgB,CAAC,CACrD,CAAC;AAEF,MAAM,IAAI,GAAS;IACjB,KAAK,EAAE,8BAA8B;IACrC,SAAS,EAAE,UAAU;IACrB,QAAQ;IACR,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,WAAW,EAAE;gBACX,SAAS,EAAE;;;;;;SAMV;aACF;SACF;KACF;CACF,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,SAAS,WAAW;IAClB,OAAO,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BjB,CAAC;AACJ,CAAC;AAED,MAAM,QAAQ,GAAY,IAAI,CAAC,EAAE;IAC/B,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAEnD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC;IAClF,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAElE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;QAC1C,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,GAAa,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,SAAS,GAAG,WAAW,EAAE,CAAC;IAElC,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzC,OAAO,CAAC,IAAI,GAAG;IACb,UAAU,EAAE,IAAI;IAChB,QAAQ,EAAE,IAAI;IACd,kBAAkB,EAAE,KAAK;IACzB,gBAAgB,EAAE,IAAI;IACtB,eAAe,EAAE,KAAK;CACvB,CAAC","sourcesContent":["let componentsData: any;\n\ntry {\n componentsData = require('../../../../dist/components_json.json');\n} catch (error) {\n console.warn('components_json.json non trouvé. Utilisation de valeurs par défaut.');\n componentsData = {};\n}\n\nimport { Meta, StoryFn } from '@storybook/web-components';\nimport { withComponentControls, extractArgTypes, toKebabCase } from '@utils/utils';\n\nconst elementTag = 'spw-slider';\n\nconst subComponentTags = ['spw-slider-item'];\n\nconst argTypes = {\n ...withComponentControls(componentsData, { tag: elementTag }),\n ...extractArgTypes(componentsData, subComponentTags),\n};\n\nconst meta: Meta = {\n title: 'Organismes/Carousel (slider)',\n component: elementTag,\n argTypes,\n tags: ['autodocs'],\n parameters: {\n docs: {\n description: {\n component: `\n<strong class=\"mr-2\">Statut du composant :</strong> <spw-tag size=\"small\" variant=\"green\">Prêt</spw-tag>\n\nEnchaînement d’éléments défilants pour navigation et mise en avant.\n\n[<spw-link>Consulter la documentation</spw-link>](https://zeroheight.com/2310c7a1e/p/378091-carousel-slider)\n `,\n },\n },\n },\n};\n\nexport default meta;\n\nfunction htmlContent() {\n return /* HTML */ `\n <spw-slider-item>\n <spw-hero variant=\"photo\" alignment=\"left\" image-src=\"https://images.unsplash.com/photo-1465056836041-7f43ac27dcb5\" image-alt=\"Paysage naturel\">\n <h1 class=\"spw-ds-typography-heading-01 mb-4\">Découvrez la Wallonie</h1>\n <p class=\"spw-ds-typography-body-1 mb-4\">Un territoire riche en patrimoine, culture et opportunités pour tous les citoyens.</p>\n <spw-group type=\"buttons\" orientation=\"horizontal\" alignment=\"left\">\n <spw-button variant=\"primary\">En savoir plus</spw-button>\n <spw-button variant=\"secondary\">Voir les services</spw-button>\n </spw-group>\n </spw-hero>\n </spw-slider-item>\n <spw-slider-item>\n <spw-hero variant=\"photo\" alignment=\"center\" image-src=\"https://images.unsplash.com/photo-1486406146926-c627a92ad1ab\" image-alt=\"Architecture moderne\">\n <h1 class=\"spw-ds-typography-heading-01 mb-4\">Innovation et développement</h1>\n <p class=\"spw-ds-typography-body-1 mb-4\">La Wallonie investit dans l'avenir avec des projets innovants et durables.</p>\n <spw-group type=\"buttons\" orientation=\"horizontal\" alignment=\"center\">\n <spw-button variant=\"primary\">Découvrir les projets</spw-button>\n </spw-group>\n </spw-hero>\n </spw-slider-item>\n <spw-slider-item>\n <spw-hero variant=\"photo\" alignment=\"right\" image-src=\"https://images.unsplash.com/photo-1542744173-8e7e53415bb0\" image-alt=\"Équipe collaborative\">\n <h1 class=\"spw-ds-typography-heading-01 mb-4\">Services aux citoyens</h1>\n <p class=\"spw-ds-typography-body-1 mb-4\">Accédez facilement à tous les services publics de la région wallonne en ligne.</p>\n <spw-group type=\"buttons\" orientation=\"horizontal\" alignment=\"right\">\n <spw-button variant=\"primary\">Accéder aux services</spw-button>\n <spw-button variant=\"tertiary\">Contactez-nous</spw-button>\n </spw-group>\n </spw-hero>\n </spw-slider-item>\n `;\n}\n\nconst Template: StoryFn = args => {\n const element = document.createElement(elementTag);\n\n const controls = withComponentControls(componentsData, { tag: elementTag }) || {};\n const masterProps = controls.__realProps || Object.keys(controls);\n\n Object.entries(args).forEach(([key, val]) => {\n if (masterProps.includes(key)) {\n element.setAttribute(toKebabCase(key), val as string);\n } else if (key.startsWith('on')) {\n element.addEventListener(key.substring(2).toLowerCase(), val);\n }\n });\n\n element.innerHTML = htmlContent();\n\n return element;\n};\n\nexport const Default = Template.bind({});\nDefault.args = {\n showArrows: true,\n showDots: true,\n showAutoplayToggle: false,\n autoplayInterval: 5000,\n autoplayEnabled: false,\n};\n"]}
1
+ {"version":3,"file":"spw-slider.stories.js","sourceRoot":"","sources":["../../../../src/stories/organisms/spw-slider/spw-slider.stories.ts"],"names":[],"mappings":"AAAA,IAAI,cAAmB,CAAC;AAExB,IAAI,CAAC;IACH,cAAc,GAAG,OAAO,CAAC,uCAAuC,CAAC,CAAC;AACpE,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,OAAO,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;IACpF,cAAc,GAAG,EAAE,CAAC;AACtB,CAAC;AAGD,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEnF,MAAM,UAAU,GAAG,YAAY,CAAC;AAEhC,MAAM,gBAAgB,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAE7C,MAAM,QAAQ,mCACT,qBAAqB,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,GAC1D,eAAe,CAAC,cAAc,EAAE,gBAAgB,CAAC,CACrD,CAAC;AAEF,MAAM,IAAI,GAAS;IACjB,KAAK,EAAE,8BAA8B;IACrC,SAAS,EAAE,UAAU;IACrB,QAAQ;IACR,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,WAAW,EAAE;gBACX,SAAS,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;SA0BV;aACF;SACF;KACF;CACF,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,SAAS,WAAW;IAClB,OAAO,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BjB,CAAC;AACJ,CAAC;AAED,MAAM,QAAQ,GAAY,IAAI,CAAC,EAAE;IAC/B,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAEnD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC;IAClF,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAElE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;QAC1C,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,GAAa,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,SAAS,GAAG,WAAW,EAAE,CAAC;IAElC,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzC,OAAO,CAAC,IAAI,GAAG;IACb,UAAU,EAAE,IAAI;IAChB,QAAQ,EAAE,IAAI;IACd,kBAAkB,EAAE,KAAK;IACzB,gBAAgB,EAAE,IAAI;IACtB,eAAe,EAAE,KAAK;CACvB,CAAC","sourcesContent":["let componentsData: any;\n\ntry {\n componentsData = require('../../../../dist/components_json.json');\n} catch (error) {\n console.warn('components_json.json non trouvé. Utilisation de valeurs par défaut.');\n componentsData = {};\n}\n\nimport { Meta, StoryFn } from '@storybook/web-components';\nimport { withComponentControls, extractArgTypes, toKebabCase } from '@utils/utils';\n\nconst elementTag = 'spw-slider';\n\nconst subComponentTags = ['spw-slider-item'];\n\nconst argTypes = {\n ...withComponentControls(componentsData, { tag: elementTag }),\n ...extractArgTypes(componentsData, subComponentTags),\n};\n\nconst meta: Meta = {\n title: 'Organismes/Carousel (slider)',\n component: elementTag,\n argTypes,\n tags: ['autodocs'],\n parameters: {\n docs: {\n description: {\n component: `\n<strong class=\"mr-2\">Statut du composant :</strong> <spw-tag size=\"small\" variant=\"green\">Prêt</spw-tag>\n\nLe composant Slider (carousel) permet d'afficher un enchaînement d'éléments défilants. Idéal pour mettre en avant plusieurs contenus importants dans un espace limité avec navigation fluide entre les items.\n\n## Structure\n\nLe composant se compose de deux éléments :\n- **spw-slider** : Conteneur du carousel avec contrôles\n- **spw-slider-item** : Item individuel du carousel (généralement contient un spw-hero)\n\n## Fonctionnalités\n\n- Navigation par flèches (clavier et boutons)\n- Indicateurs de pagination cliquables\n- Autoplay avec contrôle play/pause\n- Swipe tactile sur mobile et tablette\n- Support du clavier (flèches gauche/droite)\n- Boucle infinie optionnelle\n\n## Cas d'usage\n\n- Bannières de mise en avant sur homepage\n- Carrousels d'actualités ou événements\n\n[<spw-link>Consulter la documentation</spw-link>](https://zeroheight.com/2310c7a1e/p/378091-carousel-slider)\n `,\n },\n },\n },\n};\n\nexport default meta;\n\nfunction htmlContent() {\n return /* HTML */ `\n <spw-slider-item>\n <spw-hero variant=\"photo\" alignment=\"left\" image-src=\"https://images.unsplash.com/photo-1465056836041-7f43ac27dcb5\" image-alt=\"Paysage naturel\">\n <h1 class=\"spw-ds-typography-heading-01 mb-4\">Découvrez la Wallonie</h1>\n <p class=\"spw-ds-typography-body-1 mb-4\">Un territoire riche en patrimoine, culture et opportunités pour tous les citoyens.</p>\n <spw-group type=\"buttons\" orientation=\"horizontal\" alignment=\"left\">\n <spw-button variant=\"primary\">En savoir plus</spw-button>\n <spw-button variant=\"secondary\">Voir les services</spw-button>\n </spw-group>\n </spw-hero>\n </spw-slider-item>\n <spw-slider-item>\n <spw-hero variant=\"photo\" alignment=\"center\" image-src=\"https://images.unsplash.com/photo-1486406146926-c627a92ad1ab\" image-alt=\"Architecture moderne\">\n <h1 class=\"spw-ds-typography-heading-01 mb-4\">Innovation et développement</h1>\n <p class=\"spw-ds-typography-body-1 mb-4\">La Wallonie investit dans l'avenir avec des projets innovants et durables.</p>\n <spw-group type=\"buttons\" orientation=\"horizontal\" alignment=\"center\">\n <spw-button variant=\"primary\">Découvrir les projets</spw-button>\n </spw-group>\n </spw-hero>\n </spw-slider-item>\n <spw-slider-item>\n <spw-hero variant=\"photo\" alignment=\"right\" image-src=\"https://images.unsplash.com/photo-1542744173-8e7e53415bb0\" image-alt=\"Équipe collaborative\">\n <h1 class=\"spw-ds-typography-heading-01 mb-4\">Services aux citoyens</h1>\n <p class=\"spw-ds-typography-body-1 mb-4\">Accédez facilement à tous les services publics de la région wallonne en ligne.</p>\n <spw-group type=\"buttons\" orientation=\"horizontal\" alignment=\"right\">\n <spw-button variant=\"primary\">Accéder aux services</spw-button>\n <spw-button variant=\"tertiary\">Contactez-nous</spw-button>\n </spw-group>\n </spw-hero>\n </spw-slider-item>\n `;\n}\n\nconst Template: StoryFn = args => {\n const element = document.createElement(elementTag);\n\n const controls = withComponentControls(componentsData, { tag: elementTag }) || {};\n const masterProps = controls.__realProps || Object.keys(controls);\n\n Object.entries(args).forEach(([key, val]) => {\n if (masterProps.includes(key)) {\n element.setAttribute(toKebabCase(key), val as string);\n } else if (key.startsWith('on')) {\n element.addEventListener(key.substring(2).toLowerCase(), val);\n }\n });\n\n element.innerHTML = htmlContent();\n\n return element;\n};\n\nexport const Default = Template.bind({});\nDefault.args = {\n showArrows: true,\n showDots: true,\n showAutoplayToggle: false,\n autoplayInterval: 5000,\n autoplayEnabled: false,\n};\n"]}
@@ -20,7 +20,20 @@ const meta = {
20
20
  component: `
21
21
  <strong class="mr-2">Statut du composant :</strong> <spw-tag size="small" variant="green">Prêt</spw-tag>
22
22
 
23
- Permet d'afficher un bandeau avec les réseaux sociaux.
23
+ Le composant Réseaux sociaux affiche un bandeau horizontal contenant des liens vers les différents profils de réseaux sociaux d'une organisation. Il permet de centraliser et de mettre en valeur la présence sociale de manière cohérente.
24
+
25
+ ## Structure
26
+
27
+ Le composant se compose de :
28
+ - **Titre principal** : Customisable via la propriété mainTitle
29
+ - **Slot** : Contient les liens vers les réseaux sociaux avec leurs icônes
30
+
31
+ ## Fonctionnalités
32
+
33
+ - Affichage des icônes de réseaux sociaux dans un conteneur horizontal
34
+ - Support de tous les réseaux sociaux via les icônes Font Awesome Brands
35
+ - Style cohérent avec le design system
36
+ - Responsive design adapté à tous les écrans
24
37
  `,
25
38
  },
26
39
  },
@@ -59,4 +72,15 @@ export const Default = Template.bind({});
59
72
  Default.args = {
60
73
  mainTitle: 'Restez connecté',
61
74
  };
75
+ Default.parameters = {
76
+ docs: {
77
+ description: {
78
+ story: `
79
+ Exemple de bandeau de réseaux sociaux avec les principales plateformes sociales. Le composant affiche un titre personnalisable suivi des icônes cliquables des réseaux sociaux.
80
+
81
+ Cas d'usage typique : placé en footer ou dans une sidebar pour encourager les utilisateurs à suivre l'organisation sur les réseaux sociaux. Les icônes utilisent Font Awesome Brands et s'ouvrent dans un nouvel onglet.
82
+ `,
83
+ },
84
+ },
85
+ };
62
86
  //# sourceMappingURL=spw-socials.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spw-socials.stories.js","sourceRoot":"","sources":["../../../../src/stories/organisms/spw-socials/spw-socials.stories.ts"],"names":[],"mappings":"AAAA,IAAI,cAAmB,CAAC;AAExB,IAAI,CAAC;IACH,cAAc,GAAG,OAAO,CAAC,uCAAuC,CAAC,CAAC;AACpE,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,OAAO,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;IACpF,cAAc,GAAG,EAAE,CAAC;AACtB,CAAC;AAGD,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAElE,MAAM,UAAU,GAAG,aAAa,CAAC;AAEjC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;AAE5E,MAAM,IAAI,GAAS;IACjB,KAAK,EAAE,4BAA4B;IACnC,SAAS,EAAE,UAAU;IACrB,QAAQ;IACR,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,WAAW,EAAE;gBACX,SAAS,EAAE;;;;SAIV;aACF;SACF;KACF;CACF,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,SAAS,WAAW;IAClB,OAAO;;;;;;CAMR,CAAC;AACF,CAAC;AAED,MAAM,QAAQ,GAAY,IAAI,CAAC,EAAE;IAC/B,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,IAAI,CAAC;IACrB,MAAM,YAAY,GAAG,OAAO,CAAC;IAE7B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;QAC1C,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;gBACzB,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,GAAa,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,SAAS,GAAG,WAAW,EAAE,CAAC;IACpC,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzC,OAAO,CAAC,IAAI,GAAG;IACb,SAAS,EAAE,iBAAiB;CAC7B,CAAC","sourcesContent":["let componentsData: any;\n\ntry {\n componentsData = require('../../../../dist/components_json.json');\n} catch (error) {\n console.warn('components_json.json non trouvé. Utilisation de valeurs par défaut.');\n componentsData = {};\n}\n\nimport { Meta, StoryFn } from '@storybook/web-components';\nimport { withComponentControls, toKebabCase } from '@utils/utils';\n\nconst elementTag = 'spw-socials';\n\nconst argTypes = withComponentControls(componentsData, { tag: elementTag });\n\nconst meta: Meta = {\n title: 'Organismes/Réseaux sociaux',\n component: elementTag,\n argTypes,\n tags: ['autodocs'],\n parameters: {\n docs: {\n description: {\n component: `\n<strong class=\"mr-2\">Statut du composant :</strong> <spw-tag size=\"small\" variant=\"green\">Prêt</spw-tag>\n\nPermet d'afficher un bandeau avec les réseaux sociaux.\n `,\n },\n },\n },\n};\n\nexport default meta;\n\nfunction htmlContent(): string {\n return `\n <a target=\"_blank\" href=\"#\"><spw-icon variant=\"fa-brands\" icon=\"fa-facebook\"></spw-icon></a>\n <a target=\"_blank\" href=\"#\"><spw-icon variant=\"fa-brands\" icon=\"fa-instagram\"></spw-icon></a>\n <a target=\"_blank\" href=\"#\"><spw-icon variant=\"fa-brands\" icon=\"fa-x-twitter\"></spw-icon></a>\n <a target=\"_blank\" href=\"#\"><spw-icon variant=\"fa-brands\" icon=\"fa-youtube\"></spw-icon></a>\n <a target=\"_blank\" href=\"#\"><spw-icon variant=\"fa-brands\" icon=\"fa-linkedin-in\"></spw-icon></a>\n`;\n}\n\nconst Template: StoryFn = args => {\n const element = document.createElement(elementTag);\n const hasSlot = true;\n const slottedLabel = 'label';\n\n Object.entries(args).forEach(([key, val]) => {\n if (key.startsWith('on')) {\n element.addEventListener(key.substring(2).toLowerCase(), val);\n } else {\n if (key !== slottedLabel) {\n element.setAttribute(toKebabCase(key), val as string);\n }\n }\n });\n\n if (hasSlot) {\n element.innerHTML = htmlContent();\n }\n\n return element;\n};\n\nexport const Default = Template.bind({});\nDefault.args = {\n mainTitle: 'Restez connecté',\n};\n"]}
1
+ {"version":3,"file":"spw-socials.stories.js","sourceRoot":"","sources":["../../../../src/stories/organisms/spw-socials/spw-socials.stories.ts"],"names":[],"mappings":"AAAA,IAAI,cAAmB,CAAC;AAExB,IAAI,CAAC;IACH,cAAc,GAAG,OAAO,CAAC,uCAAuC,CAAC,CAAC;AACpE,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,OAAO,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;IACpF,cAAc,GAAG,EAAE,CAAC;AACtB,CAAC;AAGD,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAElE,MAAM,UAAU,GAAG,aAAa,CAAC;AAEjC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;AAE5E,MAAM,IAAI,GAAS;IACjB,KAAK,EAAE,4BAA4B;IACnC,SAAS,EAAE,UAAU;IACrB,QAAQ;IACR,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,WAAW,EAAE;gBACX,SAAS,EAAE;;;;;;;;;;;;;;;;;SAiBV;aACF;SACF;KACF;CACF,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,SAAS,WAAW;IAClB,OAAO;;;;;;CAMR,CAAC;AACF,CAAC;AAED,MAAM,QAAQ,GAAY,IAAI,CAAC,EAAE;IAC/B,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,IAAI,CAAC;IACrB,MAAM,YAAY,GAAG,OAAO,CAAC;IAE7B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;QAC1C,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;gBACzB,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,GAAa,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,SAAS,GAAG,WAAW,EAAE,CAAC;IACpC,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzC,OAAO,CAAC,IAAI,GAAG;IACb,SAAS,EAAE,iBAAiB;CAC7B,CAAC;AACF,OAAO,CAAC,UAAU,GAAG;IACnB,IAAI,EAAE;QACJ,WAAW,EAAE;YACX,KAAK,EAAE;;;;OAIN;SACF;KACF;CACF,CAAC","sourcesContent":["let componentsData: any;\n\ntry {\n componentsData = require('../../../../dist/components_json.json');\n} catch (error) {\n console.warn('components_json.json non trouvé. Utilisation de valeurs par défaut.');\n componentsData = {};\n}\n\nimport { Meta, StoryFn } from '@storybook/web-components';\nimport { withComponentControls, toKebabCase } from '@utils/utils';\n\nconst elementTag = 'spw-socials';\n\nconst argTypes = withComponentControls(componentsData, { tag: elementTag });\n\nconst meta: Meta = {\n title: 'Organismes/Réseaux sociaux',\n component: elementTag,\n argTypes,\n tags: ['autodocs'],\n parameters: {\n docs: {\n description: {\n component: `\n<strong class=\"mr-2\">Statut du composant :</strong> <spw-tag size=\"small\" variant=\"green\">Prêt</spw-tag>\n\nLe composant Réseaux sociaux affiche un bandeau horizontal contenant des liens vers les différents profils de réseaux sociaux d'une organisation. Il permet de centraliser et de mettre en valeur la présence sociale de manière cohérente.\n\n## Structure\n\nLe composant se compose de :\n- **Titre principal** : Customisable via la propriété mainTitle\n- **Slot** : Contient les liens vers les réseaux sociaux avec leurs icônes\n\n## Fonctionnalités\n\n- Affichage des icônes de réseaux sociaux dans un conteneur horizontal\n- Support de tous les réseaux sociaux via les icônes Font Awesome Brands\n- Style cohérent avec le design system\n- Responsive design adapté à tous les écrans\n `,\n },\n },\n },\n};\n\nexport default meta;\n\nfunction htmlContent(): string {\n return `\n <a target=\"_blank\" href=\"#\"><spw-icon variant=\"fa-brands\" icon=\"fa-facebook\"></spw-icon></a>\n <a target=\"_blank\" href=\"#\"><spw-icon variant=\"fa-brands\" icon=\"fa-instagram\"></spw-icon></a>\n <a target=\"_blank\" href=\"#\"><spw-icon variant=\"fa-brands\" icon=\"fa-x-twitter\"></spw-icon></a>\n <a target=\"_blank\" href=\"#\"><spw-icon variant=\"fa-brands\" icon=\"fa-youtube\"></spw-icon></a>\n <a target=\"_blank\" href=\"#\"><spw-icon variant=\"fa-brands\" icon=\"fa-linkedin-in\"></spw-icon></a>\n`;\n}\n\nconst Template: StoryFn = args => {\n const element = document.createElement(elementTag);\n const hasSlot = true;\n const slottedLabel = 'label';\n\n Object.entries(args).forEach(([key, val]) => {\n if (key.startsWith('on')) {\n element.addEventListener(key.substring(2).toLowerCase(), val);\n } else {\n if (key !== slottedLabel) {\n element.setAttribute(toKebabCase(key), val as string);\n }\n }\n });\n\n if (hasSlot) {\n element.innerHTML = htmlContent();\n }\n\n return element;\n};\n\nexport const Default = Template.bind({});\nDefault.args = {\n mainTitle: 'Restez connecté',\n};\nDefault.parameters = {\n docs: {\n description: {\n story: `\nExemple de bandeau de réseaux sociaux avec les principales plateformes sociales. Le composant affiche un titre personnalisable suivi des icônes cliquables des réseaux sociaux.\n\nCas d'usage typique : placé en footer ou dans une sidebar pour encourager les utilisateurs à suivre l'organisation sur les réseaux sociaux. Les icônes utilisent Font Awesome Brands et s'ouvrent dans un nouvel onglet.\n `,\n },\n },\n};\n"]}