@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
@@ -0,0 +1,507 @@
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-C63Xpg9a.js';
2
+ import { t as tabbable } from './p-D3eWMME9.js';
3
+ import { a as addEventListeners, r as removeEventListeners } from './p-B6GgGra-.js';
4
+ import { u as useFade } from './p-9xYwU7ku.js';
5
+ import './p-Dz1GUhVy.js';
6
+ import { u as useSlide } from './p-D2otK4Ce.js';
7
+ import { p as parallel } from './p-CgHCo_Ho.js';
8
+ import { c as clsx } from './p-ChV9xqsO.js';
9
+ import { b as ButtonType } from './p-BReL3Lsa.js';
10
+ import { d as defineCustomElement$6 } from './p-B45HbBWe.js';
11
+ import { d as defineCustomElement$5 } from './p-u-maNLLs.js';
12
+ import { d as defineCustomElement$4 } from './p-W6vOfMC9.js';
13
+ import { d as defineCustomElement$3 } from './p-nfYynlVq.js';
14
+ import { d as defineCustomElement$2 } from './p-COnt5ux_.js';
15
+ import { v as v4 } from './p-BdYh22OP.js';
16
+
17
+ const nvDrawerCss = "nv-drawer dialog{width:100vw;height:100svh;margin:0;max-height:unset;max-width:unset;padding:0;background:color-mix(in srgb, var(--components-overlay-background) 70%, transparent);backdrop-filter:blur(4px);border:none}nv-drawer dialog[data-state=closed]{pointer-events:none}nv-drawer dialog[data-state=open]{pointer-events:auto}nv-drawer dialog.side-right .backdrop{justify-content:flex-end}nv-drawer dialog.side-right .content{box-shadow:-4px 0 24px rgba(0, 0, 0, 0.15)}nv-drawer dialog.side-left .backdrop{justify-content:flex-start}nv-drawer dialog.side-left .content{box-shadow:4px 0 24px rgba(0, 0, 0, 0.15)}nv-drawer .backdrop{display:flex;height:100%;width:100%;padding:0}nv-drawer .backdrop .content{background:var(--color-level-00-background);width:var(--drawer-width, min(90vw, 400px));height:100%;display:flex;flex-direction:column;align-items:flex-start;position:relative}nv-drawer .backdrop .content[data-side=left]{border-top-right-radius:var(--drawer-radius-top-right, 0);border-bottom-right-radius:var(--drawer-radius-bottom-right, 0)}nv-drawer .backdrop .content[data-side=right]{border-top-left-radius:var(--drawer-radius-top-left, 0);border-bottom-left-radius:var(--drawer-radius-bottom-left, 0)}nv-drawer .backdrop .content.size-sm{width:clamp(var(--drawer-size-sm-min-width), var(--drawer-size-sm-width), var(--drawer-size-sm-max-width))}nv-drawer .backdrop .content.size-md{width:clamp(var(--drawer-size-md-min-width), var(--drawer-size-md-width), var(--drawer-size-md-max-width))}nv-drawer .backdrop .content.size-lg{width:clamp(var(--drawer-size-lg-min-width), var(--drawer-size-lg-width), var(--drawer-size-lg-max-width))}nv-drawer .backdrop .content.size-full{width:var(--drawer-size-full-width)}nv-drawer .backdrop .content nv-button.close-button{position:absolute;top:var(--drawer-dismissible-position-top, var(--dialog-dismissible-position-top));right:var(--drawer-dismissible-position-right, var(--dialog-dismissible-position-right));z-index:1;display:flex;padding:var(--button-sm-icon-button-padding);justify-content:flex-end;align-items:flex-start;gap:var(--drawer-gap-y, 10px)}nv-drawer .backdrop .content .content-body::-webkit-scrollbar{width:6px;height:6px}nv-drawer .backdrop .content .content-body::-webkit-scrollbar-track{background-color:var(--color-level-10-background);border-radius:9999px}nv-drawer .backdrop .content .content-body::-webkit-scrollbar-thumb{background-color:var(--color-gray-200);border-radius:9999px}nv-drawer .backdrop .content .content-body{box-sizing:border-box;padding:var(--drawer-padding-y, var(--dialog-body-padding-y)) var(--drawer-padding-x, var(--dialog-body-padding-x));scrollbar-gutter:stable both-edges;flex:1;overflow-y:auto;width:100%;border-bottom:1px solid var(--color-content-low-border);font-family:var(--font-family-default), var(--font-family-fallback), sans-serif;font-size:var(--font-size-md);font-style:normal;font-weight:var(--font-weight-low-emphasis);line-height:var(--line-height-base);color:var(--color-content-medium-text)}nv-drawer .backdrop .content slot[name=footer]::slotted(*),nv-drawer .backdrop .content nv-drawerfooter{padding-top:var(--spacing-4)}";
18
+
19
+ const NvDrawer$1 = /*@__PURE__*/ proxyCustomElement(class NvDrawer extends H {
20
+ constructor(registerHost) {
21
+ super();
22
+ if (registerHost !== false) {
23
+ this.__registerHost();
24
+ }
25
+ this.openChanged = createEvent(this, "openChanged", 3);
26
+ this.eventsAttached = false;
27
+ this.swipeStartX = null;
28
+ this.swipeStartY = null;
29
+ this.swipeStartTime = null;
30
+ this.isSwiping = false;
31
+ this.SWIPE_THRESHOLD = 50; // Minimum distance for a swipe (px)
32
+ this.SWIPE_EDGE_ZONE = 20; // Edge detection zone (px)
33
+ this.SWIPE_VELOCITY_THRESHOLD = 0.3; // Minimum velocity (px/ms)
34
+ this.triggerClickEvents = [
35
+ ['click', this.show],
36
+ [
37
+ 'keydown',
38
+ (e) => {
39
+ if (e.key === 'Enter' || e.key === ' ') {
40
+ e.preventDefault();
41
+ this.show();
42
+ }
43
+ },
44
+ ],
45
+ ];
46
+ /****************************************************************************/
47
+ //#region PROPERTIES
48
+ /**
49
+ * Use this prop to toggle the visibility of the drawer. Set to true to show
50
+ * the drawer and false to hide it.
51
+ */
52
+ this.open = false;
53
+ /**
54
+ * If true, the drawer cannot be closed by the user.
55
+ */
56
+ this.undismissable = false;
57
+ /**
58
+ * If true, the drawer will be closed when the backdrop is clicked.
59
+ */
60
+ this.clickOutside = false;
61
+ /**
62
+ * If true, the drawer visibility is managed manually through methods or the
63
+ * open prop.
64
+ */
65
+ this.controlled = false;
66
+ /**
67
+ * Side from which the drawer appears.
68
+ */
69
+ this.side = 'right';
70
+ /**
71
+ * Size of the drawer. Defaults to 'md'.
72
+ * - 'sm': Small drawer (~320px)
73
+ * - 'md': Medium drawer (~400px)
74
+ * - 'lg': Large drawer (~600px)
75
+ * - 'full': Full width drawer (100vw on mobile, ~800px on desktop)
76
+ */
77
+ this.size = 'md';
78
+ /**
79
+ * Controls whether the drawer should automatically focus the first focusable
80
+ * element when opened. When disabled, prevents unwanted tooltip triggers on
81
+ * drawer open.
82
+ */
83
+ this.autofocus = false;
84
+ /**
85
+ * Enables swipe gesture to open/close the drawer on touch devices.
86
+ * - Swipe from the edge (left for left drawer, right for right drawer) to open
87
+ * - Swipe towards the edge from inside the drawer to close
88
+ */
89
+ this.swipeToOpen = false;
90
+ /**
91
+ * Checks for and sets up form ID if a form is present
92
+ */
93
+ this.checkForForm = () => {
94
+ if (!this.form) {
95
+ const formElement = this.el.querySelector('form');
96
+ if (formElement) {
97
+ this.form = this.ensureFormId(formElement);
98
+ }
99
+ }
100
+ };
101
+ /**
102
+ * Handles the native drawer close event.
103
+ */
104
+ this.handleDrawerClose = () => {
105
+ if (this.open) {
106
+ this.close();
107
+ }
108
+ };
109
+ /**
110
+ * Handles the click event to close the drawer when clickOutside is true.
111
+ * @param {MouseEvent} event - The click event.
112
+ */
113
+ this.handleDrawerClick = (event) => {
114
+ if (!this.clickOutside || this.undismissable)
115
+ return;
116
+ if (this.checkForOpenPopovers())
117
+ return;
118
+ if (event.target === this.backdropElement) {
119
+ this.close();
120
+ event.preventDefault();
121
+ event.stopPropagation();
122
+ }
123
+ };
124
+ this.checkForOpenPopovers = () => {
125
+ let hasOpenPopover = false;
126
+ this.el.querySelectorAll('nv-popover').forEach(popover => {
127
+ if (popover.hasAttribute('open')) {
128
+ hasOpenPopover = true;
129
+ }
130
+ });
131
+ return hasOpenPopover;
132
+ };
133
+ }
134
+ //#endregion PROPERTIES
135
+ /****************************************************************************/
136
+ //#region METHODS
137
+ /**
138
+ * Call this method to show the drawer, making it visible on the screen.
139
+ */
140
+ async show() {
141
+ this.open = true;
142
+ this.preventScroll();
143
+ /** It is recommended to use the .show() or .showModal() method to render
144
+ * drawers, rather than the open attribute. If a <dialog> is opened using
145
+ * the open attribute, it is non-modal. */
146
+ const { setFadeOut } = useFade(this.dialogElement);
147
+ setFadeOut();
148
+ this.dialogElement.showModal();
149
+ // Wait for dialog to be visible
150
+ await new Promise(resolve => requestAnimationFrame(resolve));
151
+ // Set initial position off-screen and animate
152
+ const slideDirection = this.side === 'right' ? 100 : -100;
153
+ const { setSlideX, slideX } = useSlide(this.contentElement, {
154
+ duration: 300,
155
+ });
156
+ const { fadeIn } = useFade(this.dialogElement, {
157
+ duration: 300,
158
+ });
159
+ // Clear any previous transform first
160
+ if (this.contentElement) {
161
+ this.contentElement.style.transform = '';
162
+ }
163
+ // Set initial position off-screen
164
+ setSlideX(slideDirection);
165
+ // Wait another frame to ensure position is set
166
+ await new Promise(resolve => requestAnimationFrame(resolve));
167
+ // Animate both slide and fade in parallel
168
+ const slideIn = slideX({ from: slideDirection, to: 0 });
169
+ await parallel(fadeIn, slideIn).start();
170
+ }
171
+ /**
172
+ * Call this method to hide the drawer, making it disappear from view.
173
+ */
174
+ async close() {
175
+ this.open = false;
176
+ this.allowScroll();
177
+ const slideDirection = this.side === 'right' ? 100 : -100;
178
+ const { slideX } = useSlide(this.contentElement, {
179
+ duration: 300,
180
+ });
181
+ const { fadeOut } = useFade(this.dialogElement, {
182
+ duration: 300,
183
+ });
184
+ // Animate both slide and fade out in parallel
185
+ const slideOut = slideX({ from: 0, to: slideDirection });
186
+ await parallel(slideOut, fadeOut).start();
187
+ // Reset transform after animation completes
188
+ if (this.contentElement) {
189
+ this.contentElement.style.transform = '';
190
+ }
191
+ this.dialogElement.close();
192
+ }
193
+ /**
194
+ * Sets the autofocus on the first focusable element in the drawer.
195
+ */
196
+ setAutofocus() {
197
+ const focusableElements = tabbable(this.dialogElement, {
198
+ displayCheck: 'none',
199
+ });
200
+ if (focusableElements.length > 0) {
201
+ // Convert to array and find element with smallest top and left position
202
+ let topLeftElement = focusableElements[0];
203
+ let topLeftRect = topLeftElement.getBoundingClientRect();
204
+ focusableElements.forEach(element => {
205
+ const rect = element.getBoundingClientRect();
206
+ if (rect.top < topLeftRect.top || rect.left < topLeftRect.left) {
207
+ topLeftElement = element;
208
+ topLeftRect = rect;
209
+ }
210
+ });
211
+ // Set autofocus attribute on the found element
212
+ topLeftElement.setAttribute('autofocus', 'true');
213
+ }
214
+ }
215
+ /**
216
+ * Attaches event listeners to the drawer.
217
+ */
218
+ attachEventListeners() {
219
+ if (this.triggerElement && !this.eventsAttached && !this.controlled) {
220
+ addEventListeners(this.triggerClickEvents, this.triggerElement, this);
221
+ this.eventsAttached = true;
222
+ }
223
+ }
224
+ /**
225
+ * Prevents the body from scrolling when the drawer is open.
226
+ * Compensates for scrollbar width to prevent layout shift.
227
+ */
228
+ preventScroll() {
229
+ // Calculate scrollbar width
230
+ const scrollBarWidth = window.innerWidth - document.documentElement.clientWidth;
231
+ // Apply overflow hidden and padding compensation
232
+ document.documentElement.style.overflow = 'hidden';
233
+ document.documentElement.style.paddingRight = `${scrollBarWidth}px`;
234
+ }
235
+ /**
236
+ * Allows the body to scroll when the drawer is closed.
237
+ * Removes the applied overflow and padding styles.
238
+ */
239
+ allowScroll() {
240
+ // Remove the applied styles
241
+ document.documentElement.style.removeProperty('overflow');
242
+ document.documentElement.style.removeProperty('padding-right');
243
+ }
244
+ ensureFormId(formElement) {
245
+ if (!formElement.id) {
246
+ formElement.id = `drawer-form-${v4()}`;
247
+ }
248
+ return formElement.id;
249
+ }
250
+ //#endregion EVENTS
251
+ /****************************************************************************/
252
+ //#region WATCHERS
253
+ async handleDrawerOpenChange(isOpen) {
254
+ if (isOpen) {
255
+ this.show();
256
+ this.openChanged.emit(isOpen);
257
+ }
258
+ else {
259
+ this.close();
260
+ this.openChanged.emit(isOpen);
261
+ }
262
+ }
263
+ //#endregion WATCHERS
264
+ /****************************************************************************/
265
+ //#region LISTENERS
266
+ /**
267
+ * Handles the keydown event to optionally prevent the native drawer from closing when the escape key is pressed.
268
+ * @param {KeyboardEvent} event - The keydown event.
269
+ */
270
+ handleKeyDown(event) {
271
+ if (event.key !== 'Escape')
272
+ return;
273
+ if (!this.open)
274
+ return;
275
+ event.preventDefault();
276
+ event.stopPropagation();
277
+ const hasOpenPopover = this.checkForOpenPopovers();
278
+ if (!this.undismissable && !hasOpenPopover) {
279
+ event.preventDefault();
280
+ event.stopPropagation();
281
+ this.close();
282
+ }
283
+ }
284
+ /**
285
+ * Handles pointer down events for swipe detection.
286
+ * @param {PointerEvent} event - The pointer down event.
287
+ */
288
+ handlePointerDown(event) {
289
+ if (!this.swipeToOpen || this.controlled)
290
+ return;
291
+ const x = event.clientX;
292
+ const y = event.clientY;
293
+ const screenWidth = window.innerWidth;
294
+ // Check if swipe starts from edge (for opening drawer)
295
+ if (!this.open) {
296
+ const isLeftEdge = this.side === 'left' && x <= this.SWIPE_EDGE_ZONE;
297
+ const isRightEdge = this.side === 'right' && x >= screenWidth - this.SWIPE_EDGE_ZONE;
298
+ if (isLeftEdge || isRightEdge) {
299
+ this.swipeStartX = x;
300
+ this.swipeStartY = y;
301
+ this.swipeStartTime = Date.now();
302
+ this.isSwiping = true;
303
+ event.preventDefault();
304
+ }
305
+ }
306
+ else {
307
+ // Check if swipe starts from inside the drawer (for closing)
308
+ if (this.contentElement && this.dialogElement.hasAttribute('open')) {
309
+ const drawerRect = this.contentElement.getBoundingClientRect();
310
+ if (x >= drawerRect.left &&
311
+ x <= drawerRect.right &&
312
+ y >= drawerRect.top &&
313
+ y <= drawerRect.bottom) {
314
+ this.swipeStartX = x;
315
+ this.swipeStartY = y;
316
+ this.swipeStartTime = Date.now();
317
+ this.isSwiping = true;
318
+ }
319
+ }
320
+ }
321
+ }
322
+ /**
323
+ * Handles pointer move events during swipe.
324
+ * @param {PointerEvent} event - The pointer move event.
325
+ */
326
+ handlePointerMove(event) {
327
+ if (!this.isSwiping || !this.swipeStartX || !this.swipeStartY)
328
+ return;
329
+ // Prevent scrolling during swipe
330
+ event.preventDefault();
331
+ }
332
+ /**
333
+ * Handles pointer up events to complete swipe gesture.
334
+ * @param {PointerEvent} event - The pointer up event.
335
+ */
336
+ handlePointerUp(event) {
337
+ if (!this.isSwiping ||
338
+ !this.swipeStartX ||
339
+ !this.swipeStartY ||
340
+ !this.swipeStartTime) {
341
+ this.resetSwipe();
342
+ return;
343
+ }
344
+ const x = event.clientX;
345
+ const y = event.clientY;
346
+ const deltaX = x - this.swipeStartX;
347
+ const deltaY = y - this.swipeStartY;
348
+ const deltaTime = Date.now() - this.swipeStartTime;
349
+ const distance = Math.abs(deltaX);
350
+ const velocity = distance / deltaTime;
351
+ // Only consider horizontal swipes (vertical movement should be less than horizontal)
352
+ if (Math.abs(deltaY) > Math.abs(deltaX)) {
353
+ this.resetSwipe();
354
+ return;
355
+ }
356
+ // Check if swipe meets threshold requirements
357
+ if (distance >= this.SWIPE_THRESHOLD ||
358
+ velocity >= this.SWIPE_VELOCITY_THRESHOLD) {
359
+ if (!this.open) {
360
+ // Opening swipe: from left edge going right, or from right edge going left
361
+ const isOpeningSwipe = (this.side === 'left' && deltaX > 0) ||
362
+ (this.side === 'right' && deltaX < 0);
363
+ if (isOpeningSwipe && !this.undismissable) {
364
+ this.show();
365
+ }
366
+ }
367
+ else {
368
+ // Closing swipe: towards the edge
369
+ const isClosingSwipe = (this.side === 'left' && deltaX < 0) ||
370
+ (this.side === 'right' && deltaX > 0);
371
+ if (isClosingSwipe && !this.undismissable) {
372
+ this.close();
373
+ }
374
+ }
375
+ }
376
+ this.resetSwipe();
377
+ }
378
+ /**
379
+ * Resets swipe tracking state.
380
+ */
381
+ resetSwipe() {
382
+ this.swipeStartX = null;
383
+ this.swipeStartY = null;
384
+ this.swipeStartTime = null;
385
+ this.isSwiping = false;
386
+ }
387
+ //#endregion LISTENERS
388
+ /****************************************************************************/
389
+ //#region LIFECYCLE
390
+ /**
391
+ * Lifecycle method that runs before the component loads.
392
+ * Initializes the trigger, header, and footer elements by finding them in the component's children.
393
+ * Elements are found either by their slot attribute or by their tag name (for drawer header/footer)
394
+ */
395
+ componentWillLoad() {
396
+ this.triggerElement = Array.from(this.el.children).find(child => {
397
+ return child.getAttribute('slot') === 'trigger';
398
+ });
399
+ this.headerElement = Array.from(this.el.children).find(child => {
400
+ return (child.getAttribute('slot') === 'header' ||
401
+ child.tagName.toLowerCase() === 'nv-drawerheader');
402
+ });
403
+ this.footerElement = Array.from(this.el.children).find(child => {
404
+ return (child.getAttribute('slot') === 'footer' ||
405
+ child.tagName.toLowerCase() === 'nv-drawerfooter');
406
+ });
407
+ // Initial form check
408
+ this.checkForForm();
409
+ }
410
+ componentWillUpdate() {
411
+ this.attachEventListeners();
412
+ }
413
+ componentDidLoad() {
414
+ if (this.open) {
415
+ this.show();
416
+ }
417
+ // Only set autofocus if the prop is true and no element already has autofocus
418
+ if (this.autofocus && !this.dialogElement.querySelector('[autofocus]')) {
419
+ this.setAutofocus();
420
+ }
421
+ this.attachEventListeners();
422
+ // Additional form check in case form was added after initial load
423
+ this.checkForForm();
424
+ // this.setupContentBodyListeners();
425
+ }
426
+ disconnectedCallback() {
427
+ if (this.triggerElement && !this.eventsAttached && !this.controlled) {
428
+ removeEventListeners(this.triggerClickEvents, this.triggerElement, this);
429
+ this.eventsAttached = false;
430
+ }
431
+ this.allowScroll();
432
+ }
433
+ //#endregion LIFECYCLE
434
+ /****************************************************************************/
435
+ //#region RENDER
436
+ render() {
437
+ const hasForm = this.form || this.el.querySelector('form');
438
+ const state = this.open ? 'open' : 'closed';
439
+ return (h(Host, { key: 'de12ca46afd89b287fc3f2b28e3f6ca79d328338' }, h("slot", { key: 'e7568c48a2a676d0f063831c769c1b4dfaee0925', name: "trigger" }), h("dialog", { key: '513b404bba6aa0b1d3831d17ef58e1c63fb6f757', ref: el => (this.dialogElement = el), onClose: this.handleDrawerClose, onClick: this.handleDrawerClick, role: "dialog", "aria-modal": "true", "aria-labelledby": "drawer-header", "aria-describedby": "drawer-content", class: clsx({ [`side-${this.side}`]: true }), "data-state": state }, h("div", { key: '0b9c6fec78844a1e64b33a7bbab62ee44ac0d7bd', class: "backdrop", ref: el => (this.backdropElement = el) }, h("div", { key: 'c74cb4b717f232b4622bd9391027c7b048e786e9', class: clsx('content', `size-${this.size}`), ref: el => (this.contentElement = el), "data-state": state, "data-side": this.side, style: this.width ? { width: this.width } : {} }, !this.undismissable && (h("nv-button", { key: 'f9c03557a3ef3bb1d34e2b764d70a57cfd52dea3', class: "close-button", emphasis: "lower", size: "sm", onClick: this.handleDrawerClose, "aria-label": "Close drawer" }, h("nv-icon", { key: '5c0ea22963bad0bb84eb58e9ad26ebfca6b11b94', name: "x", size: "sm" }))), this.headerElement ? (h("slot", { name: "header" })) : (h("nv-drawerheader", { id: "drawer-header" })), h("div", { key: '813c7b985c6f75faa1fffc56e198957194bda87e', class: "content-body", id: "drawer-content" }, h("slot", { key: 'e70eefb8a94ae5e7eff32d5eb0446fba5c56065a' })), this.footerElement ? (h("slot", { name: "footer" })) : (h("nv-drawerfooter", { form: this.form, primaryButtonType: hasForm ? ButtonType.Submit : ButtonType.Button, onDrawerCanceled: this.handleDrawerClose, undismissable: this.undismissable })))))));
440
+ }
441
+ get el() { return this; }
442
+ static get watchers() { return {
443
+ "open": ["handleDrawerOpenChange"]
444
+ }; }
445
+ static get style() { return nvDrawerCss; }
446
+ }, [260, "nv-drawer", {
447
+ "open": [1540],
448
+ "undismissable": [516],
449
+ "clickOutside": [516, "click-outside"],
450
+ "controlled": [516],
451
+ "side": [513],
452
+ "size": [513],
453
+ "width": [513],
454
+ "autofocus": [516],
455
+ "swipeToOpen": [516, "swipe-to-open"],
456
+ "show": [64],
457
+ "close": [64]
458
+ }, [[4, "keydown", "handleKeyDown"], [9, "pointerdown", "handlePointerDown"], [9, "pointermove", "handlePointerMove"], [9, "pointerup", "handlePointerUp"]], {
459
+ "open": ["handleDrawerOpenChange"]
460
+ }]);
461
+ function defineCustomElement$1() {
462
+ if (typeof customElements === "undefined") {
463
+ return;
464
+ }
465
+ const components = ["nv-drawer", "nv-button", "nv-drawerfooter", "nv-drawerheader", "nv-icon", "nv-loader"];
466
+ components.forEach(tagName => { switch (tagName) {
467
+ case "nv-drawer":
468
+ if (!customElements.get(tagName)) {
469
+ customElements.define(tagName, NvDrawer$1);
470
+ }
471
+ break;
472
+ case "nv-button":
473
+ if (!customElements.get(tagName)) {
474
+ defineCustomElement$6();
475
+ }
476
+ break;
477
+ case "nv-drawerfooter":
478
+ if (!customElements.get(tagName)) {
479
+ defineCustomElement$5();
480
+ }
481
+ break;
482
+ case "nv-drawerheader":
483
+ if (!customElements.get(tagName)) {
484
+ defineCustomElement$4();
485
+ }
486
+ break;
487
+ case "nv-icon":
488
+ if (!customElements.get(tagName)) {
489
+ defineCustomElement$3();
490
+ }
491
+ break;
492
+ case "nv-loader":
493
+ if (!customElements.get(tagName)) {
494
+ defineCustomElement$2();
495
+ }
496
+ break;
497
+ } });
498
+ }
499
+ defineCustomElement$1();
500
+
501
+ const NvDrawer = NvDrawer$1;
502
+ const defineCustomElement = defineCustomElement$1;
503
+
504
+ export { NvDrawer, defineCustomElement };
505
+ //# sourceMappingURL=nv-drawer.js.map
506
+
507
+ //# sourceMappingURL=nv-drawer.js.map
@@ -0,0 +1 @@
1
+ {"file":"nv-drawer.js","mappings":"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","names":["NvDrawer","__stencil_proxyCustomElement","HTMLElement","uuidv4"],"sources":["src/components/nv-drawer/nv-drawer.scss?tag=nv-drawer","src/components/nv-drawer/nv-drawer.tsx"],"sourcesContent":["@import '../../styles/scrollbar';\n\nnv-drawer {\n dialog {\n width: 100vw;\n height: 100svh;\n margin: 0;\n max-height: unset;\n max-width: unset;\n padding: 0;\n background: color-mix(in srgb, var(--components-overlay-background) 70%, transparent);\n backdrop-filter: blur(4px);\n border: none;\n\n &[data-state='closed'] {\n pointer-events: none;\n }\n\n &[data-state='open'] {\n pointer-events: auto;\n }\n\n &.side-right {\n .backdrop {\n justify-content: flex-end;\n }\n\n .content {\n box-shadow: -4px 0 24px rgba(0, 0, 0, 0.15);\n }\n }\n\n &.side-left {\n .backdrop {\n justify-content: flex-start;\n }\n\n .content {\n box-shadow: 4px 0 24px rgba(0, 0, 0, 0.15);\n }\n }\n }\n\n .backdrop {\n display: flex;\n height: 100%;\n width: 100%;\n padding: 0;\n\n .content {\n background: var(--color-level-00-background);\n width: var(--drawer-width, min(90vw, 400px));\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n position: relative;\n\n // Border radius based on side\n &[data-side='left'] {\n border-top-right-radius: var(--drawer-radius-top-right, 0);\n border-bottom-right-radius: var(--drawer-radius-bottom-right, 0);\n }\n\n &[data-side='right'] {\n border-top-left-radius: var(--drawer-radius-top-left, 0);\n border-bottom-left-radius: var(--drawer-radius-bottom-left, 0);\n }\n\n // Size variants using clamp() for responsive sizing\n &.size-sm {\n width: clamp(var(--drawer-size-sm-min-width), var(--drawer-size-sm-width), var(--drawer-size-sm-max-width));\n }\n\n &.size-md {\n width: clamp(var(--drawer-size-md-min-width), var(--drawer-size-md-width), var(--drawer-size-md-max-width));\n }\n\n &.size-lg {\n width: clamp(var(--drawer-size-lg-min-width), var(--drawer-size-lg-width), var(--drawer-size-lg-max-width));\n }\n\n &.size-full {\n width: var(--drawer-size-full-width);\n }\n\n nv-button.close-button {\n position: absolute;\n top: var(--drawer-dismissible-position-top, var(--dialog-dismissible-position-top));\n right: var(--drawer-dismissible-position-right, var(--dialog-dismissible-position-right));\n z-index: 1;\n display: flex;\n padding: var(--button-sm-icon-button-padding);\n justify-content: flex-end;\n align-items: flex-start;\n gap: var(--drawer-gap-y, 10px);\n }\n\n .content-body {\n @include scrollbar();\n\n box-sizing: border-box;\n padding: var(--drawer-padding-y, var(--dialog-body-padding-y)) var(--drawer-padding-x, var(--dialog-body-padding-x));\n scrollbar-gutter: stable both-edges;\n flex: 1;\n overflow-y: auto;\n width: 100%;\n border-bottom: 1px solid var(--color-content-low-border);\n\n /* text/md/regular */\n font-family: var(--font-family-default), var(--font-family-fallback),\n sans-serif;\n font-size: var(--font-size-md);\n font-style: normal;\n font-weight: var(--font-weight-low-emphasis);\n line-height: var(--line-height-base); /* 150% */\n\n color: var(--color-content-medium-text);\n }\n\n // Adjust footer padding-top\n slot[name=\"footer\"]::slotted(*),\n nv-drawerfooter {\n padding-top: var(--spacing-4);\n }\n }\n }\n}","import {\n Component,\n Host,\n Prop,\n h,\n Element,\n Method,\n Event,\n EventEmitter,\n Watch,\n Listen,\n} from '@stencil/core';\nimport { tabbable } from 'tabbable';\nimport {\n addEventListeners,\n removeEventListeners,\n type EventsAndListeners,\n} from '../../utils/events.utils';\nimport { useSlide, useFade, parallel } from '../../animations';\nimport clsx from 'clsx';\nimport { ButtonType } from '../../utils/constants';\nimport { v4 as uuidv4 } from 'uuid';\n\n/**\n * @slot default - Body of the drawer.\n * @slot trigger - Content to be placed as the trigger, will override the trigger prop.\n * @slot header - Content to be placed as the header, will override the header prop.\n * @slot footer - Content to be placed as the footer, will override the footer prop.\n */\n@Component({\n tag: 'nv-drawer',\n styleUrl: 'nv-drawer.scss',\n shadow: false,\n})\nexport class NvDrawer {\n @Element() el: HTMLNvDrawerElement;\n private dialogElement!: HTMLDialogElement;\n private backdropElement!: HTMLDivElement;\n private contentElement!: HTMLDivElement;\n private eventsAttached = false;\n private form: string;\n private swipeStartX: number | null = null;\n private swipeStartY: number | null = null;\n private swipeStartTime: number | null = null;\n private isSwiping = false;\n private SWIPE_THRESHOLD = 50; // Minimum distance for a swipe (px)\n private SWIPE_EDGE_ZONE = 20; // Edge detection zone (px)\n private SWIPE_VELOCITY_THRESHOLD = 0.3; // Minimum velocity (px/ms)\n private triggerElement?: Element;\n private headerElement?: Element;\n private footerElement?: Element;\n\n private triggerClickEvents: EventsAndListeners = [\n ['click', this.show],\n [\n 'keydown',\n (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this.show();\n }\n },\n ],\n ];\n\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Use this prop to toggle the visibility of the drawer. Set to true to show\n * the drawer and false to hide it.\n */\n @Prop({ reflect: true, mutable: true })\n open: boolean = false;\n\n /**\n * If true, the drawer cannot be closed by the user.\n */\n @Prop({ reflect: true })\n readonly undismissable: boolean = false;\n\n /**\n * If true, the drawer will be closed when the backdrop is clicked.\n */\n @Prop({ reflect: true })\n readonly clickOutside: boolean = false;\n\n /**\n * If true, the drawer visibility is managed manually through methods or the\n * open prop.\n */\n @Prop({ reflect: true })\n readonly controlled: boolean = false;\n\n /**\n * Side from which the drawer appears.\n */\n @Prop({ reflect: true })\n readonly side: 'left' | 'right' = 'right';\n\n /**\n * Size of the drawer. Defaults to 'md'.\n * - 'sm': Small drawer (~320px)\n * - 'md': Medium drawer (~400px)\n * - 'lg': Large drawer (~600px)\n * - 'full': Full width drawer (100vw on mobile, ~800px on desktop)\n */\n @Prop({ reflect: true })\n readonly size: 'sm' | 'md' | 'lg' | 'full' = 'md';\n\n /**\n * Width of the drawer. If specified, this will override the size prop.\n * Defaults to the width corresponding to the size prop (400px for 'md').\n */\n @Prop({ reflect: true })\n readonly width?: string;\n\n /**\n * Controls whether the drawer should automatically focus the first focusable\n * element when opened. When disabled, prevents unwanted tooltip triggers on\n * drawer open.\n */\n @Prop({ reflect: true })\n // eslint-disable-next-line @stencil-community/reserved-member-names\n readonly autofocus: boolean = false;\n\n /**\n * Enables swipe gesture to open/close the drawer on touch devices.\n * - Swipe from the edge (left for left drawer, right for right drawer) to open\n * - Swipe towards the edge from inside the drawer to close\n */\n @Prop({ reflect: true })\n readonly swipeToOpen: boolean = false;\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region METHODS\n\n /**\n * Call this method to show the drawer, making it visible on the screen.\n */\n @Method()\n public async show() {\n this.open = true;\n this.preventScroll();\n /** It is recommended to use the .show() or .showModal() method to render\n * drawers, rather than the open attribute. If a <dialog> is opened using\n * the open attribute, it is non-modal. */\n const { setFadeOut } = useFade(this.dialogElement);\n setFadeOut();\n this.dialogElement.showModal();\n\n // Wait for dialog to be visible\n await new Promise(resolve => requestAnimationFrame(resolve));\n\n // Set initial position off-screen and animate\n const slideDirection = this.side === 'right' ? 100 : -100;\n const { setSlideX, slideX } = useSlide(this.contentElement, {\n duration: 300,\n });\n const { fadeIn } = useFade(this.dialogElement, {\n duration: 300,\n });\n\n // Clear any previous transform first\n if (this.contentElement) {\n this.contentElement.style.transform = '';\n }\n\n // Set initial position off-screen\n setSlideX(slideDirection);\n\n // Wait another frame to ensure position is set\n await new Promise(resolve => requestAnimationFrame(resolve));\n\n // Animate both slide and fade in parallel\n const slideIn = slideX({ from: slideDirection, to: 0 });\n await parallel(fadeIn, slideIn).start();\n }\n\n /**\n * Call this method to hide the drawer, making it disappear from view.\n */\n @Method()\n public async close() {\n this.open = false;\n this.allowScroll();\n const slideDirection = this.side === 'right' ? 100 : -100;\n const { slideX } = useSlide(this.contentElement, {\n duration: 300,\n });\n const { fadeOut } = useFade(this.dialogElement, {\n duration: 300,\n });\n\n // Animate both slide and fade out in parallel\n const slideOut = slideX({ from: 0, to: slideDirection });\n await parallel(slideOut, fadeOut).start();\n\n // Reset transform after animation completes\n if (this.contentElement) {\n this.contentElement.style.transform = '';\n }\n\n this.dialogElement.close();\n }\n\n /**\n * Sets the autofocus on the first focusable element in the drawer.\n */\n private setAutofocus() {\n const focusableElements = tabbable(this.dialogElement, {\n displayCheck: 'none',\n });\n\n if (focusableElements.length > 0) {\n // Convert to array and find element with smallest top and left position\n let topLeftElement = focusableElements[0];\n let topLeftRect = topLeftElement.getBoundingClientRect();\n\n focusableElements.forEach(element => {\n const rect = element.getBoundingClientRect();\n if (rect.top < topLeftRect.top || rect.left < topLeftRect.left) {\n topLeftElement = element;\n topLeftRect = rect;\n }\n });\n\n // Set autofocus attribute on the found element\n topLeftElement.setAttribute('autofocus', 'true');\n }\n }\n\n /**\n * Attaches event listeners to the drawer.\n */\n private attachEventListeners() {\n if (this.triggerElement && !this.eventsAttached && !this.controlled) {\n addEventListeners(this.triggerClickEvents, this.triggerElement, this);\n this.eventsAttached = true;\n }\n }\n\n /**\n * Prevents the body from scrolling when the drawer is open.\n * Compensates for scrollbar width to prevent layout shift.\n */\n private preventScroll() {\n // Calculate scrollbar width\n const scrollBarWidth =\n window.innerWidth - document.documentElement.clientWidth;\n\n // Apply overflow hidden and padding compensation\n document.documentElement.style.overflow = 'hidden';\n document.documentElement.style.paddingRight = `${scrollBarWidth}px`;\n }\n\n /**\n * Allows the body to scroll when the drawer is closed.\n * Removes the applied overflow and padding styles.\n */\n private allowScroll() {\n // Remove the applied styles\n document.documentElement.style.removeProperty('overflow');\n document.documentElement.style.removeProperty('padding-right');\n }\n\n private ensureFormId(formElement: HTMLFormElement): string {\n if (!formElement.id) {\n formElement.id = `drawer-form-${uuidv4()}`;\n }\n return formElement.id;\n }\n\n /**\n * Checks for and sets up form ID if a form is present\n */\n private checkForForm = () => {\n if (!this.form) {\n const formElement = this.el.querySelector('form') as HTMLFormElement;\n if (formElement) {\n this.form = this.ensureFormId(formElement);\n }\n }\n };\n\n /**\n * Handles the native drawer close event.\n */\n private handleDrawerClose = () => {\n if (this.open) {\n this.close();\n }\n };\n\n //#endregion METHODS\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emitted when the drawer is closing in order to allow for cleanup, data-capture, etc.\n * @bind open\n */\n @Event({ bubbles: false })\n openChanged: EventEmitter<boolean>;\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region WATCHERS\n\n @Watch('open')\n async handleDrawerOpenChange(isOpen: boolean) {\n if (isOpen) {\n this.show();\n this.openChanged.emit(isOpen);\n } else {\n this.close();\n this.openChanged.emit(isOpen);\n }\n }\n\n //#endregion WATCHERS\n /****************************************************************************/\n //#region LISTENERS\n\n /**\n * Handles the keydown event to optionally prevent the native drawer from closing when the escape key is pressed.\n * @param {KeyboardEvent} event - The keydown event.\n */\n @Listen('keydown', { target: 'document' })\n handleKeyDown(event: KeyboardEvent) {\n if (event.key !== 'Escape') return;\n if (!this.open) return;\n\n event.preventDefault();\n event.stopPropagation();\n const hasOpenPopover = this.checkForOpenPopovers();\n\n if (!this.undismissable && !hasOpenPopover) {\n event.preventDefault();\n event.stopPropagation();\n this.close();\n }\n }\n\n /**\n * Handles the click event to close the drawer when clickOutside is true.\n * @param {MouseEvent} event - The click event.\n */\n private handleDrawerClick = (event: MouseEvent) => {\n if (!this.clickOutside || this.undismissable) return;\n if (this.checkForOpenPopovers()) return;\n\n if (event.target === this.backdropElement) {\n this.close();\n event.preventDefault();\n event.stopPropagation();\n }\n };\n\n private checkForOpenPopovers = (): boolean => {\n let hasOpenPopover = false;\n\n this.el.querySelectorAll('nv-popover').forEach(popover => {\n if (popover.hasAttribute('open')) {\n hasOpenPopover = true;\n }\n });\n\n return hasOpenPopover;\n };\n\n /**\n * Handles pointer down events for swipe detection.\n * @param {PointerEvent} event - The pointer down event.\n */\n @Listen('pointerdown', { target: 'window' })\n handlePointerDown(event: PointerEvent) {\n if (!this.swipeToOpen || this.controlled) return;\n\n const x = event.clientX;\n const y = event.clientY;\n const screenWidth = window.innerWidth;\n\n // Check if swipe starts from edge (for opening drawer)\n if (!this.open) {\n const isLeftEdge = this.side === 'left' && x <= this.SWIPE_EDGE_ZONE;\n const isRightEdge =\n this.side === 'right' && x >= screenWidth - this.SWIPE_EDGE_ZONE;\n\n if (isLeftEdge || isRightEdge) {\n this.swipeStartX = x;\n this.swipeStartY = y;\n this.swipeStartTime = Date.now();\n this.isSwiping = true;\n event.preventDefault();\n }\n } else {\n // Check if swipe starts from inside the drawer (for closing)\n if (this.contentElement && this.dialogElement.hasAttribute('open')) {\n const drawerRect = this.contentElement.getBoundingClientRect();\n if (\n x >= drawerRect.left &&\n x <= drawerRect.right &&\n y >= drawerRect.top &&\n y <= drawerRect.bottom\n ) {\n this.swipeStartX = x;\n this.swipeStartY = y;\n this.swipeStartTime = Date.now();\n this.isSwiping = true;\n }\n }\n }\n }\n\n /**\n * Handles pointer move events during swipe.\n * @param {PointerEvent} event - The pointer move event.\n */\n @Listen('pointermove', { target: 'window' })\n handlePointerMove(event: PointerEvent) {\n if (!this.isSwiping || !this.swipeStartX || !this.swipeStartY) return;\n\n // Prevent scrolling during swipe\n event.preventDefault();\n }\n\n /**\n * Handles pointer up events to complete swipe gesture.\n * @param {PointerEvent} event - The pointer up event.\n */\n @Listen('pointerup', { target: 'window' })\n handlePointerUp(event: PointerEvent) {\n if (\n !this.isSwiping ||\n !this.swipeStartX ||\n !this.swipeStartY ||\n !this.swipeStartTime\n ) {\n this.resetSwipe();\n return;\n }\n\n const x = event.clientX;\n const y = event.clientY;\n const deltaX = x - this.swipeStartX;\n const deltaY = y - this.swipeStartY;\n const deltaTime = Date.now() - this.swipeStartTime;\n const distance = Math.abs(deltaX);\n const velocity = distance / deltaTime;\n\n // Only consider horizontal swipes (vertical movement should be less than horizontal)\n if (Math.abs(deltaY) > Math.abs(deltaX)) {\n this.resetSwipe();\n return;\n }\n\n // Check if swipe meets threshold requirements\n if (\n distance >= this.SWIPE_THRESHOLD ||\n velocity >= this.SWIPE_VELOCITY_THRESHOLD\n ) {\n if (!this.open) {\n // Opening swipe: from left edge going right, or from right edge going left\n const isOpeningSwipe =\n (this.side === 'left' && deltaX > 0) ||\n (this.side === 'right' && deltaX < 0);\n\n if (isOpeningSwipe && !this.undismissable) {\n this.show();\n }\n } else {\n // Closing swipe: towards the edge\n const isClosingSwipe =\n (this.side === 'left' && deltaX < 0) ||\n (this.side === 'right' && deltaX > 0);\n\n if (isClosingSwipe && !this.undismissable) {\n this.close();\n }\n }\n }\n\n this.resetSwipe();\n }\n\n /**\n * Resets swipe tracking state.\n */\n private resetSwipe() {\n this.swipeStartX = null;\n this.swipeStartY = null;\n this.swipeStartTime = null;\n this.isSwiping = false;\n }\n\n //#endregion LISTENERS\n /****************************************************************************/\n //#region LIFECYCLE\n\n /**\n * Lifecycle method that runs before the component loads.\n * Initializes the trigger, header, and footer elements by finding them in the component's children.\n * Elements are found either by their slot attribute or by their tag name (for drawer header/footer)\n */\n componentWillLoad() {\n this.triggerElement = Array.from(this.el.children).find(child => {\n return child.getAttribute('slot') === 'trigger';\n }) as HTMLElement;\n\n this.headerElement = Array.from(this.el.children).find(child => {\n return (\n child.getAttribute('slot') === 'header' ||\n child.tagName.toLowerCase() === 'nv-drawerheader'\n );\n }) as HTMLElement;\n\n this.footerElement = Array.from(this.el.children).find(child => {\n return (\n child.getAttribute('slot') === 'footer' ||\n child.tagName.toLowerCase() === 'nv-drawerfooter'\n );\n }) as HTMLElement;\n\n // Initial form check\n this.checkForForm();\n }\n\n componentWillUpdate() {\n this.attachEventListeners();\n }\n\n componentDidLoad() {\n if (this.open) {\n this.show();\n }\n // Only set autofocus if the prop is true and no element already has autofocus\n if (this.autofocus && !this.dialogElement.querySelector('[autofocus]')) {\n this.setAutofocus();\n }\n this.attachEventListeners();\n\n // Additional form check in case form was added after initial load\n this.checkForForm();\n\n // this.setupContentBodyListeners();\n }\n\n disconnectedCallback() {\n if (this.triggerElement && !this.eventsAttached && !this.controlled) {\n removeEventListeners(this.triggerClickEvents, this.triggerElement, this);\n this.eventsAttached = false;\n }\n this.allowScroll();\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region RENDER\n\n render() {\n const hasForm = this.form || this.el.querySelector('form');\n const state = this.open ? 'open' : 'closed';\n\n return (\n <Host>\n <slot name=\"trigger\"></slot>\n\n <dialog\n ref={el => (this.dialogElement = el)}\n onClose={this.handleDrawerClose}\n onClick={this.handleDrawerClick}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"drawer-header\"\n aria-describedby=\"drawer-content\"\n class={clsx({ [`side-${this.side}`]: true })}\n data-state={state}\n >\n <div class=\"backdrop\" ref={el => (this.backdropElement = el)}>\n <div\n class={clsx('content', `size-${this.size}`)}\n ref={el => (this.contentElement = el)}\n data-state={state}\n data-side={this.side}\n style={this.width ? { width: this.width } : {}}\n >\n {!this.undismissable && (\n <nv-button\n class=\"close-button\"\n emphasis=\"lower\"\n size=\"sm\"\n onClick={this.handleDrawerClose}\n aria-label=\"Close drawer\"\n >\n <nv-icon name=\"x\" size=\"sm\" />\n </nv-button>\n )}\n\n {this.headerElement ? (\n <slot name=\"header\"></slot>\n ) : (\n <nv-drawerheader id=\"drawer-header\"></nv-drawerheader>\n )}\n\n <div class=\"content-body\" id=\"drawer-content\">\n <slot></slot>\n </div>\n\n {this.footerElement ? (\n <slot name=\"footer\"></slot>\n ) : (\n <nv-drawerfooter\n form={this.form}\n primaryButtonType={\n hasForm ? ButtonType.Submit : ButtonType.Button\n }\n onDrawerCanceled={this.handleDrawerClose}\n undismissable={this.undismissable}\n ></nv-drawerfooter>\n )}\n </div>\n </div>\n </dialog>\n </Host>\n );\n }\n\n //#endregion RENDER\n}\n"],"version":3}
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface NvDrawerfooter extends Components.NvDrawerfooter, HTMLElement {}
4
+ export const NvDrawerfooter: {
5
+ prototype: NvDrawerfooter;
6
+ new (): NvDrawerfooter;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,9 @@
1
+ import { N as NvDrawerfooter$1, d as defineCustomElement$1 } from './p-u-maNLLs.js';
2
+
3
+ const NvDrawerfooter = NvDrawerfooter$1;
4
+ const defineCustomElement = defineCustomElement$1;
5
+
6
+ export { NvDrawerfooter, defineCustomElement };
7
+ //# sourceMappingURL=nv-drawerfooter.js.map
8
+
9
+ //# sourceMappingURL=nv-drawerfooter.js.map
@@ -0,0 +1 @@
1
+ {"file":"nv-drawerfooter.js","mappings":";;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface NvDrawerheader extends Components.NvDrawerheader, HTMLElement {}
4
+ export const NvDrawerheader: {
5
+ prototype: NvDrawerheader;
6
+ new (): NvDrawerheader;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,9 @@
1
+ import { N as NvDrawerheader$1, d as defineCustomElement$1 } from './p-W6vOfMC9.js';
2
+
3
+ const NvDrawerheader = NvDrawerheader$1;
4
+ const defineCustomElement = defineCustomElement$1;
5
+
6
+ export { NvDrawerheader, defineCustomElement };
7
+ //# sourceMappingURL=nv-drawerheader.js.map
8
+
9
+ //# sourceMappingURL=nv-drawerheader.js.map
@@ -0,0 +1 @@
1
+ {"file":"nv-drawerheader.js","mappings":";;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
@@ -1,4 +1,4 @@
1
- import { N as NvFieldcheckbox$1, d as defineCustomElement$1 } from './p-Dc_0pr83.js';
1
+ import { N as NvFieldcheckbox$1, d as defineCustomElement$1 } from './p-BISctfud.js';
2
2
 
3
3
  const NvFieldcheckbox = NvFieldcheckbox$1;
4
4
  const defineCustomElement = defineCustomElement$1;