@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
@@ -20,7 +20,23 @@ 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
- Le bouton est un élément dinteraction avec l’interface permettant à lutilisateur deffectuer une action.
23
+ Le composant Button est un élément d'interaction essentiel permettant à l'utilisateur d'effectuer des actions dans l'interface. Il offre plusieurs variantes visuelles et états pour s'adapter à tous les contextes d'utilisation.
24
+
25
+ ## Variantes disponibles
26
+
27
+ - **primary** : Action principale, attire l'attention
28
+ - **secondary** : Action secondaire, moins proéminente
29
+ - **tertiary** : Action tertiaire, discrète
30
+
31
+ ## Fonctionnalités
32
+
33
+ - Support des icônes FontAwesome (gauche, droite ou seule)
34
+ - État de chargement avec loader intégré
35
+ - Mode icône seule pour actions compactes
36
+ - États disabled et hover
37
+ - Tailles configurables (small, medium, large)
38
+ - Attributs href et target pour comportement lien
39
+
24
40
 
25
41
  [<spw-link>Consulter la documentation</spw-link>](https://zeroheight.com/2310c7a1e/p/9055b6-bouton)
26
42
  `,
@@ -88,4 +104,46 @@ IconOnly.args = {
88
104
  icon: 'fa-arrow-right',
89
105
  label: '',
90
106
  };
107
+ Primary.parameters = {
108
+ docs: {
109
+ description: {
110
+ story: `Bouton primary avec fond coloré. C'est le variant le plus proéminent, utilisé pour l'action principale d'une page ou d'un formulaire. Cas d'usage : soumettre un formulaire, confirmer une action importante, accéder à la fonctionnalité principale.`,
111
+ },
112
+ },
113
+ };
114
+ Secondary.parameters = {
115
+ docs: {
116
+ description: {
117
+ story: `Bouton secondary avec bordure. Moins proéminent que le primary, idéal pour les actions secondaires. Cas d'usage : annuler, actions alternatives dans un formulaire, boutons d'action dans les modales.`,
118
+ },
119
+ },
120
+ };
121
+ Tertiary.parameters = {
122
+ docs: {
123
+ description: {
124
+ story: `Bouton tertiary discret, style texte simple. Pour les actions peu prioritaires ou inline dans le contenu. Cas d'usage : liens d'action dans du texte, actions optionnelles, navigation secondaire.`,
125
+ },
126
+ },
127
+ };
128
+ WithIcon.parameters = {
129
+ docs: {
130
+ description: {
131
+ story: `Bouton avec icône positionnée à droite (fa-arrow-right). L'icône renforce visuellement l'action et améliore la compréhension. Cas d'usage : navigation ("Suivant", "Continuer"), téléchargement, actions avec direction.`,
132
+ },
133
+ },
134
+ };
135
+ WithLoader.parameters = {
136
+ docs: {
137
+ description: {
138
+ story: `Bouton avec état de chargement (isLoading). Le loader remplace l'icône pendant le traitement. Cas d'usage : soumission de formulaire asynchrone, appels API, actions nécessitant un feedback visuel d'attente.`,
139
+ },
140
+ },
141
+ };
142
+ IconOnly.parameters = {
143
+ docs: {
144
+ description: {
145
+ story: `Bouton avec icône seule, sans texte (isIconOnly). Format compact pour les espaces restreints. Cas d'usage : actions dans toolbars, boutons de modification/suppression dans tableaux, actions répétitives où l'icône suffit à la compréhension.`,
146
+ },
147
+ },
148
+ };
91
149
  //# sourceMappingURL=spw-button.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spw-button.stories.js","sourceRoot":"","sources":["../../../../src/stories/components/spw-button/spw-button.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';\n\nconst elementTag = 'spw-button';\n\nconst argTypes = withComponentControls(componentsData, { tag: elementTag });\n\nconst meta: Meta = {\n title: 'Composants/Bouton',\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 bouton est un élément dinteraction avec l’interface permettant à lutilisateur deffectuer une action.\n\n[<spw-link>Consulter la documentation</spw-link>](https://zeroheight.com/2310c7a1e/p/9055b6-bouton)\n `,\n },\n },\n },\n};\n\nexport default meta;\n\nfunction htmlContent(slot) {\n return /* HTML */ `${slot}`;\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(args[slottedLabel]);\n }\n\n return element;\n};\n\nexport const Primary = Template.bind({});\nPrimary.args = {\n variant: 'primary',\n label: 'Primary Button',\n};\n\nexport const Secondary = Template.bind({});\nSecondary.args = {\n variant: 'secondary',\n label: 'Secondary Button',\n};\n\nexport const Tertiary = Template.bind({});\nTertiary.args = {\n variant: 'tertiary',\n label: 'Tertiary Button',\n};\n\nexport const WithIcon = Template.bind({});\nWithIcon.args = {\n variant: 'primary',\n label: 'Button with icon',\n icon: 'fa-arrow-right',\n iconPosition: 'right',\n};\n\nexport const WithLoader = Template.bind({});\nWithLoader.args = {\n variant: 'primary',\n label: 'Button with icon',\n icon: 'fa-arrow-right',\n iconPosition: 'right',\n isLoading: true,\n};\n\nexport const IconOnly = Template.bind({});\nIconOnly.args = {\n variant: 'primary',\n isIconOnly: true,\n icon: 'fa-arrow-right',\n label: '',\n};\n"]}
