@luzmo/lucero 2.2.1 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +34 -1
- package/components/accordion/index.cjs +2 -2
- package/components/accordion/index.js +3 -8
- package/components/{accordion-DpsYMoeb.cjs → accordion-BK0LfhmL.cjs} +2 -2
- package/components/{accordion-BDchhAjE.js → accordion-ciplqKwM.js} +2 -1
- package/components/action-bar/action-bar.d.ts +3 -3
- package/components/action-bar/index.cjs +2 -2
- package/components/action-bar/index.js +3 -8
- package/components/{action-bar-2FGCCKMW.js → action-bar-BZBIeGo7.js} +6 -5
- package/components/action-bar-DAqG_7VG.cjs +39 -0
- package/components/action-button/index.cjs +2 -2
- package/components/action-button/index.js +3 -8
- package/components/{action-button-OB5MM04X.js → action-button-BRijXjEz.js} +2 -1
- package/components/action-button-CX1uYbQp.cjs +22 -0
- package/components/action-group/index.cjs +2 -2
- package/components/action-group/index.js +3 -11
- package/components/{action-group-BQ-fyPYS.js → action-group-DSiruuF0.js} +5 -2
- package/components/action-group-oo7YV0EW.cjs +20 -0
- package/components/action-menu/index.cjs +2 -2
- package/components/action-menu/index.js +3 -8
- package/components/{action-menu-Diehg1Kc.js → action-menu-C0sHNsjG.js} +7 -6
- package/components/{action-menu-CtMswuyc.cjs → action-menu-CwzRbF61.cjs} +2 -2
- package/components/avatar/index.cjs +2 -2
- package/components/avatar/index.js +3 -8
- package/components/{avatar-Nb0368Wi.js → avatar-CwSyYAKV.js} +2 -1
- package/components/avatar-DHS5UGTJ.cjs +34 -0
- package/components/badge/index.cjs +2 -2
- package/components/badge/index.js +3 -8
- package/components/{badge-DP1uxXaZ.js → badge-D2Hjf-Ww.js} +2 -1
- package/components/badge-D8pIDEoq.cjs +23 -0
- package/components/button/index.cjs +2 -2
- package/components/button/index.js +4 -9
- package/components/button-Bvnidb4x.cjs +20 -0
- package/components/{button-DXWWEbir.js → button-DIV_j_U3.js} +4 -3
- package/components/button-base-DiNxrttk.cjs +1 -1
- package/components/button-base-DiPzVpp4.js +1 -1
- package/components/button-group/index.cjs +2 -2
- package/components/button-group/index.js +3 -8
- package/components/button-group-Du7R4SxZ.cjs +18 -0
- package/components/{button-group-DaANSInm.js → button-group-Duf-Igst.js} +2 -1
- package/components/calendar/index.cjs +2 -2
- package/components/calendar/index.js +3 -8
- package/components/{calendar-C8u_88jX.js → calendar-D1UtHvpY.js} +4 -3
- package/components/calendar-pQxEWdYC.cjs +138 -0
- package/components/chat-message/index.cjs +2 -2
- package/components/chat-message/index.js +3 -8
- package/components/chat-message-Dgo6h0rD.cjs +148 -0
- package/components/{chat-message-CXq0Trjx.js → chat-message-T6QIK2Bl.js} +528 -563
- package/components/chat-message-group/index.cjs +2 -2
- package/components/chat-message-group/index.js +3 -8
- package/components/chat-message-group-CvxdX3jt.cjs +24 -0
- package/components/{chat-message-group-D7vdn2gG.js → chat-message-group-k9lo-ZqD.js} +2 -1
- package/components/checkbox/index.cjs +2 -2
- package/components/checkbox/index.js +3 -8
- package/components/{checkbox-6YzkdHR4.js → checkbox-BEjvkjfc.js} +2 -1
- package/components/checkbox-ClVrkeLp.cjs +25 -0
- package/components/checkbox-mixin-jqmrh48O.js +1 -1
- package/components/checkbox-mixin-rFRXqyrK.cjs +1 -1
- package/components/{close-button-BntGLAcp.cjs → close-button-BAELImQY.cjs} +2 -2
- package/components/{close-button-D12zZ9zC.js → close-button-Dlvtf9lB.js} +3 -3
- package/components/color-area/index.cjs +2 -2
- package/components/color-area/index.js +3 -8
- package/components/color-area-CmKlQG1i.cjs +80 -0
- package/components/{color-area-DMpXKgPY.js → color-area-lbg8wwZG.js} +3 -2
- package/components/color-controller-DbyPc33Y.cjs +1 -1
- package/components/color-controller-Rg_Zl0sT.js +1 -1
- package/components/color-field/index.cjs +2 -2
- package/components/color-field/index.js +3 -8
- package/components/{color-field-BNGnBRSO.cjs → color-field-BH9x46k_.cjs} +2 -2
- package/components/{color-field-CUdHxonc.js → color-field-C9S-Fv46.js} +2 -1
- package/components/color-handle/color-handle.d.ts +1 -1
- package/components/color-handle/index.cjs +2 -2
- package/components/color-handle/index.js +3 -8
- package/components/color-handle-2iFLp9FN.cjs +24 -0
- package/components/{color-handle-TKbLs1ax.js → color-handle-BEDQ1RcS.js} +3 -2
- package/components/color-loupe/index.cjs +2 -2
- package/components/color-loupe/index.js +3 -11
- package/components/color-loupe-6NcLbFco.cjs +56 -0
- package/components/{color-loupe-DAxrNPJz.js → color-loupe-CqHyyvjQ.js} +5 -2
- package/components/color-menu/index.cjs +2 -2
- package/components/color-menu/index.js +3 -8
- package/components/color-menu-BYTgxLQG.cjs +89 -0
- package/components/{color-menu-jkdcr5ir.js → color-menu-qJK_clDq.js} +9 -8
- package/components/color-palette/index.cjs +2 -2
- package/components/color-palette/index.js +3 -8
- package/components/{color-palette-FQyIMSwP.js → color-palette-CqiO5ohz.js} +2 -1
- package/components/color-palette-group/index.cjs +2 -2
- package/components/color-palette-group/index.js +3 -8
- package/components/color-palette-group-D4k_7pW6.cjs +28 -0
- package/components/{color-palette-group-o6bnF-Ir.js → color-palette-group-zByrO_qb.js} +2 -1
- package/components/color-palette-x6W09EBL.cjs +18 -0
- package/components/color-picker/index.cjs +2 -2
- package/components/color-picker/index.js +3 -8
- package/components/{color-picker-C4pvkA2k.cjs → color-picker-BAikpqUT.cjs} +2 -2
- package/components/{color-picker-DF3gBQvH.js → color-picker-CSuAPo5X.js} +6 -5
- package/components/color-slider/index.cjs +2 -2
- package/components/color-slider/index.js +3 -8
- package/components/{color-slider-DejvUYrW.js → color-slider-0JzdSRTy.js} +3 -2
- package/components/color-slider-CMW8gJ0Z.cjs +57 -0
- package/components/condition-attribute-with-id-BdnTdWKz.js +1 -1
- package/components/condition-attribute-with-id-Cw92IbcP.cjs +1 -1
- package/components/date-range-picker/index.cjs +2 -2
- package/components/date-range-picker/index.js +3 -8
- package/components/date-range-picker-D149LIGC.cjs +180 -0
- package/components/{date-range-picker-DCOv5PYH.js → date-range-picker-DKVmGpUC.js} +7 -6
- package/components/date-time-picker/index.cjs +2 -2
- package/components/date-time-picker/index.js +3 -8
- package/components/{date-time-picker-ClgATXBy.js → date-time-picker-6c19YzwF.js} +7 -6
- package/components/date-time-picker-CRpvRk9T.cjs +105 -0
- package/components/decorate-CkCg3wfh.js +1 -1
- package/components/decorate-Dq34MBGe.cjs +1 -1
- package/components/dependency-manger-BSaHw9ju.cjs +1 -1
- package/components/dependency-manger-wHEXoU92.js +1 -1
- package/components/divider/index.cjs +2 -2
- package/components/divider/index.js +3 -8
- package/components/divider-BcE8D-pH.cjs +18 -0
- package/components/{divider-CGbT-CL8.js → divider-Cz5nyvP9.js} +2 -1
- package/components/divider.module-BV6tmpOY.cjs +1 -1
- package/components/divider.module-CPEKsaqR.js +1 -1
- package/components/element-resolution-BjaAlqwX.cjs +1 -1
- package/components/element-resolution-gap51AVo.js +1 -1
- package/components/field-group/index.cjs +2 -2
- package/components/field-group/index.js +2 -7
- package/components/field-group-C_kRq7pJ.js +1 -1
- package/components/field-group-Dd5xYczm.cjs +1 -1
- package/components/field-label/index.cjs +2 -2
- package/components/field-label/index.js +3 -11
- package/components/field-label-C0vfY1b6.cjs +25 -0
- package/components/{field-label-B9S41b7c.js → field-label-C28wWqC5.js} +5 -2
- package/components/focus-group-C8lOjbi9.cjs +1 -1
- package/components/focus-group-DVPa1zxz.js +1 -1
- package/components/focus-visible-Bt2uDmuM.js +1 -1
- package/components/focus-visible-DNHNlrty.cjs +1 -1
- package/components/focusable-B6h03pAe.cjs +1 -1
- package/components/focusable-DuP0-Kuy.js +1 -1
- package/components/focusable-selectors-BWpiuXz5.js +1 -1
- package/components/focusable-selectors-DJqGLTJo.cjs +1 -1
- package/components/get-label-from-slot-Bo9mqYCZ.js +1 -1
- package/components/get-label-from-slot-TV4APBYs.cjs +1 -1
- package/components/icon/index.cjs +2 -2
- package/components/icon/index.js +3 -8
- package/components/{icon-DB1DRieA.js → icon-CsJZMhIm.js} +2 -1
- package/components/icon-zOPAWCdx.cjs +18 -0
- package/components/index.cjs +2 -2
- package/components/index.js +64 -75
- package/components/infield-button/index.cjs +2 -2
- package/components/infield-button/index.js +3 -8
- package/components/{infield-button-C1mz69Qf.js → infield-button-DiE8R6ol.js} +2 -1
- package/components/infield-button-kilVRjwB.cjs +22 -0
- package/components/label/index.cjs +2 -2
- package/components/label/index.js +3 -8
- package/components/{label-DPG13Ib0.cjs → label-B3zs6OX0.cjs} +2 -2
- package/components/{label-B1HYQ4Pp.js → label-e6Y13vrS.js} +2 -1
- package/components/language-resolution-BaKYDD1a.js +1 -1
- package/components/language-resolution-CSjktYg5.cjs +1 -1
- package/components/like-anchor-BX4PSB3d.cjs +1 -1
- package/components/like-anchor-DXCaEv7O.js +1 -1
- package/components/manage-help-text-ByLb0QYX.js +1 -1
- package/components/manage-help-text-DtFJsl0k.cjs +1 -1
- package/components/menu/index.cjs +2 -2
- package/components/menu/index.js +3 -8
- package/components/{menu-Cq7BEv5Y.cjs → menu-CrhA2iPZ.cjs} +3 -3
- package/components/{menu-DY8q8qyn.js → menu-fdJseu1y.js} +3 -2
- package/components/multi-language-field/index.cjs +2 -2
- package/components/multi-language-field/index.js +3 -8
- package/components/{multi-language-field-Cfy3M_ZS.cjs → multi-language-field-BndVikur.cjs} +2 -2
- package/components/{multi-language-field-DhQ98r2D.js → multi-language-field-vJMK-osi.js} +3 -2
- package/components/notice/index.cjs +2 -2
- package/components/notice/index.js +3 -8
- package/components/notice-CsWaqcq3.cjs +60 -0
- package/components/{notice-s6QHF_tq.js → notice-N0-lxEf_.js} +4 -3
- package/components/number-field/index.cjs +2 -2
- package/components/number-field/index.js +3 -8
- package/components/{number-field-BqnZS9Gx.js → number-field-DAOy_AvQ.js} +3 -2
- package/components/number-field-xxXgR70l.cjs +57 -0
- package/components/observe-slot-presence-BKY6n06-.js +1 -1
- package/components/observe-slot-presence-CS8pMePk.cjs +1 -1
- package/components/observe-slot-text-CvL-2ey3.cjs +1 -1
- package/components/observe-slot-text-Db8Kx3P-.js +1 -1
- package/components/options/index.cjs +2 -2
- package/components/options/index.js +3 -8
- package/components/options/options.d.ts +1 -0
- package/components/{options-Bd6Uly5_.cjs → options-CP9V2CSJ.cjs} +2 -2
- package/components/{options-CpaaBaxn.js → options-D_ifU0DH.js} +4 -2
- package/components/overlay/index.cjs +2 -2
- package/components/overlay/index.js +4 -10
- package/components/overlay/placement-controller.d.ts +2 -1
- package/components/overlay-Dn7EbA_W.cjs +102 -0
- package/components/{overlay-CyBsHuOL.js → overlay-DpHIYJtd.js} +282 -77
- package/components/{pending-state-a527YMWV.cjs → pending-state-CGHvTtKR.cjs} +2 -2
- package/components/{pending-state-BeG7qBDP.js → pending-state-D_b45qvi.js} +2 -2
- package/components/picker/index.cjs +2 -2
- package/components/picker/index.js +3 -8
- package/components/picker-BliQJlY_.cjs +124 -0
- package/components/{picker-f4fSGZX8.js → picker-D0fMBZLb.js} +6 -6
- package/components/picker-button/index.cjs +2 -2
- package/components/picker-button/index.js +3 -8
- package/components/picker-button-B8Jbf9jK.cjs +37 -0
- package/components/{picker-button-DVzLeTq8.js → picker-button-CJQJshbo.js} +3 -2
- package/components/platform-BAjeJp2W.cjs +1 -1
- package/components/platform-Ce9pNsR9.js +1 -1
- package/components/popover/index.cjs +2 -2
- package/components/popover/index.js +3 -11
- package/components/popover-BsdqkvKI.cjs +30 -0
- package/components/{popover-DTsrgH-f.js → popover-DC8tkee-.js} +17 -15
- package/components/progress-bar/index.cjs +2 -2
- package/components/progress-bar/index.js +3 -8
- package/components/progress-bar-CrodWzcc.cjs +34 -0
- package/components/{progress-bar-BJO8j1aX.js → progress-bar-D4iFHkp7.js} +2 -1
- package/components/progress-circle/index.cjs +2 -2
- package/components/progress-circle/index.js +3 -11
- package/components/{progress-circle-BVToDWX8.js → progress-circle-By6qUQYe.js} +5 -2
- package/components/progress-circle-bO_VAX3N.cjs +33 -0
- package/components/progress-steps/index.cjs +2 -2
- package/components/progress-steps/index.d.ts +2 -1
- package/components/progress-steps/index.js +4 -9
- package/components/progress-steps/progress-steps-model.d.ts +23 -0
- package/components/progress-steps/progress-steps.d.ts +82 -109
- package/components/progress-steps/types.d.ts +18 -3
- package/components/progress-steps-Y-Tgh_fQ.cjs +98 -0
- package/components/progress-steps-ohguJaPa.js +368 -0
- package/components/prompt-box/index.cjs +2 -2
- package/components/prompt-box/index.js +3 -8
- package/components/{prompt-box-BY1xKFZO.js → prompt-box-Cz_m2wso.js} +8 -8
- package/components/{prompt-box-Dg9S0C5x.cjs → prompt-box-sp9_-Hnx.cjs} +3 -3
- package/components/question-box/index.cjs +2 -2
- package/components/question-box/index.js +3 -8
- package/components/{question-box-CZxQTeS9.cjs → question-box-Bdtsgv1k.cjs} +2 -2
- package/components/{question-box-CyojSIop.js → question-box-D7YSi_6c.js} +9 -8
- package/components/radio/index.cjs +2 -2
- package/components/radio/index.js +3 -8
- package/components/{radio-DRI4on-W.js → radio-B6hX9Klr.js} +2 -1
- package/components/radio-CRTfoEX_.cjs +22 -0
- package/components/random-id-BcUJAxUZ.cjs +1 -1
- package/components/random-id-CiMDyX7v.js +1 -1
- package/components/rolldown-runtime-Dy4uBu1J.js +1 -1
- package/components/roving-tabindex-BoPao4td.cjs +1 -1
- package/components/roving-tabindex-pomAn3z-.js +1 -1
- package/components/scaled-indicator-C-TupV4L.js +1 -1
- package/components/scaled-indicator-DLJIztx0.cjs +1 -1
- package/components/search/index.cjs +2 -2
- package/components/search/index.js +3 -8
- package/components/{search-C-EPZmTG.js → search-DEjLSJ96.js} +4 -3
- package/components/search-PxJEuwHt.cjs +47 -0
- package/components/segments-factory-BCRi1NKb.js +1 -1
- package/components/segments-factory-DtPyN5sh.cjs +1 -1
- package/components/select/index.cjs +2 -2
- package/components/select/index.js +3 -8
- package/components/{select-BbFG38ag.js → select-BUgHi69P.js} +9 -8
- package/components/select-DsGVB01K.cjs +158 -0
- package/components/sized-mixin-BT7cv-fT.cjs +1 -1
- package/components/sized-mixin-DzQTebN-.js +1 -1
- package/components/skeleton-loader/index.cjs +2 -2
- package/components/skeleton-loader/index.js +3 -8
- package/components/{skeleton-loader-C0LH3prK.js → skeleton-loader-BeCsYADg.js} +2 -1
- package/components/skeleton-loader-CNcwCh4V.cjs +18 -0
- package/components/slider/index.cjs +2 -2
- package/components/slider/index.js +3 -8
- package/components/{slider-B7QAhDTM.js → slider-Bsl8Xrme.js} +3 -2
- package/components/{slider-DxliwjT6.cjs → slider-C_8pSK4N.cjs} +2 -2
- package/components/slottable-request-event-C6eb7Ch3.cjs +1 -1
- package/components/slottable-request-event-MRSZbgTu.js +1 -1
- package/components/split-view/index.cjs +2 -2
- package/components/split-view/index.js +3 -8
- package/components/split-view-BwCFYey6.cjs +43 -0
- package/components/{split-view-FxpiSCem.js → split-view-CDwHDmII.js} +2 -1
- package/components/status-light/index.cjs +2 -2
- package/components/status-light/index.js +3 -8
- package/components/status-light-D3hdx8Pd.cjs +21 -0
- package/components/{status-light-DC8qqO8q.js → status-light-DwUnjE3t.js} +2 -1
- package/components/strategies-BwNbUXYS.cjs +1 -1
- package/components/strategies-Cl59wdNZ.js +1 -1
- package/components/streaming-listener-Bfyk6Fsx.cjs +1 -1
- package/components/streaming-listener-CtcMpYfS.js +1 -1
- package/components/swatch/index.cjs +2 -2
- package/components/swatch/index.js +3 -8
- package/components/{swatch-C2ty27bJ.js → swatch-Bj2FARl1.js} +2 -1
- package/components/{swatch-DUmBmg4S.cjs → swatch-CQ0inIHK.cjs} +2 -2
- package/components/switch/index.cjs +2 -2
- package/components/switch/index.js +3 -8
- package/components/{switch-DOuXlFwI.js → switch-CpG-hSWY.js} +2 -1
- package/components/switch-qwpYXVnO.cjs +22 -0
- package/components/tabs/index.cjs +2 -2
- package/components/tabs/index.js +3 -8
- package/components/{tabs-CjY4eX9W.js → tabs-BD_ATrBg.js} +4 -3
- package/components/{tabs-ZwcVrVub.cjs → tabs-DxOD4QNt.cjs} +2 -2
- package/components/tags/index.cjs +2 -2
- package/components/tags/index.js +3 -8
- package/components/{tags-BCKNzEaH.js → tags-BIpFgOYy.js} +4 -3
- package/components/tags-fLCGajv_.cjs +47 -0
- package/components/text-field/index.cjs +2 -2
- package/components/text-field/index.js +3 -8
- package/components/text-field-3fDtTQkR.cjs +1 -1
- package/components/text-field-CbN4nydd.cjs +21 -0
- package/components/text-field-CmSym2QK.js +1 -1
- package/components/{text-field-C2MHZbTp.js → text-field-CmyqQxq0.js} +2 -1
- package/components/text-field.module-BHhBReKL.js +1 -1
- package/components/text-field.module-l8CaTCwE.cjs +1 -1
- package/components/toast/index.cjs +2 -2
- package/components/toast/index.js +3 -8
- package/components/toast-DRrGgznK.cjs +51 -0
- package/components/{toast-DlOeMDCI.js → toast-KwHx-agn.js} +3 -2
- package/components/tokens.cjs +18 -0
- package/components/tokens.css +18 -0
- package/components/tokens.js +23 -0
- package/components/tooltip/index.cjs +2 -2
- package/components/tooltip/index.js +3 -8
- package/components/tooltip-DjOW52n2.cjs +45 -0
- package/components/{tooltip-Byl1h4nN.js → tooltip-xTa9Q5JW.js} +2 -1
- package/components/top-nav/index.cjs +2 -2
- package/components/top-nav/index.js +3 -8
- package/components/top-nav-81IKEGjR.cjs +41 -0
- package/components/{top-nav-B9YKdtFB.js → top-nav-CXjnpdFR.js} +2 -1
- package/components/utils.cjs +1 -1
- package/components/utils.js +1 -1
- package/components/voice-recorder-B1tBrGTV.cjs +1 -1
- package/components/voice-recorder-CTg3kRxx.js +1 -1
- package/custom-elements.json +1 -1
- package/package.json +11 -2
- package/standalone/accordion.js +45 -0
- package/standalone/action-bar.js +41 -0
- package/standalone/action-button.js +20 -0
- package/standalone/action-group.js +20 -0
- package/standalone/action-menu.js +58 -0
- package/standalone/avatar.js +36 -0
- package/standalone/badge.js +20 -0
- package/standalone/button-group.js +20 -0
- package/standalone/button.js +20 -0
- package/standalone/calendar.js +20 -0
- package/standalone/chat-message-group.js +26 -0
- package/standalone/chat-message.js +150 -0
- package/standalone/checkbox.js +20 -0
- package/standalone/chunks/NumberFormatter-DMCfW685.js +2 -0
- package/standalone/chunks/NumberParser-r_jv94LA.js +2 -0
- package/standalone/chunks/action-button-BzzPBqt5.js +6 -0
- package/standalone/chunks/action-group-DTxf-0tP.js +4 -0
- package/standalone/chunks/async-directive-BA2_dM-5.js +2 -0
- package/standalone/chunks/async-directive-CPdA0BOw.js +2 -0
- package/standalone/chunks/badge-DD-tMgzi.js +7 -0
- package/standalone/chunks/button-Bv3v7VbN.js +4 -0
- package/standalone/chunks/button-Dykw3TSO.js +2 -0
- package/standalone/chunks/button-base-C7jeeyLp.js +9 -0
- package/standalone/chunks/calendar-ZwUYkzVq.js +122 -0
- package/standalone/chunks/checkbox-OQtakoP8.js +9 -0
- package/standalone/chunks/checkbox-mixin-BAQWmwps.js +11 -0
- package/standalone/chunks/class-map-CxQ0PcQP.js +2 -0
- package/standalone/chunks/clear-button-pVGfwye8.js +2 -0
- package/standalone/chunks/close-button-RpPiwBdf.js +2 -0
- package/standalone/chunks/color-area-Cj8oPsIF.js +64 -0
- package/standalone/chunks/color-controller-fJNWRHVI.js +2 -0
- package/standalone/chunks/color-field-CrCF4kqZ.js +7 -0
- package/standalone/chunks/color-handle-BHrAxEG2.js +8 -0
- package/standalone/chunks/color-loupe-C34cms5t.js +40 -0
- package/standalone/chunks/color-menu-B5UOMYmX.js +73 -0
- package/standalone/chunks/color-slider-CAqvxsgS.js +41 -0
- package/standalone/chunks/condition-attribute-with-id-Dv8Yd-N1.js +2 -0
- package/standalone/chunks/dependency-manger-BPrqqTnJ.js +2 -0
- package/standalone/chunks/directive-Du_3lDov.js +2 -0
- package/standalone/chunks/directive-helpers-Bu8icI7Y.js +2 -0
- package/standalone/chunks/divider-Bf9Drp2z.js +2 -0
- package/standalone/chunks/divider.module-sYekRHno.js +2 -0
- package/standalone/chunks/element-resolution-DX0ea-Cd.js +2 -0
- package/standalone/chunks/field-group-D8EjgC6F.js +7 -0
- package/standalone/chunks/field-label-VWHDlW9_.js +9 -0
- package/standalone/chunks/flow-aCcJ5kgi.js +2 -0
- package/standalone/chunks/focus-group-Cl6MLy-C.js +2 -0
- package/standalone/chunks/focusable-selectors-D5e0OxNL.js +2 -0
- package/standalone/chunks/get-label-from-slot-Dfoiptqo.js +2 -0
- package/standalone/chunks/icon-Dy6J1QeX.js +2 -0
- package/{components/infield-button-CYO9V1eX.cjs → standalone/chunks/infield-button-D03MpU_s.js} +3 -19
- package/standalone/chunks/keyed-CNWmQd2J.js +2 -0
- package/standalone/chunks/language-resolution-BWHk9A73.js +2 -0
- package/standalone/chunks/lit-BN_lRQbJ.js +3 -0
- package/standalone/chunks/lucero-runtime-DGJ9-isg.js +16 -0
- package/standalone/chunks/luzmo-icons-CJa-aByT.js +13 -0
- package/standalone/chunks/manage-help-text-Cl9OJ2xf.js +14 -0
- package/standalone/chunks/menu-nolJetlp.js +92 -0
- package/standalone/chunks/number-field-C3DYfl1s.js +41 -0
- package/standalone/chunks/observe-slot-presence-DWPtw22K.js +2 -0
- package/standalone/chunks/options-BjRSj630.js +89 -0
- package/standalone/chunks/overlay-C4ir0iyC.js +31 -0
- package/standalone/chunks/overlay-C_XW8yry.js +57 -0
- package/standalone/chunks/pending-state-DxeRqe6Q.js +11 -0
- package/standalone/chunks/picker-button-BeXTIgUt.js +21 -0
- package/standalone/chunks/picker-hbMQOkUX.js +108 -0
- package/standalone/chunks/platform-BfrBbd97.js +2 -0
- package/standalone/chunks/popover-BsB3dmQe.js +14 -0
- package/standalone/chunks/progress-circle-CEx1b5Sv.js +17 -0
- package/standalone/chunks/property-CLXrnTGx.js +2 -0
- package/standalone/chunks/radio-2vHhfmHw.js +6 -0
- package/standalone/chunks/random-id-CeLe5NEk.js +2 -0
- package/standalone/chunks/repeat-CZdNcszA.js +2 -0
- package/standalone/chunks/rolldown-runtime-DWK5is8u.js +2 -0
- package/standalone/chunks/roving-tabindex-CB4xC55P.js +2 -0
- package/standalone/chunks/scaled-indicator-k-1JmS0b.js +10 -0
- package/standalone/chunks/segments-factory-Ch3AAizU.js +2 -0
- package/standalone/chunks/skeleton-loader-BxYcRRJr.js +2 -0
- package/standalone/chunks/slottable-request-event-D9FhiqH1.js +2 -0
- package/standalone/chunks/strategies-kad_0dTB.js +2 -0
- package/standalone/chunks/streaming-listener-DFczLm8I.js +2 -0
- package/standalone/chunks/style-map-D4QeV3m0.js +2 -0
- package/standalone/chunks/swatch-m_4GcO2_.js +33 -0
- package/standalone/chunks/text-field-BnZtyodU.js +5 -0
- package/standalone/chunks/text-field-BrlDeJsx.js +65 -0
- package/standalone/chunks/text-field.module-ClDE7laI.js +2 -0
- package/standalone/chunks/tooltip-DB6jRVyB.js +29 -0
- package/standalone/chunks/unsafe-html-BPQaWy0v.js +2 -0
- package/standalone/chunks/voice-recorder--d34tYNu.js +2 -0
- package/standalone/chunks/when-BWvpqCBs.js +2 -0
- package/standalone/clear-button.js +20 -0
- package/standalone/close-button.js +20 -0
- package/standalone/color-area.js +20 -0
- package/standalone/color-field.js +20 -0
- package/standalone/color-handle.js +20 -0
- package/standalone/color-loupe.js +20 -0
- package/standalone/color-menu.js +20 -0
- package/standalone/color-palette-group.js +30 -0
- package/standalone/color-palette.js +20 -0
- package/standalone/color-picker.js +50 -0
- package/standalone/color-slider.js +20 -0
- package/standalone/date-range-picker.js +182 -0
- package/standalone/date-time-picker.js +107 -0
- package/standalone/divider.js +20 -0
- package/standalone/field-group.js +20 -0
- package/standalone/field-label.js +20 -0
- package/standalone/icon.js +20 -0
- package/standalone/infield-button.js +20 -0
- package/standalone/label.js +20 -0
- package/standalone/lit.js +20 -0
- package/standalone/manifest.json +152 -0
- package/standalone/menu.js +20 -0
- package/standalone/multi-language-field.js +42 -0
- package/standalone/notice.js +62 -0
- package/standalone/number-field.js +20 -0
- package/standalone/options.js +20 -0
- package/standalone/overlay.js +20 -0
- package/standalone/picker-button.js +20 -0
- package/standalone/picker.js +20 -0
- package/standalone/popover.js +20 -0
- package/standalone/progress-bar.js +36 -0
- package/standalone/progress-circle.js +20 -0
- package/standalone/progress-steps.js +100 -0
- package/standalone/prompt-box.js +316 -0
- package/standalone/question-box.js +403 -0
- package/standalone/radio.js +20 -0
- package/standalone/search.js +49 -0
- package/standalone/select.js +160 -0
- package/standalone/skeleton-loader.js +20 -0
- package/standalone/slider.js +137 -0
- package/standalone/split-view.js +45 -0
- package/standalone/status-light.js +23 -0
- package/standalone/swatch.js +20 -0
- package/standalone/switch.js +24 -0
- package/standalone/tabs.js +78 -0
- package/standalone/tags.js +49 -0
- package/standalone/text-field.js +20 -0
- package/standalone/toast.js +53 -0
- package/standalone/tokens.css +1 -0
- package/standalone/tokens.js +20 -0
- package/standalone/tooltip.js +20 -0
- package/standalone/top-nav.js +43 -0
- package/standalone/utils.js +20 -0
- package/styles/tokens.d.ts +1 -0
- package/utils/reactive-controllers/pending-state.d.ts +1 -1
- package/components/action-bar-CXT4lT30.cjs +0 -39
- package/components/action-button-BKnzGQR6.cjs +0 -22
- package/components/action-group-D1G30Iir.cjs +0 -20
- package/components/avatar-Cu9c0sCS.cjs +0 -34
- package/components/badge-XJP3sZhB.cjs +0 -23
- package/components/button-group-6M8M-TUI.cjs +0 -18
- package/components/button-l0fRopSN.cjs +0 -20
- package/components/calendar-DZkKMs2L.cjs +0 -138
- package/components/chat-message-group-CzCwyW7F.cjs +0 -24
- package/components/chat-message-t4a0r3R6.cjs +0 -148
- package/components/checkbox-DdatW4xE.cjs +0 -25
- package/components/color-area-B_pRu9Vf.cjs +0 -80
- package/components/color-handle-DIoVrLRF.cjs +0 -24
- package/components/color-loupe-sY1wOisV.cjs +0 -56
- package/components/color-menu-CdETqhbP.cjs +0 -89
- package/components/color-palette-CidHsmE0.cjs +0 -18
- package/components/color-palette-group-B4r4tPfY.cjs +0 -28
- package/components/color-slider-DLEM1nGA.cjs +0 -57
- package/components/date-range-picker-9ioTuDZq.cjs +0 -180
- package/components/date-time-picker-DRjQTyGS.cjs +0 -105
- package/components/divider-wana0uPI.cjs +0 -18
- package/components/field-label-C5vdJ1ys.cjs +0 -25
- package/components/icon-CSqR-OOO.cjs +0 -18
- package/components/notice-xgrLOiC0.cjs +0 -60
- package/components/number-field-04RFqrUa.cjs +0 -57
- package/components/overlay-B-gaxspw.cjs +0 -47
- package/components/overlay-CPZvL0Ic.cjs +0 -73
- package/components/overlay-DdIs4w5M.js +0 -227
- package/components/picker-D225VAbx.cjs +0 -124
- package/components/picker-button-BR7oM7_M.cjs +0 -37
- package/components/popover-DWWYpY-k.cjs +0 -30
- package/components/progress-bar-C7wJ5bxS.cjs +0 -34
- package/components/progress-circle-DyApSKdm.cjs +0 -33
- package/components/progress-steps-Ba4VbAKR.cjs +0 -96
- package/components/progress-steps-nJ8Xw-nG.js +0 -262
- package/components/radio-O3a1rmCe.cjs +0 -22
- package/components/search-BhMhfCBh.cjs +0 -47
- package/components/select-D5fQgPPj.cjs +0 -158
- package/components/skeleton-loader-Cm50Ztzk.cjs +0 -18
- package/components/split-view-5uMSU_b7.cjs +0 -43
- package/components/status-light-BYBYorYy.cjs +0 -21
- package/components/switch-B-gu-War.cjs +0 -22
- package/components/tags-B28zWEic.cjs +0 -47
- package/components/text-field-wJK2bzMT.cjs +0 -21
- package/components/toast-COQ7Xl5T.cjs +0 -51
- package/components/tooltip-Sm0pruxL.cjs +0 -45
- package/components/top-nav-BcZLCBP_.cjs +0 -41
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/*!* Lucero - The design system for Luzmo.
|
|
2
|
+
*
|
|
3
|
+
* Copyright © 2026 Luzmo
|
|
4
|
+
* All rights reserved.
|
|
5
|
+
* Lucero (“Luzmo Design System”) must be used according to the Luzmo Terms of Service.
|
|
6
|
+
* This license allows users with a current active Luzmo account to use Lucero.
|
|
7
|
+
* This license terminates automatically if a user no longer has an active Luzmo account.
|
|
8
|
+
* Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
|
|
9
|
+
*
|
|
10
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
11
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
12
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
13
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
14
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
15
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
16
|
+
* SOFTWARE.
|
|
17
|
+
*
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
import"./tokens.js";import{c as e,i as t,y as n}from"./chunks/lit-BN_lRQbJ.js";import{c as r,l as i,u as a,v as o,y as s}from"./chunks/lucero-runtime-DGJ9-isg.js";import{C as c,L as l,i as u,o as d,u as f}from"./chunks/luzmo-icons-CJa-aByT.js";import{r as p,t as m}from"./chunks/language-resolution-BWHk9A73.js";import{t as h}from"./chunks/class-map-CxQ0PcQP.js";import{t as g}from"./chunks/repeat-CZdNcszA.js";import{t as _}from"./chunks/keyed-CNWmQd2J.js";function v(e){for(let t=(e?.length??0)-1;t>=0;t--)if(e[t].status===`inProgress`)return e[t];return null}function y(e){let t=v(e.children);return t?y(t)??t:null}function b(e,t){return typeof e==`object`?e[t]??e.en??Object.values(e)[0]??``:String(e)}function x(e){return!!e?.children?.length}function S(e){let t=v(e?.children);return t?{mainStep:t,subStep:y(t)}:null}function C(e){let t=0;for(let n of e?.children??[])t+=+(n.status===`error`)+C(n);return t}function w(e){return!!e?.children?.some(e=>e.status===`success`||e.status===`error`)}function T(e){return e?.status===`success`||e?.status===`error`}function E(e,t){return e.description?e.description.replaceAll(/\{\{(\w+)\}\}/g,(n,r)=>{let i=e.descriptionMetadata?.[r];return i==null?n:Array.isArray(i)?i.map(e=>b(e,t)).join(`, `):b(i,t)}):e.step}var D=`:host{box-sizing:border-box;font-family:var(--luzmo-font-family);font-size:var(--luzmo-progress-steps-font-size,var(--progress-steps-font-size));line-height:var(--progress-steps-line-height);color:var(--luzmo-progress-steps-font-color-dimmed,var(--progress-steps-font-color-dimmed));display:block}.summary{box-sizing:border-box;align-items:center;gap:var(--progress-steps-gap);max-inline-size:100%;min-block-size:var(--progress-steps-min-height);padding-block:0;padding-inline:var(--progress-steps-padding-inline);border-radius:var(--progress-steps-border-radius);color:inherit;font:inherit;text-align:start;cursor:pointer;appearance:none;background:0 0;border:0;margin:0;display:inline-flex}.summary:hover{background-color:var(--progress-steps-hover-background)}.summary:focus-visible{outline:var(--progress-steps-focus-ring-width) solid var(--highcontrast-progress-steps-focus-ring-color,var(--progress-steps-focus-ring-color));outline-offset:var(--progress-steps-focus-ring-gap)}.status-icon{inline-size:var(--progress-steps-icon-size);block-size:var(--progress-steps-icon-size);flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative;inset-block-start:var(--progress-steps-icon-offset)}.status-icon svg{block-size:100%;inline-size:100%}.status-icon-failed{color:var(--luzmo-progress-steps-warning-color,var(--progress-steps-warning-color))}.spinner{box-sizing:border-box;border:calc(var(--luzmo-border-width) * 1.5) solid var(--highcontrast-progress-steps-spinner-track-color,var(--luzmo-progress-steps-substep-connector-color,var(--progress-steps-substep-connector-color)));border-block-start-color:var(--highcontrast-progress-steps-spinner-color,currentcolor);block-size:70%;inline-size:70%;animation:progress-steps-spin var(--progress-steps-spinner-duration) linear infinite;border-radius:50%}.headline{flex:0 auto;min-inline-size:0;display:block;position:relative;overflow:hidden}.headline-text{white-space:nowrap;min-inline-size:0;display:flex}.headline-text.entering{animation:progress-steps-enter var(--progress-steps-transition-duration) ease-out}.headline-text.leaving{inline-size:100%;animation:progress-steps-leave var(--progress-steps-transition-duration) ease-in forwards;position:absolute;inset-block-start:0;inset-inline-start:0}.main-step{text-overflow:ellipsis;min-inline-size:0;color:var(--luzmo-progress-steps-font-color,var(--progress-steps-font-color));flex:0 auto;overflow:hidden}.main-step:not(:last-child){max-inline-size:var(--progress-steps-main-step-max-width);flex-shrink:0}.sub-step{flex:0 auto;min-inline-size:0;display:flex}.sub-step-texts{min-inline-size:0;display:block;position:relative;overflow:hidden}.sub-step-text{text-overflow:ellipsis;display:block;overflow:hidden}.sub-step-text.entering{animation:progress-steps-enter var(--progress-steps-transition-duration) ease-out}.sub-step-text.leaving{animation:progress-steps-leave var(--progress-steps-transition-duration) ease-in forwards;position:absolute;inset-block-start:0;inset-inline-start:0}.summary[data-state=done] .main-step{color:inherit}.summary:hover .main-step{color:var(--luzmo-progress-steps-font-color,var(--progress-steps-font-color))}.sub-step:before,.failed-count:before{content:"·"/"";flex:none;padding-inline:.35em}.failed-count:before{padding-inline-start:0}.failed-count{white-space:nowrap;flex:none}.shimmer{-webkit-mask-image:linear-gradient(to right, currentcolor 35%, color-mix(in srgb, currentcolor 35%, transparent) 50%, currentcolor 65%);mask-image:linear-gradient(to right, currentcolor 35%, color-mix(in srgb, currentcolor 35%, transparent) 50%, currentcolor 65%);animation:progress-steps-shimmer var(--progress-steps-shimmer-duration) linear infinite;-webkit-mask-size:300% 100%;mask-size:300% 100%}.chevron{inline-size:calc(var(--progress-steps-icon-size) * .8);block-size:calc(var(--progress-steps-icon-size) * .8);transition:transform var(--progress-steps-transition-duration) ease;flex:none;display:inline-flex}.chevron svg{block-size:100%;inline-size:100%}:host([open]) .chevron{transform:rotate(90deg)}:host([dir=rtl]) .chevron svg{transform:scaleX(-1)}:host([dir=rtl][open]) .chevron{transform:rotate(-90deg)}:host([dir=rtl]) .shimmer{animation-direction:reverse}.details{padding-block:var(--progress-steps-step-spacing);padding-inline:var(--progress-steps-padding-inline);font-size:var(--luzmo-progress-steps-font-size-small,var(--progress-steps-font-size-small));line-height:var(--progress-steps-details-line-height);animation:progress-steps-details-in var(--progress-steps-transition-duration) ease-out}.steps,.substeps{margin:0;padding:0;list-style:none}.step{grid-template-columns:var(--progress-steps-icon-size) minmax(0, 1fr);column-gap:var(--progress-steps-gap);padding-block:var(--progress-steps-step-spacing);display:grid;position:relative}.step:before,.step:after{content:"";border-inline-start:var(--luzmo-border-width) solid var(--luzmo-progress-steps-substep-connector-color,var(--progress-steps-substep-connector-color));position:absolute;inset-inline-start:calc(var(--progress-steps-icon-size) / 2 - var(--luzmo-border-width) / 2)}.step:before{block-size:calc(var(--progress-steps-marker-center) - var(--progress-steps-marker-radius));inset-block-start:0}.step:after{inset-block:calc(var(--progress-steps-marker-center) + var(--progress-steps-marker-radius)) 0}.step:first-child:before{display:none}.step:last-child:not(:has(>.substeps)):after{display:none}.step-marker{block-size:calc(1em * var(--progress-steps-details-line-height));color:var(--luzmo-progress-steps-font-color-dimmed,var(--progress-steps-font-color-dimmed));justify-content:center;align-items:center;display:inline-flex}.step-marker svg{inline-size:var(--progress-steps-marker-size);block-size:var(--progress-steps-marker-size)}.step-dot{box-sizing:border-box;inline-size:var(--progress-steps-dot-size);block-size:var(--progress-steps-dot-size);border:calc(var(--progress-steps-dot-size) / 2) solid currentcolor;border-radius:50%}.step-inProgress .step-marker{color:var(--luzmo-progress-steps-font-color,var(--progress-steps-font-color))}.step-inProgress .step-marker .step-dot{animation:1.2s ease-in-out infinite progress-steps-pulse}.step-pending .step-dot{border-width:var(--luzmo-border-width)}.step-error .step-marker{color:var(--luzmo-progress-steps-error-color,var(--progress-steps-error-color))}.step-label{color:var(--luzmo-progress-steps-font-color,var(--progress-steps-font-color));overflow-wrap:anywhere}.step>.substeps{grid-column:2}.substep>.substeps{padding-inline-start:var(--progress-steps-substep-indent)}.substep{padding-block:calc(var(--progress-steps-step-spacing) / 2);overflow-wrap:anywhere}.substep-inProgress{color:var(--luzmo-progress-steps-font-color,var(--progress-steps-font-color))}.substep-error{color:var(--luzmo-progress-steps-error-color,var(--progress-steps-error-color))}.substep-icon{vertical-align:-.1em;block-size:.85em;inline-size:.85em;margin-inline-end:.3em;display:inline-flex}.substep-icon svg{block-size:100%;inline-size:100%}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;block-size:1px;inline-size:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:host([no-animate]) .headline-text,:host([no-animate]) .sub-step-text,:host([no-animate]) .details,:host([no-animate]) .chevron,:host([no-animate]) .spinner,:host([no-animate]) .step-dot{transition:none;animation:none}:host([no-animate]) .leaving{display:none}@keyframes progress-steps-shimmer{0%{-webkit-mask-position:100% 0;mask-position:100% 0}to{-webkit-mask-position:0 0;mask-position:0 0}}@keyframes progress-steps-enter{0%{opacity:0;transform:translateY(60%)}}@keyframes progress-steps-leave{to{opacity:0;transform:translateY(-60%)}}@keyframes progress-steps-details-in{0%{opacity:0;transform:translateY(calc(-1 * var(--luzmo-spacing-2)))}}@keyframes progress-steps-spin{to{transform:rotate(360deg)}}@keyframes progress-steps-pulse{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.shimmer,.headline-text,.sub-step-text,.details,.chevron,.spinner,.step-dot{transition:none;animation:none}.leaving{display:none}}@media (forced-colors:active){.shimmer{animation:none;-webkit-mask-image:none;mask-image:none}.spinner{forced-color-adjust:none}}:host{--progress-steps-font-size:var(--luzmo-font-size);--progress-steps-line-height:1.5;--progress-steps-font-color:color-mix(in oklch, var(--luzmo-font-color) 65%, var(--luzmo-font-color-extra-dimmed));--progress-steps-font-color-dimmed:color-mix(in oklch, var(--luzmo-font-color) 35%, var(--luzmo-font-color-extra-dimmed));--progress-steps-error-color:var(--luzmo-negative-color);--progress-steps-warning-color:var(--luzmo-notice-color);--progress-steps-substep-connector-color:var(--luzmo-border-color-down);--progress-steps-hover-background:var(--luzmo-background-color-hover);--progress-steps-border-radius:var(--luzmo-border-radius);--progress-steps-focus-ring-width:var(--luzmo-indicator-width);--progress-steps-focus-ring-gap:var(--luzmo-indicator-gap);--progress-steps-focus-ring-color:var(--luzmo-indicator-color);--progress-steps-min-height:var(--luzmo-component-height-xs);--progress-steps-gap:calc(var(--luzmo-spacing-2) + var(--luzmo-spacing-1));--progress-steps-padding-inline:var(--luzmo-spacing-2);--progress-steps-step-spacing:var(--luzmo-spacing-1);--progress-steps-icon-size:var(--luzmo-icon-size-m);--progress-steps-icon-offset:.04em;--progress-steps-main-step-max-width:65%;--progress-steps-font-size-small:.93em;--progress-steps-details-line-height:1.4;--progress-steps-marker-size:.8em;--progress-steps-dot-size:calc(var(--luzmo-spacing-2) + var(--luzmo-spacing-1));--progress-steps-substep-indent:var(--luzmo-spacing-4);--progress-steps-transition-duration:.25s;--progress-steps-shimmer-duration:1.8s;--progress-steps-spinner-duration:.9s}:host([size=s]){--progress-steps-font-size:var(--luzmo-font-size-s);--progress-steps-icon-size:var(--luzmo-icon-size-s);--progress-steps-gap:var(--luzmo-spacing-2)}:host([size=l]){--progress-steps-font-size:var(--luzmo-font-size-l);--progress-steps-icon-size:var(--luzmo-icon-size-l);--progress-steps-min-height:var(--luzmo-component-height-s);--progress-steps-step-spacing:var(--luzmo-spacing-2)}:host([size=xl]){--progress-steps-font-size:var(--luzmo-font-size-xl);--progress-steps-icon-size:var(--luzmo-icon-size-xl);--progress-steps-min-height:var(--luzmo-component-height-s);--progress-steps-gap:var(--luzmo-spacing-3);--progress-steps-step-spacing:var(--luzmo-spacing-2)}.step{--progress-steps-marker-center:calc(var(--progress-steps-step-spacing) + .5em * var(--progress-steps-details-line-height));--progress-steps-marker-radius:calc(var(--progress-steps-dot-size) / 2)}.step-error{--progress-steps-marker-radius:calc(var(--progress-steps-marker-size) / 2)}@media (forced-colors:active){:host{--highcontrast-progress-steps-focus-ring-color:Highlight;--highcontrast-progress-steps-spinner-track-color:GrayText;--highcontrast-progress-steps-spinner-color:CanvasText}}`,O={condensedSingular:`Worked through {{count}} step`,condensedPlural:`Worked through {{count}} steps`,failedSingular:`{{count}} failed`,failedPlural:`{{count}} failed`,stepInProgress:`Step in progress`,stepPending:`Step pending`,stepCompleted:`Step completed`,stepFailed:`Step failed`},k=500,A=800,j=1e3,M=250,N={mainStep:null,subStep:null},P=(e,t)=>e?.mainStep===t.mainStep&&e?.subStep===t.subStep,F=class extends r(a,{defaultSize:`m`,validSizes:[`s`,`m`,`l`,`xl`]}){constructor(...e){super(...e),this.progress=null,this.locale=`en`,this.collapsed=!1,this.displayMode=`detailed`,this.condensed=!1,this.labels={...O},this.noAnimate=!1,this.open=!1,this._phase=`idle`,this._current=null,this._leaving=null,this._subStepTransition=null,this._announcement=``,this._languageResolver=new m(this),this._pending=null,this._shownAt=0}static get styles(){let e=super.styles;return[...Array.isArray(e)?e:e?[e]:[],n(D)]}connectedCallback(){super.connectedCallback(),this.hasUpdated&&this._syncPhase()}disconnectedCallback(){super.disconnectedCallback(),this._clearTimers(),this._leaving=null,this._subStepTransition=null}willUpdate(e){super.willUpdate(e),e.has(p)&&(this._numberFormatter=void 0),e.has(`progress`)?(e.get(`progress`)?.id!==this.progress?.id&&(this._resetRun(),this.hasUpdated&&(this.open=!1)),this._syncPhase()):(e.has(`collapsed`)&&this.collapsed||e.has(`locale`))&&this._syncPhase()}get _labels(){return{...O,...this.labels}}_syncPhase(){if(!x(this.progress)){this._resetRun();return}let e=T(this.progress)?null:S(this.progress);if(e){this._clearSettleTimer(),this._phase=`running`,this._queue(e);return}if(this._phase===`done`)return;let t=this.collapsed||T(this.progress);if(this._phase===`idle`){(t||w(this.progress))&&this._finish();return}if(t){this._finish();return}this._settleTimer??=setTimeout(()=>{this._settleTimer=void 0,this._finish()},A)}_queue(e){let t={mainStep:E(e.mainStep,this.locale),subStep:e.subStep?E(e.subStep,this.locale):null};if(P(this._current,t)){this._pending=null,this._clearDwellTimer();return}this._pending=t;let n=this._current?this._shownAt+k-Date.now():0;this.noAnimate||n<=0?this._showPending():this._dwellTimer??=setTimeout(()=>{this._dwellTimer=void 0,this._showPending()},n)}_showPending(){let e=this._pending;this._pending=null,e&&this._phase===`running`&&(this._show(e),this._announce(e.mainStep))}_finish(){let e=this._phase===`running`;this._clearDwellTimer(),this._clearSettleTimer(),this._pending=null,this._phase=`done`,this._show(N),e&&this._announce(this._summaryText())}_show(e){let t=this._current;t&&!this.noAnimate&&(t.mainStep!==null&&t.mainStep===e.mainStep?this._subStepTransition={leaving:t.subStep}:(this._leaving=t,this._subStepTransition=null),clearTimeout(this._leaveTimer),this._leaveTimer=setTimeout(()=>{this._leaving=null,this._subStepTransition=null},M)),this._current=e,this._shownAt=Date.now()}_announce(e){clearTimeout(this._announceTimer),this._announceTimer=setTimeout(()=>{this._announcement=e},j)}_resetRun(){this._clearTimers(),this._phase=`idle`,this._current=null,this._leaving=null,this._subStepTransition=null,this._pending=null,this._announcement=``}_clearDwellTimer(){clearTimeout(this._dwellTimer),this._dwellTimer=void 0}_clearSettleTimer(){clearTimeout(this._settleTimer),this._settleTimer=void 0}_clearTimers(){this._clearDwellTimer(),this._clearSettleTimer(),clearTimeout(this._leaveTimer),clearTimeout(this._announceTimer)}_formatCount(e,t){return e.replaceAll(`{{count}}`,this._numberFormat.format(t))}get _numberFormat(){if(!this._numberFormatter)try{this._numberFormatter=new Intl.NumberFormat(this._languageResolver.language)}catch{this._numberFormatter=new Intl.NumberFormat}return this._numberFormatter}_summaryText(){let e=this.progress?.children?.length??0,t=this._labels;return this._formatCount(e===1?t.condensedSingular:t.condensedPlural,e)}_setOpen(e){this.open=e,this.dispatchEvent(new CustomEvent(e?`luzmo-step-expanded`:`luzmo-step-collapsed`,{bubbles:!0,composed:!0,detail:{nodeId:this.progress?.id??``}}))}handleToggle(){this._setOpen(!this.open)}handleKeydown(e){e.key===`Escape`&&this.open&&(e.preventDefault(),this._setOpen(!1))}_statusLabel(e){let t=this._labels;switch(e){case`inProgress`:return t.stepInProgress;case`success`:return t.stepCompleted;case`error`:return t.stepFailed;default:return t.stepPending}}_renderStatusIcon(t){return t?e`<span
|
|
21
|
+
class="status-icon status-icon-failed"
|
|
22
|
+
aria-hidden="true"
|
|
23
|
+
>${c(d)}</span
|
|
24
|
+
>`:this._phase===`running`?e`<span class="status-icon" aria-hidden="true"
|
|
25
|
+
><span class="spinner"></span
|
|
26
|
+
></span>`:e`<span
|
|
27
|
+
class="status-icon status-icon-finished"
|
|
28
|
+
aria-hidden="true"
|
|
29
|
+
>${c(l)}</span
|
|
30
|
+
>`}_renderContent({mainStep:n,subStep:r},i=null){if(n===null)return e`<span class="main-step">${this._summaryText()}</span>`;let a=i?.leaving??null;return r===null&&a===null?e`<span class="main-step">${n}</span>`:e`<span class="main-step">${n}</span>
|
|
31
|
+
<span class="sub-step"
|
|
32
|
+
><span class="sub-step-texts"
|
|
33
|
+
>${a===null?t:e`<span class="sub-step-text leaving" aria-hidden="true"
|
|
34
|
+
>${a}</span
|
|
35
|
+
>`}${r===null?t:_(r,e`<span
|
|
36
|
+
class=${h({"sub-step-text":!0,entering:i!==null})}
|
|
37
|
+
>${r}</span
|
|
38
|
+
>`)}</span
|
|
39
|
+
></span
|
|
40
|
+
>`}_renderStepMarker(t){return e`<span
|
|
41
|
+
class="step-marker"
|
|
42
|
+
role="img"
|
|
43
|
+
aria-label=${this._statusLabel(t)}
|
|
44
|
+
>${t===`error`?c(f):e`<span class="step-dot"></span>`}</span
|
|
45
|
+
>`}_renderSubstep(n){return e`<li
|
|
46
|
+
class=${h({substep:!0,[`substep-${n.status}`]:!0})}
|
|
47
|
+
>
|
|
48
|
+
${n.status===`error`?e`<span
|
|
49
|
+
class="substep-icon"
|
|
50
|
+
role="img"
|
|
51
|
+
aria-label=${this._labels.stepFailed}
|
|
52
|
+
>${c(f)}</span
|
|
53
|
+
>`:t}<span class="substep-label"
|
|
54
|
+
>${E(n,this.locale)}</span
|
|
55
|
+
>
|
|
56
|
+
${n.children?.length?this._renderSubsteps(n.children):t}
|
|
57
|
+
</li>`}_renderSubsteps(t){return e`<ul class="substeps">
|
|
58
|
+
${g(t,e=>e.id,e=>this._renderSubstep(e))}
|
|
59
|
+
</ul>`}_renderStep(n,r){return e`<li
|
|
60
|
+
class=${h({step:!0,[`step-${n.status}`]:!0})}
|
|
61
|
+
>
|
|
62
|
+
${this._renderStepMarker(n.status)}
|
|
63
|
+
<span class="step-label"
|
|
64
|
+
>${E(n,this.locale)}</span
|
|
65
|
+
>
|
|
66
|
+
${r&&n.children?.length?this._renderSubsteps(n.children):t}
|
|
67
|
+
</li>`}_renderDetails(){let t=this.displayMode!==`compact`;return e`<div id="details" class="details">
|
|
68
|
+
<ol class="steps">
|
|
69
|
+
${g(this.progress?.children??[],e=>e.id,e=>this._renderStep(e,t))}
|
|
70
|
+
</ol>
|
|
71
|
+
</div>`}render(){if(this._phase===`idle`||!this._current)return t;let n=C(this.progress),r=this._labels,i=this._phase===`running`&&!this.noAnimate;return e`
|
|
72
|
+
<button
|
|
73
|
+
type="button"
|
|
74
|
+
class="summary"
|
|
75
|
+
data-state=${this._phase}
|
|
76
|
+
aria-expanded=${this.open?`true`:`false`}
|
|
77
|
+
aria-controls=${this.open?`details`:t}
|
|
78
|
+
@click=${this.handleToggle}
|
|
79
|
+
@keydown=${this.handleKeydown}
|
|
80
|
+
>
|
|
81
|
+
${this._renderStatusIcon(n>0||this.progress?.status===`error`)}
|
|
82
|
+
<span class=${h({headline:!0,shimmer:i})}>
|
|
83
|
+
${this._leaving?e`<span class="headline-text leaving" aria-hidden="true"
|
|
84
|
+
>${this._renderContent(this._leaving)}</span
|
|
85
|
+
>`:t}
|
|
86
|
+
${_(this._current.mainStep??N,e`<span
|
|
87
|
+
class=${h({"headline-text":!0,entering:this._leaving!==null})}
|
|
88
|
+
>${this._renderContent(this._current,this._subStepTransition)}</span
|
|
89
|
+
>`)}
|
|
90
|
+
</span>
|
|
91
|
+
${n>0?e`<span class="failed-count"
|
|
92
|
+
>${this._formatCount(n===1?r.failedSingular:r.failedPlural,n)}</span
|
|
93
|
+
>`:t}
|
|
94
|
+
<span class="chevron" aria-hidden="true"
|
|
95
|
+
>${c(u)}</span
|
|
96
|
+
>
|
|
97
|
+
</button>
|
|
98
|
+
${this.open?this._renderDetails():t}
|
|
99
|
+
<span class="visually-hidden" role="status">${this._announcement}</span>
|
|
100
|
+
`}};i([s({attribute:!1})],F.prototype,`progress`,void 0),i([s({type:String,reflect:!0})],F.prototype,`locale`,void 0),i([s({type:Boolean,reflect:!0})],F.prototype,`collapsed`,void 0),i([s({type:String,attribute:`display-mode`,reflect:!0})],F.prototype,`displayMode`,void 0),i([s({type:Boolean,reflect:!0})],F.prototype,`condensed`,void 0),i([s({attribute:!1})],F.prototype,`labels`,void 0),i([s({type:Boolean,attribute:`no-animate`,reflect:!0})],F.prototype,`noAnimate`,void 0),i([s({type:Boolean,reflect:!0})],F.prototype,`open`,void 0),i([o()],F.prototype,`_phase`,void 0),i([o()],F.prototype,`_current`,void 0),i([o()],F.prototype,`_leaving`,void 0),i([o()],F.prototype,`_subStepTransition`,void 0),i([o()],F.prototype,`_announcement`,void 0),typeof customElements<`u`&&!customElements.get(`luzmo-progress-steps`)&&customElements.define(`luzmo-progress-steps`,F);export{O as DEFAULT_PROGRESS_STEPS_LABELS,F as LuzmoProgressSteps};
|
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
/*!* Lucero - The design system for Luzmo.
|
|
2
|
+
*
|
|
3
|
+
* Copyright © 2026 Luzmo
|
|
4
|
+
* All rights reserved.
|
|
5
|
+
* Lucero (“Luzmo Design System”) must be used according to the Luzmo Terms of Service.
|
|
6
|
+
* This license allows users with a current active Luzmo account to use Lucero.
|
|
7
|
+
* This license terminates automatically if a user no longer has an active Luzmo account.
|
|
8
|
+
* Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
|
|
9
|
+
*
|
|
10
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
11
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
12
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
13
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
14
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
15
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
16
|
+
* SOFTWARE.
|
|
17
|
+
*
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
import"./tokens.js";import{c as e,i as t,y as n}from"./chunks/lit-BN_lRQbJ.js";import{c as r,g as i,l as a,u as o,v as s,y as c}from"./chunks/lucero-runtime-DGJ9-isg.js";import{D as l,M as u,N as d,O as f,S as p,c as m,h,r as ee,v as te,w as g,y as _}from"./chunks/luzmo-icons-CJa-aByT.js";import"./chunks/icon-Dy6J1QeX.js";import"./chunks/action-button-BzzPBqt5.js";import{p as v}from"./chunks/overlay-C4ir0iyC.js";import"./chunks/overlay-C_XW8yry.js";import"./chunks/text-field-BnZtyodU.js";import"./chunks/clear-button-pVGfwye8.js";import"./chunks/button-Dykw3TSO.js";import"./chunks/skeleton-loader-BxYcRRJr.js";import{t as y}from"./chunks/voice-recorder--d34tYNu.js";var ne=class{constructor(e){this._attachments=[],this._idCounter=0,this._host=e,e.addController(this)}hostConnected(){}hostDisconnected(){this._revokeAllPreviewUrls()}get attachments(){return this._attachments}get hasAttachments(){return this._attachments.length>0}get imageAttachments(){return this._attachments.filter(e=>this._isImageFile(e.file))}get fileAttachments(){return this._attachments.filter(e=>!this._isImageFile(e.file))}addFiles(e){if(this._host.disabled||this._host.readonly||this._host.pending)return[];let t=[];for(let n of e){if(this._isImageFile(n)&&!this._host.allowImages||!this._isImageFile(n)&&!this._host.allowFiles||!this._isFileTypeAccepted(n))continue;let e=this._generateId(),r={file:n,id:e};this._isImageFile(n)&&(r.previewUrl=URL.createObjectURL(n)),this._attachments=[...this._attachments,r],t.push(e)}return t.length>0&&(this._dispatchChange(),this._host.requestUpdate()),t}removeAttachment(e){let t=this._attachments.find(t=>t.id===e);t&&(t.previewUrl&&URL.revokeObjectURL(t.previewUrl),this._attachments=this._attachments.filter(t=>t.id!==e),this._dispatchChange(),this._host.requestUpdate())}setAttachmentLoading(e,t){let n=this._attachments.findIndex(t=>t.id===e);if(n===-1)return;let r=this._attachments[n];!!r.loading!==t&&(this._attachments=[...this._attachments.slice(0,n),{...r,loading:t},...this._attachments.slice(n+1)],this._dispatchChange(),this._host.requestUpdate())}clearAttachments(){this._revokeAllPreviewUrls(),this._attachments=[],this._dispatchChange(),this._host.requestUpdate()}getAttachments(){return[...this._attachments]}handlePastedImages(e){if(!this._host.allowImages||this._host.disabled||this._host.readonly||this._host.pending||!e)return!1;let t=[];for(let n of e.items)if(n.type.startsWith(`image/`)){let e=n.getAsFile();e&&t.push(e)}return t.length>0?(this.addFiles(t),!0):!1}getAcceptAttribute(){if(this._host.acceptedFileTypes.length>0)return this._host.acceptedFileTypes.join(`,`);let e=[];return this._host.allowImages&&e.push(`image/*`),this._host.allowFiles&&e.push(`*/*`),e.join(`,`)}isImageFile(e){return this._isImageFile(e)}_isImageFile(e){return e.type.startsWith(`image/`)}_isFileTypeAccepted(e){if(this._host.acceptedFileTypes.length===0)return!0;let t=e.name.toLowerCase(),n=e.type.toLowerCase();for(let e of this._host.acceptedFileTypes){let r=e.toLowerCase();if(r.endsWith(`/*`)){let e=r.slice(0,-2);if(n.startsWith(e+`/`))return!0}else if(n===r)return!0;else if(r.startsWith(`.`)&&t.endsWith(r))return!0}return!1}_generateId(){return`attachment-${++this._idCounter}-${Date.now()}`}_revokeAllPreviewUrls(){for(let e of this._attachments)e.previewUrl&&URL.revokeObjectURL(e.previewUrl)}_dispatchChange(){this._host.dispatchEvent(new CustomEvent(`luzmo-attachments-change`,{bubbles:!0,composed:!0,detail:{attachments:this._attachments}}))}},b=class{constructor(e){this._voiceRecorder=null,this.isRecording=!1,this.duration=0,this.audioLevel=0,this.shouldFocusFinishButton=!1,this._host=e,e.addController(this)}hostConnected(){}hostDisconnected(){this._destroy()}async start(e){if(!y.isSupported()){this._host.dispatchEvent(new CustomEvent(`luzmo-record-error`,{bubbles:!0,composed:!0,detail:{error:`Voice recording is not supported in this browser`}}));return}if(this.isRecording){this.stop();return}this.shouldFocusFinishButton=e,this._init(),this._voiceRecorder&&(await this._voiceRecorder.startRecording()&&(this.isRecording=!0,this.duration=0,this.audioLevel=0,this._host.requestUpdate()),this._host.dispatchEvent(new CustomEvent(`luzmo-record`,{bubbles:!0,composed:!0,detail:{isRecording:this.isRecording}})))}stop(){this._voiceRecorder?.stopRecording()}cancel(){this._voiceRecorder?.cancelRecording(),this.isRecording=!1,this.duration=0,this.audioLevel=0,this._host.requestUpdate(),this._host.dispatchEvent(new CustomEvent(`luzmo-record-cancel`,{bubbles:!0,composed:!0}))}formatDuration(){return y.formatDuration(this.duration)}static isSupported(){return y.isSupported()}_init(){this._voiceRecorder||(this._voiceRecorder=new y({maxDuration:3e5}),this._voiceRecorder.onStart(()=>{this.isRecording=!0,this._host.requestUpdate()}).onStop(e=>{this.isRecording=!1,this.duration=0,this.audioLevel=0,this._host.requestUpdate(),this._host.dispatchEvent(new CustomEvent(`luzmo-recording-complete`,{bubbles:!0,composed:!0,detail:{audioBlob:e.audioBlob,duration:e.duration,mimeType:e.mimeType}}))}).onError(e=>{this.isRecording=!1,this.duration=0,this.audioLevel=0,this._host.requestUpdate(),this._host.dispatchEvent(new CustomEvent(`luzmo-record-error`,{bubbles:!0,composed:!0,detail:{error:e}}))}).onAudioLevel(e=>{this.audioLevel=e,this._host.requestUpdate()}).onDurationUpdate(e=>{this.duration=e,this._host.requestUpdate()}))}_destroy(){this._voiceRecorder&&=(this._voiceRecorder.destroy(),null),this.isRecording=!1,this.duration=0,this.audioLevel=0}};function x(e,t){let n=document.createRange();return n.setStart(e,t),n.collapse(!0),n}function S(e,t,n){let r=e.getBoundingClientRect(),i=t-r.left,a=n-r.top;return i*i+a*a}function C(e,t,n,r){let i=0,a=t;for(;a-i>1;){let t=i+a>>>1,r=document.createRange();r.setStart(e,t),r.collapse(!0),r.getBoundingClientRect().left<n?i=t:a=t}let o=x(e,i),s=S(o,n,r),c=x(e,a),l=S(c,n,r);return l<s&&(o=c,s=l),{range:o,distSq:s}}function w(e,t,n,r){let i=null,a=1/0;for(let[o,s]of e.childNodes.entries())if(s!==r){if(s.nodeType===Node.TEXT_NODE){let e=(s.textContent??``).length;if(e===0)continue;let r=C(s,e,t,n);r.distSq<a&&(a=r.distSq,i=r.range)}else if(s.nodeType===Node.ELEMENT_NODE){let r=s.getBoundingClientRect();if(r.width===0&&r.height===0)continue;let c=r.left+r.width/2,l=x(e,o),u=x(e,o+1),d=t<c?l:u,f=n-(r.top+r.height/2),p=t<c?t-r.left:t-r.right,m=p*p+f*f;m<a&&(a=m,i=d)}}if(!i){let t=document.createRange();return t.selectNodeContents(e),t.collapse(!1),t}return i}function T(e,t,n,r,i){if(Number.isNaN(n)||Number.isNaN(r))return null;let a=null,o=e;if(o?.caretPositionFromPoint){let e=o.caretPositionFromPoint(n,r);e&&(a=x(e.offsetNode,e.offset))}else o?.caretRangeFromPoint&&(a=o.caretRangeFromPoint(n,r));if(!a)if(`caretPositionFromPoint`in document){let e=document.caretPositionFromPoint(n,r);e&&(a=x(e.offsetNode,e.offset))}else`caretRangeFromPoint`in document&&(a=document.caretRangeFromPoint(n,r));return(!a||!t.contains(a.startContainer))&&(a=w(t,n,r,i)),a}function E(e){if(e){let t=e.getSelection?.();if(t&&t.rangeCount>0)return t.getRangeAt(0)}let t=document.getSelection();if(!t||t.rangeCount===0)return null;let n=t.getRangeAt(0);if(!e||e.contains(n.startContainer))return n;let r=t;if(e&&r.getComposedRanges)try{let t=r.getComposedRanges(e);if(t.length>0){let e=t[0],n=document.createRange();return n.setStart(e.startContainer,e.startOffset),n.setEnd(e.endContainer,e.endOffset),n}}catch{}return null}function D(e,t){let n=document.getSelection();if(n)try{n.setBaseAndExtent(e,t,e,t)}catch{let r=document.createRange();r.setStart(e,t),r.collapse(!0),n.removeAllRanges(),n.addRange(r)}}function O(e){return e===` `||e===`
|
|
21
|
+
`||e===`\xA0`}function re(e){let t=E(e);if(!t||!t.collapsed)return!1;let n=t.startContainer,r=t.startOffset;if(n.nodeType===Node.TEXT_NODE){if(r>=2)return O(n.textContent?.charAt(r-2)??``);let e=n.previousSibling;if(!e||e.nodeType===Node.ELEMENT_NODE&&e.classList?.contains(`element-badge`))return!0;let t=e.textContent??``;return t.length===0||O(t.at(-1)??``)}if(n.nodeType===Node.ELEMENT_NODE){if(r===0)return!0;let e=n.childNodes[r-1];if(!e||e.nodeType===Node.ELEMENT_NODE&&e.classList?.contains(`element-badge`))return!0;if(e.nodeType===Node.TEXT_NODE){let t=e.textContent??``;return t.length===0||O(t.at(-1)??``)}}return!1}function ie(e,t){let n=E(e);if(!n){if(!t)return null;let e=t.getBoundingClientRect();return{x:e.left,y:e.bottom}}let r=n.cloneRange();r.collapse(!0);let i=r.startContainer,a=r.startOffset;if(i.nodeType===Node.TEXT_NODE&&a>0){let e=document.createRange();e.setStart(i,a-1),e.setEnd(i,a);let t=e.getBoundingClientRect();if(t.width>0||t.height>0)return{x:t.left,y:t.bottom}}let o=r.getBoundingClientRect();if(o.width===0&&o.height===0&&o.x===0){if(t){let e=t.getBoundingClientRect();return{x:e.left,y:e.bottom}}return null}return{x:o.left,y:o.bottom}}function ae(e,t){let n=E(e);if(!n||!n.collapsed)return null;let r=n.startContainer,i=n.startOffset;if(r.nodeType!==Node.TEXT_NODE)return null;let a=(r.textContent??``).slice(0,Math.max(0,i)),o=a.lastIndexOf(t);return o===-1?null:a.slice(Math.max(0,o+1))}function k(e,t){if(e.focus(),!t)return;let n=e.querySelector(`[data-element-id="${t}"]`);if(!n)return;let r=n.nextSibling;if(r&&r.nodeType===Node.TEXT_NODE){let e=r.textContent??``,t=e.indexOf(` `);D(r,t===-1?e.length:t+1);return}let i=document.getSelection();if(!i)return;let a=document.createRange();a.setStartAfter(n),a.collapse(!0),i.removeAllRanges(),i.addRange(a)}function oe(e,t,n,r){let i=E(e);if(i){let e=i.startContainer,r=i.startOffset;if(e.nodeType===Node.TEXT_NODE&&t.contains(e)){let t=e.textContent??``,i=t.slice(0,Math.max(0,r)).lastIndexOf(n);if(i!==-1){e.textContent=t.slice(0,Math.max(0,i))+t.slice(Math.max(0,r)),D(e,i);return}}}let a=n+(r??``),o=document.createTreeWalker(t,NodeFilter.SHOW_TEXT),s;for(;s=o.nextNode();){let e=s.textContent??``,n=e.lastIndexOf(a);if(n!==-1){s.textContent=e.slice(0,Math.max(0,n))+e.slice(Math.max(0,n+a.length)),t.focus(),D(s,n);return}}}var A=`application/x-luzmo-element`,j=class{constructor(e){this._elements=new Map,this._idCounter=0,this._dragCaret=null,this.isDragOver=!1,this.richInputElement=null,this.handleRichInput=()=>{this.syncValue(),this._host.dispatchEvent(new Event(`input`,{bubbles:!0,composed:!0}))},this.handleRichPaste=e=>{if(e.preventDefault(),this._cannotEditRichContent())return;if(this._host.allowImages&&e.clipboardData&&this._host.handlePastedImages(e.clipboardData)){e.stopPropagation();return}let t=e.clipboardData?.getData(`text/plain`)??``;if(t){let e=E(this._host.shadowRoot);if(e){e.deleteContents(),e.insertNode(document.createTextNode(t)),e.collapse(!1);let n=document.getSelection();n&&(n.removeAllRanges(),n.addRange(e))}this.syncValue(),this._host.dispatchEvent(new Event(`input`,{bubbles:!0,composed:!0}))}},this.handleRichDragOver=e=>{this._cannotEditRichContent()||e.dataTransfer?.types.includes(`application/x-luzmo-element`)&&(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`copy`),this.isDragOver=!0,this._host.requestUpdate(),this._positionCaretAtPoint(e.clientX,e.clientY),this._showDragCaret(e.clientX,e.clientY))},this.handleRichDragLeave=e=>{let t=e.relatedTarget;(!t||!this.richInputElement?.contains(t))&&(this.isDragOver=!1,this._hideDragCaret(),this._host.requestUpdate())},this.handleRichDrop=e=>{if(e.preventDefault(),this.isDragOver=!1,this._hideDragCaret(),this._cannotEditRichContent()){this._host.requestUpdate();return}let t=e.dataTransfer?.getData(A);if(!t){this._host.requestUpdate();return}try{let n=JSON.parse(t);if(n.elementType&&n.label){this.richInputElement?.focus();let t=this.richInputElement?T(this._host.shadowRoot,this.richInputElement,e.clientX,e.clientY,this._dragCaret):null;this._insertElementAtRange(n.elementType,n.label,n.data??null,void 0,t)}this._host.requestUpdate()}catch{this._host.requestUpdate()}},this._host=e,e.addController(this)}hostConnected(){}hostDisconnected(){}get elements(){return this._elements}get elementCount(){return this._elements.size}getSegments(){return!this._host.allowElements||!this.richInputElement?[{type:`text`,value:this._host.value}]:this._parseSegments()}setSegments(e){if(!this._host.allowElements){this._host.value=this._segmentsToPlainText(e);return}this._elements.clear(),this._host.updateComplete.then(()=>{if(this.richInputElement){this.richInputElement.innerHTML=``;for(let t of e)if(t.type===`text`&&t.value)this.richInputElement.append(document.createTextNode(t.value));else if(t.type===`element`&&t.value){let e={...t.value};e.id||=this._generateId(),this._elements.set(e.id,e),this.richInputElement.append(this._createBadgeNode(e))}this.syncValue()}})}insertElement(e,t,n,r){return this._insertElementAtRange(e,t,n,r,null)}_insertElementAtRange(e,t,n,r,i){if(this._cannotEditRichContent()||this._host.acceptedElementTypes.length>0&&!this._host.acceptedElementTypes.includes(e)||!this.richInputElement)return``;let a=this._generateId(),o={id:a,elementType:e,label:t,data:n,icon:r};this._elements.set(a,o);let s=this._createBadgeNode(o),c=this.richInputElement,l=!1,u=i===null?this._getSelectionRange():i;if(u&&c.contains(u.commonAncestorContainer)){u.deleteContents(),u.insertNode(s);let e=s.previousSibling;if(e?.nodeType===Node.TEXT_NODE){let t=e.previousSibling;t?.classList?.contains(`element-badge`)&&this._ensureSpaceAfter(t)}this._ensureSpaceAfter(s),k(c,a),l=!0}return l||(c.append(s),this._ensureSpaceAfter(s),k(c,a)),this.syncValue(),this._host.dispatchEvent(new CustomEvent(`luzmo-element-inserted`,{bubbles:!0,composed:!0,detail:{element:o}})),a}_getSelectionRange(){return E(this._host.shadowRoot)}removeElement(e){let t=this._elements.get(e);if(!t)return;this._elements.delete(e);let n=this.richInputElement?.querySelector(`[data-element-id="${e}"]`);if(n){let e=n.nextSibling;if(n.remove(),e&&e.nodeType===Node.TEXT_NODE){let t=(e.textContent??``).replaceAll(``,``);t?e.textContent=t:e.remove()}this.syncValue()}this._host.dispatchEvent(new CustomEvent(`luzmo-element-removed`,{bubbles:!0,composed:!0,detail:{element:t}}))}getElements(){return[...this._elements.values()]}clearElements(){this._elements.clear(),this.richInputElement&&(this.richInputElement.innerHTML=``)}handleBadgeDelete(e){let t=E(this._host.shadowRoot);if(!t||!t.collapsed)return!1;let n=e===`Backspace`?this._findBadgeBefore(t.startContainer,t.startOffset):e===`Delete`?this._findBadgeAfter(t.startContainer,t.startOffset):null;return n?.dataset.elementId?(this.removeElement(n.dataset.elementId),!0):!1}_findBadgeBefore(e,t){if(e.nodeType===Node.ELEMENT_NODE){let n=e.childNodes[t-1];if(n?.classList?.contains(`element-badge`))return n}else if(e.nodeType===Node.TEXT_NODE)if(t===0){let t=e.previousSibling;if(t?.classList?.contains(`element-badge`))return t}else{let n=(e.textContent??``).slice(0,t);if(/^[\u200B\uFEFF]*$/.test(n)){let t=e.previousSibling;if(t?.classList?.contains(`element-badge`))return t}}return null}_findBadgeAfter(e,t){if(e.nodeType===Node.ELEMENT_NODE){let n=e.childNodes[t];if(n?.classList?.contains(`element-badge`))return n}else if(e.nodeType===Node.TEXT_NODE){let n=e.textContent??``;if(t===n.length){let t=e.nextSibling;if(t?.classList?.contains(`element-badge`))return t}else{let r=n.slice(t);if(/^[\u200B\uFEFF]*$/.test(r)){let t=e.nextSibling;if(t?.classList?.contains(`element-badge`))return t}}}return null}_segmentsToPlainText(e){return e.map(e=>e.type===`text`?e.value??``:e.value?.label??``).join(``)}_cannotEditRichContent(){return!this._host.allowElements||this._host.disabled||this._host.readonly||this._host.pending}_cleanupSemanticallyEmptyRichInput(e){let t=this.richInputElement;if(!t)return;let n=this._elements.size===0&&e.trim().length===0,r=this._dragCaret?.parentNode===t;!n||r||t.innerHTML===``||(t.innerHTML=``,this._host.value=``)}syncValue(){if(!this.richInputElement)return;let e=this._parseSegments(),t=this._segmentsToPlainText(e);this._host.value=t,this._cleanupSemanticallyEmptyRichInput(t),this._host.requestUpdate()}_parseSegments(){if(!this.richInputElement)return[];let e=[];for(let t of this.richInputElement.childNodes)if(t.nodeType===Node.TEXT_NODE){let n=(t.textContent??``).replaceAll(``,``);n&&e.push({type:`text`,value:n})}else if(t.nodeType===Node.ELEMENT_NODE){let n=t;if(n.classList.contains(`drag-caret`))continue;if(n.classList.contains(`element-badge`)){let t=n.dataset.elementId??``,r=this._elements.get(t);r&&e.push({type:`element`,value:{...r}})}else if(n.tagName===`BR`)e.push({type:`text`,value:`
|
|
22
|
+
`});else{let t=n.textContent??``;t&&e.push({type:`text`,value:t})}}return e}_createBadgeNode(e){let t=document.createElement(`span`);if(t.className=`element-badge`,t.setAttribute(`contenteditable`,`false`),t.dataset.elementId=e.id,t.dataset.elementType=e.elementType,e.icon){let n=document.createElement(`luzmo-icon`);n.icon=e.icon,n.setAttribute(`size`,`xxs`),n.className=`element-badge-icon`,t.append(n)}let n=document.createElement(`span`);n.className=`element-badge-label`,n.textContent=e.label,t.append(n);let r=document.createElement(`button`);return r.type=`button`,r.setAttribute(`role`,`button`),r.tabIndex=-1,r.className=`element-badge-remove`,r.setAttribute(`contenteditable`,`false`),r.setAttribute(`aria-label`,`Remove ${e.label}`),r.textContent=`×`,r.addEventListener(`click`,t=>{t.preventDefault(),t.stopPropagation(),this.removeElement(e.id)}),t.append(r),t}_ensureSpaceAfter(e){let t=e.nextSibling;if(t&&t.nodeType===Node.TEXT_NODE&&t.textContent){let e=t.textContent;if(e.startsWith(``)&&e.length>1)return;if(e.startsWith(` `)){t.textContent=``+e;return}if(/^\u200B+$/.test(e)){t.textContent=e+` `;return}}e.parentNode?.insertBefore(document.createTextNode(` `),t??null)}_showDragCaret(e,t){if(!this.richInputElement){this._hideDragCaret();return}let n=T(this._host.shadowRoot,this.richInputElement,e,t,this._dragCaret);if(!n){this._hideDragCaret();return}let r=n.getBoundingClientRect(),i=this.richInputElement.getBoundingClientRect(),a=r.left-i.left+this.richInputElement.scrollLeft,o=r.top-i.top+this.richInputElement.scrollTop,s=r.height;if(s===0){let e=getComputedStyle(this.richInputElement);s=Number.parseFloat(e.lineHeight)||Number.parseFloat(e.fontSize)||16,o=t-i.top+this.richInputElement.scrollTop-s/2}this._dragCaret||(this._dragCaret=document.createElement(`div`),this._dragCaret.className=`drag-caret`);let c=this._dragCaret;c.style.position=`absolute`,c.style.top=`${o}px`,c.style.left=`${a}px`,c.style.height=`${s}px`,c.parentNode||(this.richInputElement.style.position=`relative`,this.richInputElement.append(c))}_hideDragCaret(){this._dragCaret?.remove()}_generateId(){return`el-${++this._idCounter}-${Date.now()}`}_positionCaretAtPoint(e,t){if(!this.richInputElement)return;let n=T(this._host.shadowRoot,this.richInputElement,e,t,this._dragCaret);if(n){let e=document.getSelection();e&&(e.removeAllRanges(),e.addRange(n))}}},M=class{constructor(e){this._triggers=[],this.activeTrigger=null,this.searchString=``,this.virtualElement=null,this.highlightedIndex=0,this.pointerMovedSinceKeyNav=!0,this.hoveredIndex=-1,this.filteredOptions=[],this.richInputElement=null,this.handleOverlayClosed=()=>{this.close()},this.handleOverlayKeydown=e=>{e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),this.close(),this.richInputElement?.focus())},this.handlePointerMove=()=>{this.pointerMovedSinceKeyNav=!0},this._handleTriggerSelect=e=>{if(!this.activeTrigger)return;let{elementType:t,label:n,data:r,icon:i}=e.detail;this.selectOption({label:n,value:n,data:r,icon:i,elementType:t})},this._handleDocumentPointerDown=e=>{let t=e.composedPath(),n=this._host.shadowRoot?.querySelector(`luzmo-overlay[part="trigger-menu-overlay"]`);n&&t.includes(n)||this.richInputElement&&t.includes(this.richInputElement)||(this.close(),this.richInputElement?.focus())},this._host=e,e.addController(this)}hostConnected(){this._host.addEventListener(`luzmo-trigger-select`,this._handleTriggerSelect)}hostDisconnected(){document.removeEventListener(`pointerdown`,this._handleDocumentPointerDown,!0),this._host.removeEventListener(`luzmo-trigger-select`,this._handleTriggerSelect)}get triggers(){return this._triggers}set triggers(e){this._triggers=e,this.activeTrigger&&this._updateFilteredOptions()}get activeConfig(){if(this.activeTrigger)return this._triggers.find(e=>e.key===this.activeTrigger)}get hasTriggers(){return this._triggers.length>0}getSlotName(e){return this._triggers.find(t=>t.key===e)?.slotName}get allSlotNames(){return this._triggers.map(e=>e.slotName).filter(e=>!!e)}handleInput(e){if(this.activeTrigger){let e=ae(this._host.shadowRoot,this.activeTrigger)??this._extractTriggerSearchFromContent(this.activeTrigger);e===null?this.close():(this.searchString=e,this._updateFilteredOptions(),this.highlightedIndex=this._findSelectableIndex(0,1),this._dispatchChange(!0),this._host.requestUpdate(),document.dispatchEvent(new Event(`luzmo-update-overlays`)))}else this._detectTrigger(e)}open(e){if(!this._triggers.find(t=>t.key===e))return;let t=ie(this._host.shadowRoot,this.richInputElement);if(!t)return;this.activeTrigger=e,this.searchString=``,this._updateFilteredOptions(),this.highlightedIndex=this._findSelectableIndex(0,1);let n=this.richInputElement?.getBoundingClientRect().top??t.y;this.virtualElement?this.virtualElement.updateBoundingClientRect(t.x,t.y,n):this.virtualElement=new v(t.x,t.y,n),this._dispatchChange(!0),this._host.requestUpdate(),requestAnimationFrame(()=>{document.addEventListener(`pointerdown`,this._handleDocumentPointerDown,!0)})}close(){if(this.activeTrigger===null)return;document.removeEventListener(`pointerdown`,this._handleDocumentPointerDown,!0);let e=this.activeTrigger;this.activeTrigger=null,this.searchString=``,this.filteredOptions=[],this.highlightedIndex=0,this.hoveredIndex=-1,this._host.dispatchEvent(new CustomEvent(`luzmo-trigger-change`,{bubbles:!0,composed:!0,detail:{trigger:e,open:!1,searchString:``}})),this._host.requestUpdate()}handleKeydown(e){return this.activeTrigger?e.key===`Escape`?(e.preventDefault(),this.close(),this.richInputElement?.focus(),!0):e.key===`Tab`?(this.close(),!1):e.key===`ArrowDown`?(e.preventDefault(),this._moveHighlight(1),!0):e.key===`ArrowUp`?(e.preventDefault(),this._moveHighlight(-1),!0):e.key===`Enter`&&!e.shiftKey?(e.preventDefault(),this._selectHighlighted(),!0):!1:!1}_detectTrigger(e){if(this._host.disabled||this._host.readonly||this._host.pending)return;let t=e?.data??``;t.length!==1||!this._isTriggerKey(t)||re(this._host.shadowRoot)&&this.open(t)}_extractTriggerSearchFromContent(e){let t=this.richInputElement?.textContent??``;if(!t)return null;let n=t.lastIndexOf(e);if(n===-1)return null;let r=t.slice(n+1);return r.includes(` `)||r.includes(`
|
|
23
|
+
`)?null:r}_isTriggerKey(e){return this._triggers.some(t=>t.key===e)}_updateFilteredOptions(){let e=this.activeConfig;if(!e?.options){this.filteredOptions=[];return}if(e.lazy){this.filteredOptions=e.options;return}if(!this.searchString){this.filteredOptions=e.options;return}let t=this.searchString.toLowerCase(),n=[],r=null;for(let i of e.options){if(i.header){r=i;continue}(i.label.toLowerCase().includes(t)||(i.description?.toLowerCase().includes(t)??!1))&&(r&&=(n.push(r),null),n.push(i))}this.filteredOptions=n}_findSelectableIndex(e,t){let n=this.filteredOptions.length;if(n===0)return-1;let r=(e%n+n)%n;for(let e=0;e<n;e++){if(!this.filteredOptions[r].header)return r;r=((r+t)%n+n)%n}return-1}_moveHighlight(e){let t=this.filteredOptions.length;if(t===0)return;let n=(this.highlightedIndex+e+t)%t;n=this._findSelectableIndex(n,e),n!==-1&&(this.pointerMovedSinceKeyNav=!1,this.hoveredIndex=-1,this.highlightedIndex=n,this._host.requestUpdate(),requestAnimationFrame(()=>{this._host.shadowRoot?.querySelector(`.trigger-option.highlighted`)?.scrollIntoView({block:`nearest`})}))}_selectHighlighted(){let e=this.filteredOptions[this.highlightedIndex];if(!e){this.close();return}this.selectOption(e)}selectOption(e){if(!this.activeTrigger||!this.richInputElement)return;let t=this.activeTrigger,n=this.richInputElement,r=this._host.shadowRoot;oe(r,n,t,this.searchString);let i=e.elementType??t,a=this._host.insertElement(i,e.label,e.data??null,e.icon);k(n,a),this.close(),this._host.updateComplete.then(()=>{requestAnimationFrame(()=>{k(n,a)})})}_dispatchChange(e){this.activeTrigger&&this._host.dispatchEvent(new CustomEvent(`luzmo-trigger-change`,{bubbles:!0,composed:!0,detail:{trigger:this.activeTrigger,open:e,searchString:this.searchString}}))}},N=!1,P=0;function F(){N=!0}function I(){N=!1}function L(){document.addEventListener(`keydown`,F,!0),document.addEventListener(`mousedown`,I,!0),document.addEventListener(`pointerdown`,I,!0)}function R(){document.removeEventListener(`keydown`,F,!0),document.removeEventListener(`mousedown`,I,!0),document.removeEventListener(`pointerdown`,I,!0)}function z(){P===0&&typeof window<`u`&&L(),P++}function B(){P--,P<=0&&(P=0,R())}function V(){return N}function H(t,n,r){return e`
|
|
24
|
+
<div class="top-actions ${n?``:`empty`}" part="top-actions">
|
|
25
|
+
<slot name="top-actions" @slotchange=${r}></slot>
|
|
26
|
+
</div>
|
|
27
|
+
`}function U(t,n,r){return e`
|
|
28
|
+
<div
|
|
29
|
+
class="bottom-actions ${n?``:`empty`}"
|
|
30
|
+
part="bottom-actions"
|
|
31
|
+
>
|
|
32
|
+
<slot name="bottom-actions" @slotchange=${r}></slot>
|
|
33
|
+
</div>
|
|
34
|
+
`}function W(n,r,i){return e`
|
|
35
|
+
<div
|
|
36
|
+
class="error ${r?``:`empty`}"
|
|
37
|
+
part="error"
|
|
38
|
+
role=${r?`alert`:t}
|
|
39
|
+
>
|
|
40
|
+
<slot name="error" @slotchange=${i}></slot>
|
|
41
|
+
</div>
|
|
42
|
+
`}function G(t){let n=[];for(let r=0;r<5;r++){let i=1-Math.abs(r-2)*.15,a=.3+t.recordingController.audioLevel*.7*i,o=Math.max(.2,Math.min(1,a));n.push(e`
|
|
43
|
+
<span class="waveform-bar" style="--bar-height: ${o}"></span>
|
|
44
|
+
`)}return e`
|
|
45
|
+
<div class="waveform" part="waveform" aria-hidden="true">${n}</div>
|
|
46
|
+
`}function K(t){let n=t.handleRecordButtonSlotChange,r=t.hasRecordButton,i=t.recordingController.isRecording,a=()=>{t.recordingController.cancel()},o=e=>{t.handleRecordClick(e)};return r||!t.recording?e`<slot name="record-button" @slotchange=${n}></slot>`:i?e`
|
|
47
|
+
<slot name="record-button" @slotchange=${n}></slot>
|
|
48
|
+
<div class="recording-ui" part="recording-ui">
|
|
49
|
+
<luzmo-button
|
|
50
|
+
class="cancel-recording-button"
|
|
51
|
+
part="cancel-recording-button"
|
|
52
|
+
.size=${t.size}
|
|
53
|
+
icon-only
|
|
54
|
+
quiet
|
|
55
|
+
?disabled=${t.disabled}
|
|
56
|
+
@click=${a}
|
|
57
|
+
aria-label="Cancel recording"
|
|
58
|
+
>
|
|
59
|
+
<luzmo-icon slot="icon" .icon=${te}></luzmo-icon>
|
|
60
|
+
</luzmo-button>
|
|
61
|
+
${G(t)}
|
|
62
|
+
<span class="recording-duration" part="recording-duration">
|
|
63
|
+
${t.recordingController.formatDuration()}
|
|
64
|
+
</span>
|
|
65
|
+
<luzmo-button
|
|
66
|
+
class="finish-recording-button"
|
|
67
|
+
part="finish-recording-button"
|
|
68
|
+
.size=${t.size}
|
|
69
|
+
icon-only
|
|
70
|
+
variant="primary"
|
|
71
|
+
?disabled=${t.disabled}
|
|
72
|
+
@click=${o}
|
|
73
|
+
aria-label="Finish recording"
|
|
74
|
+
>
|
|
75
|
+
<luzmo-icon slot="icon" .icon=${m}></luzmo-icon>
|
|
76
|
+
</luzmo-button>
|
|
77
|
+
</div>
|
|
78
|
+
`:e`
|
|
79
|
+
<slot name="record-button" @slotchange=${n}></slot>
|
|
80
|
+
<luzmo-button
|
|
81
|
+
class="record-button"
|
|
82
|
+
part="record-button"
|
|
83
|
+
.size=${t.size}
|
|
84
|
+
icon-only
|
|
85
|
+
quiet
|
|
86
|
+
?disabled=${t.disabled}
|
|
87
|
+
@click=${o}
|
|
88
|
+
aria-label="Record"
|
|
89
|
+
>
|
|
90
|
+
<luzmo-icon slot="icon" .icon=${ee}></luzmo-icon>
|
|
91
|
+
</luzmo-button>
|
|
92
|
+
`}function q(t){let n=t.handleSubmitButtonSlotChange,r=t.recordingController.isRecording,i=()=>{t.submit()},a=()=>{t.handleStopClick()};if(r||t.hasSubmitButton||t.hideSubmit&&!t.hasSubmitButton)return e`<slot name="submit-button" @slotchange=${n}></slot>`;let o=!!t.value.trim()||t.richInputController.elementCount>0;return t.pending&&t.stoppable?e`
|
|
93
|
+
<slot name="submit-button" @slotchange=${n}></slot>
|
|
94
|
+
<luzmo-button
|
|
95
|
+
class="submit-button stop-button"
|
|
96
|
+
part="submit-button stop-button"
|
|
97
|
+
.size=${t.size}
|
|
98
|
+
icon-only
|
|
99
|
+
variant="primary"
|
|
100
|
+
?disabled=${t.disabled}
|
|
101
|
+
@click=${a}
|
|
102
|
+
aria-label="Stop"
|
|
103
|
+
label="Stop"
|
|
104
|
+
>
|
|
105
|
+
<luzmo-icon slot="icon" .icon=${h}></luzmo-icon>
|
|
106
|
+
</luzmo-button>
|
|
107
|
+
`:e`
|
|
108
|
+
<slot name="submit-button" @slotchange=${n}></slot>
|
|
109
|
+
<luzmo-button
|
|
110
|
+
class="submit-button"
|
|
111
|
+
part="submit-button"
|
|
112
|
+
.size=${t.size}
|
|
113
|
+
icon-only
|
|
114
|
+
variant="primary"
|
|
115
|
+
?disabled=${t.disabled||t.disableSubmit||!t.pending&&!o}
|
|
116
|
+
?pending=${t.pending}
|
|
117
|
+
@click=${i}
|
|
118
|
+
aria-label="Submit"
|
|
119
|
+
label="Submit"
|
|
120
|
+
.label=${`Submit`}
|
|
121
|
+
>
|
|
122
|
+
<luzmo-icon slot="icon" .icon=${d}></luzmo-icon>
|
|
123
|
+
</luzmo-button>
|
|
124
|
+
`}function se(t,n){if(!n)return t;let r=t.toLowerCase().indexOf(n.toLowerCase());return r===-1?t:e`${t.slice(0,r)}<mark class="trigger-option-highlight">${t.slice(r,r+n.length)}</mark>${t.slice(r+n.length)}`}function ce(n,r){return e`
|
|
125
|
+
<div
|
|
126
|
+
class="trigger-option-header"
|
|
127
|
+
part="trigger-option-header"
|
|
128
|
+
role="presentation"
|
|
129
|
+
>
|
|
130
|
+
${r?.iconTemplate?e`<span class="trigger-option-header-icon">${r.iconTemplate(n)}</span>`:n.icon?e`<luzmo-icon
|
|
131
|
+
class="trigger-option-header-icon"
|
|
132
|
+
.icon=${n.icon}
|
|
133
|
+
size="s"
|
|
134
|
+
></luzmo-icon>`:t}
|
|
135
|
+
<span class="trigger-option-header-label">${n.label}</span>
|
|
136
|
+
</div>
|
|
137
|
+
`}function le(n,r,i,a,o){let s=()=>{n.selectTriggerOption(r)},c=()=>{n.triggerMenuController.pointerMovedSinceKeyNav&&(n.triggerMenuController.hoveredIndex=i,n.highlightTriggerOption(i))},l=()=>{n.triggerMenuController.hoveredIndex===i&&(n.triggerMenuController.hoveredIndex=-1,n.requestUpdate())},d=i===a,f=i===n.triggerMenuController.hoveredIndex,p=n.triggerMenuController.searchString,m=e`${o?.iconTemplate?e`<span class="trigger-option-icon">${o.iconTemplate(r)}</span>`:r.icon?e`<luzmo-icon
|
|
138
|
+
class="trigger-option-icon"
|
|
139
|
+
.icon=${r.icon}
|
|
140
|
+
size="s"
|
|
141
|
+
></luzmo-icon>`:t}
|
|
142
|
+
<div class="trigger-option-content">
|
|
143
|
+
<span class="trigger-option-label"
|
|
144
|
+
>${o?.highlightSearch&&p?se(r.label,p):r.label}</span
|
|
145
|
+
>
|
|
146
|
+
${r.description?e`<span class="trigger-option-description"
|
|
147
|
+
>${r.description}</span
|
|
148
|
+
>`:t}
|
|
149
|
+
</div>`;return e`
|
|
150
|
+
<div
|
|
151
|
+
class="trigger-option ${d?`highlighted`:``} ${f?`hovered`:``} ${r.description?`has-description`:``}"
|
|
152
|
+
part="trigger-option"
|
|
153
|
+
role="option"
|
|
154
|
+
aria-selected=${d}
|
|
155
|
+
@click=${s}
|
|
156
|
+
@pointerenter=${c}
|
|
157
|
+
@pointerleave=${l}
|
|
158
|
+
>
|
|
159
|
+
${m}
|
|
160
|
+
${d?e`<luzmo-icon
|
|
161
|
+
class="trigger-option-enter-icon"
|
|
162
|
+
.icon=${u}
|
|
163
|
+
size="s"
|
|
164
|
+
></luzmo-icon>`:t}
|
|
165
|
+
</div>
|
|
166
|
+
`}function ue(t,n,r,i){let a=[];for(let[e,o]of n.entries())o.header?a.push(ce(o,i)):a.push(le(t,o,e,r,i));return e`
|
|
167
|
+
<div
|
|
168
|
+
class="trigger-options"
|
|
169
|
+
part="trigger-options"
|
|
170
|
+
role="listbox"
|
|
171
|
+
@pointermove=${t.triggerMenuController.handlePointerMove}
|
|
172
|
+
>
|
|
173
|
+
${a}
|
|
174
|
+
</div>
|
|
175
|
+
`}function J(t){return e`<slot name=${t} style="display: none;"></slot>`}function de(n){let r=n.triggerMenuController;if(!r.hasTriggers){let t=[];for(let e of r.allSlotNames)t.push(J(e));return e`${t}`}let i=r.activeConfig,a=i?.slotName??null,o=r.filteredOptions.length>0,s=r.activeTrigger!==null,c=[];for(let e of r.allSlotNames)e!==a&&c.push(J(e));return e`
|
|
176
|
+
<luzmo-overlay
|
|
177
|
+
part="trigger-menu-overlay"
|
|
178
|
+
type="manual"
|
|
179
|
+
placement="bottom-start"
|
|
180
|
+
receives-focus="auto"
|
|
181
|
+
.triggerElement=${r.virtualElement}
|
|
182
|
+
.open=${s}
|
|
183
|
+
@luzmo-closed=${r.handleOverlayClosed}
|
|
184
|
+
@keydown=${r.handleOverlayKeydown}
|
|
185
|
+
>
|
|
186
|
+
${s&&a?e`<slot name=${a}></slot>`:t}
|
|
187
|
+
${s&&o?ue(n,r.filteredOptions,r.highlightedIndex,i):t}
|
|
188
|
+
</luzmo-overlay>
|
|
189
|
+
${c}
|
|
190
|
+
`}function fe(t){let n=!t.readonly&&!t.pending&&!t.disabled,r=t.richInputController;return e`
|
|
191
|
+
<div
|
|
192
|
+
class="rich-input"
|
|
193
|
+
part="rich-input"
|
|
194
|
+
contenteditable=${n?`true`:`false`}
|
|
195
|
+
role="textbox"
|
|
196
|
+
aria-multiline="true"
|
|
197
|
+
aria-label=${t.placeholder||`Enter your message`}
|
|
198
|
+
data-placeholder=${t.placeholder}
|
|
199
|
+
@input=${t.handleRichInputEvent}
|
|
200
|
+
@keydown=${t.handleRichKeydown}
|
|
201
|
+
@paste=${r.handleRichPaste}
|
|
202
|
+
@dragover=${r.handleRichDragOver}
|
|
203
|
+
@dragleave=${r.handleRichDragLeave}
|
|
204
|
+
@drop=${r.handleRichDrop}
|
|
205
|
+
@focusin=${t.handleInputFocusIn}
|
|
206
|
+
@focusout=${t.handleInputFocusOut}
|
|
207
|
+
></div>
|
|
208
|
+
`}function pe(t){return t.allowElements?fe(t):e`
|
|
209
|
+
<luzmo-text-field
|
|
210
|
+
class="input-field"
|
|
211
|
+
part="input"
|
|
212
|
+
placeholder=${t.placeholder}
|
|
213
|
+
.value=${t.value}
|
|
214
|
+
.size=${t.size}
|
|
215
|
+
rows=${t.rows}
|
|
216
|
+
?grows=${t.grows}
|
|
217
|
+
max-rows=${t.maxRows}
|
|
218
|
+
?readonly=${t.readonly||t.pending||t.disabled}
|
|
219
|
+
maxlength=${t.maxlength>0?t.maxlength:-1}
|
|
220
|
+
multiline
|
|
221
|
+
quiet
|
|
222
|
+
label=${t.placeholder||`Enter your message`}
|
|
223
|
+
@input=${t.handleInput}
|
|
224
|
+
@keydown=${t.handleKeydown}
|
|
225
|
+
@focusin=${t.handleInputFocusIn}
|
|
226
|
+
@focusout=${t.handleInputFocusOut}
|
|
227
|
+
hide-validation-icons
|
|
228
|
+
></luzmo-text-field>
|
|
229
|
+
`}var Y={pdf:_,csv:p,xls:g,xlsx:g,mp4:l,mov:l,webm:l,avi:l,mkv:l},me=new Set([`__proto__`,`constructor`,`prototype`]);function X(e){return e.trim().toLowerCase().replace(/^\./,``)}function he(e){let t=e.lastIndexOf(`.`);if(!(t<=0||t===e.length-1))return X(e.slice(t+1))}function ge(e){if(!e||Object.keys(e).length===0)return Y;let t={...Y};for(let[n,r]of Object.entries(e)){let e=X(n);!e||me.has(e)||(t[e]=r)}return t}function _e(e,t){let n=he(e.name);return n?t[n]??f:f}function ve(n,r){return e`
|
|
230
|
+
<div
|
|
231
|
+
class="image-attachment"
|
|
232
|
+
part="image-attachment"
|
|
233
|
+
title=${r.file.name}
|
|
234
|
+
aria-busy=${r.loading?`true`:t}
|
|
235
|
+
>
|
|
236
|
+
${r.loading?e`
|
|
237
|
+
<luzmo-skeleton-loader
|
|
238
|
+
class="attachment-skeleton"
|
|
239
|
+
part="attachment-skeleton"
|
|
240
|
+
></luzmo-skeleton-loader>
|
|
241
|
+
`:e`
|
|
242
|
+
<img
|
|
243
|
+
src=${r.previewUrl||``}
|
|
244
|
+
alt=${r.file.name}
|
|
245
|
+
class="image-preview"
|
|
246
|
+
/>
|
|
247
|
+
`}
|
|
248
|
+
<luzmo-clear-button
|
|
249
|
+
class="attachment-remove"
|
|
250
|
+
.size=${n.size}
|
|
251
|
+
?disabled=${n.disabled||n.pending}
|
|
252
|
+
label=${n.removeAttachmentLabel(r.file.name)}
|
|
253
|
+
data-attachment-id=${r.id}
|
|
254
|
+
@click=${n.handleAttachmentRemoveClick}
|
|
255
|
+
></luzmo-clear-button>
|
|
256
|
+
</div>
|
|
257
|
+
`}function ye(n,r,i){return e`
|
|
258
|
+
<div
|
|
259
|
+
class="file-attachment"
|
|
260
|
+
part="file-attachment"
|
|
261
|
+
title=${r.file.name}
|
|
262
|
+
aria-busy=${r.loading?`true`:t}
|
|
263
|
+
>
|
|
264
|
+
${r.loading?e`
|
|
265
|
+
<luzmo-skeleton-loader
|
|
266
|
+
class="attachment-skeleton"
|
|
267
|
+
part="attachment-skeleton"
|
|
268
|
+
></luzmo-skeleton-loader>
|
|
269
|
+
`:e`
|
|
270
|
+
<luzmo-icon
|
|
271
|
+
class="file-attachment-icon"
|
|
272
|
+
.icon=${_e(r.file,i)}
|
|
273
|
+
></luzmo-icon>
|
|
274
|
+
`}
|
|
275
|
+
<luzmo-clear-button
|
|
276
|
+
class="attachment-remove"
|
|
277
|
+
.size=${n.size}
|
|
278
|
+
?disabled=${n.disabled||n.pending}
|
|
279
|
+
label=${n.removeAttachmentLabel(r.file.name)}
|
|
280
|
+
data-attachment-id=${r.id}
|
|
281
|
+
@click=${n.handleAttachmentRemoveClick}
|
|
282
|
+
></luzmo-clear-button>
|
|
283
|
+
</div>
|
|
284
|
+
`}function be(n){let r=n.attachmentsController;if(!r.hasAttachments)return t;let i=ge(n.fileIcons),a=r.imageAttachments,o=r.fileAttachments,s=[];for(let e of a)s.push(ve(n,e));for(let e of o)s.push(ye(n,e,i));return e`
|
|
285
|
+
<div class="attachments" part="attachments">${s}</div>
|
|
286
|
+
`}function xe(n){return!n.allowImages&&!n.allowFiles?t:e`
|
|
287
|
+
<input
|
|
288
|
+
type="file"
|
|
289
|
+
class="hidden-file-input"
|
|
290
|
+
accept=${n.attachmentsController.getAcceptAttribute()}
|
|
291
|
+
multiple
|
|
292
|
+
@change=${e=>{let t=e.target;t.files?.length&&n.attachmentsController.addFiles([...t.files]),t.value=``}}
|
|
293
|
+
aria-hidden="true"
|
|
294
|
+
tabindex="-1"
|
|
295
|
+
/>
|
|
296
|
+
`}var Z=`luzmo-button, luzmo-action-button, luzmo-switch, luzmo-picker, luzmo-picker-button, luzmo-select, luzmo-text-field, luzmo-number-field`;function Q(e){let t=[];return e.matches(Z)&&t.push(e),t.push(...e.querySelectorAll(Z)),t}function Se(e,t,n){if(!e)return;let r=e.querySelector(`slot[name="submit-button"]`);for(let e of r?.assignedElements()??[])for(let r of Q(e))n?(r.setAttribute(`pending`,``),r.removeAttribute(`disabled`),r.removeAttribute(`readonly`)):t?(r.removeAttribute(`pending`),r.setAttribute(`disabled`,``),r.removeAttribute(`readonly`)):(r.removeAttribute(`pending`),r.removeAttribute(`disabled`),r.removeAttribute(`readonly`));for(let r of[`slot[name="top-actions"]`,`slot[name="bottom-actions"]`,`slot[name="record-button"]`]){let i=e.querySelector(r);for(let e of i?.assignedElements()??[])for(let r of Q(e))t||n?(r.setAttribute(`disabled`,``),r.removeAttribute(`readonly`)):(r.removeAttribute(`disabled`),r.removeAttribute(`readonly`))}}function Ce(e){let t=[],n=new Set([`luzmo-switch`,`luzmo-checkbox`,`luzmo-radio`]);for(let r of e)for(let e of Q(r)){let r={element:e,name:e.getAttribute(`name`)||e.getAttribute(`label`)||void 0};`value`in e&&(r.value=e.value);let i=e.tagName.toLowerCase();n.has(i)&&`checked`in e&&(r.checked=e.checked),t.push(r)}return t}var we=`:host{font-family:var(--luzmo-prompt-box-font-family,var(--prompt-box-font-family));font-size:var(--luzmo-prompt-box-font-size,var(--prompt-box-font-size));line-height:var(--luzmo-prompt-box-line-height,var(--prompt-box-line-height));color:var(--highcontrast-prompt-box-text-color,var(--luzmo-prompt-box-text-color,var(--prompt-box-text-color)));flex-direction:column;width:100%;display:flex}:host([disabled]){opacity:var(--luzmo-prompt-box-disabled-opacity,var(--prompt-box-disabled-opacity));pointer-events:none}.container{gap:var(--luzmo-prompt-box-gap,var(--prompt-box-gap));padding:var(--luzmo-prompt-box-vertical-padding,var(--prompt-box-vertical-padding)) var(--luzmo-prompt-box-horizontal-padding,var(--prompt-box-horizontal-padding));background-color:var(--highcontrast-prompt-box-background-color,var(--luzmo-prompt-box-background-color,var(--prompt-box-background-color)));border-radius:var(--luzmo-prompt-box-border-radius,var(--prompt-box-border-radius));border-width:var(--luzmo-prompt-box-border-width,var(--prompt-box-border-width));border-style:solid;border-color:var(--highcontrast-prompt-box-border-color,var(--luzmo-prompt-box-border-color,var(--prompt-box-border-color)));box-shadow:var(--luzmo-prompt-box-shadow,var(--prompt-box-shadow));transition:border-color var(--luzmo-prompt-box-animation-duration,var(--prompt-box-animation-duration)) ease-in-out, box-shadow var(--luzmo-prompt-box-animation-duration,var(--prompt-box-animation-duration)) ease-in-out;flex-direction:column;display:flex}.container.input-focused{border-color:var(--highcontrast-prompt-box-border-color-focus,var(--luzmo-prompt-box-border-color-focus,var(--prompt-box-border-color-focus)))}.container.drag-over{border-color:var(--luzmo-prompt-box-border-color-drag,var(--luzmo-primary,#0064fa))}:host(:focus-visible) .container,:host(.focus-visible) .container{border-color:var(--highcontrast-prompt-box-border-color-focus,var(--luzmo-prompt-box-border-color-focus,var(--prompt-box-border-color-focus)));box-shadow:var(--luzmo-prompt-box-shadow-focus,var(--prompt-box-shadow-focus))}:host(:focus){outline:none}.top-actions{align-items:center;gap:var(--luzmo-prompt-box-top-actions-gap,var(--prompt-box-top-actions-gap));opacity:var(--luzmo-prompt-box-actions-opacity,var(--prompt-box-actions-opacity,1));transition:opacity var(--luzmo-prompt-box-animation-duration,var(--prompt-box-animation-duration)) ease-in-out;flex-wrap:wrap;display:flex}.top-actions.empty{display:none}.hidden-file-input{opacity:0;pointer-events:none;width:0;height:0;position:absolute;overflow:hidden}.attachments{align-items:center;gap:var(--luzmo-prompt-box-attachments-gap,var(--prompt-box-attachments-gap,8px));flex-flow:row;display:flex;overflow:auto hidden}.attachments::-webkit-scrollbar{width:var(--luzmo-prompt-box-scrollbar-width,var(--prompt-box-scrollbar-width));height:var(--luzmo-prompt-box-scrollbar-width,var(--prompt-box-scrollbar-width))}.attachments::-webkit-scrollbar-track{background:var(--luzmo-prompt-box-scrollbar-track-background,var(--prompt-box-scrollbar-track-background));border-radius:var(--luzmo-prompt-box-scrollbar-track-border-radius,var(--prompt-box-scrollbar-track-border-radius))}.attachments::-webkit-scrollbar-thumb{background:var(--luzmo-prompt-box-scrollbar-thumb-background,var(--prompt-box-scrollbar-thumb-background));border-radius:var(--luzmo-prompt-box-scrollbar-thumb-border-radius,var(--prompt-box-scrollbar-thumb-border-radius))}.attachments::-webkit-scrollbar-thumb:hover{background:var(--luzmo-prompt-box-scrollbar-thumb-hover-background,var(--prompt-box-scrollbar-thumb-hover-background))}.attachments{scrollbar-width:var(--luzmo-scrollbar-width,thin);scrollbar-color:var(--luzmo-prompt-box-scrollbar-thumb-background,var(--prompt-box-scrollbar-thumb-background)) var(--luzmo-prompt-box-scrollbar-track-background,var(--prompt-box-scrollbar-track-background))}.image-attachment,.file-attachment{width:var(--luzmo-prompt-box-image-preview-size,var(--prompt-box-image-preview-size,80px));height:var(--luzmo-prompt-box-image-preview-size,var(--prompt-box-image-preview-size,80px));border-radius:var(--luzmo-prompt-box-image-border-radius,var(--prompt-box-image-border-radius,8px));background-color:var(--luzmo-prompt-box-image-background,var(--prompt-box-image-background,#0000000d));flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative;overflow:hidden}.image-preview{object-fit:cover;width:100%;height:100%}.file-attachment-icon{--luzmo-icon-size:var(--luzmo-prompt-box-file-icon-size,var(--prompt-box-file-icon-size,28px));color:var(--luzmo-prompt-box-file-icon-color,var(--prompt-box-file-icon-color,var(--luzmo-font-color-extra-dimmed)))}.attachment-skeleton{--luzmo-skeleton-loader-border-radius:var(--luzmo-prompt-box-image-border-radius,var(--prompt-box-image-border-radius,8px));block-size:100%;inline-size:100%}.attachment-remove{width:var(--luzmo-prompt-box-remove-button-size,var(--prompt-box-remove-button-size,24px));height:var(--luzmo-prompt-box-remove-button-size,var(--prompt-box-remove-button-size,24px));background-color:var(--luzmo-prompt-box-remove-button-background,var(--prompt-box-remove-button-background,#00000080));--luzmo-clear-button-icon-color:var(--luzmo-prompt-box-remove-button-icon-color,var(--prompt-box-remove-button-icon-color,#fff));border-radius:50%;position:absolute;top:4px;right:4px}.attachment-remove:hover{background-color:var(--luzmo-prompt-box-remove-button-background-hover,var(--prompt-box-remove-button-background-hover,#000000b3))}.input-wrapper{flex:1;display:flex;position:relative}.input-field{--luzmo-text-field-focus-indicator-width:0;--luzmo-text-field-border-width:0;--luzmo-text-field-width:100%;--luzmo-text-field-min-width:0;--luzmo-text-field-placeholder-text-color-default:var(--luzmo-prompt-box-placeholder-color,var(--prompt-box-placeholder-color));flex:1;width:100%;min-width:0}.error{color:var(--luzmo-prompt-box-error-color,var(--prompt-box-error-color,var(--luzmo-negative-color)));font-size:var(--luzmo-prompt-box-error-font-size,var(--prompt-box-error-font-size,var(--luzmo-font-size-s)));line-height:var(--luzmo-prompt-box-error-line-height,var(--prompt-box-error-line-height,1.4))}.error.empty{display:none}::slotted([slot=error]){color:inherit;font-size:inherit;line-height:inherit}.actions-row{justify-content:space-between;align-items:center;gap:var(--luzmo-prompt-box-actions-gap,var(--prompt-box-actions-gap));display:flex}.bottom-actions{align-items:center;gap:var(--luzmo-prompt-box-bottom-actions-gap,var(--prompt-box-bottom-actions-gap));opacity:var(--luzmo-prompt-box-actions-opacity,var(--prompt-box-actions-opacity,1));transition:opacity var(--luzmo-prompt-box-animation-duration,var(--prompt-box-animation-duration)) ease-in-out;flex-wrap:wrap;flex:1;display:flex}.button-group{align-items:center;gap:var(--luzmo-prompt-box-button-group-gap,var(--prompt-box-button-group-gap));margin-left:auto;display:flex}.submit-button{margin-inline-start:var(--luzmo-prompt-box-submit-button-margin-inline-start,var(--prompt-box-submit-button-margin-inline-start))}.recording-ui{align-items:center;gap:var(--luzmo-prompt-box-recording-gap,var(--prompt-box-recording-gap));display:flex}.waveform{align-items:center;gap:var(--luzmo-prompt-box-waveform-gap,var(--prompt-box-waveform-gap,3px));height:var(--luzmo-prompt-box-waveform-height,var(--prompt-box-waveform-height,24px));padding:0 4px;display:flex}.waveform-bar{width:var(--luzmo-prompt-box-waveform-bar-width,var(--prompt-box-waveform-bar-width,3px));height:calc(var(--bar-height,.3) * var(--luzmo-prompt-box-waveform-height,var(--prompt-box-waveform-height,24px)));background-color:var(--luzmo-prompt-box-waveform-bar-color,var(--prompt-box-waveform-bar-color,currentColor));border-radius:var(--luzmo-prompt-box-waveform-bar-radius,var(--prompt-box-waveform-bar-radius,2px));min-height:4px;transition:height 50ms ease-out;animation:1s ease-in-out infinite waveform-pulse}.waveform-bar:first-child{animation-delay:0s}.waveform-bar:nth-child(2){animation-delay:.1s}.waveform-bar:nth-child(3){animation-delay:.2s}.waveform-bar:nth-child(4){animation-delay:.1s}.waveform-bar:nth-child(5){animation-delay:0s}@keyframes waveform-pulse{0%,to{opacity:.6}50%{opacity:1}}.recording-duration{font-family:var(--luzmo-prompt-box-recording-duration-font-family,var(--prompt-box-recording-duration-font-family,monospace));font-size:var(--luzmo-prompt-box-recording-duration-font-size,var(--prompt-box-recording-duration-font-size,14px));font-weight:var(--luzmo-prompt-box-recording-duration-font-weight,var(--prompt-box-recording-duration-font-weight,500));color:var(--luzmo-prompt-box-recording-duration-color,var(--prompt-box-recording-duration-color,currentColor));text-align:center}.rich-input{width:100%;min-width:0;min-height:1.5em;max-height:var(--luzmo-prompt-box-max-height,var(--prompt-box-max-height,200px));flex:1;overflow-y:auto}.rich-input::-webkit-scrollbar{width:var(--luzmo-prompt-box-scrollbar-width,var(--prompt-box-scrollbar-width));height:var(--luzmo-prompt-box-scrollbar-width,var(--prompt-box-scrollbar-width))}.rich-input::-webkit-scrollbar-track{background:var(--luzmo-prompt-box-scrollbar-track-background,var(--prompt-box-scrollbar-track-background));border-radius:var(--luzmo-prompt-box-scrollbar-track-border-radius,var(--prompt-box-scrollbar-track-border-radius))}.rich-input::-webkit-scrollbar-thumb{background:var(--luzmo-prompt-box-scrollbar-thumb-background,var(--prompt-box-scrollbar-thumb-background));border-radius:var(--luzmo-prompt-box-scrollbar-thumb-border-radius,var(--prompt-box-scrollbar-thumb-border-radius))}.rich-input::-webkit-scrollbar-thumb:hover{background:var(--luzmo-prompt-box-scrollbar-thumb-hover-background,var(--prompt-box-scrollbar-thumb-hover-background))}.rich-input{scrollbar-width:var(--luzmo-scrollbar-width,thin);scrollbar-color:var(--luzmo-prompt-box-scrollbar-thumb-background,var(--prompt-box-scrollbar-thumb-background)) var(--luzmo-prompt-box-scrollbar-track-background,var(--prompt-box-scrollbar-track-background));padding:var(--luzmo-prompt-box-rich-input-padding,var(--prompt-box-rich-input-padding,4px 0));font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;white-space:pre-wrap;word-break:break-word;background:0 0;border:none;outline:none}.rich-input:empty:before{content:attr(data-placeholder);color:var(--luzmo-prompt-box-placeholder-color,var(--prompt-box-placeholder-color));pointer-events:none}.rich-input[contenteditable=false]{opacity:.5;cursor:default}.drag-caret{background:var(--luzmo-primary,#0064fa);pointer-events:none;border-radius:1px;width:2px}.element-badge{align-items:center;gap:var(--luzmo-prompt-box-badge-gap,var(--prompt-box-badge-gap,6px));vertical-align:baseline;padding:var(--luzmo-prompt-box-badge-padding,var(--prompt-box-badge-padding,1px 6px));background-color:var(--luzmo-prompt-box-badge-background,var(--prompt-box-badge-background,rgba(var(--luzmo-primary-rgb,0, 100, 250), .1)));color:var(--luzmo-prompt-box-badge-color,var(--prompt-box-badge-color,var(--luzmo-primary,#0064fa)));border-radius:var(--luzmo-prompt-box-badge-border-radius,var(--prompt-box-badge-border-radius,4px));font-size:var(--luzmo-prompt-box-badge-font-size,var(--prompt-box-badge-font-size,.9em));font-weight:var(--luzmo-prompt-box-badge-font-weight,var(--prompt-box-badge-font-weight,500));cursor:default;-webkit-user-select:none;user-select:none;white-space:nowrap;max-width:var(--luzmo-prompt-box-badge-max-width,var(--prompt-box-badge-max-width,200px));margin:0 1px;line-height:1.4;display:inline-flex}.element-badge-icon{flex-shrink:0;display:inline-flex}.element-badge-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.element-badge-remove{appearance:none;font:inherit;color:inherit;width:var(--luzmo-prompt-box-badge-remove-size,var(--prompt-box-badge-remove-size,14px));height:var(--luzmo-prompt-box-badge-remove-size,var(--prompt-box-badge-remove-size,14px));font-size:var(--luzmo-prompt-box-badge-remove-font-size,var(--prompt-box-badge-remove-font-size,12px));cursor:pointer;opacity:.6;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin:0;padding:0;line-height:1;transition:opacity .1s,background-color .1s;display:inline-flex}.element-badge-remove:hover{opacity:1;background-color:var(--luzmo-prompt-box-badge-remove-hover-background,var(--prompt-box-badge-remove-hover-background,#0000001a))}.element-badge-remove:focus-visible{opacity:1;outline:2px solid var(--luzmo-primary,#0064fa);outline-offset:1px}:host([single-line]) .container{align-items:center;gap:var(--luzmo-prompt-box-single-line-gap,var(--prompt-box-single-line-gap));flex-flow:wrap}:host([single-line]) .top-actions{flex-wrap:nowrap;flex-shrink:0}:host([single-line]) .attachments{max-height:var(--luzmo-prompt-box-single-line-attachments-max-height,var(--prompt-box-single-line-attachments-max-height));flex-direction:row;flex-shrink:0;align-items:center;overflow:auto hidden}:host([single-line]) .image-attachment,:host([single-line]) .file-attachment{width:var(--luzmo-prompt-box-single-line-image-size,var(--prompt-box-single-line-image-size));height:var(--luzmo-prompt-box-single-line-image-size,var(--prompt-box-single-line-image-size))}:host([single-line]) .file-attachment-icon{--luzmo-icon-size:var(--luzmo-prompt-box-single-line-file-icon-size,var(--prompt-box-single-line-file-icon-size,14px))}:host([single-line]) .input-wrapper{min-width:0}:host([single-line]) .input-field{--luzmo-text-area-min-block-size-quiet:auto;--luzmo-text-field-spacing-block-start:0px;--luzmo-text-field-spacing-block-end:0px}:host([single-line]) .rich-input{min-height:unset;padding:0}:host([single-line]) .actions-row{flex-shrink:0}:host([single-line]) .bottom-actions{flex-wrap:nowrap;flex:0}:host([single-line]) .error:not(.empty){flex-basis:100%;order:1;inline-size:100%}::slotted([slot=top-actions]),::slotted([slot=bottom-actions]){align-items:center;display:inline-flex}::slotted([slot=record-button]){display:inline-flex}::slotted([slot=submit-button]){margin-inline-start:var(--luzmo-prompt-box-submit-button-margin-inline-start,var(--prompt-box-submit-button-margin-inline-start));display:inline-flex}luzmo-overlay[part=trigger-menu-overlay]{--luzmo-overlay-min-width:0}.trigger-options{min-width:var(--luzmo-prompt-box-trigger-menu-min-width,var(--prompt-box-trigger-menu-min-width,250px));max-width:var(--luzmo-prompt-box-trigger-menu-max-width,var(--prompt-box-trigger-menu-max-width,400px));max-height:var(--luzmo-prompt-box-trigger-menu-max-height,var(--prompt-box-trigger-menu-max-height,300px));flex-direction:column;display:flex;overflow-y:auto}.trigger-options::-webkit-scrollbar{width:var(--luzmo-prompt-box-scrollbar-width,var(--prompt-box-scrollbar-width));height:var(--luzmo-prompt-box-scrollbar-width,var(--prompt-box-scrollbar-width))}.trigger-options::-webkit-scrollbar-track{background:var(--luzmo-prompt-box-scrollbar-track-background,var(--prompt-box-scrollbar-track-background));border-radius:var(--luzmo-prompt-box-scrollbar-track-border-radius,var(--prompt-box-scrollbar-track-border-radius))}.trigger-options::-webkit-scrollbar-thumb{background:var(--luzmo-prompt-box-scrollbar-thumb-background,var(--prompt-box-scrollbar-thumb-background));border-radius:var(--luzmo-prompt-box-scrollbar-thumb-border-radius,var(--prompt-box-scrollbar-thumb-border-radius))}.trigger-options::-webkit-scrollbar-thumb:hover{background:var(--luzmo-prompt-box-scrollbar-thumb-hover-background,var(--prompt-box-scrollbar-thumb-hover-background))}.trigger-options{scrollbar-width:var(--luzmo-scrollbar-width,thin);scrollbar-color:var(--luzmo-prompt-box-scrollbar-thumb-background,var(--prompt-box-scrollbar-thumb-background)) var(--luzmo-prompt-box-scrollbar-track-background,var(--prompt-box-scrollbar-track-background));background-color:var(--luzmo-prompt-box-trigger-menu-background,var(--prompt-box-trigger-menu-background,var(--luzmo-background-color,#fff)));border:1px solid var(--luzmo-prompt-box-trigger-menu-border-color,var(--prompt-box-trigger-menu-border-color,var(--luzmo-border-color,#0000001a)));border-radius:var(--luzmo-prompt-box-trigger-menu-border-radius,var(--prompt-box-trigger-menu-border-radius,var(--luzmo-border-radius-100,8px)));box-shadow:0 2px 8px var(--luzmo-prompt-box-trigger-menu-shadow-color,var(--prompt-box-trigger-menu-shadow-color,var(--luzmo-shadow-color)))}.trigger-option{align-items:center;gap:var(--luzmo-prompt-box-trigger-option-gap,var(--prompt-box-trigger-option-gap,10px));min-block-size:var(--luzmo-prompt-box-trigger-option-min-height,var(--prompt-box-trigger-option-min-height,var(--luzmo-component-height,32px)));padding-block:var(--luzmo-prompt-box-trigger-option-padding-block,var(--prompt-box-trigger-option-padding-block,4px));padding-inline:var(--luzmo-prompt-box-trigger-option-padding-inline,var(--prompt-box-trigger-option-padding-inline,10px));cursor:pointer;box-sizing:border-box;scroll-margin-block:var(--luzmo-prompt-box-trigger-option-min-height,var(--prompt-box-trigger-option-min-height,var(--luzmo-component-height,32px)));transition:background-color .1s;display:flex}.trigger-option.has-description{padding-block:var(--luzmo-prompt-box-trigger-option-description-padding-block,var(--prompt-box-trigger-option-description-padding-block,4px));min-block-size:auto}.trigger-option.hovered,.trigger-option.highlighted{background-color:var(--luzmo-prompt-box-trigger-option-background-hover,var(--prompt-box-trigger-option-background-hover,var(--luzmo-background-color-hover,#0000000f)))}.trigger-option-icon{width:var(--luzmo-prompt-box-trigger-option-icon-width,var(--prompt-box-trigger-option-icon-width,20px));color:var(--luzmo-prompt-box-trigger-option-icon-color,var(--prompt-box-trigger-option-icon-color,var(--luzmo-font-color,inherit)));font-size:var(--luzmo-prompt-box-trigger-option-icon-size,var(--prompt-box-trigger-option-icon-size,var(--luzmo-font-size,14px)));flex-shrink:0;justify-content:center;align-items:center;display:flex}.trigger-option-content{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.trigger-option-label{font-size:var(--luzmo-prompt-box-trigger-option-font-size,var(--prompt-box-trigger-option-font-size,var(--luzmo-font-size,14px)));line-height:var(--luzmo-prompt-box-trigger-option-line-height,var(--prompt-box-trigger-option-line-height,var(--luzmo-line-height,1.4)));color:var(--luzmo-prompt-box-trigger-option-color,var(--prompt-box-trigger-option-color,var(--luzmo-font-color,#333)));white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.trigger-option-description{font-size:var(--luzmo-prompt-box-trigger-option-description-font-size,var(--prompt-box-trigger-option-description-font-size,var(--luzmo-font-size-xs,12px)));line-height:var(--luzmo-prompt-box-trigger-option-description-line-height,var(--prompt-box-trigger-option-description-line-height,var(--luzmo-line-height,1.4)));color:var(--luzmo-prompt-box-trigger-option-description-color,var(--prompt-box-trigger-option-description-color,var(--luzmo-font-color,#6e6e6e)));white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.trigger-option-enter-icon{color:var(--luzmo-prompt-box-trigger-option-enter-icon-color,var(--prompt-box-trigger-option-enter-icon-color,var(--luzmo-font-color-dimmed,#0006)));flex-shrink:0;justify-content:center;align-items:center;margin-inline-start:auto;display:flex}.trigger-option-highlight{background-color:var(--luzmo-prompt-box-trigger-option-highlight-background,var(--prompt-box-trigger-option-highlight-background,rgba(var(--luzmo-primary-rgb,0, 100, 250), .12)));color:inherit;border-radius:2px;padding:0 1px}.trigger-option-header{align-items:center;gap:var(--luzmo-prompt-box-trigger-option-header-gap,var(--prompt-box-trigger-option-header-gap,10px));min-block-size:var(--luzmo-prompt-box-trigger-option-min-height,var(--prompt-box-trigger-option-min-height,var(--luzmo-component-height,32px)));padding-block:var(--luzmo-prompt-box-trigger-option-header-padding-block,var(--prompt-box-trigger-option-header-padding-block,4px));padding-inline:var(--luzmo-prompt-box-trigger-option-header-padding-inline,var(--prompt-box-trigger-option-header-padding-inline,10px));background-color:var(--luzmo-prompt-box-trigger-option-header-background,var(--prompt-box-trigger-option-header-background));border-block-start:1px solid var(--luzmo-prompt-box-trigger-option-header-border-color,var(--prompt-box-trigger-option-header-border-color,var(--luzmo-border-color,#0000001f)));border-block-end:1px solid var(--luzmo-prompt-box-trigger-option-header-border-color,var(--prompt-box-trigger-option-header-border-color,var(--luzmo-border-color,#0000001f)));box-sizing:border-box;-webkit-user-select:none;user-select:none;display:flex}.trigger-options>.trigger-option-header:first-child{border-block-start:none}.trigger-option-header-icon{width:var(--luzmo-prompt-box-trigger-option-icon-width,var(--prompt-box-trigger-option-icon-width,20px));color:var(--luzmo-prompt-box-trigger-option-header-icon-color,var(--prompt-box-trigger-option-header-icon-color,var(--luzmo-font-color,#333)));flex-shrink:0;justify-content:center;align-items:center;display:flex}.trigger-option-header-label{font-size:var(--luzmo-prompt-box-trigger-option-header-font-size,var(--prompt-box-trigger-option-header-font-size,var(--luzmo-font-size,14px)));font-weight:var(--luzmo-prompt-box-trigger-option-header-font-weight,var(--prompt-box-trigger-option-header-font-weight,normal));line-height:var(--luzmo-prompt-box-trigger-option-header-line-height,var(--prompt-box-trigger-option-header-line-height,var(--luzmo-line-height,1.4)));color:var(--luzmo-prompt-box-trigger-option-header-color,var(--prompt-box-trigger-option-header-color,var(--luzmo-font-color,#333)));white-space:nowrap;text-overflow:ellipsis;overflow:hidden}luzmo-overlay[part=trigger-menu-overlay] ::slotted(*){min-width:var(--luzmo-prompt-box-trigger-menu-min-width,var(--prompt-box-trigger-menu-min-width,250px));max-height:var(--luzmo-prompt-box-trigger-menu-max-height,var(--prompt-box-trigger-menu-max-height,300px));visibility:visible!important;opacity:1!important;pointer-events:auto!important;position:relative!important}@media (forced-colors:active){:host{--highcontrast-prompt-box-background-color:Canvas;--highcontrast-prompt-box-border-color:CanvasText;--highcontrast-prompt-box-border-color-focus:Highlight;--highcontrast-prompt-box-text-color:CanvasText}}:host{--prompt-box-font-family:var(--luzmo-font-family);--prompt-box-font-size:var(--luzmo-font-size);--prompt-box-line-height:1.5;--prompt-box-text-color:var(--luzmo-font-color);--prompt-box-background-color:var(--luzmo-background-color);--prompt-box-border-radius:var(--luzmo-border-radius-xl);--prompt-box-border-width:var(--luzmo-border-width);--prompt-box-border-color:var(--luzmo-border-color);--prompt-box-border-color-focus:var(--luzmo-primary);--prompt-box-shadow:0 2px 8px var(--luzmo-shadow-color);--prompt-box-shadow-focus:0 2px 12px rgba(var(--luzmo-primary-rgb), .15);--prompt-box-gap:var(--luzmo-spacing-5);--prompt-box-recording-gap:calc(var(--luzmo-spacing-3) + var(--luzmo-spacing-1));--prompt-box-vertical-padding:var(--luzmo-spacing-4);--prompt-box-horizontal-padding:var(--luzmo-spacing-5);--prompt-box-actions-gap:var(--luzmo-spacing-3);--prompt-box-top-actions-gap:var(--luzmo-spacing-2);--prompt-box-bottom-actions-gap:var(--luzmo-spacing-2);--prompt-box-button-group-gap:var(--luzmo-spacing-2);--prompt-box-submit-button-margin-inline-start:var(--luzmo-spacing-3);--prompt-box-max-height:200px;--prompt-box-rich-input-padding:4px 0;--prompt-box-placeholder-color:var(--luzmo-font-color-extra-dimmed);--prompt-box-animation-duration:var(--luzmo-animation-duration,.15s);--prompt-box-disabled-opacity:.5;--prompt-box-error-color:var(--luzmo-negative-color);--prompt-box-error-font-size:var(--luzmo-font-size-s);--prompt-box-error-line-height:1.4;--prompt-box-attachments-gap:var(--luzmo-spacing-2);--prompt-box-image-preview-size:64px;--prompt-box-image-border-radius:var(--luzmo-border-radius);--prompt-box-image-background:#0000000d;--prompt-box-file-icon-size:var(--luzmo-icon-size-xl);--prompt-box-file-icon-color:var(--luzmo-font-color-extra-dimmed);--prompt-box-remove-button-size:20px;--prompt-box-remove-button-background:#00000080;--prompt-box-remove-button-background-hover:#000000b3;--prompt-box-remove-button-icon-color:#fff;--prompt-box-scrollbar-width:var(--luzmo-scrollbar-size);--prompt-box-scrollbar-track-background:var(--luzmo-scrollbar-track-background);--prompt-box-scrollbar-track-border-radius:var(--luzmo-scrollbar-track-border-radius);--prompt-box-scrollbar-thumb-background:var(--luzmo-scrollbar-thumb-background);--prompt-box-scrollbar-thumb-border-radius:var(--luzmo-scrollbar-thumb-border-radius);--prompt-box-scrollbar-thumb-hover-background:var(--luzmo-scrollbar-thumb-hover-background);--prompt-box-badge-gap:6px;--prompt-box-badge-padding:1px 6px;--prompt-box-badge-background:rgba(var(--luzmo-primary-rgb,0, 100, 250), .1);--prompt-box-badge-color:var(--luzmo-primary,#0064fa);--prompt-box-badge-border-radius:4px;--prompt-box-badge-font-size:.9em;--prompt-box-badge-font-weight:500;--prompt-box-badge-max-width:200px;--prompt-box-badge-remove-size:14px;--prompt-box-badge-remove-font-size:12px;--prompt-box-badge-remove-hover-background:#0000001a;--prompt-box-waveform-gap:3px;--prompt-box-waveform-height:24px;--prompt-box-waveform-bar-width:3px;--prompt-box-waveform-bar-color:currentColor;--prompt-box-waveform-bar-radius:2px;--prompt-box-recording-duration-font-family:monospace;--prompt-box-recording-duration-font-size:14px;--prompt-box-recording-duration-font-weight:500;--prompt-box-recording-duration-color:currentColor;--prompt-box-trigger-menu-min-width:250px;--prompt-box-trigger-menu-max-width:300px;--prompt-box-trigger-menu-max-height:300px;--prompt-box-trigger-menu-background:var(--luzmo-background-color,#fff);--prompt-box-trigger-menu-border-color:var(--luzmo-border-color,#0000001a);--prompt-box-trigger-menu-border-radius:var(--luzmo-border-radius-100,8px);--prompt-box-trigger-menu-shadow-color:var(--luzmo-shadow-color);--prompt-box-single-line-gap:var(--luzmo-spacing-3);--prompt-box-single-line-attachments-max-height:32px;--prompt-box-single-line-image-size:28px;--prompt-box-single-line-file-icon-size:var(--luzmo-icon-size-s);--prompt-box-trigger-option-gap:10px;--prompt-box-trigger-option-min-height:var(--luzmo-component-height,32px);--prompt-box-trigger-option-padding-block:4px;--prompt-box-trigger-option-padding-inline:10px;--prompt-box-trigger-option-description-padding-block:4px;--prompt-box-trigger-option-background-hover:var(--luzmo-background-color-highlight,#f5f5f5);--prompt-box-trigger-option-icon-color:var(--luzmo-font-color,inherit);--prompt-box-trigger-option-icon-width:20px;--prompt-box-trigger-option-icon-size:var(--luzmo-font-size,14px);--prompt-box-trigger-option-font-size:var(--luzmo-font-size,14px);--prompt-box-trigger-option-line-height:var(--luzmo-line-height,1.4);--prompt-box-trigger-option-color:var(--luzmo-font-color,#333);--prompt-box-trigger-option-description-font-size:var(--luzmo-font-size-xs,12px);--prompt-box-trigger-option-description-line-height:var(--luzmo-line-height,1.4);--prompt-box-trigger-option-description-color:var(--luzmo-font-color,#6e6e6e);--prompt-box-trigger-option-enter-icon-color:var(--prompt-box-trigger-option-icon-color,var(--luzmo-font-color,inherit));--prompt-box-trigger-option-highlight-background:rgba(var(--luzmo-primary-rgb,0, 100, 250), .12);--prompt-box-trigger-option-header-gap:10px;--prompt-box-trigger-option-header-padding-block:4px;--prompt-box-trigger-option-header-padding-inline:10px;--prompt-box-trigger-option-header-background:var(--luzmo-background-color-highlight,#f5f5f5);--prompt-box-trigger-option-header-border-color:var(--luzmo-border-color,#0000001f);--prompt-box-trigger-option-header-icon-color:var(--luzmo-font-color,#333);--prompt-box-trigger-option-header-font-size:var(--luzmo-font-size,14px);--prompt-box-trigger-option-header-font-weight:normal;--prompt-box-trigger-option-header-line-height:var(--luzmo-line-height,1.4);--prompt-box-trigger-option-header-color:var(--luzmo-font-color,#333)}:host([size=xs]){--prompt-box-font-size:var(--luzmo-font-size-xs);--prompt-box-border-radius:var(--luzmo-border-radius);--prompt-box-vertical-padding:var(--luzmo-spacing-2);--prompt-box-horizontal-padding:var(--luzmo-spacing-3);--prompt-box-gap:var(--luzmo-spacing-3);--prompt-box-attachments-gap:var(--luzmo-spacing-1);--prompt-box-recording-gap:var(--luzmo-spacing-3);--prompt-box-max-height:120px;--prompt-box-image-preview-size:40px;--prompt-box-file-icon-size:var(--luzmo-icon-size-m);--prompt-box-remove-button-size:16px;--prompt-box-badge-font-size:.8em;--prompt-box-badge-padding:0px 3px;--prompt-box-badge-remove-size:10px;--prompt-box-badge-remove-font-size:9px}:host([size=s]){--prompt-box-font-size:var(--luzmo-font-size-s);--prompt-box-border-radius:var(--luzmo-border-radius-l);--prompt-box-vertical-padding:var(--luzmo-spacing-3);--prompt-box-horizontal-padding:var(--luzmo-spacing-4);--prompt-box-gap:var(--luzmo-spacing-4);--prompt-box-attachments-gap:var(--luzmo-spacing-1);--prompt-box-recording-gap:calc(var(--luzmo-spacing-3) + var(--luzmo-spacing-1));--prompt-box-max-height:150px;--prompt-box-image-preview-size:48px;--prompt-box-file-icon-size:var(--luzmo-icon-size-l);--prompt-box-remove-button-size:18px;--prompt-box-badge-font-size:.85em;--prompt-box-badge-padding:0px 4px;--prompt-box-badge-remove-size:12px;--prompt-box-badge-remove-font-size:10px}:host([size=l]){--prompt-box-font-size:var(--luzmo-font-size-l);--prompt-box-border-radius:var(--luzmo-border-radius-xl);--prompt-box-vertical-padding:var(--luzmo-spacing-5);--prompt-box-horizontal-padding:calc(var(--luzmo-spacing-5) + var(--luzmo-spacing-1));--prompt-box-gap:var(--luzmo-spacing-4);--prompt-box-attachments-gap:calc(var(--luzmo-spacing-2) + var(--luzmo-spacing-1));--prompt-box-recording-gap:calc(var(--luzmo-spacing-4) + var(--luzmo-spacing-1));--prompt-box-max-height:250px;--prompt-box-image-preview-size:72px;--prompt-box-file-icon-size:var(--luzmo-icon-size-xxl);--prompt-box-remove-button-size:24px;--prompt-box-badge-font-size:.9em;--prompt-box-badge-padding:2px 8px;--prompt-box-badge-remove-size:16px;--prompt-box-badge-remove-font-size:13px}:host([size=xl]){--prompt-box-font-size:var(--luzmo-font-size-xl);--prompt-box-border-radius:var(--luzmo-border-radius-xl);--prompt-box-vertical-padding:calc(var(--luzmo-spacing-5) + var(--luzmo-spacing-1));--prompt-box-horizontal-padding:calc(var(--luzmo-spacing-5) + var(--luzmo-spacing-2));--prompt-box-gap:var(--luzmo-spacing-5);--prompt-box-attachments-gap:var(--luzmo-spacing-3);--prompt-box-max-height:300px;--prompt-box-image-preview-size:96px;--prompt-box-file-icon-size:var(--luzmo-icon-size-xxl);--prompt-box-remove-button-size:28px;--prompt-box-badge-font-size:.9em;--prompt-box-badge-padding:2px 10px;--prompt-box-badge-remove-size:18px;--prompt-box-badge-remove-font-size:14px}:host([pending]){--prompt-box-actions-opacity:.75}`,$=class extends r(o,{validSizes:[`xs`,`s`,`m`,`l`,`xl`],defaultSize:`m`}){constructor(...e){super(...e),this.rows=1,this.grows=!1,this.maxRows=-1,this.recording=!1,this.hideSubmit=!1,this.disableSubmit=!1,this.singleLine=!1,this.placeholder=``,this.value=``,this.disabled=!1,this.readonly=!1,this.maxlength=-1,this.pending=!1,this.stoppable=!1,this.allowImages=!1,this.allowFiles=!1,this.acceptedFileTypes=[],this.fileIcons={},this.removeAttachmentLabel=e=>`Remove ${e}`,this.allowElements=!1,this.acceptedElementTypes=[],this._hasTopActions=!1,this._hasBottomActions=!1,this._hasError=!1,this._hasRecordButton=!1,this._hasSubmitButton=!1,this._inputFocused=!1,this._attachments=new ne(this),this._recording=new b(this),this._richInput=new j(this),this._triggerMenu=new M(this),this.handleRecordButtonSlotChange=this._slotPresenceHandler(e=>this._hasRecordButton=e),this.handleSubmitButtonSlotChange=this._slotPresenceHandler(e=>this._hasSubmitButton=e),this.handleRecordClick=e=>{let t=e.currentTarget.matches(`:focus-visible`);this._recording.start(t)},this.handleAttachmentRemoveClick=e=>{let t=e.currentTarget.dataset.attachmentId;t&&this._attachments.removeAttachment(t)},this.handleInput=e=>{let t=e.target;this.value=t.value,this.dispatchEvent(new Event(`input`,{bubbles:!0,composed:!0}))},this.handleKeydown=e=>{if(e.key===`Enter`&&!e.shiftKey){if(e.preventDefault(),this.disableSubmit)return;this._submit()}},this.handleInputFocusIn=()=>{this._inputFocused=!0},this.handleInputFocusOut=()=>{this._inputFocused=!1},this.handleRichInputEvent=e=>{this._richInput.syncValue(),this._triggerMenu.handleInput(e),this.dispatchEvent(new Event(`input`,{bubbles:!0,composed:!0}))},this.handleRichKeydown=e=>{if(!this._triggerMenu.handleKeydown(e)){if(e.key===`Enter`&&!e.shiftKey){if(e.preventDefault(),this.disableSubmit)return;this._submit();return}(e.key===`Backspace`||e.key===`Delete`)&&this._richInput.handleBadgeDelete(e.key)&&e.preventDefault()}},this.handleStopClick=()=>{this.disabled||!this.pending||!this.stoppable||this.dispatchEvent(new CustomEvent(`luzmo-stop`,{bubbles:!0,composed:!0}))},this._handleComponentFocusIn=()=>{V()&&this.classList.add(`focus-visible`)},this._handleComponentFocusOut=e=>{let t=e.relatedTarget;t instanceof Node&&(this.contains(t)||this.shadowRoot?.contains(t))||this.classList.remove(`focus-visible`)},this._handlePaste=e=>{this.handlePastedImages(e.clipboardData)},this._handleTopActionsSlotChange=this._slotPresenceHandler(e=>this._hasTopActions=e),this._handleBottomActionsSlotChange=this._slotPresenceHandler(e=>this._hasBottomActions=e),this._handleErrorSlotChange=this._slotPresenceHandler(e=>this._hasError=e)}static get styles(){return[n(we)]}get triggers(){return this._triggerMenu.triggers}set triggers(e){let t=this._triggerMenu.triggers,n=Array.isArray(e)?e:[];n.length>0&&!this.allowElements&&console.warn("[luzmo-prompt-box] `triggers` only work when `allow-elements` / allowElements is enabled (rich input is required for trigger menus)."),this._triggerMenu.triggers=n,this.requestUpdate(`triggers`,t)}get attachmentsController(){return this._attachments}get recordingController(){return this._recording}get richInputController(){return this._richInput}get triggerMenuController(){return this._triggerMenu}get hasRecordButton(){return this._hasRecordButton}get hasSubmitButton(){return this._hasSubmitButton}get segments(){return this._richInput.getSegments()}set segments(e){this._richInput.setSegments(e)}connectedCallback(){super.connectedCallback(),z(),this.addEventListener(`focusin`,this._handleComponentFocusIn),this.addEventListener(`focusout`,this._handleComponentFocusOut),this.addEventListener(`paste`,this._handlePaste)}disconnectedCallback(){super.disconnectedCallback(),B(),this.removeEventListener(`focusin`,this._handleComponentFocusIn),this.removeEventListener(`focusout`,this._handleComponentFocusOut),this.removeEventListener(`paste`,this._handlePaste)}updated(e){super.updated(e),this._richInputElement&&(this._richInput.richInputElement=this._richInputElement,this._triggerMenu.richInputElement=this._richInputElement),(e.has(`pending`)||e.has(`disabled`))&&Se(this.shadowRoot,this.disabled,this.pending),this._recording.shouldFocusFinishButton&&this._recording.isRecording&&(this._recording.shouldFocusFinishButton=!1,requestAnimationFrame(()=>{this._finishRecordingButton?.focus()}))}focus(){this.allowElements&&this._richInputElement?this._richInputElement.focus():this._inputElement?.focus()}clear(){this._triggerMenu.close(),this.value=``,this._attachments.clearAttachments(),this.allowElements&&this._richInput.clearElements()}addFiles(e){return this._attachments.addFiles(e)}removeAttachment(e){this._attachments.removeAttachment(e)}setAttachmentLoading(e,t){this._attachments.setAttachmentLoading(e,t)}clearAttachments(){this._attachments.clearAttachments()}getAttachments(){return this._attachments.getAttachments()}openFilePicker(){this._fileInput?.click()}insertElement(e,t,n,r){return this._richInput.insertElement(e,t,n,r)}removeElement(e){this._richInput.removeElement(e)}getElements(){return this._richInput.getElements()}getTopActions(){return(this.shadowRoot?.querySelector(`slot[name="top-actions"]`))?.assignedElements()??[]}getBottomActions(){return(this.shadowRoot?.querySelector(`slot[name="bottom-actions"]`))?.assignedElements()??[]}submit(){this._submit()}selectTriggerOption(e){this._triggerMenu.selectOption(e)}highlightTriggerOption(e){this._triggerMenu.highlightedIndex=e,this.requestUpdate()}_slotPresenceHandler(e){return t=>{let n=t.target;e(n.assignedNodes().length>0)}}handlePastedImages(e){return this._attachments.handlePastedImages(e)}_submit(){if(this.disabled||this.readonly||this.pending||this.disableSubmit)return;let e=this.shadowRoot?.querySelector(`slot[name="top-actions"]`),t=this.shadowRoot?.querySelector(`slot[name="bottom-actions"]`),n=e?.assignedElements()??[],r=t?.assignedElements()??[],i=Ce([...n,...r]),a={value:this.value,segments:this.segments,topActions:[...n],bottomActions:[...r],actionValues:i,attachments:[...this._attachments.getAttachments()]};this.dispatchEvent(new CustomEvent(`luzmo-submit`,{bubbles:!0,composed:!0,detail:a}))}render(){return e`
|
|
297
|
+
${xe(this)}
|
|
298
|
+
<div
|
|
299
|
+
class="container ${this._inputFocused?`input-focused`:``} ${this._richInput?.isDragOver?`drag-over`:``}"
|
|
300
|
+
part="container"
|
|
301
|
+
>
|
|
302
|
+
${H(this,this._hasTopActions,this._handleTopActionsSlotChange)}
|
|
303
|
+
<div class="input-wrapper" part="input-wrapper">
|
|
304
|
+
${pe(this)}
|
|
305
|
+
</div>
|
|
306
|
+
${be(this)}
|
|
307
|
+
${W(this,this._hasError,this._handleErrorSlotChange)}
|
|
308
|
+
<div class="actions-row" part="actions-row">
|
|
309
|
+
${U(this,this._hasBottomActions,this._handleBottomActionsSlotChange)}
|
|
310
|
+
<div class="button-group" part="button-group">
|
|
311
|
+
${K(this)} ${q(this)}
|
|
312
|
+
</div>
|
|
313
|
+
</div>
|
|
314
|
+
</div>
|
|
315
|
+
${de(this)}
|
|
316
|
+
`}};a([c({type:Number})],$.prototype,`rows`,void 0),a([c({type:Boolean,reflect:!0})],$.prototype,`grows`,void 0),a([c({type:Number,attribute:`max-rows`})],$.prototype,`maxRows`,void 0),a([c({type:Boolean,reflect:!0})],$.prototype,`recording`,void 0),a([c({type:Boolean,reflect:!0,attribute:`hide-submit`})],$.prototype,`hideSubmit`,void 0),a([c({type:Boolean,reflect:!0,attribute:`disable-submit`})],$.prototype,`disableSubmit`,void 0),a([c({type:Boolean,reflect:!0,attribute:`single-line`})],$.prototype,`singleLine`,void 0),a([c({type:String})],$.prototype,`placeholder`,void 0),a([c({type:String})],$.prototype,`value`,void 0),a([c({type:Boolean,reflect:!0})],$.prototype,`disabled`,void 0),a([c({type:Boolean,reflect:!0})],$.prototype,`readonly`,void 0),a([c({type:Number})],$.prototype,`maxlength`,void 0),a([c({type:Boolean,reflect:!0})],$.prototype,`pending`,void 0),a([c({type:Boolean,reflect:!0})],$.prototype,`stoppable`,void 0),a([c({type:Boolean,reflect:!0,attribute:`allow-images`})],$.prototype,`allowImages`,void 0),a([c({type:Boolean,reflect:!0,attribute:`allow-files`})],$.prototype,`allowFiles`,void 0),a([c({type:Array,attribute:`accepted-file-types`})],$.prototype,`acceptedFileTypes`,void 0),a([c({attribute:!1})],$.prototype,`fileIcons`,void 0),a([c({attribute:!1})],$.prototype,`removeAttachmentLabel`,void 0),a([c({type:Boolean,reflect:!0,attribute:`allow-elements`})],$.prototype,`allowElements`,void 0),a([c({type:Array,attribute:`accepted-element-types`})],$.prototype,`acceptedElementTypes`,void 0),a([c({type:Array})],$.prototype,`triggers`,null),a([s()],$.prototype,`_hasTopActions`,void 0),a([s()],$.prototype,`_hasBottomActions`,void 0),a([s()],$.prototype,`_hasError`,void 0),a([s()],$.prototype,`_hasRecordButton`,void 0),a([s()],$.prototype,`_hasSubmitButton`,void 0),a([s()],$.prototype,`_inputFocused`,void 0),a([i(`luzmo-text-field`)],$.prototype,`_inputElement`,void 0),a([i(`.rich-input`)],$.prototype,`_richInputElement`,void 0),a([i(`input[type="file"]`)],$.prototype,`_fileInput`,void 0),a([i(`.finish-recording-button`)],$.prototype,`_finishRecordingButton`,void 0),customElements.get(`luzmo-prompt-box`)||customElements.define(`luzmo-prompt-box`,$);export{Y as DEFAULT_FILE_ICONS,A as ELEMENT_MIME_TYPE,$ as LuzmoPromptBox};
|