@carto/ps-react-ui 4.19.0 → 4.20.1

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 (416) hide show
  1. package/dist/actions-DKX98LlI.js +1318 -0
  2. package/dist/actions-DKX98LlI.js.map +1 -0
  3. package/dist/actions-Dy9JVr7F.js +1004 -0
  4. package/dist/actions-Dy9JVr7F.js.map +1 -0
  5. package/dist/category-DHZscHaS.js +826 -0
  6. package/dist/category-DHZscHaS.js.map +1 -0
  7. package/dist/chart-config-BGt7wkK7.js +108 -0
  8. package/dist/chart-config-BGt7wkK7.js.map +1 -0
  9. package/dist/chat.js +1589 -1711
  10. package/dist/chat.js.map +1 -1
  11. package/dist/cjs-CBrZjPCj.js +75 -0
  12. package/dist/cjs-CBrZjPCj.js.map +1 -0
  13. package/dist/components-DDt4mOQn.js +2403 -0
  14. package/dist/components-DDt4mOQn.js.map +1 -0
  15. package/dist/components.js +5 -1841
  16. package/dist/copy-button-DaQqWVu0.js +25 -0
  17. package/dist/copy-button-DaQqWVu0.js.map +1 -0
  18. package/dist/csv-modifiers-D6HGC24b.js +26 -0
  19. package/dist/csv-modifiers-D6HGC24b.js.map +1 -0
  20. package/dist/download-BT6qBamM.js +232 -0
  21. package/dist/download-BT6qBamM.js.map +1 -0
  22. package/dist/echart-BkaV3V5G.js +133 -0
  23. package/dist/echart-BkaV3V5G.js.map +1 -0
  24. package/dist/echart-DSz2Tu0z.js +250 -0
  25. package/dist/echart-DSz2Tu0z.js.map +1 -0
  26. package/dist/formatter-wVO81tYk.js +6 -0
  27. package/dist/formatter-wVO81tYk.js.map +1 -0
  28. package/dist/formula-Bk9CBzm2.js +190 -0
  29. package/dist/formula-Bk9CBzm2.js.map +1 -0
  30. package/dist/formula-Dsru_p-g.js +285 -0
  31. package/dist/formula-Dsru_p-g.js.map +1 -0
  32. package/dist/hooks-zf5gKZYq.js +22 -0
  33. package/dist/hooks-zf5gKZYq.js.map +1 -0
  34. package/dist/legend/stores.js +2 -24
  35. package/dist/legend.js +2274 -2323
  36. package/dist/legend.js.map +1 -1
  37. package/dist/markdown-DnSJMPjQ.js +165 -0
  38. package/dist/markdown-DnSJMPjQ.js.map +1 -0
  39. package/dist/markdown-content-BzKoX3eu.js +8764 -0
  40. package/dist/markdown-content-BzKoX3eu.js.map +1 -0
  41. package/dist/range-BPWVrAsY.js +277 -0
  42. package/dist/range-BPWVrAsY.js.map +1 -0
  43. package/dist/rolldown-runtime-B0aSnxlc.js +20 -0
  44. package/dist/row-CvVGBuy_.js +35 -0
  45. package/dist/row-CvVGBuy_.js.map +1 -0
  46. package/dist/shared-resize-observer-BEiP2rQt.js +157 -0
  47. package/dist/shared-resize-observer-BEiP2rQt.js.map +1 -0
  48. package/dist/smart-tooltip-CwGHCqab.js +34 -0
  49. package/dist/smart-tooltip-CwGHCqab.js.map +1 -0
  50. package/dist/spread-Dy8pshpN.js +149 -0
  51. package/dist/spread-Dy8pshpN.js.map +1 -0
  52. package/dist/stores-B81-IU1G.js +374 -0
  53. package/dist/stores-B81-IU1G.js.map +1 -0
  54. package/dist/stores-BVFMfgyo.js +248 -0
  55. package/dist/stores-BVFMfgyo.js.map +1 -0
  56. package/dist/styles-Y-qGBELO.js +13 -0
  57. package/dist/styles-Y-qGBELO.js.map +1 -0
  58. package/dist/table-BfTG6rrs.js +439 -0
  59. package/dist/table-BfTG6rrs.js.map +1 -0
  60. package/dist/tooltip-DJUGNZxY.js +23 -0
  61. package/dist/tooltip-DJUGNZxY.js.map +1 -0
  62. package/dist/types/chat/bubbles/chat-agent-message-markdown.d.ts +1 -1
  63. package/dist/types/chat/bubbles/chat-error-message.d.ts +1 -1
  64. package/dist/types/chat/bubbles/chat-suggestion-button.d.ts +1 -1
  65. package/dist/types/chat/bubbles/chat-user-message.d.ts +1 -1
  66. package/dist/types/chat/containers/chat-footer.d.ts +1 -1
  67. package/dist/types/chat/containers/chat-header.d.ts +1 -1
  68. package/dist/types/chat/containers/chat-starter.d.ts +1 -1
  69. package/dist/types/chat/feedback/chat-loader.d.ts +1 -1
  70. package/dist/types/chat/feedback/chat-rating-action.d.ts +1 -1
  71. package/dist/types/chat/feedback/chat-thinking.d.ts +1 -1
  72. package/dist/types/chat/feedback/chat-tool-code-area.d.ts +1 -1
  73. package/dist/types/chat/feedback/chat-tool-full-view-dialog.d.ts +1 -1
  74. package/dist/types/chat/feedback/chat-tool-group.d.ts +1 -1
  75. package/dist/types/chat/feedback/chat-tool-trace.d.ts +2 -2
  76. package/dist/types/components/basemaps/group-wrapper.d.ts +1 -1
  77. package/dist/types/components/basemaps/group.d.ts +1 -1
  78. package/dist/types/components/basemaps/header.d.ts +1 -1
  79. package/dist/types/components/copy-button/copy-button.d.ts +1 -1
  80. package/dist/types/components/lasso-tool/chip.d.ts +1 -1
  81. package/dist/types/components/lasso-tool/icons.d.ts +7 -7
  82. package/dist/types/components/lasso-tool/lasso-tool.d.ts +4 -4
  83. package/dist/types/components/lasso-tool/message.d.ts +1 -1
  84. package/dist/types/components/list-data/list-data-skeleton.d.ts +1 -1
  85. package/dist/types/components/measurement-tools/icons.d.ts +3 -3
  86. package/dist/types/components/no-data-alert/no-data-alert.d.ts +1 -1
  87. package/dist/types/components/responsive-drawer/responsive-drawer.d.ts +1 -1
  88. package/dist/types/components/smart-tooltip/smart-tooltip.d.ts +1 -1
  89. package/dist/types/components/tooltip/tooltip.d.ts +1 -1
  90. package/dist/types/hooks/use-widget-ref.d.ts +2 -1
  91. package/dist/types/legend/components/legend-actions/legend-actions.d.ts +1 -1
  92. package/dist/types/legend/components/legend-category/legend-category-ui.d.ts +1 -1
  93. package/dist/types/legend/components/legend-config-select/legend-config-select.d.ts +1 -1
  94. package/dist/types/legend/components/legend-group/legend-group.d.ts +1 -1
  95. package/dist/types/legend/components/legend-group-menu/legend-group-menu-items.d.ts +4 -4
  96. package/dist/types/legend/components/legend-group-menu/legend-group-menu.d.ts +1 -1
  97. package/dist/types/legend/components/legend-icon/legend-icon-ui.d.ts +1 -1
  98. package/dist/types/legend/components/legend-item/legend-item-ui.d.ts +1 -1
  99. package/dist/types/legend/components/legend-item/legend-item.d.ts +1 -1
  100. package/dist/types/legend/components/legend-opacity/legend-opacity.d.ts +2 -2
  101. package/dist/types/legend/components/legend-overflow-menu/legend-overflow-menu.d.ts +1 -1
  102. package/dist/types/legend/components/legend-panel-menu/legend-panel-menu.d.ts +1 -1
  103. package/dist/types/legend/components/legend-proportion/legend-proportion-ui.d.ts +1 -1
  104. package/dist/types/legend/components/legend-ramp/legend-ramp-ui.d.ts +1 -1
  105. package/dist/types/legend/components/legend-row/legend-row.d.ts +1 -1
  106. package/dist/types/legend/components/legend-row-menu/legend-row-menu-items.d.ts +2 -2
  107. package/dist/types/legend/components/legend-row-menu/legend-row-menu.d.ts +1 -1
  108. package/dist/types/legend/components/legend-row-menu/legend-zoom-to.d.ts +1 -1
  109. package/dist/types/legend/components/legend-sortable/legend-sortable.d.ts +1 -1
  110. package/dist/types/legend/components/legend-swatch/legend-swatch.d.ts +1 -1
  111. package/dist/types/legend/components/legend-visibility-toggle/legend-visibility-toggle.d.ts +1 -1
  112. package/dist/types/legend/components/legend-visible-layers/legend-visible-layers.d.ts +1 -1
  113. package/dist/types/legend/index.d.ts +2 -2
  114. package/dist/types/legend/provider/legend-provider.d.ts +1 -1
  115. package/dist/types/widgets/actions/brush-toggle/brush-toggle.d.ts +1 -1
  116. package/dist/types/widgets/actions/change-column/change-column-icon.d.ts +1 -1
  117. package/dist/types/widgets/actions/change-column/change-column.d.ts +1 -1
  118. package/dist/types/widgets/actions/change-column/sortable-column-item.d.ts +1 -1
  119. package/dist/types/widgets/actions/download/download.d.ts +1 -1
  120. package/dist/types/widgets/actions/fullscreen/fullscreen.d.ts +1 -1
  121. package/dist/types/widgets/actions/lock-selection/lock-selection.d.ts +1 -1
  122. package/dist/types/widgets/actions/relative-data/relative-data.d.ts +1 -1
  123. package/dist/types/widgets/actions/searcher/searcher-toggle.d.ts +1 -1
  124. package/dist/types/widgets/actions/searcher/searcher.d.ts +1 -1
  125. package/dist/types/widgets/actions/stack-toggle/grouped-bar-chart-icon.d.ts +1 -1
  126. package/dist/types/widgets/actions/stack-toggle/stack-toggle.d.ts +1 -1
  127. package/dist/types/widgets/actions/zoom-toggle/zoom-toggle.d.ts +1 -1
  128. package/dist/types/widgets/bar/skeleton.d.ts +1 -1
  129. package/dist/types/widgets/category/category-ui.d.ts +1 -1
  130. package/dist/types/widgets/category/components/category-bar.d.ts +1 -1
  131. package/dist/types/widgets/category/components/category-legend.d.ts +1 -1
  132. package/dist/types/widgets/category/components/category-row-multi.d.ts +1 -1
  133. package/dist/types/widgets/category/components/category-row-other.d.ts +1 -1
  134. package/dist/types/widgets/category/components/category-row-single.d.ts +1 -1
  135. package/dist/types/widgets/category/skeleton.d.ts +1 -1
  136. package/dist/types/widgets/echart/echart-ui.d.ts +1 -1
  137. package/dist/types/widgets/echart/echart.d.ts +1 -1
  138. package/dist/types/widgets/error/error.d.ts +1 -1
  139. package/dist/types/widgets/formula/components/item.d.ts +1 -1
  140. package/dist/types/widgets/formula/components/prefix.d.ts +1 -1
  141. package/dist/types/widgets/formula/components/row.d.ts +1 -1
  142. package/dist/types/widgets/formula/components/series.d.ts +1 -1
  143. package/dist/types/widgets/formula/components/suffix.d.ts +1 -1
  144. package/dist/types/widgets/formula/components/value.d.ts +1 -1
  145. package/dist/types/widgets/formula/formula-ui.d.ts +1 -1
  146. package/dist/types/widgets/formula/skeleton.d.ts +1 -1
  147. package/dist/types/widgets/histogram/skeleton.d.ts +1 -1
  148. package/dist/types/widgets/markdown/markdown-ui.d.ts +1 -1
  149. package/dist/types/widgets/markdown/markdown.d.ts +1 -1
  150. package/dist/types/widgets/markdown/skeleton.d.ts +1 -1
  151. package/dist/types/widgets/no-data/no-data.d.ts +1 -1
  152. package/dist/types/widgets/note/note.d.ts +1 -1
  153. package/dist/types/widgets/pie/skeleton.d.ts +1 -1
  154. package/dist/types/widgets/range/components/range-item.d.ts +1 -1
  155. package/dist/types/widgets/range/range-ui.d.ts +1 -1
  156. package/dist/types/widgets/range/skeleton.d.ts +1 -1
  157. package/dist/types/widgets/scatterplot/skeleton.d.ts +1 -1
  158. package/dist/types/widgets/selection-summary/selection-summary.d.ts +1 -1
  159. package/dist/types/widgets/skeleton-loader/skeleton-loader.d.ts +1 -1
  160. package/dist/types/widgets/spread/components/max-value.d.ts +1 -1
  161. package/dist/types/widgets/spread/components/min-value.d.ts +1 -1
  162. package/dist/types/widgets/spread/components/separator.d.ts +1 -1
  163. package/dist/types/widgets/spread/skeleton.d.ts +1 -1
  164. package/dist/types/widgets/spread/spread-ui.d.ts +1 -1
  165. package/dist/types/widgets/subheader/subheader.d.ts +1 -1
  166. package/dist/types/widgets/table/components/cell-header.d.ts +1 -1
  167. package/dist/types/widgets/table/components/cell.d.ts +1 -1
  168. package/dist/types/widgets/table/components/pagination-actions.d.ts +1 -1
  169. package/dist/types/widgets/table/components/pagination.d.ts +1 -1
  170. package/dist/types/widgets/table/components/row.d.ts +1 -1
  171. package/dist/types/widgets/table/skeleton.d.ts +1 -1
  172. package/dist/types/widgets/table/table-ui.d.ts +2 -2
  173. package/dist/types/widgets/timeseries/skeleton.d.ts +1 -1
  174. package/dist/types/widgets/wrapper/components/actions.d.ts +1 -1
  175. package/dist/types/widgets/wrapper/components/options.d.ts +1 -1
  176. package/dist/types/widgets/wrapper/components/title.d.ts +1 -1
  177. package/dist/types/widgets/wrapper/wrapper-ui.d.ts +1 -1
  178. package/dist/types/widgets/wrapper/wrapper.d.ts +1 -1
  179. package/dist/types/widgets-v2/actions/brush-toggle/brush-toggle.d.ts +1 -1
  180. package/dist/types/widgets-v2/actions/change-column/change-column-icon.d.ts +1 -1
  181. package/dist/types/widgets-v2/actions/change-column/change-column.d.ts +1 -1
  182. package/dist/types/widgets-v2/actions/change-column/sortable-column-item.d.ts +1 -1
  183. package/dist/types/widgets-v2/actions/download/download.d.ts +1 -1
  184. package/dist/types/widgets-v2/actions/download/icons.d.ts +3 -3
  185. package/dist/types/widgets-v2/actions/fullscreen/fullscreen.d.ts +2 -2
  186. package/dist/types/widgets-v2/actions/lock-selection/lock-selection.d.ts +1 -1
  187. package/dist/types/widgets-v2/actions/relative-data/relative-data.d.ts +1 -1
  188. package/dist/types/widgets-v2/actions/searcher/searcher-toggle.d.ts +1 -1
  189. package/dist/types/widgets-v2/actions/searcher/searcher.d.ts +1 -1
  190. package/dist/types/widgets-v2/actions/show-all/show-all.d.ts +1 -1
  191. package/dist/types/widgets-v2/actions/stack-toggle/stack-toggle.d.ts +1 -1
  192. package/dist/types/widgets-v2/actions/zoom-toggle/zoom-toggle.d.ts +1 -1
  193. package/dist/types/widgets-v2/bar/skeleton.d.ts +1 -1
  194. package/dist/types/widgets-v2/category/category-ui.d.ts +1 -1
  195. package/dist/types/widgets-v2/category/category.d.ts +1 -1
  196. package/dist/types/widgets-v2/category/components/category-bar-stacked.d.ts +1 -1
  197. package/dist/types/widgets-v2/category/components/category-bar.d.ts +1 -1
  198. package/dist/types/widgets-v2/category/components/category-legend.d.ts +1 -1
  199. package/dist/types/widgets-v2/category/components/category-row-multi.d.ts +1 -1
  200. package/dist/types/widgets-v2/category/components/category-row-other.d.ts +1 -1
  201. package/dist/types/widgets-v2/category/components/category-row-single.d.ts +1 -1
  202. package/dist/types/widgets-v2/category/components/category-row-stacked.d.ts +1 -1
  203. package/dist/types/widgets-v2/category/skeleton.d.ts +1 -1
  204. package/dist/types/widgets-v2/echart/echart-ui.d.ts +1 -1
  205. package/dist/types/widgets-v2/echart/echart.d.ts +1 -1
  206. package/dist/types/widgets-v2/formula/delta.d.ts +1 -1
  207. package/dist/types/widgets-v2/formula/formula-ui.d.ts +1 -1
  208. package/dist/types/widgets-v2/formula/formula.d.ts +1 -1
  209. package/dist/types/widgets-v2/formula/note.d.ts +1 -1
  210. package/dist/types/widgets-v2/formula/prefix.d.ts +1 -1
  211. package/dist/types/widgets-v2/formula/series.d.ts +1 -1
  212. package/dist/types/widgets-v2/formula/skeleton.d.ts +1 -1
  213. package/dist/types/widgets-v2/formula/suffix.d.ts +1 -1
  214. package/dist/types/widgets-v2/formula/value.d.ts +1 -1
  215. package/dist/types/widgets-v2/histogram/skeleton.d.ts +1 -1
  216. package/dist/types/widgets-v2/index.d.ts +5 -5
  217. package/dist/types/widgets-v2/markdown/markdown-content.d.ts +1 -1
  218. package/dist/types/widgets-v2/markdown/markdown-ui.d.ts +1 -1
  219. package/dist/types/widgets-v2/markdown/markdown.d.ts +1 -1
  220. package/dist/types/widgets-v2/markdown/skeleton.d.ts +1 -1
  221. package/dist/types/widgets-v2/note/widget-note.d.ts +2 -2
  222. package/dist/types/widgets-v2/pie/skeleton.d.ts +1 -1
  223. package/dist/types/widgets-v2/provider/widget-provider.d.ts +1 -1
  224. package/dist/types/widgets-v2/range/range-ui.d.ts +1 -1
  225. package/dist/types/widgets-v2/range/range.d.ts +1 -1
  226. package/dist/types/widgets-v2/range/skeleton.d.ts +1 -1
  227. package/dist/types/widgets-v2/scatterplot/skeleton.d.ts +1 -1
  228. package/dist/types/widgets-v2/selection-summary/selection-summary.d.ts +1 -1
  229. package/dist/types/widgets-v2/spread/band.d.ts +37 -0
  230. package/dist/types/widgets-v2/spread/band.test.d.ts +1 -0
  231. package/dist/types/widgets-v2/spread/index.d.ts +1 -0
  232. package/dist/types/widgets-v2/spread/separator.d.ts +1 -1
  233. package/dist/types/widgets-v2/spread/skeleton.d.ts +1 -1
  234. package/dist/types/widgets-v2/spread/spread-ui.d.ts +1 -1
  235. package/dist/types/widgets-v2/spread/spread.d.ts +1 -1
  236. package/dist/types/widgets-v2/state/widget-state.d.ts +1 -1
  237. package/dist/types/widgets-v2/subheader/subheader.d.ts +1 -1
  238. package/dist/types/widgets-v2/table/skeleton.d.ts +1 -1
  239. package/dist/types/widgets-v2/table/table-ui.d.ts +1 -1
  240. package/dist/types/widgets-v2/table/table.d.ts +1 -1
  241. package/dist/types/widgets-v2/timeseries/skeleton.d.ts +1 -1
  242. package/dist/types/widgets-v2/toolbox/toolbox.d.ts +1 -1
  243. package/dist/types/widgets-v2/wrapper/widget-actions.d.ts +2 -2
  244. package/dist/types/widgets-v2/wrapper/widget-content.d.ts +2 -2
  245. package/dist/types/widgets-v2/wrapper/widget-wrapper.d.ts +1 -1
  246. package/dist/use-widget-selector-VSPhfhNm.js +12 -0
  247. package/dist/{use-widget-selector-DFl2hW0R.js.map → use-widget-selector-VSPhfhNm.js.map} +1 -1
  248. package/dist/utils-DtvTjjMq.js +58 -0
  249. package/dist/utils-DtvTjjMq.js.map +1 -0
  250. package/dist/widget-store-BFPKYm4R.js +187 -0
  251. package/dist/widget-store-BFPKYm4R.js.map +1 -0
  252. package/dist/widgets/actions.js +2 -1317
  253. package/dist/widgets/bar.js +183 -175
  254. package/dist/widgets/bar.js.map +1 -1
  255. package/dist/widgets/category.js +429 -434
  256. package/dist/widgets/category.js.map +1 -1
  257. package/dist/widgets/echart.js +3 -120
  258. package/dist/widgets/error.js +28 -38
  259. package/dist/widgets/error.js.map +1 -1
  260. package/dist/widgets/formula.js +3 -123
  261. package/dist/widgets/histogram.js +183 -202
  262. package/dist/widgets/histogram.js.map +1 -1
  263. package/dist/widgets/loader.js +63 -61
  264. package/dist/widgets/loader.js.map +1 -1
  265. package/dist/widgets/markdown.js +141 -123
  266. package/dist/widgets/markdown.js.map +1 -1
  267. package/dist/widgets/no-data.js +52 -58
  268. package/dist/widgets/no-data.js.map +1 -1
  269. package/dist/widgets/note.js +125 -122
  270. package/dist/widgets/note.js.map +1 -1
  271. package/dist/widgets/pie.js +245 -259
  272. package/dist/widgets/pie.js.map +1 -1
  273. package/dist/widgets/range.js +225 -204
  274. package/dist/widgets/range.js.map +1 -1
  275. package/dist/widgets/scatterplot.js +220 -215
  276. package/dist/widgets/scatterplot.js.map +1 -1
  277. package/dist/widgets/selection-summary.js +39 -38
  278. package/dist/widgets/selection-summary.js.map +1 -1
  279. package/dist/widgets/skeleton-loader.js +22 -23
  280. package/dist/widgets/skeleton-loader.js.map +1 -1
  281. package/dist/widgets/spread.js +150 -156
  282. package/dist/widgets/spread.js.map +1 -1
  283. package/dist/widgets/stores.js +3 -8
  284. package/dist/widgets/subheader.js +49 -50
  285. package/dist/widgets/subheader.js.map +1 -1
  286. package/dist/widgets/table.js +576 -644
  287. package/dist/widgets/table.js.map +1 -1
  288. package/dist/widgets/timeseries.js +175 -170
  289. package/dist/widgets/timeseries.js.map +1 -1
  290. package/dist/widgets/toolbar-actions.js +140 -145
  291. package/dist/widgets/toolbar-actions.js.map +1 -1
  292. package/dist/widgets/utils.js +17 -33
  293. package/dist/widgets/utils.js.map +1 -1
  294. package/dist/widgets/wrapper.js +265 -276
  295. package/dist/widgets/wrapper.js.map +1 -1
  296. package/dist/widgets-v2/actions.js +4 -51
  297. package/dist/widgets-v2/bar.js +253 -307
  298. package/dist/widgets-v2/bar.js.map +1 -1
  299. package/dist/widgets-v2/category.js +2 -98
  300. package/dist/widgets-v2/echart.js +2 -57
  301. package/dist/widgets-v2/formula.js +2 -68
  302. package/dist/widgets-v2/histogram.js +285 -350
  303. package/dist/widgets-v2/histogram.js.map +1 -1
  304. package/dist/widgets-v2/markdown.js +3 -69
  305. package/dist/widgets-v2/pie.js +363 -461
  306. package/dist/widgets-v2/pie.js.map +1 -1
  307. package/dist/widgets-v2/range.js +2 -52
  308. package/dist/widgets-v2/scatterplot.js +316 -391
  309. package/dist/widgets-v2/scatterplot.js.map +1 -1
  310. package/dist/widgets-v2/spread.js +2 -66
  311. package/dist/widgets-v2/stores.js +2 -42
  312. package/dist/widgets-v2/table.js +2 -78
  313. package/dist/widgets-v2/timeseries.js +285 -340
  314. package/dist/widgets-v2/timeseries.js.map +1 -1
  315. package/dist/widgets-v2/utils.js +2 -8
  316. package/dist/widgets-v2.js +955 -951
  317. package/dist/widgets-v2.js.map +1 -1
  318. package/dist/zoom-toggle-CA0ifG23.js +164 -0
  319. package/dist/zoom-toggle-CA0ifG23.js.map +1 -0
  320. package/package.json +4 -4
  321. package/src/hooks/use-widget-ref.ts +1 -0
  322. package/src/widgets-v2/index.ts +6 -1
  323. package/src/widgets-v2/spread/band.test.ts +46 -0
  324. package/src/widgets-v2/spread/band.ts +47 -0
  325. package/src/widgets-v2/spread/index.ts +1 -0
  326. package/dist/category-Ct2BzADB.js +0 -753
  327. package/dist/category-Ct2BzADB.js.map +0 -1
  328. package/dist/change-column-Fu1DCYQ3.js +0 -1186
  329. package/dist/change-column-Fu1DCYQ3.js.map +0 -1
  330. package/dist/cjs-D4KH3azB.js +0 -85
  331. package/dist/cjs-D4KH3azB.js.map +0 -1
  332. package/dist/components.js.map +0 -1
  333. package/dist/copy-button-DGL1tyli.js +0 -26
  334. package/dist/copy-button-DGL1tyli.js.map +0 -1
  335. package/dist/csv-item-hH_Gt7ur.js +0 -32
  336. package/dist/csv-item-hH_Gt7ur.js.map +0 -1
  337. package/dist/data-zoom-layout-D_FYdnap.js +0 -28
  338. package/dist/data-zoom-layout-D_FYdnap.js.map +0 -1
  339. package/dist/download-config-OKlLLSW_.js +0 -58
  340. package/dist/download-config-OKlLLSW_.js.map +0 -1
  341. package/dist/echart-B10dhEaM.js +0 -262
  342. package/dist/echart-B10dhEaM.js.map +0 -1
  343. package/dist/exports-Cr43OCul.js +0 -51
  344. package/dist/exports-Cr43OCul.js.map +0 -1
  345. package/dist/exports-Cx-f6m6U.js +0 -63
  346. package/dist/exports-Cx-f6m6U.js.map +0 -1
  347. package/dist/formatter-B9Bxn1k7.js +0 -6
  348. package/dist/formatter-B9Bxn1k7.js.map +0 -1
  349. package/dist/formula-DuC0NQLH.js +0 -79
  350. package/dist/formula-DuC0NQLH.js.map +0 -1
  351. package/dist/lasso-tool-YLFRgb-S.js +0 -582
  352. package/dist/lasso-tool-YLFRgb-S.js.map +0 -1
  353. package/dist/legend/stores.js.map +0 -1
  354. package/dist/legend-store-registry-p1tSwJXH.js +0 -472
  355. package/dist/legend-store-registry-p1tSwJXH.js.map +0 -1
  356. package/dist/markdown-DdqANCiN.js +0 -102
  357. package/dist/markdown-DdqANCiN.js.map +0 -1
  358. package/dist/markdown-content-Dk2DSgbf.js +0 -10287
  359. package/dist/markdown-content-Dk2DSgbf.js.map +0 -1
  360. package/dist/option-builders-DPeoyQaM.js +0 -130
  361. package/dist/option-builders-DPeoyQaM.js.map +0 -1
  362. package/dist/options-CthfUJDz.js +0 -46
  363. package/dist/options-CthfUJDz.js.map +0 -1
  364. package/dist/png-item-9dNbB37T.js +0 -57
  365. package/dist/png-item-9dNbB37T.js.map +0 -1
  366. package/dist/range-l4fNHLEg.js +0 -213
  367. package/dist/range-l4fNHLEg.js.map +0 -1
  368. package/dist/resolve-theme-color-BdojIw0K.js +0 -47
  369. package/dist/resolve-theme-color-BdojIw0K.js.map +0 -1
  370. package/dist/row-DZSP99LW.js +0 -34
  371. package/dist/row-DZSP99LW.js.map +0 -1
  372. package/dist/series-DLNHDWs0.js +0 -90
  373. package/dist/series-DLNHDWs0.js.map +0 -1
  374. package/dist/shared-resize-observer-98b1SK1e.js +0 -17
  375. package/dist/shared-resize-observer-98b1SK1e.js.map +0 -1
  376. package/dist/smart-tooltip-DFV6GD8R.js +0 -40
  377. package/dist/smart-tooltip-DFV6GD8R.js.map +0 -1
  378. package/dist/spread-4MYPOntd.js +0 -66
  379. package/dist/spread-4MYPOntd.js.map +0 -1
  380. package/dist/style-DVnT6HC1.js +0 -131
  381. package/dist/style-DVnT6HC1.js.map +0 -1
  382. package/dist/styles-cohnxh9F.js +0 -23
  383. package/dist/styles-cohnxh9F.js.map +0 -1
  384. package/dist/table-CTcLOycx.js +0 -383
  385. package/dist/table-CTcLOycx.js.map +0 -1
  386. package/dist/tooltip-BDnrRKrp.js +0 -25
  387. package/dist/tooltip-BDnrRKrp.js.map +0 -1
  388. package/dist/transforms-Cdx4fkU5.js +0 -106
  389. package/dist/transforms-Cdx4fkU5.js.map +0 -1
  390. package/dist/use-transform-DXPN3nY7.js +0 -110
  391. package/dist/use-transform-DXPN3nY7.js.map +0 -1
  392. package/dist/use-widget-ref-Ddr_SlJJ.js +0 -22
  393. package/dist/use-widget-ref-Ddr_SlJJ.js.map +0 -1
  394. package/dist/use-widget-selector-DFl2hW0R.js +0 -12
  395. package/dist/utils-BOhInag6.js +0 -170
  396. package/dist/utils-BOhInag6.js.map +0 -1
  397. package/dist/widget-context-DTGO0Yta.js +0 -13
  398. package/dist/widget-context-DTGO0Yta.js.map +0 -1
  399. package/dist/widget-store-Bw5zRUGg.js +0 -261
  400. package/dist/widget-store-Bw5zRUGg.js.map +0 -1
  401. package/dist/widget-store-registry-_W4Z4xp-.js +0 -178
  402. package/dist/widget-store-registry-_W4Z4xp-.js.map +0 -1
  403. package/dist/widgets/actions.js.map +0 -1
  404. package/dist/widgets/echart.js.map +0 -1
  405. package/dist/widgets/formula.js.map +0 -1
  406. package/dist/widgets/stores.js.map +0 -1
  407. package/dist/widgets-v2/actions.js.map +0 -1
  408. package/dist/widgets-v2/category.js.map +0 -1
  409. package/dist/widgets-v2/echart.js.map +0 -1
  410. package/dist/widgets-v2/formula.js.map +0 -1
  411. package/dist/widgets-v2/markdown.js.map +0 -1
  412. package/dist/widgets-v2/range.js.map +0 -1
  413. package/dist/widgets-v2/spread.js.map +0 -1
  414. package/dist/widgets-v2/stores.js.map +0 -1
  415. package/dist/widgets-v2/table.js.map +0 -1
  416. package/dist/widgets-v2/utils.js.map +0 -1
