igniteui-webcomponents 7.1.1 → 7.1.2

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.
Files changed (192) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +13 -11
  3. package/animations/easings.d.ts +1 -1
  4. package/animations/easings.js +1 -1
  5. package/animations/easings.js.map +1 -1
  6. package/components/button-group/button-group.js +2 -2
  7. package/components/button-group/button-group.js.map +1 -1
  8. package/components/button-group/themes/dark/button-group.bootstrap.css.js +1 -1
  9. package/components/button-group/themes/dark/button-group.bootstrap.css.js.map +1 -1
  10. package/components/button-group/themes/dark/button-group.fluent.css.js +1 -1
  11. package/components/button-group/themes/dark/button-group.fluent.css.js.map +1 -1
  12. package/components/button-group/themes/dark/button-group.indigo.css.js +1 -1
  13. package/components/button-group/themes/dark/button-group.indigo.css.js.map +1 -1
  14. package/components/button-group/themes/dark/button-group.material.css.js +1 -1
  15. package/components/button-group/themes/dark/button-group.material.css.js.map +1 -1
  16. package/components/button-group/themes/dark/button-group.shared.css.js +1 -1
  17. package/components/button-group/themes/dark/button-group.shared.css.js.map +1 -1
  18. package/components/button-group/themes/light/button-group.bootstrap.css.js +1 -1
  19. package/components/button-group/themes/light/button-group.bootstrap.css.js.map +1 -1
  20. package/components/button-group/themes/light/button-group.fluent.css.js +1 -1
  21. package/components/button-group/themes/light/button-group.fluent.css.js.map +1 -1
  22. package/components/button-group/themes/light/button-group.indigo.css.js +1 -1
  23. package/components/button-group/themes/light/button-group.indigo.css.js.map +1 -1
  24. package/components/button-group/themes/light/button-group.material.css.js +1 -1
  25. package/components/button-group/themes/light/button-group.material.css.js.map +1 -1
  26. package/components/button-group/themes/light/button-group.shared.css.js +1 -1
  27. package/components/button-group/themes/light/button-group.shared.css.js.map +1 -1
  28. package/components/button-group/themes/shared/button/button.bootstrap.css.js +1 -1
  29. package/components/button-group/themes/shared/button/button.bootstrap.css.js.map +1 -1
  30. package/components/button-group/themes/shared/button/button.common.css.js +1 -1
  31. package/components/button-group/themes/shared/button/button.common.css.js.map +1 -1
  32. package/components/button-group/themes/shared/button/button.fluent.css.js +1 -1
  33. package/components/button-group/themes/shared/button/button.fluent.css.js.map +1 -1
  34. package/components/button-group/themes/shared/button/button.indigo.css.js +1 -1
  35. package/components/button-group/themes/shared/button/button.indigo.css.js.map +1 -1
  36. package/components/button-group/themes/shared/button/button.material.css.js +1 -1
  37. package/components/button-group/themes/shared/button/button.material.css.js.map +1 -1
  38. package/components/calendar/calendar.js +3 -3
  39. package/components/calendar/calendar.js.map +1 -1
  40. package/components/calendar/helpers.js +2 -2
  41. package/components/calendar/helpers.js.map +1 -1
  42. package/components/carousel/carousel.js +2 -2
  43. package/components/carousel/carousel.js.map +1 -1
  44. package/components/chat/chat-message.js +1 -0
  45. package/components/chat/chat-message.js.map +1 -1
  46. package/components/chat/themes/dark/chat.bootstrap.css.js +1 -1
  47. package/components/chat/themes/dark/chat.bootstrap.css.js.map +1 -1
  48. package/components/chat/themes/dark/chat.fluent.css.js +1 -1
  49. package/components/chat/themes/dark/chat.fluent.css.js.map +1 -1
  50. package/components/chat/themes/dark/chat.indigo.css.js +1 -1
  51. package/components/chat/themes/dark/chat.indigo.css.js.map +1 -1
  52. package/components/chat/themes/dark/chat.material.css.js +1 -1
  53. package/components/chat/themes/dark/chat.material.css.js.map +1 -1
  54. package/components/chat/themes/light/chat.bootstrap.css.js +1 -1
  55. package/components/chat/themes/light/chat.bootstrap.css.js.map +1 -1
  56. package/components/chat/themes/light/chat.fluent.css.js +1 -1
  57. package/components/chat/themes/light/chat.fluent.css.js.map +1 -1
  58. package/components/chat/themes/light/chat.indigo.css.js +1 -1
  59. package/components/chat/themes/light/chat.indigo.css.js.map +1 -1
  60. package/components/chat/themes/light/chat.material.css.js +1 -1
  61. package/components/chat/themes/light/chat.material.css.js.map +1 -1
  62. package/components/chat/themes/light/chat.shared.css.js +1 -1
  63. package/components/chat/themes/light/chat.shared.css.js.map +1 -1
  64. package/components/chat/themes/message.base.css.js +1 -1
  65. package/components/chat/themes/message.base.css.js.map +1 -1
  66. package/components/chat/themes/message.js +0 -14
  67. package/components/chat/themes/message.js.map +1 -1
  68. package/components/chat/themes/shared/chat-message/chat-message.common.css.js +1 -1
  69. package/components/chat/themes/shared/chat-message/chat-message.common.css.js.map +1 -1
  70. package/components/chat/themes/shared/chat-message/chat-message.indigo.css.js +1 -1
  71. package/components/chat/themes/shared/chat-message/chat-message.indigo.css.js.map +1 -1
  72. package/components/chip/chip.d.ts +1 -0
  73. package/components/chip/chip.js +3 -1
  74. package/components/chip/chip.js.map +1 -1
  75. package/components/chip/themes/chip.base.css.js +1 -1
  76. package/components/chip/themes/chip.base.css.js.map +1 -1
  77. package/components/chip/themes/shared/chip.common.css.js +1 -1
  78. package/components/chip/themes/shared/chip.common.css.js.map +1 -1
  79. package/components/combo/combo-header.js.map +1 -1
  80. package/components/combo/combo-item.d.ts +6 -2
  81. package/components/combo/combo-item.js +5 -4
  82. package/components/combo/combo-item.js.map +1 -1
  83. package/components/combo/combo-list.js.map +1 -1
  84. package/components/combo/combo.d.ts +92 -81
  85. package/components/combo/combo.js +327 -281
  86. package/components/combo/combo.js.map +1 -1
  87. package/components/combo/controllers/data.d.ts +50 -13
  88. package/components/combo/controllers/data.js +49 -28
  89. package/components/combo/controllers/data.js.map +1 -1
  90. package/components/combo/controllers/navigation.d.ts +19 -18
  91. package/components/combo/controllers/navigation.js +73 -90
  92. package/components/combo/controllers/navigation.js.map +1 -1
  93. package/components/combo/operations/filter.d.ts +2 -2
  94. package/components/combo/operations/filter.js.map +1 -1
  95. package/components/combo/operations/group.d.ts +2 -2
  96. package/components/combo/operations/group.js.map +1 -1
  97. package/components/common/context.d.ts +1 -1
  98. package/components/common/context.js +1 -1
  99. package/components/common/context.js.map +1 -1
  100. package/components/common/controllers/drag.js +2 -2
  101. package/components/common/controllers/drag.js.map +1 -1
  102. package/components/common/controllers/key-bindings.d.ts +100 -18
  103. package/components/common/controllers/key-bindings.js +54 -47
  104. package/components/common/controllers/key-bindings.js.map +1 -1
  105. package/components/common/controllers/root-click.js +3 -3
  106. package/components/common/controllers/root-click.js.map +1 -1
  107. package/components/common/controllers/slot.d.ts +1 -1
  108. package/components/common/controllers/slot.js.map +1 -1
  109. package/components/common/mixins/combo-box.d.ts +24 -19
  110. package/components/common/mixins/combo-box.js +26 -23
  111. package/components/common/mixins/combo-box.js.map +1 -1
  112. package/components/common/util.d.ts +40 -2
  113. package/components/common/util.js +5 -2
  114. package/components/common/util.js.map +1 -1
  115. package/components/date-picker/date-picker.d.ts +3 -3
  116. package/components/date-picker/date-picker.js +10 -10
  117. package/components/date-picker/date-picker.js.map +1 -1
  118. package/components/date-range-picker/date-range-picker.d.ts +3 -3
  119. package/components/date-range-picker/date-range-picker.js +9 -9
  120. package/components/date-range-picker/date-range-picker.js.map +1 -1
  121. package/components/date-time-input/date-time-input.js +1 -1
  122. package/components/date-time-input/date-time-input.js.map +1 -1
  123. package/components/date-time-input/datetime-mask-parser.d.ts +1 -2
  124. package/components/date-time-input/datetime-mask-parser.js +1 -2
  125. package/components/date-time-input/datetime-mask-parser.js.map +1 -1
  126. package/components/dropdown/dropdown.d.ts +2 -2
  127. package/components/dropdown/dropdown.js +6 -6
  128. package/components/dropdown/dropdown.js.map +1 -1
  129. package/components/dropdown/themes/shared/item/dropdown-item.common.css.js +1 -1
  130. package/components/dropdown/themes/shared/item/dropdown-item.common.css.js.map +1 -1
  131. package/components/dropdown/themes/shared/item/dropdown-item.indigo.css.js +1 -1
  132. package/components/dropdown/themes/shared/item/dropdown-item.indigo.css.js.map +1 -1
  133. package/components/progress/themes/circular/dark/circular.progress.indigo.css.js +1 -1
  134. package/components/progress/themes/circular/dark/circular.progress.indigo.css.js.map +1 -1
  135. package/components/progress/themes/circular/dark/circular.progress.shared.css.js +1 -1
  136. package/components/progress/themes/circular/dark/circular.progress.shared.css.js.map +1 -1
  137. package/components/progress/themes/circular/light/circular.progress.indigo.css.js +1 -1
  138. package/components/progress/themes/circular/light/circular.progress.indigo.css.js.map +1 -1
  139. package/components/progress/themes/circular/light/circular.progress.shared.css.js +1 -1
  140. package/components/progress/themes/circular/light/circular.progress.shared.css.js.map +1 -1
  141. package/components/progress/themes/circular/shared/circular.progress.common.css.js +1 -1
  142. package/components/progress/themes/circular/shared/circular.progress.common.css.js.map +1 -1
  143. package/components/progress/themes/linear/linear.progress.base.css.js +1 -1
  144. package/components/progress/themes/linear/linear.progress.base.css.js.map +1 -1
  145. package/components/radio/radio.js +1 -1
  146. package/components/radio/radio.js.map +1 -1
  147. package/components/rating/rating.d.ts +57 -28
  148. package/components/rating/rating.js +123 -120
  149. package/components/rating/rating.js.map +1 -1
  150. package/components/resize-container/resize-controller.js +2 -3
  151. package/components/resize-container/resize-controller.js.map +1 -1
  152. package/components/select/select.d.ts +3 -3
  153. package/components/select/select.js +10 -10
  154. package/components/select/select.js.map +1 -1
  155. package/components/splitter/types.d.ts +1 -1
  156. package/components/splitter/types.js.map +1 -1
  157. package/components/stepper/common/state.d.ts +1 -1
  158. package/components/stepper/common/state.js.map +1 -1
  159. package/components/stepper/stepper.js +3 -3
  160. package/components/stepper/stepper.js.map +1 -1
  161. package/components/tabs/tabs.js +3 -3
  162. package/components/tabs/tabs.js.map +1 -1
  163. package/components/tile-manager/tile.js +2 -2
  164. package/components/tile-manager/tile.js.map +1 -1
  165. package/components/tree/themes/shared/item.indigo.css.js +1 -1
  166. package/components/tree/themes/shared/item.indigo.css.js.map +1 -1
  167. package/components/tree/tree-item.js +2 -3
  168. package/components/tree/tree-item.js.map +1 -1
  169. package/custom-elements.json +1690 -966
  170. package/igniteui-webcomponents.css-data.json +1 -1
  171. package/igniteui-webcomponents.html-data.json +1 -1
  172. package/package.json +1 -1
  173. package/skills/README.md +3 -0
  174. package/skills/igniteui-wc-choose-components/SKILL.md +53 -0
  175. package/skills/igniteui-wc-generate-from-image-design/SKILL.md +228 -0
  176. package/skills/igniteui-wc-generate-from-image-design/references/component-mapping.md +130 -0
  177. package/skills/igniteui-wc-generate-from-image-design/references/gotchas.md +147 -0
  178. package/skills/igniteui-wc-integrate-with-framework/SKILL.md +22 -1
  179. package/skills/igniteui-wc-integrate-with-framework/references/angular.md +2 -0
  180. package/skills/igniteui-wc-integrate-with-framework/references/react.md +2 -0
  181. package/skills/igniteui-wc-integrate-with-framework/references/vanilla-js.md +2 -0
  182. package/skills/igniteui-wc-integrate-with-framework/references/vue.md +2 -0
  183. package/web-types.json +2 -2
  184. package/components/chat/themes/shared/chat-message/chat-message.bootstrap.css.d.ts +0 -1
  185. package/components/chat/themes/shared/chat-message/chat-message.bootstrap.css.js +0 -3
  186. package/components/chat/themes/shared/chat-message/chat-message.bootstrap.css.js.map +0 -1
  187. package/components/chat/themes/shared/chat-message/chat-message.fluent.css.d.ts +0 -1
  188. package/components/chat/themes/shared/chat-message/chat-message.fluent.css.js +0 -3
  189. package/components/chat/themes/shared/chat-message/chat-message.fluent.css.js.map +0 -1
  190. package/components/combo/controllers/selection.d.ts +0 -33
  191. package/components/combo/controllers/selection.js +0 -169
  192. package/components/combo/controllers/selection.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"carousel.js","sourceRoot":"","sources":["../../../src/components/carousel/carousel.ts"],"names":[],"mappings":"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","sourcesContent":["import { ContextProvider } from '@lit/context';\nimport {\n CarouselResourceStringsEN,\n type ICarouselResourceStrings,\n} from 'igniteui-i18n-core';\nimport { html, LitElement, nothing } from 'lit';\nimport { property, queryAll, state } from 'lit/decorators.js';\nimport { cache } from 'lit/directives/cache.js';\nimport { createRef, ref } from 'lit/directives/ref.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport IgcButtonComponent from '../button/button.js';\nimport { carouselContext } from '../common/context.js';\nimport {\n addGesturesController,\n type SwipeEvent,\n} from '../common/controllers/gestures.js';\nimport { addInternalsController } from '../common/controllers/internals.js';\nimport {\n addKeybindings,\n arrowLeft,\n arrowRight,\n endKey,\n homeKey,\n} from '../common/controllers/key-bindings.js';\nimport {\n createMutationController,\n type MutationControllerParams,\n} from '../common/controllers/mutation-observer.js';\nimport {\n addSlotController,\n type InferSlotNames,\n type SlotChangeCallbackParameters,\n setSlots,\n} from '../common/controllers/slot.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport { addI18nController } from '../common/i18n/i18n-controller.js';\nimport type { Constructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { partMap } from '../common/part-map.js';\nimport {\n addSafeEventListener,\n asNumber,\n findElementFromEventPath,\n first,\n formatString,\n isEmpty,\n isLTR,\n last,\n wrap,\n} from '../common/util.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport type {\n CarouselIndicatorsOrientation,\n HorizontalTransitionAnimation,\n} from '../types.js';\nimport IgcCarouselIndicatorComponent from './carousel-indicator.js';\nimport IgcCarouselIndicatorContainerComponent from './carousel-indicator-container.js';\nimport IgcCarouselSlideComponent from './carousel-slide.js';\nimport { styles } from './themes/carousel.base.css.js';\nimport { all } from './themes/container.js';\nimport { styles as shared } from './themes/shared/carousel.common.css.js';\n\nexport interface IgcCarouselComponentEventMap {\n igcSlideChanged: CustomEvent<number>;\n igcPlaying: CustomEvent<void>;\n igcPaused: CustomEvent<void>;\n}\n\nlet nextId = 1;\nconst Slots = setSlots('indicator', 'previous-button', 'next-button');\n\n/**\n * The `igc-carousel` presents a set of `igc-carousel-slide`s by sequentially displaying a subset of one or more slides.\n *\n * @element igc-carousel\n *\n * @slot Default slot for the carousel. Any projected `igc-carousel-slide` components should be projected here.\n * @slot previous-button - Renders content inside the previous button.\n * @slot next-button - Renders content inside the next button.\n *\n * @fires igcSlideChanged - Emitted when the current active slide is changed either by user interaction or by the interval callback.\n * @fires igcPlaying - Emitted when the carousel enters playing state by a user interaction.\n * @fires igcPaused - Emitted when the carousel enters paused state by a user interaction.\n *\n * @csspart navigation - The wrapper container of each carousel navigation button.\n * @csspart previous - The wrapper container of the carousel previous navigation button.\n * @csspart next - The wrapper container of the carousel next navigation button.\n * @csspart dot - The carousel dot indicator container.\n * @csspart active - The carousel active dot indicator container.\n * @csspart label - The label container of the carousel indicators.\n * @csspart start - The wrapping container of all carousel indicators when indicators-orientation is set to start.\n */\nexport default class IgcCarouselComponent extends EventEmitterMixin<\n IgcCarouselComponentEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static styles = [styles, shared];\n public static readonly tagName = 'igc-carousel';\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(\n IgcCarouselComponent,\n IgcCarouselIndicatorComponent,\n IgcCarouselIndicatorContainerComponent,\n IgcCarouselSlideComponent,\n IgcIconComponent,\n IgcButtonComponent\n );\n }\n\n //#region Internal state\n\n private readonly _carouselId = `igc-carousel-${nextId++}`;\n private _paused = false;\n private _lastInterval!: ReturnType<typeof setInterval> | null;\n private _hasKeyboardInteractionOnIndicators = false;\n private _hasPointerInteraction = false;\n private _hasInnerFocus = false;\n\n private _slides: IgcCarouselSlideComponent[] = [];\n private _projectedIndicators: IgcCarouselIndicatorComponent[] = [];\n\n @state()\n private _activeSlide!: IgcCarouselSlideComponent;\n\n @state()\n private _playing = false;\n\n private readonly _slots = addSlotController(this, {\n slots: Slots,\n onChange: this._handleSlotChange,\n initial: true,\n });\n\n private readonly _i18nController =\n addI18nController<ICarouselResourceStrings>(this, {\n defaultEN: CarouselResourceStringsEN,\n });\n\n private readonly _context = new ContextProvider(this, {\n context: carouselContext,\n initialValue: this,\n });\n\n private _setCarouselContext(): void {\n this._context.setValue(this, true);\n }\n\n @queryAll(IgcCarouselIndicatorComponent.tagName)\n private readonly _defaultIndicators!: NodeListOf<IgcCarouselIndicatorComponent>;\n\n private readonly _carouselSlidesContainerRef = createRef<HTMLDivElement>();\n private readonly _indicatorsContainerRef = createRef<HTMLDivElement>();\n private readonly _prevButtonRef = createRef<IgcButtonComponent>();\n private readonly _nextButtonRef = createRef<IgcButtonComponent>();\n\n private get _hasProjectedIndicators(): boolean {\n return !isEmpty(this._projectedIndicators);\n }\n\n private get _showIndicatorsLabel(): boolean {\n return this.total > this.maximumIndicatorsCount;\n }\n\n private get _nextIndex(): number {\n return wrap(0, this.total - 1, this.current + 1);\n }\n\n private get _previousIndex(): number {\n return wrap(0, this.total - 1, this.current - 1);\n }\n\n //#endregion\n\n //#region Public attributes and properties\n\n /**\n * Whether the carousel should skip rotating to the first slide after it reaches the last.\n * @attr disable-loop\n */\n @property({ type: Boolean, reflect: true, attribute: 'disable-loop' })\n public disableLoop = false;\n\n /**\n * Whether the carousel should ignore use interactions and not pause on them.\n * @attr disable-pause-on-interaction\n */\n @property({\n type: Boolean,\n reflect: true,\n attribute: 'disable-pause-on-interaction',\n })\n public disablePauseOnInteraction = false;\n\n /**\n * Whether the carousel should skip rendering of the default navigation buttons.\n * @attr hide-navigation\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-navigation' })\n public hideNavigation = false;\n\n /**\n * Whether the carousel should render the indicator controls (dots).\n * @attr hide-indicators\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-indicators' })\n public hideIndicators = false;\n\n /**\n * Whether the carousel has vertical alignment.\n * @attr vertical\n */\n @property({ type: Boolean, reflect: true })\n public vertical = false;\n\n /**\n * Sets the orientation of the indicator controls (dots).\n * @attr indicators-orientation\n */\n @property({ attribute: 'indicators-orientation' })\n public indicatorsOrientation: CarouselIndicatorsOrientation = 'end';\n\n /**\n * The format used to set the aria-label on the carousel indicators.\n * Instances of '{0}' will be replaced with the index of the corresponding slide.\n *\n * @attr indicators-label-format\n */\n @property({ attribute: 'indicators-label-format' })\n public set indicatorsLabelFormat(value: string) {\n this._indicatorsLabelFormat = value;\n }\n\n public get indicatorsLabelFormat() {\n return (\n this._indicatorsLabelFormat ??\n `${this.resourceStrings.carousel_slide} {0}`\n );\n }\n private _indicatorsLabelFormat: string | undefined;\n\n /**\n * The format used to set the aria-label on the carousel slides and the text displayed\n * when the number of indicators is greater than tha maximum indicator count.\n * Instances of '{0}' will be replaced with the index of the corresponding slide.\n * Instances of '{1}' will be replaced with the total amount of slides.\n *\n * @attr slides-label-format\n */\n @property({ attribute: 'slides-label-format' })\n public set slidesLabelFormat(value: string) {\n this._slidesLabelFormat = value;\n }\n\n public get slidesLabelFormat() {\n return (\n this._slidesLabelFormat ?? `{0} ${this.resourceStrings.carousel_of} {1}`\n );\n }\n\n private _slidesLabelFormat: string | undefined;\n\n /**\n * The duration in milliseconds between changing the active slide.\n * @attr interval\n */\n @property({ type: Number })\n public interval: number | undefined;\n\n /**\n * Controls the maximum indicator controls (dots) that can be shown. Default value is `10`.\n * @attr maximum-indicators-count\n */\n @property({ type: Number, attribute: 'maximum-indicators-count' })\n public maximumIndicatorsCount = 10;\n\n /**\n * The animation type.\n * @attr animation-type\n */\n @property({ attribute: 'animation-type' })\n public animationType: HorizontalTransitionAnimation = 'slide';\n\n /**\n * Gets/Sets the locale used for getting language, affecting resource strings.\n * @attr locale\n */\n @property()\n public set locale(value: string) {\n this._i18nController.locale = value;\n }\n\n public get locale() {\n return this._i18nController.locale;\n }\n\n /**\n * The resource strings for localization.\n * Currently only aria-label attributes are localized for the carousel.\n */\n @property({ attribute: false })\n public set resourceStrings(value: ICarouselResourceStrings) {\n this._i18nController.resourceStrings = value;\n }\n\n public get resourceStrings(): ICarouselResourceStrings {\n return this._i18nController.resourceStrings;\n }\n\n /* blazorSuppress */\n /**\n * The slides of the carousel.\n */\n public get slides(): IgcCarouselSlideComponent[] {\n return Array.from(this._slides);\n }\n\n /**\n * The total number of slides.\n */\n public get total(): number {\n return this._slides.length;\n }\n\n /**\n * The index of the current active slide.\n */\n public get current(): number {\n return Math.max(0, this._slides.indexOf(this._activeSlide));\n }\n\n /**\n * Whether the carousel is in playing state.\n */\n public get isPlaying(): boolean {\n return this._playing;\n }\n\n /**\n * Whether the carousel in in paused state.\n */\n public get isPaused(): boolean {\n return this._paused;\n }\n\n //#endregion\n\n //#region Watchers\n\n @watch('animationType')\n @watch('slidesLabelFormat')\n @watch('indicatorsLabelFormat')\n protected _contextChanged(): void {\n this._setCarouselContext();\n }\n\n @watch('interval')\n protected _intervalChange(): void {\n if (!this.isPlaying) {\n this._playing = true;\n }\n\n this._restartInterval();\n }\n\n //#endregion\n\n //#region Life-cycle hooks and observer callback\n\n constructor() {\n super();\n\n addInternalsController(this, {\n initialARIA: {\n role: 'region',\n ariaRoleDescription: 'carousel',\n },\n });\n\n addThemingController(this, all);\n\n addSafeEventListener(this, 'pointerenter', this._handlePointerInteraction);\n addSafeEventListener(this, 'pointerleave', this._handlePointerInteraction);\n addSafeEventListener(this, 'focusin', this._handleFocusInteraction);\n addSafeEventListener(this, 'focusout', this._handleFocusInteraction);\n\n addGesturesController(this, {\n ref: this._carouselSlidesContainerRef,\n touchOnly: true,\n })\n .set('swipe-left', this._handleHorizontalSwipe)\n .set('swipe-right', this._handleHorizontalSwipe)\n .set('swipe-up', this._handleVerticalSwipe)\n .set('swipe-down', this._handleVerticalSwipe);\n\n addKeybindings(this, {\n ref: this._indicatorsContainerRef,\n })\n .set(arrowLeft, this._handleArrowLeft)\n .set(arrowRight, this._handleArrowRight)\n .set(homeKey, this._handleHomeKey)\n .set(endKey, this._handleEndKey);\n\n addKeybindings(this, {\n ref: this._prevButtonRef,\n }).setActivateHandler(this._handleNavigationInteractionPrevious);\n\n addKeybindings(this, {\n ref: this._nextButtonRef,\n }).setActivateHandler(this._handleNavigationInteractionNext);\n\n createMutationController(this, {\n callback: this._observerCallback,\n filter: [IgcCarouselSlideComponent.tagName],\n config: {\n attributeFilter: ['active'],\n childList: true,\n subtree: true,\n },\n });\n }\n\n protected override async firstUpdated(): Promise<void> {\n await this.updateComplete;\n this._setCarouselContext();\n\n if (!isEmpty(this._slides)) {\n this._activateSlide(\n this._slides.findLast((slide) => slide.active) ?? first(this._slides)\n );\n }\n }\n\n private _observerCallback({\n changes: { added, attributes },\n }: MutationControllerParams<IgcCarouselSlideComponent>) {\n const activeSlides = this._slides.filter((slide) => slide.active);\n\n if (activeSlides.length <= 1) {\n return;\n }\n\n const idx = this._slides.indexOf(\n added.length ? last(added).node : last(attributes).node\n );\n\n for (const [i, slide] of this._slides.entries()) {\n if (slide.active && i !== idx) {\n slide.active = false;\n }\n }\n\n this._activateSlide(this._slides[idx]);\n }\n\n //#endregion\n\n //#region Event listeners\n\n private _handleSlotChange(\n params: SlotChangeCallbackParameters<InferSlotNames<typeof Slots>>\n ): void {\n if (params.isDefault || params.isInitial) {\n this._slides = this._slots.getAssignedElements('[default]', {\n selector: IgcCarouselSlideComponent.tagName,\n });\n }\n\n if (params.slot === 'indicator') {\n this._projectedIndicators = this._slots.getAssignedElements('indicator', {\n selector: IgcCarouselIndicatorComponent.tagName,\n });\n }\n }\n\n private _handlePointerInteraction(event: PointerEvent): void {\n this._hasPointerInteraction = event.type === 'pointerenter';\n\n if (!this._hasInnerFocus) {\n this._handlePauseOnInteraction();\n }\n }\n\n private _handleFocusInteraction(event: FocusEvent): void {\n // focusin - element that lost focus\n // focusout - element that gained focus\n const node = event.relatedTarget as Node;\n\n if (this.contains(node)) {\n return;\n }\n\n this._hasInnerFocus = event.type === 'focusin';\n\n if (!this._hasPointerInteraction) {\n this._handlePauseOnInteraction();\n }\n }\n\n private async _handleIndicatorClick(event: PointerEvent): Promise<void> {\n const indicator = findElementFromEventPath(\n IgcCarouselIndicatorComponent.tagName,\n event\n )!;\n\n const index = this._hasProjectedIndicators\n ? this._projectedIndicators.indexOf(indicator)\n : Array.from(this._defaultIndicators).indexOf(indicator);\n\n this._handleInteraction(() =>\n this.select(this._slides[index], index > this.current ? 'next' : 'prev')\n );\n }\n\n //#endregion\n\n //#region Keyboard event listeners\n\n private async _handleArrowLeft(): Promise<void> {\n this._hasKeyboardInteractionOnIndicators = true;\n this._handleInteraction(isLTR(this) ? this.prev : this.next);\n }\n\n private async _handleArrowRight(): Promise<void> {\n this._hasKeyboardInteractionOnIndicators = true;\n this._handleInteraction(isLTR(this) ? this.next : this.prev);\n }\n\n private async _handleHomeKey(): Promise<void> {\n this._hasKeyboardInteractionOnIndicators = true;\n this._handleInteraction(() =>\n this.select(isLTR(this) ? first(this._slides) : last(this._slides))\n );\n }\n\n private async _handleEndKey(): Promise<void> {\n this._hasKeyboardInteractionOnIndicators = true;\n this._handleInteraction(() =>\n this.select(isLTR(this) ? last(this._slides) : first(this._slides))\n );\n }\n\n //#endregion\n\n //#region Gestures event listeners\n\n private _handleVerticalSwipe({ data: { direction } }: SwipeEvent): void {\n if (this.vertical) {\n this._handleInteraction(direction === 'up' ? this.next : this.prev);\n }\n }\n\n private _handleHorizontalSwipe({ data: { direction } }: SwipeEvent): void {\n if (!this.vertical) {\n const callback = () => {\n if (isLTR(this)) {\n return direction === 'left' ? this.next : this.prev;\n }\n return direction === 'left' ? this.prev : this.next;\n };\n\n this._handleInteraction(callback());\n }\n }\n\n //#endregion\n\n //#region Internal API\n\n private _handleNavigationInteractionNext(): void {\n this._handleInteraction(this.next);\n }\n\n private _handleNavigationInteractionPrevious(): void {\n this._handleInteraction(this.prev);\n }\n\n private async _handleInteraction(\n callback: () => Promise<boolean>\n ): Promise<void> {\n if (this.interval) {\n this._resetInterval();\n }\n\n if (await callback.call(this)) {\n this.emitEvent('igcSlideChanged', { detail: this.current });\n }\n\n if (this.interval) {\n this._restartInterval();\n }\n }\n\n private _handlePauseOnInteraction(): void {\n if (!this.interval || this.disablePauseOnInteraction) return;\n\n if (this.isPlaying) {\n this.pause();\n this.emitEvent('igcPaused');\n } else {\n this.play();\n this.emitEvent('igcPlaying');\n }\n }\n\n private _activateSlide(slide: IgcCarouselSlideComponent): void {\n if (this._activeSlide) {\n this._activeSlide.active = false;\n }\n\n this._activeSlide = slide;\n this._activeSlide.active = true;\n\n if (this._hasKeyboardInteractionOnIndicators) {\n this._hasProjectedIndicators\n ? this._projectedIndicators[this.current].focus()\n : this._defaultIndicators[this.current].focus();\n\n this._hasKeyboardInteractionOnIndicators = false;\n }\n }\n\n private _updateProjectedIndicators(): void {\n for (const [idx, slide] of this._slides.entries()) {\n const indicator = this._projectedIndicators[idx];\n indicator.active = slide.active;\n indicator.index = idx;\n }\n\n if (this._activeSlide) {\n this.setAttribute('aria-controls', this._activeSlide.id);\n }\n }\n\n private _resetInterval(): void {\n if (this._lastInterval) {\n clearInterval(this._lastInterval);\n this._lastInterval = null;\n }\n }\n\n private _restartInterval(): void {\n this._resetInterval();\n\n if (asNumber(this.interval) > 0) {\n this._lastInterval = setInterval(() => {\n if (\n this.isPlaying &&\n this.total &&\n !(this.disableLoop && this._nextIndex === 0)\n ) {\n this.select(this.slides[this._nextIndex], 'next');\n this.emitEvent('igcSlideChanged', { detail: this.current });\n } else {\n this.pause();\n }\n }, this.interval);\n }\n }\n\n private async _animateSlides(\n nextSlide: IgcCarouselSlideComponent,\n currentSlide: IgcCarouselSlideComponent,\n dir: 'next' | 'prev'\n ): Promise<void> {\n if (dir === 'next') {\n // Animate slides in next direction\n currentSlide.previous = true;\n currentSlide.toggleAnimation('out');\n this._activateSlide(nextSlide);\n await nextSlide.toggleAnimation('in');\n currentSlide.previous = false;\n } else {\n // Animate slides in previous direction\n currentSlide.previous = true;\n currentSlide.toggleAnimation('in', 'reverse');\n this._activateSlide(nextSlide);\n await nextSlide.toggleAnimation('out', 'reverse');\n currentSlide.previous = false;\n }\n }\n\n //#endregion\n\n //#region Public API\n\n /**\n * Resumes playing of the carousel slides.\n */\n public play(): void {\n if (!this.isPlaying) {\n this._paused = false;\n this._playing = true;\n this._restartInterval();\n }\n }\n\n /**\n * Pauses the carousel rotation of slides.\n */\n public pause(): void {\n if (this.isPlaying) {\n this._playing = false;\n this._paused = true;\n this._resetInterval();\n }\n }\n\n /**\n * Switches to the next slide, runs any animations, and returns if the operation was successful.\n */\n public async next(): Promise<boolean> {\n if (this.disableLoop && this._nextIndex === 0) {\n this.pause();\n return false;\n }\n\n return await this.select(this._slides[this._nextIndex], 'next');\n }\n\n /**\n * Switches to the previous slide, runs any animations, and returns if the operation was successful.\n */\n public async prev(): Promise<boolean> {\n if (this.disableLoop && this._previousIndex === this.total - 1) {\n this.pause();\n return false;\n }\n\n return await this.select(this._slides[this._previousIndex], 'prev');\n }\n\n /* blazorSuppress */\n /**\n * Switches to the passed-in slide, runs any animations, and returns if the operation was successful.\n */\n public async select(\n slide: IgcCarouselSlideComponent,\n animationDirection?: 'next' | 'prev'\n ): Promise<boolean>;\n /**\n * Switches to slide by index, runs any animations, and returns if the operation was successful.\n */\n public async select(\n index: number,\n animationDirection?: 'next' | 'prev'\n ): Promise<boolean>;\n public async select(\n slideOrIndex: IgcCarouselSlideComponent | number,\n animationDirection?: 'next' | 'prev'\n ): Promise<boolean> {\n let index: number;\n let slide: IgcCarouselSlideComponent | undefined;\n\n if (typeof slideOrIndex === 'number') {\n index = slideOrIndex;\n slide = this._slides.at(index);\n } else {\n slide = slideOrIndex;\n index = this._slides.indexOf(slide);\n }\n\n if (index === this.current || index === -1 || !slide) {\n return false;\n }\n\n const dir = animationDirection ?? (index > this.current ? 'next' : 'prev');\n\n await this._animateSlides(slide, this._activeSlide, dir);\n return true;\n }\n\n //#endregion\n\n //#region Template renderers\n\n private _renderNavigation() {\n return html`\n <igc-button\n ${ref(this._prevButtonRef)}\n type=\"button\"\n part=\"navigation previous\"\n aria-label=${this.resourceStrings.carousel_previous_slide ??\n 'previous slide'}\n aria-controls=${this._carouselId}\n ?disabled=${this.disableLoop && this.current === 0}\n @click=${this._handleNavigationInteractionPrevious}\n >\n <slot name=\"previous-button\">\n <igc-icon\n name=\"carousel_prev\"\n collection=\"default\"\n aria-hidden=\"true\"\n ></igc-icon>\n </slot>\n </igc-button>\n\n <igc-button\n ${ref(this._nextButtonRef)}\n type=\"button\"\n part=\"navigation next\"\n aria-label=${this.resourceStrings.carousel_next_slide ?? 'next slide'}\n aria-controls=${this._carouselId}\n ?disabled=${this.disableLoop && this.current === this.total - 1}\n @click=${this._handleNavigationInteractionNext}\n >\n <slot name=\"next-button\">\n <igc-icon\n name=\"carousel_next\"\n collection=\"default\"\n aria-hidden=\"true\"\n ></igc-icon>\n </slot>\n </igc-button>\n `;\n }\n\n protected *_renderIndicators() {\n for (const [i, slide] of this._slides.entries()) {\n const forward = slide.active ? 'visible' : 'hidden';\n const backward = slide.active ? 'hidden' : 'visible';\n\n yield html`\n <igc-carousel-indicator\n exportparts=\"indicator, active, inactive\"\n .active=${slide.active}\n .index=${i}\n >\n <div\n part=\"dot\"\n style=${styleMap({ visibility: backward, zIndex: 1 })}\n ></div>\n <div\n part=\"dot active\"\n slot=\"active\"\n style=${styleMap({ visibility: forward })}\n ></div>\n </igc-carousel-indicator>\n `;\n }\n }\n\n private _renderIndicatorContainer() {\n const parts = {\n indicators: true,\n start: this.indicatorsOrientation === 'start',\n };\n\n return html`\n <igc-carousel-indicator-container>\n <div\n ${ref(this._indicatorsContainerRef)}\n role=\"tablist\"\n part=${partMap(parts)}\n >\n <slot name=\"indicator\" @click=${this._handleIndicatorClick}>\n ${cache(\n this._hasProjectedIndicators\n ? this._updateProjectedIndicators()\n : this._renderIndicators()\n )}\n </slot>\n </div>\n </igc-carousel-indicator-container>\n `;\n }\n\n private _renderLabel() {\n const parts = {\n label: true,\n indicators: true,\n start: this.indicatorsOrientation === 'start',\n };\n const value = formatString(\n this.slidesLabelFormat,\n this.current + 1,\n this.total\n );\n\n return html`\n <div part=${partMap(parts)}>\n <span>${value}</span>\n </div>\n `;\n }\n\n protected override render() {\n const hasNoIndicators = this.hideIndicators || this._showIndicatorsLabel;\n const hasLabel = !this.hideIndicators && this._showIndicatorsLabel;\n\n return html`\n <section>\n ${cache(this.hideNavigation ? nothing : this._renderNavigation())}\n ${hasNoIndicators ? nothing : this._renderIndicatorContainer()}\n ${hasLabel ? this._renderLabel() : nothing}\n <div\n ${ref(this._carouselSlidesContainerRef)}\n id=${this._carouselId}\n aria-live=${this.interval && this._playing ? 'off' : 'polite'}\n >\n <slot></slot>\n </div>\n </section>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-carousel': IgcCarouselComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"carousel.js","sourceRoot":"","sources":["../../../src/components/carousel/carousel.ts"],"names":[],"mappings":"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","sourcesContent":["import { ContextProvider } from '@lit/context';\nimport {\n CarouselResourceStringsEN,\n type ICarouselResourceStrings,\n} from 'igniteui-i18n-core';\nimport { html, LitElement, nothing } from 'lit';\nimport { property, queryAll, state } from 'lit/decorators.js';\nimport { cache } from 'lit/directives/cache.js';\nimport { createRef, ref } from 'lit/directives/ref.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport IgcButtonComponent from '../button/button.js';\nimport { carouselContext } from '../common/context.js';\nimport {\n addGesturesController,\n type SwipeEvent,\n} from '../common/controllers/gestures.js';\nimport { addInternalsController } from '../common/controllers/internals.js';\nimport {\n addKeybindings,\n arrowLeft,\n arrowRight,\n endKey,\n homeKey,\n} from '../common/controllers/key-bindings.js';\nimport {\n createMutationController,\n type MutationControllerParams,\n} from '../common/controllers/mutation-observer.js';\nimport {\n addSlotController,\n type InferSlotNames,\n type SlotChangeCallbackParameters,\n setSlots,\n} from '../common/controllers/slot.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport { addI18nController } from '../common/i18n/i18n-controller.js';\nimport type { Constructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { partMap } from '../common/part-map.js';\nimport {\n addSafeEventListener,\n asNumber,\n first,\n formatString,\n getElementFromPath,\n isEmpty,\n isLTR,\n last,\n wrap,\n} from '../common/util.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport type {\n CarouselIndicatorsOrientation,\n HorizontalTransitionAnimation,\n} from '../types.js';\nimport IgcCarouselIndicatorComponent from './carousel-indicator.js';\nimport IgcCarouselIndicatorContainerComponent from './carousel-indicator-container.js';\nimport IgcCarouselSlideComponent from './carousel-slide.js';\nimport { styles } from './themes/carousel.base.css.js';\nimport { all } from './themes/container.js';\nimport { styles as shared } from './themes/shared/carousel.common.css.js';\n\nexport interface IgcCarouselComponentEventMap {\n igcSlideChanged: CustomEvent<number>;\n igcPlaying: CustomEvent<void>;\n igcPaused: CustomEvent<void>;\n}\n\nlet nextId = 1;\nconst Slots = setSlots('indicator', 'previous-button', 'next-button');\n\n/**\n * The `igc-carousel` presents a set of `igc-carousel-slide`s by sequentially displaying a subset of one or more slides.\n *\n * @element igc-carousel\n *\n * @slot Default slot for the carousel. Any projected `igc-carousel-slide` components should be projected here.\n * @slot previous-button - Renders content inside the previous button.\n * @slot next-button - Renders content inside the next button.\n *\n * @fires igcSlideChanged - Emitted when the current active slide is changed either by user interaction or by the interval callback.\n * @fires igcPlaying - Emitted when the carousel enters playing state by a user interaction.\n * @fires igcPaused - Emitted when the carousel enters paused state by a user interaction.\n *\n * @csspart navigation - The wrapper container of each carousel navigation button.\n * @csspart previous - The wrapper container of the carousel previous navigation button.\n * @csspart next - The wrapper container of the carousel next navigation button.\n * @csspart dot - The carousel dot indicator container.\n * @csspart active - The carousel active dot indicator container.\n * @csspart label - The label container of the carousel indicators.\n * @csspart start - The wrapping container of all carousel indicators when indicators-orientation is set to start.\n */\nexport default class IgcCarouselComponent extends EventEmitterMixin<\n IgcCarouselComponentEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static styles = [styles, shared];\n public static readonly tagName = 'igc-carousel';\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(\n IgcCarouselComponent,\n IgcCarouselIndicatorComponent,\n IgcCarouselIndicatorContainerComponent,\n IgcCarouselSlideComponent,\n IgcIconComponent,\n IgcButtonComponent\n );\n }\n\n //#region Internal state\n\n private readonly _carouselId = `igc-carousel-${nextId++}`;\n private _paused = false;\n private _lastInterval!: ReturnType<typeof setInterval> | null;\n private _hasKeyboardInteractionOnIndicators = false;\n private _hasPointerInteraction = false;\n private _hasInnerFocus = false;\n\n private _slides: IgcCarouselSlideComponent[] = [];\n private _projectedIndicators: IgcCarouselIndicatorComponent[] = [];\n\n @state()\n private _activeSlide!: IgcCarouselSlideComponent;\n\n @state()\n private _playing = false;\n\n private readonly _slots = addSlotController(this, {\n slots: Slots,\n onChange: this._handleSlotChange,\n initial: true,\n });\n\n private readonly _i18nController =\n addI18nController<ICarouselResourceStrings>(this, {\n defaultEN: CarouselResourceStringsEN,\n });\n\n private readonly _context = new ContextProvider(this, {\n context: carouselContext,\n initialValue: this,\n });\n\n private _setCarouselContext(): void {\n this._context.setValue(this, true);\n }\n\n @queryAll(IgcCarouselIndicatorComponent.tagName)\n private readonly _defaultIndicators!: NodeListOf<IgcCarouselIndicatorComponent>;\n\n private readonly _carouselSlidesContainerRef = createRef<HTMLDivElement>();\n private readonly _indicatorsContainerRef = createRef<HTMLDivElement>();\n private readonly _prevButtonRef = createRef<IgcButtonComponent>();\n private readonly _nextButtonRef = createRef<IgcButtonComponent>();\n\n private get _hasProjectedIndicators(): boolean {\n return !isEmpty(this._projectedIndicators);\n }\n\n private get _showIndicatorsLabel(): boolean {\n return this.total > this.maximumIndicatorsCount;\n }\n\n private get _nextIndex(): number {\n return wrap(0, this.total - 1, this.current + 1);\n }\n\n private get _previousIndex(): number {\n return wrap(0, this.total - 1, this.current - 1);\n }\n\n //#endregion\n\n //#region Public attributes and properties\n\n /**\n * Whether the carousel should skip rotating to the first slide after it reaches the last.\n * @attr disable-loop\n */\n @property({ type: Boolean, reflect: true, attribute: 'disable-loop' })\n public disableLoop = false;\n\n /**\n * Whether the carousel should ignore use interactions and not pause on them.\n * @attr disable-pause-on-interaction\n */\n @property({\n type: Boolean,\n reflect: true,\n attribute: 'disable-pause-on-interaction',\n })\n public disablePauseOnInteraction = false;\n\n /**\n * Whether the carousel should skip rendering of the default navigation buttons.\n * @attr hide-navigation\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-navigation' })\n public hideNavigation = false;\n\n /**\n * Whether the carousel should render the indicator controls (dots).\n * @attr hide-indicators\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-indicators' })\n public hideIndicators = false;\n\n /**\n * Whether the carousel has vertical alignment.\n * @attr vertical\n */\n @property({ type: Boolean, reflect: true })\n public vertical = false;\n\n /**\n * Sets the orientation of the indicator controls (dots).\n * @attr indicators-orientation\n */\n @property({ attribute: 'indicators-orientation' })\n public indicatorsOrientation: CarouselIndicatorsOrientation = 'end';\n\n /**\n * The format used to set the aria-label on the carousel indicators.\n * Instances of '{0}' will be replaced with the index of the corresponding slide.\n *\n * @attr indicators-label-format\n */\n @property({ attribute: 'indicators-label-format' })\n public set indicatorsLabelFormat(value: string) {\n this._indicatorsLabelFormat = value;\n }\n\n public get indicatorsLabelFormat() {\n return (\n this._indicatorsLabelFormat ??\n `${this.resourceStrings.carousel_slide} {0}`\n );\n }\n private _indicatorsLabelFormat: string | undefined;\n\n /**\n * The format used to set the aria-label on the carousel slides and the text displayed\n * when the number of indicators is greater than tha maximum indicator count.\n * Instances of '{0}' will be replaced with the index of the corresponding slide.\n * Instances of '{1}' will be replaced with the total amount of slides.\n *\n * @attr slides-label-format\n */\n @property({ attribute: 'slides-label-format' })\n public set slidesLabelFormat(value: string) {\n this._slidesLabelFormat = value;\n }\n\n public get slidesLabelFormat() {\n return (\n this._slidesLabelFormat ?? `{0} ${this.resourceStrings.carousel_of} {1}`\n );\n }\n\n private _slidesLabelFormat: string | undefined;\n\n /**\n * The duration in milliseconds between changing the active slide.\n * @attr interval\n */\n @property({ type: Number })\n public interval: number | undefined;\n\n /**\n * Controls the maximum indicator controls (dots) that can be shown. Default value is `10`.\n * @attr maximum-indicators-count\n */\n @property({ type: Number, attribute: 'maximum-indicators-count' })\n public maximumIndicatorsCount = 10;\n\n /**\n * The animation type.\n * @attr animation-type\n */\n @property({ attribute: 'animation-type' })\n public animationType: HorizontalTransitionAnimation = 'slide';\n\n /**\n * Gets/Sets the locale used for getting language, affecting resource strings.\n * @attr locale\n */\n @property()\n public set locale(value: string) {\n this._i18nController.locale = value;\n }\n\n public get locale() {\n return this._i18nController.locale;\n }\n\n /**\n * The resource strings for localization.\n * Currently only aria-label attributes are localized for the carousel.\n */\n @property({ attribute: false })\n public set resourceStrings(value: ICarouselResourceStrings) {\n this._i18nController.resourceStrings = value;\n }\n\n public get resourceStrings(): ICarouselResourceStrings {\n return this._i18nController.resourceStrings;\n }\n\n /* blazorSuppress */\n /**\n * The slides of the carousel.\n */\n public get slides(): IgcCarouselSlideComponent[] {\n return Array.from(this._slides);\n }\n\n /**\n * The total number of slides.\n */\n public get total(): number {\n return this._slides.length;\n }\n\n /**\n * The index of the current active slide.\n */\n public get current(): number {\n return Math.max(0, this._slides.indexOf(this._activeSlide));\n }\n\n /**\n * Whether the carousel is in playing state.\n */\n public get isPlaying(): boolean {\n return this._playing;\n }\n\n /**\n * Whether the carousel in in paused state.\n */\n public get isPaused(): boolean {\n return this._paused;\n }\n\n //#endregion\n\n //#region Watchers\n\n @watch('animationType')\n @watch('slidesLabelFormat')\n @watch('indicatorsLabelFormat')\n protected _contextChanged(): void {\n this._setCarouselContext();\n }\n\n @watch('interval')\n protected _intervalChange(): void {\n if (!this.isPlaying) {\n this._playing = true;\n }\n\n this._restartInterval();\n }\n\n //#endregion\n\n //#region Life-cycle hooks and observer callback\n\n constructor() {\n super();\n\n addInternalsController(this, {\n initialARIA: {\n role: 'region',\n ariaRoleDescription: 'carousel',\n },\n });\n\n addThemingController(this, all);\n\n addSafeEventListener(this, 'pointerenter', this._handlePointerInteraction);\n addSafeEventListener(this, 'pointerleave', this._handlePointerInteraction);\n addSafeEventListener(this, 'focusin', this._handleFocusInteraction);\n addSafeEventListener(this, 'focusout', this._handleFocusInteraction);\n\n addGesturesController(this, {\n ref: this._carouselSlidesContainerRef,\n touchOnly: true,\n })\n .set('swipe-left', this._handleHorizontalSwipe)\n .set('swipe-right', this._handleHorizontalSwipe)\n .set('swipe-up', this._handleVerticalSwipe)\n .set('swipe-down', this._handleVerticalSwipe);\n\n addKeybindings(this, {\n ref: this._indicatorsContainerRef,\n })\n .set(arrowLeft, this._handleArrowLeft)\n .set(arrowRight, this._handleArrowRight)\n .set(homeKey, this._handleHomeKey)\n .set(endKey, this._handleEndKey);\n\n addKeybindings(this, {\n ref: this._prevButtonRef,\n }).setActivateHandler(this._handleNavigationInteractionPrevious);\n\n addKeybindings(this, {\n ref: this._nextButtonRef,\n }).setActivateHandler(this._handleNavigationInteractionNext);\n\n createMutationController(this, {\n callback: this._observerCallback,\n filter: [IgcCarouselSlideComponent.tagName],\n config: {\n attributeFilter: ['active'],\n childList: true,\n subtree: true,\n },\n });\n }\n\n protected override async firstUpdated(): Promise<void> {\n await this.updateComplete;\n this._setCarouselContext();\n\n if (!isEmpty(this._slides)) {\n this._activateSlide(\n this._slides.findLast((slide) => slide.active) ?? first(this._slides)\n );\n }\n }\n\n private _observerCallback({\n changes: { added, attributes },\n }: MutationControllerParams<IgcCarouselSlideComponent>) {\n const activeSlides = this._slides.filter((slide) => slide.active);\n\n if (activeSlides.length <= 1) {\n return;\n }\n\n const idx = this._slides.indexOf(\n added.length ? last(added).node : last(attributes).node\n );\n\n for (const [i, slide] of this._slides.entries()) {\n if (slide.active && i !== idx) {\n slide.active = false;\n }\n }\n\n this._activateSlide(this._slides[idx]);\n }\n\n //#endregion\n\n //#region Event listeners\n\n private _handleSlotChange(\n params: SlotChangeCallbackParameters<InferSlotNames<typeof Slots>>\n ): void {\n if (params.isDefault || params.isInitial) {\n this._slides = this._slots.getAssignedElements('[default]', {\n selector: IgcCarouselSlideComponent.tagName,\n });\n }\n\n if (params.slot === 'indicator') {\n this._projectedIndicators = this._slots.getAssignedElements('indicator', {\n selector: IgcCarouselIndicatorComponent.tagName,\n });\n }\n }\n\n private _handlePointerInteraction(event: PointerEvent): void {\n this._hasPointerInteraction = event.type === 'pointerenter';\n\n if (!this._hasInnerFocus) {\n this._handlePauseOnInteraction();\n }\n }\n\n private _handleFocusInteraction(event: FocusEvent): void {\n // focusin - element that lost focus\n // focusout - element that gained focus\n const node = event.relatedTarget as Node;\n\n if (this.contains(node)) {\n return;\n }\n\n this._hasInnerFocus = event.type === 'focusin';\n\n if (!this._hasPointerInteraction) {\n this._handlePauseOnInteraction();\n }\n }\n\n private async _handleIndicatorClick(event: PointerEvent): Promise<void> {\n const indicator = getElementFromPath(\n IgcCarouselIndicatorComponent.tagName,\n event\n )!;\n\n const index = this._hasProjectedIndicators\n ? this._projectedIndicators.indexOf(indicator)\n : Array.from(this._defaultIndicators).indexOf(indicator);\n\n this._handleInteraction(() =>\n this.select(this._slides[index], index > this.current ? 'next' : 'prev')\n );\n }\n\n //#endregion\n\n //#region Keyboard event listeners\n\n private async _handleArrowLeft(): Promise<void> {\n this._hasKeyboardInteractionOnIndicators = true;\n this._handleInteraction(isLTR(this) ? this.prev : this.next);\n }\n\n private async _handleArrowRight(): Promise<void> {\n this._hasKeyboardInteractionOnIndicators = true;\n this._handleInteraction(isLTR(this) ? this.next : this.prev);\n }\n\n private async _handleHomeKey(): Promise<void> {\n this._hasKeyboardInteractionOnIndicators = true;\n this._handleInteraction(() =>\n this.select(isLTR(this) ? first(this._slides) : last(this._slides))\n );\n }\n\n private async _handleEndKey(): Promise<void> {\n this._hasKeyboardInteractionOnIndicators = true;\n this._handleInteraction(() =>\n this.select(isLTR(this) ? last(this._slides) : first(this._slides))\n );\n }\n\n //#endregion\n\n //#region Gestures event listeners\n\n private _handleVerticalSwipe({ data: { direction } }: SwipeEvent): void {\n if (this.vertical) {\n this._handleInteraction(direction === 'up' ? this.next : this.prev);\n }\n }\n\n private _handleHorizontalSwipe({ data: { direction } }: SwipeEvent): void {\n if (!this.vertical) {\n const callback = () => {\n if (isLTR(this)) {\n return direction === 'left' ? this.next : this.prev;\n }\n return direction === 'left' ? this.prev : this.next;\n };\n\n this._handleInteraction(callback());\n }\n }\n\n //#endregion\n\n //#region Internal API\n\n private _handleNavigationInteractionNext(): void {\n this._handleInteraction(this.next);\n }\n\n private _handleNavigationInteractionPrevious(): void {\n this._handleInteraction(this.prev);\n }\n\n private async _handleInteraction(\n callback: () => Promise<boolean>\n ): Promise<void> {\n if (this.interval) {\n this._resetInterval();\n }\n\n if (await callback.call(this)) {\n this.emitEvent('igcSlideChanged', { detail: this.current });\n }\n\n if (this.interval) {\n this._restartInterval();\n }\n }\n\n private _handlePauseOnInteraction(): void {\n if (!this.interval || this.disablePauseOnInteraction) return;\n\n if (this.isPlaying) {\n this.pause();\n this.emitEvent('igcPaused');\n } else {\n this.play();\n this.emitEvent('igcPlaying');\n }\n }\n\n private _activateSlide(slide: IgcCarouselSlideComponent): void {\n if (this._activeSlide) {\n this._activeSlide.active = false;\n }\n\n this._activeSlide = slide;\n this._activeSlide.active = true;\n\n if (this._hasKeyboardInteractionOnIndicators) {\n this._hasProjectedIndicators\n ? this._projectedIndicators[this.current].focus()\n : this._defaultIndicators[this.current].focus();\n\n this._hasKeyboardInteractionOnIndicators = false;\n }\n }\n\n private _updateProjectedIndicators(): void {\n for (const [idx, slide] of this._slides.entries()) {\n const indicator = this._projectedIndicators[idx];\n indicator.active = slide.active;\n indicator.index = idx;\n }\n\n if (this._activeSlide) {\n this.setAttribute('aria-controls', this._activeSlide.id);\n }\n }\n\n private _resetInterval(): void {\n if (this._lastInterval) {\n clearInterval(this._lastInterval);\n this._lastInterval = null;\n }\n }\n\n private _restartInterval(): void {\n this._resetInterval();\n\n if (asNumber(this.interval) > 0) {\n this._lastInterval = setInterval(() => {\n if (\n this.isPlaying &&\n this.total &&\n !(this.disableLoop && this._nextIndex === 0)\n ) {\n this.select(this.slides[this._nextIndex], 'next');\n this.emitEvent('igcSlideChanged', { detail: this.current });\n } else {\n this.pause();\n }\n }, this.interval);\n }\n }\n\n private async _animateSlides(\n nextSlide: IgcCarouselSlideComponent,\n currentSlide: IgcCarouselSlideComponent,\n dir: 'next' | 'prev'\n ): Promise<void> {\n if (dir === 'next') {\n // Animate slides in next direction\n currentSlide.previous = true;\n currentSlide.toggleAnimation('out');\n this._activateSlide(nextSlide);\n await nextSlide.toggleAnimation('in');\n currentSlide.previous = false;\n } else {\n // Animate slides in previous direction\n currentSlide.previous = true;\n currentSlide.toggleAnimation('in', 'reverse');\n this._activateSlide(nextSlide);\n await nextSlide.toggleAnimation('out', 'reverse');\n currentSlide.previous = false;\n }\n }\n\n //#endregion\n\n //#region Public API\n\n /**\n * Resumes playing of the carousel slides.\n */\n public play(): void {\n if (!this.isPlaying) {\n this._paused = false;\n this._playing = true;\n this._restartInterval();\n }\n }\n\n /**\n * Pauses the carousel rotation of slides.\n */\n public pause(): void {\n if (this.isPlaying) {\n this._playing = false;\n this._paused = true;\n this._resetInterval();\n }\n }\n\n /**\n * Switches to the next slide, runs any animations, and returns if the operation was successful.\n */\n public async next(): Promise<boolean> {\n if (this.disableLoop && this._nextIndex === 0) {\n this.pause();\n return false;\n }\n\n return await this.select(this._slides[this._nextIndex], 'next');\n }\n\n /**\n * Switches to the previous slide, runs any animations, and returns if the operation was successful.\n */\n public async prev(): Promise<boolean> {\n if (this.disableLoop && this._previousIndex === this.total - 1) {\n this.pause();\n return false;\n }\n\n return await this.select(this._slides[this._previousIndex], 'prev');\n }\n\n /* blazorSuppress */\n /**\n * Switches to the passed-in slide, runs any animations, and returns if the operation was successful.\n */\n public async select(\n slide: IgcCarouselSlideComponent,\n animationDirection?: 'next' | 'prev'\n ): Promise<boolean>;\n /**\n * Switches to slide by index, runs any animations, and returns if the operation was successful.\n */\n public async select(\n index: number,\n animationDirection?: 'next' | 'prev'\n ): Promise<boolean>;\n public async select(\n slideOrIndex: IgcCarouselSlideComponent | number,\n animationDirection?: 'next' | 'prev'\n ): Promise<boolean> {\n let index: number;\n let slide: IgcCarouselSlideComponent | undefined;\n\n if (typeof slideOrIndex === 'number') {\n index = slideOrIndex;\n slide = this._slides.at(index);\n } else {\n slide = slideOrIndex;\n index = this._slides.indexOf(slide);\n }\n\n if (index === this.current || index === -1 || !slide) {\n return false;\n }\n\n const dir = animationDirection ?? (index > this.current ? 'next' : 'prev');\n\n await this._animateSlides(slide, this._activeSlide, dir);\n return true;\n }\n\n //#endregion\n\n //#region Template renderers\n\n private _renderNavigation() {\n return html`\n <igc-button\n ${ref(this._prevButtonRef)}\n type=\"button\"\n part=\"navigation previous\"\n aria-label=${this.resourceStrings.carousel_previous_slide ??\n 'previous slide'}\n aria-controls=${this._carouselId}\n ?disabled=${this.disableLoop && this.current === 0}\n @click=${this._handleNavigationInteractionPrevious}\n >\n <slot name=\"previous-button\">\n <igc-icon\n name=\"carousel_prev\"\n collection=\"default\"\n aria-hidden=\"true\"\n ></igc-icon>\n </slot>\n </igc-button>\n\n <igc-button\n ${ref(this._nextButtonRef)}\n type=\"button\"\n part=\"navigation next\"\n aria-label=${this.resourceStrings.carousel_next_slide ?? 'next slide'}\n aria-controls=${this._carouselId}\n ?disabled=${this.disableLoop && this.current === this.total - 1}\n @click=${this._handleNavigationInteractionNext}\n >\n <slot name=\"next-button\">\n <igc-icon\n name=\"carousel_next\"\n collection=\"default\"\n aria-hidden=\"true\"\n ></igc-icon>\n </slot>\n </igc-button>\n `;\n }\n\n protected *_renderIndicators() {\n for (const [i, slide] of this._slides.entries()) {\n const forward = slide.active ? 'visible' : 'hidden';\n const backward = slide.active ? 'hidden' : 'visible';\n\n yield html`\n <igc-carousel-indicator\n exportparts=\"indicator, active, inactive\"\n .active=${slide.active}\n .index=${i}\n >\n <div\n part=\"dot\"\n style=${styleMap({ visibility: backward, zIndex: 1 })}\n ></div>\n <div\n part=\"dot active\"\n slot=\"active\"\n style=${styleMap({ visibility: forward })}\n ></div>\n </igc-carousel-indicator>\n `;\n }\n }\n\n private _renderIndicatorContainer() {\n const parts = {\n indicators: true,\n start: this.indicatorsOrientation === 'start',\n };\n\n return html`\n <igc-carousel-indicator-container>\n <div\n ${ref(this._indicatorsContainerRef)}\n role=\"tablist\"\n part=${partMap(parts)}\n >\n <slot name=\"indicator\" @click=${this._handleIndicatorClick}>\n ${cache(\n this._hasProjectedIndicators\n ? this._updateProjectedIndicators()\n : this._renderIndicators()\n )}\n </slot>\n </div>\n </igc-carousel-indicator-container>\n `;\n }\n\n private _renderLabel() {\n const parts = {\n label: true,\n indicators: true,\n start: this.indicatorsOrientation === 'start',\n };\n const value = formatString(\n this.slidesLabelFormat,\n this.current + 1,\n this.total\n );\n\n return html`\n <div part=${partMap(parts)}>\n <span>${value}</span>\n </div>\n `;\n }\n\n protected override render() {\n const hasNoIndicators = this.hideIndicators || this._showIndicatorsLabel;\n const hasLabel = !this.hideIndicators && this._showIndicatorsLabel;\n\n return html`\n <section>\n ${cache(this.hideNavigation ? nothing : this._renderNavigation())}\n ${hasNoIndicators ? nothing : this._renderIndicatorContainer()}\n ${hasLabel ? this._renderLabel() : nothing}\n <div\n ${ref(this._carouselSlidesContainerRef)}\n id=${this._carouselId}\n aria-live=${this.interval && this._playing ? 'off' : 'polite'}\n >\n <slot></slot>\n </div>\n </section>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-carousel': IgcCarouselComponent;\n }\n}\n"]}
