@luzmo/analytics-components-kit 1.0.1-alpha.85 → 1.0.1-alpha.86

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 (251) hide show
  1. package/angular/README.md +1 -0
  2. package/angular/components/ai-interaction-textarea.component.ts +2 -0
  3. package/angular/components/dataset-icon.component.ts +21 -0
  4. package/angular/components/dataset-selector-row.component.ts +2 -0
  5. package/angular/esm/components/ai-interaction-textarea.component.d.ts +2 -1
  6. package/angular/esm/components/ai-interaction-textarea.component.js +7 -2
  7. package/angular/esm/components/dataset-icon.component.d.ts +9 -0
  8. package/angular/esm/components/dataset-icon.component.js +36 -0
  9. package/angular/esm/components/dataset-selector-row.component.d.ts +2 -1
  10. package/angular/esm/components/dataset-selector-row.component.js +7 -2
  11. package/angular/esm/index.d.ts +3 -1
  12. package/angular/esm/index.js +3 -0
  13. package/angular/esm/types.d.ts +14 -0
  14. package/angular/index.ts +3 -0
  15. package/angular/types.ts +13 -0
  16. package/components/ai-chat-messages-container/index.cjs +1 -1
  17. package/components/ai-chat-messages-container/index.js +2 -2
  18. package/components/ai-interaction-textarea/ai-interaction-textarea.d.ts +7 -1
  19. package/components/ai-interaction-textarea/index.cjs +32 -28
  20. package/components/ai-interaction-textarea/index.js +62 -49
  21. package/components/area-chart-options.config-C7sMAHco.cjs +20 -0
  22. package/components/{area-chart-options.config-u8itidsi.js → area-chart-options.config-_J0sG4NF.js} +26 -14
  23. package/components/{bar-chart-options.config-DIirbAJ0.js → bar-chart-options.config-D1mb5TDl.js} +35 -21
  24. package/components/bar-chart-options.config-DcxEkOT5.cjs +20 -0
  25. package/components/box-plot-options.config-SrrbDEYW.cjs +20 -0
  26. package/components/{box-plot-options.config-BWROiguA.js → box-plot-options.config-xu_i6ms7.js} +88 -52
  27. package/components/{bubble-chart-options.config-4QD8VPhU.js → bubble-chart-options.config-BacgXkJ_.js} +18 -9
  28. package/components/bubble-chart-options.config-Ihn6eVQI.cjs +20 -0
  29. package/components/{bullet-chart-options.config-3bH7uekx.js → bullet-chart-options.config-CDPpX1yc.js} +1 -1
  30. package/components/{bullet-chart-options.config-tWb6Fio-.cjs → bullet-chart-options.config-DfS4Bwds.cjs} +1 -1
  31. package/components/calculate-data-item-icon-DZDqb3xu.js +139 -0
  32. package/components/{calculate-data-item-icon-CX4VW9Km.cjs → calculate-data-item-icon-DjW1_RI1.cjs} +1 -1
  33. package/components/{choropleth-map-options.config-CMxx3ORp.js → choropleth-map-options.config-B_W9-rhe.js} +84 -63
  34. package/components/choropleth-map-options.config-ZW8yoZH2.cjs +20 -0
  35. package/components/{circular-gauge-options.config-DhIKn44k.js → circular-gauge-options.config-DAIjz4Rl.js} +36 -23
  36. package/components/circular-gauge-options.config-msZ4mfpN.cjs +20 -0
  37. package/components/color-B6LaL8qz.cjs +20 -0
  38. package/components/{color-B7m0j8lX.js → color-DuJ4-73S.js} +950 -941
  39. package/components/{color-range-utils-BSfqtB3A.js → color-range-utils-Bvo9sm5A.js} +32 -31
  40. package/components/color-range-utils-C5yXW7ZC.cjs +20 -0
  41. package/components/{column-chart-options.config-D5-yR7iq.js → column-chart-options.config-B5SjBVdy.js} +37 -27
  42. package/components/column-chart-options.config-BjDvA7i9.cjs +20 -0
  43. package/components/{conditional-number-options.config-DPYsdML5.js → conditional-number-options.config-BCEpSK9J.js} +40 -24
  44. package/components/conditional-number-options.config-DgzUo0xi.cjs +20 -0
  45. package/components/dataset-icon/dataset-icon.d.ts +45 -0
  46. package/components/dataset-icon/index.cjs +60 -0
  47. package/components/dataset-icon/index.d.ts +7 -0
  48. package/components/dataset-icon/index.js +167 -0
  49. package/components/dataset-selector-list/dataset-selector-list.d.ts +1 -0
  50. package/components/dataset-selector-list/index.cjs +10 -8
  51. package/components/dataset-selector-list/index.js +68 -68
  52. package/components/dataset-selector-row/dataset-selector-row.d.ts +7 -0
  53. package/components/dataset-selector-row/index.cjs +21 -18
  54. package/components/dataset-selector-row/index.js +63 -57
  55. package/components/{date-comparison-filter-options.config-QaoWaFUn.cjs → date-comparison-filter-options.config-DAVncmi0.cjs} +1 -1
  56. package/components/{date-comparison-filter-options.config-CSwGyuBg.js → date-comparison-filter-options.config-JA_yYpJa.js} +6 -3
  57. package/components/{date-filter-options.config-n-zhWaYa.cjs → date-filter-options.config-CWPMtA18.cjs} +1 -1
  58. package/components/{date-filter-options.config-BTVyHRkp.js → date-filter-options.config-DBRxlTWy.js} +6 -3
  59. package/components/display-settings/index.cjs +1 -1
  60. package/components/display-settings/index.js +1 -1
  61. package/components/display-settings-binning/index.cjs +5 -5
  62. package/components/display-settings-binning/index.js +30 -29
  63. package/components/display-settings-datetime/index.cjs +29 -29
  64. package/components/display-settings-datetime/index.js +120 -112
  65. package/components/display-settings-grand-totals/index.cjs +4 -4
  66. package/components/display-settings-grand-totals/index.js +24 -23
  67. package/components/display-settings-numeric/index.cjs +48 -48
  68. package/components/display-settings-numeric/index.js +211 -194
  69. package/components/display-settings-period-over-period/index.cjs +16 -16
  70. package/components/display-settings-period-over-period/index.js +97 -91
  71. package/components/{donut-chart-options.config-3ZqX8Cbb.js → donut-chart-options.config-BulUEiaH.js} +37 -21
  72. package/components/donut-chart-options.config-tNpqBZfR.cjs +20 -0
  73. package/components/draggable-data-item/index.cjs +8 -8
  74. package/components/draggable-data-item/index.js +45 -44
  75. package/components/draggable-data-item-level/index.cjs +11 -11
  76. package/components/draggable-data-item-level/index.js +92 -89
  77. package/components/{dropdown-filter-options.config-CGJTtgAX.js → dropdown-filter-options.config-D9dvPypF.js} +10 -7
  78. package/components/{dropdown-filter-options.config-DJvfCTk7.cjs → dropdown-filter-options.config-DS-MORmq.cjs} +1 -1
  79. package/components/droppable-slot/index.cjs +20 -20
  80. package/components/droppable-slot/index.js +181 -167
  81. package/components/edit-item/index.cjs +9 -9
  82. package/components/edit-item/index.js +119 -116
  83. package/components/edit-option/index.cjs +1 -1
  84. package/components/edit-option/index.js +1 -1
  85. package/components/edit-option-action-button-group/index.cjs +8 -8
  86. package/components/edit-option-action-button-group/index.js +53 -52
  87. package/components/{edit-option-base-Bh29-Cak.js → edit-option-base-DIc7iC-b.js} +1 -1
  88. package/components/{edit-option-base-tFr8Qg2B.cjs → edit-option-base-VhTih9T1.cjs} +1 -1
  89. package/components/edit-option-color-palette-picker/index.cjs +1 -1
  90. package/components/edit-option-color-palette-picker/index.js +1 -1
  91. package/components/edit-option-color-picker/index.cjs +1 -1
  92. package/components/edit-option-color-picker/index.js +1 -1
  93. package/components/edit-option-color-range/index.cjs +19 -19
  94. package/components/edit-option-color-range/index.js +117 -106
  95. package/components/edit-option-multi-language-field/index.cjs +3 -3
  96. package/components/edit-option-multi-language-field/index.js +27 -26
  97. package/components/edit-option-number-field/index.cjs +1 -1
  98. package/components/edit-option-number-field/index.js +1 -1
  99. package/components/edit-option-picker/index.cjs +5 -5
  100. package/components/edit-option-picker/index.js +7 -7
  101. package/components/edit-option-position-picker/index.cjs +4 -4
  102. package/components/edit-option-position-picker/index.js +25 -21
  103. package/components/edit-option-positions-number-field/index.cjs +9 -9
  104. package/components/edit-option-positions-number-field/index.js +81 -76
  105. package/components/edit-option-radio-button-group/index.cjs +6 -6
  106. package/components/edit-option-radio-button-group/index.js +22 -21
  107. package/components/edit-option-slider/index.cjs +1 -1
  108. package/components/edit-option-slider/index.js +1 -1
  109. package/components/edit-option-switch/index.cjs +1 -1
  110. package/components/edit-option-switch/index.js +1 -1
  111. package/components/edit-option-text-field/index.cjs +2 -2
  112. package/components/edit-option-text-field/index.js +23 -22
  113. package/components/en-BKBhKBXY.cjs +20 -0
  114. package/components/en-BOTjhwEc.js +1488 -0
  115. package/components/{en-GB-CbNfyZMo.js → en-GB-CEHEs8F2.js} +1 -1
  116. package/components/{en-GB-CXVKFWyH.cjs → en-GB-DG6uS3sM.cjs} +1 -1
  117. package/components/{evolution-number-options.config-Bc9eKYnn.cjs → evolution-number-options.config-BgIZY4gQ.cjs} +1 -1
  118. package/components/{evolution-number-options.config-BIPO_4n3.js → evolution-number-options.config-DzkfeoIN.js} +14 -11
  119. package/components/{extrapolate-color-C0n1UDs-.cjs → extrapolate-color-0j_AeYkz.cjs} +1 -1
  120. package/components/{extrapolate-color-v1PimdQr.js → extrapolate-color-CC9CURf6.js} +1 -1
  121. package/components/filter-data-item-picker/index.cjs +7 -7
  122. package/components/filter-data-item-picker/index.js +86 -85
  123. package/components/filter-expression-picker/index.cjs +1 -1
  124. package/components/filter-expression-picker/index.js +1 -1
  125. package/components/filter-item/index.cjs +6 -6
  126. package/components/filter-item/index.js +119 -109
  127. package/components/filter-value-picker/index.cjs +2 -2
  128. package/components/filter-value-picker/index.js +36 -34
  129. package/components/filter-value-picker-datetime/index.cjs +8 -8
  130. package/components/filter-value-picker-datetime/index.js +71 -56
  131. package/components/filter-value-picker-hierarchy/index.cjs +12 -12
  132. package/components/filter-value-picker-hierarchy/index.js +124 -113
  133. package/components/filter-value-picker-numeric/index.cjs +8 -8
  134. package/components/filter-value-picker-numeric/index.js +110 -101
  135. package/components/focusable-B3E_hQmm.cjs +20 -0
  136. package/components/{focusable-BS2pbY7w.js → focusable-DCIFkpiW.js} +26 -24
  137. package/components/{funnel-chart-options.config-CrJy2U7_.js → funnel-chart-options.config-C_VjTOvD.js} +20 -5
  138. package/components/funnel-chart-options.config-D7H7gFcx.cjs +20 -0
  139. package/components/{get-css-variable-CuDaWSjr.cjs → get-css-variable-DLiZYZEi.cjs} +2 -2
  140. package/components/{get-css-variable-DEf4GhTH.js → get-css-variable-YlLiVgo8.js} +4 -4
  141. package/components/grid/index.cjs +46 -46
  142. package/components/grid/index.js +1873 -2612
  143. package/components/{heat-map-options.config-CmL87j1j.js → heat-map-options.config-BnLWe8jS.js} +41 -35
  144. package/components/heat-map-options.config-DVH-Bb5-.cjs +20 -0
  145. package/components/heat-table-options.config-B12JEYnp.cjs +20 -0
  146. package/components/{heat-table-options.config-BrCYAgYD.js → heat-table-options.config-CUsDdgUr.js} +88 -60
  147. package/components/helpers-DXQwEH1P.cjs +20 -0
  148. package/components/helpers-v1bPALRP.js +91 -0
  149. package/components/hexbin-map-options.config-DZERRhM8.cjs +20 -0
  150. package/components/{hexbin-map-options.config-BguV1w8q.js → hexbin-map-options.config-F-7uCqxb.js} +38 -20
  151. package/components/index-BPN3bG9X.js +1733 -0
  152. package/components/{index-BNAmjOkm.cjs → index-BPNsFiyq.cjs} +4 -4
  153. package/components/index-CQ9ck-BO.cjs +249 -0
  154. package/components/index-CXn67vdn.cjs +121 -0
  155. package/components/{index-haa7WNrl.js → index-CdIUfo-L.js} +481 -453
  156. package/components/{index-3WsfvkZF.js → index-Do7O9azB.js} +123 -112
  157. package/components/{index-BDFBUGBc.js → index-PMDgRSzR.js} +104 -94
  158. package/components/index-cfj52IbK.cjs +20 -0
  159. package/components/index.cjs +1 -1
  160. package/components/index.js +90 -88
  161. package/components/item-options-configs.cjs +1 -1
  162. package/components/item-options-configs.js +37 -37
  163. package/components/{line-chart-options.config-BhirTGqD.js → line-chart-options.config-DB3IsXXr.js} +28 -13
  164. package/components/line-chart-options.config-DSugoe0t.cjs +20 -0
  165. package/components/{localize-CcDpq940.js → localize-BX7q0S0M.js} +10 -10
  166. package/components/{localize-C4zNlrwK.cjs → localize-r7ALOUy_.cjs} +1 -1
  167. package/components/{marker-map-options.config-Bx17jmiq.js → marker-map-options.config-DPJ955tt.js} +1 -1
  168. package/components/{marker-map-options.config-CvhCylSC.cjs → marker-map-options.config-_FYZzRwA.cjs} +1 -1
  169. package/components/pivot-table-options.config-BiJXKSFR.cjs +20 -0
  170. package/components/{pivot-table-options.config-CFc7y0IT.js → pivot-table-options.config-DNK_AIG7.js} +24 -15
  171. package/components/pyramid-chart-options.config-C4zbFS26.cjs +20 -0
  172. package/components/{pyramid-chart-options.config-2Waxb11l.js → pyramid-chart-options.config-CcVMatYx.js} +43 -29
  173. package/components/{radar-chart-options.config-CPN5fOl8.js → radar-chart-options.config-CUZn_3Fd.js} +23 -11
  174. package/components/radar-chart-options.config-EqQu6PTh.cjs +20 -0
  175. package/components/{regular-table-options.config-CFKCJQK1.js → regular-table-options.config-BoLZsBry.js} +23 -17
  176. package/components/{regular-table-options.config-YRuoijIk.cjs → regular-table-options.config-DTx3RTnS.cjs} +1 -1
  177. package/components/{route-map-options.config-CyolTJfK.js → route-map-options.config-CN86T7c0.js} +109 -87
  178. package/components/route-map-options.config-D7NJePTu.cjs +20 -0
  179. package/components/{sankey-diagram-options.config-D7OSvSqm.cjs → sankey-diagram-options.config-RFB83YLZ.cjs} +1 -1
  180. package/components/{sankey-diagram-options.config-Ldjk84ro.js → sankey-diagram-options.config-tVLKy_Zn.js} +10 -7
  181. package/components/scatter-plot-options.config-CFfGJXsV.cjs +20 -0
  182. package/components/{scatter-plot-options.config-CfxEfkQ1.js → scatter-plot-options.config-Corlzno1.js} +86 -56
  183. package/components/{search-filter-options.config-Oqco9BKj.cjs → search-filter-options.config-BCaDlYqZ.cjs} +1 -1
  184. package/components/{search-filter-options.config-C0syQmP4.js → search-filter-options.config-BE3JhR-F.js} +6 -3
  185. package/components/{set-locale-nv7fWEtl.js → set-locale-B-Tz2sdI.js} +8 -1
  186. package/components/{slicer-filter-options.config-DmOe3440.js → slicer-filter-options.config-3JZZcw5C.js} +18 -9
  187. package/components/slicer-filter-options.config-DNI-XevE.cjs +20 -0
  188. package/components/{slider-filter-options.config-B1M8RcDs.js → slider-filter-options.config-DH4SS8wH.js} +1 -1
  189. package/components/{slider-filter-options.config-k45I-t6G.cjs → slider-filter-options.config-_8Z2zKmU.cjs} +1 -1
  190. package/components/slot-contents-picker/index.cjs +33 -33
  191. package/components/slot-contents-picker/index.js +205 -194
  192. package/components/slot-menu/index.cjs +12 -12
  193. package/components/slot-menu/index.js +184 -171
  194. package/components/slot-menu-list/index.cjs +3 -3
  195. package/components/slot-menu-list/index.js +103 -97
  196. package/components/speedometer-chart-options.config-BX9LTQBH.cjs +20 -0
  197. package/components/{speedometer-chart-options.config-CzOmuEF8.js → speedometer-chart-options.config-SL581yOa.js} +53 -31
  198. package/components/{spike-map-options.config-Cbt1YUw6.js → spike-map-options.config-C5KewecZ.js} +122 -91
  199. package/components/spike-map-options.config-DoBFXPmN.cjs +20 -0
  200. package/components/{sunburst-chart-options.config-Yrxc2i57.cjs → sunburst-chart-options.config-AbNjWS6t.cjs} +1 -1
  201. package/components/{sunburst-chart-options.config-_dyLQxPJ.js → sunburst-chart-options.config-CNauGQJv.js} +20 -9
  202. package/components/{symbol-map-options.config-BORL1NSU.js → symbol-map-options.config-DdDA4aa7.js} +20 -11
  203. package/components/symbol-map-options.config-m-lwLTtu.cjs +20 -0
  204. package/components/treemap-chart-options.config-C0Q9aQ1Z.cjs +20 -0
  205. package/components/{treemap-chart-options.config-B9i9qIm_.js → treemap-chart-options.config-D5AJaF_u.js} +37 -20
  206. package/components/utils.cjs +1 -1
  207. package/components/utils.js +65 -64
  208. package/components/{video-options.config-B0asgYt8.cjs → video-options.config-CGsDTwHc.cjs} +1 -1
  209. package/components/{video-options.config-UX-9MDfS.js → video-options.config-Dk36zJ1B.js} +10 -7
  210. package/components/{wordcloud-chart-options.config-BKtJT8Va.cjs → wordcloud-chart-options.config-vGfCW8kE.cjs} +1 -1
  211. package/components/{wordcloud-chart-options.config-BoB_KuhA.js → wordcloud-chart-options.config-w2NUIWVA.js} +7 -4
  212. package/custom-elements.json +154 -20
  213. package/index.d.ts +1 -0
  214. package/package.json +6 -1
  215. package/types.d.ts +14 -0
  216. package/components/area-chart-options.config-Bl8bhhOo.cjs +0 -20
  217. package/components/bar-chart-options.config-CePAqM83.cjs +0 -20
  218. package/components/box-plot-options.config-BVNrV2eD.cjs +0 -20
  219. package/components/bubble-chart-options.config-BDgOe3GQ.cjs +0 -20
  220. package/components/calculate-data-item-icon-C8CbsMQf.js +0 -139
  221. package/components/choropleth-map-options.config-CWJACFd0.cjs +0 -20
  222. package/components/circular-gauge-options.config-BMxgq3zH.cjs +0 -20
  223. package/components/color-Czp4Im5q.cjs +0 -20
  224. package/components/color-range-utils-DYYR-iwx.cjs +0 -20
  225. package/components/column-chart-options.config-BV9R3ssH.cjs +0 -20
  226. package/components/conditional-number-options.config-Co099Qfm.cjs +0 -20
  227. package/components/donut-chart-options.config-BQyPgnC9.cjs +0 -20
  228. package/components/en--a5SfjnM.cjs +0 -20
  229. package/components/en-CtCctD2c.js +0 -1483
  230. package/components/focusable-QLh-LlNt.cjs +0 -20
  231. package/components/funnel-chart-options.config-DrP4AFgk.cjs +0 -20
  232. package/components/heat-map-options.config-CIHnPdYE.cjs +0 -20
  233. package/components/heat-table-options.config-DTlZRc_i.cjs +0 -20
  234. package/components/helpers-9I0oLoUB.cjs +0 -20
  235. package/components/helpers-bR8Ibjqh.js +0 -79
  236. package/components/hexbin-map-options.config-CKnn3VAB.cjs +0 -20
  237. package/components/index-BGb_wRRW.js +0 -1766
  238. package/components/index-BUal0r_D.cjs +0 -121
  239. package/components/index-D1Y5TRsH.cjs +0 -20
  240. package/components/index-DvkzMbLt.cjs +0 -249
  241. package/components/line-chart-options.config-Cqwou5u6.cjs +0 -20
  242. package/components/pivot-table-options.config-uZDAertf.cjs +0 -20
  243. package/components/pyramid-chart-options.config-DoGfEvzU.cjs +0 -20
  244. package/components/radar-chart-options.config-CtNUMN1l.cjs +0 -20
  245. package/components/route-map-options.config-CVTk5RVL.cjs +0 -20
  246. package/components/scatter-plot-options.config-5gN7pMTm.cjs +0 -20
  247. package/components/slicer-filter-options.config-CrusP6a0.cjs +0 -20
  248. package/components/speedometer-chart-options.config-B4ceg_qI.cjs +0 -20
  249. package/components/spike-map-options.config-BkkDqb4g.cjs +0 -20
  250. package/components/symbol-map-options.config-NpBKm64d.cjs +0 -20
  251. package/components/treemap-chart-options.config-x4J54WSw.cjs +0 -20
