@tylertech/forge-ai 0.13.4 → 0.13.6

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 (30) hide show
  1. package/custom-elements.json +176 -89
  2. package/dist/ai-assistant-response/ai-assistant-response.scss.mjs +1 -1
  3. package/dist/ai-chat-header/ai-chat-header.d.ts +2 -0
  4. package/dist/ai-chatbot/ai-chatbot-base.d.ts +1 -0
  5. package/dist/ai-chatbot/ai-chatbot-base.mjs +4 -0
  6. package/dist/ai-chatbot/ai-chatbot.d.ts +3 -0
  7. package/dist/ai-chatbot/ai-chatbot.mjs +1 -1
  8. package/dist/ai-chatbot/ai-chatbot.scss.mjs +1 -1
  9. package/dist/ai-chatbot/index.d.ts +1 -1
  10. package/dist/ai-chatbot/index.mjs +3 -1
  11. package/dist/ai-chatbot/markdown-stream-controller.d.ts +2 -1
  12. package/dist/ai-chatbot/markdown-stream-controller.mjs +6 -6
  13. package/dist/ai-chatbot/utils.d.ts +1 -4
  14. package/dist/ai-chatbot/utils.mjs +2 -23
  15. package/dist/ai-chatbot-launcher/ai-chatbot-launcher.mjs +1 -1
  16. package/dist/ai-embedded-chat/ai-embedded-chat.mjs +1 -3
  17. package/dist/ai-message-thread/ai-message-thread.mjs +1 -1
  18. package/dist/ai-message-thread/ai-message-thread.scss.mjs +1 -1
  19. package/dist/ai-tool-call-indicator/ai-tool-call-indicator.d.ts +2 -1
  20. package/dist/ai-tool-call-indicator/ai-tool-call-indicator.mjs +8 -3
  21. package/dist/ai-tool-call-indicator/ai-tool-call-indicator.scss.mjs +1 -1
  22. package/dist/index.mjs +3 -1
  23. package/dist/tools/ai-data-table/ai-data-table-definition.mjs +1 -3
  24. package/dist/tools/ai-data-table/ai-data-table.mjs +13 -2
  25. package/dist/tools/ai-data-table/ai-data-table.scss.mjs +1 -1
  26. package/dist/utils/index.d.ts +1 -0
  27. package/dist/utils/index.mjs +3 -0
  28. package/dist/utils/markdown.d.ts +34 -0
  29. package/dist/utils/markdown.mjs +45 -0
  30. package/package.json +1 -1
@@ -651,156 +651,156 @@
651
651
  },
652
652
  {
653
653
  "kind": "javascript-module",
654
- "path": "src/lib/ai-chain-of-thought/ai-chain-of-thought.ts",
654
+ "path": "src/lib/ai-button/ai-button.ts",
655
655
  "declarations": [
656
656
  {
657
657
  "kind": "variable",
658
- "name": "AiChainOfThoughtComponentTagName",
658
+ "name": "AiButtonComponentTagName",
659
659
  "type": {
660
660
  "text": "keyof HTMLElementTagNameMap"
661
661
  },
662
- "default": "'forge-ai-chain-of-thought'"
662
+ "default": "'forge-ai-button'"
663
663
  },
664
664
  {
665
665
  "kind": "class",
666
666
  "description": "",
667
- "name": "AiChainOfThoughtComponent",
667
+ "name": "AiButtonComponent",
668
+ "slots": [
669
+ {
670
+ "description": "Default slot for button content",
671
+ "name": ""
672
+ }
673
+ ],
668
674
  "members": [
669
675
  {
670
676
  "kind": "field",
671
- "name": "expanded",
677
+ "name": "disabled",
672
678
  "type": {
673
679
  "text": "boolean"
674
680
  },
675
681
  "privacy": "public",
676
682
  "default": "false",
677
- "description": "Whether the chain of thought is expanded",
678
- "attribute": "expanded",
683
+ "description": "Whether the button is disabled",
684
+ "attribute": "disabled",
679
685
  "reflects": true
680
686
  }
681
687
  ],
682
688
  "attributes": [
683
689
  {
684
- "name": "expanded",
690
+ "name": "disabled",
685
691
  "type": {
686
692
  "text": "boolean"
687
693
  },
688
694
  "default": "false",
689
- "description": "Whether the chain of thought is expanded",
690
- "fieldName": "expanded"
695
+ "description": "Whether the button is disabled",
696
+ "fieldName": "disabled"
691
697
  }
692
698
  ],
693
699
  "superclass": {
694
700
  "name": "LitElement",
695
701
  "package": "lit"
696
702
  },
697
- "tagName": "forge-ai-chain-of-thought",
703
+ "tagName": "forge-ai-button",
698
704
  "customElement": true
699
705
  }
700
706
  ],
701
707
  "exports": [
702
708
  {
703
709
  "kind": "js",
704
- "name": "AiChainOfThoughtComponentTagName",
710
+ "name": "AiButtonComponentTagName",
705
711
  "declaration": {
706
- "name": "AiChainOfThoughtComponentTagName",
707
- "module": "src/lib/ai-chain-of-thought/ai-chain-of-thought.ts"
712
+ "name": "AiButtonComponentTagName",
713
+ "module": "src/lib/ai-button/ai-button.ts"
708
714
  }
709
715
  },
710
716
  {
711
717
  "kind": "js",
712
- "name": "AiChainOfThoughtComponent",
718
+ "name": "AiButtonComponent",
713
719
  "declaration": {
714
- "name": "AiChainOfThoughtComponent",
715
- "module": "src/lib/ai-chain-of-thought/ai-chain-of-thought.ts"
720
+ "name": "AiButtonComponent",
721
+ "module": "src/lib/ai-button/ai-button.ts"
716
722
  }
717
723
  },
718
724
  {
719
725
  "kind": "custom-element-definition",
720
726
  "declaration": {
721
- "name": "AiChainOfThoughtComponent",
722
- "module": "src/lib/ai-chain-of-thought/ai-chain-of-thought.ts"
727
+ "name": "AiButtonComponent",
728
+ "module": "src/lib/ai-button/ai-button.ts"
723
729
  }
724
730
  }
725
731
  ]
726
732
  },
