@nvidia-elements/core 2.20.1 → 2.20.3
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/CHANGELOG.md +16 -0
- package/dist/_virtual/{_@oxc-project_runtime@0.147.0 → _@oxc-project_runtime@0.155.0}/helpers/esm/decorate.js +1 -2
- package/dist/_virtual/_rolldown/runtime.js +1 -2
- package/dist/accordion/accordion-content.js +1 -2
- package/dist/accordion/accordion-content.js.map +1 -1
- package/dist/accordion/accordion-group.js +1 -2
- package/dist/accordion/accordion-group.js.map +1 -1
- package/dist/accordion/accordion-header.js +1 -2
- package/dist/accordion/accordion-header.js.map +1 -1
- package/dist/accordion/accordion.examples.js +1 -2
- package/dist/accordion/accordion.examples.js.map +1 -1
- package/dist/accordion/accordion.js +1 -2
- package/dist/accordion/accordion.js.map +1 -1
- package/dist/accordion/accordion2.js +7 -8
- package/dist/accordion/accordion2.js.map +1 -1
- package/dist/accordion/define.js +0 -1
- package/dist/accordion/define.js.map +1 -1
- package/dist/accordion/index.js +1 -2
- package/dist/alert/alert-group.js +1 -2
- package/dist/alert/alert-group.js.map +1 -1
- package/dist/alert/alert-group2.js +3 -4
- package/dist/alert/alert-group2.js.map +1 -1
- package/dist/alert/alert.examples.js +1 -2
- package/dist/alert/alert.examples.js.map +1 -1
- package/dist/alert/alert.global.js +1 -2
- package/dist/alert/alert.global.js.map +1 -1
- package/dist/alert/alert.js +1 -2
- package/dist/alert/alert.js.map +1 -1
- package/dist/alert/alert2.js +3 -4
- package/dist/alert/alert2.js.map +1 -1
- package/dist/alert/define.js +0 -1
- package/dist/alert/define.js.map +1 -1
- package/dist/avatar/avatar-group.js +1 -2
- package/dist/avatar/avatar-group.js.map +1 -1
- package/dist/avatar/avatar-group2.js +2 -3
- package/dist/avatar/avatar-group2.js.map +1 -1
- package/dist/avatar/avatar.examples.js +1 -2
- package/dist/avatar/avatar.examples.js.map +1 -1
- package/dist/avatar/avatar.js +1 -2
- package/dist/avatar/avatar.js.map +1 -1
- package/dist/avatar/avatar2.js +3 -4
- package/dist/avatar/avatar2.js.map +1 -1
- package/dist/avatar/define.js +0 -1
- package/dist/avatar/define.js.map +1 -1
- package/dist/badge/badge.examples.js +1 -2
- package/dist/badge/badge.examples.js.map +1 -1
- package/dist/badge/badge.js +1 -2
- package/dist/badge/badge.js.map +1 -1
- package/dist/badge/badge2.js +3 -4
- package/dist/badge/badge2.js.map +1 -1
- package/dist/badge/define.js +1 -2
- package/dist/badge/define.js.map +1 -1
- package/dist/badge/index.js +1 -2
- package/dist/breadcrumb/breadcrumb.examples.js +1 -2
- package/dist/breadcrumb/breadcrumb.examples.js.map +1 -1
- package/dist/breadcrumb/breadcrumb.js +1 -2
- package/dist/breadcrumb/breadcrumb.js.map +1 -1
- package/dist/breadcrumb/breadcrumb2.js +3 -4
- package/dist/breadcrumb/breadcrumb2.js.map +1 -1
- package/dist/breadcrumb/define.js +1 -2
- package/dist/breadcrumb/define.js.map +1 -1
- package/dist/breadcrumb/index.js +1 -2
- package/dist/bundles/index.js +22 -10
- package/dist/button/button.examples.js +1 -2
- package/dist/button/button.examples.js.map +1 -1
- package/dist/button/button.js +1 -2
- package/dist/button/button.js.map +1 -1
- package/dist/button/button2.js +3 -4
- package/dist/button/button2.js.map +1 -1
- package/dist/button/define.js +1 -2
- package/dist/button/define.js.map +1 -1
- package/dist/button/index.js +1 -2
- package/dist/button-group/button-group.examples.js +1 -2
- package/dist/button-group/button-group.examples.js.map +1 -1
- package/dist/button-group/button-group.global.js +1 -2
- package/dist/button-group/button-group.global.js.map +1 -1
- package/dist/button-group/button-group.js +1 -2
- package/dist/button-group/button-group.js.map +1 -1
- package/dist/button-group/button-group2.js +3 -4
- package/dist/button-group/button-group2.js.map +1 -1
- package/dist/button-group/define.js +1 -2
- package/dist/button-group/define.js.map +1 -1
- package/dist/button-group/index.js +1 -2
- package/dist/card/card-content.js +1 -2
- package/dist/card/card-content.js.map +1 -1
- package/dist/card/card-footer.js +1 -2
- package/dist/card/card-footer.js.map +1 -1
- package/dist/card/card-header.js +1 -2
- package/dist/card/card-header.js.map +1 -1
- package/dist/card/card.examples.js +1 -2
- package/dist/card/card.examples.js.map +1 -1
- package/dist/card/card.js +1 -2
- package/dist/card/card.js.map +1 -1
- package/dist/card/card2.js +6 -7
- package/dist/card/card2.js.map +1 -1
- package/dist/card/define.js +0 -1
- package/dist/card/define.js.map +1 -1
- package/dist/card/index.js +1 -2
- package/dist/chat-message/chat-message.examples.js +1 -2
- package/dist/chat-message/chat-message.examples.js.map +1 -1
- package/dist/chat-message/chat-message.global.js +1 -2
- package/dist/chat-message/chat-message.global.js.map +1 -1
- package/dist/chat-message/chat-message.js +1 -2
- package/dist/chat-message/chat-message.js.map +1 -1
- package/dist/chat-message/chat-message2.js +3 -4
- package/dist/chat-message/chat-message2.js.map +1 -1
- package/dist/chat-message/define.js +1 -2
- package/dist/chat-message/define.js.map +1 -1
- package/dist/chat-message/index.js +1 -2
- package/dist/checkbox/checkbox-group.js +1 -2
- package/dist/checkbox/checkbox-group.js.map +1 -1
- package/dist/checkbox/checkbox-group2.js +3 -4
- package/dist/checkbox/checkbox-group2.js.map +1 -1
- package/dist/checkbox/checkbox.examples.js +1 -2
- package/dist/checkbox/checkbox.examples.js.map +1 -1
- package/dist/checkbox/checkbox.js +1 -2
- package/dist/checkbox/checkbox.js.map +1 -1
- package/dist/checkbox/checkbox2.js +3 -4
- package/dist/checkbox/checkbox2.js.map +1 -1
- package/dist/checkbox/define.js +0 -1
- package/dist/checkbox/define.js.map +1 -1
- package/dist/color/color.examples.js +1 -2
- package/dist/color/color.examples.js.map +1 -1
- package/dist/color/color.global.js +1 -2
- package/dist/color/color.global.js.map +1 -1
- package/dist/color/color.js +1 -2
- package/dist/color/color.js.map +1 -1
- package/dist/color/color2.js +3 -4
- package/dist/color/color2.js.map +1 -1
- package/dist/color/define.js +0 -1
- package/dist/color/define.js.map +1 -1
- package/dist/color/index.js +1 -2
- package/dist/combobox/combobox.examples.js +1 -2
- package/dist/combobox/combobox.examples.js.map +1 -1
- package/dist/combobox/combobox.js +1 -2
- package/dist/combobox/combobox.js.map +1 -1
- package/dist/combobox/combobox2.js +3 -4
- package/dist/combobox/combobox2.js.map +1 -1
- package/dist/combobox/define.js +0 -1
- package/dist/combobox/define.js.map +1 -1
- package/dist/combobox/index.js +1 -2
- package/dist/copy-button/copy-button.examples.js +1 -2
- package/dist/copy-button/copy-button.examples.js.map +1 -1
- package/dist/copy-button/copy-button.js +1 -2
- package/dist/copy-button/copy-button.js.map +1 -1
- package/dist/copy-button/copy-button2.js +3 -4
- package/dist/copy-button/copy-button2.js.map +1 -1
- package/dist/copy-button/define.js +1 -2
- package/dist/copy-button/define.js.map +1 -1
- package/dist/copy-button/index.js +1 -2
- package/dist/date/date.examples.js +1 -2
- package/dist/date/date.examples.js.map +1 -1
- package/dist/date/date.js +1 -2
- package/dist/date/date.js.map +1 -1
- package/dist/date/date2.js +3 -4
- package/dist/date/date2.js.map +1 -1
- package/dist/date/define.js +0 -1
- package/dist/date/define.js.map +1 -1
- package/dist/date/index.js +1 -2
- package/dist/datetime/datetime.examples.js +1 -2
- package/dist/datetime/datetime.examples.js.map +1 -1
- package/dist/datetime/datetime.js +1 -2
- package/dist/datetime/datetime.js.map +1 -1
- package/dist/datetime/datetime2.js +3 -4
- package/dist/datetime/datetime2.js.map +1 -1
- package/dist/datetime/define.js +0 -1
- package/dist/datetime/define.js.map +1 -1
- package/dist/datetime/index.js +1 -2
- package/dist/dialog/define.js +0 -1
- package/dist/dialog/define.js.map +1 -1
- package/dist/dialog/dialog-footer.js +1 -2
- package/dist/dialog/dialog-footer.js.map +1 -1
- package/dist/dialog/dialog-footer2.js +2 -3
- package/dist/dialog/dialog-footer2.js.map +1 -1
- package/dist/dialog/dialog-header.js +1 -2
- package/dist/dialog/dialog-header.js.map +1 -1
- package/dist/dialog/dialog-header2.js +2 -3
- package/dist/dialog/dialog-header2.js.map +1 -1
- package/dist/dialog/dialog.examples.js +1 -2
- package/dist/dialog/dialog.examples.js.map +1 -1
- package/dist/dialog/dialog.global.js +1 -2
- package/dist/dialog/dialog.global.js.map +1 -1
- package/dist/dialog/dialog.js +1 -2
- package/dist/dialog/dialog.js.map +1 -1
- package/dist/dialog/dialog2.js +3 -4
- package/dist/dialog/dialog2.js.map +1 -1
- package/dist/divider/define.js +1 -2
- package/dist/divider/define.js.map +1 -1
- package/dist/divider/divider.examples.js +1 -2
- package/dist/divider/divider.examples.js.map +1 -1
- package/dist/divider/divider.js +1 -2
- package/dist/divider/divider.js.map +1 -1
- package/dist/divider/divider2.js +3 -4
- package/dist/divider/divider2.js.map +1 -1
- package/dist/divider/index.js +1 -2
- package/dist/dot/define.js +1 -2
- package/dist/dot/define.js.map +1 -1
- package/dist/dot/dot.examples.js +1 -2
- package/dist/dot/dot.examples.js.map +1 -1
- package/dist/dot/dot.js +1 -2
- package/dist/dot/dot.js.map +1 -1
- package/dist/dot/dot2.js +3 -4
- package/dist/dot/dot2.js.map +1 -1
- package/dist/dot/index.js +1 -2
- package/dist/drag-handle/define.js +1 -2
- package/dist/drag-handle/define.js.map +1 -1
- package/dist/drag-handle/drag-handle.examples.js +1 -2
- package/dist/drag-handle/drag-handle.examples.js.map +1 -1
- package/dist/drag-handle/drag-handle.js +1 -2
- package/dist/drag-handle/drag-handle.js.map +1 -1
- package/dist/drag-handle/drag-handle2.js +3 -4
- package/dist/drag-handle/drag-handle2.js.map +1 -1
- package/dist/drag-handle/index.js +1 -2
- package/dist/drawer/define.js +0 -1
- package/dist/drawer/define.js.map +1 -1
- package/dist/drawer/drawer-content.js +1 -2
- package/dist/drawer/drawer-content.js.map +1 -1
- package/dist/drawer/drawer-content2.js +2 -3
- package/dist/drawer/drawer-content2.js.map +1 -1
- package/dist/drawer/drawer-footer.js +1 -2
- package/dist/drawer/drawer-footer.js.map +1 -1
- package/dist/drawer/drawer-footer2.js +2 -3
- package/dist/drawer/drawer-footer2.js.map +1 -1
- package/dist/drawer/drawer-header.js +1 -2
- package/dist/drawer/drawer-header.js.map +1 -1
- package/dist/drawer/drawer-header2.js +2 -3
- package/dist/drawer/drawer-header2.js.map +1 -1
- package/dist/drawer/drawer.examples.js +1 -2
- package/dist/drawer/drawer.examples.js.map +1 -1
- package/dist/drawer/drawer.js +1 -2
- package/dist/drawer/drawer.js.map +1 -1
- package/dist/drawer/drawer2.js +3 -4
- package/dist/drawer/drawer2.js.map +1 -1
- package/dist/dropdown/define.js +0 -1
- package/dist/dropdown/define.js.map +1 -1
- package/dist/dropdown/dropdown-footer.js +1 -2
- package/dist/dropdown/dropdown-footer.js.map +1 -1
- package/dist/dropdown/dropdown-footer2.js +2 -3
- package/dist/dropdown/dropdown-footer2.js.map +1 -1
- package/dist/dropdown/dropdown-header.js +1 -2
- package/dist/dropdown/dropdown-header.js.map +1 -1
- package/dist/dropdown/dropdown-header2.js +2 -3
- package/dist/dropdown/dropdown-header2.js.map +1 -1
- package/dist/dropdown/dropdown.examples.js +1 -2
- package/dist/dropdown/dropdown.examples.js.map +1 -1
- package/dist/dropdown/dropdown.js +1 -2
- package/dist/dropdown/dropdown.js.map +1 -1
- package/dist/dropdown/dropdown2.js +3 -4
- package/dist/dropdown/dropdown2.js.map +1 -1
- package/dist/dropdown-group/define.js +1 -2
- package/dist/dropdown-group/define.js.map +1 -1
- package/dist/dropdown-group/dropdown-group.examples.js +1 -2
- package/dist/dropdown-group/dropdown-group.examples.js.map +1 -1
- package/dist/dropdown-group/dropdown-group.global.js +1 -2
- package/dist/dropdown-group/dropdown-group.global.js.map +1 -1
- package/dist/dropdown-group/dropdown-group.js +3 -4
- package/dist/dropdown-group/dropdown-group.js.map +1 -1
- package/dist/dropdown-group/index.js +1 -2
- package/dist/dropzone/define.js +1 -2
- package/dist/dropzone/define.js.map +1 -1
- package/dist/dropzone/dropzone.examples.js +1 -2
- package/dist/dropzone/dropzone.examples.js.map +1 -1
- package/dist/dropzone/dropzone.js +1 -2
- package/dist/dropzone/dropzone.js.map +1 -1
- package/dist/dropzone/dropzone.util.js +1 -2
- package/dist/dropzone/dropzone.util.js.map +1 -1
- package/dist/dropzone/dropzone2.js +3 -4
- package/dist/dropzone/dropzone2.js.map +1 -1
- package/dist/dropzone/index.js +1 -2
- package/dist/file/define.js +0 -1
- package/dist/file/define.js.map +1 -1
- package/dist/file/file.examples.js +1 -2
- package/dist/file/file.examples.js.map +1 -1
- package/dist/file/file.global.js +1 -2
- package/dist/file/file.global.js.map +1 -1
- package/dist/file/file.js +1 -2
- package/dist/file/file.js.map +1 -1
- package/dist/file/file2.js +2 -3
- package/dist/file/file2.js.map +1 -1
- package/dist/file/index.js +1 -2
- package/dist/format-bytes/define.js +1 -2
- package/dist/format-bytes/define.js.map +1 -1
- package/dist/format-bytes/format-bytes.examples.js +1 -2
- package/dist/format-bytes/format-bytes.examples.js.map +1 -1
- package/dist/format-bytes/format-bytes.js +1 -2
- package/dist/format-bytes/format-bytes.js.map +1 -1
- package/dist/format-bytes/format-bytes2.js +3 -4
- package/dist/format-bytes/format-bytes2.js.map +1 -1
- package/dist/format-bytes/index.js +1 -2
- package/dist/format-datetime/define.js +1 -2
- package/dist/format-datetime/define.js.map +1 -1
- package/dist/format-datetime/format-datetime.examples.js +1 -2
- package/dist/format-datetime/format-datetime.examples.js.map +1 -1
- package/dist/format-datetime/format-datetime.js +1 -2
- package/dist/format-datetime/format-datetime.js.map +1 -1
- package/dist/format-datetime/format-datetime2.js +3 -4
- package/dist/format-datetime/format-datetime2.js.map +1 -1
- package/dist/format-datetime/index.js +1 -2
- package/dist/format-number/define.js +1 -2
- package/dist/format-number/define.js.map +1 -1
- package/dist/format-number/format-number.examples.js +1 -2
- package/dist/format-number/format-number.examples.js.map +1 -1
- package/dist/format-number/format-number.js +1 -2
- package/dist/format-number/format-number.js.map +1 -1
- package/dist/format-number/format-number2.js +3 -4
- package/dist/format-number/format-number2.js.map +1 -1
- package/dist/format-number/index.js +1 -2
- package/dist/format-relative-time/define.js +1 -2
- package/dist/format-relative-time/define.js.map +1 -1
- package/dist/format-relative-time/format-relative-time.examples.js +1 -2
- package/dist/format-relative-time/format-relative-time.examples.js.map +1 -1
- package/dist/format-relative-time/format-relative-time.js +1 -2
- package/dist/format-relative-time/format-relative-time.js.map +1 -1
- package/dist/format-relative-time/format-relative-time2.js +3 -4
- package/dist/format-relative-time/format-relative-time2.js.map +1 -1
- package/dist/format-relative-time/index.js +1 -2
- package/dist/format-truncate/define.js +1 -2
- package/dist/format-truncate/define.js.map +1 -1
- package/dist/format-truncate/format-truncate.examples.js +1 -2
- package/dist/format-truncate/format-truncate.examples.js.map +1 -1
- package/dist/format-truncate/format-truncate.js +1 -2
- package/dist/format-truncate/format-truncate.js.map +1 -1
- package/dist/format-truncate/format-truncate2.js +4 -5
- package/dist/format-truncate/format-truncate2.js.map +1 -1
- package/dist/format-truncate/index.js +1 -2
- package/dist/format-truncate/utils.js +0 -1
- package/dist/format-truncate/utils.js.map +1 -1
- package/dist/forms/actions.examples.js +1 -2
- package/dist/forms/actions.examples.js.map +1 -1
- package/dist/forms/control/control.examples.js +1 -2
- package/dist/forms/control/control.examples.js.map +1 -1
- package/dist/forms/control/control.global.js +1 -2
- package/dist/forms/control/control.global.js.map +1 -1
- package/dist/forms/control/control.js +1 -2
- package/dist/forms/control/control.js.map +1 -1
- package/dist/forms/control/control2.js +4 -13
- package/dist/forms/control/control2.js.map +1 -1
- package/dist/forms/control-group/control-group.js +1 -2
- package/dist/forms/control-group/control-group.js.map +1 -1
- package/dist/forms/control-group/control-group2.js +3 -4
- package/dist/forms/control-group/control-group2.js.map +1 -1
- package/dist/forms/control-message/control-message.js +1 -2
- package/dist/forms/control-message/control-message.js.map +1 -1
- package/dist/forms/control-message/control-message2.js +3 -4
- package/dist/forms/control-message/control-message2.js.map +1 -1
- package/dist/forms/define.js +0 -1
- package/dist/forms/define.js.map +1 -1
- package/dist/forms/forms.examples.js +1 -2
- package/dist/forms/forms.examples.js.map +1 -1
- package/dist/forms/utils/layout.js +1 -2
- package/dist/forms/utils/layout.js.map +1 -1
- package/dist/forms/utils/states.js +1 -2
- package/dist/forms/utils/states.js.map +1 -1
- package/dist/forms/validation.examples.js +1 -2
- package/dist/forms/validation.examples.js.map +1 -1
- package/dist/gauge/define.js +1 -2
- package/dist/gauge/define.js.map +1 -1
- package/dist/gauge/gauge.examples.js +1 -2
- package/dist/gauge/gauge.examples.js.map +1 -1
- package/dist/gauge/gauge.js +1 -2
- package/dist/gauge/gauge.js.map +1 -1
- package/dist/gauge/gauge2.js +3 -4
- package/dist/gauge/gauge2.js.map +1 -1
- package/dist/gauge/index.js +1 -2
- package/dist/grid/cell/cell.js +1 -2
- package/dist/grid/cell/cell.js.map +1 -1
- package/dist/grid/cell/cell2.js +2 -3
- package/dist/grid/cell/cell2.js.map +1 -1
- package/dist/grid/column/column.js +1 -2
- package/dist/grid/column/column.js.map +1 -1
- package/dist/grid/column/column2.js +3 -4
- package/dist/grid/column/column2.js.map +1 -1
- package/dist/grid/define.js +0 -1
- package/dist/grid/define.js.map +1 -1
- package/dist/grid/footer/footer.js +1 -2
- package/dist/grid/footer/footer.js.map +1 -1
- package/dist/grid/footer/footer2.js +3 -4
- package/dist/grid/footer/footer2.js.map +1 -1
- package/dist/grid/grid.examples.js +1 -2
- package/dist/grid/grid.examples.js.map +1 -1
- package/dist/grid/grid.global.js +1 -2
- package/dist/grid/grid.global.js.map +1 -1
- package/dist/grid/grid.js +1 -2
- package/dist/grid/grid.js.map +1 -1
- package/dist/grid/grid2.js +3 -4
- package/dist/grid/grid2.js.map +1 -1
- package/dist/grid/header/header.js +1 -2
- package/dist/grid/header/header.js.map +1 -1
- package/dist/grid/header/header2.js +3 -4
- package/dist/grid/header/header2.js.map +1 -1
- package/dist/grid/placeholder/placeholder.js +1 -2
- package/dist/grid/placeholder/placeholder.js.map +1 -1
- package/dist/grid/placeholder/placeholder2.js +2 -3
- package/dist/grid/placeholder/placeholder2.js.map +1 -1
- package/dist/grid/row/row.js +1 -2
- package/dist/grid/row/row.js.map +1 -1
- package/dist/grid/row/row2.js +3 -4
- package/dist/grid/row/row2.js.map +1 -1
- package/dist/icon/define.js +0 -1
- package/dist/icon/define.js.map +1 -1
- package/dist/icon/icon.examples.js +1 -2
- package/dist/icon/icon.examples.js.map +1 -1
- package/dist/icon/icon.js +1 -2
- package/dist/icon/icon.js.map +1 -1
- package/dist/icon/icon2.js +4 -5
- package/dist/icon/icon2.js.map +1 -1
- package/dist/icon/icons/academic-cap.js +1 -2
- package/dist/icon/icons/academic-cap.js.map +1 -1
- package/dist/icon/icons/add-asset.js +1 -2
- package/dist/icon/icons/add-asset.js.map +1 -1
- package/dist/icon/icons/add-comment.js +1 -2
- package/dist/icon/icons/add-comment.js.map +1 -1
- package/dist/icon/icons/add-grid.js +1 -2
- package/dist/icon/icons/add-grid.js.map +1 -1
- package/dist/icon/icons/add-user.js +1 -2
- package/dist/icon/icons/add-user.js.map +1 -1
- package/dist/icon/icons/add.js +1 -2
- package/dist/icon/icons/add.js.map +1 -1
- package/dist/icon/icons/ancestors.js +1 -2
- package/dist/icon/icons/ancestors.js.map +1 -1
- package/dist/icon/icons/archive.js +1 -2
- package/dist/icon/icons/archive.js.map +1 -1
- package/dist/icon/icons/arrow-angle.js +1 -2
- package/dist/icon/icons/arrow-angle.js.map +1 -1
- package/dist/icon/icons/arrow-both.js +1 -2
- package/dist/icon/icons/arrow-both.js.map +1 -1
- package/dist/icon/icons/arrow-cycle.js +1 -2
- package/dist/icon/icons/arrow-cycle.js.map +1 -1
- package/dist/icon/icons/arrow-path-rounded-square.js +1 -2
- package/dist/icon/icons/arrow-path-rounded-square.js.map +1 -1
- package/dist/icon/icons/arrow-stop.js +1 -2
- package/dist/icon/icons/arrow-stop.js.map +1 -1
- package/dist/icon/icons/arrow.js +1 -2
- package/dist/icon/icons/arrow.js.map +1 -1
- package/dist/icon/icons/at-symbol.js +1 -2
- package/dist/icon/icons/at-symbol.js.map +1 -1
- package/dist/icon/icons/backspace.js +1 -2
- package/dist/icon/icons/backspace.js.map +1 -1
- package/dist/icon/icons/bar-pill-stack.js +1 -2
- package/dist/icon/icons/bar-pill-stack.js.map +1 -1
- package/dist/icon/icons/bars-3-bottom-left.js +1 -2
- package/dist/icon/icons/bars-3-bottom-left.js.map +1 -1
- package/dist/icon/icons/bars-3-bottom-right.js +1 -2
- package/dist/icon/icons/bars-3-bottom-right.js.map +1 -1
- package/dist/icon/icons/bars-3-center-left.js +1 -2
- package/dist/icon/icons/bars-3-center-left.js.map +1 -1
- package/dist/icon/icons/bars-3.js +1 -2
- package/dist/icon/icons/bars-3.js.map +1 -1
- package/dist/icon/icons/bars-4.js +1 -2
- package/dist/icon/icons/bars-4.js.map +1 -1
- package/dist/icon/icons/beaker.js +1 -2
- package/dist/icon/icons/beaker.js.map +1 -1
- package/dist/icon/icons/bell-slash.js +1 -2
- package/dist/icon/icons/bell-slash.js.map +1 -1
- package/dist/icon/icons/bell-solid.js +1 -2
- package/dist/icon/icons/bell-solid.js.map +1 -1
- package/dist/icon/icons/bell.js +1 -2
- package/dist/icon/icons/bell.js.map +1 -1
- package/dist/icon/icons/bold.js +1 -2
- package/dist/icon/icons/bold.js.map +1 -1
- package/dist/icon/icons/book-solid.js +1 -2
- package/dist/icon/icons/book-solid.js.map +1 -1
- package/dist/icon/icons/book.js +1 -2
- package/dist/icon/icons/book.js.map +1 -1
- package/dist/icon/icons/bookmark-solid.js +1 -2
- package/dist/icon/icons/bookmark-solid.js.map +1 -1
- package/dist/icon/icons/bookmark.js +1 -2
- package/dist/icon/icons/bookmark.js.map +1 -1
- package/dist/icon/icons/bounding-box.js +1 -2
- package/dist/icon/icons/bounding-box.js.map +1 -1
- package/dist/icon/icons/branch.js +1 -2
- package/dist/icon/icons/branch.js.map +1 -1
- package/dist/icon/icons/briefcase.js +1 -2
- package/dist/icon/icons/briefcase.js.map +1 -1
- package/dist/icon/icons/broadcast.js +1 -2
- package/dist/icon/icons/broadcast.js.map +1 -1
- package/dist/icon/icons/browser.js +1 -2
- package/dist/icon/icons/browser.js.map +1 -1
- package/dist/icon/icons/bug.js +1 -2
- package/dist/icon/icons/bug.js.map +1 -1
- package/dist/icon/icons/calendar.js +1 -2
- package/dist/icon/icons/calendar.js.map +1 -1
- package/dist/icon/icons/camera.js +1 -2
- package/dist/icon/icons/camera.js.map +1 -1
- package/dist/icon/icons/cancel.js +1 -2
- package/dist/icon/icons/cancel.js.map +1 -1
- package/dist/icon/icons/caret.js +1 -2
- package/dist/icon/icons/caret.js.map +1 -1
- package/dist/icon/icons/carets-closed-square.js +1 -2
- package/dist/icon/icons/carets-closed-square.js.map +1 -1
- package/dist/icon/icons/carousel.js +1 -2
- package/dist/icon/icons/carousel.js.map +1 -1
- package/dist/icon/icons/category-list.js +1 -2
- package/dist/icon/icons/category-list.js.map +1 -1
- package/dist/icon/icons/chart-bar.js +1 -2
- package/dist/icon/icons/chart-bar.js.map +1 -1
- package/dist/icon/icons/chat-bubble-solid.js +1 -2
- package/dist/icon/icons/chat-bubble-solid.js.map +1 -1
- package/dist/icon/icons/chat-bubble.js +1 -2
- package/dist/icon/icons/chat-bubble.js.map +1 -1
- package/dist/icon/icons/chat-bubbles.js +1 -2
- package/dist/icon/icons/chat-bubbles.js.map +1 -1
- package/dist/icon/icons/check-badge-solid.js +1 -2
- package/dist/icon/icons/check-badge-solid.js.map +1 -1
- package/dist/icon/icons/check-badge.js +1 -2
- package/dist/icon/icons/check-badge.js.map +1 -1
- package/dist/icon/icons/check.js +1 -2
- package/dist/icon/icons/check.js.map +1 -1
- package/dist/icon/icons/checklist.js +1 -2
- package/dist/icon/icons/checklist.js.map +1 -1
- package/dist/icon/icons/checkmark-circle-solid.js +1 -2
- package/dist/icon/icons/checkmark-circle-solid.js.map +1 -1
- package/dist/icon/icons/checkmark-circle.js +1 -2
- package/dist/icon/icons/checkmark-circle.js.map +1 -1
- package/dist/icon/icons/chevron.js +1 -2
- package/dist/icon/icons/chevron.js.map +1 -1
- package/dist/icon/icons/chip.js +1 -2
- package/dist/icon/icons/chip.js.map +1 -1
- package/dist/icon/icons/circle-angled-line-solid.js +1 -2
- package/dist/icon/icons/circle-angled-line-solid.js.map +1 -1
- package/dist/icon/icons/circle-angled-line.js +1 -2
- package/dist/icon/icons/circle-angled-line.js.map +1 -1
- package/dist/icon/icons/circle-dash.js +1 -2
- package/dist/icon/icons/circle-dash.js.map +1 -1
- package/dist/icon/icons/circle-dot-arrows.js +1 -2
- package/dist/icon/icons/circle-dot-arrows.js.map +1 -1
- package/dist/icon/icons/circle-dot.js +1 -2
- package/dist/icon/icons/circle-dot.js.map +1 -1
- package/dist/icon/icons/circle-half.js +1 -2
- package/dist/icon/icons/circle-half.js.map +1 -1
- package/dist/icon/icons/circle-rule.js +1 -2
- package/dist/icon/icons/circle-rule.js.map +1 -1
- package/dist/icon/icons/circle-tick.js +1 -2
- package/dist/icon/icons/circle-tick.js.map +1 -1
- package/dist/icon/icons/circle.js +1 -2
- package/dist/icon/icons/circle.js.map +1 -1
- package/dist/icon/icons/clipboard.js +1 -2
- package/dist/icon/icons/clipboard.js.map +1 -1
- package/dist/icon/icons/clock-circle-arrow.js +1 -2
- package/dist/icon/icons/clock-circle-arrow.js.map +1 -1
- package/dist/icon/icons/clock.js +1 -2
- package/dist/icon/icons/clock.js.map +1 -1
- package/dist/icon/icons/cloud-download.js +1 -2
- package/dist/icon/icons/cloud-download.js.map +1 -1
- package/dist/icon/icons/cloud-upload.js +1 -2
- package/dist/icon/icons/cloud-upload.js.map +1 -1
- package/dist/icon/icons/cloud.js +1 -2
- package/dist/icon/icons/cloud.js.map +1 -1
- package/dist/icon/icons/code.js +1 -2
- package/dist/icon/icons/code.js.map +1 -1
- package/dist/icon/icons/collapse-all.js +1 -2
- package/dist/icon/icons/collapse-all.js.map +1 -1
- package/dist/icon/icons/collapse-details.js +1 -2
- package/dist/icon/icons/collapse-details.js.map +1 -1
- package/dist/icon/icons/color-palette.js +1 -2
- package/dist/icon/icons/color-palette.js.map +1 -1
- package/dist/icon/icons/columns.js +1 -2
- package/dist/icon/icons/columns.js.map +1 -1
- package/dist/icon/icons/compare.js +1 -2
- package/dist/icon/icons/compare.js.map +1 -1
- package/dist/icon/icons/computer.js +1 -2
- package/dist/icon/icons/computer.js.map +1 -1
- package/dist/icon/icons/connect-node.js +1 -2
- package/dist/icon/icons/connect-node.js.map +1 -1
- package/dist/icon/icons/connected-blocks.js +1 -2
- package/dist/icon/icons/connected-blocks.js.map +1 -1
- package/dist/icon/icons/copy.js +1 -2
- package/dist/icon/icons/copy.js.map +1 -1
- package/dist/icon/icons/cross-hairs.js +1 -2
- package/dist/icon/icons/cross-hairs.js.map +1 -1
- package/dist/icon/icons/cursor-rays.js +1 -2
- package/dist/icon/icons/cursor-rays.js.map +1 -1
- package/dist/icon/icons/cursor-ripples.js +1 -2
- package/dist/icon/icons/cursor-ripples.js.map +1 -1
- package/dist/icon/icons/data-management.js +1 -2
- package/dist/icon/icons/data-management.js.map +1 -1
- package/dist/icon/icons/delete-node.js +1 -2
- package/dist/icon/icons/delete-node.js.map +1 -1
- package/dist/icon/icons/delete-solid.js +1 -2
- package/dist/icon/icons/delete-solid.js.map +1 -1
- package/dist/icon/icons/delete.js +1 -2
- package/dist/icon/icons/delete.js.map +1 -1
- package/dist/icon/icons/doc-checkmark.js +1 -2
- package/dist/icon/icons/doc-checkmark.js.map +1 -1
- package/dist/icon/icons/dock-bottom.js +1 -2
- package/dist/icon/icons/dock-bottom.js.map +1 -1
- package/dist/icon/icons/dock-none.js +1 -2
- package/dist/icon/icons/dock-none.js.map +1 -1
- package/dist/icon/icons/dock-side.js +1 -2
- package/dist/icon/icons/dock-side.js.map +1 -1
- package/dist/icon/icons/document-clipboard.js +1 -2
- package/dist/icon/icons/document-clipboard.js.map +1 -1
- package/dist/icon/icons/document.js +1 -2
- package/dist/icon/icons/document.js.map +1 -1
- package/dist/icon/icons/dot-solid.js +1 -2
- package/dist/icon/icons/dot-solid.js.map +1 -1
- package/dist/icon/icons/dot.js +1 -2
- package/dist/icon/icons/dot.js.map +1 -1
- package/dist/icon/icons/double-chevron.js +1 -2
- package/dist/icon/icons/double-chevron.js.map +1 -1
- package/dist/icon/icons/download.js +1 -2
- package/dist/icon/icons/download.js.map +1 -1
- package/dist/icon/icons/drag.js +1 -2
- package/dist/icon/icons/drag.js.map +1 -1
- package/dist/icon/icons/dropper.js +1 -2
- package/dist/icon/icons/dropper.js.map +1 -1
- package/dist/icon/icons/duplicate.js +1 -2
- package/dist/icon/icons/duplicate.js.map +1 -1
- package/dist/icon/icons/edit.js +1 -2
- package/dist/icon/icons/edit.js.map +1 -1
- package/dist/icon/icons/ellipses.js +1 -2
- package/dist/icon/icons/ellipses.js.map +1 -1
- package/dist/icon/icons/envelope.js +1 -2
- package/dist/icon/icons/envelope.js.map +1 -1
- package/dist/icon/icons/exclamation-circle-solid.js +1 -2
- package/dist/icon/icons/exclamation-circle-solid.js.map +1 -1
- package/dist/icon/icons/exclamation-circle.js +1 -2
- package/dist/icon/icons/exclamation-circle.js.map +1 -1
- package/dist/icon/icons/exclamation-mark.js +1 -2
- package/dist/icon/icons/exclamation-mark.js.map +1 -1
- package/dist/icon/icons/exclamation-triangle-solid.js +1 -2
- package/dist/icon/icons/exclamation-triangle-solid.js.map +1 -1
- package/dist/icon/icons/exclamation-triangle.js +1 -2
- package/dist/icon/icons/exclamation-triangle.js.map +1 -1
- package/dist/icon/icons/expand-all.js +1 -2
- package/dist/icon/icons/expand-all.js.map +1 -1
- package/dist/icon/icons/expand-details.js +1 -2
- package/dist/icon/icons/expand-details.js.map +1 -1
- package/dist/icon/icons/expression.js +1 -2
- package/dist/icon/icons/expression.js.map +1 -1
- package/dist/icon/icons/eye-hidden.js +1 -2
- package/dist/icon/icons/eye-hidden.js.map +1 -1
- package/dist/icon/icons/eye.js +1 -2
- package/dist/icon/icons/eye.js.map +1 -1
- package/dist/icon/icons/face-frown.js +1 -2
- package/dist/icon/icons/face-frown.js.map +1 -1
- package/dist/icon/icons/face-smile-solid.js +1 -2
- package/dist/icon/icons/face-smile-solid.js.map +1 -1
- package/dist/icon/icons/face-smile.js +1 -2
- package/dist/icon/icons/face-smile.js.map +1 -1
- package/dist/icon/icons/fast-forward-10.js +1 -2
- package/dist/icon/icons/fast-forward-10.js.map +1 -1
- package/dist/icon/icons/fast-forward.js +1 -2
- package/dist/icon/icons/fast-forward.js.map +1 -1
- package/dist/icon/icons/film.js +1 -2
- package/dist/icon/icons/film.js.map +1 -1
- package/dist/icon/icons/filter-solid.js +1 -2
- package/dist/icon/icons/filter-solid.js.map +1 -1
- package/dist/icon/icons/filter.js +1 -2
- package/dist/icon/icons/filter.js.map +1 -1
- package/dist/icon/icons/flag-solid.js +1 -2
- package/dist/icon/icons/flag-solid.js.map +1 -1
- package/dist/icon/icons/flag.js +1 -2
- package/dist/icon/icons/flag.js.map +1 -1
- package/dist/icon/icons/fold.js +1 -2
- package/dist/icon/icons/fold.js.map +1 -1
- package/dist/icon/icons/folder.js +1 -2
- package/dist/icon/icons/folder.js.map +1 -1
- package/dist/icon/icons/fork.js +1 -2
- package/dist/icon/icons/fork.js.map +1 -1
- package/dist/icon/icons/gear-solid.js +1 -2
- package/dist/icon/icons/gear-solid.js.map +1 -1
- package/dist/icon/icons/gear.js +1 -2
- package/dist/icon/icons/gear.js.map +1 -1
- package/dist/icon/icons/globe-alt.js +1 -2
- package/dist/icon/icons/globe-alt.js.map +1 -1
- package/dist/icon/icons/globe.js +1 -2
- package/dist/icon/icons/globe.js.map +1 -1
- package/dist/icon/icons/group-boxes.js +1 -2
- package/dist/icon/icons/group-boxes.js.map +1 -1
- package/dist/icon/icons/group.js +1 -2
- package/dist/icon/icons/group.js.map +1 -1
- package/dist/icon/icons/hand.js +1 -2
- package/dist/icon/icons/hand.js.map +1 -1
- package/dist/icon/icons/hash.js +1 -2
- package/dist/icon/icons/hash.js.map +1 -1
- package/dist/icon/icons/heading.js +1 -2
- package/dist/icon/icons/heading.js.map +1 -1
- package/dist/icon/icons/home-solid.js +1 -2
- package/dist/icon/icons/home-solid.js.map +1 -1
- package/dist/icon/icons/home.js +1 -2
- package/dist/icon/icons/home.js.map +1 -1
- package/dist/icon/icons/horizontal-rule.js +1 -2
- package/dist/icon/icons/horizontal-rule.js.map +1 -1
- package/dist/icon/icons/hourglass-end.js +1 -2
- package/dist/icon/icons/hourglass-end.js.map +1 -1
- package/dist/icon/icons/hourglass-mid.js +1 -2
- package/dist/icon/icons/hourglass-mid.js.map +1 -1
- package/dist/icon/icons/hourglass-start.js +1 -2
- package/dist/icon/icons/hourglass-start.js.map +1 -1
- package/dist/icon/icons/hourglass.js +1 -2
- package/dist/icon/icons/hourglass.js.map +1 -1
- package/dist/icon/icons/identification.js +1 -2
- package/dist/icon/icons/identification.js.map +1 -1
- package/dist/icon/icons/image.js +1 -2
- package/dist/icon/icons/image.js.map +1 -1
- package/dist/icon/icons/inbox.js +1 -2
- package/dist/icon/icons/inbox.js.map +1 -1
- package/dist/icon/icons/infinity.js +1 -2
- package/dist/icon/icons/infinity.js.map +1 -1
- package/dist/icon/icons/information-circle-solid.js +1 -2
- package/dist/icon/icons/information-circle-solid.js.map +1 -1
- package/dist/icon/icons/information-circle.js +1 -2
- package/dist/icon/icons/information-circle.js.map +1 -1
- package/dist/icon/icons/inspect.js +1 -2
- package/dist/icon/icons/inspect.js.map +1 -1
- package/dist/icon/icons/italic.js +1 -2
- package/dist/icon/icons/italic.js.map +1 -1
- package/dist/icon/icons/key.js +1 -2
- package/dist/icon/icons/key.js.map +1 -1
- package/dist/icon/icons/keyboard.js +1 -2
- package/dist/icon/icons/keyboard.js.map +1 -1
- package/dist/icon/icons/laptop-phone.js +1 -2
- package/dist/icon/icons/laptop-phone.js.map +1 -1
- package/dist/icon/icons/layers.js +1 -2
- package/dist/icon/icons/layers.js.map +1 -1
- package/dist/icon/icons/lifebuoy.js +1 -2
- package/dist/icon/icons/lifebuoy.js.map +1 -1
- package/dist/icon/icons/lightbulb.js +1 -2
- package/dist/icon/icons/lightbulb.js.map +1 -1
- package/dist/icon/icons/lightning-bolt-solid.js +1 -2
- package/dist/icon/icons/lightning-bolt-solid.js.map +1 -1
- package/dist/icon/icons/lightning-bolt.js +1 -2
- package/dist/icon/icons/lightning-bolt.js.map +1 -1
- package/dist/icon/icons/link.js +1 -2
- package/dist/icon/icons/link.js.map +1 -1
- package/dist/icon/icons/list-ordered.js +1 -2
- package/dist/icon/icons/list-ordered.js.map +1 -1
- package/dist/icon/icons/list-unordered.js +1 -2
- package/dist/icon/icons/list-unordered.js.map +1 -1
- package/dist/icon/icons/lock-solid.js +1 -2
- package/dist/icon/icons/lock-solid.js.map +1 -1
- package/dist/icon/icons/lock.js +1 -2
- package/dist/icon/icons/lock.js.map +1 -1
- package/dist/icon/icons/login.js +1 -2
- package/dist/icon/icons/login.js.map +1 -1
- package/dist/icon/icons/logout.js +1 -2
- package/dist/icon/icons/logout.js.map +1 -1
- package/dist/icon/icons/looping-off.js +1 -2
- package/dist/icon/icons/looping-off.js.map +1 -1
- package/dist/icon/icons/looping.js +1 -2
- package/dist/icon/icons/looping.js.map +1 -1
- package/dist/icon/icons/map-drives.js +1 -2
- package/dist/icon/icons/map-drives.js.map +1 -1
- package/dist/icon/icons/map-pin.js +1 -2
- package/dist/icon/icons/map-pin.js.map +1 -1
- package/dist/icon/icons/map.js +1 -2
- package/dist/icon/icons/map.js.map +1 -1
- package/dist/icon/icons/markdown.js +1 -2
- package/dist/icon/icons/markdown.js.map +1 -1
- package/dist/icon/icons/maximize.js +1 -2
- package/dist/icon/icons/maximize.js.map +1 -1
- package/dist/icon/icons/megaphone.js +1 -2
- package/dist/icon/icons/megaphone.js.map +1 -1
- package/dist/icon/icons/menu.js +1 -2
- package/dist/icon/icons/menu.js.map +1 -1
- package/dist/icon/icons/merge.js +1 -2
- package/dist/icon/icons/merge.js.map +1 -1
- package/dist/icon/icons/meter.js +1 -2
- package/dist/icon/icons/meter.js.map +1 -1
- package/dist/icon/icons/minimize.js +1 -2
- package/dist/icon/icons/minimize.js.map +1 -1
- package/dist/icon/icons/minus-circle-solid.js +1 -2
- package/dist/icon/icons/minus-circle-solid.js.map +1 -1
- package/dist/icon/icons/minus-circle.js +1 -2
- package/dist/icon/icons/minus-circle.js.map +1 -1
- package/dist/icon/icons/minus.js +1 -2
- package/dist/icon/icons/minus.js.map +1 -1
- package/dist/icon/icons/moon.js +1 -2
- package/dist/icon/icons/moon.js.map +1 -1
- package/dist/icon/icons/more-actions.js +1 -2
- package/dist/icon/icons/more-actions.js.map +1 -1
- package/dist/icon/icons/multiselect.js +1 -2
- package/dist/icon/icons/multiselect.js.map +1 -1
- package/dist/icon/icons/music-note.js +1 -2
- package/dist/icon/icons/music-note.js.map +1 -1
- package/dist/icon/icons/newspaper.js +1 -2
- package/dist/icon/icons/newspaper.js.map +1 -1
- package/dist/icon/icons/not-allowed.js +1 -2
- package/dist/icon/icons/not-allowed.js.map +1 -1
- package/dist/icon/icons/numbers.js +1 -2
- package/dist/icon/icons/numbers.js.map +1 -1
- package/dist/icon/icons/office-building.js +1 -2
- package/dist/icon/icons/office-building.js.map +1 -1
- package/dist/icon/icons/outline.js +1 -2
- package/dist/icon/icons/outline.js.map +1 -1
- package/dist/icon/icons/paper-airplane.js +1 -2
- package/dist/icon/icons/paper-airplane.js.map +1 -1
- package/dist/icon/icons/paper-clip.js +1 -2
- package/dist/icon/icons/paper-clip.js.map +1 -1
- package/dist/icon/icons/pause.js +1 -2
- package/dist/icon/icons/pause.js.map +1 -1
- package/dist/icon/icons/pencil-square.js +1 -2
- package/dist/icon/icons/pencil-square.js.map +1 -1
- package/dist/icon/icons/person-2.js +1 -2
- package/dist/icon/icons/person-2.js.map +1 -1
- package/dist/icon/icons/person-3.js +1 -2
- package/dist/icon/icons/person-3.js.map +1 -1
- package/dist/icon/icons/person-circle.js +1 -2
- package/dist/icon/icons/person-circle.js.map +1 -1
- package/dist/icon/icons/person-solid.js +1 -2
- package/dist/icon/icons/person-solid.js.map +1 -1
- package/dist/icon/icons/person.js +1 -2
- package/dist/icon/icons/person.js.map +1 -1
- package/dist/icon/icons/phone.js +1 -2
- package/dist/icon/icons/phone.js.map +1 -1
- package/dist/icon/icons/picture-in-picture.js +1 -2
- package/dist/icon/icons/picture-in-picture.js.map +1 -1
- package/dist/icon/icons/pie-chart.js +1 -2
- package/dist/icon/icons/pie-chart.js.map +1 -1
- package/dist/icon/icons/pin-solid.js +1 -2
- package/dist/icon/icons/pin-solid.js.map +1 -1
- package/dist/icon/icons/pin.js +1 -2
- package/dist/icon/icons/pin.js.map +1 -1
- package/dist/icon/icons/pizza-slice.js +1 -2
- package/dist/icon/icons/pizza-slice.js.map +1 -1
- package/dist/icon/icons/placeholder.js +1 -2
- package/dist/icon/icons/placeholder.js.map +1 -1
- package/dist/icon/icons/play.js +1 -2
- package/dist/icon/icons/play.js.map +1 -1
- package/dist/icon/icons/plug.js +1 -2
- package/dist/icon/icons/plug.js.map +1 -1
- package/dist/icon/icons/plus-circle-solid.js +1 -2
- package/dist/icon/icons/plus-circle-solid.js.map +1 -1
- package/dist/icon/icons/plus-circle.js +1 -2
- package/dist/icon/icons/plus-circle.js.map +1 -1
- package/dist/icon/icons/plus-minus.js +1 -2
- package/dist/icon/icons/plus-minus.js.map +1 -1
- package/dist/icon/icons/pointer-solid.js +1 -2
- package/dist/icon/icons/pointer-solid.js.map +1 -1
- package/dist/icon/icons/pointer.js +1 -2
- package/dist/icon/icons/pointer.js.map +1 -1
- package/dist/icon/icons/priority-high.js +1 -2
- package/dist/icon/icons/priority-high.js.map +1 -1
- package/dist/icon/icons/priority-low.js +1 -2
- package/dist/icon/icons/priority-low.js.map +1 -1
- package/dist/icon/icons/priority-medium.js +1 -2
- package/dist/icon/icons/priority-medium.js.map +1 -1
- package/dist/icon/icons/projector.js +1 -2
- package/dist/icon/icons/projector.js.map +1 -1
- package/dist/icon/icons/pull-close.js +1 -2
- package/dist/icon/icons/pull-close.js.map +1 -1
- package/dist/icon/icons/pull-draft.js +1 -2
- package/dist/icon/icons/pull-draft.js.map +1 -1
- package/dist/icon/icons/pull-open.js +1 -2
- package/dist/icon/icons/pull-open.js.map +1 -1
- package/dist/icon/icons/pulse.js +1 -2
- package/dist/icon/icons/pulse.js.map +1 -1
- package/dist/icon/icons/puzzle-piece.js +1 -2
- package/dist/icon/icons/puzzle-piece.js.map +1 -1
- package/dist/icon/icons/question-mark-circle-solid.js +1 -2
- package/dist/icon/icons/question-mark-circle-solid.js.map +1 -1
- package/dist/icon/icons/question-mark-circle.js +1 -2
- package/dist/icon/icons/question-mark-circle.js.map +1 -1
- package/dist/icon/icons/rectangle-group.js +1 -2
- package/dist/icon/icons/rectangle-group.js.map +1 -1
- package/dist/icon/icons/rectangle-stack-horizontal.js +1 -2
- package/dist/icon/icons/rectangle-stack-horizontal.js.map +1 -1
- package/dist/icon/icons/rectangle-stack-vertical.js +1 -2
- package/dist/icon/icons/rectangle-stack-vertical.js.map +1 -1
- package/dist/icon/icons/redo.js +1 -2
- package/dist/icon/icons/redo.js.map +1 -1
- package/dist/icon/icons/refresh.js +1 -2
- package/dist/icon/icons/refresh.js.map +1 -1
- package/dist/icon/icons/reply.js +1 -2
- package/dist/icon/icons/reply.js.map +1 -1
- package/dist/icon/icons/rewind-10.js +1 -2
- package/dist/icon/icons/rewind-10.js.map +1 -1
- package/dist/icon/icons/rewind.js +1 -2
- package/dist/icon/icons/rewind.js.map +1 -1
- package/dist/icon/icons/rocketship.js +1 -2
- package/dist/icon/icons/rocketship.js.map +1 -1
- package/dist/icon/icons/running.js +1 -2
- package/dist/icon/icons/running.js.map +1 -1
- package/dist/icon/icons/scale.js +1 -2
- package/dist/icon/icons/scale.js.map +1 -1
- package/dist/icon/icons/scissors.js +1 -2
- package/dist/icon/icons/scissors.js.map +1 -1
- package/dist/icon/icons/search.js +1 -2
- package/dist/icon/icons/search.js.map +1 -1
- package/dist/icon/icons/sensor.js +1 -2
- package/dist/icon/icons/sensor.js.map +1 -1
- package/dist/icon/icons/server-stack.js +1 -2
- package/dist/icon/icons/server-stack.js.map +1 -1
- package/dist/icon/icons/server.js +1 -2
- package/dist/icon/icons/server.js.map +1 -1
- package/dist/icon/icons/shapes.js +1 -2
- package/dist/icon/icons/shapes.js.map +1 -1
- package/dist/icon/icons/share.js +1 -2
- package/dist/icon/icons/share.js.map +1 -1
- package/dist/icon/icons/signal-slash.js +1 -2
- package/dist/icon/icons/signal-slash.js.map +1 -1
- package/dist/icon/icons/signal.js +1 -2
- package/dist/icon/icons/signal.js.map +1 -1
- package/dist/icon/icons/signpost.js +1 -2
- package/dist/icon/icons/signpost.js.map +1 -1
- package/dist/icon/icons/sort-ascending.js +1 -2
- package/dist/icon/icons/sort-ascending.js.map +1 -1
- package/dist/icon/icons/sort-descending.js +1 -2
- package/dist/icon/icons/sort-descending.js.map +1 -1
- package/dist/icon/icons/soundwave.js +1 -2
- package/dist/icon/icons/soundwave.js.map +1 -1
- package/dist/icon/icons/sparkles-solid.js +1 -2
- package/dist/icon/icons/sparkles-solid.js.map +1 -1
- package/dist/icon/icons/sparkles.js +1 -2
- package/dist/icon/icons/sparkles.js.map +1 -1
- package/dist/icon/icons/split-horizontal.js +1 -2
- package/dist/icon/icons/split-horizontal.js.map +1 -1
- package/dist/icon/icons/split-none.js +1 -2
- package/dist/icon/icons/split-none.js.map +1 -1
- package/dist/icon/icons/split-vertical.js +1 -2
- package/dist/icon/icons/split-vertical.js.map +1 -1
- package/dist/icon/icons/star-half.js +1 -2
- package/dist/icon/icons/star-half.js.map +1 -1
- package/dist/icon/icons/star-stroke.js +1 -2
- package/dist/icon/icons/star-stroke.js.map +1 -1
- package/dist/icon/icons/star.js +1 -2
- package/dist/icon/icons/star.js.map +1 -1
- package/dist/icon/icons/start.js +1 -2
- package/dist/icon/icons/start.js.map +1 -1
- package/dist/icon/icons/status-offline.js +1 -2
- package/dist/icon/icons/status-offline.js.map +1 -1
- package/dist/icon/icons/status-online.js +1 -2
- package/dist/icon/icons/status-online.js.map +1 -1
- package/dist/icon/icons/stop-sign.js +1 -2
- package/dist/icon/icons/stop-sign.js.map +1 -1
- package/dist/icon/icons/stop.js +1 -2
- package/dist/icon/icons/stop.js.map +1 -1
- package/dist/icon/icons/stopwatch.js +1 -2
- package/dist/icon/icons/stopwatch.js.map +1 -1
- package/dist/icon/icons/strikethrough.js +1 -2
- package/dist/icon/icons/strikethrough.js.map +1 -1
- package/dist/icon/icons/sun.js +1 -2
- package/dist/icon/icons/sun.js.map +1 -1
- package/dist/icon/icons/swatch.js +1 -2
- package/dist/icon/icons/swatch.js.map +1 -1
- package/dist/icon/icons/switch-apps.js +1 -2
- package/dist/icon/icons/switch-apps.js.map +1 -1
- package/dist/icon/icons/switch.js +1 -2
- package/dist/icon/icons/switch.js.map +1 -1
- package/dist/icon/icons/table.js +1 -2
- package/dist/icon/icons/table.js.map +1 -1
- package/dist/icon/icons/tag.js +1 -2
- package/dist/icon/icons/tag.js.map +1 -1
- package/dist/icon/icons/task.js +1 -2
- package/dist/icon/icons/task.js.map +1 -1
- package/dist/icon/icons/telescope.js +1 -2
- package/dist/icon/icons/telescope.js.map +1 -1
- package/dist/icon/icons/template.js +1 -2
- package/dist/icon/icons/template.js.map +1 -1
- package/dist/icon/icons/terminal.js +1 -2
- package/dist/icon/icons/terminal.js.map +1 -1
- package/dist/icon/icons/thumb-solid.js +1 -2
- package/dist/icon/icons/thumb-solid.js.map +1 -1
- package/dist/icon/icons/thumb.js +1 -2
- package/dist/icon/icons/thumb.js.map +1 -1
- package/dist/icon/icons/traffic-cone.js +1 -2
- package/dist/icon/icons/traffic-cone.js.map +1 -1
- package/dist/icon/icons/transparent-box.js +1 -2
- package/dist/icon/icons/transparent-box.js.map +1 -1
- package/dist/icon/icons/trend-down.js +1 -2
- package/dist/icon/icons/trend-down.js.map +1 -1
- package/dist/icon/icons/trend-up.js +1 -2
- package/dist/icon/icons/trend-up.js.map +1 -1
- package/dist/icon/icons/trophy.js +1 -2
- package/dist/icon/icons/trophy.js.map +1 -1
- package/dist/icon/icons/truck.js +1 -2
- package/dist/icon/icons/truck.js.map +1 -1
- package/dist/icon/icons/typography.js +1 -2
- package/dist/icon/icons/typography.js.map +1 -1
- package/dist/icon/icons/undo.js +1 -2
- package/dist/icon/icons/undo.js.map +1 -1
- package/dist/icon/icons/unlock-solid.js +1 -2
- package/dist/icon/icons/unlock-solid.js.map +1 -1
- package/dist/icon/icons/unlock.js +1 -2
- package/dist/icon/icons/unlock.js.map +1 -1
- package/dist/icon/icons/upload.js +1 -2
- package/dist/icon/icons/upload.js.map +1 -1
- package/dist/icon/icons/video-camera.js +1 -2
- package/dist/icon/icons/video-camera.js.map +1 -1
- package/dist/icon/icons/view-as-grid.js +1 -2
- package/dist/icon/icons/view-as-grid.js.map +1 -1
- package/dist/icon/icons/volume-muted.js +1 -2
- package/dist/icon/icons/volume-muted.js.map +1 -1
- package/dist/icon/icons/volume-solid.js +1 -2
- package/dist/icon/icons/volume-solid.js.map +1 -1
- package/dist/icon/icons/volume.js +1 -2
- package/dist/icon/icons/volume.js.map +1 -1
- package/dist/icon/icons/wifi.js +1 -2
- package/dist/icon/icons/wifi.js.map +1 -1
- package/dist/icon/icons/wrench-solid.js +1 -2
- package/dist/icon/icons/wrench-solid.js.map +1 -1
- package/dist/icon/icons/wrench.js +1 -2
- package/dist/icon/icons/wrench.js.map +1 -1
- package/dist/icon/icons/x-circle-solid.js +1 -2
- package/dist/icon/icons/x-circle-solid.js.map +1 -1
- package/dist/icon/icons/x-circle.js +1 -2
- package/dist/icon/icons/x-circle.js.map +1 -1
- package/dist/icon/icons/zoom-in.js +1 -2
- package/dist/icon/icons/zoom-in.js.map +1 -1
- package/dist/icon/icons/zoom-out.js +1 -2
- package/dist/icon/icons/zoom-out.js.map +1 -1
- package/dist/icon/icons.js +1 -2
- package/dist/icon/icons.js.map +1 -1
- package/dist/icon/server.js +1 -2
- package/dist/icon/server.js.map +1 -1
- package/dist/icon-button/define.js +1 -2
- package/dist/icon-button/define.js.map +1 -1
- package/dist/icon-button/icon-button.examples.js +1 -2
- package/dist/icon-button/icon-button.examples.js.map +1 -1
- package/dist/icon-button/icon-button.js +1 -2
- package/dist/icon-button/icon-button.js.map +1 -1
- package/dist/icon-button/icon-button2.js +3 -4
- package/dist/icon-button/icon-button2.js.map +1 -1
- package/dist/icon-button/index.js +1 -2
- package/dist/iframe/define.js +1 -2
- package/dist/iframe/define.js.map +1 -1
- package/dist/iframe/iframe.examples.js +1 -2
- package/dist/iframe/iframe.examples.js.map +1 -1
- package/dist/iframe/iframe.js +1 -2
- package/dist/iframe/iframe.js.map +1 -1
- package/dist/iframe/iframe2.js +12 -27
- package/dist/iframe/iframe2.js.map +1 -1
- package/dist/iframe/index.js +1 -2
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/input/define.js +0 -1
- package/dist/input/define.js.map +1 -1
- package/dist/input/input-group.examples.js +1 -2
- package/dist/input/input-group.examples.js.map +1 -1
- package/dist/input/input-group.global.js +1 -2
- package/dist/input/input-group.global.js.map +1 -1
- package/dist/input/input-group.js +1 -2
- package/dist/input/input-group.js.map +1 -1
- package/dist/input/input-group2.js +2 -3
- package/dist/input/input-group2.js.map +1 -1
- package/dist/input/input.examples.js +1 -2
- package/dist/input/input.examples.js.map +1 -1
- package/dist/input/input.js +1 -2
- package/dist/input/input.js.map +1 -1
- package/dist/input/input2.js +3 -4
- package/dist/input/input2.js.map +1 -1
- package/dist/internal/controllers/audit.controller.js +1 -2
- package/dist/internal/controllers/audit.controller.js.map +1 -1
- package/dist/internal/controllers/gesture.controller.examples.js +1 -2
- package/dist/internal/controllers/gesture.controller.examples.js.map +1 -1
- package/dist/internal/controllers/gesture.controller.js +14 -41
- package/dist/internal/controllers/gesture.controller.js.map +1 -1
- package/dist/internal/controllers/key-state.controller.js +1 -2
- package/dist/internal/controllers/key-state.controller.js.map +1 -1
- package/dist/internal/controllers/keynav-grid.controller.examples.js +1 -2
- package/dist/internal/controllers/keynav-grid.controller.examples.js.map +1 -1
- package/dist/internal/controllers/keynav-grid.controller.js +3 -7
- package/dist/internal/controllers/keynav-grid.controller.js.map +1 -1
- package/dist/internal/controllers/keynav-list.controller.examples.js +1 -2
- package/dist/internal/controllers/keynav-list.controller.examples.js.map +1 -1
- package/dist/internal/controllers/keynav-list.controller.js +2 -3
- package/dist/internal/controllers/keynav-list.controller.js.map +1 -1
- package/dist/internal/controllers/keynav-spatial.controller.js +1 -2
- package/dist/internal/controllers/keynav-spatial.controller.js.map +1 -1
- package/dist/internal/controllers/popover.examples.js +1 -2
- package/dist/internal/controllers/popover.examples.js.map +1 -1
- package/dist/internal/controllers/state-expanded.controller.js +1 -2
- package/dist/internal/controllers/state-expanded.controller.js.map +1 -1
- package/dist/internal/controllers/state-highlighted.controller.js +1 -2
- package/dist/internal/controllers/state-highlighted.controller.js.map +1 -1
- package/dist/internal/controllers/state-scroll.controller.js +1 -2
- package/dist/internal/controllers/state-scroll.controller.js.map +1 -1
- package/dist/internal/controllers/state-selected.controller.js +2 -11
- package/dist/internal/controllers/state-selected.controller.js.map +1 -1
- package/dist/internal/controllers/type-anchor.controller.js +1 -2
- package/dist/internal/controllers/type-anchor.controller.js.map +1 -1
- package/dist/internal/controllers/type-closable.controller.js +1 -2
- package/dist/internal/controllers/type-closable.controller.js.map +1 -1
- package/dist/internal/controllers/type-expandable.controller.js +1 -2
- package/dist/internal/controllers/type-expandable.controller.js.map +1 -1
- package/dist/internal/controllers/type-native-popover.controller.js +2 -7
- package/dist/internal/controllers/type-native-popover.controller.js.map +1 -1
- package/dist/internal/controllers/type-native-popover.utils.js +1 -2
- package/dist/internal/controllers/type-native-popover.utils.js.map +1 -1
- package/dist/internal/controllers/type-popover.controller.examples.js +1 -2
- package/dist/internal/controllers/type-popover.controller.examples.js.map +1 -1
- package/dist/internal/controllers/type-selectable.controller.js +1 -2
- package/dist/internal/controllers/type-selectable.controller.js.map +1 -1
- package/dist/internal/controllers/type-ssr.controller.js +1 -2
- package/dist/internal/controllers/type-ssr.controller.js.map +1 -1
- package/dist/internal/decorators/host-attr.js +1 -2
- package/dist/internal/decorators/host-attr.js.map +1 -1
- package/dist/internal/decorators/scoped-registry.js +1 -2
- package/dist/internal/decorators/scoped-registry.js.map +1 -1
- package/dist/internal/index.js +1 -2
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/services/log.service.js +1 -2
- package/dist/internal/services/log.service.js.map +1 -1
- package/dist/internal/services/transition.service.js +0 -1
- package/dist/internal/services/transition.service.js.map +1 -1
- package/dist/internal/styles/base.js +1 -2
- package/dist/internal/styles/base.js.map +1 -1
- package/dist/internal/styles/color.state.js +1 -2
- package/dist/internal/styles/color.state.js.map +1 -1
- package/dist/internal/styles/index.js +1 -2
- package/dist/internal/styles/index.js.map +1 -1
- package/dist/internal/styles/interaction-state.js +1 -2
- package/dist/internal/styles/interaction-state.js.map +1 -1
- package/dist/internal/styles/popover.js +1 -2
- package/dist/internal/styles/popover.js.map +1 -1
- package/dist/internal/styles/popover2.js +1 -2
- package/dist/internal/styles/popover2.js.map +1 -1
- package/dist/internal/styles/status.state.js +1 -2
- package/dist/internal/styles/status.state.js.map +1 -1
- package/dist/internal/styles/support.state.js +1 -2
- package/dist/internal/styles/support.state.js.map +1 -1
- package/dist/internal/types/index.js +1 -2
- package/dist/internal/types/index.js.map +1 -1
- package/dist/internal/utils/a11y.js +1 -2
- package/dist/internal/utils/a11y.js.map +1 -1
- package/dist/internal/utils/audit-logs.js +1 -2
- package/dist/internal/utils/audit-logs.js.map +1 -1
- package/dist/internal/utils/audit.js +1 -2
- package/dist/internal/utils/audit.js.map +1 -1
- package/dist/internal/utils/dom.js +2 -9
- package/dist/internal/utils/dom.js.map +1 -1
- package/dist/internal/utils/events.js +3 -8
- package/dist/internal/utils/events.js.map +1 -1
- package/dist/internal/utils/focus.js +3 -26
- package/dist/internal/utils/focus.js.map +1 -1
- package/dist/internal/utils/keynav.js +1 -2
- package/dist/internal/utils/keynav.js.map +1 -1
- package/dist/internal/utils/numeric.js +1 -2
- package/dist/internal/utils/numeric.js.map +1 -1
- package/dist/internal/utils/objects.js +1 -2
- package/dist/internal/utils/objects.js.map +1 -1
- package/dist/internal/utils/strings.js +1 -2
- package/dist/internal/utils/strings.js.map +1 -1
- package/dist/internal/utils/supports.js +1 -2
- package/dist/internal/utils/supports.js.map +1 -1
- package/dist/joystick/define.js +1 -2
- package/dist/joystick/define.js.map +1 -1
- package/dist/joystick/index.js +1 -2
- package/dist/joystick/joystick.examples.js +1 -2
- package/dist/joystick/joystick.examples.js.map +1 -1
- package/dist/joystick/joystick.js +1 -2
- package/dist/joystick/joystick.js.map +1 -1
- package/dist/joystick/joystick2.js +7 -8
- package/dist/joystick/joystick2.js.map +1 -1
- package/dist/logo/define.js +1 -2
- package/dist/logo/define.js.map +1 -1
- package/dist/logo/index.js +1 -2
- package/dist/logo/logo.examples.js +1 -2
- package/dist/logo/logo.examples.js.map +1 -1
- package/dist/logo/logo.js +1 -2
- package/dist/logo/logo.js.map +1 -1
- package/dist/logo/logo2.js +3 -4
- package/dist/logo/logo2.js.map +1 -1
- package/dist/menu/define.js +0 -1
- package/dist/menu/define.js.map +1 -1
- package/dist/menu/menu-group.js +1 -2
- package/dist/menu/menu-group.js.map +1 -1
- package/dist/menu/menu-group2.js +3 -4
- package/dist/menu/menu-group2.js.map +1 -1
- package/dist/menu/menu-item.js +1 -2
- package/dist/menu/menu-item.js.map +1 -1
- package/dist/menu/menu-item2.js +3 -4
- package/dist/menu/menu-item2.js.map +1 -1
- package/dist/menu/menu.examples.js +1 -2
- package/dist/menu/menu.examples.js.map +1 -1
- package/dist/menu/menu.global.js +1 -2
- package/dist/menu/menu.global.js.map +1 -1
- package/dist/menu/menu.js +1 -2
- package/dist/menu/menu.js.map +1 -1
- package/dist/menu/menu2.js +19 -15
- package/dist/menu/menu2.js.map +1 -1
- package/dist/month/define.js +0 -1
- package/dist/month/define.js.map +1 -1
- package/dist/month/index.js +1 -2
- package/dist/month/month.examples.js +1 -2
- package/dist/month/month.examples.js.map +1 -1
- package/dist/month/month.js +1 -2
- package/dist/month/month.js.map +1 -1
- package/dist/month/month2.js +3 -4
- package/dist/month/month2.js.map +1 -1
- package/dist/notification/define.js +0 -1
- package/dist/notification/define.js.map +1 -1
- package/dist/notification/notification-group.js +1 -2
- package/dist/notification/notification-group.js.map +1 -1
- package/dist/notification/notification-group2.js +3 -4
- package/dist/notification/notification-group2.js.map +1 -1
- package/dist/notification/notification.examples.js +1 -2
- package/dist/notification/notification.examples.js.map +1 -1
- package/dist/notification/notification.js +1 -2
- package/dist/notification/notification.js.map +1 -1
- package/dist/notification/notification2.js +3 -4
- package/dist/notification/notification2.js.map +1 -1
- package/dist/page/define.js +0 -1
- package/dist/page/define.js.map +1 -1
- package/dist/page/page-panel/page-panel-content.js +1 -2
- package/dist/page/page-panel/page-panel-content.js.map +1 -1
- package/dist/page/page-panel/page-panel-content2.js +2 -3
- package/dist/page/page-panel/page-panel-content2.js.map +1 -1
- package/dist/page/page-panel/page-panel-footer.js +1 -2
- package/dist/page/page-panel/page-panel-footer.js.map +1 -1
- package/dist/page/page-panel/page-panel-footer2.js +3 -4
- package/dist/page/page-panel/page-panel-footer2.js.map +1 -1
- package/dist/page/page-panel/page-panel-header.js +1 -2
- package/dist/page/page-panel/page-panel-header.js.map +1 -1
- package/dist/page/page-panel/page-panel-header2.js +3 -4
- package/dist/page/page-panel/page-panel-header2.js.map +1 -1
- package/dist/page/page-panel/page-panel.global.js +1 -2
- package/dist/page/page-panel/page-panel.global.js.map +1 -1
- package/dist/page/page-panel/page-panel.js +1 -2
- package/dist/page/page-panel/page-panel.js.map +1 -1
- package/dist/page/page-panel/page-panel2.js +3 -4
- package/dist/page/page-panel/page-panel2.js.map +1 -1
- package/dist/page/page.examples.js +1 -2
- package/dist/page/page.examples.js.map +1 -1
- package/dist/page/page.js +2 -3
- package/dist/page/page.js.map +1 -1
- package/dist/page/page2.js +3 -4
- package/dist/page/page2.js.map +1 -1
- package/dist/page-header/define.js +1 -2
- package/dist/page-header/define.js.map +1 -1
- package/dist/page-header/index.js +1 -2
- package/dist/page-header/page-header.examples.js +1 -2
- package/dist/page-header/page-header.examples.js.map +1 -1
- package/dist/page-header/page-header.global.js +1 -2
- package/dist/page-header/page-header.global.js.map +1 -1
- package/dist/page-header/page-header.js +1 -2
- package/dist/page-header/page-header.js.map +1 -1
- package/dist/page-header/page-header2.js +2 -3
- package/dist/page-header/page-header2.js.map +1 -1
- package/dist/page-loader/define.js +1 -2
- package/dist/page-loader/define.js.map +1 -1
- package/dist/page-loader/index.js +1 -2
- package/dist/page-loader/page-loader.examples.js +1 -2
- package/dist/page-loader/page-loader.examples.js.map +1 -1
- package/dist/page-loader/page-loader.js +1 -2
- package/dist/page-loader/page-loader.js.map +1 -1
- package/dist/page-loader/page-loader2.js +3 -4
- package/dist/page-loader/page-loader2.js.map +1 -1
- package/dist/pagination/define.js +1 -2
- package/dist/pagination/define.js.map +1 -1
- package/dist/pagination/index.js +1 -2
- package/dist/pagination/pagination.examples.js +1 -2
- package/dist/pagination/pagination.examples.js.map +1 -1
- package/dist/pagination/pagination.js +1 -2
- package/dist/pagination/pagination.js.map +1 -1
- package/dist/pagination/pagination2.js +3 -4
- package/dist/pagination/pagination2.js.map +1 -1
- package/dist/panel/define.js +0 -1
- package/dist/panel/define.js.map +1 -1
- package/dist/panel/index.js +1 -2
- package/dist/panel/panel-content.js +1 -2
- package/dist/panel/panel-content.js.map +1 -1
- package/dist/panel/panel-footer.js +1 -2
- package/dist/panel/panel-footer.js.map +1 -1
- package/dist/panel/panel-header.js +1 -2
- package/dist/panel/panel-header.js.map +1 -1
- package/dist/panel/panel.examples.js +1 -2
- package/dist/panel/panel.examples.js.map +1 -1
- package/dist/panel/panel.js +1 -2
- package/dist/panel/panel.js.map +1 -1
- package/dist/panel/panel2.js +6 -7
- package/dist/panel/panel2.js.map +1 -1
- package/dist/password/define.js +0 -1
- package/dist/password/define.js.map +1 -1
- package/dist/password/index.js +1 -2
- package/dist/password/password.examples.js +1 -2
- package/dist/password/password.examples.js.map +1 -1
- package/dist/password/password.js +1 -2
- package/dist/password/password.js.map +1 -1
- package/dist/password/password2.js +3 -4
- package/dist/password/password2.js.map +1 -1
- package/dist/polyfills/index.js +1 -2
- package/dist/polyfills/index.js.map +1 -1
- package/dist/preferences-input/define.js +1 -2
- package/dist/preferences-input/define.js.map +1 -1
- package/dist/preferences-input/index.js +1 -2
- package/dist/preferences-input/preferences-input.examples.js +1 -2
- package/dist/preferences-input/preferences-input.examples.js.map +1 -1
- package/dist/preferences-input/preferences-input.js +1 -2
- package/dist/preferences-input/preferences-input.js.map +1 -1
- package/dist/preferences-input/preferences-input2.js +3 -4
- package/dist/preferences-input/preferences-input2.js.map +1 -1
- package/dist/progress-bar/define.js +1 -2
- package/dist/progress-bar/define.js.map +1 -1
- package/dist/progress-bar/index.js +1 -2
- package/dist/progress-bar/progress-bar.examples.js +1 -2
- package/dist/progress-bar/progress-bar.examples.js.map +1 -1
- package/dist/progress-bar/progress-bar.js +1 -2
- package/dist/progress-bar/progress-bar.js.map +1 -1
- package/dist/progress-bar/progress-bar2.js +3 -4
- package/dist/progress-bar/progress-bar2.js.map +1 -1
- package/dist/progress-dot/define.js +1 -2
- package/dist/progress-dot/define.js.map +1 -1
- package/dist/progress-dot/index.js +1 -2
- package/dist/progress-dot/progress-dot.examples.js +1 -2
- package/dist/progress-dot/progress-dot.examples.js.map +1 -1
- package/dist/progress-dot/progress-dot.js +1 -2
- package/dist/progress-dot/progress-dot.js.map +1 -1
- package/dist/progress-dot/progress-dot2.js +3 -4
- package/dist/progress-dot/progress-dot2.js.map +1 -1
- package/dist/progress-ring/define.js +1 -2
- package/dist/progress-ring/define.js.map +1 -1
- package/dist/progress-ring/index.js +1 -2
- package/dist/progress-ring/progress-ring.examples.js +1 -2
- package/dist/progress-ring/progress-ring.examples.js.map +1 -1
- package/dist/progress-ring/progress-ring.js +1 -2
- package/dist/progress-ring/progress-ring.js.map +1 -1
- package/dist/progress-ring/progress-ring2.js +3 -4
- package/dist/progress-ring/progress-ring2.js.map +1 -1
- package/dist/progressive-filter-chip/define.js +1 -2
- package/dist/progressive-filter-chip/define.js.map +1 -1
- package/dist/progressive-filter-chip/index.js +1 -2
- package/dist/progressive-filter-chip/progressive-filter-chip.examples.js +1 -2
- package/dist/progressive-filter-chip/progressive-filter-chip.examples.js.map +1 -1
- package/dist/progressive-filter-chip/progressive-filter-chip.global.js +1 -2
- package/dist/progressive-filter-chip/progressive-filter-chip.global.js.map +1 -1
- package/dist/progressive-filter-chip/progressive-filter-chip.js +1 -2
- package/dist/progressive-filter-chip/progressive-filter-chip.js.map +1 -1
- package/dist/progressive-filter-chip/progressive-filter-chip2.js +3 -4
- package/dist/progressive-filter-chip/progressive-filter-chip2.js.map +1 -1
- package/dist/pulse/define.js +1 -2
- package/dist/pulse/define.js.map +1 -1
- package/dist/pulse/index.js +1 -2
- package/dist/pulse/pulse.examples.js +1 -2
- package/dist/pulse/pulse.examples.js.map +1 -1
- package/dist/pulse/pulse.js +1 -2
- package/dist/pulse/pulse.js.map +1 -1
- package/dist/pulse/pulse2.js +3 -4
- package/dist/pulse/pulse2.js.map +1 -1
- package/dist/radio/define.js +0 -1
- package/dist/radio/define.js.map +1 -1
- package/dist/radio/radio-group.js +1 -2
- package/dist/radio/radio-group.js.map +1 -1
- package/dist/radio/radio-group2.js +3 -4
- package/dist/radio/radio-group2.js.map +1 -1
- package/dist/radio/radio.examples.js +1 -2
- package/dist/radio/radio.examples.js.map +1 -1
- package/dist/radio/radio.js +1 -2
- package/dist/radio/radio.js.map +1 -1
- package/dist/radio/radio2.js +3 -4
- package/dist/radio/radio2.js.map +1 -1
- package/dist/range/define.js +0 -1
- package/dist/range/define.js.map +1 -1
- package/dist/range/index.js +1 -2
- package/dist/range/range.examples.js +1 -2
- package/dist/range/range.examples.js.map +1 -1
- package/dist/range/range.global.js +1 -2
- package/dist/range/range.global.js.map +1 -1
- package/dist/range/range.js +1 -2
- package/dist/range/range.js.map +1 -1
- package/dist/range/range2.js +3 -4
- package/dist/range/range2.js.map +1 -1
- package/dist/resize-handle/define.js +1 -2
- package/dist/resize-handle/define.js.map +1 -1
- package/dist/resize-handle/index.js +1 -2
- package/dist/resize-handle/resize-handle.examples.js +1 -2
- package/dist/resize-handle/resize-handle.examples.js.map +1 -1
- package/dist/resize-handle/resize-handle.js +1 -2
- package/dist/resize-handle/resize-handle.js.map +1 -1
- package/dist/resize-handle/resize-handle2.js +5 -6
- package/dist/resize-handle/resize-handle2.js.map +1 -1
- package/dist/search/define.js +0 -1
- package/dist/search/define.js.map +1 -1
- package/dist/search/index.js +1 -2
- package/dist/search/search.examples.js +1 -2
- package/dist/search/search.examples.js.map +1 -1
- package/dist/search/search.js +1 -2
- package/dist/search/search.js.map +1 -1
- package/dist/search/search2.js +3 -4
- package/dist/search/search2.js.map +1 -1
- package/dist/select/define.js +0 -1
- package/dist/select/define.js.map +1 -1
- package/dist/select/index.js +1 -2
- package/dist/select/select.examples.js +1 -2
- package/dist/select/select.examples.js.map +1 -1
- package/dist/select/select.global.js +1 -2
- package/dist/select/select.global.js.map +1 -1
- package/dist/select/select.js +1 -2
- package/dist/select/select.js.map +1 -1
- package/dist/select/select2.js +3 -4
- package/dist/select/select2.js.map +1 -1
- package/dist/skeleton/define.js +1 -2
- package/dist/skeleton/define.js.map +1 -1
- package/dist/skeleton/index.js +1 -2
- package/dist/skeleton/skeleton.examples.js +1 -2
- package/dist/skeleton/skeleton.examples.js.map +1 -1
- package/dist/skeleton/skeleton.js +1 -2
- package/dist/skeleton/skeleton.js.map +1 -1
- package/dist/skeleton/skeleton2.js +3 -4
- package/dist/skeleton/skeleton2.js.map +1 -1
- package/dist/sort-button/define.js +1 -2
- package/dist/sort-button/define.js.map +1 -1
- package/dist/sort-button/index.js +1 -2
- package/dist/sort-button/sort-button.examples.js +1 -2
- package/dist/sort-button/sort-button.examples.js.map +1 -1
- package/dist/sort-button/sort-button.js +1 -2
- package/dist/sort-button/sort-button.js.map +1 -1
- package/dist/sort-button/sort-button2.js +3 -4
- package/dist/sort-button/sort-button2.js.map +1 -1
- package/dist/sparkline/define.js +1 -2
- package/dist/sparkline/define.js.map +1 -1
- package/dist/sparkline/index.js +1 -2
- package/dist/sparkline/sparkline.examples.js +1 -2
- package/dist/sparkline/sparkline.examples.js.map +1 -1
- package/dist/sparkline/sparkline.js +1 -2
- package/dist/sparkline/sparkline.js.map +1 -1
- package/dist/sparkline/sparkline.utils.js +0 -1
- package/dist/sparkline/sparkline.utils.js.map +1 -1
- package/dist/sparkline/sparkline2.js +3 -4
- package/dist/sparkline/sparkline2.js.map +1 -1
- package/dist/star-rating/define.js +0 -1
- package/dist/star-rating/define.js.map +1 -1
- package/dist/star-rating/index.js +1 -2
- package/dist/star-rating/star-rating.examples.js +1 -2
- package/dist/star-rating/star-rating.examples.js.map +1 -1
- package/dist/star-rating/star-rating.js +1 -2
- package/dist/star-rating/star-rating.js.map +1 -1
- package/dist/star-rating/star-rating2.js +3 -4
- package/dist/star-rating/star-rating2.js.map +1 -1
- package/dist/steps/define.js +0 -1
- package/dist/steps/define.js.map +1 -1
- package/dist/steps/index.js +1 -2
- package/dist/steps/steps-item.js +1 -2
- package/dist/steps/steps-item.js.map +1 -1
- package/dist/steps/steps.examples.js +1 -2
- package/dist/steps/steps.examples.js.map +1 -1
- package/dist/steps/steps.js +1 -2
- package/dist/steps/steps.js.map +1 -1
- package/dist/steps/steps2.js +5 -6
- package/dist/steps/steps2.js.map +1 -1
- package/dist/switch/define.js +0 -1
- package/dist/switch/define.js.map +1 -1
- package/dist/switch/switch-group.js +1 -2
- package/dist/switch/switch-group.js.map +1 -1
- package/dist/switch/switch-group2.js +3 -4
- package/dist/switch/switch-group2.js.map +1 -1
- package/dist/switch/switch.examples.js +1 -2
- package/dist/switch/switch.examples.js.map +1 -1
- package/dist/switch/switch.js +1 -2
- package/dist/switch/switch.js.map +1 -1
- package/dist/switch/switch2.js +3 -4
- package/dist/switch/switch2.js.map +1 -1
- package/dist/tabs/define.js +0 -1
- package/dist/tabs/define.js.map +1 -1
- package/dist/tabs/tabs-group.js +1 -2
- package/dist/tabs/tabs-group.js.map +1 -1
- package/dist/tabs/tabs-group2.js +8 -17
- package/dist/tabs/tabs-group2.js.map +1 -1
- package/dist/tabs/tabs-item-group.js +1 -2
- package/dist/tabs/tabs-item-group.js.map +1 -1
- package/dist/tabs/tabs-item-group2.js +3 -4
- package/dist/tabs/tabs-item-group2.js.map +1 -1
- package/dist/tabs/tabs-item.js +1 -2
- package/dist/tabs/tabs-item.js.map +1 -1
- package/dist/tabs/tabs.examples.js +1 -2
- package/dist/tabs/tabs.examples.js.map +1 -1
- package/dist/tabs/tabs.global.js +1 -2
- package/dist/tabs/tabs.global.js.map +1 -1
- package/dist/tabs/tabs.js +1 -2
- package/dist/tabs/tabs.js.map +1 -1
- package/dist/tabs/tabs2.js +5 -6
- package/dist/tabs/tabs2.js.map +1 -1
- package/dist/tabs/utils.js +1 -2
- package/dist/tabs/utils.js.map +1 -1
- package/dist/tag/define.js +1 -2
- package/dist/tag/define.js.map +1 -1
- package/dist/tag/index.js +1 -2
- package/dist/tag/tag.examples.js +1 -2
- package/dist/tag/tag.examples.js.map +1 -1
- package/dist/tag/tag.js +1 -2
- package/dist/tag/tag.js.map +1 -1
- package/dist/tag/tag2.js +3 -4
- package/dist/tag/tag2.js.map +1 -1
- package/dist/textarea/define.js +0 -1
- package/dist/textarea/define.js.map +1 -1
- package/dist/textarea/index.js +1 -2
- package/dist/textarea/textarea.examples.js +1 -2
- package/dist/textarea/textarea.examples.js.map +1 -1
- package/dist/textarea/textarea.js +1 -2
- package/dist/textarea/textarea.js.map +1 -1
- package/dist/textarea/textarea2.js +2 -3
- package/dist/textarea/textarea2.js.map +1 -1
- package/dist/time/define.js +0 -1
- package/dist/time/define.js.map +1 -1
- package/dist/time/index.js +1 -2
- package/dist/time/time.examples.js +1 -2
- package/dist/time/time.examples.js.map +1 -1
- package/dist/time/time.js +1 -2
- package/dist/time/time.js.map +1 -1
- package/dist/time/time2.js +3 -4
- package/dist/time/time2.js.map +1 -1
- package/dist/toast/define.js +1 -2
- package/dist/toast/define.js.map +1 -1
- package/dist/toast/index.js +1 -2
- package/dist/toast/toast.examples.js +1 -2
- package/dist/toast/toast.examples.js.map +1 -1
- package/dist/toast/toast.js +1 -2
- package/dist/toast/toast.js.map +1 -1
- package/dist/toast/toast2.js +3 -4
- package/dist/toast/toast2.js.map +1 -1
- package/dist/toggletip/define.js +0 -1
- package/dist/toggletip/define.js.map +1 -1
- package/dist/toggletip/toggletip-footer.js +1 -2
- package/dist/toggletip/toggletip-footer.js.map +1 -1
- package/dist/toggletip/toggletip-footer2.js +2 -3
- package/dist/toggletip/toggletip-footer2.js.map +1 -1
- package/dist/toggletip/toggletip-header.js +1 -2
- package/dist/toggletip/toggletip-header.js.map +1 -1
- package/dist/toggletip/toggletip-header2.js +2 -3
- package/dist/toggletip/toggletip-header2.js.map +1 -1
- package/dist/toggletip/toggletip.examples.js +1 -2
- package/dist/toggletip/toggletip.examples.js.map +1 -1
- package/dist/toggletip/toggletip.global.js +1 -2
- package/dist/toggletip/toggletip.global.js.map +1 -1
- package/dist/toggletip/toggletip.js +1 -2
- package/dist/toggletip/toggletip.js.map +1 -1
- package/dist/toggletip/toggletip2.js +3 -4
- package/dist/toggletip/toggletip2.js.map +1 -1
- package/dist/toolbar/define.js +1 -2
- package/dist/toolbar/define.js.map +1 -1
- package/dist/toolbar/index.js +1 -2
- package/dist/toolbar/toolbar.examples.js +1 -2
- package/dist/toolbar/toolbar.examples.js.map +1 -1
- package/dist/toolbar/toolbar.js +1 -2
- package/dist/toolbar/toolbar.js.map +1 -1
- package/dist/toolbar/toolbar2.js +3 -4
- package/dist/toolbar/toolbar2.js.map +1 -1
- package/dist/tooltip/define.js +1 -2
- package/dist/tooltip/define.js.map +1 -1
- package/dist/tooltip/index.js +1 -2
- package/dist/tooltip/tooltip.examples.js +1 -2
- package/dist/tooltip/tooltip.examples.js.map +1 -1
- package/dist/tooltip/tooltip.js +1 -2
- package/dist/tooltip/tooltip.js.map +1 -1
- package/dist/tooltip/tooltip2.js +3 -4
- package/dist/tooltip/tooltip2.js.map +1 -1
- package/dist/tree/define.js +0 -1
- package/dist/tree/define.js.map +1 -1
- package/dist/tree/tree-node.js +1 -2
- package/dist/tree/tree-node.js.map +1 -1
- package/dist/tree/tree-node2.js +3 -4
- package/dist/tree/tree-node2.js.map +1 -1
- package/dist/tree/tree.examples.js +1 -2
- package/dist/tree/tree.examples.js.map +1 -1
- package/dist/tree/tree.global.js +1 -2
- package/dist/tree/tree.global.js.map +1 -1
- package/dist/tree/tree.js +1 -2
- package/dist/tree/tree.js.map +1 -1
- package/dist/tree/tree2.js +3 -4
- package/dist/tree/tree2.js.map +1 -1
- package/dist/tree/utils.js +1 -2
- package/dist/tree/utils.js.map +1 -1
- package/dist/week/define.js +0 -1
- package/dist/week/define.js.map +1 -1
- package/dist/week/index.js +1 -2
- package/dist/week/week.examples.js +1 -2
- package/dist/week/week.examples.js.map +1 -1
- package/dist/week/week.js +1 -2
- package/dist/week/week.js.map +1 -1
- package/dist/week/week2.js +3 -4
- package/dist/week/week2.js.map +1 -1
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus.js","names":[],"sources":["../../../src/internal/utils/focus.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function isFocusable(element: Element) {\n return (\n element.matches(\n [\n 'a[href]',\n 'area[href]',\n 'input',\n 'button',\n 'select',\n 'textarea',\n 'iframe',\n 'object',\n 'embed',\n '*[tabindex]',\n '*[contenteditable=true]',\n '[role=button]'\n ].join(',')\n ) &&\n element.matches(':not([disabled], [inert])') &&\n !element.closest(`[inert]`) &&\n !element.closest('[popover]')?.matches(':not(:popover-open)')\n );\n}\n\n/** returns interactive elements that does not require advanced keyboard interactions like arrow/navigation */\nexport function isSimpleFocusable(element: Element) {\n return element.matches(\n [\n 'a[href]',\n 'button:not([disabled])',\n 'input[type=checkbox]',\n 'input[type=radio]',\n 'object',\n 'embed',\n '*[tabindex]',\n '[role=button]:not([disabled])'\n ].join(',')\n );\n}\n\nexport function getActiveElement(root: Document | ShadowRoot = globalThis.document): Element | null {\n if (root.activeElement && root.activeElement.shadowRoot) {\n return getActiveElement(root.activeElement.shadowRoot) ?? root.activeElement;\n } else {\n return root.activeElement;\n }\n}\n\n/** Returns whether an element itself owns focus in its immediate document or shadow root. */\nexport function isImmediateRootActiveElement(element: Element): boolean {\n const root = element.getRootNode();\n return hasActiveElement(root) && root.activeElement === element;\n}\n\nfunction hasActiveElement(root: Node): root is Node & { readonly activeElement: Element | null } {\n return 'activeElement' in root;\n}\n\nexport function focusElement(element: HTMLElement) {\n if (element && !isFocusable(element)) {\n element.setAttribute('tabindex', '-1');\n element.focus();\n element.addEventListener('blur', () => element.removeAttribute('tabindex'), { once: true });\n } else {\n element?.focus();\n }\n}\n\nexport function focusElementTimeout(element: HTMLElement) {\n setTimeout(() => focusElement(element));\n}\n\nexport function setActiveKeyListItem(items: NodeListOf<HTMLElement> | HTMLElement[], item: HTMLElement) {\n items.forEach(i => (i.tabIndex = -1));\n item.tabIndex = 0;\n}\n\nexport function initializeKeyListItems(items: NodeListOf<HTMLElement> | HTMLElement[]) {\n items.forEach(i => (i.tabIndex = -1));\n items[0] && (items[0].tabIndex = 0);\n}\n\n/** determines if user interaction is a valid interaction for activating a listbox type */\nexport function onListboxActivate(\n element: HTMLElement & { disabled?: boolean },\n fn: (event: KeyboardEvent | PointerEvent) => void\n) {\n const validKey = (e: KeyboardEvent) => e.code === 'Space' || e.code === 'ArrowUp' || e.code === 'ArrowDown';\n\n element.addEventListener('pointerdown', (e: PointerEvent) => {\n e.preventDefault();\n });\n\n // Chrome's LightDismissFromClick runs auto-popover light dismiss from click;\n // opening on pointerup can close immediately in the same gesture.\n // https://issues.chromium.org/issues/408010435\n element.addEventListener('click', (e: PointerEvent) => {\n e.preventDefault();\n\n if (!element.disabled) {\n fn(e);\n }\n });\n\n element.addEventListener('keyup', (e: KeyboardEvent) => {\n if (validKey(e) && !element.disabled) {\n fn(e);\n }\n });\n\n element.addEventListener('keydown', (e: KeyboardEvent) => {\n if (validKey(e) && !element.disabled) {\n e.preventDefault();\n }\n });\n}\n"],"mappings":";AAGA,
|
|
1
|
+
{"version":3,"file":"focus.js","names":["isFocusable","element","isSimpleFocusable","getActiveElement","root","isImmediateRootActiveElement","hasActiveElement","focusElement","focusElementTimeout","setActiveKeyListItem","items","initializeKeyListItems","onListboxActivate","validKey","e","fn"],"sources":["../../../src/internal/utils/focus.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function isFocusable(element: Element) {\n return (\n element.matches(\n [\n 'a[href]',\n 'area[href]',\n 'input',\n 'button',\n 'select',\n 'textarea',\n 'iframe',\n 'object',\n 'embed',\n '*[tabindex]',\n '*[contenteditable=true]',\n '[role=button]'\n ].join(',')\n ) &&\n element.matches(':not([disabled], [inert])') &&\n !element.closest(`[inert]`) &&\n !element.closest('[popover]')?.matches(':not(:popover-open)')\n );\n}\n\n/** returns interactive elements that does not require advanced keyboard interactions like arrow/navigation */\nexport function isSimpleFocusable(element: Element) {\n return element.matches(\n [\n 'a[href]',\n 'button:not([disabled])',\n 'input[type=checkbox]',\n 'input[type=radio]',\n 'object',\n 'embed',\n '*[tabindex]',\n '[role=button]:not([disabled])'\n ].join(',')\n );\n}\n\nexport function getActiveElement(root: Document | ShadowRoot = globalThis.document): Element | null {\n if (root.activeElement && root.activeElement.shadowRoot) {\n return getActiveElement(root.activeElement.shadowRoot) ?? root.activeElement;\n } else {\n return root.activeElement;\n }\n}\n\n/** Returns whether an element itself owns focus in its immediate document or shadow root. */\nexport function isImmediateRootActiveElement(element: Element): boolean {\n const root = element.getRootNode();\n return hasActiveElement(root) && root.activeElement === element;\n}\n\nfunction hasActiveElement(root: Node): root is Node & { readonly activeElement: Element | null } {\n return 'activeElement' in root;\n}\n\nexport function focusElement(element: HTMLElement) {\n if (element && !isFocusable(element)) {\n element.setAttribute('tabindex', '-1');\n element.focus();\n element.addEventListener('blur', () => element.removeAttribute('tabindex'), { once: true });\n } else {\n element?.focus();\n }\n}\n\nexport function focusElementTimeout(element: HTMLElement) {\n setTimeout(() => focusElement(element));\n}\n\nexport function setActiveKeyListItem(items: NodeListOf<HTMLElement> | HTMLElement[], item: HTMLElement) {\n items.forEach(i => (i.tabIndex = -1));\n item.tabIndex = 0;\n}\n\nexport function initializeKeyListItems(items: NodeListOf<HTMLElement> | HTMLElement[]) {\n items.forEach(i => (i.tabIndex = -1));\n items[0] && (items[0].tabIndex = 0);\n}\n\n/** determines if user interaction is a valid interaction for activating a listbox type */\nexport function onListboxActivate(\n element: HTMLElement & { disabled?: boolean },\n fn: (event: KeyboardEvent | PointerEvent) => void\n) {\n const validKey = (e: KeyboardEvent) => e.code === 'Space' || e.code === 'ArrowUp' || e.code === 'ArrowDown';\n\n element.addEventListener('pointerdown', (e: PointerEvent) => {\n e.preventDefault();\n });\n\n // Chrome's LightDismissFromClick runs auto-popover light dismiss from click;\n // opening on pointerup can close immediately in the same gesture.\n // https://issues.chromium.org/issues/408010435\n element.addEventListener('click', (e: PointerEvent) => {\n e.preventDefault();\n\n if (!element.disabled) {\n fn(e);\n }\n });\n\n element.addEventListener('keyup', (e: KeyboardEvent) => {\n if (validKey(e) && !element.disabled) {\n fn(e);\n }\n });\n\n element.addEventListener('keydown', (e: KeyboardEvent) => {\n if (validKey(e) && !element.disabled) {\n e.preventDefault();\n }\n });\n}\n"],"mappings":";AAGA,SAAgBA,EAAY,GAAkB;CAC5C,OACEC,EAAQ,QACN,uHAcF,KACAA,EAAQ,QAAQ,2BAA2B,KAC3C,CAACA,EAAQ,QAAQ,SAAS,KAC1B,CAACA,EAAQ,QAAQ,WAAW,CAAC,EAAE,QAAQ,qBAAqB;AAEhE;AAGA,SAAgBC,EAAkB,GAAkB;CAClD,OAAOD,EAAQ,QACb,8HAUF;AACF;AAEA,SAAgBE,EAAiB,IAA8B,WAAW,UAA0B;CAIhG,OAHEC,EAAK,iBAAiBA,EAAK,cAAc,aACpCD,EAAiBC,EAAK,cAAc,UAAU,KAAKA,EAAK,gBAExDA,EAAK;AAEhB;AAGA,SAAgBC,EAA6B,GAA2B;CACtE,IAAMD,IAAOH,EAAQ,YAAY;CACjC,OAAOK,EAAiBF,CAAI,KAAKA,EAAK,kBAAkBH;AAC1D;AAEA,SAASK,EAAiB,GAAuE;CAC/F,OAAO,mBAAmBF;AAC5B;AAEA,SAAgBG,EAAa,GAAsB;CACjD,AAAIN,KAAW,CAACD,EAAYC,CAAO,KACjCA,EAAQ,aAAa,YAAY,IAAI,GACrCA,EAAQ,MAAM,GACdA,EAAQ,iBAAiB,cAAcA,EAAQ,gBAAgB,UAAU,GAAG,EAAE,MAAM,GAAK,CAAC,KAE1FA,GAAS,MAAM;AAEnB;AAEA,SAAgBO,EAAoB,GAAsB;CACxD,iBAAiBD,EAAaN,CAAO,CAAC;AACxC;AAEA,SAAgBQ,EAAqB,GAAgD,GAAmB;CAEtG,AADAC,EAAM,SAAQ,MAAM,EAAE,WAAW,EAAG,GACpC,EAAK,WAAW;AAClB;AAEA,SAAgBC,EAAuB,GAAgD;CAErF,AADAD,EAAM,SAAQ,MAAM,EAAE,WAAW,EAAG,GACpCA,EAAM,OAAO,EAAM,EAAE,CAAC,WAAW;AACnC;AAGA,SAAgBE,EACd,GACA,GACA;CACA,IAAMC,KAAY,MAAqB,EAAE,SAAS,WAAW,EAAE,SAAS,aAAa,EAAE,SAAS;CAuBhG,AArBAZ,EAAQ,iBAAiB,gBAAgB,MAAoB;EAC3D,EAAE,eAAe;CACnB,CAAC,GAKDA,EAAQ,iBAAiB,UAAU,MAAoB;EAGrD,AAFAa,EAAE,eAAe,GAEZb,EAAQ,YACXc,EAAGD,CAAC;CAER,CAAC,GAEDb,EAAQ,iBAAiB,UAAU,MAAqB;EACtD,AAAIY,EAASC,CAAC,KAAK,CAACb,EAAQ,YAC1Bc,EAAGD,CAAC;CAER,CAAC,GAEDb,EAAQ,iBAAiB,YAAY,MAAqB;EACxD,AAAIY,EAASC,CAAC,KAAK,CAACb,EAAQ,YAC1Ba,EAAE,eAAe;CAErB,CAAC;AACH"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { focusElementTimeout as e } from "./focus.js";
|
|
2
2
|
import { clickOutsideElementBounds as t } from "./dom.js";
|
|
3
|
-
|
|
3
|
+
// src/internal/utils/keynav.ts
|
|
4
4
|
function n(e, t, n) {
|
|
5
5
|
e.includes(t.code) && n();
|
|
6
6
|
}
|
|
@@ -12,7 +12,6 @@ function r(n, r) {
|
|
|
12
12
|
!n.element.hidden && t.code === "Escape" && (t.preventDefault(), e(n.focusElement), r());
|
|
13
13
|
}, i);
|
|
14
14
|
}
|
|
15
|
-
//#endregion
|
|
16
15
|
export { r as createLightDismiss, n as onKeys };
|
|
17
16
|
|
|
18
17
|
//# sourceMappingURL=keynav.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keynav.js","names":[],"sources":["../../../src/internal/utils/keynav.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { clickOutsideElementBounds } from './dom.js';\nimport { focusElementTimeout } from './focus.js';\n\nexport function onKeys(events: string[], event: KeyboardEvent, fn: () => void) {\n if (events.includes(event.code)) {\n fn();\n }\n}\n\nexport function createLightDismiss(\n options: { element: HTMLElement; focusElement?: HTMLElement; signal?: AbortSignal },\n fn: () => void\n) {\n const listenerOptions = options.signal ? { signal: options.signal } : undefined;\n\n globalThis.document.addEventListener(\n 'pointerup',\n (e: PointerEvent) => {\n if (\n !options.element.hidden &&\n clickOutsideElementBounds(e, options.element) &&\n clickOutsideElementBounds(e, options.focusElement!)\n ) {\n fn();\n }\n },\n listenerOptions\n );\n\n options.element.addEventListener(\n 'keydown',\n (e: KeyboardEvent) => {\n if (!options.element.hidden && e.code === 'Escape') {\n e.preventDefault();\n focusElementTimeout(options.focusElement!);\n fn();\n }\n },\n listenerOptions\n );\n}\n"],"mappings":";;;AAMA,
|
|
1
|
+
{"version":3,"file":"keynav.js","names":["onKeys","events","event","fn","createLightDismiss","listenerOptions","options","clickOutsideElementBounds","e","focusElementTimeout"],"sources":["../../../src/internal/utils/keynav.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { clickOutsideElementBounds } from './dom.js';\nimport { focusElementTimeout } from './focus.js';\n\nexport function onKeys(events: string[], event: KeyboardEvent, fn: () => void) {\n if (events.includes(event.code)) {\n fn();\n }\n}\n\nexport function createLightDismiss(\n options: { element: HTMLElement; focusElement?: HTMLElement; signal?: AbortSignal },\n fn: () => void\n) {\n const listenerOptions = options.signal ? { signal: options.signal } : undefined;\n\n globalThis.document.addEventListener(\n 'pointerup',\n (e: PointerEvent) => {\n if (\n !options.element.hidden &&\n clickOutsideElementBounds(e, options.element) &&\n clickOutsideElementBounds(e, options.focusElement!)\n ) {\n fn();\n }\n },\n listenerOptions\n );\n\n options.element.addEventListener(\n 'keydown',\n (e: KeyboardEvent) => {\n if (!options.element.hidden && e.code === 'Escape') {\n e.preventDefault();\n focusElementTimeout(options.focusElement!);\n fn();\n }\n },\n listenerOptions\n );\n}\n"],"mappings":";;;AAMA,SAAgBA,EAAO,GAAkB,GAAsB,GAAgB;CAC7E,AAAIC,EAAO,SAASC,EAAM,IAAI,KAC5BC,EAAG;AAEP;AAEA,SAAgBC,EACd,GACA,GACA;CACA,IAAMC,IAAkBC,EAAQ,SAAS,EAAE,QAAQA,EAAQ,OAAO,IAAI,KAAA;CAgBtE,AAdA,WAAW,SAAS,iBAClB,cACC,MAAoB;EACnB,AACE,CAACA,EAAQ,QAAQ,UACjBC,EAA0B,GAAGD,EAAQ,OAAO,KAC5CC,EAA0B,GAAGD,EAAQ,YAAa,KAElDH,EAAG;CAEP,GACAE,CACF,GAEAC,EAAQ,QAAQ,iBACd,YACC,MAAqB;EACpB,AAAI,CAACA,EAAQ,QAAQ,UAAUE,EAAE,SAAS,aACxCA,EAAE,eAAe,GACjBC,EAAoBH,EAAQ,YAAa,GACzCH,EAAG;CAEP,GACAE,CACF;AACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// src/internal/utils/numeric.ts
|
|
2
2
|
function e(e, t) {
|
|
3
3
|
return e !== void 0 && Number.isFinite(e) ? e : t;
|
|
4
4
|
}
|
|
@@ -8,7 +8,6 @@ function t(e, t) {
|
|
|
8
8
|
function n(e, t) {
|
|
9
9
|
return e !== void 0 && Number.isFinite(e) && e > 0 ? e : t;
|
|
10
10
|
}
|
|
11
|
-
//#endregion
|
|
12
11
|
export { e as finiteOr, t as nonnegativeFiniteOr, n as positiveFiniteOr };
|
|
13
12
|
|
|
14
13
|
//# sourceMappingURL=numeric.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"numeric.js","names":[],"sources":["../../../src/internal/utils/numeric.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function finiteOr(value: number | undefined, fallback: number): number {\n return value !== undefined && Number.isFinite(value) ? value : fallback;\n}\n\nexport function nonnegativeFiniteOr(value: number | undefined, fallback: number): number {\n return value !== undefined && Number.isFinite(value) && value >= 0 ? value : fallback;\n}\n\nexport function positiveFiniteOr(value: number | undefined, fallback: number): number {\n return value !== undefined && Number.isFinite(value) && value > 0 ? value : fallback;\n}\n"],"mappings":";AAGA,
|
|
1
|
+
{"version":3,"file":"numeric.js","names":["finiteOr","value","fallback","nonnegativeFiniteOr","positiveFiniteOr"],"sources":["../../../src/internal/utils/numeric.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function finiteOr(value: number | undefined, fallback: number): number {\n return value !== undefined && Number.isFinite(value) ? value : fallback;\n}\n\nexport function nonnegativeFiniteOr(value: number | undefined, fallback: number): number {\n return value !== undefined && Number.isFinite(value) && value >= 0 ? value : fallback;\n}\n\nexport function positiveFiniteOr(value: number | undefined, fallback: number): number {\n return value !== undefined && Number.isFinite(value) && value > 0 ? value : fallback;\n}\n"],"mappings":";AAGA,SAAgBA,EAAS,GAA2B,GAA0B;CAC5E,OAAOC,MAAU,KAAA,KAAa,OAAO,SAASA,CAAK,IAAIA,IAAQC;AACjE;AAEA,SAAgBC,EAAoB,GAA2B,GAA0B;CACvF,OAAOF,MAAU,KAAA,KAAa,OAAO,SAASA,CAAK,KAAKA,KAAS,IAAIA,IAAQC;AAC/E;AAEA,SAAgBE,EAAiB,GAA2B,GAA0B;CACpF,OAAOH,MAAU,KAAA,KAAa,OAAO,SAASA,CAAK,KAAKA,IAAQ,IAAIA,IAAQC;AAC9E"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// src/internal/utils/objects.ts
|
|
2
2
|
function e(e) {
|
|
3
3
|
return !!e && typeof e == "object" && !Array.isArray(e);
|
|
4
4
|
}
|
|
@@ -19,7 +19,6 @@ function n(e) {
|
|
|
19
19
|
function r(e, t) {
|
|
20
20
|
return Math.sign(t - e) * Math.abs(e - t);
|
|
21
21
|
}
|
|
22
|
-
//#endregion
|
|
23
22
|
export { n as formatStandardNumber, r as getDifference, e as isObject, t as parseVersion };
|
|
24
23
|
|
|
25
24
|
//# sourceMappingURL=objects.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"objects.js","names":[],"sources":["../../../src/internal/utils/objects.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function isObject(item: unknown): item is Record<string, unknown> {\n return !!item && typeof item === 'object' && !Array.isArray(item);\n}\n\nexport function parseVersion(version: string) {\n const [major, minor, patch] = version.split('.').map(v => {\n const n = parseInt(v, 10);\n return Number.isNaN(n) ? -1 : n;\n });\n return { major: major ?? -1, minor: minor ?? -1, patch: patch ?? -1 };\n}\n\nexport function formatStandardNumber(number: number) {\n return new Intl.NumberFormat().format(number);\n}\n\nexport function getDifference(minuend: number, subtrahend: number) {\n return Math.sign(subtrahend - minuend) * Math.abs(minuend - subtrahend);\n}\n"],"mappings":";AAGA,
|
|
1
|
+
{"version":3,"file":"objects.js","names":["isObject","item","parseVersion","major","minor","patch","version","n","v","formatStandardNumber","number","getDifference","subtrahend","minuend"],"sources":["../../../src/internal/utils/objects.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function isObject(item: unknown): item is Record<string, unknown> {\n return !!item && typeof item === 'object' && !Array.isArray(item);\n}\n\nexport function parseVersion(version: string) {\n const [major, minor, patch] = version.split('.').map(v => {\n const n = parseInt(v, 10);\n return Number.isNaN(n) ? -1 : n;\n });\n return { major: major ?? -1, minor: minor ?? -1, patch: patch ?? -1 };\n}\n\nexport function formatStandardNumber(number: number) {\n return new Intl.NumberFormat().format(number);\n}\n\nexport function getDifference(minuend: number, subtrahend: number) {\n return Math.sign(subtrahend - minuend) * Math.abs(minuend - subtrahend);\n}\n"],"mappings":";AAGA,SAAgBA,EAAS,GAAgD;CACvE,OAAO,CAAC,CAACC,KAAQ,OAAOA,KAAS,YAAY,CAAC,MAAM,QAAQA,CAAI;AAClE;AAEA,SAAgBC,EAAa,GAAiB;CAC5C,IAAM,CAACC,GAAOC,GAAOC,KAASC,EAAQ,MAAM,GAAG,CAAC,CAAC,KAAI,MAAK;EACxD,IAAMC,IAAI,SAASC,GAAG,EAAE;EACxB,OAAO,OAAO,MAAMD,CAAC,IAAI,KAAKA;CAChC,CAAC;CACD,OAAO;EAAE,OAAOJ,KAAS;EAAI,OAAOC,KAAS;EAAI,OAAOC,KAAS;CAAG;AACtE;AAEA,SAAgBI,EAAqB,GAAgB;CACnD,OAAO,IAAI,KAAK,aAAa,CAAC,CAAC,OAAOC,CAAM;AAC9C;AAEA,SAAgBC,EAAc,GAAiB,GAAoB;CACjE,OAAO,KAAK,KAAKC,IAAaC,CAAO,IAAI,KAAK,IAAIA,IAAUD,CAAU;AACxE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// src/internal/utils/strings.ts
|
|
2
2
|
function e(e) {
|
|
3
3
|
let t = /* @__PURE__ */ new Map([
|
|
4
4
|
[1024 ** 4, "TB"],
|
|
@@ -16,7 +16,6 @@ function t(e) {
|
|
|
16
16
|
}
|
|
17
17
|
var n = "";
|
|
18
18
|
n = "https://nvidia.github.io/elements";
|
|
19
|
-
//#endregion
|
|
20
19
|
export { n as DOCS_URL, e as formatFileSize, t as shiftLeft };
|
|
21
20
|
|
|
22
21
|
//# sourceMappingURL=strings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strings.js","names":[],"sources":["../../../src/internal/utils/strings.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n/** formats a file size in bytes to a human readable string */\nexport function formatFileSize(size: number): string {\n const thresholds = new Map<number, string>([\n [1024 ** 4, 'TB'],\n [1024 ** 3, 'GB'],\n [1024 ** 2, 'MB'],\n [1024 ** 1, 'KB'],\n [1, 'B']\n ]);\n for (const [threshold, unit] of thresholds.entries()) {\n if (size >= threshold) {\n return `${(size / threshold).toFixed(2)} ${unit}`;\n }\n }\n return `0`;\n}\n\n/** removes leading white space for a multiline string */\nexport function shiftLeft(value: string) {\n const shift = value.replace(/^\\n|\\n$/g, '').search(/\\S|$/);\n return value\n .trim()\n .split('\\n')\n .map(line => {\n return line\n .split('')\n .filter((c, i) => i >= shift || c !== ' ')\n .join('');\n })\n .join('\\n');\n}\n\nexport let DOCS_URL = '';\n/* @ts-expect-error -- VITE_BUNDLE_CONFIG is only defined at build time */\nif (!import.meta.env.VITE_BUNDLE_CONFIG) {\n DOCS_URL = 'https://nvidia.github.io/elements';\n}\n"],"mappings":";AAIA,
|
|
1
|
+
{"version":3,"file":"strings.js","names":["formatFileSize","thresholds","threshold","unit","size","shiftLeft","shift","value","line","i","c","DOCS_URL"],"sources":["../../../src/internal/utils/strings.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n/** formats a file size in bytes to a human readable string */\nexport function formatFileSize(size: number): string {\n const thresholds = new Map<number, string>([\n [1024 ** 4, 'TB'],\n [1024 ** 3, 'GB'],\n [1024 ** 2, 'MB'],\n [1024 ** 1, 'KB'],\n [1, 'B']\n ]);\n for (const [threshold, unit] of thresholds.entries()) {\n if (size >= threshold) {\n return `${(size / threshold).toFixed(2)} ${unit}`;\n }\n }\n return `0`;\n}\n\n/** removes leading white space for a multiline string */\nexport function shiftLeft(value: string) {\n const shift = value.replace(/^\\n|\\n$/g, '').search(/\\S|$/);\n return value\n .trim()\n .split('\\n')\n .map(line => {\n return line\n .split('')\n .filter((c, i) => i >= shift || c !== ' ')\n .join('');\n })\n .join('\\n');\n}\n\nexport let DOCS_URL = '';\n/* @ts-expect-error -- VITE_BUNDLE_CONFIG is only defined at build time */\nif (!import.meta.env.VITE_BUNDLE_CONFIG) {\n DOCS_URL = 'https://nvidia.github.io/elements';\n}\n"],"mappings":";AAIA,SAAgBA,EAAe,GAAsB;CACnD,IAAMC,oBAAa,IAAI,IAAoB;EACzC,CAAC,QAAQ,GAAG,IAAI;EAChB,CAAC,QAAQ,GAAG,IAAI;EAChB,CAAC,QAAQ,GAAG,IAAI;EAChB,CAAC,MAAW,IAAI;EAChB,CAAC,GAAG,GAAG;CACT,CAAC;CACD,KAAK,IAAM,CAACC,GAAWC,MAASF,EAAW,QAAQ,GACjD,IAAIG,KAAQF,GACV,OAAO,IAAIE,IAAOF,EAAA,CAAW,QAAQ,CAAC,EAAE,GAAGC;CAG/C,OAAO;AACT;AAGA,SAAgBE,EAAU,GAAe;CACvC,IAAMC,IAAQC,EAAM,QAAQ,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM;CACzD,OAAOA,EACJ,KAAK,CAAC,CACN,MAAM,IAAI,CAAC,CACX,KAAI,MACIC,EACJ,MAAM,EAAE,CAAC,CACT,QAAQ,GAAG,MAAMC,KAAKH,KAASI,MAAM,GAAG,CAAC,CACzC,KAAK,EAAE,CACX,CAAC,CACD,KAAK,IAAI;AACd;AAEA,IAAWC,IAAW;AAGpB,IAAW"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// src/internal/utils/supports.ts
|
|
2
2
|
function e() {
|
|
3
3
|
return globalThis.CSS?.supports?.("position-area", "top") || globalThis.CSS?.supports?.("inset-area", "top");
|
|
4
4
|
}
|
|
@@ -8,7 +8,6 @@ function t() {
|
|
|
8
8
|
function n() {
|
|
9
9
|
return globalThis.CSS?.supports?.("inset-area", "top");
|
|
10
10
|
}
|
|
11
|
-
//#endregion
|
|
12
11
|
export { n as supportsCSSLegacyInsetArea, t as supportsCSSPositionArea, e as supportsNativeCSSAnchorPosition };
|
|
13
12
|
|
|
14
13
|
//# sourceMappingURL=supports.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supports.js","names":[],"sources":["../../../src/internal/utils/supports.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function supportsNativeCSSAnchorPosition() {\n return globalThis.CSS?.supports?.('position-area', 'top') || globalThis.CSS?.supports?.('inset-area', 'top');\n}\n\nexport function supportsCSSPositionArea() {\n return globalThis.CSS?.supports?.('position-area', 'top');\n}\n\nexport function supportsCSSLegacyInsetArea() {\n return globalThis.CSS?.supports?.('inset-area', 'top');\n}\n"],"mappings":";AAGA,
|
|
1
|
+
{"version":3,"file":"supports.js","names":["supportsNativeCSSAnchorPosition","supportsCSSPositionArea","supportsCSSLegacyInsetArea"],"sources":["../../../src/internal/utils/supports.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function supportsNativeCSSAnchorPosition() {\n return globalThis.CSS?.supports?.('position-area', 'top') || globalThis.CSS?.supports?.('inset-area', 'top');\n}\n\nexport function supportsCSSPositionArea() {\n return globalThis.CSS?.supports?.('position-area', 'top');\n}\n\nexport function supportsCSSLegacyInsetArea() {\n return globalThis.CSS?.supports?.('inset-area', 'top');\n}\n"],"mappings":";AAGA,SAAgBA,IAAkC;CAChD,OAAO,WAAW,KAAK,WAAW,iBAAiB,KAAK,KAAK,WAAW,KAAK,WAAW,cAAc,KAAK;AAC7G;AAEA,SAAgBC,IAA0B;CACxC,OAAO,WAAW,KAAK,WAAW,iBAAiB,KAAK;AAC1D;AAEA,SAAgBC,IAA6B;CAC3C,OAAO,WAAW,KAAK,WAAW,cAAc,KAAK;AACvD"}
|
package/dist/joystick/define.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define.js","names":[],"sources":["../../src/joystick/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/foundations/internal/define';\nimport { Joystick } from '@nvidia-elements/core/joystick';\n\ndefine(Joystick);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-joystick': Joystick;\n }\n}\n"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"define.js","names":["define","Joystick"],"sources":["../../src/joystick/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/foundations/internal/define';\nimport { Joystick } from '@nvidia-elements/core/joystick';\n\ndefine(Joystick);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-joystick': Joystick;\n }\n}\n"],"mappings":";;;AAMAA,EAAOC,CAAQ"}
|
package/dist/joystick/index.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { e as Joystick };
|
|
1
|
+
export { Joystick } from "./joystick2.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"joystick.examples.js","names":[],"sources":["../../src/joystick/joystick.examples.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html } from 'lit';\nimport '@nvidia-elements/core/joystick/define.js';\nimport '@nvidia-elements/core/button/define.js';\nimport '@nvidia-elements/core/range/define.js';\n\nexport default { title: 'Elements/Joystick', component: 'nve-joystick' };\n\n/**\n * @summary Select a direction and intensity with a circular movement region. Release the pointer or arrow keys to return to center.\n * @description Both axes use normalized values from -1 to 1. Applications can derive length with Math.hypot(x, y) and angle with Math.atan2(-y, x). This angle uses radians from the rightward direction with counterclockwise positive rotation. Use undefined at neutral. Keep these derived quantities outside the writable value. The angle does not describe the robot's heading.\n */\nexport const Default = {\n render: () => html`<nve-joystick aria-label=\"Movement\"></nve-joystick>`\n};\n\n/**\n * @summary Choose small, medium, or large controls to fit the available space. Each size scales the movement surface and thumb together.\n */\nexport const Size = {\n render: () => html`\n <div nve-layout=\"row gap:lg align:wrap\">\n <nve-joystick aria-label=\"Small movement\" size=\"sm\"></nve-joystick>\n <nve-joystick aria-label=\"Medium movement\" size=\"md\"></nve-joystick>\n <nve-joystick aria-label=\"Large movement\" size=\"lg\"></nve-joystick>\n </div>\n `\n};\n\n/**\n * @summary Overlay a joystick with a translucent background on a checkered scene. Keep the border and thumb at full opacity for contrast.\n * @tags theme\n */\nexport const Opacity = {\n render: () => html`\n <div\n nve-layout=\"row align:center pad:lg\"\n style=\"\n width: 100%;\n min-height: 16rem;\n background: repeating-conic-gradient(\n var(--nve-sys-layer-container-background) 0% 25%,\n var(--nve-sys-layer-canvas-background) 0% 50%\n )\n center / 2rem 2rem;\n \"\n >\n <nve-joystick aria-label=\"Movement\" opacity></nve-joystick>\n </div>\n `\n};\n\n/**\n * @summary Compare circular, square, and single-axis movement regions. Choose a constraint that matches the available commands.\n * @description Circle bounds normalized magnitude to one. Square allows independent full-scale axes and a magnitude of up to Math.SQRT2. Use circle for planar direction and intensity, or square for independent limits such as forward velocity and turning rate. Equally scaled planar velocity axes can produce about 41% greater diagonal speed with square input.\n */\nexport const Constraints = {\n render: () => html`\n <div nve-layout=\"row gap:lg align:wrap\">\n <nve-joystick aria-label=\"Circular movement\"></nve-joystick>\n <nve-joystick aria-label=\"Independent axes\" constraint=\"square\"></nve-joystick>\n <nve-joystick aria-label=\"Turn\" constraint=\"horizontal\"></nve-joystick>\n <nve-joystick aria-label=\"Vertical movement\" constraint=\"vertical\"></nve-joystick>\n </div>\n `\n};\n\n/**\n * @summary Keep the last position after release for persistent target selection. Press Escape during an interaction to return to center.\n */\nexport const Hold = {\n render: () => html`<nve-joystick aria-label=\"Persistent target\" release=\"hold\"></nve-joystick>`\n};\n\n/**\n * @summary Display recorded input without generating control events. Use read-only state for inspection and disabled state for unavailable controls.\n * @description Set readOnly to true before assigning recorded vectors through .value. Use undefined for an absent sample and a zero vector for recorded neutral input. The recording layer captures source, sample time, engagement transitions, and mapping configuration. Preserve its clock during replay and avoid applying input shaping to recorded samples again.\n */\nexport const States = {\n render: () => html`\n <div nve-layout=\"row gap:lg align:wrap\">\n <nve-joystick aria-label=\"Recorded input\" readonly value='{\"x\":0.4,\"y\":-0.6}'></nve-joystick>\n <nve-joystick aria-label=\"Unavailable control\" disabled></nve-joystick>\n </div>\n `\n};\n\n/**\n * @summary Map travel and turn input to body-frame velocities in meters and radians per second. Engage either joystick to update its command axes.\n * @description Input maps to ROS body axes: x-forward, y-left, z-up, with positive yaw counterclockwise. Travel uses square constraints for independent axis limits; use circle to bound normalized translation magnitude. The illustrative maxima are 1 m/s forward, 0.5 m/s lateral, and 1 rad/s yaw. Each control's :state(active) CSS custom state gates its displayed velocity. Interaction events refresh the readouts. The application chooses its limits and publishes the latest command at its own cadence, including while input remains stationary.\n */\nexport const TravelTurn = {\n render: () => html`\n <div id=\"joystick-travel-turn\" nve-layout=\"column gap:lg\">\n <div nve-layout=\"row gap:lg align:wrap\">\n <div nve-layout=\"column gap:sm\">\n <label for=\"joystick-travel\">Travel</label>\n <nve-joystick id=\"joystick-travel\" constraint=\"square\"></nve-joystick>\n <output data-travel style=\"width: 170px\">Released: x 0.00, y 0.00</output>\n </div>\n <div nve-layout=\"column gap:sm\">\n <label for=\"joystick-turn\">Turn</label>\n <nve-joystick id=\"joystick-turn\" constraint=\"horizontal\"></nve-joystick>\n <output data-turn>Released: x 0.00, y 0.00</output>\n </div>\n </div>\n <output data-command>vx 0.00 m/s, vy 0.00 m/s, wz 0.00 rad/s</output>\n </div>\n <script type=\"module\">\n const group = document.querySelector('#joystick-travel-turn');\n const travel = group.querySelector('#joystick-travel');\n const turn = group.querySelector('#joystick-turn');\n const maxForwardMps = 1;\n const maxLateralMps = 0.5;\n const maxYawRadps = 1;\n\n function describe(control) {\n const value = control.value;\n const state = control.matches(':state(active)') ? 'Engaged' : 'Released';\n return state + ': ' + (value ? 'x ' + value.x.toFixed(2) + ', y ' + value.y.toFixed(2) : 'No sample');\n }\n\n function update() {\n group.querySelector('[data-travel]').textContent = describe(travel);\n group.querySelector('[data-turn]').textContent = describe(turn);\n const translation = travel.matches(':state(active)') ? travel.value : undefined;\n const rotation = turn.matches(':state(active)') ? turn.value : undefined;\n const command = {\n vx: -(translation?.y ?? 0) * maxForwardMps,\n vy: -(translation?.x ?? 0) * maxLateralMps,\n wz: -(rotation?.x ?? 0) * maxYawRadps\n };\n group.querySelector('[data-command]').textContent =\n 'vx ' + command.vx.toFixed(2) + ' m/s, vy ' + command.vy.toFixed(2) + ' m/s, wz ' + command.wz.toFixed(2) + ' rad/s';\n }\n\n for (const type of ['input', 'interaction-start', 'interaction-end']) group.addEventListener(type, update);\n await customElements.whenDefined('nve-joystick');\n update();\n </script>\n `\n};\n\n/**\n * @summary Adjust a radial dead zone and response curve before mapping input to commands. Compare the shaped vector with the unchanged joystick value.\n * @description A dead zone of zero and response exponent of one leave circular input unchanged. The dead zone makes neutral easier to select; a larger exponent provides finer control near neutral. The remaining range scales back to full output at the boundary and preserves direction. Shaping produces a separate command vector without rewriting .value. Map it to physical units afterward. Apply filtering in one input layer to avoid processing hardware or recorded samples twice. [ROS joystick parameters](https://github.com/ros-drivers/joystick_drivers/blob/ros2/joy/README.md)\n */\nexport const InputShaping = {\n render: () => html`\n <div id=\"joystick-shaping\" nve-layout=\"column gap:md\">\n <nve-joystick aria-label=\"Movement\" constraint=\"circle\"></nve-joystick>\n <nve-range>\n <label for=\"joystick-deadzone\">Dead zone</label>\n <input id=\"joystick-deadzone\" type=\"range\" min=\"0\" max=\"0.5\" step=\"0.01\" value=\"0\" />\n </nve-range>\n <nve-range>\n <label for=\"joystick-response\">Response exponent</label>\n <input id=\"joystick-response\" type=\"range\" min=\"1\" max=\"3\" step=\"0.1\" value=\"1\" />\n </nve-range>\n <output data-settings>Dead zone 0.00, response 1.0</output>\n <output data-raw>Raw: x 0.00, y 0.00</output>\n <output data-shaped>Shaped: x 0.00, y 0.00</output>\n </div>\n <script type=\"module\">\n const group = document.querySelector('#joystick-shaping');\n const joystick = group.querySelector('nve-joystick');\n const deadzone = group.querySelector('#joystick-deadzone');\n const response = group.querySelector('#joystick-response');\n\n function shape(value, deadzone, exponent) {\n const magnitude = Math.hypot(value.x, value.y);\n if (magnitude <= deadzone) return { x: 0, y: 0 };\n const strength = ((magnitude - deadzone) / (1 - deadzone)) ** exponent;\n return { x: value.x / magnitude * strength, y: value.y / magnitude * strength };\n }\n\n function update() {\n const raw = joystick.value ?? { x: 0, y: 0 };\n const shaped = shape(raw, deadzone.valueAsNumber, response.valueAsNumber);\n group.querySelector('[data-settings]').textContent =\n 'Dead zone ' + deadzone.valueAsNumber.toFixed(2) + ', response ' + response.valueAsNumber.toFixed(1);\n group.querySelector('[data-raw]').textContent = 'Raw: x ' + raw.x.toFixed(2) + ', y ' + raw.y.toFixed(2);\n group.querySelector('[data-shaped]').textContent = 'Shaped: x ' + shaped.x.toFixed(2) + ', y ' + shaped.y.toFixed(2);\n }\n\n group.addEventListener('input', update);\n await customElements.whenDefined('nve-joystick');\n update();\n </script>\n `\n};\n\n/**\n * @summary Submit both axes as separate named fields and restore the declared position with form reset. Use held values when selecting persistent form targets.\n */\nexport const Form = {\n render: () => html`\n <form nve-layout=\"column gap:md\">\n <label for=\"joystick-form\">Target</label>\n <nve-joystick id=\"joystick-form\" name=\"target\" release=\"hold\" value='{\"x\":0.2,\"y\":-0.3}'></nve-joystick>\n <nve-button type=\"reset\">Reset target</nve-button>\n </form>\n `\n};\n\n/**\n * @summary Override joystickPosition through i18n to localize spoken coordinates while keeping built-in position announcements.\n */\nexport const AccessibleFeedback = {\n render: () => html`\n <nve-joystick aria-label=\"Movement\" i18n='{\"joystickPosition\":\"Horizontal {x}, vertical {y}.\"}'></nve-joystick>\n `\n};\n\n/**\n * @summary Supply application announcements with a labeled output. Disable built-in announcements to avoid duplicate feedback.\n */\nexport const ExternalFeedback = {\n render: () => html`\n <div id=\"joystick-external-feedback\" nve-layout=\"column gap:md\">\n <nve-joystick aria-label=\"Target\" announce=\"off\" release=\"hold\"></nve-joystick>\n <output aria-live=\"polite\" aria-atomic=\"true\">Target: X 0, Y 0</output>\n </div>\n <script type=\"module\">\n const root = document.querySelector('#joystick-external-feedback');\n const joystick = root.querySelector('nve-joystick');\n const output = root.querySelector('output');\n joystick.addEventListener('change', () => {\n const value = joystick.value;\n output.textContent = value ? 'Target: X ' + value.x + ', Y ' + value.y : 'No target';\n });\n </script>\n `\n};\n"],"mappings":";AAGA,IAAA,IAAS"}
|
|
1
|
+
{"version":3,"file":"joystick.examples.js","names":["joystick_examples_default"],"sources":["../../src/joystick/joystick.examples.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html } from 'lit';\nimport '@nvidia-elements/core/joystick/define.js';\nimport '@nvidia-elements/core/button/define.js';\nimport '@nvidia-elements/core/range/define.js';\n\nexport default { title: 'Elements/Joystick', component: 'nve-joystick' };\n\n/**\n * @summary Select a direction and intensity with a circular movement region. Release the pointer or arrow keys to return to center.\n * @description Both axes use normalized values from -1 to 1. Applications can derive length with Math.hypot(x, y) and angle with Math.atan2(-y, x). This angle uses radians from the rightward direction with counterclockwise positive rotation. Use undefined at neutral. Keep these derived quantities outside the writable value. The angle does not describe the robot's heading.\n */\nexport const Default = {\n render: () => html`<nve-joystick aria-label=\"Movement\"></nve-joystick>`\n};\n\n/**\n * @summary Choose small, medium, or large controls to fit the available space. Each size scales the movement surface and thumb together.\n */\nexport const Size = {\n render: () => html`\n <div nve-layout=\"row gap:lg align:wrap\">\n <nve-joystick aria-label=\"Small movement\" size=\"sm\"></nve-joystick>\n <nve-joystick aria-label=\"Medium movement\" size=\"md\"></nve-joystick>\n <nve-joystick aria-label=\"Large movement\" size=\"lg\"></nve-joystick>\n </div>\n `\n};\n\n/**\n * @summary Overlay a joystick with a translucent background on a checkered scene. Keep the border and thumb at full opacity for contrast.\n * @tags theme\n */\nexport const Opacity = {\n render: () => html`\n <div\n nve-layout=\"row align:center pad:lg\"\n style=\"\n width: 100%;\n min-height: 16rem;\n background: repeating-conic-gradient(\n var(--nve-sys-layer-container-background) 0% 25%,\n var(--nve-sys-layer-canvas-background) 0% 50%\n )\n center / 2rem 2rem;\n \"\n >\n <nve-joystick aria-label=\"Movement\" opacity></nve-joystick>\n </div>\n `\n};\n\n/**\n * @summary Compare circular, square, and single-axis movement regions. Choose a constraint that matches the available commands.\n * @description Circle bounds normalized magnitude to one. Square allows independent full-scale axes and a magnitude of up to Math.SQRT2. Use circle for planar direction and intensity, or square for independent limits such as forward velocity and turning rate. Equally scaled planar velocity axes can produce about 41% greater diagonal speed with square input.\n */\nexport const Constraints = {\n render: () => html`\n <div nve-layout=\"row gap:lg align:wrap\">\n <nve-joystick aria-label=\"Circular movement\"></nve-joystick>\n <nve-joystick aria-label=\"Independent axes\" constraint=\"square\"></nve-joystick>\n <nve-joystick aria-label=\"Turn\" constraint=\"horizontal\"></nve-joystick>\n <nve-joystick aria-label=\"Vertical movement\" constraint=\"vertical\"></nve-joystick>\n </div>\n `\n};\n\n/**\n * @summary Keep the last position after release for persistent target selection. Press Escape during an interaction to return to center.\n */\nexport const Hold = {\n render: () => html`<nve-joystick aria-label=\"Persistent target\" release=\"hold\"></nve-joystick>`\n};\n\n/**\n * @summary Display recorded input without generating control events. Use read-only state for inspection and disabled state for unavailable controls.\n * @description Set readOnly to true before assigning recorded vectors through .value. Use undefined for an absent sample and a zero vector for recorded neutral input. The recording layer captures source, sample time, engagement transitions, and mapping configuration. Preserve its clock during replay and avoid applying input shaping to recorded samples again.\n */\nexport const States = {\n render: () => html`\n <div nve-layout=\"row gap:lg align:wrap\">\n <nve-joystick aria-label=\"Recorded input\" readonly value='{\"x\":0.4,\"y\":-0.6}'></nve-joystick>\n <nve-joystick aria-label=\"Unavailable control\" disabled></nve-joystick>\n </div>\n `\n};\n\n/**\n * @summary Map travel and turn input to body-frame velocities in meters and radians per second. Engage either joystick to update its command axes.\n * @description Input maps to ROS body axes: x-forward, y-left, z-up, with positive yaw counterclockwise. Travel uses square constraints for independent axis limits; use circle to bound normalized translation magnitude. The illustrative maxima are 1 m/s forward, 0.5 m/s lateral, and 1 rad/s yaw. Each control's :state(active) CSS custom state gates its displayed velocity. Interaction events refresh the readouts. The application chooses its limits and publishes the latest command at its own cadence, including while input remains stationary.\n */\nexport const TravelTurn = {\n render: () => html`\n <div id=\"joystick-travel-turn\" nve-layout=\"column gap:lg\">\n <div nve-layout=\"row gap:lg align:wrap\">\n <div nve-layout=\"column gap:sm\">\n <label for=\"joystick-travel\">Travel</label>\n <nve-joystick id=\"joystick-travel\" constraint=\"square\"></nve-joystick>\n <output data-travel style=\"width: 170px\">Released: x 0.00, y 0.00</output>\n </div>\n <div nve-layout=\"column gap:sm\">\n <label for=\"joystick-turn\">Turn</label>\n <nve-joystick id=\"joystick-turn\" constraint=\"horizontal\"></nve-joystick>\n <output data-turn>Released: x 0.00, y 0.00</output>\n </div>\n </div>\n <output data-command>vx 0.00 m/s, vy 0.00 m/s, wz 0.00 rad/s</output>\n </div>\n <script type=\"module\">\n const group = document.querySelector('#joystick-travel-turn');\n const travel = group.querySelector('#joystick-travel');\n const turn = group.querySelector('#joystick-turn');\n const maxForwardMps = 1;\n const maxLateralMps = 0.5;\n const maxYawRadps = 1;\n\n function describe(control) {\n const value = control.value;\n const state = control.matches(':state(active)') ? 'Engaged' : 'Released';\n return state + ': ' + (value ? 'x ' + value.x.toFixed(2) + ', y ' + value.y.toFixed(2) : 'No sample');\n }\n\n function update() {\n group.querySelector('[data-travel]').textContent = describe(travel);\n group.querySelector('[data-turn]').textContent = describe(turn);\n const translation = travel.matches(':state(active)') ? travel.value : undefined;\n const rotation = turn.matches(':state(active)') ? turn.value : undefined;\n const command = {\n vx: -(translation?.y ?? 0) * maxForwardMps,\n vy: -(translation?.x ?? 0) * maxLateralMps,\n wz: -(rotation?.x ?? 0) * maxYawRadps\n };\n group.querySelector('[data-command]').textContent =\n 'vx ' + command.vx.toFixed(2) + ' m/s, vy ' + command.vy.toFixed(2) + ' m/s, wz ' + command.wz.toFixed(2) + ' rad/s';\n }\n\n for (const type of ['input', 'interaction-start', 'interaction-end']) group.addEventListener(type, update);\n await customElements.whenDefined('nve-joystick');\n update();\n </script>\n `\n};\n\n/**\n * @summary Adjust a radial dead zone and response curve before mapping input to commands. Compare the shaped vector with the unchanged joystick value.\n * @description A dead zone of zero and response exponent of one leave circular input unchanged. The dead zone makes neutral easier to select; a larger exponent provides finer control near neutral. The remaining range scales back to full output at the boundary and preserves direction. Shaping produces a separate command vector without rewriting .value. Map it to physical units afterward. Apply filtering in one input layer to avoid processing hardware or recorded samples twice. [ROS joystick parameters](https://github.com/ros-drivers/joystick_drivers/blob/ros2/joy/README.md)\n */\nexport const InputShaping = {\n render: () => html`\n <div id=\"joystick-shaping\" nve-layout=\"column gap:md\">\n <nve-joystick aria-label=\"Movement\" constraint=\"circle\"></nve-joystick>\n <nve-range>\n <label for=\"joystick-deadzone\">Dead zone</label>\n <input id=\"joystick-deadzone\" type=\"range\" min=\"0\" max=\"0.5\" step=\"0.01\" value=\"0\" />\n </nve-range>\n <nve-range>\n <label for=\"joystick-response\">Response exponent</label>\n <input id=\"joystick-response\" type=\"range\" min=\"1\" max=\"3\" step=\"0.1\" value=\"1\" />\n </nve-range>\n <output data-settings>Dead zone 0.00, response 1.0</output>\n <output data-raw>Raw: x 0.00, y 0.00</output>\n <output data-shaped>Shaped: x 0.00, y 0.00</output>\n </div>\n <script type=\"module\">\n const group = document.querySelector('#joystick-shaping');\n const joystick = group.querySelector('nve-joystick');\n const deadzone = group.querySelector('#joystick-deadzone');\n const response = group.querySelector('#joystick-response');\n\n function shape(value, deadzone, exponent) {\n const magnitude = Math.hypot(value.x, value.y);\n if (magnitude <= deadzone) return { x: 0, y: 0 };\n const strength = ((magnitude - deadzone) / (1 - deadzone)) ** exponent;\n return { x: value.x / magnitude * strength, y: value.y / magnitude * strength };\n }\n\n function update() {\n const raw = joystick.value ?? { x: 0, y: 0 };\n const shaped = shape(raw, deadzone.valueAsNumber, response.valueAsNumber);\n group.querySelector('[data-settings]').textContent =\n 'Dead zone ' + deadzone.valueAsNumber.toFixed(2) + ', response ' + response.valueAsNumber.toFixed(1);\n group.querySelector('[data-raw]').textContent = 'Raw: x ' + raw.x.toFixed(2) + ', y ' + raw.y.toFixed(2);\n group.querySelector('[data-shaped]').textContent = 'Shaped: x ' + shaped.x.toFixed(2) + ', y ' + shaped.y.toFixed(2);\n }\n\n group.addEventListener('input', update);\n await customElements.whenDefined('nve-joystick');\n update();\n </script>\n `\n};\n\n/**\n * @summary Submit both axes as separate named fields and restore the declared position with form reset. Use held values when selecting persistent form targets.\n */\nexport const Form = {\n render: () => html`\n <form nve-layout=\"column gap:md\">\n <label for=\"joystick-form\">Target</label>\n <nve-joystick id=\"joystick-form\" name=\"target\" release=\"hold\" value='{\"x\":0.2,\"y\":-0.3}'></nve-joystick>\n <nve-button type=\"reset\">Reset target</nve-button>\n </form>\n `\n};\n\n/**\n * @summary Override joystickPosition through i18n to localize spoken coordinates while keeping built-in position announcements.\n */\nexport const AccessibleFeedback = {\n render: () => html`\n <nve-joystick aria-label=\"Movement\" i18n='{\"joystickPosition\":\"Horizontal {x}, vertical {y}.\"}'></nve-joystick>\n `\n};\n\n/**\n * @summary Supply application announcements with a labeled output. Disable built-in announcements to avoid duplicate feedback.\n */\nexport const ExternalFeedback = {\n render: () => html`\n <div id=\"joystick-external-feedback\" nve-layout=\"column gap:md\">\n <nve-joystick aria-label=\"Target\" announce=\"off\" release=\"hold\"></nve-joystick>\n <output aria-live=\"polite\" aria-atomic=\"true\">Target: X 0, Y 0</output>\n </div>\n <script type=\"module\">\n const root = document.querySelector('#joystick-external-feedback');\n const joystick = root.querySelector('nve-joystick');\n const output = root.querySelector('output');\n joystick.addEventListener('change', () => {\n const value = joystick.value;\n output.textContent = value ? 'Target: X ' + value.x + ', Y ' + value.y : 'No target';\n });\n </script>\n `\n};\n"],"mappings":";AAGA,IAAAA,IAAS"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
// src/joystick/joystick.css?inline
|
|
2
2
|
var e = ":host{--_size-scale: 1;--width: calc(8.125rem * var(--_size-scale));--height: calc(8.125rem * var(--_size-scale));--background: var(--nve-sys-interaction-background);--opacity: .6;--border: var(--nve-ref-border-width-sm) solid var(--nve-ref-border-color);--thumb-width: calc(var(--nve-ref-size-600) * var(--_size-scale));--thumb-height: calc(var(--nve-ref-size-600) * var(--_size-scale));--thumb-background: var(--nve-sys-text-muted-color);--thumb-border: var(--nve-ref-border-width-sm) solid var(--nve-sys-layer-canvas-background);--_axis-size: calc(3rem * var(--_size-scale));display:inline-block;width:var(--width);height:var(--height);user-select:none}[internal-host]{position:relative;box-sizing:border-box;width:100%;height:100%;border:var(--border);border-radius:50%;cursor:grab}.background{position:absolute;inset:0;z-index:0;border-radius:inherit;background:var(--background);pointer-events:none}:host([opacity]) .background{opacity:var(--opacity)}[internal-host]:before,[internal-host]:after{content:\"\";position:absolute;z-index:1}[internal-host]:before{left:50%;top:0;bottom:0;border-left:var(--nve-ref-border-width-sm) solid var(--nve-ref-border-color)}[internal-host]:after{top:50%;left:0;right:0;border-top:var(--nve-ref-border-width-sm) solid var(--nve-ref-border-color)}.travel{position:absolute;inset:calc(var(--thumb-height) / 2) calc(var(--thumb-width) / 2);z-index:2}.thumb{position:absolute;box-sizing:border-box;width:var(--thumb-width);height:var(--thumb-height);border:var(--thumb-border);border-radius:50%;background:var(--thumb-background);transform:translate(-50%,-50%)}:host([constraint=\"square\"]) [internal-host]{border-radius:var(--nve-ref-border-radius-md)}:host([size=\"sm\"]){--_size-scale: .8}:host([size=\"lg\"]){--_size-scale: 1.2}:host([constraint=\"horizontal\"]){--height: var(--_axis-size)}:host([constraint=\"vertical\"]){--width: var(--_axis-size)}:host([constraint=\"horizontal\"]) [internal-host],:host([constraint=\"vertical\"]) [internal-host]{border-radius:var(--nve-ref-border-radius-md)}:host(:focus-visible){outline:none}:host(:focus-visible) [internal-host]{outline:var(--nve-ref-border-width-md) solid var(--nve-sys-accent-secondary-background);outline-offset:var(--nve-ref-space-xs)}:host(:state(active)){--thumb-background: var(--nve-sys-accent-secondary-background)}:host(:state(active)) [internal-host]{cursor:grabbing}:host([disabled]){--background: var(--nve-sys-interaction-disabled-background);--thumb-background: var(--nve-sys-interaction-disabled-color)}:host([disabled]) [internal-host],:host([readonly]) [internal-host]{cursor:default}.announcement{position:absolute;width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}";
|
|
3
|
-
//#endregion
|
|
4
3
|
export { e as default };
|
|
5
4
|
|
|
6
5
|
//# sourceMappingURL=joystick.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"joystick.js","names":[],"sources":["../../src/joystick/joystick.css?inline"],"sourcesContent":["/* SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. */\n/* SPDX-License-Identifier: Apache-2.0 */\n\n:host {\n --_size-scale: 1;\n --width: calc(8.125rem * var(--_size-scale));\n --height: calc(8.125rem * var(--_size-scale));\n --background: var(--nve-sys-interaction-background);\n --opacity: 0.6;\n --border: var(--nve-ref-border-width-sm) solid var(--nve-ref-border-color);\n --thumb-width: calc(var(--nve-ref-size-600) * var(--_size-scale));\n --thumb-height: calc(var(--nve-ref-size-600) * var(--_size-scale));\n --thumb-background: var(--nve-sys-text-muted-color);\n --thumb-border: var(--nve-ref-border-width-sm) solid var(--nve-sys-layer-canvas-background);\n --_axis-size: calc(3rem * var(--_size-scale));\n display: inline-block;\n width: var(--width);\n height: var(--height);\n user-select: none;\n}\n\n[internal-host] {\n position: relative;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n border: var(--border);\n border-radius: 50%;\n cursor: grab;\n}\n\n.background {\n position: absolute;\n inset: 0;\n z-index: 0;\n border-radius: inherit;\n background: var(--background);\n pointer-events: none;\n}\n\n:host([opacity]) .background {\n opacity: var(--opacity);\n}\n\n[internal-host]::before,\n[internal-host]::after {\n content: '';\n position: absolute;\n z-index: 1;\n}\n\n[internal-host]::before {\n left: 50%;\n top: 0;\n bottom: 0;\n border-left: var(--nve-ref-border-width-sm) solid var(--nve-ref-border-color);\n}\n\n[internal-host]::after {\n top: 50%;\n left: 0;\n right: 0;\n border-top: var(--nve-ref-border-width-sm) solid var(--nve-ref-border-color);\n}\n\n.travel {\n position: absolute;\n inset: calc(var(--thumb-height) / 2) calc(var(--thumb-width) / 2);\n z-index: 2;\n}\n\n.thumb {\n position: absolute;\n box-sizing: border-box;\n width: var(--thumb-width);\n height: var(--thumb-height);\n border: var(--thumb-border);\n border-radius: 50%;\n background: var(--thumb-background);\n transform: translate(-50%, -50%);\n}\n\n:host([constraint='square']) [internal-host] {\n border-radius: var(--nve-ref-border-radius-md);\n}\n\n:host([size='sm']) {\n --_size-scale: 0.8;\n}\n\n:host([size='lg']) {\n --_size-scale: 1.2;\n}\n\n:host([constraint='horizontal']) {\n --height: var(--_axis-size);\n}\n\n:host([constraint='vertical']) {\n --width: var(--_axis-size);\n}\n\n:host([constraint='horizontal']) [internal-host],\n:host([constraint='vertical']) [internal-host] {\n border-radius: var(--nve-ref-border-radius-md);\n}\n\n:host(:focus-visible) {\n outline: none;\n}\n\n:host(:focus-visible) [internal-host] {\n outline: var(--nve-ref-border-width-md) solid var(--nve-sys-accent-secondary-background);\n outline-offset: var(--nve-ref-space-xs);\n}\n\n:host(:state(active)) {\n --thumb-background: var(--nve-sys-accent-secondary-background);\n}\n\n:host(:state(active)) [internal-host] {\n cursor: grabbing;\n}\n\n:host([disabled]) {\n --background: var(--nve-sys-interaction-disabled-background);\n --thumb-background: var(--nve-sys-interaction-disabled-color);\n}\n\n:host([disabled]) [internal-host],\n:host([readonly]) [internal-host] {\n cursor: default;\n}\n\n.announcement {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: 0;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"joystick.js","names":["joystick_default"],"sources":["../../src/joystick/joystick.css?inline"],"sourcesContent":["/* SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. */\n/* SPDX-License-Identifier: Apache-2.0 */\n\n:host {\n --_size-scale: 1;\n --width: calc(8.125rem * var(--_size-scale));\n --height: calc(8.125rem * var(--_size-scale));\n --background: var(--nve-sys-interaction-background);\n --opacity: 0.6;\n --border: var(--nve-ref-border-width-sm) solid var(--nve-ref-border-color);\n --thumb-width: calc(var(--nve-ref-size-600) * var(--_size-scale));\n --thumb-height: calc(var(--nve-ref-size-600) * var(--_size-scale));\n --thumb-background: var(--nve-sys-text-muted-color);\n --thumb-border: var(--nve-ref-border-width-sm) solid var(--nve-sys-layer-canvas-background);\n --_axis-size: calc(3rem * var(--_size-scale));\n display: inline-block;\n width: var(--width);\n height: var(--height);\n user-select: none;\n}\n\n[internal-host] {\n position: relative;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n border: var(--border);\n border-radius: 50%;\n cursor: grab;\n}\n\n.background {\n position: absolute;\n inset: 0;\n z-index: 0;\n border-radius: inherit;\n background: var(--background);\n pointer-events: none;\n}\n\n:host([opacity]) .background {\n opacity: var(--opacity);\n}\n\n[internal-host]::before,\n[internal-host]::after {\n content: '';\n position: absolute;\n z-index: 1;\n}\n\n[internal-host]::before {\n left: 50%;\n top: 0;\n bottom: 0;\n border-left: var(--nve-ref-border-width-sm) solid var(--nve-ref-border-color);\n}\n\n[internal-host]::after {\n top: 50%;\n left: 0;\n right: 0;\n border-top: var(--nve-ref-border-width-sm) solid var(--nve-ref-border-color);\n}\n\n.travel {\n position: absolute;\n inset: calc(var(--thumb-height) / 2) calc(var(--thumb-width) / 2);\n z-index: 2;\n}\n\n.thumb {\n position: absolute;\n box-sizing: border-box;\n width: var(--thumb-width);\n height: var(--thumb-height);\n border: var(--thumb-border);\n border-radius: 50%;\n background: var(--thumb-background);\n transform: translate(-50%, -50%);\n}\n\n:host([constraint='square']) [internal-host] {\n border-radius: var(--nve-ref-border-radius-md);\n}\n\n:host([size='sm']) {\n --_size-scale: 0.8;\n}\n\n:host([size='lg']) {\n --_size-scale: 1.2;\n}\n\n:host([constraint='horizontal']) {\n --height: var(--_axis-size);\n}\n\n:host([constraint='vertical']) {\n --width: var(--_axis-size);\n}\n\n:host([constraint='horizontal']) [internal-host],\n:host([constraint='vertical']) [internal-host] {\n border-radius: var(--nve-ref-border-radius-md);\n}\n\n:host(:focus-visible) {\n outline: none;\n}\n\n:host(:focus-visible) [internal-host] {\n outline: var(--nve-ref-border-width-md) solid var(--nve-sys-accent-secondary-background);\n outline-offset: var(--nve-ref-space-xs);\n}\n\n:host(:state(active)) {\n --thumb-background: var(--nve-sys-accent-secondary-background);\n}\n\n:host(:state(active)) [internal-host] {\n cursor: grabbing;\n}\n\n:host([disabled]) {\n --background: var(--nve-sys-interaction-disabled-background);\n --thumb-background: var(--nve-sys-interaction-disabled-color);\n}\n\n:host([disabled]) [internal-host],\n:host([readonly]) [internal-host] {\n cursor: default;\n}\n\n.announcement {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: 0;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n}\n"],"mappings":""}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { GestureController as e } from "../internal/controllers/gesture.controller.js";
|
|
2
2
|
import { useStyles as t } from "../internal/styles/index.js";
|
|
3
|
-
import n from "../_virtual/_@oxc-project_runtime@0.
|
|
3
|
+
import n from "../_virtual/_@oxc-project_runtime@0.155.0/helpers/esm/decorate.js";
|
|
4
4
|
import r from "./joystick.js";
|
|
5
5
|
import { LitElement as i, html as a, isServer as o } from "lit";
|
|
6
6
|
import { property as s } from "lit/decorators/property.js";
|
|
7
7
|
import { I18nController as c } from "@nvidia-elements/foundations/internal/i18n";
|
|
8
8
|
import { FormControlMixin as l } from "@nvidia-elements/forms/mixins";
|
|
9
9
|
import { styleMap as u } from "lit/directives/style-map.js";
|
|
10
|
-
|
|
10
|
+
// src/joystick/joystick.ts
|
|
11
11
|
var d = {
|
|
12
12
|
joystickPosition: "X {x}, Y {y}.",
|
|
13
13
|
joystickNoPosition: "No position.",
|
|
@@ -38,7 +38,7 @@ var d = {
|
|
|
38
38
|
static {
|
|
39
39
|
this.metadata = {
|
|
40
40
|
tag: "nve-joystick",
|
|
41
|
-
version: "2.20.
|
|
41
|
+
version: "2.20.3",
|
|
42
42
|
valueSchema: {
|
|
43
43
|
type: "object",
|
|
44
44
|
properties: {
|
|
@@ -105,12 +105,12 @@ var d = {
|
|
|
105
105
|
return;
|
|
106
106
|
}
|
|
107
107
|
let t = f[e.key];
|
|
108
|
-
|
|
108
|
+
t && this.#A(e, t) && (e.preventDefault(), this.#s.add(e.key), this.#c || this.#p({
|
|
109
109
|
source: "keyboard",
|
|
110
110
|
changed: !1
|
|
111
111
|
}), this.#c && this.#O(t));
|
|
112
112
|
}, this.#j = (e) => {
|
|
113
|
-
this.#c?.source
|
|
113
|
+
this.#c?.source === "keyboard" && this.#s.delete(e.key) && (e.preventDefault(), this.#s.size || this.#h("release"));
|
|
114
114
|
}, this.#M = () => {
|
|
115
115
|
this.#S(), this.#h("blur"), this.#b();
|
|
116
116
|
}, this.#N = () => {
|
|
@@ -174,7 +174,7 @@ var d = {
|
|
|
174
174
|
} catch {
|
|
175
175
|
return;
|
|
176
176
|
}
|
|
177
|
-
n
|
|
177
|
+
(n === void 0 || m(n) && h(n, this.#f(n))) && (this.#h("reset"), this.value = n);
|
|
178
178
|
}
|
|
179
179
|
_updateFormState() {
|
|
180
180
|
if (!this.name || !this.value) {
|
|
@@ -270,7 +270,7 @@ var d = {
|
|
|
270
270
|
let e = this.#n;
|
|
271
271
|
if (this.#n = void 0, !e || !this.#v) return;
|
|
272
272
|
let t = this.#_(e.value), n = e.kind === "return" ? this.i18n.joystickReturnedToCenter?.replaceAll("{position}", t) : t;
|
|
273
|
-
|
|
273
|
+
n && n !== this.#t && (this.#t = n, this.requestUpdate());
|
|
274
274
|
}, 500)));
|
|
275
275
|
}
|
|
276
276
|
#b() {
|
|
@@ -341,7 +341,6 @@ function m(e) {
|
|
|
341
341
|
function h(e, t) {
|
|
342
342
|
return e !== void 0 && Math.abs(e.x - t.x) < 1e-12 && Math.abs(e.y - t.y) < 1e-12;
|
|
343
343
|
}
|
|
344
|
-
//#endregion
|
|
345
344
|
export { p as Joystick };
|
|
346
345
|
|
|
347
346
|
//# sourceMappingURL=joystick2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"joystick2.js","names":[],"sources":["../../src/joystick/joystick.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, isServer, LitElement, type PropertyValues } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { FormControlMixin } from '@nvidia-elements/forms/mixins';\nimport {\n GestureController,\n useStyles,\n type Gesture,\n type GestureInput,\n type Size\n} from '@nvidia-elements/core/internal';\nimport { I18nController, type I18nDefaults } from '@nvidia-elements/foundations/internal/i18n';\nimport styles from './joystick.css?inline';\n\nexport interface JoystickValue {\n readonly x: number;\n readonly y: number;\n}\n\nexport type JoystickConstraint = 'circle' | 'square' | 'horizontal' | 'vertical';\nexport type JoystickRelease = 'center' | 'hold';\n\nexport interface JoystickInteractionStart {\n readonly source: 'pointer' | 'keyboard';\n}\n\nexport interface JoystickInteractionEnd extends JoystickInteractionStart {\n readonly reason:\n | 'release'\n | 'escape'\n | 'pointer-cancel'\n | 'lost-capture'\n | 'blur'\n | 'hidden'\n | 'disabled'\n | 'readonly'\n | 'configuration-change'\n | 'reset'\n | 'disconnect';\n}\n\ntype Session = JoystickInteractionStart & { pointerId?: number; changed: boolean };\n\nconst i18nDefaults = {\n joystickPosition: 'X {x}, Y {y}.',\n joystickNoPosition: 'No position.',\n joystickInstructions:\n 'Use arrow keys to adjust the enabled axes. Release to return to center. Press Escape to cancel.',\n joystickHoldInstructions:\n 'Use arrow keys to adjust the enabled axes. Release to keep the position. Escape and interruptions return to center.',\n joystickReturnedToCenter: '{position} Returned to center.'\n} satisfies I18nDefaults;\n\nconst directions: Record<string, JoystickValue> = {\n ArrowLeft: { x: -1, y: 0 },\n ArrowRight: { x: 1, y: 0 },\n ArrowUp: { x: 0, y: -1 },\n ArrowDown: { x: 0, y: 1 }\n};\n\n/* eslint-disable jsdoc/no-types -- The metadata analyzer needs the inherited generic value type. */\n/**\n * @element nve-joystick\n * @description A joystick selects a normalized two-axis vector with pointer or keyboard input.\n * Applications own physical units, coordinate frames, input shaping, publishing cadence, recording clocks,\n * command-outcome feedback, and alternative controls when needed.\n *\n * Give each joystick an accessible name with a label, aria-label, or aria-labelledby.\n * Editable controls use the application role to receive two-axis keyboard input.\n * The default accessible description includes both normalized coordinates, keyboard instructions, and release behavior.\n * A locked axis stays at zero; an absent value reads \"No position.\" Disabled and read-only controls omit instructions.\n * Coordinates use up to six decimal places and the document language for number formatting.\n * An explicit aria-description or aria-describedby replaces the default focus description through standard ARIA precedence;\n * it does not disable live announcements.\n * @documentation https://nvidia.github.io/elements/docs/elements/joystick/\n * @since 0.0.0\n * @entrypoint \\@nvidia-elements/core/joystick\n * @property {JoystickValue | undefined} value - The normalized vector: positive x points right and positive y points down, independent of text direction. Assign a complete finite object within the selected constraint. Invalid vectors throw TypeError without replacing the previous value. Programmatic writes do not dispatch input or change events. Use undefined for an absent sample and a zero vector for recorded neutral input. Set readOnly before assigning replay ownership. User input can replace external writes during an interaction.\n * @attribute {string} value - A JSON object containing normalized x and y coordinates.\n * @event input - Dispatched after user input changes the vector, including a return to neutral. Read .value for the current vector. A held position does not generate repeated events. Publish commands at an application-controlled cadence.\n * @event change - Dispatched after a normal interaction completes and produces input. Cancellation sends any necessary neutral input without change.\n * @event interaction-start - Dispatched with the pointer or keyboard source after setting :state(active), including engagement at neutral.\n * @event interaction-end - Dispatched with the source and terminal reason after clearing :state(active). Interruption first sends any necessary neutral input. Reset restores the declared default without value events. Detached events cannot bubble to former ancestors.\n * @cssprop --width\n * @cssprop --height\n * @cssprop --background\n * @cssprop --opacity - Background opacity when the opacity flag is present. Defaults to 0.6. The border, crosshair, thumb, and focus indicator keep their opacity.\n * @cssprop --border\n * @cssprop --thumb-width\n * @cssprop --thumb-height\n * @cssprop --thumb-background\n * @cssprop --thumb-border\n * @stable false\n */\nexport class Joystick extends FormControlMixin<typeof LitElement, JoystickValue>(LitElement) {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-joystick',\n version: '0.0.0',\n valueSchema: {\n type: 'object' as const,\n properties: {\n x: { type: 'number' as const, minimum: -1, maximum: 1 },\n y: { type: 'number' as const, minimum: -1, maximum: 1 }\n },\n required: ['x', 'y'],\n additionalProperties: false\n }\n };\n\n /**\n * Constrains the movement region or selects one axis. Circle limits vector magnitude to one;\n * square permits both axes at full scale and a magnitude of up to Math.SQRT2.\n * With equally scaled planar velocity axes, square corners allow about 41% greater speed.\n * Mixed forward-velocity and turning-rate axes have no common physical magnitude.\n * Changing the constraint projects the current value silently and cancels an active interaction.\n */\n @property({ type: String, reflect: true }) constraint: JoystickConstraint = 'circle';\n\n /** Sets surface and thumb size. At the default font size, sm is 104px, md is 130px, and lg is 156px. */\n @property({ type: String, reflect: true }) size: Size = 'md';\n\n /** Enables background transparency using the --opacity CSS custom property. */\n @property({ type: Boolean, reflect: true }) opacity = false;\n\n /**\n * Determines whether normal release returns to center or holds the final vector.\n * Interrupted interactions return to neutral in either mode. Form reset restores the declared default instead.\n */\n @property({ type: String, reflect: true }) release: JoystickRelease = 'center';\n\n /**\n * Sets the normalized increment for each arrow key press. Repeated presses continue adjusting;\n * releasing the final arrow applies the release behavior. Escape cancels the interaction.\n * Invalid steps fall back to 0.1. Modifier shortcuts and locked-axis directions remain available to the browser.\n */\n @property({ type: Number, attribute: 'keyboard-step' }) keyboardStep = 0.1;\n\n /**\n * Controls automatic position announcements. Focused user input produces polite announcements at most every 500 ms.\n * A quick tap in center mode reports the input coordinates and the return to center.\n * Escape announces the resulting coordinates without a separate cancellation message.\n * Programmatic writes and read-only playback update the description without live announcements.\n * Set off when the application supplies spoken output, the position description on focus remains available.\n */\n @property({ type: String }) announce: 'polite' | 'off' = 'polite';\n\n readonly #i18nController: I18nController<this> = new I18nController(this, i18nDefaults);\n\n /** Enables updating internal string values for internationalization. */\n @property({ type: Object }) i18n = this.#i18nController.i18n;\n\n #announcement = '';\n #pendingFeedback?: { value: JoystickValue; kind: 'position' | 'return' };\n #announcementTimer?: ReturnType<typeof setTimeout>;\n #lastInput?: JoystickValue;\n #writingInput = false;\n\n readonly #gestureController = new GestureController(this, {\n touchAction: () => (this.disabled || this.readOnly ? undefined : 'none'),\n suppressNativeDrag: true\n });\n readonly #keys = new Set<string>();\n #session?: Session;\n #resetting = false;\n #ownsTabIndex = false;\n\n static override get observedAttributes() {\n return [...super.observedAttributes, 'tabindex'];\n }\n\n override attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null) {\n super.attributeChangedCallback(name, oldValue, newValue);\n if (name === 'tabindex') this.#ownsTabIndex = false;\n }\n\n override get disabled(): boolean {\n return super.disabled;\n }\n\n override set disabled(value: boolean | unknown) {\n super.disabled = Boolean(value);\n this.#checkAvailability();\n }\n\n override get readOnly(): boolean {\n return super.readOnly;\n }\n\n override set readOnly(value: boolean | unknown) {\n super.readOnly = Boolean(value);\n this.#checkAvailability();\n }\n\n constructor() {\n super();\n this.value = { x: 0, y: 0 };\n }\n\n connectedCallback() {\n const tabIndex = this.getAttribute('tabindex');\n const ownsTabIndex = this.#ownsTabIndex || tabIndex === null;\n super.connectedCallback();\n // The forms mixin assigns tabindex on connection; keep the caller's focus order.\n if (tabIndex !== null) this.setAttribute('tabindex', tabIndex);\n this.#ownsTabIndex = ownsTabIndex;\n if (this.hasUpdated) this.#gestureController.target = this;\n this.addEventListener('nve-gesture-input', this.#handleGestureInput);\n this.addEventListener('nve-gesture', this.#handleGesture);\n this.addEventListener('keydown', this.#handleKeyDown);\n this.addEventListener('keyup', this.#handleKeyUp);\n this.addEventListener('blur', this.#handleBlur);\n globalThis.window?.addEventListener('blur', this.#handleBlur);\n globalThis.document?.addEventListener('visibilitychange', this.#handleVisibility);\n }\n\n disconnectedCallback() {\n this.#end('disconnect');\n this.#clearFeedback();\n this.removeEventListener('nve-gesture-input', this.#handleGestureInput);\n this.removeEventListener('nve-gesture', this.#handleGesture);\n this.removeEventListener('keydown', this.#handleKeyDown);\n this.removeEventListener('keyup', this.#handleKeyUp);\n this.removeEventListener('blur', this.#handleBlur);\n globalThis.window?.removeEventListener('blur', this.#handleBlur);\n globalThis.document?.removeEventListener('visibilitychange', this.#handleVisibility);\n super.disconnectedCallback();\n }\n\n firstUpdated() {\n this.#gestureController.target = this;\n }\n\n willUpdate(changes: PropertyValues<this>) {\n // Lit SSR converts reactive attributes without invoking the forms mixin callback.\n if (isServer && this.hasAttribute('value')) this._handleAttributeChange('value', this.getAttribute('value'));\n this.#checkAvailability();\n if (this.announce === 'off') this.#clearFeedback();\n if (changes.has('constraint') || changes.has('release') || changes.has('keyboardStep')) {\n this.#end('configuration-change');\n this.#clearFeedback();\n if (this.value) {\n const value = this.#constrain(this.value);\n if (!sameVector(this.value, value)) this.value = value;\n }\n }\n }\n\n updated() {\n if (this.#ownsTabIndex || !this.hasAttribute('tabindex')) {\n this.tabIndex = this.disabled ? -1 : 0;\n this.#ownsTabIndex = true;\n }\n // Editable joysticks own the two-axis keyboard interaction, including release and cancellation.\n this._internals.role = this.disabled || this.readOnly ? 'group' : 'application';\n this._internals.ariaLabel = this.ariaLabel || this.composedLabel || null;\n this._internals.ariaReadOnly = null;\n this._internals.ariaDescription = this.#description;\n }\n\n get #description() {\n const position = this.#describePosition(this.value);\n if (this.disabled || this.readOnly) return position;\n const instructions = this.release === 'hold' ? this.i18n.joystickHoldInstructions : this.i18n.joystickInstructions;\n return `${position} ${instructions}`;\n }\n\n render() {\n const value = this.value ?? { x: 0, y: 0 };\n return html`\n <div internal-host aria-hidden=\"true\">\n <div class=\"background\"></div>\n <div class=\"travel\">\n <div class=\"thumb\" ?hidden=${!this.value} style=${styleMap({ left: `${(value.x + 1) * 50}%`, top: `${(value.y + 1) * 50}%` })}></div>\n </div>\n </div>\n <span class=\"announcement\" role=\"status\" aria-live=${this.announce === 'off' ? 'off' : 'polite'} aria-atomic=\"true\">${this.#announcement}</span>\n `;\n }\n\n override updateValue(value: JoystickValue) {\n // Only project the default assignment; writes from reset listeners still use strict validation.\n const nextValue = this.#resetting && isVector(value) ? this.#constrain(value) : value;\n this.#resetting = false;\n if (nextValue !== undefined && (!isVector(nextValue) || !sameVector(nextValue, this.#constrain(nextValue)))) {\n throw new TypeError('Joystick value must contain finite x and y coordinates within its constraint.');\n }\n super.updateValue(nextValue);\n if (!this.#writingInput) {\n this.#lastInput = undefined;\n this.#clearFeedback();\n }\n }\n\n override reset() {\n this.#end('reset');\n this.#clearFeedback();\n this.#resetting = true;\n try {\n super.reset();\n } finally {\n this.#resetting = false;\n }\n }\n\n override formStateRestoreCallback(state: unknown, _reason?: string) {\n if (typeof state !== 'string') return;\n let value: unknown;\n try {\n value = state === '' ? undefined : JSON.parse(state);\n } catch {\n return;\n }\n if (value !== undefined && (!isVector(value) || !sameVector(value, this.#constrain(value)))) return;\n this.#end('reset');\n this.value = value;\n }\n\n override _updateFormState() {\n if (!this.name || !this.value) {\n this._internals.setFormValue(null, this.valueAsString);\n return;\n }\n const data = new FormData();\n data.set(`${this.name}-x`, `${this.value.x}`);\n data.set(`${this.name}-y`, `${this.value.y}`);\n this._internals.setFormValue(data, this.valueAsString);\n }\n\n #constrain({ x, y }: JoystickValue): JoystickValue {\n const constraint = this.hasUpdated ? this.constraint : (this.getAttribute('constraint') ?? this.constraint);\n if (constraint === 'circle') {\n const length = Math.max(1, Math.hypot(x, y));\n return { x: x / length, y: y / length };\n }\n return {\n x: constraint === 'vertical' ? 0 : Math.max(-1, Math.min(1, x)),\n y: constraint === 'horizontal' ? 0 : Math.max(-1, Math.min(1, y))\n };\n }\n\n #begin(session: Session) {\n this.#session = session;\n this.#lastInput = undefined;\n // A later interaction can report identical text after an empty region.\n this.#announcement = '';\n this.requestUpdate();\n this._internals.states.add('active');\n this.dispatchEvent(\n new CustomEvent<JoystickInteractionStart>('interaction-start', {\n bubbles: true,\n composed: true,\n detail: { source: session.source }\n })\n );\n this.#checkAvailability();\n }\n\n #input(value: JoystickValue) {\n if (sameVector(this.value, value)) return;\n this.#writingInput = true;\n try {\n this.value = value;\n } finally {\n this.#writingInput = false;\n }\n if (this.#session) this.#lastInput = value;\n if (this.#session) this.#session.changed = true;\n this.dispatchInputEvent();\n this.#checkAvailability();\n if (this.#session && this.#lastInput === value) this.#queueFeedback(value, 'position');\n }\n\n #end(reason: JoystickInteractionEnd['reason']) {\n const session = this.#session;\n if (!session) return;\n const lastInput = this.#lastInput;\n this.#session = undefined;\n this.#keys.clear();\n this._internals.states.delete('active');\n this.#releasePointer(session.pointerId);\n if (reason !== 'reset' && (reason !== 'release' || this.release !== 'hold')) {\n this.#input({ x: 0, y: 0 });\n }\n this.#finishFeedback(reason, this.#lastInput ? lastInput : undefined);\n if (reason === 'release' && session.changed) this.dispatchChangeEvent();\n this.dispatchEvent(\n new CustomEvent<JoystickInteractionEnd>('interaction-end', {\n bubbles: true,\n composed: true,\n detail: { source: session.source, reason }\n })\n );\n }\n\n #finishFeedback(reason: JoystickInteractionEnd['reason'], lastInput: JoystickValue | undefined) {\n if (reason === 'escape') {\n if (sameVector(this.value, { x: 0, y: 0 })) this.#queueFeedback({ x: 0, y: 0 }, 'position');\n } else if (reason === 'release' && lastInput) {\n if (this.release === 'hold' && sameVector(this.value, lastInput)) this.#queueFeedback(lastInput, 'position');\n else if (this.release !== 'hold' && sameVector(this.value, { x: 0, y: 0 }))\n this.#queueFeedback(lastInput, 'return');\n } else {\n this.#clearFeedback();\n }\n }\n\n #describePosition(value: JoystickValue | undefined): string {\n if (!value) return this.i18n.joystickNoPosition ?? i18nDefaults.joystickNoPosition;\n let formatter: Intl.NumberFormat;\n const options = { maximumFractionDigits: 6, useGrouping: false };\n try {\n formatter = new Intl.NumberFormat(globalThis.document?.documentElement.lang || undefined, options);\n } catch {\n formatter = new Intl.NumberFormat(undefined, options);\n }\n const format = (number: number) => formatter.format(Number(number.toFixed(6)) || 0);\n return (this.i18n.joystickPosition ?? '').replaceAll('{x}', format(value.x)).replaceAll('{y}', format(value.y));\n }\n\n get #canAnnounce() {\n return (\n this.isConnected &&\n this.matches(':focus') &&\n !this.disabled &&\n !this.readOnly &&\n this.announce !== 'off' &&\n !globalThis.document.hidden\n );\n }\n\n #queueFeedback(value: JoystickValue, kind: 'position' | 'return') {\n if (!this.#canAnnounce) return;\n this.#pendingFeedback = { value, kind };\n if (this.#announcementTimer !== undefined) return;\n this.#announcementTimer = setTimeout(() => {\n this.#announcementTimer = undefined;\n const feedback = this.#pendingFeedback;\n this.#pendingFeedback = undefined;\n if (!feedback || !this.#canAnnounce) return;\n const position = this.#describePosition(feedback.value);\n const message =\n feedback.kind === 'return' ? this.i18n.joystickReturnedToCenter?.replaceAll('{position}', position) : position;\n if (!message || message === this.#announcement) return;\n this.#announcement = message;\n this.requestUpdate();\n }, 500);\n }\n\n #clearFeedback() {\n clearTimeout(this.#announcementTimer);\n this.#announcementTimer = undefined;\n this.#pendingFeedback = undefined;\n if (this.#announcement) {\n this.#announcement = '';\n this.requestUpdate();\n }\n }\n\n #releasePointer(pointerId: number | undefined) {\n if (pointerId === undefined) return;\n if (this.hasPointerCapture(pointerId)) this.releasePointerCapture(pointerId);\n this.#gestureController.target = undefined;\n if (this.isConnected && this.hasUpdated) this.#gestureController.target = this;\n }\n\n #checkAvailability() {\n if (this.disabled || this.readOnly) {\n this.#end(this.disabled ? 'disabled' : 'readonly');\n this.#clearFeedback();\n }\n }\n\n #movePointer(event: PointerEvent) {\n const bounds = this.shadowRoot?.querySelector('.travel')?.getBoundingClientRect();\n if (!bounds || bounds.width <= 0 || bounds.height <= 0) return;\n this.#input(\n this.#constrain({\n x: ((event.clientX - bounds.left) / bounds.width) * 2 - 1,\n y: ((event.clientY - bounds.top) / bounds.height) * 2 - 1\n })\n );\n }\n\n #handleGestureInput = (event: Event) => {\n if (!(event instanceof CustomEvent)) return;\n const input: GestureInput = event.detail;\n this.#checkAvailability();\n if (input.kind === 'pointerdown') {\n this.#startPointer(input);\n } else if (input.kind === 'pointerend' && this.#session?.pointerId === input.event.pointerId) {\n if (!input.interrupted) this.#movePointer(input.event);\n this.#end(input.interrupted ? (input.reason === 'cancel' ? 'pointer-cancel' : 'lost-capture') : 'release');\n }\n };\n\n #startPointer(input: Extract<GestureInput, { kind: 'pointerdown' }>) {\n if (!this.hasUpdated || this.disabled || this.readOnly || this.#session || input.event.button !== 0) return;\n if (!input.claim({ kind: 'drag' })) return;\n input.event.preventDefault();\n // Touch controls can operate together without transferring keyboard focus.\n if (input.event.pointerType !== 'touch') this.focus({ preventScroll: true });\n this.#begin({ source: 'pointer', pointerId: input.event.pointerId, changed: false });\n if (this.#session) this.#movePointer(input.event);\n }\n\n #handleGesture = (event: Event) => {\n if (!(event instanceof CustomEvent)) return;\n const gesture: Gesture<undefined> = event.detail;\n this.#checkAvailability();\n if (gesture.kind === 'drag' && this.#session?.pointerId === gesture.event.pointerId) {\n this.#movePointer(gesture.event);\n }\n };\n\n #handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && this.#session) {\n event.preventDefault();\n this.#end('escape');\n return;\n }\n const direction = directions[event.key];\n if (!direction || !this.#acceptKey(event, direction)) return;\n event.preventDefault();\n this.#keys.add(event.key);\n if (!this.#session) this.#begin({ source: 'keyboard', changed: false });\n if (!this.#session) return;\n this.#moveKey(direction);\n };\n\n #moveKey(direction: JoystickValue) {\n const step = this.#step;\n const value = this.value ?? { x: 0, y: 0 };\n this.#input(\n this.#constrain({\n x: Number((value.x + direction.x * step).toFixed(6)),\n y: Number((value.y + direction.y * step).toFixed(6))\n })\n );\n }\n\n get #step() {\n return Number.isFinite(this.keyboardStep) && this.keyboardStep > 0 && this.keyboardStep <= 1\n ? this.keyboardStep\n : 0.1;\n }\n\n #acceptKey(event: KeyboardEvent, direction: JoystickValue) {\n if (event.altKey || event.ctrlKey || event.metaKey || this.disabled || this.readOnly) return false;\n if (this.#session?.source === 'pointer') return false;\n if (this.constraint === 'horizontal') return direction.y === 0;\n if (this.constraint === 'vertical') return direction.x === 0;\n return true;\n }\n\n #handleKeyUp = (event: KeyboardEvent) => {\n if (this.#session?.source !== 'keyboard' || !this.#keys.delete(event.key)) return;\n event.preventDefault();\n if (!this.#keys.size) this.#end('release');\n };\n\n #handleBlur = () => {\n this.#checkAvailability();\n this.#end('blur');\n this.#clearFeedback();\n };\n #handleVisibility = () => {\n if (globalThis.document.hidden) {\n this.#end('hidden');\n this.#clearFeedback();\n }\n };\n}\n\nfunction isVector(value: unknown): value is JoystickValue {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'x' in value &&\n 'y' in value &&\n typeof value.x === 'number' &&\n typeof value.y === 'number' &&\n Number.isFinite(value.x) &&\n Number.isFinite(value.y) &&\n Object.keys(value).length === 2\n );\n}\n\nfunction sameVector(first: JoystickValue | undefined, second: JoystickValue): boolean {\n return first !== undefined && Math.abs(first.x - second.x) < 1e-12 && Math.abs(first.y - second.y) < 1e-12;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"joystick2.js","names":["styles","_decorate","__decorate","joystick_default","i18nDefaults","directions","Joystick","FormControlMixin","LitElement","useStyles","name","oldValue","newValue","#ownsTabIndex","value","#checkAvailability","#i18nController","I18nController","#announcement","#writingInput","#gestureController","GestureController","#keys","#resetting","#handleGestureInput","event","input","#startPointer","#session","#movePointer","#end","#handleGesture","gesture","#handleKeyDown","direction","#acceptKey","#begin","#moveKey","#handleKeyUp","#handleBlur","#clearFeedback","#handleVisibility","tabIndex","ownsTabIndex","isServer","changes","#constrain","sameVector","#description","position","#describePosition","styleMap","nextValue","isVector","#lastInput","state","data","constraint","length","x","y","session","#queueFeedback","lastInput","#releasePointer","reason","#input","#finishFeedback","formatter","options","format","number","#canAnnounce","#pendingFeedback","#announcementTimer","feedback","message","pointerId","bounds","step","#step","property","first","second"],"sources":["../../src/joystick/joystick.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, isServer, LitElement, type PropertyValues } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { FormControlMixin } from '@nvidia-elements/forms/mixins';\nimport {\n GestureController,\n useStyles,\n type Gesture,\n type GestureInput,\n type Size\n} from '@nvidia-elements/core/internal';\nimport { I18nController, type I18nDefaults } from '@nvidia-elements/foundations/internal/i18n';\nimport styles from './joystick.css?inline';\n\nexport interface JoystickValue {\n readonly x: number;\n readonly y: number;\n}\n\nexport type JoystickConstraint = 'circle' | 'square' | 'horizontal' | 'vertical';\nexport type JoystickRelease = 'center' | 'hold';\n\nexport interface JoystickInteractionStart {\n readonly source: 'pointer' | 'keyboard';\n}\n\nexport interface JoystickInteractionEnd extends JoystickInteractionStart {\n readonly reason:\n | 'release'\n | 'escape'\n | 'pointer-cancel'\n | 'lost-capture'\n | 'blur'\n | 'hidden'\n | 'disabled'\n | 'readonly'\n | 'configuration-change'\n | 'reset'\n | 'disconnect';\n}\n\ntype Session = JoystickInteractionStart & { pointerId?: number; changed: boolean };\n\nconst i18nDefaults = {\n joystickPosition: 'X {x}, Y {y}.',\n joystickNoPosition: 'No position.',\n joystickInstructions:\n 'Use arrow keys to adjust the enabled axes. Release to return to center. Press Escape to cancel.',\n joystickHoldInstructions:\n 'Use arrow keys to adjust the enabled axes. Release to keep the position. Escape and interruptions return to center.',\n joystickReturnedToCenter: '{position} Returned to center.'\n} satisfies I18nDefaults;\n\nconst directions: Record<string, JoystickValue> = {\n ArrowLeft: { x: -1, y: 0 },\n ArrowRight: { x: 1, y: 0 },\n ArrowUp: { x: 0, y: -1 },\n ArrowDown: { x: 0, y: 1 }\n};\n\n/* eslint-disable jsdoc/no-types -- The metadata analyzer needs the inherited generic value type. */\n/**\n * @element nve-joystick\n * @description A joystick selects a normalized two-axis vector with pointer or keyboard input.\n * Applications own physical units, coordinate frames, input shaping, publishing cadence, recording clocks,\n * command-outcome feedback, and alternative controls when needed.\n *\n * Give each joystick an accessible name with a label, aria-label, or aria-labelledby.\n * Editable controls use the application role to receive two-axis keyboard input.\n * The default accessible description includes both normalized coordinates, keyboard instructions, and release behavior.\n * A locked axis stays at zero; an absent value reads \"No position.\" Disabled and read-only controls omit instructions.\n * Coordinates use up to six decimal places and the document language for number formatting.\n * An explicit aria-description or aria-describedby replaces the default focus description through standard ARIA precedence;\n * it does not disable live announcements.\n * @documentation https://nvidia.github.io/elements/docs/elements/joystick/\n * @since 0.0.0\n * @entrypoint \\@nvidia-elements/core/joystick\n * @property {JoystickValue | undefined} value - The normalized vector: positive x points right and positive y points down, independent of text direction. Assign a complete finite object within the selected constraint. Invalid vectors throw TypeError without replacing the previous value. Programmatic writes do not dispatch input or change events. Use undefined for an absent sample and a zero vector for recorded neutral input. Set readOnly before assigning replay ownership. User input can replace external writes during an interaction.\n * @attribute {string} value - A JSON object containing normalized x and y coordinates.\n * @event input - Dispatched after user input changes the vector, including a return to neutral. Read .value for the current vector. A held position does not generate repeated events. Publish commands at an application-controlled cadence.\n * @event change - Dispatched after a normal interaction completes and produces input. Cancellation sends any necessary neutral input without change.\n * @event interaction-start - Dispatched with the pointer or keyboard source after setting :state(active), including engagement at neutral.\n * @event interaction-end - Dispatched with the source and terminal reason after clearing :state(active). Interruption first sends any necessary neutral input. Reset restores the declared default without value events. Detached events cannot bubble to former ancestors.\n * @cssprop --width\n * @cssprop --height\n * @cssprop --background\n * @cssprop --opacity - Background opacity when the opacity flag is present. Defaults to 0.6. The border, crosshair, thumb, and focus indicator keep their opacity.\n * @cssprop --border\n * @cssprop --thumb-width\n * @cssprop --thumb-height\n * @cssprop --thumb-background\n * @cssprop --thumb-border\n * @stable false\n */\nexport class Joystick extends FormControlMixin<typeof LitElement, JoystickValue>(LitElement) {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-joystick',\n version: '0.0.0',\n valueSchema: {\n type: 'object' as const,\n properties: {\n x: { type: 'number' as const, minimum: -1, maximum: 1 },\n y: { type: 'number' as const, minimum: -1, maximum: 1 }\n },\n required: ['x', 'y'],\n additionalProperties: false\n }\n };\n\n /**\n * Constrains the movement region or selects one axis. Circle limits vector magnitude to one;\n * square permits both axes at full scale and a magnitude of up to Math.SQRT2.\n * With equally scaled planar velocity axes, square corners allow about 41% greater speed.\n * Mixed forward-velocity and turning-rate axes have no common physical magnitude.\n * Changing the constraint projects the current value silently and cancels an active interaction.\n */\n @property({ type: String, reflect: true }) constraint: JoystickConstraint = 'circle';\n\n /** Sets surface and thumb size. At the default font size, sm is 104px, md is 130px, and lg is 156px. */\n @property({ type: String, reflect: true }) size: Size = 'md';\n\n /** Enables background transparency using the --opacity CSS custom property. */\n @property({ type: Boolean, reflect: true }) opacity = false;\n\n /**\n * Determines whether normal release returns to center or holds the final vector.\n * Interrupted interactions return to neutral in either mode. Form reset restores the declared default instead.\n */\n @property({ type: String, reflect: true }) release: JoystickRelease = 'center';\n\n /**\n * Sets the normalized increment for each arrow key press. Repeated presses continue adjusting;\n * releasing the final arrow applies the release behavior. Escape cancels the interaction.\n * Invalid steps fall back to 0.1. Modifier shortcuts and locked-axis directions remain available to the browser.\n */\n @property({ type: Number, attribute: 'keyboard-step' }) keyboardStep = 0.1;\n\n /**\n * Controls automatic position announcements. Focused user input produces polite announcements at most every 500 ms.\n * A quick tap in center mode reports the input coordinates and the return to center.\n * Escape announces the resulting coordinates without a separate cancellation message.\n * Programmatic writes and read-only playback update the description without live announcements.\n * Set off when the application supplies spoken output, the position description on focus remains available.\n */\n @property({ type: String }) announce: 'polite' | 'off' = 'polite';\n\n readonly #i18nController: I18nController<this> = new I18nController(this, i18nDefaults);\n\n /** Enables updating internal string values for internationalization. */\n @property({ type: Object }) i18n = this.#i18nController.i18n;\n\n #announcement = '';\n #pendingFeedback?: { value: JoystickValue; kind: 'position' | 'return' };\n #announcementTimer?: ReturnType<typeof setTimeout>;\n #lastInput?: JoystickValue;\n #writingInput = false;\n\n readonly #gestureController = new GestureController(this, {\n touchAction: () => (this.disabled || this.readOnly ? undefined : 'none'),\n suppressNativeDrag: true\n });\n readonly #keys = new Set<string>();\n #session?: Session;\n #resetting = false;\n #ownsTabIndex = false;\n\n static override get observedAttributes() {\n return [...super.observedAttributes, 'tabindex'];\n }\n\n override attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null) {\n super.attributeChangedCallback(name, oldValue, newValue);\n if (name === 'tabindex') this.#ownsTabIndex = false;\n }\n\n override get disabled(): boolean {\n return super.disabled;\n }\n\n override set disabled(value: boolean | unknown) {\n super.disabled = Boolean(value);\n this.#checkAvailability();\n }\n\n override get readOnly(): boolean {\n return super.readOnly;\n }\n\n override set readOnly(value: boolean | unknown) {\n super.readOnly = Boolean(value);\n this.#checkAvailability();\n }\n\n constructor() {\n super();\n this.value = { x: 0, y: 0 };\n }\n\n connectedCallback() {\n const tabIndex = this.getAttribute('tabindex');\n const ownsTabIndex = this.#ownsTabIndex || tabIndex === null;\n super.connectedCallback();\n // The forms mixin assigns tabindex on connection; keep the caller's focus order.\n if (tabIndex !== null) this.setAttribute('tabindex', tabIndex);\n this.#ownsTabIndex = ownsTabIndex;\n if (this.hasUpdated) this.#gestureController.target = this;\n this.addEventListener('nve-gesture-input', this.#handleGestureInput);\n this.addEventListener('nve-gesture', this.#handleGesture);\n this.addEventListener('keydown', this.#handleKeyDown);\n this.addEventListener('keyup', this.#handleKeyUp);\n this.addEventListener('blur', this.#handleBlur);\n globalThis.window?.addEventListener('blur', this.#handleBlur);\n globalThis.document?.addEventListener('visibilitychange', this.#handleVisibility);\n }\n\n disconnectedCallback() {\n this.#end('disconnect');\n this.#clearFeedback();\n this.removeEventListener('nve-gesture-input', this.#handleGestureInput);\n this.removeEventListener('nve-gesture', this.#handleGesture);\n this.removeEventListener('keydown', this.#handleKeyDown);\n this.removeEventListener('keyup', this.#handleKeyUp);\n this.removeEventListener('blur', this.#handleBlur);\n globalThis.window?.removeEventListener('blur', this.#handleBlur);\n globalThis.document?.removeEventListener('visibilitychange', this.#handleVisibility);\n super.disconnectedCallback();\n }\n\n firstUpdated() {\n this.#gestureController.target = this;\n }\n\n willUpdate(changes: PropertyValues<this>) {\n // Lit SSR converts reactive attributes without invoking the forms mixin callback.\n if (isServer && this.hasAttribute('value')) this._handleAttributeChange('value', this.getAttribute('value'));\n this.#checkAvailability();\n if (this.announce === 'off') this.#clearFeedback();\n if (changes.has('constraint') || changes.has('release') || changes.has('keyboardStep')) {\n this.#end('configuration-change');\n this.#clearFeedback();\n if (this.value) {\n const value = this.#constrain(this.value);\n if (!sameVector(this.value, value)) this.value = value;\n }\n }\n }\n\n updated() {\n if (this.#ownsTabIndex || !this.hasAttribute('tabindex')) {\n this.tabIndex = this.disabled ? -1 : 0;\n this.#ownsTabIndex = true;\n }\n // Editable joysticks own the two-axis keyboard interaction, including release and cancellation.\n this._internals.role = this.disabled || this.readOnly ? 'group' : 'application';\n this._internals.ariaLabel = this.ariaLabel || this.composedLabel || null;\n this._internals.ariaReadOnly = null;\n this._internals.ariaDescription = this.#description;\n }\n\n get #description() {\n const position = this.#describePosition(this.value);\n if (this.disabled || this.readOnly) return position;\n const instructions = this.release === 'hold' ? this.i18n.joystickHoldInstructions : this.i18n.joystickInstructions;\n return `${position} ${instructions}`;\n }\n\n render() {\n const value = this.value ?? { x: 0, y: 0 };\n return html`\n <div internal-host aria-hidden=\"true\">\n <div class=\"background\"></div>\n <div class=\"travel\">\n <div class=\"thumb\" ?hidden=${!this.value} style=${styleMap({ left: `${(value.x + 1) * 50}%`, top: `${(value.y + 1) * 50}%` })}></div>\n </div>\n </div>\n <span class=\"announcement\" role=\"status\" aria-live=${this.announce === 'off' ? 'off' : 'polite'} aria-atomic=\"true\">${this.#announcement}</span>\n `;\n }\n\n override updateValue(value: JoystickValue) {\n // Only project the default assignment; writes from reset listeners still use strict validation.\n const nextValue = this.#resetting && isVector(value) ? this.#constrain(value) : value;\n this.#resetting = false;\n if (nextValue !== undefined && (!isVector(nextValue) || !sameVector(nextValue, this.#constrain(nextValue)))) {\n throw new TypeError('Joystick value must contain finite x and y coordinates within its constraint.');\n }\n super.updateValue(nextValue);\n if (!this.#writingInput) {\n this.#lastInput = undefined;\n this.#clearFeedback();\n }\n }\n\n override reset() {\n this.#end('reset');\n this.#clearFeedback();\n this.#resetting = true;\n try {\n super.reset();\n } finally {\n this.#resetting = false;\n }\n }\n\n override formStateRestoreCallback(state: unknown, _reason?: string) {\n if (typeof state !== 'string') return;\n let value: unknown;\n try {\n value = state === '' ? undefined : JSON.parse(state);\n } catch {\n return;\n }\n if (value !== undefined && (!isVector(value) || !sameVector(value, this.#constrain(value)))) return;\n this.#end('reset');\n this.value = value;\n }\n\n override _updateFormState() {\n if (!this.name || !this.value) {\n this._internals.setFormValue(null, this.valueAsString);\n return;\n }\n const data = new FormData();\n data.set(`${this.name}-x`, `${this.value.x}`);\n data.set(`${this.name}-y`, `${this.value.y}`);\n this._internals.setFormValue(data, this.valueAsString);\n }\n\n #constrain({ x, y }: JoystickValue): JoystickValue {\n const constraint = this.hasUpdated ? this.constraint : (this.getAttribute('constraint') ?? this.constraint);\n if (constraint === 'circle') {\n const length = Math.max(1, Math.hypot(x, y));\n return { x: x / length, y: y / length };\n }\n return {\n x: constraint === 'vertical' ? 0 : Math.max(-1, Math.min(1, x)),\n y: constraint === 'horizontal' ? 0 : Math.max(-1, Math.min(1, y))\n };\n }\n\n #begin(session: Session) {\n this.#session = session;\n this.#lastInput = undefined;\n // A later interaction can report identical text after an empty region.\n this.#announcement = '';\n this.requestUpdate();\n this._internals.states.add('active');\n this.dispatchEvent(\n new CustomEvent<JoystickInteractionStart>('interaction-start', {\n bubbles: true,\n composed: true,\n detail: { source: session.source }\n })\n );\n this.#checkAvailability();\n }\n\n #input(value: JoystickValue) {\n if (sameVector(this.value, value)) return;\n this.#writingInput = true;\n try {\n this.value = value;\n } finally {\n this.#writingInput = false;\n }\n if (this.#session) this.#lastInput = value;\n if (this.#session) this.#session.changed = true;\n this.dispatchInputEvent();\n this.#checkAvailability();\n if (this.#session && this.#lastInput === value) this.#queueFeedback(value, 'position');\n }\n\n #end(reason: JoystickInteractionEnd['reason']) {\n const session = this.#session;\n if (!session) return;\n const lastInput = this.#lastInput;\n this.#session = undefined;\n this.#keys.clear();\n this._internals.states.delete('active');\n this.#releasePointer(session.pointerId);\n if (reason !== 'reset' && (reason !== 'release' || this.release !== 'hold')) {\n this.#input({ x: 0, y: 0 });\n }\n this.#finishFeedback(reason, this.#lastInput ? lastInput : undefined);\n if (reason === 'release' && session.changed) this.dispatchChangeEvent();\n this.dispatchEvent(\n new CustomEvent<JoystickInteractionEnd>('interaction-end', {\n bubbles: true,\n composed: true,\n detail: { source: session.source, reason }\n })\n );\n }\n\n #finishFeedback(reason: JoystickInteractionEnd['reason'], lastInput: JoystickValue | undefined) {\n if (reason === 'escape') {\n if (sameVector(this.value, { x: 0, y: 0 })) this.#queueFeedback({ x: 0, y: 0 }, 'position');\n } else if (reason === 'release' && lastInput) {\n if (this.release === 'hold' && sameVector(this.value, lastInput)) this.#queueFeedback(lastInput, 'position');\n else if (this.release !== 'hold' && sameVector(this.value, { x: 0, y: 0 }))\n this.#queueFeedback(lastInput, 'return');\n } else {\n this.#clearFeedback();\n }\n }\n\n #describePosition(value: JoystickValue | undefined): string {\n if (!value) return this.i18n.joystickNoPosition ?? i18nDefaults.joystickNoPosition;\n let formatter: Intl.NumberFormat;\n const options = { maximumFractionDigits: 6, useGrouping: false };\n try {\n formatter = new Intl.NumberFormat(globalThis.document?.documentElement.lang || undefined, options);\n } catch {\n formatter = new Intl.NumberFormat(undefined, options);\n }\n const format = (number: number) => formatter.format(Number(number.toFixed(6)) || 0);\n return (this.i18n.joystickPosition ?? '').replaceAll('{x}', format(value.x)).replaceAll('{y}', format(value.y));\n }\n\n get #canAnnounce() {\n return (\n this.isConnected &&\n this.matches(':focus') &&\n !this.disabled &&\n !this.readOnly &&\n this.announce !== 'off' &&\n !globalThis.document.hidden\n );\n }\n\n #queueFeedback(value: JoystickValue, kind: 'position' | 'return') {\n if (!this.#canAnnounce) return;\n this.#pendingFeedback = { value, kind };\n if (this.#announcementTimer !== undefined) return;\n this.#announcementTimer = setTimeout(() => {\n this.#announcementTimer = undefined;\n const feedback = this.#pendingFeedback;\n this.#pendingFeedback = undefined;\n if (!feedback || !this.#canAnnounce) return;\n const position = this.#describePosition(feedback.value);\n const message =\n feedback.kind === 'return' ? this.i18n.joystickReturnedToCenter?.replaceAll('{position}', position) : position;\n if (!message || message === this.#announcement) return;\n this.#announcement = message;\n this.requestUpdate();\n }, 500);\n }\n\n #clearFeedback() {\n clearTimeout(this.#announcementTimer);\n this.#announcementTimer = undefined;\n this.#pendingFeedback = undefined;\n if (this.#announcement) {\n this.#announcement = '';\n this.requestUpdate();\n }\n }\n\n #releasePointer(pointerId: number | undefined) {\n if (pointerId === undefined) return;\n if (this.hasPointerCapture(pointerId)) this.releasePointerCapture(pointerId);\n this.#gestureController.target = undefined;\n if (this.isConnected && this.hasUpdated) this.#gestureController.target = this;\n }\n\n #checkAvailability() {\n if (this.disabled || this.readOnly) {\n this.#end(this.disabled ? 'disabled' : 'readonly');\n this.#clearFeedback();\n }\n }\n\n #movePointer(event: PointerEvent) {\n const bounds = this.shadowRoot?.querySelector('.travel')?.getBoundingClientRect();\n if (!bounds || bounds.width <= 0 || bounds.height <= 0) return;\n this.#input(\n this.#constrain({\n x: ((event.clientX - bounds.left) / bounds.width) * 2 - 1,\n y: ((event.clientY - bounds.top) / bounds.height) * 2 - 1\n })\n );\n }\n\n #handleGestureInput = (event: Event) => {\n if (!(event instanceof CustomEvent)) return;\n const input: GestureInput = event.detail;\n this.#checkAvailability();\n if (input.kind === 'pointerdown') {\n this.#startPointer(input);\n } else if (input.kind === 'pointerend' && this.#session?.pointerId === input.event.pointerId) {\n if (!input.interrupted) this.#movePointer(input.event);\n this.#end(input.interrupted ? (input.reason === 'cancel' ? 'pointer-cancel' : 'lost-capture') : 'release');\n }\n };\n\n #startPointer(input: Extract<GestureInput, { kind: 'pointerdown' }>) {\n if (!this.hasUpdated || this.disabled || this.readOnly || this.#session || input.event.button !== 0) return;\n if (!input.claim({ kind: 'drag' })) return;\n input.event.preventDefault();\n // Touch controls can operate together without transferring keyboard focus.\n if (input.event.pointerType !== 'touch') this.focus({ preventScroll: true });\n this.#begin({ source: 'pointer', pointerId: input.event.pointerId, changed: false });\n if (this.#session) this.#movePointer(input.event);\n }\n\n #handleGesture = (event: Event) => {\n if (!(event instanceof CustomEvent)) return;\n const gesture: Gesture<undefined> = event.detail;\n this.#checkAvailability();\n if (gesture.kind === 'drag' && this.#session?.pointerId === gesture.event.pointerId) {\n this.#movePointer(gesture.event);\n }\n };\n\n #handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && this.#session) {\n event.preventDefault();\n this.#end('escape');\n return;\n }\n const direction = directions[event.key];\n if (!direction || !this.#acceptKey(event, direction)) return;\n event.preventDefault();\n this.#keys.add(event.key);\n if (!this.#session) this.#begin({ source: 'keyboard', changed: false });\n if (!this.#session) return;\n this.#moveKey(direction);\n };\n\n #moveKey(direction: JoystickValue) {\n const step = this.#step;\n const value = this.value ?? { x: 0, y: 0 };\n this.#input(\n this.#constrain({\n x: Number((value.x + direction.x * step).toFixed(6)),\n y: Number((value.y + direction.y * step).toFixed(6))\n })\n );\n }\n\n get #step() {\n return Number.isFinite(this.keyboardStep) && this.keyboardStep > 0 && this.keyboardStep <= 1\n ? this.keyboardStep\n : 0.1;\n }\n\n #acceptKey(event: KeyboardEvent, direction: JoystickValue) {\n if (event.altKey || event.ctrlKey || event.metaKey || this.disabled || this.readOnly) return false;\n if (this.#session?.source === 'pointer') return false;\n if (this.constraint === 'horizontal') return direction.y === 0;\n if (this.constraint === 'vertical') return direction.x === 0;\n return true;\n }\n\n #handleKeyUp = (event: KeyboardEvent) => {\n if (this.#session?.source !== 'keyboard' || !this.#keys.delete(event.key)) return;\n event.preventDefault();\n if (!this.#keys.size) this.#end('release');\n };\n\n #handleBlur = () => {\n this.#checkAvailability();\n this.#end('blur');\n this.#clearFeedback();\n };\n #handleVisibility = () => {\n if (globalThis.document.hidden) {\n this.#end('hidden');\n this.#clearFeedback();\n }\n };\n}\n\nfunction isVector(value: unknown): value is JoystickValue {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'x' in value &&\n 'y' in value &&\n typeof value.x === 'number' &&\n typeof value.y === 'number' &&\n Number.isFinite(value.x) &&\n Number.isFinite(value.y) &&\n Object.keys(value).length === 2\n );\n}\n\nfunction sameVector(first: JoystickValue | undefined, second: JoystickValue): boolean {\n return first !== undefined && Math.abs(first.x - second.x) < 1e-12 && Math.abs(first.y - second.y) < 1e-12;\n}\n"],"mappings":"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"}
|
package/dist/logo/define.js
CHANGED
package/dist/logo/define.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define.js","names":[],"sources":["../../src/logo/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/foundations/internal/define';\nimport { Logo } from '@nvidia-elements/core/logo';\n\ndefine(Logo);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-logo': Logo;\n }\n}\n"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"define.js","names":["define","Logo"],"sources":["../../src/logo/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/foundations/internal/define';\nimport { Logo } from '@nvidia-elements/core/logo';\n\ndefine(Logo);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-logo': Logo;\n }\n}\n"],"mappings":";;;AAMAA,EAAOC,CAAI"}
|
package/dist/logo/index.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { e as Logo };
|
|
1
|
+
export { Logo } from "./logo2.js";
|