@spw-ds/spw-stencil-library 1.2.4 → 1.2.6

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 (395) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/spw-button.spw-loading.entry.cjs.js.map +1 -1
  3. package/dist/cjs/spw-button_2.cjs.entry.js +1 -1
  4. package/dist/cjs/spw-button_2.cjs.entry.js.map +1 -1
  5. package/dist/cjs/spw-custom-select.cjs.entry.js +43 -7
  6. package/dist/cjs/spw-custom-select.cjs.entry.js.map +1 -1
  7. package/dist/cjs/spw-custom-select.entry.cjs.js.map +1 -1
  8. package/dist/cjs/spw-date-picker.cjs.entry.js +48 -28
  9. package/dist/cjs/spw-date-picker.cjs.entry.js.map +1 -1
  10. package/dist/cjs/spw-date-picker.entry.cjs.js.map +1 -1
  11. package/dist/cjs/spw-field-label.spw-group.spw-icon.spw-link.spw-separator.spw-theme-provider.entry.cjs.js.map +1 -1
  12. package/dist/cjs/spw-field-label_6.cjs.entry.js +3 -3
  13. package/dist/cjs/spw-field-label_6.cjs.entry.js.map +1 -1
  14. package/dist/cjs/spw-header-navigation-item.cjs.entry.js +1 -1
  15. package/dist/cjs/spw-header-navigation-item.cjs.entry.js.map +1 -1
  16. package/dist/cjs/spw-header-navigation-item.entry.cjs.js.map +1 -1
  17. package/dist/cjs/spw-header-navigation.cjs.entry.js +10 -2
  18. package/dist/cjs/spw-header-navigation.cjs.entry.js.map +1 -1
  19. package/dist/cjs/spw-header-navigation.entry.cjs.js.map +1 -1
  20. package/dist/cjs/spw-pagination.cjs.entry.js +26 -16
  21. package/dist/cjs/spw-pagination.cjs.entry.js.map +1 -1
  22. package/dist/cjs/spw-pagination.entry.cjs.js.map +1 -1
  23. package/dist/cjs/spw-search-field.cjs.entry.js +74 -10
  24. package/dist/cjs/spw-search-field.cjs.entry.js.map +1 -1
  25. package/dist/cjs/spw-search-field.entry.cjs.js.map +1 -1
  26. package/dist/cjs/spw-select.cjs.entry.js +3 -1
  27. package/dist/cjs/spw-select.cjs.entry.js.map +1 -1
  28. package/dist/cjs/spw-select.entry.cjs.js.map +1 -1
  29. package/dist/cjs/spw-sidebar-navigation-dropdown.cjs.entry.js +1 -1
  30. package/dist/cjs/spw-sidebar-navigation-item.cjs.entry.js +3 -3
  31. package/dist/cjs/spw-sidebar-navigation-separator.cjs.entry.js +1 -1
  32. package/dist/cjs/spw-sidebar.cjs.entry.js +1 -1
  33. package/dist/cjs/spw-skeleton.cjs.entry.js +1 -1
  34. package/dist/cjs/spw-socials.cjs.entry.js +1 -1
  35. package/dist/cjs/spw-stencil-library.cjs.js +1 -1
  36. package/dist/cjs/spw-table-body.cjs.entry.js +1 -1
  37. package/dist/cjs/spw-table-cell.cjs.entry.js +23 -2
  38. package/dist/cjs/spw-table-cell.cjs.entry.js.map +1 -1
  39. package/dist/cjs/spw-table-cell.entry.cjs.js.map +1 -1
  40. package/dist/cjs/spw-table-footer.cjs.entry.js +2 -2
  41. package/dist/cjs/spw-table-footer.cjs.entry.js.map +1 -1
  42. package/dist/cjs/spw-table-footer.entry.cjs.js.map +1 -1
  43. package/dist/cjs/spw-table-head.cjs.entry.js +1 -1
  44. package/dist/cjs/spw-table-header.cjs.entry.js +33 -3
  45. package/dist/cjs/spw-table-header.cjs.entry.js.map +1 -1
  46. package/dist/cjs/spw-table-header.entry.cjs.js.map +1 -1
  47. package/dist/cjs/spw-table-row.cjs.entry.js +34 -2
  48. package/dist/cjs/spw-table-row.cjs.entry.js.map +1 -1
  49. package/dist/cjs/spw-table-row.entry.cjs.js.map +1 -1
  50. package/dist/cjs/spw-table.cjs.entry.js +26 -3
  51. package/dist/cjs/spw-table.cjs.entry.js.map +1 -1
  52. package/dist/cjs/spw-table.entry.cjs.js.map +1 -1
  53. package/dist/cjs/spw-tabs-navigation-item.cjs.entry.js +1 -1
  54. package/dist/cjs/spw-tabs-navigation.cjs.entry.js +1 -1
  55. package/dist/cjs/spw-tabs.cjs.entry.js +1 -1
  56. package/dist/cjs/spw-tag.cjs.entry.js +1 -1
  57. package/dist/cjs/spw-text-field.cjs.entry.js +1 -1
  58. package/dist/cjs/spw-textarea.cjs.entry.js +1 -1
  59. package/dist/cjs/spw-tile-description.cjs.entry.js +1 -1
  60. package/dist/cjs/spw-tile-title.cjs.entry.js +1 -1
  61. package/dist/cjs/spw-tile.cjs.entry.js +1 -1
  62. package/dist/cjs/spw-tooltip.cjs.entry.js +1 -1
  63. package/dist/cjs/spw-topbar.cjs.entry.js +1 -1
  64. package/dist/cjs/spw-wizard-item.cjs.entry.js +1 -1
  65. package/dist/cjs/spw-wizard.cjs.entry.js +1 -1
  66. package/dist/cjs/utils-D_vNTY6w.js.map +1 -1
  67. package/dist/collection/components/spw-button/spw-button.css +1 -1
  68. package/dist/collection/components/spw-custom-select/spw-custom-select.css +1 -1
  69. package/dist/collection/components/spw-custom-select/spw-custom-select.js +42 -6
  70. package/dist/collection/components/spw-custom-select/spw-custom-select.js.map +1 -1
  71. package/dist/collection/components/spw-date-picker/spw-date-picker.js +48 -28
  72. package/dist/collection/components/spw-date-picker/spw-date-picker.js.map +1 -1
  73. package/dist/collection/components/spw-header/spw-header-navigation/spw-header-navigation.css +1 -1
  74. package/dist/collection/components/spw-header/spw-header-navigation/spw-header-navigation.js +33 -1
  75. package/dist/collection/components/spw-header/spw-header-navigation/spw-header-navigation.js.map +1 -1
  76. package/dist/collection/components/spw-header/spw-header-navigation-item/spw-header-navigation-item.css +1 -1
  77. package/dist/collection/components/spw-link/spw-link.css +1 -1
  78. package/dist/collection/components/spw-pagination/spw-pagination.css +1 -1
  79. package/dist/collection/components/spw-pagination/spw-pagination.js +54 -13
  80. package/dist/collection/components/spw-pagination/spw-pagination.js.map +1 -1
  81. package/dist/collection/components/spw-search-field/spw-search-field.css +1 -1
  82. package/dist/collection/components/spw-search-field/spw-search-field.js +247 -9
  83. package/dist/collection/components/spw-search-field/spw-search-field.js.map +1 -1
  84. package/dist/collection/components/spw-select/spw-select.js +3 -1
  85. package/dist/collection/components/spw-select/spw-select.js.map +1 -1
  86. package/dist/collection/components/spw-separator/spw-separator.js +1 -1
  87. package/dist/collection/components/spw-sidebar/spw-sidebar-navigation-dropdown/spw-sidebar-navigation-dropdown.js +1 -1
  88. package/dist/collection/components/spw-sidebar/spw-sidebar-navigation-item/spw-sidebar-navigation-item.js +3 -3
  89. package/dist/collection/components/spw-sidebar/spw-sidebar-navigation-separator/spw-sidebar-navigation-separator.js +1 -1
  90. package/dist/collection/components/spw-sidebar/spw-sidebar.js +1 -1
  91. package/dist/collection/components/spw-skeleton/spw-skeleton.js +1 -1
  92. package/dist/collection/components/spw-socials/spw-socials.js +1 -1
  93. package/dist/collection/components/spw-table/spw-table-body/spw-table-body.js +1 -1
  94. package/dist/collection/components/spw-table/spw-table-cell/spw-table-cell.css +1 -1
  95. package/dist/collection/components/spw-table/spw-table-cell/spw-table-cell.js +82 -1
  96. package/dist/collection/components/spw-table/spw-table-cell/spw-table-cell.js.map +1 -1
  97. package/dist/collection/components/spw-table/spw-table-footer/spw-table-footer.css +1 -1
  98. package/dist/collection/components/spw-table/spw-table-footer/spw-table-footer.js +1 -1
  99. package/dist/collection/components/spw-table/spw-table-head/spw-table-head.js +1 -1
  100. package/dist/collection/components/spw-table/spw-table-header/spw-table-header.css +1 -1
  101. package/dist/collection/components/spw-table/spw-table-header/spw-table-header.js +92 -2
  102. package/dist/collection/components/spw-table/spw-table-header/spw-table-header.js.map +1 -1
  103. package/dist/collection/components/spw-table/spw-table-row/spw-table-row.css +1 -1
  104. package/dist/collection/components/spw-table/spw-table-row/spw-table-row.js +66 -1
  105. package/dist/collection/components/spw-table/spw-table-row/spw-table-row.js.map +1 -1
  106. package/dist/collection/components/spw-table/spw-table.js +27 -2
  107. package/dist/collection/components/spw-table/spw-table.js.map +1 -1
  108. package/dist/collection/components/spw-tabs/spw-tabs-navigation/spw-tabs-navigation.js +1 -1
  109. package/dist/collection/components/spw-tabs/spw-tabs-navigation-item/spw-tabs-navigation-item.js +1 -1
  110. package/dist/collection/components/spw-tabs/spw-tabs.js +1 -1
  111. package/dist/collection/components/spw-tag/spw-tag.js +1 -1
  112. package/dist/collection/components/spw-text-field/spw-text-field.js +1 -1
  113. package/dist/collection/components/spw-textarea/spw-textarea.js +1 -1
  114. package/dist/collection/components/spw-theme-provider/spw-theme-provider.js +1 -1
  115. package/dist/collection/components/spw-tile/spw-tile-description/spw-tile-description.js +1 -1
  116. package/dist/collection/components/spw-tile/spw-tile-title/spw-tile-title.js +1 -1
  117. package/dist/collection/components/spw-tile/spw-tile.js +1 -1
  118. package/dist/collection/components/spw-tooltip/spw-tooltip.js +1 -1
  119. package/dist/collection/components/spw-topbar/spw-topbar.js +1 -1
  120. package/dist/collection/components/spw-wizard/spw-wizard-item/spw-wizard-item.js +1 -1
  121. package/dist/collection/components/spw-wizard/spw-wizard.js +1 -1
  122. package/dist/collection/stories/components/spw-breadcrumb/spw-breadcrumb.stories.js +3 -2
  123. package/dist/collection/stories/components/spw-breadcrumb/spw-breadcrumb.stories.js.map +1 -1
  124. package/dist/collection/stories/components/spw-pagination/spw-pagination.stories.js +11 -31
  125. package/dist/collection/stories/components/spw-pagination/spw-pagination.stories.js.map +1 -1
  126. package/dist/collection/stories/components/spw-search-field/spw-search-field.stories.js +106 -11
  127. package/dist/collection/stories/components/spw-search-field/spw-search-field.stories.js.map +1 -1
  128. package/dist/collection/stories/organisms/spw-card/spw-card.stories.js +5 -2
  129. package/dist/collection/stories/organisms/spw-card/spw-card.stories.js.map +1 -1
  130. package/dist/collection/stories/organisms/spw-footer/spw-footer.stories.js +1 -1
  131. package/dist/collection/stories/organisms/spw-footer/spw-footer.stories.js.map +1 -1
  132. package/dist/collection/stories/organisms/spw-header/spw-header.stories.js +1 -1
  133. package/dist/collection/stories/organisms/spw-header/spw-header.stories.js.map +1 -1
  134. package/dist/collection/stories/organisms/spw-list/spw-list.stories.js +1 -1
  135. package/dist/collection/stories/organisms/spw-list/spw-list.stories.js.map +1 -1
  136. package/dist/collection/stories/organisms/spw-tile/spw-tile.stories.js +1 -1
  137. package/dist/collection/stories/organisms/spw-tile/spw-tile.stories.js.map +1 -1
  138. package/dist/collection/utils/utils.js +48 -48
  139. package/dist/collection/utils/utils.js.map +1 -1
  140. package/dist/components/p-BBi01mKM.js.map +1 -1
  141. package/dist/components/{p-du-Bai6S.js → p-BFGmcTVw.js} +33 -22
  142. package/dist/components/p-BFGmcTVw.js.map +1 -0
  143. package/dist/components/{p-_sdYD0eS.js → p-BZy3vC1Y.js} +3 -3
  144. package/dist/components/{p-_sdYD0eS.js.map → p-BZy3vC1Y.js.map} +1 -1
  145. package/dist/components/{p-Bvpi6byK.js → p-DHePkzaR.js} +3 -3
  146. package/dist/components/{p-Bvpi6byK.js.map → p-DHePkzaR.js.map} +1 -1
  147. package/dist/components/{p-AjhBdYbk.js → p-DjyPtAVX.js} +3 -3
  148. package/dist/components/p-DjyPtAVX.js.map +1 -0
  149. package/dist/components/{p-J5AA2xQI.js → p-DuDAHfBT.js} +3 -3
  150. package/dist/components/{p-J5AA2xQI.js.map → p-DuDAHfBT.js.map} +1 -1
  151. package/dist/components/{p-CNNUoO2J.js → p-qROlK2WR.js} +3 -3
  152. package/dist/components/p-qROlK2WR.js.map +1 -0
  153. package/dist/components/spw-breadcrumb-item.js +1 -1
  154. package/dist/components/spw-button.js +1 -1
  155. package/dist/components/spw-cookies.js +1 -1
  156. package/dist/components/spw-custom-select.js +43 -7
  157. package/dist/components/spw-custom-select.js.map +1 -1
  158. package/dist/components/spw-date-picker.js +48 -28
  159. package/dist/components/spw-date-picker.js.map +1 -1
  160. package/dist/components/spw-file-upload.js +1 -1
  161. package/dist/components/spw-header-lang.js +1 -1
  162. package/dist/components/spw-header-navigation-item.js +1 -1
  163. package/dist/components/spw-header-navigation-item.js.map +1 -1
  164. package/dist/components/spw-header-navigation.js +11 -2
  165. package/dist/components/spw-header-navigation.js.map +1 -1
  166. package/dist/components/spw-header.js +1 -1
  167. package/dist/components/spw-iodda.js +2 -2
  168. package/dist/components/spw-link.js +1 -1
  169. package/dist/components/spw-message.js +1 -1
  170. package/dist/components/spw-pagination.js +1 -1
  171. package/dist/components/spw-search-field.js +85 -13
  172. package/dist/components/spw-search-field.js.map +1 -1
  173. package/dist/components/spw-select.js +3 -1
  174. package/dist/components/spw-select.js.map +1 -1
  175. package/dist/components/spw-separator.js +1 -1
  176. package/dist/components/spw-sidebar-navigation-dropdown.js +1 -1
  177. package/dist/components/spw-sidebar-navigation-item.js +4 -4
  178. package/dist/components/spw-sidebar-navigation-separator.js +2 -2
  179. package/dist/components/spw-sidebar.js +1 -1
  180. package/dist/components/spw-skeleton.js +1 -1
  181. package/dist/components/spw-socials.js +1 -1
  182. package/dist/components/spw-table-body.js +1 -1
  183. package/dist/components/spw-table-cell.js +26 -2
  184. package/dist/components/spw-table-cell.js.map +1 -1
  185. package/dist/components/spw-table-footer.js +2 -2
  186. package/dist/components/spw-table-footer.js.map +1 -1
  187. package/dist/components/spw-table-head.js +1 -1
  188. package/dist/components/spw-table-header.js +38 -5
  189. package/dist/components/spw-table-header.js.map +1 -1
  190. package/dist/components/spw-table-row.js +39 -3
  191. package/dist/components/spw-table-row.js.map +1 -1
  192. package/dist/components/spw-table.js +28 -4
  193. package/dist/components/spw-table.js.map +1 -1
  194. package/dist/components/spw-tabs-navigation-item.js +2 -2
  195. package/dist/components/spw-tabs-navigation.js +1 -1
  196. package/dist/components/spw-tabs.js +1 -1
  197. package/dist/components/spw-tag.js +1 -1
  198. package/dist/components/spw-text-field.js +1 -1
  199. package/dist/components/spw-textarea.js +1 -1
  200. package/dist/components/spw-theme-provider.js +1 -1
  201. package/dist/components/spw-tile-description.js +1 -1
  202. package/dist/components/spw-tile-title.js +1 -1
  203. package/dist/components/spw-tile.js +1 -1
  204. package/dist/components/spw-tooltip.js +1 -1
  205. package/dist/components/spw-topbar.js +1 -1
  206. package/dist/components/spw-wizard-item.js +1 -1
  207. package/dist/components/spw-wizard.js +1 -1
  208. package/dist/components_json.json +481 -15
  209. package/dist/components_vscode.json +3121 -0
  210. package/dist/esm/loader.js +1 -1
  211. package/dist/esm/spw-button.spw-loading.entry.js.map +1 -1
  212. package/dist/esm/spw-button_2.entry.js +1 -1
  213. package/dist/esm/spw-button_2.entry.js.map +1 -1
  214. package/dist/esm/spw-custom-select.entry.js +43 -7
  215. package/dist/esm/spw-custom-select.entry.js.map +1 -1
  216. package/dist/esm/spw-date-picker.entry.js +48 -28
  217. package/dist/esm/spw-date-picker.entry.js.map +1 -1
  218. package/dist/esm/spw-field-label.spw-group.spw-icon.spw-link.spw-separator.spw-theme-provider.entry.js.map +1 -1
  219. package/dist/esm/spw-field-label_6.entry.js +3 -3
  220. package/dist/esm/spw-field-label_6.entry.js.map +1 -1
  221. package/dist/esm/spw-header-navigation-item.entry.js +1 -1
  222. package/dist/esm/spw-header-navigation-item.entry.js.map +1 -1
  223. package/dist/esm/spw-header-navigation.entry.js +10 -2
  224. package/dist/esm/spw-header-navigation.entry.js.map +1 -1
  225. package/dist/esm/spw-pagination.entry.js +26 -16
  226. package/dist/esm/spw-pagination.entry.js.map +1 -1
  227. package/dist/esm/spw-search-field.entry.js +75 -11
  228. package/dist/esm/spw-search-field.entry.js.map +1 -1
  229. package/dist/esm/spw-select.entry.js +3 -1
  230. package/dist/esm/spw-select.entry.js.map +1 -1
  231. package/dist/esm/spw-sidebar-navigation-dropdown.entry.js +1 -1
  232. package/dist/esm/spw-sidebar-navigation-item.entry.js +3 -3
  233. package/dist/esm/spw-sidebar-navigation-separator.entry.js +1 -1
  234. package/dist/esm/spw-sidebar.entry.js +1 -1
  235. package/dist/esm/spw-skeleton.entry.js +1 -1
  236. package/dist/esm/spw-socials.entry.js +1 -1
  237. package/dist/esm/spw-stencil-library.js +1 -1
  238. package/dist/esm/spw-table-body.entry.js +1 -1
  239. package/dist/esm/spw-table-cell.entry.js +23 -2
  240. package/dist/esm/spw-table-cell.entry.js.map +1 -1
  241. package/dist/esm/spw-table-footer.entry.js +2 -2
  242. package/dist/esm/spw-table-footer.entry.js.map +1 -1
  243. package/dist/esm/spw-table-head.entry.js +1 -1
  244. package/dist/esm/spw-table-header.entry.js +33 -3
  245. package/dist/esm/spw-table-header.entry.js.map +1 -1
  246. package/dist/esm/spw-table-row.entry.js +35 -3
  247. package/dist/esm/spw-table-row.entry.js.map +1 -1
  248. package/dist/esm/spw-table.entry.js +26 -3
  249. package/dist/esm/spw-table.entry.js.map +1 -1
  250. package/dist/esm/spw-tabs-navigation-item.entry.js +1 -1
  251. package/dist/esm/spw-tabs-navigation.entry.js +1 -1
  252. package/dist/esm/spw-tabs.entry.js +1 -1
  253. package/dist/esm/spw-tag.entry.js +1 -1
  254. package/dist/esm/spw-text-field.entry.js +1 -1
  255. package/dist/esm/spw-textarea.entry.js +1 -1
  256. package/dist/esm/spw-tile-description.entry.js +1 -1
  257. package/dist/esm/spw-tile-title.entry.js +1 -1
  258. package/dist/esm/spw-tile.entry.js +1 -1
  259. package/dist/esm/spw-tooltip.entry.js +1 -1
  260. package/dist/esm/spw-topbar.entry.js +1 -1
  261. package/dist/esm/spw-wizard-item.entry.js +1 -1
  262. package/dist/esm/spw-wizard.entry.js +1 -1
  263. package/dist/esm/utils-BBi01mKM.js.map +1 -1
  264. package/dist/spw-stencil-library/p-066fdd57.entry.js +2 -0
  265. package/dist/spw-stencil-library/p-066fdd57.entry.js.map +1 -0
  266. package/dist/spw-stencil-library/{p-f7760a47.entry.js → p-06ac337f.entry.js} +2 -2
  267. package/dist/spw-stencil-library/p-06ac337f.entry.js.map +1 -0
  268. package/dist/spw-stencil-library/{p-488c2d88.entry.js → p-0d1330e7.entry.js} +2 -2
  269. package/dist/spw-stencil-library/p-0f69442e.entry.js +2 -0
  270. package/dist/spw-stencil-library/p-0f69442e.entry.js.map +1 -0
  271. package/dist/spw-stencil-library/{p-31793077.entry.js → p-13ecc56f.entry.js} +2 -2
  272. package/dist/spw-stencil-library/p-13ecc56f.entry.js.map +1 -0
  273. package/dist/spw-stencil-library/p-14722019.entry.js +2 -0
  274. package/dist/spw-stencil-library/p-14722019.entry.js.map +1 -0
  275. package/dist/spw-stencil-library/{p-b1de48f3.entry.js → p-152525de.entry.js} +2 -2
  276. package/dist/spw-stencil-library/p-152525de.entry.js.map +1 -0
  277. package/dist/spw-stencil-library/p-1713c17e.entry.js +2 -0
  278. package/dist/spw-stencil-library/p-1713c17e.entry.js.map +1 -0
  279. package/dist/spw-stencil-library/{p-2c79bd06.entry.js → p-1c2b8f70.entry.js} +2 -2
  280. package/dist/spw-stencil-library/{p-0baeea00.entry.js → p-229981f8.entry.js} +2 -2
  281. package/dist/spw-stencil-library/{p-9e12973d.entry.js → p-25f95c06.entry.js} +2 -2
  282. package/dist/spw-stencil-library/p-25f95c06.entry.js.map +1 -0
  283. package/dist/spw-stencil-library/{p-fc6af4d8.entry.js → p-26eb5cff.entry.js} +2 -2
  284. package/dist/spw-stencil-library/{p-ce72bca4.entry.js → p-2dc80ae2.entry.js} +2 -2
  285. package/dist/spw-stencil-library/p-43104fe6.entry.js +2 -0
  286. package/dist/spw-stencil-library/p-43104fe6.entry.js.map +1 -0
  287. package/dist/spw-stencil-library/{p-2d974226.entry.js → p-45caa6b4.entry.js} +2 -2
  288. package/dist/spw-stencil-library/{p-f70ed5c3.entry.js → p-4e025664.entry.js} +2 -2
  289. package/dist/spw-stencil-library/{p-9d984204.entry.js → p-4f0727e5.entry.js} +2 -2
  290. package/dist/spw-stencil-library/{p-8cfb4646.entry.js → p-50a66fe6.entry.js} +2 -2
  291. package/dist/spw-stencil-library/p-5e43e2ed.entry.js +2 -0
  292. package/dist/spw-stencil-library/p-5e43e2ed.entry.js.map +1 -0
  293. package/dist/spw-stencil-library/{p-a31a30f3.entry.js → p-6ec608ca.entry.js} +2 -2
  294. package/dist/spw-stencil-library/{p-c3985590.entry.js → p-8115c88f.entry.js} +2 -2
  295. package/dist/spw-stencil-library/{p-a25ad9f2.entry.js → p-852e0315.entry.js} +2 -2
  296. package/dist/spw-stencil-library/p-92583499.entry.js +2 -0
  297. package/dist/spw-stencil-library/p-92583499.entry.js.map +1 -0
  298. package/dist/spw-stencil-library/p-9e8a779e.entry.js +2 -0
  299. package/dist/spw-stencil-library/p-9e8a779e.entry.js.map +1 -0
  300. package/dist/spw-stencil-library/p-BBi01mKM.js.map +1 -1
  301. package/dist/spw-stencil-library/{p-0e1ec1e6.entry.js → p-a8c3ce29.entry.js} +2 -2
  302. package/dist/spw-stencil-library/{p-e0c31c21.entry.js → p-ab5202fa.entry.js} +2 -2
  303. package/dist/spw-stencil-library/{p-f28bf2be.entry.js → p-c9a3b38a.entry.js} +2 -2
  304. package/dist/spw-stencil-library/{p-2abc48ed.entry.js → p-d0b15ea8.entry.js} +2 -2
  305. package/dist/spw-stencil-library/{p-451a9785.entry.js → p-d368cf67.entry.js} +2 -2
  306. package/dist/spw-stencil-library/{p-48417d99.entry.js → p-dde9348e.entry.js} +2 -2
  307. package/dist/spw-stencil-library/p-deb92d5e.entry.js +2 -0
  308. package/dist/spw-stencil-library/p-deb92d5e.entry.js.map +1 -0
  309. package/dist/spw-stencil-library/{p-512a2787.entry.js → p-df177420.entry.js} +2 -2
  310. package/dist/spw-stencil-library/{p-cbf8aea1.entry.js → p-e159f34c.entry.js} +2 -2
  311. package/dist/spw-stencil-library/{p-e3485695.entry.js → p-e4c9b397.entry.js} +2 -2
  312. package/dist/spw-stencil-library/p-e60e3382.entry.js +2 -0
  313. package/dist/spw-stencil-library/p-e60e3382.entry.js.map +1 -0
  314. package/dist/spw-stencil-library/spw-button.spw-loading.entry.esm.js.map +1 -1
  315. package/dist/spw-stencil-library/spw-custom-select.entry.esm.js.map +1 -1
  316. package/dist/spw-stencil-library/spw-date-picker.entry.esm.js.map +1 -1
  317. package/dist/spw-stencil-library/spw-field-label.spw-group.spw-icon.spw-link.spw-separator.spw-theme-provider.entry.esm.js.map +1 -1
  318. package/dist/spw-stencil-library/spw-header-navigation-item.entry.esm.js.map +1 -1
  319. package/dist/spw-stencil-library/spw-header-navigation.entry.esm.js.map +1 -1
  320. package/dist/spw-stencil-library/spw-pagination.entry.esm.js.map +1 -1
  321. package/dist/spw-stencil-library/spw-search-field.entry.esm.js.map +1 -1
  322. package/dist/spw-stencil-library/spw-select.entry.esm.js.map +1 -1
  323. package/dist/spw-stencil-library/spw-stencil-library.css +1 -1
  324. package/dist/spw-stencil-library/spw-stencil-library.esm.js +1 -1
  325. package/dist/spw-stencil-library/spw-table-cell.entry.esm.js.map +1 -1
  326. package/dist/spw-stencil-library/spw-table-footer.entry.esm.js.map +1 -1
  327. package/dist/spw-stencil-library/spw-table-header.entry.esm.js.map +1 -1
  328. package/dist/spw-stencil-library/spw-table-row.entry.esm.js.map +1 -1
  329. package/dist/spw-stencil-library/spw-table.entry.esm.js.map +1 -1
  330. package/dist/stats.json +1139 -314
  331. package/dist/types/components/spw-custom-select/spw-custom-select.d.ts +3 -0
  332. package/dist/types/components/spw-date-picker/spw-date-picker.d.ts +1 -0
  333. package/dist/types/components/spw-header/spw-header-navigation/spw-header-navigation.d.ts +3 -0
  334. package/dist/types/components/spw-pagination/spw-pagination.d.ts +4 -1
  335. package/dist/types/components/spw-search-field/spw-search-field.d.ts +25 -1
  336. package/dist/types/components/spw-select/spw-select.d.ts +1 -0
  337. package/dist/types/components/spw-table/spw-table-cell/spw-table-cell.d.ts +6 -0
  338. package/dist/types/components/spw-table/spw-table-header/spw-table-header.d.ts +6 -0
  339. package/dist/types/components/spw-table/spw-table-row/spw-table-row.d.ts +8 -0
  340. package/dist/types/components/spw-table/spw-table.d.ts +2 -0
  341. package/dist/types/components.d.ts +139 -0
  342. package/dist/types/stories/components/spw-pagination/spw-pagination.stories.d.ts +0 -17
  343. package/dist/types/stories/components/spw-search-field/spw-search-field.stories.d.ts +5 -0
  344. package/dist/types/utils/utils.d.ts +2 -1
  345. package/hydrate/index.js +372 -109
  346. package/hydrate/index.mjs +372 -109
  347. package/package.json +1 -1
  348. package/dist/components/p-AjhBdYbk.js.map +0 -1
  349. package/dist/components/p-CNNUoO2J.js.map +0 -1
  350. package/dist/components/p-du-Bai6S.js.map +0 -1
  351. package/dist/spw-stencil-library/p-22f972ca.entry.js +0 -2
  352. package/dist/spw-stencil-library/p-22f972ca.entry.js.map +0 -1
  353. package/dist/spw-stencil-library/p-2c28684f.entry.js +0 -2
  354. package/dist/spw-stencil-library/p-2c28684f.entry.js.map +0 -1
  355. package/dist/spw-stencil-library/p-300b4bdb.entry.js +0 -2
  356. package/dist/spw-stencil-library/p-300b4bdb.entry.js.map +0 -1
  357. package/dist/spw-stencil-library/p-31793077.entry.js.map +0 -1
  358. package/dist/spw-stencil-library/p-4c21a696.entry.js +0 -2
  359. package/dist/spw-stencil-library/p-4c21a696.entry.js.map +0 -1
  360. package/dist/spw-stencil-library/p-572188ac.entry.js +0 -2
  361. package/dist/spw-stencil-library/p-572188ac.entry.js.map +0 -1
  362. package/dist/spw-stencil-library/p-823b60ae.entry.js +0 -2
  363. package/dist/spw-stencil-library/p-823b60ae.entry.js.map +0 -1
  364. package/dist/spw-stencil-library/p-9e12973d.entry.js.map +0 -1
  365. package/dist/spw-stencil-library/p-b1de48f3.entry.js.map +0 -1
  366. package/dist/spw-stencil-library/p-d115a739.entry.js +0 -2
  367. package/dist/spw-stencil-library/p-d115a739.entry.js.map +0 -1
  368. package/dist/spw-stencil-library/p-d2258e0a.entry.js +0 -2
  369. package/dist/spw-stencil-library/p-d2258e0a.entry.js.map +0 -1
  370. package/dist/spw-stencil-library/p-ecec4588.entry.js +0 -2
  371. package/dist/spw-stencil-library/p-ecec4588.entry.js.map +0 -1
  372. package/dist/spw-stencil-library/p-f5caed11.entry.js +0 -2
  373. package/dist/spw-stencil-library/p-f5caed11.entry.js.map +0 -1
  374. package/dist/spw-stencil-library/p-f7760a47.entry.js.map +0 -1
  375. /package/dist/spw-stencil-library/{p-488c2d88.entry.js.map → p-0d1330e7.entry.js.map} +0 -0
  376. /package/dist/spw-stencil-library/{p-2c79bd06.entry.js.map → p-1c2b8f70.entry.js.map} +0 -0
  377. /package/dist/spw-stencil-library/{p-0baeea00.entry.js.map → p-229981f8.entry.js.map} +0 -0
  378. /package/dist/spw-stencil-library/{p-fc6af4d8.entry.js.map → p-26eb5cff.entry.js.map} +0 -0
  379. /package/dist/spw-stencil-library/{p-ce72bca4.entry.js.map → p-2dc80ae2.entry.js.map} +0 -0
  380. /package/dist/spw-stencil-library/{p-2d974226.entry.js.map → p-45caa6b4.entry.js.map} +0 -0
  381. /package/dist/spw-stencil-library/{p-f70ed5c3.entry.js.map → p-4e025664.entry.js.map} +0 -0
  382. /package/dist/spw-stencil-library/{p-9d984204.entry.js.map → p-4f0727e5.entry.js.map} +0 -0
  383. /package/dist/spw-stencil-library/{p-8cfb4646.entry.js.map → p-50a66fe6.entry.js.map} +0 -0
  384. /package/dist/spw-stencil-library/{p-a31a30f3.entry.js.map → p-6ec608ca.entry.js.map} +0 -0
  385. /package/dist/spw-stencil-library/{p-c3985590.entry.js.map → p-8115c88f.entry.js.map} +0 -0
  386. /package/dist/spw-stencil-library/{p-a25ad9f2.entry.js.map → p-852e0315.entry.js.map} +0 -0
  387. /package/dist/spw-stencil-library/{p-0e1ec1e6.entry.js.map → p-a8c3ce29.entry.js.map} +0 -0
  388. /package/dist/spw-stencil-library/{p-e0c31c21.entry.js.map → p-ab5202fa.entry.js.map} +0 -0
  389. /package/dist/spw-stencil-library/{p-f28bf2be.entry.js.map → p-c9a3b38a.entry.js.map} +0 -0
  390. /package/dist/spw-stencil-library/{p-2abc48ed.entry.js.map → p-d0b15ea8.entry.js.map} +0 -0
  391. /package/dist/spw-stencil-library/{p-451a9785.entry.js.map → p-d368cf67.entry.js.map} +0 -0
  392. /package/dist/spw-stencil-library/{p-48417d99.entry.js.map → p-dde9348e.entry.js.map} +0 -0
  393. /package/dist/spw-stencil-library/{p-512a2787.entry.js.map → p-df177420.entry.js.map} +0 -0
  394. /package/dist/spw-stencil-library/{p-cbf8aea1.entry.js.map → p-e159f34c.entry.js.map} +0 -0
  395. /package/dist/spw-stencil-library/{p-e3485695.entry.js.map → p-e4c9b397.entry.js.map} +0 -0
