@luzmo/analytics-components-kit 1.0.5 → 1.0.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 (359) hide show
  1. package/README.md +17 -4
  2. package/angular/components/data-fields-select.ts +7 -0
  3. package/angular/components/filter-item.ts +15 -0
  4. package/angular/components/filter-parameter-picker.ts +70 -18
  5. package/angular/components/filters.ts +46 -6
  6. package/angular/esm/components/data-fields-select.d.ts +3 -1
  7. package/angular/esm/components/data-fields-select.js +9 -1
  8. package/angular/esm/components/filter-item.d.ts +7 -1
  9. package/angular/esm/components/filter-item.js +18 -2
  10. package/angular/esm/components/filter-parameter-picker.d.ts +22 -7
  11. package/angular/esm/components/filter-parameter-picker.js +63 -22
  12. package/angular/esm/components/filters.d.ts +21 -7
  13. package/angular/esm/components/filters.js +41 -5
  14. package/angular/package.json +2 -2
  15. package/angular/utils/formula/store/formula-display-store.d.ts +6 -0
  16. package/components/ai-chat/index.cjs +1 -1
  17. package/components/ai-chat/index.js +3 -3
  18. package/components/{ai-chat-BtQaM37y.js → ai-chat-CDSRFmJK.js} +713 -677
  19. package/components/ai-chat-CVNU2mCV.cjs +319 -0
  20. package/components/ai-interaction-textarea/index.cjs +1 -1
  21. package/components/ai-interaction-textarea/index.js +2 -2
  22. package/components/{ai-interaction-textarea-CQBP9-DW.cjs → ai-interaction-textarea-BXDeplJF.cjs} +1 -1
  23. package/components/{ai-interaction-textarea-Bgd3y_cP.js → ai-interaction-textarea-BiMbUGCy.js} +3 -3
  24. package/components/{area-chart-positioning.config-QGEo5sr-.js → area-chart-positioning.config-SLtTkKJB.js} +1 -1
  25. package/components/{area-chart-positioning.config-1YVSxjRa.cjs → area-chart-positioning.config-dwRUFC--.cjs} +1 -1
  26. package/components/{bar-chart-positioning.config-Cs56EAWY.cjs → bar-chart-positioning.config-CcQ2iQdl.cjs} +1 -1
  27. package/components/{bar-chart-positioning.config-KLzBnoCu.js → bar-chart-positioning.config-Ch4sVyJS.js} +1 -1
  28. package/components/{base-DMQUzJ4L.js → base-2sulw8ws.js} +1 -1
  29. package/components/{base-DRFleWoz.cjs → base-DYRe99_q.cjs} +1 -1
  30. package/components/{box-plot-positioning.config-DKGY1Qqb.js → box-plot-positioning.config-Bb7r-Rfl.js} +1 -1
  31. package/components/{box-plot-positioning.config-BpDEb4Uo.cjs → box-plot-positioning.config-Dwtiqho4.cjs} +1 -1
  32. package/components/{bubble-chart-positioning.config-BZsvCSyT.cjs → bubble-chart-positioning.config-Bp_l4Cw1.cjs} +1 -1
  33. package/components/{bubble-chart-positioning.config-CL3mDsC-.js → bubble-chart-positioning.config-Q7mIfpcz.js} +1 -1
  34. package/components/{bullet-chart-positioning.config-DxXEGnbz.js → bullet-chart-positioning.config-B7aXCajU.js} +1 -1
  35. package/components/{bullet-chart-positioning.config-DA-1zmsD.cjs → bullet-chart-positioning.config-sj7E3xEM.cjs} +1 -1
  36. package/components/{choropleth-map-positioning.config-BicHLfN0.js → choropleth-map-positioning.config-CtoJov9H.js} +1 -1
  37. package/components/{choropleth-map-positioning.config-D_1MCD5i.cjs → choropleth-map-positioning.config-DM-iNbgs.cjs} +1 -1
  38. package/components/{circle-pack-chart-positioning.config-a_vo4VFg.js → circle-pack-chart-positioning.config-BgxnBOQT.js} +1 -1
  39. package/components/{circle-pack-chart-positioning.config-oTUkvFFJ.cjs → circle-pack-chart-positioning.config-Cs9xMDpi.cjs} +1 -1
  40. package/components/{circular-gauge-positioning.config-TG1wPyHz.cjs → circular-gauge-positioning.config-Bzulob5F.cjs} +1 -1
  41. package/components/{circular-gauge-positioning.config-BEM85XhO.js → circular-gauge-positioning.config-FEkbw6hK.js} +1 -1
  42. package/components/{column-chart-positioning.config-D1kXKreT.cjs → column-chart-positioning.config-9ho9oUo8.cjs} +1 -1
  43. package/components/{column-chart-positioning.config-x-wEIoTZ.js → column-chart-positioning.config-BeVOSQaJ.js} +1 -1
  44. package/components/{combination-chart-positioning.config-COksdK7F.cjs → combination-chart-positioning.config-CaShl4vv.cjs} +1 -1
  45. package/components/{combination-chart-positioning.config-DLyPa1Im.js → combination-chart-positioning.config-D4VUK54k.js} +1 -1
  46. package/components/{conditional-number-positioning.config-5SBhp4Kh.cjs → conditional-number-positioning.config-BEMjjhdi.cjs} +1 -1
  47. package/components/{conditional-number-positioning.config-6ZQHIgAA.js → conditional-number-positioning.config-C-LpjCJN.js} +1 -1
  48. package/components/data-field/index.cjs +1 -1
  49. package/components/data-field/index.js +2 -2
  50. package/components/{data-field-D1lrRnLX.js → data-field-Dz0XFrep.js} +3 -3
  51. package/components/{data-field-D050EJkx.cjs → data-field-lGJ557o4.cjs} +1 -1
  52. package/components/data-field-level/index.cjs +1 -1
  53. package/components/data-field-level/index.js +2 -2
  54. package/components/{data-field-level-CKlijSjc.cjs → data-field-level-B9r4ucP6.cjs} +1 -1
  55. package/components/{data-field-level-Da8Pwva2.js → data-field-level-DJoidlHN.js} +1 -1
  56. package/components/data-field-panel/index.cjs +1 -1
  57. package/components/data-field-panel/index.js +2 -2
  58. package/components/{data-field-panel-47PGrrIi.cjs → data-field-panel-BzyjbJO5.cjs} +1 -1
  59. package/components/{data-field-panel-CgqJ1bLg.js → data-field-panel-CdeJxZCr.js} +3 -3
  60. package/components/data-fields-select/data-fields-select.d.ts +6 -0
  61. package/components/data-fields-select/index.cjs +1 -1
  62. package/components/data-fields-select/index.js +2 -2
  63. package/components/data-fields-select-BBzzUG2u.cjs +41 -0
  64. package/components/{data-fields-select-B40TXGd7.js → data-fields-select-BRBBrS-x.js} +23 -5
  65. package/components/dataset-icon/index.js +1 -1
  66. package/components/dataset-selector-list/index.cjs +1 -1
  67. package/components/dataset-selector-list/index.js +2 -2
  68. package/components/{dataset-selector-list-C0dheupb.js → dataset-selector-list-DGCh1bvb.js} +1 -1
  69. package/components/{dataset-selector-list-CKQ7OgMN.cjs → dataset-selector-list-xF3yKGan.cjs} +1 -1
  70. package/components/dataset-selector-row/index.cjs +1 -1
  71. package/components/dataset-selector-row/index.js +2 -2
  72. package/components/{dataset-selector-row-DP6QUWYs.js → dataset-selector-row-BbnjxfIz.js} +1 -1
  73. package/components/{dataset-selector-row-_FZPTBE1.cjs → dataset-selector-row-fmrY3y86.cjs} +1 -1
  74. package/components/de-BzcAVqyW.cjs +20 -0
  75. package/components/{de-CPcJgwTx.js → de-CRrCVuH7.js} +15 -0
  76. package/components/display-settings/index.cjs +1 -1
  77. package/components/display-settings/index.js +2 -2
  78. package/components/{display-settings-B-eamVdN.js → display-settings-C9OQ4Eou.js} +3 -3
  79. package/components/display-settings-binning/index.cjs +1 -1
  80. package/components/display-settings-binning/index.js +2 -2
  81. package/components/{display-settings-binning-BGtp0Wvl.js → display-settings-binning-B8E2H5cY.js} +2 -2
  82. package/components/{display-settings-binning-Cs8MS7BY.cjs → display-settings-binning-BBNL97l9.cjs} +1 -1
  83. package/components/display-settings-datetime/index.cjs +1 -1
  84. package/components/display-settings-datetime/index.js +2 -2
  85. package/components/{display-settings-datetime-CbTnG486.js → display-settings-datetime-BBzvzwl5.js} +2 -2
  86. package/components/{display-settings-datetime-q20qbrOL.cjs → display-settings-datetime-czjk5Msv.cjs} +1 -1
  87. package/components/display-settings-eSQCidqh.cjs +140 -0
  88. package/components/display-settings-grand-totals/index.cjs +1 -1
  89. package/components/display-settings-grand-totals/index.js +2 -2
  90. package/components/{display-settings-grand-totals-BDeeC6-h.js → display-settings-grand-totals-CF01m8x-.js} +2 -2
  91. package/components/{display-settings-grand-totals-DdEXs_mA.cjs → display-settings-grand-totals-RwMnGwFZ.cjs} +1 -1
  92. package/components/display-settings-numeric/index.cjs +1 -1
  93. package/components/display-settings-numeric/index.js +2 -2
  94. package/components/{display-settings-numeric-C5FlahN_.js → display-settings-numeric-BcpwYX16.js} +2 -2
  95. package/components/{display-settings-numeric-PtcxP80Z.cjs → display-settings-numeric-C4X7oOEU.cjs} +1 -1
  96. package/components/display-settings-period-over-period/index.cjs +1 -1
  97. package/components/display-settings-period-over-period/index.js +2 -2
  98. package/components/{display-settings-period-over-period-CUlsSQZv.js → display-settings-period-over-period-B8UNYZ0I.js} +2 -2
  99. package/components/{display-settings-period-over-period-Csv7Kwri.cjs → display-settings-period-over-period-BG9YAcCw.cjs} +1 -1
  100. package/components/{donut-chart-positioning.config-EudGY45O.js → donut-chart-positioning.config-CaADC7Qr.js} +1 -1
  101. package/components/{donut-chart-positioning.config-m_uVKoNn.cjs → donut-chart-positioning.config-Dfws3ojS.cjs} +1 -1
  102. package/components/{es-fXPjX3vY.js → es-BIgv-ijQ.js} +15 -0
  103. package/components/es-mPmtD7j4.cjs +20 -0
  104. package/components/{evolution-number-positioning.config-BcLsEydB.js → evolution-number-positioning.config-C-OV1wpL.js} +1 -1
  105. package/components/{evolution-number-positioning.config-CJii0q3V.cjs → evolution-number-positioning.config-CI_2m2Sr.cjs} +1 -1
  106. package/components/filter-expression-picker/index.cjs +1 -1
  107. package/components/filter-expression-picker/index.js +2 -2
  108. package/components/{filter-expression-picker-nW1Hff7C.js → filter-expression-picker-CH2Fna8C.js} +1 -1
  109. package/components/{filter-expression-picker-D28THjzU.cjs → filter-expression-picker-_mfcXZ-n.cjs} +1 -1
  110. package/components/filter-item/filter-item.d.ts +15 -0
  111. package/components/filter-item/index.cjs +1 -1
  112. package/components/filter-item/index.js +2 -2
  113. package/components/filter-item-5HCSM9cu.cjs +71 -0
  114. package/components/{filter-item-BoYKU9tK.js → filter-item-CL3S9HOx.js} +100 -41
  115. package/components/filter-parameter-picker/filter-parameter-picker.d.ts +71 -9
  116. package/components/filter-parameter-picker/filter-parameter-picker.helpers.d.ts +8 -0
  117. package/components/filter-parameter-picker/index.cjs +1 -3
  118. package/components/filter-parameter-picker/index.d.ts +2 -0
  119. package/components/filter-parameter-picker/index.js +3 -33
  120. package/components/filter-parameter-picker/types.d.ts +4 -0
  121. package/components/filter-parameter-picker-CU48aEOS.js +363 -0
  122. package/components/filter-parameter-picker-CxbAY5hy.cjs +123 -0
  123. package/components/filter-value-picker/filter-value-picker.d.ts +1 -0
  124. package/components/filter-value-picker/index.cjs +1 -1
  125. package/components/filter-value-picker/index.js +2 -2
  126. package/components/{filter-value-picker-1kMJ9slB.js → filter-value-picker-CD8DjcHo.js} +5 -5
  127. package/components/{filter-value-picker-D08bAAKt.cjs → filter-value-picker-CRrUhngj.cjs} +1 -1
  128. package/components/filter-value-picker-datetime/filter-value-picker-datetime.d.ts +2 -0
  129. package/components/filter-value-picker-datetime/index.cjs +1 -1
  130. package/components/filter-value-picker-datetime/index.js +2 -2
  131. package/components/{filter-value-picker-datetime-Cnwlipah.js → filter-value-picker-datetime-DS7IK9aN.js} +2 -2
  132. package/components/{filter-value-picker-datetime-OIgFSdU2.cjs → filter-value-picker-datetime-dXaHpCRX.cjs} +1 -1
  133. package/components/filter-value-picker-hierarchy/filter-value-picker-hierarchy.d.ts +2 -0
  134. package/components/filter-value-picker-hierarchy/index.cjs +1 -1
  135. package/components/filter-value-picker-hierarchy/index.js +2 -2
  136. package/components/{filter-value-picker-hierarchy-DdMLbCO3.js → filter-value-picker-hierarchy-k0T56CvH.js} +3 -3
  137. package/components/{filter-value-picker-hierarchy-BGgHIji-.cjs → filter-value-picker-hierarchy-kwnEzxIk.cjs} +1 -1
  138. package/components/filter-value-picker-numeric/filter-value-picker-numeric.d.ts +1 -0
  139. package/components/filter-value-picker-numeric/index.cjs +1 -1
  140. package/components/filter-value-picker-numeric/index.js +2 -2
  141. package/components/{filter-value-picker-numeric-BL2gD2ED.cjs → filter-value-picker-numeric-BVei4Vlc.cjs} +1 -1
  142. package/components/{filter-value-picker-numeric-BqrsENh6.js → filter-value-picker-numeric-BaQe4r82.js} +2 -2
  143. package/components/filters/filters.d.ts +38 -4
  144. package/components/filters/index.cjs +1 -1
  145. package/components/filters/index.d.ts +4 -1
  146. package/components/filters/index.js +3 -3
  147. package/components/filters/transformations/clean-filters.d.ts +37 -0
  148. package/components/filters/transformations/filter-format.d.ts +54 -0
  149. package/components/filters/transformations/transform-filters.d.ts +27 -12
  150. package/components/filters/types.d.ts +48 -3
  151. package/components/filters-B70hF2NT.js +742 -0
  152. package/components/filters-ms2gFstA.cjs +153 -0
  153. package/components/formula/index.cjs +1 -1
  154. package/components/formula/index.js +2 -2
  155. package/components/{formula-CNzBOTRQ.js → formula-DdgD312W.js} +2 -2
  156. package/components/{formula-codemirror-pnijOvXU.js → formula-codemirror-D3Z1Qa0J.js} +4 -4
  157. package/components/{formula-codemirror-D1hgPIW_.cjs → formula-codemirror-GoFCSp6r.cjs} +1 -1
  158. package/components/{formula-display-store-BBMmHCRp.js → formula-display-store-bPGDv_xk.js} +10 -7
  159. package/components/formula-display-store-eE3zaCyB.cjs +20 -0
  160. package/components/formula-editor/index.cjs +1 -1
  161. package/components/formula-editor/index.js +4 -4
  162. package/components/{formula-editor-Uejdzkm6.cjs → formula-editor-8wWzGGJr.cjs} +1 -1
  163. package/components/{formula-editor-DvDB6JYI.js → formula-editor-BnWiiFr5.js} +5 -5
  164. package/components/formula-field/index.cjs +1 -1
  165. package/components/formula-field/index.js +2 -2
  166. package/components/{formula-field-o_zZQACN.js → formula-field-DlEgUu58.js} +1 -1
  167. package/components/{formula-field-CNyKz9wY.cjs → formula-field-IHf6I8mL.cjs} +1 -1
  168. package/components/{formula-DeRjtboJ.cjs → formula-glPlLx_5.cjs} +1 -1
  169. package/components/{formula-input-base-DlVNZBUA.js → formula-input-base-7I069pOJ.js} +1 -1
  170. package/components/{formula-input-base-fTF1KXpl.cjs → formula-input-base-D5yx7RYX.cjs} +1 -1
  171. package/components/fr-BHUhOl6R.cjs +20 -0
  172. package/components/{fr-B50vb6LP.js → fr-CI9fC-NM.js} +15 -0
  173. package/components/{funnel-chart-positioning.config-B_C8nr1y.js → funnel-chart-positioning.config-CNEeOwuT.js} +1 -1
  174. package/components/{funnel-chart-positioning.config-DhrMsuyt.cjs → funnel-chart-positioning.config-Cz8gQRh_.cjs} +1 -1
  175. package/components/{get-dataset-name-DrTVBElb.cjs → get-dataset-name-Bae0I2_J.cjs} +1 -1
  176. package/components/{get-dataset-name-DYLJB67F.js → get-dataset-name-OJK38mEs.js} +1 -1
  177. package/components/{groupings-BPlu4GFe.cjs → groupings-B0qMZHSd.cjs} +1 -1
  178. package/components/{groupings-DAj2iFeA.js → groupings-BZJTnpwR.js} +1 -1
  179. package/components/{heat-map-positioning.config-Bya2_TR8.cjs → heat-map-positioning.config-CEH6qyrN.cjs} +1 -1
  180. package/components/{heat-map-positioning.config-Cxembqle.js → heat-map-positioning.config-D-Ba4Ts_.js} +1 -1
  181. package/components/{heat-table-positioning.config-CNeTnuHy.js → heat-table-positioning.config-DCnowqOc.js} +1 -1
  182. package/components/{heat-table-positioning.config-CYZr5ksc.cjs → heat-table-positioning.config-DWNETZMx.cjs} +1 -1
  183. package/components/{hexbin-map-positioning.config-Dfdgub0y.js → hexbin-map-positioning.config-Br0pjvMN.js} +1 -1
  184. package/components/{hexbin-map-positioning.config-bXZEY4nP.cjs → hexbin-map-positioning.config-DoiUVZ8h.cjs} +1 -1
  185. package/components/index.cjs +1 -1
  186. package/components/index.js +64 -63
  187. package/components/interactive-viz-item/index.cjs +1 -1
  188. package/components/interactive-viz-item/index.js +2 -2
  189. package/components/{interactive-viz-item-D-hR2G5x.cjs → interactive-viz-item-DZoRqeJW.cjs} +1 -1
  190. package/components/{interactive-viz-item-C3fzZq7j.js → interactive-viz-item-Dogksvpq.js} +5 -5
  191. package/components/item-grid/index.cjs +1 -1
  192. package/components/item-grid/index.js +2 -2
  193. package/components/{item-grid-BruAZOla.cjs → item-grid-VPRvzGCa.cjs} +1 -1
  194. package/components/{item-grid-cyMiRw7P.js → item-grid-ZQpp1brq.js} +1 -1
  195. package/components/item-option/index.cjs +1 -1
  196. package/components/item-option/index.js +2 -2
  197. package/components/{item-option-CZb01VJb.js → item-option-B9tALelF.js} +1 -1
  198. package/components/{item-option-BclNWwdZ.cjs → item-option-BRgOBMM0.cjs} +1 -1
  199. package/components/item-option-action-button-group/index.cjs +1 -1
  200. package/components/item-option-action-button-group/index.js +2 -2
  201. package/components/{item-option-action-button-group-AkMaJHuv.cjs → item-option-action-button-group-BYE7i8Zd.cjs} +1 -1
  202. package/components/{item-option-action-button-group-HfUtaTi9.js → item-option-action-button-group-WrHKP761.js} +1 -1
  203. package/components/{item-option-base-CZegYACf.cjs → item-option-base-CTBIeARi.cjs} +1 -1
  204. package/components/{item-option-base-DlHZAfWZ.js → item-option-base-CuxvyS-a.js} +1 -1
  205. package/components/item-option-color-palette-picker/index.cjs +1 -1
  206. package/components/item-option-color-palette-picker/index.js +2 -2
  207. package/components/{item-option-color-palette-picker-B336qQRk.cjs → item-option-color-palette-picker-CyailqDd.cjs} +1 -1
  208. package/components/{item-option-color-palette-picker-Dt4z0c4W.js → item-option-color-palette-picker-eYAyoXM1.js} +1 -1
  209. package/components/item-option-color-picker/index.cjs +1 -1
  210. package/components/item-option-color-picker/index.js +2 -2
  211. package/components/{item-option-color-picker-BRO416_T.js → item-option-color-picker-D_x6FgZy.js} +1 -1
  212. package/components/{item-option-color-picker-Hfu2fhRF.cjs → item-option-color-picker-DsfZKPDo.cjs} +1 -1
  213. package/components/item-option-color-range/index.cjs +1 -1
  214. package/components/item-option-color-range/index.js +2 -2
  215. package/components/{item-option-color-range-DgalNZ9b.js → item-option-color-range-CHSbql1w.js} +1 -1
  216. package/components/{item-option-color-range-DWoaz57E.cjs → item-option-color-range-tAMMKg6y.cjs} +1 -1
  217. package/components/item-option-multi-language-field/index.cjs +1 -1
  218. package/components/item-option-multi-language-field/index.js +2 -2
  219. package/components/{item-option-multi-language-field-BvJXIFgu.js → item-option-multi-language-field-D51cJ4BM.js} +1 -1
  220. package/components/{item-option-multi-language-field-IQP6fbgB.cjs → item-option-multi-language-field-DjWm-jWC.cjs} +1 -1
  221. package/components/item-option-number-field/index.cjs +1 -1
  222. package/components/item-option-number-field/index.js +2 -2
  223. package/components/{item-option-number-field-B07NhNSm.cjs → item-option-number-field-Dep43Ym5.cjs} +1 -1
  224. package/components/{item-option-number-field-CvGknDpu.js → item-option-number-field-Df56sivV.js} +1 -1
  225. package/components/item-option-panel/index.cjs +1 -1
  226. package/components/item-option-panel/index.js +2 -2
  227. package/components/{item-option-panel-RYdx8Hfk.js → item-option-panel-BYCfnDeP.js} +3 -3
  228. package/components/{item-option-panel-BWP9E8cW.cjs → item-option-panel-ClDspg51.cjs} +1 -1
  229. package/components/item-option-picker/index.cjs +1 -1
  230. package/components/item-option-picker/index.js +2 -2
  231. package/components/{item-option-picker-DM1pU3w9.js → item-option-picker-BCsB7psT.js} +1 -1
  232. package/components/{item-option-picker-C7SZfnLP.cjs → item-option-picker-CBfFgSKs.cjs} +1 -1
  233. package/components/item-option-position-picker/index.cjs +1 -1
  234. package/components/item-option-position-picker/index.js +2 -2
  235. package/components/{item-option-position-picker-BuDvx3SX.js → item-option-position-picker-CXJGmmWF.js} +1 -1
  236. package/components/{item-option-position-picker-M9CBH9NE.cjs → item-option-position-picker-CYoOkH1m.cjs} +1 -1
  237. package/components/item-option-positions-number-field/index.cjs +1 -1
  238. package/components/item-option-positions-number-field/index.js +2 -2
  239. package/components/{item-option-positions-number-field-C4zW5-Hc.cjs → item-option-positions-number-field-CNUCVm78.cjs} +1 -1
  240. package/components/{item-option-positions-number-field-RN5AG-Ic.js → item-option-positions-number-field-CkfSHCFO.js} +1 -1
  241. package/components/item-option-radio-button-group/index.cjs +1 -1
  242. package/components/item-option-radio-button-group/index.js +2 -2
  243. package/components/{item-option-radio-button-group-Ce780UyR.js → item-option-radio-button-group-CSyh4eS2.js} +1 -1
  244. package/components/{item-option-radio-button-group-DRiwqorh.cjs → item-option-radio-button-group-ZIvbpJf9.cjs} +1 -1
  245. package/components/item-option-slider/index.cjs +1 -1
  246. package/components/item-option-slider/index.js +2 -2
  247. package/components/item-option-slider/item-option-slider.d.ts +5 -0
  248. package/components/{item-option-slider-BUdWMAzT.js → item-option-slider-CTt5aYbb.js} +31 -16
  249. package/components/{item-option-slider-CycHQFnr.cjs → item-option-slider-CaxIGDWN.cjs} +3 -3
  250. package/components/item-option-switch/index.cjs +1 -1
  251. package/components/item-option-switch/index.js +2 -2
  252. package/components/{item-option-switch-CvcZSytb.js → item-option-switch-B91r65eW.js} +1 -1
  253. package/components/{item-option-switch-CM5R8wO_.cjs → item-option-switch-wEx5JkSe.cjs} +1 -1
  254. package/components/item-option-text-field/index.cjs +1 -1
  255. package/components/item-option-text-field/index.js +2 -2
  256. package/components/{item-option-text-field-BZjOilSu.cjs → item-option-text-field-BLcYkH-j.cjs} +1 -1
  257. package/components/{item-option-text-field-CyuYUITv.js → item-option-text-field-BvSCGhuH.js} +1 -1
  258. package/components/item-slot-drop/index.cjs +1 -1
  259. package/components/item-slot-drop/index.js +2 -2
  260. package/components/{item-slot-drop-C6DO5mPk.js → item-slot-drop-Box1wnvM.js} +5 -5
  261. package/components/{item-slot-drop-CrzFRobc.cjs → item-slot-drop-n-lD8Zyh.cjs} +1 -1
  262. package/components/item-slot-drop-panel/index.cjs +1 -1
  263. package/components/item-slot-drop-panel/index.js +2 -2
  264. package/components/{item-slot-drop-panel-DvmPk1pJ.js → item-slot-drop-panel-KtZKw0Ly.js} +39 -39
  265. package/components/{item-slot-drop-panel-ChazcNSe.cjs → item-slot-drop-panel-sCkQ0dUU.cjs} +1 -1
  266. package/components/item-slot-picker/index.cjs +1 -1
  267. package/components/item-slot-picker/index.js +2 -2
  268. package/components/{item-slot-picker-CmG71mGy.js → item-slot-picker-Cm8o4A00.js} +6 -6
  269. package/components/{item-slot-picker-DQkG3Lt7.cjs → item-slot-picker-DKPE2NQn.cjs} +1 -1
  270. package/components/item-slot-picker-panel/index.cjs +1 -1
  271. package/components/item-slot-picker-panel/index.js +2 -2
  272. package/components/{item-slot-picker-panel-Bi2jXvQA.cjs → item-slot-picker-panel-DK5jRBYs.cjs} +1 -1
  273. package/components/{item-slot-picker-panel-DmGYI5YI.js → item-slot-picker-panel-DOHi_8UO.js} +3 -3
  274. package/components/{line-chart-positioning.config-Cqnfz4Lc.cjs → line-chart-positioning.config-C05IZ4Jj.cjs} +1 -1
  275. package/components/{line-chart-positioning.config-CFHFq0wp.js → line-chart-positioning.config-DQfyOkWV.js} +1 -1
  276. package/components/{localized-mixin-CUuRZu9t.cjs → localized-mixin-BForHr3t.cjs} +1 -1
  277. package/components/{localized-mixin-B4fDdsF0.js → localized-mixin-D-vXCJuU.js} +1 -1
  278. package/components/{marker-map-positioning.config-x3KUsgzD.js → marker-map-positioning.config-CD7n0uLB.js} +1 -1
  279. package/components/{marker-map-positioning.config-BM-ZrmE9.cjs → marker-map-positioning.config-DOhXf-CR.cjs} +1 -1
  280. package/components/{nl-Do6FfV7U.js → nl-HLnZHvTS.js} +15 -0
  281. package/components/nl-NxeHJ8X8.cjs +20 -0
  282. package/components/{ohlc-chart-positioning.config-C-vx6lt-.js → ohlc-chart-positioning.config-Bl-ckdlQ.js} +1 -1
  283. package/components/{ohlc-chart-positioning.config-SIhJhFel.cjs → ohlc-chart-positioning.config-CDf77OgH.cjs} +1 -1
  284. package/components/{parallel-coordinates-plot-positioning.config-Br1OGTEZ.cjs → parallel-coordinates-plot-positioning.config-DfsKsUdv.cjs} +1 -1
  285. package/components/{parallel-coordinates-plot-positioning.config-BaofZgit.js → parallel-coordinates-plot-positioning.config-Tbzzr5L6.js} +1 -1
  286. package/components/{pivot-table-positioning.config-BaBkuXV0.cjs → pivot-table-positioning.config-DwuKN2xz.cjs} +1 -1
  287. package/components/{pivot-table-positioning.config-DeeS1MaO.js → pivot-table-positioning.config-_YDPeFQz.js} +1 -1
  288. package/components/{pyramid-chart-positioning.config-g55mkotb.cjs → pyramid-chart-positioning.config-7AJy2_zR.cjs} +1 -1
  289. package/components/{pyramid-chart-positioning.config-D14NnyH1.js → pyramid-chart-positioning.config-Btm_8m46.js} +1 -1
  290. package/components/{radar-chart-positioning.config-CWGfQ7-j.cjs → radar-chart-positioning.config-7Kx_uKbW.cjs} +1 -1
  291. package/components/{radar-chart-positioning.config-C9fiYOnB.js → radar-chart-positioning.config-DWziVqMW.js} +1 -1
  292. package/components/{route-map-positioning.config-Cd4azpuW.js → route-map-positioning.config-C4-2zLGp.js} +1 -1
  293. package/components/{route-map-positioning.config-Dswq4pH_.cjs → route-map-positioning.config-DDgEAW4k.cjs} +1 -1
  294. package/components/{sankey-diagram-positioning.config-CAHzdKBq.cjs → sankey-diagram-positioning.config-BxVJaOKN.cjs} +1 -1
  295. package/components/{sankey-diagram-positioning.config-CzGCvTeX.js → sankey-diagram-positioning.config-DQcUg8Cg.js} +1 -1
  296. package/components/{scatter-plot-positioning.config-CrVJZ-X9.cjs → scatter-plot-positioning.config-D3xI_5P8.cjs} +1 -1
  297. package/components/{scatter-plot-positioning.config-C7nu7quv.js → scatter-plot-positioning.config-DOgeShUF.js} +1 -1
  298. package/components/{set-locale-DBVSKk_b.js → set-locale-D9gR8t-s.js} +4 -4
  299. package/components/{set-locale-1r0lDa7J.cjs → set-locale-MQpiifTB.cjs} +1 -1
  300. package/components/{slicer-filter-positioning.config-7sucz3_y.js → slicer-filter-positioning.config-CiHfPrM5.js} +1 -1
  301. package/components/{slicer-filter-positioning.config-D9Tehydc.cjs → slicer-filter-positioning.config-bN36DdLc.cjs} +1 -1
  302. package/components/slot-menu/index.cjs +1 -1
  303. package/components/slot-menu/index.js +2 -2
  304. package/components/{slot-menu-AavTGkLk.cjs → slot-menu-K5QiEu6o.cjs} +1 -1
  305. package/components/{slot-menu-Dz-O1ypQ.js → slot-menu-Qy35BZZ_.js} +3 -3
  306. package/components/slot-menu-list/index.cjs +1 -1
  307. package/components/slot-menu-list/index.js +2 -2
  308. package/components/{slot-menu-list-BegM0w8C.js → slot-menu-list-BKMbIFg1.js} +1 -1
  309. package/components/{slot-menu-list-Cahst0TY.cjs → slot-menu-list-DmQe7882.cjs} +1 -1
  310. package/components/{speedometer-chart-positioning.config-DiDSe44G.js → speedometer-chart-positioning.config-B7M91sKN.js} +1 -1
  311. package/components/{speedometer-chart-positioning.config-CZgXkEsG.cjs → speedometer-chart-positioning.config-Ce70l0Ei.cjs} +1 -1
  312. package/components/{spike-map-positioning.config-RExJASrJ.cjs → spike-map-positioning.config-D3wIf0RU.cjs} +1 -1
  313. package/components/{spike-map-positioning.config-W-xJbchu.js → spike-map-positioning.config-Qf4LOPvB.js} +1 -1
  314. package/components/{strip-plot-positioning.config-C70pTRqg.cjs → strip-plot-positioning.config-BIoncLjm.cjs} +1 -1
  315. package/components/{strip-plot-positioning.config-DsKb9ton.js → strip-plot-positioning.config-MbfBVHf8.js} +1 -1
  316. package/components/{sunburst-chart-positioning.config-BAhEnZtE.js → sunburst-chart-positioning.config-CqyXZPxE.js} +1 -1
  317. package/components/{sunburst-chart-positioning.config-BHvaDZCC.cjs → sunburst-chart-positioning.config-zqPLL8yF.cjs} +1 -1
  318. package/components/{symbol-map-positioning.config-B2RZQPND.cjs → symbol-map-positioning.config-CQ4Vxu96.cjs} +1 -1
  319. package/components/{symbol-map-positioning.config-DNPiG975.js → symbol-map-positioning.config-plXDTBA3.js} +1 -1
  320. package/components/{treemap-chart-positioning.config-C0LbkC6B.js → treemap-chart-positioning.config-BTGBN1f9.js} +1 -1
  321. package/components/{treemap-chart-positioning.config-CIYguC9V.cjs → treemap-chart-positioning.config-CSZXzuT5.cjs} +1 -1
  322. package/components/utils/base.cjs +1 -1
  323. package/components/utils/base.js +2 -2
  324. package/components/{utils-Cx4X0PBr.cjs → utils-BDvDwAn7.cjs} +1 -1
  325. package/components/{utils-C8ATDm66.js → utils-Z9xbTTWG.js} +1 -1
  326. package/components/utils.cjs +1 -1
  327. package/components/utils.js +2 -2
  328. package/components/{venn-diagram-positioning.config-CGmfYuoj.cjs → venn-diagram-positioning.config-C4vcZDtW.cjs} +1 -1
  329. package/components/{venn-diagram-positioning.config-CPUT2LXS.js → venn-diagram-positioning.config-fPvrjtfX.js} +1 -1
  330. package/components/viz-item-menu/index.cjs +1 -1
  331. package/components/viz-item-menu/index.js +2 -2
  332. package/components/{viz-item-menu-BKXdr3_Q.cjs → viz-item-menu-DxA295eM.cjs} +1 -1
  333. package/components/{viz-item-menu-XoCSn7z_.js → viz-item-menu-vckPQBdf.js} +1 -1
  334. package/components/{wordcloud-chart-positioning.config-roHRUT_m.cjs → wordcloud-chart-positioning.config-Cf1ErL-B.cjs} +1 -1
  335. package/components/{wordcloud-chart-positioning.config-CqCOWKL4.js → wordcloud-chart-positioning.config-ChUx_Ahc.js} +1 -1
  336. package/custom-elements.json +1325 -122
  337. package/index.d.ts +1 -0
  338. package/package.json +5 -5
  339. package/react/components/filter-parameter-picker.component.ts +15 -4
  340. package/react/components/filters.component.ts +9 -3
  341. package/react/esm/components/filter-parameter-picker.component.d.ts +11 -3
  342. package/react/esm/components/filter-parameter-picker.component.js +9 -1
  343. package/react/esm/components/filters.component.d.ts +10 -2
  344. package/react/esm/components/filters.component.js +6 -2
  345. package/react/luzmo-stub.d.ts +2 -1
  346. package/react/package.json +2 -2
  347. package/storybook/register-components.d.ts +18 -13
  348. package/utils/formula/store/formula-display-store.d.ts +6 -0
  349. package/components/ai-chat-CBLWbv9C.cjs +0 -319
  350. package/components/data-fields-select-CQVqxMCS.cjs +0 -41
  351. package/components/de-CFFG1QN7.cjs +0 -20
  352. package/components/display-settings-1AdcENcv.cjs +0 -140
  353. package/components/es-Bd7rtLnM.cjs +0 -20
  354. package/components/filter-item-BirgEXGE.cjs +0 -58
  355. package/components/filters-BLss6wBx.js +0 -407
  356. package/components/filters-rjc5xsF_.cjs +0 -150
  357. package/components/formula-display-store-Dn7r5kK8.cjs +0 -20
  358. package/components/fr-kmzf1vls.cjs +0 -20
  359. package/components/nl-FcPtgtcL.cjs +0 -20
