igniteui-webcomponents 6.3.0-alpha.1 → 6.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 +27 -0
- package/components/accordion/themes/accordion.base.css.js +1 -1
- package/components/accordion/themes/accordion.base.css.js.map +1 -1
- package/components/banner/themes/banner.base.css.js +1 -1
- package/components/banner/themes/banner.base.css.js.map +1 -1
- package/components/banner/themes/shared/banner.bootstrap.css.js +1 -1
- package/components/banner/themes/shared/banner.bootstrap.css.js.map +1 -1
- package/components/banner/themes/shared/banner.fluent.css.js +1 -1
- package/components/banner/themes/shared/banner.fluent.css.js.map +1 -1
- package/components/banner/themes/shared/banner.indigo.css.js +1 -1
- package/components/banner/themes/shared/banner.indigo.css.js.map +1 -1
- package/components/banner/themes/shared/banner.material.css.js +1 -1
- package/components/banner/themes/shared/banner.material.css.js.map +1 -1
- package/components/button/themes/button/button.base.css.js +1 -1
- package/components/button/themes/button/button.base.css.js.map +1 -1
- package/components/button/themes/button/shared/button.common.css.js +1 -1
- package/components/button/themes/button/shared/button.common.css.js.map +1 -1
- package/components/button/themes/button/shared/button.fluent.css.js +1 -1
- package/components/button/themes/button/shared/button.fluent.css.js.map +1 -1
- package/components/button/themes/button/shared/button.indigo.css.js +1 -1
- package/components/button/themes/button/shared/button.indigo.css.js.map +1 -1
- package/components/calendar/calendar.d.ts +1 -1
- package/components/calendar/themes/calendar.base.css.js +1 -1
- package/components/calendar/themes/calendar.base.css.js.map +1 -1
- package/components/calendar/themes/days-view.base.css.js +1 -1
- package/components/calendar/themes/days-view.base.css.js.map +1 -1
- package/components/calendar/themes/shared/bootstrap/calendar.bootstrap.css.js +1 -1
- package/components/calendar/themes/shared/bootstrap/calendar.bootstrap.css.js.map +1 -1
- package/components/calendar/themes/shared/bootstrap/days-view.bootstrap.css.js +1 -1
- package/components/calendar/themes/shared/bootstrap/days-view.bootstrap.css.js.map +1 -1
- package/components/calendar/themes/shared/bootstrap/year-month-view.bootstrap.css.js +1 -1
- package/components/calendar/themes/shared/bootstrap/year-month-view.bootstrap.css.js.map +1 -1
- package/components/calendar/themes/shared/fluent/calendar.fluent.css.js +1 -1
- package/components/calendar/themes/shared/fluent/calendar.fluent.css.js.map +1 -1
- package/components/calendar/themes/shared/indigo/calendar.indigo.css.js +1 -1
- package/components/calendar/themes/shared/indigo/calendar.indigo.css.js.map +1 -1
- package/components/calendar/themes/shared/material/calendar.material.css.js +1 -1
- package/components/calendar/themes/shared/material/calendar.material.css.js.map +1 -1
- package/components/calendar/themes/year-month-view.base.css.js +1 -1
- package/components/calendar/themes/year-month-view.base.css.js.map +1 -1
- package/components/card/themes/card.actions.base.css.js +1 -1
- package/components/card/themes/card.actions.base.css.js.map +1 -1
- package/components/card/themes/card.content.base.css.js +1 -1
- package/components/card/themes/card.content.base.css.js.map +1 -1
- package/components/card/themes/card.header.base.css.js +1 -1
- package/components/card/themes/card.header.base.css.js.map +1 -1
- package/components/card/themes/shared/actions/card.actions.bootstrap.css.js +1 -1
- package/components/card/themes/shared/actions/card.actions.bootstrap.css.js.map +1 -1
- package/components/card/themes/shared/actions/card.actions.indigo.css.js +1 -1
- package/components/card/themes/shared/actions/card.actions.indigo.css.js.map +1 -1
- package/components/card/themes/shared/container/card.bootstrap.css.js +1 -1
- package/components/card/themes/shared/container/card.bootstrap.css.js.map +1 -1
- package/components/card/themes/shared/container/card.indigo.css.js +1 -1
- package/components/card/themes/shared/container/card.indigo.css.js.map +1 -1
- package/components/card/themes/shared/content/card.content.bootstrap.css.js +1 -1
- package/components/card/themes/shared/content/card.content.bootstrap.css.js.map +1 -1
- package/components/card/themes/shared/header/card.header.fluent.css.js +1 -1
- package/components/card/themes/shared/header/card.header.fluent.css.js.map +1 -1
- package/components/card/themes/shared/header/card.header.indigo.css.js +1 -1
- package/components/card/themes/shared/header/card.header.indigo.css.js.map +1 -1
- package/components/carousel/themes/carousel.base.css.js +1 -1
- package/components/carousel/themes/carousel.base.css.js.map +1 -1
- package/components/carousel/themes/shared/carousel.indigo.css.js +1 -1
- package/components/carousel/themes/shared/carousel.indigo.css.js.map +1 -1
- package/components/chat/chat-input.d.ts +47 -11
- package/components/chat/chat-input.js +186 -72
- package/components/chat/chat-input.js.map +1 -1
- package/components/chat/chat-message.d.ts +17 -2
- package/components/chat/chat-message.js +126 -26
- package/components/chat/chat-message.js.map +1 -1
- package/components/chat/chat-state.d.ts +18 -135
- package/components/chat/chat-state.js +56 -398
- package/components/chat/chat-state.js.map +1 -1
- package/components/chat/chat.d.ts +36 -64
- package/components/chat/chat.js +163 -119
- package/components/chat/chat.js.map +1 -1
- package/components/chat/extras/markdown-renderer.d.ts +23 -0
- package/components/chat/extras/markdown-renderer.js +44 -0
- package/components/chat/extras/markdown-renderer.js.map +1 -0
- package/components/chat/message-attachments.d.ts +23 -5
- package/components/chat/message-attachments.js +94 -12
- package/components/chat/message-attachments.js.map +1 -1
- package/components/chat/themes/attachments.d.ts +2 -0
- package/components/chat/themes/attachments.js +14 -0
- package/components/chat/themes/attachments.js.map +1 -0
- package/components/chat/themes/chat.base.css.js +1 -1
- package/components/chat/themes/chat.base.css.js.map +1 -1
- package/components/chat/themes/dark/chat.indigo.css.js +1 -1
- package/components/chat/themes/dark/chat.indigo.css.js.map +1 -1
- package/components/chat/themes/input.base.css.js +1 -1
- package/components/chat/themes/input.base.css.js.map +1 -1
- package/components/chat/themes/light/chat.indigo.css.js +1 -1
- package/components/chat/themes/light/chat.indigo.css.js.map +1 -1
- package/components/chat/themes/light/chat.shared.css.js +1 -1
- package/components/chat/themes/light/chat.shared.css.js.map +1 -1
- package/components/chat/themes/message-attachments.base.css.js +1 -1
- package/components/chat/themes/message-attachments.base.css.js.map +1 -1
- package/components/chat/themes/message.base.css.js +1 -1
- package/components/chat/themes/message.base.css.js.map +1 -1
- package/components/chat/themes/shared/chat.bootstrap.css.js +1 -1
- package/components/chat/themes/shared/chat.bootstrap.css.js.map +1 -1
- package/components/chat/themes/shared/chat.common.css.js +1 -1
- package/components/chat/themes/shared/chat.common.css.js.map +1 -1
- package/components/chat/themes/shared/chat.fluent.css.js +3 -0
- package/components/chat/themes/shared/chat.fluent.css.js.map +1 -0
- package/components/chat/themes/shared/chat.indigo.css.js +1 -1
- package/components/chat/themes/shared/chat.indigo.css.js.map +1 -1
- package/components/chat/themes/shared/input/input.bootstrap.css.js +1 -1
- package/components/chat/themes/shared/input/input.bootstrap.css.js.map +1 -1
- package/components/chat/themes/shared/input/input.fluent.css.js +1 -1
- package/components/chat/themes/shared/input/input.fluent.css.js.map +1 -1
- package/components/chat/themes/shared/input/input.material.css.js +1 -1
- package/components/chat/themes/shared/input/input.material.css.js.map +1 -1
- package/components/chat/themes/shared/message-attachments/message-attachments.common.css.js +3 -0
- package/components/chat/themes/shared/message-attachments/message-attachments.common.css.js.map +1 -0
- package/components/chat/themes/shared/message-attachments/message-attachments.indigo.css.js +3 -0
- package/components/chat/themes/shared/message-attachments/message-attachments.indigo.css.js.map +1 -0
- package/components/chat/themes/themes.js +3 -2
- package/components/chat/themes/themes.js.map +1 -1
- package/components/chat/types.d.ts +26 -133
- package/components/chat/types.js +1 -14
- package/components/chat/types.js.map +1 -1
- package/components/chat/utils.d.ts +16 -0
- package/components/chat/utils.js +86 -0
- package/components/chat/utils.js.map +1 -0
- package/components/checkbox/checkbox-base.d.ts +1 -1
- package/components/checkbox/themes/shared/checkbox/checkbox.bootstrap.css.js +1 -1
- package/components/checkbox/themes/shared/checkbox/checkbox.bootstrap.css.js.map +1 -1
- package/components/checkbox/themes/shared/checkbox/checkbox.fluent.css.js +1 -1
- package/components/checkbox/themes/shared/checkbox/checkbox.fluent.css.js.map +1 -1
- package/components/checkbox/themes/shared/checkbox/checkbox.indigo.css.js +1 -1
- package/components/checkbox/themes/shared/checkbox/checkbox.indigo.css.js.map +1 -1
- package/components/checkbox/themes/shared/checkbox/checkbox.material.css.js +1 -1
- package/components/checkbox/themes/shared/checkbox/checkbox.material.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/combo/themes/combo-item.base.css.js +1 -1
- package/components/combo/themes/combo-item.base.css.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/shared/combo.bootstrap.css.js +1 -1
- package/components/combo/themes/shared/combo.bootstrap.css.js.map +1 -1
- package/components/combo/themes/shared/combo.fluent.css.js +1 -1
- package/components/combo/themes/shared/combo.fluent.css.js.map +1 -1
- package/components/combo/themes/shared/combo.indigo.css.js +1 -1
- package/components/combo/themes/shared/combo.indigo.css.js.map +1 -1
- package/components/combo/themes/shared/combo.material.css.js +1 -1
- package/components/combo/themes/shared/combo.material.css.js.map +1 -1
- package/components/common/context.d.ts +4 -1
- package/components/common/context.js +2 -1
- package/components/common/context.js.map +1 -1
- package/components/common/i18n/chat.resources.d.ts +4 -4
- package/components/common/i18n/chat.resources.js +4 -4
- package/components/common/i18n/chat.resources.js.map +1 -1
- package/components/common/util.d.ts +8 -0
- package/components/common/util.js +33 -1
- package/components/common/util.js.map +1 -1
- package/components/date-picker/themes/date-picker.base.css.js +1 -1
- package/components/date-picker/themes/date-picker.base.css.js.map +1 -1
- package/components/date-picker/themes/shared/date-picker.bootstrap.css.js +1 -1
- package/components/date-picker/themes/shared/date-picker.bootstrap.css.js.map +1 -1
- package/components/date-picker/themes/shared/date-picker.common.css.js +1 -1
- package/components/date-picker/themes/shared/date-picker.common.css.js.map +1 -1
- package/components/date-picker/themes/shared/date-picker.fluent.css.js +1 -1
- package/components/date-picker/themes/shared/date-picker.fluent.css.js.map +1 -1
- package/components/date-picker/themes/shared/date-picker.indigo.css.js +1 -1
- package/components/date-picker/themes/shared/date-picker.indigo.css.js.map +1 -1
- package/components/date-range-picker/date-range-picker.base.css.js +1 -1
- package/components/date-range-picker/date-range-picker.base.css.js.map +1 -1
- package/components/date-range-picker/date-range-picker.d.ts +1 -1
- package/components/date-range-picker/predefined-ranges-area.base.css.js +1 -1
- package/components/date-range-picker/predefined-ranges-area.base.css.js.map +1 -1
- package/components/date-range-picker/themes/shared/date-range-picker.bootstrap.css.js +1 -1
- package/components/date-range-picker/themes/shared/date-range-picker.bootstrap.css.js.map +1 -1
- package/components/date-range-picker/themes/shared/date-range-picker.common.css.js +1 -1
- package/components/date-range-picker/themes/shared/date-range-picker.common.css.js.map +1 -1
- package/components/date-range-picker/themes/shared/date-range-picker.fluent.css.js +1 -1
- package/components/date-range-picker/themes/shared/date-range-picker.fluent.css.js.map +1 -1
- package/components/date-range-picker/themes/shared/date-range-picker.indigo.css.js +1 -1
- package/components/date-range-picker/themes/shared/date-range-picker.indigo.css.js.map +1 -1
- package/components/dialog/themes/dialog.base.css.js +1 -1
- package/components/dialog/themes/dialog.base.css.js.map +1 -1
- package/components/dialog/themes/shared/dialog.bootstrap.css.js +1 -1
- package/components/dialog/themes/shared/dialog.bootstrap.css.js.map +1 -1
- package/components/dialog/themes/shared/dialog.common.css.js +1 -1
- package/components/dialog/themes/shared/dialog.common.css.js.map +1 -1
- package/components/dialog/themes/shared/dialog.fluent.css.js +1 -1
- package/components/dialog/themes/shared/dialog.fluent.css.js.map +1 -1
- package/components/dialog/themes/shared/dialog.indigo.css.js +1 -1
- package/components/dialog/themes/shared/dialog.indigo.css.js.map +1 -1
- package/components/dropdown/themes/dropdown-item.base.css.js +1 -1
- package/components/dropdown/themes/dropdown-item.base.css.js.map +1 -1
- package/components/dropdown/themes/shared/dropdown.indigo.css.js +1 -1
- package/components/dropdown/themes/shared/dropdown.indigo.css.js.map +1 -1
- package/components/dropdown/themes/shared/item/dropdown-item.indigo.css.js +1 -1
- package/components/dropdown/themes/shared/item/dropdown-item.indigo.css.js.map +1 -1
- package/components/expansion-panel/themes/expansion-panel.base.css.js +1 -1
- package/components/expansion-panel/themes/expansion-panel.base.css.js.map +1 -1
- package/components/expansion-panel/themes/shared/expansion-panel.indigo.css.js +1 -1
- package/components/expansion-panel/themes/shared/expansion-panel.indigo.css.js.map +1 -1
- package/components/file-input/file-input.d.ts +0 -4
- package/components/file-input/file-input.js +12 -15
- package/components/file-input/file-input.js.map +1 -1
- package/components/file-input/themes/shared/file-input.material.css.js +1 -1
- package/components/file-input/themes/shared/file-input.material.css.js.map +1 -1
- package/components/icon/icon-references.js +130 -0
- package/components/icon/icon-references.js.map +1 -1
- package/components/icon/internal-icons-lib.js +66 -0
- package/components/icon/internal-icons-lib.js.map +1 -1
- package/components/input/input.d.ts +0 -4
- package/components/input/input.js +9 -11
- package/components/input/input.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/list/themes/dark/container/list.indigo.css.js +1 -1
- package/components/list/themes/dark/container/list.indigo.css.js.map +1 -1
- package/components/list/themes/dark/header/list-header.indigo.css.js +1 -1
- package/components/list/themes/dark/header/list-header.indigo.css.js.map +1 -1
- package/components/list/themes/dark/item/list-item.indigo.css.js +1 -1
- package/components/list/themes/dark/item/list-item.indigo.css.js.map +1 -1
- package/components/list/themes/light/container/list.indigo.css.js +1 -1
- package/components/list/themes/light/container/list.indigo.css.js.map +1 -1
- package/components/list/themes/light/header/list-header.indigo.css.js +1 -1
- package/components/list/themes/light/header/list-header.indigo.css.js.map +1 -1
- package/components/list/themes/light/item/list-item.indigo.css.js +1 -1
- package/components/list/themes/light/item/list-item.indigo.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/nav-drawer/themes/shared/header-item/header-item.bootstrap.css.js +1 -1
- package/components/nav-drawer/themes/shared/header-item/header-item.bootstrap.css.js.map +1 -1
- package/components/nav-drawer/themes/shared/header-item/header-item.fluent.css.js +1 -1
- package/components/nav-drawer/themes/shared/header-item/header-item.fluent.css.js.map +1 -1
- package/components/nav-drawer/themes/shared/header-item/header-item.indigo.css.js +1 -1
- package/components/nav-drawer/themes/shared/header-item/header-item.indigo.css.js.map +1 -1
- package/components/nav-drawer/themes/shared/header-item/header-item.material.css.js +1 -1
- package/components/nav-drawer/themes/shared/header-item/header-item.material.css.js.map +1 -1
- package/components/nav-drawer/themes/shared/item/item.bootstrap.css.js +1 -1
- package/components/nav-drawer/themes/shared/item/item.bootstrap.css.js.map +1 -1
- package/components/nav-drawer/themes/shared/item/item.fluent.css.js +1 -1
- package/components/nav-drawer/themes/shared/item/item.fluent.css.js.map +1 -1
- package/components/nav-drawer/themes/shared/item/item.indigo.css.js +1 -1
- package/components/nav-drawer/themes/shared/item/item.indigo.css.js.map +1 -1
- package/components/nav-drawer/themes/shared/item/item.material.css.js +1 -1
- package/components/nav-drawer/themes/shared/item/item.material.css.js.map +1 -1
- package/components/navbar/themes/navbar.base.css.js +1 -1
- package/components/navbar/themes/navbar.base.css.js.map +1 -1
- package/components/navbar/themes/shared/navbar.bootstrap.css.js +1 -1
- package/components/navbar/themes/shared/navbar.bootstrap.css.js.map +1 -1
- package/components/navbar/themes/shared/navbar.indigo.css.js +1 -1
- package/components/navbar/themes/shared/navbar.indigo.css.js.map +1 -1
- package/components/progress/themes/linear/shared/linear.progress.fluent.css.js +1 -1
- package/components/progress/themes/linear/shared/linear.progress.fluent.css.js.map +1 -1
- package/components/progress/themes/linear/shared/linear.progress.indigo.css.js +1 -1
- package/components/progress/themes/linear/shared/linear.progress.indigo.css.js.map +1 -1
- package/components/radio/themes/shared/radio.bootstrap.css.js +1 -1
- package/components/radio/themes/shared/radio.bootstrap.css.js.map +1 -1
- package/components/radio/themes/shared/radio.fluent.css.js +1 -1
- package/components/radio/themes/shared/radio.fluent.css.js.map +1 -1
- package/components/radio/themes/shared/radio.indigo.css.js +1 -1
- package/components/radio/themes/shared/radio.indigo.css.js.map +1 -1
- package/components/radio/themes/shared/radio.material.css.js +1 -1
- package/components/radio/themes/shared/radio.material.css.js.map +1 -1
- package/components/radio-group/themes/radio-group.base.css.js +1 -1
- package/components/radio-group/themes/radio-group.base.css.js.map +1 -1
- package/components/radio-group/themes/shared/radio-group.bootstrap.css.js +1 -1
- package/components/radio-group/themes/shared/radio-group.bootstrap.css.js.map +1 -1
- package/components/radio-group/themes/shared/radio-group.fluent.css.js +1 -1
- package/components/radio-group/themes/shared/radio-group.fluent.css.js.map +1 -1
- package/components/radio-group/themes/shared/radio-group.indigo.css.js +1 -1
- package/components/radio-group/themes/shared/radio-group.indigo.css.js.map +1 -1
- package/components/radio-group/themes/shared/radio-group.material.css.js +1 -1
- package/components/radio-group/themes/shared/radio-group.material.css.js.map +1 -1
- package/components/rating/themes/rating.base.css.js +1 -1
- package/components/rating/themes/rating.base.css.js.map +1 -1
- package/components/rating/themes/shared/rating.indigo.css.js +1 -1
- package/components/rating/themes/shared/rating.indigo.css.js.map +1 -1
- package/components/resize-container/resize-container.d.ts +1 -1
- package/components/select/select.js +0 -1
- package/components/select/select.js.map +1 -1
- package/components/select/themes/shared/select.bootstrap.css.js +1 -1
- package/components/select/themes/shared/select.bootstrap.css.js.map +1 -1
- package/components/select/themes/shared/select.fluent.css.js +1 -1
- package/components/select/themes/shared/select.fluent.css.js.map +1 -1
- package/components/select/themes/shared/select.indigo.css.js +1 -1
- package/components/select/themes/shared/select.indigo.css.js.map +1 -1
- package/components/select/themes/shared/select.material.css.js +1 -1
- package/components/select/themes/shared/select.material.css.js.map +1 -1
- package/components/slider/themes/shared/slider.common.css.js +1 -1
- package/components/slider/themes/shared/slider.common.css.js.map +1 -1
- package/components/slider/themes/slider.base.css.js +1 -1
- package/components/slider/themes/slider.base.css.js.map +1 -1
- package/components/snackbar/themes/shared/snackbar.indigo.css.js +1 -1
- package/components/snackbar/themes/shared/snackbar.indigo.css.js.map +1 -1
- package/components/snackbar/themes/snackbar.base.css.js +1 -1
- package/components/snackbar/themes/snackbar.base.css.js.map +1 -1
- package/components/stepper/step.d.ts +1 -1
- package/components/tabs/themes/shared/tab/tab.bootstrap.css.js +1 -1
- package/components/tabs/themes/shared/tab/tab.bootstrap.css.js.map +1 -1
- package/components/tabs/themes/shared/tab/tab.fluent.css.js +1 -1
- package/components/tabs/themes/shared/tab/tab.fluent.css.js.map +1 -1
- package/components/tabs/themes/shared/tab/tab.indigo.css.js +1 -1
- package/components/tabs/themes/shared/tab/tab.indigo.css.js.map +1 -1
- package/components/tabs/themes/shared/tab/tab.material.css.js +1 -1
- package/components/tabs/themes/shared/tab/tab.material.css.js.map +1 -1
- package/components/textarea/textarea.d.ts +1 -1
- package/components/textarea/themes/shared/textarea.bootstrap.css.js +1 -1
- package/components/textarea/themes/shared/textarea.bootstrap.css.js.map +1 -1
- package/components/textarea/themes/shared/textarea.fluent.css.js +1 -1
- package/components/textarea/themes/shared/textarea.fluent.css.js.map +1 -1
- package/components/textarea/themes/shared/textarea.indigo.css.js +1 -1
- package/components/textarea/themes/shared/textarea.indigo.css.js.map +1 -1
- package/components/textarea/themes/shared/textarea.material.css.js +1 -1
- package/components/textarea/themes/shared/textarea.material.css.js.map +1 -1
- package/components/textarea/themes/textarea.base.css.js +1 -1
- package/components/textarea/themes/textarea.base.css.js.map +1 -1
- package/components/tile-manager/resize-state.js +1 -1
- package/components/tile-manager/resize-state.js.map +1 -1
- package/components/toast/themes/shared/toast.bootstrap.css.js +1 -1
- package/components/toast/themes/shared/toast.bootstrap.css.js.map +1 -1
- package/components/toast/themes/shared/toast.common.css.js +1 -1
- package/components/toast/themes/shared/toast.common.css.js.map +1 -1
- package/components/toast/themes/shared/toast.fluent.css.js +1 -1
- package/components/toast/themes/shared/toast.fluent.css.js.map +1 -1
- package/components/toast/themes/toast.base.css.js +1 -1
- package/components/toast/themes/toast.base.css.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/tree/themes/item.base.css.js +1 -1
- package/components/tree/themes/item.base.css.js.map +1 -1
- package/components/tree/themes/shared/item.common.css.js +1 -1
- package/components/tree/themes/shared/item.common.css.js.map +1 -1
- package/components/tree/themes/shared/item.indigo.css.js +1 -1
- package/components/tree/themes/shared/item.indigo.css.js.map +1 -1
- package/components/tree/themes/shared/item.material.css.js +1 -1
- package/components/tree/themes/shared/item.material.css.js.map +1 -1
- package/custom-elements.json +24401 -24643
- package/extras/index.d.ts +1 -0
- package/extras/index.js +2 -0
- package/extras/index.js.map +1 -0
- package/igniteui-webcomponents.css-data.json +1 -1
- package/igniteui-webcomponents.html-data.json +1 -1
- package/index.d.ts +1 -3
- package/index.js +0 -2
- package/index.js.map +1 -1
- package/package.json +6 -2
- package/web-types.json +2 -2
- package/components/chat/assets/file.png +0 -0
- package/components/chat/assets/json.png +0 -0
- package/components/chat/assets/link.png +0 -0
- package/components/chat/chat-message-list.d.ts +0 -70
- package/components/chat/chat-message-list.js +0 -89
- package/components/chat/chat-message-list.js.map +0 -1
- package/components/chat/chat-renderer.d.ts +0 -14
- package/components/chat/chat-renderer.js +0 -39
- package/components/chat/chat-renderer.js.map +0 -1
- package/components/chat/markdown-renderer.d.ts +0 -72
- package/components/chat/markdown-renderer.js +0 -71
- package/components/chat/markdown-renderer.js.map +0 -1
- package/components/chat/plain-text-renderer.d.ts +0 -15
- package/components/chat/plain-text-renderer.js +0 -7
- package/components/chat/plain-text-renderer.js.map +0 -1
- package/components/chat/themes/message-list.base.css.js +0 -3
- package/components/chat/themes/message-list.base.css.js.map +0 -1
- package/components/chat/themes/shared/message-attachments.common.css.js +0 -3
- package/components/chat/themes/shared/message-attachments.common.css.js.map +0 -1
- package/components/chat/themes/shared/message-list.common.css.js +0 -3
- package/components/chat/themes/shared/message-list.common.css.js.map +0 -1
- /package/components/chat/themes/{message-list.base.css.d.ts → shared/chat.fluent.css.d.ts} +0 -0
- /package/components/chat/themes/shared/{message-attachments.common.css.d.ts → message-attachments/message-attachments.common.css.d.ts} +0 -0
- /package/components/chat/themes/shared/{message-list.common.css.d.ts → message-attachments/message-attachments.indigo.css.d.ts} +0 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { LitElement } from 'lit';
|
|
2
|
-
/**
|
|
3
|
-
* A chat message list component that displays a list of chat messages grouped by date.
|
|
4
|
-
*
|
|
5
|
-
* @element igc-chat-message-list
|
|
6
|
-
*
|
|
7
|
-
* This component:
|
|
8
|
-
* - Renders messages using the `<igc-chat-message>` component.
|
|
9
|
-
* - Manages focus highlighting on active messages.
|
|
10
|
-
* - Automatically scrolls to the bottom when new messages arrive, unless auto-scroll is disabled.
|
|
11
|
-
* - Displays a typing indicator if the chat state option `isTyping` is true.
|
|
12
|
-
*
|
|
13
|
-
* Accessibility:
|
|
14
|
-
* - Uses ARIA roles and properties for grouping and active descendant management.
|
|
15
|
-
* - Message items have role="option" for assistive technologies.
|
|
16
|
-
*
|
|
17
|
-
*/
|
|
18
|
-
export default class IgcChatMessageListComponent extends LitElement {
|
|
19
|
-
/** Tag name of the custom element. */
|
|
20
|
-
static readonly tagName = "igc-chat-message-list";
|
|
21
|
-
/** Styles applied to the component */
|
|
22
|
-
static styles: import("lit").CSSResult[];
|
|
23
|
-
/**
|
|
24
|
-
* Registers this component and its dependencies.
|
|
25
|
-
* Used internally for component setup.
|
|
26
|
-
*/
|
|
27
|
-
static register(): void;
|
|
28
|
-
/**
|
|
29
|
-
* Consumed chat state context providing messages, options, and user data.
|
|
30
|
-
* @private
|
|
31
|
-
*/
|
|
32
|
-
private _chatState?;
|
|
33
|
-
/**
|
|
34
|
-
* Scrolls the container to the bottom, typically called after new messages are rendered.
|
|
35
|
-
* @private
|
|
36
|
-
*/
|
|
37
|
-
private scrollToBottom;
|
|
38
|
-
/**
|
|
39
|
-
* Scrolls the view to a specific message by id.
|
|
40
|
-
* @param messageId - The id of the message to scroll to
|
|
41
|
-
* @private
|
|
42
|
-
*/
|
|
43
|
-
scrollToMessage(messageId: string): void;
|
|
44
|
-
/**
|
|
45
|
-
* Lifecycle: called when the component updates.
|
|
46
|
-
* Scrolls to bottom unless auto-scroll is disabled.
|
|
47
|
-
*/
|
|
48
|
-
protected updated(): void;
|
|
49
|
-
/**
|
|
50
|
-
* Lifecycle: called after first render.
|
|
51
|
-
* Scrolls to bottom unless auto-scroll is disabled.
|
|
52
|
-
*/
|
|
53
|
-
protected firstUpdated(): void;
|
|
54
|
-
/**
|
|
55
|
-
* Renders the typing indicator template.
|
|
56
|
-
* @protected
|
|
57
|
-
*/
|
|
58
|
-
protected renderLoadingTemplate(): Generator<import("lit-html").TemplateResult<1>, void, unknown>;
|
|
59
|
-
/**
|
|
60
|
-
* Main render method.
|
|
61
|
-
* Groups messages by date and renders each message.
|
|
62
|
-
* Shows the typing indicator if applicable.
|
|
63
|
-
*/
|
|
64
|
-
protected render(): import("lit-html").TemplateResult<1>;
|
|
65
|
-
}
|
|
66
|
-
declare global {
|
|
67
|
-
interface HTMLElementTagNameMap {
|
|
68
|
-
'igc-chat-message-list': IgcChatMessageListComponent;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
import { consume } from '@lit/context';
|
|
8
|
-
import { html, LitElement, nothing } from 'lit';
|
|
9
|
-
import { repeat } from 'lit/directives/repeat.js';
|
|
10
|
-
import { chatContext } from '../common/context.js';
|
|
11
|
-
import { registerComponent } from '../common/definitions/register.js';
|
|
12
|
-
import IgcChatMessageComponent from './chat-message.js';
|
|
13
|
-
import { styles } from './themes/message-list.base.css.js';
|
|
14
|
-
import { styles as shared } from './themes/shared/message-list.common.css.js';
|
|
15
|
-
class IgcChatMessageListComponent extends LitElement {
|
|
16
|
-
static register() {
|
|
17
|
-
registerComponent(IgcChatMessageListComponent, IgcChatMessageComponent);
|
|
18
|
-
}
|
|
19
|
-
scrollToBottom() {
|
|
20
|
-
requestAnimationFrame(() => {
|
|
21
|
-
const container = this.shadowRoot?.host;
|
|
22
|
-
if (container) {
|
|
23
|
-
container.scrollTop = container.scrollHeight;
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
scrollToMessage(messageId) {
|
|
28
|
-
const messageElement = this.shadowRoot?.querySelector(`#message-${messageId}`);
|
|
29
|
-
messageElement?.scrollIntoView();
|
|
30
|
-
}
|
|
31
|
-
updated() {
|
|
32
|
-
if (!this._chatState?.options?.disableAutoScroll) {
|
|
33
|
-
this.scrollToBottom();
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
firstUpdated() {
|
|
37
|
-
if (!this._chatState?.options?.disableAutoScroll) {
|
|
38
|
-
this.scrollToBottom();
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
*renderLoadingTemplate() {
|
|
42
|
-
yield html `${this._chatState?.options?.templates?.typingIndicatorTemplate
|
|
43
|
-
? this._chatState.options.templates.typingIndicatorTemplate
|
|
44
|
-
: html `<div part="typing-indicator">
|
|
45
|
-
<div part="typing-dot"></div>
|
|
46
|
-
<div part="typing-dot"></div>
|
|
47
|
-
<div part="typing-dot"></div>
|
|
48
|
-
<div part="typing-dot"></div>
|
|
49
|
-
</div>`}`;
|
|
50
|
-
}
|
|
51
|
-
render() {
|
|
52
|
-
const messages = this._chatState?.messages ?? [];
|
|
53
|
-
return html `
|
|
54
|
-
<div
|
|
55
|
-
part="message-container"
|
|
56
|
-
role="group"
|
|
57
|
-
aria-label="Message list"
|
|
58
|
-
tabindex="0"
|
|
59
|
-
></div>
|
|
60
|
-
<div part="message-list">
|
|
61
|
-
${repeat(messages, (message) => message.id, (message) => {
|
|
62
|
-
const messageId = `message-${message.id}`;
|
|
63
|
-
return html `
|
|
64
|
-
<igc-chat-message
|
|
65
|
-
id=${messageId}
|
|
66
|
-
role="option"
|
|
67
|
-
part="message-item"
|
|
68
|
-
.message=${message}
|
|
69
|
-
exportparts="message-container, message-text, message-attachments, message-actions,
|
|
70
|
-
attachments-container, attachment, attachment-header, attachment-content, attachment-icon, file-name, actions: attachment-actions"
|
|
71
|
-
>
|
|
72
|
-
</igc-chat-message>
|
|
73
|
-
`;
|
|
74
|
-
})}
|
|
75
|
-
${this._chatState?.options?.isTyping
|
|
76
|
-
? this.renderLoadingTemplate()
|
|
77
|
-
: nothing}
|
|
78
|
-
</div>
|
|
79
|
-
</div>
|
|
80
|
-
`;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
IgcChatMessageListComponent.tagName = 'igc-chat-message-list';
|
|
84
|
-
IgcChatMessageListComponent.styles = [styles, shared];
|
|
85
|
-
export default IgcChatMessageListComponent;
|
|
86
|
-
__decorate([
|
|
87
|
-
consume({ context: chatContext, subscribe: true })
|
|
88
|
-
], IgcChatMessageListComponent.prototype, "_chatState", void 0);
|
|
89
|
-
//# sourceMappingURL=chat-message-list.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chat-message-list.js","sourceRoot":"","sources":["../../../src/components/chat/chat-message-list.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,uBAAuB,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3D,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,4CAA4C,CAAC;AAkB9E,MAAqB,2BAA4B,SAAQ,UAAU;IAY1D,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,2BAA2B,EAAE,uBAAuB,CAAC,CAAC;IAC1E,CAAC;IAaO,cAAc;QACpB,qBAAqB,CAAC,GAAG,EAAE;YACzB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,IAAmB,CAAC;YACvD,IAAI,SAAS,EAAE,CAAC;gBACd,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC;YAC/C,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAOM,eAAe,CAAC,SAAiB;QACtC,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CACnD,YAAY,SAAS,EAAE,CACxB,CAAC;QACF,cAAc,EAAE,cAAc,EAAE,CAAC;IACnC,CAAC;IAMkB,OAAO;QACxB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;YACjD,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAMkB,YAAY;QAC7B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;YACjD,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAMS,CAAC,qBAAqB;QAC9B,MAAM,IAAI,CAAA,GAAG,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,uBAAuB;YACvE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,uBAAuB;YAC3D,CAAC,CAAC,IAAI,CAAA;;;;;eAKG,EAAE,CAAC;IAChB,CAAC;IAOkB,MAAM;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,IAAI,EAAE,CAAC;QAEjD,OAAO,IAAI,CAAA;;;;;;;;aAQF,MAAM,CACN,QAAQ,EACR,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,EACvB,CAAC,OAAO,EAAE,EAAE;YACV,MAAM,SAAS,GAAG,WAAW,OAAO,CAAC,EAAE,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAA;;wBAEF,SAAS;;;8BAGH,OAAO;;;;;gBAKrB,CAAC;QACJ,CAAC,CACF;YAEA,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ;YAChC,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE;YAC9B,CAAC,CAAC,OACN;;;KAGL,CAAC;IACJ,CAAC;;AA3HsB,mCAAO,GAAG,uBAAuB,CAAC;AAGlC,kCAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;eAL9B,2BAA2B;AAqBtC;IADP,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;+DACpB","sourcesContent":["import { consume } from '@lit/context';\nimport { html, LitElement, nothing } from 'lit';\nimport { repeat } from 'lit/directives/repeat.js';\nimport { chatContext } from '../common/context.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport IgcChatMessageComponent from './chat-message.js';\nimport type { ChatState } from './chat-state.js';\nimport { styles } from './themes/message-list.base.css.js';\nimport { styles as shared } from './themes/shared/message-list.common.css.js';\n\n/**\n * A chat message list component that displays a list of chat messages grouped by date.\n *\n * @element igc-chat-message-list\n *\n * This component:\n * - Renders messages using the `<igc-chat-message>` component.\n * - Manages focus highlighting on active messages.\n * - Automatically scrolls to the bottom when new messages arrive, unless auto-scroll is disabled.\n * - Displays a typing indicator if the chat state option `isTyping` is true.\n *\n * Accessibility:\n * - Uses ARIA roles and properties for grouping and active descendant management.\n * - Message items have role=\"option\" for assistive technologies.\n *\n */\nexport default class IgcChatMessageListComponent extends LitElement {\n /** Tag name of the custom element. */\n public static readonly tagName = 'igc-chat-message-list';\n\n /** Styles applied to the component */\n public static override styles = [styles, shared];\n\n /**\n * Registers this component and its dependencies.\n * Used internally for component setup.\n */\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcChatMessageListComponent, IgcChatMessageComponent);\n }\n\n /**\n * Consumed chat state context providing messages, options, and user data.\n * @private\n */\n @consume({ context: chatContext, subscribe: true })\n private _chatState?: ChatState;\n\n /**\n * Scrolls the container to the bottom, typically called after new messages are rendered.\n * @private\n */\n private scrollToBottom() {\n requestAnimationFrame(() => {\n const container = this.shadowRoot?.host as HTMLElement;\n if (container) {\n container.scrollTop = container.scrollHeight;\n }\n });\n }\n\n /**\n * Scrolls the view to a specific message by id.\n * @param messageId - The id of the message to scroll to\n * @private\n */\n public scrollToMessage(messageId: string) {\n const messageElement = this.shadowRoot?.querySelector(\n `#message-${messageId}`\n );\n messageElement?.scrollIntoView();\n }\n\n /**\n * Lifecycle: called when the component updates.\n * Scrolls to bottom unless auto-scroll is disabled.\n */\n protected override updated() {\n if (!this._chatState?.options?.disableAutoScroll) {\n this.scrollToBottom();\n }\n }\n\n /**\n * Lifecycle: called after first render.\n * Scrolls to bottom unless auto-scroll is disabled.\n */\n protected override firstUpdated() {\n if (!this._chatState?.options?.disableAutoScroll) {\n this.scrollToBottom();\n }\n }\n\n /**\n * Renders the typing indicator template.\n * @protected\n */\n protected *renderLoadingTemplate() {\n yield html`${this._chatState?.options?.templates?.typingIndicatorTemplate\n ? this._chatState.options.templates.typingIndicatorTemplate\n : html`<div part=\"typing-indicator\">\n <div part=\"typing-dot\"></div>\n <div part=\"typing-dot\"></div>\n <div part=\"typing-dot\"></div>\n <div part=\"typing-dot\"></div>\n </div>`}`;\n }\n\n /**\n * Main render method.\n * Groups messages by date and renders each message.\n * Shows the typing indicator if applicable.\n */\n protected override render() {\n const messages = this._chatState?.messages ?? [];\n\n return html`\n <div\n part=\"message-container\"\n role=\"group\"\n aria-label=\"Message list\"\n tabindex=\"0\"\n ></div>\n <div part=\"message-list\">\n ${repeat(\n messages,\n (message) => message.id,\n (message) => {\n const messageId = `message-${message.id}`;\n return html`\n <igc-chat-message\n id=${messageId}\n role=\"option\"\n part=\"message-item\"\n .message=${message}\n exportparts=\"message-container, message-text, message-attachments, message-actions,\n attachments-container, attachment, attachment-header, attachment-content, attachment-icon, file-name, actions: attachment-actions\"\n >\n </igc-chat-message>\n `;\n }\n )}\n ${\n this._chatState?.options?.isTyping\n ? this.renderLoadingTemplate()\n : nothing\n }\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-chat-message-list': IgcChatMessageListComponent;\n }\n}\n"]}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { ChatMessageRenderer, IgcChatTemplates, IgcMessage } from './types.js';
|
|
2
|
-
export declare class DefaultChatRenderer implements ChatMessageRenderer {
|
|
3
|
-
private baseTextRenderer;
|
|
4
|
-
private defaultTemplates;
|
|
5
|
-
private cache;
|
|
6
|
-
templates: Required<IgcChatTemplates>;
|
|
7
|
-
constructor(baseTextRenderer: ChatMessageRenderer, // e.g. PlainTextRenderer, MarkdownMessageRenderer
|
|
8
|
-
defaultTemplates: Required<IgcChatTemplates>, userTemplates?: Partial<IgcChatTemplates>);
|
|
9
|
-
protected renderText(message: IgcMessage): Promise<unknown>;
|
|
10
|
-
render(message: IgcMessage, ctx?: {
|
|
11
|
-
templates?: Partial<IgcChatTemplates>;
|
|
12
|
-
}): Promise<unknown>;
|
|
13
|
-
clearCache(): void;
|
|
14
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
export class DefaultChatRenderer {
|
|
2
|
-
constructor(baseTextRenderer, defaultTemplates, userTemplates) {
|
|
3
|
-
this.baseTextRenderer = baseTextRenderer;
|
|
4
|
-
this.defaultTemplates = defaultTemplates;
|
|
5
|
-
this.cache = new Map();
|
|
6
|
-
this.templates = {
|
|
7
|
-
...this.defaultTemplates,
|
|
8
|
-
...(userTemplates ?? {}),
|
|
9
|
-
};
|
|
10
|
-
}
|
|
11
|
-
async renderText(message) {
|
|
12
|
-
const rendered = await this.baseTextRenderer.render(message);
|
|
13
|
-
return rendered;
|
|
14
|
-
}
|
|
15
|
-
async render(message, ctx) {
|
|
16
|
-
const templates = { ...ctx?.templates, ...this.templates };
|
|
17
|
-
if (!message.id) {
|
|
18
|
-
const textContent = await this.baseTextRenderer.render(message);
|
|
19
|
-
return templates.messageTemplate(message, { textContent, templates });
|
|
20
|
-
}
|
|
21
|
-
if (this.cache.has(message.id)) {
|
|
22
|
-
const cached = this.cache.get(message.id);
|
|
23
|
-
if (cached && cached.text === message.text) {
|
|
24
|
-
return cached.rendered;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
const textContent = await this.baseTextRenderer.render(message);
|
|
28
|
-
const rendered = templates.messageTemplate(message, {
|
|
29
|
-
textContent,
|
|
30
|
-
templates,
|
|
31
|
-
});
|
|
32
|
-
this.cache.set(message.id, { text: message.text, rendered });
|
|
33
|
-
return rendered;
|
|
34
|
-
}
|
|
35
|
-
clearCache() {
|
|
36
|
-
this.cache.clear();
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=chat-renderer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chat-renderer.js","sourceRoot":"","sources":["../../../src/components/chat/chat-renderer.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,mBAAmB;IAI9B,YACU,gBAAqC,EACrC,gBAA4C,EACpD,aAAyC;QAFjC,qBAAgB,GAAhB,gBAAgB,CAAqB;QACrC,qBAAgB,GAAhB,gBAAgB,CAA4B;QAL9C,UAAK,GAAG,IAAI,GAAG,EAA+C,CAAC;QAQrE,IAAI,CAAC,SAAS,GAAG;YACf,GAAG,IAAI,CAAC,gBAAgB;YACxB,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC;SACzB,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,UAAU,CAAC,OAAmB;QAC5C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7D,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,MAAM,CACjB,OAAmB,EACnB,GAA+C;QAE/C,MAAM,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC3D,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;YAEhB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAChE,OAAO,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC1C,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC;gBAC3C,OAAO,MAAM,CAAC,QAAQ,CAAC;YACzB,CAAC;QACH,CAAC;QAGD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAG,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE;YAClD,WAAW;YACX,SAAS;SACV,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAE7D,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,UAAU;QACf,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF","sourcesContent":["import type {\n ChatMessageRenderer,\n IgcChatTemplates,\n IgcMessage,\n} from './types.js';\n\nexport class DefaultChatRenderer implements ChatMessageRenderer {\n private cache = new Map<string, { text: string; rendered: unknown }>();\n public templates: Required<IgcChatTemplates>;\n\n constructor(\n private baseTextRenderer: ChatMessageRenderer, // e.g. PlainTextRenderer, MarkdownMessageRenderer\n private defaultTemplates: Required<IgcChatTemplates>,\n userTemplates?: Partial<IgcChatTemplates>\n ) {\n this.templates = {\n ...this.defaultTemplates,\n ...(userTemplates ?? {}),\n };\n }\n\n protected async renderText(message: IgcMessage) {\n const rendered = await this.baseTextRenderer.render(message);\n return rendered;\n }\n\n public async render(\n message: IgcMessage,\n ctx?: { templates?: Partial<IgcChatTemplates> }\n ): Promise<unknown> {\n const templates = { ...ctx?.templates, ...this.templates };\n if (!message.id) {\n // No caching for messages without an ID\n const textContent = await this.baseTextRenderer.render(message);\n return templates.messageTemplate(message, { textContent, templates });\n }\n\n if (this.cache.has(message.id)) {\n const cached = this.cache.get(message.id);\n if (cached && cached.text === message.text) {\n return cached.rendered;\n }\n }\n\n // Cache miss or message text changed\n const textContent = await this.baseTextRenderer.render(message);\n const rendered = templates.messageTemplate(message, {\n textContent,\n templates,\n });\n this.cache.set(message.id, { text: message.text, rendered });\n\n return rendered;\n }\n\n public clearCache() {\n this.cache.clear();\n }\n}\n"]}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { type TemplateResult } from 'lit';
|
|
2
|
-
import type { ChatMessageRenderer, IgcMessage } from './types.js';
|
|
3
|
-
/**
|
|
4
|
-
* Options to configure the MarkdownMessageRenderer.
|
|
5
|
-
*/
|
|
6
|
-
export interface MarkdownRendererOptions {
|
|
7
|
-
/**
|
|
8
|
-
* If true, disables syntax highlighting entirely.
|
|
9
|
-
*/
|
|
10
|
-
noHighlighter?: boolean;
|
|
11
|
-
/**
|
|
12
|
-
* A custom syntax highlighter compatible with Shiki's `codeToHtml()` API.
|
|
13
|
-
*/
|
|
14
|
-
highlighter?: any;
|
|
15
|
-
/**
|
|
16
|
-
* List of programming languages to support in syntax highlighting.
|
|
17
|
-
*/
|
|
18
|
-
languages?: string[];
|
|
19
|
-
/**
|
|
20
|
-
* The theme used by the syntax highlighter (e.g., 'github-light').
|
|
21
|
-
*/
|
|
22
|
-
theme?: string;
|
|
23
|
-
/**
|
|
24
|
-
* A custom HTML sanitization function. Defaults to DOMPurify.sanitize.
|
|
25
|
-
*/
|
|
26
|
-
sanitizer?: (html: string) => string;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* A renderer that converts markdown chat messages to HTML using `marked`,
|
|
30
|
-
* with optional syntax highlighting powered by `shiki` or a custom highlighter.
|
|
31
|
-
*
|
|
32
|
-
* @implements {ChatMessageRenderer}
|
|
33
|
-
*/
|
|
34
|
-
export declare class MarkdownMessageRenderer implements ChatMessageRenderer {
|
|
35
|
-
private opts;
|
|
36
|
-
private highlighter?;
|
|
37
|
-
private theme;
|
|
38
|
-
private langs;
|
|
39
|
-
private _marked;
|
|
40
|
-
private initialized;
|
|
41
|
-
private _sanitizer;
|
|
42
|
-
/**
|
|
43
|
-
* Creates a new MarkdownMessageRenderer.
|
|
44
|
-
*
|
|
45
|
-
* @param {MarkdownRendererOptions} [opts={}] - Configuration options.
|
|
46
|
-
*/
|
|
47
|
-
constructor(opts?: MarkdownRendererOptions);
|
|
48
|
-
/**
|
|
49
|
-
* Initializes the `marked` instance with custom renderer options.
|
|
50
|
-
* Currently modifies link rendering to open in a new tab with safe attributes.
|
|
51
|
-
*
|
|
52
|
-
* @private
|
|
53
|
-
*/
|
|
54
|
-
private initMarked;
|
|
55
|
-
private initSanitizer;
|
|
56
|
-
/**
|
|
57
|
-
* Performs async initialization for syntax highlighting.
|
|
58
|
-
* Loads Shiki and configures the `marked` instance with `marked-shiki`.
|
|
59
|
-
* This is called lazily during rendering unless pre-called explicitly.
|
|
60
|
-
*
|
|
61
|
-
* @async
|
|
62
|
-
* @returns {Promise<void>} A promise that resolves once initialization is complete.
|
|
63
|
-
*/
|
|
64
|
-
init(): Promise<void>;
|
|
65
|
-
/**
|
|
66
|
-
* Renders the given chat message as markdown, with optional syntax highlighting.
|
|
67
|
-
*
|
|
68
|
-
* @param {IgcMessage} message - The message to render.
|
|
69
|
-
* @returns {Promise<TemplateResult>} A lit template containing the rendered markdown content.
|
|
70
|
-
*/
|
|
71
|
-
render(message: IgcMessage): Promise<TemplateResult>;
|
|
72
|
-
}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import DOMPurify from 'dompurify';
|
|
2
|
-
import { html } from 'lit';
|
|
3
|
-
import { Marked, Renderer } from 'marked';
|
|
4
|
-
export class MarkdownMessageRenderer {
|
|
5
|
-
constructor(opts = {}) {
|
|
6
|
-
this.opts = opts;
|
|
7
|
-
this.initialized = false;
|
|
8
|
-
this.theme = opts.theme ?? 'github-light';
|
|
9
|
-
this.langs = opts.languages ?? ['javascript', 'typescript', 'html', 'css'];
|
|
10
|
-
this.highlighter = opts.highlighter;
|
|
11
|
-
this._marked = new Marked();
|
|
12
|
-
this.initMarked();
|
|
13
|
-
this._sanitizer = this.initSanitizer();
|
|
14
|
-
}
|
|
15
|
-
initMarked() {
|
|
16
|
-
const renderer = new Renderer();
|
|
17
|
-
renderer.link = (href, title, text) => {
|
|
18
|
-
return `<a href="${href}" target="_blank" rel="noopener noreferrer" ${title ? `title="${title}"` : ''}>${text}</a>`;
|
|
19
|
-
};
|
|
20
|
-
this._marked.setOptions({
|
|
21
|
-
gfm: true,
|
|
22
|
-
breaks: true,
|
|
23
|
-
renderer,
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
initSanitizer() {
|
|
27
|
-
return this.opts?.sanitizer ?? DOMPurify.sanitize;
|
|
28
|
-
}
|
|
29
|
-
async init() {
|
|
30
|
-
if (this.highlighter || this.opts.noHighlighter) {
|
|
31
|
-
this.initialized = true;
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
const shiki = await import('shiki');
|
|
35
|
-
this.highlighter = await shiki.getSingletonHighlighter({
|
|
36
|
-
themes: [this.theme],
|
|
37
|
-
langs: this.langs,
|
|
38
|
-
});
|
|
39
|
-
const markedShiki = await import('marked-shiki');
|
|
40
|
-
this._marked.use(markedShiki.default({
|
|
41
|
-
highlight: (code, lang) => {
|
|
42
|
-
try {
|
|
43
|
-
const safeLang = lang && this.highlighter.getLoadedLanguages?.().includes(lang)
|
|
44
|
-
? lang
|
|
45
|
-
: 'text';
|
|
46
|
-
return (this.highlighter?.codeToHtml(code, {
|
|
47
|
-
lang: safeLang,
|
|
48
|
-
themes: { light: this.theme },
|
|
49
|
-
}) ?? code);
|
|
50
|
-
}
|
|
51
|
-
catch (_err) {
|
|
52
|
-
return `<pre><code>${DOMPurify.sanitize(code)}</code></pre>`;
|
|
53
|
-
}
|
|
54
|
-
},
|
|
55
|
-
}));
|
|
56
|
-
this.initialized = true;
|
|
57
|
-
}
|
|
58
|
-
async render(message) {
|
|
59
|
-
if (!this.initialized) {
|
|
60
|
-
await this.init();
|
|
61
|
-
}
|
|
62
|
-
if (!message.text)
|
|
63
|
-
return html ``;
|
|
64
|
-
const rendered = await this._marked?.parse(message.text);
|
|
65
|
-
const cleanHtml = this._sanitizer(rendered);
|
|
66
|
-
const template = document.createElement('template');
|
|
67
|
-
template.innerHTML = cleanHtml ?? message.text;
|
|
68
|
-
return html `${template.content}`;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=markdown-renderer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-renderer.js","sourceRoot":"","sources":["../../../src/components/chat/markdown-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,IAAI,EAAuB,MAAM,KAAK,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAuC1C,MAAM,OAAO,uBAAuB;IAalC,YAAoB,OAAgC,EAAE;QAAlC,SAAI,GAAJ,IAAI,CAA8B;QAR9C,gBAAW,GAAG,KAAK,CAAC;QAS1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,cAAc,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC3E,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAEpC,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,EAAE,CAAC;QAC5B,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;IACzC,CAAC;IAQO,UAAU;QAChB,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAGhC,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACpC,OAAO,YAAY,IAAI,+CAA+C,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,MAAM,CAAC;QACtH,CAAC,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;YACtB,GAAG,EAAE,IAAI;YACT,MAAM,EAAE,IAAI;YACZ,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAEO,aAAa;QACnB,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAC;IACpD,CAAC;IAUD,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YAChD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,MAAM,KAAK,CAAC,uBAAuB,CAAC;YACrD,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YACpB,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,CAAC,GAAG,CACd,WAAW,CAAC,OAAO,CAAC;YAClB,SAAS,EAAE,CAAC,IAAS,EAAE,IAAY,EAAE,EAAE;gBACrC,IAAI,CAAC;oBACH,MAAM,QAAQ,GACZ,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;wBAC5D,CAAC,CAAC,IAAI;wBACN,CAAC,CAAC,MAAM,CAAC;oBAEb,OAAO,CACL,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,IAAI,EAAE;wBACjC,IAAI,EAAE,QAAQ;wBACd,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;qBAC9B,CAAC,IAAI,IAAI,CACX,CAAC;gBACJ,CAAC;gBAAC,OAAO,IAAI,EAAE,CAAC;oBAEd,OAAO,cAAc,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC;gBAC/D,CAAC;YACH,CAAC;SACF,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAQD,KAAK,CAAC,MAAM,CAAC,OAAmB;QAC9B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA,EAAE,CAAC;QAEjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACpD,QAAQ,CAAC,SAAS,GAAG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;QAE/C,OAAO,IAAI,CAAA,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;CACF","sourcesContent":["import DOMPurify from 'dompurify';\nimport { html, type TemplateResult } from 'lit';\nimport { Marked, Renderer } from 'marked';\nimport type { ChatMessageRenderer, IgcMessage } from './types.js';\n\n/**\n * Options to configure the MarkdownMessageRenderer.\n */\nexport interface MarkdownRendererOptions {\n /**\n * If true, disables syntax highlighting entirely.\n */\n noHighlighter?: boolean;\n\n /**\n * A custom syntax highlighter compatible with Shiki's `codeToHtml()` API.\n */\n highlighter?: any;\n\n /**\n * List of programming languages to support in syntax highlighting.\n */\n languages?: string[];\n\n /**\n * The theme used by the syntax highlighter (e.g., 'github-light').\n */\n theme?: string;\n\n /**\n * A custom HTML sanitization function. Defaults to DOMPurify.sanitize.\n */\n sanitizer?: (html: string) => string;\n}\n\n/**\n * A renderer that converts markdown chat messages to HTML using `marked`,\n * with optional syntax highlighting powered by `shiki` or a custom highlighter.\n *\n * @implements {ChatMessageRenderer}\n */\nexport class MarkdownMessageRenderer implements ChatMessageRenderer {\n private highlighter?: any;\n private theme: string;\n private langs: string[];\n private _marked: Marked;\n private initialized = false;\n private _sanitizer: (html: string) => string;\n\n /**\n * Creates a new MarkdownMessageRenderer.\n *\n * @param {MarkdownRendererOptions} [opts={}] - Configuration options.\n */\n constructor(private opts: MarkdownRendererOptions = {}) {\n this.theme = opts.theme ?? 'github-light';\n this.langs = opts.languages ?? ['javascript', 'typescript', 'html', 'css'];\n this.highlighter = opts.highlighter;\n\n this._marked = new Marked();\n this.initMarked();\n this._sanitizer = this.initSanitizer();\n }\n\n /**\n * Initializes the `marked` instance with custom renderer options.\n * Currently modifies link rendering to open in a new tab with safe attributes.\n *\n * @private\n */\n private initMarked() {\n const renderer = new Renderer();\n\n // Customize link rendering\n renderer.link = (href, title, text) => {\n return `<a href=\"${href}\" target=\"_blank\" rel=\"noopener noreferrer\" ${title ? `title=\"${title}\"` : ''}>${text}</a>`;\n };\n\n this._marked.setOptions({\n gfm: true,\n breaks: true,\n renderer,\n });\n }\n\n private initSanitizer() {\n return this.opts?.sanitizer ?? DOMPurify.sanitize;\n }\n\n /**\n * Performs async initialization for syntax highlighting.\n * Loads Shiki and configures the `marked` instance with `marked-shiki`.\n * This is called lazily during rendering unless pre-called explicitly.\n *\n * @async\n * @returns {Promise<void>} A promise that resolves once initialization is complete.\n */\n async init(): Promise<void> {\n if (this.highlighter || this.opts.noHighlighter) {\n this.initialized = true;\n return;\n }\n\n const shiki = await import('shiki');\n this.highlighter = await shiki.getSingletonHighlighter({\n themes: [this.theme],\n langs: this.langs,\n });\n\n const markedShiki = await import('marked-shiki');\n this._marked.use(\n markedShiki.default({\n highlight: (code: any, lang: string) => {\n try {\n const safeLang =\n lang && this.highlighter.getLoadedLanguages?.().includes(lang)\n ? lang\n : 'text';\n\n return (\n this.highlighter?.codeToHtml(code, {\n lang: safeLang,\n themes: { light: this.theme },\n }) ?? code\n );\n } catch (_err) {\n // if Shiki still throws for some reason, just return escaped code\n return `<pre><code>${DOMPurify.sanitize(code)}</code></pre>`;\n }\n },\n })\n );\n\n this.initialized = true;\n }\n\n /**\n * Renders the given chat message as markdown, with optional syntax highlighting.\n *\n * @param {IgcMessage} message - The message to render.\n * @returns {Promise<TemplateResult>} A lit template containing the rendered markdown content.\n */\n async render(message: IgcMessage): Promise<TemplateResult> {\n if (!this.initialized) {\n await this.init();\n }\n\n if (!message.text) return html``;\n\n const rendered = await this._marked?.parse(message.text);\n const cleanHtml = this._sanitizer(rendered);\n const template = document.createElement('template');\n template.innerHTML = cleanHtml ?? message.text;\n\n return html`${template.content}`;\n }\n}\n"]}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { ChatMessageRenderer, IgcMessage } from './types.js';
|
|
2
|
-
/**
|
|
3
|
-
* A simple renderer that outputs plain text messages without any formatting or parsing.
|
|
4
|
-
* The message content is wrapped in a <pre> tag to preserve whitespace and formatting.
|
|
5
|
-
*
|
|
6
|
-
* @implements {ChatMessageRenderer}
|
|
7
|
-
*/
|
|
8
|
-
export declare class PlainTextRenderer implements ChatMessageRenderer {
|
|
9
|
-
/**
|
|
10
|
-
* Renders the given message as plain text.
|
|
11
|
-
* @param {IgcMessage} message - The chat message to render.
|
|
12
|
-
* @returns {TemplateResult} A lit-html template containing the plain text wrapped in a <pre> element.
|
|
13
|
-
*/
|
|
14
|
-
render(message: IgcMessage): unknown;
|
|
15
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plain-text-renderer.js","sourceRoot":"","sources":["../../../src/components/chat/plain-text-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAS3B,MAAM,OAAO,iBAAiB;IAM5B,MAAM,CAAC,OAAmB;QACxB,OAAO,IAAI,CAAA,0BAA0B,OAAO,CAAC,IAAI,QAAQ,CAAC;IAC5D,CAAC;CACF","sourcesContent":["import { html } from 'lit';\nimport type { ChatMessageRenderer, IgcMessage } from './types.js';\n\n/**\n * A simple renderer that outputs plain text messages without any formatting or parsing.\n * The message content is wrapped in a <pre> tag to preserve whitespace and formatting.\n *\n * @implements {ChatMessageRenderer}\n */\nexport class PlainTextRenderer implements ChatMessageRenderer {\n /**\n * Renders the given message as plain text.\n * @param {IgcMessage} message - The chat message to render.\n * @returns {TemplateResult} A lit-html template containing the plain text wrapped in a <pre> element.\n */\n render(message: IgcMessage): unknown {\n return html`<pre part=\"plain-text\">${message.text}</pre>`;\n }\n}\n"]}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { css } from 'lit';
|
|
2
|
-
export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host{display:block;width:100%;max-width:49.5rem;padding-inline:1rem;padding-block:1rem 1.5rem}[part=message-list]{display:flex;flex-direction:column;gap:1.5rem;width:100%}[part=typing-indicator]{display:flex;align-items:center;gap:.125rem}[part=typing-dot]{display:flex;align-items:center;justify-content:center;width:.5rem;aspect-ratio:1}[part=typing-dot]::after{content:"";display:block;animation:blink 1.2s ease-in-out infinite;animation-fill-mode:both;width:.375rem;aspect-ratio:1;border-radius:50%}[part=typing-dot]:nth-child(2)::after{animation-delay:.2s;width:.25rem}[part=typing-dot]:nth-child(3)::after{animation-delay:.4s}[part=typing-dot]:nth-child(4)::after{animation-delay:.6s;width:.125rem}@keyframes blink{0%,100%{transform:scale(0.9)}25%,75%{transform:scale(1.05)}50%{transform:scale(1.1)}}`;
|
|
3
|
-
//# sourceMappingURL=message-list.base.css.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"message-list.base.css.js","sourceRoot":"","sources":["../../../../src/components/chat/themes/message-list.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,ivDAAivD,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host{display:block;width:100%;max-width:49.5rem;padding-inline:1rem;padding-block:1rem 1.5rem}[part=message-list]{display:flex;flex-direction:column;gap:1.5rem;width:100%}[part=typing-indicator]{display:flex;align-items:center;gap:.125rem}[part=typing-dot]{display:flex;align-items:center;justify-content:center;width:.5rem;aspect-ratio:1}[part=typing-dot]::after{content:\"\";display:block;animation:blink 1.2s ease-in-out infinite;animation-fill-mode:both;width:.375rem;aspect-ratio:1;border-radius:50%}[part=typing-dot]:nth-child(2)::after{animation-delay:.2s;width:.25rem}[part=typing-dot]:nth-child(3)::after{animation-delay:.4s}[part=typing-dot]:nth-child(4)::after{animation-delay:.6s;width:.125rem}@keyframes blink{0%,100%{transform:scale(0.9)}25%,75%{transform:scale(1.05)}50%{transform:scale(1.1)}}`;\n"]}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { css } from 'lit';
|
|
2
|
-
export const styles = css `[part=attachment-header],[part=attachment-content],[part="attachment-content sent"]{border:.0625rem solid var(--image-border)}[part=attachment-header]{background:var(--image-background);border-block-end:none}[part~=attachment-content]{background:#fff}[part=attachment-content]{border-block-start:none}`;
|
|
3
|
-
//# sourceMappingURL=message-attachments.common.css.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"message-attachments.common.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/shared/message-attachments.common.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,+SAA+S,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`[part=attachment-header],[part=attachment-content],[part=\"attachment-content sent\"]{border:.0625rem solid var(--image-border)}[part=attachment-header]{background:var(--image-background);border-block-end:none}[part~=attachment-content]{background:#fff}[part=attachment-content]{border-block-start:none}`;\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"message-list.common.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/shared/message-list.common.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,sEAAsE,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`[part=typing-dot]::after{background:var(--progress-indicator-color)}`;\n"]}
|
|
File without changes
|
|
File without changes
|