1
+ {"version":3,"file":"spw-button.stories.js","sourceRoot":"","sources":["../../../../src/stories/components/spw-button/spw-button.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';\n\nconst elementTag = 'spw-button';\n\nconst argTypes = withComponentControls(componentsData, { tag: elementTag });\n\nconst meta: Meta = {\n title: 'Composants/Bouton',\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 Button est un élément d'interaction essentiel permettant à l'utilisateur d'effectuer des actions dans l'interface. Il offre plusieurs variantes visuelles et états pour s'adapter à tous les contextes d'utilisation.\n\n## Variantes disponibles\n\n- **primary** : Action principale, attire l'attention\n- **secondary** : Action secondaire, moins proéminente\n- **tertiary** : Action tertiaire, discrète\n\n## Fonctionnalités\n\n- Support des icônes FontAwesome (gauche, droite ou seule)\n- État de chargement avec loader intégré\n- Mode icône seule pour actions compactes\n- États disabled et hover\n- Tailles configurables (small, medium, large)\n- Attributs href et target pour comportement lien\n\n\n[<spw-link>Consulter la documentation</spw-link>](https://zeroheight.com/2310c7a1e/p/9055b6-bouton)\n `,\n },\n },\n },\n};\n\nexport default meta;\n\nfunction htmlContent(slot) {\n return /* HTML */ `${slot}`;\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(args[slottedLabel]);\n }\n\n return element;\n};\n\nexport const Primary = Template.bind({});\nPrimary.args = {\n variant: 'primary',\n label: 'Primary Button',\n};\n\nexport const Secondary = Template.bind({});\nSecondary.args = {\n variant: 'secondary',\n label: 'Secondary Button',\n};\n\nexport const Tertiary = Template.bind({});\nTertiary.args = {\n variant: 'tertiary',\n label: 'Tertiary Button',\n};\n\nexport const WithIcon = Template.bind({});\nWithIcon.args = {\n variant: 'primary',\n label: 'Button with icon',\n icon: 'fa-arrow-right',\n iconPosition: 'right',\n};\n\nexport const WithLoader = Template.bind({});\nWithLoader.args = {\n variant: 'primary',\n label: 'Button with icon',\n icon: 'fa-arrow-right',\n iconPosition: 'right',\n isLoading: true,\n};\n\nexport const IconOnly = Template.bind({});\nIconOnly.args = {\n variant: 'primary',\n isIconOnly: true,\n icon: 'fa-arrow-right',\n label: '',\n};\n\nPrimary.parameters = {\n docs: {\n description: {\n story: `Bouton primary avec fond coloré. C'est le variant le plus proéminent, utilisé pour l'action principale d'une page ou d'un formulaire. Cas d'usage : soumettre un formulaire, confirmer une action importante, accéder à la fonctionnalité principale.`,\n },\n },\n};\n\nSecondary.parameters = {\n docs: {\n description: {\n story: `Bouton secondary avec bordure. Moins proéminent que le primary, idéal pour les actions secondaires. Cas d'usage : annuler, actions alternatives dans un formulaire, boutons d'action dans les modales.`,\n },\n },\n};\n\nTertiary.parameters = {\n docs: {\n description: {\n story: `Bouton tertiary discret, style texte simple. Pour les actions peu prioritaires ou inline dans le contenu. Cas d'usage : liens d'action dans du texte, actions optionnelles, navigation secondaire.`,\n },\n },\n};\n\nWithIcon.parameters = {\n docs: {\n description: {\n story: `Bouton avec icône positionnée à droite (fa-arrow-right). L'icône renforce visuellement l'action et améliore la compréhension. Cas d'usage : navigation (\"Suivant\", \"Continuer\"), téléchargement, actions avec direction.`,\n },\n },\n};\n\nWithLoader.parameters = {\n docs: {\n description: {\n story: `Bouton avec état de chargement (isLoading). Le loader remplace l'icône pendant le traitement. Cas d'usage : soumission de formulaire asynchrone, appels API, actions nécessitant un feedback visuel d'attente.`,\n },\n },\n};\n\nIconOnly.parameters = {\n docs: {\n description: {\n story: `Bouton avec icône seule, sans texte (isIconOnly). Format compact pour les espaces restreints. Cas d'usage : actions dans toolbars, boutons de modification/suppression dans tableaux, actions répétitives où l'icône suffit à la compréhension.`,\n },\n },\n};\n"]}
@@ -21,7 +21,29 @@ 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
- Composant qui permet aux utilisateurs de sélectionner une ou plusieurs options.
24
+ Le composant Checkbox permet aux utilisateurs de sélectionner une ou plusieurs options dans un formulaire. Il existe en deux variantes : case à cocher classique et toggle switch pour des options de type activation/désactivation.
25
+
26
+ ## Variantes disponibles
27
+
28
+ - **checkbox** : Case à cocher standard (par défaut)
29
+ - **toggle** : Interrupteur pour activer/désactiver une option
30
+
31
+ ## Fonctionnalités
32
+
33
+ - Sélection multiple indépendante
34
+ - États coché, non coché et indéterminé
35
+ - Label associé cliquable
36
+ - Groupement avec spw-group
37
+ - États disabled et error
38
+ - Support du clavier et accessibilité ARIA
39
+
40
+ ## Cas d'usage
41
+
42
+ - Sélection de préférences multiples
43
+ - Filtres dans recherches et listes
44
+ - Activation de fonctionnalités optionnelles
45
+ - Consentements et autorisations
46
+ - Choix multiples dans formulaires
25
47
 
26
48
  [<spw-link>Consulter la documentation</spw-link>](https://zeroheight.com/2310c7a1e/p/68897f-case-a-cocher-checkbox)
27
49
  `,
@@ -85,4 +107,18 @@ Toggle.args = {
85
107
  label: 'Mon label toggle',
86
108
  type: 'checkboxes',
87
109
  };
110
+ Default.parameters = {
111
+ docs: {
112
+ description: {
113
+ story: `Groupe de checkboxes standard permettant la sélection multiple. Chaque checkbox est indépendante et peut être cochée ou décochée séparément. Cas d'usage : sélection de préférences, acceptation de conditions, filtres multiples, choix d'options dans formulaires.`,
114
+ },
115
+ },
116
+ };
117
+ Toggle.parameters = {
118
+ docs: {
119
+ description: {
120
+ story: `Checkbox en mode toggle (interrupteur). Idéal pour activer ou désactiver une fonctionnalité de manière plus visuelle. Cas d'usage : activation de notifications, paramètres on/off, préférences de confidentialité, options de visibilité.`,
121
+ },
122
+ },
123
+ };
88
124
  //# sourceMappingURL=spw-checkbox.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spw-checkbox.stories.js","sourceRoot":"","sources":["../../../../src/stories/components/spw-checkbox/spw-checkbox.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, toKebabCase } from '@utils/utils';\n\nconst elementTag = 'spw-group';\n\nconst subComponentTags = ['spw-checkbox'];\n\nconst argTypes = {\n ...withComponentControls(componentsData, { tag: elementTag }),\n ...extractArgTypes(componentsData, subComponentTags),\n};\n\nconst meta: Meta = {\n title: 'Composants/Case à cocher (input checkbox)',\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\nComposant qui permet aux utilisateurs de sélectionner une ou plusieurs options.\n\n[<spw-link>Consulter la documentation</spw-link>](https://zeroheight.com/2310c7a1e/p/68897f-case-a-cocher-checkbox)\n `,\n },\n },\n },\n};\n\nexport default meta;\n\nfunction htmlContent() {\n return /* HTML */ `\n <spw-checkbox name=\"checkbox\" value=\"1\">Checkbox 1</spw-checkbox>\n <spw-checkbox name=\"checkbox\" value=\"2\">Checkbox 2</spw-checkbox>\n `;\n}\n\nfunction htmlContentToggle() {\n return /* HTML */ `<spw-checkbox error=\"false\" variant=\"toggle\" value=\"false\" name=\"mon-checkbox-toggle\" id=\"mon-checkbox-toggle\">Mon toggle</spw-checkbox> `;\n}\n\nconst Template: StoryFn = args => {\n const element = document.createElement(elementTag);\n const hasSlot = true;\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 if (hasSlot) {\n element.innerHTML = htmlContent();\n }\n\n return element;\n};\n\nconst ToggleTemplate: StoryFn = args => {\n const element = document.createElement(elementTag);\n const hasSlot = true;\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 if (hasSlot) {\n element.innerHTML = htmlContentToggle();\n }\n\n return element;\n};\n\nexport const Default = Template.bind({});\nDefault.args = {\n label: 'Mon label',\n type: 'checkboxes',\n};\n\nexport const Toggle = ToggleTemplate.bind({});\nToggle.args = {\n label: 'Mon label toggle',\n type: 'checkboxes',\n};\n"]}