@@ -1,4 +1,4 @@
1
- import { booleanAttribute, ChangeDetectionStrategy, Component, DestroyRef, ElementRef, inject, Input, Renderer2 } from '@angular/core';
1
+ import { booleanAttribute, ChangeDetectionStrategy, Component, DestroyRef, ElementRef, inject, Input, output, Renderer2 } from '@angular/core';
2
2
  import '@luzmo/analytics-components-kit/filter-parameter-picker';
3
3
  import * as i0 from "@angular/core";
4
4
  const _c0 = ["*"];
@@ -15,18 +15,30 @@ export class LuzmoFilterParameterPicker {
15
15
  get nativeElement() {
16
16
  return this.host;
17
17
  }
18
- /** The language of the settings interface */
18
+ /** Parameter definitions available for selection. */
19
+ parameters;
20
+ /** Parameter types compatible with the active field and expression. */
21
+ allowedTypes;
22
+ /** The parameter currently attached to the filter. */
23
+ selectedParameter;
24
+ /** The current literal filter value used as the default for a new parameter. */
25
+ currentValue;
26
+ /** Whether parameter selection is disabled. */
27
+ disabled;
28
+ /** The language for UI labels. Supported values: 'en', 'nl', 'fr', 'de', 'es' */
19
29
  language;
20
- /** The language to use for locale-aware formatting and labels */
21
- contentLanguage;
22
30
  /** The size of the element */
23
31
  size;
24
- /** Disable this control. It will not receive focus or events */
25
- disabled;
26
32
  /** When this control is rendered, focus it automatically */
27
33
  autofocus;
28
34
  /** The tab index to apply to this control. See general documentation about the tabindex HTML property */
29
35
  tabIndex;
36
+ /** Fired when a parameter is selected. */
37
+ luzmoParameterSelected = output({ alias: 'luzmoParameterSelected' });
38
+ /** Fired when a parameter is created. */
39
+ luzmoParameterCreated = output({ alias: 'luzmoParameterCreated' });
40
+ /** Fired when a parameter is detached from the filter. */
41
+ luzmoParameterRemoved = output({ alias: 'luzmoParameterRemoved' });
30
42
  constructor() {
31
43
  this.bindEvents();
32
44
  this.destroyRef.onDestroy(() => {
@@ -38,18 +50,27 @@ export class LuzmoFilterParameterPicker {
38
50
  ngOnChanges(changes) {
39
51
  for (const key of Object.keys(changes)) {
40
52
  switch (key) {
41
- case 'language':
42
- this.setHostProperty('language', changes['language'].currentValue);
53
+ case 'parameters':
54
+ this.setHostProperty('parameters', changes['parameters'].currentValue);
43
55
  break;
44
- case 'contentLanguage':
45
- this.setHostProperty('contentLanguage', changes['contentLanguage'].currentValue);
56
+ case 'allowedTypes':
57
+ this.setHostProperty('allowedTypes', changes['allowedTypes'].currentValue);
46
58
  break;
47
- case 'size':
48
- this.setHostProperty('size', changes['size'].currentValue);
59
+ case 'selectedParameter':
60
+ this.setHostProperty('selectedParameter', changes['selectedParameter'].currentValue);
61
+ break;
62
+ case 'currentValue':
63
+ this.setHostProperty('currentValue', changes['currentValue'].currentValue);
49
64
  break;
50
65
  case 'disabled':
51
66
  this.setHostProperty('disabled', changes['disabled'].currentValue);
52
67
  break;
68
+ case 'language':
69
+ this.setHostProperty('language', changes['language'].currentValue);
70
+ break;
71
+ case 'size':
72
+ this.setHostProperty('size', changes['size'].currentValue);
73
+ break;
53
74
  case 'autofocus':
54
75
  this.setHostProperty('autofocus', changes['autofocus'].currentValue);
55
76
  break;
@@ -71,10 +92,21 @@ export class LuzmoFilterParameterPicker {
71
92
  this.renderer.setProperty(this.host, key, value);
72
93
  }
73
94
  bindEvents() {
74
- // No custom events for this wrapper.
95
+ this.listenerCleanup.push(this.renderer.listen(this.host, 'luzmo-parameter-selected', (event) => {
96
+ const typed = event;
97
+ this.luzmoParameterSelected.emit(typed);
98
+ }));
99
+ this.listenerCleanup.push(this.renderer.listen(this.host, 'luzmo-parameter-created', (event) => {
100
+ const typed = event;
101
+ this.luzmoParameterCreated.emit(typed);
102
+ }));
103
+ this.listenerCleanup.push(this.renderer.listen(this.host, 'luzmo-parameter-removed', (event) => {
104
+ const typed = event;
105
+ this.luzmoParameterRemoved.emit(typed);
106
+ }));
75
107
  }
76
108
  static ɵfac = function LuzmoFilterParameterPicker_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || LuzmoFilterParameterPicker)(); };
77
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LuzmoFilterParameterPicker, selectors: [["luzmo-filter-parameter-picker"]], inputs: { language: "language", contentLanguage: "contentLanguage", size: "size", disabled: [2, "disabled", "disabled", booleanAttribute], autofocus: [2, "autofocus", "autofocus", booleanAttribute], tabIndex: "tabIndex" }, exportAs: ["luzmoFilterParameterPicker"], features: [i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function LuzmoFilterParameterPicker_Template(rf, ctx) { if (rf & 1) {
109
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LuzmoFilterParameterPicker, selectors: [["luzmo-filter-parameter-picker"]], inputs: { parameters: "parameters", allowedTypes: "allowedTypes", selectedParameter: "selectedParameter", currentValue: "currentValue", disabled: [2, "disabled", "disabled", booleanAttribute], language: "language", size: "size", autofocus: [2, "autofocus", "autofocus", booleanAttribute], tabIndex: "tabIndex" }, outputs: { luzmoParameterSelected: "luzmoParameterSelected", luzmoParameterCreated: "luzmoParameterCreated", luzmoParameterRemoved: "luzmoParameterRemoved" }, exportAs: ["luzmoFilterParameterPicker"], features: [i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function LuzmoFilterParameterPicker_Template(rf, ctx) { if (rf & 1) {
78
110
  i0.ɵɵprojectionDef();
79
111
  i0.ɵɵprojection(0);
80
112
  } }, encapsulation: 2 });
@@ -88,23 +120,32 @@ export class LuzmoFilterParameterPicker {
88
120
  changeDetection: ChangeDetectionStrategy.OnPush,
89
121
  template: '<ng-content />'
90
122
  }]
91
- }], () => [], { language: [{
123
+ }], () => [], { parameters: [{
92
124
  type: Input,
93
- args: [{ alias: 'language' }]
94
- }], contentLanguage: [{
125
+ args: [{ alias: 'parameters' }]
126
+ }], allowedTypes: [{
95
127
  type: Input,
96
- args: [{ alias: 'contentLanguage' }]
97
- }], size: [{
128
+ args: [{ alias: 'allowedTypes' }]
129
+ }], selectedParameter: [{
98
130
  type: Input,
99
- args: [{ alias: 'size' }]
131
+ args: [{ alias: 'selectedParameter' }]
132
+ }], currentValue: [{
133
+ type: Input,
134
+ args: [{ alias: 'currentValue' }]
100
135
  }], disabled: [{
101
136
  type: Input,
102
137
  args: [{ alias: 'disabled', transform: booleanAttribute }]
138
+ }], language: [{
139
+ type: Input,
140
+ args: [{ alias: 'language' }]
141
+ }], size: [{
142
+ type: Input,
143
+ args: [{ alias: 'size' }]
103
144
  }], autofocus: [{
104
145
  type: Input,
105
146
  args: [{ alias: 'autofocus', transform: booleanAttribute }]
106
147
  }], tabIndex: [{
107
148
  type: Input,
108
149
  args: [{ alias: 'tabIndex' }]
109
- }] }); })();
110
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LuzmoFilterParameterPicker, { className: "LuzmoFilterParameterPicker", filePath: "components/filter-parameter-picker.ts", lineNumber: 15 }); })();
150
+ }], luzmoParameterSelected: [{ type: i0.Output, args: ["luzmoParameterSelected"] }], luzmoParameterCreated: [{ type: i0.Output, args: ["luzmoParameterCreated"] }], luzmoParameterRemoved: [{ type: i0.Output, args: ["luzmoParameterRemoved"] }] }); })();
151
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LuzmoFilterParameterPicker, { className: "LuzmoFilterParameterPicker", filePath: "components/filter-parameter-picker.ts", lineNumber: 18 }); })();
@@ -1,9 +1,8 @@
1
1
  import { OnChanges, SimpleChanges } from '@angular/core';
