@epam/ai-dial-conversation-input 1.1.0-dev.209 → 1.1.0-dev.211

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.
@@ -1 +1 @@
1
- {"version":3,"file":"ChatSettingsFields.d.ts","sourceRoot":"","sources":["../../../src/components/ChatSettingsFields/ChatSettingsFields.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAGL,cAAc,EACf,MAAM,2BAA2B,CAAC;AAOnC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAGhC,sDAAsD;AACtD,MAAM,WAAW,uBAAuB;IACtC,2DAA2D;IAC3D,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,6EAA6E;IAC7E,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC;IAC3C,mCAAmC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,sBAAsB,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IACpD,4DAA4D;IAC5D,oBAAoB,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,wDAAwD;IACxD,mBAAmB,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,4EAA4E;IAC5E,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,+GAA+G;IAC/G,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qEAAqE;IACrE,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,yEAAyE;IACzE,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uFAAuF;IACvF,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kIAAkI;IAClI,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,qDAAqD;IACrD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sFAAsF;IACtF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uBAAuB;IACvB,MAAM,CAAC,EAAE,wBAAwB,CAAC;CACnC;AAED,2GAA2G;AAC3G,MAAM,WAAW,wBAAwB;IACvC,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,2GAA2G;AAC3G,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CAiF1D,CAAC"}
1
+ {"version":3,"file":"ChatSettingsFields.d.ts","sourceRoot":"","sources":["../../../src/components/ChatSettingsFields/ChatSettingsFields.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAGL,cAAc,EACf,MAAM,2BAA2B,CAAC;AAOnC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAGhC,sDAAsD;AACtD,MAAM,WAAW,uBAAuB;IACtC,2DAA2D;IAC3D,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,6EAA6E;IAC7E,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC;IAC3C,mCAAmC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,sBAAsB,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IACpD,4DAA4D;IAC5D,oBAAoB,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,wDAAwD;IACxD,mBAAmB,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,4EAA4E;IAC5E,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,+GAA+G;IAC/G,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qEAAqE;IACrE,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,yEAAyE;IACzE,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uFAAuF;IACvF,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kIAAkI;IAClI,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,qDAAqD;IACrD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sFAAsF;IACtF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uBAAuB;IACvB,MAAM,CAAC,EAAE,wBAAwB,CAAC;CACnC;AAED,2GAA2G;AAC3G,MAAM,WAAW,wBAAwB;IACvC,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,2GAA2G;AAC3G,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CAoF1D,CAAC"}
@@ -17,6 +17,8 @@ export interface ChatSettingsModalProps {
17
17
  onClose: () => void;
18
18
  /** Modal title. Defaults to `'Chat settings'`. */
19
19
  title?: string;
20
+ /** CSS class applied to the modal title. Defaults to `'dial-h1-text'`. */
21
+ titleClassName?: string;
20
22
  /** Label for the response format field. Defaults to `'Response format'`. */
21
23
  responseFormatLabel?: string;
22
24
  /** Helper text shown below the response format field. Defaults to `'Applies to new and existing messages'`. */
@@ -41,7 +43,7 @@ export interface ChatSettingsModalProps {
41
43
  saveDisabledTooltip?: string;
42
44
  /**
43
45
  * CSS class applied for the modal background. Defaults to a
44
- * `--bg-layer-sunken` background. `Popup` renders through a portal and
46
+ * `--bg-layer-raised` background. `Popup` renders through a portal and
45
47
  * accepts no `style`, so this class (or setting `--csm-bg` at theme level) is
46
48
  * the only way to override the surface color — there is no `colors` prop.
47
49
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ChatSettingsModal.d.ts","sourceRoot":"","sources":["../../../src/components/ChatSettingsModal/ChatSettingsModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAO3D,OAAO,EAAQ,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAEtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAI7D,iDAAiD;AACjD,MAAM,WAAW,sBAAsB;IACrC,iFAAiF;IACjF,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,qEAAqE;IACrE,qBAAqB,EAAE,cAAc,CAAC;IACtC,iEAAiE;IACjE,mBAAmB,EAAE,MAAM,CAAC;IAC5B,6DAA6D;IAC7D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,4DAA4D;IAC5D,MAAM,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC7C,0CAA0C;IAC1C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,+GAA+G;IAC/G,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qEAAqE;IACrE,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,yEAAyE;IACzE,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gFAAgF;IAChF,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kIAAkI;IAClI,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,qDAAqD;IACrD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+FAA+F;IAC/F,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,qFAAqF;AACrF,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CAiFxD,CAAC;;AAEF,wBAAuC"}
1
+ {"version":3,"file":"ChatSettingsModal.d.ts","sourceRoot":"","sources":["../../../src/components/ChatSettingsModal/ChatSettingsModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAO3D,OAAO,EAAQ,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAEtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAI7D,iDAAiD;AACjD,MAAM,WAAW,sBAAsB;IACrC,iFAAiF;IACjF,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,qEAAqE;IACrE,qBAAqB,EAAE,cAAc,CAAC;IACtC,iEAAiE;IACjE,mBAAmB,EAAE,MAAM,CAAC;IAC5B,6DAA6D;IAC7D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,4DAA4D;IAC5D,MAAM,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC7C,0CAA0C;IAC1C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,+GAA+G;IAC/G,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qEAAqE;IACrE,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,yEAAyE;IACzE,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gFAAgF;IAChF,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kIAAkI;IAClI,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,qDAAqD;IACrD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+FAA+F;IAC/F,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,qFAAqF;AACrF,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CAmFxD,CAAC;;AAEF,wBAAuC"}
package/index.css CHANGED
@@ -1,2 +1,2 @@
1
- @keyframes _slide-up_1d50f_1{0%{transform:translateY(100%)}to{transform:translateY(0)}}._backdrop_1d50f_9{background:var(--ci-backdrop,var(--bg-backdrop,#161b2d4d))}._sheet_1d50f_13{background:var(--ci-sheet-bg,var(--bg-layer-raised,#fcfcfc));animation:.3s cubic-bezier(.32,.72,0,1) _slide-up_1d50f_1}._title_1d50f_18{color:var(--ci-sheet-text,var(--text-primary,#161b2d))}._divider_1d50f_22{background:var(--ci-sheet-divider,var(--stroke-tertiary,#e0e6f0))}._item_5iycw_1{color:var(--ci-sheet-text,var(--text-primary,#161b2d))}._item_5iycw_1:hover{background:var(--ci-sheet-item-hover,var(--bg-layer-raised,#fcfcfc))}._item_5iycw_1:active{background:var(--ci-sheet-item-active,var(--bg-layer-4,#d1dbea))}._itemIcon_5iycw_11{color:var(--ci-sheet-icon,var(--text-secondary,#57647a))}._label_14i7c_1{color:var(--csf-label-text,var(--text-primary,#161b2d))!important}._modal_od073_1{background:var(--csm-bg,var(--bg-layer-sunken,#eef1f7))!important}._icon_1fv6z_1{color:var(--tbs-icon-text,var(--text-secondary,#57647a))}._selectedIcon_1fv6z_5{color:var(--tbs-selected-icon-text,var(--text-accent,#1d4ed8))}._selectedToolIcon_r268y_1{color:var(--aab-selected-tool-icon,var(--text-accent,#1d4ed8))}._toolIcon_r268y_5{color:var(--aab-tool-icon,var(--text-secondary,#57647a))}._chevronIcon_r268y_9{color:var(--aab-chevron-icon,var(--text-secondary,#57647a))}._chip_1gu87_1{background:var(--ci-chip-bg,var(--bg-layer-base,#f5f7fa));border-color:var(--ci-chip-border,var(--stroke-secondary,#d1dbea))}._chipIcon_1gu87_6{color:var(--ci-chip-icon,var(--text-secondary,#57647a))}._chipText_1gu87_10{color:var(--ci-chip-text,var(--text-primary,#161b2d))}._chipClose_1gu87_14{color:var(--ci-chip-close,var(--text-secondary,#57647a))}._chipClose_1gu87_14:hover,._chipClose_1gu87_14:focus-visible{color:var(--ci-chip-close-hover,var(--text-primary,#161b2d))}._wrapper_teqwe_1{background:var(--ci-bg,var(--bg-control-neutral,#fcfcfc));border-color:var(--ci-border,var(--stroke-tertiary,#e0e6f0))}._wrapper_teqwe_1:focus-within,._wrapper_teqwe_1:active{outline-color:var(--ci-border-focus,var(--stroke-focus-blue,#6785fb))}._wrapper_teqwe_1._wrapperDisabled_teqwe_8{color:var(--ci-text-disabled,var(--text-control-disable-beta,#848e9c));cursor:not-allowed}._textarea_teqwe_13{color:var(--ci-text,var(--text-primary,#161b2d))}._textarea_teqwe_13::placeholder{color:var(--ci-placeholder,var(--text-secondary,#57647a))}._textarea_teqwe_13:disabled{color:var(--ci-text-disabled,var(--text-control-disable-beta,#848e9c));cursor:not-allowed}._modelSelectorButton_teqwe_24 ._modelSelectorCaret_teqwe_24{color:var(--ci-model-selector-caret-color,var(--text-primary,#161b2d))}._modelSelectorButton_teqwe_24:hover{background:var(--ci-model-selector-hover-bg,var(--bg-control-accent-alpha-hover,#2764d924))}._modelSelectorButton_teqwe_24:active{background:var(--ci-model-selector-hover-bg,var(--bg-control-accent-alpha-active,#2764d933))}._modelSelectorButton_teqwe_24._modelSelectorButtonDisabled_teqwe_33{opacity:.5}._modelSelectorButton_teqwe_24._modelSelectorButtonDisabled_teqwe_33 ._modelSelectorCaret_teqwe_24{color:var(--ci-model-selector-disabled-color,var(--text-control-disable-beta,#848e9c))}._wrapperError_129ri_1{border-color:var(--ci-voice-error,var(--stroke-error,#ae2f2f))}._waveformCanvas_129ri_5{color:var(--ci-voice-waveform,var(--text-primary,#161b2d))}@keyframes _recording-pulse_129ri_1{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.8)}}._recordingDot_129ri_19{background:var(--ci-voice-accent,var(--text-error,#ae2f2f));animation:1.2s ease-in-out infinite _recording-pulse_129ri_1}._searchHeader_ibyso_1{background:var(--ms-search-header-bg,var(--bg-layer-raised,#fcfcfc))}._selectedItem_ibyso_5{background:var(--ms-selected-item-bg,var(--bg-accent-primary-alpha,#7da4ff2e))}._selectedItemCheck_ibyso_9{color:var(--ms-selected-item-check,var(--text-accent,#1d4ed8))}._divider_s5khb_1{background:var(--ci-sheet-divider,var(--bg-layer-4,#d1dbea))}._item_s5khb_5{color:var(--ci-sheet-text,var(--text-primary,#161b2d))}._item_s5khb_5:hover{background:var(--ci-sheet-item-hover,var(--bg-layer-raised,#fcfcfc))}._item_s5khb_5:active{background:var(--ci-sheet-item-active,var(--bg-layer-4,#d1dbea))}._itemIcon_s5khb_15{color:var(--ci-sheet-icon,var(--text-secondary,#57647a))}._checkIcon_s5khb_19{color:var(--ci-check-icon,var(--text-accent,#1d4ed8))}._stateLabel_s5khb_23{color:var(--ci-sheet-text,var(--text-secondary,#57647a))}._welcome_n2ph8_1{color:var(--ci-welcome-color,var(--text-primary,#161b2d))}
1
+ @keyframes _slide-up_1d50f_1{0%{transform:translateY(100%)}to{transform:translateY(0)}}._backdrop_1d50f_9{background:var(--ci-backdrop,var(--bg-backdrop,#161b2d4d))}._sheet_1d50f_13{background:var(--ci-sheet-bg,var(--bg-layer-raised,#fcfcfc));animation:.3s cubic-bezier(.32,.72,0,1) _slide-up_1d50f_1}._title_1d50f_18{color:var(--ci-sheet-text,var(--text-primary,#161b2d))}._divider_1d50f_22{background:var(--ci-sheet-divider,var(--stroke-tertiary,#e0e6f0))}._item_5iycw_1{color:var(--ci-sheet-text,var(--text-primary,#161b2d))}._item_5iycw_1:hover{background:var(--ci-sheet-item-hover,var(--bg-layer-raised,#fcfcfc))}._item_5iycw_1:active{background:var(--ci-sheet-item-active,var(--bg-layer-4,#d1dbea))}._itemIcon_5iycw_11{color:var(--ci-sheet-icon,var(--text-secondary,#57647a))}._label_14i7c_1{color:var(--csf-label-text,var(--text-primary,#161b2d))!important}._modal_kl0h0_1{background:var(--csm-bg,var(--bg-layer-raised,#fcfcfc))!important}._icon_1fv6z_1{color:var(--tbs-icon-text,var(--text-secondary,#57647a))}._selectedIcon_1fv6z_5{color:var(--tbs-selected-icon-text,var(--text-accent,#1d4ed8))}._selectedToolIcon_r268y_1{color:var(--aab-selected-tool-icon,var(--text-accent,#1d4ed8))}._toolIcon_r268y_5{color:var(--aab-tool-icon,var(--text-secondary,#57647a))}._chevronIcon_r268y_9{color:var(--aab-chevron-icon,var(--text-secondary,#57647a))}._chip_1gu87_1{background:var(--ci-chip-bg,var(--bg-layer-base,#f5f7fa));border-color:var(--ci-chip-border,var(--stroke-secondary,#d1dbea))}._chipIcon_1gu87_6{color:var(--ci-chip-icon,var(--text-secondary,#57647a))}._chipText_1gu87_10{color:var(--ci-chip-text,var(--text-primary,#161b2d))}._chipClose_1gu87_14{color:var(--ci-chip-close,var(--text-secondary,#57647a))}._chipClose_1gu87_14:hover,._chipClose_1gu87_14:focus-visible{color:var(--ci-chip-close-hover,var(--text-primary,#161b2d))}._wrapper_teqwe_1{background:var(--ci-bg,var(--bg-control-neutral,#fcfcfc));border-color:var(--ci-border,var(--stroke-tertiary,#e0e6f0))}._wrapper_teqwe_1:focus-within,._wrapper_teqwe_1:active{outline-color:var(--ci-border-focus,var(--stroke-focus-blue,#6785fb))}._wrapper_teqwe_1._wrapperDisabled_teqwe_8{color:var(--ci-text-disabled,var(--text-control-disable-beta,#848e9c));cursor:not-allowed}._textarea_teqwe_13{color:var(--ci-text,var(--text-primary,#161b2d))}._textarea_teqwe_13::placeholder{color:var(--ci-placeholder,var(--text-secondary,#57647a))}._textarea_teqwe_13:disabled{color:var(--ci-text-disabled,var(--text-control-disable-beta,#848e9c));cursor:not-allowed}._modelSelectorButton_teqwe_24 ._modelSelectorCaret_teqwe_24{color:var(--ci-model-selector-caret-color,var(--text-primary,#161b2d))}._modelSelectorButton_teqwe_24:hover{background:var(--ci-model-selector-hover-bg,var(--bg-control-accent-alpha-hover,#2764d924))}._modelSelectorButton_teqwe_24:active{background:var(--ci-model-selector-hover-bg,var(--bg-control-accent-alpha-active,#2764d933))}._modelSelectorButton_teqwe_24._modelSelectorButtonDisabled_teqwe_33{opacity:.5}._modelSelectorButton_teqwe_24._modelSelectorButtonDisabled_teqwe_33 ._modelSelectorCaret_teqwe_24{color:var(--ci-model-selector-disabled-color,var(--text-control-disable-beta,#848e9c))}._wrapperError_129ri_1{border-color:var(--ci-voice-error,var(--stroke-error,#ae2f2f))}._waveformCanvas_129ri_5{color:var(--ci-voice-waveform,var(--text-primary,#161b2d))}@keyframes _recording-pulse_129ri_1{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.8)}}._recordingDot_129ri_19{background:var(--ci-voice-accent,var(--text-error,#ae2f2f));animation:1.2s ease-in-out infinite _recording-pulse_129ri_1}._searchHeader_ibyso_1{background:var(--ms-search-header-bg,var(--bg-layer-raised,#fcfcfc))}._selectedItem_ibyso_5{background:var(--ms-selected-item-bg,var(--bg-accent-primary-alpha,#7da4ff2e))}._selectedItemCheck_ibyso_9{color:var(--ms-selected-item-check,var(--text-accent,#1d4ed8))}._divider_s5khb_1{background:var(--ci-sheet-divider,var(--bg-layer-4,#d1dbea))}._item_s5khb_5{color:var(--ci-sheet-text,var(--text-primary,#161b2d))}._item_s5khb_5:hover{background:var(--ci-sheet-item-hover,var(--bg-layer-raised,#fcfcfc))}._item_s5khb_5:active{background:var(--ci-sheet-item-active,var(--bg-layer-4,#d1dbea))}._itemIcon_s5khb_15{color:var(--ci-sheet-icon,var(--text-secondary,#57647a))}._checkIcon_s5khb_19{color:var(--ci-check-icon,var(--text-accent,#1d4ed8))}._stateLabel_s5khb_23{color:var(--ci-sheet-text,var(--text-secondary,#57647a))}._welcome_n2ph8_1{color:var(--ci-welcome-color,var(--text-primary,#161b2d))}
2
2
  /*$vite$:1*/
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { AttachmentErrorReason as e, AttachmentType as t, DeploymentIcon as n, RequestStatus as r, ResponseFormat as i, buildCssVars as a, mergeClasses as o, useIsMobile as s } from "@epam/ai-dial-chat-shared";
2
- import { BASE_ICON_SIZE as c, Button as l, CloseButton as u, DIAL_ICON_SIZE as d, DialDropdownIcon as f, DialRadioGroup as p, DialSearch as m, DialSlider as h, DialTooltip as g, Dropdown as _, ElementSize as v, ErrorText as y, GhostIconButton as b, Highlight as x, Input as S, NeutralButton as C, Popup as w, PopupSize as T, PrimaryButton as E, PrimaryIconButton as D, RadioGroupOrientation as O, Skeleton as k, SkeletonVariant as A, StaticIconButton as j } from "@epam/ai-dial-ui-kit";
2
+ import { BASE_ICON_SIZE as c, Button as l, CloseButton as u, DIAL_ICON_SIZE as d, DialDropdownIcon as f, DialRadioGroup as p, DialSearch as m, DialSlider as h, DialTooltip as g, Dropdown as _, ElementSize as v, ErrorText as y, GhostIconButton as b, Highlight as x, NeutralButton as S, Popup as C, PopupSize as w, PrimaryButton as T, PrimaryIconButton as E, RadioGroupOrientation as D, Skeleton as O, SkeletonVariant as k, StaticIconButton as A, Textarea as j } from "@epam/ai-dial-ui-kit";
3
3
  import { IconArrowLeft as ee, IconArrowNarrowRight as M, IconCheck as N, IconChevronDown as te, IconChevronRight as P, IconFile as ne, IconMicrophone as re, IconPaperclip as ie, IconPlayerStopFilled as F, IconPlaystationSquare as I, IconPlus as ae, IconPrompt as oe, IconSettings as se, IconTool as ce, IconX as le } from "@tabler/icons-react";
4
4
  import { createPortal as ue } from "react-dom";
5
5
  import { createElement as L, memo as R, useCallback as z, useEffect as B, useImperativeHandle as de, useLayoutEffect as fe, useMemo as V, useRef as H, useState as U } from "react";
@@ -433,17 +433,19 @@ var Se = (e, t) => {
433
433
  "Precise",
434
434
  "Neutral",
435
435
  "Creative"
436
- ], temperatureHint: b, labelClassName: x = "!dial-small-semi-text", colors: C }) => {
437
- let w = a({ "--csf-label-text": C?.labelText }), T = o(x, ze.label, "gap-1");
436
+ ], temperatureHint: b, labelClassName: x = "!dial-small-semi-text", colors: S }) => {
437
+ let C = a({ "--csf-label-text": S?.labelText }), w = o(x, ze.label, "gap-1");
438
438
  return /* @__PURE__ */ K("div", {
439
- className: "flex flex-col gap-4 px-6 py-3",
440
- style: w,
439
+ className: "flex flex-col gap-4 px-6 pb-3",
440
+ style: C,
441
441
  children: [
442
442
  e.responseFormat && /* @__PURE__ */ G(p, {
443
443
  fieldTitle: u,
444
- labelClassName: T,
444
+ groupLabelClassName: w,
445
+ containerClassName: "!gap-2",
446
+ formItemChildrenClassName: "mb-2",
445
447
  elementId: "response-format",
446
- orientation: O.Column,
448
+ orientation: D.Column,
447
449
  activeRadioButton: t ?? i.Markdown,
448
450
  labelDescription: d,
449
451
  radioButtons: [{
@@ -455,11 +457,12 @@ var Se = (e, t) => {
455
457
  }],
456
458
  onChange: (e) => s(e)
457
459
  }),
458
- e.systemPrompt && /* @__PURE__ */ G(S, {
460
+ e.systemPrompt && /* @__PURE__ */ G(j, {
459
461
  value: n,
460
462
  placeholder: _,
463
+ resize: !0,
461
464
  labelProps: {
462
- className: T,
465
+ className: w,
463
466
  label: g
464
467
  },
465
468
  onChange: (e) => c(e ?? "")
@@ -467,7 +470,7 @@ var Se = (e, t) => {
467
470
  e.temperature && /* @__PURE__ */ G(h, {
468
471
  labelProps: {
469
472
  label: v,
470
- className: T,
473
+ className: w,
471
474
  caption: b
472
475
  },
473
476
  value: r,
@@ -480,7 +483,7 @@ var Se = (e, t) => {
480
483
  ]
481
484
  });
482
485
  }, Ve = ({ isOpen: e, onBack: t, backLabel: n, onClose: r, closeLabel: i, style: a, features: s, initialResponseFormat: c, initialSystemPrompt: l, initialTemperature: u, onSave: d, title: f = "Chat settings", responseFormatLabel: p, responseFormatHint: m, responseFormatMarkdownLabel: h, responseFormatPlainTextLabel: _, systemPromptLabel: v, systemPromptTooltip: y, temperatureLabel: b, temperatureLabels: x, temperatureHint: S, saveLabel: C = "Apply changes", saveDisabledTooltip: w }) => {
483
- let { responseFormat: T, systemPrompt: D, temperature: O, canSubmit: k, setResponseFormat: A, setSystemPrompt: j, setTemperature: ee, handleSubmit: M } = Re({
486
+ let { responseFormat: E, systemPrompt: D, temperature: O, canSubmit: k, setResponseFormat: A, setSystemPrompt: j, setTemperature: ee, handleSubmit: M } = Re({
484
487
  isOpen: e,
485
488
  features: s,
486
489
  initialResponseFormat: c,
@@ -499,7 +502,7 @@ var Se = (e, t) => {
499
502
  style: a,
500
503
  children: [/* @__PURE__ */ G(Be, {
501
504
  features: s,
502
- responseFormat: T,
505
+ responseFormat: E,
503
506
  systemPrompt: D,
504
507
  temperature: O,
505
508
  onResponseFormatChange: A,
@@ -520,7 +523,7 @@ var Se = (e, t) => {
520
523
  tooltip: w,
521
524
  hideTooltip: k || !w,
522
525
  triggerClassName: "w-full",
523
- children: /* @__PURE__ */ G(E, {
526
+ children: /* @__PURE__ */ G(T, {
524
527
  label: C,
525
528
  onClick: M,
526
529
  disabled: !k,
@@ -529,8 +532,8 @@ var Se = (e, t) => {
529
532
  })
530
533
  })]
531
534
  });
532
- }, He = { modal: "_modal_od073_1" }, Ue = ({ features: e, initialResponseFormat: t, initialSystemPrompt: n, initialTemperature: r, onSave: i, onClose: a, title: o = "Chat settings", responseFormatLabel: s, responseFormatHint: c, responseFormatMarkdownLabel: l, responseFormatPlainTextLabel: u, systemPromptLabel: d, systemPromptTooltip: f, temperatureLabel: p, temperatureLabels: m, temperatureHint: h, saveLabel: _ = "Apply changes", saveDisabledTooltip: v, backgroundClassName: y = He.modal }) => {
533
- let { responseFormat: b, systemPrompt: x, temperature: S, canSubmit: C, setResponseFormat: D, setSystemPrompt: O, setTemperature: k, handleSubmit: A } = Re({
535
+ }, He = { modal: "_modal_kl0h0_1" }, Ue = ({ features: e, initialResponseFormat: t, initialSystemPrompt: n, initialTemperature: r, onSave: i, onClose: a, title: o = "Chat settings", titleClassName: s = "dial-h1-text", responseFormatLabel: c, responseFormatHint: l, responseFormatMarkdownLabel: u, responseFormatPlainTextLabel: d, systemPromptLabel: f, systemPromptTooltip: p, temperatureLabel: m, temperatureLabels: h, temperatureHint: _, saveLabel: v = "Apply changes", saveDisabledTooltip: y, backgroundClassName: b = He.modal }) => {
536
+ let { responseFormat: x, systemPrompt: S, temperature: E, canSubmit: D, setResponseFormat: O, setSystemPrompt: k, setTemperature: A, handleSubmit: j } = Re({
534
537
  features: e,
535
538
  initialResponseFormat: t,
536
539
  initialSystemPrompt: n,
@@ -538,41 +541,42 @@ var Se = (e, t) => {
538
541
  onSave: i,
539
542
  onClose: a
540
543
  });
541
- return /* @__PURE__ */ G(w, {
544
+ return /* @__PURE__ */ G(C, {
542
545
  open: !0,
543
546
  header: o,
544
- size: T.Sm,
547
+ titleClassName: s,
548
+ size: w.Sm,
545
549
  onClose: a,
546
- className: y,
550
+ className: b,
547
551
  footer: /* @__PURE__ */ G("div", {
548
552
  className: "flex justify-end px-6 py-4",
549
553
  children: /* @__PURE__ */ G(g, {
550
- tooltip: v,
551
- hideTooltip: C || !v,
552
- children: /* @__PURE__ */ G(E, {
553
- label: _,
554
- onClick: A,
555
- disabled: !C
554
+ tooltip: y,
555
+ hideTooltip: D || !y,
556
+ children: /* @__PURE__ */ G(T, {
557
+ label: v,
558
+ onClick: j,
559
+ disabled: !D
556
560
  })
557
561
  })
558
562
  }),
559
563
  children: /* @__PURE__ */ G(Be, {
560
564
  features: e,
561
- responseFormat: b,
562
- systemPrompt: x,
563
- temperature: S,
564
- onResponseFormatChange: D,
565
- onSystemPromptChange: O,
566
- onTemperatureChange: k,
567
- responseFormatLabel: s,
568
- responseFormatHint: c,
569
- responseFormatMarkdownLabel: l,
570
- responseFormatPlainTextLabel: u,
571
- systemPromptLabel: d,
572
- systemPromptTooltip: f,
573
- temperatureLabel: p,
574
- temperatureLabels: m,
575
- temperatureHint: h
565
+ responseFormat: x,
566
+ systemPrompt: S,
567
+ temperature: E,
568
+ onResponseFormatChange: O,
569
+ onSystemPromptChange: k,
570
+ onTemperatureChange: A,
571
+ responseFormatLabel: c,
572
+ responseFormatHint: l,
573
+ responseFormatMarkdownLabel: u,
574
+ responseFormatPlainTextLabel: d,
575
+ systemPromptLabel: f,
576
+ systemPromptTooltip: p,
577
+ temperatureLabel: m,
578
+ temperatureLabels: h,
579
+ temperatureHint: _
576
580
  })
577
581
  });
578
582
  };
@@ -990,7 +994,7 @@ var We = {
990
994
  }),
991
995
  "aria-label": s,
992
996
  onClick: i
993
- }), h && /* @__PURE__ */ G(D, {
997
+ }), h && /* @__PURE__ */ G(E, {
994
998
  icon: /* @__PURE__ */ G(F, {
995
999
  size: d.LG,
996
1000
  "aria-hidden": !0
@@ -1020,7 +1024,7 @@ var We = {
1020
1024
  className: "mt-1 px-1"
1021
1025
  })]
1022
1026
  });
1023
- }, tt = ({ onSend: e, isDisabled: t = !1, ariaLabel: n = "Send message", isExiting: r = !1 }) => /* @__PURE__ */ G(D, {
1027
+ }, tt = ({ onSend: e, isDisabled: t = !1, ariaLabel: n = "Send message", isExiting: r = !1 }) => /* @__PURE__ */ G(E, {
1024
1028
  "aria-label": n,
1025
1029
  onClick: () => e?.(),
1026
1030
  disabled: t,
@@ -1029,19 +1033,19 @@ var We = {
1029
1033
  size: d.LG,
1030
1034
  className: "rtl:scale-x-[-1]"
1031
1035
  })
1032
- }), nt = ({ onStop: e, ariaLabel: t = "Stop streaming" }) => /* @__PURE__ */ G(j, {
1036
+ }), nt = ({ onStop: e, ariaLabel: t = "Stop streaming" }) => /* @__PURE__ */ G(A, {
1033
1037
  icon: /* @__PURE__ */ G(I, { size: d.LG }),
1034
1038
  onClick: () => e?.(),
1035
1039
  "aria-label": t
1036
- }), Z = ({ size: e = 20 }) => /* @__PURE__ */ G(k, {
1037
- variant: A.Circular,
1040
+ }), Z = ({ size: e = 20 }) => /* @__PURE__ */ G(O, {
1041
+ variant: k.Circular,
1038
1042
  width: e,
1039
1043
  height: e,
1040
1044
  active: !0
1041
1045
  }), rt = ({ loadingLabel: e }) => /* @__PURE__ */ K("span", {
1042
1046
  className: "flex min-w-0 flex-1 items-center",
1043
- children: [/* @__PURE__ */ G(k, {
1044
- variant: A.Text,
1047
+ children: [/* @__PURE__ */ G(O, {
1048
+ variant: k.Text,
1045
1049
  width: "100%",
1046
1050
  height: 16,
1047
1051
  active: !0
@@ -1733,7 +1737,7 @@ var kt = {
1733
1737
  trigger: [],
1734
1738
  outsideClosable: !0,
1735
1739
  renderOverlay: () => l(() => m?.(!1)),
1736
- listClassName: "cp-dropdown-overlay !w-[320px]",
1740
+ listClassName: "!w-[368px] !bg-layer-raised",
1737
1741
  children: /* @__PURE__ */ G(g, {
1738
1742
  tooltip: C,
1739
1743
  children: /* @__PURE__ */ K("button", {
@@ -1759,7 +1763,7 @@ var kt = {
1759
1763
  menuHeader: T,
1760
1764
  placement: "bottom-end",
1761
1765
  matchReferenceWidth: !1,
1762
- listClassName: "cp-dropdown-overlay !w-[240px] !max-h-80",
1766
+ listClassName: "!w-[240px] !max-h-80",
1763
1767
  onOpenChange: s ? void 0 : E,
1764
1768
  size: v.Standard,
1765
1769
  caretIcon: O,
@@ -1768,7 +1772,7 @@ var kt = {
1768
1772
  })
1769
1773
  })
1770
1774
  });
1771
- }, Ft = 160, It = ({ message: e = "", messageRevision: t, onSend: n, onUploadAttachment: r, onStop: i, isStreaming: l = !1, onChange: u, onAttachmentsChange: f, placeholder: p = "Type a message...", ariaLabel: m, attachLabel: h = "Attach file", fileAccept: g, addMenuTitle: _ = "Add", menuTitle: v = "Menu", menuCloseLabel: y = "Close", removeLabel: b, retryLabel: x, sendLabel: S, stopLabel: C, micLabel: w = "Record voice message", stopRecordingLabel: T, discardRecordingLabel: E, colors: D, typography: O, className: k, pendingDropFiles: A = [], onDropFilesConsumed: ee, pendingAttachments: M = [], onPendingAttachmentsConsumed: N, pasteTextThreshold: te = 4e3, maxMessageLength: P = 5e4, deployments: ie, selectedDeploymentId: F, onDeploymentChange: I, modelSelectorLabels: ae, initialAttachments: oe = [], isStacked: se = !1, hideAddButton: ce = !1, hideAttachFile: le = !1, hideActionBar: ue = !1, renderFooterActions: L, isInputDisabled: R = !1, isModelSelectorDisabled: B = !1, isSendDisabled: de = !1, isAudioMessageSupported: fe = !1, sendOnEnter: pe = Fe.Enter, prefixAttachments: me = [], onRemovePrefixAttachment: he, chatSettings: _e, toolsMenuItems: ve, onToolToggle: ye, toolsMenuTitle: be, toolsBackLabel: Se, toolsChipLabels: Ce, promptsMenuOverlay: q, promptsMenuTitle: we, promptsBackLabel: De, autoFocus: Oe = !1, messageHistory: je, onDialFileSystemClick: Me, dialFileSystemLabel: Ne, validateAttachment: Ie, onAttachmentClick: Le, modelPickerOverlay: Re, maximumAttachmentsAmount: ze, onAttachmentsLimitExceeded: Be, isAttachmentsEnabled: Ve = !0, usageLimitsSlot: He, onMessageTooLong: Ue }) => {
1775
+ }, Ft = 160, It = ({ message: e = "", messageRevision: t, onSend: n, onUploadAttachment: r, onStop: i, isStreaming: l = !1, onChange: u, onAttachmentsChange: f, placeholder: p = "Type a message...", ariaLabel: m, attachLabel: h = "Attach file", fileAccept: g, addMenuTitle: _ = "Add", menuTitle: v = "Menu", menuCloseLabel: y = "Close", removeLabel: b, retryLabel: x, sendLabel: S, stopLabel: C, micLabel: w = "Record voice message", stopRecordingLabel: T, discardRecordingLabel: E, colors: D, typography: O, className: k, pendingDropFiles: j = [], onDropFilesConsumed: ee, pendingAttachments: M = [], onPendingAttachmentsConsumed: N, pasteTextThreshold: te = 4e3, maxMessageLength: P = 5e4, deployments: ie, selectedDeploymentId: F, onDeploymentChange: I, modelSelectorLabels: ae, initialAttachments: oe = [], isStacked: se = !1, hideAddButton: ce = !1, hideAttachFile: le = !1, hideActionBar: ue = !1, renderFooterActions: L, isInputDisabled: R = !1, isModelSelectorDisabled: B = !1, isSendDisabled: de = !1, isAudioMessageSupported: fe = !1, sendOnEnter: pe = Fe.Enter, prefixAttachments: me = [], onRemovePrefixAttachment: he, chatSettings: _e, toolsMenuItems: ve, onToolToggle: ye, toolsMenuTitle: be, toolsBackLabel: Se, toolsChipLabels: Ce, promptsMenuOverlay: q, promptsMenuTitle: we, promptsBackLabel: De, autoFocus: Oe = !1, messageHistory: je, onDialFileSystemClick: Me, dialFileSystemLabel: Ne, validateAttachment: Ie, onAttachmentClick: Le, modelPickerOverlay: Re, maximumAttachmentsAmount: ze, onAttachmentsLimitExceeded: Be, isAttachmentsEnabled: Ve = !0, usageLimitsSlot: He, onMessageTooLong: Ue }) => {
1772
1776
  let We = s(), [Ge, Ke] = U(!1), J = ke(je), Je = V(() => a({
1773
1777
  "--ci-bg": D?.background,
1774
1778
  "--ci-text": D?.text,
@@ -1798,7 +1802,7 @@ var kt = {
1798
1802
  onUploadAttachment: r,
1799
1803
  onAttachmentsChange: f,
1800
1804
  validateAttachment: Ie,
1801
- pendingDropFiles: A,
1805
+ pendingDropFiles: j,
1802
1806
  onDropFilesConsumed: ee,
1803
1807
  pendingAttachments: M,
1804
1808
  onPendingAttachmentsConsumed: N,
@@ -1977,7 +1981,7 @@ var kt = {
1977
1981
  ariaLabel: S,
1978
1982
  isExiting: St
1979
1983
  }, Ct)
1980
- ] }), Et && /* @__PURE__ */ G(j, {
1984
+ ] }), Et && /* @__PURE__ */ G(A, {
1981
1985
  icon: /* @__PURE__ */ G(re, {
1982
1986
  size: d.LG,
1983
1987
  "aria-hidden": !0
@@ -2012,7 +2016,7 @@ var kt = {
2012
2016
  })
2013
2017
  })]
2014
2018
  });
2015
- }, zt = ({ message: e, initialAttachments: t = [], onCancel: n, onSave: i, onUploadAttachment: a, cancelLabel: s = "Cancel", saveLabel: l = "Save & Submit", ariaLabel: u, removeLabel: d, retryLabel: f, addMenuTitle: p = "Add", attachLabel: m = "Attach file", menuTitle: h = "Menu", menuCloseLabel: g = "Close", className: _, pendingDropFiles: v, onDropFilesConsumed: y, validateAttachment: b, isAttachmentsEnabled: x, hideAttachFile: S = !1, fileAccept: w, maximumAttachmentsAmount: T, onAttachmentsLimitExceeded: D, onDialFileSystemClick: O, dialFileSystemLabel: k, pendingAttachments: A, onPendingAttachmentsConsumed: j, onAttachmentClick: ee, pasteTextThreshold: M, maxMessageLength: N = 5e4, onMessageTooLong: te }) => {
2019
+ }, zt = ({ message: e, initialAttachments: t = [], onCancel: n, onSave: i, onUploadAttachment: a, cancelLabel: s = "Cancel", saveLabel: l = "Save & Submit", ariaLabel: u, removeLabel: d, retryLabel: f, addMenuTitle: p = "Add", attachLabel: m = "Attach file", menuTitle: h = "Menu", menuCloseLabel: g = "Close", className: _, pendingDropFiles: v, onDropFilesConsumed: y, validateAttachment: b, isAttachmentsEnabled: x, hideAttachFile: C = !1, fileAccept: w, maximumAttachmentsAmount: E, onAttachmentsLimitExceeded: D, onDialFileSystemClick: O, dialFileSystemLabel: k, pendingAttachments: A, onPendingAttachmentsConsumed: j, onAttachmentClick: ee, pasteTextThreshold: M, maxMessageLength: N = 5e4, onMessageTooLong: te }) => {
2016
2020
  let P = H(null), [re, ie] = U([]);
2017
2021
  B(() => {
2018
2022
  v?.length && (ie(v), y?.());
@@ -2061,7 +2065,7 @@ var kt = {
2061
2065
  onRemovePrefixAttachment: L,
2062
2066
  validateAttachment: b,
2063
2067
  isAttachmentsEnabled: x,
2064
- maximumAttachmentsAmount: T,
2068
+ maximumAttachmentsAmount: E,
2065
2069
  onAttachmentsLimitExceeded: D,
2066
2070
  pendingAttachments: A,
2067
2071
  onPendingAttachmentsConsumed: j,
@@ -2073,7 +2077,7 @@ var kt = {
2073
2077
  className: "flex items-center justify-between",
2074
2078
  children: [/* @__PURE__ */ G("div", {
2075
2079
  className: "flex",
2076
- children: !S && /* @__PURE__ */ K(W, { children: [/* @__PURE__ */ G("input", {
2080
+ children: !C && /* @__PURE__ */ K(W, { children: [/* @__PURE__ */ G("input", {
2077
2081
  ref: P,
2078
2082
  type: "file",
2079
2083
  multiple: !0,
@@ -2092,10 +2096,10 @@ var kt = {
2092
2096
  })] })
2093
2097
  }), /* @__PURE__ */ K("div", {
2094
2098
  className: "flex gap-2",
2095
- children: [/* @__PURE__ */ G(C, {
2099
+ children: [/* @__PURE__ */ G(S, {
2096
2100
  label: s,
2097
2101
  onClick: n
2098
- }), /* @__PURE__ */ G(E, {
2102
+ }), /* @__PURE__ */ G(T, {
2099
2103
  label: l,
2100
2104
  onClick: de,
2101
2105
  disabled: !ue
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@epam/ai-dial-conversation-input",
3
3
  "description": "Conversation message input with model selection, attachments, voice input, and edit mode",
4
- "version": "1.1.0-dev.209",
4
+ "version": "1.1.0-dev.211",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
7
7
  "main": "./index.js",
@@ -17,8 +17,8 @@
17
17
  }
18
18
  },
19
19
  "peerDependencies": {
20
- "@epam/ai-dial-attachment-input": "1.1.0-dev.209",
21
- "@epam/ai-dial-chat-shared": "1.1.0-dev.209",
20
+ "@epam/ai-dial-attachment-input": "1.1.0-dev.211",
21
+ "@epam/ai-dial-chat-shared": "1.1.0-dev.211",
22
22
  "@tabler/icons-react": "^3.44.0",
23
23
  "react": "^19.0.0",
24
24
  "react-dom": "^19.2.6",