@nova-design-system/nova-webcomponents 3.25.0 → 3.27.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 (402) hide show
  1. package/dist/cjs/i18n.utils-BbKpUgYq.js +77 -0
  2. package/dist/cjs/{index-BQjqJTJB.js → index-Cfkoz1kc.js} +5 -1
  3. package/dist/cjs/index.cjs.js +54 -2
  4. package/dist/cjs/loader.cjs.js +2 -2
  5. package/dist/cjs/native.cjs.js +2 -2
  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 +6 -4
  11. package/dist/cjs/nv-breadcrumb.cjs.entry.js +2 -2
  12. package/dist/cjs/nv-breadcrumbs.cjs.entry.js +2 -2
  13. package/dist/cjs/nv-button.cjs.entry.js +2 -2
  14. package/dist/cjs/nv-buttongroup.cjs.entry.js +3 -3
  15. package/dist/cjs/nv-calendar.cjs.entry.js +3 -12
  16. package/dist/cjs/nv-col.cjs.entry.js +2 -2
  17. package/dist/cjs/nv-datagrid.cjs.entry.js +3 -3
  18. package/dist/cjs/nv-datagridcolumn.cjs.entry.js +2 -2
  19. package/dist/cjs/nv-dialog.cjs.entry.js +16 -3
  20. package/dist/cjs/nv-dialogfooter_2.cjs.entry.js +3 -3
  21. package/dist/cjs/nv-drawer.cjs.entry.js +2 -2
  22. package/dist/cjs/nv-drawerfooter_2.cjs.entry.js +3 -3
  23. package/dist/cjs/nv-fieldcheckbox.cjs.entry.js +6 -6
  24. package/dist/cjs/nv-fielddate.cjs.entry.js +7 -7
  25. package/dist/cjs/nv-fielddaterange.cjs.entry.js +7 -8
  26. package/dist/cjs/nv-fielddropdown.cjs.entry.js +20 -19
  27. package/dist/cjs/nv-fielddropdownitem.cjs.entry.js +2 -2
  28. package/dist/cjs/nv-fieldmultiselect.cjs.entry.js +16 -15
  29. package/dist/cjs/nv-fieldnumber.cjs.entry.js +5 -5
  30. package/dist/cjs/nv-fieldpassword.cjs.entry.js +5 -5
  31. package/dist/cjs/nv-fieldradio.cjs.entry.js +5 -5
  32. package/dist/cjs/nv-fieldselect.cjs.entry.js +6 -6
  33. package/dist/cjs/nv-fieldslider.cjs.entry.js +4 -4
  34. package/dist/cjs/nv-fieldtext.cjs.entry.js +5 -5
  35. package/dist/cjs/nv-fieldtextarea.cjs.entry.js +31 -29
  36. package/dist/cjs/nv-fieldtime.cjs.entry.js +4 -4
  37. package/dist/cjs/nv-icon.cjs.entry.js +3 -3
  38. package/dist/cjs/nv-iconbutton_2.cjs.entry.js +3 -3
  39. package/dist/cjs/nv-menu.cjs.entry.js +2 -2
  40. package/dist/cjs/nv-menuitem.cjs.entry.js +2 -2
  41. package/dist/cjs/nv-notification-bullet.cjs.entry.js +1 -1
  42. package/dist/cjs/nv-notification.cjs.entry.js +2 -2
  43. package/dist/cjs/nv-notificationcontainer.cjs.entry.js +2 -2
  44. package/dist/cjs/nv-pagination-nav.cjs.entry.js +198 -0
  45. package/dist/cjs/nv-paginationtable.cjs.entry.js +2 -2
  46. package/dist/cjs/nv-popover.cjs.entry.js +2 -2
  47. package/dist/cjs/nv-row.cjs.entry.js +2 -2
  48. package/dist/cjs/nv-sidebar.cjs.entry.js +2 -2
  49. package/dist/cjs/nv-sidebarcontent.cjs.entry.js +2 -2
  50. package/dist/cjs/nv-sidebardivider.cjs.entry.js +2 -2
  51. package/dist/cjs/nv-sidebarfooter.cjs.entry.js +2 -2
  52. package/dist/cjs/nv-sidebargroup.cjs.entry.js +2 -2
  53. package/dist/cjs/nv-sidebarheader.cjs.entry.js +2 -2
  54. package/dist/cjs/nv-sidebarlogo.cjs.entry.js +2 -2
  55. package/dist/cjs/nv-sidebarnavitem.cjs.entry.js +12 -5
  56. package/dist/cjs/nv-sidebarnavsubitem.cjs.entry.js +2 -2
  57. package/dist/cjs/nv-split.cjs.entry.js +2 -2
  58. package/dist/cjs/nv-stack.cjs.entry.js +2 -2
  59. package/dist/cjs/nv-table.cjs.entry.js +4 -2
  60. package/dist/cjs/nv-tableheader.cjs.entry.js +2 -2
  61. package/dist/cjs/nv-toggle.cjs.entry.js +4 -4
  62. package/dist/cjs/nv-togglebutton.cjs.entry.js +2 -2
  63. package/dist/cjs/nv-togglebuttongroup.cjs.entry.js +2 -2
  64. package/dist/cjs/nv-tooltip.cjs.entry.js +3 -3
  65. package/dist/cjs/{i18n.utils-ku0bScip.js → worker-client-ByL3TenE.js} +35 -75
  66. package/dist/collection/collection-manifest.json +1 -0
  67. package/dist/collection/components/nv-badge/nv-badge.css +4 -1
  68. package/dist/collection/components/nv-badge/nv-badge.js +3 -1
  69. package/dist/collection/components/nv-breadcrumb/nv-breadcrumb.js +1 -1
  70. package/dist/collection/components/nv-breadcrumbs/nv-breadcrumbs.js +1 -1
  71. package/dist/collection/components/nv-button/nv-button.js +1 -1
  72. package/dist/collection/components/nv-buttongroup/nv-buttongroup.js +1 -1
  73. package/dist/collection/components/nv-buttongroup/styles/nv-buttongroup.css +4 -4
  74. package/dist/collection/components/nv-calendar/nv-calendar.js +2 -11
  75. package/dist/collection/components/nv-calendar/test/nv-calendar.utils.test.js +0 -1
  76. package/dist/collection/components/nv-col/nv-col.js +1 -1
  77. package/dist/collection/components/nv-datagrid/nv-datagrid.js +2 -2
  78. package/dist/collection/components/nv-datagridcolumn/nv-datagridcolumn.js +1 -1
  79. package/dist/collection/components/nv-dialog/nv-dialog.js +15 -2
  80. package/dist/collection/components/nv-dialogfooter/nv-dialogfooter.js +1 -1
  81. package/dist/collection/components/nv-dialogheader/nv-dialogheader.js +1 -1
  82. package/dist/collection/components/nv-drawer/nv-drawer.js +1 -1
  83. package/dist/collection/components/nv-drawerfooter/nv-drawerfooter.js +1 -1
  84. package/dist/collection/components/nv-drawerheader/nv-drawerheader.js +1 -1
  85. package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.css +9 -0
  86. package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js +4 -4
  87. package/dist/collection/components/nv-fielddate/nv-fielddate.js +6 -6
  88. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js +6 -7
  89. package/dist/collection/components/nv-fielddaterange/test/nv-fielddaterange.logic.test.js +0 -1
  90. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js +4 -4
  91. package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.js +1 -1
  92. package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.js +1 -1
  93. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js +4 -4
  94. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js +4 -4
  95. package/dist/collection/components/nv-fieldradio/nv-fieldradio.js +3 -3
  96. package/dist/collection/components/nv-fieldradio/styles/nv-fieldradio.css +20 -0
  97. package/dist/collection/components/nv-fieldselect/nv-fieldselect.js +5 -5
  98. package/dist/collection/components/nv-fieldslider/nv-fieldslider.js +3 -3
  99. package/dist/collection/components/nv-fieldtext/nv-fieldtext.js +4 -4
  100. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.docs.js +14 -0
  101. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js +50 -29
  102. package/dist/collection/components/nv-fieldtime/nv-fieldtime.js +3 -4
  103. package/dist/collection/components/nv-icon/nv-icon.js +1 -1
  104. package/dist/collection/components/nv-iconbutton/nv-iconbutton.js +1 -1
  105. package/dist/collection/components/nv-loader/nv-loader.js +1 -1
  106. package/dist/collection/components/nv-menu/nv-menu.js +1 -1
  107. package/dist/collection/components/nv-menuitem/nv-menuitem.js +1 -1
  108. package/dist/collection/components/nv-notification/nv-notification.js +1 -1
  109. package/dist/collection/components/nv-notificationcontainer/nv-notificationcontainer.js +1 -1
  110. package/dist/collection/components/nv-pagination-nav/nv-pagination-nav.css +37 -0
  111. package/dist/collection/components/nv-pagination-nav/nv-pagination-nav.docs.js +278 -0
  112. package/dist/collection/components/nv-pagination-nav/nv-pagination-nav.js +359 -0
  113. package/dist/collection/components/nv-pagination-nav/nv-pagination-nav.utils.js +70 -0
  114. package/dist/collection/components/nv-pagination-nav/test/nv-pagination-nav.utils.test.js +66 -0
  115. package/dist/collection/components/nv-paginationtable/nv-paginationtable.js +1 -1
  116. package/dist/collection/components/nv-paginationtable/test/nv-paginationtable.utils.test.js +0 -1
  117. package/dist/collection/components/nv-popover/nv-popover.js +1 -1
  118. package/dist/collection/components/nv-row/nv-row.js +1 -1
  119. package/dist/collection/components/nv-sidebar/nv-sidebar.js +1 -1
  120. package/dist/collection/components/nv-sidebarcontent/nv-sidebarcontent.js +1 -1
  121. package/dist/collection/components/nv-sidebardivider/nv-sidebardivider.js +1 -1
  122. package/dist/collection/components/nv-sidebarfooter/nv-sidebarfooter.js +1 -1
  123. package/dist/collection/components/nv-sidebargroup/nv-sidebargroup.js +1 -1
  124. package/dist/collection/components/nv-sidebarheader/nv-sidebarheader.js +1 -1
  125. package/dist/collection/components/nv-sidebarlogo/nv-sidebarlogo.js +3 -1
  126. package/dist/collection/components/nv-sidebarnavitem/nv-sidebarnavitem.js +11 -4
  127. package/dist/collection/components/nv-sidebarnavsubitem/nv-sidebarnavsubitem.js +1 -1
  128. package/dist/collection/components/nv-split/nv-split.js +1 -1
  129. package/dist/collection/components/nv-stack/nv-stack.js +1 -1
  130. package/dist/collection/components/nv-table/nv-table.js +1 -2
  131. package/dist/collection/components/nv-table/nv-table.utils.js +2 -0
  132. package/dist/collection/components/nv-table/test/nv-table.utils.test.js +0 -1
  133. package/dist/collection/components/nv-tableheader/nv-tableheader.js +1 -1
  134. package/dist/collection/components/nv-toggle/nv-toggle.css +26 -0
  135. package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
  136. package/dist/collection/components/nv-togglebutton/nv-togglebutton.js +1 -1
  137. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.js +1 -1
  138. package/dist/collection/components/nv-tooltip/nv-tooltip.css +7 -0
  139. package/dist/collection/components/nv-tooltip/nv-tooltip.js +1 -1
  140. package/dist/collection/index.js +2 -0
  141. package/dist/collection/utils/test/class.utils.test.js +0 -1
  142. package/dist/collection/utils/test/dom.utils.test.js +0 -1
  143. package/dist/components/_.entry.js +1 -0
  144. package/dist/components/index.js +1 -1
  145. package/dist/components/nv-accordion-item.js +1 -1
  146. package/dist/components/nv-accordion.js +1 -1
  147. package/dist/components/nv-alert.js +1 -1
  148. package/dist/components/nv-avatar.js +1 -1
  149. package/dist/components/nv-badge.js +1 -1
  150. package/dist/components/nv-breadcrumb.js +1 -1
  151. package/dist/components/nv-breadcrumbs.js +1 -1
  152. package/dist/components/nv-button.js +1 -1
  153. package/dist/components/nv-buttongroup.js +1 -1
  154. package/dist/components/nv-calendar.js +1 -1
  155. package/dist/components/nv-col.js +1 -1
  156. package/dist/components/nv-datagrid.js +1 -1
  157. package/dist/components/nv-datagridcolumn.js +1 -1
  158. package/dist/components/nv-dialog.js +1 -1
  159. package/dist/components/nv-dialogfooter.js +1 -1
  160. package/dist/components/nv-dialogheader.js +1 -1
  161. package/dist/components/nv-drawer.js +1 -1
  162. package/dist/components/nv-drawerfooter.js +1 -1
  163. package/dist/components/nv-drawerheader.js +1 -1
  164. package/dist/components/nv-fieldcheckbox.js +1 -1
  165. package/dist/components/nv-fielddate.js +1 -1
  166. package/dist/components/nv-fielddaterange.js +1 -1
  167. package/dist/components/nv-fielddropdown.js +1 -1
  168. package/dist/components/nv-fielddropdownitem.js +1 -1
  169. package/dist/components/nv-fielddropdownitemcheck.js +1 -1
  170. package/dist/components/nv-fieldmultiselect.js +1 -1
  171. package/dist/components/nv-fieldnumber.js +1 -1
  172. package/dist/components/nv-fieldpassword.js +1 -1
  173. package/dist/components/nv-fieldradio.js +1 -1
  174. package/dist/components/nv-fieldselect.js +1 -1
  175. package/dist/components/nv-fieldslider.js +1 -1
  176. package/dist/components/nv-fieldtext.js +1 -1
  177. package/dist/components/nv-fieldtextarea.js +1 -1
  178. package/dist/components/nv-fieldtime.js +1 -1
  179. package/dist/components/nv-icon.js +1 -1
  180. package/dist/components/nv-iconbutton.js +1 -1
  181. package/dist/components/nv-loader.js +1 -1
  182. package/dist/components/nv-menu.js +1 -1
  183. package/dist/components/nv-menuitem.js +1 -1
  184. package/dist/components/nv-notification-bullet.js +1 -1
  185. package/dist/components/nv-notification.js +1 -1
  186. package/dist/components/nv-notificationcontainer.js +1 -1
  187. package/dist/components/nv-pagination-nav.d.ts +11 -0
  188. package/dist/components/nv-pagination-nav.js +1 -0
  189. package/dist/components/nv-paginationtable.js +1 -1
  190. package/dist/components/nv-popover.js +1 -1
  191. package/dist/components/nv-row.js +1 -1
  192. package/dist/components/nv-sidebar.js +1 -1
  193. package/dist/components/nv-sidebarcontent.js +1 -1
  194. package/dist/components/nv-sidebardivider.js +1 -1
  195. package/dist/components/nv-sidebarfooter.js +1 -1
  196. package/dist/components/nv-sidebargroup.js +1 -1
  197. package/dist/components/nv-sidebarheader.js +1 -1
  198. package/dist/components/nv-sidebarlogo.js +1 -1
  199. package/dist/components/nv-sidebarnavitem.js +1 -1
  200. package/dist/components/nv-sidebarnavsubitem.js +1 -1
  201. package/dist/components/nv-split.js +1 -1
  202. package/dist/components/nv-stack.js +1 -1
  203. package/dist/components/nv-table.js +1 -1
  204. package/dist/components/nv-tableheader.js +1 -1
  205. package/dist/components/nv-toggle.js +1 -1
  206. package/dist/components/nv-togglebutton.js +1 -1
  207. package/dist/components/nv-togglebuttongroup.js +1 -1
  208. package/dist/components/nv-tooltip.js +1 -1
  209. package/dist/components/{p-iXsbKJzR.js → p-6nAIGZFL.js} +1 -1
  210. package/dist/components/{p-CPjfMClF.js → p-BBy1Mdgv.js} +1 -1
  211. package/dist/components/{p-Cfr9uriB.js → p-BMpkyzCW.js} +1 -1
  212. package/dist/components/{p-Cq5FI49y.js → p-Ba1zVklG.js} +1 -1
  213. package/dist/components/p-BaF3Tuua.js +1 -0
  214. package/dist/components/{p-mWVXEsBF.js → p-BvxuoODv.js} +1 -1
  215. package/dist/components/{p-yHGZRC6Q.js → p-BwYt1BAb.js} +1 -1
  216. package/dist/components/{p-C_a7VT_H.js → p-CAGzfU3O.js} +1 -1
  217. package/dist/components/p-CR9MpYzU.js +1 -0
  218. package/dist/components/{p-Bg-b6OWh.js → p-CV12ukSl.js} +1 -1
  219. package/dist/components/{p-BJSrJH9I.js → p-CZkFkVd8.js} +1 -1
  220. package/dist/components/p-CcmfuwSa.js +1 -0
  221. package/dist/components/p-CqJqzGJS.js +1 -0
  222. package/dist/components/{p-Nf-dwTsx.js → p-D-MnI-R8.js} +1 -1
  223. package/dist/components/{p-D7xBylwr.js → p-D0bGRzSN.js} +1 -1
  224. package/dist/components/p-DC_2597n.js +1 -0
  225. package/dist/components/{p-C6LzzMQm.js → p-Db4JZxyy.js} +1 -1
  226. package/dist/components/{p-Cw5yG8cD.js → p-DlOgBZa8.js} +2 -2
  227. package/dist/components/{p-BkqfOhkU.js → p-DrgqO3gF.js} +1 -1
  228. package/dist/components/{p-C-MlXMFg.js → p-Ho_7-x5W.js} +1 -1
  229. package/dist/components/{p-D_JRZMC-.js → p-IzPWk8zx.js} +1 -1
  230. package/dist/components/{p-DkC2jlrw.js → p-S18SgvAW.js} +1 -1
  231. package/dist/components/{p-tJDdN0lo.js → p-T-bBxAoT.js} +1 -1
  232. package/dist/components/{p-CskCUxuV.js → p-kMTGXpRx.js} +1 -1
  233. package/dist/components/p-uAXqRBhx.js +1 -0
  234. package/dist/esm/i18n.utils-CR9MpYzU.js +74 -0
  235. package/dist/esm/{index-S-IZ4AN_.js → index-BCjiE1MF.js} +5 -1
  236. package/dist/esm/index.js +53 -2
  237. package/dist/esm/loader.js +3 -3
  238. package/dist/esm/native.js +3 -3
  239. package/dist/esm/nv-accordion-item.entry.js +1 -1
  240. package/dist/esm/nv-accordion.entry.js +1 -1
  241. package/dist/esm/nv-alert.entry.js +1 -1
  242. package/dist/esm/nv-avatar.entry.js +1 -1
  243. package/dist/esm/nv-badge_2.entry.js +6 -4
  244. package/dist/esm/nv-breadcrumb.entry.js +2 -2
  245. package/dist/esm/nv-breadcrumbs.entry.js +2 -2
  246. package/dist/esm/nv-button.entry.js +2 -2
  247. package/dist/esm/nv-buttongroup.entry.js +3 -3
  248. package/dist/esm/nv-calendar.entry.js +3 -12
  249. package/dist/esm/nv-col.entry.js +2 -2
  250. package/dist/esm/nv-datagrid.entry.js +3 -3
  251. package/dist/esm/nv-datagridcolumn.entry.js +2 -2
  252. package/dist/esm/nv-dialog.entry.js +16 -3
  253. package/dist/esm/nv-dialogfooter_2.entry.js +3 -3
  254. package/dist/esm/nv-drawer.entry.js +2 -2
  255. package/dist/esm/nv-drawerfooter_2.entry.js +3 -3
  256. package/dist/esm/nv-fieldcheckbox.entry.js +6 -6
  257. package/dist/esm/nv-fielddate.entry.js +7 -7
  258. package/dist/esm/nv-fielddaterange.entry.js +7 -8
  259. package/dist/esm/nv-fielddropdown.entry.js +7 -6
  260. package/dist/esm/nv-fielddropdownitem.entry.js +2 -2
  261. package/dist/esm/nv-fieldmultiselect.entry.js +3 -2
  262. package/dist/esm/nv-fieldnumber.entry.js +5 -5
  263. package/dist/esm/nv-fieldpassword.entry.js +5 -5
  264. package/dist/esm/nv-fieldradio.entry.js +5 -5
  265. package/dist/esm/nv-fieldselect.entry.js +6 -6
  266. package/dist/esm/nv-fieldslider.entry.js +4 -4
  267. package/dist/esm/nv-fieldtext.entry.js +5 -5
  268. package/dist/esm/nv-fieldtextarea.entry.js +31 -29
  269. package/dist/esm/nv-fieldtime.entry.js +4 -4
  270. package/dist/esm/nv-icon.entry.js +3 -3
  271. package/dist/esm/nv-iconbutton_2.entry.js +3 -3
  272. package/dist/esm/nv-menu.entry.js +2 -2
  273. package/dist/esm/nv-menuitem.entry.js +2 -2
  274. package/dist/esm/nv-notification-bullet.entry.js +1 -1
  275. package/dist/esm/nv-notification.entry.js +2 -2
  276. package/dist/esm/nv-notificationcontainer.entry.js +2 -2
  277. package/dist/esm/nv-pagination-nav.entry.js +196 -0
  278. package/dist/esm/nv-paginationtable.entry.js +2 -2
  279. package/dist/esm/nv-popover.entry.js +2 -2
  280. package/dist/esm/nv-row.entry.js +2 -2
  281. package/dist/esm/nv-sidebar.entry.js +2 -2
  282. package/dist/esm/nv-sidebarcontent.entry.js +2 -2
  283. package/dist/esm/nv-sidebardivider.entry.js +2 -2
  284. package/dist/esm/nv-sidebarfooter.entry.js +2 -2
  285. package/dist/esm/nv-sidebargroup.entry.js +2 -2
  286. package/dist/esm/nv-sidebarheader.entry.js +2 -2
  287. package/dist/esm/nv-sidebarlogo.entry.js +2 -2
  288. package/dist/esm/nv-sidebarnavitem.entry.js +12 -5
  289. package/dist/esm/nv-sidebarnavsubitem.entry.js +2 -2
  290. package/dist/esm/nv-split.entry.js +2 -2
  291. package/dist/esm/nv-stack.entry.js +2 -2
  292. package/dist/esm/nv-table.entry.js +4 -2
  293. package/dist/esm/nv-tableheader.entry.js +2 -2
  294. package/dist/esm/nv-toggle.entry.js +4 -4
  295. package/dist/esm/nv-togglebutton.entry.js +2 -2
  296. package/dist/esm/nv-togglebuttongroup.entry.js +2 -2
  297. package/dist/esm/nv-tooltip.entry.js +3 -3
  298. package/dist/esm/{i18n.utils-IlwlcG9l.js → worker-client-BaF3Tuua.js} +20 -74
  299. package/dist/lib/scripts/nextjs-entry-shim.js +25 -0
  300. package/dist/native/index.esm.js +1 -1
  301. package/dist/native/native.css +1 -1
  302. package/dist/native/native.esm.js +1 -1
  303. package/dist/native/{p-4016851b.entry.js → p-03cc1f2c.entry.js} +1 -1
  304. package/dist/native/{p-1bf1a213.entry.js → p-0fe84123.entry.js} +1 -1
  305. package/dist/native/{p-29f0730f.entry.js → p-148c1d3e.entry.js} +1 -1
  306. package/dist/native/{p-4c29c4c7.entry.js → p-157c5ac8.entry.js} +1 -1
  307. package/dist/native/p-18bdc07a.entry.js +1 -0
  308. package/dist/native/{p-ff7eae44.entry.js → p-1aea6fe0.entry.js} +1 -1
  309. package/dist/native/p-1c97c353.entry.js +1 -0
  310. package/dist/native/p-1e0ca4df.entry.js +1 -0
  311. package/dist/native/{p-5fb6d986.entry.js → p-1f8cc03a.entry.js} +1 -1
  312. package/dist/native/p-23f0ca96.entry.js +1 -0
  313. package/dist/native/{p-6ba310e8.entry.js → p-24ce0c8d.entry.js} +1 -1
  314. package/dist/native/{p-a813f497.entry.js → p-24f69387.entry.js} +1 -1
  315. package/dist/native/p-25ef7329.entry.js +1 -0
  316. package/dist/native/{p-ad05cef2.entry.js → p-31ba86b3.entry.js} +1 -1
  317. package/dist/native/{p-997a2268.entry.js → p-34e19b6e.entry.js} +1 -1
  318. package/dist/native/{p-70fa3c6b.entry.js → p-39366f18.entry.js} +1 -1
  319. package/dist/native/{p-1b37bf6c.entry.js → p-3a35cf46.entry.js} +1 -1
  320. package/dist/native/p-46267895.entry.js +1 -0
  321. package/dist/native/{p-00b80d2b.entry.js → p-539c04ad.entry.js} +1 -1
  322. package/dist/native/{p-1c86c5b8.entry.js → p-56593bf0.entry.js} +1 -1
  323. package/dist/native/{p-2623b212.entry.js → p-591f3dcc.entry.js} +1 -1
  324. package/dist/native/p-597cac0f.entry.js +1 -0
  325. package/dist/native/{p-32cbc18b.entry.js → p-5a7e46ad.entry.js} +1 -1
  326. package/dist/native/{p-e1021e2c.entry.js → p-5c003e50.entry.js} +1 -1
  327. package/dist/native/p-5ce3d30b.entry.js +1 -0
  328. package/dist/native/p-5f42a7f1.entry.js +1 -0
  329. package/dist/native/{p-3c09e565.entry.js → p-6742f88f.entry.js} +1 -1
  330. package/dist/native/{p-5cbf5973.entry.js → p-67e0680e.entry.js} +1 -1
  331. package/dist/native/p-6f3c3e2a.entry.js +1 -0
  332. package/dist/native/{p-e371a958.entry.js → p-7aac0b1a.entry.js} +1 -1
  333. package/dist/native/{p-99051651.entry.js → p-7d49e88d.entry.js} +1 -1
  334. package/dist/native/{p-df59dee0.entry.js → p-7ec28d5d.entry.js} +1 -1
  335. package/dist/native/p-855f7be1.entry.js +1 -0
  336. package/dist/native/{p-3ac56d5f.entry.js → p-87758615.entry.js} +1 -1
  337. package/dist/native/{p-84202d8a.entry.js → p-8a0dc37b.entry.js} +1 -1
  338. package/dist/native/{p-3bd49efe.entry.js → p-8f76e030.entry.js} +1 -1
  339. package/dist/native/{p-6f368c8d.entry.js → p-90b8b889.entry.js} +1 -1
  340. package/dist/native/p-927b655d.entry.js +1 -0
  341. package/dist/native/{p-98de77f8.entry.js → p-9709c7d5.entry.js} +1 -1
  342. package/dist/native/p-99726dd4.entry.js +1 -0
  343. package/dist/native/{p-6ccea920.entry.js → p-9fda1976.entry.js} +1 -1
  344. package/dist/native/{p-S-IZ4AN_.js → p-BCjiE1MF.js} +1 -1
  345. package/dist/native/p-BaF3Tuua.js +1 -0
  346. package/dist/native/p-CR9MpYzU.js +1 -0
  347. package/dist/native/{p-91f71346.entry.js → p-a16f8a14.entry.js} +1 -1
  348. package/dist/native/{p-0242699e.entry.js → p-a6b3256b.entry.js} +1 -1
  349. package/dist/native/{p-184b4f0d.entry.js → p-b3964a1c.entry.js} +1 -1
  350. package/dist/native/{p-87f35ce1.entry.js → p-bb43a3b4.entry.js} +1 -1
  351. package/dist/native/{p-34cce087.entry.js → p-c0b05d6f.entry.js} +1 -1
  352. package/dist/native/p-c214e4af.entry.js +1 -0
  353. package/dist/native/p-c29dc907.entry.js +1 -0
  354. package/dist/native/{p-b65f3418.entry.js → p-d12a2841.entry.js} +1 -1
  355. package/dist/native/p-d46bd21a.entry.js +1 -0
  356. package/dist/native/{p-ca3b996b.entry.js → p-d6e2e120.entry.js} +1 -1
  357. package/dist/native/p-ddedc9c1.entry.js +1 -0
  358. package/dist/native/{p-a6287e55.entry.js → p-eb8ba7a2.entry.js} +1 -1
  359. package/dist/native/{p-4725d9aa.entry.js → p-ebff7ddb.entry.js} +1 -1
  360. package/dist/native/p-ecce3e66.entry.js +1 -0
  361. package/dist/native/{p-7f3c3c29.entry.js → p-f9612edf.entry.js} +1 -1
  362. package/dist/native/p-f9e4daf7.entry.js +1 -0
  363. package/dist/native/{p-2106dfbd.entry.js → p-fb34fc7d.entry.js} +1 -1
  364. package/dist/native/{p-98ea927d.entry.js → p-fd5e27ae.entry.js} +1 -1
  365. package/dist/types/components/nv-dialog/nv-dialog.d.ts +9 -0
  366. package/dist/types/components/nv-fieldtextarea/nv-fieldtextarea.d.ts +9 -1
  367. package/dist/types/components/nv-pagination-nav/nv-pagination-nav.d.ts +82 -0
  368. package/dist/types/components/nv-pagination-nav/nv-pagination-nav.docs.d.ts +4 -0
  369. package/dist/types/components/nv-pagination-nav/nv-pagination-nav.utils.d.ts +26 -0
  370. package/dist/types/components/nv-pagination-nav/test/nv-pagination-nav.utils.test.d.ts +1 -0
  371. package/dist/types/components/nv-sidebarlogo/nv-sidebarlogo.d.ts +2 -0
  372. package/dist/types/components.d.ts +159 -2
  373. package/dist/types/index.d.ts +1 -0
  374. package/dist/types/nova-docs.d.ts +0 -1
  375. package/dist/vscode-data.json +54 -1
  376. package/hydrate/index.js +381 -145
  377. package/hydrate/index.mjs +381 -145
  378. package/package.json +6 -2
  379. package/dist/components/p-BqRuoNHJ.js +0 -1
  380. package/dist/components/p-CGXDiomF.js +0 -1
  381. package/dist/components/p-ChRIFm7p.js +0 -1
  382. package/dist/components/p-IlwlcG9l.js +0 -1
  383. package/dist/components/p-r3_atQ9r.js +0 -1
  384. package/dist/native/p-01d09dfa.entry.js +0 -1
  385. package/dist/native/p-09b88c8d.entry.js +0 -1
  386. package/dist/native/p-1a1a6bbf.entry.js +0 -1
  387. package/dist/native/p-223814fe.entry.js +0 -1
  388. package/dist/native/p-2b7e621a.entry.js +0 -1
  389. package/dist/native/p-38e981f2.entry.js +0 -1
  390. package/dist/native/p-3e949805.entry.js +0 -1
  391. package/dist/native/p-4bda5842.entry.js +0 -1
  392. package/dist/native/p-6a548776.entry.js +0 -1
  393. package/dist/native/p-6e9b95fa.entry.js +0 -1
  394. package/dist/native/p-IlwlcG9l.js +0 -1
  395. package/dist/native/p-a60660f6.entry.js +0 -1
  396. package/dist/native/p-bf8b0be2.entry.js +0 -1
  397. package/dist/native/p-d9c1287c.entry.js +0 -1
  398. package/dist/native/p-d9cebb66.entry.js +0 -1
  399. package/dist/native/p-da417f83.entry.js +0 -1
  400. package/dist/native/p-e5dbacf6.entry.js +0 -1
  401. package/dist/native/p-ed19f3dc.entry.js +0 -1
  402. package/dist/native/p-f1b6d43b.entry.js +0 -1
