@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.
- package/dist/cjs/app-globals-V2Kpy_OQ.js.map +1 -1
- package/dist/cjs/events.utils-BE6R5q9C.js +33 -0
- package/dist/cjs/events.utils-BE6R5q9C.js.map +1 -0
- package/dist/cjs/{grow.animation-BrWzyoUA.js → grow.animation-ynu_HmA_.js} +2 -30
- package/dist/cjs/grow.animation-ynu_HmA_.js.map +1 -0
- package/dist/cjs/{i18n.utils-BizoXo6c.js → i18n.utils-ku0bScip.js} +16 -20
- package/dist/cjs/{i18n.utils-BizoXo6c.js.map → i18n.utils-ku0bScip.js.map} +1 -1
- package/dist/cjs/index-B1na8x6M.js +12 -4
- package/dist/cjs/index.cjs.js +5 -2
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/index.esm-CG1TVKfu.js +540 -0
- package/dist/cjs/index.esm-CG1TVKfu.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/native.cjs.js +1 -1
- package/dist/cjs/nv-accordion.cjs.entry.js +2 -7
- package/dist/cjs/nv-accordion.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-alert.cjs.entry.js +1 -2
- package/dist/cjs/nv-alert.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-badge_2.cjs.entry.js +1 -1
- package/dist/cjs/nv-button.cjs.entry.js +3 -5
- package/dist/cjs/nv-button.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-calendar.cjs.entry.js +14 -24
- package/dist/cjs/nv-calendar.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-datagrid.cjs.entry.js +67 -72
- package/dist/cjs/nv-datagrid.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-dialog.cjs.entry.js +6 -538
- package/dist/cjs/nv-dialog.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-drawer.cjs.entry.js +443 -0
- package/dist/cjs/nv-drawer.entry.cjs.js.map +1 -0
- package/dist/cjs/nv-drawerfooter.nv-drawerheader.entry.cjs.js.map +1 -0
- package/dist/cjs/nv-drawerfooter_2.cjs.entry.js +144 -0
- package/dist/cjs/nv-fieldcheckbox.cjs.entry.js +6 -6
- package/dist/cjs/nv-fieldcheckbox.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-fielddate.cjs.entry.js +12 -15
- package/dist/cjs/nv-fielddate.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-fielddaterange.cjs.entry.js +12 -13
- package/dist/cjs/nv-fielddaterange.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-fielddropdown.cjs.entry.js +24 -33
- package/dist/cjs/nv-fielddropdown.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-fielddropdownitem.cjs.entry.js +2 -3
- package/dist/cjs/nv-fielddropdownitem.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-fieldmultiselect.cjs.entry.js +19 -27
- package/dist/cjs/nv-fieldmultiselect.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-fieldnumber.cjs.entry.js +6 -6
- package/dist/cjs/nv-fieldnumber.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-fieldpassword.cjs.entry.js +6 -6
- package/dist/cjs/nv-fieldpassword.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-fieldradio.cjs.entry.js +4 -4
- package/dist/cjs/nv-fieldradio.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-fieldselect.cjs.entry.js +8 -8
- package/dist/cjs/nv-fieldselect.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-fieldslider.cjs.entry.js +5 -5
- package/dist/cjs/nv-fieldslider.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-fieldtext.cjs.entry.js +6 -6
- package/dist/cjs/nv-fieldtext.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-fieldtextarea.cjs.entry.js +6 -7
- package/dist/cjs/nv-fieldtextarea.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-fieldtime.cjs.entry.js +27 -35
- package/dist/cjs/nv-fieldtime.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-icon.cjs.entry.js +2 -2
- package/dist/cjs/nv-icon.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-iconbutton.nv-loader.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-iconbutton_2.cjs.entry.js +5 -6
- package/dist/cjs/nv-menu.cjs.entry.js +3 -4
- package/dist/cjs/nv-menu.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-menuitem.cjs.entry.js +1 -1
- package/dist/cjs/nv-notification-bullet.cjs.entry.js +1 -2
- package/dist/cjs/nv-notification-bullet.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-notification.cjs.entry.js +6 -9
- package/dist/cjs/nv-notification.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-notificationcontainer.cjs.entry.js +1 -1
- package/dist/cjs/nv-popover.cjs.entry.js +12 -12
- package/dist/cjs/nv-popover.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-row.cjs.entry.js +1 -1
- package/dist/cjs/nv-sidebar.cjs.entry.js +3 -3
- package/dist/cjs/nv-sidebar.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-sidebarcontent.cjs.entry.js +1 -1
- package/dist/cjs/nv-sidebardivider.cjs.entry.js +1 -1
- package/dist/cjs/nv-sidebarfooter.cjs.entry.js +1 -1
- package/dist/cjs/nv-sidebargroup.cjs.entry.js +1 -1
- package/dist/cjs/nv-sidebarheader.cjs.entry.js +1 -1
- package/dist/cjs/nv-sidebarlogo.cjs.entry.js +1 -1
- package/dist/cjs/nv-sidebarnavitem.cjs.entry.js +4 -5
- package/dist/cjs/nv-sidebarnavitem.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-sidebarnavsubitem.cjs.entry.js +1 -1
- package/dist/cjs/nv-split.cjs.entry.js +43 -41
- package/dist/cjs/nv-split.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-stack.cjs.entry.js +1 -1
- package/dist/cjs/nv-table.cjs.entry.js +6 -8
- package/dist/cjs/nv-table.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-tableheader.cjs.entry.js +2 -2
- package/dist/cjs/nv-tableheader.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-toggle.cjs.entry.js +2 -2
- package/dist/cjs/nv-togglebutton.cjs.entry.js +2 -2
- package/dist/cjs/nv-togglebutton.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-togglebuttongroup.cjs.entry.js +3 -4
- package/dist/cjs/nv-togglebuttongroup.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-tooltip.cjs.entry.js +1 -1
- package/dist/collection/collection-manifest.json +3 -0
- package/dist/collection/components/nv-accordion/nv-accordion.docs.js +66 -40
- package/dist/collection/components/nv-accordion/nv-accordion.docs.js.map +1 -1
- package/dist/collection/components/nv-accordion/nv-accordion.js +2 -7
- package/dist/collection/components/nv-accordion/nv-accordion.js.map +1 -1
- package/dist/collection/components/nv-alert/nv-alert.docs.js +18 -1
- package/dist/collection/components/nv-alert/nv-alert.docs.js.map +1 -1
- package/dist/collection/components/nv-alert/nv-alert.js +1 -2
- package/dist/collection/components/nv-alert/nv-alert.js.map +1 -1
- package/dist/collection/components/nv-avatar/nv-avatar.docs.js +56 -0
- package/dist/collection/components/nv-avatar/nv-avatar.docs.js.map +1 -1
- package/dist/collection/components/nv-badge/nv-badge.docs.js +64 -15
- package/dist/collection/components/nv-badge/nv-badge.docs.js.map +1 -1
- package/dist/collection/components/nv-breadcrumbs/nv-breadcrumbs.docs.js +10 -1
- package/dist/collection/components/nv-breadcrumbs/nv-breadcrumbs.docs.js.map +1 -1
- package/dist/collection/components/nv-button/nv-button.docs.js +38 -4
- package/dist/collection/components/nv-button/nv-button.docs.js.map +1 -1
- package/dist/collection/components/nv-button/nv-button.js +3 -5
- package/dist/collection/components/nv-button/nv-button.js.map +1 -1
- package/dist/collection/components/nv-buttongroup/nv-buttongroup.docs.js +22 -0
- package/dist/collection/components/nv-buttongroup/nv-buttongroup.docs.js.map +1 -1
- package/dist/collection/components/nv-calendar/nv-calendar.docs.js +269 -14
- package/dist/collection/components/nv-calendar/nv-calendar.docs.js.map +1 -1
- package/dist/collection/components/nv-calendar/nv-calendar.js +13 -22
- package/dist/collection/components/nv-calendar/nv-calendar.js.map +1 -1
- package/dist/collection/components/nv-calendar/partials/week-numbers.js +1 -2
- package/dist/collection/components/nv-calendar/partials/week-numbers.js.map +1 -1
- package/dist/collection/components/nv-calendar/test/nv-calendar.utils.test.js +11 -11
- package/dist/collection/components/nv-calendar/test/nv-calendar.utils.test.js.map +1 -1
- package/dist/collection/components/nv-calendar/test/partials/calendar-grid.logic.test.js +2 -2
- package/dist/collection/components/nv-calendar/test/partials/calendar-grid.logic.test.js.map +1 -1
- package/dist/collection/components/nv-calendar/test/partials/calendar-shortcuts.logic.test.js +6 -5
- package/dist/collection/components/nv-calendar/test/partials/calendar-shortcuts.logic.test.js.map +1 -1
- package/dist/collection/components/nv-calendar/test/partials/day-cell.logic.test.js +10 -1
- package/dist/collection/components/nv-calendar/test/partials/day-cell.logic.test.js.map +1 -1
- package/dist/collection/components/nv-col/nv-col.docs.js +8 -0
- package/dist/collection/components/nv-col/nv-col.docs.js.map +1 -1
- package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js +290 -286
- package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js.map +1 -1
- package/dist/collection/components/nv-datagrid/nv-datagrid.js +67 -72
- package/dist/collection/components/nv-datagrid/nv-datagrid.js.map +1 -1
- package/dist/collection/components/nv-dialog/nv-dialog.docs.js +64 -13
- package/dist/collection/components/nv-dialog/nv-dialog.docs.js.map +1 -1
- package/dist/collection/components/nv-drawer/nv-drawer.css +114 -0
- package/dist/collection/components/nv-drawer/nv-drawer.docs.js +145 -0
- package/dist/collection/components/nv-drawer/nv-drawer.docs.js.map +1 -0
- package/dist/collection/components/nv-drawer/nv-drawer.js +719 -0
- package/dist/collection/components/nv-drawer/nv-drawer.js.map +1 -0
- package/dist/collection/components/nv-drawerfooter/nv-drawerfooter.css +8 -0
- package/dist/collection/components/nv-drawerfooter/nv-drawerfooter.docs.js +6 -0
- package/dist/collection/components/nv-drawerfooter/nv-drawerfooter.docs.js.map +1 -0
- package/dist/collection/components/nv-drawerfooter/nv-drawerfooter.js +325 -0
- package/dist/collection/components/nv-drawerfooter/nv-drawerfooter.js.map +1 -0
- package/dist/collection/components/nv-drawerheader/nv-drawerheader.css +32 -0
- package/dist/collection/components/nv-drawerheader/nv-drawerheader.docs.js +6 -0
- package/dist/collection/components/nv-drawerheader/nv-drawerheader.docs.js.map +1 -0
- package/dist/collection/components/nv-drawerheader/nv-drawerheader.js +92 -0
- package/dist/collection/components/nv-drawerheader/nv-drawerheader.js.map +1 -0
- package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.docs.js +186 -136
- package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js +6 -6
- package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js.map +1 -1
- package/dist/collection/components/nv-fielddate/nv-fielddate.docs.js +300 -109
- package/dist/collection/components/nv-fielddate/nv-fielddate.docs.js.map +1 -1
- package/dist/collection/components/nv-fielddate/nv-fielddate.js +11 -14
- package/dist/collection/components/nv-fielddate/nv-fielddate.js.map +1 -1
- package/dist/collection/components/nv-fielddate/styles/nv-fielddate.css +1 -1
- package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.docs.js +406 -1
- package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.docs.js.map +1 -1
- package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js +11 -12
- package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js.map +1 -1
- package/dist/collection/components/nv-fielddaterange/styles/nv-fielddaterange.css +1 -1
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js +210 -118
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js.map +1 -1
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js +22 -31
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js.map +1 -1
- package/dist/collection/components/nv-fielddropdown/styles/nv-fielddropdown.css +1 -1
- package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.js +2 -3
- package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.js.map +1 -1
- package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.js +1 -1
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js +462 -322
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js +17 -25
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js.map +1 -1
- package/dist/collection/components/nv-fieldmultiselect/styles/nv-fieldmultiselect.css +1 -1
- package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.css +1 -1
- package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.docs.js +70 -7
- package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js +5 -5
- package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js.map +1 -1
- package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.css +1 -1
- package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.docs.js +79 -6
- package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js +5 -5
- package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js.map +1 -1
- package/dist/collection/components/nv-fieldradio/nv-fieldradio.docs.js +58 -6
- package/dist/collection/components/nv-fieldradio/nv-fieldradio.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldradio/nv-fieldradio.js +4 -4
- package/dist/collection/components/nv-fieldradio/nv-fieldradio.js.map +1 -1
- package/dist/collection/components/nv-fieldselect/nv-fieldselect.docs.js +138 -30
- package/dist/collection/components/nv-fieldselect/nv-fieldselect.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldselect/nv-fieldselect.js +7 -7
- package/dist/collection/components/nv-fieldselect/nv-fieldselect.js.map +1 -1
- package/dist/collection/components/nv-fieldselect/styles/nv-fieldselect.css +1 -1
- package/dist/collection/components/nv-fieldslider/nv-fieldslider.docs.js +138 -30
- package/dist/collection/components/nv-fieldslider/nv-fieldslider.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldslider/nv-fieldslider.js +3 -3
- package/dist/collection/components/nv-fieldslider/partials/field-input.js +1 -1
- package/dist/collection/components/nv-fieldslider/partials/field-input.js.map +1 -1
- package/dist/collection/components/nv-fieldslider/styles/nv-fieldslider.css +1 -1
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.css +1 -1
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.docs.js +92 -16
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.js +5 -5
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.js.map +1 -1
- package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.docs.js +64 -3
- package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js +6 -7
- package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js.map +1 -1
- package/dist/collection/components/nv-fieldtime/nv-fieldtime.docs.js +41 -22
- package/dist/collection/components/nv-fieldtime/nv-fieldtime.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldtime/nv-fieldtime.js +25 -33
- package/dist/collection/components/nv-fieldtime/nv-fieldtime.js.map +1 -1
- package/dist/collection/components/nv-fieldtime/styles/nv-fieldtime.css +1 -1
- package/dist/collection/components/nv-fieldtime/utils/format-utils.js +1 -1
- package/dist/collection/components/nv-fieldtime/utils/format-utils.js.map +1 -1
- package/dist/collection/components/nv-icon/nv-icon.docs.js +46 -0
- package/dist/collection/components/nv-icon/nv-icon.docs.js.map +1 -1
- package/dist/collection/components/nv-icon/nv-icon.js +1 -1
- package/dist/collection/components/nv-icon/nv-icons.js +2 -0
- package/dist/collection/components/nv-icon/nv-icons.js.map +1 -1
- package/dist/collection/components/nv-iconbutton/nv-iconbutton.css +4 -4
- package/dist/collection/components/nv-iconbutton/nv-iconbutton.docs.js +18 -1
- package/dist/collection/components/nv-iconbutton/nv-iconbutton.docs.js.map +1 -1
- package/dist/collection/components/nv-iconbutton/nv-iconbutton.js +3 -4
- package/dist/collection/components/nv-iconbutton/nv-iconbutton.js.map +1 -1
- package/dist/collection/components/nv-loader/nv-loader.docs.js +8 -4
- package/dist/collection/components/nv-loader/nv-loader.docs.js.map +1 -1
- package/dist/collection/components/nv-loader/nv-loader.js +1 -1
- package/dist/collection/components/nv-menu/nv-menu.docs.js +17 -5
- package/dist/collection/components/nv-menu/nv-menu.docs.js.map +1 -1
- package/dist/collection/components/nv-menu/nv-menu.js +3 -4
- package/dist/collection/components/nv-menu/nv-menu.js.map +1 -1
- package/dist/collection/components/nv-menuitem/nv-menuitem.js +2 -2
- package/dist/collection/components/nv-notification/nv-notification.docs.js +34 -3
- package/dist/collection/components/nv-notification/nv-notification.docs.js.map +1 -1
- package/dist/collection/components/nv-notification/nv-notification.js +6 -9
- package/dist/collection/components/nv-notification/nv-notification.js.map +1 -1
- package/dist/collection/components/nv-notification-bullet/nv-notification-bullet.docs.js +60 -0
- package/dist/collection/components/nv-notification-bullet/nv-notification-bullet.docs.js.map +1 -1
- package/dist/collection/components/nv-notification-bullet/nv-notification-bullet.js +1 -2
- package/dist/collection/components/nv-notification-bullet/nv-notification-bullet.js.map +1 -1
- package/dist/collection/components/nv-notificationcontainer/nv-notificationcontainer.js +1 -1
- package/dist/collection/components/nv-popover/nv-popover.docs.js +35 -10
- package/dist/collection/components/nv-popover/nv-popover.docs.js.map +1 -1
- package/dist/collection/components/nv-popover/nv-popover.js +2 -3
- package/dist/collection/components/nv-popover/nv-popover.js.map +1 -1
- package/dist/collection/components/nv-row/nv-row.docs.js +7 -0
- package/dist/collection/components/nv-row/nv-row.docs.js.map +1 -1
- package/dist/collection/components/nv-row/nv-row.js +1 -1
- package/dist/collection/components/nv-sidebar/nv-sidebar.docs.js +39 -0
- package/dist/collection/components/nv-sidebar/nv-sidebar.docs.js.map +1 -1
- package/dist/collection/components/nv-sidebar/nv-sidebar.js +3 -3
- package/dist/collection/components/nv-sidebar/nv-sidebar.js.map +1 -1
- package/dist/collection/components/nv-sidebarcontent/nv-sidebarcontent.js +1 -1
- package/dist/collection/components/nv-sidebardivider/nv-sidebardivider.js +1 -1
- package/dist/collection/components/nv-sidebarfooter/nv-sidebarfooter.js +1 -1
- package/dist/collection/components/nv-sidebargroup/nv-sidebargroup.js +1 -1
- package/dist/collection/components/nv-sidebarheader/nv-sidebarheader.js +1 -1
- package/dist/collection/components/nv-sidebarlogo/nv-sidebarlogo.js +1 -1
- package/dist/collection/components/nv-sidebarnavitem/nv-sidebarnavitem.js +5 -6
- package/dist/collection/components/nv-sidebarnavitem/nv-sidebarnavitem.js.map +1 -1
- package/dist/collection/components/nv-sidebarnavsubitem/nv-sidebarnavsubitem.js +1 -1
- package/dist/collection/components/nv-split/nv-split.docs.js +38 -2
- package/dist/collection/components/nv-split/nv-split.docs.js.map +1 -1
- package/dist/collection/components/nv-split/nv-split.js +44 -42
- package/dist/collection/components/nv-split/nv-split.js.map +1 -1
- package/dist/collection/components/nv-split/styles/nv-split.css +2 -0
- package/dist/collection/components/nv-stack/nv-stack.docs.js +13 -0
- package/dist/collection/components/nv-stack/nv-stack.docs.js.map +1 -1
- package/dist/collection/components/nv-stack/nv-stack.js +1 -1
- package/dist/collection/components/nv-table/nv-table.docs.js +12 -0
- package/dist/collection/components/nv-table/nv-table.docs.js.map +1 -1
- package/dist/collection/components/nv-table/nv-table.js +1 -1
- package/dist/collection/components/nv-table/nv-table.utils.js +5 -7
- package/dist/collection/components/nv-table/nv-table.utils.js.map +1 -1
- package/dist/collection/components/nv-table/test/nv-table.utils.test.js +4 -5
- package/dist/collection/components/nv-table/test/nv-table.utils.test.js.map +1 -1
- package/dist/collection/components/nv-tableheader/nv-tableheader.docs.js +29 -1
- package/dist/collection/components/nv-tableheader/nv-tableheader.docs.js.map +1 -1
- package/dist/collection/components/nv-tableheader/nv-tableheader.js +2 -2
- package/dist/collection/components/nv-tableheader/nv-tableheader.js.map +1 -1
- package/dist/collection/components/nv-toggle/nv-toggle.docs.js +31 -0
- package/dist/collection/components/nv-toggle/nv-toggle.docs.js.map +1 -1
- package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
- package/dist/collection/components/nv-togglebutton/nv-togglebutton.js +1 -1
- package/dist/collection/components/nv-togglebutton/styles/nv-togglebutton.css +16 -12
- package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.docs.js +20 -7
- package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.docs.js.map +1 -1
- package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.js +2 -3
- package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.js.map +1 -1
- package/dist/collection/components/nv-togglebuttongroup/styles/nv-togglebuttongroup.css +4 -12
- package/dist/collection/components/nv-tooltip/nv-tooltip.docs.js +33 -6
- package/dist/collection/components/nv-tooltip/nv-tooltip.docs.js.map +1 -1
- package/dist/collection/components/nv-tooltip/nv-tooltip.js +1 -1
- package/dist/collection/templates/navigation.docs.js +1 -1
- package/dist/collection/templates/navigation.docs.js.map +1 -1
- package/dist/collection/utils/i18n.utils.js +1 -2
- package/dist/collection/utils/i18n.utils.js.map +1 -1
- package/dist/collection/utils/search-engine/strategies/fuzzy.js +2 -2
- package/dist/collection/utils/search-engine/strategies/fuzzy.js.map +1 -1
- package/dist/collection/utils/search-engine/strategies/smart.js +2 -2
- package/dist/collection/utils/search-engine/strategies/smart.js.map +1 -1
- package/dist/collection/utils/search-engine/strategies/strict.js +2 -2
- package/dist/collection/utils/search-engine/strategies/strict.js.map +1 -1
- package/dist/collection/utils/search-engine/worker/worker-client.js +7 -10
- package/dist/collection/utils/search-engine/worker/worker-client.js.map +1 -1
- package/dist/components/index.js +4 -2
- package/dist/components/index.js.map +1 -1
- package/dist/components/nv-accordion-item.js +1 -1
- package/dist/components/nv-accordion.js +6 -11
- package/dist/components/nv-accordion.js.map +1 -1
- package/dist/components/nv-alert.js +2 -3
- package/dist/components/nv-alert.js.map +1 -1
- package/dist/components/nv-avatar.js +1 -1
- package/dist/components/nv-badge.js +1 -1
- package/dist/components/nv-breadcrumb.js +2 -2
- package/dist/components/nv-button.js +1 -1
- package/dist/components/nv-calendar.js +1 -1
- package/dist/components/nv-datagrid.js +69 -74
- package/dist/components/nv-datagrid.js.map +1 -1
- package/dist/components/nv-dialog.js +7 -539
- package/dist/components/nv-dialog.js.map +1 -1
- package/dist/components/nv-dialogfooter.js +1 -1
- package/dist/components/nv-drawer.d.ts +11 -0
- package/dist/components/nv-drawer.js +507 -0
- package/dist/components/nv-drawer.js.map +1 -0
- package/dist/components/nv-drawerfooter.d.ts +11 -0
- package/dist/components/nv-drawerfooter.js +9 -0
- package/dist/components/nv-drawerfooter.js.map +1 -0
- package/dist/components/nv-drawerheader.d.ts +11 -0
- package/dist/components/nv-drawerheader.js +9 -0
- package/dist/components/nv-drawerheader.js.map +1 -0
- package/dist/components/nv-fieldcheckbox.js +1 -1
- package/dist/components/nv-fielddate.js +18 -21
- package/dist/components/nv-fielddate.js.map +1 -1
- package/dist/components/nv-fielddaterange.js +18 -19
- package/dist/components/nv-fielddaterange.js.map +1 -1
- package/dist/components/nv-fielddropdown.js +29 -38
- package/dist/components/nv-fielddropdown.js.map +1 -1
- package/dist/components/nv-fielddropdownitem.js +1 -1
- package/dist/components/nv-fielddropdownitemcheck.js +1 -1
- package/dist/components/nv-fieldmultiselect.js +26 -34
- package/dist/components/nv-fieldmultiselect.js.map +1 -1
- package/dist/components/nv-fieldnumber.js +1 -1
- package/dist/components/nv-fieldpassword.js +9 -9
- package/dist/components/nv-fieldpassword.js.map +1 -1
- package/dist/components/nv-fieldradio.js +4 -4
- package/dist/components/nv-fieldradio.js.map +1 -1
- package/dist/components/nv-fieldselect.js +11 -11
- package/dist/components/nv-fieldselect.js.map +1 -1
- package/dist/components/nv-fieldslider.js +9 -9
- package/dist/components/nv-fieldslider.js.map +1 -1
- package/dist/components/nv-fieldtext.js +1 -1
- package/dist/components/nv-fieldtextarea.js +6 -7
- package/dist/components/nv-fieldtextarea.js.map +1 -1
- package/dist/components/nv-fieldtime.js +31 -39
- package/dist/components/nv-fieldtime.js.map +1 -1
- package/dist/components/nv-icon.js +1 -1
- package/dist/components/nv-iconbutton.js +1 -1
- package/dist/components/nv-loader.js +1 -1
- package/dist/components/nv-menu.js +6 -7
- package/dist/components/nv-menu.js.map +1 -1
- package/dist/components/nv-menuitem.js +1 -1
- package/dist/components/nv-notification-bullet.js +1 -1
- package/dist/components/nv-notification.js +7 -10
- package/dist/components/nv-notification.js.map +1 -1
- package/dist/components/nv-notificationcontainer.js +1 -1
- package/dist/components/nv-popover.js +1 -1
- package/dist/components/nv-row.js +1 -1
- package/dist/components/nv-sidebar.js +4 -4
- package/dist/components/nv-sidebar.js.map +1 -1
- package/dist/components/nv-sidebarcontent.js +1 -1
- package/dist/components/nv-sidebardivider.js +1 -1
- package/dist/components/nv-sidebarfooter.js +1 -1
- package/dist/components/nv-sidebargroup.js +1 -1
- package/dist/components/nv-sidebarheader.js +1 -1
- package/dist/components/nv-sidebarlogo.js +1 -1
- package/dist/components/nv-sidebarnavitem.js +6 -7
- package/dist/components/nv-sidebarnavitem.js.map +1 -1
- package/dist/components/nv-sidebarnavsubitem.js +1 -1
- package/dist/components/nv-split.js +43 -41
- package/dist/components/nv-split.js.map +1 -1
- package/dist/components/nv-stack.js +1 -1
- package/dist/components/nv-table.js +6 -8
- package/dist/components/nv-table.js.map +1 -1
- package/dist/components/nv-tableheader.js +5 -5
- package/dist/components/nv-tableheader.js.map +1 -1
- package/dist/components/nv-toggle.js +2 -2
- package/dist/components/nv-togglebutton.js +2 -2
- package/dist/components/nv-togglebutton.js.map +1 -1
- package/dist/components/nv-togglebuttongroup.js +3 -4
- package/dist/components/nv-togglebuttongroup.js.map +1 -1
- package/dist/components/nv-tooltip.js +1 -1
- package/dist/components/{p-D1i2OAGe.js → p-B45HbBWe.js} +6 -8
- package/dist/components/p-B45HbBWe.js.map +1 -0
- package/dist/components/p-B6GgGra-.js +29 -0
- package/dist/components/p-B6GgGra-.js.map +1 -0
- package/dist/components/{p-Dk8ekxr_.js → p-B7VlEQVW.js} +16 -26
- package/dist/components/p-B7VlEQVW.js.map +1 -0
- package/dist/components/{p-B-3kAnun.js → p-B9i3m6rk.js} +6 -6
- package/dist/components/p-B9i3m6rk.js.map +1 -0
- package/dist/components/{p-BQo7AMPX.js → p-BILd3Ta-.js} +9 -9
- package/dist/components/p-BILd3Ta-.js.map +1 -0
- package/dist/components/{p-Dc_0pr83.js → p-BISctfud.js} +8 -8
- package/dist/components/p-BISctfud.js.map +1 -0
- package/dist/components/{p-CIyQBhTX.js → p-BVOv1zgq.js} +4 -4
- package/dist/components/{p-CIyQBhTX.js.map → p-BVOv1zgq.js.map} +1 -1
- package/dist/components/{p-B6EYOx_n.js → p-Bg_l3jn1.js} +3 -3
- package/dist/components/{p-B6EYOx_n.js.map → p-Bg_l3jn1.js.map} +1 -1
- package/dist/components/{p-CBvZjfqs.js → p-C2QAWGhf.js} +4 -4
- package/dist/components/{p-CBvZjfqs.js.map → p-C2QAWGhf.js.map} +1 -1
- package/dist/components/{p-DzUXTCUy.js → p-COnt5ux_.js} +3 -3
- package/dist/components/{p-DzUXTCUy.js.map → p-COnt5ux_.js.map} +1 -1
- package/dist/components/{p-KUIQrV3D.js → p-Cc7XnqPp.js} +5 -5
- package/dist/components/{p-KUIQrV3D.js.map → p-Cc7XnqPp.js.map} +1 -1
- package/dist/components/{p-CmwaW0q4.js → p-D02w_Ru6.js} +3 -28
- package/dist/components/p-D02w_Ru6.js.map +1 -0
- package/dist/components/p-D3eWMME9.js +538 -0
- package/dist/components/p-D3eWMME9.js.map +1 -0
- package/dist/components/{p--iYGZN4R.js → p-D6APFL6N.js} +11 -11
- package/dist/components/p-D6APFL6N.js.map +1 -0
- package/dist/components/{p-DstpaOhw.js → p-DZJHk4fr.js} +3 -3
- package/dist/components/{p-DstpaOhw.js.map → p-DZJHk4fr.js.map} +1 -1
- package/dist/components/{p-Da9WgE5U.js → p-DiUP3TzF.js} +5 -5
- package/dist/components/{p-Da9WgE5U.js.map → p-DiUP3TzF.js.map} +1 -1
- package/dist/components/{p-DWG6az-u.js → p-DpDooigg.js} +5 -6
- package/dist/components/p-DpDooigg.js.map +1 -0
- package/dist/components/{p-BKfPh2in.js → p-Dr-67WvG.js} +4 -4
- package/dist/components/{p-BKfPh2in.js.map → p-Dr-67WvG.js.map} +1 -1
- package/dist/components/{p-DaiLIZ8f.js → p-DvapDVBj.js} +8 -9
- package/dist/components/p-DvapDVBj.js.map +1 -0
- package/dist/components/{p-DOZbXX2L.js → p-IlwlcG9l.js} +16 -20
- package/dist/components/p-IlwlcG9l.js.map +1 -0
- package/dist/components/p-W6vOfMC9.js +63 -0
- package/dist/components/p-W6vOfMC9.js.map +1 -0
- package/dist/components/{p-CBOuqJTb.js → p-nfYynlVq.js} +4 -4
- package/dist/components/{p-CBOuqJTb.js.map → p-nfYynlVq.js.map} +1 -1
- package/dist/components/{p-CBF8V1L7.js → p-tyaJ-nGV.js} +3 -4
- package/dist/components/p-tyaJ-nGV.js.map +1 -0
- package/dist/components/p-u-maNLLs.js +145 -0
- package/dist/components/p-u-maNLLs.js.map +1 -0
- package/dist/esm/app-globals-DQuL1Twl.js.map +1 -1
- package/dist/esm/events.utils-B6GgGra-.js +29 -0
- package/dist/esm/events.utils-B6GgGra-.js.map +1 -0
- package/dist/esm/{grow.animation-CvHGHBL4.js → grow.animation-D7ep_aVl.js} +3 -28
- package/dist/esm/grow.animation-D7ep_aVl.js.map +1 -0
- package/dist/esm/{i18n.utils-DOZbXX2L.js → i18n.utils-IlwlcG9l.js} +16 -20
- package/dist/esm/{i18n.utils-DOZbXX2L.js.map → i18n.utils-IlwlcG9l.js.map} +1 -1
- package/dist/esm/index-CasQushP.js +12 -4
- package/dist/esm/index.esm-D3eWMME9.js +538 -0
- package/dist/esm/index.esm-D3eWMME9.js.map +1 -0
- package/dist/esm/index.js +4 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/native.js +1 -1
- package/dist/esm/nv-accordion.entry.js +2 -7
- package/dist/esm/nv-accordion.entry.js.map +1 -1
- package/dist/esm/nv-alert.entry.js +1 -2
- package/dist/esm/nv-alert.entry.js.map +1 -1
- package/dist/esm/nv-badge_2.entry.js +1 -1
- package/dist/esm/nv-button.entry.js +3 -5
- package/dist/esm/nv-button.entry.js.map +1 -1
- package/dist/esm/nv-calendar.entry.js +14 -24
- package/dist/esm/nv-calendar.entry.js.map +1 -1
- package/dist/esm/nv-datagrid.entry.js +67 -72
- package/dist/esm/nv-datagrid.entry.js.map +1 -1
- package/dist/esm/nv-dialog.entry.js +3 -535
- package/dist/esm/nv-dialog.entry.js.map +1 -1
- package/dist/esm/nv-drawer.entry.js +441 -0
- package/dist/esm/nv-drawer.entry.js.map +1 -0
- package/dist/esm/nv-drawerfooter.nv-drawerheader.entry.js.map +1 -0
- package/dist/esm/nv-drawerfooter_2.entry.js +141 -0
- package/dist/esm/nv-fieldcheckbox.entry.js +6 -6
- package/dist/esm/nv-fieldcheckbox.entry.js.map +1 -1
- package/dist/esm/nv-fielddate.entry.js +12 -15
- package/dist/esm/nv-fielddate.entry.js.map +1 -1
- package/dist/esm/nv-fielddaterange.entry.js +12 -13
- package/dist/esm/nv-fielddaterange.entry.js.map +1 -1
- package/dist/esm/nv-fielddropdown.entry.js +24 -33
- package/dist/esm/nv-fielddropdown.entry.js.map +1 -1
- package/dist/esm/nv-fielddropdownitem.entry.js +2 -3
- package/dist/esm/nv-fielddropdownitem.entry.js.map +1 -1
- package/dist/esm/nv-fieldmultiselect.entry.js +19 -27
- package/dist/esm/nv-fieldmultiselect.entry.js.map +1 -1
- package/dist/esm/nv-fieldnumber.entry.js +6 -6
- package/dist/esm/nv-fieldnumber.entry.js.map +1 -1
- package/dist/esm/nv-fieldpassword.entry.js +6 -6
- package/dist/esm/nv-fieldpassword.entry.js.map +1 -1
- package/dist/esm/nv-fieldradio.entry.js +4 -4
- package/dist/esm/nv-fieldradio.entry.js.map +1 -1
- package/dist/esm/nv-fieldselect.entry.js +8 -8
- package/dist/esm/nv-fieldselect.entry.js.map +1 -1
- package/dist/esm/nv-fieldslider.entry.js +5 -5
- package/dist/esm/nv-fieldslider.entry.js.map +1 -1
- package/dist/esm/nv-fieldtext.entry.js +6 -6
- package/dist/esm/nv-fieldtext.entry.js.map +1 -1
- package/dist/esm/nv-fieldtextarea.entry.js +6 -7
- package/dist/esm/nv-fieldtextarea.entry.js.map +1 -1
- package/dist/esm/nv-fieldtime.entry.js +27 -35
- package/dist/esm/nv-fieldtime.entry.js.map +1 -1
- package/dist/esm/nv-icon.entry.js +2 -2
- package/dist/esm/nv-icon.entry.js.map +1 -1
- package/dist/esm/nv-iconbutton.nv-loader.entry.js.map +1 -1
- package/dist/esm/nv-iconbutton_2.entry.js +5 -6
- package/dist/esm/nv-menu.entry.js +3 -4
- package/dist/esm/nv-menu.entry.js.map +1 -1
- package/dist/esm/nv-menuitem.entry.js +1 -1
- package/dist/esm/nv-notification-bullet.entry.js +1 -2
- package/dist/esm/nv-notification-bullet.entry.js.map +1 -1
- package/dist/esm/nv-notification.entry.js +6 -9
- package/dist/esm/nv-notification.entry.js.map +1 -1
- package/dist/esm/nv-notificationcontainer.entry.js +1 -1
- package/dist/esm/nv-popover.entry.js +4 -4
- package/dist/esm/nv-popover.entry.js.map +1 -1
- package/dist/esm/nv-row.entry.js +1 -1
- package/dist/esm/nv-sidebar.entry.js +3 -3
- package/dist/esm/nv-sidebar.entry.js.map +1 -1
- package/dist/esm/nv-sidebarcontent.entry.js +1 -1
- package/dist/esm/nv-sidebardivider.entry.js +1 -1
- package/dist/esm/nv-sidebarfooter.entry.js +1 -1
- package/dist/esm/nv-sidebargroup.entry.js +1 -1
- package/dist/esm/nv-sidebarheader.entry.js +1 -1
- package/dist/esm/nv-sidebarlogo.entry.js +1 -1
- package/dist/esm/nv-sidebarnavitem.entry.js +4 -5
- package/dist/esm/nv-sidebarnavitem.entry.js.map +1 -1
- package/dist/esm/nv-sidebarnavsubitem.entry.js +1 -1
- package/dist/esm/nv-split.entry.js +43 -41
- package/dist/esm/nv-split.entry.js.map +1 -1
- package/dist/esm/nv-stack.entry.js +1 -1
- package/dist/esm/nv-table.entry.js +6 -8
- package/dist/esm/nv-table.entry.js.map +1 -1
- package/dist/esm/nv-tableheader.entry.js +2 -2
- package/dist/esm/nv-tableheader.entry.js.map +1 -1
- package/dist/esm/nv-toggle.entry.js +2 -2
- package/dist/esm/nv-togglebutton.entry.js +2 -2
- package/dist/esm/nv-togglebutton.entry.js.map +1 -1
- package/dist/esm/nv-togglebuttongroup.entry.js +3 -4
- package/dist/esm/nv-togglebuttongroup.entry.js.map +1 -1
- package/dist/esm/nv-tooltip.entry.js +1 -1
- package/dist/lib/generators/angular-output.js +9 -7
- package/dist/lib/generators/angular-output.js.map +1 -1
- package/dist/lib/generators/docs-blazor.js +32 -14
- package/dist/lib/generators/docs-blazor.js.map +1 -1
- package/dist/lib/generators/vue-output.js +10 -11
- package/dist/lib/generators/vue-output.js.map +1 -1
- package/dist/lib/utils/componentBinding.js +9 -10
- package/dist/lib/utils/componentBinding.js.map +1 -1
- package/dist/lib/utils/parseToCSharpTypes.js +3 -16
- package/dist/lib/utils/parseToCSharpTypes.js.map +1 -1
- package/dist/lib/utils/spread.js +3 -4
- package/dist/lib/utils/spread.js.map +1 -1
- package/dist/native/index.esm.js +1 -1
- package/dist/native/index.esm.js.map +1 -1
- package/dist/native/native.css +1 -1
- package/dist/native/native.esm.js +1 -1
- package/dist/native/nv-accordion.entry.esm.js.map +1 -1
- package/dist/native/nv-alert.entry.esm.js.map +1 -1
- package/dist/native/nv-button.entry.esm.js.map +1 -1
- package/dist/native/nv-calendar.entry.esm.js.map +1 -1
- package/dist/native/nv-datagrid.entry.esm.js.map +1 -1
- package/dist/native/nv-dialog.entry.esm.js.map +1 -1
- package/dist/native/nv-drawer.entry.esm.js.map +1 -0
- package/dist/native/nv-drawerfooter.nv-drawerheader.entry.esm.js.map +1 -0
- package/dist/native/nv-fieldcheckbox.entry.esm.js.map +1 -1
- package/dist/native/nv-fielddate.entry.esm.js.map +1 -1
- package/dist/native/nv-fielddaterange.entry.esm.js.map +1 -1
- package/dist/native/nv-fielddropdown.entry.esm.js.map +1 -1
- package/dist/native/nv-fielddropdownitem.entry.esm.js.map +1 -1
- package/dist/native/nv-fieldmultiselect.entry.esm.js.map +1 -1
- package/dist/native/nv-fieldnumber.entry.esm.js.map +1 -1
- package/dist/native/nv-fieldpassword.entry.esm.js.map +1 -1
- package/dist/native/nv-fieldradio.entry.esm.js.map +1 -1
- package/dist/native/nv-fieldselect.entry.esm.js.map +1 -1
- package/dist/native/nv-fieldslider.entry.esm.js.map +1 -1
- package/dist/native/nv-fieldtext.entry.esm.js.map +1 -1
- package/dist/native/nv-fieldtextarea.entry.esm.js.map +1 -1
- package/dist/native/nv-fieldtime.entry.esm.js.map +1 -1
- package/dist/native/nv-icon.entry.esm.js.map +1 -1
- package/dist/native/nv-iconbutton.nv-loader.entry.esm.js.map +1 -1
- package/dist/native/nv-menu.entry.esm.js.map +1 -1
- package/dist/native/nv-notification-bullet.entry.esm.js.map +1 -1
- package/dist/native/nv-notification.entry.esm.js.map +1 -1
- package/dist/native/nv-popover.entry.esm.js.map +1 -1
- package/dist/native/nv-sidebar.entry.esm.js.map +1 -1
- package/dist/native/nv-sidebarnavitem.entry.esm.js.map +1 -1
- package/dist/native/nv-split.entry.esm.js.map +1 -1
- package/dist/native/nv-table.entry.esm.js.map +1 -1
- package/dist/native/nv-tableheader.entry.esm.js.map +1 -1
- package/dist/native/nv-togglebutton.entry.esm.js.map +1 -1
- package/dist/native/nv-togglebuttongroup.entry.esm.js.map +1 -1
- package/dist/native/{p-b21e38a3.entry.js → p-04a2fe7f.entry.js} +2 -2
- package/dist/native/p-08204da4.entry.js +2 -0
- package/dist/native/{p-bd6ae5f3.entry.js.map → p-08204da4.entry.js.map} +1 -1
- package/dist/native/{p-e0adb05d.entry.js → p-0e07b91b.entry.js} +2 -2
- package/dist/native/p-0e07b91b.entry.js.map +1 -0
- package/dist/native/p-136dfb3e.entry.js +2 -0
- package/dist/native/p-136dfb3e.entry.js.map +1 -0
- package/dist/native/p-1f2dd37f.entry.js +2 -0
- package/dist/native/p-1f2dd37f.entry.js.map +1 -0
- package/dist/native/p-255a0482.entry.js +2 -0
- package/dist/native/p-255a0482.entry.js.map +1 -0
- package/dist/native/{p-f73e9752.entry.js → p-3305a7e6.entry.js} +2 -2
- package/dist/native/p-3305a7e6.entry.js.map +1 -0
- package/dist/native/p-36b0a6f0.entry.js +2 -0
- package/dist/native/p-36b0a6f0.entry.js.map +1 -0
- package/dist/native/p-434bc910.entry.js +2 -0
- package/dist/native/p-434bc910.entry.js.map +1 -0
- package/dist/native/{p-ea98ba7a.entry.js → p-436029a5.entry.js} +2 -2
- package/dist/native/p-460fdf02.entry.js +2 -0
- package/dist/native/p-460fdf02.entry.js.map +1 -0
- package/dist/native/p-477e02cf.entry.js +2 -0
- package/dist/native/p-477e02cf.entry.js.map +1 -0
- package/dist/native/{p-28afb852.entry.js → p-4efb582b.entry.js} +2 -2
- package/dist/native/p-4efb582b.entry.js.map +1 -0
- package/dist/native/p-4f1dfa32.entry.js +2 -0
- package/dist/native/p-4f1dfa32.entry.js.map +1 -0
- package/dist/native/p-51b7de55.entry.js +13 -0
- package/dist/native/p-51b7de55.entry.js.map +1 -0
- package/dist/native/{p-37c6d559.entry.js → p-5dd120dc.entry.js} +2 -2
- package/dist/native/p-5dd120dc.entry.js.map +1 -0
- package/dist/native/{p-5acf105e.entry.js → p-67181258.entry.js} +2 -2
- package/dist/native/p-6a81884b.entry.js +2 -0
- package/dist/native/p-6a81884b.entry.js.map +1 -0
- package/dist/native/p-6aa483de.entry.js +2 -0
- package/dist/native/{p-b1a917c7.entry.js → p-6fc79712.entry.js} +2 -2
- package/dist/native/{p-ee04ea09.entry.js → p-729589cb.entry.js} +2 -2
- package/dist/native/p-729589cb.entry.js.map +1 -0
- package/dist/native/p-78bf7650.entry.js +2 -0
- package/dist/native/p-7e6e9ea2.entry.js +2 -0
- package/dist/native/p-8f1cd9e2.entry.js +2 -0
- package/dist/native/p-8f1cd9e2.entry.js.map +1 -0
- package/dist/native/{p-4cf47e1a.entry.js → p-910cd685.entry.js} +2 -2
- package/dist/native/p-91eaf02e.entry.js +2 -0
- package/dist/native/p-91eaf02e.entry.js.map +1 -0
- package/dist/native/p-93e35975.entry.js +2 -0
- package/dist/native/p-93e35975.entry.js.map +1 -0
- package/dist/native/{p-9d8257dc.entry.js → p-96c45604.entry.js} +2 -2
- package/dist/native/{p-6f456ae4.entry.js → p-9b6ad782.entry.js} +2 -2
- package/dist/native/{p-6f456ae4.entry.js.map → p-9b6ad782.entry.js.map} +1 -1
- package/dist/native/{p-fd872d54.entry.js → p-9f32c3ea.entry.js} +2 -2
- package/dist/native/p-B6GgGra-.js +2 -0
- package/dist/native/p-B6GgGra-.js.map +1 -0
- package/dist/native/p-Blc6XEY7.js +2 -0
- package/dist/native/p-Blc6XEY7.js.map +1 -0
- package/dist/native/p-D3eWMME9.js +6 -0
- package/dist/native/p-D3eWMME9.js.map +1 -0
- package/dist/native/p-DQuL1Twl.js.map +1 -1
- package/dist/native/p-IlwlcG9l.js +2 -0
- package/dist/native/{p-DOZbXX2L.js.map → p-IlwlcG9l.js.map} +1 -1
- package/dist/native/{p-b0935c49.entry.js → p-a6fea322.entry.js} +2 -2
- package/dist/native/p-ae279ae9.entry.js +2 -0
- package/dist/native/p-ae279ae9.entry.js.map +1 -0
- package/dist/native/p-ba1286aa.entry.js +2 -0
- package/dist/native/p-ba1286aa.entry.js.map +1 -0
- package/dist/native/p-bb52a5a9.entry.js +2 -0
- package/dist/native/p-bb52a5a9.entry.js.map +1 -0
- package/dist/native/p-bc90247e.entry.js +2 -0
- package/dist/native/p-bc90247e.entry.js.map +1 -0
- package/dist/native/{p-0493fb6d.entry.js → p-c2a73a5a.entry.js} +2 -2
- package/dist/native/p-c4c11549.entry.js +2 -0
- package/dist/native/{p-3c54e422.entry.js → p-c5ecdc49.entry.js} +2 -2
- package/dist/native/p-c5ecdc49.entry.js.map +1 -0
- package/dist/native/{p-527e9b56.entry.js → p-cb1b9edb.entry.js} +2 -2
- package/dist/native/p-cb1b9edb.entry.js.map +1 -0
- package/dist/native/p-cdaf54b0.entry.js +2 -0
- package/dist/native/p-cdaf54b0.entry.js.map +1 -0
- package/dist/native/{p-e7dc36d9.entry.js → p-ceb8fe8a.entry.js} +2 -2
- package/dist/native/p-daf7541b.entry.js +2 -0
- package/dist/native/p-daf7541b.entry.js.map +1 -0
- package/dist/native/{p-da893df2.entry.js → p-ded4be77.entry.js} +2 -2
- package/dist/native/p-ded4be77.entry.js.map +1 -0
- package/dist/native/p-e1fc5f8c.entry.js +2 -0
- package/dist/native/p-e1fc5f8c.entry.js.map +1 -0
- package/dist/native/{p-d4f95c86.entry.js → p-e6c69f7d.entry.js} +2 -2
- package/dist/native/p-e6c69f7d.entry.js.map +1 -0
- package/dist/native/p-e83603f1.entry.js +2 -0
- package/dist/native/p-e83603f1.entry.js.map +1 -0
- package/dist/native/p-ec217581.entry.js +2 -0
- package/dist/native/p-ec217581.entry.js.map +1 -0
- package/dist/native/p-ee694832.entry.js +2 -0
- package/dist/native/p-ee694832.entry.js.map +1 -0
- package/dist/native/{p-b1ef2f25.entry.js → p-f7e0146e.entry.js} +2 -2
- package/dist/native/p-f7e0146e.entry.js.map +1 -0
- package/dist/types/components/nv-drawer/nv-drawer.d.ts +161 -0
- package/dist/types/components/nv-drawer/nv-drawer.docs.d.ts +4 -0
- package/dist/types/components/nv-drawerfooter/nv-drawerfooter.d.ts +76 -0
- package/dist/types/components/nv-drawerfooter/nv-drawerfooter.docs.d.ts +4 -0
- package/dist/types/components/nv-drawerheader/nv-drawerheader.d.ts +20 -0
- package/dist/types/components/nv-drawerheader/nv-drawerheader.docs.d.ts +4 -0
- package/dist/types/components/nv-icon/nv-icons.d.ts +1 -1
- package/dist/types/components/nv-split/nv-split.d.ts +4 -4
- package/dist/types/components.d.ts +292 -5
- package/dist/vscode-data.json +153 -1
- package/hydrate/index.js +969 -408
- package/hydrate/index.mjs +969 -408
- package/package.json +13 -1
- package/dist/cjs/grow.animation-BrWzyoUA.js.map +0 -1
- package/dist/components/p--iYGZN4R.js.map +0 -1
- package/dist/components/p-B-3kAnun.js.map +0 -1
- package/dist/components/p-BQo7AMPX.js.map +0 -1
- package/dist/components/p-CBF8V1L7.js.map +0 -1
- package/dist/components/p-CmwaW0q4.js.map +0 -1
- package/dist/components/p-D1i2OAGe.js.map +0 -1
- package/dist/components/p-DOZbXX2L.js.map +0 -1
- package/dist/components/p-DWG6az-u.js.map +0 -1
- package/dist/components/p-DaiLIZ8f.js.map +0 -1
- package/dist/components/p-Dc_0pr83.js.map +0 -1
- package/dist/components/p-Dk8ekxr_.js.map +0 -1
- package/dist/esm/grow.animation-CvHGHBL4.js.map +0 -1
- package/dist/native/p-02df60a5.entry.js +0 -2
- package/dist/native/p-02df60a5.entry.js.map +0 -1
- package/dist/native/p-0b8d6777.entry.js +0 -13
- package/dist/native/p-0b8d6777.entry.js.map +0 -1
- package/dist/native/p-0e7e693f.entry.js +0 -2
- package/dist/native/p-0e7e693f.entry.js.map +0 -1
- package/dist/native/p-0fe60a9d.entry.js +0 -2
- package/dist/native/p-0fe60a9d.entry.js.map +0 -1
- package/dist/native/p-14b0bf14.entry.js +0 -2
- package/dist/native/p-14b0bf14.entry.js.map +0 -1
- package/dist/native/p-28afb852.entry.js.map +0 -1
- package/dist/native/p-2cf77850.entry.js +0 -2
- package/dist/native/p-2cf77850.entry.js.map +0 -1
- package/dist/native/p-31a12d8a.entry.js +0 -2
- package/dist/native/p-31a12d8a.entry.js.map +0 -1
- package/dist/native/p-37c6d559.entry.js.map +0 -1
- package/dist/native/p-3c54e422.entry.js.map +0 -1
- package/dist/native/p-3c9b22ff.entry.js +0 -2
- package/dist/native/p-3c9b22ff.entry.js.map +0 -1
- package/dist/native/p-4a71f223.entry.js +0 -2
- package/dist/native/p-4a71f223.entry.js.map +0 -1
- package/dist/native/p-527e9b56.entry.js.map +0 -1
- package/dist/native/p-5bce524d.entry.js +0 -2
- package/dist/native/p-5bce524d.entry.js.map +0 -1
- package/dist/native/p-63bc0a05.entry.js +0 -2
- package/dist/native/p-63bc0a05.entry.js.map +0 -1
- package/dist/native/p-63bf86de.entry.js +0 -2
- package/dist/native/p-6a3c1413.entry.js +0 -2
- package/dist/native/p-7e274db7.entry.js +0 -7
- package/dist/native/p-7e274db7.entry.js.map +0 -1
- package/dist/native/p-86b2b071.entry.js +0 -2
- package/dist/native/p-86b2b071.entry.js.map +0 -1
- package/dist/native/p-8b278fce.entry.js +0 -2
- package/dist/native/p-8b278fce.entry.js.map +0 -1
- package/dist/native/p-9c543ab2.entry.js +0 -2
- package/dist/native/p-9c543ab2.entry.js.map +0 -1
- package/dist/native/p-DOZbXX2L.js +0 -2
- package/dist/native/p-DS5GOtQ3.js +0 -2
- package/dist/native/p-DS5GOtQ3.js.map +0 -1
- package/dist/native/p-a2aa6872.entry.js +0 -2
- package/dist/native/p-b1ef2f25.entry.js.map +0 -1
- package/dist/native/p-b2ed6d34.entry.js +0 -2
- package/dist/native/p-b2ed6d34.entry.js.map +0 -1
- package/dist/native/p-bd6ae5f3.entry.js +0 -2
- package/dist/native/p-c98b9ce4.entry.js +0 -2
- package/dist/native/p-c98b9ce4.entry.js.map +0 -1
- package/dist/native/p-cc305619.entry.js +0 -2
- package/dist/native/p-cc305619.entry.js.map +0 -1
- package/dist/native/p-d1cfdc3e.entry.js +0 -2
- package/dist/native/p-d1cfdc3e.entry.js.map +0 -1
- package/dist/native/p-d3b1bd81.entry.js +0 -2
- package/dist/native/p-d424b9aa.entry.js +0 -2
- package/dist/native/p-d424b9aa.entry.js.map +0 -1
- package/dist/native/p-d4f95c86.entry.js.map +0 -1
- package/dist/native/p-da893df2.entry.js.map +0 -1
- package/dist/native/p-e0adb05d.entry.js.map +0 -1
- package/dist/native/p-e6a37207.entry.js +0 -2
- package/dist/native/p-e6a37207.entry.js.map +0 -1
- package/dist/native/p-ee04ea09.entry.js.map +0 -1
- package/dist/native/p-f73e9752.entry.js.map +0 -1
- /package/dist/native/{p-b21e38a3.entry.js.map → p-04a2fe7f.entry.js.map} +0 -0
- /package/dist/native/{p-ea98ba7a.entry.js.map → p-436029a5.entry.js.map} +0 -0
- /package/dist/native/{p-5acf105e.entry.js.map → p-67181258.entry.js.map} +0 -0
- /package/dist/native/{p-63bf86de.entry.js.map → p-6aa483de.entry.js.map} +0 -0
- /package/dist/native/{p-b1a917c7.entry.js.map → p-6fc79712.entry.js.map} +0 -0
- /package/dist/native/{p-d3b1bd81.entry.js.map → p-78bf7650.entry.js.map} +0 -0
- /package/dist/native/{p-a2aa6872.entry.js.map → p-7e6e9ea2.entry.js.map} +0 -0
- /package/dist/native/{p-4cf47e1a.entry.js.map → p-910cd685.entry.js.map} +0 -0
- /package/dist/native/{p-9d8257dc.entry.js.map → p-96c45604.entry.js.map} +0 -0
- /package/dist/native/{p-fd872d54.entry.js.map → p-9f32c3ea.entry.js.map} +0 -0
- /package/dist/native/{p-b0935c49.entry.js.map → p-a6fea322.entry.js.map} +0 -0
- /package/dist/native/{p-0493fb6d.entry.js.map → p-c2a73a5a.entry.js.map} +0 -0
- /package/dist/native/{p-6a3c1413.entry.js.map → p-c4c11549.entry.js.map} +0 -0
- /package/dist/native/{p-e7dc36d9.entry.js.map → p-ceb8fe8a.entry.js.map} +0 -0
|
@@ -0,0 +1,443 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('./index-B1na8x6M.js');
|
|
4
|
+
var index_esm = require('./index.esm-CG1TVKfu.js');
|
|
5
|
+
var events_utils = require('./events.utils-BE6R5q9C.js');
|
|
6
|
+
var fade_animation = require('./fade.animation-BQSqXXOJ.js');
|
|
7
|
+
require('./style-value-types.es-B1vLqX9m.js');
|
|
8
|
+
var slide_animation = require('./slide.animation-Cb3tpLQv.js');
|
|
9
|
+
var timeline_animation = require('./timeline.animation-KteJaZPb.js');
|
|
10
|
+
var clsx = require('./clsx-BtxeOLZW.js');
|
|
11
|
+
var constants = require('./constants-BugGJYqL.js');
|
|
12
|
+
var v4 = require('./v4-C1vaJ4yP.js');
|
|
13
|
+
|
|
14
|
+
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)}";
|
|
15
|
+
|
|
16
|
+
const NvDrawer = class {
|
|
17
|
+
constructor(hostRef) {
|
|
18
|
+
index.registerInstance(this, hostRef);
|
|
19
|
+
this.openChanged = index.createEvent(this, "openChanged", 3);
|
|
20
|
+
this.eventsAttached = false;
|
|
21
|
+
this.swipeStartX = null;
|
|
22
|
+
this.swipeStartY = null;
|
|
23
|
+
this.swipeStartTime = null;
|
|
24
|
+
this.isSwiping = false;
|
|
25
|
+
this.SWIPE_THRESHOLD = 50; // Minimum distance for a swipe (px)
|
|
26
|
+
this.SWIPE_EDGE_ZONE = 20; // Edge detection zone (px)
|
|
27
|
+
this.SWIPE_VELOCITY_THRESHOLD = 0.3; // Minimum velocity (px/ms)
|
|
28
|
+
this.triggerClickEvents = [
|
|
29
|
+
['click', this.show],
|
|
30
|
+
[
|
|
31
|
+
'keydown',
|
|
32
|
+
(e) => {
|
|
33
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
34
|
+
e.preventDefault();
|
|
35
|
+
this.show();
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
];
|
|
40
|
+
/****************************************************************************/
|
|
41
|
+
//#region PROPERTIES
|
|
42
|
+
/**
|
|
43
|
+
* Use this prop to toggle the visibility of the drawer. Set to true to show
|
|
44
|
+
* the drawer and false to hide it.
|
|
45
|
+
*/
|
|
46
|
+
this.open = false;
|
|
47
|
+
/**
|
|
48
|
+
* If true, the drawer cannot be closed by the user.
|
|
49
|
+
*/
|
|
50
|
+
this.undismissable = false;
|
|
51
|
+
/**
|
|
52
|
+
* If true, the drawer will be closed when the backdrop is clicked.
|
|
53
|
+
*/
|
|
54
|
+
this.clickOutside = false;
|
|
55
|
+
/**
|
|
56
|
+
* If true, the drawer visibility is managed manually through methods or the
|
|
57
|
+
* open prop.
|
|
58
|
+
*/
|
|
59
|
+
this.controlled = false;
|
|
60
|
+
/**
|
|
61
|
+
* Side from which the drawer appears.
|
|
62
|
+
*/
|
|
63
|
+
this.side = 'right';
|
|
64
|
+
/**
|
|
65
|
+
* Size of the drawer. Defaults to 'md'.
|
|
66
|
+
* - 'sm': Small drawer (~320px)
|
|
67
|
+
* - 'md': Medium drawer (~400px)
|
|
68
|
+
* - 'lg': Large drawer (~600px)
|
|
69
|
+
* - 'full': Full width drawer (100vw on mobile, ~800px on desktop)
|
|
70
|
+
*/
|
|
71
|
+
this.size = 'md';
|
|
72
|
+
/**
|
|
73
|
+
* Controls whether the drawer should automatically focus the first focusable
|
|
74
|
+
* element when opened. When disabled, prevents unwanted tooltip triggers on
|
|
75
|
+
* drawer open.
|
|
76
|
+
*/
|
|
77
|
+
this.autofocus = false;
|
|
78
|
+
/**
|
|
79
|
+
* Enables swipe gesture to open/close the drawer on touch devices.
|
|
80
|
+
* - Swipe from the edge (left for left drawer, right for right drawer) to open
|
|
81
|
+
* - Swipe towards the edge from inside the drawer to close
|
|
82
|
+
*/
|
|
83
|
+
this.swipeToOpen = false;
|
|
84
|
+
/**
|
|
85
|
+
* Checks for and sets up form ID if a form is present
|
|
86
|
+
*/
|
|
87
|
+
this.checkForForm = () => {
|
|
88
|
+
if (!this.form) {
|
|
89
|
+
const formElement = this.el.querySelector('form');
|
|
90
|
+
if (formElement) {
|
|
91
|
+
this.form = this.ensureFormId(formElement);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* Handles the native drawer close event.
|
|
97
|
+
*/
|
|
98
|
+
this.handleDrawerClose = () => {
|
|
99
|
+
if (this.open) {
|
|
100
|
+
this.close();
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* Handles the click event to close the drawer when clickOutside is true.
|
|
105
|
+
* @param {MouseEvent} event - The click event.
|
|
106
|
+
*/
|
|
107
|
+
this.handleDrawerClick = (event) => {
|
|
108
|
+
if (!this.clickOutside || this.undismissable)
|
|
109
|
+
return;
|
|
110
|
+
if (this.checkForOpenPopovers())
|
|
111
|
+
return;
|
|
112
|
+
if (event.target === this.backdropElement) {
|
|
113
|
+
this.close();
|
|
114
|
+
event.preventDefault();
|
|
115
|
+
event.stopPropagation();
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
this.checkForOpenPopovers = () => {
|
|
119
|
+
let hasOpenPopover = false;
|
|
120
|
+
this.el.querySelectorAll('nv-popover').forEach(popover => {
|
|
121
|
+
if (popover.hasAttribute('open')) {
|
|
122
|
+
hasOpenPopover = true;
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
return hasOpenPopover;
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
//#endregion PROPERTIES
|
|
129
|
+
/****************************************************************************/
|
|
130
|
+
//#region METHODS
|
|
131
|
+
/**
|
|
132
|
+
* Call this method to show the drawer, making it visible on the screen.
|
|
133
|
+
*/
|
|
134
|
+
async show() {
|
|
135
|
+
this.open = true;
|
|
136
|
+
this.preventScroll();
|
|
137
|
+
/** It is recommended to use the .show() or .showModal() method to render
|
|
138
|
+
* drawers, rather than the open attribute. If a <dialog> is opened using
|
|
139
|
+
* the open attribute, it is non-modal. */
|
|
140
|
+
const { setFadeOut } = fade_animation.useFade(this.dialogElement);
|
|
141
|
+
setFadeOut();
|
|
142
|
+
this.dialogElement.showModal();
|
|
143
|
+
// Wait for dialog to be visible
|
|
144
|
+
await new Promise(resolve => requestAnimationFrame(resolve));
|
|
145
|
+
// Set initial position off-screen and animate
|
|
146
|
+
const slideDirection = this.side === 'right' ? 100 : -100;
|
|
147
|
+
const { setSlideX, slideX } = slide_animation.useSlide(this.contentElement, {
|
|
148
|
+
duration: 300,
|
|
149
|
+
});
|
|
150
|
+
const { fadeIn } = fade_animation.useFade(this.dialogElement, {
|
|
151
|
+
duration: 300,
|
|
152
|
+
});
|
|
153
|
+
// Clear any previous transform first
|
|
154
|
+
if (this.contentElement) {
|
|
155
|
+
this.contentElement.style.transform = '';
|
|
156
|
+
}
|
|
157
|
+
// Set initial position off-screen
|
|
158
|
+
setSlideX(slideDirection);
|
|
159
|
+
// Wait another frame to ensure position is set
|
|
160
|
+
await new Promise(resolve => requestAnimationFrame(resolve));
|
|
161
|
+
// Animate both slide and fade in parallel
|
|
162
|
+
const slideIn = slideX({ from: slideDirection, to: 0 });
|
|
163
|
+
await timeline_animation.parallel(fadeIn, slideIn).start();
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Call this method to hide the drawer, making it disappear from view.
|
|
167
|
+
*/
|
|
168
|
+
async close() {
|
|
169
|
+
this.open = false;
|
|
170
|
+
this.allowScroll();
|
|
171
|
+
const slideDirection = this.side === 'right' ? 100 : -100;
|
|
172
|
+
const { slideX } = slide_animation.useSlide(this.contentElement, {
|
|
173
|
+
duration: 300,
|
|
174
|
+
});
|
|
175
|
+
const { fadeOut } = fade_animation.useFade(this.dialogElement, {
|
|
176
|
+
duration: 300,
|
|
177
|
+
});
|
|
178
|
+
// Animate both slide and fade out in parallel
|
|
179
|
+
const slideOut = slideX({ from: 0, to: slideDirection });
|
|
180
|
+
await timeline_animation.parallel(slideOut, fadeOut).start();
|
|
181
|
+
// Reset transform after animation completes
|
|
182
|
+
if (this.contentElement) {
|
|
183
|
+
this.contentElement.style.transform = '';
|
|
184
|
+
}
|
|
185
|
+
this.dialogElement.close();
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Sets the autofocus on the first focusable element in the drawer.
|
|
189
|
+
*/
|
|
190
|
+
setAutofocus() {
|
|
191
|
+
const focusableElements = index_esm.tabbable(this.dialogElement, {
|
|
192
|
+
displayCheck: 'none',
|
|
193
|
+
});
|
|
194
|
+
if (focusableElements.length > 0) {
|
|
195
|
+
// Convert to array and find element with smallest top and left position
|
|
196
|
+
let topLeftElement = focusableElements[0];
|
|
197
|
+
let topLeftRect = topLeftElement.getBoundingClientRect();
|
|
198
|
+
focusableElements.forEach(element => {
|
|
199
|
+
const rect = element.getBoundingClientRect();
|
|
200
|
+
if (rect.top < topLeftRect.top || rect.left < topLeftRect.left) {
|
|
201
|
+
topLeftElement = element;
|
|
202
|
+
topLeftRect = rect;
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
// Set autofocus attribute on the found element
|
|
206
|
+
topLeftElement.setAttribute('autofocus', 'true');
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Attaches event listeners to the drawer.
|
|
211
|
+
*/
|
|
212
|
+
attachEventListeners() {
|
|
213
|
+
if (this.triggerElement && !this.eventsAttached && !this.controlled) {
|
|
214
|
+
events_utils.addEventListeners(this.triggerClickEvents, this.triggerElement, this);
|
|
215
|
+
this.eventsAttached = true;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Prevents the body from scrolling when the drawer is open.
|
|
220
|
+
* Compensates for scrollbar width to prevent layout shift.
|
|
221
|
+
*/
|
|
222
|
+
preventScroll() {
|
|
223
|
+
// Calculate scrollbar width
|
|
224
|
+
const scrollBarWidth = window.innerWidth - document.documentElement.clientWidth;
|
|
225
|
+
// Apply overflow hidden and padding compensation
|
|
226
|
+
document.documentElement.style.overflow = 'hidden';
|
|
227
|
+
document.documentElement.style.paddingRight = `${scrollBarWidth}px`;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Allows the body to scroll when the drawer is closed.
|
|
231
|
+
* Removes the applied overflow and padding styles.
|
|
232
|
+
*/
|
|
233
|
+
allowScroll() {
|
|
234
|
+
// Remove the applied styles
|
|
235
|
+
document.documentElement.style.removeProperty('overflow');
|
|
236
|
+
document.documentElement.style.removeProperty('padding-right');
|
|
237
|
+
}
|
|
238
|
+
ensureFormId(formElement) {
|
|
239
|
+
if (!formElement.id) {
|
|
240
|
+
formElement.id = `drawer-form-${v4.v4()}`;
|
|
241
|
+
}
|
|
242
|
+
return formElement.id;
|
|
243
|
+
}
|
|
244
|
+
//#endregion EVENTS
|
|
245
|
+
/****************************************************************************/
|
|
246
|
+
//#region WATCHERS
|
|
247
|
+
async handleDrawerOpenChange(isOpen) {
|
|
248
|
+
if (isOpen) {
|
|
249
|
+
this.show();
|
|
250
|
+
this.openChanged.emit(isOpen);
|
|
251
|
+
}
|
|
252
|
+
else {
|
|
253
|
+
this.close();
|
|
254
|
+
this.openChanged.emit(isOpen);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
//#endregion WATCHERS
|
|
258
|
+
/****************************************************************************/
|
|
259
|
+
//#region LISTENERS
|
|
260
|
+
/**
|
|
261
|
+
* Handles the keydown event to optionally prevent the native drawer from closing when the escape key is pressed.
|
|
262
|
+
* @param {KeyboardEvent} event - The keydown event.
|
|
263
|
+
*/
|
|
264
|
+
handleKeyDown(event) {
|
|
265
|
+
if (event.key !== 'Escape')
|
|
266
|
+
return;
|
|
267
|
+
if (!this.open)
|
|
268
|
+
return;
|
|
269
|
+
event.preventDefault();
|
|
270
|
+
event.stopPropagation();
|
|
271
|
+
const hasOpenPopover = this.checkForOpenPopovers();
|
|
272
|
+
if (!this.undismissable && !hasOpenPopover) {
|
|
273
|
+
event.preventDefault();
|
|
274
|
+
event.stopPropagation();
|
|
275
|
+
this.close();
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Handles pointer down events for swipe detection.
|
|
280
|
+
* @param {PointerEvent} event - The pointer down event.
|
|
281
|
+
*/
|
|
282
|
+
handlePointerDown(event) {
|
|
283
|
+
if (!this.swipeToOpen || this.controlled)
|
|
284
|
+
return;
|
|
285
|
+
const x = event.clientX;
|
|
286
|
+
const y = event.clientY;
|
|
287
|
+
const screenWidth = window.innerWidth;
|
|
288
|
+
// Check if swipe starts from edge (for opening drawer)
|
|
289
|
+
if (!this.open) {
|
|
290
|
+
const isLeftEdge = this.side === 'left' && x <= this.SWIPE_EDGE_ZONE;
|
|
291
|
+
const isRightEdge = this.side === 'right' && x >= screenWidth - this.SWIPE_EDGE_ZONE;
|
|
292
|
+
if (isLeftEdge || isRightEdge) {
|
|
293
|
+
this.swipeStartX = x;
|
|
294
|
+
this.swipeStartY = y;
|
|
295
|
+
this.swipeStartTime = Date.now();
|
|
296
|
+
this.isSwiping = true;
|
|
297
|
+
event.preventDefault();
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
else {
|
|
301
|
+
// Check if swipe starts from inside the drawer (for closing)
|
|
302
|
+
if (this.contentElement && this.dialogElement.hasAttribute('open')) {
|
|
303
|
+
const drawerRect = this.contentElement.getBoundingClientRect();
|
|
304
|
+
if (x >= drawerRect.left &&
|
|
305
|
+
x <= drawerRect.right &&
|
|
306
|
+
y >= drawerRect.top &&
|
|
307
|
+
y <= drawerRect.bottom) {
|
|
308
|
+
this.swipeStartX = x;
|
|
309
|
+
this.swipeStartY = y;
|
|
310
|
+
this.swipeStartTime = Date.now();
|
|
311
|
+
this.isSwiping = true;
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Handles pointer move events during swipe.
|
|
318
|
+
* @param {PointerEvent} event - The pointer move event.
|
|
319
|
+
*/
|
|
320
|
+
handlePointerMove(event) {
|
|
321
|
+
if (!this.isSwiping || !this.swipeStartX || !this.swipeStartY)
|
|
322
|
+
return;
|
|
323
|
+
// Prevent scrolling during swipe
|
|
324
|
+
event.preventDefault();
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Handles pointer up events to complete swipe gesture.
|
|
328
|
+
* @param {PointerEvent} event - The pointer up event.
|
|
329
|
+
*/
|
|
330
|
+
handlePointerUp(event) {
|
|
331
|
+
if (!this.isSwiping ||
|
|
332
|
+
!this.swipeStartX ||
|
|
333
|
+
!this.swipeStartY ||
|
|
334
|
+
!this.swipeStartTime) {
|
|
335
|
+
this.resetSwipe();
|
|
336
|
+
return;
|
|
337
|
+
}
|
|
338
|
+
const x = event.clientX;
|
|
339
|
+
const y = event.clientY;
|
|
340
|
+
const deltaX = x - this.swipeStartX;
|
|
341
|
+
const deltaY = y - this.swipeStartY;
|
|
342
|
+
const deltaTime = Date.now() - this.swipeStartTime;
|
|
343
|
+
const distance = Math.abs(deltaX);
|
|
344
|
+
const velocity = distance / deltaTime;
|
|
345
|
+
// Only consider horizontal swipes (vertical movement should be less than horizontal)
|
|
346
|
+
if (Math.abs(deltaY) > Math.abs(deltaX)) {
|
|
347
|
+
this.resetSwipe();
|
|
348
|
+
return;
|
|
349
|
+
}
|
|
350
|
+
// Check if swipe meets threshold requirements
|
|
351
|
+
if (distance >= this.SWIPE_THRESHOLD ||
|
|
352
|
+
velocity >= this.SWIPE_VELOCITY_THRESHOLD) {
|
|
353
|
+
if (!this.open) {
|
|
354
|
+
// Opening swipe: from left edge going right, or from right edge going left
|
|
355
|
+
const isOpeningSwipe = (this.side === 'left' && deltaX > 0) ||
|
|
356
|
+
(this.side === 'right' && deltaX < 0);
|
|
357
|
+
if (isOpeningSwipe && !this.undismissable) {
|
|
358
|
+
this.show();
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
else {
|
|
362
|
+
// Closing swipe: towards the edge
|
|
363
|
+
const isClosingSwipe = (this.side === 'left' && deltaX < 0) ||
|
|
364
|
+
(this.side === 'right' && deltaX > 0);
|
|
365
|
+
if (isClosingSwipe && !this.undismissable) {
|
|
366
|
+
this.close();
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
this.resetSwipe();
|
|
371
|
+
}
|
|
372
|
+
/**
|
|
373
|
+
* Resets swipe tracking state.
|
|
374
|
+
*/
|
|
375
|
+
resetSwipe() {
|
|
376
|
+
this.swipeStartX = null;
|
|
377
|
+
this.swipeStartY = null;
|
|
378
|
+
this.swipeStartTime = null;
|
|
379
|
+
this.isSwiping = false;
|
|
380
|
+
}
|
|
381
|
+
//#endregion LISTENERS
|
|
382
|
+
/****************************************************************************/
|
|
383
|
+
//#region LIFECYCLE
|
|
384
|
+
/**
|
|
385
|
+
* Lifecycle method that runs before the component loads.
|
|
386
|
+
* Initializes the trigger, header, and footer elements by finding them in the component's children.
|
|
387
|
+
* Elements are found either by their slot attribute or by their tag name (for drawer header/footer)
|
|
388
|
+
*/
|
|
389
|
+
componentWillLoad() {
|
|
390
|
+
this.triggerElement = Array.from(this.el.children).find(child => {
|
|
391
|
+
return child.getAttribute('slot') === 'trigger';
|
|
392
|
+
});
|
|
393
|
+
this.headerElement = Array.from(this.el.children).find(child => {
|
|
394
|
+
return (child.getAttribute('slot') === 'header' ||
|
|
395
|
+
child.tagName.toLowerCase() === 'nv-drawerheader');
|
|
396
|
+
});
|
|
397
|
+
this.footerElement = Array.from(this.el.children).find(child => {
|
|
398
|
+
return (child.getAttribute('slot') === 'footer' ||
|
|
399
|
+
child.tagName.toLowerCase() === 'nv-drawerfooter');
|
|
400
|
+
});
|
|
401
|
+
// Initial form check
|
|
402
|
+
this.checkForForm();
|
|
403
|
+
}
|
|
404
|
+
componentWillUpdate() {
|
|
405
|
+
this.attachEventListeners();
|
|
406
|
+
}
|
|
407
|
+
componentDidLoad() {
|
|
408
|
+
if (this.open) {
|
|
409
|
+
this.show();
|
|
410
|
+
}
|
|
411
|
+
// Only set autofocus if the prop is true and no element already has autofocus
|
|
412
|
+
if (this.autofocus && !this.dialogElement.querySelector('[autofocus]')) {
|
|
413
|
+
this.setAutofocus();
|
|
414
|
+
}
|
|
415
|
+
this.attachEventListeners();
|
|
416
|
+
// Additional form check in case form was added after initial load
|
|
417
|
+
this.checkForForm();
|
|
418
|
+
// this.setupContentBodyListeners();
|
|
419
|
+
}
|
|
420
|
+
disconnectedCallback() {
|
|
421
|
+
if (this.triggerElement && !this.eventsAttached && !this.controlled) {
|
|
422
|
+
events_utils.removeEventListeners(this.triggerClickEvents, this.triggerElement, this);
|
|
423
|
+
this.eventsAttached = false;
|
|
424
|
+
}
|
|
425
|
+
this.allowScroll();
|
|
426
|
+
}
|
|
427
|
+
//#endregion LIFECYCLE
|
|
428
|
+
/****************************************************************************/
|
|
429
|
+
//#region RENDER
|
|
430
|
+
render() {
|
|
431
|
+
const hasForm = this.form || this.el.querySelector('form');
|
|
432
|
+
const state = this.open ? 'open' : 'closed';
|
|
433
|
+
return (index.h(index.Host, { key: 'de12ca46afd89b287fc3f2b28e3f6ca79d328338' }, index.h("slot", { key: 'e7568c48a2a676d0f063831c769c1b4dfaee0925', name: "trigger" }), index.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.clsx({ [`side-${this.side}`]: true }), "data-state": state }, index.h("div", { key: '0b9c6fec78844a1e64b33a7bbab62ee44ac0d7bd', class: "backdrop", ref: el => (this.backdropElement = el) }, index.h("div", { key: 'c74cb4b717f232b4622bd9391027c7b048e786e9', class: clsx.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 && (index.h("nv-button", { key: 'f9c03557a3ef3bb1d34e2b764d70a57cfd52dea3', class: "close-button", emphasis: "lower", size: "sm", onClick: this.handleDrawerClose, "aria-label": "Close drawer" }, index.h("nv-icon", { key: '5c0ea22963bad0bb84eb58e9ad26ebfca6b11b94', name: "x", size: "sm" }))), this.headerElement ? (index.h("slot", { name: "header" })) : (index.h("nv-drawerheader", { id: "drawer-header" })), index.h("div", { key: '813c7b985c6f75faa1fffc56e198957194bda87e', class: "content-body", id: "drawer-content" }, index.h("slot", { key: 'e70eefb8a94ae5e7eff32d5eb0446fba5c56065a' })), this.footerElement ? (index.h("slot", { name: "footer" })) : (index.h("nv-drawerfooter", { form: this.form, primaryButtonType: hasForm ? constants.ButtonType.Submit : constants.ButtonType.Button, onDrawerCanceled: this.handleDrawerClose, undismissable: this.undismissable })))))));
|
|
434
|
+
}
|
|
435
|
+
get el() { return index.getElement(this); }
|
|
436
|
+
static get watchers() { return {
|
|
437
|
+
"open": ["handleDrawerOpenChange"]
|
|
438
|
+
}; }
|
|
439
|
+
};
|
|
440
|
+
NvDrawer.style = nvDrawerCss;
|
|
441
|
+
|
|
442
|
+
exports.nv_drawer = NvDrawer;
|
|
443
|
+
//# sourceMappingURL=nv-drawer.entry.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nv-drawer.entry.cjs.js","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"],"names":["useFade","useSlide","parallel","tabbable","addEventListeners","uuidv4","removeEventListeners","h","Host","clsx","ButtonType"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nv-drawerfooter.nv-drawerheader.entry.cjs.js","sources":["src/components/nv-drawerfooter/nv-drawerfooter.scss?tag=nv-drawerfooter","src/components/nv-drawerfooter/nv-drawerfooter.tsx","src/components/nv-drawerheader/nv-drawerheader.scss?tag=nv-drawerheader","src/components/nv-drawerheader/nv-drawerheader.tsx"],"sourcesContent":["nv-drawerfooter {\n display: flex;\n padding: var(--drawer-padding-y, var(--dialog-footer-padding-top)) var(--drawer-padding-x, var(--dialog-footer-padding-x))\n var(--drawer-padding-y, var(--dialog-footer-padding-bottom)) var(--drawer-padding-x, var(--dialog-footer-padding-x));\n\n justify-content: flex-end;\n align-items: flex-end;\n gap: var(--drawer-gap-y, var(--dialog-footer-gap-y));\n align-self: stretch;\n}","import {\n AttachInternals,\n Component,\n h,\n Host,\n Prop,\n Event,\n EventEmitter,\n Fragment,\n Element,\n} from '@stencil/core';\nimport { ButtonType } from '../../utils/constants';\n\n/**\n * @slot default - Custom content for the drawer footer. When provided, the default buttons will not be rendered.\n */\n@Component({\n tag: 'nv-drawerfooter',\n styleUrl: 'nv-drawerfooter.scss',\n shadow: false,\n formAssociated: true,\n})\nexport class NvDrawerfooter {\n @AttachInternals() internals: ElementInternals;\n @Element() el: HTMLNvDrawerfooterElement;\n private hasSlot = false;\n\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Disables the primary button, preventing user interaction.\n */\n @Prop({ reflect: true })\n readonly disabled: boolean = false;\n\n /**\n * Controls the visibility of the cancel button. When true, the cancel button is\n * hidden.\n */\n @Prop({ reflect: true })\n readonly undismissable: boolean = false;\n\n /**\n * Sets the leading icon for the primary button.\n */\n @Prop({ reflect: true })\n readonly leadingIcon?: string | null = null;\n\n /**\n * Sets the trailing icon for the primary button.\n */\n @Prop({ reflect: true })\n readonly trailingIcon?: string | null = null;\n\n /**\n * Sets the danger state for the primary button.\n */\n @Prop({ reflect: true })\n readonly danger: boolean = false;\n\n /**\n * Sets the label for the cancel button.\n */\n @Prop({ reflect: true })\n readonly cancelLabel: string | null = 'Cancel';\n\n /**\n * Sets the label for the primary button.\n */\n @Prop({ reflect: true })\n readonly primaryLabel: string | null = 'Primary';\n\n /**\n * Sets the type of the primary button. If using a form, this will default to\n * 'submit' if nothing passed.\n */\n @Prop({ reflect: true, mutable: true })\n primaryButtonType: `${ButtonType}`;\n\n /**\n * A form inside the drawer can be submitted through the drawer footer by\n * giving the form an id and passing that id to the form attribute.\n */\n @Prop({ reflect: true })\n readonly form?: string | null = null;\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emitted when the cancel button is clicked. This will close the drawer.\n */\n @Event({ bubbles: false })\n drawerCanceled: EventEmitter<void>;\n\n /**\n * Emitted when the primary button is clicked. This allows to handle the\n * primary action and potential data capture before closing the drawer.\n */\n @Event({ bubbles: false })\n drawerPrimaryClicked: EventEmitter<void>;\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region METHODS\n\n /**\n * Handles the primary action when the primary button is clicked.\n * @param {Event} event - The click event.\n */\n\n private handlePrimary = (event: Event) => {\n event.stopPropagation();\n this.drawerPrimaryClicked.emit();\n };\n\n /**\n * Handles the cancel action when the cancel button is clicked. This will close the drawer.\n * @param {Event} event - The click event.\n */\n private handleCancel = (event: Event) => {\n event.stopPropagation();\n this.drawerCanceled.emit();\n };\n\n //#endregion METHODS\n /****************************************************************************/\n //#region LIFECYCLE\n\n componentWillLoad() {\n // Check if there are any child elements that don't have a slot attribute\n this.hasSlot = Array.from(this.el.childNodes).some(node => {\n return (\n node.nodeType === Node.ELEMENT_NODE &&\n !(node as Element).hasAttribute('slot')\n );\n });\n }\n\n componentDidLoad() {\n // Set the default button type based on the form property\n this.primaryButtonType =\n this.primaryButtonType || this.form\n ? ButtonType.Submit\n : ButtonType.Button;\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region RENDER\n\n render() {\n return (\n <Host>\n {!this.hasSlot ? (\n <Fragment>\n {!this.undismissable && (\n <nv-button onClick={this.handleCancel} emphasis=\"low\" size=\"sm\">\n {this.cancelLabel}\n </nv-button>\n )}\n <nv-button\n onClick={this.handlePrimary}\n disabled={this.disabled}\n danger={this.danger}\n size=\"sm\"\n emphasis=\"high\"\n form={this.form}\n type={this.primaryButtonType}\n >\n {this.leadingIcon && (\n <nv-icon\n slot=\"leading-icon\"\n name={this.leadingIcon}\n size=\"sm\"\n />\n )}\n {this.primaryLabel}\n {this.trailingIcon && (\n <nv-icon\n slot=\"trailing-icon\"\n name={this.trailingIcon}\n size=\"sm\"\n />\n )}\n </nv-button>\n </Fragment>\n ) : (\n <slot></slot>\n )}\n </Host>\n );\n }\n\n //#endregion RENDER\n}\n","nv-drawerheader {\n padding: var(--drawer-padding-y, var(--dialog-header-padding-top))\n var(--drawer-padding-x, var(--dialog-header-padding-x))\n var(--drawer-padding-y, var(--dialog-header-padding-bottom))\n var(--drawer-padding-x, var(--dialog-header-padding-x));\n justify-content: space-between;\n align-items: flex-start;\n align-self: stretch;\n\n // Reset padding when custom content is provided via slot\n &:has(> div:not(.heading):not(.subheading)) {\n padding: 0;\n }\n\n // Ensure gradient backgrounds are visible\n > div[style*='gradient'] {\n background-attachment: local;\n }\n\n .heading {\n color: var(--color-content-high-text);\n\n\n /* heading/xs/medium */\n font-family: var(--font-family-default), var(--font-family-fallback), sans-serif;\n font-size: var(--font-size-lg);\n font-style: normal;\n font-weight: var(--font-weight-medium-emphasis);\n padding-right: var(--drawer-header-padding-right, var(--spacing-7));\n line-height: var(--leading-px-6); /* 133.333% */\n letter-spacing: var(--letter-spacing-heading-xs);\n }\n\n .subheading {\n color: var(--color-content-low-text);\n\n /* text/sm/regular */\n font-family: var(--font-family-default), var(--font-family-fallback), sans-serif;\n font-size: var(--font-size-sm);\n font-style: normal;\n font-weight: var(--font-weight-low-emphasis);\n line-height: var(--line-height-sm); /* 142.857% */\n }\n}","import { Component, Host, Prop, h, Element, Fragment } from '@stencil/core';\n\n/**\n * @slot default - Custom content for the drawer header. When provided, the default header will not be rendered.\n */\n@Component({\n tag: 'nv-drawerheader',\n styleUrl: 'nv-drawerheader.scss',\n shadow: false,\n})\nexport class NvDrawerheader {\n @Element() el: HTMLNvDrawerheaderElement;\n private hasSlot = false;\n\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Sets the heading text for the drawer.\n */\n @Prop({ reflect: true })\n readonly heading: string | null = 'Drawer Title';\n\n /**\n * Sets the subheading text for the drawer.\n */\n @Prop({ reflect: true })\n readonly subheading?: string | null = null;\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region LIFECYCLE\n\n componentWillLoad() {\n // Check if there are any child elements that don't have a slot attribute\n this.hasSlot = Array.from(this.el.childNodes).some(node => {\n return (\n node.nodeType === Node.ELEMENT_NODE &&\n !(node as Element).hasAttribute('slot')\n );\n });\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region RENDER\n\n render() {\n return (\n <Host>\n {!this.hasSlot ? (\n <Fragment>\n <div class=\"heading\">{this.heading}</div>\n <div class=\"subheading\">{this.subheading}</div>\n </Fragment>\n ) : (\n <slot></slot>\n )}\n </Host>\n );\n }\n\n //#endregion RENDER\n}\n"],"names":["ButtonType","h","Host","Fragment"],"mappings":"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"}
|