@nova-design-system/nova-webcomponents 3.26.0 → 3.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (468) hide show
  1. package/dist/cjs/{index-BQjqJTJB.js → index-Cfkoz1kc.js} +17 -1
  2. package/dist/cjs/index.cjs.js +6 -0
  3. package/dist/cjs/loader.cjs.js +2 -2
  4. package/dist/cjs/native.cjs.js +2 -2
  5. package/dist/cjs/nova-datetime-DOtVgYBB.js +10643 -0
  6. package/dist/cjs/nv-accordion-item.cjs.entry.js +1 -1
  7. package/dist/cjs/nv-accordion.cjs.entry.js +1 -1
  8. package/dist/cjs/nv-alert.cjs.entry.js +1 -1
  9. package/dist/cjs/nv-avatar.cjs.entry.js +1 -1
  10. package/dist/cjs/nv-badge_2.cjs.entry.js +2 -2
  11. package/dist/cjs/nv-breadcrumb.cjs.entry.js +1 -1
  12. package/dist/cjs/nv-breadcrumbs.cjs.entry.js +1 -1
  13. package/dist/cjs/nv-button.cjs.entry.js +1 -1
  14. package/dist/cjs/nv-buttongroup.cjs.entry.js +1 -1
  15. package/dist/cjs/nv-calendar.cjs.entry.js +1 -1
  16. package/dist/cjs/nv-col.cjs.entry.js +1 -1
  17. package/dist/cjs/nv-datagrid.cjs.entry.js +1 -1
  18. package/dist/cjs/nv-datagridcolumn.cjs.entry.js +1 -1
  19. package/dist/cjs/nv-datetest.cjs.entry.js +66 -0
  20. package/dist/cjs/nv-datetimetest.cjs.entry.js +54 -0
  21. package/dist/cjs/nv-dialog.cjs.entry.js +16 -3
  22. package/dist/cjs/nv-dialogfooter_2.cjs.entry.js +3 -3
  23. package/dist/cjs/nv-drawer.cjs.entry.js +2 -2
  24. package/dist/cjs/nv-drawerfooter_2.cjs.entry.js +3 -3
  25. package/dist/cjs/nv-fieldcheckbox.cjs.entry.js +5 -5
  26. package/dist/cjs/nv-fielddate.cjs.entry.js +7 -7
  27. package/dist/cjs/nv-fielddaterange.cjs.entry.js +7 -7
  28. package/dist/cjs/nv-fielddropdown.cjs.entry.js +5 -5
  29. package/dist/cjs/nv-fielddropdownitem.cjs.entry.js +2 -2
  30. package/dist/cjs/nv-fieldmultiselect.cjs.entry.js +1 -1
  31. package/dist/cjs/nv-fieldnumber.cjs.entry.js +5 -5
  32. package/dist/cjs/nv-fieldpassword.cjs.entry.js +5 -5
  33. package/dist/cjs/nv-fieldradio.cjs.entry.js +4 -4
  34. package/dist/cjs/nv-fieldselect.cjs.entry.js +6 -6
  35. package/dist/cjs/nv-fieldslider.cjs.entry.js +4 -4
  36. package/dist/cjs/nv-fieldtext.cjs.entry.js +5 -5
  37. package/dist/cjs/nv-fieldtextarea.cjs.entry.js +4 -4
  38. package/dist/cjs/nv-fieldtime.cjs.entry.js +4 -4
  39. package/dist/cjs/nv-icon.cjs.entry.js +3 -3
  40. package/dist/cjs/nv-iconbutton_2.cjs.entry.js +3 -3
  41. package/dist/cjs/nv-menu.cjs.entry.js +2 -2
  42. package/dist/cjs/nv-menuitem.cjs.entry.js +2 -2
  43. package/dist/cjs/nv-notification-bullet.cjs.entry.js +1 -1
  44. package/dist/cjs/nv-notification.cjs.entry.js +2 -2
  45. package/dist/cjs/nv-notificationcontainer.cjs.entry.js +2 -14
  46. package/dist/cjs/nv-pagination-nav.cjs.entry.js +198 -0
  47. package/dist/cjs/nv-paginationtable.cjs.entry.js +2 -2
  48. package/dist/cjs/nv-popover.cjs.entry.js +2 -2
  49. package/dist/cjs/nv-row.cjs.entry.js +2 -2
  50. package/dist/cjs/nv-sidebar.cjs.entry.js +2 -2
  51. package/dist/cjs/nv-sidebarcontent.cjs.entry.js +2 -2
  52. package/dist/cjs/nv-sidebardivider.cjs.entry.js +2 -2
  53. package/dist/cjs/nv-sidebarfooter.cjs.entry.js +2 -2
  54. package/dist/cjs/nv-sidebargroup.cjs.entry.js +2 -2
  55. package/dist/cjs/nv-sidebarheader.cjs.entry.js +2 -2
  56. package/dist/cjs/nv-sidebarlogo.cjs.entry.js +2 -2
  57. package/dist/cjs/nv-sidebarnavitem.cjs.entry.js +12 -5
  58. package/dist/cjs/nv-sidebarnavsubitem.cjs.entry.js +2 -2
  59. package/dist/cjs/nv-split.cjs.entry.js +2 -2
  60. package/dist/cjs/nv-stack.cjs.entry.js +2 -2
  61. package/dist/cjs/nv-table.cjs.entry.js +2 -2
  62. package/dist/cjs/nv-tableheader.cjs.entry.js +2 -2
  63. package/dist/cjs/nv-timetest.cjs.entry.js +72 -0
  64. package/dist/cjs/nv-toggle.cjs.entry.js +3 -3
  65. package/dist/cjs/nv-togglebutton.cjs.entry.js +2 -2
  66. package/dist/cjs/nv-togglebuttongroup.cjs.entry.js +2 -2
  67. package/dist/cjs/nv-tooltip.cjs.entry.js +9 -4
  68. package/dist/collection/collection-manifest.json +4 -0
  69. package/dist/collection/components/nv-accordion/nv-accordion.docs.js +1 -0
  70. package/dist/collection/components/nv-accordion-item/nv-accordion-item.docs.js +69 -1
  71. package/dist/collection/components/nv-alert/nv-alert.docs.js +1 -0
  72. package/dist/collection/components/nv-avatar/nv-avatar.docs.js +1 -0
  73. package/dist/collection/components/nv-badge/nv-badge.docs.js +1 -0
  74. package/dist/collection/components/nv-breadcrumb/nv-breadcrumb.docs.js +36 -1
  75. package/dist/collection/components/nv-breadcrumbs/nv-breadcrumbs.docs.js +1 -0
  76. package/dist/collection/components/nv-button/nv-button.docs.js +1 -0
  77. package/dist/collection/components/nv-buttongroup/nv-buttongroup.docs.js +1 -0
  78. package/dist/collection/components/nv-calendar/nv-calendar.docs.js +1 -0
  79. package/dist/collection/components/nv-col/nv-col.docs.js +1 -0
  80. package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js +1 -0
  81. package/dist/collection/components/nv-datagridcolumn/nv-datagridcolumn.docs.js +25 -1
  82. package/dist/collection/components/nv-datetest/nv-datetest.css +15 -0
  83. package/dist/collection/components/nv-datetest/nv-datetest.docs.js +12 -0
  84. package/dist/collection/components/nv-datetest/nv-datetest.js +242 -0
  85. package/dist/collection/components/nv-datetimetest/nv-datetimetest.css +15 -0
  86. package/dist/collection/components/nv-datetimetest/nv-datetimetest.docs.js +5 -0
  87. package/dist/collection/components/nv-datetimetest/nv-datetimetest.js +197 -0
  88. package/dist/collection/components/nv-dialog/nv-dialog.docs.js +1 -0
  89. package/dist/collection/components/nv-dialog/nv-dialog.js +15 -2
  90. package/dist/collection/components/nv-dialogfooter/nv-dialogfooter.docs.js +9 -1
  91. package/dist/collection/components/nv-dialogfooter/nv-dialogfooter.js +1 -1
  92. package/dist/collection/components/nv-dialogheader/nv-dialogheader.docs.js +9 -1
  93. package/dist/collection/components/nv-dialogheader/nv-dialogheader.js +1 -1
  94. package/dist/collection/components/nv-drawer/nv-drawer.docs.js +1 -0
  95. package/dist/collection/components/nv-drawer/nv-drawer.js +1 -1
  96. package/dist/collection/components/nv-drawerfooter/nv-drawerfooter.docs.js +9 -1
  97. package/dist/collection/components/nv-drawerfooter/nv-drawerfooter.js +1 -1
  98. package/dist/collection/components/nv-drawerheader/nv-drawerheader.docs.js +9 -1
  99. package/dist/collection/components/nv-drawerheader/nv-drawerheader.js +1 -1
  100. package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.docs.js +1 -0
  101. package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js +4 -4
  102. package/dist/collection/components/nv-fielddate/nv-fielddate.docs.js +1 -0
  103. package/dist/collection/components/nv-fielddate/nv-fielddate.js +6 -6
  104. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.docs.js +1 -0
  105. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js +6 -6
  106. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js +1 -0
  107. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js +4 -4
  108. package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.docs.js +54 -1
  109. package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.js +1 -1
  110. package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.docs.js +42 -1
  111. package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.js +1 -1
  112. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js +1 -0
  113. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.docs.js +1 -0
  114. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js +4 -4
  115. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.docs.js +1 -0
  116. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js +4 -4
  117. package/dist/collection/components/nv-fieldradio/nv-fieldradio.docs.js +1 -0
  118. package/dist/collection/components/nv-fieldradio/nv-fieldradio.js +3 -3
  119. package/dist/collection/components/nv-fieldselect/nv-fieldselect.docs.js +1 -0
  120. package/dist/collection/components/nv-fieldselect/nv-fieldselect.js +5 -5
  121. package/dist/collection/components/nv-fieldslider/nv-fieldslider.docs.js +1 -0
  122. package/dist/collection/components/nv-fieldslider/nv-fieldslider.js +3 -3
  123. package/dist/collection/components/nv-fieldtext/nv-fieldtext.docs.js +1 -0
  124. package/dist/collection/components/nv-fieldtext/nv-fieldtext.js +4 -4
  125. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.docs.js +1 -0
  126. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js +3 -3
  127. package/dist/collection/components/nv-fieldtime/nv-fieldtime.docs.js +1 -0
  128. package/dist/collection/components/nv-fieldtime/nv-fieldtime.js +3 -3
  129. package/dist/collection/components/nv-icon/nv-icon.docs.js +1 -0
  130. package/dist/collection/components/nv-icon/nv-icon.js +1 -1
  131. package/dist/collection/components/nv-icon/nv-icons.js +4 -0
  132. package/dist/collection/components/nv-iconbutton/nv-iconbutton.docs.js +1 -0
  133. package/dist/collection/components/nv-iconbutton/nv-iconbutton.js +1 -1
  134. package/dist/collection/components/nv-loader/nv-loader.docs.js +1 -0
  135. package/dist/collection/components/nv-loader/nv-loader.js +1 -1
  136. package/dist/collection/components/nv-menu/nv-menu.docs.js +1 -0
  137. package/dist/collection/components/nv-menu/nv-menu.js +1 -1
  138. package/dist/collection/components/nv-menuitem/nv-menuitem.docs.js +20 -1
  139. package/dist/collection/components/nv-menuitem/nv-menuitem.js +2 -2
  140. package/dist/collection/components/nv-notification/nv-notification.docs.js +1 -0
  141. package/dist/collection/components/nv-notification/nv-notification.js +1 -1
  142. package/dist/collection/components/nv-notification-bullet/nv-notification-bullet.docs.js +1 -0
  143. package/dist/collection/components/nv-notificationcontainer/nv-notificationcontainer.docs.js +24 -1
  144. package/dist/collection/components/nv-notificationcontainer/nv-notificationcontainer.js +1 -15
  145. package/dist/collection/components/nv-pagination-nav/nv-pagination-nav.css +37 -0
  146. package/dist/collection/components/nv-pagination-nav/nv-pagination-nav.docs.js +278 -0
  147. package/dist/collection/components/nv-pagination-nav/nv-pagination-nav.js +359 -0
  148. package/dist/collection/components/nv-pagination-nav/nv-pagination-nav.utils.js +70 -0
  149. package/dist/collection/components/nv-pagination-nav/test/nv-pagination-nav.utils.test.js +66 -0
  150. package/dist/collection/components/nv-paginationtable/nv-paginationtable.docs.js +1 -0
  151. package/dist/collection/components/nv-paginationtable/nv-paginationtable.js +1 -1
  152. package/dist/collection/components/nv-popover/nv-popover.docs.js +1 -0
  153. package/dist/collection/components/nv-popover/nv-popover.js +1 -1
  154. package/dist/collection/components/nv-row/nv-row.docs.js +1 -0
  155. package/dist/collection/components/nv-row/nv-row.js +1 -1
  156. package/dist/collection/components/nv-sidebar/nv-sidebar.docs.js +1 -0
  157. package/dist/collection/components/nv-sidebar/nv-sidebar.js +1 -1
  158. package/dist/collection/components/nv-sidebarcontent/nv-sidebarcontent.docs.js +14 -1
  159. package/dist/collection/components/nv-sidebarcontent/nv-sidebarcontent.js +1 -1
  160. package/dist/collection/components/nv-sidebardivider/nv-sidebardivider.docs.js +15 -1
  161. package/dist/collection/components/nv-sidebardivider/nv-sidebardivider.js +1 -1
  162. package/dist/collection/components/nv-sidebarfooter/nv-sidebarfooter.docs.js +9 -1
  163. package/dist/collection/components/nv-sidebarfooter/nv-sidebarfooter.js +1 -1
  164. package/dist/collection/components/nv-sidebargroup/nv-sidebargroup.docs.js +15 -1
  165. package/dist/collection/components/nv-sidebargroup/nv-sidebargroup.js +1 -1
  166. package/dist/collection/components/nv-sidebarheader/nv-sidebarheader.docs.js +9 -1
  167. package/dist/collection/components/nv-sidebarheader/nv-sidebarheader.js +1 -1
  168. package/dist/collection/components/nv-sidebarlogo/nv-sidebarlogo.docs.js +10 -1
  169. package/dist/collection/components/nv-sidebarlogo/nv-sidebarlogo.js +3 -1
  170. package/dist/collection/components/nv-sidebarnavitem/nv-sidebarnavitem.docs.js +16 -1
  171. package/dist/collection/components/nv-sidebarnavitem/nv-sidebarnavitem.js +12 -5
  172. package/dist/collection/components/nv-sidebarnavsubitem/nv-sidebarnavsubitem.docs.js +15 -1
  173. package/dist/collection/components/nv-sidebarnavsubitem/nv-sidebarnavsubitem.js +1 -1
  174. package/dist/collection/components/nv-split/nv-split.docs.js +1 -0
  175. package/dist/collection/components/nv-split/nv-split.js +1 -1
  176. package/dist/collection/components/nv-stack/nv-stack.docs.js +1 -0
  177. package/dist/collection/components/nv-stack/nv-stack.js +1 -1
  178. package/dist/collection/components/nv-table/nv-table.docs.js +1 -0
  179. package/dist/collection/components/nv-table/nv-table.js +1 -1
  180. package/dist/collection/components/nv-tableheader/nv-tableheader.docs.js +1 -0
  181. package/dist/collection/components/nv-tableheader/nv-tableheader.js +1 -1
  182. package/dist/collection/components/nv-timetest/nv-timetest.css +15 -0
  183. package/dist/collection/components/nv-timetest/nv-timetest.docs.js +5 -0
  184. package/dist/collection/components/nv-timetest/nv-timetest.js +248 -0
  185. package/dist/collection/components/nv-toggle/nv-toggle.docs.js +1 -0
  186. package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
  187. package/dist/collection/components/nv-togglebutton/nv-togglebutton.docs.js +48 -1
  188. package/dist/collection/components/nv-togglebutton/nv-togglebutton.js +1 -1
  189. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.docs.js +1 -0
  190. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.js +1 -1
  191. package/dist/collection/components/nv-tooltip/nv-tooltip.docs.js +1 -0
  192. package/dist/collection/components/nv-tooltip/nv-tooltip.js +8 -3
  193. package/dist/collection/index.js +3 -0
  194. package/dist/collection/interfaces/dates.js +1 -0
  195. package/dist/collection/utils/nova-datetime.js +144 -0
  196. package/dist/collection/utils/test/nova-datetime.test.js +230 -0
  197. package/dist/components/index.js +1 -1
  198. package/dist/components/nv-accordion-item.js +1 -1
  199. package/dist/components/nv-accordion.js +1 -1
  200. package/dist/components/nv-alert.js +1 -1
  201. package/dist/components/nv-avatar.js +1 -1
  202. package/dist/components/nv-badge.js +1 -1
  203. package/dist/components/nv-breadcrumb.js +1 -1
  204. package/dist/components/nv-breadcrumbs.js +1 -1
  205. package/dist/components/nv-button.js +1 -1
  206. package/dist/components/nv-buttongroup.js +1 -1
  207. package/dist/components/nv-calendar.js +1 -1
  208. package/dist/components/nv-col.js +1 -1
  209. package/dist/components/nv-datagrid.js +1 -1
  210. package/dist/components/nv-datagridcolumn.js +1 -1
  211. package/dist/components/nv-datetest.d.ts +11 -0
  212. package/dist/components/nv-datetest.js +1 -0
  213. package/dist/components/nv-datetimetest.d.ts +11 -0
  214. package/dist/components/nv-datetimetest.js +1 -0
  215. package/dist/components/nv-dialog.js +1 -1
  216. package/dist/components/nv-dialogfooter.js +1 -1
  217. package/dist/components/nv-dialogheader.js +1 -1
  218. package/dist/components/nv-drawer.js +1 -1
  219. package/dist/components/nv-drawerfooter.js +1 -1
  220. package/dist/components/nv-drawerheader.js +1 -1
  221. package/dist/components/nv-fieldcheckbox.js +1 -1
  222. package/dist/components/nv-fielddate.js +1 -1
  223. package/dist/components/nv-fielddaterange.js +1 -1
  224. package/dist/components/nv-fielddropdown.js +1 -1
  225. package/dist/components/nv-fielddropdownitem.js +1 -1
  226. package/dist/components/nv-fielddropdownitemcheck.js +1 -1
  227. package/dist/components/nv-fieldmultiselect.js +1 -1
  228. package/dist/components/nv-fieldnumber.js +1 -1
  229. package/dist/components/nv-fieldpassword.js +1 -1
  230. package/dist/components/nv-fieldradio.js +1 -1
  231. package/dist/components/nv-fieldselect.js +1 -1
  232. package/dist/components/nv-fieldslider.js +1 -1
  233. package/dist/components/nv-fieldtext.js +1 -1
  234. package/dist/components/nv-fieldtextarea.js +1 -1
  235. package/dist/components/nv-fieldtime.js +1 -1
  236. package/dist/components/nv-icon.js +1 -1
  237. package/dist/components/nv-iconbutton.js +1 -1
  238. package/dist/components/nv-loader.js +1 -1
  239. package/dist/components/nv-menu.js +1 -1
  240. package/dist/components/nv-menuitem.js +1 -1
  241. package/dist/components/nv-notification-bullet.js +1 -1
  242. package/dist/components/nv-notification.js +1 -1
  243. package/dist/components/nv-notificationcontainer.js +1 -1
  244. package/dist/components/nv-pagination-nav.d.ts +11 -0
  245. package/dist/components/nv-pagination-nav.js +1 -0
  246. package/dist/components/nv-paginationtable.js +1 -1
  247. package/dist/components/nv-popover.js +1 -1
  248. package/dist/components/nv-row.js +1 -1
  249. package/dist/components/nv-sidebar.js +1 -1
  250. package/dist/components/nv-sidebarcontent.js +1 -1
  251. package/dist/components/nv-sidebardivider.js +1 -1
  252. package/dist/components/nv-sidebarfooter.js +1 -1
  253. package/dist/components/nv-sidebargroup.js +1 -1
  254. package/dist/components/nv-sidebarheader.js +1 -1
  255. package/dist/components/nv-sidebarlogo.js +1 -1
  256. package/dist/components/nv-sidebarnavitem.js +1 -1
  257. package/dist/components/nv-sidebarnavsubitem.js +1 -1
  258. package/dist/components/nv-split.js +1 -1
  259. package/dist/components/nv-stack.js +1 -1
  260. package/dist/components/nv-table.js +1 -1
  261. package/dist/components/nv-tableheader.js +1 -1
  262. package/dist/components/nv-timetest.d.ts +11 -0
  263. package/dist/components/nv-timetest.js +1 -0
  264. package/dist/components/nv-toggle.js +1 -1
  265. package/dist/components/nv-togglebutton.js +1 -1
  266. package/dist/components/nv-togglebuttongroup.js +1 -1
  267. package/dist/components/nv-tooltip.js +1 -1
  268. package/dist/components/{p-iXsbKJzR.js → p-6nAIGZFL.js} +1 -1
  269. package/dist/components/{p-yHGZRC6Q.js → p-BwYt1BAb.js} +1 -1
  270. package/dist/components/{p-C9p4yTS2.js → p-C5J7jtrC.js} +1 -1
  271. package/dist/components/{p-CEI7jWvn.js → p-CAGzfU3O.js} +1 -1
  272. package/dist/components/{p-B5KLppep.js → p-CKFXHAaU.js} +1 -1
  273. package/dist/components/{p-DHNSuxz-.js → p-CLzCfsnq.js} +1 -1
  274. package/dist/components/{p-Bh6WGsHA.js → p-CnkB4kvn.js} +1 -1
  275. package/dist/components/{p-DDqZBSGn.js → p-Co8IghI-.js} +1 -1
  276. package/dist/components/p-CrRawrjU.js +1 -0
  277. package/dist/components/p-CyL2J6O4.js +74 -0
  278. package/dist/components/{p-Ce1IBFTa.js → p-D2C_Qr5O.js} +1 -1
  279. package/dist/components/{p-CAKTe96z.js → p-DE792Sds.js} +1 -1
  280. package/dist/components/{p-RUeDcouW.js → p-DGj-fiRX.js} +1 -1
  281. package/dist/components/{p-C2J7j_fw.js → p-DUaenjr8.js} +1 -1
  282. package/dist/components/{p-laRga5dw.js → p-DVFofrTe.js} +1 -1
  283. package/dist/components/{p-BfaMgLx7.js → p-DlOgBZa8.js} +2 -2
  284. package/dist/components/{p-BAlaMmS4.js → p-Du3Fh0jQ.js} +1 -1
  285. package/dist/components/p-DwtLxfU5.js +1 -0
  286. package/dist/components/{p-DhDxhFz-.js → p-VXpV-BUK.js} +1 -1
  287. package/dist/components/{p-CZcMM7Lh.js → p-f8OUzde-.js} +1 -1
  288. package/dist/components/{p-DqU-wS_x.js → p-h3cPA0Cx.js} +1 -1
  289. package/dist/components/p-nzxGC8BS.js +1 -0
  290. package/dist/components/p-qkNH2RHl.js +1 -0
  291. package/dist/components/{p-nmQOuX7R.js → p-xrXEz2WP.js} +1 -1
  292. package/dist/esm/{index-S-IZ4AN_.js → index-BCjiE1MF.js} +17 -1
  293. package/dist/esm/index.js +5 -0
  294. package/dist/esm/loader.js +3 -3
  295. package/dist/esm/native.js +3 -3
  296. package/dist/esm/nova-datetime-CyL2J6O4.js +10636 -0
  297. package/dist/esm/nv-accordion-item.entry.js +1 -1
  298. package/dist/esm/nv-accordion.entry.js +1 -1
  299. package/dist/esm/nv-alert.entry.js +1 -1
  300. package/dist/esm/nv-avatar.entry.js +1 -1
  301. package/dist/esm/nv-badge_2.entry.js +2 -2
  302. package/dist/esm/nv-breadcrumb.entry.js +1 -1
  303. package/dist/esm/nv-breadcrumbs.entry.js +1 -1
  304. package/dist/esm/nv-button.entry.js +1 -1
  305. package/dist/esm/nv-buttongroup.entry.js +1 -1
  306. package/dist/esm/nv-calendar.entry.js +1 -1
  307. package/dist/esm/nv-col.entry.js +1 -1
  308. package/dist/esm/nv-datagrid.entry.js +1 -1
  309. package/dist/esm/nv-datagridcolumn.entry.js +1 -1
  310. package/dist/esm/nv-datetest.entry.js +64 -0
  311. package/dist/esm/nv-datetimetest.entry.js +52 -0
  312. package/dist/esm/nv-dialog.entry.js +16 -3
  313. package/dist/esm/nv-dialogfooter_2.entry.js +3 -3
  314. package/dist/esm/nv-drawer.entry.js +2 -2
  315. package/dist/esm/nv-drawerfooter_2.entry.js +3 -3
  316. package/dist/esm/nv-fieldcheckbox.entry.js +5 -5
  317. package/dist/esm/nv-fielddate.entry.js +7 -7
  318. package/dist/esm/nv-fielddaterange.entry.js +7 -7
  319. package/dist/esm/nv-fielddropdown.entry.js +5 -5
  320. package/dist/esm/nv-fielddropdownitem.entry.js +2 -2
  321. package/dist/esm/nv-fieldmultiselect.entry.js +1 -1
  322. package/dist/esm/nv-fieldnumber.entry.js +5 -5
  323. package/dist/esm/nv-fieldpassword.entry.js +5 -5
  324. package/dist/esm/nv-fieldradio.entry.js +4 -4
  325. package/dist/esm/nv-fieldselect.entry.js +6 -6
  326. package/dist/esm/nv-fieldslider.entry.js +4 -4
  327. package/dist/esm/nv-fieldtext.entry.js +5 -5
  328. package/dist/esm/nv-fieldtextarea.entry.js +4 -4
  329. package/dist/esm/nv-fieldtime.entry.js +4 -4
  330. package/dist/esm/nv-icon.entry.js +3 -3
  331. package/dist/esm/nv-iconbutton_2.entry.js +3 -3
  332. package/dist/esm/nv-menu.entry.js +2 -2
  333. package/dist/esm/nv-menuitem.entry.js +2 -2
  334. package/dist/esm/nv-notification-bullet.entry.js +1 -1
  335. package/dist/esm/nv-notification.entry.js +2 -2
  336. package/dist/esm/nv-notificationcontainer.entry.js +2 -14
  337. package/dist/esm/nv-pagination-nav.entry.js +196 -0
  338. package/dist/esm/nv-paginationtable.entry.js +2 -2
  339. package/dist/esm/nv-popover.entry.js +2 -2
  340. package/dist/esm/nv-row.entry.js +2 -2
  341. package/dist/esm/nv-sidebar.entry.js +2 -2
  342. package/dist/esm/nv-sidebarcontent.entry.js +2 -2
  343. package/dist/esm/nv-sidebardivider.entry.js +2 -2
  344. package/dist/esm/nv-sidebarfooter.entry.js +2 -2
  345. package/dist/esm/nv-sidebargroup.entry.js +2 -2
  346. package/dist/esm/nv-sidebarheader.entry.js +2 -2
  347. package/dist/esm/nv-sidebarlogo.entry.js +2 -2
  348. package/dist/esm/nv-sidebarnavitem.entry.js +12 -5
  349. package/dist/esm/nv-sidebarnavsubitem.entry.js +2 -2
  350. package/dist/esm/nv-split.entry.js +2 -2
  351. package/dist/esm/nv-stack.entry.js +2 -2
  352. package/dist/esm/nv-table.entry.js +2 -2
  353. package/dist/esm/nv-tableheader.entry.js +2 -2
  354. package/dist/esm/nv-timetest.entry.js +70 -0
  355. package/dist/esm/nv-toggle.entry.js +3 -3
  356. package/dist/esm/nv-togglebutton.entry.js +2 -2
  357. package/dist/esm/nv-togglebuttongroup.entry.js +2 -2
  358. package/dist/esm/nv-tooltip.entry.js +9 -4
  359. package/dist/lib/generators/docs-blazor.js +4 -1
  360. package/dist/lib/utils/parseToCSharpTypes.js +114 -18
  361. package/dist/lib/utils/test/parseToCSharpTypes.test.js +95 -1
  362. package/dist/native/index.esm.js +1 -1
  363. package/dist/native/native.css +1 -1
  364. package/dist/native/native.esm.js +1 -1
  365. package/dist/native/{p-a8bc3b92.entry.js → p-05f7bad5.entry.js} +1 -1
  366. package/dist/native/{p-043d500e.entry.js → p-083b39c5.entry.js} +1 -1
  367. package/dist/native/{p-3fb1a188.entry.js → p-0bb64497.entry.js} +1 -1
  368. package/dist/native/{p-1bf1a213.entry.js → p-0fe84123.entry.js} +1 -1
  369. package/dist/native/p-1029a266.entry.js +1 -0
  370. package/dist/native/p-12a8443b.entry.js +1 -0
  371. package/dist/native/{p-bdaab534.entry.js → p-148c1d3e.entry.js} +1 -1
  372. package/dist/native/{p-79d8c26b.entry.js → p-1d7a27bb.entry.js} +1 -1
  373. package/dist/native/{p-11eb959b.entry.js → p-1e03fc3c.entry.js} +1 -1
  374. package/dist/native/{p-f22d2ad9.entry.js → p-213c5836.entry.js} +1 -1
  375. package/dist/native/{p-d46ea49a.entry.js → p-25ef7329.entry.js} +1 -1
  376. package/dist/native/p-291b297d.entry.js +1 -0
  377. package/dist/native/{p-e937d495.entry.js → p-2af6d988.entry.js} +1 -1
  378. package/dist/native/{p-89f7d483.entry.js → p-343c04db.entry.js} +1 -1
  379. package/dist/native/{p-7a8e2ef3.entry.js → p-37c41059.entry.js} +1 -1
  380. package/dist/native/{p-a92e2ad8.entry.js → p-3c4114b8.entry.js} +1 -1
  381. package/dist/native/{p-31301f1e.entry.js → p-46267895.entry.js} +1 -1
  382. package/dist/native/p-493c1bb5.entry.js +1 -0
  383. package/dist/native/{p-70abbe4f.entry.js → p-4ac8181c.entry.js} +1 -1
  384. package/dist/native/{p-04956305.entry.js → p-4bf96114.entry.js} +1 -1
  385. package/dist/native/p-544b34d4.entry.js +1 -0
  386. package/dist/native/{p-0ec34d19.entry.js → p-58966e0f.entry.js} +1 -1
  387. package/dist/native/{p-e1021e2c.entry.js → p-5c003e50.entry.js} +1 -1
  388. package/dist/native/{p-1dd3da3b.entry.js → p-5ce3d30b.entry.js} +1 -1
  389. package/dist/native/p-5ea697a7.entry.js +1 -0
  390. package/dist/native/{p-3a04a563.entry.js → p-5ef0ed10.entry.js} +1 -1
  391. package/dist/native/{p-0e8b544b.entry.js → p-63f2f87f.entry.js} +1 -1
  392. package/dist/native/{p-6a9363a6.entry.js → p-644ecff8.entry.js} +1 -1
  393. package/dist/native/{p-5cbf5973.entry.js → p-67e0680e.entry.js} +1 -1
  394. package/dist/native/{p-bd143e7b.entry.js → p-6d8d2088.entry.js} +1 -1
  395. package/dist/native/{p-a9a20f37.entry.js → p-72d8cb56.entry.js} +1 -1
  396. package/dist/native/p-75a2a2ac.entry.js +1 -0
  397. package/dist/native/{p-bdbc92d9.entry.js → p-767ee0fc.entry.js} +1 -1
  398. package/dist/native/{p-8ce17efd.entry.js → p-7aa4605d.entry.js} +1 -1
  399. package/dist/native/{p-0819a7b1.entry.js → p-7c00f6da.entry.js} +1 -1
  400. package/dist/native/p-7d164a7a.entry.js +1 -0
  401. package/dist/native/{p-06a17aba.entry.js → p-7ec28d5d.entry.js} +1 -1
  402. package/dist/native/{p-dc0d1690.entry.js → p-89348af5.entry.js} +1 -1
  403. package/dist/native/p-8e1bcadc.entry.js +1 -0
  404. package/dist/native/{p-b0d97496.entry.js → p-90b8b889.entry.js} +1 -1
  405. package/dist/native/{p-945ca1db.entry.js → p-95a9d385.entry.js} +1 -1
  406. package/dist/native/{p-a9a07a8d.entry.js → p-9709c7d5.entry.js} +1 -1
  407. package/dist/native/p-9fc95cf3.entry.js +1 -0
  408. package/dist/native/{p-S-IZ4AN_.js → p-BCjiE1MF.js} +1 -1
  409. package/dist/native/p-CyL2J6O4.js +74 -0
  410. package/dist/native/{p-aa232a20.entry.js → p-a16f8a14.entry.js} +1 -1
  411. package/dist/native/p-ac765e6a.entry.js +1 -0
  412. package/dist/native/p-b3477504.entry.js +1 -0
  413. package/dist/native/{p-c3ea1eca.entry.js → p-c2c826a4.entry.js} +1 -1
  414. package/dist/native/p-c56ffa82.entry.js +1 -0
  415. package/dist/native/{p-6b655545.entry.js → p-c5d97054.entry.js} +1 -1
  416. package/dist/native/{p-48e7b457.entry.js → p-cfa0eb58.entry.js} +1 -1
  417. package/dist/native/p-d3e66306.entry.js +1 -0
  418. package/dist/native/p-d5f5a6e1.entry.js +1 -0
  419. package/dist/native/{p-702a6646.entry.js → p-d8120afd.entry.js} +1 -1
  420. package/dist/native/p-dc2ce8ee.entry.js +1 -0
  421. package/dist/native/{p-85c8be32.entry.js → p-e3fb16af.entry.js} +1 -1
  422. package/dist/native/{p-7c413f8b.entry.js → p-e46c35a0.entry.js} +1 -1
  423. package/dist/native/{p-e05b6008.entry.js → p-ec23ce93.entry.js} +1 -1
  424. package/dist/native/{p-bef3d325.entry.js → p-f7522dac.entry.js} +1 -1
  425. package/dist/native/{p-64104dbd.entry.js → p-f9612edf.entry.js} +1 -1
  426. package/dist/native/{p-fba55e2f.entry.js → p-fab2f2b3.entry.js} +1 -1
  427. package/dist/native/{p-2106dfbd.entry.js → p-fb34fc7d.entry.js} +1 -1
  428. package/dist/native/{p-98ea927d.entry.js → p-fd5e27ae.entry.js} +1 -1
  429. package/dist/types/components/nv-datetest/nv-datetest.d.ts +48 -0
  430. package/dist/types/components/nv-datetest/nv-datetest.docs.d.ts +4 -0
  431. package/dist/types/components/nv-datetimetest/nv-datetimetest.d.ts +44 -0
  432. package/dist/types/components/nv-datetimetest/nv-datetimetest.docs.d.ts +4 -0
  433. package/dist/types/components/nv-dialog/nv-dialog.d.ts +9 -0
  434. package/dist/types/components/nv-icon/nv-icons.d.ts +1 -1
  435. package/dist/types/components/nv-notificationcontainer/nv-notificationcontainer.d.ts +0 -6
  436. package/dist/types/components/nv-pagination-nav/nv-pagination-nav.d.ts +82 -0
  437. package/dist/types/components/nv-pagination-nav/nv-pagination-nav.docs.d.ts +4 -0
  438. package/dist/types/components/nv-pagination-nav/nv-pagination-nav.utils.d.ts +26 -0
  439. package/dist/types/components/nv-pagination-nav/test/nv-pagination-nav.utils.test.d.ts +1 -0
  440. package/dist/types/components/nv-sidebarlogo/nv-sidebarlogo.d.ts +2 -0
  441. package/dist/types/components/nv-timetest/nv-timetest.d.ts +48 -0
  442. package/dist/types/components/nv-timetest/nv-timetest.docs.d.ts +4 -0
  443. package/dist/types/components.d.ts +421 -15
  444. package/dist/types/index.d.ts +2 -0
  445. package/dist/types/interfaces/dates.d.ts +8 -0
  446. package/dist/types/nova-docs.d.ts +8 -0
  447. package/dist/types/utils/nova-datetime.d.ts +79 -0
  448. package/dist/types/utils/test/nova-datetime.test.d.ts +1 -0
  449. package/dist/vscode-data.json +107 -0
  450. package/hydrate/index.js +11096 -107
  451. package/hydrate/index.mjs +11096 -107
  452. package/package.json +18 -1
  453. package/dist/components/p-BPufjY85.js +0 -1
  454. package/dist/components/p-D15RdWEG.js +0 -1
  455. package/dist/components/p-FSPz8FER.js +0 -1
  456. package/dist/components/p-jZF_Ggmx.js +0 -1
  457. package/dist/native/p-0bfd188c.entry.js +0 -1
  458. package/dist/native/p-17f2525a.entry.js +0 -1
  459. package/dist/native/p-1a5db5e9.entry.js +0 -1
  460. package/dist/native/p-87a1b06c.entry.js +0 -1
  461. package/dist/native/p-8dadc0c9.entry.js +0 -1
  462. package/dist/native/p-97a5f8d5.entry.js +0 -1
  463. package/dist/native/p-ae4fc02a.entry.js +0 -1
  464. package/dist/native/p-c825c542.entry.js +0 -1
  465. package/dist/native/p-ce2c17dc.entry.js +0 -1
  466. package/dist/native/p-f2a32774.entry.js +0 -1
  467. package/dist/native/p-f5eff2b2.entry.js +0 -1
  468. package/dist/native/p-f64f1bea.entry.js +0 -1