2
2
  import '@luzmo/analytics-components-kit/filters';
3
- import type { LuzmoFilters as LuzmoFiltersHostElement, FiltersChangedEventDetail } from '@luzmo/analytics-components-kit/filters';
4
- import type { ItemFilterGroup } from '@luzmo/dashboard-contents-types';
3
+ import type { LuzmoFilters as LuzmoFiltersHostElement, FilterParameter, FiltersChangedEventDetail, FiltersFormat, FiltersInput } from '@luzmo/analytics-components-kit/filters';
5
4
  import * as i0 from "@angular/core";
6
- export type { FilterCondition, FilterGroup, FiltersChangedEventDetail } from '@luzmo/analytics-components-kit/filters';
5
+ export type { CleanFilter, CleanFilterClauseGroup, CleanFilterGroup, CleanRetrievedFilterGroup, DashboardFilterOutput, DetectedFiltersFormat, FilterClause, FilterCondition, FilterGroup, FilterParameter, FilterParameterEventDetail, FilterParameterType, FiltersChangedEventDetail, FiltersFormat, FiltersInput, FiltersOutput, ItemFilterOutput, TransformFiltersOptions } from '@luzmo/analytics-components-kit/filters';
7
6
  export declare class LuzmoFilters implements OnChanges {
8
7
  private readonly elementRef;
9
8
  private readonly renderer;
@@ -26,8 +25,14 @@ export declare class LuzmoFilters implements OnChanges {
26
25
  timeZone?: string;
27
26
  /** The dataset ids to fetch columns & formulas */
28
27
  datasetIds?: string[];
29
- /** The filter groups to display */
30
- filters?: ItemFilterGroup[];
28
+ /** The filter groups to display. Accepts both halves of the public `ItemFilterOutput` / `DashboardFilterOutput` unions: canonical `ItemFilterGroup[]` and clean clause groups with flattened leaves. Nested `and` / `or` groups are preserved either way. */
29
+ filters?: FiltersInput;
30
+ /** Output format for the `luzmo-filters-changed` event. `canonical` emits `ItemFilterGroup[]`; `clean` emits the clean clause groups that aligned hosts consume. A tree that cannot be represented cleanly falls back to canonical output, and the event says which format it carries. */
31
+ format?: FiltersFormat;
32
+ /** Whether parameter-backed filter values can be created and selected. */
33
+ allowParameters?: boolean;
34
+ /** Consumer-owned parameter definitions available to filter rows. */
35
+ parameters?: FilterParameter[];
31
36
  /** Debounce time in milliseconds for the filters-changed event */
32
37
  debounce?: number;
33
38
  /** The language for UI labels. Supported values: 'en', 'nl', 'fr', 'de', 'es' */
@@ -40,8 +45,16 @@ export declare class LuzmoFilters implements OnChanges {
40
45
  autofocus?: boolean;
41
46
  /** The tab index to apply to this control. See general documentation about the tabindex HTML property */
42
47
  tabIndex?: number;
43
- /** Announces that the filters have changed */
48
+ /** Announces that the filters have changed, carrying the emitted groups and the format they are in */
44
49
  readonly luzmoFiltersChanged: import("@angular/core").OutputEmitterRef<CustomEvent<FiltersChangedEventDetail>>;
50
+ /** Announces that a parameter was created and added to `parameters`. */
51
+ readonly luzmoParameterCreated: import("@angular/core").OutputEmitterRef<CustomEvent<{
52
+ parameter: FilterParameter;
53
+ }>>;
54
+ /** Announces that a parameter was detached from a filter. */
55
+ readonly luzmoParameterRemoved: import("@angular/core").OutputEmitterRef<CustomEvent<{
56
+ parameter: FilterParameter;
57
+ }>>;
45
58
  constructor();
46
59
  ngOnChanges(changes: SimpleChanges): void;
47
60
  /**
@@ -53,7 +66,8 @@ export declare class LuzmoFilters implements OnChanges {
53
66
  private setHostProperty;
54
67
  private bindEvents;
55
68
  static ɵfac: i0.ɵɵFactoryDeclaration<LuzmoFilters, never>;
56
- static ɵcmp: i0.ɵɵComponentDeclaration<LuzmoFilters, "luzmo-filters", ["luzmoFilters"], { "apiUrl": { "alias": "apiUrl"; "required": false; }; "authKey": { "alias": "authKey"; "required": false; }; "authToken": { "alias": "authToken"; "required": false; }; "cacheTime": { "alias": "cacheTime"; "required": false; }; "contentLanguage": { "alias": "contentLanguage"; "required": false; }; "timeZone": { "alias": "timeZone"; "required": false; }; "datasetIds": { "alias": "datasetIds"; "required": false; }; "filters": { "alias": "filters"; "required": false; }; "debounce": { "alias": "debounce"; "required": false; }; "language": { "alias": "language"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, { "luzmoFiltersChanged": "luzmoFiltersChanged"; }, never, ["*"], true, never>;
69
+ static ɵcmp: i0.ɵɵComponentDeclaration<LuzmoFilters, "luzmo-filters", ["luzmoFilters"], { "apiUrl": { "alias": "apiUrl"; "required": false; }; "authKey": { "alias": "authKey"; "required": false; }; "authToken": { "alias": "authToken"; "required": false; }; "cacheTime": { "alias": "cacheTime"; "required": false; }; "contentLanguage": { "alias": "contentLanguage"; "required": false; }; "timeZone": { "alias": "timeZone"; "required": false; }; "datasetIds": { "alias": "datasetIds"; "required": false; }; "filters": { "alias": "filters"; "required": false; }; "format": { "alias": "format"; "required": false; }; "allowParameters": { "alias": "allowParameters"; "required": false; }; "parameters": { "alias": "parameters"; "required": false; }; "debounce": { "alias": "debounce"; "required": false; }; "language": { "alias": "language"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, { "luzmoFiltersChanged": "luzmoFiltersChanged"; "luzmoParameterCreated": "luzmoParameterCreated"; "luzmoParameterRemoved": "luzmoParameterRemoved"; }, never, ["*"], true, never>;
70
+ static ngAcceptInputType_allowParameters: unknown;
57
71
  static ngAcceptInputType_disabled: unknown;
58
72
  static ngAcceptInputType_autofocus: unknown;
59
73
  }
@@ -29,8 +29,14 @@ export class LuzmoFilters {
29
29
  timeZone;
30
30
  /** The dataset ids to fetch columns & formulas */
31
31
  datasetIds;
32
- /** The filter groups to display */
32
+ /** The filter groups to display. Accepts both halves of the public `ItemFilterOutput` / `DashboardFilterOutput` unions: canonical `ItemFilterGroup[]` and clean clause groups with flattened leaves. Nested `and` / `or` groups are preserved either way. */
33
33
  filters;
34
+ /** Output format for the `luzmo-filters-changed` event. `canonical` emits `ItemFilterGroup[]`; `clean` emits the clean clause groups that aligned hosts consume. A tree that cannot be represented cleanly falls back to canonical output, and the event says which format it carries. */
35
+ format;
36
+ /** Whether parameter-backed filter values can be created and selected. */
37
+ allowParameters;
38
+ /** Consumer-owned parameter definitions available to filter rows. */
39
+ parameters;
34
40
  /** Debounce time in milliseconds for the filters-changed event */
35
41
  debounce;
36
42
  /** The language for UI labels. Supported values: 'en', 'nl', 'fr', 'de', 'es' */
@@ -43,8 +49,12 @@ export class LuzmoFilters {
43
49
  autofocus;
44
50
  /** The tab index to apply to this control. See general documentation about the tabindex HTML property */
45
51
  tabIndex;
46
- /** Announces that the filters have changed */
52
+ /** Announces that the filters have changed, carrying the emitted groups and the format they are in */
47
53
  luzmoFiltersChanged = output({ alias: 'luzmoFiltersChanged' });
54
+ /** Announces that a parameter was created and added to `parameters`. */
55
+ luzmoParameterCreated = output({ alias: 'luzmoParameterCreated' });
56
+ /** Announces that a parameter was detached from a filter. */
57
+ luzmoParameterRemoved = output({ alias: 'luzmoParameterRemoved' });
48
58
  constructor() {
49
59
  this.bindEvents();
50
60
  this.destroyRef.onDestroy(() => {
@@ -80,6 +90,15 @@ export class LuzmoFilters {
80
90
  case 'filters':
81
91
  this.setHostProperty('filters', changes['filters'].currentValue);
82
92
  break;
93
+ case 'format':
94
+ this.setHostProperty('format', changes['format'].currentValue);
95
+ break;
96
+ case 'allowParameters':
97
+ this.setHostProperty('allowParameters', changes['allowParameters'].currentValue);
98
+ break;
99
+ case 'parameters':
100
+ this.setHostProperty('parameters', changes['parameters'].currentValue);
101
+ break;
83
102
  case 'debounce':
84
103
  this.setHostProperty('debounce', changes['debounce'].currentValue);
85
104
  break;
@@ -117,9 +136,17 @@ export class LuzmoFilters {
117
136
  const typed = event;
118
137
  this.luzmoFiltersChanged.emit(typed);
119
138
  }));
139
+ this.listenerCleanup.push(this.renderer.listen(this.host, 'luzmo-parameter-created', (event) => {
140
+ const typed = event;
141
+ this.luzmoParameterCreated.emit(typed);
142
+ }));
143
+ this.listenerCleanup.push(this.renderer.listen(this.host, 'luzmo-parameter-removed', (event) => {
144
+ const typed = event;
145
+ this.luzmoParameterRemoved.emit(typed);
146
+ }));
120
147
  }
121
148
  static ɵfac = function LuzmoFilters_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || LuzmoFilters)(); };
122
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LuzmoFilters, selectors: [["luzmo-filters"]], inputs: { apiUrl: "apiUrl", authKey: "authKey", authToken: "authToken", cacheTime: "cacheTime", contentLanguage: "contentLanguage", timeZone: "timeZone", datasetIds: "datasetIds", filters: "filters", debounce: "debounce", language: "language", size: "size", disabled: [2, "disabled", "disabled", booleanAttribute], autofocus: [2, "autofocus", "autofocus", booleanAttribute], tabIndex: "tabIndex" }, outputs: { luzmoFiltersChanged: "luzmoFiltersChanged" }, exportAs: ["luzmoFilters"], features: [i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function LuzmoFilters_Template(rf, ctx) { if (rf & 1) {
149
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LuzmoFilters, selectors: [["luzmo-filters"]], inputs: { apiUrl: "apiUrl", authKey: "authKey", authToken: "authToken", cacheTime: "cacheTime", contentLanguage: "contentLanguage", timeZone: "timeZone", datasetIds: "datasetIds", filters: "filters", format: "format", allowParameters: [2, "allowParameters", "allowParameters", booleanAttribute], parameters: "parameters", debounce: "debounce", language: "language", size: "size", disabled: [2, "disabled", "disabled", booleanAttribute], autofocus: [2, "autofocus", "autofocus", booleanAttribute], tabIndex: "tabIndex" }, outputs: { luzmoFiltersChanged: "luzmoFiltersChanged", luzmoParameterCreated: "luzmoParameterCreated", luzmoParameterRemoved: "luzmoParameterRemoved" }, exportAs: ["luzmoFilters"], features: [i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function LuzmoFilters_Template(rf, ctx) { if (rf & 1) {
123
150
  i0.ɵɵprojectionDef();
124
151
  i0.ɵɵprojection(0);
125
152
  } }, encapsulation: 2 });
@@ -157,6 +184,15 @@ export class LuzmoFilters {
157
184
  }], filters: [{
158
185
  type: Input,
159
186
  args: [{ alias: 'filters' }]
187
+ }], format: [{
188
+ type: Input,
189
+ args: [{ alias: 'format' }]
190
+ }], allowParameters: [{
191
+ type: Input,
192
+ args: [{ alias: 'allowParameters', transform: booleanAttribute }]
193
+ }], parameters: [{
194
+ type: Input,
195
+ args: [{ alias: 'parameters' }]
160
196
  }], debounce: [{
161
197
  type: Input,
162
198
  args: [{ alias: 'debounce' }]
@@ -175,5 +211,5 @@ export class LuzmoFilters {
175
211
  }], tabIndex: [{
176
212
  type: Input,
177
213
  args: [{ alias: 'tabIndex' }]
178
- }], luzmoFiltersChanged: [{ type: i0.Output, args: ["luzmoFiltersChanged"] }] }); })();
179
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LuzmoFilters, { className: "LuzmoFilters", filePath: "components/filters.ts", lineNumber: 17 }); })();
214
+ }], luzmoFiltersChanged: [{ type: i0.Output, args: ["luzmoFiltersChanged"] }], luzmoParameterCreated: [{ type: i0.Output, args: ["luzmoParameterCreated"] }], luzmoParameterRemoved: [{ type: i0.Output, args: ["luzmoParameterRemoved"] }] }); })();
215
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LuzmoFilters, { className: "LuzmoFilters", filePath: "components/filters.ts", lineNumber: 16 }); })();
@@ -29,9 +29,9 @@
29
29
  "peerDependencies": {
30
30
  "@angular/core": "^17.3.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 || ^22.0.0",
31
31
  "@angular/forms": "^17.3.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 || ^22.0.0",
32
- "@luzmo/analytics-components-kit": "1.0.5"
32
+ "@luzmo/analytics-components-kit": "1.0.7"
33
33
  },