727
733
  {
728
734
  "kind": "javascript-module",
729
- "path": "src/lib/ai-button/ai-button.ts",
735
+ "path": "src/lib/ai-chain-of-thought/ai-chain-of-thought.ts",
730
736
  "declarations": [
731
737
  {
732
738
  "kind": "variable",
733
- "name": "AiButtonComponentTagName",
739
+ "name": "AiChainOfThoughtComponentTagName",
734
740
  "type": {
735
741
  "text": "keyof HTMLElementTagNameMap"
736
742
  },
737
- "default": "'forge-ai-button'"
743
+ "default": "'forge-ai-chain-of-thought'"
738
744
  },
739
745
  {
740
746
  "kind": "class",
741
747
  "description": "",
742
- "name": "AiButtonComponent",
743
- "slots": [
744
- {
745
- "description": "Default slot for button content",
746
- "name": ""
747
- }
748
- ],
748
+ "name": "AiChainOfThoughtComponent",
749
749
  "members": [
750
750
  {
751
751
  "kind": "field",
752
- "name": "disabled",
752
+ "name": "expanded",
753
753
  "type": {
754
754
  "text": "boolean"
755
755
  },
756
756
  "privacy": "public",
757
757
  "default": "false",
758
- "description": "Whether the button is disabled",
759
- "attribute": "disabled",
758
+ "description": "Whether the chain of thought is expanded",
759
+ "attribute": "expanded",
760
760
  "reflects": true
761
761
  }
762
762
  ],
763
763
  "attributes": [
764
764
  {
765
- "name": "disabled",
765
+ "name": "expanded",
766
766
  "type": {
767
767
  "text": "boolean"
768
768
  },
769
769
  "default": "false",
770
- "description": "Whether the button is disabled",
771
- "fieldName": "disabled"
770
+ "description": "Whether the chain of thought is expanded",
771
+ "fieldName": "expanded"
772
772
  }
773
773
  ],
774
774
  "superclass": {
775
775
  "name": "LitElement",
776
776
  "package": "lit"
777
777
  },
778
- "tagName": "forge-ai-button",
778
+ "tagName": "forge-ai-chain-of-thought",
779
779
  "customElement": true
780
780
  }
781
781
  ],
782
782
  "exports": [
783
783
  {
784
784
  "kind": "js",
785
- "name": "AiButtonComponentTagName",
785
+ "name": "AiChainOfThoughtComponentTagName",
786
786
  "declaration": {
787
- "name": "AiButtonComponentTagName",
788
- "module": "src/lib/ai-button/ai-button.ts"
787
+ "name": "AiChainOfThoughtComponentTagName",
788
+ "module": "src/lib/ai-chain-of-thought/ai-chain-of-thought.ts"
789
789
  }
790
790
  },
791
791
  {
792
792
  "kind": "js",
793
- "name": "AiButtonComponent",
793
+ "name": "AiChainOfThoughtComponent",
794
794
  "declaration": {
795
- "name": "AiButtonComponent",
796
- "module": "src/lib/ai-button/ai-button.ts"
795
+ "name": "AiChainOfThoughtComponent",
796
+ "module": "src/lib/ai-chain-of-thought/ai-chain-of-thought.ts"
797
797
  }
798
798
  },
799
799
  {
800
800
  "kind": "custom-element-definition",
801
801
  "declaration": {
802
- "name": "AiButtonComponent",
803
- "module": "src/lib/ai-button/ai-button.ts"
802
+ "name": "AiChainOfThoughtComponent",
803
+ "module": "src/lib/ai-chain-of-thought/ai-chain-of-thought.ts"
804
804
  }
805
805
  }
806
806
  ]
@@ -821,6 +821,12 @@
821
821
  "kind": "class",
822
822
  "description": "",
823
823
  "name": "AiChatHeaderComponent",
824
+ "cssProperties": [
825
+ {
826
+ "description": "The color of the title text. Defaults to `currentColor`.",
827
+ "name": "--forge-ai-chat-header-title-color"
828
+ }
829
+ ],
824
830
  "slots": [
825
831
  {
826
832
  "description": "Slot for custom icon (default: forge-ai-icon)",
@@ -2989,6 +2995,16 @@
2989
2995
  "default": "'on'",
2990
2996
  "attribute": "export-option"
2991
2997
  },
2998
+ {
2999
+ "kind": "field",
3000
+ "name": "clearOption",
3001
+ "type": {
3002
+ "text": "FeatureToggle"
3003
+ },
3004
+ "privacy": "public",
3005
+ "default": "'on'",
3006
+ "attribute": "clear-option"
3007
+ },
2992
3008
  {
2993
3009
  "kind": "field",
2994
3010
  "name": "agentInfo",
@@ -3274,6 +3290,14 @@
3274
3290
  "default": "'on'",
3275
3291
  "fieldName": "exportOption"
3276
3292
  },
3293
+ {
3294
+ "name": "clear-option",
3295
+ "type": {
3296
+ "text": "FeatureToggle"
3297
+ },
3298
+ "default": "'on'",
3299
+ "fieldName": "clearOption"
3300
+ },
3277
3301
  {
3278
3302
  "name": "selected-agent-id",
3279
3303
  "type": {
@@ -3404,6 +3428,10 @@
3404
3428
  {
3405
3429
  "description": "The text color for suggestion buttons. Defaults to `on-tertiary-container`.",
3406
3430
  "name": "--forge-ai-chatbot-suggestion-foreground"
3431
+ },
3432
+ {
3433
+ "description": "The color of the header title text. Defaults to `currentColor`.",
3434
+ "name": "--forge-ai-chatbot-header-title-color"
3407
3435
  }
3408
3436
  ],
3409
3437
  "slots": [
@@ -3693,6 +3721,36 @@
3693
3721
  "module": "src/lib/ai-chatbot/ai-chatbot-base.ts"
3694
3722
  }
3695
3723
  },
3724
+ {
3725
+ "kind": "field",
3726
+ "name": "clearOption",
3727
+ "type": {
3728
+ "text": "FeatureToggle"
3729
+ },
3730
+ "privacy": "public",
3731
+ "default": "'on'",
3732
+ "attribute": "clear-option",
3733
+ "description": "Controls the clear-conversation header action. `'on'` (default) shows it when messages exist; `'off'` hides it entirely.",
3734
+ "inheritedFrom": {
3735
+ "name": "AiChatbotBase",
3736
+ "module": "src/lib/ai-chatbot/ai-chatbot-base.ts"
3737
+ }
3738
+ },
3739
+ {
3740
+ "kind": "field",
3741
+ "name": "exportOption",
3742
+ "type": {
3743
+ "text": "FeatureToggle"
3744
+ },
3745
+ "privacy": "public",
3746
+ "default": "'on'",
3747
+ "attribute": "export-option",
3748
+ "description": "Controls the export-conversation header action. `'on'` (default) shows it when messages exist; `'off'` hides it entirely.",
3749
+ "inheritedFrom": {
3750
+ "name": "AiChatbotBase",
3751
+ "module": "src/lib/ai-chatbot/ai-chatbot-base.ts"
3752
+ }
3753
+ },
3696
3754
  {
3697
3755
  "kind": "field",
3698
3756
  "name": "adapter",
@@ -3817,20 +3875,6 @@
3817
3875
  "module": "src/lib/ai-chatbot/ai-chatbot-base.ts"
3818
3876
  }
3819
3877
  },
3820
- {
3821
- "kind": "field",
3822
- "name": "exportOption",
3823
- "type": {
3824
- "text": "FeatureToggle"
3825
- },
3826
- "privacy": "public",
3827
- "default": "'on'",
3828
- "attribute": "export-option",
3829
- "inheritedFrom": {
3830
- "name": "AiChatbotBase",
3831
- "module": "src/lib/ai-chatbot/ai-chatbot-base.ts"
3832
- }
3833
- },
3834
3878
  {
3835
3879
  "kind": "field",
3836
3880
  "name": "selectedAgentId",
@@ -4362,6 +4406,18 @@
4362
4406
  "module": "src/lib/ai-chatbot/ai-chatbot-base.ts"
4363
4407
  }
4364
4408
  },
