@luzmo/analytics-components-kit 1.3.0 → 2.0.0

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 (665) hide show
  1. package/README.md +18 -5
  2. package/angular/components/add-to-dashboard.ts +20 -6
  3. package/angular/components/ai-chat-empty-state.ts +1 -1
  4. package/angular/components/ai-chat.ts +10 -3
  5. package/angular/components/data-fields-select.ts +5 -0
  6. package/angular/components/display-settings-period-over-period.ts +25 -4
  7. package/angular/components/display-settings.ts +24 -3
  8. package/angular/components/interactive-viz-item.ts +87 -22
  9. package/angular/components/item-grid-item-actions-menu.ts +5 -0
  10. package/angular/components/item-grid.ts +7 -0
  11. package/angular/components/item-option-color-picker.ts +28 -28
  12. package/angular/components/item-option-guidelines.ts +22 -1
  13. package/angular/components/item-option-multi-language-field.ts +7 -7
  14. package/angular/components/item-option-number-field.ts +14 -14
  15. package/angular/components/item-option-positions-number-field.ts +14 -14
  16. package/angular/components/item-option-radio-button-group.ts +7 -7
  17. package/angular/components/item-option-text-field.ts +7 -7
  18. package/angular/components/item-slot-drop-panel.ts +7 -0
  19. package/angular/components/item-slot-drop.ts +7 -0
  20. package/angular/components/item-slot-picker-panel.ts +8 -1
  21. package/angular/components/item-slot-picker.ts +22 -8
  22. package/angular/components/slot-menu.ts +15 -1
  23. package/angular/esm/components/add-to-dashboard.d.ts +8 -4
  24. package/angular/esm/components/add-to-dashboard.js +23 -7
  25. package/angular/esm/components/ai-chat-empty-state.d.ts +1 -1
  26. package/angular/esm/components/ai-chat.d.ts +6 -4
  27. package/angular/esm/components/ai-chat.js +10 -2
  28. package/angular/esm/components/data-fields-select.d.ts +2 -0
  29. package/angular/esm/components/data-fields-select.js +4 -0
  30. package/angular/esm/components/display-settings-period-over-period.d.ts +12 -5
  31. package/angular/esm/components/display-settings-period-over-period.js +29 -5
  32. package/angular/esm/components/display-settings.d.ts +11 -4
  33. package/angular/esm/components/display-settings.js +28 -4
  34. package/angular/esm/components/interactive-viz-item.d.ts +30 -9
  35. package/angular/esm/components/interactive-viz-item.js +98 -27
  36. package/angular/esm/components/item-grid-item-actions-menu.d.ts +2 -0
  37. package/angular/esm/components/item-grid-item-actions-menu.js +4 -0
  38. package/angular/esm/components/item-grid.d.ts +3 -1
  39. package/angular/esm/components/item-grid.js +9 -1
  40. package/angular/esm/components/item-option-color-picker.d.ts +10 -10
  41. package/angular/esm/components/item-option-color-picker.js +34 -34
  42. package/angular/esm/components/item-option-guidelines.d.ts +8 -2
  43. package/angular/esm/components/item-option-guidelines.js +26 -2
  44. package/angular/esm/components/item-option-multi-language-field.d.ts +3 -3
  45. package/angular/esm/components/item-option-multi-language-field.js +10 -10
  46. package/angular/esm/components/item-option-number-field.d.ts +5 -5
  47. package/angular/esm/components/item-option-number-field.js +18 -18
  48. package/angular/esm/components/item-option-positions-number-field.d.ts +5 -5
  49. package/angular/esm/components/item-option-positions-number-field.js +18 -18
  50. package/angular/esm/components/item-option-radio-button-group.d.ts +3 -3
  51. package/angular/esm/components/item-option-radio-button-group.js +10 -10
  52. package/angular/esm/components/item-option-text-field.d.ts +3 -3
  53. package/angular/esm/components/item-option-text-field.js +10 -10
  54. package/angular/esm/components/item-slot-drop-panel.d.ts +4 -1
  55. package/angular/esm/components/item-slot-drop-panel.js +10 -2
  56. package/angular/esm/components/item-slot-drop.d.ts +4 -1
  57. package/angular/esm/components/item-slot-drop.js +10 -2
  58. package/angular/esm/components/item-slot-picker-panel.d.ts +5 -2
  59. package/angular/esm/components/item-slot-picker-panel.js +11 -3
  60. package/angular/esm/components/item-slot-picker.d.ts +9 -4
  61. package/angular/esm/components/item-slot-picker.js +26 -10
  62. package/angular/esm/components/slot-menu.d.ts +7 -2
  63. package/angular/esm/components/slot-menu.js +18 -2
  64. package/angular/package.json +2 -2
  65. package/angular/utils/filters/expressions.d.ts +2 -0
  66. package/angular/utils/slot-state/slot-store.d.ts +3 -8
  67. package/angular/utils/time/period-over-period-condition.const.d.ts +0 -1
  68. package/angular/utils/time/period-over-period-context.d.ts +75 -0
  69. package/angular/utils/time/tests/period-over-period-context.test.d.ts +1 -0
  70. package/components/add-to-dashboard/dashboard-actions.d.ts +2 -1
  71. package/components/add-to-dashboard/index.cjs +1 -1
  72. package/components/add-to-dashboard/index.js +1 -1
  73. package/components/{add-to-dashboard-DGC0_hRB.js → add-to-dashboard-B5egTFre.js} +127 -122
  74. package/components/{add-to-dashboard-CzIuDtAq.cjs → add-to-dashboard-BC5SObl9.cjs} +1 -1
  75. package/components/advanced-options.i18n-CyfRP6Jc.js +43 -0
  76. package/components/advanced-options.i18n-DPTCLyPj.cjs +20 -0
  77. package/components/ai-chat/ai-chat-events.d.ts +6 -2
  78. package/components/ai-chat/ai-chat-request.d.ts +1 -1
  79. package/components/ai-chat/ai-chat.d.ts +9 -2
  80. package/components/ai-chat/ai-prompt-types.d.ts +19 -1
  81. package/components/ai-chat/helpers/interaction-assets.d.ts +9 -0
  82. package/components/ai-chat/helpers/question-template.d.ts +13 -0
  83. package/components/ai-chat/index.cjs +1 -1
  84. package/components/ai-chat/index.d.ts +2 -1
  85. package/components/ai-chat/index.js +3 -3
  86. package/components/ai-chat/session/ai-chat-session-types.d.ts +6 -1
  87. package/components/ai-chat/session/ai-chat-session.d.ts +14 -3
  88. package/components/{ai-chat-CL894viH.js → ai-chat-CZz60W04.js} +1152 -837
  89. package/components/ai-chat-CkN95EAz.cjs +414 -0
  90. package/components/ai-interaction-textarea/index.cjs +1 -1
  91. package/components/ai-interaction-textarea/index.js +1 -1
  92. package/components/{ai-interaction-textarea-BmvVVCmL.cjs → ai-interaction-textarea-NGtzhkEU.cjs} +1 -1
  93. package/components/{ai-interaction-textarea-CnQ2FBc7.js → ai-interaction-textarea-zpSYvzWC.js} +4 -4
  94. package/components/{area-chart-options.config-D99tvt_H.cjs → area-chart-options.config-DkaWRgGR.cjs} +1 -1
  95. package/components/{area-chart-options.config-Dnw8v2CA.js → area-chart-options.config-E5T5GaAt.js} +3 -3
  96. package/components/{area-chart-positioning.config-ygE3-JQW.js → area-chart-positioning.config-CF5TQdQM.js} +1 -1
  97. package/components/{area-chart-positioning.config-BwEs73dl.cjs → area-chart-positioning.config-D3v03RF2.cjs} +1 -1
  98. package/components/{bar-chart-options.config-DHO8grQN.js → bar-chart-options.config-BmuNCcVu.js} +3 -3
  99. package/components/{bar-chart-options.config-BQ-PbucR.cjs → bar-chart-options.config-DujzIJ03.cjs} +1 -1
  100. package/components/{bar-chart-positioning.config-CPdIIPp0.cjs → bar-chart-positioning.config-B2cBwfjg.cjs} +1 -1
  101. package/components/{bar-chart-positioning.config-GjqSe7CO.js → bar-chart-positioning.config-DD3FsbpL.js} +1 -1
  102. package/components/{base-rAte-QzM.js → base-BqwRKT4V.js} +1 -1
  103. package/components/{base-CGDNY_7v.cjs → base-D-bJhYbS.cjs} +1 -1
  104. package/components/{box-plot-options.config-BgiiwSrU.js → box-plot-options.config-BldiKc1W.js} +1 -1
  105. package/components/{box-plot-options.config-BcGisybi.cjs → box-plot-options.config-CTHQiE0y.cjs} +1 -1
  106. package/components/{box-plot-positioning.config-DDUgau2U.js → box-plot-positioning.config-D7dak0lQ.js} +1 -1
  107. package/components/{box-plot-positioning.config-mSIgw923.cjs → box-plot-positioning.config-DyDjp1GB.cjs} +1 -1
  108. package/components/{bubble-chart-options.config-DMk8Yjfk.cjs → bubble-chart-options.config-CIQV2-nD.cjs} +1 -1
  109. package/components/{bubble-chart-options.config-UM9w5tBs.js → bubble-chart-options.config-DfUueHwL.js} +1 -1
  110. package/components/{bubble-chart-positioning.config-CuOxvXYf.cjs → bubble-chart-positioning.config-CBVdzO-2.cjs} +1 -1
  111. package/components/{bubble-chart-positioning.config-C3UubNLh.js → bubble-chart-positioning.config-DjYnqcoE.js} +1 -1
  112. package/components/{bullet-chart-positioning.config-DB1Fmx1d.cjs → bullet-chart-positioning.config-B1tyFrKD.cjs} +1 -1
  113. package/components/{bullet-chart-positioning.config-BuFhsRMP.js → bullet-chart-positioning.config-C1Fy_8N4.js} +1 -1
  114. package/components/chart-helpers-BHxQbLBw.cjs +20 -0
  115. package/components/{chart-helpers-Cbl3sRra.js → chart-helpers-BKeMLhov.js} +51 -38
  116. package/components/{choropleth-map-options.config-Blu0Z2tR.js → choropleth-map-options.config-BPwJyWoW.js} +1 -1
  117. package/components/{choropleth-map-options.config-DwFJ00CS.cjs → choropleth-map-options.config-mBZ3__hO.cjs} +1 -1
  118. package/components/{choropleth-map-positioning.config-6PsCyhsn.js → choropleth-map-positioning.config-BJ4TNZiP.js} +1 -1
  119. package/components/{choropleth-map-positioning.config-fc5IcNoB.cjs → choropleth-map-positioning.config-DaN1GsN7.cjs} +1 -1
  120. package/components/{circle-pack-chart-options.config-DQs-uitJ.js → circle-pack-chart-options.config-BbTBvJRt.js} +1 -1
  121. package/components/{circle-pack-chart-options.config-DMNMYWZX.cjs → circle-pack-chart-options.config-Cz9c2Oxt.cjs} +1 -1
  122. package/components/{circle-pack-chart-positioning.config-DvQfzJ_Z.cjs → circle-pack-chart-positioning.config-C0iRGjcn.cjs} +1 -1
  123. package/components/{circle-pack-chart-positioning.config-DRHNE10H.js → circle-pack-chart-positioning.config-sm_d4gNL.js} +1 -1
  124. package/components/{circular-gauge-positioning.config-CGOX-Vyn.js → circular-gauge-positioning.config-CP_Ihfyd.js} +1 -1
  125. package/components/{circular-gauge-positioning.config-OX1-mPls.cjs → circular-gauge-positioning.config-GgkU8ivx.cjs} +1 -1
  126. package/components/{column-chart-options.config-BYDJTVx6.js → column-chart-options.config-BoIqFqBu.js} +3 -3
  127. package/components/{column-chart-options.config-CyD8V7j4.cjs → column-chart-options.config-fsV6tk3-.cjs} +1 -1
  128. package/components/{column-chart-positioning.config-BVYa1A42.js → column-chart-positioning.config-B4OsEyKU.js} +1 -1
  129. package/components/{column-chart-positioning.config-NbQbSa8P.cjs → column-chart-positioning.config-oub804lP.cjs} +1 -1
  130. package/components/{combination-chart-options.config-Cg3ZEKMe.cjs → combination-chart-options.config-C_fwwZvd.cjs} +1 -1
  131. package/components/{combination-chart-options.config-B3zsSUFx.js → combination-chart-options.config-Oks0enDz.js} +3 -3
  132. package/components/{combination-chart-positioning.config-B7DtfzCV.cjs → combination-chart-positioning.config-BeEC_NMJ.cjs} +1 -1
  133. package/components/{combination-chart-positioning.config-yHAgveni.js → combination-chart-positioning.config-BxNKTTby.js} +1 -1
  134. package/components/{conditional-number-positioning.config-BZS99jTT.cjs → conditional-number-positioning.config-B7F96ylg.cjs} +1 -1
  135. package/components/{conditional-number-positioning.config-DhixJEpv.js → conditional-number-positioning.config-xMGIw6c7.js} +1 -1
  136. package/components/data-field/index.cjs +1 -1
  137. package/components/data-field/index.js +1 -1
  138. package/components/{data-field-BORlpZZk.cjs → data-field-BxIuPFX_.cjs} +1 -1
  139. package/components/{data-field-B9466d0w.js → data-field-D03w2T6D.js} +3 -3
  140. package/components/data-field-level/index.cjs +1 -1
  141. package/components/data-field-level/index.js +1 -1
  142. package/components/{data-field-level-DOEYwcvM.cjs → data-field-level-BdWZsIny.cjs} +1 -1
  143. package/components/{data-field-level-GrX6yhPV.js → data-field-level-C-C9RCNf.js} +1 -1
  144. package/components/data-field-panel/index.cjs +1 -1
  145. package/components/data-field-panel/index.js +1 -1
  146. package/components/{data-field-panel-BedJ9V2r.js → data-field-panel-DLe4FvTg.js} +3 -3
  147. package/components/{data-field-panel-DmMkAYAz.cjs → data-field-panel-kGncuIuq.cjs} +1 -1
  148. package/components/data-fields-select/index.cjs +1 -1
  149. package/components/data-fields-select/index.js +1 -1
  150. package/components/{data-fields-select-BOqmoE7n.cjs → data-fields-select-CSP6pX9J.cjs} +1 -1
  151. package/components/{data-fields-select-af1HZLWS.js → data-fields-select-DP80Miah.js} +1 -1
  152. package/components/dataset-selector-list/index.cjs +1 -1
  153. package/components/dataset-selector-list/index.js +1 -1
  154. package/components/{dataset-selector-list-BzI8n_dB.js → dataset-selector-list-D2UcUaOx.js} +1 -1
  155. package/components/{dataset-selector-list-CmZaj20L.cjs → dataset-selector-list-DGWiCqpf.cjs} +1 -1
  156. package/components/dataset-selector-row/index.cjs +1 -1
  157. package/components/dataset-selector-row/index.js +1 -1
  158. package/components/{dataset-selector-row-D_7iBmdm.js → dataset-selector-row-7WNwyR9L.js} +3 -3
  159. package/components/{dataset-selector-row-mOGioXLM.cjs → dataset-selector-row-Vfh7jDjW.cjs} +1 -1
  160. package/components/{de-AOtjGNGZ.js → de-BbXtB6N5.js} +19 -4
  161. package/components/de-BfHCg6-Y.cjs +20 -0
  162. package/components/display-settings/display-settings.d.ts +11 -3
  163. package/components/display-settings/index.cjs +1 -1
  164. package/components/display-settings/index.js +1 -1
  165. package/components/{display-settings-Qwp9oJo6.js → display-settings-Bqq9iJ3L.js} +86 -62
  166. package/components/display-settings-CG-qtz9m.cjs +146 -0
  167. package/components/display-settings-binning/index.cjs +1 -1
  168. package/components/display-settings-binning/index.js +1 -1
  169. package/components/{display-settings-binning-IPVCvx8a.js → display-settings-binning-C2Jlf18P.js} +2 -2
  170. package/components/{display-settings-binning-D5zhoC7D.cjs → display-settings-binning-Dx9zEbDo.cjs} +1 -1
  171. package/components/display-settings-datetime/index.cjs +1 -1
  172. package/components/display-settings-datetime/index.js +1 -1
  173. package/components/{display-settings-datetime-t70VEfHe.cjs → display-settings-datetime-B6LMQZOW.cjs} +1 -1
  174. package/components/{display-settings-datetime-DgBBSYfC.js → display-settings-datetime-B6okY4hC.js} +2 -2
  175. package/components/display-settings-grand-totals/index.cjs +1 -1
  176. package/components/display-settings-grand-totals/index.js +1 -1
  177. package/components/{display-settings-grand-totals-C_Fzk7oV.cjs → display-settings-grand-totals-D1Fi1qIx.cjs} +1 -1
  178. package/components/{display-settings-grand-totals-AFtKeeeG.js → display-settings-grand-totals-_v0iGpHZ.js} +2 -2
  179. package/components/display-settings-numeric/index.cjs +1 -1
  180. package/components/display-settings-numeric/index.js +1 -1
  181. package/components/{display-settings-numeric-BF8BA5MH.cjs → display-settings-numeric-DbcsMeEN.cjs} +1 -1
  182. package/components/{display-settings-numeric-DeuXT1UR.js → display-settings-numeric-G2avidxv.js} +2 -2
  183. package/components/display-settings-period-over-period/display-settings-period-over-period.d.ts +18 -10
  184. package/components/display-settings-period-over-period/helpers/constants.d.ts +0 -23
  185. package/components/display-settings-period-over-period/index.cjs +1 -1
  186. package/components/display-settings-period-over-period/index.js +1 -1
  187. package/components/display-settings-period-over-period-86oxRHhk.cjs +151 -0
  188. package/components/{display-settings-period-over-period-CzxnyVF7.js → display-settings-period-over-period-DqeKcvdD.js} +101 -164
  189. package/components/donut-chart-options.config-B47Y1jhM.cjs +20 -0
  190. package/components/{donut-chart-options.config-B2vxfMyh.js → donut-chart-options.config-C__JfD3B.js} +32 -45
  191. package/components/{donut-chart-options.de-AXRfsiXW.cjs → donut-chart-options.de-Bsze2Gb5.cjs} +1 -1
  192. package/components/{donut-chart-options.de-DgNmBJiQ.js → donut-chart-options.de-Cft1Ppg0.js} +1 -2
  193. package/components/{donut-chart-options.en-aZqu2oEV.cjs → donut-chart-options.en-D3F9v0nN.cjs} +1 -1
  194. package/components/{donut-chart-options.en-BXwxTVpB.js → donut-chart-options.en-DZbap5Oi.js} +1 -2
  195. package/components/{donut-chart-options.es-7WgxuaDe.cjs → donut-chart-options.es-Cm0HGP62.cjs} +1 -1
  196. package/components/{donut-chart-options.es-DW_q5HeE.js → donut-chart-options.es-gM85ij3W.js} +1 -2
  197. package/components/{donut-chart-options.fr-QU3pGELZ.js → donut-chart-options.fr-Tgs8r0XZ.js} +1 -2
  198. package/components/{donut-chart-options.fr-C0Z8xEyF.cjs → donut-chart-options.fr-VSZoCY5q.cjs} +1 -1
  199. package/components/{donut-chart-options.nl-aKVLbRJY.cjs → donut-chart-options.nl-BkwPxEkq.cjs} +1 -1
  200. package/components/{donut-chart-options.nl-D_cgYVAQ.js → donut-chart-options.nl-SfAF0ycW.js} +1 -2
  201. package/components/{donut-chart-positioning.config-Bu1jZwtJ.cjs → donut-chart-positioning.config-BxJLjvJI.cjs} +1 -1
  202. package/components/{donut-chart-positioning.config-C0jkFWni.js → donut-chart-positioning.config-Doti4TgR.js} +1 -1
  203. package/components/{es-CYhv03uu.js → es-DRdklNAj.js} +19 -4
  204. package/components/es-Djk6AXOA.cjs +20 -0
  205. package/components/{evolution-number-positioning.config-DD8HBFtv.js → evolution-number-positioning.config-DHgkhRjt.js} +1 -1
  206. package/components/{evolution-number-positioning.config-DbH1-ODd.cjs → evolution-number-positioning.config-DeJkgT2e.cjs} +1 -1
  207. package/components/expressions-B4TetNaL.js +314 -0
  208. package/components/expressions-_KjBCqb6.cjs +20 -0
  209. package/components/filter-expression-picker/index.cjs +1 -1
  210. package/components/filter-expression-picker/index.js +1 -1
  211. package/components/filter-expression-picker-BuXFbOXQ.js +146 -0
  212. package/components/filter-expression-picker-Cta3MMId.cjs +40 -0
  213. package/components/filter-item/index.cjs +1 -1
  214. package/components/filter-item/index.js +1 -1
  215. package/components/filter-item-DENHWF-1.cjs +111 -0
  216. package/components/{filter-item-QJ3sDlmG.js → filter-item-DXkoGth1.js} +170 -169
  217. package/components/filter-parameter-picker/index.cjs +1 -1
  218. package/components/filter-parameter-picker/index.js +1 -1
  219. package/components/{filter-parameter-picker-DjQVFIfg.cjs → filter-parameter-picker-CYb_At4A.cjs} +1 -1
  220. package/components/{filter-parameter-picker-C8qwIo_H.js → filter-parameter-picker-Dhdrwokt.js} +1 -1
  221. package/components/filter-value-picker/index.cjs +1 -1
  222. package/components/filter-value-picker/index.js +1 -1
  223. package/components/{filter-value-picker-DIYyMymr.js → filter-value-picker-Df2otXtB.js} +4 -4
  224. package/components/{filter-value-picker-CMNxLzj7.cjs → filter-value-picker-IBplK-ue.cjs} +1 -1
  225. package/components/filter-value-picker-datetime/index.cjs +1 -1
  226. package/components/filter-value-picker-datetime/index.js +1 -1
  227. package/components/{filter-value-picker-datetime-DKblyQrs.js → filter-value-picker-datetime-Cxj-X50F.js} +34 -28
  228. package/components/filter-value-picker-datetime-DmJ6vrr8.cjs +53 -0
  229. package/components/filter-value-picker-hierarchy/index.cjs +1 -1
  230. package/components/filter-value-picker-hierarchy/index.js +1 -1
  231. package/components/{filter-value-picker-hierarchy-CXPC_4MU.cjs → filter-value-picker-hierarchy-BAK4urti.cjs} +1 -1
  232. package/components/{filter-value-picker-hierarchy-IswtY6Qa.js → filter-value-picker-hierarchy-JUxA6aOK.js} +2 -2
  233. package/components/filter-value-picker-numeric/index.cjs +1 -1
  234. package/components/filter-value-picker-numeric/index.js +1 -1
  235. package/components/{filter-value-picker-numeric-C7_-Fpol.cjs → filter-value-picker-numeric-Bf7iFwmp.cjs} +1 -1
  236. package/components/{filter-value-picker-numeric-DlFnGZ2O.js → filter-value-picker-numeric-MEFZbKsF.js} +1 -1
  237. package/components/filters/index.cjs +1 -1
  238. package/components/filters/index.js +1 -1
  239. package/components/filters-BLd6si6W.cjs +187 -0
  240. package/components/{filters-CxIzuI5q.js → filters-CYSKF57z.js} +115 -104
  241. package/components/formula/index.cjs +1 -1
  242. package/components/formula/index.js +1 -1
  243. package/components/{formula-WqOlEQ5o.js → formula-DPYHw2sr.js} +2 -2
  244. package/components/{formula-codemirror-BTYlGSxE.cjs → formula-codemirror-CZpISqCT.cjs} +1 -1
  245. package/components/{formula-codemirror-bpEb3M2G.js → formula-codemirror-DrcDvAal.js} +4 -4
  246. package/components/{formula-display-store-QU-B6xp9.js → formula-display-store-fFSd4okF.js} +3 -3
  247. package/components/{formula-display-store-D7fzKNfW.cjs → formula-display-store-zZIC2bm-.cjs} +1 -1
  248. package/components/formula-editor/index.cjs +1 -1
  249. package/components/formula-editor/index.js +3 -3
  250. package/components/{formula-editor-BbyDf0vM.js → formula-editor-C9ECzSM6.js} +5 -5
  251. package/components/{formula-editor-D_NRhjUI.cjs → formula-editor-CDx-sZrG.cjs} +1 -1
  252. package/components/formula-field/index.cjs +1 -1
  253. package/components/formula-field/index.js +1 -1
  254. package/components/{formula-field-DSSpI8LB.cjs → formula-field-CV3FLzM2.cjs} +1 -1
  255. package/components/{formula-field-BT9K_W6Q.js → formula-field-DZLfK3cs.js} +1 -1
  256. package/components/{formula-input-base-CQc1OU9G.js → formula-input-base-CTuUw8IY.js} +1 -1
  257. package/components/{formula-input-base-BoWiH97v.cjs → formula-input-base-DN9aVHrY.cjs} +1 -1
  258. package/components/{formula-CXrr9wJZ.cjs → formula-x9mA6jDv.cjs} +1 -1
  259. package/components/{fr-DKAoGI_6.js → fr-C6af3ed2.js} +19 -4
  260. package/components/fr-cuXTTJ19.cjs +20 -0
  261. package/components/{funnel-chart-options.config-W83a8ukL.js → funnel-chart-options.config-AupTvjpk.js} +27 -84
  262. package/components/funnel-chart-options.config-DLRKgBpU.cjs +20 -0
  263. package/components/{funnel-chart-options.de-B2f_xxvV.cjs → funnel-chart-options.de-BXnQCtlb.cjs} +1 -1
  264. package/components/{funnel-chart-options.de-CLMiAr0m.js → funnel-chart-options.de-CRjaoeDf.js} +0 -1
  265. package/components/{funnel-chart-options.en-Pu8yU7Yz.js → funnel-chart-options.en-B0moabZE.js} +0 -1
  266. package/components/{funnel-chart-options.en-Cdvkged9.cjs → funnel-chart-options.en-BxEAM67L.cjs} +1 -1
  267. package/components/{funnel-chart-options.es-CrAp7hOK.cjs → funnel-chart-options.es-B88ZJAvI.cjs} +1 -1
  268. package/components/{funnel-chart-options.es-BPjGIJ7s.js → funnel-chart-options.es-DVVoRoYc.js} +0 -1
  269. package/components/{funnel-chart-options.fr-0RxiqeZg.cjs → funnel-chart-options.fr-B79JhoL2.cjs} +1 -1
  270. package/components/{funnel-chart-options.fr-CtWjGa4q.js → funnel-chart-options.fr-DvQC8k_c.js} +0 -1
  271. package/components/{funnel-chart-options.nl-r_wRg5qR.cjs → funnel-chart-options.nl-CnHVcvGk.cjs} +1 -1
  272. package/components/{funnel-chart-options.nl-2TPEy_CB.js → funnel-chart-options.nl-DJhjX1Pw.js} +0 -1
  273. package/components/{funnel-chart-positioning.config-Dx9E5eiW.cjs → funnel-chart-positioning.config-BZJ5g_XG.cjs} +1 -1
  274. package/components/{funnel-chart-positioning.config-Dbex7egf.js → funnel-chart-positioning.config-y6yFY7jd.js} +1 -1
  275. package/components/{get-dataset-name-C3Sc0hZ0.cjs → get-dataset-name-DddRDGDV.cjs} +1 -1
  276. package/components/{get-dataset-name-BArAzBu2.js → get-dataset-name-OPlPwcJU.js} +1 -1
  277. package/components/{groupings-DMWmtE5F.cjs → groupings-BnI5_4A1.cjs} +1 -1
  278. package/components/{groupings-DXJS4XIU.js → groupings-D_Ri_Z-t.js} +1 -1
  279. package/components/{guidelines-options.config-D-ZuReR_.cjs → guidelines-options.config-BgARZ-fs.cjs} +1 -1
  280. package/components/{guidelines-options.config-DVZrOa3v.js → guidelines-options.config-BqAYiMSF.js} +1 -1
  281. package/components/{heat-map-positioning.config-Bzg0DG60.cjs → heat-map-positioning.config-Cgg-qkcr.cjs} +1 -1
  282. package/components/{heat-map-positioning.config-D4T7PQzN.js → heat-map-positioning.config-DN75-r9r.js} +1 -1
  283. package/components/{heat-table-options.config-CMWWTeyo.js → heat-table-options.config-BL8x1qwt.js} +20 -7
  284. package/components/heat-table-options.config-iEHucwDf.cjs +20 -0
  285. package/components/{heat-table-positioning.config-Cj6LlLe3.cjs → heat-table-positioning.config-C2QPQURh.cjs} +1 -1
  286. package/components/{heat-table-positioning.config-DVQiJfC4.js → heat-table-positioning.config-CHxtZe-0.js} +1 -1
  287. package/components/{hexbin-map-positioning.config-csNrvMwp.js → hexbin-map-positioning.config-B1H1Z6Os.js} +1 -1
  288. package/components/{hexbin-map-positioning.config-ChoCCure.cjs → hexbin-map-positioning.config-BI-RVV35.cjs} +1 -1
  289. package/components/index.cjs +1 -1
  290. package/components/index.js +69 -69
  291. package/components/interactive-viz-item/helpers/chart-helpers.d.ts +2 -1
  292. package/components/interactive-viz-item/index.cjs +1 -1
  293. package/components/interactive-viz-item/index.js +3 -3
  294. package/components/interactive-viz-item/interactive-viz-item.d.ts +44 -0
  295. package/components/{interactive-viz-item-BKLOmawA.js → interactive-viz-item-CngeQ579.js} +153 -112
  296. package/components/interactive-viz-item-qrC0vC2O.cjs +269 -0
  297. package/components/interactivity-options.config-AKgaj2vC.js +131 -0
  298. package/components/interactivity-options.config-CkRDoCWd.cjs +20 -0
  299. package/components/interactivity-options.i18n-Cv5w1nSS.cjs +20 -0
  300. package/components/{interactivity-options.i18n-DY947PNz.js → interactivity-options.i18n-DmrqdhYW.js} +35 -5
  301. package/components/item-grid/index.cjs +1 -1
  302. package/components/item-grid/index.js +2 -2
  303. package/components/item-grid/item-grid.d.ts +1 -0
  304. package/components/{item-grid-DveTRc7D.cjs → item-grid-C-v9kDvq.cjs} +1 -1
  305. package/components/{item-grid-DscQOFMu.js → item-grid-DzR5sfDM.js} +1 -1
  306. package/components/item-grid-item-actions-menu/index.cjs +1 -1
  307. package/components/item-grid-item-actions-menu/index.js +1 -1
  308. package/components/{item-grid-item-actions-menu-B1bKfagj.js → item-grid-item-actions-menu-DJJESWL6.js} +1 -1
  309. package/components/{item-grid-item-actions-menu-xRrT9dkY.cjs → item-grid-item-actions-menu-HIlcOhJA.cjs} +1 -1
  310. package/components/item-option/index.cjs +1 -1
  311. package/components/item-option/index.js +1 -1
  312. package/components/{item-option-DKLRnicU.js → item-option-B6h4E5qR.js} +49 -43
  313. package/components/item-option-action-button-group/index.cjs +1 -1
  314. package/components/item-option-action-button-group/index.js +1 -1
  315. package/components/{item-option-action-button-group-Cpd_CNn-.js → item-option-action-button-group-Bc3bJQUS.js} +1 -1
  316. package/components/{item-option-action-button-group-BMgUwveA.cjs → item-option-action-button-group-CQHpvC5O.cjs} +1 -1
  317. package/components/{item-option-base-BMy6dWbc.cjs → item-option-base-6msESUhx.cjs} +1 -1
  318. package/components/{item-option-base-BfHciede.js → item-option-base-XB_1V6QM.js} +1 -1
  319. package/components/item-option-color-palette-picker/index.cjs +1 -1
  320. package/components/item-option-color-palette-picker/index.js +1 -1
  321. package/components/{item-option-color-palette-picker-8KFuRU1D.js → item-option-color-palette-picker-BYjb4ygk.js} +1 -1
  322. package/components/{item-option-color-palette-picker-CnM1Gi6o.cjs → item-option-color-palette-picker-MhFJgurt.cjs} +1 -1
  323. package/components/item-option-color-picker/index.cjs +1 -1
  324. package/components/item-option-color-picker/index.js +1 -1
  325. package/components/{item-option-color-picker-CNW7GsCO.cjs → item-option-color-picker-CLLWV2M-.cjs} +1 -1
  326. package/components/{item-option-color-picker-DDvsY7hV.js → item-option-color-picker-Dq_NwAn1.js} +1 -1
  327. package/components/item-option-color-range/index.cjs +1 -1
  328. package/components/item-option-color-range/index.js +1 -1
  329. package/components/{item-option-color-range-BqSbuSZh.cjs → item-option-color-range-DlCi_o72.cjs} +1 -1
  330. package/components/{item-option-color-range-FQduqtz3.js → item-option-color-range-abi_vblh.js} +1 -1
  331. package/components/item-option-guidelines/index.cjs +1 -1
  332. package/components/item-option-guidelines/index.js +1 -1
  333. package/components/{item-option-guidelines-k5DwMONo.js → item-option-guidelines-8LmcJ04U.js} +3 -3
  334. package/components/{item-option-guidelines-z9BsGR-l.cjs → item-option-guidelines-Q2M8xSYS.cjs} +1 -1
  335. package/components/item-option-multi-language-field/index.cjs +1 -1
  336. package/components/item-option-multi-language-field/index.js +1 -1
  337. package/components/{item-option-multi-language-field-CqtBl3gM.js → item-option-multi-language-field-6FBm3Xr3.js} +1 -1
  338. package/components/{item-option-multi-language-field-DM2PENxV.cjs → item-option-multi-language-field-Dq3j7XYw.cjs} +1 -1
  339. package/components/item-option-number-field/index.cjs +1 -1
  340. package/components/item-option-number-field/index.js +1 -1
  341. package/components/{item-option-number-field-BgQRhFj3.js → item-option-number-field-CPgwUGTR.js} +1 -1
  342. package/components/{item-option-number-field-Cw2ofJL7.cjs → item-option-number-field-CZSVb9wv.cjs} +1 -1
  343. package/components/item-option-panel/index.cjs +1 -1
  344. package/components/item-option-panel/index.js +1 -1
  345. package/components/{item-option-panel-CU51qvgV.cjs → item-option-panel-B5ZKbaLl.cjs} +1 -1
  346. package/components/{item-option-panel-BLXWIbjX.js → item-option-panel-BZRyyc-9.js} +2 -2
  347. package/components/item-option-picker/index.cjs +1 -1
  348. package/components/item-option-picker/index.js +1 -1
  349. package/components/{item-option-picker-EJlc0bmj.cjs → item-option-picker-DMLk4Uq_.cjs} +1 -1
  350. package/components/{item-option-picker-DkAENDES.js → item-option-picker-mU6X3bbk.js} +1 -1
  351. package/components/item-option-position-picker/index.cjs +1 -1
  352. package/components/item-option-position-picker/index.js +1 -1
  353. package/components/{item-option-position-picker-DX7lLZKO.js → item-option-position-picker-B4AuC_73.js} +1 -1
  354. package/components/{item-option-position-picker-Ba7cBvlL.cjs → item-option-position-picker-BTH6KixE.cjs} +1 -1
  355. package/components/item-option-positions-number-field/index.cjs +1 -1
  356. package/components/item-option-positions-number-field/index.js +1 -1
  357. package/components/{item-option-positions-number-field-Bqfg0MJm.js → item-option-positions-number-field-BTFGhhrb.js} +1 -1
  358. package/components/{item-option-positions-number-field-BQ8gFOAn.cjs → item-option-positions-number-field-Dz0mpPSk.cjs} +1 -1
  359. package/components/item-option-radio-button-group/index.cjs +1 -1
  360. package/components/item-option-radio-button-group/index.js +1 -1
  361. package/components/{item-option-radio-button-group-Bk7VQlpx.js → item-option-radio-button-group-CmYFScry.js} +1 -1
  362. package/components/{item-option-radio-button-group-2hX-E2WV.cjs → item-option-radio-button-group-EBLjtMVd.cjs} +1 -1
  363. package/components/item-option-slider/index.cjs +1 -1
  364. package/components/item-option-slider/index.js +1 -1
  365. package/components/{item-option-slider-BKtJfL3D.js → item-option-slider-C7RfBary.js} +1 -1
  366. package/components/{item-option-slider-Kz2eFBql.cjs → item-option-slider-DRXTGW9W.cjs} +1 -1
  367. package/components/item-option-switch/index.cjs +1 -1
  368. package/components/item-option-switch/index.js +1 -1
  369. package/components/{item-option-switch-BUteU1mc.cjs → item-option-switch-D-FbXXRl.cjs} +1 -1
  370. package/components/{item-option-switch-cGWccE79.js → item-option-switch-D-MY6Uqv.js} +1 -1
  371. package/components/{item-option-DpLdospV.cjs → item-option-t_LsqjoR.cjs} +1 -1
  372. package/components/item-option-text-field/index.cjs +1 -1
  373. package/components/item-option-text-field/index.js +1 -1
  374. package/components/{item-option-text-field-Dy8pqVKJ.js → item-option-text-field-BR2V4ro2.js} +1 -1
  375. package/components/{item-option-text-field-BC9fR-yW.cjs → item-option-text-field-Cn-9lblu.cjs} +1 -1
  376. package/components/item-options-configs.cjs +1 -1
  377. package/components/item-options-configs.js +21 -21
  378. package/components/item-slot-drop/index.cjs +1 -1
  379. package/components/item-slot-drop/index.js +1 -1
  380. package/components/item-slot-drop/item-slot-drop.d.ts +2 -0
  381. package/components/item-slot-drop-7v-n-e1y.cjs +93 -0
  382. package/components/{item-slot-drop-CwZT8bTP.js → item-slot-drop-Db-tVAud.js} +69 -60
  383. package/components/item-slot-drop-panel/index.cjs +1 -1
  384. package/components/item-slot-drop-panel/index.js +1 -1
  385. package/components/item-slot-drop-panel/item-slot-drop-panel.d.ts +2 -0
  386. package/components/{item-slot-drop-panel-o5UdVrY_.js → item-slot-drop-panel-D-g4H1Rp.js} +117 -107
  387. package/components/item-slot-drop-panel-D2_1yWHs.cjs +58 -0
  388. package/components/item-slot-picker/index.cjs +1 -1
  389. package/components/item-slot-picker/index.js +1 -1
  390. package/components/item-slot-picker/item-slot-picker.d.ts +5 -0
  391. package/components/item-slot-picker-9afJORSK.cjs +160 -0
  392. package/components/{item-slot-picker-ilmmb0-8.js → item-slot-picker-BHtj0dRB.js} +109 -101
  393. package/components/item-slot-picker-panel/index.cjs +1 -1
  394. package/components/item-slot-picker-panel/index.js +1 -1
  395. package/components/item-slot-picker-panel/item-slot-picker-panel.d.ts +21 -1
  396. package/components/{item-slot-picker-panel-fJqEmxeD.js → item-slot-picker-panel-CIxGfaz3.js} +111 -69
  397. package/components/item-slot-picker-panel-CeOtdtMc.cjs +86 -0
  398. package/components/{kpi-positioning.config-mQuxf1ke.js → kpi-positioning.config-DDTfIZ_h.js} +1 -1
  399. package/components/{kpi-positioning.config-DIYWUwID.cjs → kpi-positioning.config-t9SxIqga.cjs} +1 -1
  400. package/components/legend-options.i18n-0hyeyskh.js +78 -0
  401. package/components/legend-options.i18n-CUZeW5rR.cjs +20 -0
  402. package/components/{line-chart-options.config-Opoz2jPk.js → line-chart-options.config-BdhyECMS.js} +2 -2
  403. package/components/{line-chart-options.config-DOGbeJhy.cjs → line-chart-options.config-CVtYVap1.cjs} +1 -1
  404. package/components/{line-chart-positioning.config-DqjrWmxJ.js → line-chart-positioning.config-BZoKaJVO.js} +1 -1
  405. package/components/{line-chart-positioning.config-DK9PycZ_.cjs → line-chart-positioning.config-DfTMlBBL.cjs} +1 -1
  406. package/components/{localized-mixin-EoNvtTBG.cjs → localized-mixin-BQowFGQK.cjs} +1 -1
  407. package/components/{localized-mixin-FPDNaZhb.js → localized-mixin-BdXrQldH.js} +1 -1
  408. package/components/{marker-map-positioning.config-BB51kE8O.cjs → marker-map-positioning.config-BsPUa8Ui.cjs} +1 -1
  409. package/components/{marker-map-positioning.config-CA08hZcp.js → marker-map-positioning.config-BtuIUPHT.js} +1 -1
  410. package/components/nl-B4gqLp1F.cjs +20 -0
  411. package/components/{nl-DNWGcGqO.js → nl-Chzh7kM2.js} +19 -4
  412. package/components/{ohlc-chart-options.config-CvlHm6hy.cjs → ohlc-chart-options.config-BQJWhXv7.cjs} +1 -1
  413. package/components/{ohlc-chart-options.config-C-TCUtOt.js → ohlc-chart-options.config-MYqetK62.js} +3 -3
  414. package/components/{ohlc-chart-positioning.config-CDL2vGsl.cjs → ohlc-chart-positioning.config-D1X1U96F.cjs} +1 -1
  415. package/components/{ohlc-chart-positioning.config-BqFHD1oj.js → ohlc-chart-positioning.config-Ny3U8zgV.js} +1 -1
  416. package/components/{parallel-coordinates-plot-options.config-UHrCS9q5.cjs → parallel-coordinates-plot-options.config-B4v6BtAz.cjs} +1 -1
  417. package/components/{parallel-coordinates-plot-options.config-C3HTFBTl.js → parallel-coordinates-plot-options.config-CN4p7QDD.js} +1 -1
  418. package/components/{parallel-coordinates-plot-positioning.config-Cc-ooVxV.cjs → parallel-coordinates-plot-positioning.config-BI6JMiBT.cjs} +1 -1
  419. package/components/{parallel-coordinates-plot-positioning.config-D6IuAk_K.js → parallel-coordinates-plot-positioning.config-Curf1XoL.js} +1 -1
  420. package/components/{period-over-period-condition.const-C1NZ9Bkp.cjs → period-over-period-condition.const-BOI8gxO1.cjs} +1 -1
  421. package/components/{period-over-period-condition.const-AE_2h-9O.js → period-over-period-condition.const-C9cn5m-o.js} +1 -2
  422. package/components/period-over-period-context-CeZHXSs0.js +84 -0
  423. package/components/period-over-period-context-Cx4pRKBn.cjs +20 -0
  424. package/components/{pivot-table-options.config-5pYvqc35.cjs → pivot-table-options.config-1DApg-wg.cjs} +1 -1
  425. package/components/{pivot-table-options.config-BlrguysB.js → pivot-table-options.config-DhzyxHTP.js} +1 -1
  426. package/components/{pivot-table-positioning.config-DDwXH70O.js → pivot-table-positioning.config-BoN7P8bs.js} +1 -1
  427. package/components/{pivot-table-positioning.config-DvwKNjoD.cjs → pivot-table-positioning.config-BsyGrzvX.cjs} +1 -1
  428. package/components/{pyramid-chart-options.config-CAC6cMmt.cjs → pyramid-chart-options.config-CNOOucJE.cjs} +1 -1
  429. package/components/{pyramid-chart-options.config-0Qf1naIx.js → pyramid-chart-options.config-DVBuswjg.js} +1 -1
  430. package/components/{pyramid-chart-positioning.config-DWou2jnm.js → pyramid-chart-positioning.config-D9Z40IzT.js} +1 -1
  431. package/components/{pyramid-chart-positioning.config-10BYkgv8.cjs → pyramid-chart-positioning.config-DdjlJjFb.cjs} +1 -1
  432. package/components/{radar-chart-positioning.config-B0O8vn-B.js → radar-chart-positioning.config-C16aywvy.js} +1 -1
  433. package/components/{radar-chart-positioning.config-Dg41uYWY.cjs → radar-chart-positioning.config-DARMkDIv.cjs} +1 -1
  434. package/components/{route-map-positioning.config-C1iUodTh.js → route-map-positioning.config-BmuPL5DK.js} +1 -1
  435. package/components/{route-map-positioning.config-DlM6xJTP.cjs → route-map-positioning.config-CTtpis1h.cjs} +1 -1
  436. package/components/{sankey-diagram-options.config-Y6jRK3wk.js → sankey-diagram-options.config-B86iq8pI.js} +1 -1
  437. package/components/{sankey-diagram-options.config-B8aHKfFt.cjs → sankey-diagram-options.config-mIgABANw.cjs} +1 -1
  438. package/components/{sankey-diagram-positioning.config-5EXNleL5.js → sankey-diagram-positioning.config-BhvJe1IX.js} +1 -1
  439. package/components/{sankey-diagram-positioning.config-BSu02GJ1.cjs → sankey-diagram-positioning.config-aLwXoVGA.cjs} +1 -1
  440. package/components/{scatter-plot-options.config-DhOGahRc.cjs → scatter-plot-options.config-BZVF4r3f.cjs} +1 -1
  441. package/components/{scatter-plot-options.config-DvGofFzR.js → scatter-plot-options.config-ChqZzslY.js} +2 -2
  442. package/components/{scatter-plot-positioning.config-CuyJUmiV.cjs → scatter-plot-positioning.config-CYy1jfz5.cjs} +1 -1
  443. package/components/{scatter-plot-positioning.config-nDbkUUqa.js → scatter-plot-positioning.config-twVc5wWl.js} +1 -1
  444. package/components/{set-locale-m257lVi3.js → set-locale-BeAF7qn4.js} +4 -4
  445. package/components/{set-locale-BkMmLcm6.cjs → set-locale-DvJ1yA4S.cjs} +1 -1
  446. package/components/{slicer-filter-positioning.config-BT5aNPHe.js → slicer-filter-positioning.config-WofHaYJx.js} +1 -1
  447. package/components/{slicer-filter-positioning.config-D7ZLoaGu.cjs → slicer-filter-positioning.config-_frD2LDr.cjs} +1 -1
  448. package/components/slot-menu/index.cjs +1 -1
  449. package/components/slot-menu/index.js +1 -1
  450. package/components/slot-menu/slot-menu.d.ts +6 -0
  451. package/components/slot-menu-B-7MzAd6.cjs +71 -0
  452. package/components/{slot-menu-BB_nJWZx.js → slot-menu-DhGC4yoA.js} +88 -97
  453. package/components/slot-menu-list/index.cjs +1 -1
  454. package/components/slot-menu-list/index.js +1 -1
  455. package/components/{slot-menu-list-C2nLODML.cjs → slot-menu-list-CiJK2fNu.cjs} +1 -1
  456. package/components/{slot-menu-list-3QkrOWgG.js → slot-menu-list-SoDeiZE1.js} +1 -1
  457. package/components/sort-options.config-CiPFyoxx.cjs +20 -0
  458. package/components/sort-options.config-CiZo1AEh.js +104 -0
  459. package/components/{speedometer-chart-positioning.config-CO1MtdU3.js → speedometer-chart-positioning.config-BLXUOOc_.js} +1 -1
  460. package/components/{speedometer-chart-positioning.config-BtDD3TiP.cjs → speedometer-chart-positioning.config-CkTqU3qn.cjs} +1 -1
  461. package/components/{spike-map-positioning.config-BhKVutm1.cjs → spike-map-positioning.config-DmLlz8ZD.cjs} +1 -1
  462. package/components/{spike-map-positioning.config-CQkcCdHD.js → spike-map-positioning.config-pgedE0nh.js} +1 -1
  463. package/components/{strip-plot-positioning.config-DEyOR-yS.js → strip-plot-positioning.config-B4sVlI82.js} +1 -1
  464. package/components/{strip-plot-positioning.config-CEYgtT13.cjs → strip-plot-positioning.config-CtctjJwh.cjs} +1 -1
  465. package/components/sunburst-chart-options.config-DNkL0pN4.cjs +20 -0
  466. package/components/{sunburst-chart-options.config-DVETeZFc.js → sunburst-chart-options.config-Zg42LwmT.js} +26 -83
  467. package/components/{sunburst-chart-options.de-DO65RQI_.cjs → sunburst-chart-options.de-BIJ2Njvn.cjs} +1 -1
  468. package/components/{sunburst-chart-options.de-B0mIITIx.js → sunburst-chart-options.de-BaLziTTh.js} +2 -2
  469. package/components/{sunburst-chart-options.en-C3IkkUBW.cjs → sunburst-chart-options.en-C2P4VIQq.cjs} +1 -1
  470. package/components/{sunburst-chart-options.en-LoUPN34r.js → sunburst-chart-options.en-CxWuNug0.js} +2 -2
  471. package/components/{sunburst-chart-options.es-BV_4fN10.cjs → sunburst-chart-options.es-eGoOC0h2.cjs} +1 -1
  472. package/components/{sunburst-chart-options.es-DBje7CMN.js → sunburst-chart-options.es-nqpK13rB.js} +2 -2
  473. package/components/{sunburst-chart-options.fr-Cnbpsj6t.js → sunburst-chart-options.fr-Dtfoz1Z-.js} +2 -2
  474. package/components/{sunburst-chart-options.fr-DO7-oeNe.cjs → sunburst-chart-options.fr-wdaTbc-I.cjs} +1 -1
  475. package/components/{sunburst-chart-options.nl-DsecjcfE.cjs → sunburst-chart-options.nl-2U3YQ6aP.cjs} +1 -1
  476. package/components/{sunburst-chart-options.nl-CluctKYY.js → sunburst-chart-options.nl-BljrFLha.js} +2 -2
  477. package/components/{sunburst-chart-positioning.config-DP-ifsmn.js → sunburst-chart-positioning.config-BJpphNBF.js} +1 -1
  478. package/components/{sunburst-chart-positioning.config-DNtHXpHg.cjs → sunburst-chart-positioning.config-BaQsxbr9.cjs} +1 -1
  479. package/components/{symbol-map-positioning.config-CoLDPgYM.cjs → symbol-map-positioning.config-657GZ7GZ.cjs} +1 -1
  480. package/components/{symbol-map-positioning.config-Nj7pDOAu.js → symbol-map-positioning.config-DEMmnp7J.js} +1 -1
  481. package/components/theme-options.config-CnSIfTf6.js +47 -0
  482. package/components/theme-options.config-DZJos9OK.cjs +20 -0
  483. package/components/theme-options.i18n-7V690gi-.cjs +20 -0
  484. package/components/theme-options.i18n-DtQoYxRz.js +43 -0
  485. package/components/{treemap-chart-options.config-DLEY6YuI.cjs → treemap-chart-options.config-B-bY4pOq.cjs} +1 -1
  486. package/components/{treemap-chart-options.config-DsqsX9So.js → treemap-chart-options.config-BYbW8htL.js} +1 -1
  487. package/components/{treemap-chart-positioning.config-B_R_cmFs.js → treemap-chart-positioning.config-CLKsuS0b.js} +1 -1
  488. package/components/{treemap-chart-positioning.config-BVOqj2V1.cjs → treemap-chart-positioning.config-DnY0Gnz7.cjs} +1 -1
  489. package/components/utils/base.cjs +1 -1
  490. package/components/utils/base.js +2 -2
  491. package/components/{utils-DIKmx9O1.cjs → utils-BGtDiw5k.cjs} +1 -1
  492. package/components/{utils-DS6Pthr4.js → utils-ZVgZ4EFf.js} +1 -1
  493. package/components/utils.cjs +1 -1
  494. package/components/utils.js +8 -8
  495. package/components/{venn-diagram-positioning.config-DOsSkJYl.js → venn-diagram-positioning.config-BjiidwmG.js} +1 -1
  496. package/components/{venn-diagram-positioning.config-8JCVpYOt.cjs → venn-diagram-positioning.config-OBLHpLAK.cjs} +1 -1
  497. package/components/{wordcloud-chart-options.config-DiyF596X.cjs → wordcloud-chart-options.config-COTlsOrG.cjs} +1 -1
  498. package/components/{wordcloud-chart-options.config-UAl2hfU7.js → wordcloud-chart-options.config-vKHxHgLh.js} +1 -1
  499. package/components/{wordcloud-chart-positioning.config-DSVw_z7Y.js → wordcloud-chart-positioning.config-68AyKLI2.js} +1 -1
  500. package/components/{wordcloud-chart-positioning.config-D13iPEEg.cjs → wordcloud-chart-positioning.config-B_pohQK5.cjs} +1 -1
  501. package/custom-elements.json +3411 -2436
  502. package/grid-core/item-grid-base.d.ts +5 -4
  503. package/package.json +3 -3
  504. package/react/components/ai-chat.component.ts +1 -1
  505. package/react/esm/components/ai-chat.component.d.ts +1 -1
  506. package/react/esm/components/ai-chat.component.js +1 -1
  507. package/react/package.json +2 -2
  508. package/standalone/add-to-dashboard.js +1 -1
  509. package/standalone/chunks/advanced-options.i18n-BDqAAkCh.js +2 -0
  510. package/standalone/chunks/{area-chart-options.config-BMvUma_d.js → area-chart-options.config-MSCX7GCC.js} +1 -1
  511. package/standalone/chunks/{bar-chart-options.config-BpHqXBFq.js → bar-chart-options.config-C-kawBg1.js} +1 -1
  512. package/standalone/chunks/{box-plot-options.config-DDWb_KmV.js → box-plot-options.config-EeKqXIKW.js} +1 -1
  513. package/standalone/chunks/{bubble-chart-options.config-BKPTymfC.js → bubble-chart-options.config-BEP0haal.js} +1 -1
  514. package/standalone/chunks/{chart-helpers-CR-EUEPf.js → chart-helpers-CKlLA7d7.js} +2 -2
  515. package/standalone/chunks/{choropleth-map-options.config-CDMjKnJD.js → choropleth-map-options.config-C9iAp9Kx.js} +1 -1
  516. package/standalone/chunks/{circle-pack-chart-options.config-CjDkh4DG.js → circle-pack-chart-options.config-Ch67WcjC.js} +1 -1
  517. package/standalone/chunks/{color-range-utils-BVyHBRiq.js → color-range-utils-D2amn7jf.js} +1 -1
  518. package/standalone/chunks/{column-chart-options.config-YIe6cMV5.js → column-chart-options.config-kXBPyFRG.js} +1 -1
  519. package/standalone/chunks/{combination-chart-options.config-Bf7cNmpc.js → combination-chart-options.config-CvVDQmwB.js} +1 -1
  520. package/standalone/chunks/data-broker-CUCszU0S.js +2 -0
  521. package/standalone/chunks/de-CBvR-tEX.js +2 -0
  522. package/standalone/chunks/{display-settings-binning-BeLLxd3i.js → display-settings-binning-5gaYqJVT.js} +1 -1
  523. package/standalone/chunks/display-settings-datetime-DhmVs5jK.js +199 -0
  524. package/standalone/chunks/{display-settings-grand-totals-BuhpQKJ6.js → display-settings-grand-totals-B83suS2N.js} +1 -1
  525. package/standalone/chunks/{display-settings-numeric-m30IYI7I.js → display-settings-numeric-CnKNRgjc.js} +1 -1
  526. package/standalone/chunks/display-settings-period-over-period-Di_2_DDX.js +133 -0
  527. package/standalone/chunks/donut-chart-options.config-re9dbce1.js +2 -0
  528. package/standalone/chunks/donut-chart-options.de-C1yjMc7p.js +2 -0
  529. package/standalone/chunks/donut-chart-options.en-CJSA_qMs.js +2 -0
  530. package/standalone/chunks/donut-chart-options.es-9wl-kU6W.js +2 -0
  531. package/standalone/chunks/donut-chart-options.fr-FewVJ9oP.js +2 -0
  532. package/standalone/chunks/donut-chart-options.nl-BA31OsN3.js +2 -0
  533. package/standalone/chunks/{embed-Bv1ps-EM.js → embed-BL4OOcIV.js} +1 -1
  534. package/standalone/chunks/en-Cu0ra3lJ.js +2 -0
  535. package/standalone/chunks/en-GB-B575630r.js +2 -0
  536. package/standalone/chunks/en-US-Cu0ra3lJ.js +2 -0
  537. package/standalone/chunks/es-CJnRT1YI.js +2 -0
  538. package/standalone/chunks/{filters-CxgBXUF1.js → filters-Dk7oDe_z.js} +75 -73
  539. package/standalone/chunks/{formula-codemirror-Cq94j3-f.js → formula-codemirror-Dn_LEpVx.js} +8 -8
  540. package/standalone/chunks/fr-DqE0NP1j.js +2 -0
  541. package/standalone/chunks/funnel-chart-options.config-CW0RAyLR.js +2 -0
  542. package/standalone/chunks/{funnel-chart-options.de-u5OrFyng.js → funnel-chart-options.de-D2UImO-s.js} +1 -1
  543. package/standalone/chunks/{funnel-chart-options.en-BEGSBn35.js → funnel-chart-options.en-BJr4frpT.js} +1 -1
  544. package/standalone/chunks/{funnel-chart-options.es-CxWkEgMs.js → funnel-chart-options.es-DkAYtLaS.js} +1 -1
  545. package/standalone/chunks/{funnel-chart-options.fr-DZmmgK2t.js → funnel-chart-options.fr-BD3VKHzw.js} +1 -1
  546. package/standalone/chunks/{funnel-chart-options.nl-C6BitaEJ.js → funnel-chart-options.nl-CubJLSq7.js} +1 -1
  547. package/standalone/chunks/{guidelines-options.config-CS29_J9M.js → guidelines-options.config-CrJ_haaO.js} +1 -1
  548. package/standalone/chunks/{heat-map-options.config-DDQMD38W.js → heat-map-options.config-_1TkgBVb.js} +1 -1
  549. package/standalone/chunks/heat-table-options.config-tgVKW_7X.js +2 -0
  550. package/standalone/chunks/interactivity-options.config-CG_ZbLS5.js +2 -0
  551. package/standalone/chunks/interactivity-options.i18n-V1RAn6Ue.js +2 -0
  552. package/standalone/chunks/{is-same-option-value-7kXNF4st.js → is-same-option-value-CfxEd5pG.js} +1 -1
  553. package/standalone/chunks/{item-option-action-button-group-BoyqF9vt.js → item-option-action-button-group-C1ke6Jb3.js} +1 -1
  554. package/standalone/chunks/{item-option-base-CBcDT8MX.js → item-option-base-DSAq8pgm.js} +1 -1
  555. package/standalone/chunks/{item-option-color-palette-picker-C9PGAv4V.js → item-option-color-palette-picker-waW4sAIj.js} +1 -1
  556. package/standalone/chunks/{item-option-color-picker-D4fVJlqF.js → item-option-color-picker-9e_3aSen.js} +1 -1
  557. package/standalone/chunks/{item-option-color-range-BlAdTguE.js → item-option-color-range-CWmg4Tdk.js} +1 -1
  558. package/standalone/chunks/{item-option-guidelines-DMsYsHDu.js → item-option-guidelines-BnLLvaFI.js} +1 -1
  559. package/standalone/chunks/{item-option-multi-language-field-NUbm1drg.js → item-option-multi-language-field-BN9u0rGs.js} +1 -1
  560. package/standalone/chunks/{item-option-number-field-DRp7kbHL.js → item-option-number-field-D2gvKQN_.js} +1 -1
  561. package/standalone/chunks/{item-option-panel-cXrRclzM.js → item-option-panel-BWQpttWc.js} +2 -2
  562. package/standalone/chunks/{item-option-picker-Ba09L4Cs.js → item-option-picker-BElgjysX.js} +1 -1
  563. package/standalone/chunks/{item-option-position-picker-GEGTnhjw.js → item-option-position-picker-B7FGJPTv.js} +1 -1
  564. package/standalone/chunks/{item-option-positions-number-field-n44s1k5v.js → item-option-positions-number-field-CyCWqMby.js} +1 -1
  565. package/standalone/chunks/{item-option-radio-button-group-3s_b1NvR.js → item-option-radio-button-group-DjMjG9W3.js} +1 -1
  566. package/standalone/chunks/{item-option-slider-DtY65Gxk.js → item-option-slider-CJrobai6.js} +1 -1
  567. package/standalone/chunks/{item-option-switch-4sJaI0mx.js → item-option-switch-DTK0eRzd.js} +1 -1
  568. package/standalone/chunks/{item-option-text-field-Bt6Lj6kh.js → item-option-text-field-B4-wMWpQ.js} +1 -1
  569. package/standalone/chunks/item-slot-picker-panel-BZsTEDns.js +438 -0
  570. package/standalone/chunks/legend-options.i18n-Dr6XmdZs.js +2 -0
  571. package/standalone/chunks/line-chart-options.config-VgcDr1j6.js +2 -0
  572. package/standalone/chunks/load-data-fields-for-datasets-Df6IGwne.js +25 -0
  573. package/standalone/chunks/localize-DIWFho02.js +2 -0
  574. package/standalone/chunks/{localized-decorator-DosMCCQo.js → localized-decorator-C2ufmkVS.js} +1 -1
  575. package/standalone/chunks/{localized-mixin-BWJj88bd.js → localized-mixin-CLvEZO1g.js} +1 -1
  576. package/standalone/chunks/{luzmo-icon-markup-ByaNI6dg.js → luzmo-icon-markup-C1Wzxt4b.js} +1 -1
  577. package/standalone/chunks/nl-DBD8_AIO.js +2 -0
  578. package/standalone/chunks/{ohlc-chart-options.config-kyYOgBtR.js → ohlc-chart-options.config-DoFcORQY.js} +1 -1
  579. package/standalone/chunks/{option-interaction-controller-BuwRr21c.js → option-interaction-controller-BfHSkomY.js} +1 -1
  580. package/standalone/chunks/{parallel-coordinates-plot-options.config-BcIYCRdF.js → parallel-coordinates-plot-options.config-JmTkwzbf.js} +1 -1
  581. package/standalone/chunks/{pivot-table-options.config-BZpId1ju.js → pivot-table-options.config-mk1a9meE.js} +1 -1
  582. package/standalone/chunks/{pyramid-chart-options.config-xYIVE_ib.js → pyramid-chart-options.config-DuCSp-ss.js} +1 -1
  583. package/standalone/chunks/{route-map-options.config-CGBkHnhM.js → route-map-options.config-B73cNABj.js} +1 -1
  584. package/standalone/chunks/{sankey-diagram-options.config-Curc2-If.js → sankey-diagram-options.config-BsFxRYGh.js} +1 -1
  585. package/standalone/chunks/scatter-plot-options.config-DiO2UduI.js +2 -0
  586. package/standalone/chunks/sort-options.config-fFAfPcSI.js +2 -0
  587. package/standalone/chunks/{spike-map-options.config-CSenlJ_F.js → spike-map-options.config-BpRwiS7U.js} +1 -1
  588. package/standalone/chunks/sunburst-chart-options.config-TCXdodS8.js +2 -0
  589. package/standalone/chunks/sunburst-chart-options.de-DabJH9rY.js +2 -0
  590. package/standalone/chunks/sunburst-chart-options.en-BNJlsmSV.js +2 -0
  591. package/standalone/chunks/sunburst-chart-options.es-xn2E_v17.js +2 -0
  592. package/standalone/chunks/sunburst-chart-options.fr-DQR4oaiY.js +2 -0
  593. package/standalone/chunks/sunburst-chart-options.nl-BZGlfl67.js +2 -0
  594. package/standalone/chunks/{task-BlhDPTQS.js → task-B6C9QMNJ.js} +1 -1
  595. package/standalone/chunks/theme-options.config-W0JNb9nG.js +2 -0
  596. package/standalone/chunks/theme-options.i18n-DtI0eOJ4.js +2 -0
  597. package/standalone/chunks/{treemap-chart-options.config-DxkumoYq.js → treemap-chart-options.config-CLpDBIB5.js} +1 -1
  598. package/standalone/chunks/{wordcloud-chart-options.config-b-ibtRWp.js → wordcloud-chart-options.config-Bjw10jRd.js} +1 -1
  599. package/standalone/interactive-viz-item.js +54 -53
  600. package/standalone/item-grid.js +1 -1
  601. package/standalone/manifest.json +92 -87
  602. package/types/ai-chat.types.d.ts +60 -0
  603. package/types.d.ts +1 -1
  604. package/utils/filters/expressions.d.ts +2 -0
  605. package/utils/slot-state/slot-store.d.ts +3 -8
  606. package/utils/time/period-over-period-condition.const.d.ts +0 -1
  607. package/utils/time/period-over-period-context.d.ts +75 -0
  608. package/utils/time/tests/period-over-period-context.test.d.ts +1 -0
  609. package/components/ai-chat-BNcSadGI.cjs +0 -393
  610. package/components/chart-helpers-fMnqHRzC.cjs +0 -20
  611. package/components/de-KvAhLsm8.cjs +0 -20
  612. package/components/display-settings-DaZ3CiKB.cjs +0 -143
  613. package/components/display-settings-period-over-period-B8Ne3lq-.cjs +0 -227
  614. package/components/donut-chart-options.config-DX-spmaZ.cjs +0 -20
  615. package/components/es-DVISHTAz.cjs +0 -20
  616. package/components/filter-expression-picker-Cc3xfiGT.js +0 -432
  617. package/components/filter-expression-picker-DDSI9bYq.cjs +0 -40
  618. package/components/filter-item-DQNbp7Qn.cjs +0 -111
  619. package/components/filter-value-picker-datetime-BVDQ-og5.cjs +0 -51
  620. package/components/filters-BPbPFOu5.cjs +0 -187
  621. package/components/fr-BCxcMVQV.cjs +0 -20
  622. package/components/funnel-chart-options.config-CKp94nx7.cjs +0 -20
  623. package/components/heat-table-options.config-D21xtaIk.cjs +0 -20
  624. package/components/interactive-viz-item-ojdH1uk0.cjs +0 -268
  625. package/components/interactivity-options.config-Bzk2L-qh.cjs +0 -20
  626. package/components/interactivity-options.config-MuEP5vSt.js +0 -72
  627. package/components/interactivity-options.i18n-BsYv4Rh9.cjs +0 -20
  628. package/components/item-slot-drop-DLzi4Dik.cjs +0 -91
  629. package/components/item-slot-drop-panel-Oh8zdKJH.cjs +0 -57
  630. package/components/item-slot-picker-O9HKr3mv.cjs +0 -158
  631. package/components/item-slot-picker-panel-BhhN54IM.cjs +0 -82
  632. package/components/nl-XotE1MQq.cjs +0 -20
  633. package/components/slot-menu-C8p0nkVS.cjs +0 -71
  634. package/components/sunburst-chart-options.config-CZdd6qx0.cjs +0 -20
  635. package/standalone/chunks/data-broker-DXDyIrj_.js +0 -2
  636. package/standalone/chunks/de-BkB0q1Eg.js +0 -2
  637. package/standalone/chunks/display-settings-datetime-BkeiKIVV.js +0 -199
  638. package/standalone/chunks/display-settings-period-over-period-CqDlOSRn.js +0 -209
  639. package/standalone/chunks/donut-chart-options.config-DWpePR5V.js +0 -2
  640. package/standalone/chunks/donut-chart-options.de-IKGJRoDL.js +0 -2
  641. package/standalone/chunks/donut-chart-options.en-O2IK3YiS.js +0 -2
  642. package/standalone/chunks/donut-chart-options.es-gKAHuFAU.js +0 -2
  643. package/standalone/chunks/donut-chart-options.fr-Q-uMrtQG.js +0 -2
  644. package/standalone/chunks/donut-chart-options.nl-B6v6jK4l.js +0 -2
  645. package/standalone/chunks/en-63f7j4v7.js +0 -2
  646. package/standalone/chunks/en-GB-QAmXQf8W.js +0 -2
  647. package/standalone/chunks/en-US-63f7j4v7.js +0 -2
  648. package/standalone/chunks/es-Bo0jStZn.js +0 -2
  649. package/standalone/chunks/fr-Co_qVhhV.js +0 -2
  650. package/standalone/chunks/funnel-chart-options.config-S1yxc6IG.js +0 -2
  651. package/standalone/chunks/heat-table-options.config-B4K0Ygug.js +0 -2
  652. package/standalone/chunks/interactivity-options.config-09eXx6k6.js +0 -2
  653. package/standalone/chunks/interactivity-options.i18n-BLDCmZkC.js +0 -2
  654. package/standalone/chunks/item-slot-picker-panel-BOSVFBIy.js +0 -429
  655. package/standalone/chunks/line-chart-options.config--_LXaPbB.js +0 -2
  656. package/standalone/chunks/load-data-fields-for-datasets-CDlut-6S.js +0 -25
  657. package/standalone/chunks/localize-DXRmGRe-.js +0 -2
  658. package/standalone/chunks/nl-CQz2jrVx.js +0 -2
  659. package/standalone/chunks/scatter-plot-options.config-DG9Ki-mt.js +0 -2
  660. package/standalone/chunks/sunburst-chart-options.config-DOBSe3i5.js +0 -2
  661. package/standalone/chunks/sunburst-chart-options.de-D3iq4Q-m.js +0 -2
  662. package/standalone/chunks/sunburst-chart-options.en-BUJ_Pr9C.js +0 -2
  663. package/standalone/chunks/sunburst-chart-options.es-stKrKGz2.js +0 -2
  664. package/standalone/chunks/sunburst-chart-options.fr-RkBtlMNp.js +0 -2
  665. package/standalone/chunks/sunburst-chart-options.nl-BUeDNot_.js +0 -2
