@nova-design-system/nova-webcomponents 3.23.0 → 3.24.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 (792) hide show
  1. package/dist/cjs/app-globals-V2Kpy_OQ.js.map +1 -1
  2. package/dist/cjs/events.utils-BE6R5q9C.js +33 -0
  3. package/dist/cjs/events.utils-BE6R5q9C.js.map +1 -0
  4. package/dist/cjs/{grow.animation-BrWzyoUA.js → grow.animation-ynu_HmA_.js} +2 -30
  5. package/dist/cjs/grow.animation-ynu_HmA_.js.map +1 -0
  6. package/dist/cjs/{i18n.utils-BizoXo6c.js → i18n.utils-ku0bScip.js} +16 -20
  7. package/dist/cjs/{i18n.utils-BizoXo6c.js.map → i18n.utils-ku0bScip.js.map} +1 -1
  8. package/dist/cjs/index-B1na8x6M.js +12 -4
  9. package/dist/cjs/index.cjs.js +5 -2
  10. package/dist/cjs/index.cjs.js.map +1 -1
  11. package/dist/cjs/index.esm-CG1TVKfu.js +540 -0
  12. package/dist/cjs/index.esm-CG1TVKfu.js.map +1 -0
  13. package/dist/cjs/loader.cjs.js +1 -1
  14. package/dist/cjs/native.cjs.js +1 -1
  15. package/dist/cjs/nv-accordion.cjs.entry.js +2 -7
  16. package/dist/cjs/nv-accordion.entry.cjs.js.map +1 -1
  17. package/dist/cjs/nv-alert.cjs.entry.js +1 -2
  18. package/dist/cjs/nv-alert.entry.cjs.js.map +1 -1
  19. package/dist/cjs/nv-badge_2.cjs.entry.js +1 -1
  20. package/dist/cjs/nv-button.cjs.entry.js +3 -5
  21. package/dist/cjs/nv-button.entry.cjs.js.map +1 -1
  22. package/dist/cjs/nv-calendar.cjs.entry.js +14 -24
  23. package/dist/cjs/nv-calendar.entry.cjs.js.map +1 -1
  24. package/dist/cjs/nv-datagrid.cjs.entry.js +67 -72
  25. package/dist/cjs/nv-datagrid.entry.cjs.js.map +1 -1
  26. package/dist/cjs/nv-dialog.cjs.entry.js +6 -538
  27. package/dist/cjs/nv-dialog.entry.cjs.js.map +1 -1
  28. package/dist/cjs/nv-drawer.cjs.entry.js +443 -0
  29. package/dist/cjs/nv-drawer.entry.cjs.js.map +1 -0
  30. package/dist/cjs/nv-drawerfooter.nv-drawerheader.entry.cjs.js.map +1 -0
  31. package/dist/cjs/nv-drawerfooter_2.cjs.entry.js +144 -0
  32. package/dist/cjs/nv-fieldcheckbox.cjs.entry.js +6 -6
  33. package/dist/cjs/nv-fieldcheckbox.entry.cjs.js.map +1 -1
  34. package/dist/cjs/nv-fielddate.cjs.entry.js +12 -15
  35. package/dist/cjs/nv-fielddate.entry.cjs.js.map +1 -1
  36. package/dist/cjs/nv-fielddaterange.cjs.entry.js +12 -13
  37. package/dist/cjs/nv-fielddaterange.entry.cjs.js.map +1 -1
  38. package/dist/cjs/nv-fielddropdown.cjs.entry.js +24 -33
  39. package/dist/cjs/nv-fielddropdown.entry.cjs.js.map +1 -1
  40. package/dist/cjs/nv-fielddropdownitem.cjs.entry.js +2 -3
  41. package/dist/cjs/nv-fielddropdownitem.entry.cjs.js.map +1 -1
  42. package/dist/cjs/nv-fieldmultiselect.cjs.entry.js +19 -27
  43. package/dist/cjs/nv-fieldmultiselect.entry.cjs.js.map +1 -1
  44. package/dist/cjs/nv-fieldnumber.cjs.entry.js +6 -6
  45. package/dist/cjs/nv-fieldnumber.entry.cjs.js.map +1 -1
  46. package/dist/cjs/nv-fieldpassword.cjs.entry.js +6 -6
  47. package/dist/cjs/nv-fieldpassword.entry.cjs.js.map +1 -1
  48. package/dist/cjs/nv-fieldradio.cjs.entry.js +4 -4
  49. package/dist/cjs/nv-fieldradio.entry.cjs.js.map +1 -1
  50. package/dist/cjs/nv-fieldselect.cjs.entry.js +8 -8
  51. package/dist/cjs/nv-fieldselect.entry.cjs.js.map +1 -1
  52. package/dist/cjs/nv-fieldslider.cjs.entry.js +5 -5
  53. package/dist/cjs/nv-fieldslider.entry.cjs.js.map +1 -1
  54. package/dist/cjs/nv-fieldtext.cjs.entry.js +6 -6
  55. package/dist/cjs/nv-fieldtext.entry.cjs.js.map +1 -1
  56. package/dist/cjs/nv-fieldtextarea.cjs.entry.js +6 -7
  57. package/dist/cjs/nv-fieldtextarea.entry.cjs.js.map +1 -1
  58. package/dist/cjs/nv-fieldtime.cjs.entry.js +27 -35
  59. package/dist/cjs/nv-fieldtime.entry.cjs.js.map +1 -1
  60. package/dist/cjs/nv-icon.cjs.entry.js +2 -2
  61. package/dist/cjs/nv-icon.entry.cjs.js.map +1 -1
  62. package/dist/cjs/nv-iconbutton.nv-loader.entry.cjs.js.map +1 -1
  63. package/dist/cjs/nv-iconbutton_2.cjs.entry.js +5 -6
  64. package/dist/cjs/nv-menu.cjs.entry.js +3 -4
  65. package/dist/cjs/nv-menu.entry.cjs.js.map +1 -1
  66. package/dist/cjs/nv-menuitem.cjs.entry.js +1 -1
  67. package/dist/cjs/nv-notification-bullet.cjs.entry.js +1 -2
  68. package/dist/cjs/nv-notification-bullet.entry.cjs.js.map +1 -1
  69. package/dist/cjs/nv-notification.cjs.entry.js +6 -9
  70. package/dist/cjs/nv-notification.entry.cjs.js.map +1 -1
  71. package/dist/cjs/nv-notificationcontainer.cjs.entry.js +1 -1
  72. package/dist/cjs/nv-popover.cjs.entry.js +12 -12
  73. package/dist/cjs/nv-popover.entry.cjs.js.map +1 -1
  74. package/dist/cjs/nv-row.cjs.entry.js +1 -1
  75. package/dist/cjs/nv-sidebar.cjs.entry.js +3 -3
  76. package/dist/cjs/nv-sidebar.entry.cjs.js.map +1 -1
  77. package/dist/cjs/nv-sidebarcontent.cjs.entry.js +1 -1
  78. package/dist/cjs/nv-sidebardivider.cjs.entry.js +1 -1
  79. package/dist/cjs/nv-sidebarfooter.cjs.entry.js +1 -1
  80. package/dist/cjs/nv-sidebargroup.cjs.entry.js +1 -1
  81. package/dist/cjs/nv-sidebarheader.cjs.entry.js +1 -1
  82. package/dist/cjs/nv-sidebarlogo.cjs.entry.js +1 -1
  83. package/dist/cjs/nv-sidebarnavitem.cjs.entry.js +4 -5
  84. package/dist/cjs/nv-sidebarnavitem.entry.cjs.js.map +1 -1
  85. package/dist/cjs/nv-sidebarnavsubitem.cjs.entry.js +1 -1
  86. package/dist/cjs/nv-split.cjs.entry.js +43 -41
  87. package/dist/cjs/nv-split.entry.cjs.js.map +1 -1
  88. package/dist/cjs/nv-stack.cjs.entry.js +1 -1
  89. package/dist/cjs/nv-table.cjs.entry.js +6 -8
  90. package/dist/cjs/nv-table.entry.cjs.js.map +1 -1
  91. package/dist/cjs/nv-tableheader.cjs.entry.js +2 -2
  92. package/dist/cjs/nv-tableheader.entry.cjs.js.map +1 -1
  93. package/dist/cjs/nv-toggle.cjs.entry.js +2 -2
  94. package/dist/cjs/nv-togglebutton.cjs.entry.js +2 -2
  95. package/dist/cjs/nv-togglebutton.entry.cjs.js.map +1 -1
  96. package/dist/cjs/nv-togglebuttongroup.cjs.entry.js +3 -4
  97. package/dist/cjs/nv-togglebuttongroup.entry.cjs.js.map +1 -1
  98. package/dist/cjs/nv-tooltip.cjs.entry.js +1 -1
  99. package/dist/collection/collection-manifest.json +3 -0
  100. package/dist/collection/components/nv-accordion/nv-accordion.docs.js +66 -40
  101. package/dist/collection/components/nv-accordion/nv-accordion.docs.js.map +1 -1
  102. package/dist/collection/components/nv-accordion/nv-accordion.js +2 -7
  103. package/dist/collection/components/nv-accordion/nv-accordion.js.map +1 -1
  104. package/dist/collection/components/nv-alert/nv-alert.docs.js +18 -1
  105. package/dist/collection/components/nv-alert/nv-alert.docs.js.map +1 -1
  106. package/dist/collection/components/nv-alert/nv-alert.js +1 -2
  107. package/dist/collection/components/nv-alert/nv-alert.js.map +1 -1
  108. package/dist/collection/components/nv-avatar/nv-avatar.docs.js +56 -0
  109. package/dist/collection/components/nv-avatar/nv-avatar.docs.js.map +1 -1
  110. package/dist/collection/components/nv-badge/nv-badge.docs.js +64 -15
  111. package/dist/collection/components/nv-badge/nv-badge.docs.js.map +1 -1
  112. package/dist/collection/components/nv-breadcrumbs/nv-breadcrumbs.docs.js +10 -1
  113. package/dist/collection/components/nv-breadcrumbs/nv-breadcrumbs.docs.js.map +1 -1
  114. package/dist/collection/components/nv-button/nv-button.docs.js +38 -4
  115. package/dist/collection/components/nv-button/nv-button.docs.js.map +1 -1
  116. package/dist/collection/components/nv-button/nv-button.js +3 -5
  117. package/dist/collection/components/nv-button/nv-button.js.map +1 -1
  118. package/dist/collection/components/nv-buttongroup/nv-buttongroup.docs.js +22 -0
  119. package/dist/collection/components/nv-buttongroup/nv-buttongroup.docs.js.map +1 -1
  120. package/dist/collection/components/nv-calendar/nv-calendar.docs.js +269 -14
  121. package/dist/collection/components/nv-calendar/nv-calendar.docs.js.map +1 -1
  122. package/dist/collection/components/nv-calendar/nv-calendar.js +13 -22
  123. package/dist/collection/components/nv-calendar/nv-calendar.js.map +1 -1
  124. package/dist/collection/components/nv-calendar/partials/week-numbers.js +1 -2
  125. package/dist/collection/components/nv-calendar/partials/week-numbers.js.map +1 -1
  126. package/dist/collection/components/nv-calendar/test/nv-calendar.utils.test.js +11 -11
  127. package/dist/collection/components/nv-calendar/test/nv-calendar.utils.test.js.map +1 -1
  128. package/dist/collection/components/nv-calendar/test/partials/calendar-grid.logic.test.js +2 -2
  129. package/dist/collection/components/nv-calendar/test/partials/calendar-grid.logic.test.js.map +1 -1
  130. package/dist/collection/components/nv-calendar/test/partials/calendar-shortcuts.logic.test.js +6 -5
  131. package/dist/collection/components/nv-calendar/test/partials/calendar-shortcuts.logic.test.js.map +1 -1
  132. package/dist/collection/components/nv-calendar/test/partials/day-cell.logic.test.js +10 -1
  133. package/dist/collection/components/nv-calendar/test/partials/day-cell.logic.test.js.map +1 -1
  134. package/dist/collection/components/nv-col/nv-col.docs.js +8 -0
  135. package/dist/collection/components/nv-col/nv-col.docs.js.map +1 -1
  136. package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js +290 -286
  137. package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js.map +1 -1
  138. package/dist/collection/components/nv-datagrid/nv-datagrid.js +67 -72
  139. package/dist/collection/components/nv-datagrid/nv-datagrid.js.map +1 -1
  140. package/dist/collection/components/nv-dialog/nv-dialog.docs.js +64 -13
  141. package/dist/collection/components/nv-dialog/nv-dialog.docs.js.map +1 -1
  142. package/dist/collection/components/nv-drawer/nv-drawer.css +114 -0
  143. package/dist/collection/components/nv-drawer/nv-drawer.docs.js +145 -0
  144. package/dist/collection/components/nv-drawer/nv-drawer.docs.js.map +1 -0
  145. package/dist/collection/components/nv-drawer/nv-drawer.js +719 -0
  146. package/dist/collection/components/nv-drawer/nv-drawer.js.map +1 -0
  147. package/dist/collection/components/nv-drawerfooter/nv-drawerfooter.css +8 -0
  148. package/dist/collection/components/nv-drawerfooter/nv-drawerfooter.docs.js +6 -0
  149. package/dist/collection/components/nv-drawerfooter/nv-drawerfooter.docs.js.map +1 -0
  150. package/dist/collection/components/nv-drawerfooter/nv-drawerfooter.js +325 -0
  151. package/dist/collection/components/nv-drawerfooter/nv-drawerfooter.js.map +1 -0
  152. package/dist/collection/components/nv-drawerheader/nv-drawerheader.css +32 -0
  153. package/dist/collection/components/nv-drawerheader/nv-drawerheader.docs.js +6 -0
  154. package/dist/collection/components/nv-drawerheader/nv-drawerheader.docs.js.map +1 -0
  155. package/dist/collection/components/nv-drawerheader/nv-drawerheader.js +92 -0
  156. package/dist/collection/components/nv-drawerheader/nv-drawerheader.js.map +1 -0
  157. package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.docs.js +186 -136
  158. package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.docs.js.map +1 -1
  159. package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js +6 -6
  160. package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js.map +1 -1
  161. package/dist/collection/components/nv-fielddate/nv-fielddate.docs.js +300 -109
  162. package/dist/collection/components/nv-fielddate/nv-fielddate.docs.js.map +1 -1
  163. package/dist/collection/components/nv-fielddate/nv-fielddate.js +11 -14
  164. package/dist/collection/components/nv-fielddate/nv-fielddate.js.map +1 -1
  165. package/dist/collection/components/nv-fielddate/styles/nv-fielddate.css +1 -1
  166. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.docs.js +406 -1
  167. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.docs.js.map +1 -1
  168. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js +11 -12
  169. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js.map +1 -1
  170. package/dist/collection/components/nv-fielddaterange/styles/nv-fielddaterange.css +1 -1
  171. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js +210 -118
  172. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js.map +1 -1
  173. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js +22 -31
  174. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js.map +1 -1
  175. package/dist/collection/components/nv-fielddropdown/styles/nv-fielddropdown.css +1 -1
  176. package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.js +2 -3
  177. package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.js.map +1 -1
  178. package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.js +1 -1
  179. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js +462 -322
  180. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js.map +1 -1
  181. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js +17 -25
  182. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js.map +1 -1
  183. package/dist/collection/components/nv-fieldmultiselect/styles/nv-fieldmultiselect.css +1 -1
  184. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.css +1 -1
  185. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.docs.js +70 -7
  186. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.docs.js.map +1 -1
  187. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js +5 -5
  188. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js.map +1 -1
  189. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.css +1 -1
  190. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.docs.js +79 -6
  191. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.docs.js.map +1 -1
  192. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js +5 -5
  193. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js.map +1 -1
  194. package/dist/collection/components/nv-fieldradio/nv-fieldradio.docs.js +58 -6
  195. package/dist/collection/components/nv-fieldradio/nv-fieldradio.docs.js.map +1 -1
  196. package/dist/collection/components/nv-fieldradio/nv-fieldradio.js +4 -4
  197. package/dist/collection/components/nv-fieldradio/nv-fieldradio.js.map +1 -1
  198. package/dist/collection/components/nv-fieldselect/nv-fieldselect.docs.js +138 -30
  199. package/dist/collection/components/nv-fieldselect/nv-fieldselect.docs.js.map +1 -1
  200. package/dist/collection/components/nv-fieldselect/nv-fieldselect.js +7 -7
  201. package/dist/collection/components/nv-fieldselect/nv-fieldselect.js.map +1 -1
  202. package/dist/collection/components/nv-fieldselect/styles/nv-fieldselect.css +1 -1
  203. package/dist/collection/components/nv-fieldslider/nv-fieldslider.docs.js +138 -30
  204. package/dist/collection/components/nv-fieldslider/nv-fieldslider.docs.js.map +1 -1
  205. package/dist/collection/components/nv-fieldslider/nv-fieldslider.js +3 -3
  206. package/dist/collection/components/nv-fieldslider/partials/field-input.js +1 -1
  207. package/dist/collection/components/nv-fieldslider/partials/field-input.js.map +1 -1
  208. package/dist/collection/components/nv-fieldslider/styles/nv-fieldslider.css +1 -1
  209. package/dist/collection/components/nv-fieldtext/nv-fieldtext.css +1 -1
  210. package/dist/collection/components/nv-fieldtext/nv-fieldtext.docs.js +92 -16
  211. package/dist/collection/components/nv-fieldtext/nv-fieldtext.docs.js.map +1 -1
  212. package/dist/collection/components/nv-fieldtext/nv-fieldtext.js +5 -5
  213. package/dist/collection/components/nv-fieldtext/nv-fieldtext.js.map +1 -1
  214. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.docs.js +64 -3
  215. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.docs.js.map +1 -1
  216. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js +6 -7
  217. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js.map +1 -1
  218. package/dist/collection/components/nv-fieldtime/nv-fieldtime.docs.js +41 -22
  219. package/dist/collection/components/nv-fieldtime/nv-fieldtime.docs.js.map +1 -1
  220. package/dist/collection/components/nv-fieldtime/nv-fieldtime.js +25 -33
  221. package/dist/collection/components/nv-fieldtime/nv-fieldtime.js.map +1 -1
  222. package/dist/collection/components/nv-fieldtime/styles/nv-fieldtime.css +1 -1
  223. package/dist/collection/components/nv-fieldtime/utils/format-utils.js +1 -1
  224. package/dist/collection/components/nv-fieldtime/utils/format-utils.js.map +1 -1
  225. package/dist/collection/components/nv-icon/nv-icon.docs.js +46 -0
  226. package/dist/collection/components/nv-icon/nv-icon.docs.js.map +1 -1
  227. package/dist/collection/components/nv-icon/nv-icon.js +1 -1
  228. package/dist/collection/components/nv-icon/nv-icons.js +2 -0
  229. package/dist/collection/components/nv-icon/nv-icons.js.map +1 -1
  230. package/dist/collection/components/nv-iconbutton/nv-iconbutton.css +4 -4
  231. package/dist/collection/components/nv-iconbutton/nv-iconbutton.docs.js +18 -1
  232. package/dist/collection/components/nv-iconbutton/nv-iconbutton.docs.js.map +1 -1
  233. package/dist/collection/components/nv-iconbutton/nv-iconbutton.js +3 -4
  234. package/dist/collection/components/nv-iconbutton/nv-iconbutton.js.map +1 -1
  235. package/dist/collection/components/nv-loader/nv-loader.docs.js +8 -4
  236. package/dist/collection/components/nv-loader/nv-loader.docs.js.map +1 -1
  237. package/dist/collection/components/nv-loader/nv-loader.js +1 -1
  238. package/dist/collection/components/nv-menu/nv-menu.docs.js +17 -5
  239. package/dist/collection/components/nv-menu/nv-menu.docs.js.map +1 -1
  240. package/dist/collection/components/nv-menu/nv-menu.js +3 -4
  241. package/dist/collection/components/nv-menu/nv-menu.js.map +1 -1
  242. package/dist/collection/components/nv-menuitem/nv-menuitem.js +2 -2
  243. package/dist/collection/components/nv-notification/nv-notification.docs.js +34 -3
  244. package/dist/collection/components/nv-notification/nv-notification.docs.js.map +1 -1
  245. package/dist/collection/components/nv-notification/nv-notification.js +6 -9
  246. package/dist/collection/components/nv-notification/nv-notification.js.map +1 -1
  247. package/dist/collection/components/nv-notification-bullet/nv-notification-bullet.docs.js +60 -0
  248. package/dist/collection/components/nv-notification-bullet/nv-notification-bullet.docs.js.map +1 -1
  249. package/dist/collection/components/nv-notification-bullet/nv-notification-bullet.js +1 -2
  250. package/dist/collection/components/nv-notification-bullet/nv-notification-bullet.js.map +1 -1
  251. package/dist/collection/components/nv-notificationcontainer/nv-notificationcontainer.js +1 -1
  252. package/dist/collection/components/nv-popover/nv-popover.docs.js +35 -10
  253. package/dist/collection/components/nv-popover/nv-popover.docs.js.map +1 -1
  254. package/dist/collection/components/nv-popover/nv-popover.js +2 -3
  255. package/dist/collection/components/nv-popover/nv-popover.js.map +1 -1
  256. package/dist/collection/components/nv-row/nv-row.docs.js +7 -0
  257. package/dist/collection/components/nv-row/nv-row.docs.js.map +1 -1
  258. package/dist/collection/components/nv-row/nv-row.js +1 -1
  259. package/dist/collection/components/nv-sidebar/nv-sidebar.docs.js +39 -0
  260. package/dist/collection/components/nv-sidebar/nv-sidebar.docs.js.map +1 -1
  261. package/dist/collection/components/nv-sidebar/nv-sidebar.js +3 -3
  262. package/dist/collection/components/nv-sidebar/nv-sidebar.js.map +1 -1
  263. package/dist/collection/components/nv-sidebarcontent/nv-sidebarcontent.js +1 -1
  264. package/dist/collection/components/nv-sidebardivider/nv-sidebardivider.js +1 -1
  265. package/dist/collection/components/nv-sidebarfooter/nv-sidebarfooter.js +1 -1
  266. package/dist/collection/components/nv-sidebargroup/nv-sidebargroup.js +1 -1
  267. package/dist/collection/components/nv-sidebarheader/nv-sidebarheader.js +1 -1
  268. package/dist/collection/components/nv-sidebarlogo/nv-sidebarlogo.js +1 -1
  269. package/dist/collection/components/nv-sidebarnavitem/nv-sidebarnavitem.js +5 -6
  270. package/dist/collection/components/nv-sidebarnavitem/nv-sidebarnavitem.js.map +1 -1
  271. package/dist/collection/components/nv-sidebarnavsubitem/nv-sidebarnavsubitem.js +1 -1
  272. package/dist/collection/components/nv-split/nv-split.docs.js +38 -2
  273. package/dist/collection/components/nv-split/nv-split.docs.js.map +1 -1
  274. package/dist/collection/components/nv-split/nv-split.js +44 -42
  275. package/dist/collection/components/nv-split/nv-split.js.map +1 -1
  276. package/dist/collection/components/nv-split/styles/nv-split.css +2 -0
  277. package/dist/collection/components/nv-stack/nv-stack.docs.js +13 -0
  278. package/dist/collection/components/nv-stack/nv-stack.docs.js.map +1 -1
  279. package/dist/collection/components/nv-stack/nv-stack.js +1 -1
  280. package/dist/collection/components/nv-table/nv-table.docs.js +12 -0
  281. package/dist/collection/components/nv-table/nv-table.docs.js.map +1 -1
  282. package/dist/collection/components/nv-table/nv-table.js +1 -1
  283. package/dist/collection/components/nv-table/nv-table.utils.js +5 -7
  284. package/dist/collection/components/nv-table/nv-table.utils.js.map +1 -1
  285. package/dist/collection/components/nv-table/test/nv-table.utils.test.js +4 -5
  286. package/dist/collection/components/nv-table/test/nv-table.utils.test.js.map +1 -1
  287. package/dist/collection/components/nv-tableheader/nv-tableheader.docs.js +29 -1
  288. package/dist/collection/components/nv-tableheader/nv-tableheader.docs.js.map +1 -1
  289. package/dist/collection/components/nv-tableheader/nv-tableheader.js +2 -2
  290. package/dist/collection/components/nv-tableheader/nv-tableheader.js.map +1 -1
  291. package/dist/collection/components/nv-toggle/nv-toggle.docs.js +31 -0
  292. package/dist/collection/components/nv-toggle/nv-toggle.docs.js.map +1 -1
  293. package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
  294. package/dist/collection/components/nv-togglebutton/nv-togglebutton.js +1 -1
  295. package/dist/collection/components/nv-togglebutton/styles/nv-togglebutton.css +16 -12
  296. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.docs.js +20 -7
  297. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.docs.js.map +1 -1
  298. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.js +2 -3
  299. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.js.map +1 -1
  300. package/dist/collection/components/nv-togglebuttongroup/styles/nv-togglebuttongroup.css +4 -12
  301. package/dist/collection/components/nv-tooltip/nv-tooltip.docs.js +33 -6
  302. package/dist/collection/components/nv-tooltip/nv-tooltip.docs.js.map +1 -1
  303. package/dist/collection/components/nv-tooltip/nv-tooltip.js +1 -1
  304. package/dist/collection/templates/navigation.docs.js +1 -1
  305. package/dist/collection/templates/navigation.docs.js.map +1 -1
  306. package/dist/collection/utils/i18n.utils.js +1 -2
  307. package/dist/collection/utils/i18n.utils.js.map +1 -1
  308. package/dist/collection/utils/search-engine/strategies/fuzzy.js +2 -2
  309. package/dist/collection/utils/search-engine/strategies/fuzzy.js.map +1 -1
  310. package/dist/collection/utils/search-engine/strategies/smart.js +2 -2
  311. package/dist/collection/utils/search-engine/strategies/smart.js.map +1 -1
  312. package/dist/collection/utils/search-engine/strategies/strict.js +2 -2
  313. package/dist/collection/utils/search-engine/strategies/strict.js.map +1 -1
  314. package/dist/collection/utils/search-engine/worker/worker-client.js +7 -10
  315. package/dist/collection/utils/search-engine/worker/worker-client.js.map +1 -1
  316. package/dist/components/index.js +4 -2
  317. package/dist/components/index.js.map +1 -1
  318. package/dist/components/nv-accordion-item.js +1 -1
  319. package/dist/components/nv-accordion.js +6 -11
  320. package/dist/components/nv-accordion.js.map +1 -1
  321. package/dist/components/nv-alert.js +2 -3
  322. package/dist/components/nv-alert.js.map +1 -1
  323. package/dist/components/nv-avatar.js +1 -1
  324. package/dist/components/nv-badge.js +1 -1
  325. package/dist/components/nv-breadcrumb.js +2 -2
  326. package/dist/components/nv-button.js +1 -1
  327. package/dist/components/nv-calendar.js +1 -1
  328. package/dist/components/nv-datagrid.js +69 -74
  329. package/dist/components/nv-datagrid.js.map +1 -1
  330. package/dist/components/nv-dialog.js +7 -539
  331. package/dist/components/nv-dialog.js.map +1 -1
  332. package/dist/components/nv-dialogfooter.js +1 -1
  333. package/dist/components/nv-drawer.d.ts +11 -0
  334. package/dist/components/nv-drawer.js +507 -0
  335. package/dist/components/nv-drawer.js.map +1 -0
  336. package/dist/components/nv-drawerfooter.d.ts +11 -0
  337. package/dist/components/nv-drawerfooter.js +9 -0
  338. package/dist/components/nv-drawerfooter.js.map +1 -0
  339. package/dist/components/nv-drawerheader.d.ts +11 -0
  340. package/dist/components/nv-drawerheader.js +9 -0
  341. package/dist/components/nv-drawerheader.js.map +1 -0
  342. package/dist/components/nv-fieldcheckbox.js +1 -1
  343. package/dist/components/nv-fielddate.js +18 -21
  344. package/dist/components/nv-fielddate.js.map +1 -1
  345. package/dist/components/nv-fielddaterange.js +18 -19
  346. package/dist/components/nv-fielddaterange.js.map +1 -1
  347. package/dist/components/nv-fielddropdown.js +29 -38
  348. package/dist/components/nv-fielddropdown.js.map +1 -1
  349. package/dist/components/nv-fielddropdownitem.js +1 -1
  350. package/dist/components/nv-fielddropdownitemcheck.js +1 -1
  351. package/dist/components/nv-fieldmultiselect.js +26 -34
  352. package/dist/components/nv-fieldmultiselect.js.map +1 -1
  353. package/dist/components/nv-fieldnumber.js +1 -1
  354. package/dist/components/nv-fieldpassword.js +9 -9
  355. package/dist/components/nv-fieldpassword.js.map +1 -1
  356. package/dist/components/nv-fieldradio.js +4 -4
  357. package/dist/components/nv-fieldradio.js.map +1 -1
  358. package/dist/components/nv-fieldselect.js +11 -11
  359. package/dist/components/nv-fieldselect.js.map +1 -1
  360. package/dist/components/nv-fieldslider.js +9 -9
  361. package/dist/components/nv-fieldslider.js.map +1 -1
  362. package/dist/components/nv-fieldtext.js +1 -1
  363. package/dist/components/nv-fieldtextarea.js +6 -7
  364. package/dist/components/nv-fieldtextarea.js.map +1 -1
  365. package/dist/components/nv-fieldtime.js +31 -39
  366. package/dist/components/nv-fieldtime.js.map +1 -1
  367. package/dist/components/nv-icon.js +1 -1
  368. package/dist/components/nv-iconbutton.js +1 -1
  369. package/dist/components/nv-loader.js +1 -1
  370. package/dist/components/nv-menu.js +6 -7
  371. package/dist/components/nv-menu.js.map +1 -1
  372. package/dist/components/nv-menuitem.js +1 -1
  373. package/dist/components/nv-notification-bullet.js +1 -1
  374. package/dist/components/nv-notification.js +7 -10
  375. package/dist/components/nv-notification.js.map +1 -1
  376. package/dist/components/nv-notificationcontainer.js +1 -1
  377. package/dist/components/nv-popover.js +1 -1
  378. package/dist/components/nv-row.js +1 -1
  379. package/dist/components/nv-sidebar.js +4 -4
  380. package/dist/components/nv-sidebar.js.map +1 -1
  381. package/dist/components/nv-sidebarcontent.js +1 -1
  382. package/dist/components/nv-sidebardivider.js +1 -1
  383. package/dist/components/nv-sidebarfooter.js +1 -1
  384. package/dist/components/nv-sidebargroup.js +1 -1
  385. package/dist/components/nv-sidebarheader.js +1 -1
  386. package/dist/components/nv-sidebarlogo.js +1 -1
  387. package/dist/components/nv-sidebarnavitem.js +6 -7
  388. package/dist/components/nv-sidebarnavitem.js.map +1 -1
  389. package/dist/components/nv-sidebarnavsubitem.js +1 -1
  390. package/dist/components/nv-split.js +43 -41
  391. package/dist/components/nv-split.js.map +1 -1
  392. package/dist/components/nv-stack.js +1 -1
  393. package/dist/components/nv-table.js +6 -8
  394. package/dist/components/nv-table.js.map +1 -1
  395. package/dist/components/nv-tableheader.js +5 -5
  396. package/dist/components/nv-tableheader.js.map +1 -1
  397. package/dist/components/nv-toggle.js +2 -2
  398. package/dist/components/nv-togglebutton.js +2 -2
  399. package/dist/components/nv-togglebutton.js.map +1 -1
  400. package/dist/components/nv-togglebuttongroup.js +3 -4
  401. package/dist/components/nv-togglebuttongroup.js.map +1 -1
  402. package/dist/components/nv-tooltip.js +1 -1
  403. package/dist/components/{p-D1i2OAGe.js → p-B45HbBWe.js} +6 -8
  404. package/dist/components/p-B45HbBWe.js.map +1 -0
  405. package/dist/components/p-B6GgGra-.js +29 -0
  406. package/dist/components/p-B6GgGra-.js.map +1 -0
  407. package/dist/components/{p-Dk8ekxr_.js → p-B7VlEQVW.js} +16 -26
  408. package/dist/components/p-B7VlEQVW.js.map +1 -0
  409. package/dist/components/{p-B-3kAnun.js → p-B9i3m6rk.js} +6 -6
  410. package/dist/components/p-B9i3m6rk.js.map +1 -0
  411. package/dist/components/{p-BQo7AMPX.js → p-BILd3Ta-.js} +9 -9
  412. package/dist/components/p-BILd3Ta-.js.map +1 -0
  413. package/dist/components/{p-Dc_0pr83.js → p-BISctfud.js} +8 -8
  414. package/dist/components/p-BISctfud.js.map +1 -0
  415. package/dist/components/{p-CIyQBhTX.js → p-BVOv1zgq.js} +4 -4
  416. package/dist/components/{p-CIyQBhTX.js.map → p-BVOv1zgq.js.map} +1 -1
  417. package/dist/components/{p-B6EYOx_n.js → p-Bg_l3jn1.js} +3 -3
  418. package/dist/components/{p-B6EYOx_n.js.map → p-Bg_l3jn1.js.map} +1 -1
  419. package/dist/components/{p-CBvZjfqs.js → p-C2QAWGhf.js} +4 -4
  420. package/dist/components/{p-CBvZjfqs.js.map → p-C2QAWGhf.js.map} +1 -1
  421. package/dist/components/{p-DzUXTCUy.js → p-COnt5ux_.js} +3 -3
  422. package/dist/components/{p-DzUXTCUy.js.map → p-COnt5ux_.js.map} +1 -1
  423. package/dist/components/{p-KUIQrV3D.js → p-Cc7XnqPp.js} +5 -5
  424. package/dist/components/{p-KUIQrV3D.js.map → p-Cc7XnqPp.js.map} +1 -1
  425. package/dist/components/{p-CmwaW0q4.js → p-D02w_Ru6.js} +3 -28
  426. package/dist/components/p-D02w_Ru6.js.map +1 -0
  427. package/dist/components/p-D3eWMME9.js +538 -0
  428. package/dist/components/p-D3eWMME9.js.map +1 -0
  429. package/dist/components/{p--iYGZN4R.js → p-D6APFL6N.js} +11 -11
  430. package/dist/components/p-D6APFL6N.js.map +1 -0
  431. package/dist/components/{p-DstpaOhw.js → p-DZJHk4fr.js} +3 -3
  432. package/dist/components/{p-DstpaOhw.js.map → p-DZJHk4fr.js.map} +1 -1
  433. package/dist/components/{p-Da9WgE5U.js → p-DiUP3TzF.js} +5 -5
  434. package/dist/components/{p-Da9WgE5U.js.map → p-DiUP3TzF.js.map} +1 -1
  435. package/dist/components/{p-DWG6az-u.js → p-DpDooigg.js} +5 -6
  436. package/dist/components/p-DpDooigg.js.map +1 -0
  437. package/dist/components/{p-BKfPh2in.js → p-Dr-67WvG.js} +4 -4
  438. package/dist/components/{p-BKfPh2in.js.map → p-Dr-67WvG.js.map} +1 -1
  439. package/dist/components/{p-DaiLIZ8f.js → p-DvapDVBj.js} +8 -9
  440. package/dist/components/p-DvapDVBj.js.map +1 -0
  441. package/dist/components/{p-DOZbXX2L.js → p-IlwlcG9l.js} +16 -20
  442. package/dist/components/p-IlwlcG9l.js.map +1 -0
  443. package/dist/components/p-W6vOfMC9.js +63 -0
  444. package/dist/components/p-W6vOfMC9.js.map +1 -0
  445. package/dist/components/{p-CBOuqJTb.js → p-nfYynlVq.js} +4 -4
  446. package/dist/components/{p-CBOuqJTb.js.map → p-nfYynlVq.js.map} +1 -1
  447. package/dist/components/{p-CBF8V1L7.js → p-tyaJ-nGV.js} +3 -4
  448. package/dist/components/p-tyaJ-nGV.js.map +1 -0
  449. package/dist/components/p-u-maNLLs.js +145 -0
  450. package/dist/components/p-u-maNLLs.js.map +1 -0
  451. package/dist/esm/app-globals-DQuL1Twl.js.map +1 -1
  452. package/dist/esm/events.utils-B6GgGra-.js +29 -0
  453. package/dist/esm/events.utils-B6GgGra-.js.map +1 -0
  454. package/dist/esm/{grow.animation-CvHGHBL4.js → grow.animation-D7ep_aVl.js} +3 -28
  455. package/dist/esm/grow.animation-D7ep_aVl.js.map +1 -0
  456. package/dist/esm/{i18n.utils-DOZbXX2L.js → i18n.utils-IlwlcG9l.js} +16 -20
  457. package/dist/esm/{i18n.utils-DOZbXX2L.js.map → i18n.utils-IlwlcG9l.js.map} +1 -1
  458. package/dist/esm/index-CasQushP.js +12 -4
  459. package/dist/esm/index.esm-D3eWMME9.js +538 -0
  460. package/dist/esm/index.esm-D3eWMME9.js.map +1 -0
  461. package/dist/esm/index.js +4 -2
  462. package/dist/esm/index.js.map +1 -1
  463. package/dist/esm/loader.js +1 -1
  464. package/dist/esm/native.js +1 -1
  465. package/dist/esm/nv-accordion.entry.js +2 -7
  466. package/dist/esm/nv-accordion.entry.js.map +1 -1
  467. package/dist/esm/nv-alert.entry.js +1 -2
  468. package/dist/esm/nv-alert.entry.js.map +1 -1
  469. package/dist/esm/nv-badge_2.entry.js +1 -1
  470. package/dist/esm/nv-button.entry.js +3 -5
  471. package/dist/esm/nv-button.entry.js.map +1 -1
  472. package/dist/esm/nv-calendar.entry.js +14 -24
  473. package/dist/esm/nv-calendar.entry.js.map +1 -1
  474. package/dist/esm/nv-datagrid.entry.js +67 -72
  475. package/dist/esm/nv-datagrid.entry.js.map +1 -1
  476. package/dist/esm/nv-dialog.entry.js +3 -535
  477. package/dist/esm/nv-dialog.entry.js.map +1 -1
  478. package/dist/esm/nv-drawer.entry.js +441 -0
  479. package/dist/esm/nv-drawer.entry.js.map +1 -0
  480. package/dist/esm/nv-drawerfooter.nv-drawerheader.entry.js.map +1 -0
  481. package/dist/esm/nv-drawerfooter_2.entry.js +141 -0
  482. package/dist/esm/nv-fieldcheckbox.entry.js +6 -6
  483. package/dist/esm/nv-fieldcheckbox.entry.js.map +1 -1
  484. package/dist/esm/nv-fielddate.entry.js +12 -15
  485. package/dist/esm/nv-fielddate.entry.js.map +1 -1
  486. package/dist/esm/nv-fielddaterange.entry.js +12 -13
  487. package/dist/esm/nv-fielddaterange.entry.js.map +1 -1
  488. package/dist/esm/nv-fielddropdown.entry.js +24 -33
  489. package/dist/esm/nv-fielddropdown.entry.js.map +1 -1
  490. package/dist/esm/nv-fielddropdownitem.entry.js +2 -3
  491. package/dist/esm/nv-fielddropdownitem.entry.js.map +1 -1
  492. package/dist/esm/nv-fieldmultiselect.entry.js +19 -27
  493. package/dist/esm/nv-fieldmultiselect.entry.js.map +1 -1
  494. package/dist/esm/nv-fieldnumber.entry.js +6 -6
  495. package/dist/esm/nv-fieldnumber.entry.js.map +1 -1
  496. package/dist/esm/nv-fieldpassword.entry.js +6 -6
  497. package/dist/esm/nv-fieldpassword.entry.js.map +1 -1
  498. package/dist/esm/nv-fieldradio.entry.js +4 -4
  499. package/dist/esm/nv-fieldradio.entry.js.map +1 -1
  500. package/dist/esm/nv-fieldselect.entry.js +8 -8
  501. package/dist/esm/nv-fieldselect.entry.js.map +1 -1
  502. package/dist/esm/nv-fieldslider.entry.js +5 -5
  503. package/dist/esm/nv-fieldslider.entry.js.map +1 -1
  504. package/dist/esm/nv-fieldtext.entry.js +6 -6
  505. package/dist/esm/nv-fieldtext.entry.js.map +1 -1
  506. package/dist/esm/nv-fieldtextarea.entry.js +6 -7
  507. package/dist/esm/nv-fieldtextarea.entry.js.map +1 -1
  508. package/dist/esm/nv-fieldtime.entry.js +27 -35
  509. package/dist/esm/nv-fieldtime.entry.js.map +1 -1
  510. package/dist/esm/nv-icon.entry.js +2 -2
  511. package/dist/esm/nv-icon.entry.js.map +1 -1
  512. package/dist/esm/nv-iconbutton.nv-loader.entry.js.map +1 -1
  513. package/dist/esm/nv-iconbutton_2.entry.js +5 -6
  514. package/dist/esm/nv-menu.entry.js +3 -4
  515. package/dist/esm/nv-menu.entry.js.map +1 -1
  516. package/dist/esm/nv-menuitem.entry.js +1 -1
  517. package/dist/esm/nv-notification-bullet.entry.js +1 -2
  518. package/dist/esm/nv-notification-bullet.entry.js.map +1 -1
  519. package/dist/esm/nv-notification.entry.js +6 -9
  520. package/dist/esm/nv-notification.entry.js.map +1 -1
  521. package/dist/esm/nv-notificationcontainer.entry.js +1 -1
  522. package/dist/esm/nv-popover.entry.js +4 -4
  523. package/dist/esm/nv-popover.entry.js.map +1 -1
  524. package/dist/esm/nv-row.entry.js +1 -1
  525. package/dist/esm/nv-sidebar.entry.js +3 -3
  526. package/dist/esm/nv-sidebar.entry.js.map +1 -1
  527. package/dist/esm/nv-sidebarcontent.entry.js +1 -1
  528. package/dist/esm/nv-sidebardivider.entry.js +1 -1
  529. package/dist/esm/nv-sidebarfooter.entry.js +1 -1
  530. package/dist/esm/nv-sidebargroup.entry.js +1 -1
  531. package/dist/esm/nv-sidebarheader.entry.js +1 -1
  532. package/dist/esm/nv-sidebarlogo.entry.js +1 -1
  533. package/dist/esm/nv-sidebarnavitem.entry.js +4 -5
  534. package/dist/esm/nv-sidebarnavitem.entry.js.map +1 -1
  535. package/dist/esm/nv-sidebarnavsubitem.entry.js +1 -1
  536. package/dist/esm/nv-split.entry.js +43 -41
  537. package/dist/esm/nv-split.entry.js.map +1 -1
  538. package/dist/esm/nv-stack.entry.js +1 -1
  539. package/dist/esm/nv-table.entry.js +6 -8
  540. package/dist/esm/nv-table.entry.js.map +1 -1
  541. package/dist/esm/nv-tableheader.entry.js +2 -2
  542. package/dist/esm/nv-tableheader.entry.js.map +1 -1
  543. package/dist/esm/nv-toggle.entry.js +2 -2
  544. package/dist/esm/nv-togglebutton.entry.js +2 -2
  545. package/dist/esm/nv-togglebutton.entry.js.map +1 -1
  546. package/dist/esm/nv-togglebuttongroup.entry.js +3 -4
  547. package/dist/esm/nv-togglebuttongroup.entry.js.map +1 -1
  548. package/dist/esm/nv-tooltip.entry.js +1 -1
  549. package/dist/lib/generators/angular-output.js +9 -7
  550. package/dist/lib/generators/angular-output.js.map +1 -1
  551. package/dist/lib/generators/docs-blazor.js +32 -14
  552. package/dist/lib/generators/docs-blazor.js.map +1 -1
  553. package/dist/lib/generators/vue-output.js +10 -11
  554. package/dist/lib/generators/vue-output.js.map +1 -1
  555. package/dist/lib/utils/componentBinding.js +9 -10
  556. package/dist/lib/utils/componentBinding.js.map +1 -1
  557. package/dist/lib/utils/parseToCSharpTypes.js +3 -16
  558. package/dist/lib/utils/parseToCSharpTypes.js.map +1 -1
  559. package/dist/lib/utils/spread.js +3 -4
  560. package/dist/lib/utils/spread.js.map +1 -1
  561. package/dist/native/index.esm.js +1 -1
  562. package/dist/native/index.esm.js.map +1 -1
  563. package/dist/native/native.css +1 -1
  564. package/dist/native/native.esm.js +1 -1
  565. package/dist/native/nv-accordion.entry.esm.js.map +1 -1
  566. package/dist/native/nv-alert.entry.esm.js.map +1 -1
  567. package/dist/native/nv-button.entry.esm.js.map +1 -1
  568. package/dist/native/nv-calendar.entry.esm.js.map +1 -1
  569. package/dist/native/nv-datagrid.entry.esm.js.map +1 -1
  570. package/dist/native/nv-dialog.entry.esm.js.map +1 -1
  571. package/dist/native/nv-drawer.entry.esm.js.map +1 -0
  572. package/dist/native/nv-drawerfooter.nv-drawerheader.entry.esm.js.map +1 -0
  573. package/dist/native/nv-fieldcheckbox.entry.esm.js.map +1 -1
  574. package/dist/native/nv-fielddate.entry.esm.js.map +1 -1
  575. package/dist/native/nv-fielddaterange.entry.esm.js.map +1 -1
  576. package/dist/native/nv-fielddropdown.entry.esm.js.map +1 -1
  577. package/dist/native/nv-fielddropdownitem.entry.esm.js.map +1 -1
  578. package/dist/native/nv-fieldmultiselect.entry.esm.js.map +1 -1
  579. package/dist/native/nv-fieldnumber.entry.esm.js.map +1 -1
  580. package/dist/native/nv-fieldpassword.entry.esm.js.map +1 -1
  581. package/dist/native/nv-fieldradio.entry.esm.js.map +1 -1
  582. package/dist/native/nv-fieldselect.entry.esm.js.map +1 -1
  583. package/dist/native/nv-fieldslider.entry.esm.js.map +1 -1
  584. package/dist/native/nv-fieldtext.entry.esm.js.map +1 -1
  585. package/dist/native/nv-fieldtextarea.entry.esm.js.map +1 -1
  586. package/dist/native/nv-fieldtime.entry.esm.js.map +1 -1
  587. package/dist/native/nv-icon.entry.esm.js.map +1 -1
  588. package/dist/native/nv-iconbutton.nv-loader.entry.esm.js.map +1 -1
  589. package/dist/native/nv-menu.entry.esm.js.map +1 -1
  590. package/dist/native/nv-notification-bullet.entry.esm.js.map +1 -1
  591. package/dist/native/nv-notification.entry.esm.js.map +1 -1
  592. package/dist/native/nv-popover.entry.esm.js.map +1 -1
  593. package/dist/native/nv-sidebar.entry.esm.js.map +1 -1
  594. package/dist/native/nv-sidebarnavitem.entry.esm.js.map +1 -1
  595. package/dist/native/nv-split.entry.esm.js.map +1 -1
  596. package/dist/native/nv-table.entry.esm.js.map +1 -1
  597. package/dist/native/nv-tableheader.entry.esm.js.map +1 -1
  598. package/dist/native/nv-togglebutton.entry.esm.js.map +1 -1
  599. package/dist/native/nv-togglebuttongroup.entry.esm.js.map +1 -1
  600. package/dist/native/{p-b21e38a3.entry.js → p-04a2fe7f.entry.js} +2 -2
  601. package/dist/native/p-08204da4.entry.js +2 -0
  602. package/dist/native/{p-bd6ae5f3.entry.js.map → p-08204da4.entry.js.map} +1 -1
  603. package/dist/native/{p-e0adb05d.entry.js → p-0e07b91b.entry.js} +2 -2
  604. package/dist/native/p-0e07b91b.entry.js.map +1 -0
  605. package/dist/native/p-136dfb3e.entry.js +2 -0
  606. package/dist/native/p-136dfb3e.entry.js.map +1 -0
  607. package/dist/native/p-1f2dd37f.entry.js +2 -0
  608. package/dist/native/p-1f2dd37f.entry.js.map +1 -0
  609. package/dist/native/p-255a0482.entry.js +2 -0
  610. package/dist/native/p-255a0482.entry.js.map +1 -0
  611. package/dist/native/{p-f73e9752.entry.js → p-3305a7e6.entry.js} +2 -2
  612. package/dist/native/p-3305a7e6.entry.js.map +1 -0
  613. package/dist/native/p-36b0a6f0.entry.js +2 -0
  614. package/dist/native/p-36b0a6f0.entry.js.map +1 -0
  615. package/dist/native/p-434bc910.entry.js +2 -0
  616. package/dist/native/p-434bc910.entry.js.map +1 -0
  617. package/dist/native/{p-ea98ba7a.entry.js → p-436029a5.entry.js} +2 -2
  618. package/dist/native/p-460fdf02.entry.js +2 -0
  619. package/dist/native/p-460fdf02.entry.js.map +1 -0
  620. package/dist/native/p-477e02cf.entry.js +2 -0
  621. package/dist/native/p-477e02cf.entry.js.map +1 -0
  622. package/dist/native/{p-28afb852.entry.js → p-4efb582b.entry.js} +2 -2
  623. package/dist/native/p-4efb582b.entry.js.map +1 -0
  624. package/dist/native/p-4f1dfa32.entry.js +2 -0
  625. package/dist/native/p-4f1dfa32.entry.js.map +1 -0
  626. package/dist/native/p-51b7de55.entry.js +13 -0
  627. package/dist/native/p-51b7de55.entry.js.map +1 -0
  628. package/dist/native/{p-37c6d559.entry.js → p-5dd120dc.entry.js} +2 -2
  629. package/dist/native/p-5dd120dc.entry.js.map +1 -0
  630. package/dist/native/{p-5acf105e.entry.js → p-67181258.entry.js} +2 -2
  631. package/dist/native/p-6a81884b.entry.js +2 -0
  632. package/dist/native/p-6a81884b.entry.js.map +1 -0
  633. package/dist/native/p-6aa483de.entry.js +2 -0
  634. package/dist/native/{p-b1a917c7.entry.js → p-6fc79712.entry.js} +2 -2
  635. package/dist/native/{p-ee04ea09.entry.js → p-729589cb.entry.js} +2 -2
  636. package/dist/native/p-729589cb.entry.js.map +1 -0
  637. package/dist/native/p-78bf7650.entry.js +2 -0
  638. package/dist/native/p-7e6e9ea2.entry.js +2 -0
  639. package/dist/native/p-8f1cd9e2.entry.js +2 -0
  640. package/dist/native/p-8f1cd9e2.entry.js.map +1 -0
  641. package/dist/native/{p-4cf47e1a.entry.js → p-910cd685.entry.js} +2 -2
  642. package/dist/native/p-91eaf02e.entry.js +2 -0
  643. package/dist/native/p-91eaf02e.entry.js.map +1 -0
  644. package/dist/native/p-93e35975.entry.js +2 -0
  645. package/dist/native/p-93e35975.entry.js.map +1 -0
  646. package/dist/native/{p-9d8257dc.entry.js → p-96c45604.entry.js} +2 -2
  647. package/dist/native/{p-6f456ae4.entry.js → p-9b6ad782.entry.js} +2 -2
  648. package/dist/native/{p-6f456ae4.entry.js.map → p-9b6ad782.entry.js.map} +1 -1
  649. package/dist/native/{p-fd872d54.entry.js → p-9f32c3ea.entry.js} +2 -2
  650. package/dist/native/p-B6GgGra-.js +2 -0
  651. package/dist/native/p-B6GgGra-.js.map +1 -0
  652. package/dist/native/p-Blc6XEY7.js +2 -0
  653. package/dist/native/p-Blc6XEY7.js.map +1 -0
  654. package/dist/native/p-D3eWMME9.js +6 -0
  655. package/dist/native/p-D3eWMME9.js.map +1 -0
  656. package/dist/native/p-DQuL1Twl.js.map +1 -1
  657. package/dist/native/p-IlwlcG9l.js +2 -0
  658. package/dist/native/{p-DOZbXX2L.js.map → p-IlwlcG9l.js.map} +1 -1
  659. package/dist/native/{p-b0935c49.entry.js → p-a6fea322.entry.js} +2 -2
  660. package/dist/native/p-ae279ae9.entry.js +2 -0
  661. package/dist/native/p-ae279ae9.entry.js.map +1 -0
  662. package/dist/native/p-ba1286aa.entry.js +2 -0
  663. package/dist/native/p-ba1286aa.entry.js.map +1 -0
  664. package/dist/native/p-bb52a5a9.entry.js +2 -0
  665. package/dist/native/p-bb52a5a9.entry.js.map +1 -0
  666. package/dist/native/p-bc90247e.entry.js +2 -0
  667. package/dist/native/p-bc90247e.entry.js.map +1 -0
  668. package/dist/native/{p-0493fb6d.entry.js → p-c2a73a5a.entry.js} +2 -2
  669. package/dist/native/p-c4c11549.entry.js +2 -0
  670. package/dist/native/{p-3c54e422.entry.js → p-c5ecdc49.entry.js} +2 -2
  671. package/dist/native/p-c5ecdc49.entry.js.map +1 -0
  672. package/dist/native/{p-527e9b56.entry.js → p-cb1b9edb.entry.js} +2 -2
  673. package/dist/native/p-cb1b9edb.entry.js.map +1 -0
  674. package/dist/native/p-cdaf54b0.entry.js +2 -0
  675. package/dist/native/p-cdaf54b0.entry.js.map +1 -0
  676. package/dist/native/{p-e7dc36d9.entry.js → p-ceb8fe8a.entry.js} +2 -2
  677. package/dist/native/p-daf7541b.entry.js +2 -0
  678. package/dist/native/p-daf7541b.entry.js.map +1 -0
  679. package/dist/native/{p-da893df2.entry.js → p-ded4be77.entry.js} +2 -2
  680. package/dist/native/p-ded4be77.entry.js.map +1 -0
  681. package/dist/native/p-e1fc5f8c.entry.js +2 -0
  682. package/dist/native/p-e1fc5f8c.entry.js.map +1 -0
  683. package/dist/native/{p-d4f95c86.entry.js → p-e6c69f7d.entry.js} +2 -2
  684. package/dist/native/p-e6c69f7d.entry.js.map +1 -0
  685. package/dist/native/p-e83603f1.entry.js +2 -0
  686. package/dist/native/p-e83603f1.entry.js.map +1 -0
  687. package/dist/native/p-ec217581.entry.js +2 -0
  688. package/dist/native/p-ec217581.entry.js.map +1 -0
  689. package/dist/native/p-ee694832.entry.js +2 -0
  690. package/dist/native/p-ee694832.entry.js.map +1 -0
  691. package/dist/native/{p-b1ef2f25.entry.js → p-f7e0146e.entry.js} +2 -2
  692. package/dist/native/p-f7e0146e.entry.js.map +1 -0
  693. package/dist/types/components/nv-drawer/nv-drawer.d.ts +161 -0
  694. package/dist/types/components/nv-drawer/nv-drawer.docs.d.ts +4 -0
  695. package/dist/types/components/nv-drawerfooter/nv-drawerfooter.d.ts +76 -0
  696. package/dist/types/components/nv-drawerfooter/nv-drawerfooter.docs.d.ts +4 -0
  697. package/dist/types/components/nv-drawerheader/nv-drawerheader.d.ts +20 -0
  698. package/dist/types/components/nv-drawerheader/nv-drawerheader.docs.d.ts +4 -0
  699. package/dist/types/components/nv-icon/nv-icons.d.ts +1 -1
  700. package/dist/types/components/nv-split/nv-split.d.ts +4 -4
  701. package/dist/types/components.d.ts +292 -5
  702. package/dist/vscode-data.json +153 -1
  703. package/hydrate/index.js +969 -408
  704. package/hydrate/index.mjs +969 -408
  705. package/package.json +13 -1
  706. package/dist/cjs/grow.animation-BrWzyoUA.js.map +0 -1
  707. package/dist/components/p--iYGZN4R.js.map +0 -1
  708. package/dist/components/p-B-3kAnun.js.map +0 -1
  709. package/dist/components/p-BQo7AMPX.js.map +0 -1
  710. package/dist/components/p-CBF8V1L7.js.map +0 -1
  711. package/dist/components/p-CmwaW0q4.js.map +0 -1
  712. package/dist/components/p-D1i2OAGe.js.map +0 -1
  713. package/dist/components/p-DOZbXX2L.js.map +0 -1
  714. package/dist/components/p-DWG6az-u.js.map +0 -1
  715. package/dist/components/p-DaiLIZ8f.js.map +0 -1
  716. package/dist/components/p-Dc_0pr83.js.map +0 -1
  717. package/dist/components/p-Dk8ekxr_.js.map +0 -1
  718. package/dist/esm/grow.animation-CvHGHBL4.js.map +0 -1
  719. package/dist/native/p-02df60a5.entry.js +0 -2
  720. package/dist/native/p-02df60a5.entry.js.map +0 -1
  721. package/dist/native/p-0b8d6777.entry.js +0 -13
  722. package/dist/native/p-0b8d6777.entry.js.map +0 -1
  723. package/dist/native/p-0e7e693f.entry.js +0 -2
  724. package/dist/native/p-0e7e693f.entry.js.map +0 -1
  725. package/dist/native/p-0fe60a9d.entry.js +0 -2
  726. package/dist/native/p-0fe60a9d.entry.js.map +0 -1
  727. package/dist/native/p-14b0bf14.entry.js +0 -2
  728. package/dist/native/p-14b0bf14.entry.js.map +0 -1
  729. package/dist/native/p-28afb852.entry.js.map +0 -1
  730. package/dist/native/p-2cf77850.entry.js +0 -2
  731. package/dist/native/p-2cf77850.entry.js.map +0 -1
  732. package/dist/native/p-31a12d8a.entry.js +0 -2
  733. package/dist/native/p-31a12d8a.entry.js.map +0 -1
  734. package/dist/native/p-37c6d559.entry.js.map +0 -1
  735. package/dist/native/p-3c54e422.entry.js.map +0 -1
  736. package/dist/native/p-3c9b22ff.entry.js +0 -2
  737. package/dist/native/p-3c9b22ff.entry.js.map +0 -1
  738. package/dist/native/p-4a71f223.entry.js +0 -2
  739. package/dist/native/p-4a71f223.entry.js.map +0 -1
  740. package/dist/native/p-527e9b56.entry.js.map +0 -1
  741. package/dist/native/p-5bce524d.entry.js +0 -2
  742. package/dist/native/p-5bce524d.entry.js.map +0 -1
  743. package/dist/native/p-63bc0a05.entry.js +0 -2
  744. package/dist/native/p-63bc0a05.entry.js.map +0 -1
  745. package/dist/native/p-63bf86de.entry.js +0 -2
  746. package/dist/native/p-6a3c1413.entry.js +0 -2
  747. package/dist/native/p-7e274db7.entry.js +0 -7
  748. package/dist/native/p-7e274db7.entry.js.map +0 -1
  749. package/dist/native/p-86b2b071.entry.js +0 -2
  750. package/dist/native/p-86b2b071.entry.js.map +0 -1
  751. package/dist/native/p-8b278fce.entry.js +0 -2
  752. package/dist/native/p-8b278fce.entry.js.map +0 -1
  753. package/dist/native/p-9c543ab2.entry.js +0 -2
  754. package/dist/native/p-9c543ab2.entry.js.map +0 -1
  755. package/dist/native/p-DOZbXX2L.js +0 -2
  756. package/dist/native/p-DS5GOtQ3.js +0 -2
  757. package/dist/native/p-DS5GOtQ3.js.map +0 -1
  758. package/dist/native/p-a2aa6872.entry.js +0 -2
  759. package/dist/native/p-b1ef2f25.entry.js.map +0 -1
  760. package/dist/native/p-b2ed6d34.entry.js +0 -2
  761. package/dist/native/p-b2ed6d34.entry.js.map +0 -1
  762. package/dist/native/p-bd6ae5f3.entry.js +0 -2
  763. package/dist/native/p-c98b9ce4.entry.js +0 -2
  764. package/dist/native/p-c98b9ce4.entry.js.map +0 -1
  765. package/dist/native/p-cc305619.entry.js +0 -2
  766. package/dist/native/p-cc305619.entry.js.map +0 -1
  767. package/dist/native/p-d1cfdc3e.entry.js +0 -2
  768. package/dist/native/p-d1cfdc3e.entry.js.map +0 -1
  769. package/dist/native/p-d3b1bd81.entry.js +0 -2
  770. package/dist/native/p-d424b9aa.entry.js +0 -2
  771. package/dist/native/p-d424b9aa.entry.js.map +0 -1
  772. package/dist/native/p-d4f95c86.entry.js.map +0 -1
  773. package/dist/native/p-da893df2.entry.js.map +0 -1
  774. package/dist/native/p-e0adb05d.entry.js.map +0 -1
  775. package/dist/native/p-e6a37207.entry.js +0 -2
  776. package/dist/native/p-e6a37207.entry.js.map +0 -1
  777. package/dist/native/p-ee04ea09.entry.js.map +0 -1
  778. package/dist/native/p-f73e9752.entry.js.map +0 -1
  779. /package/dist/native/{p-b21e38a3.entry.js.map → p-04a2fe7f.entry.js.map} +0 -0
  780. /package/dist/native/{p-ea98ba7a.entry.js.map → p-436029a5.entry.js.map} +0 -0
  781. /package/dist/native/{p-5acf105e.entry.js.map → p-67181258.entry.js.map} +0 -0
  782. /package/dist/native/{p-63bf86de.entry.js.map → p-6aa483de.entry.js.map} +0 -0
  783. /package/dist/native/{p-b1a917c7.entry.js.map → p-6fc79712.entry.js.map} +0 -0
  784. /package/dist/native/{p-d3b1bd81.entry.js.map → p-78bf7650.entry.js.map} +0 -0
  785. /package/dist/native/{p-a2aa6872.entry.js.map → p-7e6e9ea2.entry.js.map} +0 -0
  786. /package/dist/native/{p-4cf47e1a.entry.js.map → p-910cd685.entry.js.map} +0 -0
  787. /package/dist/native/{p-9d8257dc.entry.js.map → p-96c45604.entry.js.map} +0 -0
  788. /package/dist/native/{p-fd872d54.entry.js.map → p-9f32c3ea.entry.js.map} +0 -0
  789. /package/dist/native/{p-b0935c49.entry.js.map → p-a6fea322.entry.js.map} +0 -0
  790. /package/dist/native/{p-0493fb6d.entry.js.map → p-c2a73a5a.entry.js.map} +0 -0
  791. /package/dist/native/{p-6a3c1413.entry.js.map → p-c4c11549.entry.js.map} +0 -0
  792. /package/dist/native/{p-e7dc36d9.entry.js.map → p-ceb8fe8a.entry.js.map} +0 -0
