@osdk/react-components 0.33.0 → 0.34.0-main-d24cc61b1e7fde7722d8229ed2b6821f5ce1bf8a

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 (145) hide show
  1. package/AGENTS.md +3 -0
  2. package/CHANGELOG.md +19 -0
  3. package/README.md +14 -13
  4. package/build/browser/aip-agent-chat/AipAgentChat.js +113 -0
  5. package/build/browser/aip-agent-chat/AipAgentChat.js.map +1 -0
  6. package/build/browser/aip-agent-chat/AipAgentChat.module.css +231 -0
  7. package/build/browser/aip-agent-chat/AipAgentChat.module.css.js +29 -0
  8. package/build/browser/aip-agent-chat/AipAgentChatApi.js +2 -0
  9. package/build/browser/aip-agent-chat/AipAgentChatApi.js.map +1 -0
  10. package/build/browser/aip-agent-chat/BaseAipAgentChat.js +67 -0
  11. package/build/browser/aip-agent-chat/BaseAipAgentChat.js.map +1 -0
  12. package/build/browser/aip-agent-chat/components/AipAgentChatComposer.js +96 -0
  13. package/build/browser/aip-agent-chat/components/AipAgentChatComposer.js.map +1 -0
  14. package/build/browser/aip-agent-chat/components/AipAgentChatLoader.js +43 -0
  15. package/build/browser/aip-agent-chat/components/AipAgentChatLoader.js.map +1 -0
  16. package/build/browser/aip-agent-chat/components/AipAgentChatMessage.js +60 -0
  17. package/build/browser/aip-agent-chat/components/AipAgentChatMessage.js.map +1 -0
  18. package/build/browser/aip-agent-chat/components/AipAgentChatMessageList.js +60 -0
  19. package/build/browser/aip-agent-chat/components/AipAgentChatMessageList.js.map +1 -0
  20. package/build/browser/aip-agent-chat/components/AipAgentChatModelPicker.js +56 -0
  21. package/build/browser/aip-agent-chat/components/AipAgentChatModelPicker.js.map +1 -0
  22. package/build/browser/aip-agent-chat/hooks/useChatAutoScroll.js +61 -0
  23. package/build/browser/aip-agent-chat/hooks/useChatAutoScroll.js.map +1 -0
  24. package/build/browser/base-components/callout/Callout.js +65 -0
  25. package/build/browser/base-components/callout/Callout.js.map +1 -0
  26. package/build/browser/base-components/callout/Callout.module.css +59 -0
  27. package/build/browser/base-components/callout/Callout.module.css.js +15 -0
  28. package/build/browser/public/experimental/aip-agent-chat.js +22 -0
  29. package/build/browser/public/experimental/aip-agent-chat.js.map +1 -0
  30. package/build/browser/styles.css +402 -0
  31. package/build/browser/tokens/base-tokens/dark.css +10 -0
  32. package/build/browser/tokens/component-tokens/aip-agent-chat.css +56 -0
  33. package/build/browser/tokens/component-tokens/callout.css +40 -0
  34. package/build/browser/tokens.css +2 -0
  35. package/build/browser/util/UserAgent.js +1 -1
  36. package/build/browser/util/UserAgent.js.map +1 -1
  37. package/build/cjs/{chunk-N5NOB4G4.cjs → chunk-4SBWDLNA.cjs} +4 -4
  38. package/build/cjs/{chunk-N5NOB4G4.cjs.map → chunk-4SBWDLNA.cjs.map} +1 -1
  39. package/build/cjs/{chunk-PFGIO77A.cjs → chunk-5JPP5IKU.cjs} +4 -4
  40. package/build/cjs/{chunk-PFGIO77A.cjs.map → chunk-5JPP5IKU.cjs.map} +1 -1
  41. package/build/cjs/{chunk-56CFJTXV.cjs → chunk-73EYJP6Z.cjs} +6 -6
  42. package/build/cjs/{chunk-56CFJTXV.cjs.map → chunk-73EYJP6Z.cjs.map} +1 -1
  43. package/build/cjs/{chunk-XCZD54BD.cjs → chunk-ABKLMCWO.cjs} +4 -4
  44. package/build/cjs/{chunk-XCZD54BD.cjs.map → chunk-ABKLMCWO.cjs.map} +1 -1
  45. package/build/cjs/{chunk-QWFT3G4W.cjs → chunk-EOXGPHI7.cjs} +4 -4
  46. package/build/cjs/{chunk-QWFT3G4W.cjs.map → chunk-EOXGPHI7.cjs.map} +1 -1
  47. package/build/cjs/chunk-HM6F2PSA.cjs +11 -0
  48. package/build/cjs/{chunk-N7TOWLUY.cjs.map → chunk-HM6F2PSA.cjs.map} +1 -1
  49. package/build/cjs/chunk-ILBAVINW.cjs +11 -0
  50. package/build/cjs/{chunk-SUEZQS7M.cjs.map → chunk-ILBAVINW.cjs.map} +1 -1
  51. package/build/cjs/chunk-MSUA3D5M.cjs +11 -0
  52. package/build/cjs/{chunk-AEFCONAY.cjs.map → chunk-MSUA3D5M.cjs.map} +1 -1
  53. package/build/cjs/{chunk-4AGEVOFW.cjs → chunk-MV4WJDCS.cjs} +4 -4
  54. package/build/cjs/{chunk-4AGEVOFW.cjs.map → chunk-MV4WJDCS.cjs.map} +1 -1
  55. package/build/cjs/{chunk-LYAAHEAS.cjs → chunk-PSXAPQB3.cjs} +4 -4
  56. package/build/cjs/{chunk-LYAAHEAS.cjs.map → chunk-PSXAPQB3.cjs.map} +1 -1
  57. package/build/cjs/chunk-RCL5R3P4.cjs +11 -0
  58. package/build/cjs/{chunk-D6RQIMMX.cjs.map → chunk-RCL5R3P4.cjs.map} +1 -1
  59. package/build/cjs/{chunk-OTAWBR27.cjs → chunk-S7Z4MCUS.cjs} +4 -4
  60. package/build/cjs/{chunk-OTAWBR27.cjs.map → chunk-S7Z4MCUS.cjs.map} +1 -1
  61. package/build/cjs/{chunk-364UCCB2.cjs → chunk-WVRYCKJY.cjs} +3 -3
  62. package/build/cjs/chunk-WVRYCKJY.cjs.map +1 -0
  63. package/build/cjs/chunk-YNECVUTQ.cjs +11 -0
  64. package/build/cjs/{chunk-3MDT2TJK.cjs.map → chunk-YNECVUTQ.cjs.map} +1 -1
  65. package/build/cjs/public/experimental/action-form.cjs +4 -4
  66. package/build/cjs/public/experimental/aip-agent-chat.cjs +434 -0
  67. package/build/cjs/public/experimental/aip-agent-chat.cjs.map +1 -0
  68. package/build/cjs/public/experimental/aip-agent-chat.css +304 -0
  69. package/build/cjs/public/experimental/aip-agent-chat.css.map +1 -0
  70. package/build/cjs/public/experimental/aip-agent-chat.d.cts +202 -0
  71. package/build/cjs/public/experimental/cbac-picker.cjs +11 -11
  72. package/build/cjs/public/experimental/document-viewer.cjs +6 -6
  73. package/build/cjs/public/experimental/email-viewer.cjs +3 -3
  74. package/build/cjs/public/experimental/excel-viewer.cjs +3 -3
  75. package/build/cjs/public/experimental/filter-list.cjs +15 -15
  76. package/build/cjs/public/experimental/image-viewer.cjs +3 -3
  77. package/build/cjs/public/experimental/markdown-renderer.cjs +3 -3
  78. package/build/cjs/public/experimental/object-table.cjs +8 -8
  79. package/build/cjs/public/experimental/pdf-viewer.cjs +7 -7
  80. package/build/cjs/public/experimental/tiff-renderer.cjs +3 -3
  81. package/build/cjs/public/experimental/video-viewer.cjs +3 -3
  82. package/build/cjs/public/experimental/xml-viewer.cjs +3 -3
  83. package/build/cjs/public/experimental.cjs +74 -74
  84. package/build/esm/aip-agent-chat/AipAgentChat.js +113 -0
  85. package/build/esm/aip-agent-chat/AipAgentChat.js.map +1 -0
  86. package/build/esm/aip-agent-chat/AipAgentChat.module.css +231 -0
  87. package/build/esm/aip-agent-chat/AipAgentChatApi.js +2 -0
  88. package/build/esm/aip-agent-chat/AipAgentChatApi.js.map +1 -0
  89. package/build/esm/aip-agent-chat/BaseAipAgentChat.js +67 -0
  90. package/build/esm/aip-agent-chat/BaseAipAgentChat.js.map +1 -0
  91. package/build/esm/aip-agent-chat/components/AipAgentChatComposer.js +96 -0
  92. package/build/esm/aip-agent-chat/components/AipAgentChatComposer.js.map +1 -0
  93. package/build/esm/aip-agent-chat/components/AipAgentChatLoader.js +43 -0
  94. package/build/esm/aip-agent-chat/components/AipAgentChatLoader.js.map +1 -0
  95. package/build/esm/aip-agent-chat/components/AipAgentChatMessage.js +60 -0
  96. package/build/esm/aip-agent-chat/components/AipAgentChatMessage.js.map +1 -0
  97. package/build/esm/aip-agent-chat/components/AipAgentChatMessageList.js +60 -0
  98. package/build/esm/aip-agent-chat/components/AipAgentChatMessageList.js.map +1 -0
  99. package/build/esm/aip-agent-chat/components/AipAgentChatModelPicker.js +56 -0
  100. package/build/esm/aip-agent-chat/components/AipAgentChatModelPicker.js.map +1 -0
  101. package/build/esm/aip-agent-chat/hooks/useChatAutoScroll.js +61 -0
  102. package/build/esm/aip-agent-chat/hooks/useChatAutoScroll.js.map +1 -0
  103. package/build/esm/base-components/callout/Callout.js +65 -0
  104. package/build/esm/base-components/callout/Callout.js.map +1 -0
  105. package/build/esm/base-components/callout/Callout.module.css +59 -0
  106. package/build/esm/public/experimental/aip-agent-chat.js +22 -0
  107. package/build/esm/public/experimental/aip-agent-chat.js.map +1 -0
  108. package/build/esm/tokens/base-tokens/dark.css +10 -0
  109. package/build/esm/tokens/component-tokens/aip-agent-chat.css +56 -0
  110. package/build/esm/tokens/component-tokens/callout.css +40 -0
  111. package/build/esm/tokens.css +2 -0
  112. package/build/esm/util/UserAgent.js +1 -1
  113. package/build/esm/util/UserAgent.js.map +1 -1
  114. package/build/types/aip-agent-chat/AipAgentChat.d.ts +10 -0
  115. package/build/types/aip-agent-chat/AipAgentChat.d.ts.map +1 -0
  116. package/build/types/aip-agent-chat/AipAgentChatApi.d.ts +135 -0
  117. package/build/types/aip-agent-chat/AipAgentChatApi.d.ts.map +1 -0
  118. package/build/types/aip-agent-chat/BaseAipAgentChat.d.ts +55 -0
  119. package/build/types/aip-agent-chat/BaseAipAgentChat.d.ts.map +1 -0
  120. package/build/types/aip-agent-chat/components/AipAgentChatComposer.d.ts +19 -0
  121. package/build/types/aip-agent-chat/components/AipAgentChatComposer.d.ts.map +1 -0
  122. package/build/types/aip-agent-chat/components/AipAgentChatLoader.d.ts +9 -0
  123. package/build/types/aip-agent-chat/components/AipAgentChatLoader.d.ts.map +1 -0
  124. package/build/types/aip-agent-chat/components/AipAgentChatMessage.d.ts +12 -0
  125. package/build/types/aip-agent-chat/components/AipAgentChatMessage.d.ts.map +1 -0
  126. package/build/types/aip-agent-chat/components/AipAgentChatMessageList.d.ts +11 -0
  127. package/build/types/aip-agent-chat/components/AipAgentChatMessageList.d.ts.map +1 -0
  128. package/build/types/aip-agent-chat/components/AipAgentChatModelPicker.d.ts +16 -0
  129. package/build/types/aip-agent-chat/components/AipAgentChatModelPicker.d.ts.map +1 -0
  130. package/build/types/aip-agent-chat/hooks/useChatAutoScroll.d.ts +11 -0
  131. package/build/types/aip-agent-chat/hooks/useChatAutoScroll.d.ts.map +1 -0
  132. package/build/types/base-components/callout/Callout.d.ts +33 -0
  133. package/build/types/base-components/callout/Callout.d.ts.map +1 -0
  134. package/build/types/public/experimental/aip-agent-chat.d.ts +7 -0
  135. package/build/types/public/experimental/aip-agent-chat.d.ts.map +1 -0
  136. package/docs/AipAgentChat.md +207 -0
  137. package/docs/CSSVariables.md +52 -0
  138. package/docs/Welcome.md +1 -0
  139. package/package.json +24 -8
  140. package/build/cjs/chunk-364UCCB2.cjs.map +0 -1
  141. package/build/cjs/chunk-3MDT2TJK.cjs +0 -11
  142. package/build/cjs/chunk-AEFCONAY.cjs +0 -11
  143. package/build/cjs/chunk-D6RQIMMX.cjs +0 -11
  144. package/build/cjs/chunk-N7TOWLUY.cjs +0 -11
  145. package/build/cjs/chunk-SUEZQS7M.cjs +0 -11