1
+ {"version":3,"file":"spw-checkbox.stories.js","sourceRoot":"","sources":["../../../../src/stories/components/spw-checkbox/spw-checkbox.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, toKebabCase } from '@utils/utils';\n\nconst elementTag = 'spw-group';\n\nconst subComponentTags = ['spw-checkbox'];\n\nconst argTypes = {\n ...withComponentControls(componentsData, { tag: elementTag }),\n ...extractArgTypes(componentsData, subComponentTags),\n};\n\nconst meta: Meta = {\n title: 'Composants/Case à cocher (input checkbox)',\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 Checkbox permet aux utilisateurs de sélectionner une ou plusieurs options dans un formulaire. Il existe en deux variantes : case à cocher classique et toggle switch pour des options de type activation/désactivation.\n\n## Variantes disponibles\n\n- **checkbox** : Case à cocher standard (par défaut)\n- **toggle** : Interrupteur pour activer/désactiver une option\n\n## Fonctionnalités\n\n- Sélection multiple indépendante\n- États coché, non coché et indéterminé\n- Label associé cliquable\n- Groupement avec spw-group\n- États disabled et error\n- Support du clavier et accessibilité ARIA\n\n## Cas d'usage\n\n- Sélection de préférences multiples\n- Filtres dans recherches et listes\n- Activation de fonctionnalités optionnelles\n- Consentements et autorisations\n- Choix multiples dans formulaires\n\n[<spw-link>Consulter la documentation</spw-link>](https://zeroheight.com/2310c7a1e/p/68897f-case-a-cocher-checkbox)\n `,\n },\n },\n },\n};\n\nexport default meta;\n\nfunction htmlContent() {\n return /* HTML */ `\n <spw-checkbox name=\"checkbox\" value=\"1\">Checkbox 1</spw-checkbox>\n <spw-checkbox name=\"checkbox\" value=\"2\">Checkbox 2</spw-checkbox>\n `;\n}\n\nfunction htmlContentToggle() {\n return /* HTML */ `<spw-checkbox error=\"false\" variant=\"toggle\" value=\"false\" name=\"mon-checkbox-toggle\" id=\"mon-checkbox-toggle\">Mon toggle</spw-checkbox> `;\n}\n\nconst Template: StoryFn = args => {\n const element = document.createElement(elementTag);\n const hasSlot = true;\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 if (hasSlot) {\n element.innerHTML = htmlContent();\n }\n\n return element;\n};\n\nconst ToggleTemplate: StoryFn = args => {\n const element = document.createElement(elementTag);\n const hasSlot = true;\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 if (hasSlot) {\n element.innerHTML = htmlContentToggle();\n }\n\n return element;\n};\n\nexport const Default = Template.bind({});\nDefault.args = {\n label: 'Mon label',\n type: 'checkboxes',\n};\n\nexport const Toggle = ToggleTemplate.bind({});\nToggle.args = {\n label: 'Mon label toggle',\n type: 'checkboxes',\n};\n\nDefault.parameters = {\n docs: {\n description: {\n story: `Groupe de checkboxes standard permettant la sélection multiple. Chaque checkbox est indépendante et peut être cochée ou décochée séparément. Cas d'usage : sélection de préférences, acceptation de conditions, filtres multiples, choix d'options dans formulaires.`,\n },\n },\n};\n\nToggle.parameters = {\n docs: {\n description: {\n story: `Checkbox en mode toggle (interrupteur). Idéal pour activer ou désactiver une fonctionnalité de manière plus visuelle. Cas d'usage : activation de notifications, paramètres on/off, préférences de confidentialité, options de visibilité.`,\n },\n },\n};\n"]}
@@ -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
- Permet aux utilisateurs de sélectionner une ou plusieurs options dans une liste personnalisée avec recherche, multi-sélection et gestion d’erreurs.
24
+ Le composant Custom Select est une version avancée du select standard, offrant recherche intégrée, multi-sélection et messages de validation enrichis. Idéal pour les listes longues ou les sélections complexes.
25
+
26
+ ## Fonctionnalités
27
+
28
+ - Sélection simple ou multiple
29
+ - Messages d'état (erreur, succès, warning)
30
+ - Label et placeholder personnalisables
31
+ - Texte d'assistance avec icône
32
+ - Liste d'options dynamiques via JSON
33
+ - Événements personnalisés pour les changements
34
+
35
+ ## Cas d'usage
36
+
37
+ - Sélection de tags ou catégories multiples
38
+ - Formulaires avec listes longues nécessitant recherche
39
+ - Filtres avancés avec multi-critères
40
+ - Configuration de paramètres complexes
41
+ - Sélection dans une liste étendue
25
42
 
26
43
  [<spw-link>Consulter la documentation</spw-link>](https://zeroheight.com/2310c7a1e/p/7029dd-champ-de-selection-select)
27
44
  `,
@@ -105,4 +122,46 @@ AvecSucces.args = Object.assign(Object.assign({}, Default.args), { label: 'Champ
105
122
  // --- AVEC WARNING ---
106
123
  export const AvecWarning = Template.bind({});
107
124
  AvecWarning.args = Object.assign(Object.assign({}, Default.args), { label: 'Champ avec avertissement', warning: 'Cette option peut avoir des conséquences inattendues' });
125
+ Default.parameters = {
126
+ docs: {
127
+ description: {
128
+ story: `Custom Select par défaut avec sélection simple. Liste déroulante stylisée avec options définies via JSON. Cas d'usage : sélection dans listes moyennes, formulaires nécessitant un style cohérent, alternatives au select natif.`,
129
+ },
130
+ },
131
+ };
132
+ Multiple.parameters = {
133
+ docs: {
134
+ description: {
135
+ story: `Custom Select avec sélection multiple activée. Les options sélectionnées s'affichent comme tags sous le champ. Cas d'usage : sélection de tags, catégories multiples, destinataires multiples, filtres combinés.`,
136
+ },
137
+ },
138
+ };
139
+ AvecRecherche.parameters = {
140
+ docs: {
141
+ description: {
142
+ story: `Custom Select avec recherche intégrée. Filtrage en temps réel des options pendant la saisie. Cas d'usage : listes longues de villes ou pays, recherche de contacts, sélection dans catalogues étendus.`,
143
+ },
144
+ },
145
+ };
146
+ AvecErreur.parameters = {
147
+ docs: {
148
+ description: {
149
+ story: `Custom Select en état d'erreur avec message. Affichage visuel distinctif pour indiquer une validation échouée. Cas d'usage : validation de formulaire, indication d'erreur après soumission, champs requis non remplis.`,
150
+ },
151
+ },
152
+ };
153
+ AvecSucces.parameters = {
154
+ docs: {
155
+ description: {
156
+ story: `Custom Select avec message de succès. Confirmation visuelle d'une sélection valide ou enregistrée. Cas d'usage : feedback positif après validation, confirmation d'enregistrement, indication de sélection correcte.`,
157
+ },
158
+ },
159
+ };
160
+ AvecWarning.parameters = {
161
+ docs: {
162
+ description: {
163
+ story: `Custom Select avec avertissement. Message d'alerte pour signaler une situation particulière sans bloquer l'action. Cas d'usage : options avec conséquences importantes, choix nécessitant attention, informations complémentaires critiques.`,
164
+ },
165
+ },
166
+ };
108
167
  //# sourceMappingURL=spw-custom-select.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spw-custom-select.stories.js","sourceRoot":"","sources":["../../../../src/stories/components/spw-custom-select/spw-custom-select.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 { action } from '@storybook/addon-actions';\n\nconst elementTag = 'spw-custom-select';\n\nconst argTypes = withComponentControls(componentsData, { tag: elementTag });\n\nconst meta: Meta = {\n title: 'Composants/Champ de sélection personnalisé (Custom Select)',\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 aux utilisateurs de sélectionner une ou plusieurs options dans une liste personnalisée avec recherche, multi-sélection et gestion d’erreurs.\n\n[<spw-link>Consulter la documentation</spw-link>](https://zeroheight.com/2310c7a1e/p/7029dd-champ-de-selection-select)\n `,\n },\n },\n },\n};\n\nexport default meta;\n\n/* -------------------------------------------------------------------------------------------------\n * TEMPLATE STORY\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 // Application des props du story aux attributs du composant\n Object.entries(args).forEach(([key, val]) => {\n if (val === undefined || val === null) return;\n\n if (key === 'items' && Array.isArray(val)) {\n // Les arrays doivent être passés en JSON\n element.setAttribute('items', JSON.stringify(val));\n } else if (masterProps.includes(key)) {\n element.setAttribute(toKebabCase(key), String(val));\n } else if (key.startsWith('on')) {\n element.addEventListener(key.substring(2).toLowerCase(), val);\n }\n });\n\n // Ajout de l’action Storybook pour suivre les changements de valeur\n element.addEventListener('valueChanged', (event: CustomEvent) => {\n action('valueChanged')(event.detail);\n });\n\n return element;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * STORIES\n * ------------------------------------------------------------------------------------------------- */\n\n// --- STORY PAR DÉFAUT ---\nexport const Default = Template.bind({});\nDefault.args = {\n label: 'Sélection simple',\n name: 'custom-select',\n placeholder: 'Choisissez une option',\n hint: 'Ceci est un texte d’aide',\n showHintIcon: false,\n size: 'medium',\n required: false,\n isSearch: false,\n multiple: false,\n items: [\n { label: 'Option 1', value: '1' },\n { label: 'Option 2', value: '2' },\n { label: 'Option 3', value: '3' },\n ],\n};\n\n// --- MULTI-SÉLECTION ---\nexport const Multiple = Template.bind({});\nMultiple.args = {\n ...Default.args,\n label: 'Sélection multiple',\n multiple: true,\n placeholder: 'Sélectionnez une ou plusieurs options',\n items: [\n { label: 'Pomme', value: 'apple' },\n { label: 'Banane', value: 'banana' },\n { label: 'Cerise', value: 'cherry' },\n { label: 'Mangue', value: 'mango' },\n ],\n};\n\n// --- AVEC RECHERCHE ---\nexport const AvecRecherche = Template.bind({});\nAvecRecherche.args = {\n ...Default.args,\n label: 'Sélection avec recherche',\n isSearch: true,\n placeholder: 'Rechercher une option...',\n items: [\n { label: 'Paris', value: 'paris' },\n { label: 'Londres', value: 'london' },\n { label: 'Berlin', value: 'berlin' },\n { label: 'Madrid', value: 'madrid' },\n { label: 'Rome', value: 'rome' },\n ],\n};\n\n// --- AVEC ERREUR ---\nexport const AvecErreur = Template.bind({});\nAvecErreur.args = {\n ...Default.args,\n label: 'Champ avec erreur',\n error: 'Veuillez sélectionner une option valide',\n};\n\n// --- AVEC MESSAGE DE SUCCÈS ---\nexport const AvecSucces = Template.bind({});\nAvecSucces.args = {\n ...Default.args,\n label: 'Champ avec succès',\n success: 'Sélection enregistrée avec succès !',\n};\n\n// --- AVEC WARNING ---\nexport const AvecWarning = Template.bind({});\nAvecWarning.args = {\n ...Default.args,\n label: 'Champ avec avertissement',\n warning: 'Cette option peut avoir des conséquences inattendues',\n};\n"]}