package/angular/README.md CHANGED
@@ -26,6 +26,7 @@ bootstrapApplication(AiChatMessageAssistantComponent);
26
26
  - `AiChatMessageUserComponent` → <luzmo-ai-chat-message-user>
27
27
  - `AiChatMessagesContainerComponent` → <luzmo-ai-chat-messages-container>
28
28
  - `AiInteractionTextareaComponent` → <luzmo-ai-interaction-textarea>
29
+ - `DatasetIconComponent` → <luzmo-dataset-icon>
29
30
  - `DatasetSelectorListComponent` → <luzmo-dataset-selector-list>
30
31
  - `DatasetSelectorRowComponent` → <luzmo-dataset-selector-row>
31
32
  - `DisplaySettingsComponent` → <luzmo-display-settings>
@@ -13,6 +13,7 @@ import type { Dataset } from '../types';
13
13
  [attr.api-url]="apiUrl"
14
14
  [attr.app-server]="appServer"
15
15
  [attr.flag-opendata]="flagOpendata"
16
+ [attr.disabled]="disabled"
16
17
  (prompt-submitted)="promptSubmitted.emit($event)">
17
18
  <ng-content></ng-content>
18
19
  </luzmo-ai-interaction-textarea>`
@@ -25,5 +26,6 @@ export class AiInteractionTextareaComponent {
25
26
  @Input() apiUrl?: string;
26
27
  @Input() appServer?: string;
27
28
  @Input() flagOpendata?: boolean;
29
+ @Input() disabled?: boolean;
28
30
  @Output() promptSubmitted = new EventEmitter<CustomEvent>();
29
31
  }
@@ -0,0 +1,21 @@
1
+ import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';
2
+ import type { DatasetIcon } from '../types';
3
+
4
+ @Component({
5
+ selector: 'luzmo-dataset-icon',
6
+ standalone: true,
7
+ changeDetection: ChangeDetectionStrategy.OnPush,
8
+ template: `<luzmo-dataset-icon
9
+ [attr.dataset]="dataset"
10
+ [attr.size]="size"
11
+ [attr.app-url]="appUrl"
12
+ >
13
+ <ng-content></ng-content>
14
+ </luzmo-dataset-icon>`
15
+ })
16
+ export class DatasetIconComponent {
17
+ @Input() dataset?: DatasetIcon;
18
+ @Input() size?: '16px' | '24px' | '32px' | '48px' | '64px';
19
+ @Input() appUrl?: string;
20
+
21
+ }
@@ -13,6 +13,7 @@ import type { Dataset } from '../types';
13
13
  [attr.api-url]="apiUrl"
14
14
  [attr.app-server]="appServer"
15
15
  [attr.flag-opendata]="flagOpendata"
16
+ [attr.disabled]="disabled"
16
17
  (dataset-selected)="datasetSelected.emit($event)"
17
18
  (dataset-removed)="datasetRemoved.emit($event)">
18
19
  <ng-content></ng-content>
@@ -26,6 +27,7 @@ export class DatasetSelectorRowComponent {
26
27
  @Input() apiUrl?: string;
27
28
  @Input() appServer?: string;
28
29
  @Input() flagOpendata?: boolean;
30
+ @Input() disabled?: boolean;
29
31
  @Output() datasetSelected = new EventEmitter<CustomEvent>();
30
32
  @Output() datasetRemoved = new EventEmitter<CustomEvent>();
31
33
  }
@@ -9,7 +9,8 @@ export declare class AiInteractionTextareaComponent {
9
9
  apiUrl?: string;
10
10
  appServer?: string;
11
11
  flagOpendata?: boolean;
12
+ disabled?: boolean;
12
13
  promptSubmitted: EventEmitter<CustomEvent<any>>;
13
14
  static ɵfac: i0.ɵɵFactoryDeclaration<AiInteractionTextareaComponent, never>;
14
- static ɵcmp: i0.ɵɵComponentDeclaration<AiInteractionTextareaComponent, "luzmo-ai-interaction-textarea", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "selectedDatasets": { "alias": "selectedDatasets"; "required": false; }; "authKey": { "alias": "authKey"; "required": false; }; "authToken": { "alias": "authToken"; "required": false; }; "apiUrl": { "alias": "apiUrl"; "required": false; }; "appServer": { "alias": "appServer"; "required": false; }; "flagOpendata": { "alias": "flagOpendata"; "required": false; }; }, { "promptSubmitted": "promptSubmitted"; }, never, ["*"], true, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<AiInteractionTextareaComponent, "luzmo-ai-interaction-textarea", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "selectedDatasets": { "alias": "selectedDatasets"; "required": false; }; "authKey": { "alias": "authKey"; "required": false; }; "authToken": { "alias": "authToken"; "required": false; }; "apiUrl": { "alias": "apiUrl"; "required": false; }; "appServer": { "alias": "appServer"; "required": false; }; "flagOpendata": { "alias": "flagOpendata"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "promptSubmitted": "promptSubmitted"; }, never, ["*"], true, never>;
15
16
  }
@@ -8,9 +8,10 @@ export class AiInteractionTextareaComponent {
8
8
  apiUrl;
9
9
  appServer;
10
10
  flagOpendata;
11
+ disabled;
11
12
  promptSubmitted = new EventEmitter();
12
13
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: AiInteractionTextareaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: AiInteractionTextareaComponent, isStandalone: true, selector: "luzmo-ai-interaction-textarea", inputs: { placeholder: "placeholder", selectedDatasets: "selectedDatasets", authKey: "authKey", authToken: "authToken", apiUrl: "apiUrl", appServer: "appServer", flagOpendata: "flagOpendata" }, outputs: { promptSubmitted: "promptSubmitted" }, ngImport: i0, template: `<luzmo-ai-interaction-textarea
14
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: AiInteractionTextareaComponent, isStandalone: true, selector: "luzmo-ai-interaction-textarea", inputs: { placeholder: "placeholder", selectedDatasets: "selectedDatasets", authKey: "authKey", authToken: "authToken", apiUrl: "apiUrl", appServer: "appServer", flagOpendata: "flagOpendata", disabled: "disabled" }, outputs: { promptSubmitted: "promptSubmitted" }, ngImport: i0, template: `<luzmo-ai-interaction-textarea
14
15
  [attr.placeholder]="placeholder"
15
16
  [attr.selectedDatasets]="selectedDatasets"
16
17
  [attr.auth-key]="authKey"
@@ -18,9 +19,10 @@ export class AiInteractionTextareaComponent {
18
19
  [attr.api-url]="apiUrl"
19
20
  [attr.app-server]="appServer"
20
21
  [attr.flag-opendata]="flagOpendata"
22
+ [attr.disabled]="disabled"
21
23
  (prompt-submitted)="promptSubmitted.emit($event)">
22
24
  <ng-content></ng-content>
23
- </luzmo-ai-interaction-textarea>`, isInline: true, dependencies: [{ kind: "component", type: AiInteractionTextareaComponent, selector: "luzmo-ai-interaction-textarea", inputs: ["placeholder", "selectedDatasets", "authKey", "authToken", "apiUrl", "appServer", "flagOpendata"], outputs: ["promptSubmitted"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
25
+ </luzmo-ai-interaction-textarea>`, isInline: true, dependencies: [{ kind: "component", type: AiInteractionTextareaComponent, selector: "luzmo-ai-interaction-textarea", inputs: ["placeholder", "selectedDatasets", "authKey", "authToken", "apiUrl", "appServer", "flagOpendata", "disabled"], outputs: ["promptSubmitted"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
24
26
  }
25
27
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: AiInteractionTextareaComponent, decorators: [{
26
28
  type: Component,
@@ -36,6 +38,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImpor
36
38
  [attr.api-url]="apiUrl"
37
39
  [attr.app-server]="appServer"
38
40
  [attr.flag-opendata]="flagOpendata"
41
+ [attr.disabled]="disabled"
39
42
  (prompt-submitted)="promptSubmitted.emit($event)">
40
43
  <ng-content></ng-content>
41
44
  </luzmo-ai-interaction-textarea>`
@@ -54,6 +57,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImpor
54
57
  type: Input
55
58
  }], flagOpendata: [{
56
59
  type: Input
60
+ }], disabled: [{
61
+ type: Input
57
62
  }], promptSubmitted: [{
58
63
  type: Output
59
64
  }] } });