package/README.md CHANGED
@@ -15,7 +15,7 @@ ACK produces and edits chart configuration (type, slots, options, filters). It d
15
15
  ## Installation
16
16
 
17
17
  ```bash
18
- npm install @luzmo/analytics-components-kit lit@^3.3.2 @luzmo/lucero@^2.6.1 @luzmo/icons@^1.0.1-alpha.49
18
+ npm install @luzmo/analytics-components-kit lit@^3.3.2 @luzmo/lucero@^2.7.1 @luzmo/icons@^1.0.1-alpha.49
19
19
  ```
20
20
 
21
21
  ACK uses Lucero 2 for its design-system primitives. Package managers that do not install peer dependencies automatically must install the compatible peer versions explicitly.
@@ -87,6 +87,12 @@ See the [ACK documentation](https://developer.luzmo.com/guide/ack--overview) for
87
87
  usage and API guidance. These exposed APIs follow semantic versioning. Internal
88
88
  helpers are not standalone public component subpaths.
89
89
 
90
+ `luzmo-ai-chat` can render a saved Agent's choice questions. It declares them to
91
+ the aiprompt API only when you opt in with `interactions: ['question']` in the
92
+ `AiChatSession` config, because an API that predates `client_capabilities`
93
+ rejects every request that carries it. Approval cards will follow in a later
94
+ release.
95
+
90
96
  ### Data Fields
91
97
 
92
98
  Present the columns and formulas from a dataset so users can pick the data they want to visualize. Also includes components to display and edit Luzmo formula/column expressions (function syntax, e.g. `SUM({datasetId:columnId})`). Formula components accept datasets directly via `datasetsDataFields` or fetch them from the Luzmo API via `dataset-ids` (+ auth).
@@ -115,6 +121,8 @@ Let users assign data fields to chart slots (e.g. `x-axis`, `measure`, `legend`)
115
121
 
116
122
  Slot panels also surface inline calculations supplied through `slotsContents`. An aggregating ad-hoc measure uses `formula`; a non-aggregating derived dimension uses `expression`. Slots show compact **Formula** or **Expression** labels with matching icons; the **cog menu** shows the full read-only calculation under the same heading, with vertical scrolling after four rows. Override its size-dependent maximum width with `--luzmo-display-settings-calculation-max-width`. Clear the picker with its **X** action, or clear a drop target with its **trash** action, to return to column selection.
117
123
 
124
+ Slot drops, pickers, and their panels accept `hasConnectedComparisonFilter` (default `false`) as runtime context. Update it when applicable comparison filters change, and supply full `slotsContents` plus `itemType` for comparison level limits. Emitted period comparisons, including event-only constraint proposals, contain only saved comparison settings and compact date-column references. Comparisons are supported for area, bar, combination, column and line charts, pivot tables and KPIs; chart categories using arrays, weekly levels or non-default datetime display modes are excluded.
125
+
118
126
  ### Item Options
119
127
 
120
128
  Let users adjust how a chart looks and behaves (colors, labels, chart mode, legend position, ...).
@@ -126,7 +134,7 @@ Let users adjust how a chart looks and behaves (colors, labels, chart mode, lege
126
134
 
127
135
  For an editor with undo, set `live-interactions` on `luzmo-item-option`, `luzmo-item-option-panel`, or `luzmo-interactive-viz-item`. You can also enable it directly on `luzmo-item-option-slider`, `luzmo-item-option-color-picker`, `luzmo-item-option-color-range`, and `luzmo-item-option-guidelines` (line colors). Drags and held keys then update live, without debounce. Gesture updates carry `interaction: { id }` on `luzmo-option-changed` for bare controls, `luzmo-options-changed` for item option/panel, and `luzmo-chart-changed` for interactive viz item.
128
136
 
129
- All these entry points emit or forward `luzmo-option-interaction-start` (detail `{ id }`) and `-end` / `-cancel` (detail `{ id, changed }`) so you can record one history entry per gesture. A press that changes nothing emits no lifecycle events. Events through item option/panel include `optionKey`; bare controls omit it. Interactive viz item forwards the lifecycle with `optionKey`, plus the original `chart` and `generation` context. Call `endInteraction()` on the control or enclosing item option, panel, or interactive viz item before removing or rebinding it: it synchronously ends open gestures while keeping their current values. Live interactions are off by default; the default keeps the debounced behavior. The gesture boundaries come from Lucero; ACK requires `@luzmo/lucero` `^2.6.1` (at least 2.6.1 and below 3.0.0).
137
+ All these entry points emit or forward `luzmo-option-interaction-start` (detail `{ id }`) and `-end` / `-cancel` (detail `{ id, changed }`) so you can record one history entry per gesture. A press that changes nothing emits no lifecycle events. Events through item option/panel include `optionKey`; bare controls omit it. Interactive viz item forwards the lifecycle with `optionKey`, plus the original `chart` and `generation` context. Call `endInteraction()` on the control or enclosing item option, panel, or interactive viz item before removing or rebinding it: it synchronously ends open gestures while keeping their current values. Live interactions are off by default; the default keeps the debounced behavior. The gesture boundaries come from Lucero; ACK requires `@luzmo/lucero` `^2.7.1` (at least 2.7.1 and below 3.0.0).
130
138
 
131
139
  Individual option control editors are also exported for fully custom option UIs: `item-option-action-button-group`, `item-option-color-palette-picker`, `item-option-color-picker`, `item-option-color-range`, `item-option-guidelines`, `item-option-multi-language-field`, `item-option-number-field`, `item-option-picker`, `item-option-position-picker`, `item-option-positions-number-field`, `item-option-radio-button-group`, `item-option-slider`, `item-option-switch`, and `item-option-text-field`.
132
140
 
@@ -140,7 +148,7 @@ Individual option control editors are also exported for fully custom option UIs:
140
148
 
141
149
  `<luzmo-filters>` defaults to the standard Luzmo filter format (`ItemFilterGroup[]` from `@luzmo/dashboard-contents-types`). Narrow `luzmo-filters-changed` on `event.detail.format` before forwarding: canonical groups are compatible with `luzmo-embed-viz-item`'s `filters` property and `luzmo-item-grid` items' `filters`; clean groups are for aligned hosts that accept `ItemFilterOutput` / `DashboardFilterOutput`. Group `condition` values are lowercase `and` / `or`. The published `FilterGroup` editor type uses the same casing, so typed consumers must migrate uppercase literals to `and` / `or`. At runtime uppercase `AND` / `OR` input is still accepted and normalized to lowercase on output.
142
150
 
143
- `filters` accepts both halves of the public `ItemFilterOutput` / `DashboardFilterOutput` unions, so the result of an aligned `getFilters()` can be passed straight back in: canonical `ItemFilterGroup[]`, or clean clause groups that own a top-level `clause`, nest inline, and flatten each leaf onto its reference (including dashboard retrieval envelopes). Output stays canonical unless you set `format="clean"`, and `event.detail.format` names the half you received. A tree that cannot be represented cleanly — mixed `where`/`having` under `or`, a missing reference or value, an `in` / `not in` expression whose value is not an array, or a `between` expression whose range does not contain exactly two values — falls back to canonical output. A leaf that mixes encodings, or that matches neither a complete clean nor a complete canonical encoding, is rejected and the previous `filters` value is kept. Typed consumers of `FiltersChangedEventDetail` must narrow on `format` to keep `filters` as `ItemFilterGroup[]`. `transformFilters`, `reverseTransformFilters`, and `detectFiltersFormat` are exported from `@luzmo/analytics-components-kit/filters` for hosts that convert outside the editor. New groups and leaves receive a UUID (`id` on the group, `properties.id` on the leaf) that is kept on later edits. A newly chosen formula field defaults to `properties.type: 'having'`; an explicit `where` on a formula leaf is kept.
151
+ `filters` accepts both halves of the public `ItemFilterOutput` / `DashboardFilterOutput` unions, so the result of an aligned `getFilters()` can be passed straight back in: canonical `ItemFilterGroup[]`, or clean clause groups that own a top-level `clause`, nest inline, and flatten each leaf onto its reference (including dashboard retrieval envelopes). Output stays canonical unless you set `format="clean"`, and `event.detail.format` names the half you received. A tree that cannot be represented cleanly — mixed `where`/`having` under `or`, a missing reference or value, an `in` / `not in` expression whose value is not an array, or a `between` expression whose range does not contain exactly two values — falls back to canonical output. A leaf that mixes encodings, or that matches neither a complete clean nor a complete canonical encoding, is rejected and the previous `filters` value is kept. Typed consumers of `FiltersChangedEventDetail` must narrow on `format` to keep `filters` as `ItemFilterGroup[]`. `transformFilters`, `reverseTransformFilters`, and `detectFiltersFormat` are exported from `@luzmo/analytics-components-kit/filters` for hosts that convert outside the editor. New groups and leaves receive a UUID (`id` on the group, `properties.id` on the leaf) that is kept on later edits. A newly chosen formula field defaults to `properties.type: 'having'`; an explicit `where` on a formula leaf is kept. A canonical leaf whose reference operands use the deprecated `dataset_id`, `column_id` or `formula_id` keys is read as `datasetId`, `columnId` or `formulaId` on every operand (both sides of a field-to-field comparison too), and an edit emits the camelCase keys.
144
152
 
145
153
  Named parameter-backed values are opt-in with `allow-parameters`. Supply the initial definitions through the `parameters` property. A parameter created in the editor is appended to `parameters` and announced with `luzmo-parameter-created`, so handle that event to persist it; creating does not apply it to a filter, since the user attaches it by picking it from the list. Listen for `luzmo-parameter-removed` when a definition is detached from one filter. Detaching does not delete the definition. The exported `FilterParameter`, `FilterParameterType`, and `FilterParameterEventDetail` types describe this API.
146
154
 
@@ -165,7 +173,9 @@ luzmo-filters {
165
173
  | --------- | ------------------------------------------- | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------- |
166
174
  | Item Grid | `@luzmo/analytics-components-kit/item-grid` | Interactive grid to arrange, resize, and manage multiple charts (renders internally) | [Docs](https://developer.luzmo.com/guide/ack--components--chart-rendering--luzmo-item-grid) |
167
175
 
168
- To render a single chart, use `luzmo-embed-viz-item` from `@luzmo/embed` (not part of this kit); see [Rendering](#rendering).
176
+ `luzmo-interactive-viz-item` (`@luzmo/analytics-components-kit/interactive-viz-item`) renders one chart with inline actions, a feedback bar and a config panel, for example as an AI chat answer. `chartRenderOptions` (property only) is merged into the embedded chart's options for display settings and is never emitted nor saved. In the config panel, `hide-config-options` hides the options tab, and `slot-selects` (`multiple` by default, or `single`) and `slot-grows` are passed to the slot picker panel as `selects` and `grows`. `slotsConfiguration`, `customOptionsConfiguration` and `customTranslations` (property only) pass the configs of a chart type ACK has no definition for, such as a custom chart, to the config panel. `export(type)` takes a `VizItemExportType` and forwards to the embedded chart's export, waiting for the embedded renderer when it has not loaded yet. It resolves without a value when there is no chart, when the embed fails, or when the chart is cleared or the element removed first. CSS parts: `container`, `actions-bar`, `actions`, `chart-container`, `footer`, `config-panel`.
177
+
178
+ To render a bare chart without these, use `luzmo-embed-viz-item` from `@luzmo/embed` (not part of this kit); see [Rendering](#rendering).
169
179
 
170
180
  ## Usage: Drag & Drop Data Flow
171
181
 
@@ -347,7 +357,10 @@ import type {
347
357
  ItemFilterOutput,
348
358
  DashboardFilterOutput,
349
359
  ItemOptionsChangedEventDetail,
350
- ItemOptionInteractionEventDetail
360
+ ItemOptionInteractionEventDetail,
361
+ ChatMessage,
362
+ ChatMessageQuestion,
363
+ VizItemExportType
351
364
  } from '@luzmo/analytics-components-kit/types';
352
365
  ```
353
366
 
@@ -1,6 +1,6 @@
1
1
  import { booleanAttribute, ChangeDetectionStrategy, Component, DestroyRef, ElementRef, inject, Input, OnChanges, output, Renderer2, SimpleChanges } from '@angular/core';
2
2
  import '@luzmo/analytics-components-kit/add-to-dashboard';
3
- import type { LuzmoAddToDashboard as LuzmoAddToDashboardHostElement, AddToDashboardChartAddFailedEventDetail, AddToDashboardChartAddedEventDetail } from '@luzmo/analytics-components-kit/add-to-dashboard';
3
+ import type { LuzmoAddToDashboard as LuzmoAddToDashboardHostElement, AddToDashboardChartAddFailedEventDetail, AddToDashboardChartAddedEventDetail, DashboardActions, FlexChartConfig } from '@luzmo/analytics-components-kit/add-to-dashboard';
4
4
  export type { AddToDashboardChartAddFailedEventDetail, AddToDashboardChartAddedEventDetail, AddToDashboardSettings, BuiltInDashboardActionsConfig, DashboardActionCallOptions, DashboardActions, DashboardListPage, DashboardListRequest, DashboardOption, FlexChartConfig } from '@luzmo/analytics-components-kit/add-to-dashboard';
5
5
  import type { Placement } from '@luzmo/lucero';
6
6
 
@@ -26,9 +26,13 @@ export class LuzmoAddToDashboard implements OnChanges {
26
26
  return this.host;
27
27
  }
28
28
 
29
- /** The language for UI labels. Supported values: 'en', 'nl', 'fr', 'de', 'es' */
30
- @Input({ alias: 'language' })
31
- language?: string;
29
+ /** Chart to save; `options.theme` is removed before it reaches the adapter. */
30
+ @Input({ alias: 'chart' })
31
+ chart?: FlexChartConfig | null;
32
+
33
+ /** Host data operations. When unset, the built-in adapter on the auth properties is used. */
34
+ @Input({ alias: 'dashboardActions' })
35
+ dashboardActions?: DashboardActions | null;
32
36
 
33
37
  /** Auth key for the built-in adapter. */
34
38
  @Input({ alias: 'authKey' })
@@ -50,6 +54,10 @@ export class LuzmoAddToDashboard implements OnChanges {
50
54
  @Input({ alias: 'disabled', transform: booleanAttribute })
51
55
  disabled?: boolean;
52
56
 
57
+ /** The language for UI labels. Supported values: 'en', 'nl', 'fr', 'de', 'es' */
58
+ @Input({ alias: 'language' })
59
+ language?: string;
60
+
53
61
  /** The size of the element */
54
62
  @Input({ alias: 'size' })
55
63
  size?: 's' | 'm' | 'l' | 'xl';
@@ -72,8 +80,11 @@ export class LuzmoAddToDashboard implements OnChanges {
72
80
  ngOnChanges(changes: SimpleChanges): void {
73
81
  for (const key of Object.keys(changes)) {
74
82
  switch (key) {
75
- case 'language':
76
- this.setHostProperty('language', changes['language'].currentValue);
83
+ case 'chart':
84
+ this.setHostProperty('chart', changes['chart'].currentValue);
85
+ break;
86
+ case 'dashboardActions':
87
+ this.setHostProperty('dashboardActions', changes['dashboardActions'].currentValue);
77
88
  break;
78
89
  case 'authKey':
79
90
  this.setHostProperty('authKey', changes['authKey'].currentValue);
@@ -90,6 +101,9 @@ export class LuzmoAddToDashboard implements OnChanges {
90
101
  case 'disabled':
91
102
  this.setHostProperty('disabled', changes['disabled'].currentValue);
92
103
  break;
104
+ case 'language':
105
+ this.setHostProperty('language', changes['language'].currentValue);
106
+ break;
93
107
  case 'size':
94
108
  this.setHostProperty('size', changes['size'].currentValue);
95
109
  break;
@@ -1,7 +1,7 @@
1
1
  import { booleanAttribute, ChangeDetectionStrategy, Component, DestroyRef, ElementRef, inject, Input, OnChanges, output, Renderer2, SimpleChanges } from '@angular/core';
2
2
  import '@luzmo/analytics-components-kit/ai-chat';
3
3
  import type { LuzmoAiChatEmptyState as LuzmoAiChatEmptyStateHostElement, AiChatEmptyStateSuggestion, AiChatEmptyStateSuggestionSelectedDetail } from '@luzmo/analytics-components-kit/ai-chat';
4
- export type { AgentStreamDefinition, AiChatAgentConfig, AiChatCompleteEvent, AiChatConversationIdChangedEventDetail, AiChatDatasetsChangedEventDetail, AiChatEmptyStateSuggestion, AiChatEmptyStateSuggestionSelectedDetail, AiChatMessageSentEventDetail, AiChatRecognizedStepType, AiChatSessionBuildContext, AiChatSessionCallbacks, AiChatSessionConfig, AiChatSessionControllerOptions, AiChatSessionRestoreParams, AiChatSessionRestoreResult, AiChatSessionSeed, AiChatSessionState, AiChatSessionSubmitParams, AiChatStepBase, AiChatStepEvent, AiDictationCreateBody, AiDictationProperties, AiPromptCreateBody, AiPromptDeleteBody, AssistantMessageAction, AssistantMessageActionConfirmVariant, AssistantMessageActionEventDetail, AssistantMessageFeedbackEventDetail, AssistantMessageFeedbackRating, BuildAiDictationRequestOptions, ChatMessageElicitation, LuzmoPromptSubmittedEventDetail, LuzmoRestoreRequestedEventDetail, ProgressTreeNode, PromptBoxAttachment, PromptBoxFileIcons, RecognizedStepEvent, StreamAiDictationOptions, StreamHandlerCallbacks, StreamHandlerContext, StreamHandlerState, StreamingRequestOptions, StreamingResponse, UnknownStepEvent, UploadAiPromptImagesOptions } from '@luzmo/analytics-components-kit/ai-chat';
4
+ export type { AgentStreamDefinition, AiChatAgentConfig, AiChatCompleteEvent, AiChatConversationIdChangedEventDetail, AiChatDatasetsChangedEventDetail, AiChatEmptyStateSuggestion, AiChatEmptyStateSuggestionSelectedDetail, AiChatMessageSentEventDetail, AiChatRecognizedStepType, AiChatSessionBuildContext, AiChatSessionCallbacks, AiChatSessionConfig, AiChatSessionControllerOptions, AiChatSessionRestoreParams, AiChatSessionRestoreResult, AiChatSessionSeed, AiChatSessionState, AiChatSessionSubmitParams, AiChatStepBase, AiChatStepEvent, AiDictationCreateBody, AiDictationProperties, AiPromptCreateBody, AiPromptDeleteBody, AssistantMessageAction, AssistantMessageActionConfirmVariant, AssistantMessageActionEventDetail, AssistantMessageFeedbackEventDetail, AssistantMessageFeedbackRating, BuildAiDictationRequestOptions, ChatChoiceOption, ChatChoiceQuestion, ChatMessageElicitation, ChatMessageQuestion, ChatQuestionAnswers, ChatQuestionResponse, LuzmoPromptSubmittedEventDetail, LuzmoRestoreRequestedEventDetail, ProgressTreeNode, PromptBoxAttachment, PromptBoxFileIcons, RecognizedStepEvent, StreamAiDictationOptions, StreamHandlerCallbacks, StreamHandlerContext, StreamHandlerState, StreamingRequestOptions, StreamingResponse, UnknownStepEvent, UploadAiPromptImagesOptions } from '@luzmo/analytics-components-kit/ai-chat';
5
5
 
6
6
  @Component({
7
7
  selector: 'luzmo-ai-chat-empty-state',
@@ -1,8 +1,8 @@
1
1
  import { booleanAttribute, ChangeDetectionStrategy, Component, DestroyRef, ElementRef, inject, Input, OnChanges, output, Renderer2, SimpleChanges } from '@angular/core';
2
2
  import '@luzmo/analytics-components-kit/ai-chat';
3
3
  import type { LuzmoAiChat as LuzmoAiChatHostElement, AiChatAgentConfig, AiChatCompleteEvent, AiChatConversationIdChangedEventDetail, AiChatDatasetsChangedEventDetail, AiChatEmptyStateSuggestion, AiChatMessageSentEventDetail, AiChatSession, AiChatStepEvent, AssistantMessageActionEventDetail, AssistantMessageFeedbackEventDetail } from '@luzmo/analytics-components-kit/ai-chat';
4
- export type { AgentStreamDefinition, AiChatAgentConfig, AiChatCompleteEvent, AiChatConversationIdChangedEventDetail, AiChatDatasetsChangedEventDetail, AiChatEmptyStateSuggestion, AiChatEmptyStateSuggestionSelectedDetail, AiChatMessageSentEventDetail, AiChatRecognizedStepType, AiChatSessionBuildContext, AiChatSessionCallbacks, AiChatSessionConfig, AiChatSessionControllerOptions, AiChatSessionRestoreParams, AiChatSessionRestoreResult, AiChatSessionSeed, AiChatSessionState, AiChatSessionSubmitParams, AiChatStepBase, AiChatStepEvent, AiDictationCreateBody, AiDictationProperties, AiPromptCreateBody, AiPromptDeleteBody, AssistantMessageAction, AssistantMessageActionConfirmVariant, AssistantMessageActionEventDetail, AssistantMessageFeedbackEventDetail, AssistantMessageFeedbackRating, BuildAiDictationRequestOptions, ChatMessageElicitation, LuzmoPromptSubmittedEventDetail, LuzmoRestoreRequestedEventDetail, ProgressTreeNode, PromptBoxAttachment, PromptBoxFileIcons, RecognizedStepEvent, StreamAiDictationOptions, StreamHandlerCallbacks, StreamHandlerContext, StreamHandlerState, StreamingRequestOptions, StreamingResponse, UnknownStepEvent, UploadAiPromptImagesOptions } from '@luzmo/analytics-components-kit/ai-chat';
5
- import type { AiPromptAgent, AiPromptCustomItemInput, AiPromptItemTask, AiPromptScreenMode, DashboardStatePayload } from '@luzmo/analytics-components-kit/ai-chat';
4
+ export type { AgentStreamDefinition, AiChatAgentConfig, AiChatCompleteEvent, AiChatConversationIdChangedEventDetail, AiChatDatasetsChangedEventDetail, AiChatEmptyStateSuggestion, AiChatEmptyStateSuggestionSelectedDetail, AiChatMessageSentEventDetail, AiChatRecognizedStepType, AiChatSessionBuildContext, AiChatSessionCallbacks, AiChatSessionConfig, AiChatSessionControllerOptions, AiChatSessionRestoreParams, AiChatSessionRestoreResult, AiChatSessionSeed, AiChatSessionState, AiChatSessionSubmitParams, AiChatStepBase, AiChatStepEvent, AiDictationCreateBody, AiDictationProperties, AiPromptCreateBody, AiPromptDeleteBody, AssistantMessageAction, AssistantMessageActionConfirmVariant, AssistantMessageActionEventDetail, AssistantMessageFeedbackEventDetail, AssistantMessageFeedbackRating, BuildAiDictationRequestOptions, ChatChoiceOption, ChatChoiceQuestion, ChatMessageElicitation, ChatMessageQuestion, ChatQuestionAnswers, ChatQuestionResponse, LuzmoPromptSubmittedEventDetail, LuzmoRestoreRequestedEventDetail, ProgressTreeNode, PromptBoxAttachment, PromptBoxFileIcons, RecognizedStepEvent, StreamAiDictationOptions, StreamHandlerCallbacks, StreamHandlerContext, StreamHandlerState, StreamingRequestOptions, StreamingResponse, UnknownStepEvent, UploadAiPromptImagesOptions } from '@luzmo/analytics-components-kit/ai-chat';
5
+ import type { AiChatInteraction, AiPromptAgent, AiPromptCustomItemInput, AiPromptItemTask, AiPromptScreenMode, DashboardStatePayload } from '@luzmo/analytics-components-kit/ai-chat';
6
6
  import type { ChatMessage, Dataset, LuzmoChart } from '@luzmo/analytics-components-kit/types';
7
7
 
8
8
  @Component({
@@ -143,6 +143,10 @@ export class LuzmoAiChat implements OnChanges {
143
143
  @Input({ alias: 'modelPreference' })
144
144
  modelPreference?: 'performance' | 'quality';
145
145
 
146
+ /** Boxes the agent may show, declared on every request as `client_capabilities`. Defaults to none. Pass `['question']` once the aiprompt API accepts `client_capabilities`. Ignored with a host `chatSession`. */
147
+ @Input({ alias: 'interactions' })
148
+ interactions?: AiChatInteraction[];
149
+
146
150
  /** Host-owned AiChatSession. The component subscribes and renders; does not abort on disconnect. */
147
151
  @Input({ alias: 'chatSession' })
148
152
  chatSession?: AiChatSession | null;
@@ -217,7 +221,7 @@ export class LuzmoAiChat implements OnChanges {
217
221
  /** Fired when the selected datasets change */
218
222
  readonly luzmoDatasetsChanged = output<CustomEvent<AiChatDatasetsChangedEventDetail>>({ alias: 'luzmoDatasetsChanged' });
219
223
 
220
- /** Fired for every incremental, kit-assembled event during a streamed response (decision, text, progress, dashboard-title/layout/item, chart, custom-item, elicitation, interrupt, plus forward-by-default unrecognized chunks). Use `isRecognizedStep` to narrow. */
224
+ /** Fired for every incremental, kit-assembled event during a streamed response (decision, text, progress, dashboard-title/layout/item, chart, custom-item, elicitation, question, interrupt, plus forward-by-default unrecognized chunks). Use `isRecognizedStep` to narrow. */
221
225
  readonly luzmoStep = output<CustomEvent<AiChatStepEvent>>({ alias: 'luzmoStep' });
222
226
 
223
227
  /** Fired exactly once per response with the authoritative final result (dashboard/chart/name/customItem) or an `error`. */
@@ -334,6 +338,9 @@ export class LuzmoAiChat implements OnChanges {
334
338
  case 'modelPreference':
335
339
  this.setHostProperty('modelPreference', changes['modelPreference'].currentValue);
336
340
  break;
341
+ case 'interactions':
342
+ this.setHostProperty('interactions', changes['interactions'].currentValue);
343
+ break;
337
344
  case 'chatSession':
338
345
  this.setHostProperty('chatSession', changes['chatSession'].currentValue);
339
346
  break;
@@ -220,6 +220,11 @@ export class LuzmoDataFieldsSelect implements OnChanges {
220
220
  })
221
221
  );
222
222
  }
223
+
224
+ /** Focuses the select trigger. */
225
+ focus(options?: FocusOptions): void {
226
+ return (this.host as LuzmoDataFieldsSelectHostElement).focus(options);
227
+ }
223
228
  }
224
229
 
225
230
  /** The underlying custom element type for LuzmoDataFieldsSelect */
@@ -3,7 +3,7 @@ import '@luzmo/analytics-components-kit/display-settings-period-over-period';
3
3
  import type { LuzmoDisplaySettingsPeriodOverPeriod as LuzmoDisplaySettingsPeriodOverPeriodHostElement, DisplaySettingsSlotContentChangedEventDetail } from '@luzmo/analytics-components-kit/display-settings-period-over-period';
4
4
  export type { DisplaySettingsSlotContentChangedEventDetail } from '@luzmo/analytics-components-kit/display-settings-period-over-period';
5
5
  import type { PeriodOverPeriodCondition } from '@luzmo/analytics-components-kit/types';
6
- import type { Column } from '@luzmo/dashboard-contents-types';
6
+ import type { Column, VizItemSlot, VizItemType } from '@luzmo/dashboard-contents-types';
7
7
 
8
8
  @Component({
9
9
  selector: 'luzmo-display-settings-period-over-period',
@@ -27,19 +27,31 @@ export class LuzmoDisplaySettingsPeriodOverPeriod implements OnChanges {
27
27
  return this.host;
28
28
  }
29
29
 
30
+ /** Full saved slots for deriving comparison levels and implicit datetime offsets. */
31
+ @Input({ alias: 'slotsContents' })
32
+ slotsContents?: VizItemSlot[];
33
+
34
+ /** Visualization type used to interpret comparison slot context. */
35
+ @Input({ alias: 'itemType' })
36
+ itemType?: VizItemType;
37
+
38
+ /** Whether a comparison filter currently applies to this item. Runtime only; never saved in slot contents. */
39
+ @Input({ alias: 'hasConnectedComparisonFilter', transform: booleanAttribute })
40
+ hasConnectedComparisonFilter?: boolean;
41
+
30
42
  /** The slotContent that is passed to the settings */
31
43
  @Input({ alias: 'slotContent' })
32
44
  slotContent?: any;
33
45
 
34
- /** Which period-over-period UI variant to render, based on available datetime columns and comparison filters. */
46
+ /** Optional UI variant supplied by a parent. When absent, derive it from runtime slot and filter context. */
35
47
  @Input({ alias: 'periodOverPeriodType' })
36
48
  periodOverPeriodUiType?: PeriodOverPeriodCondition;
37
49
 
38
- /** Offer the "Periods" offset when there is no datetime category (an offset date column is needed). The item then shifts by the length of the period selected by its date filters. */
50
+ /** Offer the "Periods" offset when there is no datetime category (an offset date column is needed). The item then shifts by the length of the period selected by its date filters. Defaults to true for KPIs, false otherwise. */
39
51
  @Input({ alias: 'allowPeriodsWithoutDatetimeColumn', transform: booleanAttribute })
40
52
  allowPeriodsWithoutDatetimeColumn?: boolean;
41
53
 
42
- /** Hide the "Past value" comparison type, e.g. for items that only show the change. */
54
+ /** Hide the "Past value" comparison type. Defaults to true for KPIs, false otherwise; explicit booleans override the default. */
43
55
  @Input({ alias: 'hidePastValue', transform: booleanAttribute })
44
56
  hidePastValue?: boolean;
45
57
 
@@ -70,6 +82,15 @@ export class LuzmoDisplaySettingsPeriodOverPeriod implements OnChanges {
70
82
  ngOnChanges(changes: SimpleChanges): void {
71
83
  for (const key of Object.keys(changes)) {
72
84
  switch (key) {
85
+ case 'slotsContents':
86
+ this.setHostProperty('slotsContents', changes['slotsContents'].currentValue);
87
+ break;
88
+ case 'itemType':
89
+ this.setHostProperty('itemType', changes['itemType'].currentValue);
90
+ break;
91
+ case 'hasConnectedComparisonFilter':
92
+ this.setHostProperty('hasConnectedComparisonFilter', changes['hasConnectedComparisonFilter'].currentValue);
93
+ break;
73
94
  case 'slotContent':
74
95
  this.setHostProperty('slotContent', changes['slotContent'].currentValue);
75
96
  break;
@@ -5,7 +5,7 @@ export type { DisplaySettingsRemoveSlotContentEventDetail, DisplaySettingsSlotCo
5
5
  import type { DatasetDataFields } from '@luzmo/analytics-components-kit/data-field-panel';
6
6
  import type { MeasureColumnsItem } from '@luzmo/analytics-components-kit/slot-menu';
7
7
  import type { PeriodOverPeriodCondition, SlotContent } from '@luzmo/analytics-components-kit/types';
8
- import type { SlotName } from '@luzmo/dashboard-contents-types';
8
+ import type { SlotName, VizItemSlot, VizItemType } from '@luzmo/dashboard-contents-types';
9
9
 
10
10
  @Component({
11
11
  selector: 'luzmo-display-settings',
@@ -29,6 +29,18 @@ export class LuzmoDisplaySettings implements OnChanges {
29
29
  return this.host;
30
30
  }
31
31
 
32
+ /** Full saved slots for deriving comparison levels and implicit datetime offsets. */
33
+ @Input({ alias: 'slotsContents' })
34
+ slotsContents?: VizItemSlot[];
35
+
36
+ /** Visualization type used to interpret comparison slot context. */
37
+ @Input({ alias: 'itemType' })
38
+ itemType?: VizItemType;
39
+
40
+ /** Whether a comparison filter currently applies to this item. Runtime only; never saved in slot contents. */
41
+ @Input({ alias: 'hasConnectedComparisonFilter', transform: booleanAttribute })
42
+ hasConnectedComparisonFilter?: boolean;
43
+
32
44
  /** The language of the settings interface */
33
45
  @Input({ alias: 'language' })
34
46
  language?: string;
@@ -61,7 +73,7 @@ export class LuzmoDisplaySettings implements OnChanges {
61
73
  @Input({ alias: 'isCumulativeSumEnabled', transform: booleanAttribute })
62
74
  isCumulativeSumEnabled?: boolean;
63
75
 
64
- /** Whether to show the period-over-period in numeric */
76
+ /** Optional comparison UI override for standalone use; null hides comparisons. Otherwise derived from slotsContents, itemType, filters, and datasetsDataFields. */
65
77
  @Input({ alias: 'periodOverPeriodUiType' })
66
78
  periodOverPeriodUiType?: PeriodOverPeriodCondition | null;
67
79
 
@@ -81,7 +93,7 @@ export class LuzmoDisplaySettings implements OnChanges {
81
93
  @Input({ alias: 'slotContent' })
82
94
  slotContent?: SlotContent;
83
95
 
84
- /** Datasets used to resolve column names in ad-hoc calculation previews. */
96
+ /** Datasets used for calculation previews and standalone comparison offset date choices (columns or dataFields). */
85
97
  @Input({ alias: 'datasetsDataFields' })
86
98
  datasetsDataFields?: DatasetDataFields[];
87
99
 
@@ -126,6 +138,15 @@ export class LuzmoDisplaySettings implements OnChanges {
126
138
  ngOnChanges(changes: SimpleChanges): void {
127
139
  for (const key of Object.keys(changes)) {
128
140
  switch (key) {
141
+ case 'slotsContents':
142
+ this.setHostProperty('slotsContents', changes['slotsContents'].currentValue);
143
+ break;
144
+ case 'itemType':
145
+ this.setHostProperty('itemType', changes['itemType'].currentValue);
146
+ break;
147
+ case 'hasConnectedComparisonFilter':
148
+ this.setHostProperty('hasConnectedComparisonFilter', changes['hasConnectedComparisonFilter'].currentValue);
149
+ break;
129
150
  case 'language':
130
151
  this.setHostProperty('language', changes['language'].currentValue);
131
152
  break;
@@ -1,7 +1,8 @@
1
1
  import { booleanAttribute, ChangeDetectionStrategy, Component, DestroyRef, ElementRef, inject, Input, OnChanges, output, Renderer2, SimpleChanges } from '@angular/core';
2
2
  import '@luzmo/analytics-components-kit/interactive-viz-item';
3
- import type { LuzmoInteractiveVizItem as LuzmoInteractiveVizItemHostElement, AddToDashboardChartAddFailedEventDetail, AddToDashboardChartAddedEventDetail, ChartFeedback, FlexChartConfig, InteractiveVizItemChartChangedEventDetail, InteractiveVizItemChartOptionsChangedEventDetail, InteractiveVizItemFeedbackChangedEventDetail, InteractiveVizItemInteractionEventDetail } from '@luzmo/analytics-components-kit/interactive-viz-item';
3
+ import type { LuzmoInteractiveVizItem as LuzmoInteractiveVizItemHostElement, AddToDashboardChartAddFailedEventDetail, AddToDashboardChartAddedEventDetail, ChartFeedback, DashboardActions, FlexChartConfig, InteractiveVizItemChartChangedEventDetail, InteractiveVizItemChartOptionsChangedEventDetail, InteractiveVizItemFeedbackChangedEventDetail, InteractiveVizItemInteractionEventDetail } from '@luzmo/analytics-components-kit/interactive-viz-item';
4
4
  export type { AddToDashboardChartAddFailedEventDetail, AddToDashboardChartAddedEventDetail, ChartActionDescriptor, ChartActionType, ChartFeedback, ChartFeedbackRating, ChartMutationRequest, ChartOption, DashboardActions, FlexChartConfig, InlineData, InteractiveVizItemChartChangedEventDetail, InteractiveVizItemChartOptionsChangedEventDetail, InteractiveVizItemFeedbackChangedEventDetail, InteractiveVizItemInteractionEventDetail, ItemOptionInteraction, ItemOptionInteractionEventDetail, NormalizedChartConfig, Ranking, Sort } from '@luzmo/analytics-components-kit/interactive-viz-item';
5
+ import type { OptionsConfig, SlotConfig, TranslationOverrides, TranslationsFile, VizItemExportType } from '@luzmo/dashboard-contents-types';
5
6
  import type { LuzmoEmbedVizItem } from '@luzmo/embed';
6
7
 
7
8
  @Component({
@@ -16,7 +17,10 @@ import type { LuzmoEmbedVizItem } from '@luzmo/embed';
16
17
  *
17
18
  * @slot chart-actions-extra - Host-injected actions rendered at the end of the inline actions bar (e.g. copy-to-dashboard).
18
19
  * @csspart container - The viz item container.
20
+ * @csspart actions-bar - The bar above the chart holding the inline actions, the `chart-actions-extra` slot and add to dashboard.
21
+ * @csspart actions - The inline chart actions (ranking, display mode) inside the actions bar.
19
22
  * @csspart chart-container - The embedded chart wrapper.
23
+ * @csspart footer - The row below the chart holding the feedback buttons and the config-panel toggle.
20
24
  * @csspart config-panel - The expandable configuration panel.
21
25
  */
22
26
  export class LuzmoInteractiveVizItem implements OnChanges {
@@ -31,18 +35,6 @@ export class LuzmoInteractiveVizItem implements OnChanges {
31
35
  return this.host;
32
36
  }
33
37
 
34
- /** The language for UI labels. Supported values: 'en', 'nl', 'fr', 'de', 'es' */
35
- @Input({ alias: 'language' })
36
- language?: string;
37
-
38
- /** When present, renders `luzmo-add-to-dashboard` in the actions bar. */
39
- @Input({ alias: 'addToDashboard', transform: booleanAttribute })
40
- addToDashboard?: boolean;
41
-
42
- /** Click-to-filter on the embedded chart, forwarded as its `canFilter`. The `can-filter` attribute means `'all'`; unset keeps it off. */
43
- @Input({ alias: 'canFilter' })
44
- canFilter?: LuzmoEmbedVizItem['canFilter'];
45
-
46
38
  /** Loose chart config (type, options, slots, filters, inlineData); slots may use the keyed-object form. */
47
39
  @Input({ alias: 'chart' })
48
40
  chart?: FlexChartConfig | null;
@@ -87,14 +79,58 @@ export class LuzmoInteractiveVizItem implements OnChanges {
87
79
  @Input({ alias: 'hideConfigPanel', transform: booleanAttribute })
88
80
  hideConfigPanel?: boolean;
89
81
 
82
+ /** When present, hides the options tab of the config panel and keeps the data tab. */
83
+ @Input({ alias: 'hideConfigOptions', transform: booleanAttribute })
84
+ hideConfigOptions?: boolean;
85
+
86
+ /** Whether each slot in the config panel takes one field or several, forwarded to `luzmo-item-slot-picker-panel` as `selects`. */
87
+ @Input({ alias: 'slotSelects' })
88
+ slotSelects?: 'single' | 'multiple';
89
+
90
+ /** When present, the slot pickers in the config panel grow to full width, forwarded as `grows`. */
91
+ @Input({ alias: 'slotGrows', transform: booleanAttribute })
92
+ slotGrows?: boolean;
93
+
94
+ /** Slots configuration for the config panel, for a chart type ACK has no definition for (e.g. a custom chart). */
95
+ @Input({ alias: 'slotsConfiguration' })
96
+ slotsConfiguration?: SlotConfig[] | null;
97
+
98
+ /** Options configuration for the config panel, for a chart type ACK has no definition for (e.g. a custom chart). */
99
+ @Input({ alias: 'customOptionsConfiguration' })
100
+ customOptionsConfiguration?: OptionsConfig | null;
101
+
102
+ /** Option label translations that go with `customOptionsConfiguration`. */
103
+ @Input({ alias: 'customTranslations' })
104
+ customTranslations?: TranslationOverrides | TranslationsFile | null;
105
+
106
+ /** Options applied to the embedded chart only, merged one level deep over `chart.options` (e.g. `{ display: { title: false } }`). They are never emitted in chart events nor saved by add to dashboard. */
107
+ @Input({ alias: 'chartRenderOptions' })
108
+ chartRenderOptions?: FlexChartConfig['options'] | null;
109
+
110
+ /** When present, renders `luzmo-add-to-dashboard` in the actions bar. */
111
+ @Input({ alias: 'addToDashboard', transform: booleanAttribute })
112
+ addToDashboard?: boolean;
113
+
114
+ /** Host data operations for add to dashboard. When unset, the built-in adapter on the auth properties is used. */
115
+ @Input({ alias: 'dashboardActions' })
116
+ dashboardActions?: DashboardActions | null;
117
+
90
118
  /** When present, chart changes are only emitted and the host sets `chart`; otherwise they are applied here and still emitted. */
91
119
  @Input({ alias: 'controlled', transform: booleanAttribute })
92
120
  controlled?: boolean;
93
121
 
122
+ /** Click-to-filter on the embedded chart, forwarded as its `canFilter`. The `can-filter` attribute means `'all'`; unset keeps it off. */
123
+ @Input({ alias: 'canFilter' })
124
+ canFilter?: LuzmoEmbedVizItem['canFilter'];
125
+
94
126
  /** Applies and emits option changes live while a control is dragged or a key is held, without debounce, and forwards `luzmo-option-interaction-*` events. Off by default. */
95
127
  @Input({ alias: 'liveInteractions', transform: booleanAttribute })
96
128
  liveInteractions?: boolean;
97
129
 
130
+ /** The language for UI labels. Supported values: 'en', 'nl', 'fr', 'de', 'es' */
131
+ @Input({ alias: 'language' })
132
+ language?: string;
133
+
98
134
  /** The size of the element */
99
135
  @Input({ alias: 'size' })
100
136
  size?: 's' | 'm' | 'l' | 'xl';
@@ -135,15 +171,6 @@ export class LuzmoInteractiveVizItem implements OnChanges {
135
171
  ngOnChanges(changes: SimpleChanges): void {
136
172
  for (const key of Object.keys(changes)) {
137
173
  switch (key) {
138
- case 'language':
139
- this.setHostProperty('language', changes['language'].currentValue);
140
- break;
141
- case 'addToDashboard':
142
- this.setHostProperty('addToDashboard', changes['addToDashboard'].currentValue);
143
- break;
144
- case 'canFilter':
145
- this.setHostProperty('canFilter', changes['canFilter'].currentValue);
146
- break;
147
174
  case 'chart':
148
175
  this.setHostProperty('chart', changes['chart'].currentValue);
149
176
  break;
@@ -177,12 +204,45 @@ export class LuzmoInteractiveVizItem implements OnChanges {
177
204
  case 'hideConfigPanel':
178
205
  this.setHostProperty('hideConfigPanel', changes['hideConfigPanel'].currentValue);
179
206
  break;
207
+ case 'hideConfigOptions':
208
+ this.setHostProperty('hideConfigOptions', changes['hideConfigOptions'].currentValue);
209
+ break;
210
+ case 'slotSelects':
211
+ this.setHostProperty('slotSelects', changes['slotSelects'].currentValue);
212
+ break;
213
+ case 'slotGrows':
214
+ this.setHostProperty('slotGrows', changes['slotGrows'].currentValue);
215
+ break;
216
+ case 'slotsConfiguration':
217
+ this.setHostProperty('slotsConfiguration', changes['slotsConfiguration'].currentValue);
218
+ break;
219
+ case 'customOptionsConfiguration':
220
+ this.setHostProperty('customOptionsConfiguration', changes['customOptionsConfiguration'].currentValue);
221
+ break;
222
+ case 'customTranslations':
223
+ this.setHostProperty('customTranslations', changes['customTranslations'].currentValue);
224
+ break;
225
+ case 'chartRenderOptions':
226
+ this.setHostProperty('chartRenderOptions', changes['chartRenderOptions'].currentValue);
227
+ break;
228
+ case 'addToDashboard':
229
+ this.setHostProperty('addToDashboard', changes['addToDashboard'].currentValue);
230
+ break;
231
+ case 'dashboardActions':
232
+ this.setHostProperty('dashboardActions', changes['dashboardActions'].currentValue);
233
+ break;
180
234
  case 'controlled':
181
235
  this.setHostProperty('controlled', changes['controlled'].currentValue);
182
236
  break;
237
+ case 'canFilter':
238
+ this.setHostProperty('canFilter', changes['canFilter'].currentValue);
239
+ break;
183
240
  case 'liveInteractions':
184
241
  this.setHostProperty('liveInteractions', changes['liveInteractions'].currentValue);
185
242
  break;
243
+ case 'language':
244
+ this.setHostProperty('language', changes['language'].currentValue);
245
+ break;
186
246
  case 'size':
187
247
  this.setHostProperty('size', changes['size'].currentValue);
188
248
  break;
@@ -259,6 +319,11 @@ export class LuzmoInteractiveVizItem implements OnChanges {
259
319
  })
260
320
  );
261
321
  }
322
+
323
+ /** Exports the embedded chart, forwarded to its `export(type)`. Waits for the embedded renderer when it has not loaded yet. Resolves without a value when there is no chart, when the embed fails, or when the chart is cleared or the element removed before the renderer loaded. */
324
+ export(type?: VizItemExportType): Promise<string | void> {
325
+ return (this.host as LuzmoInteractiveVizItemHostElement).export(type);
326
+ }
262
327
  }
263
328
 
264
329
  /** The underlying custom element type for LuzmoInteractiveVizItem */
@@ -117,6 +117,11 @@ export class LuzmoItemGridItemActionsMenu implements OnChanges {
117
117
  })
118
118
  );
119
119
  }
120
+
121
+ /** Focuses the first toggle action, or the first available action. */
122
+ focus(): void {
123
+ return (this.host as LuzmoItemGridItemActionsMenuHostElement).focus();
124
+ }
120
125
  }
121
126
 
122
127
  /** The underlying custom element type for LuzmoItemGridItemActionsMenu */
@@ -107,6 +107,10 @@ export class LuzmoItemGrid implements OnChanges {
107
107
  @Input({ alias: 'initialItemStates' })
108
108
  initialItemStates?: ItemStates;
109
109
 
110
+ /** Renders an item whose type has no renderer registered with `registerRenderer`. */
111
+ @Input({ alias: 'defaultRenderer' })
112
+ defaultRenderer?: GridItemRenderer;
113
+
110
114
  /** Fired when an item action is performed */
111
115
  readonly luzmoItemGridItemAction = output<CustomEvent<GridItemActionEventDetail>>({ alias: 'luzmoItemGridItemAction' });
112
116
 
@@ -194,6 +198,9 @@ export class LuzmoItemGrid implements OnChanges {
194
198
  case 'initialItemStates':
195
199
  this.setHostProperty('initialItemStates', changes['initialItemStates'].currentValue);
196
200
  break;
201
+ case 'defaultRenderer':
202
+ this.setHostProperty('defaultRenderer', changes['defaultRenderer'].currentValue);
203
+ break;
197
204
  default:
198
205
  break;
199
206
  }
@@ -26,6 +26,18 @@ export class LuzmoItemOptionColorPicker implements OnChanges {
26
26
  return this.host;
27
27
  }
28
28
 
29
+ /** The current color value. */
30
+ @Input({ alias: 'value' })
31
+ value?: string;
32
+
33
+ /** Whether the control is disabled (non-interactive). */
34
+ @Input({ alias: 'disabled', transform: booleanAttribute })
35
+ disabled?: boolean;
36
+
37
+ /** Disables the alpha (opacity) channel in the color picker. */
38
+ @Input({ alias: 'noAlphaChannel', transform: booleanAttribute })
39
+ noAlphaChannel?: boolean;
40
+
29
41
  /** Preset colors offered as quick-pick swatches. */
30
42
  @Input({ alias: 'swatches' })
31
43
  swatches?: string[];
@@ -38,6 +50,10 @@ export class LuzmoItemOptionColorPicker implements OnChanges {
38
50
  @Input({ alias: 'shape' })
39
51
  shape?: 'circle' | 'rectangle';
40
52
 
53
+ /** Placement of the color picker dropdown relative to its trigger. */
54
+ @Input({ alias: 'placement' })
55
+ placement?: Placement;
56
+
41
57
  /** Delay in milliseconds before the change event is emitted after the user stops interacting. */
42
58
  @Input({ alias: 'debounce' })
43
59
  debounce?: number;
@@ -50,22 +66,6 @@ export class LuzmoItemOptionColorPicker implements OnChanges {
50
66
  @Input({ alias: 'debounceTimeout' })
51
67
  debounceTimeout?: any;
52
68
 
53
- /** The current color value. */
54
- @Input({ alias: 'value' })
55
- value?: string;
56
-
57
- /** Whether the control is disabled (non-interactive). */
58
- @Input({ alias: 'disabled', transform: booleanAttribute })
59
- disabled?: boolean;
60
-
61
- /** Disables the alpha (opacity) channel in the color picker. */
62
- @Input({ alias: 'noAlphaChannel', transform: booleanAttribute })
63
- noAlphaChannel?: boolean;
64
-
65
- /** Placement of the color picker dropdown relative to its trigger. */
66
- @Input({ alias: 'placement' })
67
- placement?: Placement;
68
-
69
69
  /** Emitted when the option value changes. With `live-interactions`, emitted on every color change and carries `interaction` inside a gesture. */
70
70
  readonly luzmoOptionChanged = output<CustomEvent<ItemOptionChangedEventDetail>>({ alias: 'luzmoOptionChanged' });
71
71
 
@@ -87,6 +87,15 @@ export class LuzmoItemOptionColorPicker implements OnChanges {
87
87
  ngOnChanges(changes: SimpleChanges): void {
88
88
  for (const key of Object.keys(changes)) {
89
89
  switch (key) {
90
+ case 'value':
91
+ this.setHostProperty('value', changes['value'].currentValue);
92
+ break;
93
+ case 'disabled':
94
+ this.setHostProperty('disabled', changes['disabled'].currentValue);
95
+ break;
96
+ case 'noAlphaChannel':
97
+ this.setHostProperty('noAlphaChannel', changes['noAlphaChannel'].currentValue);
98
+ break;
90
99
  case 'swatches':
91
100
  this.setHostProperty('swatches', changes['swatches'].currentValue);
92
101
  break;
@@ -96,6 +105,9 @@ export class LuzmoItemOptionColorPicker implements OnChanges {
96
105
  case 'shape':
97
106
  this.setHostProperty('shape', changes['shape'].currentValue);
98
107
  break;
108
+ case 'placement':
109
+ this.setHostProperty('placement', changes['placement'].currentValue);
110
+ break;
99
111
  case 'debounce':
100
112
  this.setHostProperty('debounce', changes['debounce'].currentValue);
101
113
  break;
@@ -105,18 +117,6 @@ export class LuzmoItemOptionColorPicker implements OnChanges {
105
117
  case 'debounceTimeout':
106
118
  this.setHostProperty('debounceTimeout', changes['debounceTimeout'].currentValue);
107
119
  break;
108
- case 'value':
109
- this.setHostProperty('value', changes['value'].currentValue);
110
- break;
111
- case 'disabled':
112
- this.setHostProperty('disabled', changes['disabled'].currentValue);
113
- break;
114
- case 'noAlphaChannel':
115
- this.setHostProperty('noAlphaChannel', changes['noAlphaChannel'].currentValue);
116
- break;
117
- case 'placement':
118
- this.setHostProperty('placement', changes['placement'].currentValue);
119
- break;
120
120
  default:
121
121
  break;
122
122
  }