igniteui-webcomponents 7.2.3 → 7.3.0-beta.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/CHANGELOG.md +156 -0
- package/animations/player.d.ts +4 -11
- package/animations/player.js +4 -10
- package/animations/player.js.map +1 -1
- package/animations/view-transition.d.ts +44 -0
- package/animations/view-transition.js +81 -0
- package/animations/view-transition.js.map +1 -0
- package/components/accordion/accordion.d.ts +1 -1
- package/components/accordion/accordion.js +7 -6
- package/components/accordion/accordion.js.map +1 -1
- package/components/avatar/avatar.js +10 -10
- package/components/avatar/avatar.js.map +1 -1
- package/components/avatar/themes/themes.d.ts +1 -1
- package/components/avatar/themes/themes.js.map +1 -1
- package/components/badge/badge.d.ts +1 -1
- package/components/badge/badge.js +5 -5
- package/components/badge/badge.js.map +1 -1
- package/components/badge/themes/themes.d.ts +1 -1
- package/components/badge/themes/themes.js.map +1 -1
- package/components/banner/banner.d.ts +2 -2
- package/components/banner/banner.js +8 -8
- package/components/banner/banner.js.map +1 -1
- package/components/banner/themes/themes.d.ts +1 -1
- package/components/banner/themes/themes.js.map +1 -1
- package/components/button/button-base.d.ts +2 -2
- package/components/button/button-base.js +15 -12
- package/components/button/button-base.js.map +1 -1
- package/components/button/button.d.ts +3 -3
- package/components/button/button.js +2 -2
- package/components/button/button.js.map +1 -1
- package/components/button/icon-button.js +12 -12
- package/components/button/icon-button.js.map +1 -1
- package/components/button/themes/button/themes.d.ts +1 -1
- package/components/button/themes/button/themes.js.map +1 -1
- package/components/button/themes/icon-button/themes.d.ts +1 -1
- package/components/button/themes/icon-button/themes.js.map +1 -1
- package/components/button-group/button-group.d.ts +42 -21
- package/components/button-group/button-group.js +101 -106
- package/components/button-group/button-group.js.map +1 -1
- package/components/button-group/themes/button.d.ts +1 -1
- package/components/button-group/themes/button.js.map +1 -1
- package/components/button-group/themes/group.d.ts +1 -1
- package/components/button-group/themes/group.js.map +1 -1
- package/components/button-group/toggle-button.d.ts +17 -10
- package/components/button-group/toggle-button.js +28 -13
- package/components/button-group/toggle-button.js.map +1 -1
- package/components/calendar/base.d.ts +29 -10
- package/components/calendar/base.js +12 -15
- package/components/calendar/base.js.map +1 -1
- package/components/calendar/calendar.d.ts +39 -8
- package/components/calendar/calendar.js +96 -85
- package/components/calendar/calendar.js.map +1 -1
- package/components/calendar/days-view/days-view.d.ts +49 -22
- package/components/calendar/days-view/days-view.js +102 -163
- package/components/calendar/days-view/days-view.js.map +1 -1
- package/components/calendar/helpers.d.ts +3 -62
- package/components/calendar/helpers.js +6 -110
- package/components/calendar/helpers.js.map +1 -1
- package/components/calendar/months-view/months-view.d.ts +7 -21
- package/components/calendar/months-view/months-view.js +30 -83
- package/components/calendar/months-view/months-view.js.map +1 -1
- package/components/calendar/selection.d.ts +21 -0
- package/components/calendar/selection.js +42 -0
- package/components/calendar/selection.js.map +1 -0
- package/components/calendar/themes/calendar.d.ts +1 -1
- package/components/calendar/themes/calendar.js.map +1 -1
- package/components/calendar/themes/days.d.ts +1 -1
- package/components/calendar/themes/days.js.map +1 -1
- package/components/calendar/themes/year-month.d.ts +1 -1
- package/components/calendar/themes/year-month.js.map +1 -1
- package/components/calendar/types.d.ts +18 -0
- package/components/calendar/types.js.map +1 -1
- package/components/calendar/year-month-view.base.d.ts +44 -0
- package/components/calendar/year-month-view.base.js +89 -0
- package/components/calendar/year-month-view.base.js.map +1 -0
- package/components/calendar/years-view/years-view.d.ts +7 -20
- package/components/calendar/years-view/years-view.js +25 -79
- package/components/calendar/years-view/years-view.js.map +1 -1
- package/components/card/card.actions.js +2 -2
- package/components/card/card.actions.js.map +1 -1
- package/components/card/card.content.d.ts +1 -1
- package/components/card/card.content.js +2 -2
- package/components/card/card.content.js.map +1 -1
- package/components/card/card.d.ts +1 -1
- package/components/card/card.header.js +2 -2
- package/components/card/card.header.js.map +1 -1
- package/components/card/card.js +2 -2
- package/components/card/card.js.map +1 -1
- package/components/card/card.media.d.ts +1 -1
- package/components/card/card.media.js +1 -1
- package/components/card/card.media.js.map +1 -1
- package/components/card/themes/actions.d.ts +1 -1
- package/components/card/themes/actions.js.map +1 -1
- package/components/card/themes/container.d.ts +1 -1
- package/components/card/themes/container.js.map +1 -1
- package/components/card/themes/content.d.ts +1 -1
- package/components/card/themes/content.js.map +1 -1
- package/components/card/themes/header.d.ts +1 -1
- package/components/card/themes/header.js.map +1 -1
- package/components/carousel/animations.d.ts +1 -1
- package/components/carousel/animations.js +2 -2
- package/components/carousel/animations.js.map +1 -1
- package/components/carousel/carousel-indicator-container.js +4 -4
- package/components/carousel/carousel-indicator-container.js.map +1 -1
- package/components/carousel/carousel-indicator.d.ts +1 -1
- package/components/carousel/carousel-indicator.js +5 -5
- package/components/carousel/carousel-indicator.js.map +1 -1
- package/components/carousel/carousel-slide.d.ts +1 -1
- package/components/carousel/carousel-slide.js +9 -9
- package/components/carousel/carousel-slide.js.map +1 -1
- package/components/carousel/carousel.d.ts +7 -7
- package/components/carousel/carousel.js +40 -30
- package/components/carousel/carousel.js.map +1 -1
- package/components/carousel/themes/container.d.ts +1 -1
- package/components/carousel/themes/container.js.map +1 -1
- package/components/carousel/themes/indicator-container.d.ts +1 -1
- package/components/carousel/themes/indicator-container.js.map +1 -1
- package/components/chat/chat-input.d.ts +4 -4
- package/components/chat/chat-input.js +13 -12
- package/components/chat/chat-input.js.map +1 -1
- package/components/chat/chat-message.d.ts +1 -1
- package/components/chat/chat-message.js +7 -6
- package/components/chat/chat-message.js.map +1 -1
- package/components/chat/chat-state.d.ts +2 -2
- package/components/chat/chat-state.js +2 -1
- package/components/chat/chat-state.js.map +1 -1
- package/components/chat/chat.d.ts +4 -4
- package/components/chat/chat.js +13 -13
- package/components/chat/chat.js.map +1 -1
- package/components/chat/message-attachments.js +5 -5
- package/components/chat/message-attachments.js.map +1 -1
- package/components/chat/themes/attachments.d.ts +1 -1
- package/components/chat/themes/attachments.js.map +1 -1
- package/components/chat/themes/input.d.ts +1 -1
- package/components/chat/themes/input.js.map +1 -1
- package/components/chat/themes/message.d.ts +1 -1
- package/components/chat/themes/message.js.map +1 -1
- package/components/chat/themes/themes.d.ts +1 -1
- package/components/chat/themes/themes.js.map +1 -1
- package/components/chat/types.d.ts +2 -2
- package/components/chat/types.js.map +1 -1
- package/components/chat/utils.d.ts +1 -1
- package/components/chat/utils.js +3 -3
- package/components/chat/utils.js.map +1 -1
- package/components/checkbox/checkbox-base.d.ts +7 -7
- package/components/checkbox/checkbox-base.js +7 -7
- package/components/checkbox/checkbox-base.js.map +1 -1
- package/components/checkbox/checkbox.js +7 -6
- package/components/checkbox/checkbox.js.map +1 -1
- package/components/checkbox/switch.js +7 -6
- package/components/checkbox/switch.js.map +1 -1
- package/components/checkbox/themes/checkbox-themes.d.ts +1 -1
- package/components/checkbox/themes/checkbox-themes.js.map +1 -1
- package/components/checkbox/themes/switch-themes.d.ts +1 -1
- package/components/checkbox/themes/switch-themes.js.map +1 -1
- package/components/checkbox/validators.d.ts +1 -1
- package/components/checkbox/validators.js +1 -1
- package/components/checkbox/validators.js.map +1 -1
- package/components/chip/chip.d.ts +9 -3
- package/components/chip/chip.js +10 -6
- package/components/chip/chip.js.map +1 -1
- package/components/chip/themes/chip.base.css.js +1 -1
- package/components/chip/themes/chip.base.css.js.map +1 -1
- package/components/chip/themes/dark/chip.bootstrap.css.js +1 -1
- package/components/chip/themes/dark/chip.bootstrap.css.js.map +1 -1
- package/components/chip/themes/dark/chip.fluent.css.js +1 -1
- package/components/chip/themes/dark/chip.fluent.css.js.map +1 -1
- package/components/chip/themes/dark/chip.indigo.css.js +1 -1
- package/components/chip/themes/dark/chip.indigo.css.js.map +1 -1
- package/components/chip/themes/dark/chip.material.css.js +1 -1
- package/components/chip/themes/dark/chip.material.css.js.map +1 -1
- package/components/chip/themes/light/chip.bootstrap.css.js +1 -1
- package/components/chip/themes/light/chip.bootstrap.css.js.map +1 -1
- package/components/chip/themes/light/chip.fluent.css.js +1 -1
- package/components/chip/themes/light/chip.fluent.css.js.map +1 -1
- package/components/chip/themes/light/chip.indigo.css.js +1 -1
- package/components/chip/themes/light/chip.indigo.css.js.map +1 -1
- package/components/chip/themes/light/chip.material.css.js +1 -1
- package/components/chip/themes/light/chip.material.css.js.map +1 -1
- package/components/chip/themes/light/chip.shared.css.js +1 -1
- package/components/chip/themes/light/chip.shared.css.js.map +1 -1
- package/components/chip/themes/shared/chip.bootstrap.css.js +1 -1
- package/components/chip/themes/shared/chip.bootstrap.css.js.map +1 -1
- package/components/chip/themes/shared/chip.common.css.js +1 -1
- package/components/chip/themes/shared/chip.common.css.js.map +1 -1
- package/components/chip/themes/shared/chip.fluent.css.js +1 -1
- package/components/chip/themes/shared/chip.fluent.css.js.map +1 -1
- package/components/chip/themes/shared/chip.indigo.css.js +1 -1
- package/components/chip/themes/shared/chip.indigo.css.js.map +1 -1
- package/components/chip/themes/themes.d.ts +1 -1
- package/components/chip/themes/themes.js.map +1 -1
- package/components/combo/combo-header.js +2 -2
- package/components/combo/combo-header.js.map +1 -1
- package/components/combo/combo-item.d.ts +0 -2
- package/components/combo/combo-item.js +4 -7
- package/components/combo/combo-item.js.map +1 -1
- package/components/combo/combo.d.ts +84 -26
- package/components/combo/combo.js +197 -152
- package/components/combo/combo.js.map +1 -1
- package/components/combo/controllers/data.d.ts +30 -3
- package/components/combo/controllers/data.js +34 -9
- package/components/combo/controllers/data.js.map +1 -1
- package/components/combo/controllers/navigation.d.ts +8 -2
- package/components/combo/controllers/navigation.js +11 -12
- package/components/combo/controllers/navigation.js.map +1 -1
- package/components/combo/operations/filter.d.ts +17 -1
- package/components/combo/operations/filter.js +29 -9
- package/components/combo/operations/filter.js.map +1 -1
- package/components/combo/operations/group.js +1 -1
- package/components/combo/operations/group.js.map +1 -1
- package/components/combo/themes/combo.base.css.js +1 -1
- package/components/combo/themes/combo.base.css.js.map +1 -1
- package/components/combo/themes/themes.d.ts +1 -1
- package/components/combo/themes/themes.js.map +1 -1
- package/components/combo/types.d.ts +8 -4
- package/components/combo/types.js.map +1 -1
- package/components/combo/validators.d.ts +1 -1
- package/components/combo/validators.js.map +1 -1
- package/components/date-picker/date-picker.base.d.ts +294 -0
- package/components/date-picker/date-picker.base.js +480 -0
- package/components/date-picker/date-picker.base.js.map +1 -0
- package/components/date-picker/date-picker.d.ts +52 -172
- package/components/date-picker/date-picker.js +88 -393
- package/components/date-picker/date-picker.js.map +1 -1
- package/components/date-picker/themes/themes.d.ts +1 -1
- package/components/date-picker/themes/themes.js.map +1 -1
- package/components/date-picker/validators.d.ts +1 -1
- package/components/date-picker/validators.js +2 -2
- package/components/date-picker/validators.js.map +1 -1
- package/components/date-range-picker/date-range-input.d.ts +12 -14
- package/components/date-range-picker/date-range-input.js +42 -98
- package/components/date-range-picker/date-range-input.js.map +1 -1
- package/components/date-range-picker/date-range-mask-parser.d.ts +22 -34
- package/components/date-range-picker/date-range-mask-parser.js +38 -69
- package/components/date-range-picker/date-range-mask-parser.js.map +1 -1
- package/components/date-range-picker/date-range-picker.d.ts +98 -191
- package/components/date-range-picker/date-range-picker.js +210 -530
- package/components/date-range-picker/date-range-picker.js.map +1 -1
- package/components/date-range-picker/predefined-ranges-area.d.ts +2 -2
- package/components/date-range-picker/predefined-ranges-area.js +5 -5
- package/components/date-range-picker/predefined-ranges-area.js.map +1 -1
- package/components/date-range-picker/themes/ranges-themes.d.ts +1 -1
- package/components/date-range-picker/themes/ranges-themes.js.map +1 -1
- package/components/date-range-picker/themes/themes.d.ts +1 -1
- package/components/date-range-picker/themes/themes.js.map +1 -1
- package/components/date-range-picker/validators.d.ts +1 -1
- package/components/date-range-picker/validators.js +15 -22
- package/components/date-range-picker/validators.js.map +1 -1
- package/components/date-time-input/date-part.d.ts +18 -1
- package/components/date-time-input/date-part.js +10 -0
- package/components/date-time-input/date-part.js.map +1 -1
- package/components/date-time-input/date-time-input.base.d.ts +74 -12
- package/components/date-time-input/date-time-input.base.js +99 -27
- package/components/date-time-input/date-time-input.base.js.map +1 -1
- package/components/date-time-input/date-time-input.d.ts +13 -23
- package/components/date-time-input/date-time-input.js +45 -65
- package/components/date-time-input/date-time-input.js.map +1 -1
- package/components/date-time-input/datetime-mask-parser.d.ts +45 -109
- package/components/date-time-input/datetime-mask-parser.js +88 -139
- package/components/date-time-input/datetime-mask-parser.js.map +1 -1
- package/components/date-time-input/validators.d.ts +1 -1
- package/components/date-time-input/validators.js +2 -2
- package/components/date-time-input/validators.js.map +1 -1
- package/components/dialog/dialog.d.ts +2 -2
- package/components/dialog/dialog.js +21 -22
- package/components/dialog/dialog.js.map +1 -1
- package/components/dialog/themes/themes.d.ts +1 -1
- package/components/dialog/themes/themes.js.map +1 -1
- package/components/divider/divider.d.ts +2 -1
- package/components/divider/divider.js +3 -3
- package/components/divider/divider.js.map +1 -1
- package/components/divider/themes/themes.d.ts +1 -1
- package/components/divider/themes/themes.js.map +1 -1
- package/components/dropdown/dropdown-group.d.ts +10 -3
- package/components/dropdown/dropdown-group.js +21 -5
- package/components/dropdown/dropdown-group.js.map +1 -1
- package/components/dropdown/dropdown-header.d.ts +2 -2
- package/components/dropdown/dropdown-header.js +7 -2
- package/components/dropdown/dropdown-header.js.map +1 -1
- package/components/dropdown/dropdown-item.d.ts +4 -4
- package/components/dropdown/dropdown-item.js +3 -3
- package/components/dropdown/dropdown-item.js.map +1 -1
- package/components/dropdown/dropdown.d.ts +75 -32
- package/components/dropdown/dropdown.js +189 -110
- package/components/dropdown/dropdown.js.map +1 -1
- package/components/dropdown/themes/container.d.ts +1 -1
- package/components/dropdown/themes/container.js.map +1 -1
- package/components/dropdown/themes/group.d.ts +1 -1
- package/components/dropdown/themes/group.js.map +1 -1
- package/components/dropdown/themes/header.d.ts +1 -1
- package/components/dropdown/themes/header.js.map +1 -1
- package/components/dropdown/themes/item.d.ts +1 -1
- package/components/dropdown/themes/item.js.map +1 -1
- package/components/expansion-panel/expansion-panel.d.ts +14 -5
- package/components/expansion-panel/expansion-panel.js +10 -9
- package/components/expansion-panel/expansion-panel.js.map +1 -1
- package/components/expansion-panel/themes/themes.d.ts +1 -1
- package/components/expansion-panel/themes/themes.js.map +1 -1
- package/components/file-input/file-input.d.ts +20 -12
- package/components/file-input/file-input.js +17 -12
- package/components/file-input/file-input.js.map +1 -1
- package/components/file-input/themes/themes.d.ts +1 -1
- package/components/file-input/themes/themes.js.map +1 -1
- package/components/file-input/validators.d.ts +1 -1
- package/components/file-input/validators.js +1 -1
- package/components/file-input/validators.js.map +1 -1
- package/components/focus-trap/focus-trap.js +3 -2
- package/components/focus-trap/focus-trap.js.map +1 -1
- package/components/highlight/highlight.js +2 -2
- package/components/highlight/highlight.js.map +1 -1
- package/components/highlight/service.d.ts +4 -1
- package/components/highlight/service.js +23 -7
- package/components/highlight/service.js.map +1 -1
- package/components/highlight/themes/themes.d.ts +1 -1
- package/components/highlight/themes/themes.js.map +1 -1
- package/components/icon/icon-references.d.ts +3 -2
- package/components/icon/icon-references.js +103 -491
- package/components/icon/icon-references.js.map +1 -1
- package/components/icon/icon-state.broadcast.d.ts +14 -17
- package/components/icon/icon-state.broadcast.js +19 -20
- package/components/icon/icon-state.broadcast.js.map +1 -1
- package/components/icon/icon.d.ts +14 -25
- package/components/icon/icon.js +37 -24
- package/components/icon/icon.js.map +1 -1
- package/components/icon/icon.registry.d.ts +69 -131
- package/components/icon/icon.registry.js +51 -53
- package/components/icon/icon.registry.js.map +1 -1
- package/components/icon/internal-icons-lib.js +2 -2
- package/components/icon/internal-icons-lib.js.map +1 -1
- package/components/icon/registry/parser.d.ts +15 -3
- package/components/icon/registry/parser.js +36 -11
- package/components/icon/registry/parser.js.map +1 -1
- package/components/icon/registry/types.d.ts +55 -11
- package/components/icon/registry/types.js.map +1 -1
- package/components/icon/themes/icon.base.css.js +1 -1
- package/components/icon/themes/icon.base.css.js.map +1 -1
- package/components/icon/themes/shared/icon.common.css.js +1 -1
- package/components/icon/themes/shared/icon.common.css.js.map +1 -1
- package/components/icon/themes/themes.d.ts +1 -1
- package/components/icon/themes/themes.js.map +1 -1
- package/components/input/input-base.d.ts +12 -12
- package/components/input/input-base.js +13 -15
- package/components/input/input-base.js.map +1 -1
- package/components/input/input.d.ts +15 -12
- package/components/input/input.js +8 -8
- package/components/input/input.js.map +1 -1
- package/components/input/themes/input.base.css.js +1 -1
- package/components/input/themes/input.base.css.js.map +1 -1
- package/components/input/themes/shared/input.bootstrap.css.js +1 -1
- package/components/input/themes/shared/input.bootstrap.css.js.map +1 -1
- package/components/input/themes/shared/input.common.css.js +1 -1
- package/components/input/themes/shared/input.common.css.js.map +1 -1
- package/components/input/themes/shared/input.fluent.css.js +1 -1
- package/components/input/themes/shared/input.fluent.css.js.map +1 -1
- package/components/input/themes/shared/input.indigo.css.js +1 -1
- package/components/input/themes/shared/input.indigo.css.js.map +1 -1
- package/components/input/themes/shared/input.material.css.js +1 -1
- package/components/input/themes/shared/input.material.css.js.map +1 -1
- package/components/input/themes/themes.d.ts +1 -1
- package/components/input/themes/themes.js.map +1 -1
- package/components/input/validators.d.ts +1 -1
- package/components/input/validators.js +1 -1
- package/components/input/validators.js.map +1 -1
- package/components/list/list-header.js +3 -3
- package/components/list/list-header.js.map +1 -1
- package/components/list/list-item.js +3 -3
- package/components/list/list-item.js.map +1 -1
- package/components/list/list.js +3 -3
- package/components/list/list.js.map +1 -1
- package/components/list/themes/container.d.ts +1 -1
- package/components/list/themes/container.js.map +1 -1
- package/components/list/themes/header.d.ts +1 -1
- package/components/list/themes/header.js.map +1 -1
- package/components/list/themes/item.d.ts +1 -1
- package/components/list/themes/item.js.map +1 -1
- package/components/mask-input/mask-history.d.ts +99 -0
- package/components/mask-input/mask-history.js +95 -0
- package/components/mask-input/mask-history.js.map +1 -0
- package/components/mask-input/mask-input.d.ts +14 -9
- package/components/mask-input/mask-input.js +20 -23
- package/components/mask-input/mask-input.js.map +1 -1
- package/components/mask-input/mask-parser.d.ts +20 -2
- package/components/mask-input/mask-parser.js +21 -13
- package/components/mask-input/mask-parser.js.map +1 -1
- package/components/mask-input/validators.d.ts +1 -1
- package/components/mask-input/validators.js +1 -1
- package/components/mask-input/validators.js.map +1 -1
- package/components/nav-drawer/nav-drawer-header-item.d.ts +1 -1
- package/components/nav-drawer/nav-drawer-header-item.js +2 -2
- package/components/nav-drawer/nav-drawer-header-item.js.map +1 -1
- package/components/nav-drawer/nav-drawer-item.d.ts +2 -2
- package/components/nav-drawer/nav-drawer-item.js +4 -4
- package/components/nav-drawer/nav-drawer-item.js.map +1 -1
- package/components/nav-drawer/nav-drawer.d.ts +3 -3
- package/components/nav-drawer/nav-drawer.js +11 -14
- package/components/nav-drawer/nav-drawer.js.map +1 -1
- package/components/nav-drawer/themes/container.base.css.js +1 -1
- package/components/nav-drawer/themes/container.base.css.js.map +1 -1
- package/components/nav-drawer/themes/container.d.ts +1 -1
- package/components/nav-drawer/themes/container.js +2 -3
- package/components/nav-drawer/themes/container.js.map +1 -1
- package/components/nav-drawer/themes/dark/container/nav-drawer.shared.css.js +1 -1
- package/components/nav-drawer/themes/dark/container/nav-drawer.shared.css.js.map +1 -1
- package/components/nav-drawer/themes/header-item.d.ts +1 -1
- package/components/nav-drawer/themes/header-item.js.map +1 -1
- package/components/nav-drawer/themes/item.d.ts +1 -1
- package/components/nav-drawer/themes/item.js.map +1 -1
- package/components/nav-drawer/themes/light/container/nav-drawer.bootstrap.css.js +1 -1
- package/components/nav-drawer/themes/light/container/nav-drawer.bootstrap.css.js.map +1 -1
- package/components/nav-drawer/themes/light/container/nav-drawer.fluent.css.js +1 -1
- package/components/nav-drawer/themes/light/container/nav-drawer.fluent.css.js.map +1 -1
- package/components/nav-drawer/themes/light/container/nav-drawer.indigo.css.js +1 -1
- package/components/nav-drawer/themes/light/container/nav-drawer.indigo.css.js.map +1 -1
- package/components/nav-drawer/themes/light/container/nav-drawer.shared.css.js +1 -1
- package/components/nav-drawer/themes/light/container/nav-drawer.shared.css.js.map +1 -1
- package/components/nav-drawer/themes/shared/container/nav-drawer.bootstrap.css.js +1 -1
- package/components/nav-drawer/themes/shared/container/nav-drawer.bootstrap.css.js.map +1 -1
- package/components/nav-drawer/themes/shared/container/nav-drawer.indigo.css.js +1 -1
- package/components/nav-drawer/themes/shared/container/nav-drawer.indigo.css.js.map +1 -1
- package/components/nav-drawer/themes/shared/container/nav-drawer.material.css.js +1 -1
- package/components/nav-drawer/themes/shared/container/nav-drawer.material.css.js.map +1 -1
- package/components/navbar/navbar.js +2 -2
- package/components/navbar/navbar.js.map +1 -1
- package/components/navbar/themes/themes.d.ts +1 -1
- package/components/navbar/themes/themes.js.map +1 -1
- package/components/popover/popover.d.ts +10 -3
- package/components/popover/popover.js +114 -99
- package/components/popover/popover.js.map +1 -1
- package/components/progress/base.d.ts +1 -1
- package/components/progress/base.js +5 -4
- package/components/progress/base.js.map +1 -1
- package/components/progress/circular-gradient.d.ts +2 -2
- package/components/progress/circular-gradient.js +1 -1
- package/components/progress/circular-gradient.js.map +1 -1
- package/components/progress/circular-progress.d.ts +15 -15
- package/components/progress/circular-progress.js +7 -6
- package/components/progress/circular-progress.js.map +1 -1
- package/components/progress/linear-progress.d.ts +12 -12
- package/components/progress/linear-progress.js +4 -4
- package/components/progress/linear-progress.js.map +1 -1
- package/components/progress/themes/circular/circular.progress.base.css.js +1 -1
- package/components/progress/themes/circular/circular.progress.base.css.js.map +1 -1
- package/components/progress/themes/circular/themes.d.ts +1 -1
- package/components/progress/themes/circular/themes.js.map +1 -1
- package/components/progress/themes/linear/linear.progress.base.css.js +1 -1
- package/components/progress/themes/linear/linear.progress.base.css.js.map +1 -1
- package/components/progress/themes/linear/themes.d.ts +1 -1
- package/components/progress/themes/linear/themes.js.map +1 -1
- package/components/qr-code/model/encode.d.ts +20 -0
- package/components/qr-code/model/encode.js +166 -0
- package/components/qr-code/model/encode.js.map +1 -0
- package/components/qr-code/model/error-correction.d.ts +15 -0
- package/components/qr-code/model/error-correction.js +1114 -0
- package/components/qr-code/model/error-correction.js.map +1 -0
- package/components/qr-code/model/mask.d.ts +11 -0
- package/components/qr-code/model/mask.js +161 -0
- package/components/qr-code/model/mask.js.map +1 -0
- package/components/qr-code/model/matrix.d.ts +15 -0
- package/components/qr-code/model/matrix.js +277 -0
- package/components/qr-code/model/matrix.js.map +1 -0
- package/components/qr-code/qr-code.d.ts +134 -0
- package/components/qr-code/qr-code.js +221 -0
- package/components/qr-code/qr-code.js.map +1 -0
- package/components/qr-code/renderer/constants.d.ts +26 -0
- package/components/qr-code/renderer/constants.js +5 -0
- package/components/qr-code/renderer/constants.js.map +1 -0
- package/components/qr-code/renderer/corner.d.ts +23 -0
- package/components/qr-code/renderer/corner.js +25 -0
- package/components/qr-code/renderer/corner.js.map +1 -0
- package/components/qr-code/renderer/dots.d.ts +14 -0
- package/components/qr-code/renderer/dots.js +7 -0
- package/components/qr-code/renderer/dots.js.map +1 -0
- package/components/qr-code/renderer/helpers.d.ts +18 -0
- package/components/qr-code/renderer/helpers.js +158 -0
- package/components/qr-code/renderer/helpers.js.map +1 -0
- package/components/qr-code/renderer/image.d.ts +23 -0
- package/components/qr-code/renderer/image.js +29 -0
- package/components/qr-code/renderer/image.js.map +1 -0
- package/components/qr-code/themes/dark/qr-code.bootstrap.css.js +3 -0
- package/components/qr-code/themes/dark/qr-code.bootstrap.css.js.map +1 -0
- package/components/qr-code/themes/dark/qr-code.fluent.css.d.ts +1 -0
- package/components/qr-code/themes/dark/qr-code.fluent.css.js +3 -0
- package/components/qr-code/themes/dark/qr-code.fluent.css.js.map +1 -0
- package/components/qr-code/themes/dark/qr-code.indigo.css.d.ts +1 -0
- package/components/qr-code/themes/dark/qr-code.indigo.css.js +3 -0
- package/components/qr-code/themes/dark/qr-code.indigo.css.js.map +1 -0
- package/components/qr-code/themes/dark/qr-code.material.css.d.ts +1 -0
- package/components/qr-code/themes/dark/qr-code.material.css.js +3 -0
- package/components/qr-code/themes/dark/qr-code.material.css.js.map +1 -0
- package/components/qr-code/themes/light/qr-code.bootstrap.css.d.ts +1 -0
- package/components/qr-code/themes/light/qr-code.bootstrap.css.js +3 -0
- package/components/qr-code/themes/light/qr-code.bootstrap.css.js.map +1 -0
- package/components/qr-code/themes/light/qr-code.fluent.css.d.ts +1 -0
- package/components/qr-code/themes/light/qr-code.fluent.css.js +3 -0
- package/components/qr-code/themes/light/qr-code.fluent.css.js.map +1 -0
- package/components/qr-code/themes/light/qr-code.indigo.css.d.ts +1 -0
- package/components/qr-code/themes/light/qr-code.indigo.css.js +3 -0
- package/components/qr-code/themes/light/qr-code.indigo.css.js.map +1 -0
- package/components/qr-code/themes/light/qr-code.material.css.d.ts +1 -0
- package/components/qr-code/themes/light/qr-code.material.css.js +3 -0
- package/components/qr-code/themes/light/qr-code.material.css.js.map +1 -0
- package/components/qr-code/themes/light/qr-code.shared.css.d.ts +1 -0
- package/components/qr-code/themes/light/qr-code.shared.css.js +3 -0
- package/components/qr-code/themes/light/qr-code.shared.css.js.map +1 -0
- package/components/qr-code/themes/qr-code.base.css.d.ts +1 -0
- package/components/qr-code/themes/qr-code.base.css.js +3 -0
- package/components/qr-code/themes/qr-code.base.css.js.map +1 -0
- package/components/qr-code/themes/shared/qr-code.common.css.d.ts +1 -0
- package/components/qr-code/themes/shared/qr-code.common.css.js +3 -0
- package/components/qr-code/themes/shared/qr-code.common.css.js.map +1 -0
- package/components/qr-code/themes/themes.d.ts +2 -0
- package/components/qr-code/themes/themes.js +46 -0
- package/components/qr-code/themes/themes.js.map +1 -0
- package/components/qr-code/types.d.ts +16 -0
- package/components/qr-code/types.js +2 -0
- package/components/qr-code/types.js.map +1 -0
- package/components/radio/controller.d.ts +35 -0
- package/components/radio/controller.js +100 -0
- package/components/radio/controller.js.map +1 -0
- package/components/radio/radio.d.ts +26 -14
- package/components/radio/radio.js +47 -36
- package/components/radio/radio.js.map +1 -1
- package/components/radio/themes/themes.d.ts +1 -1
- package/components/radio/themes/themes.js.map +1 -1
- package/components/radio/validators.d.ts +1 -1
- package/components/radio/validators.js +5 -3
- package/components/radio/validators.js.map +1 -1
- package/components/radio-group/radio-group.d.ts +19 -10
- package/components/radio-group/radio-group.js +50 -41
- package/components/radio-group/radio-group.js.map +1 -1
- package/components/radio-group/themes/themes.d.ts +1 -1
- package/components/radio-group/themes/themes.js.map +1 -1
- package/components/rating/rating-symbol.d.ts +1 -1
- package/components/rating/rating-symbol.js +1 -1
- package/components/rating/rating-symbol.js.map +1 -1
- package/components/rating/rating.d.ts +6 -6
- package/components/rating/rating.js +12 -9
- package/components/rating/rating.js.map +1 -1
- package/components/rating/themes/themes.d.ts +1 -1
- package/components/rating/themes/themes.js.map +1 -1
- package/components/resize-container/resize-container.d.ts +4 -4
- package/components/resize-container/resize-container.js +4 -4
- package/components/resize-container/resize-container.js.map +1 -1
- package/components/resize-container/resize-controller.js +2 -2
- package/components/resize-container/resize-controller.js.map +1 -1
- package/components/resize-container/themes/themes.d.ts +1 -1
- package/components/resize-container/themes/themes.js.map +1 -1
- package/components/ripple/ripple.d.ts +1 -1
- package/components/ripple/ripple.js +3 -2
- package/components/ripple/ripple.js.map +1 -1
- package/components/select/select-group.d.ts +9 -2
- package/components/select/select-group.js +21 -5
- package/components/select/select-group.js.map +1 -1
- package/components/select/select-header.d.ts +1 -1
- package/components/select/select-header.js +7 -2
- package/components/select/select-header.js.map +1 -1
- package/components/select/select-item.d.ts +4 -4
- package/components/select/select-item.js +3 -3
- package/components/select/select-item.js.map +1 -1
- package/components/select/select.d.ts +49 -22
- package/components/select/select.js +132 -67
- package/components/select/select.js.map +1 -1
- package/components/select/themes/select.base.css.js +1 -1
- package/components/select/themes/select.base.css.js.map +1 -1
- package/components/select/themes/themes.d.ts +1 -1
- package/components/select/themes/themes.js.map +1 -1
- package/components/select/validators.d.ts +1 -1
- package/components/select/validators.js +1 -1
- package/components/select/validators.js.map +1 -1
- package/components/slider/range-slider.d.ts +2 -2
- package/components/slider/range-slider.js +8 -8
- package/components/slider/range-slider.js.map +1 -1
- package/components/slider/slider-base.js +18 -14
- package/components/slider/slider-base.js.map +1 -1
- package/components/slider/slider-label.js +1 -1
- package/components/slider/slider-label.js.map +1 -1
- package/components/slider/slider.d.ts +3 -3
- package/components/slider/slider.js +6 -6
- package/components/slider/slider.js.map +1 -1
- package/components/slider/themes/themes.d.ts +1 -1
- package/components/slider/themes/themes.js.map +1 -1
- package/components/snackbar/snackbar.d.ts +3 -3
- package/components/snackbar/snackbar.js +8 -8
- package/components/snackbar/snackbar.js.map +1 -1
- package/components/snackbar/themes/themes.d.ts +1 -1
- package/components/snackbar/themes/themes.js.map +1 -1
- package/components/splitter/splitter.d.ts +106 -23
- package/components/splitter/splitter.js +234 -147
- package/components/splitter/splitter.js.map +1 -1
- package/components/splitter/themes/themes.d.ts +1 -1
- package/components/splitter/themes/themes.js.map +1 -1
- package/components/splitter/types.d.ts +14 -3
- package/components/splitter/types.js.map +1 -1
- package/components/stepper/common/animations.d.ts +1 -1
- package/components/stepper/common/animations.js +2 -2
- package/components/stepper/common/animations.js.map +1 -1
- package/components/stepper/step.d.ts +1 -1
- package/components/stepper/step.js +7 -7
- package/components/stepper/step.js.map +1 -1
- package/components/stepper/stepper.d.ts +5 -5
- package/components/stepper/stepper.js +12 -9
- package/components/stepper/stepper.js.map +1 -1
- package/components/stepper/themes/step/themes.d.ts +1 -1
- package/components/stepper/themes/step/themes.js.map +1 -1
- package/components/tabs/tab-dom.d.ts +31 -28
- package/components/tabs/tab-dom.js +84 -34
- package/components/tabs/tab-dom.js.map +1 -1
- package/components/tabs/tab.d.ts +24 -6
- package/components/tabs/tab.js +34 -13
- package/components/tabs/tab.js.map +1 -1
- package/components/tabs/tabs.d.ts +36 -22
- package/components/tabs/tabs.js +118 -88
- package/components/tabs/tabs.js.map +1 -1
- package/components/tabs/themes/shared/tabs/tabs.indigo.css.js +1 -1
- package/components/tabs/themes/shared/tabs/tabs.indigo.css.js.map +1 -1
- package/components/tabs/themes/tab-themes.d.ts +1 -1
- package/components/tabs/themes/tab-themes.js.map +1 -1
- package/components/tabs/themes/tabs-themes.d.ts +1 -1
- package/components/tabs/themes/tabs-themes.js.map +1 -1
- package/components/tabs/themes/tabs.base.css.js +1 -1
- package/components/tabs/themes/tabs.base.css.js.map +1 -1
- package/components/textarea/textarea.d.ts +19 -14
- package/components/textarea/textarea.js +22 -16
- package/components/textarea/textarea.js.map +1 -1
- package/components/textarea/themes/themes.d.ts +1 -1
- package/components/textarea/themes/themes.js.map +1 -1
- package/components/textarea/validators.d.ts +1 -1
- package/components/textarea/validators.js +1 -1
- package/components/textarea/validators.js.map +1 -1
- package/components/theme-provider/theme-provider.d.ts +1 -1
- package/components/theme-provider/theme-provider.js +2 -2
- package/components/theme-provider/theme-provider.js.map +1 -1
- package/components/tile-manager/position.d.ts +1 -1
- package/components/tile-manager/position.js +2 -2
- package/components/tile-manager/position.js.map +1 -1
- package/components/tile-manager/resize-state.js +4 -3
- package/components/tile-manager/resize-state.js.map +1 -1
- package/components/tile-manager/themes/container.d.ts +1 -1
- package/components/tile-manager/themes/container.js.map +1 -1
- package/components/tile-manager/themes/tile.d.ts +1 -1
- package/components/tile-manager/themes/tile.js.map +1 -1
- package/components/tile-manager/tile-ghost-util.js +1 -1
- package/components/tile-manager/tile-ghost-util.js.map +1 -1
- package/components/tile-manager/tile-manager.d.ts +1 -1
- package/components/tile-manager/tile-manager.js +7 -7
- package/components/tile-manager/tile-manager.js.map +1 -1
- package/components/tile-manager/tile.d.ts +4 -4
- package/components/tile-manager/tile.js +29 -25
- package/components/tile-manager/tile.js.map +1 -1
- package/components/toast/themes/themes.d.ts +1 -1
- package/components/toast/themes/themes.js.map +1 -1
- package/components/toast/toast.d.ts +1 -1
- package/components/toast/toast.js +3 -3
- package/components/toast/toast.js.map +1 -1
- package/components/tooltip/controller.d.ts +18 -16
- package/components/tooltip/controller.js +62 -41
- package/components/tooltip/controller.js.map +1 -1
- package/components/tooltip/service.d.ts +2 -1
- package/components/tooltip/service.js +10 -15
- package/components/tooltip/service.js.map +1 -1
- package/components/tooltip/themes/shared/tooltip.common.css.js +1 -1
- package/components/tooltip/themes/shared/tooltip.common.css.js.map +1 -1
- package/components/tooltip/themes/shared/tooltip.indigo.css.js +1 -1
- package/components/tooltip/themes/shared/tooltip.indigo.css.js.map +1 -1
- package/components/tooltip/themes/themes.d.ts +1 -1
- package/components/tooltip/themes/themes.js.map +1 -1
- package/components/tooltip/themes/tooltip.base.css.js +1 -1
- package/components/tooltip/themes/tooltip.base.css.js.map +1 -1
- package/components/tooltip/tooltip.d.ts +64 -18
- package/components/tooltip/tooltip.js +112 -62
- package/components/tooltip/tooltip.js.map +1 -1
- package/components/tree/themes/container.base.css.js +1 -1
- package/components/tree/themes/container.base.css.js.map +1 -1
- package/components/tree/themes/container.d.ts +1 -1
- package/components/tree/themes/container.js.map +1 -1
- package/components/tree/themes/item.base.css.js +1 -1
- package/components/tree/themes/item.base.css.js.map +1 -1
- package/components/tree/themes/item.d.ts +1 -1
- package/components/tree/themes/item.js.map +1 -1
- package/components/tree/tree-item.d.ts +62 -36
- package/components/tree/tree-item.js +223 -233
- package/components/tree/tree-item.js.map +1 -1
- package/components/tree/tree.common.d.ts +16 -1
- package/components/tree/tree.common.js +40 -1
- package/components/tree/tree.common.js.map +1 -1
- package/components/tree/tree.d.ts +21 -14
- package/components/tree/tree.js +64 -72
- package/components/tree/tree.js.map +1 -1
- package/components/tree/tree.navigation.d.ts +39 -29
- package/components/tree/tree.navigation.js +140 -192
- package/components/tree/tree.navigation.js.map +1 -1
- package/components/tree/tree.selection.d.ts +32 -31
- package/components/tree/tree.selection.js +184 -178
- package/components/tree/tree.selection.js.map +1 -1
- package/components/types.js.map +1 -1
- package/components/validation-container/validation-container.d.ts +33 -6
- package/components/validation-container/validation-container.js +81 -70
- package/components/validation-container/validation-container.js.map +1 -1
- package/components/virtualization/engine.d.ts +92 -0
- package/components/virtualization/engine.js +217 -0
- package/components/virtualization/engine.js.map +1 -0
- package/components/virtualization/types.d.ts +53 -0
- package/components/virtualization/types.js +14 -0
- package/components/virtualization/types.js.map +1 -0
- package/components/virtualization/virtualization.d.ts +235 -0
- package/components/virtualization/virtualization.js +474 -0
- package/components/virtualization/virtualization.js.map +1 -0
- package/components/visually-hidden/visually-hidden.js +1 -1
- package/components/visually-hidden/visually-hidden.js.map +1 -1
- package/custom-elements.json +57500 -47242
- package/extras/chat-markdown-renderer.d.ts +1 -1
- package/extras/chat-markdown-renderer.js.map +1 -1
- package/igniteui-webcomponents.css-data.json +2 -2
- package/igniteui-webcomponents.html-data.json +1 -1
- package/index.d.ts +20 -15
- package/index.js +11 -9
- package/index.js.map +1 -1
- package/internals/abort-handler.js.map +1 -0
- package/internals/context.d.ts +39 -0
- package/{components/common → internals}/context.js +2 -1
- package/internals/context.js.map +1 -0
- package/internals/controllers/adopt-styles.d.ts +76 -0
- package/internals/controllers/adopt-styles.js +173 -0
- package/internals/controllers/adopt-styles.js.map +1 -0
- package/internals/controllers/aria-projection.d.ts +144 -0
- package/internals/controllers/aria-projection.js +138 -0
- package/internals/controllers/aria-projection.js.map +1 -0
- package/{components/common → internals}/controllers/async-consumer.js +8 -7
- package/internals/controllers/async-consumer.js.map +1 -0
- package/internals/controllers/command.js.map +1 -0
- package/{components/common → internals}/controllers/drag.js +3 -2
- package/internals/controllers/drag.js.map +1 -0
- package/{components/common → internals}/controllers/focus-ring.js +5 -2
- package/internals/controllers/focus-ring.js.map +1 -0
- package/{components/common → internals}/controllers/fullscreen.js +6 -3
- package/internals/controllers/fullscreen.js.map +1 -0
- package/{components/common → internals}/controllers/gestures.d.ts +1 -1
- package/{components/common → internals}/controllers/gestures.js +4 -4
- package/internals/controllers/gestures.js.map +1 -0
- package/{components/common → internals}/controllers/id-resolver.js +15 -21
- package/internals/controllers/id-resolver.js.map +1 -0
- package/{components/common → internals}/controllers/internals.d.ts +48 -3
- package/{components/common → internals}/controllers/internals.js +32 -0
- package/internals/controllers/internals.js.map +1 -0
- package/{components/common → internals}/controllers/key-bindings.d.ts +3 -6
- package/{components/common → internals}/controllers/key-bindings.js +43 -29
- package/internals/controllers/key-bindings.js.map +1 -0
- package/{components/common → internals}/controllers/mutation-observer.d.ts +5 -4
- package/internals/controllers/mutation-observer.js +74 -0
- package/internals/controllers/mutation-observer.js.map +1 -0
- package/{components/common → internals}/controllers/resize-observer.d.ts +11 -1
- package/{components/common → internals}/controllers/resize-observer.js +13 -2
- package/internals/controllers/resize-observer.js.map +1 -0
- package/{components/common → internals}/controllers/root-click.js +8 -13
- package/internals/controllers/root-click.js.map +1 -0
- package/{components/common → internals}/controllers/root-scroll.d.ts +11 -8
- package/internals/controllers/root-scroll.js +71 -0
- package/internals/controllers/root-scroll.js.map +1 -0
- package/{components/common → internals}/controllers/slot.d.ts +18 -2
- package/{components/common → internals}/controllers/slot.js +21 -6
- package/internals/controllers/slot.js.map +1 -0
- package/internals/date/compare.d.ts +2 -0
- package/internals/date/compare.js +23 -0
- package/internals/date/compare.js.map +1 -0
- package/internals/date/converters.d.ts +18 -0
- package/internals/date/converters.js +73 -0
- package/internals/date/converters.js.map +1 -0
- package/{components/calendar → internals/date}/model.d.ts +6 -3
- package/{components/calendar → internals/date}/model.js +23 -0
- package/internals/date/model.js.map +1 -0
- package/internals/decorators/blazorAdditionalDependencies.js.map +1 -0
- package/internals/decorators/blazorDeepImport.js.map +1 -0
- package/internals/decorators/blazorInclude.js.map +1 -0
- package/internals/decorators/blazorIndirectRender.js.map +1 -0
- package/internals/decorators/blazorSuppressComponent.js.map +1 -0
- package/internals/decorators/shadow-options.js.map +1 -0
- package/internals/decorators/watch.js.map +1 -0
- package/internals/definitions/defineAllComponents.js +153 -0
- package/internals/definitions/defineAllComponents.js.map +1 -0
- package/internals/definitions/defineComponents.js.map +1 -0
- package/internals/definitions/register.js.map +1 -0
- package/{components/common → internals}/i18n/EN/calendar.resources.js +1 -1
- package/internals/i18n/EN/calendar.resources.js.map +1 -0
- package/internals/i18n/EN/chat.resources.js.map +1 -0
- package/internals/i18n/EN/date-picker.resources.js.map +1 -0
- package/internals/i18n/EN/date-range-picker.resources.js.map +1 -0
- package/internals/i18n/i18n-controller.js.map +1 -0
- package/{components/common → internals}/i18n/utils.js +1 -1
- package/internals/i18n/utils.js.map +1 -0
- package/{components/common → internals}/mixins/alert.d.ts +2 -2
- package/{components/common → internals}/mixins/alert.js +3 -3
- package/internals/mixins/alert.js.map +1 -0
- package/{components/common → internals}/mixins/combo-box.d.ts +10 -2
- package/{components/common → internals}/mixins/combo-box.js +9 -4
- package/internals/mixins/combo-box.js.map +1 -0
- package/internals/mixins/constructor.js.map +1 -0
- package/internals/mixins/event-emitter.js.map +1 -0
- package/{components/common → internals}/mixins/forms/associated-required.js +10 -19
- package/internals/mixins/forms/associated-required.js.map +1 -0
- package/{components/common → internals}/mixins/forms/associated.d.ts +1 -1
- package/{components/common → internals}/mixins/forms/associated.js +66 -51
- package/internals/mixins/forms/associated.js.map +1 -0
- package/{components/common → internals}/mixins/forms/form-transformers.d.ts +1 -1
- package/{components/common → internals}/mixins/forms/form-transformers.js +2 -2
- package/internals/mixins/forms/form-transformers.js.map +1 -0
- package/internals/mixins/forms/form-value.js.map +1 -0
- package/{components/common → internals}/mixins/forms/types.d.ts +7 -7
- package/internals/mixins/forms/types.js.map +1 -0
- package/{components/common → internals}/mixins/mask-behavior.d.ts +11 -3
- package/{components/common → internals}/mixins/mask-behavior.js +117 -29
- package/internals/mixins/mask-behavior.js.map +1 -0
- package/{components/common → internals}/mixins/option.d.ts +0 -2
- package/{components/common → internals}/mixins/option.js +1 -4
- package/internals/mixins/option.js.map +1 -0
- package/internals/part-map.js.map +1 -0
- package/{components/common → internals}/templates/input-shell.d.ts +8 -1
- package/{components/common → internals}/templates/input-shell.js +14 -4
- package/internals/templates/input-shell.js.map +1 -0
- package/{components/common → internals}/templates/masked-input.d.ts +8 -2
- package/{components/common → internals}/templates/masked-input.js +5 -3
- package/internals/templates/masked-input.js.map +1 -0
- package/internals/utils/arrays.d.ts +53 -0
- package/internals/utils/arrays.js +31 -0
- package/internals/utils/arrays.js.map +1 -0
- package/internals/utils/dom.d.ts +92 -0
- package/internals/utils/dom.js +143 -0
- package/internals/utils/dom.js.map +1 -0
- package/internals/utils/events.d.ts +41 -0
- package/internals/utils/events.js +37 -0
- package/internals/utils/events.js.map +1 -0
- package/internals/utils/lit.d.ts +8 -0
- package/internals/utils/lit.js +15 -0
- package/internals/utils/lit.js.map +1 -0
- package/internals/utils/math.d.ts +50 -0
- package/internals/utils/math.js +38 -0
- package/internals/utils/math.js.map +1 -0
- package/internals/utils/objects.d.ts +25 -0
- package/internals/utils/objects.js +125 -0
- package/internals/utils/objects.js.map +1 -0
- package/internals/utils/strings.d.ts +44 -0
- package/internals/utils/strings.js +46 -0
- package/internals/utils/strings.js.map +1 -0
- package/internals/utils/types.d.ts +13 -0
- package/internals/utils/types.js +31 -0
- package/internals/utils/types.js.map +1 -0
- package/{components/common → internals}/validators.d.ts +1 -1
- package/{components/common → internals}/validators.js +4 -2
- package/internals/validators.js.map +1 -0
- package/package.json +15 -7
- package/skills/igniteui-wc-generate-from-image-design/references/gotchas.md +15 -1
- package/themes/dark/bootstrap.css +1 -1
- package/themes/dark/fluent.css +1 -1
- package/themes/dark/indigo.css +1 -1
- package/themes/dark/material.css +1 -1
- package/themes/light/bootstrap.css +1 -1
- package/themes/light/fluent.css +1 -1
- package/themes/light/indigo.css +1 -1
- package/themes/light/material.css +1 -1
- package/theming/theming-controller.d.ts +2 -2
- package/theming/theming-controller.js.map +1 -1
- package/web-types.json +3 -3
- package/components/calendar/model.js.map +0 -1
- package/components/combo/combo-list.d.ts +0 -11
- package/components/combo/combo-list.js +0 -13
- package/components/combo/combo-list.js.map +0 -1
- package/components/common/abort-handler.js.map +0 -1
- package/components/common/context.d.ts +0 -25
- package/components/common/context.js.map +0 -1
- package/components/common/controllers/adopt-styles.d.ts +0 -124
- package/components/common/controllers/adopt-styles.js +0 -75
- package/components/common/controllers/adopt-styles.js.map +0 -1
- package/components/common/controllers/async-consumer.js.map +0 -1
- package/components/common/controllers/command.js.map +0 -1
- package/components/common/controllers/drag.js.map +0 -1
- package/components/common/controllers/focus-ring.js.map +0 -1
- package/components/common/controllers/fullscreen.js.map +0 -1
- package/components/common/controllers/gestures.js.map +0 -1
- package/components/common/controllers/id-resolver.js.map +0 -1
- package/components/common/controllers/internals.js.map +0 -1
- package/components/common/controllers/key-bindings.js.map +0 -1
- package/components/common/controllers/mutation-observer.js +0 -69
- package/components/common/controllers/mutation-observer.js.map +0 -1
- package/components/common/controllers/resize-observer.js.map +0 -1
- package/components/common/controllers/root-click.js.map +0 -1
- package/components/common/controllers/root-scroll.js +0 -63
- package/components/common/controllers/root-scroll.js.map +0 -1
- package/components/common/controllers/slot.js.map +0 -1
- package/components/common/decorators/blazorAdditionalDependencies.js.map +0 -1
- package/components/common/decorators/blazorDeepImport.js.map +0 -1
- package/components/common/decorators/blazorInclude.js.map +0 -1
- package/components/common/decorators/blazorIndirectRender.js.map +0 -1
- package/components/common/decorators/blazorSuppressComponent.js.map +0 -1
- package/components/common/decorators/shadow-options.js.map +0 -1
- package/components/common/decorators/watch.js.map +0 -1
- package/components/common/definitions/defineAllComponents.js +0 -151
- package/components/common/definitions/defineAllComponents.js.map +0 -1
- package/components/common/definitions/defineComponents.js.map +0 -1
- package/components/common/definitions/register.js.map +0 -1
- package/components/common/i18n/EN/calendar.resources.js.map +0 -1
- package/components/common/i18n/EN/chat.resources.js.map +0 -1
- package/components/common/i18n/EN/date-picker.resources.js.map +0 -1
- package/components/common/i18n/EN/date-range-picker.resources.js.map +0 -1
- package/components/common/i18n/i18n-controller.js.map +0 -1
- package/components/common/i18n/utils.js.map +0 -1
- package/components/common/mixins/alert.js.map +0 -1
- package/components/common/mixins/combo-box.js.map +0 -1
- package/components/common/mixins/constructor.js.map +0 -1
- package/components/common/mixins/event-emitter.js.map +0 -1
- package/components/common/mixins/forms/associated-required.js.map +0 -1
- package/components/common/mixins/forms/associated.js.map +0 -1
- package/components/common/mixins/forms/form-transformers.js.map +0 -1
- package/components/common/mixins/forms/form-value.js.map +0 -1
- package/components/common/mixins/forms/types.js.map +0 -1
- package/components/common/mixins/mask-behavior.js.map +0 -1
- package/components/common/mixins/option.js.map +0 -1
- package/components/common/part-map.js.map +0 -1
- package/components/common/templates/input-shell.js.map +0 -1
- package/components/common/templates/masked-input.js.map +0 -1
- package/components/common/util.d.ts +0 -196
- package/components/common/util.js +0 -390
- package/components/common/util.js.map +0 -1
- package/components/common/validators.js.map +0 -1
- package/components/icon/registry/default-map.d.ts +0 -107
- package/components/icon/registry/default-map.js +0 -25
- package/components/icon/registry/default-map.js.map +0 -1
- package/components/nav-drawer/themes/shared/container/nav-drawer.fluent.css.js +0 -3
- package/components/nav-drawer/themes/shared/container/nav-drawer.fluent.css.js.map +0 -1
- package/components/radio/utils.d.ts +0 -13
- package/components/radio/utils.js +0 -37
- package/components/radio/utils.js.map +0 -1
- /package/components/{nav-drawer/themes/shared/container/nav-drawer.fluent.css.d.ts → qr-code/themes/dark/qr-code.bootstrap.css.d.ts} +0 -0
- /package/{components/common → internals}/abort-handler.d.ts +0 -0
- /package/{components/common → internals}/abort-handler.js +0 -0
- /package/{components/common → internals}/controllers/async-consumer.d.ts +0 -0
- /package/{components/common → internals}/controllers/command.d.ts +0 -0
- /package/{components/common → internals}/controllers/command.js +0 -0
- /package/{components/common → internals}/controllers/drag.d.ts +0 -0
- /package/{components/common → internals}/controllers/focus-ring.d.ts +0 -0
- /package/{components/common → internals}/controllers/fullscreen.d.ts +0 -0
- /package/{components/common → internals}/controllers/id-resolver.d.ts +0 -0
- /package/{components/common → internals}/controllers/root-click.d.ts +0 -0
- /package/{components/common → internals}/decorators/blazorAdditionalDependencies.d.ts +0 -0
- /package/{components/common → internals}/decorators/blazorAdditionalDependencies.js +0 -0
- /package/{components/common → internals}/decorators/blazorDeepImport.d.ts +0 -0
- /package/{components/common → internals}/decorators/blazorDeepImport.js +0 -0
- /package/{components/common → internals}/decorators/blazorInclude.d.ts +0 -0
- /package/{components/common → internals}/decorators/blazorInclude.js +0 -0
- /package/{components/common → internals}/decorators/blazorIndirectRender.d.ts +0 -0
- /package/{components/common → internals}/decorators/blazorIndirectRender.js +0 -0
- /package/{components/common → internals}/decorators/blazorSuppressComponent.d.ts +0 -0
- /package/{components/common → internals}/decorators/blazorSuppressComponent.js +0 -0
- /package/{components/common → internals}/decorators/shadow-options.d.ts +0 -0
- /package/{components/common → internals}/decorators/shadow-options.js +0 -0
- /package/{components/common → internals}/decorators/watch.d.ts +0 -0
- /package/{components/common → internals}/decorators/watch.js +0 -0
- /package/{components/common → internals}/definitions/defineAllComponents.d.ts +0 -0
- /package/{components/common → internals}/definitions/defineComponents.d.ts +0 -0
- /package/{components/common → internals}/definitions/defineComponents.js +0 -0
- /package/{components/common → internals}/definitions/register.d.ts +0 -0
- /package/{components/common → internals}/definitions/register.js +0 -0
- /package/{components/common → internals}/i18n/EN/calendar.resources.d.ts +0 -0
- /package/{components/common → internals}/i18n/EN/chat.resources.d.ts +0 -0
- /package/{components/common → internals}/i18n/EN/chat.resources.js +0 -0
- /package/{components/common → internals}/i18n/EN/date-picker.resources.d.ts +0 -0
- /package/{components/common → internals}/i18n/EN/date-picker.resources.js +0 -0
- /package/{components/common → internals}/i18n/EN/date-range-picker.resources.d.ts +0 -0
- /package/{components/common → internals}/i18n/EN/date-range-picker.resources.js +0 -0
- /package/{components/common → internals}/i18n/i18n-controller.d.ts +0 -0
- /package/{components/common → internals}/i18n/i18n-controller.js +0 -0
- /package/{components/common → internals}/i18n/utils.d.ts +0 -0
- /package/{components/common → internals}/mixins/constructor.d.ts +0 -0
- /package/{components/common → internals}/mixins/constructor.js +0 -0
- /package/{components/common → internals}/mixins/event-emitter.d.ts +0 -0
- /package/{components/common → internals}/mixins/event-emitter.js +0 -0
- /package/{components/common → internals}/mixins/forms/associated-required.d.ts +0 -0
- /package/{components/common → internals}/mixins/forms/form-value.d.ts +0 -0
- /package/{components/common → internals}/mixins/forms/form-value.js +0 -0
- /package/{components/common → internals}/mixins/forms/types.js +0 -0
- /package/{components/common → internals}/part-map.d.ts +0 -0
- /package/{components/common → internals}/part-map.js +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,161 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
The format is based on [Keep a Changelog](http://keepachangelog.com/)
|
|
5
5
|
and this project adheres to [Semantic Versioning](http://semver.org/).
|
|
6
6
|
|
|
7
|
+
## [Unreleased]
|
|
8
|
+
### Added
|
|
9
|
+
- #### Calendar
|
|
10
|
+
- `igc-calendar` now exports the `label-inner`, `months-row` and `years-row` parts. The pickers export them as `calendar-label-inner`, `months-row` and `years-row`. The views rendered these parts but did not export them, thus you could not style them through the calendar.
|
|
11
|
+
- #### Chip
|
|
12
|
+
- `outlined` property. When you set it to `true`, the chip shows an outlined style. [#2307](https://github.com/IgniteUI/igniteui-webcomponents/pull/2307)
|
|
13
|
+
- #### Icon
|
|
14
|
+
- `registerIcon` and `registerIconFromText` now accept a `RegisterIconOptions` object as their third argument, in addition to the plain collection string. [#1822](https://github.com/IgniteUI/igniteui-webcomponents/issues/1822)
|
|
15
|
+
- `stripMeta: true` removes the `<title>` and `<desc>` elements from the stored SVG. This prevents the native browser tooltip on hover.
|
|
16
|
+
- The title text stays available as the `aria-label` of the host `igc-icon` element.
|
|
17
|
+
- The component removes the `aria-labelledby` and `aria-describedby` references on the root `<svg>` that point to the removed elements.
|
|
18
|
+
- #### Mask input, Date time input, Date range picker
|
|
19
|
+
- The masked editors now support the standard undo and redo shortcuts: `Ctrl + Z` / `Cmd + Z` to undo, and `Ctrl + Y`, `Ctrl + Shift + Z` / `Cmd + Shift + Z` to redo. These shortcuts did nothing before, because each render of the masked text sets the value of the native input and clears the browser undo stack.
|
|
20
|
+
- A sequence of typed characters, or a sequence of deletions, becomes one undo step. A caret movement, a paste, a drop, a cut, a spin of a date part, and an IME composition each start a new step.
|
|
21
|
+
- A restored step emits `igcInput`, thus composite hosts and two-way bindings follow the undo. In the date editors the restored text stays an uncommitted draft, and the component emits `igcChange` on blur only if the committed value changed.
|
|
22
|
+
- The history stays through focus changes. The component discards the history when you set the value programmatically, when the form resets the control, or when the `mask`, `prompt` or `input-format` pattern changes.
|
|
23
|
+
- #### QR Code
|
|
24
|
+
- New `igc-qr-code` component. It renders a scannable QR code as an SVG from the `value` property, and encodes the data in numeric, alphanumeric or byte mode. [#2308](https://github.com/IgniteUI/igniteui-webcomponents/pull/2308)
|
|
25
|
+
- Set an explicit `version` (1-40) and `error-level` (`L`/`M`/`Q`/`H`), or let the component select the smallest version and level that hold the data.
|
|
26
|
+
- `size` and `margin` control the rendered pixel dimensions and the quiet zone (in modules) around the code.
|
|
27
|
+
- `logo-src` adds an optional branding logo. `logo-size` and `logo-margin` control how much of the scannable area the logo covers. The component increases the error correction level for the logo, unless you set the level.
|
|
28
|
+
- `dot-style` and `square-style` set the shape of the data modules and of the finder-pattern corners (`square`, `circle`, `rounded`).
|
|
29
|
+
- The `--ig-qr-code-background`, `--ig-qr-code-dark-color`, `--ig-qr-code-corner-square-color` and `--ig-qr-code-corner-dot-color` CSS custom properties control the theme. The component exposes the `background`, `dots`, `corner-square` and `corner-dot` CSS parts.
|
|
30
|
+
- #### Splitter
|
|
31
|
+
- `startCollapsed` and `endCollapsed` properties. Use them to read and to set the collapsed state of each pane.
|
|
32
|
+
- `igcLayoutChanged` event. The component emits it after a user resize or a change of the expansion state. The payload holds the current layout (`startSize`, `endSize`, `startCollapsed`, `endCollapsed`).
|
|
33
|
+
- #### Tabs
|
|
34
|
+
- `selectedTab` property. It returns the selected `igc-tab` element, or `null`.
|
|
35
|
+
- `select()` now also matches the `label` of a tab, in addition to its IDREF. Thus you can pass the value that `selected` reports back into it.
|
|
36
|
+
- #### Virtual Scroll
|
|
37
|
+
- New `igc-virtual-scroll` component. It renders large or unbounded lists efficiently, because it renders only the items in the viewport plus a configurable `overScan`. [#2222](https://github.com/IgniteUI/igniteui-webcomponents/pull/2222)
|
|
38
|
+
- Supports `vertical` and `horizontal` orientation, and RTL layouts.
|
|
39
|
+
- Item sizes can be fixed, estimated with `estimatedItemSize`, or fully variable. The component measures each rendered item and corrects its estimate automatically.
|
|
40
|
+
- `scrollToIndex()` scrolls to a given item, with a configurable alignment (`block`/`inline`) and scroll `behavior` (`auto`/`smooth`). The component corrects the target offset while it measures the items around it, thus the requested item stops in the correct position.
|
|
41
|
+
- `igcDataRequest` event. The component emits it when the scroll position comes near the end of the loaded data. Use it for infinite scroll and for remote data.
|
|
42
|
+
- `igcStateChange` event. The component emits it after each render pass, with a snapshot of the current virtual window (`startIndex`, `endIndex`, `viewportSize`, `totalSize`).
|
|
43
|
+
- `layoutComplete` property. This promise resolves when the current render pass, and all subsequent renders that item measurement causes, are complete.
|
|
44
|
+
- The component operates correctly above the maximum scroll coordinate of the browser. Lists that are much larger than the DOM permits continue to scroll and to render correctly.
|
|
45
|
+
|
|
46
|
+
### Changed
|
|
47
|
+
- #### Button group
|
|
48
|
+
- **Behavioral change:** a disabled group no longer sets `disabled` on its buttons. The buttons inherit the state. Thus a button that is disabled on its own stays disabled when you enable the group again, and the buttons that you add to a disabled group are also disabled.
|
|
49
|
+
- Improved accessibility: the `single` and `single-required` modes expose a `radiogroup` with `radio` buttons, instead of toggle buttons with `aria-pressed`. The `focused` CSS part of `igc-toggle-button` is now documented.
|
|
50
|
+
- #### Carousel
|
|
51
|
+
- The component now delegates focus to its indicator container, its navigation buttons, or the first focusable element in the active slide, in this sequence. Related to [#2291](https://github.com/IgniteUI/igniteui-webcomponents/issues/2291).
|
|
52
|
+
- #### Chip
|
|
53
|
+
- The `focus-outline-color` and `focus-selected-outline-color` CSS variables are replaced by `focus-shadow-color` and `focus-selected-shadow-color`.
|
|
54
|
+
- #### Combo
|
|
55
|
+
- The dropdown list now uses the new `igc-virtual-scroll` component instead of the third-party `@lit-labs/virtualizer` package. [#2222](https://github.com/IgniteUI/igniteui-webcomponents/pull/2222)
|
|
56
|
+
- #### Date time input, Date picker, Date range picker
|
|
57
|
+
- **Behavioral change:** the components no longer change the `value` property while the user types. `value` now holds only a committed value and changes together with the `igcChange` event, which the components still emit on blur. Before, `value` changed on each keystroke - it became `null` for an incomplete mask, and the parsed date when the mask was full - and no event announced the change. [#1346](https://github.com/IgniteUI/igniteui-webcomponents/issues/1346)
|
|
58
|
+
- Thus you can use the components in templates that bind `value` externally, such as an edit template in `igc-grid`. Before, each re-render during typing applied the stale bound value again and reset the editor, thus you could not enter a new date.
|
|
59
|
+
- The value that the user types - and the result of a spin of a date part or of `Ctrl + ;` - is available in the `detail` of the `igcInput` event. The payload of the event does not change.
|
|
60
|
+
- A spin of a date part in a focused editor also defers to the commit on blur. A programmatic `stepUp()` or `stepDown()` on an unfocused component changes `value` immediately, as do `clear()`, `setRangeText()` and direct assignments.
|
|
61
|
+
- In `igc-date-picker` and `igc-date-range-picker` the calendar continues to follow the typed date during editing, as before.
|
|
62
|
+
- #### Dropdown
|
|
63
|
+
- **Behavioral change:** the component no longer emits `igcChange` when you select the item that is already selected. The list still closes, as before.
|
|
64
|
+
- Improved accessibility: the target element declares `aria-haspopup="listbox"` instead of `aria-haspopup="true"`. While the list is open, the target holds `aria-activedescendant` that points at the item that keyboard navigation is on, thus screen readers announce the highlight. The component sets an id only on items that have none. It also removes all the attributes that it wrote on the target when it no longer uses that target.
|
|
65
|
+
- #### Library
|
|
66
|
+
- Updated the optional peer dependencies `dompurify`, `marked` and `shiki` to their latest stable versions.
|
|
67
|
+
- Removed the `@lit-labs/virtualizer` dependency. The new `igc-virtual-scroll` component now supplies the virtualization. [#2222](https://github.com/IgniteUI/igniteui-webcomponents/pull/2222)
|
|
68
|
+
- #### Tabs
|
|
69
|
+
- **Behavioral change:** the scroll buttons now scroll to the nearest tab that is not fully visible, instead of a fixed step of 180px. A tab below a scroll button counts as not visible. Thus one click brings exactly one tab into view and does not overshoot it.
|
|
70
|
+
- Improved accessibility: the tab headers expose `aria-posinset` and `aria-setsize`, the strip declares its `aria-orientation`, and the selected panel is focusable. Thus keyboard users can reach panel content that holds no focusable elements of its own. The strip also keeps a tab stop when no tab is selected.
|
|
71
|
+
- The component now finds `igc-tab` elements that come through an intermediate slot. Thus another component can wrap `igc-tabs`.
|
|
72
|
+
- #### Tooltip
|
|
73
|
+
- **Behavioral change:** a tooltip that closes from a hide trigger now waits exactly `hide-delay`. Before, it waited through an additional, undocumented stage of 180ms, thus the real delay was `hide-delay + 180ms`.
|
|
74
|
+
- **Behavioral change:** in `sticky` mode the default close button hides the tooltip immediately and does not wait for `hide-delay`. Before, an explicit close took almost half a second.
|
|
75
|
+
- **Behavioral change:** `focusin` and `focusout` are now part of the default `show-triggers` and `hide-triggers`. Thus a tooltip opens when its anchor gets keyboard focus, and closes when the focus leaves the anchor.
|
|
76
|
+
- Improved accessibility: the anchor points at the tooltip with `aria-describedby`, thus screen readers announce the content as the description of the anchor. The tooltip generates an `id` only when it has none, keeps the references that are already on the anchor, and removes its own reference when it no longer describes the anchor.
|
|
77
|
+
- Improved accessibility: in `sticky` mode the default close action is a labelled `<button>` and not a bare icon. Thus you can reach and operate it from the keyboard. The new `close-button` CSS part exposes it.
|
|
78
|
+
|
|
79
|
+
### Fixed
|
|
80
|
+
- #### Button group
|
|
81
|
+
- Single selection compared the values of the buttons. Thus buttons without a `value`, or with the same `value`, could not take the selection: a click on a second button only cleared the first. The component now tracks the selection per element. [#2229](https://github.com/IgniteUI/igniteui-webcomponents/issues/2229)
|
|
82
|
+
- `selectedItems` added to the current selection instead of a replacement of it, and ignored buttons whose `value` is an empty string.
|
|
83
|
+
- You could still interact with a disabled group through buttons that you added after the group became disabled.
|
|
84
|
+
- `focus()`, `blur()` and `click()` on `igc-toggle-button` threw an error when you called them before the first render.
|
|
85
|
+
- Toggle buttons that are not direct children of the group changed its selection state. This could keep two buttons selected in a single selection mode, or remove the selection.
|
|
86
|
+
- #### Calendar
|
|
87
|
+
- A calendar with more than one visible month announced each navigation one time per month, because the off-screen live region with the current period was part of the navigation of each month. There is now one live region for the full calendar.
|
|
88
|
+
- A calendar with more than one visible month exposed one tab stop per month. Thus the tab key moved into the grid of each month instead of out of the calendar. Only the active days view now holds the tab stop of its active date.
|
|
89
|
+
- The component now resolves time-only date strings against the current local date and not the UTC date. Before, the parsed date moved by one day near midnight in some time zones.
|
|
90
|
+
- `week-start` stayed stale until a subsequent update corrected the view. The component now resolves and renders `week-start` correctly on the initial render.
|
|
91
|
+
- Keyboard navigation over a large number of disabled dates could hang the browser. The navigation is now a no-op in this condition.
|
|
92
|
+
- #### Chat
|
|
93
|
+
- With `adoptRootStyles` enabled the component ignored the stylesheets that entered the document after the initial adoption. Thus custom renderers whose styles are injected during view creation - Angular component styles, for example - showed unstyled content. The component now tracks the document stylesheets while the option is on, and applies each addition or removal to the shadow roots that adopted them, including stylesheet links that load later. [#2328](https://github.com/IgniteUI/igniteui-webcomponents/issues/2328)
|
|
94
|
+
- Adoption of the document styles no longer removes the theme styles of the message and the input parts. Before, the adoption built the stylesheet list from the static styles of the component only.
|
|
95
|
+
- #### Dropdown
|
|
96
|
+
- `Enter` on an open dropdown before any arrow key threw a `TypeError` instead of doing nothing. The type of the item that keyboard navigation moves from declared that the item is always present, but the item is unset until you navigate the list or select something.
|
|
97
|
+
- Keyboard navigation stopped on a dropdown that opened at an explicit target, after a close and a subsequent open without that target, because the close removed the target together with its key event listeners. The component now keeps the target until another target replaces it.
|
|
98
|
+
- A dropdown that opened at an explicit target and then opened again through its own `target` slot stayed at the previous, detached element. The component now always resolves the current anchor and gives it to the popover.
|
|
99
|
+
- A call of `show()` with another target while the dropdown is open left `aria-expanded` on the previous element and leaked its key event listeners.
|
|
100
|
+
- `show()` with an id that matches no element threw a `TypeError`. An unresolved target now keeps the current target. When there is no anchor at all, `show()` returns `false` and does not open, because the popover cannot position a list without an anchor and the component would report itself open with nothing on screen.
|
|
101
|
+
- `clearSelection()` cleared the selection but kept keyboard navigation on the cleared item. Thus the next `ArrowDown` returned to that item instead of the top of the list.
|
|
102
|
+
- `selectedItem` continued to return an item that was removed from the DOM. The component now tracks the items that enter and leave the light DOM. It drops the selection when its item goes away, and navigation returns to the current selection.
|
|
103
|
+
- `aria-haspopup` and `aria-expanded` stayed on the target element after the removal of the dropdown from the DOM, or after another target replaced it.
|
|
104
|
+
- `igc-dropdown-header` had no role. Thus it stayed in the accessibility tree as a bare child of the `listbox`, which can own only `option` and `group` nodes. The component now removes it from the tree, as it already did for `igc-select-header`.
|
|
105
|
+
- The label of an `igc-dropdown-group` named nothing, because the component renders it in the shadow root of the group, out of reach of the host ARIA. Thus screen readers announced the groups without their label.
|
|
106
|
+
- #### Form associated components
|
|
107
|
+
- Validation messages no longer disappear immediately after the first failed form submission. The invalid state from the submission held only for the update that the submission scheduled. Thus a subsequent re-render - a `slotchange` from the validation slots, for example - removed the messages, but the invalid styles stayed.
|
|
108
|
+
- The invalid styles now follow the validity state. A control that becomes valid again - a cleared `required`, a wider `min`/`max`, a disabled control - now drops the styles from an earlier interaction or submission.
|
|
109
|
+
- #### Highlight
|
|
110
|
+
- Recent Firefox versions did not paint the matches. `::highlight()` rules are tree-scoped: they style only the text nodes in the same tree scope as the stylesheet. The component adopted the rules into its own shadow root, but the text that it highlights is slotted content in the tree scope of the host. Earlier Firefox versions applied such rules across scopes, as Chromium still does. The root node of the host now adopts the stylesheet, and the component adopts it again if it moves to another tree scope.
|
|
111
|
+
- The same fix lets a component inside another shadow root resolve its `--background` and `--foreground` custom properties correctly in Chromium. Before, it used the theme defaults.
|
|
112
|
+
- #### Icon
|
|
113
|
+
- An icon that renders through a reference stayed blank when you registered the target icon later, because the component reacted only to registrations that match its own `name` and `collection` and not to the resolved target. It now resolves again on each change of the registry.
|
|
114
|
+
- `igc-icon` declares `role="img"` only when it has an accessible name: the `<title>` of the icon, or an `aria-label` or `aria-labelledby` on the host. Before, a decorative icon appeared in the accessibility tree as an image without a name.
|
|
115
|
+
- #### Select
|
|
116
|
+
- `ArrowUp` on a closed select that had a selection cleared the selection and showed the placeholder, instead of a move to the previous item. The component set the item that keyboard navigation moves from only through its own selection path. Thus a selection through the `value` property, or through a `selected` attribute on an item, left that item unset, and a backward step from "no item" went off the start of the list. Navigation now always starts from the current selection. If there is no item to move to, the selection does not change.
|
|
117
|
+
- Type-ahead threw a `TypeError` on the first character that you type, on a select that had a selection.
|
|
118
|
+
- Type-ahead no longer swallows keyboard shortcuts. The component used a printable key with `Ctrl`, `Cmd` or `Alt` as a search character and prevented its default. Thus `Ctrl + C` and similar shortcuts did not reach the browser.
|
|
119
|
+
- Selection of the item that is already selected from the open list - by click, `Enter` or type-ahead - kept the list open. The list now closes and the focus returns, as for any other selection. The component still emits no `igcChange`, because the selection does not change.
|
|
120
|
+
- The component no longer discards a `value` that you set before the matching item exists. Frameworks frequently render items asynchronously, and a value that matched nothing at the first render became `undefined`. The component now keeps the value and resolves it when you add the item, also into an existing `igc-select-group`. Removal of the selected item also drops the selection, but keeps the value.
|
|
121
|
+
- `clearSelection()`, and a `value` that matches no item, kept an internal reference to the item that was selected before, from which the next keyboard navigation then moved.
|
|
122
|
+
- The text in the input now comes only from the main content of the selected item. Before, it also held the content of the `prefix` and `suffix` slots of the item, and the comment markers that the templating engine left among its children.
|
|
123
|
+
- `navigateTo()` no longer tries to focus and to scroll the list while the list is closed and inert.
|
|
124
|
+
- #### Tabs
|
|
125
|
+
- See-through scroll buttons in the Indigo theme. The buttons are sticky and the tab headers scroll below them, but the theme keeps the buttons and the tabs strip transparent, thus the scrolled headers were visible through the buttons. The buttons now paint an opaque surface backdrop below their themed background. [#1955](https://github.com/IgniteUI/igniteui-webcomponents/issues/1955)
|
|
126
|
+
- The component did not emit `igcChange` when `activation` is `manual` and you activate a tab with `Enter` or `Space`. Thus the selection changed without an event.
|
|
127
|
+
- The selection now stays in agreement with the DOM in conditions that made the component inconsistent:
|
|
128
|
+
- `selected` set to `false` on the active tab hid its panel, but the tab stayed active internally. Thus you could not select it again.
|
|
129
|
+
- Removal of the last tab left a dangling reference that `selected` continued to report.
|
|
130
|
+
- `select()`, the `selected` attribute and the initial selection could each activate a disabled tab, which a click always refused. A tab with `selected` and `disabled` showed its panel together with the selected panel.
|
|
131
|
+
- A disabled active tab kept its panel visible below a greyed-out header. The selection now moves to the first enabled tab, or clears if all tabs are disabled.
|
|
132
|
+
- The start scroll button stayed enabled at the start of the strip under browser zoom or a non-integer device pixel ratio, where the scroll offset is fractional.
|
|
133
|
+
- A click on a partially visible tab header scrolled the strip two times.
|
|
134
|
+
- Less rendering work: a scroll of the strip no longer schedules an update per scroll event, and a change of the selection no longer causes an unnecessary layout pass.
|
|
135
|
+
- #### Tooltip
|
|
136
|
+
- `show()` and `hide()` did not cancel a queued transition in the opposite direction. Thus a tooltip could open immediately after a call to hide it, and close immediately after a call to show it.
|
|
137
|
+
- A pointer that moved back over the anchor during the hide animation closed the tooltip and kept it closed, although the pointer never left the anchor.
|
|
138
|
+
- Interaction with the original anchor, while a tooltip from `show(target)` was open, desynchronized the component: it reported `open === false` while it stayed on screen, and you could no longer close it.
|
|
139
|
+
- `with-arrow` set at runtime did not give the arrow element to the popover. Thus the arrow had no position and no styles until an unrelated re-render corrected it.
|
|
140
|
+
- Delayed show and hide transitions returned a promise that never settled.
|
|
141
|
+
- A close with `Escape` emitted `igcClosed` even when there was nothing to close.
|
|
142
|
+
- #### Tree
|
|
143
|
+
- Large or deeply nested trees are much faster:
|
|
144
|
+
- A read of `path` on a tree item, and each operation built on it such as the activation of a nested item, cost `2^depth` and not `depth`, because the component walked the ancestor chain two times per level. One read at depth 20 took ~23ms; it now takes less than a microsecond at any depth.
|
|
145
|
+
- Keyboard navigation is approximately 5 times faster (~1.24ms to ~0.24ms per keypress on a tree with 1554 items). A lazy walk that prunes the collapsed branches now supplies the navigable set. Before, the component materialized all items and filtered them through the ancestors of each item.
|
|
146
|
+
- Removal of a subtree while items are selected is approximately 2 times faster (~134ms to ~71ms for 259 items in `cascade` mode). Before, each removed item ran the full cascade reconciliation again, although the topmost removed item covers its full subtree.
|
|
147
|
+
- `tree.items`, `select()` over a full `cascade` tree, and the expansion or the collapse of all items are each 25-45% faster.
|
|
148
|
+
|
|
149
|
+
## [7.2.4] - 2026-06-29
|
|
150
|
+
### Added
|
|
151
|
+
- #### Form associated custom elements with external labels
|
|
152
|
+
- External `<label>` associations are now resolved to the underlying native input of form-associated controls. Associating a label with `IgcInput`, `IgcMaskInput`, `IgcTextarea`, `IgcDateTimeInput`, `IgcSelect`, `IgcCombo`, `IgcDatePicker`, or `IgcDateRangePicker` — either through the `for`/`id` IDREF mechanism or by nesting the component inside the `<label>` — now correctly exposes the label to assistive technologies and focuses the inner input on label activation. [#2263](https://github.com/IgniteUI/igniteui-webcomponents/pull/2263)
|
|
153
|
+
|
|
154
|
+
### Changed
|
|
155
|
+
- #### AI-Assisted Development
|
|
156
|
+
- Improved grid related skills [#2250](https://github.com/IgniteUI/igniteui-webcomponents/pull/2250)
|
|
157
|
+
|
|
158
|
+
### Fixed
|
|
159
|
+
- #### Tabs
|
|
160
|
+
- Prevent selected tab header from scrolling into view on initial render [#2268](https://github.com/IgniteUI/igniteui-webcomponents/pull/2268)
|
|
161
|
+
|
|
7
162
|
## [7.2.3] - 2026-06-18
|
|
8
163
|
### Fixed
|
|
9
164
|
- #### Popover based components
|
|
@@ -1378,6 +1533,7 @@ Initial release of Ignite UI Web Components
|
|
|
1378
1533
|
- Ripple component
|
|
1379
1534
|
- Switch component
|
|
1380
1535
|
|
|
1536
|
+
[7.2.4]: https://github.com/IgniteUI/igniteui-webcomponents/compare/7.2.3...7.2.4
|
|
1381
1537
|
[7.2.3]: https://github.com/IgniteUI/igniteui-webcomponents/compare/7.2.2...7.2.3
|
|
1382
1538
|
[7.2.2]: https://github.com/IgniteUI/igniteui-webcomponents/compare/7.2.1...7.2.2
|
|
1383
1539
|
[7.2.1]: https://github.com/IgniteUI/igniteui-webcomponents/compare/7.2.0...7.2.1
|
package/animations/player.d.ts
CHANGED
|
@@ -2,13 +2,11 @@ import type { ReactiveController, ReactiveControllerHost } from 'lit';
|
|
|
2
2
|
import type { Ref } from 'lit/directives/ref.js';
|
|
3
3
|
import type { AnimationReferenceMetadata } from './types.js';
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* Checks the user's preference for reduced motion.
|
|
6
6
|
*/
|
|
7
|
-
|
|
8
|
-
transition?: ViewTransition;
|
|
9
|
-
};
|
|
7
|
+
export declare function getPrefersReducedMotion(): boolean;
|
|
10
8
|
/**
|
|
11
|
-
* A ReactiveController for managing Web Animation API (
|
|
9
|
+
* A ReactiveController for managing Web Animation API (WA-API) playback
|
|
12
10
|
* on a host element or a specified target element.
|
|
13
11
|
*
|
|
14
12
|
* It provides methods to play, stop, and coordinate animations, including
|
|
@@ -30,7 +28,7 @@ declare class AnimationController implements ReactiveController {
|
|
|
30
28
|
/** Plays a sequence of keyframes, first cancelling all existing animations on the target. */
|
|
31
29
|
playExclusive(animation: AnimationReferenceMetadata): Promise<boolean>;
|
|
32
30
|
/**
|
|
33
|
-
* Plays a sequence of keyframes using
|
|
31
|
+
* Plays a sequence of keyframes using WA-API.
|
|
34
32
|
* Automatically sets duration to 0 if 'prefers-reduced-motion' is set.
|
|
35
33
|
*/
|
|
36
34
|
play(animation: AnimationReferenceMetadata): Promise<AnimationPlaybackEvent>;
|
|
@@ -43,9 +41,4 @@ declare class AnimationController implements ReactiveController {
|
|
|
43
41
|
* the host element itself.
|
|
44
42
|
*/
|
|
45
43
|
export declare function addAnimationController(host: ReactiveControllerHost & HTMLElement, target?: Ref<HTMLElement> | HTMLElement): AnimationController;
|
|
46
|
-
/**
|
|
47
|
-
* Initiates a View Transition if supported by the browser and not suppressed by
|
|
48
|
-
* the 'prefers-reduced-motion' setting.
|
|
49
|
-
*/
|
|
50
|
-
export declare function startViewTransition(callback?: ViewTransitionUpdateCallback): ViewTransitionResult;
|
|
51
44
|
export type { AnimationController };
|
package/animations/player.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { isElement } from '
|
|
1
|
+
import { isElement } from '#internals/utils/dom.js';
|
|
2
2
|
const LISTENER_OPTIONS = { once: true };
|
|
3
|
-
function getPrefersReducedMotion() {
|
|
4
|
-
return globalThis?.matchMedia('(prefers-reduced-motion: reduce)').matches
|
|
3
|
+
export function getPrefersReducedMotion() {
|
|
4
|
+
return (globalThis?.matchMedia?.('(prefers-reduced-motion: reduce)').matches ??
|
|
5
|
+
false);
|
|
5
6
|
}
|
|
6
7
|
class AnimationController {
|
|
7
8
|
get _target() {
|
|
@@ -54,11 +55,4 @@ class AnimationController {
|
|
|
54
55
|
export function addAnimationController(host, target) {
|
|
55
56
|
return new AnimationController(host, target);
|
|
56
57
|
}
|
|
57
|
-
export function startViewTransition(callback) {
|
|
58
|
-
if (getPrefersReducedMotion() || !document.startViewTransition) {
|
|
59
|
-
callback?.();
|
|
60
|
-
return {};
|
|
61
|
-
}
|
|
62
|
-
return { transition: document.startViewTransition(callback) };
|
|
63
|
-
}
|
|
64
58
|
//# sourceMappingURL=player.js.map
|
package/animations/player.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"player.js","sourceRoot":"","sources":["../../src/animations/player.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"player.js","sourceRoot":"","sources":["../../src/animations/player.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGpD,MAAM,gBAAgB,GAAG,EAAE,IAAI,EAAE,IAAI,EAAW,CAAC;AAKjD,MAAM,UAAU,uBAAuB;IACrC,OAAO,CACL,UAAU,EAAE,UAAU,EAAE,CAAC,kCAAkC,CAAC,CAAC,OAAO;QACpE,KAAK,CACN,CAAC;AACJ,CAAC;AASD,MAAM,mBAAmB;IAQvB,IAAc,OAAO;QACnB,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;IACxC,CAAC;IAED,YACE,IAA0C,EAC1C,GAAoC;QAEpC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAGO,eAAe,CAAC,SAAqB;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAE5B,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC7B,OAAO,KAAK,CAAC,MAAM,KAAK,MAAM;gBAC5B,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,IAAI,EAAE;gBAClD,CAAC,CAAC,KAAK,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC;IAGM,aAAa,KAAU,CAAC;IAGxB,KAAK,CAAC,aAAa,CACxB,SAAqC;QAErC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAEvB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;IACjC,CAAC;IAMM,KAAK,CAAC,IAAI,CACf,SAAqC;QAErC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;QACrC,MAAM,QAAQ,GAAG,uBAAuB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,IAAI,CAAC,CAAC,CAAC;QAE1E,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,IAAI,OAAO,CAAyB,CAAC,OAAO,EAAE,EAAE;YACrD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE;gBAClE,GAAG,OAAO;gBACV,QAAQ;aACT,CAAC,CAAC;YAEH,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;YAChE,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;IACL,CAAC;IAGM,SAAS;QACd,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;YACrD,SAAS,CAAC,MAAM,EAAE,CAAC;QACrB,CAAC;QAED,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF;AAOD,MAAM,UAAU,sBAAsB,CACpC,IAA0C,EAC1C,MAAuC;IAEvC,OAAO,IAAI,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC/C,CAAC","sourcesContent":["import type { ReactiveController, ReactiveControllerHost } from 'lit';\nimport type { Ref } from 'lit/directives/ref.js';\nimport { isElement } from '#internals/utils/dom.js';\nimport type { AnimationReferenceMetadata } from './types.js';\n\nconst LISTENER_OPTIONS = { once: true } as const;\n\n/**\n * Checks the user's preference for reduced motion.\n */\nexport function getPrefersReducedMotion(): boolean {\n return (\n globalThis?.matchMedia?.('(prefers-reduced-motion: reduce)').matches ??\n false\n );\n}\n\n/**\n * A ReactiveController for managing Web Animation API (WA-API) playback\n * on a host element or a specified target element.\n *\n * It provides methods to play, stop, and coordinate animations, including\n * support for 'height: auto' transitions and reduced motion preference.\n */\nclass AnimationController implements ReactiveController {\n private readonly _host: ReactiveControllerHost & HTMLElement;\n private readonly _ref?: Ref<HTMLElement> | HTMLElement;\n\n /**\n * The actual HTMLElement target for the animations.\n * Prioritizes a passed-in Ref value, then a direct HTMLElement, falling back to the host.\n */\n protected get _target(): HTMLElement {\n if (isElement(this._ref)) {\n return this._ref;\n }\n\n return this._ref?.value ?? this._host;\n }\n\n constructor(\n host: ReactiveControllerHost & HTMLElement,\n ref?: Ref<HTMLElement> | HTMLElement\n ) {\n this._host = host;\n this._ref = ref;\n this._host.addController(this);\n }\n\n /** Pre-processes keyframes, specifically resolving 'auto' height to the element's scrollHeight. */\n private _parseKeyframes(keyframes: Keyframe[]): Keyframe[] {\n const target = this._target;\n\n return keyframes.map((frame) => {\n return frame.height === 'auto'\n ? { ...frame, height: `${target.scrollHeight}px` }\n : frame;\n });\n }\n\n /** @internal */\n public hostConnected(): void {}\n\n /** Plays a sequence of keyframes, first cancelling all existing animations on the target. */\n public async playExclusive(\n animation: AnimationReferenceMetadata\n ): Promise<boolean> {\n await this.cancelAll();\n\n const event = await this.play(animation);\n return event.type === 'finish';\n }\n\n /**\n * Plays a sequence of keyframes using WA-API.\n * Automatically sets duration to 0 if 'prefers-reduced-motion' is set.\n */\n public async play(\n animation: AnimationReferenceMetadata\n ): Promise<AnimationPlaybackEvent> {\n const { steps, options } = animation;\n const duration = getPrefersReducedMotion() ? 0 : (options?.duration ?? 0);\n\n if (!Number.isFinite(duration)) {\n throw new Error('Promise-based animations must be finite.');\n }\n\n return new Promise<AnimationPlaybackEvent>((resolve) => {\n const animation = this._target.animate(this._parseKeyframes(steps), {\n ...options,\n duration,\n });\n\n animation.addEventListener('cancel', resolve, LISTENER_OPTIONS);\n animation.addEventListener('finish', resolve, LISTENER_OPTIONS);\n });\n }\n\n /** Cancels all active animations on the target element. */\n public cancelAll(): Promise<void> {\n for (const animation of this._target.getAnimations()) {\n animation.cancel();\n }\n\n return Promise.resolve();\n }\n}\n\n/**\n * Creates and attaches an animation player instance to the passed in `host` element.\n * The player will run animations on the passed in `target`, or if `target` is undefined,\n * the host element itself.\n */\nexport function addAnimationController(\n host: ReactiveControllerHost & HTMLElement,\n target?: Ref<HTMLElement> | HTMLElement\n): AnimationController {\n return new AnimationController(host, target);\n}\n\nexport type { AnimationController };\n"]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { type ChildPart, noChange, type TemplateResult } from 'lit';
|
|
2
|
+
import { AsyncDirective, type DirectiveParameters } from 'lit/async-directive.js';
|
|
3
|
+
/**
|
|
4
|
+
* Starts a document view transition and skips it if the user has requested reduced motion.
|
|
5
|
+
*/
|
|
6
|
+
export declare function startViewTransition(callback: ViewTransitionUpdateCallback): ViewTransition;
|
|
7
|
+
/**
|
|
8
|
+
* Starts a scoped view transition on the specified target element and skips it if the user has requested reduced motion.
|
|
9
|
+
*/
|
|
10
|
+
export declare function startScopedViewTransition(target: HTMLElement, callback: ViewTransitionUpdateCallback): ViewTransition | null;
|
|
11
|
+
/**
|
|
12
|
+
* Sets the view transition name for the specified target element.
|
|
13
|
+
*/
|
|
14
|
+
export declare function setTransitionName(target: HTMLElement, name: string): void;
|
|
15
|
+
/**
|
|
16
|
+
* Clears the view transition name for the specified target elements.
|
|
17
|
+
*/
|
|
18
|
+
export declare function clearTransitionName(...targets: HTMLElement[]): void;
|
|
19
|
+
/**
|
|
20
|
+
* Returns the active view transition if one is currently in progress, or null otherwise.
|
|
21
|
+
*/
|
|
22
|
+
export declare function getActiveViewTransition(): ViewTransition | null;
|
|
23
|
+
/**
|
|
24
|
+
* Returns the active scoped view transition for the specified target element if one is currently in progress, or null otherwise.
|
|
25
|
+
*/
|
|
26
|
+
export declare function getActiveScopedViewTransition(target: Node): ViewTransition | null;
|
|
27
|
+
declare class ScopedViewTransitionDirective extends AsyncDirective {
|
|
28
|
+
private _isFirstRender;
|
|
29
|
+
render(template: TemplateResult): TemplateResult;
|
|
30
|
+
update(part: ChildPart, [template]: DirectiveParameters<this>): typeof noChange | TemplateResult;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* A directive that enables scoped view transitions for a template.
|
|
34
|
+
*
|
|
35
|
+
* When applied, it will start a view transition whenever the template is updated,
|
|
36
|
+
* provided that the parent node supports view transitions.
|
|
37
|
+
* If the user has requested reduced motion, the transition will be skipped.
|
|
38
|
+
*
|
|
39
|
+
* @remarks
|
|
40
|
+
* This directive is intended to be used with Lit templates inside a component that supports view transitions.
|
|
41
|
+
* It will not work if the parent node does not support view transitions (e.g., if the parent is not a document or element that implements the ViewTransition interface).
|
|
42
|
+
*/
|
|
43
|
+
export declare const scopedViewTransition: (template: TemplateResult) => import("lit-html/directive.js").DirectiveResult<typeof ScopedViewTransitionDirective>;
|
|
44
|
+
export {};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { noChange } from 'lit';
|
|
2
|
+
import { AsyncDirective, directive, } from 'lit/async-directive.js';
|
|
3
|
+
import { isFunction } from '#internals/utils/types.js';
|
|
4
|
+
import { getPrefersReducedMotion } from './player.js';
|
|
5
|
+
function hasScopedViewTransition(node) {
|
|
6
|
+
return 'startViewTransition' in node && isFunction(node.startViewTransition);
|
|
7
|
+
}
|
|
8
|
+
export function startViewTransition(callback) {
|
|
9
|
+
const init = globalThis.document?.startViewTransition;
|
|
10
|
+
if (!init) {
|
|
11
|
+
callback();
|
|
12
|
+
const resolved = Promise.resolve();
|
|
13
|
+
return {
|
|
14
|
+
finished: resolved,
|
|
15
|
+
ready: resolved,
|
|
16
|
+
updateCallbackDone: resolved,
|
|
17
|
+
skipTransition: () => { },
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
const transition = init.call(globalThis.document, callback);
|
|
21
|
+
if (getPrefersReducedMotion()) {
|
|
22
|
+
transition.skipTransition();
|
|
23
|
+
}
|
|
24
|
+
return transition;
|
|
25
|
+
}
|
|
26
|
+
export function startScopedViewTransition(target, callback) {
|
|
27
|
+
if (!hasScopedViewTransition(target)) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
const transition = target.startViewTransition(callback);
|
|
31
|
+
if (getPrefersReducedMotion()) {
|
|
32
|
+
transition.skipTransition();
|
|
33
|
+
}
|
|
34
|
+
return transition;
|
|
35
|
+
}
|
|
36
|
+
export function setTransitionName(target, name) {
|
|
37
|
+
target.style.viewTransitionName = name;
|
|
38
|
+
}
|
|
39
|
+
export function clearTransitionName(...targets) {
|
|
40
|
+
for (const target of targets) {
|
|
41
|
+
target.style.viewTransitionName = '';
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export function getActiveViewTransition() {
|
|
45
|
+
return globalThis.document?.activeViewTransition ?? null;
|
|
46
|
+
}
|
|
47
|
+
export function getActiveScopedViewTransition(target) {
|
|
48
|
+
if (!hasScopedViewTransition(target)) {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
return target.activeViewTransition ?? null;
|
|
52
|
+
}
|
|
53
|
+
class ScopedViewTransitionDirective extends AsyncDirective {
|
|
54
|
+
constructor() {
|
|
55
|
+
super(...arguments);
|
|
56
|
+
this._isFirstRender = true;
|
|
57
|
+
}
|
|
58
|
+
render(template) {
|
|
59
|
+
return template;
|
|
60
|
+
}
|
|
61
|
+
update(part, [template]) {
|
|
62
|
+
if (this._isFirstRender) {
|
|
63
|
+
this._isFirstRender = false;
|
|
64
|
+
return this.render(template);
|
|
65
|
+
}
|
|
66
|
+
const parent = part.parentNode;
|
|
67
|
+
if (!hasScopedViewTransition(parent)) {
|
|
68
|
+
return this.render(template);
|
|
69
|
+
}
|
|
70
|
+
const transition = parent.startViewTransition(() => {
|
|
71
|
+
this.setValue(template);
|
|
72
|
+
return new Promise((resolve) => requestAnimationFrame(resolve));
|
|
73
|
+
});
|
|
74
|
+
if (getPrefersReducedMotion()) {
|
|
75
|
+
transition.skipTransition();
|
|
76
|
+
}
|
|
77
|
+
return noChange;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
export const scopedViewTransition = directive(ScopedViewTransitionDirective);
|
|
81
|
+
//# sourceMappingURL=view-transition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view-transition.js","sourceRoot":"","sources":["../../src/animations/view-transition.ts"],"names":[],"mappings":"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","sourcesContent":["import { type ChildPart, noChange, type TemplateResult } from 'lit';\nimport {\n AsyncDirective,\n type DirectiveParameters,\n directive,\n} from 'lit/async-directive.js';\nimport { isFunction } from '#internals/utils/types.js';\nimport { getPrefersReducedMotion } from './player.js';\n\ntype ScopedViewTransitionElement = HTMLElement & {\n startViewTransition: (\n callback: () => Promise<unknown> | unknown\n ) => ViewTransition;\n activeViewTransition?: ViewTransition | null;\n};\n\n/**\n * Returns true if the specified node supports scoped view transitions, false otherwise.\n */\nfunction hasScopedViewTransition(\n node: Node\n): node is ScopedViewTransitionElement {\n return 'startViewTransition' in node && isFunction(node.startViewTransition);\n}\n\n/**\n * Starts a document view transition and skips it if the user has requested reduced motion.\n */\nexport function startViewTransition(\n callback: ViewTransitionUpdateCallback\n): ViewTransition {\n const init = globalThis.document?.startViewTransition;\n\n /* c8 ignore next 11 */\n if (!init) {\n callback();\n const resolved = Promise.resolve();\n\n return {\n finished: resolved,\n ready: resolved,\n updateCallbackDone: resolved,\n skipTransition: () => {},\n } as ViewTransition;\n }\n\n const transition = init.call(globalThis.document, callback);\n\n if (getPrefersReducedMotion()) {\n transition.skipTransition();\n }\n\n return transition;\n}\n\n/**\n * Starts a scoped view transition on the specified target element and skips it if the user has requested reduced motion.\n */\nexport function startScopedViewTransition(\n target: HTMLElement,\n callback: ViewTransitionUpdateCallback\n): ViewTransition | null {\n if (!hasScopedViewTransition(target)) {\n return null;\n }\n\n const transition = target.startViewTransition(callback);\n\n if (getPrefersReducedMotion()) {\n transition.skipTransition();\n }\n\n return transition;\n}\n\n/**\n * Sets the view transition name for the specified target element.\n */\nexport function setTransitionName(target: HTMLElement, name: string): void {\n target.style.viewTransitionName = name;\n}\n\n/**\n * Clears the view transition name for the specified target elements.\n */\nexport function clearTransitionName(...targets: HTMLElement[]): void {\n for (const target of targets) {\n target.style.viewTransitionName = '';\n }\n}\n\n/**\n * Returns the active view transition if one is currently in progress, or null otherwise.\n */\nexport function getActiveViewTransition(): ViewTransition | null {\n return globalThis.document?.activeViewTransition ?? null;\n}\n\n/**\n * Returns the active scoped view transition for the specified target element if one is currently in progress, or null otherwise.\n */\nexport function getActiveScopedViewTransition(\n target: Node\n): ViewTransition | null {\n if (!hasScopedViewTransition(target)) {\n return null;\n }\n\n return target.activeViewTransition ?? null;\n}\n\nclass ScopedViewTransitionDirective extends AsyncDirective {\n private _isFirstRender = true;\n\n public override render(template: TemplateResult): TemplateResult {\n return template;\n }\n\n public override update(\n part: ChildPart,\n [template]: DirectiveParameters<this>\n ) {\n if (this._isFirstRender) {\n this._isFirstRender = false;\n return this.render(template);\n }\n\n const parent = part.parentNode;\n\n if (!hasScopedViewTransition(parent)) {\n return this.render(template);\n }\n\n const transition = parent.startViewTransition(() => {\n this.setValue(template);\n return new Promise((resolve) => requestAnimationFrame(resolve));\n });\n\n if (getPrefersReducedMotion()) {\n transition.skipTransition();\n }\n\n return noChange;\n }\n}\n\n/**\n * A directive that enables scoped view transitions for a template.\n *\n * When applied, it will start a view transition whenever the template is updated,\n * provided that the parent node supports view transitions.\n * If the user has requested reduced motion, the transition will be skipped.\n *\n * @remarks\n * This directive is intended to be used with Lit templates inside a component that supports view transitions.\n * It will not work if the parent node does not support view transitions (e.g., if the parent is not a document or element that implements the ViewTransition interface).\n */\nexport const scopedViewTransition = directive(ScopedViewTransitionDirective);\n"]}
|
|
@@ -21,7 +21,7 @@ export default class IgcAccordionComponent extends LitElement {
|
|
|
21
21
|
* @default false
|
|
22
22
|
*/
|
|
23
23
|
singleExpand: boolean;
|
|
24
|
-
/** Returns all of the
|
|
24
|
+
/** Returns all of the direct expansion panel children of the accordion. */
|
|
25
25
|
get panels(): IgcExpansionPanelComponent[];
|
|
26
26
|
constructor();
|
|
27
27
|
private _handleSlotChange;
|
|
@@ -6,10 +6,11 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { html, LitElement } from 'lit';
|
|
8
8
|
import { property } from 'lit/decorators.js';
|
|
9
|
-
import { addKeybindings, altKey, arrowDown, arrowUp, endKey, homeKey, shiftKey, } from '
|
|
10
|
-
import { addSlotController, setSlots } from '
|
|
11
|
-
import { registerComponent } from '
|
|
12
|
-
import {
|
|
9
|
+
import { addKeybindings, altKey, arrowDown, arrowUp, endKey, homeKey, shiftKey, } from '#internals/controllers/key-bindings.js';
|
|
10
|
+
import { addSlotController, setSlots } from '#internals/controllers/slot.js';
|
|
11
|
+
import { registerComponent } from '#internals/definitions/register.js';
|
|
12
|
+
import { firstOf, lastOf } from '#internals/utils/arrays.js';
|
|
13
|
+
import { addSafeEventListener } from '#internals/utils/events.js';
|
|
13
14
|
import IgcExpansionPanelComponent from '../expansion-panel/expansion-panel.js';
|
|
14
15
|
import { styles } from './themes/accordion.base.css.js';
|
|
15
16
|
export default class IgcAccordionComponent extends LitElement {
|
|
@@ -61,10 +62,10 @@ export default class IgcAccordionComponent extends LitElement {
|
|
|
61
62
|
this._interactivePanels.includes(target));
|
|
62
63
|
}
|
|
63
64
|
_navigateToFirst() {
|
|
64
|
-
this._getPanelHeader(
|
|
65
|
+
this._getPanelHeader(firstOf(this._interactivePanels))?.focus();
|
|
65
66
|
}
|
|
66
67
|
_navigateToLast() {
|
|
67
|
-
this._getPanelHeader(
|
|
68
|
+
this._getPanelHeader(lastOf(this._interactivePanels))?.focus();
|
|
68
69
|
}
|
|
69
70
|
_navigateToPrevious(event) {
|
|
70
71
|
const current = event.target;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accordion.js","sourceRoot":"","sources":["../../../src/components/accordion/accordion.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport {\n addKeybindings,\n altKey,\n arrowDown,\n arrowUp,\n endKey,\n homeKey,\n shiftKey,\n} from '../common/controllers/key-bindings.js';\nimport { addSlotController, setSlots } from '../common/controllers/slot.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport { addSafeEventListener, first, last } from '../common/util.js';\nimport IgcExpansionPanelComponent from '../expansion-panel/expansion-panel.js';\nimport { styles } from './themes/accordion.base.css.js';\n\n/**\n * The Accordion is a container-based component that can house multiple expansion panels\n * and offers keyboard navigation.\n *\n * @element igc-accordion\n *\n * @slot - Renders the expansion panels inside default slot.\n */\nexport default class IgcAccordionComponent extends LitElement {\n public static readonly tagName = 'igc-accordion';\n public static override styles = styles;\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcAccordionComponent, IgcExpansionPanelComponent);\n }\n\n //#region Internal state and properties\n\n private _panels: IgcExpansionPanelComponent[] = [];\n\n private readonly _slots = addSlotController(this, {\n slots: setSlots(),\n onChange: this._handleSlotChange,\n initial: true,\n });\n\n private get _interactivePanels(): IgcExpansionPanelComponent[] {\n return this._panels.filter((panel) => !panel.disabled);\n }\n\n //#endregion\n\n //#region Public attributes and properties\n\n /**\n * Allows only one panel to be expanded at a time.\n * @attr single-expand\n * @default false\n */\n @property({ type: Boolean, reflect: true, attribute: 'single-expand' })\n public singleExpand = false;\n\n /* blazorSuppress */\n /** Returns all of the accordions's direct igc-expansion-panel children. */\n public get panels(): IgcExpansionPanelComponent[] {\n return Array.from(this._panels);\n }\n\n //#endregion\n\n constructor() {\n super();\n\n addSafeEventListener(this, 'igcOpening' as any, this._handlePanelOpening);\n\n addKeybindings(this, { skip: this._skipKeybinding })\n .set(homeKey, this._navigateToFirst)\n .set(endKey, this._navigateToLast)\n .set(arrowUp, this._navigateToPrevious)\n .set(arrowDown, this._navigateToNext)\n .set([shiftKey, altKey, arrowDown], this._expandAll)\n .set([shiftKey, altKey, arrowUp], this._collapseAll);\n }\n\n //#region Event handlers\n\n private _handleSlotChange(): void {\n this._panels = this._slots.getAssignedElements('[default]', {\n selector: IgcExpansionPanelComponent.tagName,\n });\n }\n\n private async _handlePanelOpening(event: Event): Promise<void> {\n const current = event.target as IgcExpansionPanelComponent;\n\n if (!(this.singleExpand && this.panels.includes(current))) {\n return;\n }\n\n await Promise.all(\n this._interactivePanels\n .filter((panel) => panel.open && panel !== current)\n .map((panel) => this._closePanel(panel))\n );\n }\n\n //#endregion\n\n //#region Keyboard interaction handlers\n\n private _skipKeybinding(target: Element): boolean {\n return !(\n target instanceof IgcExpansionPanelComponent &&\n this._interactivePanels.includes(target)\n );\n }\n\n private _navigateToFirst(): void {\n this._getPanelHeader(first(this._interactivePanels))?.focus();\n }\n\n private _navigateToLast(): void {\n this._getPanelHeader(last(this._interactivePanels))?.focus();\n }\n\n private _navigateToPrevious(event: KeyboardEvent): void {\n const current = event.target as IgcExpansionPanelComponent;\n const next = this._getNextPanel(current, -1);\n\n if (next !== current) {\n this._getPanelHeader(next)?.focus();\n }\n }\n\n private _navigateToNext(event: KeyboardEvent): void {\n const current = event.target as IgcExpansionPanelComponent;\n const next = this._getNextPanel(current, 1);\n\n if (next !== current) {\n this._getPanelHeader(next)?.focus();\n }\n }\n\n private async _collapseAll(): Promise<void> {\n await Promise.all(\n this._interactivePanels.map((panel) => this._closePanel(panel))\n );\n }\n\n private async _expandAll(event: KeyboardEvent): Promise<void> {\n const current = event.target as IgcExpansionPanelComponent;\n\n if (this.singleExpand) {\n const closePromises = this._interactivePanels\n .filter((panel) => panel.open && panel !== current)\n .map((panel) => this._closePanel(panel));\n\n await Promise.all(closePromises);\n await this._openPanel(current);\n } else {\n await Promise.all(\n this._interactivePanels.map((panel) => this._openPanel(panel))\n );\n }\n }\n\n //#endregion\n\n //#region Internal API\n\n private _getPanelHeader(\n panel: IgcExpansionPanelComponent\n ): HTMLElement | undefined {\n // biome-ignore lint/complexity/useLiteralKeys: Direct property access instead of DOM query\n return panel['_headerRef'].value;\n }\n\n private _getNextPanel(\n panel: IgcExpansionPanelComponent,\n dir: 1 | -1 = 1\n ): IgcExpansionPanelComponent {\n const panels = this._interactivePanels;\n const idx = panels.indexOf(panel);\n\n return panels[idx + dir] || panel;\n }\n\n private async _closePanel(p: IgcExpansionPanelComponent): Promise<void> {\n const args = { detail: p };\n\n if (!(p.open && p.emitEvent('igcClosing', { cancelable: true, ...args }))) {\n return;\n }\n\n if (await p.hide()) {\n p.emitEvent('igcClosed', args);\n }\n }\n\n private async _openPanel(p: IgcExpansionPanelComponent): Promise<void> {\n const args = { detail: p };\n\n if (p.open || !p.emitEvent('igcOpening', { cancelable: true, ...args })) {\n return;\n }\n\n if (await p.show()) {\n p.emitEvent('igcOpened', args);\n }\n }\n\n //#endregion\n\n //#region Public API\n\n /** Hides all of the child expansion panels' contents. */\n public async hideAll(): Promise<void> {\n await Promise.all(this.panels.map((panel) => panel.hide()));\n }\n\n /** Shows all of the child expansion panels' contents. */\n public async showAll(): Promise<void> {\n await Promise.all(this.panels.map((panel) => panel.show()));\n }\n\n //#endregion\n\n protected override render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-accordion': IgcAccordionComponent;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"accordion.js","sourceRoot":"","sources":["../../../src/components/accordion/accordion.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport {\n addKeybindings,\n altKey,\n arrowDown,\n arrowUp,\n endKey,\n homeKey,\n shiftKey,\n} from '#internals/controllers/key-bindings.js';\nimport { addSlotController, setSlots } from '#internals/controllers/slot.js';\nimport { registerComponent } from '#internals/definitions/register.js';\nimport { firstOf, lastOf } from '#internals/utils/arrays.js';\nimport { addSafeEventListener } from '#internals/utils/events.js';\nimport IgcExpansionPanelComponent from '../expansion-panel/expansion-panel.js';\nimport { styles } from './themes/accordion.base.css.js';\n\n/**\n * The Accordion is a container-based component that can house multiple expansion panels\n * and offers keyboard navigation.\n *\n * @element igc-accordion\n *\n * @slot - Renders the expansion panels inside default slot.\n */\nexport default class IgcAccordionComponent extends LitElement {\n public static readonly tagName = 'igc-accordion';\n public static override styles = styles;\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcAccordionComponent, IgcExpansionPanelComponent);\n }\n\n //#region Internal state and properties\n\n private _panels: IgcExpansionPanelComponent[] = [];\n\n private readonly _slots = addSlotController(this, {\n slots: setSlots(),\n onChange: this._handleSlotChange,\n initial: true,\n });\n\n private get _interactivePanels(): IgcExpansionPanelComponent[] {\n return this._panels.filter((panel) => !panel.disabled);\n }\n\n //#endregion\n\n //#region Public attributes and properties\n\n /**\n * Allows only one panel to be expanded at a time.\n * @attr single-expand\n * @default false\n */\n @property({ type: Boolean, reflect: true, attribute: 'single-expand' })\n public singleExpand = false;\n\n /* blazorSuppress */\n /** Returns all of the direct expansion panel children of the accordion. */\n public get panels(): IgcExpansionPanelComponent[] {\n return Array.from(this._panels);\n }\n\n //#endregion\n\n constructor() {\n super();\n\n addSafeEventListener(this, 'igcOpening' as any, this._handlePanelOpening);\n\n addKeybindings(this, { skip: this._skipKeybinding })\n .set(homeKey, this._navigateToFirst)\n .set(endKey, this._navigateToLast)\n .set(arrowUp, this._navigateToPrevious)\n .set(arrowDown, this._navigateToNext)\n .set([shiftKey, altKey, arrowDown], this._expandAll)\n .set([shiftKey, altKey, arrowUp], this._collapseAll);\n }\n\n //#region Event handlers\n\n private _handleSlotChange(): void {\n this._panels = this._slots.getAssignedElements('[default]', {\n selector: IgcExpansionPanelComponent.tagName,\n });\n }\n\n private async _handlePanelOpening(event: Event): Promise<void> {\n const current = event.target as IgcExpansionPanelComponent;\n\n if (!(this.singleExpand && this.panels.includes(current))) {\n return;\n }\n\n await Promise.all(\n this._interactivePanels\n .filter((panel) => panel.open && panel !== current)\n .map((panel) => this._closePanel(panel))\n );\n }\n\n //#endregion\n\n //#region Keyboard interaction handlers\n\n private _skipKeybinding(target: Element): boolean {\n return !(\n target instanceof IgcExpansionPanelComponent &&\n this._interactivePanels.includes(target)\n );\n }\n\n private _navigateToFirst(): void {\n this._getPanelHeader(firstOf(this._interactivePanels))?.focus();\n }\n\n private _navigateToLast(): void {\n this._getPanelHeader(lastOf(this._interactivePanels))?.focus();\n }\n\n private _navigateToPrevious(event: KeyboardEvent): void {\n const current = event.target as IgcExpansionPanelComponent;\n const next = this._getNextPanel(current, -1);\n\n if (next !== current) {\n this._getPanelHeader(next)?.focus();\n }\n }\n\n private _navigateToNext(event: KeyboardEvent): void {\n const current = event.target as IgcExpansionPanelComponent;\n const next = this._getNextPanel(current, 1);\n\n if (next !== current) {\n this._getPanelHeader(next)?.focus();\n }\n }\n\n private async _collapseAll(): Promise<void> {\n await Promise.all(\n this._interactivePanels.map((panel) => this._closePanel(panel))\n );\n }\n\n private async _expandAll(event: KeyboardEvent): Promise<void> {\n const current = event.target as IgcExpansionPanelComponent;\n\n if (this.singleExpand) {\n const closePromises = this._interactivePanels\n .filter((panel) => panel.open && panel !== current)\n .map((panel) => this._closePanel(panel));\n\n await Promise.all(closePromises);\n await this._openPanel(current);\n } else {\n await Promise.all(\n this._interactivePanels.map((panel) => this._openPanel(panel))\n );\n }\n }\n\n //#endregion\n\n //#region Internal API\n\n private _getPanelHeader(\n panel: IgcExpansionPanelComponent\n ): HTMLElement | undefined {\n return panel['_headerRef'].value;\n }\n\n private _getNextPanel(\n panel: IgcExpansionPanelComponent,\n dir: 1 | -1 = 1\n ): IgcExpansionPanelComponent {\n const panels = this._interactivePanels;\n const idx = panels.indexOf(panel);\n\n return panels[idx + dir] || panel;\n }\n\n private async _closePanel(p: IgcExpansionPanelComponent): Promise<void> {\n const args = { detail: p };\n\n if (!(p.open && p.emitEvent('igcClosing', { cancelable: true, ...args }))) {\n return;\n }\n\n if (await p.hide()) {\n p.emitEvent('igcClosed', args);\n }\n }\n\n private async _openPanel(p: IgcExpansionPanelComponent): Promise<void> {\n const args = { detail: p };\n\n if (p.open || !p.emitEvent('igcOpening', { cancelable: true, ...args })) {\n return;\n }\n\n if (await p.show()) {\n p.emitEvent('igcOpened', args);\n }\n }\n\n //#endregion\n\n //#region Public API\n\n /** Hides all of the child expansion panels' contents. */\n public async hideAll(): Promise<void> {\n await Promise.all(this.panels.map((panel) => panel.hide()));\n }\n\n /** Shows all of the child expansion panels' contents. */\n public async showAll(): Promise<void> {\n await Promise.all(this.panels.map((panel) => panel.show()));\n }\n\n //#endregion\n\n protected override render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-accordion': IgcAccordionComponent;\n }\n}\n"]}
|
|
@@ -7,9 +7,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { html, LitElement, nothing } from 'lit';
|
|
8
8
|
import { property, state } from 'lit/decorators.js';
|
|
9
9
|
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
10
|
+
import { addInternalsController } from '#internals/controllers/internals.js';
|
|
11
|
+
import { registerComponent } from '#internals/definitions/register.js';
|
|
12
|
+
import { addThemingController } from '#theming/theming-controller.js';
|
|
13
13
|
import { styles } from './themes/avatar.base.css.js';
|
|
14
14
|
import { styles as shared } from './themes/shared/avatar.common.css.js';
|
|
15
15
|
import { all } from './themes/themes.js';
|
|
@@ -52,13 +52,13 @@ export default class IgcAvatarComponent extends LitElement {
|
|
|
52
52
|
: html `<slot></slot>`}
|
|
53
53
|
${this.src && !this._hasError
|
|
54
54
|
? html `
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
55
|
+
<img
|
|
56
|
+
part="image"
|
|
57
|
+
alt=${ifDefined(this.alt)}
|
|
58
|
+
src=${ifDefined(this.src)}
|
|
59
|
+
@error=${this._handleError}
|
|
60
|
+
/>
|
|
61
|
+
`
|
|
62
62
|
: nothing}
|
|
63
63
|
</div>
|
|
64
64
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avatar.js","sourceRoot":"","sources":["../../../src/components/avatar/avatar.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAuB,MAAM,KAAK,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"avatar.js","sourceRoot":"","sources":["../../../src/components/avatar/avatar.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAuB,MAAM,KAAK,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEtE,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAezC,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,UAAU;aACjC,YAAO,GAAG,YAAY,AAAf,CAAgB;aACvB,WAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,AAAnB,CAAoB;IAG1C,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IACxC,CAAC;IAwCD;QACE,KAAK,EAAE,CAAC;QAvCO,eAAU,GAAG,sBAAsB,CAAC,IAAI,EAAE;YACzD,WAAW,EAAE;gBACX,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE,QAAQ;aACpB;SACF,CAAC,CAAC;QAGK,cAAS,GAAG,KAAK,CAAC;QA4BnB,UAAK,GAAgB,QAAQ,CAAC;QAInC,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IAEkB,UAAU,CAAC,iBAAuC;QACnE,IAAI,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACtE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;gBACtB,mBAAmB,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ;aAC/C,CAAC,CAAC;QACL,CAAC;QAED,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IAES,YAAY;QACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA;;UAGL,IAAI,CAAC,QAAQ;YACX,CAAC,CAAC,IAAI,CAAA,yBAAyB,IAAI,CAAC,QAAQ,SAAS;YACrD,CAAC,CAAC,IAAI,CAAA,eACV;UAEE,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS;YACzB,CAAC,CAAC,IAAI,CAAA;;;wBAGM,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;wBACnB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;2BAChB,IAAI,CAAC,YAAY;;eAE7B;YACH,CAAC,CAAC,OACN;;KAEH,CAAC;IACJ,CAAC;;AAzEO;IADP,KAAK,EAAE;qDACkB;AAOnB;IADN,QAAQ,EAAE;+CACS;AAOb;IADN,QAAQ,EAAE;+CACS;AAOb;IADN,QAAQ,EAAE;oDACc;AAOlB;IADN,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;iDACS","sourcesContent":["import { html, LitElement, nothing, type PropertyValues } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { addInternalsController } from '#internals/controllers/internals.js';\nimport { registerComponent } from '#internals/definitions/register.js';\nimport { addThemingController } from '#theming/theming-controller.js';\nimport type { AvatarShape } from '../types.js';\nimport { styles } from './themes/avatar.base.css.js';\nimport { styles as shared } from './themes/shared/avatar.common.css.js';\nimport { all } from './themes/themes.js';\n\n/**\n * An avatar component is used as a representation of a user identity\n * typically in a user profile.\n *\n * @element igc-avatar\n *\n * @slot - Renders an icon inside the default slot.\n *\n * @csspart base - The base wrapper of the avatar.\n * @csspart initials - The initials wrapper of the avatar.\n * @csspart image - The image wrapper of the avatar.\n * @csspart icon - The icon wrapper of the avatar.\n */\nexport default class IgcAvatarComponent extends LitElement {\n public static readonly tagName = 'igc-avatar';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcAvatarComponent);\n }\n\n private readonly _internals = addInternalsController(this, {\n initialARIA: {\n role: 'image',\n ariaLabel: 'avatar',\n },\n });\n\n @state()\n private _hasError = false;\n\n /**\n * The image source to use.\n * @attr\n */\n @property()\n public src?: string;\n\n /**\n * Alternative text for the image.\n * @attr\n */\n @property()\n public alt?: string;\n\n /**\n * Initials to use as a fallback when no image is available.\n * @attr\n */\n @property()\n public initials?: string;\n\n /**\n * The shape of the avatar.\n * @attr\n */\n @property({ reflect: true })\n public shape: AvatarShape = 'square';\n\n constructor() {\n super();\n addThemingController(this, all);\n }\n\n protected override willUpdate(changedProperties: PropertyValues<this>): void {\n if (changedProperties.has('initials') || changedProperties.has('alt')) {\n this._internals.setARIA({\n ariaRoleDescription: this.alt ?? this.initials,\n });\n }\n\n if (changedProperties.has('src')) {\n this._hasError = false;\n }\n }\n\n protected _handleError(): void {\n this._hasError = true;\n }\n\n protected override render() {\n return html`\n <div part=\"base\">\n ${\n this.initials\n ? html`<span part=\"initials\">${this.initials}</span>`\n : html`<slot></slot>`\n }\n ${\n this.src && !this._hasError\n ? html`\n <img\n part=\"image\"\n alt=${ifDefined(this.alt)}\n src=${ifDefined(this.src)}\n @error=${this._handleError}\n />\n `\n : nothing\n }\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-avatar': IgcAvatarComponent;\n }\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { Themes } from '
|
|
1
|
+
import type { Themes } from '#theming/types.js';
|
|
2
2
|
export declare const all: Themes;
|