1
+ {"version":3,"file":"spw-custom-select.stories.js","sourceRoot":"","sources":["../../../../src/stories/components/spw-custom-select/spw-custom-select.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 { action } from '@storybook/addon-actions';\n\nconst elementTag = 'spw-custom-select';\n\nconst argTypes = withComponentControls(componentsData, { tag: elementTag });\n\nconst meta: Meta = {\n title: 'Composants/Champ de sélection personnalisé (Custom Select)',\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 Custom Select est une version avancée du select standard, offrant recherche intégrée, multi-sélection et messages de validation enrichis. Idéal pour les listes longues ou les sélections complexes.\n\n## Fonctionnalités\n\n- Sélection simple ou multiple\n- Messages d'état (erreur, succès, warning)\n- Label et placeholder personnalisables\n- Texte d'assistance avec icône\n- Liste d'options dynamiques via JSON\n- Événements personnalisés pour les changements\n\n## Cas d'usage\n\n- Sélection de tags ou catégories multiples\n- Formulaires avec listes longues nécessitant recherche\n- Filtres avancés avec multi-critères\n- Configuration de paramètres complexes\n- Sélection dans une liste étendue\n\n[<spw-link>Consulter la documentation</spw-link>](https://zeroheight.com/2310c7a1e/p/7029dd-champ-de-selection-select)\n `,\n },\n },\n },\n};\n\nexport default meta;\n\n/* -------------------------------------------------------------------------------------------------\n * TEMPLATE STORY\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 // Application des props du story aux attributs du composant\n Object.entries(args).forEach(([key, val]) => {\n if (val === undefined || val === null) return;\n\n if (key === 'items' && Array.isArray(val)) {\n // Les arrays doivent être passés en JSON\n element.setAttribute('items', JSON.stringify(val));\n } else if (masterProps.includes(key)) {\n element.setAttribute(toKebabCase(key), String(val));\n } else if (key.startsWith('on')) {\n element.addEventListener(key.substring(2).toLowerCase(), val);\n }\n });\n\n // Ajout de l’action Storybook pour suivre les changements de valeur\n element.addEventListener('valueChanged', (event: CustomEvent) => {\n action('valueChanged')(event.detail);\n });\n\n return element;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * STORIES\n * ------------------------------------------------------------------------------------------------- */\n\n// --- STORY PAR DÉFAUT ---\nexport const Default = Template.bind({});\nDefault.args = {\n label: 'Sélection simple',\n name: 'custom-select',\n placeholder: 'Choisissez une option',\n hint: 'Ceci est un texte d’aide',\n showHintIcon: false,\n size: 'medium',\n required: false,\n isSearch: false,\n multiple: false,\n items: [\n { label: 'Option 1', value: '1' },\n { label: 'Option 2', value: '2' },\n { label: 'Option 3', value: '3' },\n ],\n};\n\n// --- MULTI-SÉLECTION ---\nexport const Multiple = Template.bind({});\nMultiple.args = {\n ...Default.args,\n label: 'Sélection multiple',\n multiple: true,\n placeholder: 'Sélectionnez une ou plusieurs options',\n items: [\n { label: 'Pomme', value: 'apple' },\n { label: 'Banane', value: 'banana' },\n { label: 'Cerise', value: 'cherry' },\n { label: 'Mangue', value: 'mango' },\n ],\n};\n\n// --- AVEC RECHERCHE ---\nexport const AvecRecherche = Template.bind({});\nAvecRecherche.args = {\n ...Default.args,\n label: 'Sélection avec recherche',\n isSearch: true,\n placeholder: 'Rechercher une option...',\n items: [\n { label: 'Paris', value: 'paris' },\n { label: 'Londres', value: 'london' },\n { label: 'Berlin', value: 'berlin' },\n { label: 'Madrid', value: 'madrid' },\n { label: 'Rome', value: 'rome' },\n ],\n};\n\n// --- AVEC ERREUR ---\nexport const AvecErreur = Template.bind({});\nAvecErreur.args = {\n ...Default.args,\n label: 'Champ avec erreur',\n error: 'Veuillez sélectionner une option valide',\n};\n\n// --- AVEC MESSAGE DE SUCCÈS ---\nexport const AvecSucces = Template.bind({});\nAvecSucces.args = {\n ...Default.args,\n label: 'Champ avec succès',\n success: 'Sélection enregistrée avec succès !',\n};\n\n// --- AVEC WARNING ---\nexport const AvecWarning = Template.bind({});\nAvecWarning.args = {\n ...Default.args,\n label: 'Champ avec avertissement',\n warning: 'Cette option peut avoir des conséquences inattendues',\n};\n\nDefault.parameters = {\n docs: {\n description: {\n story: `Custom Select par défaut avec sélection simple. Liste déroulante stylisée avec options définies via JSON. Cas d'usage : sélection dans listes moyennes, formulaires nécessitant un style cohérent, alternatives au select natif.`,\n },\n },\n};\n\nMultiple.parameters = {\n docs: {\n description: {\n story: `Custom Select avec sélection multiple activée. Les options sélectionnées s'affichent comme tags sous le champ. Cas d'usage : sélection de tags, catégories multiples, destinataires multiples, filtres combinés.`,\n },\n },\n};\n\nAvecRecherche.parameters = {\n docs: {\n description: {\n story: `Custom Select avec recherche intégrée. Filtrage en temps réel des options pendant la saisie. Cas d'usage : listes longues de villes ou pays, recherche de contacts, sélection dans catalogues étendus.`,\n },\n },\n};\n\nAvecErreur.parameters = {\n docs: {\n description: {\n story: `Custom Select en état d'erreur avec message. Affichage visuel distinctif pour indiquer une validation échouée. Cas d'usage : validation de formulaire, indication d'erreur après soumission, champs requis non remplis.`,\n },\n },\n};\n\nAvecSucces.parameters = {\n docs: {\n description: {\n story: `Custom Select avec message de succès. Confirmation visuelle d'une sélection valide ou enregistrée. Cas d'usage : feedback positif après validation, confirmation d'enregistrement, indication de sélection correcte.`,\n },\n },\n};\n\nAvecWarning.parameters = {\n docs: {\n description: {\n story: `Custom Select avec avertissement. Message d'alerte pour signaler une situation particulière sans bloquer l'action. Cas d'usage : options avec conséquences importantes, choix nécessitant attention, informations complémentaires critiques.`,\n },\n },\n};\n"]}
@@ -20,7 +20,24 @@ 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
- Composant de sélection de date avec options simples et avancées, incluant gestion de plages.
23
+ Le composant Date Picker permet aux utilisateurs de sélectionner une date via un calendrier interactif ou une saisie manuelle. Il supporte les sélections simples, les dates avec contraintes et les plages de dates.
24
+
25
+ ## Fonctionnalités
26
+
27
+ - Calendrier interactif pour sélection visuelle
28
+ - Saisie manuelle de date au format JJ/MM/AAAA
29
+ - Contraintes de dates min et max
30
+ - Mode plage pour sélectionner début et fin
31
+ - Synchronisation automatique des plages
32
+ - État désactivé
33
+
34
+ ## Cas d'usage
35
+
36
+ - Sélection de date de naissance
37
+ - Réservations et planifications
38
+ - Filtres de dates dans recherches
39
+ - Plages de dates pour rapports
40
+ - Formulaires de demandes avec dates
24
41
 