@@ -1,22 +1,23 @@
1
1
  'use strict';
2
2
 
3
- var chunkN7TOWLUY_cjs = require('../chunk-N7TOWLUY.cjs');
4
- var chunkXCZD54BD_cjs = require('../chunk-XCZD54BD.cjs');
5
- var chunk3MDT2TJK_cjs = require('../chunk-3MDT2TJK.cjs');
6
- var chunkN5NOB4G4_cjs = require('../chunk-N5NOB4G4.cjs');
7
- var chunkLYAAHEAS_cjs = require('../chunk-LYAAHEAS.cjs');
3
+ var chunkMSUA3D5M_cjs = require('../chunk-MSUA3D5M.cjs');
4
+ var chunkHM6F2PSA_cjs = require('../chunk-HM6F2PSA.cjs');
5
+ var chunkILBAVINW_cjs = require('../chunk-ILBAVINW.cjs');
6
+ var chunkABKLMCWO_cjs = require('../chunk-ABKLMCWO.cjs');
7
+ var chunkYNECVUTQ_cjs = require('../chunk-YNECVUTQ.cjs');
8
+ var chunk4SBWDLNA_cjs = require('../chunk-4SBWDLNA.cjs');
9
+ var chunkPSXAPQB3_cjs = require('../chunk-PSXAPQB3.cjs');
8
10
  require('../chunk-POHAXPLQ.cjs');
