@nova-design-system/nova-webcomponents 3.28.0 → 3.30.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/{constants-BugGJYqL.js → constants-BSdCE1ZF.js} +5 -0
- package/dist/cjs/index-Bj9nnTVm.js +4856 -0
- package/dist/cjs/index.cjs.js +5 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/native.cjs.js +2 -2
- package/dist/cjs/nv-accordion-item.cjs.entry.js +3 -3
- package/dist/cjs/nv-accordion.cjs.entry.js +2 -2
- package/dist/cjs/nv-alert.cjs.entry.js +3 -3
- package/dist/cjs/nv-avatar.cjs.entry.js +3 -3
- package/dist/cjs/nv-badge_2.cjs.entry.js +8 -7
- package/dist/cjs/nv-breadcrumb.cjs.entry.js +2 -2
- package/dist/cjs/nv-breadcrumbs.cjs.entry.js +2 -2
- package/dist/cjs/nv-button.cjs.entry.js +3 -3
- package/dist/cjs/nv-buttongroup.cjs.entry.js +2 -2
- package/dist/cjs/nv-calendar.cjs.entry.js +4 -4
- package/dist/cjs/nv-col.cjs.entry.js +2 -2
- package/dist/cjs/nv-datagrid.cjs.entry.js +4 -4
- package/dist/cjs/nv-datagridcolumn.cjs.entry.js +2 -2
- package/dist/cjs/nv-datetest.cjs.entry.js +2 -2
- package/dist/cjs/nv-datetimetest.cjs.entry.js +1 -1
- package/dist/cjs/nv-dialog.cjs.entry.js +3 -3
- package/dist/cjs/nv-dialogfooter_2.cjs.entry.js +8 -6
- package/dist/cjs/nv-drawer.cjs.entry.js +3 -3
- package/dist/cjs/nv-drawerfooter_2.cjs.entry.js +6 -4
- package/dist/cjs/nv-fieldcheckbox.cjs.entry.js +5 -5
- package/dist/cjs/nv-fielddate.cjs.entry.js +8 -8
- package/dist/cjs/nv-fielddaterange.cjs.entry.js +8 -8
- package/dist/cjs/nv-fielddropdown.cjs.entry.js +6 -6
- package/dist/cjs/nv-fielddropdownitem.cjs.entry.js +2 -2
- package/dist/cjs/nv-fieldmultiselect.cjs.entry.js +115 -86
- package/dist/cjs/nv-fieldnumber.cjs.entry.js +6 -6
- package/dist/cjs/nv-fieldpassword.cjs.entry.js +6 -6
- package/dist/cjs/nv-fieldradio.cjs.entry.js +4 -4
- package/dist/cjs/nv-fieldselect.cjs.entry.js +7 -7
- package/dist/cjs/nv-fieldslider.cjs.entry.js +4 -4
- package/dist/cjs/nv-fieldtext.cjs.entry.js +6 -6
- package/dist/cjs/nv-fieldtextarea.cjs.entry.js +5 -5
- package/dist/cjs/nv-fieldtime.cjs.entry.js +16 -13
- package/dist/cjs/nv-icon.cjs.entry.js +3 -3
- package/dist/cjs/nv-iconbutton_2.cjs.entry.js +3 -3
- package/dist/cjs/nv-menu.cjs.entry.js +2 -2
- package/dist/cjs/nv-menuitem.cjs.entry.js +2 -2
- package/dist/cjs/nv-notification-bullet.cjs.entry.js +1 -1
- package/dist/cjs/nv-notification.cjs.entry.js +3 -3
- package/dist/cjs/nv-notificationcontainer.cjs.entry.js +2 -2
- package/dist/cjs/nv-pagination-nav.cjs.entry.js +2 -2
- package/dist/cjs/nv-paginationtable.cjs.entry.js +19 -3
- package/dist/cjs/nv-popover.cjs.entry.js +2 -2
- package/dist/cjs/nv-row.cjs.entry.js +2 -2
- package/dist/cjs/nv-sidebar.cjs.entry.js +178 -4
- package/dist/cjs/nv-sidebarcontent.cjs.entry.js +2 -2
- package/dist/cjs/nv-sidebardivider.cjs.entry.js +2 -2
- package/dist/cjs/nv-sidebarfooter.cjs.entry.js +2 -2
- package/dist/cjs/nv-sidebargroup.cjs.entry.js +2 -2
- package/dist/cjs/nv-sidebarheader.cjs.entry.js +2 -2
- package/dist/cjs/nv-sidebarlogo.cjs.entry.js +2 -2
- package/dist/cjs/nv-sidebarnavitem.cjs.entry.js +3 -3
- package/dist/cjs/nv-sidebarnavsubitem.cjs.entry.js +2 -2
- package/dist/cjs/nv-split.cjs.entry.js +2 -2
- package/dist/cjs/nv-stack.cjs.entry.js +2 -2
- package/dist/cjs/nv-statusindicator.cjs.entry.js +39 -0
- package/dist/cjs/nv-table.cjs.entry.js +3 -3
- package/dist/cjs/nv-tableheader.cjs.entry.js +2 -2
- package/dist/cjs/nv-tag.cjs.entry.js +82 -0
- package/dist/cjs/nv-timetest.cjs.entry.js +2 -2
- package/dist/cjs/nv-toggle.cjs.entry.js +3 -3
- package/dist/cjs/nv-togglebutton.cjs.entry.js +2 -2
- package/dist/cjs/nv-togglebuttongroup.cjs.entry.js +2 -2
- package/dist/cjs/nv-tooltip.cjs.entry.js +2 -2
- package/dist/collection/collection-manifest.json +2 -0
- package/dist/collection/components/nv-accordion/nv-accordion.js +1 -1
- package/dist/collection/components/nv-accordion-item/nv-accordion-item.js +2 -2
- package/dist/collection/components/nv-alert/nv-alert.docs.js +1 -1
- package/dist/collection/components/nv-alert/nv-alert.js +15 -5
- package/dist/collection/components/nv-avatar/nv-avatar.js +1 -1
- package/dist/collection/components/nv-badge/nv-badge.js +32 -11
- package/dist/collection/components/nv-breadcrumb/nv-breadcrumb.js +1 -1
- package/dist/collection/components/nv-breadcrumbs/nv-breadcrumbs.js +1 -1
- package/dist/collection/components/nv-button/nv-button.js +1 -1
- package/dist/collection/components/nv-buttongroup/nv-buttongroup.js +1 -1
- package/dist/collection/components/nv-calendar/nv-calendar.js +2 -2
- package/dist/collection/components/nv-col/nv-col.docs.js +2 -1
- package/dist/collection/components/nv-col/nv-col.js +2 -1
- package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js +2 -2
- package/dist/collection/components/nv-datagrid/nv-datagrid.js +2 -2
- package/dist/collection/components/nv-datagridcolumn/nv-datagridcolumn.js +1 -1
- package/dist/collection/components/nv-datetest/nv-datetest.js +1 -1
- package/dist/collection/components/nv-dialog/nv-dialog.js +1 -1
- package/dist/collection/components/nv-dialogfooter/nv-dialogfooter.js +35 -13
- package/dist/collection/components/nv-dialogheader/nv-dialogheader.js +1 -1
- package/dist/collection/components/nv-drawer/nv-drawer.js +1 -1
- package/dist/collection/components/nv-drawerfooter/nv-drawerfooter.js +31 -9
- package/dist/collection/components/nv-drawerheader/nv-drawerheader.js +1 -1
- package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.docs.js +1 -1
- package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js +4 -4
- package/dist/collection/components/nv-fielddate/nv-fielddate.docs.js +1 -1
- package/dist/collection/components/nv-fielddate/nv-fielddate.js +6 -6
- package/dist/collection/components/nv-fielddate/styles/nv-fielddate.css +3 -0
- package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.docs.js +1 -1
- package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js +6 -6
- package/dist/collection/components/nv-fielddaterange/styles/nv-fielddaterange.css +3 -0
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js +1 -1
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js +4 -4
- package/dist/collection/components/nv-fielddropdown/styles/nv-fielddropdown.css +3 -0
- package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.docs.js +1 -1
- package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.js +1 -1
- package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.css +1 -1
- package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.docs.js +2 -2
- package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.js +1 -1
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js +1 -1
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js +119 -84
- package/dist/collection/components/nv-fieldmultiselect/styles/nv-fieldmultiselect.css +13 -2
- package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.css +3 -0
- package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.docs.js +1 -1
- package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js +4 -4
- package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.css +3 -0
- package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.docs.js +1 -1
- package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js +4 -4
- package/dist/collection/components/nv-fieldradio/nv-fieldradio.docs.js +1 -1
- package/dist/collection/components/nv-fieldradio/nv-fieldradio.js +3 -3
- package/dist/collection/components/nv-fieldselect/nv-fieldselect.docs.js +1 -1
- package/dist/collection/components/nv-fieldselect/nv-fieldselect.js +5 -5
- package/dist/collection/components/nv-fieldselect/styles/nv-fieldselect.css +3 -0
- package/dist/collection/components/nv-fieldslider/nv-fieldslider.docs.js +1 -1
- package/dist/collection/components/nv-fieldslider/nv-fieldslider.js +3 -3
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.css +3 -0
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.docs.js +3 -2
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.js +4 -4
- package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.css +3 -0
- package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.docs.js +1 -1
- package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js +3 -3
- package/dist/collection/components/nv-fieldtime/nv-fieldtime.docs.js +1 -1
- package/dist/collection/components/nv-fieldtime/nv-fieldtime.js +13 -10
- package/dist/collection/components/nv-fieldtime/styles/nv-fieldtime.css +3 -0
- package/dist/collection/components/nv-icon/nv-icon.js +7 -4
- package/dist/collection/components/nv-iconbutton/nv-iconbutton.js +7 -4
- package/dist/collection/components/nv-loader/nv-loader.js +1 -1
- package/dist/collection/components/nv-menu/nv-menu.js +1 -1
- package/dist/collection/components/nv-menuitem/nv-menuitem.js +5 -2
- package/dist/collection/components/nv-notification/nv-notification.js +15 -5
- package/dist/collection/components/nv-notificationcontainer/nv-notificationcontainer.js +1 -1
- package/dist/collection/components/nv-pagination-nav/nv-pagination-nav.js +1 -1
- package/dist/collection/components/nv-paginationtable/nv-paginationtable.js +6 -3
- package/dist/collection/components/nv-paginationtable/nv-paginationtable.utils.js +13 -0
- package/dist/collection/components/nv-paginationtable/test/nv-paginationtable.utils.test.js +26 -1
- package/dist/collection/components/nv-popover/nv-popover.js +1 -1
- package/dist/collection/components/nv-row/nv-row.docs.js +1 -0
- package/dist/collection/components/nv-row/nv-row.js +2 -1
- package/dist/collection/components/nv-sidebar/nv-sidebar.docs.js +7 -0
- package/dist/collection/components/nv-sidebar/nv-sidebar.js +274 -2
- package/dist/collection/components/nv-sidebar/styles/nv-sidebar.css +26 -0
- 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 +7 -4
- package/dist/collection/components/nv-sidebarnavsubitem/nv-sidebarnavsubitem.js +1 -1
- package/dist/collection/components/nv-split/nv-split.js +2 -1
- package/dist/collection/components/nv-stack/nv-stack.js +1 -1
- package/dist/collection/components/nv-statusindicator/nv-statusindicator.css +73 -0
- package/dist/collection/components/nv-statusindicator/nv-statusindicator.docs.js +34 -0
- package/dist/collection/components/nv-statusindicator/nv-statusindicator.js +122 -0
- package/dist/collection/components/nv-table/nv-table.js +1 -1
- package/dist/collection/components/nv-table/styles/nv-table.css +37 -1
- package/dist/collection/components/nv-tableheader/nv-tableheader.js +1 -1
- package/dist/collection/components/nv-tag/nv-tag.css +228 -0
- package/dist/collection/components/nv-tag/nv-tag.docs.js +114 -0
- package/dist/collection/components/nv-tag/nv-tag.js +251 -0
- package/dist/collection/components/nv-timetest/nv-timetest.js +1 -1
- package/dist/collection/components/nv-toggle/nv-toggle.docs.js +1 -1
- package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
- package/dist/collection/components/nv-togglebutton/nv-togglebutton.docs.js +2 -2
- package/dist/collection/components/nv-togglebutton/nv-togglebutton.js +1 -1
- package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.js +1 -1
- package/dist/collection/components/nv-tooltip/nv-tooltip.js +1 -1
- package/dist/collection/utils/constants.js +5 -0
- package/dist/components/index.js +1 -1
- package/dist/components/nv-accordion-item.js +1 -1
- package/dist/components/nv-accordion.js +1 -1
- package/dist/components/nv-alert.js +1 -1
- package/dist/components/nv-avatar.js +1 -1
- package/dist/components/nv-badge.js +1 -1
- package/dist/components/nv-breadcrumb.js +1 -1
- package/dist/components/nv-breadcrumbs.js +1 -1
- package/dist/components/nv-button.js +1 -1
- package/dist/components/nv-buttongroup.js +1 -1
- package/dist/components/nv-calendar.js +1 -1
- package/dist/components/nv-col.js +1 -1
- package/dist/components/nv-datagrid.js +1 -1
- package/dist/components/nv-datagridcolumn.js +1 -1
- package/dist/components/nv-datetest.js +1 -1
- package/dist/components/nv-datetimetest.js +1 -1
- package/dist/components/nv-dialog.js +1 -1
- package/dist/components/nv-dialogfooter.js +1 -1
- package/dist/components/nv-dialogheader.js +1 -1
- package/dist/components/nv-drawer.js +1 -1
- package/dist/components/nv-drawerfooter.js +1 -1
- package/dist/components/nv-drawerheader.js +1 -1
- package/dist/components/nv-fieldcheckbox.js +1 -1
- package/dist/components/nv-fielddate.js +1 -1
- package/dist/components/nv-fielddaterange.js +1 -1
- package/dist/components/nv-fielddropdown.js +1 -1
- package/dist/components/nv-fielddropdownitem.js +1 -1
- package/dist/components/nv-fielddropdownitemcheck.js +1 -1
- package/dist/components/nv-fieldmultiselect.js +1 -1
- package/dist/components/nv-fieldnumber.js +1 -1
- package/dist/components/nv-fieldpassword.js +1 -1
- package/dist/components/nv-fieldradio.js +1 -1
- package/dist/components/nv-fieldselect.js +1 -1
- package/dist/components/nv-fieldslider.js +1 -1
- package/dist/components/nv-fieldtext.js +1 -1
- package/dist/components/nv-fieldtextarea.js +1 -1
- package/dist/components/nv-fieldtime.js +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 +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 +1 -1
- package/dist/components/nv-notificationcontainer.js +1 -1
- package/dist/components/nv-pagination-nav.js +1 -1
- package/dist/components/nv-paginationtable.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 +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 +1 -1
- package/dist/components/nv-sidebarnavsubitem.js +1 -1
- package/dist/components/nv-split.js +1 -1
- package/dist/components/nv-stack.js +1 -1
- package/dist/components/nv-statusindicator.d.ts +11 -0
- package/dist/components/nv-statusindicator.js +1 -0
- package/dist/components/nv-table.js +1 -1
- package/dist/components/nv-tableheader.js +1 -1
- package/dist/components/nv-tag.d.ts +11 -0
- package/dist/components/nv-tag.js +1 -0
- package/dist/components/nv-timetest.js +1 -1
- package/dist/components/nv-toggle.js +1 -1
- package/dist/components/nv-togglebutton.js +1 -1
- package/dist/components/nv-togglebuttongroup.js +1 -1
- package/dist/components/nv-tooltip.js +1 -1
- package/dist/components/{p-Du3Fh0jQ.js → p-B4qcUV0M.js} +1 -1
- package/dist/components/p-B8yJMa0S.js +1 -0
- package/dist/components/{p-xrXEz2WP.js → p-BU3AWnne.js} +1 -1
- package/dist/components/{p-qkNH2RHl.js → p-BYrgllP3.js} +1 -1
- package/dist/components/p-BhRpSdkR.js +1 -0
- package/dist/components/{p-C5J7jtrC.js → p-Bu90dktV.js} +1 -1
- package/dist/components/{p-BwYt1BAb.js → p-CObbk0-q.js} +1 -1
- package/dist/components/{p-DlOgBZa8.js → p-CTISxdir.js} +2 -2
- package/dist/components/{p-nzxGC8BS.js → p-Cj6urNtm.js} +1 -1
- package/dist/components/{p-DE792Sds.js → p-Cx5CLy9v.js} +1 -1
- package/dist/components/{p-CAGzfU3O.js → p-Cyn4-37z.js} +1 -1
- package/dist/components/p-CzRJpv7x.js +1 -0
- package/dist/components/{p-CKFXHAaU.js → p-CzRlra4z.js} +1 -1
- package/dist/components/{p-DGj-fiRX.js → p-D54x8OFu.js} +1 -1
- package/dist/components/{p-DUaenjr8.js → p-DP_K3tkj.js} +1 -1
- package/dist/components/{p-VXpV-BUK.js → p-DQuJvZ4Z.js} +1 -1
- package/dist/components/{p-DwtLxfU5.js → p-DZdOQQrW.js} +1 -1
- package/dist/components/{p-Co8IghI-.js → p-Dg-Ac5i4.js} +1 -1
- package/dist/components/p-DiwYO24j.js +2 -0
- package/dist/components/p-GDyaHbt9.js +1 -0
- package/dist/components/{p-h3cPA0Cx.js → p-L7U51TAH.js} +1 -1
- package/dist/components/{p-CLzCfsnq.js → p-MLanePUO.js} +1 -1
- package/dist/components/p-gOKBmbgZ.js +1 -0
- package/dist/components/{p-f8OUzde-.js → p-yPMU6HZQ.js} +1 -1
- package/dist/esm/{constants-BReL3Lsa.js → constants-gOKBmbgZ.js} +6 -1
- package/dist/esm/index-CTmBvINI.js +4820 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/native.js +3 -3
- package/dist/esm/nv-accordion-item.entry.js +3 -3
- package/dist/esm/nv-accordion.entry.js +2 -2
- package/dist/esm/nv-alert.entry.js +3 -3
- package/dist/esm/nv-avatar.entry.js +3 -3
- package/dist/esm/nv-badge_2.entry.js +8 -7
- package/dist/esm/nv-breadcrumb.entry.js +2 -2
- package/dist/esm/nv-breadcrumbs.entry.js +2 -2
- package/dist/esm/nv-button.entry.js +3 -3
- package/dist/esm/nv-buttongroup.entry.js +2 -2
- package/dist/esm/nv-calendar.entry.js +4 -4
- package/dist/esm/nv-col.entry.js +2 -2
- package/dist/esm/nv-datagrid.entry.js +4 -4
- package/dist/esm/nv-datagridcolumn.entry.js +2 -2
- package/dist/esm/nv-datetest.entry.js +2 -2
- package/dist/esm/nv-datetimetest.entry.js +1 -1
- package/dist/esm/nv-dialog.entry.js +3 -3
- package/dist/esm/nv-dialogfooter_2.entry.js +8 -6
- package/dist/esm/nv-drawer.entry.js +3 -3
- package/dist/esm/nv-drawerfooter_2.entry.js +6 -4
- package/dist/esm/nv-fieldcheckbox.entry.js +5 -5
- package/dist/esm/nv-fielddate.entry.js +8 -8
- package/dist/esm/nv-fielddaterange.entry.js +8 -8
- package/dist/esm/nv-fielddropdown.entry.js +6 -6
- package/dist/esm/nv-fielddropdownitem.entry.js +2 -2
- package/dist/esm/nv-fieldmultiselect.entry.js +115 -86
- package/dist/esm/nv-fieldnumber.entry.js +6 -6
- package/dist/esm/nv-fieldpassword.entry.js +6 -6
- package/dist/esm/nv-fieldradio.entry.js +4 -4
- package/dist/esm/nv-fieldselect.entry.js +7 -7
- package/dist/esm/nv-fieldslider.entry.js +4 -4
- package/dist/esm/nv-fieldtext.entry.js +6 -6
- package/dist/esm/nv-fieldtextarea.entry.js +5 -5
- package/dist/esm/nv-fieldtime.entry.js +16 -13
- package/dist/esm/nv-icon.entry.js +3 -3
- package/dist/esm/nv-iconbutton_2.entry.js +3 -3
- package/dist/esm/nv-menu.entry.js +2 -2
- package/dist/esm/nv-menuitem.entry.js +2 -2
- package/dist/esm/nv-notification-bullet.entry.js +1 -1
- package/dist/esm/nv-notification.entry.js +3 -3
- package/dist/esm/nv-notificationcontainer.entry.js +2 -2
- package/dist/esm/nv-pagination-nav.entry.js +2 -2
- package/dist/esm/nv-paginationtable.entry.js +19 -3
- package/dist/esm/nv-popover.entry.js +2 -2
- package/dist/esm/nv-row.entry.js +2 -2
- package/dist/esm/nv-sidebar.entry.js +178 -4
- package/dist/esm/nv-sidebarcontent.entry.js +2 -2
- package/dist/esm/nv-sidebardivider.entry.js +2 -2
- package/dist/esm/nv-sidebarfooter.entry.js +2 -2
- package/dist/esm/nv-sidebargroup.entry.js +2 -2
- package/dist/esm/nv-sidebarheader.entry.js +2 -2
- package/dist/esm/nv-sidebarlogo.entry.js +2 -2
- package/dist/esm/nv-sidebarnavitem.entry.js +3 -3
- package/dist/esm/nv-sidebarnavsubitem.entry.js +2 -2
- package/dist/esm/nv-split.entry.js +2 -2
- package/dist/esm/nv-stack.entry.js +2 -2
- package/dist/esm/nv-statusindicator.entry.js +37 -0
- package/dist/esm/nv-table.entry.js +3 -3
- package/dist/esm/nv-tableheader.entry.js +2 -2
- package/dist/esm/nv-tag.entry.js +80 -0
- package/dist/esm/nv-timetest.entry.js +2 -2
- package/dist/esm/nv-toggle.entry.js +3 -3
- package/dist/esm/nv-togglebutton.entry.js +2 -2
- package/dist/esm/nv-togglebuttongroup.entry.js +2 -2
- package/dist/esm/nv-tooltip.entry.js +2 -2
- package/dist/lib/generators/docs-blazor.js +7 -1
- package/dist/native/index.esm.js +1 -1
- package/dist/native/native.css +5711 -1
- package/dist/native/native.esm.js +1 -1
- package/dist/native/{p-0bb64497.entry.js → p-04011d0f.entry.js} +1 -1
- package/dist/native/{p-4bf96114.entry.js → p-0c65e726.entry.js} +1 -1
- package/dist/native/{p-767ee0fc.entry.js → p-10dee67d.entry.js} +1 -1
- package/dist/native/p-16037ec8.entry.js +1 -0
- package/dist/native/{p-63f2f87f.entry.js → p-189647e4.entry.js} +1 -1
- package/dist/native/{p-213c5836.entry.js → p-270bf467.entry.js} +1 -1
- package/dist/native/{p-89348af5.entry.js → p-287c67e1.entry.js} +1 -1
- package/dist/native/p-298d893d.entry.js +1 -0
- package/dist/native/{p-8e1bcadc.entry.js → p-29acf903.entry.js} +1 -1
- package/dist/native/{p-05f7bad5.entry.js → p-2afcd5e4.entry.js} +1 -1
- package/dist/native/p-33889f52.entry.js +1 -0
- package/dist/native/p-34d30b90.entry.js +1 -0
- package/dist/native/p-352854eb.entry.js +1 -0
- package/dist/native/{p-cfa0eb58.entry.js → p-37c42bed.entry.js} +1 -1
- package/dist/native/{p-5ea697a7.entry.js → p-3969a700.entry.js} +1 -1
- package/dist/native/{p-e3fb16af.entry.js → p-3f888601.entry.js} +1 -1
- package/dist/native/{p-291b297d.entry.js → p-40000df1.entry.js} +1 -1
- package/dist/native/p-410c21e3.entry.js +1 -0
- package/dist/native/{p-1e03fc3c.entry.js → p-4514a6a4.entry.js} +1 -1
- package/dist/native/{p-b3477504.entry.js → p-49745be2.entry.js} +1 -1
- package/dist/native/{p-7aa4605d.entry.js → p-5375ddc6.entry.js} +1 -1
- package/dist/native/p-5690757b.entry.js +1 -0
- package/dist/native/p-5c321768.entry.js +1 -0
- package/dist/native/{p-a16f8a14.entry.js → p-5df9c196.entry.js} +1 -1
- package/dist/native/{p-2af6d988.entry.js → p-5ef11914.entry.js} +1 -1
- package/dist/native/{p-c5d97054.entry.js → p-64649214.entry.js} +1 -1
- package/dist/native/{p-9709c7d5.entry.js → p-6bb02337.entry.js} +1 -1
- package/dist/native/{p-3c4114b8.entry.js → p-6ccc84c8.entry.js} +1 -1
- package/dist/native/{p-0fe84123.entry.js → p-6dab2e90.entry.js} +1 -1
- package/dist/native/{p-fd5e27ae.entry.js → p-728f09d5.entry.js} +1 -1
- package/dist/native/{p-72d8cb56.entry.js → p-7b1c369b.entry.js} +1 -1
- package/dist/native/p-7b3853be.entry.js +1 -0
- package/dist/native/p-7c9e1f01.entry.js +1 -0
- package/dist/native/p-7cbc09f0.entry.js +1 -0
- package/dist/native/p-859b24ed.entry.js +1 -0
- package/dist/native/{p-083b39c5.entry.js → p-8decb323.entry.js} +1 -1
- package/dist/native/{p-12a8443b.entry.js → p-8dfcfb72.entry.js} +1 -1
- package/dist/native/p-8faf3e05.entry.js +1 -0
- package/dist/native/p-915fe20c.entry.js +1 -0
- package/dist/native/p-91cb5c65.entry.js +1 -0
- package/dist/native/{p-1029a266.entry.js → p-93d2bfab.entry.js} +1 -1
- package/dist/native/{p-f9612edf.entry.js → p-9affde0d.entry.js} +1 -1
- package/dist/native/p-CTmBvINI.js +2 -0
- package/dist/native/{p-f7522dac.entry.js → p-a1ef6740.entry.js} +1 -1
- package/dist/native/{p-d3e66306.entry.js → p-b2c31350.entry.js} +1 -1
- package/dist/native/p-b2ef61bc.entry.js +1 -0
- package/dist/native/{p-67e0680e.entry.js → p-b7a10751.entry.js} +1 -1
- package/dist/native/p-b88dcd21.entry.js +1 -0
- package/dist/native/p-b99ad8a7.entry.js +1 -0
- package/dist/native/{p-fab2f2b3.entry.js → p-be2e4cf0.entry.js} +1 -1
- package/dist/native/{p-493c1bb5.entry.js → p-befb5e4e.entry.js} +1 -1
- package/dist/native/{p-dc2ce8ee.entry.js → p-c1faed1f.entry.js} +1 -1
- package/dist/native/{p-4ac8181c.entry.js → p-c305f1c6.entry.js} +1 -1
- package/dist/native/{p-7c00f6da.entry.js → p-c5261442.entry.js} +1 -1
- package/dist/native/{p-90b8b889.entry.js → p-cd21a60d.entry.js} +1 -1
- package/dist/native/{p-d8120afd.entry.js → p-d0dfa700.entry.js} +1 -1
- package/dist/native/{p-58966e0f.entry.js → p-d4d04530.entry.js} +1 -1
- package/dist/native/{p-5c003e50.entry.js → p-dc000c85.entry.js} +1 -1
- package/dist/native/p-df3ab86a.entry.js +1 -0
- package/dist/native/p-dfb46af1.entry.js +1 -0
- package/dist/native/{p-6d8d2088.entry.js → p-dfd364de.entry.js} +1 -1
- package/dist/native/{p-644ecff8.entry.js → p-e7a73a7c.entry.js} +1 -1
- package/dist/native/p-eab25bfa.entry.js +1 -0
- package/dist/native/{p-95a9d385.entry.js → p-ec919a10.entry.js} +1 -1
- package/dist/native/{p-37c41059.entry.js → p-ffc9e2a0.entry.js} +1 -1
- package/dist/native/p-gOKBmbgZ.js +1 -0
- package/dist/types/components/nv-alert/nv-alert.d.ts +3 -1
- package/dist/types/components/nv-badge/nv-badge.d.ts +6 -3
- package/dist/types/components/nv-col/nv-col.d.ts +1 -0
- package/dist/types/components/nv-dialogfooter/nv-dialogfooter.d.ts +5 -2
- package/dist/types/components/nv-drawerfooter/nv-drawerfooter.d.ts +5 -2
- package/dist/types/components/nv-fieldmultiselect/nv-fieldmultiselect.d.ts +16 -11
- package/dist/types/components/nv-icon/nv-icon.d.ts +2 -1
- package/dist/types/components/nv-iconbutton/nv-iconbutton.d.ts +2 -1
- package/dist/types/components/nv-menuitem/nv-menuitem.d.ts +1 -0
- package/dist/types/components/nv-notification/nv-notification.d.ts +3 -1
- package/dist/types/components/nv-paginationtable/nv-paginationtable.utils.d.ts +9 -0
- package/dist/types/components/nv-row/nv-row.d.ts +1 -0
- package/dist/types/components/nv-sidebar/nv-sidebar.d.ts +43 -0
- package/dist/types/components/nv-sidebarnavitem/nv-sidebarnavitem.d.ts +2 -1
- package/dist/types/components/nv-split/nv-split.d.ts +1 -0
- package/dist/types/components/nv-statusindicator/nv-statusindicator.d.ts +22 -0
- package/dist/types/components/nv-statusindicator/nv-statusindicator.docs.d.ts +4 -0
- package/dist/types/components/nv-tag/nv-tag.d.ts +64 -0
- package/dist/types/components/nv-tag/nv-tag.docs.d.ts +4 -0
- package/dist/types/components.d.ts +286 -30
- package/dist/types/index.d.ts +1 -1
- package/dist/types/utils/constants.d.ts +4 -0
- package/dist/vscode-data.json +18399 -2634
- package/hydrate/index.js +606 -220
- package/hydrate/index.mjs +606 -220
- package/package.json +21 -9
- package/dist/cjs/index-Cfkoz1kc.js +0 -4848
- package/dist/components/p-6nAIGZFL.js +0 -2
- package/dist/components/p-BReL3Lsa.js +0 -1
- package/dist/components/p-CnkB4kvn.js +0 -1
- package/dist/components/p-CrRawrjU.js +0 -1
- package/dist/components/p-D2C_Qr5O.js +0 -1
- package/dist/components/p-DVFofrTe.js +0 -1
- package/dist/esm/index-BCjiE1MF.js +0 -4812
- package/dist/native/p-148c1d3e.entry.js +0 -1
- package/dist/native/p-1d7a27bb.entry.js +0 -1
- package/dist/native/p-25ef7329.entry.js +0 -1
- package/dist/native/p-343c04db.entry.js +0 -1
- package/dist/native/p-46267895.entry.js +0 -1
- package/dist/native/p-544b34d4.entry.js +0 -1
- package/dist/native/p-5ce3d30b.entry.js +0 -1
- package/dist/native/p-5ef0ed10.entry.js +0 -1
- package/dist/native/p-75a2a2ac.entry.js +0 -1
- package/dist/native/p-7d164a7a.entry.js +0 -1
- package/dist/native/p-7ec28d5d.entry.js +0 -1
- package/dist/native/p-9fc95cf3.entry.js +0 -1
- package/dist/native/p-BCjiE1MF.js +0 -2
- package/dist/native/p-BReL3Lsa.js +0 -1
- package/dist/native/p-ac765e6a.entry.js +0 -1
- package/dist/native/p-c2c826a4.entry.js +0 -1
- package/dist/native/p-c56ffa82.entry.js +0 -1
- package/dist/native/p-d5f5a6e1.entry.js +0 -1
- package/dist/native/p-e46c35a0.entry.js +0 -1
- package/dist/native/p-ec23ce93.entry.js +0 -1
- package/dist/native/p-fb34fc7d.entry.js +0 -1
|
@@ -241,23 +241,6 @@ export class NvFieldmultiselect {
|
|
|
241
241
|
this.resetFilter();
|
|
242
242
|
this.hasFilterResults = true;
|
|
243
243
|
};
|
|
244
|
-
/**
|
|
245
|
-
* Handle input blur for options mode.
|
|
246
|
-
*/
|
|
247
|
-
this.handleInputBlurOptions = () => {
|
|
248
|
-
setTimeout(() => {
|
|
249
|
-
if (this.preventBlurClose) {
|
|
250
|
-
this.preventBlurClose = false;
|
|
251
|
-
return; // Don't close the popover
|
|
252
|
-
}
|
|
253
|
-
if (!this.el.contains(document.activeElement)) {
|
|
254
|
-
this.open = false; // Close the popover on blur
|
|
255
|
-
if (this.filterable) {
|
|
256
|
-
this.clearFilterText(); // Clear filter text on blur
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
}, 150);
|
|
260
|
-
};
|
|
261
244
|
/**
|
|
262
245
|
* Handle click on the input container for options mode.
|
|
263
246
|
* @param {MouseEvent} event - The click event.
|
|
@@ -361,23 +344,6 @@ export class NvFieldmultiselect {
|
|
|
361
344
|
}
|
|
362
345
|
this.open = true;
|
|
363
346
|
};
|
|
364
|
-
/**
|
|
365
|
-
* Handle input blur for slots mode.
|
|
366
|
-
*/
|
|
367
|
-
this.handleInputBlurSlots = () => {
|
|
368
|
-
setTimeout(() => {
|
|
369
|
-
if (this.preventBlurClose) {
|
|
370
|
-
this.preventBlurClose = false;
|
|
371
|
-
return; // Don't close the popover
|
|
372
|
-
}
|
|
373
|
-
if (!this.el.contains(document.activeElement)) {
|
|
374
|
-
this.open = false; // Close the popover on blur
|
|
375
|
-
if (this.filterable) {
|
|
376
|
-
this.clearFilterText(); // Clear filter text on blur
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
}, 150);
|
|
380
|
-
};
|
|
381
347
|
/**
|
|
382
348
|
* Toggle the multiselect popover for options mode.
|
|
383
349
|
*/
|
|
@@ -502,6 +468,17 @@ export class NvFieldmultiselect {
|
|
|
502
468
|
};
|
|
503
469
|
this.handleMouseDownPreventBlur = () => {
|
|
504
470
|
this.preventBlurClose = true;
|
|
471
|
+
// Scope the flag to the immediate click cycle only. Synchronous focus
|
|
472
|
+
// events fired during this click (mousedown → focusout → mouseup → click)
|
|
473
|
+
// run before the next macrotask, so any focusout that *should* be
|
|
474
|
+
// suppressed will already have consumed the flag by the time this clears.
|
|
475
|
+
// Without this cleanup, a click on a non-focus-taking target (e.g. the
|
|
476
|
+
// chevron when nothing inside the host had focus, or the tabindex="-1"
|
|
477
|
+
// clear-filter button) leaves the flag set and the user's next Tab-out
|
|
478
|
+
// gets silently swallowed instead of closing the popover.
|
|
479
|
+
setTimeout(() => {
|
|
480
|
+
this.preventBlurClose = false;
|
|
481
|
+
}, 0);
|
|
505
482
|
};
|
|
506
483
|
//#endregion METHODS
|
|
507
484
|
/****************************************************************************/
|
|
@@ -516,7 +493,7 @@ export class NvFieldmultiselect {
|
|
|
516
493
|
: undefined, ...(this.getRequiredAttributes().ariaRequiredValue !==
|
|
517
494
|
undefined && {
|
|
518
495
|
'aria-required': String(this.getRequiredAttributes().ariaRequiredValue),
|
|
519
|
-
}), disabled: this.disabled, readOnly: this.readonly, onInput: this.handleInputOptions, onFocus: this.handleInputFocusOptions,
|
|
496
|
+
}), disabled: this.disabled, readOnly: this.readonly, onInput: this.handleInputOptions, onFocus: this.handleInputFocusOptions, onKeyDown: this.handleKeyDown, "data-scope": "focusable", "aria-label": this.label, "aria-controls": `${this.inputId}-listbox` })) : (h(Fragment, null, h("input", { id: this.inputId, type: "text", style: {
|
|
520
497
|
position: 'absolute',
|
|
521
498
|
opacity: '0',
|
|
522
499
|
width: '0',
|
|
@@ -537,7 +514,7 @@ export class NvFieldmultiselect {
|
|
|
537
514
|
: undefined, ...(this.getRequiredAttributes().ariaRequiredValue !==
|
|
538
515
|
undefined && {
|
|
539
516
|
'aria-required': String(this.getRequiredAttributes().ariaRequiredValue),
|
|
540
|
-
}), disabled: this.disabled, readOnly: this.readonly, onInput: this.handleInputSlots, onFocus: this.handleInputFocusSlots,
|
|
517
|
+
}), disabled: this.disabled, readOnly: this.readonly, onInput: this.handleInputSlots, onFocus: this.handleInputFocusSlots, onKeyDown: this.handleKeyDown, "data-scope": "focusable", "aria-label": this.label, "aria-controls": `${this.inputId}-listbox` })) : (h(Fragment, null, h("input", { id: this.inputId, type: "text", style: {
|
|
541
518
|
position: 'absolute',
|
|
542
519
|
opacity: '0',
|
|
543
520
|
width: '0',
|
|
@@ -652,6 +629,31 @@ export class NvFieldmultiselect {
|
|
|
652
629
|
});
|
|
653
630
|
}
|
|
654
631
|
}
|
|
632
|
+
/**
|
|
633
|
+
* Close the dropdown when keyboard focus leaves the component.
|
|
634
|
+
* Uses focusout (which bubbles) so it covers every internal focusable
|
|
635
|
+
* (filter input, hidden input, trigger `<p>`, chevron iconbutton,
|
|
636
|
+
* clear-filter iconbutton, dropdown items, badge close button) without
|
|
637
|
+
* needing per-element onBlur wiring.
|
|
638
|
+
* @param {FocusEvent} event - The focus event.
|
|
639
|
+
*/
|
|
640
|
+
handleFocusOut(event) {
|
|
641
|
+
if (this.preventBlurClose) {
|
|
642
|
+
this.preventBlurClose = false;
|
|
643
|
+
return;
|
|
644
|
+
}
|
|
645
|
+
// Focus moved to another element inside the component → keep open.
|
|
646
|
+
if (event.relatedTarget instanceof Node &&
|
|
647
|
+
this.el.contains(event.relatedTarget)) {
|
|
648
|
+
return;
|
|
649
|
+
}
|
|
650
|
+
// Focus moved outside the component (external element, body, or
|
|
651
|
+
// programmatic blur where relatedTarget is null) → close the popover.
|
|
652
|
+
this.open = false;
|
|
653
|
+
if (this.filterable) {
|
|
654
|
+
this.clearFilterText();
|
|
655
|
+
}
|
|
656
|
+
}
|
|
655
657
|
/**
|
|
656
658
|
* Handle keyboard events & arrow key navigation.
|
|
657
659
|
* If the multiselect is not open, opens it and focuses on the first item if the list is not filterable.
|
|
@@ -659,6 +661,8 @@ export class NvFieldmultiselect {
|
|
|
659
661
|
* @param {KeyboardEvent} event - The keyboard event.
|
|
660
662
|
*/
|
|
661
663
|
async handleKeyDown(event) {
|
|
664
|
+
if (this.disabled || this.readonly)
|
|
665
|
+
return;
|
|
662
666
|
if (event.key === 'Escape') {
|
|
663
667
|
this.open = false;
|
|
664
668
|
return;
|
|
@@ -677,12 +681,22 @@ export class NvFieldmultiselect {
|
|
|
677
681
|
}
|
|
678
682
|
return;
|
|
679
683
|
}
|
|
680
|
-
|
|
684
|
+
// Sort by computed flex `order` so arrow keys follow the visual order
|
|
685
|
+
// (selected items first), with DOM order as tie-breaker.
|
|
686
|
+
const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck:not([style*="display: none"])')).sort((a, b) => {
|
|
687
|
+
const orderA = parseInt(window.getComputedStyle(a).order || '0', 10);
|
|
688
|
+
const orderB = parseInt(window.getComputedStyle(b).order || '0', 10);
|
|
689
|
+
if (orderA !== orderB)
|
|
690
|
+
return orderA - orderB;
|
|
691
|
+
return a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING
|
|
692
|
+
? -1
|
|
693
|
+
: 1;
|
|
694
|
+
});
|
|
681
695
|
if (items.length === 0) {
|
|
682
696
|
console.warn('No visible items found to navigate');
|
|
683
697
|
return;
|
|
684
698
|
}
|
|
685
|
-
let currentIndex = items.findIndex(item => item.
|
|
699
|
+
let currentIndex = items.findIndex(item => item.getAttribute('data-state') === 'highlighted');
|
|
686
700
|
if (event.key === 'ArrowDown') {
|
|
687
701
|
event.preventDefault();
|
|
688
702
|
currentIndex =
|
|
@@ -697,7 +711,15 @@ export class NvFieldmultiselect {
|
|
|
697
711
|
: (currentIndex - 1 + items.length) % items.length;
|
|
698
712
|
this.updateHighlightedItem(items, currentIndex);
|
|
699
713
|
}
|
|
700
|
-
else if (event.key === 'Enter'
|
|
714
|
+
else if ((event.key === 'Enter' || event.key === ' ') &&
|
|
715
|
+
currentIndex >= 0) {
|
|
716
|
+
// If the key event came from the chevron toggle button, nv-iconbutton
|
|
717
|
+
// has already handled open/close via its own keydown listener. Do not
|
|
718
|
+
// also toggle the highlighted item — that is a double-action bug.
|
|
719
|
+
const target = event.target;
|
|
720
|
+
if (target?.closest?.('[data-scope="toggle-dropdown"]')) {
|
|
721
|
+
return;
|
|
722
|
+
}
|
|
701
723
|
event.preventDefault();
|
|
702
724
|
const selectedItem = items[currentIndex];
|
|
703
725
|
// Toggle the checked state
|
|
@@ -901,7 +923,9 @@ export class NvFieldmultiselect {
|
|
|
901
923
|
}
|
|
902
924
|
}
|
|
903
925
|
/**
|
|
904
|
-
* Reorder the content of the slot
|
|
926
|
+
* Reorder the content of the slot using CSS flex `order` so the
|
|
927
|
+
* underlying DOM order is preserved (clearing the selection restores
|
|
928
|
+
* the original visual order automatically).
|
|
905
929
|
*/
|
|
906
930
|
reorderSlotContent() {
|
|
907
931
|
if (this.options)
|
|
@@ -909,50 +933,47 @@ export class NvFieldmultiselect {
|
|
|
909
933
|
const ul = this.el.querySelector('ul');
|
|
910
934
|
if (!ul)
|
|
911
935
|
return;
|
|
912
|
-
// Remove all existing <hr class="multiselect-divider">
|
|
913
|
-
ul.querySelectorAll('hr.multiselect-divider').forEach(divider => divider.remove());
|
|
914
936
|
// Retrieve all items (not hidden)
|
|
915
937
|
const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck')).filter(item => item.style.display !== 'none');
|
|
916
|
-
// If
|
|
938
|
+
// If a "No results" message is currently shown, hide the divider
|
|
939
|
+
// and skip the per-item ordering work.
|
|
917
940
|
const hasEmptyMessage = ul.querySelector('[data-empty]');
|
|
918
941
|
if (hasEmptyMessage) {
|
|
919
|
-
|
|
942
|
+
this.manageDivider(ul, [], []);
|
|
920
943
|
return;
|
|
921
944
|
}
|
|
922
|
-
|
|
923
|
-
const
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
// Add a divider if needed
|
|
932
|
-
if (selectedItems.length > 0 && unselectedItems.length > 0) {
|
|
933
|
-
const divider = document.createElement('hr');
|
|
934
|
-
divider.className = 'multiselect-divider';
|
|
935
|
-
ul.appendChild(divider);
|
|
936
|
-
}
|
|
937
|
-
// Reinsert UNCHECKED items at the end
|
|
938
|
-
unselectedItems.forEach(item => {
|
|
939
|
-
ul.appendChild(item);
|
|
945
|
+
const selectedItems = [];
|
|
946
|
+
const unselectedItems = [];
|
|
947
|
+
items.forEach(item => {
|
|
948
|
+
const isSelected = (this.value || []).includes(item.getAttribute('value') || '');
|
|
949
|
+
item.style.order = isSelected ? '10' : '30';
|
|
950
|
+
if (isSelected)
|
|
951
|
+
selectedItems.push(item);
|
|
952
|
+
else
|
|
953
|
+
unselectedItems.push(item);
|
|
940
954
|
});
|
|
955
|
+
this.manageDivider(ul, selectedItems, unselectedItems);
|
|
941
956
|
}
|
|
942
957
|
/**
|
|
943
|
-
* Reorder the content for options mode
|
|
958
|
+
* Reorder the content for options mode using CSS flex `order` so the
|
|
959
|
+
* underlying DOM order is preserved (clearing the selection restores
|
|
960
|
+
* the original visual order automatically).
|
|
944
961
|
*/
|
|
945
962
|
reorderOptionsContent() {
|
|
946
963
|
const ul = this.el.querySelector('ul');
|
|
947
964
|
if (!ul)
|
|
948
965
|
return;
|
|
949
966
|
const items = Array.from(ul.querySelectorAll('nv-fielddropdownitemcheck')).filter(item => item.style.display !== 'none');
|
|
950
|
-
const selectedItems =
|
|
951
|
-
const unselectedItems =
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
967
|
+
const selectedItems = [];
|
|
968
|
+
const unselectedItems = [];
|
|
969
|
+
items.forEach(item => {
|
|
970
|
+
const isSelected = (this.value || []).includes(item.getAttribute('value') || '');
|
|
971
|
+
item.style.order = isSelected ? '10' : '30';
|
|
972
|
+
if (isSelected)
|
|
973
|
+
selectedItems.push(item);
|
|
974
|
+
else
|
|
975
|
+
unselectedItems.push(item);
|
|
976
|
+
});
|
|
956
977
|
this.manageDivider(ul, selectedItems, unselectedItems);
|
|
957
978
|
}
|
|
958
979
|
/**
|
|
@@ -1034,6 +1055,8 @@ export class NvFieldmultiselect {
|
|
|
1034
1055
|
emptyMessage.setAttribute('data-empty', 'true');
|
|
1035
1056
|
emptyMessage.textContent = this.emptyResult;
|
|
1036
1057
|
emptyMessage.classList.add('no-results-message');
|
|
1058
|
+
// Keep the message after any item rows under the flex `order` projection.
|
|
1059
|
+
emptyMessage.style.order = '40';
|
|
1037
1060
|
ul.appendChild(emptyMessage);
|
|
1038
1061
|
}
|
|
1039
1062
|
else if (result.truncated) {
|
|
@@ -1169,6 +1192,8 @@ export class NvFieldmultiselect {
|
|
|
1169
1192
|
truncatedItem.setAttribute('data-truncated', 'true');
|
|
1170
1193
|
truncatedItem.className = 'truncated-message no-results-message';
|
|
1171
1194
|
truncatedItem.textContent = formatTruncatedResults(textTemplate, shown, total);
|
|
1195
|
+
// Keep the message after any item rows under the flex `order` projection.
|
|
1196
|
+
truncatedItem.style.order = '40';
|
|
1172
1197
|
ul.appendChild(truncatedItem);
|
|
1173
1198
|
}
|
|
1174
1199
|
handleClickOutside(event) {
|
|
@@ -1187,7 +1212,7 @@ export class NvFieldmultiselect {
|
|
|
1187
1212
|
updateHighlightedItem(items, index) {
|
|
1188
1213
|
items.forEach((item, i) => {
|
|
1189
1214
|
if (i === index) {
|
|
1190
|
-
item.
|
|
1215
|
+
item.setAttribute('data-state', 'highlighted');
|
|
1191
1216
|
item.setAttribute('tabindex', '0');
|
|
1192
1217
|
item.scrollIntoView({ block: 'nearest' });
|
|
1193
1218
|
// Focus on the nv-fieldcheckbox inside
|
|
@@ -1197,19 +1222,30 @@ export class NvFieldmultiselect {
|
|
|
1197
1222
|
}
|
|
1198
1223
|
}
|
|
1199
1224
|
else {
|
|
1200
|
-
item.
|
|
1225
|
+
item.removeAttribute('data-state');
|
|
1201
1226
|
item.setAttribute('tabindex', '-1');
|
|
1202
1227
|
}
|
|
1203
1228
|
});
|
|
1204
1229
|
}
|
|
1205
1230
|
/**
|
|
1206
|
-
* Focus on the first item in the dropdown list.
|
|
1231
|
+
* Focus on the first item in the dropdown list (visual order).
|
|
1207
1232
|
*/
|
|
1208
1233
|
focusFirstItem() {
|
|
1209
|
-
|
|
1234
|
+
// Sort by computed flex `order` so the "first" item is the first one
|
|
1235
|
+
// visually (selected items are projected to the top via `order: 10`).
|
|
1236
|
+
const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck:not([style*="display: none"])')).sort((a, b) => {
|
|
1237
|
+
const orderA = parseInt(window.getComputedStyle(a).order || '0', 10);
|
|
1238
|
+
const orderB = parseInt(window.getComputedStyle(b).order || '0', 10);
|
|
1239
|
+
if (orderA !== orderB)
|
|
1240
|
+
return orderA - orderB;
|
|
1241
|
+
return a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING
|
|
1242
|
+
? -1
|
|
1243
|
+
: 1;
|
|
1244
|
+
});
|
|
1245
|
+
const firstItem = items[0];
|
|
1210
1246
|
if (firstItem) {
|
|
1211
1247
|
firstItem.setAttribute('tabindex', '0');
|
|
1212
|
-
firstItem.
|
|
1248
|
+
firstItem.setAttribute('data-state', 'highlighted');
|
|
1213
1249
|
firstItem.scrollIntoView({ block: 'nearest' });
|
|
1214
1250
|
// Focus on the nv-fieldcheckbox inside
|
|
1215
1251
|
const checkbox = firstItem.querySelector('nv-fieldcheckbox');
|
|
@@ -1228,16 +1264,9 @@ export class NvFieldmultiselect {
|
|
|
1228
1264
|
divider.className = 'multiselect-divider';
|
|
1229
1265
|
ul.appendChild(divider);
|
|
1230
1266
|
}
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
const lastSelectedItem = selectedItems[selectedItems.length - 1];
|
|
1235
|
-
lastSelectedItem.after(divider);
|
|
1236
|
-
divider.style.display = '';
|
|
1237
|
-
}
|
|
1238
|
-
else {
|
|
1239
|
-
divider.style.display = 'none';
|
|
1240
|
-
}
|
|
1267
|
+
divider.style.order = '20';
|
|
1268
|
+
const shouldShow = selectedItems.length > 0 && unselectedItems.length > 0;
|
|
1269
|
+
divider.style.display = shouldShow ? '' : 'none';
|
|
1241
1270
|
}
|
|
1242
1271
|
/**
|
|
1243
1272
|
* Synchronizes the checked state of all child nv-fielddropdownitemcheck components
|
|
@@ -2381,6 +2410,12 @@ export class NvFieldmultiselect {
|
|
|
2381
2410
|
"target": undefined,
|
|
2382
2411
|
"capture": false,
|
|
2383
2412
|
"passive": false
|
|
2413
|
+
}, {
|
|
2414
|
+
"name": "focusout",
|
|
2415
|
+
"method": "handleFocusOut",
|
|
2416
|
+
"target": undefined,
|
|
2417
|
+
"capture": true,
|
|
2418
|
+
"passive": true
|
|
2384
2419
|
}, {
|
|
2385
2420
|
"name": "keydown",
|
|
2386
2421
|
"method": "handleKeyDown",
|
|
@@ -77,12 +77,12 @@ nv-fieldmultiselect[error]:not([error=false]) {
|
|
|
77
77
|
--nv-field-border-readonly: var(--nv-field-border-default);
|
|
78
78
|
--nv-field-focus-box-shadow: var(--color-focus-destructive-in-field);
|
|
79
79
|
}
|
|
80
|
-
nv-fieldmultiselect[required]:not([required=false]) label::after, nv-fieldmultiselect[aria-required=true] label::after {
|
|
80
|
+
nv-fieldmultiselect[required]:not([required=false]) > label::after, nv-fieldmultiselect[aria-required=true] > label::after {
|
|
81
81
|
content: "*";
|
|
82
82
|
color: var(--components-form-text-required);
|
|
83
83
|
font-weight: var(--font-weight-high-emphasis);
|
|
84
84
|
}
|
|
85
|
-
nv-fieldmultiselect label {
|
|
85
|
+
nv-fieldmultiselect > label {
|
|
86
86
|
display: flex;
|
|
87
87
|
align-items: center;
|
|
88
88
|
gap: var(--form-label-gap);
|
|
@@ -132,6 +132,13 @@ nv-fieldmultiselect nv-popover div[slot=content] {
|
|
|
132
132
|
overflow-y: auto;
|
|
133
133
|
position: relative;
|
|
134
134
|
}
|
|
135
|
+
nv-fieldmultiselect nv-popover div[slot=content] ul[role=listbox] {
|
|
136
|
+
display: flex;
|
|
137
|
+
flex-direction: column;
|
|
138
|
+
}
|
|
139
|
+
nv-fieldmultiselect nv-popover div[slot=content] ul[role=listbox] > *:not(nv-fielddropdownitemcheck):not(hr.multiselect-divider) {
|
|
140
|
+
order: 40;
|
|
141
|
+
}
|
|
135
142
|
nv-fieldmultiselect .input-wrapper-multiselect {
|
|
136
143
|
display: flex;
|
|
137
144
|
flex-wrap: wrap;
|
|
@@ -284,6 +291,9 @@ nv-fieldmultiselect .error-description {
|
|
|
284
291
|
line-height: var(--form-description-line-height);
|
|
285
292
|
color: var(--components-form-text-description-error);
|
|
286
293
|
}
|
|
294
|
+
nv-fieldmultiselect .error-description[hidden] {
|
|
295
|
+
display: none;
|
|
296
|
+
}
|
|
287
297
|
|
|
288
298
|
.no-results-message {
|
|
289
299
|
cursor: not-allowed;
|
|
@@ -299,6 +309,7 @@ nv-fieldmultiselect .error-description {
|
|
|
299
309
|
background-color: var(--components-list-dropdown-separator);
|
|
300
310
|
margin: var(--list-dropdown-item-padding-y) 0;
|
|
301
311
|
border: 0;
|
|
312
|
+
flex-shrink: 0;
|
|
302
313
|
}
|
|
303
314
|
|
|
304
315
|
.select-all-container {
|
|
@@ -2,7 +2,7 @@ import { h } from "@stencil/core";
|
|
|
2
2
|
import { nameof } from "../../utils/class.utils";
|
|
3
3
|
const NvFieldnumberDocs = {
|
|
4
4
|
component: 'nv-fieldnumber',
|
|
5
|
-
parentGroup: 'Fields
|
|
5
|
+
parentGroup: 'Fields',
|
|
6
6
|
subcomponents: ['nv-button', 'nv-badge'],
|
|
7
7
|
stories: [
|
|
8
8
|
// Default
|
|
@@ -169,11 +169,11 @@ export class NvFieldnumber {
|
|
|
169
169
|
? ariaRequiredAttrValue === 'true' || ariaRequiredAttrValue === ''
|
|
170
170
|
: undefined;
|
|
171
171
|
const useNativeRequired = this.required && (!useAriaRequired || ariaRequiredValue === true);
|
|
172
|
-
return (h(Host, { key: '
|
|
172
|
+
return (h(Host, { key: 'bd60dd6875bab03a11f68c8cdeb40503dd11387b' }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { key: '9b11d71766cb20870e42e3d86509c30ec0bbc1df', htmlFor: this.inputId }, h("slot", { key: 'b1b84003346a9d9240a9a2072629701545eb8a4e', name: "label" }, this.label))), h("div", { key: 'de3100bb6e5d0befca657857b5011929621c0856', class: "input-wrapper" }, h("slot", { key: 'ae056ee9445d741e449ad926b998614e45268dd1', name: "before-input" }), h("div", { key: 'ec029f917a8472d207776b279e2a9ae2ed3c87d2', class: "input-container", onClick: this.handleInputContainerClick }, h("slot", { key: '3156846b24658fb8b033345038ba8a19e5ed39cf', name: "leading-input" }), h("input", { key: '9978de0b82a67650629ccedc7f400d7f3e17810f', id: this.inputId, ref: e => (this.inputElement = e), placeholder: this.placeholder, name: this.name, type: "number", autofocus: this.autofocus, required: useNativeRequired ? this.required : undefined, ...(ariaRequiredValue !== undefined && {
|
|
173
173
|
'aria-required': String(ariaRequiredValue),
|
|
174
|
-
}), max: this.max, min: this.min, step: this.step, value: typeof this.value === 'number' ? this.value : undefined, disabled: this.disabled, readOnly: this.readonly, onInput: this.handleInput }), h("slot", { key: '
|
|
175
|
-
this.el.querySelector('[slot="description"]')) && (h("div", { key: '
|
|
176
|
-
this.el.querySelector('[slot="error-description"]')) && (h("div", { key: '
|
|
174
|
+
}), max: this.max, min: this.min, step: this.step, value: typeof this.value === 'number' ? this.value : undefined, disabled: this.disabled, readOnly: this.readonly, onInput: this.handleInput }), h("slot", { key: '6a65f9360ac4aae869f47a386f964d7121ee62b7', name: "trailing-input" }), this.error && (h("nv-icon", { key: '3f6d5f2ac11907170c57fffa8e080adaa9f2445d', name: "alert-circle", class: "validation", size: "md" })), this.success && (h("nv-icon", { key: 'f47db690daa520fe1611a72ef52bd4e8824843e0', name: "circle-check", class: "validation", size: "md" })), h("div", { key: '97d545f25f81e0089fadd33c53caf38aa8dbda85', class: "stepper" }, h("nv-iconbutton", { key: 'fa6e78061e8f90564aaed2416ee27996cbddf794', size: "md", name: "minus", emphasis: "lower", onClick: this.handleMinus, disabled: this.isMinValueReached(), onMouseDown: this.preventSelection, tabindex: "-1" }), h("nv-iconbutton", { key: 'efca8a29e9c5af8136ab557744e9642b60717915', size: "md", name: "plus", emphasis: "lower", onClick: this.handlePlus, disabled: this.isMaxValueReached(), onMouseDown: this.preventSelection, tabindex: "-1" }))), h("slot", { key: 'b99033fd0ecfbca1c791e1f0ad867fab41fc2716', name: "after-input" })), (this.description ||
|
|
175
|
+
this.el.querySelector('[slot="description"]')) && (h("div", { key: 'fd843a1bb551f1d706de5045658356582667048d', class: "description" }, h("slot", { key: 'e9e1699a36a6485063eb4d90f920b1b48a03c280', name: "description" }, this.description))), (this.errorDescription ||
|
|
176
|
+
this.el.querySelector('[slot="error-description"]')) && (h("div", { key: '7216797fc4a37dee59086111e9160401f5567c09', hidden: !this.error, class: "error-description" }, h("slot", { key: '93cee823eec935644372d062db6cd009a2f16357', name: "error-description" }, this.errorDescription)))));
|
|
177
177
|
}
|
|
178
178
|
static get is() { return "nv-fieldnumber"; }
|
|
179
179
|
static get formAssociated() { return true; }
|
|
@@ -2,7 +2,7 @@ import { h } from "@stencil/core";
|
|
|
2
2
|
import { nameof } from "../../utils/class.utils";
|
|
3
3
|
const NvFieldpasswordDocs = {
|
|
4
4
|
component: 'nv-fieldpassword',
|
|
5
|
-
parentGroup: 'Fields
|
|
5
|
+
parentGroup: 'Fields',
|
|
6
6
|
subcomponents: ['nv-button', 'nv-badge'],
|
|
7
7
|
stories: [
|
|
8
8
|
// Default
|
|
@@ -146,11 +146,11 @@ export class NvFieldpassword {
|
|
|
146
146
|
? ariaRequiredAttrValue === 'true' || ariaRequiredAttrValue === ''
|
|
147
147
|
: undefined;
|
|
148
148
|
const useNativeRequired = this.required && (!useAriaRequired || ariaRequiredValue === true);
|
|
149
|
-
return (h(Host, { key: '
|
|
149
|
+
return (h(Host, { key: 'e24affee3586427a9d7b2dbf2205dc4ac62b7491' }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { key: '3ce9065dc2d72992d5c6e3e856df4c1447717ed2', htmlFor: this.inputId }, h("slot", { key: 'ed16a44bfdcf67f371d0a1f083bc0d6e6009350b', name: "label" }, this.label))), h("div", { key: 'b43e17d340383e0b70bcb4fb5fa061d479baf46a', class: "input-wrapper" }, h("slot", { key: '2f101c6bf63c88fc4a6ad8aee5622097c133245b', name: "before-input" }), h("div", { key: '37fe8f5efd8f4374b9a237f4f5d1ebe9af9f6e05', class: "input-container", onClick: this.handleInputContainerClick }, h("slot", { key: '4ca0f2ce27bded082e2fe49598ef6310db1ac0b3', name: "leading-input" }), h("input", { key: '302e86558f7843f44486b47987d37df6ac7f50ac', id: this.inputId, ref: e => (this.inputElement = e), autofocus: this.autofocus, autocomplete: this.autocomplete, placeholder: this.placeholder, name: this.name, type: this.showPasswordState ? 'text' : 'password', inputMode: this.mode, value: this.value, required: useNativeRequired ? this.required : undefined, ...(ariaRequiredValue !== undefined && {
|
|
150
150
|
'aria-required': String(ariaRequiredValue),
|
|
151
|
-
}), maxlength: this.maxlength, minlength: this.minlength, pattern: this.pattern, disabled: this.disabled, readOnly: this.readonly, onInput: this.handleInput }), (this.success || this.error) && (h("nv-icon", { key: '
|
|
152
|
-
this.el.querySelector('[slot="description"]')) && (h("div", { key: '
|
|
153
|
-
this.el.querySelector('[slot="error-description"]')) && (h("div", { key: '
|
|
151
|
+
}), maxlength: this.maxlength, minlength: this.minlength, pattern: this.pattern, disabled: this.disabled, readOnly: this.readonly, onInput: this.handleInput }), (this.success || this.error) && (h("nv-icon", { key: 'c8874ce153ceddb132f9be42178bd3ff150005d2', name: this.success ? 'circle-check' : 'alert-circle', class: "validation", size: "md" })), !this.hidePasswordIcon && (h("nv-iconbutton", { key: '90b7e1f592e67ea60194b581931fa842af695ef4', name: this.showPasswordState ? 'eye' : 'eye-off', size: "md", emphasis: "lower", onClick: this.togglePasswordVisibility, "aria-label": this.showPasswordState ? 'Hide password' : 'Show password', "aria-pressed": this.showPasswordState.toString() }))), h("slot", { key: '71add973e9ce73cc172d074492a9dbb2c20caaf9', name: "after-input" })), (this.description ||
|
|
152
|
+
this.el.querySelector('[slot="description"]')) && (h("div", { key: 'c2d8551e86c028619f2c7c810597353df24cf83a', class: "description" }, h("slot", { key: '8ebe471324eba4eb9734ccd5a3aa600cc44512d9', name: "description" }, this.description))), (this.errorDescription ||
|
|
153
|
+
this.el.querySelector('[slot="error-description"]')) && (h("div", { key: '71d0c4737a51c030ba8ca859d1fd0b26d5a48772', hidden: !this.error, class: "error-description" }, h("slot", { key: '70e23fc8738958e2f2518079e0289a5a839903cd', name: "error-description" }, this.errorDescription)))));
|
|
154
154
|
}
|
|
155
155
|
static get is() { return "nv-fieldpassword"; }
|
|
156
156
|
static get formAssociated() { return true; }
|
|
@@ -83,9 +83,9 @@ export class NvFieldradio {
|
|
|
83
83
|
/****************************************************************************/
|
|
84
84
|
//#region RENDER
|
|
85
85
|
render() {
|
|
86
|
-
return (h(Host, { key: '
|
|
87
|
-
this.el.querySelector('[slot="description"]')) && (h("div", { key: '
|
|
88
|
-
this.el.querySelector('[slot="error-description"]')) && (h("div", { key: '
|
|
86
|
+
return (h(Host, { key: '53e418bfab22c9019f8efae9e474e6e729532a73', class: clsx(this.labelPlacement === 'before' && 'label-placement-before', this.error && 'error') }, h("input", { key: '85ab7c010dfa893e9e92bebd39b845a604ca0069', type: "radio", id: this.inputId, name: this.name, autofocus: this.autofocus, autocomplete: "off", value: this.value, checked: this.checked, disabled: this.disabled }), h("div", { key: '851587d22af2d0739e5531f361cbefe3e282b914', class: "text-container" }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { key: '475cad34dea78bd00bf822ccafbfb18ddba4264a', htmlFor: this.inputId }, h("slot", { key: 'd6c84f56f1913d97e71ce79fd112362f4880acd0', name: "label" }, this.label))), (this.description ||
|
|
87
|
+
this.el.querySelector('[slot="description"]')) && (h("div", { key: '8e1f4d0e9cbd00630cadde99923f2952d4dd492c', class: "description" }, h("slot", { key: 'dea3d8661dc83a237a8d290e02b365ea47491b51', name: "description" }, this.description))), (this.errorDescription ||
|
|
88
|
+
this.el.querySelector('[slot="error-description"]')) && (h("div", { key: 'f67d73864db0c32013605343ac22f451b37047e9', hidden: !this.error, class: "error-description" }, h("slot", { key: 'ebd467b48c874db8b3649ec940d950f0d2218417', name: "error-description" }, this.errorDescription))))));
|
|
89
89
|
}
|
|
90
90
|
static get is() { return "nv-fieldradio"; }
|
|
91
91
|
static get formAssociated() { return true; }
|
|
@@ -2,7 +2,7 @@ import { h } from "@stencil/core";
|
|
|
2
2
|
import { nameof } from "../../utils/class.utils";
|
|
3
3
|
const NvFieldselectDocs = {
|
|
4
4
|
component: 'nv-fieldselect',
|
|
5
|
-
parentGroup: 'Fields
|
|
5
|
+
parentGroup: 'Fields',
|
|
6
6
|
subcomponents: ['nv-badge', 'nv-button'],
|
|
7
7
|
stories: [
|
|
8
8
|
// Default
|
|
@@ -372,15 +372,15 @@ export class NvFieldselect {
|
|
|
372
372
|
? ariaRequiredAttrValue === 'true' || ariaRequiredAttrValue === ''
|
|
373
373
|
: undefined;
|
|
374
374
|
const useNativeRequired = this.required && (!useAriaRequired || ariaRequiredValue === true);
|
|
375
|
-
return (h(Host, { key: '
|
|
375
|
+
return (h(Host, { key: 'ee72e67a671b7061d3af5f76796d09c0372b38fa' }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { key: '8bec44fa26d9360b585e0a5bccd4fdd7ed8cfc92', htmlFor: this.inputId }, h("slot", { key: '35b2a393d88b37141a6dd7ea90f860fcee1d840e', name: "label" }, this.label))), h("div", { key: '151b1e03cd50911b024ae692fa7eb25e5c7c8938', class: "select-wrapper" }, h("slot", { key: 'b82c37856a7a616a9addb1bd5a4d79aeeb2587b4', name: "before-input" }), h("div", { key: 'cf5713c682e4ea9e08bb0ee6db5ab369cdaaf713', class: "select-container", onClick: this.handleSelectContainerClick }, h("slot", { key: '4fc79bed93ab1dfdf31a18805b5e72c5b35cd641', name: "leading-input" }), this.internalReadonly && (h("input", { key: '316cc1f0bf08ead5f7f5d8d1306cbc02b91fde54', id: this.inputId + '-readonly', type: "text", value: this.computedDisplayValue, readonly: true, class: "readonly-input", "aria-readonly": "true", "aria-label": this.label, "aria-describedby": this.error
|
|
376
376
|
? `${this.inputId}-error`
|
|
377
|
-
: `${this.inputId}-description` })), h("select", { key: '
|
|
377
|
+
: `${this.inputId}-description` })), h("select", { key: '1e1676c50ee4915bd6750677b501f6683d34fa25', id: this.inputId, ref: el => (this.selectElement = el), name: this.name, autofocus: this.autofocus, disabled: this.disabled, required: useNativeRequired ? this.required : undefined, ...(ariaRequiredValue !== undefined && {
|
|
378
378
|
'aria-required': String(ariaRequiredValue),
|
|
379
379
|
}), multiple: this.multiple, onChange: this.handleSelectChange, class: this.internalReadonly ? 'hidden' : '', "aria-label": this.label, "aria-describedby": this.error
|
|
380
380
|
? `${this.inputId}-error`
|
|
381
|
-
: `${this.inputId}-description` }, this.options && this.options.length > 0 ? (this.options.map(option => (h("option", { value: option.value, selected: option.selected, disabled: option.disabled }, option.label)))) : (h("slot", null))), h("div", { key: '
|
|
382
|
-
this.el.querySelector('[slot="description"]')) && (h("div", { key: '
|
|
383
|
-
this.el.querySelector('[slot="error-description"]')) && (h("div", { key: '
|
|
381
|
+
: `${this.inputId}-description` }, this.options && this.options.length > 0 ? (this.options.map(option => (h("option", { value: option.value, selected: option.selected, disabled: option.disabled }, option.label)))) : (h("slot", null))), h("div", { key: 'df1132a8bb20d35d94daec1b7e32f5769c9e6ec8', class: "select-icons" }, this.error && (h("nv-icon", { key: '39825cc8efd80f89b29644525d4e9fe9ae9e5edb', name: "alert-circle", class: "validation", size: "md" })), this.success && (h("nv-icon", { key: 'c9123ff11d354283e53470991a4d8755cc89b552', name: "circle-check", class: "validation", size: "md" })), !this.multiple && (h("nv-iconbutton", { key: '7f6dacc97b04100c4ddbbc503d16f31282365232', name: "chevron-down", size: "md", emphasis: "lower", tabindex: -1 })))), h("slot", { key: '61b4d062cc94f90ebe02113950f02940a2765d36', name: "after-input" })), (this.description ||
|
|
382
|
+
this.el.querySelector('[slot="description"]')) && (h("div", { key: '0685de6f40b839ea062c6088c60a10d72490fab0', class: "description", id: `${this.inputId}-description` }, h("slot", { key: '1d15fa435a00efef9a75295149c44dfc407fcc63', name: "description" }, this.description))), (this.errorDescription ||
|
|
383
|
+
this.el.querySelector('[slot="error-description"]')) && (h("div", { key: '623d7af55f6b523e834159769a2f783fb63052f7', class: "error-description", id: `${this.inputId}-error` }, h("slot", { key: '2f2c9b6ea72ae9093ccd5735813bc5c3415a39cc', name: "error-description" }, this.errorDescription)))));
|
|
384
384
|
}
|
|
385
385
|
static get is() { return "nv-fieldselect"; }
|
|
386
386
|
static get formAssociated() { return true; }
|
|
@@ -464,11 +464,11 @@ export class NvFieldslider {
|
|
|
464
464
|
/****************************************************************************/
|
|
465
465
|
//#region RENDER
|
|
466
466
|
render() {
|
|
467
|
-
return (h(Host, { key: '
|
|
467
|
+
return (h(Host, { key: '1251891d0796093b0b199218304444cb5e530367' }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { key: 'dfb2f64d6b289ad18ac9b5a8ca6e445bf591add9', htmlFor: this.startInputId }, h("slot", { key: '96cce5982bf52a76f92afcf027277955fe30ce2e', name: "label" }, this.label))), h("div", { key: '84d9150d80d5a971180f04872fb2de07817e2e90', class: "slider-container" }, this.range ? (h(FieldInput, { range: this.range, hasField: this.hasField, value: this.valueInternal, rangeValue: this.rangeValueInternal, index: 0, inputId: this.startInputId, min: this.min, max: this.max, step: this.step, disabled: this.disabled, readonly: this.readonly, onInput: this.handleFieldChange, labelBeforeValue: this.labelBeforeValue, labelAfterValue: this.labelAfterValue, name: this.name, endName: this.endName })) : null, h("div", { key: 'acea0634b80251ef76b91e85a447dcafa636924d', class: "track-container" }, h("div", { key: 'b323a5da0449af8ca8f9463bbfbceac3e9310796', class: "track", onPointerDown: this.onTrackInteraction }, this.range ? (h(RangeThumb, { rangeValue: this.rangeValueInternal, rawRangePosition: this.rawRangePosition, activeDragThumb: this.activeDragThumb, isDragging: this.isDragging, snap: this.snap, min: this.min, max: this.max, step: this.step, disabled: this.disabled, readonly: this.readonly, onKeyDown: this.onKeyDown, labelBeforeValue: this.labelBeforeValue, labelAfterValue: this.labelAfterValue })) : (h(SingleThumb, { value: this.valueInternal, min: this.min, max: this.max, step: this.step, rawPosition: this.rawPosition, isDragging: this.isDragging, snap: this.snap, disabled: this.disabled, readonly: this.readonly, onKeyDown: this.onKeyDown, labelBeforeValue: this.labelBeforeValue, labelAfterValue: this.labelAfterValue }))), h(TickMarks, { key: 'b3fdbe669889f22309a6f6a717f850b117a91cc8', ticks: this.internalTicks, min: this.min, max: this.max })), this.range ? (h(FieldInput, { range: this.range, hasField: this.hasField, value: this.valueInternal, rangeValue: this.rangeValueInternal, index: 1, inputId: this.endInputId, min: this.min, max: this.max, step: this.step, disabled: this.disabled, readonly: this.readonly, onInput: this.handleFieldChange, labelBeforeValue: this.labelBeforeValue, labelAfterValue: this.labelAfterValue, name: this.name, endName: this.endName })) : (h(FieldInput, { range: this.range, hasField: this.hasField, value: this.valueInternal, rangeValue: this.rangeValueInternal, inputId: this.startInputId, min: this.min, max: this.max, step: this.step, disabled: this.disabled, readonly: this.readonly, onInput: this.handleFieldChange, labelBeforeValue: this.labelBeforeValue, labelAfterValue: this.labelAfterValue, name: this.name }))), (this.success ||
|
|
468
468
|
this.description ||
|
|
469
|
-
this.el.querySelector('[slot="description"]')) && (h("div", { key: '
|
|
469
|
+
this.el.querySelector('[slot="description"]')) && (h("div", { key: '53b4e7236c469b87d96a666c4711b0fd9f060be9', class: "description" }, this.success && (h("nv-icon", { key: '332161c24c7aa882de0d07e0e7c4264bf5dc02b0', name: "circle-check", class: "validation", size: "md" })), h("slot", { key: 'd0ab58883e0d3d079511738835eba8a6c5caebd8', name: "description" }, this.description))), (this.error ||
|
|
470
470
|
this.errorDescription ||
|
|
471
|
-
this.el.querySelector('[slot="error-description"]')) && (h("div", { key: '
|
|
471
|
+
this.el.querySelector('[slot="error-description"]')) && (h("div", { key: '8ead9d45a545ba2e1abad6a855e88c655bbc5254', class: "error-description", hidden: !this.error }, this.error && (h("nv-icon", { key: '09d224201d747651dcd0f0ce22d9d81a784e75eb', name: "alert-circle", class: "validation", size: "md" })), h("slot", { key: '8c8a0e621a54dcf67569ad4e6818b3a4bc0a3a19', name: "error-description" }, this.errorDescription)))));
|
|
472
472
|
}
|
|
473
473
|
static get is() { return "nv-fieldslider"; }
|
|
474
474
|
static get formAssociated() { return true; }
|