@@ -206,6 +206,7 @@ export default class IgcChatMessageComponent extends LitElement {
206
206
  };
207
207
  const parts = {
208
208
  'message-container': true,
209
+ received: !this._state.isCurrentUserMessage(this.message),
209
210
  sent: this._state.isCurrentUserMessage(this.message),
210
211
  };
211
212
  return html `
@@ -1 +1 @@
1
- {"version":3,"file":"chat-message.js","sourceRoot":"","sources":["../../../src/components/chat/chat-message.ts"],"names":[],"mappings":"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","sourcesContent":["import { ContextConsumer } from '@lit/context';\nimport { html, LitElement, nothing, type PropertyValues } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { cache } from 'lit/directives/cache.js';\nimport { until } from 'lit/directives/until.js';\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport IgcIconButtonComponent from '../button/icon-button.js';\nimport { chatContext } from '../common/context.js';\nimport { addAdoptedStylesController } from '../common/controllers/adopt-styles.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport { partMap } from '../common/part-map.js';\nimport { isEmpty, trimmedHtml } from '../common/util.js';\nimport type { ChatState } from './chat-state.js';\nimport IgcMessageAttachmentsComponent from './message-attachments.js';\nimport { styles } from './themes/message.base.css.js';\nimport { all } from './themes/message.js';\nimport { styles as shared } from './themes/shared/chat-message/chat-message.common.css.js';\nimport type {\n ChatMessageRenderContext,\n ChatTemplateRenderer,\n IgcChatMessage,\n} from './types.js';\n\nconst LIKE_INACTIVE = 'thumb_up_inactive';\nconst LIKE_ACTIVE = 'thumb_up_active';\nconst DISLIKE_INACTIVE = 'thumb_down_inactive';\nconst DISLIKE_ACTIVE = 'thumb_down_active';\nconst COPY_CONTENT = 'copy_content';\nconst REGENERATE = 'regenerate';\n\ntype DefaultMessageRenderers = {\n messageHeader: ChatTemplateRenderer<ChatMessageRenderContext>;\n messageContent: ChatTemplateRenderer<ChatMessageRenderContext>;\n messageAttachments: ChatTemplateRenderer<ChatMessageRenderContext>;\n messageActions: ChatTemplateRenderer<ChatMessageRenderContext>;\n};\n\n/* blazorSuppress */\n/**\n * A chat message component for displaying individual messages in `<igc-chat>`.\n *\n * @element igc-chat-message\n *\n *\n * This component renders a single chat message including:\n * - Message text (sanitized)\n * - Attachments (if any)\n * - Custom templates for message content and actions (if provided via chat options)\n *\n * It distinguishes sent messages from received messages by comparing\n * the message sender with the current user ID from chat state.\n *\n * The message text is sanitized with DOMPurify before rendering,\n * and can be rendered with a markdown renderer if provided.\n */\nexport default class IgcChatMessageComponent extends LitElement {\n public static readonly tagName = 'igc-chat-message';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(\n IgcChatMessageComponent,\n IgcMessageAttachmentsComponent,\n IgcIconButtonComponent\n );\n }\n\n private readonly _adoptedStyles = addAdoptedStylesController(this);\n\n private readonly _defaults = Object.freeze<DefaultMessageRenderers>({\n messageHeader: () => this._renderHeader(),\n messageContent: () => this._renderContent(),\n messageAttachments: () => this._renderAttachments(),\n messageActions: () => this._renderActions(),\n });\n\n private readonly _stateChanged = () => {\n this._shouldAdoptRootStyles = Boolean(this._state.options?.adoptRootStyles);\n };\n\n private readonly _stateConsumer = new ContextConsumer(this, {\n context: chatContext,\n callback: this._stateChanged,\n subscribe: true,\n });\n\n @state()\n private _shouldAdoptRootStyles = false;\n\n private get _state(): ChatState {\n return this._stateConsumer.value!;\n }\n\n /**\n * The chat message to render.\n */\n @property({ attribute: false })\n public message!: IgcChatMessage;\n\n constructor() {\n super();\n addThemingController(this, all, { themeChange: this._adoptPageStyles });\n }\n\n protected override update(props: PropertyValues): void {\n if (props.has('_shouldAdoptRootStyles')) {\n this._adoptedStyles.shouldAdoptStyles(this._shouldAdoptRootStyles);\n }\n super.update(props);\n }\n\n private _adoptPageStyles(): void {\n this._adoptedStyles.invalidateCache(this.ownerDocument);\n this._adoptedStyles.shouldAdoptStyles(this._shouldAdoptRootStyles);\n }\n\n private _getRenderer(name: keyof DefaultMessageRenderers) {\n return this._state.options?.renderers\n ? (this._state.options.renderers[name] ?? this._defaults[name])\n : this._defaults[name];\n }\n\n private async _handleCopy(): Promise<void> {\n const text = this.message.text;\n const separator = text ? '\\n\\n' : '';\n const attachments = this.message.attachments ?? [];\n const { attachmentLabel, attachmentsListLabel, messageCopied } =\n this._state.resourceStrings!;\n\n const attachmentsText = isEmpty(attachments)\n ? ''\n : attachments\n .map(({ name, url }) => `${name ?? attachmentLabel}: ${url ?? ''}`)\n .join('\\n');\n\n const payload = attachmentsText\n ? `${text}${separator}${attachmentsListLabel}:\\n${attachmentsText}`\n : text;\n\n try {\n await navigator.clipboard.writeText(payload);\n this._state.showActionToast(messageCopied);\n } catch (err) {\n throw new Error(`Failed to copy message: ${err}`);\n }\n }\n\n private _handleMessageActionClick(event: PointerEvent): void {\n const targetButton = event.target as HTMLElement;\n const button = targetButton.closest(IgcIconButtonComponent.tagName);\n\n if (!button) {\n return;\n }\n\n let reaction = button.name;\n\n switch (reaction) {\n case LIKE_INACTIVE:\n case LIKE_ACTIVE:\n reaction = this.message.reactions?.includes(LIKE_ACTIVE)\n ? LIKE_INACTIVE\n : LIKE_ACTIVE;\n break;\n case DISLIKE_INACTIVE:\n case DISLIKE_ACTIVE:\n reaction = this.message.reactions?.includes(DISLIKE_ACTIVE)\n ? DISLIKE_INACTIVE\n : DISLIKE_ACTIVE;\n break;\n case COPY_CONTENT:\n reaction = COPY_CONTENT;\n this._handleCopy();\n break;\n case REGENERATE:\n reaction = REGENERATE;\n break;\n default:\n reaction = '';\n }\n\n this.message.reactions = reaction ? [reaction] : [];\n this._state.emitMessageReaction({ message: this.message, reaction });\n this.requestUpdate();\n }\n\n private _renderHeader() {\n return nothing;\n }\n\n private _renderContent() {\n return html`${this.message.text}`;\n }\n\n private _renderActions() {\n const isSent = this.message.sender === this._state.currentUserId;\n const hasText = this.message.text.trim();\n const hasAttachments = !isEmpty(this.message.attachments ?? []);\n const isTyping = this._state.options?.isTyping;\n const isLastMessage = this.message === this._state.messages.at(-1);\n const resourceStrings = this._state.resourceStrings!;\n\n if (isSent || !(hasText || hasAttachments) || (isLastMessage && isTyping)) {\n return nothing;\n }\n\n return html`\n ${this._renderActionButton(COPY_CONTENT, resourceStrings.reactionCopy)}\n ${this._renderActionButton(\n this.message.reactions?.includes(LIKE_ACTIVE)\n ? LIKE_ACTIVE\n : LIKE_INACTIVE,\n resourceStrings.reactionLike\n )}\n ${this._renderActionButton(\n this.message.reactions?.includes(DISLIKE_ACTIVE)\n ? DISLIKE_ACTIVE\n : DISLIKE_INACTIVE,\n resourceStrings.reactionDislike\n )}\n ${this._renderActionButton(\n REGENERATE,\n resourceStrings.reactionRegenerate\n )}\n `;\n }\n\n private _renderActionButton(name: string, tooltipMessage: string) {\n return html`\n <igc-icon-button\n id=${`${name}-button`}\n name=${name}\n variant=\"flat\"\n @pointerenter=${({ target }: PointerEvent) =>\n this._state.showActionsTooltip(target as Element, tooltipMessage)}\n @focus=${({ target }: FocusEvent) =>\n this._state.showActionsTooltip(target as Element, tooltipMessage)}\n ></igc-icon-button>\n `;\n }\n\n private _renderAttachments() {\n return isEmpty(this.message.attachments ?? [])\n ? nothing\n : html`\n <igc-message-attachments\n .message=${this.message}\n exportparts=\"\n attachment,\n attachment-header,\n attachment-icon,\n file-name,\n attachment-content\"\n ></igc-message-attachments>\n `;\n }\n\n private _renderMessage() {\n const ctx: ChatMessageRenderContext = {\n message: this.message,\n instance: this._state.host,\n };\n\n return trimmedHtml`\n <div part=\"message-header\">\n ${until(this._getRenderer('messageHeader')(ctx))}\n </div>\n <div part=\"plain-text\">\n ${until(this._getRenderer('messageContent')(ctx))}\n </div>\n <div part=\"message-attachments\">\n ${until(this._getRenderer('messageAttachments')(ctx))}\n </div>\n <div part=\"message-actions\" @click=${this._handleMessageActionClick}>\n ${until(this._getRenderer('messageActions')(ctx))}\n </div>\n `;\n }\n\n protected override render() {\n const messageRenderer = this._state.options?.renderers?.message;\n const ctx: ChatMessageRenderContext = {\n message: this.message,\n instance: this._state.host,\n };\n\n const parts = {\n 'message-container': true,\n sent: this._state.isCurrentUserMessage(this.message),\n };\n\n return html`\n ${cache(\n this.message\n ? html`\n <div part=${partMap(parts)}>\n ${cache(\n messageRenderer\n ? until(messageRenderer(ctx))\n : this._renderMessage()\n )}\n </div>\n `\n : nothing\n )}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-chat-message': IgcChatMessageComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"chat-message.js","sourceRoot":"","sources":["../../../src/components/chat/chat-message.ts"],"names":[],"mappings":"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","sourcesContent":["import { ContextConsumer } from '@lit/context';\nimport { html, LitElement, nothing, type PropertyValues } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { cache } from 'lit/directives/cache.js';\nimport { until } from 'lit/directives/until.js';\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport IgcIconButtonComponent from '../button/icon-button.js';\nimport { chatContext } from '../common/context.js';\nimport { addAdoptedStylesController } from '../common/controllers/adopt-styles.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport { partMap } from '../common/part-map.js';\nimport { isEmpty, trimmedHtml } from '../common/util.js';\nimport type { ChatState } from './chat-state.js';\nimport IgcMessageAttachmentsComponent from './message-attachments.js';\nimport { styles } from './themes/message.base.css.js';\nimport { all } from './themes/message.js';\nimport { styles as shared } from './themes/shared/chat-message/chat-message.common.css.js';\nimport type {\n ChatMessageRenderContext,\n ChatTemplateRenderer,\n IgcChatMessage,\n} from './types.js';\n\nconst LIKE_INACTIVE = 'thumb_up_inactive';\nconst LIKE_ACTIVE = 'thumb_up_active';\nconst DISLIKE_INACTIVE = 'thumb_down_inactive';\nconst DISLIKE_ACTIVE = 'thumb_down_active';\nconst COPY_CONTENT = 'copy_content';\nconst REGENERATE = 'regenerate';\n\ntype DefaultMessageRenderers = {\n messageHeader: ChatTemplateRenderer<ChatMessageRenderContext>;\n messageContent: ChatTemplateRenderer<ChatMessageRenderContext>;\n messageAttachments: ChatTemplateRenderer<ChatMessageRenderContext>;\n messageActions: ChatTemplateRenderer<ChatMessageRenderContext>;\n};\n\n/* blazorSuppress */\n/**\n * A chat message component for displaying individual messages in `<igc-chat>`.\n *\n * @element igc-chat-message\n *\n *\n * This component renders a single chat message including:\n * - Message text (sanitized)\n * - Attachments (if any)\n * - Custom templates for message content and actions (if provided via chat options)\n *\n * It distinguishes sent messages from received messages by comparing\n * the message sender with the current user ID from chat state.\n *\n * The message text is sanitized with DOMPurify before rendering,\n * and can be rendered with a markdown renderer if provided.\n */\nexport default class IgcChatMessageComponent extends LitElement {\n public static readonly tagName = 'igc-chat-message';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(\n IgcChatMessageComponent,\n IgcMessageAttachmentsComponent,\n IgcIconButtonComponent\n );\n }\n\n private readonly _adoptedStyles = addAdoptedStylesController(this);\n\n private readonly _defaults = Object.freeze<DefaultMessageRenderers>({\n messageHeader: () => this._renderHeader(),\n messageContent: () => this._renderContent(),\n messageAttachments: () => this._renderAttachments(),\n messageActions: () => this._renderActions(),\n });\n\n private readonly _stateChanged = () => {\n this._shouldAdoptRootStyles = Boolean(this._state.options?.adoptRootStyles);\n };\n\n private readonly _stateConsumer = new ContextConsumer(this, {\n context: chatContext,\n callback: this._stateChanged,\n subscribe: true,\n });\n\n @state()\n private _shouldAdoptRootStyles = false;\n\n private get _state(): ChatState {\n return this._stateConsumer.value!;\n }\n\n /**\n * The chat message to render.\n */\n @property({ attribute: false })\n public message!: IgcChatMessage;\n\n constructor() {\n super();\n addThemingController(this, all, { themeChange: this._adoptPageStyles });\n }\n\n protected override update(props: PropertyValues): void {\n if (props.has('_shouldAdoptRootStyles')) {\n this._adoptedStyles.shouldAdoptStyles(this._shouldAdoptRootStyles);\n }\n super.update(props);\n }\n\n private _adoptPageStyles(): void {\n this._adoptedStyles.invalidateCache(this.ownerDocument);\n this._adoptedStyles.shouldAdoptStyles(this._shouldAdoptRootStyles);\n }\n\n private _getRenderer(name: keyof DefaultMessageRenderers) {\n return this._state.options?.renderers\n ? (this._state.options.renderers[name] ?? this._defaults[name])\n : this._defaults[name];\n }\n\n private async _handleCopy(): Promise<void> {\n const text = this.message.text;\n const separator = text ? '\\n\\n' : '';\n const attachments = this.message.attachments ?? [];\n const { attachmentLabel, attachmentsListLabel, messageCopied } =\n this._state.resourceStrings!;\n\n const attachmentsText = isEmpty(attachments)\n ? ''\n : attachments\n .map(({ name, url }) => `${name ?? attachmentLabel}: ${url ?? ''}`)\n .join('\\n');\n\n const payload = attachmentsText\n ? `${text}${separator}${attachmentsListLabel}:\\n${attachmentsText}`\n : text;\n\n try {\n await navigator.clipboard.writeText(payload);\n this._state.showActionToast(messageCopied);\n } catch (err) {\n throw new Error(`Failed to copy message: ${err}`);\n }\n }\n\n private _handleMessageActionClick(event: PointerEvent): void {\n const targetButton = event.target as HTMLElement;\n const button = targetButton.closest(IgcIconButtonComponent.tagName);\n\n if (!button) {\n return;\n }\n\n let reaction = button.name;\n\n switch (reaction) {\n case LIKE_INACTIVE:\n case LIKE_ACTIVE:\n reaction = this.message.reactions?.includes(LIKE_ACTIVE)\n ? LIKE_INACTIVE\n : LIKE_ACTIVE;\n break;\n case DISLIKE_INACTIVE:\n case DISLIKE_ACTIVE:\n reaction = this.message.reactions?.includes(DISLIKE_ACTIVE)\n ? DISLIKE_INACTIVE\n : DISLIKE_ACTIVE;\n break;\n case COPY_CONTENT:\n reaction = COPY_CONTENT;\n this._handleCopy();\n break;\n case REGENERATE:\n reaction = REGENERATE;\n break;\n default:\n reaction = '';\n }\n\n this.message.reactions = reaction ? [reaction] : [];\n this._state.emitMessageReaction({ message: this.message, reaction });\n this.requestUpdate();\n }\n\n private _renderHeader() {\n return nothing;\n }\n\n private _renderContent() {\n return html`${this.message.text}`;\n }\n\n private _renderActions() {\n const isSent = this.message.sender === this._state.currentUserId;\n const hasText = this.message.text.trim();\n const hasAttachments = !isEmpty(this.message.attachments ?? []);\n const isTyping = this._state.options?.isTyping;\n const isLastMessage = this.message === this._state.messages.at(-1);\n const resourceStrings = this._state.resourceStrings!;\n\n if (isSent || !(hasText || hasAttachments) || (isLastMessage && isTyping)) {\n return nothing;\n }\n\n return html`\n ${this._renderActionButton(COPY_CONTENT, resourceStrings.reactionCopy)}\n ${this._renderActionButton(\n this.message.reactions?.includes(LIKE_ACTIVE)\n ? LIKE_ACTIVE\n : LIKE_INACTIVE,\n resourceStrings.reactionLike\n )}\n ${this._renderActionButton(\n this.message.reactions?.includes(DISLIKE_ACTIVE)\n ? DISLIKE_ACTIVE\n : DISLIKE_INACTIVE,\n resourceStrings.reactionDislike\n )}\n ${this._renderActionButton(\n REGENERATE,\n resourceStrings.reactionRegenerate\n )}\n `;\n }\n\n private _renderActionButton(name: string, tooltipMessage: string) {\n return html`\n <igc-icon-button\n id=${`${name}-button`}\n name=${name}\n variant=\"flat\"\n @pointerenter=${({ target }: PointerEvent) =>\n this._state.showActionsTooltip(target as Element, tooltipMessage)}\n @focus=${({ target }: FocusEvent) =>\n this._state.showActionsTooltip(target as Element, tooltipMessage)}\n ></igc-icon-button>\n `;\n }\n\n private _renderAttachments() {\n return isEmpty(this.message.attachments ?? [])\n ? nothing\n : html`\n <igc-message-attachments\n .message=${this.message}\n exportparts=\"\n attachment,\n attachment-header,\n attachment-icon,\n file-name,\n attachment-content\"\n ></igc-message-attachments>\n `;\n }\n\n private _renderMessage() {\n const ctx: ChatMessageRenderContext = {\n message: this.message,\n instance: this._state.host,\n };\n\n return trimmedHtml`\n <div part=\"message-header\">\n ${until(this._getRenderer('messageHeader')(ctx))}\n </div>\n <div part=\"plain-text\">\n ${until(this._getRenderer('messageContent')(ctx))}\n </div>\n <div part=\"message-attachments\">\n ${until(this._getRenderer('messageAttachments')(ctx))}\n </div>\n <div part=\"message-actions\" @click=${this._handleMessageActionClick}>\n ${until(this._getRenderer('messageActions')(ctx))}\n </div>\n `;\n }\n\n protected override render() {\n const messageRenderer = this._state.options?.renderers?.message;\n const ctx: ChatMessageRenderContext = {\n message: this.message,\n instance: this._state.host,\n };\n\n const parts = {\n 'message-container': true,\n received: !this._state.isCurrentUserMessage(this.message),\n sent: this._state.isCurrentUserMessage(this.message),\n };\n\n return html`\n ${cache(\n this.message\n ? html`\n <div part=${partMap(parts)}>\n ${cache(\n messageRenderer\n ? until(messageRenderer(ctx))\n : this._renderMessage()\n )}\n </div>\n `\n : nothing\n )}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-chat-message': IgcChatMessageComponent;\n }\n}\n"]}
@@ -1,3 +1,3 @@
1
1
  import { css } from 'lit';