9
- var chunk4AGEVOFW_cjs = require('../chunk-4AGEVOFW.cjs');
11
+ var chunkMV4WJDCS_cjs = require('../chunk-MV4WJDCS.cjs');
10
12
  var chunk2YA74OKB_cjs = require('../chunk-2YA74OKB.cjs');
11
- var chunkOTAWBR27_cjs = require('../chunk-OTAWBR27.cjs');
12
- var chunkAEFCONAY_cjs = require('../chunk-AEFCONAY.cjs');
13
- var chunkPFGIO77A_cjs = require('../chunk-PFGIO77A.cjs');
13
+ var chunkS7Z4MCUS_cjs = require('../chunk-S7Z4MCUS.cjs');
14
+ var chunk5JPP5IKU_cjs = require('../chunk-5JPP5IKU.cjs');
14
15
  require('../chunk-JKNARBQW.cjs');
15
16
  require('../chunk-PUQBJVFU.cjs');
16
17
  require('../chunk-CASYBF4M.cjs');
17
18
  require('../chunk-XWT6S3FL.cjs');
18
19
  require('../chunk-XK4H7EHE.cjs');
19
- var chunkQWFT3G4W_cjs = require('../chunk-QWFT3G4W.cjs');
20
+ var chunkEOXGPHI7_cjs = require('../chunk-EOXGPHI7.cjs');
20
21
  var chunkZMAWPOG5_cjs = require('../chunk-ZMAWPOG5.cjs');
21
22
  require('../chunk-VFRZREZV.cjs');
22
23
  require('../chunk-C6IPNPMZ.cjs');
@@ -24,131 +25,138 @@ require('../chunk-DWNKXV5E.cjs');
24
25
  require('../chunk-HNBSGCSZ.cjs');
25
26
  require('../chunk-7LXS66DW.cjs');
26
27
  require('../chunk-MD4KDE44.cjs');
27
- var chunk56CFJTXV_cjs = require('../chunk-56CFJTXV.cjs');
28
+ var chunk73EYJP6Z_cjs = require('../chunk-73EYJP6Z.cjs');
29
+ var chunkKHMOMROL_cjs = require('../chunk-KHMOMROL.cjs');
28
30
  var chunkOUJQJQ7N_cjs = require('../chunk-OUJQJQ7N.cjs');
31
+ var chunk3SJODG6U_cjs = require('../chunk-3SJODG6U.cjs');
29
32
  var chunkVOROB7KJ_cjs = require('../chunk-VOROB7KJ.cjs');
30
33
  var chunkIYJOHKJE_cjs = require('../chunk-IYJOHKJE.cjs');
31
34
  var chunkDA22W6ZO_cjs = require('../chunk-DA22W6ZO.cjs');
32
35
  var chunkIISDOJPR_cjs = require('../chunk-IISDOJPR.cjs');
33
- var chunkKHMOMROL_cjs = require('../chunk-KHMOMROL.cjs');
34
36
  require('../chunk-UCTQICPR.cjs');
35
- var chunkD6RQIMMX_cjs = require('../chunk-D6RQIMMX.cjs');
37
+ var chunkRCL5R3P4_cjs = require('../chunk-RCL5R3P4.cjs');
36
38
  var chunkPKJFOG2Z_cjs = require('../chunk-PKJFOG2Z.cjs');
37
- var chunkSUEZQS7M_cjs = require('../chunk-SUEZQS7M.cjs');
38
- var chunk3SJODG6U_cjs = require('../chunk-3SJODG6U.cjs');
39
39
  require('../chunk-MVQKV5BJ.cjs');
40
- require('../chunk-364UCCB2.cjs');
40
+ require('../chunk-WVRYCKJY.cjs');
41
41
  require('../chunk-PZPCRXSV.cjs');
42
42
 
43
43
 
44
44
 
