@luzmo/analytics-components-kit 1.0.8-beta.7 → 1.0.8
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/{area-chart-positioning.config-BEwDQj3T.js → area-chart-positioning.config-BJK4Q4NL.js} +1 -1
- package/components/{area-chart-positioning.config-CS-5H8-C.cjs → area-chart-positioning.config-Cbeon6-x.cjs} +1 -1
- package/components/{bar-chart-positioning.config-CBbTYesB.js → bar-chart-positioning.config-B4UuSMIW.js} +1 -1
- package/components/{bar-chart-positioning.config-DkIvwJI5.cjs → bar-chart-positioning.config-BnhZQUtb.cjs} +1 -1
- package/components/base-BtRS5vm6.cjs +20 -0
- package/components/{base-DSeXdW9S.js → base-IE9Qxmub.js} +1 -2
- package/components/{box-plot-positioning.config-CNC-RTwl.js → box-plot-positioning.config-CYk5koLu.js} +1 -1
- package/components/{box-plot-positioning.config-o5D-mRFr.cjs → box-plot-positioning.config-DsldCFWm.cjs} +1 -1
- package/components/{bubble-chart-positioning.config-3ilPXLpZ.js → bubble-chart-positioning.config-BSDmuPwq.js} +1 -1
- package/components/{bubble-chart-positioning.config-CtreNdST.cjs → bubble-chart-positioning.config-BV-T_2cy.cjs} +1 -1
- package/components/{bullet-chart-positioning.config-CkFhShBk.js → bullet-chart-positioning.config-B3GeLs8o.js} +1 -1
- package/components/{bullet-chart-positioning.config-dHj3YrT_.cjs → bullet-chart-positioning.config-BoqQq4g_.cjs} +1 -1
- package/components/{choropleth-map-positioning.config-DOt86t59.js → choropleth-map-positioning.config-6OT0sZa5.js} +1 -1
- package/components/{choropleth-map-positioning.config-BSs-bRGv.cjs → choropleth-map-positioning.config-C_I3wf8H.cjs} +1 -1
- package/components/{circle-pack-chart-positioning.config-BkFATJjC.js → circle-pack-chart-positioning.config-BuuhKB85.js} +1 -1
- package/components/{circle-pack-chart-positioning.config-CVNdIYau.cjs → circle-pack-chart-positioning.config-D7Oke8BW.cjs} +1 -1
- package/components/{circular-gauge-positioning.config-SrbCaaOr.cjs → circular-gauge-positioning.config-B_IJzIBn.cjs} +1 -1
- package/components/{circular-gauge-positioning.config-BV2xb5TF.js → circular-gauge-positioning.config-DlWvKl0e.js} +1 -1
- package/components/{column-chart-positioning.config-T7juV3XT.js → column-chart-positioning.config-BLacEiY5.js} +1 -1
- package/components/{column-chart-positioning.config-DTQe3h_H.cjs → column-chart-positioning.config-DngsP5So.cjs} +1 -1
- package/components/{combination-chart-positioning.config-BrSmdan-.cjs → combination-chart-positioning.config-BVV0Bq-d.cjs} +1 -1
- package/components/{combination-chart-positioning.config-78C7wKnS.js → combination-chart-positioning.config-DxnmzV6O.js} +1 -1
- package/components/{conditional-number-positioning.config-_9ySKU1z.cjs → conditional-number-positioning.config-DfitbPT6.cjs} +1 -1
- package/components/{conditional-number-positioning.config-z_eEfpud.js → conditional-number-positioning.config-YEo_yFBu.js} +1 -1
- package/components/data-field/index.cjs +1 -1
- package/components/data-field/index.d.ts +0 -1
- package/components/data-field/index.js +1 -1
- package/components/data-field-fvlYzmfX.cjs +89 -0
- package/components/data-field-panel/index.cjs +1 -1
- package/components/data-field-panel/index.d.ts +0 -1
- package/components/data-field-panel/index.js +1 -1
- package/components/{data-field-panel-U-5Q-TRp.js → data-field-panel-BWBr1Fog.js} +4 -5
- package/components/data-field-panel-Yrqn4L79.cjs +87 -0
- package/components/{data-field-level-DR_dXjnL.js → data-field-yTJb-R63.js} +141 -47
- package/components/{data-fields-select-BYhAzdA6.js → data-fields-select-Bb1HXwlO.js} +3 -4
- package/components/data-fields-select-Cor6sfzL.cjs +41 -0
- package/components/{display-settings-binning-GIE6ww1Q.js → display-settings-binning-CaE87u3h.js} +19 -17
- package/components/{display-settings-binning-HrXOdGwO.cjs → display-settings-binning-CjvB12ds.cjs} +2 -2
- package/components/{display-settings-datetime-YS7_TUet.js → display-settings-datetime-5rq55OAn.js} +71 -69
- package/components/display-settings-datetime-B23w7aH4.cjs +217 -0
- package/components/display-settings-grand-totals-BZ0nlLhu.cjs +44 -0
- package/components/{display-settings-grand-totals-Bt_ju8jp.js → display-settings-grand-totals-DnKvI34n.js} +19 -17
- package/components/{display-settings-numeric-OHmktQsz.js → display-settings-numeric-B8MCRz-V.js} +81 -79
- package/components/display-settings-numeric-DoScgfRy.cjs +190 -0
- package/components/display-settings-period-over-period-C-hp0ZKN.cjs +227 -0
- package/components/{display-settings-period-over-period-B1_IJjWK.js → display-settings-period-over-period-W3dPK8LR.js} +98 -88
- package/components/{donut-chart-positioning.config-BY2TIeeY.cjs → donut-chart-positioning.config-QOZXaJmt.cjs} +1 -1
- package/components/{donut-chart-positioning.config-D34HegyZ.js → donut-chart-positioning.config-fGckMun2.js} +1 -1
- package/components/{en-q_Ruzags.cjs → en-CSPDwq2y.cjs} +1 -1
- package/components/{en-US-CcLhGxIh.js → en-DdS5q1ZT.js} +1 -1
- package/components/{en-GB-uxY5qmIM.cjs → en-GB-CJR66Ci_.cjs} +1 -1
- package/components/{en-GB-DzkdeUQh.js → en-GB-Cn0xDC0K.js} +1 -1
- package/components/{en-US-q_Ruzags.cjs → en-US-CSPDwq2y.cjs} +1 -1
- package/components/{en-CcLhGxIh.js → en-US-DdS5q1ZT.js} +1 -1
- package/components/{evolution-number-positioning.config-BBvULr59.cjs → evolution-number-positioning.config-B7lBArog.cjs} +1 -1
- package/components/{evolution-number-positioning.config-CKzCTjdO.js → evolution-number-positioning.config-CVIysE4H.js} +1 -1
- package/components/filters/index.cjs +1 -1
- package/components/filters/index.js +2 -2
- package/components/filters-DndJU6D5.js +2454 -0
- package/components/filters-oB9qOk_M.cjs +443 -0
- package/components/formula/index.cjs +1 -1
- package/components/formula/index.js +1 -1
- package/components/formula-BFvxm8kj.cjs +45 -0
- package/components/{formula-BYx4gH6i.js → formula-CdAkO1za.js} +14 -15
- package/components/{formula-codemirror-CVzyYNLO.js → formula-codemirror-jVC8mjQ3.js} +19 -21
- package/components/formula-codemirror-ucFOD-2a.cjs +215 -0
- package/components/{formula-display-store-BPn9m5TL.js → formula-display-store-CLAt_fik.js} +271 -242
- package/components/formula-display-store-DmT65fUB.cjs +20 -0
- package/components/formula-editor/index.cjs +1 -1
- package/components/formula-editor/index.d.ts +0 -1
- package/components/formula-editor/index.js +3 -4
- package/components/{formula-editor-BxoIkARr.js → formula-editor-Bd9F-xdZ.js} +351 -146
- package/components/formula-editor-BeZ-fu-7.cjs +253 -0
- package/components/{funnel-chart-positioning.config-CvhpE7rN.js → funnel-chart-positioning.config-BGi7ixet.js} +1 -1
- package/components/{funnel-chart-positioning.config-BPSmV76y.cjs → funnel-chart-positioning.config-zEqgz9Wz.cjs} +1 -1
- package/components/{heat-map-positioning.config-CHDHFIo2.cjs → heat-map-positioning.config-3dxU6qwG.cjs} +1 -1
- package/components/{heat-map-positioning.config-AOHTEJf7.js → heat-map-positioning.config-CK2DBngE.js} +1 -1
- package/components/{heat-table-positioning.config-DprOfmlW.js → heat-table-positioning.config-C55D814C.js} +1 -1
- package/components/{heat-table-positioning.config-DCLE9cy4.cjs → heat-table-positioning.config-CbscS7w1.cjs} +1 -1
- package/components/{hexbin-map-positioning.config-BjxkoqGh.js → hexbin-map-positioning.config-9nnyZGzx.js} +1 -1
- package/components/{marker-map-positioning.config-Bq1EPg3J.cjs → hexbin-map-positioning.config-CHecaD9p.cjs} +1 -1
- package/components/index.cjs +840 -1
- package/components/index.js +6783 -67
- package/components/item-grid/index.cjs +1 -1
- package/components/item-grid/index.js +1 -1
- package/components/{item-grid-CcwnD_u5.cjs → item-grid-C2ZvM04g.cjs} +22 -22
- package/components/{item-grid-C_OTtv4T.js → item-grid-D4xYhMOD.js} +1 -2
- package/components/item-option/index.cjs +1 -1
- package/components/item-option/index.js +1 -1
- package/components/{item-option-DRWLN89_.js → item-option-28BU_oaD.js} +2 -2
- package/components/item-option-BQpS6rM_.cjs +269 -0
- 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-BwBxRLzB.cjs +53 -0
- package/components/{item-option-action-button-group-B9ghoHeh.js → item-option-action-button-group-D_g6aoYd.js} +2 -2
- package/components/item-option-base-C6uwowJD.cjs +56 -0
- package/components/{item-option-base-pYrkqt6q.js → item-option-base-CxQhI83u.js} +2 -2
- 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-BjHadiN0.cjs +40 -0
- package/components/{item-option-color-palette-picker-DnVqGnm4.js → item-option-color-palette-picker-CRDFqhWx.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-CNkNZ1p-.cjs → item-option-color-picker-BJgpBbDp.cjs} +2 -2
- package/components/{item-option-color-picker-CO-OAFOs.js → item-option-color-picker-BlkpWjQh.js} +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-bdYUxgQ9.js → item-option-color-range-3Wp-Ywz6.js} +2 -2
- package/components/item-option-color-range-CQo8uThO.cjs +98 -0
- package/components/item-option-guidelines/index.cjs +1 -1
- package/components/item-option-guidelines/index.js +1 -1
- package/components/{item-option-guidelines-Ce88dTV-.js → item-option-guidelines-CQ_yb7Ar.js} +3 -4
- package/components/item-option-guidelines-Daf8Ce5z.cjs +135 -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-D0jRPAjY.cjs → item-option-multi-language-field-BApbe3pp.cjs} +2 -2
- package/components/{item-option-multi-language-field-0qfdBanp.js → item-option-multi-language-field-aLIpQWiQ.js} +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-DYJ0eIf7.cjs → item-option-number-field-B72ZYOAX.cjs} +2 -2
- package/components/{item-option-number-field-CcEav5C3.js → item-option-number-field-Bv5eGoxB.js} +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-6Voh87nt.cjs → item-option-panel-A8Jxzwml.cjs} +2 -2
- package/components/{item-option-panel-DrI7HYrY.js → item-option-panel-kRH7GbzA.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-Bv4aGaCO.js → item-option-picker-BuUtW6gD.js} +2 -2
- package/components/{item-option-picker-DkEgfEE7.cjs → item-option-picker-DOFJ1CnI.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-Cnis4wLA.cjs +32 -0
- package/components/{item-option-position-picker-1d7qZmDv.js → item-option-position-picker-mf3JQu5q.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-B7gI1IKO.cjs +49 -0
- package/components/{item-option-positions-number-field-DUlBsbUL.js → item-option-positions-number-field-BIBWpagB.js} +2 -2
- 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-ChtTIO3B.cjs → item-option-radio-button-group-B2HYZguB.cjs} +2 -2
- package/components/{item-option-radio-button-group-DuMcIZvr.js → item-option-radio-button-group-CFnfadK2.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--7hmhi97.cjs +33 -0
- package/components/{item-option-slider-CWxRoAbA.js → item-option-slider-CH1l0Ena.js} +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-dO66fjoD.cjs → item-option-switch-hUFRE9MC.cjs} +2 -2
- package/components/{item-option-switch-DvMLATBO.js → item-option-switch-rqu2ePVU.js} +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-Furz80ho.cjs → item-option-text-field-C6CocZ5q.cjs} +2 -2
- package/components/{item-option-text-field-DS-gn_Gc.js → item-option-text-field-CBFMmuK2.js} +2 -2
- package/components/item-slot-drop/index.cjs +1 -1
- package/components/item-slot-drop/index.d.ts +0 -2
- package/components/item-slot-drop/index.js +1 -1
- package/components/{item-slot-drop-DE90FDdS.js → item-slot-drop-DDGclwbP.js} +12 -17
- package/components/item-slot-drop-hK-rLhwa.cjs +91 -0
- 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-CE4f9X6F.cjs +57 -0
- package/components/{item-slot-drop-panel-CyfhbUlE.js → item-slot-drop-panel-Cj6vbgJl.js} +40 -41
- package/components/item-slot-picker/index.cjs +1 -1
- package/components/item-slot-picker/index.js +1 -1
- package/components/{item-slot-picker-BM03UNRE.js → item-slot-picker-CjQH3MU-.js} +17 -22
- package/components/item-slot-picker-Wf50lM5u.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-DPaabfv5.js → item-slot-picker-panel-7IFk5QFC.js} +4 -5
- package/components/item-slot-picker-panel-Csn1tabr.cjs +81 -0
- package/components/{line-chart-positioning.config-CPGyHeJF.js → line-chart-positioning.config-D5WVvIZT.js} +1 -1
- package/components/{line-chart-positioning.config-BnDYCjGX.cjs → line-chart-positioning.config-DuXn1WD-.cjs} +1 -1
- package/components/load-data-fields-for-datasets-B76UR0sG.js +86 -0
- package/components/load-data-fields-for-datasets-DFYeACsu.cjs +20 -0
- package/components/{ad-hoc-slot-content-BwcFfXCV.cjs → localized-mixin-DfpurTYo.cjs} +1 -1
- package/components/{decorate-DyMgX_Uh.js → localized-mixin-DhiGdPMj.js} +26 -2
- package/components/{marker-map-positioning.config-CBERtxkG.js → marker-map-positioning.config-D2L7cvCP.js} +1 -1
- package/components/{hexbin-map-positioning.config-BmLljWez.cjs → marker-map-positioning.config-DfN39a-Q.cjs} +1 -1
- package/components/{ohlc-chart-positioning.config-CpPJyyLB.js → ohlc-chart-positioning.config-C53dCwaT.js} +1 -1
- package/components/{ohlc-chart-positioning.config-aCf-SEt7.cjs → ohlc-chart-positioning.config-DsBuB0VU.cjs} +1 -1
- package/components/{parallel-coordinates-plot-positioning.config-DsNDp1G7.js → parallel-coordinates-plot-positioning.config-DhoVstsb.js} +1 -1
- package/components/{parallel-coordinates-plot-positioning.config-D1CB7jOv.cjs → parallel-coordinates-plot-positioning.config-aiFzLnnh.cjs} +1 -1
- package/components/period-over-period-condition.const-DDgiXIfR.cjs +20 -0
- package/components/{formatter-Cq5dFCyU.js → period-over-period-condition.const-IOVIrgKJ.js} +234 -44
- package/components/{pivot-table-positioning.config-gBHM1_-K.cjs → pivot-table-positioning.config-Bq9BoQWM.cjs} +1 -1
- package/components/{pivot-table-positioning.config-BFWS3Yk_.js → pivot-table-positioning.config-Cnai84AH.js} +1 -1
- package/components/{pyramid-chart-positioning.config-B8dbZhvt.js → pyramid-chart-positioning.config-BeJ5R_Ln.js} +1 -1
- package/components/{pyramid-chart-positioning.config-DD64vCwl.cjs → pyramid-chart-positioning.config-D5AKNCPb.cjs} +1 -1
- package/components/{radar-chart-positioning.config-DN51_Tzb.cjs → radar-chart-positioning.config-BEIwrzhb.cjs} +1 -1
- package/components/{radar-chart-positioning.config-C2DWQu8V.js → radar-chart-positioning.config-DsfUBq4B.js} +1 -1
- package/components/{route-map-positioning.config-ryk_dUkh.cjs → route-map-positioning.config-4Wyvj5OH.cjs} +1 -1
- package/components/{route-map-positioning.config-D7X6QuWY.js → route-map-positioning.config-CuiRWzbs.js} +1 -1
- package/components/{sankey-diagram-positioning.config-CJfGpnPS.cjs → sankey-diagram-positioning.config-CZ-zVCQo.cjs} +1 -1
- package/components/{sankey-diagram-positioning.config-A_7xM06n.js → sankey-diagram-positioning.config-DtN7dARd.js} +1 -1
- package/components/{scatter-plot-positioning.config-qpwrugRe.js → scatter-plot-positioning.config-BXrzdLIc.js} +1 -1
- package/components/{scatter-plot-positioning.config-Duao2ftU.cjs → scatter-plot-positioning.config-CfAf_FUW.cjs} +1 -1
- package/components/{slicer-filter-positioning.config-93hC7jID.js → slicer-filter-positioning.config-BLGeCJys.js} +1 -1
- package/components/{slicer-filter-positioning.config-DxhC39ak.cjs → slicer-filter-positioning.config-CU86hJi6.cjs} +1 -1
- package/components/slot-menu-1zlmyLVl.js +1060 -0
- package/components/slot-menu-BSu8wKLi.cjs +217 -0
- package/components/{speedometer-chart-positioning.config-DtRG3-e5.cjs → speedometer-chart-positioning.config-AeMlNxSj.cjs} +1 -1
- package/components/{speedometer-chart-positioning.config-CZbwyYsk.js → speedometer-chart-positioning.config-Dam0wOqp.js} +1 -1
- package/components/{spike-map-positioning.config-CevjyQ5F.cjs → spike-map-positioning.config-9ShV1fUh.cjs} +1 -1
- package/components/{spike-map-positioning.config-LBqSYD2n.js → spike-map-positioning.config-BVzewpfi.js} +1 -1
- package/components/{strip-plot-positioning.config-DF5VxzvB.cjs → strip-plot-positioning.config-BVBdHZvL.cjs} +1 -1
- package/components/{strip-plot-positioning.config-cCdQxMM_.js → strip-plot-positioning.config-OHm3LEo3.js} +1 -1
- package/components/{sunburst-chart-positioning.config-DmkZEexM.js → sunburst-chart-positioning.config-BynNbbxB.js} +1 -1
- package/components/{sunburst-chart-positioning.config-CERBvfoF.cjs → sunburst-chart-positioning.config-DQmuKm-N.cjs} +1 -1
- package/components/{symbol-map-positioning.config-DhYxG8RC.cjs → symbol-map-positioning.config-D6rgxXTO.cjs} +1 -1
- package/components/{symbol-map-positioning.config-BwG_G6He.js → symbol-map-positioning.config-bQk_pdAr.js} +1 -1
- package/components/{treemap-chart-positioning.config-arjPT6b_.js → treemap-chart-positioning.config-BB1-rZKL.js} +1 -1
- package/components/{treemap-chart-positioning.config-BwrrXs4a.cjs → treemap-chart-positioning.config-ZaoIngRn.cjs} +1 -1
- package/components/utils/base.cjs +1 -1
- package/components/utils/base.js +2 -2
- package/components/utils-CPIzW8sp.cjs +20 -0
- package/components/{utils-B_rE5b7a.js → utils-ZoJ1cp2P.js} +41 -42
- package/components/utils.cjs +1 -1
- package/components/utils.js +5 -8
- package/components/{venn-diagram-positioning.config-DSh3Ns9L.js → venn-diagram-positioning.config-C9ARqREi.js} +1 -1
- package/components/{venn-diagram-positioning.config-GGLCcrqp.cjs → venn-diagram-positioning.config-Cb10sStL.cjs} +1 -1
- package/components/{wordcloud-chart-positioning.config-B8ZzwIdd.js → wordcloud-chart-positioning.config-D59ntNtd.js} +1 -1
- package/components/{wordcloud-chart-positioning.config-Cxyhs6gk.cjs → wordcloud-chart-positioning.config-DC89_DYc.cjs} +1 -1
- package/custom-elements.json +6756 -18314
- package/index.d.ts +0 -25
- package/package.json +1 -126
- package/react/esm/index.d.ts +2 -27
- package/react/esm/index.js +2 -102
- package/react/index.ts +2 -102
- package/react/luzmo-stub.d.ts +0 -140
- package/react/package.json +2 -2
- package/types.d.ts +0 -9
- package/utils/slot-state/slot-store.d.ts +4 -0
- package/components/ad-hoc-slot-content-hSlT62VS.js +0 -29
- package/components/ai-chat/ai-chat-events.d.ts +0 -139
- package/components/ai-chat/ai-chat-request.d.ts +0 -25
- package/components/ai-chat/ai-chat.d.ts +0 -347
- package/components/ai-chat/ai-prompt-types.d.ts +0 -133
- package/components/ai-chat/empty-state/ai-chat-empty-state.d.ts +0 -46
- package/components/ai-chat/empty-state/index.d.ts +0 -8
- package/components/ai-chat/empty-state/types.d.ts +0 -14
- package/components/ai-chat/helpers/agent-config.d.ts +0 -12
- package/components/ai-chat/helpers/elicitation-template.d.ts +0 -18
- package/components/ai-chat/index.cjs +0 -20
- package/components/ai-chat/index.d.ts +0 -24
- package/components/ai-chat/index.js +0 -29
- package/components/ai-chat/session/ai-chat-session-controller.d.ts +0 -60
- package/components/ai-chat/session/ai-chat-session-types.d.ts +0 -119
- package/components/ai-chat/session/ai-chat-session.d.ts +0 -119
- package/components/ai-chat/session/index.d.ts +0 -2
- package/components/ai-chat/stream/chunk-extractors.d.ts +0 -29
- package/components/ai-chat/stream/index.d.ts +0 -53
- package/components/ai-chat/stream/progress.d.ts +0 -3
- package/components/ai-chat/stream/registry.d.ts +0 -6
- package/components/ai-chat/stream/stream-processor.d.ts +0 -2
- package/components/ai-chat/stream/transport.d.ts +0 -26
- package/components/ai-chat/stream/types.d.ts +0 -59
- package/components/ai-chat/types.d.ts +0 -24
- package/components/ai-chat-CG-eIiBr.cjs +0 -337
- package/components/ai-chat-CMc_9Oo2.js +0 -4350
- package/components/ai-interaction-textarea/ai-interaction-textarea.d.ts +0 -232
- package/components/ai-interaction-textarea/index.cjs +0 -20
- package/components/ai-interaction-textarea/index.d.ts +0 -10
- package/components/ai-interaction-textarea/index.js +0 -28
- package/components/ai-interaction-textarea/types.d.ts +0 -12
- package/components/ai-interaction-textarea-B6tZgh5k.cjs +0 -99
- package/components/ai-interaction-textarea-D9g9G0T1.js +0 -820
- package/components/base-D6QPZnpu.cjs +0 -20
- package/components/convert-data-field-to-slot-content-C6IIqU7G.js +0 -53
- package/components/convert-data-field-to-slot-content-DLzkk6dT.cjs +0 -20
- package/components/convert-datasets-to-data-fields-B13rl1an.cjs +0 -20
- package/components/convert-datasets-to-data-fields-PmQzeVLG.js +0 -68
- package/components/data-field-9ZZFw68C.cjs +0 -54
- package/components/data-field-D1WW_V0N.js +0 -121
- package/components/data-field-level/data-field-level.d.ts +0 -40
- package/components/data-field-level/helpers/generate-preview.d.ts +0 -9
- package/components/data-field-level/index.cjs +0 -20
- package/components/data-field-level/index.d.ts +0 -8
- package/components/data-field-level/index.js +0 -28
- package/components/data-field-level-Dc-EMhC3.cjs +0 -55
- package/components/data-field-panel-DFA97_8o.cjs +0 -87
- package/components/data-fields-select/data-fields-select.d.ts +0 -133
- package/components/data-fields-select/index.cjs +0 -20
- package/components/data-fields-select/index.d.ts +0 -9
- package/components/data-fields-select/index.js +0 -28
- package/components/data-fields-select/types.d.ts +0 -4
- package/components/data-fields-select-BtXNFZy9.cjs +0 -41
- package/components/dataset-icon/dataset-icon.d.ts +0 -45
- package/components/dataset-icon/index.cjs +0 -20
- package/components/dataset-icon/index.d.ts +0 -8
- package/components/dataset-icon/index.js +0 -28
- package/components/dataset-icon/types.d.ts +0 -11
- package/components/dataset-icon-BAV0S4sZ.cjs +0 -64
- package/components/dataset-icon-CWT5Ju8w.js +0 -125
- package/components/dataset-selector-list/dataset-selector-list.d.ts +0 -106
- package/components/dataset-selector-list/index.cjs +0 -20
- package/components/dataset-selector-list/index.d.ts +0 -8
- package/components/dataset-selector-list/index.js +0 -28
- package/components/dataset-selector-list-BXg6DIKI.cjs +0 -75
- package/components/dataset-selector-list-q6qWA7B-.js +0 -323
- package/components/dataset-selector-row/dataset-selector-row.d.ts +0 -135
- package/components/dataset-selector-row/index.cjs +0 -20
- package/components/dataset-selector-row/index.d.ts +0 -9
- package/components/dataset-selector-row/index.js +0 -28
- package/components/dataset-selector-row-ZKET7lVc.js +0 -427
- package/components/dataset-selector-row-bqwY3zaf.cjs +0 -102
- package/components/decompose-numeric-format-DGJua3rU.cjs +0 -20
- package/components/decompose-numeric-format-DS0j2wa1.js +0 -36
- package/components/decorate-DCJt-2rt.cjs +0 -20
- package/components/display-settings/display-settings.d.ts +0 -117
- package/components/display-settings/index.cjs +0 -20
- package/components/display-settings/index.d.ts +0 -8
- package/components/display-settings/index.js +0 -28
- package/components/display-settings/types.d.ts +0 -9
- package/components/display-settings-BlMhlvVS.cjs +0 -140
- package/components/display-settings-D_wBgzm1.js +0 -313
- package/components/display-settings-binning/display-settings-binning.d.ts +0 -32
- package/components/display-settings-binning/index.cjs +0 -20
- package/components/display-settings-binning/index.d.ts +0 -8
- package/components/display-settings-binning/index.js +0 -28
- package/components/display-settings-datetime/display-settings-datetime.d.ts +0 -86
- package/components/display-settings-datetime/index.cjs +0 -20
- package/components/display-settings-datetime/index.d.ts +0 -8
- package/components/display-settings-datetime/index.js +0 -28
- package/components/display-settings-datetime-DNeLEl3L.cjs +0 -217
- package/components/display-settings-grand-totals/display-settings-grand-totals.d.ts +0 -29
- package/components/display-settings-grand-totals/index.cjs +0 -20
- package/components/display-settings-grand-totals/index.d.ts +0 -8
- package/components/display-settings-grand-totals/index.js +0 -28
- package/components/display-settings-grand-totals-C-7s1Tyo.cjs +0 -44
- package/components/display-settings-numeric/display-settings-numeric.d.ts +0 -82
- package/components/display-settings-numeric/helpers/constants.d.ts +0 -19
- package/components/display-settings-numeric/index.cjs +0 -20
- package/components/display-settings-numeric/index.d.ts +0 -8
- package/components/display-settings-numeric/index.js +0 -28
- package/components/display-settings-numeric--uwJWzC1.cjs +0 -190
- package/components/display-settings-period-over-period/display-settings-period-over-period.d.ts +0 -68
- package/components/display-settings-period-over-period/helpers/constants.d.ts +0 -44
- package/components/display-settings-period-over-period/index.cjs +0 -20
- package/components/display-settings-period-over-period/index.d.ts +0 -8
- package/components/display-settings-period-over-period/index.js +0 -28
- package/components/display-settings-period-over-period-C4X8c-_R.cjs +0 -229
- package/components/filter-expression-picker/filter-expression-picker.d.ts +0 -73
- package/components/filter-expression-picker/index.cjs +0 -20
- package/components/filter-expression-picker/index.d.ts +0 -7
- package/components/filter-expression-picker/index.js +0 -28
- package/components/filter-expression-picker-BOLyxG2r.cjs +0 -38
- package/components/filter-expression-picker-DurfSgRY.js +0 -425
- package/components/filter-item/filter-item.d.ts +0 -103
- package/components/filter-item/index.cjs +0 -20
- package/components/filter-item/index.d.ts +0 -7
- package/components/filter-item/index.js +0 -28
- package/components/filter-item-C58zIpPh.js +0 -316
- package/components/filter-item-obyHcs9f.cjs +0 -71
- package/components/filter-parameter-picker/filter-parameter-picker.d.ts +0 -87
- package/components/filter-parameter-picker/filter-parameter-picker.helpers.d.ts +0 -8
- package/components/filter-parameter-picker/index.cjs +0 -20
- package/components/filter-parameter-picker/index.d.ts +0 -9
- package/components/filter-parameter-picker/index.js +0 -28
- package/components/filter-parameter-picker/types.d.ts +0 -4
- package/components/filter-parameter-picker-BWNBc8BI.js +0 -363
- package/components/filter-parameter-picker-DSYaE9Sv.cjs +0 -123
- package/components/filter-value-picker/filter-value-picker.d.ts +0 -66
- package/components/filter-value-picker/index.cjs +0 -20
- package/components/filter-value-picker/index.d.ts +0 -7
- package/components/filter-value-picker/index.js +0 -28
- package/components/filter-value-picker-DYl_1pis.cjs +0 -60
- package/components/filter-value-picker-datetime/filter-value-picker-datetime.d.ts +0 -45
- package/components/filter-value-picker-datetime/index.cjs +0 -20
- package/components/filter-value-picker-datetime/index.d.ts +0 -7
- package/components/filter-value-picker-datetime/index.js +0 -28
- package/components/filter-value-picker-datetime-BFbmCKs3.cjs +0 -42
- package/components/filter-value-picker-datetime-CP5__ua6.js +0 -139
- package/components/filter-value-picker-hierarchy/filter-value-picker-hierarchy.d.ts +0 -99
- package/components/filter-value-picker-hierarchy/index.cjs +0 -20
- package/components/filter-value-picker-hierarchy/index.d.ts +0 -7
- package/components/filter-value-picker-hierarchy/index.js +0 -28
- package/components/filter-value-picker-hierarchy-BTf992WX.cjs +0 -48
- package/components/filter-value-picker-hierarchy-j0LRYW1c.js +0 -299
- package/components/filter-value-picker-kzIrnmdp.js +0 -151
- package/components/filter-value-picker-numeric/filter-value-picker-numeric.d.ts +0 -83
- package/components/filter-value-picker-numeric/index.cjs +0 -20
- package/components/filter-value-picker-numeric/index.d.ts +0 -7
- package/components/filter-value-picker-numeric/index.js +0 -28
- package/components/filter-value-picker-numeric-BmKmeOol.js +0 -219
- package/components/filter-value-picker-numeric-DJi0Utk_.cjs +0 -48
- package/components/filters-BddhKRZC.js +0 -745
- package/components/filters-Dx6g0xl9.cjs +0 -153
- package/components/formatter-BeXmurVe.cjs +0 -20
- package/components/formula-cc2AaiLt.cjs +0 -45
- package/components/formula-codemirror/formula-codemirror.d.ts +0 -79
- package/components/formula-codemirror/index.d.ts +0 -7
- package/components/formula-codemirror/pills/formula-aggregation/formula-aggregation.d.ts +0 -125
- package/components/formula-codemirror/pills/formula-aggregation/index.d.ts +0 -7
- package/components/formula-codemirror/pills/formula-empty-argument-pill/formula-empty-argument-pill.d.ts +0 -28
- package/components/formula-codemirror/pills/formula-empty-argument-pill/index.d.ts +0 -7
- package/components/formula-codemirror/pills/formula-include-exclude-panel.d.ts +0 -38
- package/components/formula-codemirror-EMK3MCNZ.cjs +0 -215
- package/components/formula-display-store-DER7C0GG.cjs +0 -20
- package/components/formula-draggable-field/formula-draggable-field.d.ts +0 -53
- package/components/formula-draggable-field/index.d.ts +0 -8
- package/components/formula-draggable-field/types.d.ts +0 -24
- package/components/formula-editor-CWKXcUTF.cjs +0 -224
- package/components/formula-field/formula-field.d.ts +0 -20
- package/components/formula-field/index.cjs +0 -20
- package/components/formula-field/index.d.ts +0 -7
- package/components/formula-field/index.js +0 -28
- package/components/formula-field-BtvaOWki.js +0 -40
- package/components/formula-field-CzS2pKJI.cjs +0 -20
- package/components/formula-input-base-CvD0b2cO.cjs +0 -49
- package/components/formula-input-base-DVtGLoyA.js +0 -236
- package/components/get-dataset-name-D53TN7N9.js +0 -32
- package/components/get-dataset-name-DYLdbEs-.cjs +0 -20
- package/components/groupings-Bn9384Zw.cjs +0 -20
- package/components/groupings-BtmmUlPK.js +0 -52
- package/components/interactive-viz-item/helpers/chart-helpers.d.ts +0 -7
- package/components/interactive-viz-item/index.cjs +0 -20
- package/components/interactive-viz-item/index.d.ts +0 -10
- package/components/interactive-viz-item/index.js +0 -28
- package/components/interactive-viz-item/interactive-viz-item.d.ts +0 -96
- package/components/interactive-viz-item/types.d.ts +0 -117
- package/components/interactive-viz-item-DL5aqkvx.js +0 -693
- package/components/interactive-viz-item-DTr14-9-.cjs +0 -247
- package/components/item-menu/item-list/item-list.d.ts +0 -37
- package/components/item-option-action-button-group-Byg9h7uo.cjs +0 -53
- package/components/item-option-base/item-option-base.d.ts +0 -23
- package/components/item-option-base-Dwf3dByS.cjs +0 -56
- package/components/item-option-color-palette-picker-v6TBE-I0.cjs +0 -40
- package/components/item-option-color-range-BveD6fsp.cjs +0 -98
- package/components/item-option-guidelines-D8UjylMx.cjs +0 -135
- package/components/item-option-h8URFjZ2.cjs +0 -269
- package/components/item-option-position-picker-CKgaqFJR.cjs +0 -32
- package/components/item-option-positions-number-field-BJXer0y5.cjs +0 -49
- package/components/item-option-slider-CBSnkHVq.cjs +0 -33
- package/components/item-slot-drop-f8jm-34W.cjs +0 -91
- package/components/item-slot-drop-panel-DLqyYvKj.cjs +0 -57
- package/components/item-slot-picker-CgEtqhqe.cjs +0 -174
- package/components/item-slot-picker-panel-CuH3OcmV.cjs +0 -81
- package/components/load-data-fields-for-datasets-B3XcFFfg.js +0 -42
- package/components/load-data-fields-for-datasets-rL24A68g.cjs +0 -20
- package/components/localized-mixin-CtNoCjjI.cjs +0 -20
- package/components/localized-mixin-DBUkUh0o.js +0 -45
- package/components/period-over-period-condition.const-BZ7j5Z5t.js +0 -29
- package/components/period-over-period-condition.const-C1NZ9Bkp.cjs +0 -20
- package/components/slot-menu/index.cjs +0 -20
- package/components/slot-menu/index.d.ts +0 -10
- package/components/slot-menu/index.js +0 -28
- package/components/slot-menu/slot-menu.d.ts +0 -148
- package/components/slot-menu/types.d.ts +0 -24
- package/components/slot-menu-CPxyyKSe.cjs +0 -71
- package/components/slot-menu-DHJtAZ5_.js +0 -429
- package/components/slot-menu-list/index.cjs +0 -20
- package/components/slot-menu-list/index.d.ts +0 -8
- package/components/slot-menu-list/index.js +0 -28
- package/components/slot-menu-list/slot-menu-list.d.ts +0 -47
- package/components/slot-menu-list-CeWcE4KK.cjs +0 -44
- package/components/slot-menu-list-QltpaoWh.js +0 -347
- package/components/slot-role-classification-2wChhpcq.cjs +0 -20
- package/components/slot-role-classification-B8bkGhQ_.js +0 -133
- package/components/slots-config-Cd4xAG4H.cjs +0 -20
- package/components/slots-config-D3ivNWtC.js +0 -76
- package/components/utils-BwJNkc-z.cjs +0 -20
- package/components/viz-item-menu/index.cjs +0 -20
- package/components/viz-item-menu/index.d.ts +0 -8
- package/components/viz-item-menu/index.js +0 -28
- package/components/viz-item-menu/types.d.ts +0 -9
- package/components/viz-item-menu/viz-item-menu.d.ts +0 -78
- package/components/viz-item-menu-B7yRaSAU.js +0 -170
- package/components/viz-item-menu-hLdU-02Q.cjs +0 -55
- package/deprecated-react/components/ai-chat.component.cjs +0 -1
- package/deprecated-react/components/ai-interaction-textarea.component.cjs +0 -1
- package/deprecated-react/components/data-field-level.component.cjs +0 -1
- package/deprecated-react/components/data-fields-select.component.cjs +0 -1
- package/deprecated-react/components/dataset-icon.component.cjs +0 -1
- package/deprecated-react/components/dataset-selector-list.component.cjs +0 -1
- package/deprecated-react/components/dataset-selector-row.component.cjs +0 -1
- package/deprecated-react/components/display-settings-binning.component.cjs +0 -1
- package/deprecated-react/components/display-settings-datetime.component.cjs +0 -1
- package/deprecated-react/components/display-settings-grand-totals.component.cjs +0 -1
- package/deprecated-react/components/display-settings-numeric.component.cjs +0 -1
- package/deprecated-react/components/display-settings-period-over-period.component.cjs +0 -1
- package/deprecated-react/components/display-settings.component.cjs +0 -1
- package/deprecated-react/components/filter-expression-picker.component.cjs +0 -1
- package/deprecated-react/components/filter-item.component.cjs +0 -1
- package/deprecated-react/components/filter-parameter-picker.component.cjs +0 -1
- package/deprecated-react/components/filter-value-picker-datetime.component.cjs +0 -1
- package/deprecated-react/components/filter-value-picker-hierarchy.component.cjs +0 -1
- package/deprecated-react/components/filter-value-picker-numeric.component.cjs +0 -1
- package/deprecated-react/components/filter-value-picker.component.cjs +0 -1
- package/deprecated-react/components/formula-field.component.cjs +0 -1
- package/deprecated-react/components/interactive-viz-item.component.cjs +0 -1
- package/deprecated-react/components/slot-menu-list.component.cjs +0 -1
- package/deprecated-react/components/slot-menu.component.cjs +0 -1
- package/deprecated-react/components/viz-item-menu.component.cjs +0 -1
- package/react/components/ai-chat.component.ts +0 -45
- package/react/components/ai-interaction-textarea.component.ts +0 -30
- package/react/components/data-field-level.component.ts +0 -30
- package/react/components/data-fields-select.component.ts +0 -27
- package/react/components/dataset-icon.component.ts +0 -22
- package/react/components/dataset-selector-list.component.ts +0 -27
- package/react/components/dataset-selector-row.component.ts +0 -36
- package/react/components/display-settings-binning.component.ts +0 -27
- package/react/components/display-settings-datetime.component.ts +0 -27
- package/react/components/display-settings-grand-totals.component.ts +0 -27
- package/react/components/display-settings-numeric.component.ts +0 -27
- package/react/components/display-settings-period-over-period.component.ts +0 -27
- package/react/components/display-settings.component.ts +0 -33
- package/react/components/filter-expression-picker.component.ts +0 -27
- package/react/components/filter-item.component.ts +0 -27
- package/react/components/filter-parameter-picker.component.ts +0 -33
- package/react/components/filter-value-picker-datetime.component.ts +0 -27
- package/react/components/filter-value-picker-hierarchy.component.ts +0 -27
- package/react/components/filter-value-picker-numeric.component.ts +0 -27
- package/react/components/filter-value-picker.component.ts +0 -27
- package/react/components/formula-field.component.ts +0 -30
- package/react/components/interactive-viz-item.component.ts +0 -33
- package/react/components/slot-menu-list.component.ts +0 -27
- package/react/components/slot-menu.component.ts +0 -42
- package/react/components/viz-item-menu.component.ts +0 -33
- package/react/esm/components/ai-chat.component.d.ts +0 -24
- package/react/esm/components/ai-chat.component.js +0 -29
- package/react/esm/components/ai-interaction-textarea.component.d.ts +0 -14
- package/react/esm/components/ai-interaction-textarea.component.js +0 -19
- package/react/esm/components/data-field-level.component.d.ts +0 -14
- package/react/esm/components/data-field-level.component.js +0 -19
- package/react/esm/components/data-fields-select.component.d.ts +0 -12
- package/react/esm/components/data-fields-select.component.js +0 -17
- package/react/esm/components/dataset-icon.component.d.ts +0 -8
- package/react/esm/components/dataset-icon.component.js +0 -13
- package/react/esm/components/dataset-selector-list.component.d.ts +0 -12
- package/react/esm/components/dataset-selector-list.component.js +0 -17
- package/react/esm/components/dataset-selector-row.component.d.ts +0 -18
- package/react/esm/components/dataset-selector-row.component.js +0 -23
- package/react/esm/components/display-settings-binning.component.d.ts +0 -12
- package/react/esm/components/display-settings-binning.component.js +0 -17
- package/react/esm/components/display-settings-datetime.component.d.ts +0 -12
- package/react/esm/components/display-settings-datetime.component.js +0 -17
- package/react/esm/components/display-settings-grand-totals.component.d.ts +0 -12
- package/react/esm/components/display-settings-grand-totals.component.js +0 -17
- package/react/esm/components/display-settings-numeric.component.d.ts +0 -12
- package/react/esm/components/display-settings-numeric.component.js +0 -17
- package/react/esm/components/display-settings-period-over-period.component.d.ts +0 -12
- package/react/esm/components/display-settings-period-over-period.component.js +0 -17
- package/react/esm/components/display-settings.component.d.ts +0 -16
- package/react/esm/components/display-settings.component.js +0 -21
- package/react/esm/components/filter-expression-picker.component.d.ts +0 -12
- package/react/esm/components/filter-expression-picker.component.js +0 -17
- package/react/esm/components/filter-item.component.d.ts +0 -12
- package/react/esm/components/filter-item.component.js +0 -17
- package/react/esm/components/filter-parameter-picker.component.d.ts +0 -16
- package/react/esm/components/filter-parameter-picker.component.js +0 -21
- package/react/esm/components/filter-value-picker-datetime.component.d.ts +0 -12
- package/react/esm/components/filter-value-picker-datetime.component.js +0 -17
- package/react/esm/components/filter-value-picker-hierarchy.component.d.ts +0 -12
- package/react/esm/components/filter-value-picker-hierarchy.component.js +0 -17
- package/react/esm/components/filter-value-picker-numeric.component.d.ts +0 -12
- package/react/esm/components/filter-value-picker-numeric.component.js +0 -17
- package/react/esm/components/filter-value-picker.component.d.ts +0 -12
- package/react/esm/components/filter-value-picker.component.js +0 -17
- package/react/esm/components/formula-field.component.d.ts +0 -14
- package/react/esm/components/formula-field.component.js +0 -19
- package/react/esm/components/interactive-viz-item.component.d.ts +0 -16
- package/react/esm/components/interactive-viz-item.component.js +0 -21
- package/react/esm/components/slot-menu-list.component.d.ts +0 -12
- package/react/esm/components/slot-menu-list.component.js +0 -17
- package/react/esm/components/slot-menu.component.d.ts +0 -22
- package/react/esm/components/slot-menu.component.js +0 -27
- package/react/esm/components/viz-item-menu.component.d.ts +0 -16
- package/react/esm/components/viz-item-menu.component.js +0 -21
- package/storybook/register-components.d.ts +0 -57
- package/types/agent.types.d.ts +0 -4
- package/types/ai-chat.types.d.ts +0 -104
- package/types/data-field-events.types.d.ts +0 -7
- /package/{storybook/inject-global-vars.d.ts → utils/slot-state/tests/slot-store.test.d.ts} +0 -0
|
@@ -1,232 +0,0 @@
|
|
|
1
|
-
import '@luzmo/lucero/action-button';
|
|
2
|
-
import '@luzmo/lucero/icon';
|
|
3
|
-
import '@luzmo/lucero/prompt-box';
|
|
4
|
-
import { LitElement, PropertyValues, TemplateResult } from 'lit';
|
|
5
|
-
import type { Agent } from '../../types/agent.types';
|
|
6
|
-
import type { Dataset } from '../../types/dataset.types';
|
|
7
|
-
import type { PromptBoxAttachment, PromptBoxFileIcons } from './types';
|
|
8
|
-
import '../dataset-icon';
|
|
9
|
-
import '../dataset-selector-row';
|
|
10
|
-
/**
|
|
11
|
-
* @customElement luzmo-ai-interaction-textarea
|
|
12
|
-
* @summary A textarea for AI interaction with dataset selection. Uses Lucero `luzmo-prompt-box` for visuals; theme it with `--luzmo-prompt-box-*` on this host or an ancestor.
|
|
13
|
-
* @fires {CustomEvent<PromptSubmittedEventDetail>} prompt-submitted - Fired when a prompt is submitted with selected datasets
|
|
14
|
-
* @fires {CustomEvent<void>} prompt-stopped - Fired when a running prompt is stopped
|
|
15
|
-
*
|
|
16
|
-
* @property {boolean} disabled - When true, disables the entire component (opacity 60%, no interactions)
|
|
17
|
-
* @property {boolean} single-line - When true, starts in compact single-line mode and auto-expands as needed
|
|
18
|
-
* @property {boolean} hide-dataset-button - When true, hides the "+ Add dataset" button
|
|
19
|
-
* @property {boolean} hide-dataset-icons - When true, hides dataset-specific icons in selector tags and `@` mention dataset headers
|
|
20
|
-
* @property {number} max-visible-selected-datasets - Maximum number of selected dataset tags shown before the overflow control (default: 5)
|
|
21
|
-
* @property {boolean} disable-dataset-modification - When true, disables the "+ Add dataset" button and disables dataset pill removal
|
|
22
|
-
* @property {boolean} hide-selected-datasets - When true, hides the dataset row entirely
|
|
23
|
-
* @property {boolean} hide-agents - When true, hides the Agents section in the add dropdown and ignores `selectedAgent` for `require-dataset` and `prompt-submitted`
|
|
24
|
-
* @property {boolean} disable-column-mentions - When true, disables `@` trigger mentions completely
|
|
25
|
-
* @property {boolean} is-generating - When true, shows a spinning loader icon instead of the submit arrow
|
|
26
|
-
* @property {boolean} stoppable - When true, shows a stop control while `is-generating` is true
|
|
27
|
-
* @property {string} value - The current value of the textarea (can be controlled from parent to clear or set text)
|
|
28
|
-
* @property {boolean} retain-on-submit - When true, retains the input value after submission (default: false, clears on submit)
|
|
29
|
-
* @property {boolean} require-dataset - When true, a selected agent or at least one selected dataset is required before the prompt can be submitted
|
|
30
|
-
* @property {boolean} allow-images - When true, enables image attachments (paste or file picker); uploads eagerly on attach
|
|
31
|
-
* @property {boolean} allow-voice-input - When true, shows Lucero mic recording and streams transcript via `POST /aidictation`
|
|
32
|
-
* @property {string[]} accepted-file-types - Accepted MIME types or extensions for attachments (e.g. `image/png`, `.webp`)
|
|
33
|
-
* @property {string} api-version - API version for built-in `POST /upload` and `/aidictation` (default `0.1.0`)
|
|
34
|
-
* @property {Function} uploadAttachments - Optional override for eager image upload on attach; return one signed URL per file
|
|
35
|
-
*
|
|
36
|
-
* @property {string} --luzmo-ai-interaction-textarea-disabled-opacity - Opacity of the host when `disabled` (does not map to Lucero prompt-box tokens)
|
|
37
|
-
*/
|
|
38
|
-
export declare class LuzmoAiInteractionTextarea extends LitElement {
|
|
39
|
-
static styles: import("lit").CSSResult;
|
|
40
|
-
static tagName: string;
|
|
41
|
-
/**
|
|
42
|
-
* Placeholder text for the textarea
|
|
43
|
-
*/
|
|
44
|
-
placeholder: string;
|
|
45
|
-
/**
|
|
46
|
-
* Array of selected datasets
|
|
47
|
-
*/
|
|
48
|
-
selectedDatasets: Dataset[];
|
|
49
|
-
/**
|
|
50
|
-
* Auth key for DataBroker authentication
|
|
51
|
-
*/
|
|
52
|
-
authKey: string;
|
|
53
|
-
/**
|
|
54
|
-
* Auth token for DataBroker authentication
|
|
55
|
-
*/
|
|
56
|
-
authToken: string;
|
|
57
|
-
/**
|
|
58
|
-
* API URL for DataBroker
|
|
59
|
-
* @default https://api.luzmo.com
|
|
60
|
-
*/
|
|
61
|
-
apiUrl: string;
|
|
62
|
-
/**
|
|
63
|
-
* The URL of the app server for thumbnails and assets
|
|
64
|
-
* @default https://app.luzmo.com
|
|
65
|
-
*/
|
|
66
|
-
appServer: string;
|
|
67
|
-
/** When true, shows public datasets alongside the user's other datasets. */
|
|
68
|
-
includePublicDatasets: boolean;
|
|
69
|
-
/**
|
|
70
|
-
* Alias for includePublicDatasets.
|
|
71
|
-
* @deprecated Use includePublicDatasets instead.
|
|
72
|
-
*/
|
|
73
|
-
get flagOpendata(): boolean;
|
|
74
|
-
set flagOpendata(value: boolean);
|
|
75
|
-
/**
|
|
76
|
-
* When true, disables the entire component (sets opacity to 60% and prevents all interactions)
|
|
77
|
-
*/
|
|
78
|
-
disabled: boolean;
|
|
79
|
-
/**
|
|
80
|
-
* When true, starts in compact single-line mode and auto-expands as needed
|
|
81
|
-
*/
|
|
82
|
-
singleLine: boolean;
|
|
83
|
-
/**
|
|
84
|
-
* When true, hides the "+ Add dataset" button
|
|
85
|
-
*/
|
|
86
|
-
hideDatasetButton: boolean;
|
|
87
|
-
/**
|
|
88
|
-
* When true, hides dataset-specific icons in selector tags and @ mention dataset headers
|
|
89
|
-
*/
|
|
90
|
-
hideDatasetIcons: boolean;
|
|
91
|
-
/** Maximum number of selected dataset tags shown before the overflow control. */
|
|
92
|
-
maxVisibleSelectedDatasets: number;
|
|
93
|
-
/**
|
|
94
|
-
* The saved Agent the prompt is scoped to, or null
|
|
95
|
-
*/
|
|
96
|
-
selectedAgent: Agent | null;
|
|
97
|
-
/**
|
|
98
|
-
* When true, hides the Agents section in the add dropdown and ignores `selectedAgent` for `require-dataset` and `prompt-submitted`
|
|
99
|
-
*/
|
|
100
|
-
hideAgents: boolean;
|
|
101
|
-
/**
|
|
102
|
-
* When true, disables the "+ Add dataset" button and disables dataset pill removal
|
|
103
|
-
*/
|
|
104
|
-
disableDatasetModification: boolean;
|
|
105
|
-
/**
|
|
106
|
-
* When true, hides the dataset row entirely
|
|
107
|
-
*/
|
|
108
|
-
hideSelectedDatasets: boolean;
|
|
109
|
-
/**
|
|
110
|
-
* When true, disables @ trigger mentions completely
|
|
111
|
-
*/
|
|
112
|
-
disableColumnMentions: boolean;
|
|
113
|
-
/**
|
|
114
|
-
* When true, shows a spinning loader icon instead of the submit arrow
|
|
115
|
-
*/
|
|
116
|
-
isGenerating: boolean;
|
|
117
|
-
/**
|
|
118
|
-
* When true, shows a stop control on the prompt box while `isGenerating` is true
|
|
119
|
-
*/
|
|
120
|
-
stoppable: boolean;
|
|
121
|
-
/**
|
|
122
|
-
* The current value of the textarea (controlled from parent)
|
|
123
|
-
*/
|
|
124
|
-
value: string;
|
|
125
|
-
/**
|
|
126
|
-
* When true, retains the input value after submitting a prompt (default: false)
|
|
127
|
-
* When false (default), clears the textarea value after submission
|
|
128
|
-
*/
|
|
129
|
-
retainOnSubmit: boolean;
|
|
130
|
-
/**
|
|
131
|
-
* When true, a selected agent or at least one selected dataset is required before the prompt can be submitted
|
|
132
|
-
*/
|
|
133
|
-
requireDataset: boolean;
|
|
134
|
-
/** When true, enables image attachments via paste or the file picker. */
|
|
135
|
-
allowImages: boolean;
|
|
136
|
-
/** When true, shows Lucero's mic control; the `POST /aidictation` transcript is inserted, never auto-sent. */
|
|
137
|
-
allowVoiceInput: boolean;
|
|
138
|
-
/** Accepted attachment MIME types or extensions. */
|
|
139
|
-
acceptedFileTypes: string[];
|
|
140
|
-
/** API version for built-in `POST /upload` and `POST /aidictation` (default `0.1.0`). */
|
|
141
|
-
apiVersion: string;
|
|
142
|
-
/** Optional upload override; return one signed URL per file. */
|
|
143
|
-
uploadAttachments?: (files: File[], options?: {
|
|
144
|
-
signal?: AbortSignal;
|
|
145
|
-
}) => Promise<string[]>;
|
|
146
|
-
/** Custom icons for non-image attachment tiles, keyed by extension. */
|
|
147
|
-
fileIcons: PromptBoxFileIcons;
|
|
148
|
-
private _promptValue;
|
|
149
|
-
private _isPromptValid;
|
|
150
|
-
private _fieldTriggerOptions;
|
|
151
|
-
private _datasetsFieldConfig;
|
|
152
|
-
private _attachmentError;
|
|
153
|
-
/** True while Lucero is capturing microphone audio. */
|
|
154
|
-
private _isRecording;
|
|
155
|
-
/** True while `/aidictation` is in flight (awaiting / streaming transcript). */
|
|
156
|
-
private _isTranscribing;
|
|
157
|
-
private _activeFieldRequestId;
|
|
158
|
-
private readonly _attachmentUploads;
|
|
159
|
-
private _pendingAttachmentSync;
|
|
160
|
-
private _attachmentSyncScheduled;
|
|
161
|
-
private _attachmentErrorClearHandle;
|
|
162
|
-
private _submitInProgress;
|
|
163
|
-
/** True from the start of a voice session until it completes, fails, or is cancelled. */
|
|
164
|
-
private _voiceSessionActive;
|
|
165
|
-
/** Exact prompt contents from when the current voice session started. */
|
|
166
|
-
private _preRecordingValue;
|
|
167
|
-
/** Text before the insert point (cursor at recording start). */
|
|
168
|
-
private _voicePrefix;
|
|
169
|
-
/** Text after the insert point (cursor at recording start). */
|
|
170
|
-
private _voiceSuffix;
|
|
171
|
-
/** Accumulated transcript for the current dictation request. */
|
|
172
|
-
private _streamedTranscript;
|
|
173
|
-
private _transcriptionController;
|
|
174
|
-
private _promptBox?;
|
|
175
|
-
private get _voiceBusy();
|
|
176
|
-
private get _buttonDisabled();
|
|
177
|
-
private get _activeAgent();
|
|
178
|
-
private get _promptPending();
|
|
179
|
-
private get _promptReadonly();
|
|
180
|
-
private get _actionsDisabled();
|
|
181
|
-
private get _fieldTriggers();
|
|
182
|
-
private _renderFieldTriggerIcon;
|
|
183
|
-
connectedCallback(): void;
|
|
184
|
-
disconnectedCallback(): void;
|
|
185
|
-
private _configureBroker;
|
|
186
|
-
private _handlePromptInput;
|
|
187
|
-
openFilePicker(): void;
|
|
188
|
-
addFiles(files: File[]): string[];
|
|
189
|
-
removeAttachment(id: string): void;
|
|
190
|
-
setAttachmentLoading(id: string, loading: boolean): void;
|
|
191
|
-
clearAttachments(): void;
|
|
192
|
-
getAttachments(): PromptBoxAttachment[];
|
|
193
|
-
getAttachmentUrls(attachments?: PromptBoxAttachment[]): string[];
|
|
194
|
-
private _handleAttachClick;
|
|
195
|
-
private _showAttachmentError;
|
|
196
|
-
private _cleanupAttachmentUpload;
|
|
197
|
-
private _abortAllAttachmentUploads;
|
|
198
|
-
private _uploadSingleFile;
|
|
199
|
-
private _startAttachmentUpload;
|
|
200
|
-
private _handleAttachmentsChange;
|
|
201
|
-
private _syncAttachments;
|
|
202
|
-
private _waitForAttachmentUploads;
|
|
203
|
-
private _submitPrompt;
|
|
204
|
-
private _handleDatasetSelected;
|
|
205
|
-
private _handleDatasetRemoved;
|
|
206
|
-
private _handleAgentSelected;
|
|
207
|
-
private _handleAgentRemoved;
|
|
208
|
-
private _getLocalizedFieldLabel;
|
|
209
|
-
private _mapColumnToTriggerOption;
|
|
210
|
-
private _mapFormulaToTriggerOption;
|
|
211
|
-
private _updateFieldTriggerOptionsFromConfig;
|
|
212
|
-
private _refreshDatasetsFieldConfig;
|
|
213
|
-
private _handlePromptSubmit;
|
|
214
|
-
private _handlePromptStop;
|
|
215
|
-
private _handleVoiceKeydown;
|
|
216
|
-
private _getCaretTextOffset;
|
|
217
|
-
private _setPromptText;
|
|
218
|
-
private _captureVoiceInsertPoint;
|
|
219
|
-
private _applyStreamedTranscript;
|
|
220
|
-
private _resetVoiceSessionState;
|
|
221
|
-
private _abortTranscription;
|
|
222
|
-
private _cancelVoiceSession;
|
|
223
|
-
private _handleRecord;
|
|
224
|
-
private _handleRecordCancel;
|
|
225
|
-
private _handleRecordError;
|
|
226
|
-
private _handleRecordingComplete;
|
|
227
|
-
private _transcribeRecording;
|
|
228
|
-
private _syncControlledValueToPromptBox;
|
|
229
|
-
protected willUpdate(changedProperties: PropertyValues): void;
|
|
230
|
-
protected updated(changedProperties: PropertyValues): void;
|
|
231
|
-
protected render(): TemplateResult;
|
|
232
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
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
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../ai-interaction-textarea-B6tZgh5k.cjs");Object.defineProperty(exports,"LuzmoAiInteractionTextarea",{enumerable:!0,get:function(){return e.t}});
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { LuzmoAiInteractionTextarea } from './ai-interaction-textarea';
|
|
2
|
-
declare global {
|
|
3
|
-
interface HTMLElementTagNameMap {
|
|
4
|
-
'luzmo-ai-interaction-textarea': LuzmoAiInteractionTextarea;
|
|
5
|
-
}
|
|
6
|
-
}
|
|
7
|
-
export { LuzmoAiInteractionTextarea } from './ai-interaction-textarea';
|
|
8
|
-
export type { PromptBoxAttachment, PromptBoxFileIcons, PromptSubmittedEventDetail } from './types';
|
|
9
|
-
export type { Agent } from '../../types/agent.types';
|
|
10
|
-
export type { Dataset } from '../../types/dataset.types';
|
|
@@ -1,28 +0,0 @@
|
|
|
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
|
-
// Auto-generated initialization code
|
|
21
|
-
(function() {
|
|
22
|
-
if (typeof document < "u" && !document.querySelector("style[data-luzmo-vars]")) {
|
|
23
|
-
let e = document.createElement("style");
|
|
24
|
-
e.setAttribute("data-luzmo-vars", ""), e.textContent = "html{--luzmo-animation-duration: 0.15s;--luzmo-border-color: rgba(var(--luzmo-border-color-rgb), 0.1);--luzmo-border-color-hover: rgba(var(--luzmo-border-color-rgb), 0.15);--luzmo-border-color-down: rgba(var(--luzmo-border-color-rgb), 0.3);--luzmo-border-color-focus: rgba(var(--luzmo-border-color-rgb), 0.15);--luzmo-border-color-rgb: 0, 0, 0;--luzmo-border-color-full: rgb(180, 180, 180);--luzmo-border-color-full-hover: color-mix(in oklch, var(--luzmo-border-color-full), black 25%);--luzmo-border-color-full-down: color-mix(in oklch, var(--luzmo-border-color-full), black 45%);--luzmo-border-color-full-focus: color-mix(in oklch, var(--luzmo-border-color-full), black 25%);--luzmo-border-color-disabled: #dddddd;--luzmo-border-radius: 6px;--luzmo-border-radius-s: 4px;--luzmo-border-radius-l: 8px;--luzmo-border-radius-xl: 12px;--luzmo-border-radius-full: 999rem;--luzmo-background-color: #ffffff;--luzmo-background-color-rgb: 255, 255, 255;--luzmo-background-color-disabled: #eeeeee;--luzmo-background-color-hover: color-mix( in oklch, color-mix(in oklch, var(--luzmo-background-color), var(--luzmo-primary) 5%), black 1.5% );--luzmo-background-color-down: color-mix(in oklch, color-mix(in oklch, var(--luzmo-background-color), var(--luzmo-primary) 7%), black 1%);--luzmo-background-color-focus: color-mix( in oklch, color-mix(in oklch, var(--luzmo-background-color), var(--luzmo-primary) 5%), black 1.5% );--luzmo-background-color-highlight: rgb(240, 240, 240);--luzmo-background-color-highlight-disabled: rgb(245, 245, 245);--luzmo-background-color-highlight-hover: color-mix(in oklch, var(--luzmo-background-color-highlight), black 10%);--luzmo-background-color-highlight-down: color-mix(in oklch, var(--luzmo-background-color-highlight), black 20%);--luzmo-background-color-highlight-focus: color-mix(in oklch, var(--luzmo-background-color-highlight), black 10%);--luzmo-background-color-alt-1: rgb(250, 250, 250);--luzmo-background-color-alt-2: rgb(239, 239, 239);--luzmo-border-width: 1px;--luzmo-shadow-color-rgb: 0, 0, 0;--luzmo-shadow-opacity: 0.1;--luzmo-shadow-color: rgba(var(--luzmo-shadow-color-rgb), var(--luzmo-shadow-opacity));--luzmo-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', Helvetica, Arial, sans-serif;--luzmo-font-size-xs: 10px;--luzmo-font-size-s: 12px;--luzmo-font-size-m: 14px;--luzmo-font-size: 14px;--luzmo-font-size-l: 16px;--luzmo-font-size-xl: 18px;--luzmo-font-size-xxl: 20px;--luzmo-font-style: normal;--luzmo-line-height: normal;--luzmo-font-weight: 400;--luzmo-font-weight-semibold: 500;--luzmo-font-weight-bold: 600;--luzmo-font-color: #333;--luzmo-font-color-hard: #000;--luzmo-font-color-disabled: var(--luzmo-color-disabled);--luzmo-font-color-extra-dimmed: #888;--luzmo-font-color-hover: color-mix(in oklch, var(--luzmo-font-color), black 8%);--luzmo-font-color-down: color-mix(in oklch, var(--luzmo-font-color), black 20%);--luzmo-font-color-focus: color-mix(in oklch, var(--luzmo-font-color), black 8%);--luzmo-scrollbar-size: 6px;--luzmo-scrollbar-width: thin;--luzmo-scrollbar-track-background: transparent;--luzmo-scrollbar-track-border-radius: var(--luzmo-border-radius-s);--luzmo-scrollbar-thumb-background: rgba(var(--luzmo-border-color-rgb), 0.3);--luzmo-scrollbar-thumb-border-radius: var(--luzmo-border-radius-s);--luzmo-scrollbar-thumb-hover-background: rgba(var(--luzmo-border-color-rgb), 0.4);--luzmo-primary: #4434ff;--luzmo-primary-hover: color-mix(in oklch, var(--luzmo-primary), black 8%);--luzmo-primary-down: color-mix(in oklch, var(--luzmo-primary), black 20%);--luzmo-primary-focus: color-mix(in oklch, var(--luzmo-primary), black 8%);--luzmo-primary-inverse-color: #ffffff;--luzmo-primary-rgb: 68, 52, 255;--luzmo-secondary: #ff00ff;--luzmo-secondary-hover: color-mix(in oklch, var(--luzmo-secondary), black 8%);--luzmo-secondary-down: color-mix(in oklch, var(--luzmo-secondary), black 20%);--luzmo-secondary-focus: color-mix(in oklch, var(--luzmo-secondary), black 8%);--luzmo-secondary-inverse-color: #ffffff;--luzmo-secondary-rgb: 255, 0, 255;--luzmo-secondary-outline: rgba(255, 0, 255, 0.2);--luzmo-negative-color: #ca221c;--luzmo-negative-color-hover: color-mix(in oklch, var(--luzmo-negative-color), black 8%);--luzmo-negative-color-down: color-mix(in oklch, var(--luzmo-negative-color), black 20%);--luzmo-negative-color-focus: color-mix(in oklch, var(--luzmo-negative-color), black 8%);--luzmo-negative-color-rgb: 202, 34, 28;--luzmo-positive-color: rgb(20, 150, 101);--luzmo-positive-color-hover: color-mix(in oklch, var(--luzmo-positive-color), black 8%);--luzmo-positive-color-down: color-mix(in oklch, var(--luzmo-positive-color), black 20%);--luzmo-positive-color-focus: color-mix(in oklch, var(--luzmo-positive-color), black 8%);--luzmo-positive-color-rgb: 20, 150, 101;--luzmo-selected-color: rgb(110, 110, 110);--luzmo-selected-color-hover: color-mix(in oklch, var(--luzmo-selected-color), black 25%);--luzmo-selected-color-down: color-mix(in oklch, var(--luzmo-selected-color), black 45%);--luzmo-selected-color-focus: color-mix(in oklch, var(--luzmo-selected-color), black 25%);--luzmo-selected-color-hard: #1e1e1e;--luzmo-selected-color-hard-hover: color-mix(in oklch, var(--luzmo-selected-color-hard), black 25%);--luzmo-selected-color-hard-down: color-mix(in oklch, var(--luzmo-selected-color-hard), black 45%);--luzmo-selected-color-hard-focus: color-mix(in oklch, var(--luzmo-selected-color-hard), black 25%);--luzmo-color-informative: #1a77e9;--luzmo-color-informative-rgb: 26, 119, 233;--luzmo-color-disabled: #aaaaaa;--luzmo-spacing-1: 2px;--luzmo-spacing-2: 4px;--luzmo-spacing-3: 8px;--luzmo-spacing-4: 12px;--luzmo-spacing-5: 16px;--luzmo-indicator-gap: 2px;--luzmo-indicator-width: 1px;--luzmo-indicator-color: var(--luzmo-primary);--luzmo-component-height-xxs: 20px;--luzmo-component-height-xs: 24px;--luzmo-component-height-s: 28px;--luzmo-component-height: 32px;--luzmo-component-height-l: 40px;--luzmo-component-height-xl: 48px;--luzmo-component-height-xxl: 64px;--luzmo-icon-size-xxs: 12px;--luzmo-icon-size-xs: 14px;--luzmo-icon-size-s: 16px;--luzmo-icon-size-m: 18px;--luzmo-icon-size-l: 20px;--luzmo-icon-size-xl: 22px;--luzmo-icon-size-xxl: 32px}", document.head.appendChild(e);
|
|
25
|
-
}
|
|
26
|
-
})();
|
|
27
|
-
import { t as e } from "../ai-interaction-textarea-D9g9G0T1.js";
|
|
28
|
-
export { e as LuzmoAiInteractionTextarea };
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { PromptBoxAttachment, PromptBoxFileIcons } from '@luzmo/lucero';
|
|
2
|
-
import type { Agent } from '../../types/agent.types';
|
|
3
|
-
import type { Dataset } from '../../types/dataset.types';
|
|
4
|
-
export type { PromptBoxAttachment, PromptBoxFileIcons };
|
|
5
|
-
export interface PromptSubmittedEventDetail {
|
|
6
|
-
prompt: string;
|
|
7
|
-
selectedDatasets: Dataset[];
|
|
8
|
-
selectedAgent: Agent | null;
|
|
9
|
-
attachments: PromptBoxAttachment[];
|
|
10
|
-
/** Signed image URLs from eager upload on attach, ordered to match image attachments. */
|
|
11
|
-
attachmentUrls: string[];
|
|
12
|
-
}
|
|
@@ -1,99 +0,0 @@
|
|
|
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("./decorate-DCJt-2rt.cjs"),t=require("./set-locale-B-GvqA1H.cjs"),n=require("./data-broker-CyMYR6w1.cjs"),r=require("./calculate-data-field-icon-DenGmW74.cjs"),i=require("./localize-D3i4Epy_.cjs"),a=require("./get-dataset-name-DYLdbEs-.cjs");require("./dataset-icon-BAV0S4sZ.cjs"),require("./dataset-selector-row-bqwY3zaf.cjs");let o=require("@luzmo/icons");require("@luzmo/lucero/icon");let s=require("lit"),c=require("lit/decorators.js"),l=require("@lit/localize");require("@luzmo/lucero/action-button"),require("@luzmo/lucero/prompt-box");let u=require("lit/directives/class-map.js");var d=20,f=[`image/png`,`image/jpeg`,`image/webp`,`image/gif`],p=new Set(f),m={png:`image/png`,jpg:`image/jpeg`,jpeg:`image/jpeg`,webp:`image/webp`,gif:`image/gif`};function h(e){try{return new URL(e).pathname.match(/\.([a-z0-9]+)$/i)?.[1]?.toLowerCase()}catch{return}}function g(e){try{let t=new URL(e);return t.protocol===`http:`||t.protocol===`https:`}catch{return!1}}function _(e){return p.has(e.toLowerCase())}function v(e){if(e.type)return _(e.type);let t=e.name.split(`.`).pop()?.toLowerCase();return!!(t&&m[t])}function y(e){if(!g(e))return!1;let t=h(e);return!!(t&&m[t])}function b(e){if(e.length>20)throw Error(`Too many image inputs: received ${e.length}, but the maximum is 20 per request.`);for(let t of e){if(!t.trim())throw Error(`Image input URL must be a non-empty string.`);if(!g(t))throw Error(`Image input URL must be an absolute http(s) URL. Received "${t}".`);let e=h(t);if(e&&!m[e])throw Error(`Unsupported image input URL "${t}". Only PNG, JPEG, WebP, and GIF image URLs are accepted.`)}}function x(e){if(e.length>20)throw Error(`Too many image inputs: received ${e.length}, but the maximum is 20 per request.`);for(let t of e){if(!v(t))throw Error(`Unsupported image attachment "${t.name}" (${t.type||`unknown type`}). Only PNG, JPEG, WebP, and GIF images are accepted.`);if(t.size===0)throw Error(`Image "${t.name}" is empty.`);if(t.size>15728640)throw Error(`Image "${t.name}" is too large. Maximum size is 15 MB.`)}}function S(e,t=`0.1.0`){return`${e.replace(/\/+$/,``)}/${t.replace(/^\/+|\/+$/g,``)}/upload`}function C(e){let{files:t,authKey:n,authToken:r,apiUrl:i,apiVersion:a=`0.1.0`,signal:o,fetchImpl:s=fetch}=e;if(!n||!r)return Promise.reject(Error(`Image upload requires authKey and authToken.`));let c=S(i,a),l=a.replace(/^\/+|\/+$/g,``)||`0.1.0`;return Promise.all(t.map(e=>w(e,{url:c,authKey:n,authToken:r,version:l,signal:o,fetchImpl:s})))}async function w(e,t){let{url:n,authKey:r,authToken:i,version:a,signal:o,fetchImpl:s}=t,c=new FormData;c.append(`key`,r),c.append(`token`,i),c.append(`version`,a),c.append(`action`,`create`),c.append(`properties.type`,`image`),c.append(`file`,e,e.name);let l=await s(n,{method:`POST`,body:c,signal:o,redirect:`error`});if(!l.ok){let t=await T(l);throw Error(`Image upload failed for "${e.name}" (${l.status})${t?`: ${t}`:`.`}`)}let u=await l.json(),d=typeof u?.url==`string`?u.url.trim():``;if(!d)throw Error(`Image upload for "${e.name}" did not return a url.`);return d}async function T(e){try{return(await e.text()).trim().slice(0,200)}catch{return``}}function E(e,t=`0.1.0`){return`${e.replace(/\/+$/,``)}/${t.replace(/^\/+|\/+$/g,``)}/aidictation`}function D(e){let{authKey:t,authToken:n,audioBase64:r,mimeType:i,apiVersion:a=`0.1.0`,stream:o=!0,language:s}=e;return{key:t,token:n,action:`create`,version:a,properties:{audio:r,mimetype:i,stream:o,...s?{language:s}:{}}}}async function O(e){let t=await e.arrayBuffer(),n=new Uint8Array(t),r=32768,i=``;for(let e=0;e<n.length;e+=r){let t=n.subarray(e,e+r);i+=String.fromCharCode(...t)}return btoa(i)}async function k(e){let{audioBlob:t,mimeType:n,authKey:r,authToken:i,apiUrl:a,apiVersion:o=`0.1.0`,language:s,signal:c,onDelta:l,fetchImpl:u=fetch}=e;if(!r||!i)throw Error(`Voice transcription requires authKey and authToken.`);if(!t||t.size===0)throw Error(`Voice transcription requires a non-empty audio recording.`);let d=await O(t),f=E(a,o),p=D({authKey:r,authToken:i,audioBase64:d,mimeType:n||t.type||`audio/webm`,apiVersion:o,stream:!0,language:s}),m=await u(f,{method:`POST`,headers:{"Content-Type":`application/json`},mode:`cors`,redirect:`error`,body:JSON.stringify(p),signal:c});if(!m.ok){let e=await F(m);throw Error(`Voice transcription failed (${m.status})${e?`: ${e}`:`.`}`)}if(!m.body)throw Error(`Voice transcription response body is not readable.`);await N(m.body,e=>{let t=A(e);t&&l(t)})}function A(e){return e.type===`text_delta`&&typeof e.delta==`string`?e.delta:typeof e.text_delta==`string`?e.text_delta:``}var j=/^[a-z]+:/i;function M(e){let t=e.trim();if(!t||t.startsWith(`:`))return null;let n=t;if(n.startsWith(`data:`))n=n.slice(5).trimStart();else if(j.test(n))return null;return!n||n===`[DONE]`?null:JSON.parse(n)}async function N(e,t){let n=e.getReader(),r=new TextDecoder,i=``;try{for(;;){let{done:e,value:a}=await n.read();if(e)break;i+=r.decode(a,{stream:!0});let o=i.split(/\r?\n/);i=o.pop()??``;for(let e of o)P(e,t)}i+=r.decode();let e=i.trim();e&&P(e,t)}finally{n.releaseLock()}}function P(e,t){let n=M(e);n&&t(n)}async function F(e){try{return(await e.text()).trim().slice(0,200)}catch{return``}}var I=`:host{box-sizing:border-box;display:block}:host .content-wrapper{flex-direction:column;display:flex}:host .content-wrapper.single-line{align-items:stretch}:host .content-wrapper.disabled{opacity:var(--luzmo-ai-interaction-textarea-disabled-opacity,var(--ai-interaction-textarea-disabled-opacity));pointer-events:none;cursor:not-allowed}:host .content-wrapper.disabled *{pointer-events:none}:host luzmo-prompt-box{--luzmo-prompt-box-attachments-gap:var(--luzmo-spacing-3,8px);--luzmo-prompt-box-border-radius:var(--ai-interaction-textarea-prompt-box-border-radius);inline-size:100%}:host .attachment-error{color:var(--luzmo-negative-color,#ca221c);font-size:var(--luzmo-font-size-s,12px);margin-block-start:var(--luzmo-spacing-2,4px);line-height:1.4}:host{--ai-interaction-textarea-disabled-opacity:.6;--ai-interaction-textarea-prompt-box-border-radius:var(--luzmo-prompt-box-border-radius,var(--luzmo-border-radius-l,8px))}`,L=3e3,R=6e4,z=class extends s.LitElement{constructor(...e){super(...e),this.placeholder=`Type your prompt here...`,this.selectedDatasets=[],this.authKey=``,this.authToken=``,this.apiUrl=`https://api.luzmo.com`,this.appServer=`https://app.luzmo.com`,this.includePublicDatasets=!1,this.disabled=!1,this.singleLine=!1,this.hideDatasetButton=!1,this.hideDatasetIcons=!1,this.maxVisibleSelectedDatasets=5,this.selectedAgent=null,this.hideAgents=!1,this.disableDatasetModification=!1,this.hideSelectedDatasets=!1,this.disableColumnMentions=!1,this.isGenerating=!1,this.stoppable=!1,this.value=``,this.retainOnSubmit=!1,this.requireDataset=!1,this.allowImages=!1,this.allowVoiceInput=!1,this.acceptedFileTypes=[],this.apiVersion=`0.1.0`,this.fileIcons={},this._promptValue=``,this._isPromptValid=!1,this._fieldTriggerOptions=[],this._datasetsFieldConfig=[],this._attachmentError=null,this._isRecording=!1,this._isTranscribing=!1,this._activeFieldRequestId=0,this._attachmentUploads=new Map,this._pendingAttachmentSync=null,this._attachmentSyncScheduled=!1,this._attachmentErrorClearHandle=0,this._submitInProgress=!1,this._voiceSessionActive=!1,this._preRecordingValue=``,this._voicePrefix=``,this._voiceSuffix=``,this._streamedTranscript=``,this._transcriptionController=null,this._renderFieldTriggerIcon=e=>{let t=e.data?.datasetInfo;return e.header&&t?s.html`
|
|
21
|
-
<span>
|
|
22
|
-
${this.hideDatasetIcons?s.html`<luzmo-icon .icon=${o.luzmoPlugin} size="s"></luzmo-icon>`:s.html`
|
|
23
|
-
<luzmo-dataset-icon
|
|
24
|
-
.datasetInfo=${t}
|
|
25
|
-
size="16px"
|
|
26
|
-
app-url=${this.appServer}
|
|
27
|
-
></luzmo-dataset-icon>
|
|
28
|
-
`}
|
|
29
|
-
</span>
|
|
30
|
-
`:e.icon?s.html`
|
|
31
|
-
<span>
|
|
32
|
-
<luzmo-icon .icon=${e.icon} size="s"></luzmo-icon>
|
|
33
|
-
</span>
|
|
34
|
-
`:s.nothing},this._handleAttachClick=()=>{this.openFilePicker()},this._handleAttachmentsChange=e=>{this._pendingAttachmentSync=e.detail?.attachments??this.getAttachments(),!this._attachmentSyncScheduled&&(this._attachmentSyncScheduled=!0,queueMicrotask(()=>{if(this._attachmentSyncScheduled=!1,!this.isConnected){this._pendingAttachmentSync=null;return}let e=this._pendingAttachmentSync??this.getAttachments();this._pendingAttachmentSync=null,this._syncAttachments(e)}))},this._handleVoiceKeydown=e=>{e.key===`Escape`&&this._isTranscribing&&(e.preventDefault(),e.stopPropagation(),this._cancelVoiceSession())},this._handleRecord=e=>{if(e.stopPropagation(),e.detail?.isRecording){this._captureVoiceInsertPoint(),this._isRecording=!0,this._isTranscribing=!1;return}this._isRecording=!1},this._handleRecordCancel=e=>{e.stopPropagation(),this._cancelVoiceSession()},this._handleRecordError=e=>{e.stopPropagation(),this._abortTranscription(),this._resetVoiceSessionState();let t=e.detail?.error?.trim()||(0,l.msg)(`Voice recording failed`,{desc:`Error when microphone recording fails in the AI prompt`});this._showAttachmentError(t)},this._handleRecordingComplete=e=>{e.stopPropagation();let{audioBlob:t,mimeType:n}=e.detail??{};if(!t){this._resetVoiceSessionState();return}this._transcribeRecording(t,n||t.type||`audio/webm`)}}static{this.styles=(0,s.unsafeCSS)(I)}static{this.tagName=`luzmo-ai-interaction-textarea`}get flagOpendata(){return this.includePublicDatasets}set flagOpendata(e){this.includePublicDatasets=e}get _voiceBusy(){return this._isRecording||this._isTranscribing}get _buttonDisabled(){return this.disabled||this.isGenerating||this._voiceBusy||!this._isPromptValid?!0:this.requireDataset&&this.selectedDatasets.length===0&&!this._activeAgent}get _activeAgent(){return this.hideAgents?null:this.selectedAgent??null}get _promptPending(){return this.isGenerating||this._isTranscribing}get _promptReadonly(){return this._voiceBusy}get _actionsDisabled(){return this.disabled||this.isGenerating||this._voiceBusy}get _fieldTriggers(){return this.disableColumnMentions?[]:[{key:`@`,options:this._fieldTriggerOptions,highlightSearch:!0,iconTemplate:this._renderFieldTriggerIcon}]}connectedCallback(){super.connectedCallback(),this._configureBroker(),this._refreshDatasetsFieldConfig(),this.addEventListener(`keydown`,this._handleVoiceKeydown)}disconnectedCallback(){window.clearTimeout(this._attachmentErrorClearHandle),this._abortAllAttachmentUploads(),this._abortTranscription(),this.removeEventListener(`keydown`,this._handleVoiceKeydown),super.disconnectedCallback()}_configureBroker(){n.t.configure({authKey:this.authKey,authToken:this.authToken,apiUrl:this.apiUrl})}_handlePromptInput(e){let t=e.target.value??``;this._promptValue=t,this._isPromptValid=t.trim().length>0}openFilePicker(){this._promptBox?.openFilePicker()}addFiles(e){return this._promptBox?.addFiles(e)??[]}removeAttachment(e){this._cleanupAttachmentUpload(e),this._promptBox?.removeAttachment(e)}setAttachmentLoading(e,t){this._promptBox?.setAttachmentLoading(e,t)}clearAttachments(){this._abortAllAttachmentUploads(),this._promptBox?.clearAttachments()}getAttachments(){return this._promptBox?.getAttachments()??[]}getAttachmentUrls(e=this.getAttachments()){return e.map(e=>this._attachmentUploads.get(e.id)?.url).filter(e=>typeof e==`string`&&e.length>0)}_showAttachmentError(e){this._attachmentError=e,window.clearTimeout(this._attachmentErrorClearHandle),this._attachmentErrorClearHandle=window.setTimeout(()=>{this._attachmentError=null},L)}_cleanupAttachmentUpload(e){this._attachmentUploads.get(e)?.controller?.abort(),this._attachmentUploads.delete(e)}_abortAllAttachmentUploads(){for(let e of this._attachmentUploads.values())e.controller?.abort();this._attachmentUploads.clear()}async _uploadSingleFile(e,t){let n=``;if(typeof this.uploadAttachments==`function`){let r=await this.uploadAttachments([e],{signal:t});n=Array.isArray(r)?r[0]?.trim()??``:``}else{if(!this.authKey||!this.authToken)throw Error(`Image upload requires authKey and authToken.`);let[r]=await C({files:[e],authKey:this.authKey,authToken:this.authToken,apiUrl:this.apiUrl,apiVersion:this.apiVersion,signal:t});n=r?.trim()??``}if(!n)throw Error(`Image upload for "${e.name}" did not return a url.`);return b([n]),n}_startAttachmentUpload(e){let{id:t,file:n}=e;if(!n){this.removeAttachment(t);return}if(!v(n)){this.removeAttachment(t),this._showAttachmentError((0,l.msg)(`Only PNG, JPEG, WebP, and GIF images can be attached.`,{desc:`Error when the user attaches an unsupported image type to the AI prompt`}));return}if(n.size===0){this.removeAttachment(t),this._showAttachmentError((0,l.msg)(`Failed to attach image`,{desc:`Error when an AI prompt image upload fails`}));return}if(n.size>15728640){this.removeAttachment(t),this._showAttachmentError((0,l.msg)(`Image is too large. Maximum size is 15 MB.`,{desc:`Error when an attached AI prompt image exceeds the 15 MB upload limit`}));return}this.setAttachmentLoading(t,!0);let r=new AbortController,i={controller:r};this._attachmentUploads.set(t,i);let a=window.setTimeout(()=>r.abort(),R),o=()=>{this.removeAttachment(t),this._showAttachmentError((0,l.msg)(`Failed to attach image`,{desc:`Error when an AI prompt image upload fails`}))};i.promise=(async()=>{try{let e=await this._uploadSingleFile(n,r.signal);window.clearTimeout(a);let i=this._attachmentUploads.get(t);if(!i||i.controller!==r)return;i.url=e,i.controller=void 0,i.promise=void 0,this.setAttachmentLoading(t,!1)}catch(e){if(window.clearTimeout(a),r.signal.aborted||e?.name===`AbortError`){this._attachmentUploads.get(t)?.controller===r&&o();return}o()}})()}_syncAttachments(e){let t=new Set(e.map(e=>e.id));for(let e of Array.from(this._attachmentUploads.keys()))t.has(e)||this._cleanupAttachmentUpload(e);let n=!1;for(let t of e)if(!this._attachmentUploads.has(t.id)){if(this._attachmentUploads.size>=20){n=!0,this._promptBox?.removeAttachment(t.id);continue}this._startAttachmentUpload(t)}n&&this._showAttachmentError((0,l.msg)(l.str`You can attach up to ${20} images.`,{desc:`Error when the user tries to attach more images than the AI prompt allows`}))}async _waitForAttachmentUploads(e){let t=e.map(e=>this._attachmentUploads.get(e.id)?.promise).filter(e=>!!e);t.length!==0&&await Promise.all(t)}async _submitPrompt(e=this._promptValue,t=[]){if(this._promptValue=e,this._isPromptValid=e.trim().length>0,!(this._buttonDisabled||this._submitInProgress)){this._submitInProgress=!0;try{let n=e.trim(),r=t.length>0?[...t]:this.getAttachments(),i=r.filter(e=>!!e.file&&v(e.file));await this._waitForAttachmentUploads(i);let a=[];for(let e of i){let t=this._attachmentUploads.get(e.id)?.url;if(!t){this._showAttachmentError((0,l.msg)(`Failed to attach image`,{desc:`Error when an AI prompt image upload fails`}));return}a.push(t)}this.retainOnSubmit||(this._promptValue=``,this._isPromptValid=!1,this._abortAllAttachmentUploads(),this._promptBox?.clear()),this.dispatchEvent(new CustomEvent(`prompt-submitted`,{detail:{prompt:n,selectedDatasets:this.selectedDatasets,selectedAgent:this._activeAgent,attachments:r,attachmentUrls:a},bubbles:!0,composed:!0}))}finally{this._submitInProgress=!1}}}_handleDatasetSelected(e){let t=e.detail;this.selectedDatasets.some(e=>e.id===t.id)||(this.selectedDatasets=[...this.selectedDatasets,t])}_handleDatasetRemoved(e){let t=e.detail;this.selectedDatasets=this.selectedDatasets.filter(e=>e.id!==t.id)}_handleAgentSelected(e){this.selectedAgent=e.detail}_handleAgentRemoved(){this.selectedAgent=null}_getLocalizedFieldLabel(e){if(e)return typeof e==`string`?e:i.t(e,t.t())}_mapColumnToTriggerOption(e,t){return t.id?{label:this._getLocalizedFieldLabel(t.name)||t.id,value:`${e}:column:${t.id}`,icon:r.t(t,`s`),elementType:`data-field`,data:{datasetId:e,columnId:t.id,type:t.type,subtype:t.subtype}}:null}_mapFormulaToTriggerOption(e,t){return t.id?{label:this._getLocalizedFieldLabel(t.name)||t.id,value:`${e}:formula:${t.id}`,icon:r.r.formula[r.i(`s`)],elementType:`data-field`,data:{datasetId:e,formulaId:t.id,type:t.type,subtype:t.subtype}}:null}_updateFieldTriggerOptionsFromConfig(){let e=new Map(this._datasetsFieldConfig.map(e=>[e.id,e])),t=[];for(let n of this.selectedDatasets){let r=e.get(n.id),i=[],o=r?.columns?.filter(e=>!e.hidden)??[];for(let e of o){let t=this._mapColumnToTriggerOption(n.id,e);t&&i.push(t)}let s=r?.formulas?.filter(e=>!e.hidden)??[];for(let e of s){let t=this._mapFormulaToTriggerOption(n.id,e);t&&i.push(t)}i.length!==0&&(t.push({label:a.t(n),value:`dataset-header:${n.id}`,header:!0,data:{datasetInfo:n}}),t.push(...i))}this._fieldTriggerOptions=t}async _refreshDatasetsFieldConfig(){if(this.disableColumnMentions){this._datasetsFieldConfig=[],this._fieldTriggerOptions=[];return}let e=[...new Set(this.selectedDatasets.map(e=>e.id).filter(Boolean))];if(e.length===0){this._datasetsFieldConfig=[],this._fieldTriggerOptions=[];return}let t=++this._activeFieldRequestId;this._updateFieldTriggerOptionsFromConfig();try{let r=await n.t.fetchDatasetsWithColumnsAndFormulas(e);if(t!==this._activeFieldRequestId)return;this._datasetsFieldConfig=r,this._updateFieldTriggerOptionsFromConfig()}catch(e){console.error(`Error loading dataset fields for prompt triggers:`,e),t===this._activeFieldRequestId&&(this._datasetsFieldConfig=[],this._updateFieldTriggerOptionsFromConfig())}}_handlePromptSubmit(e){this._submitPrompt(e.detail?.value??this._promptValue,e.detail?.attachments??[])}_handlePromptStop(e){if(e.stopPropagation(),this._isTranscribing){this._cancelVoiceSession();return}this.dispatchEvent(new CustomEvent(`prompt-stopped`,{bubbles:!0,composed:!0}))}_getCaretTextOffset(){let e=this._promptBox?.shadowRoot;if(!e)return this._promptValue.length;let t=e.querySelector(`.rich-input`)??e.querySelector(`luzmo-text-field`);if(!t)return this._promptValue.length;let n=e.getSelection?.()??document.getSelection();if(!n||n.rangeCount===0)return this._promptValue.length;let r=n.getRangeAt(0);if(!t.contains(r.startContainer))return this._promptValue.length;let i=r.cloneRange();return i.selectNodeContents(t),i.setEnd(r.startContainer,r.startOffset),i.toString().length}_setPromptText(e){this._promptValue=e,this._isPromptValid=e.trim().length>0,this._syncControlledValueToPromptBox()}_captureVoiceInsertPoint(){let e=Math.min(Math.max(this._getCaretTextOffset(),0),this._promptValue.length);this._preRecordingValue=this._promptValue,this._voicePrefix=this._promptValue.slice(0,e),this._voiceSuffix=this._promptValue.slice(e),this._streamedTranscript=``,this._voiceSessionActive=!0}_applyStreamedTranscript(){this._setPromptText(`${this._voicePrefix}${this._streamedTranscript}${this._voiceSuffix}`)}_resetVoiceSessionState(){this._isRecording=!1,this._isTranscribing=!1,this._streamedTranscript=``,this._voicePrefix=``,this._voiceSuffix=``,this._preRecordingValue=``,this._voiceSessionActive=!1}_abortTranscription(){this._transcriptionController?.abort(),this._transcriptionController=null}_cancelVoiceSession(){if(!this._voiceSessionActive){this._abortTranscription(),this._resetVoiceSessionState();return}let e=this._preRecordingValue;this._abortTranscription(),this._resetVoiceSessionState(),this._setPromptText(e)}async _transcribeRecording(e,t){this._abortTranscription();let n=new AbortController;this._transcriptionController=n,this._isRecording=!1,this._isTranscribing=!0,this._streamedTranscript=``;try{if(await k({audioBlob:e,mimeType:t,authKey:this.authKey,authToken:this.authToken,apiUrl:this.apiUrl,apiVersion:this.apiVersion,signal:n.signal,onDelta:e=>{n.signal.aborted||(this._streamedTranscript+=e,this._applyStreamedTranscript())}}),n.signal.aborted)return;this._resetVoiceSessionState()}catch(e){if(n.signal.aborted)return;console.error(`Voice transcription failed:`,e),this._setPromptText(this._preRecordingValue),this._resetVoiceSessionState(),this._showAttachmentError((0,l.msg)(`Failed to transcribe audio`,{desc:`Error when AI prompt voice transcription fails`}))}finally{this._transcriptionController===n&&(this._transcriptionController=null)}}_syncControlledValueToPromptBox(){let e=this._promptBox;if(!e?.allowElements){e&&(e.value=this._promptValue);return}e.segments=this._promptValue?[{type:`text`,value:this._promptValue}]:[]}willUpdate(e){e.has(`value`)&&(this._promptValue=this.value,this._isPromptValid=this.value.trim().length>0);let t=e.has(`authKey`)||e.has(`authToken`)||e.has(`apiUrl`);t&&this._configureBroker(),(t||e.has(`selectedDatasets`)||e.has(`disableColumnMentions`))&&this._refreshDatasetsFieldConfig()}updated(e){super.updated(e),e.has(`value`)&&this._syncControlledValueToPromptBox()}render(){return s.html`
|
|
35
|
-
<div class=${(0,u.classMap)({"content-wrapper":!0,disabled:this.disabled,"single-line":this.singleLine})} aria-busy=${this.isGenerating||this._voiceBusy?`true`:`false`}>
|
|
36
|
-
<luzmo-prompt-box
|
|
37
|
-
?single-line=${this.singleLine}
|
|
38
|
-
?pending=${this._promptPending}
|
|
39
|
-
?stoppable=${this.stoppable&&this.isGenerating||this._isTranscribing}
|
|
40
|
-
?disabled=${this.disabled}
|
|
41
|
-
?readonly=${this._promptReadonly}
|
|
42
|
-
?disable-submit=${this._buttonDisabled}
|
|
43
|
-
?allow-images=${this.allowImages}
|
|
44
|
-
?recording=${this.allowVoiceInput}
|
|
45
|
-
.acceptedFileTypes=${this.acceptedFileTypes}
|
|
46
|
-
.fileIcons=${this.fileIcons}
|
|
47
|
-
grows
|
|
48
|
-
allow-elements
|
|
49
|
-
.placeholder=${this.placeholder}
|
|
50
|
-
.value=${this._promptValue}
|
|
51
|
-
.triggers=${this._fieldTriggers}
|
|
52
|
-
@input=${this._handlePromptInput}
|
|
53
|
-
@luzmo-submit=${this._handlePromptSubmit}
|
|
54
|
-
@luzmo-stop=${this._handlePromptStop}
|
|
55
|
-
@luzmo-attachments-change=${this._handleAttachmentsChange}
|
|
56
|
-
@luzmo-record=${this._handleRecord}
|
|
57
|
-
@luzmo-recording-complete=${this._handleRecordingComplete}
|
|
58
|
-
@luzmo-record-cancel=${this._handleRecordCancel}
|
|
59
|
-
@luzmo-record-error=${this._handleRecordError}
|
|
60
|
-
>
|
|
61
|
-
${this.hideSelectedDatasets||this.hideDatasetButton?``:s.html`
|
|
62
|
-
<luzmo-dataset-selector-row
|
|
63
|
-
slot="top-actions"
|
|
64
|
-
.selectedDatasets=${this.selectedDatasets}
|
|
65
|
-
.selectedAgent=${this.selectedAgent}
|
|
66
|
-
?hide-agents=${this.hideAgents}
|
|
67
|
-
.maxVisibleSelectedDatasets=${this.maxVisibleSelectedDatasets}
|
|
68
|
-
auth-key=${this.authKey}
|
|
69
|
-
auth-token=${this.authToken}
|
|
70
|
-
api-url=${this.apiUrl}
|
|
71
|
-
app-server=${this.appServer}
|
|
72
|
-
?include-public-datasets=${this.includePublicDatasets}
|
|
73
|
-
?hide-dataset-icons=${this.hideDatasetIcons}
|
|
74
|
-
?disabled=${this._actionsDisabled}
|
|
75
|
-
?disable-dataset-modification=${this.disableDatasetModification}
|
|
76
|
-
@dataset-selected=${this._handleDatasetSelected}
|
|
77
|
-
@dataset-removed=${this._handleDatasetRemoved}
|
|
78
|
-
@luzmo-agent-selected=${this._handleAgentSelected}
|
|
79
|
-
@luzmo-agent-removed=${this._handleAgentRemoved}
|
|
80
|
-
></luzmo-dataset-selector-row>
|
|
81
|
-
`}
|
|
82
|
-
${this.allowImages?s.html`
|
|
83
|
-
<luzmo-action-button
|
|
84
|
-
slot="bottom-actions"
|
|
85
|
-
size="m"
|
|
86
|
-
quiet
|
|
87
|
-
?disabled=${this._actionsDisabled}
|
|
88
|
-
label=${(0,l.msg)(`Add attachments`,{desc:`Accessible label for the AI prompt attachment button`})}
|
|
89
|
-
@click=${this._handleAttachClick}
|
|
90
|
-
>
|
|
91
|
-
<luzmo-icon slot="icon" size="m" .icon=${o.luzmoPaperclip}></luzmo-icon>
|
|
92
|
-
</luzmo-action-button>
|
|
93
|
-
`:s.nothing}
|
|
94
|
-
</luzmo-prompt-box>
|
|
95
|
-
${this._attachmentError?s.html`
|
|
96
|
-
<div class="attachment-error" role="alert">${this._attachmentError}</div>
|
|
97
|
-
`:s.nothing}
|
|
98
|
-
</div>
|
|
99
|
-
`}};e.t([(0,c.property)({type:String})],z.prototype,`placeholder`,void 0),e.t([(0,c.property)({type:Array})],z.prototype,`selectedDatasets`,void 0),e.t([(0,c.property)({type:String,attribute:`auth-key`})],z.prototype,`authKey`,void 0),e.t([(0,c.property)({type:String,attribute:`auth-token`})],z.prototype,`authToken`,void 0),e.t([(0,c.property)({type:String,attribute:`api-url`})],z.prototype,`apiUrl`,void 0),e.t([(0,c.property)({type:String,attribute:`app-server`})],z.prototype,`appServer`,void 0),e.t([(0,c.property)({type:Boolean,reflect:!0,attribute:`include-public-datasets`})],z.prototype,`includePublicDatasets`,void 0),e.t([(0,c.property)({type:Boolean,attribute:`flag-opendata`})],z.prototype,`flagOpendata`,null),e.t([(0,c.property)({type:Boolean,reflect:!0,attribute:`disabled`})],z.prototype,`disabled`,void 0),e.t([(0,c.property)({type:Boolean,attribute:`single-line`})],z.prototype,`singleLine`,void 0),e.t([(0,c.property)({type:Boolean,attribute:`hide-dataset-button`})],z.prototype,`hideDatasetButton`,void 0),e.t([(0,c.property)({type:Boolean,attribute:`hide-dataset-icons`})],z.prototype,`hideDatasetIcons`,void 0),e.t([(0,c.property)({type:Number,reflect:!0,useDefault:!0,attribute:`max-visible-selected-datasets`})],z.prototype,`maxVisibleSelectedDatasets`,void 0),e.t([(0,c.property)({attribute:!1})],z.prototype,`selectedAgent`,void 0),e.t([(0,c.property)({type:Boolean,reflect:!0,attribute:`hide-agents`})],z.prototype,`hideAgents`,void 0),e.t([(0,c.property)({type:Boolean,attribute:`disable-dataset-modification`})],z.prototype,`disableDatasetModification`,void 0),e.t([(0,c.property)({type:Boolean,attribute:`hide-selected-datasets`})],z.prototype,`hideSelectedDatasets`,void 0),e.t([(0,c.property)({type:Boolean,attribute:`disable-column-mentions`})],z.prototype,`disableColumnMentions`,void 0),e.t([(0,c.property)({type:Boolean,attribute:`is-generating`})],z.prototype,`isGenerating`,void 0),e.t([(0,c.property)({type:Boolean,reflect:!0})],z.prototype,`stoppable`,void 0),e.t([(0,c.property)({type:String})],z.prototype,`value`,void 0),e.t([(0,c.property)({type:Boolean,attribute:`retain-on-submit`})],z.prototype,`retainOnSubmit`,void 0),e.t([(0,c.property)({type:Boolean,attribute:`require-dataset`})],z.prototype,`requireDataset`,void 0),e.t([(0,c.property)({type:Boolean,reflect:!0,attribute:`allow-images`})],z.prototype,`allowImages`,void 0),e.t([(0,c.property)({type:Boolean,reflect:!0,attribute:`allow-voice-input`})],z.prototype,`allowVoiceInput`,void 0),e.t([(0,c.property)({type:Array,attribute:`accepted-file-types`})],z.prototype,`acceptedFileTypes`,void 0),e.t([(0,c.property)({type:String,attribute:`api-version`})],z.prototype,`apiVersion`,void 0),e.t([(0,c.property)({attribute:!1})],z.prototype,`uploadAttachments`,void 0),e.t([(0,c.property)({attribute:!1})],z.prototype,`fileIcons`,void 0),e.t([(0,c.state)()],z.prototype,`_promptValue`,void 0),e.t([(0,c.state)()],z.prototype,`_isPromptValid`,void 0),e.t([(0,c.state)()],z.prototype,`_fieldTriggerOptions`,void 0),e.t([(0,c.state)()],z.prototype,`_datasetsFieldConfig`,void 0),e.t([(0,c.state)()],z.prototype,`_attachmentError`,void 0),e.t([(0,c.state)()],z.prototype,`_isRecording`,void 0),e.t([(0,c.state)()],z.prototype,`_isTranscribing`,void 0),e.t([(0,c.query)(`luzmo-prompt-box`)],z.prototype,`_promptBox`,void 0),z=e.t([(0,l.localized)()],z),customElements.get(`luzmo-ai-interaction-textarea`)||customElements.define(`luzmo-ai-interaction-textarea`,z),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return x}});
|