25
42
  [<spw-link>Consulter la documentation</spw-link>](https://zeroheight.com/2310c7a1e/p/314e53-choix-de-date-date-picker)
26
43
  `,
@@ -117,4 +134,46 @@ DateRangeWithValues.args = {
117
134
  endPlaceholder: 'Choisissez une date de fin',
118
135
  endValue: '2025-06-15',
119
136
  };
137
+ Default.parameters = {
138
+ docs: {
139
+ description: {
140
+ story: `Date Picker par défaut avec label et placeholder. Calendrier interactif et saisie manuelle possibles. Cas d'usage : date de naissance, formulaires de demande, sélection de date simple.`,
141
+ },
142
+ },
143
+ };
144
+ WithValue.parameters = {
145
+ docs: {
146
+ description: {
147
+ story: `Date Picker avec valeur pré-remplie. Date initiale définie pour modification ou affichage. Cas d'usage : édition de formulaires existants, dates par défaut, affichage de dates enregistrées.`,
148
+ },
149
+ },
150
+ };
151
+ WithConstraints.parameters = {
152
+ docs: {
153
+ description: {
154
+ story: `Date Picker avec contraintes de dates min et max. Limite les dates sélectionnables à une plage définie. Cas d'usage : réservations futures, dates limitées à une année, périodes de validité.`,
155
+ },
156
+ },
157
+ };
158
+ Disabled.parameters = {
159
+ docs: {
160
+ description: {
161
+ story: `Date Picker en état désactivé. Champ non modifiable pour affichage uniquement. Cas d'usage : dates fixes non modifiables, affichage de dates historiques, champs en lecture seule.`,
162
+ },
163
+ },
164
+ };
165
+ DateRange.parameters = {
166
+ docs: {
167
+ description: {
168
+ story: `Date Picker en mode plage avec deux champs synchronisés. Sélection de date de début et de fin liées. Cas d'usage : réservations avec durée, filtres de périodes, rapports sur plages temporelles, séjours ou locations.`,
169
+ },
170
+ },
171
+ };
172
+ DateRangeWithValues.parameters = {
173
+ docs: {
174
+ description: {
175
+ story: `Date Picker en mode plage avec valeurs pré-remplies. Plage de dates existante affichée et modifiable. Cas d'usage : édition de réservations, modification de filtres existants, affichage de périodes enregistrées.`,
176
+ },
177
+ },
178
+ };
120
179
  //# sourceMappingURL=spw-date-picker.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spw-date-picker.stories.js","sourceRoot":"","sources":["../../../../src/stories/components/spw-date-picker/spw-date-picker.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';\n\nconst elementTag = 'spw-date-picker';\n\nconst argTypes = withComponentControls(componentsData, { tag: elementTag });\n\nconst meta: Meta = {\n title: 'Composants/Choix de date (date picker)',\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\nComposant de sélection de date avec options simples et avancées, incluant gestion de plages.\n\n[<spw-link>Consulter la documentation</spw-link>](https://zeroheight.com/2310c7a1e/p/314e53-choix-de-date-date-picker)\n `,\n },\n },\n },\n};\n\nexport default meta;\n\n// Stories template\nconst Template: StoryFn = args => {\n const element = document.createElement(elementTag);\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 return element;\n};\n\n// Default\nexport const Default = Template.bind({});\nDefault.args = {\n label: 'Date de naissance',\n placeholder: 'JJ/MM/AAAA',\n};\n\n// WithValue\nexport const WithValue = Template.bind({});\nWithValue.args = {\n label: 'Date avec valeur',\n value: '2025-06-30',\n placeholder: 'JJ/MM/AAAA',\n};\n\n// WithConstraints\nexport const WithConstraints = Template.bind({});\nWithConstraints.args = {\n label: 'Date limitée',\n placeholder: 'JJ/MM/AAAA',\n min: '2025-01-01',\n max: '2025-12-31',\n};\n\n// Disabled\nexport const Disabled = Template.bind({});\nDisabled.args = {\n label: 'Date désactivée',\n placeholder: 'Non disponible',\n disabled: true,\n};\n\n// Range template (nécessite deux datepickers)\nconst RangeTemplate: StoryFn = args => {\n const container = document.createElement('div');\n\n // Créer le datepicker de début\n const startPicker = document.createElement(elementTag);\n startPicker.setAttribute('range', 'true');\n startPicker.setAttribute('range-id', args.rangeId || '1');\n startPicker.setAttribute('is-start', 'true');\n startPicker.setAttribute('label', args.startLabel || 'Date de début');\n startPicker.setAttribute('placeholder', args.startPlaceholder || 'Choisissez une date de début');\n if (args.startValue) startPicker.setAttribute('value', args.startValue);\n startPicker.classList.add('mb-3');\n\n // Créer le datepicker de fin\n const endPicker = document.createElement(elementTag);\n endPicker.setAttribute('range', 'true');\n endPicker.setAttribute('range-id', args.rangeId || '1');\n endPicker.setAttribute('label', args.endLabel || 'Date de fin');\n endPicker.setAttribute('placeholder', args.endPlaceholder || 'Choisissez une date de fin');\n if (args.endValue) endPicker.setAttribute('value', args.endValue);\n\n container.appendChild(startPicker);\n container.appendChild(endPicker);\n\n return container;\n};\n\n// DateRange\nexport const DateRange = RangeTemplate.bind({});\nDateRange.args = {\n rangeId: 'range-story-1',\n startLabel: 'Date de début',\n startPlaceholder: 'Choisissez une date de début',\n endLabel: 'Date de fin',\n endPlaceholder: 'Choisissez une date de fin',\n};\n\n// DateRangeWithValues\nexport const DateRangeWithValues = RangeTemplate.bind({});\nDateRangeWithValues.args = {\n rangeId: 'range-story-2',\n startLabel: 'Date de début',\n startPlaceholder: 'Choisissez une date de début',\n startValue: '2025-06-01',\n endLabel: 'Date de fin',\n endPlaceholder: 'Choisissez une date de fin',\n endValue: '2025-06-15',\n};\n"]}
