@luzmo/analytics-components-kit 1.0.3-beta.6 → 1.0.3-beta.7

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 (220) hide show
  1. package/components/ai-chat/ai-chat.d.ts +17 -1
  2. package/components/ai-chat/empty-state/ai-chat-empty-state.d.ts +46 -0
  3. package/components/ai-chat/empty-state/index.d.ts +8 -0
  4. package/components/ai-chat/empty-state/types.d.ts +14 -0
  5. package/components/ai-chat/index.cjs +1 -1
  6. package/components/ai-chat/index.d.ts +2 -0
  7. package/components/ai-chat/index.js +2 -2
  8. package/components/ai-chat-BITPlYbm.cjs +178 -0
  9. package/components/{ai-chat-DVU9XiA2.js → ai-chat-D6fgbjA2.js} +368 -295
  10. package/components/ai-interaction-textarea/index.cjs +1 -1
  11. package/components/ai-interaction-textarea/index.js +1 -1
  12. package/components/{ai-interaction-textarea-DI98QoMZ.js → ai-interaction-textarea-C1DMkiX9.js} +3 -3
  13. package/components/{ai-interaction-textarea-DqWt823F.cjs → ai-interaction-textarea-wt2weV1c.cjs} +1 -1
  14. package/components/{base-D3ehdFno.js → base-D82dU2vv.js} +1 -1
  15. package/components/{base-HUGXYn6t.cjs → base-iNk9N4Tk.cjs} +1 -1
  16. package/components/data-field/index.cjs +1 -1
  17. package/components/data-field/index.js +1 -1
  18. package/components/{data-field-DwSYggPc.js → data-field-2gH1_AhT.js} +3 -3
  19. package/components/{data-field-DSzU9Apl.cjs → data-field-DDO-2ESu.cjs} +1 -1
  20. package/components/data-field-level/index.cjs +1 -1
  21. package/components/data-field-level/index.js +1 -1
  22. package/components/{data-field-level-BquNqRm1.js → data-field-level-2h8s8KK1.js} +1 -1
  23. package/components/{data-field-level-CYUtLiIi.cjs → data-field-level-COl8ZWdN.cjs} +1 -1
  24. package/components/data-field-panel/index.cjs +1 -1
  25. package/components/data-field-panel/index.js +1 -1
  26. package/components/{data-field-panel-B_83HNyI.cjs → data-field-panel-CgfuCAp8.cjs} +1 -1
  27. package/components/{data-field-panel-Bqslx0EB.js → data-field-panel-P9QrDHMI.js} +3 -3
  28. package/components/data-fields-select/index.cjs +1 -1
  29. package/components/data-fields-select/index.js +1 -1
  30. package/components/{data-fields-select-t1ikPTLw.js → data-fields-select-1I8-Brdz.js} +1 -1
  31. package/components/{data-fields-select-BZj1cpL5.cjs → data-fields-select-Cudq0iLk.cjs} +1 -1
  32. package/components/dataset-selector-list/index.cjs +1 -1
  33. package/components/dataset-selector-list/index.js +1 -1
  34. package/components/{dataset-selector-list-Bta-CGoN.cjs → dataset-selector-list-BxGYITHM.cjs} +1 -1
  35. package/components/{dataset-selector-list-Ho8JnQp7.js → dataset-selector-list-DmbQl9uz.js} +1 -1
  36. package/components/dataset-selector-row/index.cjs +1 -1
  37. package/components/dataset-selector-row/index.js +1 -1
  38. package/components/{dataset-selector-row-CKhHK1H5.cjs → dataset-selector-row-BgGa4uFN.cjs} +1 -1
  39. package/components/{dataset-selector-row-8hgsmMRg.js → dataset-selector-row-CaTsyi1d.js} +1 -1
  40. package/components/{de-D2bZwq4D.js → de-DFS1MvFY.js} +7 -7
  41. package/components/de-DWpyMlmz.cjs +20 -0
  42. package/components/display-settings/index.cjs +1 -1
  43. package/components/display-settings/index.js +1 -1
  44. package/components/{display-settings-Bmb0HUlu.cjs → display-settings-Bfz2tg_G.cjs} +1 -1
  45. package/components/{display-settings-Di9dXtUM.js → display-settings-DWoUj0P7.js} +1 -1
  46. package/components/display-settings-binning/index.cjs +1 -1
  47. package/components/display-settings-binning/index.js +1 -1
  48. package/components/{display-settings-binning-B8qUIt6T.js → display-settings-binning-BIBzOWZA.js} +2 -2
  49. package/components/{display-settings-binning-CpwCqvwm.cjs → display-settings-binning-Cf1QlQy6.cjs} +1 -1
  50. package/components/display-settings-datetime/index.cjs +1 -1
  51. package/components/display-settings-datetime/index.js +1 -1
  52. package/components/{display-settings-datetime-3M3DvzTN.cjs → display-settings-datetime-C76Et2ED.cjs} +1 -1
  53. package/components/{display-settings-datetime-C8JfjDJK.js → display-settings-datetime-DGlj31eD.js} +2 -2
  54. package/components/display-settings-grand-totals/index.cjs +1 -1
  55. package/components/display-settings-grand-totals/index.js +1 -1
  56. package/components/{display-settings-grand-totals-DMDa6C5k.cjs → display-settings-grand-totals-By98iKXS.cjs} +1 -1
  57. package/components/{display-settings-grand-totals-kyfMh55D.js → display-settings-grand-totals-ZWO02WXj.js} +2 -2
  58. package/components/display-settings-numeric/index.cjs +1 -1
  59. package/components/display-settings-numeric/index.js +1 -1
  60. package/components/{display-settings-numeric-B51KddXI.cjs → display-settings-numeric-BPKl9ljn.cjs} +1 -1
  61. package/components/{display-settings-numeric-Cw8Nx5s9.js → display-settings-numeric-DHvjUxmC.js} +2 -2
  62. package/components/display-settings-period-over-period/index.cjs +1 -1
  63. package/components/display-settings-period-over-period/index.js +1 -1
  64. package/components/{display-settings-period-over-period-B2AN0rwz.js → display-settings-period-over-period-CPsfL-OC.js} +2 -2
  65. package/components/{display-settings-period-over-period-CjjA2NqZ.cjs → display-settings-period-over-period-CYwa8_dX.cjs} +1 -1
  66. package/components/es-Bm4nseZH.cjs +20 -0
  67. package/components/{es-9-jszdOJ.js → es-C1prodbH.js} +7 -7
  68. package/components/filter-expression-picker/index.cjs +1 -1
  69. package/components/filter-expression-picker/index.js +1 -1
  70. package/components/{filter-expression-picker-DCFZKpBE.cjs → filter-expression-picker-CJB_jgcc.cjs} +1 -1
  71. package/components/{filter-expression-picker-Brn-vNUd.js → filter-expression-picker-DbIwoTsX.js} +1 -1
  72. package/components/filter-item/index.cjs +1 -1
  73. package/components/filter-item/index.js +1 -1
  74. package/components/{filter-item-BlSQe2nu.js → filter-item-BGtJwvjk.js} +4 -4
  75. package/components/{filter-item-Cjrhb1RR.cjs → filter-item-as8Ocmp3.cjs} +1 -1
  76. package/components/filter-value-picker/index.cjs +1 -1
  77. package/components/filter-value-picker/index.js +1 -1
  78. package/components/{filter-value-picker-BCckBdal.cjs → filter-value-picker-BL-1pN_G.cjs} +1 -1
  79. package/components/{filter-value-picker-CBetCjIs.js → filter-value-picker-BrYCGFst.js} +4 -4
  80. package/components/filter-value-picker-datetime/index.cjs +1 -1
  81. package/components/filter-value-picker-datetime/index.js +1 -1
  82. package/components/{filter-value-picker-datetime-CT63jJDI.js → filter-value-picker-datetime-BPtF1l_J.js} +1 -1
  83. package/components/{filter-value-picker-datetime-CxM6HXe3.cjs → filter-value-picker-datetime-wXHf2Ybs.cjs} +1 -1
  84. package/components/filter-value-picker-hierarchy/index.cjs +1 -1
  85. package/components/filter-value-picker-hierarchy/index.js +1 -1
  86. package/components/{filter-value-picker-hierarchy-CAORy2A-.js → filter-value-picker-hierarchy-CDhpfB2Y.js} +2 -2
  87. package/components/{filter-value-picker-hierarchy-C5QZXiQz.cjs → filter-value-picker-hierarchy-Cmw2p2K6.cjs} +1 -1
  88. package/components/filter-value-picker-numeric/index.cjs +1 -1
  89. package/components/filter-value-picker-numeric/index.js +1 -1
  90. package/components/{filter-value-picker-numeric-Fao-PKN7.js → filter-value-picker-numeric-BEvT5oKu.js} +1 -1
  91. package/components/{filter-value-picker-numeric-CtOfHaJR.cjs → filter-value-picker-numeric-UwkCyHGV.cjs} +1 -1
  92. package/components/filters/index.cjs +1 -1
  93. package/components/filters/index.js +1 -1
  94. package/components/{filters-DI0GTL9k.cjs → filters-DdB5-4Db.cjs} +1 -1
  95. package/components/{filters-CtWut3ce.js → filters-ltvxQR-K.js} +2 -2
  96. package/components/{fr-DLf99-F8.js → fr-BMYUCp2R.js} +7 -7
  97. package/components/fr-BPTbVsj0.cjs +20 -0
  98. package/components/{get-dataset-name-EKmxKZU9.js → get-dataset-name-BfFHT__k.js} +1 -1
  99. package/components/{get-dataset-name-CvZduuOo.cjs → get-dataset-name-Cl6mPSex.cjs} +1 -1
  100. package/components/index.cjs +1 -1
  101. package/components/index.js +58 -58
  102. package/components/item-grid/index.cjs +1 -1
  103. package/components/item-grid/index.js +1 -1
  104. package/components/{item-grid-Bcez8lwg.cjs → item-grid-DR36E_MC.cjs} +1 -1
  105. package/components/{item-grid-DgxtJ0eX.js → item-grid-Q0Ggl_US.js} +1 -1
  106. package/components/item-option/index.cjs +1 -1
  107. package/components/item-option/index.js +1 -1
  108. package/components/{item-option-BgYyAKSW.cjs → item-option-CbvYq_WJ.cjs} +1 -1
  109. package/components/{item-option-DjiTHr0r.js → item-option-DI3KO7QY.js} +1 -1
  110. package/components/item-option-action-button-group/index.cjs +1 -1
  111. package/components/item-option-action-button-group/index.js +1 -1
  112. package/components/{item-option-action-button-group-DdqzgR08.cjs → item-option-action-button-group-BnMVlPWX.cjs} +1 -1
  113. package/components/{item-option-action-button-group-U5GCtFjg.js → item-option-action-button-group-D6IwxNDf.js} +1 -1
  114. package/components/{item-option-base-BeIdCZMp.cjs → item-option-base-CKQPWveC.cjs} +1 -1
  115. package/components/{item-option-base-DM3U9dbW.js → item-option-base-DH5wKqEF.js} +1 -1
  116. package/components/item-option-color-palette-picker/index.cjs +1 -1
  117. package/components/item-option-color-palette-picker/index.js +1 -1
  118. package/components/{item-option-color-palette-picker-oj8nSb-q.cjs → item-option-color-palette-picker-h-3xHsR4.cjs} +1 -1
  119. package/components/{item-option-color-palette-picker-BsMZ3IUR.js → item-option-color-palette-picker-n_OxJNd9.js} +1 -1
  120. package/components/item-option-color-picker/index.cjs +1 -1
  121. package/components/item-option-color-picker/index.js +1 -1
  122. package/components/{item-option-color-picker-B_pemZKJ.js → item-option-color-picker-C1x5vS5d.js} +1 -1
  123. package/components/{item-option-color-picker-BJKGTrIi.cjs → item-option-color-picker-C6LZkkBG.cjs} +1 -1
  124. package/components/item-option-color-range/index.cjs +1 -1
  125. package/components/item-option-color-range/index.js +1 -1
  126. package/components/{item-option-color-range-DW3rdMt5.js → item-option-color-range-B2jermJT.js} +1 -1
  127. package/components/{item-option-color-range-BOegJZim.cjs → item-option-color-range-DBiG8jhK.cjs} +1 -1
  128. package/components/item-option-multi-language-field/index.cjs +1 -1
  129. package/components/item-option-multi-language-field/index.js +1 -1
  130. package/components/{item-option-multi-language-field-CeYgkRzs.js → item-option-multi-language-field-BmJY3dG0.js} +1 -1
  131. package/components/{item-option-multi-language-field-BQZ4Lmiy.cjs → item-option-multi-language-field-DDeFZMwX.cjs} +1 -1
  132. package/components/item-option-number-field/index.cjs +1 -1
  133. package/components/item-option-number-field/index.js +1 -1
  134. package/components/{item-option-number-field-CFQyJG_w.js → item-option-number-field-B5ed4vvs.js} +1 -1
  135. package/components/{item-option-number-field-T2L2jFCf.cjs → item-option-number-field-BJo-SKQB.cjs} +1 -1
  136. package/components/item-option-panel/index.cjs +1 -1
  137. package/components/item-option-panel/index.js +1 -1
  138. package/components/{item-option-panel-ChOItFmc.js → item-option-panel-B8BKxNPg.js} +2 -2
  139. package/components/{item-option-panel-BOJmKPgY.cjs → item-option-panel-Dm34avUG.cjs} +1 -1
  140. package/components/item-option-picker/index.cjs +1 -1
  141. package/components/item-option-picker/index.js +1 -1
  142. package/components/{item-option-picker-IBP7QFLA.js → item-option-picker-C8evzSOb.js} +1 -1
  143. package/components/{item-option-picker-3krQktmk.cjs → item-option-picker-DlbKU1wY.cjs} +1 -1
  144. package/components/item-option-position-picker/index.cjs +1 -1
  145. package/components/item-option-position-picker/index.js +1 -1
  146. package/components/{item-option-position-picker-DF54K_Mw.js → item-option-position-picker-Bue5o0fT.js} +1 -1
  147. package/components/{item-option-position-picker-BiLRWUWK.cjs → item-option-position-picker-CB4Y0Z6D.cjs} +1 -1
  148. package/components/item-option-positions-number-field/index.cjs +1 -1
  149. package/components/item-option-positions-number-field/index.js +1 -1
  150. package/components/{item-option-positions-number-field-B6qxN1x7.cjs → item-option-positions-number-field-Bbru1yNj.cjs} +1 -1
  151. package/components/{item-option-positions-number-field-Dchzu5NS.js → item-option-positions-number-field-CdK1WdMx.js} +1 -1
  152. package/components/item-option-radio-button-group/index.cjs +1 -1
  153. package/components/item-option-radio-button-group/index.js +1 -1
  154. package/components/{item-option-radio-button-group-DzI_2jB3.cjs → item-option-radio-button-group-BCiDl5wB.cjs} +1 -1
  155. package/components/{item-option-radio-button-group-BiOpqNXX.js → item-option-radio-button-group-BlQxNUIM.js} +1 -1
  156. package/components/item-option-slider/index.cjs +1 -1
  157. package/components/item-option-slider/index.js +1 -1
  158. package/components/{item-option-slider-Dba7mmcA.js → item-option-slider-CX8XWUEP.js} +1 -1
  159. package/components/{item-option-slider-6E4VgJpv.cjs → item-option-slider-Db-HdZ9C.cjs} +1 -1
  160. package/components/item-option-switch/index.cjs +1 -1
  161. package/components/item-option-switch/index.js +1 -1
  162. package/components/{item-option-switch-BAYX5lTr.js → item-option-switch-1wVCBJpo.js} +1 -1
  163. package/components/{item-option-switch-Dt4pzFNi.cjs → item-option-switch-BI0b6qMP.cjs} +1 -1
  164. package/components/item-option-text-field/index.cjs +1 -1
  165. package/components/item-option-text-field/index.js +1 -1
  166. package/components/{item-option-text-field-BLOz4LvH.cjs → item-option-text-field-Cuo1cBWG.cjs} +1 -1
  167. package/components/{item-option-text-field-CHalqTt1.js → item-option-text-field-c8PsVNYB.js} +1 -1
  168. package/components/item-slot-drop/index.cjs +1 -1
  169. package/components/item-slot-drop/index.js +1 -1
  170. package/components/{item-slot-drop-CNeF_Qmg.cjs → item-slot-drop-2SpLWjPC.cjs} +1 -1
  171. package/components/{item-slot-drop-n6UHgA-Q.js → item-slot-drop-Cpf4DnI4.js} +4 -4
  172. package/components/item-slot-drop-panel/index.cjs +1 -1
  173. package/components/item-slot-drop-panel/index.js +1 -1
  174. package/components/{item-slot-drop-panel-Hhp9_pDd.js → item-slot-drop-panel-C77wRsvJ.js} +3 -3
  175. package/components/{item-slot-drop-panel-Bh6PlCJx.cjs → item-slot-drop-panel-ClEOXFHz.cjs} +1 -1
  176. package/components/item-slot-picker/index.cjs +1 -1
  177. package/components/item-slot-picker/index.js +1 -1
  178. package/components/{item-slot-picker-BAMVwHtd.js → item-slot-picker-BEPRIyMJ.js} +5 -5
  179. package/components/{item-slot-picker-7oF3vLwb.cjs → item-slot-picker-B_l4VnV_.cjs} +1 -1
  180. package/components/item-slot-picker-panel/index.cjs +1 -1
  181. package/components/item-slot-picker-panel/index.js +1 -1
  182. package/components/{item-slot-picker-panel-BYCDx6Hk.js → item-slot-picker-panel-B4tCFh38.js} +3 -3
  183. package/components/{item-slot-picker-panel-C6mMlurQ.cjs → item-slot-picker-panel-BCzV9MAV.cjs} +1 -1
  184. package/components/{localized-mixin-CxGNXOcg.cjs → localized-mixin-AEA3w4H0.cjs} +1 -1
  185. package/components/{localized-mixin-CpYxJczB.js → localized-mixin-XqTi4F7d.js} +1 -1
  186. package/components/nl-BE6MZtti.cjs +20 -0
  187. package/components/{nl-QLEhlKsI.js → nl-DzdJmn0w.js} +7 -7
  188. package/components/{set-locale-wsrhUZVV.js → set-locale-B8CaHx6q.js} +4 -4
  189. package/components/{set-locale-xSK2Wd4D.cjs → set-locale-CFD7fxS3.cjs} +1 -1
  190. package/components/slot-menu/index.cjs +1 -1
  191. package/components/slot-menu/index.js +1 -1
  192. package/components/{slot-menu-CIQRPLvx.cjs → slot-menu-C8446xNy.cjs} +1 -1
  193. package/components/{slot-menu-B431N66z.js → slot-menu-DuJRaqmC.js} +3 -3
  194. package/components/slot-menu-list/index.cjs +1 -1
  195. package/components/slot-menu-list/index.js +1 -1
  196. package/components/{slot-menu-list-BROocU0s.cjs → slot-menu-list-B6A6w2d9.cjs} +1 -1
  197. package/components/{slot-menu-list-Cdh09ie0.js → slot-menu-list-Zzwr6h1J.js} +1 -1
  198. package/components/utils/base.cjs +1 -1
  199. package/components/utils/base.js +2 -2
  200. package/components/{utils-iY1cKQaF.cjs → utils-1SB0pExj.cjs} +1 -1
  201. package/components/{utils-CJ3Vy98n.js → utils-sAvG9cHu.js} +1 -1
  202. package/components/utils.cjs +1 -1
  203. package/components/utils.js +2 -2
  204. package/components/viz-item-menu/index.cjs +1 -1
  205. package/components/viz-item-menu/index.js +1 -1
  206. package/components/{viz-item-menu-D20StIE_.cjs → viz-item-menu-B4mavjZ5.cjs} +1 -1
  207. package/components/{viz-item-menu--FyB_XCf.js → viz-item-menu-CEcwbasZ.js} +1 -1
  208. package/custom-elements.json +284 -0
  209. package/package.json +1 -1
  210. package/react/components/ai-chat/empty-state/index.ts +1 -0
  211. package/react/components/ai-chat/empty-state/types.ts +16 -0
  212. package/react/esm/components/ai-chat/empty-state/index.d.ts +1 -0
  213. package/react/esm/components/ai-chat/empty-state/index.js +1 -0
  214. package/react/esm/components/ai-chat/empty-state/types.d.ts +14 -0
  215. package/react/esm/components/ai-chat/empty-state/types.js +1 -0
  216. package/components/ai-chat-CY73iYCg.cjs +0 -154
  217. package/components/de-CVLDoWlp.cjs +0 -20
  218. package/components/es-Byjf7YBI.cjs +0 -20
  219. package/components/fr-BVxPTfyF.cjs +0 -20
  220. package/components/nl-D4uOyZ6h.cjs +0 -20
