@luzmo/analytics-components-kit 1.0.4 → 1.0.5-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/ad-hoc-slot-content-BxpvfmjT.js +29 -0
- package/components/ad-hoc-slot-content-DJUmB7pS.cjs +20 -0
- package/components/ai-chat/ai-chat-events.d.ts +123 -0
- package/components/ai-chat/ai-chat-request.d.ts +11 -0
- package/components/ai-chat/ai-chat.d.ts +302 -0
- package/components/ai-chat/ai-prompt-types.d.ts +94 -0
- package/components/ai-chat/empty-state/ai-chat-empty-state.d.ts +46 -0
- package/components/ai-chat/empty-state/index.d.ts +8 -0
- package/components/ai-chat/empty-state/types.d.ts +14 -0
- package/components/ai-chat/index.cjs +20 -0
- package/components/ai-chat/index.d.ts +20 -0
- package/components/ai-chat/index.js +28 -0
- package/components/ai-chat/session/ai-chat-session-controller.d.ts +51 -0
- package/components/ai-chat/session/ai-chat-session-types.d.ts +88 -0
- package/components/ai-chat/session/ai-chat-session.d.ts +91 -0
- package/components/ai-chat/session/index.d.ts +2 -0
- package/components/ai-chat/stream/chunk-extractors.d.ts +27 -0
- package/components/ai-chat/stream/index.d.ts +52 -0
- package/components/ai-chat/stream/progress.d.ts +3 -0
- package/components/ai-chat/stream/registry.d.ts +6 -0
- package/components/ai-chat/stream/stream-processor.d.ts +2 -0
- package/components/ai-chat/stream/transport.d.ts +26 -0
- package/components/ai-chat/stream/types.d.ts +55 -0
- package/components/ai-chat-BBc330Jm.js +3832 -0
- package/components/ai-chat-DLDSaC7W.cjs +300 -0
- package/components/ai-interaction-textarea/ai-interaction-textarea.d.ts +135 -0
- package/components/ai-interaction-textarea/index.cjs +20 -0
- package/components/ai-interaction-textarea/index.d.ts +8 -0
- package/components/ai-interaction-textarea/index.js +28 -0
- package/components/ai-interaction-textarea/types.d.ts +5 -0
- package/components/ai-interaction-textarea-BCH5_GBO.cjs +68 -0
- package/components/ai-interaction-textarea-DzHetSBZ.js +299 -0
- package/components/{area-chart-positioning.config-CQW5h7Eg.js → area-chart-positioning.config-CjeYLy6C.js} +1 -1
- package/components/{area-chart-positioning.config-CE8lOCfT.cjs → area-chart-positioning.config-DVrykBho.cjs} +1 -1
- package/components/{bar-chart-positioning.config-DFI1wzOQ.cjs → bar-chart-positioning.config-DpF15KcV.cjs} +1 -1
- package/components/{bar-chart-positioning.config-DaH_x_VU.js → bar-chart-positioning.config-e-SAdpBe.js} +1 -1
- package/components/base-DSXeP3BL.cjs +20 -0
- package/components/{base-p2I4mVSW.js → base-a89RuUMb.js} +2 -1
- package/components/{box-plot-positioning.config-K2tQGMig.js → box-plot-positioning.config-Bq2INEtG.js} +1 -1
- package/components/{box-plot-positioning.config-FOyav5Zq.cjs → box-plot-positioning.config-DbwtHJ4q.cjs} +1 -1
- package/components/{bubble-chart-positioning.config-B6DXfqa4.cjs → bubble-chart-positioning.config--EBfDgdN.cjs} +1 -1
- package/components/{bubble-chart-positioning.config-D2fwO2JM.js → bubble-chart-positioning.config-DFnW4mJ9.js} +1 -1
- package/components/{bullet-chart-positioning.config-DZqzqZSQ.cjs → bullet-chart-positioning.config-CZ46z07k.cjs} +1 -1
- package/components/{bullet-chart-positioning.config-DOAG2wFN.js → bullet-chart-positioning.config-DS2OmjBY.js} +1 -1
- package/components/{choropleth-map-positioning.config-C3jO3j8R.cjs → choropleth-map-positioning.config-Clm5IUT6.cjs} +1 -1
- package/components/{choropleth-map-positioning.config-Jw6fAFM1.js → choropleth-map-positioning.config-DgANsGq1.js} +1 -1
- package/components/{circle-pack-chart-positioning.config-Ckb-1sUG.js → circle-pack-chart-positioning.config-2H1CrfH_.js} +1 -1
- package/components/{circle-pack-chart-positioning.config-DJT6ivEy.cjs → circle-pack-chart-positioning.config-qF0qGcEO.cjs} +1 -1
- package/components/{circular-gauge-positioning.config-B8gL5Br9.cjs → circular-gauge-positioning.config-CMttD_BW.cjs} +1 -1
- package/components/{circular-gauge-positioning.config-BGlDGhYZ.js → circular-gauge-positioning.config-CusKP9Tq.js} +1 -1
- package/components/{column-chart-positioning.config-LzBETWIy.cjs → column-chart-positioning.config-ColoutIT.cjs} +1 -1
- package/components/{column-chart-positioning.config-BJGWvFLD.js → column-chart-positioning.config-rRwPVTbj.js} +1 -1
- package/components/{combination-chart-positioning.config-DjmWx90S.cjs → combination-chart-positioning.config-DAVrKW-6.cjs} +1 -1
- package/components/{combination-chart-positioning.config-DtneKdwK.js → combination-chart-positioning.config-uLf1RJQr.js} +1 -1
- package/components/{conditional-number-positioning.config-Ccb2yjJU.js → conditional-number-positioning.config-DZjwZfsH.js} +1 -1
- package/components/{conditional-number-positioning.config-C8bRdffQ.cjs → conditional-number-positioning.config-Nwsh-WyG.cjs} +1 -1
- package/components/convert-data-field-to-slot-content-BQkSy_8B.cjs +20 -0
- package/components/convert-data-field-to-slot-content-C6IIqU7G.js +53 -0
- package/components/convert-datasets-to-data-fields-B13rl1an.cjs +20 -0
- package/components/convert-datasets-to-data-fields-PmQzeVLG.js +68 -0
- package/components/data-field/index.cjs +1 -1
- package/components/data-field/index.d.ts +1 -0
- package/components/data-field/index.js +1 -1
- package/components/data-field-CFX9bhKN.js +121 -0
- package/components/data-field-bRmOqmAe.cjs +54 -0
- package/components/data-field-level/data-field-level.d.ts +40 -0
- package/components/data-field-level/helpers/generate-preview.d.ts +9 -0
- package/components/data-field-level/index.cjs +20 -0
- package/components/data-field-level/index.d.ts +8 -0
- package/components/data-field-level/index.js +28 -0
- package/components/{data-field-ll2oFVG2.js → data-field-level-Cc6yEETi.js} +46 -140
- package/components/data-field-level-Dnl27sxs.cjs +55 -0
- package/components/data-field-panel/index.cjs +1 -1
- package/components/data-field-panel/index.d.ts +1 -0
- package/components/data-field-panel/index.js +1 -1
- package/components/data-field-panel-BDExLalA.cjs +87 -0
- package/components/{data-field-panel-ntgCpQ_2.js → data-field-panel-DcqVOzMO.js} +5 -4
- package/components/data-fields-select/data-fields-select.d.ts +127 -0
- package/components/data-fields-select/index.cjs +20 -0
- package/components/data-fields-select/index.d.ts +9 -0
- package/components/data-fields-select/index.js +28 -0
- package/components/data-fields-select/types.d.ts +4 -0
- package/components/data-fields-select-B5aGtDYe.cjs +41 -0
- package/components/{data-fields-select-DJFkrrPs.js → data-fields-select-CfAfiV-K.js} +4 -3
- package/components/dataset-icon/dataset-icon.d.ts +45 -0
- package/components/dataset-icon/index.cjs +20 -0
- package/components/dataset-icon/index.d.ts +8 -0
- package/components/dataset-icon/index.js +28 -0
- package/components/dataset-icon/types.d.ts +11 -0
- package/components/dataset-icon-BAV0S4sZ.cjs +64 -0
- package/components/dataset-icon-BXEgg_8O.js +125 -0
- package/components/dataset-selector-list/dataset-selector-list.d.ts +102 -0
- package/components/dataset-selector-list/index.cjs +20 -0
- package/components/dataset-selector-list/index.d.ts +8 -0
- package/components/dataset-selector-list/index.js +28 -0
- package/components/dataset-selector-list-WT2ZHjQ4.cjs +75 -0
- package/components/dataset-selector-list-bAFTW1Hr.js +313 -0
- package/components/dataset-selector-row/dataset-selector-row.d.ts +89 -0
- package/components/dataset-selector-row/index.cjs +20 -0
- package/components/dataset-selector-row/index.d.ts +8 -0
- package/components/dataset-selector-row/index.js +28 -0
- package/components/dataset-selector-row-CXrEKQrA.js +273 -0
- package/components/dataset-selector-row-CwkXH93E.cjs +79 -0
- package/components/decompose-numeric-format-DGJua3rU.cjs +20 -0
- package/components/decompose-numeric-format-DS0j2wa1.js +36 -0
- package/components/{localized-mixin-CBMYHOPv.js → decorate-CaYbmmmm.js} +2 -26
- package/components/decorate-DCJt-2rt.cjs +20 -0
- package/components/display-settings/display-settings.d.ts +117 -0
- package/components/display-settings/index.cjs +20 -0
- package/components/display-settings/index.d.ts +8 -0
- package/components/display-settings/index.js +28 -0
- package/components/display-settings/types.d.ts +9 -0
- package/components/display-settings-DrcpHnKo.cjs +140 -0
- package/components/display-settings-Ec_smyRC.js +313 -0
- package/components/display-settings-binning/display-settings-binning.d.ts +32 -0
- package/components/display-settings-binning/index.cjs +20 -0
- package/components/display-settings-binning/index.d.ts +8 -0
- package/components/display-settings-binning/index.js +28 -0
- package/components/{display-settings-binning-DGxEB9Fa.js → display-settings-binning-COpQPUin.js} +17 -19
- package/components/{display-settings-binning-CQKXGp11.cjs → display-settings-binning-XXJdJeGU.cjs} +2 -2
- package/components/display-settings-datetime/display-settings-datetime.d.ts +86 -0
- package/components/display-settings-datetime/index.cjs +20 -0
- package/components/display-settings-datetime/index.d.ts +8 -0
- package/components/display-settings-datetime/index.js +28 -0
- package/components/display-settings-datetime-DhSW10ln.cjs +217 -0
- package/components/{display-settings-datetime-CLx9sxA7.js → display-settings-datetime-qj86dnHh.js} +69 -71
- package/components/display-settings-grand-totals/display-settings-grand-totals.d.ts +29 -0
- package/components/display-settings-grand-totals/index.cjs +20 -0
- package/components/display-settings-grand-totals/index.d.ts +8 -0
- package/components/display-settings-grand-totals/index.js +28 -0
- package/components/{display-settings-grand-totals-B0Px90rH.js → display-settings-grand-totals-D6IDs0U1.js} +17 -19
- package/components/display-settings-grand-totals-DTF0sqA1.cjs +44 -0
- package/components/display-settings-numeric/display-settings-numeric.d.ts +82 -0
- package/components/display-settings-numeric/helpers/constants.d.ts +19 -0
- package/components/display-settings-numeric/index.cjs +20 -0
- package/components/display-settings-numeric/index.d.ts +8 -0
- package/components/display-settings-numeric/index.js +28 -0
- package/components/display-settings-numeric-Dt34JHyR.cjs +190 -0
- package/components/{display-settings-numeric-CdEgzO7W.js → display-settings-numeric-Dy2EMcKa.js} +79 -81
- package/components/display-settings-period-over-period/display-settings-period-over-period.d.ts +68 -0
- package/components/display-settings-period-over-period/helpers/constants.d.ts +44 -0
- package/components/display-settings-period-over-period/index.cjs +20 -0
- package/components/display-settings-period-over-period/index.d.ts +8 -0
- package/components/display-settings-period-over-period/index.js +28 -0
- package/components/display-settings-period-over-period-B-ULI6yW.cjs +229 -0
- package/components/{display-settings-period-over-period-lo3myRfT.js → display-settings-period-over-period-BMzBnywY.js} +85 -86
- package/components/{donut-chart-positioning.config-2cYbI6p-.cjs → donut-chart-positioning.config-BnmePhBH.cjs} +1 -1
- package/components/{donut-chart-positioning.config-Dh3XI5f4.js → donut-chart-positioning.config-CnZRc3e8.js} +1 -1
- package/components/{en-hPjCnvK0.cjs → en-B34alchz.cjs} +1 -1
- package/components/{en-OJGeTneC.js → en-CcLhGxIh.js} +1 -1
- package/components/en-GB-B3xz84vF.cjs +20 -0
- package/components/{en-GB-D7N1nMuy.js → en-GB-DzkdeUQh.js} +1 -1
- package/components/{en-US-hPjCnvK0.cjs → en-US-B34alchz.cjs} +1 -1
- package/components/{en-US-OJGeTneC.js → en-US-CcLhGxIh.js} +1 -1
- package/components/{evolution-number-positioning.config-BX1lWtDL.cjs → evolution-number-positioning.config-CKgGLWTm.cjs} +1 -1
- package/components/{evolution-number-positioning.config-BQQrOKbD.js → evolution-number-positioning.config-DiKxJqRO.js} +1 -1
- package/components/filter-expression-picker/filter-expression-picker.d.ts +73 -0
- package/components/filter-expression-picker/index.cjs +20 -0
- package/components/filter-expression-picker/index.d.ts +7 -0
- package/components/filter-expression-picker/index.js +28 -0
- package/components/filter-expression-picker-DMZ4sgJ6.js +425 -0
- package/components/filter-expression-picker-Dq0X2lo3.cjs +38 -0
- package/components/filter-item/filter-item.d.ts +84 -0
- package/components/filter-item/index.cjs +20 -0
- package/components/filter-item/index.d.ts +7 -0
- package/components/filter-item/index.js +28 -0
- package/components/filter-item-BEe-Y6l0.js +242 -0
- package/components/filter-item-BnxKP0Zg.cjs +58 -0
- package/components/filter-parameter-picker/filter-parameter-picker.d.ts +25 -0
- package/components/filter-parameter-picker/index.cjs +22 -0
- package/components/filter-parameter-picker/index.d.ts +7 -0
- package/components/filter-parameter-picker/index.js +58 -0
- package/components/filter-value-picker/filter-value-picker.d.ts +65 -0
- package/components/filter-value-picker/index.cjs +20 -0
- package/components/filter-value-picker/index.d.ts +7 -0
- package/components/filter-value-picker/index.js +28 -0
- package/components/filter-value-picker-BxaX9BML.cjs +60 -0
- package/components/filter-value-picker-datetime/filter-value-picker-datetime.d.ts +42 -0
- package/components/filter-value-picker-datetime/index.cjs +20 -0
- package/components/filter-value-picker-datetime/index.d.ts +7 -0
- package/components/filter-value-picker-datetime/index.js +28 -0
- package/components/filter-value-picker-datetime-BryAsOYH.cjs +42 -0
- package/components/filter-value-picker-datetime-DtZDr9fY.js +139 -0
- package/components/filter-value-picker-hierarchy/filter-value-picker-hierarchy.d.ts +81 -0
- package/components/filter-value-picker-hierarchy/index.cjs +20 -0
- package/components/filter-value-picker-hierarchy/index.d.ts +7 -0
- package/components/filter-value-picker-hierarchy/index.js +28 -0
- package/components/filter-value-picker-hierarchy-BSKoZJ0F.cjs +47 -0
- package/components/filter-value-picker-hierarchy-D9BcuttQ.js +232 -0
- package/components/filter-value-picker-numeric/filter-value-picker-numeric.d.ts +82 -0
- package/components/filter-value-picker-numeric/index.cjs +20 -0
- package/components/filter-value-picker-numeric/index.d.ts +7 -0
- package/components/filter-value-picker-numeric/index.js +28 -0
- package/components/filter-value-picker-numeric-B2EcfNUR.cjs +48 -0
- package/components/filter-value-picker-numeric-CoU9l9wS.js +219 -0
- package/components/filter-value-picker-r1zs2IHx.js +151 -0
- package/components/filters/index.cjs +1 -1
- package/components/filters/index.js +1 -1
- package/components/filters-C9DVFS6T.cjs +150 -0
- package/components/filters-DVTYmlI1.js +400 -0
- package/components/formatter-8m-wrIM-.cjs +20 -0
- package/components/{period-over-period-condition.const-DLA60ptm.js → formatter-Cq5dFCyU.js} +44 -235
- package/components/formula/index.cjs +1 -1
- package/components/formula/index.js +1 -1
- package/components/formula--lwYaW2w.cjs +45 -0
- package/components/{formula-TyfDRy5X.js → formula-Ekyv6mpo.js} +15 -14
- package/components/formula-codemirror/formula-codemirror.d.ts +79 -0
- package/components/formula-codemirror/index.d.ts +7 -0
- package/components/formula-codemirror/pills/formula-aggregation/formula-aggregation.d.ts +125 -0
- package/components/formula-codemirror/pills/formula-aggregation/index.d.ts +7 -0
- package/components/formula-codemirror/pills/formula-empty-argument-pill/formula-empty-argument-pill.d.ts +28 -0
- package/components/formula-codemirror/pills/formula-empty-argument-pill/index.d.ts +7 -0
- package/components/formula-codemirror/pills/formula-include-exclude-panel.d.ts +38 -0
- package/components/{formula-codemirror-Bewi7Xgc.cjs → formula-codemirror-BZuBN5sE.cjs} +50 -50
- package/components/{formula-codemirror-B6ktT1Dm.js → formula-codemirror-DgTmL2Id.js} +21 -19
- package/components/formula-display-store-BunPLkc0.cjs +20 -0
- package/components/{formula-display-store-ycPV0gru.js → formula-display-store-ezef6EvF.js} +242 -271
- package/components/formula-draggable-field/formula-draggable-field.d.ts +53 -0
- package/components/formula-draggable-field/index.d.ts +8 -0
- package/components/formula-draggable-field/types.d.ts +24 -0
- package/components/formula-editor/index.cjs +1 -1
- package/components/formula-editor/index.d.ts +1 -0
- package/components/formula-editor/index.js +4 -3
- package/components/formula-editor-CjVohoJB.cjs +218 -0
- package/components/{formula-editor-HkD4KWnN.js → formula-editor-DRpm9ej7.js} +143 -348
- package/components/formula-field/formula-field.d.ts +20 -0
- package/components/formula-field/index.cjs +20 -0
- package/components/formula-field/index.d.ts +7 -0
- package/components/formula-field/index.js +28 -0
- package/components/formula-field-DcgWLGBD.cjs +20 -0
- package/components/formula-field-TwMnyN0t.js +40 -0
- package/components/formula-input-base-D6QdnUOa.cjs +49 -0
- package/components/formula-input-base-Dxk5euNb.js +236 -0
- package/components/{funnel-chart-positioning.config-iHk--8l3.cjs → funnel-chart-positioning.config-DaHDyj7V.cjs} +1 -1
- package/components/{funnel-chart-positioning.config-9blBdgB7.js → funnel-chart-positioning.config-DysRV01G.js} +1 -1
- package/components/get-dataset-name-D4smY8ms.cjs +20 -0
- package/components/get-dataset-name-D_ZiWu64.js +27 -0
- package/components/groupings-Bzp2EA65.js +52 -0
- package/components/groupings-Wfp8piEu.cjs +20 -0
- package/components/{heat-map-positioning.config-DgrZWNiT.js → heat-map-positioning.config-C6CqosaH.js} +1 -1
- package/components/{heat-map-positioning.config-CqkTB8nU.cjs → heat-map-positioning.config-hFwq08ML.cjs} +1 -1
- package/components/{heat-table-positioning.config-BqsqkftW.js → heat-table-positioning.config-B2RuWLH5.js} +1 -1
- package/components/{heat-table-positioning.config-Ca-WBNR-.cjs → heat-table-positioning.config-MJ_ox9iT.cjs} +1 -1
- package/components/{hexbin-map-positioning.config-sUIrPJP4.cjs → hexbin-map-positioning.config-Dua5Z8M2.cjs} +1 -1
- package/components/{hexbin-map-positioning.config-gkLfwTS6.js → hexbin-map-positioning.config-IiGTpp68.js} +1 -1
- package/components/index.cjs +1 -749
- package/components/index.js +64 -5577
- package/components/interactive-viz-item/helpers/chart-helpers.d.ts +7 -0
- package/components/interactive-viz-item/index.cjs +20 -0
- package/components/interactive-viz-item/index.d.ts +10 -0
- package/components/interactive-viz-item/index.js +28 -0
- package/components/interactive-viz-item/interactive-viz-item.d.ts +96 -0
- package/components/interactive-viz-item/types.d.ts +117 -0
- package/components/interactive-viz-item-O2zj8Ix3.cjs +247 -0
- package/components/interactive-viz-item-lBrlvX4F.js +693 -0
- package/components/item-grid/index.cjs +1 -1
- package/components/item-grid/index.js +1 -1
- package/components/{item-grid-C6nEE4Uj.cjs → item-grid-CmuMl0eC.cjs} +22 -22
- package/components/{item-grid-B59uyBDP.js → item-grid-Cqi995vx.js} +2 -1
- package/components/item-menu/item-list/item-list.d.ts +37 -0
- package/components/item-option/index.cjs +1 -1
- package/components/item-option/index.js +1 -1
- package/components/item-option-CQw6Xsi2.cjs +252 -0
- package/components/{item-option-zz-Rqh6o.js → item-option-Cg3zRKlU.js} +2 -2
- package/components/item-option-action-button-group/index.cjs +1 -1
- package/components/item-option-action-button-group/index.js +1 -1
- package/components/{item-option-action-button-group-BEXRueVH.js → item-option-action-button-group-C1TU-ng7.js} +2 -2
- package/components/item-option-action-button-group-DBdpU9Ac.cjs +53 -0
- package/components/item-option-base/item-option-base.d.ts +23 -0
- package/components/{item-option-base-DqDKIqRP.js → item-option-base-4mpxvTpE.js} +2 -2
- package/components/item-option-base-BtYcXg-E.cjs +56 -0
- package/components/item-option-color-palette-picker/index.cjs +1 -1
- package/components/item-option-color-palette-picker/index.js +1 -1
- package/components/item-option-color-palette-picker-4so22U-2.cjs +40 -0
- package/components/{item-option-color-palette-picker-dk5Nm1XB.js → item-option-color-palette-picker-BBnhEOQj.js} +2 -2
- package/components/item-option-color-picker/index.cjs +1 -1
- package/components/item-option-color-picker/index.js +1 -1
- package/components/{item-option-color-picker-oG-wrEZh.js → item-option-color-picker-CTTEHFVR.js} +2 -2
- package/components/{item-option-color-picker-Czr_ojzh.cjs → item-option-color-picker-CUBaIdL-.cjs} +2 -2
- package/components/item-option-color-range/index.cjs +1 -1
- package/components/item-option-color-range/index.js +1 -1
- package/components/{item-option-color-range-RbnPnI3s.js → item-option-color-range-BuLEgB7a.js} +2 -2
- package/components/item-option-color-range-H4nV-HoV.cjs +98 -0
- package/components/item-option-multi-language-field/index.cjs +1 -1
- package/components/item-option-multi-language-field/index.js +1 -1
- package/components/{item-option-multi-language-field-BqhBRIFH.js → item-option-multi-language-field-CXQj3kSW.js} +2 -2
- package/components/{item-option-multi-language-field-BpyuIPcO.cjs → item-option-multi-language-field-d25tETIC.cjs} +2 -2
- package/components/item-option-number-field/index.cjs +1 -1
- package/components/item-option-number-field/index.js +1 -1
- package/components/{item-option-number-field-BDPEAzdF.js → item-option-number-field-CEQEjnu8.js} +2 -2
- package/components/{item-option-number-field-CV2xpQrk.cjs → item-option-number-field-waG1zcr8.cjs} +2 -2
- package/components/item-option-panel/index.cjs +1 -1
- package/components/item-option-panel/index.js +1 -1
- package/components/{item-option-panel-CMrjUb2s.cjs → item-option-panel-Bh4d0Ueb.cjs} +2 -2
- package/components/{item-option-panel-XhTxaBZp.js → item-option-panel-CVjT-rr8.js} +3 -3
- package/components/item-option-picker/index.cjs +1 -1
- package/components/item-option-picker/index.js +1 -1
- package/components/{item-option-picker-D_Od3am8.js → item-option-picker-CiEMwzho.js} +2 -2
- package/components/{item-option-picker-CvEfEy99.cjs → item-option-picker-YTJ6noOW.cjs} +2 -2
- package/components/item-option-position-picker/index.cjs +1 -1
- package/components/item-option-position-picker/index.js +1 -1
- package/components/item-option-position-picker-DExAtVBF.cjs +32 -0
- package/components/{item-option-position-picker-BKw29tj-.js → item-option-position-picker-DVsG8inN.js} +2 -2
- package/components/item-option-positions-number-field/index.cjs +1 -1
- package/components/item-option-positions-number-field/index.js +1 -1
- package/components/{item-option-positions-number-field-lrJdfydy.js → item-option-positions-number-field-7F1_3pxp.js} +2 -2
- package/components/item-option-positions-number-field-Ju4e_B6g.cjs +49 -0
- package/components/item-option-radio-button-group/index.cjs +1 -1
- package/components/item-option-radio-button-group/index.js +1 -1
- package/components/{item-option-radio-button-group-DrjpL6YU.cjs → item-option-radio-button-group-6w11UJC-.cjs} +2 -2
- package/components/{item-option-radio-button-group-DTyHPaz_.js → item-option-radio-button-group-CHZKF_oZ.js} +2 -2
- package/components/item-option-slider/index.cjs +1 -1
- package/components/item-option-slider/index.js +1 -1
- package/components/{item-option-slider-CIDoZhZl.js → item-option-slider-CQCvF7wI.js} +2 -2
- package/components/{item-option-slider-BwKBgW0y.cjs → item-option-slider-DdkgydGa.cjs} +2 -2
- package/components/item-option-switch/index.cjs +1 -1
- package/components/item-option-switch/index.js +1 -1
- package/components/{item-option-switch-DxC1yjeN.js → item-option-switch-68EoGXKU.js} +2 -2
- package/components/{item-option-switch-CQtvbTfI.cjs → item-option-switch-IP4wvB7i.cjs} +2 -2
- package/components/item-option-text-field/index.cjs +1 -1
- package/components/item-option-text-field/index.js +1 -1
- package/components/{item-option-text-field-CZtJ1yIj.js → item-option-text-field-0CCtgD5i.js} +2 -2
- package/components/{item-option-text-field-pLQzcE25.cjs → item-option-text-field-Be4frWhI.cjs} +2 -2
- package/components/item-slot-drop/index.cjs +1 -1
- package/components/item-slot-drop/index.d.ts +2 -0
- package/components/item-slot-drop/index.js +1 -1
- package/components/item-slot-drop-C7BJJcZz.cjs +91 -0
- package/components/{item-slot-drop-SqYpfTGj.js → item-slot-drop-PlCmap_s.js} +14 -9
- package/components/item-slot-drop-panel/index.cjs +1 -1
- package/components/item-slot-drop-panel/index.js +1 -1
- package/components/{item-slot-drop-panel-DoWCzjqb.js → item-slot-drop-panel-BevGCcMh.js} +41 -40
- package/components/item-slot-drop-panel-hs0gFwb-.cjs +57 -0
- package/components/item-slot-picker/index.cjs +1 -1
- package/components/item-slot-picker/index.js +1 -1
- package/components/{item-slot-picker-CadZEvOA.js → item-slot-picker-BzXlX-Zd.js} +26 -21
- package/components/item-slot-picker-dmoR1ZyZ.cjs +174 -0
- package/components/item-slot-picker-panel/index.cjs +1 -1
- package/components/item-slot-picker-panel/index.js +1 -1
- package/components/item-slot-picker-panel-B2TtJUIs.cjs +81 -0
- package/components/{item-slot-picker-panel-Bhr6d6Ya.js → item-slot-picker-panel-DnvwcLGy.js} +5 -4
- package/components/{line-chart-positioning.config-BIkHxiyg.cjs → line-chart-positioning.config-CYqzjNzS.cjs} +1 -1
- package/components/{line-chart-positioning.config-CdnYQBah.js → line-chart-positioning.config-DAs0y-O6.js} +1 -1
- package/components/load-data-fields-for-datasets-BVGaku2J.cjs +20 -0
- package/components/load-data-fields-for-datasets-DeXLqWt4.js +42 -0
- package/components/localized-mixin-BNAt_iYb.cjs +20 -0
- package/components/localized-mixin-GXZQgVAD.js +45 -0
- package/components/{marker-map-positioning.config-BSz4P-W9.js → marker-map-positioning.config-BQ-kNUJI.js} +1 -1
- package/components/{marker-map-positioning.config-t66fioVz.cjs → marker-map-positioning.config-C5h5ydGa.cjs} +1 -1
- package/components/{ohlc-chart-positioning.config-tQPPutWX.js → ohlc-chart-positioning.config-BQyRY4rj.js} +1 -1
- package/components/{ohlc-chart-positioning.config-BGueS7CJ.cjs → ohlc-chart-positioning.config-fqniDSHf.cjs} +1 -1
- package/components/{parallel-coordinates-plot-positioning.config-NrJ2LNM8.cjs → parallel-coordinates-plot-positioning.config-Bhyk-q40.cjs} +1 -1
- package/components/{parallel-coordinates-plot-positioning.config-MkX-qYHX.js → parallel-coordinates-plot-positioning.config-DMUrvTKC.js} +1 -1
- package/components/period-over-period-condition.const-BZ7j5Z5t.js +29 -0
- package/components/period-over-period-condition.const-C1NZ9Bkp.cjs +20 -0
- package/components/{pivot-table-positioning.config-DgJ5PPB9.cjs → pivot-table-positioning.config-CRPJ6cp9.cjs} +1 -1
- package/components/{pivot-table-positioning.config-Dr_0v4TM.js → pivot-table-positioning.config-kgOD7qg4.js} +1 -1
- package/components/{pyramid-chart-positioning.config-BGRtXKWh.cjs → pyramid-chart-positioning.config-B3g4J0Fc.cjs} +1 -1
- package/components/{pyramid-chart-positioning.config-DB0BI8vW.js → pyramid-chart-positioning.config-DzmnUNOa.js} +1 -1
- package/components/{radar-chart-positioning.config-DQiJ-Z1s.cjs → radar-chart-positioning.config-DeMZx8WU.cjs} +1 -1
- package/components/{radar-chart-positioning.config-D6UfRMMA.js → radar-chart-positioning.config-DtCHigcZ.js} +1 -1
- package/components/{route-map-positioning.config-D_ZoyhwX.js → route-map-positioning.config-CNNkOriH.js} +1 -1
- package/components/{route-map-positioning.config-Cbic0Cbz.cjs → route-map-positioning.config-GRnTnxOT.cjs} +1 -1
- package/components/{sankey-diagram-positioning.config-CZDPh7CR.cjs → sankey-diagram-positioning.config-B4dTAI_t.cjs} +1 -1
- package/components/{sankey-diagram-positioning.config-CQNdImz0.js → sankey-diagram-positioning.config-DZzxWrlG.js} +1 -1
- package/components/{scatter-plot-positioning.config-BTOiZ8cF.js → scatter-plot-positioning.config-7DccAqx9.js} +1 -1
- package/components/{scatter-plot-positioning.config-BPEymo3a.cjs → scatter-plot-positioning.config-CUxiLfKj.cjs} +1 -1
- package/components/{slicer-filter-positioning.config-CQE4ocpD.cjs → slicer-filter-positioning.config-DUivNE2P.cjs} +1 -1
- package/components/{slicer-filter-positioning.config-CC7uoU2D.js → slicer-filter-positioning.config-aOkoNRyY.js} +1 -1
- package/components/{en-GB-DCZl8CPc.cjs → slot-menu/index.cjs} +1 -1
- package/components/slot-menu/index.d.ts +10 -0
- package/components/slot-menu/index.js +28 -0
- package/components/slot-menu/slot-menu.d.ts +148 -0
- package/components/slot-menu/types.d.ts +24 -0
- package/components/slot-menu-Bgoo0gWv.cjs +71 -0
- package/components/slot-menu-Cb8piPji.js +422 -0
- package/components/slot-menu-list/index.cjs +20 -0
- package/components/slot-menu-list/index.d.ts +8 -0
- package/components/slot-menu-list/index.js +28 -0
- package/components/slot-menu-list/slot-menu-list.d.ts +47 -0
- package/components/slot-menu-list-Cy6tegSf.cjs +44 -0
- package/components/slot-menu-list-VuVIRNtr.js +346 -0
- package/components/slot-role-classification-Bvt3bI01.cjs +20 -0
- package/components/slot-role-classification-CCzj4WgN.js +133 -0
- package/components/slots-config-P_GXW0tl.js +77 -0
- package/components/slots-config-YdyClHLc.cjs +20 -0
- package/components/{speedometer-chart-positioning.config-ChH-uAdS.js → speedometer-chart-positioning.config-Dj6XK0gq.js} +1 -1
- package/components/{speedometer-chart-positioning.config-DpBVarun.cjs → speedometer-chart-positioning.config-DzCh70X-.cjs} +1 -1
- package/components/{spike-map-positioning.config-BnEQJ-rD.js → spike-map-positioning.config-BG2pKkf7.js} +1 -1
- package/components/{spike-map-positioning.config-DrSoa8Ol.cjs → spike-map-positioning.config-BQIg4Z0U.cjs} +1 -1
- package/components/{strip-plot-positioning.config-DlkZ1i6m.cjs → strip-plot-positioning.config-D3ZNgtC4.cjs} +1 -1
- package/components/{strip-plot-positioning.config-Be5Desz2.js → strip-plot-positioning.config-HZCVc6kX.js} +1 -1
- package/components/{sunburst-chart-positioning.config-RUEkAgKJ.js → sunburst-chart-positioning.config-0O9eMweg.js} +1 -1
- package/components/{sunburst-chart-positioning.config-D4zzci9s.cjs → sunburst-chart-positioning.config-B-hCz3bI.cjs} +1 -1
- package/components/{symbol-map-positioning.config-JzgtULMk.js → symbol-map-positioning.config-Dod98HkQ.js} +1 -1
- package/components/{symbol-map-positioning.config-Dmgmyhv7.cjs → symbol-map-positioning.config-aHnkaWU6.cjs} +1 -1
- package/components/{treemap-chart-positioning.config-CSt_vVgw.js → treemap-chart-positioning.config-XB1_FmX-.js} +1 -1
- package/components/{treemap-chart-positioning.config-CqHJxz2j.cjs → treemap-chart-positioning.config-qhPL49um.cjs} +1 -1
- package/components/utils/base.cjs +1 -1
- package/components/utils/base.js +2 -2
- package/components/utils-B1BzV2xl.cjs +20 -0
- package/components/{utils-DLTDAer5.js → utils-BMOxXnnX.js} +42 -41
- package/components/utils.cjs +1 -1
- package/components/utils.js +8 -5
- package/components/{venn-diagram-positioning.config-DsPI8qfG.js → venn-diagram-positioning.config-Bh1ypVKP.js} +1 -1
- package/components/{venn-diagram-positioning.config-CzhNTma3.cjs → venn-diagram-positioning.config-CimHfhlV.cjs} +1 -1
- package/components/viz-item-menu/index.cjs +20 -0
- package/components/viz-item-menu/index.d.ts +8 -0
- package/components/viz-item-menu/index.js +28 -0
- package/components/viz-item-menu/types.d.ts +9 -0
- package/components/viz-item-menu/viz-item-menu.d.ts +75 -0
- package/components/viz-item-menu-CTPd7QMx.cjs +55 -0
- package/components/viz-item-menu-sOvrO3Ku.js +170 -0
- package/components/{wordcloud-chart-positioning.config-moNJfL1M.cjs → wordcloud-chart-positioning.config-BR_g8Now.cjs} +1 -1
- package/components/{wordcloud-chart-positioning.config-BUE8e4fN.js → wordcloud-chart-positioning.config-CmakCQG0.js} +1 -1
- package/custom-elements.json +15942 -5759
- package/index.d.ts +24 -0
- package/package.json +126 -1
- package/react/README.md +31 -6
- package/react/components/ai-chat/empty-state/index.ts +1 -0
- package/react/components/ai-chat/empty-state/types.ts +16 -0
- package/react/components/ai-chat/stream/index.ts +1 -0
- package/react/components/ai-chat/stream/types.ts +60 -0
- package/react/components/ai-chat.component.ts +45 -0
- package/react/components/ai-interaction-textarea/index.ts +1 -0
- package/react/components/ai-interaction-textarea/types.ts +6 -0
- package/react/components/ai-interaction-textarea.component.ts +30 -0
- package/react/components/data-field-level.component.ts +30 -0
- package/react/components/data-fields-select/index.ts +1 -0
- package/react/components/data-fields-select/types.ts +5 -0
- package/react/components/data-fields-select.component.ts +27 -0
- package/react/components/dataset-icon/index.ts +1 -0
- package/react/components/dataset-icon/types.ts +8 -0
- package/react/components/dataset-icon.component.ts +22 -0
- package/react/components/dataset-selector-list.component.ts +27 -0
- package/react/components/dataset-selector-row.component.ts +30 -0
- package/react/components/display-settings/index.ts +1 -0
- package/react/components/display-settings/types.ts +12 -0
- package/react/components/display-settings-binning.component.ts +27 -0
- package/react/components/display-settings-datetime.component.ts +27 -0
- package/react/components/display-settings-grand-totals.component.ts +27 -0
- package/react/components/display-settings-numeric.component.ts +27 -0
- package/react/components/display-settings-period-over-period.component.ts +27 -0
- package/react/components/display-settings.component.ts +33 -0
- package/react/components/filter-expression-picker.component.ts +27 -0
- package/react/components/filter-item.component.ts +27 -0
- package/react/components/filter-parameter-picker.component.ts +22 -0
- package/react/components/filter-value-picker-datetime.component.ts +27 -0
- package/react/components/filter-value-picker-hierarchy.component.ts +27 -0
- package/react/components/filter-value-picker-numeric.component.ts +27 -0
- package/react/components/filter-value-picker.component.ts +27 -0
- package/react/components/formula-draggable-field/index.ts +1 -0
- package/react/components/formula-draggable-field/types.ts +26 -0
- package/react/components/formula-field.component.ts +30 -0
- package/react/components/interactive-viz-item/index.ts +1 -0
- package/react/components/interactive-viz-item/types.ts +122 -0
- package/react/components/interactive-viz-item.component.ts +33 -0
- package/react/components/slot-menu/index.ts +1 -0
- package/react/components/slot-menu/types.ts +29 -0
- package/react/components/slot-menu-list.component.ts +27 -0
- package/react/components/slot-menu.component.ts +42 -0
- package/react/components/viz-item-menu/index.ts +1 -0
- package/react/components/viz-item-menu/types.ts +11 -0
- package/react/components/viz-item-menu.component.ts +33 -0
- package/react/esm/components/ai-chat/empty-state/index.d.ts +1 -0
- package/react/esm/components/ai-chat/empty-state/index.js +1 -0
- package/react/esm/components/ai-chat/empty-state/types.d.ts +14 -0
- package/react/esm/components/ai-chat/empty-state/types.js +1 -0
- package/react/esm/components/ai-chat/stream/index.d.ts +1 -0
- package/react/esm/components/ai-chat/stream/index.js +1 -0
- package/react/esm/components/ai-chat/stream/types.d.ts +55 -0
- package/react/esm/components/ai-chat/stream/types.js +1 -0
- package/react/esm/components/ai-chat.component.d.ts +24 -0
- package/react/esm/components/ai-chat.component.js +29 -0
- package/react/esm/components/ai-interaction-textarea/index.d.ts +1 -0
- package/react/esm/components/ai-interaction-textarea/index.js +1 -0
- package/react/esm/components/ai-interaction-textarea/types.d.ts +5 -0
- package/react/esm/components/ai-interaction-textarea/types.js +1 -0
- package/react/esm/components/ai-interaction-textarea.component.d.ts +14 -0
- package/react/esm/components/ai-interaction-textarea.component.js +19 -0
- package/react/esm/components/data-field-level.component.d.ts +14 -0
- package/react/esm/components/data-field-level.component.js +19 -0
- package/react/esm/components/data-fields-select/index.d.ts +1 -0
- package/react/esm/components/data-fields-select/index.js +1 -0
- package/react/esm/components/data-fields-select/types.d.ts +4 -0
- package/react/esm/components/data-fields-select/types.js +1 -0
- package/react/esm/components/data-fields-select.component.d.ts +12 -0
- package/react/esm/components/data-fields-select.component.js +17 -0
- package/react/esm/components/dataset-icon/index.d.ts +1 -0
- package/react/esm/components/dataset-icon/index.js +1 -0
- package/react/esm/components/dataset-icon/types.d.ts +11 -0
- package/react/esm/components/dataset-icon/types.js +1 -0
- package/react/esm/components/dataset-icon.component.d.ts +8 -0
- package/react/esm/components/dataset-icon.component.js +13 -0
- package/react/esm/components/dataset-selector-list.component.d.ts +12 -0
- package/react/esm/components/dataset-selector-list.component.js +17 -0
- package/react/esm/components/dataset-selector-row.component.d.ts +14 -0
- package/react/esm/components/dataset-selector-row.component.js +19 -0
- package/react/esm/components/display-settings/index.d.ts +1 -0
- package/react/esm/components/display-settings/index.js +1 -0
- package/react/esm/components/display-settings/types.d.ts +9 -0
- package/react/esm/components/display-settings/types.js +1 -0
- package/react/esm/components/display-settings-binning.component.d.ts +12 -0
- package/react/esm/components/display-settings-binning.component.js +17 -0
- package/react/esm/components/display-settings-datetime.component.d.ts +12 -0
- package/react/esm/components/display-settings-datetime.component.js +17 -0
- package/react/esm/components/display-settings-grand-totals.component.d.ts +12 -0
- package/react/esm/components/display-settings-grand-totals.component.js +17 -0
- package/react/esm/components/display-settings-numeric.component.d.ts +12 -0
- package/react/esm/components/display-settings-numeric.component.js +17 -0
- package/react/esm/components/display-settings-period-over-period.component.d.ts +12 -0
- package/react/esm/components/display-settings-period-over-period.component.js +17 -0
- package/react/esm/components/display-settings.component.d.ts +16 -0
- package/react/esm/components/display-settings.component.js +21 -0
- package/react/esm/components/filter-expression-picker.component.d.ts +12 -0
- package/react/esm/components/filter-expression-picker.component.js +17 -0
- package/react/esm/components/filter-item.component.d.ts +12 -0
- package/react/esm/components/filter-item.component.js +17 -0
- package/react/esm/components/filter-parameter-picker.component.d.ts +8 -0
- package/react/esm/components/filter-parameter-picker.component.js +13 -0
- package/react/esm/components/filter-value-picker-datetime.component.d.ts +12 -0
- package/react/esm/components/filter-value-picker-datetime.component.js +17 -0
- package/react/esm/components/filter-value-picker-hierarchy.component.d.ts +12 -0
- package/react/esm/components/filter-value-picker-hierarchy.component.js +17 -0
- package/react/esm/components/filter-value-picker-numeric.component.d.ts +12 -0
- package/react/esm/components/filter-value-picker-numeric.component.js +17 -0
- package/react/esm/components/filter-value-picker.component.d.ts +12 -0
- package/react/esm/components/filter-value-picker.component.js +17 -0
- package/react/esm/components/formula-draggable-field/index.d.ts +1 -0
- package/react/esm/components/formula-draggable-field/index.js +1 -0
- package/react/esm/components/formula-draggable-field/types.d.ts +24 -0
- package/react/esm/components/formula-draggable-field/types.js +1 -0
- package/react/esm/components/formula-field.component.d.ts +14 -0
- package/react/esm/components/formula-field.component.js +19 -0
- package/react/esm/components/interactive-viz-item/index.d.ts +1 -0
- package/react/esm/components/interactive-viz-item/index.js +1 -0
- package/react/esm/components/interactive-viz-item/types.d.ts +117 -0
- package/react/esm/components/interactive-viz-item/types.js +16 -0
- package/react/esm/components/interactive-viz-item.component.d.ts +16 -0
- package/react/esm/components/interactive-viz-item.component.js +21 -0
- package/react/esm/components/slot-menu/index.d.ts +1 -0
- package/react/esm/components/slot-menu/index.js +1 -0
- package/react/esm/components/slot-menu/types.d.ts +24 -0
- package/react/esm/components/slot-menu/types.js +1 -0
- package/react/esm/components/slot-menu-list.component.d.ts +12 -0
- package/react/esm/components/slot-menu-list.component.js +17 -0
- package/react/esm/components/slot-menu.component.d.ts +22 -0
- package/react/esm/components/slot-menu.component.js +27 -0
- package/react/esm/components/viz-item-menu/index.d.ts +1 -0
- package/react/esm/components/viz-item-menu/index.js +1 -0
- package/react/esm/components/viz-item-menu/types.d.ts +9 -0
- package/react/esm/components/viz-item-menu/types.js +1 -0
- package/react/esm/components/viz-item-menu.component.d.ts +16 -0
- package/react/esm/components/viz-item-menu.component.js +21 -0
- package/react/esm/index.d.ts +27 -2
- package/react/esm/index.js +102 -2
- package/react/esm/types.d.ts +15 -0
- package/react/index.ts +102 -2
- package/react/luzmo-stub.d.ts +164 -0
- package/react/types.ts +12 -0
- package/storybook/inject-global-vars.d.ts +1 -0
- package/storybook/register-components.d.ts +51 -0
- package/types/ai-chat.types.d.ts +90 -0
- package/types/data-field-events.types.d.ts +7 -0
- package/types.d.ts +8 -0
- package/components/base-CYiGlWug.cjs +0 -20
- package/components/data-field-iGBGWoGH.cjs +0 -89
- package/components/data-field-panel-NktuTUUp.cjs +0 -87
- package/components/data-fields-select-DL1nFRg3.cjs +0 -41
- package/components/display-settings-datetime-25LwuZM_.cjs +0 -217
- package/components/display-settings-grand-totals-1tBdxbFY.cjs +0 -44
- package/components/display-settings-numeric-Bbx4qmpA.cjs +0 -190
- package/components/display-settings-period-over-period-4bJbXWB7.cjs +0 -229
- package/components/filters-Bzx4DYm-.cjs +0 -323
- package/components/filters-DSod7vIq.js +0 -1637
- package/components/formula-DcCDYDt4.cjs +0 -45
- package/components/formula-display-store-DxjO7Q-n.cjs +0 -20
- package/components/formula-editor-DQp_XiX5.cjs +0 -247
- package/components/item-option-C4c-e1QF.cjs +0 -252
- package/components/item-option-action-button-group-BU1wvtEd.cjs +0 -53
- package/components/item-option-base-DATaPQ-m.cjs +0 -56
- package/components/item-option-color-palette-picker-Cc2nTuxC.cjs +0 -40
- package/components/item-option-color-range-CTnHZ72E.cjs +0 -98
- package/components/item-option-position-picker-DBs4JlFi.cjs +0 -32
- package/components/item-option-positions-number-field-DIIEFHd4.cjs +0 -49
- package/components/item-slot-drop-UygcXM5D.cjs +0 -91
- package/components/item-slot-drop-panel-9T8BWejl.cjs +0 -57
- package/components/item-slot-picker-Rnb_wwCV.cjs +0 -174
- package/components/item-slot-picker-panel-2VJY6C0b.cjs +0 -81
- package/components/load-data-fields-for-datasets-CU75T9Az.js +0 -86
- package/components/load-data-fields-for-datasets-DkK1JsFd.cjs +0 -20
- package/components/localized-mixin-DAOiXh71.cjs +0 -20
- package/components/period-over-period-condition.const-DystGY6B.cjs +0 -20
- package/components/slot-menu-BL772rj7.js +0 -1048
- package/components/slot-menu-CCbZ-krJ.cjs +0 -215
- package/components/utils-Ez3j4EOS.cjs +0 -20
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/*! * A kit of modern Luzmo Web Components for analytics in your web application.
|
|
2
|
+
*
|
|
3
|
+
* Copyright © 2026 Luzmo
|
|
4
|
+
* All rights reserved.
|
|
5
|
+
* Luzmo web components (“Luzmo Web Components”)
|
|
6
|
+
* must be used according to the Luzmo Terms of Service.
|
|
7
|
+
* This license allows users with a current active Luzmo account
|
|
8
|
+
* to use the Luzmo Web Components. This license terminates
|
|
9
|
+
* automatically if a user no longer has an active Luzmo account.
|
|
10
|
+
* Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
|
|
11
|
+
*
|
|
12
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
13
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
14
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
15
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
16
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
17
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
18
|
+
* SOFTWARE.
|
|
19
|
+
* */
|
|
20
|
+
import { s as e } from "./type-check-CGREdneG.js";
|
|
21
|
+
import { i as t, r as n } from "./slot-role-classification-CCzj4WgN.js";
|
|
22
|
+
//#region src/utils/slot-content/ad-hoc-slot-content.ts
|
|
23
|
+
var r = (e) => typeof e == "string" && e.trim().length > 0, i = (t) => !!(t && r(t.formula) && !t.formulaId && !e(t.formula)), a = (e) => !!(e && r(e.expression) && !e.columnId && !e.column && !e.formulaId && !e.formula), o = (e) => a(e) ? e?.expression : i(e) ? e?.formula : void 0, s = (e) => e?.columnId ?? e?.formulaId ?? e?.column ?? e?.formula ?? e?.expression, c = (e, r) => a(e) ? !0 : !e || !i(e) ? !1 : t({
|
|
24
|
+
slotName: String(r.name ?? ""),
|
|
25
|
+
slotType: r.type,
|
|
26
|
+
contentKind: n(e)
|
|
27
|
+
}) === "measure";
|
|
28
|
+
//#endregion
|
|
29
|
+
export { c as i, s as n, i as r, o as t };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/*! * A kit of modern Luzmo Web Components for analytics in your web application.
|
|
2
|
+
*
|
|
3
|
+
* Copyright © 2026 Luzmo
|
|
4
|
+
* All rights reserved.
|
|
5
|
+
* Luzmo web components (“Luzmo Web Components”)
|
|
6
|
+
* must be used according to the Luzmo Terms of Service.
|
|
7
|
+
* This license allows users with a current active Luzmo account
|
|
8
|
+
* to use the Luzmo Web Components. This license terminates
|
|
9
|
+
* automatically if a user no longer has an active Luzmo account.
|
|
10
|
+
* Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
|
|
11
|
+
*
|
|
12
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
13
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
14
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
15
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
16
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
17
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
18
|
+
* SOFTWARE.
|
|
19
|
+
* */
|
|
20
|
+
const e=require("./type-check-BehV9ZL1.cjs"),t=require("./slot-role-classification-Bvt3bI01.cjs");var n=e=>typeof e==`string`&&e.trim().length>0,r=t=>!!(t&&n(t.formula)&&!t.formulaId&&!e.s(t.formula)),i=e=>!!(e&&n(e.expression)&&!e.columnId&&!e.column&&!e.formulaId&&!e.formula),a=e=>i(e)?e?.expression:r(e)?e?.formula:void 0,o=e=>e?.columnId??e?.formulaId??e?.column??e?.formula??e?.expression,s=(e,n)=>i(e)?!0:!e||!r(e)?!1:t.i({slotName:String(n.name??``),slotType:n.type,contentKind:t.r(e)})===`measure`;Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return a}});
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import type { ProgressTreeNode } from '@luzmo/lucero/progress-steps';
|
|
2
|
+
import type { AiSampleChart, ChatMessage } from '../../types';
|
|
3
|
+
import type { AiPromptAgent, DashboardStatePayload } from './ai-prompt-types';
|
|
4
|
+
/**
|
|
5
|
+
* Common fields present on every streamed step event, recognized or not.
|
|
6
|
+
*/
|
|
7
|
+
export interface AiChatStepBase {
|
|
8
|
+
/** The aiprompt agent that produced this step (`item`, `dashboard`, `analyst`). */
|
|
9
|
+
agent: AiPromptAgent;
|
|
10
|
+
/** Current conversation id, or `null` before the backend assigns one. */
|
|
11
|
+
conversationId: string | null;
|
|
12
|
+
/** Backend message id, when the chunk carries one. */
|
|
13
|
+
messageId?: string;
|
|
14
|
+
/** Always present — the original stream chunk that produced this step. */
|
|
15
|
+
raw: Record<string, unknown>;
|
|
16
|
+
}
|
|
17
|
+
/** Recognized stream-step type discriminants. */
|
|
18
|
+
export type AiChatRecognizedStepType = 'decision' | 'text' | 'progress' | 'dashboard-title' | 'dashboard-layout' | 'dashboard-item' | 'chart' | 'interrupt';
|
|
19
|
+
/**
|
|
20
|
+
* Stream steps assembled into a typed `data` payload.
|
|
21
|
+
* Discriminated by `type` (when `recognized` is `true`).
|
|
22
|
+
*/
|
|
23
|
+
export type RecognizedStepEvent = (AiChatStepBase & {
|
|
24
|
+
recognized: true;
|
|
25
|
+
type: 'decision';
|
|
26
|
+
data: {
|
|
27
|
+
decision: 'create' | 'edit' | 'question';
|
|
28
|
+
};
|
|
29
|
+
}) | (AiChatStepBase & {
|
|
30
|
+
recognized: true;
|
|
31
|
+
type: 'text';
|
|
32
|
+
data: {
|
|
33
|
+
delta: string;
|
|
34
|
+
text: string;
|
|
35
|
+
};
|
|
36
|
+
}) | (AiChatStepBase & {
|
|
37
|
+
recognized: true;
|
|
38
|
+
type: 'progress';
|
|
39
|
+
data: ProgressTreeNode;
|
|
40
|
+
}) | (AiChatStepBase & {
|
|
41
|
+
recognized: true;
|
|
42
|
+
type: 'dashboard-title';
|
|
43
|
+
data: {
|
|
44
|
+
name: Record<string, string>;
|
|
45
|
+
};
|
|
46
|
+
}) | (AiChatStepBase & {
|
|
47
|
+
recognized: true;
|
|
48
|
+
type: 'dashboard-layout';
|
|
49
|
+
data: DashboardStatePayload;
|
|
50
|
+
}) | (AiChatStepBase & {
|
|
51
|
+
recognized: true;
|
|
52
|
+
type: 'dashboard-item';
|
|
53
|
+
data: {
|
|
54
|
+
slot: number;
|
|
55
|
+
chart: Record<string, unknown>;
|
|
56
|
+
};
|
|
57
|
+
}) | (AiChatStepBase & {
|
|
58
|
+
recognized: true;
|
|
59
|
+
type: 'chart';
|
|
60
|
+
data: Record<string, unknown>;
|
|
61
|
+
}) | (AiChatStepBase & {
|
|
62
|
+
recognized: true;
|
|
63
|
+
type: 'interrupt';
|
|
64
|
+
data: {
|
|
65
|
+
question: string;
|
|
66
|
+
};
|
|
67
|
+
});
|
|
68
|
+
/**
|
|
69
|
+
* Stream steps not (yet) modeled. Still delivered so consumers never
|
|
70
|
+
* silently lose data; `data` is a best-effort payload (often identical to `raw`).
|
|
71
|
+
*/
|
|
72
|
+
export type UnknownStepEvent = AiChatStepBase & {
|
|
73
|
+
recognized: false;
|
|
74
|
+
/** Raw chunk `type` / `asset_type`. */
|
|
75
|
+
type: string;
|
|
76
|
+
/** Best-effort payload (often `=== raw`). */
|
|
77
|
+
data: unknown;
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Open union of streamed step events. Use {@link isRecognizedStep} to narrow to
|
|
81
|
+
* the typed {@link RecognizedStepEvent} set; otherwise inspect `raw`.
|
|
82
|
+
*/
|
|
83
|
+
export type AiChatStepEvent = RecognizedStepEvent | UnknownStepEvent;
|
|
84
|
+
/**
|
|
85
|
+
* Authoritative final result of a streamed response, fired exactly once.
|
|
86
|
+
*/
|
|
87
|
+
export interface AiChatCompleteEvent {
|
|
88
|
+
/** The aiprompt agent that produced this result. */
|
|
89
|
+
agent: AiPromptAgent;
|
|
90
|
+
/** Conversation id for this response. */
|
|
91
|
+
conversationId: string | null;
|
|
92
|
+
/** Final assistant message (text + flags). */
|
|
93
|
+
message: ChatMessage;
|
|
94
|
+
/** Authoritative dashboard payload (dashboard agent). */
|
|
95
|
+
dashboard?: DashboardStatePayload;
|
|
96
|
+
/** Authoritative chart payload (item agent). */
|
|
97
|
+
chart?: AiSampleChart;
|
|
98
|
+
/** Dashboard name keyed by locale (dashboard agent). */
|
|
99
|
+
name?: Record<string, string>;
|
|
100
|
+
/** Forward-compat: any final assets not modeled explicitly. */
|
|
101
|
+
assets?: Record<string, unknown>;
|
|
102
|
+
/** Present when the response failed. */
|
|
103
|
+
error?: unknown;
|
|
104
|
+
/** Original terminal chunk. */
|
|
105
|
+
raw?: Record<string, unknown>;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Type guard separating the typed, recognized step set from the open passthrough.
|
|
109
|
+
* Lets consumers `switch` exhaustively on `event.type` with fully narrowed `data`.
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* ```ts
|
|
113
|
+
* onStep: (event) => {
|
|
114
|
+
* if (!isRecognizedStep(event)) return; // forward-compatible: ignore or use event.raw
|
|
115
|
+
* switch (event.type) {
|
|
116
|
+
* case 'decision':
|
|
117
|
+
* // event.data.decision is typed
|
|
118
|
+
* break;
|
|
119
|
+
* }
|
|
120
|
+
* };
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
export declare function isRecognizedStep(event: AiChatStepEvent): event is RecognizedStepEvent;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { LuzmoChart } from '../../types';
|
|
2
|
+
import type { AiPromptAgent, AiPromptCreateBody, AiPromptDeleteBody, AiPromptProperties, BuildAiPromptRequestContext } from './ai-prompt-types';
|
|
3
|
+
export type { AiPromptAgent, AiPromptCreateBody, AiPromptDeleteBody, AiPromptInput, AiPromptItemTask, AiPromptProperties, AiPromptScreenMode, BuildAiPromptRequestContext, DashboardStatePayload, LuzmoDashboardGeneratedEventDetail, LuzmoPromptSubmittedEventDetail, LuzmoRestoreRequestedEventDetail } from './ai-prompt-types';
|
|
4
|
+
export declare function getAiPromptUrl(apiUrl: string, apiVersion: string): string;
|
|
5
|
+
export declare function chartToItemAsset(chart: LuzmoChart): Record<string, unknown> | null;
|
|
6
|
+
export declare function buildItemAiPromptProperties(ctx: BuildAiPromptRequestContext): AiPromptProperties;
|
|
7
|
+
export declare function buildDashboardAiPromptProperties(ctx: BuildAiPromptRequestContext): AiPromptProperties;
|
|
8
|
+
export declare function buildAnalystAiPromptProperties(ctx: BuildAiPromptRequestContext): AiPromptProperties;
|
|
9
|
+
export declare function buildAiPromptProperties(agent: AiPromptAgent, ctx: BuildAiPromptRequestContext): AiPromptProperties;
|
|
10
|
+
export declare function buildAiPromptRequest(agent: AiPromptAgent, ctx: BuildAiPromptRequestContext): AiPromptCreateBody;
|
|
11
|
+
export declare function buildAiPromptDeleteRequest(restoreToMessageId: string, authKey: string, authToken: string, apiVersion?: string, conversationId?: string | null): AiPromptDeleteBody;
|
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
import '@luzmo/lucero/button';
|
|
2
|
+
import '@luzmo/lucero/chat-message';
|
|
3
|
+
import '@luzmo/lucero/icon';
|
|
4
|
+
import '@luzmo/lucero/overlay';
|
|
5
|
+
import '@luzmo/lucero/popover';
|
|
6
|
+
import '@luzmo/lucero/progress-steps';
|
|
7
|
+
import { LuzmoElement } from '../../utils/base';
|
|
8
|
+
import { type PropertyValues, TemplateResult } from 'lit';
|
|
9
|
+
import type { ChatMessage, Dataset, LuzmoChart } from '../../types';
|
|
10
|
+
import '../ai-interaction-textarea';
|
|
11
|
+
import type { AiPromptAgent, AiPromptItemTask, AiPromptScreenMode, DashboardStatePayload } from './ai-prompt-types';
|
|
12
|
+
import './empty-state';
|
|
13
|
+
import type { AiChatEmptyStateSuggestion } from './empty-state';
|
|
14
|
+
import type { AiChatSession } from './session/ai-chat-session';
|
|
15
|
+
/**
|
|
16
|
+
* @customElement luzmo-ai-chat
|
|
17
|
+
* @summary AI chat UI backed by AiChatSession for transcript, datasets, and streaming.
|
|
18
|
+
* @description Chat state lives in an AiChatSession. By default the element creates an internal
|
|
19
|
+
* session from auth, agent, and chart or dashboard props; optional messages and selected-datasets
|
|
20
|
+
* seed it once on connect. Pass .chatSession for a host-owned session (e.g. dashboard editor).
|
|
21
|
+
* See {@link AiChatSession} / createAiChatSession for callbacks and external fetchStreaming.
|
|
22
|
+
* @fires {CustomEvent<AiChatStepEvent>} luzmo-step - Fired for every incremental, kit-assembled event during a streamed response (decision, text, progress, dashboard-title/layout/item, chart, interrupt, plus forward-by-default unrecognized chunks). Use `isRecognizedStep` to narrow.
|
|
23
|
+
* @fires {CustomEvent<AiChatCompleteEvent>} luzmo-complete - Fired exactly once per response with the authoritative final result (dashboard/chart/name) or an `error`.
|
|
24
|
+
* @fires {CustomEvent<AiChatMessageSentEventDetail>} luzmo-message-sent - Fired when a user sends a message
|
|
25
|
+
* @fires {CustomEvent<AiChatDatasetsChangedEventDetail>} luzmo-datasets-changed - Fired when the selected datasets change
|
|
26
|
+
* @fires {CustomEvent<AiChatConversationIdChangedEventDetail>} luzmo-conversation-id-changed - Fired when the conversation ID is updated from the API
|
|
27
|
+
* @fires {CustomEvent<AssistantMessageActionEventDetail>} luzmo-assistant-message-action - Fired when a built-in assistant message action is activated (after confirmation when `confirm` is set)
|
|
28
|
+
* @fires {CustomEvent<void>} luzmo-stop - Fired when an in-flight prompt is stopped
|
|
29
|
+
*
|
|
30
|
+
* Custom actions beyond built-in `ChatMessage.actions` buttons can be projected via the
|
|
31
|
+
* `assistant-message-actions` light-DOM slot on the latest assistant message.
|
|
32
|
+
* @property {string} --luzmo-ai-chat-background - Background of the chat container
|
|
33
|
+
* @property {string} --luzmo-ai-chat-border-radius - Border radius of the chat container
|
|
34
|
+
* @property {string} --luzmo-ai-chat-padding - Padding of the chat container
|
|
35
|
+
* @property {string} --luzmo-ai-chat-gap - Gap between chat sections and messages
|
|
36
|
+
* @property {string} --luzmo-ai-chat-border - Border of the chat container
|
|
37
|
+
* @property {string} --luzmo-ai-chat-box-shadow - Box shadow of the chat container
|
|
38
|
+
* @property {string} --luzmo-ai-chat-scrollbar-width - Width of the messages scrollbar
|
|
39
|
+
* @property {string} --luzmo-ai-chat-scrollbar-track-background - Background of the messages scrollbar track
|
|
40
|
+
* @property {string} --luzmo-ai-chat-scrollbar-track-border-radius - Border radius of the messages scrollbar track
|
|
41
|
+
* @property {string} --luzmo-ai-chat-scrollbar-thumb-background - Background of the messages scrollbar thumb
|
|
42
|
+
* @property {string} --luzmo-ai-chat-scrollbar-thumb-border-radius - Border radius of the messages scrollbar thumb
|
|
43
|
+
* @property {string} --luzmo-ai-chat-scrollbar-thumb-hover-background - Hover background of the messages scrollbar thumb
|
|
44
|
+
* @property {string} --luzmo-ai-chat-loading-message-color - Color of the loading spinner icon
|
|
45
|
+
* @property {string} --luzmo-ai-chat-loading-message-icon-font-size - Font size of the loading spinner icon
|
|
46
|
+
* @property {string} --luzmo-ai-chat-error-message-color - Color of assistant error messages
|
|
47
|
+
* @property {string} --luzmo-ai-chat-context-menu-trigger-size - Size of the assistant context menu trigger button
|
|
48
|
+
* @property {string} --luzmo-ai-chat-context-menu-trigger-border-color - Border color of the context menu trigger button
|
|
49
|
+
* @property {string} --luzmo-ai-chat-context-menu-trigger-border-radius - Border radius of the context menu trigger button
|
|
50
|
+
* @property {string} --luzmo-ai-chat-context-menu-trigger-background - Background of the context menu trigger button
|
|
51
|
+
* @property {string} --luzmo-ai-chat-context-menu-trigger-color - Icon color of the context menu trigger button
|
|
52
|
+
* @property {string} --luzmo-ai-chat-context-menu-trigger-hover-background - Hover background of the context menu trigger button
|
|
53
|
+
* @property {string} --luzmo-ai-chat-context-menu-trigger-hover-border-color - Hover border color of the context menu trigger button
|
|
54
|
+
* @property {string} --luzmo-ai-chat-context-menu-trigger-hover-color - Hover icon color of the context menu trigger button
|
|
55
|
+
* @property {string} --luzmo-ai-chat-context-menu-item-font-family - Font family of context menu items
|
|
56
|
+
* @property {string} --luzmo-ai-chat-context-menu-item-hover-background - Hover background of context menu items
|
|
57
|
+
* @property {string} --luzmo-ai-chat-markdown-line-height - Line height of rendered assistant markdown
|
|
58
|
+
* @property {string} --luzmo-ai-chat-markdown-spacing - Bottom spacing between markdown blocks (paragraphs, lists, tables, etc.)
|
|
59
|
+
* @property {string} --luzmo-ai-chat-markdown-heading-spacing - Top spacing above markdown headings (and `hr` margins)
|
|
60
|
+
* @property {string} --luzmo-ai-chat-markdown-heading-font-weight - Font weight of markdown headings
|
|
61
|
+
* @property {string} --luzmo-ai-chat-markdown-list-indent - Inline start padding (indent) of markdown lists
|
|
62
|
+
* @property {string} --luzmo-ai-chat-markdown-link-color - Color of links in markdown
|
|
63
|
+
* @property {string} --luzmo-ai-chat-markdown-code-font-family - Font family of inline and block code
|
|
64
|
+
* @property {string} --luzmo-ai-chat-markdown-code-font-size - Font size of inline and block code
|
|
65
|
+
* @property {string} --luzmo-ai-chat-markdown-code-background - Background of inline code and code blocks
|
|
66
|
+
* @property {string} --luzmo-ai-chat-markdown-code-border-radius - Border radius of inline code and code blocks
|
|
67
|
+
* @property {string} --luzmo-ai-chat-markdown-border-color - Border color for blockquotes, horizontal rules, and tables
|
|
68
|
+
* @property {string} --luzmo-ai-chat-markdown-table-header-background - Background of markdown table header cells
|
|
69
|
+
* @property {string} --luzmo-ai-chat-assistant-message-actions-gap - Gap between controls in the assistant message actions footer
|
|
70
|
+
* @property {string} --luzmo-ai-chat-assistant-message-actions-margin-top - Top spacing above the assistant message actions footer
|
|
71
|
+
* @property {string} --luzmo-ai-chat-assistant-message-actions-color - Text color for assistant message actions footer content (default: `--luzmo-font-color-extra-dimmed`)
|
|
72
|
+
* @property {string} --luzmo-ai-chat-assistant-message-actions-font-style - Font style for plain text in the assistant message actions footer (default: `italic`)
|
|
73
|
+
* @property {string} --luzmo-ai-chat-assistant-message-font-family - Font family shared by assistant messages and their actions footer
|
|
74
|
+
* @property {string} --luzmo-ai-chat-assistant-message-font-size - Font size shared by assistant messages and their actions footer
|
|
75
|
+
* @property {string} --luzmo-ai-chat-assistant-message-line-height - Line height shared by assistant messages and their actions footer
|
|
76
|
+
*/
|
|
77
|
+
export declare class LuzmoAiChat extends LuzmoElement {
|
|
78
|
+
static styles: import("lit").CSSResult;
|
|
79
|
+
static tagName: string;
|
|
80
|
+
/** Light-DOM slot for optional custom actions below the latest assistant message. */
|
|
81
|
+
static readonly assistantMessageActionsSlot = "assistant-message-actions";
|
|
82
|
+
/**
|
|
83
|
+
* Live transcript is {@link AiChatSessionState.messages}. This prop optionally seeds the session on first connect.
|
|
84
|
+
*/
|
|
85
|
+
messages: ChatMessage[];
|
|
86
|
+
/**
|
|
87
|
+
* Live selection is in the session. This prop optionally seeds on first connect.
|
|
88
|
+
*/
|
|
89
|
+
selectedDatasets: Dataset[];
|
|
90
|
+
/**
|
|
91
|
+
* Placeholder text for the textarea
|
|
92
|
+
*/
|
|
93
|
+
placeholder: string;
|
|
94
|
+
/**
|
|
95
|
+
* When true, disables the entire chat interface
|
|
96
|
+
*/
|
|
97
|
+
disabled: boolean;
|
|
98
|
+
/**
|
|
99
|
+
* When true, shows a stop control on the prompt input while a response is generating
|
|
100
|
+
*/
|
|
101
|
+
stoppable: boolean;
|
|
102
|
+
/**
|
|
103
|
+
* When true, shows context menu (3 dots) on assistant messages
|
|
104
|
+
*/
|
|
105
|
+
showAssistantContextMenu: boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Auth key for DataBroker authentication
|
|
108
|
+
*/
|
|
109
|
+
authKey: string;
|
|
110
|
+
/**
|
|
111
|
+
* Auth token for DataBroker authentication
|
|
112
|
+
*/
|
|
113
|
+
authToken: string;
|
|
114
|
+
/**
|
|
115
|
+
* API URL for DataBroker
|
|
116
|
+
* @default https://api.luzmo.com
|
|
117
|
+
*/
|
|
118
|
+
apiUrl: string;
|
|
119
|
+
/**
|
|
120
|
+
* The URL of the app server for thumbnails and assets
|
|
121
|
+
* @default https://app.luzmo.com
|
|
122
|
+
*/
|
|
123
|
+
appServer: string;
|
|
124
|
+
/**
|
|
125
|
+
* When true, restricts results to public datasets (opendata parity)
|
|
126
|
+
*/
|
|
127
|
+
flagOpendata: boolean;
|
|
128
|
+
/**
|
|
129
|
+
* When true, hides the "+ Add dataset" button in the input
|
|
130
|
+
*/
|
|
131
|
+
hideDatasetButton: boolean;
|
|
132
|
+
/**
|
|
133
|
+
* When true, hides dataset icons in the input dataset selector and @ mention dataset headers
|
|
134
|
+
*/
|
|
135
|
+
hideDatasetIcons: boolean;
|
|
136
|
+
/**
|
|
137
|
+
* When true, hides the add-dataset button and disables removing selected datasets while keeping pills visible
|
|
138
|
+
*/
|
|
139
|
+
disableDatasetModification: boolean;
|
|
140
|
+
/**
|
|
141
|
+
* When true, hides the dataset row and add-dataset button entirely
|
|
142
|
+
*/
|
|
143
|
+
hideSelectedDatasets: boolean;
|
|
144
|
+
/**
|
|
145
|
+
* When true, disables @ trigger mentions for dataset fields in the input
|
|
146
|
+
*/
|
|
147
|
+
disableColumnMentions: boolean;
|
|
148
|
+
/**
|
|
149
|
+
* When true, at least one dataset must be selected before the prompt can be submitted
|
|
150
|
+
*/
|
|
151
|
+
requireDataset: boolean;
|
|
152
|
+
/**
|
|
153
|
+
* Which aiprompt agent to use. Determines request payload and stream handling.
|
|
154
|
+
* @default 'item'
|
|
155
|
+
*/
|
|
156
|
+
agent: AiPromptAgent;
|
|
157
|
+
/**
|
|
158
|
+
* Task for the item agent (`generate`, `suggest`, `describe`).
|
|
159
|
+
* @default 'generate'
|
|
160
|
+
*/
|
|
161
|
+
task: AiPromptItemTask;
|
|
162
|
+
/**
|
|
163
|
+
* AI model preference for item agent chart generation
|
|
164
|
+
* @default 'performance'
|
|
165
|
+
*/
|
|
166
|
+
modelPreference: 'performance' | 'quality';
|
|
167
|
+
/**
|
|
168
|
+
* Host-owned {@link AiChatSession}. The component subscribes and renders; does not abort on disconnect.
|
|
169
|
+
*/
|
|
170
|
+
chatSession: AiChatSession | null;
|
|
171
|
+
/**
|
|
172
|
+
* Conversation ID (synced into the session; updated when the API returns a new id).
|
|
173
|
+
* @default null
|
|
174
|
+
*/
|
|
175
|
+
conversationId: string | null;
|
|
176
|
+
/**
|
|
177
|
+
* Chart context for `agent="item"`.
|
|
178
|
+
* @default null
|
|
179
|
+
*/
|
|
180
|
+
chart: LuzmoChart | null;
|
|
181
|
+
/**
|
|
182
|
+
* Dashboard context for `agent="dashboard"`.
|
|
183
|
+
* @default null
|
|
184
|
+
*/
|
|
185
|
+
dashboard: DashboardStatePayload | null;
|
|
186
|
+
/**
|
|
187
|
+
* Current screen mode when editing a dashboard.
|
|
188
|
+
*/
|
|
189
|
+
currentScreenMode?: AiPromptScreenMode;
|
|
190
|
+
/**
|
|
191
|
+
* Locale ID sent to the aiprompt API.
|
|
192
|
+
*/
|
|
193
|
+
localeId?: string;
|
|
194
|
+
/**
|
|
195
|
+
* Timezone ID for dashboard agent requests.
|
|
196
|
+
* @default 'UTC'
|
|
197
|
+
*/
|
|
198
|
+
timezoneId: string;
|
|
199
|
+
/**
|
|
200
|
+
* API version
|
|
201
|
+
* @default '0.1.0'
|
|
202
|
+
*/
|
|
203
|
+
apiVersion: string;
|
|
204
|
+
/**
|
|
205
|
+
* When true, uses NDJSON streaming for AI responses.
|
|
206
|
+
* When false, uses a single JSON response.
|
|
207
|
+
* @default true
|
|
208
|
+
*/
|
|
209
|
+
stream: boolean;
|
|
210
|
+
/**
|
|
211
|
+
* Loading message shown while generating and before progress steps are available.
|
|
212
|
+
* @default null
|
|
213
|
+
*/
|
|
214
|
+
loadingMessage: string | null;
|
|
215
|
+
/**
|
|
216
|
+
* Message shown in place of the assistant reply when the user stops an in-flight response.
|
|
217
|
+
* Falls back to a localized default when not set.
|
|
218
|
+
* @default null
|
|
219
|
+
*/
|
|
220
|
+
cancelledMessage: string | null;
|
|
221
|
+
/**
|
|
222
|
+
* When set, auto-submits via the session without adding a duplicate user message
|
|
223
|
+
* (assumes the prompt is already in the transcript).
|
|
224
|
+
* @default null
|
|
225
|
+
*/
|
|
226
|
+
initialPrompt: string | null;
|
|
227
|
+
/**
|
|
228
|
+
* Title for the empty state when there are no messages.
|
|
229
|
+
*/
|
|
230
|
+
emptyStateTitle: string;
|
|
231
|
+
/**
|
|
232
|
+
* Optional label above empty-state suggestion chips. Only shown when `emptyStateSuggestions` is non-empty.
|
|
233
|
+
*/
|
|
234
|
+
emptyStateSubtitle: string;
|
|
235
|
+
/**
|
|
236
|
+
* Optional suggestion chips for the empty state. When empty, only the title is shown.
|
|
237
|
+
* Each entry may include `selectedDatasets` to pre-select datasets when the chip is activated.
|
|
238
|
+
*/
|
|
239
|
+
emptyStateSuggestions: AiChatEmptyStateSuggestion[];
|
|
240
|
+
private _textareaValue;
|
|
241
|
+
private _assistantMessageActionsSlotHasContent;
|
|
242
|
+
private _pendingAssistantMessageAction;
|
|
243
|
+
private _shouldFocusAssistantMessageActionConfirm;
|
|
244
|
+
private _lastProcessedInitialPrompt;
|
|
245
|
+
private readonly _session;
|
|
246
|
+
/** Active {@link AiChatSession} (host or auto-created). Null until first bind or action. */
|
|
247
|
+
get session(): AiChatSession | null;
|
|
248
|
+
private _getRenderState;
|
|
249
|
+
private _createDomBridgeCallbacks;
|
|
250
|
+
private _buildSessionConfig;
|
|
251
|
+
private _emitConversationIdChanged;
|
|
252
|
+
private _restoreViaSession;
|
|
253
|
+
private _handleRestoreState;
|
|
254
|
+
private _handleDatasetSelected;
|
|
255
|
+
private _handleDatasetRemoved;
|
|
256
|
+
private _submitViaSession;
|
|
257
|
+
private _handlePromptSubmitted;
|
|
258
|
+
private _handlePromptStopped;
|
|
259
|
+
private _handleEmptyStateSuggestionSelected;
|
|
260
|
+
private _processInitialPrompt;
|
|
261
|
+
connectedCallback(): void;
|
|
262
|
+
disconnectedCallback(): void;
|
|
263
|
+
private _scrollToBottom;
|
|
264
|
+
protected willUpdate(changedProperties: PropertyValues): void;
|
|
265
|
+
protected updated(changedProperties: Map<string, unknown>): void;
|
|
266
|
+
private _syncSession;
|
|
267
|
+
private _handleInitialPromptChange;
|
|
268
|
+
/**
|
|
269
|
+
* Parses assistant markdown into HTML and sanitizes it to prevent XSS attacks
|
|
270
|
+
* while preserving safe formatting (headings, lists, tables, code, links).
|
|
271
|
+
* @param markdownContent - The markdown string returned by the assistant
|
|
272
|
+
* @returns Sanitized HTML string safe for rendering
|
|
273
|
+
*/
|
|
274
|
+
private _renderMarkdown;
|
|
275
|
+
private _renderProgress;
|
|
276
|
+
private _isLastAiMessageWithProgress;
|
|
277
|
+
private _syncAssistantMessageActionsVisibility;
|
|
278
|
+
private _handleAssistantMessageActionsSlotChange;
|
|
279
|
+
private _setAssistantMessageActionsSlotHasContent;
|
|
280
|
+
private _isLatestAssistantMessage;
|
|
281
|
+
private _hasBuiltInAssistantMessageActions;
|
|
282
|
+
private _assistantMessageActionsFooterHasContent;
|
|
283
|
+
private _syncPendingAssistantMessageAction;
|
|
284
|
+
private _getDefaultAssistantMessageActionConfirmMessage;
|
|
285
|
+
private _isAssistantMessageActionConfirming;
|
|
286
|
+
private _getPendingAssistantMessageAction;
|
|
287
|
+
private _handleAssistantMessageAction;
|
|
288
|
+
private _handleAssistantMessageActionClick;
|
|
289
|
+
private _cancelAssistantMessageActionConfirm;
|
|
290
|
+
private _confirmAssistantMessageAction;
|
|
291
|
+
private _handleAssistantMessageActionConfirmKeydown;
|
|
292
|
+
private _focusPendingAssistantMessageActionConfirm;
|
|
293
|
+
private _renderBuiltInAssistantMessageAction;
|
|
294
|
+
private _renderAssistantMessageActionConfirm;
|
|
295
|
+
private _renderAssistantMessageActions;
|
|
296
|
+
private _renderRestoreMenu;
|
|
297
|
+
private _renderMessages;
|
|
298
|
+
private _renderStreamingResponse;
|
|
299
|
+
private _renderLoadingMessage;
|
|
300
|
+
private _renderEmptyState;
|
|
301
|
+
protected render(): TemplateResult;
|
|
302
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import type { Dataset, LuzmoChart } from '../../types';
|
|
2
|
+
export type AiPromptAgent = 'item' | 'dashboard' | 'analyst';
|
|
3
|
+
export type AiPromptItemTask = 'generate' | 'suggest' | 'describe';
|
|
4
|
+
export type AiPromptScreenMode = 'desktop' | 'tablet' | 'mobile';
|
|
5
|
+
/** Dashboard payload for `agent: 'dashboard'` input (views, syncScreenModes, optional theme). */
|
|
6
|
+
export interface DashboardStatePayload {
|
|
7
|
+
views: unknown[];
|
|
8
|
+
syncScreenModes?: boolean;
|
|
9
|
+
theme?: Record<string, unknown>;
|
|
10
|
+
[key: string]: unknown;
|
|
11
|
+
}
|
|
12
|
+
export interface AiPromptTextInput {
|
|
13
|
+
type: 'text';
|
|
14
|
+
text: string;
|
|
15
|
+
}
|
|
16
|
+
export interface AiPromptDatasetInput {
|
|
17
|
+
type: 'dataset';
|
|
18
|
+
id: string;
|
|
19
|
+
}
|
|
20
|
+
export interface AiPromptItemInput {
|
|
21
|
+
type: 'item';
|
|
22
|
+
value: Record<string, unknown>;
|
|
23
|
+
}
|
|
24
|
+
export interface AiPromptDashboardInput {
|
|
25
|
+
type: 'dashboard';
|
|
26
|
+
value: DashboardStatePayload;
|
|
27
|
+
current_screen_mode?: AiPromptScreenMode;
|
|
28
|
+
}
|
|
29
|
+
export type AiPromptInput = AiPromptTextInput | AiPromptDatasetInput | AiPromptItemInput | AiPromptDashboardInput;
|
|
30
|
+
export interface AiPromptProperties {
|
|
31
|
+
agent: AiPromptAgent;
|
|
32
|
+
task: AiPromptItemTask | 'generate';
|
|
33
|
+
conversation_id?: string;
|
|
34
|
+
locale_id?: string;
|
|
35
|
+
timezone_id?: string;
|
|
36
|
+
stream: boolean;
|
|
37
|
+
response_mode: 'mixed';
|
|
38
|
+
input: AiPromptInput[];
|
|
39
|
+
}
|
|
40
|
+
export interface AiPromptCreateBody {
|
|
41
|
+
key: string;
|
|
42
|
+
token: string;
|
|
43
|
+
action: 'create';
|
|
44
|
+
version: string;
|
|
45
|
+
properties: AiPromptProperties;
|
|
46
|
+
}
|
|
47
|
+
export interface AiPromptDeleteBody {
|
|
48
|
+
key: string;
|
|
49
|
+
token: string;
|
|
50
|
+
action: 'delete';
|
|
51
|
+
version: string;
|
|
52
|
+
properties: {
|
|
53
|
+
agent: 'item';
|
|
54
|
+
restore_to_message_id: string;
|
|
55
|
+
conversation_id?: string;
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
export interface BuildAiPromptRequestContext {
|
|
59
|
+
prompt: string;
|
|
60
|
+
datasetIds: string[];
|
|
61
|
+
authKey: string;
|
|
62
|
+
authToken: string;
|
|
63
|
+
conversationId: string | null;
|
|
64
|
+
apiVersion?: string;
|
|
65
|
+
stream?: boolean;
|
|
66
|
+
localeId?: string;
|
|
67
|
+
timezoneId?: string;
|
|
68
|
+
/** Session/UI preference only; not serialized on aiprompt create until the backend supports it. */
|
|
69
|
+
modelPreference?: 'performance' | 'quality';
|
|
70
|
+
chart?: LuzmoChart | null;
|
|
71
|
+
dashboard?: DashboardStatePayload | null;
|
|
72
|
+
currentScreenMode?: AiPromptScreenMode;
|
|
73
|
+
task?: AiPromptItemTask;
|
|
74
|
+
}
|
|
75
|
+
export interface LuzmoPromptSubmittedEventDetail {
|
|
76
|
+
prompt: string;
|
|
77
|
+
selectedDatasets: Dataset[];
|
|
78
|
+
datasetIds: string[];
|
|
79
|
+
agent: AiPromptAgent;
|
|
80
|
+
request: AiPromptCreateBody;
|
|
81
|
+
url: string;
|
|
82
|
+
signal?: AbortSignal;
|
|
83
|
+
}
|
|
84
|
+
export interface LuzmoRestoreRequestedEventDetail {
|
|
85
|
+
apiMessageId: string;
|
|
86
|
+
messageIndex: number;
|
|
87
|
+
request: AiPromptDeleteBody;
|
|
88
|
+
url: string;
|
|
89
|
+
}
|
|
90
|
+
export interface LuzmoDashboardGeneratedEventDetail {
|
|
91
|
+
dashboard: DashboardStatePayload;
|
|
92
|
+
conversationId: string | null;
|
|
93
|
+
name?: Record<string, string>;
|
|
94
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import '@luzmo/lucero/action-button';
|
|
2
|
+
import { LuzmoElement } from '../../../utils/base';
|
|
3
|
+
import { type TemplateResult } from 'lit';
|
|
4
|
+
import type { AiChatEmptyStateSuggestion } from './types';
|
|
5
|
+
/**
|
|
6
|
+
* @customElement luzmo-ai-chat-empty-state
|
|
7
|
+
* @summary Empty state for AI chat with title, subtitle, and prompt suggestions.
|
|
8
|
+
* @fires {CustomEvent<AiChatEmptyStateSuggestionSelectedDetail>} luzmo-suggestion-selected - Fired when the user selects a suggestion chip
|
|
9
|
+
*
|
|
10
|
+
* @property {string} --luzmo-ai-chat-empty-state-header-actions-gap - Gap between the title and the actions block
|
|
11
|
+
* @property {string} --luzmo-ai-chat-empty-state-actions-gap - Gap between the actions label and suggestion chips
|
|
12
|
+
* @property {string} --luzmo-ai-chat-empty-state-suggestions-gap - Gap between suggestion chips
|
|
13
|
+
* @property {string} --luzmo-ai-chat-empty-state-max-width - Maximum content width
|
|
14
|
+
* @property {string} --luzmo-ai-chat-empty-state-padding-block - Vertical padding
|
|
15
|
+
* @property {string} --luzmo-ai-chat-empty-state-padding-inline - Horizontal padding
|
|
16
|
+
* @property {string} --luzmo-ai-chat-empty-state-title-font-size - Title font size
|
|
17
|
+
* @property {string} --luzmo-ai-chat-empty-state-title-font-weight - Title font weight
|
|
18
|
+
* @property {string} --luzmo-ai-chat-empty-state-title-line-height - Title line height
|
|
19
|
+
* @property {string} --luzmo-ai-chat-empty-state-title-color - Title text color
|
|
20
|
+
* @property {string} --luzmo-ai-chat-empty-state-subtitle-font-size - Subtitle font size
|
|
21
|
+
* @property {string} --luzmo-ai-chat-empty-state-subtitle-font-weight - Subtitle font weight
|
|
22
|
+
* @property {string} --luzmo-ai-chat-empty-state-subtitle-line-height - Subtitle line height
|
|
23
|
+
* @property {string} --luzmo-ai-chat-empty-state-subtitle-color - Subtitle text color (`--luzmo-font-color-dimmed`)
|
|
24
|
+
*/
|
|
25
|
+
export declare class LuzmoAiChatEmptyState extends LuzmoElement {
|
|
26
|
+
static styles: import("lit").CSSResult;
|
|
27
|
+
static tagName: string;
|
|
28
|
+
/**
|
|
29
|
+
* Heading shown above the suggestions.
|
|
30
|
+
*/
|
|
31
|
+
title: string;
|
|
32
|
+
/**
|
|
33
|
+
* Supporting text shown above suggestion chips when `suggestions` is non-empty.
|
|
34
|
+
*/
|
|
35
|
+
subtitle: string;
|
|
36
|
+
/**
|
|
37
|
+
* Suggestion chips rendered with {@link https://lucero.luzmo.com/ | Lucero} `luzmo-action-button` (`variant="accent"`).
|
|
38
|
+
*/
|
|
39
|
+
suggestions: AiChatEmptyStateSuggestion[];
|
|
40
|
+
/**
|
|
41
|
+
* When true, suggestion chips cannot be activated.
|
|
42
|
+
*/
|
|
43
|
+
disabled: boolean;
|
|
44
|
+
private _handleSuggestionActivate;
|
|
45
|
+
protected render(): TemplateResult;
|
|
46
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { LuzmoAiChatEmptyState } from './ai-chat-empty-state';
|
|
2
|
+
declare global {
|
|
3
|
+
interface HTMLElementTagNameMap {
|
|
4
|
+
'luzmo-ai-chat-empty-state': LuzmoAiChatEmptyState;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
export { LuzmoAiChatEmptyState } from './ai-chat-empty-state';
|
|
8
|
+
export type { AiChatEmptyStateSuggestion, AiChatEmptyStateSuggestionSelectedDetail } from './types';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Dataset } from '../../../types';
|
|
2
|
+
export type AiChatEmptyStateSuggestion = {
|
|
3
|
+
/** Visible label on the suggestion chip. */
|
|
4
|
+
label: string;
|
|
5
|
+
/** Prompt text inserted or submitted when selected; defaults to `label`. */
|
|
6
|
+
prompt?: string;
|
|
7
|
+
/** Datasets applied to the chat input when this suggestion is selected. */
|
|
8
|
+
selectedDatasets?: Dataset[];
|
|
9
|
+
};
|
|
10
|
+
export type AiChatEmptyStateSuggestionSelectedDetail = {
|
|
11
|
+
label: string;
|
|
12
|
+
prompt: string;
|
|
13
|
+
selectedDatasets?: Dataset[];
|
|
14
|
+
};
|