@siemens/ix 5.1.1 → 5.2.1
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 +1 -1
- package/components/ix-action-card.js +1 -1
- package/components/ix-application-header.js +1 -1
- package/components/ix-application-switch-modal.js +1 -1
- package/components/ix-application.js +1 -1
- package/components/ix-avatar.js +1 -1
- package/components/ix-badge.d.ts +11 -0
- package/components/ix-badge.js +1 -0
- package/components/ix-blind.js +1 -1
- package/components/ix-breadcrumb-item.js +1 -1
- package/components/ix-breadcrumb.js +1 -1
- package/components/ix-button.js +1 -1
- package/components/ix-card-accordion.js +1 -1
- package/components/ix-card-content.js +1 -1
- package/components/ix-card-list.js +1 -1
- package/components/ix-card-title.js +1 -1
- package/components/ix-card.js +1 -1
- package/components/ix-category-filter.js +1 -1
- package/components/ix-chat-ai-message.d.ts +11 -0
- package/components/ix-chat-ai-message.js +1 -0
- package/components/ix-chat-attachment.d.ts +11 -0
- package/components/ix-chat-attachment.js +1 -0
- package/components/ix-chat-input.d.ts +11 -0
- package/components/ix-chat-input.js +1 -0
- package/components/ix-chat-user-message.d.ts +11 -0
- package/components/ix-chat-user-message.js +1 -0
- package/components/ix-chat.d.ts +11 -0
- package/components/ix-chat.js +1 -0
- package/components/ix-checkbox-group.js +1 -1
- package/components/ix-checkbox.js +1 -1
- package/components/ix-chip.js +1 -1
- package/components/ix-col.js +1 -1
- package/components/ix-content-header.js +1 -1
- package/components/ix-content.js +1 -1
- package/components/ix-css-grid-item.js +1 -1
- package/components/ix-css-grid.js +1 -1
- package/components/ix-custom-field.js +1 -1
- package/components/ix-date-dropdown.js +1 -1
- package/components/ix-date-input.js +1 -1
- package/components/ix-date-picker.js +1 -1
- package/components/ix-date-time-card.js +1 -1
- package/components/ix-datetime-input.js +1 -1
- package/components/ix-datetime-picker.js +1 -1
- package/components/ix-divider.js +1 -1
- package/components/ix-dropdown-button.js +1 -1
- package/components/ix-dropdown-header.js +1 -1
- 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 +1 -1
- package/components/ix-event-list-item.js +1 -1
- package/components/ix-event-list.js +1 -1
- package/components/ix-expanding-search.js +1 -1
- 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 +1 -1
- package/components/ix-group-context-menu.js +1 -1
- package/components/ix-group-item.js +1 -1
- package/components/ix-group.js +1 -1
- package/components/ix-helper-text.js +1 -1
- package/components/ix-icon-button.js +1 -1
- package/components/ix-icon-toggle-button.js +1 -1
- package/components/ix-input.js +1 -1
- package/components/ix-key-value-list.js +1 -1
- package/components/ix-key-value.js +1 -1
- package/components/ix-kpi.js +1 -1
- package/components/ix-layout-auto.js +1 -1
- package/components/ix-layout-grid.js +1 -1
- package/components/ix-link-button.js +1 -1
- package/components/ix-menu-about-item.js +1 -1
- package/components/ix-menu-about-news.js +1 -1
- package/components/ix-menu-about.js +1 -1
- package/components/ix-menu-avatar-item.js +1 -1
- package/components/ix-menu-avatar.js +1 -1
- package/components/ix-menu-category.js +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 +1 -1
- package/components/ix-message-bar.js +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 +1 -1
- package/components/ix-modal.js +1 -1
- package/components/ix-number-input.js +1 -1
- package/components/ix-pagination.js +1 -1
- package/components/ix-pane-layout.js +1 -1
- package/components/ix-pane.js +1 -1
- package/components/ix-pill.js +1 -1
- package/components/ix-popover-content.js +1 -1
- package/components/ix-popover-footer.js +1 -1
- package/components/ix-popover-header.js +1 -1
- package/components/ix-popover-image.js +1 -1
- package/components/ix-popover.js +1 -1
- package/components/ix-progress-indicator.js +1 -1
- package/components/ix-push-card.js +1 -1
- package/components/ix-radio-group.js +1 -1
- package/components/ix-radio.js +1 -1
- package/components/ix-range-field.js +1 -1
- 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 +1 -1
- package/components/ix-spinner.js +1 -1
- package/components/ix-split-button.js +1 -1
- package/components/ix-tab-item.js +1 -1
- package/components/ix-tab-panel.js +1 -1
- package/components/ix-tab-set.js +1 -1
- package/components/ix-tabs.js +1 -1
- package/components/ix-textarea.js +1 -1
- package/components/ix-tile.js +1 -1
- package/components/ix-time-input.js +1 -1
- package/components/ix-time-picker.js +1 -1
- package/components/ix-toast-container.js +1 -1
- package/components/ix-toast.js +1 -1
- package/components/ix-toggle-button.js +1 -1
- package/components/ix-toggle.js +1 -1
- package/components/ix-tooltip.js +1 -1
- package/components/ix-tree-item.js +1 -1
- package/components/ix-tree.js +1 -1
- package/components/ix-typography.js +1 -1
- package/components/ix-upload.js +1 -1
- package/components/ix-workflow-step.js +1 -1
- package/components/ix-workflow-steps.js +1 -1
- package/components/p-4ZsT_zIm.js +1 -0
- package/components/p-B3ZUi0gM.js +1 -0
- package/components/p-BE708_H3.js +1 -0
- package/components/p-BF2IsI5j.js +1 -0
- package/components/p-BGpGr8Qv.js +1 -0
- package/components/{p-CuFZ7CXu.js → p-BHjmN8zz.js} +1 -1
- package/components/{p-CbbabcAR.js → p-BHtNsBtM.js} +1 -1
- package/components/p-BKCLcJ_A.js +1 -0
- package/components/p-BKVBe7Co.js +1 -0
- package/components/p-BOImZPcG.js +1 -0
- package/components/p-BTBxxgtF.js +1 -0
- package/components/p-BmZGQGZi.js +1 -0
- package/components/p-BpE93ty6.js +1 -0
- package/components/p-BqeSHO6C.js +1 -0
- package/components/p-C02EaF8C.js +1 -0
- package/components/{p-baqpOH0g.js → p-CAd-WgR8.js} +1 -1
- package/components/p-CFH9HkmQ.js +1 -0
- package/components/p-CGGWaScq.js +1 -0
- package/components/{p-Czy7a3I4.js → p-CHJbp28K.js} +1 -1
- package/components/p-CRbQNmxe.js +1 -0
- package/components/p-CYgC-XN6.js +1 -0
- package/components/{p-GGleop6j.js → p-C_K74Xlt.js} +1 -1
- package/components/p-CiP3eKpd.js +1 -0
- package/components/p-CqWfy46u.js +1 -0
- package/components/p-Ctb1EExj.js +1 -0
- package/components/p-Cxwq4WaV.js +1 -0
- package/components/p-D5-dW4IM.js +1 -0
- package/components/p-D6O-bCyA.js +1 -0
- package/components/{p-BBCsPlPH.js → p-D7qfGAJ7.js} +1 -1
- package/components/p-DB-zpRCO.js +1 -0
- package/components/{p-C21npbUc.js → p-DD206pTM.js} +1 -1
- package/components/p-DIq_C5Sa.js +1 -0
- package/components/p-DKU5FVxI.js +1 -0
- package/components/{p-BZgc6bzH.js → p-DLgZfUmI.js} +1 -1
- package/components/{p-DtmgZu-S.js → p-DWOjSq8j.js} +1 -1
- package/components/p-DXmwthlZ.js +1 -0
- package/components/p-D_VBAyPm.js +1 -0
- package/components/p-DcOoa9vE.js +1 -0
- package/components/p-DiYkfhDE.js +1 -0
- package/components/p-DpvAVNqZ.js +1 -0
- package/components/p-DsVj4Cd-.js +1 -0
- package/components/{p-BRoFUwzJ.js → p-DyC90hvu.js} +1 -1
- package/components/p-DzDB4UBp.js +1 -0
- package/components/p-QnnFQ3fz.js +1 -0
- package/components/p-R5tYZVVd.js +1 -0
- package/components/p-WX1HYV2-.js +1 -0
- package/components/{p-1KOHyx-1.js → p-YFmbQndr.js} +1 -1
- package/components/{p-CUvmGsh_.js → p-_irxfS9S.js} +1 -1
- package/components/{p-CtDOTMOT.js → p-eN5fQtqO.js} +1 -1
- package/components/p-ePylRxs_.js +1 -0
- package/components/p-n2_EOgMr.js +1 -0
- package/components/p-q_MHsaAK.js +1 -0
- package/components/p-tpMN9yTQ.js +1 -0
- package/components/p-v9vlPlkd.js +1 -0
- package/components/p-viP8I2_s.js +1 -0
- package/dist/cjs/{a11y-_XjpTo2w.js → a11y--G19CFwe.js} +1 -0
- package/dist/cjs/{animation-hxDbANsw.js → animation-BIfSQAkX.js} +8 -12
- package/dist/cjs/{base-button-BP6iIMR7.js → base-button-DIhNZecD.js} +1 -1
- package/dist/cjs/{base-icon-button-BmiGQb9v.js → base-icon-button-DASKxRmK.js} +1 -1
- package/dist/cjs/chip.types-BD73fAij.js +22 -0
- package/dist/cjs/{focus-visible.mixin-1V7Eldn_.js → focus-visible.mixin-GrZAmMez.js} +1 -1
- package/dist/cjs/{helper-text-util-BkHm7ofh.js → helper-text-util-EAfzAOH6.js} +2 -2
- package/dist/cjs/{index-CwJ-mkQd.js → index-BQht1mLe.js} +20 -0
- package/dist/cjs/index-DnclGKUw.js +28 -4
- package/dist/cjs/index.cjs.js +2 -2
- package/dist/cjs/inherit-aria-attributes.mixin-DZ_vNjkJ.js +306 -0
- package/dist/cjs/{input.fc-DM-hX3xb.js → input.fc-ellguRiE.js} +9 -4
- package/dist/cjs/ix-action-card.cjs.entry.js +2 -2
- package/dist/cjs/ix-application-header.cjs.entry.js +3 -3
- package/dist/cjs/ix-application-switch-modal.cjs.entry.js +2 -2
- package/dist/cjs/ix-application.cjs.entry.js +1 -1
- package/dist/cjs/ix-avatar_2.cjs.entry.js +5 -5
- package/dist/cjs/ix-badge.cjs.entry.js +565 -0
- package/dist/cjs/ix-blind.cjs.entry.js +15 -9
- package/dist/cjs/ix-breadcrumb-item.cjs.entry.js +5 -158
- package/dist/cjs/ix-breadcrumb.cjs.entry.js +5 -5
- package/dist/cjs/ix-button.cjs.entry.js +4 -157
- package/dist/cjs/ix-card-accordion_2.cjs.entry.js +10 -7
- package/dist/cjs/ix-card-list.cjs.entry.js +63 -10
- package/dist/cjs/ix-card_2.cjs.entry.js +5 -5
- package/dist/cjs/ix-category-filter.cjs.entry.js +8 -8
- package/dist/cjs/ix-chat-ai-message.cjs.entry.js +35 -0
- package/dist/cjs/ix-chat-attachment.cjs.entry.js +110 -0
- package/dist/cjs/ix-chat-input.cjs.entry.js +406 -0
- package/dist/cjs/ix-chat-user-message.cjs.entry.js +66 -0
- package/dist/cjs/ix-chat.cjs.entry.js +28 -0
- package/dist/cjs/ix-checkbox-group.cjs.entry.js +4 -4
- package/dist/cjs/ix-checkbox.cjs.entry.js +6 -6
- package/dist/cjs/ix-chip.cjs.entry.js +12 -186
- package/dist/cjs/ix-col_4.cjs.entry.js +12 -12
- package/dist/cjs/ix-content-header.cjs.entry.js +4 -4
- package/dist/cjs/ix-content.cjs.entry.js +4 -4
- package/dist/cjs/ix-css-grid-item.cjs.entry.js +1 -1
- package/dist/cjs/ix-css-grid.cjs.entry.js +1 -1
- package/dist/cjs/ix-custom-field.cjs.entry.js +2 -2
- package/dist/cjs/ix-date-dropdown.cjs.entry.js +9 -9
- package/dist/cjs/ix-date-input.cjs.entry.js +9 -9
- package/dist/cjs/ix-date-picker.cjs.entry.js +17 -13
- package/dist/cjs/ix-date-time-card.cjs.entry.js +3 -3
- package/dist/cjs/ix-datetime-input.cjs.entry.js +9 -9
- package/dist/cjs/ix-datetime-picker.cjs.entry.js +4 -4
- package/dist/cjs/ix-divider.cjs.entry.js +1 -1
- package/dist/cjs/ix-dropdown-button.cjs.entry.js +11 -8
- package/dist/cjs/ix-dropdown-header.cjs.entry.js +2 -2
- package/dist/cjs/ix-dropdown-quick-actions.cjs.entry.js +1 -1
- package/dist/cjs/ix-dropdown_2.cjs.entry.js +19 -13
- package/dist/cjs/ix-empty-state.cjs.entry.js +2 -2
- package/dist/cjs/ix-event-list-item.cjs.entry.js +7 -7
- package/dist/cjs/ix-event-list.cjs.entry.js +11 -4
- package/dist/cjs/ix-expanding-search.cjs.entry.js +6 -6
- package/dist/cjs/ix-field-label_2.cjs.entry.js +8 -8
- package/dist/cjs/ix-filter-chip_2.cjs.entry.js +8 -8
- package/dist/cjs/ix-flip-tile-content.cjs.entry.js +1 -1
- package/dist/cjs/ix-flip-tile.cjs.entry.js +6 -6
- package/dist/cjs/ix-group-context-menu_2.cjs.entry.js +3 -3
- package/dist/cjs/ix-group.cjs.entry.js +10 -10
- package/dist/cjs/ix-helper-text.cjs.entry.js +5 -5
- package/dist/cjs/ix-icon-button_2.cjs.entry.js +9 -164
- package/dist/cjs/ix-icon-toggle-button.cjs.entry.js +7 -162
- package/dist/cjs/ix-input.cjs.entry.js +10 -10
- 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 +5 -5
- package/dist/cjs/ix-layout-auto.cjs.entry.js +1 -1
- package/dist/cjs/ix-link-button.cjs.entry.js +4 -4
- package/dist/cjs/ix-menu-about-item.cjs.entry.js +1 -1
- package/dist/cjs/ix-menu-about-news.cjs.entry.js +6 -6
- package/dist/cjs/ix-menu-about.cjs.entry.js +4 -4
- package/dist/cjs/ix-menu-avatar.cjs.entry.js +5 -5
- package/dist/cjs/ix-menu-category.cjs.entry.js +31 -170
- package/dist/cjs/ix-menu-expand-icon.cjs.entry.js +5 -5
- package/dist/cjs/ix-menu-item.cjs.entry.js +12 -161
- package/dist/cjs/ix-menu-settings-item.cjs.entry.js +1 -1
- package/dist/cjs/ix-menu-settings.cjs.entry.js +4 -4
- package/dist/cjs/ix-menu.cjs.entry.js +42 -20
- package/dist/cjs/ix-message-bar.cjs.entry.js +3 -3
- package/dist/cjs/ix-modal-content_2.cjs.entry.js +6 -6
- package/dist/cjs/ix-modal-footer.cjs.entry.js +2 -2
- package/dist/cjs/ix-modal-loading.cjs.entry.js +1 -1
- package/dist/cjs/ix-modal.cjs.entry.js +15 -8
- package/dist/cjs/ix-number-input.cjs.entry.js +19 -16
- package/dist/cjs/ix-pagination.cjs.entry.js +6 -6
- package/dist/cjs/ix-pane-layout.cjs.entry.js +2 -2
- package/dist/cjs/ix-pane.cjs.entry.js +11 -11
- package/dist/cjs/ix-pill_4.cjs.entry.js +27 -175
- package/dist/cjs/ix-popover-content.cjs.entry.js +2 -2
- package/dist/cjs/ix-popover-footer.cjs.entry.js +2 -2
- package/dist/cjs/ix-popover-header.cjs.entry.js +4 -4
- package/dist/cjs/ix-popover-image.cjs.entry.js +1 -1
- package/dist/cjs/ix-popover.cjs.entry.js +5 -156
- package/dist/cjs/ix-progress-indicator.cjs.entry.js +4 -4
- package/dist/cjs/ix-push-card.cjs.entry.js +2 -2
- package/dist/cjs/ix-radio-group.cjs.entry.js +3 -3
- package/dist/cjs/ix-radio.cjs.entry.js +6 -6
- package/dist/cjs/ix-range-field.cjs.entry.js +4 -4
- package/dist/cjs/ix-select.cjs.entry.js +14 -14
- package/dist/cjs/ix-slider.cjs.entry.js +9 -9
- package/dist/cjs/ix-split-button.cjs.entry.js +3 -3
- package/dist/cjs/ix-tab-panel.cjs.entry.js +2 -2
- package/dist/cjs/ix-textarea.cjs.entry.js +7 -7
- package/dist/cjs/ix-tile.cjs.entry.js +5 -5
- package/dist/cjs/ix-time-input.cjs.entry.js +9 -9
- package/dist/cjs/ix-toast-container.cjs.entry.js +3 -3
- package/dist/cjs/ix-toast.cjs.entry.js +4 -4
- package/dist/cjs/ix-toggle-button.cjs.entry.js +4 -159
- package/dist/cjs/ix-toggle.cjs.entry.js +7 -160
- package/dist/cjs/ix-tooltip.cjs.entry.js +6 -2
- package/dist/cjs/ix-tree-item.cjs.entry.js +6 -6
- package/dist/cjs/ix-tree.cjs.entry.js +2 -1
- package/dist/cjs/ix-typography.cjs.entry.js +2 -2
- package/dist/cjs/ix-upload.cjs.entry.js +6 -6
- package/dist/cjs/ix-workflow-step.cjs.entry.js +12 -6
- package/dist/cjs/ix-workflow-steps.cjs.entry.js +2 -2
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/siemens-ix.cjs.js +1 -1
- package/dist/cjs/{validation-DJaUH-UR.js → validation-B1izlD8M.js} +59 -3
- package/dist/collection/collection-manifest.json +6 -0
- package/dist/collection/components/action-card/action-card.css +11 -11
- package/dist/collection/components/application/application.css +11 -11
- package/dist/collection/components/application-header/application-header.css +11 -11
- package/dist/collection/components/application-header/application-switch-modal/application-switch-modal.css +11 -11
- package/dist/collection/components/avatar/avatar.css +19 -11
- package/dist/collection/components/badge/badge.css +622 -0
- package/dist/collection/components/badge/badge.js +817 -0
- package/dist/collection/components/badge/badge.status-icon.js +65 -0
- package/dist/collection/components/badge/badge.types.js +24 -0
- package/dist/collection/components/badge/badge.utils.js +57 -0
- package/dist/collection/components/badge/test/badge.page.js +194 -0
- package/dist/collection/components/blind/blind.css +119 -15
- package/dist/collection/components/blind/blind.js +11 -5
- package/dist/collection/components/breadcrumb/breadcrumb.css +11 -11
- package/dist/collection/components/breadcrumb/breadcrumb.js +2 -2
- package/dist/collection/components/breadcrumb-item/breadcrumb-item.css +160 -44
- package/dist/collection/components/button/button.css +84 -22
- package/dist/collection/components/card/card.css +11 -11
- package/dist/collection/components/card/card.js +2 -2
- package/dist/collection/components/card-accordion/card-accordion.css +61 -44
- package/dist/collection/components/card-accordion/card-accordion.js +7 -4
- package/dist/collection/components/card-content/card-content.css +11 -11
- package/dist/collection/components/card-content/card-content.js +1 -1
- package/dist/collection/components/card-list/card-list.css +23 -11
- package/dist/collection/components/card-list/card-list.js +67 -10
- package/dist/collection/components/card-title/card-title.js +1 -1
- package/dist/collection/components/category-filter/category-filter.css +95 -33
- package/dist/collection/components/category-filter/category-filter.js +4 -4
- package/dist/collection/components/chat/chat.css +114 -0
- package/dist/collection/components/chat/chat.js +47 -0
- package/dist/collection/components/chat-ai-message/chat-ai-message.css +139 -0
- package/dist/collection/components/chat-ai-message/chat-ai-message.js +56 -0
- package/dist/collection/components/chat-attachment/chat-attachment.css +135 -0
- package/dist/collection/components/chat-attachment/chat-attachment.js +284 -0
- package/dist/collection/components/chat-attachment/chat-attachment.types.js +1 -0
- package/dist/collection/components/chat-input/chat-input.css +323 -0
- package/dist/collection/components/chat-input/chat-input.js +878 -0
- package/dist/collection/components/chat-user-message/chat-user-message.css +145 -0
- package/dist/collection/components/chat-user-message/chat-user-message.js +112 -0
- package/dist/collection/components/checkbox/checkbox.css +11 -11
- package/dist/collection/components/checkbox/checkbox.js +3 -3
- package/dist/collection/components/checkbox-group/checkbox-group.css +1 -1
- package/dist/collection/components/checkbox-group/checkbox-group.js +2 -2
- package/dist/collection/components/chip/chip.css +28 -19
- package/dist/collection/components/chip/chip.js +7 -8
- package/dist/collection/components/col/col.css +11 -11
- package/dist/collection/components/col/col.js +2 -2
- package/dist/collection/components/content/content.css +11 -11
- package/dist/collection/components/content/content.js +3 -3
- package/dist/collection/components/content-header/content-header.js +3 -3
- package/dist/collection/components/css-grid/css-grid-item.js +1 -1
- package/dist/collection/components/css-grid/css-grid.js +1 -1
- package/dist/collection/components/custom-field/custom-field.js +1 -1
- package/dist/collection/components/date-dropdown/date-dropdown.css +30 -22
- package/dist/collection/components/date-dropdown/date-dropdown.js +5 -5
- package/dist/collection/components/date-input/date-input.css +22 -22
- package/dist/collection/components/date-input/date-input.js +3 -3
- package/dist/collection/components/date-picker/date-picker.css +19 -11
- package/dist/collection/components/date-picker/date-picker.js +15 -11
- package/dist/collection/components/date-time-card/date-time-card.css +11 -11
- package/dist/collection/components/date-time-card/date-time-card.js +2 -2
- package/dist/collection/components/datetime-input/datetime-input.css +22 -22
- package/dist/collection/components/datetime-input/datetime-input.js +3 -3
- package/dist/collection/components/datetime-picker/datetime-picker.css +11 -11
- package/dist/collection/components/datetime-picker/datetime-picker.js +3 -3
- package/dist/collection/components/divider/divider.js +1 -1
- package/dist/collection/components/dropdown/dropdown.css +11 -11
- package/dist/collection/components/dropdown/dropdown.js +11 -5
- package/dist/collection/components/dropdown-button/dropdown-button.css +155 -34
- package/dist/collection/components/dropdown-button/dropdown-button.js +8 -5
- package/dist/collection/components/dropdown-header/dropdown-header.css +11 -11
- package/dist/collection/components/dropdown-header/dropdown-header.js +1 -1
- package/dist/collection/components/dropdown-item/dropdown-item.css +12 -12
- package/dist/collection/components/dropdown-item/dropdown-item.js +3 -3
- package/dist/collection/components/dropdown-quick-actions/dropdown-quick-actions.js +1 -1
- package/dist/collection/components/empty-state/empty-state.css +11 -11
- package/dist/collection/components/empty-state/empty-state.js +1 -1
- package/dist/collection/components/event-list/event-list.css +11 -11
- package/dist/collection/components/event-list/event-list.js +10 -3
- package/dist/collection/components/event-list-item/event-list-item.css +11 -11
- package/dist/collection/components/event-list-item/event-list-item.js +4 -4
- package/dist/collection/components/expanding-search/expanding-search.css +11 -11
- package/dist/collection/components/expanding-search/expanding-search.js +4 -4
- package/dist/collection/components/field-label/field-label.js +2 -2
- package/dist/collection/components/field-wrapper/field-wrapper.js +2 -2
- package/dist/collection/components/filter-chip/filter-chip.css +11 -11
- package/dist/collection/components/filter-chip/filter-chip.js +2 -2
- package/dist/collection/components/flip-tile/flip-tile.css +11 -11
- 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 +9 -9
- package/dist/collection/components/group-item/group-item.css +11 -11
- package/dist/collection/components/helper-text/helper-text.js +1 -1
- package/dist/collection/components/icon-button/icon-button.css +103 -39
- package/dist/collection/components/icon-button/icon-button.js +2 -2
- package/dist/collection/components/icon-toggle-button/icon-toggle-button.css +103 -39
- package/dist/collection/components/icon-toggle-button/icon-toggle-button.js +2 -2
- package/dist/collection/components/input/input.css +11 -11
- package/dist/collection/components/input/input.js +4 -4
- package/dist/collection/components/input/input.util.js +6 -1
- package/dist/collection/components/input/number-input.css +11 -11
- package/dist/collection/components/input/number-input.js +13 -10
- package/dist/collection/components/input/textarea.css +11 -11
- package/dist/collection/components/input/textarea.js +2 -2
- package/dist/collection/components/ix-playground/ix-playground.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.css +11 -11
- 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.css +36 -22
- package/dist/collection/components/menu/menu-expand-icon.js +1 -1
- package/dist/collection/components/menu/menu.css +11 -11
- package/dist/collection/components/menu/menu.js +39 -17
- package/dist/collection/components/menu-about/menu-about.css +11 -11
- package/dist/collection/components/menu-about/menu-about.js +2 -2
- package/dist/collection/components/menu-about-item/menu-about-item.js +1 -1
- package/dist/collection/components/menu-about-news/menu-about-news.css +11 -11
- package/dist/collection/components/menu-about-news/menu-about-news.js +4 -4
- package/dist/collection/components/menu-avatar/menu-avatar.css +11 -11
- package/dist/collection/components/menu-avatar/menu-avatar.js +2 -2
- package/dist/collection/components/menu-avatar-item/menu-avatar-item.css +11 -11
- package/dist/collection/components/menu-avatar-item/menu-avatar-item.js +1 -1
- package/dist/collection/components/menu-category/menu-category.css +11 -11
- package/dist/collection/components/menu-category/menu-category.js +29 -15
- package/dist/collection/components/menu-item/menu-item.js +9 -5
- package/dist/collection/components/menu-settings/menu-settings.css +11 -11
- package/dist/collection/components/menu-settings/menu-settings.js +2 -2
- package/dist/collection/components/menu-settings-item/menu-settings-item.js +1 -1
- package/dist/collection/components/message-bar/message-bar.css +11 -11
- package/dist/collection/components/message-bar/message-bar.js +1 -1
- package/dist/collection/components/modal/modal.js +13 -6
- package/dist/collection/components/modal-content/modal-content.css +11 -11
- package/dist/collection/components/modal-content/modal-content.js +1 -1
- package/dist/collection/components/modal-footer/modal-footer.css +11 -11
- package/dist/collection/components/modal-footer/modal-footer.js +1 -1
- package/dist/collection/components/modal-header/modal-header.css +11 -11
- package/dist/collection/components/modal-header/modal-header.js +2 -2
- package/dist/collection/components/modal-loading/modal-loading.js +1 -1
- package/dist/collection/components/pagination/pagination.css +114 -50
- package/dist/collection/components/pagination/pagination.js +2 -2
- package/dist/collection/components/pane/pane.css +11 -11
- package/dist/collection/components/pane/pane.js +7 -7
- package/dist/collection/components/pane-layout/pane-layout.css +11 -11
- package/dist/collection/components/pane-layout/pane-layout.js +1 -1
- package/dist/collection/components/pill/pill.css +11 -11
- package/dist/collection/components/pill/pill.js +4 -4
- package/dist/collection/components/popover/popover.js +3 -1
- package/dist/collection/components/popover/test/popover.page.js +3 -2
- package/dist/collection/components/popover-content/popover-content.css +11 -11
- package/dist/collection/components/popover-content/popover-content.js +1 -1
- package/dist/collection/components/popover-footer/popover-footer.css +11 -11
- package/dist/collection/components/popover-footer/popover-footer.js +1 -1
- package/dist/collection/components/popover-header/popover-header.css +11 -11
- package/dist/collection/components/popover-header/popover-header.js +1 -1
- package/dist/collection/components/popover-image/popover-image.css +11 -11
- package/dist/collection/components/progress-indicator/progress-indicator.js +3 -3
- package/dist/collection/components/push-card/push-card.css +70 -0
- package/dist/collection/components/push-card/push-card.js +1 -1
- package/dist/collection/components/radio/radio.css +11 -11
- package/dist/collection/components/radio/radio.js +3 -3
- package/dist/collection/components/radio-group/radio-group.js +2 -2
- package/dist/collection/components/range-field/range-field.css +11 -11
- package/dist/collection/components/range-field/range-field.js +2 -2
- package/dist/collection/components/row/row.js +1 -1
- package/dist/collection/components/select/select.css +11 -11
- package/dist/collection/components/select/select.js +11 -11
- package/dist/collection/components/select-item/select-item.js +2 -2
- package/dist/collection/components/slider/slider.css +11 -11
- package/dist/collection/components/slider/slider.js +6 -6
- package/dist/collection/components/spinner/spinner.css +55 -55
- package/dist/collection/components/spinner/spinner.js +1 -1
- package/dist/collection/components/split-button/split-button.css +11 -11
- package/dist/collection/components/split-button/split-button.js +1 -1
- package/dist/collection/components/tab-item/tab-item.css +17 -11
- package/dist/collection/components/tab-item/tab-item.js +5 -5
- package/dist/collection/components/tab-panel/tab-panel.css +11 -11
- package/dist/collection/components/tab-panel/tab-panel.js +1 -1
- package/dist/collection/components/tab-set/tab-set.css +11 -11
- package/dist/collection/components/tab-set/tab-set.js +1 -1
- package/dist/collection/components/tabs/tabs.css +11 -11
- package/dist/collection/components/tabs/tabs.js +10 -5
- package/dist/collection/components/tile/tile.css +11 -11
- package/dist/collection/components/tile/tile.js +4 -4
- package/dist/collection/components/time-input/time-input.css +22 -22
- package/dist/collection/components/time-input/time-input.js +3 -3
- package/dist/collection/components/time-picker/test/expect-defined.js +13 -0
- package/dist/collection/components/time-picker/time-picker.css +11 -11
- package/dist/collection/components/time-picker/time-picker.js +5 -5
- package/dist/collection/components/toast/toast-container.css +11 -11
- package/dist/collection/components/toast/toast-container.js +2 -2
- package/dist/collection/components/toast/toast.css +11 -11
- package/dist/collection/components/toast/toast.js +2 -2
- package/dist/collection/components/toggle/toggle.css +11 -11
- package/dist/collection/components/toggle/toggle.js +3 -3
- package/dist/collection/components/toggle-button/toggle-button.css +95 -33
- package/dist/collection/components/tooltip/tooltip.js +6 -2
- package/dist/collection/components/tree/tree.js +1 -1
- package/dist/collection/components/tree-item/tree-item.css +11 -11
- package/dist/collection/components/tree-item/tree-item.js +4 -4
- package/dist/collection/components/typography/typography.css +11 -11
- package/dist/collection/components/typography/typography.js +1 -1
- package/dist/collection/components/upload/upload.css +11 -11
- package/dist/collection/components/upload/upload.js +3 -3
- package/dist/collection/components/utils/a11y.js +1 -1
- package/dist/collection/components/utils/animation.js +8 -12
- package/dist/collection/components/utils/input/validation.js +58 -3
- package/dist/collection/components/utils/internal/mixins/accessibility/aria-attribute-observer.js +106 -0
- package/dist/collection/components/utils/internal/mixins/accessibility/inherit-aria-attributes.mixin.js +175 -166
- package/dist/collection/components/utils/lazy-list/lazy.js +1 -0
- package/dist/collection/components/workflow-step/workflow-step.css +13 -13
- package/dist/collection/components/workflow-step/workflow-step.js +10 -4
- package/dist/collection/components/workflow-steps/workflow-steps.css +11 -11
- package/dist/collection/components/workflow-steps/workflow-steps.js +1 -1
- package/dist/collection/tests/utils/test/page.js +3 -0
- package/dist/esm/{a11y-C21npbUc.js → a11y-DD206pTM.js} +1 -1
- package/dist/esm/{animation-DNIQ2C1K.js → animation-BqeSHO6C.js} +8 -12
- package/dist/esm/{base-button-DZdtpLxn.js → base-button-Oanl-VqF.js} +1 -1
- package/dist/esm/{base-icon-button-DufFLJC-.js → base-icon-button-CxmfMOOd.js} +1 -1
- package/dist/esm/chip.types-4ZsT_zIm.js +20 -0
- package/dist/esm/{focus-visible.mixin-CaRK3Ex_.js → focus-visible.mixin-DNYMa4dY.js} +1 -1
- package/dist/esm/{helper-text-util-D0LEFZuB.js → helper-text-util-BJ-ZMW2J.js} +2 -2
- package/dist/esm/{index-DgUGsIlh.js → index-BeX6RWvV.js} +11 -1
- package/dist/esm/index-EBgS4zhE.js +28 -4
- package/dist/esm/index.js +2 -2
- package/dist/esm/inherit-aria-attributes.mixin-BmTKblYV.js +304 -0
- package/dist/esm/{input.fc-CE3kP-L_.js → input.fc-Cwmx0lGN.js} +9 -4
- package/dist/esm/ix-action-card.entry.js +2 -2
- package/dist/esm/ix-application-header.entry.js +3 -3
- package/dist/esm/ix-application-switch-modal.entry.js +2 -2
- package/dist/esm/ix-application.entry.js +1 -1
- package/dist/esm/ix-avatar_2.entry.js +5 -5
- package/dist/esm/ix-badge.entry.js +563 -0
- package/dist/esm/ix-blind.entry.js +15 -9
- package/dist/esm/ix-breadcrumb-item.entry.js +5 -158
- package/dist/esm/ix-breadcrumb.entry.js +5 -5
- package/dist/esm/ix-button.entry.js +4 -157
- package/dist/esm/ix-card-accordion_2.entry.js +10 -7
- package/dist/esm/ix-card-list.entry.js +63 -10
- package/dist/esm/ix-card_2.entry.js +5 -5
- package/dist/esm/ix-category-filter.entry.js +8 -8
- package/dist/esm/ix-chat-ai-message.entry.js +33 -0
- package/dist/esm/ix-chat-attachment.entry.js +108 -0
- package/dist/esm/ix-chat-input.entry.js +404 -0
- package/dist/esm/ix-chat-user-message.entry.js +64 -0
- package/dist/esm/ix-chat.entry.js +26 -0
- package/dist/esm/ix-checkbox-group.entry.js +4 -4
- package/dist/esm/ix-checkbox.entry.js +6 -6
- package/dist/esm/ix-chip.entry.js +11 -185
- package/dist/esm/ix-col_4.entry.js +12 -12
- package/dist/esm/ix-content-header.entry.js +4 -4
- package/dist/esm/ix-content.entry.js +4 -4
- package/dist/esm/ix-css-grid-item.entry.js +1 -1
- package/dist/esm/ix-css-grid.entry.js +1 -1
- package/dist/esm/ix-custom-field.entry.js +2 -2
- package/dist/esm/ix-date-dropdown.entry.js +9 -9
- package/dist/esm/ix-date-input.entry.js +9 -9
- package/dist/esm/ix-date-picker.entry.js +17 -13
- package/dist/esm/ix-date-time-card.entry.js +3 -3
- package/dist/esm/ix-datetime-input.entry.js +9 -9
- package/dist/esm/ix-datetime-picker.entry.js +4 -4
- package/dist/esm/ix-divider.entry.js +1 -1
- package/dist/esm/ix-dropdown-button.entry.js +11 -8
- package/dist/esm/ix-dropdown-header.entry.js +2 -2
- package/dist/esm/ix-dropdown-quick-actions.entry.js +1 -1
- package/dist/esm/ix-dropdown_2.entry.js +19 -13
- package/dist/esm/ix-empty-state.entry.js +2 -2
- package/dist/esm/ix-event-list-item.entry.js +7 -7
- package/dist/esm/ix-event-list.entry.js +11 -4
- package/dist/esm/ix-expanding-search.entry.js +6 -6
- package/dist/esm/ix-field-label_2.entry.js +8 -8
- package/dist/esm/ix-filter-chip_2.entry.js +8 -8
- package/dist/esm/ix-flip-tile-content.entry.js +1 -1
- package/dist/esm/ix-flip-tile.entry.js +6 -6
- package/dist/esm/ix-group-context-menu_2.entry.js +3 -3
- package/dist/esm/ix-group.entry.js +10 -10
- package/dist/esm/ix-helper-text.entry.js +5 -5
- package/dist/esm/ix-icon-button_2.entry.js +9 -164
- package/dist/esm/ix-icon-toggle-button.entry.js +7 -162
- package/dist/esm/ix-input.entry.js +10 -10
- 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 +5 -5
- package/dist/esm/ix-layout-auto.entry.js +1 -1
- package/dist/esm/ix-link-button.entry.js +4 -4
- package/dist/esm/ix-menu-about-item.entry.js +1 -1
- package/dist/esm/ix-menu-about-news.entry.js +6 -6
- package/dist/esm/ix-menu-about.entry.js +4 -4
- package/dist/esm/ix-menu-avatar.entry.js +5 -5
- package/dist/esm/ix-menu-category.entry.js +31 -170
- package/dist/esm/ix-menu-expand-icon.entry.js +5 -5
- package/dist/esm/ix-menu-item.entry.js +12 -161
- package/dist/esm/ix-menu-settings-item.entry.js +1 -1
- package/dist/esm/ix-menu-settings.entry.js +4 -4
- package/dist/esm/ix-menu.entry.js +42 -20
- package/dist/esm/ix-message-bar.entry.js +3 -3
- package/dist/esm/ix-modal-content_2.entry.js +6 -6
- package/dist/esm/ix-modal-footer.entry.js +2 -2
- package/dist/esm/ix-modal-loading.entry.js +1 -1
- package/dist/esm/ix-modal.entry.js +15 -8
- package/dist/esm/ix-number-input.entry.js +19 -16
- package/dist/esm/ix-pagination.entry.js +6 -6
- package/dist/esm/ix-pane-layout.entry.js +2 -2
- package/dist/esm/ix-pane.entry.js +11 -11
- package/dist/esm/ix-pill_4.entry.js +27 -175
- package/dist/esm/ix-popover-content.entry.js +2 -2
- package/dist/esm/ix-popover-footer.entry.js +2 -2
- package/dist/esm/ix-popover-header.entry.js +4 -4
- package/dist/esm/ix-popover-image.entry.js +1 -1
- package/dist/esm/ix-popover.entry.js +5 -156
- package/dist/esm/ix-progress-indicator.entry.js +4 -4
- package/dist/esm/ix-push-card.entry.js +2 -2
- package/dist/esm/ix-radio-group.entry.js +3 -3
- package/dist/esm/ix-radio.entry.js +6 -6
- package/dist/esm/ix-range-field.entry.js +4 -4
- package/dist/esm/ix-select.entry.js +14 -14
- package/dist/esm/ix-slider.entry.js +9 -9
- package/dist/esm/ix-split-button.entry.js +3 -3
- package/dist/esm/ix-tab-panel.entry.js +2 -2
- package/dist/esm/ix-textarea.entry.js +7 -7
- package/dist/esm/ix-tile.entry.js +5 -5
- package/dist/esm/ix-time-input.entry.js +9 -9
- package/dist/esm/ix-toast-container.entry.js +3 -3
- package/dist/esm/ix-toast.entry.js +4 -4
- package/dist/esm/ix-toggle-button.entry.js +4 -159
- package/dist/esm/ix-toggle.entry.js +7 -160
- package/dist/esm/ix-tooltip.entry.js +6 -2
- package/dist/esm/ix-tree-item.entry.js +6 -6
- package/dist/esm/ix-tree.entry.js +2 -1
- package/dist/esm/ix-typography.entry.js +2 -2
- package/dist/esm/ix-upload.entry.js +6 -6
- package/dist/esm/ix-workflow-step.entry.js +12 -6
- package/dist/esm/ix-workflow-steps.entry.js +2 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/siemens-ix.js +1 -1
- package/dist/esm/{validation-VVt5EFy0.js → validation-DXpftrw5.js} +59 -4
- package/dist/siemens-ix/index.esm.js +1 -1
- package/dist/siemens-ix/{p-71feb871.entry.js → p-0018f327.entry.js} +1 -1
- package/dist/siemens-ix/p-0409f281.entry.js +1 -0
- package/dist/siemens-ix/p-0819923e.entry.js +1 -0
- package/dist/siemens-ix/p-0b875bbd.entry.js +1 -0
- package/dist/siemens-ix/p-14554694.entry.js +1 -0
- package/dist/siemens-ix/p-1a7b51d8.entry.js +1 -0
- package/dist/siemens-ix/{p-ea9691c1.entry.js → p-1aef893c.entry.js} +1 -1
- package/dist/siemens-ix/p-1bce1c19.entry.js +1 -0
- package/dist/siemens-ix/p-1d06e067.entry.js +1 -0
- package/dist/siemens-ix/p-1fddf959.entry.js +1 -0
- package/dist/siemens-ix/p-207d77b3.entry.js +1 -0
- package/dist/siemens-ix/{p-c69036b1.entry.js → p-213059a9.entry.js} +1 -1
- package/dist/siemens-ix/{p-2753ed4e.entry.js → p-222d3d93.entry.js} +1 -1
- package/dist/siemens-ix/p-2270cc5d.entry.js +1 -0
- package/dist/siemens-ix/p-24138425.entry.js +1 -0
- package/dist/siemens-ix/p-32104d25.entry.js +1 -0
- package/dist/siemens-ix/p-34d5185d.entry.js +1 -0
- package/dist/siemens-ix/p-34f2792e.entry.js +1 -0
- package/dist/siemens-ix/p-35042cda.entry.js +1 -0
- package/dist/siemens-ix/p-351e8732.entry.js +1 -0
- package/dist/siemens-ix/{p-e5e220c7.entry.js → p-38e0953a.entry.js} +1 -1
- package/dist/siemens-ix/{p-d1cd3cb9.entry.js → p-38eef16a.entry.js} +1 -1
- package/dist/siemens-ix/p-39079ba7.entry.js +1 -0
- package/dist/siemens-ix/p-3a60004f.entry.js +1 -0
- package/dist/siemens-ix/p-3ad11c04.entry.js +1 -0
- package/dist/siemens-ix/{p-ab202c45.entry.js → p-3c7a8e8b.entry.js} +1 -1
- package/dist/siemens-ix/p-3c92d126.entry.js +1 -0
- package/dist/siemens-ix/p-3ca5d3b9.entry.js +1 -0
- package/dist/siemens-ix/p-3fe85552.entry.js +1 -0
- package/dist/siemens-ix/{p-eac237a1.entry.js → p-40239cf6.entry.js} +1 -1
- package/dist/siemens-ix/{p-8f72a218.entry.js → p-403b7d10.entry.js} +1 -1
- package/dist/siemens-ix/p-4739e88e.entry.js +1 -0
- package/dist/siemens-ix/p-4ZsT_zIm.js +1 -0
- package/dist/siemens-ix/p-4c765c73.entry.js +1 -0
- package/dist/siemens-ix/p-4f02b8dd.entry.js +1 -0
- package/dist/siemens-ix/{p-d16ee3bd.entry.js → p-5014b469.entry.js} +1 -1
- package/dist/siemens-ix/p-50ece3e2.entry.js +1 -0
- package/dist/siemens-ix/p-53319a22.entry.js +1 -0
- package/dist/siemens-ix/{p-c0d56b86.entry.js → p-571a1628.entry.js} +1 -1
- package/dist/siemens-ix/p-58c6aa27.entry.js +1 -0
- package/dist/siemens-ix/{p-34eaf010.entry.js → p-60f7be48.entry.js} +1 -1
- package/dist/siemens-ix/p-643ed439.entry.js +1 -0
- package/dist/siemens-ix/p-6505e43d.entry.js +1 -0
- package/dist/siemens-ix/p-66097da1.entry.js +1 -0
- package/dist/siemens-ix/p-66e92cdd.entry.js +1 -0
- package/dist/siemens-ix/{p-21b09017.entry.js → p-675e2aa8.entry.js} +1 -1
- package/dist/siemens-ix/p-6c25b44d.entry.js +1 -0
- package/dist/siemens-ix/p-79a08a2a.entry.js +1 -0
- package/dist/siemens-ix/p-7b9d9c0c.entry.js +1 -0
- package/dist/siemens-ix/{p-da2e0f0e.entry.js → p-7bc3af96.entry.js} +1 -1
- package/dist/siemens-ix/p-83827bb2.entry.js +1 -0
- package/dist/siemens-ix/p-859294b4.entry.js +1 -0
- package/dist/siemens-ix/p-8a14750f.entry.js +1 -0
- package/dist/siemens-ix/p-8af23465.entry.js +1 -0
- package/dist/siemens-ix/{p-a2aa806e.entry.js → p-8bc225b7.entry.js} +1 -1
- package/dist/siemens-ix/p-9254cb19.entry.js +1 -0
- package/dist/siemens-ix/p-95625e2a.entry.js +1 -0
- package/dist/siemens-ix/p-9c6e5dcc.entry.js +1 -0
- package/dist/siemens-ix/{p-b2fe56c7.entry.js → p-9df616d3.entry.js} +1 -1
- package/dist/siemens-ix/p-BeX6RWvV.js +1 -0
- package/dist/siemens-ix/p-Bemn50Nk.js +1 -0
- package/dist/siemens-ix/p-BqeSHO6C.js +1 -0
- package/dist/siemens-ix/{p-HpQs38Y0.js → p-CDKWxg_L.js} +1 -1
- package/dist/siemens-ix/{p-CXbob2Ew.js → p-CLxF-dX8.js} +1 -1
- package/dist/siemens-ix/p-Cv_omozQ.js +1 -0
- package/dist/siemens-ix/{p-C21npbUc.js → p-DD206pTM.js} +1 -1
- package/dist/siemens-ix/p-S-XikzrL.js +1 -0
- package/dist/siemens-ix/p-a05bf6b5.entry.js +1 -0
- package/dist/siemens-ix/{p-bc0f5cbe.entry.js → p-a23edbb6.entry.js} +1 -1
- package/dist/siemens-ix/{p-f43c97cf.entry.js → p-a2a3d749.entry.js} +1 -1
- package/dist/siemens-ix/p-a4c3f3d3.entry.js +1 -0
- package/dist/siemens-ix/p-a87b0328.entry.js +1 -0
- package/dist/siemens-ix/p-aa0770ab.entry.js +1 -0
- package/dist/siemens-ix/{p-0e74e65c.entry.js → p-abe537f8.entry.js} +1 -1
- package/dist/siemens-ix/p-b299eca3.entry.js +1 -0
- package/dist/siemens-ix/p-b5bf48cb.entry.js +1 -0
- package/dist/siemens-ix/p-b990c3f4.entry.js +1 -0
- package/dist/siemens-ix/p-b9dcbd84.entry.js +1 -0
- package/dist/siemens-ix/p-c1b669ae.entry.js +1 -0
- package/dist/siemens-ix/{p-95e8951f.entry.js → p-c2d8ec4e.entry.js} +1 -1
- package/dist/siemens-ix/p-c393c20e.entry.js +1 -0
- package/dist/siemens-ix/p-c3e44b4a.entry.js +1 -0
- package/dist/siemens-ix/p-c4379966.entry.js +1 -0
- package/dist/siemens-ix/{p-52096875.entry.js → p-c6346987.entry.js} +1 -1
- package/dist/siemens-ix/p-c6987c42.entry.js +1 -0
- package/dist/siemens-ix/{p-7655c4c2.entry.js → p-ca4259c9.entry.js} +1 -1
- package/dist/siemens-ix/{p-e9b37020.entry.js → p-caac5984.entry.js} +1 -1
- package/dist/siemens-ix/{p-7899597f.entry.js → p-cb43f6e5.entry.js} +1 -1
- package/dist/siemens-ix/p-cc6305ab.entry.js +1 -0
- package/dist/siemens-ix/{p-5d7ede96.entry.js → p-ccea2ebf.entry.js} +1 -1
- package/dist/siemens-ix/{p-a44b1452.entry.js → p-cf56ddd5.entry.js} +1 -1
- package/dist/siemens-ix/p-cfd75035.entry.js +1 -0
- package/dist/siemens-ix/p-d39c4aeb.entry.js +1 -0
- package/dist/siemens-ix/p-d4d99140.entry.js +1 -0
- package/dist/siemens-ix/{p-d699bb26.entry.js → p-d555f28a.entry.js} +1 -1
- package/dist/siemens-ix/p-d94ad8f8.entry.js +1 -0
- package/dist/siemens-ix/p-da700215.entry.js +1 -0
- package/dist/siemens-ix/p-ddb49318.entry.js +1 -0
- package/dist/siemens-ix/p-de9a4607.entry.js +1 -0
- package/dist/siemens-ix/p-e2e7c16a.entry.js +1 -0
- package/dist/siemens-ix/p-e4f04831.entry.js +1 -0
- package/dist/siemens-ix/p-e5239c6d.entry.js +1 -0
- package/dist/siemens-ix/p-e789cd7e.entry.js +1 -0
- package/dist/siemens-ix/p-e7dedba9.entry.js +1 -0
- package/dist/siemens-ix/p-e87e947c.entry.js +1 -0
- package/dist/siemens-ix/p-e8d73d19.entry.js +1 -0
- package/dist/siemens-ix/p-e8f5519f.entry.js +1 -0
- package/dist/siemens-ix/{p-b7570885.entry.js → p-ea3b4ad4.entry.js} +1 -1
- package/dist/siemens-ix/p-eba11702.entry.js +1 -0
- package/dist/siemens-ix/p-eda419ea.entry.js +1 -0
- package/dist/siemens-ix/p-f3e24bb0.entry.js +1 -0
- package/dist/siemens-ix/{p-ac804eb2.entry.js → p-f4d8f94b.entry.js} +1 -1
- package/dist/siemens-ix/p-f705bb97.entry.js +1 -0
- package/{components/p-DkAUNod9.js → dist/siemens-ix/p-f7f6cf46.entry.js} +1 -1
- package/dist/siemens-ix/{p-4faa3c03.entry.js → p-fcfecc91.entry.js} +1 -1
- package/dist/siemens-ix/{p-C518yBiI.js → p-rgh7lt60.js} +1 -1
- package/dist/siemens-ix/p-xptA1Kt1.js +1 -0
- package/dist/siemens-ix/siemens-ix.css +11 -11
- package/dist/siemens-ix/siemens-ix.esm.js +1 -1
- package/dist/types/components/badge/badge.d.ts +195 -0
- package/dist/types/components/badge/badge.status-icon.d.ts +21 -0
- package/dist/types/components/badge/badge.types.d.ts +19 -0
- package/dist/types/components/badge/badge.utils.d.ts +10 -0
- package/dist/types/components/badge/test/badge.page.d.ts +67 -0
- package/dist/types/components/breadcrumb-item/breadcrumb-item.d.ts +1 -16
- package/dist/types/components/button/button.d.ts +1 -16
- package/dist/types/components/card-list/card-list.d.ts +4 -1
- package/dist/types/components/chat/chat.d.ts +11 -0
- package/dist/types/components/chat-ai-message/chat-ai-message.d.ts +14 -0
- package/dist/types/components/chat-attachment/chat-attachment.d.ts +47 -0
- package/dist/types/components/chat-attachment/chat-attachment.types.d.ts +1 -0
- package/dist/types/components/chat-input/chat-input.d.ts +175 -0
- package/dist/types/components/chat-user-message/chat-user-message.d.ts +23 -0
- package/dist/types/components/chip/chip.d.ts +2 -17
- package/dist/types/components/dropdown/dropdown-focus.d.ts +1 -1
- package/dist/types/components/group/group.d.ts +1 -1
- package/dist/types/components/icon-button/icon-button.d.ts +2 -17
- package/dist/types/components/icon-toggle-button/icon-toggle-button.d.ts +1 -16
- package/dist/types/components/input/input.util.d.ts +2 -3
- package/dist/types/components/input/number-input.d.ts +1 -0
- package/dist/types/components/menu/menu.d.ts +1 -1
- package/dist/types/components/menu-category/menu-category.d.ts +3 -18
- package/dist/types/components/menu-item/menu-item.d.ts +1 -16
- package/dist/types/components/modal/modal.d.ts +1 -0
- package/dist/types/components/modal-header/modal-header.d.ts +1 -1
- package/dist/types/components/popover/popover.d.ts +1 -16
- package/dist/types/components/tabs/tabs.d.ts +3 -16
- package/dist/types/components/time-picker/test/expect-defined.d.ts +1 -0
- package/dist/types/components/toggle/toggle.d.ts +1 -16
- package/dist/types/components/toggle-button/toggle-button.d.ts +1 -16
- package/dist/types/components/tree/tree.d.ts +1 -1
- package/dist/types/components/utils/a11y.d.ts +1 -0
- package/dist/types/components/utils/input/validation.d.ts +6 -0
- package/dist/types/components/utils/internal/mixins/accessibility/aria-attribute-observer.d.ts +7 -0
- package/dist/types/components/utils/internal/mixins/accessibility/inherit-aria-attributes.mixin.d.ts +7 -18
- package/dist/types/components/utils/shadow-dom.d.ts +1 -1
- package/dist/types/components/workflow-step/workflow-step.d.ts +1 -0
- package/dist/types/components.d.ts +706 -5
- package/dist/types/public-api.d.ts +1 -0
- package/hydrate/index.js +2279 -2169
- package/hydrate/index.mjs +2279 -2169
- package/package.json +3 -3
- package/scss/mixins/_scrollbar.scss +21 -9
- package/components/p-3VG6z9c3.js +0 -1
- package/components/p-7HGOhDMX.js +0 -1
- package/components/p-BH2Yhp3V.js +0 -1
- package/components/p-BIcWFids.js +0 -1
- package/components/p-BST8QY5w.js +0 -1
- package/components/p-BWH03B1n.js +0 -1
- package/components/p-BWknDysp.js +0 -1
- package/components/p-B_MBGj0b.js +0 -1
- package/components/p-Bj_6nynP.js +0 -1
- package/components/p-BtSt9tC5.js +0 -1
- package/components/p-BzFLbXmT.js +0 -1
- package/components/p-C7MRPZvZ.js +0 -1
- package/components/p-CAH3dF6j.js +0 -1
- package/components/p-CHV-_J6i.js +0 -1
- package/components/p-Ca8JFa1v.js +0 -1
- package/components/p-CgHioxG-.js +0 -1
- package/components/p-CkIELF-1.js +0 -1
- package/components/p-Cvpz1Ji5.js +0 -1
- package/components/p-D1sONqtj.js +0 -1
- package/components/p-D69Mojvn.js +0 -1
- package/components/p-DKH7tPDu.js +0 -1
- package/components/p-DLe8Pp58.js +0 -1
- package/components/p-DM7ma3Eh.js +0 -1
- package/components/p-DNIQ2C1K.js +0 -1
- package/components/p-DO3HtUke.js +0 -1
- package/components/p-DfdjJL6W.js +0 -1
- package/components/p-DjIyhGBC.js +0 -1
- package/components/p-Dl_YKIKl.js +0 -1
- package/components/p-DuMiVxY1.js +0 -1
- package/components/p-Dwe6tWhq.js +0 -1
- package/components/p-DwmHytZi.js +0 -1
- package/components/p-DziPiOL3.js +0 -1
- package/components/p-GmOVROeD.js +0 -1
- package/components/p-LbnItC1h.js +0 -1
- package/components/p-R1AQtGdV.js +0 -1
- package/components/p-_f_q2Etu.js +0 -1
- package/components/p-f1jZqaUz.js +0 -1
- package/components/p-olkZUb1j.js +0 -1
- package/components/p-z19mjzlp.js +0 -1
- package/dist/cjs/inherit-aria-attributes.mixin-EyRU0cDO.js +0 -36
- package/dist/esm/inherit-aria-attributes.mixin-nCmPujqf.js +0 -34
- package/dist/siemens-ix/p-03215d55.entry.js +0 -1
- package/dist/siemens-ix/p-04a42013.entry.js +0 -1
- package/dist/siemens-ix/p-0b24f8d0.entry.js +0 -1
- package/dist/siemens-ix/p-0fd5baf1.entry.js +0 -1
- package/dist/siemens-ix/p-18cae4df.entry.js +0 -1
- package/dist/siemens-ix/p-1a6b7e92.entry.js +0 -1
- package/dist/siemens-ix/p-1cd9a45a.entry.js +0 -1
- package/dist/siemens-ix/p-1ea183fb.entry.js +0 -1
- package/dist/siemens-ix/p-227ba1b8.entry.js +0 -1
- package/dist/siemens-ix/p-2eb094c0.entry.js +0 -1
- package/dist/siemens-ix/p-39fb1c9e.entry.js +0 -1
- package/dist/siemens-ix/p-3bb5600a.entry.js +0 -1
- package/dist/siemens-ix/p-3bfa4bbc.entry.js +0 -1
- package/dist/siemens-ix/p-3f5ac9f7.entry.js +0 -1
- package/dist/siemens-ix/p-4154d18a.entry.js +0 -1
- package/dist/siemens-ix/p-427f85c3.entry.js +0 -1
- package/dist/siemens-ix/p-45106215.entry.js +0 -1
- package/dist/siemens-ix/p-4ceb3543.entry.js +0 -1
- package/dist/siemens-ix/p-4d179abe.entry.js +0 -1
- package/dist/siemens-ix/p-50a44cb9.entry.js +0 -1
- package/dist/siemens-ix/p-54a22a58.entry.js +0 -1
- package/dist/siemens-ix/p-57678563.entry.js +0 -1
- package/dist/siemens-ix/p-5ff289c7.entry.js +0 -1
- package/dist/siemens-ix/p-601224bd.entry.js +0 -1
- package/dist/siemens-ix/p-6aa5adb4.entry.js +0 -1
- package/dist/siemens-ix/p-703c7e7c.entry.js +0 -1
- package/dist/siemens-ix/p-71a31d92.entry.js +0 -1
- package/dist/siemens-ix/p-71a5fae5.entry.js +0 -1
- package/dist/siemens-ix/p-747d14a2.entry.js +0 -1
- package/dist/siemens-ix/p-7c120d09.entry.js +0 -1
- package/dist/siemens-ix/p-8164a98b.entry.js +0 -1
- package/dist/siemens-ix/p-83f4cd88.entry.js +0 -1
- package/dist/siemens-ix/p-8658717f.entry.js +0 -1
- package/dist/siemens-ix/p-8900e229.entry.js +0 -1
- package/dist/siemens-ix/p-8b839f30.entry.js +0 -1
- package/dist/siemens-ix/p-8cea823b.entry.js +0 -1
- package/dist/siemens-ix/p-8d535dc9.entry.js +0 -1
- package/dist/siemens-ix/p-96a3b3df.entry.js +0 -1
- package/dist/siemens-ix/p-9f2905df.entry.js +0 -1
- package/dist/siemens-ix/p-B4oiZyZC.js +0 -1
- package/dist/siemens-ix/p-DNIQ2C1K.js +0 -1
- package/dist/siemens-ix/p-DgUGsIlh.js +0 -1
- package/dist/siemens-ix/p-a25f267b.entry.js +0 -1
- package/dist/siemens-ix/p-a7f5e11e.entry.js +0 -1
- package/dist/siemens-ix/p-a8911648.entry.js +0 -1
- package/dist/siemens-ix/p-aa904521.entry.js +0 -1
- package/dist/siemens-ix/p-af808244.entry.js +0 -1
- package/dist/siemens-ix/p-b004e845.entry.js +0 -1
- package/dist/siemens-ix/p-b534dadd.entry.js +0 -1
- package/dist/siemens-ix/p-b63d7f36.entry.js +0 -1
- package/dist/siemens-ix/p-bddd1cca.entry.js +0 -1
- package/dist/siemens-ix/p-bfb758cb.entry.js +0 -1
- package/dist/siemens-ix/p-c0c6d772.entry.js +0 -1
- package/dist/siemens-ix/p-c1c209f6.entry.js +0 -1
- package/dist/siemens-ix/p-c9718f0d.entry.js +0 -1
- package/dist/siemens-ix/p-cd42c4e6.entry.js +0 -1
- package/dist/siemens-ix/p-d02d2e49.entry.js +0 -1
- package/dist/siemens-ix/p-d13c0b78.entry.js +0 -1
- package/dist/siemens-ix/p-d45ff0a0.entry.js +0 -1
- package/dist/siemens-ix/p-d5761950.entry.js +0 -1
- package/dist/siemens-ix/p-d770d8ba.entry.js +0 -1
- package/dist/siemens-ix/p-daf43138.entry.js +0 -1
- package/dist/siemens-ix/p-dc16a32d.entry.js +0 -1
- package/dist/siemens-ix/p-ddcc8627.entry.js +0 -1
- package/dist/siemens-ix/p-e3da7c67.entry.js +0 -1
- package/dist/siemens-ix/p-e58ae892.entry.js +0 -1
- package/dist/siemens-ix/p-e6046255.entry.js +0 -1
- package/dist/siemens-ix/p-eff190ad.entry.js +0 -1
- package/dist/siemens-ix/p-f1cd82bd.entry.js +0 -1
- package/dist/siemens-ix/p-f507157f.entry.js +0 -1
- package/dist/siemens-ix/p-fa5c236f.entry.js +0 -1
- package/dist/siemens-ix/p-fbd006be.entry.js +0 -1
- package/dist/siemens-ix/p-fdec73d4.entry.js +0 -1
- package/dist/siemens-ix/p-vphIrWGB.js +0 -1
- package/dist/siemens-ix/p-wfVRhTWc.js +0 -1
- package/dist/siemens-ix/p-yZFaEeBW.js +0 -1
|
@@ -0,0 +1,563 @@
|
|
|
1
|
+
import { M as Mixin, r as registerInstance, g as getElement, h, H as Host } from './index-EBgS4zhE.js';
|
|
2
|
+
import { a as a11yBoolean } from './a11y-DD206pTM.js';
|
|
3
|
+
import { D as DefaultMixins } from './component-DqJSHc3A.js';
|
|
4
|
+
import { I as InheritAriaAttributesMixin } from './inherit-aria-attributes.mixin-BmTKblYV.js';
|
|
5
|
+
import { C as ComponentIdMixin } from './id.mixin-CUbYLenp.js';
|
|
6
|
+
import { m as makeRef } from './make-ref-Djkc69iv.js';
|
|
7
|
+
import { a as convertToRemString } from './rwd.util-JJddxCCh.js';
|
|
8
|
+
import { h as hasSlottedElements } from './shadow-dom-BClJdFQP.js';
|
|
9
|
+
import { h as iconCircleFilled, a as iconSuccess, j as iconSuccessFilled, d as iconInfo, k as iconInfoFilled, l as iconTriangleFilled, c as iconWarning, m as iconWarningFilled, n as iconRhombFilled, o as iconWarningRhomb, p as iconWarningRhombFilled, b as iconError, q as iconErrorFilled, r as iconAlarm, s as iconAlarmFilled } from './index-BeX6RWvV.js';
|
|
10
|
+
import { C as CHIP_VARIANTS } from './chip.types-4ZsT_zIm.js';
|
|
11
|
+
import './focus-utilities-6ZxKp7Jn.js';
|
|
12
|
+
|
|
13
|
+
/*
|
|
14
|
+
* SPDX-FileCopyrightText: 2026 Siemens AG
|
|
15
|
+
*
|
|
16
|
+
* SPDX-License-Identifier: MIT
|
|
17
|
+
*
|
|
18
|
+
* This source code is licensed under the MIT license found in the
|
|
19
|
+
* LICENSE file in the root directory of this source tree.
|
|
20
|
+
*/
|
|
21
|
+
/** Fallback when the variant has no status glyph. */
|
|
22
|
+
const BADGE_STATUS_ICON_FALLBACK_VARIANT = 'info';
|
|
23
|
+
/** Status icons by variant (`outline` / `filled` / `plate`). */
|
|
24
|
+
const BADGE_STATUS_ICON_BY_VARIANT = {
|
|
25
|
+
alarm: {
|
|
26
|
+
filled: iconAlarmFilled,
|
|
27
|
+
outline: iconAlarm,
|
|
28
|
+
plate: iconCircleFilled,
|
|
29
|
+
},
|
|
30
|
+
error: {
|
|
31
|
+
filled: iconErrorFilled,
|
|
32
|
+
outline: iconError,
|
|
33
|
+
plate: iconCircleFilled,
|
|
34
|
+
},
|
|
35
|
+
critical: {
|
|
36
|
+
filled: iconWarningRhombFilled,
|
|
37
|
+
outline: iconWarningRhomb,
|
|
38
|
+
plate: iconRhombFilled,
|
|
39
|
+
},
|
|
40
|
+
warning: {
|
|
41
|
+
filled: iconWarningFilled,
|
|
42
|
+
outline: iconWarning,
|
|
43
|
+
plate: iconTriangleFilled,
|
|
44
|
+
},
|
|
45
|
+
info: {
|
|
46
|
+
filled: iconInfoFilled,
|
|
47
|
+
outline: iconInfo,
|
|
48
|
+
plate: iconCircleFilled,
|
|
49
|
+
},
|
|
50
|
+
success: {
|
|
51
|
+
filled: iconSuccessFilled,
|
|
52
|
+
outline: iconSuccess,
|
|
53
|
+
plate: iconCircleFilled,
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
function isBadgeStatusIconVariant(variant) {
|
|
57
|
+
return Object.hasOwn(BADGE_STATUS_ICON_BY_VARIANT, variant);
|
|
58
|
+
}
|
|
59
|
+
function resolveStatusIconVariant(variant) {
|
|
60
|
+
return isBadgeStatusIconVariant(variant)
|
|
61
|
+
? variant
|
|
62
|
+
: BADGE_STATUS_ICON_FALLBACK_VARIANT;
|
|
63
|
+
}
|
|
64
|
+
/** Status glyph for a variant (falls back to **info**). */
|
|
65
|
+
function getBadgeStatusIcon(variant, outline = false) {
|
|
66
|
+
const icons = BADGE_STATUS_ICON_BY_VARIANT[resolveStatusIconVariant(variant)];
|
|
67
|
+
return outline ? icons.outline : icons.filled;
|
|
68
|
+
}
|
|
69
|
+
/** Plate icon for the filled status stack. */
|
|
70
|
+
function getBadgeStatusIconPlate(variant) {
|
|
71
|
+
return BADGE_STATUS_ICON_BY_VARIANT[resolveStatusIconVariant(variant)].plate;
|
|
72
|
+
}
|
|
73
|
+
/** Resolved status-icon variant for host classes (falls back to **info**). */
|
|
74
|
+
function getResolvedStatusIconVariant(variant) {
|
|
75
|
+
return resolveStatusIconVariant(variant);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/*
|
|
79
|
+
* SPDX-FileCopyrightText: 2026 Siemens AG
|
|
80
|
+
*
|
|
81
|
+
* SPDX-License-Identifier: MIT
|
|
82
|
+
*
|
|
83
|
+
* This source code is licensed under the MIT license found in the
|
|
84
|
+
* LICENSE file in the root directory of this source tree.
|
|
85
|
+
*/
|
|
86
|
+
const BADGE_ANATOMY_TYPES = [
|
|
87
|
+
'label',
|
|
88
|
+
'counter',
|
|
89
|
+
'dot',
|
|
90
|
+
'status-icon',
|
|
91
|
+
];
|
|
92
|
+
const BADGE_POSITIONS = ['top-after', 'bottom-after'];
|
|
93
|
+
/** Default attached offsets (px) added to **offsetX** / **offsetY**. */
|
|
94
|
+
const BADGE_ATTACHED_OFFSET_DEFAULTS = {
|
|
95
|
+
dot: { x: -6, y: -6 },
|
|
96
|
+
label: { x: -10, y: -10 },
|
|
97
|
+
counter: { x: -10, y: -10 },
|
|
98
|
+
'status-icon': { x: -10, y: -10 },
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
/*
|
|
102
|
+
* SPDX-FileCopyrightText: 2026 Siemens AG
|
|
103
|
+
*
|
|
104
|
+
* SPDX-License-Identifier: MIT
|
|
105
|
+
*
|
|
106
|
+
* This source code is licensed under the MIT license found in the
|
|
107
|
+
* LICENSE file in the root directory of this source tree.
|
|
108
|
+
*/
|
|
109
|
+
const BADGE_OVERFLOW_THRESHOLD = 99;
|
|
110
|
+
const INTEGER_LABEL_PATTERN = /^-?\d+(\.\d+)?$/;
|
|
111
|
+
const OVERFLOW_LABEL = `${BADGE_OVERFLOW_THRESHOLD}+`;
|
|
112
|
+
/**
|
|
113
|
+
* Formats badge label text for supported anatomy types.
|
|
114
|
+
* Returns `null` when the type has no text or the value is invalid.
|
|
115
|
+
* Counters truncate decimals and cap at `99+`.
|
|
116
|
+
*/
|
|
117
|
+
function formatBadgeLabel(type, label) {
|
|
118
|
+
switch (type) {
|
|
119
|
+
case 'counter':
|
|
120
|
+
return formatCounterLabel(label);
|
|
121
|
+
case 'label':
|
|
122
|
+
return formatTextLabel(label);
|
|
123
|
+
case 'dot':
|
|
124
|
+
case 'status-icon':
|
|
125
|
+
return null;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
function coerceLabelText(label) {
|
|
129
|
+
if (label === undefined || label === null) {
|
|
130
|
+
return '';
|
|
131
|
+
}
|
|
132
|
+
return String(label).trim();
|
|
133
|
+
}
|
|
134
|
+
function formatTextLabel(label) {
|
|
135
|
+
const trimmed = coerceLabelText(label);
|
|
136
|
+
if (!trimmed) {
|
|
137
|
+
return null;
|
|
138
|
+
}
|
|
139
|
+
return trimmed;
|
|
140
|
+
}
|
|
141
|
+
function formatCounterLabel(label) {
|
|
142
|
+
const trimmed = coerceLabelText(label);
|
|
143
|
+
if (!trimmed) {
|
|
144
|
+
return null;
|
|
145
|
+
}
|
|
146
|
+
if (trimmed === OVERFLOW_LABEL) {
|
|
147
|
+
return OVERFLOW_LABEL;
|
|
148
|
+
}
|
|
149
|
+
if (!INTEGER_LABEL_PATTERN.test(trimmed)) {
|
|
150
|
+
return null;
|
|
151
|
+
}
|
|
152
|
+
const intValue = Math.trunc(Number(trimmed));
|
|
153
|
+
if (intValue > BADGE_OVERFLOW_THRESHOLD) {
|
|
154
|
+
return OVERFLOW_LABEL;
|
|
155
|
+
}
|
|
156
|
+
return String(intValue);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
const badgeCss = () => `@charset "UTF-8";:host{--ix-badge-offset-x:0rem;--ix-badge-offset-y:0rem;--ix-badge-max-width:none;--ix-badge-animation-duration:2s;--ix-badge-color-primary:var(--theme-color-primary);--ix-badge-color-primary-contrast:var(--theme-color-primary--contrast);--ix-badge-color-alarm:var(--theme-color-alarm);--ix-badge-color-alarm-contrast:var(--theme-color-alarm--contrast);--ix-badge-color-alarm-bdr:var(--theme-color-alarm-bdr);--ix-badge-color-critical:var(--theme-color-critical);--ix-badge-color-critical-contrast:var(--theme-color-critical--contrast);--ix-badge-color-warning:var(--theme-color-warning);--ix-badge-color-warning-contrast:var(--theme-color-warning--contrast);--ix-badge-color-warning-bdr:var(--theme-color-warning-bdr);--ix-badge-color-info:var(--theme-color-info);--ix-badge-color-info-contrast:var(--theme-color-info--contrast);--ix-badge-color-success:var(--theme-color-success);--ix-badge-color-success-contrast:var(--theme-color-success--contrast);--ix-badge-color-neutral:var(--theme-color-neutral);--ix-badge-color-neutral-contrast:var(--theme-color-neutral--contrast);--ix-badge-color-ghost:var(--theme-color-ghost);--ix-badge-color-text:var(--theme-color-std-text);--ix-badge-color-contrast-ring:var(--theme-color-1);--ix-badge-pulse-color:var(--ix-badge-color-primary)}:host{display:inline-block;position:relative;width:-moz-fit-content;width:fit-content;max-width:100%;vertical-align:top}:host *,:host *::after,:host *::before{box-sizing:border-box}:host *::-webkit-scrollbar-button{display:none}@-moz-document url-prefix(){:host *{scrollbar-color:var(--theme-scrollbar-thumb--background) var(--theme-scrollbar-track--background);scrollbar-width:thin}}:host *{}:host *::-webkit-scrollbar{width:0.5rem;height:0.5rem}:host *{}:host *::-webkit-scrollbar-track{border-radius:5px;background:var(--theme-scrollbar-track--background)}:host *::-webkit-scrollbar-track:hover{background:var(--theme-scrollbar-track--background--hover)}:host *{}:host *::-webkit-scrollbar-thumb{border-radius:5px;background:var(--theme-scrollbar-thumb--background)}:host *{}:host *::-webkit-scrollbar-thumb:hover{background:var(--theme-scrollbar-thumb--background--hover)}:host *::-webkit-scrollbar-corner{display:none}.anchor{display:contents}:host(.attached) ::slotted(*){position:relative;z-index:0}.indicator{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;border-radius:100px;font-size:0.875rem;line-height:1.43;letter-spacing:0.012em;max-width:var(--ix-badge-max-width);z-index:1;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap;isolation:isolate}:host([type=label]:not(.attached)) .indicator,:host([type=counter]:not(.attached)) .indicator{pointer-events:auto;-webkit-user-select:text;-moz-user-select:text;user-select:text}:host(.with-tooltip:not(.attached)) .indicator{pointer-events:auto}.label{position:relative;z-index:1;min-width:0;overflow:hidden;text-overflow:ellipsis}:host(.attached) .indicator{position:absolute;z-index:1;pointer-events:auto;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:default}:host(.attached.top-after) .indicator{top:var(--ix-badge-offset-y);inset-inline-end:var(--ix-badge-offset-x)}:host(.attached.bottom-after) .indicator{bottom:var(--ix-badge-offset-y);inset-inline-end:var(--ix-badge-offset-x)}:host([type=dot]:not(.attached)),:host([type=counter]:not(.attached)),:host([type=label]:not(.attached)),:host([type=status-icon]:not(.attached)){display:inline-flex;line-height:0;font-size:0}:host ix-tooltip{font-size:0.875rem;line-height:normal}:host([type=dot]:not(.attached)) slot,:host([type=counter]:not(.attached)) slot,:host([type=label]:not(.attached)) slot,:host([type=status-icon]:not(.attached)) slot{flex:0 0 0;width:0;height:0;overflow:hidden}:host([type=dot]) .indicator{width:0.75rem;height:0.75rem;min-width:0.75rem;min-height:0.75rem;padding:0;line-height:0;font-size:0;flex-shrink:0}:host([type=counter]) .indicator,:host([type=label]) .indicator{height:1.25rem;min-width:1.25rem;min-height:1.25rem;flex-shrink:0}:host([type=counter]) .indicator{padding-inline:0.25rem;font-weight:bold;line-height:1.25rem}:host([type=label]) .indicator{padding-inline:0.5rem;gap:0.25rem;font-weight:400;line-height:1.25rem}:host([type=label]:not(.attached)) .indicator{width:100%;box-sizing:border-box}:host([type=label].outline.with-icon) .indicator{padding-inline:0.4375rem}:host([type=label].align-left) .indicator{justify-content:flex-start}:host([type=label]) .icon{flex-shrink:0}:host([type=counter]) .label,:host([type=label]) .label{line-height:1.25rem}:host([type=status-icon]) .indicator{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;min-width:1.25rem;min-height:1.25rem;padding:0;line-height:0;font-size:0;flex-shrink:0;background-color:transparent;border:none}:host([type=status-icon]:not(.outline)) .status-icon-stack{position:relative;display:block;width:1.2rem;height:1.2rem;flex-shrink:0}:host([type=status-icon]) .status-icon{flex-shrink:0;width:1.2rem;height:1.2rem;min-width:1.2rem;min-height:1.2rem}:host([type=status-icon]:not(.outline)) .status-icon-stack .status-icon{position:absolute;inset:0}:host([type=status-icon].alarm){--ix-badge-pulse-color:var(--ix-badge-color-alarm)}:host([type=status-icon].alarm) .status-icon:not(.status-icon-plate){color:var(--ix-badge-color-alarm)}:host([type=status-icon].critical){--ix-badge-pulse-color:var(--ix-badge-color-critical)}:host([type=status-icon].critical) .status-icon:not(.status-icon-plate){color:var(--ix-badge-color-critical)}:host([type=status-icon].warning){--ix-badge-pulse-color:var(--ix-badge-color-warning)}:host([type=status-icon].warning) .status-icon:not(.status-icon-plate){color:var(--ix-badge-color-warning)}:host([type=status-icon].info){--ix-badge-pulse-color:var(--ix-badge-color-info)}:host([type=status-icon].info) .status-icon:not(.status-icon-plate){color:var(--ix-badge-color-info)}:host([type=status-icon].success){--ix-badge-pulse-color:var(--ix-badge-color-success)}:host([type=status-icon].success) .status-icon:not(.status-icon-plate){color:var(--ix-badge-color-success)}:host([type=status-icon].critical:not(.outline)) .status-icon-plate,:host([type=status-icon].warning:not(.outline)) .status-icon-plate,:host([type=status-icon].success:not(.outline)) .status-icon-plate{color:#000000}:host([type=status-icon].alarm:not(.outline)) .status-icon-plate,:host([type=status-icon].error:not(.outline)) .status-icon-plate,:host([type=status-icon].info:not(.outline)) .status-icon-plate{color:#ffffff}:host([type=status-icon].error){--ix-badge-pulse-color:var(--ix-badge-color-alarm)}:host([type=status-icon].error) .status-icon:not(.status-icon-plate){color:var(--ix-badge-color-alarm)}:host(.primary:not(.outline):not([type=status-icon])){--ix-badge-pulse-color:var(--ix-badge-color-primary)}:host(.primary:not(.outline):not([type=status-icon])) .indicator{background-color:var(--ix-badge-color-primary);color:var(--ix-badge-color-primary-contrast)}:host(.primary.outline:not([type=status-icon])){--ix-badge-pulse-color:var(--ix-badge-color-primary)}:host(.primary.outline:not([type=status-icon])) .indicator{background-color:var(--ix-badge-color-ghost);color:var(--ix-badge-color-text);border:0.0625rem solid var(--ix-badge-color-primary)}:host(.alarm:not(.outline):not([type=status-icon])){--ix-badge-pulse-color:var(--ix-badge-color-alarm)}:host(.alarm:not(.outline):not([type=status-icon])) .indicator{background-color:var(--ix-badge-color-alarm);color:var(--ix-badge-color-alarm-contrast)}:host(.alarm.outline:not([type=status-icon])){--ix-badge-pulse-color:var(--ix-badge-color-alarm)}:host(.alarm.outline:not([type=status-icon])) .indicator{background-color:var(--ix-badge-color-ghost);color:var(--ix-badge-color-text);border:0.0625rem solid var(--ix-badge-color-alarm-bdr)}:host(.critical:not(.outline):not([type=status-icon])){--ix-badge-pulse-color:var(--ix-badge-color-critical)}:host(.critical:not(.outline):not([type=status-icon])) .indicator{background-color:var(--ix-badge-color-critical);color:var(--ix-badge-color-critical-contrast)}:host(.critical.outline:not([type=status-icon])){--ix-badge-pulse-color:var(--ix-badge-color-critical)}:host(.critical.outline:not([type=status-icon])) .indicator{background-color:var(--ix-badge-color-ghost);color:var(--ix-badge-color-text);border:0.0625rem solid var(--ix-badge-color-critical)}:host(.warning:not(.outline):not([type=status-icon])){--ix-badge-pulse-color:var(--ix-badge-color-warning)}:host(.warning:not(.outline):not([type=status-icon])) .indicator{background-color:var(--ix-badge-color-warning);color:var(--ix-badge-color-warning-contrast)}:host(.warning.outline:not([type=status-icon])){--ix-badge-pulse-color:var(--ix-badge-color-warning)}:host(.warning.outline:not([type=status-icon])) .indicator{background-color:var(--ix-badge-color-ghost);color:var(--ix-badge-color-text);border:0.0625rem solid var(--ix-badge-color-warning-bdr)}:host(.info:not(.outline):not([type=status-icon])){--ix-badge-pulse-color:var(--ix-badge-color-info)}:host(.info:not(.outline):not([type=status-icon])) .indicator{background-color:var(--ix-badge-color-info);color:var(--ix-badge-color-info-contrast)}:host(.info.outline:not([type=status-icon])){--ix-badge-pulse-color:var(--ix-badge-color-info)}:host(.info.outline:not([type=status-icon])) .indicator{background-color:var(--ix-badge-color-ghost);color:var(--ix-badge-color-text);border:0.0625rem solid var(--ix-badge-color-info)}:host(.neutral:not(.outline):not([type=status-icon])){--ix-badge-pulse-color:var(--ix-badge-color-neutral)}:host(.neutral:not(.outline):not([type=status-icon])) .indicator{background-color:var(--ix-badge-color-neutral);color:var(--ix-badge-color-neutral-contrast)}:host(.neutral.outline:not([type=status-icon])){--ix-badge-pulse-color:var(--ix-badge-color-neutral)}:host(.neutral.outline:not([type=status-icon])) .indicator{background-color:var(--ix-badge-color-ghost);color:var(--ix-badge-color-text);border:0.0625rem solid var(--ix-badge-color-neutral)}:host(.success:not(.outline):not([type=status-icon])){--ix-badge-pulse-color:var(--ix-badge-color-success)}:host(.success:not(.outline):not([type=status-icon])) .indicator{background-color:var(--ix-badge-color-success);color:var(--ix-badge-color-success-contrast)}:host(.success.outline:not([type=status-icon])){--ix-badge-pulse-color:var(--ix-badge-color-success)}:host(.success.outline:not([type=status-icon])) .indicator{background-color:var(--ix-badge-color-ghost);color:var(--ix-badge-color-text);border:0.0625rem solid var(--ix-badge-color-success)}:host(.custom:not(.outline):not([type=status-icon])){--ix-badge-pulse-color:var(--ix-badge-custom-background)}:host(.custom:not(.outline):not([type=status-icon])) .indicator{background-color:var(--ix-badge-custom-background);color:var(--ix-badge-custom-color)}:host(.custom.outline:not([type=status-icon])){--ix-badge-pulse-color:var(--ix-badge-custom-background)}:host(.custom.outline:not([type=status-icon])) .indicator{background-color:var(--ix-badge-color-ghost);border:0.0625rem solid var(--ix-badge-custom-background);color:var(--ix-badge-custom-color, var(--ix-badge-color-text))}:host(.border:not(.outline):not([type=status-icon])) .indicator{outline:0.0625rem solid var(--ix-badge-color-contrast-ring);outline-offset:0}:host ::slotted(.description){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;border:0}:host(.enable-animation) .indicator{overflow:visible;position:relative}:host(.attached.enable-animation) .indicator{position:absolute}:host([type=status-icon].enable-animation) .indicator::after{content:"";position:absolute;inset:0.025rem;z-index:-1;pointer-events:none;border-radius:inherit;background-color:var(--ix-badge-pulse-color);transform:scale(0.521);transform-origin:center;opacity:0;animation:ix-badge-pulse-status var(--ix-badge-animation-duration) linear infinite}:host(.enable-animation:not([type=status-icon])) .indicator::after{content:"";position:absolute;inset:0.03125rem;z-index:-1;pointer-events:none;box-sizing:border-box;background-color:transparent;border-style:solid;border-color:var(--ix-badge-pulse-color);border-width:0;border-radius:inherit;opacity:0;animation:ix-badge-pulse-border var(--ix-badge-animation-duration) linear infinite}@media (prefers-reduced-motion: reduce){:host(.enable-animation) .indicator::after{animation:none;opacity:0;transform:none;background-color:transparent;border-width:0}}@keyframes ix-badge-pulse-border{0%{inset:0.03125rem;border-width:0;opacity:0}5%{inset:0.03125rem;border-width:0;opacity:0.5}45%{opacity:0.4}80%{animation-timing-function:ease-out;inset:-0.46875rem;border-width:0.5rem;opacity:0.1}90%{inset:-0.59375rem;border-width:0.625rem;opacity:0}100%{inset:0.03125rem;border-width:0;opacity:0}}@keyframes ix-badge-pulse-status{0%{transform:scale(0.521);opacity:0}5%{transform:scale(0.521);opacity:0.5;animation-timing-function:cubic-bezier(0.637, 0.43, 0.928, 1.008)}45%{transform:scale(1);opacity:0.4}80%{animation-timing-function:ease-out;transform:scale(1.6);opacity:0.1}90%{transform:scale(1.8);opacity:0}100%{transform:scale(0.521);opacity:0}}`;
|
|
160
|
+
|
|
161
|
+
/** Slot name for the screen-reader description. */
|
|
162
|
+
const BADGE_DESCRIPTION_SLOT = 'description';
|
|
163
|
+
const Badge = class extends Mixin(...DefaultMixins, InheritAriaAttributesMixin, ComponentIdMixin) {
|
|
164
|
+
constructor(hostRef) {
|
|
165
|
+
super();
|
|
166
|
+
registerInstance(this, hostRef);
|
|
167
|
+
}
|
|
168
|
+
get hostElement() { return getElement(this); }
|
|
169
|
+
/**
|
|
170
|
+
* Badge type (`counter`, `label`, `dot`, or `status-icon`).
|
|
171
|
+
*
|
|
172
|
+
* @since 5.2.0
|
|
173
|
+
*/
|
|
174
|
+
type = 'counter';
|
|
175
|
+
/**
|
|
176
|
+
* Visible text or count.
|
|
177
|
+
* Required for `label` and `counter`. Omit for `dot` and `status-icon`.
|
|
178
|
+
* Counters accept integers only (decimals truncated); values above 99 render as `99+`.
|
|
179
|
+
*
|
|
180
|
+
* @since 5.2.0
|
|
181
|
+
*/
|
|
182
|
+
label;
|
|
183
|
+
/**
|
|
184
|
+
* Color variant.
|
|
185
|
+
* For `status-icon`, unsupported values fall back to `info`.
|
|
186
|
+
* Use `error` only with `status-icon` (other types map it to `alarm`).
|
|
187
|
+
*
|
|
188
|
+
* @since 5.2.0
|
|
189
|
+
*/
|
|
190
|
+
variant = 'primary';
|
|
191
|
+
/**
|
|
192
|
+
* Show the badge in outline style.
|
|
193
|
+
*
|
|
194
|
+
* @since 5.2.0
|
|
195
|
+
*/
|
|
196
|
+
outline = false;
|
|
197
|
+
/**
|
|
198
|
+
* Add a high-contrast border on filled badges.
|
|
199
|
+
* Ignored when **outline** is `true` or **type** is `status-icon`.
|
|
200
|
+
*
|
|
201
|
+
* @since 5.2.0
|
|
202
|
+
*/
|
|
203
|
+
border = false;
|
|
204
|
+
/**
|
|
205
|
+
* Position relative to the slotted anchor.
|
|
206
|
+
* Only has an effect when attached.
|
|
207
|
+
*
|
|
208
|
+
* @since 5.2.0
|
|
209
|
+
*/
|
|
210
|
+
position = 'top-after';
|
|
211
|
+
/**
|
|
212
|
+
* Extra horizontal offset in pixels.
|
|
213
|
+
* Only has an effect when attached.
|
|
214
|
+
* Added to the type default.
|
|
215
|
+
*
|
|
216
|
+
* @since 5.2.0
|
|
217
|
+
*/
|
|
218
|
+
offsetX = 0;
|
|
219
|
+
/**
|
|
220
|
+
* Extra vertical offset in pixels.
|
|
221
|
+
* Only has an effect when attached.
|
|
222
|
+
* Added to the type default.
|
|
223
|
+
*
|
|
224
|
+
* @since 5.2.0
|
|
225
|
+
*/
|
|
226
|
+
offsetY = 0;
|
|
227
|
+
/**
|
|
228
|
+
* Play the attention pulse animation.
|
|
229
|
+
* Override duration with `--ix-badge-animation-duration` (default `2s`).
|
|
230
|
+
*
|
|
231
|
+
* @since 5.2.0
|
|
232
|
+
*/
|
|
233
|
+
enableAnimation = false;
|
|
234
|
+
/**
|
|
235
|
+
* Custom background or border color.
|
|
236
|
+
* Only has an effect when **variant** is `custom`.
|
|
237
|
+
*
|
|
238
|
+
* @since 5.2.0
|
|
239
|
+
*/
|
|
240
|
+
background;
|
|
241
|
+
/**
|
|
242
|
+
* Custom text color.
|
|
243
|
+
* Only has an effect when **variant** is `custom`.
|
|
244
|
+
*
|
|
245
|
+
* @since 5.2.0
|
|
246
|
+
*/
|
|
247
|
+
badgeColor;
|
|
248
|
+
/**
|
|
249
|
+
* Leading icon name.
|
|
250
|
+
* Only has an effect when **type** is `label`.
|
|
251
|
+
*
|
|
252
|
+
* @since 5.2.0
|
|
253
|
+
*/
|
|
254
|
+
icon;
|
|
255
|
+
/**
|
|
256
|
+
* Accessible name for the leading icon.
|
|
257
|
+
* When unset, the icon is decorative if **label** provides visible text.
|
|
258
|
+
* Only has an effect when **type** is `label`.
|
|
259
|
+
*
|
|
260
|
+
* @since 5.2.0
|
|
261
|
+
*/
|
|
262
|
+
ariaLabelIcon;
|
|
263
|
+
/**
|
|
264
|
+
* Left-align label content.
|
|
265
|
+
* Only has an effect when **type** is `label`.
|
|
266
|
+
*
|
|
267
|
+
* @since 5.2.0
|
|
268
|
+
*/
|
|
269
|
+
alignLeft = false;
|
|
270
|
+
/**
|
|
271
|
+
* Display a tooltip when the badge is standalone.
|
|
272
|
+
* By default, no tooltip is displayed.
|
|
273
|
+
* Add the attribute to use the badge label (or host `aria-label`) as the tooltip, or pass a string for custom text.
|
|
274
|
+
* Ignored when the badge is attached to an anchor.
|
|
275
|
+
*
|
|
276
|
+
* @since 5.2.0
|
|
277
|
+
*/
|
|
278
|
+
tooltipText = false;
|
|
279
|
+
hasAnchor = false;
|
|
280
|
+
descriptionId = '';
|
|
281
|
+
anchorElements = [];
|
|
282
|
+
slotElement;
|
|
283
|
+
indicatorElementRef = makeRef();
|
|
284
|
+
hasDisconnected = false;
|
|
285
|
+
componentWillLoad() {
|
|
286
|
+
// Mixin strips host ARIA into `inheritAriaAttributes` and removes them from the host.
|
|
287
|
+
super.componentWillLoad();
|
|
288
|
+
this.descriptionId = `${this.getHostElementId()}-description`;
|
|
289
|
+
const hasAnchor = this.detectHasAnchor();
|
|
290
|
+
if (hasAnchor) {
|
|
291
|
+
this.hasAnchor = true;
|
|
292
|
+
// Attached: discard host ARIA — the anchor owns naming; the indicator is decorative
|
|
293
|
+
// (`aria-hidden`) and count/label text is exposed via `aria-describedby` on the anchor.
|
|
294
|
+
this.inheritAriaAttributes = {};
|
|
295
|
+
return;
|
|
296
|
+
}
|
|
297
|
+
this.hasAnchor = false;
|
|
298
|
+
// Standalone: keep mixin-captured ARIA and re-apply on `<Host>` in `render()`.
|
|
299
|
+
}
|
|
300
|
+
componentDidLoad() {
|
|
301
|
+
this.syncAnchorDescribedBy();
|
|
302
|
+
}
|
|
303
|
+
componentDidRender() {
|
|
304
|
+
const nextHasAnchor = this.detectHasAnchor();
|
|
305
|
+
if (nextHasAnchor !== this.hasAnchor) {
|
|
306
|
+
this.applyAnchorMode(nextHasAnchor);
|
|
307
|
+
this.syncAnchorDescribedBy();
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
connectedCallback() {
|
|
311
|
+
super.connectedCallback();
|
|
312
|
+
if (this.hasDisconnected) {
|
|
313
|
+
this.syncAnchorDescribedBy();
|
|
314
|
+
this.hasDisconnected = false;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
disconnectedCallback() {
|
|
318
|
+
super.disconnectedCallback();
|
|
319
|
+
this.clearAnchorDescribedBy();
|
|
320
|
+
this.hasDisconnected = true;
|
|
321
|
+
}
|
|
322
|
+
labelOrTypeChanged() {
|
|
323
|
+
if (this.hasAnchor) {
|
|
324
|
+
this.syncAnchorDescribedBy();
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
setSlotRef = (element) => {
|
|
328
|
+
this.slotElement = element;
|
|
329
|
+
};
|
|
330
|
+
onSlotChange = () => {
|
|
331
|
+
this.applyAnchorMode(this.detectHasAnchor());
|
|
332
|
+
this.syncAnchorDescribedBy();
|
|
333
|
+
};
|
|
334
|
+
isDescriptionElement(element) {
|
|
335
|
+
return (element.getAttribute('slot') === BADGE_DESCRIPTION_SLOT ||
|
|
336
|
+
(!!this.descriptionId && element.id === this.descriptionId));
|
|
337
|
+
}
|
|
338
|
+
getAnchorElements() {
|
|
339
|
+
return Array.from(this.hostElement.children).filter((child) => child instanceof HTMLElement && !this.isDescriptionElement(child));
|
|
340
|
+
}
|
|
341
|
+
detectHasAnchor() {
|
|
342
|
+
if (hasSlottedElements(this.slotElement)) {
|
|
343
|
+
return true;
|
|
344
|
+
}
|
|
345
|
+
return this.getAnchorElements().length > 0;
|
|
346
|
+
}
|
|
347
|
+
applyAnchorMode(hasAnchor) {
|
|
348
|
+
if (hasAnchor === this.hasAnchor) {
|
|
349
|
+
return;
|
|
350
|
+
}
|
|
351
|
+
this.clearAnchorDescribedBy();
|
|
352
|
+
if (hasAnchor) {
|
|
353
|
+
this.hasAnchor = true;
|
|
354
|
+
// Strip any ARIA still on the host (e.g. re-applied while standalone) and discard —
|
|
355
|
+
// attached mode must not keep role / aria-* on the wrapper.
|
|
356
|
+
this.readAriaAttributesFromHost();
|
|
357
|
+
this.inheritAriaAttributes = {};
|
|
358
|
+
this.descriptionId = `${this.getHostElementId()}-description`;
|
|
359
|
+
return;
|
|
360
|
+
}
|
|
361
|
+
this.hasAnchor = false;
|
|
362
|
+
// Leaving attached: capture any author ARIA set on the host for standalone `<Host>`.
|
|
363
|
+
this.inheritAriaAttributes = this.readAriaAttributesFromHost();
|
|
364
|
+
}
|
|
365
|
+
getResolvedVariant() {
|
|
366
|
+
if (this.variant === 'error') {
|
|
367
|
+
return this.getResolvedType() === 'status-icon' ? 'error' : 'alarm';
|
|
368
|
+
}
|
|
369
|
+
return CHIP_VARIANTS.includes(this.variant)
|
|
370
|
+
? this.variant
|
|
371
|
+
: 'primary';
|
|
372
|
+
}
|
|
373
|
+
getResolvedType() {
|
|
374
|
+
return BADGE_ANATOMY_TYPES.includes(this.type) ? this.type : 'counter';
|
|
375
|
+
}
|
|
376
|
+
getResolvedPosition() {
|
|
377
|
+
return BADGE_POSITIONS.includes(this.position)
|
|
378
|
+
? this.position
|
|
379
|
+
: 'top-after';
|
|
380
|
+
}
|
|
381
|
+
getResolvedOffsets() {
|
|
382
|
+
const type = this.getResolvedType();
|
|
383
|
+
const defaults = this.hasAnchor
|
|
384
|
+
? BADGE_ATTACHED_OFFSET_DEFAULTS[type]
|
|
385
|
+
: { x: 0, y: 0 };
|
|
386
|
+
return {
|
|
387
|
+
x: defaults.x + this.offsetX,
|
|
388
|
+
y: defaults.y + this.offsetY,
|
|
389
|
+
};
|
|
390
|
+
}
|
|
391
|
+
getFormattedLabel(type) {
|
|
392
|
+
return formatBadgeLabel(type, this.label);
|
|
393
|
+
}
|
|
394
|
+
getAccessibleText(formattedLabel) {
|
|
395
|
+
return formattedLabel || undefined;
|
|
396
|
+
}
|
|
397
|
+
isTooltipRequested() {
|
|
398
|
+
return !!(this.tooltipText || this.hostElement.hasAttribute('tooltip-text'));
|
|
399
|
+
}
|
|
400
|
+
hasVisibleIndicator(type, formattedLabel) {
|
|
401
|
+
if (type === 'counter' || type === 'label') {
|
|
402
|
+
return !!formattedLabel;
|
|
403
|
+
}
|
|
404
|
+
return type === 'dot' || type === 'status-icon';
|
|
405
|
+
}
|
|
406
|
+
shouldShowTooltip(type, formattedLabel) {
|
|
407
|
+
return (!this.hasAnchor &&
|
|
408
|
+
this.isTooltipRequested() &&
|
|
409
|
+
this.hasVisibleIndicator(type, formattedLabel));
|
|
410
|
+
}
|
|
411
|
+
getTooltipContent(formattedLabel) {
|
|
412
|
+
if (typeof this.tooltipText === 'string' && this.tooltipText.trim()) {
|
|
413
|
+
return this.tooltipText.trim();
|
|
414
|
+
}
|
|
415
|
+
return (formattedLabel?.trim() ||
|
|
416
|
+
this.inheritAriaAttributes['aria-label']?.trim() ||
|
|
417
|
+
this.hostElement.getAttribute('aria-label')?.trim() ||
|
|
418
|
+
undefined);
|
|
419
|
+
}
|
|
420
|
+
getTooltip(formattedLabel) {
|
|
421
|
+
if (!this.shouldShowTooltip(this.getResolvedType(), formattedLabel)) {
|
|
422
|
+
return null;
|
|
423
|
+
}
|
|
424
|
+
const text = this.getTooltipContent(formattedLabel);
|
|
425
|
+
if (!text) {
|
|
426
|
+
return null;
|
|
427
|
+
}
|
|
428
|
+
return (h("ix-tooltip", { for: this.indicatorElementRef.waitForCurrent(), "aria-label": text }, text));
|
|
429
|
+
}
|
|
430
|
+
syncAnchorDescribedBy() {
|
|
431
|
+
this.clearAnchorDescribedBy();
|
|
432
|
+
if (!this.hasAnchor) {
|
|
433
|
+
return;
|
|
434
|
+
}
|
|
435
|
+
const accessibleText = this.getAccessibleText(this.getFormattedLabel(this.getResolvedType()));
|
|
436
|
+
if (!accessibleText) {
|
|
437
|
+
return;
|
|
438
|
+
}
|
|
439
|
+
const descriptionEl = this.ensureLightDomDescription(accessibleText);
|
|
440
|
+
const anchors = this.getAnchorElements();
|
|
441
|
+
for (const anchor of anchors) {
|
|
442
|
+
const existing = anchor.getAttribute('aria-describedby');
|
|
443
|
+
const ids = new Set(existing?.split(/\s+/).filter((id) => id.length > 0) ?? []);
|
|
444
|
+
ids.add(descriptionEl.id);
|
|
445
|
+
anchor.setAttribute('aria-describedby', Array.from(ids).join(' '));
|
|
446
|
+
anchor.dataset.ixBadgeDescribedby = descriptionEl.id;
|
|
447
|
+
}
|
|
448
|
+
this.anchorElements = anchors;
|
|
449
|
+
}
|
|
450
|
+
ensureLightDomDescription(text) {
|
|
451
|
+
let descriptionEl = Array.from(this.hostElement.children).find((child) => child instanceof HTMLElement && this.isDescriptionElement(child));
|
|
452
|
+
if (!descriptionEl) {
|
|
453
|
+
descriptionEl = document.createElement('span');
|
|
454
|
+
descriptionEl.slot = BADGE_DESCRIPTION_SLOT;
|
|
455
|
+
descriptionEl.className = 'description';
|
|
456
|
+
this.hostElement.appendChild(descriptionEl);
|
|
457
|
+
}
|
|
458
|
+
descriptionEl.id = this.descriptionId;
|
|
459
|
+
descriptionEl.textContent = text;
|
|
460
|
+
return descriptionEl;
|
|
461
|
+
}
|
|
462
|
+
removeLightDomDescription() {
|
|
463
|
+
Array.from(this.hostElement.children)
|
|
464
|
+
.filter((child) => child instanceof HTMLElement && this.isDescriptionElement(child))
|
|
465
|
+
.forEach((child) => child.remove());
|
|
466
|
+
}
|
|
467
|
+
clearAnchorDescribedBy() {
|
|
468
|
+
for (const anchor of this.anchorElements) {
|
|
469
|
+
if (anchor.dataset.ixBadgeDescribedby !== this.descriptionId) {
|
|
470
|
+
continue;
|
|
471
|
+
}
|
|
472
|
+
const existing = anchor.getAttribute('aria-describedby');
|
|
473
|
+
const ids = existing?.split(/\s+/).filter((id) => id !== this.descriptionId) ?? [];
|
|
474
|
+
delete anchor.dataset.ixBadgeDescribedby;
|
|
475
|
+
if (ids.length > 0) {
|
|
476
|
+
anchor.setAttribute('aria-describedby', ids.join(' '));
|
|
477
|
+
}
|
|
478
|
+
else {
|
|
479
|
+
anchor.removeAttribute('aria-describedby');
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
this.anchorElements = [];
|
|
483
|
+
this.removeLightDomDescription();
|
|
484
|
+
}
|
|
485
|
+
renderIndicatorShell(_accessibleText, content) {
|
|
486
|
+
return (h("div", { class: "indicator", ref: this.indicatorElementRef, "aria-hidden": this.hasAnchor ? a11yBoolean(true) : undefined }, content));
|
|
487
|
+
}
|
|
488
|
+
renderIndicator(type, variant, accessibleText, formattedLabel) {
|
|
489
|
+
if (type === 'counter') {
|
|
490
|
+
if (!formattedLabel) {
|
|
491
|
+
return null;
|
|
492
|
+
}
|
|
493
|
+
return this.renderIndicatorShell(accessibleText, h("span", { class: "label" }, formattedLabel));
|
|
494
|
+
}
|
|
495
|
+
if (type === 'dot') {
|
|
496
|
+
return this.renderIndicatorShell(accessibleText);
|
|
497
|
+
}
|
|
498
|
+
if (type === 'label') {
|
|
499
|
+
if (!formattedLabel) {
|
|
500
|
+
return null;
|
|
501
|
+
}
|
|
502
|
+
const iconIsDecorative = !this.ariaLabelIcon?.trim();
|
|
503
|
+
return this.renderIndicatorShell(accessibleText, [
|
|
504
|
+
this.icon ? (h("ix-icon", { key: "icon", class: "icon", name: this.icon, size: "16", "aria-label": this.ariaLabelIcon, "aria-hidden": a11yBoolean(iconIsDecorative) })) : null,
|
|
505
|
+
h("span", { key: "label", class: "label" }, formattedLabel),
|
|
506
|
+
]);
|
|
507
|
+
}
|
|
508
|
+
if (type === 'status-icon') {
|
|
509
|
+
if (this.outline) {
|
|
510
|
+
return this.renderIndicatorShell(accessibleText, h("ix-icon", { class: "status-icon", name: getBadgeStatusIcon(variant, true), size: "16", "aria-hidden": a11yBoolean(true) }));
|
|
511
|
+
}
|
|
512
|
+
return this.renderIndicatorShell(accessibleText, h("span", { class: "status-icon-stack" }, h("ix-icon", { class: "status-icon status-icon-plate", name: getBadgeStatusIconPlate(variant), size: "16", "aria-hidden": a11yBoolean(true) }), h("ix-icon", { class: "status-icon status-icon-glyph", name: getBadgeStatusIcon(variant, false), size: "16", "aria-hidden": a11yBoolean(true) })));
|
|
513
|
+
}
|
|
514
|
+
return null;
|
|
515
|
+
}
|
|
516
|
+
render() {
|
|
517
|
+
const type = this.getResolvedType();
|
|
518
|
+
const variant = this.getResolvedVariant();
|
|
519
|
+
const position = this.getResolvedPosition();
|
|
520
|
+
const offsets = this.getResolvedOffsets();
|
|
521
|
+
const formattedLabel = this.getFormattedLabel(type);
|
|
522
|
+
const accessibleText = this.getAccessibleText(formattedLabel);
|
|
523
|
+
const hostVariant = type === 'status-icon' ? getResolvedStatusIconVariant(variant) : variant;
|
|
524
|
+
const showBorder = this.border && type !== 'status-icon';
|
|
525
|
+
const showTooltip = this.shouldShowTooltip(type, formattedLabel);
|
|
526
|
+
const customHostStyle = hostVariant === 'custom'
|
|
527
|
+
? {
|
|
528
|
+
'--ix-badge-custom-background': this.background,
|
|
529
|
+
'--ix-badge-custom-color': this.badgeColor,
|
|
530
|
+
}
|
|
531
|
+
: undefined;
|
|
532
|
+
return (h(Host, { key: 'db05c580c07295abde411f0c77ce96e4a83e5550', ...(this.hasAnchor ? {} : this.inheritAriaAttributes), class: {
|
|
533
|
+
attached: this.hasAnchor,
|
|
534
|
+
outline: this.outline,
|
|
535
|
+
border: showBorder,
|
|
536
|
+
'enable-animation': this.enableAnimation,
|
|
537
|
+
'align-left': this.alignLeft,
|
|
538
|
+
'with-icon': type === 'label' && !!this.icon,
|
|
539
|
+
'with-tooltip': showTooltip,
|
|
540
|
+
...(this.hasAnchor ? { [position]: true } : {}),
|
|
541
|
+
[hostVariant]: true,
|
|
542
|
+
}, style: {
|
|
543
|
+
...customHostStyle,
|
|
544
|
+
...(this.hasAnchor
|
|
545
|
+
? {
|
|
546
|
+
'--ix-badge-offset-x': convertToRemString(offsets.x),
|
|
547
|
+
'--ix-badge-offset-y': convertToRemString(offsets.y),
|
|
548
|
+
}
|
|
549
|
+
: {}),
|
|
550
|
+
} }, h("slot", { key: '77ed2ddd676864a819cdee8136e6a6b7e35028aa', name: BADGE_DESCRIPTION_SLOT }), h("div", { key: '4772bb4b795f23fae60b928354baf6f1c47a50ea', class: "anchor" }, h("slot", { key: '6803baae909f08acbc6b15a6dd673dc63f72e414', ref: this.setSlotRef, onSlotchange: this.onSlotChange })), this.renderIndicator(type, variant, accessibleText, formattedLabel), this.getTooltip(formattedLabel)));
|
|
551
|
+
}
|
|
552
|
+
static get watchers() { return {
|
|
553
|
+
"label": [{
|
|
554
|
+
"labelOrTypeChanged": 0
|
|
555
|
+
}],
|
|
556
|
+
"type": [{
|
|
557
|
+
"labelOrTypeChanged": 0
|
|
558
|
+
}]
|
|
559
|
+
}; }
|
|
560
|
+
};
|
|
561
|
+
Badge.style = badgeCss();
|
|
562
|
+
|
|
563
|
+
export { Badge as ix_badge };
|