@@ -3,10 +3,17 @@ const NvRowDocs = {
3
3
  component: 'nv-row',
4
4
  subcomponents: ['nv-col'],
5
5
  stories: [
6
+ // Default
6
7
  {
7
8
  name: 'Default',
8
9
  template: (h("nv-row", { "data-storybook-args": true }, h("nv-col", { size: 4 }, "Col-4"), h("nv-col", { size: 8 }, "Col-8"))),
9
10
  },
11
+ // SlotDefault
12
+ {
13
+ name: 'SlotDefault',
14
+ description: 'The row content.',
15
+ template: (h("nv-row", null, h("nv-col", { size: 4 }, "Col-4"), h("nv-col", { size: 8 }, "Col-8"))),
16
+ },
10
17
  ],
11
18
  };
12
19
  export default NvRowDocs;
@@ -1 +1 @@
1
- {"version":3,"file":"nv-row.docs.js","sourceRoot":"","sources":["../../../../src/components/nv-row/nv-row.docs.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAIlC,MAAM,SAAS,GAA+B;IAC5C,SAAS,EAAE,QAAQ;IACnB,aAAa,EAAE,CAAC,QAAQ,CAAC;IACzB,OAAO,EAAE;QACP;YACE,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,CACR;gBACE,cAAQ,IAAI,EAAE,CAAC,YAAgB;gBAC/B,cAAQ,IAAI,EAAE,CAAC,YAAgB,CACxB,CACV;SACF;KACF;CACF,CAAC;AAEF,eAAe,SAAS,CAAC","sourcesContent":["import { h } from '@stencil/core';\nimport type { NovaDocs } from '../../nova-docs';\nimport { Components } from '../../components';\n\nconst NvRowDocs: NovaDocs<Components.NvRow> = {\n component: 'nv-row',\n subcomponents: ['nv-col'],\n stories: [\n {\n name: 'Default',\n template: (\n <nv-row data-storybook-args>\n <nv-col size={4}>Col-4</nv-col>\n <nv-col size={8}>Col-8</nv-col>\n </nv-row>\n ),\n },\n ],\n};\n\nexport default NvRowDocs;\n"]}
1
+ {"version":3,"file":"nv-row.docs.js","sourceRoot":"","sources":["../../../../src/components/nv-row/nv-row.docs.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAIlC,MAAM,SAAS,GAA+B;IAC5C,SAAS,EAAE,QAAQ;IACnB,aAAa,EAAE,CAAC,QAAQ,CAAC;IACzB,OAAO,EAAE;QACP,UAAU;QACV;YACE,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,CACR;gBACE,cAAQ,IAAI,EAAE,CAAC,YAAgB;gBAC/B,cAAQ,IAAI,EAAE,CAAC,YAAgB,CACxB,CACV;SACF;QACD,cAAc;QACd;YACE,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,kBAAkB;YAC/B,QAAQ,EAAE,CACR;gBACE,cAAQ,IAAI,EAAE,CAAC,YAAgB;gBAC/B,cAAQ,IAAI,EAAE,CAAC,YAAgB,CACxB,CACV;SACF;KACF;CACF,CAAC;AAEF,eAAe,SAAS,CAAC","sourcesContent":["import { h } from '@stencil/core';\nimport type { NovaDocs } from '../../nova-docs';\nimport { Components } from '../../components';\n\nconst NvRowDocs: NovaDocs<Components.NvRow> = {\n component: 'nv-row',\n subcomponents: ['nv-col'],\n stories: [\n // Default\n {\n name: 'Default',\n template: (\n <nv-row data-storybook-args>\n <nv-col size={4}>Col-4</nv-col>\n <nv-col size={8}>Col-8</nv-col>\n </nv-row>\n ),\n },\n // SlotDefault\n {\n name: 'SlotDefault',\n description: 'The row content.',\n template: (\n <nv-row>\n <nv-col size={4}>Col-4</nv-col>\n <nv-col size={8}>Col-8</nv-col>\n </nv-row>\n ),\n },\n ],\n};\n\nexport default NvRowDocs;\n"]}
@@ -6,7 +6,7 @@ export class NvRow {
6
6
  /****************************************************************************/
7
7
  //#region RENDER
8
8
  render() {
9
- return (h(Host, { key: '8415bdad0106bd3d836996c617a749294e0c19e2' }, h("slot", { key: '77c069ced0dc25c4169945877c388f30d27fdc4f' })));
9
+ return (h(Host, { key: 'fda91377821b426a6cbc6ade6f253144a388fb62' }, h("slot", { key: '5d7cc9aa4d4ad0b251aa5c028adfddade4e4d1c4' })));
10
10
  }
11
11
  static get is() { return "nv-row"; }
12
12
  static get originalStyleUrls() {
@@ -1,4 +1,5 @@
1
1
  import { h } from "@stencil/core";
2
+ import { nameof } from "../../utils/class.utils";
2
3
  const NvSidebarDocs = {
3
4
  component: 'nv-sidebar',
4
5
  badge: 'beta',
@@ -17,11 +18,43 @@ const NvSidebarDocs = {
17
18
  'nv-fieldtext',
18
19
  ],
19
20
  stories: [
21
+ // Default
20
22
  {
21
23
  name: 'Default',
22
24
  description: 'Simple sidebar with logo and basic navigation items.',
23
25
  template: (h("nv-sidebar", { "data-storybook-args": true }, h("nv-sidebarlogo", { label: "nova" }), h("nv-sidebarcontent", null, h("nv-sidebarnavitem", { icon: "home" }, h("a", { href: "#" }, "Home")), h("nv-sidebarnavitem", { icon: "layout-dashboard" }, h("a", { href: "#" }, "Dashboard")), h("nv-sidebarnavitem", { icon: "settings" }, h("a", { href: "#" }, "Settings"))))),
24
26
  },
27
+ // type
28
+ {
29
+ name: nameof(x => x.type),
30
+ args: { type: 'collapsible' },
31
+ template: (h("nv-sidebar", { "data-storybook-args": true }, h("nv-sidebarlogo", { label: "nova" }), h("nv-sidebarcontent", null, h("nv-sidebarnavitem", { icon: "home" }, h("a", { href: "#" }, "Home")), h("nv-sidebarnavitem", { icon: "settings" }, h("a", { href: "#" }, "Settings"))))),
32
+ },
33
+ // open
34
+ {
35
+ name: nameof(x => x.open),
36
+ args: { type: 'collapsible', open: false },
37
+ template: (h("nv-sidebar", { "data-storybook-args": true }, h("nv-sidebarlogo", { label: "nova" }), h("nv-sidebarcontent", null, h("nv-sidebarnavitem", { icon: "home" }, h("a", { href: "#" }, "Home")), h("nv-sidebarnavitem", { icon: "settings" }, h("a", { href: "#" }, "Settings"))))),
38
+ },
39
+ // activePath
40
+ {
41
+ name: nameof(x => x.activePath),
42
+ args: { activePath: '/settings' },
43
+ template: (h("nv-sidebar", { "data-storybook-args": true }, h("nv-sidebarlogo", { label: "nova" }), h("nv-sidebarcontent", null, h("nv-sidebarnavitem", { icon: "home" }, h("a", { href: "/" }, "Home")), h("nv-sidebarnavitem", { icon: "settings" }, h("a", { href: "/settings" }, "Settings"))))),
44
+ },
45
+ // notificationIntention
46
+ {
47
+ name: nameof(x => x.notificationIntention),
48
+ args: { notificationIntention: 'neutral' },
49
+ template: (h("nv-sidebar", { "data-storybook-args": true }, h("nv-sidebarlogo", { label: "nova" }), h("nv-sidebarcontent", null, h("nv-sidebarnavitem", { icon: "home" }, h("a", { href: "#" }, "Home"), h("nv-badge", { slot: "trailing", color: "error" }, "5")), h("nv-sidebarnavitem", { icon: "settings" }, h("a", { href: "#" }, "Settings"))))),
50
+ },
51
+ // notificationEmphasis
52
+ {
53
+ name: nameof(x => x.notificationEmphasis),
54
+ args: { notificationEmphasis: 'low' },
55
+ template: (h("nv-sidebar", { "data-storybook-args": true }, h("nv-sidebarlogo", { label: "nova" }), h("nv-sidebarcontent", null, h("nv-sidebarnavitem", { icon: "home" }, h("a", { href: "#" }, "Home"), h("nv-badge", { slot: "trailing", color: "error" }, "3")), h("nv-sidebarnavitem", { icon: "settings" }, h("a", { href: "#" }, "Settings"))))),
56
+ },
57
+ // FullExample
25
58
  {
26
59
  name: 'FullExample',
27
60
  description: 'Complete Figma design: customized logo, search field with prefix icon, recent searches with badges, navigation items with background on active, collapsible items (Dashboard open), section labels (sub-title), footer with notification badge (7), settings, help and logout, avatar + user profile.',
@@ -31,6 +64,12 @@ const NvSidebarDocs = {
31
64
  },
32
65
  template: (h("nv-sidebar", { "data-storybook-args": true }, h("nv-sidebarlogo", { label: "nova" }), h("nv-sidebarheader", { "data-hide-on-collapsed": true }, h("div", { "data-class": "mb-3" }, h("nv-fieldtext", { label: "Search", placeholder: "Enter a keyword" }, h("nv-icon", { slot: "trailing-input", name: "search", size: "md" }))), h("div", null, h("label", { "data-class": "block text-xs text-gray-500 mb-2" }, "Recent searches"), h("div", { "data-class": "flex gap-2 flex-wrap" }, h("nv-badge", { color: "neutral", dismissible: true }, "Tomorrow"), h("nv-badge", { color: "neutral", dismissible: true }, "House")))), h("nv-sidebardivider", { "data-class": "" }), h("nv-sidebarcontent", null, h("nv-sidebargroup", { label: "Section sub-title" }, h("nv-sidebarnavitem", { icon: "home" }, h("a", { href: "#" }, "Page 1")), h("nv-sidebarnavitem", { icon: "scooter-electric", active: true }, h("a", { href: "#" }, "Scooter")), h("nv-sidebarnavitem", { icon: "layout-dashboard", collapsible: true, open: true }, h("a", { href: "#" }, "Dashboard"), h("nv-sidebarnavsubitem", null, h("a", { href: "#" }, "First")), h("nv-sidebarnavsubitem", null, h("a", { href: "#" }, "Second")), h("nv-sidebarnavsubitem", null, h("a", { href: "#" }, "Third")), h("nv-sidebarnavsubitem", null, h("a", { href: "#" }, "Fourth"))), h("nv-sidebarnavitem", { icon: "atom" }, h("a", { href: "#" }, "Atom"))), h("nv-sidebargroup", { label: "Section sub-title" }, h("nv-sidebarnavitem", { icon: "bookmarks" }, h("a", { href: "#" }, "Saved")), h("nv-sidebarnavitem", { icon: "compass" }, h("a", { href: "#" }, "Search")))), h("nv-sidebarfooter", null, h("nv-sidebarnavitem", { icon: "bell" }, h("a", { href: "#" }, "Notification center"), h("nv-badge", { slot: "trailing", color: "error" }, "7")), h("nv-sidebarnavitem", { icon: "settings" }, h("a", { href: "#" }, "Settings")), h("nv-sidebarnavitem", { icon: "lifebuoy" }, h("a", { href: "#" }, "Help center")), h("div", { "data-class": "flex items-center gap-3 p-2 rounded-lg hover:bg-level-10 cursor-pointer", "data-hide-on-collapsed": true }, h("nv-avatar", { size: "md", initials: "NS" }), h("div", { "data-class": "flex-1 min-w-0" }, h("div", { "data-class": "text-sm font-medium text-content-high-text truncate" }, "Name Surname"), h("div", { "data-class": "text-xs text-content-medium-text truncate" }, "View profile")), h("nv-icon", { name: "logout", size: "md" }))))),
33
66
  },
67
+ // SlotDefault
68
+ {
69
+ name: 'SlotDefault',
70
+ description: 'All sidebar components (logo, header, content, footer).',
71
+ template: (h("nv-sidebar", { "data-storybook-args": true }, h("nv-sidebarlogo", { label: "nova" }), h("nv-sidebarcontent", null, h("nv-sidebarnavitem", { icon: "home" }, h("a", { href: "#" }, "Home")), h("nv-sidebarnavitem", { icon: "settings" }, h("a", { href: "#" }, "Settings"))))),
72
+ },
34
73
  ],
35
74
  };
36
75
  export default NvSidebarDocs;
@@ -1 +1 @@
1
- {"version":3,"file":"nv-sidebar.docs.js","sourceRoot":"","sources":["../../../../src/components/nv-sidebar/nv-sidebar.docs.tsx"],"names":[],"mappings":"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","sourcesContent":["import { h } from '@stencil/core';\nimport type { NovaDocs } from '../../nova-docs';\nimport { Components } from '../../components';\n\nconst NvSidebarDocs: NovaDocs<Components.NvSidebar> = {\n component: 'nv-sidebar',\n badge: 'beta',\n subcomponents: [\n 'nv-sidebarlogo',\n 'nv-sidebarheader',\n 'nv-sidebarcontent',\n 'nv-sidebarfooter',\n 'nv-sidebargroup',\n 'nv-sidebarnavitem',\n 'nv-sidebarnavsubitem',\n 'nv-sidebardivider',\n 'nv-badge',\n 'nv-icon',\n 'nv-avatar',\n 'nv-fieldtext',\n ],\n stories: [\n {\n name: 'Default',\n description: 'Simple sidebar with logo and basic navigation items.',\n template: (\n <nv-sidebar data-storybook-args>\n <nv-sidebarlogo label=\"nova\"></nv-sidebarlogo>\n\n <nv-sidebarcontent>\n <nv-sidebarnavitem icon=\"home\">\n <a href=\"#\">Home</a>\n </nv-sidebarnavitem>\n\n <nv-sidebarnavitem icon=\"layout-dashboard\">\n <a href=\"#\">Dashboard</a>\n </nv-sidebarnavitem>\n\n <nv-sidebarnavitem icon=\"settings\">\n <a href=\"#\">Settings</a>\n </nv-sidebarnavitem>\n </nv-sidebarcontent>\n </nv-sidebar>\n ),\n },\n {\n name: 'FullExample',\n description:\n 'Complete Figma design: customized logo, search field with prefix icon, recent searches with badges, navigation items with background on active, collapsible items (Dashboard open), section labels (sub-title), footer with notification badge (7), settings, help and logout, avatar + user profile.',\n args: {\n type: 'collapsible',\n open: true,\n },\n template: (\n <nv-sidebar data-storybook-args>\n <nv-sidebarlogo label=\"nova\"></nv-sidebarlogo>\n\n <nv-sidebarheader data-hide-on-collapsed>\n <div data-class=\"mb-3\">\n <nv-fieldtext label=\"Search\" placeholder=\"Enter a keyword\">\n <nv-icon\n slot=\"trailing-input\"\n name=\"search\"\n size=\"md\"\n ></nv-icon>\n </nv-fieldtext>\n </div>\n <div>\n <label data-class=\"block text-xs text-gray-500 mb-2\">\n Recent searches\n </label>\n <div data-class=\"flex gap-2 flex-wrap\">\n <nv-badge color=\"neutral\" dismissible>\n Tomorrow\n </nv-badge>\n <nv-badge color=\"neutral\" dismissible>\n House\n </nv-badge>\n </div>\n </div>\n </nv-sidebarheader>\n\n <nv-sidebardivider data-class=\"\"></nv-sidebardivider>\n\n <nv-sidebarcontent>\n <nv-sidebargroup label=\"Section sub-title\">\n <nv-sidebarnavitem icon=\"home\">\n <a href=\"#\">Page 1</a>\n </nv-sidebarnavitem>\n\n <nv-sidebarnavitem icon=\"scooter-electric\" active>\n <a href=\"#\">Scooter</a>\n </nv-sidebarnavitem>\n\n <nv-sidebarnavitem icon=\"layout-dashboard\" collapsible open>\n <a href=\"#\">Dashboard</a>\n <nv-sidebarnavsubitem>\n <a href=\"#\">First</a>\n </nv-sidebarnavsubitem>\n <nv-sidebarnavsubitem>\n <a href=\"#\">Second</a>\n </nv-sidebarnavsubitem>\n <nv-sidebarnavsubitem>\n <a href=\"#\">Third</a>\n </nv-sidebarnavsubitem>\n <nv-sidebarnavsubitem>\n <a href=\"#\">Fourth</a>\n </nv-sidebarnavsubitem>\n </nv-sidebarnavitem>\n\n <nv-sidebarnavitem icon=\"atom\">\n <a href=\"#\">Atom</a>\n </nv-sidebarnavitem>\n </nv-sidebargroup>\n\n <nv-sidebargroup label=\"Section sub-title\">\n <nv-sidebarnavitem icon=\"bookmarks\">\n <a href=\"#\">Saved</a>\n </nv-sidebarnavitem>\n\n <nv-sidebarnavitem icon=\"compass\">\n <a href=\"#\">Search</a>\n </nv-sidebarnavitem>\n </nv-sidebargroup>\n </nv-sidebarcontent>\n\n <nv-sidebarfooter>\n <nv-sidebarnavitem icon=\"bell\">\n <a href=\"#\">Notification center</a>\n <nv-badge slot=\"trailing\" color=\"error\">\n 7\n </nv-badge>\n </nv-sidebarnavitem>\n\n <nv-sidebarnavitem icon=\"settings\">\n <a href=\"#\">Settings</a>\n </nv-sidebarnavitem>\n\n <nv-sidebarnavitem icon=\"lifebuoy\">\n <a href=\"#\">Help center</a>\n </nv-sidebarnavitem>\n\n <div\n data-class=\"flex items-center gap-3 p-2 rounded-lg hover:bg-level-10 cursor-pointer\"\n data-hide-on-collapsed\n >\n <nv-avatar size=\"md\" initials=\"NS\"></nv-avatar>\n <div data-class=\"flex-1 min-w-0\">\n <div data-class=\"text-sm font-medium text-content-high-text truncate\">\n Name Surname\n </div>\n <div data-class=\"text-xs text-content-medium-text truncate\">\n View profile\n </div>\n </div>\n <nv-icon name=\"logout\" size=\"md\"></nv-icon>\n </div>\n </nv-sidebarfooter>\n </nv-sidebar>\n ),\n },\n ],\n};\n\nexport default NvSidebarDocs;\n"]}
1
+ {"version":3,"file":"nv-sidebar.docs.js","sourceRoot":"","sources":["../../../../src/components/nv-sidebar/nv-sidebar.docs.tsx"],"names":[],"mappings":"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","sourcesContent":["import { h } from '@stencil/core';\nimport type { NovaDocs } from '../../nova-docs';\nimport { Components } from '../../components';\nimport { nameof } from '../../utils/class.utils';\n\nconst NvSidebarDocs: NovaDocs<Components.NvSidebar> = {\n component: 'nv-sidebar',\n badge: 'beta',\n subcomponents: [\n 'nv-sidebarlogo',\n 'nv-sidebarheader',\n 'nv-sidebarcontent',\n 'nv-sidebarfooter',\n 'nv-sidebargroup',\n 'nv-sidebarnavitem',\n 'nv-sidebarnavsubitem',\n 'nv-sidebardivider',\n 'nv-badge',\n 'nv-icon',\n 'nv-avatar',\n 'nv-fieldtext',\n ],\n stories: [\n // Default\n {\n name: 'Default',\n description: 'Simple sidebar with logo and basic navigation items.',\n template: (\n <nv-sidebar data-storybook-args>\n <nv-sidebarlogo label=\"nova\"></nv-sidebarlogo>\n\n <nv-sidebarcontent>\n <nv-sidebarnavitem icon=\"home\">\n <a href=\"#\">Home</a>\n </nv-sidebarnavitem>\n\n <nv-sidebarnavitem icon=\"layout-dashboard\">\n <a href=\"#\">Dashboard</a>\n </nv-sidebarnavitem>\n\n <nv-sidebarnavitem icon=\"settings\">\n <a href=\"#\">Settings</a>\n </nv-sidebarnavitem>\n </nv-sidebarcontent>\n </nv-sidebar>\n ),\n },\n // type\n {\n name: nameof<Components.NvSidebar>(x => x.type),\n args: { type: 'collapsible' },\n template: (\n <nv-sidebar data-storybook-args>\n <nv-sidebarlogo label=\"nova\"></nv-sidebarlogo>\n\n <nv-sidebarcontent>\n <nv-sidebarnavitem icon=\"home\">\n <a href=\"#\">Home</a>\n </nv-sidebarnavitem>\n\n <nv-sidebarnavitem icon=\"settings\">\n <a href=\"#\">Settings</a>\n </nv-sidebarnavitem>\n </nv-sidebarcontent>\n </nv-sidebar>\n ),\n },\n // open\n {\n name: nameof<Components.NvSidebar>(x => x.open),\n args: { type: 'collapsible', open: false },\n template: (\n <nv-sidebar data-storybook-args>\n <nv-sidebarlogo label=\"nova\"></nv-sidebarlogo>\n\n <nv-sidebarcontent>\n <nv-sidebarnavitem icon=\"home\">\n <a href=\"#\">Home</a>\n </nv-sidebarnavitem>\n\n <nv-sidebarnavitem icon=\"settings\">\n <a href=\"#\">Settings</a>\n </nv-sidebarnavitem>\n </nv-sidebarcontent>\n </nv-sidebar>\n ),\n },\n // activePath\n {\n name: nameof<Components.NvSidebar>(x => x.activePath),\n args: { activePath: '/settings' },\n template: (\n <nv-sidebar data-storybook-args>\n <nv-sidebarlogo label=\"nova\"></nv-sidebarlogo>\n\n <nv-sidebarcontent>\n <nv-sidebarnavitem icon=\"home\">\n <a href=\"/\">Home</a>\n </nv-sidebarnavitem>\n\n <nv-sidebarnavitem icon=\"settings\">\n <a href=\"/settings\">Settings</a>\n </nv-sidebarnavitem>\n </nv-sidebarcontent>\n </nv-sidebar>\n ),\n },\n // notificationIntention\n {\n name: nameof<Components.NvSidebar>(x => x.notificationIntention),\n args: { notificationIntention: 'neutral' },\n template: (\n <nv-sidebar data-storybook-args>\n <nv-sidebarlogo label=\"nova\"></nv-sidebarlogo>\n\n <nv-sidebarcontent>\n <nv-sidebarnavitem icon=\"home\">\n <a href=\"#\">Home</a>\n <nv-badge slot=\"trailing\" color=\"error\">\n 5\n </nv-badge>\n </nv-sidebarnavitem>\n\n <nv-sidebarnavitem icon=\"settings\">\n <a href=\"#\">Settings</a>\n </nv-sidebarnavitem>\n </nv-sidebarcontent>\n </nv-sidebar>\n ),\n },\n // notificationEmphasis\n {\n name: nameof<Components.NvSidebar>(x => x.notificationEmphasis),\n args: { notificationEmphasis: 'low' },\n template: (\n <nv-sidebar data-storybook-args>\n <nv-sidebarlogo label=\"nova\"></nv-sidebarlogo>\n\n <nv-sidebarcontent>\n <nv-sidebarnavitem icon=\"home\">\n <a href=\"#\">Home</a>\n <nv-badge slot=\"trailing\" color=\"error\">\n 3\n </nv-badge>\n </nv-sidebarnavitem>\n\n <nv-sidebarnavitem icon=\"settings\">\n <a href=\"#\">Settings</a>\n </nv-sidebarnavitem>\n </nv-sidebarcontent>\n </nv-sidebar>\n ),\n },\n // FullExample\n {\n name: 'FullExample',\n description:\n 'Complete Figma design: customized logo, search field with prefix icon, recent searches with badges, navigation items with background on active, collapsible items (Dashboard open), section labels (sub-title), footer with notification badge (7), settings, help and logout, avatar + user profile.',\n args: {\n type: 'collapsible',\n open: true,\n },\n template: (\n <nv-sidebar data-storybook-args>\n <nv-sidebarlogo label=\"nova\"></nv-sidebarlogo>\n\n <nv-sidebarheader data-hide-on-collapsed>\n <div data-class=\"mb-3\">\n <nv-fieldtext label=\"Search\" placeholder=\"Enter a keyword\">\n <nv-icon\n slot=\"trailing-input\"\n name=\"search\"\n size=\"md\"\n ></nv-icon>\n </nv-fieldtext>\n </div>\n <div>\n <label data-class=\"block text-xs text-gray-500 mb-2\">\n Recent searches\n </label>\n <div data-class=\"flex gap-2 flex-wrap\">\n <nv-badge color=\"neutral\" dismissible>\n Tomorrow\n </nv-badge>\n <nv-badge color=\"neutral\" dismissible>\n House\n </nv-badge>\n </div>\n </div>\n </nv-sidebarheader>\n\n <nv-sidebardivider data-class=\"\"></nv-sidebardivider>\n\n <nv-sidebarcontent>\n <nv-sidebargroup label=\"Section sub-title\">\n <nv-sidebarnavitem icon=\"home\">\n <a href=\"#\">Page 1</a>\n </nv-sidebarnavitem>\n\n <nv-sidebarnavitem icon=\"scooter-electric\" active>\n <a href=\"#\">Scooter</a>\n </nv-sidebarnavitem>\n\n <nv-sidebarnavitem icon=\"layout-dashboard\" collapsible open>\n <a href=\"#\">Dashboard</a>\n <nv-sidebarnavsubitem>\n <a href=\"#\">First</a>\n </nv-sidebarnavsubitem>\n <nv-sidebarnavsubitem>\n <a href=\"#\">Second</a>\n </nv-sidebarnavsubitem>\n <nv-sidebarnavsubitem>\n <a href=\"#\">Third</a>\n </nv-sidebarnavsubitem>\n <nv-sidebarnavsubitem>\n <a href=\"#\">Fourth</a>\n </nv-sidebarnavsubitem>\n </nv-sidebarnavitem>\n\n <nv-sidebarnavitem icon=\"atom\">\n <a href=\"#\">Atom</a>\n </nv-sidebarnavitem>\n </nv-sidebargroup>\n\n <nv-sidebargroup label=\"Section sub-title\">\n <nv-sidebarnavitem icon=\"bookmarks\">\n <a href=\"#\">Saved</a>\n </nv-sidebarnavitem>\n\n <nv-sidebarnavitem icon=\"compass\">\n <a href=\"#\">Search</a>\n </nv-sidebarnavitem>\n </nv-sidebargroup>\n </nv-sidebarcontent>\n\n <nv-sidebarfooter>\n <nv-sidebarnavitem icon=\"bell\">\n <a href=\"#\">Notification center</a>\n <nv-badge slot=\"trailing\" color=\"error\">\n 7\n </nv-badge>\n </nv-sidebarnavitem>\n\n <nv-sidebarnavitem icon=\"settings\">\n <a href=\"#\">Settings</a>\n </nv-sidebarnavitem>\n\n <nv-sidebarnavitem icon=\"lifebuoy\">\n <a href=\"#\">Help center</a>\n </nv-sidebarnavitem>\n\n <div\n data-class=\"flex items-center gap-3 p-2 rounded-lg hover:bg-level-10 cursor-pointer\"\n data-hide-on-collapsed\n >\n <nv-avatar size=\"md\" initials=\"NS\"></nv-avatar>\n <div data-class=\"flex-1 min-w-0\">\n <div data-class=\"text-sm font-medium text-content-high-text truncate\">\n Name Surname\n </div>\n <div data-class=\"text-xs text-content-medium-text truncate\">\n View profile\n </div>\n </div>\n <nv-icon name=\"logout\" size=\"md\"></nv-icon>\n </div>\n </nv-sidebarfooter>\n </nv-sidebar>\n ),\n },\n // SlotDefault\n {\n name: 'SlotDefault',\n description: 'All sidebar components (logo, header, content, footer).',\n template: (\n <nv-sidebar data-storybook-args>\n <nv-sidebarlogo label=\"nova\"></nv-sidebarlogo>\n\n <nv-sidebarcontent>\n <nv-sidebarnavitem icon=\"home\">\n <a href=\"#\">Home</a>\n </nv-sidebarnavitem>\n\n <nv-sidebarnavitem icon=\"settings\">\n <a href=\"#\">Settings</a>\n </nv-sidebarnavitem>\n </nv-sidebarcontent>\n </nv-sidebar>\n ),\n },\n ],\n};\n\nexport default NvSidebarDocs;\n"]}
@@ -49,7 +49,7 @@ export class NvSidebar {
49
49
  const activeSubitemHrefs = new Set();
50
50
  this.el.querySelectorAll('nv-sidebarnavsubitem').forEach(subItem => {
51
51
  const link = subItem.querySelector('a');
52
- const href = link === null || link === void 0 ? void 0 : link.getAttribute('href');
52
+ const href = link?.getAttribute('href');
53
53
  if (href) {
54
54
  const isActive = this.activePath === href;
55
55
  subItem.active = isActive;
@@ -63,7 +63,7 @@ export class NvSidebar {
63
63
  // 2. OR the navitem has no subitems and activePath starts with its href
64
64
  this.el.querySelectorAll('nv-sidebarnavitem').forEach(navItem => {
65
65
  const link = navItem.querySelector(':scope > a, :scope > .nv-sidebarnavitem-trigger a, .nv-sidebarnavitem-content > a');
66
- const href = link === null || link === void 0 ? void 0 : link.getAttribute('href');
66
+ const href = link?.getAttribute('href');
67
67
  const hasSubitems = navItem.querySelector('nv-sidebarnavsubitem') !== null;
68
68
  if (href) {
69
69
  if (hasSubitems) {
@@ -156,7 +156,7 @@ export class NvSidebar {
156
156
  //#region RENDER
157
157
  render() {
158
158
  const isCollapsed = this.type === 'collapsible' && !this.open;
159
- return (h(Host, { key: '79f262f95af40b330d5640273f7a6059f672068b', role: "navigation", collapsed: isCollapsed ? true : undefined, "notification-intention": this.notificationIntention, "notification-emphasis": this.notificationEmphasis, "aria-expanded": this.type === 'collapsible' ? String(this.open) : undefined }, h("div", { key: '348023343f71ba232b82c21f968c0a8bbb170eca', class: "nv-sidebar-container" }, h("slot", { key: 'b634857cb88c12975de9641e154b669de8ce8726' })), this.type === 'collapsible' && (h("button", { key: '0b398d6738536aad4d4e96ad5ca1f04dd543ee1b', class: "nv-sidebar-toggle", onClick: this.handleToggle, "aria-label": this.open ? 'Collapse sidebar' : 'Expand sidebar' }, h("nv-icon", { key: '44b5eb0c9b3239750956c7da09eb9a22e5d0939f', name: this.open
159
+ return (h(Host, { key: 'ac14d7b4027c06d1aa19b1b6c7de3f0d2e231b1a', role: "navigation", collapsed: isCollapsed ? true : undefined, "notification-intention": this.notificationIntention, "notification-emphasis": this.notificationEmphasis, "aria-expanded": this.type === 'collapsible' ? String(this.open) : undefined }, h("div", { key: 'e567303c87a2308747290fae95d7ade9971cd67a', class: "nv-sidebar-container" }, h("slot", { key: '0b2e0e1b1721aae3c0f910500bde3c2db92f879b' })), this.type === 'collapsible' && (h("button", { key: '493204449f3bb9aedd5a34cb238242aadd61324b', class: "nv-sidebar-toggle", onClick: this.handleToggle, "aria-label": this.open ? 'Collapse sidebar' : 'Expand sidebar' }, h("nv-icon", { key: '0e389c1c6c92f02f7c1e39fc07ef17a469b1e0f2', name: this.open
160
160
  ? 'layout-sidebar-left-collapse'
161
161
  : 'layout-sidebar-right-collapse', size: "sm" })))));
162
162
  }
@@ -1 +1 @@
1
- {"version":3,"file":"nv-sidebar.js","sourceRoot":"","sources":["../../../../src/components/nv-sidebar/nv-sidebar.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n Prop,\n Event,\n EventEmitter,\n Element,\n Watch,\n h,\n} from '@stencil/core';\n\n/**\n * Main sidebar container for navigation. Supports collapsible and persistent modes.\n * @slot default - All sidebar components (logo, header, content, footer).\n */\n@Component({\n tag: 'nv-sidebar',\n styleUrl: 'styles/nv-sidebar.scss',\n shadow: false,\n})\nexport class NvSidebar {\n @Element() el!: HTMLNvSidebarElement;\n private mutationObserver: MutationObserver;\n\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * The type of sidebar behavior.\n * - collapsible: Can be toggled open/closed\n * - persistent: Always visible\n */\n @Prop({ reflect: true })\n readonly type: 'collapsible' | 'persistent' = 'persistent';\n\n /**\n * Whether the sidebar is currently open (only applies to collapsible type).\n */\n // eslint-disable-next-line @stencil-community/ban-default-true\n @Prop({ reflect: true, mutable: true })\n open: boolean = true;\n\n /**\n * The current active path. Used to automatically set the active state of nav items.\n * Example: \"/dashboard\" or \"/settings/profile\"\n */\n @Prop({ reflect: true })\n readonly activePath?: string;\n\n /**\n * Determines the type of notification bullets in the sidebar.\n * - neutral: Uses neutral colors (gray)\n * - brand: Uses brand colors (orange/teal depending on theme)\n */\n @Prop({ reflect: true })\n readonly notificationIntention: 'neutral' | 'brand' = 'brand';\n\n /**\n * Determines the emphasis of notification bullets in the sidebar.\n * - high: More prominent appearance\n * - low: Less prominent appearance\n */\n @Prop({ reflect: true })\n readonly notificationEmphasis: 'high' | 'low' = 'high';\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emitted when the open state changes.\n * @bind open\n */\n @Event({ bubbles: false })\n openChanged: EventEmitter<boolean>;\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region METHODS\n\n private handleToggle = () => {\n if (this.type === 'collapsible') {\n // Changing open will trigger @Watch which emits the event\n this.open = !this.open;\n }\n };\n\n private handleCollapsedSideEffects(isCollapsed: boolean) {\n if (!isCollapsed) {\n return;\n }\n\n this.el.querySelectorAll('nv-sidebarnavitem[open]').forEach(navItem => {\n (navItem as HTMLNvSidebarnavitemElement).open = false;\n });\n }\n\n /**\n * Sets the active state of navigation items based on activePath\n */\n private setActiveNavItems = () => {\n if (!this.activePath) return;\n\n // First, check all subitems to find if any matches exactly\n const activeSubitemHrefs = new Set<string>();\n this.el.querySelectorAll('nv-sidebarnavsubitem').forEach(subItem => {\n const link = subItem.querySelector('a');\n const href = link?.getAttribute('href');\n\n if (href) {\n const isActive = this.activePath === href;\n subItem.active = isActive;\n if (isActive) {\n activeSubitemHrefs.add(href);\n }\n }\n });\n\n // Then, set nav items active only if:\n // 1. Exact match with activePath AND no subitem matches\n // 2. OR the navitem has no subitems and activePath starts with its href\n this.el.querySelectorAll('nv-sidebarnavitem').forEach(navItem => {\n const link = navItem.querySelector(\n ':scope > a, :scope > .nv-sidebarnavitem-trigger a, .nv-sidebarnavitem-content > a',\n );\n const href = link?.getAttribute('href');\n const hasSubitems =\n navItem.querySelector('nv-sidebarnavsubitem') !== null;\n\n if (href) {\n if (hasSubitems) {\n // Parent with subitems: only active if exact match (not when subitem is active)\n navItem.active = this.activePath === href;\n } else {\n // Item without subitems: active on exact match\n navItem.active = this.activePath === href;\n }\n }\n });\n };\n\n private pendingActiveUpdate: number | null = null;\n\n /**\n * Sets up the MutationObserver to watch for changes in child elements.\n * Only triggers on new nav items being added, not on attribute changes.\n */\n private setupMutationObserver = (): void => {\n this.mutationObserver = new MutationObserver(mutations => {\n // Only react to new nav items being added, ignore other mutations\n const hasNewNavItems = mutations.some(mutation => {\n if (mutation.type !== 'childList') return false;\n return Array.from(mutation.addedNodes).some(node => {\n if (node.nodeType !== Node.ELEMENT_NODE) return false;\n const el = node as Element;\n return (\n el.tagName.toLowerCase() === 'nv-sidebarnavitem' ||\n el.tagName.toLowerCase() === 'nv-sidebarnavsubitem' ||\n el.querySelector('nv-sidebarnavitem, nv-sidebarnavsubitem')\n );\n });\n });\n\n if (hasNewNavItems) {\n // Debounce to prevent multiple rapid calls\n if (this.pendingActiveUpdate) {\n clearTimeout(this.pendingActiveUpdate);\n }\n this.pendingActiveUpdate = window.setTimeout(() => {\n this.setActiveNavItems();\n this.pendingActiveUpdate = null;\n }, 50);\n }\n });\n\n this.mutationObserver.observe(this.el, {\n childList: true,\n subtree: true,\n });\n };\n\n //#endregion METHODS\n /****************************************************************************/\n //#region WATCHERS\n\n @Watch('activePath')\n onActivePathChanged() {\n this.setActiveNavItems();\n }\n\n @Watch('open')\n protected onOpenChanged(newValue: boolean, oldValue: boolean) {\n this.handleCollapsedSideEffects(this.type === 'collapsible' && !newValue);\n // Only emit event when open state actually changes (not on re-render with same value)\n if (this.type === 'collapsible' && newValue !== oldValue) {\n this.openChanged.emit(newValue);\n }\n }\n\n //#endregion WATCHERS\n /****************************************************************************/\n //#region LIFECYCLE\n\n componentWillLoad() {\n this.setActiveNavItems();\n this.setupMutationObserver();\n this.handleCollapsedSideEffects(this.type === 'collapsible' && !this.open);\n }\n\n disconnectedCallback() {\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n if (this.pendingActiveUpdate) {\n clearTimeout(this.pendingActiveUpdate);\n }\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region RENDER\n\n render() {\n const isCollapsed = this.type === 'collapsible' && !this.open;\n\n return (\n <Host\n role=\"navigation\"\n collapsed={isCollapsed ? true : undefined}\n notification-intention={this.notificationIntention}\n notification-emphasis={this.notificationEmphasis}\n aria-expanded={\n this.type === 'collapsible' ? String(this.open) : undefined\n }\n >\n <div class=\"nv-sidebar-container\">\n <slot></slot>\n </div>\n {this.type === 'collapsible' && (\n <button\n class=\"nv-sidebar-toggle\"\n onClick={this.handleToggle}\n aria-label={this.open ? 'Collapse sidebar' : 'Expand sidebar'}\n >\n <nv-icon\n name={\n this.open\n ? 'layout-sidebar-left-collapse'\n : 'layout-sidebar-right-collapse'\n }\n size=\"sm\"\n ></nv-icon>\n </button>\n )}\n </Host>\n );\n }\n //#endregion RENDER\n}\n"]}
1
+ {"version":3,"file":"nv-sidebar.js","sourceRoot":"","sources":["../../../../src/components/nv-sidebar/nv-sidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,KAAK,EAEL,OAAO,EACP,KAAK,EACL,CAAC,GACF,MAAM,eAAe,CAAC;AAEvB;;;GAGG;AAMH,MAAM,OAAO,SAAS;IALtB;QASE,8EAA8E;QAC9E,oBAAoB;QAEpB;;;;WAIG;QAEM,SAAI,GAAiC,YAAY,CAAC;QAE3D;;WAEG;QACH,+DAA+D;QAE/D,SAAI,GAAY,IAAI,CAAC;QASrB;;;;WAIG;QAEM,0BAAqB,GAAwB,OAAO,CAAC;QAE9D;;;;WAIG;QAEM,yBAAoB,GAAmB,MAAM,CAAC;QAavD,mBAAmB;QACnB,8EAA8E;QAC9E,iBAAiB;QAET,iBAAY,GAAG,GAAG,EAAE;YAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBAChC,0DAA0D;gBAC1D,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YACzB,CAAC;QACH,CAAC,CAAC;QAYF;;WAEG;QACK,sBAAiB,GAAG,GAAG,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO;YAE7B,2DAA2D;YAC3D,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;YAC7C,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACjE,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACxC,MAAM,IAAI,GAAG,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;gBAExC,IAAI,IAAI,EAAE,CAAC;oBACT,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC;oBAC1C,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC;oBAC1B,IAAI,QAAQ,EAAE,CAAC;wBACb,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC/B,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,sCAAsC;YACtC,wDAAwD;YACxD,wEAAwE;YACxE,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC9D,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAChC,mFAAmF,CACpF,CAAC;gBACF,MAAM,IAAI,GAAG,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;gBACxC,MAAM,WAAW,GACf,OAAO,CAAC,aAAa,CAAC,sBAAsB,CAAC,KAAK,IAAI,CAAC;gBAEzD,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,WAAW,EAAE,CAAC;wBAChB,gFAAgF;wBAChF,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC;oBAC5C,CAAC;yBAAM,CAAC;wBACN,+CAA+C;wBAC/C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC;oBAC5C,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEM,wBAAmB,GAAkB,IAAI,CAAC;QAElD;;;WAGG;QACK,0BAAqB,GAAG,GAAS,EAAE;YACzC,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,SAAS,CAAC,EAAE;gBACvD,kEAAkE;gBAClE,MAAM,cAAc,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;oBAC/C,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW;wBAAE,OAAO,KAAK,CAAC;oBAChD,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;wBACjD,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY;4BAAE,OAAO,KAAK,CAAC;wBACtD,MAAM,EAAE,GAAG,IAAe,CAAC;wBAC3B,OAAO,CACL,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,mBAAmB;4BAChD,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,sBAAsB;4BACnD,EAAE,CAAC,aAAa,CAAC,yCAAyC,CAAC,CAC5D,CAAC;oBACJ,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,IAAI,cAAc,EAAE,CAAC;oBACnB,2CAA2C;oBAC3C,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;wBAC7B,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;oBACzC,CAAC;oBACD,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;wBAChD,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBACzB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;oBAClC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACT,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE;gBACrC,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;QACL,CAAC,CAAC;KA+EH;IA3KS,0BAA0B,CAAC,WAAoB;QACrD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACnE,OAAuC,CAAC,IAAI,GAAG,KAAK,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC;IAsFD,oBAAoB;IACpB,8EAA8E;IAC9E,kBAAkB;IAGlB,mBAAmB;QACjB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAGS,aAAa,CAAC,QAAiB,EAAE,QAAiB;QAC1D,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1E,sFAAsF;QACtF,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACzD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,8EAA8E;IAC9E,mBAAmB;IAEnB,iBAAiB;QACf,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7E,CAAC;IAED,oBAAoB;QAClB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;QACrC,CAAC;QACD,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,sBAAsB;IACtB,8EAA8E;IAC9E,gBAAgB;IAEhB,MAAM;QACJ,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAE9D,OAAO,CACL,EAAC,IAAI,qDACH,IAAI,EAAC,YAAY,EACjB,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,4BACjB,IAAI,CAAC,qBAAqB,2BAC3B,IAAI,CAAC,oBAAoB,mBAE9C,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;YAG7D,4DAAK,KAAK,EAAC,sBAAsB;gBAC/B,8DAAa,CACT;YACL,IAAI,CAAC,IAAI,KAAK,aAAa,IAAI,CAC9B,+DACE,KAAK,EAAC,mBAAmB,EACzB,OAAO,EAAE,IAAI,CAAC,YAAY,gBACd,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,gBAAgB;gBAE7D,gEACE,IAAI,EACF,IAAI,CAAC,IAAI;wBACP,CAAC,CAAC,8BAA8B;wBAChC,CAAC,CAAC,+BAA+B,EAErC,IAAI,EAAC,IAAI,GACA,CACJ,CACV,CACI,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEF","sourcesContent":["import {\n Component,\n Host,\n Prop,\n Event,\n EventEmitter,\n Element,\n Watch,\n h,\n} from '@stencil/core';\n\n/**\n * Main sidebar container for navigation. Supports collapsible and persistent modes.\n * @slot default - All sidebar components (logo, header, content, footer).\n */\n@Component({\n tag: 'nv-sidebar',\n styleUrl: 'styles/nv-sidebar.scss',\n shadow: false,\n})\nexport class NvSidebar {\n @Element() el!: HTMLNvSidebarElement;\n private mutationObserver: MutationObserver;\n\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * The type of sidebar behavior.\n * - collapsible: Can be toggled open/closed\n * - persistent: Always visible\n */\n @Prop({ reflect: true })\n readonly type: 'collapsible' | 'persistent' = 'persistent';\n\n /**\n * Whether the sidebar is currently open (only applies to collapsible type).\n */\n // eslint-disable-next-line @stencil-community/ban-default-true\n @Prop({ reflect: true, mutable: true })\n open: boolean = true;\n\n /**\n * The current active path. Used to automatically set the active state of nav items.\n * Example: \"/dashboard\" or \"/settings/profile\"\n */\n @Prop({ reflect: true })\n readonly activePath?: string;\n\n /**\n * Determines the type of notification bullets in the sidebar.\n * - neutral: Uses neutral colors (gray)\n * - brand: Uses brand colors (orange/teal depending on theme)\n */\n @Prop({ reflect: true })\n readonly notificationIntention: 'neutral' | 'brand' = 'brand';\n\n /**\n * Determines the emphasis of notification bullets in the sidebar.\n * - high: More prominent appearance\n * - low: Less prominent appearance\n */\n @Prop({ reflect: true })\n readonly notificationEmphasis: 'high' | 'low' = 'high';\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emitted when the open state changes.\n * @bind open\n */\n @Event({ bubbles: false })\n openChanged: EventEmitter<boolean>;\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region METHODS\n\n private handleToggle = () => {\n if (this.type === 'collapsible') {\n // Changing open will trigger @Watch which emits the event\n this.open = !this.open;\n }\n };\n\n private handleCollapsedSideEffects(isCollapsed: boolean) {\n if (!isCollapsed) {\n return;\n }\n\n this.el.querySelectorAll('nv-sidebarnavitem[open]').forEach(navItem => {\n (navItem as HTMLNvSidebarnavitemElement).open = false;\n });\n }\n\n /**\n * Sets the active state of navigation items based on activePath\n */\n private setActiveNavItems = () => {\n if (!this.activePath) return;\n\n // First, check all subitems to find if any matches exactly\n const activeSubitemHrefs = new Set<string>();\n this.el.querySelectorAll('nv-sidebarnavsubitem').forEach(subItem => {\n const link = subItem.querySelector('a');\n const href = link?.getAttribute('href');\n\n if (href) {\n const isActive = this.activePath === href;\n subItem.active = isActive;\n if (isActive) {\n activeSubitemHrefs.add(href);\n }\n }\n });\n\n // Then, set nav items active only if:\n // 1. Exact match with activePath AND no subitem matches\n // 2. OR the navitem has no subitems and activePath starts with its href\n this.el.querySelectorAll('nv-sidebarnavitem').forEach(navItem => {\n const link = navItem.querySelector(\n ':scope > a, :scope > .nv-sidebarnavitem-trigger a, .nv-sidebarnavitem-content > a',\n );\n const href = link?.getAttribute('href');\n const hasSubitems =\n navItem.querySelector('nv-sidebarnavsubitem') !== null;\n\n if (href) {\n if (hasSubitems) {\n // Parent with subitems: only active if exact match (not when subitem is active)\n navItem.active = this.activePath === href;\n } else {\n // Item without subitems: active on exact match\n navItem.active = this.activePath === href;\n }\n }\n });\n };\n\n private pendingActiveUpdate: number | null = null;\n\n /**\n * Sets up the MutationObserver to watch for changes in child elements.\n * Only triggers on new nav items being added, not on attribute changes.\n */\n private setupMutationObserver = (): void => {\n this.mutationObserver = new MutationObserver(mutations => {\n // Only react to new nav items being added, ignore other mutations\n const hasNewNavItems = mutations.some(mutation => {\n if (mutation.type !== 'childList') return false;\n return Array.from(mutation.addedNodes).some(node => {\n if (node.nodeType !== Node.ELEMENT_NODE) return false;\n const el = node as Element;\n return (\n el.tagName.toLowerCase() === 'nv-sidebarnavitem' ||\n el.tagName.toLowerCase() === 'nv-sidebarnavsubitem' ||\n el.querySelector('nv-sidebarnavitem, nv-sidebarnavsubitem')\n );\n });\n });\n\n if (hasNewNavItems) {\n // Debounce to prevent multiple rapid calls\n if (this.pendingActiveUpdate) {\n clearTimeout(this.pendingActiveUpdate);\n }\n this.pendingActiveUpdate = window.setTimeout(() => {\n this.setActiveNavItems();\n this.pendingActiveUpdate = null;\n }, 50);\n }\n });\n\n this.mutationObserver.observe(this.el, {\n childList: true,\n subtree: true,\n });\n };\n\n //#endregion METHODS\n /****************************************************************************/\n //#region WATCHERS\n\n @Watch('activePath')\n onActivePathChanged() {\n this.setActiveNavItems();\n }\n\n @Watch('open')\n protected onOpenChanged(newValue: boolean, oldValue: boolean) {\n this.handleCollapsedSideEffects(this.type === 'collapsible' && !newValue);\n // Only emit event when open state actually changes (not on re-render with same value)\n if (this.type === 'collapsible' && newValue !== oldValue) {\n this.openChanged.emit(newValue);\n }\n }\n\n //#endregion WATCHERS\n /****************************************************************************/\n //#region LIFECYCLE\n\n componentWillLoad() {\n this.setActiveNavItems();\n this.setupMutationObserver();\n this.handleCollapsedSideEffects(this.type === 'collapsible' && !this.open);\n }\n\n disconnectedCallback() {\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n if (this.pendingActiveUpdate) {\n clearTimeout(this.pendingActiveUpdate);\n }\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region RENDER\n\n render() {\n const isCollapsed = this.type === 'collapsible' && !this.open;\n\n return (\n <Host\n role=\"navigation\"\n collapsed={isCollapsed ? true : undefined}\n notification-intention={this.notificationIntention}\n notification-emphasis={this.notificationEmphasis}\n aria-expanded={\n this.type === 'collapsible' ? String(this.open) : undefined\n }\n >\n <div class=\"nv-sidebar-container\">\n <slot></slot>\n </div>\n {this.type === 'collapsible' && (\n <button\n class=\"nv-sidebar-toggle\"\n onClick={this.handleToggle}\n aria-label={this.open ? 'Collapse sidebar' : 'Expand sidebar'}\n >\n <nv-icon\n name={\n this.open\n ? 'layout-sidebar-left-collapse'\n : 'layout-sidebar-right-collapse'\n }\n size=\"sm\"\n ></nv-icon>\n </button>\n )}\n </Host>\n );\n }\n //#endregion RENDER\n}\n"]}
@@ -7,7 +7,7 @@ export class NvSidebarcontent {
7
7
  /****************************************************************************/
8
8
  //#region RENDER
9
9
  render() {
10
- return (h(Host, { key: 'd960a2c2abe06db605980bf35d2c7cc74f4e0dba', role: "list" }, h("slot", { key: '7c0b0ad872d1afc279bfd9c9d381097207f055e2' })));
10
+ return (h(Host, { key: 'c72a3de4460c4de37c2008ec4d777771d8771d32', role: "list" }, h("slot", { key: '8d08c073aebf079dbb9062bb183370e4dc4d9fe8' })));
11
11
  }
12
12
  static get is() { return "nv-sidebarcontent"; }
13
13
  static get originalStyleUrls() {
@@ -6,7 +6,7 @@ export class NvSidebardivider {
6
6
  /****************************************************************************/
7
7
  //#region RENDER
8
8
  render() {
9
- return h(Host, { key: 'a4328b357b750232920c8b5e24e91503bba7e235', role: "separator", "aria-orientation": "horizontal" });
9
+ return h(Host, { key: '157045ee7209aa55574c54c2392f1e53d6cdba1e', role: "separator", "aria-orientation": "horizontal" });
10
10
  }
11
11
  static get is() { return "nv-sidebardivider"; }
12
12
  static get originalStyleUrls() {
@@ -8,7 +8,7 @@ export class NvSidebarfooter {
8
8
  /****************************************************************************/
9
9
  //#region RENDER
10
10
  render() {
11
- return (h(Host, { key: '73ce5246f93d982caf0d65f2cde8156dfbe565da' }, h("slot", { key: '92a297a59988ce6e70875eedd50227cdf011d4bf' })));
11
+ return (h(Host, { key: 'be19b80fc56a296999532d986d477dcbd817a9f2' }, h("slot", { key: '55b3e91dab40b923d67eb140be42fd2483951254' })));
12
12
  }
13
13
  static get is() { return "nv-sidebarfooter"; }
14
14
  static get originalStyleUrls() {
@@ -8,7 +8,7 @@ export class NvSidebargroup {
8
8
  /****************************************************************************/
9
9
  //#region RENDER
10
10
  render() {
11
- return (h(Host, { key: 'c7b4e34d8237dc93adaa33f12d7cfda36a8ac269', role: "group", "aria-label": this.label }, this.label && h("div", { key: '7cafdf840b12c89604efda7895b764331c8054b7', class: "nv-sidebargroup-label" }, this.label), h("slot", { key: 'b6567a223f7cc05ce2874a632d38d6665c255659' })));
11
+ return (h(Host, { key: '64b17f621fef826a4105dfa39fbc57013bad0abc', role: "group", "aria-label": this.label }, this.label && h("div", { key: '48e36725296ecc87da7d15606977fbe616dd4aa3', class: "nv-sidebargroup-label" }, this.label), h("slot", { key: '61aaf8541e9372220df24dcf9cf0b5b43e22e19b' })));
12
12
  }
13
13
  static get is() { return "nv-sidebargroup"; }
14
14
  static get originalStyleUrls() {
@@ -8,7 +8,7 @@ export class NvSidebarheader {
8
8
  /****************************************************************************/
9
9
  //#region RENDER
10
10
  render() {
11
- return (h(Host, { key: '42d91f8325df19e8208ab045a057657c97bf3ff4' }, h("slot", { key: '42b4e5952fd55b95fe2934297929cef3bd1b226c' })));
11
+ return (h(Host, { key: '2c9c0c109138ed3a23cb8f1a2fb78f29f93a4056' }, h("slot", { key: 'a928008023c6ce8a77aafbe0042ec8ed72e9c32d' })));
12
12
  }
13
13
  static get is() { return "nv-sidebarheader"; }
14
14
  static get originalStyleUrls() {
@@ -19,7 +19,7 @@ export class NvSidebarlogo {
19
19
  render() {
20
20
  const logoSrc = this.logo || this.defaultLogo;
21
21
  const collapsedLogoSrc = this.collapsedLogo || this.defaultCollapsedLogo;
22
- return (h(Host, { key: 'ec2aba08293e4def2fe083c311b69cafe005cf5e' }, h("div", { key: '3a24d832a0bb5aa44264fe1fc3091878556649bd', class: "nv-sidebarlogo-container" }, h("img", { key: 'a9a08e7c5dd51902d9ffbda0d9216a4ffb186756', src: logoSrc, alt: this.label || 'Logo', class: "nv-sidebarlogo-full" }), h("img", { key: 'daef311e11c8d5ee6b823a4896be36ea5bd696cc', src: collapsedLogoSrc, alt: this.label || 'Logo', class: "nv-sidebarlogo-collapsed" }), this.label && h("span", { key: '9685e4c110e7bb7356f5d49b615105033a32a736', class: "nv-sidebarlogo-title" }, this.label))));
22
+ return (h(Host, { key: '0d14763dcb7b1b961f2b32a7be44d8a8116087bb' }, h("div", { key: '78c2a6578cc48298aa88baf946954d79d36894db', class: "nv-sidebarlogo-container" }, h("img", { key: 'd4dd86b4d4a00bedfab84fd987d46e5e83fcb5a6', src: logoSrc, alt: this.label || 'Logo', class: "nv-sidebarlogo-full" }), h("img", { key: 'c0382d6fb18fbc17a21bb411fde64dcd255f42a5', src: collapsedLogoSrc, alt: this.label || 'Logo', class: "nv-sidebarlogo-collapsed" }), this.label && h("span", { key: 'f75152415bb2569698a5cae856c6b26a202f8c7d', class: "nv-sidebarlogo-title" }, this.label))));
23
23
  }
24
24
  static get is() { return "nv-sidebarlogo"; }
25
25
  static get originalStyleUrls() {
@@ -39,7 +39,7 @@ export class NvSidebarnavitem {
39
39
  if (this.isSidebarCollapsed) {
40
40
  // Find the first link that is NOT inside subitems
41
41
  const link = this.el.querySelector('.nv-sidebarnavitem-content a, :scope > a');
42
- if (link === null || link === void 0 ? void 0 : link.href) {
42
+ if (link?.href) {
43
43
  // Check if click was directly on the link - if so, let it handle naturally
44
44
  if (target.closest('a')) {
45
45
  return;
@@ -118,10 +118,9 @@ export class NvSidebarnavitem {
118
118
  }
119
119
  };
120
120
  this.checkSidebarCollapsed = () => {
121
- var _a;
122
121
  const sidebar = this.el.closest('nv-sidebar');
123
122
  const wasCollapsed = this.isSidebarCollapsed;
124
- this.isSidebarCollapsed = (_a = sidebar === null || sidebar === void 0 ? void 0 : sidebar.hasAttribute('collapsed')) !== null && _a !== void 0 ? _a : false;
123
+ this.isSidebarCollapsed = sidebar?.hasAttribute('collapsed') ?? false;
125
124
  // When sidebar collapse state changes, update active state based on subitems
126
125
  if (wasCollapsed !== this.isSidebarCollapsed) {
127
126
  this.updateActiveFromSubitems();
@@ -269,7 +268,7 @@ export class NvSidebarnavitem {
269
268
  render() {
270
269
  const showNotificationBullet = this.notificationCount !== undefined && this.notificationCount > 0;
271
270
  const notificationSize = this.isSidebarCollapsed ? 'reduced' : 'default';
272
- return (h(Host, { key: 'c0c9c63cb295441389b5ced9a4b0a0d5a1af99cd', role: "listitem" }, h("div", { key: '6673c3f4c14762bff8512ecc430febddfa74b307', class: "nv-sidebarnavitem-trigger", onClick: this.handleToggle, "aria-expanded": this.collapsible ? String(this.open) : undefined, "aria-current": this.active && !this.collapsible ? 'page' : undefined }, this.icon && (h("div", { key: '25f703e9fb7375b8b562be54f080120ae037dd9f', class: "nv-sidebarnavitem-icon" }, h("nv-icon", { key: '1a4e345c90afcec159890db6c6b0e22d53dd673d', name: this.icon, size: "md" }), showNotificationBullet && this.isSidebarCollapsed && (h("nv-notification-bullet", { key: '15b69d1a2325daed7d6583ed10906fe4e91809e5', count: this.notificationCount, size: notificationSize, contrastingBorder: true })))), h("div", { key: 'c717c09f39eab07616de419a35b11a5b7dfce5d1', class: "nv-sidebarnavitem-content" }, h("slot", { key: '9f8687f151fd082a6737e7fbe6036cc3ebff3cc2' })), h("div", { key: 'b2c3d7a4c30ce96273731a05a1d361f5654582de', class: "nv-sidebarnavitem-trailing" }, h("slot", { key: 'acf2dddbbbc7d2e83703c731a244237e0dc81153', name: "trailing" }), showNotificationBullet && !this.isSidebarCollapsed && (h("nv-notification-bullet", { key: 'adca5c7418a3b58afa5ef21ddd3fa9b2d880a56c', count: this.notificationCount, size: notificationSize })), this.collapsible && (h("nv-icon", { key: 'a4a4369d4ba76f567cca439d1b4c7e95ad5ba98c', name: "chevron-down", size: "sm", class: "nv-sidebarnavitem-chevron" })))), this.collapsible && this.hasSubitems && (h("div", { key: '2d4fadb0b547eb369a702bb8210b3312dde505b2', class: "nv-sidebarnavitem-subitems", ref: el => {
271
+ return (h(Host, { key: '7a3523c68080b90ef262a2fa3fa63f1f34baaaf1', role: "listitem" }, h("div", { key: '21abd8cf4e5d4a368b25db79306cb0ac747edfce', class: "nv-sidebarnavitem-trigger", onClick: this.handleToggle, "aria-expanded": this.collapsible ? String(this.open) : undefined, "aria-current": this.active && !this.collapsible ? 'page' : undefined }, this.icon && (h("div", { key: '8255f2f75b751e5005b4bbb7178e553123c7c109', class: "nv-sidebarnavitem-icon" }, h("nv-icon", { key: '5396567c08fc46084f085b544aeee3f874b7b439', name: this.icon, size: "md" }), showNotificationBullet && this.isSidebarCollapsed && (h("nv-notification-bullet", { key: '63dfbd2a986124a9c1ba1741e4d1079ec2b38a18', count: this.notificationCount, size: notificationSize, contrastingBorder: true })))), h("div", { key: 'a4d8df28b532018d6961d6d779d77ba88bbea756', class: "nv-sidebarnavitem-content" }, h("slot", { key: '7394c3534de567f9230ff872b57b4211939bc142' })), h("div", { key: 'c8f8451e9ebc42e6ee16407a5ba9c6f6c32f4a66', class: "nv-sidebarnavitem-trailing" }, h("slot", { key: '2e901538498c62fe5a5bc21c76c66b493c215e32', name: "trailing" }), showNotificationBullet && !this.isSidebarCollapsed && (h("nv-notification-bullet", { key: '9a7c172f0b7dbf78068135344e469d261b80d368', count: this.notificationCount, size: notificationSize })), this.collapsible && (h("nv-icon", { key: 'f1caa3750edb35376d8b45121ffb443b033735d4', name: "chevron-down", size: "sm", class: "nv-sidebarnavitem-chevron" })))), this.collapsible && this.hasSubitems && (h("div", { key: '4b141fd9639afd78351b01df146866d4d091381f', class: "nv-sidebarnavitem-subitems", ref: el => {
273
272
  // Only update ref and initialize if element changed or not yet initialized
274
273
  if (el !== this.subitemsRef) {
275
274
  this.subitemsRef = el;
@@ -284,7 +283,7 @@ export class NvSidebarnavitem {
284
283
  });
285
284
  }
286
285
  }
287
- } }, h("slot", { key: 'f0ffb970aa2d84580205ba110858d3f1c27875a3', name: "subitems" })))));
286
+ } }, h("slot", { key: '6a38e07d0559b6eaf2fafb4c9928047a9cfd19b4', name: "subitems" })))));
288
287
  }
289
288
  static get is() { return "nv-sidebarnavitem"; }
290
289
  static get originalStyleUrls() {
@@ -304,7 +303,7 @@ export class NvSidebarnavitem {
304
303
  "mutable": false,
305
304
  "complexType": {
306
305
  "original": "IconName",
307
- "resolved": "\"home\" | \"photo\" | \"map\" | \"filter\" | \"access-point-off\" | \"access-point\" | \"accessible\" | \"activity\" | \"address-book\" | \"adjustments-horizontal\" | \"adjustments-up\" | \"adjustments\" | \"affiliate\" | \"air-conditioning\" | \"alert-circle\" | \"alert-square-rounded\" | \"alert-triangle\" | \"align-center\" | \"align-left\" | \"align-right\" | \"app-window\" | \"apps\" | \"archive\" | \"areas\" | \"arrow-back-up\" | \"arrow-back\" | \"arrow-down-left\" | \"arrow-down-right\" | \"arrow-down\" | \"arrow-forward-up\" | \"arrow-forward\" | \"arrow-left\" | \"arrow-right\" | \"arrow-up-left\" | \"arrow-up-right\" | \"arrow-up\" | \"arrows-diagonal\" | \"arrows-exchange\" | \"arrows-maximize\" | \"arrows-minimize\" | \"arrows-move\" | \"aspect-ratio\" | \"atom\" | \"ban\" | \"basket\" | \"battery-1\" | \"battery-2\" | \"battery-3\" | \"battery-4\" | \"battery-automotive\" | \"battery-charging\" | \"battery-eco\" | \"battery-off\" | \"battery\" | \"bell-bolt\" | \"bell-off\" | \"bell-ringing\" | \"bell\" | \"bike\" | \"bluetooth-connected\" | \"bluetooth-off\" | \"bluetooth\" | \"bolt-off\" | \"bolt\" | \"book\" | \"bookmark-off\" | \"bookmark\" | \"bookmarks\" | \"box-align-top\" | \"box-multiple\" | \"brand-facebook\" | \"brand-instagram\" | \"brand-linkedin\" | \"brand-x\" | \"brand-youtube\" | \"briefcase\" | \"brightness-down\" | \"brightness-up\" | \"browser-check\" | \"browser-plus\" | \"browser-x\" | \"browser\" | \"brush\" | \"building-bank\" | \"building-factory\" | \"building-lighthouse\" | \"building-store\" | \"building\" | \"bulb-off\" | \"bulb\" | \"cake\" | \"calendar-time\" | \"calendar\" | \"camera-off\" | \"camera\" | \"car-crane\" | \"car\" | \"caravan\" | \"cash-banknote\" | \"cash\" | \"cast\" | \"cell\" | \"charging-pile\" | \"chart-arcs\" | \"chart-area-line\" | \"chart-area\" | \"chart-arrows-vertical\" | \"chart-arrows\" | \"chart-bar\" | \"chart-bubble\" | \"chart-circles\" | \"chart-donut\" | \"chart-dots\" | \"chart-line\" | \"chart-pie\" | \"chart-radar\" | \"check\" | \"checkbox\" | \"checklist\" | \"checks\" | \"chevron-down\" | \"chevron-left\" | \"chevron-right\" | \"chevron-top\" | \"chevrons-left\" | \"chevrons-right\" | \"circle-caret-right\" | \"circle-check\" | \"circle-x\" | \"circuit-alternate\" | \"circuit-ground-digital\" | \"clipboard-check\" | \"clipboard-list\" | \"clipboard-plus\" | \"clipboard-text\" | \"clipboard-x\" | \"clipboard\" | \"clock-edit\" | \"clock\" | \"cloud-data-connection\" | \"cloud-download\" | \"cloud-rain\" | \"cloud-snow\" | \"cloud-upload\" | \"cloud\" | \"color-picker\" | \"color-swatch\" | \"columns-1\" | \"columns-2\" | \"columns-3\" | \"compass\" | \"contract\" | \"cookie\" | \"copy\" | \"cpu\" | \"crane\" | \"credit-card\" | \"crop\" | \"cross\" | \"crown\" | \"currency-bitcoin\" | \"currency-dollar\" | \"currency-ethereum\" | \"currency-euro\" | \"cut\" | \"dashboard\" | \"database\" | \"device-desktop\" | \"device-floppy\" | \"device-gamepad\" | \"device-laptop\" | \"device-mobile-rotated\" | \"device-mobile\" | \"device-tablet\" | \"device-watch\" | \"devices\" | \"dialpad\" | \"direction-horizontal\" | \"direction-sign\" | \"direction\" | \"discount\" | \"door-enter\" | \"door-exit\" | \"door-off\" | \"dots-vertical\" | \"dots\" | \"download\" | \"drone\" | \"droplet-filled\" | \"droplet-half\" | \"droplet\" | \"droplets\" | \"edit\" | \"empty\" | \"engine\" | \"equal-not\" | \"eraser-off\" | \"eraser\" | \"external-link\" | \"eye-off\" | \"eye\" | \"face-id\" | \"feather\" | \"file-alert\" | \"file-analytics\" | \"file-check\" | \"file-code\" | \"file-download\" | \"file-export\" | \"file-horizontal\" | \"file-import\" | \"file-plus\" | \"file-search\" | \"file-text-bookmark\" | \"file-text\" | \"file-type-bmp\" | \"file-type-css\" | \"file-type-csv\" | \"file-type-doc\" | \"file-type-html\" | \"file-type-jpg\" | \"file-type-js\" | \"file-type-pdf\" | \"file-type-png\" | \"file-type-ppt\" | \"file-type-xls\" | \"file-type-xml\" | \"file-type-zip\" | \"file-upload\" | \"file-x\" | \"file-zip\" | \"file\" | \"files-off\" | \"files\" | \"filter-off\" | \"filter-sort\" | \"fingerprint\" | \"fire-extinguisher\" | \"flag\" | \"flame\" | \"flip-horizontal\" | \"flip-vertical\" | \"folder-minus\" | \"folder-off\" | \"folder-plus\" | \"folder-x\" | \"folder\" | \"folders\" | \"frame\" | \"gas-station\" | \"gauge-off\" | \"gauge\" | \"gift\" | \"git-branch-delete\" | \"git-branch\" | \"git-cherry-pick\" | \"git-commit\" | \"git-compare\" | \"git-fork\" | \"git-merge\" | \"git-pull-request-closed\" | \"git-pull-request-draft\" | \"git-pull-request\" | \"gps\" | \"grid-dots\" | \"grip-horizontal\" | \"grip-vertical\" | \"hand-stop\" | \"hand-waving\" | \"hash\" | \"haze\" | \"headphones-off\" | \"headphones\" | \"headset\" | \"heart-off\" | \"heart\" | \"heartbeat\" | \"helicopter\" | \"helmet-swopp\" | \"helmet\" | \"help\" | \"history\" | \"hourglass-empty\" | \"hourglass-high\" | \"hourglass-low\" | \"hourglass-off\" | \"hourglass\" | \"inbox\" | \"info-circle\" | \"keyboard-hide\" | \"keyboard-show\" | \"keyboard\" | \"layout-board-split\" | \"layout-dashboard\" | \"layout-grid\" | \"layout-sidebar-left-collapse\" | \"layout-sidebar-left-expand\" | \"layout-sidebar-right-collapse\" | \"layout-sidebar-right-expand\" | \"layout\" | \"leaf\" | \"lifebuoy\" | \"link\" | \"list-search\" | \"list\" | \"loader\" | \"location\" | \"lock-off\" | \"lock-open\" | \"lock\" | \"login\" | \"logout\" | \"mail-forward\" | \"mail-opened\" | \"mail\" | \"map-pin-2\" | \"map-pin-off\" | \"map-pin\" | \"master-data\" | \"menu\" | \"message-dots\" | \"message-off\" | \"message\" | \"messages\" | \"microphone-off\" | \"microphone\" | \"minus\" | \"mist\" | \"moon\" | \"motorbike\" | \"mouse\" | \"movie\" | \"network\" | \"news\" | \"note\" | \"notebook\" | \"notes\" | \"offshore-station\" | \"package\" | \"palette\" | \"paperclip\" | \"pencil\" | \"phone-call\" | \"phone-calling\" | \"phone-check\" | \"phone-incoming\" | \"phone-off\" | \"phone-outgoing\" | \"phone\" | \"photo-off\" | \"pig\" | \"pin\" | \"pinned-off\" | \"pinned\" | \"plane-off\" | \"plane\" | \"plant\" | \"player-pause\" | \"player-play\" | \"player-skip-back\" | \"player-skip-forward\" | \"player-stop\" | \"player-track-next\" | \"player-track-prev\" | \"plug-connected\" | \"plug\" | \"plus\" | \"power-ac\" | \"power-dc\" | \"power\" | \"presentation-analytics\" | \"presentation\" | \"printer\" | \"propeller\" | \"published\" | \"puzzle-2\" | \"puzzle\" | \"pylon\" | \"qrcode\" | \"quotes-open\" | \"quotes\" | \"radar\" | \"radio\" | \"radioactive\" | \"receipt-dollar\" | \"receipt-euro\" | \"receipt\" | \"recharging\" | \"recycle\" | \"refresh-alert\" | \"refresh-off\" | \"refresh\" | \"repeat-once\" | \"repeat\" | \"replace\" | \"report-analytics\" | \"report-medical\" | \"report-search\" | \"report\" | \"ripple-off\" | \"ripple\" | \"rocket\" | \"rotate-2\" | \"rotate-clockwise-2\" | \"rotate-clockwise\" | \"rotate-dot\" | \"rotate\" | \"router\" | \"ruler-measure\" | \"sailboat\" | \"satellite\" | \"scale\" | \"school\" | \"scissors\" | \"scooter-electric\" | \"screenshot\" | \"search\" | \"seeding\" | \"select\" | \"selector\" | \"send\" | \"server\" | \"settings\" | \"shape\" | \"share-2\" | \"share\" | \"shield-check\" | \"shield-lock\" | \"shield-off\" | \"shield-x\" | \"shield\" | \"ship-off\" | \"ship\" | \"shopping-cart\" | \"sitemap\" | \"slash\" | \"smart-home\" | \"snowflake\" | \"solar-panel\" | \"sort-ascending-letters\" | \"sort-ascending-numbers\" | \"sort-descending-letters\" | \"sort-descending-numbers\" | \"spacing-horizontal\" | \"spacing-vertical\" | \"sparkles\" | \"speakerphone\" | \"stack\" | \"stairs\" | \"star\" | \"sun\" | \"sunrise\" | \"sunset\" | \"switch-horizontal\" | \"switch-vertical\" | \"table\" | \"tag\" | \"tank-empty-fill\" | \"tank-full-fill\" | \"tank-medium-fill\" | \"temperature-off\" | \"temperature\" | \"template\" | \"terminal\" | \"text-size\" | \"text\" | \"thumb-down\" | \"thumb-up\" | \"ticket\" | \"timeline\" | \"tir\" | \"tool\" | \"tools\" | \"train\" | \"trash-off\" | \"trash\" | \"tree\" | \"trees\" | \"truck-delivery\" | \"truck\" | \"umbrella\" | \"unlink\" | \"upload\" | \"user-circle\" | \"user-exclamation\" | \"user-minus\" | \"user-off\" | \"user-plus\" | \"user-worker\" | \"user\" | \"users\" | \"versions\" | \"video-minus\" | \"video-off\" | \"video-plus\" | \"video\" | \"volume-2\" | \"volume-3\" | \"volume\" | \"wallet\" | \"wand\" | \"wave\" | \"waves\" | \"wifi-off\" | \"wifi\" | \"wind-direction\" | \"wind\" | \"windmill\" | \"wood\" | \"world-code\" | \"world\" | \"writing\" | \"x\" | \"zoom-reset\"",
306
+ "resolved": "\"home\" | \"photo\" | \"map\" | \"filter\" | \"access-point-off\" | \"access-point\" | \"accessible\" | \"activity\" | \"address-book\" | \"adjustments-horizontal\" | \"adjustments-up\" | \"adjustments\" | \"affiliate\" | \"air-conditioning\" | \"alert-circle\" | \"alert-square-rounded\" | \"alert-triangle\" | \"align-center\" | \"align-left\" | \"align-right\" | \"app-window\" | \"apps\" | \"archive\" | \"areas\" | \"arrow-back-up\" | \"arrow-back\" | \"arrow-down-left\" | \"arrow-down-right\" | \"arrow-down\" | \"arrow-forward-up\" | \"arrow-forward\" | \"arrow-left\" | \"arrow-right\" | \"arrow-up-left\" | \"arrow-up-right\" | \"arrow-up\" | \"arrows-diagonal\" | \"arrows-exchange\" | \"arrows-maximize\" | \"arrows-minimize\" | \"arrows-move\" | \"aspect-ratio\" | \"atom\" | \"ban\" | \"basket\" | \"battery-1\" | \"battery-2\" | \"battery-3\" | \"battery-4\" | \"battery-automotive\" | \"battery-charging\" | \"battery-eco\" | \"battery-off\" | \"battery\" | \"bell-bolt\" | \"bell-off\" | \"bell-ringing\" | \"bell\" | \"bike\" | \"bluetooth-connected\" | \"bluetooth-off\" | \"bluetooth\" | \"bolt-off\" | \"bolt\" | \"book\" | \"bookmark-off\" | \"bookmark\" | \"bookmarks\" | \"box-align-top\" | \"box-multiple\" | \"brand-facebook\" | \"brand-instagram\" | \"brand-linkedin\" | \"brand-x\" | \"brand-youtube\" | \"briefcase\" | \"brightness-down\" | \"brightness-up\" | \"browser-check\" | \"browser-plus\" | \"browser-x\" | \"browser\" | \"brush\" | \"building-bank\" | \"building-factory\" | \"building-lighthouse\" | \"building-store\" | \"building\" | \"bulb-off\" | \"bulb\" | \"cake\" | \"calendar-time\" | \"calendar\" | \"camera-off\" | \"camera\" | \"car-crane\" | \"car\" | \"caravan\" | \"cash-banknote\" | \"cash\" | \"cast\" | \"cell\" | \"charging-pile\" | \"chart-arcs\" | \"chart-area-line\" | \"chart-area\" | \"chart-arrows-vertical\" | \"chart-arrows\" | \"chart-bar\" | \"chart-bubble\" | \"chart-circles\" | \"chart-donut\" | \"chart-dots\" | \"chart-line\" | \"chart-pie\" | \"chart-radar\" | \"check\" | \"checkbox\" | \"checklist\" | \"checks\" | \"chevron-down\" | \"chevron-left\" | \"chevron-right\" | \"chevron-top\" | \"chevrons-left\" | \"chevrons-right\" | \"circle-caret-right\" | \"circle-check\" | \"circle-x\" | \"circuit-alternate\" | \"circuit-ground-digital\" | \"clipboard-check\" | \"clipboard-list\" | \"clipboard-plus\" | \"clipboard-text\" | \"clipboard-x\" | \"clipboard\" | \"clock-edit\" | \"clock\" | \"cloud-data-connection\" | \"cloud-download\" | \"cloud-rain\" | \"cloud-snow\" | \"cloud-upload\" | \"cloud\" | \"color-picker\" | \"color-swatch\" | \"columns-1\" | \"columns-2\" | \"columns-3\" | \"compass\" | \"contract\" | \"cookie\" | \"copy\" | \"cpu\" | \"crane\" | \"credit-card\" | \"crop\" | \"cross\" | \"crown\" | \"currency-bitcoin\" | \"currency-dollar\" | \"currency-ethereum\" | \"currency-euro\" | \"cut\" | \"dashboard\" | \"database\" | \"device-desktop\" | \"device-floppy\" | \"device-gamepad\" | \"device-laptop\" | \"device-mobile-rotated\" | \"device-mobile\" | \"device-tablet\" | \"device-watch\" | \"devices\" | \"dialpad\" | \"direction-horizontal\" | \"direction-sign\" | \"direction\" | \"discount\" | \"door-enter\" | \"door-exit\" | \"door-off\" | \"dots-vertical\" | \"dots\" | \"download\" | \"drone\" | \"droplet-filled\" | \"droplet-half\" | \"droplet\" | \"droplets\" | \"edit\" | \"empty\" | \"engine\" | \"equal-not\" | \"eraser-off\" | \"eraser\" | \"external-link\" | \"eye-check\" | \"eye-off\" | \"eye\" | \"eyeglass2\" | \"face-id\" | \"feather\" | \"file-alert\" | \"file-analytics\" | \"file-check\" | \"file-code\" | \"file-download\" | \"file-export\" | \"file-horizontal\" | \"file-import\" | \"file-plus\" | \"file-search\" | \"file-text-bookmark\" | \"file-text\" | \"file-type-bmp\" | \"file-type-css\" | \"file-type-csv\" | \"file-type-doc\" | \"file-type-html\" | \"file-type-jpg\" | \"file-type-js\" | \"file-type-pdf\" | \"file-type-png\" | \"file-type-ppt\" | \"file-type-xls\" | \"file-type-xml\" | \"file-type-zip\" | \"file-upload\" | \"file-x\" | \"file-zip\" | \"file\" | \"files-off\" | \"files\" | \"filter-off\" | \"filter-sort\" | \"fingerprint\" | \"fire-extinguisher\" | \"flag\" | \"flame\" | \"flip-horizontal\" | \"flip-vertical\" | \"folder-minus\" | \"folder-off\" | \"folder-plus\" | \"folder-x\" | \"folder\" | \"folders\" | \"frame\" | \"gas-station\" | \"gauge-off\" | \"gauge\" | \"gift\" | \"git-branch-delete\" | \"git-branch\" | \"git-cherry-pick\" | \"git-commit\" | \"git-compare\" | \"git-fork\" | \"git-merge\" | \"git-pull-request-closed\" | \"git-pull-request-draft\" | \"git-pull-request\" | \"gps\" | \"grid-dots\" | \"grip-horizontal\" | \"grip-vertical\" | \"hand-stop\" | \"hand-waving\" | \"hash\" | \"haze\" | \"headphones-off\" | \"headphones\" | \"headset\" | \"heart-off\" | \"heart\" | \"heartbeat\" | \"helicopter\" | \"helmet-swopp\" | \"helmet\" | \"help\" | \"history\" | \"hourglass-empty\" | \"hourglass-high\" | \"hourglass-low\" | \"hourglass-off\" | \"hourglass\" | \"inbox\" | \"info-circle\" | \"keyboard-hide\" | \"keyboard-show\" | \"keyboard\" | \"layout-board-split\" | \"layout-dashboard\" | \"layout-grid\" | \"layout-sidebar-left-collapse\" | \"layout-sidebar-left-expand\" | \"layout-sidebar-right-collapse\" | \"layout-sidebar-right-expand\" | \"layout\" | \"leaf\" | \"lifebuoy\" | \"link\" | \"list-search\" | \"list\" | \"loader\" | \"location\" | \"lock-off\" | \"lock-open\" | \"lock\" | \"login\" | \"logout\" | \"mail-forward\" | \"mail-opened\" | \"mail\" | \"map-pin-2\" | \"map-pin-off\" | \"map-pin\" | \"master-data\" | \"menu\" | \"message-dots\" | \"message-off\" | \"message\" | \"messages\" | \"microphone-off\" | \"microphone\" | \"minus\" | \"mist\" | \"moon\" | \"motorbike\" | \"mouse\" | \"movie\" | \"network\" | \"news\" | \"note\" | \"notebook\" | \"notes\" | \"offshore-station\" | \"package\" | \"palette\" | \"paperclip\" | \"pencil\" | \"phone-call\" | \"phone-calling\" | \"phone-check\" | \"phone-incoming\" | \"phone-off\" | \"phone-outgoing\" | \"phone\" | \"photo-off\" | \"pig\" | \"pin\" | \"pinned-off\" | \"pinned\" | \"plane-off\" | \"plane\" | \"plant\" | \"player-pause\" | \"player-play\" | \"player-skip-back\" | \"player-skip-forward\" | \"player-stop\" | \"player-track-next\" | \"player-track-prev\" | \"plug-connected\" | \"plug\" | \"plus\" | \"power-ac\" | \"power-dc\" | \"power\" | \"presentation-analytics\" | \"presentation\" | \"printer\" | \"propeller\" | \"published\" | \"puzzle-2\" | \"puzzle\" | \"pylon\" | \"qrcode\" | \"quotes-open\" | \"quotes\" | \"radar\" | \"radio\" | \"radioactive\" | \"receipt-dollar\" | \"receipt-euro\" | \"receipt\" | \"recharging\" | \"recycle\" | \"refresh-alert\" | \"refresh-off\" | \"refresh\" | \"repeat-once\" | \"repeat\" | \"replace\" | \"report-analytics\" | \"report-medical\" | \"report-search\" | \"report\" | \"ripple-off\" | \"ripple\" | \"rocket\" | \"rotate-2\" | \"rotate-clockwise-2\" | \"rotate-clockwise\" | \"rotate-dot\" | \"rotate\" | \"router\" | \"ruler-measure\" | \"sailboat\" | \"satellite\" | \"scale\" | \"school\" | \"scissors\" | \"scooter-electric\" | \"screenshot\" | \"search\" | \"seeding\" | \"select\" | \"selector\" | \"send\" | \"server\" | \"settings\" | \"shape\" | \"share-2\" | \"share\" | \"shield-check\" | \"shield-lock\" | \"shield-off\" | \"shield-x\" | \"shield\" | \"ship-off\" | \"ship\" | \"shopping-cart\" | \"sitemap\" | \"slash\" | \"smart-home\" | \"snowflake\" | \"solar-panel\" | \"sort-ascending-letters\" | \"sort-ascending-numbers\" | \"sort-descending-letters\" | \"sort-descending-numbers\" | \"spacing-horizontal\" | \"spacing-vertical\" | \"sparkles\" | \"speakerphone\" | \"stack\" | \"stairs\" | \"star\" | \"sun\" | \"sunrise\" | \"sunset\" | \"switch-horizontal\" | \"switch-vertical\" | \"table\" | \"tag\" | \"tank-empty-fill\" | \"tank-full-fill\" | \"tank-medium-fill\" | \"temperature-off\" | \"temperature\" | \"template\" | \"terminal\" | \"text-size\" | \"text\" | \"thumb-down\" | \"thumb-up\" | \"ticket\" | \"timeline\" | \"tir\" | \"tool\" | \"tools\" | \"train\" | \"trash-off\" | \"trash\" | \"tree\" | \"trees\" | \"truck-delivery\" | \"truck\" | \"umbrella\" | \"unlink\" | \"upload\" | \"user-circle\" | \"user-exclamation\" | \"user-minus\" | \"user-off\" | \"user-plus\" | \"user-worker\" | \"user\" | \"users\" | \"versions\" | \"video-minus\" | \"video-off\" | \"video-plus\" | \"video\" | \"volume-2\" | \"volume-3\" | \"volume\" | \"wallet\" | \"wand\" | \"wave\" | \"waves\" | \"wifi-off\" | \"wifi\" | \"wind-direction\" | \"wind\" | \"windmill\" | \"wood\" | \"world-code\" | \"world\" | \"writing\" | \"x\" | \"zoom-reset\"",
308
307
  "references": {
309
308
  "IconName": {
310
309
  "location": "import",
@@ -1 +1 @@
1
- {"version":3,"file":"nv-sidebarnavitem.js","sourceRoot":"","sources":["../../../../src/components/nv-sidebarnavitem/nv-sidebarnavitem.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, Prop, State, Element, Watch, h } from '@stencil/core';\nimport { IconName } from '../nv-icon/nv-icons';\n\n/**\n * A navigation item in the sidebar. Can be a simple link or a collapsible parent with sub-items.\n * @slot default - The link or content of the item (usually an <a> tag).\n * @slot subitems - Sub-navigation items (nv-sidebarnavsubitem elements). Automatically assigned.\n * @slot trailing - Optional content displayed at the end of the item (e.g., badges, icons, chevron).\n */\n@Component({\n tag: 'nv-sidebarnavitem',\n styleUrl: 'styles/nv-sidebarnavitem.scss',\n shadow: false,\n})\nexport class NvSidebarnavitem {\n @Element() el: HTMLNvSidebarnavitemElement;\n /****************************************************************************/\n //#region PROPERTIES\n /**\n * Optional icon to display before the label.\n */\n @Prop({ reflect: true })\n readonly icon?: IconName;\n\n /**\n * Whether this item represents the active/current page.\n * Can be set automatically when a sub-item becomes active.\n */\n @Prop({ reflect: true, mutable: true })\n active: boolean = false;\n\n /**\n * Whether this item can be collapsed/expanded (has sub-items).\n */\n @Prop({ reflect: true })\n readonly collapsible: boolean = false;\n\n /**\n * Whether the collapsible item is currently open (showing sub-items).\n */\n @Prop({ reflect: true, mutable: true })\n open: boolean = false;\n\n /**\n * Number of notifications to display. When provided, a notification bullet will be automatically rendered.\n * The bullet will be positioned in the trailing slot when sidebar is open, and on the icon when collapsed.\n */\n @Prop({ reflect: true })\n readonly notificationCount?: number;\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region STATE\n @State()\n private hasSubitems: boolean = false;\n\n @State()\n private isSidebarCollapsed: boolean = false;\n\n private mutationObserver?: MutationObserver;\n private subitemsMutationObserver?: MutationObserver;\n private wasActiveFromSubitem: boolean = false; // Track if active was set by subitem logic\n //#endregion STATE\n /****************************************************************************/\n //#region METHODS\n private handleToggle = (event: MouseEvent) => {\n // Ignore clicks that originated from subitems (they bubble up but shouldn't toggle)\n const target = event.target as HTMLElement;\n if (target.closest('nv-sidebarnavsubitem')) {\n return; // Let the subitem's link handle navigation normally\n }\n\n // In collapsed sidebar mode, navigate to the main link instead of toggling\n if (this.isSidebarCollapsed) {\n // Find the first link that is NOT inside subitems\n const link = this.el.querySelector(\n '.nv-sidebarnavitem-content a, :scope > a',\n ) as HTMLAnchorElement;\n if (link?.href) {\n // Check if click was directly on the link - if so, let it handle naturally\n if (target.closest('a')) {\n return;\n }\n // Trigger navigation by clicking the link programmatically\n link.click();\n }\n return;\n }\n\n // Only handle toggle for collapsible items when sidebar is expanded\n if (this.collapsible) {\n event.preventDefault();\n event.stopPropagation();\n this.open = !this.open;\n }\n // For non-collapsible items in expanded mode, let the link handle the navigation\n // Don't prevent default or stop propagation - allow the link to work normally\n };\n\n private subitemsRef?: HTMLDivElement;\n private isAnimating: boolean = false;\n private hasInitializedHeight: boolean = false;\n /** Tracks the last open state that was animated to, to prevent redundant animations */\n private lastAnimatedOpenState: boolean | null = null;\n\n private updateSubitemsHeight = (force: boolean = false) => {\n if (!this.subitemsRef) return;\n\n // Skip animation if we're already in the target state (prevents animation on active change)\n // Only animate if:\n // 1. forced (explicit toggle by user via @Watch)\n // 2. OR this is the first animation (lastAnimatedOpenState is null)\n // 3. OR the open state has actually changed since last animation\n if (\n !force &&\n this.lastAnimatedOpenState !== null &&\n this.lastAnimatedOpenState === this.open\n ) {\n return;\n }\n\n // Don't re-animate if already animating and not forced\n if (this.isAnimating && !force) {\n return;\n }\n\n this.isAnimating = true;\n this.lastAnimatedOpenState = this.open;\n\n if (this.open) {\n // Calculate real height and animate to it\n this.subitemsRef.style.transition = 'none';\n this.subitemsRef.style.maxHeight = '0px';\n void this.subitemsRef.offsetHeight; // Force reflow\n requestAnimationFrame(() => {\n if (this.subitemsRef) {\n this.subitemsRef.style.transition =\n 'max-height 0.3s ease, opacity 0.2s ease';\n this.subitemsRef.style.maxHeight =\n this.subitemsRef.scrollHeight + 'px';\n // Reset animation flag after animation completes\n setTimeout(() => {\n this.isAnimating = false;\n }, 300); // Match animation duration\n }\n });\n } else {\n // Animate to 0\n this.subitemsRef.style.transition = 'none';\n this.subitemsRef.style.maxHeight = this.subitemsRef.scrollHeight + 'px';\n void this.subitemsRef.offsetHeight; // Force reflow\n requestAnimationFrame(() => {\n if (this.subitemsRef) {\n this.subitemsRef.style.transition =\n 'max-height 0.3s ease, opacity 0.2s ease';\n this.subitemsRef.style.maxHeight = '0px';\n // Reset animation flag after animation completes\n setTimeout(() => {\n this.isAnimating = false;\n }, 300); // Match animation duration\n }\n });\n }\n };\n private checkSidebarCollapsed = () => {\n const sidebar = this.el.closest('nv-sidebar');\n const wasCollapsed = this.isSidebarCollapsed;\n this.isSidebarCollapsed = sidebar?.hasAttribute('collapsed') ?? false;\n\n // When sidebar collapse state changes, update active state based on subitems\n if (wasCollapsed !== this.isSidebarCollapsed) {\n this.updateActiveFromSubitems();\n }\n };\n\n /**\n * Checks if any sub-item is active and updates parent active state.\n * - When sidebar is collapsed: if a sub-item is active, parent should be active\n * - When sidebar is expanded: if a sub-item is active AND parent is not open, parent should be active\n * (because sub-items are hidden, we need to indicate the parent contains an active child)\n */\n private updateActiveFromSubitems = () => {\n if (!this.hasSubitems) return;\n\n // Find all sub-items\n const subItems = Array.from(\n this.el.querySelectorAll('nv-sidebarnavsubitem'),\n ) as HTMLNvSidebarnavsubitemElement[];\n\n // Check if any sub-item is active\n const hasActiveSubitem = subItems.some(subItem => subItem.active);\n\n if (this.isSidebarCollapsed) {\n // When sidebar is collapsed AND a sub-item is active, make parent active\n if (hasActiveSubitem) {\n this.active = true;\n this.wasActiveFromSubitem = true;\n } else {\n // When collapsed and no sub-item is active, remove active state only if we set it\n if (this.wasActiveFromSubitem) {\n this.active = false;\n this.wasActiveFromSubitem = false;\n }\n }\n } else {\n // When sidebar is expanded\n if (hasActiveSubitem && !this.open) {\n // If a sub-item is active AND parent is not open (sub-items hidden),\n // make parent active to indicate it contains an active child\n this.active = true;\n this.wasActiveFromSubitem = true;\n } else if (hasActiveSubitem && this.open) {\n // If a sub-item is active BUT parent is open (sub-items visible),\n // remove active state from parent (only sub-item should be active)\n if (this.wasActiveFromSubitem) {\n this.active = false;\n this.wasActiveFromSubitem = false;\n }\n } else {\n // No active sub-item, remove active state if we set it\n if (this.wasActiveFromSubitem) {\n this.active = false;\n this.wasActiveFromSubitem = false;\n }\n }\n // Note: activePath logic in nv-sidebar can also manage parent active state\n // (when parent href matches activePath exactly)\n }\n };\n\n //#endregion METHODS\n /****************************************************************************/\n //#region LIFECYCLE\n componentWillLoad() {\n // Check if there are sub-items in any slot\n const subItems = Array.from(this.el.children).filter(\n child => child.tagName.toLowerCase() === 'nv-sidebarnavsubitem',\n );\n this.hasSubitems = subItems.length > 0;\n\n // Move sub-items to the subitems slot\n if (this.hasSubitems) {\n subItems.forEach(item => {\n item.setAttribute('slot', 'subitems');\n });\n }\n\n // Check sidebar collapsed state\n this.checkSidebarCollapsed();\n\n // Watch for sidebar state changes\n const sidebar = this.el.closest('nv-sidebar');\n if (sidebar) {\n this.mutationObserver = new MutationObserver(() => {\n this.checkSidebarCollapsed();\n });\n this.mutationObserver.observe(sidebar, {\n attributes: true,\n attributeFilter: ['collapsed'],\n });\n }\n\n // Watch for sub-items active state changes\n if (this.hasSubitems) {\n // Observe the subitems container for changes (including new sub-items being added)\n // Using subtree: true to catch all attribute changes in descendants\n const subitemsContainer = this.el.querySelector(\n '.nv-sidebarnavitem-subitems',\n );\n if (subitemsContainer) {\n this.subitemsMutationObserver = new MutationObserver(() => {\n this.updateActiveFromSubitems();\n });\n\n // Observe the container for child list changes and attribute changes in descendants\n this.subitemsMutationObserver.observe(subitemsContainer, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['active'],\n });\n } else {\n // If container doesn't exist yet (not collapsible or not rendered), observe the element itself\n // This handles cases where sub-items are direct children\n this.subitemsMutationObserver = new MutationObserver(() => {\n this.updateActiveFromSubitems();\n });\n\n this.subitemsMutationObserver.observe(this.el, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['active'],\n });\n }\n }\n\n // Initial check for active subitems\n this.updateActiveFromSubitems();\n }\n\n disconnectedCallback() {\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n if (this.subitemsMutationObserver) {\n this.subitemsMutationObserver.disconnect();\n }\n }\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region WATCHERS\n @Watch('open')\n onOpenChanged(newValue: boolean, oldValue: boolean) {\n // Only animate if the value actually changed (prevents false triggers from React re-renders)\n if (newValue === oldValue) {\n return;\n }\n // Force update when open state changes (user clicked toggle)\n this.updateSubitemsHeight(true);\n // Update active state based on subitems when open state changes\n this.updateActiveFromSubitems();\n }\n //#endregion WATCHERS\n /****************************************************************************/\n //#region RENDER\n render() {\n const showNotificationBullet =\n this.notificationCount !== undefined && this.notificationCount > 0;\n const notificationSize = this.isSidebarCollapsed ? 'reduced' : 'default';\n\n return (\n <Host role=\"listitem\">\n <div\n class=\"nv-sidebarnavitem-trigger\"\n onClick={this.handleToggle}\n aria-expanded={this.collapsible ? String(this.open) : undefined}\n aria-current={this.active && !this.collapsible ? 'page' : undefined}\n >\n {this.icon && (\n <div class=\"nv-sidebarnavitem-icon\">\n <nv-icon name={this.icon} size=\"md\"></nv-icon>\n {showNotificationBullet && this.isSidebarCollapsed && (\n <nv-notification-bullet\n count={this.notificationCount}\n size={notificationSize}\n contrastingBorder\n ></nv-notification-bullet>\n )}\n </div>\n )}\n <div class=\"nv-sidebarnavitem-content\">\n <slot></slot>\n </div>\n <div class=\"nv-sidebarnavitem-trailing\">\n <slot name=\"trailing\"></slot>\n {showNotificationBullet && !this.isSidebarCollapsed && (\n <nv-notification-bullet\n count={this.notificationCount}\n size={notificationSize}\n ></nv-notification-bullet>\n )}\n {this.collapsible && (\n <nv-icon\n name=\"chevron-down\"\n size=\"sm\"\n class=\"nv-sidebarnavitem-chevron\"\n ></nv-icon>\n )}\n </div>\n </div>\n {this.collapsible && this.hasSubitems && (\n <div\n class=\"nv-sidebarnavitem-subitems\"\n ref={el => {\n // Only update ref and initialize if element changed or not yet initialized\n if (el !== this.subitemsRef) {\n this.subitemsRef = el;\n if (el && !this.hasInitializedHeight) {\n // Initialize height only on first mount, not on re-renders\n this.hasInitializedHeight = true;\n requestAnimationFrame(() => {\n // Only animate if item is open, otherwise it will animate when opened\n if (this.open) {\n this.updateSubitemsHeight();\n }\n });\n }\n }\n }}\n >\n <slot name=\"subitems\"></slot>\n </div>\n )}\n </Host>\n );\n }\n //#endregion RENDER\n}\n"]}
1
+ {"version":3,"file":"nv-sidebarnavitem.js","sourceRoot":"","sources":["../../../../src/components/nv-sidebarnavitem/nv-sidebarnavitem.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, Prop, State, Element, Watch, h } from '@stencil/core';\nimport { IconName } from '../nv-icon/nv-icons';\n\n/**\n * A navigation item in the sidebar. Can be a simple link or a collapsible parent with sub-items.\n * @slot default - The link or content of the item (usually an <a> tag).\n * @slot subitems - Sub-navigation items (nv-sidebarnavsubitem elements). Automatically assigned.\n * @slot trailing - Optional content displayed at the end of the item (e.g., badges, icons, chevron).\n */\n@Component({\n tag: 'nv-sidebarnavitem',\n styleUrl: 'styles/nv-sidebarnavitem.scss',\n shadow: false,\n})\nexport class NvSidebarnavitem {\n @Element() el: HTMLNvSidebarnavitemElement;\n /****************************************************************************/\n //#region PROPERTIES\n /**\n * Optional icon to display before the label.\n */\n @Prop({ reflect: true })\n readonly icon?: IconName;\n\n /**\n * Whether this item represents the active/current page.\n * Can be set automatically when a sub-item becomes active.\n */\n @Prop({ reflect: true, mutable: true })\n active: boolean = false;\n\n /**\n * Whether this item can be collapsed/expanded (has sub-items).\n */\n @Prop({ reflect: true })\n readonly collapsible: boolean = false;\n\n /**\n * Whether the collapsible item is currently open (showing sub-items).\n */\n @Prop({ reflect: true, mutable: true })\n open: boolean = false;\n\n /**\n * Number of notifications to display. When provided, a notification bullet will be automatically rendered.\n * The bullet will be positioned in the trailing slot when sidebar is open, and on the icon when collapsed.\n */\n @Prop({ reflect: true })\n readonly notificationCount?: number;\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region STATE\n @State()\n private hasSubitems: boolean = false;\n\n @State()\n private isSidebarCollapsed: boolean = false;\n\n private mutationObserver?: MutationObserver;\n private subitemsMutationObserver?: MutationObserver;\n private wasActiveFromSubitem: boolean = false; // Track if active was set by subitem logic\n //#endregion STATE\n /****************************************************************************/\n //#region METHODS\n private handleToggle = (event: MouseEvent) => {\n // Ignore clicks that originated from subitems (they bubble up but shouldn't toggle)\n const target = event.target as HTMLElement;\n if (target.closest('nv-sidebarnavsubitem')) {\n return; // Let the subitem's link handle navigation normally\n }\n\n // In collapsed sidebar mode, navigate to the main link instead of toggling\n if (this.isSidebarCollapsed) {\n // Find the first link that is NOT inside subitems\n const link = this.el.querySelector(\n '.nv-sidebarnavitem-content a, :scope > a',\n ) as HTMLAnchorElement;\n if (link?.href) {\n // Check if click was directly on the link - if so, let it handle naturally\n if (target.closest('a')) {\n return;\n }\n // Trigger navigation by clicking the link programmatically\n link.click();\n }\n return;\n }\n\n // Only handle toggle for collapsible items when sidebar is expanded\n if (this.collapsible) {\n event.preventDefault();\n event.stopPropagation();\n this.open = !this.open;\n }\n // For non-collapsible items in expanded mode, let the link handle the navigation\n // Don't prevent default or stop propagation - allow the link to work normally\n };\n\n private subitemsRef?: HTMLDivElement;\n private isAnimating: boolean = false;\n private hasInitializedHeight: boolean = false;\n /** Tracks the last open state that was animated to, to prevent redundant animations */\n private lastAnimatedOpenState: boolean | null = null;\n\n private updateSubitemsHeight = (force: boolean = false) => {\n if (!this.subitemsRef) return;\n\n // Skip animation if we're already in the target state (prevents animation on active change)\n // Only animate if:\n // 1. forced (explicit toggle by user via @Watch)\n // 2. OR this is the first animation (lastAnimatedOpenState is null)\n // 3. OR the open state has actually changed since last animation\n if (\n !force &&\n this.lastAnimatedOpenState !== null &&\n this.lastAnimatedOpenState === this.open\n ) {\n return;\n }\n\n // Don't re-animate if already animating and not forced\n if (this.isAnimating && !force) {\n return;\n }\n\n this.isAnimating = true;\n this.lastAnimatedOpenState = this.open;\n\n if (this.open) {\n // Calculate real height and animate to it\n this.subitemsRef.style.transition = 'none';\n this.subitemsRef.style.maxHeight = '0px';\n void this.subitemsRef.offsetHeight; // Force reflow\n requestAnimationFrame(() => {\n if (this.subitemsRef) {\n this.subitemsRef.style.transition =\n 'max-height 0.3s ease, opacity 0.2s ease';\n this.subitemsRef.style.maxHeight =\n this.subitemsRef.scrollHeight + 'px';\n // Reset animation flag after animation completes\n setTimeout(() => {\n this.isAnimating = false;\n }, 300); // Match animation duration\n }\n });\n } else {\n // Animate to 0\n this.subitemsRef.style.transition = 'none';\n this.subitemsRef.style.maxHeight = this.subitemsRef.scrollHeight + 'px';\n void this.subitemsRef.offsetHeight; // Force reflow\n requestAnimationFrame(() => {\n if (this.subitemsRef) {\n this.subitemsRef.style.transition =\n 'max-height 0.3s ease, opacity 0.2s ease';\n this.subitemsRef.style.maxHeight = '0px';\n // Reset animation flag after animation completes\n setTimeout(() => {\n this.isAnimating = false;\n }, 300); // Match animation duration\n }\n });\n }\n };\n private checkSidebarCollapsed = () => {\n const sidebar = this.el.closest('nv-sidebar');\n const wasCollapsed = this.isSidebarCollapsed;\n this.isSidebarCollapsed = sidebar?.hasAttribute('collapsed') ?? false;\n\n // When sidebar collapse state changes, update active state based on subitems\n if (wasCollapsed !== this.isSidebarCollapsed) {\n this.updateActiveFromSubitems();\n }\n };\n\n /**\n * Checks if any sub-item is active and updates parent active state.\n * - When sidebar is collapsed: if a sub-item is active, parent should be active\n * - When sidebar is expanded: if a sub-item is active AND parent is not open, parent should be active\n * (because sub-items are hidden, we need to indicate the parent contains an active child)\n */\n private updateActiveFromSubitems = () => {\n if (!this.hasSubitems) return;\n\n // Find all sub-items\n const subItems = Array.from(\n this.el.querySelectorAll('nv-sidebarnavsubitem'),\n ) as HTMLNvSidebarnavsubitemElement[];\n\n // Check if any sub-item is active\n const hasActiveSubitem = subItems.some(subItem => subItem.active);\n\n if (this.isSidebarCollapsed) {\n // When sidebar is collapsed AND a sub-item is active, make parent active\n if (hasActiveSubitem) {\n this.active = true;\n this.wasActiveFromSubitem = true;\n } else {\n // When collapsed and no sub-item is active, remove active state only if we set it\n if (this.wasActiveFromSubitem) {\n this.active = false;\n this.wasActiveFromSubitem = false;\n }\n }\n } else {\n // When sidebar is expanded\n if (hasActiveSubitem && !this.open) {\n // If a sub-item is active AND parent is not open (sub-items hidden),\n // make parent active to indicate it contains an active child\n this.active = true;\n this.wasActiveFromSubitem = true;\n } else if (hasActiveSubitem && this.open) {\n // If a sub-item is active BUT parent is open (sub-items visible),\n // remove active state from parent (only sub-item should be active)\n if (this.wasActiveFromSubitem) {\n this.active = false;\n this.wasActiveFromSubitem = false;\n }\n } else {\n // No active sub-item, remove active state if we set it\n if (this.wasActiveFromSubitem) {\n this.active = false;\n this.wasActiveFromSubitem = false;\n }\n }\n // Note: activePath logic in nv-sidebar can also manage parent active state\n // (when parent href matches activePath exactly)\n }\n };\n\n //#endregion METHODS\n /****************************************************************************/\n //#region LIFECYCLE\n componentWillLoad() {\n // Check if there are sub-items in any slot\n const subItems = Array.from(this.el.children).filter(\n child => child.tagName.toLowerCase() === 'nv-sidebarnavsubitem',\n );\n this.hasSubitems = subItems.length > 0;\n\n // Move sub-items to the subitems slot\n if (this.hasSubitems) {\n subItems.forEach(item => {\n item.setAttribute('slot', 'subitems');\n });\n }\n\n // Check sidebar collapsed state\n this.checkSidebarCollapsed();\n\n // Watch for sidebar state changes\n const sidebar = this.el.closest('nv-sidebar');\n if (sidebar) {\n this.mutationObserver = new MutationObserver(() => {\n this.checkSidebarCollapsed();\n });\n this.mutationObserver.observe(sidebar, {\n attributes: true,\n attributeFilter: ['collapsed'],\n });\n }\n\n // Watch for sub-items active state changes\n if (this.hasSubitems) {\n // Observe the subitems container for changes (including new sub-items being added)\n // Using subtree: true to catch all attribute changes in descendants\n const subitemsContainer = this.el.querySelector(\n '.nv-sidebarnavitem-subitems',\n );\n if (subitemsContainer) {\n this.subitemsMutationObserver = new MutationObserver(() => {\n this.updateActiveFromSubitems();\n });\n\n // Observe the container for child list changes and attribute changes in descendants\n this.subitemsMutationObserver.observe(subitemsContainer, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['active'],\n });\n } else {\n // If container doesn't exist yet (not collapsible or not rendered), observe the element itself\n // This handles cases where sub-items are direct children\n this.subitemsMutationObserver = new MutationObserver(() => {\n this.updateActiveFromSubitems();\n });\n\n this.subitemsMutationObserver.observe(this.el, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['active'],\n });\n }\n }\n\n // Initial check for active subitems\n this.updateActiveFromSubitems();\n }\n\n disconnectedCallback() {\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n if (this.subitemsMutationObserver) {\n this.subitemsMutationObserver.disconnect();\n }\n }\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region WATCHERS\n @Watch('open')\n onOpenChanged(newValue: boolean, oldValue: boolean) {\n // Only animate if the value actually changed (prevents false triggers from React re-renders)\n if (newValue === oldValue) {\n return;\n }\n // Force update when open state changes (user clicked toggle)\n this.updateSubitemsHeight(true);\n // Update active state based on subitems when open state changes\n this.updateActiveFromSubitems();\n }\n //#endregion WATCHERS\n /****************************************************************************/\n //#region RENDER\n render() {\n const showNotificationBullet =\n this.notificationCount !== undefined && this.notificationCount > 0;\n const notificationSize = this.isSidebarCollapsed ? 'reduced' : 'default';\n\n return (\n <Host role=\"listitem\">\n <div\n class=\"nv-sidebarnavitem-trigger\"\n onClick={this.handleToggle}\n aria-expanded={this.collapsible ? String(this.open) : undefined}\n aria-current={this.active && !this.collapsible ? 'page' : undefined}\n >\n {this.icon && (\n <div class=\"nv-sidebarnavitem-icon\">\n <nv-icon name={this.icon} size=\"md\"></nv-icon>\n {showNotificationBullet && this.isSidebarCollapsed && (\n <nv-notification-bullet\n count={this.notificationCount}\n size={notificationSize}\n contrastingBorder\n ></nv-notification-bullet>\n )}\n </div>\n )}\n <div class=\"nv-sidebarnavitem-content\">\n <slot></slot>\n </div>\n <div class=\"nv-sidebarnavitem-trailing\">\n <slot name=\"trailing\"></slot>\n {showNotificationBullet && !this.isSidebarCollapsed && (\n <nv-notification-bullet\n count={this.notificationCount}\n size={notificationSize}\n ></nv-notification-bullet>\n )}\n {this.collapsible && (\n <nv-icon\n name=\"chevron-down\"\n size=\"sm\"\n class=\"nv-sidebarnavitem-chevron\"\n ></nv-icon>\n )}\n </div>\n </div>\n {this.collapsible && this.hasSubitems && (\n <div\n class=\"nv-sidebarnavitem-subitems\"\n ref={el => {\n // Only update ref and initialize if element changed or not yet initialized\n if (el !== this.subitemsRef) {\n this.subitemsRef = el;\n if (el && !this.hasInitializedHeight) {\n // Initialize height only on first mount, not on re-renders\n this.hasInitializedHeight = true;\n requestAnimationFrame(() => {\n // Only animate if item is open, otherwise it will animate when opened\n if (this.open) {\n this.updateSubitemsHeight();\n }\n });\n }\n }\n }}\n >\n <slot name=\"subitems\"></slot>\n </div>\n )}\n </Host>\n );\n }\n //#endregion RENDER\n}\n"]}
@@ -23,7 +23,7 @@ export class NvSidebarnavsubitem {
23
23
  /****************************************************************************/
24
24
  //#region RENDER
25
25
  render() {
26
- return (h(Host, { key: '8ae8c5e2038145bd458a35d237495a06fde97294', role: "listitem", "aria-current": this.active ? 'page' : undefined }, h("div", { key: '559a99d72973f7af43091c5c920e77d8cad3944c', class: "nv-sidebarnavsubitem-indicator" }), h("div", { key: '204c7ad681d51310f43b618ef14a12d0ccc93ddc', class: "nv-sidebarnavsubitem-content" }, h("slot", { key: 'f4717aee216fbeac4dbfe0d98b34fe7e83476701' })), h("div", { key: 'b5db84c75ae4e51d8a048000a49697eaf4b20f1d', class: "nv-sidebarnavsubitem-trailing" }, h("slot", { key: 'b6d0afcd6b4ace60b32f531f414b70aba513a274', name: "trailing" }))));
26
+ return (h(Host, { key: '7e9b3aaf42bc7ca19cc3ceeed4afc74058ea48f2', role: "listitem", "aria-current": this.active ? 'page' : undefined }, h("div", { key: 'd865d9cff0e9632dd0ca5f97334e09ae3ad6ddf8', class: "nv-sidebarnavsubitem-indicator" }), h("div", { key: '28bddb32eea17dbc3b33f2e1c3ef6744e6646cbe', class: "nv-sidebarnavsubitem-content" }, h("slot", { key: '0f58fbe30b054e42ac3f431cb8cafe0374994856' })), h("div", { key: '3b1b74c67b1e338e158a67dab828941f40f3a147', class: "nv-sidebarnavsubitem-trailing" }, h("slot", { key: '98ad3fde4a5295f6835ba6b15ac832fc0426b75b', name: "trailing" }))));
27
27
  }
28
28
  static get is() { return "nv-sidebarnavsubitem"; }
29
29
  static get originalStyleUrls() {