@tylertech/forge-ai 0.13.10 → 0.13.12

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 (67) hide show
  1. package/custom-elements.json +581 -51
  2. package/dist/ai-assistant-response/ai-assistant-response.d.ts +1 -0
  3. package/dist/ai-assistant-response/ai-assistant-response.mjs +35 -3
  4. package/dist/ai-assistant-response/ai-assistant-response.scss.mjs +1 -1
  5. package/dist/ai-chain-of-thought/thought-detail/thought-detail.mjs +1 -1
  6. package/dist/ai-chain-of-thought/thought-image/thought-image.mjs +1 -1
  7. package/dist/ai-chain-of-thought/thought-search-result/thought-search-result.mjs +2 -2
  8. package/dist/ai-chat-header/ai-chat-header.mjs +27 -10
  9. package/dist/ai-chatbot/agent-adapter.d.ts +1 -0
  10. package/dist/ai-chatbot/ai-chatbot-base.d.ts +23 -1
  11. package/dist/ai-chatbot/ai-chatbot-base.mjs +28 -9
  12. package/dist/ai-chatbot/ai-chatbot.d.ts +2 -0
  13. package/dist/ai-chatbot/ai-chatbot.mjs +5 -0
  14. package/dist/ai-chatbot/index.d.ts +1 -1
  15. package/dist/ai-chatbot/message-state-controller.d.ts +11 -1
  16. package/dist/ai-chatbot/message-state-controller.mjs +54 -1
  17. package/dist/ai-chatbot/types.d.ts +27 -0
  18. package/dist/ai-chatbot-launcher/ai-chatbot-launcher.mjs +7 -2
  19. package/dist/ai-client-message/ai-client-message.d.ts +28 -0
  20. package/dist/ai-client-message/ai-client-message.mjs +112 -0
  21. package/dist/ai-client-message/ai-client-message.scss.mjs +4 -0
  22. package/dist/ai-client-message/index.d.ts +1 -0
  23. package/dist/ai-client-message/index.mjs +5 -0
  24. package/dist/ai-conversations-panel/ai-conversations-panel.d.ts +1 -0
  25. package/dist/ai-conversations-panel/ai-conversations-panel.mjs +21 -8
  26. package/dist/ai-conversations-panel/ai-conversations-panel.scss.mjs +1 -1
  27. package/dist/ai-copy-button/ai-copy-button.mjs +2 -2
  28. package/dist/ai-dialog/ai-dialog.d.ts +4 -0
  29. package/dist/ai-dialog/ai-dialog.mjs +10 -3
  30. package/dist/ai-dropdown-menu/ai-dropdown-menu-item.mjs +10 -2
  31. package/dist/ai-dropdown-menu/ai-dropdown-menu.d.ts +5 -0
  32. package/dist/ai-dropdown-menu/ai-dropdown-menu.mjs +4 -0
  33. package/dist/ai-edit-thread/ai-edit-thread.mjs +2 -2
  34. package/dist/ai-embedded-chat/ai-embedded-chat.d.ts +4 -0
  35. package/dist/ai-embedded-chat/ai-embedded-chat.mjs +5 -0
  36. package/dist/ai-empty-state/ai-empty-state.scss.mjs +1 -1
  37. package/dist/ai-error-message/ai-error-message.mjs +2 -1
  38. package/dist/ai-file-picker/ai-file-picker.mjs +1 -1
  39. package/dist/ai-floating-chat/ai-floating-chat.d.ts +5 -0
  40. package/dist/ai-floating-chat/ai-floating-chat.mjs +5 -0
  41. package/dist/ai-icon/ai-icon.mjs +1 -1
  42. package/dist/ai-message-thread/ai-message-thread.mjs +18 -25
  43. package/dist/ai-message-thread/ai-message-thread.scss.mjs +1 -1
  44. package/dist/ai-modal/ai-modal.d.ts +4 -0
  45. package/dist/ai-modal/ai-modal.mjs +5 -1
  46. package/dist/ai-prompt/ai-prompt.mjs +3 -3
  47. package/dist/ai-reasoning-header/ai-reasoning-header.mjs +3 -3
  48. package/dist/ai-response-message-toolbar/ai-response-message-toolbar.mjs +6 -6
  49. package/dist/ai-slash-command-menu/ai-slash-command-menu.mjs +1 -1
  50. package/dist/ai-spinner/ai-spinner.mjs +1 -1
  51. package/dist/ai-suggestions/ai-suggestions.mjs +1 -1
  52. package/dist/ai-thread-actions-menu/ai-thread-actions-menu.mjs +14 -3
  53. package/dist/ai-threads/ai-threads.mjs +5 -3
  54. package/dist/ai-threads-search/ai-threads-search.mjs +3 -3
  55. package/dist/ai-tool-call-indicator/ai-tool-call-indicator.mjs +32 -6
  56. package/dist/ai-user-message-toolbar/ai-user-message-toolbar.mjs +3 -3
  57. package/dist/ai-voice-input/ai-voice-input.mjs +1 -1
  58. package/dist/core/chatbot-core-controller.d.ts +5 -1
  59. package/dist/core/chatbot-core-controller.mjs +25 -10
  60. package/dist/index.d.ts +1 -0
  61. package/dist/index.mjs +3 -0
  62. package/dist/tools/ai-data-table/ai-data-table.d.ts +0 -1
  63. package/dist/tools/ai-data-table/ai-data-table.mjs +9 -16
  64. package/dist/tools/ai-data-table/ai-data-table.scss.mjs +1 -1
  65. package/dist/tools/ai-paginator/ai-paginator.mjs +2 -2
  66. package/dist/utils/markdown.mjs +1 -1
  67. package/package.json +6 -6