45
+ Object.defineProperty(exports, "VideoViewer", {
46
+ enumerable: true,
47
+ get: function () { return chunkMSUA3D5M_cjs.VideoViewer; }
48
+ });
45
49
  Object.defineProperty(exports, "XmlViewer", {
46
50
  enumerable: true,
47
- get: function () { return chunkN7TOWLUY_cjs.XmlViewer; }
51
+ get: function () { return chunkHM6F2PSA_cjs.XmlViewer; }
52
+ });
53
+ Object.defineProperty(exports, "ExcelViewer", {
54
+ enumerable: true,
55
+ get: function () { return chunkILBAVINW_cjs.ExcelViewer; }
48
56
  });
49
57
  Object.defineProperty(exports, "BaseFilterList", {
50
58
  enumerable: true,
51
- get: function () { return chunkXCZD54BD_cjs.BaseFilterList; }
59
+ get: function () { return chunkABKLMCWO_cjs.BaseFilterList; }
52
60
  });
53
61
  Object.defineProperty(exports, "FilterInput", {
54
62
  enumerable: true,
55
- get: function () { return chunkXCZD54BD_cjs.FilterInput; }
63
+ get: function () { return chunkABKLMCWO_cjs.FilterInput; }
56
64
  });
57
65
  Object.defineProperty(exports, "FilterList", {
58
66
  enumerable: true,
59
- get: function () { return chunkXCZD54BD_cjs.FilterList; }
67
+ get: function () { return chunkABKLMCWO_cjs.FilterList; }
60
68
  });
61
69
  Object.defineProperty(exports, "FilterPopover", {
62
70
  enumerable: true,
63
- get: function () { return chunkXCZD54BD_cjs.FilterPopover; }
71
+ get: function () { return chunkABKLMCWO_cjs.FilterPopover; }
64
72
  });
65
73
  Object.defineProperty(exports, "NO_VALUE", {
66
74
  enumerable: true,
67
- get: function () { return chunkXCZD54BD_cjs.NO_VALUE; }
75
+ get: function () { return chunkABKLMCWO_cjs.NO_VALUE; }
68
76
  });
69
77
  Object.defineProperty(exports, "deserializeFilterStates", {
70
78
  enumerable: true,
71
- get: function () { return chunkXCZD54BD_cjs.deserializeFilterStates; }
79
+ get: function () { return chunkABKLMCWO_cjs.deserializeFilterStates; }
72
80
  });
73
81
  Object.defineProperty(exports, "filterHasActiveState", {
74
82
  enumerable: true,
75
- get: function () { return chunkXCZD54BD_cjs.filterHasActiveState; }
83
+ get: function () { return chunkABKLMCWO_cjs.filterHasActiveState; }
76
84
  });
77
85
  Object.defineProperty(exports, "getFilterKey", {
78
86
  enumerable: true,
79
- get: function () { return chunkXCZD54BD_cjs.getFilterKey; }
87
+ get: function () { return chunkABKLMCWO_cjs.getFilterKey; }
80
88
  });
81
89
  Object.defineProperty(exports, "getFilterLabel", {
82
90
  enumerable: true,
83
- get: function () { return chunkXCZD54BD_cjs.getFilterLabel; }
91
+ get: function () { return chunkABKLMCWO_cjs.getFilterLabel; }
84
92
  });
85
93
  Object.defineProperty(exports, "narrowObjectSet", {
86
94
  enumerable: true,
87
- get: function () { return chunkXCZD54BD_cjs.narrowObjectSet; }
95
+ get: function () { return chunkABKLMCWO_cjs.narrowObjectSet; }
88
96
  });
89
97
  Object.defineProperty(exports, "serializeFilterStates", {
90
98
  enumerable: true,
91
- get: function () { return chunkXCZD54BD_cjs.serializeFilterStates; }
99
+ get: function () { return chunkABKLMCWO_cjs.serializeFilterStates; }
92
100
  });
93
101
  Object.defineProperty(exports, "summarizeFilterValue", {
94
102
  enumerable: true,
95
- get: function () { return chunkXCZD54BD_cjs.summarizeFilterValue; }
103
+ get: function () { return chunkABKLMCWO_cjs.summarizeFilterValue; }
96
104
  });
97
105
  Object.defineProperty(exports, "useFilterListState", {
98
106
  enumerable: true,
99
- get: function () { return chunkXCZD54BD_cjs.useFilterListState; }
107
+ get: function () { return chunkABKLMCWO_cjs.useFilterListState; }
100
108
  });
101
109
  Object.defineProperty(exports, "ImageViewer", {
102
110
  enumerable: true,
103
- get: function () { return chunk3MDT2TJK_cjs.ImageViewer; }
111
+ get: function () { return chunkYNECVUTQ_cjs.ImageViewer; }
104
112
  });
105
113
  Object.defineProperty(exports, "MarkdownViewerMedia", {
106
114
  enumerable: true,
107
- get: function () { return chunkN5NOB4G4_cjs.MarkdownViewerMedia; }
115
+ get: function () { return chunk4SBWDLNA_cjs.MarkdownViewerMedia; }
108
116
  });
109
117
  Object.defineProperty(exports, "BaseTable", {
110
118
  enumerable: true,
111
- get: function () { return chunkLYAAHEAS_cjs.BaseTable; }
119
+ get: function () { return chunkPSXAPQB3_cjs.BaseTable; }
112
120
  });
113
121
  Object.defineProperty(exports, "ColumnConfigDialog", {
114
122
  enumerable: true,
115
- get: function () { return chunkLYAAHEAS_cjs.ColumnConfigDialog; }
123
+ get: function () { return chunkPSXAPQB3_cjs.ColumnConfigDialog; }
116
124
  });
117
125
  Object.defineProperty(exports, "LoadingCell", {
118
126
  enumerable: true,
119
- get: function () { return chunkLYAAHEAS_cjs.LoadingCell; }
127
+ get: function () { return chunkPSXAPQB3_cjs.LoadingCell; }
120
128
  });
121
129
  Object.defineProperty(exports, "LoadingCellContent", {
122
130
  enumerable: true,
123
- get: function () { return chunkLYAAHEAS_cjs.LoadingCellContent; }
131
+ get: function () { return chunkPSXAPQB3_cjs.LoadingCellContent; }
124
132
  });
125
133
  Object.defineProperty(exports, "MultiColumnSortDialog", {
126
134
  enumerable: true,
127
- get: function () { return chunkLYAAHEAS_cjs.MultiColumnSortDialog; }
135
+ get: function () { return chunkPSXAPQB3_cjs.MultiColumnSortDialog; }
128
136
  });