34
- "version": "1.0.5",
34
+ "version": "1.0.7",
35
35
  "peerDependenciesMeta": {
36
36
  "@angular/forms": {
37
37
  "optional": true
@@ -68,6 +68,12 @@ export declare class FormulaDisplayStore extends EventTarget {
68
68
  * the column label is being resolved).
69
69
  */
70
70
  setLoading(value: boolean): void;
71
+ /**
72
+ * Asks listeners (root and nested CodeMirror editors, aggregation pills) to
73
+ * rebuild pill decorations. Used when datasets arrive after first paint so
74
+ * nested column chips can resolve labels from the updated store map.
75
+ */
76
+ refreshDecorations(): void;
71
77
  /**
72
78
  * Flags a just-created aggregation widget so its nested input grabs focus once
73
79
  * rendered, but only when the aggregation accepts content (arity > 0); e.g.
@@ -17,4 +17,4 @@
17
17
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18
18
  * SOFTWARE.
19
19
  * */
20
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../ai-interaction-textarea-CQBP9-DW.cjs"),t=require("../ai-chat-CBLWbv9C.cjs");exports.AI_PROMPT_ACCEPTED_IMAGE_MIME_TYPES=e.c,exports.AI_PROMPT_MAX_ATTACHMENTS=e.l,exports.AiChatSession=t.i,exports.AiChatSessionController=t.r,exports.LuzmoAiChat=t.n,exports.LuzmoAiChatEmptyState=t.E,exports.assertValidAiPromptAttachmentFiles=e.u,exports.assertValidAiPromptAttachmentUrls=e.d,exports.blobToBase64=e.n,exports.buildAiDictationRequest=e.r,exports.buildAiPromptDeleteRequest=t._,exports.buildAiPromptProperties=t.v,exports.buildAiPromptRequest=t.y,exports.buildAnalystAiPromptProperties=t.b,exports.buildDashboardAiPromptProperties=t.x,exports.buildItemAiPromptProperties=t.S,exports.buildSavedAgentAiPromptProperties=t.C,exports.chartToItemAsset=t.w,exports.createAiChatSession=t.a,exports.createInitialProgress=t.f,exports.createInitialStreamState=t.o,exports.createStreamHandler=t.s,exports.extractChartFromChunk=t.u,exports.extractDashboardFromChunk=t.d,exports.fetchStreamingResponse=t.m,exports.getAgentStreamDefinition=t.c,exports.getAiDictationUrl=e.i,exports.getAiPromptUrl=t.T,exports.getUploadUrl=e.o,exports.hasProgressChunk=t.p,exports.isAiPromptAcceptedImageFile=e.f,exports.isAiPromptAcceptedImageMimeType=e.p,exports.isAiPromptAcceptedImageUrl=e.m,exports.isRecognizedStep=t.t,exports.parseStreamLine=t.h,exports.processStreamChunk=t.l,exports.readNdjsonStream=t.g,exports.streamAiDictation=e.a,exports.uploadAiPromptImages=e.s;
20
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../ai-interaction-textarea-BXDeplJF.cjs"),t=require("../ai-chat-CVNU2mCV.cjs");exports.AI_PROMPT_ACCEPTED_IMAGE_MIME_TYPES=e.c,exports.AI_PROMPT_MAX_ATTACHMENTS=e.l,exports.AiChatSession=t.i,exports.AiChatSessionController=t.r,exports.LuzmoAiChat=t.n,exports.LuzmoAiChatEmptyState=t.E,exports.assertValidAiPromptAttachmentFiles=e.u,exports.assertValidAiPromptAttachmentUrls=e.d,exports.blobToBase64=e.n,exports.buildAiDictationRequest=e.r,exports.buildAiPromptDeleteRequest=t._,exports.buildAiPromptProperties=t.v,exports.buildAiPromptRequest=t.y,exports.buildAnalystAiPromptProperties=t.b,exports.buildDashboardAiPromptProperties=t.x,exports.buildItemAiPromptProperties=t.S,exports.buildSavedAgentAiPromptProperties=t.C,exports.chartToItemAsset=t.w,exports.createAiChatSession=t.a,exports.createInitialProgress=t.f,exports.createInitialStreamState=t.o,exports.createStreamHandler=t.s,exports.extractChartFromChunk=t.u,exports.extractDashboardFromChunk=t.d,exports.fetchStreamingResponse=t.m,exports.getAgentStreamDefinition=t.c,exports.getAiDictationUrl=e.i,exports.getAiPromptUrl=t.T,exports.getUploadUrl=e.o,exports.hasProgressChunk=t.p,exports.isAiPromptAcceptedImageFile=e.f,exports.isAiPromptAcceptedImageMimeType=e.p,exports.isAiPromptAcceptedImageUrl=e.m,exports.isRecognizedStep=t.t,exports.parseStreamLine=t.h,exports.processStreamChunk=t.l,exports.readNdjsonStream=t.g,exports.streamAiDictation=e.a,exports.uploadAiPromptImages=e.s;
@@ -21,9 +21,9 @@
21
21
  (function() {
22
22
  if (typeof document < "u" && !document.querySelector("style[data-luzmo-vars]")) {
23
23
  let e = document.createElement("style");
24
- e.setAttribute("data-luzmo-vars", ""), e.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: color-mix(in oklch, var(--luzmo-border-color-full), black 25%);--luzmo-border-color-full-down: color-mix(in oklch, var(--luzmo-border-color-full), black 45%);--luzmo-border-color-full-focus: color-mix(in oklch, var(--luzmo-border-color-full), black 25%);--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: color-mix( in oklch, color-mix(in oklch, var(--luzmo-background-color), var(--luzmo-primary) 5%), black 1.5% );--luzmo-background-color-down: color-mix(in oklch, color-mix(in oklch, var(--luzmo-background-color), var(--luzmo-primary) 7%), black 1%);--luzmo-background-color-focus: color-mix( in oklch, color-mix(in oklch, var(--luzmo-background-color), var(--luzmo-primary) 5%), black 1.5% );--luzmo-background-color-highlight: rgb(240, 240, 240);--luzmo-background-color-highlight-disabled: rgb(245, 245, 245);--luzmo-background-color-highlight-hover: color-mix(in oklch, var(--luzmo-background-color-highlight), black 10%);--luzmo-background-color-highlight-down: color-mix(in oklch, var(--luzmo-background-color-highlight), black 20%);--luzmo-background-color-highlight-focus: color-mix(in oklch, var(--luzmo-background-color-highlight), black 10%);--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: color-mix(in oklch, var(--luzmo-font-color), black 8%);--luzmo-font-color-down: color-mix(in oklch, var(--luzmo-font-color), black 20%);--luzmo-font-color-focus: color-mix(in oklch, var(--luzmo-font-color), black 8%);--luzmo-scrollbar-size: 6px;--luzmo-scrollbar-width: thin;--luzmo-scrollbar-track-background: transparent;--luzmo-scrollbar-track-border-radius: var(--luzmo-border-radius-s);--luzmo-scrollbar-thumb-background: rgba(var(--luzmo-border-color-rgb), 0.3);--luzmo-scrollbar-thumb-border-radius: var(--luzmo-border-radius-s);--luzmo-scrollbar-thumb-hover-background: rgba(var(--luzmo-border-color-rgb), 0.4);--luzmo-primary: #4434ff;--luzmo-primary-hover: color-mix(in oklch, var(--luzmo-primary), black 8%);--luzmo-primary-down: color-mix(in oklch, var(--luzmo-primary), black 20%);--luzmo-primary-focus: color-mix(in oklch, var(--luzmo-primary), black 8%);--luzmo-primary-inverse-color: #ffffff;--luzmo-primary-rgb: 68, 52, 255;--luzmo-secondary: #ff00ff;--luzmo-secondary-hover: color-mix(in oklch, var(--luzmo-secondary), black 8%);--luzmo-secondary-down: color-mix(in oklch, var(--luzmo-secondary), black 20%);--luzmo-secondary-focus: color-mix(in oklch, var(--luzmo-secondary), black 8%);--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: color-mix(in oklch, var(--luzmo-negative-color), black 8%);--luzmo-negative-color-down: color-mix(in oklch, var(--luzmo-negative-color), black 20%);--luzmo-negative-color-focus: color-mix(in oklch, var(--luzmo-negative-color), black 8%);--luzmo-negative-color-rgb: 202, 34, 28;--luzmo-positive-color: rgb(20, 150, 101);--luzmo-positive-color-hover: color-mix(in oklch, var(--luzmo-positive-color), black 8%);--luzmo-positive-color-down: color-mix(in oklch, var(--luzmo-positive-color), black 20%);--luzmo-positive-color-focus: color-mix(in oklch, var(--luzmo-positive-color), black 8%);--luzmo-positive-color-rgb: 20, 150, 101;--luzmo-selected-color: rgb(110, 110, 110);--luzmo-selected-color-hover: color-mix(in oklch, var(--luzmo-selected-color), black 25%);--luzmo-selected-color-down: color-mix(in oklch, var(--luzmo-selected-color), black 45%);--luzmo-selected-color-focus: color-mix(in oklch, var(--luzmo-selected-color), black 25%);--luzmo-selected-color-hard: #1e1e1e;--luzmo-selected-color-hard-hover: color-mix(in oklch, var(--luzmo-selected-color-hard), black 25%);--luzmo-selected-color-hard-down: color-mix(in oklch, var(--luzmo-selected-color-hard), black 45%);--luzmo-selected-color-hard-focus: color-mix(in oklch, var(--luzmo-selected-color-hard), black 25%);--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(e);
24
+ e.setAttribute("data-luzmo-vars", ""), e.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: color-mix(in oklch, var(--luzmo-border-color-full), black 25%);--luzmo-border-color-full-down: color-mix(in oklch, var(--luzmo-border-color-full), black 45%);--luzmo-border-color-full-focus: color-mix(in oklch, var(--luzmo-border-color-full), black 25%);--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: color-mix( in oklch, color-mix(in oklch, var(--luzmo-background-color), var(--luzmo-primary) 5%), black 1.5% );--luzmo-background-color-down: color-mix(in oklch, color-mix(in oklch, var(--luzmo-background-color), var(--luzmo-primary) 7%), black 1%);--luzmo-background-color-focus: color-mix( in oklch, color-mix(in oklch, var(--luzmo-background-color), var(--luzmo-primary) 5%), black 1.5% );--luzmo-background-color-highlight: rgb(240, 240, 240);--luzmo-background-color-highlight-disabled: rgb(245, 245, 245);--luzmo-background-color-highlight-hover: color-mix(in oklch, var(--luzmo-background-color-highlight), black 10%);--luzmo-background-color-highlight-down: color-mix(in oklch, var(--luzmo-background-color-highlight), black 20%);--luzmo-background-color-highlight-focus: color-mix(in oklch, var(--luzmo-background-color-highlight), black 10%);--luzmo-background-color-alt-1: rgb(250, 250, 250);--luzmo-background-color-alt-2: rgb(239, 239, 239);--luzmo-border-width: 1px;--luzmo-shadow-color-rgb: 0, 0, 0;--luzmo-shadow-opacity: 0.1;--luzmo-shadow-color: rgba(var(--luzmo-shadow-color-rgb), var(--luzmo-shadow-opacity));--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: color-mix(in oklch, var(--luzmo-font-color), black 8%);--luzmo-font-color-down: color-mix(in oklch, var(--luzmo-font-color), black 20%);--luzmo-font-color-focus: color-mix(in oklch, var(--luzmo-font-color), black 8%);--luzmo-scrollbar-size: 6px;--luzmo-scrollbar-width: thin;--luzmo-scrollbar-track-background: transparent;--luzmo-scrollbar-track-border-radius: var(--luzmo-border-radius-s);--luzmo-scrollbar-thumb-background: rgba(var(--luzmo-border-color-rgb), 0.3);--luzmo-scrollbar-thumb-border-radius: var(--luzmo-border-radius-s);--luzmo-scrollbar-thumb-hover-background: rgba(var(--luzmo-border-color-rgb), 0.4);--luzmo-primary: #4434ff;--luzmo-primary-hover: color-mix(in oklch, var(--luzmo-primary), black 8%);--luzmo-primary-down: color-mix(in oklch, var(--luzmo-primary), black 20%);--luzmo-primary-focus: color-mix(in oklch, var(--luzmo-primary), black 8%);--luzmo-primary-inverse-color: #ffffff;--luzmo-primary-rgb: 68, 52, 255;--luzmo-secondary: #ff00ff;--luzmo-secondary-hover: color-mix(in oklch, var(--luzmo-secondary), black 8%);--luzmo-secondary-down: color-mix(in oklch, var(--luzmo-secondary), black 20%);--luzmo-secondary-focus: color-mix(in oklch, var(--luzmo-secondary), black 8%);--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: color-mix(in oklch, var(--luzmo-negative-color), black 8%);--luzmo-negative-color-down: color-mix(in oklch, var(--luzmo-negative-color), black 20%);--luzmo-negative-color-focus: color-mix(in oklch, var(--luzmo-negative-color), black 8%);--luzmo-negative-color-rgb: 202, 34, 28;--luzmo-positive-color: rgb(20, 150, 101);--luzmo-positive-color-hover: color-mix(in oklch, var(--luzmo-positive-color), black 8%);--luzmo-positive-color-down: color-mix(in oklch, var(--luzmo-positive-color), black 20%);--luzmo-positive-color-focus: color-mix(in oklch, var(--luzmo-positive-color), black 8%);--luzmo-positive-color-rgb: 20, 150, 101;--luzmo-selected-color: rgb(110, 110, 110);--luzmo-selected-color-hover: color-mix(in oklch, var(--luzmo-selected-color), black 25%);--luzmo-selected-color-down: color-mix(in oklch, var(--luzmo-selected-color), black 45%);--luzmo-selected-color-focus: color-mix(in oklch, var(--luzmo-selected-color), black 25%);--luzmo-selected-color-hard: #1e1e1e;--luzmo-selected-color-hard-hover: color-mix(in oklch, var(--luzmo-selected-color-hard), black 25%);--luzmo-selected-color-hard-down: color-mix(in oklch, var(--luzmo-selected-color-hard), black 45%);--luzmo-selected-color-hard-focus: color-mix(in oklch, var(--luzmo-selected-color-hard), black 25%);--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(e);
25
25
  }
26
26
  })();
27
- import { a as e, c as t, d as n, f as r, i, l as a, m as o, n as s, o as c, p as l, r as u, s as d, u as f } from "../ai-interaction-textarea-Bgd3y_cP.js";
28
- import { C as p, E as m, S as h, T as g, _, a as v, b as y, c as b, d as x, f as S, g as C, h as w, i as T, l as E, m as D, n as O, o as k, p as A, r as j, s as M, t as N, u as P, v as F, w as I, x as L, y as R } from "../ai-chat-BtQaM37y.js";
27
+ import { a as e, c as t, d as n, f as r, i, l as a, m as o, n as s, o as c, p as l, r as u, s as d, u as f } from "../ai-interaction-textarea-BiMbUGCy.js";
28
+ import { C as p, E as m, S as h, T as g, _, a as v, b as y, c as b, d as x, f as S, g as C, h as w, i as T, l as E, m as D, n as O, o as k, p as A, r as j, s as M, t as N, u as P, v as F, w as I, x as L, y as R } from "../ai-chat-CDSRFmJK.js";
29
29
  export { t as AI_PROMPT_ACCEPTED_IMAGE_MIME_TYPES, a as AI_PROMPT_MAX_ATTACHMENTS, T as AiChatSession, j as AiChatSessionController, O as LuzmoAiChat, m as LuzmoAiChatEmptyState, f as assertValidAiPromptAttachmentFiles, n as assertValidAiPromptAttachmentUrls, s as blobToBase64, u as buildAiDictationRequest, _ as buildAiPromptDeleteRequest, F as buildAiPromptProperties, R as buildAiPromptRequest, y as buildAnalystAiPromptProperties, L as buildDashboardAiPromptProperties, h as buildItemAiPromptProperties, p as buildSavedAgentAiPromptProperties, I as chartToItemAsset, v as createAiChatSession, S as createInitialProgress, k as createInitialStreamState, M as createStreamHandler, P as extractChartFromChunk, x as extractDashboardFromChunk, D as fetchStreamingResponse, b as getAgentStreamDefinition, i as getAiDictationUrl, g as getAiPromptUrl, c as getUploadUrl, A as hasProgressChunk, r as isAiPromptAcceptedImageFile, l as isAiPromptAcceptedImageMimeType, o as isAiPromptAcceptedImageUrl, N as isRecognizedStep, w as parseStreamLine, E as processStreamChunk, C as readNdjsonStream, e as streamAiDictation, d as uploadAiPromptImages };