@nova-design-system/nova-webcomponents 3.0.0-beta.46 → 3.0.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-9bda5507.js +0 -4
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/native.cjs.js +1 -1
- package/dist/cjs/nv-badge_2.cjs.entry.js +1 -1
- 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-calendar.cjs.entry.js +48 -19
- package/dist/cjs/nv-calendar.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-col.cjs.entry.js +1 -1
- package/dist/cjs/nv-datagrid.cjs.entry.js +351 -91
- package/dist/cjs/nv-datagrid.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-datagridcolumn.cjs.entry.js +1 -1
- package/dist/cjs/nv-dialog.cjs.entry.js +1 -1
- package/dist/cjs/nv-dialogfooter_2.cjs.entry.js +2 -2
- package/dist/cjs/nv-fieldcheckbox.cjs.entry.js +4 -4
- package/dist/cjs/nv-fielddate.cjs.entry.js +5 -5
- package/dist/cjs/nv-fielddaterange.cjs.entry.js +4 -4
- package/dist/cjs/nv-fielddropdown.cjs.entry.js +15 -29
- package/dist/cjs/nv-fielddropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fielddropdownitem.cjs.entry.js +1 -1
- package/dist/cjs/nv-fieldmultiselect.cjs.entry.js +28 -71
- package/dist/cjs/nv-fieldmultiselect.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldnumber.cjs.entry.js +3 -3
- package/dist/cjs/nv-fieldnumber.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldpassword.cjs.entry.js +3 -3
- package/dist/cjs/nv-fieldradio.cjs.entry.js +3 -3
- package/dist/cjs/nv-fieldselect.cjs.entry.js +5 -5
- package/dist/cjs/nv-fieldtext.cjs.entry.js +3 -3
- package/dist/cjs/nv-fieldtextarea.cjs.entry.js +3 -3
- package/dist/cjs/nv-fieldtime.cjs.entry.js +9 -9
- package/dist/cjs/nv-icon.cjs.entry.js +1 -1
- package/dist/cjs/nv-iconbutton_2.cjs.entry.js +2 -2
- package/dist/cjs/nv-menu.cjs.entry.js +16 -42
- package/dist/cjs/nv-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-menuitem.cjs.entry.js +1 -1
- package/dist/cjs/nv-popover.cjs.entry.js +1 -1
- package/dist/cjs/nv-row.cjs.entry.js +1 -1
- package/dist/cjs/nv-stack.cjs.entry.js +1 -1
- package/dist/cjs/nv-stack.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-table.cjs.entry.js +2 -2
- package/dist/cjs/nv-toggle.cjs.entry.js +2 -2
- package/dist/cjs/nv-tooltip.cjs.entry.js +1 -1
- package/dist/collection/collection-manifest.json +0 -1
- 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-calendar/nv-calendar.docs.js +0 -9
- package/dist/collection/components/nv-calendar/nv-calendar.docs.js.map +1 -1
- package/dist/collection/components/nv-calendar/nv-calendar.js +48 -19
- package/dist/collection/components/nv-calendar/nv-calendar.js.map +1 -1
- package/dist/collection/components/nv-col/nv-col.js +1 -1
- package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js +542 -75
- package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js.map +1 -1
- package/dist/collection/components/nv-datagrid/nv-datagrid.js +366 -95
- package/dist/collection/components/nv-datagrid/nv-datagrid.js.map +1 -1
- package/dist/collection/components/nv-datagridcolumn/nv-datagridcolumn.js +1 -1
- package/dist/collection/components/nv-dialog/nv-dialog.js +1 -1
- package/dist/collection/components/nv-dialogfooter/nv-dialogfooter.js +1 -1
- package/dist/collection/components/nv-dialogheader/nv-dialogheader.js +1 -1
- package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js +4 -4
- package/dist/collection/components/nv-fielddate/nv-fielddate.js +5 -5
- package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js +4 -4
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js +8 -8
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js.map +1 -1
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js +22 -39
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js.map +1 -1
- package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.js +1 -1
- package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.js +1 -1
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js +6 -6
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js +35 -85
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js.map +1 -1
- package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js +3 -3
- package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js.map +1 -1
- package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js +3 -3
- package/dist/collection/components/nv-fieldradio/nv-fieldradio.js +3 -3
- package/dist/collection/components/nv-fieldselect/nv-fieldselect.js +5 -5
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.js +3 -3
- package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js +3 -3
- package/dist/collection/components/nv-fieldtime/nv-fieldtime.js +9 -9
- package/dist/collection/components/nv-icon/nv-icon.js +1 -1
- package/dist/collection/components/nv-iconbutton/nv-iconbutton.js +1 -1
- package/dist/collection/components/nv-loader/nv-loader.js +1 -1
- package/dist/collection/components/nv-menu/nv-menu.docs.js +3 -3
- package/dist/collection/components/nv-menu/nv-menu.docs.js.map +1 -1
- package/dist/collection/components/nv-menu/nv-menu.js +31 -59
- package/dist/collection/components/nv-menu/nv-menu.js.map +1 -1
- package/dist/collection/components/nv-menuitem/nv-menuitem.js +1 -1
- package/dist/collection/components/nv-popover/nv-popover.js +1 -1
- package/dist/collection/components/nv-row/nv-row.js +1 -1
- package/dist/collection/components/nv-stack/nv-stack.docs.js +7 -6
- package/dist/collection/components/nv-stack/nv-stack.docs.js.map +1 -1
- package/dist/collection/components/nv-stack/nv-stack.js +1 -1
- package/dist/collection/components/nv-stack/nv-stack.js.map +1 -1
- package/dist/collection/components/nv-table/nv-table.js +2 -2
- package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
- package/dist/collection/components/nv-tooltip/nv-tooltip.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 +3 -3
- package/dist/components/nv-breadcrumbs.js +1 -1
- package/dist/components/nv-button.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 +359 -94
- package/dist/components/nv-datagrid.js.map +1 -1
- package/dist/components/nv-datagridcolumn.js +1 -1
- package/dist/components/nv-dialog.js +6 -6
- package/dist/components/nv-dialogfooter.js +1 -1
- package/dist/components/nv-dialogheader.js +1 -1
- package/dist/components/nv-fieldcheckbox.js +1 -1
- package/dist/components/nv-fielddate.js +12 -12
- package/dist/components/nv-fielddaterange.js +11 -11
- package/dist/components/nv-fielddropdown.js +21 -36
- package/dist/components/nv-fielddropdown.js.map +1 -1
- package/dist/components/nv-fielddropdownitem.js +1 -1
- package/dist/components/nv-fielddropdownitemcheck.js +1 -1
- package/dist/components/nv-fieldmultiselect.js +36 -81
- package/dist/components/nv-fieldmultiselect.js.map +1 -1
- package/dist/components/nv-fieldnumber.js +6 -6
- package/dist/components/nv-fieldnumber.js.map +1 -1
- package/dist/components/nv-fieldpassword.js +6 -6
- package/dist/components/nv-fieldradio.js +3 -3
- package/dist/components/nv-fieldselect.js +8 -8
- package/dist/components/nv-fieldtext.js +4 -4
- package/dist/components/nv-fieldtextarea.js +3 -3
- package/dist/components/nv-fieldtime.js +13 -13
- 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 +21 -50
- package/dist/components/nv-menu.js.map +1 -1
- package/dist/components/nv-menuitem.js +1 -1
- package/dist/components/nv-popover.js +1 -1
- package/dist/components/nv-row.js +1 -1
- package/dist/components/nv-stack.js +1 -1
- package/dist/components/nv-stack.js.map +1 -1
- package/dist/components/nv-table.js +2 -2
- package/dist/components/nv-toggle.js +2 -2
- package/dist/components/nv-tooltip.js +1 -1
- package/dist/components/{p-d88ced51.js → p-02752770.js} +2 -2
- package/dist/components/{p-d88ced51.js.map → p-02752770.js.map} +1 -1
- package/dist/components/{p-7b89fb48.js → p-150daf68.js} +2 -2
- package/dist/components/{p-7b89fb48.js.map → p-150daf68.js.map} +1 -1
- package/dist/components/{p-56ef8131.js → p-2012b8ba.js} +3 -3
- package/dist/components/{p-56ef8131.js.map → p-2012b8ba.js.map} +1 -1
- package/dist/components/{p-8674c7af.js → p-2d9ba7d3.js} +3 -3
- package/dist/components/{p-8674c7af.js.map → p-2d9ba7d3.js.map} +1 -1
- package/dist/components/{p-5a5f11c2.js → p-373926aa.js} +2 -2
- package/dist/components/{p-5a5f11c2.js.map → p-373926aa.js.map} +1 -1
- package/dist/components/{p-dcabc6fa.js → p-4d3ec142.js} +3 -3
- package/dist/components/{p-dcabc6fa.js.map → p-4d3ec142.js.map} +1 -1
- package/dist/components/{p-91b58443.js → p-591730e7.js} +2 -2
- package/dist/components/{p-91b58443.js.map → p-591730e7.js.map} +1 -1
- package/dist/components/{p-b4768da6.js → p-6c364a23.js} +5 -5
- package/dist/components/{p-b4768da6.js.map → p-6c364a23.js.map} +1 -1
- package/dist/components/{p-f469df15.js → p-a30b55fc.js} +2 -2
- package/dist/components/{p-f469df15.js.map → p-a30b55fc.js.map} +1 -1
- package/dist/components/{p-664c5a14.js → p-b7b78e64.js} +2 -2
- package/dist/components/{p-664c5a14.js.map → p-b7b78e64.js.map} +1 -1
- package/dist/components/{p-8c5a861b.js → p-c14f6b8e.js} +3 -3
- package/dist/components/{p-8c5a861b.js.map → p-c14f6b8e.js.map} +1 -1
- package/dist/components/{p-a9e1bf70.js → p-dc3faba3.js} +4 -4
- package/dist/components/{p-a9e1bf70.js.map → p-dc3faba3.js.map} +1 -1
- package/dist/components/{p-9d6aaf76.js → p-e00cbb8a.js} +5 -5
- package/dist/components/{p-9d6aaf76.js.map → p-e00cbb8a.js.map} +1 -1
- package/dist/components/{p-a9f162a8.js → p-f331117c.js} +53 -24
- package/dist/components/p-f331117c.js.map +1 -0
- package/dist/components/{p-18bc0291.js → p-f4d86795.js} +3 -3
- package/dist/components/{p-18bc0291.js.map → p-f4d86795.js.map} +1 -1
- package/dist/esm/index-1fb7a9a6.js +0 -4
- package/dist/esm/loader.js +1 -1
- package/dist/esm/native.js +1 -1
- package/dist/esm/nv-badge_2.entry.js +1 -1
- 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-calendar.entry.js +48 -19
- package/dist/esm/nv-calendar.entry.js.map +1 -1
- package/dist/esm/nv-col.entry.js +1 -1
- package/dist/esm/nv-datagrid.entry.js +351 -91
- package/dist/esm/nv-datagrid.entry.js.map +1 -1
- package/dist/esm/nv-datagridcolumn.entry.js +1 -1
- package/dist/esm/nv-dialog.entry.js +1 -1
- package/dist/esm/nv-dialogfooter_2.entry.js +2 -2
- package/dist/esm/nv-fieldcheckbox.entry.js +4 -4
- package/dist/esm/nv-fielddate.entry.js +5 -5
- package/dist/esm/nv-fielddaterange.entry.js +4 -4
- package/dist/esm/nv-fielddropdown.entry.js +15 -29
- package/dist/esm/nv-fielddropdown.entry.js.map +1 -1
- package/dist/esm/nv-fielddropdownitem.entry.js +1 -1
- package/dist/esm/nv-fieldmultiselect.entry.js +28 -71
- package/dist/esm/nv-fieldmultiselect.entry.js.map +1 -1
- package/dist/esm/nv-fieldnumber.entry.js +3 -3
- package/dist/esm/nv-fieldnumber.entry.js.map +1 -1
- package/dist/esm/nv-fieldpassword.entry.js +3 -3
- package/dist/esm/nv-fieldradio.entry.js +3 -3
- package/dist/esm/nv-fieldselect.entry.js +5 -5
- package/dist/esm/nv-fieldtext.entry.js +3 -3
- package/dist/esm/nv-fieldtextarea.entry.js +3 -3
- package/dist/esm/nv-fieldtime.entry.js +9 -9
- package/dist/esm/nv-icon.entry.js +1 -1
- package/dist/esm/nv-iconbutton_2.entry.js +2 -2
- package/dist/esm/nv-menu.entry.js +16 -42
- package/dist/esm/nv-menu.entry.js.map +1 -1
- package/dist/esm/nv-menuitem.entry.js +1 -1
- package/dist/esm/nv-popover.entry.js +1 -1
- package/dist/esm/nv-row.entry.js +1 -1
- package/dist/esm/nv-stack.entry.js +1 -1
- package/dist/esm/nv-stack.entry.js.map +1 -1
- package/dist/esm/nv-table.entry.js +2 -2
- package/dist/esm/nv-toggle.entry.js +2 -2
- package/dist/esm/nv-tooltip.entry.js +1 -1
- package/dist/native/native.esm.js +1 -1
- package/dist/native/native.esm.js.map +1 -1
- package/dist/native/p-0245863d.entry.js +2 -0
- package/dist/native/{p-8946883b.entry.js → p-0ee428d5.entry.js} +2 -2
- package/dist/native/{p-8f7c1bb8.entry.js → p-244f56ac.entry.js} +2 -2
- package/dist/native/p-2691e02d.entry.js +2 -0
- package/dist/native/{p-aeac63ea.entry.js → p-37f0210e.entry.js} +2 -2
- package/dist/native/{p-000ef9c9.entry.js → p-39bb95ff.entry.js} +2 -2
- package/dist/native/{p-76cd466a.entry.js → p-4ae26462.entry.js} +2 -2
- package/dist/native/{p-75f4bfe8.entry.js → p-4d9c4618.entry.js} +2 -2
- package/dist/native/p-4d9c4618.entry.js.map +1 -0
- package/dist/native/{p-d4e48d08.entry.js → p-59e0bd2b.entry.js} +2 -2
- package/dist/native/{p-d4e48d08.entry.js.map → p-59e0bd2b.entry.js.map} +1 -1
- package/dist/native/{p-626a1372.entry.js → p-5c00f092.entry.js} +2 -2
- package/dist/native/p-63e6aed3.entry.js +2 -0
- package/dist/native/p-63e6aed3.entry.js.map +1 -0
- package/dist/native/{p-4fe5ebe9.entry.js → p-6b348684.entry.js} +2 -2
- package/dist/native/{p-aa957898.entry.js → p-6ff228da.entry.js} +2 -2
- package/dist/native/{p-aa957898.entry.js.map → p-6ff228da.entry.js.map} +1 -1
- package/dist/native/{p-74f7f404.entry.js → p-701b5557.entry.js} +2 -2
- package/dist/native/{p-002e7bf1.entry.js → p-7f5eb2ac.entry.js} +2 -2
- package/dist/native/{p-e4f84faa.entry.js → p-84a73e2a.entry.js} +2 -2
- package/dist/native/p-9135fdf5.entry.js +2 -0
- package/dist/native/p-93dc2f47.entry.js +2 -0
- package/dist/native/{p-7e1fa44c.entry.js.map → p-93dc2f47.entry.js.map} +1 -1
- package/dist/native/{p-be5f62e5.entry.js → p-9a267f16.entry.js} +2 -2
- package/dist/native/p-9a267f16.entry.js.map +1 -0
- package/dist/native/{p-60d6ffa3.entry.js → p-9d6431c7.entry.js} +2 -2
- package/dist/native/{p-b11fdaed.entry.js → p-b094296d.entry.js} +2 -2
- package/dist/native/{p-43cc98dc.entry.js → p-b2ce83ad.entry.js} +2 -2
- package/dist/native/{p-115ad66c.entry.js → p-bad11367.entry.js} +2 -2
- package/dist/native/{p-6603d939.entry.js → p-c7b201cd.entry.js} +2 -2
- package/dist/native/{p-4c859a14.entry.js → p-d7a76400.entry.js} +2 -2
- package/dist/native/p-e1a4f776.entry.js +2 -0
- package/dist/native/p-e1a4f776.entry.js.map +1 -0
- package/dist/native/p-e49bbd02.entry.js +2 -0
- package/dist/native/p-e49bbd02.entry.js.map +1 -0
- package/dist/native/{p-98030346.entry.js → p-e5de64d5.entry.js} +2 -2
- package/dist/native/p-eee01062.entry.js +2 -0
- package/dist/native/{p-3df6febe.entry.js.map → p-eee01062.entry.js.map} +1 -1
- package/dist/native/{p-b6164ebc.entry.js → p-f6bdc270.entry.js} +2 -2
- package/dist/native/{p-50dcce07.entry.js → p-f85aca27.entry.js} +2 -2
- package/dist/native/{p-1e5453be.entry.js → p-fa77a591.entry.js} +2 -2
- package/dist/native/{p-d5158e27.entry.js → p-fb5bddba.entry.js} +2 -2
- package/dist/types/components/nv-calendar/nv-calendar.d.ts +10 -7
- package/dist/types/components/nv-datagrid/nv-datagrid.d.ts +37 -2
- package/dist/types/components/nv-fielddropdown/nv-fielddropdown.d.ts +16 -20
- package/dist/types/components/nv-fieldmultiselect/nv-fieldmultiselect.d.ts +16 -34
- package/dist/types/components/nv-menu/nv-menu.d.ts +46 -12
- package/dist/types/components.d.ts +174 -43
- package/dist/vscode-data.json +8 -20
- package/hydrate/index.js +535 -407
- package/hydrate/index.mjs +535 -407
- package/package.json +3 -2
- package/dist/cjs/nv-base.cjs.entry.js +0 -74
- package/dist/cjs/nv-base.cjs.entry.js.map +0 -1
- package/dist/collection/components/nv-base/nv-base.docs.js +0 -5
- package/dist/collection/components/nv-base/nv-base.docs.js.map +0 -1
- package/dist/collection/components/nv-base/nv-base.js +0 -68
- package/dist/collection/components/nv-base/nv-base.js.map +0 -1
- package/dist/components/nv-base.d.ts +0 -11
- package/dist/components/nv-base.js +0 -88
- package/dist/components/nv-base.js.map +0 -1
- package/dist/components/p-a9f162a8.js.map +0 -1
- package/dist/esm/nv-base.entry.js +0 -70
- package/dist/esm/nv-base.entry.js.map +0 -1
- package/dist/native/p-2ed9934a.entry.js +0 -2
- package/dist/native/p-2ed9934a.entry.js.map +0 -1
- package/dist/native/p-3df6febe.entry.js +0 -2
- package/dist/native/p-4977fcd0.entry.js +0 -2
- package/dist/native/p-75f4bfe8.entry.js.map +0 -1
- package/dist/native/p-7e1fa44c.entry.js +0 -2
- package/dist/native/p-b8b58064.entry.js +0 -2
- package/dist/native/p-be5f62e5.entry.js.map +0 -1
- package/dist/native/p-c6fe73a9.entry.js +0 -2
- package/dist/native/p-c6fe73a9.entry.js.map +0 -1
- package/dist/native/p-ce64d562.entry.js +0 -2
- package/dist/native/p-d352a8b3.entry.js +0 -2
- package/dist/native/p-d352a8b3.entry.js.map +0 -1
- package/dist/native/p-e200185a.entry.js +0 -2
- package/dist/native/p-e200185a.entry.js.map +0 -1
- package/dist/types/components/nv-base/nv-base.d.ts +0 -17
- package/dist/types/components/nv-base/nv-base.docs.d.ts +0 -5
- /package/dist/native/{p-ce64d562.entry.js.map → p-0245863d.entry.js.map} +0 -0
- /package/dist/native/{p-8946883b.entry.js.map → p-0ee428d5.entry.js.map} +0 -0
- /package/dist/native/{p-8f7c1bb8.entry.js.map → p-244f56ac.entry.js.map} +0 -0
- /package/dist/native/{p-4977fcd0.entry.js.map → p-2691e02d.entry.js.map} +0 -0
- /package/dist/native/{p-aeac63ea.entry.js.map → p-37f0210e.entry.js.map} +0 -0
- /package/dist/native/{p-000ef9c9.entry.js.map → p-39bb95ff.entry.js.map} +0 -0
- /package/dist/native/{p-76cd466a.entry.js.map → p-4ae26462.entry.js.map} +0 -0
- /package/dist/native/{p-626a1372.entry.js.map → p-5c00f092.entry.js.map} +0 -0
- /package/dist/native/{p-4fe5ebe9.entry.js.map → p-6b348684.entry.js.map} +0 -0
- /package/dist/native/{p-74f7f404.entry.js.map → p-701b5557.entry.js.map} +0 -0
- /package/dist/native/{p-002e7bf1.entry.js.map → p-7f5eb2ac.entry.js.map} +0 -0
- /package/dist/native/{p-e4f84faa.entry.js.map → p-84a73e2a.entry.js.map} +0 -0
- /package/dist/native/{p-b8b58064.entry.js.map → p-9135fdf5.entry.js.map} +0 -0
- /package/dist/native/{p-60d6ffa3.entry.js.map → p-9d6431c7.entry.js.map} +0 -0
- /package/dist/native/{p-b11fdaed.entry.js.map → p-b094296d.entry.js.map} +0 -0
- /package/dist/native/{p-43cc98dc.entry.js.map → p-b2ce83ad.entry.js.map} +0 -0
- /package/dist/native/{p-115ad66c.entry.js.map → p-bad11367.entry.js.map} +0 -0
- /package/dist/native/{p-6603d939.entry.js.map → p-c7b201cd.entry.js.map} +0 -0
- /package/dist/native/{p-4c859a14.entry.js.map → p-d7a76400.entry.js.map} +0 -0
- /package/dist/native/{p-98030346.entry.js.map → p-e5de64d5.entry.js.map} +0 -0
- /package/dist/native/{p-b6164ebc.entry.js.map → p-f6bdc270.entry.js.map} +0 -0
- /package/dist/native/{p-50dcce07.entry.js.map → p-f85aca27.entry.js.map} +0 -0
- /package/dist/native/{p-1e5453be.entry.js.map → p-fa77a591.entry.js.map} +0 -0
- /package/dist/native/{p-d5158e27.entry.js.map → p-fb5bddba.entry.js.map} +0 -0
|
@@ -343,13 +343,13 @@ export class NvFieldselect {
|
|
|
343
343
|
* @returns {HTMLStencilElement} The HTML element to render.
|
|
344
344
|
*/
|
|
345
345
|
render() {
|
|
346
|
-
return (h(Host, { key: '
|
|
346
|
+
return (h(Host, { key: '38cb85c6698c5541793a1e5d34b36417cd743759' }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { key: 'd81b9837c43c1a19a2d87b51cede9e7c32bda50c', htmlFor: this.inputId }, h("slot", { key: '9d7c10281b117f2006ca1997f91e4e0b99fc5ab5', name: "label" }, this.label))), h("div", { key: '2796a31f2aac0604054c4542564fca77c2ac4272', class: "select-wrapper" }, h("slot", { key: '0407c6379597b09e1bb11ee6b43110b1d5fb98ea', name: "before-input" }), h("div", { key: 'c0ae999fc017fb0352b0a1cfe2ff75e313955f23', class: "select-container", onClick: this.handleSelectContainerClick }, h("slot", { key: 'ea2b63ddb3b70521b63e15efd1c3daf06c38cc0a', name: "leading-input" }), this.internalReadonly && (h("input", { key: 'f543f67c0360ac315ed873eb14a93af35dd90670', 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
|
|
347
347
|
? `${this.inputId}-error`
|
|
348
|
-
: `${this.inputId}-description` })), h("select", { key: '
|
|
348
|
+
: `${this.inputId}-description` })), h("select", { key: 'b2ae3854c40ea798069417127cd763c8a0db040e', id: this.inputId, ref: el => (this.selectElement = el), name: this.name, autofocus: this.autofocus, disabled: this.disabled, required: this.required, multiple: this.multiple, onChange: this.handleSelectChange, class: this.internalReadonly ? 'hidden' : '', "aria-label": this.label, "aria-describedby": this.error
|
|
349
349
|
? `${this.inputId}-error`
|
|
350
|
-
: `${this.inputId}-description` }, this.parsedOptions.length > 0 ? (this.parsedOptions.map(option => (h("option", { value: option.value, selected: option.selected, disabled: option.disabled }, option.label)))) : (h("slot", null))), h("div", { key: '
|
|
351
|
-
this.el.querySelector('[slot="description"]')) && (h("div", { key: '
|
|
352
|
-
this.el.querySelector('[slot="error-description"]')) && (h("div", { key: '
|
|
350
|
+
: `${this.inputId}-description` }, this.parsedOptions.length > 0 ? (this.parsedOptions.map(option => (h("option", { value: option.value, selected: option.selected, disabled: option.disabled }, option.label)))) : (h("slot", null))), h("div", { key: 'dd59af14105272eaa77218136f5b7b0b40a5b40b', class: "select-icons" }, this.error && (h("nv-icon", { key: '719e239472f6b697298682cc8d1b10933d3504ec', name: "alert-circle", class: "validation", size: "md" })), this.success && (h("nv-icon", { key: '5d63d5ddbcd8f46296bc067afd45f3921f4f3917', name: "circle-check", class: "validation", size: "md" })), !this.multiple && (h("nv-iconbutton", { key: '978a540682409a88ce55d2219dbeb9f2fc82cd51', name: "chevron-down", size: "md", emphasis: "lower", tabindex: -1 })))), h("slot", { key: '3483846a9f38be08caaf6f2b02332caefae0cbed', name: "after-input" })), (this.description ||
|
|
351
|
+
this.el.querySelector('[slot="description"]')) && (h("div", { key: '5b47c05942549b6e2238696132ab2f3c9af5b7f0', class: "description", id: `${this.inputId}-description` }, h("slot", { key: '46b7f053ae343949b540240e1ec438850bb9a015', name: "description" }, this.description))), (this.errorDescription ||
|
|
352
|
+
this.el.querySelector('[slot="error-description"]')) && (h("div", { key: '6126ab6967fc430c6a1d3ddfb191a98a8c2ecce9', class: "error-description", id: `${this.inputId}-error` }, h("slot", { key: 'afc6a0443c6fe1175213d36a2c59ffefe2923eab', name: "error-description" }, this.errorDescription)))));
|
|
353
353
|
}
|
|
354
354
|
static get is() { return "nv-fieldselect"; }
|
|
355
355
|
static get formAssociated() { return true; }
|
|
@@ -106,9 +106,9 @@ export class NvFieldtext {
|
|
|
106
106
|
/****************************************************************************/
|
|
107
107
|
//#region RENDER
|
|
108
108
|
render() {
|
|
109
|
-
return (h(Host, { key: '
|
|
110
|
-
this.el.querySelector('[slot="description"]')) && (h("div", { key: '
|
|
111
|
-
this.el.querySelector('[slot="error-description"]')) && (h("div", { key: '
|
|
109
|
+
return (h(Host, { key: 'e4891525becd4b0757ec380d45d9694ebc6c3318' }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { key: '1157e609be8150d014e9190dcf53f74bcee20119', htmlFor: this.inputId }, h("slot", { key: '888fb12e994f6f4f47bc2be496cd74aeedb628c0', name: "label" }, this.label))), h("div", { key: '0555b12dbbe5fa81f5af464d3b48c35b243aec32', class: "input-wrapper" }, h("slot", { key: '5210a9b903c560775453741d8815286dbe8bbb53', name: "before-input" }), h("div", { key: '7bc11232dfa46706982bf3645054a7a1f67832f9', class: "input-container", onClick: this.handleInputContainerClick }, h("slot", { key: '87abc6976b432a3dc51246c97564108f9baccff8', name: "leading-input" }), h("input", { key: 'b0c3e30bc5363f6b49ea1361005e125826184016', id: this.inputId, ref: e => (this.inputElement = e), placeholder: this.placeholder, name: this.name, type: this.type, disabled: this.disabled, readOnly: this.readonly, required: this.required, maxlength: this.maxlength, minlength: this.minlength, pattern: this.pattern, autofocus: this.autofocus, autocomplete: this.autocomplete, multiple: this.multiple, value: this.value, onInput: this.handleInput }), this.error && (h("nv-icon", { key: '5e359bc40906bbf2c63eb7d196dd8294b15dd672', name: "alert-circle", class: "validation", size: "md" })), this.success && (h("nv-icon", { key: '4812b31e512bf388fa84f9d35a949de5f9b86d59', name: "circle-check", class: "validation", size: "md" }))), h("slot", { key: '06922c63f02470be6c74ee6ba4bf93baabd03e57', name: "after-input" })), (this.description ||
|
|
110
|
+
this.el.querySelector('[slot="description"]')) && (h("div", { key: '960bcb53a55aed3e1b8cd1b193ad26f5c6b151fd', class: "description" }, h("slot", { key: '07c09b8543e9b91928821a100869943de94a65a7', name: "description" }, this.description))), (this.errorDescription ||
|
|
111
|
+
this.el.querySelector('[slot="error-description"]')) && (h("div", { key: '456d00a47f01f70938d99faa774da1a9e51b036d', hidden: !this.error, class: "error-description" }, h("slot", { key: '590aef8c37efd2fa472c9b7b92fd82d29c4e6d39', name: "error-description" }, this.errorDescription)))));
|
|
112
112
|
}
|
|
113
113
|
static get is() { return "nv-fieldtext"; }
|
|
114
114
|
static get formAssociated() { return true; }
|
|
@@ -173,9 +173,9 @@ export class NvFieldtextarea {
|
|
|
173
173
|
/****************************************************************************/
|
|
174
174
|
//#region RENDER
|
|
175
175
|
render() {
|
|
176
|
-
return (h(Host, { key: '
|
|
177
|
-
this.el.querySelector('[slot="description"]')) && (h("div", { key: '
|
|
178
|
-
this.el.querySelector('[slot="error-description"]')) && (h("div", { key: '
|
|
176
|
+
return (h(Host, { key: '606902cda67b3f523ab32d8e9c6fd11b6bc0f3a7' }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { key: '3167dfd5f17028ad20a82b5646ccfa788a5bbb86', htmlFor: this.inputId }, h("slot", { key: 'ae98d87f3e1b7cb2864b6b7e7183d3a37c1a7e14', name: "label" }, this.label))), h("div", { key: '8f25bdadd8f94938dc9b6c631b0586fc6bcbc37c', class: "textarea-wrapper" }, h("div", { key: '6568df9f332e8bca84445ba596d6eceaaed64b9e', class: "textarea-container", onClick: this.handleTextareaContainerClick }, h("textarea", { key: 'fca9ba5bd6925cc1a201625e5785ad451fc8849b', id: this.inputId, ref: e => (this.textareaElement = e), placeholder: this.placeholder, autofocus: this.autofocus, name: this.name, disabled: this.disabled, readOnly: this.readonly, required: this.required, maxlength: this.maxlength, minlength: this.minlength, autocomplete: "off", value: this.value, onInput: this.handleTextarea, rows: this.rows, class: clsx(this.resize === 'none' && 'resize-none', this.resize === 'vertical' && 'resize-y', this.resize === 'horizontal' && 'resize-x', this.resize === 'both' && 'resize') }))), (this.description ||
|
|
177
|
+
this.el.querySelector('[slot="description"]')) && (h("div", { key: 'c5c8c1999105df446a603a3e02f431ad37de4c5e', class: "description" }, h("slot", { key: 'bbcea14c7585e1ff1c995eb4f21cb532a160ed40', name: "description" }, this.description))), (this.errorDescription ||
|
|
178
|
+
this.el.querySelector('[slot="error-description"]')) && (h("div", { key: '2d43d92b5c9b93faeac45bdcfa142d4dfd70511a', hidden: !this.error, class: "error-description" }, h("slot", { key: '33514ea705969b353f11c49ca65090706e6aadf8', name: "error-description" }, this.errorDescription)))));
|
|
179
179
|
}
|
|
180
180
|
static get is() { return "nv-fieldtextarea"; }
|
|
181
181
|
static get formAssociated() { return true; }
|
|
@@ -967,26 +967,26 @@ export class NvFieldtime {
|
|
|
967
967
|
}, key: `${option}-${index}`, onClick: e => this.handleTimeOptionClick(e, type) }, option)))));
|
|
968
968
|
}
|
|
969
969
|
render() {
|
|
970
|
-
return (h(Host, { key: '
|
|
971
|
-
h("input", { key: '
|
|
970
|
+
return (h(Host, { key: 'fb5bc4740731089bf81ab7b24e57f24f966c5f92', onclick: e => this.handleHostClick(e) }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { key: 'd9f44f4ab94a13a620df743979d95b1f59572bfe', htmlFor: this.inputId }, h("slot", { key: 'fbc8176ea3443511764b2993939d1110fd932a5a', name: "label" }, this.label))), h("nv-popover", { key: 'ea376ec38db428db158c998e8963e27048ef03b0', ref: el => (this.popoverElement = el), triggerMode: "controlled", placement: "bottom-start", open: this.open }, h("div", { key: 'fa825918cea4a64db76324f953645f6db7cb81b9', class: "input-wrapper", slot: "trigger" }, h("slot", { key: '37d7fd2eae40e4f47e9b626c226d060cf5e350e2', name: "before-input" }), h("div", { key: '6b73d8c9598bfaf470b5c5a455db0b08397cc8c8', class: "input-container" }, h("slot", { key: '88f20151d7ccc1e3ad6f6aba4b5926cccc22c19c', name: "leading-input" }), startsWithIgnoreCase(this.format, 'HH') && [
|
|
971
|
+
h("input", { key: '292ee8c62fd248b28fb46275ba06846d69b3b602', ref: el => (this.inputElements[TimeType.Hours] = el), type: "number", autofocus: this.autofocus, class: "time-input", pattern: "[0-9]*", maxlength: "3", value: this.hours, onInput: e => this.handleInputChange(e, TimeType.Hours), placeholder: this.format.includes('hh') ? 'hh' : 'HH', inputMode: "numeric", onFocus: () => this.handleFocus(TimeType.Hours), name: this.name
|
|
972
972
|
? `${TimeType.Hours}-${this.name}`
|
|
973
973
|
: TimeType.Hours, id: this.inputId, readonly: this.readonly, disabled: this.disabled, required: this.required, onKeyDown: e => this.handleKeyDown(e), onBlur: () => this.handleInputBlur() }),
|
|
974
974
|
], this.format.includes('mm') && [
|
|
975
|
-
h("span", { key: '
|
|
976
|
-
h("input", { key: '
|
|
975
|
+
h("span", { key: 'c7de2283771d60e1e9f756257e34da0eefcf27f3' }, ":"),
|
|
976
|
+
h("input", { key: '521fad8cc60c9ced2ba634441b789fba15340ae7', ref: el => (this.inputElements[TimeType.Minutes] = el), type: "number", autofocus: this.autofocus, class: "time-input", pattern: "[0-9]*", maxlength: "3", value: this.minutes, onInput: e => this.handleInputChange(e, TimeType.Minutes), placeholder: "mm", inputMode: "numeric", onFocus: () => this.handleFocus(TimeType.Minutes), name: this.name
|
|
977
977
|
? `${TimeType.Minutes}-${this.name}`
|
|
978
978
|
: TimeType.Minutes, id: `${this.inputId}-minutes`, readonly: this.readonly, disabled: this.disabled, required: this.required, onKeyDown: e => this.handleKeyDown(e), onBlur: () => this.handleInputBlur() }),
|
|
979
979
|
], this.format.includes('ss') && [
|
|
980
|
-
h("span", { key: '
|
|
981
|
-
h("input", { key: '
|
|
980
|
+
h("span", { key: 'ceef993e3efdc2fa01d466033522e09ee78683b1' }, ":"),
|
|
981
|
+
h("input", { key: '9c51f0fcecb86a913e9ae4cd3c5bcfbf34ac4ab8', ref: el => (this.inputElements[TimeType.Seconds] = el), type: "number", autofocus: this.autofocus, class: "time-input", pattern: "[0-9]*", maxlength: "3", value: this.seconds, onInput: e => this.handleInputChange(e, TimeType.Seconds), placeholder: "ss", inputMode: "numeric", onFocus: () => this.handleFocus(TimeType.Seconds), name: this.name
|
|
982
982
|
? `${TimeType.Seconds}-${this.name}`
|
|
983
983
|
: TimeType.Seconds, id: `${this.inputId}-seconds`, readonly: this.readonly, disabled: this.disabled, required: this.required, onKeyDown: e => this.handleKeyDown(e), onBlur: () => this.handleInputBlur() }),
|
|
984
|
-
], h("nv-iconbutton", { key: '
|
|
984
|
+
], h("nv-iconbutton", { key: '7a5516b7d91dc99f6963ee9daacee9305b16dfb0', name: this.open ? 'chevron-top' : 'chevron-down', size: "md", emphasis: "lower", "aria-label": this.open ? 'Hide time picker' : 'Show time picker', "aria-pressed": this.open.toString(), onClick: () => this.HandleDropdownIconClick() }), this.error && (h("nv-icon", { key: 'a9a9a02e312caf25a52b91e1d4db6b6ee9d850d6', name: "alert-circle", class: "validation", size: "sm" })), this.success && (h("nv-icon", { key: '93a69f343771dbdb8c6bd694ea9f5ddeeba39801', name: "circle-check", class: "validation", size: "sm" }))), h("slot", { key: '678d9af754b860ac99a50d70cb9b975e79f164c9', name: "after-input" })), h("div", { key: '2bd255e97d8b34b66fa0af2f209d5175e67b62a3', class: "time-dropdown", slot: "content" }, h("div", { key: '017b58a9a7ccb44918a408fb680fa1c18d8f5672', class: "time-columns" }, startsWithIgnoreCase(this.format, 'HH') &&
|
|
985
985
|
this.RenderTimeOptionsColumn(TimeType.Hours), this.format.includes('mm') &&
|
|
986
986
|
this.RenderTimeOptionsColumn(TimeType.Minutes), this.format.includes('ss') &&
|
|
987
987
|
this.RenderTimeOptionsColumn(TimeType.Seconds)))), (this.description ||
|
|
988
|
-
this.el.querySelector('[slot="description"]')) && (h("div", { key: '
|
|
989
|
-
this.el.querySelector('[slot="error-description"]')) && (h("div", { key: '
|
|
988
|
+
this.el.querySelector('[slot="description"]')) && (h("div", { key: '35f5fb47bfeb9cde2c3551df391cf52ccaf10c72', class: "description" }, h("slot", { key: 'b450124765db5b2337f03a5f68c4a9466c80ca85', name: "description" }, this.description))), (this.errorDescription ||
|
|
989
|
+
this.el.querySelector('[slot="error-description"]')) && (h("div", { key: '87d441f595f7ba8be04ca749235ec3918e9a80b0', hidden: !this.error, class: "error-description" }, h("slot", { key: '35717f533b4a4c310f4fb805c3989398f340b8b1', name: "error-description" }, this.errorDescription)))));
|
|
990
990
|
}
|
|
991
991
|
static get is() { return "nv-fieldtime"; }
|
|
992
992
|
static get formAssociated() { return true; }
|
|
@@ -48,7 +48,7 @@ export class NvIcon {
|
|
|
48
48
|
/****************************************************************************/
|
|
49
49
|
//#region RENDER
|
|
50
50
|
render() {
|
|
51
|
-
return (h(Host, { key: '
|
|
51
|
+
return (h(Host, { key: '5d5988e7c0f49781b57b86da6e46e38eeac5ddae', class: clsx(this.color && `${this.color}`), role: "img", "aria-label": `${this.name}-icon` }, h("svg", { key: 'ab4007e92d6a13245293dbbb7dc746ab21cdbe33', stroke: "currentColor", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", class: `nv-icon-${this.size}` }, h("use", { key: 'c9cb4fea1695e81c4e9e775c217dfb9ac3b7c9ec', href: `#${this.name}` }))));
|
|
52
52
|
}
|
|
53
53
|
static get is() { return "nv-icon"; }
|
|
54
54
|
static get originalStyleUrls() {
|
|
@@ -111,7 +111,7 @@ export class NvIconbutton {
|
|
|
111
111
|
/****************************************************************************/
|
|
112
112
|
//#region RENDER
|
|
113
113
|
render() {
|
|
114
|
-
return (h(Host, { key: '
|
|
114
|
+
return (h(Host, { key: 'f678bd976942aa35ae36c536fdd86cd65a43263a', role: "button", type: this.type, tabindex: "0", disabled: this.disabled ? true : undefined, class: clsx('root', `size-${this.size}`, `emphasis-${this.emphasis}`, this.loading && 'loading', `shape-${this.shape}`), onClick: this.handleClick }, this.loading && h("nv-loader", { key: 'b874de8701de163c1f4235c2034a13da30279191', size: this.size }), !this.loading && h("nv-icon", { key: '222ccc93e3af3dcec81308b3b90ca724ecdfa2fb', name: this.name, size: this.size }), h("slot", { key: 'c7a257f7715a9320ffe46e09b59a2d570d1f052c' })));
|
|
115
115
|
}
|
|
116
116
|
static get is() { return "nv-iconbutton"; }
|
|
117
117
|
static get formAssociated() { return true; }
|
|
@@ -16,7 +16,7 @@ export class NvLoader {
|
|
|
16
16
|
//#region RENDER
|
|
17
17
|
/* <slot> empty to force rendering change */
|
|
18
18
|
render() {
|
|
19
|
-
return (h(Host, { key: '
|
|
19
|
+
return (h(Host, { key: 'f3094e46eb7072534f497694d3c28030f0118acc', class: clsx(this.size && `size-${this.size}`, this.color && `color-${this.color}`) }));
|
|
20
20
|
}
|
|
21
21
|
static get is() { return "nv-loader"; }
|
|
22
22
|
static get originalStyleUrls() {
|
|
@@ -35,9 +35,9 @@ const NvMenuDocs = {
|
|
|
35
35
|
template: (h("nv-menu", { "data-storybook-args": true, "data-class": "p-20 flex justify-center" }, h("nv-iconbutton", { name: "menu", slot: "trigger", shape: "rounded" }), h("ul", { slot: "content" }, h("nv-menuitem", { icon: "help", id: "help", label: "Where am I?" })))),
|
|
36
36
|
},
|
|
37
37
|
{
|
|
38
|
-
name:
|
|
38
|
+
name: nameof(x => x.items),
|
|
39
39
|
args: {
|
|
40
|
-
items:
|
|
40
|
+
items: [
|
|
41
41
|
{
|
|
42
42
|
label: 'Paramètres',
|
|
43
43
|
icon: 'settings',
|
|
@@ -86,7 +86,7 @@ const NvMenuDocs = {
|
|
|
86
86
|
icon: 'logout',
|
|
87
87
|
value: 'logout',
|
|
88
88
|
},
|
|
89
|
-
]
|
|
89
|
+
],
|
|
90
90
|
},
|
|
91
91
|
template: (h("nv-menu", { "data-storybook-args": true, "data-class": "pb-20" }, h("nv-iconbutton", { slot: "trigger", name: "menu", shape: "rounded" }))),
|
|
92
92
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nv-menu.docs.js","sourceRoot":"","sources":["../../../src/components/nv-menu/nv-menu.docs.tsx"],"names":[],"mappings":"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","sourcesContent":["import { h } from '@stencil/core';\nimport type { NovaDocs } from '../../nova-docs';\nimport { Components } from '../../components';\nimport { nameof } from '../../utils/class.utils';\n\nconst NvMenuDocs: NovaDocs<Components.NvMenu> = {\n component: 'nv-menu',\n subcomponents: ['nv-menuitem', 'nv-iconbutton'],\n composedComponents: ['nv-menuitem'],\n stories: [\n {\n name: 'Default',\n template: (\n <nv-menu data-storybook-args data-class=\"pb-20\">\n <nv-iconbutton\n slot=\"trigger\"\n name=\"menu\"\n shape=\"rounded\"\n ></nv-iconbutton>\n <ul slot=\"content\">\n <nv-menuitem\n icon=\"user\"\n shortcut=\"⌘K\"\n id=\"user-settings\"\n label=\"User settings\"\n ></nv-menuitem>\n <nv-menuitem\n icon=\"bulb\"\n shortcut=\"⌘F\"\n id=\"find-all-items\"\n label=\"Find all items\"\n ></nv-menuitem>\n </ul>\n </nv-menu>\n ),\n },\n {\n name: nameof<Components.NvMenu>(x => x.open),\n args: {\n open: true,\n },\n template: (\n <nv-menu data-storybook-args data-class=\"pb-20\">\n <nv-iconbutton\n slot=\"trigger\"\n name=\"menu\"\n shape=\"rounded\"\n ></nv-iconbutton>\n <ul slot=\"content\">\n <nv-menuitem\n icon=\"user\"\n shortcut=\"⌘K\"\n id=\"user-settings\"\n label=\"User settings\"\n ></nv-menuitem>\n <nv-menuitem\n icon=\"bulb\"\n shortcut=\"⌘F\"\n id=\"find-all-items\"\n label=\"Find all items\"\n ></nv-menuitem>\n </ul>\n </nv-menu>\n ),\n },\n {\n name: nameof<Components.NvMenu>(x => x.nested),\n template: (\n <nv-menu data-storybook-args data-class=\"pb-20\">\n <nv-iconbutton\n name=\"menu\"\n slot=\"trigger\"\n shape=\"rounded\"\n ></nv-iconbutton>\n <ul slot=\"content\">\n <nv-menuitem\n icon=\"adjustments-up\"\n shortcut=\"⌘U\"\n id=\"up\"\n disabled\n label=\"This is disabled\"\n ></nv-menuitem>\n <nv-menu nested placement=\"right-start\">\n <nv-menuitem\n slot=\"trigger\"\n has-submenu\n icon=\"cloud\"\n label=\"Cloud Functions\"\n ></nv-menuitem>\n <ul slot=\"content\">\n <nv-menuitem\n icon=\"upload\"\n id=\"upload\"\n label=\"Upload\"\n ></nv-menuitem>\n <nv-menuitem\n icon=\"download\"\n id=\"download\"\n label=\"Download\"\n ></nv-menuitem>\n <nv-menu nested placement=\"right-start\">\n <nv-menuitem\n slot=\"trigger\"\n has-submenu\n icon=\"engine\"\n label=\"Even more functions?\"\n ></nv-menuitem>\n <ul slot=\"content\">\n <nv-menuitem id=\"deep\" label=\"Deeply nested\"></nv-menuitem>\n <nv-menuitem\n id=\"nav\"\n label=\"Have you tried keyboard navigation?\"\n ></nv-menuitem>\n </ul>\n </nv-menu>\n </ul>\n </nv-menu>\n </ul>\n </nv-menu>\n ),\n },\n {\n name: nameof<Components.NvMenu>(x => x.disableCloseOnSelect),\n args: {\n disableCloseOnSelect: true,\n },\n template: (\n <nv-menu data-storybook-args data-class=\"pb-20\">\n <nv-iconbutton\n name=\"menu\"\n slot=\"trigger\"\n shape=\"rounded\"\n ></nv-iconbutton>\n <ul slot=\"content\">\n <nv-menuitem\n icon=\"adjustments-up\"\n id=\"no-close\"\n label=\"Select Me, I won't close\"\n ></nv-menuitem>\n <nv-menuitem\n icon=\"activity\"\n id=\"no-close-either\"\n label=\"Me neither\"\n ></nv-menuitem>\n </ul>\n </nv-menu>\n ),\n },\n {\n name: nameof<Components.NvMenu>(x => x.placement),\n args: {\n placement: 'top-start',\n },\n template: (\n <nv-menu data-storybook-args data-class=\"p-20 flex justify-center\">\n <nv-iconbutton\n name=\"menu\"\n slot=\"trigger\"\n shape=\"rounded\"\n ></nv-iconbutton>\n <ul slot=\"content\">\n <nv-menuitem\n icon=\"help\"\n id=\"help\"\n label=\"Where am I?\"\n ></nv-menuitem>\n </ul>\n </nv-menu>\n ),\n },\n {\n name: 'Menuitem JSON',\n args: {\n items: JSON.stringify([\n {\n label: 'Paramètres',\n icon: 'settings',\n shortcut: '⌘S',\n value: 'settings',\n },\n {\n label: 'Options avancées',\n icon: 'adjustments',\n hasSubmenu: true,\n value: 'advanced',\n submenuItems: [\n {\n label: 'Configuration',\n icon: 'settings',\n value: 'config',\n },\n {\n label: 'Sécurité',\n icon: 'shield',\n hasSubmenu: true,\n value: 'security',\n submenuItems: [\n {\n label: 'Permissions',\n icon: 'lock',\n value: 'permissions',\n },\n {\n label: 'Authentification',\n icon: 'user',\n value: 'authentication',\n },\n ],\n },\n ],\n },\n {\n label: 'Profil',\n icon: 'user',\n value: 'profile',\n disabled: true,\n },\n {\n label: 'Déconnexion',\n icon: 'logout',\n value: 'logout',\n },\n ]),\n },\n template: (\n <nv-menu data-storybook-args data-class=\"pb-20\">\n <nv-iconbutton\n slot=\"trigger\"\n name=\"menu\"\n shape=\"rounded\"\n ></nv-iconbutton>\n </nv-menu>\n ),\n },\n {\n name: 'Separator',\n description:\n 'Use an hr element to create a separator between menu items.',\n template: (\n <nv-menu data-storybook-args data-class=\"pb-20\">\n <nv-iconbutton\n name=\"menu\"\n slot=\"trigger\"\n shape=\"rounded\"\n ></nv-iconbutton>\n <ul slot=\"content\">\n <nv-menuitem icon=\"upload\" id=\"upload\" label=\"Upload\"></nv-menuitem>\n <nv-menuitem\n icon=\"download\"\n id=\"download\"\n label=\"Download\"\n ></nv-menuitem>\n <hr />\n <nv-menuitem\n icon=\"bulb\"\n shortcut=\"⌘F\"\n id=\"find-all-items\"\n label=\"Find all items\"\n ></nv-menuitem>\n </ul>\n </nv-menu>\n ),\n },\n ],\n};\n\nexport default NvMenuDocs;\n"]}
|
|
1
|
+
{"version":3,"file":"nv-menu.docs.js","sourceRoot":"","sources":["../../../src/components/nv-menu/nv-menu.docs.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAGlC,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEjD,MAAM,UAAU,GAAgC;IAC9C,SAAS,EAAE,SAAS;IACpB,aAAa,EAAE,CAAC,aAAa,EAAE,eAAe,CAAC;IAC/C,kBAAkB,EAAE,CAAC,aAAa,CAAC;IACnC,OAAO,EAAE;QACP;YACE,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,CACR,0DAAwC,OAAO;gBAC7C,qBACE,IAAI,EAAC,SAAS,EACd,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,SAAS,GACA;gBACjB,UAAI,IAAI,EAAC,SAAS;oBAChB,mBACE,IAAI,EAAC,MAAM,EACX,QAAQ,EAAC,SAAU,EACnB,EAAE,EAAC,eAAe,EAClB,KAAK,EAAC,eAAe,GACR;oBACf,mBACE,IAAI,EAAC,MAAM,EACX,QAAQ,EAAC,SAAU,EACnB,EAAE,EAAC,gBAAgB,EACnB,KAAK,EAAC,gBAAgB,GACT,CACZ,CACG,CACX;SACF;QACD;YACE,IAAI,EAAE,MAAM,CAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5C,IAAI,EAAE;gBACJ,IAAI,EAAE,IAAI;aACX;YACD,QAAQ,EAAE,CACR,0DAAwC,OAAO;gBAC7C,qBACE,IAAI,EAAC,SAAS,EACd,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,SAAS,GACA;gBACjB,UAAI,IAAI,EAAC,SAAS;oBAChB,mBACE,IAAI,EAAC,MAAM,EACX,QAAQ,EAAC,SAAU,EACnB,EAAE,EAAC,eAAe,EAClB,KAAK,EAAC,eAAe,GACR;oBACf,mBACE,IAAI,EAAC,MAAM,EACX,QAAQ,EAAC,SAAU,EACnB,EAAE,EAAC,gBAAgB,EACnB,KAAK,EAAC,gBAAgB,GACT,CACZ,CACG,CACX;SACF;QACD;YACE,IAAI,EAAE,MAAM,CAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;YAC9C,QAAQ,EAAE,CACR,0DAAwC,OAAO;gBAC7C,qBACE,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,SAAS,EACd,KAAK,EAAC,SAAS,GACA;gBACjB,UAAI,IAAI,EAAC,SAAS;oBAChB,mBACE,IAAI,EAAC,gBAAgB,EACrB,QAAQ,EAAC,SAAU,EACnB,EAAE,EAAC,IAAI,EACP,QAAQ,QACR,KAAK,EAAC,kBAAkB,GACX;oBACf,eAAS,MAAM,QAAC,SAAS,EAAC,aAAa;wBACrC,mBACE,IAAI,EAAC,SAAS,uBAEd,IAAI,EAAC,OAAO,EACZ,KAAK,EAAC,iBAAiB,GACV;wBACf,UAAI,IAAI,EAAC,SAAS;4BAChB,mBACE,IAAI,EAAC,QAAQ,EACb,EAAE,EAAC,QAAQ,EACX,KAAK,EAAC,QAAQ,GACD;4BACf,mBACE,IAAI,EAAC,UAAU,EACf,EAAE,EAAC,UAAU,EACb,KAAK,EAAC,UAAU,GACH;4BACf,eAAS,MAAM,QAAC,SAAS,EAAC,aAAa;gCACrC,mBACE,IAAI,EAAC,SAAS,uBAEd,IAAI,EAAC,QAAQ,EACb,KAAK,EAAC,sBAAsB,GACf;gCACf,UAAI,IAAI,EAAC,SAAS;oCAChB,mBAAa,EAAE,EAAC,MAAM,EAAC,KAAK,EAAC,eAAe,GAAe;oCAC3D,mBACE,EAAE,EAAC,KAAK,EACR,KAAK,EAAC,qCAAqC,GAC9B,CACZ,CACG,CACP,CACG,CACP,CACG,CACX;SACF;QACD;YACE,IAAI,EAAE,MAAM,CAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC;YAC5D,IAAI,EAAE;gBACJ,oBAAoB,EAAE,IAAI;aAC3B;YACD,QAAQ,EAAE,CACR,0DAAwC,OAAO;gBAC7C,qBACE,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,SAAS,EACd,KAAK,EAAC,SAAS,GACA;gBACjB,UAAI,IAAI,EAAC,SAAS;oBAChB,mBACE,IAAI,EAAC,gBAAgB,EACrB,EAAE,EAAC,UAAU,EACb,KAAK,EAAC,0BAA0B,GACnB;oBACf,mBACE,IAAI,EAAC,UAAU,EACf,EAAE,EAAC,iBAAiB,EACpB,KAAK,EAAC,YAAY,GACL,CACZ,CACG,CACX;SACF;QACD;YACE,IAAI,EAAE,MAAM,CAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YACjD,IAAI,EAAE;gBACJ,SAAS,EAAE,WAAW;aACvB;YACD,QAAQ,EAAE,CACR,0DAAwC,0BAA0B;gBAChE,qBACE,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,SAAS,EACd,KAAK,EAAC,SAAS,GACA;gBACjB,UAAI,IAAI,EAAC,SAAS;oBAChB,mBACE,IAAI,EAAC,MAAM,EACX,EAAE,EAAC,MAAM,EACT,KAAK,EAAC,aAAa,GACN,CACZ,CACG,CACX;SACF;QACD;YACE,IAAI,EAAE,MAAM,CAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;YAC7C,IAAI,EAAE;gBACJ,KAAK,EAAE;oBACL;wBACE,KAAK,EAAE,YAAY;wBACnB,IAAI,EAAE,UAAU;wBAChB,QAAQ,EAAE,IAAI;wBACd,KAAK,EAAE,UAAU;qBAClB;oBACD;wBACE,KAAK,EAAE,kBAAkB;wBACzB,IAAI,EAAE,aAAa;wBACnB,UAAU,EAAE,IAAI;wBAChB,KAAK,EAAE,UAAU;wBACjB,YAAY,EAAE;4BACZ;gCACE,KAAK,EAAE,eAAe;gCACtB,IAAI,EAAE,UAAU;gCAChB,KAAK,EAAE,QAAQ;6BAChB;4BACD;gCACE,KAAK,EAAE,UAAU;gCACjB,IAAI,EAAE,QAAQ;gCACd,UAAU,EAAE,IAAI;gCAChB,KAAK,EAAE,UAAU;gCACjB,YAAY,EAAE;oCACZ;wCACE,KAAK,EAAE,aAAa;wCACpB,IAAI,EAAE,MAAM;wCACZ,KAAK,EAAE,aAAa;qCACrB;oCACD;wCACE,KAAK,EAAE,kBAAkB;wCACzB,IAAI,EAAE,MAAM;wCACZ,KAAK,EAAE,gBAAgB;qCACxB;iCACF;6BACF;yBACF;qBACF;oBACD;wBACE,KAAK,EAAE,QAAQ;wBACf,IAAI,EAAE,MAAM;wBACZ,KAAK,EAAE,SAAS;wBAChB,QAAQ,EAAE,IAAI;qBACf;oBACD;wBACE,KAAK,EAAE,aAAa;wBACpB,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,QAAQ;qBAChB;iBACF;aACF;YACD,QAAQ,EAAE,CACR,0DAAwC,OAAO;gBAC7C,qBACE,IAAI,EAAC,SAAS,EACd,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,SAAS,GACA,CACT,CACX;SACF;QACD;YACE,IAAI,EAAE,WAAW;YACjB,WAAW,EACT,6DAA6D;YAC/D,QAAQ,EAAE,CACR,0DAAwC,OAAO;gBAC7C,qBACE,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,SAAS,EACd,KAAK,EAAC,SAAS,GACA;gBACjB,UAAI,IAAI,EAAC,SAAS;oBAChB,mBAAa,IAAI,EAAC,QAAQ,EAAC,EAAE,EAAC,QAAQ,EAAC,KAAK,EAAC,QAAQ,GAAe;oBACpE,mBACE,IAAI,EAAC,UAAU,EACf,EAAE,EAAC,UAAU,EACb,KAAK,EAAC,UAAU,GACH;oBACf,aAAM;oBACN,mBACE,IAAI,EAAC,MAAM,EACX,QAAQ,EAAC,SAAU,EACnB,EAAE,EAAC,gBAAgB,EACnB,KAAK,EAAC,gBAAgB,GACT,CACZ,CACG,CACX;SACF;KACF;CACF,CAAC;AAEF,eAAe,UAAU,CAAC","sourcesContent":["import { h } from '@stencil/core';\nimport type { NovaDocs } from '../../nova-docs';\nimport { Components } from '../../components';\nimport { nameof } from '../../utils/class.utils';\n\nconst NvMenuDocs: NovaDocs<Components.NvMenu> = {\n component: 'nv-menu',\n subcomponents: ['nv-menuitem', 'nv-iconbutton'],\n composedComponents: ['nv-menuitem'],\n stories: [\n {\n name: 'Default',\n template: (\n <nv-menu data-storybook-args data-class=\"pb-20\">\n <nv-iconbutton\n slot=\"trigger\"\n name=\"menu\"\n shape=\"rounded\"\n ></nv-iconbutton>\n <ul slot=\"content\">\n <nv-menuitem\n icon=\"user\"\n shortcut=\"⌘K\"\n id=\"user-settings\"\n label=\"User settings\"\n ></nv-menuitem>\n <nv-menuitem\n icon=\"bulb\"\n shortcut=\"⌘F\"\n id=\"find-all-items\"\n label=\"Find all items\"\n ></nv-menuitem>\n </ul>\n </nv-menu>\n ),\n },\n {\n name: nameof<Components.NvMenu>(x => x.open),\n args: {\n open: true,\n },\n template: (\n <nv-menu data-storybook-args data-class=\"pb-20\">\n <nv-iconbutton\n slot=\"trigger\"\n name=\"menu\"\n shape=\"rounded\"\n ></nv-iconbutton>\n <ul slot=\"content\">\n <nv-menuitem\n icon=\"user\"\n shortcut=\"⌘K\"\n id=\"user-settings\"\n label=\"User settings\"\n ></nv-menuitem>\n <nv-menuitem\n icon=\"bulb\"\n shortcut=\"⌘F\"\n id=\"find-all-items\"\n label=\"Find all items\"\n ></nv-menuitem>\n </ul>\n </nv-menu>\n ),\n },\n {\n name: nameof<Components.NvMenu>(x => x.nested),\n template: (\n <nv-menu data-storybook-args data-class=\"pb-20\">\n <nv-iconbutton\n name=\"menu\"\n slot=\"trigger\"\n shape=\"rounded\"\n ></nv-iconbutton>\n <ul slot=\"content\">\n <nv-menuitem\n icon=\"adjustments-up\"\n shortcut=\"⌘U\"\n id=\"up\"\n disabled\n label=\"This is disabled\"\n ></nv-menuitem>\n <nv-menu nested placement=\"right-start\">\n <nv-menuitem\n slot=\"trigger\"\n has-submenu\n icon=\"cloud\"\n label=\"Cloud Functions\"\n ></nv-menuitem>\n <ul slot=\"content\">\n <nv-menuitem\n icon=\"upload\"\n id=\"upload\"\n label=\"Upload\"\n ></nv-menuitem>\n <nv-menuitem\n icon=\"download\"\n id=\"download\"\n label=\"Download\"\n ></nv-menuitem>\n <nv-menu nested placement=\"right-start\">\n <nv-menuitem\n slot=\"trigger\"\n has-submenu\n icon=\"engine\"\n label=\"Even more functions?\"\n ></nv-menuitem>\n <ul slot=\"content\">\n <nv-menuitem id=\"deep\" label=\"Deeply nested\"></nv-menuitem>\n <nv-menuitem\n id=\"nav\"\n label=\"Have you tried keyboard navigation?\"\n ></nv-menuitem>\n </ul>\n </nv-menu>\n </ul>\n </nv-menu>\n </ul>\n </nv-menu>\n ),\n },\n {\n name: nameof<Components.NvMenu>(x => x.disableCloseOnSelect),\n args: {\n disableCloseOnSelect: true,\n },\n template: (\n <nv-menu data-storybook-args data-class=\"pb-20\">\n <nv-iconbutton\n name=\"menu\"\n slot=\"trigger\"\n shape=\"rounded\"\n ></nv-iconbutton>\n <ul slot=\"content\">\n <nv-menuitem\n icon=\"adjustments-up\"\n id=\"no-close\"\n label=\"Select Me, I won't close\"\n ></nv-menuitem>\n <nv-menuitem\n icon=\"activity\"\n id=\"no-close-either\"\n label=\"Me neither\"\n ></nv-menuitem>\n </ul>\n </nv-menu>\n ),\n },\n {\n name: nameof<Components.NvMenu>(x => x.placement),\n args: {\n placement: 'top-start',\n },\n template: (\n <nv-menu data-storybook-args data-class=\"p-20 flex justify-center\">\n <nv-iconbutton\n name=\"menu\"\n slot=\"trigger\"\n shape=\"rounded\"\n ></nv-iconbutton>\n <ul slot=\"content\">\n <nv-menuitem\n icon=\"help\"\n id=\"help\"\n label=\"Where am I?\"\n ></nv-menuitem>\n </ul>\n </nv-menu>\n ),\n },\n {\n name: nameof<Components.NvMenu>(x => x.items),\n args: {\n items: [\n {\n label: 'Paramètres',\n icon: 'settings',\n shortcut: '⌘S',\n value: 'settings',\n },\n {\n label: 'Options avancées',\n icon: 'adjustments',\n hasSubmenu: true,\n value: 'advanced',\n submenuItems: [\n {\n label: 'Configuration',\n icon: 'settings',\n value: 'config',\n },\n {\n label: 'Sécurité',\n icon: 'shield',\n hasSubmenu: true,\n value: 'security',\n submenuItems: [\n {\n label: 'Permissions',\n icon: 'lock',\n value: 'permissions',\n },\n {\n label: 'Authentification',\n icon: 'user',\n value: 'authentication',\n },\n ],\n },\n ],\n },\n {\n label: 'Profil',\n icon: 'user',\n value: 'profile',\n disabled: true,\n },\n {\n label: 'Déconnexion',\n icon: 'logout',\n value: 'logout',\n },\n ],\n },\n template: (\n <nv-menu data-storybook-args data-class=\"pb-20\">\n <nv-iconbutton\n slot=\"trigger\"\n name=\"menu\"\n shape=\"rounded\"\n ></nv-iconbutton>\n </nv-menu>\n ),\n },\n {\n name: 'Separator',\n description:\n 'Use an hr element to create a separator between menu items.',\n template: (\n <nv-menu data-storybook-args data-class=\"pb-20\">\n <nv-iconbutton\n name=\"menu\"\n slot=\"trigger\"\n shape=\"rounded\"\n ></nv-iconbutton>\n <ul slot=\"content\">\n <nv-menuitem icon=\"upload\" id=\"upload\" label=\"Upload\"></nv-menuitem>\n <nv-menuitem\n icon=\"download\"\n id=\"download\"\n label=\"Download\"\n ></nv-menuitem>\n <hr />\n <nv-menuitem\n icon=\"bulb\"\n shortcut=\"⌘F\"\n id=\"find-all-items\"\n label=\"Find all items\"\n ></nv-menuitem>\n </ul>\n </nv-menu>\n ),\n },\n ],\n};\n\nexport default NvMenuDocs;\n"]}
|
|
@@ -29,25 +29,23 @@ export class NvMenu {
|
|
|
29
29
|
* position on the axis to fit on the screen, so users can always see it.
|
|
30
30
|
*/
|
|
31
31
|
this.placement = 'bottom-end';
|
|
32
|
+
//#endregion LIFECYCLE
|
|
33
|
+
/****************************************************************************/
|
|
34
|
+
//#region RENDER
|
|
32
35
|
/**
|
|
33
|
-
*
|
|
36
|
+
* Generates menu items from the `items` property.
|
|
37
|
+
* @param {MenuItem[]} items - The items to display in the menu.
|
|
38
|
+
* @returns {HTMLElement[]} The rendered items.
|
|
34
39
|
*/
|
|
35
|
-
this.
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
this.parsedItems = JSON.parse(newValue);
|
|
45
|
-
}
|
|
46
|
-
catch (error) {
|
|
47
|
-
console.error('Error parsing menu items:', error);
|
|
48
|
-
this.parsedItems = [];
|
|
49
|
-
}
|
|
50
|
-
}
|
|
40
|
+
this.renderMenuItems = () => {
|
|
41
|
+
return this.items.map(item => {
|
|
42
|
+
var _a;
|
|
43
|
+
if (item.hasSubmenu && ((_a = item.submenuItems) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
44
|
+
return (h("nv-menu", { nested: true, placement: "right-start", items: item.submenuItems }, h("nv-menuitem", { slot: "trigger", hasSubmenu: true, disabled: item.disabled, icon: item.icon, shortcut: item.shortcut, id: item.value, name: item.label, label: item.label })));
|
|
45
|
+
}
|
|
46
|
+
return (h("nv-menuitem", { disabled: item.disabled, icon: item.icon, shortcut: item.shortcut, id: item.value, name: item.label, label: item.label }));
|
|
47
|
+
});
|
|
48
|
+
};
|
|
51
49
|
}
|
|
52
50
|
//#endregion PROPERTIES
|
|
53
51
|
/****************************************************************************/
|
|
@@ -187,30 +185,9 @@ export class NvMenu {
|
|
|
187
185
|
this.triggerElement = Array.from(this.el.children).find(child => {
|
|
188
186
|
return child.getAttribute('slot') === 'trigger';
|
|
189
187
|
});
|
|
190
|
-
// If the items attribute is provided, parse its value.
|
|
191
|
-
if (this.items) {
|
|
192
|
-
this.handleItemsChange(this.items);
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
//#endregion LIFECYCLE
|
|
196
|
-
/****************************************************************************/
|
|
197
|
-
//#region RENDER
|
|
198
|
-
/**
|
|
199
|
-
* Generates menu items from the `items` property.
|
|
200
|
-
* @param {MenuItem[]} items - The items to display in the menu.
|
|
201
|
-
* @returns {HTMLElement[]} The rendered items.
|
|
202
|
-
*/
|
|
203
|
-
renderMenuItems(items) {
|
|
204
|
-
return items.map(item => {
|
|
205
|
-
var _a;
|
|
206
|
-
if (item.hasSubmenu && ((_a = item.submenuItems) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
207
|
-
return (h("nv-menu", { nested: true, placement: "right-start", items: JSON.stringify(item.submenuItems) }, h("nv-menuitem", { slot: "trigger", "has-submenu": true, disabled: item.disabled, icon: item.icon, shortcut: item.shortcut, id: item.value, name: item.label, label: item.label })));
|
|
208
|
-
}
|
|
209
|
-
return (h("nv-menuitem", { disabled: item.disabled, icon: item.icon, shortcut: item.shortcut, id: item.value, name: item.label, label: item.label }));
|
|
210
|
-
});
|
|
211
188
|
}
|
|
212
189
|
render() {
|
|
213
|
-
return (h(Host, { key: '
|
|
190
|
+
return (h(Host, { key: 'b66fd4f51c7f754d2d49265fe6175cc1a2c0b03a' }, h("slot", { key: 'acd3dc4ad3ed94a4bcbef735049e59bf37a8f67d', name: "trigger" }), h("nv-popover", { key: '28218c78f3fa21a9dcfd5ea13d3416eda11efc49', ref: el => (this.popoverElement = el), triggerMode: "click", triggerElement: this.triggerElement, placement: this.placement, nested: this.nested, open: this.open }, this.items ? (h("ul", { slot: "content" }, this.renderMenuItems())) : (h("slot", { name: "content" })))));
|
|
214
191
|
}
|
|
215
192
|
static get is() { return "nv-menu"; }
|
|
216
193
|
static get originalStyleUrls() {
|
|
@@ -312,31 +289,32 @@ export class NvMenu {
|
|
|
312
289
|
"defaultValue": "'bottom-end'"
|
|
313
290
|
},
|
|
314
291
|
"items": {
|
|
315
|
-
"type": "
|
|
292
|
+
"type": "unknown",
|
|
316
293
|
"mutable": false,
|
|
317
294
|
"complexType": {
|
|
318
|
-
"original": "string",
|
|
319
|
-
"resolved": "string",
|
|
320
|
-
"references": {
|
|
295
|
+
"original": "{\n /**\n * The label of the menu item.\n */\n label: string;\n /**\n * The value of the menu item.\n */\n value?: string;\n /**\n * Whether the menu item is disabled.\n */\n disabled?: boolean;\n /**\n * Whether the menu item has a submenu.\n */\n hasSubmenu?: boolean;\n /**\n * The icon of the menu item.\n */\n icon?: string;\n /**\n * The shortcut of the menu item.\n */\n shortcut?: string;\n /**\n * Whether the menu item is nested.\n */\n nested?: boolean;\n /**\n * The submenu items of the menu item.\n */\n submenuItems?: InstanceType<typeof NvMenu>['items'];\n }[]",
|
|
296
|
+
"resolved": "{ label: string; value?: string; disabled?: boolean; hasSubmenu?: boolean; icon?: string; shortcut?: string; nested?: boolean; submenuItems?: { label: string; value?: string; disabled?: boolean; hasSubmenu?: boolean; icon?: string; shortcut?: string; nested?: boolean; submenuItems?: any[]; }[]; }[]",
|
|
297
|
+
"references": {
|
|
298
|
+
"InstanceType": {
|
|
299
|
+
"location": "global",
|
|
300
|
+
"id": "global::InstanceType"
|
|
301
|
+
}
|
|
302
|
+
}
|
|
321
303
|
},
|
|
322
304
|
"required": false,
|
|
323
305
|
"optional": true,
|
|
324
306
|
"docs": {
|
|
325
|
-
"tags": [
|
|
326
|
-
|
|
307
|
+
"tags": [{
|
|
308
|
+
"name": "example",
|
|
309
|
+
"text": "items = [{\n \"label\": \"Option 1\",\n \"value\": \"option1\",\n},\n{\n \"label\": \"Option 2\",\n \"value\": \"option2\",\n}]"
|
|
310
|
+
}],
|
|
311
|
+
"text": "List of items used to automatically generate dropdown items. This\nprovides an alternative to using the slot manually."
|
|
327
312
|
},
|
|
328
313
|
"getter": false,
|
|
329
|
-
"setter": false
|
|
330
|
-
"attribute": "items",
|
|
331
|
-
"reflect": true
|
|
314
|
+
"setter": false
|
|
332
315
|
}
|
|
333
316
|
};
|
|
334
317
|
}
|
|
335
|
-
static get states() {
|
|
336
|
-
return {
|
|
337
|
-
"parsedItems": {}
|
|
338
|
-
};
|
|
339
|
-
}
|
|
340
318
|
static get events() {
|
|
341
319
|
return [{
|
|
342
320
|
"method": "menuitemSelected",
|
|
@@ -399,12 +377,6 @@ export class NvMenu {
|
|
|
399
377
|
};
|
|
400
378
|
}
|
|
401
379
|
static get elementRef() { return "el"; }
|
|
402
|
-
static get watchers() {
|
|
403
|
-
return [{
|
|
404
|
-
"propName": "items",
|
|
405
|
-
"methodName": "handleItemsChange"
|
|
406
|
-
}];
|
|
407
|
-
}
|
|
408
380
|
static get listeners() {
|
|
409
381
|
return [{
|
|
410
382
|
"name": "menuitemSelected",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nv-menu.js","sourceRoot":"","sources":["../../../src/components/nv-menu/nv-menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Element,\n Prop,\n Listen,\n Event,\n EventEmitter,\n Method,\n State,\n Watch,\n} from '@stencil/core';\nimport type { Placement } from '@floating-ui/dom';\nimport { IconName } from '../nv-icon/nv-icons';\n\n/**\n * Interface to define the structure of a menu item\n */\ninterface MenuItem {\n /**\n * The label of the menu item.\n */\n label: string;\n /**\n * The value of the menu item.\n */\n value?: string;\n /**\n * Whether the menu item is disabled.\n */\n disabled?: boolean;\n /**\n * Whether the menu item has a submenu.\n */\n hasSubmenu?: boolean;\n /**\n * The icon of the menu item.\n */\n icon?: string;\n /**\n * The shortcut of the menu item.\n */\n shortcut?: string;\n /**\n * Whether the menu item is nested.\n */\n nested?: boolean;\n /**\n * The submenu items of the menu item.\n */\n submenuItems?: MenuItem[];\n}\n\n/**\n * @slot trigger - The button element that toggles the menu popover\n * @slot content - The content of the menu, should be wrapped in a ul element containing nv-menuitem elements\n */\n@Component({\n tag: 'nv-menu',\n styleUrl: 'nv-menu.scss',\n shadow: false,\n})\nexport class NvMenu {\n @Element() el: HTMLNvMenuElement;\n private triggerElement!: HTMLElement;\n private popoverElement!: HTMLNvPopoverElement;\n private isHandlingKeyDown: boolean = false;\n\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Use this to toggle the initial visibility of the menu, by default the menu\n * is hidden.\n */\n @Prop({ reflect: true, mutable: true })\n open: boolean = false;\n\n /**\n * Use this if the menu is nested inside another menu. This will prevent the\n * parent menu from closing when the child menu is opened.\n */\n @Prop({ reflect: true })\n readonly nested: boolean = false;\n\n /**\n * Use this to disable the menu from closing automatically when a menu item is\n * selected.\n */\n @Prop({ reflect: true })\n readonly disableCloseOnSelect: boolean = false;\n\n /**\n * Decides where the menu shows up next to the button it's linked to (above,\n * below, to the sides). If there isn't enough room, it will adjust its\n * position on the axis to fit on the screen, so users can always see it.\n */\n @Prop({ reflect: true })\n readonly placement: Placement = 'bottom-end';\n\n /**\n * (New feature) Items to display in the menu, provided as a JSON string.\n * Format: [{ label: string, value?: string, disabled?: boolean, hasSubmenu?: boolean, ... }]\n */\n @Prop({ reflect: true })\n readonly items?: string;\n\n /**\n * Parsed items stored in state.\n */\n @State()\n private parsedItems: MenuItem[] = [];\n\n /**\n * Watcher to parse the items when the `items` property changes.\n * @param {string} newValue - The new value of the `items` property.\n */\n @Watch('items')\n handleItemsChange(newValue: string) {\n if (typeof newValue === 'string') {\n try {\n this.parsedItems = JSON.parse(newValue);\n } catch (error) {\n console.error('Error parsing menu items:', error);\n this.parsedItems = [];\n }\n }\n }\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region METHODS\n\n /**\n * Opens the menu.\n */\n @Method()\n async show() {\n this.open = true;\n }\n\n /**\n * Closes the menu.\n */\n @Method()\n async close() {\n this.open = false;\n }\n\n //#endregion METHODS\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emitted from nv-menuitem elements with the corresponding id and name when\n * selected (via click or keyboard). This event listener can be attached to\n * either the nv-menu or the nv-menuitem element.\n */\n @Event()\n menuitemSelected: EventEmitter<\n HTMLNvMenuitemElementEventMap['menuitemSelected']\n >;\n\n @Listen('menuitemSelected')\n handleMenuItemSelect(\n event: CustomEvent<HTMLNvMenuitemElementEventMap['menuitemSelected']>,\n ) {\n if (this.disableCloseOnSelect) return;\n if (event.detail.hasSubmenu) return;\n this.open = false;\n }\n\n @Listen('keydown', { passive: false })\n handleKeydown(event: KeyboardEvent) {\n // If the menu is not open, check if the trigger is focused\n // and the user presses Enter or ArrowDown, open the menu\n if (!this.open) {\n if (\n (event.key === 'Enter' ||\n event.key === 'ArrowDown' ||\n event.key === ' ') &&\n document.activeElement === this.triggerElement\n ) {\n event.preventDefault();\n this.show();\n // Then, put the focus on the first menuitem\n const firstMenuItem = this.popoverElement.querySelector('nv-menuitem');\n if (firstMenuItem) {\n requestAnimationFrame(() => (firstMenuItem as HTMLElement).focus());\n }\n }\n return;\n }\n\n if (this.isHandlingKeyDown) return;\n this.isHandlingKeyDown = true;\n\n if (\n event.key === 'ArrowDown' ||\n event.key === 'ArrowUp' ||\n event.key === 'ArrowLeft' ||\n event.key === 'ArrowRight' ||\n event.key === 'Escape'\n ) {\n event.preventDefault();\n }\n\n if (event.key === 'Escape' && !this.nested) {\n this.close();\n this.triggerElement.focus();\n this.isHandlingKeyDown = false;\n return;\n }\n\n const menuContent = this.el.querySelector('[slot=\"content\"]');\n const menuItems = (\n Array.from(menuContent.childNodes) as Array<\n HTMLNvMenuitemElement | HTMLNvMenuElement\n >\n ).filter(item => item.matches?.('nv-menuitem, nv-menu'));\n\n let currentIndex = menuItems.indexOf(\n document.activeElement as HTMLNvMenuitemElement,\n );\n if (currentIndex === -1)\n currentIndex = menuItems.indexOf(\n document.activeElement.parentElement as HTMLNvMenuitemElement,\n );\n if (\n currentIndex === -1 &&\n menuItems.find(item => item.matches('nv-menu[open]'))\n ) {\n this.isHandlingKeyDown = false;\n return;\n }\n\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n menuItems.forEach(item => {\n if (item.matches('nv-menu')) (item as HTMLNvMenuElement).close();\n });\n }\n\n if (event.key === 'ArrowDown') {\n let nextIndex = (currentIndex + 1) % menuItems.length;\n while (menuItems[nextIndex].matches('nv-menuitem[disabled]')) {\n nextIndex = (nextIndex + 1) % menuItems.length;\n }\n const nextFocusable = menuItems[nextIndex];\n if (nextFocusable.matches('nv-menuitem')) {\n nextFocusable.focus();\n } else if (nextFocusable.matches('nv-menu')) {\n nextFocusable.querySelector('nv-menuitem').focus();\n }\n }\n\n if (event.key === 'ArrowUp') {\n let prevIndex = (currentIndex - 1 + menuItems.length) % menuItems.length;\n while (menuItems[prevIndex].matches('nv-menuitem[disabled]')) {\n prevIndex = (prevIndex - 1 + menuItems.length) % menuItems.length;\n }\n const prevFocusable = menuItems[prevIndex];\n if (prevFocusable.matches('nv-menuitem')) {\n prevFocusable.focus();\n } else if (prevFocusable.matches('nv-menu')) {\n prevFocusable.querySelector('nv-menuitem').focus();\n }\n }\n\n if (event.key === 'ArrowRight') {\n const submenu = menuItems[currentIndex];\n if (!submenu.matches('nv-menu')) {\n this.isHandlingKeyDown = false;\n return;\n }\n (submenu as HTMLNvMenuElement).show();\n }\n\n if (event.key === 'ArrowLeft' && this.nested) {\n if (menuItems.find(item => item.matches('nv-menu[open]'))) {\n this.isHandlingKeyDown = false;\n return;\n }\n this.close();\n this.triggerElement.focus();\n }\n\n this.isHandlingKeyDown = false;\n }\n\n @Listen('openChanged')\n handleOpenChanged(event: CustomEvent<boolean>) {\n if (event.target === this.el.querySelector('nv-popover')) {\n this.open = event.detail;\n }\n const triggerHasFocus = this.triggerElement === document.activeElement;\n const triggerHasFocusVisible =\n this.triggerElement.matches(':focus-visible');\n if (triggerHasFocus && triggerHasFocusVisible) this.focusFirstItem();\n }\n\n private focusFirstItem() {\n const firstButton = this.popoverElement.querySelector('nv-menuitem');\n if (firstButton) {\n requestAnimationFrame(() => firstButton.focus());\n }\n }\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region LIFECYCLE\n\n componentWillLoad() {\n this.triggerElement = Array.from(this.el.children).find(child => {\n return child.getAttribute('slot') === 'trigger';\n }) as HTMLElement;\n\n // If the items attribute is provided, parse its value.\n if (this.items) {\n this.handleItemsChange(this.items);\n }\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region RENDER\n\n /**\n * Generates menu items from the `items` property.\n * @param {MenuItem[]} items - The items to display in the menu.\n * @returns {HTMLElement[]} The rendered items.\n */\n private renderMenuItems(items: MenuItem[]) {\n return items.map(item => {\n if (item.hasSubmenu && item.submenuItems?.length > 0) {\n return (\n <nv-menu\n nested\n placement=\"right-start\"\n items={JSON.stringify(item.submenuItems)}\n >\n <nv-menuitem\n slot=\"trigger\"\n has-submenu\n disabled={item.disabled}\n icon={item.icon as IconName}\n shortcut={item.shortcut}\n id={item.value}\n name={item.label}\n label={item.label}\n ></nv-menuitem>\n </nv-menu>\n );\n }\n return (\n <nv-menuitem\n disabled={item.disabled}\n icon={item.icon as IconName}\n shortcut={item.shortcut}\n id={item.value}\n name={item.label}\n label={item.label}\n ></nv-menuitem>\n );\n });\n }\n\n render() {\n return (\n <Host>\n <slot name=\"trigger\"></slot>\n <nv-popover\n ref={el => (this.popoverElement = el)}\n triggerMode=\"click\"\n triggerElement={this.triggerElement}\n placement={this.placement}\n nested={this.nested}\n open={this.open}\n >\n {this.parsedItems.length > 0 ? (\n <ul slot=\"content\">{this.renderMenuItems(this.parsedItems)}</ul>\n ) : (\n <slot name=\"content\"></slot>\n )}\n </nv-popover>\n </Host>\n );\n }\n\n //#endregion RENDER\n}\n"]}
|
|
1
|
+
{"version":3,"file":"nv-menu.js","sourceRoot":"","sources":["../../../src/components/nv-menu/nv-menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Element,\n Prop,\n Listen,\n Event,\n EventEmitter,\n Method,\n} from '@stencil/core';\nimport type { Placement } from '@floating-ui/dom';\nimport { IconName } from '../nv-icon/nv-icons';\n\n/**\n * @slot trigger - The button element that toggles the menu popover\n * @slot content - The content of the menu, should be wrapped in a ul element containing nv-menuitem elements\n */\n@Component({\n tag: 'nv-menu',\n styleUrl: 'nv-menu.scss',\n shadow: false,\n})\nexport class NvMenu {\n @Element() el: HTMLNvMenuElement;\n private triggerElement!: HTMLElement;\n private popoverElement!: HTMLNvPopoverElement;\n private isHandlingKeyDown: boolean = false;\n\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Use this to toggle the initial visibility of the menu, by default the menu\n * is hidden.\n */\n @Prop({ reflect: true, mutable: true })\n open: boolean = false;\n\n /**\n * Use this if the menu is nested inside another menu. This will prevent the\n * parent menu from closing when the child menu is opened.\n */\n @Prop({ reflect: true })\n readonly nested: boolean = false;\n\n /**\n * Use this to disable the menu from closing automatically when a menu item is\n * selected.\n */\n @Prop({ reflect: true })\n readonly disableCloseOnSelect: boolean = false;\n\n /**\n * Decides where the menu shows up next to the button it's linked to (above,\n * below, to the sides). If there isn't enough room, it will adjust its\n * position on the axis to fit on the screen, so users can always see it.\n */\n @Prop({ reflect: true })\n readonly placement: Placement = 'bottom-end';\n\n /**\n * List of items used to automatically generate dropdown items. This\n * provides an alternative to using the slot manually.\n *\n * @example\n * items = [{\n * \"label\": \"Option 1\",\n * \"value\": \"option1\",\n * },\n * {\n * \"label\": \"Option 2\",\n * \"value\": \"option2\",\n * }]\n */\n @Prop({ reflect: true })\n readonly items?: {\n /**\n * The label of the menu item.\n */\n label: string;\n /**\n * The value of the menu item.\n */\n value?: string;\n /**\n * Whether the menu item is disabled.\n */\n disabled?: boolean;\n /**\n * Whether the menu item has a submenu.\n */\n hasSubmenu?: boolean;\n /**\n * The icon of the menu item.\n */\n icon?: string;\n /**\n * The shortcut of the menu item.\n */\n shortcut?: string;\n /**\n * Whether the menu item is nested.\n */\n nested?: boolean;\n /**\n * The submenu items of the menu item.\n */\n submenuItems?: InstanceType<typeof NvMenu>['items'];\n }[];\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region METHODS\n\n /**\n * Opens the menu.\n */\n @Method()\n async show() {\n this.open = true;\n }\n\n /**\n * Closes the menu.\n */\n @Method()\n async close() {\n this.open = false;\n }\n\n //#endregion METHODS\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emitted from nv-menuitem elements with the corresponding id and name when\n * selected (via click or keyboard). This event listener can be attached to\n * either the nv-menu or the nv-menuitem element.\n */\n @Event()\n menuitemSelected: EventEmitter<\n HTMLNvMenuitemElementEventMap['menuitemSelected']\n >;\n\n @Listen('menuitemSelected')\n handleMenuItemSelect(\n event: CustomEvent<HTMLNvMenuitemElementEventMap['menuitemSelected']>,\n ) {\n if (this.disableCloseOnSelect) return;\n if (event.detail.hasSubmenu) return;\n this.open = false;\n }\n\n @Listen('keydown', { passive: false })\n handleKeydown(event: KeyboardEvent) {\n // If the menu is not open, check if the trigger is focused\n // and the user presses Enter or ArrowDown, open the menu\n if (!this.open) {\n if (\n (event.key === 'Enter' ||\n event.key === 'ArrowDown' ||\n event.key === ' ') &&\n document.activeElement === this.triggerElement\n ) {\n event.preventDefault();\n this.show();\n // Then, put the focus on the first menuitem\n const firstMenuItem = this.popoverElement.querySelector('nv-menuitem');\n if (firstMenuItem) {\n requestAnimationFrame(() => (firstMenuItem as HTMLElement).focus());\n }\n }\n return;\n }\n\n if (this.isHandlingKeyDown) return;\n this.isHandlingKeyDown = true;\n\n if (\n event.key === 'ArrowDown' ||\n event.key === 'ArrowUp' ||\n event.key === 'ArrowLeft' ||\n event.key === 'ArrowRight' ||\n event.key === 'Escape'\n ) {\n event.preventDefault();\n }\n\n if (event.key === 'Escape' && !this.nested) {\n this.close();\n this.triggerElement.focus();\n this.isHandlingKeyDown = false;\n return;\n }\n\n const menuContent = this.el.querySelector('[slot=\"content\"]');\n const menuItems = (\n Array.from(menuContent.childNodes) as Array<\n HTMLNvMenuitemElement | HTMLNvMenuElement\n >\n ).filter(item => item.matches?.('nv-menuitem, nv-menu'));\n\n let currentIndex = menuItems.indexOf(\n document.activeElement as HTMLNvMenuitemElement,\n );\n if (currentIndex === -1)\n currentIndex = menuItems.indexOf(\n document.activeElement.parentElement as HTMLNvMenuitemElement,\n );\n if (\n currentIndex === -1 &&\n menuItems.find(item => item.matches('nv-menu[open]'))\n ) {\n this.isHandlingKeyDown = false;\n return;\n }\n\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n menuItems.forEach(item => {\n if (item.matches('nv-menu')) (item as HTMLNvMenuElement).close();\n });\n }\n\n if (event.key === 'ArrowDown') {\n let nextIndex = (currentIndex + 1) % menuItems.length;\n while (menuItems[nextIndex].matches('nv-menuitem[disabled]')) {\n nextIndex = (nextIndex + 1) % menuItems.length;\n }\n const nextFocusable = menuItems[nextIndex];\n if (nextFocusable.matches('nv-menuitem')) {\n nextFocusable.focus();\n } else if (nextFocusable.matches('nv-menu')) {\n nextFocusable.querySelector('nv-menuitem').focus();\n }\n }\n\n if (event.key === 'ArrowUp') {\n let prevIndex = (currentIndex - 1 + menuItems.length) % menuItems.length;\n while (menuItems[prevIndex].matches('nv-menuitem[disabled]')) {\n prevIndex = (prevIndex - 1 + menuItems.length) % menuItems.length;\n }\n const prevFocusable = menuItems[prevIndex];\n if (prevFocusable.matches('nv-menuitem')) {\n prevFocusable.focus();\n } else if (prevFocusable.matches('nv-menu')) {\n prevFocusable.querySelector('nv-menuitem').focus();\n }\n }\n\n if (event.key === 'ArrowRight') {\n const submenu = menuItems[currentIndex];\n if (!submenu.matches('nv-menu')) {\n this.isHandlingKeyDown = false;\n return;\n }\n (submenu as HTMLNvMenuElement).show();\n }\n\n if (event.key === 'ArrowLeft' && this.nested) {\n if (menuItems.find(item => item.matches('nv-menu[open]'))) {\n this.isHandlingKeyDown = false;\n return;\n }\n this.close();\n this.triggerElement.focus();\n }\n\n this.isHandlingKeyDown = false;\n }\n\n @Listen('openChanged')\n handleOpenChanged(event: CustomEvent<boolean>) {\n if (event.target === this.el.querySelector('nv-popover')) {\n this.open = event.detail;\n }\n const triggerHasFocus = this.triggerElement === document.activeElement;\n const triggerHasFocusVisible =\n this.triggerElement.matches(':focus-visible');\n if (triggerHasFocus && triggerHasFocusVisible) this.focusFirstItem();\n }\n\n private focusFirstItem() {\n const firstButton = this.popoverElement.querySelector('nv-menuitem');\n if (firstButton) {\n requestAnimationFrame(() => firstButton.focus());\n }\n }\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region LIFECYCLE\n\n componentWillLoad() {\n this.triggerElement = Array.from(this.el.children).find(child => {\n return child.getAttribute('slot') === 'trigger';\n }) as HTMLElement;\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region RENDER\n\n /**\n * Generates menu items from the `items` property.\n * @param {MenuItem[]} items - The items to display in the menu.\n * @returns {HTMLElement[]} The rendered items.\n */\n private renderMenuItems = () => {\n return this.items.map(item => {\n if (item.hasSubmenu && item.submenuItems?.length > 0) {\n return (\n <nv-menu nested placement=\"right-start\" items={item.submenuItems}>\n <nv-menuitem\n slot=\"trigger\"\n hasSubmenu\n disabled={item.disabled}\n icon={item.icon as IconName}\n shortcut={item.shortcut}\n id={item.value}\n name={item.label}\n label={item.label}\n ></nv-menuitem>\n </nv-menu>\n );\n }\n return (\n <nv-menuitem\n disabled={item.disabled}\n icon={item.icon as IconName}\n shortcut={item.shortcut}\n id={item.value}\n name={item.label}\n label={item.label}\n ></nv-menuitem>\n );\n });\n };\n\n render() {\n return (\n <Host>\n <slot name=\"trigger\"></slot>\n <nv-popover\n ref={el => (this.popoverElement = el)}\n triggerMode=\"click\"\n triggerElement={this.triggerElement}\n placement={this.placement}\n nested={this.nested}\n open={this.open}\n >\n {this.items ? (\n <ul slot=\"content\">{this.renderMenuItems()}</ul>\n ) : (\n <slot name=\"content\"></slot>\n )}\n </nv-popover>\n </Host>\n );\n }\n\n //#endregion RENDER\n}\n"]}
|
|
@@ -43,7 +43,7 @@ export class NvMenuitem {
|
|
|
43
43
|
/****************************************************************************/
|
|
44
44
|
//#region RENDER
|
|
45
45
|
render() {
|
|
46
|
-
return (h(Host, { key: '
|
|
46
|
+
return (h(Host, { key: 'd736bc00759cb97fe52d2d6dc091667057a5585c', role: "menuitem", tabindex: this.disabled ? '-1' : '0' }, this.icon && h("nv-icon", { key: 'cf29c75feedcb61d16d33433f834751c821a4256', name: this.icon }), h("slot", { key: '0ebe8b2faac9981023c224e3c5cd4f131e088c0e' }), this.label && h("span", { key: 'd2659aceb0ecc1cad794ae16d15432379677012c', "data-scope": "text" }, this.label), this.shortcut && !this.hasSubmenu && h("kbd", { key: '7d7772b6efda6faccafc425772c905d4aabd2ef5' }, this.shortcut), this.hasSubmenu && h("nv-icon", { key: 'c756d3ceffc907fa0c37338595a7fd09f8238a7b', name: "chevron-right" })));
|
|
47
47
|
}
|
|
48
48
|
static get is() { return "nv-menuitem"; }
|
|
49
49
|
static get originalStyleUrls() {
|
|
@@ -306,7 +306,7 @@ export class NvPopover {
|
|
|
306
306
|
/****************************************************************************/
|
|
307
307
|
//#region RENDER
|
|
308
308
|
render() {
|
|
309
|
-
return (h(Host, { key: '
|
|
309
|
+
return (h(Host, { key: '830051c35f7e10dfa4e31d401663bd5727ac988f' }, h("slot", { key: 'a49852a712bf6ab9c8557035ca4618d007939f03', name: "trigger" }), h("div", { key: '6d9cd4bd873cb92b1716a8ea88a3877a029cbe9c', "data-scope": "popover", hidden: true, ref: el => (this.popoverElement = el) }, this.hasArrow && (h("div", { key: 'f935c9248b602aa1c39e7d28c5503a24067fb744', "data-scope": "arrow", ref: el => (this.arrowElement = el) })), h("slot", { key: '6b682de05037b2d3b60c9139c448620fab963ea1', name: "content" }))));
|
|
310
310
|
}
|
|
311
311
|
static get is() { return "nv-popover"; }
|
|
312
312
|
static get originalStyleUrls() {
|
|
@@ -6,7 +6,7 @@ export class NvRow {
|
|
|
6
6
|
/****************************************************************************/
|
|
7
7
|
//#region RENDER
|
|
8
8
|
render() {
|
|
9
|
-
return (h(Host, { key: '
|
|
9
|
+
return (h(Host, { key: '7daaa109808165553e69707c72550f284e087011' }, h("slot", { key: 'a00fd8c81352b485d8508f9bd68af4dd81d959e1' })));
|
|
10
10
|
}
|
|
11
11
|
static get is() { return "nv-row"; }
|
|
12
12
|
static get originalStyleUrls() {
|
|
@@ -2,36 +2,37 @@ import { h } from "@stencil/core";
|
|
|
2
2
|
import { nameof } from "../../utils/class.utils";
|
|
3
3
|
const NvStackDocs = {
|
|
4
4
|
component: 'nv-stack',
|
|
5
|
+
subcomponents: ['nv-button'],
|
|
5
6
|
stories: [
|
|
6
7
|
{
|
|
7
8
|
name: 'Default',
|
|
8
9
|
args: { gutter: 2 },
|
|
9
|
-
template: (h("nv-stack", { "data-storybook-args": true }, h("
|
|
10
|
+
template: (h("nv-stack", { "data-storybook-args": true }, h("nv-button", null, "Button"), h("nv-button", null, "Button"), h("nv-button", null, "Button"))),
|
|
10
11
|
},
|
|
11
12
|
{
|
|
12
13
|
name: nameof(x => x.fill),
|
|
13
14
|
args: { fill: true },
|
|
14
|
-
template: (h("nv-stack", {
|
|
15
|
+
template: (h("nv-stack", { vertical: true, gutter: 2 }, h("nv-stack", { "data-storybook-args": true, class: "h-20" }, h("nv-button", null, "Button"), h("nv-button", null, "Button")), h("nv-stack", { "data-storybook-args": true, vertical: true }, h("nv-button", null, "Button"), h("nv-button", null, "Button")))),
|
|
15
16
|
},
|
|
16
17
|
{
|
|
17
18
|
name: nameof(x => x.flex),
|
|
18
19
|
args: { flex: true },
|
|
19
|
-
template: (h("nv-stack", { "data-storybook-args": true }, h("
|
|
20
|
+
template: (h("nv-stack", { "data-storybook-args": true }, h("nv-button", null, "Button"), h("nv-button", null, "Button"), h("nv-button", null, "Button"))),
|
|
20
21
|
},
|
|
21
22
|
{
|
|
22
23
|
name: nameof(x => x.full),
|
|
23
24
|
args: { full: true },
|
|
24
|
-
template: (h("nv-stack", { "data-storybook-args": true }, h("
|
|
25
|
+
template: (h("nv-stack", { "data-storybook-args": true }, h("nv-button", null, "Button"), h("nv-button", null, "Button"), h("nv-button", null, "Button"))),
|
|
25
26
|
},
|
|
26
27
|
{
|
|
27
28
|
name: nameof(x => x.gutter),
|
|
28
29
|
args: { gutter: 4 },
|
|
29
|
-
template: (h("nv-stack", { "data-storybook-args": true }, h("
|
|
30
|
+
template: (h("nv-stack", { "data-storybook-args": true }, h("nv-button", null, "Button"), h("nv-button", null, "Button"), h("nv-button", null, "Button"))),
|
|
30
31
|
},
|
|
31
32
|
{
|
|
32
33
|
name: nameof(x => x.vertical),
|
|
33
34
|
args: { vertical: true },
|
|
34
|
-
template: (h("nv-stack", { "data-storybook-args": true }, h("
|
|
35
|
+
template: (h("nv-stack", { "data-storybook-args": true }, h("nv-button", null, "Button"), h("nv-button", null, "Button"), h("nv-button", null, "Button"))),
|
|
35
36
|
},
|
|
36
37
|
],
|
|
37
38
|
};
|