@siemens/ix 4.2.0 → 4.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/READMEOSS.html +1 -1
- package/components/index.js +26 -2
- package/components/index.js.map +1 -1
- package/components/ix-action-card.js +9 -4
- package/components/ix-action-card.js.map +1 -1
- package/components/ix-application-header.js +24 -16
- package/components/ix-application-header.js.map +1 -1
- package/components/ix-application-switch-modal.js +6 -6
- package/components/ix-avatar.js +1 -1
- package/components/ix-blind.js +1 -1
- package/components/ix-breadcrumb-item.js +1 -1
- package/components/ix-breadcrumb.js +16 -8
- package/components/ix-breadcrumb.js.map +1 -1
- package/components/ix-button.js +1 -1
- package/components/ix-card-list.js +5 -5
- package/components/ix-card.js +1 -1
- package/components/ix-category-filter.js +20 -12
- package/components/ix-category-filter.js.map +1 -1
- package/components/ix-checkbox-group.js +4 -4
- package/components/ix-checkbox.js +1 -1
- package/components/ix-chip.js +4 -4
- package/components/ix-content-header.js +3 -3
- package/components/ix-custom-field.js +4 -4
- package/components/ix-date-dropdown.js +21 -13
- package/components/ix-date-dropdown.js.map +1 -1
- package/components/ix-date-input.js +21 -13
- package/components/ix-date-input.js.map +1 -1
- package/components/ix-date-picker.js +1 -1
- package/components/ix-datetime-picker.js +9 -9
- package/components/ix-drawer.js +8 -8
- package/components/ix-drawer.js.map +1 -1
- package/components/ix-dropdown-button.js +20 -8
- package/components/ix-dropdown-button.js.map +1 -1
- package/components/ix-dropdown-header.js +2 -2
- package/components/ix-dropdown-item.js +1 -1
- package/components/ix-dropdown-quick-actions.js +1 -1
- package/components/ix-dropdown.js +1 -1
- package/components/ix-empty-state.js +4 -4
- package/components/ix-event-list-item.js +4 -4
- package/components/ix-event-list.js +2 -2
- package/components/ix-expanding-search.js +6 -6
- package/components/ix-field-label.js +1 -1
- package/components/ix-field-wrapper.js +1 -1
- package/components/ix-filter-chip.js +1 -1
- package/components/ix-flip-tile-content.js +1 -1
- package/components/ix-flip-tile.js +5 -5
- package/components/ix-group-context-menu.js +1 -1
- package/components/ix-group.js +11 -11
- package/components/ix-helper-text.js +2 -2
- package/components/ix-icon-button.js +1 -1
- package/components/ix-icon-toggle-button.js +3 -3
- package/components/ix-input-group.js +1 -1
- package/components/ix-input.js +10 -10
- package/components/ix-key-value-list.js +1 -1
- package/components/ix-key-value.js +1 -1
- package/components/ix-kpi.js +3 -3
- package/components/ix-layout-auto.js +1 -1
- package/components/ix-layout-grid.js +1 -1
- package/components/ix-link-button.js +3 -3
- package/components/ix-menu-about-item.js +1 -1
- package/components/ix-menu-about-news.js +8 -8
- package/components/ix-menu-about.js +11 -6
- package/components/ix-menu-about.js.map +1 -1
- package/components/ix-menu-avatar-item.js +1 -1
- package/components/ix-menu-avatar.js +30 -10
- package/components/ix-menu-avatar.js.map +1 -1
- package/components/ix-menu-category.js +11 -11
- package/components/ix-menu-category.js.map +1 -1
- package/components/ix-menu-expand-icon.js +1 -1
- package/components/ix-menu-item.js +1 -1
- package/components/ix-menu-settings-item.js +1 -1
- package/components/ix-menu-settings.js +1 -1
- package/components/ix-menu.js +51 -21
- package/components/ix-menu.js.map +1 -1
- package/components/ix-message-bar.js +4 -4
- package/components/ix-message-bar.js.map +1 -1
- package/components/ix-modal-content.js +1 -1
- package/components/ix-modal-footer.js +1 -1
- package/components/ix-modal-header.js +1 -1
- package/components/ix-modal-loading.js +2 -2
- package/components/ix-modal.js +5 -7
- package/components/ix-modal.js.map +1 -1
- package/components/ix-number-input.js +11 -11
- package/components/ix-pagination.js +15 -15
- package/components/ix-pane-layout.js +2 -1
- package/components/ix-pane-layout.js.map +1 -1
- package/components/ix-pane.js +9 -9
- package/components/ix-pill.js +6 -6
- package/components/ix-progress-indicator.js +5 -5
- package/components/ix-push-card.js +9 -4
- package/components/ix-push-card.js.map +1 -1
- package/components/ix-radio-group.js +6 -6
- package/components/ix-radio.js +4 -4
- package/components/ix-row.js +1 -1
- package/components/ix-select-item.js +1 -1
- package/components/ix-select.js +1 -1
- package/components/ix-slider.js +111 -30
- package/components/ix-slider.js.map +1 -1
- package/components/ix-spinner.js +1 -1
- package/components/ix-split-button.js +13 -5
- package/components/ix-split-button.js.map +1 -1
- package/components/ix-tab-item.js +1 -1
- package/components/ix-tabs.js +1 -1
- package/components/ix-textarea.js +6 -6
- package/components/ix-tile.js +4 -4
- package/components/ix-time-input.js +21 -13
- package/components/ix-time-input.js.map +1 -1
- package/components/ix-time-picker.js +1 -1
- package/components/ix-toast-container.js +8 -7
- package/components/ix-toast-container.js.map +1 -1
- package/components/ix-toast.js +1 -1
- package/components/ix-toggle-button.js +4 -4
- package/components/ix-toggle-button.js.map +1 -1
- package/components/ix-toggle.js +4 -4
- package/components/ix-tooltip.js +1 -1
- package/components/ix-tree-item.js +1 -1
- package/components/ix-tree.js +34 -5
- package/components/ix-tree.js.map +1 -1
- package/components/ix-typography.js +1 -1
- package/components/ix-upload.js +5 -5
- package/components/ix-validation-tooltip.js +2 -2
- package/components/ix-workflow-step.js +3 -3
- package/components/ix-workflow-steps.js +1 -1
- package/components/{p-BLeWaHpy.js → p-0gGE-dfR.js} +12 -6
- package/components/p-0gGE-dfR.js.map +1 -0
- package/components/{p-Dy6xvLn4.js → p-B-O8iFhq.js} +4 -4
- package/components/{p-Dy6xvLn4.js.map → p-B-O8iFhq.js.map} +1 -1
- package/components/{p-10zMtvCF.js → p-B09CzVld.js} +133 -52
- package/components/p-B09CzVld.js.map +1 -0
- package/components/{p-DSTHZygb.js → p-BB98pUYU.js} +14 -16
- package/components/p-BB98pUYU.js.map +1 -0
- package/components/{p-BOQ00Fbs.js → p-BElY9X3b.js} +35 -25
- package/components/p-BElY9X3b.js.map +1 -0
- package/components/p-BEuV0Xpe.js +28 -0
- package/components/p-BEuV0Xpe.js.map +1 -0
- package/components/{p-B1p0kpQJ.js → p-BHD2m8UF.js} +16 -8
- package/components/p-BHD2m8UF.js.map +1 -0
- package/components/{p-ColBHyXN.js → p-BJ5sreCN.js} +5 -5
- package/components/{p-ColBHyXN.js.map → p-BJ5sreCN.js.map} +1 -1
- package/components/{p-Bk0vKwmt.js → p-BRg281yQ.js} +4 -4
- package/components/{p-Bk0vKwmt.js.map → p-BRg281yQ.js.map} +1 -1
- package/components/{p-DlVaL0Yi.js → p-BUS4kPN3.js} +13 -8
- package/components/p-BUS4kPN3.js.map +1 -0
- package/components/{p-C4KxNeD2.js → p-Bq5oov4A.js} +3 -3
- package/components/{p-C4KxNeD2.js.map → p-Bq5oov4A.js.map} +1 -1
- package/components/{p-C6_1qmP4.js → p-C5dktNss.js} +4 -4
- package/components/{p-C6_1qmP4.js.map → p-C5dktNss.js.map} +1 -1
- package/components/{p-DC9anobw.js → p-CGqmQsSj.js} +6 -6
- package/components/{p-DC9anobw.js.map → p-CGqmQsSj.js.map} +1 -1
- package/components/{p-7E7AMiQV.js → p-CPnxCsJH.js} +5 -5
- package/components/{p-7E7AMiQV.js.map → p-CPnxCsJH.js.map} +1 -1
- package/components/{p-PpLLlogo.js → p-CUdJN6-t.js} +16 -14
- package/components/p-CUdJN6-t.js.map +1 -0
- package/components/{p-CjDPpSJX.js → p-CtnJ26Ng.js} +19 -11
- package/components/p-CtnJ26Ng.js.map +1 -0
- package/components/{p-B006bhbX.js → p-CwfaZReW.js} +3 -3
- package/components/{p-B006bhbX.js.map → p-CwfaZReW.js.map} +1 -1
- package/components/{p-BIg1TSrD.js → p-D-nChuuk.js} +7 -7
- package/components/{p-BIg1TSrD.js.map → p-D-nChuuk.js.map} +1 -1
- package/components/{p-MuPiaYr1.js → p-D0T_1WDk.js} +32 -2
- package/components/p-D0T_1WDk.js.map +1 -0
- package/components/{p-Bye33cYU.js → p-D2BfqYng.js} +7 -7
- package/components/{p-Bye33cYU.js.map → p-D2BfqYng.js.map} +1 -1
- package/components/{p-DXFN8JXp.js → p-D8qc3Tjo.js} +4 -4
- package/components/{p-DXFN8JXp.js.map → p-D8qc3Tjo.js.map} +1 -1
- package/components/{p-BBwXlKhE.js → p-DBeR3Qpr.js} +3 -3
- package/components/{p-BBwXlKhE.js.map → p-DBeR3Qpr.js.map} +1 -1
- package/components/{p-CvD2yWeJ.js → p-DFkWFa-O.js} +4 -4
- package/components/{p-CvD2yWeJ.js.map → p-DFkWFa-O.js.map} +1 -1
- package/components/{p-BGdI6-nv.js → p-DTobrL4g.js} +3 -3
- package/components/{p-BGdI6-nv.js.map → p-DTobrL4g.js.map} +1 -1
- package/components/{p-BmMUyJRQ.js → p-DV7UGci6.js} +10 -10
- package/components/{p-BmMUyJRQ.js.map → p-DV7UGci6.js.map} +1 -1
- package/components/{p-CV_EVAOW.js → p-DZkGd7CV.js} +10 -4
- package/components/p-DZkGd7CV.js.map +1 -0
- package/components/{p-BI7B-PUA.js → p-Djmkeupf.js} +105 -38
- package/components/p-Djmkeupf.js.map +1 -0
- package/components/{p-1pd_0dhF.js → p-Ds0M0G_e.js} +3 -3
- package/components/{p-1pd_0dhF.js.map → p-Ds0M0G_e.js.map} +1 -1
- package/components/{p-BR5ayBuu.js → p-DtGtkvRX.js} +4 -4
- package/components/{p-BR5ayBuu.js.map → p-DtGtkvRX.js.map} +1 -1
- package/components/{p-Dp03DeD0.js → p-Dwnv8fgy.js} +5 -5
- package/components/{p-Dp03DeD0.js.map → p-Dwnv8fgy.js.map} +1 -1
- package/components/{p-BQk7HpA-.js → p-U0nRzcrj.js} +3 -3
- package/components/{p-BQk7HpA-.js.map → p-U0nRzcrj.js.map} +1 -1
- package/components/{p-BiqdnsgA.js → p-jwHZJhcU.js} +63 -58
- package/components/p-jwHZJhcU.js.map +1 -0
- package/components/{p-hwPzPVf8.js → p-rFxiFp44.js} +12 -6
- package/components/p-rFxiFp44.js.map +1 -0
- package/components/{p-ClQxnZ3d.js → p-u9QR9x88.js} +6 -6
- package/components/{p-ClQxnZ3d.js.map → p-u9QR9x88.js.map} +1 -1
- package/components/{p-BEDohapR.js → p-uIFuspHx.js} +8 -5
- package/components/p-uIFuspHx.js.map +1 -0
- package/dist/cjs/{base-button-CjsUotrL.js → base-button-DVckB2S-.js} +10 -4
- package/dist/cjs/base-button-DVckB2S-.js.map +1 -0
- package/dist/cjs/{base-icon-button-D3kZg-im.js → base-icon-button-BMxa9fiN.js} +3 -3
- package/dist/cjs/{base-icon-button-D3kZg-im.js.map → base-icon-button-BMxa9fiN.js.map} +1 -1
- package/dist/cjs/index-C8Xo8L1k.js +4 -4
- package/dist/cjs/{index-B7AMgiIZ.js → index-CgfiBgkm.js} +3 -3
- package/dist/cjs/{index-B7AMgiIZ.js.map → index-CgfiBgkm.js.map} +1 -1
- package/dist/cjs/index.cjs.js +25 -1
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/ix-action-card.cjs.entry.js +5 -1
- package/dist/cjs/ix-action-card.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-application-header.cjs.entry.js +19 -12
- package/dist/cjs/ix-application-header.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-application-switch-modal.cjs.entry.js +1 -1
- package/dist/cjs/ix-avatar_2.cjs.entry.js +2 -2
- package/dist/cjs/ix-breadcrumb-item.cjs.entry.js +1 -1
- package/dist/cjs/ix-breadcrumb.cjs.entry.js +11 -4
- package/dist/cjs/ix-breadcrumb.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-button.cjs.entry.js +1 -1
- package/dist/cjs/ix-card.ix-card-content.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-card_2.cjs.entry.js +8 -3
- package/dist/cjs/ix-category-filter.cjs.entry.js +15 -8
- package/dist/cjs/ix-category-filter.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-col.ix-date-picker.ix-layout-grid.ix-row.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-col_4.cjs.entry.js +15 -8
- package/dist/cjs/ix-date-dropdown.cjs.entry.js +12 -5
- package/dist/cjs/ix-date-dropdown.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-date-input.cjs.entry.js +11 -4
- package/dist/cjs/ix-date-input.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-drawer.cjs.entry.js +6 -6
- package/dist/cjs/ix-drawer.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-dropdown-button.cjs.entry.js +14 -3
- package/dist/cjs/ix-dropdown-button.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-dropdown-header.cjs.entry.js +1 -1
- package/dist/cjs/ix-dropdown-item.cjs.entry.js +9 -3
- package/dist/cjs/ix-dropdown-item.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-dropdown-quick-actions.cjs.entry.js +1 -1
- package/dist/cjs/ix-dropdown.cjs.entry.js +103 -37
- package/dist/cjs/ix-dropdown.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-empty-state.cjs.entry.js +1 -1
- package/dist/cjs/ix-event-list-item.cjs.entry.js +4 -4
- package/dist/cjs/ix-event-list.cjs.entry.js +2 -2
- package/dist/cjs/ix-expanding-search.cjs.entry.js +4 -4
- package/dist/cjs/ix-field-label.ix-field-wrapper.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-field-label_2.cjs.entry.js +14 -7
- package/dist/cjs/ix-filter-chip_2.cjs.entry.js +2 -2
- package/dist/cjs/ix-flip-tile-content.cjs.entry.js +1 -1
- package/dist/cjs/ix-flip-tile.cjs.entry.js +3 -3
- package/dist/cjs/ix-group-context-menu_2.cjs.entry.js +1 -1
- package/dist/cjs/ix-group.cjs.entry.js +8 -8
- package/dist/cjs/ix-helper-text.cjs.entry.js +1 -1
- package/dist/cjs/ix-icon-button.ix-spinner.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-icon-button_2.cjs.entry.js +7 -4
- package/dist/cjs/ix-icon-toggle-button.cjs.entry.js +3 -3
- package/dist/cjs/ix-input-group.cjs.entry.js +1 -1
- package/dist/cjs/ix-input.cjs.entry.js +4 -4
- package/dist/cjs/ix-key-value-list.cjs.entry.js +1 -1
- package/dist/cjs/ix-key-value.cjs.entry.js +1 -1
- package/dist/cjs/ix-kpi.cjs.entry.js +3 -3
- package/dist/cjs/ix-layout-auto.cjs.entry.js +1 -1
- package/dist/cjs/ix-link-button.cjs.entry.js +3 -3
- package/dist/cjs/ix-menu-about-item.cjs.entry.js +1 -1
- package/dist/cjs/ix-menu-about-news.cjs.entry.js +4 -4
- package/dist/cjs/ix-menu-about.cjs.entry.js +6 -2
- package/dist/cjs/ix-menu-about.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-menu-avatar.cjs.entry.js +20 -3
- package/dist/cjs/ix-menu-avatar.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-menu-category.cjs.entry.js +6 -6
- package/dist/cjs/ix-menu-category.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-menu-expand-icon.cjs.entry.js +10 -8
- package/dist/cjs/ix-menu-expand-icon.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-menu-item.cjs.entry.js +10 -12
- package/dist/cjs/ix-menu-item.entry.cjs.js.map +1 -1
- package/dist/cjs/{ix-menu-settings-CtWl0bME.js → ix-menu-settings-BYr52N4C.js} +42 -38
- package/dist/cjs/ix-menu-settings-BYr52N4C.js.map +1 -0
- package/dist/cjs/ix-menu-settings-item.cjs.entry.js +1 -1
- package/dist/cjs/ix-menu-settings.cjs.entry.js +1 -1
- package/dist/cjs/ix-menu.cjs.entry.js +44 -16
- package/dist/cjs/ix-menu.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-message-bar.cjs.entry.js +2 -2
- package/dist/cjs/ix-message-bar.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-modal-content_2.cjs.entry.js +2 -2
- package/dist/cjs/ix-modal-footer.cjs.entry.js +1 -1
- package/dist/cjs/ix-modal-loading.cjs.entry.js +1 -1
- package/dist/cjs/ix-modal.cjs.entry.js +5 -7
- package/dist/cjs/ix-modal.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-number-input.cjs.entry.js +5 -5
- package/dist/cjs/ix-pagination.cjs.entry.js +4 -4
- package/dist/cjs/ix-pane-layout.cjs.entry.js +2 -1
- package/dist/cjs/ix-pane-layout.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-pane.cjs.entry.js +6 -6
- package/dist/cjs/ix-pill.cjs.entry.js +4 -4
- package/dist/cjs/ix-progress-indicator.cjs.entry.js +3 -3
- package/dist/cjs/ix-push-card.cjs.entry.js +5 -1
- package/dist/cjs/ix-push-card.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-radio-group.cjs.entry.js +2 -2
- package/dist/cjs/ix-radio.cjs.entry.js +3 -3
- package/dist/cjs/ix-select.cjs.entry.js +22 -13
- package/dist/cjs/ix-select.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-slider.cjs.entry.js +87 -25
- package/dist/cjs/ix-slider.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-split-button.cjs.entry.js +8 -1
- package/dist/cjs/ix-split-button.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-tab-item.ix-tabs.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-tab-item_2.cjs.entry.js +135 -54
- package/dist/cjs/ix-textarea.cjs.entry.js +2 -2
- package/dist/cjs/ix-tile.cjs.entry.js +4 -4
- package/dist/cjs/ix-time-input.cjs.entry.js +11 -4
- package/dist/cjs/ix-time-input.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-time-picker.cjs.entry.js +5 -5
- package/dist/cjs/ix-toast-container.cjs.entry.js +4 -3
- package/dist/cjs/ix-toast-container.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-toast.cjs.entry.js +7 -3
- package/dist/cjs/ix-toast.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-toggle-button.cjs.entry.js +3 -3
- package/dist/cjs/ix-toggle-button.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-toggle.cjs.entry.js +3 -3
- package/dist/cjs/ix-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/ix-tree-item.cjs.entry.js +4 -4
- package/dist/cjs/ix-tree.cjs.entry.js +33 -4
- package/dist/cjs/ix-tree.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-typography.cjs.entry.js +1 -1
- package/dist/cjs/ix-upload.cjs.entry.js +3 -3
- package/dist/cjs/ix-validation-tooltip.cjs.entry.js +2 -2
- package/dist/cjs/ix-workflow-step.cjs.entry.js +3 -3
- package/dist/cjs/ix-workflow-steps.cjs.entry.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{modal-CsEGB0kd.js → modal-CUsbxNFf.js} +32 -2
- package/dist/cjs/modal-CUsbxNFf.js.map +1 -0
- package/dist/cjs/requestAnimationFrame-B0rWQ3G-.js +30 -0
- package/dist/cjs/requestAnimationFrame-B0rWQ3G-.js.map +1 -0
- package/dist/cjs/siemens-ix.cjs.js +1 -1
- package/dist/collection/components/action-card/action-card.js +25 -1
- package/dist/collection/components/action-card/action-card.js.map +1 -1
- package/dist/collection/components/application-header/application-header.js +46 -10
- package/dist/collection/components/application-header/application-header.js.map +1 -1
- package/dist/collection/components/breadcrumb/breadcrumb.js +37 -4
- package/dist/collection/components/breadcrumb/breadcrumb.js.map +1 -1
- package/dist/collection/components/button/base-button.js +8 -2
- package/dist/collection/components/button/base-button.js.map +1 -1
- package/dist/collection/components/card/card.css +49 -0
- package/dist/collection/components/card/card.js +27 -2
- package/dist/collection/components/card/card.js.map +1 -1
- package/dist/collection/components/category-filter/category-filter.js +41 -8
- package/dist/collection/components/category-filter/category-filter.js.map +1 -1
- package/dist/collection/components/date-dropdown/date-dropdown.js +38 -5
- package/dist/collection/components/date-dropdown/date-dropdown.js.map +1 -1
- package/dist/collection/components/date-input/date-input.js +37 -4
- package/dist/collection/components/date-input/date-input.js.map +1 -1
- package/dist/collection/components/date-picker/date-picker.js +38 -5
- package/dist/collection/components/date-picker/date-picker.js.map +1 -1
- package/dist/collection/components/drawer/drawer.js +6 -6
- package/dist/collection/components/drawer/drawer.js.map +1 -1
- package/dist/collection/components/dropdown/dropdown.css +42 -0
- package/dist/collection/components/dropdown/dropdown.js +125 -36
- package/dist/collection/components/dropdown/dropdown.js.map +1 -1
- package/dist/collection/components/dropdown-button/dropdown-button.js +42 -5
- package/dist/collection/components/dropdown-button/dropdown-button.js.map +1 -1
- package/dist/collection/components/dropdown-header/dropdown-header.js +1 -1
- package/dist/collection/components/dropdown-item/dropdown-item.js +10 -4
- package/dist/collection/components/dropdown-item/dropdown-item.js.map +1 -1
- package/dist/collection/components/dropdown-quick-actions/dropdown-quick-actions.js +1 -1
- package/dist/collection/components/empty-state/empty-state.js +1 -1
- package/dist/collection/components/event-list/event-list.js +2 -2
- package/dist/collection/components/event-list-item/event-list-item.js +4 -4
- package/dist/collection/components/expanding-search/expanding-search.js +4 -4
- package/dist/collection/components/field-label/field-label.js +14 -5
- package/dist/collection/components/field-label/field-label.js.map +1 -1
- package/dist/collection/components/field-wrapper/field-wrapper.js +2 -2
- package/dist/collection/components/filter-chip/filter-chip.js +1 -1
- package/dist/collection/components/flip-tile/flip-tile.js +3 -3
- package/dist/collection/components/flip-tile-content/flip-tile-content.js +1 -1
- package/dist/collection/components/group/group-context-menu.js +1 -1
- package/dist/collection/components/group/group.js +8 -8
- package/dist/collection/components/helper-text/helper-text.js +1 -1
- package/dist/collection/components/icon-button/icon-button.js +5 -2
- package/dist/collection/components/icon-button/icon-button.js.map +1 -1
- package/dist/collection/components/icon-toggle-button/icon-toggle-button.js +1 -1
- package/dist/collection/components/input/input.js +4 -4
- package/dist/collection/components/input/number-input.js +5 -5
- package/dist/collection/components/input/textarea.js +2 -2
- package/dist/collection/components/input-group/input-group.js +1 -1
- package/dist/collection/components/key-value/key-value.js +1 -1
- package/dist/collection/components/key-value-list/key-value-list.js +1 -1
- package/dist/collection/components/kpi/kpi.js +3 -3
- package/dist/collection/components/layout-auto/layout-auto.js +1 -1
- package/dist/collection/components/layout-grid/layout-grid.js +2 -2
- package/dist/collection/components/link-button/link-button.js +3 -3
- package/dist/collection/components/menu/menu-expand-icon.js +33 -36
- package/dist/collection/components/menu/menu-expand-icon.js.map +1 -1
- package/dist/collection/components/menu/menu.js +50 -16
- package/dist/collection/components/menu/menu.js.map +1 -1
- package/dist/collection/components/menu-about/menu-about.js +25 -1
- package/dist/collection/components/menu-about/menu-about.js.map +1 -1
- package/dist/collection/components/menu-about-item/menu-about-item.js +1 -1
- package/dist/collection/components/menu-about-news/menu-about-news.js +4 -4
- package/dist/collection/components/menu-avatar/menu-avatar.js +90 -3
- package/dist/collection/components/menu-avatar/menu-avatar.js.map +1 -1
- package/dist/collection/components/menu-avatar-item/menu-avatar-item.js +1 -1
- package/dist/collection/components/menu-category/menu-category.js +6 -6
- package/dist/collection/components/menu-category/menu-category.js.map +1 -1
- package/dist/collection/components/menu-item/menu-item.js +10 -12
- package/dist/collection/components/menu-item/menu-item.js.map +1 -1
- package/dist/collection/components/menu-settings/menu-settings.js +25 -1
- package/dist/collection/components/menu-settings/menu-settings.js.map +1 -1
- package/dist/collection/components/menu-settings-item/menu-settings-item.js +1 -1
- package/dist/collection/components/message-bar/message-bar.css +0 -11
- package/dist/collection/components/message-bar/message-bar.js +1 -1
- package/dist/collection/components/modal/modal.css +1 -4
- package/dist/collection/components/modal/modal.js +4 -6
- package/dist/collection/components/modal/modal.js.map +1 -1
- package/dist/collection/components/modal-content/modal-content.js +1 -1
- package/dist/collection/components/modal-footer/modal-footer.js +1 -1
- package/dist/collection/components/modal-header/modal-header.js +1 -1
- package/dist/collection/components/modal-loading/modal-loading.js +1 -1
- package/dist/collection/components/pagination/pagination.js +3 -3
- package/dist/collection/components/pane/pane.js +6 -6
- package/dist/collection/components/pane-layout/pane-layout.js +2 -1
- package/dist/collection/components/pane-layout/pane-layout.js.map +1 -1
- package/dist/collection/components/pill/pill.js +4 -4
- package/dist/collection/components/progress-indicator/progress-indicator.js +3 -3
- package/dist/collection/components/push-card/push-card.js +25 -1
- package/dist/collection/components/push-card/push-card.js.map +1 -1
- package/dist/collection/components/radio/radio.js +3 -3
- package/dist/collection/components/radio-group/radio-group.js +2 -2
- package/dist/collection/components/row/row.js +1 -1
- package/dist/collection/components/select/select.js +49 -14
- package/dist/collection/components/select/select.js.map +1 -1
- package/dist/collection/components/select-item/select-item.js +1 -1
- package/dist/collection/components/slider/slider.css +86 -44
- package/dist/collection/components/slider/slider.js +290 -27
- package/dist/collection/components/slider/slider.js.map +1 -1
- package/dist/collection/components/spinner/spinner.js +1 -1
- package/dist/collection/components/split-button/split-button.js +35 -2
- package/dist/collection/components/split-button/split-button.js.map +1 -1
- package/dist/collection/components/tab-item/tab-item.js +3 -3
- package/dist/collection/components/tabs/tabs.js +130 -26
- package/dist/collection/components/tabs/tabs.js.map +1 -1
- package/dist/collection/components/tile/tile.js +4 -4
- package/dist/collection/components/time-input/time-input.js +37 -4
- package/dist/collection/components/time-input/time-input.js.map +1 -1
- package/dist/collection/components/time-picker/time-picker.js +5 -5
- package/dist/collection/components/toast/toast-container.js +4 -3
- package/dist/collection/components/toast/toast-container.js.map +1 -1
- package/dist/collection/components/toast/toast-utils.js +21 -0
- package/dist/collection/components/toast/toast-utils.js.map +1 -1
- package/dist/collection/components/toast/toast.css +8 -6
- package/dist/collection/components/toast/toast.js +26 -2
- package/dist/collection/components/toast/toast.js.map +1 -1
- package/dist/collection/components/toggle/toggle.js +3 -3
- package/dist/collection/components/toggle-button/toggle-button.js +3 -3
- package/dist/collection/components/toggle-button/toggle-button.js.map +1 -1
- package/dist/collection/components/tooltip/tooltip.js +1 -1
- package/dist/collection/components/tree/tree.js +1 -1
- package/dist/collection/components/tree-item/tree-item.js +4 -4
- package/dist/collection/components/typography/typography.js +1 -1
- package/dist/collection/components/upload/upload.js +3 -3
- package/dist/collection/components/utils/lazy-list/lazy.js +32 -3
- package/dist/collection/components/utils/lazy-list/lazy.js.map +1 -1
- package/dist/collection/components/utils/menu-tabs/menu-tabs-fc.js +3 -3
- package/dist/collection/components/utils/menu-tabs/menu-tabs-fc.js.map +1 -1
- package/dist/collection/components/utils/modal/loading.js +3 -0
- package/dist/collection/components/utils/modal/loading.js.map +1 -1
- package/dist/collection/components/utils/modal/message.js +18 -0
- package/dist/collection/components/utils/modal/message.js.map +1 -1
- package/dist/collection/components/utils/modal/modal.js +12 -0
- package/dist/collection/components/utils/modal/modal.js.map +1 -1
- package/dist/collection/components/validation-tooltip/validation-tooltip.js +2 -2
- package/dist/collection/components/workflow-step/workflow-step.js +3 -3
- package/dist/collection/components/workflow-steps/workflow-steps.js +1 -1
- package/dist/esm/{base-button-TVpiK7pg.js → base-button-D4FlHdn0.js} +10 -4
- package/dist/esm/base-button-D4FlHdn0.js.map +1 -0
- package/dist/esm/{base-icon-button-B3ULQ24g.js → base-icon-button-rBR4ri6c.js} +3 -3
- package/dist/esm/{base-icon-button-B3ULQ24g.js.map → base-icon-button-rBR4ri6c.js.map} +1 -1
- package/dist/esm/{index-Kp5Wf9wr.js → index-75AAQH08.js} +3 -3
- package/dist/esm/{index-Kp5Wf9wr.js.map → index-75AAQH08.js.map} +1 -1
- package/dist/esm/index-CtoreFVF.js +4 -4
- package/dist/esm/index.js +26 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/ix-action-card.entry.js +5 -1
- package/dist/esm/ix-action-card.entry.js.map +1 -1
- package/dist/esm/ix-application-header.entry.js +19 -12
- package/dist/esm/ix-application-header.entry.js.map +1 -1
- package/dist/esm/ix-application-switch-modal.entry.js +1 -1
- package/dist/esm/ix-avatar_2.entry.js +2 -2
- package/dist/esm/ix-breadcrumb-item.entry.js +1 -1
- package/dist/esm/ix-breadcrumb.entry.js +11 -4
- package/dist/esm/ix-breadcrumb.entry.js.map +1 -1
- package/dist/esm/ix-button.entry.js +1 -1
- package/dist/esm/ix-card.ix-card-content.entry.js.map +1 -1
- package/dist/esm/ix-card_2.entry.js +8 -3
- package/dist/esm/ix-category-filter.entry.js +15 -8
- package/dist/esm/ix-category-filter.entry.js.map +1 -1
- package/dist/esm/ix-col.ix-date-picker.ix-layout-grid.ix-row.entry.js.map +1 -1
- package/dist/esm/ix-col_4.entry.js +15 -8
- package/dist/esm/ix-date-dropdown.entry.js +12 -5
- package/dist/esm/ix-date-dropdown.entry.js.map +1 -1
- package/dist/esm/ix-date-input.entry.js +11 -4
- package/dist/esm/ix-date-input.entry.js.map +1 -1
- package/dist/esm/ix-drawer.entry.js +6 -6
- package/dist/esm/ix-drawer.entry.js.map +1 -1
- package/dist/esm/ix-dropdown-button.entry.js +14 -3
- package/dist/esm/ix-dropdown-button.entry.js.map +1 -1
- package/dist/esm/ix-dropdown-header.entry.js +1 -1
- package/dist/esm/ix-dropdown-item.entry.js +9 -3
- package/dist/esm/ix-dropdown-item.entry.js.map +1 -1
- package/dist/esm/ix-dropdown-quick-actions.entry.js +1 -1
- package/dist/esm/ix-dropdown.entry.js +103 -37
- package/dist/esm/ix-dropdown.entry.js.map +1 -1
- package/dist/esm/ix-empty-state.entry.js +1 -1
- package/dist/esm/ix-event-list-item.entry.js +4 -4
- package/dist/esm/ix-event-list.entry.js +2 -2
- package/dist/esm/ix-expanding-search.entry.js +4 -4
- package/dist/esm/ix-field-label.ix-field-wrapper.entry.js.map +1 -1
- package/dist/esm/ix-field-label_2.entry.js +14 -7
- package/dist/esm/ix-filter-chip_2.entry.js +2 -2
- package/dist/esm/ix-flip-tile-content.entry.js +1 -1
- package/dist/esm/ix-flip-tile.entry.js +3 -3
- package/dist/esm/ix-group-context-menu_2.entry.js +1 -1
- package/dist/esm/ix-group.entry.js +8 -8
- package/dist/esm/ix-helper-text.entry.js +1 -1
- package/dist/esm/ix-icon-button.ix-spinner.entry.js.map +1 -1
- package/dist/esm/ix-icon-button_2.entry.js +7 -4
- package/dist/esm/ix-icon-toggle-button.entry.js +3 -3
- package/dist/esm/ix-input-group.entry.js +1 -1
- package/dist/esm/ix-input.entry.js +4 -4
- package/dist/esm/ix-key-value-list.entry.js +1 -1
- package/dist/esm/ix-key-value.entry.js +1 -1
- package/dist/esm/ix-kpi.entry.js +3 -3
- package/dist/esm/ix-layout-auto.entry.js +1 -1
- package/dist/esm/ix-link-button.entry.js +3 -3
- package/dist/esm/ix-menu-about-item.entry.js +1 -1
- package/dist/esm/ix-menu-about-news.entry.js +4 -4
- package/dist/esm/ix-menu-about.entry.js +6 -2
- package/dist/esm/ix-menu-about.entry.js.map +1 -1
- package/dist/esm/ix-menu-avatar.entry.js +20 -3
- package/dist/esm/ix-menu-avatar.entry.js.map +1 -1
- package/dist/esm/ix-menu-category.entry.js +6 -6
- package/dist/esm/ix-menu-category.entry.js.map +1 -1
- package/dist/esm/ix-menu-expand-icon.entry.js +10 -8
- package/dist/esm/ix-menu-expand-icon.entry.js.map +1 -1
- package/dist/esm/ix-menu-item.entry.js +10 -12
- package/dist/esm/ix-menu-item.entry.js.map +1 -1
- package/dist/esm/{ix-menu-settings-f9o5GGw5.js → ix-menu-settings-CG60xQKd.js} +42 -38
- package/dist/esm/ix-menu-settings-CG60xQKd.js.map +1 -0
- package/dist/esm/ix-menu-settings-item.entry.js +1 -1
- package/dist/esm/ix-menu-settings.entry.js +1 -1
- package/dist/esm/ix-menu.entry.js +44 -16
- package/dist/esm/ix-menu.entry.js.map +1 -1
- package/dist/esm/ix-message-bar.entry.js +2 -2
- package/dist/esm/ix-message-bar.entry.js.map +1 -1
- package/dist/esm/ix-modal-content_2.entry.js +2 -2
- package/dist/esm/ix-modal-footer.entry.js +1 -1
- package/dist/esm/ix-modal-loading.entry.js +1 -1
- package/dist/esm/ix-modal.entry.js +5 -7
- package/dist/esm/ix-modal.entry.js.map +1 -1
- package/dist/esm/ix-number-input.entry.js +5 -5
- package/dist/esm/ix-pagination.entry.js +4 -4
- package/dist/esm/ix-pane-layout.entry.js +2 -1
- package/dist/esm/ix-pane-layout.entry.js.map +1 -1
- package/dist/esm/ix-pane.entry.js +6 -6
- package/dist/esm/ix-pill.entry.js +4 -4
- package/dist/esm/ix-progress-indicator.entry.js +3 -3
- package/dist/esm/ix-push-card.entry.js +5 -1
- package/dist/esm/ix-push-card.entry.js.map +1 -1
- package/dist/esm/ix-radio-group.entry.js +2 -2
- package/dist/esm/ix-radio.entry.js +3 -3
- package/dist/esm/ix-select.entry.js +22 -13
- package/dist/esm/ix-select.entry.js.map +1 -1
- package/dist/esm/ix-slider.entry.js +87 -25
- package/dist/esm/ix-slider.entry.js.map +1 -1
- package/dist/esm/ix-split-button.entry.js +8 -1
- package/dist/esm/ix-split-button.entry.js.map +1 -1
- package/dist/esm/ix-tab-item.ix-tabs.entry.js.map +1 -1
- package/dist/esm/ix-tab-item_2.entry.js +134 -53
- package/dist/esm/ix-textarea.entry.js +2 -2
- package/dist/esm/ix-tile.entry.js +4 -4
- package/dist/esm/ix-time-input.entry.js +11 -4
- package/dist/esm/ix-time-input.entry.js.map +1 -1
- package/dist/esm/ix-time-picker.entry.js +5 -5
- package/dist/esm/ix-toast-container.entry.js +4 -3
- package/dist/esm/ix-toast-container.entry.js.map +1 -1
- package/dist/esm/ix-toast.entry.js +7 -3
- package/dist/esm/ix-toast.entry.js.map +1 -1
- package/dist/esm/ix-toggle-button.entry.js +3 -3
- package/dist/esm/ix-toggle-button.entry.js.map +1 -1
- package/dist/esm/ix-toggle.entry.js +3 -3
- package/dist/esm/ix-tooltip.entry.js +1 -1
- package/dist/esm/ix-tree-item.entry.js +4 -4
- package/dist/esm/ix-tree.entry.js +33 -4
- package/dist/esm/ix-tree.entry.js.map +1 -1
- package/dist/esm/ix-typography.entry.js +1 -1
- package/dist/esm/ix-upload.entry.js +3 -3
- package/dist/esm/ix-validation-tooltip.entry.js +2 -2
- package/dist/esm/ix-workflow-step.entry.js +3 -3
- package/dist/esm/ix-workflow-steps.entry.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{modal-BTxff2hq.js → modal-DCXtePY2.js} +32 -2
- package/dist/esm/modal-DCXtePY2.js.map +1 -0
- package/dist/esm/requestAnimationFrame-BEuV0Xpe.js +28 -0
- package/dist/esm/requestAnimationFrame-BEuV0Xpe.js.map +1 -0
- package/dist/esm/siemens-ix.js +1 -1
- package/dist/siemens-ix/index.esm.js +1 -1
- package/dist/siemens-ix/index.esm.js.map +1 -1
- package/dist/siemens-ix/ix-action-card.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-application-header.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-breadcrumb.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-card.ix-card-content.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-category-filter.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-col.ix-date-picker.ix-layout-grid.ix-row.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-date-dropdown.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-date-input.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-drawer.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-dropdown-button.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-dropdown-item.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-dropdown.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-field-label.ix-field-wrapper.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-icon-button.ix-spinner.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-menu-about.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-menu-avatar.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-menu-category.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-menu-expand-icon.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-menu-item.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-menu.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-message-bar.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-modal.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-pane-layout.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-push-card.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-select.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-slider.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-split-button.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-tab-item.ix-tabs.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-time-input.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-toast-container.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-toast.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-toggle-button.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-tree.entry.esm.js.map +1 -1
- package/dist/siemens-ix/p-00d9e974.entry.js +2 -0
- package/dist/siemens-ix/{p-26c629c3.entry.js.map → p-00d9e974.entry.js.map} +1 -1
- package/dist/siemens-ix/p-00f783c2.entry.js +2 -0
- package/dist/siemens-ix/p-00f783c2.entry.js.map +1 -0
- package/dist/siemens-ix/{p-eba7f62c.entry.js → p-012e0b64.entry.js} +2 -2
- package/dist/siemens-ix/p-01f33c21.entry.js +2 -0
- package/dist/siemens-ix/p-01f33c21.entry.js.map +1 -0
- package/dist/siemens-ix/{p-c94739d0.entry.js → p-0693e4bf.entry.js} +2 -2
- package/dist/siemens-ix/p-07ab03fe.entry.js +2 -0
- package/dist/siemens-ix/p-07ab03fe.entry.js.map +1 -0
- package/dist/siemens-ix/{p-dc8de6cb.entry.js → p-0c5021bc.entry.js} +2 -2
- package/dist/siemens-ix/{p-b9880608.entry.js → p-0f80678c.entry.js} +2 -2
- package/dist/siemens-ix/p-13dc936a.entry.js +2 -0
- package/dist/siemens-ix/p-13dc936a.entry.js.map +1 -0
- package/dist/siemens-ix/{p-d3a60c52.entry.js → p-163090c1.entry.js} +2 -2
- package/dist/siemens-ix/{p-d3a60c52.entry.js.map → p-163090c1.entry.js.map} +1 -1
- package/dist/siemens-ix/{p-ea15fc79.entry.js → p-18d39c8a.entry.js} +2 -2
- package/dist/siemens-ix/{p-b3453edf.entry.js → p-1b4cfce2.entry.js} +2 -2
- package/dist/siemens-ix/{p-de12078d.entry.js → p-22735495.entry.js} +2 -2
- package/dist/siemens-ix/p-24af7715.entry.js +2 -0
- package/dist/siemens-ix/p-24af7715.entry.js.map +1 -0
- package/dist/siemens-ix/p-29d397e7.entry.js +2 -0
- package/dist/siemens-ix/p-29d397e7.entry.js.map +1 -0
- package/dist/siemens-ix/p-2e1bb4bf.entry.js +2 -0
- package/dist/siemens-ix/p-2e1bb4bf.entry.js.map +1 -0
- package/dist/siemens-ix/{p-1de1a2bf.entry.js → p-2eda608a.entry.js} +2 -2
- package/dist/siemens-ix/{p-6a4bc78a.entry.js → p-2f83d5de.entry.js} +2 -2
- package/dist/siemens-ix/p-332b3d09.entry.js +2 -0
- package/dist/siemens-ix/{p-c15e64a8.entry.js → p-346c5039.entry.js} +2 -2
- package/dist/siemens-ix/p-38ba4776.entry.js +2 -0
- package/dist/siemens-ix/p-38ba4776.entry.js.map +1 -0
- package/dist/siemens-ix/{p-b7ef70d4.entry.js → p-3ff8cf24.entry.js} +2 -2
- package/dist/siemens-ix/p-3ff8cf24.entry.js.map +1 -0
- package/dist/siemens-ix/{p-4431f891.entry.js → p-4a6f8ce8.entry.js} +2 -2
- package/dist/siemens-ix/p-4a9cceff.entry.js +2 -0
- package/dist/siemens-ix/{p-0ce03ad3.entry.js.map → p-4a9cceff.entry.js.map} +1 -1
- package/dist/siemens-ix/{p-396e1f3d.entry.js → p-4d004e44.entry.js} +2 -2
- package/dist/siemens-ix/{p-b76df1c7.entry.js → p-4d540a34.entry.js} +2 -2
- package/dist/siemens-ix/p-4d540a34.entry.js.map +1 -0
- package/dist/siemens-ix/p-4e985847.entry.js +2 -0
- package/dist/siemens-ix/p-4e985847.entry.js.map +1 -0
- package/dist/siemens-ix/p-5306efc0.entry.js +2 -0
- package/dist/siemens-ix/p-5306efc0.entry.js.map +1 -0
- package/dist/siemens-ix/p-568e5673.entry.js +2 -0
- package/dist/siemens-ix/p-568e5673.entry.js.map +1 -0
- package/dist/siemens-ix/{p-38e45020.entry.js → p-591664be.entry.js} +2 -2
- package/dist/siemens-ix/{p-c5c863e1.entry.js → p-6794955e.entry.js} +2 -2
- package/dist/siemens-ix/{p-79537728.entry.js → p-69526242.entry.js} +2 -2
- package/dist/siemens-ix/p-7752df0f.entry.js +2 -0
- package/dist/siemens-ix/p-78ac2dbc.entry.js +2 -0
- package/dist/siemens-ix/{p-8f9368b8.entry.js → p-7ab95193.entry.js} +2 -2
- package/dist/siemens-ix/p-7c3ed8dc.entry.js +2 -0
- package/dist/siemens-ix/p-7c3ed8dc.entry.js.map +1 -0
- package/dist/siemens-ix/{p-fb8877bc.entry.js → p-7df00cac.entry.js} +2 -2
- package/dist/siemens-ix/p-7df00cac.entry.js.map +1 -0
- package/dist/siemens-ix/{p-e7bdc0a0.entry.js → p-7fa55c16.entry.js} +2 -2
- package/dist/siemens-ix/p-7fa55c16.entry.js.map +1 -0
- package/dist/siemens-ix/{p-ff83eafd.entry.js → p-7fbcc15c.entry.js} +2 -2
- package/dist/siemens-ix/p-828db41e.entry.js +2 -0
- package/dist/siemens-ix/{p-6dc6eb63.entry.js.map → p-828db41e.entry.js.map} +1 -1
- package/dist/siemens-ix/{p-496e98ac.entry.js → p-82c3a8a2.entry.js} +2 -2
- package/dist/siemens-ix/p-899b445d.entry.js +2 -0
- package/dist/siemens-ix/p-899b445d.entry.js.map +1 -0
- package/dist/siemens-ix/{p-5779f16e.entry.js → p-8b6f2e0e.entry.js} +2 -2
- package/dist/siemens-ix/p-8c8bad0a.entry.js +2 -0
- package/dist/siemens-ix/{p-b8f4b001.entry.js → p-8e26b723.entry.js} +2 -2
- package/dist/siemens-ix/p-8e26b723.entry.js.map +1 -0
- package/dist/siemens-ix/{p-7bc90e7e.entry.js → p-8e7f7343.entry.js} +2 -2
- package/dist/siemens-ix/{p-484bddf4.entry.js → p-922a49d7.entry.js} +2 -2
- package/dist/siemens-ix/{p-196cffb5.entry.js → p-9362445d.entry.js} +2 -2
- package/dist/siemens-ix/p-9492ebc4.entry.js +2 -0
- package/dist/siemens-ix/p-9492ebc4.entry.js.map +1 -0
- package/dist/siemens-ix/{p-d2c18c15.entry.js → p-96c371c8.entry.js} +2 -2
- package/dist/siemens-ix/{p-2ffde2d5.entry.js → p-97c3d27e.entry.js} +2 -2
- package/dist/siemens-ix/{p-f119c105.entry.js → p-98cf2c22.entry.js} +2 -2
- package/dist/siemens-ix/{p-ca3b24b1.entry.js → p-99dda4c4.entry.js} +2 -2
- package/dist/siemens-ix/{p-e48977ed.entry.js → p-9b917ecd.entry.js} +2 -2
- package/dist/siemens-ix/p-9ea48663.entry.js +2 -0
- package/dist/siemens-ix/p-9ea48663.entry.js.map +1 -0
- package/dist/siemens-ix/{p-CObJ-t0Z.js → p-B3-0mRq1.js} +2 -2
- package/dist/siemens-ix/{p-CObJ-t0Z.js.map → p-B3-0mRq1.js.map} +1 -1
- package/dist/siemens-ix/p-BEuV0Xpe.js +2 -0
- package/dist/siemens-ix/p-BEuV0Xpe.js.map +1 -0
- package/dist/siemens-ix/p-BYhznbns.js +2 -0
- package/dist/siemens-ix/p-BYhznbns.js.map +1 -0
- package/dist/siemens-ix/p-BvohuWNe.js +2 -0
- package/dist/siemens-ix/p-BvohuWNe.js.map +1 -0
- package/dist/siemens-ix/p-CSUx_zC3.js +2 -0
- package/dist/siemens-ix/{p-DpM4lbAX.js.map → p-CSUx_zC3.js.map} +1 -1
- package/dist/siemens-ix/{p-BC0Exw_O.js → p-IHkSWEwz.js} +1 -1
- package/dist/siemens-ix/p-IHkSWEwz.js.map +1 -0
- package/dist/siemens-ix/p-a9c3bb03.entry.js +2 -0
- package/dist/siemens-ix/p-a9c3bb03.entry.js.map +1 -0
- package/dist/siemens-ix/{p-4c18f123.entry.js → p-ad911b63.entry.js} +2 -2
- package/dist/siemens-ix/{p-74e7b03f.entry.js → p-b1eac110.entry.js} +2 -2
- package/dist/siemens-ix/p-b7438aeb.entry.js +2 -0
- package/dist/siemens-ix/p-b7438aeb.entry.js.map +1 -0
- package/dist/siemens-ix/{p-d10b9798.entry.js → p-b7734b9d.entry.js} +2 -2
- package/dist/siemens-ix/{p-df6bb698.entry.js → p-bc85feef.entry.js} +2 -2
- package/dist/siemens-ix/{p-a4225101.entry.js → p-c6ee37e4.entry.js} +2 -2
- package/dist/siemens-ix/{p-a8308559.entry.js → p-ca2533b1.entry.js} +2 -2
- package/dist/siemens-ix/p-cb5e0db6.entry.js +2 -0
- package/dist/siemens-ix/{p-3f62166e.entry.js.map → p-cb5e0db6.entry.js.map} +1 -1
- package/dist/siemens-ix/{p-667e3184.entry.js → p-ceb7b1da.entry.js} +2 -2
- package/dist/siemens-ix/{p-e0b9cf68.entry.js → p-d2ce70ac.entry.js} +2 -2
- package/dist/siemens-ix/{p-8fc2bea6.entry.js → p-d384611d.entry.js} +2 -2
- package/dist/siemens-ix/p-d63ac3e3.entry.js +2 -0
- package/dist/siemens-ix/p-d63ac3e3.entry.js.map +1 -0
- package/dist/siemens-ix/p-d73d0805.entry.js +2 -0
- package/dist/siemens-ix/p-d73d0805.entry.js.map +1 -0
- package/dist/siemens-ix/{p-b41a7abb.entry.js → p-d82ac1e1.entry.js} +2 -2
- package/dist/siemens-ix/{p-7beba4ad.entry.js → p-d9776ef8.entry.js} +2 -2
- package/dist/siemens-ix/p-db913bc4.entry.js +2 -0
- package/dist/siemens-ix/p-db913bc4.entry.js.map +1 -0
- package/dist/siemens-ix/{p-367df024.entry.js → p-dc0be9bf.entry.js} +2 -2
- package/dist/siemens-ix/p-dc0be9bf.entry.js.map +1 -0
- package/dist/siemens-ix/{p-33b3ed5b.entry.js → p-de59209e.entry.js} +2 -2
- package/dist/siemens-ix/{p-cf041cfd.entry.js → p-e29533a3.entry.js} +2 -2
- package/dist/siemens-ix/{p-3ce5fd87.entry.js → p-e4dabf5b.entry.js} +2 -2
- package/dist/siemens-ix/p-e4dabf5b.entry.js.map +1 -0
- package/dist/siemens-ix/{p-cd1afcc9.entry.js → p-e69d8217.entry.js} +2 -2
- package/dist/siemens-ix/{p-7827c263.entry.js → p-e7ef43ed.entry.js} +2 -2
- package/dist/siemens-ix/{p-8f17f6ec.entry.js → p-ec9dc8d8.entry.js} +2 -2
- package/dist/siemens-ix/p-ec9dc8d8.entry.js.map +1 -0
- package/dist/siemens-ix/{p-77fd2138.entry.js → p-f4264893.entry.js} +2 -2
- package/dist/siemens-ix/p-f42f74c2.entry.js +2 -0
- package/dist/siemens-ix/p-f7cb5560.entry.js +2 -0
- package/dist/siemens-ix/p-f7cb5560.entry.js.map +1 -0
- package/dist/siemens-ix/siemens-ix-core.css +1 -1
- package/dist/siemens-ix/siemens-ix.esm.js +1 -1
- package/dist/types/components/action-card/action-card.d.ts +4 -0
- package/dist/types/components/application-header/application-header.d.ts +8 -0
- package/dist/types/components/breadcrumb/breadcrumb.d.ts +7 -0
- package/dist/types/components/card/card.d.ts +4 -0
- package/dist/types/components/category-filter/category-filter.d.ts +7 -0
- package/dist/types/components/date-dropdown/date-dropdown.d.ts +8 -1
- package/dist/types/components/date-input/date-input.d.ts +7 -0
- package/dist/types/components/date-picker/date-picker.d.ts +7 -0
- package/dist/types/components/dropdown/dropdown.d.ts +11 -1
- package/dist/types/components/dropdown-button/dropdown-button.d.ts +7 -0
- package/dist/types/components/field-label/field-label.d.ts +2 -0
- package/dist/types/components/menu/menu-expand-icon.d.ts +5 -2
- package/dist/types/components/menu/menu.d.ts +6 -0
- package/dist/types/components/menu-about/menu-about.d.ts +4 -0
- package/dist/types/components/menu-avatar/menu-avatar.d.ts +20 -0
- package/dist/types/components/menu-item/menu-item.d.ts +1 -1
- package/dist/types/components/menu-settings/menu-settings.d.ts +4 -0
- package/dist/types/components/modal/modal.d.ts +0 -1
- package/dist/types/components/push-card/push-card.d.ts +4 -0
- package/dist/types/components/select/select.d.ts +7 -0
- package/dist/types/components/slider/slider.d.ts +57 -2
- package/dist/types/components/split-button/split-button.d.ts +8 -1
- package/dist/types/components/tabs/tabs.d.ts +12 -0
- package/dist/types/components/time-input/time-input.d.ts +7 -0
- package/dist/types/components/toast/toast-utils.d.ts +13 -0
- package/dist/types/components/toast/toast.d.ts +4 -0
- package/dist/types/components/toggle-button/toggle-button.d.ts +1 -3
- package/dist/types/components/utils/lazy-list/lazy.d.ts +2 -0
- package/dist/types/components/utils/modal/loading.d.ts +3 -0
- package/dist/types/components/utils/modal/message.d.ts +3 -0
- package/dist/types/components/utils/modal/modal.d.ts +63 -0
- package/dist/types/components.d.ts +326 -7
- package/hydrate/index.js +1144 -678
- package/hydrate/index.mjs +1144 -678
- package/package.json +1 -1
- package/components/p-10zMtvCF.js.map +0 -1
- package/components/p-B1p0kpQJ.js.map +0 -1
- package/components/p-BEDohapR.js.map +0 -1
- package/components/p-BI7B-PUA.js.map +0 -1
- package/components/p-BLeWaHpy.js.map +0 -1
- package/components/p-BOQ00Fbs.js.map +0 -1
- package/components/p-BiqdnsgA.js.map +0 -1
- package/components/p-CV_EVAOW.js.map +0 -1
- package/components/p-CjDPpSJX.js.map +0 -1
- package/components/p-DSTHZygb.js.map +0 -1
- package/components/p-DlVaL0Yi.js.map +0 -1
- package/components/p-MuPiaYr1.js.map +0 -1
- package/components/p-PpLLlogo.js.map +0 -1
- package/components/p-hwPzPVf8.js.map +0 -1
- package/dist/cjs/base-button-CjsUotrL.js.map +0 -1
- package/dist/cjs/ix-menu-settings-CtWl0bME.js.map +0 -1
- package/dist/cjs/modal-CsEGB0kd.js.map +0 -1
- package/dist/esm/base-button-TVpiK7pg.js.map +0 -1
- package/dist/esm/ix-menu-settings-f9o5GGw5.js.map +0 -1
- package/dist/esm/modal-BTxff2hq.js.map +0 -1
- package/dist/siemens-ix/p-0411df39.entry.js +0 -2
- package/dist/siemens-ix/p-0c325f08.entry.js +0 -2
- package/dist/siemens-ix/p-0c325f08.entry.js.map +0 -1
- package/dist/siemens-ix/p-0ce03ad3.entry.js +0 -2
- package/dist/siemens-ix/p-0d621531.entry.js +0 -2
- package/dist/siemens-ix/p-0d621531.entry.js.map +0 -1
- package/dist/siemens-ix/p-0eca5a77.entry.js +0 -2
- package/dist/siemens-ix/p-0eca5a77.entry.js.map +0 -1
- package/dist/siemens-ix/p-2597a988.entry.js +0 -2
- package/dist/siemens-ix/p-2597a988.entry.js.map +0 -1
- package/dist/siemens-ix/p-26c629c3.entry.js +0 -2
- package/dist/siemens-ix/p-31a8eaf9.entry.js +0 -2
- package/dist/siemens-ix/p-33fcea65.entry.js +0 -2
- package/dist/siemens-ix/p-33fcea65.entry.js.map +0 -1
- package/dist/siemens-ix/p-367df024.entry.js.map +0 -1
- package/dist/siemens-ix/p-37bd983a.entry.js +0 -2
- package/dist/siemens-ix/p-37bd983a.entry.js.map +0 -1
- package/dist/siemens-ix/p-3ce5fd87.entry.js.map +0 -1
- package/dist/siemens-ix/p-3f62166e.entry.js +0 -2
- package/dist/siemens-ix/p-4c1f90cb.entry.js +0 -2
- package/dist/siemens-ix/p-4c1f90cb.entry.js.map +0 -1
- package/dist/siemens-ix/p-4e4d792d.entry.js +0 -2
- package/dist/siemens-ix/p-4e4d792d.entry.js.map +0 -1
- package/dist/siemens-ix/p-5b57bde1.entry.js +0 -2
- package/dist/siemens-ix/p-5b57bde1.entry.js.map +0 -1
- package/dist/siemens-ix/p-68aaf0fe.entry.js +0 -2
- package/dist/siemens-ix/p-68aaf0fe.entry.js.map +0 -1
- package/dist/siemens-ix/p-6dc6eb63.entry.js +0 -2
- package/dist/siemens-ix/p-7bad0544.entry.js +0 -2
- package/dist/siemens-ix/p-7bad0544.entry.js.map +0 -1
- package/dist/siemens-ix/p-8418f756.entry.js +0 -2
- package/dist/siemens-ix/p-8418f756.entry.js.map +0 -1
- package/dist/siemens-ix/p-8b42ad35.entry.js +0 -2
- package/dist/siemens-ix/p-8b42ad35.entry.js.map +0 -1
- package/dist/siemens-ix/p-8f17f6ec.entry.js.map +0 -1
- package/dist/siemens-ix/p-8fa8d0e3.entry.js +0 -2
- package/dist/siemens-ix/p-92ec7f27.entry.js +0 -2
- package/dist/siemens-ix/p-BC0Exw_O.js.map +0 -1
- package/dist/siemens-ix/p-BcCDexod.js +0 -2
- package/dist/siemens-ix/p-BcCDexod.js.map +0 -1
- package/dist/siemens-ix/p-DiMfcbUU.js +0 -2
- package/dist/siemens-ix/p-DiMfcbUU.js.map +0 -1
- package/dist/siemens-ix/p-DpM4lbAX.js +0 -2
- package/dist/siemens-ix/p-a3baca2f.entry.js +0 -2
- package/dist/siemens-ix/p-a61972c5.entry.js +0 -2
- package/dist/siemens-ix/p-a61972c5.entry.js.map +0 -1
- package/dist/siemens-ix/p-b76df1c7.entry.js.map +0 -1
- package/dist/siemens-ix/p-b7ef70d4.entry.js.map +0 -1
- package/dist/siemens-ix/p-b8f4b001.entry.js.map +0 -1
- package/dist/siemens-ix/p-ba9ed3d1.entry.js +0 -2
- package/dist/siemens-ix/p-ba9ed3d1.entry.js.map +0 -1
- package/dist/siemens-ix/p-c1160cf8.entry.js +0 -2
- package/dist/siemens-ix/p-c1160cf8.entry.js.map +0 -1
- package/dist/siemens-ix/p-d193381f.entry.js +0 -2
- package/dist/siemens-ix/p-d193381f.entry.js.map +0 -1
- package/dist/siemens-ix/p-e42f62a1.entry.js +0 -2
- package/dist/siemens-ix/p-e42f62a1.entry.js.map +0 -1
- package/dist/siemens-ix/p-e7bdc0a0.entry.js.map +0 -1
- package/dist/siemens-ix/p-ea37abf6.entry.js +0 -2
- package/dist/siemens-ix/p-ea37abf6.entry.js.map +0 -1
- package/dist/siemens-ix/p-ea410634.entry.js +0 -2
- package/dist/siemens-ix/p-ea410634.entry.js.map +0 -1
- package/dist/siemens-ix/p-fb8877bc.entry.js.map +0 -1
- package/dist/siemens-ix/p-fc73c8cc.entry.js +0 -2
- package/dist/siemens-ix/p-fc73c8cc.entry.js.map +0 -1
- /package/dist/siemens-ix/{p-eba7f62c.entry.js.map → p-012e0b64.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-c94739d0.entry.js.map → p-0693e4bf.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-dc8de6cb.entry.js.map → p-0c5021bc.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-b9880608.entry.js.map → p-0f80678c.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-ea15fc79.entry.js.map → p-18d39c8a.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-b3453edf.entry.js.map → p-1b4cfce2.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-de12078d.entry.js.map → p-22735495.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-1de1a2bf.entry.js.map → p-2eda608a.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-6a4bc78a.entry.js.map → p-2f83d5de.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-a3baca2f.entry.js.map → p-332b3d09.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-c15e64a8.entry.js.map → p-346c5039.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-4431f891.entry.js.map → p-4a6f8ce8.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-396e1f3d.entry.js.map → p-4d004e44.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-38e45020.entry.js.map → p-591664be.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-c5c863e1.entry.js.map → p-6794955e.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-79537728.entry.js.map → p-69526242.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-8fa8d0e3.entry.js.map → p-7752df0f.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-0411df39.entry.js.map → p-78ac2dbc.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-8f9368b8.entry.js.map → p-7ab95193.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-ff83eafd.entry.js.map → p-7fbcc15c.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-496e98ac.entry.js.map → p-82c3a8a2.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-5779f16e.entry.js.map → p-8b6f2e0e.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-31a8eaf9.entry.js.map → p-8c8bad0a.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-7bc90e7e.entry.js.map → p-8e7f7343.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-484bddf4.entry.js.map → p-922a49d7.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-196cffb5.entry.js.map → p-9362445d.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-d2c18c15.entry.js.map → p-96c371c8.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-2ffde2d5.entry.js.map → p-97c3d27e.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-f119c105.entry.js.map → p-98cf2c22.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-ca3b24b1.entry.js.map → p-99dda4c4.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-e48977ed.entry.js.map → p-9b917ecd.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-4c18f123.entry.js.map → p-ad911b63.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-74e7b03f.entry.js.map → p-b1eac110.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-d10b9798.entry.js.map → p-b7734b9d.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-df6bb698.entry.js.map → p-bc85feef.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-a4225101.entry.js.map → p-c6ee37e4.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-a8308559.entry.js.map → p-ca2533b1.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-667e3184.entry.js.map → p-ceb7b1da.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-e0b9cf68.entry.js.map → p-d2ce70ac.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-8fc2bea6.entry.js.map → p-d384611d.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-b41a7abb.entry.js.map → p-d82ac1e1.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-7beba4ad.entry.js.map → p-d9776ef8.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-33b3ed5b.entry.js.map → p-de59209e.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-cf041cfd.entry.js.map → p-e29533a3.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-cd1afcc9.entry.js.map → p-e69d8217.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-7827c263.entry.js.map → p-e7ef43ed.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-77fd2138.entry.js.map → p-f4264893.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-92ec7f27.entry.js.map → p-f42f74c2.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ix-field-label.ix-field-wrapper.entry.esm.js","sources":["src/components/utils/input/index.ts","src/components/field-label/field-label.scss?tag=ix-field-label&encapsulation=shadow","src/components/field-label/field-label.tsx","src/components/field-wrapper/field-wrapper.scss?tag=ix-field-wrapper&encapsulation=shadow","src/components/field-wrapper/field-wrapper.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { EventEmitter } from '@stencil/core';\nimport { IxComponent } from '../internal';\n\nexport * from './validation';\n\nexport interface FieldWrapperInterface {\n /**\n * Label for the field component\n */\n label?: string;\n /**\n * Show text below the field component which show additional information\n */\n helperText?: string;\n /**\n * Info text for the field component\n */\n infoText?: string;\n /**\n * Warning text for the field component\n */\n warningText?: string;\n /**\n * Error text for the field component\n */\n invalidText?: string;\n /**\n * Valid text for the field component\n */\n validText?: string;\n /**\n * Show helper, info, warning, error and valid text as tooltip\n */\n showTextAsTooltip?: boolean;\n}\n\nexport type HTMLIxFormComponentElement<T> = HTMLElement & IxFormComponent<T>;\nexport type HTMLIxInputFieldComponentElement<T> =\n HTMLIxFormComponentElement<T> & IxInputFieldComponent<T>;\n\nexport interface IxFormValidationState {\n // Annotate as @State()\n isInvalid: boolean;\n // Annotate as @State()\n isValid: boolean;\n // Annotate as @State()\n isInfo: boolean;\n // Annotate as @State()\n isWarning: boolean;\n}\n\nexport interface IxFormComponent<T = string> extends IxComponent {\n // Private internal\n formInternals: ElementInternals;\n\n // Annotate as @Prop({ reflect: true })\n required?: boolean;\n // Annotate as @Prop({ reflect: true })\n name?: string;\n // Annotate as @Prop()\n value?: T;\n // Annotate as @Prop()\n disabled: boolean;\n\n valueChange: EventEmitter<T>;\n ixBlur: EventEmitter<void>;\n\n updateFormInternalValue(value: T): void | Promise<void>;\n hasValidValue(): Promise<boolean>;\n getValidityState?(): Promise<ValidityState>;\n getAssociatedFormElement(): Promise<HTMLFormElement | null>;\n isTouched?(): Promise<boolean>;\n}\n\nexport interface IxInputFieldComponent<T = string>\n extends IxFormComponent<T>,\n IxFormValidationState,\n FieldWrapperInterface {\n // Annotate as @Prop()\n placeholder?: string;\n // Annotate as @Prop()\n readonly: boolean;\n\n // Annotate as @Method()\n getNativeInputElement(): Promise<HTMLInputElement | HTMLTextAreaElement>;\n\n // Annotate as @Method()\n focusInput(): Promise<void>;\n}\n\nexport function isIxInputFieldComponent<T>(\n obj: HTMLElement | IxFormComponent<T>\n): obj is HTMLIxInputFieldComponentElement<T> {\n return (\n obj &&\n 'getAssociatedFormElement' in obj &&\n typeof obj.getAssociatedFormElement === 'function' &&\n 'getNativeInputElement' in obj &&\n typeof obj.getNativeInputElement === 'function'\n );\n}\n","/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n:host {\n display: inline-block;\n position: relative;\n\n margin-top: 0.5rem;\n margin-bottom: 0.25rem;\n}\n","/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { Component, Element, h, Host, Prop, Watch } from '@stencil/core';\nimport { A11yAttributes, a11yHostAttributes } from '../utils/a11y';\nimport {\n ClassMutationObserver,\n createClassMutationObserver,\n HTMLIxFormComponentElement,\n isIxInputFieldComponent,\n} from '../utils/input';\nimport { IxComponent } from '../utils/internal';\nimport { MakeRef, makeRef } from '../utils/make-ref';\n\n@Component({\n tag: 'ix-field-label',\n styleUrl: 'field-label.scss',\n shadow: true,\n})\nexport class FormFieldLabel implements IxComponent {\n @Element() hostElement!: HTMLIxFieldLabelElement;\n\n /**\n * A value is required or must be checked for the form to be submittable\n */\n @Prop({ reflect: true, mutable: true }) required?: boolean;\n\n /**\n * The id of the form element that the label is associated with\n */\n @Prop({ reflect: true }) htmlFor?: string;\n\n /** @internal */\n @Prop() controlRef?:\n | MakeRef<HTMLElement>\n | MakeRef<HTMLInputElement>\n | MakeRef<HTMLTextAreaElement>;\n\n /** @internal */\n @Prop({ mutable: true }) isInvalid: boolean = false;\n\n private readonly htmlForObserver = new MutationObserver(() =>\n this.checkForInternalState()\n );\n private htmlForClassObserver?: ClassMutationObserver;\n private controlRefClassObserver?: ClassMutationObserver;\n private a11yAttributes: A11yAttributes = {};\n private readonly labelRef = makeRef<HTMLLabelElement>();\n\n connectedCallback() {\n this.registerHtmlForObserver();\n this.registerControlRefObserver();\n }\n\n disconnectedCallback(): void {\n if (this.htmlForObserver) {\n this.htmlForObserver.disconnect();\n }\n if (this.htmlForClassObserver) {\n this.htmlForClassObserver.destroy();\n }\n if (this.controlRefClassObserver) {\n this.controlRefClassObserver.destroy();\n }\n }\n\n componentWillRender() {\n this.checkForInternalState();\n }\n\n componentWillLoad(): void | Promise<void> {\n this.a11yAttributes = a11yHostAttributes(this.hostElement);\n }\n\n @Watch('htmlFor')\n private registerHtmlForObserver() {\n if (typeof window === 'undefined') {\n return;\n }\n\n if (this.htmlForObserver) {\n this.htmlForObserver.disconnect();\n }\n\n if (this.htmlFor) {\n this.htmlForObserver.observe(window.document, {\n childList: true,\n subtree: true,\n });\n }\n }\n\n @Watch('controlRef')\n private async registerControlRefObserver() {\n if (typeof window === 'undefined') {\n return;\n }\n\n if (this.controlRefClassObserver) {\n this.controlRefClassObserver.destroy();\n }\n\n if (this.controlRef) {\n const input = await this.controlRef.waitForCurrent();\n\n this.controlRefClassObserver = createClassMutationObserver(input, () =>\n this.checkForInvalidState(input)\n );\n }\n }\n\n private registerHtmlForClassObserver(\n forElement: HTMLIxFormComponentElement<unknown>\n ) {\n if (this.htmlForClassObserver) {\n this.htmlForClassObserver.destroy();\n }\n\n this.htmlForClassObserver = createClassMutationObserver(forElement, () =>\n this.checkForInvalidState(forElement)\n );\n }\n\n private checkForInvalidState(elementToCheck: HTMLElement) {\n this.isInvalid =\n elementToCheck.classList.contains('is-invalid') ||\n elementToCheck.classList.contains('ix-invalid');\n }\n\n private async checkForInternalState() {\n if (this.htmlFor) {\n const forElement = document.getElementById(\n this.htmlFor\n ) as HTMLIxFormComponentElement<unknown>;\n if (forElement) {\n if (typeof forElement.required === 'boolean') {\n this.required = forElement.required;\n }\n\n this.registerHtmlForClassObserver(forElement);\n this.checkForInvalidState(forElement);\n }\n }\n\n if (this.controlRef) {\n const input = await this.controlRef.waitForCurrent();\n this.required = (\n input as HTMLInputElement | HTMLTextAreaElement\n ).required;\n }\n }\n\n private async focusOnClick() {\n if (this.htmlFor) {\n const target = document.getElementById(this.htmlFor);\n if (target) {\n let input: HTMLElement | null = null;\n if (isIxInputFieldComponent(target)) {\n input = await target.getNativeInputElement();\n } else {\n input = target;\n }\n if (typeof input.focus === 'function') {\n input.focus();\n }\n }\n }\n\n if (this.controlRef) {\n (await this.controlRef.waitForCurrent()).focus();\n }\n }\n\n render() {\n return (\n <Host onClick={() => this.focusOnClick()}>\n <label\n htmlFor={this.htmlFor}\n {...this.a11yAttributes}\n ref={this.labelRef}\n >\n <ix-typography\n textColor={this.isInvalid ? 'alarm' : 'soft'}\n format=\"label\"\n >\n <slot></slot>\n {this.required && <span>*</span>}\n </ix-typography>\n </label>\n </Host>\n );\n }\n}\n","@use \"./field-wrapper.mixins.scss\";\n\n:host {\n display: flex;\n position: relative;\n flex-direction: column;\n\n .slot-wrapper {\n display: flex;\n position: relative;\n align-items: center;\n justify-content: flex-start;\n gap: 0.25rem;\n }\n\n .field-bottom,\n .field-top {\n display: flex;\n flex-direction: row;\n position: relative;\n justify-content: space-between;\n gap: 1rem;\n width: min-content;\n min-width: 100%;\n }\n\n .field-bottom .bottom-right {\n margin-left: auto;\n margin-right: 0px;\n }\n\n @include field-wrapper.helper-text;\n\n .bottom-text {\n margin-top: 0.25rem;\n margin-bottom: 0.25rem;\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { Component, Element, Host, Prop, h } from '@stencil/core';\nimport { FieldWrapperInterface } from '../utils/input';\nimport { MakeRef, makeRef } from '../utils/make-ref';\nimport { hasAnyText, HelperText } from './helper-text-util';\n\n/** @internal */\n@Component({\n tag: 'ix-field-wrapper',\n styleUrl: 'field-wrapper.scss',\n shadow: true,\n})\nexport class FieldWrapper implements FieldWrapperInterface {\n @Element() hostElement!: HTMLIxFieldWrapperElement;\n\n /**\n * Show text below the field component\n */\n @Prop() helperText?: string;\n\n /**\n * Label for the field component\n */\n @Prop() label?: string;\n\n /**\n * Error text for the field component\n */\n @Prop() invalidText?: string;\n\n /**\n * Valid text for the field component\n */\n @Prop() validText?: string;\n\n /**\n * Info text for the field component\n */\n @Prop() infoText?: string;\n\n /**\n * Warning text for the field component\n */\n @Prop() warningText?: string;\n\n /**\n * Is the field component invalid\n */\n @Prop() isInvalid: boolean = false;\n\n /**\n * Is the field component valid\n */\n @Prop() isValid: boolean = false;\n\n /**\n * Is the field component info\n */\n @Prop() isInfo: boolean = false;\n\n /**\n * Is the field component warning\n */\n @Prop() isWarning: boolean = false;\n\n /**\n * Show helper, error, info, warning text as tooltip\n */\n @Prop() showTextAsTooltip: boolean = false;\n\n /**\n * Show label as required\n */\n @Prop() required: boolean = false;\n\n /**\n * The id of the form element that the label is associated with\n */\n @Prop() htmlForLabel?: string;\n\n /**\n * The control element that the label is associated with\n */\n @Prop() controlRef?:\n | MakeRef<HTMLElement>\n | MakeRef<HTMLInputElement>\n | MakeRef<HTMLTextAreaElement>;\n\n private readonly slotRef = makeRef<HTMLDivElement>();\n\n render() {\n const textOptions = {\n invalidText: this.invalidText,\n isInvalid: this.isInvalid,\n isValid: this.isValid,\n validText: this.validText,\n isWarning: this.isWarning,\n warningText: this.warningText,\n isInfo: this.isInfo,\n infoText: this.infoText,\n helperText: this.helperText,\n };\n return (\n <Host>\n {this.label && (\n <div class=\"field-top\">\n <ix-field-label\n required={this.required}\n htmlFor={this.htmlForLabel}\n controlRef={this.controlRef}\n isInvalid={this.isInvalid}\n >\n {this.label}\n </ix-field-label>\n </div>\n )}\n <div\n class={{\n 'slot-wrapper': true,\n }}\n ref={this.slotRef}\n >\n <slot></slot>\n </div>\n <div class={'field-bottom'}>\n {!this.showTextAsTooltip && <HelperText {...textOptions} />}\n <div class=\"bottom-right\">\n <slot name=\"bottom-right\"></slot>\n </div>\n </div>\n\n {this.showTextAsTooltip === true && hasAnyText(textOptions) && (\n <ix-tooltip\n for={this.slotRef.waitForCurrent()}\n showDelay={500}\n placement=\"bottom\"\n >\n <HelperText {...textOptions} />\n </ix-tooltip>\n )}\n </Host>\n );\n }\n}\n"],"names":["HelperText"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ix-field-label.ix-field-wrapper.entry.esm.js","sources":["src/components/utils/input/index.ts","src/components/field-label/field-label.scss?tag=ix-field-label&encapsulation=shadow","src/components/field-label/field-label.tsx","src/components/field-wrapper/field-wrapper.scss?tag=ix-field-wrapper&encapsulation=shadow","src/components/field-wrapper/field-wrapper.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { EventEmitter } from '@stencil/core';\nimport { IxComponent } from '../internal';\n\nexport * from './validation';\n\nexport interface FieldWrapperInterface {\n /**\n * Label for the field component\n */\n label?: string;\n /**\n * Show text below the field component which show additional information\n */\n helperText?: string;\n /**\n * Info text for the field component\n */\n infoText?: string;\n /**\n * Warning text for the field component\n */\n warningText?: string;\n /**\n * Error text for the field component\n */\n invalidText?: string;\n /**\n * Valid text for the field component\n */\n validText?: string;\n /**\n * Show helper, info, warning, error and valid text as tooltip\n */\n showTextAsTooltip?: boolean;\n}\n\nexport type HTMLIxFormComponentElement<T> = HTMLElement & IxFormComponent<T>;\nexport type HTMLIxInputFieldComponentElement<T> =\n HTMLIxFormComponentElement<T> & IxInputFieldComponent<T>;\n\nexport interface IxFormValidationState {\n // Annotate as @State()\n isInvalid: boolean;\n // Annotate as @State()\n isValid: boolean;\n // Annotate as @State()\n isInfo: boolean;\n // Annotate as @State()\n isWarning: boolean;\n}\n\nexport interface IxFormComponent<T = string> extends IxComponent {\n // Private internal\n formInternals: ElementInternals;\n\n // Annotate as @Prop({ reflect: true })\n required?: boolean;\n // Annotate as @Prop({ reflect: true })\n name?: string;\n // Annotate as @Prop()\n value?: T;\n // Annotate as @Prop()\n disabled: boolean;\n\n valueChange: EventEmitter<T>;\n ixBlur: EventEmitter<void>;\n\n updateFormInternalValue(value: T): void | Promise<void>;\n hasValidValue(): Promise<boolean>;\n getValidityState?(): Promise<ValidityState>;\n getAssociatedFormElement(): Promise<HTMLFormElement | null>;\n isTouched?(): Promise<boolean>;\n}\n\nexport interface IxInputFieldComponent<T = string>\n extends IxFormComponent<T>,\n IxFormValidationState,\n FieldWrapperInterface {\n // Annotate as @Prop()\n placeholder?: string;\n // Annotate as @Prop()\n readonly: boolean;\n\n // Annotate as @Method()\n getNativeInputElement(): Promise<HTMLInputElement | HTMLTextAreaElement>;\n\n // Annotate as @Method()\n focusInput(): Promise<void>;\n}\n\nexport function isIxInputFieldComponent<T>(\n obj: HTMLElement | IxFormComponent<T>\n): obj is HTMLIxInputFieldComponentElement<T> {\n return (\n obj &&\n 'getAssociatedFormElement' in obj &&\n typeof obj.getAssociatedFormElement === 'function' &&\n 'getNativeInputElement' in obj &&\n typeof obj.getNativeInputElement === 'function'\n );\n}\n","/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n:host {\n display: inline-block;\n position: relative;\n\n margin-top: 0.5rem;\n margin-bottom: 0.25rem;\n}\n","/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { Component, Element, h, Host, Prop, Watch } from '@stencil/core';\nimport { A11yAttributes, a11yHostAttributes } from '../utils/a11y';\nimport {\n ClassMutationObserver,\n createClassMutationObserver,\n HTMLIxFormComponentElement,\n isIxInputFieldComponent,\n} from '../utils/input';\nimport { IxComponent } from '../utils/internal';\nimport { MakeRef, makeRef } from '../utils/make-ref';\n\n@Component({\n tag: 'ix-field-label',\n styleUrl: 'field-label.scss',\n shadow: true,\n})\nexport class FormFieldLabel implements IxComponent {\n @Element() hostElement!: HTMLIxFieldLabelElement;\n\n /**\n * A value is required or must be checked for the form to be submittable\n */\n @Prop({ reflect: true, mutable: true }) required?: boolean;\n\n /**\n * The id of the form element that the label is associated with\n */\n @Prop({ reflect: true }) htmlFor?: string;\n\n /** @internal */\n @Prop() controlRef?:\n | MakeRef<HTMLElement>\n | MakeRef<HTMLInputElement>\n | MakeRef<HTMLTextAreaElement>;\n\n /** @internal */\n @Prop({ mutable: true }) isInvalid: boolean = false;\n\n private explicitIsInvalid: boolean | undefined = undefined;\n\n @Watch('isInvalid')\n isInvalidChanged(newValue: boolean) {\n this.explicitIsInvalid = newValue;\n }\n\n private readonly htmlForObserver = new MutationObserver(() =>\n this.checkForInternalState()\n );\n private htmlForClassObserver?: ClassMutationObserver;\n private controlRefClassObserver?: ClassMutationObserver;\n private a11yAttributes: A11yAttributes = {};\n private readonly labelRef = makeRef<HTMLLabelElement>();\n\n connectedCallback() {\n this.registerHtmlForObserver();\n this.registerControlRefObserver();\n }\n\n disconnectedCallback(): void {\n if (this.htmlForObserver) {\n this.htmlForObserver.disconnect();\n }\n if (this.htmlForClassObserver) {\n this.htmlForClassObserver.destroy();\n }\n if (this.controlRefClassObserver) {\n this.controlRefClassObserver.destroy();\n }\n }\n\n componentWillRender() {\n this.checkForInternalState();\n }\n\n componentWillLoad(): void | Promise<void> {\n this.a11yAttributes = a11yHostAttributes(this.hostElement);\n }\n\n @Watch('htmlFor')\n private registerHtmlForObserver() {\n if (typeof window === 'undefined') {\n return;\n }\n\n if (this.htmlForObserver) {\n this.htmlForObserver.disconnect();\n }\n\n if (this.htmlFor) {\n this.htmlForObserver.observe(window.document, {\n childList: true,\n subtree: true,\n });\n }\n }\n\n @Watch('controlRef')\n private async registerControlRefObserver() {\n if (typeof window === 'undefined') {\n return;\n }\n\n if (this.controlRefClassObserver) {\n this.controlRefClassObserver.destroy();\n }\n\n if (this.controlRef && !this.htmlFor) {\n const input = await this.controlRef.waitForCurrent();\n\n this.controlRefClassObserver = createClassMutationObserver(input, () =>\n this.checkForInvalidState(input)\n );\n }\n }\n\n private registerHtmlForClassObserver(\n forElement: HTMLIxFormComponentElement<unknown>\n ) {\n if (this.htmlForClassObserver) {\n this.htmlForClassObserver.destroy();\n }\n\n this.htmlForClassObserver = createClassMutationObserver(forElement, () =>\n this.checkForInvalidState(forElement)\n );\n }\n\n private checkForInvalidState(elementToCheck: HTMLElement) {\n const hasInvalidClass =\n elementToCheck.classList.contains('is-invalid') ||\n elementToCheck.classList.contains('ix-invalid');\n\n this.isInvalid = this.explicitIsInvalid ?? hasInvalidClass;\n }\n\n private async checkForInternalState() {\n if (this.htmlFor) {\n const forElement = document.getElementById(\n this.htmlFor\n ) as HTMLIxFormComponentElement<unknown>;\n if (forElement) {\n if (typeof forElement.required === 'boolean') {\n this.required = forElement.required;\n }\n\n this.registerHtmlForClassObserver(forElement);\n this.checkForInvalidState(forElement);\n return;\n }\n }\n\n if (this.controlRef) {\n const input = await this.controlRef.waitForCurrent();\n this.required = (\n input as HTMLInputElement | HTMLTextAreaElement\n ).required;\n }\n }\n\n private async focusOnClick() {\n if (this.htmlFor) {\n const target = document.getElementById(this.htmlFor);\n if (target) {\n let input: HTMLElement | null = null;\n if (isIxInputFieldComponent(target)) {\n input = await target.getNativeInputElement();\n } else {\n input = target;\n }\n if (typeof input.focus === 'function') {\n input.focus();\n }\n }\n }\n\n if (this.controlRef) {\n (await this.controlRef.waitForCurrent()).focus();\n }\n }\n\n render() {\n return (\n <Host onClick={() => this.focusOnClick()}>\n <label\n htmlFor={this.htmlFor}\n {...this.a11yAttributes}\n ref={this.labelRef}\n >\n <ix-typography\n textColor={this.isInvalid ? 'alarm' : 'soft'}\n format=\"label\"\n >\n <slot></slot>\n {this.required && <span>*</span>}\n </ix-typography>\n </label>\n </Host>\n );\n }\n}\n","@use \"./field-wrapper.mixins.scss\";\n\n:host {\n display: flex;\n position: relative;\n flex-direction: column;\n\n .slot-wrapper {\n display: flex;\n position: relative;\n align-items: center;\n justify-content: flex-start;\n gap: 0.25rem;\n }\n\n .field-bottom,\n .field-top {\n display: flex;\n flex-direction: row;\n position: relative;\n justify-content: space-between;\n gap: 1rem;\n width: min-content;\n min-width: 100%;\n }\n\n .field-bottom .bottom-right {\n margin-left: auto;\n margin-right: 0px;\n }\n\n @include field-wrapper.helper-text;\n\n .bottom-text {\n margin-top: 0.25rem;\n margin-bottom: 0.25rem;\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { Component, Element, Host, Prop, h } from '@stencil/core';\nimport { FieldWrapperInterface } from '../utils/input';\nimport { MakeRef, makeRef } from '../utils/make-ref';\nimport { hasAnyText, HelperText } from './helper-text-util';\n\n/** @internal */\n@Component({\n tag: 'ix-field-wrapper',\n styleUrl: 'field-wrapper.scss',\n shadow: true,\n})\nexport class FieldWrapper implements FieldWrapperInterface {\n @Element() hostElement!: HTMLIxFieldWrapperElement;\n\n /**\n * Show text below the field component\n */\n @Prop() helperText?: string;\n\n /**\n * Label for the field component\n */\n @Prop() label?: string;\n\n /**\n * Error text for the field component\n */\n @Prop() invalidText?: string;\n\n /**\n * Valid text for the field component\n */\n @Prop() validText?: string;\n\n /**\n * Info text for the field component\n */\n @Prop() infoText?: string;\n\n /**\n * Warning text for the field component\n */\n @Prop() warningText?: string;\n\n /**\n * Is the field component invalid\n */\n @Prop() isInvalid: boolean = false;\n\n /**\n * Is the field component valid\n */\n @Prop() isValid: boolean = false;\n\n /**\n * Is the field component info\n */\n @Prop() isInfo: boolean = false;\n\n /**\n * Is the field component warning\n */\n @Prop() isWarning: boolean = false;\n\n /**\n * Show helper, error, info, warning text as tooltip\n */\n @Prop() showTextAsTooltip: boolean = false;\n\n /**\n * Show label as required\n */\n @Prop() required: boolean = false;\n\n /**\n * The id of the form element that the label is associated with\n */\n @Prop() htmlForLabel?: string;\n\n /**\n * The control element that the label is associated with\n */\n @Prop() controlRef?:\n | MakeRef<HTMLElement>\n | MakeRef<HTMLInputElement>\n | MakeRef<HTMLTextAreaElement>;\n\n private readonly slotRef = makeRef<HTMLDivElement>();\n\n render() {\n const textOptions = {\n invalidText: this.invalidText,\n isInvalid: this.isInvalid,\n isValid: this.isValid,\n validText: this.validText,\n isWarning: this.isWarning,\n warningText: this.warningText,\n isInfo: this.isInfo,\n infoText: this.infoText,\n helperText: this.helperText,\n };\n return (\n <Host>\n {this.label && (\n <div class=\"field-top\">\n <ix-field-label\n required={this.required}\n htmlFor={this.htmlForLabel}\n controlRef={this.controlRef}\n isInvalid={this.isInvalid}\n >\n {this.label}\n </ix-field-label>\n </div>\n )}\n <div\n class={{\n 'slot-wrapper': true,\n }}\n ref={this.slotRef}\n >\n <slot></slot>\n </div>\n <div class={'field-bottom'}>\n {!this.showTextAsTooltip && <HelperText {...textOptions} />}\n <div class=\"bottom-right\">\n <slot name=\"bottom-right\"></slot>\n </div>\n </div>\n\n {this.showTextAsTooltip === true && hasAnyText(textOptions) && (\n <ix-tooltip\n for={this.slotRef.waitForCurrent()}\n showDelay={500}\n placement=\"bottom\"\n >\n <HelperText {...textOptions} />\n </ix-tooltip>\n )}\n </Host>\n );\n }\n}\n"],"names":["HelperText"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ix-icon-button.ix-spinner.entry.esm.js","sources":["src/components/icon-button/icon-button.scss?tag=ix-icon-button&encapsulation=shadow","src/components/icon-button/icon-button.tsx","src/components/spinner/spinner.scss?tag=ix-spinner&encapsulation=shadow","src/components/spinner/spinner.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n@use './icon-button-mixin.scss';\n\n@include icon-button-mixin.base-icon-button;\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { Component, Element, h, Host, Prop } from '@stencil/core';\nimport { BaseButtonProps } from '../button/base-button';\nimport { BaseIconButton } from '../icon-button/base-icon-button';\nimport {\n getFallbackLabelFromIconName,\n a11yHostAttributes,\n} from '../utils/a11y';\nimport type { IconButtonVariant } from './icon-button.types';\n\n@Component({\n tag: 'ix-icon-button',\n styleUrl: 'icon-button.scss',\n shadow: true,\n})\nexport class IconButton {\n @Element() hostElement!: HTMLIxIconButtonElement;\n\n /**\n * Accessibility label for the icon button\n * Will be set as aria-label on the nested HTML button element\n *\n * @deprecated Set the native `aria-label` on the ix-icon-button host element. Will be removed in 5.0.0\n */\n @Prop({ attribute: 'a11y-label' }) a11yLabel?: string;\n\n /**\n * Variant of button\n */\n @Prop() variant: IconButtonVariant = 'subtle-primary';\n\n /**\n * Button in oval shape\n */\n @Prop() oval: boolean = false;\n\n /**\n * Icon name\n */\n @Prop() icon?: string;\n\n /**\n * Size of icon in button\n *\n */\n @Prop() size: '24' | '16' | '12' = '24';\n\n /**\n * Color of icon in button\n */\n @Prop() iconColor?: string;\n\n /**\n * Disabled\n */\n @Prop() disabled = false;\n\n /**\n * Type of the button\n */\n @Prop() type: 'button' | 'submit' = 'button';\n\n /**\n * Loading button\n */\n @Prop() loading = false;\n\n /**\n * Temp. workaround until stencil issue is fixed (https://github.com/ionic-team/stencil/issues/2284)\n */\n submitButtonElement!: HTMLButtonElement;\n\n componentDidLoad() {\n if (this.type === 'submit') {\n const submitButton = document.createElement('button');\n submitButton.style.display = 'none';\n submitButton.type = 'submit';\n submitButton.tabIndex = -1;\n this.hostElement.appendChild(submitButton);\n\n this.submitButtonElement = submitButton;\n }\n }\n\n dispatchFormEvents() {\n if (this.type === 'submit' && this.submitButtonElement) {\n this.submitButtonElement.click();\n }\n }\n\n private getIconSizeClass() {\n return {\n 'btn-icon-12': this.size === '12',\n 'btn-icon-16': this.size === '16',\n 'btn-icon-32': this.size === '24' || !this.size,\n };\n }\n\n render() {\n const a11y = a11yHostAttributes(this.hostElement);\n\n const baseButtonProps: BaseButtonProps = {\n ariaAttributes: {\n 'aria-label':\n a11y['aria-label'] ??\n this.a11yLabel ??\n getFallbackLabelFromIconName(this.icon),\n },\n variant: this.variant,\n iconOnly: true,\n iconOval: this.oval,\n selected: false,\n disabled: this.disabled || this.loading,\n icon: this.icon,\n iconColor: this.iconColor,\n iconSize: this.size,\n loading: this.loading,\n onClick: () => this.dispatchFormEvents(),\n type: this.type,\n extraClasses: this.getIconSizeClass(),\n };\n\n return (\n <Host\n class={{\n ...this.getIconSizeClass(),\n disabled: this.disabled || this.loading,\n }}\n >\n <BaseIconButton {...baseButtonProps}></BaseIconButton>\n </Host>\n );\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n@use 'mixins/shadow-dom/component';\n\n@mixin ix-spinner($size-name: 'medium', $size: 2rem, $track-size: 4px) {\n :host {\n display: block;\n position: relative;\n\n @include component.ix-component;\n }\n\n .#{$size-name} {\n width: $size;\n height: $size;\n min-width: $size;\n min-height: $size;\n max-width: $size;\n max-height: $size;\n border-radius: 100%;\n position: relative;\n animation: rotate 2s linear infinite;\n\n @keyframes rotate {\n 100% {\n transform: rotate(360deg);\n }\n }\n\n @keyframes clipMask {\n 0% {\n clip-path: polygon(50% 50%, 0 0, 0 0, 0 0, 0 0, 0 0);\n }\n 12.5% {\n clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 0, 100% 0, 100% 0);\n }\n 25% {\n clip-path: polygon(\n 50% 50%,\n 0 0,\n 100% 0,\n 100% 100%,\n 100% 100%,\n 100% 100%\n );\n }\n 37.5% {\n clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 100%);\n }\n 50% {\n clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 0);\n }\n 62.5% {\n clip-path: polygon(50% 50%, 100% 0, 100% 0, 100% 100%, 0 100%, 0 0);\n }\n 75% {\n clip-path: polygon(\n 50% 50%,\n 100% 100%,\n 100% 100%,\n 100% 100%,\n 0 100%,\n 0 0\n );\n }\n 87.5% {\n clip-path: polygon(50% 50%, 0 100%, 0 100%, 0 100%, 0 100%, 0 0);\n }\n 100% {\n clip-path: polygon(50% 50%, 0 0, 0 0, 0 0, 0 0, 0 0);\n }\n }\n }\n\n .#{$size-name}::after {\n content: '';\n box-sizing: border-box;\n position: absolute;\n inset: 8.33%;\n border-radius: 100%;\n border: $track-size solid\n var(--ix-button-color, var(--theme-color-soft-text));\n animation: clipMask 3s linear infinite;\n }\n\n .#{$size-name}:not(.hide-track)::before {\n content: '';\n box-sizing: border-box;\n position: absolute;\n inset: 8.33%;\n border-radius: 100%;\n //TODO(IX-3400): Replace track color with proper CSS variables when available\n border: $track-size solid var(--theme-color-component-3);\n }\n\n .primary::after {\n border-color: var(--theme-color-dynamic);\n }\n\n .primary::before {\n border-color: var(--theme-color-ghost--hover);\n }\n}\n\n@include ix-spinner($size-name: 'xx-small', $size: 0.75rem, $track-size: 1px);\n@include ix-spinner($size-name: 'x-small', $size: 1.25rem, $track-size: 2px);\n@include ix-spinner($size-name: 'small', $size: 1.5rem, $track-size: 2px);\n@include ix-spinner($size-name: 'medium', $size: 2rem, $track-size: 2px);\n@include ix-spinner($size-name: 'large', $size: 6rem, $track-size: 4px);\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { Component, Element, h, Host, Prop } from '@stencil/core';\n\n@Component({\n tag: 'ix-spinner',\n styleUrl: 'spinner.scss',\n shadow: true,\n})\nexport class Spinner {\n @Element() hostElement!: HTMLIxSpinnerElement;\n\n /**\n * Variant of spinner\n */\n @Prop() variant: 'primary' | 'secondary' = 'secondary';\n\n /**\n * Size of spinner\n */\n @Prop() size: 'xx-small' | 'x-small' | 'small' | 'medium' | 'large' =\n 'medium';\n\n /**\n * @internal\n */\n @Prop() hideTrack = false;\n\n render() {\n return (\n <Host>\n <div\n class={{\n primary: this.variant === 'primary',\n [this.size]: true,\n 'hide-track': this.hideTrack,\n }}\n ></div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ix-icon-button.ix-spinner.entry.esm.js","sources":["src/components/icon-button/icon-button.scss?tag=ix-icon-button&encapsulation=shadow","src/components/icon-button/icon-button.tsx","src/components/spinner/spinner.scss?tag=ix-spinner&encapsulation=shadow","src/components/spinner/spinner.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n@use './icon-button-mixin.scss';\n\n@include icon-button-mixin.base-icon-button;\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { Component, Element, h, Host, Prop } from '@stencil/core';\nimport { BaseButtonProps } from '../button/base-button';\nimport { BaseIconButton } from '../icon-button/base-icon-button';\nimport {\n a11yHostAttributes,\n getFallbackLabelFromIconName,\n} from '../utils/a11y';\nimport type { IconButtonVariant } from './icon-button.types';\n\n@Component({\n tag: 'ix-icon-button',\n styleUrl: 'icon-button.scss',\n shadow: true,\n})\nexport class IconButton {\n @Element() hostElement!: HTMLIxIconButtonElement;\n\n /**\n * Accessibility label for the icon button\n * Will be set as aria-label on the nested HTML button element\n *\n * @deprecated Set the native `aria-label` on the ix-icon-button host element. Will be removed in 5.0.0\n */\n @Prop({ attribute: 'a11y-label' }) a11yLabel?: string;\n\n /**\n * Variant of button\n */\n @Prop() variant: IconButtonVariant = 'subtle-primary';\n\n /**\n * Button in oval shape\n */\n @Prop() oval: boolean = false;\n\n /**\n * Icon name\n */\n @Prop() icon?: string;\n\n /**\n * Size of icon in button\n *\n */\n @Prop() size: '24' | '16' | '12' = '24';\n\n /**\n * Color of icon in button\n */\n @Prop() iconColor?: string;\n\n /**\n * Disabled\n */\n @Prop() disabled = false;\n\n /**\n * Type of the button\n */\n @Prop() type: 'button' | 'submit' = 'button';\n\n /**\n * Loading button\n */\n @Prop() loading = false;\n\n /**\n * Temp. workaround until stencil issue is fixed (https://github.com/ionic-team/stencil/issues/2284)\n */\n submitButtonElement!: HTMLButtonElement;\n\n componentDidLoad() {\n if (this.type === 'submit') {\n const submitButton = document.createElement('button');\n submitButton.style.display = 'none';\n submitButton.type = 'submit';\n submitButton.tabIndex = -1;\n this.hostElement.appendChild(submitButton);\n\n this.submitButtonElement = submitButton;\n }\n }\n\n dispatchFormEvents() {\n if (this.type === 'submit' && this.submitButtonElement) {\n this.submitButtonElement.click();\n }\n }\n\n private getIconSizeClass() {\n return {\n 'btn-icon-12': this.size === '12',\n 'btn-icon-16': this.size === '16',\n 'btn-icon-32': this.size === '24' || !this.size,\n };\n }\n\n render() {\n const a11y = a11yHostAttributes(this.hostElement);\n\n const baseButtonProps: BaseButtonProps = {\n ariaAttributes: {\n 'aria-label':\n a11y['aria-label'] ??\n this.a11yLabel ??\n getFallbackLabelFromIconName(this.icon),\n },\n variant: this.variant,\n iconOnly: true,\n iconOval: this.oval,\n selected: false,\n disabled: this.disabled || this.loading,\n icon: this.icon,\n iconColor: this.iconColor,\n iconSize: this.size,\n loading: this.loading,\n onClick: () => this.dispatchFormEvents(),\n type: this.type,\n extraClasses: this.getIconSizeClass(),\n tabIndex: this.hostElement.hasAttribute('tabindex')\n ? this.hostElement.tabIndex\n : undefined,\n };\n\n return (\n <Host\n class={{\n ...this.getIconSizeClass(),\n disabled: this.disabled || this.loading,\n }}\n >\n <BaseIconButton {...baseButtonProps}></BaseIconButton>\n </Host>\n );\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n@use 'mixins/shadow-dom/component';\n\n@mixin ix-spinner($size-name: 'medium', $size: 2rem, $track-size: 4px) {\n :host {\n display: block;\n position: relative;\n\n @include component.ix-component;\n }\n\n .#{$size-name} {\n width: $size;\n height: $size;\n min-width: $size;\n min-height: $size;\n max-width: $size;\n max-height: $size;\n border-radius: 100%;\n position: relative;\n animation: rotate 2s linear infinite;\n\n @keyframes rotate {\n 100% {\n transform: rotate(360deg);\n }\n }\n\n @keyframes clipMask {\n 0% {\n clip-path: polygon(50% 50%, 0 0, 0 0, 0 0, 0 0, 0 0);\n }\n 12.5% {\n clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 0, 100% 0, 100% 0);\n }\n 25% {\n clip-path: polygon(\n 50% 50%,\n 0 0,\n 100% 0,\n 100% 100%,\n 100% 100%,\n 100% 100%\n );\n }\n 37.5% {\n clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 100%);\n }\n 50% {\n clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 0);\n }\n 62.5% {\n clip-path: polygon(50% 50%, 100% 0, 100% 0, 100% 100%, 0 100%, 0 0);\n }\n 75% {\n clip-path: polygon(\n 50% 50%,\n 100% 100%,\n 100% 100%,\n 100% 100%,\n 0 100%,\n 0 0\n );\n }\n 87.5% {\n clip-path: polygon(50% 50%, 0 100%, 0 100%, 0 100%, 0 100%, 0 0);\n }\n 100% {\n clip-path: polygon(50% 50%, 0 0, 0 0, 0 0, 0 0, 0 0);\n }\n }\n }\n\n .#{$size-name}::after {\n content: '';\n box-sizing: border-box;\n position: absolute;\n inset: 8.33%;\n border-radius: 100%;\n border: $track-size solid\n var(--ix-button-color, var(--theme-color-soft-text));\n animation: clipMask 3s linear infinite;\n }\n\n .#{$size-name}:not(.hide-track)::before {\n content: '';\n box-sizing: border-box;\n position: absolute;\n inset: 8.33%;\n border-radius: 100%;\n //TODO(IX-3400): Replace track color with proper CSS variables when available\n border: $track-size solid var(--theme-color-component-3);\n }\n\n .primary::after {\n border-color: var(--theme-color-dynamic);\n }\n\n .primary::before {\n border-color: var(--theme-color-ghost--hover);\n }\n}\n\n@include ix-spinner($size-name: 'xx-small', $size: 0.75rem, $track-size: 1px);\n@include ix-spinner($size-name: 'x-small', $size: 1.25rem, $track-size: 2px);\n@include ix-spinner($size-name: 'small', $size: 1.5rem, $track-size: 2px);\n@include ix-spinner($size-name: 'medium', $size: 2rem, $track-size: 2px);\n@include ix-spinner($size-name: 'large', $size: 6rem, $track-size: 4px);\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { Component, Element, h, Host, Prop } from '@stencil/core';\n\n@Component({\n tag: 'ix-spinner',\n styleUrl: 'spinner.scss',\n shadow: true,\n})\nexport class Spinner {\n @Element() hostElement!: HTMLIxSpinnerElement;\n\n /**\n * Variant of spinner\n */\n @Prop() variant: 'primary' | 'secondary' = 'secondary';\n\n /**\n * Size of spinner\n */\n @Prop() size: 'xx-small' | 'x-small' | 'small' | 'medium' | 'large' =\n 'medium';\n\n /**\n * @internal\n */\n @Prop() hideTrack = false;\n\n render() {\n return (\n <Host>\n <div\n class={{\n primary: this.variant === 'primary',\n [this.size]: true,\n 'hide-track': this.hideTrack,\n }}\n ></div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ix-menu-about.entry.esm.js","sources":["src/components/menu-about/menu-about.scss?tag=ix-menu-about&encapsulation=shadow","src/components/menu-about/menu-about.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n@use './common-variables' as vars;\n@use 'legacy/fonts';\n\n:host {\n display: block;\n background-color: var(--theme-nav-overlay--background);\n padding: vars.$medium-space vars.$default-space vars.$default-space\n vars.$x-large-space;\n flex-grow: 1;\n position: absolute;\n width: 100%;\n height: 100%;\n\n .about-header {\n display: flex;\n justify-content: space-between;\n flex-direction: row;\n align-items: center;\n height: vars.$x-large-space;\n margin-bottom: vars.$small-space;\n\n h2 {\n color: var(--theme-nav-overlay-header--color);\n margin-bottom: 1rem;\n }\n }\n\n ix-tabs {\n margin-bottom: 1.5rem;\n }\n\n ix-menu-about-item {\n display: none;\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n forceUpdate,\n h,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { MenuTabs } from '../utils/menu-tabs/menu-tabs-fc';\nimport {\n CustomCloseEvent,\n initialize,\n syncTabDisplay,\n} from '../utils/menu-tabs/menu-tabs-utils';\n\n@Component({\n tag: 'ix-menu-about',\n styleUrl: 'menu-about.scss',\n shadow: true,\n})\nexport class MenuAbout {\n @Element() el!: HTMLIxMenuAboutElement;\n\n /**\n * Active tab\n */\n // eslint-disable-next-line @stencil-community/strict-mutable\n @Prop({ mutable: true }) activeTabLabel?: string;\n\n /**\n * Content of the header\n */\n @Prop() label = 'About & legal information';\n\n /** @internal */\n @Prop() show = false;\n\n /**\n * Active tab changed\n * @since 3.0.0\n */\n @Event() tabChange!: EventEmitter<string>;\n\n /**\n * About and Legal closed\n */\n @Event() close!: EventEmitter<CustomCloseEvent>;\n\n @State() items!: HTMLIxMenuAboutItemElement[];\n\n @Watch('activeTabLabel')\n updateTab(newLabel: string, oldLabel: string) {\n if (newLabel !== oldLabel) {\n syncTabDisplay(this, newLabel);\n }\n }\n\n componentWillLoad() {\n initialize(this);\n }\n\n componentDidLoad() {\n forceUpdate(this.el);\n }\n\n render() {\n return <MenuTabs context={this} />;\n }\n}\n"],"names":[],"mappings":";;;;AAAA,MAAM,YAAY,GAAG,ozGAAozG;;MCgC5zG,SAAS,GAAA,MAAA;AALtB,IAAA,WAAA,CAAA,OAAA,EAAA;;;;AAcE;;AAEG;AACK,QAAA,IAAK,CAAA,KAAA,GAAG,2BAA2B;;
|
|
1
|
+
{"version":3,"file":"ix-menu-about.entry.esm.js","sources":["src/components/menu-about/menu-about.scss?tag=ix-menu-about&encapsulation=shadow","src/components/menu-about/menu-about.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n@use './common-variables' as vars;\n@use 'legacy/fonts';\n\n:host {\n display: block;\n background-color: var(--theme-nav-overlay--background);\n padding: vars.$medium-space vars.$default-space vars.$default-space\n vars.$x-large-space;\n flex-grow: 1;\n position: absolute;\n width: 100%;\n height: 100%;\n\n .about-header {\n display: flex;\n justify-content: space-between;\n flex-direction: row;\n align-items: center;\n height: vars.$x-large-space;\n margin-bottom: vars.$small-space;\n\n h2 {\n color: var(--theme-nav-overlay-header--color);\n margin-bottom: 1rem;\n }\n }\n\n ix-tabs {\n margin-bottom: 1.5rem;\n }\n\n ix-menu-about-item {\n display: none;\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n forceUpdate,\n h,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { MenuTabs } from '../utils/menu-tabs/menu-tabs-fc';\nimport {\n CustomCloseEvent,\n initialize,\n syncTabDisplay,\n} from '../utils/menu-tabs/menu-tabs-utils';\n\n@Component({\n tag: 'ix-menu-about',\n styleUrl: 'menu-about.scss',\n shadow: true,\n})\nexport class MenuAbout {\n @Element() el!: HTMLIxMenuAboutElement;\n\n /**\n * Active tab\n */\n // eslint-disable-next-line @stencil-community/strict-mutable\n @Prop({ mutable: true }) activeTabLabel?: string;\n\n /**\n * Content of the header\n */\n @Prop() label = 'About & legal information';\n\n /**\n * Aria label for close button\n */\n @Prop() ariaLabelCloseButton = 'Close About';\n\n /** @internal */\n @Prop() show = false;\n\n /**\n * Active tab changed\n * @since 3.0.0\n */\n @Event() tabChange!: EventEmitter<string>;\n\n /**\n * About and Legal closed\n */\n @Event() close!: EventEmitter<CustomCloseEvent>;\n\n @State() items!: HTMLIxMenuAboutItemElement[];\n\n @Watch('activeTabLabel')\n updateTab(newLabel: string, oldLabel: string) {\n if (newLabel !== oldLabel) {\n syncTabDisplay(this, newLabel);\n }\n }\n\n componentWillLoad() {\n initialize(this);\n }\n\n componentDidLoad() {\n forceUpdate(this.el);\n }\n\n render() {\n return <MenuTabs context={this} />;\n }\n}\n"],"names":[],"mappings":";;;;AAAA,MAAM,YAAY,GAAG,ozGAAozG;;MCgC5zG,SAAS,GAAA,MAAA;AALtB,IAAA,WAAA,CAAA,OAAA,EAAA;;;;AAcE;;AAEG;AACK,QAAA,IAAK,CAAA,KAAA,GAAG,2BAA2B;AAE3C;;AAEG;AACK,QAAA,IAAoB,CAAA,oBAAA,GAAG,aAAa;;AAGpC,QAAA,IAAI,CAAA,IAAA,GAAG,KAAK;AAiCrB;IAjBC,SAAS,CAAC,QAAgB,EAAE,QAAgB,EAAA;AAC1C,QAAA,IAAI,QAAQ,KAAK,QAAQ,EAAE;AACzB,YAAA,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC;;;IAIlC,iBAAiB,GAAA;QACf,UAAU,CAAC,IAAI,CAAC;;IAGlB,gBAAgB,GAAA;AACd,QAAA,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;;IAGtB,MAAM,GAAA;AACJ,QAAA,OAAO,EAAC,QAAQ,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAC,OAAO,EAAE,IAAI,GAAI;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ix-menu-avatar.entry.esm.js","sources":["src/components/menu-avatar/menu-avatar.scss?tag=ix-menu-avatar&encapsulation=shadow","src/components/menu-avatar/menu-avatar.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n@use './common-variables' as vars;\n@use 'mixins/text-truncation';\n@use 'mixins/hover';\n@use 'mixins/shadow-dom/component';\n\n:host {\n display: block;\n position: relative;\n margin-bottom: 0.5rem;\n margin-right: 0.75rem;\n\n @include component.ix-component;\n\n .avatar {\n all: unset;\n box-sizing: border-box;\n\n display: flex;\n align-items: center;\n height: 2.5rem;\n width: 100%;\n max-height: 2.5rem;\n padding-left: 0.25rem;\n margin-left: 0.41rem;\n margin-right: 0.35rem;\n transition: var(--theme-default-time);\n\n .avatar-name {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n white-space: nowrap;\n margin-left: vars.$default-space;\n line-height: 1.14;\n\n .text-default-single {\n color: var(--theme-nav-item-primary--color);\n @include text-truncation.ellipsis;\n }\n }\n\n border-radius: 1.25rem;\n\n @include hover.hover {\n background-color: var(--theme-avatar-btn--background--hover);\n color: var(--theme-avatar-btn--color--hover);\n }\n\n @include hover.active {\n background-color: var(--theme-avatar-btn--background--active);\n color: var(--theme-avatar-btn--color--active);\n }\n }\n\n .avatar:focus-visible {\n outline: 1px solid var(--theme-color-focus-bdr);\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Prop,\n State,\n} from '@stencil/core';\nimport {
|
|
1
|
+
{"version":3,"file":"ix-menu-avatar.entry.esm.js","sources":["src/components/menu-avatar/menu-avatar.scss?tag=ix-menu-avatar&encapsulation=shadow","src/components/menu-avatar/menu-avatar.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n@use './common-variables' as vars;\n@use 'mixins/text-truncation';\n@use 'mixins/hover';\n@use 'mixins/shadow-dom/component';\n\n:host {\n display: block;\n position: relative;\n margin-bottom: 0.5rem;\n margin-right: 0.75rem;\n\n @include component.ix-component;\n\n .avatar {\n all: unset;\n box-sizing: border-box;\n\n display: flex;\n align-items: center;\n height: 2.5rem;\n width: 100%;\n max-height: 2.5rem;\n padding-left: 0.25rem;\n margin-left: 0.41rem;\n margin-right: 0.35rem;\n transition: var(--theme-default-time);\n\n .avatar-name {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n white-space: nowrap;\n margin-left: vars.$default-space;\n line-height: 1.14;\n\n .text-default-single {\n color: var(--theme-nav-item-primary--color);\n @include text-truncation.ellipsis;\n }\n }\n\n border-radius: 1.25rem;\n\n @include hover.hover {\n background-color: var(--theme-avatar-btn--background--hover);\n color: var(--theme-avatar-btn--color--hover);\n }\n\n @include hover.active {\n background-color: var(--theme-avatar-btn--background--active);\n color: var(--theme-avatar-btn--color--active);\n }\n }\n\n .avatar:focus-visible {\n outline: 1px solid var(--theme-color-focus-bdr);\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { iconLogOut } from '@siemens/ix-icons/icons';\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Prop,\n State,\n} from '@stencil/core';\nimport { a11yBoolean } from '../utils/a11y';\nimport { makeRef } from '../utils/make-ref';\nimport { getSlottedElements } from '../utils/shadow-dom';\n\n@Component({\n tag: 'ix-menu-avatar',\n styleUrl: 'menu-avatar.scss',\n shadow: true,\n})\nexport class MenuAvatar {\n @Element() hostElement!: HTMLIxMenuAvatarElement;\n\n /**\n * First line of text\n */\n @Prop() top?: string;\n\n /**\n * Second line of text\n */\n @Prop() bottom?: string;\n\n /**\n * Display a avatar image\n */\n @Prop() image?: string;\n\n /**\n * Display the initials of the user. Will be overwritten by image\n */\n @Prop() initials?: string;\n\n /**\n * Tooltip text to display on hover. If not set, the 'top' property (user name) will be used as the default tooltip text.\n *\n * @since 4.3.0.\n */\n @Prop() tooltipText?: string;\n\n /**\n * aria-label for the tooltip\n *\n * @since 4.3.0.\n */\n @Prop() ariaLabelTooltip?: string;\n\n /**\n * i18n label for 'Logout' button\n */\n @Prop({ attribute: 'i18n-logout' }) i18nLogout: string = 'Logout';\n\n /**\n * Control the visibility of the logout button\n */\n @Prop() hideLogoutButton: boolean = false;\n\n /**\n * Enable Popover API rendering for dropdown.\n *\n * @default false\n * @since 4.3.0\n */\n @Prop() enableTopLayer: boolean = false;\n\n /**\n * Control the visibility of the dropdown menu\n */\n @State() showContextMenu: boolean = false;\n\n /**\n * Logout click\n */\n @Event() logoutClick!: EventEmitter;\n\n private avatarElementId = 'ix-menu-avatar-id';\n private readonly tooltipRef = makeRef<HTMLIxTooltipElement>();\n\n onSlotChange() {\n const slot = this.hostElement.shadowRoot!.querySelector('slot');\n if (!slot) {\n return;\n }\n const elements = getSlottedElements(slot);\n this.showContextMenu = elements.length !== 0;\n }\n\n render() {\n const tooltipText = this.tooltipText ?? this.top;\n const ariaHidden = tooltipText === this.top;\n\n return (\n <Host slot=\"ix-menu-avatar\">\n <button\n class=\"nav-item top-item avatar no-hover\"\n id={this.avatarElementId}\n tabIndex={0}\n >\n <ix-avatar image={this.image} initials={this.initials}></ix-avatar>\n\n <div class=\"avatar-name\">\n <span class=\"text-default-single\">{this.top}</span>\n <span class=\"text-default-single\">{this.bottom}</span>\n </div>\n </button>\n {!!tooltipText && (\n <ix-tooltip\n ref={this.tooltipRef}\n for={`#${this.avatarElementId}`}\n placement={'right'}\n aria-hidden={a11yBoolean(ariaHidden)}\n aria-label={this.ariaLabelTooltip}\n >\n {tooltipText}\n </ix-tooltip>\n )}\n <ix-dropdown\n trigger={this.hostElement}\n placement={'right-start'}\n hidden={!this.showContextMenu && this.hideLogoutButton}\n offset={{\n mainAxis: 16,\n }}\n onShowChanged={(event) => {\n if (event.detail && this.tooltipRef.current) {\n this.tooltipRef.current.hideTooltip(0);\n }\n }}\n enableTopLayer={this.enableTopLayer}\n >\n <slot onSlotchange={() => this.onSlotChange()}></slot>\n {!this.hideLogoutButton && (\n <ix-menu-avatar-item\n label={this.i18nLogout}\n icon={iconLogOut}\n onClick={(e) => {\n this.logoutClick.emit(e);\n }}\n ></ix-menu-avatar-item>\n )}\n </ix-dropdown>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ix-menu-category.entry.esm.js","sources":["src/components/menu-category/enter-leave.ts","src/components/menu-category/menu-category.scss?tag=ix-menu-category&encapsulation=shadow","src/components/menu-category/menu-category.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nexport function createEnterLeaveDebounce(\n enterCallback: Function,\n leaveCallback: Function,\n {\n debounceTimeEnter,\n debounceTimeLeave,\n }: {\n debounceTimeEnter: number;\n debounceTimeLeave: number;\n } = {\n debounceTimeEnter: 0,\n debounceTimeLeave: 500,\n }\n) {\n let enterTimeout: NodeJS.Timeout;\n let leaveTimeout: NodeJS.Timeout;\n\n return {\n onEnter: () => {\n clearTimeout(leaveTimeout);\n enterTimeout = setTimeout(() => {\n enterCallback();\n }, debounceTimeEnter);\n },\n onLeave: () => {\n clearTimeout(enterTimeout);\n leaveTimeout = setTimeout(() => {\n leaveCallback();\n }, debounceTimeLeave);\n },\n };\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n@use 'mixins/shadow-dom/component';\n@use 'mixins/text-truncation';\n\n:host {\n display: flex;\n flex-direction: column;\n position: relative;\n\n @include component.ix-component;\n\n .category {\n display: flex;\n position: relative;\n align-items: center;\n width: 100%;\n height: 100%;\n }\n\n .category-text {\n width: 100%;\n padding-right: 0.25rem;\n\n @include text-truncation.ellipsis;\n }\n\n .category-chevron {\n margin-left: auto;\n margin-right: 0;\n transition: var(--theme-default-time) transform ease-in-out;\n }\n\n .category-chevron--open {\n transform: rotate(-180deg);\n }\n\n .menu-items {\n overflow: hidden;\n max-height: 0;\n transition: var(--theme-default-time) max-height ease-in-out;\n }\n\n .menu-items--expanded {\n max-height: 999999999px;\n padding: 0.25rem 0 0.25rem 1.625rem;\n }\n\n .menu-items--collapsed {\n display: none;\n }\n\n .category-dropdown {\n ::slotted(ix-menu-item) {\n --ix-menu-item-height: 2.5rem;\n }\n }\n\n .category-dropdown-header {\n pointer-events: none;\n padding-left: 0.125rem;\n min-width: 256px;\n }\n\n ::slotted(ix-menu-item) {\n --ix-menu-item-height: 2.5rem;\n }\n}\n\n:host(.expanded) {\n background-color: var(--theme-color-ghost--active);\n}\n\n:host {\n ::slotted(a[href]) {\n text-decoration: none !important;\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport {\n Component,\n Element,\n h,\n Host,\n Prop,\n State,\n Event,\n EventEmitter,\n Listen,\n} from '@stencil/core';\nimport { animate } from 'animejs';\nimport { closestIxMenu } from '../utils/application-layout/context';\nimport { createMutationObserver } from '../utils/mutation-observer';\nimport { createEnterLeaveDebounce } from './enter-leave';\nimport { iconChevronDownSmall } from '@siemens/ix-icons/icons';\nimport type { IxMenuItemBase } from './../menu-item/menu-item.interface';\nconst DefaultIxMenuItemHeight = 40;\nconst DefaultAnimationTimeout = 150;\n\n@Component({\n tag: 'ix-menu-category',\n styleUrl: 'menu-category.scss',\n shadow: true,\n})\nexport class MenuCategory implements IxMenuItemBase {\n @Element() hostElement!: HTMLIxMenuCategoryElement;\n\n /**\n * Display name of the category\n */\n @Prop() label?: string;\n\n /**\n * Icon of the category\n */\n @Prop() icon?: string;\n\n /**\n * Show notification count on the category\n */\n @Prop() notifications?: number;\n\n /**\n * Will be shown as tooltip text, if not provided menu text content will be used.\n *\n * @since 4.0.0\n */\n @Prop() tooltipText?: string;\n\n /** @internal */\n // eslint-disable-next-line @stencil-community/decorators-style\n @Event({ bubbles: true, cancelable: true })\n closeOtherCategories!: EventEmitter;\n\n @State() menuExpand = false;\n @State() showItems = false;\n @State() showDropdown = false;\n @State() nestedItems: HTMLIxMenuItemElement[] = [];\n\n private observer?: MutationObserver;\n private menuItemsContainer?: HTMLDivElement;\n private ixMenu?: HTMLIxMenuElement;\n\n private enterLeaveDebounce = createEnterLeaveDebounce(\n () => {\n this.onPointerEnter();\n },\n () => {\n this.onPointerLeave();\n }\n );\n\n private isNestedItemActive() {\n return this.getNestedItems().some((item) => item.active);\n }\n\n private getNestedItems() {\n return Array.from(\n this.hostElement.querySelectorAll(':scope ix-menu-item')\n ) as HTMLIxMenuItemElement[];\n }\n\n private getNestedItemsHeight() {\n const items = this.getNestedItems();\n\n return items.length * DefaultIxMenuItemHeight;\n }\n\n private onExpandCategory(showItems: boolean) {\n if (showItems) {\n this.animateFadeIn();\n } else {\n this.animateFadeOut();\n }\n }\n\n private animateFadeOut() {\n const slotHideThresholdMs = 25;\n animate(this.menuItemsContainer!, {\n duration: DefaultAnimationTimeout,\n easing: 'easeInSine',\n opacity: [1, 0],\n maxHeight: [this.getNestedItemsHeight() + DefaultIxMenuItemHeight, 0],\n onComplete: () => {\n setTimeout(() => {\n this.showItems = false;\n this.showDropdown = false;\n }, DefaultAnimationTimeout + slotHideThresholdMs);\n },\n });\n }\n\n private animateFadeIn() {\n animate(this.menuItemsContainer!, {\n duration: DefaultAnimationTimeout,\n easing: 'easeInSine',\n opacity: [0, 1],\n maxHeight: [0, this.getNestedItemsHeight() + DefaultIxMenuItemHeight],\n onBegin: () => {\n this.showItems = true;\n this.showDropdown = false;\n },\n });\n }\n\n private onPointerEnter() {\n if (this.ixMenu?.expand) {\n return;\n }\n this.closeOtherCategories.emit();\n this.showDropdown = true;\n }\n\n @Listen('closeOtherCategories', { target: 'window' })\n private onPointerLeave() {\n this.showDropdown = false;\n }\n\n private onCategoryClick(e: MouseEvent) {\n e.stopPropagation();\n if (this.ixMenu?.expand) {\n this.onExpandCategory(!this.showItems);\n return;\n }\n }\n\n private onNestedItemsChanged(mutations?: MutationRecord[]) {\n const oldNestedItemsLength = this.nestedItems.length;\n this.nestedItems = this.getNestedItems();\n\n if (\n this.showItems &&\n this.menuItemsContainer &&\n oldNestedItemsLength !== this.nestedItems.length\n ) {\n this.menuItemsContainer.style.maxHeight = `${\n this.getNestedItemsHeight() + DefaultIxMenuItemHeight\n }px`;\n }\n\n if (!this.menuExpand || this.showItems || !mutations) {\n return;\n }\n\n for (const mutation of mutations ?? []) {\n if (\n mutation.attributeName === 'class' &&\n mutation.target instanceof HTMLElement &&\n mutation.target.classList.contains('active')\n ) {\n this.showItems = true;\n this.onExpandCategory(true);\n return;\n }\n }\n }\n\n private isCategoryItemListVisible() {\n return this.menuExpand && (this.showItems || this.isNestedItemActive());\n }\n\n componentWillLoad() {\n const closestMenu = closestIxMenu(this.hostElement);\n if (!closestMenu) {\n throw Error('ix-menu-category can only be used as a child of ix-menu');\n }\n this.ixMenu = closestMenu;\n\n this.menuExpand = this.ixMenu.expand;\n this.showItems = this.isCategoryItemListVisible();\n }\n\n componentDidLoad() {\n this.observer = createMutationObserver((mutations: MutationRecord[]) =>\n this.onNestedItemsChanged(mutations)\n );\n\n this.observer.observe(this.hostElement, {\n attributes: true,\n childList: true,\n subtree: true,\n });\n\n requestAnimationFrame(() => {\n this.onNestedItemsChanged();\n });\n\n this.ixMenu?.addEventListener(\n 'expandChange',\n ({ detail: menuExpand }: CustomEvent<boolean>) => {\n this.menuExpand = menuExpand;\n if (!menuExpand) {\n this.clearMenuItemStyles();\n }\n this.showItems = this.isCategoryItemListVisible();\n }\n );\n }\n\n clearMenuItemStyles() {\n this.menuItemsContainer?.style.removeProperty('max-height');\n this.menuItemsContainer?.style.removeProperty('opacity');\n }\n\n disconnectedCallback() {\n if (this.observer) {\n this.observer.disconnect();\n }\n }\n\n render() {\n return (\n <Host\n class={{\n expanded: this.showItems,\n }}\n onPointerEnter={() => {\n this.enterLeaveDebounce.onEnter();\n }}\n onPointerLeave={(event: PointerEvent) => {\n if (event.pointerType === 'touch') {\n return;\n }\n this.enterLeaveDebounce.onLeave();\n }}\n >\n <ix-menu-item\n class={'category-parent'}\n active={this.isNestedItemActive()}\n notifications={this.notifications}\n icon={this.icon}\n onClick={(e) => this.onCategoryClick(e)}\n onFocus={() => this.onPointerEnter()}\n tooltipText={this.tooltipText}\n isCategory\n >\n <div class=\"category\">\n <div class=\"category-text\">{this.label}</div>\n <ix-icon\n name={iconChevronDownSmall}\n class={{\n 'category-chevron': true,\n 'category-chevron--open': this.showItems,\n }}\n ></ix-icon>\n </div>\n </ix-menu-item>\n <div\n ref={(ref) => (this.menuItemsContainer = ref!)}\n class={{\n 'menu-items': true,\n 'menu-items--expanded': this.showItems,\n 'menu-items--collapsed': !this.showItems,\n }}\n >\n {this.showItems ? <slot></slot> : null}\n </div>\n <ix-dropdown\n closeBehavior={'both'}\n show={this.showDropdown}\n onShowChanged={({ detail: dropdownShown }: CustomEvent<boolean>) => {\n this.showDropdown = dropdownShown;\n }}\n class={'category-dropdown'}\n anchor={this.hostElement}\n placement=\"right-start\"\n offset={{\n mainAxis: 3,\n }}\n onClick={(e) => {\n if (e.target instanceof HTMLElement) {\n if (e.target.tagName === 'IX-MENU-ITEM') {\n this.showDropdown = false;\n } else {\n e.preventDefault();\n }\n }\n }}\n >\n <ix-dropdown-item class={'category-dropdown-header'}>\n <ix-typography format=\"label\" bold textColor=\"std\">\n {this.label}\n </ix-typography>\n </ix-dropdown-item>\n <ix-divider></ix-divider>\n <slot></slot>\n </ix-dropdown>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ix-menu-category.entry.esm.js","sources":["src/components/menu-category/enter-leave.ts","src/components/menu-category/menu-category.scss?tag=ix-menu-category&encapsulation=shadow","src/components/menu-category/menu-category.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nexport function createEnterLeaveDebounce(\n enterCallback: Function,\n leaveCallback: Function,\n {\n debounceTimeEnter,\n debounceTimeLeave,\n }: {\n debounceTimeEnter: number;\n debounceTimeLeave: number;\n } = {\n debounceTimeEnter: 0,\n debounceTimeLeave: 500,\n }\n) {\n let enterTimeout: NodeJS.Timeout;\n let leaveTimeout: NodeJS.Timeout;\n\n return {\n onEnter: () => {\n clearTimeout(leaveTimeout);\n enterTimeout = setTimeout(() => {\n enterCallback();\n }, debounceTimeEnter);\n },\n onLeave: () => {\n clearTimeout(enterTimeout);\n leaveTimeout = setTimeout(() => {\n leaveCallback();\n }, debounceTimeLeave);\n },\n };\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n@use 'mixins/shadow-dom/component';\n@use 'mixins/text-truncation';\n\n:host {\n display: flex;\n flex-direction: column;\n position: relative;\n\n @include component.ix-component;\n\n .category {\n display: flex;\n position: relative;\n align-items: center;\n width: 100%;\n height: 100%;\n }\n\n .category-text {\n width: 100%;\n padding-right: 0.25rem;\n\n @include text-truncation.ellipsis;\n }\n\n .category-chevron {\n margin-left: auto;\n margin-right: 0;\n transition: var(--theme-default-time) transform ease-in-out;\n }\n\n .category-chevron--open {\n transform: rotate(-180deg);\n }\n\n .menu-items {\n overflow: hidden;\n max-height: 0;\n transition: var(--theme-default-time) max-height ease-in-out;\n }\n\n .menu-items--expanded {\n max-height: 999999999px;\n padding: 0.25rem 0 0.25rem 1.625rem;\n }\n\n .menu-items--collapsed {\n display: none;\n }\n\n .category-dropdown {\n ::slotted(ix-menu-item) {\n --ix-menu-item-height: 2.5rem;\n }\n }\n\n .category-dropdown-header {\n pointer-events: none;\n padding-left: 0.125rem;\n min-width: 256px;\n }\n\n ::slotted(ix-menu-item) {\n --ix-menu-item-height: 2.5rem;\n }\n}\n\n:host(.expanded) {\n background-color: var(--theme-color-ghost--active);\n}\n\n:host {\n ::slotted(a[href]) {\n text-decoration: none !important;\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { iconChevronDownSmall } from '@siemens/ix-icons/icons';\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n State,\n} from '@stencil/core';\nimport { animate } from 'animejs';\nimport { closestIxMenu } from '../utils/application-layout/context';\nimport { createMutationObserver } from '../utils/mutation-observer';\nimport type { IxMenuItemBase } from './../menu-item/menu-item.interface';\nimport { createEnterLeaveDebounce } from './enter-leave';\nconst DefaultIxMenuItemHeight = 40;\nconst DefaultAnimationTimeout = 150;\n\n@Component({\n tag: 'ix-menu-category',\n styleUrl: 'menu-category.scss',\n shadow: true,\n})\nexport class MenuCategory implements IxMenuItemBase {\n @Element() hostElement!: HTMLIxMenuCategoryElement;\n\n /**\n * Display name of the category\n */\n @Prop() label?: string;\n\n /**\n * Icon of the category\n */\n @Prop() icon?: string;\n\n /**\n * Show notification count on the category\n */\n @Prop() notifications?: number;\n\n /**\n * Will be shown as tooltip text, if not provided menu text content will be used.\n *\n * @since 4.0.0\n */\n @Prop() tooltipText?: string;\n\n /** @internal */\n // eslint-disable-next-line @stencil-community/decorators-style\n @Event({ bubbles: true, cancelable: true })\n closeOtherCategories!: EventEmitter;\n\n @State() menuExpand = false;\n @State() showItems = false;\n @State() showDropdown = false;\n @State() nestedItems: HTMLIxMenuItemElement[] = [];\n\n private observer?: MutationObserver;\n private menuItemsContainer?: HTMLDivElement;\n private ixMenu?: HTMLIxMenuElement;\n\n private enterLeaveDebounce = createEnterLeaveDebounce(\n () => {\n this.onPointerEnter();\n },\n () => {\n this.onPointerLeave();\n }\n );\n\n private isNestedItemActive() {\n return this.getNestedItems().some((item) => item.active);\n }\n\n private getNestedItems() {\n return Array.from(\n this.hostElement.querySelectorAll(':scope ix-menu-item')\n ) as HTMLIxMenuItemElement[];\n }\n\n private getNestedItemsHeight() {\n const items = this.getNestedItems();\n\n return items.length * DefaultIxMenuItemHeight;\n }\n\n private onExpandCategory(showItems: boolean) {\n if (showItems) {\n this.animateFadeIn();\n } else {\n this.animateFadeOut();\n }\n }\n\n private animateFadeOut() {\n const slotHideThresholdMs = 25;\n animate(this.menuItemsContainer!, {\n duration: DefaultAnimationTimeout,\n easing: 'easeInSine',\n opacity: [1, 0],\n maxHeight: [this.getNestedItemsHeight() + DefaultIxMenuItemHeight, 0],\n onComplete: () => {\n setTimeout(() => {\n this.showItems = false;\n this.showDropdown = false;\n }, DefaultAnimationTimeout + slotHideThresholdMs);\n },\n });\n }\n\n private animateFadeIn() {\n animate(this.menuItemsContainer!, {\n duration: DefaultAnimationTimeout,\n easing: 'easeInSine',\n opacity: [0, 1],\n maxHeight: [0, this.getNestedItemsHeight() + DefaultIxMenuItemHeight],\n onBegin: () => {\n this.showItems = true;\n this.showDropdown = false;\n },\n });\n }\n\n private onPointerEnter() {\n if (this.ixMenu?.expand) {\n return;\n }\n this.closeOtherCategories.emit();\n this.showDropdown = true;\n }\n\n @Listen('closeOtherCategories', { target: 'window' })\n private onPointerLeave() {\n this.showDropdown = false;\n }\n\n private onCategoryClick(e: MouseEvent) {\n e.stopPropagation();\n if (this.ixMenu?.expand) {\n this.onExpandCategory(!this.showItems);\n return;\n }\n }\n\n private onNestedItemsChanged(mutations?: MutationRecord[]) {\n const oldNestedItemsLength = this.nestedItems.length;\n this.nestedItems = this.getNestedItems();\n\n if (\n this.showItems &&\n this.menuItemsContainer &&\n oldNestedItemsLength !== this.nestedItems.length\n ) {\n this.menuItemsContainer.style.maxHeight = `${\n this.getNestedItemsHeight() + DefaultIxMenuItemHeight\n }px`;\n }\n\n if (!this.menuExpand || this.showItems || !mutations) {\n return;\n }\n\n for (const mutation of mutations ?? []) {\n if (\n mutation.attributeName === 'class' &&\n mutation.target instanceof HTMLElement &&\n mutation.target.classList.contains('active')\n ) {\n this.showItems = true;\n this.onExpandCategory(true);\n return;\n }\n }\n }\n\n private isCategoryItemListVisible() {\n return this.menuExpand && (this.showItems || this.isNestedItemActive());\n }\n\n componentWillLoad() {\n const closestMenu = closestIxMenu(this.hostElement);\n if (!closestMenu) {\n throw Error('ix-menu-category can only be used as a child of ix-menu');\n }\n this.ixMenu = closestMenu;\n\n this.menuExpand = this.ixMenu.expand;\n this.showItems = this.isCategoryItemListVisible();\n }\n\n componentDidLoad() {\n this.observer = createMutationObserver((mutations: MutationRecord[]) =>\n this.onNestedItemsChanged(mutations)\n );\n\n this.observer.observe(this.hostElement, {\n attributes: true,\n childList: true,\n subtree: true,\n });\n\n requestAnimationFrame(() => {\n this.onNestedItemsChanged();\n });\n\n this.ixMenu?.addEventListener(\n 'expandChange',\n ({ detail: menuExpand }: CustomEvent<boolean>) => {\n this.menuExpand = menuExpand;\n if (!menuExpand) {\n this.clearMenuItemStyles();\n }\n this.showItems = this.isCategoryItemListVisible();\n }\n );\n }\n\n clearMenuItemStyles() {\n this.menuItemsContainer?.style.removeProperty('max-height');\n this.menuItemsContainer?.style.removeProperty('opacity');\n }\n\n disconnectedCallback() {\n if (this.observer) {\n this.observer.disconnect();\n }\n }\n\n render() {\n return (\n <Host\n class={{\n expanded: this.showItems,\n }}\n onPointerEnter={() => {\n this.enterLeaveDebounce.onEnter();\n }}\n onPointerLeave={(event: PointerEvent) => {\n if (event.pointerType === 'touch') {\n return;\n }\n this.enterLeaveDebounce.onLeave();\n }}\n >\n <ix-menu-item\n class={'category-parent'}\n active={this.isNestedItemActive()}\n notifications={this.notifications}\n icon={this.icon}\n onClick={(e) => this.onCategoryClick(e)}\n onFocus={() => this.onPointerEnter()}\n tooltipText={this.tooltipText}\n isCategory\n >\n <div class=\"category\">\n <div class=\"category-text\">{this.label}</div>\n <ix-icon\n name={iconChevronDownSmall}\n class={{\n 'category-chevron': true,\n 'category-chevron--open': this.showItems,\n }}\n aria-hidden=\"true\"\n ></ix-icon>\n </div>\n </ix-menu-item>\n <div\n ref={(ref) => (this.menuItemsContainer = ref!)}\n class={{\n 'menu-items': true,\n 'menu-items--expanded': this.showItems,\n 'menu-items--collapsed': !this.showItems,\n }}\n >\n {this.showItems ? <slot></slot> : null}\n </div>\n <ix-dropdown\n closeBehavior={'both'}\n show={this.showDropdown}\n onShowChanged={({ detail: dropdownShown }: CustomEvent<boolean>) => {\n this.showDropdown = dropdownShown;\n }}\n class={'category-dropdown'}\n anchor={this.hostElement}\n placement=\"right-start\"\n offset={{\n mainAxis: 3,\n }}\n onClick={(e) => {\n if (e.target instanceof HTMLElement) {\n if (e.target.tagName === 'IX-MENU-ITEM') {\n this.showDropdown = false;\n } else {\n e.preventDefault();\n }\n }\n }}\n >\n <ix-dropdown-item class={'category-dropdown-header'}>\n <ix-typography format=\"label\" bold textColor=\"std\">\n {this.label}\n </ix-typography>\n </ix-dropdown-item>\n <ix-divider></ix-divider>\n <slot></slot>\n </ix-dropdown>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ix-menu-expand-icon.entry.esm.js","sources":["src/components/menu/menu-expand-icon.scss?tag=ix-menu-expand-icon&encapsulation=shadow","src/components/menu/menu-expand-icon.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n@use './../button/button-mixin';\n@use 'mixins/hover';\n@use 'mixins/shadow-dom/component';\n\n$focus-bdr-width: 0.0625rem;\n\n@include button-mixin.btn;\n@include button-mixin.btn-variant(subtle-tertiary);\n\n:host {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 2rem;\n width: 2rem;\n border-radius: var(--theme-btn--border-radius);\n pointer-events: all;\n\n @include component.ix-component;\n\n svg {\n display: inline-block;\n vertical-align: middle;\n }\n\n .line {\n fill: var(--theme-menu-btn--color);\n opacity: 1;\n x: 2px;\n transition: x 0.075s ease-in var(--theme-default-time),\n transform 0.075s ease-in-out 0.075s, y 0.075s ease-in-out,\n opacity 0.075s linear 0.075s;\n transform-origin: center;\n }\n}\n\n@include hover.host-hover {\n .menu-expand-button {\n background-color: var(--theme-menu-btn--background--hover);\n }\n}\n\n.menu-expand-button {\n width: 2rem;\n padding: 0px !important;\n cursor: pointer;\n}\n\n@include hover.host-active {\n .menu-expand-button {\n background-color: var(--theme-menu-btn--background--active);\n }\n}\n\n:host(.expanded) {\n svg .line-1 {\n opacity: 1;\n transform: rotate(-45deg);\n y: 11px;\n }\n\n svg .line-2 {\n opacity: 0;\n x: 9;\n }\n\n svg .line-3 {\n opacity: 1;\n transform: rotate(45deg);\n y: 11px;\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n
|
|
1
|
+
{"version":3,"file":"ix-menu-expand-icon.entry.esm.js","sources":["src/components/menu/menu-expand-icon.scss?tag=ix-menu-expand-icon&encapsulation=shadow","src/components/menu/menu-expand-icon.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n@use './../button/button-mixin';\n@use 'mixins/hover';\n@use 'mixins/shadow-dom/component';\n\n$focus-bdr-width: 0.0625rem;\n\n@include button-mixin.btn;\n@include button-mixin.btn-variant(subtle-tertiary);\n\n:host {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 2rem;\n width: 2rem;\n border-radius: var(--theme-btn--border-radius);\n pointer-events: all;\n\n @include component.ix-component;\n\n svg {\n display: inline-block;\n vertical-align: middle;\n }\n\n .line {\n fill: var(--theme-menu-btn--color);\n opacity: 1;\n x: 2px;\n transition: x 0.075s ease-in var(--theme-default-time),\n transform 0.075s ease-in-out 0.075s, y 0.075s ease-in-out,\n opacity 0.075s linear 0.075s;\n transform-origin: center;\n }\n}\n\n@include hover.host-hover {\n .menu-expand-button {\n background-color: var(--theme-menu-btn--background--hover);\n }\n}\n\n.menu-expand-button {\n width: 2rem;\n padding: 0px !important;\n cursor: pointer;\n}\n\n@include hover.host-active {\n .menu-expand-button {\n background-color: var(--theme-menu-btn--background--active);\n }\n}\n\n:host(.expanded) {\n svg .line-1 {\n opacity: 1;\n transform: rotate(-45deg);\n y: 11px;\n }\n\n svg .line-2 {\n opacity: 0;\n x: 9;\n }\n\n svg .line-3 {\n opacity: 1;\n transform: rotate(45deg);\n y: 11px;\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n iconDoubleChevronLeft,\n iconDoubleChevronRight,\n} from '@siemens/ix-icons/icons';\nimport { Component, h, Host, Prop } from '@stencil/core';\nimport { getButtonClasses } from '../button/base-button';\nimport { Breakpoint } from '../utils/breakpoints';\n/**\n * @internal\n */\n@Component({\n tag: 'ix-menu-expand-icon',\n styleUrl: './menu-expand-icon.scss',\n shadow: true,\n})\nexport class MenuExpandIcon {\n /** Whether the menu expand icon displays the expanded state or not */\n @Prop({ reflect: true }) expanded = false;\n\n /** Controls which icon is displayed */\n @Prop({ reflect: true }) breakpoint?: Breakpoint;\n\n /** Display as pinned */\n @Prop() pinned = false;\n\n /**\n * Accessibility label for the menu expand icon\n * @deprecated This prop is no longer used as the component is hidden from screen readers (aria-hidden=\"true\"). Will be removed in 5.0.0\n */\n @Prop() ixAriaLabel?: string = 'Expand';\n\n getSmallScreenIcon() {\n return (\n <button\n tabindex={-1}\n class={{\n ...getButtonClasses('subtle-tertiary', true, false, false, false),\n 'menu-expand-button': true,\n }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n height=\"24\"\n >\n <rect class=\"line line-1\" x=\"2\" y=\"5\" width=\"20\" height=\"2\"></rect>\n <rect class=\"line line-2\" x=\"2\" y=\"11\" width=\"13\" height=\"2\"></rect>\n <rect class=\"line line-3\" x=\"2\" y=\"17\" width=\"20\" height=\"2\"></rect>\n </svg>\n </button>\n );\n }\n\n getLargeScreenIcon() {\n return (\n <ix-icon-button\n tabindex={-1}\n icon={this.expanded ? iconDoubleChevronLeft : iconDoubleChevronRight}\n variant=\"subtle-tertiary\"\n ></ix-icon-button>\n );\n }\n\n getMenuIcon() {\n if (this.pinned) {\n return this.getLargeScreenIcon();\n }\n\n if (this.breakpoint === 'md') {\n return this.getLargeScreenIcon();\n }\n\n if (this.breakpoint === 'lg') {\n return this.getLargeScreenIcon();\n }\n\n return this.getSmallScreenIcon();\n }\n\n render() {\n return (\n <Host\n class={{\n expanded: this.expanded,\n }}\n aria-hidden=\"true\"\n >\n {this.getMenuIcon()}\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;;;AAAA,MAAM,iBAAiB,GAAG,4zMAA4zM;;MCwBz0M,cAAc,GAAA,MAAA;AAL3B,IAAA,WAAA,CAAA,OAAA,EAAA;;;AAO2B,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK;;AAMjC,QAAA,IAAM,CAAA,MAAA,GAAG,KAAK;AAEtB;;;AAGG;AACK,QAAA,IAAW,CAAA,WAAA,GAAY,QAAQ;AA+DxC;IA7DC,kBAAkB,GAAA;AAChB,QAAA,QACE,CACE,CAAA,QAAA,EAAA,EAAA,QAAQ,EAAE,EAAE,EACZ,KAAK,EACA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,gBAAgB,CAAC,iBAAiB,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA,EAAA,EACjE,oBAAoB,EAAE,IAAI,EAAA,CAAA,EAAA,EAG5B,CAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAC,4BAA4B,EAClC,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EAAA,EAEX,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,aAAa,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,GAAG,EAAQ,CAAA,EACnE,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,aAAa,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,GAAG,EAAQ,CAAA,EACpE,CAAM,CAAA,MAAA,EAAA,EAAA,KAAK,EAAC,aAAa,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,GAAG,EAAQ,CAAA,CAChE,CACC;;IAIb,kBAAkB,GAAA;AAChB,QAAA,QACE,CACE,CAAA,gBAAA,EAAA,EAAA,QAAQ,EAAE,EAAE,EACZ,IAAI,EAAE,IAAI,CAAC,QAAQ,GAAG,qBAAqB,GAAG,sBAAsB,EACpE,OAAO,EAAC,iBAAiB,EACT,CAAA;;IAItB,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,OAAO,IAAI,CAAC,kBAAkB,EAAE;;AAGlC,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;AAC5B,YAAA,OAAO,IAAI,CAAC,kBAAkB,EAAE;;AAGlC,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;AAC5B,YAAA,OAAO,IAAI,CAAC,kBAAkB,EAAE;;AAGlC,QAAA,OAAO,IAAI,CAAC,kBAAkB,EAAE;;IAGlC,MAAM,GAAA;QACJ,QACE,CAAA,CAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EACH,KAAK,EAAE;gBACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,EACW,aAAA,EAAA,MAAM,IAEjB,IAAI,CAAC,WAAW,EAAE,CACd;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ix-menu-item.entry.esm.js","sources":["src/components/utils/uuid.ts","src/components/menu-item/menu-item.scss?tag=ix-menu-item&encapsulation=shadow","src/components/menu-item/menu-item.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nexport function generateUUID(): string {\n const randomString =\n Math.random().toString(36).substring(2, 15) +\n Math.random().toString(36).substring(2, 15);\n\n const timestampString = new Date().getTime().toString(36);\n const uuid = randomString + timestampString;\n\n return uuid;\n}\n\nexport const createSequentialId = (prefix: string, sequenceId: number) => {\n return `${prefix}-${sequenceId++}`;\n};\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n@use './common-variables' as vars;\n@use 'mixins/hover';\n@use 'mixins/text-truncation';\n\n$menuItemHeight: 3rem;\n$menuItemPadding: 0.875rem;\n\n:host {\n position: relative;\n display: block;\n cursor: pointer;\n\n height: var(--ix-menu-item-height, $menuItemHeight);\n min-height: var(--ix-menu-item-height, $menuItemHeight);\n max-height: var(--ix-menu-item-height, $menuItemHeight);\n\n .tab {\n all: unset;\n box-sizing: border-box;\n display: flex;\n position: relative;\n align-items: center;\n height: var(--ix-menu-item-height, $menuItemHeight);\n width: calc(100%);\n z-index: 500;\n padding-left: $menuItemPadding;\n\n @include hover.ghost-hover-pressed;\n }\n\n .tab-icon {\n color: var(--theme-nav-item-primary-icon--color);\n position: relative;\n pointer-events: none;\n }\n\n .tab:focus-visible {\n outline: 1px solid var(--theme-color-focus-bdr);\n outline-offset: -1px;\n }\n\n .notification {\n display: inline-flex;\n position: absolute;\n top: 0.25rem;\n left: 1.5rem;\n\n .pill {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n height: 0.5rem;\n min-width: 1rem;\n position: relative;\n border-radius: 6.25rem;\n background-color: var(--theme-color-primary);\n font-size: 0.75rem;\n font-weight: bold;\n line-height: 1;\n font-family: Siemens Sans, Arial, sans-serif;\n color: var(--theme-color-primary--contrast);\n padding: vars.$tiny-space;\n }\n }\n\n .tab-text {\n color: var(--theme-nav-item-primary--color);\n margin: 0 1rem 0 1.25rem;\n user-select: none;\n width: 100%;\n\n @include text-truncation.ellipsis;\n }\n}\n\n:host(.active),\n:host(.selected) {\n .tab {\n background-color: var(--theme-nav-item-primary--background--selected);\n }\n\n .tab::before {\n content: '';\n background-color: var(--theme-nav-item-primary--border-color--selected);\n height: var(--ix-menu-item-height, $menuItemHeight);\n width: 0.25rem;\n left: 0;\n position: absolute;\n }\n\n .tab > .glyph {\n color: var(--theme-nav-item-primary-icon--color--selected);\n }\n}\n\n:host(.disabled) {\n color: var(--theme-color-weak-text);\n pointer-events: none;\n cursor: default;\n\n .tab > .tab-icon {\n color: var(--theme-color-weak-text);\n }\n\n .tab-text {\n color: var(--theme-color-weak-text);\n }\n}\n\n:host(.bottom-tab),\n:host([slot='bottom']) {\n $bottom-height: 2.25rem;\n\n min-height: $bottom-height;\n height: $bottom-height;\n max-height: $bottom-height;\n\n .tab {\n height: $bottom-height;\n }\n\n .tab::before {\n height: $bottom-height;\n background-color: transparent;\n }\n\n &.active,\n &.selected {\n &:hover {\n background-color: var(--theme-nav-item-secondary--background--selected);\n }\n\n &:active {\n background-color: var(--theme-nav-item-secondary--background--selected);\n }\n }\n}\n\n:host(.bottom-tab.active),\n:host(.bottom-tab.selected),\n:host(.active[slot='bottom']),\n:host(.selected[slot='bottom']) {\n .tab {\n background-color: var(--theme-nav-item-secondary--background--selected);\n }\n}\n\n:host(.tab-nested) {\n .tab {\n flex-direction: row;\n padding-left: calc(0.5rem + $menuItemPadding);\n\n .notification {\n position: relative;\n top: 0;\n left: 0;\n padding-left: 0.5rem;\n }\n\n .tab-icon {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n }\n\n .tab-text {\n margin-left: 0.5rem;\n }\n\n &::before {\n display: none;\n }\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { Component, Element, h, Host, Prop, State, Watch } from '@stencil/core';\nimport { createMutationObserver } from '../utils/mutation-observer';\nimport { makeRef } from '../utils/make-ref';\nimport { menuController } from '../utils/menu-service/menu-service';\nimport { Disposable } from '../utils/typed-event';\nimport { iconDocument } from '@siemens/ix-icons/icons';\nimport { a11yBoolean } from '../utils/a11y';\nimport { createSequentialId } from '../utils/uuid';\nimport { IxMenuItemBase } from './menu-item.interface';\nimport { AnchorTarget } from '../button/button.interface';\n\nlet sequenceId = 0;\n\n/**\n * @slot menu-item-label Custom label\n */\n@Component({\n tag: 'ix-menu-item',\n styleUrl: 'menu-item.scss',\n shadow: true,\n})\nexport class MenuItem implements IxMenuItemBase {\n /**\n * Label of the menu item. Will also be used as tooltip text\n */\n @Prop() label?: string;\n\n /**\n * Move the Tab to a top position.\n */\n @Prop() home = false;\n\n /**\n * Caution: this is no longer working. Please use slot=\"bottom\" instead.\n *\n * Place tab on bottom\n */\n @Prop() bottom = false;\n\n /**\n * Name of the icon you want to display. Icon names can be resolved from the documentation {@link https://ix.siemens.io/docs/icon-library/icons}\n */\n @Prop({ mutable: true }) icon?: string;\n\n /**\n * Show notification count on tab\n */\n @Prop() notifications?: number;\n\n /**\n * State to display active\n */\n @Prop() active: boolean = false;\n\n /**\n * Disable tab and remove event handlers\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Will be shown as tooltip text, if not provided menu text content will be used.\n *\n * @since 4.0.0\n */\n @Prop() tooltipText?: string;\n\n /**\n * URL for the button link. When provided, the button will render as an anchor tag.\n *\n * @since 4.0.0\n */\n @Prop() href?: string;\n\n /**\n * Specifies where to open the linked document when href is provided.\n *\n * @since 4.0.0\n */\n @Prop() target?: AnchorTarget = '_self';\n\n /**\n * Specifies the relationship between the current document and the linked document when href is provided.\n *\n * @since 4.0.0\n */\n @Prop() rel?: string;\n\n /** @internal */\n @Prop() isCategory: boolean = false;\n\n @Element() hostElement!: HTMLIxMenuItemElement;\n\n @State() tooltip?: string;\n @State() ariaHiddenTooltip = false;\n @State() menuExpanded: boolean = false;\n\n private readonly internalItemId = createSequentialId(\n 'ix-menu-item-',\n sequenceId++\n );\n\n private readonly buttonRef = makeRef<HTMLButtonElement | HTMLAnchorElement>();\n private isHostedInsideCategory = false;\n private menuExpandedDisposer?: Disposable;\n\n private readonly observer: MutationObserver = createMutationObserver(() => {\n this.setTooltip();\n });\n\n componentWillLoad() {\n this.isHostedInsideCategory =\n !!this.hostElement.closest('ix-menu-category');\n\n this.onIconChange();\n\n this.menuExpanded = menuController.nativeElement?.expand || false;\n this.menuExpandedDisposer = menuController.expandChange.on(\n (expand) => (this.menuExpanded = expand)\n );\n }\n\n componentWillRender() {\n this.setTooltip();\n }\n\n setTooltip() {\n this.tooltip =\n this.tooltipText ??\n this.label ??\n this.hostElement.textContent ??\n undefined;\n\n this.ariaHiddenTooltip =\n this.tooltipText === this.label ||\n this.tooltipText === this.hostElement.textContent;\n }\n\n connectedCallback() {\n this.observer.observe(this.hostElement, {\n subtree: true,\n childList: true,\n characterData: true,\n });\n }\n\n disconnectedCallback() {\n if (this.observer) {\n this.observer.disconnect();\n }\n\n if (this.menuExpandedDisposer) {\n this.menuExpandedDisposer.dispose();\n }\n }\n\n @Watch('icon')\n onIconChange() {\n if (!this.isHostedInsideCategory && !this.hostElement.icon) {\n this.icon = iconDocument;\n }\n }\n\n render() {\n let extendedAttributes = {};\n if (this.home) {\n extendedAttributes = {\n slot: 'home',\n };\n }\n\n if (this.bottom) {\n extendedAttributes = {\n slot: 'bottom',\n };\n }\n\n const commonAttributes = {\n class: 'tab',\n tabIndex: this.disabled ? -1 : 0,\n };\n\n const menuContent = [\n this.icon && <ix-icon class={'tab-icon'} name={this.icon}></ix-icon>,\n this.notifications ? (\n <div class=\"notification\">\n <div class=\"pill\">{this.notifications}</div>\n </div>\n ) : null,\n <span id={this.internalItemId} class=\"tab-text text-default\">\n {this.label}\n <slot></slot>\n </span>,\n ];\n\n return (\n <Host\n class={{\n disabled: this.disabled,\n 'home-tab': this.home,\n 'bottom-tab': this.bottom,\n active: this.active,\n 'tab-nested': this.isHostedInsideCategory,\n }}\n {...extendedAttributes}\n >\n {this.href ? (\n <a\n {...commonAttributes}\n href={this.disabled ? undefined : this.href}\n target={this.target}\n rel={this.rel}\n role=\"button\"\n ref={this.buttonRef}\n onClick={(e: Event) => {\n if (this.disabled) {\n e.preventDefault();\n e.stopPropagation();\n }\n }}\n >\n {menuContent}\n </a>\n ) : (\n <button {...commonAttributes} ref={this.buttonRef}>\n {menuContent}\n </button>\n )}\n <ix-tooltip\n for={this.buttonRef.waitForCurrent()}\n placement={'right'}\n showDelay={1000}\n interactive={false}\n aria-hidden={a11yBoolean(this.ariaHiddenTooltip)}\n aria-labelledby={this.internalItemId}\n >\n {this.tooltip}\n </ix-tooltip>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ix-menu-item.entry.esm.js","sources":["src/components/utils/uuid.ts","src/components/menu-item/menu-item.scss?tag=ix-menu-item&encapsulation=shadow","src/components/menu-item/menu-item.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nexport function generateUUID(): string {\n const randomString =\n Math.random().toString(36).substring(2, 15) +\n Math.random().toString(36).substring(2, 15);\n\n const timestampString = new Date().getTime().toString(36);\n const uuid = randomString + timestampString;\n\n return uuid;\n}\n\nexport const createSequentialId = (prefix: string, sequenceId: number) => {\n return `${prefix}-${sequenceId++}`;\n};\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n@use './common-variables' as vars;\n@use 'mixins/hover';\n@use 'mixins/text-truncation';\n\n$menuItemHeight: 3rem;\n$menuItemPadding: 0.875rem;\n\n:host {\n position: relative;\n display: block;\n cursor: pointer;\n\n height: var(--ix-menu-item-height, $menuItemHeight);\n min-height: var(--ix-menu-item-height, $menuItemHeight);\n max-height: var(--ix-menu-item-height, $menuItemHeight);\n\n .tab {\n all: unset;\n box-sizing: border-box;\n display: flex;\n position: relative;\n align-items: center;\n height: var(--ix-menu-item-height, $menuItemHeight);\n width: calc(100%);\n z-index: 500;\n padding-left: $menuItemPadding;\n\n @include hover.ghost-hover-pressed;\n }\n\n .tab-icon {\n color: var(--theme-nav-item-primary-icon--color);\n position: relative;\n pointer-events: none;\n }\n\n .tab:focus-visible {\n outline: 1px solid var(--theme-color-focus-bdr);\n outline-offset: -1px;\n }\n\n .notification {\n display: inline-flex;\n position: absolute;\n top: 0.25rem;\n left: 1.5rem;\n\n .pill {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n height: 0.5rem;\n min-width: 1rem;\n position: relative;\n border-radius: 6.25rem;\n background-color: var(--theme-color-primary);\n font-size: 0.75rem;\n font-weight: bold;\n line-height: 1;\n font-family: Siemens Sans, Arial, sans-serif;\n color: var(--theme-color-primary--contrast);\n padding: vars.$tiny-space;\n }\n }\n\n .tab-text {\n color: var(--theme-nav-item-primary--color);\n margin: 0 1rem 0 1.25rem;\n user-select: none;\n width: 100%;\n\n @include text-truncation.ellipsis;\n }\n}\n\n:host(.active),\n:host(.selected) {\n .tab {\n background-color: var(--theme-nav-item-primary--background--selected);\n }\n\n .tab::before {\n content: '';\n background-color: var(--theme-nav-item-primary--border-color--selected);\n height: var(--ix-menu-item-height, $menuItemHeight);\n width: 0.25rem;\n left: 0;\n position: absolute;\n }\n\n .tab > .glyph {\n color: var(--theme-nav-item-primary-icon--color--selected);\n }\n}\n\n:host(.disabled) {\n color: var(--theme-color-weak-text);\n pointer-events: none;\n cursor: default;\n\n .tab > .tab-icon {\n color: var(--theme-color-weak-text);\n }\n\n .tab-text {\n color: var(--theme-color-weak-text);\n }\n}\n\n:host(.bottom-tab),\n:host([slot='bottom']) {\n $bottom-height: 2.25rem;\n\n min-height: $bottom-height;\n height: $bottom-height;\n max-height: $bottom-height;\n\n .tab {\n height: $bottom-height;\n }\n\n .tab::before {\n height: $bottom-height;\n background-color: transparent;\n }\n\n &.active,\n &.selected {\n &:hover {\n background-color: var(--theme-nav-item-secondary--background--selected);\n }\n\n &:active {\n background-color: var(--theme-nav-item-secondary--background--selected);\n }\n }\n}\n\n:host(.bottom-tab.active),\n:host(.bottom-tab.selected),\n:host(.active[slot='bottom']),\n:host(.selected[slot='bottom']) {\n .tab {\n background-color: var(--theme-nav-item-secondary--background--selected);\n }\n}\n\n:host(.tab-nested) {\n .tab {\n flex-direction: row;\n padding-left: calc(0.5rem + $menuItemPadding);\n\n .notification {\n position: relative;\n top: 0;\n left: 0;\n padding-left: 0.5rem;\n }\n\n .tab-icon {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n }\n\n .tab-text {\n margin-left: 0.5rem;\n }\n\n &::before {\n display: none;\n }\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { iconDocument } from '@siemens/ix-icons/icons';\nimport { Component, Element, h, Host, Prop, State, Watch } from '@stencil/core';\nimport { AnchorTarget } from '../button/button.interface';\nimport { a11yBoolean, a11yHostAttributes } from '../utils/a11y';\nimport { makeRef } from '../utils/make-ref';\nimport { menuController } from '../utils/menu-service/menu-service';\nimport { createMutationObserver } from '../utils/mutation-observer';\nimport { Disposable } from '../utils/typed-event';\nimport { createSequentialId } from '../utils/uuid';\nimport { IxMenuItemBase } from './menu-item.interface';\n\nlet sequenceId = 0;\n\n/**\n * @slot menu-item-label Custom label\n */\n@Component({\n tag: 'ix-menu-item',\n styleUrl: 'menu-item.scss',\n shadow: true,\n})\nexport class MenuItem implements IxMenuItemBase {\n /**\n * Label of the menu item. Will also be used as tooltip text\n */\n @Prop() label?: string;\n\n /**\n * Move the Tab to a top position.\n */\n @Prop() home = false;\n\n /**\n * Caution: this is no longer working. Please use slot=\"bottom\" instead.\n *\n * Place tab on bottom\n */\n @Prop() bottom = false;\n\n /**\n * Name of the icon you want to display. Icon names can be resolved from the documentation {@link https://ix.siemens.io/docs/icon-library/icons}\n */\n @Prop({ mutable: true }) icon?: string;\n\n /**\n * Show notification count on tab\n */\n @Prop() notifications?: number;\n\n /**\n * State to display active\n */\n @Prop() active: boolean = false;\n\n /**\n * Disable tab and remove event handlers\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Will be shown as tooltip text, if not provided menu text content will be used.\n *\n * @since 4.0.0\n */\n @Prop() tooltipText?: string;\n\n /**\n * URL for the button link. When provided, the button will render as an anchor tag.\n *\n * @since 4.0.0\n */\n @Prop() href?: string;\n\n /**\n * Specifies where to open the linked document when href is provided.\n *\n * @since 4.0.0\n */\n @Prop() target?: AnchorTarget = '_self';\n\n /**\n * Specifies the relationship between the current document and the linked document when href is provided.\n *\n * @since 4.0.0\n */\n @Prop() rel?: string;\n\n /** @internal */\n @Prop() isCategory: boolean = false;\n\n @Element() hostElement!: HTMLIxMenuItemElement;\n\n @State() tooltip?: string;\n @State() ariaHiddenTooltip = false;\n @State() menuExpanded: boolean = false;\n\n private readonly internalItemId = createSequentialId(\n 'ix-menu-item-',\n sequenceId++\n );\n\n private readonly buttonRef = makeRef<HTMLButtonElement | HTMLAnchorElement>();\n private isHostedInsideCategory = false;\n private menuExpandedDisposer?: Disposable;\n\n private readonly observer: MutationObserver = createMutationObserver(() => {\n this.setTooltip();\n });\n\n componentWillLoad() {\n this.isHostedInsideCategory =\n !!this.hostElement.closest('ix-menu-category');\n\n this.onIconChange();\n\n this.menuExpanded = menuController.nativeElement?.expand || false;\n this.menuExpandedDisposer = menuController.expandChange.on(\n (expand) => (this.menuExpanded = expand)\n );\n }\n\n componentWillRender() {\n this.setTooltip();\n }\n\n setTooltip() {\n this.tooltip =\n this.tooltipText ??\n this.label ??\n this.hostElement.textContent ??\n undefined;\n\n this.ariaHiddenTooltip =\n this.tooltipText === this.label ||\n this.tooltipText === this.hostElement.textContent;\n }\n\n connectedCallback() {\n this.observer.observe(this.hostElement, {\n subtree: true,\n childList: true,\n characterData: true,\n });\n }\n\n disconnectedCallback() {\n if (this.observer) {\n this.observer.disconnect();\n }\n\n if (this.menuExpandedDisposer) {\n this.menuExpandedDisposer.dispose();\n }\n }\n\n @Watch('icon')\n onIconChange() {\n if (!this.isHostedInsideCategory && !this.hostElement.icon) {\n this.icon = iconDocument;\n }\n }\n\n render() {\n let extendedAttributes = {};\n if (this.home) {\n extendedAttributes = {\n slot: 'home',\n };\n }\n\n if (this.bottom) {\n extendedAttributes = {\n slot: 'bottom',\n };\n }\n\n const hostA11y = a11yHostAttributes(this.hostElement);\n\n const commonAttributes = {\n class: 'tab',\n tabIndex: this.disabled ? -1 : 0,\n ...hostA11y,\n };\n\n const menuContent = [\n this.icon && (\n <ix-icon\n class={'tab-icon'}\n name={this.icon}\n aria-hidden=\"true\"\n ></ix-icon>\n ),\n this.notifications ? (\n <div class=\"notification\">\n <div class=\"pill\">{this.notifications}</div>\n </div>\n ) : null,\n <span id={this.internalItemId} class=\"tab-text text-default\">\n {this.label}\n <slot></slot>\n </span>,\n ];\n\n return (\n <Host\n class={{\n disabled: this.disabled,\n 'home-tab': this.home,\n 'bottom-tab': this.bottom,\n active: this.active,\n 'tab-nested': this.isHostedInsideCategory,\n }}\n aria-disabled={this.disabled ? 'true' : null}\n {...extendedAttributes}\n >\n {this.href ? (\n <a\n {...commonAttributes}\n href={this.disabled ? undefined : this.href}\n target={this.target}\n rel={this.rel}\n role=\"button\"\n ref={this.buttonRef}\n onClick={(e: Event) => {\n if (this.disabled) {\n e.preventDefault();\n e.stopPropagation();\n }\n }}\n >\n {menuContent}\n </a>\n ) : (\n <button {...commonAttributes} ref={this.buttonRef}>\n {menuContent}\n </button>\n )}\n <ix-tooltip\n for={this.buttonRef.waitForCurrent()}\n placement={'right'}\n showDelay={1000}\n interactive={false}\n aria-hidden={a11yBoolean(this.ariaHiddenTooltip)}\n aria-labelledby={this.internalItemId}\n >\n {this.tooltip}\n </ix-tooltip>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|