1
+ {"version":3,"file":"spw-date-picker.stories.js","sourceRoot":"","sources":["../../../../src/stories/components/spw-date-picker/spw-date-picker.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';\n\nconst elementTag = 'spw-date-picker';\n\nconst argTypes = withComponentControls(componentsData, { tag: elementTag });\n\nconst meta: Meta = {\n title: 'Composants/Choix de date (date picker)',\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 Date Picker permet aux utilisateurs de sélectionner une date via un calendrier interactif ou une saisie manuelle. Il supporte les sélections simples, les dates avec contraintes et les plages de dates.\n\n## Fonctionnalités\n\n- Calendrier interactif pour sélection visuelle\n- Saisie manuelle de date au format JJ/MM/AAAA\n- Contraintes de dates min et max\n- Mode plage pour sélectionner début et fin\n- Synchronisation automatique des plages\n- État désactivé\n\n## Cas d'usage\n\n- Sélection de date de naissance\n- Réservations et planifications\n- Filtres de dates dans recherches\n- Plages de dates pour rapports\n- Formulaires de demandes avec dates\n\n[<spw-link>Consulter la documentation</spw-link>](https://zeroheight.com/2310c7a1e/p/314e53-choix-de-date-date-picker)\n `,\n },\n },\n },\n};\n\nexport default meta;\n\n// Stories template\nconst Template: StoryFn = args => {\n const element = document.createElement(elementTag);\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 return element;\n};\n\n// Default\nexport const Default = Template.bind({});\nDefault.args = {\n label: 'Date de naissance',\n placeholder: 'JJ/MM/AAAA',\n};\n\n// WithValue\nexport const WithValue = Template.bind({});\nWithValue.args = {\n label: 'Date avec valeur',\n value: '2025-06-30',\n placeholder: 'JJ/MM/AAAA',\n};\n\n// WithConstraints\nexport const WithConstraints = Template.bind({});\nWithConstraints.args = {\n label: 'Date limitée',\n placeholder: 'JJ/MM/AAAA',\n min: '2025-01-01',\n max: '2025-12-31',\n};\n\n// Disabled\nexport const Disabled = Template.bind({});\nDisabled.args = {\n label: 'Date désactivée',\n placeholder: 'Non disponible',\n disabled: true,\n};\n\n// Range template (nécessite deux datepickers)\nconst RangeTemplate: StoryFn = args => {\n const container = document.createElement('div');\n\n // Créer le datepicker de début\n const startPicker = document.createElement(elementTag);\n startPicker.setAttribute('range', 'true');\n startPicker.setAttribute('range-id', args.rangeId || '1');\n startPicker.setAttribute('is-start', 'true');\n startPicker.setAttribute('label', args.startLabel || 'Date de début');\n startPicker.setAttribute('placeholder', args.startPlaceholder || 'Choisissez une date de début');\n if (args.startValue) startPicker.setAttribute('value', args.startValue);\n startPicker.classList.add('mb-3');\n\n // Créer le datepicker de fin\n const endPicker = document.createElement(elementTag);\n endPicker.setAttribute('range', 'true');\n endPicker.setAttribute('range-id', args.rangeId || '1');\n endPicker.setAttribute('label', args.endLabel || 'Date de fin');\n endPicker.setAttribute('placeholder', args.endPlaceholder || 'Choisissez une date de fin');\n if (args.endValue) endPicker.setAttribute('value', args.endValue);\n\n container.appendChild(startPicker);\n container.appendChild(endPicker);\n\n return container;\n};\n\n// DateRange\nexport const DateRange = RangeTemplate.bind({});\nDateRange.args = {\n rangeId: 'range-story-1',\n startLabel: 'Date de début',\n startPlaceholder: 'Choisissez une date de début',\n endLabel: 'Date de fin',\n endPlaceholder: 'Choisissez une date de fin',\n};\n\n// DateRangeWithValues\nexport const DateRangeWithValues = RangeTemplate.bind({});\nDateRangeWithValues.args = {\n rangeId: 'range-story-2',\n startLabel: 'Date de début',\n startPlaceholder: 'Choisissez une date de début',\n startValue: '2025-06-01',\n endLabel: 'Date de fin',\n endPlaceholder: 'Choisissez une date de fin',\n endValue: '2025-06-15',\n};\n\nDefault.parameters = {\n docs: {\n description: {\n story: `Date Picker par défaut avec label et placeholder. Calendrier interactif et saisie manuelle possibles. Cas d'usage : date de naissance, formulaires de demande, sélection de date simple.`,\n },\n },\n};\n\nWithValue.parameters = {\n docs: {\n description: {\n story: `Date Picker avec valeur pré-remplie. Date initiale définie pour modification ou affichage. Cas d'usage : édition de formulaires existants, dates par défaut, affichage de dates enregistrées.`,\n },\n },\n};\n\nWithConstraints.parameters = {\n docs: {\n description: {\n story: `Date Picker avec contraintes de dates min et max. Limite les dates sélectionnables à une plage définie. Cas d'usage : réservations futures, dates limitées à une année, périodes de validité.`,\n },\n },\n};\n\nDisabled.parameters = {\n docs: {\n description: {\n story: `Date Picker en état désactivé. Champ non modifiable pour affichage uniquement. Cas d'usage : dates fixes non modifiables, affichage de dates historiques, champs en lecture seule.`,\n },\n },\n};\n\nDateRange.parameters = {\n docs: {\n description: {\n story: `Date Picker en mode plage avec deux champs synchronisés. Sélection de date de début et de fin liées. Cas d'usage : réservations avec durée, filtres de périodes, rapports sur plages temporelles, séjours ou locations.`,\n },\n },\n};\n\nDateRangeWithValues.parameters = {\n docs: {\n description: {\n story: `Date Picker en mode plage avec valeurs pré-remplies. Plage de dates existante affichée et modifiable. Cas d'usage : édition de réservations, modification de filtres existants, affichage de périodes enregistrées.`,\n },\n },\n};\n"]}
@@ -20,7 +20,25 @@ 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
- Affiche une liste d'options qui se déploie lorsque l'utilisateur interagit avec un élément déclencheur.
23
+ Le composant Dropdown affiche une liste d'actions ou d'options qui se déploie au clic sur un élément déclencheur. Il offre un moyen compact d'organiser plusieurs actions contextuelles.
24
+
25
+ ## Fonctionnalités
26
+
27
+ - Déclencheur personnalisable (bouton, icône, texte)
28
+ - Contenu flexible via slot
29
+ - Fermeture au clic extérieur
30
+ - Positionnement automatique
31
+ - Support de contenu complexe (boutons, liens, séparateurs)
32
+ - Compatible avec spw-group pour organisation verticale
33
+
34
+ ## Cas d'usage
35
+
36
+ - Menus d'actions contextuelles (modifier, supprimer, partager)
37
+ - Menus utilisateur avec profil et déconnexion
38
+ - Options supplémentaires dans cartes ou tableaux
39
+ - Actions groupées dans toolbars
40
+ - Menus de navigation compacts
41
+ - Filtres et tris dans listes
24
42
 