2
- export const styles = css `:host{--background: var(--ig-chat-background, var(--ig-gray-900-contrast));--header-background: var(--ig-chat-header-background, var(--ig-surface-500));--header-color: var(--ig-chat-header-color, var(--ig-surface-500-contrast));--header-border: var(--ig-chat-header-border, var(--ig-gray-300));--message-background: var(--ig-chat-message-background, var(--ig-gray-200));--message-color: var(--ig-chat-message-color, var(--ig-gray-800));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-gray-700));--file-background: var(--ig-chat-file-background, var(--ig-gray-900-contrast));--file-icon-color: var(--ig-chat-file-icon-color, var(--ig-gray-500));--file-icon-accent-color: var(--ig-chat-file-icon-accent-color, var(--ig-gray-600));--image-background: var(--ig-chat-image-background, var(--ig-gray-100));--image-border: var(--ig-chat-image-border, var(--ig-gray-300));--image-attachment-icon: var(--ig-chat-image-attachment-icon, var(--ig-gray-900));--progress-indicator-color: var(--ig-chat-progress-indicator-color, var(--ig-secondary-500));--code-background: var(--ig-chat-code-background, var(--ig-gray-50));--ig-theme: bootstrap;--ig-theme-variant: dark}`;
2
+ export const styles = css `:host{--background: var(--ig-chat-background, var(--ig-gray-900-contrast));--header-background: var(--ig-chat-header-background, var(--ig-surface-500));--header-color: var(--ig-chat-header-color, var(--ig-surface-500-contrast));--header-border: var(--ig-chat-header-border, var(--ig-gray-300));--sent-message-background: var(--ig-chat-sent-message-background, var(--ig-gray-200));--sent-message-color: var(--ig-chat-sent-message-color, var(--ig-gray-800));--received-message-background: var(--ig-chat-received-message-background, transparent);--received-message-color: var(--ig-chat-received-message-color, var(--ig-gray-800));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-gray-700));--file-background: var(--ig-chat-file-background, var(--ig-gray-900-contrast));--file-icon-color: var(--ig-chat-file-icon-color, var(--ig-gray-500));--file-icon-accent-color: var(--ig-chat-file-icon-accent-color, var(--ig-gray-600));--image-background: var(--ig-chat-image-background, var(--ig-gray-100));--image-border: var(--ig-chat-image-border, var(--ig-gray-300));--image-attachment-icon: var(--ig-chat-image-attachment-icon, var(--ig-gray-900));--progress-indicator-color: var(--ig-chat-progress-indicator-color, var(--ig-secondary-500));--code-background: var(--ig-chat-code-background, var(--ig-gray-50));--message-border-radius: var(--ig-chat-message-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0.3333333333) * 1.5rem), 1.5rem));--ig-theme: bootstrap;--ig-theme-variant: dark}`;
3
3
  //# sourceMappingURL=chat.bootstrap.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat.bootstrap.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/dark/chat.bootstrap.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,4pCAA4pC,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{--background: var(--ig-chat-background, var(--ig-gray-900-contrast));--header-background: var(--ig-chat-header-background, var(--ig-surface-500));--header-color: var(--ig-chat-header-color, var(--ig-surface-500-contrast));--header-border: var(--ig-chat-header-border, var(--ig-gray-300));--message-background: var(--ig-chat-message-background, var(--ig-gray-200));--message-color: var(--ig-chat-message-color, var(--ig-gray-800));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-gray-700));--file-background: var(--ig-chat-file-background, var(--ig-gray-900-contrast));--file-icon-color: var(--ig-chat-file-icon-color, var(--ig-gray-500));--file-icon-accent-color: var(--ig-chat-file-icon-accent-color, var(--ig-gray-600));--image-background: var(--ig-chat-image-background, var(--ig-gray-100));--image-border: var(--ig-chat-image-border, var(--ig-gray-300));--image-attachment-icon: var(--ig-chat-image-attachment-icon, var(--ig-gray-900));--progress-indicator-color: var(--ig-chat-progress-indicator-color, var(--ig-secondary-500));--code-background: var(--ig-chat-code-background, var(--ig-gray-50));--ig-theme: bootstrap;--ig-theme-variant: dark}`;\n "]}