@@ -0,0 +1,278 @@
1
+ import { h } from "@stencil/core";
2
+ import { nameof } from "../../utils/class.utils";
3
+ const NvPaginationNavDocs = {
4
+ component: 'nv-pagination-nav',
5
+ subcomponents: ['nv-button', 'nv-iconbutton', 'nv-icon'],
6
+ badge: 'beta',
7
+ stories: [
8
+ // Default
9
+ {
10
+ name: 'Default',
11
+ description: 'Basic pagination navigation with default settings. Shows a sliding window of page numbers with Previous/Next buttons. The component automatically handles button states and provides a clean, accessible navigation experience.',
12
+ args: {
13
+ currentPage: 1,
14
+ totalCount: 100,
15
+ pageSize: 10,
16
+ previousButtonLabel: 'Previous',
17
+ nextButtonLabel: 'Next',
18
+ },
19
+ template: h("nv-pagination-nav", { "data-storybook-args": true }),
20
+ },
21
+ // currentPage
22
+ {
23
+ name: nameof(x => x.currentPage),
24
+ description: 'The currently active page number (1-based index). The active page is visually highlighted with an active state. Use this prop to control which page is selected, typically bound to your application state.',
25
+ args: {
26
+ currentPage: 5,
27
+ totalCount: 100,
28
+ pageSize: 10,
29
+ },
30
+ template: h("nv-pagination-nav", { "data-storybook-args": true }),
31
+ },
32
+ // totalCount
33
+ {
34
+ name: nameof(x => x.totalCount),
35
+ description: 'Total number of items to paginate. Works with pageSize to calculate the total number of pages (totalCount / pageSize). In this example: 250 items ÷ 10 per page = 25 pages.',
36
+ args: {
37
+ currentPage: 1,
38
+ totalCount: 250,
39
+ pageSize: 10,
40
+ },
41
+ template: h("nv-pagination-nav", { "data-storybook-args": true }),
42
+ },
43
+ // pageSize
44
+ {
45
+ name: nameof(x => x.pageSize),
46
+ description: 'Number of items per page. Works with totalCount to determine total pages. Smaller values create more pages. In this example: 100 items ÷ 25 per page = 4 pages.',
47
+ args: {
48
+ currentPage: 1,
49
+ totalCount: 100,
50
+ pageSize: 25,
51
+ },
52
+ template: h("nv-pagination-nav", { "data-storybook-args": true }),
53
+ },
54
+ // previousButtonLabel
55
+ {
56
+ name: nameof(x => x.previousButtonLabel),
57
+ description: 'Customize the label for the previous navigation button. Use this for internationalization (i18n) to display text in different languages. Default is "Previous".',
58
+ args: {
59
+ currentPage: 5,
60
+ totalCount: 100,
61
+ pageSize: 10,
62
+ previousButtonLabel: 'Précédent',
63
+ nextButtonLabel: 'Suivant',
64
+ },
65
+ template: h("nv-pagination-nav", { "data-storybook-args": true }),
66
+ },
67
+ // nextButtonLabel
68
+ {
69
+ name: nameof(x => x.nextButtonLabel),
70
+ description: 'Customize the label for the next navigation button. Use this for internationalization (i18n) to display text in different languages. Default is "Next".',
71
+ args: {
72
+ currentPage: 5,
73
+ totalCount: 100,
74
+ pageSize: 10,
75
+ previousButtonLabel: 'Zurück',
76
+ nextButtonLabel: 'Weiter',
77
+ },
78
+ template: h("nv-pagination-nav", { "data-storybook-args": true }),
79
+ },
80
+ // numStartZoneButtons
81
+ {
82
+ name: nameof(x => x.numStartZoneButtons),
83
+ description: 'Number of page buttons to show at the start of the pagination. Combined with numEndZoneButtons, this determines the total number of visible page buttons (default: 2). Increasing this value shows more pages at the beginning.',
84
+ args: {
85
+ currentPage: 10,
86
+ totalCount: 200,
87
+ pageSize: 10,
88
+ numStartZoneButtons: 3,
89
+ numEndZoneButtons: 2,
90
+ numMiddleButtons: 3,
91
+ },
92
+ template: h("nv-pagination-nav", { "data-storybook-args": true }),
93
+ },
94
+ // numEndZoneButtons
95
+ {
96
+ name: nameof(x => x.numEndZoneButtons),
97
+ description: 'Number of page buttons to show at the end of the pagination. Combined with numStartZoneButtons, this determines the total number of visible page buttons (default: 2). Increasing this value shows more pages at the end.',
98
+ args: {
99
+ currentPage: 10,
100
+ totalCount: 200,
101
+ pageSize: 10,
102
+ numStartZoneButtons: 2,
103
+ numEndZoneButtons: 3,
104
+ numMiddleButtons: 3,
105
+ },
106
+ template: h("nv-pagination-nav", { "data-storybook-args": true }),
107
+ },
108
+ // numMiddleButtons
109
+ {
110
+ name: nameof(x => x.numMiddleButtons),
111
+ description: 'Number of page buttons to show in the middle zone around the current page (only used when showMiddleZone is true)',
112
+ args: {
113
+ currentPage: 10,
114
+ totalCount: 200,
115
+ pageSize: 10,
116
+ numStartZoneButtons: 2,
117
+ numEndZoneButtons: 2,
118
+ numMiddleButtons: 5,
119
+ showMiddleZone: true,
120
+ },
121
+ template: h("nv-pagination-nav", { "data-storybook-args": true }),
122
+ },
123
+ // isOnlyIcon
124
+ {
125
+ name: nameof(x => x.isOnlyIcon),
126
+ description: 'Display Previous/Next navigation buttons as icon buttons for a more compact layout. Page number buttons always use regular buttons.',
127
+ args: {
128
+ currentPage: 5,
129
+ totalCount: 100,
130
+ pageSize: 10,
131
+ isOnlyIcon: true,
132
+ },
133
+ template: h("nv-pagination-nav", { "data-storybook-args": true }),
134
+ },
135
+ // showMiddleZone
136
+ {
137
+ name: nameof(x => x.showMiddleZone),
138
+ description: 'When true, shows a middle zone with the current page and two ellipses. When false (default), uses a sliding window that keeps a constant number of buttons while ensuring the current page is always visible.',
139
+ args: {
140
+ currentPage: 15,
141
+ totalCount: 500,
142
+ pageSize: 10,
143
+ showMiddleZone: true,
144
+ numMiddleButtons: 3,
145
+ },
146
+ template: h("nv-pagination-nav", { "data-storybook-args": true }),
147
+ },
148
+ // SlidingWindow
149
+ {
150
+ name: 'SlidingWindow',
151
+ description: 'Default behavior with sliding window (showMiddleZone=false). The pagination window slides to keep the current page visible while maintaining a constant number of buttons.',
152
+ args: {
153
+ currentPage: 15,
154
+ totalCount: 500,
155
+ pageSize: 10,
156
+ showMiddleZone: false,
157
+ },
158
+ template: h("nv-pagination-nav", { "data-storybook-args": true }),
159
+ },
160
+ // ManyPages
161
+ {
162
+ name: 'ManyPages',
163
+ description: 'Pagination with many pages showing the sliding window behavior (default). The window slides to include the current page while keeping a constant number of buttons.',
164
+ args: {
165
+ currentPage: 15,
166
+ totalCount: 500,
167
+ pageSize: 10,
168
+ },
169
+ template: h("nv-pagination-nav", { "data-storybook-args": true }),
170
+ },
171
+ // FewPages
172
+ {
173
+ name: 'FewPages',
174
+ description: 'When the total number of pages is small (4 pages or fewer), all page numbers are displayed without ellipses. This provides direct access to all pages without any truncation.',
175
+ args: {
176
+ currentPage: 2,
177
+ totalCount: 35,
178
+ pageSize: 10,
179
+ },
180
+ template: h("nv-pagination-nav", { "data-storybook-args": true }),
181
+ },
182
+ // FirstPage
183
+ {
184
+ name: 'FirstPage',
185
+ description: 'Edge case demonstrating the first page state. The Previous button is automatically disabled to prevent navigation beyond the first page, providing a clear visual indicator that users are at the start.',
186
+ args: {
187
+ currentPage: 1,
188
+ totalCount: 100,
189
+ pageSize: 10,
190
+ },
191
+ template: h("nv-pagination-nav", { "data-storybook-args": true }),
192
+ },
193
+ // LastPage
194
+ {
195
+ name: 'LastPage',
196
+ description: 'Edge case demonstrating the last page state. The Next button is automatically disabled to prevent navigation beyond the last page, providing a clear visual indicator that users are at the end.',
197
+ args: {
198
+ currentPage: 10,
199
+ totalCount: 100,
200
+ pageSize: 10,
201
+ },
202
+ template: h("nv-pagination-nav", { "data-storybook-args": true }),
203
+ },
204
+ // SinglePage
205
+ {
206
+ name: 'SinglePage',
207
+ description: 'Edge case with only one page of data. Both Previous and Next buttons are disabled since there are no other pages to navigate to. This is common when filtering reduces results to a single page.',
208
+ args: {
209
+ currentPage: 1,
210
+ totalCount: 8,
211
+ pageSize: 10,
212
+ },
213
+ template: h("nv-pagination-nav", { "data-storybook-args": true }),
214
+ },
215
+ // CustomZones
216
+ {
217
+ name: 'CustomZones',
218
+ description: 'Advanced example with minimal zone configuration (1 start + 1 end button). This creates a very compact pagination display, showing only 2 page buttons at a time plus the current page when sliding. Useful for space-constrained layouts.',
219
+ args: {
220
+ currentPage: 12,
221
+ totalCount: 300,
222
+ pageSize: 10,
223
+ numStartZoneButtons: 1,
224
+ numEndZoneButtons: 1,
225
+ numMiddleButtons: 5,
226
+ },
227
+ template: h("nv-pagination-nav", { "data-storybook-args": true }),
228
+ },
229
+ // LargeDataset
230
+ {
231
+ name: 'LargeDataset',
232
+ description: 'Demonstrates pagination with a very large dataset (10,000 items across 100 pages). The sliding window behavior efficiently handles large page counts by showing only a small, constant number of page buttons while maintaining easy navigation.',
233
+ args: {
234
+ currentPage: 50,
235
+ totalCount: 10000,
236
+ pageSize: 100,
237
+ },
238
+ template: h("nv-pagination-nav", { "data-storybook-args": true }),
239
+ },
240
+ // SmallPageSize
241
+ {
242
+ name: 'SmallPageSize',
243
+ description: 'Shows how a smaller page size creates more pages from the same dataset. 100 items with 5 per page creates 20 pages instead of 10. Useful for scenarios where you want to display fewer items at once (mobile views, detailed cards, etc.).',
244
+ args: {
245
+ currentPage: 5,
246
+ totalCount: 100,
247
+ pageSize: 5,
248
+ },
249
+ template: h("nv-pagination-nav", { "data-storybook-args": true }),
250
+ },
251
+ // Internationalization
252
+ {
253
+ name: 'Internationalization',
254
+ description: 'Complete example showing how to localize the pagination component for different languages. Use previousButtonLabel and nextButtonLabel props to translate the navigation buttons. This example uses French labels.',
255
+ args: {
256
+ currentPage: 5,
257
+ totalCount: 100,
258
+ pageSize: 10,
259
+ previousButtonLabel: 'Précédent',
260
+ nextButtonLabel: 'Suivant',
261
+ },
262
+ template: h("nv-pagination-nav", { "data-storybook-args": true }),
263
+ },
264
+ // IconButtonMode
265
+ {
266
+ name: 'IconButtonMode',
267
+ description: 'Compact navigation with Previous/Next as icon buttons. Page numbers remain as regular buttons for readability.',
268
+ args: {
269
+ currentPage: 5,
270
+ totalCount: 100,
271
+ pageSize: 10,
272
+ isOnlyIcon: true,
273
+ },
274
+ template: h("nv-pagination-nav", { "data-storybook-args": true }),
275
+ },
276
+ ],
277
+ };
278
+ export default NvPaginationNavDocs;
@@ -0,0 +1,359 @@
1
+ import { Host, h, } from "@stencil/core";
2
+ import { calculatePaginationRange } from "./nv-pagination-nav.utils";
3
+ /**
4
+ * A pagination navigation component that displays page numbers with Previous/Next controls.
5
+ * Use the isOnlyIcon prop to display Previous/Next as icon buttons for compact layouts.
6
+ */
7
+ export class NvPaginationNav {
8
+ constructor() {
9
+ /****************************************************************************/
10
+ //#region PROPERTIES
11
+ /**
12
+ * Label for the previous button.
13
+ */
14
+ this.previousButtonLabel = 'Previous';
15
+ /**
16
+ * Label for the next button.
17
+ */
18
+ this.nextButtonLabel = 'Next';
19
+ /**
20
+ * Number of page buttons to show at the start of the pagination range.
21
+ */
22
+ this.numStartZoneButtons = 2;
23
+ /**
24
+ * Number of page buttons to show at the end of the pagination range.
25
+ */
26
+ this.numEndZoneButtons = 2;
27
+ /**
28
+ * Number of page buttons to show in the middle zone around the current page.
29
+ */
30
+ this.numMiddleButtons = 1;
31
+ /**
32
+ * Current page number (1-based index).
33
+ */
34
+ this.currentPage = 1;
35
+ /**
36
+ * Total number of items to paginate.
37
+ */
38
+ this.totalCount = 100;
39
+ /**
40
+ * Number of items per page.
41
+ */
42
+ this.pageSize = 10;
43
+ /**
44
+ * If true, the Previous/Next navigation buttons will be displayed as icon buttons.
45
+ * Page number buttons always use regular buttons.
46
+ */
47
+ this.isOnlyIcon = false;
48
+ /**
49
+ * If true, shows the middle zone with the current page when it's not in start/end zones.
50
+ * If false (default), only shows one ellipsis between start and end zones (simpler pagination).
51
+ */
52
+ this.showMiddleZone = false;
53
+ /**
54
+ * Handles page change events.
55
+ * @param {number} pageNumber The page number to navigate to.
56
+ */
57
+ this.handlePageChange = (pageNumber) => {
58
+ if (pageNumber < 1 ||
59
+ pageNumber > this.totalPages ||
60
+ pageNumber === this.currentPage) {
61
+ return;
62
+ }
63
+ this.currentPage = pageNumber;
64
+ };
65
+ }
66
+ //#endregion PROPERTIES
67
+ /****************************************************************************/
68
+ //#region METHODS
69
+ /**
70
+ * Calculates the total number of pages based on totalCount and pageSize.
71
+ * @returns {number} The total number of pages.
72
+ */
73
+ get totalPages() {
74
+ return Math.ceil(this.totalCount / this.pageSize);
75
+ }
76
+ //#endregion METHODS
77
+ /****************************************************************************/
78
+ //#region WATCHERS
79
+ /**
80
+ * Watches for changes to currentPage and emits the currentPageChanged event.
81
+ * @param {number} newValue The new current page value.
82
+ */
83
+ onCurrentPageChange(newValue) {
84
+ // Validate and constrain currentPage
85
+ const constrainedValue = Math.max(1, Math.min(newValue, this.totalPages));
86
+ if (constrainedValue !== newValue) {
87
+ this.currentPage = constrainedValue;
88
+ return;
89
+ }
90
+ this.currentPageChanged.emit(newValue);
91
+ }
92
+ //#endregion EVENTS
93
+ /****************************************************************************/
94
+ //#region RENDER
95
+ /**
96
+ * Renders a single page button.
97
+ * @param {number} pageNumber The page number to render.
98
+ * @returns {JSX.Element} The rendered page button element.
99
+ */
100
+ renderPageButton(pageNumber) {
101
+ const isCurrentPage = pageNumber === this.currentPage;
102
+ return (h("li", { key: pageNumber, "data-scope": "page-button" }, h("nv-button", { size: "md", emphasis: "lower", active: isCurrentPage, onClick: () => this.handlePageChange(pageNumber), "data-page": pageNumber, "data-current": isCurrentPage ? 'true' : undefined }, pageNumber)));
103
+ }
104
+ render() {
105
+ const isFirstPage = this.currentPage === 1;
106
+ const isLastPage = this.currentPage === this.totalPages;
107
+ return (h(Host, { key: 'b2255fce4e03cee8ff370086aac31df5c69d275d' }, h("nav", { key: 'a136b7193f9b00a68e6ee626802dee19fd762531', "data-scope": "pagination-nav", "aria-label": "Pagination navigation" }, this.isOnlyIcon ? (h("nv-iconbutton", { name: "chevron-left", size: "md", emphasis: "lower", disabled: isFirstPage, onClick: () => this.handlePageChange(this.currentPage - 1), "data-scope": "previous-iconbutton", "aria-label": this.previousButtonLabel })) : (h("nv-button", { size: "md", emphasis: "lower", disabled: isFirstPage, onClick: () => this.handlePageChange(this.currentPage - 1), "data-scope": "previous-button" }, h("nv-icon", { slot: "leading-icon", name: "chevron-left" }), this.previousButtonLabel)), h("ol", { key: '5bebe0e3f5c8f1799ed8980752fbed7aadbcac01', "data-scope": "page-list" }, calculatePaginationRange({
108
+ currentPage: this.currentPage,
109
+ totalCount: this.totalCount,
110
+ pageSize: this.pageSize,
111
+ numStartZoneButtons: this.numStartZoneButtons,
112
+ numEndZoneButtons: this.numEndZoneButtons,
113
+ numMiddleButtons: this.numMiddleButtons,
114
+ showMiddleZone: this.showMiddleZone,
115
+ }).map(item => typeof item === 'number' ? (this.renderPageButton(item)) : (h("li", { key: `ellipsis-${item}`, "data-scope": "ellipsis", "aria-hidden": "true" }, h("span", null, item))))), this.isOnlyIcon ? (h("nv-iconbutton", { name: "chevron-right", size: "md", emphasis: "lower", disabled: isLastPage, onClick: () => this.handlePageChange(this.currentPage + 1), "data-scope": "next-iconbutton", "aria-label": this.nextButtonLabel })) : (h("nv-button", { size: "md", emphasis: "lower", disabled: isLastPage, onClick: () => this.handlePageChange(this.currentPage + 1), "data-scope": "next-button" }, this.nextButtonLabel, h("nv-icon", { slot: "trailing-icon", name: "chevron-right" }))))));
116
+ }
117
+ static get is() { return "nv-pagination-nav"; }
118
+ static get originalStyleUrls() {
119
+ return {
120
+ "$": ["nv-pagination-nav.scss"]
121
+ };
122
+ }
123
+ static get styleUrls() {
124
+ return {
125
+ "$": ["nv-pagination-nav.css"]
126
+ };
127
+ }
128
+ static get properties() {
129
+ return {
130
+ "previousButtonLabel": {
131
+ "type": "string",
132
+ "mutable": false,
133
+ "complexType": {
134
+ "original": "string",
135
+ "resolved": "string",
136
+ "references": {}
137
+ },
138
+ "required": false,
139
+ "optional": false,
140
+ "docs": {
141
+ "tags": [],
142
+ "text": "Label for the previous button."
143
+ },
144
+ "getter": false,
145
+ "setter": false,
146
+ "reflect": true,
147
+ "attribute": "previous-button-label",
148
+ "defaultValue": "'Previous'"
149
+ },
150
+ "nextButtonLabel": {
151
+ "type": "string",
152
+ "mutable": false,
153
+ "complexType": {
154
+ "original": "string",
155
+ "resolved": "string",
156
+ "references": {}
157
+ },
158
+ "required": false,
159
+ "optional": false,
160
+ "docs": {
161
+ "tags": [],
162
+ "text": "Label for the next button."
163
+ },
164
+ "getter": false,
165
+ "setter": false,
166
+ "reflect": true,
167
+ "attribute": "next-button-label",
168
+ "defaultValue": "'Next'"
169
+ },
170
+ "numStartZoneButtons": {
171
+ "type": "number",
172
+ "mutable": false,
173
+ "complexType": {
174
+ "original": "number",
175
+ "resolved": "number",
176
+ "references": {}
177
+ },
178
+ "required": false,
179
+ "optional": false,
180
+ "docs": {
181
+ "tags": [],
182
+ "text": "Number of page buttons to show at the start of the pagination range."
183
+ },
184
+ "getter": false,
185
+ "setter": false,
186
+ "reflect": true,
187
+ "attribute": "num-start-zone-buttons",
188
+ "defaultValue": "2"
189
+ },
190
+ "numEndZoneButtons": {
191
+ "type": "number",
192
+ "mutable": false,
193
+ "complexType": {
194
+ "original": "number",
195
+ "resolved": "number",
196
+ "references": {}
197
+ },
198
+ "required": false,
199
+ "optional": false,
200
+ "docs": {
201
+ "tags": [],
202
+ "text": "Number of page buttons to show at the end of the pagination range."
203
+ },
204
+ "getter": false,
205
+ "setter": false,
206
+ "reflect": true,
207
+ "attribute": "num-end-zone-buttons",
208
+ "defaultValue": "2"
209
+ },
210
+ "numMiddleButtons": {
211
+ "type": "number",
212
+ "mutable": false,
213
+ "complexType": {
214
+ "original": "number",
215
+ "resolved": "number",
216
+ "references": {}
217
+ },
218
+ "required": false,
219
+ "optional": false,
220
+ "docs": {
221
+ "tags": [],
222
+ "text": "Number of page buttons to show in the middle zone around the current page."
223
+ },
224
+ "getter": false,
225
+ "setter": false,
226
+ "reflect": true,
227
+ "attribute": "num-middle-buttons",
228
+ "defaultValue": "1"
229
+ },
230
+ "currentPage": {
231
+ "type": "number",
232
+ "mutable": true,
233
+ "complexType": {
234
+ "original": "number",
235
+ "resolved": "number",
236
+ "references": {}
237
+ },
238
+ "required": false,
239
+ "optional": false,
240
+ "docs": {
241
+ "tags": [],
242
+ "text": "Current page number (1-based index)."
243
+ },
244
+ "getter": false,
245
+ "setter": false,
246
+ "reflect": true,
247
+ "attribute": "current-page",
248
+ "defaultValue": "1"
249
+ },
250
+ "totalCount": {
251
+ "type": "number",
252
+ "mutable": false,
253
+ "complexType": {
254
+ "original": "number",
255
+ "resolved": "number",
256
+ "references": {}
257
+ },
258
+ "required": false,
259
+ "optional": false,
260
+ "docs": {
261
+ "tags": [],
262
+ "text": "Total number of items to paginate."
263
+ },
264
+ "getter": false,
265
+ "setter": false,
266
+ "reflect": true,
267
+ "attribute": "total-count",
268
+ "defaultValue": "100"
269
+ },
270
+ "pageSize": {
271
+ "type": "number",
272
+ "mutable": false,
273
+ "complexType": {
274
+ "original": "number",
275
+ "resolved": "number",
276
+ "references": {}
277
+ },
278
+ "required": false,
279
+ "optional": false,
280
+ "docs": {
281
+ "tags": [],
282
+ "text": "Number of items per page."
283
+ },
284
+ "getter": false,
285
+ "setter": false,
286
+ "reflect": true,
287
+ "attribute": "page-size",
288
+ "defaultValue": "10"
289
+ },
290
+ "isOnlyIcon": {
291
+ "type": "boolean",
292
+ "mutable": false,
293
+ "complexType": {
294
+ "original": "boolean",
295
+ "resolved": "boolean",
296
+ "references": {}
297
+ },
298
+ "required": false,
299
+ "optional": false,
300
+ "docs": {
301
+ "tags": [],
302
+ "text": "If true, the Previous/Next navigation buttons will be displayed as icon buttons.\nPage number buttons always use regular buttons."
303
+ },
304
+ "getter": false,
305
+ "setter": false,
306
+ "reflect": true,
307
+ "attribute": "is-only-icon",
308
+ "defaultValue": "false"
309
+ },
310
+ "showMiddleZone": {
311
+ "type": "boolean",
312
+ "mutable": false,
313
+ "complexType": {
314
+ "original": "boolean",
315
+ "resolved": "boolean",
316
+ "references": {}
317
+ },
318
+ "required": false,
319
+ "optional": false,
320
+ "docs": {
321
+ "tags": [],
322
+ "text": "If true, shows the middle zone with the current page when it's not in start/end zones.\nIf false (default), only shows one ellipsis between start and end zones (simpler pagination)."
323
+ },
324
+ "getter": false,
325
+ "setter": false,
326
+ "reflect": true,
327
+ "attribute": "show-middle-zone",
328
+ "defaultValue": "false"
329
+ }
330
+ };
331
+ }
332
+ static get events() {
333
+ return [{
334
+ "method": "currentPageChanged",
335
+ "name": "currentPageChanged",
336
+ "bubbles": false,
337
+ "cancelable": true,
338
+ "composed": true,
339
+ "docs": {
340
+ "tags": [{
341
+ "name": "bind",
342
+ "text": "currentPage"
343
+ }],
344
+ "text": "Emitted when the current page changes."
345
+ },
346
+ "complexType": {
347
+ "original": "number",
348
+ "resolved": "number",
349
+ "references": {}
350
+ }
351
+ }];
352
+ }
353
+ static get watchers() {
354
+ return [{
355
+ "propName": "currentPage",
356
+ "methodName": "onCurrentPageChange"
357
+ }];
358
+ }
359
+ }