129
137
  Object.defineProperty(exports, "ObjectTable", {
130
138
  enumerable: true,
131
- get: function () { return chunkLYAAHEAS_cjs.ObjectTable; }
139
+ get: function () { return chunkPSXAPQB3_cjs.ObjectTable; }
132
140
  });
133
141
  Object.defineProperty(exports, "PdfViewer", {
134
142
  enumerable: true,
135
- get: function () { return chunk4AGEVOFW_cjs.PdfViewer; }
143
+ get: function () { return chunkMV4WJDCS_cjs.PdfViewer; }
136
144
  });
137
145
  Object.defineProperty(exports, "PdfViewerContent", {
138
146
  enumerable: true,
139
- get: function () { return chunk4AGEVOFW_cjs.PdfViewerContent; }
147
+ get: function () { return chunkMV4WJDCS_cjs.PdfViewerContent; }
140
148
  });
141
149
  Object.defineProperty(exports, "PdfViewerProvider", {
142
150
  enumerable: true,
143
- get: function () { return chunk4AGEVOFW_cjs.PdfViewerProvider; }
151
+ get: function () { return chunkMV4WJDCS_cjs.PdfViewerProvider; }
144
152
  });
145
153
  Object.defineProperty(exports, "usePdfViewerContext", {
146
154
  enumerable: true,
147
- get: function () { return chunk4AGEVOFW_cjs.usePdfViewerContext; }
155
+ get: function () { return chunkMV4WJDCS_cjs.usePdfViewerContext; }
148
156
  });
149
157
  Object.defineProperty(exports, "usePdfViewerInstance", {
150
158
  enumerable: true,
151
- get: function () { return chunk4AGEVOFW_cjs.usePdfViewerInstance; }
159
+ get: function () { return chunkMV4WJDCS_cjs.usePdfViewerInstance; }
152
160
  });