1
+ {"version":3,"file":"chat.bootstrap.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/dark/chat.bootstrap.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,o+CAAo+C,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{--background: var(--ig-chat-background, var(--ig-gray-900-contrast));--header-background: var(--ig-chat-header-background, var(--ig-surface-500));--header-color: var(--ig-chat-header-color, var(--ig-surface-500-contrast));--header-border: var(--ig-chat-header-border, var(--ig-gray-300));--sent-message-background: var(--ig-chat-sent-message-background, var(--ig-gray-200));--sent-message-color: var(--ig-chat-sent-message-color, var(--ig-gray-800));--received-message-background: var(--ig-chat-received-message-background, transparent);--received-message-color: var(--ig-chat-received-message-color, var(--ig-gray-800));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-gray-700));--file-background: var(--ig-chat-file-background, var(--ig-gray-900-contrast));--file-icon-color: var(--ig-chat-file-icon-color, var(--ig-gray-500));--file-icon-accent-color: var(--ig-chat-file-icon-accent-color, var(--ig-gray-600));--image-background: var(--ig-chat-image-background, var(--ig-gray-100));--image-border: var(--ig-chat-image-border, var(--ig-gray-300));--image-attachment-icon: var(--ig-chat-image-attachment-icon, var(--ig-gray-900));--progress-indicator-color: var(--ig-chat-progress-indicator-color, var(--ig-secondary-500));--code-background: var(--ig-chat-code-background, var(--ig-gray-50));--message-border-radius: var(--ig-chat-message-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0.3333333333) * 1.5rem), 1.5rem));--ig-theme: bootstrap;--ig-theme-variant: dark}`;\n "]}
@@ -1,3 +1,3 @@
1
1
  import { css } from 'lit';