@@ -17,9 +17,9 @@
17
17
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18
18
  * SOFTWARE.
19
19
  * */
20
- import { i as e } from "./base-D3ehdFno.js";
20
+ import { i as e } from "./base-D82dU2vv.js";
21
21
  import { t } from "./decorate-DKLaHs_w.js";
22
- import "./ai-interaction-textarea-DI98QoMZ.js";
22
+ import "./ai-interaction-textarea-C1DMkiX9.js";
23
23
  import { msg as n } from "@lit/localize/lit-localize";
24
24
  import { luzmoEllipsisVertical as r, luzmoIcon as i, luzmoSpin as a } from "@luzmo/icons";
25
25
  import "@luzmo/lucero/chat-message";
@@ -29,69 +29,70 @@ import "@luzmo/lucero/progress-steps";
29
29
  import { html as o, nothing as s, unsafeCSS as c } from "lit";
30
30
  import { property as l, state as u } from "lit/decorators.js";
31
31
  import { unsafeHTML as d } from "lit/directives/unsafe-html.js";
32
+ import "@luzmo/lucero/suggestion";
32
33
  //#region node_modules/dompurify/dist/purify.es.mjs
33
- var { entries: ee, setPrototypeOf: te, isFrozen: f, getPrototypeOf: p, getOwnPropertyDescriptor: ne } = Object, { freeze: m, seal: h, create: re } = Object, { apply: ie, construct: ae } = typeof Reflect < "u" && Reflect;
34
- m ||= function(e) {
34
+ var { entries: ee, setPrototypeOf: te, isFrozen: ne, getPrototypeOf: f, getOwnPropertyDescriptor: re } = Object, { freeze: p, seal: m, create: ie } = Object, { apply: ae, construct: oe } = typeof Reflect < "u" && Reflect;
35
+ p ||= function(e) {
35
36
  return e;
36
- }, h ||= function(e) {
37
+ }, m ||= function(e) {
37
38
  return e;
38
- }, ie ||= function(e, t) {
39
+ }, ae ||= function(e, t) {
39
40
  var n = [...arguments].slice(2);
40
41
  return e.apply(t, n);
41
- }, ae ||= function(e) {
42
+ }, oe ||= function(e) {
42
43
  return new e(...[...arguments].slice(1));
43
44
  };
44
- var oe = y(Array.prototype.forEach), se = y(Array.prototype.lastIndexOf), ce = y(Array.prototype.pop), le = y(Array.prototype.push), ue = y(Array.prototype.splice), de = y(String.prototype.toLowerCase), fe = y(String.prototype.toString), pe = y(String.prototype.match), g = y(String.prototype.replace), me = y(String.prototype.indexOf), he = y(String.prototype.trim), _ = y(Object.prototype.hasOwnProperty), v = y(RegExp.prototype.test), ge = b(TypeError);
45
- function y(e) {
45
+ var se = v(Array.prototype.forEach), ce = v(Array.prototype.lastIndexOf), le = v(Array.prototype.pop), ue = v(Array.prototype.push), de = v(Array.prototype.splice), fe = v(String.prototype.toLowerCase), pe = v(String.prototype.toString), me = v(String.prototype.match), h = v(String.prototype.replace), he = v(String.prototype.indexOf), ge = v(String.prototype.trim), g = v(Object.prototype.hasOwnProperty), _ = v(RegExp.prototype.test), _e = y(TypeError);
46
+ function v(e) {
46
47
  return function(t) {
47
48
  t instanceof RegExp && (t.lastIndex = 0);
48
49
  var n = [...arguments].slice(1);
49
- return ie(e, t, n);
50
+ return ae(e, t, n);
50
51
  };
51
52
  }
52
- function b(e) {
53
+ function y(e) {
53
54
  return function() {
54
- return ae(e, [...arguments]);
55
+ return oe(e, [...arguments]);
55
56
  };
56
57
  }
57
- function x(e, t) {
58
- let n = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : de;
58
+ function b(e, t) {
59
+ let n = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : fe;
59
60
  te && te(e, null);
60
61
  let r = t.length;
61
62
  for (; r--;) {
62
63
  let i = t[r];
63
64
  if (typeof i == "string") {
64
65
  let e = n(i);
65
- e !== i && (f(t) || (t[r] = e), i = e);
66
+ e !== i && (ne(t) || (t[r] = e), i = e);
66
67
  }
67
68
  e[i] = !0;
68
69
  }
69
70
  return e;
70
71
  }
71
- function S(e) {
72
- for (let t = 0; t < e.length; t++) _(e, t) || (e[t] = null);
72
+ function x(e) {
73
+ for (let t = 0; t < e.length; t++) g(e, t) || (e[t] = null);
73
74
  return e;
74
75
  }
75
- function C(e) {
76
- let t = re(null);
77
- for (let [n, r] of ee(e)) _(e, n) && (Array.isArray(r) ? t[n] = S(r) : r && typeof r == "object" && r.constructor === Object ? t[n] = C(r) : t[n] = r);
76
+ function S(e) {
77
+ let t = ie(null);
78
+ for (let [n, r] of ee(e)) g(e, n) && (Array.isArray(r) ? t[n] = x(r) : r && typeof r == "object" && r.constructor === Object ? t[n] = S(r) : t[n] = r);
78
79
  return t;
79
80
  }
80
- function _e(e, t) {
81
+ function ve(e, t) {
81
82
  for (; e !== null;) {
82
- let n = ne(e, t);
83
+ let n = re(e, t);
83
84
  if (n) {
84
- if (n.get) return y(n.get);
85
- if (typeof n.value == "function") return y(n.value);
85
+ if (n.get) return v(n.get);
86
+ if (typeof n.value == "function") return v(n.value);
86
87
  }
87
- e = p(e);
88
+ e = f(e);
88
89
  }
89
90
  function n() {
90
91
  return null;
91
92
  }
92
93
  return n;
93
94
  }
94
- var ve = m(/* @__PURE__ */ "a.abbr.acronym.address.area.article.aside.audio.b.bdi.bdo.big.blink.blockquote.body.br.button.canvas.caption.center.cite.code.col.colgroup.content.data.datalist.dd.decorator.del.details.dfn.dialog.dir.div.dl.dt.element.em.fieldset.figcaption.figure.font.footer.form.h1.h2.h3.h4.h5.h6.head.header.hgroup.hr.html.i.img.input.ins.kbd.label.legend.li.main.map.mark.marquee.menu.menuitem.meter.nav.nobr.ol.optgroup.option.output.p.picture.pre.progress.q.rp.rt.ruby.s.samp.search.section.select.shadow.slot.small.source.spacer.span.strike.strong.style.sub.summary.sup.table.tbody.td.template.textarea.tfoot.th.thead.time.tr.track.tt.u.ul.var.video.wbr".split(".")), ye = m(/* @__PURE__ */ "svg.a.altglyph.altglyphdef.altglyphitem.animatecolor.animatemotion.animatetransform.circle.clippath.defs.desc.ellipse.enterkeyhint.exportparts.filter.font.g.glyph.glyphref.hkern.image.inputmode.line.lineargradient.marker.mask.metadata.mpath.part.path.pattern.polygon.polyline.radialgradient.rect.stop.style.switch.symbol.text.textpath.title.tref.tspan.view.vkern".split(".")), be = m([
95
+ var ye = p(/* @__PURE__ */ "a.abbr.acronym.address.area.article.aside.audio.b.bdi.bdo.big.blink.blockquote.body.br.button.canvas.caption.center.cite.code.col.colgroup.content.data.datalist.dd.decorator.del.details.dfn.dialog.dir.div.dl.dt.element.em.fieldset.figcaption.figure.font.footer.form.h1.h2.h3.h4.h5.h6.head.header.hgroup.hr.html.i.img.input.ins.kbd.label.legend.li.main.map.mark.marquee.menu.menuitem.meter.nav.nobr.ol.optgroup.option.output.p.picture.pre.progress.q.rp.rt.ruby.s.samp.search.section.select.shadow.slot.small.source.spacer.span.strike.strong.style.sub.summary.sup.table.tbody.td.template.textarea.tfoot.th.thead.time.tr.track.tt.u.ul.var.video.wbr".split(".")), be = p(/* @__PURE__ */ "svg.a.altglyph.altglyphdef.altglyphitem.animatecolor.animatemotion.animatetransform.circle.clippath.defs.desc.ellipse.enterkeyhint.exportparts.filter.font.g.glyph.glyphref.hkern.image.inputmode.line.lineargradient.marker.mask.metadata.mpath.part.path.pattern.polygon.polyline.radialgradient.rect.stop.style.switch.symbol.text.textpath.title.tref.tspan.view.vkern".split(".")), xe = p([
95
96
  "feBlend",
96
97
  "feColorMatrix",
97
98
  "feComponentTransfer",
@@ -117,7 +118,7 @@ var ve = m(/* @__PURE__ */ "a.abbr.acronym.address.area.article.aside.audio.b.bd
117
118
  "feSpotLight",
118
119
  "feTile",
119
120
  "feTurbulence"
120
- ]), xe = m([
121
+ ]), Se = p([
121
122
  "animate",
122
123
  "color-profile",
123
124
  "cursor",
@@ -140,7 +141,7 @@ var ve = m(/* @__PURE__ */ "a.abbr.acronym.address.area.article.aside.audio.b.bd
140
141
  "solidcolor",
141
142
  "unknown",
142
143
  "use"
143
- ]), Se = m(/* @__PURE__ */ "math.menclose.merror.mfenced.mfrac.mglyph.mi.mlabeledtr.mmultiscripts.mn.mo.mover.mpadded.mphantom.mroot.mrow.ms.mspace.msqrt.mstyle.msub.msup.msubsup.mtable.mtd.mtext.mtr.munder.munderover.mprescripts".split(".")), Ce = m([
144
+ ]), Ce = p(/* @__PURE__ */ "math.menclose.merror.mfenced.mfrac.mglyph.mi.mlabeledtr.mmultiscripts.mn.mo.mover.mpadded.mphantom.mroot.mrow.ms.mspace.msqrt.mstyle.msub.msup.msubsup.mtable.mtd.mtext.mtr.munder.munderover.mprescripts".split(".")), we = p([
144
145
  "maction",
145
146
  "maligngroup",
146
147
  "malignmark",
@@ -156,33 +157,33 @@ var ve = m(/* @__PURE__ */ "a.abbr.acronym.address.area.article.aside.audio.b.bd
156
157
  "annotation-xml",
157
158
  "mprescripts",
158
159
  "none"
159
- ]), we = m(["#text"]), Te = m(/* @__PURE__ */ "accept.action.align.alt.autocapitalize.autocomplete.autopictureinpicture.autoplay.background.bgcolor.border.capture.cellpadding.cellspacing.checked.cite.class.clear.color.cols.colspan.controls.controlslist.coords.crossorigin.datetime.decoding.default.dir.disabled.disablepictureinpicture.disableremoteplayback.download.draggable.enctype.enterkeyhint.exportparts.face.for.headers.height.hidden.high.href.hreflang.id.inert.inputmode.integrity.ismap.kind.label.lang.list.loading.loop.low.max.maxlength.media.method.min.minlength.multiple.muted.name.nonce.noshade.novalidate.nowrap.open.optimum.part.pattern.placeholder.playsinline.popover.popovertarget.popovertargetaction.poster.preload.pubdate.radiogroup.readonly.rel.required.rev.reversed.role.rows.rowspan.spellcheck.scope.selected.shape.size.sizes.slot.span.srclang.start.src.srcset.step.style.summary.tabindex.title.translate.type.usemap.valign.value.width.wrap.xmlns.slot".split(".")), Ee = m(/* @__PURE__ */ "accent-height.accumulate.additive.alignment-baseline.amplitude.ascent.attributename.attributetype.azimuth.basefrequency.baseline-shift.begin.bias.by.class.clip.clippathunits.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.cx.cy.d.dx.dy.diffuseconstant.direction.display.divisor.dur.edgemode.elevation.end.exponent.fill.fill-opacity.fill-rule.filter.filterunits.flood-color.flood-opacity.font-family.font-size.font-size-adjust.font-stretch.font-style.font-variant.font-weight.fx.fy.g1.g2.glyph-name.glyphref.gradientunits.gradienttransform.height.href.id.image-rendering.in.in2.intercept.k.k1.k2.k3.k4.kerning.keypoints.keysplines.keytimes.lang.lengthadjust.letter-spacing.kernelmatrix.kernelunitlength.lighting-color.local.marker-end.marker-mid.marker-start.markerheight.markerunits.markerwidth.maskcontentunits.maskunits.max.mask.mask-type.media.method.mode.min.name.numoctaves.offset.operator.opacity.order.orient.orientation.origin.overflow.paint-order.path.pathlength.patterncontentunits.patterntransform.patternunits.points.preservealpha.preserveaspectratio.primitiveunits.r.rx.ry.radius.refx.refy.repeatcount.repeatdur.restart.result.rotate.scale.seed.shape-rendering.slope.specularconstant.specularexponent.spreadmethod.startoffset.stddeviation.stitchtiles.stop-color.stop-opacity.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke.stroke-width.style.surfacescale.systemlanguage.tabindex.tablevalues.targetx.targety.transform.transform-origin.text-anchor.text-decoration.text-rendering.textlength.type.u1.u2.unicode.values.viewbox.visibility.version.vert-adv-y.vert-origin-x.vert-origin-y.width.word-spacing.wrap.writing-mode.xchannelselector.ychannelselector.x.x1.x2.xmlns.y.y1.y2.z.zoomandpan".split(".")), De = m(/* @__PURE__ */ "accent.accentunder.align.bevelled.close.columnalign.columnlines.columnspacing.columnspan.denomalign.depth.dir.display.displaystyle.encoding.fence.frame.height.href.id.largeop.length.linethickness.lquote.lspace.mathbackground.mathcolor.mathsize.mathvariant.maxsize.minsize.movablelimits.notation.numalign.open.rowalign.rowlines.rowspacing.rowspan.rspace.rquote.scriptlevel.scriptminsize.scriptsizemultiplier.selection.separator.separators.stretchy.subscriptshift.supscriptshift.symmetric.voffset.width.xmlns".split(".")), Oe = m([
160
+ ]), Te = p(["#text"]), Ee = p(/* @__PURE__ */ "accept.action.align.alt.autocapitalize.autocomplete.autopictureinpicture.autoplay.background.bgcolor.border.capture.cellpadding.cellspacing.checked.cite.class.clear.color.cols.colspan.controls.controlslist.coords.crossorigin.datetime.decoding.default.dir.disabled.disablepictureinpicture.disableremoteplayback.download.draggable.enctype.enterkeyhint.exportparts.face.for.headers.height.hidden.high.href.hreflang.id.inert.inputmode.integrity.ismap.kind.label.lang.list.loading.loop.low.max.maxlength.media.method.min.minlength.multiple.muted.name.nonce.noshade.novalidate.nowrap.open.optimum.part.pattern.placeholder.playsinline.popover.popovertarget.popovertargetaction.poster.preload.pubdate.radiogroup.readonly.rel.required.rev.reversed.role.rows.rowspan.spellcheck.scope.selected.shape.size.sizes.slot.span.srclang.start.src.srcset.step.style.summary.tabindex.title.translate.type.usemap.valign.value.width.wrap.xmlns.slot".split(".")), De = p(/* @__PURE__ */ "accent-height.accumulate.additive.alignment-baseline.amplitude.ascent.attributename.attributetype.azimuth.basefrequency.baseline-shift.begin.bias.by.class.clip.clippathunits.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.cx.cy.d.dx.dy.diffuseconstant.direction.display.divisor.dur.edgemode.elevation.end.exponent.fill.fill-opacity.fill-rule.filter.filterunits.flood-color.flood-opacity.font-family.font-size.font-size-adjust.font-stretch.font-style.font-variant.font-weight.fx.fy.g1.g2.glyph-name.glyphref.gradientunits.gradienttransform.height.href.id.image-rendering.in.in2.intercept.k.k1.k2.k3.k4.kerning.keypoints.keysplines.keytimes.lang.lengthadjust.letter-spacing.kernelmatrix.kernelunitlength.lighting-color.local.marker-end.marker-mid.marker-start.markerheight.markerunits.markerwidth.maskcontentunits.maskunits.max.mask.mask-type.media.method.mode.min.name.numoctaves.offset.operator.opacity.order.orient.orientation.origin.overflow.paint-order.path.pathlength.patterncontentunits.patterntransform.patternunits.points.preservealpha.preserveaspectratio.primitiveunits.r.rx.ry.radius.refx.refy.repeatcount.repeatdur.restart.result.rotate.scale.seed.shape-rendering.slope.specularconstant.specularexponent.spreadmethod.startoffset.stddeviation.stitchtiles.stop-color.stop-opacity.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke.stroke-width.style.surfacescale.systemlanguage.tabindex.tablevalues.targetx.targety.transform.transform-origin.text-anchor.text-decoration.text-rendering.textlength.type.u1.u2.unicode.values.viewbox.visibility.version.vert-adv-y.vert-origin-x.vert-origin-y.width.word-spacing.wrap.writing-mode.xchannelselector.ychannelselector.x.x1.x2.xmlns.y.y1.y2.z.zoomandpan".split(".")), Oe = p(/* @__PURE__ */ "accent.accentunder.align.bevelled.close.columnalign.columnlines.columnspacing.columnspan.denomalign.depth.dir.display.displaystyle.encoding.fence.frame.height.href.id.largeop.length.linethickness.lquote.lspace.mathbackground.mathcolor.mathsize.mathvariant.maxsize.minsize.movablelimits.notation.numalign.open.rowalign.rowlines.rowspacing.rowspan.rspace.rquote.scriptlevel.scriptminsize.scriptsizemultiplier.selection.separator.separators.stretchy.subscriptshift.supscriptshift.symmetric.voffset.width.xmlns".split(".")), ke = p([
160
161
  "xlink:href",
161
162
  "xml:id",
162
163
  "xlink:title",
163
164
  "xml:space",
164
165
  "xmlns:xlink"
165
- ]), ke = h(/\{\{[\w\W]*|[\w\W]*\}\}/gm), Ae = h(/<%[\w\W]*|[\w\W]*%>/gm), je = h(/\$\{[\w\W]*/gm), Me = h(/^data-[\-\w.\u00B7-\uFFFF]+$/), Ne = h(/^aria-[\-\w]+$/), Pe = h(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i), w = h(/^(?:\w+script|data):/i), T = h(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g), Fe = h(/^html$/i), E = h(/^[a-z][.\w]*(-[.\w]+)+$/i), Ie = /* @__PURE__ */ Object.freeze({
166
+ ]), Ae = m(/\{\{[\w\W]*|[\w\W]*\}\}/gm), je = m(/<%[\w\W]*|[\w\W]*%>/gm), Me = m(/\$\{[\w\W]*/gm), Ne = m(/^data-[\-\w.\u00B7-\uFFFF]+$/), Pe = m(/^aria-[\-\w]+$/), Fe = m(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i), C = m(/^(?:\w+script|data):/i), Ie = m(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g), Le = m(/^html$/i), Re = m(/^[a-z][.\w]*(-[.\w]+)+$/i), ze = /* @__PURE__ */ Object.freeze({
166
167
  __proto__: null,
167
- ARIA_ATTR: Ne,
168
- ATTR_WHITESPACE: T,
169
- CUSTOM_ELEMENT: E,
170
- DATA_ATTR: Me,
171
- DOCTYPE_NAME: Fe,
172
- ERB_EXPR: Ae,
173
- IS_ALLOWED_URI: Pe,
174
- IS_SCRIPT_OR_DATA: w,
175
- MUSTACHE_EXPR: ke,
176
- TMPLIT_EXPR: je
177
- }), D = {
168
+ ARIA_ATTR: Pe,
169
+ ATTR_WHITESPACE: Ie,
170
+ CUSTOM_ELEMENT: Re,
171
+ DATA_ATTR: Ne,
172
+ DOCTYPE_NAME: Le,
173
+ ERB_EXPR: je,
174
+ IS_ALLOWED_URI: Fe,
175
+ IS_SCRIPT_OR_DATA: C,
176
+ MUSTACHE_EXPR: Ae,
177
+ TMPLIT_EXPR: Me
178
+ }), Be = {
178
179
  element: 1,
179
180
  text: 3,
180
181
  progressingInstruction: 7,
181
182
  comment: 8,
182
183
  document: 9
183
- }, Le = function() {
184
+ }, Ve = function() {
184
185
  return typeof window > "u" ? null : window;
185
- }, Re = function(e, t) {
186
+ }, He = function(e, t) {
186
187
  if (typeof e != "object" || typeof e.createPolicy != "function") return null;
187
188
  let n = null, r = "data-tt-policy-suffix";
188
189
  t && t.hasAttribute(r) && (n = t.getAttribute(r));
@@ -199,7 +200,7 @@ var ve = m(/* @__PURE__ */ "a.abbr.acronym.address.area.article.aside.audio.b.bd
199
200
  } catch {
200
201
  return console.warn("TrustedTypes policy " + i + " could not be created."), null;
201
202
  }
202
- }, ze = function() {
203
+ }, Ue = function() {
203
204
  return {
204
205
  afterSanitizeAttributes: [],
205
206
  afterSanitizeElements: [],
@@ -212,28 +213,28 @@ var ve = m(/* @__PURE__ */ "a.abbr.acronym.address.area.article.aside.audio.b.bd
212
213
  uponSanitizeShadowNode: []
213
214
  };
214
215
  };
215
- function Be() {
216
- let e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : Le(), t = (e) => Be(e);
217
- if (t.version = "3.4.0", t.removed = [], !e || !e.document || e.document.nodeType !== D.document || !e.Element) return t.isSupported = !1, t;
218
- let { document: n } = e, r = n, i = r.currentScript, { DocumentFragment: a, HTMLTemplateElement: o, Node: s, Element: c, NodeFilter: l, NamedNodeMap: u = e.NamedNodeMap || e.MozNamedAttrMap, HTMLFormElement: d, DOMParser: te, trustedTypes: f } = e, p = c.prototype, ne = _e(p, "cloneNode"), h = _e(p, "remove"), ie = _e(p, "nextSibling"), ae = _e(p, "childNodes"), y = _e(p, "parentNode");
216
+ function We() {
217
+ let e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : Ve(), t = (e) => We(e);
218
+ if (t.version = "3.4.0", t.removed = [], !e || !e.document || e.document.nodeType !== Be.document || !e.Element) return t.isSupported = !1, t;
219
+ let { document: n } = e, r = n, i = r.currentScript, { DocumentFragment: a, HTMLTemplateElement: o, Node: s, Element: c, NodeFilter: l, NamedNodeMap: u = e.NamedNodeMap || e.MozNamedAttrMap, HTMLFormElement: d, DOMParser: te, trustedTypes: ne } = e, f = c.prototype, re = ve(f, "cloneNode"), m = ve(f, "remove"), ae = ve(f, "nextSibling"), oe = ve(f, "childNodes"), v = ve(f, "parentNode");
219
220
  if (typeof o == "function") {
220
221
  let e = n.createElement("template");
221
222
  e.content && e.content.ownerDocument && (n = e.content.ownerDocument);
222
223
  }
223
- let b, S = "", { implementation: ke, createNodeIterator: Ae, createDocumentFragment: je, getElementsByTagName: Me } = n, { importNode: Ne } = r, w = ze();
224
- t.isSupported = typeof ee == "function" && typeof y == "function" && ke && ke.createHTMLDocument !== void 0;
225
- let { MUSTACHE_EXPR: T, ERB_EXPR: E, TMPLIT_EXPR: Ve, DATA_ATTR: He, ARIA_ATTR: Ue, IS_SCRIPT_OR_DATA: We, ATTR_WHITESPACE: Ge, CUSTOM_ELEMENT: Ke } = Ie, { IS_ALLOWED_URI: qe } = Ie, O = null, Je = x({}, [
226
- ...ve,
224
+ let y, x = "", { implementation: Ae, createNodeIterator: je, createDocumentFragment: Me, getElementsByTagName: Ne } = n, { importNode: Pe } = r, C = Ue();
225
+ t.isSupported = typeof ee == "function" && typeof v == "function" && Ae && Ae.createHTMLDocument !== void 0;
226
+ let { MUSTACHE_EXPR: Ie, ERB_EXPR: Re, TMPLIT_EXPR: Ge, DATA_ATTR: Ke, ARIA_ATTR: w, IS_SCRIPT_OR_DATA: qe, ATTR_WHITESPACE: Je, CUSTOM_ELEMENT: Ye } = ze, { IS_ALLOWED_URI: Xe } = ze, T = null, Ze = b({}, [
227
227
  ...ye,
228
228
  ...be,
229
- ...Se,
230
- ...we
231
- ]), k = null, Ye = x({}, [
232
- ...Te,
229
+ ...xe,
230
+ ...Ce,
231
+ ...Te
232
+ ]), E = null, Qe = b({}, [
233
233
  ...Ee,
234
234
  ...De,
235
- ...Oe
236
- ]), A = Object.seal(re(null, {
235
+ ...Oe,
236
+ ...ke
237
+ ]), D = Object.seal(ie(null, {
237
238
  tagNameCheck: {
238
239
  writable: !0,
239
240
  configurable: !1,
@@ -252,7 +253,7 @@ function Be() {
252
253
  enumerable: !0,
253
254
  value: !1
254
255
  }
255
- })), j = null, M = null, N = Object.seal(re(null, {
256
+ })), O = null, k = null, A = Object.seal(ie(null, {
256
257
  tagCheck: {
257
258
  writable: !0,
258
259
  configurable: !1,
@@ -265,7 +266,7 @@ function Be() {
265
266
  enumerable: !0,
266
267
  value: null
267
268
  }
268
- })), Xe = !0, Ze = !0, Qe = !1, $e = !0, P = !1, F = !0, I = !1, L = !1, R = !1, z = !1, B = !1, V = !1, et = !0, tt = !1, nt = !0, H = !1, U = {}, W = null, rt = x({}, [
269
+ })), $e = !0, et = !0, tt = !1, nt = !0, j = !1, M = !0, N = !1, P = !1, F = !1, I = !1, L = !1, R = !1, z = !0, rt = !1, B = !0, V = !1, H = {}, U = null, it = b({}, [
269
270
  "annotation-xml",
270
271
  "audio",
271
272
  "colgroup",
@@ -291,14 +292,14 @@ function Be() {
291
292
  "title",
292
293
  "video",
293
294
  "xmp"
294
- ]), it = null, at = x({}, [
295
+ ]), at = null, ot = b({}, [
295
296
  "audio",
296
297
  "video",
297
298
  "img",
298
299
  "source",
299
300
  "image",
300
301
  "track"
301
- ]), ot = null, st = x({}, [
302
+ ]), st = null, ct = b({}, [
302
303
  "alt",
303
304
  "class",
304
305
  "for",
@@ -313,70 +314,70 @@ function Be() {
313
314
  "value",
314
315
  "style",
315
316
  "xmlns"
316
- ]), ct = "http://www.w3.org/1998/Math/MathML", G = "http://www.w3.org/2000/svg", K = "http://www.w3.org/1999/xhtml", q = K, lt = !1, ut = null, dt = x({}, [
317
- ct,
318
- G,
319
- K
320
- ], fe), ft = x({}, [
317
+ ]), lt = "http://www.w3.org/1998/Math/MathML", ut = "http://www.w3.org/2000/svg", W = "http://www.w3.org/1999/xhtml", G = W, dt = !1, ft = null, pt = b({}, [
318
+ lt,
319
+ ut,
320
+ W
321
+ ], pe), K = b({}, [
321
322
  "mi",
322
323
  "mo",
323
324
  "mn",
324
325
  "ms",
325
326
  "mtext"
326
- ]), J = x({}, ["annotation-xml"]), pt = x({}, [
327
+ ]), q = b({}, ["annotation-xml"]), mt = b({}, [
327
328
  "title",
328
329
  "style",
329
330
  "font",
330
331
  "a",
331
332
  "script"
332
- ]), mt = null, ht = ["application/xhtml+xml", "text/html"], Y = null, X = null, gt = n.createElement("form"), _t = function(e) {
333
+ ]), J = null, ht = ["application/xhtml+xml", "text/html"], Y = null, X = null, gt = n.createElement("form"), _t = function(e) {
333
334
  return e instanceof RegExp || e instanceof Function;
334
335
  }, vt = function() {
335
336
  let e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
336
337
  if (!(X && X === e)) {
337
- if ((!e || typeof e != "object") && (e = {}), e = C(e), mt = ht.indexOf(e.PARSER_MEDIA_TYPE) === -1 ? "text/html" : e.PARSER_MEDIA_TYPE, Y = mt === "application/xhtml+xml" ? fe : de, O = _(e, "ALLOWED_TAGS") ? x({}, e.ALLOWED_TAGS, Y) : Je, k = _(e, "ALLOWED_ATTR") ? x({}, e.ALLOWED_ATTR, Y) : Ye, ut = _(e, "ALLOWED_NAMESPACES") ? x({}, e.ALLOWED_NAMESPACES, fe) : dt, ot = _(e, "ADD_URI_SAFE_ATTR") ? x(C(st), e.ADD_URI_SAFE_ATTR, Y) : st, it = _(e, "ADD_DATA_URI_TAGS") ? x(C(at), e.ADD_DATA_URI_TAGS, Y) : at, W = _(e, "FORBID_CONTENTS") ? x({}, e.FORBID_CONTENTS, Y) : rt, j = _(e, "FORBID_TAGS") ? x({}, e.FORBID_TAGS, Y) : C({}), M = _(e, "FORBID_ATTR") ? x({}, e.FORBID_ATTR, Y) : C({}), U = _(e, "USE_PROFILES") ? e.USE_PROFILES : !1, Xe = e.ALLOW_ARIA_ATTR !== !1, Ze = e.ALLOW_DATA_ATTR !== !1, Qe = e.ALLOW_UNKNOWN_PROTOCOLS || !1, $e = e.ALLOW_SELF_CLOSE_IN_ATTR !== !1, P = e.SAFE_FOR_TEMPLATES || !1, F = e.SAFE_FOR_XML !== !1, I = e.WHOLE_DOCUMENT || !1, z = e.RETURN_DOM || !1, B = e.RETURN_DOM_FRAGMENT || !1, V = e.RETURN_TRUSTED_TYPE || !1, R = e.FORCE_BODY || !1, et = e.SANITIZE_DOM !== !1, tt = e.SANITIZE_NAMED_PROPS || !1, nt = e.KEEP_CONTENT !== !1, H = e.IN_PLACE || !1, qe = e.ALLOWED_URI_REGEXP || Pe, q = e.NAMESPACE || K, ft = e.MATHML_TEXT_INTEGRATION_POINTS || ft, J = e.HTML_INTEGRATION_POINTS || J, A = e.CUSTOM_ELEMENT_HANDLING || re(null), e.CUSTOM_ELEMENT_HANDLING && _t(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck) && (A.tagNameCheck = e.CUSTOM_ELEMENT_HANDLING.tagNameCheck), e.CUSTOM_ELEMENT_HANDLING && _t(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck) && (A.attributeNameCheck = e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck), e.CUSTOM_ELEMENT_HANDLING && typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements == "boolean" && (A.allowCustomizedBuiltInElements = e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements), P && (Ze = !1), B && (z = !0), U && (O = x({}, we), k = re(null), U.html === !0 && (x(O, ve), x(k, Te)), U.svg === !0 && (x(O, ye), x(k, Ee), x(k, Oe)), U.svgFilters === !0 && (x(O, be), x(k, Ee), x(k, Oe)), U.mathMl === !0 && (x(O, Se), x(k, De), x(k, Oe))), N.tagCheck = null, N.attributeCheck = null, e.ADD_TAGS && (typeof e.ADD_TAGS == "function" ? N.tagCheck = e.ADD_TAGS : (O === Je && (O = C(O)), x(O, e.ADD_TAGS, Y))), e.ADD_ATTR && (typeof e.ADD_ATTR == "function" ? N.attributeCheck = e.ADD_ATTR : (k === Ye && (k = C(k)), x(k, e.ADD_ATTR, Y))), e.ADD_URI_SAFE_ATTR && x(ot, e.ADD_URI_SAFE_ATTR, Y), e.FORBID_CONTENTS && (W === rt && (W = C(W)), x(W, e.FORBID_CONTENTS, Y)), e.ADD_FORBID_CONTENTS && (W === rt && (W = C(W)), x(W, e.ADD_FORBID_CONTENTS, Y)), nt && (O["#text"] = !0), I && x(O, [
338
+ if ((!e || typeof e != "object") && (e = {}), e = S(e), J = ht.indexOf(e.PARSER_MEDIA_TYPE) === -1 ? "text/html" : e.PARSER_MEDIA_TYPE, Y = J === "application/xhtml+xml" ? pe : fe, T = g(e, "ALLOWED_TAGS") ? b({}, e.ALLOWED_TAGS, Y) : Ze, E = g(e, "ALLOWED_ATTR") ? b({}, e.ALLOWED_ATTR, Y) : Qe, ft = g(e, "ALLOWED_NAMESPACES") ? b({}, e.ALLOWED_NAMESPACES, pe) : pt, st = g(e, "ADD_URI_SAFE_ATTR") ? b(S(ct), e.ADD_URI_SAFE_ATTR, Y) : ct, at = g(e, "ADD_DATA_URI_TAGS") ? b(S(ot), e.ADD_DATA_URI_TAGS, Y) : ot, U = g(e, "FORBID_CONTENTS") ? b({}, e.FORBID_CONTENTS, Y) : it, O = g(e, "FORBID_TAGS") ? b({}, e.FORBID_TAGS, Y) : S({}), k = g(e, "FORBID_ATTR") ? b({}, e.FORBID_ATTR, Y) : S({}), H = g(e, "USE_PROFILES") ? e.USE_PROFILES : !1, $e = e.ALLOW_ARIA_ATTR !== !1, et = e.ALLOW_DATA_ATTR !== !1, tt = e.ALLOW_UNKNOWN_PROTOCOLS || !1, nt = e.ALLOW_SELF_CLOSE_IN_ATTR !== !1, j = e.SAFE_FOR_TEMPLATES || !1, M = e.SAFE_FOR_XML !== !1, N = e.WHOLE_DOCUMENT || !1, I = e.RETURN_DOM || !1, L = e.RETURN_DOM_FRAGMENT || !1, R = e.RETURN_TRUSTED_TYPE || !1, F = e.FORCE_BODY || !1, z = e.SANITIZE_DOM !== !1, rt = e.SANITIZE_NAMED_PROPS || !1, B = e.KEEP_CONTENT !== !1, V = e.IN_PLACE || !1, Xe = e.ALLOWED_URI_REGEXP || Fe, G = e.NAMESPACE || W, K = e.MATHML_TEXT_INTEGRATION_POINTS || K, q = e.HTML_INTEGRATION_POINTS || q, D = e.CUSTOM_ELEMENT_HANDLING || ie(null), e.CUSTOM_ELEMENT_HANDLING && _t(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck) && (D.tagNameCheck = e.CUSTOM_ELEMENT_HANDLING.tagNameCheck), e.CUSTOM_ELEMENT_HANDLING && _t(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck) && (D.attributeNameCheck = e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck), e.CUSTOM_ELEMENT_HANDLING && typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements == "boolean" && (D.allowCustomizedBuiltInElements = e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements), j && (et = !1), L && (I = !0), H && (T = b({}, Te), E = ie(null), H.html === !0 && (b(T, ye), b(E, Ee)), H.svg === !0 && (b(T, be), b(E, De), b(E, ke)), H.svgFilters === !0 && (b(T, xe), b(E, De), b(E, ke)), H.mathMl === !0 && (b(T, Ce), b(E, Oe), b(E, ke))), A.tagCheck = null, A.attributeCheck = null, e.ADD_TAGS && (typeof e.ADD_TAGS == "function" ? A.tagCheck = e.ADD_TAGS : (T === Ze && (T = S(T)), b(T, e.ADD_TAGS, Y))), e.ADD_ATTR && (typeof e.ADD_ATTR == "function" ? A.attributeCheck = e.ADD_ATTR : (E === Qe && (E = S(E)), b(E, e.ADD_ATTR, Y))), e.ADD_URI_SAFE_ATTR && b(st, e.ADD_URI_SAFE_ATTR, Y), e.FORBID_CONTENTS && (U === it && (U = S(U)), b(U, e.FORBID_CONTENTS, Y)), e.ADD_FORBID_CONTENTS && (U === it && (U = S(U)), b(U, e.ADD_FORBID_CONTENTS, Y)), B && (T["#text"] = !0), N && b(T, [
338
339
  "html",
339
340
  "head",
340
341
  "body"
341
- ]), O.table && (x(O, ["tbody"]), delete j.tbody), e.TRUSTED_TYPES_POLICY) {
342
- if (typeof e.TRUSTED_TYPES_POLICY.createHTML != "function") throw ge("TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.");
343
- if (typeof e.TRUSTED_TYPES_POLICY.createScriptURL != "function") throw ge("TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.");
344
- b = e.TRUSTED_TYPES_POLICY, S = b.createHTML("");
345
- } else b === void 0 && (b = Re(f, i)), b !== null && typeof S == "string" && (S = b.createHTML(""));
346
- m && m(e), X = e;
342
+ ]), T.table && (b(T, ["tbody"]), delete O.tbody), e.TRUSTED_TYPES_POLICY) {
343
+ if (typeof e.TRUSTED_TYPES_POLICY.createHTML != "function") throw _e("TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.");
344
+ if (typeof e.TRUSTED_TYPES_POLICY.createScriptURL != "function") throw _e("TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.");
345
+ y = e.TRUSTED_TYPES_POLICY, x = y.createHTML("");
346
+ } else y === void 0 && (y = He(ne, i)), y !== null && typeof x == "string" && (x = y.createHTML(""));
347
+ p && p(e), X = e;
347
348
  }
348
- }, yt = x({}, [
349
- ...ye,
349
+ }, yt = b({}, [
350
350
  ...be,
351
- ...xe
352
- ]), bt = x({}, [...Se, ...Ce]), xt = function(e) {
353
- let t = y(e);
351
+ ...xe,
352
+ ...Se
353
+ ]), bt = b({}, [...Ce, ...we]), xt = function(e) {
354
+ let t = v(e);
354
355
  (!t || !t.tagName) && (t = {
355
- namespaceURI: q,
356
+ namespaceURI: G,
356
357
  tagName: "template"
357
358
  });
358
- let n = de(e.tagName), r = de(t.tagName);
359
- return ut[e.namespaceURI] ? e.namespaceURI === G ? t.namespaceURI === K ? n === "svg" : t.namespaceURI === ct ? n === "svg" && (r === "annotation-xml" || ft[r]) : !!yt[n] : e.namespaceURI === ct ? t.namespaceURI === K ? n === "math" : t.namespaceURI === G ? n === "math" && J[r] : !!bt[n] : e.namespaceURI === K ? t.namespaceURI === G && !J[r] || t.namespaceURI === ct && !ft[r] ? !1 : !bt[n] && (pt[n] || !yt[n]) : !!(mt === "application/xhtml+xml" && ut[e.namespaceURI]) : !1;
359
+ let n = fe(e.tagName), r = fe(t.tagName);
360
+ return ft[e.namespaceURI] ? e.namespaceURI === ut ? t.namespaceURI === W ? n === "svg" : t.namespaceURI === lt ? n === "svg" && (r === "annotation-xml" || K[r]) : !!yt[n] : e.namespaceURI === lt ? t.namespaceURI === W ? n === "math" : t.namespaceURI === ut ? n === "math" && q[r] : !!bt[n] : e.namespaceURI === W ? t.namespaceURI === ut && !q[r] || t.namespaceURI === lt && !K[r] ? !1 : !bt[n] && (mt[n] || !yt[n]) : !!(J === "application/xhtml+xml" && ft[e.namespaceURI]) : !1;
360
361
  }, Z = function(e) {
361
- le(t.removed, { element: e });
362
+ ue(t.removed, { element: e });
362
363
  try {
363
- y(e).removeChild(e);
364
+ v(e).removeChild(e);
364
365
  } catch {
365
- h(e);
366
+ m(e);
366
367
  }
367
368
  }, Q = function(e, n) {
368
369
  try {
369
- le(t.removed, {
370
+ ue(t.removed, {
370
371
  attribute: n.getAttributeNode(e),
371
372
  from: n
372
373
  });
373
374
  } catch {
374
- le(t.removed, {
375
+ ue(t.removed, {
375
376
  attribute: null,
376
377
  from: n
377
378
  });
378
379
  }
379
- if (n.removeAttribute(e), e === "is") if (z || B) try {
380
+ if (n.removeAttribute(e), e === "is") if (I || L) try {
380
381
  Z(n);
381
382
  } catch {}
382
383
  else try {
@@ -384,93 +385,93 @@ function Be() {
384
385
  } catch {}
385
386
  }, St = function(e) {
386
387
  let t = null, r = null;
387
- if (R) e = "<remove></remove>" + e;
388
+ if (F) e = "<remove></remove>" + e;
388
389
  else {
389
- let t = pe(e, /^[\r\n\t ]+/);
390
+ let t = me(e, /^[\r\n\t ]+/);
390
391
  r = t && t[0];
391
392
  }
392
- mt === "application/xhtml+xml" && q === K && (e = "<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>" + e + "</body></html>");
393
- let i = b ? b.createHTML(e) : e;
394
- if (q === K) try {
395
- t = new te().parseFromString(i, mt);
393
+ J === "application/xhtml+xml" && G === W && (e = "<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>" + e + "</body></html>");
394
+ let i = y ? y.createHTML(e) : e;
395
+ if (G === W) try {
396
+ t = new te().parseFromString(i, J);
396
397
  } catch {}
397
398
  if (!t || !t.documentElement) {
398
- t = ke.createDocument(q, "template", null);
399
+ t = Ae.createDocument(G, "template", null);
399
400
  try {
400
- t.documentElement.innerHTML = lt ? S : i;
401
+ t.documentElement.innerHTML = dt ? x : i;
401
402
  } catch {}
402
403
  }
403
404
  let a = t.body || t.documentElement;
404
- return e && r && a.insertBefore(n.createTextNode(r), a.childNodes[0] || null), q === K ? Me.call(t, I ? "html" : "body")[0] : I ? t.documentElement : a;
405
+ return e && r && a.insertBefore(n.createTextNode(r), a.childNodes[0] || null), G === W ? Ne.call(t, N ? "html" : "body")[0] : N ? t.documentElement : a;
405
406
  }, Ct = function(e) {
406
- return Ae.call(e.ownerDocument || e, e, l.SHOW_ELEMENT | l.SHOW_COMMENT | l.SHOW_TEXT | l.SHOW_PROCESSING_INSTRUCTION | l.SHOW_CDATA_SECTION, null);
407
+ return je.call(e.ownerDocument || e, e, l.SHOW_ELEMENT | l.SHOW_COMMENT | l.SHOW_TEXT | l.SHOW_PROCESSING_INSTRUCTION | l.SHOW_CDATA_SECTION, null);
407
408
  }, wt = function(e) {
408
409
  return e instanceof d && (typeof e.nodeName != "string" || typeof e.textContent != "string" || typeof e.removeChild != "function" || !(e.attributes instanceof u) || typeof e.removeAttribute != "function" || typeof e.setAttribute != "function" || typeof e.namespaceURI != "string" || typeof e.insertBefore != "function" || typeof e.hasChildNodes != "function");
409
410
  }, Tt = function(e) {
410
411
  return typeof s == "function" && e instanceof s;
411
412
  };
412
413
  function $(e, n, r) {
413
- oe(e, (e) => {
414
+ se(e, (e) => {
414
415
  e.call(t, n, r, X);
415
416
  });
416
417
  }
417
418
  let Et = function(e) {
418
419
  let n = null;
419
- if ($(w.beforeSanitizeElements, e, null), wt(e)) return Z(e), !0;
420
+ if ($(C.beforeSanitizeElements, e, null), wt(e)) return Z(e), !0;
420
421
  let r = Y(e.nodeName);
421
- if ($(w.uponSanitizeElement, e, {
422
+ if ($(C.uponSanitizeElement, e, {
422
423
  tagName: r,
423
- allowedTags: O
424
- }), F && e.hasChildNodes() && !Tt(e.firstElementChild) && v(/<[/\w!]/g, e.innerHTML) && v(/<[/\w!]/g, e.textContent) || F && e.namespaceURI === K && r === "style" && Tt(e.firstElementChild) || e.nodeType === D.progressingInstruction || F && e.nodeType === D.comment && v(/<[/\w]/g, e.data)) return Z(e), !0;
425
- if (j[r] || !(N.tagCheck instanceof Function && N.tagCheck(r)) && !O[r]) {
426
- if (!j[r] && Ot(r) && (A.tagNameCheck instanceof RegExp && v(A.tagNameCheck, r) || A.tagNameCheck instanceof Function && A.tagNameCheck(r))) return !1;
427
- if (nt && !W[r]) {
428
- let t = y(e) || e.parentNode, n = ae(e) || e.childNodes;
424
+ allowedTags: T
425
+ }), M && e.hasChildNodes() && !Tt(e.firstElementChild) && _(/<[/\w!]/g, e.innerHTML) && _(/<[/\w!]/g, e.textContent) || M && e.namespaceURI === W && r === "style" && Tt(e.firstElementChild) || e.nodeType === Be.progressingInstruction || M && e.nodeType === Be.comment && _(/<[/\w]/g, e.data)) return Z(e), !0;
426
+ if (O[r] || !(A.tagCheck instanceof Function && A.tagCheck(r)) && !T[r]) {
427
+ if (!O[r] && Ot(r) && (D.tagNameCheck instanceof RegExp && _(D.tagNameCheck, r) || D.tagNameCheck instanceof Function && D.tagNameCheck(r))) return !1;
428
+ if (B && !U[r]) {
429
+ let t = v(e) || e.parentNode, n = oe(e) || e.childNodes;
429
430
  if (n && t) {
430
431
  let r = n.length;
431
432
  for (let i = r - 1; i >= 0; --i) {
432
- let r = ne(n[i], !0);
433
- r.__removalCount = (e.__removalCount || 0) + 1, t.insertBefore(r, ie(e));
433
+ let r = re(n[i], !0);
434
+ r.__removalCount = (e.__removalCount || 0) + 1, t.insertBefore(r, ae(e));
434
435
  }
435
436
  }
436
437
  }
437
438
  return Z(e), !0;
438
439
  }
439
- return e instanceof c && !xt(e) || (r === "noscript" || r === "noembed" || r === "noframes") && v(/<\/no(script|embed|frames)/i, e.innerHTML) ? (Z(e), !0) : (P && e.nodeType === D.text && (n = e.textContent, oe([
440
- T,
441
- E,
442
- Ve
440
+ return e instanceof c && !xt(e) || (r === "noscript" || r === "noembed" || r === "noframes") && _(/<\/no(script|embed|frames)/i, e.innerHTML) ? (Z(e), !0) : (j && e.nodeType === Be.text && (n = e.textContent, se([
441
+ Ie,
442
+ Re,
443
+ Ge
443
444
  ], (e) => {
444
- n = g(n, e, " ");
445
- }), e.textContent !== n && (le(t.removed, { element: e.cloneNode() }), e.textContent = n)), $(w.afterSanitizeElements, e, null), !1);
445
+ n = h(n, e, " ");
446
+ }), e.textContent !== n && (ue(t.removed, { element: e.cloneNode() }), e.textContent = n)), $(C.afterSanitizeElements, e, null), !1);
446
447
  }, Dt = function(e, t, r) {
447
- if (M[t] || et && (t === "id" || t === "name") && (r in n || r in gt)) return !1;
448
- if (!(Ze && !M[t] && v(He, t)) && !(Xe && v(Ue, t)) && !(N.attributeCheck instanceof Function && N.attributeCheck(t, e))) {
449
- if (!k[t] || M[t]) {
450
- if (!(Ot(e) && (A.tagNameCheck instanceof RegExp && v(A.tagNameCheck, e) || A.tagNameCheck instanceof Function && A.tagNameCheck(e)) && (A.attributeNameCheck instanceof RegExp && v(A.attributeNameCheck, t) || A.attributeNameCheck instanceof Function && A.attributeNameCheck(t, e)) || t === "is" && A.allowCustomizedBuiltInElements && (A.tagNameCheck instanceof RegExp && v(A.tagNameCheck, r) || A.tagNameCheck instanceof Function && A.tagNameCheck(r)))) return !1;
451
- } else if (!ot[t] && !v(qe, g(r, Ge, "")) && !((t === "src" || t === "xlink:href" || t === "href") && e !== "script" && me(r, "data:") === 0 && it[e]) && !(Qe && !v(We, g(r, Ge, ""))) && r) return !1;
448
+ if (k[t] || z && (t === "id" || t === "name") && (r in n || r in gt)) return !1;
449
+ if (!(et && !k[t] && _(Ke, t)) && !($e && _(w, t)) && !(A.attributeCheck instanceof Function && A.attributeCheck(t, e))) {
450
+ if (!E[t] || k[t]) {
451
+ if (!(Ot(e) && (D.tagNameCheck instanceof RegExp && _(D.tagNameCheck, e) || D.tagNameCheck instanceof Function && D.tagNameCheck(e)) && (D.attributeNameCheck instanceof RegExp && _(D.attributeNameCheck, t) || D.attributeNameCheck instanceof Function && D.attributeNameCheck(t, e)) || t === "is" && D.allowCustomizedBuiltInElements && (D.tagNameCheck instanceof RegExp && _(D.tagNameCheck, r) || D.tagNameCheck instanceof Function && D.tagNameCheck(r)))) return !1;
452
+ } else if (!st[t] && !_(Xe, h(r, Je, "")) && !((t === "src" || t === "xlink:href" || t === "href") && e !== "script" && he(r, "data:") === 0 && at[e]) && !(tt && !_(qe, h(r, Je, ""))) && r) return !1;
452
453
  }
453
454
  return !0;
454
455
  }, Ot = function(e) {
455
- return e !== "annotation-xml" && pe(e, Ke);
456
+ return e !== "annotation-xml" && me(e, Ye);
456
457
  }, kt = function(e) {
457
- $(w.beforeSanitizeAttributes, e, null);
458
+ $(C.beforeSanitizeAttributes, e, null);
458
459
  let { attributes: n } = e;
459
460
  if (!n || wt(e)) return;
460
461
  let r = {
461
462
  attrName: "",
462
463
  attrValue: "",
463
464
  keepAttr: !0,
464
- allowedAttributes: k,
465
+ allowedAttributes: E,
465
466
  forceKeepAttr: void 0
466
467
  }, i = n.length;
467
468
  for (; i--;) {
468
- let { name: a, namespaceURI: o, value: s } = n[i], c = Y(a), l = s, u = a === "value" ? l : he(l);
469
- if (r.attrName = c, r.attrValue = u, r.keepAttr = !0, r.forceKeepAttr = void 0, $(w.uponSanitizeAttribute, e, r), u = r.attrValue, tt && (c === "id" || c === "name") && (Q(a, e), u = "user-content-" + u), F && v(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i, u)) {
469
+ let { name: a, namespaceURI: o, value: s } = n[i], c = Y(a), l = s, u = a === "value" ? l : ge(l);
470
+ if (r.attrName = c, r.attrValue = u, r.keepAttr = !0, r.forceKeepAttr = void 0, $(C.uponSanitizeAttribute, e, r), u = r.attrValue, rt && (c === "id" || c === "name") && (Q(a, e), u = "user-content-" + u), M && _(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i, u)) {
470
471
  Q(a, e);
471
472
  continue;
472
473
  }
473
- if (c === "attributename" && pe(u, "href")) {
474
+ if (c === "attributename" && me(u, "href")) {
474
475
  Q(a, e);
475
476
  continue;
476
477
  }
@@ -479,113 +480,173 @@ function Be() {
479
480
  Q(a, e);
480
481
  continue;
481
482
  }
482
- if (!$e && v(/\/>/i, u)) {
483
+ if (!nt && _(/\/>/i, u)) {
483
484
  Q(a, e);
484
485
  continue;
485
486
  }
486
- P && oe([
487
- T,
488
- E,
489
- Ve
487
+ j && se([
488
+ Ie,
489
+ Re,
490
+ Ge
490
491
  ], (e) => {
491
- u = g(u, e, " ");
492
+ u = h(u, e, " ");
492
493
  });
493
494
  let d = Y(e.nodeName);
494
495
  if (!Dt(d, c, u)) {
495
496
  Q(a, e);
496
497
  continue;
497
498
  }
498
- if (b && typeof f == "object" && typeof f.getAttributeType == "function" && !o) switch (f.getAttributeType(d, c)) {
499
+ if (y && typeof ne == "object" && typeof ne.getAttributeType == "function" && !o) switch (ne.getAttributeType(d, c)) {
499
500
  case "TrustedHTML":
500
- u = b.createHTML(u);
501
+ u = y.createHTML(u);
501
502
  break;
502
503
  case "TrustedScriptURL":
503
- u = b.createScriptURL(u);
504
+ u = y.createScriptURL(u);
504
505
  break;
505
506
  }
506
507
  if (u !== l) try {
507
- o ? e.setAttributeNS(o, a, u) : e.setAttribute(a, u), wt(e) ? Z(e) : ce(t.removed);
508
+ o ? e.setAttributeNS(o, a, u) : e.setAttribute(a, u), wt(e) ? Z(e) : le(t.removed);
508
509
  } catch {
509
510
  Q(a, e);
510
511
  }
511
512
  }
512
- $(w.afterSanitizeAttributes, e, null);
513
+ $(C.afterSanitizeAttributes, e, null);
513
514
  }, At = function(e) {
514
515
  let t = null, n = Ct(e);
515
- for ($(w.beforeSanitizeShadowDOM, e, null); t = n.nextNode();) $(w.uponSanitizeShadowNode, t, null), Et(t), kt(t), t.content instanceof a && At(t.content);
516
- $(w.afterSanitizeShadowDOM, e, null);
516
+ for ($(C.beforeSanitizeShadowDOM, e, null); t = n.nextNode();) $(C.uponSanitizeShadowNode, t, null), Et(t), kt(t), t.content instanceof a && At(t.content);
517
+ $(C.afterSanitizeShadowDOM, e, null);
517
518
  };
518
519
  return t.sanitize = function(e) {
519
520
  let n = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, i = null, o = null, c = null, l = null;
520
- if (lt = !e, lt && (e = "<!-->"), typeof e != "string" && !Tt(e)) if (typeof e.toString == "function") {
521
- if (e = e.toString(), typeof e != "string") throw ge("dirty is not a string, aborting");
522
- } else throw ge("toString is not a function");
521
+ if (dt = !e, dt && (e = "<!-->"), typeof e != "string" && !Tt(e)) if (typeof e.toString == "function") {
522
+ if (e = e.toString(), typeof e != "string") throw _e("dirty is not a string, aborting");
523
+ } else throw _e("toString is not a function");
523
524
  if (!t.isSupported) return e;
524
- if (L || vt(n), t.removed = [], typeof e == "string" && (H = !1), H) {
525
+ if (P || vt(n), t.removed = [], typeof e == "string" && (V = !1), V) {
525
526
  if (e.nodeName) {
526
527
  let t = Y(e.nodeName);
527
- if (!O[t] || j[t]) throw ge("root node is forbidden and cannot be sanitized in-place");
528
+ if (!T[t] || O[t]) throw _e("root node is forbidden and cannot be sanitized in-place");
528
529
  }
529
- } else if (e instanceof s) i = St("<!---->"), o = i.ownerDocument.importNode(e, !0), o.nodeType === D.element && o.nodeName === "BODY" || o.nodeName === "HTML" ? i = o : i.appendChild(o);
530
+ } else if (e instanceof s) i = St("<!---->"), o = i.ownerDocument.importNode(e, !0), o.nodeType === Be.element && o.nodeName === "BODY" || o.nodeName === "HTML" ? i = o : i.appendChild(o);
530
531
  else {
531
- if (!z && !P && !I && e.indexOf("<") === -1) return b && V ? b.createHTML(e) : e;
532
- if (i = St(e), !i) return z ? null : V ? S : "";
532
+ if (!I && !j && !N && e.indexOf("<") === -1) return y && R ? y.createHTML(e) : e;
533
+ if (i = St(e), !i) return I ? null : R ? x : "";
533
534
  }
534
- i && R && Z(i.firstChild);
535
- let u = Ct(H ? e : i);
535
+ i && F && Z(i.firstChild);
536
+ let u = Ct(V ? e : i);
536
537
  for (; c = u.nextNode();) Et(c), kt(c), c.content instanceof a && At(c.content);
537
- if (H) return e;
538
- if (z) {
539
- if (P) {
538
+ if (V) return e;
539
+ if (I) {
540
+ if (j) {
540
541
  i.normalize();
541
542
  let e = i.innerHTML;
542
- oe([
543
- T,
544
- E,
545
- Ve
543
+ se([
544
+ Ie,
545
+ Re,
546
+ Ge
546
547
  ], (t) => {
547
- e = g(e, t, " ");
548
+ e = h(e, t, " ");
548
549
  }), i.innerHTML = e;
549
550
  }
550
- if (B) for (l = je.call(i.ownerDocument); i.firstChild;) l.appendChild(i.firstChild);
551
+ if (L) for (l = Me.call(i.ownerDocument); i.firstChild;) l.appendChild(i.firstChild);
551
552
  else l = i;
552
- return (k.shadowroot || k.shadowrootmode) && (l = Ne.call(r, l, !0)), l;
553
+ return (E.shadowroot || E.shadowrootmode) && (l = Pe.call(r, l, !0)), l;
553
554
  }
554
- let d = I ? i.outerHTML : i.innerHTML;
555
- return I && O["!doctype"] && i.ownerDocument && i.ownerDocument.doctype && i.ownerDocument.doctype.name && v(Fe, i.ownerDocument.doctype.name) && (d = "<!DOCTYPE " + i.ownerDocument.doctype.name + ">\n" + d), P && oe([
556
- T,
557
- E,
558
- Ve
555
+ let d = N ? i.outerHTML : i.innerHTML;
556
+ return N && T["!doctype"] && i.ownerDocument && i.ownerDocument.doctype && i.ownerDocument.doctype.name && _(Le, i.ownerDocument.doctype.name) && (d = "<!DOCTYPE " + i.ownerDocument.doctype.name + ">\n" + d), j && se([
557
+ Ie,
558
+ Re,
559
+ Ge
559
560
  ], (e) => {
560
- d = g(d, e, " ");
561
- }), b && V ? b.createHTML(d) : d;
561
+ d = h(d, e, " ");
562
+ }), y && R ? y.createHTML(d) : d;
562
563
  }, t.setConfig = function() {
563
- vt(arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}), L = !0;
564
+ vt(arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}), P = !0;
564
565
  }, t.clearConfig = function() {
565
- X = null, L = !1;
566
+ X = null, P = !1;
566
567
  }, t.isValidAttribute = function(e, t, n) {
567
568
  return X || vt({}), Dt(Y(e), Y(t), n);
568
569
  }, t.addHook = function(e, t) {
569
- typeof t == "function" && le(w[e], t);
570
+ typeof t == "function" && ue(C[e], t);
570
571
  }, t.removeHook = function(e, t) {
571
572
  if (t !== void 0) {
572
- let n = se(w[e], t);
573
- return n === -1 ? void 0 : ue(w[e], n, 1)[0];
573
+ let n = ce(C[e], t);
574
+ return n === -1 ? void 0 : de(C[e], n, 1)[0];
574
575
  }
575
- return ce(w[e]);
576
+ return le(C[e]);
576
577
  }, t.removeHooks = function(e) {
577
- w[e] = [];
578
+ C[e] = [];
578
579
  }, t.removeAllHooks = function() {
579
- w = ze();
580
+ C = Ue();
580
581
  }, t;
581
582
  }
582
- var Ve = Be();
583
+ var Ge = We(), Ke = ":host{box-sizing:border-box;width:100%;min-height:0;padding-block:var(--luzmo-ai-chat-empty-state-padding-block,var(--ai-chat-empty-state-padding-block));padding-inline:var(--luzmo-ai-chat-empty-state-padding-inline,var(--ai-chat-empty-state-padding-inline));flex:1;justify-content:center;align-items:center;display:flex}.empty-state{justify-content:center;align-items:center;gap:var(--luzmo-ai-chat-empty-state-header-actions-gap,var(--ai-chat-empty-state-header-actions-gap));width:100%;max-width:var(--luzmo-ai-chat-empty-state-max-width,var(--ai-chat-empty-state-max-width));text-align:center;flex-direction:column;display:flex}.header{flex-direction:column;align-items:center;width:100%;display:flex}.actions{align-items:center;gap:var(--luzmo-ai-chat-empty-state-actions-gap,var(--ai-chat-empty-state-actions-gap));flex-direction:column;width:100%;display:flex}.title{font-family:var(--luzmo-font-family);font-size:var(--luzmo-ai-chat-empty-state-title-font-size,var(--ai-chat-empty-state-title-font-size));font-weight:var(--luzmo-ai-chat-empty-state-title-font-weight,var(--ai-chat-empty-state-title-font-weight));line-height:var(--luzmo-ai-chat-empty-state-title-line-height,var(--ai-chat-empty-state-title-line-height));color:var(--luzmo-ai-chat-empty-state-title-color,var(--ai-chat-empty-state-title-color));text-wrap:balance;margin:0}.subtitle{font-family:var(--luzmo-font-family);font-size:var(--luzmo-ai-chat-empty-state-subtitle-font-size,var(--ai-chat-empty-state-subtitle-font-size));font-weight:var(--luzmo-ai-chat-empty-state-subtitle-font-weight,var(--ai-chat-empty-state-subtitle-font-weight));line-height:var(--luzmo-ai-chat-empty-state-subtitle-line-height,var(--ai-chat-empty-state-subtitle-line-height));color:var(--luzmo-ai-chat-empty-state-subtitle-color,var(--ai-chat-empty-state-subtitle-color));margin:0}.suggestions{justify-content:center;align-items:center;gap:var(--luzmo-ai-chat-empty-state-suggestions-gap,var(--ai-chat-empty-state-suggestions-gap));flex-wrap:wrap;width:100%;display:flex}luzmo-suggestion{max-width:100%}:host{--ai-chat-empty-state-header-actions-gap:1.5rem;--ai-chat-empty-state-actions-gap:var(--luzmo-spacing-4);--ai-chat-empty-state-suggestions-gap:var(--luzmo-spacing-3);--ai-chat-empty-state-max-width:22.5rem;--ai-chat-empty-state-padding-block:2rem;--ai-chat-empty-state-padding-inline:var(--luzmo-spacing-5);--ai-chat-empty-state-title-font-size:var(--luzmo-font-size-l);--ai-chat-empty-state-title-font-weight:var(--luzmo-font-weight-strong,600);--ai-chat-empty-state-title-line-height:1.4;--ai-chat-empty-state-title-color:var(--luzmo-font-color);--ai-chat-empty-state-subtitle-font-size:var(--luzmo-font-size-s);--ai-chat-empty-state-subtitle-font-weight:var(--luzmo-font-weight);--ai-chat-empty-state-subtitle-line-height:var(--luzmo-line-height);--ai-chat-empty-state-subtitle-color:var(--luzmo-font-color-dimmed,var(--luzmo-font-color-extra-dimmed))}", w = class extends e {
584
+ constructor(...e) {
585
+ super(...e), this.title = n("What can I help you with?", { desc: "Title for the AI chat empty state" }), this.subtitle = "", this.suggestions = [], this.disabled = !1;
586
+ }
587
+ static {
588
+ this.styles = c(Ke);
589
+ }
590
+ static {
591
+ this.tagName = "luzmo-ai-chat-empty-state";
592
+ }
593
+ _handleSuggestionActivate(e) {
594
+ if (this.disabled) return;
595
+ let t = e.prompt ?? e.label;
596
+ this.dispatchEvent(new CustomEvent("luzmo-suggestion-selected", {
597
+ detail: {
598
+ label: e.label,
599
+ prompt: t,
600
+ selectedDatasets: e.selectedDatasets
601
+ },
602
+ bubbles: !0,
603
+ composed: !0
604
+ }));
605
+ }
606
+ render() {
607
+ let e = this.suggestions.length > 0;
608
+ return o`
609
+ <section class="empty-state" aria-labelledby="ai-chat-empty-state-title">
610
+ <header class="header">
611
+ <h2 id="ai-chat-empty-state-title" class="title">${this.title}</h2>
612
+ </header>
613
+
614
+ ${e ? o`
615
+ <div class="actions">
616
+ ${this.subtitle ? o`<p class="subtitle">${this.subtitle}</p>` : s}
617
+ <div
618
+ class="suggestions"
619
+ role="group"
620
+ aria-label=${n("Prompt suggestions", { desc: "Accessible label for the AI chat empty state suggestion list" })}
621
+ >
622
+ ${this.suggestions.map((e) => o`
623
+ <luzmo-suggestion
624
+ variant="prompt"
625
+ ?disabled=${this.disabled}
626
+ @click=${() => this._handleSuggestionActivate(e)}
627
+ >
628
+ ${e.label}
629
+ </luzmo-suggestion>
630
+ `)}
631
+ </div>
632
+ </div>
633
+ ` : s}
634
+ </section>
635
+ `;
636
+ }
637
+ };
638
+ //#endregion
639
+ //#region src/components/ai-chat/empty-state/index.ts
640
+ t([l({ type: String })], w.prototype, "title", void 0), t([l({ type: String })], w.prototype, "subtitle", void 0), t([l({ type: Array })], w.prototype, "suggestions", void 0), t([l({
641
+ type: Boolean,
642
+ reflect: !0
643
+ })], w.prototype, "disabled", void 0), customElements.get("luzmo-ai-chat-empty-state") || customElements.define("luzmo-ai-chat-empty-state", w);
583
644
  //#endregion
584
645
  //#region src/components/ai-chat/ai-chat-request.ts
585
- function He(e, t) {
646
+ function qe(e, t) {
586
647
  return `${e.replace(/\/+$/, "")}/${t.replace(/^\/+|\/+$/g, "")}/aiprompt`;
587
648
  }
588
- function Ue(e) {
649
+ function Je(e) {
589
650
  return e.type === "placeholder" ? null : {
590
651
  ...e,
591
652
  version: e.version || "",
@@ -594,7 +655,7 @@ function Ue(e) {
594
655
  aichartId: e.aichartId || ""
595
656
  };
596
657
  }
597
- function We(e, t) {
658
+ function Ye(e, t) {
598
659
  return [{
599
660
  type: "text",
600
661
  text: e
@@ -603,7 +664,7 @@ function We(e, t) {
603
664
  id: e
604
665
  }))];
605
666
  }
606
- function Ge(e, t, n) {
667
+ function Xe(e, t, n) {
607
668
  return {
608
669
  agent: e,
609
670
  task: t,
@@ -613,52 +674,52 @@ function Ge(e, t, n) {
613
674
  ...n.localeId ? { locale_id: n.localeId } : {}
614
675
  };
615
676
  }
616
- function Ke(e) {
617
- let t = We(e.prompt, e.datasetIds), n = e.chart ? Ue(e.chart) : null;
677
+ function T(e) {
678
+ let t = Ye(e.prompt, e.datasetIds), n = e.chart ? Je(e.chart) : null;
618
679
  return n && t.push({
619
680
  type: "item",
620
681
  value: n
621
682
  }), {
622
- ...Ge("item", e.task ?? "generate", e),
683
+ ...Xe("item", e.task ?? "generate", e),
623
684
  input: t
624
685
  };
625
686
  }
626
- function qe(e) {
627
- let t = We(e.prompt, e.datasetIds);
687
+ function Ze(e) {
688
+ let t = Ye(e.prompt, e.datasetIds);
628
689
  return e.dashboard && t.push({
629
690
  type: "dashboard",
630
691
  value: e.dashboard,
631
692
  ...e.currentScreenMode ? { current_screen_mode: e.currentScreenMode } : {}
632
693
  }), {
633
- ...Ge("dashboard", "generate", e),
694
+ ...Xe("dashboard", "generate", e),
634
695
  timezone_id: e.timezoneId ?? "UTC",
635
696
  input: t
636
697
  };
637
698
  }
638
- function O(e) {
699
+ function E(e) {
639
700
  return {
640
- ...Ge("analyst", "generate", e),
641
- input: We(e.prompt, e.datasetIds)
701
+ ...Xe("analyst", "generate", e),
702
+ input: Ye(e.prompt, e.datasetIds)
642
703
  };
643
704
  }
644
- function Je(e, t) {
705
+ function Qe(e, t) {
645
706
  switch (e) {
646
- case "dashboard": return qe(t);
647
- case "analyst": return O(t);
648
- default: return Ke(t);
707
+ case "dashboard": return Ze(t);
708
+ case "analyst": return E(t);
709
+ default: return T(t);
649
710
  }
650
711
  }
651
- function k(e, t) {
712
+ function D(e, t) {
652
713
  let { authKey: n, authToken: r, apiVersion: i = "0.1.0" } = t;
653
714
  return {
654
715
  key: n,
655
716
  token: r,
656
717
  action: "create",
657
718
  version: i,
658
- properties: Je(e, t)
719
+ properties: Qe(e, t)
659
720
  };
660
721
  }
661
- function Ye(e, t, n, r = "0.1.0", i = null) {
722
+ function O(e, t, n, r = "0.1.0", i = null) {
662
723
  return {
663
724
  key: t,
664
725
  token: n,
@@ -673,7 +734,7 @@ function Ye(e, t, n, r = "0.1.0", i = null) {
673
734
  }
674
735
  //#endregion
675
736
  //#region src/components/ai-chat/stream/ai-chat-streaming.ts
676
- function A() {
737
+ function k() {
677
738
  return {
678
739
  id: "root",
679
740
  step: "root",
@@ -686,11 +747,11 @@ function A() {
686
747
  }]
687
748
  };
688
749
  }
689
- function j(e) {
750
+ function A(e) {
690
751
  let t = e.progress;
691
752
  return typeof t != "object" || !t ? !1 : "id" in t && "step" in t && "status" in t;
692
753
  }
693
- async function M(e) {
754
+ async function $e(e) {
694
755
  let t = await fetch(e.url, {
695
756
  method: "POST",
696
757
  headers: { "Content-Type": "application/json" },
@@ -708,21 +769,21 @@ async function M(e) {
708
769
  conversationId: t.headers.get("x-conversation-id")
709
770
  };
710
771
  }
711
- function N(e) {
772
+ function et(e) {
712
773
  let t = e.trim();
713
774
  if (!t || t.startsWith(":") || t.startsWith("event:") || t.startsWith("id:")) return null;
714
775
  let n = t;
715
776
  return n.startsWith("data:") && (n = n.slice(5).trimStart()), !n || n === "[DONE]" ? null : JSON.parse(n);
716
777
  }
717
- function Xe(e, t) {
778
+ function tt(e, t) {
718
779
  try {
719
- let n = N(e);
780
+ let n = et(e);
720
781
  n && t(n);
721
782
  } catch {
722
783
  console.error("Failed to parse stream line");
723
784
  }
724
785
  }
725
- async function Ze(e, t) {
786
+ async function nt(e, t) {
726
787
  let n = e.getReader(), r = new TextDecoder(), i = "";
727
788
  try {
728
789
  for (;;) {
@@ -731,18 +792,18 @@ async function Ze(e, t) {
731
792
  i += r.decode(a, { stream: !0 });
732
793
  let o = i.split(/\r?\n/);
733
794
  i = o.pop() ?? "";
734
- for (let e of o) Xe(e, t);
795
+ for (let e of o) tt(e, t);
735
796
  }
736
797
  i += r.decode();
737
798
  let e = i.trim();
738
- e && Xe(e, t);
799
+ e && tt(e, t);
739
800
  } finally {
740
801
  n.releaseLock();
741
802
  }
742
803
  }
743
804
  //#endregion
744
805
  //#region src/components/ai-chat/stream/shared.ts
745
- function Qe(e) {
806
+ function j(e) {
746
807
  if (!e || typeof e != "object") return "";
747
808
  let t = e.assistant_message;
748
809
  if (!t || typeof t != "object") return "";
@@ -752,92 +813,92 @@ function Qe(e) {
752
813
  let n = t.content;
753
814
  return typeof n == "string" ? n : n && typeof n == "object" && typeof n.text == "string" ? n.text : "";
754
815
  }
755
- function $e(e) {
816
+ function M(e) {
756
817
  return typeof e.text_delta == "string" ? e.text_delta : typeof e.chunk == "string" ? e.chunk : typeof e.message == "string" ? e.message : typeof e.summary == "string" ? e.summary : "";
757
818
  }
758
- function P(e) {
759
- return $e(e) || Qe(e.result);
819
+ function N(e) {
820
+ return M(e) || j(e.result);
760
821
  }
761
- function F(e) {
822
+ function P(e) {
762
823
  return !!e.done || e.type === "finish" || e.type === "done" || "question" in e;
763
824
  }
764
- function I(e, t) {
825
+ function F(e, t) {
765
826
  let n = typeof e.conversation_id == "string" && e.conversation_id || typeof e.conversationId == "string" && e.conversationId;
766
827
  n && t.callbacks.onConversationIdChange(n);
767
828
  }
768
- function L(e, t) {
769
- return j(e) ? (t.callbacks.onProgress(e.progress), !0) : !1;
829
+ function I(e, t) {
830
+ return A(e) ? (t.callbacks.onProgress(e.progress), !0) : !1;
770
831
  }
771
- function R(e, t) {
832
+ function L(e, t) {
772
833
  if (!(e.error || e.type === "error" || typeof e.error_text == "string")) return !1;
773
834
  let r = typeof e.error_text == "string" && e.error_text || typeof e.error == "string" && e.error || n("Something went wrong. Please try again.", { desc: "Generic error message shown in ai chat when the API request fails" });
774
835
  return t.aiMessage.message = r, t.aiMessage.isError = !0, t.callbacks.onMessageUpdate(t.aiMessage), t.callbacks.onProgressCollapsed(!0), t.callbacks.dispatchResponseReceived(t.aiMessage, !0), !0;
775
836
  }
776
- function z(e, t) {
837
+ function R(e, t) {
777
838
  t && (e.state.progressCollapsed || (e.state.progressCollapsed = !0, e.callbacks.onProgressCollapsed(!0)), e.aiMessage.message = (e.aiMessage.message || "") + t, e.callbacks.onMessageUpdate(e.aiMessage));
778
839
  }
779
- function B(e, t, n = !1) {
840
+ function z(e, t, n = !1) {
780
841
  t && (e.state.progressCollapsed = !0, e.callbacks.onProgressCollapsed(!0)), (n || t && e.aiMessage.message) && e.callbacks.dispatchResponseReceived(e.aiMessage, t);
781
842
  }
782
- function V(e) {
843
+ function rt(e) {
783
844
  for (let t of e) if (t && typeof t == "object" && t.type === "item") {
784
845
  let e = t.value;
785
846
  if (e && typeof e == "object") return e;
786
847
  }
787
848
  return null;
788
849
  }
789
- function et(e) {
850
+ function B(e) {
790
851
  let t = e.chart ?? e.generatedChart;
791
852
  if (t && typeof t == "object") return t;
792
853
  let n = e.aiMessageAssets ?? e.ai_message_assets;
793
854
  if (Array.isArray(n)) {
794
- let e = V(n);
855
+ let e = rt(n);
795
856
  if (e) return e;
796
857
  }
797
858
  let r = e.result;
798
859
  if (r && typeof r == "object") {
799
860
  let e = r.assistant_message, t = e?.aiMessageAssets ?? e?.ai_message_assets;
800
- if (Array.isArray(t)) return V(t);
861
+ if (Array.isArray(t)) return rt(t);
801
862
  }
802
863
  return null;
803
864
  }
804
865
  //#endregion
805
866
  //#region src/components/ai-chat/stream/analyst-handler.ts
806
- function tt(e, t) {
807
- if (I(e, t), L(e, t) || R(e, t)) return;
808
- let n = P(e);
809
- n && z(t, n), B(t, F(e), !!n);
867
+ function V(e, t) {
868
+ if (F(e, t), I(e, t) || L(e, t)) return;
869
+ let n = N(e);
870
+ n && R(t, n), z(t, P(e), !!n);
810
871
  }
811
872
  //#endregion
812
873
  //#region src/components/ai-chat/stream/dashboard-handler.ts
813
- function nt(e) {
874
+ function H(e) {
814
875
  for (let t of e) if (t && typeof t == "object" && t.type === "dashboard") {
815
876
  let e = t.value;
816
877
  if (e && typeof e == "object" && Array.isArray(e.views)) return e;
817
878
  }
818
879
  return null;
819
880
  }
820
- function H(e) {
881
+ function U(e) {
821
882
  for (let t of e) if (t && typeof t == "object" && t.type === "dashboard") {
822
883
  let e = t.name;
823
884
  if (e && typeof e == "object") return e;
824
885
  }
825
886
  }
826
- function U(e) {
887
+ function it(e) {
827
888
  if (e.views && Array.isArray(e.views)) return e;
828
889
  let t = e.aiMessageAssets ?? e.ai_message_assets;
829
- if (Array.isArray(t)) return nt(t);
890
+ if (Array.isArray(t)) return H(t);
830
891
  let n = e.result;
831
892
  if (n && typeof n == "object") {
832
893
  let e = n.assistant_message, t = e?.aiMessageAssets ?? e?.ai_message_assets;
833
- if (Array.isArray(t)) return nt(t);
894
+ if (Array.isArray(t)) return H(t);
834
895
  }
835
896
  return null;
836
897
  }
837
- function W(...e) {
898
+ function at(...e) {
838
899
  return e.find(Array.isArray);
839
900
  }
840
- function rt(e, t) {
901
+ function ot(e, t) {
841
902
  if (e.asset_type !== "dashboard") return;
842
903
  let n = e.asset_delta ?? e.delta;
843
904
  if (n && typeof n == "object") {
@@ -849,18 +910,18 @@ function rt(e, t) {
849
910
  };
850
911
  }
851
912
  }
852
- function it(e, t, n) {
913
+ function st(e, t, n) {
853
914
  e.callbacks.dispatchDashboardGenerated({
854
915
  dashboard: t,
855
916
  conversationId: e.callbacks.getConversationId(),
856
917
  ...n ? { name: n } : {}
857
918
  });
858
919
  }
859
- function at(e, t) {
860
- if (I(e, t), L(e, t) || R(e, t)) return;
920
+ function ct(e, t) {
921
+ if (F(e, t), I(e, t) || L(e, t)) return;
861
922
  if (e.type === "interrupt") {
862
923
  let n = typeof e.question == "string" && e.question || typeof e.text == "string" && e.text || null;
863
- n && (t.state.interruptQuestion = n, z(t, n));
924
+ n && (t.state.interruptQuestion = n, R(t, n));
864
925
  return;
865
926
  }
866
927
  if (e.type === "asset_start" && e.asset_type === "dashboard") {
@@ -868,23 +929,23 @@ function at(e, t) {
868
929
  return;
869
930
  }
870
931
  if (e.type === "asset_delta") {
871
- rt(e, t);
932
+ ot(e, t);
872
933
  return;
873
934
  }
874
- let n = P(e);
875
- n && z(t, n);
876
- let r = U(e);
935
+ let n = N(e);
936
+ n && R(t, n);
937
+ let r = it(e);
877
938
  if (r) {
878
939
  t.state.dashboardSnapshot = r;
879
- let n = r.aiMessageAssets ?? r.ai_message_assets, i = e.aiMessageAssets ?? e.ai_message_assets, a = e.result?.assistant_message, o = W(n, i, a?.aiMessageAssets ?? a?.ai_message_assets), s = o ? H(o) : void 0;
940
+ let n = r.aiMessageAssets ?? r.ai_message_assets, i = e.aiMessageAssets ?? e.ai_message_assets, a = e.result?.assistant_message, o = at(n, i, a?.aiMessageAssets ?? a?.ai_message_assets), s = o ? U(o) : void 0;
880
941
  s && (t.state.dashboardName = s);
881
942
  }
882
- let i = F(e);
883
- i && t.state.dashboardSnapshot && it(t, t.state.dashboardSnapshot, t.state.dashboardName), B(t, i, !!n);
943
+ let i = P(e);
944
+ i && t.state.dashboardSnapshot && st(t, t.state.dashboardSnapshot, t.state.dashboardName), z(t, i, !!n);
884
945
  }
885
946
  //#endregion
886
947
  //#region src/components/ai-chat/stream/item-handler.ts
887
- function ot(e, t) {
948
+ function lt(e, t) {
888
949
  let n = e.asset_type;
889
950
  if (n && n !== "item") return;
890
951
  let r = e.asset_delta ?? e.delta;
@@ -893,7 +954,7 @@ function ot(e, t) {
893
954
  ...r
894
955
  });
895
956
  }
896
- function st(e, t, n) {
957
+ function ut(e, t, n) {
897
958
  n.aiMessage.hasChart = !0, typeof t.messageId == "string" && (n.aiMessage.apiMessageId = t.messageId);
898
959
  let r = {
899
960
  ...t,
@@ -901,38 +962,38 @@ function st(e, t, n) {
901
962
  conversationId: n.callbacks.getConversationId()
902
963
  };
903
964
  n.callbacks.dispatchChartGenerated(r);
904
- let i = $e(t);
905
- i ? z(n, i) : n.callbacks.onMessageUpdate(n.aiMessage);
965
+ let i = M(t);
966
+ i ? R(n, i) : n.callbacks.onMessageUpdate(n.aiMessage);
906
967
  }
907
- function ct(e, t) {
908
- if (I(e, t), L(e, t) || R(e, t)) return;
968
+ function W(e, t) {
969
+ if (F(e, t), I(e, t) || L(e, t)) return;
909
970
  if (e.type === "asset_start" && e.asset_type === "item") {
910
971
  t.state.itemSnapshot = null;
911
972
  return;
912
973
  }
913
974
  if (e.type === "asset_delta") {
914
- ot(e, t);
975
+ lt(e, t);
915
976
  return;
916
977
  }
917
- let n = P(e);
918
- n && z(t, n);
919
- let r = F(e), i = et(e) ?? (r ? t.state.itemSnapshot : null);
978
+ let n = N(e);
979
+ n && R(t, n);
980
+ let r = P(e), i = B(e) ?? (r ? t.state.itemSnapshot : null);
920
981
  if (i) {
921
- st(i, e, t), r && B(t, !0, !!n);
982
+ ut(i, e, t), r && z(t, !0, !!n);
922
983
  return;
923
984
  }
924
- B(t, r, !!n);
985
+ z(t, r, !!n);
925
986
  }
926
987
  //#endregion
927
988
  //#region src/components/ai-chat/stream/registry.ts
928
989
  function G(e) {
929
990
  switch (e) {
930
- case "dashboard": return at;
931
- case "analyst": return tt;
932
- default: return ct;
991
+ case "dashboard": return ct;
992
+ case "analyst": return V;
993
+ default: return W;
933
994
  }
934
995
  }
935
- function K() {
996
+ function dt() {
936
997
  return {
937
998
  progressCollapsed: !1,
938
999
  dashboardSnapshot: null,
@@ -943,10 +1004,10 @@ function K() {
943
1004
  }
944
1005
  //#endregion
945
1006
  //#region src/components/ai-chat/session/ai-chat-session.ts
946
- function q() {
1007
+ function ft() {
947
1008
  return `msg-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`;
948
1009
  }
949
- var lt = class {
1010
+ var pt = class {
950
1011
  constructor(e, t = {}) {
951
1012
  this._uiBridgeCallbacks = {}, this._subscribers = /* @__PURE__ */ new Set(), this._state = {
952
1013
  messages: [],
@@ -1019,10 +1080,10 @@ var lt = class {
1019
1080
  return !this._config.requireDataset || this._state.selectedDatasets.length > 0;
1020
1081
  }
1021
1082
  getAiPromptUrl() {
1022
- return He(this._config.apiUrl ?? "https://api.luzmo.com", this._config.apiVersion ?? "0.1.0");
1083
+ return qe(this._config.apiUrl ?? "https://api.luzmo.com", this._config.apiVersion ?? "0.1.0");
1023
1084
  }
1024
1085
  buildRequestBody(e, t) {
1025
- return k(this._config.agent, {
1086
+ return D(this._config.agent, {
1026
1087
  prompt: e,
1027
1088
  datasetIds: t,
1028
1089
  authKey: this._config.authKey,
@@ -1054,13 +1115,13 @@ var lt = class {
1054
1115
  if (!this.isDatasetRequirementMet()) return;
1055
1116
  this.abortInflight();
1056
1117
  let n = {
1057
- id: e.aiMessageId ?? q(),
1118
+ id: e.aiMessageId ?? ft(),
1058
1119
  type: "ai",
1059
1120
  message: ""
1060
1121
  }, r = [...this._state.messages];
1061
1122
  if (!e.skipUserMessage) {
1062
1123
  let t = {
1063
- id: q(),
1124
+ id: ft(),
1064
1125
  type: "user",
1065
1126
  message: e.prompt
1066
1127
  };
@@ -1069,7 +1130,7 @@ var lt = class {
1069
1130
  r = [...r, n], this._inflightMessage = n, this._receivedProgress = !1, this._patchState({
1070
1131
  messages: r,
1071
1132
  isGenerating: !0,
1072
- progress: A(),
1133
+ progress: k(),
1073
1134
  progressCollapsed: !1,
1074
1135
  inflightMessage: n
1075
1136
  });
@@ -1088,15 +1149,15 @@ var lt = class {
1088
1149
  let c = G(this._config.agent), l = {
1089
1150
  aiMessage: n,
1090
1151
  callbacks: this._createStreamCallbacks(),
1091
- state: K()
1092
- }, u = this._config.fetchStreaming ?? M, d = !1;
1152
+ state: dt()
1153
+ }, u = this._config.fetchStreaming ?? $e, d = !1;
1093
1154
  try {
1094
1155
  let { body: e, conversationId: t } = await u({
1095
1156
  url: this.getAiPromptUrl(),
1096
1157
  body: o,
1097
1158
  signal: s.signal
1098
1159
  });
1099
- t && this._setConversationId(t), await Ze(e, (e) => c(e, l)), d = !0;
1160
+ t && this._setConversationId(t), await nt(e, (e) => c(e, l)), d = !0;
1100
1161
  } catch (e) {
1101
1162
  e.name !== "AbortError" && (this._handleSubmitError(e, n), d = !0);
1102
1163
  } finally {
@@ -1105,7 +1166,7 @@ var lt = class {
1105
1166
  }
1106
1167
  async restore(e) {
1107
1168
  if (this._config.agent !== "item") return {};
1108
- let t = Ye(e.restoreToMessageId, this._config.authKey, this._config.authToken, this._config.apiVersion, this._state.conversationId);
1169
+ let t = O(e.restoreToMessageId, this._config.authKey, this._config.authToken, this._config.apiVersion, this._state.conversationId);
1109
1170
  if (this._patchState({
1110
1171
  isGenerating: !0,
1111
1172
  progress: null,
@@ -1135,7 +1196,7 @@ var lt = class {
1135
1196
  let e = await n.json().catch(() => null);
1136
1197
  throw Error(e?.message || `API request failed with status ${n.status}`);
1137
1198
  }
1138
- let r = await n.json().catch(() => null), i = r?.generatedChart ?? (r ? et(r) : null), a = {
1199
+ let r = await n.json().catch(() => null), i = r?.generatedChart ?? (r ? B(r) : null), a = {
1139
1200
  ...typeof r?.message == "string" ? { message: r.message } : {},
1140
1201
  ...i ? { chart: {
1141
1202
  ...r,
@@ -1151,7 +1212,7 @@ var lt = class {
1151
1212
  }
1152
1213
  }
1153
1214
  buildRestoreRequest(e) {
1154
- return Ye(e, this._config.authKey, this._config.authToken, this._config.apiVersion, this._state.conversationId);
1215
+ return O(e, this._config.authKey, this._config.authToken, this._config.apiVersion, this._state.conversationId);
1155
1216
  }
1156
1217
  abort() {
1157
1218
  this.abortInflight(), this._patchState({
@@ -1250,12 +1311,12 @@ var lt = class {
1250
1311
  }) : !1;
1251
1312
  }
1252
1313
  };
1253
- function ut(e, t) {
1254
- return new lt(e, t);
1314
+ function K(e, t) {
1315
+ return new pt(e, t);
1255
1316
  }
1256
1317
  //#endregion
1257
1318
  //#region src/components/ai-chat/session/ai-chat-session-controller.ts
1258
- var dt = class {
1319
+ var q = class {
1259
1320
  constructor(e) {
1260
1321
  this.options = e, this._session = null, this._ownsSession = !1, this._seededFromProps = !1, this._unsubscribe = null;
1261
1322
  }
@@ -1306,7 +1367,7 @@ var dt = class {
1306
1367
  _createSessionIfMissing() {
1307
1368
  if (this._session) return;
1308
1369
  let e = this.options.getSeed();
1309
- this._session = ut({
1370
+ this._session = K({
1310
1371
  ...this.options.getConfig(),
1311
1372
  messages: e.messages.length > 0 ? [...e.messages] : void 0,
1312
1373
  selectedDatasets: e.selectedDatasets.length > 0 ? [...e.selectedDatasets] : void 0
@@ -1328,9 +1389,9 @@ var dt = class {
1328
1389
  _unwire() {
1329
1390
  this._unsubscribe?.(), this._unsubscribe = null;
1330
1391
  }
1331
- }, ft = ":host{box-sizing:border-box;flex-direction:column;width:100%;height:100%;display:flex}:host .chat-container{background:var(--luzmo-ai-chat-background,var(--ai-chat-background));border-radius:var(--luzmo-ai-chat-border-radius,var(--ai-chat-border-radius));width:100%;height:100%;min-height:0;padding:var(--luzmo-ai-chat-padding,var(--ai-chat-padding));gap:var(--luzmo-ai-chat-gap,var(--ai-chat-gap));border:var(--luzmo-ai-chat-border,var(--ai-chat-border));box-shadow:var(--luzmo-ai-chat-box-shadow,var(--ai-chat-box-shadow));box-sizing:border-box;flex-direction:column;flex:1;display:flex;overflow:hidden}:host .chat-messages-container{gap:var(--luzmo-ai-chat-gap,var(--ai-chat-gap));flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}:host .chat-messages-container::-webkit-scrollbar{width:var(--luzmo-ai-chat-scrollbar-width,var(--ai-chat-scrollbar-width))}:host .chat-messages-container::-webkit-scrollbar-track{background:var(--luzmo-ai-chat-scrollbar-track-background,var(--ai-chat-scrollbar-track-background));border-radius:var(--luzmo-ai-chat-scrollbar-track-border-radius,var(--ai-chat-scrollbar-track-border-radius))}:host .chat-messages-container::-webkit-scrollbar-thumb{background:var(--luzmo-ai-chat-scrollbar-thumb-background,var(--ai-chat-scrollbar-thumb-background));border-radius:var(--luzmo-ai-chat-scrollbar-thumb-border-radius,var(--ai-chat-scrollbar-thumb-border-radius))}:host .chat-messages-container::-webkit-scrollbar-thumb:hover{background:var(--luzmo-ai-chat-scrollbar-thumb-hover-background,var(--ai-chat-scrollbar-thumb-hover-background))}:host .chat-messages-container{scrollbar-width:var(--luzmo-scrollbar-width,thin);scrollbar-color:var(--luzmo-ai-chat-scrollbar-thumb-background,var(--ai-chat-scrollbar-thumb-background)) var(--luzmo-ai-chat-scrollbar-track-background,var(--ai-chat-scrollbar-track-background))}:host luzmo-chat-message{--luzmo-primary:rgba(var(--luzmo-primary-rgb), .08);--chat-message-primary-text-color:var(--luzmo-font-color);--chat-message-primary-border-color:transparent}:host luzmo-chat-message.error{color:var(--luzmo-ai-chat-error-message-color,var(--ai-chat-error-message-color))}:host .assistant-message-wrapper{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}:host .assistant-message-wrapper luzmo-chat-message{width:fit-content;display:contents}:host .assistant-context-menu-trigger{width:var(--luzmo-ai-chat-context-menu-trigger-size,var(--ai-chat-context-menu-trigger-size));height:var(--luzmo-ai-chat-context-menu-trigger-size,var(--ai-chat-context-menu-trigger-size));border:.0625rem solid var(--luzmo-ai-chat-context-menu-trigger-border-color,var(--ai-chat-context-menu-trigger-border-color));border-radius:var(--luzmo-ai-chat-context-menu-trigger-border-radius,var(--ai-chat-context-menu-trigger-border-radius));background:var(--luzmo-ai-chat-context-menu-trigger-background,var(--ai-chat-context-menu-trigger-background));color:var(--luzmo-ai-chat-context-menu-trigger-color,var(--ai-chat-context-menu-trigger-color));cursor:pointer;justify-content:center;align-items:center;padding:0;font-size:.875rem;line-height:1;transition:all .15s;display:inline-flex}:host .assistant-context-menu-trigger:hover{background:var(--luzmo-ai-chat-context-menu-trigger-hover-background,var(--ai-chat-context-menu-trigger-hover-background));border-color:var(--luzmo-ai-chat-context-menu-trigger-hover-border-color,var(--ai-chat-context-menu-trigger-hover-border-color));color:var(--luzmo-ai-chat-context-menu-trigger-hover-color,var(--ai-chat-context-menu-trigger-hover-color))}:host .assistant-context-menu-trigger:disabled{cursor:not-allowed;opacity:.6}:host .assistant-context-menu-trigger:disabled:hover{background:var(--luzmo-ai-chat-context-menu-trigger-background,var(--ai-chat-context-menu-trigger-background));border-color:var(--luzmo-ai-chat-context-menu-trigger-border-color,var(--ai-chat-context-menu-trigger-border-color));color:var(--luzmo-ai-chat-context-menu-trigger-color,var(--ai-chat-context-menu-trigger-color))}:host .assistant-context-menu-item{width:100%;color:var(--luzmo-font-color);text-align:start;cursor:pointer;font-family:var(--luzmo-ai-chat-context-menu-item-font-family,var(--ai-chat-context-menu-item-font-family));background:0 0;border:0;padding:.5rem .75rem}:host .assistant-context-menu-item:hover{background:var(--luzmo-ai-chat-context-menu-item-hover-background,var(--ai-chat-context-menu-item-hover-background))}:host .assistant-context-menu-item:disabled{opacity:.4;cursor:not-allowed}:host .assistant-context-menu-item:disabled:hover{background:0 0}:host luzmo-ai-interaction-textarea{flex-grow:0;flex-shrink:0}:host luzmo-progress-steps{padding:0 .25rem}:host .loading-message{color:var(--luzmo-font-color);align-items:center;gap:.5rem;display:flex}:host .loading-message svg{color:var(--luzmo-ai-chat-loading-message-color,var(--ai-chat-loading-message-color));font-size:var(--luzmo-ai-chat-loading-message-icon-font-size,var(--ai-chat-loading-message-icon-font-size,1rem));justify-content:center;align-items:center;display:flex}:host .loading-message svg.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){:host .assistant-context-menu-trigger{transition:none}:host .loading-message svg.spin{animation:none}}:host{--ai-chat-background:var(--luzmo-background-color);--ai-chat-border-radius:0;--ai-chat-padding:0;--ai-chat-gap:1rem;--ai-chat-border:none;--ai-chat-box-shadow:none;--ai-chat-loading-message-color:var(--luzmo-primary);--ai-chat-loading-message-icon-font-size:1rem;--ai-chat-error-message-color:var(--luzmo-danger,#dc3545);--ai-chat-scrollbar-width:var(--luzmo-scrollbar-size);--ai-chat-scrollbar-track-background:var(--luzmo-scrollbar-track-background);--ai-chat-scrollbar-track-border-radius:var(--luzmo-scrollbar-track-border-radius);--ai-chat-scrollbar-thumb-background:var(--luzmo-scrollbar-thumb-background);--ai-chat-scrollbar-thumb-border-radius:var(--luzmo-scrollbar-thumb-border-radius);--ai-chat-scrollbar-thumb-hover-background:var(--luzmo-scrollbar-thumb-hover-background);--ai-chat-context-menu-trigger-size:1.5rem;--ai-chat-context-menu-trigger-border-color:var(--luzmo-border-color);--ai-chat-context-menu-trigger-border-radius:.375rem;--ai-chat-context-menu-trigger-background:var(--luzmo-background-color,transparent);--ai-chat-context-menu-trigger-color:var(--luzmo-font-color,#5a5a5a);--ai-chat-context-menu-trigger-hover-background:var(--luzmo-background-color-hover,#4434ff14);--ai-chat-context-menu-trigger-hover-border-color:var(--luzmo-border-color-hover,var(--luzmo-border-color));--ai-chat-context-menu-trigger-hover-color:var(--luzmo-font-color,#5a5a5a);--ai-chat-context-menu-item-hover-background:var(--luzmo-background-color-hover,#4434ff14);--ai-chat-context-menu-item-font-family:var(--luzmo-font-family)}", J = class extends e {
1392
+ }, mt = ":host{box-sizing:border-box;flex-direction:column;width:100%;height:100%;display:flex}:host .chat-container{background:var(--luzmo-ai-chat-background,var(--ai-chat-background));border-radius:var(--luzmo-ai-chat-border-radius,var(--ai-chat-border-radius));width:100%;height:100%;min-height:0;padding:var(--luzmo-ai-chat-padding,var(--ai-chat-padding));gap:var(--luzmo-ai-chat-gap,var(--ai-chat-gap));border:var(--luzmo-ai-chat-border,var(--ai-chat-border));box-shadow:var(--luzmo-ai-chat-box-shadow,var(--ai-chat-box-shadow));box-sizing:border-box;flex-direction:column;flex:1;display:flex;overflow:hidden}:host .chat-messages-container{gap:var(--luzmo-ai-chat-gap,var(--ai-chat-gap));flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}:host .chat-messages-container luzmo-ai-chat-empty-state{flex:1;min-height:0}:host .chat-messages-container::-webkit-scrollbar{width:var(--luzmo-ai-chat-scrollbar-width,var(--ai-chat-scrollbar-width))}:host .chat-messages-container::-webkit-scrollbar-track{background:var(--luzmo-ai-chat-scrollbar-track-background,var(--ai-chat-scrollbar-track-background));border-radius:var(--luzmo-ai-chat-scrollbar-track-border-radius,var(--ai-chat-scrollbar-track-border-radius))}:host .chat-messages-container::-webkit-scrollbar-thumb{background:var(--luzmo-ai-chat-scrollbar-thumb-background,var(--ai-chat-scrollbar-thumb-background));border-radius:var(--luzmo-ai-chat-scrollbar-thumb-border-radius,var(--ai-chat-scrollbar-thumb-border-radius))}:host .chat-messages-container::-webkit-scrollbar-thumb:hover{background:var(--luzmo-ai-chat-scrollbar-thumb-hover-background,var(--ai-chat-scrollbar-thumb-hover-background))}:host .chat-messages-container{scrollbar-width:var(--luzmo-scrollbar-width,thin);scrollbar-color:var(--luzmo-ai-chat-scrollbar-thumb-background,var(--ai-chat-scrollbar-thumb-background)) var(--luzmo-ai-chat-scrollbar-track-background,var(--ai-chat-scrollbar-track-background))}:host luzmo-chat-message{--luzmo-primary:rgba(var(--luzmo-primary-rgb), .08);--chat-message-primary-text-color:var(--luzmo-font-color);--chat-message-primary-border-color:transparent}:host luzmo-chat-message.error{color:var(--luzmo-ai-chat-error-message-color,var(--ai-chat-error-message-color))}:host .assistant-message-wrapper{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}:host .assistant-message-wrapper luzmo-chat-message{width:fit-content;display:contents}:host .assistant-context-menu-trigger{width:var(--luzmo-ai-chat-context-menu-trigger-size,var(--ai-chat-context-menu-trigger-size));height:var(--luzmo-ai-chat-context-menu-trigger-size,var(--ai-chat-context-menu-trigger-size));border:.0625rem solid var(--luzmo-ai-chat-context-menu-trigger-border-color,var(--ai-chat-context-menu-trigger-border-color));border-radius:var(--luzmo-ai-chat-context-menu-trigger-border-radius,var(--ai-chat-context-menu-trigger-border-radius));background:var(--luzmo-ai-chat-context-menu-trigger-background,var(--ai-chat-context-menu-trigger-background));color:var(--luzmo-ai-chat-context-menu-trigger-color,var(--ai-chat-context-menu-trigger-color));cursor:pointer;justify-content:center;align-items:center;padding:0;font-size:.875rem;line-height:1;transition:all .15s;display:inline-flex}:host .assistant-context-menu-trigger:hover{background:var(--luzmo-ai-chat-context-menu-trigger-hover-background,var(--ai-chat-context-menu-trigger-hover-background));border-color:var(--luzmo-ai-chat-context-menu-trigger-hover-border-color,var(--ai-chat-context-menu-trigger-hover-border-color));color:var(--luzmo-ai-chat-context-menu-trigger-hover-color,var(--ai-chat-context-menu-trigger-hover-color))}:host .assistant-context-menu-trigger:disabled{cursor:not-allowed;opacity:.6}:host .assistant-context-menu-trigger:disabled:hover{background:var(--luzmo-ai-chat-context-menu-trigger-background,var(--ai-chat-context-menu-trigger-background));border-color:var(--luzmo-ai-chat-context-menu-trigger-border-color,var(--ai-chat-context-menu-trigger-border-color));color:var(--luzmo-ai-chat-context-menu-trigger-color,var(--ai-chat-context-menu-trigger-color))}:host .assistant-context-menu-item{width:100%;color:var(--luzmo-font-color);text-align:start;cursor:pointer;font-family:var(--luzmo-ai-chat-context-menu-item-font-family,var(--ai-chat-context-menu-item-font-family));background:0 0;border:0;padding:.5rem .75rem}:host .assistant-context-menu-item:hover{background:var(--luzmo-ai-chat-context-menu-item-hover-background,var(--ai-chat-context-menu-item-hover-background))}:host .assistant-context-menu-item:disabled{opacity:.4;cursor:not-allowed}:host .assistant-context-menu-item:disabled:hover{background:0 0}:host luzmo-ai-interaction-textarea{flex-grow:0;flex-shrink:0}:host luzmo-progress-steps{padding:0 .25rem}:host .loading-message{color:var(--luzmo-font-color);align-items:center;gap:.5rem;display:flex}:host .loading-message svg{color:var(--luzmo-ai-chat-loading-message-color,var(--ai-chat-loading-message-color));font-size:var(--luzmo-ai-chat-loading-message-icon-font-size,var(--ai-chat-loading-message-icon-font-size,1rem));justify-content:center;align-items:center;display:flex}:host .loading-message svg.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){:host .assistant-context-menu-trigger{transition:none}:host .loading-message svg.spin{animation:none}}:host{--ai-chat-background:var(--luzmo-background-color);--ai-chat-border-radius:0;--ai-chat-padding:0;--ai-chat-gap:1rem;--ai-chat-border:none;--ai-chat-box-shadow:none;--ai-chat-loading-message-color:var(--luzmo-primary);--ai-chat-loading-message-icon-font-size:1rem;--ai-chat-error-message-color:var(--luzmo-danger,#dc3545);--ai-chat-scrollbar-width:var(--luzmo-scrollbar-size);--ai-chat-scrollbar-track-background:var(--luzmo-scrollbar-track-background);--ai-chat-scrollbar-track-border-radius:var(--luzmo-scrollbar-track-border-radius);--ai-chat-scrollbar-thumb-background:var(--luzmo-scrollbar-thumb-background);--ai-chat-scrollbar-thumb-border-radius:var(--luzmo-scrollbar-thumb-border-radius);--ai-chat-scrollbar-thumb-hover-background:var(--luzmo-scrollbar-thumb-hover-background);--ai-chat-context-menu-trigger-size:1.5rem;--ai-chat-context-menu-trigger-border-color:var(--luzmo-border-color);--ai-chat-context-menu-trigger-border-radius:.375rem;--ai-chat-context-menu-trigger-background:var(--luzmo-background-color,transparent);--ai-chat-context-menu-trigger-color:var(--luzmo-font-color,#5a5a5a);--ai-chat-context-menu-trigger-hover-background:var(--luzmo-background-color-hover,#4434ff14);--ai-chat-context-menu-trigger-hover-border-color:var(--luzmo-border-color-hover,var(--luzmo-border-color));--ai-chat-context-menu-trigger-hover-color:var(--luzmo-font-color,#5a5a5a);--ai-chat-context-menu-item-hover-background:var(--luzmo-background-color-hover,#4434ff14);--ai-chat-context-menu-item-font-family:var(--luzmo-font-family)}", J = class extends e {
1332
1393
  constructor(...e) {
1333
- super(...e), this.messages = [], this.selectedDatasets = [], this.placeholder = "Describe your change", this.disabled = !1, this.showAssistantContextMenu = !1, this.authKey = "", this.authToken = "", this.apiUrl = "https://api.luzmo.com", this.appServer = "https://app.luzmo.com", this.flagOpendata = !1, this.hideDatasetButton = !1, this.hideDatasetIcons = !1, this.disableDatasetModification = !1, this.hideSelectedDatasets = !1, this.disableColumnMentions = !1, this.requireDataset = !1, this.agent = "item", this.task = "generate", this.modelPreference = "performance", this.chatSession = null, this.conversationId = null, this.chart = null, this.dashboard = null, this.timezoneId = "UTC", this.apiVersion = "0.1.0", this.stream = !0, this.loadingMessage = null, this.initialPrompt = null, this._textareaValue = "", this._lastProcessedInitialPrompt = null, this._session = new dt({
1394
+ super(...e), this.messages = [], this.selectedDatasets = [], this.placeholder = "Describe your change", this.disabled = !1, this.showAssistantContextMenu = !1, this.authKey = "", this.authToken = "", this.apiUrl = "https://api.luzmo.com", this.appServer = "https://app.luzmo.com", this.flagOpendata = !1, this.hideDatasetButton = !1, this.hideDatasetIcons = !1, this.disableDatasetModification = !1, this.hideSelectedDatasets = !1, this.disableColumnMentions = !1, this.requireDataset = !1, this.agent = "item", this.task = "generate", this.modelPreference = "performance", this.chatSession = null, this.conversationId = null, this.chart = null, this.dashboard = null, this.timezoneId = "UTC", this.apiVersion = "0.1.0", this.stream = !0, this.loadingMessage = null, this.initialPrompt = null, this.emptyStateTitle = "", this.emptyStateSubtitle = "", this.emptyStateSuggestions = [], this._textareaValue = "", this._lastProcessedInitialPrompt = null, this._session = new q({
1334
1395
  getConfig: () => this._buildSessionConfig(),
1335
1396
  getSeed: () => ({
1336
1397
  messages: this.messages,
@@ -1344,7 +1405,7 @@ var dt = class {
1344
1405
  });
1345
1406
  }
1346
1407
  static {
1347
- this.styles = c(ft);
1408
+ this.styles = c(mt);
1348
1409
  }
1349
1410
  static {
1350
1411
  this.tagName = "luzmo-ai-chat";
@@ -1464,6 +1525,10 @@ var dt = class {
1464
1525
  async _handlePromptSubmitted(e) {
1465
1526
  await this._submitViaSession(e.detail.prompt);
1466
1527
  }
1528
+ async _handleEmptyStateSuggestionSelected(e) {
1529
+ let { prompt: t, selectedDatasets: n } = e.detail, r = this._session.requireSession();
1530
+ n?.length && r.setSelectedDatasets(n), await this._submitViaSession(t);
1531
+ }
1467
1532
  async _processInitialPrompt() {
1468
1533
  !this.initialPrompt || this.initialPrompt === this._lastProcessedInitialPrompt || this._session.requireSession().isDatasetRequirementMet() && (this._lastProcessedInitialPrompt = this.initialPrompt, await this._submitViaSession(this.initialPrompt, { skipUserMessage: !0 }));
1469
1534
  }
@@ -1495,7 +1560,7 @@ var dt = class {
1495
1560
  this.initialPrompt && this.initialPrompt !== this._lastProcessedInitialPrompt ? this._processInitialPrompt() : this.initialPrompt || (this._lastProcessedInitialPrompt = null);
1496
1561
  }
1497
1562
  _sanitizeMessage(e) {
1498
- return Ve.sanitize(e, {
1563
+ return Ge.sanitize(e, {
1499
1564
  ALLOWED_TAGS: [
1500
1565
  "p",
1501
1566
  "br",
@@ -1659,18 +1724,17 @@ var dt = class {
1659
1724
  </luzmo-chat-message>
1660
1725
  `;
1661
1726
  }
1662
- _renderPlaceholderMessage() {
1663
- return this._getRenderState().messages.length > 0 ? o`
1664
-
1665
- ` : o`
1666
- <luzmo-chat-message
1667
- avatar-placement="bottom"
1668
- position="left"
1669
- quiet
1670
- size="s"
1671
- >
1672
- ${this.agent === "dashboard" ? n("Describe how you want to edit this dashboard…", { desc: "Label for ai chat dashboard placeholder message" }) : n("Describe how you want to edit this item…", { desc: "Label for ai chat item placeholder message" })}
1673
- </luzmo-chat-message>
1727
+ _renderEmptyState() {
1728
+ if (this._getRenderState().messages.length > 0) return s;
1729
+ let e = n("What can I help you with?", { desc: "Title for the AI chat empty state" }), t = this.emptyStateSuggestions.length > 0;
1730
+ return o`
1731
+ <luzmo-ai-chat-empty-state
1732
+ .title=${this.emptyStateTitle || e}
1733
+ .subtitle=${t ? this.emptyStateSubtitle : ""}
1734
+ .suggestions=${this.emptyStateSuggestions}
1735
+ ?disabled=${this.disabled || this._getRenderState().isGenerating}
1736
+ @luzmo-suggestion-selected=${this._handleEmptyStateSuggestionSelected}
1737
+ ></luzmo-ai-chat-empty-state>
1674
1738
  `;
1675
1739
  }
1676
1740
  render() {
@@ -1678,7 +1742,7 @@ var dt = class {
1678
1742
  return o`
1679
1743
  <div class="chat-container" role="region" aria-label=${n("AI Chat", { desc: "Accessible label for AI chat region" })}>
1680
1744
  <div class="chat-messages-container" role="log" aria-live="polite">
1681
- ${this._renderPlaceholderMessage()}
1745
+ ${this._renderEmptyState()}
1682
1746
  ${this._renderMessages()}
1683
1747
  ${this._renderProgress()}
1684
1748
  ${this._renderStreamingResponse()}
@@ -1783,6 +1847,15 @@ t([l({ type: Array })], J.prototype, "messages", void 0), t([l({
1783
1847
  })], J.prototype, "loadingMessage", void 0), t([l({
1784
1848
  type: String,
1785
1849
  attribute: "initial-prompt"
1786
- })], J.prototype, "initialPrompt", void 0), t([u()], J.prototype, "_textareaValue", void 0), customElements.get("luzmo-ai-chat") || customElements.define("luzmo-ai-chat", J);
1850
+ })], J.prototype, "initialPrompt", void 0), t([l({
1851
+ type: String,
1852
+ attribute: "empty-state-title"
1853
+ })], J.prototype, "emptyStateTitle", void 0), t([l({
1854
+ type: String,
1855
+ attribute: "empty-state-subtitle"
1856
+ })], J.prototype, "emptyStateSubtitle", void 0), t([l({
1857
+ type: Array,
1858
+ attribute: !1
1859
+ })], J.prototype, "emptyStateSuggestions", void 0), t([u()], J.prototype, "_textareaValue", void 0), customElements.get("luzmo-ai-chat") || customElements.define("luzmo-ai-chat", J);
1787
1860
  //#endregion
1788
- export { qe as _, K as a, He as b, A as c, N as d, Ze as f, O as g, k as h, ut as i, M as l, Je as m, dt as n, G as o, Ye as p, lt as r, et as s, J as t, j as u, Ke as v, Ue as y };
1861
+ export { Ze as _, dt as a, qe as b, k as c, et as d, nt as f, E as g, D as h, K as i, $e as l, Qe as m, q as n, G as o, O as p, pt as r, B as s, J as t, A as u, T as v, w as x, Je as y };