@nova-design-system/nova-webcomponents 3.28.0 → 3.29.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/{index-Cfkoz1kc.js → index-eLt3bBQs.js} +1 -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 +1 -1
- package/dist/cjs/nv-alert.cjs.entry.js +2 -2
- package/dist/cjs/nv-avatar.cjs.entry.js +1 -1
- package/dist/cjs/nv-badge_2.cjs.entry.js +7 -6
- package/dist/cjs/nv-breadcrumb.cjs.entry.js +1 -1
- package/dist/cjs/nv-breadcrumbs.cjs.entry.js +1 -1
- package/dist/cjs/nv-button.cjs.entry.js +1 -1
- package/dist/cjs/nv-buttongroup.cjs.entry.js +1 -1
- package/dist/cjs/nv-calendar.cjs.entry.js +1 -1
- package/dist/cjs/nv-col.cjs.entry.js +2 -2
- package/dist/cjs/nv-datagrid.cjs.entry.js +1 -1
- package/dist/cjs/nv-datagridcolumn.cjs.entry.js +1 -1
- package/dist/cjs/nv-datetest.cjs.entry.js +1 -1
- package/dist/cjs/nv-datetimetest.cjs.entry.js +1 -1
- package/dist/cjs/nv-dialog.cjs.entry.js +1 -1
- package/dist/cjs/nv-dialogfooter_2.cjs.entry.js +6 -4
- package/dist/cjs/nv-drawer.cjs.entry.js +1 -1
- package/dist/cjs/nv-drawerfooter_2.cjs.entry.js +4 -2
- package/dist/cjs/nv-fieldcheckbox.cjs.entry.js +5 -5
- package/dist/cjs/nv-fielddate.cjs.entry.js +2 -2
- package/dist/cjs/nv-fielddaterange.cjs.entry.js +2 -2
- package/dist/cjs/nv-fielddropdown.cjs.entry.js +2 -2
- package/dist/cjs/nv-fielddropdownitem.cjs.entry.js +1 -1
- package/dist/cjs/nv-fieldmultiselect.cjs.entry.js +115 -86
- package/dist/cjs/nv-fieldnumber.cjs.entry.js +2 -2
- package/dist/cjs/nv-fieldpassword.cjs.entry.js +2 -2
- package/dist/cjs/nv-fieldradio.cjs.entry.js +1 -1
- package/dist/cjs/nv-fieldselect.cjs.entry.js +2 -2
- package/dist/cjs/nv-fieldslider.cjs.entry.js +1 -1
- package/dist/cjs/nv-fieldtext.cjs.entry.js +2 -2
- package/dist/cjs/nv-fieldtextarea.cjs.entry.js +2 -2
- package/dist/cjs/nv-fieldtime.cjs.entry.js +15 -12
- package/dist/cjs/nv-icon.cjs.entry.js +2 -2
- package/dist/cjs/nv-iconbutton_2.cjs.entry.js +2 -2
- package/dist/cjs/nv-menu.cjs.entry.js +1 -1
- 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 +2 -2
- package/dist/cjs/nv-notificationcontainer.cjs.entry.js +1 -1
- package/dist/cjs/nv-pagination-nav.cjs.entry.js +1 -1
- package/dist/cjs/nv-paginationtable.cjs.entry.js +1 -1
- package/dist/cjs/nv-popover.cjs.entry.js +1 -1
- package/dist/cjs/nv-row.cjs.entry.js +2 -2
- package/dist/cjs/nv-sidebar.cjs.entry.js +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 +3 -3
- package/dist/cjs/nv-sidebarnavsubitem.cjs.entry.js +1 -1
- package/dist/cjs/nv-split.cjs.entry.js +1 -1
- package/dist/cjs/nv-stack.cjs.entry.js +1 -1
- package/dist/cjs/nv-table.cjs.entry.js +2 -2
- package/dist/cjs/nv-tableheader.cjs.entry.js +1 -1
- package/dist/cjs/nv-timetest.cjs.entry.js +1 -1
- package/dist/cjs/nv-toggle.cjs.entry.js +1 -1
- package/dist/cjs/nv-togglebutton.cjs.entry.js +1 -1
- package/dist/cjs/nv-togglebuttongroup.cjs.entry.js +1 -1
- package/dist/cjs/nv-tooltip.cjs.entry.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-badge/nv-badge.js +32 -11
- 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-dialogfooter/nv-dialogfooter.js +35 -13
- package/dist/collection/components/nv-drawerfooter/nv-drawerfooter.js +31 -9
- 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/styles/nv-fielddate.css +3 -0
- package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.docs.js +1 -1
- 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/styles/nv-fielddropdown.css +3 -0
- package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.docs.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-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-fieldpassword/nv-fieldpassword.css +3 -0
- package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.docs.js +1 -1
- package/dist/collection/components/nv-fieldradio/nv-fieldradio.docs.js +1 -1
- package/dist/collection/components/nv-fieldselect/nv-fieldselect.docs.js +1 -1
- 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-fieldtext/nv-fieldtext.css +3 -0
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.docs.js +3 -2
- 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-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-menuitem/nv-menuitem.js +5 -2
- package/dist/collection/components/nv-notification/nv-notification.js +15 -5
- 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-sidebarnavitem/nv-sidebarnavitem.js +7 -4
- package/dist/collection/components/nv-table/styles/nv-table.css +19 -2
- package/dist/collection/components/nv-toggle/nv-toggle.docs.js +1 -1
- package/dist/collection/components/nv-togglebutton/nv-togglebutton.docs.js +2 -2
- 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-table.js +1 -1
- package/dist/components/nv-tableheader.js +1 -1
- 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-CAGzfU3O.js → p-Bl7rc9YV.js} +1 -1
- package/dist/components/{p-VXpV-BUK.js → p-Bytxo1iR.js} +1 -1
- package/dist/components/p-C47vpaBp.js +1 -0
- package/dist/components/{p-Du3Fh0jQ.js → p-C99g_PrG.js} +1 -1
- package/dist/components/{p-xrXEz2WP.js → p-CBlrNW6n.js} +1 -1
- package/dist/components/{p-DlOgBZa8.js → p-CD12QIMB.js} +2 -2
- package/dist/components/{p-C5J7jtrC.js → p-CT782LKx.js} +1 -1
- package/dist/components/{p-DGj-fiRX.js → p-CUjRfVPl.js} +1 -1
- package/dist/components/{p-f8OUzde-.js → p-CfOVizcp.js} +1 -1
- package/dist/components/{p-CKFXHAaU.js → p-CgufQqes.js} +1 -1
- package/dist/components/p-ChVdX6FG.js +1 -0
- package/dist/components/{p-h3cPA0Cx.js → p-Cnlbk416.js} +1 -1
- package/dist/components/p-Cr_-lRNo.js +1 -0
- package/dist/components/{p-BwYt1BAb.js → p-Cuq_uNwY.js} +1 -1
- package/dist/components/{p-nzxGC8BS.js → p-D1psKXwD.js} +1 -1
- package/dist/components/{p-DE792Sds.js → p-D3JDACHw.js} +1 -1
- package/dist/components/{p-qkNH2RHl.js → p-DKgmDzJ1.js} +1 -1
- package/dist/components/p-DdcXhR3I.js +1 -0
- package/dist/components/{p-CnkB4kvn.js → p-EV8CtE4q.js} +1 -1
- package/dist/components/{p-CLzCfsnq.js → p-RYxAzR3m.js} +1 -1
- package/dist/components/{p-Co8IghI-.js → p-_zOMJBOq.js} +1 -1
- package/dist/components/{p-6nAIGZFL.js → p-flcatmxD.js} +1 -1
- package/dist/components/{p-DwtLxfU5.js → p-p1ofW2Cs.js} +1 -1
- package/dist/esm/{index-BCjiE1MF.js → index-DU3Vhh_k.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 +1 -1
- package/dist/esm/nv-alert.entry.js +2 -2
- package/dist/esm/nv-avatar.entry.js +1 -1
- package/dist/esm/nv-badge_2.entry.js +7 -6
- package/dist/esm/nv-breadcrumb.entry.js +1 -1
- package/dist/esm/nv-breadcrumbs.entry.js +1 -1
- package/dist/esm/nv-button.entry.js +1 -1
- package/dist/esm/nv-buttongroup.entry.js +1 -1
- package/dist/esm/nv-calendar.entry.js +1 -1
- package/dist/esm/nv-col.entry.js +2 -2
- package/dist/esm/nv-datagrid.entry.js +1 -1
- package/dist/esm/nv-datagridcolumn.entry.js +1 -1
- package/dist/esm/nv-datetest.entry.js +1 -1
- package/dist/esm/nv-datetimetest.entry.js +1 -1
- package/dist/esm/nv-dialog.entry.js +1 -1
- package/dist/esm/nv-dialogfooter_2.entry.js +6 -4
- package/dist/esm/nv-drawer.entry.js +1 -1
- package/dist/esm/nv-drawerfooter_2.entry.js +4 -2
- package/dist/esm/nv-fieldcheckbox.entry.js +5 -5
- package/dist/esm/nv-fielddate.entry.js +2 -2
- package/dist/esm/nv-fielddaterange.entry.js +2 -2
- package/dist/esm/nv-fielddropdown.entry.js +2 -2
- package/dist/esm/nv-fielddropdownitem.entry.js +1 -1
- package/dist/esm/nv-fieldmultiselect.entry.js +115 -86
- package/dist/esm/nv-fieldnumber.entry.js +2 -2
- package/dist/esm/nv-fieldpassword.entry.js +2 -2
- package/dist/esm/nv-fieldradio.entry.js +1 -1
- package/dist/esm/nv-fieldselect.entry.js +2 -2
- package/dist/esm/nv-fieldslider.entry.js +1 -1
- package/dist/esm/nv-fieldtext.entry.js +2 -2
- package/dist/esm/nv-fieldtextarea.entry.js +2 -2
- package/dist/esm/nv-fieldtime.entry.js +15 -12
- package/dist/esm/nv-icon.entry.js +2 -2
- package/dist/esm/nv-iconbutton_2.entry.js +2 -2
- package/dist/esm/nv-menu.entry.js +1 -1
- 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 +2 -2
- package/dist/esm/nv-notificationcontainer.entry.js +1 -1
- package/dist/esm/nv-pagination-nav.entry.js +1 -1
- package/dist/esm/nv-paginationtable.entry.js +1 -1
- package/dist/esm/nv-popover.entry.js +1 -1
- package/dist/esm/nv-row.entry.js +2 -2
- package/dist/esm/nv-sidebar.entry.js +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 +3 -3
- package/dist/esm/nv-sidebarnavsubitem.entry.js +1 -1
- package/dist/esm/nv-split.entry.js +1 -1
- package/dist/esm/nv-stack.entry.js +1 -1
- package/dist/esm/nv-table.entry.js +2 -2
- package/dist/esm/nv-tableheader.entry.js +1 -1
- package/dist/esm/nv-timetest.entry.js +1 -1
- package/dist/esm/nv-toggle.entry.js +1 -1
- package/dist/esm/nv-togglebutton.entry.js +1 -1
- package/dist/esm/nv-togglebuttongroup.entry.js +1 -1
- package/dist/esm/nv-tooltip.entry.js +1 -1
- package/dist/lib/generators/docs-blazor.js +7 -1
- package/dist/native/native.css +1 -1
- package/dist/native/native.esm.js +1 -1
- package/dist/native/p-04e40a1e.entry.js +1 -0
- package/dist/native/{p-493c1bb5.entry.js → p-0770997b.entry.js} +1 -1
- package/dist/native/{p-dc2ce8ee.entry.js → p-07f3200b.entry.js} +1 -1
- package/dist/native/{p-767ee0fc.entry.js → p-0a17050f.entry.js} +1 -1
- package/dist/native/{p-213c5836.entry.js → p-0d03b6ed.entry.js} +1 -1
- package/dist/native/{p-12a8443b.entry.js → p-0d3ab890.entry.js} +1 -1
- package/dist/native/{p-d8120afd.entry.js → p-0f59cb66.entry.js} +1 -1
- package/dist/native/{p-4bf96114.entry.js → p-0f9a284e.entry.js} +1 -1
- package/dist/native/{p-90b8b889.entry.js → p-12269ed5.entry.js} +1 -1
- package/dist/native/{p-fd5e27ae.entry.js → p-1450d746.entry.js} +1 -1
- package/dist/native/{p-f9612edf.entry.js → p-16600d93.entry.js} +1 -1
- package/dist/native/{p-1029a266.entry.js → p-1bc76216.entry.js} +1 -1
- package/dist/native/{p-b3477504.entry.js → p-1ea2a804.entry.js} +1 -1
- package/dist/native/{p-6d8d2088.entry.js → p-26c0c34b.entry.js} +1 -1
- package/dist/native/{p-9709c7d5.entry.js → p-27ecae3c.entry.js} +1 -1
- package/dist/native/{p-89348af5.entry.js → p-2b1efb98.entry.js} +1 -1
- package/dist/native/{p-05f7bad5.entry.js → p-2d37df11.entry.js} +1 -1
- package/dist/native/{p-7aa4605d.entry.js → p-2d5189eb.entry.js} +1 -1
- package/dist/native/{p-fab2f2b3.entry.js → p-2e40d5d9.entry.js} +1 -1
- package/dist/native/{p-0fe84123.entry.js → p-2e932ca4.entry.js} +1 -1
- package/dist/native/{p-5c003e50.entry.js → p-336d63c4.entry.js} +1 -1
- package/dist/native/p-3afa34d1.entry.js +1 -0
- package/dist/native/{p-37c41059.entry.js → p-3ddc967e.entry.js} +1 -1
- package/dist/native/{p-8e1bcadc.entry.js → p-48c1bab4.entry.js} +1 -1
- package/dist/native/{p-72d8cb56.entry.js → p-49c6d122.entry.js} +1 -1
- package/dist/native/{p-1e03fc3c.entry.js → p-4badca4e.entry.js} +1 -1
- package/dist/native/{p-e3fb16af.entry.js → p-4bb9b387.entry.js} +1 -1
- package/dist/native/{p-63f2f87f.entry.js → p-568fbdac.entry.js} +1 -1
- package/dist/native/{p-c5d97054.entry.js → p-59ecaf60.entry.js} +1 -1
- package/dist/native/p-5cefca3c.entry.js +1 -0
- package/dist/native/{p-148c1d3e.entry.js → p-5f6e45ca.entry.js} +1 -1
- package/dist/native/{p-fb34fc7d.entry.js → p-6f1213fb.entry.js} +1 -1
- package/dist/native/{p-5ce3d30b.entry.js → p-6f91712c.entry.js} +1 -1
- package/dist/native/{p-95a9d385.entry.js → p-706eeea4.entry.js} +1 -1
- package/dist/native/{p-c56ffa82.entry.js → p-7126f67e.entry.js} +1 -1
- package/dist/native/{p-5ef0ed10.entry.js → p-748661f0.entry.js} +1 -1
- package/dist/native/{p-644ecff8.entry.js → p-7b545176.entry.js} +1 -1
- package/dist/native/{p-291b297d.entry.js → p-7bb2536f.entry.js} +1 -1
- package/dist/native/{p-a16f8a14.entry.js → p-7fd6f0b0.entry.js} +1 -1
- package/dist/native/{p-ac765e6a.entry.js → p-803759ef.entry.js} +1 -1
- package/dist/native/{p-cfa0eb58.entry.js → p-8e05077a.entry.js} +1 -1
- package/dist/native/{p-25ef7329.entry.js → p-92539825.entry.js} +1 -1
- package/dist/native/p-943a4dfd.entry.js +1 -0
- package/dist/native/{p-7ec28d5d.entry.js → p-96078a63.entry.js} +1 -1
- package/dist/native/{p-2af6d988.entry.js → p-9a05395d.entry.js} +1 -1
- package/dist/native/{p-3c4114b8.entry.js → p-9b8478a7.entry.js} +1 -1
- package/dist/native/{p-BCjiE1MF.js → p-DU3Vhh_k.js} +1 -1
- package/dist/native/{p-67e0680e.entry.js → p-a5e39524.entry.js} +1 -1
- package/dist/native/{p-0bb64497.entry.js → p-b7436a14.entry.js} +1 -1
- package/dist/native/{p-58966e0f.entry.js → p-bff549dd.entry.js} +1 -1
- package/dist/native/{p-5ea697a7.entry.js → p-c20e0b5f.entry.js} +1 -1
- package/dist/native/p-ca4ab8a5.entry.js +1 -0
- package/dist/native/{p-4ac8181c.entry.js → p-d468c445.entry.js} +1 -1
- package/dist/native/p-d5060f92.entry.js +1 -0
- package/dist/native/{p-083b39c5.entry.js → p-d5e931c9.entry.js} +1 -1
- package/dist/native/p-dc647a64.entry.js +1 -0
- package/dist/native/{p-544b34d4.entry.js → p-df5c6b0c.entry.js} +1 -1
- package/dist/native/p-e8569a99.entry.js +1 -0
- package/dist/native/p-eb737344.entry.js +1 -0
- package/dist/native/{p-7c00f6da.entry.js → p-f078f10a.entry.js} +1 -1
- package/dist/native/{p-75a2a2ac.entry.js → p-f3756dfd.entry.js} +1 -1
- package/dist/native/{p-d5f5a6e1.entry.js → p-f3ded7e8.entry.js} +1 -1
- package/dist/native/{p-f7522dac.entry.js → p-f7fdca43.entry.js} +1 -1
- 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-row/nv-row.d.ts +1 -0
- package/dist/types/components/nv-sidebarnavitem/nv-sidebarnavitem.d.ts +2 -1
- package/dist/types/components.d.ts +76 -28
- package/dist/vscode-data.json +18259 -2639
- package/hydrate/index.js +170 -131
- package/hydrate/index.mjs +170 -131
- package/package.json +1 -1
- package/dist/components/p-CrRawrjU.js +0 -1
- package/dist/components/p-D2C_Qr5O.js +0 -1
- package/dist/components/p-DUaenjr8.js +0 -1
- package/dist/components/p-DVFofrTe.js +0 -1
- package/dist/native/p-1d7a27bb.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-7d164a7a.entry.js +0 -1
- package/dist/native/p-9fc95cf3.entry.js +0 -1
- package/dist/native/p-c2c826a4.entry.js +0 -1
- package/dist/native/p-d3e66306.entry.js +0 -1
- package/dist/native/p-e46c35a0.entry.js +0 -1
- package/dist/native/p-ec23ce93.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
|
|
@@ -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
|
|
@@ -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
|
|
@@ -2,7 +2,7 @@ import { h } from "@stencil/core";
|
|
|
2
2
|
import { nameof } from "../../utils/class.utils";
|
|
3
3
|
const NvFieldtextDocs = {
|
|
4
4
|
component: 'nv-fieldtext',
|
|
5
|
-
parentGroup: 'Fields
|
|
5
|
+
parentGroup: 'Fields',
|
|
6
6
|
subcomponents: ['nv-badge', 'nv-button', 'nv-icon'],
|
|
7
7
|
stories: [
|
|
8
8
|
// Default
|
|
@@ -218,7 +218,8 @@ const NvFieldtextDocs = {
|
|
|
218
218
|
description: 'Deprecated: Use errorDescription and set the error prop instead. Add the message to the validation state.',
|
|
219
219
|
args: {
|
|
220
220
|
label: 'Validation (Deprecated)',
|
|
221
|
-
|
|
221
|
+
error: true,
|
|
222
|
+
errorDescription: 'This is a validation message',
|
|
222
223
|
},
|
|
223
224
|
template: h("nv-fieldtext", { "data-storybook-args": true }),
|
|
224
225
|
},
|
|
@@ -3,7 +3,7 @@ import { nameof } from "../../utils/class.utils";
|
|
|
3
3
|
import { faker } from "@faker-js/faker";
|
|
4
4
|
const NvFieldtextareaDocs = {
|
|
5
5
|
component: 'nv-fieldtextarea',
|
|
6
|
-
parentGroup: 'Fields
|
|
6
|
+
parentGroup: 'Fields',
|
|
7
7
|
subcomponents: ['nv-badge', 'nv-button'],
|
|
8
8
|
stories: [
|
|
9
9
|
// Default
|
|
@@ -162,19 +162,20 @@ export class NvFieldtime {
|
|
|
162
162
|
/****************************************************************************/
|
|
163
163
|
//#region WATCHERS
|
|
164
164
|
handleValueChange(newValue) {
|
|
165
|
-
// Parse the new value and
|
|
165
|
+
// Parse the new value and update internal state (hours, minutes, seconds)
|
|
166
|
+
// so the input fields reflect the new value
|
|
166
167
|
if (newValue) {
|
|
167
168
|
const components = parseValueByFormat(newValue, this.format);
|
|
168
169
|
const formattedValue = reconstructTimeByFormat(components, this.format);
|
|
169
|
-
//
|
|
170
|
-
|
|
170
|
+
// Update internal state from parsed components
|
|
171
|
+
this.hours = components.hours;
|
|
172
|
+
this.minutes = components.minutes;
|
|
173
|
+
this.seconds = components.seconds;
|
|
174
|
+
// Ensure format consistency by correcting the value if needed
|
|
171
175
|
if (formattedValue !== newValue) {
|
|
172
176
|
this.value = formattedValue;
|
|
173
|
-
return; // The watcher will be called again with the formatted value
|
|
174
177
|
}
|
|
175
178
|
}
|
|
176
|
-
// Emit the value in the correct format
|
|
177
|
-
this.valueChanged.emit(newValue);
|
|
178
179
|
}
|
|
179
180
|
handleOpenChange(newOpen) {
|
|
180
181
|
// React to external changes, e.g., highlight current time on open
|
|
@@ -232,8 +233,9 @@ export class NvFieldtime {
|
|
|
232
233
|
}
|
|
233
234
|
// Reconstruct time from inputs in the correct format
|
|
234
235
|
const reconstructedValue = this.reconstructTime();
|
|
235
|
-
// Update the value
|
|
236
|
+
// Update the value and emit the event
|
|
236
237
|
this.value = reconstructedValue;
|
|
238
|
+
this.valueChanged.emit(this.value);
|
|
237
239
|
}
|
|
238
240
|
handleHoursChange(inputValue, type) {
|
|
239
241
|
const isHHFormat = this.format.startsWith('HH');
|
|
@@ -511,6 +513,7 @@ export class NvFieldtime {
|
|
|
511
513
|
// Reconstruct time in the correct format and update value
|
|
512
514
|
const reconstructedTime = this.reconstructTime();
|
|
513
515
|
this.value = reconstructedTime;
|
|
516
|
+
this.valueChanged.emit(this.value);
|
|
514
517
|
}
|
|
515
518
|
handleInputBlur() {
|
|
516
519
|
// Use a delay to check if the focus is still within the popover
|
|
@@ -871,9 +874,9 @@ export class NvFieldtime {
|
|
|
871
874
|
}, key: `${option}-${index}`, onClick: e => this.handleTimeOptionClick(e, type) }, option)))));
|
|
872
875
|
}
|
|
873
876
|
render() {
|
|
874
|
-
return (h(Host, { key: '
|
|
875
|
-
this.el.querySelector('[slot="description"]')) && (h("div", { key: '
|
|
876
|
-
this.el.querySelector('[slot="error-description"]')) && (h("div", { key: '
|
|
877
|
+
return (h(Host, { key: '59c076ed360d59fe366374d22d05f7c30fdd4efd', onclick: (e) => this.handleHostClick(e), "aria-expanded": this.open ? 'true' : 'false' }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { key: '7cae0b1839180516de2ba8339503f4e5b19178b1', htmlFor: this.inputId }, h("slot", { key: '029688233c5a436191f767921f3c1e127e7786af', name: "label" }, this.label))), h("nv-popover", { key: '98c5ff80b83ac3cba41d57f4fc1c1d14dcc587d6', ref: el => (this.popoverElement = el), triggerMode: "controlled", placement: "bottom-start", open: this.open, onOpenChanged: this.handleOpenChanged }, h("div", { key: 'd313a5cde67d348b0f657f9cc6aedb8013ab606d', class: "input-wrapper", slot: "trigger" }, h("slot", { key: 'ada8a25275a2549048055528db4d24a258079147', name: "before-input" }), h("div", { key: 'c397cf2d2d73ffc0f481808a536b016d4bac891d', class: "input-container" }, h("slot", { key: 'e42c36e64a027a87db5f2b641daa063d8b81dac6', name: "leading-input" }), this.renderTimeInputFields(), h("nv-iconbutton", { key: '81d8f917c49209dfe4fb7b1322855cff67e0f417', name: 'clock', size: "md", emphasis: "lower", "aria-label": this.open ? 'Hide time picker' : 'Show time picker', onClick: () => this.HandleDropdownIconClick() }), this.error && (h("nv-icon", { key: '075775e8912d1027f0c404523bff3f18dd521dbf', name: "alert-circle", class: "validation", size: "sm" })), this.success && (h("nv-icon", { key: 'ae6c334e9900ff4e0d95276911d93ba5b235c513', name: "circle-check", class: "validation", size: "sm" }))), h("slot", { key: '293dadc5492be6a9b45d1f91d1b46dff34e76167', name: "after-input" })), h("div", { key: '35f18e81eebc1c58900a15d3f1054e91205173b4', class: "time-dropdown", slot: "content" }, h("div", { key: 'aacd26f7556d59f483c471648199d81dda8f215e', class: "time-columns" }, this.renderTimeDropdownColumns()))), (this.description ||
|
|
878
|
+
this.el.querySelector('[slot="description"]')) && (h("div", { key: '9a5d4692f22002666cf94145e9627ecbb60e33c8', class: "description" }, h("slot", { key: '9aa402c8732e6cf18990acf6a89e79935a3e30d6', name: "description" }, this.description))), (this.errorDescription ||
|
|
879
|
+
this.el.querySelector('[slot="error-description"]')) && (h("div", { key: '76254a0fd326a71f69ad23f61e9cc4fdc545bbe1', hidden: !this.error, class: "error-description" }, h("slot", { key: '4c813cb95e17e4d8280edef288a6e1a35119c0c4', name: "error-description" }, this.errorDescription)))));
|
|
877
880
|
}
|
|
878
881
|
static get is() { return "nv-fieldtime"; }
|
|
879
882
|
static get formAssociated() { return true; }
|
|
@@ -264,6 +264,9 @@ nv-fieldtime .error-description {
|
|
|
264
264
|
line-height: var(--form-description-line-height);
|
|
265
265
|
color: var(--components-form-text-description-error);
|
|
266
266
|
}
|
|
267
|
+
nv-fieldtime .error-description[hidden] {
|
|
268
|
+
display: none;
|
|
269
|
+
}
|
|
267
270
|
nv-fieldtime hr {
|
|
268
271
|
border: none;
|
|
269
272
|
border-top: 1px solid var(--dropdown-divider-color, #ccc);
|