4409
+ {
4410
+ "name": "clear-option",
4411
+ "type": {
4412
+ "text": "FeatureToggle"
4413
+ },
4414
+ "default": "'on'",
4415
+ "fieldName": "clearOption",
4416
+ "inheritedFrom": {
4417
+ "name": "AiChatbotBase",
4418
+ "module": "src/lib/ai-chatbot/ai-chatbot-base.ts"
4419
+ }
4420
+ },
4365
4421
  {
4366
4422
  "name": "selected-agent-id",
4367
4423
  "type": {
@@ -5014,6 +5070,13 @@
5014
5070
  "type": {
5015
5071
  "text": "string"
5016
5072
  }
5073
+ },
5074
+ {
5075
+ "name": "options",
5076
+ "default": "{}",
5077
+ "type": {
5078
+ "text": "RenderMarkdownOptions"
5079
+ }
5017
5080
  }
5018
5081
  ]
5019
5082
  }
@@ -5567,24 +5630,6 @@
5567
5630
  },
5568
5631
  "description": "Generates a unique ID using UUID v4"
5569
5632
  },
5570
- {
5571
- "kind": "function",
5572
- "name": "renderMarkdown",
5573
- "return": {
5574
- "type": {
5575
- "text": "string"
5576
- }
5577
- },
5578
- "parameters": [
5579
- {
5580
- "name": "content",
5581
- "type": {
5582
- "text": "string"
5583
- }
5584
- }
5585
- ],
5586
- "description": "Renders markdown content to sanitized HTML"
5587
- },
5588
5633
  {
5589
5634
  "kind": "function",
5590
5635
  "name": "downloadFile",
@@ -5700,17 +5745,33 @@
5700
5745
  "exports": [
5701
5746
  {
5702
5747
  "kind": "js",
5703
- "name": "generateId",
5748
+ "name": "renderMarkdown",
5704
5749
  "declaration": {
5705
- "name": "generateId",
5706
- "module": "src/lib/ai-chatbot/utils.ts"
5750
+ "name": "renderMarkdown",
5751
+ "module": "../utils/markdown.js"
5707
5752
  }
5708
5753
  },
5709
5754
  {
5710
5755
  "kind": "js",
5711
- "name": "renderMarkdown",
5756
+ "name": "renderInlineMarkdown",
5712
5757
  "declaration": {
5713
- "name": "renderMarkdown",
5758
+ "name": "renderInlineMarkdown",
5759
+ "module": "../utils/markdown.js"
5760
+ }
5761
+ },
5762
+ {
5763
+ "kind": "js",
5764
+ "name": "RenderMarkdownOptions",
5765
+ "declaration": {
5766
+ "name": "RenderMarkdownOptions",
5767
+ "module": "../utils/markdown.js"
5768
+ }
5769
+ },
5770
+ {
5771
+ "kind": "js",
5772
+ "name": "generateId",
5773
+ "declaration": {
5774
+ "name": "generateId",
5714
5775
  "module": "src/lib/ai-chatbot/utils.ts"
5715
5776
  }
5716
5777
  },
@@ -6218,6 +6279,20 @@
6218
6279
  "module": "src/lib/ai-chatbot/ai-chatbot-base.ts"
6219
6280
  }
6220
6281
  },
6282
+ {
6283
+ "kind": "field",
6284
+ "name": "clearOption",
6285
+ "type": {
6286
+ "text": "FeatureToggle"
6287
+ },
6288
+ "privacy": "public",
6289
+ "default": "'on'",
6290
+ "attribute": "clear-option",
6291
+ "inheritedFrom": {
6292
+ "name": "AiChatbotBase",
6293
+ "module": "src/lib/ai-chatbot/ai-chatbot-base.ts"
6294
+ }
6295
+ },
6221
6296
  {
6222
6297
  "kind": "field",
6223
6298
  "name": "contextItems",
@@ -6569,6 +6644,18 @@
6569
6644
  "module": "src/lib/ai-chatbot/ai-chatbot-base.ts"
6570
6645
  }
6571
6646
  },