@@ -1,4 +1,4 @@
1
- const styles = '/* prettier-ignore */\n/**\n * @license\n * Copyright Tyler Technologies, Inc.\n * License: Apache-2.0\n */\n.forge-button {\n --_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-primary, #3f51b5));\n --_button-text-color:var(--forge-button-text-color, var(--_button-primary-color));\n --_button-disabled-color:var(--forge-button-disabled-color, var(--forge-theme-surface-container, #e0e0e0));\n --_button-padding:var(--forge-button-padding, var(--forge-spacing-medium, 16px));\n --_button-display:var(--forge-button-display, inline-grid);\n --_button-justify:var(--forge-button-justify, center);\n --_button-shape:var(--forge-button-shape, calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1)));\n --_button-height:var(--forge-button-height, 36px);\n --_button-min-width:var(--forge-button-min-width, 64px);\n --_button-spacing:var(--forge-button-spacing, var(--forge-spacing-xsmall, 8px));\n --_button-border-width:var(--forge-button-border-width, medium);\n --_button-border-style:var(--forge-button-border-style, none);\n --_button-border-color:var(--forge-button-border-color, currentColor);\n --_button-shape-start-start-radius:var(--forge-button-shape-start-start-radius, var(--_button-shape));\n --_button-shape-start-end-radius:var(--forge-button-shape-start-end-radius, var(--_button-shape));\n --_button-shape-end-start-radius:var(--forge-button-shape-end-start-radius, var(--_button-shape));\n --_button-shape-end-end-radius:var(--forge-button-shape-end-end-radius, var(--_button-shape));\n --_button-padding-block:var(--forge-button-padding-block, var(--_button-0));\n --_button-padding-inline:var(--forge-button-padding-inline, var(--_button-padding));\n --_button-background:var(--forge-button-background, transparent);\n --_button-hover-background:var(--forge-button-hover-background, var(--_button-background));\n --_button-active-background:var(--forge-button-active-background, var(--_button-background));\n --_button-color:var(--forge-button-color, var(--_button-text-color));\n --_button-icon-size:var(--forge-button-icon-size, calc(var(--forge-typography-font-size, 1rem) * 1.125));\n --_button-shadow:var(--forge-button-shadow, none);\n --_button-hover-shadow:var(--forge-button-hover-shadow, none);\n --_button-active-shadow:var(--forge-button-active-shadow, none);\n --_button-cursor:var(--forge-button-cursor, pointer);\n --_button-transition-duration:var(--forge-button-transition-duration, var(--forge-animation-duration-short3, 150ms));\n --_button-transition-timing:var(--forge-button-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));\n --_button-text-padding-inline:var(--forge-button-text-padding-inline, var(--forge-spacing-xsmall, 8px));\n --_button-outlined-background:var(--forge-button-outlined-background, transparent);\n --_button-outlined-color:var(--forge-button-outlined-color, var(--_button-primary-color));\n --_button-outlined-border-width:var(--forge-button-outlined-border-width, var(--forge-border-thin, 1px));\n --_button-outlined-border-style:var(--forge-button-outlined-border-style, solid);\n --_button-outlined-border-color:var(--forge-button-outlined-border-color, var(--_button-primary-color));\n --_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-primary-container, #d1d5ed));\n --_button-tonal-disabled-background:var(--forge-button-tonal-disabled-background, var(--_button-disabled-color));\n --_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-primary-container, #222c62));\n --_button-tonal-disabled-color:var(--forge-button-tonal-disabled-color, var(--_button-disabled-text-color));\n --_button-filled-background:var(--forge-button-filled-background, var(--_button-primary-color));\n --_button-filled-disabled-background:var(--forge-button-filled-disabled-background, var(--_button-disabled-color));\n --_button-filled-color:var(--forge-button-filled-color, var(--forge-theme-on-primary, #ffffff));\n --_button-filled-disabled-color:var(--forge-button-filled-disabled-color, var(--_button-disabled-text-color));\n --_button-raised-background:var(--forge-button-raised-background, var(--_button-primary-color));\n --_button-raised-disabled-background:var(--forge-button-raised-disabled-background, var(--_button-disabled-color));\n --_button-raised-color:var(--forge-button-raised-color, var(--forge-theme-on-primary, #ffffff));\n --_button-raised-disabled-color:var(--forge-button-raised-disabled-color, var(--_button-disabled-text-color));\n --_button-raised-shadow:var(--forge-button-raised-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12));\n --_button-raised-hover-shadow:var(--forge-button-raised-hover-shadow, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12));\n --_button-raised-active-shadow:var(--forge-button-raised-active-shadow, 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12));\n --_button-raised-disabled-shadow:var(--forge-button-raised-disabled-shadow, none);\n --_button-link-color:var(--forge-button-link-color, var(--_button-primary-color));\n --_button-link-text-decoration:var(--forge-button-link-text-decoration, underline);\n --_button-link-height:var(--forge-button-link-height, auto);\n --_button-link-padding:var(--forge-button-link-padding, 0);\n --_button-link-line-height:var(--forge-button-link-line-height, normal);\n --_button-link-width:var(--forge-button-link-width, auto);\n --_button-link-hover-text-decoration:var(--forge-button-link-hover-text-decoration, none);\n --_button-link-active-opacity:var(--forge-button-link-active-opacity, 0.65);\n --_button-link-transition-duration:var(--forge-button-link-transition-duration, var(--forge-animation-duration-short3, 150ms));\n --_button-link-transition-timing:var(--forge-button-link-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));\n --_button-disabled-cursor:var(--forge-button-disabled-cursor, not-allowed);\n --_button-disabled-text-color:var(--forge-button-disabled-text-color, var(--forge-theme-text-low, rgba(0, 0, 0, 0.38)));\n --_button-disabled-background:var(--forge-button-disabled-background, transparent);\n --_button-disabled-border-color:var(--forge-button-disabled-border-color, var(--_button-disabled-color));\n --_button-disabled-shadow:var(--forge-button-disabled-shadow, none);\n --_button-dense-height:var(--forge-button-dense-height, 24px);\n --_button-pill-shape:var(--forge-button-pill-shape, calc(var(--forge-shape-full, 9999px) * var(--forge-shape-factor, 1)));\n --_button-pill-padding-inline:var(--forge-button-pill-padding-inline, var(--forge-spacing-small, 12px));\n --_button-focus-indicator-offset:var(--forge-button-focus-indicator-offset, 4px);\n --_button-text-focus-indicator-offset:var(--forge-button-text-focus-indicator-offset, 0px);\n --_button-link-focus-indicator-offset:var(--forge-button-link-focus-indicator-offset, 2px);\n --_button-popover-icon-transition-duration:var(--forge-button-popover-icon-transition-duration, var(--forge-animation-duration-short3, 150ms));\n --_button-popover-icon-transition-timing:var(--forge-button-popover-icon-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));\n --_button-popover-icon-open-rotation:var(--forge-button-popover-icon-open-rotation, 180deg);\n}\n\n.forge-button {\n display: var(--_button-display);\n position: relative;\n outline: none;\n vertical-align: middle;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-family: var(--forge-typography-button-font-family, var(--forge-typography-font-family, "Roboto", sans-serif));\n font-size: var(--forge-typography-button-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-button-font-size-scale, 0.875)));\n font-weight: var(--forge-typography-button-font-weight, 500);\n line-height: var(--forge-typography-button-line-height, normal);\n letter-spacing: var(--forge-typography-button-letter-spacing, 0.0714285714em);\n text-transform: var(--forge-typography-button-text-transform, inherit);\n text-decoration: var(--forge-typography-button-text-decoration, inherit);\n position: relative;\n display: var(--_button-display);\n grid-auto-flow: column;\n align-items: center;\n justify-content: var(--_button-justify);\n gap: var(--_button-spacing);\n z-index: 0;\n box-sizing: border-box;\n min-inline-size: var(--_button-min-width);\n height: var(--_button-height);\n inline-size: 100%;\n border-width: var(--_button-border-width);\n border-style: var(--_button-border-style);\n border-color: var(--_button-border-color);\n border-start-start-radius: var(--_button-shape-start-start-radius);\n border-start-end-radius: var(--_button-shape-start-end-radius);\n border-end-start-radius: var(--_button-shape-end-start-radius);\n border-end-end-radius: var(--_button-shape-end-end-radius);\n padding-block: var(--_button-padding-block);\n padding-inline: var(--_button-padding-inline);\n box-shadow: var(--_button-shadow);\n outline: none;\n user-select: none;\n -webkit-appearance: none;\n vertical-align: middle;\n text-decoration: none;\n white-space: nowrap;\n background: var(--_button-background);\n color: var(--_button-color);\n cursor: var(--_button-cursor);\n transition-property: box-shadow, background;\n transition-duration: var(--_button-transition-duration);\n transition-timing-function: var(--_button-transition-timing);\n}\n\n.forge-button::-moz-focus-inner {\n padding: 0;\n border: 0;\n}\n\n.forge-button:hover {\n --_button-shadow:var(--_button-hover-shadow);\n background: var(--_button-hover-background);\n}\n\n.forge-button:active {\n --_button-shadow:var(--_button-active-shadow);\n background: var(--_button-active-background);\n}\n\n.forge-button {\n position: relative;\n inline-size: auto;\n}\n\n.forge-button:not(:disabled):not(.forge-button--link) {\n --_state-layer-display:var(--forge-state-layer-display, flex);\n --_state-layer-color:var(--forge-state-layer-color, var(--forge-theme-on-surface, #000000));\n --_state-layer-hover-color:var(--forge-state-layer-hover-color, var(--_state-layer-color));\n --_state-layer-hover-opacity:var(--forge-state-layer-hover-opacity, 0.08);\n --_state-layer-pressed-color:var(--forge-state-layer-pressed-color, var(--_state-layer-color));\n --_state-layer-pressed-opacity:var(--forge-state-layer-pressed-opacity, 0.12);\n --_state-layer-hover-duration:var(--forge-state-layer-hover-duration, 15ms);\n --_state-layer-pressed-duration:var(--forge-state-layer-pressed-duration, 105ms);\n --_state-layer-animation-duration:var(--forge-state-layer-animation-duration, 375ms);\n}\n\n.forge-button:not(:disabled):not(.forge-button--link)::before {\n opacity: 0;\n position: absolute;\n backface-visibility: hidden;\n transform: translateZ(0);\n background-color: var(--_state-layer-hover-color);\n inset: 0;\n transition: opacity var(--_state-layer-hover-duration) linear, background-color var(--_state-layer-hover-duration) linear;\n --_state-layer-hover-duration:var(--forge-state-layer-hover-duration, 100ms);\n content: "";\n opacity: 0;\n border-radius: inherit;\n}\n\n.forge-button:not(:disabled):not(.forge-button--link):hover::before {\n background-color: var(--_state-layer-hover-color);\n opacity: var(--_state-layer-hover-opacity);\n}\n\n.forge-button:not(:disabled):not(.forge-button--link):active::before {\n opacity: var(--_state-layer-pressed-opacity);\n transition-duration: var(--_state-layer-pressed-duration);\n --_state-layer-pressed-opacity:var(--forge-state-layer-pressed-opacity, 0.18);\n}\n\n@keyframes forge-focus-indicator-outward-grow {\n from {\n outline-width: 0;\n }\n to {\n outline-width: var(--_focus-indicator-active-width);\n }\n}\n@keyframes forge-focus-indicator-outward-shrink {\n from {\n outline-width: var(--_focus-indicator-active-width);\n }\n}\n@keyframes forge-focus-indicator-inward-grow {\n from {\n border-width: 0;\n }\n to {\n border-width: var(--_focus-indicator-active-width);\n }\n}\n@keyframes forge-focus-indicator-inward-shrink {\n from {\n border-width: var(--_focus-indicator-active-width);\n }\n}\n.forge-button:not(:disabled) {\n outline: none;\n}\n\n.forge-button:not(:disabled):focus-visible::after {\n --_focus-indicator-display:var(--forge-focus-indicator-display, flex);\n --_focus-indicator-width:var(--forge-focus-indicator-width, var(--forge-border-medium, 2px));\n --_focus-indicator-active-width:var(--forge-focus-indicator-active-width, 6px);\n --_focus-indicator-color:var(--forge-focus-indicator-color, var(--forge-theme-primary, #3f51b5));\n --_focus-indicator-shape:var(--forge-focus-indicator-shape, calc(var(--forge-shape-extra-small, 1px) * var(--forge-shape-factor, 1)));\n --_focus-indicator-duration:var(--forge-focus-indicator-duration, var(--forge-animation-duration-long4, 600ms));\n --_focus-indicator-easing:var(--forge-focus-indicator-easing, var(--forge-animation-easing-emphasized, cubic-bezier(0.2, 0, 0, 1)));\n --_focus-indicator-shape-start-start:var(--forge-focus-indicator-shape-start-start, var(--_focus-indicator-shape));\n --_focus-indicator-shape-start-end:var(--forge-focus-indicator-shape-start-end, var(--_focus-indicator-shape));\n --_focus-indicator-shape-end-end:var(--forge-focus-indicator-shape-end-end, var(--_focus-indicator-shape));\n --_focus-indicator-shape-end-start:var(--forge-focus-indicator-shape-end-start, var(--_focus-indicator-shape));\n --_focus-indicator-outward-offset:var(--forge-focus-indicator-outward-offset, var(--forge-spacing-xxsmall, 4px));\n --_focus-indicator-inward-offset:var(--forge-focus-indicator-inward-offset, 0px);\n --_focus-indicator-offset-block:var(--forge-focus-indicator-offset-block, 0);\n --_focus-indicator-offset-inline:var(--forge-focus-indicator-offset-inline, 0);\n}\n\n.forge-button:not(:disabled):focus-visible::after {\n animation-delay: 0s, calc(var(--_focus-indicator-duration) * 0.25);\n animation-duration: calc(var(--_focus-indicator-duration) * 0.25), calc(var(--_focus-indicator-duration) * 0.75);\n animation-timing-function: var(--_focus-indicator-easing);\n box-sizing: border-box;\n color: var(--_focus-indicator-color);\n display: none;\n pointer-events: none;\n position: absolute;\n margin-block: var(--_focus-indicator-offset-block);\n margin-inline: var(--_focus-indicator-offset-inline);\n animation-name: forge-focus-indicator-outward-grow, forge-focus-indicator-outward-shrink;\n border-end-end-radius: calc(var(--_focus-indicator-shape-end-end) + var(--_focus-indicator-outward-offset));\n border-end-start-radius: calc(var(--_focus-indicator-shape-end-start) + var(--_focus-indicator-outward-offset));\n border-start-end-radius: calc(var(--_focus-indicator-shape-start-end) + var(--_focus-indicator-outward-offset));\n border-start-start-radius: calc(var(--_focus-indicator-shape-start-start) + var(--_focus-indicator-outward-offset));\n inset: calc(-1 * var(--_focus-indicator-outward-offset));\n outline: var(--_focus-indicator-width) solid currentColor;\n content: "";\n display: block;\n}\n\n.forge-button:not(:disabled) {\n --forge-focus-indicator-color: var(--_button-primary-color);\n}\n\n.forge-button:disabled {\n cursor: var(--_button-disabled-cursor);\n --_button-background:var(--_button-disabled-background);\n --_button-color:var(--_button-disabled-text-color);\n --_button-shadow:var(--_button-disabled-shadow);\n pointer-events: none;\n pointer-events: initial;\n}\n\n.forge-button:where(:not(.forge-button--outlined, .forge-button--tonal, .forge-button--filled, .forge-button--raised, .forge-button--link)), .forge-button--text {\n --_button-padding-inline:var(--_button-text-padding-inline);\n}\n\n.forge-button--outlined {\n --_button-background:var(--_button-outlined-background);\n --_button-color:var(--_button-outlined-color);\n --_button-border-width:var(--_button-outlined-border-width);\n --_button-border-style:var(--_button-outlined-border-style);\n --_button-border-color:var(--_button-outlined-border-color);\n}\n\n.forge-button--outlined:disabled {\n --_button-border-color:var(--_button-disabled-border-color);\n}\n\n.forge-button--tonal {\n --_button-background:var(--_button-tonal-background);\n --_button-color:var(--_button-tonal-color);\n}\n\n.forge-button--tonal:disabled {\n --_button-background:var(--_button-tonal-disabled-background);\n --_button-color:var(--_button-tonal-disabled-color);\n}\n\n.forge-button--filled, .forge-button--raised {\n --_button-background:var(--_button-filled-background);\n --_button-color:var(--_button-filled-color);\n --forge-state-layer-color: var(--_button-filled-color);\n}\n\n.forge-button--filled:disabled, .forge-button--raised:disabled {\n --_button-background:var(--_button-filled-disabled-background);\n --_button-color:var(--_button-filled-disabled-color);\n}\n\n.forge-button--raised {\n --_button-background:var(--_button-raised-background);\n --_button-color:var(--_button-raised-color);\n --_button-shadow:var(--_button-raised-shadow);\n}\n\n.forge-button--raised:hover {\n --_button-shadow:var(--_button-raised-hover-shadow);\n}\n\n.forge-button--raised:active {\n --_button-shadow:var(--_button-raised-active-shadow);\n}\n\n.forge-button--raised:disabled {\n --_button-background:var(--_button-raised-disabled-background);\n --_button-color:var(--_button-raised-disabled-color);\n --_button-shadow:var(--_button-raised-disabled-shadow);\n}\n\n.forge-button--link {\n --_button-color:var(--_button-link-color);\n --_button-height:var(--_button-link-height);\n --_button-padding:var(--_button-link-padding);\n --_button-focus-indicator-offset:var(--_button-link-focus-indicator-offset);\n text-decoration: var(--_button-link-text-decoration);\n line-height: var(--_button-link-line-height);\n transition: opacity var(--_button-link-transition-duration) var(--_button-link-transition-timing);\n inline-size: var(--_button-link-width);\n}\n\n.forge-button--link:hover {\n text-decoration: var(--_button-link-hover-text-decoration);\n}\n\n.forge-button--link:active {\n opacity: var(--_button-link-active-opacity);\n}\n\n.forge-button--pill {\n --_button-shape:var(--_button-pill-shape);\n --_button-padding-inline:var(--_button-pill-padding-inline);\n --forge-focus-indicator-shape: var(--_button-pill-shape);\n}\n\n.forge-button {\n --forge-icon-font-size: var(--_button-icon-size);\n}\n\n.forge-button--dense {\n --_button-height:var(--_button-dense-height);\n}\n\n:host {\n display: block;\n --_ai-empty-state-max-width: 420px;\n}\n\n.empty-state-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: var(--forge-spacing-medium, 16px);\n margin: 0 auto;\n width: 100%;\n max-width: var(--ai-empty-state-max-width, var(--_ai-empty-state-max-width));\n}\n\n.heading-message-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: var(--forge-spacing-xsmall, 8px);\n}\n\n.heading {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-family: var(--forge-typography-heading4-font-family, var(--forge-typography-font-family, "Roboto", sans-serif));\n font-size: var(--forge-typography-heading4-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-heading4-font-size-scale, 1.25)));\n font-weight: var(--forge-typography-heading4-font-weight, 500);\n line-height: var(--forge-typography-heading4-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-heading4-line-height-scale, 1.5)));\n letter-spacing: var(--forge-typography-heading4-letter-spacing, 0.005em);\n text-transform: var(--forge-typography-heading4-text-transform, inherit);\n text-decoration: var(--forge-typography-heading4-text-decoration, inherit);\n text-align: center;\n}\n\n.message {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-family: var(--forge-typography-body2-font-family, var(--forge-typography-font-family, "Roboto", sans-serif));\n font-size: var(--forge-typography-body2-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-font-size-scale, 1)));\n font-weight: var(--forge-typography-body2-font-weight, 400);\n line-height: var(--forge-typography-body2-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-line-height-scale, 1.375)));\n letter-spacing: var(--forge-typography-body2-letter-spacing, 0.015625em);\n text-transform: var(--forge-typography-body2-text-transform, inherit);\n text-decoration: var(--forge-typography-body2-text-decoration, inherit);\n text-align: center;\n}\n\n::slotted(:where(p, h1, h2, h3, h4, h5, h6)) {\n margin: 0;\n}\n\n::slotted([slot=icon]) {\n height: 200px;\n width: 200px;\n}';
1
+ const styles = '/* prettier-ignore */\n/**\n * @license\n * Copyright Tyler Technologies, Inc.\n * License: Apache-2.0\n */\n.forge-button {\n --_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-primary, #3f51b5));\n --_button-text-color:var(--forge-button-text-color, var(--_button-primary-color));\n --_button-disabled-color:var(--forge-button-disabled-color, var(--forge-theme-surface-container, #e0e0e0));\n --_button-padding:var(--forge-button-padding, var(--forge-spacing-medium, 16px));\n --_button-display:var(--forge-button-display, inline-grid);\n --_button-justify:var(--forge-button-justify, center);\n --_button-shape:var(--forge-button-shape, calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1)));\n --_button-height:var(--forge-button-height, 36px);\n --_button-min-width:var(--forge-button-min-width, 64px);\n --_button-spacing:var(--forge-button-spacing, var(--forge-spacing-xsmall, 8px));\n --_button-border-width:var(--forge-button-border-width, medium);\n --_button-border-style:var(--forge-button-border-style, none);\n --_button-border-color:var(--forge-button-border-color, currentColor);\n --_button-shape-start-start-radius:var(--forge-button-shape-start-start-radius, var(--_button-shape));\n --_button-shape-start-end-radius:var(--forge-button-shape-start-end-radius, var(--_button-shape));\n --_button-shape-end-start-radius:var(--forge-button-shape-end-start-radius, var(--_button-shape));\n --_button-shape-end-end-radius:var(--forge-button-shape-end-end-radius, var(--_button-shape));\n --_button-padding-block:var(--forge-button-padding-block, var(--_button-0));\n --_button-padding-inline:var(--forge-button-padding-inline, var(--_button-padding));\n --_button-background:var(--forge-button-background, transparent);\n --_button-hover-background:var(--forge-button-hover-background, var(--_button-background));\n --_button-active-background:var(--forge-button-active-background, var(--_button-background));\n --_button-color:var(--forge-button-color, var(--_button-text-color));\n --_button-icon-size:var(--forge-button-icon-size, calc(var(--forge-typography-font-size, 1rem) * 1.125));\n --_button-shadow:var(--forge-button-shadow, none);\n --_button-hover-shadow:var(--forge-button-hover-shadow, none);\n --_button-active-shadow:var(--forge-button-active-shadow, none);\n --_button-cursor:var(--forge-button-cursor, pointer);\n --_button-transition-duration:var(--forge-button-transition-duration, var(--forge-animation-duration-short3, 150ms));\n --_button-transition-timing:var(--forge-button-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));\n --_button-text-padding-inline:var(--forge-button-text-padding-inline, var(--forge-spacing-xsmall, 8px));\n --_button-outlined-background:var(--forge-button-outlined-background, transparent);\n --_button-outlined-color:var(--forge-button-outlined-color, var(--_button-primary-color));\n --_button-outlined-border-width:var(--forge-button-outlined-border-width, var(--forge-border-thin, 1px));\n --_button-outlined-border-style:var(--forge-button-outlined-border-style, solid);\n --_button-outlined-border-color:var(--forge-button-outlined-border-color, var(--_button-primary-color));\n --_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-primary-container, #d1d5ed));\n --_button-tonal-disabled-background:var(--forge-button-tonal-disabled-background, var(--_button-disabled-color));\n --_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-primary-container, #222c62));\n --_button-tonal-disabled-color:var(--forge-button-tonal-disabled-color, var(--_button-disabled-text-color));\n --_button-filled-background:var(--forge-button-filled-background, var(--_button-primary-color));\n --_button-filled-disabled-background:var(--forge-button-filled-disabled-background, var(--_button-disabled-color));\n --_button-filled-color:var(--forge-button-filled-color, var(--forge-theme-on-primary, #ffffff));\n --_button-filled-disabled-color:var(--forge-button-filled-disabled-color, var(--_button-disabled-text-color));\n --_button-raised-background:var(--forge-button-raised-background, var(--_button-primary-color));\n --_button-raised-disabled-background:var(--forge-button-raised-disabled-background, var(--_button-disabled-color));\n --_button-raised-color:var(--forge-button-raised-color, var(--forge-theme-on-primary, #ffffff));\n --_button-raised-disabled-color:var(--forge-button-raised-disabled-color, var(--_button-disabled-text-color));\n --_button-raised-shadow:var(--forge-button-raised-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12));\n --_button-raised-hover-shadow:var(--forge-button-raised-hover-shadow, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12));\n --_button-raised-active-shadow:var(--forge-button-raised-active-shadow, 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12));\n --_button-raised-disabled-shadow:var(--forge-button-raised-disabled-shadow, none);\n --_button-link-color:var(--forge-button-link-color, var(--_button-primary-color));\n --_button-link-text-decoration:var(--forge-button-link-text-decoration, underline);\n --_button-link-height:var(--forge-button-link-height, auto);\n --_button-link-padding:var(--forge-button-link-padding, 0);\n --_button-link-line-height:var(--forge-button-link-line-height, normal);\n --_button-link-width:var(--forge-button-link-width, auto);\n --_button-link-hover-text-decoration:var(--forge-button-link-hover-text-decoration, none);\n --_button-link-active-opacity:var(--forge-button-link-active-opacity, 0.65);\n --_button-link-transition-duration:var(--forge-button-link-transition-duration, var(--forge-animation-duration-short3, 150ms));\n --_button-link-transition-timing:var(--forge-button-link-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));\n --_button-disabled-cursor:var(--forge-button-disabled-cursor, not-allowed);\n --_button-disabled-text-color:var(--forge-button-disabled-text-color, var(--forge-theme-text-low, rgba(0, 0, 0, 0.38)));\n --_button-disabled-background:var(--forge-button-disabled-background, transparent);\n --_button-disabled-border-color:var(--forge-button-disabled-border-color, var(--_button-disabled-color));\n --_button-disabled-shadow:var(--forge-button-disabled-shadow, none);\n --_button-dense-height:var(--forge-button-dense-height, 24px);\n --_button-pill-shape:var(--forge-button-pill-shape, calc(var(--forge-shape-full, 9999px) * var(--forge-shape-factor, 1)));\n --_button-pill-padding-inline:var(--forge-button-pill-padding-inline, var(--forge-spacing-small, 12px));\n --_button-focus-indicator-offset:var(--forge-button-focus-indicator-offset, 4px);\n --_button-text-focus-indicator-offset:var(--forge-button-text-focus-indicator-offset, 0px);\n --_button-link-focus-indicator-offset:var(--forge-button-link-focus-indicator-offset, 2px);\n --_button-popover-icon-transition-duration:var(--forge-button-popover-icon-transition-duration, var(--forge-animation-duration-short3, 150ms));\n --_button-popover-icon-transition-timing:var(--forge-button-popover-icon-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));\n --_button-popover-icon-open-rotation:var(--forge-button-popover-icon-open-rotation, 180deg);\n}\n\n.forge-button {\n display: var(--_button-display);\n position: relative;\n outline: none;\n vertical-align: middle;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-family: var(--forge-typography-button-font-family, var(--forge-typography-font-family, "Roboto", sans-serif));\n font-size: var(--forge-typography-button-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-button-font-size-scale, 0.875)));\n font-weight: var(--forge-typography-button-font-weight, 500);\n line-height: var(--forge-typography-button-line-height, normal);\n letter-spacing: var(--forge-typography-button-letter-spacing, 0.0714285714em);\n text-transform: var(--forge-typography-button-text-transform, inherit);\n text-decoration: var(--forge-typography-button-text-decoration, inherit);\n position: relative;\n display: var(--_button-display);\n grid-auto-flow: column;\n align-items: center;\n justify-content: var(--_button-justify);\n gap: var(--_button-spacing);\n z-index: 0;\n box-sizing: border-box;\n min-inline-size: var(--_button-min-width);\n height: var(--_button-height);\n inline-size: 100%;\n border-width: var(--_button-border-width);\n border-style: var(--_button-border-style);\n border-color: var(--_button-border-color);\n border-start-start-radius: var(--_button-shape-start-start-radius);\n border-start-end-radius: var(--_button-shape-start-end-radius);\n border-end-start-radius: var(--_button-shape-end-start-radius);\n border-end-end-radius: var(--_button-shape-end-end-radius);\n padding-block: var(--_button-padding-block);\n padding-inline: var(--_button-padding-inline);\n box-shadow: var(--_button-shadow);\n outline: none;\n user-select: none;\n -webkit-appearance: none;\n vertical-align: middle;\n text-decoration: none;\n white-space: nowrap;\n background: var(--_button-background);\n color: var(--_button-color);\n cursor: var(--_button-cursor);\n transition-property: box-shadow, background;\n transition-duration: var(--_button-transition-duration);\n transition-timing-function: var(--_button-transition-timing);\n}\n\n.forge-button::-moz-focus-inner {\n padding: 0;\n border: 0;\n}\n\n.forge-button:hover {\n --_button-shadow:var(--_button-hover-shadow);\n background: var(--_button-hover-background);\n}\n\n.forge-button:active {\n --_button-shadow:var(--_button-active-shadow);\n background: var(--_button-active-background);\n}\n\n.forge-button {\n position: relative;\n inline-size: auto;\n}\n\n.forge-button:not(:disabled):not(.forge-button--link) {\n --_state-layer-display:var(--forge-state-layer-display, flex);\n --_state-layer-color:var(--forge-state-layer-color, var(--forge-theme-on-surface, #000000));\n --_state-layer-hover-color:var(--forge-state-layer-hover-color, var(--_state-layer-color));\n --_state-layer-hover-opacity:var(--forge-state-layer-hover-opacity, 0.08);\n --_state-layer-pressed-color:var(--forge-state-layer-pressed-color, var(--_state-layer-color));\n --_state-layer-pressed-opacity:var(--forge-state-layer-pressed-opacity, 0.12);\n --_state-layer-hover-duration:var(--forge-state-layer-hover-duration, 15ms);\n --_state-layer-pressed-duration:var(--forge-state-layer-pressed-duration, 105ms);\n --_state-layer-animation-duration:var(--forge-state-layer-animation-duration, 375ms);\n}\n\n.forge-button:not(:disabled):not(.forge-button--link)::before {\n opacity: 0;\n position: absolute;\n backface-visibility: hidden;\n transform: translateZ(0);\n background-color: var(--_state-layer-hover-color);\n inset: 0;\n transition: opacity var(--_state-layer-hover-duration) linear, background-color var(--_state-layer-hover-duration) linear;\n --_state-layer-hover-duration:var(--forge-state-layer-hover-duration, 100ms);\n content: "";\n opacity: 0;\n border-radius: inherit;\n}\n\n.forge-button:not(:disabled):not(.forge-button--link):hover::before {\n background-color: var(--_state-layer-hover-color);\n opacity: var(--_state-layer-hover-opacity);\n}\n\n.forge-button:not(:disabled):not(.forge-button--link):active::before {\n opacity: var(--_state-layer-pressed-opacity);\n transition-duration: var(--_state-layer-pressed-duration);\n --_state-layer-pressed-opacity:var(--forge-state-layer-pressed-opacity, 0.18);\n}\n\n@keyframes forge-focus-indicator-outward-grow {\n from {\n outline-width: 0;\n }\n to {\n outline-width: var(--_focus-indicator-active-width);\n }\n}\n@keyframes forge-focus-indicator-outward-shrink {\n from {\n outline-width: var(--_focus-indicator-active-width);\n }\n}\n@keyframes forge-focus-indicator-inward-grow {\n from {\n border-width: 0;\n }\n to {\n border-width: var(--_focus-indicator-active-width);\n }\n}\n@keyframes forge-focus-indicator-inward-shrink {\n from {\n border-width: var(--_focus-indicator-active-width);\n }\n}\n.forge-button:not(:disabled) {\n outline: none;\n}\n\n.forge-button:not(:disabled):focus-visible::after {\n --_focus-indicator-display:var(--forge-focus-indicator-display, flex);\n --_focus-indicator-width:var(--forge-focus-indicator-width, var(--forge-border-medium, 2px));\n --_focus-indicator-active-width:var(--forge-focus-indicator-active-width, 6px);\n --_focus-indicator-color:var(--forge-focus-indicator-color, var(--forge-theme-primary, #3f51b5));\n --_focus-indicator-shape:var(--forge-focus-indicator-shape, calc(var(--forge-shape-extra-small, 1px) * var(--forge-shape-factor, 1)));\n --_focus-indicator-duration:var(--forge-focus-indicator-duration, var(--forge-animation-duration-long4, 600ms));\n --_focus-indicator-easing:var(--forge-focus-indicator-easing, var(--forge-animation-easing-emphasized, cubic-bezier(0.2, 0, 0, 1)));\n --_focus-indicator-shape-start-start:var(--forge-focus-indicator-shape-start-start, var(--_focus-indicator-shape));\n --_focus-indicator-shape-start-end:var(--forge-focus-indicator-shape-start-end, var(--_focus-indicator-shape));\n --_focus-indicator-shape-end-end:var(--forge-focus-indicator-shape-end-end, var(--_focus-indicator-shape));\n --_focus-indicator-shape-end-start:var(--forge-focus-indicator-shape-end-start, var(--_focus-indicator-shape));\n --_focus-indicator-outward-offset:var(--forge-focus-indicator-outward-offset, var(--forge-spacing-xxsmall, 4px));\n --_focus-indicator-inward-offset:var(--forge-focus-indicator-inward-offset, 0px);\n --_focus-indicator-offset-block:var(--forge-focus-indicator-offset-block, 0);\n --_focus-indicator-offset-inline:var(--forge-focus-indicator-offset-inline, 0);\n}\n\n.forge-button:not(:disabled):focus-visible::after {\n animation-delay: 0s, calc(var(--_focus-indicator-duration) * 0.25);\n animation-duration: calc(var(--_focus-indicator-duration) * 0.25), calc(var(--_focus-indicator-duration) * 0.75);\n animation-timing-function: var(--_focus-indicator-easing);\n box-sizing: border-box;\n color: var(--_focus-indicator-color);\n display: none;\n pointer-events: none;\n position: absolute;\n margin-block: var(--_focus-indicator-offset-block);\n margin-inline: var(--_focus-indicator-offset-inline);\n animation-name: forge-focus-indicator-outward-grow, forge-focus-indicator-outward-shrink;\n border-end-end-radius: calc(var(--_focus-indicator-shape-end-end) + var(--_focus-indicator-outward-offset));\n border-end-start-radius: calc(var(--_focus-indicator-shape-end-start) + var(--_focus-indicator-outward-offset));\n border-start-end-radius: calc(var(--_focus-indicator-shape-start-end) + var(--_focus-indicator-outward-offset));\n border-start-start-radius: calc(var(--_focus-indicator-shape-start-start) + var(--_focus-indicator-outward-offset));\n inset: calc(-1 * var(--_focus-indicator-outward-offset));\n outline: var(--_focus-indicator-width) solid currentColor;\n content: "";\n display: block;\n}\n\n.forge-button:not(:disabled) {\n --forge-focus-indicator-color: var(--_button-primary-color);\n}\n\n.forge-button:disabled {\n cursor: var(--_button-disabled-cursor);\n --_button-background:var(--_button-disabled-background);\n --_button-color:var(--_button-disabled-text-color);\n --_button-shadow:var(--_button-disabled-shadow);\n pointer-events: none;\n pointer-events: initial;\n}\n\n.forge-button:where(:not(.forge-button--outlined, .forge-button--tonal, .forge-button--filled, .forge-button--raised, .forge-button--link)), .forge-button--text {\n --_button-padding-inline:var(--_button-text-padding-inline);\n}\n\n.forge-button--outlined {\n --_button-background:var(--_button-outlined-background);\n --_button-color:var(--_button-outlined-color);\n --_button-border-width:var(--_button-outlined-border-width);\n --_button-border-style:var(--_button-outlined-border-style);\n --_button-border-color:var(--_button-outlined-border-color);\n}\n\n.forge-button--outlined:disabled {\n --_button-border-color:var(--_button-disabled-border-color);\n}\n\n.forge-button--tonal {\n --_button-background:var(--_button-tonal-background);\n --_button-color:var(--_button-tonal-color);\n}\n\n.forge-button--tonal:disabled {\n --_button-background:var(--_button-tonal-disabled-background);\n --_button-color:var(--_button-tonal-disabled-color);\n}\n\n.forge-button--filled, .forge-button--raised {\n --_button-background:var(--_button-filled-background);\n --_button-color:var(--_button-filled-color);\n --forge-state-layer-color: var(--_button-filled-color);\n}\n\n.forge-button--filled:disabled, .forge-button--raised:disabled {\n --_button-background:var(--_button-filled-disabled-background);\n --_button-color:var(--_button-filled-disabled-color);\n}\n\n.forge-button--raised {\n --_button-background:var(--_button-raised-background);\n --_button-color:var(--_button-raised-color);\n --_button-shadow:var(--_button-raised-shadow);\n}\n\n.forge-button--raised:hover {\n --_button-shadow:var(--_button-raised-hover-shadow);\n}\n\n.forge-button--raised:active {\n --_button-shadow:var(--_button-raised-active-shadow);\n}\n\n.forge-button--raised:disabled {\n --_button-background:var(--_button-raised-disabled-background);\n --_button-color:var(--_button-raised-disabled-color);\n --_button-shadow:var(--_button-raised-disabled-shadow);\n}\n\n.forge-button--link {\n --_button-color:var(--_button-link-color);\n --_button-height:var(--_button-link-height);\n --_button-padding:var(--_button-link-padding);\n --_button-focus-indicator-offset:var(--_button-link-focus-indicator-offset);\n text-decoration: var(--_button-link-text-decoration);\n line-height: var(--_button-link-line-height);\n transition: opacity var(--_button-link-transition-duration) var(--_button-link-transition-timing);\n inline-size: var(--_button-link-width);\n}\n\n.forge-button--link:hover {\n text-decoration: var(--_button-link-hover-text-decoration);\n}\n\n.forge-button--link:active {\n opacity: var(--_button-link-active-opacity);\n}\n\n.forge-button--pill {\n --_button-shape:var(--_button-pill-shape);\n --_button-padding-inline:var(--_button-pill-padding-inline);\n --forge-focus-indicator-shape: var(--_button-pill-shape);\n}\n\n.forge-button {\n --forge-icon-font-size: var(--_button-icon-size);\n}\n\n.forge-button--dense {\n --_button-height:var(--_button-dense-height);\n}\n\n:host {\n display: block;\n --_ai-empty-state-max-width: 420px;\n --_ai-empty-state-icon-size: 200px;\n}\n\n.empty-state-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: var(--forge-spacing-medium, 16px);\n margin: 0 auto;\n width: 100%;\n max-width: var(--ai-empty-state-max-width, var(--_ai-empty-state-max-width));\n}\n\n.heading-message-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: var(--forge-spacing-xsmall, 8px);\n}\n\n.heading {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-family: var(--forge-typography-heading4-font-family, var(--forge-typography-font-family, "Roboto", sans-serif));\n font-size: var(--forge-typography-heading4-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-heading4-font-size-scale, 1.25)));\n font-weight: var(--forge-typography-heading4-font-weight, 500);\n line-height: var(--forge-typography-heading4-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-heading4-line-height-scale, 1.5)));\n letter-spacing: var(--forge-typography-heading4-letter-spacing, 0.005em);\n text-transform: var(--forge-typography-heading4-text-transform, inherit);\n text-decoration: var(--forge-typography-heading4-text-decoration, inherit);\n text-align: center;\n}\n\n.message {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-family: var(--forge-typography-body2-font-family, var(--forge-typography-font-family, "Roboto", sans-serif));\n font-size: var(--forge-typography-body2-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-font-size-scale, 1)));\n font-weight: var(--forge-typography-body2-font-weight, 400);\n line-height: var(--forge-typography-body2-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-line-height-scale, 1.375)));\n letter-spacing: var(--forge-typography-body2-letter-spacing, 0.015625em);\n text-transform: var(--forge-typography-body2-text-transform, inherit);\n text-decoration: var(--forge-typography-body2-text-decoration, inherit);\n text-align: center;\n}\n\n::slotted(:where(p, h1, h2, h3, h4, h5, h6)) {\n margin: 0;\n}\n\n::slotted([slot=icon]) {\n height: var(--ai-empty-state-icon-size, var(--_ai-empty-state-icon-size));\n width: var(--ai-empty-state-icon-size, var(--_ai-empty-state-icon-size));\n}';
2
2
  export {
3
3
  styles as default
4
4
  };