2
- export const styles = css `:host{--background: var(--ig-chat-background, var(--ig-gray-900-contrast));--header-background: var(--ig-chat-header-background, var(--ig-surface-500));--header-color: var(--ig-chat-header-color, var(--ig-gray-900));--header-border: var(--ig-chat-header-border, var(--ig-transparent-500));--message-background: var(--ig-chat-message-background, var(--ig-gray-200));--message-color: var(--ig-chat-message-color, var(--ig-gray-800));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-primary-500));--file-background: var(--ig-chat-file-background, var(--ig-gray-900-contrast));--file-icon-color: var(--ig-chat-file-icon-color, var(--ig-gray-500));--file-icon-accent-color: var(--ig-chat-file-icon-accent-color, var(--ig-gray-600));--image-background: var(--ig-chat-image-background, var(--ig-gray-100));--image-border: var(--ig-chat-image-border, var(--ig-gray-300));--image-attachment-icon: var(--ig-chat-image-attachment-icon, var(--ig-gray-900));--progress-indicator-color: var(--ig-chat-progress-indicator-color, var(--ig-secondary-500));--code-background: var(--ig-chat-code-background, var(--ig-gray-50));--ig-theme: fluent;--ig-theme-variant: dark}`;
2
+ export const styles = css `:host{--background: var(--ig-chat-background, var(--ig-gray-900-contrast));--header-background: var(--ig-chat-header-background, var(--ig-surface-500));--header-color: var(--ig-chat-header-color, var(--ig-gray-900));--header-border: var(--ig-chat-header-border, var(--ig-transparent-500));--sent-message-background: var(--ig-chat-sent-message-background, var(--ig-gray-200));--sent-message-color: var(--ig-chat-sent-message-color, var(--ig-gray-800));--received-message-background: var(--ig-chat-received-message-background, transparent);--received-message-color: var(--ig-chat-received-message-color, var(--ig-gray-800));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-primary-500));--file-background: var(--ig-chat-file-background, var(--ig-gray-900-contrast));--file-icon-color: var(--ig-chat-file-icon-color, var(--ig-gray-500));--file-icon-accent-color: var(--ig-chat-file-icon-accent-color, var(--ig-gray-600));--image-background: var(--ig-chat-image-background, var(--ig-gray-100));--image-border: var(--ig-chat-image-border, var(--ig-gray-300));--image-attachment-icon: var(--ig-chat-image-attachment-icon, var(--ig-gray-900));--progress-indicator-color: var(--ig-chat-progress-indicator-color, var(--ig-secondary-500));--code-background: var(--ig-chat-code-background, var(--ig-gray-50));--message-border-radius: var(--ig-chat-message-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 1) * 1.5rem), 1.5rem));--ig-theme: fluent;--ig-theme-variant: dark}`;
3
3
  //# sourceMappingURL=chat.fluent.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat.fluent.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/dark/chat.fluent.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,upCAAupC,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{--background: var(--ig-chat-background, var(--ig-gray-900-contrast));--header-background: var(--ig-chat-header-background, var(--ig-surface-500));--header-color: var(--ig-chat-header-color, var(--ig-gray-900));--header-border: var(--ig-chat-header-border, var(--ig-transparent-500));--message-background: var(--ig-chat-message-background, var(--ig-gray-200));--message-color: var(--ig-chat-message-color, var(--ig-gray-800));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-primary-500));--file-background: var(--ig-chat-file-background, var(--ig-gray-900-contrast));--file-icon-color: var(--ig-chat-file-icon-color, var(--ig-gray-500));--file-icon-accent-color: var(--ig-chat-file-icon-accent-color, var(--ig-gray-600));--image-background: var(--ig-chat-image-background, var(--ig-gray-100));--image-border: var(--ig-chat-image-border, var(--ig-gray-300));--image-attachment-icon: var(--ig-chat-image-attachment-icon, var(--ig-gray-900));--progress-indicator-color: var(--ig-chat-progress-indicator-color, var(--ig-secondary-500));--code-background: var(--ig-chat-code-background, var(--ig-gray-50));--ig-theme: fluent;--ig-theme-variant: dark}`;\n "]}