6647
+ {
6648
+ "name": "clear-option",
6649
+ "type": {
6650
+ "text": "FeatureToggle"
6651
+ },
6652
+ "default": "'on'",
6653
+ "fieldName": "clearOption",
6654
+ "inheritedFrom": {
6655
+ "name": "AiChatbotBase",
6656
+ "module": "src/lib/ai-chatbot/ai-chatbot-base.ts"
6657
+ }
6658
+ },
6572
6659
  {
6573
6660
  "name": "selected-agent-id",
6574
6661
  "type": {
@@ -14290,14 +14377,14 @@
14290
14377
  "path": "src/lib/ai-attachment/ai-attachment.ts",
14291
14378
  "lineNumber": 41
14292
14379
  },
14293
- "AiChainOfThoughtComponent": {
14294
- "path": "src/lib/ai-chain-of-thought/ai-chain-of-thought.ts",
14295
- "lineNumber": 17
14296
- },
14297
14380
  "AiButtonComponent": {
14298
14381
  "path": "src/lib/ai-button/ai-button.ts",
14299
14382
  "lineNumber": 22
14300
14383
  },
14384
+ "AiChainOfThoughtComponent": {
14385
+ "path": "src/lib/ai-chain-of-thought/ai-chain-of-thought.ts",
14386
+ "lineNumber": 17
14387
+ },
14301
14388
  "ForgeAiChatHeaderAgentChangeEventData": {
14302
14389
  "path": "src/lib/ai-chat-header/ai-chat-header.ts",
14303
14390
  "lineNumber": 39
@@ -14312,7 +14399,7 @@
14312
14399
  },
14313
14400
  "AiChatHeaderComponent": {
14314
14401
  "path": "src/lib/ai-chat-header/ai-chat-header.ts",
14315
- "lineNumber": 79
14402
+ "lineNumber": 81
14316
14403
  },
14317
14404
  "AiChatInterfaceComponent": {
14318
14405
  "path": "src/lib/ai-chat-interface/ai-chat-interface.ts",
@@ -14476,7 +14563,7 @@
14476
14563
  },
14477
14564
  "AiChatbotComponent": {
14478
14565
  "path": "src/lib/ai-chatbot/ai-chatbot.ts",
14479
- "lineNumber": 171
14566
+ "lineNumber": 174
14480
14567
  },
14481
14568
  "CreateToolRendererElementConfig": {
14482
14569
  "path": "src/lib/ai-chatbot/create-tool-renderer.ts",
@@ -15200,11 +15287,11 @@
15200
15287
  },
15201
15288
  "TableData": {
15202
15289
  "path": "src/lib/tools/ai-data-table/ai-data-table.ts",
15203
- "lineNumber": 20
15290
+ "lineNumber": 22
15204
15291
  },
15205
15292
  "DataTableToolElement": {
15206
15293
  "path": "src/lib/tools/ai-data-table/ai-data-table.ts",
15207
- "lineNumber": 36
15294
+ "lineNumber": 38
15208
15295
  },
15209
15296
  "AiPaginator": {
15210
15297
  "path": "src/lib/tools/ai-paginator/ai-paginator.ts",
@@ -1,4 +1,4 @@
1
- const styles = '/**\n * @license\n * Copyright Tyler Technologies, Inc.\n * License: Apache-2.0\n */\n.forge-icon-button {\n --_icon-button-display:var(--forge-icon-button-display, inline-flex);\n --_icon-button-size:var(--forge-icon-button-size, 48px);\n --_icon-button-gap:var(--forge-icon-button-gap, 0);\n --_icon-button-icon-color:var(--forge-icon-button-icon-color, currentColor);\n --_icon-button-background-color:var(--forge-icon-button-background-color, none);\n --_icon-button-icon-size:var(--forge-icon-button-icon-size, calc(var(--forge-typography-font-size, 1rem) * 1.5));\n --_icon-button-cursor:var(--forge-icon-button-cursor, pointer);\n --_icon-button-padding:var(--forge-icon-button-padding, var(--forge-spacing-xxsmall, 4px));\n --_icon-button-border:var(--forge-icon-button-border, none);\n --_icon-button-shadow:var(--forge-icon-button-shadow, none);\n --_icon-button-transition-duration:var(--forge-icon-button-transition-duration, var(--forge-animation-duration-short3, 150ms));\n --_icon-button-transition-timing:var(--forge-icon-button-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));\n --_icon-button-shape:var(--forge-icon-button-shape, calc(var(--forge-shape-full, 9999px) * var(--forge-shape-factor, 1)));\n --_icon-button-shape-start-start:var(--forge-icon-button-shape-start-start, var(--_icon-button-shape));\n --_icon-button-shape-start-end:var(--forge-icon-button-shape-start-end, var(--_icon-button-shape));\n --_icon-button-shape-end-start:var(--forge-icon-button-shape-end-start, var(--_icon-button-shape));\n --_icon-button-shape-end-end:var(--forge-icon-button-shape-end-end, var(--_icon-button-shape));\n --_icon-button-shape-squared:var(--forge-icon-button-shape-squared, calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1)));\n --_icon-button-outlined-border-width:var(--forge-icon-button-outlined-border-width, 1px);\n --_icon-button-outlined-border-style:var(--forge-icon-button-outlined-border-style, solid);\n --_icon-button-outlined-border-color:var(--forge-icon-button-outlined-border-color, var(--_icon-button-icon-color));\n --_icon-button-tonal-icon-color:var(--forge-icon-button-tonal-icon-color, var(--forge-theme-on-primary-container, #222c62));\n --_icon-button-tonal-background-color:var(--forge-icon-button-tonal-background-color, var(--forge-theme-primary-container, #d1d5ed));\n --_icon-button-filled-icon-color:var(--forge-icon-button-filled-icon-color, var(--forge-theme-on-primary, #ffffff));\n --_icon-button-filled-background-color:var(--forge-icon-button-filled-background-color, var(--forge-theme-primary, #3f51b5));\n --_icon-button-raised-shadow:var(--forge-icon-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 --_icon-button-raised-hover-shadow:var(--forge-icon-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 --_icon-button-raised-active-shadow:var(--forge-icon-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 --_icon-button-raised-disabled-shadow:var(--forge-icon-button-raised-disabled-shadow, none);\n --_icon-button-density-small-size:var(--forge-icon-button-density-small-size, 24px);\n --_icon-button-density-small-padding:var(--forge-icon-button-density-small-padding, var(--forge-spacing-xxxsmall, 2px));\n --_icon-button-density-small-icon-size:var(--forge-icon-button-density-small-icon-size, calc(var(--forge-typography-font-size, 1rem) * 1.125));\n --_icon-button-density-medium-size:var(--forge-icon-button-density-medium-size, 36px);\n --_icon-button-density-medium-padding:var(--forge-icon-button-density-medium-padding, var(--forge-spacing-xxsmall, 4px));\n --_icon-button-density-large-size:var(--forge-icon-button-density-large-size, var(--_icon-button-size));\n --_icon-button-toggle-on-background-color:var(--forge-icon-button-toggle-on-background-color, var(--forge-theme-primary-container, #d1d5ed));\n --_icon-button-toggle-on-icon-color:var(--forge-icon-button-toggle-on-icon-color, var(--forge-theme-primary, #3f51b5));\n --_icon-button-outlined-toggle-on-background-color:var(--forge-icon-button-outlined-toggle-on-background-color, var(--forge-theme-primary-container, #d1d5ed));\n --_icon-button-outlined-toggle-on-icon-color:var(--forge-icon-button-outlined-toggle-on-icon-color, var(--forge-theme-primary, #3f51b5));\n --_icon-button-tonal-toggle-background-color:var(--forge-icon-button-tonal-toggle-background-color, var(--forge-theme-surface-container-low, #ebebeb));\n --_icon-button-tonal-toggle-on-background-color:var(--forge-icon-button-tonal-toggle-on-background-color, var(--forge-theme-primary-container, #d1d5ed));\n --_icon-button-tonal-toggle-on-icon-color:var(--forge-icon-button-tonal-toggle-on-icon-color, var(--forge-theme-primary, #3f51b5));\n --_icon-button-filled-toggle-background-color:var(--forge-icon-button-filled-toggle-background-color, var(--forge-theme-surface-container-low, #ebebeb));\n --_icon-button-filled-toggle-icon-color:var(--forge-icon-button-filled-toggle-icon-color, var(--forge-theme-primary, #3f51b5));\n --_icon-button-filled-toggle-on-background-color:var(--forge-icon-button-filled-toggle-on-background-color, var(--forge-theme-primary, #3f51b5));\n --_icon-button-filled-toggle-on-icon-color:var(--forge-icon-button-filled-toggle-on-icon-color, var(--forge-theme-on-primary, #ffffff));\n --_icon-button-disabled-cursor:var(--forge-icon-button-disabled-cursor, not-allowed);\n --_icon-button-disabled-opacity:var(--forge-icon-button-disabled-opacity, 0.38);\n --_icon-button-popover-icon-padding:var(--forge-icon-button-popover-icon-padding, var(--forge-spacing-xsmall, 8px));\n --_icon-button-focus-indicator-color:var(--forge-icon-button-focus-indicator-color, var(--forge-theme-primary, #3f51b5));\n}\n\n.forge-icon-button {\n display: var(--_icon-button-display);\n position: relative;\n outline: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n position: relative;\n z-index: 0;\n display: var(--_icon-button-display);\n align-items: center;\n justify-content: center;\n gap: var(--_icon-button-gap);\n box-sizing: border-box;\n height: var(--_icon-button-density-large-size);\n min-width: var(--_icon-button-density-large-size);\n border: var(--_icon-button-border);\n border-start-start-radius: var(--_icon-button-shape-start-start);\n border-start-end-radius: var(--_icon-button-shape-start-end);\n border-end-start-radius: var(--_icon-button-shape-end-start);\n border-end-end-radius: var(--_icon-button-shape-end-end);\n padding: var(--_icon-button-padding);\n box-shadow: var(--_icon-button-shadow);\n color: var(--_icon-button-icon-color);\n background: var(--_icon-button-background-color);\n font-size: var(--_icon-button-icon-size);\n cursor: var(--_icon-button-cursor);\n user-select: none;\n transition-property: box-shadow, background;\n transition-duration: var(--_icon-button-transition-duration);\n transition-timing-function: var(--_icon-button-transition-timing);\n}\n\n.forge-icon-button img, .forge-icon-button svg {\n height: var(--_icon-button-icon-size);\n width: var(--_icon-button-icon-size);\n}\n\n.forge-icon-button svg {\n fill: currentColor;\n}\n\n.forge-icon-button: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-icon-button: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-icon-button:not(:disabled):hover::before {\n background-color: var(--_state-layer-hover-color);\n opacity: var(--_state-layer-hover-opacity);\n}\n\n.forge-icon-button: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.forge-icon-button:not(:disabled) {\n --forge-state-layer-color: var(--_icon-button-icon-color);\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-icon-button:not(:disabled) {\n outline: none;\n}\n\n.forge-icon-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-icon-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-icon-button:not(:disabled) {\n --forge-focus-indicator-color: var(--_icon-button-focus-indicator-color);\n --forge-focus-indicator-shape: var(--_icon-button-shape);\n}\n\n.forge-icon-button:not(:disabled):where(.forge-icon-button--text, :not(:where(.forge-icon-button--outlined, .forge-icon-button--tonal, .forge-icon-button--filled, .forge-icon-button--raised))) {\n --forge-focus-indicator-outward-offset: 0px;\n}\n\n.forge-icon-button--outlined {\n border-width: var(--_icon-button-outlined-border-width);\n border-style: var(--_icon-button-outlined-border-style);\n border-color: var(--_icon-button-outlined-border-color);\n}\n\n.forge-icon-button--tonal {\n --_icon-button-icon-color:var(--_icon-button-tonal-icon-color);\n --_icon-button-background-color:var(--_icon-button-tonal-background-color);\n}\n\n.forge-icon-button--filled, .forge-icon-button--raised {\n --_icon-button-icon-color:var(--_icon-button-filled-icon-color);\n --_icon-button-background-color:var(--_icon-button-filled-background-color);\n}\n\n.forge-icon-button--raised {\n --_icon-button-shadow:var(--_icon-button-raised-shadow);\n}\n\n.forge-icon-button--raised:hover {\n --_icon-button-raised-shadow:var(--_icon-button-raised-hover-shadow);\n}\n\n.forge-icon-button--raised:active {\n --_icon-button-raised-shadow:var(--_icon-button-raised-active-shadow);\n}\n\n.forge-icon-button--squared {\n --_icon-button-shape:var(--_icon-button-shape-squared);\n}\n\n.forge-icon-button--small {\n --_icon-button-size:var(--_icon-button-density-small-size);\n --_icon-button-icon-size:var(--_icon-button-density-small-icon-size);\n --_icon-button-padding:var(--_icon-button-density-small-padding);\n}\n\n.forge-icon-button--small > * {\n font-size: var(--_icon-button-density-small-icon-size);\n}\n\n.forge-icon-button--medium {\n --_icon-button-size:var(--_icon-button-density-medium-size);\n --_icon-button-padding:var(--_icon-button-density-medium-padding);\n}\n\n.forge-icon-button:disabled {\n pointer-events: none;\n opacity: var(--_icon-button-disabled-opacity);\n pointer-events: auto;\n cursor: not-allowed;\n}\n\n.forge-icon-button forge-circular-progress {\n --forge-circular-progress-indicator-color: var(--_icon-button-icon-color);\n --forge-circular-progress-track-color: transparent;\n --forge-circular-progress-size: 1em;\n}\n\n/* prettier-ignore */\n:host {\n display: block;\n box-sizing: border-box;\n}\n\n:host(:state(empty)) {\n display: none;\n}\n\n.assistant-response {\n position: relative;\n}\n\n.text-chunk {\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}\n.text-chunk h1,\n.text-chunk h2,\n.text-chunk h3,\n.text-chunk h4,\n.text-chunk h5,\n.text-chunk h6 {\n margin: 1.75rem 0 var(--forge-spacing-small, 12px);\n}\n.text-chunk strong {\n font-weight: 500;\n}\n.text-chunk a {\n color: var(--forge-theme-primary, #3f51b5);\n}\n.text-chunk hr {\n border: none;\n border-top: 1px solid var(--forge-theme-outline, #e0e0e0);\n}\n.text-chunk 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}\n.text-chunk 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-block: var(--forge-spacing-medium, 16px) 0;\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n margin: 0;\n}\n.text-chunk 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-wrap;\n overflow-wrap: anywhere;\n overflow-x: visible;\n}\n.text-chunk 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}\n.text-chunk 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}\n.text-chunk table tr {\n height: 36px;\n height: 32px;\n}\n.text-chunk table tr:nth-child(even) {\n background-color: var(--forge-theme-surface-dim, #fafafa);\n}\n.text-chunk table tr:last-child td {\n border-bottom: none;\n}\n.text-chunk table th,\n.text-chunk 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}\n.text-chunk 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}\n.text-chunk > p:has(+ ol),\n.text-chunk > p:has(+ ul) {\n margin-block-end: var(--forge-spacing-small, 12px);\n}\n.text-chunk > ul {\n list-style-type: disc;\n padding-inline-start: 1.6875rem;\n}\n.text-chunk > ol {\n padding-inline-start: 1.75rem;\n}\n.text-chunk > ol,\n.text-chunk > ul {\n margin: var(--forge-spacing-xsmall, 8px) 0;\n margin-block-end: var(--forge-spacing-medium, 16px);\n}\n.text-chunk > :first-child {\n margin-block-start: 0;\n}\n.text-chunk > p {\n margin-block-end: var(--forge-spacing-medium, 16px);\n overflow-wrap: anywhere;\n}\n.text-chunk > p:first-child {\n margin-block-start: 0;\n}\n.text-chunk > p:last-child {\n margin-block-end: 0;\n}\n\n.toolbar-container {\n position: absolute;\n bottom: -28px;\n transition: opacity 200ms ease-in-out, transform 200ms ease-in-out;\n display: flex;\n align-items: center;\n gap: var(--forge-spacing-xxsmall, 4px);\n opacity: 0;\n transform: translateY(-8px);\n pointer-events: none;\n z-index: 1;\n left: 0;\n}\n\n.assistant-response[data-complete]:hover .toolbar-container,\n.assistant-response[data-complete] .toolbar-container:focus-within {\n opacity: 1;\n transform: translateY(0);\n pointer-events: auto;\n}\n\n:host(:not(:last-of-type)) .assistant-response[data-complete]::after {\n content: "";\n position: absolute;\n bottom: -40px;\n left: 0;\n right: 0;\n height: 40px;\n}\n\n:host(:last-of-type) .assistant-response[data-complete] .toolbar-container {\n opacity: 1;\n transform: translateY(0);\n pointer-events: auto;\n}\n\n.debug-button {\n color: var(--forge-theme-on-error-container-low, #5f0011);\n --forge-icon-button-focus-indicator-color: var(--forge-theme-error, #b00020);\n --forge-icon-button-tonal-background-color: var(--forge-theme-error-container-low, #f6e0e4);\n}';
1
+ const styles = '/**\n * @license\n * Copyright Tyler Technologies, Inc.\n * License: Apache-2.0\n */\n.forge-icon-button {\n --_icon-button-display:var(--forge-icon-button-display, inline-flex);\n --_icon-button-size:var(--forge-icon-button-size, 48px);\n --_icon-button-gap:var(--forge-icon-button-gap, 0);\n --_icon-button-icon-color:var(--forge-icon-button-icon-color, currentColor);\n --_icon-button-background-color:var(--forge-icon-button-background-color, none);\n --_icon-button-icon-size:var(--forge-icon-button-icon-size, calc(var(--forge-typography-font-size, 1rem) * 1.5));\n --_icon-button-cursor:var(--forge-icon-button-cursor, pointer);\n --_icon-button-padding:var(--forge-icon-button-padding, var(--forge-spacing-xxsmall, 4px));\n --_icon-button-border:var(--forge-icon-button-border, none);\n --_icon-button-shadow:var(--forge-icon-button-shadow, none);\n --_icon-button-transition-duration:var(--forge-icon-button-transition-duration, var(--forge-animation-duration-short3, 150ms));\n --_icon-button-transition-timing:var(--forge-icon-button-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));\n --_icon-button-shape:var(--forge-icon-button-shape, calc(var(--forge-shape-full, 9999px) * var(--forge-shape-factor, 1)));\n --_icon-button-shape-start-start:var(--forge-icon-button-shape-start-start, var(--_icon-button-shape));\n --_icon-button-shape-start-end:var(--forge-icon-button-shape-start-end, var(--_icon-button-shape));\n --_icon-button-shape-end-start:var(--forge-icon-button-shape-end-start, var(--_icon-button-shape));\n --_icon-button-shape-end-end:var(--forge-icon-button-shape-end-end, var(--_icon-button-shape));\n --_icon-button-shape-squared:var(--forge-icon-button-shape-squared, calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1)));\n --_icon-button-outlined-border-width:var(--forge-icon-button-outlined-border-width, 1px);\n --_icon-button-outlined-border-style:var(--forge-icon-button-outlined-border-style, solid);\n --_icon-button-outlined-border-color:var(--forge-icon-button-outlined-border-color, var(--_icon-button-icon-color));\n --_icon-button-tonal-icon-color:var(--forge-icon-button-tonal-icon-color, var(--forge-theme-on-primary-container, #222c62));\n --_icon-button-tonal-background-color:var(--forge-icon-button-tonal-background-color, var(--forge-theme-primary-container, #d1d5ed));\n --_icon-button-filled-icon-color:var(--forge-icon-button-filled-icon-color, var(--forge-theme-on-primary, #ffffff));\n --_icon-button-filled-background-color:var(--forge-icon-button-filled-background-color, var(--forge-theme-primary, #3f51b5));\n --_icon-button-raised-shadow:var(--forge-icon-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 --_icon-button-raised-hover-shadow:var(--forge-icon-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 --_icon-button-raised-active-shadow:var(--forge-icon-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 --_icon-button-raised-disabled-shadow:var(--forge-icon-button-raised-disabled-shadow, none);\n --_icon-button-density-small-size:var(--forge-icon-button-density-small-size, 24px);\n --_icon-button-density-small-padding:var(--forge-icon-button-density-small-padding, var(--forge-spacing-xxxsmall, 2px));\n --_icon-button-density-small-icon-size:var(--forge-icon-button-density-small-icon-size, calc(var(--forge-typography-font-size, 1rem) * 1.125));\n --_icon-button-density-medium-size:var(--forge-icon-button-density-medium-size, 36px);\n --_icon-button-density-medium-padding:var(--forge-icon-button-density-medium-padding, var(--forge-spacing-xxsmall, 4px));\n --_icon-button-density-large-size:var(--forge-icon-button-density-large-size, var(--_icon-button-size));\n --_icon-button-toggle-on-background-color:var(--forge-icon-button-toggle-on-background-color, var(--forge-theme-primary-container, #d1d5ed));\n --_icon-button-toggle-on-icon-color:var(--forge-icon-button-toggle-on-icon-color, var(--forge-theme-primary, #3f51b5));\n --_icon-button-outlined-toggle-on-background-color:var(--forge-icon-button-outlined-toggle-on-background-color, var(--forge-theme-primary-container, #d1d5ed));\n --_icon-button-outlined-toggle-on-icon-color:var(--forge-icon-button-outlined-toggle-on-icon-color, var(--forge-theme-primary, #3f51b5));\n --_icon-button-tonal-toggle-background-color:var(--forge-icon-button-tonal-toggle-background-color, var(--forge-theme-surface-container-low, #ebebeb));\n --_icon-button-tonal-toggle-on-background-color:var(--forge-icon-button-tonal-toggle-on-background-color, var(--forge-theme-primary-container, #d1d5ed));\n --_icon-button-tonal-toggle-on-icon-color:var(--forge-icon-button-tonal-toggle-on-icon-color, var(--forge-theme-primary, #3f51b5));\n --_icon-button-filled-toggle-background-color:var(--forge-icon-button-filled-toggle-background-color, var(--forge-theme-surface-container-low, #ebebeb));\n --_icon-button-filled-toggle-icon-color:var(--forge-icon-button-filled-toggle-icon-color, var(--forge-theme-primary, #3f51b5));\n --_icon-button-filled-toggle-on-background-color:var(--forge-icon-button-filled-toggle-on-background-color, var(--forge-theme-primary, #3f51b5));\n --_icon-button-filled-toggle-on-icon-color:var(--forge-icon-button-filled-toggle-on-icon-color, var(--forge-theme-on-primary, #ffffff));\n --_icon-button-disabled-cursor:var(--forge-icon-button-disabled-cursor, not-allowed);\n --_icon-button-disabled-opacity:var(--forge-icon-button-disabled-opacity, 0.38);\n --_icon-button-popover-icon-padding:var(--forge-icon-button-popover-icon-padding, var(--forge-spacing-xsmall, 8px));\n --_icon-button-focus-indicator-color:var(--forge-icon-button-focus-indicator-color, var(--forge-theme-primary, #3f51b5));\n}\n\n.forge-icon-button {\n display: var(--_icon-button-display);\n position: relative;\n outline: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n position: relative;\n z-index: 0;\n display: var(--_icon-button-display);\n align-items: center;\n justify-content: center;\n gap: var(--_icon-button-gap);\n box-sizing: border-box;\n height: var(--_icon-button-density-large-size);\n min-width: var(--_icon-button-density-large-size);\n border: var(--_icon-button-border);\n border-start-start-radius: var(--_icon-button-shape-start-start);\n border-start-end-radius: var(--_icon-button-shape-start-end);\n border-end-start-radius: var(--_icon-button-shape-end-start);\n border-end-end-radius: var(--_icon-button-shape-end-end);\n padding: var(--_icon-button-padding);\n box-shadow: var(--_icon-button-shadow);\n color: var(--_icon-button-icon-color);\n background: var(--_icon-button-background-color);\n font-size: var(--_icon-button-icon-size);\n cursor: var(--_icon-button-cursor);\n user-select: none;\n transition-property: box-shadow, background;\n transition-duration: var(--_icon-button-transition-duration);\n transition-timing-function: var(--_icon-button-transition-timing);\n}\n\n.forge-icon-button img, .forge-icon-button svg {\n height: var(--_icon-button-icon-size);\n width: var(--_icon-button-icon-size);\n}\n\n.forge-icon-button svg {\n fill: currentColor;\n}\n\n.forge-icon-button: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-icon-button: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-icon-button:not(:disabled):hover::before {\n background-color: var(--_state-layer-hover-color);\n opacity: var(--_state-layer-hover-opacity);\n}\n\n.forge-icon-button: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.forge-icon-button:not(:disabled) {\n --forge-state-layer-color: var(--_icon-button-icon-color);\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-icon-button:not(:disabled) {\n outline: none;\n}\n\n.forge-icon-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-icon-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-icon-button:not(:disabled) {\n --forge-focus-indicator-color: var(--_icon-button-focus-indicator-color);\n --forge-focus-indicator-shape: var(--_icon-button-shape);\n}\n\n.forge-icon-button:not(:disabled):where(.forge-icon-button--text, :not(:where(.forge-icon-button--outlined, .forge-icon-button--tonal, .forge-icon-button--filled, .forge-icon-button--raised))) {\n --forge-focus-indicator-outward-offset: 0px;\n}\n\n.forge-icon-button--outlined {\n border-width: var(--_icon-button-outlined-border-width);\n border-style: var(--_icon-button-outlined-border-style);\n border-color: var(--_icon-button-outlined-border-color);\n}\n\n.forge-icon-button--tonal {\n --_icon-button-icon-color:var(--_icon-button-tonal-icon-color);\n --_icon-button-background-color:var(--_icon-button-tonal-background-color);\n}\n\n.forge-icon-button--filled, .forge-icon-button--raised {\n --_icon-button-icon-color:var(--_icon-button-filled-icon-color);\n --_icon-button-background-color:var(--_icon-button-filled-background-color);\n}\n\n.forge-icon-button--raised {\n --_icon-button-shadow:var(--_icon-button-raised-shadow);\n}\n\n.forge-icon-button--raised:hover {\n --_icon-button-raised-shadow:var(--_icon-button-raised-hover-shadow);\n}\n\n.forge-icon-button--raised:active {\n --_icon-button-raised-shadow:var(--_icon-button-raised-active-shadow);\n}\n\n.forge-icon-button--squared {\n --_icon-button-shape:var(--_icon-button-shape-squared);\n}\n\n.forge-icon-button--small {\n --_icon-button-size:var(--_icon-button-density-small-size);\n --_icon-button-icon-size:var(--_icon-button-density-small-icon-size);\n --_icon-button-padding:var(--_icon-button-density-small-padding);\n}\n\n.forge-icon-button--small > * {\n font-size: var(--_icon-button-density-small-icon-size);\n}\n\n.forge-icon-button--medium {\n --_icon-button-size:var(--_icon-button-density-medium-size);\n --_icon-button-padding:var(--_icon-button-density-medium-padding);\n}\n\n.forge-icon-button:disabled {\n pointer-events: none;\n opacity: var(--_icon-button-disabled-opacity);\n pointer-events: auto;\n cursor: not-allowed;\n}\n\n.forge-icon-button forge-circular-progress {\n --forge-circular-progress-indicator-color: var(--_icon-button-icon-color);\n --forge-circular-progress-track-color: transparent;\n --forge-circular-progress-size: 1em;\n}\n\n/* prettier-ignore */\n@keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n:host {\n display: block;\n box-sizing: border-box;\n}\n\n:host(:state(empty)) {\n display: none;\n}\n\n.assistant-response {\n position: relative;\n}\n\n.text-chunk {\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}\n.text-chunk h1,\n.text-chunk h2,\n.text-chunk h3,\n.text-chunk h4,\n.text-chunk h5,\n.text-chunk h6 {\n margin: 1.75rem 0 var(--forge-spacing-small, 12px);\n}\n.text-chunk strong {\n font-weight: 500;\n}\n.text-chunk a {\n color: var(--forge-theme-primary, #3f51b5);\n}\n.text-chunk hr {\n border: none;\n border-top: 1px solid var(--forge-theme-outline, #e0e0e0);\n}\n.text-chunk 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}\n.text-chunk 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}\n.text-chunk pre:focus-visible {\n outline: 2px solid var(--forge-theme-primary, #3f51b5);\n outline-offset: 2px;\n}\n.text-chunk 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}\n.text-chunk [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}\n.text-chunk [data-scroll-region=table]:focus-visible {\n outline: 2px solid var(--forge-theme-primary, #3f51b5);\n outline-offset: 2px;\n}\n.text-chunk [data-scroll-region=table] table {\n margin-block: 0;\n}\n.text-chunk 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}\n.text-chunk 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}\n.text-chunk table tr {\n height: 36px;\n height: 32px;\n}\n.text-chunk table tr:nth-child(even) {\n background-color: var(--forge-theme-surface-dim, #fafafa);\n}\n.text-chunk table tr:last-child td {\n border-bottom: none;\n}\n.text-chunk table th,\n.text-chunk 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}\n.text-chunk 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}\n.text-chunk > p:has(+ ol),\n.text-chunk > p:has(+ ul) {\n margin-block-end: var(--forge-spacing-small, 12px);\n}\n.text-chunk > ul {\n list-style-type: disc;\n padding-inline-start: 1.6875rem;\n}\n.text-chunk > ol {\n padding-inline-start: 1.75rem;\n}\n.text-chunk > ol,\n.text-chunk > ul {\n margin: var(--forge-spacing-xsmall, 8px) 0;\n margin-block-end: var(--forge-spacing-medium, 16px);\n}\n.text-chunk > :first-child {\n margin-block-start: 0;\n}\n.text-chunk > p {\n margin-block-end: var(--forge-spacing-medium, 16px);\n overflow-wrap: anywhere;\n}\n.text-chunk > p:first-child {\n margin-block-start: 0;\n}\n.text-chunk > p:last-child {\n margin-block-end: 0;\n}\n\n.toolbar-container {\n position: absolute;\n bottom: -28px;\n transition: opacity 200ms ease-in-out, transform 200ms ease-in-out;\n display: flex;\n align-items: center;\n gap: var(--forge-spacing-xxsmall, 4px);\n opacity: 0;\n transform: translateY(-8px);\n pointer-events: none;\n z-index: 1;\n left: 0;\n}\n\n.assistant-response[data-complete]:hover .toolbar-container,\n.assistant-response[data-complete] .toolbar-container:focus-within {\n opacity: 1;\n transform: translateY(0);\n pointer-events: auto;\n}\n\n:host(:not(:last-of-type)) .assistant-response[data-complete]::after {\n content: "";\n position: absolute;\n bottom: -40px;\n left: 0;\n right: 0;\n height: 40px;\n}\n\n:host(:last-of-type) .assistant-response[data-complete] .toolbar-container {\n opacity: 1;\n transform: translateY(0);\n pointer-events: auto;\n}\n\n.debug-button {\n color: var(--forge-theme-on-error-container-low, #5f0011);\n --forge-icon-button-focus-indicator-color: var(--forge-theme-error, #b00020);\n --forge-icon-button-tonal-background-color: var(--forge-theme-error-container-low, #f6e0e4);\n}';
2
2
  export {
3
3
  styles as default
4
4
  };
@@ -47,6 +47,8 @@ export interface AgentInfo {
47
47
  * @property {HeadingLevel} headingLevel - Controls the heading level for the title content (default: 2)
48
48
  * @property {string} titleText - The title text to display in the header (default: 'AI Assistant')
49
49
  *
50
+ * @cssproperty --forge-ai-chat-header-title-color - The color of the title text. Defaults to `currentColor`.
51
+ *
50
52
  * @event forge-ai-chat-header-expand - Fired when the expand button is clicked
51
53
  * @event forge-ai-chat-header-minimize - Fired when the minimize button is clicked
52
54
  * @event forge-ai-chat-header-clear - Fired when the clear chat option is selected
@@ -29,6 +29,7 @@ export declare abstract class AiChatbotBase extends LitElement {
29
29
  disclaimerText: string | null | undefined;
30
30
  debugCommand: FeatureToggle;
31
31
  exportOption: FeatureToggle;
32
+ clearOption: FeatureToggle;
32
33
  agentInfo?: AgentInfo;
33
34
  agents: Agent[];
34
35
  selectedAgentId?: string;
@@ -26,6 +26,7 @@ class AiChatbotBase extends LitElement {
26
26
  this.disclaimerText = "AI can make mistakes. Always verify responses.";
27
27
  this.debugCommand = "on";
28
28
  this.exportOption = "on";
29
+ this.clearOption = "on";
29
30
  this.agents = [];
30
31
  this.contextItems = [];
31
32
  }
@@ -501,6 +502,9 @@ __decorateClass([
501
502
  __decorateClass([
502
503
  property({ attribute: "export-option" })
503
504
  ], AiChatbotBase.prototype, "exportOption");
505
+ __decorateClass([
506
+ property({ attribute: "clear-option" })
507
+ ], AiChatbotBase.prototype, "clearOption");
504
508
  __decorateClass([
505
509
  property({ type: Object, attribute: false })
506
510
  ], AiChatbotBase.prototype, "agentInfo");
@@ -97,10 +97,13 @@ export declare const AiChatbotComponentTagName: keyof HTMLElementTagNameMap;
97
97
  * @property {AgentInfo} agentInfo - Agent metadata for info dialog
98
98
  * @property {Agent[]} agents - List of available agents for selector
99
99
  * @property {Suggestion[]} suggestions - Suggestions to display in the empty state
100
+ * @property {FeatureToggle} clearOption - Controls the clear-conversation header action. `'on'` (default) shows it when messages exist; `'off'` hides it entirely.
101
+ * @property {FeatureToggle} exportOption - Controls the export-conversation header action. `'on'` (default) shows it when messages exist; `'off'` hides it entirely.
100
102
  *
101
103
  * @cssproperty --forge-ai-chatbot-icon-color - The fill color for the AI icon. Defaults to `tertiary`.
102
104
  * @cssproperty --forge-ai-chatbot-suggestion-background - The background color for suggestion buttons. Defaults to `tertiary-container`.
103
105
  * @cssproperty --forge-ai-chatbot-suggestion-foreground - The text color for suggestion buttons. Defaults to `on-tertiary-container`.
106
+ * @cssproperty --forge-ai-chatbot-header-title-color - The color of the header title text. Defaults to `currentColor`.
104
107
  *
105
108
  * @event {CustomEvent<void>} forge-ai-chatbot-connected - Fired when adapter connects
106
109
  * @event {CustomEvent<void>} forge-ai-chatbot-disconnected - Fired when adapter disconnects