package/dist/chat.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"chat.js","sources":["../src/chat/const.ts","../src/chat/use-typewriter.ts","../src/chat/bubbles/styles.ts","../src/chat/bubbles/chat-user-message.tsx","../src/chat/bubbles/chat-agent-message.tsx","../src/chat/bubbles/chat-agent-message-markdown.tsx","../src/chat/bubbles/chat-error-message.tsx","../src/chat/bubbles/chat-suggestion-button.tsx","../src/chat/feedback/styles.ts","../src/chat/feedback/chat-thinking.tsx","../src/chat/feedback/chat-loader.tsx","../src/chat/containers/styles.ts","../src/chat/containers/chat-content.tsx","../src/chat/containers/chat-header.tsx","../src/chat/containers/chat-footer.tsx","../src/chat/containers/chat-starter.tsx","../src/chat/feedback/chat-actions-container.tsx","../src/chat/feedback/chat-rating-action.tsx","../src/chat/feedback/chat-tool-full-view-dialog.tsx","../src/chat/feedback/chat-tool-code-area.tsx","../src/chat/feedback/get-tool-label.ts","../src/chat/feedback/chat-tool-trace.tsx","../src/chat/feedback/chat-tool-group.tsx"],"sourcesContent":["export const CHAT_MAX_WIDTH = 768\nexport const CHAT_SCROLL_DELAY = 300\nexport const CHAT_DIVIDER_DELAY = 100\nexport const CHAT_TOOL_CODE_AREA_MAX_HEIGHT = 126\n","import { useEffect, useRef, useState } from 'react'\n\ninterface UseTypewriterOptions {\n /** Characters revealed per second (default: `500`). */\n speed?: number\n /** When true, reveal the full text immediately (and snap to it if it grows). */\n skipAnimation?: boolean\n}\n\ninterface UseTypewriterResult {\n /** The portion of `fullText` revealed so far. */\n displayedText: string\n /** `true` while characters are still being revealed. */\n isTyping: boolean\n}\n\n/**\n * Reveals a string character-by-character at a steady rate via\n * `requestAnimationFrame`. Designed for bursty, streamed agent text: as\n * `fullText` grows the reveal keeps chasing the new end, and flipping\n * `skipAnimation` to `true` (e.g. once generation finishes) snaps to the full\n * text. Pair it with `ChatAgentMessage`.\n *\n * @example\n * ```tsx\n * const { displayedText, isTyping } = useTypewriter(message)\n * return (\n * <ChatAgentMessage>\n * <Markdown>{displayedText}</Markdown>\n * {isTyping ? <Cursor /> : null}\n * </ChatAgentMessage>\n * )\n * ```\n */\nexport function useTypewriter(\n fullText: string,\n options: UseTypewriterOptions = {},\n): UseTypewriterResult {\n const { speed = 500, skipAnimation = false } = options\n\n const [charIndex, setCharIndex] = useState(() =>\n skipAnimation ? fullText.length : 0,\n )\n\n // Mirror of the revealed count, read/written ONLY inside the rAF loop (never\n // during render). This lets the animation effect omit `charIndex` from its\n // deps: were it a dep, the loop would tear down and restart on every revealed\n // frame — resetting its frame timer — and never accumulate the elapsed time\n // needed to advance, which stalls completely while `fullText` is also growing\n // (the streaming case).\n const charRef = useRef(charIndex)\n\n useEffect(() => {\n // When `skipAnimation` is set there's nothing to animate — the full text is\n // shown directly via the derived `displayedText` below (no setState here, so\n // a streamed message snaps to its full text the moment generation finishes,\n // without an extra render or a `set-state-in-effect` cascade).\n if (skipAnimation) return\n\n // Already fully revealed (e.g. text hasn't grown since the last frame).\n if (charRef.current >= fullText.length) return\n\n const msPerChar = 1000 / speed\n let rafId: number\n let lastTime: number | null = null\n\n function tick(timestamp: number) {\n // Plain `?? =` not `??=`: the React Compiler can't lower logical-assignment\n // operators and would bail this hook out of optimization.\n lastTime = lastTime ?? timestamp\n const charsToAdd = Math.floor((timestamp - lastTime) / msPerChar)\n if (charsToAdd > 0) {\n lastTime = timestamp\n const next = Math.min(charRef.current + charsToAdd, fullText.length)\n charRef.current = next\n setCharIndex(next)\n if (next >= fullText.length) return // fully revealed — stop the loop\n }\n rafId = requestAnimationFrame(tick)\n }\n\n rafId = requestAnimationFrame(tick)\n return () => cancelAnimationFrame(rafId)\n }, [fullText, speed, skipAnimation])\n\n return {\n displayedText: skipAnimation ? fullText : fullText.slice(0, charIndex),\n isTyping: !skipAnimation && charIndex < fullText.length,\n }\n}\n","import { styled, Typography, type SxProps, type Theme } from '@mui/material'\n\nexport const ChatMessageOverflow = styled(Typography)(() => ({\n whiteSpace: 'pre-wrap',\n overflowX: 'clip',\n overflowWrap: 'break-word',\n maxWidth: '100%',\n}))\nChatMessageOverflow.displayName = 'ChatMessageOverflow'\n\nexport const styles = {\n agentMessageContainer: (theme: Theme) => ({\n ...theme.typography.body2,\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n // Separate the stacked turn blocks (tools → answer text → actions) per the\n // Figma \"Chat Turn\" spec (gap-8).\n gap: theme.spacing(1),\n paddingRight: theme.spacing(4),\n '& + .PsChat--agent-message': {\n marginTop: theme.spacing(1),\n },\n '& + .PsChat--user-message': {\n marginTop: theme.spacing(3),\n },\n '& > p:first-of-type': {\n marginTop: 0,\n },\n '& table': {\n alignSelf: 'stretch',\n display: 'block',\n overflowX: 'auto',\n maxWidth: '100%',\n borderCollapse: 'collapse',\n margin: theme.spacing(1, 0),\n fontSize: '0.875em',\n },\n '& th, & td': {\n border: `1px solid ${theme.palette.divider}`,\n padding: theme.spacing(0.5, 1),\n textAlign: 'left',\n },\n '& th': {\n backgroundColor: theme.palette.action.hover,\n fontWeight: 600,\n },\n '& tr:nth-of-type(even) td': {\n backgroundColor: theme.palette.action.hover,\n },\n '& ul.contains-task-list': {\n listStyle: 'none',\n paddingLeft: 0,\n },\n '& .task-list-item input[type=\"checkbox\"]': {\n marginRight: theme.spacing(0.5),\n },\n '& del': {\n textDecoration: 'line-through',\n opacity: 0.7,\n },\n '& > ul, & > ol': {\n margin: theme.spacing(1, 0),\n paddingLeft: theme.spacing(3),\n '& > li + li': {\n marginTop: theme.spacing(1),\n },\n },\n }),\n userMessageContainer: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-end',\n paddingLeft: ({ spacing }) => spacing(4),\n '&:has(+ .PsChat--user-message) > .PsChat--user-message-inner': {\n borderRadius: ({ spacing }) => spacing(2),\n },\n '& + .PsChat--user-message': {\n marginTop: ({ spacing }) => spacing(0.5),\n },\n '& + .PsChat--agent-message': {\n marginTop: ({ spacing }) => spacing(3),\n },\n },\n userMessage: {\n padding: ({ spacing }) => spacing(0.75, 1.5),\n borderRadius: ({ spacing }) => spacing(2, 2, 0.25, 2),\n border: ({ palette }) => `1px solid ${palette.divider}`,\n backgroundColor: ({ palette }) => palette.background.paper,\n color: ({ palette }) => palette.text.primary,\n width: 'fit-content',\n },\n muted: {\n color: ({ palette }) => palette.text.disabled,\n },\n userMessageTop: {\n textAlign: 'right',\n marginBottom: ({ spacing }) => spacing(0.5),\n },\n errorMessage: {\n display: 'flex',\n alignItems: 'center',\n flexWrap: 'wrap',\n gap: ({ spacing }) => spacing(1),\n },\n errorActions: {\n display: 'flex',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(0.5),\n },\n errorAction: {\n color: ({ palette }) => palette.text.primary,\n },\n errorActionSeparator: {\n mr: 0.5,\n color: ({ palette }) => palette.black[25],\n fontWeight: 600,\n },\n suggestionButton: {\n transition: 'border-color 0.2s',\n width: '100%',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n textAlign: 'left',\n gap: ({ spacing }) => spacing(1),\n padding: ({ spacing }) => spacing(0.75, 1.5),\n borderRadius: ({ spacing }) => spacing(2),\n border: ({ palette }) => `1px solid ${palette.divider}`,\n '& .MuiSvgIcon-root': {\n transition: 'color 0.2s',\n color: 'inherit',\n fontSize: ({ spacing }) => spacing(1.5),\n width: ({ spacing }) => spacing(1.5),\n minWidth: ({ spacing }) => spacing(1.5),\n height: ({ spacing }) => spacing(2.5),\n },\n '&:not(.Mui-disabled) .MuiSvgIcon-root': {\n color: ({ palette }) => palette.text.secondary,\n },\n '&:hover': {\n borderColor: ({ palette }) => palette.text.hint,\n '& .MuiSvgIcon-root': {\n color: ({ palette }) => palette.text.primary,\n },\n },\n '&.Mui-disabled': {\n color: ({ palette }) => palette.text.disabled,\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box } from '@mui/material'\nimport type { ChatUserMessageProps } from '../types'\nimport { ChatMessageOverflow, styles } from './styles'\n\nexport function ChatUserMessage({\n children,\n muted = false,\n topContext,\n sx,\n}: ChatUserMessageProps) {\n return (\n <Box className='PsChat--user-message' sx={styles.userMessageContainer}>\n {topContext && <Box sx={styles.userMessageTop}>{topContext}</Box>}\n <ChatMessageOverflow\n className='PsChat--user-message-inner'\n variant='body2'\n sx={{\n ...styles.userMessage,\n ...(muted ? styles.muted : undefined),\n ...sx,\n }}\n >\n {children}\n </ChatMessageOverflow>\n </Box>\n )\n}\n","import { forwardRef } from 'react'\nimport { Box, styled, type BoxProps } from '@mui/material'\nimport type { ChatAgentMessageProps } from '../types'\nimport { styles } from './styles'\n\nconst InnerBox = ({ className, ...props }: BoxProps) => (\n <Box className={`PsChat--agent-message ${className ?? ''}`} {...props} />\n)\n\nconst StyledAgentMessage = styled(InnerBox)(({ theme }) =>\n styles.agentMessageContainer(theme),\n)\n\n/**\n * Agent reply bubble. A styles container that positions the reply and its\n * composed pieces (text, loaders, tool traces, …); it renders `children`\n * verbatim and forwards its `ref` to the underlying element. For Markdown\n * replies, compose `ChatAgentMessageMarkdown` instead of teaching this\n * container about the markdown engine.\n */\nexport const ChatAgentMessage = forwardRef<\n HTMLDivElement,\n ChatAgentMessageProps\n>(function ChatAgentMessage({ children, ...props }, ref) {\n return (\n <StyledAgentMessage ref={ref} {...props}>\n {children}\n </StyledAgentMessage>\n )\n})\nChatAgentMessage.displayName = 'ChatAgentMessage'\n","import { lazy, Suspense } from 'react'\nimport { ChatAgentMessage } from './chat-agent-message'\nimport type { ChatAgentMessageMarkdownProps } from '../types'\n\n// Lazy-loaded so the markdown engine (`react-markdown` + remark/rehype plugins)\n// stays in a separate async chunk: consumers only pay its bundle cost when they\n// actually import this component. The Suspense fallback renders the raw text\n// until the chunk resolves.\nconst MarkdownContent = lazy(() =>\n import('../../widgets-v2/markdown/markdown-content').then((m) => ({\n default: m.MarkdownContent,\n })),\n)\n\n/**\n * Agent reply bubble that renders its (string) children as GitHub-Flavored\n * Markdown through the library's sanitized renderer — raw HTML is skipped and\n * images are stripped, since the content is model output; tables / task lists /\n * strikethrough pick up the bubble's element styling. Composition over\n * `ChatAgentMessage`, which stays a plain styles container.\n */\nexport function ChatAgentMessageMarkdown({\n children,\n ...props\n}: ChatAgentMessageMarkdownProps) {\n return (\n <ChatAgentMessage {...props}>\n <Suspense fallback={children}>\n <MarkdownContent content={children} gfm />\n </Suspense>\n </ChatAgentMessage>\n )\n}\nChatAgentMessageMarkdown.displayName = 'ChatAgentMessageMarkdown'\n","import { Box, Link, Typography } from '@mui/material'\nimport { ErrorOutline } from '@mui/icons-material'\nimport type { ChatErrorMessageProps } from '../types'\nimport { styles } from './styles'\n\nexport function ChatErrorMessage({\n errors,\n icon,\n actions,\n sx,\n}: ChatErrorMessageProps) {\n return (\n <Box sx={{ ...styles.errorMessage, ...sx }}>\n {icon ?? <ErrorOutline fontSize='medium' color='error' />}\n {errors.map((error, index) => (\n <Typography key={index} variant='subtitle2' color='error.relatedDark'>\n {error}\n </Typography>\n ))}\n {actions?.length ? (\n <Box sx={styles.errorActions}>\n {(actions ?? []).map((action, index) => (\n <span key={index}>\n {index > 0 && (\n <Typography\n component='span'\n variant='body2'\n sx={styles.errorActionSeparator}\n >\n &middot;\n </Typography>\n )}\n <Link\n component='button'\n variant='body2'\n onClick={action.onClick}\n sx={styles.errorAction}\n >\n {action.label}\n </Link>\n </span>\n ))}\n </Box>\n ) : null}\n </Box>\n )\n}\n","import { ButtonBase, Typography } from '@mui/material'\nimport { ArrowUpward } from '@mui/icons-material'\nimport type { ChatSuggestionButtonProps } from '../types'\nimport { styles } from './styles'\n\nexport function ChatSuggestionButton({\n label,\n color,\n sx,\n ...props\n}: ChatSuggestionButtonProps) {\n return (\n <ButtonBase\n sx={{\n ...styles.suggestionButton,\n ...(color ? { backgroundColor: color } : undefined),\n ...sx,\n }}\n {...props}\n >\n <Typography color='inherit' variant='body2'>\n {label}\n </Typography>\n <ArrowUpward />\n </ButtonBase>\n )\n}\n","import { type SxProps, type Theme } from '@mui/material'\nimport { keyframes } from '@mui/material/styles'\n\nconst shimmer = keyframes`\n 0% {\n background-position: 150% 0;\n }\n 100% {\n background-position: -50% 0;\n }\n`\n\nconst breatheOuter = keyframes`\n 0% { transform: scale(0.68); opacity: 0.7; }\n 40% { transform: scale(1); opacity: 1; }\n 80% { transform: scale(0.6); opacity: 0.65; }\n 100% { transform: scale(0.68); opacity: 0.7; }\n`\n\nconst breatheInner = keyframes`\n 0% { transform: scale(1); }\n 40% { transform: scale(0.75); }\n 80% { transform: scale(1.125); }\n 100% { transform: scale(1); }\n`\n\nexport const styles = {\n thinking: {\n display: 'flex',\n alignItems: 'center',\n minHeight: ({ spacing }) => spacing(3),\n background: ({ palette }) => `linear-gradient(\n 90deg,\n ${palette.text.disabled} 25%,\n ${palette.text.secondary} 50%,\n ${palette.text.disabled} 75%\n )`,\n backgroundSize: '200% 100%',\n backgroundClip: 'text',\n WebkitBackgroundClip: 'text',\n WebkitTextFillColor: 'transparent',\n animation: `${shimmer} 2s ease-in-out infinite`,\n animationDuration: '2s',\n },\n loader: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n p: 1,\n },\n loaderOuterCircle: {\n position: 'absolute',\n inset: 0,\n margin: 'auto',\n borderRadius: '50%',\n backgroundColor: ({ palette }) => palette.action.disabled,\n animation: `${breatheOuter} 1s ease-in-out infinite`,\n },\n loaderInnerCircle: {\n position: 'absolute',\n inset: 0,\n margin: 'auto',\n borderRadius: '50%',\n backgroundColor: ({ palette }) => palette.text.primary,\n animation: `${breatheInner} 1s ease-in-out infinite`,\n },\n // --- Tool Trace styles ---\n traceHeader: {\n display: 'flex',\n alignItems: 'center',\n padding: 0,\n paddingLeft: ({ spacing }) => spacing(0.5),\n borderRadius: ({ spacing }) => spacing(0.5),\n width: 'fit-content',\n color: ({ palette }) => palette.text.secondary,\n '&:hover': {\n backgroundColor: ({ palette }) => palette.action.hover,\n },\n },\n traceChevron: {\n color: ({ palette }) => palette.text.secondary,\n transition: 'transform 0.2s',\n },\n traceDetailsWrapper: {\n marginTop: ({ spacing }) => spacing(0.5),\n padding: ({ spacing }) => spacing(1.5),\n border: '1px solid',\n borderColor: 'divider',\n borderRadius: ({ spacing }) => spacing(1),\n },\n traceField: {\n display: 'flex',\n alignItems: 'flex-start',\n gap: ({ spacing }) => spacing(1),\n },\n traceFieldLabel: {\n flexShrink: 0,\n },\n traceReference: {\n display: 'flex',\n borderRadius: ({ spacing }) => spacing(0.25),\n padding: ({ spacing }) => spacing(0, 0.5),\n gap: ({ spacing }) => spacing(0.5),\n backgroundColor: ({ palette }) => palette.success.relatedLight,\n color: ({ palette }) => palette.success.dark,\n },\n traceStatusSuccess: {\n color: ({ palette }) => palette.success.main,\n },\n traceStatusError: {\n color: ({ palette }) => palette.error.main,\n },\n // --- Code Area styles ---\n codeArea: {\n position: 'relative',\n width: '100%',\n },\n codeAreaPre: {\n margin: 0,\n padding: ({ spacing }) => spacing(1),\n borderRadius: ({ spacing }) => spacing(0.5),\n backgroundColor: ({ palette }) => palette.background.default,\n fontFamily: ({ typography }) =>\n typography.code3?.fontFamily ??\n typography.code1?.fontFamily ??\n 'monospace',\n fontSize: ({ typography }) => typography.code3?.fontSize ?? '0.75rem',\n lineHeight: ({ typography }) => typography.code3?.lineHeight ?? 1.333,\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n overflowY: 'auto',\n },\n codeAreaPreError: {\n borderLeft: ({ palette }) => `3px solid ${palette.error.main}`,\n backgroundColor: ({ palette }) => `${palette.error.main}08`,\n },\n codeAreaFullViewButton: {\n position: 'absolute',\n top: ({ spacing }) => spacing(0.5),\n right: ({ spacing }) => spacing(0.5),\n },\n // --- Full View Dialog styles ---\n fullViewDialog: {\n margin: ({ spacing }) => spacing(5),\n },\n fullViewPaper: {\n borderRadius: 1,\n },\n fullViewTitle: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: ({ spacing }) => spacing(2),\n borderBottom: '1px solid',\n borderBottomColor: 'divider',\n },\n fullViewDialogContent: {\n padding: 0,\n '&:first-of-type': { paddingTop: 0 },\n },\n fullViewPre: {\n margin: 0,\n padding: ({ spacing }) => spacing(1),\n background: ({ palette, spacing }) =>\n `linear-gradient(to right, ${palette.action.hover} calc(${spacing(1)} + 3em), ${palette.background.default} calc(${spacing(1)} + 3em))`,\n fontFamily: ({ typography }) =>\n typography.code3?.fontFamily ??\n typography.code1?.fontFamily ??\n 'monospace',\n fontSize: ({ typography }) => typography.code3?.fontSize ?? '0.75rem',\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n lineHeight: 1.6,\n counterReset: 'line',\n },\n fullViewLine: {\n display: 'block',\n '&::before': {\n counterIncrement: 'line',\n content: 'counter(line)',\n display: 'inline-block',\n width: '2em',\n marginRight: '2em',\n textAlign: 'right',\n color: ({ palette }) => palette.text.secondary,\n userSelect: 'none',\n },\n },\n groupHeader: {\n textAlign: 'left',\n display: 'flex',\n alignItems: 'center',\n borderRadius: 0,\n gap: ({ spacing }) => spacing(0.5),\n },\n errorBadge: {\n color: ({ palette }) => palette.error.main,\n fontWeight: 600,\n display: 'flex',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(0.25),\n },\n // --- Syntax highlighting token styles ---\n syntaxToken_key: {\n color: '#881280',\n },\n syntaxToken_string: {\n color: '#c41a16',\n },\n syntaxToken_number: {\n color: '#1c00cf',\n },\n syntaxToken_boolean: {\n color: '#1c00cf',\n },\n syntaxToken_null: {\n color: '#808080',\n },\n syntaxToken_punctuation: {\n color: ({ palette }) => palette.text.primary,\n },\n groupListItem: {\n borderBottom: '1px solid',\n borderColor: 'divider',\n '&:first-of-type .MuiButton-root': {\n borderRadius: ({ spacing }) => spacing(1, 1, 0, 0),\n },\n '&:last-of-type:not([aria-expanded=true]) .MuiButton-root': {\n borderRadius: ({ spacing }) => spacing(0, 0, 1, 1),\n },\n '&:last-of-type': {\n borderBottomWidth: 0,\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Typography } from '@mui/material'\nimport type { ChatThinkingProps } from '../types'\nimport { styles } from './styles'\n\nexport function ChatThinking({\n children = 'Thinking...',\n duration = 2000,\n sx,\n}: ChatThinkingProps) {\n const durSeconds = `${duration / 1000}s`\n return (\n <Typography\n variant='body2'\n sx={{\n ...styles.thinking,\n animationDuration: durSeconds,\n ...sx,\n }}\n >\n {children}\n </Typography>\n )\n}\n","import { Box } from '@mui/material'\nimport type { ChatLoaderProps } from '../types'\nimport { styles } from './styles'\n\nexport function ChatLoader({ size = 24, labels = {}, sx }: ChatLoaderProps) {\n return (\n <Box\n role='status'\n aria-busy={true}\n aria-label={labels.loading ?? 'Loading'}\n sx={{ ...styles.loader, width: size, height: size, ...sx }}\n >\n <Box\n component='span'\n sx={{\n ...styles.loaderOuterCircle,\n width: size * 0.75,\n height: size * 0.75,\n }}\n />\n <Box\n component='span'\n sx={{\n ...styles.loaderInnerCircle,\n width: size * 0.32,\n height: size * 0.32,\n }}\n />\n </Box>\n )\n}\n","import type { SxProps, Theme } from '@mui/material'\nimport { CHAT_MAX_WIDTH } from '../const'\n\nexport const styles = {\n header: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: ({ spacing }) => spacing(1),\n },\n headerTitle: {\n flexGrow: 1,\n px: ({ spacing }) => spacing(0.5),\n },\n headerActions: {\n display: 'flex',\n alignItems: 'center',\n marginLeft: ({ spacing }) => spacing(2),\n gap: ({ spacing }) => spacing(0.5),\n },\n footerWrapper: {\n padding: ({ spacing }) => spacing(1),\n },\n /**\n * Rounded input box, matching the reference ChatFooter. A two-column grid:\n * main column (input + optional slots) | send button, bottom-aligned so it\n * stays at the end as the input grows. NO vertical padding — the textarea's own\n * padding sets the ~32px single-line height, so the box hugs the input.\n */\n footerBox: {\n maxWidth: CHAT_MAX_WIDTH,\n width: '100%',\n margin: '0 auto',\n display: 'grid',\n gridTemplateColumns: '1fr auto',\n alignItems: 'end',\n columnGap: ({ spacing }) => spacing(0.5),\n backgroundColor: ({ palette }) =>\n palette.default?.background ?? 'rgba(44, 48, 50, 0.04)',\n borderRadius: ({ spacing }) => spacing(0.5),\n paddingInline: ({ spacing }) => spacing(0.5),\n },\n /** Main grid area: input stacked above the (optional) slots row. */\n footerMain: {\n minWidth: 0,\n display: 'flex',\n flexDirection: 'column',\n gap: ({ spacing }) => spacing(0.5),\n },\n /**\n * Send-button grid area, bottom-aligned (matches the reference flex-end row) so\n * the button stays at the bottom as the input grows. The small bottom padding\n * keeps it off the box edge — in the single-line state it reads as vertically\n * centered (4px top / 4px bottom around the 24px button in the 32px row).\n */\n footerSend: {\n alignSelf: 'end',\n paddingBottom: ({ spacing }) => spacing(0.5),\n '& .MuiIconButton-root': {\n padding: ({ spacing }) => spacing(0.5),\n },\n },\n /** The chrome-less multiline input (no underline / no filled affordance). */\n footerInput: {\n width: '100%',\n typography: 'body2',\n // The Meridian theme styles multiline InputBase as a tall \"comment field\"\n // (min-height: 96px on the root, 12px/14px textarea padding). Override both to\n // get the compact chat field: kill the root min-height and use the reference's\n // 6px/10px padding — both need !important to beat the theme override. Height\n // then comes from MUI's TextareaAutosize (minRows=1/maxRows=8): one line\n // (~32px) → grows → scrolls.\n //\n // TextareaAutosize renders a hidden shadow <textarea> (it carries\n // `aria-hidden=\"true\"`, the same class, and an inline `padding: 0`) to measure\n // the content height; MUI then applies that height to the visible input. Getting\n // the compact ~32px single line right needs the two rules below split apart:\n //\n // • Font metrics (size/line-height/letter-spacing) go on BOTH textareas. The\n // shadow measures with its own CSS, so if it isn't pinned to body2 it\n // measures at the default ~24px line-height and the box ends up too tall.\n // • Padding goes on the VISIBLE input ONLY (`:not([aria-hidden])`). A\n // `!important` padding that also hit the shadow would clobber its measurement\n // `padding: 0`, double-counting the padding (~44px instead of 32px).\n //\n // `!important` is required on both to beat the Meridian theme's tall\n // \"comment field\" multiline overrides (12px/14px padding, larger metrics); the\n // root `min-height: 0` kills that theme's 96px min-height.\n minHeight: '0 !important',\n '& textarea': {\n fontSize: ({ typography }) => `${typography.body2.fontSize} !important`,\n lineHeight: ({ typography }) =>\n `${typography.body2.lineHeight} !important`,\n letterSpacing: ({ typography }) =>\n `${typography.body2.letterSpacing} !important`,\n },\n '& textarea:not([aria-hidden])': {\n resize: 'none',\n padding: ({ spacing }) => `${spacing(0.75, 1.25)} !important`,\n },\n },\n /**\n * Slots row under the input: start slot + model selector + end slot. The left\n * padding lines the row's content up with the input text above it: the input\n * text is inset ~12px from the box edge (InputBase root padding + the textarea's\n * 10px left padding) while the model-selector text button only insets ~8px, so a\n * 4px indent here makes the slot label share the placeholder's left edge instead\n * of sitting further out.\n */\n footerSlots: {\n display: 'flex',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(0.5),\n minWidth: 0,\n flexWrap: 'wrap',\n paddingLeft: ({ spacing }) => spacing(0.5),\n paddingBottom: ({ spacing }) => spacing(0.5),\n },\n modelSelector: {\n textTransform: 'none',\n color: ({ palette }) => palette.text.secondary,\n maxWidth: '100%',\n minWidth: 0,\n '& .MuiButton-endIcon': {\n marginLeft: ({ spacing }) => spacing(0.25),\n },\n },\n modelSelectorLabel: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n footerCaption: {\n textAlign: 'center',\n },\n content: {\n overflowY: 'auto',\n flex: 1,\n position: 'relative',\n mx: 'auto',\n maxWidth: CHAT_MAX_WIDTH,\n width: '100%',\n maxHeight: '100%',\n pt: 1,\n pb: 3,\n px: 2,\n display: 'flex',\n flexDirection: 'column',\n borderTopWidth: '1px',\n borderTopStyle: 'solid',\n borderBottomWidth: '1px',\n borderBottomStyle: 'solid',\n },\n sentinel: {\n height: '1px',\n flexShrink: 0,\n },\n jumpToLatestWrapper: {\n position: 'sticky',\n bottom: ({ spacing }) => spacing(3),\n height: 0,\n display: 'flex',\n justifyContent: 'center',\n zIndex: 1,\n },\n jumpToLatest: {\n transition: 'opacity 0.2s',\n },\n starter: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n padding: ({ spacing }) => spacing(3),\n textAlign: 'center',\n maxWidth: CHAT_MAX_WIDTH,\n margin: '0 auto',\n },\n starterItems: {\n display: 'grid',\n width: '100%',\n marginTop: ({ spacing }) => spacing(2),\n },\n starterItemsTwoCol: {\n gridTemplateColumns: 'repeat(2, 1fr)',\n },\n} satisfies Record<string, SxProps<Theme>>\n","import {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react'\nimport { Box, Fab } from '@mui/material'\nimport { KeyboardArrowDown } from '@mui/icons-material'\nimport type { ChatContentProps, ChatContentRef } from '../types'\nimport { styles } from './styles'\n\n/** Slack in px for treating the user as \"at the bottom\" when content grows. */\nconst AUTO_SCROLL_THRESHOLD = 32\n\nexport const ChatContent = forwardRef<ChatContentRef, ChatContentProps>(\n function ChatContent({ children, autoScroll = true, labels = {}, sx }, ref) {\n const scrollRef = useRef<HTMLDivElement>(null)\n const topSentinelRef = useRef<HTMLDivElement>(null)\n const bottomSentinelRef = useRef<HTMLDivElement>(null)\n\n const [isAtTop, setIsAtTop] = useState(true)\n const [isAtBottom, setIsAtBottom] = useState(true)\n\n const scrollToBottom = () => {\n scrollRef.current?.scrollTo({\n top: scrollRef.current.scrollHeight,\n behavior: 'smooth',\n })\n }\n\n const scrollToTop = () => {\n scrollRef.current?.scrollTo({ top: 0, behavior: 'smooth' })\n }\n\n useImperativeHandle(\n ref,\n () => ({ scrollToBottom, scrollToTop, isAtBottom, isAtTop }),\n [isAtBottom, isAtTop],\n )\n\n useEffect(() => {\n const root = scrollRef.current\n const topEl = topSentinelRef.current\n const bottomEl = bottomSentinelRef.current\n if (!root || !topEl || !bottomEl) return\n\n const topObserver = new IntersectionObserver(\n ([entry]) => setIsAtTop(entry?.isIntersecting ?? true),\n { root },\n )\n const bottomObserver = new IntersectionObserver(\n ([entry]) => setIsAtBottom(entry?.isIntersecting ?? true),\n { root },\n )\n topObserver.observe(topEl)\n bottomObserver.observe(bottomEl)\n return () => {\n topObserver.disconnect()\n bottomObserver.disconnect()\n }\n }, [])\n\n useEffect(() => {\n if (!autoScroll) return\n const root = scrollRef.current\n if (!root) return\n\n // We can't watch `children` to detect new content: tool traces and\n // `useTypewriter` live inside child components and update via local\n // state, so they mutate the DOM without re-rendering `ChatContent`.\n // MutationObserver picks up every DOM change regardless of source.\n let prevScrollHeight = root.scrollHeight\n let rafId: number | null = null\n\n const check = () => {\n rafId = null\n const newScrollHeight = root.scrollHeight\n if (newScrollHeight > prevScrollHeight) {\n const growth = newScrollHeight - prevScrollHeight\n // If the distance from the bottom doesn't exceed the amount the\n // content just grew (plus a small slack), the user was at the\n // bottom *before* the growth — scroll them to the new bottom.\n // Otherwise they've scrolled up to read history and we leave them\n // alone.\n const distanceFromBottom =\n newScrollHeight - root.scrollTop - root.clientHeight\n if (distanceFromBottom <= growth + AUTO_SCROLL_THRESHOLD) {\n root.scrollTo({ top: newScrollHeight, behavior: 'smooth' })\n }\n }\n prevScrollHeight = newScrollHeight\n }\n\n const mo = new MutationObserver(() => {\n // Plain `?? =` rather than `??=`: the React Compiler can't yet lower\n // logical-assignment operators, and bailing out would drop memoization\n // for this scroll container (which re-renders on every message).\n rafId = rafId ?? requestAnimationFrame(check)\n })\n mo.observe(root, {\n childList: true,\n subtree: true,\n characterData: true,\n })\n return () => {\n mo.disconnect()\n if (rafId !== null) cancelAnimationFrame(rafId)\n }\n }, [autoScroll])\n\n return (\n <Box\n ref={scrollRef}\n sx={{\n ...styles.content,\n borderTopColor: ({ palette }) =>\n isAtTop ? 'transparent' : palette.divider,\n borderBottomColor: ({ palette }) =>\n isAtBottom ? 'transparent' : palette.divider,\n ...sx,\n }}\n >\n <Box ref={topSentinelRef} sx={styles.sentinel} aria-hidden />\n {children}\n <Box ref={bottomSentinelRef} sx={styles.sentinel} aria-hidden />\n <Box sx={styles.jumpToLatestWrapper}>\n <Fab\n size='small'\n onClick={scrollToBottom}\n aria-label={labels.jumpToLatest ?? 'Jump to latest'}\n sx={{\n ...styles.jumpToLatest,\n opacity: isAtBottom ? 0 : 1,\n pointerEvents: isAtBottom ? 'none' : 'auto',\n }}\n >\n <KeyboardArrowDown />\n </Fab>\n </Box>\n </Box>\n )\n },\n)\nChatContent.displayName = 'ChatContent'\n","import { Box, IconButton, Typography } from '@mui/material'\nimport { Close } from '@mui/icons-material'\nimport type { ChatHeaderProps } from '../types'\nimport { styles } from './styles'\n\nexport function ChatHeader({\n leftSlot,\n title,\n rightSlot,\n onClose,\n sx,\n}: ChatHeaderProps) {\n return (\n <Box sx={{ ...styles.header, ...sx }}>\n {leftSlot}\n <Typography variant='subtitle2' sx={styles.headerTitle}>\n {title}\n </Typography>\n <Box sx={styles.headerActions}>\n {rightSlot}\n {onClose && (\n <IconButton size='medium' onClick={onClose} aria-label='Close'>\n <Close />\n </IconButton>\n )}\n </Box>\n </Box>\n )\n}\n","import { useState } from 'react'\nimport {\n Box,\n Button,\n FormControl,\n FormHelperText,\n IconButton,\n InputBase,\n Menu,\n MenuItem,\n Typography,\n} from '@mui/material'\nimport {\n ArrowUpwardOutlined,\n StopCircleOutlined,\n KeyboardArrowDown,\n} from '@mui/icons-material'\nimport type { ChatFooterProps } from '../types'\nimport { styles } from './styles'\n\nconst DEFAULT_CAPTION =\n 'Responses are AI-generated. Please verify key information.'\n\nexport function ChatFooter({\n value,\n onChange,\n onSend,\n onStop,\n isGenerating = false,\n disabled = false,\n placeholder = 'Type a message...',\n labels = {},\n caption = DEFAULT_CAPTION,\n models,\n selectedModel,\n onModelChange,\n startToolbarSlot,\n endToolbarSlot,\n sx,\n}: ChatFooterProps) {\n const [modelAnchor, setModelAnchor] = useState<HTMLElement | null>(null)\n const canSend = value.trim() && !disabled && !isGenerating\n // Only worth showing when there's an actual choice — a single option is dead UI.\n const showModelSelector = (models?.length ?? 0) > 1\n const modelLabel = labels.model ?? 'Select model'\n // Visible trigger text: the matched option's label, the raw value as a\n // fallback, or the placeholder when nothing is selected yet.\n const selectedLabel =\n models?.find((m) => m.value === selectedModel)?.label ??\n (selectedModel && selectedModel.length > 0 ? selectedModel : modelLabel)\n\n // The slots row (start slot + model selector + end slot) renders under the input\n // only when there's something to show; otherwise the grid is just input | send.\n const hasSlots =\n showModelSelector || Boolean(startToolbarSlot) || Boolean(endToolbarSlot)\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault()\n if (canSend) {\n onSend()\n }\n }\n }\n\n const sendButton =\n isGenerating && onStop ? (\n <IconButton\n size='small'\n onClick={onStop}\n disabled={disabled}\n aria-label={labels.stop ?? 'Stop'}\n >\n <StopCircleOutlined />\n </IconButton>\n ) : (\n <IconButton\n size='small'\n variant='contained'\n color='primary'\n onClick={onSend}\n disabled={!canSend}\n aria-label={labels.send ?? 'Send'}\n >\n <ArrowUpwardOutlined />\n </IconButton>\n )\n\n return (\n <FormControl fullWidth sx={{ ...styles.footerWrapper, ...sx }}>\n {/* Two grid areas: [input + slots] | [send button, aligned to the end]. */}\n <Box sx={styles.footerBox}>\n <Box sx={styles.footerMain}>\n <InputBase\n multiline\n minRows={1}\n maxRows={8}\n value={value}\n onChange={(e) => onChange(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n disabled={disabled || isGenerating}\n sx={styles.footerInput}\n />\n {hasSlots && (\n <Box sx={styles.footerSlots}>\n {startToolbarSlot}\n {showModelSelector && (\n <>\n <Button\n size='small'\n variant='text'\n color='inherit'\n disabled={disabled || isGenerating}\n onClick={(e) => setModelAnchor(e.currentTarget)}\n aria-label={modelLabel}\n aria-haspopup='menu'\n aria-expanded={modelAnchor ? 'true' : undefined}\n endIcon={<KeyboardArrowDown />}\n sx={styles.modelSelector}\n >\n <Typography\n variant='caption'\n component='span'\n color='inherit'\n sx={styles.modelSelectorLabel}\n >\n {selectedLabel}\n </Typography>\n </Button>\n <Menu\n anchorEl={modelAnchor}\n open={Boolean(modelAnchor)}\n onClose={() => setModelAnchor(null)}\n variant='menu'\n elevation={8}\n anchorOrigin={{ vertical: 'top', horizontal: 'left' }}\n transformOrigin={{ vertical: 'bottom', horizontal: 'left' }}\n >\n {models?.map((m) => (\n <MenuItem\n key={m.value}\n selected={m.value === selectedModel}\n onClick={() => {\n onModelChange?.(m.value)\n setModelAnchor(null)\n }}\n >\n {m.label}\n </MenuItem>\n ))}\n </Menu>\n </>\n )}\n {endToolbarSlot}\n </Box>\n )}\n </Box>\n <Box sx={styles.footerSend}>{sendButton}</Box>\n </Box>\n {caption ? (\n <FormHelperText sx={styles.footerCaption}>{caption}</FormHelperText>\n ) : null}\n </FormControl>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport type { ChatStarterProps } from '../types'\nimport { ChatSuggestionButton } from '../bubbles/chat-suggestion-button'\nimport { styles } from './styles'\n\nconst DEFAULT_PALETTE = [\n '#C9DB7440', // pastel green\n '#FE88B140', // pastel red\n '#9EB9F340', // pastel blue\n '#F6CF7140', // pastel yellow\n]\n\nexport function ChatStarter({\n icon,\n title,\n description,\n items,\n size = 'small',\n onSelect,\n sx,\n}: ChatStarterProps) {\n const fullItems = items.map((item, index) => {\n if (typeof item === 'string') {\n return {\n label: item,\n color: DEFAULT_PALETTE[index],\n }\n } else {\n return {\n label: item.label,\n color: item.color ?? DEFAULT_PALETTE[index],\n }\n }\n })\n return (\n <Box\n sx={{\n ...styles.starter,\n gap: size === 'small' ? 1 : 2,\n ...sx,\n }}\n >\n {icon}\n {title && (\n <Typography variant={size === 'small' ? 'h6' : 'h5'}>\n {title}\n </Typography>\n )}\n {description && (\n <Typography\n variant={size === 'small' ? 'body2' : 'body1'}\n color='text.secondary'\n >\n {description}\n </Typography>\n )}\n <Box\n sx={{\n ...styles.starterItems,\n gap: size === 'small' ? 1 : 2,\n ...(items.length > 2 ? styles.starterItemsTwoCol : undefined),\n }}\n >\n {fullItems.map((item, i) => (\n <ChatSuggestionButton\n key={i}\n label={item.label}\n onClick={() => onSelect?.(item.label)}\n color={item.color}\n />\n ))}\n </Box>\n </Box>\n )\n}\n","import { Box, styled } from '@mui/material'\n\nexport const ChatActionsContainer = styled(Box)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(0.5),\n}))\n","import { IconButton } from '@mui/material'\nimport {\n ThumbUpOutlined,\n ThumbDownOutlined,\n ThumbUp,\n ThumbDown,\n} from '@mui/icons-material'\nimport type { ChatRatingActionProps } from '../types'\n\nexport function ChatRatingAction({\n rating,\n onRatingChange,\n labels = {},\n}: ChatRatingActionProps) {\n return (\n <>\n <IconButton\n size='small'\n onClick={() => onRatingChange?.(rating === 'up' ? null : 'up')}\n aria-label={labels.thumbUp ?? 'Thumbs up'}\n color={rating === 'up' ? 'primary' : undefined}\n >\n {rating === 'up' ? (\n <ThumbUp fontSize='small' />\n ) : (\n <ThumbUpOutlined fontSize='small' />\n )}\n </IconButton>\n <IconButton\n size='small'\n onClick={() => onRatingChange?.(rating === 'down' ? null : 'down')}\n aria-label={labels.thumbDown ?? 'Thumbs down'}\n color={rating === 'down' ? 'primary' : undefined}\n >\n {rating === 'down' ? (\n <ThumbDown fontSize='small' />\n ) : (\n <ThumbDownOutlined fontSize='small' />\n )}\n </IconButton>\n </>\n )\n}\n","import { useMemo } from 'react'\nimport {\n Dialog,\n DialogTitle,\n DialogContent,\n IconButton,\n Box,\n} from '@mui/material'\nimport { Close } from '@mui/icons-material'\nimport { CopyButton } from '../../components/copy-button/copy-button'\nimport type { ChatToolFullViewDialogProps } from '../types'\nimport { styles } from './styles'\n\ninterface Token {\n type: 'key' | 'string' | 'number' | 'boolean' | 'null' | 'punctuation'\n value: string\n}\n\nconst NUMBER_START_REGEX = /^-?\\d/\n\nfunction tokenizeLine(line: string): (Token | string)[] {\n const tokens: (Token | string)[] = []\n let lastIndex = 0\n let match: RegExpExecArray | null\n\n // First, find all key positions by looking for \"...\": patterns\n const keyPositions = new Set<number>()\n const keyRegex = /(\"(?:[^\"\\\\]|\\\\.)*\")\\s*:/g\n let keyMatch: RegExpExecArray | null\n while ((keyMatch = keyRegex.exec(line)) !== null) {\n keyPositions.add(keyMatch.index)\n }\n\n const tokenRegex = // eslint-disable-next-line no-useless-escape\n /\"(?:[^\"\\\\]|\\\\.)*\"|\\b(?:true|false)\\b|\\bnull\\b|-?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?|[{}\\[\\]:,]/g\n\n while ((match = tokenRegex.exec(line)) !== null) {\n if (match.index > lastIndex) {\n tokens.push(line.slice(lastIndex, match.index))\n }\n const value = match[0]\n if (value.startsWith('\"')) {\n if (keyPositions.has(match.index)) {\n tokens.push({ type: 'key', value })\n } else {\n tokens.push({ type: 'string', value })\n }\n } else if (NUMBER_START_REGEX.test(value)) {\n tokens.push({ type: 'number', value })\n } else if (value === 'true' || value === 'false') {\n tokens.push({ type: 'boolean', value })\n } else if (value === 'null') {\n tokens.push({ type: 'null', value })\n } else {\n tokens.push({ type: 'punctuation', value })\n }\n lastIndex = match.index + value.length\n }\n\n if (lastIndex < line.length) {\n tokens.push(line.slice(lastIndex))\n }\n\n return tokens\n}\n\nexport function ChatToolFullViewDialog({\n open,\n onClose,\n title,\n content,\n}: ChatToolFullViewDialogProps) {\n const tokenizedLines = useMemo(\n () => content.split('\\n').map((line) => tokenizeLine(line)),\n [content],\n )\n\n return (\n <Dialog\n open={open}\n onClose={onClose}\n sx={styles.fullViewDialog}\n PaperProps={{ sx: styles.fullViewPaper }}\n fullScreen\n >\n <DialogTitle sx={styles.fullViewTitle}>\n {title}\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5 }}>\n <CopyButton copyText={content} aria-label='Copy content' />\n <IconButton onClick={onClose} aria-label='close'>\n <Close />\n </IconButton>\n </Box>\n </DialogTitle>\n <DialogContent sx={styles.fullViewDialogContent}>\n <Box component='pre' sx={styles.fullViewPre}>\n {tokenizedLines.map((tokens, i) => (\n <Box component='span' key={i} sx={styles.fullViewLine}>\n {tokens.map((token, j) =>\n typeof token === 'string' ? (\n token\n ) : (\n <Box\n component='span'\n key={j}\n sx={\n styles[`syntaxToken_${token.type}` as keyof typeof styles]\n }\n >\n {token.value}\n </Box>\n ),\n )}\n {'\\n'}\n </Box>\n ))}\n </Box>\n </DialogContent>\n </Dialog>\n )\n}\n","import { useRef, useState, useEffect, useCallback } from 'react'\nimport { Box, IconButton, Tooltip } from '@mui/material'\nimport type { ChatToolCodeAreaProps } from '../types'\nimport { CHAT_TOOL_CODE_AREA_MAX_HEIGHT } from '../const'\nimport { ChatToolFullViewDialog } from './chat-tool-full-view-dialog'\nimport { styles } from './styles'\nimport { OpenDiagonallyRight } from '@carto/meridian-ds/custom-icons'\n\nexport function ChatToolCodeArea({\n content,\n title = '',\n isError = false,\n labels = {},\n sx,\n}: ChatToolCodeAreaProps) {\n const preRef = useRef<HTMLPreElement>(null)\n const [isOverflowing, setIsOverflowing] = useState(false)\n const [dialogOpen, setDialogOpen] = useState(false)\n\n const checkOverflow = useCallback(() => {\n const el = preRef.current\n if (el) {\n setIsOverflowing(el.scrollHeight > el.clientHeight)\n }\n }, [])\n\n useEffect(() => {\n checkOverflow()\n const el = preRef.current\n if (!el) return\n\n const observer = new ResizeObserver(checkOverflow)\n observer.observe(el)\n return () => observer.disconnect()\n }, [checkOverflow, content])\n\n const fullViewLabel = labels.fullView ?? 'Full view'\n\n return (\n <Box sx={{ ...styles.codeArea, ...sx }}>\n <Box\n component='pre'\n ref={preRef}\n sx={{\n ...styles.codeAreaPre,\n maxHeight: CHAT_TOOL_CODE_AREA_MAX_HEIGHT,\n ...(isError ? styles.codeAreaPreError : {}),\n }}\n >\n {content}\n </Box>\n {isOverflowing && (\n <Tooltip title={fullViewLabel}>\n <IconButton\n size='small'\n onClick={() => setDialogOpen(true)}\n sx={styles.codeAreaFullViewButton}\n >\n <OpenDiagonallyRight />\n </IconButton>\n </Tooltip>\n )}\n <ChatToolFullViewDialog\n open={dialogOpen}\n onClose={() => setDialogOpen(false)}\n title={title}\n content={content}\n />\n </Box>\n )\n}\n","import type { ChatToolItem } from '../types'\n\nfunction capitalize(str: string): string {\n const spaced = str.replace(/_/g, ' ')\n return spaced.charAt(0).toUpperCase() + spaced.slice(1)\n}\n\nexport function getToolLabel(tool: ChatToolItem): string {\n if (tool.status === 'running') {\n return tool.runningLabel ?? capitalize(tool.name)\n }\n return tool.label ?? capitalize(tool.name)\n}\n","import {\n Box,\n CircularProgress,\n Typography,\n Collapse,\n Button,\n} from '@mui/material'\nimport { ArrowRight, CheckCircle, Error } from '@mui/icons-material'\nimport type { ChatToolTraceProps } from '../types'\nimport { ChatToolCodeArea } from './chat-tool-code-area'\nimport { styles } from './styles'\nimport { ChatThinking } from './chat-thinking'\nimport { getToolLabel } from './get-tool-label'\nimport { McpTool } from '@carto/meridian-ds/custom-icons'\n\nfunction TraceStatusIndicator({\n status,\n labels,\n}: {\n status: string\n labels: ChatToolTraceProps['labels']\n}) {\n switch (status) {\n case 'complete':\n return (\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5 }}>\n <CheckCircle sx={{ fontSize: 12 }} color='success' />\n <Typography variant='caption'>\n {labels?.success ?? 'Success'}\n </Typography>\n </Box>\n )\n case 'error':\n return (\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5 }}>\n <Error sx={{ fontSize: 12 }} color='error' />\n <Typography variant='code3'>{labels?.error ?? 'Error'}</Typography>\n </Box>\n )\n case 'running':\n return <CircularProgress size={14} />\n default:\n return null\n }\n}\n\nexport function ChatToolTraceDetails({\n tool,\n labels = {},\n}: Pick<ChatToolTraceProps, 'tool' | 'labels'>) {\n const isError = tool.status === 'error'\n const toolExecutedLabel = labels.toolExecuted ?? 'Tool executed'\n const referenceLabel = labels.reference ?? 'Reference:'\n const durationLabel = labels.duration ?? 'Duration:'\n const statusLabel = labels.status ?? 'Status:'\n const inputArgumentsLabel = labels.inputArguments ?? 'Input arguments:'\n const outputLabel = labels.output ?? 'Output:'\n\n return (\n <Box>\n {tool.reference && (\n <Box sx={styles.traceField}>\n <Typography\n variant='code3'\n fontWeight={600}\n color='text.secondary'\n sx={styles.traceFieldLabel}\n >\n {referenceLabel}\n </Typography>\n <Box sx={styles.traceReference}>\n <McpTool color='success' />\n <Typography variant='code3' fontWeight={600}>\n {tool.reference}\n </Typography>\n </Box>\n </Box>\n )}\n\n {tool.duration != null && (\n <Box sx={styles.traceField}>\n <Typography\n variant='code3'\n fontWeight={600}\n color='text.secondary'\n sx={styles.traceFieldLabel}\n >\n {durationLabel}\n </Typography>\n <Typography variant='code3'>{tool.duration}s</Typography>\n </Box>\n )}\n\n <Box sx={styles.traceField}>\n <Typography\n variant='code3'\n fontWeight={600}\n color='text.secondary'\n sx={styles.traceFieldLabel}\n >\n {statusLabel}\n </Typography>\n <TraceStatusIndicator status={tool.status} labels={labels} />\n </Box>\n\n {tool.inputArguments && (\n <Box>\n <Typography\n variant='code3'\n fontWeight={600}\n color='text.secondary'\n sx={styles.traceField}\n >\n {inputArgumentsLabel}\n </Typography>\n <ChatToolCodeArea\n sx={{ mt: 0.5, mb: tool.output ? 1.5 : 0 }}\n content={tool.inputArguments}\n title={`${toolExecutedLabel}: ${inputArgumentsLabel}`}\n isError={isError}\n />\n </Box>\n )}\n\n {tool.output && (\n <Box>\n <Typography\n variant='code3'\n fontWeight={600}\n color='text.secondary'\n sx={styles.traceField}\n >\n {outputLabel}\n </Typography>\n <ChatToolCodeArea\n sx={{ mt: 0.5 }}\n content={tool.output}\n title={`${toolExecutedLabel}: ${outputLabel}`}\n isError={isError}\n />\n </Box>\n )}\n </Box>\n )\n}\n\nexport function ChatToolTrace({\n tool,\n expanded,\n onExpandedChange,\n labels = {},\n sx,\n}: ChatToolTraceProps) {\n const isRunning = tool.status === 'running'\n const toolExecutedLabel = labels.toolExecuted ?? 'Tool executed'\n\n if (isRunning) {\n return <ChatThinking>{getToolLabel(tool)}</ChatThinking>\n }\n\n return (\n <Box\n width='100%'\n sx={sx}\n data-tool={tool.name}\n className={`PsChat--tool-trace`}\n >\n <Button\n size='small'\n variant='text'\n onClick={() => onExpandedChange?.(!expanded)}\n aria-expanded={expanded}\n sx={styles.traceHeader}\n >\n <Typography variant='caption' fontWeight={600} color='text.secondary'>\n {toolExecutedLabel}\n </Typography>\n <ArrowRight\n sx={{\n ...styles.traceChevron,\n transform: expanded ? 'rotate(90deg)' : 'rotate(0deg)',\n }}\n />\n </Button>\n <Collapse in={expanded} unmountOnExit>\n <Box sx={styles.traceDetailsWrapper}>\n <ChatToolTraceDetails tool={tool} labels={labels} />\n </Box>\n </Collapse>\n </Box>\n )\n}\n","import { Box, Button, Collapse, Typography } from '@mui/material'\nimport { ArrowRight, ChevronRight, ErrorOutline } from '@mui/icons-material'\nimport type { ChatToolGroupProps } from '../types'\nimport { ChatToolTrace, ChatToolTraceDetails } from './chat-tool-trace'\nimport { styles } from './styles'\nimport { getToolLabel } from './get-tool-label'\nimport { useState } from 'react'\n\nfunction useController<T>(value: T, setter?: (value: T) => void) {\n const [_value, _setter] = useState<T>(value)\n if (setter) {\n return [value, setter] as const\n } else {\n return [_value, _setter] as const\n }\n}\n\nexport function ChatToolGroup({\n tools,\n expanded: _expanded = false,\n onExpandedChange: _setExpanded,\n expandedTools: _expandedTools = {},\n onToolExpandedChange: _setExpandedTools,\n labels = {},\n sx,\n}: ChatToolGroupProps) {\n const [expanded, setExpanded] = useController(_expanded, _setExpanded)\n const [expandedTools, setExpandedTools] = useController(\n _expandedTools,\n _setExpandedTools,\n )\n\n const numErrors = tools.filter((t) => t.status === 'error').length\n const runningTools = tools.filter((t) => t.status === 'running')\n const nonRunningTools = tools.filter((t) => t.status !== 'running')\n const toolsUsedLabel = labels.toolsUsed ?? 'tools used'\n const errorLabel = labels.error ?? 'Error'\n\n if (tools.length === 1) {\n return (\n <ChatToolTrace\n tool={tools[0]!}\n expanded={expanded}\n onExpandedChange={setExpanded}\n labels={labels}\n sx={sx}\n />\n )\n }\n\n return (\n <Box width='100%' sx={sx} className='PsChat--tool-group'>\n <Button\n size='small'\n variant='text'\n onClick={() => setExpanded(!expanded)}\n aria-expanded={expanded}\n sx={{\n ...styles.traceHeader,\n pr: numErrors > 0 ? 0.5 : 0,\n }}\n >\n <Typography variant='caption' fontWeight={600} color='text.secondary'>\n {tools.length} {toolsUsedLabel}\n </Typography>\n <ArrowRight\n sx={{\n ...styles.traceChevron,\n transform: expanded ? 'rotate(90deg)' : 'rotate(0deg)',\n }}\n />\n {numErrors > 0 && (\n <Typography variant='code3' sx={styles.errorBadge}>\n {numErrors}\n <ErrorOutline sx={{ fontSize: 12 }} color='error' />\n </Typography>\n )}\n </Button>\n <Collapse in={expanded} unmountOnExit>\n <Box\n component='ul'\n sx={{\n ...styles.traceDetailsWrapper,\n p: 0,\n listStyle: 'none',\n }}\n >\n {nonRunningTools.map((tool) => {\n const isExpanded = expandedTools[tool.id] ?? false\n return (\n <Box\n key={tool.id}\n component='li'\n sx={styles.groupListItem}\n aria-expanded={isExpanded}\n >\n <Button\n variant='text'\n color='inherit'\n fullWidth\n onClick={() =>\n setExpandedTools({\n ...expandedTools,\n [tool.id]: !isExpanded,\n })\n }\n aria-expanded={isExpanded}\n sx={styles.groupHeader}\n >\n <Typography\n flexGrow={1}\n flexShrink={0}\n variant='caption'\n color='text.secondary'\n >\n {getToolLabel(tool)}\n </Typography>\n {tool.status === 'error' && (\n <Typography variant='code3' color='error.main'>\n {errorLabel}\n </Typography>\n )}\n <ChevronRight\n sx={{\n ...styles.traceChevron,\n transform: isExpanded ? 'rotate(90deg)' : 'rotate(0deg)',\n }}\n />\n </Button>\n <Collapse in={isExpanded} unmountOnExit>\n <Box px={1.5} py={1}>\n <ChatToolTraceDetails tool={tool} labels={labels} />\n </Box>\n </Collapse>\n </Box>\n )\n })}\n </Box>\n </Collapse>\n {runningTools.map((tool) => (\n <ChatToolTrace\n key={tool.id}\n tool={tool}\n labels={labels}\n expanded={expandedTools[tool.id]}\n onExpandedChange={() =>\n setExpandedTools({\n ...expandedTools,\n [tool.id]: !expandedTools[tool.id],\n })\n }\n />\n ))}\n </Box>\n )\n}\n"],"names":["CHAT_MAX_WIDTH","CHAT_SCROLL_DELAY","CHAT_DIVIDER_DELAY","CHAT_TOOL_CODE_AREA_MAX_HEIGHT","useTypewriter","fullText","t0","$","_c","t1","undefined","options","speed","t2","skipAnimation","t3","t4","length","charIndex","setCharIndex","useState","charRef","useRef","t5","t6","current","msPerChar","rafId","lastTime","tick","timestamp","charsToAdd","Math","floor","next","min","requestAnimationFrame","cancelAnimationFrame","useEffect","t7","slice","t8","t9","displayedText","isTyping","ChatMessageOverflow","styled","Typography","whiteSpace","overflowX","overflowWrap","maxWidth","displayName","styles","agentMessageContainer","theme","typography","body2","width","display","flexDirection","alignItems","gap","spacing","paddingRight","marginTop","alignSelf","borderCollapse","margin","fontSize","border","palette","divider","padding","textAlign","backgroundColor","action","hover","fontWeight","listStyle","paddingLeft","marginRight","textDecoration","opacity","userMessageContainer","borderRadius","userMessage","background","paper","color","text","primary","muted","disabled","userMessageTop","marginBottom","errorMessage","flexWrap","errorActions","errorAction","errorActionSeparator","mr","black","suggestionButton","transition","justifyContent","minWidth","height","secondary","borderColor","hint","ChatUserMessage","children","topContext","sx","jsx","Box","InnerBox","className","props","StyledAgentMessage","ChatAgentMessage","forwardRef","ref","MarkdownContent","lazy","then","m","default","ChatAgentMessageMarkdown","Suspense","ChatErrorMessage","errors","icon","actions","ErrorOutline","map","_temp","_temp2","jsxs","index_0","index","Link","onClick","label","error","ChatSuggestionButton","Symbol","for","ArrowUpward","ButtonBase","shimmer","keyframes","breatheOuter","breatheInner","thinking","minHeight","backgroundSize","backgroundClip","WebkitBackgroundClip","WebkitTextFillColor","animation","animationDuration","loader","position","p","loaderOuterCircle","inset","loaderInnerCircle","traceHeader","traceChevron","traceDetailsWrapper","traceField","traceFieldLabel","flexShrink","traceReference","success","relatedLight","dark","traceStatusSuccess","main","traceStatusError","codeArea","codeAreaPre","fontFamily","code3","code1","lineHeight","wordBreak","overflowY","codeAreaPreError","borderLeft","codeAreaFullViewButton","top","right","fullViewDialog","fullViewPaper","fullViewTitle","borderBottom","borderBottomColor","fullViewDialogContent","paddingTop","fullViewPre","counterReset","fullViewLine","counterIncrement","content","userSelect","groupHeader","errorBadge","syntaxToken_key","syntaxToken_string","syntaxToken_number","syntaxToken_boolean","syntaxToken_null","syntaxToken_punctuation","groupListItem","borderBottomWidth","ChatThinking","duration","durSeconds","ChatLoader","size","labels","loading","t10","t11","t12","header","headerTitle","flexGrow","px","headerActions","marginLeft","footerWrapper","footerBox","gridTemplateColumns","columnGap","paddingInline","footerMain","footerSend","paddingBottom","footerInput","letterSpacing","resize","footerSlots","modelSelector","textTransform","modelSelectorLabel","overflow","textOverflow","footerCaption","flex","mx","maxHeight","pt","pb","borderTopWidth","borderTopStyle","borderBottomStyle","sentinel","jumpToLatestWrapper","bottom","zIndex","jumpToLatest","starter","starterItems","starterItemsTwoCol","AUTO_SCROLL_THRESHOLD","ChatContent","autoScroll","scrollRef","topSentinelRef","bottomSentinelRef","isAtTop","setIsAtTop","isAtBottom","setIsAtBottom","scrollTo","scrollHeight","behavior","scrollToBottom","scrollToTop","useImperativeHandle","root","topEl","bottomEl","topObserver","IntersectionObserver","entry","isIntersecting","bottomObserver","entry_0","observe","disconnect","root_0","prevScrollHeight","check","newScrollHeight","growth","scrollTop","clientHeight","mo","MutationObserver","childList","subtree","characterData","t13","t14","palette_0","borderTopColor","t15","t16","t17","t18","t19","t20","pointerEvents","t21","KeyboardArrowDown","t22","Fab","t23","ChatHeader","leftSlot","title","rightSlot","onClose","IconButton","Close","DEFAULT_CAPTION","ChatFooter","value","onChange","onSend","onStop","isGenerating","placeholder","caption","models","selectedModel","onModelChange","startToolbarSlot","endToolbarSlot","modelAnchor","setModelAnchor","trim","canSend","showModelSelector","modelLabel","model","find","selectedLabel","hasSlots","Boolean","e","key","shiftKey","preventDefault","handleKeyDown","send","stop","StopCircleOutlined","ArrowUpwardOutlined","sendButton","e_0","target","InputBase","Fragment","Button","e_1","currentTarget","Menu","vertical","horizontal","m_0","MenuItem","FormHelperText","FormControl","DEFAULT_PALETTE","ChatStarter","description","items","onSelect","T0","T1","fullItems","item_0","i","item","ChatActionsContainer","ChatRatingAction","rating","onRatingChange","thumbUp","ThumbUp","ThumbUpOutlined","thumbDown","ThumbDown","ThumbDownOutlined","NUMBER_START_REGEX","tokenizeLine","line","tokens","lastIndex","match","keyPositions","Set","keyRegex","keyMatch","exec","add","tokenRegex","push","startsWith","has","type","test","ChatToolFullViewDialog","open","split","tokenizedLines","CopyButton","DialogTitle","_temp3","DialogContent","Dialog","token","j","ChatToolCodeArea","isError","preRef","isOverflowing","setIsOverflowing","dialogOpen","setDialogOpen","el","checkOverflow","el_0","observer","ResizeObserver","fullViewLabel","fullView","Tooltip","OpenDiagonallyRight","capitalize","str","spaced","replace","charAt","toUpperCase","getToolLabel","tool","status","runningLabel","name","TraceStatusIndicator","CheckCircle","Error","CircularProgress","ChatToolTraceDetails","toolExecutedLabel","toolExecuted","referenceLabel","reference","durationLabel","statusLabel","inputArgumentsLabel","inputArguments","outputLabel","output","McpTool","mt","mb","ChatToolTrace","expanded","onExpandedChange","isRunning","ArrowRight","transform","Collapse","useController","setter","_value","_setter","ChatToolGroup","tools","_setExpanded","expandedTools","onToolExpandedChange","_setExpandedTools","_expanded","_expandedTools","setExpanded","setExpandedTools","filter","numErrors","bb0","runningTools","nonRunningTools","toolsUsedLabel","toolsUsed","errorLabel","pr","isExpanded","id","ChevronRight","t24","t25","tool_0","t_1","t","t_0"],"mappings":";;;;;;;;AAAO,MAAMA,KAAiB,KACjBC,KAAoB,KACpBC,KAAqB,KACrBC,KAAiC;AC+BvC,SAAAC,GAAAC,GAAAC,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA;AAAA,MAAAC;AAAA,EAAAF,SAAAD,KAELG,IAAAH,MAAAI,SAAA,CAAA,IAAAJ,GAAkCC,OAAAD,GAAAC,OAAAE,KAAAA,IAAAF,EAAA,CAAA;AAAlC,QAAAI,IAAAF,GAEA;AAAA,IAAAG,OAAAC;AAAAA,IAAAC,eAAAC;AAAAA,EAAAA,IAA+CJ,GAAvCC,IAAAC,MAAAH,SAAA,MAAAG,GAAaC,IAAAC,MAAAL,SAAA,KAAAK;AAAqB,MAAAC;AAAA,EAAAT,EAAA,CAAA,MAAAF,KAAAE,SAAAO,KAECE,IAAAA,MACzCF,IAAgBT,EAAQY,SAAxB,GAAmCV,OAAAF,GAAAE,OAAAO,GAAAP,OAAAS,KAAAA,IAAAT,EAAA,CAAA;AADrC,QAAA,CAAAW,GAAAC,CAAA,IAAkCC,GAASJ,CAE3C,GAQAK,IAAgBC,GAAOJ,CAAS;AAAC,MAAAK,GAAAC;AAAA,EAAAjB,EAAA,CAAA,MAAAF,KAAAE,SAAAO,KAAAP,EAAA,CAAA,MAAAK,KAEvBW,IAAAA,MAAA;AAQR,QAHIT,KAGAO,EAAOI,WAAYpB,EAAQY;AAAO;AAEtC,UAAAS,IAAkB,MAAOd;AACrBe,QAAAA,GACJC,IAA8B;AAE9B,aAAAC,EAAAC,GAAA;AAGEF,MAAAA,IAAWA,KAAAA;AACX,YAAAG,IAAmBC,KAAIC,OAAQH,IAAYF,KAAYF,CAAS;AAChE,UAAIK,IAAa,GAAC;AAChBH,QAAAA,IAAWE;AACX,cAAAI,IAAaF,KAAIG,IAAKd,EAAOI,UAAWM,GAAY1B,EAAQY,MAAO;AAGnE,YAFAI,EAAOI,UAAWS,GAClBf,EAAae,CAAI,GACbA,KAAQ7B,EAAQY;AAAO;AAAA,MAAQ;AAErCU,MAAAA,IAAQS,sBAAsBP,CAAI;AAAA,IAA7B;AAGPF,WAAAA,IAAQS,sBAAsBP,CAAI,GAC3B,MAAMQ,qBAAqBV,CAAK;AAAA,EAAC,GACvCH,KAACnB,GAAUO,GAAOE,CAAa,GAACP,OAAAF,GAAAE,OAAAO,GAAAP,OAAAK,GAAAL,OAAAgB,GAAAhB,OAAAiB,MAAAD,IAAAhB,EAAA,CAAA,GAAAiB,IAAAjB,EAAA,CAAA,IA/BnC+B,GAAUf,GA+BPC,CAAgC;AAAC,MAAAe;AAAA,EAAAhC,EAAA,EAAA,MAAAW,KAAAX,UAAAF,KAAAE,EAAA,EAAA,MAAAO,KAGnByB,IAAAzB,IAAAT,IAA2BA,EAAQmC,MAAO,GAAGtB,CAAS,GAACX,QAAAW,GAAAX,QAAAF,GAAAE,QAAAO,GAAAP,QAAAgC,KAAAA,IAAAhC,EAAA,EAAA;AAC5D,QAAAkC,KAAC3B,KAAiBI,IAAYb,EAAQY;AAAO,MAAAyB;AAAA,SAAAnC,EAAA,EAAA,MAAAgC,KAAAhC,UAAAkC,KAFlDC,IAAA;AAAA,IAAAC,eACUJ;AAAAA,IAAuDK,UAC5DH;AAAAA,EAAAA,GACXlC,QAAAgC,GAAAhC,QAAAkC,GAAAlC,QAAAmC,KAAAA,IAAAnC,EAAA,EAAA,GAHMmC;AAGN;ACtFI,MAAMG,KAAsBC,GAAOC,CAAU,EAAE,OAAO;AAAA,EAC3DC,YAAY;AAAA,EACZC,WAAW;AAAA,EACXC,cAAc;AAAA,EACdC,UAAU;AACZ,EAAE;AACFN,GAAoBO,cAAc;AAE3B,MAAMC,KAAS;AAAA,EACpBC,uBAAuBA,CAACC,OAAkB;AAAA,IACxC,GAAGA,EAAMC,WAAWC;AAAAA,IACpBC,OAAO;AAAA,IACPC,SAAS;AAAA,IACTC,eAAe;AAAA,IACfC,YAAY;AAAA;AAAA;AAAA,IAGZC,KAAKP,EAAMQ,QAAQ,CAAC;AAAA,IACpBC,cAAcT,EAAMQ,QAAQ,CAAC;AAAA,IAC7B,8BAA8B;AAAA,MAC5BE,WAAWV,EAAMQ,QAAQ,CAAC;AAAA,IAAA;AAAA,IAE5B,6BAA6B;AAAA,MAC3BE,WAAWV,EAAMQ,QAAQ,CAAC;AAAA,IAAA;AAAA,IAE5B,uBAAuB;AAAA,MACrBE,WAAW;AAAA,IAAA;AAAA,IAEb,WAAW;AAAA,MACTC,WAAW;AAAA,MACXP,SAAS;AAAA,MACTV,WAAW;AAAA,MACXE,UAAU;AAAA,MACVgB,gBAAgB;AAAA,MAChBC,QAAQb,EAAMQ,QAAQ,GAAG,CAAC;AAAA,MAC1BM,UAAU;AAAA,IAAA;AAAA,IAEZ,cAAc;AAAA,MACZC,QAAQ,aAAaf,EAAMgB,QAAQC,OAAO;AAAA,MAC1CC,SAASlB,EAAMQ,QAAQ,KAAK,CAAC;AAAA,MAC7BW,WAAW;AAAA,IAAA;AAAA,IAEb,QAAQ;AAAA,MACNC,iBAAiBpB,EAAMgB,QAAQK,OAAOC;AAAAA,MACtCC,YAAY;AAAA,IAAA;AAAA,IAEd,6BAA6B;AAAA,MAC3BH,iBAAiBpB,EAAMgB,QAAQK,OAAOC;AAAAA,IAAAA;AAAAA,IAExC,2BAA2B;AAAA,MACzBE,WAAW;AAAA,MACXC,aAAa;AAAA,IAAA;AAAA,IAEf,4CAA4C;AAAA,MAC1CC,aAAa1B,EAAMQ,QAAQ,GAAG;AAAA,IAAA;AAAA,IAEhC,SAAS;AAAA,MACPmB,gBAAgB;AAAA,MAChBC,SAAS;AAAA,IAAA;AAAA,IAEX,kBAAkB;AAAA,MAChBf,QAAQb,EAAMQ,QAAQ,GAAG,CAAC;AAAA,MAC1BiB,aAAazB,EAAMQ,QAAQ,CAAC;AAAA,MAC5B,eAAe;AAAA,QACbE,WAAWV,EAAMQ,QAAQ,CAAC;AAAA,MAAA;AAAA,IAC5B;AAAA,EACF;AAAA,EAEFqB,sBAAsB;AAAA,IACpB1B,OAAO;AAAA,IACPC,SAAS;AAAA,IACTC,eAAe;AAAA,IACfC,YAAY;AAAA,IACZmB,aAAaA,CAAC;AAAA,MAAEjB,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,CAAC;AAAA,IACvC,gEAAgE;AAAA,MAC9DsB,cAAcA,CAAC;AAAA,QAAEtB,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ,CAAC;AAAA,IAAA;AAAA,IAE1C,6BAA6B;AAAA,MAC3BE,WAAWA,CAAC;AAAA,QAAEF,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ,GAAG;AAAA,IAAA;AAAA,IAEzC,8BAA8B;AAAA,MAC5BE,WAAWA,CAAC;AAAA,QAAEF,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ,CAAC;AAAA,IAAA;AAAA,EACvC;AAAA,EAEFuB,aAAa;AAAA,IACXb,SAASA,CAAC;AAAA,MAAEV,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,MAAM,GAAG;AAAA,IAC3CsB,cAAcA,CAAC;AAAA,MAAEtB,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,GAAG,GAAG,MAAM,CAAC;AAAA,IACpDO,QAAQA,CAAC;AAAA,MAAEC,SAAAA;AAAAA,IAAAA,MAAc,aAAaA,EAAQC,OAAO;AAAA,IACrDG,iBAAiBA,CAAC;AAAA,MAAEJ,SAAAA;AAAAA,IAAAA,MAAcA,EAAQgB,WAAWC;AAAAA,IACrDC,OAAOA,CAAC;AAAA,MAAElB,SAAAA;AAAAA,IAAAA,MAAcA,EAAQmB,KAAKC;AAAAA,IACrCjC,OAAO;AAAA,EAAA;AAAA,EAETkC,OAAO;AAAA,IACLH,OAAOA,CAAC;AAAA,MAAElB,SAAAA;AAAAA,IAAAA,MAAcA,EAAQmB,KAAKG;AAAAA,EAAAA;AAAAA,EAEvCC,gBAAgB;AAAA,IACdpB,WAAW;AAAA,IACXqB,cAAcA,CAAC;AAAA,MAAEhC,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,GAAG;AAAA,EAAA;AAAA,EAE5CiC,cAAc;AAAA,IACZrC,SAAS;AAAA,IACTE,YAAY;AAAA,IACZoC,UAAU;AAAA,IACVnC,KAAKA,CAAC;AAAA,MAAEC,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,CAAC;AAAA,EAAA;AAAA,EAEjCmC,cAAc;AAAA,IACZvC,SAAS;AAAA,IACTE,YAAY;AAAA,IACZC,KAAKA,CAAC;AAAA,MAAEC,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,GAAG;AAAA,EAAA;AAAA,EAEnCoC,aAAa;AAAA,IACXV,OAAOA,CAAC;AAAA,MAAElB,SAAAA;AAAAA,IAAAA,MAAcA,EAAQmB,KAAKC;AAAAA,EAAAA;AAAAA,EAEvCS,sBAAsB;AAAA,IACpBC,IAAI;AAAA,IACJZ,OAAOA,CAAC;AAAA,MAAElB,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ+B,MAAM,EAAE;AAAA,IACxCxB,YAAY;AAAA,EAAA;AAAA,EAEdyB,kBAAkB;AAAA,IAChBC,YAAY;AAAA,IACZ9C,OAAO;AAAA,IACPG,YAAY;AAAA,IACZ4C,gBAAgB;AAAA,IAChB/B,WAAW;AAAA,IACXZ,KAAKA,CAAC;AAAA,MAAEC,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,CAAC;AAAA,IAC/BU,SAASA,CAAC;AAAA,MAAEV,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,MAAM,GAAG;AAAA,IAC3CsB,cAAcA,CAAC;AAAA,MAAEtB,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,CAAC;AAAA,IACxCO,QAAQA,CAAC;AAAA,MAAEC,SAAAA;AAAAA,IAAAA,MAAc,aAAaA,EAAQC,OAAO;AAAA,IACrD,sBAAsB;AAAA,MACpBgC,YAAY;AAAA,MACZf,OAAO;AAAA,MACPpB,UAAUA,CAAC;AAAA,QAAEN,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ,GAAG;AAAA,MACtCL,OAAOA,CAAC;AAAA,QAAEK,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ,GAAG;AAAA,MACnC2C,UAAUA,CAAC;AAAA,QAAE3C,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ,GAAG;AAAA,MACtC4C,QAAQA,CAAC;AAAA,QAAE5C,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ,GAAG;AAAA,IAAA;AAAA,IAEtC,yCAAyC;AAAA,MACvC0B,OAAOA,CAAC;AAAA,QAAElB,SAAAA;AAAAA,MAAAA,MAAcA,EAAQmB,KAAKkB;AAAAA,IAAAA;AAAAA,IAEvC,WAAW;AAAA,MACTC,aAAaA,CAAC;AAAA,QAAEtC,SAAAA;AAAAA,MAAAA,MAAcA,EAAQmB,KAAKoB;AAAAA,MAC3C,sBAAsB;AAAA,QACpBrB,OAAOA,CAAC;AAAA,UAAElB,SAAAA;AAAAA,QAAAA,MAAcA,EAAQmB,KAAKC;AAAAA,MAAAA;AAAAA,IACvC;AAAA,IAEF,kBAAkB;AAAA,MAChBF,OAAOA,CAAC;AAAA,QAAElB,SAAAA;AAAAA,MAAAA,MAAcA,EAAQmB,KAAKG;AAAAA,IAAAA;AAAAA,EACvC;AAEJ;ACnJO,SAAAkB,GAAAzG,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA,GAAyB;AAAA,IAAAwG,UAAAA;AAAAA,IAAApB,OAAAnF;AAAAA,IAAAwG,YAAAA;AAAAA,IAAAC,IAAAA;AAAAA,EAAAA,IAAA5G,GAE9BsF,IAAAnF,MAAAC,SAAA,KAAAD;AAAa,MAAAI;AAAA,EAAAN,SAAA0G,KAMRpG,IAAAoG,KAAc,gBAAAE,EAACC,GAAA,EAAQ,IAAA/D,GAAMyC,6BAA6B,GAAMvF,OAAA0G,GAAA1G,OAAAM,KAAAA,IAAAN,EAAA,CAAA;AAMzD,QAAAQ,IAAA6E,IAAQvC,GAAMuC,QAAdlF;AAAgC,MAAAM;AAAA,EAAAT,EAAA,CAAA,MAAA2G,KAAA3G,SAAAQ,KAFlCC,IAAA;AAAA,IAAA,GACCqC,GAAMiC;AAAAA,IAAY,GACjBvE;AAAAA,IAAgC,GACjCmG;AAAAA,EAAAA,GACJ3G,OAAA2G,GAAA3G,OAAAQ,GAAAR,OAAAS,KAAAA,IAAAT,EAAA,CAAA;AAAA,MAAAgB;AAAA,EAAAhB,EAAA,CAAA,MAAAyG,KAAAzG,SAAAS,KAPHO,IAAA,gBAAA4F,EAACtE,MACW,WAAA,8BACF,SAAA,SACJ,IAAA7B,GAMHgG,UAAAA,EAAAA,CACH,GAAsBzG,OAAAyG,GAAAzG,OAAAS,GAAAT,OAAAgB,KAAAA,IAAAhB,EAAA,CAAA;AAAA,MAAAiB;AAAA,SAAAjB,EAAA,CAAA,MAAAM,KAAAN,SAAAgB,KAZxBC,sBAAC4F,GAAA,EAAc,WAAA,wBAA2B,IAAA/D,GAAM+B,sBAC7CvE,UAAAA;AAAAA,IAAAA;AAAAA,IACDU;AAAAA,EAAAA,GAWF,GAAMhB,OAAAM,GAAAN,OAAAgB,GAAAhB,QAAAiB,KAAAA,IAAAjB,EAAA,EAAA,GAbNiB;AAaM;ACnBV,MAAM6F,KAAW/G,CAAAA,MAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA;AAAA,MAAA8G,GAAAC;AAAA,EAAAhH,SAAAD,KAAC;AAAA,IAAAgH,WAAAA;AAAAA,IAAA,GAAAC;AAAAA,EAAAA,IAAAjH,GAAiCC,OAAAD,GAAAC,OAAA+G,GAAA/G,OAAAgH,MAAAD,IAAA/G,EAAA,CAAA,GAAAgH,IAAAhH,EAAA,CAAA;AACjC,QAAAE,IAAA,yBAAyB6G,KAAA,EAAe;AAAE,MAAAzG;AAAA,SAAAN,EAAA,CAAA,MAAAgH,KAAAhH,SAAAE,KAA1DI,IAAA,gBAAAsG,EAACC,GAAA,EAAe,WAAA3G,GAA0C,GAAM8G,GAAK,GAAIhH,OAAAgH,GAAAhH,OAAAE,GAAAF,OAAAM,KAAAA,IAAAN,EAAA,CAAA,GAAzEM;AAAyE,GAGrE2G,KAAqB1E,GAAOuE,EAAQ,EAAE,CAAC;AAAA,EAAE9D,OAAAA;AAAM,MACnDF,GAAOC,sBAAsBC,CAAK,CACpC,GASakE,KAAmBC,GAG9B,SAAApH,GAAAqH,GAAA;AAAA,QAAApH,IAAAC,EAAA,CAAA;AAAA,MAAAwG,GAAAO;AAAA,EAAAhH,SAAAD,KAA0B;AAAA,IAAA0G,UAAAA;AAAAA,IAAA,GAAAO;AAAAA,EAAAA,IAAAjH,GAAsBC,OAAAD,GAAAC,OAAAyG,GAAAzG,OAAAgH,MAAAP,IAAAzG,EAAA,CAAA,GAAAgH,IAAAhH,EAAA,CAAA;AAAA,MAAAE;AAAA,SAAAF,EAAA,CAAA,MAAAyG,KAAAzG,SAAAgH,KAAAhH,EAAA,CAAA,MAAAoH,KAE9ClH,IAAA,gBAAA0G,EAACK,IAAA,EAAwBG,KAAAA,GAAG,GAAMJ,GAC/BP,UAAAA,GACH,GAAqBzG,OAAAyG,GAAAzG,OAAAgH,GAAAhH,OAAAoH,GAAApH,OAAAE,KAAAA,IAAAF,EAAA,CAAA,GAFrBE;AAEqB,CAExB;AACDgH,GAAiBrE,cAAc;ACtB/B,MAAMwE,KAAkBC,GAAK,MAC3B,OAAO,gCAA4C,EAAEC,KAAMC,CAAAA,OAAO;AAAA,EAChEC,SAASD,EAAEH;AACb,EAAE,CACJ;AASO,SAAAK,GAAA3H,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA;AAAA,MAAAwG,GAAAO;AAAA,EAAAhH,SAAAD,KAAkC;AAAA,IAAA0G,UAAAA;AAAAA,IAAA,GAAAO;AAAAA,EAAAA,IAAAjH,GAGTC,OAAAD,GAAAC,OAAAyG,GAAAzG,OAAAgH,MAAAP,IAAAzG,EAAA,CAAA,GAAAgH,IAAAhH,EAAA,CAAA;AAAA,MAAAE;AAAA,EAAAF,SAAAyG,KAIxBvG,IAAA,gBAAA0G,EAACS,IAAA,EAAyBZ,SAAAA,GAAU,KAAA,IAAG,GAAGzG,OAAAyG,GAAAzG,OAAAE,KAAAA,IAAAF,EAAA,CAAA;AAAA,MAAAM;AAAA,EAAAN,EAAA,CAAA,MAAAyG,KAAAzG,SAAAE,KAD5CI,IAAA,gBAAAsG,EAACe,IAAA,EAAmBlB,UAAAA,GAClBvG,UAAAA,GACF,GAAWF,OAAAyG,GAAAzG,OAAAE,GAAAF,OAAAM,KAAAA,IAAAN,EAAA,CAAA;AAAA,MAAAQ;AAAA,SAAAR,EAAA,CAAA,MAAAgH,KAAAhH,SAAAM,KAHbE,IAAA,gBAAAoG,EAACM,IAAA,EAAgB,GAAKF,GACpB1G,UAAAA,GAGF,GAAmBN,OAAAgH,GAAAhH,OAAAM,GAAAN,QAAAQ,KAAAA,IAAAR,EAAA,EAAA,GAJnBQ;AAImB;AAGvBkH,GAAyB7E,cAAc;AC5BhC,SAAA+E,GAAA7H,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA,GAA0B;AAAA,IAAA4H,QAAAA;AAAAA,IAAAC,MAAAA;AAAAA,IAAAC,SAAAA;AAAAA,IAAApB,IAAAA;AAAAA,EAAAA,IAAA5G;AAKT,MAAAG;AAAA,EAAAF,SAAA2G,KAEXzG,IAAA;AAAA,IAAA,GAAK4C,GAAM2C;AAAAA,IAAa,GAAKkB;AAAAA,EAAAA,GAAI3G,OAAA2G,GAAA3G,OAAAE,KAAAA,IAAAF,EAAA,CAAA;AAAA,MAAAM;AAAA,EAAAN,SAAA8H,KACvCxH,IAAAwH,KAAQ,gBAAAlB,EAACoB,IAAA,EAAsB,UAAA,UAAe,OAAA,SAAO,GAAGhI,OAAA8H,GAAA9H,OAAAM,KAAAA,IAAAN,EAAA,CAAA;AAAA,MAAAQ;AAAA,EAAAR,SAAA6H,KACxDrH,IAAAqH,EAAMI,IAAKC,EAIX,GAAClI,OAAA6H,GAAA7H,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAA,MAAAS;AAAA,EAAAT,SAAA+H,KACDtH,IAAAsH,GAAOrH,SACN,gBAAAkG,EAACC,GAAA,EAAQ,IAAA/D,GAAM6C,cACXoC,WAAAA,KAAA,CAAA,GAAaE,IAAME,EAoBpB,GACH,IAvBD,MAwBOnI,OAAA+H,GAAA/H,OAAAS,KAAAA,IAAAT,EAAA,CAAA;AAAA,MAAAgB;AAAA,SAAAhB,EAAA,CAAA,MAAAE,KAAAF,EAAA,CAAA,MAAAM,KAAAN,EAAA,EAAA,MAAAQ,KAAAR,UAAAS,KA/BVO,IAAA,gBAAAoH,EAACvB,GAAA,EAAQ,IAAA3G,GACNI,UAAAA;AAAAA,IAAAA;AAAAA,IACAE;AAAAA,IAKAC;AAAAA,EAAAA,GAyBH,GAAMT,OAAAE,GAAAF,OAAAM,GAAAN,QAAAQ,GAAAR,QAAAS,GAAAT,QAAAgB,KAAAA,IAAAhB,EAAA,EAAA,GAhCNgB;AAgCM;AAvCH,SAAAmH,GAAA9D,GAAAgE,GAAA;AAAA,2BAiBK,QAAA,EACGC,UAAAA;AAAAA,IAAAA,IAAQ,KACP,gBAAA1B,EAACpE,GAAA,EACW,WAAA,QACF,SAAA,SACJ,IAAAM,GAAM+C,sBACX,UAAA,IAAA,CAED;AAAA,IAEF,gBAAAe,EAAC2B,IAAA,EACW,WAAA,UACF,SAAA,SACC,SAAAlE,EAAMmE,SACX,IAAA1F,GAAM8C,aAETvB,YAAMoE,MAAAA,CACT;AAAA,EAAA,EAAA,IACF;AAAO;AAnCZ,SAAAP,GAAAQ,GAAAJ,GAAA;AAAA,2BAUE9F,GAAA,EAA+B,SAAA,aAAkB,OAAA,oCAAjC8F,CAEjB;AAAa;ACZd,SAAAK,GAAA5I,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA;AAAA,MAAAiF,GAAAuD,GAAAzB,GAAAL;AAAA,EAAA3G,SAAAD,KAA8B;AAAA,IAAA0I,OAAAA;AAAAA,IAAAvD,OAAAA;AAAAA,IAAAyB,IAAAA;AAAAA,IAAA,GAAAK;AAAAA,EAAAA,IAAAjH,GAKTC,OAAAD,GAAAC,OAAAkF,GAAAlF,OAAAyI,GAAAzI,OAAAgH,GAAAhH,OAAA2G,MAAAzB,IAAAlF,EAAA,CAAA,GAAAyI,IAAAzI,EAAA,CAAA,GAAAgH,IAAAhH,EAAA,CAAA,GAAA2G,IAAA3G,EAAA,CAAA;AAAA,MAAAE;AAAA,EAAAF,SAAAkF,KAKhBhF,IAAAgF,IAAA;AAAA,IAAAd,iBAA2Bc;AAAAA,EAAAA,IAA3B/E,QAA8CH,OAAAkF,GAAAlF,OAAAE,KAAAA,IAAAF,EAAA,CAAA;AAAA,MAAAM;AAAA,EAAAN,EAAA,CAAA,MAAA2G,KAAA3G,SAAAE,KAFhDI,IAAA;AAAA,IAAA,GACCwC,GAAMkD;AAAAA,IAAiB,GACtB9F;AAAAA,IAA8C,GAC/CyG;AAAAA,EAAAA,GACJ3G,OAAA2G,GAAA3G,OAAAE,GAAAF,OAAAM,KAAAA,IAAAN,EAAA,CAAA;AAAA,MAAAQ;AAAA,EAAAR,UAAAyI,KAGDjI,sBAACgC,GAAA,EAAiB,OAAA,WAAkB,SAAA,SACjCiG,UAAAA,GACH,GAAazI,QAAAyI,GAAAzI,QAAAQ,KAAAA,IAAAR,EAAA,EAAA;AAAA,MAAAS;AAAA,EAAAT,EAAA,EAAA,MAAA4I,uBAAAC,IAAA,2BAAA,KACbpI,sBAACqI,IAAA,EAAW,GAAG9I,QAAAS,KAAAA,IAAAT,EAAA,EAAA;AAAA,MAAAgB;AAAA,SAAAhB,EAAA,EAAA,MAAAgH,KAAAhH,UAAAM,KAAAN,EAAA,EAAA,MAAAQ,KAXjBQ,sBAAC+H,IAAA,EACK,IAAAzI,GAIH,GACG0G,GAEJxG,UAAAA;AAAAA,IAAAA;AAAAA,IAGAC;AAAAA,EAAAA,GACF,GAAaT,QAAAgH,GAAAhH,QAAAM,GAAAN,QAAAQ,GAAAR,QAAAgB,KAAAA,IAAAhB,EAAA,EAAA,GAZbgB;AAYa;ACrBjB,MAAMgI,KAAUC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GASVC,KAAeD;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAOfE,KAAeF;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAORnG,IAAS;AAAA,EACpBsG,UAAU;AAAA,IACRhG,SAAS;AAAA,IACTE,YAAY;AAAA,IACZ+F,WAAWA,CAAC;AAAA,MAAE7F,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,CAAC;AAAA,IACrCwB,YAAYA,CAAC;AAAA,MAAEhB,SAAAA;AAAAA,IAAAA,MAAc;AAAA;AAAA,QAEzBA,EAAQmB,KAAKG,QAAQ;AAAA,QACrBtB,EAAQmB,KAAKkB,SAAS;AAAA,QACtBrC,EAAQmB,KAAKG,QAAQ;AAAA;AAAA,IAEzBgE,gBAAgB;AAAA,IAChBC,gBAAgB;AAAA,IAChBC,sBAAsB;AAAA,IACtBC,qBAAqB;AAAA,IACrBC,WAAW,GAAGV,EAAO;AAAA,IACrBW,mBAAmB;AAAA,EAAA;AAAA,EAErBC,QAAQ;AAAA,IACNxG,SAAS;AAAA,IACTE,YAAY;AAAA,IACZ4C,gBAAgB;AAAA,IAChB2D,UAAU;AAAA,IACVC,GAAG;AAAA,EAAA;AAAA,EAELC,mBAAmB;AAAA,IACjBF,UAAU;AAAA,IACVG,OAAO;AAAA,IACPnG,QAAQ;AAAA,IACRiB,cAAc;AAAA,IACdV,iBAAiBA,CAAC;AAAA,MAAEJ,SAAAA;AAAAA,IAAAA,MAAcA,EAAQK,OAAOiB;AAAAA,IACjDoE,WAAW,GAAGR,EAAY;AAAA,EAAA;AAAA,EAE5Be,mBAAmB;AAAA,IACjBJ,UAAU;AAAA,IACVG,OAAO;AAAA,IACPnG,QAAQ;AAAA,IACRiB,cAAc;AAAA,IACdV,iBAAiBA,CAAC;AAAA,MAAEJ,SAAAA;AAAAA,IAAAA,MAAcA,EAAQmB,KAAKC;AAAAA,IAC/CsE,WAAW,GAAGP,EAAY;AAAA,EAAA;AAAA;AAAA,EAG5Be,aAAa;AAAA,IACX9G,SAAS;AAAA,IACTE,YAAY;AAAA,IACZY,SAAS;AAAA,IACTO,aAAaA,CAAC;AAAA,MAAEjB,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,GAAG;AAAA,IACzCsB,cAAcA,CAAC;AAAA,MAAEtB,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,GAAG;AAAA,IAC1CL,OAAO;AAAA,IACP+B,OAAOA,CAAC;AAAA,MAAElB,SAAAA;AAAAA,IAAAA,MAAcA,EAAQmB,KAAKkB;AAAAA,IACrC,WAAW;AAAA,MACTjC,iBAAiBA,CAAC;AAAA,QAAEJ,SAAAA;AAAAA,MAAAA,MAAcA,EAAQK,OAAOC;AAAAA,IAAAA;AAAAA,EACnD;AAAA,EAEF6F,cAAc;AAAA,IACZjF,OAAOA,CAAC;AAAA,MAAElB,SAAAA;AAAAA,IAAAA,MAAcA,EAAQmB,KAAKkB;AAAAA,IACrCJ,YAAY;AAAA,EAAA;AAAA,EAEdmE,qBAAqB;AAAA,IACnB1G,WAAWA,CAAC;AAAA,MAAEF,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,GAAG;AAAA,IACvCU,SAASA,CAAC;AAAA,MAAEV,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,GAAG;AAAA,IACrCO,QAAQ;AAAA,IACRuC,aAAa;AAAA,IACbxB,cAAcA,CAAC;AAAA,MAAEtB,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,CAAC;AAAA,EAAA;AAAA,EAE1C6G,YAAY;AAAA,IACVjH,SAAS;AAAA,IACTE,YAAY;AAAA,IACZC,KAAKA,CAAC;AAAA,MAAEC,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,CAAC;AAAA,EAAA;AAAA,EAEjC8G,iBAAiB;AAAA,IACfC,YAAY;AAAA,EAAA;AAAA,EAEdC,gBAAgB;AAAA,IACdpH,SAAS;AAAA,IACT0B,cAAcA,CAAC;AAAA,MAAEtB,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,IAAI;AAAA,IAC3CU,SAASA,CAAC;AAAA,MAAEV,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,GAAG,GAAG;AAAA,IACxCD,KAAKA,CAAC;AAAA,MAAEC,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,GAAG;AAAA,IACjCY,iBAAiBA,CAAC;AAAA,MAAEJ,SAAAA;AAAAA,IAAAA,MAAcA,EAAQyG,QAAQC;AAAAA,IAClDxF,OAAOA,CAAC;AAAA,MAAElB,SAAAA;AAAAA,IAAAA,MAAcA,EAAQyG,QAAQE;AAAAA,EAAAA;AAAAA,EAE1CC,oBAAoB;AAAA,IAClB1F,OAAOA,CAAC;AAAA,MAAElB,SAAAA;AAAAA,IAAAA,MAAcA,EAAQyG,QAAQI;AAAAA,EAAAA;AAAAA,EAE1CC,kBAAkB;AAAA,IAChB5F,OAAOA,CAAC;AAAA,MAAElB,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ0E,MAAMmC;AAAAA,EAAAA;AAAAA;AAAAA,EAGxCE,UAAU;AAAA,IACRlB,UAAU;AAAA,IACV1G,OAAO;AAAA,EAAA;AAAA,EAET6H,aAAa;AAAA,IACXnH,QAAQ;AAAA,IACRK,SAASA,CAAC;AAAA,MAAEV,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,CAAC;AAAA,IACnCsB,cAAcA,CAAC;AAAA,MAAEtB,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,GAAG;AAAA,IAC1CY,iBAAiBA,CAAC;AAAA,MAAEJ,SAAAA;AAAAA,IAAAA,MAAcA,EAAQgB,WAAWyC;AAAAA,IACrDwD,YAAYA,CAAC;AAAA,MAAEhI,YAAAA;AAAAA,IAAAA,MACbA,EAAWiI,OAAOD,cAClBhI,EAAWkI,OAAOF,cAClB;AAAA,IACFnH,UAAUA,CAAC;AAAA,MAAEb,YAAAA;AAAAA,IAAAA,MAAiBA,EAAWiI,OAAOpH,YAAY;AAAA,IAC5DsH,YAAYA,CAAC;AAAA,MAAEnI,YAAAA;AAAAA,IAAAA,MAAiBA,EAAWiI,OAAOE,cAAc;AAAA,IAChE3I,YAAY;AAAA,IACZ4I,WAAW;AAAA,IACXC,WAAW;AAAA,EAAA;AAAA,EAEbC,kBAAkB;AAAA,IAChBC,YAAYA,CAAC;AAAA,MAAExH,SAAAA;AAAAA,IAAAA,MAAc,aAAaA,EAAQ0E,MAAMmC,IAAI;AAAA,IAC5DzG,iBAAiBA,CAAC;AAAA,MAAEJ,SAAAA;AAAAA,IAAAA,MAAc,GAAGA,EAAQ0E,MAAMmC,IAAI;AAAA,EAAA;AAAA,EAEzDY,wBAAwB;AAAA,IACtB5B,UAAU;AAAA,IACV6B,KAAKA,CAAC;AAAA,MAAElI,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,GAAG;AAAA,IACjCmI,OAAOA,CAAC;AAAA,MAAEnI,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,GAAG;AAAA,EAAA;AAAA;AAAA,EAGrCoI,gBAAgB;AAAA,IACd/H,QAAQA,CAAC;AAAA,MAAEL,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,CAAC;AAAA,EAAA;AAAA,EAEpCqI,eAAe;AAAA,IACb/G,cAAc;AAAA,EAAA;AAAA,EAEhBgH,eAAe;AAAA,IACb1I,SAAS;AAAA,IACTE,YAAY;AAAA,IACZ4C,gBAAgB;AAAA,IAChBhC,SAASA,CAAC;AAAA,MAAEV,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,CAAC;AAAA,IACnCuI,cAAc;AAAA,IACdC,mBAAmB;AAAA,EAAA;AAAA,EAErBC,uBAAuB;AAAA,IACrB/H,SAAS;AAAA,IACT,mBAAmB;AAAA,MAAEgI,YAAY;AAAA,IAAA;AAAA,EAAE;AAAA,EAErCC,aAAa;AAAA,IACXtI,QAAQ;AAAA,IACRK,SAASA,CAAC;AAAA,MAAEV,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,CAAC;AAAA,IACnCwB,YAAYA,CAAC;AAAA,MAAEhB,SAAAA;AAAAA,MAASR,SAAAA;AAAAA,IAAAA,MACtB,6BAA6BQ,EAAQK,OAAOC,KAAK,SAASd,EAAQ,CAAC,CAAC,YAAYQ,EAAQgB,WAAWyC,OAAO,SAASjE,EAAQ,CAAC,CAAC;AAAA,IAC/HyH,YAAYA,CAAC;AAAA,MAAEhI,YAAAA;AAAAA,IAAAA,MACbA,EAAWiI,OAAOD,cAClBhI,EAAWkI,OAAOF,cAClB;AAAA,IACFnH,UAAUA,CAAC;AAAA,MAAEb,YAAAA;AAAAA,IAAAA,MAAiBA,EAAWiI,OAAOpH,YAAY;AAAA,IAC5DrB,YAAY;AAAA,IACZ4I,WAAW;AAAA,IACXD,YAAY;AAAA,IACZgB,cAAc;AAAA,EAAA;AAAA,EAEhBC,cAAc;AAAA,IACZjJ,SAAS;AAAA,IACT,aAAa;AAAA,MACXkJ,kBAAkB;AAAA,MAClBC,SAAS;AAAA,MACTnJ,SAAS;AAAA,MACTD,OAAO;AAAA,MACPuB,aAAa;AAAA,MACbP,WAAW;AAAA,MACXe,OAAOA,CAAC;AAAA,QAAElB,SAAAA;AAAAA,MAAAA,MAAcA,EAAQmB,KAAKkB;AAAAA,MACrCmG,YAAY;AAAA,IAAA;AAAA,EACd;AAAA,EAEFC,aAAa;AAAA,IACXtI,WAAW;AAAA,IACXf,SAAS;AAAA,IACTE,YAAY;AAAA,IACZwB,cAAc;AAAA,IACdvB,KAAKA,CAAC;AAAA,MAAEC,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,GAAG;AAAA,EAAA;AAAA,EAEnCkJ,YAAY;AAAA,IACVxH,OAAOA,CAAC;AAAA,MAAElB,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ0E,MAAMmC;AAAAA,IACtCtG,YAAY;AAAA,IACZnB,SAAS;AAAA,IACTE,YAAY;AAAA,IACZC,KAAKA,CAAC;AAAA,MAAEC,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,IAAI;AAAA,EAAA;AAAA;AAAA,EAGpCmJ,iBAAiB;AAAA,IACfzH,OAAO;AAAA,EAAA;AAAA,EAET0H,oBAAoB;AAAA,IAClB1H,OAAO;AAAA,EAAA;AAAA,EAET2H,oBAAoB;AAAA,IAClB3H,OAAO;AAAA,EAAA;AAAA,EAET4H,qBAAqB;AAAA,IACnB5H,OAAO;AAAA,EAAA;AAAA,EAET6H,kBAAkB;AAAA,IAChB7H,OAAO;AAAA,EAAA;AAAA,EAET8H,yBAAyB;AAAA,IACvB9H,OAAOA,CAAC;AAAA,MAAElB,SAAAA;AAAAA,IAAAA,MAAcA,EAAQmB,KAAKC;AAAAA,EAAAA;AAAAA,EAEvC6H,eAAe;AAAA,IACblB,cAAc;AAAA,IACdzF,aAAa;AAAA,IACb,mCAAmC;AAAA,MACjCxB,cAAcA,CAAC;AAAA,QAAEtB,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ,GAAG,GAAG,GAAG,CAAC;AAAA,IAAA;AAAA,IAEnD,4DAA4D;AAAA,MAC1DsB,cAAcA,CAAC;AAAA,QAAEtB,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ,GAAG,GAAG,GAAG,CAAC;AAAA,IAAA;AAAA,IAEnD,kBAAkB;AAAA,MAChB0J,mBAAmB;AAAA,IAAA;AAAA,EACrB;AAEJ;ACvOO,SAAAC,GAAApN,GAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA,GAAsB;AAAA,IAAAwG,UAAAvG;AAAAA,IAAAkN,UAAA9M;AAAAA,IAAAqG,IAAAA;AAAAA,EAAAA,IAAA5G,GAC3B0G,IAAAvG,MAAAC,SAAA,gBAAAD,GAIAmN,IAAmB,IAHnB/M,MAAAH,SAAA,MAAAG,KAGiC,GAAI;AAAG,MAAAE;AAAA,EAAAR,EAAA,CAAA,MAAAqN,KAAArN,SAAA2G,KAIhCnG,IAAA;AAAA,IAAA,GACCsC,EAAMsG;AAAAA,IAASO,mBACC0D;AAAAA,IAAU,GAC1B1G;AAAAA,EAAAA,GACJ3G,OAAAqN,GAAArN,OAAA2G,GAAA3G,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAA,MAAAS;AAAA,SAAAT,EAAA,CAAA,MAAAyG,KAAAzG,SAAAQ,KANHC,sBAAC+B,GAAA,EACS,SAAA,SACJ,IAAAhC,gBAON,GAAaR,OAAAyG,GAAAzG,OAAAQ,GAAAR,OAAAS,KAAAA,IAAAT,EAAA,CAAA,GATbS;AASa;AChBV,SAAA6M,GAAAvN,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA,GAAoB;AAAA,IAAAsN,MAAArN;AAAAA,IAAAsN,QAAAlN;AAAAA,IAAAqG,IAAAA;AAAAA,EAAAA,IAAA5G,GAAEwN,IAAArN,MAAAC,SAAA,KAAAD;AAAS,MAAAM;AAAA,EAAAR,SAAAM,KAAEE,IAAAF,MAAAH,SAAA,CAAA,IAAAG,GAAWN,OAAAM,GAAAN,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAKjC,QAAAS,IALsBD,EAKhBiN,WAAN;AAA2B,MAAAzM;AAAA,EAAAhB,EAAA,CAAA,MAAAuN,KAAAvN,SAAA2G,KACnC3F,IAAA;AAAA,IAAA,GAAK8B,EAAM8G;AAAAA,IAAOzG,OAASoK;AAAAA,IAAInH,QAAUmH;AAAAA,IAAI,GAAK5G;AAAAA,EAAAA,GAAI3G,OAAAuN,GAAAvN,OAAA2G,GAAA3G,OAAAgB,KAAAA,IAAAhB,EAAA,CAAA;AAM/C,QAAAiB,IAAAsM,IAAO,MACNvL,IAAAuL,IAAO;AAAI,MAAArL;AAAA,EAAAlC,EAAA,CAAA,MAAAiB,KAAAjB,SAAAgC,KALvBE,IAAA,gBAAA0E,EAACC,GAAA,EACW,WAAA,QACN,IAAA;AAAA,IAAA,GACC/D,EAAMiH;AAAAA,IAAkB5G,OACpBlC;AAAAA,IAAWmF,QACVpE;AAAAA,EAAAA,GACT,GACDhC,OAAAiB,GAAAjB,OAAAgC,GAAAhC,OAAAkC,KAAAA,IAAAlC,EAAA,CAAA;AAKS,QAAAmC,IAAAoL,IAAO,MACNG,IAAAH,IAAO;AAAI,MAAAI;AAAA,EAAA3N,EAAA,CAAA,MAAA0N,KAAA1N,SAAAmC,KALvBwL,IAAA,gBAAA/G,EAACC,GAAA,EACW,WAAA,QACN,IAAA;AAAA,IAAA,GACC/D,EAAMmH;AAAAA,IAAkB9G,OACpBhB;AAAAA,IAAWiE,QACVsH;AAAAA,EAAAA,GACT,GACD1N,OAAA0N,GAAA1N,OAAAmC,GAAAnC,QAAA2N,KAAAA,IAAA3N,EAAA,EAAA;AAAA,MAAA4N;AAAA,SAAA5N,EAAA,EAAA,MAAA2N,KAAA3N,EAAA,EAAA,MAAAS,KAAAT,EAAA,EAAA,MAAAgB,KAAAhB,UAAAkC,KArBJ0L,IAAA,gBAAAxF,EAACvB,KACM,MAAA,UACM,aAAA,IACC,cAAApG,GACR,IAAAO,GAEJkB,UAAAA;AAAAA,IAAAA;AAAAA,IAQAyL;AAAAA,EAAAA,GAQF,GAAM3N,QAAA2N,GAAA3N,QAAAS,GAAAT,QAAAgB,GAAAhB,QAAAkC,GAAAlC,QAAA4N,KAAAA,IAAA5N,EAAA,EAAA,GAtBN4N;AAsBM;ACzBH,MAAM9K,IAAS;AAAA,EACpB+K,QAAQ;AAAA,IACNzK,SAAS;AAAA,IACTE,YAAY;AAAA,IACZ4C,gBAAgB;AAAA,IAChBhC,SAASA,CAAC;AAAA,MAAEV,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,CAAC;AAAA,EAAA;AAAA,EAErCsK,aAAa;AAAA,IACXC,UAAU;AAAA,IACVC,IAAIA,CAAC;AAAA,MAAExK,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,GAAG;AAAA,EAAA;AAAA,EAElCyK,eAAe;AAAA,IACb7K,SAAS;AAAA,IACTE,YAAY;AAAA,IACZ4K,YAAYA,CAAC;AAAA,MAAE1K,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,CAAC;AAAA,IACtCD,KAAKA,CAAC;AAAA,MAAEC,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,GAAG;AAAA,EAAA;AAAA,EAEnC2K,eAAe;AAAA,IACbjK,SAASA,CAAC;AAAA,MAAEV,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,CAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQrC4K,WAAW;AAAA,IACTxL,UAAUnD;AAAAA,IACV0D,OAAO;AAAA,IACPU,QAAQ;AAAA,IACRT,SAAS;AAAA,IACTiL,qBAAqB;AAAA,IACrB/K,YAAY;AAAA,IACZgL,WAAWA,CAAC;AAAA,MAAE9K,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,GAAG;AAAA,IACvCY,iBAAiBA,CAAC;AAAA,MAAEJ,SAAAA;AAAAA,IAAAA,MAClBA,EAAQyD,SAASzC,cAAc;AAAA,IACjCF,cAAcA,CAAC;AAAA,MAAEtB,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,GAAG;AAAA,IAC1C+K,eAAeA,CAAC;AAAA,MAAE/K,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,GAAG;AAAA,EAAA;AAAA;AAAA,EAG7CgL,YAAY;AAAA,IACVrI,UAAU;AAAA,IACV/C,SAAS;AAAA,IACTC,eAAe;AAAA,IACfE,KAAKA,CAAC;AAAA,MAAEC,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,GAAG;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQnCiL,YAAY;AAAA,IACV9K,WAAW;AAAA,IACX+K,eAAeA,CAAC;AAAA,MAAElL,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,GAAG;AAAA,IAC3C,yBAAyB;AAAA,MACvBU,SAASA,CAAC;AAAA,QAAEV,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ,GAAG;AAAA,IAAA;AAAA,EACvC;AAAA;AAAA,EAGFmL,aAAa;AAAA,IACXxL,OAAO;AAAA,IACPF,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAuBZoG,WAAW;AAAA,IACX,cAAc;AAAA,MACZvF,UAAUA,CAAC;AAAA,QAAEb,YAAAA;AAAAA,MAAAA,MAAiB,GAAGA,EAAWC,MAAMY,QAAQ;AAAA,MAC1DsH,YAAYA,CAAC;AAAA,QAAEnI,YAAAA;AAAAA,MAAAA,MACb,GAAGA,EAAWC,MAAMkI,UAAU;AAAA,MAChCwD,eAAeA,CAAC;AAAA,QAAE3L,YAAAA;AAAAA,MAAAA,MAChB,GAAGA,EAAWC,MAAM0L,aAAa;AAAA,IAAA;AAAA,IAErC,iCAAiC;AAAA,MAC/BC,QAAQ;AAAA,MACR3K,SAASA,CAAC;AAAA,QAAEV,SAAAA;AAAAA,MAAAA,MAAc,GAAGA,EAAQ,MAAM,IAAI,CAAC;AAAA,IAAA;AAAA,EAClD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUFsL,aAAa;AAAA,IACX1L,SAAS;AAAA,IACTE,YAAY;AAAA,IACZC,KAAKA,CAAC;AAAA,MAAEC,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,GAAG;AAAA,IACjC2C,UAAU;AAAA,IACVT,UAAU;AAAA,IACVjB,aAAaA,CAAC;AAAA,MAAEjB,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,GAAG;AAAA,IACzCkL,eAAeA,CAAC;AAAA,MAAElL,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,GAAG;AAAA,EAAA;AAAA,EAE7CuL,eAAe;AAAA,IACbC,eAAe;AAAA,IACf9J,OAAOA,CAAC;AAAA,MAAElB,SAAAA;AAAAA,IAAAA,MAAcA,EAAQmB,KAAKkB;AAAAA,IACrCzD,UAAU;AAAA,IACVuD,UAAU;AAAA,IACV,wBAAwB;AAAA,MACtB+H,YAAYA,CAAC;AAAA,QAAE1K,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ,IAAI;AAAA,IAAA;AAAA,EAC3C;AAAA,EAEFyL,oBAAoB;AAAA,IAClBC,UAAU;AAAA,IACVC,cAAc;AAAA,IACd1M,YAAY;AAAA,EAAA;AAAA,EAEd2M,eAAe;AAAA,IACbjL,WAAW;AAAA,EAAA;AAAA,EAEboI,SAAS;AAAA,IACPjB,WAAW;AAAA,IACX+D,MAAM;AAAA,IACNxF,UAAU;AAAA,IACVyF,IAAI;AAAA,IACJ1M,UAAUnD;AAAAA,IACV0D,OAAO;AAAA,IACPoM,WAAW;AAAA,IACXC,IAAI;AAAA,IACJC,IAAI;AAAA,IACJzB,IAAI;AAAA,IACJ5K,SAAS;AAAA,IACTC,eAAe;AAAA,IACfqM,gBAAgB;AAAA,IAChBC,gBAAgB;AAAA,IAChBzC,mBAAmB;AAAA,IACnB0C,mBAAmB;AAAA,EAAA;AAAA,EAErBC,UAAU;AAAA,IACRzJ,QAAQ;AAAA,IACRmE,YAAY;AAAA,EAAA;AAAA,EAEduF,qBAAqB;AAAA,IACnBjG,UAAU;AAAA,IACVkG,QAAQA,CAAC;AAAA,MAAEvM,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,CAAC;AAAA,IAClC4C,QAAQ;AAAA,IACRhD,SAAS;AAAA,IACT8C,gBAAgB;AAAA,IAChB8J,QAAQ;AAAA,EAAA;AAAA,EAEVC,cAAc;AAAA,IACZhK,YAAY;AAAA,EAAA;AAAA,EAEdiK,SAAS;AAAA,IACP9M,SAAS;AAAA,IACTC,eAAe;AAAA,IACfC,YAAY;AAAA,IACZ4C,gBAAgB;AAAA,IAChBhC,SAASA,CAAC;AAAA,MAAEV,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,CAAC;AAAA,IACnCW,WAAW;AAAA,IACXvB,UAAUnD;AAAAA,IACVoE,QAAQ;AAAA,EAAA;AAAA,EAEVsM,cAAc;AAAA,IACZ/M,SAAS;AAAA,IACTD,OAAO;AAAA,IACPO,WAAWA,CAAC;AAAA,MAAEF,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,CAAC;AAAA,EAAA;AAAA,EAEvC4M,oBAAoB;AAAA,IAClB/B,qBAAqB;AAAA,EAAA;AAEzB,GC7KMgC,KAAwB,IAEjBC,KAAcnJ,GACzB,SAAApH,GAAAqH,GAAA;AAAA,QAAApH,IAAAC,EAAA,EAAA,GAAqB;AAAA,IAAAwG,UAAAA;AAAAA,IAAA8J,YAAArQ;AAAAA,IAAAsN,QAAAlN;AAAAA,IAAAqG,IAAAA;AAAAA,EAAAA,IAAA5G,GAAYwQ,IAAArQ,MAAAC,SAAA,KAAAD;AAAiB,MAAAM;AAAA,EAAAR,SAAAM,KAAEE,IAAAF,MAAAH,SAAA,CAAA,IAAAG,GAAWN,OAAAM,GAAAN,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAX,QAAAwN,IAAAhN,GAClDgQ,IAAkBzP,GAAuB,IAAI,GAC7C0P,IAAuB1P,GAAuB,IAAI,GAClD2P,IAA0B3P,GAAuB,IAAI,GAErD,CAAA4P,GAAAC,CAAA,IAA8B/P,GAAS,EAAI,GAC3C,CAAAgQ,GAAAC,CAAA,IAAoCjQ,GAAS,EAAI;AAAC,MAAAJ;AAAA,EAAAT,EAAA,CAAA,MAAA4I,uBAAAC,IAAA,2BAAA,KAE3BpI,IAAAA,MAAA;AACrB+P,IAAAA,EAAStP,SAAkB6P,SAAC;AAAA,MAAArF,KACrB8E,EAAStP,QAAQ8P;AAAAA,MAAaC,UACzB;AAAA,IAAA,CACX;AAAA,EAAC,GACHjR,OAAAS,KAAAA,IAAAT,EAAA,CAAA;AALD,QAAAkR,IAAuBzQ;AAKtB,MAAAO;AAAA,EAAAhB,EAAA,CAAA,MAAA4I,uBAAAC,IAAA,2BAAA,KAEmB7H,IAAAA,MAAA;AAClBwP,IAAAA,EAAStP,SAAkB6P,SAAC;AAAA,MAAArF,KAAO;AAAA,MAACuF,UAAY;AAAA,IAAA,CAAU;AAAA,EAAC,GAC5DjR,OAAAgB,KAAAA,IAAAhB,EAAA,CAAA;AAFD,QAAAmR,IAAoBnQ;AAEnB,MAAAC,GAAAe;AAAA,EAAAhC,EAAA,CAAA,MAAA6Q,KAAA7Q,SAAA2Q,KAIC1P,IAAAA,OAAO;AAAA,IAAAiQ,gBAAAA;AAAAA,IAAAC,aAAAA;AAAAA,IAAAN,YAAAA;AAAAA,IAAAF,SAAAA;AAAAA,EAAAA,IACP3O,IAAA,CAAC6O,GAAYF,CAAO,GAAC3Q,OAAA6Q,GAAA7Q,OAAA2Q,GAAA3Q,OAAAiB,GAAAjB,OAAAgC,MAAAf,IAAAjB,EAAA,CAAA,GAAAgC,IAAAhC,EAAA,CAAA,IAHvBoR,GACEhK,GACAnG,GACAe,CACF;AAAC,MAAAE,GAAAC;AAAA,EAAAnC,EAAA,CAAA,MAAA4I,uBAAAC,IAAA,2BAAA,KAES3G,IAAAA,MAAA;AACR,UAAAmP,IAAab,EAAStP,SACtBoQ,IAAcb,EAAcvP,SAC5BqQ,IAAiBb,EAAiBxP;AAClC,QAAI,CAACmQ,KAAD,CAAUC,KAAV,CAAoBC;AAAQ;AAEhC,UAAAC,IAAoB,IAAIC,qBACtB/D,CAAAA,MAAA;AAAC,YAAA,CAAAgE,CAAA,IAAAhE;AAAO,aAAKkD,EAAWc,GAAKC,kBAAL,EAA6B;AAAA,IAAC,GACtD;AAAA,MAAAN,MAAAA;AAAAA,IAAAA,CACF,GACAO,IAAuB,IAAIH,qBACzB9D,CAAAA,MAAA;AAAC,YAAA,CAAAkE,CAAA,IAAAlE;AAAO,aAAKmD,EAAcY,GAAKC,kBAAL,EAA6B;AAAA,IAAC,GACzD;AAAA,MAAAN,MAAAA;AAAAA,IAAAA,CACF;AACAG,WAAAA,EAAWM,QAASR,CAAK,GACzBM,EAAcE,QAASP,CAAQ,GACxB,MAAA;AACLC,MAAAA,EAAWO,WAAAA,GACXH,EAAcG,WAAAA;AAAAA,IAAa;AAAA,EAC5B,GACA5P,IAAA,CAAA,GAAEnC,OAAAkC,GAAAlC,OAAAmC,MAAAD,IAAAlC,EAAA,CAAA,GAAAmC,IAAAnC,EAAA,CAAA,IApBL+B,GAAUG,GAoBPC,CAAE;AAAC,MAAAuL,GAAAC;AAAA,EAAA3N,UAAAuQ,KAEI7C,IAAAA,MAAA;AACR,QAAI,CAAC6C;AAAU;AACf,UAAAyB,IAAaxB,EAAStP;AACtB,QAAI,CAACmQ;AAAI;AAMT,QAAAY,IAAuBZ,EAAIL,cAC3B5P,IAA2B;AAE3B,UAAA8Q,IAAcA,MAAA;AACZ9Q,MAAAA,IAAQA;AACR,YAAA+Q,IAAwBd,EAAIL;AAC5B,UAAImB,IAAkBF,GAAgB;AACpC,cAAAG,IAAeD,IAAkBF;AAQjC,QADEE,IAAkBd,EAAIgB,YAAahB,EAAIiB,gBACfF,IAAS/B,MACjCgB,EAAIN,SAAU;AAAA,UAAArF,KAAOyG;AAAAA,UAAelB,UAAY;AAAA,QAAA,CAAU;AAAA,MAC3D;AAEHgB,MAAAA,IAAmBE;AAAAA,IAAH,GAGlBI,IAAW,IAAIC,iBAAiB,MAAA;AAI9BpR,MAAAA,IAAQA,KAASS,sBAAsBqQ,CAAK;AAAA,IAAvC,CACN;AACDK,WAAAA,EAAET,QAAST,GAAM;AAAA,MAAAoB,WACJ;AAAA,MAAIC,SACN;AAAA,MAAIC,eACE;AAAA,IAAA,CAChB,GACM,MAAA;AACLJ,MAAAA,EAAER,WAAAA,GACE3Q,MAAU,QAAMU,qBAAqBV,CAAK;AAAA,IAAC;AAAA,EAChD,GACAuM,IAAA,CAAC4C,CAAU,GAACvQ,QAAAuQ,GAAAvQ,QAAA0N,GAAA1N,QAAA2N,MAAAD,IAAA1N,EAAA,EAAA,GAAA2N,IAAA3N,EAAA,EAAA,IA9Cf+B,GAAU2L,GA8CPC,CAAY;AAAC,MAAAC;AAAA,EAAA5N,UAAA2Q,KAOM/C,IAAAgF,CAAAA,MAAA;AAAC,UAAA;AAAA,MAAA5O,SAAAA;AAAAA,IAAAA,IAAA4O;AAAW,WAC1BjC,IAAA,gBAA0B3M,EAAOC;AAAAA,EAAQ,GAAAjE,QAAA2Q,GAAA3Q,QAAA4N,KAAAA,IAAA5N,EAAA,EAAA;AAAA,MAAA4S;AAAA,EAAA5S,UAAA6Q,KACxB+B,IAAAC,CAAAA,MAAA;AAAC,UAAA;AAAA,MAAA7O,SAAA8O;AAAAA,IAAAA,IAAAD;AAAW,WAC7BhC,IAAA,gBAA6B7M,EAAOC;AAAAA,EAAQ,GAAAjE,QAAA6Q,GAAA7Q,QAAA4S,KAAAA,IAAA5S,EAAA,EAAA;AAAA,MAAA6S;AAAA,EAAA7S,EAAA,EAAA,MAAA2G,KAAA3G,UAAA4N,KAAA5N,EAAA,EAAA,MAAA4S,KAL5CC,IAAA;AAAA,IAAA,GACC/P,EAAMyJ;AAAAA,IAAQwG,gBACDnF;AAAAA,IAC2B5B,mBACxB4G;AAAAA,IAC2B,GAC3CjM;AAAAA,EAAAA,GACJ3G,QAAA2G,GAAA3G,QAAA4N,GAAA5N,QAAA4S,GAAA5S,QAAA6S,KAAAA,IAAA7S,EAAA,EAAA;AAAA,MAAAgT;AAAA,EAAAhT,EAAA,EAAA,MAAA4I,uBAAAC,IAAA,2BAAA,KAEDmK,IAAA,gBAAApM,EAACC,KAAS4J,KAAAA,GAAoB,IAAA3N,EAAM+M,UAAW,eAAA,GAAA,CAAW,GAAG7P,QAAAgT,KAAAA,IAAAhT,EAAA,EAAA;AAAA,MAAAiT;AAAA,EAAAjT,EAAA,EAAA,MAAA4I,uBAAAC,IAAA,2BAAA,KAE7DoK,IAAA,gBAAArM,EAACC,KAAS6J,KAAAA,GAAuB,IAAA5N,EAAM+M,UAAW,eAAA,GAAA,CAAW,GAAG7P,QAAAiT,KAAAA,IAAAjT,EAAA,EAAA;AAKhD,QAAAkT,IAAA1F,EAAMyC,gBAAN,kBAGDkD,IAAAtC,IAAA,IAAA,GACMuC,IAAAvC,IAAA,SAAA;AAA4B,MAAAwC;AAAA,EAAArT,EAAA,EAAA,MAAAmT,KAAAnT,UAAAoT,KAHzCC,IAAA;AAAA,IAAA,GACCvQ,EAAMmN;AAAAA,IAAarL,SACbuO;AAAAA,IAAkBG,eACZF;AAAAA,EAAAA,GAChBpT,QAAAmT,GAAAnT,QAAAoT,GAAApT,QAAAqT,KAAAA,IAAArT,EAAA,EAAA;AAAA,MAAAuT;AAAA,EAAAvT,EAAA,EAAA,MAAA4I,uBAAAC,IAAA,2BAAA,KAED0K,sBAACC,IAAA,EAAiB,GAAGxT,QAAAuT,KAAAA,IAAAvT,EAAA,EAAA;AAAA,MAAAyT;AAAA,EAAAzT,EAAA,EAAA,MAAAkT,KAAAlT,UAAAqT,KAXzBI,sBAAC5M,GAAA,EAAQ,IAAA/D,EAAMgN,qBACb,4BAAC4D,IAAA,EACM,MAAA,SACIxC,SAAAA,GACG,cAAAgC,GACR,IAAAG,GAMJE,aACF,GACF,GAAMvT,QAAAkT,GAAAlT,QAAAqT,GAAArT,QAAAyT,KAAAA,IAAAzT,EAAA,EAAA;AAAA,MAAA2T;AAAA,SAAA3T,EAAA,EAAA,MAAAyG,KAAAzG,UAAA6S,KAAA7S,EAAA,EAAA,MAAAyT,KA3BRE,IAAA,gBAAAvL,EAACvB,GAAA,EACM2J,KAAAA,GACD,IAAAqC,GASJG,UAAAA;AAAAA,IAAAA;AAAAA,IACCvM;AAAAA,IACDwM;AAAAA,IACAQ;AAAAA,EAAAA,GAcF,GAAMzT,QAAAyG,GAAAzG,QAAA6S,GAAA7S,QAAAyT,GAAAzT,QAAA2T,KAAAA,IAAA3T,EAAA,EAAA,GA5BN2T;AA4BM,CAGZ;AACArD,GAAYzN,cAAc;AC3InB,SAAA+Q,GAAA7T,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA,GAAoB;AAAA,IAAA4T,UAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC,WAAAA;AAAAA,IAAAC,SAAAA;AAAAA,IAAArN,IAAAA;AAAAA,EAAAA,IAAA5G;AAMT,MAAAG;AAAA,EAAAF,SAAA2G,KAELzG,IAAA;AAAA,IAAA,GAAK4C,EAAM+K;AAAAA,IAAO,GAAKlH;AAAAA,EAAAA,GAAI3G,OAAA2G,GAAA3G,OAAAE,KAAAA,IAAAF,EAAA,CAAA;AAAA,MAAAM;AAAA,EAAAN,SAAA8T,KAElCxT,sBAACkC,GAAA,EAAmB,SAAA,aAAgB,IAAAM,EAAMgL,0BAE1C,GAAa9N,OAAA8T,GAAA9T,OAAAM,KAAAA,IAAAN,EAAA,CAAA;AAAA,MAAAQ;AAAA,EAAAR,SAAAgU,KAGVxT,IAAAwT,KACC,gBAAApN,EAACqN,IAAA,EAAgB,MAAA,UAAkBD,YAAoB,cAAA,SACrD,UAAA,gBAAApN,EAACsN,IAAA,CAAA,CAAK,GACR,GACDlU,OAAAgU,GAAAhU,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAA,MAAAS;AAAA,EAAAT,EAAA,CAAA,MAAA+T,KAAA/T,SAAAQ,KANHC,sBAACoG,GAAA,EAAQ,IAAA/D,EAAMmL;;IAEZzN;AAAAA,EAAAA,GAKH,GAAMR,OAAA+T,GAAA/T,OAAAQ,GAAAR,OAAAS,KAAAA,IAAAT,EAAA,CAAA;AAAA,MAAAgB;AAAA,SAAAhB,EAAA,CAAA,MAAA6T,KAAA7T,EAAA,EAAA,MAAAE,KAAAF,EAAA,EAAA,MAAAM,KAAAN,UAAAS,KAZRO,sBAAC6F,GAAA,EAAQ,IAAA3G;;IAEPI;AAAAA,IAGAG;AAAAA,EAAAA,GAQF,GAAMT,OAAA6T,GAAA7T,QAAAE,GAAAF,QAAAM,GAAAN,QAAAS,GAAAT,QAAAgB,KAAAA,IAAAhB,EAAA,EAAA,GAbNgB;AAaM;ACNV,MAAMmT,KACJ;AAEK,SAAAC,GAAArU,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA,GAAoB;AAAA,IAAAoU,OAAAA;AAAAA,IAAAC,UAAAA;AAAAA,IAAAC,QAAAA;AAAAA,IAAAC,QAAAA;AAAAA,IAAAC,cAAAvU;AAAAA,IAAAoF,UAAAhF;AAAAA,IAAAoU,aAAAlU;AAAAA,IAAAgN,QAAA/M;AAAAA,IAAAkU,SAAA3T;AAAAA,IAAA4T,QAAAA;AAAAA,IAAAC,eAAAA;AAAAA,IAAAC,eAAAA;AAAAA,IAAAC,kBAAAA;AAAAA,IAAAC,gBAAAA;AAAAA,IAAArO,IAAAA;AAAAA,EAAAA,IAAA5G,GAKzB0U,IAAAvU,MAAAC,SAAA,KAAAD,GACAoF,IAAAhF,MAAAH,SAAA,KAAAG,GACAoU,IAAAlU,MAAAL,SAAA,sBAAAK;AAAiC,MAAAS;AAAA,EAAAjB,SAAAS,KACjCQ,IAAAR,MAAAN,SAAA,CAAA,IAAAM,GAAWT,OAAAS,GAAAT,OAAAiB,KAAAA,IAAAjB,EAAA,CAAA;AAAX,QAAAwN,IAAAvM,GACA0T,IAAA3T,MAAAb,SAAAgU,KAAAnT,GAQA,CAAAiU,GAAAC,CAAA,IAAsCrU,GAA6B,IAAI;AAAC,MAAAmB;AAAA,EAAAhC,EAAA,CAAA,MAAAsF,KAAAtF,SAAAyU,KAAAzU,EAAA,CAAA,MAAAqU,KACxDrS,IAAAqS,EAAKc,KAAAA,KAAL,CAAiB7P,KAAjB,CAA8BmP,GAAYzU,OAAAsF,GAAAtF,OAAAyU,GAAAzU,OAAAqU,GAAArU,OAAAgC,KAAAA,IAAAhC,EAAA,CAAA;AAA1D,QAAAoV,IAAgBpT,GAEhBqT,KAA2BT,GAAMlU,UAAN,KAAuB,GAClD4U,IAAmB9H,EAAM+H,SAAN;AAA8B,MAAArT;AAAA,EAAAlC,EAAA,CAAA,MAAAsV,KAAAtV,SAAA4U,KAAA5U,EAAA,CAAA,MAAA6U,KAI/C3S,IAAA0S,GAAMY,KAAOhO,CAAAA,MAAOA,EAAC6M,UAAWQ,CAAoB,GAACpM,UACpDoM,KAAiBA,EAAanU,SAAU,IAAxCmU,IAAAS,IAAuEtV,OAAAsV,GAAAtV,OAAA4U,GAAA5U,OAAA6U,GAAA7U,OAAAkC,KAAAA,IAAAlC,EAAA,CAAA;AAF1E,QAAAyV,IACEvT,GAKFwT,IACEL,KAAqBM,EAAQZ,KAAqBY,EAAQX;AAAe,MAAA7S;AAAA,EAAAnC,EAAA,EAAA,MAAAoV,KAAApV,UAAAuU,KAErDpS,IAAAyT,CAAAA,MAAA;AACpB,IAAIA,EAACC,QAAS,WAAV,CAAsBD,EAACE,aACzBF,EAACG,eAAAA,GACGX,KACFb,EAAAA;AAAAA,EAEH,GACFvU,QAAAoV,GAAApV,QAAAuU,GAAAvU,QAAAmC,KAAAA,IAAAnC,EAAA,EAAA;AAPD,QAAAgW,IAAsB7T;AAOrB,MAAAuL;AAAA,EAAA1N,EAAA,EAAA,MAAAoV,KAAApV,EAAA,EAAA,MAAAsF,KAAAtF,EAAA,EAAA,MAAAyU,KAAAzU,EAAA,EAAA,MAAAwN,EAAAyI,QAAAjW,EAAA,EAAA,MAAAwN,EAAA0I,QAAAlW,EAAA,EAAA,MAAAuU,KAAAvU,UAAAwU,KAGC9G,IAAA+G,KAAAD,IACE,gBAAA5N,EAACqN,IAAA,EACM,MAAA,SACIO,SAAAA,GACClP,UAAAA,GACE,cAAAkI,EAAM0I,QAAN,QAEZ,UAAA,gBAAAtP,EAACuP,IAAA,KACH,IAEA,gBAAAvP,EAACqN,IAAA,EACM,MAAA,SACG,SAAA,aACF,OAAA,WACGM,SAAAA,GACC,UAAA,CAACa,GACC,cAAA5H,EAAMyI,QAAN,QAEZ,UAAA,gBAAArP,EAACwP,MAAmB,GACtB,GACDpW,QAAAoV,GAAApV,QAAAsF,GAAAtF,QAAAyU,GAAAzU,EAAA,EAAA,IAAAwN,EAAAyI,MAAAjW,EAAA,EAAA,IAAAwN,EAAA0I,MAAAlW,QAAAuU,GAAAvU,QAAAwU,GAAAxU,QAAA0N,KAAAA,IAAA1N,EAAA,EAAA;AArBH,QAAAqW,IACE3I;AAoBC,MAAAC;AAAA,EAAA3N,UAAA2G,KAG0BgH,IAAA;AAAA,IAAA,GAAK7K,EAAMqL;AAAAA,IAAc,GAAKxH;AAAAA,EAAAA,GAAI3G,QAAA2G,GAAA3G,QAAA2N,KAAAA,IAAA3N,EAAA,EAAA;AAAA,MAAA4N;AAAA,EAAA5N,UAAAsU,KAS3C1G,IAAA0I,CAAAA,MAAOhC,EAASsB,EAACW,OAAOlC,KAAM,GAACrU,QAAAsU,GAAAtU,QAAA4N,KAAAA,IAAA5N,EAAA,EAAA;AAG/B,QAAA4S,IAAAtN,KAAAmP;AAAwB,MAAA5B;AAAA,EAAA7S,EAAA,EAAA,MAAAgW,KAAAhW,EAAA,EAAA,MAAA0U,KAAA1U,EAAA,EAAA,MAAA4N,KAAA5N,EAAA,EAAA,MAAA4S,KAAA5S,UAAAqU,KARpCxB,sBAAC2D,IAAA,EACC,WAAA,IACS,SAAA,GACA,SAAA,GACFnC,OAAAA,GACG,UAAAzG,GACCoI,WAAAA,GACEtB,aAAAA,GACH,UAAA9B,GACN,IAAA9P,EAAM6L,aAAY,GACtB3O,QAAAgW,GAAAhW,QAAA0U,GAAA1U,QAAA4N,GAAA5N,QAAA4S,GAAA5S,QAAAqU,GAAArU,QAAA6S,KAAAA,IAAA7S,EAAA,EAAA;AAAA,MAAAgT;AAAA,EAAAhT,UAAAsF,KAAAtF,EAAA,EAAA,MAAAgV,KAAAhV,EAAA,EAAA,MAAA0V,KAAA1V,UAAAyU,KAAAzU,EAAA,EAAA,MAAAiV,KAAAjV,EAAA,EAAA,MAAAsV,KAAAtV,EAAA,EAAA,MAAA4U,KAAA5U,UAAA8U,KAAA9U,EAAA,EAAA,MAAAyV,KAAAzV,EAAA,EAAA,MAAA6U,KAAA7U,UAAAqV,KAAArV,EAAA,EAAA,MAAA+U,KACD/B,IAAA0C,KACC,gBAAAtN,EAACvB,GAAA,EAAQ,IAAA/D,EAAMgM;;IAEZuG,KAAA,gBAAAjN,EAAAqO,IAAA,EAEG,UAAA;AAAA,MAAA,gBAAA7P,EAAC8P,MACM,MAAA,SACG,SAAA,QACF,OAAA,WACI,UAAApR,KAAAmP,GACD,SAAAkC,CAAAA,MAAOzB,EAAeU,EAACgB,aAAc,GAClCtB,cAAAA,GACE,iBAAA,QACC,iBAAAL,IAAA,SAAA9U,QACN,SAAA,gBAAAyG,EAAC4M,IAAA,EAAiB,GACvB,IAAA1Q,EAAMiM,eAEV,UAAA,gBAAAnI,EAACpE,GAAA,EACS,SAAA,WACE,WAAA,QACJ,OAAA,WACF,IAAAM,EAAMmM,iCAGZ,EAAA,CACF;AAAA,wBACC4H,IAAA,EACW5B,UAAAA,GACJ,MAAAU,EAAQV,GACL,SAAA,MAAMC,EAAe,IAAI,GAC1B,SAAA,QACG,WAAA,GACG,cAAA;AAAA,QAAA4B,UAAY;AAAA,QAAKC,YAAc;AAAA,MAAA,GAC5B,iBAAA;AAAA,QAAAD,UAAY;AAAA,QAAQC,YAAc;AAAA,MAAA,GAElDnC,UAAAA,GAAM3M,IAAM+O,CAAAA,MACX,gBAAApQ,EAACqQ,IAAA,EAEW,UAAAzP,EAAC6M,UAAWQ,GACb,SAAA,MAAA;AACPC,QAAAA,IAAgBtN,EAAC6M,KAAM,GACvBa,EAAe,IAAI;AAAA,MAAC,GAGrB1N,UAAAA,EAACiB,MAAAA,GAPGjB,EAAC6M,KAQR,CACD,EAAA,CACH;AAAA,IAAA,GAAO;AAAA;KAIb,GACDrU,QAAAsF,GAAAtF,QAAAgV,GAAAhV,QAAA0V,GAAA1V,QAAAyU,GAAAzU,QAAAiV,GAAAjV,QAAAsV,GAAAtV,QAAA4U,GAAA5U,QAAA8U,GAAA9U,QAAAyV,GAAAzV,QAAA6U,GAAA7U,QAAAqV,GAAArV,QAAA+U,GAAA/U,QAAAgT,KAAAA,IAAAhT,EAAA,EAAA;AAAA,MAAAiT;AAAA,EAAAjT,EAAA,EAAA,MAAA6S,KAAA7S,UAAAgT,KAhEHC,sBAACpM,GAAA,EAAQ,IAAA/D,EAAM0L,YACbqE,UAAAA;AAAAA,IAAAA;AAAAA,IAWCG;AAAAA,EAAAA,GAqDH,GAAMhT,QAAA6S,GAAA7S,QAAAgT,GAAAhT,QAAAiT,KAAAA,IAAAjT,EAAA,EAAA;AAAA,MAAAkT;AAAA,EAAAlT,UAAAqW,KACNnD,IAAA,gBAAAtM,EAACC,GAAA,EAAQ,IAAA/D,EAAM2L,YAAc4H,UAAAA,GAAW,GAAMrW,QAAAqW,GAAArW,QAAAkT,KAAAA,IAAAlT,EAAA,EAAA;AAAA,MAAAmT;AAAA,EAAAnT,EAAA,EAAA,MAAAiT,KAAAjT,UAAAkT,KAnEhDC,sBAACtM,GAAA,EAAQ,IAAA/D,EAAMsL,WACb6E,UAAAA;AAAAA,IAAAA;AAAAA,IAkEAC;AAAAA,EAAAA,GACF,GAAMlT,QAAAiT,GAAAjT,QAAAkT,GAAAlT,QAAAmT,KAAAA,IAAAnT,EAAA,EAAA;AAAA,MAAAoT;AAAA,EAAApT,UAAA2U,KACLvB,IAAAuB,IACC,gBAAA/N,EAACsQ,IAAA,EAAmB,IAAApU,EAAMsM,eAAiBuF,aAAQ,IADpD,MAEO3U,QAAA2U,GAAA3U,QAAAoT,KAAAA,IAAApT,EAAA,EAAA;AAAA,MAAAqT;AAAA,SAAArT,EAAA,EAAA,MAAA2N,KAAA3N,UAAAmT,KAAAnT,EAAA,EAAA,MAAAoT,KAzEVC,IAAA,gBAAAjL,EAAC+O,IAAA,EAAY,WAAA,IAAc,IAAAxJ,GAEzBwF,UAAAA;AAAAA,IAAAA;AAAAA,IAqECC;AAAAA,EAAAA,GAGH,GAAcpT,QAAA2N,GAAA3N,QAAAmT,GAAAnT,QAAAoT,GAAApT,QAAAqT,KAAAA,IAAArT,EAAA,EAAA,GA1EdqT;AA0Ec;AC9JlB,MAAM+D,KAAkB;AAAA,EACtB;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAa;AAGR,SAAAC,GAAAtX,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA,GAAqB;AAAA,IAAA6H,MAAAA;AAAAA,IAAAgM,OAAAA;AAAAA,IAAAwD,aAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAhK,MAAArN;AAAAA,IAAAsX,UAAAA;AAAAA,IAAA7Q,IAAAA;AAAAA,EAAAA,IAAA5G,GAK1BwN,IAAArN,MAAAC,SAAA,UAAAD;AAAc,MAAAuX,GAAAC,GAAApX,GAAAE,GAAAC,GAAAO,GAAAC,GAAAe;AAAA,MAAAhC,EAAA,CAAA,MAAAsX,KAAAtX,EAAA,CAAA,MAAA8H,KAAA9H,EAAA,CAAA,MAAAuX,KAAAvX,SAAAwX,KAAAxX,EAAA,CAAA,MAAAuN,KAAAvN,EAAA,CAAA,MAAA2G,KAAA3G,EAAA,CAAA,MAAA8T,GAAA;AAId,UAAA6D,IAAkBJ,EAAKtP,IAAKC,EAY3B;AAEEwP,IAAAA,IAAA7Q;AAGQ,UAAA3E,IAAAqL,MAAS,UAAT,IAAA;AAAwB,IAAAvN,EAAA,EAAA,MAAA2G,KAAA3G,UAAAkC,KAF3BzB,IAAA;AAAA,MAAA,GACCqC,EAAMoN;AAAAA,MAAQ3M,KACZrB;AAAAA,MAAwB,GAC1ByE;AAAAA,IAAAA,GACJ3G,QAAA2G,GAAA3G,QAAAkC,GAAAlC,QAAAS,KAAAA,IAAAT,EAAA,EAAA,GAEA8H,IAAAA,GAAI9H,EAAA,EAAA,MAAAuN,KAAAvN,UAAA8T,KACJ7S,IAAA6S,uBACEtR,GAAA,EAAoB,SAAA+K,MAAS,UAAT,OAAA,MAClBuG,UAAAA,EAAAA,CACH,GACD9T,QAAAuN,GAAAvN,QAAA8T,GAAA9T,QAAAiB,KAAAA,IAAAjB,EAAA,EAAA,GAAAA,EAAA,EAAA,MAAAsX,KAAAtX,UAAAuN,KACAvL,IAAAsV,KACC,gBAAA1Q,EAACpE,GAAA,EACU,SAAA+K,MAAS,UAAT,UAAA,SACH,OAAA,kBAEL+J,UAAAA,EAAAA,CACH,GACDtX,QAAAsX,GAAAtX,QAAAuN,GAAAvN,QAAAgC,KAAAA,IAAAhC,EAAA,EAAA,GACAyX,IAAA5Q;AAGQ,UAAA1E,IAAAoL,MAAS,UAAT,IAAA,GACDG,IAAA6J,EAAK7W,SAAU,IAAIoC,EAAMsN,qBAAzBjQ;AAAwD,IAAAH,EAAA,EAAA,MAAA0N,KAAA1N,UAAAmC,KAH1D7B,IAAA;AAAA,MAAA,GACCwC,EAAMqN;AAAAA,MAAa5M,KACjBpB;AAAAA,MAAwB,GACzBuL;AAAAA,IAAAA,GACL1N,QAAA0N,GAAA1N,QAAAmC,GAAAnC,QAAAM,KAAAA,IAAAN,EAAA,EAAA;AAAA,QAAA2N;AAAA,IAAA3N,UAAAwX,KAEc7J,IAAAA,CAAAiK,GAAAC,MACb,gBAAAjR,EAAC+B,IAAA,EAEQ,OAAAmP,EAAIrP,OACF,eAAM+O,IAAWM,EAAIrP,KAAM,GAC7B,OAAAqP,EAAI5S,SAHN2S,CAGY,GAEpB7X,QAAAwX,GAAAxX,QAAA2N,KAAAA,IAAA3N,EAAA,EAAA,GAPAQ,IAAAmX,EAAS1P,IAAK0F,CAOd,GAAC3N,OAAAsX,GAAAtX,OAAA8H,GAAA9H,OAAAuX,GAAAvX,OAAAwX,GAAAxX,OAAAuN,GAAAvN,OAAA2G,GAAA3G,OAAA8T,GAAA9T,OAAAyX,GAAAzX,OAAA0X,GAAA1X,OAAAM,GAAAN,QAAAQ,GAAAR,QAAAS,GAAAT,QAAAgB,GAAAhB,QAAAiB,GAAAjB,QAAAgC;AAAAA,EAAA;AAAAyV,IAAAA,IAAAzX,EAAA,CAAA,GAAA0X,IAAA1X,EAAA,CAAA,GAAAM,IAAAN,EAAA,CAAA,GAAAQ,IAAAR,EAAA,EAAA,GAAAS,IAAAT,EAAA,EAAA,GAAAgB,IAAAhB,EAAA,EAAA,GAAAiB,IAAAjB,EAAA,EAAA,GAAAgC,IAAAhC,EAAA,EAAA;AAAA,MAAAkC;AAAA,EAAAlC,EAAA,EAAA,MAAAyX,KAAAzX,UAAAM,KAAAN,EAAA,EAAA,MAAAQ,KAdJ0B,IAAA,gBAAA0E,EAAC6Q,GAAA,EACK,IAAAnX,GAMHE,UAAAA,GAQH,GAAMR,QAAAyX,GAAAzX,QAAAM,GAAAN,QAAAQ,GAAAR,QAAAkC,KAAAA,IAAAlC,EAAA,EAAA;AAAA,MAAAmC;AAAA,SAAAnC,UAAA0X,KAAA1X,EAAA,EAAA,MAAAS,KAAAT,EAAA,EAAA,MAAAgB,KAAAhB,EAAA,EAAA,MAAAiB,KAAAjB,UAAAgC,KAAAhC,EAAA,EAAA,MAAAkC,KApCRC,IAAA,gBAAAiG,EAACsP,GAAA,EACK,IAAAjX,GAMHqH,UAAAA;AAAAA,IAAAA;AAAAA,IACA7G;AAAAA,IAKAe;AAAAA,IAQDE;AAAAA,EAAAA,GAgBF,GAAMlC,QAAA0X,GAAA1X,QAAAS,GAAAT,QAAAgB,GAAAhB,QAAAiB,GAAAjB,QAAAgC,GAAAhC,QAAAkC,GAAAlC,QAAAmC,KAAAA,IAAAnC,EAAA,EAAA,GArCNmC;AAqCM;AA5DH,SAAA+F,GAAA4P,GAAAxP,GAAA;AAUH,SAAI,OAAOwP,KAAS,WACX;AAAA,IAAArP,OACEqP;AAAAA,IAAI5S,OACJkS,GAAgB9O,CAAK;AAAA,EAAA,IAGvB;AAAA,IAAAG,OACEqP,EAAIrP;AAAAA,IAAMvD,OACV4S,EAAI5S,SAAUkS,GAAgB9O,CAAK;AAAA,EAAA;AAE7C;AC9BE,MAAMyP,KAAuBxV,GAAOsE,CAAG,EAAE,CAAC;AAAA,EAAE7D,OAAAA;AAAM,OAAO;AAAA,EAC9DI,SAAS;AAAA,EACTE,YAAY;AAAA,EACZC,KAAKP,EAAMQ,QAAQ,GAAG;AACxB,EAAE;ACGK,SAAAwU,GAAAjY,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA,GAA0B;AAAA,IAAAgY,QAAAA;AAAAA,IAAAC,gBAAAA;AAAAA,IAAA1K,QAAAtN;AAAAA,EAAAA,IAAAH;AAIT,MAAAO;AAAA,EAAAN,SAAAE,KADtBI,IAAAJ,MAAAC,SAAA,CAAA,IAAAD,GAAWF,OAAAE,GAAAF,OAAAM,KAAAA,IAAAN,EAAA,CAAA;AAAX,QAAAwN,IAAAlN;AAAW,MAAAE;AAAA,EAAAR,EAAA,CAAA,MAAAkY,KAAAlY,SAAAiY,KAMIzX,IAAAA,MAAM0X,IAAiBD,MAAW,OAAX,OAAA,IAA6B,GAACjY,OAAAkY,GAAAlY,OAAAiY,GAAAjY,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAClD,QAAAS,IAAA+M,EAAM2K,WAAN,aACLnX,IAAAiX,MAAW,OAAX,YAAA9X;AAAuC,MAAAc;AAAA,EAAAjB,SAAAiY,KAE7ChX,IAAAgX,MAAW,OACV,gBAAArR,EAACwR,IAAA,EAAiB,UAAA,SAAO,IAEzB,gBAAAxR,EAACyR,IAAA,EAAyB,UAAA,QAAA,CAAO,GAClCrY,OAAAiY,GAAAjY,OAAAiB,KAAAA,IAAAjB,EAAA,CAAA;AAAA,MAAAgC;AAAA,EAAAhC,EAAA,CAAA,MAAAQ,KAAAR,EAAA,CAAA,MAAAS,KAAAT,EAAA,CAAA,MAAAgB,KAAAhB,UAAAiB,KAVHe,IAAA,gBAAA4E,EAACqN,IAAA,EACM,MAAA,SACI,SAAAzT,GACG,cAAAC,GACL,OAAAO,GAENC,UAAAA,EAAAA,CAKH,GAAajB,OAAAQ,GAAAR,OAAAS,GAAAT,OAAAgB,GAAAhB,QAAAiB,GAAAjB,QAAAgC,KAAAA,IAAAhC,EAAA,EAAA;AAAA,MAAAkC;AAAA,EAAAlC,EAAA,EAAA,MAAAkY,KAAAlY,UAAAiY,KAGF/V,IAAAA,MAAMgW,IAAiBD,MAAW,SAAX,OAAA,MAAiC,GAACjY,QAAAkY,GAAAlY,QAAAiY,GAAAjY,QAAAkC,KAAAA,IAAAlC,EAAA,EAAA;AACtD,QAAAmC,IAAAqL,EAAM8K,aAAN,eACL5K,IAAAuK,MAAW,SAAX,YAAA9X;AAAyC,MAAAwN;AAAA,EAAA3N,UAAAiY,KAE/CtK,IAAAsK,MAAW,SACV,gBAAArR,EAAC2R,IAAA,EAAmB,UAAA,SAAO,IAE3B,gBAAA3R,EAAC4R,IAAA,EAA2B,UAAA,QAAA,CAAO,GACpCxY,QAAAiY,GAAAjY,QAAA2N,KAAAA,IAAA3N,EAAA,EAAA;AAAA,MAAA4N;AAAA,EAAA5N,EAAA,EAAA,MAAA0N,KAAA1N,EAAA,EAAA,MAAA2N,KAAA3N,EAAA,EAAA,MAAAkC,KAAAlC,UAAAmC,KAVHyL,IAAA,gBAAAhH,EAACqN,IAAA,EACM,MAAA,SACI,SAAA/R,GACG,cAAAC,GACL,OAAAuL,GAENC,UAAAA,EAAAA,CAKH,GAAa3N,QAAA0N,GAAA1N,QAAA2N,GAAA3N,QAAAkC,GAAAlC,QAAAmC,GAAAnC,QAAA4N,KAAAA,IAAA5N,EAAA,EAAA;AAAA,MAAA4S;AAAA,SAAA5S,EAAA,EAAA,MAAA4N,KAAA5N,UAAAgC,KAxBf4Q,4BACE5Q,UAAAA;AAAAA,IAAAA;AAAAA,IAYA4L;AAAAA,EAAAA,GAWa,GACZ5N,QAAA4N,GAAA5N,QAAAgC,GAAAhC,QAAA4S,KAAAA,IAAA5S,EAAA,EAAA,GAzBH4S;AAyBG;ACtBP,MAAM6F,KAAqB;AAE3B,SAASC,GAAaC,GAAkC;AACtD,QAAMC,IAA6B,CAAA;AACnC,MAAIC,IAAY,GACZC;AAGJ,QAAMC,wBAAmBC,IAAAA,GACnBC,IAAW;AACjB,MAAIC;AACJ,UAAQA,IAAWD,EAASE,KAAKR,CAAI,OAAO;AAC1CI,IAAAA,EAAaK,IAAIF,EAAS5Q,KAAK;AAGjC,QAAM+Q;AAAAA;AAAAA,IACJ;AAAA;AAEF,UAAQP,IAAQO,EAAWF,KAAKR,CAAI,OAAO,QAAM;AAC/C,IAAIG,EAAMxQ,QAAQuQ,KAChBD,EAAOU,KAAKX,EAAK1W,MAAM4W,GAAWC,EAAMxQ,KAAK,CAAC;AAEhD,UAAM+L,IAAQyE,EAAM,CAAC;AACrB,IAAIzE,EAAMkF,WAAW,GAAG,IAClBR,EAAaS,IAAIV,EAAMxQ,KAAK,IAC9BsQ,EAAOU,KAAK;AAAA,MAAEG,MAAM;AAAA,MAAOpF,OAAAA;AAAAA,IAAAA,CAAO,IAElCuE,EAAOU,KAAK;AAAA,MAAEG,MAAM;AAAA,MAAUpF,OAAAA;AAAAA,IAAAA,CAAO,IAE9BoE,GAAmBiB,KAAKrF,CAAK,IACtCuE,EAAOU,KAAK;AAAA,MAAEG,MAAM;AAAA,MAAUpF,OAAAA;AAAAA,IAAAA,CAAO,IAC5BA,MAAU,UAAUA,MAAU,UACvCuE,EAAOU,KAAK;AAAA,MAAEG,MAAM;AAAA,MAAWpF,OAAAA;AAAAA,IAAAA,CAAO,IAC7BA,MAAU,SACnBuE,EAAOU,KAAK;AAAA,MAAEG,MAAM;AAAA,MAAQpF,OAAAA;AAAAA,IAAAA,CAAO,IAEnCuE,EAAOU,KAAK;AAAA,MAAEG,MAAM;AAAA,MAAepF,OAAAA;AAAAA,IAAAA,CAAO,GAE5CwE,IAAYC,EAAMxQ,QAAQ+L,EAAM3T;AAAAA,EAClC;AAEA,SAAImY,IAAYF,EAAKjY,UACnBkY,EAAOU,KAAKX,EAAK1W,MAAM4W,CAAS,CAAC,GAG5BD;AACT;AAEO,SAAAe,GAAA5Z,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA,GAAgC;AAAA,IAAA2Z,MAAAA;AAAAA,IAAA5F,SAAAA;AAAAA,IAAAF,OAAAA;AAAAA,IAAAvH,SAAAA;AAAAA,EAAAA,IAAAxM;AAKT,MAAAG;AAAA,EAAAF,SAAAuM,KAEpBrM,IAAAqM,EAAOsN,MAAO;AAAA,CAAI,EAAC5R,IAAKC,EAA4B,GAAClI,OAAAuM,GAAAvM,OAAAE,KAAAA,IAAAF,EAAA,CAAA;AAD7D,QAAA8Z,IACQ5Z;AAEP,MAAAI;AAAA,EAAAN,EAAA,CAAA,MAAA4I,uBAAAC,IAAA,2BAAA,KAOevI,IAAA;AAAA,IAAAqG,IAAM7D,EAAM+I;AAAAA,EAAAA,GAAgB7L,OAAAM,KAAAA,IAAAN,EAAA,CAAA;AAAA,MAAAQ;AAAA,EAAAR,EAAA,CAAA,MAAA4I,uBAAAC,IAAA,2BAAA,KAK7BrI,IAAA;AAAA,IAAA4C,SAAW;AAAA,IAAME,YAAc;AAAA,IAAQC,KAAO;AAAA,EAAA,GAAKvD,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAA,MAAAS;AAAA,EAAAT,SAAAuM,KAC1D9L,IAAA,gBAAAmG,EAACmT,IAAA,EAAqBxN,UAAAA,GAAoB,cAAA,gBAAc,GAAGvM,OAAAuM,GAAAvM,OAAAS,KAAAA,IAAAT,EAAA,CAAA;AAAA,MAAAgB;AAAA,EAAAhB,EAAA,CAAA,MAAA4I,uBAAAC,IAAA,2BAAA,KAEzD7H,sBAACkT,IAAA,EAAK,GAAGlU,OAAAgB,KAAAA,IAAAhB,EAAA,CAAA;AAAA,MAAAiB;AAAA,EAAAjB,SAAAgU,KADX/S,sBAACgT,IAAA,EAAoBD,YAAoB,cAAA,SACvChT,UAAAA,GACF,GAAahB,OAAAgU,GAAAhU,OAAAiB,KAAAA,IAAAjB,EAAA,CAAA;AAAA,MAAAgC;AAAA,EAAAhC,EAAA,CAAA,MAAAS,KAAAT,UAAAiB,KAJfe,sBAAC6E,GAAA,EAAQ,IAAArG,GACPC,UAAAA;AAAAA,IAAAA;AAAAA,IACAQ;AAAAA,EAAAA,GAGF,GAAMjB,OAAAS,GAAAT,QAAAiB,GAAAjB,QAAAgC,KAAAA,IAAAhC,EAAA,EAAA;AAAA,MAAAkC;AAAA,EAAAlC,EAAA,EAAA,MAAAgC,KAAAhC,UAAA8T,KAPR5R,sBAAC8X,IAAA,EAAgB,IAAAlX,EAAMgJ;;IAErB9J;AAAAA,EAAAA,GAMF,GAAchC,QAAAgC,GAAAhC,QAAA8T,GAAA9T,QAAAkC,KAAAA,IAAAlC,EAAA,EAAA;AAAA,MAAAmC;AAAA,EAAAnC,UAAA8Z,KAGT3X,IAAA2X,EAAc7R,IAAKgS,EAmBnB,GAACja,QAAA8Z,GAAA9Z,QAAAmC,KAAAA,IAAAnC,EAAA,EAAA;AAAA,MAAA0N;AAAA,EAAA1N,UAAAmC,KArBNuL,IAAA,gBAAA9G,EAACsT,IAAA,EAAkB,IAAApX,EAAMmJ,uBACvB,UAAA,gBAAArF,EAACC,GAAA,EAAc,WAAA,OAAU,IAAA/D,EAAMqJ,aAC5BhK,aAoBH,GACF,GAAgBnC,QAAAmC,GAAAnC,QAAA0N,KAAAA,IAAA1N,EAAA,EAAA;AAAA,MAAA2N;AAAA,SAAA3N,EAAA,EAAA,MAAAgU,KAAAhU,EAAA,EAAA,MAAA4Z,KAAA5Z,EAAA,EAAA,MAAA0N,KAAA1N,UAAAkC,KAvClByL,sBAACwM,IAAA,EACOP,MAAAA,GACG5F,SAAAA,GACL,IAAAlR,EAAM8I,gBACE,YAAAtL,GACZ,YAAA,IAEA4B,UAAAA;AAAAA,IAAAA;AAAAA,IASAwL;AAAAA,EAAAA,GAwBF,GAAS1N,QAAAgU,GAAAhU,QAAA4Z,GAAA5Z,QAAA0N,GAAA1N,QAAAkC,GAAAlC,QAAA2N,KAAAA,IAAA3N,EAAA,EAAA,GAxCT2N;AAwCS;AApDN,SAAAsM,GAAArB,GAAAf,GAAA;AAAA,2BA+BMhR,GAAA,EAAc,WAAA,QAAmB,IAAA/D,EAAMuJ,cACrCuM,UAAAA;AAAAA,IAAAA,EAAM3Q,IAAKE,EAcZ;AAAA,IACC;AAAA;AAAA,EAAA,EAAA,GAhBwB0P,CAiB3B;AAAM;AAhDX,SAAA1P,GAAAiS,GAAAC,GAAA;AAAA,SAiCS,OAAOD,KAAU,WAAjBA,IAGE,gBAAAxT,EAACC,KACW,WAAA,QAGR,IAAA/D,EAAO,eAAesX,EAAKX,IAAK,EAAyB,GAG1DW,UAAAA,EAAK/F,SALDgG,CAMP;AACD;AA7CV,SAAAnS,GAAAyQ,GAAA;AAAA,SAOqCD,GAAaC,CAAI;AAAC;ACjEvD,SAAA2B,GAAAva,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA,GAA0B;AAAA,IAAAsM,SAAAA;AAAAA,IAAAuH,OAAA5T;AAAAA,IAAAqa,SAAAja;AAAAA,IAAAkN,QAAAhN;AAAAA,IAAAmG,IAAAA;AAAAA,EAAAA,IAAA5G,GAE/B+T,IAAA5T,MAAAC,SAAA,KAAAD,GACAqa,IAAAja,MAAAH,SAAA,KAAAG;AAAe,MAAAG;AAAA,EAAAT,SAAAQ,KACfC,IAAAD,MAAAL,SAAA,CAAA,IAAAK,GAAWR,OAAAQ,GAAAR,OAAAS,KAAAA,IAAAT,EAAA,CAAA;AAAX,QAAAwN,IAAA/M,GAGA+Z,IAAezZ,GAAuB,IAAI,GAC1C,CAAA0Z,GAAAC,CAAA,IAA0C7Z,GAAS,EAAK,GACxD,CAAA8Z,GAAAC,CAAA,IAAoC/Z,GAAS,EAAK;AAAC,MAAAG;AAAA,EAAAhB,EAAA,CAAA,MAAA4I,uBAAAC,IAAA,2BAAA,KAEjB7H,IAAAA,MAAA;AAChC,UAAA6Z,IAAWL,EAAMtZ;AACjB,IAAI2Z,KACFH,EAAiBG,EAAE7J,eAAgB6J,EAAEvI,YAAa;AAAA,EACnD,GACFtS,OAAAgB,KAAAA,IAAAhB,EAAA,CAAA;AALD,QAAA8a,IAAsB9Z;AAKhB,MAAAC;AAAA,EAAAjB,EAAA,CAAA,MAAA4I,uBAAAC,IAAA,2BAAA,KAEI5H,IAAAA,MAAA;AACR6Z,IAAAA,EAAAA;AACA,UAAAC,IAAWP,EAAMtZ;AACjB,QAAI,CAAC2Z;AAAE;AAEP,UAAAG,IAAiB,IAAIC,eAAeH,CAAa;AACjDE,WAAAA,EAAQlJ,QAAS+I,CAAE,GACZ,MAAMG,EAAQjJ,WAAAA;AAAAA,EAAa,GACnC/R,OAAAiB,KAAAA,IAAAjB,EAAA,CAAA;AAAA,MAAAgC;AAAA,EAAAhC,SAAAuM,KAAEvK,IAAA,CAAC8Y,GAAevO,CAAO,GAACvM,OAAAuM,GAAAvM,OAAAgC,KAAAA,IAAAhC,EAAA,CAAA,GAR3B+B,GAAUd,GAQPe,CAAwB;AAE3B,QAAAkZ,IAAsB1N,EAAM2N,YAAN;AAA8B,MAAAjZ;AAAA,EAAAlC,SAAA2G,KAGzCzE,IAAA;AAAA,IAAA,GAAKY,EAAMiI;AAAAA,IAAS,GAAKpE;AAAAA,EAAAA,GAAI3G,OAAA2G,GAAA3G,OAAAkC,KAAAA,IAAAlC,EAAA,CAAA;AAAA,MAAAmC;AAAA,EAAAnC,SAAAua,KAO5BpY,IAAAoY,IAAUzX,EAAMyI,mBAAhB,CAAA,GAAsCvL,OAAAua,GAAAva,OAAAmC,KAAAA,IAAAnC,EAAA,CAAA;AAAA,MAAA0N;AAAA,EAAA1N,UAAAmC,KAHxCuL,IAAA;AAAA,IAAA,GACC5K,EAAMkI;AAAAA,IAAYuE,WACV3P;AAAAA,IAA8B,GACrCuC;AAAAA,EAAAA,GACLnC,QAAAmC,GAAAnC,QAAA0N,KAAAA,IAAA1N,EAAA,EAAA;AAAA,MAAA2N;AAAA,EAAA3N,EAAA,EAAA,MAAAuM,KAAAvM,UAAA0N,KAPHC,IAAA,gBAAA/G,EAACC,KACW,WAAA,OACL2T,KAAAA,GACD,IAAA9M,GAMHnB,UAAAA,EAAAA,CACH,GAAMvM,QAAAuM,GAAAvM,QAAA0N,GAAA1N,QAAA2N,KAAAA,IAAA3N,EAAA,EAAA;AAAA,MAAA4N;AAAA,EAAA5N,EAAA,EAAA,MAAAkb,KAAAlb,UAAAya,KACL7M,IAAA6M,uBACEW,IAAA,EAAeF,OAAAA,GACd,UAAA,gBAAAtU,EAACqN,IAAA,EACM,MAAA,SACI,SAAA,MAAM2G,EAAc,EAAI,GAC7B,IAAA9X,EAAM2I,wBAEV,UAAA,gBAAA7E,EAACyU,IAAA,EAAmB,GACtB,EAAA,CACF,GACDrb,QAAAkb,GAAAlb,QAAAya,GAAAza,QAAA4N,KAAAA,IAAA5N,EAAA,EAAA;AAAA,MAAA4S;AAAA,EAAA5S,EAAA,EAAA,MAAA4I,uBAAAC,IAAA,2BAAA,KAGU+J,IAAAA,MAAMgI,EAAc,EAAK,GAAC5a,QAAA4S,KAAAA,IAAA5S,EAAA,EAAA;AAAA,MAAA6S;AAAA,EAAA7S,EAAA,EAAA,MAAAuM,KAAAvM,UAAA2a,KAAA3a,EAAA,EAAA,MAAA8T,KAFrCjB,sBAAC8G,IAAA,EACOgB,MAAAA,GACG,SAAA/H,GACFkB,OAAAA,GACEvH,SAAAA,GAAO,GAChBvM,QAAAuM,GAAAvM,QAAA2a,GAAA3a,QAAA8T,GAAA9T,QAAA6S,KAAAA,IAAA7S,EAAA,EAAA;AAAA,MAAAgT;AAAA,SAAAhT,EAAA,EAAA,MAAA2N,KAAA3N,EAAA,EAAA,MAAA4N,KAAA5N,EAAA,EAAA,MAAA6S,KAAA7S,UAAAkC,KA5BJ8Q,IAAA,gBAAA5K,EAACvB,GAAA,EAAQ,IAAA3E,GACPyL,UAAAA;AAAAA,IAAAA;AAAAA,IAWCC;AAAAA,IAWDiF;AAAAA,EAAAA,GAMF,GAAM7S,QAAA2N,GAAA3N,QAAA4N,GAAA5N,QAAA6S,GAAA7S,QAAAkC,GAAAlC,QAAAgT,KAAAA,IAAAhT,EAAA,EAAA,GA7BNgT;AA6BM;AClEV,SAASsI,GAAWC,GAAqB;AACvC,QAAMC,IAASD,EAAIE,QAAQ,MAAM,GAAG;AACpC,SAAOD,EAAOE,OAAO,CAAC,EAAEC,gBAAgBH,EAAOvZ,MAAM,CAAC;AACxD;AAEO,SAAS2Z,GAAaC,GAA4B;AACvD,SAAIA,EAAKC,WAAW,YACXD,EAAKE,gBAAgBT,GAAWO,EAAKG,IAAI,IAE3CH,EAAKpT,SAAS6S,GAAWO,EAAKG,IAAI;AAC3C;ACGA,SAAAC,GAAAlc,GAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA,GAA8B;AAAA,IAAA6b,QAAAA;AAAAA,IAAAtO,QAAAA;AAAAA,EAAAA,IAAAzN;AAO5B,UAAQ+b,GAAAA;AAAAA,IAAM,KACP,YAAU;AAAA,UAAA5b;AAAA,MAAAF,EAAA,CAAA,MAAA4I,uBAAAC,IAAA,2BAAA,KAEF3I,IAAA;AAAA,QAAAkD,SAAW;AAAA,QAAME,YAAc;AAAA,QAAQC,KAAO;AAAA,MAAA,GAAKvD,OAAAE,KAAAA,IAAAF,EAAA,CAAA;AAAA,UAAAM;AAAA,MAAAN,EAAA,CAAA,MAAA4I,uBAAAC,IAAA,2BAAA,KAC1DvI,IAAA,gBAAAsG,EAACsV,MAAgB,IAAA;AAAA,QAAApY,UAAY;AAAA,MAAA,GAAY,OAAA,WAAS,GAAG9D,OAAAM,KAAAA,IAAAN,EAAA,CAAA;AAElD,YAAAQ,IAAAgN,GAAM/C,WAAN;AAA4B,UAAAhK;AAAA,aAAAT,SAAAQ,KAHjCC,IAAA,gBAAA2H,EAACvB,GAAA,EAAQ,IAAA3G,GACPI,UAAAA;AAAAA,QAAAA;AAAAA,QACA,gBAAAsG,EAACpE,GAAA,EAAmB,SAAA,WACjBhC,UAAAA,EAAAA,CACH;AAAA,MAAA,GACF,GAAMR,OAAAQ,GAAAR,OAAAS,KAAAA,IAAAT,EAAA,CAAA,GALNS;AAAAA,IAKM;AAAA,IAAA,KAEL,SAAO;AAAA,UAAAP;AAAA,MAAAF,EAAA,CAAA,MAAA4I,uBAAAC,IAAA,2BAAA,KAEC3I,IAAA;AAAA,QAAAkD,SAAW;AAAA,QAAME,YAAc;AAAA,QAAQC,KAAO;AAAA,MAAA,GAAKvD,OAAAE,KAAAA,IAAAF,EAAA,CAAA;AAAA,UAAAM;AAAA,MAAAN,EAAA,CAAA,MAAA4I,uBAAAC,IAAA,2BAAA,KAC1DvI,IAAA,gBAAAsG,EAACuV,MAAU,IAAA;AAAA,QAAArY,UAAY;AAAA,MAAA,GAAY,OAAA,SAAO,GAAG9D,OAAAM,KAAAA,IAAAN,EAAA,CAAA;AAChB,YAAAQ,IAAAgN,GAAM9E,SAAN;AAAwB,UAAAjI;AAAA,aAAAT,SAAAQ,KAFvDC,IAAA,gBAAA2H,EAACvB,GAAA,EAAQ,IAAA3G,GACPI,UAAAA;AAAAA,QAAAA;AAAAA,QACA,gBAAAsG,EAACpE,GAAA,EAAmB,SAAA,SAAShC,UAAAA,EAAAA,CAAyB;AAAA,MAAA,GACxD,GAAMR,OAAAQ,GAAAR,OAAAS,KAAAA,IAAAT,EAAA,CAAA,GAHNS;AAAAA,IAGM;AAAA,IAAA,KAEL,WAAS;AAAA,UAAAP;AAAA,aAAAF,EAAA,CAAA,MAAA4I,uBAAAC,IAAA,2BAAA,KACL3I,sBAACkc,IAAA,EAAuB,MAAA,GAAA,CAAE,GAAIpc,OAAAE,KAAAA,IAAAF,EAAA,CAAA,GAA9BE;AAAAA,IAA8B;AAAA,IAAA;AAAA,aAE9B;AAAA,EAAI;AACd;AAGI,SAAAmc,GAAAtc,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA,GAA8B;AAAA,IAAA4b,MAAAA;AAAAA,IAAArO,QAAAtN;AAAAA,EAAAA,IAAAH;AAGS,MAAAO;AAAA,EAAAN,SAAAE,KAD5CI,IAAAJ,MAAAC,SAAA,CAAA,IAAAD,GAAWF,OAAAE,GAAAF,OAAAM,KAAAA,IAAAN,EAAA,CAAA;AAAX,QAAAwN,IAAAlN,GAEAia,IAAgBsB,EAAIC,WAAY,SAChCQ,IAA0B9O,EAAM+O,gBAAN,iBAC1BC,IAAuBhP,EAAMiP,aAAN,cACvBC,IAAsBlP,EAAMJ,YAAN,aACtBuP,IAAoBnP,EAAMsO,UAAN,WACpBc,IAA4BpP,EAAMqP,kBAAN,oBAC5BC,IAAoBtP,EAAMuP,UAAN;AAA0B,MAAAvc;AAAA,EAAAR,SAAAwc,KAAAxc,EAAA,CAAA,MAAA6b,EAAAY,aAIzCjc,IAAAqb,EAAIY,aACH,gBAAArU,EAACvB,GAAA,EAAQ,IAAA/D,EAAMuH,YACb,UAAA;AAAA,IAAA,gBAAAzD,EAACpE,GAAA,EACS,SAAA,SACI,YAAA,KACN,OAAA,kBACF,IAAAM,EAAMwH,iBAETkS,UAAAA,EAAAA,CACH;AAAA,IACA,gBAAApU,EAACvB,GAAA,EAAQ,IAAA/D,EAAM0H,gBACb,UAAA;AAAA,MAAA,gBAAA5D,EAACoW,IAAA,EAAc,OAAA,UAAA,CAAS;AAAA,wBACvBxa,GAAA,EAAmB,SAAA,SAAoB,iBACrCqZ,YAAIY,UAAAA,CACP;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,GACF,GACDzc,OAAAwc,GAAAxc,EAAA,CAAA,IAAA6b,EAAAY,WAAAzc,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAA,MAAAS;AAAA,EAAAT,SAAA0c,KAAA1c,EAAA,CAAA,MAAA6b,EAAAzO,YAEA3M,IAAAob,EAAIzO,YAAa,0BACfvG,GAAA,EAAQ,IAAA/D,EAAMuH,YACb,UAAA;AAAA,IAAA,gBAAAzD,EAACpE,GAAA,EACS,SAAA,SACI,YAAA,KACN,OAAA,kBACF,IAAAM,EAAMwH,iBAEToS,UAAAA,EAAAA,CACH;AAAA,IACA,gBAAAtU,EAAC5F,GAAA,EAAmB,SAAA,SAASqZ,UAAAA;AAAAA,MAAAA,EAAIzO;AAAAA,MAAU;AAAA,IAAA,EAAA,CAAC;AAAA,EAAA,GAC9C,GACDpN,OAAA0c,GAAA1c,EAAA,CAAA,IAAA6b,EAAAzO,UAAApN,OAAAS,KAAAA,IAAAT,EAAA,CAAA;AAAA,MAAAgB;AAAA,EAAAhB,SAAA2c,KAGC3b,IAAA,gBAAA4F,EAACpE,GAAA,EACS,SAAA,SACI,YAAA,KACN,OAAA,kBACF,IAAAM,EAAMwH,iBAETqS,UAAAA,GACH,GAAa3c,OAAA2c,GAAA3c,OAAAgB,KAAAA,IAAAhB,EAAA,CAAA;AAAA,MAAAiB;AAAA,EAAAjB,UAAAwN,KAAAxN,EAAA,EAAA,MAAA6b,EAAAC,UACb7a,IAAA,gBAAA2F,EAACqV,IAAA,EAA6B,QAAAJ,EAAIC,QAAiBtO,QAAAA,GAAM,GAAIxN,QAAAwN,GAAAxN,EAAA,EAAA,IAAA6b,EAAAC,QAAA9b,QAAAiB,KAAAA,IAAAjB,EAAA,EAAA;AAAA,MAAAgC;AAAA,EAAAhC,EAAA,EAAA,MAAAgB,KAAAhB,UAAAiB,KAT/De,sBAAC6E,GAAA,EAAQ,IAAA/D,EAAMuH,YACbrJ,UAAAA;AAAAA,IAAAA;AAAAA,IAQAC;AAAAA,EAAAA,GACF,GAAMjB,QAAAgB,GAAAhB,QAAAiB,GAAAjB,QAAAgC,KAAAA,IAAAhC,EAAA,EAAA;AAAA,MAAAkC;AAAA,EAAAlC,UAAA4c,KAAA5c,EAAA,EAAA,MAAAua,KAAAva,EAAA,EAAA,MAAA6b,EAAAgB,kBAAA7c,EAAA,EAAA,MAAA6b,EAAAkB,UAAA/c,EAAA,EAAA,MAAAsc,KAELpa,IAAA2Z,EAAIgB,kBACH,gBAAAzU,EAACvB,GAAA,EACC,UAAA;AAAA,IAAA,gBAAAD,EAACpE,GAAA,EACS,SAAA,SACI,iBACN,OAAA,kBACF,IAAAM,EAAMuH,YAETuS,UAAAA,EAAAA,CACH;AAAA,IACA,gBAAAhW,EAAC0T,MACK,IAAA;AAAA,MAAA2C,IAAM;AAAA,MAAGC,IAAMrB,EAAIkB,SAAJ,MAAA;AAAA,IAAA,GACV,SAAAlB,EAAIgB,gBACN,OAAA,GAAGP,CAAiB,KAAKM,CAAmB,IAC1CrC,SAAAA,EAAAA,CAAO;AAAA,EAAA,GAEpB,GACDva,QAAA4c,GAAA5c,QAAAua,GAAAva,EAAA,EAAA,IAAA6b,EAAAgB,gBAAA7c,EAAA,EAAA,IAAA6b,EAAAkB,QAAA/c,QAAAsc,GAAAtc,QAAAkC,KAAAA,IAAAlC,EAAA,EAAA;AAAA,MAAAmC;AAAA,EAAAnC,EAAA,EAAA,MAAAua,KAAAva,UAAA8c,KAAA9c,EAAA,EAAA,MAAA6b,EAAAkB,UAAA/c,UAAAsc,KAEAna,IAAA0Z,EAAIkB,UACH,gBAAA3U,EAACvB,GAAA,EACC,UAAA;AAAA,IAAA,gBAAAD,EAACpE,GAAA,EACS,SAAA,SACI,iBACN,OAAA,kBACF,IAAAM,EAAMuH,YAETyS,UAAAA,EAAAA,CACH;AAAA,IACA,gBAAAlW,EAAC0T,MACK,IAAA;AAAA,MAAA2C,IAAM;AAAA,IAAA,GACD,SAAApB,EAAIkB,QACN,OAAA,GAAGT,CAAiB,KAAKQ,CAAW,IAClCvC,SAAAA,EAAAA,CAAO;AAAA,EAAA,GAEpB,GACDva,QAAAua,GAAAva,QAAA8c,GAAA9c,EAAA,EAAA,IAAA6b,EAAAkB,QAAA/c,QAAAsc,GAAAtc,QAAAmC,KAAAA,IAAAnC,EAAA,EAAA;AAAA,MAAA0N;AAAA,SAAA1N,EAAA,EAAA,MAAAQ,KAAAR,EAAA,EAAA,MAAAS,KAAAT,EAAA,EAAA,MAAAgC,KAAAhC,EAAA,EAAA,MAAAkC,KAAAlC,UAAAmC,KAlFHuL,sBAAC7G,GAAA,EACErG,UAAAA;AAAAA,IAAAA;AAAAA,IAmBAC;AAAAA,IAcDuB;AAAAA,IAYCE;AAAAA,IAmBAC;AAAAA,EAAAA,GAkBH,GAAMnC,QAAAQ,GAAAR,QAAAS,GAAAT,QAAAgC,GAAAhC,QAAAkC,GAAAlC,QAAAmC,GAAAnC,QAAA0N,KAAAA,IAAA1N,EAAA,EAAA,GAnFN0N;AAmFM;AAIH,SAAAyP,GAAApd,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA,GAAuB;AAAA,IAAA4b,MAAAA;AAAAA,IAAAuB,UAAAA;AAAAA,IAAAC,kBAAAA;AAAAA,IAAA7P,QAAAtN;AAAAA,IAAAyG,IAAAA;AAAAA,EAAAA,IAAA5G;AAMT,MAAAO;AAAA,EAAAN,SAAAE,KAFnBI,IAAAJ,MAAAC,SAAA,CAAA,IAAAD,GAAWF,OAAAE,GAAAF,OAAAM,KAAAA,IAAAN,EAAA,CAAA;AAAX,QAAAwN,IAAAlN,GAGAgd,IAAkBzB,EAAIC,WAAY,WAClCQ,IAA0B9O,EAAM+O,gBAAN;AAE1B,MAAIe,GAAS;AAAA,QAAA9c;AAAA,IAAAR,SAAA6b,KACWrb,IAAAob,GAAaC,CAAI,GAAC7b,OAAA6b,GAAA7b,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAA,QAAAS;AAAA,WAAAT,SAAAQ,KAAjCC,IAAA,gBAAAmG,EAACuG,IAAA,EAAc3M,UAAAA,EAAAA,CAAmB,GAAeR,OAAAQ,GAAAR,OAAAS,KAAAA,IAAAT,EAAA,CAAA,GAAjDS;AAAAA,EAAiD;AACzD,MAAAD;AAAA,EAAAR,EAAA,CAAA,MAAAod,KAAApd,SAAAqd,KAYc7c,IAAAA,MAAM6c,IAAmB,CAACD,CAAQ,GAACpd,OAAAod,GAAApd,OAAAqd,GAAArd,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAA,MAAAS;AAAA,EAAAT,SAAAsc,KAI5C7b,IAAA,gBAAAmG,EAACpE,KAAmB,SAAA,WAAsB,YAAA,KAAW,OAAA,+BAErD,GAAaxC,OAAAsc,GAAAtc,QAAAS,KAAAA,IAAAT,EAAA,EAAA;AAIE,QAAAgB,IAAAoc,IAAA,kBAAA;AAA2C,MAAAnc;AAAA,EAAAjB,UAAAgB,KAH1DC,IAAA,gBAAA2F,EAAC2W,MACK,IAAA;AAAA,IAAA,GACCza,EAAMqH;AAAAA,IAAaqT,WACXxc;AAAAA,EAAAA,GACZ,GACDhB,QAAAgB,GAAAhB,QAAAiB,KAAAA,IAAAjB,EAAA,EAAA;AAAA,MAAAgC;AAAA,EAAAhC,EAAA,EAAA,MAAAod,KAAApd,EAAA,EAAA,MAAAQ,KAAAR,EAAA,EAAA,MAAAS,KAAAT,UAAAiB,KAfJe,sBAAC0U,IAAA,EACM,MAAA,SACG,SAAA,QACC,SAAAlW,GACM4c,iBAAAA,GACX,IAAAta,EAAMoH,aAEVzJ,UAAAA;AAAAA,IAAAA;AAAAA,IAGAQ;AAAAA,EAAAA,GAMF,GAASjB,QAAAod,GAAApd,QAAAQ,GAAAR,QAAAS,GAAAT,QAAAiB,GAAAjB,QAAAgC,KAAAA,IAAAhC,EAAA,EAAA;AAAA,MAAAkC;AAAA,EAAAlC,EAAA,EAAA,MAAAwN,KAAAxN,UAAA6b,KAEP3Z,IAAA,gBAAA0E,EAACC,KAAQ,IAAA/D,EAAMsH,qBACb,UAAA,gBAAAxD,EAACyV,IAAA,EAA2BR,MAAAA,GAAcrO,QAAAA,EAAAA,CAAM,EAAA,CAClD,GAAMxN,QAAAwN,GAAAxN,QAAA6b,GAAA7b,QAAAkC,KAAAA,IAAAlC,EAAA,EAAA;AAAA,MAAAmC;AAAA,EAAAnC,EAAA,EAAA,MAAAod,KAAApd,UAAAkC,KAHRC,sBAACsb,IAAA,EAAaL,IAAAA,GAAU,eAAA,IACtBlb,UAAAA,GAGF,GAAWlC,QAAAod,GAAApd,QAAAkC,GAAAlC,QAAAmC,KAAAA,IAAAnC,EAAA,EAAA;AAAA,MAAA0N;AAAA,SAAA1N,EAAA,EAAA,MAAA2G,KAAA3G,UAAAgC,KAAAhC,EAAA,EAAA,MAAAmC,KAAAnC,EAAA,EAAA,MAAA6b,EAAAG,QA3BbtO,IAAA,gBAAAtF,EAACvB,KACO,OAAA,QACFF,IAAAA,GACO,aAAAkV,EAAIG,MACJ,WAAA,sBAEXha,UAAAA;AAAAA,IAAAA;AAAAA,IAiBAG;AAAAA,EAAAA,GAKF,GAAMnC,QAAA2G,GAAA3G,QAAAgC,GAAAhC,QAAAmC,GAAAnC,EAAA,EAAA,IAAA6b,EAAAG,MAAAhc,QAAA0N,KAAAA,IAAA1N,EAAA,EAAA,GA5BN0N;AA4BM;ACrLV,SAAAgQ,GAAArJ,GAAAsJ,GAAA;AAAA,QAAA3d,IAAAC,EAAA,CAAA,GACE,CAAA2d,GAAAC,CAAA,IAA0Bhd,GAAYwT,CAAK;AAC3C,MAAIsJ,GAAM;AAAA,QAAA5d;AAAA,WAAAC,EAAA,CAAA,MAAA2d,KAAA3d,SAAAqU,KACDtU,IAAA,CAACsU,GAAOsJ,CAAM,GAAC3d,OAAA2d,GAAA3d,OAAAqU,GAAArU,OAAAD,KAAAA,IAAAC,EAAA,CAAA,GAAfD;AAAAA,EAAwB,OAAA;AAAA,QAAAA;AAAA,WAAAC,SAAA4d,KAExB7d,IAAA,CAAC6d,GAAQC,CAAO,GAAC7d,OAAA4d,GAAA5d,OAAAD,KAAAA,IAAAC,EAAA,CAAA,GAAjBD;AAAAA,EAA0B;AAClC;AAGI,SAAA+d,GAAA/d,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA,GAAuB;AAAA,IAAA8d,OAAAA;AAAAA,IAAAX,UAAAld;AAAAA,IAAAmd,kBAAAW;AAAAA,IAAAC,eAAA3d;AAAAA,IAAA4d,sBAAAC;AAAAA,IAAA3Q,QAAAhN;AAAAA,IAAAmG,IAAAA;AAAAA,EAAAA,IAAA5G,GAElBqe,IAAAle,MAAAC,SAAA,KAAAD;AAAiB,MAAAO;AAAA,EAAAT,SAAAM,KAEZG,IAAAH,MAAAH,SAAA,CAAA,IAAAG,GAAmBN,OAAAM,GAAAN,OAAAS,KAAAA,IAAAT,EAAA,CAAA;AAAnB,QAAAqe,IAAA5d;AAAmB,MAAAO;AAAA,EAAAhB,SAAAQ,KAElCQ,IAAAR,MAAAL,SAAA,CAAA,IAAAK,GAAWR,OAAAQ,GAAAR,OAAAgB,KAAAA,IAAAhB,EAAA,CAAA;AAAX,QAAAwN,IAAAxM,GAGA,CAAAoc,GAAAkB,CAAA,IAAgCZ,GAAcU,GAAWJ,CAAY,GACrE,CAAAC,GAAAM,CAAA,IAA0Cb,GACxCW,GACAF,CACF;AAAC,MAAAld;AAAA,EAAAjB,SAAA+d,KAEiB9c,IAAA8c,EAAKS,OAAQtW,EAA2B,GAAClI,OAAA+d,GAAA/d,OAAAiB,KAAAA,IAAAjB,EAAA,CAAA;AAA3D,QAAAye,IAAkBxd,EAAyCP;AAAO,MAAAsB,GAAAE;AAAA,MAAAlC,EAAA,CAAA,MAAAod,KAAApd,EAAA,CAAA,MAAAie,KAAAje,EAAA,CAAA,MAAAwN,KAAAxN,EAAA,CAAA,MAAAye,KAAAze,EAAA,EAAA,MAAAse,KAAAte,EAAA,EAAA,MAAAue,KAAAve,EAAA,EAAA,MAAA2G,KAAA3G,UAAA+d,GAAA;AAQ9D7b,IAAAA,IAAA0G,uBAMEC,IANF,6BAMC;AAAC6V,IAAAA,GAAA;AAbN,YAAAC,IAAqBZ,EAAKS,OAAQrW,EAA6B,GAC/DyW,IAAwBb,EAAKS,OAAQvE,EAA6B,GAClE4E,IAAuBrR,EAAMsR,aAAN,cACvBC,IAAmBvR,EAAM9E,SAAN;AAEnB,UAAIqV,EAAKrd,WAAY,GAAC;AAAA,YAAAyB;AAAA,QAAAnC,EAAA,EAAA,MAAAod,KAAApd,EAAA,EAAA,MAAAwN,KAAAxN,EAAA,EAAA,MAAAse,KAAAte,EAAA,EAAA,MAAA2G,KAAA3G,UAAA+d,EAAA,CAAA,KAElB5b,IAAA,gBAAAyE,EAACuW,IAAA,EACO,MAAAY,EAAK,CAAA,GACDX,UAAAA,GACQkB,kBAAAA,GACV9Q,QAAAA,GACJ7G,IAAAA,EAAAA,CAAE,GACN3G,QAAAod,GAAApd,QAAAwN,GAAAxN,QAAAse,GAAAte,QAAA2G,GAAA3G,QAAA+d,EAAA,CAAA,GAAA/d,QAAAmC,KAAAA,IAAAnC,EAAA,EAAA,GANFkC,IAAAC;AAAA,cAAAuc;AAAAA,MAME;AAEL,UAAAvc;AAAA,MAAAnC,EAAA,EAAA,MAAAod,KAAApd,UAAAse,KAOcnc,IAAAA,MAAMmc,EAAY,CAAClB,CAAQ,GAACpd,QAAAod,GAAApd,QAAAse,GAAAte,QAAAmC,KAAAA,IAAAnC,EAAA,EAAA;AAI/B,YAAA0N,IAAA+Q,IAAY,IAAZ,MAAA;AAAuB,UAAA9Q;AAAA,MAAA3N,UAAA0N,KAFzBC,IAAA;AAAA,QAAA,GACC7K,EAAMoH;AAAAA,QAAY8U,IACjBtR;AAAAA,MAAAA,GACL1N,QAAA0N,GAAA1N,QAAA2N,KAAAA,IAAA3N,EAAA,EAAA;AAAA,UAAA4N;AAAA,MAAA5N,UAAA+d,EAAArd,UAAAV,UAAA6e,KAEDjR,sBAACpL,GAAA,EAAmB,SAAA,WAAsB,YAAA,KAAW,OAAA,kBAClDub,UAAAA;AAAAA,QAAAA,EAAKrd;AAAAA,QAAQ;AAAA,QAAEme;AAAAA,MAAAA,GAClB,GAAa7e,EAAA,EAAA,IAAA+d,EAAArd,QAAAV,QAAA6e,GAAA7e,QAAA4N,KAAAA,IAAA5N,EAAA,EAAA;AAIE,YAAA4S,IAAAwK,IAAA,kBAAA;AAA2C,UAAAvK;AAAA,MAAA7S,UAAA4S,KAH1DC,IAAA,gBAAAjM,EAAC2W,MACK,IAAA;AAAA,QAAA,GACCza,EAAMqH;AAAAA,QAAaqT,WACX5K;AAAAA,MAAAA,GACZ,GACD5S,QAAA4S,GAAA5S,QAAA6S,KAAAA,IAAA7S,EAAA,EAAA;AAAA,UAAAgT;AAAA,MAAAhT,UAAAye,KACDzL,IAAAyL,IAAY,KACX,gBAAArW,EAAC5F,GAAA,EAAmB,SAAA,SAAY,IAAAM,EAAM4J,YACnC+R,UAAAA;AAAAA,QAAAA;AAAAA,QACD,gBAAA7X,EAACoB,MAAiB,IAAA;AAAA,UAAAlE,UAAY;AAAA,QAAA,GAAY,OAAA,QAAA,CAAO;AAAA,MAAA,GACnD,GACD9D,QAAAye,GAAAze,QAAAgT,KAAAA,IAAAhT,EAAA,EAAA;AAAA,UAAAiT;AAAA,MAAAjT,UAAAod,KAAApd,EAAA,EAAA,MAAA2N,KAAA3N,EAAA,EAAA,MAAA4N,KAAA5N,EAAA,EAAA,MAAA6S,KAAA7S,UAAAgT,KAAAhT,EAAA,EAAA,MAAAmC,KAxBH8Q,sBAACyD,IAAA,EACM,MAAA,SACG,SAAA,QACC,SAAAvU,GACMib,iBAAAA,GACX,IAAAzP,GAKJC,UAAAA;AAAAA,QAAAA;AAAAA,QAGAiF;AAAAA,QAMCG;AAAAA,MAAAA,GAMH,GAAShT,QAAAod,GAAApd,QAAA2N,GAAA3N,QAAA4N,GAAA5N,QAAA6S,GAAA7S,QAAAgT,GAAAhT,QAAAmC,GAAAnC,QAAAiT,KAAAA,IAAAjT,EAAA,EAAA;AACR,YAAAyX,IAAAgG,IAAaL,IAAAA,GAAUjK,IAAA,IACrBuE,IAAA7Q,GACWuM,IAAA;AAAI,UAAAC;AAAA,MAAArT,EAAA,EAAA,MAAA4I,uBAAAC,IAAA,2BAAA,KACVwK,IAAA;AAAA,QAAA,GACCvQ,EAAMsH;AAAAA,QAAoBN,GAC1B;AAAA,QAACtF,WACO;AAAA,MAAA,GACZxE,QAAAqT,KAAAA,IAAArT,EAAA,EAAA;AAAA,UAAAuT;AAAA,MAAAvT,EAAA,EAAA,MAAA+e,KAAA/e,EAAA,EAAA,MAAAie,KAAAje,EAAA,EAAA,MAAAwN,KAAAxN,UAAAue,KAEoBhL,IAAAsI,CAAAA,MAAA;AACnB,cAAAoD,IAAmBhB,EAAcpC,EAAIqD,EAAG,KAArB;AAA+B,eAEhD,gBAAA9W,EAACvB,KAEW,WAAA,MACN,IAAA/D,EAAMmK,eACKgS,iBAAAA,GAEf,UAAA;AAAA,UAAA,gBAAA7W,EAACsO,IAAA,EACS,SAAA,QACF,OAAA,WACN,WAAA,IACS,SAAA,MACP6H,EAAiB;AAAA,YAAA,GACZN;AAAAA,YAAa,CACfpC,EAAIqD,EAAG,GAAG,CAACD;AAAAA,UAAAA,CACb,GAEYA,oBACX,IAAAnc,EAAM2J,aAEV,UAAA;AAAA,YAAA,gBAAA7F,EAACpE,GAAA,EACW,UAAA,GACE,YAAA,GACJ,SAAA,WACF,OAAA,kBAELoZ,UAAAA,GAAaC,CAAI,EAAA,CACpB;AAAA,YACCA,EAAIC,WAAY,WACf,gBAAAlV,EAACpE,KAAmB,SAAA,SAAc,OAAA,cAC/Buc,UAAAA,EAAAA,CACH;AAAA,YAEF,gBAAAnY,EAACuY,MACK,IAAA;AAAA,cAAA,GACCrc,EAAMqH;AAAAA,cAAaqT,WACXyB,IAAA,kBAAA;AAAA,YAAA,EACb,CAAC;AAAA,UAAA,GAEL;AAAA,4BACCxB,IAAA,EAAawB,IAAAA,GAAY,eAAA,IACxB,UAAA,gBAAArY,EAACC,GAAA,EAAQ,IAAA,KAAS,IAAA,GAChB,UAAA,gBAAAD,EAACyV,MAA2BR,MAAAA,GAAcrO,QAAAA,GAAM,GAClD,EAAA,CACF;AAAA,QAAA,EAAA,GA1CKqO,EAAIqD,EA2CX;AAAA,MAAM,GAETlf,QAAA+e,GAAA/e,QAAAie,GAAAje,QAAAwN,GAAAxN,QAAAue,GAAAve,QAAAuT,KAAAA,IAAAvT,EAAA,EAAA;AAjDA,YAAAyT,IAAAmL,EAAe3W,IAAKsL,CAiDpB;AAAC,UAAAI;AAAA,MAAA3T,EAAA,EAAA,MAAA0X,KAAA1X,EAAA,EAAA,MAAAoT,KAAApT,EAAA,EAAA,MAAAqT,KAAArT,UAAAyT,KAzDJE,sBAAC+D,GAAA,EACW,WAAAtE,GACN,IAAAC,GAMHI,UAAAA,GAkDH,GAAMzT,QAAA0X,GAAA1X,QAAAoT,GAAApT,QAAAqT,GAAArT,QAAAyT,GAAAzT,QAAA2T,KAAAA,IAAA3T,EAAA,EAAA;AAAA,UAAAof;AAAA,MAAApf,EAAA,EAAA,MAAAyX,KAAAzX,EAAA,EAAA,MAAAkT,KAAAlT,EAAA,EAAA,MAAAmT,KAAAnT,UAAA2T,KA3DRyL,sBAAC3H,GAAA,EAAa2F,IAAAA,GAAU,eAAAjK,GACtBQ,UAAAA,GA2DF,GAAW3T,QAAAyX,GAAAzX,QAAAkT,GAAAlT,QAAAmT,GAAAnT,QAAA2T,GAAA3T,QAAAof,KAAAA,IAAApf,EAAA,EAAA;AAAA,UAAAqf;AAAA,MAAArf,EAAA,EAAA,MAAAie,KAAAje,UAAAwN,KAAAxN,EAAA,EAAA,MAAAue,KACOc,IAAAC,CAAAA,MAChB,gBAAA1Y,EAACuW,IAAA,EAEOtB,SACErO,QAAAA,GACE,UAAAyQ,EAAcpC,EAAIqD,EAAG,GACb,kBAAA,MAChBX,EAAiB;AAAA,QAAA,GACZN;AAAAA,QAAa,CACfpC,EAAIqD,EAAG,GAAG,CAACjB,EAAcpC,EAAIqD,EAAG;AAAA,MAAA,CAClC,EAAA,GARErD,EAAIqD,EAQL,GAGPlf,QAAAie,GAAAje,QAAAwN,GAAAxN,QAAAue,GAAAve,QAAAqf,KAAAA,IAAArf,EAAA,EAAA,GArGHgC,sBAAC6E,GAAA,EAAU,OAAA,QAAWF,IAAAA,GAAc,WAAA,sBAClCsM,UAAAA;AAAAA,QAAAA;AAAAA,QA0BAmM;AAAAA,QA6DCT,EAAY1W,IAAKoX,CAajB;AAAA,MAAA,GACH;AAAA,IAAM;AAAArf,IAAAA,OAAAod,GAAApd,OAAAie,GAAAje,OAAAwN,GAAAxN,OAAAye,GAAAze,QAAAse,GAAAte,QAAAue,GAAAve,QAAA2G,GAAA3G,QAAA+d,GAAA/d,QAAAgC,GAAAhC,QAAAkC;AAAAA,EAAA;AAAAF,IAAAA,IAAAhC,EAAA,EAAA,GAAAkC,IAAAlC,EAAA,EAAA;AAAA,SAAAkC,MAAA0G,uBAAAC,IAAA,6BAAA,IAAA3G,IAtGNF;AAsGM;AAxIH,SAAAiY,GAAAsF,GAAA;AAAA,SAiBuCC,EAAC1D,WAAY;AAAS;AAjB7D,SAAA3T,GAAAsX,GAAA;AAAA,SAgBoCD,EAAC1D,WAAY;AAAS;AAhB1D,SAAA5T,GAAAsX,GAAA;AAAA,SAeiCA,EAAC1D,WAAY;AAAO;"}
1
+ {"version":3,"file":"chat.js","names":["CHAT_MAX_WIDTH","CHAT_SCROLL_DELAY","CHAT_DIVIDER_DELAY","CHAT_TOOL_CODE_AREA_MAX_HEIGHT","useEffect","useRef","useState","UseTypewriterOptions","speed","skipAnimation","UseTypewriterResult","displayedText","isTyping","useTypewriter","fullText","t0","$","_c","t1","undefined","options","t2","t3","t4","length","charIndex","setCharIndex","charRef","t5","t6","current","msPerChar","rafId","lastTime","tick","timestamp","charsToAdd","Math","floor","next","min","requestAnimationFrame","cancelAnimationFrame","t7","slice","t8","t9","styled","Typography","SxProps","Theme","ChatMessageOverflow","whiteSpace","overflowX","overflowWrap","maxWidth","displayName","styles","agentMessageContainer","theme","typography","body2","width","display","flexDirection","alignItems","gap","spacing","paddingRight","marginTop","alignSelf","borderCollapse","margin","fontSize","border","palette","divider","padding","textAlign","backgroundColor","action","hover","fontWeight","listStyle","paddingLeft","marginRight","textDecoration","opacity","userMessageContainer","borderRadius","userMessage","background","paper","color","text","primary","muted","disabled","userMessageTop","marginBottom","errorMessage","flexWrap","errorActions","errorAction","errorActionSeparator","mr","black","suggestionButton","transition","justifyContent","minWidth","height","secondary","borderColor","hint","Record","Box","ChatUserMessageProps","ChatMessageOverflow","styles","ChatUserMessage","t0","$","_c","children","muted","t1","topContext","sx","undefined","t2","userMessageTop","t3","t4","userMessage","t5","t6","userMessageContainer","forwardRef","Box","styled","BoxProps","ChatAgentMessageProps","styles","InnerBox","t0","$","_c","className","props","t1","t2","StyledAgentMessage","theme","agentMessageContainer","ChatAgentMessage","HTMLDivElement","ref","children","displayName","lazy","Suspense","ChatAgentMessage","ChatAgentMessageMarkdownProps","MarkdownContent","then","m","default","ChatAgentMessageMarkdown","t0","$","_c","children","props","t1","t2","t3","displayName","Box","Link","Typography","ErrorOutline","ChatErrorMessageProps","styles","ChatErrorMessage","t0","$","_c","errors","icon","actions","sx","t1","errorMessage","t2","t3","map","_temp","t4","length","errorActions","_temp2","t5","action","index_0","index","errorActionSeparator","onClick","errorAction","label","error","ButtonBase","Typography","ArrowUpward","ChatSuggestionButtonProps","styles","ChatSuggestionButton","t0","$","_c","color","label","props","sx","t1","backgroundColor","undefined","t2","suggestionButton","t3","t4","Symbol","for","t5","SxProps","Theme","keyframes","shimmer","breatheOuter","breatheInner","styles","thinking","display","alignItems","minHeight","spacing","background","palette","text","disabled","secondary","backgroundSize","backgroundClip","WebkitBackgroundClip","WebkitTextFillColor","animation","animationDuration","loader","justifyContent","position","p","loaderOuterCircle","inset","margin","borderRadius","backgroundColor","action","loaderInnerCircle","primary","traceHeader","padding","paddingLeft","width","color","hover","traceChevron","transition","traceDetailsWrapper","marginTop","border","borderColor","traceField","gap","traceFieldLabel","flexShrink","traceReference","success","relatedLight","dark","traceStatusSuccess","main","traceStatusError","error","codeArea","codeAreaPre","default","fontFamily","typography","code3","code1","fontSize","lineHeight","whiteSpace","wordBreak","overflowY","codeAreaPreError","borderLeft","codeAreaFullViewButton","top","right","fullViewDialog","fullViewPaper","fullViewTitle","borderBottom","borderBottomColor","fullViewDialogContent","paddingTop","fullViewPre","counterReset","fullViewLine","counterIncrement","content","marginRight","textAlign","userSelect","groupHeader","errorBadge","fontWeight","syntaxToken_key","syntaxToken_string","syntaxToken_number","syntaxToken_boolean","syntaxToken_null","syntaxToken_punctuation","groupListItem","borderBottomWidth","Record","Typography","ChatThinkingProps","styles","ChatThinking","t0","$","_c","children","t1","duration","t2","sx","undefined","durSeconds","t3","thinking","animationDuration","t4","Box","ChatLoaderProps","styles","ChatLoader","t0","$","_c","size","t1","labels","t2","sx","undefined","t3","t4","loading","t5","loader","width","height","t6","t7","t8","loaderOuterCircle","t9","t10","t11","loaderInnerCircle","t12","SxProps","Theme","CHAT_MAX_WIDTH","styles","header","display","alignItems","justifyContent","padding","spacing","headerTitle","flexGrow","px","headerActions","marginLeft","gap","footerWrapper","footerBox","maxWidth","width","margin","gridTemplateColumns","columnGap","backgroundColor","palette","default","background","borderRadius","paddingInline","footerMain","minWidth","flexDirection","footerSend","alignSelf","paddingBottom","footerInput","typography","minHeight","fontSize","body2","lineHeight","letterSpacing","resize","footerSlots","flexWrap","paddingLeft","modelSelector","textTransform","color","text","secondary","modelSelectorLabel","overflow","textOverflow","whiteSpace","footerCaption","textAlign","content","overflowY","flex","position","mx","maxHeight","pt","pb","borderTopWidth","borderTopStyle","borderBottomWidth","borderBottomStyle","sentinel","height","flexShrink","jumpToLatestWrapper","bottom","zIndex","jumpToLatest","transition","starter","starterItems","marginTop","starterItemsTwoCol","Record","forwardRef","useEffect","useImperativeHandle","useRef","useState","Box","Fab","KeyboardArrowDown","ChatContentProps","ChatContentRef","styles","AUTO_SCROLL_THRESHOLD","ChatContent","t0","ref","$","_c","children","autoScroll","t1","labels","t2","sx","undefined","t3","scrollRef","topSentinelRef","bottomSentinelRef","isAtTop","setIsAtTop","isAtBottom","setIsAtBottom","t4","Symbol","for","current","scrollTo","top","scrollHeight","behavior","scrollToBottom","t5","scrollToTop","t6","t7","t8","t9","root","topEl","bottomEl","topObserver","IntersectionObserver","t10","entry","isIntersecting","bottomObserver","t11","entry_0","observe","disconnect","root_0","prevScrollHeight","rafId","check","newScrollHeight","growth","distanceFromBottom","scrollTop","clientHeight","mo","MutationObserver","requestAnimationFrame","childList","subtree","characterData","cancelAnimationFrame","t12","t13","palette","divider","t14","palette_0","content","borderTopColor","borderBottomColor","t15","sentinel","t16","t17","jumpToLatest","t18","t19","t20","opacity","pointerEvents","t21","t22","jumpToLatestWrapper","t23","displayName","Box","IconButton","Typography","Close","ChatHeaderProps","styles","ChatHeader","t0","$","_c","leftSlot","title","rightSlot","onClose","sx","t1","header","t2","headerTitle","t3","t4","headerActions","t5","useState","Box","Button","FormControl","FormHelperText","IconButton","InputBase","Menu","MenuItem","Typography","ArrowUpwardOutlined","StopCircleOutlined","KeyboardArrowDown","ChatFooterProps","styles","DEFAULT_CAPTION","ChatFooter","t0","$","_c","value","onChange","onSend","onStop","isGenerating","t1","disabled","t2","placeholder","t3","labels","t4","caption","t5","models","selectedModel","onModelChange","startToolbarSlot","endToolbarSlot","sx","undefined","t6","modelAnchor","setModelAnchor","t7","trim","canSend","showModelSelector","length","modelLabel","model","t8","find","m","label","selectedLabel","hasSlots","Boolean","t9","e","key","shiftKey","preventDefault","handleKeyDown","t10","send","stop","sendButton","t11","footerWrapper","t12","e_0","target","t13","t14","footerInput","t15","footerSlots","e_1","currentTarget","modelSelector","modelSelectorLabel","vertical","horizontal","map","m_0","t16","footerMain","t17","footerSend","t18","footerBox","t19","footerCaption","t20","Box","Typography","ChatStarterProps","ChatSuggestionButton","styles","DEFAULT_PALETTE","ChatStarter","t0","$","_c","icon","title","description","items","size","t1","onSelect","sx","undefined","T0","T1","t2","t3","t4","t5","t6","t7","fullItems","map","_temp","t8","starter","gap","t9","t10","length","starterItemsTwoCol","starterItems","t11","item_0","i","item","label","color","index","Box","styled","ChatActionsContainer","theme","display","alignItems","gap","spacing","IconButton","ThumbUpOutlined","ThumbDownOutlined","ThumbUp","ThumbDown","ChatRatingActionProps","ChatRatingAction","t0","$","_c","rating","onRatingChange","labels","t1","t2","undefined","t3","t4","thumbUp","t5","t6","t7","t8","t9","thumbDown","t10","t11","t12","t13","useMemo","Dialog","DialogTitle","DialogContent","IconButton","Box","Close","CopyButton","ChatToolFullViewDialogProps","styles","Token","type","value","NUMBER_START_REGEX","tokenizeLine","line","tokens","lastIndex","match","RegExpExecArray","keyPositions","Set","keyRegex","keyMatch","exec","add","index","tokenRegex","push","slice","startsWith","has","test","length","ChatToolFullViewDialog","t0","$","_c","open","onClose","title","content","t1","split","map","_temp","tokenizedLines","t2","Symbol","for","sx","fullViewPaper","t3","display","alignItems","gap","t4","t5","t6","t7","t8","fullViewTitle","t9","_temp3","t10","fullViewDialogContent","fullViewPre","t11","fullViewDialog","i","fullViewLine","_temp2","token","j","useRef","useState","useEffect","useCallback","Box","IconButton","Tooltip","ChatToolCodeAreaProps","CHAT_TOOL_CODE_AREA_MAX_HEIGHT","ChatToolFullViewDialog","styles","OpenDiagonallyRight","ChatToolCodeArea","t0","$","_c","content","title","t1","isError","t2","labels","t3","sx","undefined","t4","preRef","isOverflowing","setIsOverflowing","dialogOpen","setDialogOpen","t5","Symbol","for","el","current","scrollHeight","clientHeight","checkOverflow","t6","el_0","observer","ResizeObserver","observe","disconnect","t7","fullViewLabel","fullView","t8","codeArea","t9","codeAreaPreError","t10","codeAreaPre","maxHeight","t11","t12","codeAreaFullViewButton","t13","t14","t15","ChatToolItem","capitalize","str","spaced","replace","charAt","toUpperCase","slice","getToolLabel","tool","status","runningLabel","name","label","Box","CircularProgress","Typography","Collapse","Button","ArrowRight","CheckCircle","Error","ChatToolTraceProps","ChatToolCodeArea","styles","ChatThinking","getToolLabel","McpTool","TraceStatusIndicator","t0","$","_c","status","labels","t1","Symbol","for","display","alignItems","gap","t2","fontSize","t3","success","t4","error","ChatToolTraceDetails","tool","undefined","isError","toolExecutedLabel","toolExecuted","referenceLabel","reference","durationLabel","duration","statusLabel","inputArgumentsLabel","inputArguments","outputLabel","output","traceField","traceFieldLabel","traceReference","t5","t6","t7","t8","mt","mb","t9","t10","ChatToolTrace","expanded","onExpandedChange","sx","isRunning","traceChevron","transform","traceHeader","traceDetailsWrapper","name","Box","Button","Collapse","Typography","ArrowRight","ChevronRight","ErrorOutline","ChatToolGroupProps","ChatToolTrace","ChatToolTraceDetails","styles","getToolLabel","useState","useController","value","setter","$","_c","_value","_setter","t0","const","ChatToolGroup","tools","expanded","t1","onExpandedChange","_setExpanded","expandedTools","t2","onToolExpandedChange","_setExpandedTools","labels","t3","sx","_expanded","undefined","t4","_expandedTools","t5","setExpanded","setExpandedTools","t6","filter","_temp","numErrors","length","t7","t8","Symbol","for","bb0","runningTools","_temp2","nonRunningTools","_temp3","toolsUsedLabel","toolsUsed","errorLabel","error","t9","t10","t11","traceHeader","pr","t12","t13","t14","traceChevron","transform","t15","errorBadge","fontSize","t16","T0","t18","T1","t19","t20","traceDetailsWrapper","p","listStyle","t21","tool","isExpanded","id","groupListItem","groupHeader","status","t22","map","t23","t24","t17","t25","tool_0","t_1","t","t_0"],"sources":["../src/chat/const.ts","../src/chat/use-typewriter.ts","../src/chat/bubbles/styles.ts","../src/chat/bubbles/chat-user-message.tsx","../src/chat/bubbles/chat-agent-message.tsx","../src/chat/bubbles/chat-agent-message-markdown.tsx","../src/chat/bubbles/chat-error-message.tsx","../src/chat/bubbles/chat-suggestion-button.tsx","../src/chat/feedback/styles.ts","../src/chat/feedback/chat-thinking.tsx","../src/chat/feedback/chat-loader.tsx","../src/chat/containers/styles.ts","../src/chat/containers/chat-content.tsx","../src/chat/containers/chat-header.tsx","../src/chat/containers/chat-footer.tsx","../src/chat/containers/chat-starter.tsx","../src/chat/feedback/chat-actions-container.tsx","../src/chat/feedback/chat-rating-action.tsx","../src/chat/feedback/chat-tool-full-view-dialog.tsx","../src/chat/feedback/chat-tool-code-area.tsx","../src/chat/feedback/get-tool-label.ts","../src/chat/feedback/chat-tool-trace.tsx","../src/chat/feedback/chat-tool-group.tsx"],"sourcesContent":["export const CHAT_MAX_WIDTH = 768\nexport const CHAT_SCROLL_DELAY = 300\nexport const CHAT_DIVIDER_DELAY = 100\nexport const CHAT_TOOL_CODE_AREA_MAX_HEIGHT = 126\n","import { useEffect, useRef, useState } from 'react'\n\ninterface UseTypewriterOptions {\n /** Characters revealed per second (default: `500`). */\n speed?: number\n /** When true, reveal the full text immediately (and snap to it if it grows). */\n skipAnimation?: boolean\n}\n\ninterface UseTypewriterResult {\n /** The portion of `fullText` revealed so far. */\n displayedText: string\n /** `true` while characters are still being revealed. */\n isTyping: boolean\n}\n\n/**\n * Reveals a string character-by-character at a steady rate via\n * `requestAnimationFrame`. Designed for bursty, streamed agent text: as\n * `fullText` grows the reveal keeps chasing the new end, and flipping\n * `skipAnimation` to `true` (e.g. once generation finishes) snaps to the full\n * text. Pair it with `ChatAgentMessage`.\n *\n * @example\n * ```tsx\n * const { displayedText, isTyping } = useTypewriter(message)\n * return (\n * <ChatAgentMessage>\n * <Markdown>{displayedText}</Markdown>\n * {isTyping ? <Cursor /> : null}\n * </ChatAgentMessage>\n * )\n * ```\n */\nexport function useTypewriter(\n fullText: string,\n options: UseTypewriterOptions = {},\n): UseTypewriterResult {\n const { speed = 500, skipAnimation = false } = options\n\n const [charIndex, setCharIndex] = useState(() =>\n skipAnimation ? fullText.length : 0,\n )\n\n // Mirror of the revealed count, read/written ONLY inside the rAF loop (never\n // during render). This lets the animation effect omit `charIndex` from its\n // deps: were it a dep, the loop would tear down and restart on every revealed\n // frame — resetting its frame timer — and never accumulate the elapsed time\n // needed to advance, which stalls completely while `fullText` is also growing\n // (the streaming case).\n const charRef = useRef(charIndex)\n\n useEffect(() => {\n // When `skipAnimation` is set there's nothing to animate — the full text is\n // shown directly via the derived `displayedText` below (no setState here, so\n // a streamed message snaps to its full text the moment generation finishes,\n // without an extra render or a `set-state-in-effect` cascade).\n if (skipAnimation) return\n\n // Already fully revealed (e.g. text hasn't grown since the last frame).\n if (charRef.current >= fullText.length) return\n\n const msPerChar = 1000 / speed\n let rafId: number\n let lastTime: number | null = null\n\n function tick(timestamp: number) {\n // Plain `?? =` not `??=`: the React Compiler can't lower logical-assignment\n // operators and would bail this hook out of optimization.\n lastTime = lastTime ?? timestamp\n const charsToAdd = Math.floor((timestamp - lastTime) / msPerChar)\n if (charsToAdd > 0) {\n lastTime = timestamp\n const next = Math.min(charRef.current + charsToAdd, fullText.length)\n charRef.current = next\n setCharIndex(next)\n if (next >= fullText.length) return // fully revealed — stop the loop\n }\n rafId = requestAnimationFrame(tick)\n }\n\n rafId = requestAnimationFrame(tick)\n return () => cancelAnimationFrame(rafId)\n }, [fullText, speed, skipAnimation])\n\n return {\n displayedText: skipAnimation ? fullText : fullText.slice(0, charIndex),\n isTyping: !skipAnimation && charIndex < fullText.length,\n }\n}\n","import { styled, Typography, type SxProps, type Theme } from '@mui/material'\n\nexport const ChatMessageOverflow = styled(Typography)(() => ({\n whiteSpace: 'pre-wrap',\n overflowX: 'clip',\n overflowWrap: 'break-word',\n maxWidth: '100%',\n}))\nChatMessageOverflow.displayName = 'ChatMessageOverflow'\n\nexport const styles = {\n agentMessageContainer: (theme: Theme) => ({\n ...theme.typography.body2,\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n // Separate the stacked turn blocks (tools → answer text → actions) per the\n // Figma \"Chat Turn\" spec (gap-8).\n gap: theme.spacing(1),\n paddingRight: theme.spacing(4),\n '& + .PsChat--agent-message': {\n marginTop: theme.spacing(1),\n },\n '& + .PsChat--user-message': {\n marginTop: theme.spacing(3),\n },\n '& > p:first-of-type': {\n marginTop: 0,\n },\n '& table': {\n alignSelf: 'stretch',\n display: 'block',\n overflowX: 'auto',\n maxWidth: '100%',\n borderCollapse: 'collapse',\n margin: theme.spacing(1, 0),\n fontSize: '0.875em',\n },\n '& th, & td': {\n border: `1px solid ${theme.palette.divider}`,\n padding: theme.spacing(0.5, 1),\n textAlign: 'left',\n },\n '& th': {\n backgroundColor: theme.palette.action.hover,\n fontWeight: 600,\n },\n '& tr:nth-of-type(even) td': {\n backgroundColor: theme.palette.action.hover,\n },\n '& ul.contains-task-list': {\n listStyle: 'none',\n paddingLeft: 0,\n },\n '& .task-list-item input[type=\"checkbox\"]': {\n marginRight: theme.spacing(0.5),\n },\n '& del': {\n textDecoration: 'line-through',\n opacity: 0.7,\n },\n '& > ul, & > ol': {\n margin: theme.spacing(1, 0),\n paddingLeft: theme.spacing(3),\n '& > li + li': {\n marginTop: theme.spacing(1),\n },\n },\n }),\n userMessageContainer: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-end',\n paddingLeft: ({ spacing }) => spacing(4),\n '&:has(+ .PsChat--user-message) > .PsChat--user-message-inner': {\n borderRadius: ({ spacing }) => spacing(2),\n },\n '& + .PsChat--user-message': {\n marginTop: ({ spacing }) => spacing(0.5),\n },\n '& + .PsChat--agent-message': {\n marginTop: ({ spacing }) => spacing(3),\n },\n },\n userMessage: {\n padding: ({ spacing }) => spacing(0.75, 1.5),\n borderRadius: ({ spacing }) => spacing(2, 2, 0.25, 2),\n border: ({ palette }) => `1px solid ${palette.divider}`,\n backgroundColor: ({ palette }) => palette.background.paper,\n color: ({ palette }) => palette.text.primary,\n width: 'fit-content',\n },\n muted: {\n color: ({ palette }) => palette.text.disabled,\n },\n userMessageTop: {\n textAlign: 'right',\n marginBottom: ({ spacing }) => spacing(0.5),\n },\n errorMessage: {\n display: 'flex',\n alignItems: 'center',\n flexWrap: 'wrap',\n gap: ({ spacing }) => spacing(1),\n },\n errorActions: {\n display: 'flex',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(0.5),\n },\n errorAction: {\n color: ({ palette }) => palette.text.primary,\n },\n errorActionSeparator: {\n mr: 0.5,\n color: ({ palette }) => palette.black[25],\n fontWeight: 600,\n },\n suggestionButton: {\n transition: 'border-color 0.2s',\n width: '100%',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n textAlign: 'left',\n gap: ({ spacing }) => spacing(1),\n padding: ({ spacing }) => spacing(0.75, 1.5),\n borderRadius: ({ spacing }) => spacing(2),\n border: ({ palette }) => `1px solid ${palette.divider}`,\n '& .MuiSvgIcon-root': {\n transition: 'color 0.2s',\n color: 'inherit',\n fontSize: ({ spacing }) => spacing(1.5),\n width: ({ spacing }) => spacing(1.5),\n minWidth: ({ spacing }) => spacing(1.5),\n height: ({ spacing }) => spacing(2.5),\n },\n '&:not(.Mui-disabled) .MuiSvgIcon-root': {\n color: ({ palette }) => palette.text.secondary,\n },\n '&:hover': {\n borderColor: ({ palette }) => palette.text.hint,\n '& .MuiSvgIcon-root': {\n color: ({ palette }) => palette.text.primary,\n },\n },\n '&.Mui-disabled': {\n color: ({ palette }) => palette.text.disabled,\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box } from '@mui/material'\nimport type { ChatUserMessageProps } from '../types'\nimport { ChatMessageOverflow, styles } from './styles'\n\nexport function ChatUserMessage({\n children,\n muted = false,\n topContext,\n sx,\n}: ChatUserMessageProps) {\n return (\n <Box className='PsChat--user-message' sx={styles.userMessageContainer}>\n {topContext && <Box sx={styles.userMessageTop}>{topContext}</Box>}\n <ChatMessageOverflow\n className='PsChat--user-message-inner'\n variant='body2'\n sx={{\n ...styles.userMessage,\n ...(muted ? styles.muted : undefined),\n ...sx,\n }}\n >\n {children}\n </ChatMessageOverflow>\n </Box>\n )\n}\n","import { forwardRef } from 'react'\nimport { Box, styled, type BoxProps } from '@mui/material'\nimport type { ChatAgentMessageProps } from '../types'\nimport { styles } from './styles'\n\nconst InnerBox = ({ className, ...props }: BoxProps) => (\n <Box className={`PsChat--agent-message ${className ?? ''}`} {...props} />\n)\n\nconst StyledAgentMessage = styled(InnerBox)(({ theme }) =>\n styles.agentMessageContainer(theme),\n)\n\n/**\n * Agent reply bubble. A styles container that positions the reply and its\n * composed pieces (text, loaders, tool traces, …); it renders `children`\n * verbatim and forwards its `ref` to the underlying element. For Markdown\n * replies, compose `ChatAgentMessageMarkdown` instead of teaching this\n * container about the markdown engine.\n */\nexport const ChatAgentMessage = forwardRef<\n HTMLDivElement,\n ChatAgentMessageProps\n>(function ChatAgentMessage({ children, ...props }, ref) {\n return (\n <StyledAgentMessage ref={ref} {...props}>\n {children}\n </StyledAgentMessage>\n )\n})\nChatAgentMessage.displayName = 'ChatAgentMessage'\n","import { lazy, Suspense } from 'react'\nimport { ChatAgentMessage } from './chat-agent-message'\nimport type { ChatAgentMessageMarkdownProps } from '../types'\n\n// Lazy-loaded so the markdown engine (`react-markdown` + remark/rehype plugins)\n// stays in a separate async chunk: consumers only pay its bundle cost when they\n// actually import this component. The Suspense fallback renders the raw text\n// until the chunk resolves.\nconst MarkdownContent = lazy(() =>\n import('../../widgets-v2/markdown/markdown-content').then((m) => ({\n default: m.MarkdownContent,\n })),\n)\n\n/**\n * Agent reply bubble that renders its (string) children as GitHub-Flavored\n * Markdown through the library's sanitized renderer — raw HTML is skipped and\n * images are stripped, since the content is model output; tables / task lists /\n * strikethrough pick up the bubble's element styling. Composition over\n * `ChatAgentMessage`, which stays a plain styles container.\n */\nexport function ChatAgentMessageMarkdown({\n children,\n ...props\n}: ChatAgentMessageMarkdownProps) {\n return (\n <ChatAgentMessage {...props}>\n <Suspense fallback={children}>\n <MarkdownContent content={children} gfm />\n </Suspense>\n </ChatAgentMessage>\n )\n}\nChatAgentMessageMarkdown.displayName = 'ChatAgentMessageMarkdown'\n","import { Box, Link, Typography } from '@mui/material'\nimport { ErrorOutline } from '@mui/icons-material'\nimport type { ChatErrorMessageProps } from '../types'\nimport { styles } from './styles'\n\nexport function ChatErrorMessage({\n errors,\n icon,\n actions,\n sx,\n}: ChatErrorMessageProps) {\n return (\n <Box sx={{ ...styles.errorMessage, ...sx }}>\n {icon ?? <ErrorOutline fontSize='medium' color='error' />}\n {errors.map((error, index) => (\n <Typography key={index} variant='subtitle2' color='error.relatedDark'>\n {error}\n </Typography>\n ))}\n {actions?.length ? (\n <Box sx={styles.errorActions}>\n {(actions ?? []).map((action, index) => (\n <span key={index}>\n {index > 0 && (\n <Typography\n component='span'\n variant='body2'\n sx={styles.errorActionSeparator}\n >\n &middot;\n </Typography>\n )}\n <Link\n component='button'\n variant='body2'\n onClick={action.onClick}\n sx={styles.errorAction}\n >\n {action.label}\n </Link>\n </span>\n ))}\n </Box>\n ) : null}\n </Box>\n )\n}\n","import { ButtonBase, Typography } from '@mui/material'\nimport { ArrowUpward } from '@mui/icons-material'\nimport type { ChatSuggestionButtonProps } from '../types'\nimport { styles } from './styles'\n\nexport function ChatSuggestionButton({\n label,\n color,\n sx,\n ...props\n}: ChatSuggestionButtonProps) {\n return (\n <ButtonBase\n sx={{\n ...styles.suggestionButton,\n ...(color ? { backgroundColor: color } : undefined),\n ...sx,\n }}\n {...props}\n >\n <Typography color='inherit' variant='body2'>\n {label}\n </Typography>\n <ArrowUpward />\n </ButtonBase>\n )\n}\n","import { type SxProps, type Theme } from '@mui/material'\nimport { keyframes } from '@mui/material/styles'\n\nconst shimmer = keyframes`\n 0% {\n background-position: 150% 0;\n }\n 100% {\n background-position: -50% 0;\n }\n`\n\nconst breatheOuter = keyframes`\n 0% { transform: scale(0.68); opacity: 0.7; }\n 40% { transform: scale(1); opacity: 1; }\n 80% { transform: scale(0.6); opacity: 0.65; }\n 100% { transform: scale(0.68); opacity: 0.7; }\n`\n\nconst breatheInner = keyframes`\n 0% { transform: scale(1); }\n 40% { transform: scale(0.75); }\n 80% { transform: scale(1.125); }\n 100% { transform: scale(1); }\n`\n\nexport const styles = {\n thinking: {\n display: 'flex',\n alignItems: 'center',\n minHeight: ({ spacing }) => spacing(3),\n background: ({ palette }) => `linear-gradient(\n 90deg,\n ${palette.text.disabled} 25%,\n ${palette.text.secondary} 50%,\n ${palette.text.disabled} 75%\n )`,\n backgroundSize: '200% 100%',\n backgroundClip: 'text',\n WebkitBackgroundClip: 'text',\n WebkitTextFillColor: 'transparent',\n animation: `${shimmer} 2s ease-in-out infinite`,\n animationDuration: '2s',\n },\n loader: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n p: 1,\n },\n loaderOuterCircle: {\n position: 'absolute',\n inset: 0,\n margin: 'auto',\n borderRadius: '50%',\n backgroundColor: ({ palette }) => palette.action.disabled,\n animation: `${breatheOuter} 1s ease-in-out infinite`,\n },\n loaderInnerCircle: {\n position: 'absolute',\n inset: 0,\n margin: 'auto',\n borderRadius: '50%',\n backgroundColor: ({ palette }) => palette.text.primary,\n animation: `${breatheInner} 1s ease-in-out infinite`,\n },\n // --- Tool Trace styles ---\n traceHeader: {\n display: 'flex',\n alignItems: 'center',\n padding: 0,\n paddingLeft: ({ spacing }) => spacing(0.5),\n borderRadius: ({ spacing }) => spacing(0.5),\n width: 'fit-content',\n color: ({ palette }) => palette.text.secondary,\n '&:hover': {\n backgroundColor: ({ palette }) => palette.action.hover,\n },\n },\n traceChevron: {\n color: ({ palette }) => palette.text.secondary,\n transition: 'transform 0.2s',\n },\n traceDetailsWrapper: {\n marginTop: ({ spacing }) => spacing(0.5),\n padding: ({ spacing }) => spacing(1.5),\n border: '1px solid',\n borderColor: 'divider',\n borderRadius: ({ spacing }) => spacing(1),\n },\n traceField: {\n display: 'flex',\n alignItems: 'flex-start',\n gap: ({ spacing }) => spacing(1),\n },\n traceFieldLabel: {\n flexShrink: 0,\n },\n traceReference: {\n display: 'flex',\n borderRadius: ({ spacing }) => spacing(0.25),\n padding: ({ spacing }) => spacing(0, 0.5),\n gap: ({ spacing }) => spacing(0.5),\n backgroundColor: ({ palette }) => palette.success.relatedLight,\n color: ({ palette }) => palette.success.dark,\n },\n traceStatusSuccess: {\n color: ({ palette }) => palette.success.main,\n },\n traceStatusError: {\n color: ({ palette }) => palette.error.main,\n },\n // --- Code Area styles ---\n codeArea: {\n position: 'relative',\n width: '100%',\n },\n codeAreaPre: {\n margin: 0,\n padding: ({ spacing }) => spacing(1),\n borderRadius: ({ spacing }) => spacing(0.5),\n backgroundColor: ({ palette }) => palette.background.default,\n fontFamily: ({ typography }) =>\n typography.code3?.fontFamily ??\n typography.code1?.fontFamily ??\n 'monospace',\n fontSize: ({ typography }) => typography.code3?.fontSize ?? '0.75rem',\n lineHeight: ({ typography }) => typography.code3?.lineHeight ?? 1.333,\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n overflowY: 'auto',\n },\n codeAreaPreError: {\n borderLeft: ({ palette }) => `3px solid ${palette.error.main}`,\n backgroundColor: ({ palette }) => `${palette.error.main}08`,\n },\n codeAreaFullViewButton: {\n position: 'absolute',\n top: ({ spacing }) => spacing(0.5),\n right: ({ spacing }) => spacing(0.5),\n },\n // --- Full View Dialog styles ---\n fullViewDialog: {\n margin: ({ spacing }) => spacing(5),\n },\n fullViewPaper: {\n borderRadius: 1,\n },\n fullViewTitle: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: ({ spacing }) => spacing(2),\n borderBottom: '1px solid',\n borderBottomColor: 'divider',\n },\n fullViewDialogContent: {\n padding: 0,\n '&:first-of-type': { paddingTop: 0 },\n },\n fullViewPre: {\n margin: 0,\n padding: ({ spacing }) => spacing(1),\n background: ({ palette, spacing }) =>\n `linear-gradient(to right, ${palette.action.hover} calc(${spacing(1)} + 3em), ${palette.background.default} calc(${spacing(1)} + 3em))`,\n fontFamily: ({ typography }) =>\n typography.code3?.fontFamily ??\n typography.code1?.fontFamily ??\n 'monospace',\n fontSize: ({ typography }) => typography.code3?.fontSize ?? '0.75rem',\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n lineHeight: 1.6,\n counterReset: 'line',\n },\n fullViewLine: {\n display: 'block',\n '&::before': {\n counterIncrement: 'line',\n content: 'counter(line)',\n display: 'inline-block',\n width: '2em',\n marginRight: '2em',\n textAlign: 'right',\n color: ({ palette }) => palette.text.secondary,\n userSelect: 'none',\n },\n },\n groupHeader: {\n textAlign: 'left',\n display: 'flex',\n alignItems: 'center',\n borderRadius: 0,\n gap: ({ spacing }) => spacing(0.5),\n },\n errorBadge: {\n color: ({ palette }) => palette.error.main,\n fontWeight: 600,\n display: 'flex',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(0.25),\n },\n // --- Syntax highlighting token styles ---\n syntaxToken_key: {\n color: '#881280',\n },\n syntaxToken_string: {\n color: '#c41a16',\n },\n syntaxToken_number: {\n color: '#1c00cf',\n },\n syntaxToken_boolean: {\n color: '#1c00cf',\n },\n syntaxToken_null: {\n color: '#808080',\n },\n syntaxToken_punctuation: {\n color: ({ palette }) => palette.text.primary,\n },\n groupListItem: {\n borderBottom: '1px solid',\n borderColor: 'divider',\n '&:first-of-type .MuiButton-root': {\n borderRadius: ({ spacing }) => spacing(1, 1, 0, 0),\n },\n '&:last-of-type:not([aria-expanded=true]) .MuiButton-root': {\n borderRadius: ({ spacing }) => spacing(0, 0, 1, 1),\n },\n '&:last-of-type': {\n borderBottomWidth: 0,\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Typography } from '@mui/material'\nimport type { ChatThinkingProps } from '../types'\nimport { styles } from './styles'\n\nexport function ChatThinking({\n children = 'Thinking...',\n duration = 2000,\n sx,\n}: ChatThinkingProps) {\n const durSeconds = `${duration / 1000}s`\n return (\n <Typography\n variant='body2'\n sx={{\n ...styles.thinking,\n animationDuration: durSeconds,\n ...sx,\n }}\n >\n {children}\n </Typography>\n )\n}\n","import { Box } from '@mui/material'\nimport type { ChatLoaderProps } from '../types'\nimport { styles } from './styles'\n\nexport function ChatLoader({ size = 24, labels = {}, sx }: ChatLoaderProps) {\n return (\n <Box\n role='status'\n aria-busy={true}\n aria-label={labels.loading ?? 'Loading'}\n sx={{ ...styles.loader, width: size, height: size, ...sx }}\n >\n <Box\n component='span'\n sx={{\n ...styles.loaderOuterCircle,\n width: size * 0.75,\n height: size * 0.75,\n }}\n />\n <Box\n component='span'\n sx={{\n ...styles.loaderInnerCircle,\n width: size * 0.32,\n height: size * 0.32,\n }}\n />\n </Box>\n )\n}\n","import type { SxProps, Theme } from '@mui/material'\nimport { CHAT_MAX_WIDTH } from '../const'\n\nexport const styles = {\n header: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: ({ spacing }) => spacing(1),\n },\n headerTitle: {\n flexGrow: 1,\n px: ({ spacing }) => spacing(0.5),\n },\n headerActions: {\n display: 'flex',\n alignItems: 'center',\n marginLeft: ({ spacing }) => spacing(2),\n gap: ({ spacing }) => spacing(0.5),\n },\n footerWrapper: {\n padding: ({ spacing }) => spacing(1),\n },\n /**\n * Rounded input box, matching the reference ChatFooter. A two-column grid:\n * main column (input + optional slots) | send button, bottom-aligned so it\n * stays at the end as the input grows. NO vertical padding — the textarea's own\n * padding sets the ~32px single-line height, so the box hugs the input.\n */\n footerBox: {\n maxWidth: CHAT_MAX_WIDTH,\n width: '100%',\n margin: '0 auto',\n display: 'grid',\n gridTemplateColumns: '1fr auto',\n alignItems: 'end',\n columnGap: ({ spacing }) => spacing(0.5),\n backgroundColor: ({ palette }) =>\n palette.default?.background ?? 'rgba(44, 48, 50, 0.04)',\n borderRadius: ({ spacing }) => spacing(0.5),\n paddingInline: ({ spacing }) => spacing(0.5),\n },\n /** Main grid area: input stacked above the (optional) slots row. */\n footerMain: {\n minWidth: 0,\n display: 'flex',\n flexDirection: 'column',\n gap: ({ spacing }) => spacing(0.5),\n },\n /**\n * Send-button grid area, bottom-aligned (matches the reference flex-end row) so\n * the button stays at the bottom as the input grows. The small bottom padding\n * keeps it off the box edge — in the single-line state it reads as vertically\n * centered (4px top / 4px bottom around the 24px button in the 32px row).\n */\n footerSend: {\n alignSelf: 'end',\n paddingBottom: ({ spacing }) => spacing(0.5),\n '& .MuiIconButton-root': {\n padding: ({ spacing }) => spacing(0.5),\n },\n },\n /** The chrome-less multiline input (no underline / no filled affordance). */\n footerInput: {\n width: '100%',\n typography: 'body2',\n // The Meridian theme styles multiline InputBase as a tall \"comment field\"\n // (min-height: 96px on the root, 12px/14px textarea padding). Override both to\n // get the compact chat field: kill the root min-height and use the reference's\n // 6px/10px padding — both need !important to beat the theme override. Height\n // then comes from MUI's TextareaAutosize (minRows=1/maxRows=8): one line\n // (~32px) → grows → scrolls.\n //\n // TextareaAutosize renders a hidden shadow <textarea> (it carries\n // `aria-hidden=\"true\"`, the same class, and an inline `padding: 0`) to measure\n // the content height; MUI then applies that height to the visible input. Getting\n // the compact ~32px single line right needs the two rules below split apart:\n //\n // • Font metrics (size/line-height/letter-spacing) go on BOTH textareas. The\n // shadow measures with its own CSS, so if it isn't pinned to body2 it\n // measures at the default ~24px line-height and the box ends up too tall.\n // • Padding goes on the VISIBLE input ONLY (`:not([aria-hidden])`). A\n // `!important` padding that also hit the shadow would clobber its measurement\n // `padding: 0`, double-counting the padding (~44px instead of 32px).\n //\n // `!important` is required on both to beat the Meridian theme's tall\n // \"comment field\" multiline overrides (12px/14px padding, larger metrics); the\n // root `min-height: 0` kills that theme's 96px min-height.\n minHeight: '0 !important',\n '& textarea': {\n fontSize: ({ typography }) => `${typography.body2.fontSize} !important`,\n lineHeight: ({ typography }) =>\n `${typography.body2.lineHeight} !important`,\n letterSpacing: ({ typography }) =>\n `${typography.body2.letterSpacing} !important`,\n },\n '& textarea:not([aria-hidden])': {\n resize: 'none',\n padding: ({ spacing }) => `${spacing(0.75, 1.25)} !important`,\n },\n },\n /**\n * Slots row under the input: start slot + model selector + end slot. The left\n * padding lines the row's content up with the input text above it: the input\n * text is inset ~12px from the box edge (InputBase root padding + the textarea's\n * 10px left padding) while the model-selector text button only insets ~8px, so a\n * 4px indent here makes the slot label share the placeholder's left edge instead\n * of sitting further out.\n */\n footerSlots: {\n display: 'flex',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(0.5),\n minWidth: 0,\n flexWrap: 'wrap',\n paddingLeft: ({ spacing }) => spacing(0.5),\n paddingBottom: ({ spacing }) => spacing(0.5),\n },\n modelSelector: {\n textTransform: 'none',\n color: ({ palette }) => palette.text.secondary,\n maxWidth: '100%',\n minWidth: 0,\n '& .MuiButton-endIcon': {\n marginLeft: ({ spacing }) => spacing(0.25),\n },\n },\n modelSelectorLabel: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n footerCaption: {\n textAlign: 'center',\n },\n content: {\n overflowY: 'auto',\n flex: 1,\n position: 'relative',\n mx: 'auto',\n maxWidth: CHAT_MAX_WIDTH,\n width: '100%',\n maxHeight: '100%',\n pt: 1,\n pb: 3,\n px: 2,\n display: 'flex',\n flexDirection: 'column',\n borderTopWidth: '1px',\n borderTopStyle: 'solid',\n borderBottomWidth: '1px',\n borderBottomStyle: 'solid',\n },\n sentinel: {\n height: '1px',\n flexShrink: 0,\n },\n jumpToLatestWrapper: {\n position: 'sticky',\n bottom: ({ spacing }) => spacing(3),\n height: 0,\n display: 'flex',\n justifyContent: 'center',\n zIndex: 1,\n },\n jumpToLatest: {\n transition: 'opacity 0.2s',\n },\n starter: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n padding: ({ spacing }) => spacing(3),\n textAlign: 'center',\n maxWidth: CHAT_MAX_WIDTH,\n margin: '0 auto',\n },\n starterItems: {\n display: 'grid',\n width: '100%',\n marginTop: ({ spacing }) => spacing(2),\n },\n starterItemsTwoCol: {\n gridTemplateColumns: 'repeat(2, 1fr)',\n },\n} satisfies Record<string, SxProps<Theme>>\n","import {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react'\nimport { Box, Fab } from '@mui/material'\nimport { KeyboardArrowDown } from '@mui/icons-material'\nimport type { ChatContentProps, ChatContentRef } from '../types'\nimport { styles } from './styles'\n\n/** Slack in px for treating the user as \"at the bottom\" when content grows. */\nconst AUTO_SCROLL_THRESHOLD = 32\n\nexport const ChatContent = forwardRef<ChatContentRef, ChatContentProps>(\n function ChatContent({ children, autoScroll = true, labels = {}, sx }, ref) {\n const scrollRef = useRef<HTMLDivElement>(null)\n const topSentinelRef = useRef<HTMLDivElement>(null)\n const bottomSentinelRef = useRef<HTMLDivElement>(null)\n\n const [isAtTop, setIsAtTop] = useState(true)\n const [isAtBottom, setIsAtBottom] = useState(true)\n\n const scrollToBottom = () => {\n scrollRef.current?.scrollTo({\n top: scrollRef.current.scrollHeight,\n behavior: 'smooth',\n })\n }\n\n const scrollToTop = () => {\n scrollRef.current?.scrollTo({ top: 0, behavior: 'smooth' })\n }\n\n useImperativeHandle(\n ref,\n () => ({ scrollToBottom, scrollToTop, isAtBottom, isAtTop }),\n [isAtBottom, isAtTop],\n )\n\n useEffect(() => {\n const root = scrollRef.current\n const topEl = topSentinelRef.current\n const bottomEl = bottomSentinelRef.current\n if (!root || !topEl || !bottomEl) return\n\n const topObserver = new IntersectionObserver(\n ([entry]) => setIsAtTop(entry?.isIntersecting ?? true),\n { root },\n )\n const bottomObserver = new IntersectionObserver(\n ([entry]) => setIsAtBottom(entry?.isIntersecting ?? true),\n { root },\n )\n topObserver.observe(topEl)\n bottomObserver.observe(bottomEl)\n return () => {\n topObserver.disconnect()\n bottomObserver.disconnect()\n }\n }, [])\n\n useEffect(() => {\n if (!autoScroll) return\n const root = scrollRef.current\n if (!root) return\n\n // We can't watch `children` to detect new content: tool traces and\n // `useTypewriter` live inside child components and update via local\n // state, so they mutate the DOM without re-rendering `ChatContent`.\n // MutationObserver picks up every DOM change regardless of source.\n let prevScrollHeight = root.scrollHeight\n let rafId: number | null = null\n\n const check = () => {\n rafId = null\n const newScrollHeight = root.scrollHeight\n if (newScrollHeight > prevScrollHeight) {\n const growth = newScrollHeight - prevScrollHeight\n // If the distance from the bottom doesn't exceed the amount the\n // content just grew (plus a small slack), the user was at the\n // bottom *before* the growth — scroll them to the new bottom.\n // Otherwise they've scrolled up to read history and we leave them\n // alone.\n const distanceFromBottom =\n newScrollHeight - root.scrollTop - root.clientHeight\n if (distanceFromBottom <= growth + AUTO_SCROLL_THRESHOLD) {\n root.scrollTo({ top: newScrollHeight, behavior: 'smooth' })\n }\n }\n prevScrollHeight = newScrollHeight\n }\n\n const mo = new MutationObserver(() => {\n // Plain `?? =` rather than `??=`: the React Compiler can't yet lower\n // logical-assignment operators, and bailing out would drop memoization\n // for this scroll container (which re-renders on every message).\n rafId = rafId ?? requestAnimationFrame(check)\n })\n mo.observe(root, {\n childList: true,\n subtree: true,\n characterData: true,\n })\n return () => {\n mo.disconnect()\n if (rafId !== null) cancelAnimationFrame(rafId)\n }\n }, [autoScroll])\n\n return (\n <Box\n ref={scrollRef}\n sx={{\n ...styles.content,\n borderTopColor: ({ palette }) =>\n isAtTop ? 'transparent' : palette.divider,\n borderBottomColor: ({ palette }) =>\n isAtBottom ? 'transparent' : palette.divider,\n ...sx,\n }}\n >\n <Box ref={topSentinelRef} sx={styles.sentinel} aria-hidden />\n {children}\n <Box ref={bottomSentinelRef} sx={styles.sentinel} aria-hidden />\n <Box sx={styles.jumpToLatestWrapper}>\n <Fab\n size='small'\n onClick={scrollToBottom}\n aria-label={labels.jumpToLatest ?? 'Jump to latest'}\n sx={{\n ...styles.jumpToLatest,\n opacity: isAtBottom ? 0 : 1,\n pointerEvents: isAtBottom ? 'none' : 'auto',\n }}\n >\n <KeyboardArrowDown />\n </Fab>\n </Box>\n </Box>\n )\n },\n)\nChatContent.displayName = 'ChatContent'\n","import { Box, IconButton, Typography } from '@mui/material'\nimport { Close } from '@mui/icons-material'\nimport type { ChatHeaderProps } from '../types'\nimport { styles } from './styles'\n\nexport function ChatHeader({\n leftSlot,\n title,\n rightSlot,\n onClose,\n sx,\n}: ChatHeaderProps) {\n return (\n <Box sx={{ ...styles.header, ...sx }}>\n {leftSlot}\n <Typography variant='subtitle2' sx={styles.headerTitle}>\n {title}\n </Typography>\n <Box sx={styles.headerActions}>\n {rightSlot}\n {onClose && (\n <IconButton size='medium' onClick={onClose} aria-label='Close'>\n <Close />\n </IconButton>\n )}\n </Box>\n </Box>\n )\n}\n","import { useState } from 'react'\nimport {\n Box,\n Button,\n FormControl,\n FormHelperText,\n IconButton,\n InputBase,\n Menu,\n MenuItem,\n Typography,\n} from '@mui/material'\nimport {\n ArrowUpwardOutlined,\n StopCircleOutlined,\n KeyboardArrowDown,\n} from '@mui/icons-material'\nimport type { ChatFooterProps } from '../types'\nimport { styles } from './styles'\n\nconst DEFAULT_CAPTION =\n 'Responses are AI-generated. Please verify key information.'\n\nexport function ChatFooter({\n value,\n onChange,\n onSend,\n onStop,\n isGenerating = false,\n disabled = false,\n placeholder = 'Type a message...',\n labels = {},\n caption = DEFAULT_CAPTION,\n models,\n selectedModel,\n onModelChange,\n startToolbarSlot,\n endToolbarSlot,\n sx,\n}: ChatFooterProps) {\n const [modelAnchor, setModelAnchor] = useState<HTMLElement | null>(null)\n const canSend = value.trim() && !disabled && !isGenerating\n // Only worth showing when there's an actual choice — a single option is dead UI.\n const showModelSelector = (models?.length ?? 0) > 1\n const modelLabel = labels.model ?? 'Select model'\n // Visible trigger text: the matched option's label, the raw value as a\n // fallback, or the placeholder when nothing is selected yet.\n const selectedLabel =\n models?.find((m) => m.value === selectedModel)?.label ??\n (selectedModel && selectedModel.length > 0 ? selectedModel : modelLabel)\n\n // The slots row (start slot + model selector + end slot) renders under the input\n // only when there's something to show; otherwise the grid is just input | send.\n const hasSlots =\n showModelSelector || Boolean(startToolbarSlot) || Boolean(endToolbarSlot)\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault()\n if (canSend) {\n onSend()\n }\n }\n }\n\n const sendButton =\n isGenerating && onStop ? (\n <IconButton\n size='small'\n onClick={onStop}\n disabled={disabled}\n aria-label={labels.stop ?? 'Stop'}\n >\n <StopCircleOutlined />\n </IconButton>\n ) : (\n <IconButton\n size='small'\n variant='contained'\n color='primary'\n onClick={onSend}\n disabled={!canSend}\n aria-label={labels.send ?? 'Send'}\n >\n <ArrowUpwardOutlined />\n </IconButton>\n )\n\n return (\n <FormControl fullWidth sx={{ ...styles.footerWrapper, ...sx }}>\n {/* Two grid areas: [input + slots] | [send button, aligned to the end]. */}\n <Box sx={styles.footerBox}>\n <Box sx={styles.footerMain}>\n <InputBase\n multiline\n minRows={1}\n maxRows={8}\n value={value}\n onChange={(e) => onChange(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n disabled={disabled || isGenerating}\n sx={styles.footerInput}\n />\n {hasSlots && (\n <Box sx={styles.footerSlots}>\n {startToolbarSlot}\n {showModelSelector && (\n <>\n <Button\n size='small'\n variant='text'\n color='inherit'\n disabled={disabled || isGenerating}\n onClick={(e) => setModelAnchor(e.currentTarget)}\n aria-label={modelLabel}\n aria-haspopup='menu'\n aria-expanded={modelAnchor ? 'true' : undefined}\n endIcon={<KeyboardArrowDown />}\n sx={styles.modelSelector}\n >\n <Typography\n variant='caption'\n component='span'\n color='inherit'\n sx={styles.modelSelectorLabel}\n >\n {selectedLabel}\n </Typography>\n </Button>\n <Menu\n anchorEl={modelAnchor}\n open={Boolean(modelAnchor)}\n onClose={() => setModelAnchor(null)}\n variant='menu'\n elevation={8}\n anchorOrigin={{ vertical: 'top', horizontal: 'left' }}\n transformOrigin={{ vertical: 'bottom', horizontal: 'left' }}\n >\n {models?.map((m) => (\n <MenuItem\n key={m.value}\n selected={m.value === selectedModel}\n onClick={() => {\n onModelChange?.(m.value)\n setModelAnchor(null)\n }}\n >\n {m.label}\n </MenuItem>\n ))}\n </Menu>\n </>\n )}\n {endToolbarSlot}\n </Box>\n )}\n </Box>\n <Box sx={styles.footerSend}>{sendButton}</Box>\n </Box>\n {caption ? (\n <FormHelperText sx={styles.footerCaption}>{caption}</FormHelperText>\n ) : null}\n </FormControl>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport type { ChatStarterProps } from '../types'\nimport { ChatSuggestionButton } from '../bubbles/chat-suggestion-button'\nimport { styles } from './styles'\n\nconst DEFAULT_PALETTE = [\n '#C9DB7440', // pastel green\n '#FE88B140', // pastel red\n '#9EB9F340', // pastel blue\n '#F6CF7140', // pastel yellow\n]\n\nexport function ChatStarter({\n icon,\n title,\n description,\n items,\n size = 'small',\n onSelect,\n sx,\n}: ChatStarterProps) {\n const fullItems = items.map((item, index) => {\n if (typeof item === 'string') {\n return {\n label: item,\n color: DEFAULT_PALETTE[index],\n }\n } else {\n return {\n label: item.label,\n color: item.color ?? DEFAULT_PALETTE[index],\n }\n }\n })\n return (\n <Box\n sx={{\n ...styles.starter,\n gap: size === 'small' ? 1 : 2,\n ...sx,\n }}\n >\n {icon}\n {title && (\n <Typography variant={size === 'small' ? 'h6' : 'h5'}>\n {title}\n </Typography>\n )}\n {description && (\n <Typography\n variant={size === 'small' ? 'body2' : 'body1'}\n color='text.secondary'\n >\n {description}\n </Typography>\n )}\n <Box\n sx={{\n ...styles.starterItems,\n gap: size === 'small' ? 1 : 2,\n ...(items.length > 2 ? styles.starterItemsTwoCol : undefined),\n }}\n >\n {fullItems.map((item, i) => (\n <ChatSuggestionButton\n key={i}\n label={item.label}\n onClick={() => onSelect?.(item.label)}\n color={item.color}\n />\n ))}\n </Box>\n </Box>\n )\n}\n","import { Box, styled } from '@mui/material'\n\nexport const ChatActionsContainer = styled(Box)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(0.5),\n}))\n","import { IconButton } from '@mui/material'\nimport {\n ThumbUpOutlined,\n ThumbDownOutlined,\n ThumbUp,\n ThumbDown,\n} from '@mui/icons-material'\nimport type { ChatRatingActionProps } from '../types'\n\nexport function ChatRatingAction({\n rating,\n onRatingChange,\n labels = {},\n}: ChatRatingActionProps) {\n return (\n <>\n <IconButton\n size='small'\n onClick={() => onRatingChange?.(rating === 'up' ? null : 'up')}\n aria-label={labels.thumbUp ?? 'Thumbs up'}\n color={rating === 'up' ? 'primary' : undefined}\n >\n {rating === 'up' ? (\n <ThumbUp fontSize='small' />\n ) : (\n <ThumbUpOutlined fontSize='small' />\n )}\n </IconButton>\n <IconButton\n size='small'\n onClick={() => onRatingChange?.(rating === 'down' ? null : 'down')}\n aria-label={labels.thumbDown ?? 'Thumbs down'}\n color={rating === 'down' ? 'primary' : undefined}\n >\n {rating === 'down' ? (\n <ThumbDown fontSize='small' />\n ) : (\n <ThumbDownOutlined fontSize='small' />\n )}\n </IconButton>\n </>\n )\n}\n","import { useMemo } from 'react'\nimport {\n Dialog,\n DialogTitle,\n DialogContent,\n IconButton,\n Box,\n} from '@mui/material'\nimport { Close } from '@mui/icons-material'\nimport { CopyButton } from '../../components/copy-button/copy-button'\nimport type { ChatToolFullViewDialogProps } from '../types'\nimport { styles } from './styles'\n\ninterface Token {\n type: 'key' | 'string' | 'number' | 'boolean' | 'null' | 'punctuation'\n value: string\n}\n\nconst NUMBER_START_REGEX = /^-?\\d/\n\nfunction tokenizeLine(line: string): (Token | string)[] {\n const tokens: (Token | string)[] = []\n let lastIndex = 0\n let match: RegExpExecArray | null\n\n // First, find all key positions by looking for \"...\": patterns\n const keyPositions = new Set<number>()\n const keyRegex = /(\"(?:[^\"\\\\]|\\\\.)*\")\\s*:/g\n let keyMatch: RegExpExecArray | null\n while ((keyMatch = keyRegex.exec(line)) !== null) {\n keyPositions.add(keyMatch.index)\n }\n\n const tokenRegex = // eslint-disable-next-line no-useless-escape\n /\"(?:[^\"\\\\]|\\\\.)*\"|\\b(?:true|false)\\b|\\bnull\\b|-?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?|[{}\\[\\]:,]/g\n\n while ((match = tokenRegex.exec(line)) !== null) {\n if (match.index > lastIndex) {\n tokens.push(line.slice(lastIndex, match.index))\n }\n const value = match[0]\n if (value.startsWith('\"')) {\n if (keyPositions.has(match.index)) {\n tokens.push({ type: 'key', value })\n } else {\n tokens.push({ type: 'string', value })\n }\n } else if (NUMBER_START_REGEX.test(value)) {\n tokens.push({ type: 'number', value })\n } else if (value === 'true' || value === 'false') {\n tokens.push({ type: 'boolean', value })\n } else if (value === 'null') {\n tokens.push({ type: 'null', value })\n } else {\n tokens.push({ type: 'punctuation', value })\n }\n lastIndex = match.index + value.length\n }\n\n if (lastIndex < line.length) {\n tokens.push(line.slice(lastIndex))\n }\n\n return tokens\n}\n\nexport function ChatToolFullViewDialog({\n open,\n onClose,\n title,\n content,\n}: ChatToolFullViewDialogProps) {\n const tokenizedLines = useMemo(\n () => content.split('\\n').map((line) => tokenizeLine(line)),\n [content],\n )\n\n return (\n <Dialog\n open={open}\n onClose={onClose}\n sx={styles.fullViewDialog}\n PaperProps={{ sx: styles.fullViewPaper }}\n fullScreen\n >\n <DialogTitle sx={styles.fullViewTitle}>\n {title}\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5 }}>\n <CopyButton copyText={content} aria-label='Copy content' />\n <IconButton onClick={onClose} aria-label='close'>\n <Close />\n </IconButton>\n </Box>\n </DialogTitle>\n <DialogContent sx={styles.fullViewDialogContent}>\n <Box component='pre' sx={styles.fullViewPre}>\n {tokenizedLines.map((tokens, i) => (\n <Box component='span' key={i} sx={styles.fullViewLine}>\n {tokens.map((token, j) =>\n typeof token === 'string' ? (\n token\n ) : (\n <Box\n component='span'\n key={j}\n sx={\n styles[`syntaxToken_${token.type}` as keyof typeof styles]\n }\n >\n {token.value}\n </Box>\n ),\n )}\n {'\\n'}\n </Box>\n ))}\n </Box>\n </DialogContent>\n </Dialog>\n )\n}\n","import { useRef, useState, useEffect, useCallback } from 'react'\nimport { Box, IconButton, Tooltip } from '@mui/material'\nimport type { ChatToolCodeAreaProps } from '../types'\nimport { CHAT_TOOL_CODE_AREA_MAX_HEIGHT } from '../const'\nimport { ChatToolFullViewDialog } from './chat-tool-full-view-dialog'\nimport { styles } from './styles'\nimport { OpenDiagonallyRight } from '@carto/meridian-ds/custom-icons'\n\nexport function ChatToolCodeArea({\n content,\n title = '',\n isError = false,\n labels = {},\n sx,\n}: ChatToolCodeAreaProps) {\n const preRef = useRef<HTMLPreElement>(null)\n const [isOverflowing, setIsOverflowing] = useState(false)\n const [dialogOpen, setDialogOpen] = useState(false)\n\n const checkOverflow = useCallback(() => {\n const el = preRef.current\n if (el) {\n setIsOverflowing(el.scrollHeight > el.clientHeight)\n }\n }, [])\n\n useEffect(() => {\n checkOverflow()\n const el = preRef.current\n if (!el) return\n\n const observer = new ResizeObserver(checkOverflow)\n observer.observe(el)\n return () => observer.disconnect()\n }, [checkOverflow, content])\n\n const fullViewLabel = labels.fullView ?? 'Full view'\n\n return (\n <Box sx={{ ...styles.codeArea, ...sx }}>\n <Box\n component='pre'\n ref={preRef}\n sx={{\n ...styles.codeAreaPre,\n maxHeight: CHAT_TOOL_CODE_AREA_MAX_HEIGHT,\n ...(isError ? styles.codeAreaPreError : {}),\n }}\n >\n {content}\n </Box>\n {isOverflowing && (\n <Tooltip title={fullViewLabel}>\n <IconButton\n size='small'\n onClick={() => setDialogOpen(true)}\n sx={styles.codeAreaFullViewButton}\n >\n <OpenDiagonallyRight />\n </IconButton>\n </Tooltip>\n )}\n <ChatToolFullViewDialog\n open={dialogOpen}\n onClose={() => setDialogOpen(false)}\n title={title}\n content={content}\n />\n </Box>\n )\n}\n","import type { ChatToolItem } from '../types'\n\nfunction capitalize(str: string): string {\n const spaced = str.replace(/_/g, ' ')\n return spaced.charAt(0).toUpperCase() + spaced.slice(1)\n}\n\nexport function getToolLabel(tool: ChatToolItem): string {\n if (tool.status === 'running') {\n return tool.runningLabel ?? capitalize(tool.name)\n }\n return tool.label ?? capitalize(tool.name)\n}\n","import {\n Box,\n CircularProgress,\n Typography,\n Collapse,\n Button,\n} from '@mui/material'\nimport { ArrowRight, CheckCircle, Error } from '@mui/icons-material'\nimport type { ChatToolTraceProps } from '../types'\nimport { ChatToolCodeArea } from './chat-tool-code-area'\nimport { styles } from './styles'\nimport { ChatThinking } from './chat-thinking'\nimport { getToolLabel } from './get-tool-label'\nimport { McpTool } from '@carto/meridian-ds/custom-icons'\n\nfunction TraceStatusIndicator({\n status,\n labels,\n}: {\n status: string\n labels: ChatToolTraceProps['labels']\n}) {\n switch (status) {\n case 'complete':\n return (\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5 }}>\n <CheckCircle sx={{ fontSize: 12 }} color='success' />\n <Typography variant='caption'>\n {labels?.success ?? 'Success'}\n </Typography>\n </Box>\n )\n case 'error':\n return (\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5 }}>\n <Error sx={{ fontSize: 12 }} color='error' />\n <Typography variant='code3'>{labels?.error ?? 'Error'}</Typography>\n </Box>\n )\n case 'running':\n return <CircularProgress size={14} />\n default:\n return null\n }\n}\n\nexport function ChatToolTraceDetails({\n tool,\n labels = {},\n}: Pick<ChatToolTraceProps, 'tool' | 'labels'>) {\n const isError = tool.status === 'error'\n const toolExecutedLabel = labels.toolExecuted ?? 'Tool executed'\n const referenceLabel = labels.reference ?? 'Reference:'\n const durationLabel = labels.duration ?? 'Duration:'\n const statusLabel = labels.status ?? 'Status:'\n const inputArgumentsLabel = labels.inputArguments ?? 'Input arguments:'\n const outputLabel = labels.output ?? 'Output:'\n\n return (\n <Box>\n {tool.reference && (\n <Box sx={styles.traceField}>\n <Typography\n variant='code3'\n fontWeight={600}\n color='text.secondary'\n sx={styles.traceFieldLabel}\n >\n {referenceLabel}\n </Typography>\n <Box sx={styles.traceReference}>\n <McpTool color='success' />\n <Typography variant='code3' fontWeight={600}>\n {tool.reference}\n </Typography>\n </Box>\n </Box>\n )}\n\n {tool.duration != null && (\n <Box sx={styles.traceField}>\n <Typography\n variant='code3'\n fontWeight={600}\n color='text.secondary'\n sx={styles.traceFieldLabel}\n >\n {durationLabel}\n </Typography>\n <Typography variant='code3'>{tool.duration}s</Typography>\n </Box>\n )}\n\n <Box sx={styles.traceField}>\n <Typography\n variant='code3'\n fontWeight={600}\n color='text.secondary'\n sx={styles.traceFieldLabel}\n >\n {statusLabel}\n </Typography>\n <TraceStatusIndicator status={tool.status} labels={labels} />\n </Box>\n\n {tool.inputArguments && (\n <Box>\n <Typography\n variant='code3'\n fontWeight={600}\n color='text.secondary'\n sx={styles.traceField}\n >\n {inputArgumentsLabel}\n </Typography>\n <ChatToolCodeArea\n sx={{ mt: 0.5, mb: tool.output ? 1.5 : 0 }}\n content={tool.inputArguments}\n title={`${toolExecutedLabel}: ${inputArgumentsLabel}`}\n isError={isError}\n />\n </Box>\n )}\n\n {tool.output && (\n <Box>\n <Typography\n variant='code3'\n fontWeight={600}\n color='text.secondary'\n sx={styles.traceField}\n >\n {outputLabel}\n </Typography>\n <ChatToolCodeArea\n sx={{ mt: 0.5 }}\n content={tool.output}\n title={`${toolExecutedLabel}: ${outputLabel}`}\n isError={isError}\n />\n </Box>\n )}\n </Box>\n )\n}\n\nexport function ChatToolTrace({\n tool,\n expanded,\n onExpandedChange,\n labels = {},\n sx,\n}: ChatToolTraceProps) {\n const isRunning = tool.status === 'running'\n const toolExecutedLabel = labels.toolExecuted ?? 'Tool executed'\n\n if (isRunning) {\n return <ChatThinking>{getToolLabel(tool)}</ChatThinking>\n }\n\n return (\n <Box\n width='100%'\n sx={sx}\n data-tool={tool.name}\n className={`PsChat--tool-trace`}\n >\n <Button\n size='small'\n variant='text'\n onClick={() => onExpandedChange?.(!expanded)}\n aria-expanded={expanded}\n sx={styles.traceHeader}\n >\n <Typography variant='caption' fontWeight={600} color='text.secondary'>\n {toolExecutedLabel}\n </Typography>\n <ArrowRight\n sx={{\n ...styles.traceChevron,\n transform: expanded ? 'rotate(90deg)' : 'rotate(0deg)',\n }}\n />\n </Button>\n <Collapse in={expanded} unmountOnExit>\n <Box sx={styles.traceDetailsWrapper}>\n <ChatToolTraceDetails tool={tool} labels={labels} />\n </Box>\n </Collapse>\n </Box>\n )\n}\n","import { Box, Button, Collapse, Typography } from '@mui/material'\nimport { ArrowRight, ChevronRight, ErrorOutline } from '@mui/icons-material'\nimport type { ChatToolGroupProps } from '../types'\nimport { ChatToolTrace, ChatToolTraceDetails } from './chat-tool-trace'\nimport { styles } from './styles'\nimport { getToolLabel } from './get-tool-label'\nimport { useState } from 'react'\n\nfunction useController<T>(value: T, setter?: (value: T) => void) {\n const [_value, _setter] = useState<T>(value)\n if (setter) {\n return [value, setter] as const\n } else {\n return [_value, _setter] as const\n }\n}\n\nexport function ChatToolGroup({\n tools,\n expanded: _expanded = false,\n onExpandedChange: _setExpanded,\n expandedTools: _expandedTools = {},\n onToolExpandedChange: _setExpandedTools,\n labels = {},\n sx,\n}: ChatToolGroupProps) {\n const [expanded, setExpanded] = useController(_expanded, _setExpanded)\n const [expandedTools, setExpandedTools] = useController(\n _expandedTools,\n _setExpandedTools,\n )\n\n const numErrors = tools.filter((t) => t.status === 'error').length\n const runningTools = tools.filter((t) => t.status === 'running')\n const nonRunningTools = tools.filter((t) => t.status !== 'running')\n const toolsUsedLabel = labels.toolsUsed ?? 'tools used'\n const errorLabel = labels.error ?? 'Error'\n\n if (tools.length === 1) {\n return (\n <ChatToolTrace\n tool={tools[0]!}\n expanded={expanded}\n onExpandedChange={setExpanded}\n labels={labels}\n sx={sx}\n />\n )\n }\n\n return (\n <Box width='100%' sx={sx} className='PsChat--tool-group'>\n <Button\n size='small'\n variant='text'\n onClick={() => setExpanded(!expanded)}\n aria-expanded={expanded}\n sx={{\n ...styles.traceHeader,\n pr: numErrors > 0 ? 0.5 : 0,\n }}\n >\n <Typography variant='caption' fontWeight={600} color='text.secondary'>\n {tools.length} {toolsUsedLabel}\n </Typography>\n <ArrowRight\n sx={{\n ...styles.traceChevron,\n transform: expanded ? 'rotate(90deg)' : 'rotate(0deg)',\n }}\n />\n {numErrors > 0 && (\n <Typography variant='code3' sx={styles.errorBadge}>\n {numErrors}\n <ErrorOutline sx={{ fontSize: 12 }} color='error' />\n </Typography>\n )}\n </Button>\n <Collapse in={expanded} unmountOnExit>\n <Box\n component='ul'\n sx={{\n ...styles.traceDetailsWrapper,\n p: 0,\n listStyle: 'none',\n }}\n >\n {nonRunningTools.map((tool) => {\n const isExpanded = expandedTools[tool.id] ?? false\n return (\n <Box\n key={tool.id}\n component='li'\n sx={styles.groupListItem}\n aria-expanded={isExpanded}\n >\n <Button\n variant='text'\n color='inherit'\n fullWidth\n onClick={() =>\n setExpandedTools({\n ...expandedTools,\n [tool.id]: !isExpanded,\n })\n }\n aria-expanded={isExpanded}\n sx={styles.groupHeader}\n >\n <Typography\n flexGrow={1}\n flexShrink={0}\n variant='caption'\n color='text.secondary'\n >\n {getToolLabel(tool)}\n </Typography>\n {tool.status === 'error' && (\n <Typography variant='code3' color='error.main'>\n {errorLabel}\n </Typography>\n )}\n <ChevronRight\n sx={{\n ...styles.traceChevron,\n transform: isExpanded ? 'rotate(90deg)' : 'rotate(0deg)',\n }}\n />\n </Button>\n <Collapse in={isExpanded} unmountOnExit>\n <Box px={1.5} py={1}>\n <ChatToolTraceDetails tool={tool} labels={labels} />\n </Box>\n </Collapse>\n </Box>\n )\n })}\n </Box>\n </Collapse>\n {runningTools.map((tool) => (\n <ChatToolTrace\n key={tool.id}\n tool={tool}\n labels={labels}\n expanded={expandedTools[tool.id]}\n onExpandedChange={() =>\n setExpandedTools({\n ...expandedTools,\n [tool.id]: !expandedTools[tool.id],\n })\n }\n />\n ))}\n </Box>\n )\n}\n"],"mappings":"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"}