25
43
  [<spw-link>Consulter la documentation</spw-link>](https://zeroheight.com/2310c7a1e/p/135010-menu-deroulant-dropdown-menu)
26
44
  `,
@@ -1 +1 @@
1
- {"version":3,"file":"spw-dropdown.stories.js","sourceRoot":"","sources":["../../../../src/stories/components/spw-dropdown/spw-dropdown.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,cAAc,CAAC;AAElC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;AAE5E,MAAM,IAAI,GAAS;IACjB,KAAK,EAAE,sCAAsC;IAC7C,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;;;;;;;;;;GAUjB,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,EAAE,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-dropdown';\n\nconst argTypes = withComponentControls(componentsData, { tag: elementTag });\n\nconst meta: Meta = {\n title: 'Composants/Menu déroulant (dropdown)',\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\nAffiche une liste d'options qui se déploie lorsque l'utilisateur interagit avec un élément déclencheur.\n\n[<spw-link>Consulter la documentation</spw-link>](https://zeroheight.com/2310c7a1e/p/135010-menu-deroulant-dropdown-menu)\n `,\n },\n },\n },\n};\n\nexport default meta;\n\nfunction htmlContentDefault() {\n return /* HTML */ `\n <spw-button icon=\"fa-ellipsis-vertical\" is-icon-only=\"true\" size=\"small\" variant=\"secondary\" class=\"mx-1\">\n <div slot=\"dropdownContent\">\n <spw-group orientation=\"vertical\" is-full-width>\n <spw-button is-full-width variant=\"secondary\" size=\"small\">Action 1</spw-button>\n <spw-button is-full-width variant=\"secondary\" size=\"small\">Action 2</spw-button>\n <spw-button is-full-width variant=\"primary\" size=\"small\">Validation</spw-button>\n </spw-group>\n </div>\n </spw-button>\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"]}
1
+ {"version":3,"file":"spw-dropdown.stories.js","sourceRoot":"","sources":["../../../../src/stories/components/spw-dropdown/spw-dropdown.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,cAAc,CAAC;AAElC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;AAE5E,MAAM,IAAI,GAAS;IACjB,KAAK,EAAE,sCAAsC;IAC7C,SAAS,EAAE,UAAU;IACrB,QAAQ;IACR,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,WAAW,EAAE;gBACX,SAAS,EAAE;;;;;;;;;;;;;;;;;;;;;;;;SAwBV;aACF;SACF;KACF;CACF,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,SAAS,kBAAkB;IACzB,OAAO,UAAU,CAAC;;;;;;;;;;GAUjB,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,EAAE,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-dropdown';\n\nconst argTypes = withComponentControls(componentsData, { tag: elementTag });\n\nconst meta: Meta = {\n title: 'Composants/Menu déroulant (dropdown)',\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 Dropdown affiche une liste d'actions ou d'options qui se déploie au clic sur un élément déclencheur. Il offre un moyen compact d'organiser plusieurs actions contextuelles.\n\n## Fonctionnalités\n\n- Déclencheur personnalisable (bouton, icône, texte)\n- Contenu flexible via slot\n- Fermeture au clic extérieur\n- Positionnement automatique\n- Support de contenu complexe (boutons, liens, séparateurs)\n- Compatible avec spw-group pour organisation verticale\n\n## Cas d'usage\n\n- Menus d'actions contextuelles (modifier, supprimer, partager)\n- Menus utilisateur avec profil et déconnexion\n- Options supplémentaires dans cartes ou tableaux\n- Actions groupées dans toolbars\n- Menus de navigation compacts\n- Filtres et tris dans listes\n\n[<spw-link>Consulter la documentation</spw-link>](https://zeroheight.com/2310c7a1e/p/135010-menu-deroulant-dropdown-menu)\n `,\n },\n },\n },\n};\n\nexport default meta;\n\nfunction htmlContentDefault() {\n return /* HTML */ `\n <spw-button icon=\"fa-ellipsis-vertical\" is-icon-only=\"true\" size=\"small\" variant=\"secondary\" class=\"mx-1\">\n <div slot=\"dropdownContent\">\n <spw-group orientation=\"vertical\" is-full-width>\n <spw-button is-full-width variant=\"secondary\" size=\"small\">Action 1</spw-button>\n <spw-button is-full-width variant=\"secondary\" size=\"small\">Action 2</spw-button>\n <spw-button is-full-width variant=\"primary\" size=\"small\">Validation</spw-button>\n </spw-group>\n </div>\n </spw-button>\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"]}
@@ -20,7 +20,30 @@ 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
- Conseil ou info supplémentaire pour guider lutilisateur.
23
+ Le composant Field Message affiche des messages d'aide, d'erreur, de succès ou d'avertissement associés aux champs de formulaire. Il guide l'utilisateur et fournit un feedback visuel sur la validation.
24
+
25
+ ## Variantes disponibles
26
+
27
+ - **hint** : Message d'aide neutre (par défaut)
28
+ - **error** : Message d'erreur en rouge
29
+ - **success** : Message de succès en vert
30
+ - **warning** : Message d'avertissement en orange
31
+
32
+ ## Fonctionnalités
33
+
34
+ - Icônes contextuelles selon le type
35
+ - Couleurs distinctives par variante
36
+ - Intégration dans les champs de formulaire
37
+ - Texte personnalisable
38
+
39
+ ## Cas d'usage
40
+
41
+ - Texte d'aide sous les champs de formulaire
42
+ - Messages d'erreur de validation
43
+ - Confirmation de saisie correcte
44
+ - Avertissements sur des contraintes
45
+ - Instructions de remplissage
46
+ - Feedback utilisateur en temps réel
24
47
 
25
48
  [<spw-link>Consulter la documentation</spw-link>](https://zeroheight.com/2310c7a1e/p/99862d-indice-de-champ-hint)
26
49
  `,
@@ -71,4 +94,32 @@ Warning.args = {
71
94
  label: 'Mon texte',
72
95
  variant: 'warning',
73
96
  };
97
+ Hint.parameters = {
98
+ docs: {
99
+ description: {
100
+ story: `Message d'aide neutre sous un champ de formulaire. Fournit des instructions ou conseils pour aider la saisie. Cas d'usage : format attendu, exemples de saisie, informations complémentaires sur le champ.`,
101
+ },
102
+ },
103
+ };
104
+ Error.parameters = {
105
+ docs: {
106
+ description: {
107
+ story: `Message d'erreur affiché en rouge avec icône. Indique un problème de validation ou une saisie incorrecte. Cas d'usage : erreurs de validation, format invalide, champs obligatoires manquants.`,
108
+ },
109
+ },
110
+ };
111
+ Success.parameters = {
112
+ docs: {
113
+ description: {
114
+ story: `Message de succès affiché en vert avec icône. Confirme une saisie valide ou une action réussie. Cas d'usage : validation réussie, confirmation d'enregistrement, saisie correcte.`,
115
+ },
116
+ },
117
+ };
118
+ Warning.parameters = {
119
+ docs: {
120
+ description: {
121
+ story: `Message d'avertissement affiché en orange avec icône. Alerte sur une situation particulière sans bloquer. Cas d'usage : contraintes importantes, informations critiques, précautions à prendre.`,
122
+ },
123
+ },
124
+ };
74
125
  //# sourceMappingURL=spw-field-message.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spw-field-message.stories.js","sourceRoot":"","sources":["../../../../src/stories/components/spw-field-message/spw-field-message.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,mBAAmB,CAAC;AAEvC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;AAE5E,MAAM,IAAI,GAAS;IACjB,KAAK,EAAE,mCAAmC;IAC1C,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,CAAC,IAAI;IACvB,OAAO,UAAU,CAAC,GAAG,IAAI,EAAE,CAAC;AAC9B,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,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACtC,MAAM,CAAC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvC,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzC,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzC,IAAI,CAAC,IAAI,GAAG;IACV,KAAK,EAAE,WAAW;IAClB,OAAO,EAAE,MAAM;CAChB,CAAC;AACF,KAAK,CAAC,IAAI,GAAG;IACX,KAAK,EAAE,WAAW;IAClB,OAAO,EAAE,OAAO;CACjB,CAAC;AACF,OAAO,CAAC,IAAI,GAAG;IACb,KAAK,EAAE,WAAW;IAClB,OAAO,EAAE,SAAS;CACnB,CAAC;AACF,OAAO,CAAC,IAAI,GAAG;IACb,KAAK,EAAE,WAAW;IAClB,OAAO,EAAE,SAAS;CACnB,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-field-message';\n\nconst argTypes = withComponentControls(componentsData, { tag: elementTag });\n\nconst meta: Meta = {\n title: 'Composants/Indice de champ (hint)',\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\nConseil ou info supplémentaire pour guider lutilisateur.\n\n[<spw-link>Consulter la documentation</spw-link>](https://zeroheight.com/2310c7a1e/p/99862d-indice-de-champ-hint)\n `,\n },\n },\n },\n};\n\nexport default meta;\n\nfunction htmlContent(slot) {\n return /* HTML */ `${slot}`;\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(args[slottedLabel]);\n }\n\n return element;\n};\n\nexport const Hint = Template.bind({});\nexport const Error = Template.bind({});\nexport const Success = Template.bind({});\nexport const Warning = Template.bind({});\nHint.args = {\n label: 'Mon texte',\n variant: 'hint',\n};\nError.args = {\n label: 'Mon texte',\n variant: 'error',\n};\nSuccess.args = {\n label: 'Mon texte',\n variant: 'success',\n};\nWarning.args = {\n label: 'Mon texte',\n variant: 'warning',\n};\n"]}
1
+ {"version":3,"file":"spw-field-message.stories.js","sourceRoot":"","sources":["../../../../src/stories/components/spw-field-message/spw-field-message.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,mBAAmB,CAAC;AAEvC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;AAE5E,MAAM,IAAI,GAAS;IACjB,KAAK,EAAE,mCAAmC;IAC1C,SAAS,EAAE,UAAU;IACrB,QAAQ;IACR,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,WAAW,EAAE;gBACX,SAAS,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA6BV;aACF;SACF;KACF;CACF,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,SAAS,WAAW,CAAC,IAAI;IACvB,OAAO,UAAU,CAAC,GAAG,IAAI,EAAE,CAAC;AAC9B,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,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACtC,MAAM,CAAC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvC,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzC,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzC,IAAI,CAAC,IAAI,GAAG;IACV,KAAK,EAAE,WAAW;IAClB,OAAO,EAAE,MAAM;CAChB,CAAC;AACF,KAAK,CAAC,IAAI,GAAG;IACX,KAAK,EAAE,WAAW;IAClB,OAAO,EAAE,OAAO;CACjB,CAAC;AACF,OAAO,CAAC,IAAI,GAAG;IACb,KAAK,EAAE,WAAW;IAClB,OAAO,EAAE,SAAS;CACnB,CAAC;AACF,OAAO,CAAC,IAAI,GAAG;IACb,KAAK,EAAE,WAAW;IAClB,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,IAAI,CAAC,UAAU,GAAG;IAChB,IAAI,EAAE;QACJ,WAAW,EAAE;YACX,KAAK,EAAE,4MAA4M;SACpN;KACF;CACF,CAAC;AAEF,KAAK,CAAC,UAAU,GAAG;IACjB,IAAI,EAAE;QACJ,WAAW,EAAE;YACX,KAAK,EAAE,gMAAgM;SACxM;KACF;CACF,CAAC;AAEF,OAAO,CAAC,UAAU,GAAG;IACnB,IAAI,EAAE;QACJ,WAAW,EAAE;YACX,KAAK,EAAE,mLAAmL;SAC3L;KACF;CACF,CAAC;AAEF,OAAO,CAAC,UAAU,GAAG;IACnB,IAAI,EAAE;QACJ,WAAW,EAAE;YACX,KAAK,EAAE,iMAAiM;SACzM;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-field-message';\n\nconst argTypes = withComponentControls(componentsData, { tag: elementTag });\n\nconst meta: Meta = {\n title: 'Composants/Indice de champ (hint)',\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 Field Message affiche des messages d'aide, d'erreur, de succès ou d'avertissement associés aux champs de formulaire. Il guide l'utilisateur et fournit un feedback visuel sur la validation.\n\n## Variantes disponibles\n\n- **hint** : Message d'aide neutre (par défaut)\n- **error** : Message d'erreur en rouge\n- **success** : Message de succès en vert\n- **warning** : Message d'avertissement en orange\n\n## Fonctionnalités\n\n- Icônes contextuelles selon le type\n- Couleurs distinctives par variante\n- Intégration dans les champs de formulaire\n- Texte personnalisable\n\n## Cas d'usage\n\n- Texte d'aide sous les champs de formulaire\n- Messages d'erreur de validation\n- Confirmation de saisie correcte\n- Avertissements sur des contraintes\n- Instructions de remplissage\n- Feedback utilisateur en temps réel\n\n[<spw-link>Consulter la documentation</spw-link>](https://zeroheight.com/2310c7a1e/p/99862d-indice-de-champ-hint)\n `,\n },\n },\n },\n};\n\nexport default meta;\n\nfunction htmlContent(slot) {\n return /* HTML */ `${slot}`;\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(args[slottedLabel]);\n }\n\n return element;\n};\n\nexport const Hint = Template.bind({});\nexport const Error = Template.bind({});\nexport const Success = Template.bind({});\nexport const Warning = Template.bind({});\nHint.args = {\n label: 'Mon texte',\n variant: 'hint',\n};\nError.args = {\n label: 'Mon texte',\n variant: 'error',\n};\nSuccess.args = {\n label: 'Mon texte',\n variant: 'success',\n};\nWarning.args = {\n label: 'Mon texte',\n variant: 'warning',\n};\n\nHint.parameters = {\n docs: {\n description: {\n story: `Message d'aide neutre sous un champ de formulaire. Fournit des instructions ou conseils pour aider la saisie. Cas d'usage : format attendu, exemples de saisie, informations complémentaires sur le champ.`,\n },\n },\n};\n\nError.parameters = {\n docs: {\n description: {\n story: `Message d'erreur affiché en rouge avec icône. Indique un problème de validation ou une saisie incorrecte. Cas d'usage : erreurs de validation, format invalide, champs obligatoires manquants.`,\n },\n },\n};\n\nSuccess.parameters = {\n docs: {\n description: {\n story: `Message de succès affiché en vert avec icône. Confirme une saisie valide ou une action réussie. Cas d'usage : validation réussie, confirmation d'enregistrement, saisie correcte.`,\n },\n },\n};\n\nWarning.parameters = {\n docs: {\n description: {\n story: `Message d'avertissement affiché en orange avec icône. Alerte sur une situation particulière sans bloquer. Cas d'usage : contraintes importantes, informations critiques, précautions à prendre.`,\n },\n },\n};\n"]}
@@ -20,7 +20,26 @@ 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
- Sélectionner et télécharger des fichiers depuis vers une application web.
23
+ Le composant File Upload permet aux utilisateurs de sélectionner et télécharger un ou plusieurs fichiers vers l'application. Il intègre validation de type, taille et nombre de fichiers avec feedback visuel.
24
+
25
+ ## Fonctionnalités
26
+
27
+ - Sélection de fichiers unique ou multiple
28
+ - Drag and drop pour déposer des fichiers
29
+ - Validation des types de fichiers acceptés
30
+ - Limitation de taille par fichier (Mo)
31
+ - Limitation du nombre de fichiers
32
+ - Aperçu des fichiers sélectionnés
33
+ - Suppression individuelle des fichiers
34
+ - Messages d'erreur détaillés
35
+
36
+ ## Cas d'usage
37
+
38
+ - Upload de documents
39
+ - Envoi de photos ou images
40
+ - Ajout de pièces jointes dans formulaires
41
+ - Import de fichiers de données (CSV, Excel)
42
+ - Téléchargement de fichiers multiples
24
43
 
25
44
  [<spw-link>Consulter la documentation</spw-link>](https://zeroheight.com/2310c7a1e/p/934c31-envoi-de-fichiers-upload)
26
45
  `,