1
+ {"version":3,"file":"chat.fluent.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/dark/chat.fluent.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,o9CAAo9C,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{--background: var(--ig-chat-background, var(--ig-gray-900-contrast));--header-background: var(--ig-chat-header-background, var(--ig-surface-500));--header-color: var(--ig-chat-header-color, var(--ig-gray-900));--header-border: var(--ig-chat-header-border, var(--ig-transparent-500));--sent-message-background: var(--ig-chat-sent-message-background, var(--ig-gray-200));--sent-message-color: var(--ig-chat-sent-message-color, var(--ig-gray-800));--received-message-background: var(--ig-chat-received-message-background, transparent);--received-message-color: var(--ig-chat-received-message-color, var(--ig-gray-800));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-primary-500));--file-background: var(--ig-chat-file-background, var(--ig-gray-900-contrast));--file-icon-color: var(--ig-chat-file-icon-color, var(--ig-gray-500));--file-icon-accent-color: var(--ig-chat-file-icon-accent-color, var(--ig-gray-600));--image-background: var(--ig-chat-image-background, var(--ig-gray-100));--image-border: var(--ig-chat-image-border, var(--ig-gray-300));--image-attachment-icon: var(--ig-chat-image-attachment-icon, var(--ig-gray-900));--progress-indicator-color: var(--ig-chat-progress-indicator-color, var(--ig-secondary-500));--code-background: var(--ig-chat-code-background, var(--ig-gray-50));--message-border-radius: var(--ig-chat-message-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 1) * 1.5rem), 1.5rem));--ig-theme: fluent;--ig-theme-variant: dark}`;\n "]}
@@ -1,3 +1,3 @@
1
1
  import { css } from 'lit';
2
- export const styles = css `:host{--background: var(--ig-chat-background, var(--ig-surface-500));--header-background: var(--ig-chat-header-background, var(--ig-surface-500));--header-color: var(--ig-chat-header-color, var(--ig-gray-800));--header-border: var(--ig-chat-header-border, var(--ig-primary-500));--message-background: var(--ig-chat-message-background, var(--ig-gray-200));--message-color: var(--ig-chat-message-color, var(--ig-gray-800));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-gray-600));--file-background: var(--ig-chat-file-background, var(--ig-gray-100));--file-icon-color: var(--ig-chat-file-icon-color, var(--ig-gray-500));--file-icon-accent-color: var(--ig-chat-file-icon-accent-color, var(--ig-gray-600));--image-background: var(--ig-chat-image-background, var(--ig-gray-100));--image-border: var(--ig-chat-image-border, var(--ig-gray-300));--image-attachment-icon: var(--ig-chat-image-attachment-icon, var(--ig-info-500));--progress-indicator-color: var(--ig-chat-progress-indicator-color, var(--ig-info-500));--code-background: var(--ig-chat-code-background, var(--ig-gray-50));--ig-theme: indigo;--ig-theme-variant: dark}`;
2
+ export const styles = css `:host{--background: var(--ig-chat-background, var(--ig-surface-500));--header-background: var(--ig-chat-header-background, var(--ig-surface-500));--header-color: var(--ig-chat-header-color, var(--ig-gray-800));--header-border: var(--ig-chat-header-border, var(--ig-primary-500));--sent-message-background: var(--ig-chat-sent-message-background, var(--ig-gray-200));--sent-message-color: var(--ig-chat-sent-message-color, var(--ig-gray-800));--received-message-background: var(--ig-chat-received-message-background, transparent);--received-message-color: var(--ig-chat-received-message-color, var(--ig-gray-800));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-gray-600));--file-background: var(--ig-chat-file-background, var(--ig-gray-100));--file-icon-color: var(--ig-chat-file-icon-color, var(--ig-gray-500));--file-icon-accent-color: var(--ig-chat-file-icon-accent-color, var(--ig-gray-600));--image-background: var(--ig-chat-image-background, var(--ig-gray-100));--image-border: var(--ig-chat-image-border, var(--ig-gray-300));--image-attachment-icon: var(--ig-chat-image-attachment-icon, var(--ig-info-500));--progress-indicator-color: var(--ig-chat-progress-indicator-color, var(--ig-info-500));--code-background: var(--ig-chat-code-background, var(--ig-gray-50));--message-border-radius: var(--ig-chat-message-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0.3333333333) * 1.5rem), 1.5rem));--ig-theme: indigo;--ig-theme-variant: dark}`;
3
3
  //# sourceMappingURL=chat.indigo.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat.indigo.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/dark/chat.indigo.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,4nCAA4nC,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{--background: var(--ig-chat-background, var(--ig-surface-500));--header-background: var(--ig-chat-header-background, var(--ig-surface-500));--header-color: var(--ig-chat-header-color, var(--ig-gray-800));--header-border: var(--ig-chat-header-border, var(--ig-primary-500));--message-background: var(--ig-chat-message-background, var(--ig-gray-200));--message-color: var(--ig-chat-message-color, var(--ig-gray-800));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-gray-600));--file-background: var(--ig-chat-file-background, var(--ig-gray-100));--file-icon-color: var(--ig-chat-file-icon-color, var(--ig-gray-500));--file-icon-accent-color: var(--ig-chat-file-icon-accent-color, var(--ig-gray-600));--image-background: var(--ig-chat-image-background, var(--ig-gray-100));--image-border: var(--ig-chat-image-border, var(--ig-gray-300));--image-attachment-icon: var(--ig-chat-image-attachment-icon, var(--ig-info-500));--progress-indicator-color: var(--ig-chat-progress-indicator-color, var(--ig-info-500));--code-background: var(--ig-chat-code-background, var(--ig-gray-50));--ig-theme: indigo;--ig-theme-variant: dark}`;\n "]}
