@nova-design-system/nova-webcomponents 3.0.0-beta.38 → 3.0.0-beta.39
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/blazor-docs.json +928 -198
- package/dist/cjs/app-globals-3a1e7e63.js +7 -0
- package/dist/cjs/app-globals-3a1e7e63.js.map +1 -0
- package/dist/cjs/{constants-69b40456.js → constants-2ae3d9eb.js} +22 -2
- package/dist/cjs/constants-2ae3d9eb.js.map +1 -0
- package/dist/cjs/index-5910ba06.js +8 -4
- package/dist/cjs/index.cjs.js +3 -1
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/native.cjs.js +2 -2
- package/dist/cjs/nv-alert.cjs.entry.js +1 -1
- package/dist/cjs/nv-avatar.cjs.entry.js +1 -1
- package/dist/cjs/nv-badge_2.cjs.entry.js +1 -1
- package/dist/cjs/nv-button.cjs.entry.js +1 -1
- package/dist/cjs/nv-calendar.cjs.entry.js +984 -0
- package/dist/cjs/nv-calendar.cjs.entry.js.map +1 -0
- package/dist/cjs/nv-col.cjs.entry.js +1 -1
- package/dist/cjs/nv-datagrid.cjs.entry.js +2 -2
- package/dist/cjs/nv-datagridbody.cjs.entry.js +1 -1
- package/dist/cjs/nv-datagridcolumn.cjs.entry.js +1 -1
- package/dist/cjs/nv-datagriddatacell.cjs.entry.js +1 -1
- package/dist/cjs/nv-datagridhead.cjs.entry.js +1 -1
- package/dist/cjs/nv-datagridrow.cjs.entry.js +1 -1
- package/dist/cjs/nv-dialog.cjs.entry.js +2 -2
- package/dist/cjs/nv-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-dialogfooter_2.cjs.entry.js +2 -2
- package/dist/cjs/nv-fieldcheckbox.cjs.entry.js +10 -4
- package/dist/cjs/nv-fieldcheckbox.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fielddropdown.cjs.entry.js +146 -223
- package/dist/cjs/nv-fielddropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fielddropdownitem.cjs.entry.js +37 -32
- package/dist/cjs/nv-fielddropdownitem.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldmultiselect.cjs.entry.js +12 -11
- package/dist/cjs/nv-fieldmultiselect.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldnumber.cjs.entry.js +9 -3
- package/dist/cjs/nv-fieldnumber.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldpassword.cjs.entry.js +9 -3
- package/dist/cjs/nv-fieldpassword.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldradio.cjs.entry.js +9 -3
- package/dist/cjs/nv-fieldradio.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldselect.cjs.entry.js +11 -5
- package/dist/cjs/nv-fieldselect.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldtext.cjs.entry.js +9 -3
- package/dist/cjs/nv-fieldtext.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldtextarea.cjs.entry.js +9 -3
- package/dist/cjs/nv-fieldtextarea.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldtime.cjs.entry.js +20 -12
- package/dist/cjs/nv-fieldtime.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-icon.cjs.entry.js +19 -12
- package/dist/cjs/nv-icon.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-iconbutton.cjs.entry.js +1 -1
- package/dist/cjs/nv-loader.cjs.entry.js +1 -1
- package/dist/cjs/nv-menu.cjs.entry.js +1 -1
- package/dist/cjs/nv-menuitem.cjs.entry.js +1 -1
- package/dist/cjs/nv-popover.cjs.entry.js +2 -2
- package/dist/cjs/nv-popover.cjs.entry.js.map +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-table.cjs.entry.js +2 -2
- package/dist/cjs/nv-tablebody.cjs.entry.js +1 -1
- package/dist/cjs/nv-tablecolumn.cjs.entry.js +1 -1
- package/dist/cjs/nv-tabledatacell.cjs.entry.js +1 -1
- package/dist/cjs/nv-tablehead.cjs.entry.js +1 -1
- package/dist/cjs/nv-tablerow.cjs.entry.js +1 -1
- package/dist/cjs/nv-toggle.cjs.entry.js +2 -2
- package/dist/cjs/nv-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/uri.utils-8523ad2b.js +26 -0
- package/dist/cjs/uri.utils-8523ad2b.js.map +1 -0
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/nv-calendar/nv-calendar.css +341 -0
- package/dist/collection/components/nv-calendar/nv-calendar.docs.js +401 -0
- package/dist/collection/components/nv-calendar/nv-calendar.docs.js.map +1 -0
- package/dist/collection/components/nv-calendar/nv-calendar.js +1328 -0
- package/dist/collection/components/nv-calendar/nv-calendar.js.map +1 -0
- package/dist/collection/components/nv-col/nv-col.js +1 -1
- package/dist/collection/components/nv-datagrid/nv-datagrid.js +2 -2
- package/dist/collection/components/nv-datagridbody/nv-datagridbody.js +1 -1
- package/dist/collection/components/nv-datagridcolumn/nv-datagridcolumn.js +1 -1
- package/dist/collection/components/nv-datagriddatacell/nv-datagriddatacell.js +1 -1
- package/dist/collection/components/nv-datagridhead/nv-datagridhead.js +1 -1
- package/dist/collection/components/nv-datagridrow/nv-datagridrow.js +1 -1
- package/dist/collection/components/nv-dialog/nv-dialog.css +2 -0
- 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.docs.js +8 -0
- package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js +30 -4
- package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js.map +1 -1
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js +11 -3
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js.map +1 -1
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js +197 -252
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js.map +1 -1
- package/dist/collection/components/nv-fielddropdown/{nv-fielddropdown.css → styles/nv-fielddropdown.css} +0 -3
- package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.js +55 -47
- package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.js.map +1 -1
- package/dist/collection/components/nv-fielddropdownitem/{nv-fielddropdownitem.css → styles/nv-fielddropdownitem.css} +5 -3
- package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.js +1 -1
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.css +0 -2
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js +10 -2
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js +34 -33
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js.map +1 -1
- package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.docs.js +8 -0
- package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js +29 -3
- package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js.map +1 -1
- package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.docs.js +8 -0
- package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js +30 -4
- package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js.map +1 -1
- package/dist/collection/components/nv-fieldradio/nv-fieldradio.docs.js +8 -0
- package/dist/collection/components/nv-fieldradio/nv-fieldradio.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldradio/nv-fieldradio.js +29 -3
- package/dist/collection/components/nv-fieldradio/nv-fieldradio.js.map +1 -1
- package/dist/collection/components/nv-fieldselect/nv-fieldselect.docs.js +8 -19
- package/dist/collection/components/nv-fieldselect/nv-fieldselect.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldselect/nv-fieldselect.js +31 -5
- package/dist/collection/components/nv-fieldselect/nv-fieldselect.js.map +1 -1
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.docs.js +8 -0
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.js +30 -4
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.js.map +1 -1
- package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.docs.js +8 -0
- package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js +29 -3
- package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js.map +1 -1
- package/dist/collection/components/nv-fieldtime/nv-fieldtime.css +20 -17
- package/dist/collection/components/nv-fieldtime/nv-fieldtime.docs.js +8 -0
- package/dist/collection/components/nv-fieldtime/nv-fieldtime.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldtime/nv-fieldtime.js +38 -10
- package/dist/collection/components/nv-fieldtime/nv-fieldtime.js.map +1 -1
- package/dist/collection/components/nv-icon/nv-icon.js +19 -17
- package/dist/collection/components/nv-icon/nv-icon.js.map +1 -1
- package/dist/collection/components/nv-icon/nv-icons.js.map +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.js +1 -1
- package/dist/collection/components/nv-menuitem/nv-menuitem.js +2 -2
- package/dist/collection/components/nv-popover/nv-popover.css +3 -0
- 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.js +1 -1
- package/dist/collection/components/nv-table/nv-table.js +2 -2
- package/dist/collection/components/nv-tablebody/nv-tablebody.js +1 -1
- package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.js +1 -1
- package/dist/collection/components/nv-tabledatacell/nv-tabledatacell.js +1 -1
- package/dist/collection/components/nv-tablehead/nv-tablehead.js +1 -1
- package/dist/collection/components/nv-tablerow/nv-tablerow.js +1 -1
- package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
- package/dist/collection/components/nv-tooltip/nv-tooltip.js +1 -1
- package/dist/collection/index.js +2 -0
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/interfaces/calendarShortcut.js +2 -0
- package/dist/collection/interfaces/calendarShortcut.js.map +1 -0
- package/dist/collection/interfaces/dateRange.js +2 -0
- package/dist/collection/interfaces/dateRange.js.map +1 -0
- package/dist/collection/interfaces/localization.js +2 -0
- package/dist/collection/interfaces/localization.js.map +1 -0
- package/dist/collection/templates/navigation.docs.js +5 -0
- package/dist/collection/templates/navigation.docs.js.map +1 -1
- package/dist/collection/utils/constants.js +18 -0
- package/dist/collection/utils/constants.js.map +1 -1
- package/dist/collection/utils/test/uri.utils.test.js +21 -0
- package/dist/collection/utils/test/uri.utils.test.js.map +1 -0
- package/dist/collection/utils/uri.utils.js +15 -0
- package/dist/collection/utils/uri.utils.js.map +1 -0
- package/dist/components/index.js +3 -2
- package/dist/components/index.js.map +1 -1
- package/dist/components/nv-alert.js +2 -2
- package/dist/components/nv-avatar.js +2 -2
- package/dist/components/nv-badge.js +1 -1
- package/dist/components/nv-breadcrumb.js +2 -2
- package/dist/components/nv-button.js +1 -1
- package/dist/components/nv-calendar.d.ts +11 -0
- package/dist/components/nv-calendar.js +1046 -0
- package/dist/components/nv-calendar.js.map +1 -0
- package/dist/components/nv-col.js +1 -1
- package/dist/components/nv-datagrid.js +2 -2
- package/dist/components/nv-datagridbody.js +1 -1
- package/dist/components/nv-datagridcolumn.js +1 -1
- package/dist/components/nv-datagriddatacell.js +1 -1
- package/dist/components/nv-datagridhead.js +1 -1
- package/dist/components/nv-datagridrow.js +1 -1
- package/dist/components/nv-dialog.js +7 -7
- package/dist/components/nv-dialog.js.map +1 -1
- 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-fielddropdown.js +154 -230
- 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 +21 -19
- package/dist/components/nv-fieldmultiselect.js.map +1 -1
- package/dist/components/nv-fieldnumber.js +12 -5
- package/dist/components/nv-fieldnumber.js.map +1 -1
- package/dist/components/nv-fieldpassword.js +13 -6
- package/dist/components/nv-fieldpassword.js.map +1 -1
- package/dist/components/nv-fieldradio.js +11 -4
- package/dist/components/nv-fieldradio.js.map +1 -1
- package/dist/components/nv-fieldselect.js +13 -6
- package/dist/components/nv-fieldselect.js.map +1 -1
- package/dist/components/nv-fieldtext.js +12 -5
- package/dist/components/nv-fieldtext.js.map +1 -1
- package/dist/components/nv-fieldtextarea.js +11 -4
- package/dist/components/nv-fieldtextarea.js.map +1 -1
- package/dist/components/nv-fieldtime.js +25 -16
- package/dist/components/nv-fieldtime.js.map +1 -1
- package/dist/components/nv-icon.js +1 -1
- package/dist/components/nv-iconbutton.js +1 -1
- package/dist/components/nv-loader.js +1 -1
- package/dist/components/nv-menu.js +4 -4
- 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-table.js +2 -2
- package/dist/components/nv-tablebody.js +1 -1
- package/dist/components/nv-tablecolumn.js +1 -1
- package/dist/components/nv-tabledatacell.js +1 -1
- package/dist/components/nv-tablehead.js +1 -1
- package/dist/components/nv-tablerow.js +1 -1
- package/dist/components/nv-toggle.js +2 -2
- package/dist/components/nv-tooltip.js +1 -1
- package/dist/components/{p-802c9204.js → p-17b6705f.js} +5 -5
- package/dist/components/{p-802c9204.js.map → p-17b6705f.js.map} +1 -1
- package/dist/components/{p-2768d2c0.js → p-33e07c91.js} +2 -2
- package/dist/components/{p-2768d2c0.js.map → p-33e07c91.js.map} +1 -1
- package/dist/components/{p-b877a150.js → p-48317c2c.js} +3 -3
- package/dist/components/{p-b877a150.js.map → p-48317c2c.js.map} +1 -1
- package/dist/components/{p-a9a52105.js → p-492ad81d.js} +1178 -5
- package/dist/components/p-492ad81d.js.map +1 -0
- package/dist/components/{p-d20958c4.js → p-5f5e2bf2.js} +21 -15
- package/dist/components/p-5f5e2bf2.js.map +1 -0
- package/dist/components/{p-1c83f303.js → p-659a5ae4.js} +4 -4
- package/dist/components/{p-1c83f303.js.map → p-659a5ae4.js.map} +1 -1
- package/dist/components/{p-18d221e3.js → p-73e703a1.js} +2 -2
- package/dist/components/{p-18d221e3.js.map → p-73e703a1.js.map} +1 -1
- package/dist/components/p-7e58e7d1.js +23 -0
- package/dist/components/p-7e58e7d1.js.map +1 -0
- package/dist/components/{p-16badb3b.js → p-83e1177b.js} +3 -3
- package/dist/components/{p-16badb3b.js.map → p-83e1177b.js.map} +1 -1
- package/dist/components/{p-ab87be7f.js → p-842afd9a.js} +3 -3
- package/dist/components/{p-ab87be7f.js.map → p-842afd9a.js.map} +1 -1
- package/dist/components/{p-79bf6acb.js → p-88165c0e.js} +2 -2
- package/dist/components/{p-79bf6acb.js.map → p-88165c0e.js.map} +1 -1
- package/dist/components/{p-91bf0cb6.js → p-8d7a57d1.js} +3 -3
- package/dist/components/{p-91bf0cb6.js.map → p-8d7a57d1.js.map} +1 -1
- package/dist/components/p-c1765831.js +89 -0
- package/dist/components/p-c1765831.js.map +1 -0
- package/dist/components/p-f40a7e2f.js +95 -0
- package/dist/components/p-f40a7e2f.js.map +1 -0
- package/dist/{esm/constants-0181211f.js → components/p-fd65c51f.js} +22 -3
- package/dist/components/p-fd65c51f.js.map +1 -0
- package/dist/components/{p-98ff0e5f.js → p-fdf57d25.js} +13 -6
- package/dist/components/p-fdf57d25.js.map +1 -0
- package/dist/docs.json +868 -145
- package/dist/esm/app-globals-0f993ce5.js +5 -0
- package/dist/esm/app-globals-0f993ce5.js.map +1 -0
- package/dist/{components/p-56f71851.js → esm/constants-8243d2ea.js} +22 -3
- package/dist/esm/constants-8243d2ea.js.map +1 -0
- package/dist/esm/index-fac2d5d2.js +8 -4
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js +2 -2
- package/dist/esm/native.js +2 -2
- package/dist/esm/nv-alert.entry.js +1 -1
- package/dist/esm/nv-avatar.entry.js +1 -1
- package/dist/esm/nv-badge_2.entry.js +1 -1
- package/dist/esm/nv-button.entry.js +1 -1
- package/dist/esm/nv-calendar.entry.js +980 -0
- package/dist/esm/nv-calendar.entry.js.map +1 -0
- package/dist/esm/nv-col.entry.js +1 -1
- package/dist/esm/nv-datagrid.entry.js +2 -2
- package/dist/esm/nv-datagridbody.entry.js +1 -1
- package/dist/esm/nv-datagridcolumn.entry.js +1 -1
- package/dist/esm/nv-datagriddatacell.entry.js +1 -1
- package/dist/esm/nv-datagridhead.entry.js +1 -1
- package/dist/esm/nv-datagridrow.entry.js +1 -1
- package/dist/esm/nv-dialog.entry.js +2 -2
- package/dist/esm/nv-dialog.entry.js.map +1 -1
- package/dist/esm/nv-dialogfooter_2.entry.js +2 -2
- package/dist/esm/nv-fieldcheckbox.entry.js +10 -4
- package/dist/esm/nv-fieldcheckbox.entry.js.map +1 -1
- package/dist/esm/nv-fielddropdown.entry.js +146 -223
- package/dist/esm/nv-fielddropdown.entry.js.map +1 -1
- package/dist/esm/nv-fielddropdownitem.entry.js +37 -32
- package/dist/esm/nv-fielddropdownitem.entry.js.map +1 -1
- package/dist/esm/nv-fieldmultiselect.entry.js +12 -11
- package/dist/esm/nv-fieldmultiselect.entry.js.map +1 -1
- package/dist/esm/nv-fieldnumber.entry.js +9 -3
- package/dist/esm/nv-fieldnumber.entry.js.map +1 -1
- package/dist/esm/nv-fieldpassword.entry.js +9 -3
- package/dist/esm/nv-fieldpassword.entry.js.map +1 -1
- package/dist/esm/nv-fieldradio.entry.js +9 -3
- package/dist/esm/nv-fieldradio.entry.js.map +1 -1
- package/dist/esm/nv-fieldselect.entry.js +11 -5
- package/dist/esm/nv-fieldselect.entry.js.map +1 -1
- package/dist/esm/nv-fieldtext.entry.js +9 -3
- package/dist/esm/nv-fieldtext.entry.js.map +1 -1
- package/dist/esm/nv-fieldtextarea.entry.js +9 -3
- package/dist/esm/nv-fieldtextarea.entry.js.map +1 -1
- package/dist/esm/nv-fieldtime.entry.js +20 -12
- package/dist/esm/nv-fieldtime.entry.js.map +1 -1
- package/dist/esm/nv-icon.entry.js +19 -12
- package/dist/esm/nv-icon.entry.js.map +1 -1
- package/dist/esm/nv-iconbutton.entry.js +1 -1
- package/dist/esm/nv-loader.entry.js +1 -1
- package/dist/esm/nv-menu.entry.js +1 -1
- package/dist/esm/nv-menuitem.entry.js +1 -1
- package/dist/esm/nv-popover.entry.js +2 -2
- package/dist/esm/nv-popover.entry.js.map +1 -1
- package/dist/esm/nv-row.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-tablebody.entry.js +1 -1
- package/dist/esm/nv-tablecolumn.entry.js +1 -1
- package/dist/esm/nv-tabledatacell.entry.js +1 -1
- package/dist/esm/nv-tablehead.entry.js +1 -1
- package/dist/esm/nv-tablerow.entry.js +1 -1
- package/dist/esm/nv-toggle.entry.js +2 -2
- package/dist/esm/nv-tooltip.entry.js +1 -1
- package/dist/esm/uri.utils-4c2a1e4c.js +23 -0
- package/dist/esm/uri.utils-4c2a1e4c.js.map +1 -0
- package/dist/native/index.esm.js +1 -1
- package/dist/native/index.esm.js.map +1 -1
- package/dist/native/native.css +1 -1
- package/dist/native/native.esm.js +1 -1
- package/dist/native/native.esm.js.map +1 -1
- package/dist/native/{p-8f4788b9.entry.js → p-1bae8cdd.entry.js} +2 -2
- package/dist/native/{p-8c1a6aa6.entry.js → p-1ca72f74.entry.js} +2 -2
- package/dist/native/{p-d67b7502.entry.js → p-2151f564.entry.js} +2 -2
- package/dist/native/{p-87083363.entry.js → p-2b99e720.entry.js} +2 -2
- package/dist/native/{p-87083363.entry.js.map → p-2b99e720.entry.js.map} +1 -1
- package/dist/native/p-3422397d.entry.js +2 -0
- package/dist/native/{p-e3827605.entry.js → p-39b4ec02.entry.js} +2 -2
- package/dist/native/p-39b4ec02.entry.js.map +1 -0
- package/dist/native/{p-a06bafad.entry.js → p-3b2c7871.entry.js} +2 -2
- package/dist/native/{p-51ad8bcd.entry.js → p-3bfd5a30.entry.js} +2 -2
- package/dist/native/p-3bfd5a30.entry.js.map +1 -0
- package/dist/native/p-44e7e3e8.entry.js +2 -0
- package/dist/native/p-44e7e3e8.entry.js.map +1 -0
- package/dist/native/p-46c9aa04.entry.js +2 -0
- package/dist/native/p-46c9aa04.entry.js.map +1 -0
- package/dist/native/p-4a7fa613.entry.js +2 -0
- package/dist/native/{p-96902bb3.entry.js.map → p-4a7fa613.entry.js.map} +1 -1
- package/dist/native/{p-e192c25c.entry.js → p-4db7add6.entry.js} +2 -2
- package/dist/native/{p-a998f8df.entry.js → p-4eacd598.entry.js} +2 -2
- package/dist/native/p-51e0c5d3.entry.js +2 -0
- package/dist/native/{p-2aebf31b.entry.js.map → p-51e0c5d3.entry.js.map} +1 -1
- package/dist/native/p-57513eb0.entry.js +2 -0
- package/dist/native/{p-ab5a8ce5.entry.js.map → p-57513eb0.entry.js.map} +1 -1
- package/dist/native/p-5851fbed.entry.js +2 -0
- package/dist/native/{p-61d2cb2e.entry.js → p-634b49fe.entry.js} +2 -2
- package/dist/native/{p-211f7b19.entry.js → p-63c894f0.entry.js} +2 -2
- package/dist/native/{p-130f6c47.entry.js → p-6acbf729.entry.js} +2 -2
- package/dist/native/p-6acbf729.entry.js.map +1 -0
- package/dist/native/{p-bd6d9237.entry.js → p-7211a3cb.entry.js} +2 -2
- package/dist/native/{p-bd6d9237.entry.js.map → p-7211a3cb.entry.js.map} +1 -1
- package/dist/native/p-79765c7d.entry.js +2 -0
- package/dist/native/p-7e58e7d1.js +2 -0
- package/dist/native/p-7e58e7d1.js.map +1 -0
- package/dist/native/{p-3c004551.entry.js → p-833af1bf.entry.js} +2 -2
- package/dist/native/p-833af1bf.entry.js.map +1 -0
- package/dist/native/p-87bd53df.entry.js +2 -0
- package/dist/native/p-87bd53df.entry.js.map +1 -0
- package/dist/native/p-8b323a15.entry.js +2 -0
- package/dist/native/{p-10ba289c.entry.js.map → p-8b323a15.entry.js.map} +1 -1
- package/dist/native/p-943a19a5.entry.js +2 -0
- package/dist/native/{p-8ee30013.entry.js.map → p-943a19a5.entry.js.map} +1 -1
- package/dist/native/{p-2f62f097.entry.js → p-9c8eadde.entry.js} +2 -2
- package/dist/native/p-ac81e143.entry.js +2 -0
- package/dist/native/p-ac81e143.entry.js.map +1 -0
- package/dist/native/{p-99e7a452.entry.js → p-afc16010.entry.js} +2 -2
- package/dist/native/p-afc16010.entry.js.map +1 -0
- package/dist/native/{p-54df2174.entry.js → p-b13b2663.entry.js} +2 -2
- package/dist/native/p-b13b2663.entry.js.map +1 -0
- package/dist/native/p-b2ace8e9.entry.js +2 -0
- package/dist/native/p-b2ace8e9.entry.js.map +1 -0
- package/dist/native/{p-4f11286d.entry.js → p-bac62e20.entry.js} +2 -2
- package/dist/native/{p-46553ffd.entry.js → p-bfb6e22c.entry.js} +2 -2
- package/dist/native/p-c29be15d.entry.js +2 -0
- package/dist/native/{p-aa2834e2.entry.js.map → p-c29be15d.entry.js.map} +1 -1
- package/dist/native/{p-1bb5a6bd.entry.js → p-cba14168.entry.js} +2 -2
- package/dist/native/p-cba14168.entry.js.map +1 -0
- package/dist/native/p-dbb89408.entry.js +2 -0
- package/dist/native/p-e1255160.js +2 -0
- package/dist/native/p-e1255160.js.map +1 -0
- package/dist/native/p-e1b22ca7.entry.js +2 -0
- package/dist/native/p-e1b22ca7.entry.js.map +1 -0
- package/dist/native/{p-d776ed48.entry.js → p-ef9b66d4.entry.js} +2 -2
- package/dist/native/p-f867541d.entry.js +2 -0
- package/dist/native/p-f954a077.entry.js +2 -0
- package/dist/native/{p-f30ce086.entry.js.map → p-f954a077.entry.js.map} +1 -1
- package/dist/native/{p-d24586ed.entry.js → p-fa33ec18.entry.js} +2 -2
- package/dist/native/{p-56f71851.js → p-fd65c51f.js} +2 -2
- package/dist/native/p-fd65c51f.js.map +1 -0
- package/dist/native/p-ff7eea0e.entry.js +2 -0
- package/dist/types/components/nv-calendar/nv-calendar.d.ts +383 -0
- package/dist/types/components/nv-calendar/nv-calendar.docs.d.ts +4 -0
- package/dist/types/components/nv-fieldcheckbox/nv-fieldcheckbox.d.ts +6 -0
- package/dist/types/components/nv-fielddropdown/nv-fielddropdown.d.ts +45 -62
- package/dist/types/components/nv-fielddropdownitem/nv-fielddropdownitem.d.ts +27 -13
- package/dist/types/components/nv-fieldmultiselect/nv-fieldmultiselect.d.ts +7 -10
- package/dist/types/components/nv-fieldnumber/nv-fieldnumber.d.ts +6 -0
- package/dist/types/components/nv-fieldpassword/nv-fieldpassword.d.ts +6 -0
- package/dist/types/components/nv-fieldradio/nv-fieldradio.d.ts +6 -0
- package/dist/types/components/nv-fieldselect/nv-fieldselect.d.ts +6 -0
- package/dist/types/components/nv-fieldtext/nv-fieldtext.d.ts +6 -0
- package/dist/types/components/nv-fieldtextarea/nv-fieldtextarea.d.ts +6 -0
- package/dist/types/components/nv-fieldtime/nv-fieldtime.d.ts +6 -0
- package/dist/types/components/nv-icon/nv-icon.d.ts +6 -4
- package/dist/types/components.d.ts +292 -28
- package/dist/types/index.d.ts +4 -0
- package/dist/types/interfaces/calendarShortcut.d.ts +17 -0
- package/dist/types/interfaces/dateRange.d.ts +13 -0
- package/dist/types/interfaces/localization.d.ts +9 -0
- package/dist/types/utils/constants.d.ts +2 -0
- package/dist/types/utils/uri.utils.d.ts +6 -0
- package/dist/vscode-data.json +180 -56
- package/hydrate/index.js +2104 -1085
- package/hydrate/index.mjs +2104 -1085
- package/package.json +7 -3
- package/dist/cjs/app-globals-bd4d701e.js +0 -11
- package/dist/cjs/app-globals-bd4d701e.js.map +0 -1
- package/dist/cjs/constants-69b40456.js.map +0 -1
- package/dist/collection/components/nv-fielddropdownitem/DropdownItemSelectedEventDetail.js +0 -2
- package/dist/collection/components/nv-fielddropdownitem/DropdownItemSelectedEventDetail.js.map +0 -1
- package/dist/collection/dev/dev-components.js +0 -3
- package/dist/collection/dev/dev-components.js.map +0 -1
- package/dist/collection/dev/dev-forms.js +0 -3
- package/dist/collection/dev/dev-forms.js.map +0 -1
- package/dist/collection/dev/dev-root.js +0 -23
- package/dist/collection/dev/dev-root.js.map +0 -1
- package/dist/collection/dev/dev-utils.js +0 -54
- package/dist/collection/dev/dev-utils.js.map +0 -1
- package/dist/collection/global.js +0 -6
- package/dist/collection/global.js.map +0 -1
- package/dist/components/p-17714233.js +0 -1263
- package/dist/components/p-17714233.js.map +0 -1
- package/dist/components/p-56f71851.js.map +0 -1
- package/dist/components/p-98ff0e5f.js.map +0 -1
- package/dist/components/p-a9a52105.js.map +0 -1
- package/dist/components/p-d20958c4.js.map +0 -1
- package/dist/components/p-dd34b97d.js +0 -90
- package/dist/components/p-dd34b97d.js.map +0 -1
- package/dist/esm/app-globals-0a94217b.js +0 -9
- package/dist/esm/app-globals-0a94217b.js.map +0 -1
- package/dist/esm/constants-0181211f.js.map +0 -1
- package/dist/native/p-02bb8184.entry.js +0 -2
- package/dist/native/p-09850aa9.entry.js +0 -2
- package/dist/native/p-09850aa9.entry.js.map +0 -1
- package/dist/native/p-10ba289c.entry.js +0 -2
- package/dist/native/p-1208abf2.entry.js +0 -2
- package/dist/native/p-1208abf2.entry.js.map +0 -1
- package/dist/native/p-130f6c47.entry.js.map +0 -1
- package/dist/native/p-180c45ff.entry.js +0 -2
- package/dist/native/p-180c45ff.entry.js.map +0 -1
- package/dist/native/p-1bb5a6bd.entry.js.map +0 -1
- package/dist/native/p-273d55e5.entry.js +0 -2
- package/dist/native/p-273d55e5.entry.js.map +0 -1
- package/dist/native/p-2aebf31b.entry.js +0 -2
- package/dist/native/p-3c004551.entry.js.map +0 -1
- package/dist/native/p-51ad8bcd.entry.js.map +0 -1
- package/dist/native/p-54df2174.entry.js.map +0 -1
- package/dist/native/p-56f71851.js.map +0 -1
- package/dist/native/p-892052c2.entry.js +0 -2
- package/dist/native/p-8ee30013.entry.js +0 -2
- package/dist/native/p-96902bb3.entry.js +0 -2
- package/dist/native/p-99e7a452.entry.js.map +0 -1
- package/dist/native/p-aa2834e2.entry.js +0 -2
- package/dist/native/p-ab5a8ce5.entry.js +0 -2
- package/dist/native/p-c398cdb4.entry.js +0 -2
- package/dist/native/p-c398cdb4.entry.js.map +0 -1
- package/dist/native/p-dc9dd5a7.entry.js +0 -2
- package/dist/native/p-e3827605.entry.js.map +0 -1
- package/dist/native/p-e5a7596b.entry.js +0 -2
- package/dist/native/p-e6f45df2.entry.js +0 -2
- package/dist/native/p-ed47a702.entry.js +0 -2
- package/dist/native/p-f30ce086.entry.js +0 -2
- package/dist/native/p-f3fbdea6.js +0 -2
- package/dist/native/p-f3fbdea6.js.map +0 -1
- package/dist/types/components/nv-fielddropdownitem/DropdownItemSelectedEventDetail.d.ts +0 -21
- package/dist/types/dev/dev-components.d.ts +0 -2
- package/dist/types/dev/dev-forms.d.ts +0 -2
- package/dist/types/dev/dev-utils.d.ts +0 -17
- package/dist/types/global.d.ts +0 -1
- /package/dist/native/{p-8f4788b9.entry.js.map → p-1bae8cdd.entry.js.map} +0 -0
- /package/dist/native/{p-8c1a6aa6.entry.js.map → p-1ca72f74.entry.js.map} +0 -0
- /package/dist/native/{p-d67b7502.entry.js.map → p-2151f564.entry.js.map} +0 -0
- /package/dist/native/{p-dc9dd5a7.entry.js.map → p-3422397d.entry.js.map} +0 -0
- /package/dist/native/{p-a06bafad.entry.js.map → p-3b2c7871.entry.js.map} +0 -0
- /package/dist/native/{p-e192c25c.entry.js.map → p-4db7add6.entry.js.map} +0 -0
- /package/dist/native/{p-a998f8df.entry.js.map → p-4eacd598.entry.js.map} +0 -0
- /package/dist/native/{p-e5a7596b.entry.js.map → p-5851fbed.entry.js.map} +0 -0
- /package/dist/native/{p-61d2cb2e.entry.js.map → p-634b49fe.entry.js.map} +0 -0
- /package/dist/native/{p-211f7b19.entry.js.map → p-63c894f0.entry.js.map} +0 -0
- /package/dist/native/{p-e6f45df2.entry.js.map → p-79765c7d.entry.js.map} +0 -0
- /package/dist/native/{p-2f62f097.entry.js.map → p-9c8eadde.entry.js.map} +0 -0
- /package/dist/native/{p-4f11286d.entry.js.map → p-bac62e20.entry.js.map} +0 -0
- /package/dist/native/{p-46553ffd.entry.js.map → p-bfb6e22c.entry.js.map} +0 -0
- /package/dist/native/{p-02bb8184.entry.js.map → p-dbb89408.entry.js.map} +0 -0
- /package/dist/native/{p-d776ed48.entry.js.map → p-ef9b66d4.entry.js.map} +0 -0
- /package/dist/native/{p-ed47a702.entry.js.map → p-f867541d.entry.js.map} +0 -0
- /package/dist/native/{p-d24586ed.entry.js.map → p-fa33ec18.entry.js.map} +0 -0
- /package/dist/native/{p-892052c2.entry.js.map → p-ff7eea0e.entry.js.map} +0 -0
- /package/dist/types/{dev/dev-root.d.ts → utils/test/uri.utils.test.d.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["t","e","module","exports","this","n","r","i","s","u","a","o","c","f","h","d","l","$","y","M","name","weekdays","split","months","ordinal","m","String","length","Array","join","v","z","utcOffset","Math","abs","floor","date","year","month","clone","add","ceil","p","w","D","ms","Q","toLowerCase","replace","g","S","_","O","args","arguments","b","locale","$L","utc","$u","x","$x","$offset","parse","prototype","$d","Date","NaN","test","match","substring","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","toString","isSame","startOf","endOf","isAfter","isBefore","$g","set","unix","valueOf","getTime","toDate","apply","slice","$locale","weekStart","$set","min","daysInMonth","get","Number","round","subtract","format","invalidDate","meridiem","monthsShort","weekdaysMin","weekdaysShort","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","k","forEach","extend","$i","isDayjs","en","Ls","LTS","LT","L","LL","LLL","LLLL","zone","offset","indexOf","concat","A","afternoon","milliseconds","SS","SSS","ss","mm","H","HH","hh","DD","Do","day","ww","MM","MMM","map","Error","MMMM","Y","YY","YYYY","Z","ZZ","formats","toUpperCase","regex","parser","exec","call","hours","customParseFormat","parseTwoDigitYear","minutes","seconds","week","local","getUTCFullYear","getUTCMonth","getUTCDate","getUTCDay","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","$localOffset","isUTC","yearStart","weeks","nvCalendarCss","NvCalendarStyle0","dayjs","weekOfYear","NvCalendar","constructor","hostRef","firstDayOfWeek","numberOfCalendars","singleValue","rangeValue","max","disabledDates","dateFormat","shortcutsPlacement","selectionType","showActions","shortcuts","parsedDisabledDates","selectedDate","startDate","endDate","resetSelection","singleDateChange","emit","rangeDateChange","start","end","confirmSelection","dateStr","formatDate","JSON","stringify","componentWillLoad","parseDisabledDates","parseDate","currentDate","parsed","console","warn","error","initializeMonths","changeMonth","calendarOffset","newDate","setUTCMonth","containers","el","querySelectorAll","container","classList","remove","animationClass","setTimeout","handleDateSelection","isDateDisabled","handleSingleSelection","handleRangeSelection","formattedDate","info","getWeekNumber","startOfYear","pastDaysOfYear","minDate","maxDate","some","disabledDate","isSameDate","isDateInRange","checkDate","isNaN","isSameOrAfter","isSameOrBefore","getDayNames","formatter","Intl","DateTimeFormat","weekday","getDaysInMonth","totalCalendars","firstDay","lastDay","days","offsetDays","prevMonthLastDay","push","dayOfMonth","isCurrentMonth","isDisabled","nextMonthDaysNeeded","from","value","label","getLocalizedWeekText","WEEK_ABBREVIATIONS","handleMonthChange","event","select","target","selectedMonth","parseInt","currentMonth","monthDiff","handleYearChange","input","setUTCFullYear","handleWeekSelection","weekDays","calendarIndex","allDays","weekEnd","selectedWeekDays","filter","validDays","isToday","today","validateNumberOfCalendars","newValue","onRangeValueChange","handleDisabledDatesChange","dateInput","unixSeconds","isUTCMode","unixMilliseconds","ticks","disabledDatesArray","date1","date2","compareDate","applyShortcut","shortcut","forceCalendarUpdate","requestAnimationFrame","document","style","pointerEvents","body","addEventListener","clearTouchState","passive","removeEventListener","getChangeMonthHandler","direction","getHandleMonthChange","getHandleYearChange","getDayClickHandler","undefined","getShortcutHandler","getWeekSelectionHandler","dates","index","parsedShortcuts","includes","hasShortcuts","hasActions","renderHeader","class","emphasis","size","onClick","onChange","key","selected","type","renderWeekNumbers","weekIndex","_a","find","renderDaysGrid","isSelected","isInRange","isStart","isEnd","isOutsideMonth","dayClasses","Boolean","renderCalendar","showWeekNumbers","renderShortcuts","renderActions","render","Host"],"sources":["../../node_modules/dayjs/dayjs.min.js","../../node_modules/dayjs/plugin/customParseFormat.js","../../node_modules/dayjs/plugin/utc.js","../../node_modules/dayjs/plugin/weekOfYear.js","src/components/nv-calendar/nv-calendar.scss?tag=nv-calendar","src/components/nv-calendar/nv-calendar.tsx"],"sourcesContent":["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d/,r=/\\d\\d/,i=/\\d\\d?/,o=/\\d*[^-_:/,()\\s\\d]+/,s={},a=function(e){return(e=+e)+(e>68?1900:2e3)};var f=function(e){return function(t){this[e]=+t}},h=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],u=function(e){var t=s[e];return t&&(t.indexOf?t:t.s.concat(t.f))},d=function(e,t){var n,r=s.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},c={A:[o,function(e){this.afternoon=d(e,!1)}],a:[o,function(e){this.afternoon=d(e,!0)}],Q:[n,function(e){this.month=3*(e-1)+1}],S:[n,function(e){this.milliseconds=100*+e}],SS:[r,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[i,f(\"seconds\")],ss:[i,f(\"seconds\")],m:[i,f(\"minutes\")],mm:[i,f(\"minutes\")],H:[i,f(\"hours\")],h:[i,f(\"hours\")],HH:[i,f(\"hours\")],hh:[i,f(\"hours\")],D:[i,f(\"day\")],DD:[r,f(\"day\")],Do:[o,function(e){var t=s.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],w:[i,f(\"week\")],ww:[r,f(\"week\")],M:[i,f(\"month\")],MM:[r,f(\"month\")],MMM:[o,function(e){var t=u(\"months\"),n=(u(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[o,function(e){var t=u(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,f(\"year\")],YY:[r,function(e){this.year=a(e)}],YYYY:[/\\d{4}/,f(\"year\")],Z:h,ZZ:h};function l(n){var r,i;r=n,i=s&&s.formats;for(var o=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=o.length,f=0;f<a;f+=1){var h=o[f],u=c[h],d=u&&u[0],l=u&&u[1];o[f]=l?{regex:d,parser:l}:h.replace(/^\\[|\\]$/g,\"\")}return function(e){for(var t={},n=0,r=0;n<a;n+=1){var i=o[n];if(\"string\"==typeof i)r+=i.length;else{var s=i.regex,f=i.parser,h=e.slice(r),u=s.exec(h)[0];f.call(t,u),e=e.replace(u,\"\")}}return function(e){var t=e.afternoon;if(void 0!==t){var n=e.hours;t?n<12&&(e.hours+=12):12===n&&(e.hours=0),delete e.afternoon}}(t),t}}return function(e,t,n){n.p.customParseFormat=!0,e&&e.parseTwoDigitYear&&(a=e.parseTwoDigitYear);var r=t.prototype,i=r.parse;r.parse=function(e){var t=e.date,r=e.utc,o=e.args;this.$u=r;var a=o[1];if(\"string\"==typeof a){var f=!0===o[2],h=!0===o[3],u=f||h,d=o[2];h&&(d=o[2]),s=this.$locale(),!f&&d&&(s=n.Ls[d]),this.$d=function(e,t,n,r){try{if([\"x\",\"X\"].indexOf(t)>-1)return new Date((\"X\"===t?1e3:1)*e);var i=l(t)(e),o=i.year,s=i.month,a=i.day,f=i.hours,h=i.minutes,u=i.seconds,d=i.milliseconds,c=i.zone,m=i.week,M=new Date,Y=a||(o||s?1:M.getDate()),p=o||M.getFullYear(),v=0;o&&!s||(v=s>0?s-1:M.getMonth());var D,w=f||0,g=h||0,y=u||0,L=d||0;return c?new Date(Date.UTC(p,v,Y,w,g,y,L+60*c.offset*1e3)):n?new Date(Date.UTC(p,v,Y,w,g,y,L)):(D=new Date(p,v,Y,w,g,y,L),m&&(D=r(D).week(m).toDate()),D)}catch(e){return new Date(\"\")}}(t,a,r,n),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),s={}}else if(a instanceof Array)for(var c=a.length,m=1;m<=c;m+=1){o[1]=a[m-1];var M=n.apply(this,o);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===c&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekOfYear=t()}(this,(function(){\"use strict\";var e=\"week\",t=\"year\";return function(i,n,r){var f=n.prototype;f.week=function(i){if(void 0===i&&(i=null),null!==i)return this.add(7*(i-this.week()),\"day\");var n=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var f=r(this).startOf(t).add(1,t).date(n),s=r(this).endOf(e);if(f.isBefore(s))return 1}var a=r(this).startOf(t).date(n).startOf(e).subtract(1,\"millisecond\"),o=this.diff(a,e,!0);return o<0?r(this).startOf(\"week\").week():Math.ceil(o)},f.weeks=function(e){return void 0===e&&(e=null),this.week(e)}}}));","// Colors\n$primary-color: var(--components-button-high-background);\n$primary-hover: var(--components-button-high-background-hover);\n$primary-light: var(--components-button-high-background-hover);\n\n$secondary-color: color-mix(\n in srgb,\n var(--components-form-shape-background-selected) 50%,\n transparent\n);\n$secondary-text: white;\n\n$border-color: var(--components-button-medium-border);\n$background-color: var(--color-level-00-background);\n$disabled-color: color-mix(\n in srgb,\n var(--components-form-shape-background-selected) 50%,\n transparent\n);\n$text-color: var(--components-form-text-label-default);\n$text-light: var(--components-form-text-description-default);\n$text-muted: var(--components-form-text-description-default);\n$highlight-today: var(--color-level-30-background);\n\n// Borders & Radius\n$border-radius: var(--menu-contextual-radius);\n$border-radius-sm: var(--menu-contextual-radius);\n$border-width: 1px;\n$border-style: solid;\n\n// Shadows & Transitions\n$box-shadow: 0 2px 6px 1px solid var(--components-button-medium-border);\n$transition-speed: 0.2s ease;\n\n// Spacings & Sizes\n$spacing-sm: 0.15rem;\n$spacing-md: 0.25rem;\n$spacing-lg: 0.5rem;\n$spacing-xl: 1rem;\n\n$calendar-cell-size: 2rem;\n\n// Typography\n$font-family: system-ui, sans-serif;\n$font-size-sm: 0.875rem;\n$font-size-md: 1rem;\n$font-weight-bold: 600;\n\n// Animations\n$slide-duration: 0.3s;\n$fade-duration: 0.2s;\n\n@mixin root-styles() {\n display: block;\n}\n\nnv-calendar {\n @include root-styles();\n}\n\n.datepicker-root {\n display: flex;\n justify-content: center;\n align-items: flex-start;\n width: auto;\n}\n\n.datepicker-container {\n font-family: $font-family;\n display: flex;\n flex-direction: column;\n align-items: stretch;\n background: $background-color;\n border-radius: $border-radius;\n padding: $spacing-md;\n box-shadow: $box-shadow;\n border: $border-width $border-style $border-color;\n width: auto;\n max-width: 100%;\n}\n\n.datepicker-container-single {\n width: 300px;\n\n .datepicker-wrapper:has(.shortcuts-placement-left),\n .datepicker-wrapper:has(.shortcuts-placement-right) {\n width: 410px !important;\n }\n\n &:has(.shortcuts-placement-left),\n &:has(.shortcuts-placement-right) {\n width: 410px !important;\n }\n}\n\n.datepicker-wrapper {\n display: flex;\n justify-content: center;\n align-items: flex-start;\n gap: $spacing-lg;\n width: auto;\n overflow-x: hidden;\n}\n\n.datepicker-wrapper.single {\n justify-content: center;\n}\n\n.calendar-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: $spacing-md;\n width: auto;\n position: relative;\n}\n\n.calendar-separator {\n width: $border-width;\n background: $border-color;\n height: auto;\n min-height: 100%;\n margin: 0 10px;\n}\n\n.header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: $spacing-md;\n width: 100%;\n}\n\n.nav-buttons {\n display: flex;\n gap: $spacing-sm;\n margin-left: auto;\n}\n\n.nav-left {\n order: -1;\n}\n\n.date-controls {\n display: flex;\n gap: $spacing-md;\n align-items: center;\n min-height: 34px;\n justify-content: center;\n\n .datepicker-container-single & {\n justify-content: flex-start !important;\n }\n\n .datepicker-container:not(.datepicker-container-single) & {\n justify-content: center !important;\n }\n}\n\n.calendar-grid {\n display: grid;\n grid-template-columns: auto 1fr;\n gap: $spacing-md;\n position: relative;\n\n &.slide-left {\n animation: slideLeft $slide-duration ease-out;\n }\n\n &.slide-right {\n animation: slideRight $slide-duration ease-out;\n }\n}\n\n.week-numbers {\n display: grid;\n grid-template-rows: 2rem repeat(6, 2rem);\n background: $highlight-today;\n border-radius: $border-radius-sm;\n width: 2.5rem;\n\n .clickable {\n cursor: pointer;\n &:hover {\n background: $primary-light;\n color: white;\n border-radius: $border-radius-sm;\n }\n }\n}\n\n.week-header,\n.week-number {\n display: grid;\n place-items: center;\n font-size: $font-size-sm;\n}\n\n.week-header {\n font-weight: $font-weight-bold;\n color: $text-color;\n}\n\n.week-number {\n color: $text-light;\n}\n\n.days-container {\n display: grid;\n grid-template-rows: auto 1fr;\n}\n\n.days-header {\n display: grid;\n grid-template-columns: repeat(7, $calendar-cell-size);\n height: $calendar-cell-size;\n}\n\n.day-header {\n display: grid;\n place-items: center;\n font-size: $font-size-sm;\n color: $text-light;\n}\n\n.days-grid {\n display: grid;\n grid-template-columns: repeat(7, $calendar-cell-size);\n grid-template-rows: repeat(6, $calendar-cell-size);\n animation: fadeIn $fade-duration ease-in;\n}\n\n.day {\n display: grid;\n place-items: center;\n width: $calendar-cell-size;\n height: $calendar-cell-size;\n font-size: $font-size-sm;\n border-radius: $border-radius-sm;\n cursor: pointer;\n border: none;\n background: transparent;\n transition: all $transition-speed;\n text-align: center;\n animation: scaleIn $fade-duration ease-out;\n\n &:hover:not(.disabled, .empty, .selected) {\n background: $primary-light;\n color: white;\n }\n\n &.selected,\n &.selected:hover {\n background: $primary-color;\n color: white;\n }\n\n &.disabled {\n color: $disabled-color;\n cursor: not-allowed;\n }\n\n &.outside-month {\n color: $text-muted;\n opacity: 0.6;\n }\n\n &.outside-month.selected,\n &.outside-month.in-range {\n opacity: 1 !important;\n color: inherit;\n }\n\n &.in-range {\n background: $secondary-color;\n color: $secondary-text;\n border-radius: 0;\n position: relative;\n }\n\n &.range-start,\n &.range-end {\n background: $primary-color;\n color: white;\n position: relative;\n }\n\n &.range-start {\n border-radius: $border-radius-sm 0 0 $border-radius-sm;\n }\n\n &.range-end {\n border-radius: 0 $border-radius-sm $border-radius-sm 0;\n }\n\n &.outside-month.range-start,\n &.outside-month.range-end {\n background: $primary-color !important;\n color: white;\n opacity: 1 !important;\n }\n\n &.outside-month.in-range {\n background: $secondary-color;\n color: $secondary-text;\n }\n\n &.is-today {\n font-weight: $font-weight-bold;\n position: relative;\n\n &::after {\n content: '';\n position: absolute;\n bottom: $spacing-sm;\n left: 50%;\n transform: translateX(-50%);\n width: $spacing-sm;\n height: $spacing-sm;\n background-color: currentColor;\n border-radius: 50%;\n }\n\n &.selected::after {\n background-color: white;\n }\n }\n}\n\n.calendar-footer {\n display: flex;\n gap: $spacing-md;\n justify-content: flex-start;\n width: 100%;\n flex-wrap: wrap;\n}\n\n.footer-placement-left {\n justify-content: flex-start;\n}\n\n.footer-placement-right {\n justify-content: flex-end;\n}\n\n.footer-placement-center {\n justify-content: center;\n}\n\n.datepicker-actions {\n display: flex;\n justify-content: flex-end;\n gap: $spacing-md;\n}\n\n.calendar-footer + .datepicker-actions {\n margin-top: 0;\n}\n\n.datepicker-controls {\n display: flex;\n flex-direction: column;\n border-top: $border-width $border-style $border-color;\n padding: $spacing-xl;\n gap: $spacing-md;\n}\n\n.shortcuts-placement-left,\n.shortcuts-placement-right {\n display: flex;\n flex-direction: column;\n gap: $spacing-md;\n\n margin-top: $spacing-xl;\n}\n\n.shortcuts-placement-left {\n align-items: flex-end;\n}\n\n.shortcuts-placement-right {\n align-items: flex-start;\n}\n\n@keyframes slideLeft {\n from {\n opacity: 0;\n transform: translateX(20px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n\n@keyframes slideRight {\n from {\n opacity: 0;\n transform: translateX(-20px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes scaleIn {\n from {\n opacity: 0;\n transform: scale(0.9);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n State,\n Element,\n Event,\n EventEmitter,\n Watch,\n} from '@stencil/core';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport utc from 'dayjs/plugin/utc';\nimport weekOfYear from 'dayjs/plugin/weekOfYear';\nimport { CalendarShortcut } from '../../interfaces/calendarShortcut';\nimport { DateRange } from '../../interfaces/dateRange';\nimport { WEEK_ABBREVIATIONS } from '../../utils/constants';\n\n// Extend dayjs with plugins\ndayjs.extend(customParseFormat);\ndayjs.extend(utc);\ndayjs.extend(weekOfYear);\n\n/**\n * @slot default - Child content of the component.\n * @slot actions - Child content of the component.\n */\n\n@Component({\n tag: 'nv-calendar',\n styleUrl: 'nv-calendar.scss',\n shadow: false,\n})\nexport class NvCalendar {\n @Element() el: HTMLNvCalendarElement;\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * First day of the week (0 = Sunday, 1 = Monday, etc.)\n * @default 0\n */\n @Prop()\n readonly firstDayOfWeek: number = 0;\n\n /**\n * Number of calendars to display\n * @default 1\n */\n @Prop({ mutable: true, reflect: true })\n numberOfCalendars: number = 1;\n\n /**\n * Selected date (ISO string format)\n * ex: \"2025-03-15\"\n */\n @Prop({ reflect: true, mutable: true })\n singleValue: string = '';\n\n /**\n * Selected date range\n * format: { start: ISO string, end: ISO string }\n * ex: { start: \"2025-03-15\", end: \"2025-03-20\" }\n */\n @Prop({ reflect: true, mutable: true })\n rangeValue: string = '';\n\n /**\n * Minimum date for selection (ISO string format, ex: \"2025-01-01\")\n */\n @Prop()\n readonly min?: string = '';\n\n /**\n * Maximum date for selection (ISO string format, ex: \"2025-12-31\")\n */\n @Prop()\n readonly max?: string = '';\n\n /** Disabled dates (ISO string array)\n * @default '[]'\n */\n @Prop()\n readonly disabledDates: string = '';\n\n /** Locale for date formatting\n * @default 'en-BE'\n */\n @Prop()\n readonly locale: string = 'en-BE';\n\n /** Date format (ex: 'YYYY-MM-DD', 'DD-MM-YYYY', etc.)\n * @default 'YYYY-MM-DD'\n * @note If the date format is in UTC mode, the date will be displayed in UTC time.\n * @note If the date format is not in UTC mode, the date will be displayed in the local time.\n */\n @Prop()\n readonly dateFormat: string = 'YYYY-MM-DD';\n\n /**\n * Footer placement\n * @default 'bottom'\n */\n @Prop()\n readonly shortcutsPlacement: 'bottom' | 'left' | 'right' = 'bottom';\n\n /**\n * Selection type (single date or date range)\n * @default 'single'\n */\n @Prop()\n readonly selectionType: 'single' | 'range' = 'single';\n\n /**\n * Show action buttons\n * @default false\n */\n @Prop()\n readonly showActions: boolean = false;\n\n /**\n * Custom actions to display in the footer\n * JSON array of objects with the following properties:\n * - label: string\n * - onClick: function\n * @default '[]'\n */\n @Prop()\n readonly shortcuts: string = '[]';\n\n /**\n * Show week numbers\n * @default true\n */\n @Prop()\n readonly showWeekNumbers: boolean;\n\n /** Cache for parsed disabled dates */\n private parsedDisabledDates: Date[] = [];\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region STATE\n\n /** Current date */\n @State()\n currentDate: Date;\n\n /** Selected date */\n @State()\n selectedDate: Date | null = null;\n\n /** Start date */\n @State()\n startDate: Date | null = null;\n\n /** End date */\n @State()\n endDate: Date | null = null;\n\n /** List of formatted months for the selector */\n @State()\n private months: {\n /** Month value */\n value: number;\n /** Month label */\n label: string;\n }[] = [];\n\n //#endregion STATE\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emitted when a single date is selected\n */\n @Event()\n singleDateChange: EventEmitter<string>;\n\n /**\n * Emitted when a date range is selected\n */\n @Event()\n rangeDateChange: EventEmitter<DateRange>;\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region LIFECYCLE\n\n componentWillLoad() {\n this.parseDisabledDates();\n\n if (this.selectionType === 'single' && this.singleValue) {\n this.selectedDate = this.parseDate(this.singleValue);\n this.currentDate = this.selectedDate;\n } else if (this.selectionType === 'range' && this.rangeValue) {\n try {\n let parsed: DateRange;\n\n if (typeof this.rangeValue === 'string') {\n parsed = JSON.parse(this.rangeValue) as DateRange;\n } else {\n parsed = this.rangeValue as DateRange;\n }\n\n if (parsed.start && parsed.end) {\n this.startDate = this.parseDate(parsed.start);\n this.endDate = this.parseDate(parsed.end);\n this.currentDate = this.startDate;\n\n if (this.startDate && this.endDate && this.startDate > this.endDate) {\n console.warn(\n `Warning: startDate (${this.formatDate(\n this.startDate,\n )}) is after endDate (${this.formatDate(this.endDate)})`,\n );\n // [this.startDate, this.endDate] = [this.endDate, this.startDate];\n throw new Error('startDate cannot be after endDate');\n }\n }\n } catch (error) {\n console.error('Invalid JSON for rangeValue:', error);\n }\n } else {\n this.currentDate = new Date();\n }\n\n this.initializeMonths();\n }\n\n // componentDidLoad() {\n // if (this.rangeValue) {\n // this.onRangeValueChange(this.rangeValue);\n // }\n // }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region METHODS\n\n /**\n * Change the displayed month\n * @param {number} offset - Month offset (-1 for previous, 1 for next)\n * @param {number} calendarOffset - Month offset for the calendar (0 by default)\n */\n private changeMonth(offset: number, calendarOffset: number = 0): void {\n const newDate = new Date(this.currentDate);\n newDate.setUTCMonth(newDate.getUTCMonth() + offset + calendarOffset);\n\n // Add the appropriate animation class\n const containers = this.el.querySelectorAll('.calendar-grid');\n containers.forEach(container => {\n // Remove existing animation classes\n container.classList.remove('slide-left', 'slide-right');\n\n // Add the new animation class\n const animationClass = offset > 0 ? 'slide-left' : 'slide-right';\n container.classList.add(animationClass);\n\n // Remove the class after the animation\n setTimeout(() => {\n container.classList.remove(animationClass);\n }, 300); // 300ms corresponds to $slide-duration in the SCSS\n });\n\n this.currentDate = newDate;\n }\n\n /**\n * Handles date selection based on the mode\n * @param {Date} date - Selected date\n */\n private handleDateSelection(date: Date): void {\n if (this.isDateDisabled(date)) {\n return;\n }\n\n if (this.selectionType === 'single') {\n this.handleSingleSelection(date);\n } else {\n this.handleRangeSelection(date);\n }\n }\n\n /**\n * Handles single date selection\n * @param {Date} date - Selected date\n */\n private handleSingleSelection(date: Date): void {\n if (!date) return;\n\n const formattedDate = this.formatDate(date);\n\n this.selectedDate = date;\n\n this.selectedDate = date;\n console.info('handleSingleSelection => selectedDate =', this.selectedDate);\n\n console.info('📤 Emitting singleDateChange:', {\n selectedDate: formattedDate,\n });\n\n this.singleDateChange.emit(formattedDate);\n }\n\n /**\n * Handles range date selection\n * @param {Date} date - Selected date\n */\n private handleRangeSelection(date: Date): void {\n if (!this.startDate || (this.startDate && this.endDate)) {\n this.startDate = date;\n this.endDate = null;\n } else {\n this.endDate = date;\n\n if (this.startDate > this.endDate) {\n [this.startDate, this.endDate] = [this.endDate, this.startDate];\n }\n\n this.rangeDateChange.emit({\n start: this.formatDate(this.startDate),\n end: this.formatDate(this.endDate),\n });\n }\n }\n\n /**\n * Calculates the ISO week number\n * @param {Date} date - Date to calculate\n * @returns {number} Week number\n */\n private getWeekNumber(date: Date): number {\n const startOfYear = new Date(date.getFullYear(), 0, 1);\n const pastDaysOfYear = (date.getTime() - startOfYear.getTime()) / 86400000;\n return Math.ceil((pastDaysOfYear + startOfYear.getDay() + 1) / 7);\n }\n\n /**\n * Checks if a date is disabled.\n * Disabled if:\n * - The date is before min (if defined)\n * - The date is after max (if defined)\n * - The date is in the disabledDates array\n * @param {Date} date - Date to check\n * @returns {boolean} true if the date is disabled\n */\n private isDateDisabled(date: Date): boolean {\n if (!date) return true;\n\n // Minimum bound check\n if (this.min) {\n const minDate = this.parseDate(this.min);\n if (minDate && date < minDate) {\n return true;\n }\n }\n\n // Maximum bound check\n if (this.max) {\n const maxDate = this.parseDate(this.max);\n if (maxDate && date > maxDate) {\n return true;\n }\n }\n\n // Check disabled dates\n return this.parsedDisabledDates.some(disabledDate =>\n this.isSameDate(date, disabledDate),\n );\n }\n\n /**\n * Checks if a date is in the selected range\n * @param {Date} date - Date to check\n * @returns {boolean} true if the date is in the range\n */\n private isDateInRange(date: Date): boolean {\n if (!date || !this.startDate || !this.endDate) return false;\n\n const checkDate = this.parseDate(date);\n const startDate = this.parseDate(this.startDate);\n const endDate = this.parseDate(this.endDate);\n\n // Verify if startDate and endDate are valid\n if (isNaN(startDate.getTime()) || isNaN(endDate.getTime())) {\n return false;\n }\n\n // Verify that startDate is before endDate (additional security)\n if (startDate > endDate) return false;\n\n // Comparison based only on the date (year, month, day)\n return (\n this.isSameOrAfter(checkDate, startDate) &&\n this.isSameOrBefore(checkDate, endDate)\n );\n }\n\n /**\n * Retrieves the localized day names\n * @returns {string[]} Array of short day names\n */\n private getDayNames(): string[] {\n const formatter = new Intl.DateTimeFormat(this.locale, {\n weekday: 'short',\n });\n return [...Array(7)].map((_, i) =>\n formatter.format(new Date(2023, 0, i + 1 + this.firstDayOfWeek)),\n );\n }\n\n /**\n * Generates the days of the current month\n * @param {number} offset - Month offset (0 by default)\n * @param {number} totalCalendars - Number of calendars to display (1 by default)\n * @returns {Array<{ dayOfMonth: number | null, date: Date | null, isSelected: boolean, isDisabled: boolean }>} Array of formatted days\n */\n private getDaysInMonth(\n offset: number = 0,\n totalCalendars: number = 1,\n ): Array<{\n /** Day of the month (1 to 31) */\n dayOfMonth: number;\n /** Complete date */\n date: Date;\n /** If the day belongs to the current month */\n isCurrentMonth: boolean;\n /** If the day is disabled */\n isDisabled: boolean;\n }> {\n const year = this.currentDate.getUTCFullYear();\n const month = this.currentDate.getUTCMonth() + offset;\n\n const firstDay = new Date(Date.UTC(year, month, 1));\n const lastDay = new Date(Date.UTC(year, month + 1, 0));\n\n const days = [];\n\n // Calculate the offset to include the days of the previous month only for the first calendar\n const offsetDays =\n offset === 0 ? (firstDay.getUTCDay() - this.firstDayOfWeek + 7) % 7 : 0;\n\n // Add the days of the previous month for the first calendar\n if (offset === 0) {\n const prevMonthLastDay = new Date(Date.UTC(year, month, 0)).getUTCDate();\n for (let i = offsetDays; i > 0; i--) {\n const date = new Date(\n Date.UTC(year, month - 1, prevMonthLastDay - i + 1),\n );\n days.push({\n dayOfMonth: date.getUTCDate(),\n date,\n isCurrentMonth: false,\n isDisabled: this.isDateDisabled(date),\n });\n }\n }\n\n // Add the days of the current month\n for (let i = 1; i <= lastDay.getUTCDate(); i++) {\n const date = new Date(Date.UTC(year, month, i));\n days.push({\n dayOfMonth: i,\n date,\n isCurrentMonth: true,\n isDisabled: this.isDateDisabled(date),\n });\n }\n\n // Add the days of the next month only for the last calendar\n if (offset === totalCalendars - 1) {\n const nextMonthDaysNeeded = 7 - (days.length % 7 || 7);\n for (let i = 1; i <= nextMonthDaysNeeded; i++) {\n const date = new Date(Date.UTC(year, month + 1, i));\n days.push({\n dayOfMonth: i,\n date,\n isCurrentMonth: false,\n isDisabled: this.isDateDisabled(date),\n });\n }\n }\n\n return days;\n }\n\n /** Initializes the list of formatted months according to the locale */\n private initializeMonths() {\n const formatter = new Intl.DateTimeFormat(this.locale, { month: 'long' });\n this.months = Array.from({ length: 12 }, (_, i) => ({\n value: i,\n label: formatter.format(new Date(2000, i, 1)),\n }));\n }\n\n /**\n * Retrieves the localized abbreviation for \"week\"\n * @returns {string} Localized abbreviation for \"week\"\n */\n private getLocalizedWeekText(): string {\n return WEEK_ABBREVIATIONS[this.locale] || 'W';\n }\n\n /**\n * Handles month change in the selector\n * @param {Event} event - Month change event\n * @param {number} calendarOffset - Calendar offset (0 by default)\n */\n private handleMonthChange(event: Event, calendarOffset: number = 0): void {\n const select = event.target as HTMLSelectElement;\n const selectedMonth = parseInt(select.value, 10);\n const currentMonth = this.currentDate.getUTCMonth();\n\n // Calculate the difference considering the calendar offset\n const monthDiff = selectedMonth - ((currentMonth + calendarOffset) % 12);\n\n const newDate = new Date(this.currentDate);\n newDate.setUTCMonth(newDate.getUTCMonth() + monthDiff);\n this.currentDate = newDate;\n }\n\n /**\n * Handles year change in the numeric entry\n * @param {Event} event - Year change event\n * @param {number} calendarOffset - Calendar offset (0 by default)\n */\n private handleYearChange(event: Event, calendarOffset: number = 0): void {\n const input = event.target as HTMLInputElement;\n const year = parseInt(input.value, 10);\n if (!isNaN(year) && year >= 1900 && year <= 2100) {\n const newDate = new Date(this.currentDate);\n newDate.setUTCFullYear(year);\n newDate.setUTCMonth(newDate.getUTCMonth() + calendarOffset);\n this.currentDate = newDate;\n }\n }\n\n /**\n * Handles week selection\n * @param {Date[]} weekDays - Selected week days\n * @param {number} calendarIndex - Calendar index from which the selection is made\n */\n private handleWeekSelection(weekDays: Date[], calendarIndex: number): void {\n if (this.selectionType !== 'range') return;\n\n // Retrieves the days of the month adjusted according to the calendar index\n const allDays = this.getDaysInMonth(calendarIndex, this.numberOfCalendars);\n\n const weekStart = weekDays[0];\n const weekEnd = weekDays[weekDays.length - 1];\n\n if (!weekStart || !weekEnd) return;\n\n const selectedWeekDays = allDays.filter(\n day => day.date && day.date >= weekStart && day.date <= weekEnd,\n );\n\n const validDays = selectedWeekDays.filter(\n day => !this.isDateDisabled(day.date),\n );\n\n if (validDays.length > 0) {\n this.startDate = validDays[0].date;\n this.endDate = validDays[validDays.length - 1].date;\n\n this.rangeDateChange.emit({\n start: this.startDate.toISOString(),\n end: this.endDate.toISOString(),\n });\n }\n }\n\n /**\n * Checks if a date corresponds to today\n * @param {Date} date - Date to check\n * @returns {boolean} true if the date is today\n */\n private isToday(date: Date): boolean {\n const today = new Date();\n return (\n date.getDate() === today.getDate() &&\n date.getMonth() === today.getMonth() &&\n date.getFullYear() === today.getFullYear()\n );\n }\n\n /**\n * Watches the changes of the number of calendars\n * @watch numberOfCalendars\n * @param {number} newValue - New number of calendars\n */\n @Watch('numberOfCalendars')\n validateNumberOfCalendars(newValue: number) {\n if (newValue < 1 || newValue > 4) {\n console.warn(\n 'numberOfCalendars must be between 1 and 4. Defaulting to 1.',\n );\n this.numberOfCalendars = 1;\n }\n }\n\n /**\n * Watches the changes of the selected date range\n * @watch rangeValue\n * @param {Object} newValue - New rangeValue value\n * @param {string} newValue.start - Start date\n * @param {string} newValue.end - End date\n */\n @Watch('rangeValue')\n onRangeValueChange(newValue: string) {\n if (newValue) {\n try {\n const parsed = JSON.parse(newValue) as DateRange;\n if (parsed.start && parsed.end) {\n this.startDate = this.parseDate(parsed.start);\n this.endDate = this.parseDate(parsed.end);\n this.currentDate = this.parseDate(parsed.start);\n }\n } catch (error) {\n console.error('Invalid JSON for rangeValue:', error);\n }\n }\n }\n\n /**\n * Watches the changes of the disabled dates\n * @watch disabledDates\n * @description Watches the changes of the disabled dates\n */\n @Watch('disabledDates')\n handleDisabledDatesChange() {\n this.parseDisabledDates();\n }\n\n /**\n * Convert a date string/Date to a Date without timezone offset\n * @param {string | Date} dateInput - Date under string or Date object form\n * @returns {Date} Date in Date form without timezone offset\n */\n private parseDate(dateInput: string | Date): Date | null {\n if (dateInput instanceof Date) return dateInput;\n\n // Handling Unix Seconds (\"X\") formats\n if (this.dateFormat === 'X') {\n const unixSeconds = Number(dateInput);\n if (isNaN(unixSeconds)) return null;\n return this.isUTCMode\n ? dayjs.unix(unixSeconds).utc().toDate()\n : dayjs.unix(unixSeconds).toDate();\n }\n\n // Handling Unix Milliseconds (\"x\") formats\n if (this.dateFormat === 'x') {\n const unixMilliseconds = Number(dateInput);\n if (isNaN(unixMilliseconds)) return null;\n return this.isUTCMode\n ? dayjs(unixMilliseconds).utc().toDate()\n : dayjs(unixMilliseconds).toDate();\n }\n\n // Handling C# Ticks format\n if (this.dateFormat === 'Ticks') {\n const ticks = Number(dateInput);\n if (isNaN(ticks)) return null;\n // Conversion of .NET ticks to milliseconds since Unix epoch\n const unixMilliseconds = (ticks - 621355968000000000) / 10000;\n return this.isUTCMode\n ? dayjs(unixMilliseconds).utc().toDate()\n : dayjs(unixMilliseconds).toDate();\n }\n\n // For all other formats, use customParseFormat in strict mode\n let parsed;\n if (this.isUTCMode) {\n parsed = dayjs.utc(dateInput, this.dateFormat, true);\n } else {\n parsed = dayjs(dateInput, this.dateFormat, true);\n }\n if (!parsed.isValid()) {\n console.error(`Parsing error:`, {\n dateInput,\n dateFormat: this.dateFormat,\n });\n return null;\n }\n return parsed.toDate();\n }\n\n /**\n * Formats a date to a string according to the format\n * @param {Date} date - Date to format\n * @returns {string} Formatted date\n */\n private formatDate(date: Date): string {\n if (!date) return '';\n\n // If the format is \"Ticks\", convert the time to C# ticks\n if (this.dateFormat === 'Ticks') {\n const ticks = date.getTime() * 10000 + 621355968000000000;\n return ticks.toString();\n }\n\n // If the format is \"X\" (Unix Seconds)\n if (this.dateFormat === 'X') {\n return dayjs(date).unix().toString();\n }\n\n // If the format is \"x\" (Unix Milliseconds)\n if (this.dateFormat === 'x') {\n return date.getTime().toString();\n }\n\n // Otherwise, format according to the mode (UTC or local)\n return this.isUTCMode\n ? dayjs(date).utc().format(this.dateFormat)\n : dayjs(date).format(this.dateFormat);\n }\n\n /**\n * Parse and cache the disabled dates\n * @description Parse and cache the disabled dates\n */\n private parseDisabledDates() {\n if (!this.disabledDates) {\n this.parsedDisabledDates = [];\n return;\n }\n\n try {\n const disabledDatesArray = JSON.parse(this.disabledDates) as string[];\n this.parsedDisabledDates = disabledDatesArray\n .map(date => this.parseDate(date))\n .filter(date => date !== null) as Date[];\n } catch (error) {\n console.error('Error parsing disabled dates:', error);\n this.parsedDisabledDates = [];\n }\n }\n\n /**\n * Checks if two dates are identical\n * @param {Date | null} date1 - First date\n * @param {Date | null} date2 - Second date\n * @returns {boolean} true if the dates are identical\n */\n private isSameDate(date1: Date | null, date2: Date | null): boolean {\n if (!date1 || !date2) return false;\n if (this.isUTCMode) {\n return (\n date1.getUTCFullYear() === date2.getUTCFullYear() &&\n date1.getUTCMonth() === date2.getUTCMonth() &&\n date1.getUTCDate() === date2.getUTCDate()\n );\n } else {\n return (\n date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate()\n );\n }\n }\n\n /**\n * Checks if a date is identical or after another date\n * @param {Date} date - Date to check\n * @param {Date} compareDate - Reference date\n * @returns {boolean} true if `date` >= `compareDate`\n */\n private isSameOrAfter(date: Date, compareDate: Date): boolean {\n if (this.isUTCMode) {\n return (\n date.getUTCFullYear() > compareDate.getUTCFullYear() ||\n (date.getUTCFullYear() === compareDate.getUTCFullYear() &&\n date.getUTCMonth() > compareDate.getUTCMonth()) ||\n (date.getUTCFullYear() === compareDate.getUTCFullYear() &&\n date.getUTCMonth() === compareDate.getUTCMonth() &&\n date.getUTCDate() >= compareDate.getUTCDate())\n );\n } else {\n return (\n date.getFullYear() > compareDate.getFullYear() ||\n (date.getFullYear() === compareDate.getFullYear() &&\n date.getMonth() > compareDate.getMonth()) ||\n (date.getFullYear() === compareDate.getFullYear() &&\n date.getMonth() === compareDate.getMonth() &&\n date.getDate() >= compareDate.getDate())\n );\n }\n }\n\n /**\n * Checks if a date is identical or before another date\n * @param {Date} date - Date to check\n * @param {Date} compareDate - Reference date\n * @returns {boolean} true if `date` <= `compareDate`\n */\n private isSameOrBefore(date: Date, compareDate: Date): boolean {\n if (this.isUTCMode) {\n return (\n date.getUTCFullYear() < compareDate.getUTCFullYear() ||\n (date.getUTCFullYear() === compareDate.getUTCFullYear() &&\n date.getUTCMonth() < compareDate.getUTCMonth()) ||\n (date.getUTCFullYear() === compareDate.getUTCFullYear() &&\n date.getUTCMonth() === compareDate.getUTCMonth() &&\n date.getUTCDate() <= compareDate.getUTCDate())\n );\n } else {\n return (\n date.getFullYear() < compareDate.getFullYear() ||\n (date.getFullYear() === compareDate.getFullYear() &&\n date.getMonth() < compareDate.getMonth()) ||\n (date.getFullYear() === compareDate.getFullYear() &&\n date.getMonth() === compareDate.getMonth() &&\n date.getDate() <= compareDate.getDate())\n );\n }\n }\n\n /**\n * Applies a shortcut selection\n * @param {Object} shortcut - Shortcut to apply\n * @param {string | Date} shortcut.singleValue - Selected date value\n * @param {Object} shortcut.rangeValue - Start and end date values\n * @param {string | Date} shortcut.rangeValue.start - Start date value\n * @param {string | Date} shortcut.rangeValue.end - End date value\n * @param {string} shortcut.label - Label\n */\n private applyShortcut(shortcut: CalendarShortcut) {\n this.selectedDate = null;\n this.startDate = null;\n this.endDate = null;\n\n if (shortcut.singleValue) {\n const newDate = this.parseDate(shortcut.singleValue);\n\n this.selectedDate = newDate;\n this.singleDateChange.emit(this.formatDate(newDate));\n this.singleValue = this.formatDate(newDate);\n\n this.forceCalendarUpdate(newDate);\n } else {\n const start = this.parseDate(shortcut.rangeValue.start);\n const end = this.parseDate(shortcut.rangeValue.end);\n\n this.startDate = start;\n this.endDate = end;\n this.rangeDateChange.emit({\n start: this.formatDate(start),\n end: this.formatDate(end),\n });\n\n this.rangeValue = JSON.stringify({\n start: this.formatDate(start),\n end: this.formatDate(end),\n });\n\n this.forceCalendarUpdate(end);\n }\n }\n\n /**\n * Method to force the complete calendar update (and fix the persistent hover problem)\n * @param {Date} newDate - Date to force\n */\n private forceCalendarUpdate(newDate) {\n this.currentDate = new Date(newDate);\n this.currentDate = new Date(this.currentDate); // Force a re-render\n\n // Reset visually the hover/touch effect\n requestAnimationFrame(() => {\n const days = document.querySelectorAll('.day');\n\n days.forEach(el => {\n (el as HTMLElement).classList.remove('hover', 'active', 'touched');\n (el as HTMLElement).style.pointerEvents = 'none';\n });\n\n // Add specific touch handling (for mobile)\n document.body.addEventListener('touchstart', this.clearTouchState, {\n passive: true,\n });\n\n // Reset the touch state after 50ms\n setTimeout(() => {\n days.forEach(el => {\n (el as HTMLElement).style.pointerEvents = '';\n });\n }, 50);\n });\n }\n\n /**\n * Function to reset the touch effect (Mobile fix)\n */\n private clearTouchState() {\n document.querySelectorAll('.day').forEach(el => {\n (el as HTMLElement).classList.remove('touched');\n });\n\n // Remove the listener after the first interaction\n document.body.removeEventListener('touchstart', this.clearTouchState);\n }\n\n /**\n * Handles month change with an offset\n * @param {number} direction - Direction (-1 for previous, 1 for next)\n * @param {number} offset - Month offset (0 by default)\n * @returns {Function} Change month handler\n */\n private getChangeMonthHandler(direction: number, offset: number) {\n return () => this.changeMonth(direction, offset);\n }\n\n /**\n * Handles month change from an event (ex: dropdown)\n * @param {number} offset - Month offset (0 by default)\n * @returns {Function} Change month handler\n */\n private getHandleMonthChange(offset: number) {\n return (event: Event) => this.handleMonthChange(event, offset);\n }\n\n /**\n * Handles year change from an event (ex: dropdown)\n * @param {number} offset - Year offset (0 by default)\n * @returns {Function} Change year handler\n */\n private getHandleYearChange(offset: number) {\n return (event: Event) => this.handleYearChange(event, offset);\n }\n\n /**\n * Handles day click\n * @param {Date} date - Date to handle\n * @param {boolean} isDisabled - Whether the date is disabled\n * @returns {Function} Day click handler\n */\n private getDayClickHandler(\n date: Date,\n isDisabled: boolean,\n ): (() => void) | undefined {\n return isDisabled ? undefined : () => this.handleDateSelection(date);\n }\n\n /**\n * Handles shortcut selection\n * @param {Object} shortcut - Shortcut to handle\n * @param {string | Date} shortcut.singleValue - Selected date value\n * @param {Object} shortcut.rangeValue - Start and end date values\n * @param {string | Date} shortcut.rangeValue.start - Start date value\n * @param {string | Date} shortcut.rangeValue.end - End date value\n * @param {string} shortcut.label - Label\n * @returns {Function} Shortcut selection handler\n */\n private getShortcutHandler(shortcut: CalendarShortcut) {\n return () => this.applyShortcut(shortcut);\n }\n\n /**\n * Handles week selection\n * @param {Date[]} dates - Dates to handle\n * @param {number} index - Calendar index\n * @returns {Function} Week selection handler\n */\n private getWeekSelectionHandler(dates: Date[], index: number) {\n return () => {\n if (this.selectionType === 'range') {\n this.handleWeekSelection(dates, index);\n }\n };\n }\n\n private parsedShortcuts(): CalendarShortcut[] {\n try {\n return this.shortcuts ? JSON.parse(this.shortcuts) : [];\n } catch (error) {\n console.error('Invalid JSON for shortcuts:', error);\n return [];\n }\n }\n\n /**\n * Checks if the date format is in UTC mode\n * @returns {boolean} true if the date format is in UTC mode\n */\n private get isUTCMode(): boolean {\n return this.dateFormat.includes('Z');\n }\n\n /**\n * Checks if shortcuts are visible\n * @returns {boolean} true if shortcuts are visible\n */\n private get hasShortcuts(): boolean {\n return (\n this.shortcutsPlacement === 'bottom' && this.parsedShortcuts().length > 0\n );\n }\n\n /**\n * Checks if actions are visible\n * @returns {boolean} true if actions are visible\n */\n private get hasActions(): boolean {\n return this.showActions;\n }\n\n /**\n * Resets the current selection\n */\n private resetSelection = (): void => {\n if (this.selectionType === 'single') {\n this.selectedDate = null;\n this.singleValue = '';\n this.singleDateChange.emit('');\n } else {\n this.startDate = null;\n this.endDate = null;\n this.rangeValue = '';\n this.rangeDateChange.emit({ start: '', end: '' });\n }\n };\n\n /**\n * Confirms the current selection\n */\n private confirmSelection = (): void => {\n if (this.selectionType === 'single' && this.selectedDate) {\n const dateStr = this.formatDate(this.selectedDate);\n this.singleDateChange.emit(dateStr);\n this.singleValue = dateStr;\n } else if (\n this.selectionType === 'range' &&\n this.startDate &&\n this.endDate\n ) {\n this.rangeDateChange.emit({\n start: this.formatDate(this.startDate),\n end: this.formatDate(this.endDate),\n });\n this.rangeValue = JSON.stringify({\n start: this.formatDate(this.startDate),\n end: this.formatDate(this.endDate),\n });\n }\n };\n\n //#endregion METHODS\n /****************************************************************************/\n //#region RENDER\n\n /**\n * Renders the header\n * @param {number} offset - Month offset\n * @param {number} index - Calendar index\n * @returns {JSX.Element} Header\n * @description Renders the header of the calendar\n */\n private renderHeader(offset: number, index: number) {\n return (\n <div class=\"header\">\n {/* If multiple calendars, display the left button only on the first calendar */}\n {this.numberOfCalendars > 1 && index === 0 && (\n <nv-iconbutton\n class=\"nav-left\"\n emphasis=\"low\"\n name=\"chevron-left\"\n size=\"sm\"\n onClick={this.getChangeMonthHandler(-1, offset)}\n ></nv-iconbutton>\n )}\n\n <div class=\"date-controls\">\n <select\n class=\"month-select mr-4\"\n onChange={this.getHandleMonthChange(offset)}\n >\n {this.months.map(month => (\n <option\n key={month.value}\n value={month.value}\n selected={\n month.value === (this.currentDate.getUTCMonth() + offset) % 12\n }\n >\n {month.label}\n </option>\n ))}\n </select>\n <input\n type=\"number\"\n class=\"year-input\"\n min=\"1950\"\n max=\"2100\"\n value={\n this.currentDate.getUTCFullYear() +\n Math.floor((this.currentDate.getUTCMonth() + offset) / 12)\n }\n onChange={this.getHandleYearChange(offset)}\n />\n </div>\n\n {/* If a single calendar, display the navigation buttons side by side */}\n {this.numberOfCalendars === 1 && (\n <div class=\"nav-buttons\">\n <nv-iconbutton\n emphasis=\"low\"\n name=\"chevron-left\"\n onClick={this.getChangeMonthHandler(-1, offset)}\n ></nv-iconbutton>\n\n <nv-iconbutton\n emphasis=\"low\"\n name=\"chevron-right\"\n onClick={this.getChangeMonthHandler(1, offset)}\n ></nv-iconbutton>\n </div>\n )}\n\n {/* If multiple calendars, display the right button only on the last calendar */}\n {this.numberOfCalendars > 1 && index === this.numberOfCalendars - 1 && (\n <nv-iconbutton\n emphasis=\"low\"\n name=\"chevron-right\"\n size=\"sm\"\n onClick={this.getChangeMonthHandler(1, offset)}\n class=\"nav-right\"\n ></nv-iconbutton>\n )}\n </div>\n );\n }\n\n /**\n * Renders the week numbers\n * @param {Array<{date: Date}>} weeks - Weeks to render\n * @param {number} index - Calendar index\n * @returns {JSX.Element} Week numbers\n * @description Renders the week numbers of the calendar\n */\n private renderWeekNumbers(\n /** Weeks to render */\n weeks: Array<{\n /** Date */\n date: Date;\n }>[],\n /** Calendar index */\n index: number,\n ) {\n return (\n <div class=\"week-numbers\">\n <div class=\"week-header\">{this.getLocalizedWeekText()}</div>\n {weeks.map((week, weekIndex) => {\n const dates = week.map(d => d.date);\n return (\n <div\n class={`week-number ${\n this.selectionType === 'range' ? 'clickable' : ''\n }`}\n onClick={this.getWeekSelectionHandler(dates, index)}\n key={`week-${weekIndex}`}\n >\n {this.getWeekNumber(week.find(d => d.date)?.date || new Date())}\n </div>\n );\n })}\n </div>\n );\n }\n\n private renderDaysGrid(\n /** Days to render */\n days: Array<{\n /** Date */\n date: Date;\n /** If the day belongs to the current month */\n isCurrentMonth: boolean;\n /** If the day is disabled */\n isDisabled: boolean;\n /** Day of the month (1 to 31) */\n dayOfMonth: number;\n }>,\n ) {\n return (\n <div class=\"days-grid\">\n {days.map(day => {\n const date = day.date;\n if (!date) return null;\n\n const isSelected =\n this.selectionType === 'single' &&\n this.isSameDate(date, this.selectedDate);\n const isInRange = this.isDateInRange(date);\n const isStart = this.isSameDate(date, this.startDate);\n const isEnd = this.isSameDate(date, this.endDate);\n const isToday = this.isToday(date);\n const isOutsideMonth = !day.isCurrentMonth;\n\n const dayClasses = [\n 'day',\n isSelected ? 'selected' : '',\n isStart ? 'range-start' : '',\n isEnd ? 'range-end' : '',\n isInRange ? 'in-range' : '',\n day.isDisabled ? 'disabled' : '',\n isOutsideMonth ? 'outside-month' : '',\n isToday ? 'is-today' : '',\n ];\n\n return (\n <div\n class={dayClasses.filter(Boolean).join(' ')}\n onClick={this.getDayClickHandler(date, day.isDisabled)}\n aria-disabled={day.isDisabled}\n key={`day-${date.toISOString()}`}\n >\n {day.dayOfMonth}\n </div>\n );\n })}\n </div>\n );\n }\n\n /**\n * Renders the calendar\n * @param {number} index - Calendar index\n * @param {number} offset - Month offset\n * @returns {JSX.Element} Calendar\n * @description Renders the calendar of the calendar\n */\n private renderCalendar(\n /** Calendar index */\n index: number,\n /** Month offset */\n offset: number,\n ) {\n const days = this.getDaysInMonth(offset, this.numberOfCalendars);\n const weeks = [];\n for (let i = 0; i < days.length; i += 7) {\n weeks.push(days.slice(i, i + 7));\n }\n\n return (\n <div class=\"calendar-wrapper\">\n <div class=\"calendar-container\" key={`calendar-${index}`}>\n {this.renderHeader(offset, index)}\n <div class=\"calendar-grid\">\n {this.showWeekNumbers && this.renderWeekNumbers(weeks, index)}\n <div class=\"days-container\">\n <div class=\"days-header\">\n {this.getDayNames().map(day => (\n <div class=\"day-header\">{day}</div>\n ))}\n </div>\n {this.renderDaysGrid(days)}\n </div>\n </div>\n </div>\n\n {/* Display a vertical separator only if multiple calendars */}\n {index < this.numberOfCalendars - 1 && (\n <div class=\"calendar-separator\"></div>\n )}\n </div>\n );\n }\n\n /**\n * Renders the shortcuts\n * @returns {JSX.Element} Shortcuts\n * @description Renders the shortcuts of the calendar\n */\n private renderShortcuts() {\n if (!this.parsedShortcuts().length) {\n return null;\n }\n\n return (\n <div\n class={`shortcuts-container shortcuts-placement-${this.shortcutsPlacement}`}\n >\n {this.parsedShortcuts().map(shortcut => (\n <nv-button\n emphasis=\"lower\"\n size=\"xs\"\n aria-label={shortcut.label}\n onClick={this.getShortcutHandler(shortcut)}\n >\n {shortcut.label}\n </nv-button>\n ))}\n </div>\n );\n }\n\n /**\n * Renders the actions\n * @returns {JSX.Element} Actions\n * @description Renders the actions of the calendar\n * @slot actions - Child content of the component.\n */\n private renderActions() {\n return (\n <div class=\"datepicker-actions\">\n <slot name=\"actions\">\n <nv-button emphasis=\"low\" size=\"sm\" onClick={this.resetSelection}>\n Cancel\n </nv-button>\n <nv-button size=\"sm\" onClick={this.confirmSelection}>\n OK\n </nv-button>\n </slot>\n </div>\n );\n }\n\n /**\n * Renders the datepicker\n * @returns {JSX.Element} Datepicker\n * @description Renders the datepicker of the calendar\n * @slot default - Child content of the component.\n */\n render() {\n return (\n <Host>\n <div class=\"datepicker-root\">\n <div\n class={`datepicker-container ${\n this.numberOfCalendars === 1 ? 'datepicker-container-single' : ''\n }`}\n >\n <div\n class={`datepicker-wrapper ${\n this.numberOfCalendars === 1 ? 'single' : ''\n }`}\n >\n {this.shortcutsPlacement === 'left' && this.renderShortcuts()}\n\n {Array.from({ length: this.numberOfCalendars }, (_, index) =>\n this.renderCalendar(index, index),\n )}\n\n {this.shortcutsPlacement === 'right' && this.renderShortcuts()}\n </div>\n\n {/* <div class=\"datepicker-controls\">\n {this.shortcutsPlacement === 'bottom' && this.renderShortcuts()}\n {this.showActions && this.renderActions()}\n </div> */}\n\n {(this.hasShortcuts || this.hasActions) && (\n <div class=\"datepicker-controls\">\n {this.hasShortcuts && this.renderShortcuts()}\n {this.hasActions && this.renderActions()}\n </div>\n )}\n </div>\n </div>\n <slot></slot>\n </Host>\n );\n }\n\n //#endregion RENDER\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e,c as r,h as o,a as
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as e,c as r,h as o,a as i,g as d}from"./p-5439afb8.js";import{c as a}from"./p-8a1a6e56.js";import{v as t}from"./p-f5ff676c.js";const n='nv-fieldradio{--nv-fieldradio-border-default:var(--components-form-field-border-default);--nv-fieldradio-border-hover:var(--components-form-field-border-hover);--nv-fieldradio-border-focus:var(--components-form-field-border-default);--nv-fieldradio-background-default:var(--components-form-field-background-default);--nv-fieldradio-background-checked:var(--components-form-field-background-checked);--nv-fieldradio-background-disabled:var(--components-form-field-background-disabled);--nv-fieldradio-focus-box-shadow:var(--color-focus-brand);--nv-fieldradio-dot-color-checked:var(--components-form-shape-foreground-default);--nv-fieldradio-dot-color-disabled:var(--components-form-shape-foreground-disabled);--nv-fieldradio-outline-color:var(--color-focus-brand);display:inline-flex;align-items:flex-start;gap:var(--form-gap-x)}nv-fieldradio:not([disabled]) input,nv-fieldradio:not([disabled]) label,nv-fieldradio[disabled=false] input,nv-fieldradio[disabled=false] label{cursor:pointer}nv-fieldradio.error{--nv-fieldradio-border-default:var(--components-form-field-border-error);--nv-fieldradio-border-hover:var(--nv-fieldradio-border-default);--nv-fieldradio-border-focus:var(--components-form-field-border-error);--nv-fieldradio-background-checked:var(--components-form-field-background-error);--nv-fieldradio-focus-box-shadow:var(--color-focus-destructive);--nv-fieldradio-dot-color-checked:var(--components-form-shape-foreground-default);--nv-fieldradio-dot-color-disabled:var(--components-form-field-border-error);--nv-fieldradio-outline-color:var(--color-focus-destructive)}nv-fieldradio.label-placement-before{flex-direction:row-reverse}nv-fieldradio[disabled]{opacity:0.5}nv-fieldradio label{align-self:stretch;color:var(--components-form-text-label-default);font-family:"TT Norms Pro", sans-serif;font-size:var(--form-label-font-size);font-style:normal;font-weight:var(--form-label-font-weight);line-height:var(--form-label-line-height)}nv-fieldradio input[type=radio]{appearance:none;position:relative;display:flex;width:var(--form-radio-size);height:var(--form-radio-size);padding:var(--form-radio-inner-circle-padding);flex-direction:column;align-items:flex-start;border-radius:var(--radius-rounded-full);border-width:var(--form-radio-border-width);border-style:solid;border-color:var(--nv-fieldradio-border-default);background:var(--nv-fieldradio-background-default)}nv-fieldradio input[type=radio]:hover{border-color:var(--nv-fieldradio-border-hover)}nv-fieldradio input[type=radio]:focus{border-color:var(--nv-fieldradio-border-focus)}nv-fieldradio input[type=radio]:focus,nv-fieldradio input[type=radio]:focus-within{outline:none}nv-fieldradio input[type=radio]:focus-visible,nv-fieldradio input[type=radio]:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--nv-fieldradio-outline-color);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-fieldradio input[type=radio]:checked{background:var(--nv-fieldradio-background-checked);border-color:var(--nv-fieldradio-background-checked)}nv-fieldradio input[type=radio]:checked:hover,nv-fieldradio input[type=radio]:checked:focus{border-color:var(--nv-fieldradio-background-checked);background:var(--nv-fieldradio-background-checked)}nv-fieldradio input[type=radio]:checked::before{content:"";position:absolute;top:50%;right:50%;transform:translate(50%, -50%);left:0;width:var(--form-radio-inner-circle-size);height:var(--form-radio-inner-circle-size);flex-shrink:0;border-radius:var(--radius-rounded-full);background:var(--nv-fieldradio-dot-color-checked)}nv-fieldradio input[type=radio]:disabled{border-radius:var(--radius-rounded-full);border-width:var(--form-radio-border-width);border-style:solid;border-color:var(--nv-fieldradio-border-default);background:var(--nv-fieldradio-background-disabled)}nv-fieldradio input[type=radio]:disabled:checked::before{background:var(--nv-fieldradio-dot-color-disabled)}nv-fieldradio input[type=radio]:disabled:hover{border-color:var(--nv-fieldradio-border-default);background:var(--nv-fieldradio-background-disabled)}nv-fieldradio .description{align-self:stretch;color:var(--components-form-text-description-default);font-family:"TT Norms Pro", sans-serif;font-size:var(--form-description-font-size);font-style:normal;font-weight:var(--form-description-font-weight);line-height:var(--form-description-line-height)}nv-fieldradio .error-description{align-self:stretch;color:var(--components-form-text-description-default);font-family:"TT Norms Pro", sans-serif;font-size:var(--form-description-font-size);font-style:normal;font-weight:var(--form-description-font-weight);line-height:var(--form-description-line-height);color:var(--components-form-text-description-error)}nv-fieldradio .text-container{display:flex;flex-direction:column;align-items:flex-start;flex:1 0 0}';const l=n;const f=class{constructor(o){e(this,o);this.checkedChanged=r(this,"checkedChanged",7);this.labelBefore=false;this.inputId=t();this.error=false;this.checked=false;this.disabled=false;this.autofocus=false}componentWillRender(){if(this.message){this.description=this.message}if(this.labelBefore){this.labelPlacement="before"}}handleCheckedChange(e){this.checkedChanged.emit(e)}handleChange(e){const r=e.target;if((r===null||r===void 0?void 0:r.type)==="radio"){Array.from(document.getElementsByTagName("nv-fieldradio")).forEach((e=>{if(e.name===this.name){e.checked=false}}));this.checked=r.checked}}render(){return o(i,{key:"cade01b60e51b998455b5c2230a78eea38e0bc37",class:a(this.labelPlacement==="before"&&"label-placement-before",this.error&&"error")},o("input",{key:"6d8447c0fa3909e02841545d873eea91fa47df4a",type:"radio",id:this.inputId,name:this.name,autofocus:this.autofocus,autocomplete:"off",value:this.value,checked:this.checked,disabled:this.disabled}),o("div",{key:"4d5091c83fc3d7252992808957eab4d48f2bc2a2",class:"text-container"},(this.label||this.el.querySelector('[slot="label"]'))&&o("label",{key:"54aec63e1cb36ca4da70217dcbc660566cce5d7b",htmlFor:this.inputId},o("slot",{key:"90532425375b668ae6626fecb856f8f9ceb81988",name:"label"},this.label)),(this.description||this.el.querySelector('[slot="description"]'))&&o("div",{key:"54853df7ac2a43e4de04924fabb2270258b663b8",class:"description"},o("slot",{key:"9e806a6957feff9555ea2a578fd91ea0253d1157",name:"description"},this.description)),(this.errorDescription||this.el.querySelector('[slot="error-description"]'))&&o("div",{key:"f3c90009eba0cef54231c9b38b7829d8b9433563",hidden:!this.error,class:"error-description"},o("slot",{key:"5b517d44167035b867b7d2cbedeab2a5925156b6",name:"error-description"},this.errorDescription))))}static get formAssociated(){return true}get el(){return d(this)}static get watchers(){return{checked:["handleCheckedChange"]}}};f.style=l;export{f as nv_fieldradio};
|
|
2
|
+
//# sourceMappingURL=p-afc16010.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["nvFieldradioCss","NvFieldradioStyle0","NvFieldradio","constructor","hostRef","this","labelBefore","inputId","uuidv4","error","checked","disabled","autofocus","componentWillRender","message","description","labelPlacement","handleCheckedChange","checkedChanged","emit","handleChange","event","target","type","Array","from","document","getElementsByTagName","forEach","element","name","render","h","Host","key","class","clsx","id","autocomplete","value","label","el","querySelector","htmlFor","errorDescription","hidden"],"sources":["src/components/nv-fieldradio/nv-fieldradio.scss?tag=nv-fieldradio","src/components/nv-fieldradio/nv-fieldradio.tsx"],"sourcesContent":["@import \"../../styles/focus-ring\";\n\n@mixin fieldradio-variables() {\n --nv-fieldradio-border-default: var(--components-form-field-border-default);\n --nv-fieldradio-border-hover: var(--components-form-field-border-hover);\n --nv-fieldradio-border-focus: var(--components-form-field-border-default);\n --nv-fieldradio-background-default: var(--components-form-field-background-default);\n --nv-fieldradio-background-checked: var(--components-form-field-background-checked);\n --nv-fieldradio-background-disabled: var(--components-form-field-background-disabled);\n --nv-fieldradio-focus-box-shadow: var(--color-focus-brand);\n --nv-fieldradio-dot-color-checked: var(--components-form-shape-foreground-default);\n --nv-fieldradio-dot-color-disabled: var(--components-form-shape-foreground-disabled);\n --nv-fieldradio-outline-color: var(--color-focus-brand);\n}\n\n@mixin fieldradio-error-variables() {\n --nv-fieldradio-border-default: var(--components-form-field-border-error);\n --nv-fieldradio-border-hover: var(--nv-fieldradio-border-default);\n --nv-fieldradio-border-focus: var(--components-form-field-border-error);\n --nv-fieldradio-background-checked: var(--components-form-field-background-error);\n --nv-fieldradio-focus-box-shadow: var(--color-focus-destructive);\n --nv-fieldradio-dot-color-checked: var(--components-form-shape-foreground-default);\n --nv-fieldradio-dot-color-disabled: var(--components-form-field-border-error);\n --nv-fieldradio-outline-color: var(--color-focus-destructive);\n\n}\n\n@mixin root-styles() {\n display: inline-flex;\n align-items: flex-start;\n gap: var(--form-gap-x);\n\n &:not([disabled]),\n &[disabled=\"false\"] {\n input,\n label {\n cursor: pointer;\n }\n }\n}\n\n@mixin label-before-styles() {\n flex-direction: row-reverse;\n}\n\n@mixin label-styles() {\n align-self: stretch;\n color: var(--components-form-text-label-default);\n font-family: \"TT Norms Pro\", sans-serif;\n font-size: var(--form-label-font-size);\n font-style: normal;\n font-weight: var(--form-label-font-weight);\n line-height: var(--form-label-line-height);\n}\n\n@mixin description-styles() {\n align-self: stretch;\n color: var(--components-form-text-description-default);\n font-family: \"TT Norms Pro\", sans-serif;\n font-size: var(--form-description-font-size);\n font-style: normal;\n font-weight: var(--form-description-font-weight);\n line-height: var(--form-description-line-height);\n}\n\n@mixin error-description-styles() {\n @include description-styles();\n\n color: var(--components-form-text-description-error);\n}\n\n@mixin text-container-styles() {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n flex: 1 0 0;\n}\n\n@mixin input-styles() {\n appearance: none;\n position: relative;\n display: flex;\n width: var(--form-radio-size);\n height: var(--form-radio-size);\n padding: var(--form-radio-inner-circle-padding);\n flex-direction: column;\n align-items: flex-start;\n //gap: 10px;\n border-radius: var(--radius-rounded-full);\n border-width: var(--form-radio-border-width);\n border-style: solid;\n border-color: var(--nv-fieldradio-border-default);\n background: var(--nv-fieldradio-background-default);\n\n &:hover {\n border-color: var(--nv-fieldradio-border-hover);\n }\n\n &:focus {\n border-color: var(--nv-fieldradio-border-focus);\n }\n\n @include focus-ring(var(--nv-fieldradio-outline-color));\n\n &:checked {\n background: var(--nv-fieldradio-background-checked);\n border-color: var(--nv-fieldradio-background-checked);\n\n &:hover,\n &:focus {\n border-color: var(--nv-fieldradio-background-checked);\n background: var(--nv-fieldradio-background-checked);\n }\n\n &::before {\n content: \"\";\n position: absolute;\n top: 50%;\n right: 50%;\n transform: translate(50%, -50%);\n left: 0;\n width: var(--form-radio-inner-circle-size);\n height: var(--form-radio-inner-circle-size);\n flex-shrink: 0;\n border-radius: var(--radius-rounded-full);\n background: var(--nv-fieldradio-dot-color-checked);\n }\n }\n\n &:disabled {\n border-radius: var(--radius-rounded-full);\n border-width: var(--form-radio-border-width);\n border-style: solid;\n border-color: var(--nv-fieldradio-border-default);\n background: var(--nv-fieldradio-background-disabled);\n\n &:checked {\n &::before {\n background: var(--nv-fieldradio-dot-color-disabled);\n }\n }\n\n &:hover {\n border-color: var(--nv-fieldradio-border-default);\n background: var(--nv-fieldradio-background-disabled);\n }\n }\n}\n\nnv-fieldradio {\n @include fieldradio-variables();\n @include root-styles();\n\n &.error {\n @include fieldradio-error-variables();\n }\n\n &.label-placement-before {\n @include label-before-styles();\n }\n \n &[disabled] {\n // TODO: Find a way to use the --components-form-opacity-disabled variable properly, right now it outputs a value of 50px instead of 0.5.\n // opacity: var(--components-form-opacity-disabled); Error: Invalid value for --components-form-opacity-disabled (expected a <number> but got \"50px\")\n opacity: 0.5;\n }\n\n label {\n @include label-styles();\n }\n\n input[type=\"radio\"] {\n @include input-styles();\n }\n\n .description {\n @include description-styles();\n }\n\n .error-description {\n @include error-description-styles();\n }\n\n .text-container {\n @include text-container-styles();\n }\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Event,\n EventEmitter,\n Listen,\n Watch,\n Element,\n} from '@stencil/core';\nimport clsx from 'clsx';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { type LabelPlacement } from '../../utils/constants';\n\n/**\n * @slot label - Content to be placed as the label, will override the label prop.\n * @slot description - Content to be placed as the description, will override the description prop.\n * @slot error-description - Content to be placed as the error description, will override the errorDescription prop.\n */\n@Component({\n tag: 'nv-fieldradio',\n shadow: false,\n styleUrl: 'nv-fieldradio.scss',\n formAssociated: true,\n})\nexport class NvFieldradio {\n @Element() el: HTMLNvFieldradioElement;\n\n /****************************************************************************/\n //#region DEPRECATED\n\n /**\n * Adds a helpful hint message below the label\n * @deprecated use description instead.\n */\n @Prop()\n readonly message: string;\n\n /**\n * Set the label placement to before the input\n * @deprecated use labelPlacement instead.\n */\n @Prop()\n readonly labelBefore: boolean = false;\n\n componentWillRender() {\n if (this.message) {\n this.description = this.message;\n }\n\n if (this.labelBefore) {\n this.labelPlacement = 'before';\n }\n }\n\n //#endregion DEPRECATED\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Sets the ID for the radio button’s input element and the for attribute of\n * the associated label. If no ID is provided, a random one will be\n * automatically generated to ensure unique identification, facilitating\n * proper label association and accessibility.\n */\n @Prop({ reflect: true })\n readonly inputId: string = uuidv4();\n\n /**\n * Use this to assign a group name to your radio buttons. When you have\n * multiple radio buttons with the same name, users will be able to select\n * only one option within that group, making your forms more organized and\n * user-friendly.\n */\n @Prop({ reflect: true })\n readonly name: string;\n\n /**\n * Defines what data will be sent when the radio button is selected.\n * This helps you identify which option the user has chosen in your form,\n * ensuring accurate data collection. When the form is submitted, the data\n * will consist of a name=value pair.\n */\n @Prop({ reflect: true })\n readonly value: string;\n\n /**\n * Sets the text content that is rendered next to the input element of type\n * radio. This label is essential for accessibility and user clarity, as it\n * describes the purpose or option of the radio button.\n */\n @Prop({ reflect: true })\n readonly label: string;\n\n /**\n * Defines the position of the label relative to the radio button.\n */\n @Prop({ mutable: true, reflect: true })\n labelPlacement: `${LabelPlacement}`;\n\n /**\n * Adds a helpful hint message below the label. This description provides\n * extra information or context about the radio button option, assisting users\n * in making more informed choices.\n */\n @Prop({ mutable: true, reflect: true })\n description: string;\n\n /**\n * Highlight the radio button with error styling. It helps users quickly\n * identify which option needs attention, improving their form-filling\n * experience by making issues more visible.\n * @validator error\n */\n @Prop({ reflect: true })\n readonly error: boolean = false;\n\n /**\n * A description that appears when there is an error related to the radio\n * button.\n * @validator message\n */\n @Prop({ reflect: true })\n readonly errorDescription: string;\n\n /**\n * Controls whether the radio button is selected.\n */\n @Prop({ mutable: true, reflect: true })\n checked: boolean = false;\n\n /**\n * Disables the radio button, making it un-selectable.\n */\n @Prop({ reflect: true })\n readonly disabled: boolean = false;\n\n /**\n * Applies focus to the input field as soon as the component is mounted. This\n * is equivalent to setting the native autofocus attribute on an <input>\n * element.\n */\n @Prop({ reflect: true })\n // eslint-disable-next-line @stencil-community/reserved-member-names\n readonly autofocus: boolean = false;\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emits when the checked state changes.\n * @bind checked\n */\n @Event()\n checkedChanged: EventEmitter<boolean>;\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region WATCHERS\n\n /**\n * Watches for changes to the checked state and emits the new value.\n * @param {boolean} checked - The new value of the checked state.\n */\n @Watch('checked')\n handleCheckedChange(checked: boolean) {\n this.checkedChanged.emit(checked);\n }\n\n /**\n * Listens for the change event on the radio button input element and controls\n * the checked state of the host elements.\n * @param {Event} event - The change event.\n */\n @Listen('change')\n handleChange(event: Event) {\n const target = event.target as HTMLInputElement;\n\n if (target?.type === 'radio') {\n Array.from(document.getElementsByTagName('nv-fieldradio')).forEach(\n element => {\n if (element.name === this.name) {\n element.checked = false;\n }\n },\n );\n\n this.checked = target.checked;\n }\n }\n\n //#endregion WATCHERS\n /****************************************************************************/\n //#region RENDER\n\n render() {\n return (\n <Host\n class={clsx(\n this.labelPlacement === 'before' && 'label-placement-before',\n this.error && 'error',\n )}\n >\n <input\n type=\"radio\"\n id={this.inputId}\n name={this.name}\n autofocus={this.autofocus}\n autocomplete=\"off\"\n value={this.value}\n checked={this.checked}\n disabled={this.disabled}\n />\n\n <div class=\"text-container\">\n {(this.label || this.el.querySelector('[slot=\"label\"]')) && (\n <label htmlFor={this.inputId}>\n <slot name=\"label\">{this.label}</slot>\n </label>\n )}\n\n {(this.description ||\n this.el.querySelector('[slot=\"description\"]')) && (\n <div class=\"description\">\n <slot name=\"description\">{this.description}</slot>\n </div>\n )}\n\n {(this.errorDescription ||\n this.el.querySelector('[slot=\"error-description\"]')) && (\n <div hidden={!this.error} class=\"error-description\">\n <slot name=\"error-description\">{this.errorDescription}</slot>\n </div>\n )}\n </div>\n </Host>\n );\n }\n\n //#endregion RENDER\n}\n"],"mappings":"wIAAA,MAAMA,EAAkB,osJACxB,MAAAC,EAAeD,E,MC0BFE,EAAY,MANzB,WAAAC,CAAAC,G,yDAwBWC,KAAAC,YAAuB,MAuBvBD,KAAAE,QAAkBC,IAiDlBH,KAAAI,MAAiB,MAc1BJ,KAAAK,QAAmB,MAMVL,KAAAM,SAAoB,MASpBN,KAAAO,UAAqB,K,CAnG9B,mBAAAC,GACE,GAAIR,KAAKS,QAAS,CAChBT,KAAKU,YAAcV,KAAKS,O,CAG1B,GAAIT,KAAKC,YAAa,CACpBD,KAAKW,eAAiB,Q,EAmH1B,mBAAAC,CAAoBP,GAClBL,KAAKa,eAAeC,KAAKT,E,CAS3B,YAAAU,CAAaC,GACX,MAAMC,EAASD,EAAMC,OAErB,IAAIA,IAAM,MAANA,SAAM,SAANA,EAAQC,QAAS,QAAS,CAC5BC,MAAMC,KAAKC,SAASC,qBAAqB,kBAAkBC,SACzDC,IACE,GAAIA,EAAQC,OAASzB,KAAKyB,KAAM,CAC9BD,EAAQnB,QAAU,K,KAKxBL,KAAKK,QAAUY,EAAOZ,O,EAQ1B,MAAAqB,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,2CACHC,MAAOC,EACL/B,KAAKW,iBAAmB,UAAY,yBACpCX,KAAKI,OAAS,UAGhBuB,EAAA,SAAAE,IAAA,2CACEX,KAAK,QACLc,GAAIhC,KAAKE,QACTuB,KAAMzB,KAAKyB,KACXlB,UAAWP,KAAKO,UAChB0B,aAAa,MACbC,MAAOlC,KAAKkC,MACZ7B,QAASL,KAAKK,QACdC,SAAUN,KAAKM,WAGjBqB,EAAA,OAAAE,IAAA,2CAAKC,MAAM,mBACP9B,KAAKmC,OAASnC,KAAKoC,GAAGC,cAAc,oBACpCV,EAAA,SAAAE,IAAA,2CAAOS,QAAStC,KAAKE,SACnByB,EAAA,QAAAE,IAAA,2CAAMJ,KAAK,SAASzB,KAAKmC,SAI3BnC,KAAKU,aACLV,KAAKoC,GAAGC,cAAc,0BACtBV,EAAA,OAAAE,IAAA,2CAAKC,MAAM,eACTH,EAAA,QAAAE,IAAA,2CAAMJ,KAAK,eAAezB,KAAKU,eAIjCV,KAAKuC,kBACLvC,KAAKoC,GAAGC,cAAc,gCACtBV,EAAA,OAAAE,IAAA,2CAAKW,QAASxC,KAAKI,MAAO0B,MAAM,qBAC9BH,EAAA,QAAAE,IAAA,2CAAMJ,KAAK,qBAAqBzB,KAAKuC,oB","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e,c as r,h as o,a as t,g as i}from"./p-5439afb8.js";import{v as n}from"./p-f5ff676c.js";const
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as e,c as r,h as o,a as t,g as i}from"./p-5439afb8.js";import{v as n}from"./p-f5ff676c.js";const a='nv-fieldtext{--nv-field-border-default:var(--components-form-field-border-default);--nv-field-border-hover:var(--components-form-field-border-hover);--nv-field-border-focus:var(--components-form-field-border-focus);--nv-field-border-disabled:var(--components-form-field-border-default);--nv-field-border-readonly:var(--components-form-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-brand);--nv-field-background:var(--components-form-field-background-default);display:flex;flex-direction:column;align-items:flex-start;gap:var(--form-gap-y);box-sizing:border-box}nv-fieldtext[readonly]:not([readonly=false]){--nv-field-border-default:var(--components-form-field-border-readonly);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--components-form-field-border-focus);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-background:var(--components-form-field-background-readonly)}nv-fieldtext[error]:not([error=false]){--nv-field-border-default:var(--components-form-field-border-error);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--nv-field-border-default);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-destructive)}nv-fieldtext[success]:not([success=false]){--nv-field-border-default:var(--components-form-field-border-success);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--nv-field-border-default);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-success)}nv-fieldtext[required]:not([required=false]) label::after{content:"*";color:var(--components-form-text-required);font-weight:700}nv-fieldtext label{display:flex;align-items:center;gap:var(--form-label-gap);align-self:stretch;color:var(--components-form-text-label-default);font-family:"TT Norms Pro", sans-serif;font-size:var(--form-label-font-size);font-style:normal;font-weight:500;line-height:var(--form-label-line-height)}nv-fieldtext .input-wrapper{display:flex;flex-wrap:wrap;gap:var(--form-gap-x);align-items:stretch;align-self:stretch}nv-fieldtext .input-wrapper .input-container{display:flex;flex-grow:1;padding:calc(var(--form-field-padding-y) - 1px) var(--form-field-padding-x);justify-content:center;align-items:center;gap:var(--form-field-gap);align-self:stretch;border-radius:var(--form-field-radius);border-width:1px;border-style:solid;border-color:var(--nv-field-border-default);opacity:var(--components-form-opacity-default, 1);background:var(--nv-field-background);transition:all 150ms ease-out}nv-fieldtext .input-wrapper .input-container:hover{border-color:var(--nv-field-border-hover)}nv-fieldtext .input-wrapper .input-container:focus-within,nv-fieldtext .input-wrapper .input-container:focus-within:hover,nv-fieldtext .input-wrapper .input-container:focus,nv-fieldtext .input-wrapper .input-container:focus:hover{border-color:var(--nv-field-border-focus);box-shadow:0px 0px 0px var(--focus-field-stroke) var(--nv-field-focus-box-shadow)}nv-fieldtext .input-wrapper .input-container:has(input:read-only){opacity:0.5;background-color:var(--components-form-field-background-readonly);border-color:var(--nv-field-border-readonly)}nv-fieldtext .input-wrapper .input-container:has(input:disabled){opacity:0.5;background-color:var(--components-form-field-background-disabled);border-color:var(--nv-field-border-disabled)}nv-fieldtext .input-wrapper .input-container input{display:flex;align-items:center;flex:1 0 0;overflow:hidden;background-color:transparent;color:var(--components-form-field-content-text);text-overflow:ellipsis;font-size:var(--form-field-font-size);font-style:normal;font-weight:500;line-height:var(--form-field-line-height)}nv-fieldtext .input-wrapper .input-container input:focus{outline:none}nv-fieldtext .input-wrapper .input-container input::placeholder{overflow:hidden;color:var(--components-form-field-content-placeholder);text-overflow:ellipsis;font-family:"TT Norms Pro", sans-serif;font-size:var(--form-field-font-size);font-style:normal;font-weight:400;line-height:var(--form-field-line-height)}nv-fieldtext .input-wrapper .input-container nv-icon.validation{color:var(--nv-field-border-default)}nv-fieldtext .description{align-self:stretch;color:var(--components-form-text-description-default);font-family:"TT Norms Pro", sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height)}nv-fieldtext .error-description{align-self:stretch;color:var(--components-form-text-description-default);font-family:"TT Norms Pro", sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height);color:var(--components-form-text-description-error)}';const d=a;const l=class{constructor(o){e(this,o);this.valueChanged=r(this,"valueChanged",7);this.inputId=n();this.type="text";this.disabled=false;this.readonly=false;this.required=false;this.error=false;this.success=false;this.multiple=false;this.autofocus=false;this.handleInput=e=>{const r=e.target;this.value=r.value;this.valueChanged.emit(r.value)};this.handleInputContainerClick=()=>{this.inputElement.focus()}}componentWillRender(){if(this.textInputType){this.type=this.textInputType}if(this.message){this.description=this.message}if(this.validation){this.errorDescription=this.validation;this.error=true}}render(){return o(t,{key:"23efa0e56d020cce567f970f342bb0512ae3dd83"},(this.label||this.el.querySelector('[slot="label"]'))&&o("label",{key:"1ffe8dfcd0eb29232f3f4e2a39f0b18e92acced0",htmlFor:this.inputId},o("slot",{key:"95625aebb5e3464ff2afc1d9c947db28fe7b0ddd",name:"label"},this.label)),o("div",{key:"a0754ba8ac030290cc354cbbc287049b890c92da",class:"input-wrapper"},o("slot",{key:"761147017de57353a2d52bac615330b6bb09401d",name:"before-input"}),o("div",{key:"5e2bc20105f6a4587e1f39a81a04527e36b51e4e",class:"input-container",onClick:this.handleInputContainerClick},o("slot",{key:"96d2c58b85692f5a184b8086d048876e1b5b8c28",name:"leading-input"}),o("input",{key:"40e3d073b307dcd09c3b4f5c07f82e06aa1f6b11",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&&o("nv-icon",{key:"62e3ae1bf3147ccd2869cd8d47b63bedcf3c8739",name:"alert-circle",class:"validation",size:"sm"}),this.success&&o("nv-icon",{key:"9fabf9beb89950a67b67b3fb98878faae431a633",name:"circle-check",class:"validation",size:"sm"})),o("slot",{key:"18c99b85da3243c1cf0c58aa8e53d54fb70aae42",name:"after-input"})),(this.description||this.el.querySelector('[slot="description"]'))&&o("div",{key:"ec83f041aacae7255c7008fc2f842ef7423bb84a",class:"description"},o("slot",{key:"8051ac72735b0d53dee7a1eac3fee70c87bbd6ef",name:"description"},this.description)),(this.errorDescription||this.el.querySelector('[slot="error-description"]'))&&o("div",{key:"d04500341a2a0845476d1fd2bcfdd2da1f930272",hidden:!this.error,class:"error-description"},o("slot",{key:"3e3063574e7a8efa37150c69e1cbd44641229e20",name:"error-description"},this.errorDescription)))}static get formAssociated(){return true}get el(){return i(this)}};l.style=d;export{l as nv_fieldtext};
|
|
2
|
+
//# sourceMappingURL=p-b13b2663.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["nvFieldtextCss","NvFieldtextStyle0","NvFieldtext","constructor","hostRef","this","inputId","uuidv4","type","disabled","readonly","required","error","success","multiple","autofocus","handleInput","event","input","target","value","valueChanged","emit","handleInputContainerClick","inputElement","focus","componentWillRender","textInputType","message","description","validation","errorDescription","render","h","Host","key","label","el","querySelector","htmlFor","name","class","onClick","id","ref","e","placeholder","readOnly","maxlength","minlength","pattern","autocomplete","onInput","size","hidden"],"sources":["src/components/nv-fieldtext/nv-fieldtext.scss?tag=nv-fieldtext","src/components/nv-fieldtext/nv-fieldtext.tsx"],"sourcesContent":["@import \"../../styles/form-field\";\n\nnv-fieldtext {\n @include form-field-variables();\n @include form-field-root();\n\n &[readonly]:not([readonly=\"false\"]) {\n @include form-field-readonly-variables();\n }\n\n &[error]:not([error=\"false\"]) {\n @include form-field-error-variables();\n }\n\n &[success]:not([success=\"false\"]) {\n @include form-field-success-variables();\n }\n\n &[required]:not([required=\"false\"]) label {\n @include form-field-label-required();\n }\n\n label {\n @include form-field-label();\n }\n\n .input-wrapper {\n @include form-field-input-wrapper();\n\n .input-container {\n @include form-field-input-container();\n\n input {\n @include form-field-input();\n }\n\n nv-icon.validation {\n @include form-field-icon();\n }\n }\n }\n\n .description {\n @include form-field-description();\n }\n\n .error-description {\n @include form-field-error-description();\n }\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Event,\n EventEmitter,\n Element,\n} from '@stencil/core';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { TextInputAutocomplete } from '../../utils/constants';\n\n/**\n * @slot leading-input - Content to be placed before the input text, within the input container.\n * @slot before-input - Content to be placed before the input text, outside the input container.\n * @slot after-input - Content to be placed after the input text, outside the input container.\n * @slot label - Content to be placed as the label, will override the label prop.\n * @slot description - Content to be placed as the description, will override the description prop.\n * @slot error-description - Content to be placed as the error description, will override the errorDescription prop.\n */\n@Component({\n tag: 'nv-fieldtext',\n shadow: false,\n formAssociated: true,\n styleUrl: 'nv-fieldtext.scss',\n})\nexport class NvFieldtext {\n @Element() el: HTMLNvFieldtextElement;\n private inputElement!: HTMLInputElement;\n\n /****************************************************************************/\n //#region DEPRECATED\n\n /**\n * Message defines a 'hint ' message for the Text Field.\n * @deprecated Use `description` instead.\n */\n @Prop()\n readonly message: string;\n\n /**\n * Add the message to the validation state.\n * @deprecated Use `errorDescription` and set the error prop instead.\n */\n @Prop()\n readonly validation: string;\n\n /**\n * Type of the input.\n * @deprecated use type instead.\n */\n @Prop()\n readonly textInputType: 'text' | 'tel' | 'email';\n\n //#endregion DEPRECATED\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Sets the ID for the input element and the for attribute of the associated\n * label. If no ID is provided, a random one will be automatically generated\n * to ensure unique identification, facilitating proper label association and\n * accessibility.\n */\n @Prop({ reflect: true })\n readonly inputId: string = uuidv4();\n\n /**\n * Lets you define the text that explains what users should enter in the text\n * input field. It’s a crucial element for making forms clear and\n * user-friendly.\n */\n @Prop({ reflect: true })\n readonly label: string;\n\n /**\n * Add helpful hints or extra information under the text input field. This is\n * where you can clarify what users should enter or provide additional\n * instructions, making the form easier to fill out correctly.\n */\n @Prop({ reflect: true, mutable: true })\n description: string;\n\n /**\n * Display temporary text inside the input field to give users a hint about\n * what to type. It’s a great way to provide examples or suggestions directly\n * in the field before they start typing.\n */\n @Prop({ reflect: true })\n readonly placeholder: string;\n\n /**\n * Defines the name attribute of the input field, which is crucial for form\n * submission. This value is used as the key in the key-value pair sent to\n * the server, representing the input’s data in form submissions. It should be\n * unique within the form to avoid conflicts\n */\n @Prop({ reflect: true })\n readonly name: string;\n\n /**\n * Specifies the value of the input field, which determines the text displayed\n * within the field. This prop is typically used in controlled components\n * where the input’s value is managed by the component’s state.\n */\n @Prop({ reflect: true, mutable: true })\n value: string;\n\n /**\n * The type prop lets you specify what kind of information the input field\n * should accept. Choose 'text' for general words or sentences, 'tel' for\n * phone numbers, or 'email' for email addresses. This makes sure users get\n * the right keyboard and validation for what they need to enter.\n */\n @Prop({ reflect: true, mutable: true })\n type: 'text' | 'tel' | 'email' = 'text';\n\n /**\n * The disabled prop lets you turn off the input field so that users can’t\n * type in it. When disabled, the field is grayed out and won’t respond to\n * clicks or touches.\n */\n @Prop({ reflect: true })\n readonly disabled: boolean = false;\n\n /**\n * Display the input field’s content without allowing users to change it.\n * Users can still click on it, select, and copy the text, but they won’t be\n * able to type or delete anything.\n */\n @Prop({ reflect: true })\n readonly readonly: boolean = false;\n\n /**\n * Marks the input field as required, ensuring that the user must fill it out\n * before submitting the form.\n */\n @Prop({ reflect: true })\n readonly required: boolean = false;\n\n /**\n * Alters the input field’s appearance to indicate an error, helping users\n * identify fields that need correction.\n * @validator error\n */\n @Prop({ reflect: true, mutable: true })\n error: boolean = false;\n\n /**\n * A description that appears when there is an error related to the textfield\n * field.\n * @validator message\n */\n @Prop({ reflect: true, mutable: true })\n errorDescription?: string;\n\n /**\n * Changes the input field’s appearance to indicate successful input or\n * validation.\n */\n @Prop({ reflect: true })\n readonly success: boolean = false;\n\n /**\n * Limits how many characters users can type into the input field. It’s\n * helpful for making sure users don’t enter too much information, keeping\n * their input within the allowed limit.\n */\n @Prop({ reflect: true })\n readonly maxlength: number;\n\n /**\n * Ensures that users type at least a certain number of characters into the\n * input field. It’s a way to make sure users provide enough information\n * before moving on.\n */\n @Prop({ reflect: true })\n readonly minlength: number;\n\n /**\n * Set rules for how the input should be formatted. For example, you can\n * require that a phone number includes only digits or that an email address\n * has the correct format. If users don’t follow these rules, they’ll get a\n * prompt to correct their input after the form is submitted.\n */\n @Prop({ reflect: true })\n readonly pattern: string;\n\n /**\n * The autocomplete prop helps users fill out the input field faster by\n * suggesting entries they’ve used before, like their email or address.\n * You can turn it on to make forms more convenient or off to ensure users\n * always type in fresh data.\n */\n @Prop({ reflect: true })\n readonly autocomplete: `${TextInputAutocomplete}`;\n\n /**\n * When used with the email input type, this prop enables the field to accept\n * multiple email addresses. Users can enter several addresses, separating\n * each one with a comma, allowing the form to handle multiple recipients.\n */\n @Prop({ reflect: true })\n readonly multiple: boolean = false;\n\n /**\n * Applies focus to the input field as soon as the component is mounted. This\n * is equivalent to setting the native autofocus attribute on an <input>\n * element.\n */\n @Prop({ reflect: true })\n // eslint-disable-next-line @stencil-community/reserved-member-names\n readonly autofocus: boolean = false;\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emitted when the input value changes.\n * @bind value\n */\n @Event()\n valueChanged: EventEmitter<string>;\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region METHODS\n\n /**\n * Handles the input event on the input element.\n * Emits the inputChanged event with the new value.\n * @param {Event} event - Event object of the input event.\n */\n private handleInput = (event: Event) => {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n this.valueChanged.emit(input.value);\n };\n\n /**\n * Handles focus when the input container is clicked.\n */\n private handleInputContainerClick = () => {\n this.inputElement.focus();\n };\n\n //#endregion METHODS\n /****************************************************************************/\n //#region LIFECYCLE\n\n componentWillRender() {\n if (this.textInputType) {\n this.type = this.textInputType;\n }\n\n if (this.message) {\n this.description = this.message;\n }\n\n if (this.validation) {\n this.errorDescription = this.validation;\n this.error = true;\n }\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region RENDER\n\n render() {\n return (\n <Host>\n {(this.label || this.el.querySelector('[slot=\"label\"]')) && (\n <label htmlFor={this.inputId}>\n <slot name=\"label\">{this.label}</slot>\n </label>\n )}\n\n <div class=\"input-wrapper\">\n <slot name=\"before-input\"></slot>\n\n <div class=\"input-container\" onClick={this.handleInputContainerClick}>\n <slot name=\"leading-input\"></slot>\n\n <input\n id={this.inputId}\n ref={e => (this.inputElement = e)}\n placeholder={this.placeholder}\n name={this.name}\n type={this.type}\n disabled={this.disabled}\n readOnly={this.readonly}\n required={this.required}\n maxlength={this.maxlength}\n minlength={this.minlength}\n pattern={this.pattern}\n autofocus={this.autofocus}\n autocomplete={this.autocomplete}\n multiple={this.multiple}\n value={this.value}\n onInput={this.handleInput}\n />\n\n {this.error && (\n <nv-icon name=\"alert-circle\" class=\"validation\" size=\"sm\" />\n )}\n {this.success && (\n <nv-icon name=\"circle-check\" class=\"validation\" size=\"sm\" />\n )}\n </div>\n\n <slot name=\"after-input\"></slot>\n </div>\n\n {(this.description ||\n this.el.querySelector('[slot=\"description\"]')) && (\n <div class=\"description\">\n <slot name=\"description\">{this.description}</slot>\n </div>\n )}\n\n {(this.errorDescription ||\n this.el.querySelector('[slot=\"error-description\"]')) && (\n <div hidden={!this.error} class=\"error-description\">\n <slot name=\"error-description\">{this.errorDescription}</slot>\n </div>\n )}\n </Host>\n );\n }\n\n //#endregion RENDER\n}\n"],"mappings":"oGAAA,MAAMA,EAAiB,g4JACvB,MAAAC,EAAeD,E,MC0BFE,EAAW,MANxB,WAAAC,CAAAC,G,qDA6CWC,KAAAC,QAAkBC,IAkD3BF,KAAAG,KAAiC,OAQxBH,KAAAI,SAAoB,MAQpBJ,KAAAK,SAAoB,MAOpBL,KAAAM,SAAoB,MAQ7BN,KAAAO,MAAiB,MAeRP,KAAAQ,QAAmB,MA0CnBR,KAAAS,SAAoB,MASpBT,KAAAU,UAAqB,MAsBtBV,KAAAW,YAAeC,IACrB,MAAMC,EAAQD,EAAME,OACpBd,KAAKe,MAAQF,EAAME,MACnBf,KAAKgB,aAAaC,KAAKJ,EAAME,MAAM,EAM7Bf,KAAAkB,0BAA4B,KAClClB,KAAKmB,aAAaC,OAAO,C,CAO3B,mBAAAC,GACE,GAAIrB,KAAKsB,cAAe,CACtBtB,KAAKG,KAAOH,KAAKsB,a,CAGnB,GAAItB,KAAKuB,QAAS,CAChBvB,KAAKwB,YAAcxB,KAAKuB,O,CAG1B,GAAIvB,KAAKyB,WAAY,CACnBzB,KAAK0B,iBAAmB1B,KAAKyB,WAC7BzB,KAAKO,MAAQ,I,EAQjB,MAAAoB,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,6CACD9B,KAAK+B,OAAS/B,KAAKgC,GAAGC,cAAc,oBACpCL,EAAA,SAAAE,IAAA,2CAAOI,QAASlC,KAAKC,SACnB2B,EAAA,QAAAE,IAAA,2CAAMK,KAAK,SAASnC,KAAK+B,QAI7BH,EAAA,OAAAE,IAAA,2CAAKM,MAAM,iBACTR,EAAA,QAAAE,IAAA,2CAAMK,KAAK,iBAEXP,EAAA,OAAAE,IAAA,2CAAKM,MAAM,kBAAkBC,QAASrC,KAAKkB,2BACzCU,EAAA,QAAAE,IAAA,2CAAMK,KAAK,kBAEXP,EAAA,SAAAE,IAAA,2CACEQ,GAAItC,KAAKC,QACTsC,IAAKC,GAAMxC,KAAKmB,aAAeqB,EAC/BC,YAAazC,KAAKyC,YAClBN,KAAMnC,KAAKmC,KACXhC,KAAMH,KAAKG,KACXC,SAAUJ,KAAKI,SACfsC,SAAU1C,KAAKK,SACfC,SAAUN,KAAKM,SACfqC,UAAW3C,KAAK2C,UAChBC,UAAW5C,KAAK4C,UAChBC,QAAS7C,KAAK6C,QACdnC,UAAWV,KAAKU,UAChBoC,aAAc9C,KAAK8C,aACnBrC,SAAUT,KAAKS,SACfM,MAAOf,KAAKe,MACZgC,QAAS/C,KAAKW,cAGfX,KAAKO,OACJqB,EAAA,WAAAE,IAAA,2CAASK,KAAK,eAAeC,MAAM,aAAaY,KAAK,OAEtDhD,KAAKQ,SACJoB,EAAA,WAAAE,IAAA,2CAASK,KAAK,eAAeC,MAAM,aAAaY,KAAK,QAIzDpB,EAAA,QAAAE,IAAA,2CAAMK,KAAK,kBAGXnC,KAAKwB,aACLxB,KAAKgC,GAAGC,cAAc,0BACtBL,EAAA,OAAAE,IAAA,2CAAKM,MAAM,eACTR,EAAA,QAAAE,IAAA,2CAAMK,KAAK,eAAenC,KAAKwB,eAIjCxB,KAAK0B,kBACL1B,KAAKgC,GAAGC,cAAc,gCACtBL,EAAA,OAAAE,IAAA,2CAAKmB,QAASjD,KAAKO,MAAO6B,MAAM,qBAC9BR,EAAA,QAAAE,IAAA,2CAAMK,KAAK,qBAAqBnC,KAAK0B,mB","ignoreList":[]}
|