153
161
  Object.defineProperty(exports, "OsdkThemeProvider", {
154
162
  enumerable: true,
@@ -160,55 +168,51 @@ Object.defineProperty(exports, "useOsdkTheme", {
160
168
  });
161
169
  Object.defineProperty(exports, "TiffViewerMedia", {
162
170
  enumerable: true,
163
- get: function () { return chunkOTAWBR27_cjs.TiffViewerMedia; }
164
- });
165
- Object.defineProperty(exports, "VideoViewer", {
166
- enumerable: true,
167
- get: function () { return chunkAEFCONAY_cjs.VideoViewer; }
171
+ get: function () { return chunkS7Z4MCUS_cjs.TiffViewerMedia; }
168
172
  });
169
173
  Object.defineProperty(exports, "ActionForm", {
170
174
  enumerable: true,
171
- get: function () { return chunkPFGIO77A_cjs.ActionForm; }
175
+ get: function () { return chunk5JPP5IKU_cjs.ActionForm; }
172
176
  });
173
177
  Object.defineProperty(exports, "BaseForm", {
174
178
  enumerable: true,
175
- get: function () { return chunkPFGIO77A_cjs.BaseForm; }
179
+ get: function () { return chunk5JPP5IKU_cjs.BaseForm; }
176
180
  });
177
181
  Object.defineProperty(exports, "BaseCbacPicker", {
178
182
  enumerable: true,
179
- get: function () { return chunkQWFT3G4W_cjs.BaseCbacPicker; }
183
+ get: function () { return chunkEOXGPHI7_cjs.BaseCbacPicker; }
180
184
  });
181
185
  Object.defineProperty(exports, "BaseCbacPickerDialog", {
182
186
  enumerable: true,
183
- get: function () { return chunkQWFT3G4W_cjs.BaseCbacPickerDialog; }
187
+ get: function () { return chunkEOXGPHI7_cjs.BaseCbacPickerDialog; }
184
188
  });
185
189
  Object.defineProperty(exports, "CbacBannerPopover", {
186
190
  enumerable: true,
187
- get: function () { return chunkQWFT3G4W_cjs.CbacBannerPopover; }
191
+ get: function () { return chunkEOXGPHI7_cjs.CbacBannerPopover; }
188
192
  });
189
193
  Object.defineProperty(exports, "CbacPicker", {
190
194
  enumerable: true,
191
- get: function () { return chunkQWFT3G4W_cjs.CbacPicker; }
195
+ get: function () { return chunkEOXGPHI7_cjs.CbacPicker; }
192
196
  });
193
197
  Object.defineProperty(exports, "CbacPickerDialog", {
194
198
  enumerable: true,
195
- get: function () { return chunkQWFT3G4W_cjs.CbacPickerDialog; }
199
+ get: function () { return chunkEOXGPHI7_cjs.CbacPickerDialog; }
196
200
  });
197
201
  Object.defineProperty(exports, "MaxClassificationField", {
198
202
  enumerable: true,
199
- get: function () { return chunkQWFT3G4W_cjs.MaxClassificationField; }
203
+ get: function () { return chunkEOXGPHI7_cjs.MaxClassificationField; }
200
204
  });
201
205
  Object.defineProperty(exports, "computeMarkingStates", {
202
206
  enumerable: true,
203
- get: function () { return chunkQWFT3G4W_cjs.computeMarkingStates; }
207
+ get: function () { return chunkEOXGPHI7_cjs.computeMarkingStates; }
204
208
  });
205
209
  Object.defineProperty(exports, "groupMarkingsByCategory", {
206
210
  enumerable: true,
207
- get: function () { return chunkQWFT3G4W_cjs.groupMarkingsByCategory; }
211
+ get: function () { return chunkEOXGPHI7_cjs.groupMarkingsByCategory; }
208
212
  });
209
213
  Object.defineProperty(exports, "toggleMarking", {
210
214
  enumerable: true,
211
- get: function () { return chunkQWFT3G4W_cjs.toggleMarking; }
215
+ get: function () { return chunkEOXGPHI7_cjs.toggleMarking; }
212
216
  });
213
217
  Object.defineProperty(exports, "BaseCbacBanner", {
214
218
  enumerable: true,
@@ -220,16 +224,24 @@ Object.defineProperty(exports, "CbacBanner", {
220
224
  });
221
225
  Object.defineProperty(exports, "DocumentViewer", {
222
226
  enumerable: true,
223
- get: function () { return chunk56CFJTXV_cjs.DocumentViewer; }
227
+ get: function () { return chunk73EYJP6Z_cjs.DocumentViewer; }
224
228
  });
225
229
  Object.defineProperty(exports, "ViewerType", {
226
230
  enumerable: true,
227
- get: function () { return chunk56CFJTXV_cjs.ViewerType; }
231
+ get: function () { return chunk73EYJP6Z_cjs.ViewerType; }
232
+ });
233
+ Object.defineProperty(exports, "BaseVideoViewer", {
234
+ enumerable: true,
235
+ get: function () { return chunkKHMOMROL_cjs.BaseVideoViewer; }
228
236
  });
229
237
  Object.defineProperty(exports, "BaseXmlViewer", {
230
238
  enumerable: true,
231
239
  get: function () { return chunkOUJQJQ7N_cjs.BaseXmlViewer; }
232
240
  });
241
+ Object.defineProperty(exports, "BaseExcelViewer", {
242
+ enumerable: true,
243
+ get: function () { return chunk3SJODG6U_cjs.BaseExcelViewer; }
244
+ });
233
245
  Object.defineProperty(exports, "BaseImageViewer", {
234
246
  enumerable: true,
235
247
  get: function () { return chunkVOROB7KJ_cjs.BaseImageViewer; }
@@ -310,25 +322,13 @@ Object.defineProperty(exports, "TiffRenderer", {
310
322
  enumerable: true,
311
323
  get: function () { return chunkIISDOJPR_cjs.TiffRenderer; }
312
324
  });
313
- Object.defineProperty(exports, "BaseVideoViewer", {
314
- enumerable: true,
315
- get: function () { return chunkKHMOMROL_cjs.BaseVideoViewer; }
316
- });
317
325
  Object.defineProperty(exports, "EmailViewer", {
318
326
  enumerable: true,
319
- get: function () { return chunkD6RQIMMX_cjs.EmailViewer; }
327
+ get: function () { return chunkRCL5R3P4_cjs.EmailViewer; }
320
328
  });
321
329
  Object.defineProperty(exports, "BaseEmailViewer", {
322
330
  enumerable: true,
323
331
  get: function () { return chunkPKJFOG2Z_cjs.BaseEmailViewer; }
324
332
  });
325
- Object.defineProperty(exports, "ExcelViewer", {
326
- enumerable: true,
327
- get: function () { return chunkSUEZQS7M_cjs.ExcelViewer; }
328
- });
329
- Object.defineProperty(exports, "BaseExcelViewer", {
330
- enumerable: true,
331
- get: function () { return chunk3SJODG6U_cjs.BaseExcelViewer; }
332
- });
333
333
  //# sourceMappingURL=experimental.cjs.map
334
334
  //# sourceMappingURL=experimental.cjs.map
@@ -0,0 +1,113 @@
1
+ /*
2
+ * Copyright 2026 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { foundryModel } from "@osdk/aip-core";
18
+ import { useChat } from "@osdk/react/experimental/aip";
19
+ import * as React from "react";
20
+ import { BaseAipAgentChat } from "./BaseAipAgentChat.js";
21
+ import { AipAgentChatModelPicker } from "./components/AipAgentChatModelPicker.js";
22
+ const FALLBACK_MODEL_API_NAME = "gpt-4o";
23
+
24
+ /**
25
+ * OSDK-aware chat surface backed by Foundry's Language Model Service.
26
+ * Constructs the LMS-backed model internally and uses `useChat` to
27
+ * manage conversation state, so consumers never need to import `useChat`,
28
+ * `streamText`, or `foundryModel` themselves.
29
+ */
30
+ export function AipAgentChat({
31
+ client,
32
+ model: controlledModel,
33
+ defaultModel,
34
+ availableModels,
35
+ onModelChange,
36
+ system,
37
+ initialMessages,
38
+ className,
39
+ placeholder,
40
+ enableAutoScroll,
41
+ onError,
42
+ onFinish,
43
+ renderEmptyState,
44
+ renderMessage
45
+ }) {
46
+ // Internal state used only in uncontrolled mode. Initialized once
47
+ // from the first available source: `controlledModel` → `defaultModel`
48
+ // → first entry of `availableModels` → `FALLBACK_MODEL_API_NAME`.
49
+ const [internalModel, setInternalModel] = React.useState(() => controlledModel ?? defaultModel ?? availableModels?.[0] ?? FALLBACK_MODEL_API_NAME);
50
+ const isControlled = controlledModel != null;
51
+ const activeModel = isControlled ? controlledModel : internalModel;
52
+ const handleModelChange = React.useCallback(next => {
53
+ if (!isControlled) {
54
+ setInternalModel(next);
55
+ }
56
+ onModelChange?.(next);
57
+ }, [isControlled, onModelChange]);
58
+ const model = React.useMemo(() => foundryModel({
59
+ client,
60
+ model: activeModel
61
+ }), [client, activeModel]);
62
+ const {
63
+ messages,
64
+ status,
65
+ error,
66
+ sendMessage,
67
+ stop,
68
+ clearError
69
+ } = useChat({
70
+ model,
71
+ system,
72
+ messages: initialMessages,
73
+ onError,
74
+ onFinish
75
+ });
76
+
77
+ // Snap the uncontrolled model to the first available option whenever the
78
+ // current selection isn't in `availableModels` (e.g. on first async resolve).
79
+ React.useEffect(() => {
80
+ if (isControlled || availableModels == null || availableModels.length === 0) {
81
+ return;
82
+ }
83
+ if (!availableModels.includes(internalModel)) {
84
+ setInternalModel(availableModels[0]);
85
+ }
86
+ }, [isControlled, availableModels, internalModel]);
87
+ const handleSendMessage = React.useCallback(text => {
88
+ return sendMessage({
89
+ text
90
+ });
91
+ }, [sendMessage]);
92
+ const composerFooter = availableModels != null && availableModels.length > 0 ? /*#__PURE__*/React.createElement(AipAgentChatModelPicker, {
93
+ activeModel: activeModel,
94
+ models: availableModels,
95
+ onModelChange: handleModelChange,
96
+ disabled: status === "submitted" || status === "streaming"
97
+ }) : undefined;
98
+ return /*#__PURE__*/React.createElement(BaseAipAgentChat, {
99
+ className: className,
100
+ composerFooter: composerFooter,
101
+ enableAutoScroll: enableAutoScroll,
102
+ messages: messages,
103
+ status: status,
104
+ error: error,
105
+ onClearError: clearError,
106
+ onSendMessage: handleSendMessage,
107
+ onStop: stop,
108
+ placeholder: placeholder,
109
+ renderEmptyState: renderEmptyState,
110
+ renderMessage: renderMessage
111
+ });
112
+ }
113
+ //# sourceMappingURL=AipAgentChat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AipAgentChat.js","names":["foundryModel","useChat","React","BaseAipAgentChat","AipAgentChatModelPicker","FALLBACK_MODEL_API_NAME","AipAgentChat","client","model","controlledModel","defaultModel","availableModels","onModelChange","system","initialMessages","className","placeholder","enableAutoScroll","onError","onFinish","renderEmptyState","renderMessage","internalModel","setInternalModel","useState","isControlled","activeModel","handleModelChange","useCallback","next","useMemo","messages","status","error","sendMessage","stop","clearError","useEffect","length","includes","handleSendMessage","text","composerFooter","createElement","models","disabled","undefined","onClearError","onSendMessage","onStop"],"sources":["AipAgentChat.tsx"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { foundryModel } from \"@osdk/aip-core\";\nimport { useChat } from \"@osdk/react/experimental/aip\";\nimport * as React from \"react\";\nimport type { AipAgentChatProps } from \"./AipAgentChatApi.js\";\nimport { BaseAipAgentChat } from \"./BaseAipAgentChat.js\";\nimport { AipAgentChatModelPicker } from \"./components/AipAgentChatModelPicker.js\";\n\nexport type { AipAgentChatProps } from \"./AipAgentChatApi.js\";\n\nconst FALLBACK_MODEL_API_NAME = \"gpt-4o\";\n\n/**\n * OSDK-aware chat surface backed by Foundry's Language Model Service.\n * Constructs the LMS-backed model internally and uses `useChat` to\n * manage conversation state, so consumers never need to import `useChat`,\n * `streamText`, or `foundryModel` themselves.\n */\nexport function AipAgentChat({\n client,\n model: controlledModel,\n defaultModel,\n availableModels,\n onModelChange,\n system,\n initialMessages,\n className,\n placeholder,\n enableAutoScroll,\n onError,\n onFinish,\n renderEmptyState,\n renderMessage,\n}: AipAgentChatProps): React.ReactElement {\n // Internal state used only in uncontrolled mode. Initialized once\n // from the first available source: `controlledModel` → `defaultModel`\n // → first entry of `availableModels` → `FALLBACK_MODEL_API_NAME`.\n const [internalModel, setInternalModel] = React.useState<string>(\n () =>\n controlledModel\n ?? defaultModel\n ?? availableModels?.[0]\n ?? FALLBACK_MODEL_API_NAME,\n );\n\n const isControlled = controlledModel != null;\n const activeModel = isControlled ? controlledModel : internalModel;\n\n const handleModelChange = React.useCallback(\n (next: string) => {\n if (!isControlled) {\n setInternalModel(next);\n }\n onModelChange?.(next);\n },\n [isControlled, onModelChange],\n );\n\n const model = React.useMemo(\n () => foundryModel({ client, model: activeModel }),\n [client, activeModel],\n );\n\n const {\n messages,\n status,\n error,\n sendMessage,\n stop,\n clearError,\n } = useChat({\n model,\n system,\n messages: initialMessages,\n onError,\n onFinish,\n });\n\n // Snap the uncontrolled model to the first available option whenever the\n // current selection isn't in `availableModels` (e.g. on first async resolve).\n React.useEffect(() => {\n if (\n isControlled || availableModels == null || availableModels.length === 0\n ) {\n return;\n }\n if (!availableModels.includes(internalModel)) {\n setInternalModel(availableModels[0]);\n }\n }, [isControlled, availableModels, internalModel]);\n\n const handleSendMessage = React.useCallback(\n (text: string) => {\n return sendMessage({ text });\n },\n [sendMessage],\n );\n\n const isInFlight = status === \"submitted\" || status === \"streaming\";\n\n const composerFooter = availableModels != null && availableModels.length > 0\n ? (\n <AipAgentChatModelPicker\n activeModel={activeModel}\n models={availableModels}\n onModelChange={handleModelChange}\n disabled={isInFlight}\n />\n )\n : undefined;\n\n return (\n <BaseAipAgentChat\n className={className}\n composerFooter={composerFooter}\n enableAutoScroll={enableAutoScroll}\n messages={messages}\n status={status}\n error={error}\n onClearError={clearError}\n onSendMessage={handleSendMessage}\n onStop={stop}\n placeholder={placeholder}\n renderEmptyState={renderEmptyState}\n renderMessage={renderMessage}\n />\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,231 @@
1
+ .chat {
2
+ background: var(--osdk-aip-agent-chat-background);
3
+ border: 1px solid var(--osdk-aip-agent-chat-border-color);
4
+ border-radius: var(--osdk-aip-agent-chat-border-radius);
5
+ display: flex;
6
+ flex-direction: column;
7
+ height: 100%;
8
+ min-height: 0;
9
+ overflow: hidden;
10
+ width: 100%;
11
+ }
12
+
13
+ .messageList {
14
+ align-items: center;
15
+ display: flex;
16
+ flex: 1 1 auto;
17
+ flex-direction: column;
18
+ gap: var(--osdk-aip-agent-chat-message-gap);
19
+ min-height: 0;
20
+ overflow-y: auto;
21
+ padding: var(--osdk-aip-agent-chat-padding);
22
+ }
23
+
24
+ .messageList:not(.empty) > * {
25
+ max-width: var(--osdk-aip-agent-chat-content-max-width);
26
+ width: 100%;
27
+ }
28
+
29
+ .empty {
30
+ align-items: center;
31
+ color: var(--osdk-aip-agent-chat-empty-color);
32
+ display: flex;
33
+ flex: 1 1 auto;
34
+ flex-direction: column;
35
+ gap: var(--osdk-aip-agent-chat-message-gap);
36
+ justify-content: center;
37
+ padding: var(--osdk-aip-agent-chat-padding);
38
+ text-align: center;
39
+ }
40
+
41
+ .emptyIcon {
42
+ color: var(--osdk-aip-agent-chat-empty-icon-color);
43
+ font-size: var(--osdk-aip-agent-chat-empty-icon-size);
44
+ }
45
+
46
+ .emptyTitle {
47
+ color: var(--osdk-typography-color-default-rest);
48
+ font-size: var(--osdk-typography-size-body-large);
49
+ font-weight: var(--osdk-typography-weight-bold);
50
+ }
51
+
52
+ .message {
53
+ display: flex;
54
+ flex-direction: column;
55
+ }
56
+
57
+ .userMessage {
58
+ align-items: flex-end;
59
+ }
60
+
61
+ .assistantMessage {
62
+ align-items: flex-start;
63
+ }
64
+
65
+ .systemMessage {
66
+ align-items: center;
67
+ }
68
+
69
+ .bubble {
70
+ border-radius: var(--osdk-aip-agent-chat-bubble-border-radius);
71
+ max-width: var(--osdk-aip-agent-chat-bubble-max-width);
72
+ overflow-wrap: break-word;
73
+ padding: var(--osdk-aip-agent-chat-bubble-padding);
74
+ text-align: left;
75
+ white-space: pre-wrap;
76
+ word-break: break-word;
77
+ }
78
+
79
+ .userBubble {
80
+ background: var(--osdk-aip-agent-chat-user-bubble-background);
81
+ border-radius: var(--osdk-aip-agent-chat-user-bubble-border-radius);
82
+ color: var(--osdk-aip-agent-chat-user-bubble-color);
83
+ }
84
+
85
+ .assistantBubble {
86
+ background: transparent;
87
+ color: var(--osdk-aip-agent-chat-assistant-bubble-color);
88
+ padding: 0;
89
+ }
90
+
91
+ .systemBubble {
92
+ background: var(--osdk-background-tertiary);
93
+ color: var(--osdk-typography-color-muted);
94
+ font-size: var(--osdk-typography-size-body-small);
95
+ font-style: italic;
96
+ }
97
+
98
+ .streamingPlaceholder {
99
+ color: var(--osdk-typography-color-muted);
100
+ }
101
+
102
+ .composer {
103
+ align-items: center;
104
+ background: var(--osdk-aip-agent-chat-composer-background);
105
+
106
+ display: flex;
107
+ flex: 0 0 auto;
108
+ flex-direction: column;
109
+ gap: var(--osdk-aip-agent-chat-section-gap);
110
+ padding: var(--osdk-aip-agent-chat-padding);
111
+ }
112
+
113
+ .composer > * {
114
+ max-width: var(--osdk-aip-agent-chat-content-max-width);
115
+ width: 100%;
116
+ }
117
+
118
+ .inputWrapper {
119
+ background: var(--osdk-background-primary);
120
+ border: 1px solid var(--osdk-surface-border-color-default);
121
+ border-radius: var(--osdk-aip-agent-chat-composer-border-radius);
122
+ display: flex;
123
+ flex-direction: column;
124
+ overflow: hidden;
125
+ }
126
+
127
+ .inputWrapper:focus-within {
128
+ border-color: var(--osdk-emphasis-focus-color);
129
+ }
130
+
131
+ .textarea {
132
+ background: transparent;
133
+ border: none;
134
+ color: var(--osdk-typography-color-default-rest);
135
+ font-family: inherit;
136
+ font-size: var(--osdk-typography-size-body-medium);
137
+ line-height: var(--osdk-typography-line-height-default);
138
+ max-height: var(--osdk-aip-agent-chat-composer-textarea-max-height);
139
+ min-height: var(--osdk-aip-agent-chat-composer-textarea-min-height);
140
+ outline: none;
141
+ padding: var(--osdk-aip-agent-chat-section-gap);
142
+ resize: none;
143
+ width: 100%;
144
+ }
145
+
146
+ .inputActions {
147
+ align-items: center;
148
+ display: flex;
149
+ justify-content: flex-end;
150
+ padding: 0 var(--osdk-aip-agent-chat-section-gap)
151
+ var(--osdk-aip-agent-chat-section-gap);
152
+ }
153
+
154
+ .composerFooterLeft {
155
+ align-items: center;
156
+ display: flex;
157
+ flex: 1 1 auto;
158
+ gap: var(--osdk-aip-agent-chat-section-gap);
159
+ min-width: 0;
160
+ }
161
+
162
+ .modelPicker {
163
+ background: var(--osdk-background-primary);
164
+ border: 1px solid var(--osdk-surface-border-color-default);
165
+ border-radius: var(--osdk-aip-agent-chat-border-radius);
166
+ color: var(--osdk-typography-color-default-rest);
167
+ font-family: inherit;
168
+ font-size: var(--osdk-typography-size-body-small);
169
+ outline: none;
170
+ padding: calc(var(--osdk-surface-spacing) * 1)
171
+ calc(var(--osdk-surface-spacing) * 2);
172
+ }
173
+
174
+ .modelPicker:focus {
175
+ border-color: var(--osdk-emphasis-focus-color);
176
+ }
177
+
178
+ .modelPicker:disabled {
179
+ cursor: not-allowed;
180
+ opacity: 0.6;
181
+ }
182
+
183
+ .modelPickerLabel {
184
+ color: var(--osdk-typography-color-muted);
185
+ font-size: var(--osdk-typography-size-body-small);
186
+ }
187
+
188
+ .loader {
189
+ align-items: center;
190
+ color: var(--osdk-aip-agent-chat-loader-color);
191
+ display: inline-flex;
192
+ gap: var(--osdk-aip-agent-chat-loader-dot-gap);
193
+ }
194
+
195
+ .loaderDot {
196
+ animation-duration: 1.4s;
197
+ animation-iteration-count: infinite;
198
+ animation-name: aipAgentChatLoaderBounce;
199
+ animation-timing-function: ease-in-out;
200
+ background: currentColor;
201
+ border-radius: 50%;
202
+ display: inline-block;
203
+ height: var(--osdk-aip-agent-chat-loader-dot-size);
204
+ width: var(--osdk-aip-agent-chat-loader-dot-size);
205
+ }
206
+
207
+ .loaderDot:nth-child(1) {
208
+ animation-delay: 0s;
209
+ }
210
+
211
+ .loaderDot:nth-child(2) {
212
+ animation-delay: 0.2s;
213
+ }
214
+
215
+ .loaderDot:nth-child(3) {
216
+ animation-delay: 0.4s;
217
+ }
218
+
219
+ @keyframes aipAgentChatLoaderBounce {
220
+ 0%,
221
+ 60%,
222
+ 100% {
223
+ opacity: 0.3;
224
+ transform: translateY(0);
225
+ }
226
+
227
+ 30% {
228
+ opacity: 1;
229
+ transform: translateY(-25%);
230
+ }
231
+ }