@@ -71,7 +71,7 @@ export class NvFieldtextarea {
71
71
  /**
72
72
  * Enable this to make the textarea automatically resize as the user types,
73
73
  * adjusting the height to fit the content. For the best experience, avoid
74
- * vertical resizing, as its controlled by this feature. Horizontal resizing
74
+ * vertical resizing, as it's controlled by this feature. Horizontal resizing
75
75
  * can still be allowed if desired.
76
76
  */
77
77
  this.autosize = false;
@@ -133,35 +133,37 @@ export class NvFieldtextarea {
133
133
  adjustTextareaHeight() {
134
134
  if (this.textareaElement && this.autosize) {
135
135
  /**
136
- * The first requestAnimationFrame ensures that the DOM has applied any
136
+ * A single requestAnimationFrame ensures that the DOM has applied any
137
137
  * pending changes (e.g., value updates or attribute changes) before
138
- * proceeding to the next frame.
138
+ * measuring. All style reads and writes happen synchronously within
139
+ * this callback so the browser never paints the intermediate
140
+ * "height: auto" state, avoiding a visible flash.
139
141
  */
140
142
  requestAnimationFrame(() => {
141
- /**
142
- * The second requestAnimationFrame ensures that the browser has fully
143
- * recalculated layout and styles based on the updated DOM, such as
144
- * recalculating scrollHeight for the textarea after the new value is
145
- * rendered.
146
- */
147
- requestAnimationFrame(() => {
148
- this.textareaElement.style.height = 'auto';
149
- const computedStyle = window.getComputedStyle(this.textareaElement);
150
- const lineHeight = parseFloat(computedStyle.lineHeight);
151
- const paddingTop = parseFloat(computedStyle.paddingTop);
152
- const paddingBottom = parseFloat(computedStyle.paddingBottom);
153
- const borderTopWidth = parseFloat(computedStyle.borderTopWidth);
154
- const borderBottomWidth = parseFloat(computedStyle.borderBottomWidth);
155
- // Calculate min-height based on rows
156
- const minHeight = lineHeight * this.rows +
157
- paddingTop +
158
- paddingBottom +
159
- borderTopWidth +
160
- borderBottomWidth;
161
- this.textareaElement.style.minHeight = `${minHeight}px`;
143
+ this.textareaElement.style.height = 'auto';
144
+ const computedStyle = window.getComputedStyle(this.textareaElement);
145
+ const lineHeight = parseFloat(computedStyle.lineHeight);
146
+ const paddingTop = parseFloat(computedStyle.paddingTop);
147
+ const paddingBottom = parseFloat(computedStyle.paddingBottom);
148
+ const borderTopWidth = parseFloat(computedStyle.borderTopWidth);
149
+ const borderBottomWidth = parseFloat(computedStyle.borderBottomWidth);
150
+ // Calculate min-height based on rows
151
+ const minHeight = lineHeight * this.rows +
152
+ paddingTop +
153
+ paddingBottom +
154
+ borderTopWidth +
155
+ borderBottomWidth;
156
+ this.textareaElement.style.minHeight = `${minHeight}px`;
157
+ if (this.maxAutoHeight &&
158
+ this.textareaElement.scrollHeight > this.maxAutoHeight) {
159
+ this.textareaElement.style.height = `${this.maxAutoHeight}px`;
160
+ this.textareaElement.style.overflowY = 'auto';
161
+ }
162
+ else {
162
163
  this.textareaElement.style.height =
163
164
  this.textareaElement.scrollHeight + 'px';
164
- });
165
+ this.textareaElement.style.overflowY = 'hidden';
166
+ }
165
167
  });
166
168
  }
167
169
  }
@@ -213,11 +215,11 @@ export class NvFieldtextarea {
213
215
  ? ariaRequiredAttrValue === 'true' || ariaRequiredAttrValue === ''
214
216
  : undefined;
215
217
  const useNativeRequired = this.required && (!useAriaRequired || ariaRequiredValue === true);
216
- return (h(Host, { key: '318e509b03c06725526be8f6ec4ed07ad6f2180a' }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { key: '705f55c450ebdb9b3ccf61583436c5b9d1aa0ca6', htmlFor: this.inputId }, h("slot", { key: 'e4c2c58b5a8592dfe235d9544193c877c896d2b4', name: "label" }, this.label))), h("div", { key: '4c91b621928b8a38139c0a8f3a775abf0b76f178', class: "textarea-wrapper" }, h("div", { key: '2b15d531bb208a225f2bbf469f5ac7002805e9b5', class: "textarea-container", onClick: this.handleTextareaContainerClick }, h("textarea", { key: '15be5b082d20a8ee0cafb1ae78008b3b76b175c8', id: this.inputId, ref: e => (this.textareaElement = e), placeholder: this.placeholder, autofocus: this.autofocus, name: this.name, disabled: this.disabled, readOnly: this.readonly, required: useNativeRequired ? this.required : undefined, ...(ariaRequiredValue !== undefined && {
218
+ return (h(Host, { key: '9d7aed8625b1cfa103e275495d40116b8f1314c3' }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { key: '6609cc39f3809b833a4c9755c487ba3eef05a5c4', htmlFor: this.inputId }, h("slot", { key: '277484af20e4054be5491576ffdfb95ca0f23a79', name: "label" }, this.label))), h("div", { key: '6224c47beaee1e15ea9277a1f69f4ac5ea496cb6', class: "textarea-wrapper" }, h("div", { key: '6dd7868aa65091dd79c34497dec020945d56f925', class: "textarea-container", onClick: this.handleTextareaContainerClick }, h("textarea", { key: '2548dab5d8b387d37036a07c4a76b567c84a8b59', id: this.inputId, ref: e => (this.textareaElement = e), placeholder: this.placeholder, autofocus: this.autofocus, name: this.name, disabled: this.disabled, readOnly: this.readonly, required: useNativeRequired ? this.required : undefined, ...(ariaRequiredValue !== undefined && {
217
219
  'aria-required': String(ariaRequiredValue),
218
220
  }), maxlength: this.maxlength, minlength: this.minlength, autocomplete: "off", value: this.value, onInput: this.handleTextarea, rows: this.rows, class: clsx(this.resize === 'none' && 'resize-none', this.resize === 'vertical' && 'resize-y', this.resize === 'horizontal' && 'resize-x', this.resize === 'both' && 'resize') }))), (this.description ||
219
- this.el.querySelector('[slot="description"]')) && (h("div", { key: 'e3f3ab334446af3f6d16b916001bd3297341362b', class: "description" }, h("slot", { key: '1ba84f8c4de83e5bfdbdb307cd8493dd86be36ca', name: "description" }, this.description))), (this.errorDescription ||
220
- this.el.querySelector('[slot="error-description"]')) && (h("div", { key: '0dfef83d86ca29fad329d4c656173f052a51c4fa', hidden: !this.error, class: "error-description" }, h("slot", { key: '0361fa48742aba68bfb2b205c741bf0aff896134', name: "error-description" }, this.errorDescription)))));
221
+ this.el.querySelector('[slot="description"]')) && (h("div", { key: '10ba44a9c4b83db00d00c2a4e791c68836413aac', class: "description" }, h("slot", { key: '5015686b48e185707376008306c204432199cde1', name: "description" }, this.description))), (this.errorDescription ||
222
+ this.el.querySelector('[slot="error-description"]')) && (h("div", { key: '312502a84e08fdacbe77cc55f4e91e0b4122c82b', hidden: !this.error, class: "error-description" }, h("slot", { key: 'b837f0784d75b8d0df04e025ee8f9a309c6f46d3', name: "error-description" }, this.errorDescription)))));
221
223
  }
222
224
  static get is() { return "nv-fieldtextarea"; }
223
225
  static get formAssociated() { return true; }
@@ -636,7 +638,7 @@ export class NvFieldtextarea {
636
638
  "optional": false,
637
639
  "docs": {
638
640
  "tags": [],
639
- "text": "Enable this to make the textarea automatically resize as the user types,\nadjusting the height to fit the content. For the best experience, avoid\nvertical resizing, as it\u2019s controlled by this feature. Horizontal resizing\ncan still be allowed if desired."
641
+ "text": "Enable this to make the textarea automatically resize as the user types,\nadjusting the height to fit the content. For the best experience, avoid\nvertical resizing, as it's controlled by this feature. Horizontal resizing\ncan still be allowed if desired."
640
642
  },
641
643
  "getter": false,
642
644
  "setter": false,
@@ -644,6 +646,25 @@ export class NvFieldtextarea {
644
646
  "attribute": "autosize",
645
647
  "defaultValue": "false"
646
648
  },
649
+ "maxAutoHeight": {
650
+ "type": "number",
651
+ "mutable": false,
652
+ "complexType": {
653
+ "original": "number",
654
+ "resolved": "number",
655
+ "references": {}
656
+ },
657
+ "required": false,
658
+ "optional": false,
659
+ "docs": {
660
+ "tags": [],
661
+ "text": "Sets a maximum height (in pixels) for the textarea when autosize is\nenabled. Once the content exceeds this height the textarea will stop\ngrowing and the content will overflow with a scrollbar. This is useful\nfor chat-style inputs where unlimited growth is undesirable. Only\napplies when `autosize` is `true`."
662
+ },
663
+ "getter": false,
664
+ "setter": false,
665
+ "reflect": true,
666
+ "attribute": "max-auto-height"
667
+ },
647
668
  "autofocus": {
648
669
  "type": "boolean",
649
670
  "mutable": false,
@@ -1,4 +1,3 @@
1
- /* eslint-disable react/jsx-no-bind */
2
1
  import { Host, h, forceUpdate, } from "@stencil/core";
3
2
  import { v4 as uuidv4 } from "uuid";
4
3
  import { TimeType } from "../../utils/constants";
@@ -872,9 +871,9 @@ export class NvFieldtime {
872
871
  }, key: `${option}-${index}`, onClick: e => this.handleTimeOptionClick(e, type) }, option)))));