1
+ {"version":3,"file":"chat.indigo.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/dark/chat.indigo.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,o8CAAo8C,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{--background: var(--ig-chat-background, var(--ig-surface-500));--header-background: var(--ig-chat-header-background, var(--ig-surface-500));--header-color: var(--ig-chat-header-color, var(--ig-gray-800));--header-border: var(--ig-chat-header-border, var(--ig-primary-500));--sent-message-background: var(--ig-chat-sent-message-background, var(--ig-gray-200));--sent-message-color: var(--ig-chat-sent-message-color, var(--ig-gray-800));--received-message-background: var(--ig-chat-received-message-background, transparent);--received-message-color: var(--ig-chat-received-message-color, var(--ig-gray-800));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-gray-600));--file-background: var(--ig-chat-file-background, var(--ig-gray-100));--file-icon-color: var(--ig-chat-file-icon-color, var(--ig-gray-500));--file-icon-accent-color: var(--ig-chat-file-icon-accent-color, var(--ig-gray-600));--image-background: var(--ig-chat-image-background, var(--ig-gray-100));--image-border: var(--ig-chat-image-border, var(--ig-gray-300));--image-attachment-icon: var(--ig-chat-image-attachment-icon, var(--ig-info-500));--progress-indicator-color: var(--ig-chat-progress-indicator-color, var(--ig-info-500));--code-background: var(--ig-chat-code-background, var(--ig-gray-50));--message-border-radius: var(--ig-chat-message-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0.3333333333) * 1.5rem), 1.5rem));--ig-theme: indigo;--ig-theme-variant: dark}`;\n "]}
@@ -1,3 +1,3 @@
1
1
  import { css } from 'lit';
2
- export const styles = css `:host{--background: var(--ig-chat-background, var(--ig-surface-500));--header-background: var(--ig-chat-header-background, var(--ig-surface-500));--header-color: var(--ig-chat-header-color, var(--ig-surface-500-contrast));--header-border: var(--ig-chat-header-border, var(--ig-transparent-500));--message-background: var(--ig-chat-message-background, var(--ig-gray-200));--message-color: var(--ig-chat-message-color, var(--ig-gray-800));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-gray-700));--file-background: var(--ig-chat-file-background, var(--ig-gray-900-contrast));--file-icon-color: var(--ig-chat-file-icon-color, var(--ig-gray-500));--file-icon-accent-color: var(--ig-chat-file-icon-accent-color, var(--ig-gray-600));--image-background: var(--ig-chat-image-background, var(--ig-gray-100));--image-border: var(--ig-chat-image-border, var(--ig-gray-300));--image-attachment-icon: var(--ig-chat-image-attachment-icon, var(--ig-gray-900));--progress-indicator-color: var(--ig-chat-progress-indicator-color, var(--ig-secondary-500));--code-background: var(--ig-chat-code-background, var(--ig-gray-50));--ig-theme: material;--ig-theme-variant: dark}`;
2
+ export const styles = css `:host{--background: var(--ig-chat-background, var(--ig-surface-500));--header-background: var(--ig-chat-header-background, var(--ig-surface-500));--header-color: var(--ig-chat-header-color, var(--ig-surface-500-contrast));--header-border: var(--ig-chat-header-border, var(--ig-transparent-500));--sent-message-background: var(--ig-chat-sent-message-background, var(--ig-gray-200));--sent-message-color: var(--ig-chat-sent-message-color, var(--ig-gray-800));--received-message-background: var(--ig-chat-received-message-background, transparent);--received-message-color: var(--ig-chat-received-message-color, var(--ig-gray-800));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-gray-700));--file-background: var(--ig-chat-file-background, var(--ig-gray-900-contrast));--file-icon-color: var(--ig-chat-file-icon-color, var(--ig-gray-500));--file-icon-accent-color: var(--ig-chat-file-icon-accent-color, var(--ig-gray-600));--image-background: var(--ig-chat-image-background, var(--ig-gray-100));--image-border: var(--ig-chat-image-border, var(--ig-gray-300));--image-attachment-icon: var(--ig-chat-image-attachment-icon, var(--ig-gray-900));--progress-indicator-color: var(--ig-chat-progress-indicator-color, var(--ig-secondary-500));--code-background: var(--ig-chat-code-background, var(--ig-gray-50));--message-border-radius: var(--ig-chat-message-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 1) * 1.5rem), 1.5rem));--ig-theme: material;--ig-theme-variant: dark}`;
3
3
  //# sourceMappingURL=chat.material.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat.material.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/dark/chat.material.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,4pCAA4pC,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{--background: var(--ig-chat-background, var(--ig-surface-500));--header-background: var(--ig-chat-header-background, var(--ig-surface-500));--header-color: var(--ig-chat-header-color, var(--ig-surface-500-contrast));--header-border: var(--ig-chat-header-border, var(--ig-transparent-500));--message-background: var(--ig-chat-message-background, var(--ig-gray-200));--message-color: var(--ig-chat-message-color, var(--ig-gray-800));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-gray-700));--file-background: var(--ig-chat-file-background, var(--ig-gray-900-contrast));--file-icon-color: var(--ig-chat-file-icon-color, var(--ig-gray-500));--file-icon-accent-color: var(--ig-chat-file-icon-accent-color, var(--ig-gray-600));--image-background: var(--ig-chat-image-background, var(--ig-gray-100));--image-border: var(--ig-chat-image-border, var(--ig-gray-300));--image-attachment-icon: var(--ig-chat-image-attachment-icon, var(--ig-gray-900));--progress-indicator-color: var(--ig-chat-progress-indicator-color, var(--ig-secondary-500));--code-background: var(--ig-chat-code-background, var(--ig-gray-50));--ig-theme: material;--ig-theme-variant: dark}`;\n "]}
1
+ {"version":3,"file":"chat.material.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/dark/chat.material.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,y9CAAy9C,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{--background: var(--ig-chat-background, var(--ig-surface-500));--header-background: var(--ig-chat-header-background, var(--ig-surface-500));--header-color: var(--ig-chat-header-color, var(--ig-surface-500-contrast));--header-border: var(--ig-chat-header-border, var(--ig-transparent-500));--sent-message-background: var(--ig-chat-sent-message-background, var(--ig-gray-200));--sent-message-color: var(--ig-chat-sent-message-color, var(--ig-gray-800));--received-message-background: var(--ig-chat-received-message-background, transparent);--received-message-color: var(--ig-chat-received-message-color, var(--ig-gray-800));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-gray-700));--file-background: var(--ig-chat-file-background, var(--ig-gray-900-contrast));--file-icon-color: var(--ig-chat-file-icon-color, var(--ig-gray-500));--file-icon-accent-color: var(--ig-chat-file-icon-accent-color, var(--ig-gray-600));--image-background: var(--ig-chat-image-background, var(--ig-gray-100));--image-border: var(--ig-chat-image-border, var(--ig-gray-300));--image-attachment-icon: var(--ig-chat-image-attachment-icon, var(--ig-gray-900));--progress-indicator-color: var(--ig-chat-progress-indicator-color, var(--ig-secondary-500));--code-background: var(--ig-chat-code-background, var(--ig-gray-50));--message-border-radius: var(--ig-chat-message-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 1) * 1.5rem), 1.5rem));--ig-theme: material;--ig-theme-variant: dark}`;\n "]}
@@ -1,3 +1,3 @@
1
1
  import { css } from 'lit';
2
- export const styles = css `:host{--background: var(--ig-chat-background, var(--ig-gray-900-contrast));--header-border: var(--ig-chat-header-border, var(--ig-gray-300));--code-border: var(--ig-chat-code-border, var(--ig-gray-400));--focused-border-color: var(--ig-chat-focused-border-color, var(--ig-primary-500));--focused-secondary-color: var(--ig-chat-focused-secondary-color, hsl(from var(--ig-primary-500) h s l/0.38));--ig-theme: bootstrap;--ig-theme-variant: light}`;
2
+ export const styles = css `:host{--background: var(--ig-chat-background, var(--ig-gray-900-contrast));--header-border: var(--ig-chat-header-border, var(--ig-gray-300));--code-border: var(--ig-chat-code-border, var(--ig-gray-400));--message-border-radius: var(--ig-chat-message-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0.3333333333) * 1.5rem), 1.5rem));--focused-border-color: var(--ig-chat-focused-border-color, var(--ig-primary-500));--focused-secondary-color: var(--ig-chat-focused-secondary-color, hsl(from var(--ig-primary-500) h s l/0.38));--ig-theme: bootstrap;--ig-theme-variant: light}`;
3
3
  //# sourceMappingURL=chat.bootstrap.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat.bootstrap.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/light/chat.bootstrap.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,8bAA8b,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{--background: var(--ig-chat-background, var(--ig-gray-900-contrast));--header-border: var(--ig-chat-header-border, var(--ig-gray-300));--code-border: var(--ig-chat-code-border, var(--ig-gray-400));--focused-border-color: var(--ig-chat-focused-border-color, var(--ig-primary-500));--focused-secondary-color: var(--ig-chat-focused-secondary-color, hsl(from var(--ig-primary-500) h s l/0.38));--ig-theme: bootstrap;--ig-theme-variant: light}`;\n "]}
1
+ {"version":3,"file":"chat.bootstrap.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/light/chat.bootstrap.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,ukBAAukB,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{--background: var(--ig-chat-background, var(--ig-gray-900-contrast));--header-border: var(--ig-chat-header-border, var(--ig-gray-300));--code-border: var(--ig-chat-code-border, var(--ig-gray-400));--message-border-radius: var(--ig-chat-message-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0.3333333333) * 1.5rem), 1.5rem));--focused-border-color: var(--ig-chat-focused-border-color, var(--ig-primary-500));--focused-secondary-color: var(--ig-chat-focused-secondary-color, hsl(from var(--ig-primary-500) h s l/0.38));--ig-theme: bootstrap;--ig-theme-variant: light}`;\n "]}
@@ -1,3 +1,3 @@
1
1
  import { css } from 'lit';
2
- export const styles = css `:host{--background: var(--ig-chat-background, var(--ig-gray-900-contrast));--header-color: var(--ig-chat-header-color, var(--ig-gray-900));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-primary-500));--focused-border-color: var(--ig-chat-focused-border-color, var(--ig-primary-500));--ig-theme: fluent;--ig-theme-variant: light}`;
2
+ export const styles = css `:host{--background: var(--ig-chat-background, var(--ig-gray-900-contrast));--header-color: var(--ig-chat-header-color, var(--ig-gray-900));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-primary-500));--message-border-radius: var(--ig-chat-message-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 1) * 1.5rem), 1.5rem));--focused-border-color: var(--ig-chat-focused-border-color, var(--ig-primary-500));--ig-theme: fluent;--ig-theme-variant: light}`;
3
3
  //# sourceMappingURL=chat.fluent.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat.fluent.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/light/chat.fluent.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,kWAAkW,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{--background: var(--ig-chat-background, var(--ig-gray-900-contrast));--header-color: var(--ig-chat-header-color, var(--ig-gray-900));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-primary-500));--focused-border-color: var(--ig-chat-focused-border-color, var(--ig-primary-500));--ig-theme: fluent;--ig-theme-variant: light}`;\n "]}
1
+ {"version":3,"file":"chat.fluent.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/light/chat.fluent.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,geAAge,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{--background: var(--ig-chat-background, var(--ig-gray-900-contrast));--header-color: var(--ig-chat-header-color, var(--ig-gray-900));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-primary-500));--message-border-radius: var(--ig-chat-message-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 1) * 1.5rem), 1.5rem));--focused-border-color: var(--ig-chat-focused-border-color, var(--ig-primary-500));--ig-theme: fluent;--ig-theme-variant: light}`;\n "]}
@@ -1,3 +1,3 @@
1
1
  import { css } from 'lit';
2
- export const styles = css `:host{--header-color: var(--ig-chat-header-color, var(--ig-gray-800));--header-border: var(--ig-chat-header-border, var(--ig-primary-500));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-gray-600));--file-background: var(--ig-chat-file-background, var(--ig-gray-100));--image-attachment-icon: var(--ig-chat-image-attachment-icon, var(--ig-info-500));--progress-indicator-color: var(--ig-chat-progress-indicator-color, var(--ig-info-500));--code-border: var(--ig-chat-code-border, var(--ig-gray-400));--box-background-hover: var(--ig-chat-box-background-hover, hsl(from var(--ig-gray-900) h s l/0.05));--focused-bottom-line-color: var(--ig-chat-focused-bottom-line-color, var(--ig-primary-400));--focused-text-color: var(--ig-chat-focused-text-color, var(--ig-gray-900));--ig-theme: indigo;--ig-theme-variant: light}`;
2
+ export const styles = css `:host{--header-color: var(--ig-chat-header-color, var(--ig-gray-800));--header-border: var(--ig-chat-header-border, var(--ig-primary-500));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-gray-600));--file-background: var(--ig-chat-file-background, var(--ig-gray-100));--image-attachment-icon: var(--ig-chat-image-attachment-icon, var(--ig-info-500));--progress-indicator-color: var(--ig-chat-progress-indicator-color, var(--ig-info-500));--code-border: var(--ig-chat-code-border, var(--ig-gray-400));--message-border-radius: var(--ig-chat-message-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0.3333333333) * 1.5rem), 1.5rem));--box-background-hover: var(--ig-chat-box-background-hover, hsl(from var(--ig-gray-900) h s l/0.05));--focused-bottom-line-color: var(--ig-chat-focused-bottom-line-color, var(--ig-primary-400));--focused-text-color: var(--ig-chat-focused-text-color, var(--ig-gray-900));--ig-theme: indigo;--ig-theme-variant: light}`;
3
3
  //# sourceMappingURL=chat.indigo.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat.indigo.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/light/chat.indigo.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,w0BAAw0B,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{--header-color: var(--ig-chat-header-color, var(--ig-gray-800));--header-border: var(--ig-chat-header-border, var(--ig-primary-500));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-gray-600));--file-background: var(--ig-chat-file-background, var(--ig-gray-100));--image-attachment-icon: var(--ig-chat-image-attachment-icon, var(--ig-info-500));--progress-indicator-color: var(--ig-chat-progress-indicator-color, var(--ig-info-500));--code-border: var(--ig-chat-code-border, var(--ig-gray-400));--box-background-hover: var(--ig-chat-box-background-hover, hsl(from var(--ig-gray-900) h s l/0.05));--focused-bottom-line-color: var(--ig-chat-focused-bottom-line-color, var(--ig-primary-400));--focused-text-color: var(--ig-chat-focused-text-color, var(--ig-gray-900));--ig-theme: indigo;--ig-theme-variant: light}`;\n "]}
1
+ {"version":3,"file":"chat.indigo.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/light/chat.indigo.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,i9BAAi9B,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{--header-color: var(--ig-chat-header-color, var(--ig-gray-800));--header-border: var(--ig-chat-header-border, var(--ig-primary-500));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-gray-600));--file-background: var(--ig-chat-file-background, var(--ig-gray-100));--image-attachment-icon: var(--ig-chat-image-attachment-icon, var(--ig-info-500));--progress-indicator-color: var(--ig-chat-progress-indicator-color, var(--ig-info-500));--code-border: var(--ig-chat-code-border, var(--ig-gray-400));--message-border-radius: var(--ig-chat-message-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0.3333333333) * 1.5rem), 1.5rem));--box-background-hover: var(--ig-chat-box-background-hover, hsl(from var(--ig-gray-900) h s l/0.05));--focused-bottom-line-color: var(--ig-chat-focused-bottom-line-color, var(--ig-primary-400));--focused-text-color: var(--ig-chat-focused-text-color, var(--ig-gray-900));--ig-theme: indigo;--ig-theme-variant: light}`;\n "]}
@@ -1,3 +1,3 @@
1
1
  import { css } from 'lit';