@@ -20,7 +20,8 @@ let AiErrorMessageComponent = class extends LitElement {
20
20
  viewBox="0 0 24 24"
21
21
  height="24"
22
22
  width="24"
23
- fill="currentColor">
23
+ fill="currentColor"
24
+ aria-hidden="true">
24
25
  <path fill="none" d="M0 0h24v24H0z" />
25
26
  <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-2h2zm0-4h-2V7h2z" />
26
27
  </svg>
@@ -151,7 +151,7 @@ emitError_fn = function(type, message, filename) {
151
151
  buttonContent_get = function() {
152
152
  if (this.variant === "icon-button") {
153
153
  return html`<slot name="icon">
154
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="forge-icon custom-icon">
154
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="forge-icon custom-icon" aria-hidden="true">
155
155
  <path fill="none" d="M0 0h24v24H0z" />
156
156
  <path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6z" />
157
157
  </svg>
@@ -30,6 +30,11 @@ export declare class AiFloatingChatComponent extends LitElement {
30
30
  static styles: CSSResult;
31
31
  open: boolean;
32
32
  expanded: boolean;
33
+ /**
34
+ * Accessible label for the dialog, announced by screen readers when it opens.
35
+ * Set this to match the slotted chatbot's title.
36
+ */
37
+ label: string;
33
38
  private _userExpanded;
34
39
  render(): TemplateResult;
35
40
  show(): void;
@@ -28,6 +28,7 @@ let AiFloatingChatComponent = class extends LitElement {
28
28
  __privateAdd(this, _AiFloatingChatComponent_instances);
29
29
  this.open = false;
30
30
  this.expanded = false;
31
+ this.label = "AI Assistant";
31
32
  this._userExpanded = false;
32
33
  __privateAdd(this, _dialogRef, createRef());
33
34
  }
@@ -37,6 +38,7 @@ let AiFloatingChatComponent = class extends LitElement {
37
38
  ${ref(__privateGet(this, _dialogRef))}
38
39
  ?open=${this.open}
39
40
  ?expanded=${this.expanded}
41
+ label=${this.label}
40
42
  @forge-ai-dialog-fullscreen-change=${__privateMethod(this, _AiFloatingChatComponent_instances, handleFullscreenChange_fn)}
41
43
  @forge-ai-dialog-close=${__privateMethod(this, _AiFloatingChatComponent_instances, handleDialogClose_fn)}>
42
44
  <slot
@@ -130,6 +132,9 @@ __decorateClass([
130
132
  __decorateClass([
131
133
  property({ type: Boolean })
132
134
  ], AiFloatingChatComponent.prototype, "expanded", 2);
135
+ __decorateClass([
136
+ property({ type: String })
137
+ ], AiFloatingChatComponent.prototype, "label", 2);
133
138
  __decorateClass([
134
139
  state()
135
140
  ], AiFloatingChatComponent.prototype, "_userExpanded", 2);
@@ -31,7 +31,7 @@ let AiIconComponent = class extends LitElement {
31
31
  this.outline = false;
32
32
  __privateAdd(this, _internals);
33
33
  __privateAdd(this, _svg, html`
34
- <svg width="24" height="24" viewBox="-2 -2 24 24" xmlns="http://www.w3.org/2000/svg">
34
+ <svg width="24" height="24" viewBox="-2 -2 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
35
35
  <path
36
36
  d="M9.375 10.625L15 12.5L9.375 14.375L7.5 20L5.625 14.375L0 12.5L5.625 10.625L7.5 5L9.375 10.625ZM16.25 3.75L20 5L16.25 6.25L15 10L13.75 6.25L10 5L13.75 3.75L15 0L16.25 3.75Z" />
37
37
  </svg>
@@ -4,6 +4,7 @@ import { unsafeHTML } from "lit/directives/unsafe-html.js";
4
4
  import { when } from "lit/directives/when.js";
5
5
  import { MarkdownStreamController } from "../ai-chatbot/markdown-stream-controller.mjs";
6
6
  import "../ai-assistant-response/ai-assistant-response.mjs";
7
+ import "../ai-client-message/ai-client-message.mjs";
7
8
  import "../ai-empty-state/ai-empty-state.mjs";
8
9
  import "../ai-error-message/ai-error-message.mjs";
9
10
  import "../ai-response-message/ai-response-message.mjs";
@@ -30,7 +31,7 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
30
31
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
31
32
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
32
33
  var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
33
- var _markdownController, _canAutoScroll, _resizeObserver, _AiMessageThreadComponent_instances, scheduleScroll_fn, checkScrollState_fn, _handleScroll, _handleScrollToBottomClick, scrollToBottomButton_get, handleCopy_fn, handleResend_fn, handleThumbsUp_fn, handleThumbsDown_fn, handleUserCopy_fn, handleUserResend_fn, handleUserEdit_fn, renderToolCall_fn, renderAssistantResponse_fn, emptyState_get, thinkingIndicator_get, messages_get, dispatchEvent_fn;
34
+ var _markdownController, _canAutoScroll, _resizeObserver, _AiMessageThreadComponent_instances, scheduleScroll_fn, checkScrollState_fn, _handleScroll, _handleScrollToBottomClick, scrollToBottomButton_get, handleCopy_fn, handleResend_fn, handleThumbsUp_fn, handleThumbsDown_fn, handleUserCopy_fn, handleUserResend_fn, handleUserEdit_fn, renderToolCall_fn, activeResponse_get, renderAssistantResponse_fn, emptyState_get, thinkingIndicator_get, messages_get, dispatchEvent_fn;
34
35
  const AiMessageThreadComponentTagName = "forge-ai-message-thread";
35
36
  const SCROLL_THRESHOLD = 100;
36
37
  let AiMessageThreadComponent = class extends LitElement {
@@ -126,7 +127,7 @@ scrollToBottomButton_get = function() {
126
127
  class=${`forge-fab scroll-to-bottom-button${hiddenClass}`}
127
128
  aria-label="Scroll to bottom"
128
129
  @click=${__privateGet(this, _handleScrollToBottomClick)}>
129
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
130
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true">
130
131
  <path d="M7.03 13.92h4V5l2.01-.03v8.95h3.99l-5 5Z" />
131
132
  </svg>
132
133
  </button>
@@ -177,6 +178,10 @@ renderToolCall_fn = function(toolCall) {
177
178
  .toolCall=${toolCall}
178
179
  .toolDefinition=${toolDefinition}></forge-ai-chatbot-tool-call>`;
179
180
  };
181
+ activeResponse_get = function() {
182
+ const lastItem = this.messageItems[this.messageItems.length - 1];
183
+ return lastItem?.type === "assistant" ? lastItem.data : void 0;
184
+ };
180
185
  renderAssistantResponse_fn = function(response) {
181
186
  return html`
182
187
  <forge-ai-assistant-response
@@ -184,6 +189,7 @@ renderAssistantResponse_fn = function(response) {
184
189
  .tools=${this.tools}
185
190
  ?enable-reactions=${this.enableReactions}
186
191
  ?debug-mode=${this.debugMode}
192
+ ?show-thinking=${this.showThinking && response === __privateGet(this, _AiMessageThreadComponent_instances, activeResponse_get)}
187
193
  @forge-ai-assistant-response-copy=${(e) => __privateMethod(this, _AiMessageThreadComponent_instances, handleCopy_fn).call(this, e.detail.responseId)}
188
194
  @forge-ai-assistant-response-resend=${(e) => __privateMethod(this, _AiMessageThreadComponent_instances, handleResend_fn).call(this, e.detail.responseId)}
189
195
  @forge-ai-assistant-response-thumbs-up=${(e) => __privateMethod(this, _AiMessageThreadComponent_instances, handleThumbsUp_fn).call(this, e.detail.responseId, e.detail.feedback)}
@@ -212,28 +218,8 @@ thinkingIndicator_get = function() {
212
218
  if (!this.showThinking) {
213
219
  return nothing;
214
220
  }
215
- const lastItem = this.messageItems[this.messageItems.length - 1];
216
- if (lastItem?.type === "assistant") {
217
- const response = lastItem.data;
218
- const hasTextContent = response.children.some((c) => {
219
- if (c.type !== "text") {
220
- return false;
221
- }
222
- const content = typeof c.content === "string" ? c.content : "";
223
- return content.trim().length > 0;
224
- });
225
- if (hasTextContent) {
226
- return nothing;
227
- }
228
- const hasActiveResponseToolCall = response.children.some((c) => {
229
- if (c.type !== "toolCall") {
230
- return false;
231
- }
232
- return c.data.status === "parsing" || c.data.status === "executing" || c.data.status === "pending";
233
- });
234
- if (hasActiveResponseToolCall) {
235
- return nothing;
236
- }
221
+ if (__privateGet(this, _AiMessageThreadComponent_instances, activeResponse_get)) {
222
+ return nothing;
237
223
  }
238
224
  return html`<div class="thinking-indicator">
239
225
  <forge-ai-thinking-indicator class="status-indicator" show-text></forge-ai-thinking-indicator>
@@ -277,7 +263,14 @@ messages_get = function() {
277
263
  </forge-ai-user-message>
278
264
  `;
279
265
  } else if (msg.role === "system") {
280
- return html`<div class="system-message">${content}</div>`;
266
+ return html`
267
+ <forge-ai-client-message
268
+ kind=${msg.kind ?? "text"}
269
+ .header=${msg.header}
270
+ .content=${content}
271
+ .actions=${msg.actions ?? []}>
272
+ </forge-ai-client-message>
273
+ `;
281
274
  } else if (msg.status === "error") {
282
275
  const renderedHtml = __privateGet(this, _markdownController).getCachedHtml(msg.id, content);
283
276
  return html`
@@ -1,4 +1,4 @@
1
- const styles = '/* prettier-ignore */\n@keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/**\n * @license\n * Copyright Tyler Technologies, Inc.\n * License: Apache-2.0\n */\n.forge-fab {\n --_fab-display:var(--forge-fab-display, inline-flex);\n --_fab-gap:var(--forge-fab-gap, var(--forge-spacing-xsmall, 8px));\n --_fab-background:var(--forge-fab-background, var(--forge-theme-secondary, #ffc107));\n --_fab-color:var(--forge-fab-color, var(--forge-theme-on-secondary, #000000));\n --_fab-size:var(--forge-fab-size, 56px);\n --_fab-padding:var(--forge-fab-padding, var(--forge-spacing-xsmall, 8px));\n --_fab-shadow:var(--forge-fab-shadow, 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12));\n --_fab-hover-shadow:var(--forge-fab-hover-shadow, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12));\n --_fab-active-shadow:var(--forge-fab-active-shadow, 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12));\n --_fab-lowered-shadow:var(--forge-fab-lowered-shadow, 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12));\n --_fab-lowered-hover-shadow:var(--forge-fab-lowered-hover-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12));\n --_fab-lowered-active-shadow:var(--forge-fab-lowered-active-shadow, 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12));\n --_fab-transition-duration:var(--forge-fab-transition-duration, var(--forge-animation-duration-short3, 150ms));\n --_fab-transition-timing:var(--forge-fab-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));\n --_fab-shape:var(--forge-fab-shape, calc(var(--forge-shape-full, 9999px) * var(--forge-shape-factor, 1)));\n --_fab-shape-start-start:var(--forge-fab-shape-start-start, var(--_fab-shape));\n --_fab-shape-start-end:var(--forge-fab-shape-start-end, var(--_fab-shape));\n --_fab-shape-end-start:var(--forge-fab-shape-end-start, var(--_fab-shape));\n --_fab-shape-end-end:var(--forge-fab-shape-end-end, var(--_fab-shape));\n --_fab-extended-padding:var(--forge-fab-extended-padding, var(--forge-spacing-medium-large, 20px));\n --_fab-extended-min-width:var(--forge-fab-extended-min-width, 96px);\n --_fab-density-small-size:var(--forge-fab-density-small-size, 40px);\n --_fab-density-medium-size:var(--forge-fab-density-medium-size, var(--_fab-size));\n --_fab-density-large-size:var(--forge-fab-density-large-size, 96px);\n --_fab-disabled-cursor:var(--forge-fab-disabled-cursor, not-allowed);\n --_fab-disabled-background:var(--forge-fab-disabled-background, var(--forge-theme-surface-container, #e0e0e0));\n --_fab-disabled-color:var(--forge-fab-disabled-color, var(--forge-theme-on-surface-container, #000000));\n --_fab-disabled-opacity:var(--forge-fab-disabled-opacity, 0.38);\n}\n\n.forge-fab {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-family: var(--forge-typography-button-font-family, var(--forge-typography-font-family, "Roboto", sans-serif));\n font-size: var(--forge-typography-button-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-button-font-size-scale, 0.875)));\n font-weight: var(--forge-typography-button-font-weight, 500);\n line-height: var(--forge-typography-button-line-height, normal);\n letter-spacing: var(--forge-typography-button-letter-spacing, 0.0714285714em);\n text-transform: var(--forge-typography-button-text-transform, inherit);\n text-decoration: var(--forge-typography-button-text-decoration, inherit);\n position: relative;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n gap: var(--_fab-gap);\n z-index: 0;\n background: var(--_fab-background);\n color: var(--_fab-color);\n cursor: pointer;\n box-shadow: var(--_fab-shadow);\n box-sizing: border-box;\n height: var(--_fab-density-medium-size);\n min-width: var(--_fab-density-medium-size);\n padding-inline: var(--_fab-padding);\n border-width: medium;\n border-style: none;\n border-color: currentColor;\n border-top-left-radius: var(--_fab-shape-start-start);\n border-top-right-radius: var(--_fab-shape-start-end);\n border-bottom-left-radius: var(--_fab-shape-end-start);\n border-bottom-right-radius: var(--_fab-shape-end-end);\n user-select: none;\n white-space: nowrap;\n transition-property: box-shadow, background, color;\n transition-duration: var(--_fab-transition-duration);\n transition-timing-function: var(--_fab-transition-timing);\n}\n\n.forge-fab:hover {\n --_fab-shadow:var(--_fab-hover-shadow);\n}\n\n.forge-fab:active {\n --_fab-shadow:var(--_fab-active-shadow);\n}\n\n.forge-fab:not(:disabled) {\n --_state-layer-display:var(--forge-state-layer-display, flex);\n --_state-layer-color:var(--forge-state-layer-color, var(--forge-theme-on-surface, #000000));\n --_state-layer-hover-color:var(--forge-state-layer-hover-color, var(--_state-layer-color));\n --_state-layer-hover-opacity:var(--forge-state-layer-hover-opacity, 0.08);\n --_state-layer-pressed-color:var(--forge-state-layer-pressed-color, var(--_state-layer-color));\n --_state-layer-pressed-opacity:var(--forge-state-layer-pressed-opacity, 0.12);\n --_state-layer-hover-duration:var(--forge-state-layer-hover-duration, 15ms);\n --_state-layer-pressed-duration:var(--forge-state-layer-pressed-duration, 105ms);\n --_state-layer-animation-duration:var(--forge-state-layer-animation-duration, 375ms);\n}\n\n.forge-fab:not(:disabled)::before {\n opacity: 0;\n position: absolute;\n backface-visibility: hidden;\n transform: translateZ(0);\n background-color: var(--_state-layer-hover-color);\n inset: 0;\n transition: opacity var(--_state-layer-hover-duration) linear, background-color var(--_state-layer-hover-duration) linear;\n --_state-layer-hover-duration:var(--forge-state-layer-hover-duration, 100ms);\n content: "";\n opacity: 0;\n border-radius: inherit;\n}\n\n.forge-fab:not(:disabled):hover::before {\n background-color: var(--_state-layer-hover-color);\n opacity: var(--_state-layer-hover-opacity);\n}\n\n.forge-fab:not(:disabled):active::before {\n opacity: var(--_state-layer-pressed-opacity);\n transition-duration: var(--_state-layer-pressed-duration);\n --_state-layer-pressed-opacity:var(--forge-state-layer-pressed-opacity, 0.18);\n}\n\n@keyframes forge-focus-indicator-outward-grow {\n from {\n outline-width: 0;\n }\n to {\n outline-width: var(--_focus-indicator-active-width);\n }\n}\n@keyframes forge-focus-indicator-outward-shrink {\n from {\n outline-width: var(--_focus-indicator-active-width);\n }\n}\n@keyframes forge-focus-indicator-inward-grow {\n from {\n border-width: 0;\n }\n to {\n border-width: var(--_focus-indicator-active-width);\n }\n}\n@keyframes forge-focus-indicator-inward-shrink {\n from {\n border-width: var(--_focus-indicator-active-width);\n }\n}\n.forge-fab:not(:disabled) {\n outline: none;\n}\n\n.forge-fab:not(:disabled):focus-visible::after {\n --_focus-indicator-display:var(--forge-focus-indicator-display, flex);\n --_focus-indicator-width:var(--forge-focus-indicator-width, var(--forge-border-medium, 2px));\n --_focus-indicator-active-width:var(--forge-focus-indicator-active-width, 6px);\n --_focus-indicator-color:var(--forge-focus-indicator-color, var(--forge-theme-primary, #3f51b5));\n --_focus-indicator-shape:var(--forge-focus-indicator-shape, calc(var(--forge-shape-extra-small, 1px) * var(--forge-shape-factor, 1)));\n --_focus-indicator-duration:var(--forge-focus-indicator-duration, var(--forge-animation-duration-long4, 600ms));\n --_focus-indicator-easing:var(--forge-focus-indicator-easing, var(--forge-animation-easing-emphasized, cubic-bezier(0.2, 0, 0, 1)));\n --_focus-indicator-shape-start-start:var(--forge-focus-indicator-shape-start-start, var(--_focus-indicator-shape));\n --_focus-indicator-shape-start-end:var(--forge-focus-indicator-shape-start-end, var(--_focus-indicator-shape));\n --_focus-indicator-shape-end-end:var(--forge-focus-indicator-shape-end-end, var(--_focus-indicator-shape));\n --_focus-indicator-shape-end-start:var(--forge-focus-indicator-shape-end-start, var(--_focus-indicator-shape));\n --_focus-indicator-outward-offset:var(--forge-focus-indicator-outward-offset, var(--forge-spacing-xxsmall, 4px));\n --_focus-indicator-inward-offset:var(--forge-focus-indicator-inward-offset, 0px);\n --_focus-indicator-offset-block:var(--forge-focus-indicator-offset-block, 0);\n --_focus-indicator-offset-inline:var(--forge-focus-indicator-offset-inline, 0);\n}\n\n.forge-fab:not(:disabled):focus-visible::after {\n animation-delay: 0s, calc(var(--_focus-indicator-duration) * 0.25);\n animation-duration: calc(var(--_focus-indicator-duration) * 0.25), calc(var(--_focus-indicator-duration) * 0.75);\n animation-timing-function: var(--_focus-indicator-easing);\n box-sizing: border-box;\n color: var(--_focus-indicator-color);\n display: none;\n pointer-events: none;\n position: absolute;\n margin-block: var(--_focus-indicator-offset-block);\n margin-inline: var(--_focus-indicator-offset-inline);\n animation-name: forge-focus-indicator-outward-grow, forge-focus-indicator-outward-shrink;\n border-end-end-radius: calc(var(--_focus-indicator-shape-end-end) + var(--_focus-indicator-outward-offset));\n border-end-start-radius: calc(var(--_focus-indicator-shape-end-start) + var(--_focus-indicator-outward-offset));\n border-start-end-radius: calc(var(--_focus-indicator-shape-start-end) + var(--_focus-indicator-outward-offset));\n border-start-start-radius: calc(var(--_focus-indicator-shape-start-start) + var(--_focus-indicator-outward-offset));\n inset: calc(-1 * var(--_focus-indicator-outward-offset));\n outline: var(--_focus-indicator-width) solid currentColor;\n content: "";\n display: block;\n}\n\n.forge-fab:not(:disabled) {\n --forge-focus-indicator-color: var(--_fab-background);\n --forge-focus-indicator-shape-start-start: var(--_fab-shape-start-start);\n --forge-focus-indicator-shape-start-end: var(--_fab-shape-start-end);\n --forge-focus-indicator-shape-end-start: var(--_fab-shape-end-start);\n --forge-focus-indicator-shape-end-end: var(--_fab-shape-end-end);\n}\n\n.forge-fab--extended {\n --_fab-padding:var(--_fab-extended-padding);\n min-width: var(--_fab-extended-min-width);\n}\n\n.forge-fab:disabled {\n cursor: var(--_fab-disabled-cursor);\n --_fab-background:var(--_fab-disabled-background);\n --_fab-color:var(--_fab-disabled-color);\n pointer-events: none;\n opacity: var(--_fab-disabled-opacity);\n pointer-events: auto;\n cursor: not-allowed;\n}\n\n.forge-fab--dense, .forge-fab--small {\n --_fab-size:var(--_fab-density-small-size);\n}\n\n.forge-fab--large {\n --_fab-size:var(--_fab-density-large-size);\n --_fab-shape:var(--forge-fab-shape, calc(var(--forge-shape-extra-large, 16px) * var(--forge-shape-factor, 1)));\n}\n\n.forge-fab--flat {\n --_fab-shadow:var(--_fab-lowered-shadow);\n}\n\n.forge-fab--flat:hover {\n --_fab-shadow:var(--_fab-lowered-hover-shadow);\n}\n\n.forge-fab--flat:active {\n --_fab-shadow:var(--_fab-lowered-active-shadow);\n}\n\n:host {\n display: grid;\n height: 100%;\n position: relative;\n}\n\n.message-thread::-webkit-scrollbar {\n height: var(--forge-scrollbar-height, 16px);\n width: var(--forge-scrollbar-width, 16px);\n}\n.message-thread::-webkit-scrollbar-track {\n background-color: var(--forge-scrollbar-track-container, var(--forge-theme-surface-container-low, #ebebeb));\n}\n.message-thread::-webkit-scrollbar-track:hover {\n background-color: var(--forge-scrollbar-track-container-hover, var(--forge-theme-surface-container-low, #ebebeb));\n}\n.message-thread::-webkit-scrollbar-corner {\n background-color: var(--forge-scrollbar-track-container, var(--forge-theme-surface-container-low, #ebebeb));\n}\n.message-thread::-webkit-scrollbar-thumb {\n height: var(--forge-scrollbar-thumb-min-height, 32px);\n width: var(--forge-scrollbar-thumb-min-width, 32px);\n border-radius: var(--forge-scrollbar-border-radius, calc(var(--forge-shape-full, 9999px) * var(--forge-shape-factor, 1)));\n border-width: var(--forge-scrollbar-border-width, 3px);\n border-style: solid;\n border-color: transparent;\n background-color: var(--forge-scrollbar-thumb-container, var(--forge-theme-surface-container-medium, #c2c2c2));\n background-clip: content-box;\n}\n.message-thread::-webkit-scrollbar-thumb:hover {\n background-color: var(--forge-scrollbar-thumb-container-hover, var(--forge-theme-surface-container-high, #9e9e9e));\n}\n.message-thread {\n overflow-y: auto;\n}\n@media not all and (min-resolution: 0.001dpcm) {\n @supports (-webkit-appearance: none) {\n .message-thread {\n overflow-y: scroll;\n }\n }\n}\n\n.message-thread-content {\n display: flex;\n flex-direction: column;\n gap: var(--forge-spacing-xlarge, 32px);\n padding: var(--forge-spacing-medium, 16px) var(--forge-spacing-medium, 16px) var(--forge-spacing-xxlarge, 48px) var(--forge-spacing-medium, 16px);\n max-inline-size: var(--forge-ai-message-thread-content-max-width, none);\n margin-inline: auto;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n}\n\nforge-ai-empty-state {\n margin-block: auto;\n}\n\n.thinking-indicator {\n margin-block-start: var(--forge-spacing-xsmall, 8px);\n}\n\n.system-message {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-family: var(--forge-typography-subheading2-font-family, var(--forge-typography-font-family, "Roboto", sans-serif));\n font-size: var(--forge-typography-subheading2-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-subheading2-font-size-scale, 1)));\n font-weight: var(--forge-typography-subheading2-font-weight, 400);\n line-height: var(--forge-typography-subheading2-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-subheading2-line-height-scale, 1.25)));\n letter-spacing: var(--forge-typography-subheading2-letter-spacing, normal);\n text-transform: var(--forge-typography-subheading2-text-transform, inherit);\n text-decoration: var(--forge-typography-subheading2-text-decoration, inherit);\n color: var(--forge-theme-text-medium, rgba(0, 0, 0, 0.6));\n padding-block: var(--forge-spacing-small, 12px);\n font-style: italic;\n}\n\n.scroll-to-bottom-button {\n --forge-fab-size: 40px;\n --forge-fab-background: var(--forge-theme-surface-bright, #ffffff);\n --forge-fab-color: var(--forge-theme-text-high, rgba(0, 0, 0, 0.87));\n position: absolute;\n bottom: var(--forge-spacing-xxsmall, 4px);\n left: 50%;\n transform: translateX(-50%) translateY(0);\n opacity: 1;\n visibility: visible;\n z-index: 1;\n transition: opacity var(--forge-animation-duration-short2, 100ms) var(--forge-animation-easing-accelerate, cubic-bezier(0.3, 0, 1, 1)), transform var(--forge-animation-duration-short2, 100ms) var(--forge-animation-easing-accelerate, cubic-bezier(0.3, 0, 1, 1)), visibility 0s 0s;\n}\n.scroll-to-bottom-button--hidden {\n opacity: 0;\n transform: translateX(-50%) translateY(24px);\n visibility: hidden;\n pointer-events: none;\n transition: opacity var(--forge-animation-duration-short2, 100ms) var(--forge-animation-easing-accelerate, cubic-bezier(0.3, 0, 1, 1)), transform var(--forge-animation-duration-short2, 100ms) var(--forge-animation-easing-accelerate, cubic-bezier(0.3, 0, 1, 1)), visibility 0s var(--forge-animation-duration-short2, 100ms);\n}\n.scroll-to-bottom-button svg {\n width: 24px;\n height: 24px;\n fill: currentColor;\n}\n\nforge-ai-user-message,\nforge-ai-response-message,\nforge-ai-error-message {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-family: var(--forge-typography-body1-font-family, var(--forge-typography-font-family, "Roboto", sans-serif));\n font-size: var(--forge-typography-body1-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-font-size-scale, 0.875)));\n font-weight: var(--forge-typography-body1-font-weight, 400);\n line-height: var(--forge-typography-body1-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-line-height-scale, 1.125)));\n letter-spacing: var(--forge-typography-body1-letter-spacing, 0.0357142857em);\n text-transform: var(--forge-typography-body1-text-transform, inherit);\n text-decoration: var(--forge-typography-body1-text-decoration, inherit);\n font-size: var(--forge-ai-markdown-font-size, 0.875rem);\n line-height: var(--forge-ai-markdown-line-height, 1.5rem);\n color: var(--forge-theme-on-surface, #000000);\n overflow-wrap: break-word;\n}\nforge-ai-user-message h1,\nforge-ai-user-message h2,\nforge-ai-user-message h3,\nforge-ai-user-message h4,\nforge-ai-user-message h5,\nforge-ai-user-message h6,\nforge-ai-response-message h1,\nforge-ai-response-message h2,\nforge-ai-response-message h3,\nforge-ai-response-message h4,\nforge-ai-response-message h5,\nforge-ai-response-message h6,\nforge-ai-error-message h1,\nforge-ai-error-message h2,\nforge-ai-error-message h3,\nforge-ai-error-message h4,\nforge-ai-error-message h5,\nforge-ai-error-message h6 {\n margin: 1.75rem 0 var(--forge-spacing-small, 12px);\n}\nforge-ai-user-message strong,\nforge-ai-response-message strong,\nforge-ai-error-message strong {\n font-weight: 500;\n}\nforge-ai-user-message a,\nforge-ai-response-message a,\nforge-ai-error-message a {\n color: var(--forge-theme-primary, #3f51b5);\n}\nforge-ai-user-message hr,\nforge-ai-response-message hr,\nforge-ai-error-message hr {\n border: none;\n border-top: 1px solid var(--forge-theme-outline, #e0e0e0);\n}\nforge-ai-user-message code,\nforge-ai-response-message code,\nforge-ai-error-message code {\n color: var(--forge-theme-on-surface-container-low, #000000);\n background-color: var(--forge-theme-surface-container-low, #ebebeb);\n border-radius: calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1));\n padding: var(--forge-spacing-xxxsmall, 2px) var(--forge-spacing-xxsmall, 4px);\n font-size: 0.75em;\n}\nforge-ai-user-message pre,\nforge-ai-response-message pre,\nforge-ai-error-message pre {\n border: 1px solid var(--forge-theme-outline, #e0e0e0);\n border-radius: calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1));\n margin: 0;\n max-width: 100%;\n overflow-x: auto;\n}\nforge-ai-user-message pre:focus-visible,\nforge-ai-response-message pre:focus-visible,\nforge-ai-error-message pre:focus-visible {\n outline: 2px solid var(--forge-theme-primary, #3f51b5);\n outline-offset: 2px;\n}\nforge-ai-user-message pre code,\nforge-ai-response-message pre code,\nforge-ai-error-message pre code {\n display: block;\n padding: var(--forge-spacing-xsmall, 8px) var(--forge-spacing-small, 12px);\n color: var(--forge-theme-on-surface-container-minimum, #000000);\n background: var(--forge-theme-surface-container-minimum, #f5f5f5);\n white-space: pre;\n}\nforge-ai-user-message [data-scroll-region=table],\nforge-ai-response-message [data-scroll-region=table],\nforge-ai-error-message [data-scroll-region=table] {\n max-width: 100%;\n overflow-x: auto;\n border-radius: calc(var(--forge-shape-large, 8px) * var(--forge-shape-factor, 1));\n margin-block: var(--forge-spacing-medium, 16px);\n}\nforge-ai-user-message [data-scroll-region=table]:focus-visible,\nforge-ai-response-message [data-scroll-region=table]:focus-visible,\nforge-ai-error-message [data-scroll-region=table]:focus-visible {\n outline: 2px solid var(--forge-theme-primary, #3f51b5);\n outline-offset: 2px;\n}\nforge-ai-user-message [data-scroll-region=table] table,\nforge-ai-response-message [data-scroll-region=table] table,\nforge-ai-error-message [data-scroll-region=table] table {\n margin-block: 0;\n}\nforge-ai-user-message table,\nforge-ai-response-message table,\nforge-ai-error-message table {\n width: 100%;\n border-spacing: 0;\n background-color: var(--forge-theme-surface, #ffffff);\n border-radius: calc(var(--forge-shape-large, 8px) * var(--forge-shape-factor, 1));\n overflow: hidden;\n margin-block: var(--forge-spacing-medium, 16px);\n}\nforge-ai-user-message table thead,\nforge-ai-response-message table thead,\nforge-ai-error-message table thead {\n color: var(--forge-theme-text-medium, rgba(0, 0, 0, 0.6));\n font-weight: bold;\n text-align: left;\n font-size: calc(var(--forge-typography-font-size, 1rem) * 0.75);\n box-sizing: border-box;\n}\nforge-ai-user-message table tr,\nforge-ai-response-message table tr,\nforge-ai-error-message table tr {\n height: 36px;\n height: 32px;\n}\nforge-ai-user-message table tr:nth-child(even),\nforge-ai-response-message table tr:nth-child(even),\nforge-ai-error-message table tr:nth-child(even) {\n background-color: var(--forge-theme-surface-dim, #fafafa);\n}\nforge-ai-user-message table tr:last-child td,\nforge-ai-response-message table tr:last-child td,\nforge-ai-error-message table tr:last-child td {\n border-bottom: none;\n}\nforge-ai-user-message table th,\nforge-ai-user-message table td,\nforge-ai-response-message table th,\nforge-ai-response-message table td,\nforge-ai-error-message table th,\nforge-ai-error-message table td {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-family: var(--forge-typography-label1-font-family, var(--forge-typography-font-family, "Roboto", sans-serif));\n font-size: var(--forge-typography-label1-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-font-size-scale, 0.75)));\n font-weight: var(--forge-typography-label1-font-weight, 400);\n line-height: var(--forge-typography-label1-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-line-height-scale, 1.25)));\n letter-spacing: var(--forge-typography-label1-letter-spacing, 0.0357142857em);\n text-transform: var(--forge-typography-label1-text-transform, inherit);\n text-decoration: var(--forge-typography-label1-text-decoration, inherit);\n padding-block: var(--forge-spacing-xsmall, 8px);\n padding-inline-start: var(--forge-spacing-xsmall, 8px);\n padding-inline-end: var(--forge-spacing-medium, 16px);\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-bottom-color: var(--forge-theme-outline, #e0e0e0);\n}\nforge-ai-user-message table th,\nforge-ai-response-message table th,\nforge-ai-error-message table th {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-family: var(--forge-typography-label2-font-family, var(--forge-typography-font-family, "Roboto", sans-serif));\n font-size: var(--forge-typography-label2-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-font-size-scale, 0.8125)));\n font-weight: var(--forge-typography-label2-font-weight, 400);\n line-height: var(--forge-typography-label2-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-line-height-scale, 1.25)));\n letter-spacing: var(--forge-typography-label2-letter-spacing, 0.0096153846em);\n text-transform: var(--forge-typography-label2-text-transform, inherit);\n text-decoration: var(--forge-typography-label2-text-decoration, inherit);\n font-weight: 600;\n}\nforge-ai-user-message > p:has(+ ol),\nforge-ai-user-message > p:has(+ ul),\nforge-ai-response-message > p:has(+ ol),\nforge-ai-response-message > p:has(+ ul),\nforge-ai-error-message > p:has(+ ol),\nforge-ai-error-message > p:has(+ ul) {\n margin-block-end: var(--forge-spacing-small, 12px);\n}\nforge-ai-user-message > ul,\nforge-ai-response-message > ul,\nforge-ai-error-message > ul {\n list-style-type: disc;\n padding-inline-start: 1.6875rem;\n}\nforge-ai-user-message > ol,\nforge-ai-response-message > ol,\nforge-ai-error-message > ol {\n padding-inline-start: 1.75rem;\n}\nforge-ai-user-message > ol,\nforge-ai-user-message > ul,\nforge-ai-response-message > ol,\nforge-ai-response-message > ul,\nforge-ai-error-message > ol,\nforge-ai-error-message > ul {\n margin: var(--forge-spacing-xsmall, 8px) 0;\n margin-block-end: var(--forge-spacing-medium, 16px);\n}\nforge-ai-user-message > :first-child,\nforge-ai-response-message > :first-child,\nforge-ai-error-message > :first-child {\n margin-block-start: 0;\n}\nforge-ai-user-message > p,\nforge-ai-response-message > p,\nforge-ai-error-message > p {\n margin-block-end: var(--forge-spacing-medium, 16px);\n overflow-wrap: anywhere;\n}\nforge-ai-user-message > p:first-child,\nforge-ai-response-message > p:first-child,\nforge-ai-error-message > p:first-child {\n margin-block-start: 0;\n}\nforge-ai-user-message > p:last-child,\nforge-ai-response-message > p:last-child,\nforge-ai-error-message > p:last-child {\n margin-block-end: 0;\n}';
1
+ const styles = '/* prettier-ignore */\n@keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/**\n * @license\n * Copyright Tyler Technologies, Inc.\n * License: Apache-2.0\n */\n.forge-fab {\n --_fab-display:var(--forge-fab-display, inline-flex);\n --_fab-gap:var(--forge-fab-gap, var(--forge-spacing-xsmall, 8px));\n --_fab-background:var(--forge-fab-background, var(--forge-theme-secondary, #ffc107));\n --_fab-color:var(--forge-fab-color, var(--forge-theme-on-secondary, #000000));\n --_fab-size:var(--forge-fab-size, 56px);\n --_fab-padding:var(--forge-fab-padding, var(--forge-spacing-xsmall, 8px));\n --_fab-shadow:var(--forge-fab-shadow, 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12));\n --_fab-hover-shadow:var(--forge-fab-hover-shadow, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12));\n --_fab-active-shadow:var(--forge-fab-active-shadow, 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12));\n --_fab-lowered-shadow:var(--forge-fab-lowered-shadow, 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12));\n --_fab-lowered-hover-shadow:var(--forge-fab-lowered-hover-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12));\n --_fab-lowered-active-shadow:var(--forge-fab-lowered-active-shadow, 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12));\n --_fab-transition-duration:var(--forge-fab-transition-duration, var(--forge-animation-duration-short3, 150ms));\n --_fab-transition-timing:var(--forge-fab-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));\n --_fab-shape:var(--forge-fab-shape, calc(var(--forge-shape-full, 9999px) * var(--forge-shape-factor, 1)));\n --_fab-shape-start-start:var(--forge-fab-shape-start-start, var(--_fab-shape));\n --_fab-shape-start-end:var(--forge-fab-shape-start-end, var(--_fab-shape));\n --_fab-shape-end-start:var(--forge-fab-shape-end-start, var(--_fab-shape));\n --_fab-shape-end-end:var(--forge-fab-shape-end-end, var(--_fab-shape));\n --_fab-extended-padding:var(--forge-fab-extended-padding, var(--forge-spacing-medium-large, 20px));\n --_fab-extended-min-width:var(--forge-fab-extended-min-width, 96px);\n --_fab-density-small-size:var(--forge-fab-density-small-size, 40px);\n --_fab-density-medium-size:var(--forge-fab-density-medium-size, var(--_fab-size));\n --_fab-density-large-size:var(--forge-fab-density-large-size, 96px);\n --_fab-disabled-cursor:var(--forge-fab-disabled-cursor, not-allowed);\n --_fab-disabled-background:var(--forge-fab-disabled-background, var(--forge-theme-surface-container, #e0e0e0));\n --_fab-disabled-color:var(--forge-fab-disabled-color, var(--forge-theme-on-surface-container, #000000));\n --_fab-disabled-opacity:var(--forge-fab-disabled-opacity, 0.38);\n}\n\n.forge-fab {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-family: var(--forge-typography-button-font-family, var(--forge-typography-font-family, "Roboto", sans-serif));\n font-size: var(--forge-typography-button-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-button-font-size-scale, 0.875)));\n font-weight: var(--forge-typography-button-font-weight, 500);\n line-height: var(--forge-typography-button-line-height, normal);\n letter-spacing: var(--forge-typography-button-letter-spacing, 0.0714285714em);\n text-transform: var(--forge-typography-button-text-transform, inherit);\n text-decoration: var(--forge-typography-button-text-decoration, inherit);\n position: relative;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n gap: var(--_fab-gap);\n z-index: 0;\n background: var(--_fab-background);\n color: var(--_fab-color);\n cursor: pointer;\n box-shadow: var(--_fab-shadow);\n box-sizing: border-box;\n height: var(--_fab-density-medium-size);\n min-width: var(--_fab-density-medium-size);\n padding-inline: var(--_fab-padding);\n border-width: medium;\n border-style: none;\n border-color: currentColor;\n border-top-left-radius: var(--_fab-shape-start-start);\n border-top-right-radius: var(--_fab-shape-start-end);\n border-bottom-left-radius: var(--_fab-shape-end-start);\n border-bottom-right-radius: var(--_fab-shape-end-end);\n user-select: none;\n white-space: nowrap;\n transition-property: box-shadow, background, color;\n transition-duration: var(--_fab-transition-duration);\n transition-timing-function: var(--_fab-transition-timing);\n}\n\n.forge-fab:hover {\n --_fab-shadow:var(--_fab-hover-shadow);\n}\n\n.forge-fab:active {\n --_fab-shadow:var(--_fab-active-shadow);\n}\n\n.forge-fab:not(:disabled) {\n --_state-layer-display:var(--forge-state-layer-display, flex);\n --_state-layer-color:var(--forge-state-layer-color, var(--forge-theme-on-surface, #000000));\n --_state-layer-hover-color:var(--forge-state-layer-hover-color, var(--_state-layer-color));\n --_state-layer-hover-opacity:var(--forge-state-layer-hover-opacity, 0.08);\n --_state-layer-pressed-color:var(--forge-state-layer-pressed-color, var(--_state-layer-color));\n --_state-layer-pressed-opacity:var(--forge-state-layer-pressed-opacity, 0.12);\n --_state-layer-hover-duration:var(--forge-state-layer-hover-duration, 15ms);\n --_state-layer-pressed-duration:var(--forge-state-layer-pressed-duration, 105ms);\n --_state-layer-animation-duration:var(--forge-state-layer-animation-duration, 375ms);\n}\n\n.forge-fab:not(:disabled)::before {\n opacity: 0;\n position: absolute;\n backface-visibility: hidden;\n transform: translateZ(0);\n background-color: var(--_state-layer-hover-color);\n inset: 0;\n transition: opacity var(--_state-layer-hover-duration) linear, background-color var(--_state-layer-hover-duration) linear;\n --_state-layer-hover-duration:var(--forge-state-layer-hover-duration, 100ms);\n content: "";\n opacity: 0;\n border-radius: inherit;\n}\n\n.forge-fab:not(:disabled):hover::before {\n background-color: var(--_state-layer-hover-color);\n opacity: var(--_state-layer-hover-opacity);\n}\n\n.forge-fab:not(:disabled):active::before {\n opacity: var(--_state-layer-pressed-opacity);\n transition-duration: var(--_state-layer-pressed-duration);\n --_state-layer-pressed-opacity:var(--forge-state-layer-pressed-opacity, 0.18);\n}\n\n@keyframes forge-focus-indicator-outward-grow {\n from {\n outline-width: 0;\n }\n to {\n outline-width: var(--_focus-indicator-active-width);\n }\n}\n@keyframes forge-focus-indicator-outward-shrink {\n from {\n outline-width: var(--_focus-indicator-active-width);\n }\n}\n@keyframes forge-focus-indicator-inward-grow {\n from {\n border-width: 0;\n }\n to {\n border-width: var(--_focus-indicator-active-width);\n }\n}\n@keyframes forge-focus-indicator-inward-shrink {\n from {\n border-width: var(--_focus-indicator-active-width);\n }\n}\n.forge-fab:not(:disabled) {\n outline: none;\n}\n\n.forge-fab:not(:disabled):focus-visible::after {\n --_focus-indicator-display:var(--forge-focus-indicator-display, flex);\n --_focus-indicator-width:var(--forge-focus-indicator-width, var(--forge-border-medium, 2px));\n --_focus-indicator-active-width:var(--forge-focus-indicator-active-width, 6px);\n --_focus-indicator-color:var(--forge-focus-indicator-color, var(--forge-theme-primary, #3f51b5));\n --_focus-indicator-shape:var(--forge-focus-indicator-shape, calc(var(--forge-shape-extra-small, 1px) * var(--forge-shape-factor, 1)));\n --_focus-indicator-duration:var(--forge-focus-indicator-duration, var(--forge-animation-duration-long4, 600ms));\n --_focus-indicator-easing:var(--forge-focus-indicator-easing, var(--forge-animation-easing-emphasized, cubic-bezier(0.2, 0, 0, 1)));\n --_focus-indicator-shape-start-start:var(--forge-focus-indicator-shape-start-start, var(--_focus-indicator-shape));\n --_focus-indicator-shape-start-end:var(--forge-focus-indicator-shape-start-end, var(--_focus-indicator-shape));\n --_focus-indicator-shape-end-end:var(--forge-focus-indicator-shape-end-end, var(--_focus-indicator-shape));\n --_focus-indicator-shape-end-start:var(--forge-focus-indicator-shape-end-start, var(--_focus-indicator-shape));\n --_focus-indicator-outward-offset:var(--forge-focus-indicator-outward-offset, var(--forge-spacing-xxsmall, 4px));\n --_focus-indicator-inward-offset:var(--forge-focus-indicator-inward-offset, 0px);\n --_focus-indicator-offset-block:var(--forge-focus-indicator-offset-block, 0);\n --_focus-indicator-offset-inline:var(--forge-focus-indicator-offset-inline, 0);\n}\n\n.forge-fab:not(:disabled):focus-visible::after {\n animation-delay: 0s, calc(var(--_focus-indicator-duration) * 0.25);\n animation-duration: calc(var(--_focus-indicator-duration) * 0.25), calc(var(--_focus-indicator-duration) * 0.75);\n animation-timing-function: var(--_focus-indicator-easing);\n box-sizing: border-box;\n color: var(--_focus-indicator-color);\n display: none;\n pointer-events: none;\n position: absolute;\n margin-block: var(--_focus-indicator-offset-block);\n margin-inline: var(--_focus-indicator-offset-inline);\n animation-name: forge-focus-indicator-outward-grow, forge-focus-indicator-outward-shrink;\n border-end-end-radius: calc(var(--_focus-indicator-shape-end-end) + var(--_focus-indicator-outward-offset));\n border-end-start-radius: calc(var(--_focus-indicator-shape-end-start) + var(--_focus-indicator-outward-offset));\n border-start-end-radius: calc(var(--_focus-indicator-shape-start-end) + var(--_focus-indicator-outward-offset));\n border-start-start-radius: calc(var(--_focus-indicator-shape-start-start) + var(--_focus-indicator-outward-offset));\n inset: calc(-1 * var(--_focus-indicator-outward-offset));\n outline: var(--_focus-indicator-width) solid currentColor;\n content: "";\n display: block;\n}\n\n.forge-fab:not(:disabled) {\n --forge-focus-indicator-color: var(--_fab-background);\n --forge-focus-indicator-shape-start-start: var(--_fab-shape-start-start);\n --forge-focus-indicator-shape-start-end: var(--_fab-shape-start-end);\n --forge-focus-indicator-shape-end-start: var(--_fab-shape-end-start);\n --forge-focus-indicator-shape-end-end: var(--_fab-shape-end-end);\n}\n\n.forge-fab--extended {\n --_fab-padding:var(--_fab-extended-padding);\n min-width: var(--_fab-extended-min-width);\n}\n\n.forge-fab:disabled {\n cursor: var(--_fab-disabled-cursor);\n --_fab-background:var(--_fab-disabled-background);\n --_fab-color:var(--_fab-disabled-color);\n pointer-events: none;\n opacity: var(--_fab-disabled-opacity);\n pointer-events: auto;\n cursor: not-allowed;\n}\n\n.forge-fab--dense, .forge-fab--small {\n --_fab-size:var(--_fab-density-small-size);\n}\n\n.forge-fab--large {\n --_fab-size:var(--_fab-density-large-size);\n --_fab-shape:var(--forge-fab-shape, calc(var(--forge-shape-extra-large, 16px) * var(--forge-shape-factor, 1)));\n}\n\n.forge-fab--flat {\n --_fab-shadow:var(--_fab-lowered-shadow);\n}\n\n.forge-fab--flat:hover {\n --_fab-shadow:var(--_fab-lowered-hover-shadow);\n}\n\n.forge-fab--flat:active {\n --_fab-shadow:var(--_fab-lowered-active-shadow);\n}\n\n:host {\n display: grid;\n height: 100%;\n position: relative;\n}\n\n.message-thread::-webkit-scrollbar {\n height: var(--forge-scrollbar-height, 16px);\n width: var(--forge-scrollbar-width, 16px);\n}\n.message-thread::-webkit-scrollbar-track {\n background-color: var(--forge-scrollbar-track-container, var(--forge-theme-surface-container-low, #ebebeb));\n}\n.message-thread::-webkit-scrollbar-track:hover {\n background-color: var(--forge-scrollbar-track-container-hover, var(--forge-theme-surface-container-low, #ebebeb));\n}\n.message-thread::-webkit-scrollbar-corner {\n background-color: var(--forge-scrollbar-track-container, var(--forge-theme-surface-container-low, #ebebeb));\n}\n.message-thread::-webkit-scrollbar-thumb {\n height: var(--forge-scrollbar-thumb-min-height, 32px);\n width: var(--forge-scrollbar-thumb-min-width, 32px);\n border-radius: var(--forge-scrollbar-border-radius, calc(var(--forge-shape-full, 9999px) * var(--forge-shape-factor, 1)));\n border-width: var(--forge-scrollbar-border-width, 3px);\n border-style: solid;\n border-color: transparent;\n background-color: var(--forge-scrollbar-thumb-container, var(--forge-theme-surface-container-medium, #c2c2c2));\n background-clip: content-box;\n}\n.message-thread::-webkit-scrollbar-thumb:hover {\n background-color: var(--forge-scrollbar-thumb-container-hover, var(--forge-theme-surface-container-high, #9e9e9e));\n}\n.message-thread {\n overflow-y: auto;\n}\n@media not all and (min-resolution: 0.001dpcm) {\n @supports (-webkit-appearance: none) {\n .message-thread {\n overflow-y: scroll;\n }\n }\n}\n\n.message-thread-content {\n --_message-thread-item-spacing: var(--forge-spacing-xlarge, 32px);\n display: flex;\n flex-direction: column;\n padding: var(--forge-spacing-medium, 16px) var(--forge-spacing-medium, 16px) var(--forge-spacing-xxlarge, 48px) var(--forge-spacing-medium, 16px);\n max-inline-size: var(--forge-ai-message-thread-content-max-width, none);\n margin-inline: auto;\n width: 100%;\n min-height: 100%;\n box-sizing: border-box;\n}\n\n.message-thread-content > * + * {\n margin-block-start: var(--_message-thread-item-spacing);\n}\n\nforge-ai-empty-state {\n margin-block: auto;\n}\n\n.scroll-to-bottom-button {\n --forge-fab-size: 40px;\n --forge-fab-background: var(--forge-theme-surface-bright, #ffffff);\n --forge-fab-color: var(--forge-theme-text-high, rgba(0, 0, 0, 0.87));\n position: absolute;\n bottom: var(--forge-spacing-xxsmall, 4px);\n left: 50%;\n transform: translateX(-50%) translateY(0);\n opacity: 1;\n visibility: visible;\n z-index: 1;\n transition: opacity var(--forge-animation-duration-short2, 100ms) var(--forge-animation-easing-accelerate, cubic-bezier(0.3, 0, 1, 1)), transform var(--forge-animation-duration-short2, 100ms) var(--forge-animation-easing-accelerate, cubic-bezier(0.3, 0, 1, 1)), visibility 0s 0s;\n}\n.scroll-to-bottom-button--hidden {\n opacity: 0;\n transform: translateX(-50%) translateY(24px);\n visibility: hidden;\n pointer-events: none;\n transition: opacity var(--forge-animation-duration-short2, 100ms) var(--forge-animation-easing-accelerate, cubic-bezier(0.3, 0, 1, 1)), transform var(--forge-animation-duration-short2, 100ms) var(--forge-animation-easing-accelerate, cubic-bezier(0.3, 0, 1, 1)), visibility 0s var(--forge-animation-duration-short2, 100ms);\n}\n.scroll-to-bottom-button svg {\n width: 24px;\n height: 24px;\n fill: currentColor;\n}\n\nforge-ai-user-message,\nforge-ai-response-message,\nforge-ai-error-message {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-family: var(--forge-typography-body1-font-family, var(--forge-typography-font-family, "Roboto", sans-serif));\n font-size: var(--forge-typography-body1-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-font-size-scale, 0.875)));\n font-weight: var(--forge-typography-body1-font-weight, 400);\n line-height: var(--forge-typography-body1-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-line-height-scale, 1.125)));\n letter-spacing: var(--forge-typography-body1-letter-spacing, 0.0357142857em);\n text-transform: var(--forge-typography-body1-text-transform, inherit);\n text-decoration: var(--forge-typography-body1-text-decoration, inherit);\n font-size: var(--forge-ai-markdown-font-size, 0.875rem);\n line-height: var(--forge-ai-markdown-line-height, 1.5rem);\n color: var(--forge-theme-on-surface, #000000);\n overflow-wrap: break-word;\n}\nforge-ai-user-message h1,\nforge-ai-user-message h2,\nforge-ai-user-message h3,\nforge-ai-user-message h4,\nforge-ai-user-message h5,\nforge-ai-user-message h6,\nforge-ai-response-message h1,\nforge-ai-response-message h2,\nforge-ai-response-message h3,\nforge-ai-response-message h4,\nforge-ai-response-message h5,\nforge-ai-response-message h6,\nforge-ai-error-message h1,\nforge-ai-error-message h2,\nforge-ai-error-message h3,\nforge-ai-error-message h4,\nforge-ai-error-message h5,\nforge-ai-error-message h6 {\n margin: 1.75rem 0 var(--forge-spacing-small, 12px);\n}\nforge-ai-user-message strong,\nforge-ai-response-message strong,\nforge-ai-error-message strong {\n font-weight: 500;\n}\nforge-ai-user-message a,\nforge-ai-response-message a,\nforge-ai-error-message a {\n color: var(--forge-theme-primary, #3f51b5);\n}\nforge-ai-user-message hr,\nforge-ai-response-message hr,\nforge-ai-error-message hr {\n border: none;\n border-top: 1px solid var(--forge-theme-outline, #e0e0e0);\n}\nforge-ai-user-message code,\nforge-ai-response-message code,\nforge-ai-error-message code {\n color: var(--forge-theme-on-surface-container-low, #000000);\n background-color: var(--forge-theme-surface-container-low, #ebebeb);\n border-radius: calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1));\n padding: var(--forge-spacing-xxxsmall, 2px) var(--forge-spacing-xxsmall, 4px);\n font-size: 0.75em;\n}\nforge-ai-user-message pre,\nforge-ai-response-message pre,\nforge-ai-error-message pre {\n border: 1px solid var(--forge-theme-outline, #e0e0e0);\n border-radius: calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1));\n margin: 0;\n max-width: 100%;\n overflow-x: auto;\n}\nforge-ai-user-message pre:focus-visible,\nforge-ai-response-message pre:focus-visible,\nforge-ai-error-message pre:focus-visible {\n outline: 2px solid var(--forge-theme-primary, #3f51b5);\n outline-offset: 2px;\n}\nforge-ai-user-message pre code,\nforge-ai-response-message pre code,\nforge-ai-error-message pre code {\n display: block;\n padding: var(--forge-spacing-xsmall, 8px) var(--forge-spacing-small, 12px);\n color: var(--forge-theme-on-surface-container-minimum, #000000);\n background: var(--forge-theme-surface-container-minimum, #f5f5f5);\n white-space: pre;\n}\nforge-ai-user-message [data-scroll-region=table],\nforge-ai-response-message [data-scroll-region=table],\nforge-ai-error-message [data-scroll-region=table] {\n max-width: 100%;\n overflow-x: auto;\n border-radius: calc(var(--forge-shape-large, 8px) * var(--forge-shape-factor, 1));\n margin-block: var(--forge-spacing-medium, 16px);\n}\nforge-ai-user-message [data-scroll-region=table]:focus-visible,\nforge-ai-response-message [data-scroll-region=table]:focus-visible,\nforge-ai-error-message [data-scroll-region=table]:focus-visible {\n outline: 2px solid var(--forge-theme-primary, #3f51b5);\n outline-offset: 2px;\n}\nforge-ai-user-message [data-scroll-region=table] table,\nforge-ai-response-message [data-scroll-region=table] table,\nforge-ai-error-message [data-scroll-region=table] table {\n margin-block: 0;\n}\nforge-ai-user-message table,\nforge-ai-response-message table,\nforge-ai-error-message table {\n width: 100%;\n border-spacing: 0;\n background-color: var(--forge-theme-surface, #ffffff);\n border-radius: calc(var(--forge-shape-large, 8px) * var(--forge-shape-factor, 1));\n overflow: hidden;\n margin-block: var(--forge-spacing-medium, 16px);\n}\nforge-ai-user-message table thead,\nforge-ai-response-message table thead,\nforge-ai-error-message table thead {\n color: var(--forge-theme-text-medium, rgba(0, 0, 0, 0.6));\n font-weight: bold;\n text-align: left;\n font-size: calc(var(--forge-typography-font-size, 1rem) * 0.75);\n box-sizing: border-box;\n}\nforge-ai-user-message table tr,\nforge-ai-response-message table tr,\nforge-ai-error-message table tr {\n height: 36px;\n height: 32px;\n}\nforge-ai-user-message table tr:nth-child(even),\nforge-ai-response-message table tr:nth-child(even),\nforge-ai-error-message table tr:nth-child(even) {\n background-color: var(--forge-theme-surface-dim, #fafafa);\n}\nforge-ai-user-message table tr:last-child td,\nforge-ai-response-message table tr:last-child td,\nforge-ai-error-message table tr:last-child td {\n border-bottom: none;\n}\nforge-ai-user-message table th,\nforge-ai-user-message table td,\nforge-ai-response-message table th,\nforge-ai-response-message table td,\nforge-ai-error-message table th,\nforge-ai-error-message table td {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-family: var(--forge-typography-label1-font-family, var(--forge-typography-font-family, "Roboto", sans-serif));\n font-size: var(--forge-typography-label1-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-font-size-scale, 0.75)));\n font-weight: var(--forge-typography-label1-font-weight, 400);\n line-height: var(--forge-typography-label1-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-line-height-scale, 1.25)));\n letter-spacing: var(--forge-typography-label1-letter-spacing, 0.0357142857em);\n text-transform: var(--forge-typography-label1-text-transform, inherit);\n text-decoration: var(--forge-typography-label1-text-decoration, inherit);\n padding-block: var(--forge-spacing-xsmall, 8px);\n padding-inline-start: var(--forge-spacing-xsmall, 8px);\n padding-inline-end: var(--forge-spacing-medium, 16px);\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-bottom-color: var(--forge-theme-outline, #e0e0e0);\n}\nforge-ai-user-message table th,\nforge-ai-response-message table th,\nforge-ai-error-message table th {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-family: var(--forge-typography-label2-font-family, var(--forge-typography-font-family, "Roboto", sans-serif));\n font-size: var(--forge-typography-label2-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-font-size-scale, 0.8125)));\n font-weight: var(--forge-typography-label2-font-weight, 400);\n line-height: var(--forge-typography-label2-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-line-height-scale, 1.25)));\n letter-spacing: var(--forge-typography-label2-letter-spacing, 0.0096153846em);\n text-transform: var(--forge-typography-label2-text-transform, inherit);\n text-decoration: var(--forge-typography-label2-text-decoration, inherit);\n font-weight: 600;\n}\nforge-ai-user-message > p:has(+ ol),\nforge-ai-user-message > p:has(+ ul),\nforge-ai-response-message > p:has(+ ol),\nforge-ai-response-message > p:has(+ ul),\nforge-ai-error-message > p:has(+ ol),\nforge-ai-error-message > p:has(+ ul) {\n margin-block-end: var(--forge-spacing-small, 12px);\n}\nforge-ai-user-message > ul,\nforge-ai-response-message > ul,\nforge-ai-error-message > ul {\n list-style-type: disc;\n padding-inline-start: 1.6875rem;\n}\nforge-ai-user-message > ol,\nforge-ai-response-message > ol,\nforge-ai-error-message > ol {\n padding-inline-start: 1.75rem;\n}\nforge-ai-user-message > ol,\nforge-ai-user-message > ul,\nforge-ai-response-message > ol,\nforge-ai-response-message > ul,\nforge-ai-error-message > ol,\nforge-ai-error-message > ul {\n margin: var(--forge-spacing-xsmall, 8px) 0;\n margin-block-end: var(--forge-spacing-medium, 16px);\n}\nforge-ai-user-message > :first-child,\nforge-ai-response-message > :first-child,\nforge-ai-error-message > :first-child {\n margin-block-start: 0;\n}\nforge-ai-user-message > p,\nforge-ai-response-message > p,\nforge-ai-error-message > p {\n margin-block-end: var(--forge-spacing-medium, 16px);\n overflow-wrap: anywhere;\n}\nforge-ai-user-message > p:first-child,\nforge-ai-response-message > p:first-child,\nforge-ai-error-message > p:first-child {\n margin-block-start: 0;\n}\nforge-ai-user-message > p:last-child,\nforge-ai-response-message > p:last-child,\nforge-ai-error-message > p:last-child {\n margin-block-end: 0;\n}';
2
2
  export {
3
3
  styles as default
4
4
  };
@@ -47,6 +47,10 @@ export declare class AiModalComponent extends LitElement {
47
47
  * - 'fixed': Maintains defined size regardless of viewport, never auto-fullscreens
48
48
  */
49
49
  sizeStrategy: AiModalSizeStrategy;
50
+ /**
51
+ * Accessible label for the dialog, announced by screen readers when the modal opens.
52
+ */
53
+ label: string;
50
54
  private _autoFullscreen;
51
55
  constructor();
52
56
  render(): TemplateResult;
@@ -29,6 +29,7 @@ let AiModalComponent = class extends LitElement {
29
29
  __privateAdd(this, _AiModalComponent_instances);
30
30
  this.open = false;
31
31
  this.sizeStrategy = "auto";
32
+ this.label = "AI Assistant";
32
33
  this._autoFullscreen = window.innerWidth <= FULLSCREEN_WIDTH_THRESHOLD;
33
34
  __privateAdd(this, _mediaQuery);
34
35
  __privateAdd(this, _internals);
@@ -60,7 +61,7 @@ let AiModalComponent = class extends LitElement {
60
61
  return html`
61
62
  <dialog
62
63
  class=${classMap(classes)}
63
- aria-labelledby="chat-interface-title"
64
+ aria-label=${this.label}
64
65
  @close=${__privateMethod(this, _AiModalComponent_instances, handleDialogClose_fn)}
65
66
  @click=${__privateMethod(this, _AiModalComponent_instances, handleDialogClick_fn)}
66
67
  @keydown=${__privateMethod(this, _AiModalComponent_instances, handleDialogKeydown_fn)}>
@@ -163,6 +164,9 @@ __decorateClass([
163
164
  __decorateClass([
164
165
  property({ type: String, attribute: "size-strategy" })
165
166
  ], AiModalComponent.prototype, "sizeStrategy", 2);
167
+ __decorateClass([
168
+ property({ type: String })
169
+ ], AiModalComponent.prototype, "label", 2);
166
170
  __decorateClass([
167
171
  state()
168
172
  ], AiModalComponent.prototype, "_autoFullscreen", 2);
@@ -437,9 +437,9 @@ sendButton_get = function() {
437
437
  class="forge-icon-button forge-icon-button--medium send-button"
438
438
  ?disabled=${this.sendDisabled || this.inputDisabled}
439
439
  @click=${__privateGet(this, _AiPromptComponent_instances, shouldShowStopButton_get) ? this._handleStop : this._handleSend}>
440
- ${__privateGet(this, _AiPromptComponent_instances, shouldShowStopButton_get) ? html`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
440
+ ${__privateGet(this, _AiPromptComponent_instances, shouldShowStopButton_get) ? html`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true">
441
441
  <path d="M18 18H6V6h12z" />
442
- </svg>` : html`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
442
+ </svg>` : html`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true">
443
443
  <path d="m2 21 21-9L2 3v7l15 2-15 2z" />
444
444
  </svg>`}
445
445
  <forge-ai-tooltip for="send-btn" placement="top"
@@ -455,7 +455,7 @@ debugButton_get = function() {
455
455
  aria-label="Exit debug mode"
456
456
  class="forge-icon-button forge-icon-button--small forge-icon-button--tonal ai-icon-button debug-button"
457
457
  @click=${this._handleDebugToggle}>
458
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
458
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true">
459
459
  <path
460
460
  d="M20 8h-2.81a5.985 5.985 0 0 0-1.82-1.96L17 4.41 15.59 3l-2.17 2.17a6.002 6.002 0 0 0-2.83 0L8.41 3 7 4.41l1.62 1.63C7.88 6.55 7.26 7.22 6.81 8H4v2h2.09c-.05.33-.09.66-.09 1v1H4v2h2v1c0 .34.04.67.09 1H4v2h2.81c1.04 1.79 2.97 3 5.19 3s4.15-1.21 5.19-3H20v-2h-2.09c.05-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.34-.04-.67-.09-1H20V8zm-6 8h-4v-2h4v2zm0-4h-4v-2h4v2z" />
461
461
  </svg>
@@ -36,16 +36,16 @@ let AiReasoningHeaderComponent = class extends LitElement {
36
36
  @click=${this._handleClick}
37
37
  aria-expanded=${this.expanded}
38
38
  aria-controls="content">
39
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="forge-icon">
39
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="forge-icon" aria-hidden="true">
40
40
  <path
41
41
  d="M3.5 19A1.5 1.5 0 0 1 5 20.5 1.5 1.5 0 0 1 3.5 22 1.5 1.5 0 0 1 2 20.5 1.5 1.5 0 0 1 3.5 19m5-3a2.5 2.5 0 0 1 2.5 2.5A2.5 2.5 0 0 1 8.5 21 2.5 2.5 0 0 1 6 18.5 2.5 2.5 0 0 1 8.5 16m6-1c-1.19 0-2.27-.5-3-1.35-.73.85-1.81 1.35-3 1.35-1.96 0-3.59-1.41-3.93-3.26A4.02 4.02 0 0 1 2 8a4 4 0 0 1 4-4l.77.07C7.5 3.41 8.45 3 9.5 3c1.19 0 2.27.5 3 1.35.73-.85 1.81-1.35 3-1.35 1.96 0 3.59 1.41 3.93 3.26A4.02 4.02 0 0 1 22 10a4 4 0 0 1-4 4l-.77-.07c-.73.66-1.68 1.07-2.73 1.07M6 6a2 2 0 0 0-2 2 2 2 0 0 0 2 2c.33 0 .64-.08.92-.22A2 2 0 0 0 6.5 11a2 2 0 0 0 2 2c.6 0 1.14-.27 1.5-.69l1.47-1.68L13 12.34c.38.4.91.66 1.5.66 1 0 1.83-.74 2-1.7.34.43.89.7 1.5.7a2 2 0 0 0 2-2 2 2 0 0 0-2-2c-.33 0-.64.08-.92.22A2 2 0 0 0 17.5 7a2 2 0 0 0-2-2c-.59 0-1.12.26-1.5.66l-1.53 1.71L11 5.69c-.36-.42-.9-.69-1.5-.69-1 0-1.83.74-2 1.7C7.16 6.27 6.61 6 6 6m2.5 11.5a1 1 0 0 0-1 1 1 1 0 0 0 1 1 1 1 0 0 0 1-1 1 1 0 0 0-1-1" />
42
42
  </svg>
43
43
  <span class="button-header-text">
44
44
  ${this.reasoning ? html`<slot name="reasoning-title"></slot>` : html`<slot name="title"></slot>`}
45
45
  </span>
46
- ${this.expanded ? html`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="forge-icon">
46
+ ${this.expanded ? html`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="forge-icon" aria-hidden="true">
47
47
  <path d="M7.41 15.41 12 10.83l4.59 4.58L18 14l-6-6-6 6z" />
48
- </svg>` : html`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="forge-icon">
48
+ </svg>` : html`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="forge-icon" aria-hidden="true">
49
49
  <path d="M7.41 8.58 12 13.17l4.59-4.59L18 10l-6 6-6-6z" />
50
50
  </svg>`}
51
51
  </button>
@@ -111,7 +111,7 @@ resendButtonTemplate_get = function() {
111
111
  aria-label="Resend"
112
112
  class="forge-icon-button forge-icon-button--small"
113
113
  @click=${() => __privateMethod(this, _AiResponseMessageToolbarComponent_instances, emitActionEvent_fn).call(this, "resend")}>
114
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
114
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true">
115
115
  <path
116
116
  d="M17.65 6.35A7.96 7.96 0 0 0 12 4a8 8 0 0 0-8 8 8 8 0 0 0 8 8c3.73 0 6.84-2.55 7.73-6h-2.08A5.99 5.99 0 0 1 12 18a6 6 0 0 1-6-6 6 6 0 0 1 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4z" />
117
117
  </svg>
@@ -126,7 +126,7 @@ copyButtonTemplate_get = function() {
126
126
  aria-label="Copy content"
127
127
  class="forge-icon-button forge-icon-button--small"
128
128
  @click=${() => __privateMethod(this, _AiResponseMessageToolbarComponent_instances, emitActionEvent_fn).call(this, "copy")}>
129
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
129
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true">
130
130
  <path
131
131
  d="M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12z" />
132
132
  </svg>
@@ -141,10 +141,10 @@ thumbsUpButtonTemplate_get = function() {
141
141
  aria-label="Good response"
142
142
  class="forge-icon-button forge-icon-button--small ${this._thumbsUpActive ? "is-active-positive" : ""}"
143
143
  @click=${__privateMethod(this, _AiResponseMessageToolbarComponent_instances, handleThumbsUp_fn)}>
144
- ${this._thumbsUpActive ? html`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
144
+ ${this._thumbsUpActive ? html`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true">
145
145
  <path
146
146
  d="M23 10a2 2 0 0 0-2-2h-6.32l.96-4.57c.02-.1.03-.21.03-.32 0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.58C7.22 7.95 7 8.45 7 9v10a2 2 0 0 0 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73zM1 21h4V9H1z" />
147
- </svg>` : html`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
147
+ </svg>` : html`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true">
148
148
  <path
149
149
  d="M5 9v12H1V9zm4 12a2 2 0 0 1-2-2V9c0-.55.22-1.05.59-1.41L14.17 1l1.06 1.06c.27.27.44.64.44 1.05l-.03.32L14.69 8H21a2 2 0 0 1 2 2v2c0 .26-.05.5-.14.73l-3.02 7.05C19.54 20.5 18.83 21 18 21zm0-2h9.03L21 12v-2h-8.79l1.13-5.32L9 9.03z" />
150
150
  </svg>`}
@@ -159,10 +159,10 @@ thumbsDownButtonTemplate_get = function() {
159
159
  aria-label="Bad response"
160
160
  class="forge-icon-button forge-icon-button--small ${this._thumbsDownActive || this._popoverOpen ? "is-active-negative" : ""}"
161
161
  @click=${__privateMethod(this, _AiResponseMessageToolbarComponent_instances, handleThumbsDown_fn)}>
162
- ${this._thumbsDownActive || this._popoverOpen ? html`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
162
+ ${this._thumbsDownActive || this._popoverOpen ? html`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true">
163
163
  <path
164
164
  d="M19 15h4V3h-4m-4 0H6c-.83 0-1.54.5-1.84 1.22l-3.02 7.05c-.09.23-.14.47-.14.73v2a2 2 0 0 0 2 2h6.31l-.95 4.57c-.02.1-.03.2-.03.31 0 .42.17.79.44 1.06L9.83 23l6.58-6.59c.37-.36.59-.86.59-1.41V5a2 2 0 0 0-2-2" />
165
- </svg>` : html`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
165
+ </svg>` : html`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true">
166
166
  <path
167
167
  d="M19 15V3h4v12zM15 3a2 2 0 0 1 2 2v10c0 .55-.22 1.05-.59 1.41L9.83 23l-1.06-1.06c-.27-.27-.44-.64-.44-1.06l.03-.31.95-4.57H3a2 2 0 0 1-2-2v-2c0-.26.05-.5.14-.73l3.02-7.05C4.46 3.5 5.17 3 6 3zm0 2H5.97L3 12v2h8.78l-1.13 5.32L15 14.97z" />
168
168
  </svg>`}
@@ -77,7 +77,7 @@ let AiSlashCommandMenuComponent = class extends LitElement {
77
77
  @click=${__privateMethod(this, _AiSlashCommandMenuComponent_instances, closeMenu_fn)}
78
78
  aria-label="Close menu"
79
79
  class="forge-icon-button forge-icon-button--small ai-icon-button">
80
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
80
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true">
81
81
  <path
82
82
  d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" />
83
83
  </svg>
@@ -20,7 +20,7 @@ let AiSpinnerComponent = class extends LitElement {
20
20
  render() {
21
21
  return html`
22
22
  <div class="spinner spinner--${this.size}">
23
- <svg viewBox="0 0 48 48">
23
+ <svg viewBox="0 0 48 48" aria-hidden="true">
24
24
  <circle class="track" cx="24" cy="24" r="20" fill="none" stroke-width="4"></circle>
25
25
  <circle class="indicator" cx="24" cy="24" r="20" fill="none" stroke-width="4"></circle>
26
26
  </svg>
@@ -113,7 +113,7 @@ suggestionButtons_get = function() {
113
113
  const showTooltip = state?.isOverflowing ?? false;
114
114
  return html`
115
115
  <li class="forge-list-item custom-list-item">
116
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="forge-icon">
116
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="forge-icon" aria-hidden="true">
117
117
  <path
118
118
  d="M9 22a1 1 0 0 1-1-1v-3H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6.1l-3.7 3.71c-.2.19-.45.29-.7.29zm1-6v3.08L13.08 16H20V4H4v12zM6 7h12v2H6zm0 4h9v2H6z" />
119
119
  </svg>
@@ -36,12 +36,13 @@ let AiThreadActionsMenuComponent = class extends LitElement {
36
36
  density="small"
37
37
  selection-mode="none"
38
38
  popover-placement="bottom-start"
39
+ trigger-label="Conversation options"
39
40
  @keydown=${__privateMethod(this, _AiThreadActionsMenuComponent_instances, handleMenuKeyDown_fn)}
40
41
  @forge-ai-dropdown-menu-open=${__privateMethod(this, _AiThreadActionsMenuComponent_instances, handleMenuOpen_fn)}
41
42
  @forge-ai-dropdown-menu-close=${__privateMethod(this, _AiThreadActionsMenuComponent_instances, handleMenuClose_fn)}
42
43
  @click=${__privateMethod(this, _AiThreadActionsMenuComponent_instances, handleMenuSelect_fn)}>
43
44
  <slot name="trigger-icon" slot="trigger-content">
44
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="forge-icon">
45
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" class="forge-icon">
45
46
  <path
46
47
  d="M12 16a2 2 0 0 1 2 2 2 2 0 0 1-2 2 2 2 0 0 1-2-2 2 2 0 0 1 2-2m0-6a2 2 0 0 1 2 2 2 2 0 0 1-2 2 2 2 0 0 1-2-2 2 2 0 0 1 2-2m0-6a2 2 0 0 1 2 2 2 2 0 0 1-2 2 2 2 0 0 1-2-2 2 2 0 0 1 2-2" />
47
48
  </svg>
@@ -51,7 +52,12 @@ let AiThreadActionsMenuComponent = class extends LitElement {
51
52
  this.showRename,
52
53
  () => html`
53
54
  <forge-ai-dropdown-menu-item value="rename" @click=${__privateMethod(this, _AiThreadActionsMenuComponent_instances, handleRenameClick_fn)}>
54
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" slot="start" class="forge-icon">
55
+ <svg
56
+ xmlns="http://www.w3.org/2000/svg"
57
+ viewBox="0 0 24 24"
58
+ slot="start"
59
+ class="forge-icon"
60
+ aria-hidden="true">
55
61
  <path
56
62
  d="m14.06 9 .94.94L5.92 19H5v-.92zm3.6-6c-.25 0-.51.1-.7.29l-1.83 1.83 3.75 3.75 1.83-1.83c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.2-.2-.45-.29-.71-.29m-3.6 3.19L3 17.25V21h3.75L17.81 9.94z" />
57
63
  </svg>
@@ -63,7 +69,12 @@ let AiThreadActionsMenuComponent = class extends LitElement {
63
69
  this.showDelete,
64
70
  () => html`
65
71
  <forge-ai-dropdown-menu-item value="delete" @click=${__privateMethod(this, _AiThreadActionsMenuComponent_instances, handleDeleteClick_fn)}>
66
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" slot="start" class="forge-icon">
72
+ <svg
73
+ xmlns="http://www.w3.org/2000/svg"
74
+ viewBox="0 0 24 24"
75
+ slot="start"
76
+ class="forge-icon"
77
+ aria-hidden="true">
67
78
  <path
68
79
  d="M9 3v1H4v2h1v13a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V6h1V4h-5V3zM7 6h10v13H7zm2 2v9h2V8zm4 0v9h2V8z" />
69
80
  </svg>