873
872
  }
874
873
  render() {
875
- return (h(Host, { key: '021f0592f7a4eae1b249f12c668b3ce805546593', onclick: (e) => this.handleHostClick(e), "aria-expanded": this.open ? 'true' : 'false' }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { key: '6c105236217cb0c6b326e3ecea4bc38bfa4353f2', htmlFor: this.inputId }, h("slot", { key: 'f4c2dbce6a50d648970acc57d8367194635b7e82', name: "label" }, this.label))), h("nv-popover", { key: 'b852ec86ace95303e1e7445765a334819135766f', ref: el => (this.popoverElement = el), triggerMode: "controlled", placement: "bottom-start", open: this.open, onOpenChanged: this.handleOpenChanged }, h("div", { key: '2ddd521de9665e64095090a187b52d9fdb207dfb', class: "input-wrapper", slot: "trigger" }, h("slot", { key: 'e8ea5e1abc5b9b502e942e2a118184233677384f', name: "before-input" }), h("div", { key: '3d3a8e00ace3bab58b57305a68aac46863a61f36', class: "input-container" }, h("slot", { key: '2a1f88fc38b5d956f9d71d181f787ace20199588', name: "leading-input" }), this.renderTimeInputFields(), h("nv-iconbutton", { key: '497d5b2cdea39e83b0cb83eb6a9adbb18e57b952', name: 'clock', size: "md", emphasis: "lower", "aria-label": this.open ? 'Hide time picker' : 'Show time picker', onClick: () => this.HandleDropdownIconClick() }), this.error && (h("nv-icon", { key: 'e223b6faa4a476fe68aa9ae3c54e27dd0ff2017b', name: "alert-circle", class: "validation", size: "sm" })), this.success && (h("nv-icon", { key: 'ec7a22c2005d297c25959d16c8326ebe7bc80dde', name: "circle-check", class: "validation", size: "sm" }))), h("slot", { key: 'b12336e4d2708b3d5c25db1a4c5b761bf954e27b', name: "after-input" })), h("div", { key: '3a341dc72b2ece47841521817f5e44ca4b2286d1', class: "time-dropdown", slot: "content" }, h("div", { key: 'b67f1f796f0a2155210d6f6937264170f1fff7c3', class: "time-columns" }, this.renderTimeDropdownColumns()))), (this.description ||
876
- this.el.querySelector('[slot="description"]')) && (h("div", { key: 'b31b8401c4eb3a12ff466f389345ab8179f9ca5b', class: "description" }, h("slot", { key: '8a81cc74fb35d10f34f9abd372a58758227a4937', name: "description" }, this.description))), (this.errorDescription ||
877
- this.el.querySelector('[slot="error-description"]')) && (h("div", { key: '87e16ffc6ed5983850271c18ea762671ef1f99ad', hidden: !this.error, class: "error-description" }, h("slot", { key: '154a889711ce35c28bab77c64418c0bdcc912fc0', name: "error-description" }, this.errorDescription)))));
874
+ return (h(Host, { key: 'a02fbea3aa9b46d22978cececd750548c16c79cf', onclick: (e) => this.handleHostClick(e), "aria-expanded": this.open ? 'true' : 'false' }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { key: '0ec36fbb4e2e810455e35537277496b600b8bd72', htmlFor: this.inputId }, h("slot", { key: '5ab4bca171c9d68fbb592c378b0db30139e23642', name: "label" }, this.label))), h("nv-popover", { key: '962705b7347af233d00ad7c33ea8777403e32534', ref: el => (this.popoverElement = el), triggerMode: "controlled", placement: "bottom-start", open: this.open, onOpenChanged: this.handleOpenChanged }, h("div", { key: '16e06fbf7003cfdf29e019cd4dfcd33c3b4a12e4', class: "input-wrapper", slot: "trigger" }, h("slot", { key: '64c31ef85a92430ac348e9ff06405f682ceb7a98', name: "before-input" }), h("div", { key: '291130925798643a0c034719fc46a5ee391ec487', class: "input-container" }, h("slot", { key: '823f17b06aeb798216a46631655513bef79f7508', name: "leading-input" }), this.renderTimeInputFields(), h("nv-iconbutton", { key: '4e87bc2c19494f43cb4ac7dfb3b370eac6edab0b', name: 'clock', size: "md", emphasis: "lower", "aria-label": this.open ? 'Hide time picker' : 'Show time picker', onClick: () => this.HandleDropdownIconClick() }), this.error && (h("nv-icon", { key: 'a5c97446025ee0b571f3fe2223dfd759ed69f9ca', name: "alert-circle", class: "validation", size: "sm" })), this.success && (h("nv-icon", { key: '475f240e74459e16e5a9dd3bea0df21f32949e18', name: "circle-check", class: "validation", size: "sm" }))), h("slot", { key: '696be862dee53acc18c311fe2ea26f4ec099c62e', name: "after-input" })), h("div", { key: '75e7e8ad1c1bc7be602d633946b3845007a3b1c5', class: "time-dropdown", slot: "content" }, h("div", { key: '89898000bb7005ef687372d1016b5b93f02a43bc', class: "time-columns" }, this.renderTimeDropdownColumns()))), (this.description ||
875
+ this.el.querySelector('[slot="description"]')) && (h("div", { key: 'a0bddd8851b21c57637fbe8f9d8a83d62ff43bdf', class: "description" }, h("slot", { key: '133c39ce0065b8f95a932d12c5150af595eab460', name: "description" }, this.description))), (this.errorDescription ||
876
+ this.el.querySelector('[slot="error-description"]')) && (h("div", { key: 'de3a537dd418c1c218eceb8062fd925c0ea06bba', hidden: !this.error, class: "error-description" }, h("slot", { key: '97e2865ce647f2e4e32697acf5154fc94be9eab7', name: "error-description" }, this.errorDescription)))));
878
877
  }