2
- export const styles = css `:host{--box-background-focus: var(--ig-chat-box-background-focus, var(--ig-gray-300));--focused-bottom-line-color: var(--ig-chat-focused-bottom-line-color, var(--ig-primary-500));--ig-theme: material;--ig-theme-variant: light}`;
2
+ export const styles = css `:host{--message-border-radius: var(--ig-chat-message-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 1) * 1.5rem), 1.5rem));--box-background-focus: var(--ig-chat-box-background-focus, var(--ig-gray-300));--focused-bottom-line-color: var(--ig-chat-focused-bottom-line-color, var(--ig-primary-500));--ig-theme: material;--ig-theme-variant: light}`;
3
3
  //# sourceMappingURL=chat.material.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat.material.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/light/chat.material.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,oOAAoO,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{--box-background-focus: var(--ig-chat-box-background-focus, var(--ig-gray-300));--focused-bottom-line-color: var(--ig-chat-focused-bottom-line-color, var(--ig-primary-500));--ig-theme: material;--ig-theme-variant: light}`;\n "]}
1
+ {"version":3,"file":"chat.material.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/light/chat.material.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,kWAAkW,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{--message-border-radius: var(--ig-chat-message-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 1) * 1.5rem), 1.5rem));--box-background-focus: var(--ig-chat-box-background-focus, var(--ig-gray-300));--focused-bottom-line-color: var(--ig-chat-focused-bottom-line-color, var(--ig-primary-500));--ig-theme: material;--ig-theme-variant: light}`;\n "]}
@@ -1,3 +1,3 @@
1
1
  import { css } from 'lit';
2
- export const styles = css `:host{color-scheme:light;--background: var(--ig-chat-background, var(--ig-surface-500));--header-background: var(--ig-chat-header-background, var(--ig-surface-500));--header-color: var(--ig-chat-header-color, var(--ig-surface-500-contrast));--header-border: var(--ig-chat-header-border, var(--ig-transparent-500));--message-background: var(--ig-chat-message-background, var(--ig-gray-200));--message-color: var(--ig-chat-message-color, var(--ig-gray-800));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-gray-700));--file-background: var(--ig-chat-file-background, var(--ig-gray-900-contrast));--file-icon-color: var(--ig-chat-file-icon-color, var(--ig-gray-500));--file-icon-accent-color: var(--ig-chat-file-icon-accent-color, var(--ig-gray-600));--image-background: var(--ig-chat-image-background, var(--ig-gray-100));--image-border: var(--ig-chat-image-border, var(--ig-gray-300));--image-attachment-icon: var(--ig-chat-image-attachment-icon, var(--ig-gray-900));--chat-input-border: var(--ig-chat-chat-input-border, var(--ig-gray-400));--progress-indicator-color: var(--ig-chat-progress-indicator-color, var(--ig-secondary-500));--code-background: var(--ig-chat-code-background, var(--ig-gray-50));--code-border: var(--ig-chat-code-border, var(--ig-gray-300));--ig-theme-variant: light}:host igc-chat-message::part(message-container){--shiki-purple: #6f42c1;--shiki-navy: #24292e;--shiki-dark-blue: #032f62;--shiki-red: #d73a49;--shiki-blue: #005cc5;--shiki-green: #22863a;--shiki-orange: #e36209}`;
2
+ export const styles = css `:host{color-scheme:light;--background: var(--ig-chat-background, var(--ig-surface-500));--header-background: var(--ig-chat-header-background, var(--ig-surface-500));--header-color: var(--ig-chat-header-color, var(--ig-surface-500-contrast));--header-border: var(--ig-chat-header-border, var(--ig-transparent-500));--sent-message-background: var(--ig-chat-sent-message-background, var(--ig-gray-200));--sent-message-color: var(--ig-chat-sent-message-color, var(--ig-gray-800));--received-message-background: var(--ig-chat-received-message-background, transparent);--received-message-color: var(--ig-chat-received-message-color, var(--ig-gray-800));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-gray-700));--file-background: var(--ig-chat-file-background, var(--ig-gray-900-contrast));--file-icon-color: var(--ig-chat-file-icon-color, var(--ig-gray-500));--file-icon-accent-color: var(--ig-chat-file-icon-accent-color, var(--ig-gray-600));--image-background: var(--ig-chat-image-background, var(--ig-gray-100));--image-border: var(--ig-chat-image-border, var(--ig-gray-300));--image-attachment-icon: var(--ig-chat-image-attachment-icon, var(--ig-gray-900));--chat-input-border: var(--ig-chat-chat-input-border, var(--ig-gray-400));--progress-indicator-color: var(--ig-chat-progress-indicator-color, var(--ig-secondary-500));--code-background: var(--ig-chat-code-background, var(--ig-gray-50));--code-border: var(--ig-chat-code-border, var(--ig-gray-300));--ig-theme-variant: light}:host igc-chat-message::part(message-container){--shiki-purple: #6f42c1;--shiki-navy: #24292e;--shiki-dark-blue: #032f62;--shiki-red: #d73a49;--shiki-blue: #005cc5;--shiki-green: #22863a;--shiki-orange: #e36209}`;
3
3
  //# sourceMappingURL=chat.shared.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat.shared.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/light/chat.shared.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,s/CAAs/C,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{color-scheme:light;--background: var(--ig-chat-background, var(--ig-surface-500));--header-background: var(--ig-chat-header-background, var(--ig-surface-500));--header-color: var(--ig-chat-header-color, var(--ig-surface-500-contrast));--header-border: var(--ig-chat-header-border, var(--ig-transparent-500));--message-background: var(--ig-chat-message-background, var(--ig-gray-200));--message-color: var(--ig-chat-message-color, var(--ig-gray-800));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-gray-700));--file-background: var(--ig-chat-file-background, var(--ig-gray-900-contrast));--file-icon-color: var(--ig-chat-file-icon-color, var(--ig-gray-500));--file-icon-accent-color: var(--ig-chat-file-icon-accent-color, var(--ig-gray-600));--image-background: var(--ig-chat-image-background, var(--ig-gray-100));--image-border: var(--ig-chat-image-border, var(--ig-gray-300));--image-attachment-icon: var(--ig-chat-image-attachment-icon, var(--ig-gray-900));--chat-input-border: var(--ig-chat-chat-input-border, var(--ig-gray-400));--progress-indicator-color: var(--ig-chat-progress-indicator-color, var(--ig-secondary-500));--code-background: var(--ig-chat-code-background, var(--ig-gray-50));--code-border: var(--ig-chat-code-border, var(--ig-gray-300));--ig-theme-variant: light}:host igc-chat-message::part(message-container){--shiki-purple: #6f42c1;--shiki-navy: #24292e;--shiki-dark-blue: #032f62;--shiki-red: #d73a49;--shiki-blue: #005cc5;--shiki-green: #22863a;--shiki-orange: #e36209}`;\n "]}
1
+ {"version":3,"file":"chat.shared.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/light/chat.shared.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,qrDAAqrD,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{color-scheme:light;--background: var(--ig-chat-background, var(--ig-surface-500));--header-background: var(--ig-chat-header-background, var(--ig-surface-500));--header-color: var(--ig-chat-header-color, var(--ig-surface-500-contrast));--header-border: var(--ig-chat-header-border, var(--ig-transparent-500));--sent-message-background: var(--ig-chat-sent-message-background, var(--ig-gray-200));--sent-message-color: var(--ig-chat-sent-message-color, var(--ig-gray-800));--received-message-background: var(--ig-chat-received-message-background, transparent);--received-message-color: var(--ig-chat-received-message-color, var(--ig-gray-800));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-gray-700));--file-background: var(--ig-chat-file-background, var(--ig-gray-900-contrast));--file-icon-color: var(--ig-chat-file-icon-color, var(--ig-gray-500));--file-icon-accent-color: var(--ig-chat-file-icon-accent-color, var(--ig-gray-600));--image-background: var(--ig-chat-image-background, var(--ig-gray-100));--image-border: var(--ig-chat-image-border, var(--ig-gray-300));--image-attachment-icon: var(--ig-chat-image-attachment-icon, var(--ig-gray-900));--chat-input-border: var(--ig-chat-chat-input-border, var(--ig-gray-400));--progress-indicator-color: var(--ig-chat-progress-indicator-color, var(--ig-secondary-500));--code-background: var(--ig-chat-code-background, var(--ig-gray-50));--code-border: var(--ig-chat-code-border, var(--ig-gray-300));--ig-theme-variant: light}:host igc-chat-message::part(message-container){--shiki-purple: #6f42c1;--shiki-navy: #24292e;--shiki-dark-blue: #032f62;--shiki-red: #d73a49;--shiki-blue: #005cc5;--shiki-green: #22863a;--shiki-orange: #e36209}`;\n "]}
@@ -1,3 +1,3 @@
1
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{--igc-chat-message-padding: 0.75rem 1rem;--igc-chat-sent-message-start-margin: auto;--igc-chat-sent-message-end-margin: unset;--igc-chat-message-container-end-margin: auto;display:flex;flex-direction:column;width:100%}[part~=message-container],[part=plain-text]{font-family:var(--ig-body-1-font-family, var(--ig-font-family));font-size:var(--ig-body-1-font-size);font-weight:var(--ig-body-1-font-weight);font-style:var(--ig-body-1-font-style);line-height:var(--ig-body-1-line-height);letter-spacing:var(--ig-body-1-letter-spacing);text-transform:var(--ig-body-1-text-transform);margin-top:var(--ig-body-1-margin-top);margin-bottom:var(--ig-body-1-margin-bottom);margin:0}[part~=message-container]{display:flex;margin-inline-end:var(--igc-chat-message-container-end-margin);flex-direction:column;gap:1rem}[part~=message-container] p{margin:0;padding:0}[part~=message-container] a{overflow-wrap:anywhere;color:var(--ig-primary-500)}[part~=message-container] pre.shiki{font-size:.875rem;line-height:1.5rem;padding:1rem;border-radius:.25rem;max-height:20rem;max-width:42.5rem;overflow-y:auto}[part~=message-header]:empty,[part~=message-attachments]:empty,[part~=message-actions]:empty,[part~=plain-text]:empty{display:none}[part~=sent]{margin-inline:var(--igc-chat-sent-message-start-margin, 0) var(--igc-chat-sent-message-end-margin, 0);padding:var(--igc-chat-message-padding);border-radius:1.5rem 1.5rem 0;max-width:36rem;width:-moz-fit-content;width:fit-content}`;
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{--ig-chat-message-padding-block: max(var(--is-large, 1) * max(12px, -1 * 12px) * var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))), var(--is-medium, 1) * max(12px, -1 * 12px) * var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))), var(--is-small, 1) * max(12px, -1 * 12px) * var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))));--ig-chat-message-padding-inline: max(var(--is-large, 1) * max(16px, -1 * 16px) * var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))), var(--is-medium, 1) * max(16px, -1 * 16px) * var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))), var(--is-small, 1) * max(16px, -1 * 16px) * var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));--ig-chat-message-padding: var(--ig-chat-message-padding-block) var(--ig-chat-message-padding-inline);--ig-chat-sent-message-start-margin: auto;--ig-chat-sent-message-end-margin: unset;--ig-chat-message-container-end-margin: auto;display:flex;flex-direction:column;width:100%}[part~=message-container]{display:flex;margin-inline-end:var(--ig-chat-message-container-end-margin);flex-direction:column;padding:var(--ig-chat-message-padding);gap:1rem}[part~=message-container] p{margin:0;padding:0}[part~=message-container] a{overflow-wrap:anywhere;color:var(--ig-primary-500)}[part~=message-container] pre.shiki{font-size:.875rem;line-height:1.5rem;padding:1rem;border-radius:.25rem;max-height:20rem;max-width:42.5rem;overflow-y:auto}[part~=message-header]:empty,[part~=message-attachments]:empty,[part~=message-actions]:empty,[part~=plain-text]:empty{display:none}[part~=sent]{margin-inline:var(--ig-chat-sent-message-start-margin, 0) var(--ig-chat-sent-message-end-margin, 0);max-width:36rem;width:-moz-fit-content;width:fit-content}`;
3
3
  //# sourceMappingURL=message.base.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"message.base.css.js","sourceRoot":"","sources":["../../../../src/components/chat/themes/message.base.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,q4EAAq4E,CAAC","sourcesContent":["\n import { css } from 'lit';\n 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{--igc-chat-message-padding: 0.75rem 1rem;--igc-chat-sent-message-start-margin: auto;--igc-chat-sent-message-end-margin: unset;--igc-chat-message-container-end-margin: auto;display:flex;flex-direction:column;width:100%}[part~=message-container],[part=plain-text]{font-family:var(--ig-body-1-font-family, var(--ig-font-family));font-size:var(--ig-body-1-font-size);font-weight:var(--ig-body-1-font-weight);font-style:var(--ig-body-1-font-style);line-height:var(--ig-body-1-line-height);letter-spacing:var(--ig-body-1-letter-spacing);text-transform:var(--ig-body-1-text-transform);margin-top:var(--ig-body-1-margin-top);margin-bottom:var(--ig-body-1-margin-bottom);margin:0}[part~=message-container]{display:flex;margin-inline-end:var(--igc-chat-message-container-end-margin);flex-direction:column;gap:1rem}[part~=message-container] p{margin:0;padding:0}[part~=message-container] a{overflow-wrap:anywhere;color:var(--ig-primary-500)}[part~=message-container] pre.shiki{font-size:.875rem;line-height:1.5rem;padding:1rem;border-radius:.25rem;max-height:20rem;max-width:42.5rem;overflow-y:auto}[part~=message-header]:empty,[part~=message-attachments]:empty,[part~=message-actions]:empty,[part~=plain-text]:empty{display:none}[part~=sent]{margin-inline:var(--igc-chat-sent-message-start-margin, 0) var(--igc-chat-sent-message-end-margin, 0);padding:var(--igc-chat-message-padding);border-radius:1.5rem 1.5rem 0;max-width:36rem;width:-moz-fit-content;width:fit-content}`;\n "]}
1
+ {"version":3,"file":"message.base.css.js","sourceRoot":"","sources":["../../../../src/components/chat/themes/message.base.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,uvFAAuvF,CAAC","sourcesContent":["\n import { css } from 'lit';\n 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{--ig-chat-message-padding-block: max(var(--is-large, 1) * max(12px, -1 * 12px) * var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))), var(--is-medium, 1) * max(12px, -1 * 12px) * var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))), var(--is-small, 1) * max(12px, -1 * 12px) * var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))));--ig-chat-message-padding-inline: max(var(--is-large, 1) * max(16px, -1 * 16px) * var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))), var(--is-medium, 1) * max(16px, -1 * 16px) * var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))), var(--is-small, 1) * max(16px, -1 * 16px) * var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));--ig-chat-message-padding: var(--ig-chat-message-padding-block) var(--ig-chat-message-padding-inline);--ig-chat-sent-message-start-margin: auto;--ig-chat-sent-message-end-margin: unset;--ig-chat-message-container-end-margin: auto;display:flex;flex-direction:column;width:100%}[part~=message-container]{display:flex;margin-inline-end:var(--ig-chat-message-container-end-margin);flex-direction:column;padding:var(--ig-chat-message-padding);gap:1rem}[part~=message-container] p{margin:0;padding:0}[part~=message-container] a{overflow-wrap:anywhere;color:var(--ig-primary-500)}[part~=message-container] pre.shiki{font-size:.875rem;line-height:1.5rem;padding:1rem;border-radius:.25rem;max-height:20rem;max-width:42.5rem;overflow-y:auto}[part~=message-header]:empty,[part~=message-attachments]:empty,[part~=message-actions]:empty,[part~=plain-text]:empty{display:none}[part~=sent]{margin-inline:var(--ig-chat-sent-message-start-margin, 0) var(--ig-chat-sent-message-end-margin, 0);max-width:36rem;width:-moz-fit-content;width:fit-content}`;\n "]}
@@ -1,28 +1,14 @@
1
1
  import { css } from 'lit';
2
- import { styles as bootstrap } from './shared/chat-message/chat-message.bootstrap.css.js';
3
- import { styles as fluent } from './shared/chat-message/chat-message.fluent.css.js';
4
2
  import { styles as indigo } from './shared/chat-message/chat-message.indigo.css.js';
5
3
  const light = {
6
- bootstrap: css `
7
- ${bootstrap}
8
- `,
9
4
  indigo: css `
10
5
  ${indigo}
11
6
  `,
12
- fluent: css `
13
- ${fluent}
14
- `,
15
7
  };
16
8
  const dark = {
17
- bootstrap: css `
18
- ${bootstrap}
19
- `,
20
9
  indigo: css `
21
10
  ${indigo}
22
11
  `,
23
- fluent: css `
24
- ${fluent}
25
- `,
26
12
  };
27
13
  export const all = { light, dark };
28
14
  //# sourceMappingURL=message.js.map