@@ -23,108 +23,110 @@ const enumOptions = (prop) => prop.type
23
23
  .map(t => t.trim())
24
24
  .map(t => (t === '""' ? 'default' : t))
25
25
  .map(t => t.replace(/^"(.*)"$/, '$1'));
26
- const generateProp = (prop) => {
26
+ const generateProp = (prop, componentTag, prefixPropName = false) => {
27
+ const category = componentTag ? `Props - ${componentTag}` : 'properties';
28
+ const propName = prefixPropName && componentTag ? `${componentTag}__${prop.name}` : prop.name;
29
+ const kebabCaseName = toKebabCase(prop.name);
30
+ const baseTableConfig = {
31
+ category: category,
32
+ defaultValue: { summary: prop.default },
33
+ };
27
34
  if (isText(prop)) {
28
35
  return {
29
- [prop.name]: {
36
+ [propName]: {
30
37
  control: 'text',
31
38
  description: description(prop),
32
39
  defaultValue: prop.default,
33
- table: {
34
- category: 'properties',
35
- defaultValue: { summary: prop.default },
36
- type: { summary: 'string' },
37
- },
40
+ name: kebabCaseName,
41
+ table: Object.assign(Object.assign({}, baseTableConfig), { type: { summary: 'string' } }),
38
42
  },
39
43
  };
40
44
  }
41
45
  if (isBoolean(prop)) {
42
46
  return {
43
- [prop.name]: {
47
+ [propName]: {
44
48
  control: 'boolean',
45
49
  description: description(prop),
46
50
  defaultValue: prop.default,
47
- table: {
48
- category: 'properties',
49
- defaultValue: { summary: prop.default },
50
- type: { summary: 'boolean' },
51
- },
51
+ name: kebabCaseName,
52
+ table: Object.assign(Object.assign({}, baseTableConfig), { type: { summary: 'boolean' } }),
52
53
  },
53
54
  };
54
55
  }
55
56
  if (isNumber(prop)) {
56
57
  return {
57
- [prop.name]: {
58
+ [propName]: {
58
59
  control: 'number',
59
60
  description: description(prop),
60
61
  defaultValue: prop.default,
61
- table: {
62
- category: 'properties',
63
- defaultValue: { summary: prop.default },
64
- type: { summary: 'number' },
65
- },
62
+ name: kebabCaseName,
63
+ table: Object.assign(Object.assign({}, baseTableConfig), { type: { summary: 'number' } }),
66
64
  },
67
65
  };
68
66
  }
69
67
  if (isEnum(prop)) {
70
68
  return {
71
- [prop.name]: {
69
+ [propName]: {
72
70
  control: 'select',
73
71
  defaultValue: prop.default,
74
72
  options: enumOptions(prop),
75
73
  description: description(prop),
76
- table: {
77
- category: 'properties',
78
- defaultValue: { summary: prop.default },
79
- type: { summary: 'enum' },
80
- },
74
+ name: kebabCaseName,
75
+ table: Object.assign(Object.assign({}, baseTableConfig), { type: { summary: 'enum' } }),
81
76
  },
82
77
  };
83
78
  }
84
79
  return {};
85
80
  };
86
- const generateProps = (props) => {
81
+ const generateProps = (props, componentTag, prefixPropName = false) => {
87
82
  let args = {};
88
- props.forEach(prop => (args = Object.assign(Object.assign({}, args), generateProp(prop))));
83
+ props.forEach(prop => (args = Object.assign(Object.assign({}, args), generateProp(prop, componentTag, prefixPropName))));
89
84
  return args;
90
85
  };
91
- const generateEvent = (event) => {
86
+ const generateEvent = (event, componentTag, prefixEventName = false) => {
92
87
  function capitalizeFirstLetter(string) {
93
88
  return string.charAt(0).toUpperCase() + string.slice(1);
94
89
  }
90
+ const category = componentTag ? `Events - ${componentTag}` : 'events';
91
+ const originalEventName = `on${capitalizeFirstLetter(event.event)}`;
92
+ const eventName = prefixEventName && componentTag ? `${componentTag}__${originalEventName}` : originalEventName;
95
93
  return {
96
- [`on${capitalizeFirstLetter(event.event)}`]: {
94
+ [eventName]: {
97
95
  action: event.event,
98
96
  description: description(event),
97
+ name: originalEventName,
99
98
  table: {
100
99
  defaultValue: { summary: event.event },
101
- category: 'events',
100
+ category: category,
102
101
  type: { summary: event.detail },
103
102
  },
104
103
  },
105
104
  };
106
105
  };
107
- const generateEvents = (events) => {
106
+ const generateEvents = (events, componentTag, prefixEventName = false) => {
108
107
  let args = {};
109
- events.forEach(event => (args = Object.assign(Object.assign({}, args), generateEvent(event))));
108
+ events.forEach(event => (args = Object.assign(Object.assign({}, args), generateEvent(event, componentTag, prefixEventName))));
110
109
  return args;
111
110
  };
112
- const generateMethod = (method) => {
111
+ const generateMethod = (method, componentTag, prefixMethodName = false) => {
112
+ const category = componentTag ? `Methods - ${componentTag}` : 'methods';
113
+ const methodName = prefixMethodName && componentTag ? `${componentTag}__${method.name}` : method.name;
113
114
  return {
114
- [method.name]: {
115
+ [methodName]: {
115
116
  action: method.name,
116
117
  description: description(method),
118
+ name: method.name,
117
119
  table: {
118
- category: 'methods',
120
+ category: category,
119
121
  type: { summary: method.signature },
120
122
  defaultValue: { summary: method.returns.type },
121
123
  },
122
124
  },
123
125
  };
124
126
  };
125
- const generateMethods = (methods) => {
127
+ const generateMethods = (methods, componentTag, prefixMethodName = false) => {
126
128
  let args = {};
127
- methods.forEach(method => (args = Object.assign(Object.assign({}, args), generateMethod(method))));
129
+ methods.forEach(method => (args = Object.assign(Object.assign({}, args), generateMethod(method, componentTag, prefixMethodName))));
128
130
  return args;
129
131
  };
130
132
  const extractComponentInfoByTag = (componentsData, tag) => {
@@ -241,39 +243,37 @@ export const generateComponentTable = (componentsData, tag) => {
241
243
  const componentInfo = extractComponentInfoByTag(componentsData, tag);
242
244
  return generateHTMLTable(componentInfo);
243
245
  };
244
- export const withComponentControls = (componentsData, { tag, customTokens = [] }) => {
246
+ export const withComponentControls = (componentsData, { tag, customTokens = [], prefixNames = false }) => {
245
247
  const component = componentsData.components.find(c => c.tag === tag);
246
248
  const props = (component === null || component === void 0 ? void 0 : component.props) || [];
247
249
  const events = (component === null || component === void 0 ? void 0 : component.events) || [];
248
250
  const methods = (component === null || component === void 0 ? void 0 : component.methods) || [];
249
251
  const tokenControls = customTokens.reduce((acc, token) => {
250
- acc[token.name] = {
252
+ const tokenName = prefixNames ? `${tag}__${token.name}` : token.name;
253
+ acc[tokenName] = {
251
254
  control: true,
252
255
  description: token.description,
253
256
  table: {
254
- category: 'Tokens',
257
+ category: `Tokens - ${tag}`,
255
258
  type: { summary: 'CSS Variable' },
256
259
  defaultValue: { summary: token.defaultValue },
257
260
  },
258
261
  };
259
262
  return acc;
260
263
  }, {});
261
- // Séparation claire des catégories
262
- const propControls = generateProps(props);
263
- const eventControls = generateEvents(events);
264
- const methodControls = generateMethods(methods);
265
- // ✅ Regroupement complet pour Storybook
264
+ const propControls = generateProps(props, tag, prefixNames);
265
+ const eventControls = generateEvents(events, tag, prefixNames);
266
+ const methodControls = generateMethods(methods, tag, prefixNames);
266
267
  const allControls = Object.assign(Object.assign(Object.assign(Object.assign({}, propControls), eventControls), methodControls), tokenControls);
267
- // ✅ Indique explicitement quelles sont les props réelles du composant
268
268
  Object.defineProperty(allControls, '__realProps', {
269
269
  value: Object.keys(propControls).concat(Object.keys(tokenControls)),
270
- enumerable: false, // ne pollue pas la vue Storybook
270
+ enumerable: false,
271
271
  });
272
272
  return allControls;
273
273
  };
274
274
  export function extractArgTypes(componentsData, subComponentTags) {
275
275
  return subComponentTags.reduce((acc, tag) => {
276
- const subComponentArgTypes = withComponentControls(componentsData, { tag });
276
+ const subComponentArgTypes = withComponentControls(componentsData, { tag, prefixNames: true });
277
277
  return Object.assign(Object.assign({}, acc), subComponentArgTypes);
278
278
  }, {});
279
279
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"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","sourcesContent":["export function format(first: string, middle: string, last: string): string {\n return (first || '') + (middle ? ` ${middle}` : '') + (last ? ` ${last}` : '');\n}\n\nexport function toKebabCase(str: string) {\n return str.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nexport function formatDate(date: string): string {\n const parts = date.split('-');\n return `${parts[2]}/${parts[1]}/${parts[0]}`;\n}\n\nexport function stripHtmlContent(content: string): string {\n const div = document.createElement('div');\n div.innerHTML = content;\n return div.textContent || div.innerText || '';\n}\n\ninterface ComponentProp {\n name: string;\n type: string;\n docs: string;\n default: string;\n}\n\ninterface ComponentEvent {\n event: string;\n docs: string;\n detail: string;\n}\n\ninterface ComponentMethod {\n name: string;\n signature: string;\n docs: string;\n returns: {\n type: string;\n docs: string;\n };\n parameters: Array<{\n name: string;\n type: string;\n docs: string;\n }>;\n}\n\ninterface ComponentInfo {\n name: string;\n props: ComponentProp[];\n events: ComponentEvent[];\n methods: ComponentMethod[];\n}\n\nconst description = (prop: ComponentProp | ComponentEvent | ComponentMethod) => (prop.docs || '').trim();\n\nconst isText = (prop: ComponentProp) => prop.type === 'string';\nconst isBoolean = (prop: ComponentProp) => prop.type === 'boolean';\nconst isEnum = (prop: ComponentProp) => prop.type.includes('|');\nconst isNumber = (prop: ComponentProp) => prop.type === 'number';\n\nconst enumOptions = (prop: ComponentProp) =>\n prop.type\n .split('|')\n .map(t => t.trim())\n .map(t => (t === '\"\"' ? 'default' : t))\n .map(t => t.replace(/^\"(.*)\"$/, '$1'));\n\nconst generateProp = (prop: ComponentProp) => {\n if (isText(prop)) {\n return {\n [prop.name]: {\n control: 'text',\n description: description(prop),\n defaultValue: prop.default,\n table: {\n category: 'properties',\n defaultValue: { summary: prop.default },\n type: { summary: 'string' },\n },\n },\n };\n }\n\n if (isBoolean(prop)) {\n return {\n [prop.name]: {\n control: 'boolean',\n description: description(prop),\n defaultValue: prop.default,\n table: {\n category: 'properties',\n defaultValue: { summary: prop.default },\n type: { summary: 'boolean' },\n },\n },\n };\n }\n\n if (isNumber(prop)) {\n return {\n [prop.name]: {\n control: 'number',\n description: description(prop),\n defaultValue: prop.default,\n table: {\n category: 'properties',\n defaultValue: { summary: prop.default },\n type: { summary: 'number' },\n },\n },\n };\n }\n\n if (isEnum(prop)) {\n return {\n [prop.name]: {\n control: 'select',\n defaultValue: prop.default,\n options: enumOptions(prop),\n description: description(prop),\n table: {\n category: 'properties',\n defaultValue: { summary: prop.default },\n type: { summary: 'enum' },\n },\n },\n };\n }\n\n return {};\n};\n\nconst generateProps = (props: ComponentProp[]) => {\n let args = {};\n props.forEach(prop => (args = { ...args, ...generateProp(prop) }));\n return args;\n};\n\nconst generateEvent = (event: ComponentEvent) => {\n function capitalizeFirstLetter(string: string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n }\n\n return {\n [`on${capitalizeFirstLetter(event.event)}`]: {\n action: event.event,\n description: description(event),\n table: {\n defaultValue: { summary: event.event },\n category: 'events',\n type: { summary: event.detail },\n },\n },\n };\n};\n\nconst generateEvents = (events: ComponentEvent[]) => {\n let args = {};\n events.forEach(event => (args = { ...args, ...generateEvent(event) }));\n return args;\n};\n\nconst generateMethod = (method: ComponentMethod) => {\n return {\n [method.name]: {\n action: method.name,\n description: description(method),\n table: {\n category: 'methods',\n type: { summary: method.signature },\n defaultValue: { summary: method.returns.type },\n },\n },\n };\n};\n\nconst generateMethods = (methods: ComponentMethod[]) => {\n let args = {};\n methods.forEach(method => (args = { ...args, ...generateMethod(method) }));\n return args;\n};\n\nconst extractComponentInfoByTag = (componentsData: any, tag: string): ComponentInfo | null => {\n const component = componentsData.components.find(c => c.tag === tag);\n\n if (!component) {\n console.error(`Component with tag ${tag} not found`);\n return null;\n }\n\n const { props, events, methods } = component;\n\n const propInfo = props.map(prop => ({\n name: prop.name,\n type: prop.type,\n docs: prop.docs,\n default: prop.default || '',\n }));\n\n const eventInfo = events.map(event => ({\n event: event.event,\n docs: event.docs,\n detail: event.detail,\n }));\n\n const methodInfo = methods.map(method => ({\n name: method.name,\n signature: method.signature,\n docs: method.docs,\n returns: method.returns,\n parameters: method.parameters,\n }));\n\n return {\n name: tag,\n props: propInfo,\n events: eventInfo,\n methods: methodInfo,\n };\n};\n\nconst generateHTMLTable = (componentInfo: ComponentInfo): string => {\n if (!componentInfo) {\n return `<p>Component not found</p>`;\n }\n\n const { props, events, methods } = componentInfo;\n\n const propsRows = props\n .map(\n prop => `\n <tr>\n <td>${prop.name}</td>\n <td>${prop.type}</td>\n <td>${prop.docs}</td>\n <td>${prop.default}</td>\n </tr>\n `,\n )\n .join('');\n\n const eventsRows = events\n .map(\n event => `\n <tr>\n <td>${event.event}</td>\n <td>${event.detail}</td>\n <td>${event.docs}</td>\n </tr>\n `,\n )\n .join('');\n\n const methodsRows = methods\n .map(\n method => `\n <tr>\n <td>${method.name}</td>\n <td>${method.signature}</td>\n <td>${method.returns.type}</td>\n <td>${method.docs}</td>\n </tr>\n `,\n )\n .join('');\n\n return `\n <h3>Propriétés</h3>\n <table class=\"w-full\">\n <thead>\n <tr>\n <th>Propriété</th>\n <th>Type</th>\n <th>Description</th>\n <th>Valeur par défaut</th>\n </tr>\n </thead>\n <tbody>\n ${propsRows}\n </tbody>\n </table>\n <h3>Événements</h3>\n <table class=\"w-full\">\n <thead>\n <tr>\n <th>Événement</th>\n <th>Détail</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n ${eventsRows}\n </tbody>\n </table>\n <h3>Méthodes</h3>\n <table class=\"w-full\">\n <thead>\n <tr>\n <th>Méthode</th>\n <th>Signature</th>\n <th>Retour</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n ${methodsRows}\n </tbody>\n </table>\n `;\n};\n\nexport const generateComponentTable = (componentsData: any, tag: string): string => {\n const componentInfo = extractComponentInfoByTag(componentsData, tag);\n return generateHTMLTable(componentInfo);\n};\n\nexport const withComponentControls = (\n componentsData: any,\n { tag, customTokens = [] }: { tag: string; customTokens?: { name: string; description: string; defaultValue: string }[] },\n): any => {\n const component = componentsData.components.find(c => c.tag === tag);\n const props = component?.props || [];\n const events = component?.events || [];\n const methods = component?.methods || [];\n\n const tokenControls = customTokens.reduce((acc, token) => {\n acc[token.name] = {\n control: true,\n description: token.description,\n table: {\n category: 'Tokens',\n type: { summary: 'CSS Variable' },\n defaultValue: { summary: token.defaultValue },\n },\n };\n return acc;\n }, {});\n\n // ✅ Séparation claire des catégories\n const propControls = generateProps(props as ComponentProp[]);\n const eventControls = generateEvents(events as ComponentEvent[]);\n const methodControls = generateMethods(methods as ComponentMethod[]);\n\n // ✅ Regroupement complet pour Storybook\n const allControls = {\n ...propControls,\n ...eventControls,\n ...methodControls,\n ...tokenControls,\n };\n\n // ✅ Indique explicitement quelles sont les props réelles du composant\n Object.defineProperty(allControls, '__realProps', {\n value: Object.keys(propControls).concat(Object.keys(tokenControls)),\n enumerable: false, // ne pollue pas la vue Storybook\n });\n\n return allControls;\n};\n\nexport function extractArgTypes(componentsData: any, subComponentTags: string[]) {\n return subComponentTags.reduce((acc, tag) => {\n const subComponentArgTypes = withComponentControls(componentsData, { tag });\n return { ...acc, ...subComponentArgTypes };\n }, {});\n}\n\nexport function formatFileSize(sizeInBytes) {\n const sizeInMB = sizeInBytes / (1024 * 1024);\n let formattedSize = sizeInMB.toFixed(2).replace('.', ',');\n\n if (sizeInMB > 0 && sizeInMB < 0.01) {\n formattedSize = '0,01';\n } else if (sizeInMB === 0) {\n formattedSize = '0,00';\n }\n\n return `${formattedSize} Mo`;\n}\n\nexport function hasSlotContent(el: HTMLElement): boolean {\n const slot = el.querySelector('slot');\n return slot && slot.assignedNodes().length > 0;\n}\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"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","sourcesContent":["export function format(first: string, middle: string, last: string): string {\n return (first || '') + (middle ? ` ${middle}` : '') + (last ? ` ${last}` : '');\n}\n\nexport function toKebabCase(str: string) {\n return str.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nexport function formatDate(date: string): string {\n const parts = date.split('-');\n return `${parts[2]}/${parts[1]}/${parts[0]}`;\n}\n\nexport function stripHtmlContent(content: string): string {\n const div = document.createElement('div');\n div.innerHTML = content;\n return div.textContent || div.innerText || '';\n}\n\ninterface ComponentProp {\n name: string;\n type: string;\n docs: string;\n default: string;\n}\n\ninterface ComponentEvent {\n event: string;\n docs: string;\n detail: string;\n}\n\ninterface ComponentMethod {\n name: string;\n signature: string;\n docs: string;\n returns: {\n type: string;\n docs: string;\n };\n parameters: Array<{\n name: string;\n type: string;\n docs: string;\n }>;\n}\n\ninterface ComponentInfo {\n name: string;\n props: ComponentProp[];\n events: ComponentEvent[];\n methods: ComponentMethod[];\n}\n\nconst description = (prop: ComponentProp | ComponentEvent | ComponentMethod) => (prop.docs || '').trim();\n\nconst isText = (prop: ComponentProp) => prop.type === 'string';\nconst isBoolean = (prop: ComponentProp) => prop.type === 'boolean';\nconst isEnum = (prop: ComponentProp) => prop.type.includes('|');\nconst isNumber = (prop: ComponentProp) => prop.type === 'number';\n\nconst enumOptions = (prop: ComponentProp) =>\n prop.type\n .split('|')\n .map(t => t.trim())\n .map(t => (t === '\"\"' ? 'default' : t))\n .map(t => t.replace(/^\"(.*)\"$/, '$1'));\n\nconst generateProp = (prop: ComponentProp, componentTag?: string, prefixPropName: boolean = false) => {\n const category = componentTag ? `Props - ${componentTag}` : 'properties';\n const propName = prefixPropName && componentTag ? `${componentTag}__${prop.name}` : prop.name;\n const kebabCaseName = toKebabCase(prop.name);\n\n const baseTableConfig = {\n category: category,\n defaultValue: { summary: prop.default },\n };\n\n if (isText(prop)) {\n return {\n [propName]: {\n control: 'text',\n description: description(prop),\n defaultValue: prop.default,\n name: kebabCaseName,\n table: {\n ...baseTableConfig,\n type: { summary: 'string' },\n },\n },\n };\n }\n\n if (isBoolean(prop)) {\n return {\n [propName]: {\n control: 'boolean',\n description: description(prop),\n defaultValue: prop.default,\n name: kebabCaseName,\n table: {\n ...baseTableConfig,\n type: { summary: 'boolean' },\n },\n },\n };\n }\n\n if (isNumber(prop)) {\n return {\n [propName]: {\n control: 'number',\n description: description(prop),\n defaultValue: prop.default,\n name: kebabCaseName,\n table: {\n ...baseTableConfig,\n type: { summary: 'number' },\n },\n },\n };\n }\n\n if (isEnum(prop)) {\n return {\n [propName]: {\n control: 'select',\n defaultValue: prop.default,\n options: enumOptions(prop),\n description: description(prop),\n name: kebabCaseName,\n table: {\n ...baseTableConfig,\n type: { summary: 'enum' },\n },\n },\n };\n }\n\n return {};\n};\n\nconst generateProps = (props: ComponentProp[], componentTag?: string, prefixPropName: boolean = false) => {\n let args = {};\n props.forEach(prop => (args = { ...args, ...generateProp(prop, componentTag, prefixPropName) }));\n return args;\n};\n\nconst generateEvent = (event: ComponentEvent, componentTag?: string, prefixEventName: boolean = false) => {\n function capitalizeFirstLetter(string: string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n }\n\n const category = componentTag ? `Events - ${componentTag}` : 'events';\n const originalEventName = `on${capitalizeFirstLetter(event.event)}`;\n const eventName = prefixEventName && componentTag ? `${componentTag}__${originalEventName}` : originalEventName;\n\n return {\n [eventName]: {\n action: event.event,\n description: description(event),\n name: originalEventName,\n table: {\n defaultValue: { summary: event.event },\n category: category,\n type: { summary: event.detail },\n },\n },\n };\n};\n\nconst generateEvents = (events: ComponentEvent[], componentTag?: string, prefixEventName: boolean = false) => {\n let args = {};\n events.forEach(event => (args = { ...args, ...generateEvent(event, componentTag, prefixEventName) }));\n return args;\n};\n\nconst generateMethod = (method: ComponentMethod, componentTag?: string, prefixMethodName: boolean = false) => {\n const category = componentTag ? `Methods - ${componentTag}` : 'methods';\n const methodName = prefixMethodName && componentTag ? `${componentTag}__${method.name}` : method.name;\n\n return {\n [methodName]: {\n action: method.name,\n description: description(method),\n name: method.name,\n table: {\n category: category,\n type: { summary: method.signature },\n defaultValue: { summary: method.returns.type },\n },\n },\n };\n};\n\nconst generateMethods = (methods: ComponentMethod[], componentTag?: string, prefixMethodName: boolean = false) => {\n let args = {};\n methods.forEach(method => (args = { ...args, ...generateMethod(method, componentTag, prefixMethodName) }));\n return args;\n};\n\nconst extractComponentInfoByTag = (componentsData: any, tag: string): ComponentInfo | null => {\n const component = componentsData.components.find(c => c.tag === tag);\n\n if (!component) {\n console.error(`Component with tag ${tag} not found`);\n return null;\n }\n\n const { props, events, methods } = component;\n\n const propInfo = props.map(prop => ({\n name: prop.name,\n type: prop.type,\n docs: prop.docs,\n default: prop.default || '',\n }));\n\n const eventInfo = events.map(event => ({\n event: event.event,\n docs: event.docs,\n detail: event.detail,\n }));\n\n const methodInfo = methods.map(method => ({\n name: method.name,\n signature: method.signature,\n docs: method.docs,\n returns: method.returns,\n parameters: method.parameters,\n }));\n\n return {\n name: tag,\n props: propInfo,\n events: eventInfo,\n methods: methodInfo,\n };\n};\n\nconst generateHTMLTable = (componentInfo: ComponentInfo): string => {\n if (!componentInfo) {\n return `<p>Component not found</p>`;\n }\n\n const { props, events, methods } = componentInfo;\n\n const propsRows = props\n .map(\n prop => `\n <tr>\n <td>${prop.name}</td>\n <td>${prop.type}</td>\n <td>${prop.docs}</td>\n <td>${prop.default}</td>\n </tr>\n `,\n )\n .join('');\n\n const eventsRows = events\n .map(\n event => `\n <tr>\n <td>${event.event}</td>\n <td>${event.detail}</td>\n <td>${event.docs}</td>\n </tr>\n `,\n )\n .join('');\n\n const methodsRows = methods\n .map(\n method => `\n <tr>\n <td>${method.name}</td>\n <td>${method.signature}</td>\n <td>${method.returns.type}</td>\n <td>${method.docs}</td>\n </tr>\n `,\n )\n .join('');\n\n return `\n <h3>Propriétés</h3>\n <table class=\"w-full\">\n <thead>\n <tr>\n <th>Propriété</th>\n <th>Type</th>\n <th>Description</th>\n <th>Valeur par défaut</th>\n </tr>\n </thead>\n <tbody>\n ${propsRows}\n </tbody>\n </table>\n <h3>Événements</h3>\n <table class=\"w-full\">\n <thead>\n <tr>\n <th>Événement</th>\n <th>Détail</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n ${eventsRows}\n </tbody>\n </table>\n <h3>Méthodes</h3>\n <table class=\"w-full\">\n <thead>\n <tr>\n <th>Méthode</th>\n <th>Signature</th>\n <th>Retour</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n ${methodsRows}\n </tbody>\n </table>\n `;\n};\n\nexport const generateComponentTable = (componentsData: any, tag: string): string => {\n const componentInfo = extractComponentInfoByTag(componentsData, tag);\n return generateHTMLTable(componentInfo);\n};\n\nexport const withComponentControls = (\n componentsData: any,\n { tag, customTokens = [], prefixNames = false }: { tag: string; customTokens?: { name: string; description: string; defaultValue: string }[]; prefixNames?: boolean },\n): any => {\n const component = componentsData.components.find(c => c.tag === tag);\n const props = component?.props || [];\n const events = component?.events || [];\n const methods = component?.methods || [];\n\n const tokenControls = customTokens.reduce((acc, token) => {\n const tokenName = prefixNames ? `${tag}__${token.name}` : token.name;\n acc[tokenName] = {\n control: true,\n description: token.description,\n table: {\n category: `Tokens - ${tag}`,\n type: { summary: 'CSS Variable' },\n defaultValue: { summary: token.defaultValue },\n },\n };\n return acc;\n }, {});\n\n const propControls = generateProps(props as ComponentProp[], tag, prefixNames);\n const eventControls = generateEvents(events as ComponentEvent[], tag, prefixNames);\n const methodControls = generateMethods(methods as ComponentMethod[], tag, prefixNames);\n\n const allControls = {\n ...propControls,\n ...eventControls,\n ...methodControls,\n ...tokenControls,\n };\n\n Object.defineProperty(allControls, '__realProps', {\n value: Object.keys(propControls).concat(Object.keys(tokenControls)),\n enumerable: false,\n });\n\n return allControls;\n};\n\nexport function extractArgTypes(componentsData: any, subComponentTags: string[]) {\n return subComponentTags.reduce((acc, tag) => {\n const subComponentArgTypes = withComponentControls(componentsData, { tag, prefixNames: true });\n return { ...acc, ...subComponentArgTypes };\n }, {});\n}\n\nexport function formatFileSize(sizeInBytes) {\n const sizeInMB = sizeInBytes / (1024 * 1024);\n let formattedSize = sizeInMB.toFixed(2).replace('.', ',');\n\n if (sizeInMB > 0 && sizeInMB < 0.01) {\n formattedSize = '0,01';\n } else if (sizeInMB === 0) {\n formattedSize = '0,00';\n }\n\n return `${formattedSize} Mo`;\n}\n\nexport function hasSlotContent(el: HTMLElement): boolean {\n const slot = el.querySelector('slot');\n return slot && slot.assignedNodes().length > 0;\n}\n"]}
@@ -1 +1 @@
1
- {"file":"p-BBi01mKM.js","mappings":"AAQM,SAAU,UAAU,CAAC,IAAY,EAAA;IACrC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAC7B,IAAA,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;AAC9C;AAqWM,SAAU,cAAc,CAAC,WAAW,EAAA;IACxC,MAAM,QAAQ,GAAG,WAAW,IAAI,IAAI,GAAG,IAAI,CAAC;AAC5C,IAAA,IAAI,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;IAEzD,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,IAAI,EAAE;QACnC,aAAa,GAAG,MAAM;;AACjB,SAAA,IAAI,QAAQ,KAAK,CAAC,EAAE;QACzB,aAAa,GAAG,MAAM;;IAGxB,OAAO,CAAA,EAAG,aAAa,CAAA,GAAA,CAAK;AAC9B;;;;","names":[],"sources":["src/utils/utils.ts"],"sourcesContent":["export function format(first: string, middle: string, last: string): string {\n return (first || '') + (middle ? ` ${middle}` : '') + (last ? ` ${last}` : '');\n}\n\nexport function toKebabCase(str: string) {\n return str.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nexport function formatDate(date: string): string {\n const parts = date.split('-');\n return `${parts[2]}/${parts[1]}/${parts[0]}`;\n}\n\nexport function stripHtmlContent(content: string): string {\n const div = document.createElement('div');\n div.innerHTML = content;\n return div.textContent || div.innerText || '';\n}\n\ninterface ComponentProp {\n name: string;\n type: string;\n docs: string;\n default: string;\n}\n\ninterface ComponentEvent {\n event: string;\n docs: string;\n detail: string;\n}\n\ninterface ComponentMethod {\n name: string;\n signature: string;\n docs: string;\n returns: {\n type: string;\n docs: string;\n };\n parameters: Array<{\n name: string;\n type: string;\n docs: string;\n }>;\n}\n\ninterface ComponentInfo {\n name: string;\n props: ComponentProp[];\n events: ComponentEvent[];\n methods: ComponentMethod[];\n}\n\nconst description = (prop: ComponentProp | ComponentEvent | ComponentMethod) => (prop.docs || '').trim();\n\nconst isText = (prop: ComponentProp) => prop.type === 'string';\nconst isBoolean = (prop: ComponentProp) => prop.type === 'boolean';\nconst isEnum = (prop: ComponentProp) => prop.type.includes('|');\nconst isNumber = (prop: ComponentProp) => prop.type === 'number';\n\nconst enumOptions = (prop: ComponentProp) =>\n prop.type\n .split('|')\n .map(t => t.trim())\n .map(t => (t === '\"\"' ? 'default' : t))\n .map(t => t.replace(/^\"(.*)\"$/, '$1'));\n\nconst generateProp = (prop: ComponentProp) => {\n if (isText(prop)) {\n return {\n [prop.name]: {\n control: 'text',\n description: description(prop),\n defaultValue: prop.default,\n table: {\n category: 'properties',\n defaultValue: { summary: prop.default },\n type: { summary: 'string' },\n },\n },\n };\n }\n\n if (isBoolean(prop)) {\n return {\n [prop.name]: {\n control: 'boolean',\n description: description(prop),\n defaultValue: prop.default,\n table: {\n category: 'properties',\n defaultValue: { summary: prop.default },\n type: { summary: 'boolean' },\n },\n },\n };\n }\n\n if (isNumber(prop)) {\n return {\n [prop.name]: {\n control: 'number',\n description: description(prop),\n defaultValue: prop.default,\n table: {\n category: 'properties',\n defaultValue: { summary: prop.default },\n type: { summary: 'number' },\n },\n },\n };\n }\n\n if (isEnum(prop)) {\n return {\n [prop.name]: {\n control: 'select',\n defaultValue: prop.default,\n options: enumOptions(prop),\n description: description(prop),\n table: {\n category: 'properties',\n defaultValue: { summary: prop.default },\n type: { summary: 'enum' },\n },\n },\n };\n }\n\n return {};\n};\n\nconst generateProps = (props: ComponentProp[]) => {\n let args = {};\n props.forEach(prop => (args = { ...args, ...generateProp(prop) }));\n return args;\n};\n\nconst generateEvent = (event: ComponentEvent) => {\n function capitalizeFirstLetter(string: string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n }\n\n return {\n [`on${capitalizeFirstLetter(event.event)}`]: {\n action: event.event,\n description: description(event),\n table: {\n defaultValue: { summary: event.event },\n category: 'events',\n type: { summary: event.detail },\n },\n },\n };\n};\n\nconst generateEvents = (events: ComponentEvent[]) => {\n let args = {};\n events.forEach(event => (args = { ...args, ...generateEvent(event) }));\n return args;\n};\n\nconst generateMethod = (method: ComponentMethod) => {\n return {\n [method.name]: {\n action: method.name,\n description: description(method),\n table: {\n category: 'methods',\n type: { summary: method.signature },\n defaultValue: { summary: method.returns.type },\n },\n },\n };\n};\n\nconst generateMethods = (methods: ComponentMethod[]) => {\n let args = {};\n methods.forEach(method => (args = { ...args, ...generateMethod(method) }));\n return args;\n};\n\nconst extractComponentInfoByTag = (componentsData: any, tag: string): ComponentInfo | null => {\n const component = componentsData.components.find(c => c.tag === tag);\n\n if (!component) {\n console.error(`Component with tag ${tag} not found`);\n return null;\n }\n\n const { props, events, methods } = component;\n\n const propInfo = props.map(prop => ({\n name: prop.name,\n type: prop.type,\n docs: prop.docs,\n default: prop.default || '',\n }));\n\n const eventInfo = events.map(event => ({\n event: event.event,\n docs: event.docs,\n detail: event.detail,\n }));\n\n const methodInfo = methods.map(method => ({\n name: method.name,\n signature: method.signature,\n docs: method.docs,\n returns: method.returns,\n parameters: method.parameters,\n }));\n\n return {\n name: tag,\n props: propInfo,\n events: eventInfo,\n methods: methodInfo,\n };\n};\n\nconst generateHTMLTable = (componentInfo: ComponentInfo): string => {\n if (!componentInfo) {\n return `<p>Component not found</p>`;\n }\n\n const { props, events, methods } = componentInfo;\n\n const propsRows = props\n .map(\n prop => `\n <tr>\n <td>${prop.name}</td>\n <td>${prop.type}</td>\n <td>${prop.docs}</td>\n <td>${prop.default}</td>\n </tr>\n `,\n )\n .join('');\n\n const eventsRows = events\n .map(\n event => `\n <tr>\n <td>${event.event}</td>\n <td>${event.detail}</td>\n <td>${event.docs}</td>\n </tr>\n `,\n )\n .join('');\n\n const methodsRows = methods\n .map(\n method => `\n <tr>\n <td>${method.name}</td>\n <td>${method.signature}</td>\n <td>${method.returns.type}</td>\n <td>${method.docs}</td>\n </tr>\n `,\n )\n .join('');\n\n return `\n <h3>Propriétés</h3>\n <table class=\"w-full\">\n <thead>\n <tr>\n <th>Propriété</th>\n <th>Type</th>\n <th>Description</th>\n <th>Valeur par défaut</th>\n </tr>\n </thead>\n <tbody>\n ${propsRows}\n </tbody>\n </table>\n <h3>Événements</h3>\n <table class=\"w-full\">\n <thead>\n <tr>\n <th>Événement</th>\n <th>Détail</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n ${eventsRows}\n </tbody>\n </table>\n <h3>Méthodes</h3>\n <table class=\"w-full\">\n <thead>\n <tr>\n <th>Méthode</th>\n <th>Signature</th>\n <th>Retour</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n ${methodsRows}\n </tbody>\n </table>\n `;\n};\n\nexport const generateComponentTable = (componentsData: any, tag: string): string => {\n const componentInfo = extractComponentInfoByTag(componentsData, tag);\n return generateHTMLTable(componentInfo);\n};\n\nexport const withComponentControls = (\n componentsData: any,\n { tag, customTokens = [] }: { tag: string; customTokens?: { name: string; description: string; defaultValue: string }[] },\n): any => {\n const component = componentsData.components.find(c => c.tag === tag);\n const props = component?.props || [];\n const events = component?.events || [];\n const methods = component?.methods || [];\n\n const tokenControls = customTokens.reduce((acc, token) => {\n acc[token.name] = {\n control: true,\n description: token.description,\n table: {\n category: 'Tokens',\n type: { summary: 'CSS Variable' },\n defaultValue: { summary: token.defaultValue },\n },\n };\n return acc;\n }, {});\n\n // ✅ Séparation claire des catégories\n const propControls = generateProps(props as ComponentProp[]);\n const eventControls = generateEvents(events as ComponentEvent[]);\n const methodControls = generateMethods(methods as ComponentMethod[]);\n\n // ✅ Regroupement complet pour Storybook\n const allControls = {\n ...propControls,\n ...eventControls,\n ...methodControls,\n ...tokenControls,\n };\n\n // ✅ Indique explicitement quelles sont les props réelles du composant\n Object.defineProperty(allControls, '__realProps', {\n value: Object.keys(propControls).concat(Object.keys(tokenControls)),\n enumerable: false, // ne pollue pas la vue Storybook\n });\n\n return allControls;\n};\n\nexport function extractArgTypes(componentsData: any, subComponentTags: string[]) {\n return subComponentTags.reduce((acc, tag) => {\n const subComponentArgTypes = withComponentControls(componentsData, { tag });\n return { ...acc, ...subComponentArgTypes };\n }, {});\n}\n\nexport function formatFileSize(sizeInBytes) {\n const sizeInMB = sizeInBytes / (1024 * 1024);\n let formattedSize = sizeInMB.toFixed(2).replace('.', ',');\n\n if (sizeInMB > 0 && sizeInMB < 0.01) {\n formattedSize = '0,01';\n } else if (sizeInMB === 0) {\n formattedSize = '0,00';\n }\n\n return `${formattedSize} Mo`;\n}\n\nexport function hasSlotContent(el: HTMLElement): boolean {\n const slot = el.querySelector('slot');\n return slot && slot.assignedNodes().length > 0;\n}\n"],"version":3}
1
+ {"file":"p-BBi01mKM.js","mappings":"AAQM,SAAU,UAAU,CAAC,IAAY,EAAA;IACrC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAC7B,IAAA,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;AAC9C;AAqXM,SAAU,cAAc,CAAC,WAAW,EAAA;IACxC,MAAM,QAAQ,GAAG,WAAW,IAAI,IAAI,GAAG,IAAI,CAAC;AAC5C,IAAA,IAAI,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;IAEzD,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,IAAI,EAAE;QACnC,aAAa,GAAG,MAAM;;AACjB,SAAA,IAAI,QAAQ,KAAK,CAAC,EAAE;QACzB,aAAa,GAAG,MAAM;;IAGxB,OAAO,CAAA,EAAG,aAAa,CAAA,GAAA,CAAK;AAC9B;;;;","names":[],"sources":["src/utils/utils.ts"],"sourcesContent":["export function format(first: string, middle: string, last: string): string {\n return (first || '') + (middle ? ` ${middle}` : '') + (last ? ` ${last}` : '');\n}\n\nexport function toKebabCase(str: string) {\n return str.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nexport function formatDate(date: string): string {\n const parts = date.split('-');\n return `${parts[2]}/${parts[1]}/${parts[0]}`;\n}\n\nexport function stripHtmlContent(content: string): string {\n const div = document.createElement('div');\n div.innerHTML = content;\n return div.textContent || div.innerText || '';\n}\n\ninterface ComponentProp {\n name: string;\n type: string;\n docs: string;\n default: string;\n}\n\ninterface ComponentEvent {\n event: string;\n docs: string;\n detail: string;\n}\n\ninterface ComponentMethod {\n name: string;\n signature: string;\n docs: string;\n returns: {\n type: string;\n docs: string;\n };\n parameters: Array<{\n name: string;\n type: string;\n docs: string;\n }>;\n}\n\ninterface ComponentInfo {\n name: string;\n props: ComponentProp[];\n events: ComponentEvent[];\n methods: ComponentMethod[];\n}\n\nconst description = (prop: ComponentProp | ComponentEvent | ComponentMethod) => (prop.docs || '').trim();\n\nconst isText = (prop: ComponentProp) => prop.type === 'string';\nconst isBoolean = (prop: ComponentProp) => prop.type === 'boolean';\nconst isEnum = (prop: ComponentProp) => prop.type.includes('|');\nconst isNumber = (prop: ComponentProp) => prop.type === 'number';\n\nconst enumOptions = (prop: ComponentProp) =>\n prop.type\n .split('|')\n .map(t => t.trim())\n .map(t => (t === '\"\"' ? 'default' : t))\n .map(t => t.replace(/^\"(.*)\"$/, '$1'));\n\nconst generateProp = (prop: ComponentProp, componentTag?: string, prefixPropName: boolean = false) => {\n const category = componentTag ? `Props - ${componentTag}` : 'properties';\n const propName = prefixPropName && componentTag ? `${componentTag}__${prop.name}` : prop.name;\n const kebabCaseName = toKebabCase(prop.name);\n\n const baseTableConfig = {\n category: category,\n defaultValue: { summary: prop.default },\n };\n\n if (isText(prop)) {\n return {\n [propName]: {\n control: 'text',\n description: description(prop),\n defaultValue: prop.default,\n name: kebabCaseName,\n table: {\n ...baseTableConfig,\n type: { summary: 'string' },\n },\n },\n };\n }\n\n if (isBoolean(prop)) {\n return {\n [propName]: {\n control: 'boolean',\n description: description(prop),\n defaultValue: prop.default,\n name: kebabCaseName,\n table: {\n ...baseTableConfig,\n type: { summary: 'boolean' },\n },\n },\n };\n }\n\n if (isNumber(prop)) {\n return {\n [propName]: {\n control: 'number',\n description: description(prop),\n defaultValue: prop.default,\n name: kebabCaseName,\n table: {\n ...baseTableConfig,\n type: { summary: 'number' },\n },\n },\n };\n }\n\n if (isEnum(prop)) {\n return {\n [propName]: {\n control: 'select',\n defaultValue: prop.default,\n options: enumOptions(prop),\n description: description(prop),\n name: kebabCaseName,\n table: {\n ...baseTableConfig,\n type: { summary: 'enum' },\n },\n },\n };\n }\n\n return {};\n};\n\nconst generateProps = (props: ComponentProp[], componentTag?: string, prefixPropName: boolean = false) => {\n let args = {};\n props.forEach(prop => (args = { ...args, ...generateProp(prop, componentTag, prefixPropName) }));\n return args;\n};\n\nconst generateEvent = (event: ComponentEvent, componentTag?: string, prefixEventName: boolean = false) => {\n function capitalizeFirstLetter(string: string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n }\n\n const category = componentTag ? `Events - ${componentTag}` : 'events';\n const originalEventName = `on${capitalizeFirstLetter(event.event)}`;\n const eventName = prefixEventName && componentTag ? `${componentTag}__${originalEventName}` : originalEventName;\n\n return {\n [eventName]: {\n action: event.event,\n description: description(event),\n name: originalEventName,\n table: {\n defaultValue: { summary: event.event },\n category: category,\n type: { summary: event.detail },\n },\n },\n };\n};\n\nconst generateEvents = (events: ComponentEvent[], componentTag?: string, prefixEventName: boolean = false) => {\n let args = {};\n events.forEach(event => (args = { ...args, ...generateEvent(event, componentTag, prefixEventName) }));\n return args;\n};\n\nconst generateMethod = (method: ComponentMethod, componentTag?: string, prefixMethodName: boolean = false) => {\n const category = componentTag ? `Methods - ${componentTag}` : 'methods';\n const methodName = prefixMethodName && componentTag ? `${componentTag}__${method.name}` : method.name;\n\n return {\n [methodName]: {\n action: method.name,\n description: description(method),\n name: method.name,\n table: {\n category: category,\n type: { summary: method.signature },\n defaultValue: { summary: method.returns.type },\n },\n },\n };\n};\n\nconst generateMethods = (methods: ComponentMethod[], componentTag?: string, prefixMethodName: boolean = false) => {\n let args = {};\n methods.forEach(method => (args = { ...args, ...generateMethod(method, componentTag, prefixMethodName) }));\n return args;\n};\n\nconst extractComponentInfoByTag = (componentsData: any, tag: string): ComponentInfo | null => {\n const component = componentsData.components.find(c => c.tag === tag);\n\n if (!component) {\n console.error(`Component with tag ${tag} not found`);\n return null;\n }\n\n const { props, events, methods } = component;\n\n const propInfo = props.map(prop => ({\n name: prop.name,\n type: prop.type,\n docs: prop.docs,\n default: prop.default || '',\n }));\n\n const eventInfo = events.map(event => ({\n event: event.event,\n docs: event.docs,\n detail: event.detail,\n }));\n\n const methodInfo = methods.map(method => ({\n name: method.name,\n signature: method.signature,\n docs: method.docs,\n returns: method.returns,\n parameters: method.parameters,\n }));\n\n return {\n name: tag,\n props: propInfo,\n events: eventInfo,\n methods: methodInfo,\n };\n};\n\nconst generateHTMLTable = (componentInfo: ComponentInfo): string => {\n if (!componentInfo) {\n return `<p>Component not found</p>`;\n }\n\n const { props, events, methods } = componentInfo;\n\n const propsRows = props\n .map(\n prop => `\n <tr>\n <td>${prop.name}</td>\n <td>${prop.type}</td>\n <td>${prop.docs}</td>\n <td>${prop.default}</td>\n </tr>\n `,\n )\n .join('');\n\n const eventsRows = events\n .map(\n event => `\n <tr>\n <td>${event.event}</td>\n <td>${event.detail}</td>\n <td>${event.docs}</td>\n </tr>\n `,\n )\n .join('');\n\n const methodsRows = methods\n .map(\n method => `\n <tr>\n <td>${method.name}</td>\n <td>${method.signature}</td>\n <td>${method.returns.type}</td>\n <td>${method.docs}</td>\n </tr>\n `,\n )\n .join('');\n\n return `\n <h3>Propriétés</h3>\n <table class=\"w-full\">\n <thead>\n <tr>\n <th>Propriété</th>\n <th>Type</th>\n <th>Description</th>\n <th>Valeur par défaut</th>\n </tr>\n </thead>\n <tbody>\n ${propsRows}\n </tbody>\n </table>\n <h3>Événements</h3>\n <table class=\"w-full\">\n <thead>\n <tr>\n <th>Événement</th>\n <th>Détail</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n ${eventsRows}\n </tbody>\n </table>\n <h3>Méthodes</h3>\n <table class=\"w-full\">\n <thead>\n <tr>\n <th>Méthode</th>\n <th>Signature</th>\n <th>Retour</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n ${methodsRows}\n </tbody>\n </table>\n `;\n};\n\nexport const generateComponentTable = (componentsData: any, tag: string): string => {\n const componentInfo = extractComponentInfoByTag(componentsData, tag);\n return generateHTMLTable(componentInfo);\n};\n\nexport const withComponentControls = (\n componentsData: any,\n { tag, customTokens = [], prefixNames = false }: { tag: string; customTokens?: { name: string; description: string; defaultValue: string }[]; prefixNames?: boolean },\n): any => {\n const component = componentsData.components.find(c => c.tag === tag);\n const props = component?.props || [];\n const events = component?.events || [];\n const methods = component?.methods || [];\n\n const tokenControls = customTokens.reduce((acc, token) => {\n const tokenName = prefixNames ? `${tag}__${token.name}` : token.name;\n acc[tokenName] = {\n control: true,\n description: token.description,\n table: {\n category: `Tokens - ${tag}`,\n type: { summary: 'CSS Variable' },\n defaultValue: { summary: token.defaultValue },\n },\n };\n return acc;\n }, {});\n\n const propControls = generateProps(props as ComponentProp[], tag, prefixNames);\n const eventControls = generateEvents(events as ComponentEvent[], tag, prefixNames);\n const methodControls = generateMethods(methods as ComponentMethod[], tag, prefixNames);\n\n const allControls = {\n ...propControls,\n ...eventControls,\n ...methodControls,\n ...tokenControls,\n };\n\n Object.defineProperty(allControls, '__realProps', {\n value: Object.keys(propControls).concat(Object.keys(tokenControls)),\n enumerable: false,\n });\n\n return allControls;\n};\n\nexport function extractArgTypes(componentsData: any, subComponentTags: string[]) {\n return subComponentTags.reduce((acc, tag) => {\n const subComponentArgTypes = withComponentControls(componentsData, { tag, prefixNames: true });\n return { ...acc, ...subComponentArgTypes };\n }, {});\n}\n\nexport function formatFileSize(sizeInBytes) {\n const sizeInMB = sizeInBytes / (1024 * 1024);\n let formattedSize = sizeInMB.toFixed(2).replace('.', ',');\n\n if (sizeInMB > 0 && sizeInMB < 0.01) {\n formattedSize = '0,01';\n } else if (sizeInMB === 0) {\n formattedSize = '0,00';\n }\n\n return `${formattedSize} Mo`;\n}\n\nexport function hasSlotContent(el: HTMLElement): boolean {\n const slot = el.querySelector('slot');\n return slot && slot.assignedNodes().length > 0;\n}\n"],"version":3}
@@ -2,9 +2,9 @@ import { p as proxyCustomElement, H, c as createEvent, h, F as Fragment, a as Ho
2
2
  import { d as defineCustomElement$4 } from './p-t1vZcpqC.js';
3
3
  import { d as defineCustomElement$3 } from './p-qgvllwX6.js';
4
4
  import { d as defineCustomElement$2 } from './p-_q4w18VU.js';
5
- import { d as defineCustomElement$1 } from './p-_sdYD0eS.js';
5
+ import { d as defineCustomElement$1 } from './p-BZy3vC1Y.js';
6
6
 
7
- const spwPaginationCss = "/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{-webkit-text-size-adjust:100%;line-height:1.3}h1,h2,h3,h4,h5,h6,li,p,ul{margin:0;padding:0}ul{list-style:none}:host{-webkit-text-size-adjust:100%;box-sizing:border-box;display:block;font-size:100%;line-height:1.3}:host *,:host :after,:host :before{box-sizing:inherit;font-family:Nunito Sans}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}:root{--spw-ds-container-xl:1200px;--spw-ds-container-lg:1024px;--spw-ds-container-md:768px;--spw-ds-container-sm:640px}.spw-ds-container{margin-left:auto;margin-right:auto;padding-left:16px;padding-right:16px;width:100%}@media (min-width:460px){.spw-ds-container{max-width:var(--spw-ds-container-sm)}}@media (min-width:768px){.spw-ds-container{max-width:var(--spw-ds-container-md)}}@media (min-width:1024px){.spw-ds-container{max-width:var(--spw-ds-container-lg)}}@media (min-width:1350px){.spw-ds-container{max-width:var(--spw-ds-container-xl)}}.spw-pagination__item button,.spw-pagination__item--dots{border-radius:32px;font-size:14px;font-weight:700;height:32px;line-height:32px;min-width:32px;text-align:center}.spw-pagination__item button:focus-visible,.spw-pagination__item--dots:focus-visible{box-shadow:0 0 0 5px #000;outline:3px solid #fff;outline-offset:-1px}.spw-pagination{align-items:center;display:flex;flex-direction:column}@media (min-width:768px){.spw-pagination{align-items:flex-start}}.spw-pagination ul{align-items:center;display:flex;padding:0}.spw-pagination__item{margin-right:12px}.spw-pagination__item spw-icon{font-size:18px}.spw-pagination__item button{background:none;border:none;color:var(--spw-color-themes-grey-grey-900);cursor:pointer;margin:0;padding:0 6px}.spw-pagination__item:not(.spw-pagination__item--active,.spw-pagination__item--dots,.spw-pagination__item--disabled):hover button{background:var(--spw-color-themes-grey-grey-200)}.spw-pagination__item:not(.spw-pagination__item--active,.spw-pagination__item--dots,.spw-pagination__item--disabled):active button{background:var(--spw-color-themes-grey-grey-300)}.spw-pagination__item--arrow button{align-items:center;display:flex;gap:8px;padding:0 12px;text-decoration:underline}.spw-pagination__item--arrow button:hover{text-decoration:none}.spw-pagination__item--dots{align-items:center;background:none;color:var(--spw-color-themes-grey-grey-400);cursor:default;display:inline-flex;justify-content:center;position:relative;top:3px}.spw-pagination__item--dots spw-icon{font-size:16px}.spw-pagination__item--desktop{display:none}@media (min-width:768px){.spw-pagination__item--desktop{display:inline-block}}.spw-pagination__item--active button{background:var(--spw-ds-primary);color:#fff}.spw-pagination__input spw-text-field{--spw-input-height:32px;--spw-input-padding:0 4px;--spw-input-text-align:center;--spw-input-font-size:14px;width:3ch}.spw-pagination__mobile-arrows{margin-top:12px}@media (min-width:768px){.spw-pagination__mobile-arrows{display:none!important}}.spw-pagination__total-pages{font-size:14px;margin:0 12px 0 6px}.spw-tw-mb-10{margin-bottom:2.5rem}.spw-tw-mb-6{margin-bottom:1.5rem}.spw-tw-ml-2{margin-left:.5rem}.spw-tw-mr-4{margin-right:1rem}.spw-tw-mt-12{margin-top:3rem}.-spw-tw-mt-1{margin-top:-.25rem}.spw-tw-mb-2{margin-bottom:.5rem}";
7
+ const spwPaginationCss = "/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{-webkit-text-size-adjust:100%;line-height:1.3}h1,h2,h3,h4,h5,h6,li,p,ul{margin:0;padding:0}ul{list-style:none}:host{-webkit-text-size-adjust:100%;box-sizing:border-box;display:block;font-size:100%;line-height:1.3}:host *,:host :after,:host :before{box-sizing:inherit;font-family:Nunito Sans}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}:root{--spw-ds-container-xl:1200px;--spw-ds-container-lg:1024px;--spw-ds-container-md:768px;--spw-ds-container-sm:640px}.spw-ds-container{margin-left:auto;margin-right:auto;padding-left:16px;padding-right:16px;width:100%}@media (min-width:460px){.spw-ds-container{max-width:var(--spw-ds-container-sm)}}@media (min-width:768px){.spw-ds-container{max-width:var(--spw-ds-container-md)}}@media (min-width:1024px){.spw-ds-container{max-width:var(--spw-ds-container-lg)}}@media (min-width:1350px){.spw-ds-container{max-width:var(--spw-ds-container-xl)}}.spw-pagination__item button,.spw-pagination__item--dots{border-radius:32px;font-size:14px;font-weight:700;height:32px;line-height:32px;min-width:32px;text-align:center}.spw-pagination__item button:focus-visible,.spw-pagination__item--dots:focus-visible{box-shadow:0 0 0 5px #000;outline:3px solid #fff;outline-offset:-1px}.spw-pagination{align-items:center;display:flex;flex-direction:column}@media (min-width:768px){.spw-pagination{align-items:flex-start}}.spw-pagination ul{align-items:center;display:flex;padding:0}.spw-pagination__item{margin-right:12px}.spw-pagination__item spw-icon{font-size:18px}.spw-pagination__item button{background:none;border:none;color:var(--spw-color-themes-grey-grey-900);cursor:pointer;margin:0;padding:0 6px}.spw-pagination__item:not(.spw-pagination__item--active,.spw-pagination__item--dots,.spw-pagination__item--disabled):hover button{background:var(--spw-color-themes-grey-grey-200)}.spw-pagination__item:not(.spw-pagination__item--active,.spw-pagination__item--dots,.spw-pagination__item--disabled):active button{background:var(--spw-color-themes-grey-grey-300)}.spw-pagination__item--arrow button{align-items:center;display:flex;gap:8px;padding:0 12px;text-decoration:underline}.spw-pagination__item--arrow button:hover{text-decoration:none}.spw-pagination__item--dots{align-items:center;background:none;color:var(--spw-color-themes-grey-grey-400);cursor:default;display:inline-flex;justify-content:center;position:relative;top:3px}.spw-pagination__item--dots spw-icon{font-size:16px}.spw-pagination__item--desktop{display:none}@media (min-width:768px){.spw-pagination__item--desktop{display:inline-block}}.spw-pagination__item--active button{background:var(--spw-ds-primary);color:#fff}.spw-pagination__input spw-text-field{--spw-input-height:32px;--spw-input-padding:0 4px;--spw-input-text-align:center;--spw-input-font-size:14px;width:36px}.spw-pagination__mobile-arrows{margin-top:12px}@media (min-width:768px){.spw-pagination__mobile-arrows{display:none!important}}.spw-pagination__total-pages{font-size:14px;margin:0 12px 0 6px}.spw-tw-mb-10{margin-bottom:2.5rem}.spw-tw-mb-6{margin-bottom:1.5rem}.spw-tw-ml-2{margin-left:.5rem}.spw-tw-mr-4{margin-right:1rem}.spw-tw-mt-12{margin-top:3rem}.-spw-tw-mt-1{margin-top:-.25rem}.spw-tw-mb-2{margin-bottom:.5rem}";
8
8
 
9
9
  const SpwPagination = /*@__PURE__*/ proxyCustomElement(class SpwPagination extends H {
10
10
  constructor() {
@@ -35,6 +35,23 @@ const SpwPagination = /*@__PURE__*/ proxyCustomElement(class SpwPagination exten
35
35
  calculateTotalPages() {
36
36
  this.totalPages = Math.ceil(this.totalItems / this.itemsPerPage);
37
37
  }
38
+ onItemsPerPageChange() {
39
+ this.currentPage = 1;
40
+ this.inputPageValue = '1';
41
+ this.pageChanged.emit(this.currentPage);
42
+ }
43
+ onTotalItemsChange() {
44
+ const newTotalPages = Math.ceil(this.totalItems / this.itemsPerPage);
45
+ if (this.currentPage > newTotalPages || this.currentPage === 0) {
46
+ this.currentPage = 1;
47
+ this.inputPageValue = '1';
48
+ this.pageChanged.emit(this.currentPage);
49
+ }
50
+ }
51
+ /** Méthode publique pour définir la page courante */
52
+ async setPage(page) {
53
+ this.goToPage(page);
54
+ }
38
55
  goToPage(page) {
39
56
  if (page !== this.currentPage && !this.isDisabled && page >= 1 && page <= this.totalPages) {
40
57
  this.currentPage = page;
@@ -79,13 +96,6 @@ const SpwPagination = /*@__PURE__*/ proxyCustomElement(class SpwPagination exten
79
96
  }
80
97
  }
81
98
  }
82
- calculateWidth() {
83
- const length = this.inputPageValue.length;
84
- if (length <= 1) {
85
- return '3ch';
86
- }
87
- return `${length + 1}ch`;
88
- }
89
99
  calculatePageRange() {
90
100
  const pages = [];
91
101
  const { currentPage, totalPages, isMobile } = this;
@@ -157,12 +167,12 @@ const SpwPagination = /*@__PURE__*/ proxyCustomElement(class SpwPagination exten
157
167
  const pages = this.calculatePageRange();
158
168
  const showPrevArrow = this.currentPage > 1;
159
169
  const showNextArrow = this.currentPage < this.totalPages;
160
- const prevArrow = showPrevArrow && (h("li", { key: '310d6881f5ca26e72e291ff46f3702430f04c156', class: "spw-pagination__item spw-pagination__item--desktop spw-pagination__item--arrow" }, h("button", { key: '7bf0984d6ca0e452a1af393378029132360d0f88', onClick: () => this.goToPage(this.currentPage - 1) }, h("spw-icon", { key: '22a2118f590923421f7939c43d2a5219d8f7b83b', icon: "fa-chevron-left" }), " ", h("span", { key: '759c5b353af09965af21490c10ad5769aedd5b8c', class: "spw-pagination__item-arrow-text" }, "Pr\u00E9c\u00E9dent"))));
161
- const nextArrow = showNextArrow && (h("li", { key: 'f53c2e57b5c522b1cbfddd2065051cc6f12a8989', class: "spw-pagination__item spw-pagination__item--desktop spw-pagination__item--arrow" }, h("button", { key: '3956b0e4c17fcb36d186d0da90f9a12876f32880', onClick: () => this.goToPage(this.currentPage + 1) }, h("span", { key: '415a566238d6628eef7f7076931b1dd6117c59cc', class: "spw-pagination__item-arrow-text" }, "Suivant"), " ", h("spw-icon", { key: 'c692184f2e32af5cecda53da9693097cfe714237', icon: "fa-chevron-right" }))));
162
- const prevArrowMobile = this.currentPage > 1 && (h("li", { key: '73f7a0999c00ea9a7bc4824b5a5ecb0c7e39a361', class: "spw-pagination__item spw-pagination__item--arrow" }, h("button", { key: '3032dadbad8440c930f08187b3f13a5f3792fa22', onClick: () => this.goToPage(this.currentPage - 1) }, h("spw-icon", { key: 'a8c783e83bb884f27765b8353f4a248e51a30436', icon: "fa-chevron-left" }), " ", h("span", { key: 'a16dec2d98c14d3f46e043d6085f8da949e36ec0' }, "Pr\u00E9c\u00E9dent"))));
163
- const nextArrowMobile = this.currentPage < this.totalPages && (h("li", { key: 'c8bc3cb1a2579704de138011dac511eb6d9cb4d8', class: "spw-pagination__item spw-pagination__item--arrow" }, h("button", { key: 'b1bed9428d39534a9b4132b99abc6abcb503a523', onClick: () => this.goToPage(this.currentPage + 1), disabled: this.currentPage >= this.totalPages }, h("span", { key: '295d1d532e9bf87abe1aecfbbe2348f0aceb5aa8' }, "Suivant"), " ", h("spw-icon", { key: 'a57dfaf1c64201cf2ba9a8c8348159f24cb5162a', icon: "fa-chevron-right" }))));
164
- const mobileArrows = (h("ul", { key: '13e17fdac8c7924ddfd7e9a0efead49d1219d00c', class: "spw-pagination__mobile-arrows" }, prevArrowMobile, nextArrowMobile));
165
- return (h(Host, { key: '327f0c39d4ff811b3b336a3b7ddebfd980631197' }, h("div", { key: '91582fe920ccc6122016e349e08f5e0ee8e134b4', class: this.getPaginationClass() }, this.variant === 'input' && (h(Fragment, { key: 'fc891f9ab8a03f988e1f71a3c7e8a82de146c1cf' }, h("ul", { key: 'ce69c066495c083e6231ea94596498f28df2d946' }, prevArrow, h("li", { key: '6aa4b5c1eb79fe1c364cfa474d3909c5dfc9a6e7', class: "spw-pagination__input" }, h("spw-text-field", { key: 'b63bc14dff14f025c6503a2ec1a6250573e51f79', value: this.inputPageValue, type: "text", onInput: event => this.handleInputChange(event), onKeyDown: event => this.handleKeyDown(event), disabled: this.isDisabled, style: { width: this.calculateWidth() } })), h("li", { key: 'fc3afd361ff6457b0cefc381ed210d1ca8b9cae5', class: "spw-pagination__total-pages" }, "sur ", this.totalPages, " pages"), nextArrow), mobileArrows)), this.variant === 'numbers' && (h(Fragment, { key: 'db332f9578f6a3dc6e7776b2acd98a09c60a5800' }, h("ul", { key: '3f4c352d2ed4673cfe15497d83088a3fc9b7caba' }, prevArrow, pages.map(({ page, class: pageClass }) => {
170
+ const prevArrow = showPrevArrow && (h("li", { key: 'c96747975f1283f426b16fc5d6b9169641bf937a', class: "spw-pagination__item spw-pagination__item--desktop spw-pagination__item--arrow" }, h("button", { key: '2cb14838bb36158b08708be2a6c851eab28d8a9e', onClick: () => this.goToPage(this.currentPage - 1) }, h("spw-icon", { key: '4a97d865f50b82f807b699d2c9962cadb2fa3c49', icon: "fa-chevron-left" }), " ", h("span", { key: '85d4eba965c575bf620ac2775fc8b8ab91582c53', class: "spw-pagination__item-arrow-text" }, "Pr\u00E9c\u00E9dent"))));
171
+ const nextArrow = showNextArrow && (h("li", { key: 'db5e31a07af299158c0730b2c8ffdc647eb9c798', class: "spw-pagination__item spw-pagination__item--desktop spw-pagination__item--arrow" }, h("button", { key: 'a2c031078bce4993152b5441e149c00d4633cefe', onClick: () => this.goToPage(this.currentPage + 1) }, h("span", { key: '28cdbfbcca8698294fae48d72a3d0a8932f0a94f', class: "spw-pagination__item-arrow-text" }, "Suivant"), " ", h("spw-icon", { key: '8af477a9a0eb495234278335eca66b7ca0b06fbe', icon: "fa-chevron-right" }))));
172
+ const prevArrowMobile = this.currentPage > 1 && (h("li", { key: '7509af0d29a02f64d67717753d71f2aa05349177', class: "spw-pagination__item spw-pagination__item--arrow" }, h("button", { key: 'c3707cdd586dd519eaa00621eed632f73c5b00b6', onClick: () => this.goToPage(this.currentPage - 1) }, h("spw-icon", { key: 'f1fcf011715c381330865d20f1628ef24edb1778', icon: "fa-chevron-left" }), " ", h("span", { key: 'b9753065430534df7f5b499d97bf4bbad12c32d5' }, "Pr\u00E9c\u00E9dent"))));
173
+ const nextArrowMobile = this.currentPage < this.totalPages && (h("li", { key: '0c3fcbc4f482b151ef5355c2cd24378a7a2c7af3', class: "spw-pagination__item spw-pagination__item--arrow" }, h("button", { key: 'f363b0de0131d011336fccdbf17dc9bc2b5eca15', onClick: () => this.goToPage(this.currentPage + 1), disabled: this.currentPage >= this.totalPages }, h("span", { key: '74df65c99c48fc1aec8084359866227ecdd26dbc' }, "Suivant"), " ", h("spw-icon", { key: '98e057e8cb6318ea06c2543fb4eae8500fcef87c', icon: "fa-chevron-right" }))));
174
+ const mobileArrows = (h("ul", { key: 'a4bff20ae94b1b94d70a8781cf311997c54c87e7', class: "spw-pagination__mobile-arrows" }, prevArrowMobile, nextArrowMobile));
175
+ return (h(Host, { key: 'fc202908905cb6da3eea73312068961b60cc776b' }, h("div", { key: '351bc8518011e937ee51c4831ac13797be51a6cb', class: this.getPaginationClass() }, this.variant === 'input' && (h(Fragment, { key: '684feca5a1724c030f21733850370eaf87153c13' }, h("ul", { key: '14de6cc555d4cab07ef9cb8dbdc0d3e83a25f67b' }, prevArrow, h("li", { key: '825297b0b82ef635497f3470ffcc5478646a558d', class: "spw-pagination__input" }, h("spw-text-field", { key: '3010c66645025021ca8b678b1dedcc65810e3742', value: this.inputPageValue, type: "text", onInput: event => this.handleInputChange(event), onKeyDown: event => this.handleKeyDown(event), disabled: this.isDisabled })), h("li", { key: '4273e7a738ef59ff77229580d89effeaeda18091', class: "spw-pagination__total-pages" }, "sur ", this.totalPages, " pages"), nextArrow), mobileArrows)), this.variant === 'numbers' && (h(Fragment, { key: '159503f57df6936053bbffeb4ed28bd01dff38ff' }, h("ul", { key: '87e707dd1060d3c3ccb6367f99e1c6cefabf99b8' }, prevArrow, pages.map(({ page, class: pageClass }) => {
166
176
  if (page === '...') {
167
177
  return (h("li", { class: `spw-pagination__item spw-pagination__item--dots ${pageClass}` }, h("spw-icon", { icon: "fa-ellipsis" })));
168
178
  }
@@ -174,8 +184,8 @@ const SpwPagination = /*@__PURE__*/ proxyCustomElement(class SpwPagination exten
174
184
  }), nextArrow), mobileArrows)))));
175
185
  }
176
186
  static get watchers() { return {
177
- "totalItems": ["calculateTotalPages"],
178
- "itemsPerPage": ["calculateTotalPages"],
187
+ "totalItems": ["calculateTotalPages", "onTotalItemsChange"],
188
+ "itemsPerPage": ["calculateTotalPages", "onItemsPerPageChange"],
179
189
  "currentPage": ["calculateTotalPages"]
180
190
  }; }
181
191
  static get style() { return spwPaginationCss; }
@@ -186,10 +196,11 @@ const SpwPagination = /*@__PURE__*/ proxyCustomElement(class SpwPagination exten
186
196
  "variant": [1],
187
197
  "currentPage": [1026, "current-page"],
188
198
  "inputPageValue": [32],
189
- "isMobile": [32]
199
+ "isMobile": [32],
200
+ "setPage": [64]
190
201
  }, undefined, {
191
- "totalItems": ["calculateTotalPages"],
192
- "itemsPerPage": ["calculateTotalPages"],
202
+ "totalItems": ["calculateTotalPages", "onTotalItemsChange"],
203
+ "itemsPerPage": ["calculateTotalPages", "onItemsPerPageChange"],
193
204
  "currentPage": ["calculateTotalPages"]
194
205
  }]);
195
206
  function defineCustomElement() {
@@ -227,6 +238,6 @@ function defineCustomElement() {
227
238
  }
228
239
 
229
240
  export { SpwPagination as S, defineCustomElement as d };
230
- //# sourceMappingURL=p-du-Bai6S.js.map
241
+ //# sourceMappingURL=p-BFGmcTVw.js.map
231
242
 
232
- //# sourceMappingURL=p-du-Bai6S.js.map
243
+ //# sourceMappingURL=p-BFGmcTVw.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-BFGmcTVw.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/spw-pagination/spw-pagination.scss?tag=spw-pagination&encapsulation=shadow","src/components/spw-pagination/spw-pagination.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n%button {\n text-align: center;\n line-height: 32px;\n font-weight: 700;\n border-radius: 32px;\n font-size: 14px;\n min-width: 32px;\n height: 32px;\n &:focus-visible {\n outline: 3px solid white;\n outline-offset: -1px;\n box-shadow: 0 0 0 5px black;\n }\n}\n\n.spw-pagination {\n display: flex;\n flex-direction: column;\n align-items: center;\n @include breakpoint(md) {\n align-items: flex-start;\n }\n\n ul {\n display: flex;\n align-items: center;\n padding: 0;\n }\n\n &__item {\n margin-right: 12px;\n spw-icon {\n font-size: 18px;\n }\n button {\n padding: 0 6px;\n margin: 0;\n border: none;\n cursor: pointer;\n color: var(--spw-color-themes-grey-grey-900);\n background: none;\n @extend %button;\n }\n\n &:not(.spw-pagination__item--active, .spw-pagination__item--dots, .spw-pagination__item--disabled):hover {\n button {\n background: var(--spw-color-themes-grey-grey-200);\n }\n }\n\n &:not(.spw-pagination__item--active, .spw-pagination__item--dots, .spw-pagination__item--disabled):active {\n button {\n background: var(--spw-color-themes-grey-grey-300);\n }\n }\n\n &--arrow {\n button {\n padding: 0 12px;\n display: flex;\n gap: 8px;\n align-items: center;\n text-decoration: underline;\n &:hover {\n text-decoration: none;\n }\n }\n }\n\n &--dots {\n position: relative;\n top: 3px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n cursor: default;\n background: none;\n color: var(--spw-color-themes-grey-grey-400);\n @extend %button;\n spw-icon {\n font-size: 16px;\n }\n }\n\n &--desktop {\n display: none;\n @include breakpoint(md) {\n display: inline-block;\n }\n }\n\n &--active {\n button {\n color: white;\n background: var(--spw-ds-primary);\n }\n }\n }\n\n &__input {\n spw-text-field {\n width: 36px;\n --spw-input-height: 32px;\n --spw-input-padding: 0 4px;\n --spw-input-text-align: center;\n --spw-input-font-size: 14px;\n }\n }\n\n &__mobile-arrows {\n margin-top: 12px;\n @include breakpoint(md) {\n display: none !important;\n }\n }\n\n &__total-pages {\n font-size: 14px;\n margin: 0 12px 0 6px;\n }\n}\n","import { Component, Fragment, Prop, Host, h, Event, EventEmitter, Watch, State, Method } from '@stencil/core';\n\n@Component({\n tag: 'spw-pagination',\n styleUrl: 'spw-pagination.scss',\n shadow: true,\n})\nexport class SpwPagination {\n /** Nombre total d'éléments à paginer */\n @Prop() totalItems: number;\n /** Nombre d'éléments à afficher par page */\n @Prop() itemsPerPage: number;\n /** Indique si la pagination est désactivée */\n @Prop() isDisabled: boolean = false;\n /** Type de variante de la pagination : 'numbers' ou 'input' */\n @Prop() variant: 'numbers' | 'input' = 'numbers';\n /** Page actuellement sélectionnée, mutable */\n @Prop({ mutable: true }) currentPage: number = 1;\n\n /** Événement émis lorsque la page est changée, renvoie le numéro de la nouvelle page */\n @Event() pageChanged: EventEmitter<number>;\n\n private totalPages: number;\n @State() inputPageValue: string = '';\n @State() isMobile: boolean = window.innerWidth < 800;\n private debounceTimer: any;\n\n componentWillLoad() {\n this.calculateTotalPages();\n this.inputPageValue = this.currentPage.toString();\n window.addEventListener('resize', this.updateIsMobile);\n }\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.updateIsMobile);\n }\n\n private updateIsMobile = () => {\n this.isMobile = window.innerWidth < 800;\n };\n\n @Watch('totalItems')\n @Watch('itemsPerPage')\n @Watch('currentPage')\n calculateTotalPages() {\n this.totalPages = Math.ceil(this.totalItems / this.itemsPerPage);\n }\n\n @Watch('itemsPerPage')\n onItemsPerPageChange() {\n this.currentPage = 1;\n this.inputPageValue = '1';\n this.pageChanged.emit(this.currentPage);\n }\n\n @Watch('totalItems')\n onTotalItemsChange() {\n const newTotalPages = Math.ceil(this.totalItems / this.itemsPerPage);\n if (this.currentPage > newTotalPages || this.currentPage === 0) {\n this.currentPage = 1;\n this.inputPageValue = '1';\n this.pageChanged.emit(this.currentPage);\n }\n }\n\n /** Méthode publique pour définir la page courante */\n @Method()\n async setPage(page: number): Promise<void> {\n this.goToPage(page);\n }\n\n private goToPage(page: number) {\n if (page !== this.currentPage && !this.isDisabled && page >= 1 && page <= this.totalPages) {\n this.currentPage = page;\n this.inputPageValue = this.currentPage.toString();\n this.pageChanged.emit(this.currentPage);\n }\n }\n\n private handleInputChange(event: Event) {\n const inputValue = (event.target as HTMLInputElement).value;\n this.inputPageValue = inputValue;\n const page = parseInt(inputValue, 10);\n\n if (!isNaN(page) && page >= 1 && page <= this.totalPages) {\n clearTimeout(this.debounceTimer);\n this.debounceTimer = setTimeout(() => {\n this.goToPage(page);\n }, 500);\n }\n }\n\n private getPaginationClass() {\n const pages = this.calculatePageRange();\n const ellipsisCount = pages.filter(({ page }) => page === '...').length;\n const hasEllipsisStart = ellipsisCount > 0 && pages[1]?.page === '...';\n const hasEllipsisEnd = ellipsisCount > 0 && pages[pages.length - 2]?.page === '...';\n\n let paginationClass = `spw-pagination spw-pagination--${this.currentPage} spw-pagination--total-${this.totalPages}`;\n\n if (ellipsisCount === 2) {\n paginationClass += ' spw-pagination--double-ellipsis';\n } else if (hasEllipsisStart) {\n paginationClass += ' spw-pagination--ellipsis-start';\n } else if (hasEllipsisEnd) {\n paginationClass += ' spw-pagination--ellipsis-end';\n }\n\n return paginationClass;\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n const page = parseInt(this.inputPageValue, 10);\n if (!isNaN(page)) {\n this.goToPage(page);\n }\n }\n }\n\n private calculatePageRange() {\n const pages = [];\n const { currentPage, totalPages, isMobile } = this;\n\n if (isMobile) {\n // Mode mobile\n if (totalPages <= 5) {\n for (let i = 1; i <= totalPages; i++) {\n pages.push({ page: i, class: 'spw-pagination__item--small-range' });\n }\n } else if (currentPage <= 3) {\n for (let i = 1; i <= 3; i++) {\n pages.push({ page: i, class: 'spw-pagination__item--start-range' });\n }\n pages.push({ page: '...', class: 'spw-pagination__item--ellipsis' });\n pages.push({ page: totalPages, class: 'spw-pagination__item--end' });\n } else if (currentPage >= totalPages - 2) {\n pages.push({ page: 1, class: 'spw-pagination__item--start' });\n pages.push({ page: '...', class: 'spw-pagination__item--ellipsis' });\n for (let i = totalPages - 2; i <= totalPages; i++) {\n pages.push({ page: i, class: 'spw-pagination__item--end-range' });\n }\n } else {\n pages.push({ page: 1, class: 'spw-pagination__item--start' });\n pages.push({ page: '...', class: 'spw-pagination__item--ellipsis' });\n for (let i = currentPage - 1; i <= currentPage + 1; i++) {\n pages.push({ page: i, class: 'spw-pagination__item--middle-range' });\n }\n pages.push({ page: '...', class: 'spw-pagination__item--ellipsis' });\n pages.push({ page: totalPages, class: 'spw-pagination__item--end' });\n }\n } else {\n // Mode desktop\n if (totalPages <= 7) {\n for (let i = 1; i <= totalPages; i++) {\n pages.push({ page: i, class: 'spw-pagination__item--small-range' });\n }\n } else if (currentPage <= 4) {\n for (let i = 1; i <= 4; i++) {\n pages.push({ page: i, class: 'spw-pagination__item--start-range' });\n }\n pages.push({ page: '...', class: 'spw-pagination__item--ellipsis' });\n pages.push({ page: totalPages, class: 'spw-pagination__item--end' });\n } else if (currentPage >= totalPages - 3) {\n pages.push({ page: 1, class: 'spw-pagination__item--start' });\n pages.push({ page: '...', class: 'spw-pagination__item--ellipsis' });\n for (let i = totalPages - 3; i <= totalPages; i++) {\n pages.push({ page: i, class: 'spw-pagination__item--end-range' });\n }\n } else {\n pages.push({ page: 1, class: 'spw-pagination__item--start' });\n pages.push({ page: '...', class: 'spw-pagination__item--ellipsis' });\n for (let i = currentPage - 2; i <= currentPage + 2; i++) {\n pages.push({ page: i, class: 'spw-pagination__item--middle-range' });\n }\n pages.push({ page: '...', class: 'spw-pagination__item--ellipsis' });\n pages.push({ page: totalPages, class: 'spw-pagination__item--end' });\n }\n }\n\n return pages;\n }\n\n render() {\n const pages = this.calculatePageRange();\n const showPrevArrow = this.currentPage > 1;\n const showNextArrow = this.currentPage < this.totalPages;\n\n const prevArrow = showPrevArrow && (\n <li class=\"spw-pagination__item spw-pagination__item--desktop spw-pagination__item--arrow\">\n <button onClick={() => this.goToPage(this.currentPage - 1)}>\n <spw-icon icon=\"fa-chevron-left\"></spw-icon> <span class=\"spw-pagination__item-arrow-text\">Précédent</span>\n </button>\n </li>\n );\n\n const nextArrow = showNextArrow && (\n <li class=\"spw-pagination__item spw-pagination__item--desktop spw-pagination__item--arrow\">\n <button onClick={() => this.goToPage(this.currentPage + 1)}>\n <span class=\"spw-pagination__item-arrow-text\">Suivant</span> <spw-icon icon=\"fa-chevron-right\"></spw-icon>\n </button>\n </li>\n );\n\n const prevArrowMobile = this.currentPage > 1 && (\n <li class=\"spw-pagination__item spw-pagination__item--arrow\">\n <button onClick={() => this.goToPage(this.currentPage - 1)}>\n <spw-icon icon=\"fa-chevron-left\"></spw-icon> <span>Précédent</span>\n </button>\n </li>\n );\n\n const nextArrowMobile = this.currentPage < this.totalPages && (\n <li class=\"spw-pagination__item spw-pagination__item--arrow\">\n <button onClick={() => this.goToPage(this.currentPage + 1)} disabled={this.currentPage >= this.totalPages}>\n <span>Suivant</span> <spw-icon icon=\"fa-chevron-right\"></spw-icon>\n </button>\n </li>\n );\n\n const mobileArrows = (\n <ul class=\"spw-pagination__mobile-arrows\">\n {prevArrowMobile}\n {nextArrowMobile}\n </ul>\n );\n\n return (\n <Host>\n <div class={this.getPaginationClass()}>\n {this.variant === 'input' && (\n <Fragment>\n <ul>\n {prevArrow}\n <li class=\"spw-pagination__input\">\n <spw-text-field\n value={this.inputPageValue}\n type=\"text\"\n onInput={event => this.handleInputChange(event)}\n onKeyDown={event => this.handleKeyDown(event)}\n disabled={this.isDisabled}\n ></spw-text-field>\n </li>\n <li class=\"spw-pagination__total-pages\">sur {this.totalPages} pages</li>\n {nextArrow}\n </ul>\n {mobileArrows}\n </Fragment>\n )}\n {this.variant === 'numbers' && (\n <Fragment>\n <ul>\n {prevArrow}\n\n {pages.map(({ page, class: pageClass }) => {\n if (page === '...') {\n return (\n <li class={`spw-pagination__item spw-pagination__item--dots ${pageClass}`}>\n <spw-icon icon=\"fa-ellipsis\"></spw-icon>\n </li>\n );\n }\n\n return (\n <li\n class={{\n 'spw-pagination__item': true,\n 'spw-pagination__item--active': page === this.currentPage,\n [pageClass]: true,\n }}\n >\n <button onClick={() => this.goToPage(page as number)} disabled={page === this.currentPage}>\n {page}\n </button>\n </li>\n );\n })}\n\n {nextArrow}\n </ul>\n {mobileArrows}\n </Fragment>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -189,7 +189,7 @@ const SpwTextField = /*@__PURE__*/ proxyCustomElement(class SpwTextField extends
189
189
  };
190
190
  }
191
191
  render() {
192
- return (h("div", { key: '7ac0d815bd0edd167799c3749c708b1a54beeecd', class: this.elementClass }, this.label && h("spw-field-label", { key: '2e6daa75d321b6e222e21f17e7b052984186dabc', label: this.label, name: this.name, required: this.required }), this.assistiveText && (h("spw-field-message", { key: '4756dfee5a472a884e6639092cf4cbd6c766ab68', class: "spw-tw-mb-2 -spw-tw-mt-1", variant: "hint", showIcon: false }, this.assistiveText)), h("div", { key: 'c6610e3d2e747c3b5af25d6f185a39a2d2cf0bb6', class: "spw-text-field__container" }, h("div", { key: 'b22887493389b956166d3f6acd8b8d7f1e8f497c', class: "spw-text-field__input-container" }, h("input", { key: 'de7bd4f6f3c7ee2a6de90d10fb2c336178104573', class: "spw-text-field__input", ref: el => (this.inputElement = el), type: this.type, min: this.min, max: this.max, step: this.step, value: this.internalValue, placeholder: this.placeholder, disabled: this.disabled, name: this.name, id: this.name, minLength: this.minLength, maxLength: this.maxLength, required: this.required, onInput: event => this.handleInput(event) }), (this.isSearch || this.isClearIconVisible) && (h("div", { key: 'c4674edd4c3bddf1e0880f81a11fcaf60e4aa51c', class: "spw-text-field__icons" }, this.isClearIconVisible && (h("span", { key: '0265b15ae7613efb3646eb128f86b68859c11a27', class: "spw-text-field__clear", onClick: () => this.handleClear() }, h("spw-icon", { key: 'd6a335856fd4ef3723d01f6bedc2a02e80aee996', class: "spw-text-field__icon spw-text-field__icon--clear", icon: "fa-xmark" }))), this.isSearch && h("spw-icon", { key: '411bb106a9205f138254734852d78b5e41359004', class: "spw-text-field__icon spw-text-field__icon--search", icon: "fa-magnifying-glass" })))), this.indicator && h("div", { key: 'c73e92d45abd6268b7ff6c3ba2679523814316ef', class: "spw-text-field__indicator" }, this.indicator)), this.renderErrorMessage(), this.renderHintMessage(), this.renderSuccessMessage(), this.renderWarningMessage()));
192
+ return (h("div", { key: '5fd55473eefa7f0a27d7165e4d44f5d2c44fa739', class: this.elementClass }, this.label && h("spw-field-label", { key: '50d9c4f1ca75ea24f312ff2c01b29e3006224543', label: this.label, name: this.name, required: this.required }), this.assistiveText && (h("spw-field-message", { key: 'b1c791b05d0ae8482cf59ff7d710ef32a368265c', class: "spw-tw-mb-2 -spw-tw-mt-1", variant: "hint", showIcon: false }, this.assistiveText)), h("div", { key: 'e7aaffa2be5493ac0354850c055c009545ed724e', class: "spw-text-field__container" }, h("div", { key: '902d7a5f33b9ea552034c686f2592b7cd3ea81e8', class: "spw-text-field__input-container" }, h("input", { key: 'f66db7aa135d17c8951abef37ae4548c57749d06', class: "spw-text-field__input", ref: el => (this.inputElement = el), type: this.type, min: this.min, max: this.max, step: this.step, value: this.internalValue, placeholder: this.placeholder, disabled: this.disabled, name: this.name, id: this.name, minLength: this.minLength, maxLength: this.maxLength, required: this.required, onInput: event => this.handleInput(event) }), (this.isSearch || this.isClearIconVisible) && (h("div", { key: 'd817394dadd7b8d9fc48f5a4f537c42c7b2b3676', class: "spw-text-field__icons" }, this.isClearIconVisible && (h("span", { key: '4a0dc1ed855194dab43bbf75d664a3837954fb36', class: "spw-text-field__clear", onClick: () => this.handleClear() }, h("spw-icon", { key: '24decfa0b20f35aaeefb13ce844ff67d99d4afa5', class: "spw-text-field__icon spw-text-field__icon--clear", icon: "fa-xmark" }))), this.isSearch && h("spw-icon", { key: 'c5b2d09ee9bd71af72121d26b20a25e950436f2d', class: "spw-text-field__icon spw-text-field__icon--search", icon: "fa-magnifying-glass" })))), this.indicator && h("div", { key: '6f680cc1c24770ede98068d81360e7ebaba1a658', class: "spw-text-field__indicator" }, this.indicator)), this.renderErrorMessage(), this.renderHintMessage(), this.renderSuccessMessage(), this.renderWarningMessage()));
193
193
  }
194
194
  static get formAssociated() { return true; }
195
195
  static get watchers() { return {
@@ -259,6 +259,6 @@ function defineCustomElement() {
259
259
  }
260
260
 
261
261
  export { SpwTextField as S, defineCustomElement as d };
262
- //# sourceMappingURL=p-_sdYD0eS.js.map
262
+ //# sourceMappingURL=p-BZy3vC1Y.js.map
263
263
 
264
- //# sourceMappingURL=p-_sdYD0eS.js.map
264
+ //# sourceMappingURL=p-BZy3vC1Y.js.map