879
878
  static get is() { return "nv-fieldtime"; }
880
879
  static get formAssociated() { return true; }
@@ -48,7 +48,7 @@ export class NvIcon {
48
48
  /****************************************************************************/
49
49
  //#region RENDER
50
50
  render() {
51
- return (h(Host, { key: '9cdc768f9a44f61de25e708c9d563faa7804782f', class: clsx(this.color && `${this.color}`), role: "img", "aria-label": `${this.name}-icon` }, h("svg", { key: '24c1ecfb3cbe406e60127d6d822523d35a6aa2c1', stroke: "currentColor", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", class: `nv-icon-${this.size}` }, h("use", { key: 'e85e828f692e966c4679aa653b5dd4593edf58c3', href: `#nvicon_${this.name}` }))));
51
+ return (h(Host, { key: 'd96ca7fdb241a00f00ccdbce5f0437efade91e5e', class: clsx(this.color && `${this.color}`), role: "img", "aria-label": `${this.name}-icon` }, h("svg", { key: '9de91a2e3ed62fc6128249a3ebf791bf42053475', stroke: "currentColor", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", class: `nv-icon-${this.size}` }, h("use", { key: '4e9891a48aa09ec65096298ced483092d0a54d23', href: `#nvicon_${this.name}` }))));
52
52
  }
53
53
  static get is() { return "nv-icon"; }
54
54
  static get originalStyleUrls() {
@@ -115,7 +115,7 @@ export class NvIconbutton {
115
115
  /****************************************************************************/
116
116
  //#region RENDER
117
117
  render() {
118
- return (h(Host, { key: '06b48253c77b09ae1259f72ad7698c9f9ddcd750', role: "button", type: this.type, tabindex: this.disableTabindex ? -1 : 0, disabled: this.disabled ? true : undefined, class: clsx('root', `size-${this.size}`, `emphasis-${this.emphasis}`, this.loading && 'loading', `shape-${this.shape}`), onClick: this.handleClick }, this.loading && h("nv-loader", { key: '5b4117978546581bfb217a0595dec6c736369955', size: this.size }), !this.loading && h("nv-icon", { key: 'f2f0da0fae0d0fde955cc2f766cb98a3058ffb7e', name: this.name, size: this.size }), h("slot", { key: '8d59cdf4be11216ff4a0a607bea4970128faa214' })));
118
+ return (h(Host, { key: 'e63c932f14d3b673d43ed48f61bb37a48605338d', role: "button", type: this.type, tabindex: this.disableTabindex ? -1 : 0, disabled: this.disabled ? true : undefined, class: clsx('root', `size-${this.size}`, `emphasis-${this.emphasis}`, this.loading && 'loading', `shape-${this.shape}`), onClick: this.handleClick }, this.loading && h("nv-loader", { key: '22ea154dce89eae701d873674a8bc6b2cecbcab9', size: this.size }), !this.loading && h("nv-icon", { key: 'f05c05c455e62d27aed57de09efd32230f68c450', name: this.name, size: this.size }), h("slot", { key: 'a1a163e56c8c027d0df2a019f77c187c6abbd91a' })));
119
119
  }
120
120
  static get is() { return "nv-iconbutton"; }
121
121
  static get formAssociated() { return true; }
@@ -16,7 +16,7 @@ export class NvLoader {
16
16
  //#region RENDER
17
17
  /* <slot> empty to force rendering change */
18
18
  render() {
19
- return (h(Host, { key: '0e617a9043f912160b40255feba5c5a9140f1703', class: clsx(this.size && `size-${this.size}`, this.color && `color-${this.color}`) }));
19
+ return (h(Host, { key: '5449f31fff78e9aabb1a6af11b99247cdf9fd4f3', class: clsx(this.size && `size-${this.size}`, this.color && `color-${this.color}`) }));
20
20
  }
21
21
  static get is() { return "nv-loader"; }
22
22
  static get originalStyleUrls() {
@@ -192,7 +192,7 @@ export class NvMenu {
192
192
  this.triggerElement = this.el.querySelector('[slot="trigger"]');
193
193
  }
194
194
  render() {
195
- return (h(Host, { key: 'de2604e6681418f23352dc436ac6dfb64d3d3a8d' }, h("slot", { key: '26afcd55842377b82a3f6d1f63d2f87eff4f6001', name: "trigger" }), h("nv-popover", { key: '03466649d538b909070feb3c50e18a35ee7dda19', ref: el => (this.popoverElement = el), triggerMode: "click", triggerElement: this.triggerElement, placement: this.placement, nested: this.nested, open: this.open, onOpenChanged: this.handleOpenChanged.bind(this) }, this.items ? (h("ul", { slot: "content" }, this.renderMenuItems())) : (h("slot", { name: "content" })))));
195
+ return (h(Host, { key: '470d14ed698cc0064a24bf02e5fac3b32d64601a' }, h("slot", { key: '2dd81fbe5a23b5225fc464fe528ff08983959b7f', name: "trigger" }), h("nv-popover", { key: '68634d33954033dbd997c8a7f7ed711c6a17470b', ref: el => (this.popoverElement = el), triggerMode: "click", triggerElement: this.triggerElement, placement: this.placement, nested: this.nested, open: this.open, onOpenChanged: this.handleOpenChanged.bind(this) }, this.items ? (h("ul", { slot: "content" }, this.renderMenuItems())) : (h("slot", { name: "content" })))));
196
196
  }
197
197
  static get is() { return "nv-menu"; }
198
198
  static get originalStyleUrls() {
@@ -43,7 +43,7 @@ export class NvMenuitem {
43
43
  /****************************************************************************/
44
44
  //#region RENDER
45
45
  render() {
46
- return (h(Host, { key: '3c05131caa0ee794ee2bbbd9c3a9d589d1fde266', role: "menuitem", tabindex: this.disabled ? '-1' : '0' }, this.icon && h("nv-icon", { key: '5d9e236545a19a4291885d26bbc13fed02d3e4bd', name: this.icon }), h("slot", { key: 'b020591899e341c5775f662dcdcd1a9894ab85a1' }), this.label && h("span", { key: '4984519ed9fefbb1647739ae0eeb4087ff320a01', "data-scope": "text" }, this.label), this.shortcut && !this.hasSubmenu && h("kbd", { key: 'bd3e3e3544e7efafa4eaedc212e88e55ad7ea4d0' }, this.shortcut), this.hasSubmenu && h("nv-icon", { key: '7b928e7c9ea2892061915ace6c08d3cccbf1655e', name: "chevron-right" })));
46
+ return (h(Host, { key: 'aac708fbf246c1083c3c4666e97b421485dd44a6', role: "menuitem", tabindex: this.disabled ? '-1' : '0' }, this.icon && h("nv-icon", { key: '3b37a8661321152859dbc4247b299e60e909fe34', name: this.icon }), h("slot", { key: 'e690d7574f8960c44bee2e3f20b1150b578a49da' }), this.label && h("span", { key: '32d487f8ec9c1d6a910734c825382899982a23a5', "data-scope": "text" }, this.label), this.shortcut && !this.hasSubmenu && h("kbd", { key: 'cefcda06f7cb217348e5027ee6a38f8731421d6e' }, this.shortcut), this.hasSubmenu && h("nv-icon", { key: '1085e47ae40ac38f87fca10dfbecbf32db95bace', name: "chevron-right" })));
47
47
  }
48
48
  static get is() { return "nv-menuitem"; }
49
49
  static get originalStyleUrls() {
@@ -158,7 +158,7 @@ export class NvNotification {
158
158
  /****************************************************************************/
159
159
  //#region RENDER
160
160
  render() {
161
- return (h(Host, { key: 'f8d336b349e7a71862bfa058022deee6fcf0a956', role: this.getAriaRole(), "aria-live": this.getAriaLive(), "aria-atomic": true, "aria-labelledby": this.getHeadingId() ?? null, "aria-describedby": this.getMessageId() ?? null, tabindex: "-1" }, h("div", { key: 'e75e6bd61a041bac249d77459ebcb3ac98dc54b7', "data-scope": "container", ref: el => (this.container = el) }, this.dismissible && (h("button", { key: 'b87bf092486682914d8c22612cb93c1f12027753', "data-scope": "dismiss", type: "button", onClick: this.dismiss.bind(this) }, h("nv-icon", { key: '95436607fe33bb5fc899af9dd430413b99c4615f', name: "x", size: "sm" }))), h("nv-icon", { key: '9962cdd859425b7c542fee370b637288aeb9a63f', name: this.icon ?? this.getDefaultIcon(), size: "md", "data-scope": "icon" }), h("div", { key: '8056d8d40228eea6de9dd8cc243f1a99b5fb23c1', "data-scope": "content" }, (this.heading || this.headingSlot) && (h("p", { key: '4d13e9d221f3ca0f7dbba81afdb77a6e57c55983', id: this.getHeadingId(), "data-scope": "heading" }, h("slot", { key: '6ab11ef7c73caa7864c44c58870c3ee7519e48a4', name: "heading" }, this.heading))), (this.message || this.messageSlot) && (h("p", { key: '8002e001201393026b28a55c17d51568e4d60aa3', id: this.getMessageId(), "data-scope": "message" }, h("slot", { key: 'ae7bac61287736609a9101c185d7ef3a6f0aee5d', name: "content" }, this.message))), this.actionsSlot && (h("div", { key: '7116aaf907928256e971c737730d1908bdb72b6a', "data-scope": "actions" }, h("slot", { key: 'ffe5530dccfbdea2b26646b376c22c008c67f77c', name: "actions" })))))));
161
+ return (h(Host, { key: '3c5025f664fcfc1e68856c003cd31ff10b8efdd9', role: this.getAriaRole(), "aria-live": this.getAriaLive(), "aria-atomic": true, "aria-labelledby": this.getHeadingId() ?? null, "aria-describedby": this.getMessageId() ?? null, tabindex: "-1" }, h("div", { key: 'a26032a0b0ac9818b5da1f6e815a8c96f096ed46', "data-scope": "container", ref: el => (this.container = el) }, this.dismissible && (h("button", { key: 'f660bc8b5e5d8df073b69fb60d1ed0b11ec75c6f', "data-scope": "dismiss", type: "button", onClick: this.dismiss.bind(this) }, h("nv-icon", { key: 'dbeea84ab7f1c965eae3a8ae74b7afca98453705', name: "x", size: "sm" }))), h("nv-icon", { key: '0cbcee4f8667579b38ea205bdd747aabf6bdca8c', name: this.icon ?? this.getDefaultIcon(), size: "md", "data-scope": "icon" }), h("div", { key: 'aed13fae98256180ff8d453c9f9d108eab429952', "data-scope": "content" }, (this.heading || this.headingSlot) && (h("p", { key: 'a2964d1c4dc744765ed916fe74d6cc167164eaf4', id: this.getHeadingId(), "data-scope": "heading" }, h("slot", { key: '2eee0bd4a73fd92ea283ae6cd50af2d1edc01f0c', name: "heading" }, this.heading))), (this.message || this.messageSlot) && (h("p", { key: '2f7e9b5429b9fa27bc4088b5d26955b8360695c1', id: this.getMessageId(), "data-scope": "message" }, h("slot", { key: 'f1b3dbe8722c8750231b4fb18fdc120ecfd04c54', name: "content" }, this.message))), this.actionsSlot && (h("div", { key: '56a881b3a53bb68a214f8db560805c726930b8d4', "data-scope": "actions" }, h("slot", { key: 'ece50671721f12e58dfd03df09545cb456d00a9c', name: "actions" })))))));
162
162
  }
163
163
  static get is() { return "nv-notification"; }
164
164
  static get originalStyleUrls() {
@@ -29,7 +29,7 @@ export class NvNotificationContainer {
29
29
  /****************************************************************************/
30
30
  //#region RENDER
31
31
  render() {
32
- return (h(Host, { key: 'a3fd9f89cf68fbd203b2bc669a85c3e33a9b9cb7', class: `position-${this.position}` }, h("slot", { key: '972e9722ec2ac5d909066d46ab9a9d3de4626ee6' })));
32
+ return (h(Host, { key: '97882d6391db2e1c9db884a84469db78136765e4', class: `position-${this.position}` }, h("slot", { key: '0a0c52f26006ebd186862634b7b5470c7410c976' })));
33
33
  }
34
34
  static get is() { return "nv-notificationcontainer"; }
35
35
  static get originalStyleUrls() {
@@ -0,0 +1,37 @@
1
+ nv-pagination-nav {
2
+ display: block;
3
+ }
4
+ nv-pagination-nav [data-scope=pagination-nav] {
5
+ display: flex;
6
+ align-items: center;
7
+ justify-content: center;
8
+ gap: var(--spacing-2);
9
+ flex-wrap: wrap;
10
+ }
11
+ nv-pagination-nav [data-scope=page-list] {
12
+ display: flex;
13
+ align-items: center;
14
+ gap: var(--spacing-2);
15
+ list-style: none;
16
+ margin: 0;
17
+ padding: 0;
18
+ }
19
+ nv-pagination-nav [data-scope=page-button] {
20
+ display: flex;
21
+ align-items: center;
22
+ }
23
+ nv-pagination-nav [data-scope=page-button] nv-button,
24
+ nv-pagination-nav [data-scope=page-button] nv-iconbutton {
25
+ min-width: var(--spacing-8);
26
+ justify-content: center;
27
+ }
28
+ nv-pagination-nav [data-scope=ellipsis] {
29
+ display: flex;
30
+ align-items: center;
31
+ justify-content: center;
32
+ min-width: var(--spacing-8);
33
+ height: var(--spacing-8);
34
+ color: var(--color-content-lower-text);
35
+ font-size: var(--font-size-sm);
36
+ user-select: none;
37
+ }
@@ -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;