@luzmo/lucero 1.0.3-alpha.9 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/accordion/index.cjs +1 -1
- package/components/accordion/index.js +2 -2
- package/components/{accordion-DC7cjb1c.js → accordion-BDchhAjE.js} +4 -4
- package/components/accordion-DpsYMoeb.cjs +43 -0
- package/components/action-bar/index.cjs +1 -1
- package/components/action-bar/index.js +2 -2
- package/components/{action-bar-Dn4IDXEF.js → action-bar-BhYEHEfo.js} +7 -7
- package/components/action-bar-VhZT8kQM.cjs +39 -0
- package/components/action-button/action-button.d.ts +12 -1
- package/components/action-button/index.cjs +1 -1
- package/components/action-button/index.d.ts +1 -1
- package/components/action-button/index.js +2 -2
- package/components/action-button-CWAg-5tz.cjs +22 -0
- package/components/{action-button-DC-ZFZTm.js → action-button-cULkUUi6.js} +8 -6
- package/components/action-group/index.cjs +1 -1
- package/components/action-group/index.js +2 -2
- package/components/{action-group-DYKpp-mz.js → action-group-BQ-fyPYS.js} +3 -3
- package/components/action-group-D1G30Iir.cjs +20 -0
- package/components/action-menu/index.cjs +1 -1
- package/components/action-menu/index.js +2 -2
- package/components/{action-menu-BlR6cLpi.js → action-menu-CkU-u55D.js} +21 -21
- package/components/{action-menu-C1C1Gx39.cjs → action-menu-DREgNCXt.cjs} +15 -15
- package/components/avatar/avatar.d.ts +17 -1
- package/components/avatar/index.cjs +1 -1
- package/components/avatar/index.js +2 -2
- package/components/avatar-Cu9c0sCS.cjs +34 -0
- package/components/avatar-Nb0368Wi.js +98 -0
- package/components/badge/badge.d.ts +1 -1
- package/components/badge/index.cjs +1 -1
- package/components/badge/index.js +2 -2
- package/components/badge-BzQfqgq6.cjs +23 -0
- package/components/badge-Dnkh-mfN.js +94 -0
- package/components/button/button-base.d.ts +1 -0
- package/components/button/button.d.ts +0 -1
- package/components/button/index.cjs +1 -1
- package/components/button/index.js +3 -3
- package/components/button-BJ0Y6wlM.cjs +20 -0
- package/components/{button-D1a4B85S.js → button-BtWr5Lag.js} +6 -6
- package/components/{button-base-CzTYjZND.js → button-base-DsUg0bJB.js} +26 -12
- package/components/{button-base-Dj2qQqwO.cjs → button-base-aTiE83bl.cjs} +3 -3
- package/components/button-group/index.cjs +1 -1
- package/components/button-group/index.js +2 -2
- package/components/button-group-6M8M-TUI.cjs +18 -0
- package/components/{button-group-BiQxYcQ2.js → button-group-DaANSInm.js} +2 -2
- package/components/calendar/index.cjs +1 -1
- package/components/calendar/index.js +2 -2
- package/components/{calendar-BNRjXf9B.js → calendar-CXjdC7jm.js} +5 -9
- package/components/calendar-DSlKZZCR.cjs +138 -0
- package/components/chat-message/chat-message.d.ts +0 -1
- package/components/chat-message/index.cjs +1 -1
- package/components/chat-message/index.js +2 -2
- package/components/chat-message-7cx2Bpo8.cjs +148 -0
- package/components/{chat-message-DJgocVNj.js → chat-message-CJ7Xk7tz.js} +757 -545
- package/components/chat-message-group/index.cjs +1 -1
- package/components/chat-message-group/index.js +2 -2
- package/components/chat-message-group-CzCwyW7F.cjs +24 -0
- package/components/{chat-message-group-B4U2MzHx.js → chat-message-group-D7vdn2gG.js} +2 -2
- package/components/checkbox/checkbox.d.ts +7 -0
- package/components/checkbox/index.cjs +1 -1
- package/components/checkbox/index.js +2 -2
- package/components/{checkbox-CPS-tR_i.js → checkbox-6YzkdHR4.js} +9 -5
- package/components/checkbox-DdatW4xE.cjs +25 -0
- package/components/{checkbox-mixin-C5sLMo5L.js → checkbox-mixin-jqmrh48O.js} +2 -2
- package/components/{checkbox-mixin-D4HeLrMj.cjs → checkbox-mixin-rFRXqyrK.cjs} +3 -3
- package/components/{close-button-MgaJT7yO.js → close-button-WomHVbgz.js} +4 -4
- package/components/close-button-hicleVjQ.cjs +18 -0
- package/components/color-area/index.cjs +1 -1
- package/components/color-area/index.js +2 -2
- package/components/{color-area-mWOctRNt.js → color-area-BRrtUbvH.js} +6 -6
- package/components/color-area-ayGmH8dj.cjs +80 -0
- package/components/color-controller-DbyPc33Y.cjs +18 -0
- package/components/color-field/index.cjs +1 -1
- package/components/color-field/index.js +2 -2
- package/components/{color-field-D7_7z2A2.cjs → color-field-BNGnBRSO.cjs} +2 -2
- package/components/{color-field-CxdIoSq6.js → color-field-CUdHxonc.js} +3 -3
- package/components/color-handle/index.cjs +1 -1
- package/components/color-handle/index.js +2 -2
- package/components/color-handle-DIoVrLRF.cjs +24 -0
- package/components/{color-handle-BOusOFFx.js → color-handle-TKbLs1ax.js} +2 -2
- package/components/color-loupe/index.cjs +1 -1
- package/components/color-loupe/index.js +2 -2
- package/components/{color-loupe-bEzi2P0y.js → color-loupe-DAxrNPJz.js} +2 -2
- package/components/color-loupe-sY1wOisV.cjs +56 -0
- package/components/color-menu/index.cjs +1 -1
- package/components/color-menu/index.js +2 -2
- package/components/color-menu-DOq9PAWG.cjs +89 -0
- package/components/{color-menu-Cryp_5Gh.js → color-menu-iKU6Vw8a.js} +24 -24
- package/components/color-palette/index.cjs +1 -1
- package/components/color-palette/index.js +2 -2
- package/components/color-palette-CidHsmE0.cjs +18 -0
- package/components/{color-palette-BAdaNySC.js → color-palette-FQyIMSwP.js} +3 -3
- package/components/color-palette-group/index.cjs +1 -1
- package/components/color-palette-group/index.js +2 -2
- package/components/color-palette-group-B4r4tPfY.cjs +28 -0
- package/components/{color-palette-group-D8Mavsd2.js → color-palette-group-o6bnF-Ir.js} +3 -3
- package/components/color-picker/index.cjs +1 -1
- package/components/color-picker/index.js +2 -2
- package/components/{color-picker-DgjqWiVd.js → color-picker-Bw5UKyME.js} +6 -6
- package/components/{color-picker-DL7rqWnW.cjs → color-picker-D3WFls0M.cjs} +2 -2
- package/components/color-slider/index.cjs +1 -1
- package/components/color-slider/index.js +2 -2
- package/components/color-slider-BiVpn9_U.cjs +57 -0
- package/components/{color-slider-ihAIFt5p.js → color-slider-BtPNTmQu.js} +6 -5
- package/components/{condition-attribute-with-id-DauPaLSS.cjs → condition-attribute-with-id-Cw92IbcP.cjs} +1 -1
- package/components/date-range-picker/index.cjs +1 -1
- package/components/date-range-picker/index.js +2 -2
- package/components/date-range-picker-DMq8EaiB.cjs +180 -0
- package/components/{date-range-picker-CcDzRDm5.js → date-range-picker-DaHFLwQL.js} +13 -13
- package/components/date-time-picker/index.cjs +1 -1
- package/components/date-time-picker/index.js +2 -2
- package/components/date-time-picker-DdtcziBG.cjs +105 -0
- package/components/{date-time-picker-PHKHDgL9.js → date-time-picker-hjeFVUz9.js} +11 -11
- package/components/{decorate-aGxJUVxg.js → decorate-CkCg3wfh.js} +1 -1
- package/components/decorate-Dq34MBGe.cjs +18 -0
- package/components/{dependency-manger-CHy9t__e.cjs → dependency-manger-BSaHw9ju.cjs} +1 -1
- package/components/divider/index.cjs +1 -1
- package/components/divider/index.js +2 -2
- package/components/{divider-cU0lVwOp.js → divider-CGbT-CL8.js} +3 -3
- package/components/divider-wana0uPI.cjs +18 -0
- package/components/{divider.module-CL60P_z8.cjs → divider.module-BV6tmpOY.cjs} +1 -1
- package/components/{element-resolution-C0aiOB0Y.cjs → element-resolution-BjaAlqwX.cjs} +1 -1
- package/components/field-group/index.cjs +1 -1
- package/components/field-group/index.js +2 -2
- package/components/{field-group-C7ROsWq3.js → field-group-C_kRq7pJ.js} +2 -2
- package/components/{field-group-OcI5Lgu7.cjs → field-group-Dd5xYczm.cjs} +2 -2
- package/components/field-label/index.cjs +1 -1
- package/components/field-label/index.js +2 -2
- package/components/{field-label-CtGCEmdp.js → field-label-B9S41b7c.js} +5 -5
- package/components/field-label-C5vdJ1ys.cjs +25 -0
- package/components/focus-group-C8lOjbi9.cjs +18 -0
- package/components/{focus-group-BshI1RpM.js → focus-group-DVPa1zxz.js} +1 -1
- package/components/{focus-visible-CrooVCUu.js → focus-visible-Bt2uDmuM.js} +2 -2
- package/components/focus-visible-DNHNlrty.cjs +18 -0
- package/components/focusable-B6h03pAe.cjs +18 -0
- package/components/{focusable-BmS8IzhH.js → focusable-DuP0-Kuy.js} +2 -2
- package/components/{focusable-selectors-5n5liBn0.cjs → focusable-selectors-DJqGLTJo.cjs} +1 -1
- package/components/{get-label-from-slot-LO_DZP60.cjs → get-label-from-slot-TV4APBYs.cjs} +1 -1
- package/components/icon/index.cjs +1 -1
- package/components/icon/index.js +2 -2
- package/components/icon-CSqR-OOO.cjs +18 -0
- package/components/{icon-CwBAE1eU.js → icon-DB1DRieA.js} +5 -2
- package/components/index.cjs +1 -1
- package/components/index.js +71 -69
- package/components/infield-button/index.cjs +1 -1
- package/components/infield-button/index.js +2 -2
- package/components/{infield-button-BvKsbtKr.js → infield-button-BmGfFDDA.js} +3 -3
- package/components/infield-button-Cdee_UPX.cjs +22 -0
- package/components/label/index.cjs +1 -1
- package/components/label/index.js +2 -2
- package/components/{label-ClJE2esm.js → label-B1HYQ4Pp.js} +1 -1
- package/components/label-DPG13Ib0.cjs +18 -0
- package/components/{language-resolution-BYemISJC.cjs → language-resolution-BUeKpSce.cjs} +1 -1
- package/components/{like-anchor-BZJXts_H.cjs → like-anchor-BX4PSB3d.cjs} +2 -2
- package/components/{like-anchor-DeOXX-MX.js → like-anchor-DXCaEv7O.js} +1 -1
- package/components/{manage-help-text-CF0xBh0F.js → manage-help-text-ByLb0QYX.js} +13 -10
- package/components/{manage-help-text-D9VbYRf_.cjs → manage-help-text-DtFJsl0k.cjs} +3 -3
- package/components/menu/index.cjs +1 -1
- package/components/menu/index.js +2 -2
- package/components/menu/menu-item.d.ts +1 -1
- package/components/menu/menu.d.ts +12 -1
- package/components/{menu-Cdz2FEB7.js → menu-C9ogB7Bq.js} +82 -65
- package/components/menu-DXONqtwu.cjs +108 -0
- package/components/multi-language-field/index.cjs +1 -1
- package/components/multi-language-field/index.js +2 -2
- package/components/{multi-language-field-DmoMyCBH.cjs → multi-language-field-Cfy3M_ZS.cjs} +2 -2
- package/components/{multi-language-field-BzY75rOY.js → multi-language-field-DhQ98r2D.js} +4 -4
- package/components/notice/index.cjs +18 -0
- package/components/notice/index.d.ts +8 -0
- package/components/notice/index.js +25 -0
- package/components/notice/notice.d.ts +121 -0
- package/components/notice-BeL9oE94.js +218 -0
- package/components/notice-COZLmk94.cjs +60 -0
- package/components/number-field/index.cjs +1 -1
- package/components/number-field/index.js +2 -2
- package/components/number-field-D19qjVbk.cjs +57 -0
- package/components/{number-field-DrJURvoW.js → number-field-DjvWkjL8.js} +42 -42
- package/components/observe-slot-presence-CS8pMePk.cjs +18 -0
- package/components/observe-slot-text-CvL-2ey3.cjs +18 -0
- package/components/{observe-slot-text-Ddf1OC6F.js → observe-slot-text-Db8Kx3P-.js} +7 -7
- package/components/options/index.cjs +1 -1
- package/components/options/index.d.ts +5 -3
- package/components/options/index.js +2 -2
- package/components/options/option.d.ts +0 -1
- package/components/{options-BGwKMvng.js → options-C1MoEq26.js} +9 -9
- package/components/{options-CKi3VkNR.cjs → options-yWbz0D6O.cjs} +3 -3
- package/components/overlay/index.cjs +1 -1
- package/components/overlay/index.d.ts +3 -2
- package/components/overlay/index.js +4 -4
- package/components/overlay/overlay-trigger.d.ts +1 -1
- package/components/overlay-B-gaxspw.cjs +47 -0
- package/components/{overlay-BGI4wOGe.cjs → overlay-CPZvL0Ic.cjs} +2 -2
- package/components/{overlay-BbQuYBxp.js → overlay-CyBsHuOL.js} +20 -15
- package/components/{overlay-mdk7-NOt.js → overlay-DdIs4w5M.js} +3 -3
- package/components/{pending-state-DFcNf5rd.js → pending-state-BeG7qBDP.js} +1 -1
- package/components/{pending-state-DIeF18qg.cjs → pending-state-a527YMWV.cjs} +2 -2
- package/components/picker/index.cjs +1 -1
- package/components/picker/index.js +2 -2
- package/components/picker/picker.d.ts +1 -0
- package/components/{picker-DOiM_cUu.js → picker-Bufw-biD.js} +64 -66
- package/components/picker-D6ZM08K8.cjs +124 -0
- package/components/picker-button/index.cjs +1 -1
- package/components/picker-button/index.js +2 -2
- package/components/{picker-button-VAxzuhhg.js → picker-button-CF6yD_1d.js} +5 -5
- package/components/picker-button-Dh2gGZ8R.cjs +37 -0
- package/components/platform-BAjeJp2W.cjs +18 -0
- package/components/{platform-D4V_cOJF.js → platform-Ce9pNsR9.js} +2 -2
- package/components/popover/index.cjs +1 -1
- package/components/popover/index.js +2 -2
- package/components/{popover-DyC9xGhX.js → popover-DTsrgH-f.js} +4 -4
- package/components/popover-DWWYpY-k.cjs +30 -0
- package/components/progress-bar/index.cjs +1 -1
- package/components/progress-bar/index.js +2 -2
- package/components/{progress-bar-DHgFRml1.js → progress-bar-BJO8j1aX.js} +9 -6
- package/components/progress-bar-C7wJ5bxS.cjs +34 -0
- package/components/progress-circle/index.cjs +1 -1
- package/components/progress-circle/index.js +2 -2
- package/components/{progress-circle-Cg_ua9Ff.js → progress-circle-BVToDWX8.js} +3 -3
- package/components/progress-circle-DyApSKdm.cjs +33 -0
- package/components/progress-steps/index.cjs +1 -1
- package/components/progress-steps/index.js +2 -2
- package/components/progress-steps-Ba4VbAKR.cjs +96 -0
- package/components/{progress-steps-Da8aZWx3.js → progress-steps-nJ8Xw-nG.js} +10 -10
- package/components/prompt-box/index.cjs +1 -1
- package/components/prompt-box/index.js +2 -2
- package/components/prompt-box/prompt-box-templates.d.ts +1 -0
- package/components/prompt-box/prompt-box.d.ts +3 -0
- package/components/prompt-box-D358CWoY.cjs +314 -0
- package/components/{prompt-box-DahvVbcc.js → prompt-box-y7qWHF3P.js} +102 -96
- package/components/question-box/index.cjs +18 -0
- package/components/question-box/index.d.ts +11 -0
- package/components/question-box/index.js +25 -0
- package/components/question-box/question-box-elicitation.d.ts +58 -0
- package/components/question-box/question-box-model.d.ts +25 -0
- package/components/question-box/question-box-templates.d.ts +65 -0
- package/components/question-box/question-box.d.ts +182 -0
- package/components/question-box/types.d.ts +124 -0
- package/components/question-box-9F6Ppakl.js +1171 -0
- package/components/question-box-DaAgC3_D.cjs +401 -0
- package/components/radio/index.cjs +1 -1
- package/components/radio/index.js +2 -2
- package/components/radio/radio-group.d.ts +5 -1
- package/components/radio/radio.d.ts +7 -1
- package/components/{radio-BzEPGUmQ.js → radio-DRI4on-W.js} +30 -26
- package/components/radio-O3a1rmCe.cjs +22 -0
- package/components/{random-id-B51lUxUB.cjs → random-id-BcUJAxUZ.cjs} +1 -1
- package/components/{random-id-Dd4boCPV.js → random-id-CiMDyX7v.js} +1 -1
- package/components/{roving-tabindex-B7x5ePUB.cjs → roving-tabindex-BoPao4td.cjs} +1 -1
- package/components/{roving-tabindex-BP6mQbXf.js → roving-tabindex-pomAn3z-.js} +1 -1
- package/components/{scaled-indicator-Bl-3A2gz.cjs → scaled-indicator-DLJIztx0.cjs} +2 -2
- package/components/search/index.cjs +1 -1
- package/components/search/index.js +2 -2
- package/components/search-B2DQb14U.js +100 -0
- package/components/search-CsNvKd8x.cjs +47 -0
- package/components/segments-factory-DtPyN5sh.cjs +18 -0
- package/components/select/index.cjs +1 -1
- package/components/select/index.js +2 -2
- package/components/select-B_E-w1a2.cjs +158 -0
- package/components/{select-C2gh8zRr.js → select-CE6pIRX3.js} +12 -12
- package/components/{chunk-D-qHiVGv.cjs → sized-mixin-BT7cv-fT.cjs} +1 -1
- package/components/{sized-mixin-DaBoZkVS.js → sized-mixin-DzQTebN-.js} +1 -1
- package/components/skeleton-loader/index.cjs +1 -1
- package/components/skeleton-loader/index.js +2 -2
- package/components/{skeleton-loader-oJVESWls.js → skeleton-loader-C0LH3prK.js} +1 -1
- package/components/skeleton-loader-Cm50Ztzk.cjs +18 -0
- package/components/slider/controllers/slider-handle-controller.d.ts +79 -0
- package/components/slider/index.cjs +1 -1
- package/components/slider/index.d.ts +5 -1
- package/components/slider/index.js +3 -3
- package/components/slider/slider-control-templates.d.ts +36 -0
- package/components/slider/slider-handle.d.ts +62 -0
- package/components/slider/slider-model.d.ts +16 -0
- package/components/slider/slider-templates.d.ts +6 -0
- package/components/slider/slider.d.ts +197 -19
- package/components/slider/types.d.ts +57 -0
- package/components/slider-CDrXecqO.cjs +135 -0
- package/components/slider-CfgH3NK8.js +921 -0
- package/components/{slottable-request-event-gAcEQan2.cjs → slottable-request-event-C6eb7Ch3.cjs} +1 -1
- package/components/status-light/index.cjs +1 -1
- package/components/status-light/index.js +2 -2
- package/components/{status-light-DXWPBufE.js → status-light-BlfBJpqa.js} +2 -2
- package/components/status-light-Bu0G8-lH.cjs +21 -0
- package/components/strategies-BwNbUXYS.cjs +18 -0
- package/components/{strategies-DhxJGIZT.js → strategies-Cl59wdNZ.js} +21 -19
- package/components/streaming-listener-Bfyk6Fsx.cjs +18 -0
- package/components/swatch/index.cjs +1 -1
- package/components/swatch/index.js +2 -2
- package/components/{swatch-BLuV-hlF.js → swatch-C2ty27bJ.js} +4 -4
- package/components/{swatch-G70JUe6I.cjs → swatch-DUmBmg4S.cjs} +2 -2
- package/components/switch/index.cjs +1 -1
- package/components/switch/index.js +2 -2
- package/components/switch-B-gu-War.cjs +22 -0
- package/components/{switch-CSuMgmAh.js → switch-DOuXlFwI.js} +5 -5
- package/components/tabs/index.cjs +1 -1
- package/components/tabs/index.js +2 -2
- package/components/tabs/tabs.d.ts +1 -2
- package/components/{tabs-Jo_qqM_H.cjs → tabs-CcnIX4jQ.cjs} +2 -2
- package/components/{tabs-B54ELQtU.js → tabs-D1puCPrL.js} +11 -11
- package/components/tags/index.cjs +1 -1
- package/components/tags/index.js +2 -2
- package/components/tags/tag.d.ts +4 -3
- package/components/{tags-Bpl4u-eo.js → tags-Bw-y2Wfl.js} +26 -26
- package/components/tags-Cr8ObbWn.cjs +47 -0
- package/components/text-field/help-text-manager.d.ts +3 -1
- package/components/text-field/help-text.d.ts +4 -0
- package/components/text-field/index.cjs +1 -1
- package/components/text-field/index.js +3 -3
- package/components/text-field/manage-help-text.d.ts +2 -1
- package/components/text-field/text-field.d.ts +9 -0
- package/components/{text-field-FJr8ZUhI.cjs → text-field-3fDtTQkR.cjs} +2 -2
- package/components/{text-field-BoGAvXvh.js → text-field-C2MHZbTp.js} +3 -3
- package/components/{text-field-Cs8HYRYL.js → text-field-CmSym2QK.js} +5 -5
- package/components/text-field-wJK2bzMT.cjs +21 -0
- package/components/{text-field.module-Btsve-VN.js → text-field.module-BHhBReKL.js} +1 -1
- package/components/{text-field.module-D5oDP7MB.cjs → text-field.module-l8CaTCwE.cjs} +1 -1
- package/components/toast/index.cjs +1 -1
- package/components/toast/index.js +2 -2
- package/components/toast-BPhdMJTx.cjs +51 -0
- package/components/{toast-Bd0fleYT.js → toast-D90C9Cim.js} +4 -4
- package/components/tooltip/index.cjs +1 -1
- package/components/tooltip/index.js +2 -2
- package/components/{tooltip-CVSSKlDP.js → tooltip-Byl1h4nN.js} +4 -4
- package/components/tooltip-Sm0pruxL.cjs +45 -0
- package/components/top-nav/index.cjs +1 -1
- package/components/top-nav/index.js +2 -2
- package/components/{top-nav-B3w3DZ56.js → top-nav-B9YKdtFB.js} +7 -11
- package/components/top-nav-BcZLCBP_.cjs +41 -0
- package/components/utils.cjs +1 -1
- package/components/utils.js +7 -7
- package/components/{voice-recorder-BUtmSvPO.cjs → voice-recorder-B1tBrGTV.cjs} +1 -1
- package/custom-elements.json +1 -1
- package/index.d.ts +2 -0
- package/package.json +15 -4
- package/utils/button-interaction-controllers/interaction-controller.d.ts +4 -2
- package/utils/reactive-controllers/match-media.d.ts +1 -0
- package/components/accordion-BHBIfsLU.cjs +0 -43
- package/components/action-bar-BSMX042X.cjs +0 -39
- package/components/action-button-Cr_QN4On.cjs +0 -22
- package/components/action-group-CH8FTW0i.cjs +0 -20
- package/components/avatar-CyY_ZSD0.js +0 -65
- package/components/avatar-PulwjkMI.cjs +0 -24
- package/components/badge-D1Ry32wi.cjs +0 -23
- package/components/badge-D6p2hPj8.js +0 -94
- package/components/button-C5hcfigl.cjs +0 -20
- package/components/button-group-DIz5TZvc.cjs +0 -18
- package/components/calendar-BWArK3rh.cjs +0 -142
- package/components/chat-message-CNE-mGuP.cjs +0 -149
- package/components/chat-message-group-COmhCN-R.cjs +0 -24
- package/components/checkbox-DFwDrIdY.cjs +0 -25
- package/components/close-button-_EXjp6_m.cjs +0 -18
- package/components/color-area-C3Y2d5cu.cjs +0 -80
- package/components/color-controller-DueaXfnX.cjs +0 -18
- package/components/color-handle-Cka48yPY.cjs +0 -24
- package/components/color-loupe-DMk8uWZW.cjs +0 -56
- package/components/color-menu-BAKmi_EI.cjs +0 -89
- package/components/color-palette-349EkPMg.cjs +0 -18
- package/components/color-palette-group-BvP09zmT.cjs +0 -28
- package/components/color-slider-DxjJ72ue.cjs +0 -57
- package/components/date-range-picker-A-XRRg1X.cjs +0 -180
- package/components/date-time-picker-Ca9GEA4N.cjs +0 -105
- package/components/decorate-B2wePfNm.cjs +0 -18
- package/components/divider-Dn8XqbB6.cjs +0 -18
- package/components/field-label-BCl6R1uO.cjs +0 -25
- package/components/focus-group-SF8Kj7iB.cjs +0 -18
- package/components/focus-visible-B0NNezGc.cjs +0 -18
- package/components/focusable-CupEoHmn.cjs +0 -18
- package/components/icon-B7hKwn_q.cjs +0 -18
- package/components/infield-button-D5cuBWE5.cjs +0 -22
- package/components/label-CqolZbJo.cjs +0 -18
- package/components/menu-DFKS4sRU.cjs +0 -108
- package/components/number-field-BmWODnnR.cjs +0 -57
- package/components/observe-slot-presence-Dx8hzNzK.cjs +0 -18
- package/components/observe-slot-text-BhTcGuHY.cjs +0 -18
- package/components/overlay-DU_p8MNs.cjs +0 -47
- package/components/picker-CssPvvau.cjs +0 -123
- package/components/picker-button-adl1JO5u.cjs +0 -37
- package/components/platform-B7Sk7Qon.cjs +0 -18
- package/components/popover-dgL04x6P.cjs +0 -30
- package/components/progress-bar-BR28tISC.cjs +0 -31
- package/components/progress-circle-DuzwUiGN.cjs +0 -33
- package/components/progress-steps-WriXaZpE.cjs +0 -96
- package/components/prompt-box-DfTe3nG0.cjs +0 -311
- package/components/radio-d-2GUbYE.cjs +0 -22
- package/components/search-CCvT87FX.cjs +0 -47
- package/components/search-Dtff2EzC.js +0 -100
- package/components/segments-factory-CHo9oQw7.cjs +0 -18
- package/components/select-qAKOLhmQ.cjs +0 -158
- package/components/sized-mixin-StFA4y0J.cjs +0 -18
- package/components/skeleton-loader-dNRfq6lt.cjs +0 -18
- package/components/slider-D8w2ipBg.cjs +0 -18
- package/components/slider-Fy-VeKrU.js +0 -96
- package/components/status-light-BG_kopZQ.cjs +0 -21
- package/components/strategies-kuvLVIKO.cjs +0 -18
- package/components/streaming-listener-BnDW38lt.cjs +0 -18
- package/components/switch-nuCOB2P3.cjs +0 -22
- package/components/tags-Dj7Xm3KI.cjs +0 -47
- package/components/text-field-A4Obzs4l.cjs +0 -21
- package/components/toast-NZ0Z1lz9.cjs +0 -51
- package/components/tooltip-6y-g7e9V.cjs +0 -45
- package/components/top-nav-DZO8yZs6.cjs +0 -45
- /package/components/{color-controller-G2_v2xSl.js → color-controller-Rg_Zl0sT.js} +0 -0
- /package/components/{condition-attribute-with-id-Duo51HZ7.js → condition-attribute-with-id-BdnTdWKz.js} +0 -0
- /package/components/{dependency-manger-DMrulWcJ.js → dependency-manger-wHEXoU92.js} +0 -0
- /package/components/{divider.module-C65RfSUa.js → divider.module-CPEKsaqR.js} +0 -0
- /package/components/{element-resolution-Bs1x89vU.js → element-resolution-gap51AVo.js} +0 -0
- /package/components/{focusable-selectors-Bg60_Kra.js → focusable-selectors-BWpiuXz5.js} +0 -0
- /package/components/{get-label-from-slot-5vVnfSgN.js → get-label-from-slot-Bo9mqYCZ.js} +0 -0
- /package/components/{language-resolution-BpfGTC29.js → language-resolution-DR30FsWE.js} +0 -0
- /package/components/{observe-slot-presence-BCqd3VSd.js → observe-slot-presence-BKY6n06-.js} +0 -0
- /package/components/{rolldown-runtime-CAFD8bLK.js → rolldown-runtime-Dy4uBu1J.js} +0 -0
- /package/components/{scaled-indicator-fMYan6VK.js → scaled-indicator-C-TupV4L.js} +0 -0
- /package/components/{segments-factory-D0IveW-q.js → segments-factory-BCRi1NKb.js} +0 -0
- /package/components/{slottable-request-event-DZ2Z_BLk.js → slottable-request-event-MRSZbgTu.js} +0 -0
- /package/components/{streaming-listener-2NcP7ys7.js → streaming-listener-CtcMpYfS.js} +0 -0
- /package/components/{voice-recorder-477xPHRU.js → voice-recorder-CTg3kRxx.js} +0 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/*! * Lucero - The design system for Luzmo.
|
|
2
|
+
*
|
|
3
|
+
* Copyright © 2025 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
|
+
if (typeof document < "u" && !document.querySelector("style[data-luzmo-vars]")) {
|
|
20
|
+
let e = document.createElement("style");
|
|
21
|
+
e.setAttribute("data-luzmo-vars", ""), e.textContent = "html{--luzmo-animation-duration: 0.15s;--luzmo-border-color: rgba(var(--luzmo-border-color-rgb), 0.1);--luzmo-border-color-hover: rgba(var(--luzmo-border-color-rgb), 0.15);--luzmo-border-color-down: rgba(var(--luzmo-border-color-rgb), 0.3);--luzmo-border-color-focus: rgba(var(--luzmo-border-color-rgb), 0.15);--luzmo-border-color-rgb: 0, 0, 0;--luzmo-border-color-full: rgb(180, 180, 180);--luzmo-border-color-full-hover: color-mix(in oklch, var(--luzmo-border-color-full), black 25%);--luzmo-border-color-full-down: color-mix(in oklch, var(--luzmo-border-color-full), black 45%);--luzmo-border-color-full-focus: color-mix(in oklch, var(--luzmo-border-color-full), black 25%);--luzmo-border-color-disabled: #dddddd;--luzmo-border-radius: 6px;--luzmo-border-radius-s: 4px;--luzmo-border-radius-l: 8px;--luzmo-border-radius-xl: 12px;--luzmo-border-radius-full: 999rem;--luzmo-border-width: 1px;--luzmo-shadow-color-rgb: 0, 0, 0;--luzmo-shadow-opacity: 0.1;--luzmo-shadow-color: rgba( var(--luzmo-shadow-color-rgb), var(--luzmo-shadow-opacity) );--luzmo-font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", Helvetica, Arial, sans-serif;--luzmo-font-size-xs: 10px;--luzmo-font-size-s: 12px;--luzmo-font-size-m: 14px;--luzmo-font-size: 14px;--luzmo-font-size-l: 16px;--luzmo-font-size-xl: 18px;--luzmo-font-size-xxl: 20px;--luzmo-font-style: normal;--luzmo-line-height: normal;--luzmo-font-weight: 400;--luzmo-font-weight-semibold: 500;--luzmo-font-weight-bold: 600;--luzmo-font-color: #333;--luzmo-font-color-disabled: var(--luzmo-disabled-color);--luzmo-font-color-extra-dimmed: #888;--luzmo-font-color-hover: color-mix(in oklch, var(--luzmo-font-color), black 8%);--luzmo-font-color-down: color-mix(in oklch, var(--luzmo-font-color), black 20%);--luzmo-font-color-focus: color-mix(in oklch, var(--luzmo-font-color), black 8%);--luzmo-primary: #4434ff;--luzmo-primary-hover: color-mix(in oklch, var(--luzmo-primary), black 8%);--luzmo-primary-down: color-mix(in oklch, var(--luzmo-primary), black 20%);--luzmo-primary-focus: color-mix(in oklch, var(--luzmo-primary), black 8%);--luzmo-primary-inverse-color: #ffffff;--luzmo-accent-on-subtle-color: var(--luzmo-primary);--luzmo-primary-rgb: 68, 52, 255;--luzmo-background-color: #ffffff;--luzmo-background-color-rgb: 255, 255, 255;--luzmo-background-color-disabled: #eeeeee;--luzmo-background-color-hover: color-mix(in oklch, color-mix(in oklch, var(--luzmo-background-color), var(--luzmo-primary) 5%), black 1.5%);--luzmo-background-color-down: color-mix(in oklch, color-mix(in oklch, var(--luzmo-background-color), var(--luzmo-primary) 7%), black 1%);--luzmo-background-color-focus: color-mix(in oklch, color-mix(in oklch, var(--luzmo-background-color), var(--luzmo-primary) 5%), black 1.5%);--luzmo-background-color-highlight: rgb(240, 240, 240);--luzmo-background-color-highlight-disabled: rgb(245, 245, 245);--luzmo-background-color-highlight-hover: color-mix(in oklch, var(--luzmo-background-color-highlight), black 10%);--luzmo-background-color-highlight-down: color-mix(in oklch, var(--luzmo-background-color-highlight), black 20%);--luzmo-background-color-highlight-focus: color-mix(in oklch, var(--luzmo-background-color-highlight), black 10%);--luzmo-secondary: #d000d0;--luzmo-secondary-hover: color-mix(in oklch, var(--luzmo-secondary), black 8%);--luzmo-secondary-down: color-mix(in oklch, var(--luzmo-secondary), black 20%);--luzmo-secondary-focus: color-mix(in oklch, var(--luzmo-secondary), black 8%);--luzmo-secondary-inverse-color: #ffffff;--luzmo-secondary-rgb: 208, 0, 208;--luzmo-scrollbar-size: 6px;--luzmo-scrollbar-thumb-background: rgba(var(--luzmo-border-color-rgb), 0.3);--luzmo-scrollbar-thumb-border-radius: var(--luzmo-border-radius-s);--luzmo-scrollbar-thumb-hover-background: rgba( var(--luzmo-border-color-rgb), 0.4 );--luzmo-scrollbar-track-background: transparent;--luzmo-scrollbar-track-border-radius: var(--luzmo-border-radius-s);--luzmo-scrollbar-width: thin;--luzmo-negative-color: #ca221c;--luzmo-negative-color-hover: color-mix(in oklch, var(--luzmo-negative-color), black 8%);--luzmo-negative-color-down: color-mix(in oklch, var(--luzmo-negative-color), black 20%);--luzmo-negative-color-focus: color-mix(in oklch, var(--luzmo-negative-color), black 8%);--luzmo-negative-on-subtle-color: var(--luzmo-negative-color);--luzmo-negative-color-rgb: 202, 34, 28;--luzmo-negative-inverse-color: #ffffff;--luzmo-positive-color: rgb(18, 133, 90);--luzmo-positive-color-hover: color-mix(in oklch, var(--luzmo-positive-color), black 8%);--luzmo-positive-color-down: color-mix(in oklch, var(--luzmo-positive-color), black 20%);--luzmo-positive-color-focus: color-mix(in oklch, var(--luzmo-positive-color), black 8%);--luzmo-positive-on-subtle-color: color-mix( in oklch, var(--luzmo-positive-color), var(--luzmo-font-color) 11% );--luzmo-positive-color-rgb: 18, 133, 90;--luzmo-positive-inverse-color: #ffffff;--luzmo-selected-color: rgb(110, 110, 110);--luzmo-selected-color-hover: color-mix(in oklch, var(--luzmo-selected-color), black 25%);--luzmo-selected-color-down: color-mix(in oklch, var(--luzmo-selected-color), black 45%);--luzmo-selected-color-focus: color-mix(in oklch, var(--luzmo-selected-color), black 25%);--luzmo-selected-color-hard: #1e1e1e;--luzmo-selected-color-hard-hover: color-mix(in oklch, var(--luzmo-selected-color-hard), black 25%);--luzmo-selected-color-hard-down: color-mix(in oklch, var(--luzmo-selected-color-hard), black 45%);--luzmo-selected-color-hard-focus: color-mix(in oklch, var(--luzmo-selected-color-hard), black 25%);--luzmo-neutral-on-subtle-color: var(--luzmo-selected-color-hard);--luzmo-informative-color: #1670dd;--luzmo-informative-color-hover: color-mix(in oklch, var(--luzmo-informative-color), black 8%);--luzmo-informative-color-down: color-mix(in oklch, var(--luzmo-informative-color), black 20%);--luzmo-informative-color-focus: var(--luzmo-informative-color-hover);--luzmo-informative-on-subtle-color: color-mix( in oklch, var(--luzmo-informative-color), var(--luzmo-font-color) 9% );--luzmo-informative-color-rgb: 22, 112, 221;--luzmo-informative-inverse-color: #ffffff;--luzmo-notice-color: rgb(229, 127, 0);--luzmo-notice-color-hover: color-mix(in oklch, var(--luzmo-notice-color), black 8%);--luzmo-notice-color-down: color-mix(in oklch, var(--luzmo-notice-color), black 20%);--luzmo-notice-color-focus: var(--luzmo-notice-color-hover);--luzmo-notice-on-subtle-color: color-mix( in oklch, var(--luzmo-notice-color), var(--luzmo-font-color) 40% );--luzmo-notice-inverse-color: var(--luzmo-selected-color-hard);--luzmo-seafoam-color: rgb(0, 140, 140);--luzmo-indigo-color: rgb(68, 52, 255);--luzmo-purple-color: rgb(112, 48, 210);--luzmo-fuchsia-color: rgb(205, 30, 170);--luzmo-magenta-color: rgb(203, 36, 98);--luzmo-yellow-color: rgb(228, 208, 0);--luzmo-gray-color: rgb(110, 110, 110);--luzmo-red-color: rgb(202, 34, 28);--luzmo-orange-color: rgb(218, 123, 17);--luzmo-chartreuse-color: rgb(85, 135, 0);--luzmo-celery-color: rgb(48, 134, 22);--luzmo-green-color: rgb(18, 133, 90);--luzmo-cyan-color: rgb(0, 134, 180);--luzmo-blue-color: rgb(22, 112, 221);--luzmo-disabled-color: #aaaaaa;--luzmo-spacing-1: 2px;--luzmo-spacing-2: 4px;--luzmo-spacing-3: 8px;--luzmo-spacing-4: 12px;--luzmo-spacing-5: 16px;--luzmo-indicator-gap: 2px;--luzmo-indicator-width: 1px;--luzmo-indicator-color: var(--luzmo-primary);--luzmo-component-height-xxs: 20px;--luzmo-component-height-xs: 24px;--luzmo-component-height-s: 28px;--luzmo-component-height: 32px;--luzmo-component-height-l: 40px;--luzmo-component-height-xl: 48px;--luzmo-component-height-xxl: 64px;--luzmo-icon-size-xxs: 10px;--luzmo-icon-size-xs: 12px;--luzmo-icon-size-s: 14px;--luzmo-icon-size-m: 16px;--luzmo-icon-size-l: 18px;--luzmo-icon-size-xl: 20px;--luzmo-icon-size-xxl: 32px}html.dark,html.dark-theme,:where(.dark-theme){--luzmo-border-color: rgba(var(--luzmo-border-color-rgb), 0.2);--luzmo-border-color-hover: rgba(var(--luzmo-border-color-rgb), 0.3);--luzmo-border-color-down: rgba(var(--luzmo-border-color-rgb), 0.35);--luzmo-border-color-focus: rgba(var(--luzmo-border-color-rgb), 0.3);--luzmo-border-color-rgb: 255, 255, 255;--luzmo-border-color-full: #4c4c57;--luzmo-border-color-full-hover: color-mix(in oklch, var(--luzmo-border-color-full), white 20%);--luzmo-border-color-full-down: color-mix(in oklch, var(--luzmo-border-color-full), white 35%);--luzmo-border-color-full-focus: color-mix(in oklch, var(--luzmo-border-color-full), white 20%);--luzmo-border-color-disabled: #333;--luzmo-shadow-opacity: 0.35;--luzmo-shadow-color: rgba( var(--luzmo-shadow-color-rgb), var(--luzmo-shadow-opacity) );--luzmo-font-color: #ced4da;--luzmo-font-color-extra-dimmed: #72787f;--luzmo-font-color-hover: color-mix(in oklch, var(--luzmo-font-color), white 8%);--luzmo-font-color-down: color-mix(in oklch, var(--luzmo-font-color), white 20%);--luzmo-font-color-focus: color-mix(in oklch, var(--luzmo-font-color), white 8%);--luzmo-primary: #7b90ff;--luzmo-primary-hover: color-mix(in oklch, var(--luzmo-primary), white 12%);--luzmo-primary-down: color-mix(in oklch, var(--luzmo-primary), white 24%);--luzmo-primary-focus: color-mix(in oklch, var(--luzmo-primary), white 12%);--luzmo-accent-on-subtle-color: color-mix( in oklch, var(--luzmo-primary), var(--luzmo-font-color) 1% );--luzmo-background-color: #262626;--luzmo-background-color-rgb: 0, 0, 0;--luzmo-background-color-disabled: #939ea8;--luzmo-background-color-hover: color-mix(in oklch, color-mix(in oklch, var(--luzmo-background-color), var(--luzmo-primary) 3%), white 14%);--luzmo-background-color-down: color-mix(in oklch, color-mix(in oklch, var(--luzmo-background-color), var(--luzmo-primary) 3%), white 25%);--luzmo-background-color-focus: color-mix(in oklch, color-mix(in oklch, var(--luzmo-background-color), var(--luzmo-primary) 3%), white 14%);--luzmo-background-color-highlight: rgb(72, 72, 72);--luzmo-background-color-highlight-disabled: #313131;--luzmo-background-color-highlight-hover: color-mix(in oklch, var(--luzmo-background-color-highlight), white 20%);--luzmo-background-color-highlight-down: color-mix(in oklch, var(--luzmo-background-color-highlight), white 35%);--luzmo-background-color-highlight-focus: color-mix(in oklch, var(--luzmo-background-color-highlight), white 20%);--luzmo-primary-inverse-color: var(--luzmo-background-color);--luzmo-indicator-color: var(--luzmo-primary);--luzmo-primary-rgb: 94, 113, 208;--luzmo-secondary: #ebff00;--luzmo-secondary-inverse-color: #333;--luzmo-secondary-rgb: 200, 219, 0;--luzmo-negative-color: #f76d74;--luzmo-negative-color-hover: color-mix(in oklch, var(--luzmo-negative-color), white 12%);--luzmo-negative-color-down: color-mix(in oklch, var(--luzmo-negative-color), white 24%);--luzmo-negative-color-focus: color-mix(in oklch, var(--luzmo-negative-color), white 12%);--luzmo-negative-on-subtle-color: color-mix( in oklch, var(--luzmo-negative-color), var(--luzmo-font-color) 40% );--luzmo-negative-color-rgb: 247, 109, 116;--luzmo-negative-inverse-color: var(--luzmo-background-color);--luzmo-positive-color: #39a875;--luzmo-positive-color-hover: color-mix(in oklch, var(--luzmo-positive-color), white 12%);--luzmo-positive-color-down: color-mix(in oklch, var(--luzmo-positive-color), white 24%);--luzmo-positive-color-focus: color-mix(in oklch, var(--luzmo-positive-color), white 12%);--luzmo-positive-on-subtle-color: color-mix( in oklch, var(--luzmo-positive-color), var(--luzmo-font-color) 35% );--luzmo-positive-color-rgb: 57, 168, 117;--luzmo-positive-inverse-color: var(--luzmo-background-color);--luzmo-selected-color: #afafaf;--luzmo-selected-color-hover: color-mix(in oklch, var(--luzmo-selected-color), white 20%);--luzmo-selected-color-down: color-mix(in oklch, var(--luzmo-selected-color), white 35%);--luzmo-selected-color-focus: color-mix(in oklch, var(--luzmo-selected-color), white 20%);--luzmo-selected-color-hard: #e9e9e9;--luzmo-selected-color-hard-hover: color-mix(in oklch, var(--luzmo-selected-color-hard), white 20%);--luzmo-selected-color-hard-down: color-mix(in oklch, var(--luzmo-selected-color-hard), white 35%);--luzmo-selected-color-hard-focus: color-mix(in oklch, var(--luzmo-selected-color-hard), white 20%);--luzmo-neutral-on-subtle-color: var(--luzmo-selected-color-hard);--luzmo-informative-color: #5c94ff;--luzmo-informative-color-hover: color-mix(in oklch, var(--luzmo-informative-color), white 12%);--luzmo-informative-color-down: color-mix(in oklch, var(--luzmo-informative-color), white 24%);--luzmo-informative-color-focus: var(--luzmo-informative-color-hover);--luzmo-informative-on-subtle-color: color-mix( in oklch, var(--luzmo-informative-color), var(--luzmo-font-color) 36% );--luzmo-informative-color-rgb: 92, 148, 255;--luzmo-informative-inverse-color: var(--luzmo-background-color);--luzmo-notice-color-hover: color-mix(in oklch, var(--luzmo-notice-color), white 12%);--luzmo-notice-color-down: color-mix(in oklch, var(--luzmo-notice-color), white 24%);--luzmo-notice-color-focus: var(--luzmo-notice-color-hover);--luzmo-notice-on-subtle-color: var(--luzmo-notice-color);--luzmo-notice-inverse-color: var(--luzmo-background-color);--luzmo-disabled-color: #75797b}", document.head.appendChild(e);
|
|
22
|
+
}
|
|
23
|
+
})();
|
|
24
|
+
import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "../question-box-9F6Ppakl.js";
|
|
25
|
+
export { e as DEFAULT_QUESTION_BOX_LABELS, o as LuzmoQuestionBox, r as QUESTION_BOX_OTHER_VALUE, a as questionBoxOtherKey, n as questionsToRequestedSchema, i as requestedSchemaToQuestions, t as toElicitationContent };
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { type QuestionBoxQuestion, type QuestionBoxValue } from './types';
|
|
2
|
+
/** One enum choice in the MCP form-mode subset (`const` + optional `title`). */
|
|
3
|
+
export type QuestionBoxElicitationChoice = {
|
|
4
|
+
const: string;
|
|
5
|
+
title?: string;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* A single property in a form-mode elicitation schema. Only the string, enum,
|
|
9
|
+
* and enum-array shapes the question box can render are produced; hosts may
|
|
10
|
+
* pass a wider MCP schema into {@link requestedSchemaToQuestions}.
|
|
11
|
+
*/
|
|
12
|
+
export type QuestionBoxElicitationProperty = {
|
|
13
|
+
type?: string;
|
|
14
|
+
title?: string;
|
|
15
|
+
description?: string;
|
|
16
|
+
default?: string | string[];
|
|
17
|
+
oneOf?: QuestionBoxElicitationChoice[];
|
|
18
|
+
enum?: string[];
|
|
19
|
+
enumNames?: string[];
|
|
20
|
+
format?: string;
|
|
21
|
+
minLength?: number;
|
|
22
|
+
maxLength?: number;
|
|
23
|
+
pattern?: string;
|
|
24
|
+
minItems?: number;
|
|
25
|
+
maxItems?: number;
|
|
26
|
+
items?: {
|
|
27
|
+
type?: string;
|
|
28
|
+
enum?: string[];
|
|
29
|
+
enumNames?: string[];
|
|
30
|
+
anyOf?: QuestionBoxElicitationChoice[];
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
/** Flat MCP `requestedSchema` for form-mode elicitation. */
|
|
34
|
+
export type QuestionBoxRequestedSchema = {
|
|
35
|
+
type: 'object';
|
|
36
|
+
properties: Record<string, QuestionBoxElicitationProperty>;
|
|
37
|
+
required?: string[];
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Maps question-box descriptors to an MCP form-mode `requestedSchema`.
|
|
41
|
+
* Lucero-only option fields (`description`, `hint`, `recommended`, `disabled`,
|
|
42
|
+
* `disabledReason`) are dropped. Other remains the reserved enum const and
|
|
43
|
+
* stores its text in a sibling string. A question without options becomes a
|
|
44
|
+
* single string property.
|
|
45
|
+
*/
|
|
46
|
+
export declare const questionsToRequestedSchema: (questions: QuestionBoxQuestion[]) => QuestionBoxRequestedSchema;
|
|
47
|
+
/**
|
|
48
|
+
* Returns the live value as MCP elicitation `content`: Other remains the
|
|
49
|
+
* reserved enum const and its text uses `{id}Other`. A question without
|
|
50
|
+
* options returns its free-form text directly on `id`.
|
|
51
|
+
*/
|
|
52
|
+
export declare const toElicitationContent: (questions: QuestionBoxQuestion[], value: QuestionBoxValue) => QuestionBoxValue;
|
|
53
|
+
/**
|
|
54
|
+
* Rebuilds question descriptors from an MCP `requestedSchema`. Number,
|
|
55
|
+
* boolean, constrained strings, malformed enums, and other unsupported
|
|
56
|
+
* properties are skipped. Lucero-only option fields cannot be recovered.
|
|
57
|
+
*/
|
|
58
|
+
export declare const requestedSchemaToQuestions: (schema: QuestionBoxRequestedSchema) => QuestionBoxQuestion[];
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type QuestionBoxLabels, type QuestionBoxOption, type QuestionBoxQuestion, type QuestionBoxValue } from './types';
|
|
2
|
+
export declare const cloneValue: (value: QuestionBoxValue) => QuestionBoxValue;
|
|
3
|
+
export declare const setOwnValue: (value: QuestionBoxValue, key: string, entry: string | string[]) => void;
|
|
4
|
+
export declare const valuesEqual: (left: QuestionBoxValue, right: QuestionBoxValue) => boolean;
|
|
5
|
+
export declare const uniqueInOrder: (values: string[]) => string[];
|
|
6
|
+
export declare const allowedValues: (question: QuestionBoxQuestion) => Set<string>;
|
|
7
|
+
export declare const selectedValues: (question: QuestionBoxQuestion, value: QuestionBoxValue) => string[];
|
|
8
|
+
export declare const isOtherSelected: (question: QuestionBoxQuestion, value: QuestionBoxValue) => boolean;
|
|
9
|
+
export declare const mergeLabels: (labels: QuestionBoxLabels) => Required<QuestionBoxLabels>;
|
|
10
|
+
export declare const interpolate: (template: string, replacements: Record<string, string>) => string;
|
|
11
|
+
export declare const assertValidQuestions: (questions: QuestionBoxQuestion[]) => void;
|
|
12
|
+
export declare const normalizeValue: (questions: QuestionBoxQuestion[], source: QuestionBoxValue) => QuestionBoxValue;
|
|
13
|
+
/** Smallest number of answers a question accepts. */
|
|
14
|
+
export declare const minimumSelected: (question: QuestionBoxQuestion) => number;
|
|
15
|
+
/** Persistent constraint text for a multiple-choice group. */
|
|
16
|
+
export declare const selectionRequirement: (question: QuestionBoxQuestion, labels: Required<QuestionBoxLabels>) => string | undefined;
|
|
17
|
+
/** What keeps a question from being submitted, if anything. */
|
|
18
|
+
export type QuestionBoxViolation = 'missing' | 'minimum' | 'maximum' | 'otherText';
|
|
19
|
+
export declare const questionViolation: (question: QuestionBoxQuestion, value: QuestionBoxValue) => QuestionBoxViolation | undefined;
|
|
20
|
+
export declare const questionInvalid: (question: QuestionBoxQuestion, value: QuestionBoxValue) => boolean;
|
|
21
|
+
export declare const questionError: (question: QuestionBoxQuestion, value: QuestionBoxValue, labels: Required<QuestionBoxLabels>) => string | undefined;
|
|
22
|
+
export declare const optionDisabled: (question: QuestionBoxQuestion, option: QuestionBoxOption, checked: boolean, value: QuestionBoxValue, disabled: boolean) => boolean;
|
|
23
|
+
export declare const formatSelectedCount: (count: number, labels: Required<QuestionBoxLabels>) => string;
|
|
24
|
+
export declare const formatAnswerList: (labels: string[], language: string) => string;
|
|
25
|
+
export declare const formatOptionLabel: (option: QuestionBoxOption, labels: Required<QuestionBoxLabels>) => string;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { nothing, TemplateResult } from 'lit';
|
|
2
|
+
import type { ElementSize } from '../../utils/sized-mixin';
|
|
3
|
+
import { type QuestionBoxLabels, type QuestionBoxOption, type QuestionBoxOptionIndicator, type QuestionBoxQuestion, type QuestionBoxValue } from './types';
|
|
4
|
+
/**
|
|
5
|
+
* Listeners the templates bind. Every entry is a stable field on the host, so
|
|
6
|
+
* re-rendering never rebinds a listener.
|
|
7
|
+
*
|
|
8
|
+
* @internal Not part of the `luzmo-question-box` public API.
|
|
9
|
+
*/
|
|
10
|
+
export type QuestionBoxRenderHandlers = {
|
|
11
|
+
contentClick: (event: MouseEvent) => void;
|
|
12
|
+
back: (event: Event) => void;
|
|
13
|
+
primary: () => void;
|
|
14
|
+
skip: (event: Event) => void;
|
|
15
|
+
cancel: (event: Event) => void;
|
|
16
|
+
change: () => void;
|
|
17
|
+
radioChange: (event: Event) => void;
|
|
18
|
+
radioClick: (event: Event) => void;
|
|
19
|
+
checkboxChange: (event: Event) => void;
|
|
20
|
+
otherInput: (event: Event) => void;
|
|
21
|
+
otherChange: (event: Event) => void;
|
|
22
|
+
otherKeydown: (event: KeyboardEvent) => void;
|
|
23
|
+
focusIn: (event: FocusEvent) => void;
|
|
24
|
+
focusOut: () => void;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Narrow, read-only view of the host state the templates read. Built by
|
|
28
|
+
* `LuzmoQuestionBox` on every render.
|
|
29
|
+
*
|
|
30
|
+
* @internal Not part of the `luzmo-question-box` public API.
|
|
31
|
+
*/
|
|
32
|
+
export type QuestionBoxRenderContext = {
|
|
33
|
+
questions: QuestionBoxQuestion[];
|
|
34
|
+
value: QuestionBoxValue;
|
|
35
|
+
copy: Required<QuestionBoxLabels>;
|
|
36
|
+
/** Zero-based index of the question being answered. */
|
|
37
|
+
step: number;
|
|
38
|
+
resolved: boolean;
|
|
39
|
+
submitted: boolean;
|
|
40
|
+
showError: boolean;
|
|
41
|
+
disabled: boolean;
|
|
42
|
+
readonly: boolean;
|
|
43
|
+
hideClose: boolean;
|
|
44
|
+
hideSkip: boolean;
|
|
45
|
+
showChange: boolean;
|
|
46
|
+
optionIndicator: QuestionBoxOptionIndicator;
|
|
47
|
+
size: ElementSize;
|
|
48
|
+
dir: 'ltr' | 'rtl';
|
|
49
|
+
/** Resolved language used for locale-aware answer lists. */
|
|
50
|
+
language: string;
|
|
51
|
+
selectedValues: (question: QuestionBoxQuestion) => string[];
|
|
52
|
+
isOtherSelected: (question: QuestionBoxQuestion) => boolean;
|
|
53
|
+
questionError: (question: QuestionBoxQuestion) => string | undefined;
|
|
54
|
+
/** Whether the question blocks the flow, with or without a message. */
|
|
55
|
+
questionInvalid: (question: QuestionBoxQuestion) => boolean;
|
|
56
|
+
optionDisabled: (question: QuestionBoxQuestion, option: QuestionBoxOption, checked: boolean) => boolean;
|
|
57
|
+
handlers: QuestionBoxRenderHandlers;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Renders the resolved summary or the current question card. Without a question
|
|
61
|
+
* there is nothing to answer, so the card and its border are left out entirely.
|
|
62
|
+
*
|
|
63
|
+
* @internal Not part of the `luzmo-question-box` public API.
|
|
64
|
+
*/
|
|
65
|
+
export declare function renderQuestionBox(context: QuestionBoxRenderContext): TemplateResult | typeof nothing;
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import { CSSResultArray, nothing, PropertyValues, TemplateResult } from 'lit';
|
|
2
|
+
import { LuzmoElement } from '../../utils/base';
|
|
3
|
+
import '../action-button';
|
|
4
|
+
import '../badge';
|
|
5
|
+
import '../button';
|
|
6
|
+
import '../checkbox';
|
|
7
|
+
import '../field-group';
|
|
8
|
+
import '../icon';
|
|
9
|
+
import '../radio';
|
|
10
|
+
import '../text-field';
|
|
11
|
+
import { type QuestionBoxLabels, type QuestionBoxOptionIndicator, type QuestionBoxQuestion, type QuestionBoxValue } from './types';
|
|
12
|
+
export type { QuestionBoxAction, QuestionBoxLabels, QuestionBoxOption, QuestionBoxOptionIndicator, QuestionBoxOtherConfig, QuestionBoxQuestion, QuestionBoxResultDetail, QuestionBoxValue } from './types';
|
|
13
|
+
export type { QuestionBoxElicitationChoice, QuestionBoxElicitationProperty, QuestionBoxRequestedSchema } from './question-box-elicitation';
|
|
14
|
+
export { questionsToRequestedSchema, requestedSchemaToQuestions, toElicitationContent } from './question-box-elicitation';
|
|
15
|
+
export { DEFAULT_QUESTION_BOX_LABELS, QUESTION_BOX_OTHER_VALUE, questionBoxOtherKey } from './types';
|
|
16
|
+
declare const LuzmoQuestionBox_base: typeof LuzmoElement & {
|
|
17
|
+
new (...args: any[]): import("../..").SizedElementInterface;
|
|
18
|
+
prototype: import("../..").SizedElementInterface;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* @element luzmo-question-box
|
|
22
|
+
*
|
|
23
|
+
* Presents one or more single- or multiple-choice questions and returns a
|
|
24
|
+
* flat, elicitation-compatible answer object.
|
|
25
|
+
*
|
|
26
|
+
* @fires {Event} input - The in-progress answer value changed.
|
|
27
|
+
* @fires {Event} change - An answer was committed by the user.
|
|
28
|
+
* @fires {CustomEvent<QuestionBoxResultDetail>} luzmo-submit - The user accepted. `detail.action` is `accept`.
|
|
29
|
+
* @fires {CustomEvent<QuestionBoxResultDetail>} luzmo-decline - The user explicitly skipped the request. `detail.action` is `decline`.
|
|
30
|
+
* @fires {CustomEvent<QuestionBoxResultDetail>} luzmo-cancel - The user dismissed the interaction (Close, Escape, or `cancel()`). `detail.action` is `cancel`.
|
|
31
|
+
*
|
|
32
|
+
* @attr dir - Writing direction (`ltr` or `rtl`) propagated to composed controls.
|
|
33
|
+
* @attr hide-close - Hides the close action.
|
|
34
|
+
* @attr hide-skip - Hides Skip actions.
|
|
35
|
+
* @attr show-change - Shows a Change action after submission.
|
|
36
|
+
* @attr option-indicator - Selects `numbers` or `letters` for option indicators.
|
|
37
|
+
*
|
|
38
|
+
* @cssprop --luzmo-question-box-max-inline-size - Maximum inline size of the question box (`40rem` by default).
|
|
39
|
+
* @cssprop --luzmo-question-box-body-max-block-size - Maximum block size of the scrollable question body (`24rem` by default).
|
|
40
|
+
* @cssprop --luzmo-question-box-divider-width - Option separator width (`0px` by default).
|
|
41
|
+
* @cssprop --luzmo-question-box-divider-color - Option separator color.
|
|
42
|
+
* @cssprop --luzmo-question-box-selected-count-font-size - Selected-count and status text size, scaled with the component size.
|
|
43
|
+
* @cssprop --luzmo-question-box-descriptive-option-padding-block - Block padding for options when any option has a description.
|
|
44
|
+
* @cssprop --luzmo-question-box-focus-ring-width - Indicator focus ring width.
|
|
45
|
+
* @cssprop --luzmo-question-box-focus-ring-gap - Indicator focus ring offset.
|
|
46
|
+
* @cssprop --luzmo-question-box-focus-ring-color - Indicator focus ring color.
|
|
47
|
+
* @cssprop --luzmo-question-box-scrollbar-width - Scrollbar width of the question body.
|
|
48
|
+
* @cssprop --luzmo-question-box-scrollbar-track-background - Scrollbar track background of the question body.
|
|
49
|
+
* @cssprop --luzmo-question-box-scrollbar-track-border-radius - Scrollbar track corner radius of the question body.
|
|
50
|
+
* @cssprop --luzmo-question-box-scrollbar-thumb-background - Scrollbar thumb background of the question body.
|
|
51
|
+
* @cssprop --luzmo-question-box-scrollbar-thumb-border-radius - Scrollbar thumb corner radius of the question body.
|
|
52
|
+
* @cssprop --luzmo-question-box-scrollbar-thumb-hover-background - Scrollbar thumb background while hovered.
|
|
53
|
+
*/
|
|
54
|
+
export declare class LuzmoQuestionBox extends LuzmoQuestionBox_base {
|
|
55
|
+
static get styles(): CSSResultArray;
|
|
56
|
+
/**
|
|
57
|
+
* Questions to present, one per step. IDs must be unique JSON Schema
|
|
58
|
+
* property names.
|
|
59
|
+
*/
|
|
60
|
+
questions: QuestionBoxQuestion[];
|
|
61
|
+
/**
|
|
62
|
+
* Live answers keyed by question ID. Other selection and accepted content
|
|
63
|
+
* use the reserved `__other__` enum const; free text uses `{id}Other`.
|
|
64
|
+
*/
|
|
65
|
+
value: QuestionBoxValue;
|
|
66
|
+
/**
|
|
67
|
+
* Localizable UI copy. Omitted labels use the English defaults.
|
|
68
|
+
*/
|
|
69
|
+
labels: QuestionBoxLabels;
|
|
70
|
+
/** Writing direction propagated to composed child controls. */
|
|
71
|
+
dir: 'ltr' | 'rtl';
|
|
72
|
+
/** Prevents interaction and removes controls from keyboard navigation. */
|
|
73
|
+
disabled: boolean;
|
|
74
|
+
/** Displays values without allowing the answers to be changed. */
|
|
75
|
+
readonly: boolean;
|
|
76
|
+
/** Hides the close action that emits `luzmo-cancel`. */
|
|
77
|
+
hideClose: boolean;
|
|
78
|
+
/** Hides Skip actions that emit `luzmo-decline`. */
|
|
79
|
+
hideSkip: boolean;
|
|
80
|
+
/** Shows a Change action after a successful submission. */
|
|
81
|
+
showChange: boolean;
|
|
82
|
+
/** Selects numbered or lettered visual option indicators. */
|
|
83
|
+
get optionIndicator(): QuestionBoxOptionIndicator;
|
|
84
|
+
set optionIndicator(value: QuestionBoxOptionIndicator);
|
|
85
|
+
private _optionIndicator;
|
|
86
|
+
private _step;
|
|
87
|
+
private _resolved;
|
|
88
|
+
private _submitted;
|
|
89
|
+
private _showError;
|
|
90
|
+
/** @internal */
|
|
91
|
+
private languageResolver;
|
|
92
|
+
private _radioChangeAdvanced;
|
|
93
|
+
/** @internal */
|
|
94
|
+
private multipleChoiceRoving;
|
|
95
|
+
/** @internal */
|
|
96
|
+
private questionTitle?;
|
|
97
|
+
/** @internal */
|
|
98
|
+
private otherField?;
|
|
99
|
+
/** @internal */
|
|
100
|
+
private optionsGroup?;
|
|
101
|
+
/** @internal */
|
|
102
|
+
private resolvedTitle?;
|
|
103
|
+
connectedCallback(): void;
|
|
104
|
+
attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
|
|
105
|
+
disconnectedCallback(): void;
|
|
106
|
+
/** Moves focus to the active choices or the resolved-state focus target. */
|
|
107
|
+
focus(): void;
|
|
108
|
+
/** Returns whether every question currently has a valid answer. */
|
|
109
|
+
checkValidity(): boolean;
|
|
110
|
+
/** Validates the complete flow and emits `luzmo-submit` when it is valid. */
|
|
111
|
+
submit(): void;
|
|
112
|
+
/** Restores the first step with an empty answer object. */
|
|
113
|
+
reset(): void;
|
|
114
|
+
/** Dismisses the interaction and emits `luzmo-cancel`. */
|
|
115
|
+
cancel(): void;
|
|
116
|
+
protected willUpdate(changes: PropertyValues<this>): void;
|
|
117
|
+
protected updated(changes: PropertyValues): void;
|
|
118
|
+
protected render(): TemplateResult | typeof nothing;
|
|
119
|
+
/** @internal Narrow view of host state handed to the template functions. */
|
|
120
|
+
private get renderContext();
|
|
121
|
+
/** @internal Stable listener references, so re-rendering never rebinds. */
|
|
122
|
+
private get renderHandlers();
|
|
123
|
+
/** @internal */
|
|
124
|
+
private get copy();
|
|
125
|
+
/** @internal */
|
|
126
|
+
private get currentQuestion();
|
|
127
|
+
private handleKeydown;
|
|
128
|
+
private handleKeyup;
|
|
129
|
+
private handleFocusIn;
|
|
130
|
+
private handleContentClick;
|
|
131
|
+
/** @internal */
|
|
132
|
+
private optionShowsKeyboardFocus;
|
|
133
|
+
private handleFocusOut;
|
|
134
|
+
/**
|
|
135
|
+
* Flags the option that should carry a focus ring. A checkbox delegates focus
|
|
136
|
+
* to its inner input, so the option itself never matches `:focus-visible`.
|
|
137
|
+
* Focus moves between options are retargeted away at the host, so the
|
|
138
|
+
* listeners driving this live on the option group instead.
|
|
139
|
+
*
|
|
140
|
+
* @internal
|
|
141
|
+
*/
|
|
142
|
+
private markKeyboardFocus;
|
|
143
|
+
/** @internal */
|
|
144
|
+
private focusedOptionForEvent;
|
|
145
|
+
private handleCancelClick;
|
|
146
|
+
private handleSkip;
|
|
147
|
+
private handleBack;
|
|
148
|
+
/** @internal */
|
|
149
|
+
private moveFocus;
|
|
150
|
+
/** @internal */
|
|
151
|
+
private focusOptions;
|
|
152
|
+
private handlePrimary;
|
|
153
|
+
/** @internal */
|
|
154
|
+
private advanceAfterSingleSelection;
|
|
155
|
+
/** @internal */
|
|
156
|
+
private acceptFlow;
|
|
157
|
+
private handleChange;
|
|
158
|
+
private handleRadioChange;
|
|
159
|
+
private handleRadioClick;
|
|
160
|
+
private handleCheckboxChange;
|
|
161
|
+
private handleOtherInput;
|
|
162
|
+
private handleOtherChange;
|
|
163
|
+
private handleOtherKeydown;
|
|
164
|
+
/** @internal */
|
|
165
|
+
private commitAnswer;
|
|
166
|
+
/** @internal */
|
|
167
|
+
private commitOther;
|
|
168
|
+
/** @internal */
|
|
169
|
+
private assignValue;
|
|
170
|
+
/** @internal */
|
|
171
|
+
private emitResult;
|
|
172
|
+
/** @internal */
|
|
173
|
+
private selectedValues;
|
|
174
|
+
/** @internal */
|
|
175
|
+
private isOtherSelected;
|
|
176
|
+
/** @internal */
|
|
177
|
+
private questionError;
|
|
178
|
+
/** @internal */
|
|
179
|
+
private questionInvalid;
|
|
180
|
+
/** @internal */
|
|
181
|
+
private optionDisabled;
|
|
182
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stable enum value used when the free-form Other choice is selected.
|
|
3
|
+
* Live values and MCP elicitation content keep this const; free text lives on
|
|
4
|
+
* `{id}Other`.
|
|
5
|
+
*/
|
|
6
|
+
export declare const QUESTION_BOX_OTHER_VALUE = "__other__";
|
|
7
|
+
/** A selectable answer descriptor for a question. */
|
|
8
|
+
export type QuestionBoxOption = {
|
|
9
|
+
/**
|
|
10
|
+
* Value returned to the consumer and used as an elicitation enum const.
|
|
11
|
+
* Must be a string. Never shown when `label` is set.
|
|
12
|
+
*/
|
|
13
|
+
value: string;
|
|
14
|
+
/** Visible option label (elicitation `title`). */
|
|
15
|
+
label: string;
|
|
16
|
+
/** Optional supporting text rendered below the option label. */
|
|
17
|
+
description?: string;
|
|
18
|
+
/** Shows the localized recommended label beside this option. */
|
|
19
|
+
recommended?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Optional muted hint shown beside the label.
|
|
22
|
+
* Lucero-only: dropped when mapping to elicitation `requestedSchema`.
|
|
23
|
+
*/
|
|
24
|
+
hint?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Lucero-only: option cannot be chosen. Dropped in elicitation mapping.
|
|
27
|
+
*/
|
|
28
|
+
disabled?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Lucero-only: explanation for a disabled option.
|
|
31
|
+
*/
|
|
32
|
+
disabledReason?: string;
|
|
33
|
+
};
|
|
34
|
+
/** Localized copy for a question's free-form Other choice. */
|
|
35
|
+
export type QuestionBoxOtherConfig = {
|
|
36
|
+
label?: string;
|
|
37
|
+
placeholder?: string;
|
|
38
|
+
};
|
|
39
|
+
/** A single step in a question-box flow. */
|
|
40
|
+
export type QuestionBoxQuestion = {
|
|
41
|
+
/**
|
|
42
|
+
* Question id. Must be a valid JSON Schema property name (elicitation key).
|
|
43
|
+
*/
|
|
44
|
+
id: string;
|
|
45
|
+
type: 'single' | 'multiple';
|
|
46
|
+
title: string;
|
|
47
|
+
description?: string;
|
|
48
|
+
required?: boolean;
|
|
49
|
+
default?: string | string[];
|
|
50
|
+
/** Maps to elicitation `minItems` for multiple questions. */
|
|
51
|
+
minSelected?: number;
|
|
52
|
+
/** Maps to elicitation `maxItems` for multiple questions. */
|
|
53
|
+
maxSelected?: number;
|
|
54
|
+
options: QuestionBoxOption[];
|
|
55
|
+
/**
|
|
56
|
+
* When true or an object, appends an Other choice.
|
|
57
|
+
* Free text is stored on {@link questionBoxOtherKey}.
|
|
58
|
+
*/
|
|
59
|
+
other?: boolean | QuestionBoxOtherConfig;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Flat elicitation-shaped answers: question id → `string` | `string[]`,
|
|
63
|
+
* plus optional `{id}Other` strings.
|
|
64
|
+
*/
|
|
65
|
+
export type QuestionBoxValue = Record<string, string | string[] | undefined>;
|
|
66
|
+
/** Visual marker used for regular answer choices. */
|
|
67
|
+
export type QuestionBoxOptionIndicator = 'numbers' | 'letters';
|
|
68
|
+
/** Localizable question-box copy and validation messages. */
|
|
69
|
+
export type QuestionBoxLabels = {
|
|
70
|
+
continue?: string;
|
|
71
|
+
back?: string;
|
|
72
|
+
submit?: string;
|
|
73
|
+
skip?: string;
|
|
74
|
+
change?: string;
|
|
75
|
+
close?: string;
|
|
76
|
+
other?: string;
|
|
77
|
+
otherPlaceholder?: string;
|
|
78
|
+
recommended?: string;
|
|
79
|
+
answerTitle?: string;
|
|
80
|
+
answersTitle?: string;
|
|
81
|
+
/** `{current}` and `{total}` are replaced. */
|
|
82
|
+
progress?: string;
|
|
83
|
+
/** `{count}` is replaced when the selection is not exactly one. */
|
|
84
|
+
selectedCount?: string;
|
|
85
|
+
/** `{count}` is replaced when exactly one option is selected. */
|
|
86
|
+
selectedCountOne?: string;
|
|
87
|
+
/** `{label}` and `{recommended}` are replaced. */
|
|
88
|
+
recommendedSuffix?: string;
|
|
89
|
+
/** `{answer}` is replaced with the resolved answer. */
|
|
90
|
+
answer?: string;
|
|
91
|
+
/** Persistent, visually hidden guidance for a required multiple choice. */
|
|
92
|
+
requiredSelectionDescription?: string;
|
|
93
|
+
/** `{min}` and `{max}` are replaced in persistent selection guidance. */
|
|
94
|
+
selectionRangeDescription?: string;
|
|
95
|
+
/** `{min}` is replaced. */
|
|
96
|
+
minSelectedError?: string;
|
|
97
|
+
/** `{max}` is replaced. */
|
|
98
|
+
maxSelectedError?: string;
|
|
99
|
+
otherRequiredError?: string;
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* Result of leaving the flow: accepted answers, explicit refusal, or dismissal.
|
|
103
|
+
*/
|
|
104
|
+
export type QuestionBoxAction = 'accept' | 'decline' | 'cancel';
|
|
105
|
+
/** Detail emitted by the `luzmo-submit`, `luzmo-decline`, and `luzmo-cancel` events. */
|
|
106
|
+
export type QuestionBoxResultDetail = {
|
|
107
|
+
/** `decline` means Skip; `cancel` means Close, Escape, or `cancel()`. */
|
|
108
|
+
action: QuestionBoxAction;
|
|
109
|
+
/** Complete elicitation answers; present only for an accepted submission. */
|
|
110
|
+
content?: QuestionBoxValue;
|
|
111
|
+
};
|
|
112
|
+
/** Default English copy used for omitted {@link QuestionBoxLabels}. */
|
|
113
|
+
export declare const DEFAULT_QUESTION_BOX_LABELS: Required<QuestionBoxLabels>;
|
|
114
|
+
/**
|
|
115
|
+
* Returns the sibling key used to store free-form Other text for a question.
|
|
116
|
+
*/
|
|
117
|
+
export declare const questionBoxOtherKey: (questionId: string) => string;
|
|
118
|
+
/**
|
|
119
|
+
* Returns whether a question includes a free-form Other choice. A question
|
|
120
|
+
* without options can only be answered in free form, so it always offers one.
|
|
121
|
+
*/
|
|
122
|
+
export declare const isQuestionBoxOtherEnabled: (question: QuestionBoxQuestion) => boolean;
|
|
123
|
+
/** Normalizes an enabled Other choice to its optional localized configuration. */
|
|
124
|
+
export declare const questionBoxOtherConfig: (question: QuestionBoxQuestion) => QuestionBoxOtherConfig;
|