@@ -0,0 +1,9 @@
1
+ import type { DatasetIcon } from '../types';
2
+ import * as i0 from "@angular/core";
3
+ export declare class DatasetIconComponent {
4
+ dataset?: DatasetIcon;
5
+ size?: '16px' | '24px' | '32px' | '48px' | '64px';
6
+ appUrl?: string;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<DatasetIconComponent, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<DatasetIconComponent, "luzmo-dataset-icon", never, { "dataset": { "alias": "dataset"; "required": false; }; "size": { "alias": "size"; "required": false; }; "appUrl": { "alias": "appUrl"; "required": false; }; }, {}, never, ["*"], true, never>;
9
+ }
@@ -0,0 +1,36 @@
1
+ import { Component, Input, ChangeDetectionStrategy } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class DatasetIconComponent {
4
+ dataset;
5
+ size;
6
+ appUrl;
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: DatasetIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: DatasetIconComponent, isStandalone: true, selector: "luzmo-dataset-icon", inputs: { dataset: "dataset", size: "size", appUrl: "appUrl" }, ngImport: i0, template: `<luzmo-dataset-icon
9
+ [attr.dataset]="dataset"
10
+ [attr.size]="size"
11
+ [attr.app-url]="appUrl"
12
+ >
13
+ <ng-content></ng-content>
14
+ </luzmo-dataset-icon>`, isInline: true, dependencies: [{ kind: "component", type: DatasetIconComponent, selector: "luzmo-dataset-icon", inputs: ["dataset", "size", "appUrl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: DatasetIconComponent, decorators: [{
17
+ type: Component,
18
+ args: [{
19
+ selector: 'luzmo-dataset-icon',
20
+ standalone: true,
21
+ changeDetection: ChangeDetectionStrategy.OnPush,
22
+ template: `<luzmo-dataset-icon
23
+ [attr.dataset]="dataset"
24
+ [attr.size]="size"
25
+ [attr.app-url]="appUrl"
26
+ >
27
+ <ng-content></ng-content>
28
+ </luzmo-dataset-icon>`
29
+ }]
30
+ }], propDecorators: { dataset: [{
31
+ type: Input
32
+ }], size: [{
33
+ type: Input
34
+ }], appUrl: [{
35
+ type: Input
36
+ }] } });
@@ -9,8 +9,9 @@ export declare class DatasetSelectorRowComponent {
9
9
  apiUrl?: string;
10
10
  appServer?: string;
11
11
  flagOpendata?: boolean;
12
+ disabled?: boolean;
12
13
  datasetSelected: EventEmitter<CustomEvent<any>>;
13
14
  datasetRemoved: EventEmitter<CustomEvent<any>>;
14
15
  static ɵfac: i0.ɵɵFactoryDeclaration<DatasetSelectorRowComponent, never>;
15
- static ɵcmp: i0.ɵɵComponentDeclaration<DatasetSelectorRowComponent, "luzmo-dataset-selector-row", never, { "selectedDatasets": { "alias": "selectedDatasets"; "required": false; }; "buttonLabel": { "alias": "buttonLabel"; "required": false; }; "authKey": { "alias": "authKey"; "required": false; }; "authToken": { "alias": "authToken"; "required": false; }; "apiUrl": { "alias": "apiUrl"; "required": false; }; "appServer": { "alias": "appServer"; "required": false; }; "flagOpendata": { "alias": "flagOpendata"; "required": false; }; }, { "datasetSelected": "datasetSelected"; "datasetRemoved": "datasetRemoved"; }, never, ["*"], true, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<DatasetSelectorRowComponent, "luzmo-dataset-selector-row", never, { "selectedDatasets": { "alias": "selectedDatasets"; "required": false; }; "buttonLabel": { "alias": "buttonLabel"; "required": false; }; "authKey": { "alias": "authKey"; "required": false; }; "authToken": { "alias": "authToken"; "required": false; }; "apiUrl": { "alias": "apiUrl"; "required": false; }; "appServer": { "alias": "appServer"; "required": false; }; "flagOpendata": { "alias": "flagOpendata"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "datasetSelected": "datasetSelected"; "datasetRemoved": "datasetRemoved"; }, never, ["*"], true, never>;
16
17
  }
@@ -8,10 +8,11 @@ export class DatasetSelectorRowComponent {
8
8
  apiUrl;
9
9
  appServer;
10
10
  flagOpendata;
11
+ disabled;
11
12
  datasetSelected = new EventEmitter();
12
13
  datasetRemoved = new EventEmitter();
13
14
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: DatasetSelectorRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: DatasetSelectorRowComponent, isStandalone: true, selector: "luzmo-dataset-selector-row", inputs: { selectedDatasets: "selectedDatasets", buttonLabel: "buttonLabel", authKey: "authKey", authToken: "authToken", apiUrl: "apiUrl", appServer: "appServer", flagOpendata: "flagOpendata" }, outputs: { datasetSelected: "datasetSelected", datasetRemoved: "datasetRemoved" }, ngImport: i0, template: `<luzmo-dataset-selector-row
15
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: DatasetSelectorRowComponent, isStandalone: true, selector: "luzmo-dataset-selector-row", inputs: { selectedDatasets: "selectedDatasets", buttonLabel: "buttonLabel", authKey: "authKey", authToken: "authToken", apiUrl: "apiUrl", appServer: "appServer", flagOpendata: "flagOpendata", disabled: "disabled" }, outputs: { datasetSelected: "datasetSelected", datasetRemoved: "datasetRemoved" }, ngImport: i0, template: `<luzmo-dataset-selector-row
15
16
  [attr.selectedDatasets]="selectedDatasets"
16
17
  [attr.button-label]="buttonLabel"
17
18
  [attr.auth-key]="authKey"
@@ -19,10 +20,11 @@ export class DatasetSelectorRowComponent {
19
20
  [attr.api-url]="apiUrl"
20
21
  [attr.app-server]="appServer"
21
22
  [attr.flag-opendata]="flagOpendata"
23
+ [attr.disabled]="disabled"
22
24
  (dataset-selected)="datasetSelected.emit($event)"
23
25
  (dataset-removed)="datasetRemoved.emit($event)">
24
26
  <ng-content></ng-content>
25
- </luzmo-dataset-selector-row>`, isInline: true, dependencies: [{ kind: "component", type: DatasetSelectorRowComponent, selector: "luzmo-dataset-selector-row", inputs: ["selectedDatasets", "buttonLabel", "authKey", "authToken", "apiUrl", "appServer", "flagOpendata"], outputs: ["datasetSelected", "datasetRemoved"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
27
+ </luzmo-dataset-selector-row>`, isInline: true, dependencies: [{ kind: "component", type: DatasetSelectorRowComponent, selector: "luzmo-dataset-selector-row", inputs: ["selectedDatasets", "buttonLabel", "authKey", "authToken", "apiUrl", "appServer", "flagOpendata", "disabled"], outputs: ["datasetSelected", "datasetRemoved"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
26
28
  }
27
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: DatasetSelectorRowComponent, decorators: [{
28
30
  type: Component,
@@ -38,6 +40,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImpor
38
40
  [attr.api-url]="apiUrl"
39
41
  [attr.app-server]="appServer"
40
42
  [attr.flag-opendata]="flagOpendata"
43
+ [attr.disabled]="disabled"
41
44
  (dataset-selected)="datasetSelected.emit($event)"
42
45
  (dataset-removed)="datasetRemoved.emit($event)">
43
46
  <ng-content></ng-content>
@@ -57,6 +60,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImpor
57
60
  type: Input
58
61
  }], flagOpendata: [{
59
62
  type: Input
63
+ }], disabled: [{
64
+ type: Input
60
65
  }], datasetSelected: [{
61
66
  type: Output
62
67
  }], datasetRemoved: [{
@@ -2,6 +2,7 @@ import { AiChatMessageAssistantComponent } from './components/ai-chat-message-as
2
2
  import { AiChatMessageUserComponent } from './components/ai-chat-message-user.component';
3
3
  import { AiChatMessagesContainerComponent } from './components/ai-chat-messages-container.component';
4
4
  import { AiInteractionTextareaComponent } from './components/ai-interaction-textarea.component';
5
+ import { DatasetIconComponent } from './components/dataset-icon.component';
5
6
  import { DatasetSelectorListComponent } from './components/dataset-selector-list.component';
6
7
  import { DatasetSelectorRowComponent } from './components/dataset-selector-row.component';
7
8
  import { DisplaySettingsComponent } from './components/display-settings.component';
@@ -35,6 +36,7 @@ export { AiChatMessageAssistantComponent } from './components/ai-chat-message-as
35
36
  export { AiChatMessageUserComponent } from './components/ai-chat-message-user.component';
36
37
  export { AiChatMessagesContainerComponent } from './components/ai-chat-messages-container.component';
37
38
  export { AiInteractionTextareaComponent } from './components/ai-interaction-textarea.component';
39
+ export { DatasetIconComponent } from './components/dataset-icon.component';
38
40
  export { DatasetSelectorListComponent } from './components/dataset-selector-list.component';
39
41
  export { DatasetSelectorRowComponent } from './components/dataset-selector-row.component';
40
42
  export { DisplaySettingsComponent } from './components/display-settings.component';
@@ -64,4 +66,4 @@ export { GridItemActionsMenuComponent } from './components/grid-item-actions-men
64
66
  export { SlotContentsPickerComponent } from './components/slot-contents-picker.component';
65
67
  export { SlotMenuComponent } from './components/slot-menu.component';
66
68
  export { SlotMenuListComponent } from './components/slot-menu-list.component';
67
- export declare const LUZMO_COMPONENTS: readonly [typeof AiChatMessageAssistantComponent, typeof AiChatMessageUserComponent, typeof AiChatMessagesContainerComponent, typeof AiInteractionTextareaComponent, typeof DatasetSelectorListComponent, typeof DatasetSelectorRowComponent, typeof DisplaySettingsComponent, typeof DisplaySettingsBinningComponent, typeof DisplaySettingsDatetimeComponent, typeof DisplaySettingsGrandTotalsComponent, typeof DisplaySettingsNumericComponent, typeof DisplaySettingsPeriodOverPeriodComponent, typeof DraggableDataItemComponent, typeof DraggableDataItemLevelComponent, typeof DroppableSlotComponent, typeof EditItemComponent, typeof EditOptionComponent, typeof EditOptionColorPickerComponent, typeof EditOptionColorRangeComponent, typeof FilterDataItemPickerComponent, typeof FilterExpressionPickerComponent, typeof FilterGroupComponent, typeof FilterItemComponent, typeof FilterParameterPickerComponent, typeof FilterValuePickerComponent, typeof FilterValuePickerDatetimeComponent, typeof FilterValuePickerHierarchyComponent, typeof FilterValuePickerNumericComponent, typeof GridComponent, typeof GridItemActionsMenuComponent, typeof SlotContentsPickerComponent, typeof SlotMenuComponent, typeof SlotMenuListComponent];
69
+ export declare const LUZMO_COMPONENTS: readonly [typeof AiChatMessageAssistantComponent, typeof AiChatMessageUserComponent, typeof AiChatMessagesContainerComponent, typeof AiInteractionTextareaComponent, typeof DatasetIconComponent, typeof DatasetSelectorListComponent, typeof DatasetSelectorRowComponent, typeof DisplaySettingsComponent, typeof DisplaySettingsBinningComponent, typeof DisplaySettingsDatetimeComponent, typeof DisplaySettingsGrandTotalsComponent, typeof DisplaySettingsNumericComponent, typeof DisplaySettingsPeriodOverPeriodComponent, typeof DraggableDataItemComponent, typeof DraggableDataItemLevelComponent, typeof DroppableSlotComponent, typeof EditItemComponent, typeof EditOptionComponent, typeof EditOptionColorPickerComponent, typeof EditOptionColorRangeComponent, typeof FilterDataItemPickerComponent, typeof FilterExpressionPickerComponent, typeof FilterGroupComponent, typeof FilterItemComponent, typeof FilterParameterPickerComponent, typeof FilterValuePickerComponent, typeof FilterValuePickerDatetimeComponent, typeof FilterValuePickerHierarchyComponent, typeof FilterValuePickerNumericComponent, typeof GridComponent, typeof GridItemActionsMenuComponent, typeof SlotContentsPickerComponent, typeof SlotMenuComponent, typeof SlotMenuListComponent];
@@ -2,6 +2,7 @@ import { AiChatMessageAssistantComponent } from './components/ai-chat-message-as
2
2
  import { AiChatMessageUserComponent } from './components/ai-chat-message-user.component';
3
3
  import { AiChatMessagesContainerComponent } from './components/ai-chat-messages-container.component';
4
4
  import { AiInteractionTextareaComponent } from './components/ai-interaction-textarea.component';
5
+ import { DatasetIconComponent } from './components/dataset-icon.component';
5
6
  import { DatasetSelectorListComponent } from './components/dataset-selector-list.component';
6
7
  import { DatasetSelectorRowComponent } from './components/dataset-selector-row.component';
7
8
  import { DisplaySettingsComponent } from './components/display-settings.component';
@@ -35,6 +36,7 @@ export { AiChatMessageAssistantComponent } from './components/ai-chat-message-as
35
36
  export { AiChatMessageUserComponent } from './components/ai-chat-message-user.component';
36
37
  export { AiChatMessagesContainerComponent } from './components/ai-chat-messages-container.component';
37
38
  export { AiInteractionTextareaComponent } from './components/ai-interaction-textarea.component';
39
+ export { DatasetIconComponent } from './components/dataset-icon.component';
38
40
  export { DatasetSelectorListComponent } from './components/dataset-selector-list.component';
39
41
  export { DatasetSelectorRowComponent } from './components/dataset-selector-row.component';
40
42
  export { DisplaySettingsComponent } from './components/display-settings.component';
@@ -69,6 +71,7 @@ export const LUZMO_COMPONENTS = [
69
71
  AiChatMessageUserComponent,
70
72
  AiChatMessagesContainerComponent,
71
73
  AiInteractionTextareaComponent,
74
+ DatasetIconComponent,
72
75
  DatasetSelectorListComponent,
73
76
  DatasetSelectorRowComponent,
74
77
  DisplaySettingsComponent,
@@ -64,6 +64,20 @@ export type DataItem = {
64
64
  lowestLevel?: string;
65
65
  };
66
66
  export type GridItemRenderer = (item: GridItemData, index: number) => TemplateResult;
67
+ /**
68
+ * Dataset icon interface matching the Angular component
69
+ */
70
+ export interface DatasetIcon {
71
+ subtype: string;
72
+ account?: {
73
+ plugin?: {
74
+ thumbnails?: {
75
+ url: string;
76
+ size: string;
77
+ }[];
78
+ };
79
+ };
80
+ }
67
81
  export type { ElementSize, Placement } from '@luzmo/lucero';
68
82
  export interface Dataset {
69
83
  id: string;
package/angular/index.ts CHANGED
@@ -2,6 +2,7 @@ import { AiChatMessageAssistantComponent } from './components/ai-chat-message-as
2
2
  import { AiChatMessageUserComponent } from './components/ai-chat-message-user.component';
3
3
  import { AiChatMessagesContainerComponent } from './components/ai-chat-messages-container.component';
4
4
  import { AiInteractionTextareaComponent } from './components/ai-interaction-textarea.component';
5
+ import { DatasetIconComponent } from './components/dataset-icon.component';
5
6
  import { DatasetSelectorListComponent } from './components/dataset-selector-list.component';
6
7
  import { DatasetSelectorRowComponent } from './components/dataset-selector-row.component';
7
8
  import { DisplaySettingsComponent } from './components/display-settings.component';
@@ -36,6 +37,7 @@ export { AiChatMessageAssistantComponent } from './components/ai-chat-message-as
36
37
  export { AiChatMessageUserComponent } from './components/ai-chat-message-user.component';
37
38
  export { AiChatMessagesContainerComponent } from './components/ai-chat-messages-container.component';
38
39
  export { AiInteractionTextareaComponent } from './components/ai-interaction-textarea.component';
40
+ export { DatasetIconComponent } from './components/dataset-icon.component';
39
41
  export { DatasetSelectorListComponent } from './components/dataset-selector-list.component';
40
42
  export { DatasetSelectorRowComponent } from './components/dataset-selector-row.component';
41
43
  export { DisplaySettingsComponent } from './components/display-settings.component';
@@ -71,6 +73,7 @@ export const LUZMO_COMPONENTS = [
71
73
  AiChatMessageUserComponent,
72
74
  AiChatMessagesContainerComponent,
73
75
  AiInteractionTextareaComponent,
76
+ DatasetIconComponent,
74
77
  DatasetSelectorListComponent,
75
78
  DatasetSelectorRowComponent,
76
79
  DisplaySettingsComponent,
package/angular/types.ts CHANGED
@@ -91,6 +91,19 @@ export type GridItemRenderer = (
91
91
  index: number
92
92
  ) => TemplateResult;
93
93
 
94
+ /**
95
+ * Dataset icon interface matching the Angular component
96
+ */
97
+
98
+ export interface DatasetIcon {
99
+ subtype: string;
100
+ account?: {
101
+ plugin?: {
102
+ thumbnails?: { url: string; size: string }[];
103
+ };
104
+ };
105
+ }
106
+
94
107
  export type { ElementSize, Placement } from '@luzmo/lucero';
95
108
 
96
109
  // Dataset interface for dataset selector components
@@ -17,7 +17,7 @@
17
17
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18
18
  * SOFTWARE.
19
19
  * */
20
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("lit"),e=require("../focusable-QLh-LlNt.cjs");require("lit/decorators.js");const o=":host{box-sizing:border-box;display:block;width:100%;height:100%;background:var(--luzmo-ai-chat-messages-container-background, var(--ai-chat-messages-container-background));border-radius:var(--luzmo-ai-chat-messages-container-border-radius, var(--ai-chat-messages-container-border-radius));overflow:hidden}:host .messages-container{display:flex;flex-direction:column;height:100%;overflow-y:auto;padding:var(--luzmo-ai-chat-messages-container-padding, var(--ai-chat-messages-container-padding));gap:var(--luzmo-ai-chat-messages-container-gap, var(--ai-chat-messages-container-gap))}:host .messages-container::-webkit-scrollbar{width:var(--luzmo-ai-chat-messages-container-scrollbar-width, var(--ai-chat-messages-container-scrollbar-width))}:host .messages-container::-webkit-scrollbar-track{background:var(--luzmo-ai-chat-messages-container-scrollbar-track-background, var(--ai-chat-messages-container-scrollbar-track-background));border-radius:var(--luzmo-ai-chat-messages-container-scrollbar-track-border-radius, var(--ai-chat-messages-container-scrollbar-track-border-radius))}:host .messages-container::-webkit-scrollbar-thumb{background:var(--luzmo-ai-chat-messages-container-scrollbar-thumb-background, var(--ai-chat-messages-container-scrollbar-thumb-background));border-radius:var(--luzmo-ai-chat-messages-container-scrollbar-thumb-border-radius, var(--ai-chat-messages-container-scrollbar-thumb-border-radius))}:host .messages-container::-webkit-scrollbar-thumb:hover{background:var(--luzmo-ai-chat-messages-container-scrollbar-thumb-hover-background, var(--ai-chat-messages-container-scrollbar-thumb-hover-background))}:host .messages-container{scrollbar-width:thin;scrollbar-color:var(--luzmo-ai-chat-messages-container-scrollbar-thumb-background, var(--ai-chat-messages-container-scrollbar-track-background))}:host .messages-container{scroll-behavior:smooth}:host .messages-container:focus{outline:var(--luzmo-ai-chat-messages-container-focus-outline, var(--ai-chat-messages-container-focus-outline));outline-offset:-2px}:host{--ai-chat-messages-container-background: var(--luzmo-background-color);--ai-chat-messages-container-border-radius: var(--luzmo-border-radius-l);--ai-chat-messages-container-padding: var(--luzmo-spacing-5);--ai-chat-messages-container-gap: var(--luzmo-spacing-2);--ai-chat-messages-container-scrollbar-width: 6px;--ai-chat-messages-container-scrollbar-track-background: var(--luzmo-background-color-highlight);--ai-chat-messages-container-scrollbar-track-border-radius: var(--luzmo-border-radius-s);--ai-chat-messages-container-scrollbar-thumb-background: var(--luzmo-border-color-full);--ai-chat-messages-container-scrollbar-thumb-border-radius: var(--luzmo-border-radius-s);--ai-chat-messages-container-scrollbar-thumb-hover-background: var(--luzmo-border-color-full-hover);--ai-chat-messages-container-focus-outline: 2px solid var(--luzmo-primary)}",r=class r extends e.LuzmoElement{render(){return s.html`
20
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("lit"),e=require("../focusable-B3E_hQmm.cjs");require("lit/decorators.js");const o=":host{box-sizing:border-box;display:block;width:100%;height:100%;background:var(--luzmo-ai-chat-messages-container-background, var(--ai-chat-messages-container-background));border-radius:var(--luzmo-ai-chat-messages-container-border-radius, var(--ai-chat-messages-container-border-radius));overflow:hidden}:host .messages-container{display:flex;flex-direction:column;height:100%;overflow-y:auto;padding:var(--luzmo-ai-chat-messages-container-padding, var(--ai-chat-messages-container-padding));gap:var(--luzmo-ai-chat-messages-container-gap, var(--ai-chat-messages-container-gap));scrollbar-width:thin;scrollbar-color:var(--luzmo-ai-chat-messages-container-scrollbar-thumb-background, var(--ai-chat-messages-container-scrollbar-track-background))}:host .messages-container::-webkit-scrollbar{width:var(--luzmo-ai-chat-messages-container-scrollbar-width, var(--ai-chat-messages-container-scrollbar-width))}:host .messages-container::-webkit-scrollbar-track{background:var(--luzmo-ai-chat-messages-container-scrollbar-track-background, var(--ai-chat-messages-container-scrollbar-track-background));border-radius:var(--luzmo-ai-chat-messages-container-scrollbar-track-border-radius, var(--ai-chat-messages-container-scrollbar-track-border-radius))}:host .messages-container::-webkit-scrollbar-thumb{background:var(--luzmo-ai-chat-messages-container-scrollbar-thumb-background, var(--ai-chat-messages-container-scrollbar-thumb-background));border-radius:var(--luzmo-ai-chat-messages-container-scrollbar-thumb-border-radius, var(--ai-chat-messages-container-scrollbar-thumb-border-radius))}:host .messages-container::-webkit-scrollbar-thumb:hover{background:var(--luzmo-ai-chat-messages-container-scrollbar-thumb-hover-background, var(--ai-chat-messages-container-scrollbar-thumb-hover-background))}:host .messages-container{scroll-behavior:smooth}:host .messages-container:focus{outline:var(--luzmo-ai-chat-messages-container-focus-outline, var(--ai-chat-messages-container-focus-outline));outline-offset:-2px}:host{--ai-chat-messages-container-background: var(--luzmo-background-color);--ai-chat-messages-container-border-radius: var(--luzmo-border-radius-l);--ai-chat-messages-container-padding: var(--luzmo-spacing-5);--ai-chat-messages-container-gap: var(--luzmo-spacing-2);--ai-chat-messages-container-scrollbar-width: 6px;--ai-chat-messages-container-scrollbar-track-background: var(--luzmo-background-color-highlight);--ai-chat-messages-container-scrollbar-track-border-radius: var(--luzmo-border-radius-s);--ai-chat-messages-container-scrollbar-thumb-background: var(--luzmo-border-color-full);--ai-chat-messages-container-scrollbar-thumb-border-radius: var(--luzmo-border-radius-s);--ai-chat-messages-container-scrollbar-thumb-hover-background: var(--luzmo-border-color-full-hover);--ai-chat-messages-container-focus-outline: 2px solid var(--luzmo-primary)}",r=class r extends e.LuzmoElement{render(){return s.html`
21
21
  <div class="messages-container">
22
22
  <slot></slot>
23
23
  </div>
@@ -18,7 +18,7 @@
18
18
  * SOFTWARE.
19
19
  * */
20
20
  import { unsafeCSS as e, html as l } from "lit";
21
- import { L as s } from "../focusable-BS2pbY7w.js";
21
+ import { L as s } from "../focusable-DCIFkpiW.js";
22
22
  import "lit/decorators.js";
23
23
  (function() {
24
24
  if (typeof document < "u" && !document.querySelector("style[data-luzmo-vars]")) {
@@ -26,7 +26,7 @@ import "lit/decorators.js";
26
26
  o.setAttribute("data-luzmo-vars", ""), o.textContent = 'html{--luzmo-animation-duration: 0.15s;--luzmo-border-color: rgba(var(--luzmo-border-color-rgb), 0.1);--luzmo-border-color-hover: rgba(var(--luzmo-border-color-rgb), 0.15);--luzmo-border-color-down: rgba(var(--luzmo-border-color-rgb), 0.3);--luzmo-border-color-focus: rgba(var(--luzmo-border-color-rgb), 0.15);--luzmo-border-color-rgb: 0, 0, 0;--luzmo-border-color-full: rgb(180, 180, 180);--luzmo-border-color-full-hover: rgb(140, 140, 140);--luzmo-border-color-full-down: rgb(110, 110, 110);--luzmo-border-color-full-focus: rgb(140, 140, 140);--luzmo-border-color-disabled: #dddddd;--luzmo-border-radius: 6px;--luzmo-border-radius-s: 4px;--luzmo-border-radius-l: 8px;--luzmo-border-radius-xl: 12px;--luzmo-border-radius-full: 999rem;--luzmo-background-color: #ffffff;--luzmo-background-color-rgb: 255, 255, 255;--luzmo-background-color-disabled: #eeeeee;--luzmo-background-color-hover: #f0f0fc;--luzmo-background-color-down: #f1f1ff;--luzmo-background-color-focus: #f0f0fc;--luzmo-background-color-highlight: rgb(240, 240, 240);--luzmo-background-color-highlight-disabled: rgb(245, 245, 245);--luzmo-background-color-highlight-hover: rgb(225, 225, 225);--luzmo-background-color-highlight-down: rgb(215, 215, 215);--luzmo-background-color-highlight-focus: rgb(225, 225, 225);--luzmo-background-color-alt-1: rgb(250, 250, 250);--luzmo-background-color-alt-2: rgb(239, 239, 239);--luzmo-border-width: 1px;--luzmo-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Helvetica, Arial, sans-serif;--luzmo-font-size-xs: 10px;--luzmo-font-size-s: 12px;--luzmo-font-size-m: 14px;--luzmo-font-size: 14px;--luzmo-font-size-l: 16px;--luzmo-font-size-xl: 18px;--luzmo-font-size-xxl: 20px;--luzmo-font-style: normal;--luzmo-line-height: normal;--luzmo-font-weight: 400;--luzmo-font-weight-semibold: 500;--luzmo-font-weight-bold: 600;--luzmo-font-color: #333;--luzmo-font-color-hard: #000;--luzmo-font-color-disabled: var(--luzmo-color-disabled);--luzmo-font-color-extra-dimmed: #888;--luzmo-font-color-hover: #333;--luzmo-font-color-down: #111;--luzmo-font-color-focus: #333;--luzmo-primary: #4434ff;--luzmo-primary-hover: #4234e4;--luzmo-primary-down: #392cc7;--luzmo-primary-focus: #4234e4;--luzmo-primary-inverse-color: #ffffff;--luzmo-primary-rgb: 68, 52, 255;--luzmo-secondary: #ff00ff;--luzmo-secondary-hover: #e309e3;--luzmo-secondary-down: #c711c7;--luzmo-secondary-focus: #e309e3;--luzmo-secondary-inverse-color: #ffffff;--luzmo-secondary-rgb: 255, 0, 255;--luzmo-secondary-outline: rgba(255, 0, 255, 0.2);--luzmo-negative-color: #ca221c;--luzmo-negative-color-hover: #b3241f;--luzmo-negative-color-down: #9f231f;--luzmo-negative-color-focus: #b3241f;--luzmo-negative-color-rgb: 202, 34, 28;--luzmo-positive-color: rgb(20, 150, 101);--luzmo-positive-color-hover: rgb(17, 128, 86);--luzmo-positive-color-down: rgb(16, 105, 71);--luzmo-positive-color-focus: rgb(17, 128, 86);--luzmo-positive-color-rgb: 20, 150, 101;--luzmo-selected-color: rgb(110, 110, 110);--luzmo-selected-color-hover: rgb(70, 70, 70);--luzmo-selected-color-down: rgb(40, 40, 40);--luzmo-selected-color-focus: rgb(70, 70, 70);--luzmo-selected-color-hard: #1e1e1e;--luzmo-selected-color-hard-hover: rgb(0, 0, 0);--luzmo-selected-color-hard-down: rgb(0, 0, 0);--luzmo-selected-color-hard-focus: rgb(0, 0, 0);--luzmo-color-informative: #1a77e9;--luzmo-color-informative-rgb: 26, 119, 233;--luzmo-color-disabled: #aaaaaa;--luzmo-spacing-1: 2px;--luzmo-spacing-2: 4px;--luzmo-spacing-3: 8px;--luzmo-spacing-4: 12px;--luzmo-spacing-5: 16px;--luzmo-indicator-gap: 2px;--luzmo-indicator-width: 1px;--luzmo-indicator-color: var(--luzmo-primary);--luzmo-component-height-xxs: 20px;--luzmo-component-height-xs: 24px;--luzmo-component-height-s: 28px;--luzmo-component-height: 32px;--luzmo-component-height-l: 40px;--luzmo-component-height-xl: 48px;--luzmo-component-height-xxl: 64px;--luzmo-icon-size-xxs: 12px;--luzmo-icon-size-xs: 14px;--luzmo-icon-size-s: 16px;--luzmo-icon-size-m: 18px;--luzmo-icon-size-l: 20px;--luzmo-icon-size-xl: 22px;--luzmo-icon-size-xxl: 32px}', document.head.appendChild(o);
27
27
  }
28
28
  })();
29
- const c = ":host{box-sizing:border-box;display:block;width:100%;height:100%;background:var(--luzmo-ai-chat-messages-container-background, var(--ai-chat-messages-container-background));border-radius:var(--luzmo-ai-chat-messages-container-border-radius, var(--ai-chat-messages-container-border-radius));overflow:hidden}:host .messages-container{display:flex;flex-direction:column;height:100%;overflow-y:auto;padding:var(--luzmo-ai-chat-messages-container-padding, var(--ai-chat-messages-container-padding));gap:var(--luzmo-ai-chat-messages-container-gap, var(--ai-chat-messages-container-gap))}:host .messages-container::-webkit-scrollbar{width:var(--luzmo-ai-chat-messages-container-scrollbar-width, var(--ai-chat-messages-container-scrollbar-width))}:host .messages-container::-webkit-scrollbar-track{background:var(--luzmo-ai-chat-messages-container-scrollbar-track-background, var(--ai-chat-messages-container-scrollbar-track-background));border-radius:var(--luzmo-ai-chat-messages-container-scrollbar-track-border-radius, var(--ai-chat-messages-container-scrollbar-track-border-radius))}:host .messages-container::-webkit-scrollbar-thumb{background:var(--luzmo-ai-chat-messages-container-scrollbar-thumb-background, var(--ai-chat-messages-container-scrollbar-thumb-background));border-radius:var(--luzmo-ai-chat-messages-container-scrollbar-thumb-border-radius, var(--ai-chat-messages-container-scrollbar-thumb-border-radius))}:host .messages-container::-webkit-scrollbar-thumb:hover{background:var(--luzmo-ai-chat-messages-container-scrollbar-thumb-hover-background, var(--ai-chat-messages-container-scrollbar-thumb-hover-background))}:host .messages-container{scrollbar-width:thin;scrollbar-color:var(--luzmo-ai-chat-messages-container-scrollbar-thumb-background, var(--ai-chat-messages-container-scrollbar-track-background))}:host .messages-container{scroll-behavior:smooth}:host .messages-container:focus{outline:var(--luzmo-ai-chat-messages-container-focus-outline, var(--ai-chat-messages-container-focus-outline));outline-offset:-2px}:host{--ai-chat-messages-container-background: var(--luzmo-background-color);--ai-chat-messages-container-border-radius: var(--luzmo-border-radius-l);--ai-chat-messages-container-padding: var(--luzmo-spacing-5);--ai-chat-messages-container-gap: var(--luzmo-spacing-2);--ai-chat-messages-container-scrollbar-width: 6px;--ai-chat-messages-container-scrollbar-track-background: var(--luzmo-background-color-highlight);--ai-chat-messages-container-scrollbar-track-border-radius: var(--luzmo-border-radius-s);--ai-chat-messages-container-scrollbar-thumb-background: var(--luzmo-border-color-full);--ai-chat-messages-container-scrollbar-thumb-border-radius: var(--luzmo-border-radius-s);--ai-chat-messages-container-scrollbar-thumb-hover-background: var(--luzmo-border-color-full-hover);--ai-chat-messages-container-focus-outline: 2px solid var(--luzmo-primary)}", a = class a extends s {
29
+ const c = ":host{box-sizing:border-box;display:block;width:100%;height:100%;background:var(--luzmo-ai-chat-messages-container-background, var(--ai-chat-messages-container-background));border-radius:var(--luzmo-ai-chat-messages-container-border-radius, var(--ai-chat-messages-container-border-radius));overflow:hidden}:host .messages-container{display:flex;flex-direction:column;height:100%;overflow-y:auto;padding:var(--luzmo-ai-chat-messages-container-padding, var(--ai-chat-messages-container-padding));gap:var(--luzmo-ai-chat-messages-container-gap, var(--ai-chat-messages-container-gap));scrollbar-width:thin;scrollbar-color:var(--luzmo-ai-chat-messages-container-scrollbar-thumb-background, var(--ai-chat-messages-container-scrollbar-track-background))}:host .messages-container::-webkit-scrollbar{width:var(--luzmo-ai-chat-messages-container-scrollbar-width, var(--ai-chat-messages-container-scrollbar-width))}:host .messages-container::-webkit-scrollbar-track{background:var(--luzmo-ai-chat-messages-container-scrollbar-track-background, var(--ai-chat-messages-container-scrollbar-track-background));border-radius:var(--luzmo-ai-chat-messages-container-scrollbar-track-border-radius, var(--ai-chat-messages-container-scrollbar-track-border-radius))}:host .messages-container::-webkit-scrollbar-thumb{background:var(--luzmo-ai-chat-messages-container-scrollbar-thumb-background, var(--ai-chat-messages-container-scrollbar-thumb-background));border-radius:var(--luzmo-ai-chat-messages-container-scrollbar-thumb-border-radius, var(--ai-chat-messages-container-scrollbar-thumb-border-radius))}:host .messages-container::-webkit-scrollbar-thumb:hover{background:var(--luzmo-ai-chat-messages-container-scrollbar-thumb-hover-background, var(--ai-chat-messages-container-scrollbar-thumb-hover-background))}:host .messages-container{scroll-behavior:smooth}:host .messages-container:focus{outline:var(--luzmo-ai-chat-messages-container-focus-outline, var(--ai-chat-messages-container-focus-outline));outline-offset:-2px}:host{--ai-chat-messages-container-background: var(--luzmo-background-color);--ai-chat-messages-container-border-radius: var(--luzmo-border-radius-l);--ai-chat-messages-container-padding: var(--luzmo-spacing-5);--ai-chat-messages-container-gap: var(--luzmo-spacing-2);--ai-chat-messages-container-scrollbar-width: 6px;--ai-chat-messages-container-scrollbar-track-background: var(--luzmo-background-color-highlight);--ai-chat-messages-container-scrollbar-track-border-radius: var(--luzmo-border-radius-s);--ai-chat-messages-container-scrollbar-thumb-background: var(--luzmo-border-color-full);--ai-chat-messages-container-scrollbar-thumb-border-radius: var(--luzmo-border-radius-s);--ai-chat-messages-container-scrollbar-thumb-hover-background: var(--luzmo-border-color-full-hover);--ai-chat-messages-container-focus-outline: 2px solid var(--luzmo-primary)}", a = class a extends s {
30
30
  render() {
31
31
  return l`
32
32
  <div class="messages-container">
@@ -1,11 +1,13 @@
1
1
  import { LitElement, TemplateResult } from 'lit';
2
2
  import { Dataset } from '../../types';
3
- import '../dataset-selector-row/index';
3
+ import '../dataset-selector-row';
4
4
  /**
5
5
  * @element luzmo-ai-interaction-textarea
6
6
  * @summary A textarea component for AI interaction with dataset selection
7
7
  * @fires prompt-submitted - Fired when a prompt is submitted with selected datasets
8
8
  *
9
+ * @attr {boolean} disabled - When true, disables the entire component (opacity 60%, no interactions)
10
+ *
9
11
  * @cssprop --luzmo-ai-interaction-textarea-background-color - Override for background color of the component (client customization)
10
12
  * @cssprop --ai-interaction-textarea-background-color - Background color of the component
11
13
  * @cssprop --ai-interaction-textarea-border-color - Border color of the component
@@ -63,6 +65,10 @@ export declare class LuzmoAiInteractionTextarea extends LitElement {
63
65
  * When true, restricts results to public datasets (opendata parity)
64
66
  */
65
67
  flagOpendata: boolean;
68
+ /**
69
+ * When true, disables the entire component (sets opacity to 60% and prevents all interactions)
70
+ */
71
+ disabled: boolean;
66
72
  private _promptValue;
67
73
  private _isPromptValid;
68
74
  private get _buttonDisabled();
@@ -17,34 +17,38 @@
17
17
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18
18
  * SOFTWARE.
19
19
  * */
20
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("@lit/localize"),u=require("@luzmo/icons"),l=require("lit"),i=require("lit/decorators.js");require("../dataset-selector-row/index.cjs");const m=":host{box-sizing:border-box;display:flex;flex-direction:column;background-color:var(--luzmo-ai-interaction-textarea-background-color, var(--ai-interaction-textarea-background-color));border:1px solid var(--luzmo-ai-interaction-textarea-border-color, var(--ai-interaction-textarea-border-color));border-radius:var(--luzmo-ai-interaction-textarea-border-radius, var(--ai-interaction-textarea-border-radius));padding:var(--luzmo-ai-interaction-textarea-padding, var(--ai-interaction-textarea-padding));gap:var(--luzmo-ai-interaction-textarea-gap, var(--ai-interaction-textarea-gap));font-family:var(--luzmo-ai-interaction-textarea-font-family, var(--ai-interaction-textarea-font-family));font-size:var(--luzmo-ai-interaction-textarea-font-size, var(--ai-interaction-textarea-font-size))}:host:has(textarea:focus){border-color:var(--luzmo-ai-interaction-textarea-focus-border-color, var(--ai-interaction-textarea-focus-border-color));box-shadow:var(--luzmo-ai-interaction-textarea-focus-box-shadow, var(--ai-interaction-textarea-focus-box-shadow))}:host textarea{background-color:var(--luzmo-ai-interaction-textarea-textarea-background, var(--ai-interaction-textarea-textarea-background));border:none;resize:none;outline:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;vertical-align:middle;padding:0;min-height:3rem;color:var(--luzmo-ai-interaction-textarea-textarea-color, var(--ai-interaction-textarea-textarea-color));font-family:var(--luzmo-ai-interaction-textarea-font-family, var(--ai-interaction-textarea-font-family));font-size:var(--luzmo-ai-interaction-textarea-font-size, var(--ai-interaction-textarea-font-size));line-height:1.5}:host textarea::placeholder{color:var(--luzmo-ai-interaction-textarea-textarea-placeholder-color, var(--ai-interaction-textarea-textarea-placeholder-color))}:host .button-container{text-align:var(--luzmo-ai-interaction-textarea-button-container-text-align, var(--ai-interaction-textarea-button-container-text-align))}:host .button-container button{padding:var(--luzmo-ai-interaction-textarea-button-padding, var(--ai-interaction-textarea-button-padding));min-width:var(--luzmo-ai-interaction-textarea-button-min-width, var(--ai-interaction-textarea-button-min-width));min-height:var(--luzmo-ai-interaction-textarea-button-min-height, var(--ai-interaction-textarea-button-min-height));border:none;border-radius:var(--luzmo-ai-interaction-textarea-button-border-radius, var(--ai-interaction-textarea-button-border-radius));font-size:var(--luzmo-ai-interaction-textarea-button-font-size, var(--ai-interaction-textarea-button-font-size));cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .15s ease}:host .button-container button:disabled{opacity:.6;cursor:not-allowed}:host .button-container button.disabled{opacity:.6;cursor:not-allowed}:host .button-container button svg{display:flex;align-items:center;justify-content:center}:host .button-container button.btn-primary{background-color:var(--luzmo-ai-interaction-textarea-button-background-color, var(--ai-interaction-textarea-button-background-color));color:var(--luzmo-ai-interaction-textarea-button-color, var(--ai-interaction-textarea-button-color))}:host .button-container button.btn-primary:hover:not(:disabled):not(.disabled){background-color:var(--luzmo-ai-interaction-textarea-button-background-color-hover, var(--ai-interaction-textarea-button-background-color-hover))}:host .button-container button.btn-primary:disabled,:host .button-container button.btn-primary.disabled{background-color:var(--luzmo-ai-interaction-textarea-button-background-color-disabled, var(--ai-interaction-textarea-button-background-color-disabled));opacity:.6}:host{--ai-interaction-textarea-background-color: var(--luzmo-background-color-alt-2);--ai-interaction-textarea-border-color: var(--luzmo-border-color);--ai-interaction-textarea-border-radius: .5rem;--ai-interaction-textarea-padding: .75rem;--ai-interaction-textarea-gap: 1rem;--ai-interaction-textarea-focus-border-color: var(--luzmo-primary);--ai-interaction-textarea-focus-box-shadow: 0 0 1rem 0 var(--luzmo-primary-50);--ai-interaction-textarea-font-family: var(--luzmo-font-family);--ai-interaction-textarea-font-size: .875rem;--ai-interaction-textarea-textarea-background: transparent;--ai-interaction-textarea-textarea-color: var(--luzmo-font-color);--ai-interaction-textarea-textarea-placeholder-color: var(--luzmo-font-color-extra-dimmed);--ai-interaction-textarea-button-container-text-align: right;--ai-interaction-textarea-button-padding: 0;--ai-interaction-textarea-button-min-width: 2rem;--ai-interaction-textarea-button-min-height: 1.875rem;--ai-interaction-textarea-button-border-radius: .5rem;--ai-interaction-textarea-button-font-size: 1rem;--ai-interaction-textarea-button-background-color: var(--luzmo-primary);--ai-interaction-textarea-button-background-color-hover: var(--luzmo-primary-hover);--ai-interaction-textarea-button-background-color-disabled: var(--luzmo-primary);--ai-interaction-textarea-button-color: var(--luzmo-primary-inverse-color)}";var p=Object.defineProperty,b=Object.getOwnPropertyDescriptor,r=(n,t,a,e)=>{for(var o=e>1?void 0:e?b(t,a):t,c=n.length-1,s;c>=0;c--)(s=n[c])&&(o=(e?s(t,a,o):s(o))||o);return e&&o&&p(t,a,o),o};exports.LuzmoAiInteractionTextarea=class extends l.LitElement{constructor(){super(...arguments),this.placeholder="Type your prompt here...",this.selectedDatasets=[],this.authKey="",this.authToken="",this.apiUrl="https://api.luzmo.com",this.appServer="https://app.luzmo.com",this.flagOpendata=!1,this._promptValue="",this._isPromptValid=!1}get _buttonDisabled(){return this.selectedDatasets.length===0||!this._isPromptValid}_autoResizeTextarea(t){t.style.height="auto";const a=2*1.5*16,e=8*1.5*16,o=Math.max(a,Math.min(t.scrollHeight,e));t.style.height=`${o}px`}_handlePromptInput(t){const a=t.target;this._promptValue=a.value,this._isPromptValid=a.value.trim().length>0,this._autoResizeTextarea(a),a.scrollTo({top:a.scrollHeight})}_handleKeyDown(t){t.key==="Enter"&&!t.shiftKey&&(t.preventDefault(),this._submitPrompt())}_submitPrompt(){if(this._buttonDisabled)return;const t=this._promptValue.trim();this.dispatchEvent(new CustomEvent("prompt-submitted",{detail:{prompt:t,selectedDatasets:this.selectedDatasets},bubbles:!0,composed:!0}))}_handleDatasetSelected(t){const a=t.detail;this.selectedDatasets.some(e=>e.id===a.id)||(this.selectedDatasets=[...this.selectedDatasets,a])}_handleDatasetRemoved(t){const a=t.detail;this.selectedDatasets=this.selectedDatasets.filter(e=>e.id!==a.id)}firstUpdated(){const t=this.shadowRoot?.querySelector("textarea");t&&this._autoResizeTextarea(t)}render(){return l.html`
21
- <luzmo-dataset-selector-row
22
- .selectedDatasets=${this.selectedDatasets}
23
- auth-key=${this.authKey}
24
- auth-token=${this.authToken}
25
- api-url=${this.apiUrl}
26
- app-server=${this.appServer}
27
- ?flag-opendata=${this.flagOpendata}
28
- @dataset-selected=${this._handleDatasetSelected}
29
- @dataset-removed=${this._handleDatasetRemoved}
30
- ></luzmo-dataset-selector-row>
20
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("@lit/localize"),u=require("@luzmo/icons"),l=require("lit"),o=require("lit/decorators.js"),p=require("lit/directives/class-map.js");require("../dataset-selector-row/index.cjs");const m=":host{box-sizing:border-box;display:flex;flex-direction:column;background-color:var(--luzmo-ai-interaction-textarea-background-color, var(--ai-interaction-textarea-background-color));border:1px solid var(--luzmo-ai-interaction-textarea-border-color, var(--ai-interaction-textarea-border-color));border-radius:var(--luzmo-ai-interaction-textarea-border-radius, var(--ai-interaction-textarea-border-radius));padding:var(--luzmo-ai-interaction-textarea-padding, var(--ai-interaction-textarea-padding));gap:var(--luzmo-ai-interaction-textarea-gap, var(--ai-interaction-textarea-gap));font-family:var(--luzmo-ai-interaction-textarea-font-family, var(--ai-interaction-textarea-font-family));font-size:var(--luzmo-ai-interaction-textarea-font-size, var(--ai-interaction-textarea-font-size))}:host:has(textarea:focus){border-color:var(--luzmo-ai-interaction-textarea-focus-border-color, var(--ai-interaction-textarea-focus-border-color));box-shadow:var(--luzmo-ai-interaction-textarea-focus-box-shadow, var(--ai-interaction-textarea-focus-box-shadow))}:host .content-wrapper{display:flex;flex-direction:column;gap:var(--luzmo-ai-interaction-textarea-gap, var(--ai-interaction-textarea-gap))}:host .content-wrapper.disabled{opacity:.6;pointer-events:none;cursor:not-allowed}:host .content-wrapper.disabled *{pointer-events:none}:host textarea{background-color:var(--luzmo-ai-interaction-textarea-textarea-background, var(--ai-interaction-textarea-textarea-background));border:none;resize:none;outline:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;vertical-align:middle;padding:0;min-height:3rem;color:var(--luzmo-ai-interaction-textarea-textarea-color, var(--ai-interaction-textarea-textarea-color));font-family:var(--luzmo-ai-interaction-textarea-font-family, var(--ai-interaction-textarea-font-family));font-size:var(--luzmo-ai-interaction-textarea-font-size, var(--ai-interaction-textarea-font-size));line-height:1.5}:host textarea::placeholder{color:var(--luzmo-ai-interaction-textarea-textarea-placeholder-color, var(--ai-interaction-textarea-textarea-placeholder-color))}:host .button-container{text-align:var(--luzmo-ai-interaction-textarea-button-container-text-align, var(--ai-interaction-textarea-button-container-text-align))}:host .button-container button{padding:var(--luzmo-ai-interaction-textarea-button-padding, var(--ai-interaction-textarea-button-padding));min-width:var(--luzmo-ai-interaction-textarea-button-min-width, var(--ai-interaction-textarea-button-min-width));min-height:var(--luzmo-ai-interaction-textarea-button-min-height, var(--ai-interaction-textarea-button-min-height));border:none;border-radius:var(--luzmo-ai-interaction-textarea-button-border-radius, var(--ai-interaction-textarea-button-border-radius));font-size:var(--luzmo-ai-interaction-textarea-button-font-size, var(--ai-interaction-textarea-button-font-size));cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .15s ease}:host .button-container button:disabled{opacity:.6;cursor:not-allowed}:host .button-container button.disabled{opacity:.6;cursor:not-allowed}:host .button-container button svg{display:flex;align-items:center;justify-content:center}:host .button-container button.btn-primary{background-color:var(--luzmo-ai-interaction-textarea-button-background-color, var(--ai-interaction-textarea-button-background-color));color:var(--luzmo-ai-interaction-textarea-button-color, var(--ai-interaction-textarea-button-color))}:host .button-container button.btn-primary:hover:not(:disabled):not(.disabled){background-color:var(--luzmo-ai-interaction-textarea-button-background-color-hover, var(--ai-interaction-textarea-button-background-color-hover))}:host .button-container button.btn-primary:disabled,:host .button-container button.btn-primary.disabled{background-color:var(--luzmo-ai-interaction-textarea-button-background-color-disabled, var(--ai-interaction-textarea-button-background-color-disabled));opacity:.6}:host{--ai-interaction-textarea-background-color: var(--luzmo-background-color-alt-2);--ai-interaction-textarea-border-color: var(--luzmo-border-color);--ai-interaction-textarea-border-radius: .5rem;--ai-interaction-textarea-padding: .75rem;--ai-interaction-textarea-gap: 1rem;--ai-interaction-textarea-focus-border-color: var(--luzmo-primary);--ai-interaction-textarea-focus-box-shadow: 0 0 1rem 0 var(--luzmo-primary-50);--ai-interaction-textarea-font-family: var(--luzmo-font-family);--ai-interaction-textarea-font-size: .875rem;--ai-interaction-textarea-textarea-background: transparent;--ai-interaction-textarea-textarea-color: var(--luzmo-font-color);--ai-interaction-textarea-textarea-placeholder-color: var(--luzmo-font-color-extra-dimmed);--ai-interaction-textarea-button-container-text-align: right;--ai-interaction-textarea-button-padding: 0;--ai-interaction-textarea-button-min-width: 2rem;--ai-interaction-textarea-button-min-height: 1.875rem;--ai-interaction-textarea-button-border-radius: .5rem;--ai-interaction-textarea-button-font-size: 1rem;--ai-interaction-textarea-button-background-color: var(--luzmo-primary);--ai-interaction-textarea-button-background-color-hover: var(--luzmo-primary-hover);--ai-interaction-textarea-button-background-color-disabled: var(--luzmo-primary);--ai-interaction-textarea-button-color: var(--luzmo-primary-inverse-color)}";var b=Object.defineProperty,h=Object.getOwnPropertyDescriptor,e=(n,t,a,r)=>{for(var i=r>1?void 0:r?h(t,a):t,s=n.length-1,c;s>=0;s--)(c=n[s])&&(i=(r?c(t,a,i):c(i))||i);return r&&i&&b(t,a,i),i};exports.LuzmoAiInteractionTextarea=class extends l.LitElement{constructor(){super(...arguments),this.placeholder="Type your prompt here...",this.selectedDatasets=[],this.authKey="",this.authToken="",this.apiUrl="https://api.luzmo.com",this.appServer="https://app.luzmo.com",this.flagOpendata=!1,this.disabled=!1,this._promptValue="",this._isPromptValid=!1}get _buttonDisabled(){return this.disabled||this.selectedDatasets.length===0||!this._isPromptValid}_autoResizeTextarea(t){t.style.height="auto";const a=2*1.5*16,r=8*1.5*16,i=Math.max(a,Math.min(t.scrollHeight,r));t.style.height=`${i}px`}_handlePromptInput(t){const a=t.target;this._promptValue=a.value,this._isPromptValid=a.value.trim().length>0,this._autoResizeTextarea(a),a.scrollTo({top:a.scrollHeight})}_handleKeyDown(t){t.key==="Enter"&&!t.shiftKey&&(t.preventDefault(),this._submitPrompt())}_submitPrompt(){if(this._buttonDisabled)return;const t=this._promptValue.trim();this.dispatchEvent(new CustomEvent("prompt-submitted",{detail:{prompt:t,selectedDatasets:this.selectedDatasets},bubbles:!0,composed:!0}))}_handleDatasetSelected(t){const a=t.detail;this.selectedDatasets.some(r=>r.id===a.id)||(this.selectedDatasets=[...this.selectedDatasets,a])}_handleDatasetRemoved(t){const a=t.detail;this.selectedDatasets=this.selectedDatasets.filter(r=>r.id!==a.id)}firstUpdated(){var a;const t=(a=this.shadowRoot)==null?void 0:a.querySelector("textarea");t&&this._autoResizeTextarea(t)}render(){const t={"content-wrapper":!0,disabled:this.disabled};return l.html`
21
+ <div class=${p.classMap(t)}>
22
+ <luzmo-dataset-selector-row
23
+ .selectedDatasets=${this.selectedDatasets}
24
+ auth-key=${this.authKey}
25
+ auth-token=${this.authToken}
26
+ api-url=${this.apiUrl}
27
+ app-server=${this.appServer}
28
+ ?flag-opendata=${this.flagOpendata}
29
+ ?disabled=${this.disabled}
30
+ @dataset-selected=${this._handleDatasetSelected}
31
+ @dataset-removed=${this._handleDatasetRemoved}
32
+ ></luzmo-dataset-selector-row>
31
33
 
32
- <textarea
33
- autofocus
34
- .placeholder=${this.placeholder}
35
- .value=${this._promptValue}
36
- @input=${this._handlePromptInput}
37
- @keydown=${this._handleKeyDown}
38
- rows="2"
39
- ></textarea>
34
+ <textarea
35
+ ?autofocus=${!this.disabled}
36
+ ?disabled=${this.disabled}
37
+ .placeholder=${this.placeholder}
38
+ .value=${this._promptValue}
39
+ @input=${this._handlePromptInput}
40
+ @keydown=${this._handleKeyDown}
41
+ rows="2"
42
+ ></textarea>
40
43
 
41
- <div class="button-container">
42
- <button
43
- class="btn btn-primary"
44
- ?disabled=${this._buttonDisabled}
45
- @click=${this._submitPrompt}
46
- >
47
- ${u.luzmoIcon(u.luzmoArrowRight)}
48
- </button>
44
+ <div class="button-container">
45
+ <button
46
+ class="btn btn-primary"
47
+ ?disabled=${this._buttonDisabled}
48
+ @click=${this._submitPrompt}
49
+ >
50
+ ${u.luzmoIcon(u.luzmoArrowRight)}
51
+ </button>
52
+ </div>
49
53
  </div>
50
- `}};exports.LuzmoAiInteractionTextarea.styles=l.unsafeCSS(m);exports.LuzmoAiInteractionTextarea.tagName="luzmo-ai-interaction-textarea";r([i.property({type:String})],exports.LuzmoAiInteractionTextarea.prototype,"placeholder",2);r([i.property({type:Array})],exports.LuzmoAiInteractionTextarea.prototype,"selectedDatasets",2);r([i.property({type:String,attribute:"auth-key"})],exports.LuzmoAiInteractionTextarea.prototype,"authKey",2);r([i.property({type:String,attribute:"auth-token"})],exports.LuzmoAiInteractionTextarea.prototype,"authToken",2);r([i.property({type:String,attribute:"api-url"})],exports.LuzmoAiInteractionTextarea.prototype,"apiUrl",2);r([i.property({type:String,attribute:"app-server"})],exports.LuzmoAiInteractionTextarea.prototype,"appServer",2);r([i.property({type:Boolean,attribute:"flag-opendata"})],exports.LuzmoAiInteractionTextarea.prototype,"flagOpendata",2);r([i.state()],exports.LuzmoAiInteractionTextarea.prototype,"_promptValue",2);r([i.state()],exports.LuzmoAiInteractionTextarea.prototype,"_isPromptValid",2);exports.LuzmoAiInteractionTextarea=r([d.localized()],exports.LuzmoAiInteractionTextarea);customElements.get("luzmo-ai-interaction-textarea")||customElements.define("luzmo-ai-interaction-textarea",exports.LuzmoAiInteractionTextarea);
54
+ `}};exports.LuzmoAiInteractionTextarea.styles=l.unsafeCSS(m);exports.LuzmoAiInteractionTextarea.tagName="luzmo-ai-interaction-textarea";e([o.property({type:String})],exports.LuzmoAiInteractionTextarea.prototype,"placeholder",2);e([o.property({type:Array})],exports.LuzmoAiInteractionTextarea.prototype,"selectedDatasets",2);e([o.property({type:String,attribute:"auth-key"})],exports.LuzmoAiInteractionTextarea.prototype,"authKey",2);e([o.property({type:String,attribute:"auth-token"})],exports.LuzmoAiInteractionTextarea.prototype,"authToken",2);e([o.property({type:String,attribute:"api-url"})],exports.LuzmoAiInteractionTextarea.prototype,"apiUrl",2);e([o.property({type:String,attribute:"app-server"})],exports.LuzmoAiInteractionTextarea.prototype,"appServer",2);e([o.property({type:Boolean,attribute:"flag-opendata"})],exports.LuzmoAiInteractionTextarea.prototype,"flagOpendata",2);e([o.property({type:Boolean,reflect:!0,attribute:"disabled"})],exports.LuzmoAiInteractionTextarea.prototype,"disabled",2);e([o.state()],exports.LuzmoAiInteractionTextarea.prototype,"_promptValue",2);e([o.state()],exports.LuzmoAiInteractionTextarea.prototype,"_isPromptValid",2);exports.LuzmoAiInteractionTextarea=e([d.localized()],exports.LuzmoAiInteractionTextarea);customElements.get("luzmo-ai-interaction-textarea")||customElements.define("luzmo-ai-interaction-textarea",exports.LuzmoAiInteractionTextarea);