@bothub-chat/ui 2.40.0 → 2.40.1-develop-22066e73-be5e-4f26-a589-182e4e652acd

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.
Files changed (45) hide show
  1. package/README.md +23 -23
  2. package/dist/components/badge-select-dropdown/index.d.ts +11 -7
  3. package/dist/components/badge-select-dropdown/index.js +1 -1
  4. package/dist/components/badge-select-dropdown/styled.d.ts +6 -278
  5. package/dist/components/badge-select-dropdown/styled.js +1 -3
  6. package/dist/components/badge-select-dropdown/types.d.ts +1 -0
  7. package/dist/components/input-message/index.js +1 -1
  8. package/dist/components/input-message/utils.d.ts +1 -0
  9. package/dist/components/input-message/utils.js +1 -1
  10. package/dist/components/message/components/image/index.js +1 -1
  11. package/dist/components/message/components/image/lib/utils.d.ts +3 -0
  12. package/dist/components/message/components/image/lib/utils.js +1 -0
  13. package/dist/components/message/components/image/styled.js +3 -3
  14. package/dist/components/scrollable-tabs/index.d.ts +5 -4
  15. package/dist/components/scrollable-tabs/index.js +1 -1
  16. package/dist/components/select-field/context.d.ts +1 -1
  17. package/dist/components/select-field/context.js +1 -1
  18. package/dist/components/select-field/index.d.ts +8 -45
  19. package/dist/components/select-field/index.js +1 -1
  20. package/dist/components/select-field/option/collapse/index.d.ts +1 -1
  21. package/dist/components/select-field/option/collapse/index.js +1 -1
  22. package/dist/components/select-field/option/list/index.d.ts +1 -0
  23. package/dist/components/select-field/option/list/index.js +1 -1
  24. package/dist/components/select-field/option/select-field-option/index.d.ts +2 -1
  25. package/dist/components/select-field/option/select-field-option/index.js +1 -1
  26. package/dist/components/select-field/option/select-field-option/styled.d.ts +1 -0
  27. package/dist/components/select-field/option/select-field-option/styled.js +16 -23
  28. package/dist/components/select-field/select-field-group/styled.js +1 -1
  29. package/dist/components/select-field/select-modal/filterData.d.ts +2 -0
  30. package/dist/components/select-field/select-modal/filterData.js +1 -0
  31. package/dist/components/select-field/select-modal/index.d.ts +26 -0
  32. package/dist/components/select-field/select-modal/index.js +1 -0
  33. package/dist/components/select-field/select-modal/styled.d.ts +1956 -0
  34. package/dist/components/select-field/select-modal/styled.js +12 -0
  35. package/dist/components/select-field/styled.d.ts +7 -859
  36. package/dist/components/select-field/styled.js +15 -21
  37. package/dist/components/select-field/types.d.ts +5 -1
  38. package/dist/components/select-field/useSelectField.d.ts +40 -0
  39. package/dist/components/select-field/useSelectField.js +1 -0
  40. package/dist/index.js +1 -1
  41. package/package.json +1 -1
  42. package/dist/components/badge-select-dropdown/context.js +0 -1
  43. package/dist/components/badge-select-dropdown/item/index.js +0 -1
  44. package/dist/components/badge-select-dropdown/item/styled.js +0 -1
  45. package/dist/components/select-field/filterData.js +0 -1
@@ -1,63 +1,26 @@
1
- import React from 'react';
2
- import { SelectFieldChangeEventHandler, SelectFieldData, SelectFieldDataItem, SelectFieldInputChangeEventHandler, SelectFieldInputType, SelectFieldMultiChangeEventHandler, SelectFieldMultiValueChangeEventHandler, SelectFieldOptionClickEventHandler, SelectFieldPlacement, SelectFieldSize, SelectFieldValueChangeEventHandler } from './types';
3
- import { ITab } from '../scrollable-tabs/types';
4
- export interface SelectFieldDefaultProps {
5
- multiple?: false;
6
- value?: SelectFieldDataItem | null;
7
- onChange?: SelectFieldChangeEventHandler;
8
- onValueChange?: SelectFieldValueChangeEventHandler;
9
- }
10
- export interface SelectFieldMultiProps {
11
- multiple: true;
12
- value?: SelectFieldDataItem[];
13
- onChange?: SelectFieldMultiChangeEventHandler;
14
- onValueChange?: SelectFieldMultiValueChangeEventHandler;
15
- }
16
- export type ValueType = SelectFieldDataItem | SelectFieldDataItem[] | null;
17
- export type ValueSetter = (value: ValueType) => void;
18
- export type SelectFieldProps = (SelectFieldDefaultProps | SelectFieldMultiProps) & {
19
- openedModel?: string;
1
+ import { SelectFieldInputChangeEventHandler, SelectFieldInputType } from './types';
2
+ import { SelectModalGeneralProps } from './select-modal';
3
+ import { UseSelectFieldProps } from './useSelectField';
4
+ export type SelectFieldProps = {
20
5
  className?: string;
21
6
  label?: string | boolean | React.ReactNode;
22
7
  placeholder?: string;
23
- data?: SelectFieldData;
24
8
  fullWidth?: boolean;
25
- contentWidth?: number;
26
- fieldBlockPositionWrapper?: 'inherit';
27
9
  error?: string;
28
- disabled?: boolean;
29
10
  skeleton?: boolean;
30
- blur?: boolean;
31
- size?: SelectFieldSize;
32
- disableSelect?: boolean;
33
- placement?: SelectFieldPlacement;
34
- disableScrollbar?: boolean;
35
- before?: SelectFieldData;
36
- after?: SelectFieldData;
37
11
  enableInput?: boolean;
38
12
  inputType?: SelectFieldInputType;
39
13
  inputValue?: string;
40
14
  clearable?: boolean;
41
15
  loading?: boolean;
42
16
  padding?: [number, number];
43
- tabs?: {
44
- tabs: ITab[];
45
- onTabClick?: (id: string | null) => void;
46
- defaultTabId?: string;
47
- };
48
- search?: boolean;
49
- searchPlaceholder?: string;
50
- followContentHeight?: boolean;
51
- contentHeight?: number;
52
- resetStyleState?: boolean;
53
17
  dataTest?: string;
54
- onOptionClick?: SelectFieldOptionClickEventHandler;
55
18
  onInputChange?: SelectFieldInputChangeEventHandler;
56
- onSelectClick?: () => void;
57
- onClose?: () => void;
58
19
  onPointerLeave?: React.PointerEventHandler<HTMLDivElement>;
59
- } & React.PropsWithChildren;
60
- export declare const SelectField: React.FC<SelectFieldProps>;
20
+ } & SelectModalGeneralProps & UseSelectFieldProps & React.PropsWithChildren;
21
+ export declare const SelectField: ({ className, label, placeholder, data, fullWidth, contentWidth, error, skeleton, blur, size, disableSelect, disableScrollbar, before, after, loading, enableInput, inputType, inputValue: initialInputValue, clearable, tabs, search, searchPlaceholder, resetStyleState, children, modalWidth, dataTest, selectedColor, compactWidth, onOptionClick, onInputChange, onPointerLeave, ...useSelectFieldProps }: SelectFieldProps) => import("react/jsx-runtime").JSX.Element;
61
22
  export * from './types';
62
23
  export * from './styled';
63
24
  export * from './context';
25
+ export * from './select-modal';
26
+ export * from './useSelectField';
@@ -1 +1 @@
1
- import{__rest as e}from"tslib";import{jsx as l,jsxs as t,Fragment as n}from"react/jsx-runtime";import{useCallback as o,useState as i,useRef as r,useEffect as a}from"react";import{useTransition as c}from"@react-spring/web";import{SelectFieldStyled as s,SelectFieldLabel as d,SelectFieldInput as u,SelectFieldInputLeftSide as p,SelectFieldSearchIcon as h,SelectFieldInputNative as b,SelectFieldPlaceholder as f,SelectFieldValue as m,SelectFieldValueText as g,SelectFieldValueColor as v,SelectFieldColorValueText as y,SelectFieldValues as w,SelectFieldValueList as C,SelectFieldValueListItem as $,SelectFieldInputSide as j,SelectFieldClearButton as k,SelectFieldLoader as S,SelectFieldArrow as x,SelectFieldSkeleton as T,AnimatedSelectFieldBlock as O,SelectFieldBlockPositionWrapper as L,SelectFieldBlockContent as A,SelectFieldGroups as E,SelectFieldTabsContainer as z,SelectFieldTabs as H,SelectFieldSearch as P,SelectFieldErrorText as W}from"./styled.js";export{SelectFieldBlock}from"./styled.js";import"../../theme/index.js";import{Skeleton as B}from"../skeleton/index.js";import{Portal as I}from"../portal/index.js";import{IconProvider as V}from"../icon/context.js";import"../icon/styled.js";import{Tooltip as M}from"../tooltip/index.js";import{SelectFieldProvider as F}from"./context.js";export{SelectFieldConsumer,SelectFieldContext,useSelectField}from"./context.js";import{SelectFieldOptions as D}from"./option/list/index.js";import"./option/collapse/styled.js";import{filterData as N}from"./filterData.js";import{SelectFieldGroup as R}from"./select-field-group/index.js";import{useTheme as X}from"../../theme/hook.js";import{TooltipConsumer as Y}from"../tooltip/context.js";const Z=Z=>{var{openedModel:q,className:G,label:J,value:K,placeholder:Q,data:U=[],fullWidth:_=!1,fieldBlockPositionWrapper:ee,contentWidth:le,error:te,disabled:ne=!1,skeleton:oe=!1,blur:ie=!1,size:re="small",disableSelect:ae=!1,placement:ce="bottom-left",disableScrollbar:se=!1,before:de,after:ue,loading:pe=!1,enableInput:he=!1,inputType:be="text",inputValue:fe,clearable:me=!1,tabs:ge,search:ve,searchPlaceholder:ye,followContentHeight:we=!1,contentHeight:Ce,resetStyleState:$e,dataTest:je,onOptionClick:ke,onInputChange:Se,onSelectClick:xe,onClose:Te,onPointerLeave:Oe,children:Le}=Z,Ae=e(Z,["openedModel","className","label","value","placeholder","data","fullWidth","fieldBlockPositionWrapper","contentWidth","error","disabled","skeleton","blur","size","disableSelect","placement","disableScrollbar","before","after","loading","enableInput","inputType","inputValue","clearable","tabs","search","searchPlaceholder","followContentHeight","contentHeight","resetStyleState","dataTest","onOptionClick","onInputChange","onSelectClick","onClose","onPointerLeave","children"]);const Ee=X(),{multiple:ze=!1}=Ae,He=o((e=>{var l,t,n,o,i,r;if(Ae.multiple&&Array.isArray(e)){const n=e;null===(l=Ae.onChange)||void 0===l||l.call(Ae,n),null===(t=Ae.onValueChange)||void 0===t||t.call(Ae,n.map((e=>"string"==typeof e?e:"string"==typeof e.value?e.value:"")).filter((e=>!!e)))}else Ae.multiple||Array.isArray(e)||(null===(n=Ae.onChange)||void 0===n||n.call(Ae,e),e?"string"==typeof e?null===(o=Ae.onValueChange)||void 0===o||o.call(Ae,e):"string"==typeof e.value&&(null===(i=Ae.onValueChange)||void 0===i||i.call(Ae,e.value)):null===(r=Ae.onValueChange)||void 0===r||r.call(Ae,null))}),[Ae.multiple,Ae.onChange,Ae.onValueChange]),Pe=o((e=>{null==Se||Se(e)}),[Se]);let[We,Be]=i(ze?[]:null);void 0!==K&&([We,Be]=[K,He]);let[Ie,Ve]=i("");void 0!==fe&&([Ie,Ve]=[fe,Pe]);const[Me,Fe]=i(!1),[De,Ne]=i(!1),[Re,Xe]=i(0),[Ye,Ze]=i(0),[qe,Ge]=i(0),[Je,Ke]=i(ce),[Qe,Ue]=i([]),[_e,el]=i([0,0,0]),[ll,tl]=i(""),nl=c(De,{from:{opacity:0},enter:{opacity:1},leave:{opacity:0},config:{tension:250,friction:20}}),ol=(e,l)=>{el((t=>t.map(((t,n)=>n===l?e:t))))},il=o((e=>{tl(e.currentTarget.value.trim())}),[tl]),rl=o((()=>{Ne(!1),null==Te||Te()}),[]),al=o((e=>{var l;"object"==typeof e&&e.disabled||("object"==typeof e&&e.noSelect?null===(l=null==e?void 0:e.onClick)||void 0===l||l.call(e,e):(null==ke||ke(e),ae||(ze&&Array.isArray(We)?Be([...new Set([...We,e])]):Be(e)),rl()))}),[We,Be,ze,ke,ae]),cl=o(((e,l)=>{l.stopPropagation(),Array.isArray(We)&&Be("string"==typeof e?We.filter((l=>"string"==typeof l?l!==e:l.value!==e)):We.filter((l=>"string"==typeof l?l!==e.value:l.value!==e.value))),rl()}),[We]),sl=o(((e,l)=>{null==xe||xe();const t=pl.current;if(!t||ne)return;e&&l.stopPropagation();const n=window.innerHeight||document.documentElement.clientHeight,o=t.getBoundingClientRect(),{width:i,height:r}=o;let a=Je;a=o.top-186<0?"bottom-left":o.bottom+186>n?"top-right"===ce?"top-right":"top-left":ce;let c=0,s=0;switch(a){case"bottom-left":c=o.left+window.scrollX,s=o.top+window.scrollY+r;break;case"top-left":c=o.left+window.scrollX,s=o.top+window.scrollY;break;case"top-right":c=o.left+window.scrollX+i,s=o.top+window.scrollY}Xe(c),Ze(s),Ge(i),Ke(a),Ne(!!e||!De)}),[ne,De,Je,ce,xe]),dl=o((e=>{Ve(e.currentTarget.value)}),[Ve]),ul=o((()=>{Be(null),Ve("")}),[Be,Ve]),pl=r(null),hl=r(null),bl=r(!1),[fl,ml]=i(Ce||null);if(we&&hl.current&&!fl){const{height:e}=getComputedStyle(hl.current.children[0]);ml(parseInt(e))}a((()=>{Ue(q?[q]:[]),el([0,0,0]),tl("")}),[$e,q]);const[gl,vl]=i(null),yl=o((()=>{if(pl.current&&"bottom-left"!==Je&&De){const{top:e}=pl.current.getBoundingClientRect();vl(e-20)}else setTimeout((()=>{vl(null)}),175)}),[pl.current,Je,De]);a((()=>(yl(),window.addEventListener("resize",yl),()=>window.removeEventListener("resize",yl))),[yl]),a((()=>{if(De){const e=e=>{const l=pl.current,t=hl.current;null!==l&&null!==t&&(l.contains(e.target)||t.contains(e.target)||rl())};return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}}}),[De]),a((()=>{if(!De)return;const e=e=>{const l=hl.current,t=e.target;l&&l.contains(t)||rl()};return window.addEventListener("scroll",e,!0),()=>{window.removeEventListener("scroll",e,!0)}}),[De,rl]),a((()=>{if(De){const e=e=>{bl.current&&"orientationchange"!==e.type||rl()};return document.addEventListener("scroll",e),window.addEventListener("resize",e),window.addEventListener("orientationchange",e),()=>{document.removeEventListener("scroll",e),window.removeEventListener("resize",e),window.removeEventListener("orientationchange",e)}}}),[De]);const wl=o((e=>Ue((l=>l.includes(e)?l.filter((l=>l!==e)):[...l,e]))),[Qe]);U=U.map((l=>{if("object"==typeof l&&"collapse"===l.type&&l.id&&!l.disabled){const{onClick:t}=l,n=e(l,["onClick"]),o=()=>{t&&t(l),l.id&&wl(l.id)};return Object.assign(Object.assign({},n),{open:Qe.includes(l.id)||l.open,onClick:o})}return l}));const Cl=o((e=>{el([0,0,0]),Ue([]),ge&&ge.onTabClick&&ge.onTabClick(e)}),[ge,el]);return l(F,{selectRef:pl,handleSelectClick:sl.bind(null,!1),children:t(s,{$fullWidth:_,$disabled:ne,className:G,onPointerLeave:Oe,children:[J&&oe&&l(d,{children:l(B,{width:100})}),"string"==typeof J&&!oe&&l(d,{children:J}),"string"!=typeof J&&!oe&&J,Le&&Le,!Le&&t(n,{children:[!oe&&t(u,{$open:De,$error:!!te,$disabled:ne,$skeleton:!1,$blur:ie,$loading:pe,$multiple:ze&&Array.isArray(We)&&We.length>0,ref:pl,onClick:sl.bind(null,!1),"data-test":je,children:[t(p,{children:[(!We||Array.isArray(We)&&0===We.length)&&t(n,{children:[he&&"search"===be&&l(h,{$focus:Me}),he&&l(b,{type:be,value:Ie,placeholder:Q,disabled:ne,onClick:sl.bind(null,!0),onChange:dl,onFocus:Fe.bind(null,!0),onBlur:Fe.bind(null,!1)}),!he&&l(f,{$open:De,children:Q})]}),"string"==typeof We&&""!==We&&l(m,{children:l(g,{children:We})}),We&&"object"==typeof We&&!Array.isArray(We)&&t(m,{children:[We.icon&&l(V,{fill:Ee.colors.base.white,size:18,children:We.icon}),We.color&&l(v,{$color:We.color}),We.label&&l(M,{label:We.label,placement:"top-left",disabled:We.label.length<=128,children:l(Y,{children:({handleTooltipMouseEnter:e,handleTooltipMouseLeave:t})=>l(y,{onMouseEnter:e,onMouseLeave:t,children:We.label})})}),!We.label&&We.value&&l(y,{children:We.value})]}),Array.isArray(We)&&We.length>0&&l(w,{children:l(C,{children:We.map(((e,t)=>{var n,o,i;return"string"==typeof e?l($,{onDelete:cl.bind(null,e),children:e},e):l($,{onDelete:cl.bind(null,e),children:null!==(n=e.label)&&void 0!==n?n:e.value},null!==(i=null!==(o=e.id)&&void 0!==o?o:e.value)&&void 0!==i?i:t)}))})})]}),t(j,{children:[(me&&We||he&&"search"===be&&!pe&&Ie||he&&We)&&l(k,{onClick:ul}),pe&&l(S,{}),l(x,{style:{transform:De?"rotateZ(180deg)":"rotateZ(0deg)"}})]})]}),oe&&l(u,{$open:!1,$error:!1,$disabled:!1,$skeleton:!0,$loading:!1,$blur:ie,$multiple:!1,ref:pl,children:l(T,{})})]}),nl(((e,n)=>n?l(I,{children:l(O,{$contentWidth:le,ref:hl,style:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},0!==Re&&Object.assign(Object.assign({},"top-right"!==Je&&{left:`${Re}px`}),"top-right"===Je&&Object.assign(Object.assign({},void 0===le&&{left:`calc(${Re}px - ${qe})`}),"number"==typeof le&&{left:`calc(${Re}px - ${le>qe?`calc(var(--bothub-scale, 1) * ${le}px)`:`${qe}px`})`}))),0!==Ye&&{top:`${Ye}px`}),void 0===le&&{width:`${qe}px`}),"number"==typeof le&&{width:""+(le>qe?`calc(var(--bothub-scale, 1) * ${le}px)`:`${qe}px`)}),e),children:l(L,{$blur:ie,$width:ee,$placement:Je,style:Object.assign(Object.assign({},we&&fl&&{height:fl}),gl&&{maxHeight:gl}),children:l(A,{children:t(E,{$size:re,children:[!!ge&&l(z,{children:l(H,{tabs:ge.tabs,component:"button",onClick:Cl,defaultTabId:ge.defaultTabId})}),ve&&l(P,{placeholder:ye,value:ll,onChange:il,onClick:()=>{bl.current=!0},onBlur:()=>setTimeout((()=>{bl.current=!1}),500)}),de&&l(R,{scrollTop:_e[0],onScrollTopChange:e=>ol(e,0),$size:re,$disableScrollbar:se,$followContentHeight:!!fl,children:l(D,{value:We,data:N(de,ll),size:re,disableSelect:ae,onOptionClick:al})}),l(R,{scrollTop:_e[1],onScrollTopChange:e=>ol(e,1),$size:re,$disableScrollbar:se,$followContentHeight:!!fl,children:l(D,{value:We,data:N(U,ll),size:re,disableSelect:ae,onOptionClick:al})}),ue&&l(R,{scrollTop:_e[2],onScrollTopChange:e=>ol(e,2),$size:re,$disableScrollbar:se,$followContentHeight:!!fl,children:l(D,{value:We,data:N(ue,ll),size:re,disableSelect:ae,onOptionClick:al})})]})})})})}):null)),te&&l(W,{children:te})]})})};export{O as AnimatedSelectFieldBlock,Z as SelectField,x as SelectFieldArrow,A as SelectFieldBlockContent,L as SelectFieldBlockPositionWrapper,k as SelectFieldClearButton,y as SelectFieldColorValueText,W as SelectFieldErrorText,E as SelectFieldGroups,u as SelectFieldInput,p as SelectFieldInputLeftSide,b as SelectFieldInputNative,j as SelectFieldInputSide,d as SelectFieldLabel,S as SelectFieldLoader,f as SelectFieldPlaceholder,F as SelectFieldProvider,P as SelectFieldSearch,h as SelectFieldSearchIcon,T as SelectFieldSkeleton,s as SelectFieldStyled,H as SelectFieldTabs,z as SelectFieldTabsContainer,m as SelectFieldValue,v as SelectFieldValueColor,C as SelectFieldValueList,$ as SelectFieldValueListItem,g as SelectFieldValueText,w as SelectFieldValues};
1
+ import{__rest as e}from"tslib";import{jsx as l,jsxs as t,Fragment as r}from"react/jsx-runtime";import{useCallback as o,useState as n}from"react";import{SelectFieldStyled as i,SelectFieldLabel as a,SelectFieldInput as d,SelectFieldInputLeftSide as s,SelectFieldSearchIcon as c,SelectFieldInputNative as h,SelectFieldPlaceholder as u,SelectFieldValue as p,SelectFieldValueText as b,SelectFieldValueColor as m,SelectFieldColorValueText as f,SelectFieldValues as g,SelectFieldValueList as y,SelectFieldValueListItem as v,SelectFieldInputSide as C,SelectFieldClearButton as $,SelectFieldLoader as S,SelectFieldArrow as j,SelectFieldSkeleton as k,SelectFieldErrorText as x}from"./styled.js";import"../../theme/index.js";import{Skeleton as W}from"../skeleton/index.js";import{IconProvider as A}from"../icon/context.js";import"../icon/styled.js";import{Tooltip as O}from"../tooltip/index.js";import{SelectFieldProvider as P}from"./context.js";export{SelectFieldConsumer,SelectFieldContext,useSelectFieldContext}from"./context.js";import{SelectModal as T}from"./select-modal/index.js";import{useSelectField as I}from"./useSelectField.js";import{useTheme as F}from"../../theme/hook.js";import{TooltipConsumer as L}from"../tooltip/context.js";const V=V=>{var{className:z,label:M,placeholder:N,data:R,fullWidth:w=!1,contentWidth:D,error:E,skeleton:Z=!1,blur:B=!1,size:q="small",disableSelect:G=!1,disableScrollbar:H=!1,before:J,after:K,loading:Q=!1,enableInput:U=!1,inputType:X="text",inputValue:Y,clearable:_=!1,tabs:ee,search:le,searchPlaceholder:te,resetStyleState:re,children:oe,modalWidth:ne,dataTest:ie,selectedColor:ae,compactWidth:de,onOptionClick:se,onInputChange:ce,onPointerLeave:he}=V,ue=e(V,["className","label","placeholder","data","fullWidth","contentWidth","error","skeleton","blur","size","disableSelect","disableScrollbar","before","after","loading","enableInput","inputType","inputValue","clearable","tabs","search","searchPlaceholder","resetStyleState","children","modalWidth","dataTest","selectedColor","compactWidth","onOptionClick","onInputChange","onPointerLeave"]);const pe=I(ue),{isOpen:be,triggerRef:me,value:fe,disabled:ge,multiple:ye,handleClose:ve,handleInputClick:Ce,setValue:$e}=pe,Se=e(pe,["isOpen","triggerRef","value","disabled","multiple","handleClose","handleInputClick","setValue"]),je=F(),ke=o((e=>{null==ce||ce(e)}),[ce]);let[xe,We]=n("");void 0!==Y&&([xe,We]=[Y,ke]);const[Ae,Oe]=n(!1),Pe=o(((e,l)=>{l.stopPropagation(),Array.isArray(fe)&&$e("string"==typeof e?fe.filter((l=>"string"==typeof l?l!==e:l.value!==e)):fe.filter((l=>"string"==typeof l?l!==e.value:l.value!==e.value))),ve()}),[fe]),Te=o((e=>{We(e.currentTarget.value)}),[We]),Ie=o((()=>{$e(null),We("")}),[$e,We]);return l(P,{selectRef:me,handleSelectClick:Ce.bind(null,!1),children:t(i,{$fullWidth:w,$disabled:ge,className:z,onPointerLeave:he,children:[M&&Z&&l(a,{children:l(W,{width:100})}),"string"==typeof M&&!Z&&l(a,{children:M}),"string"!=typeof M&&!Z&&M,oe&&oe,!oe&&t(r,{children:[!Z&&t(d,{$open:be,$error:!!E,$disabled:ge,$skeleton:!1,$blur:B,$loading:Q,$multiple:ye&&Array.isArray(fe)&&fe.length>0,ref:me,onClick:Ce.bind(null,!1),"data-test":ie,children:[t(s,{children:[(!fe||Array.isArray(fe)&&0===fe.length)&&t(r,{children:[U&&"search"===X&&l(c,{$focus:Ae}),U&&l(h,{type:X,value:xe,placeholder:N,disabled:ge,onClick:Ce.bind(null,!0),onChange:Te,onFocus:Oe.bind(null,!0),onBlur:Oe.bind(null,!1)}),!U&&l(u,{$open:be,children:N})]}),"string"==typeof fe&&""!==fe&&l(p,{children:l(b,{children:fe})}),fe&&"object"==typeof fe&&!Array.isArray(fe)&&t(p,{children:[fe.icon&&l(A,{fill:je.colors.base.white,size:18,children:fe.icon}),fe.color&&l(m,{$color:fe.color}),fe.label&&l(O,{label:fe.label,placement:"top-left",disabled:fe.label.length<=128,children:l(L,{children:({handleTooltipMouseEnter:e,handleTooltipMouseLeave:t})=>l(f,{onMouseEnter:e,onMouseLeave:t,children:fe.label})})}),!fe.label&&fe.value&&l(f,{children:fe.value})]}),Array.isArray(fe)&&fe.length>0&&l(g,{children:l(y,{children:fe.map(((e,t)=>{var r,o,n;return"string"==typeof e?l(v,{onDelete:Pe.bind(null,e),children:e},e):l(v,{onDelete:Pe.bind(null,e),children:null!==(r=e.label)&&void 0!==r?r:e.value},null!==(n=null!==(o=e.id)&&void 0!==o?o:e.value)&&void 0!==n?n:t)}))})})]}),t(C,{children:[(_&&fe||U&&"search"===X&&!Q&&xe||U&&fe)&&l($,{onClick:Ie}),Q&&l(S,{}),l(j,{style:{transform:be?"rotateZ(180deg)":"rotateZ(0deg)"}})]})]}),Z&&l(d,{$open:!1,$error:!1,$disabled:!1,$skeleton:!0,$loading:!1,$blur:B,$multiple:!1,ref:me,children:l(k,{})})]}),l(T,Object.assign({},Se,{isOpen:be,data:R,contentWidth:D,size:q,disableSelect:G,disableScrollbar:H,before:J,after:K,tabs:ee,search:le,searchPlaceholder:te,resetStyleState:re,blur:B,value:fe,multiple:ye,onOptionClick:se,handleClose:ve,setValue:$e,modalWidth:ne,selectedColor:ae,compactWidth:de})),E&&l(x,{children:E})]})})};export{V as SelectField,j as SelectFieldArrow,$ as SelectFieldClearButton,f as SelectFieldColorValueText,x as SelectFieldErrorText,d as SelectFieldInput,s as SelectFieldInputLeftSide,h as SelectFieldInputNative,C as SelectFieldInputSide,a as SelectFieldLabel,S as SelectFieldLoader,u as SelectFieldPlaceholder,P as SelectFieldProvider,c as SelectFieldSearchIcon,k as SelectFieldSkeleton,i as SelectFieldStyled,p as SelectFieldValue,m as SelectFieldValueColor,y as SelectFieldValueList,v as SelectFieldValueListItem,b as SelectFieldValueText,g as SelectFieldValues,T as SelectModal,I as useSelectField};
@@ -7,4 +7,4 @@ export interface SelectFieldCollapseOptionProps extends React.PropsWithChildren,
7
7
  onClick?: SelectFieldOptionClickEventHandler;
8
8
  icon?: React.ReactNode;
9
9
  }
10
- export declare const SelectFieldCollapseOption: React.FC<SelectFieldCollapseOptionProps>;
10
+ export declare const SelectFieldCollapseOption: ({ size, item, children, onClick, icon, ...props }: SelectFieldCollapseOptionProps) => import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- import{__rest as t}from"tslib";import{jsxs as e,jsx as o}from"react/jsx-runtime";import{useState as i,useLayoutEffect as r}from"react";import{SelectFieldCollapseOptionStyled as s,SelectFieldCollapseOptionHead as n,SelectFieldCollapseOptionHeadSide as l,SelectFieldCollapseOptionText as c,SelectFieldCollapseOptionArrow as d,SelectFieldCollapseOptionBody as p}from"./styled.js";import{IconProvider as m}from"../../../icon/context.js";import"../../../icon/styled.js";import"@react-spring/web";import"react-dom";import"../../../portal/styled.js";import"../../../tooltip/styled.js";import"../../../tooltip/arrow/styled.js";import"../../../../theme/index.js";import"../../../tooltip/context.js";import{useTheme as a}from"../../../../theme/hook.js";const f=f=>{var j,h,{size:y,item:b,children:g,onClick:z,icon:u}=f,$=t(f,["size","item","children","onClick","icon"]);const v=a(),[w,x]=i("string"!=typeof b&&(null!==(j=b.open)&&void 0!==j&&j));let k;k="string"!=typeof b&&!!b.disabled,"undefined"!=typeof window&&r((()=>{var t;x("string"!=typeof b&&(null!==(t=b.open)&&void 0!==t&&t))}),[b]);const C="string"==typeof b?b:null!==(h=b.label)&&void 0!==h?h:b.value;return e(s,Object.assign({},$,{$size:y,"data-test":C,children:[e(n,Object.assign({$disabled:k,$size:y},!k&&{onClick:()=>{x((t=>!t)),z&&z(b)}},{children:[e(l,{$size:y,children:["object"==typeof b&&b.icon&&o(m,{size:"large"===y?24:16,fill:v.colors.base.white,children:b.icon}),o(c,{$size:y,$bold:"object"==typeof b&&b.bold,children:C})]}),o(l,{$size:y,children:u||o(d,{style:{transform:w?"rotateZ(180deg)":"rotateZ(0deg)"}})})]})),w&&o(p,{children:g})]}))};export{f as SelectFieldCollapseOption};
1
+ import{__rest as t}from"tslib";import{jsxs as o,jsx as e}from"react/jsx-runtime";import{useState as i,useLayoutEffect as r}from"react";import{SelectFieldCollapseOptionStyled as s,SelectFieldCollapseOptionHead as l,SelectFieldCollapseOptionHeadSide as n,SelectFieldCollapseOptionText as c,SelectFieldCollapseOptionArrow as p,SelectFieldCollapseOptionBody as d}from"./styled.js";import{IconProvider as m}from"../../../icon/context.js";import"../../../icon/styled.js";import"@react-spring/web";import"react-dom";import"../../../portal/styled.js";import"../../../tooltip/styled.js";import"../../../tooltip/arrow/styled.js";import"../../../../theme/index.js";import"../../../tooltip/context.js";import{useTheme as a}from"../../../../theme/hook.js";const f=f=>{var j,h,{size:b,item:y,children:g,onClick:z,icon:$}=f,u=t(f,["size","item","children","onClick","icon"]);const x=a(),[k,v]=i("string"!=typeof y&&(null!==(j=y.open)&&void 0!==j&&j));let w;w="string"!=typeof y&&!!y.disabled,r((()=>{"string"!=typeof y&&v(Boolean(y.open))}),[y]);const C="string"==typeof y?y:null!==(h=y.label)&&void 0!==h?h:y.value;return o(s,Object.assign({},u,{$size:b,"data-test":C,children:[o(l,Object.assign({$disabled:w,$size:b},!w&&{onClick:()=>{v((t=>!t)),z&&z(y)}},{children:[o(n,{$size:b,children:["object"==typeof y&&y.icon&&e(m,{size:"large"===b?24:16,fill:x.colors.base.white,children:y.icon}),e(c,{$size:b,$bold:"object"==typeof y&&y.bold,children:C})]}),e(n,{$size:b,children:$||e(p,{style:{transform:k?"rotateZ(180deg)":"rotateZ(0deg)"}})})]})),k&&e(d,{children:g})]}))};export{f as SelectFieldCollapseOption};
@@ -6,6 +6,7 @@ export interface SelectFieldOptionsProps extends React.ComponentProps<'div'> {
6
6
  data: SelectFieldData;
7
7
  size: SelectFieldSize;
8
8
  disableSelect?: boolean;
9
+ selectedColor?: string;
9
10
  onOptionClick?: SelectFieldOptionClickEventHandler;
10
11
  }
11
12
  export declare const SelectFieldOptions: React.FC<SelectFieldOptionsProps>;
@@ -1 +1 @@
1
- import{__rest as i}from"tslib";import{jsx as o,jsxs as n}from"react/jsx-runtime";import{useCallback as s}from"react";import{SelectFieldOptionsStyled as e,SelectFieldOptionSide as t,SelectFieldDivider as r,SelectFieldOptionLabel as d,SelectFieldEmpty as c,SelectFieldEmptyText as p,SelectFieldRadio as m,SelectFieldRadioTitleAndRadio as l,SelectFieldRadioLabelWrapper as a,SelectFieldRadioLabel as x,SelectFieldRadioDescription as j}from"./styled.js";import{Tooltip as u}from"../../../tooltip/index.js";import{IconProvider as b}from"../../../icon/context.js";import"../../../icon/styled.js";import"../../../../theme/index.js";import{SelectFieldCollapseOption as g}from"../collapse/index.js";import{SearchDataIcon as h}from"../../../../icons/search-data/index.js";import{Radio as f}from"../../../radio/index.js";import{SelectFieldOptionStyled as v,SelectFieldOptionText as y}from"../select-field-option/styled.js";import{SelectFieldOption as w}from"../select-field-option/index.js";import"../../../../icons/arrow-down/index.js";import"../../../../icons/arrow-narrow-left/index.js";import"../../../../icons/arrow-narrow-right/index.js";import"../../../../icons/arrow-up/index.js";import"../../../../icons/bitcoin/index.js";import"../../../../icons/bot-circle/index.js";import"../../../../icons/bothub-agg/index.js";import"../../../../icons/business-colored/index.js";import"../../../../icons/check-circle/index.js";import"../../../../icons/close/index.js";import"../../../../icons/email-circle/index.js";import"../../../../icons/language/index.js";import"../../../../icons/lock-circle/index.js";import"../../../../icons/menu/index.js";import"../../../../icons/medium-circle/index.js";import"../../../../icons/tg-circle/index.js";import"../../../../icons/tg-colored/index.js";import"../../../../icons/youcassa/index.js";import"../../../../icons/dashboard/index.js";import"../../../../icons/user-profile/index.js";import"../../../../icons/logout/index.js";import"../../../../icons/habr-2/index.js";import"../../../../icons/arrow-2-down/index.js";import"../../../../icons/links/index.js";import"../../../../icons/free/index.js";import"../../../../icons/hotness/index.js";import"../../../../icons/checked/index.js";import"../../../../icons/ai/index.js";import"../../../../icons/bookmarks/index.js";import"../../../../icons/bookmarks-big/index.js";import"../../../../icons/chat/index.js";import"../../../../icons/chats/index.js";import"../../../../icons/coder/index.js";import"../../../../icons/copy/index.js";import"../../../../icons/edit/index.js";import"../../../../icons/presets-big/index.js";import"../../../../icons/referal/index.js";import"../../../../icons/restore/index.js";import"../../../../icons/tariff/index.js";import"../../../../icons/trash/index.js";import"../../../../icons/update/index.js";import"../../../../icons/menu-dot/index.js";import"../../../../icons/plus-2/index.js";import"../../../../icons/plus-1/index.js";import"../../../../icons/send/index.js";import"../../../../icons/settings/index.js";import"../../../../icons/habr/index.js";import"../../../../icons/check-small/index.js";import"../../../../icons/stop/index.js";import"../../../../icons/thumb-up/index.js";import"../../../../icons/thumb-down/index.js";import"../../../../icons/star/index.js";import"../../../../icons/info-big/index.js";import"../../../../icons/warning-big/index.js";import"../../../../icons/error-big/index.js";import"../../../../icons/success-big/index.js";import"../../../../icons/mj/index.js";import"../../../../icons/card/index.js";import"../../../../icons/arrow-narrow-up/index.js";import"../../../../icons/arrow-narrow-down/index.js";import"../../../../icons/filters/index.js";import"../../../../icons/info/index.js";import"../../../../icons/search-circle/index.js";import"../../../../icons/save/index.js";import"../../../../icons/light/index.js";import"../../../../icons/dark/index.js";import"../../../../icons/email-colored/index.js";import"../../../../icons/action-chat/index.js";import"../../../../icons/attach/index.js";import"../../../../icons/avatar-add/index.js";import"../../../../icons/brush/index.js";import"../../../../icons/calendar/index.js";import"../../../../icons/claude/index.js";import"../../../../icons/cookie/index.js";import"../../../../icons/dalle/index.js";import"../../../../icons/download-img/index.js";import"../../../../icons/error/index.js";import"../../../../icons/expand/index.js";import"../../../../icons/eye/index.js";import"../../../../icons/face/index.js";import"../../../../icons/gear/index.js";import"../../../../icons/gear-min/index.js";import"../../../../icons/generation/index.js";import"../../../../icons/gpt-3_5/index.js";import"../../../../icons/gpt-4/index.js";import"../../../../icons/imagine/index.js";import"../../../../icons/imagine-2/index.js";import"../../../../icons/loader/index.js";import"../../../../icons/loader-circular/index.js";import"../../../../icons/loader-circular-gradient/index.js";import"../../../../icons/loader-circular-gradient-2/index.js";import"../../../../icons/minus/index.js";import"../../../../icons/mj-white/index.js";import"../../../../icons/prompt/index.js";import"../../../../icons/rabbit/index.js";import"../../../../icons/ratio-1x1/index.js";import"../../../../icons/ratio-2x3/index.js";import"../../../../icons/ratio-3x2/index.js";import"../../../../icons/ratio-4x5/index.js";import"../../../../icons/ratio-4x7/index.js";import"../../../../icons/ratio-5x4/index.js";import"../../../../icons/ratio-7x4/index.js";import"../../../../icons/ratio-16x9/index.js";import"../../../../icons/ratio-9x16/index.js";import"../../../../icons/ratio-21x9/index.js";import"../../../../icons/ratio-9x21/index.js";import"../../../../icons/refferal-min/index.js";import"../../../../icons/square/index.js";import"../../../../icons/turtle/index.js";import"../../../../icons/upscale/index.js";import"../../../../icons/withdraw/index.js";import"../../../../icons/search-plus/index.js";import"../../../../icons/lightning/index.js";import"../../../../icons/blog-circle/index.js";import"../../../../icons/stripe/index.js";import"../../../../icons/corporate/index.js";import"../../../../icons/public/index.js";import"../../../../icons/private/index.js";import"../../../../icons/mistral/index.js";import"../../../../icons/gemini/index.js";import"../../../../icons/search-simple/index.js";import"../../../../icons/sad-robot/index.js";import"../../../../icons/model/index.js";import"../../../../icons/phone-colored/index.js";import"../../../../icons/questions/index.js";import"../../../../icons/pdf-big/index.js";import"../../../../icons/xls-big/index.js";import"../../../../icons/word-big/index.js";import"../../../../icons/txt-big/index.js";import"../../../../icons/pdf/index.js";import"../../../../icons/xls/index.js";import"../../../../icons/word/index.js";import"../../../../icons/txt/index.js";import"../../../../icons/bothub-logo-gradient/index.js";import"../../../../icons/telegram-logo-gradient/index.js";import"../../../../icons/decline-circle/index.js";import"../../../../icons/simple-gear-bg/index.js";import"../../../../icons/advanced-filter/index.js";import"../../../../icons/big-corporate/index.js";import"../../../../icons/big-mj/index.js";import"../../../../icons/big-models/index.js";import"../../../../icons/big-stats/index.js";import"../../../../icons/big-success/index.js";import"../../../../icons/big-users/index.js";import"../../../../icons/optional-presets/index.js";import"../../../../icons/wallet-withdraw/index.js";import"../../../../icons/big-presets/index.js";import"../../../../icons/big-favorite/index.js";import"../../../../icons/big-referal/index.js";import"../../../../icons/attach-file/index.js";import"../../../../icons/attach-file-big/index.js";import"../../../../icons/voice/index.js";import"../../../../icons/play-button/index.js";import"../../../../icons/pause-button/index.js";import"../../../../icons/text-read/index.js";import"../../../../icons/text-hide/index.js";import"../../../../icons/best-chat-bots/index.js";import"../../../../icons/upload/index.js";import"../../../../icons/enter/index.js";import"../../../../icons/discord/index.js";import"../../../../icons/discord-circle/index.js";import"../../../../icons/black-forest-labs/index.js";import"../../../../icons/flux/index.js";import"../../../../icons/stable-diffusion/index.js";import"../../../../icons/stability-ai/index.js";import"../../../../icons/article-generator/index.js";import"../../../../icons/success/index.js";import"../../../../icons/google/index.js";import"../../../../icons/yandex/index.js";import"../../../../icons/vk/index.js";import"../../../../icons/resend/index.js";import"../../../../icons/big-article/index.js";import"../../../../icons/add-chat/index.js";import"../../../../icons/add-group/index.js";import"../../../../icons/drag-dot/index.js";import"../../../../icons/add-folder/index.js";import"../../../../icons/temp-chat/index.js";import"../../../../icons/delete-chat/index.js";import"../../../../icons/sidebar-chat/index.js";import"../../../../icons/organization/index.js";import"../../../../icons/simple-gear/index.js";import"../../../../icons/text-bold/index.js";import"../../../../icons/text-italic/index.js";import"../../../../icons/text-underline/index.js";import"../../../../icons/text-strikethrough/index.js";import"../../../../icons/refresh/index.js";import"../../../../icons/copy-variants/index.js";import"../../../../icons/sort-ascending/index.js";import"../../../../icons/sort-descending/index.js";import"../../../../icons/quote/index.js";import"../../../../icons/url-circle/index.js";import"../../../../icons/show-ui/index.js";import"../../../../icons/hide-ui/index.js";import"../../../../icons/sort-user/index.js";import"../../../../icons/happy-robot/index.js";import"../../../../icons/happy-robot-gradient/index.js";import"../../../../icons/min-window/index.js";import"../../../../icons/max-window/index.js";import"../../../../icons/manage-chat/index.js";import"../../../../icons/analyze-urls/index.js";import"../../../../icons/web-search/index.js";import"../../../../icons/include-context/index.js";import"../../../../icons/queue/index.js";import"../../../../icons/sort-alphabet-ascending/index.js";import"../../../../icons/sort-alphabet-descending/index.js";import"../../../../icons/sort-date-ascending/index.js";import"../../../../icons/sort-date-descending/index.js";import"../../../../icons/cot-r1/index.js";import"../../../../icons/news/index.js";import"../../../../icons/volume/index.js";import"../../../../icons/flag-ru/index.js";import"../../../../icons/flag-kz/index.js";import"../../../../icons/print/index.js";import"../../../../icons/pc-icon-1/index.js";import"../../../../icons/pc-icon-2/index.js";import"../../../../icons/pc-icon-3/index.js";import"../../../../icons/star-unfilled/index.js";import"../../../../icons/image-generation/index.js";import"../../../../icons/speech-synthesys/index.js";import"../../../../icons/transcription/index.js";import"../../../../icons/text-rewrite/index.js";import"../../../../icons/code-generation/index.js";import"../../../../icons/essay-generation/index.js";import"../../../../icons/spelling/index.js";import"../../../../icons/text-generation/index.js";import"../../../../icons/traffic-analisys/index.js";import"../../../../icons/fav-profile/index.js";import"../../../../icons/exclamation/index.js";import"../../../../icons/article/index.js";import"../../../../icons/setchel/index.js";import"../../../../icons/assembly/index.js";import"../../../../icons/data-visualisation/index.js";import"../../../../icons/document-analisys/index.js";import"../../../../icons/problem-solvment/index.js";import"../../../../icons/setting-analisys/index.js";import"../../../../icons/translation/index.js";import{StarsIcon as k}from"../../../../icons/stars/index.js";import"../../../../icons/academy/index.js";import"../../../../icons/articles/index.js";import"../../../../icons/blog-post/index.js";import"../../../../icons/book/index.js";import"../../../../icons/bow-tie/index.js";import"../../../../icons/case-study/index.js";import"../../../../icons/comments/index.js";import"../../../../icons/guide/index.js";import"../../../../icons/marketing/index.js";import"../../../../icons/post/index.js";import"../../../../icons/report/index.js";import"../../../../icons/review/index.js";import"../../../../icons/scientific-article/index.js";import"../../../../icons/selling-text/index.js";import"../../../../icons/textbook/index.js";import"../../../../icons/wind/index.js";import"../../../../icons/grok/index.js";import"../../../../icons/deepseek/index.js";import"../../../../icons/grid-horizontal/index.js";import"../../../../icons/grid-vertical/index.js";import"../../../../icons/star-gradient/index.js";import"../../../../icons/qwen/index.js";import"../../../../icons/sidebar-toggle-left/index.js";import"../../../../icons/sidebar-toggle-right/index.js";import"../../../../icons/system/index.js";import"../../../../icons/selector/index.js";import"../../../../icons/video-camera/index.js";import"../../../../icons/music-note/index.js";import"../../../../icons/add-profile/index.js";import"../../../../icons/token-counter/index.js";import"../../../../icons/customer-support/index.js";import"../../../../icons/video-generation/index.js";import"../../../../icons/veo-model/index.js";import"../../../../icons/runway/index.js";import"../../../../icons/queue-select/index.js";import"../../../../icons/apple/index.js";import"../../../../icons/mail-colored/index.js";import"../../../../icons/shield/index.js";import{useTheme as z}from"../../../../theme/hook.js";import{TooltipConsumer as $}from"../../../tooltip/context.js";const M=O=>{var{value:C,data:L,size:q,disableSelect:E=!1,onOptionClick:T}=O,A=i(O,["value","data","size","disableSelect","onOptionClick"]);const P=z(),S=s((i=>{null==T||T(i)}),[T]);return o(e,Object.assign({$size:q},A,{children:L.map(((i,s)=>{var e,z,O,L,A,D,_,N,B,F,G,H,I;if("string"==typeof i){let n;return n=!(!C||Array.isArray(C))&&("string"==typeof C?i===C:i===C.value),o(v,{$selected:n,$disabled:!1,$size:q,onClick:S.bind(null,i),children:o(t,{children:o(y,{$selected:n,$size:q,children:i})})},s)}if("divider"===i.type)return o(r,{},null!==(z=null!==(e=i.id)&&void 0!==e?e:i.value)&&void 0!==z?z:`divider-${s}`);if("label"===i.type)return o(d,{children:i.label},null!==(L=null!==(O=i.id)&&void 0!==O?O:i.value)&&void 0!==L?L:`label-${s}`);if("empty"===i.type&&i.label)return n(c,{$size:q,children:[o(b,{size:34,fill:P.colors.grayScale.gray1,children:null!==(A=i.icon)&&void 0!==A?A:o(h,{})}),o(p,{children:i.label})]},null!==(_=null!==(D=i.id)&&void 0!==D?D:i.value)&&void 0!==_?_:`empty-${s}`);if("radio"===i.type){const e=o=>{o.preventDefault(),S(i)};return o(u,Object.assign({},"object"==typeof i.tooltip&&i.tooltip,"object"!=typeof i.tooltip&&{disabled:!0},i.label&&i.label.length>64&&{placement:"top-left",label:i.label,disabled:!1},{children:o($,{children:({handleTooltipMouseEnter:s,handleTooltipMouseLeave:t})=>n(m,{$selected:i.selected,$disabled:i.disabled,onPointerDown:s,onPointerLeave:t,onMouseEnter:s,onMouseLeave:t,onClick:e,"data-test":i.label,children:[n(l,{children:[i.icon&&o(b,{size:"large"===q?24:16,children:i.icon}),i.label&&n(a,{children:[o(x,{$size:q,children:i.label}),i.best_model&&o(k,{size:18})]}),o(f,{type:"radio",checked:!!i.selected,name:i.radioName,disabled:i.disabled,icon:i.disabled?i.end:void 0})]}),i.description&&o(j,{children:i.description})]})})}),null!==(B=null!==(N=i.id)&&void 0!==N?N:i.value)&&void 0!==B?B:`radio-${s}`)}if("collapse"===i.type&&i.data)return o(u,Object.assign({},"object"==typeof i.tooltip&&i.tooltip,"object"!=typeof i.tooltip&&{disabled:!0},i.label&&i.label.length>64&&{placement:"top-left",label:i.label,disabled:!1},{children:o($,{children:({handleTooltipMouseEnter:n,handleTooltipMouseLeave:s})=>{var e;return o(g,{size:q,item:i,onPointerDown:n,onPointerLeave:s,onMouseEnter:n,onMouseLeave:s,onClick:i.onClick,icon:i.disabled?i.end:void 0,children:o(M,{value:C,data:null!==(e=i.data)&&void 0!==e?e:[],size:q,disableSelect:E,onOptionClick:T})})}})}),null!==(G=null!==(F=i.id)&&void 0!==F?F:i.value)&&void 0!==G?G:`collapse-${s}`);const J=!!i.disabled;let K;K=!(!C||Array.isArray(C))&&(("string"==typeof C?i.value===C:i.value===C.value)&&!E);const Q=null!==(I=null!==(H=i.id)&&void 0!==H?H:i.value)&&void 0!==I?I:s,R={item:i,selected:K,disabled:J,size:q,onClick:S.bind(null,i)};return i.tooltip||i.label&&i.label.length>64?o(u,Object.assign({},i.tooltip,i.label&&i.label.length>64&&{placement:"top-left",label:i.label,disabled:!1},{children:o($,{children:({handleTooltipMouseEnter:i,handleTooltipMouseLeave:n})=>o(w,Object.assign({},R,{onMouseEnter:i,onMouseLeave:n}))})}),Q):o(w,Object.assign({},R),Q)}))}))};export{M as SelectFieldOptions};
1
+ import{__rest as i}from"tslib";import{jsx as o,jsxs as n,Fragment as e}from"react/jsx-runtime";import{useCallback as s}from"react";import{SelectFieldOptionsStyled as t,SelectFieldOptionSide as r,SelectFieldDivider as d,SelectFieldOptionLabel as c,SelectFieldEmpty as p,SelectFieldEmptyText as m,SelectFieldRadioTitleAndRadio as l,SelectFieldRadioLabel as a,SelectFieldRadioDescription as x,SelectFieldRadio as j,SelectFieldRadioLabelWrapper as b}from"./styled.js";import{Tooltip as u}from"../../../tooltip/index.js";import{IconProvider as g}from"../../../icon/context.js";import"../../../icon/styled.js";import"../../../../theme/index.js";import{SelectFieldCollapseOption as h}from"../collapse/index.js";import{SearchDataIcon as f}from"../../../../icons/search-data/index.js";import{Radio as v}from"../../../radio/index.js";import{SelectFieldOptionStyled as y,SelectFieldOptionText as w}from"../select-field-option/styled.js";import{SelectFieldOption as k}from"../select-field-option/index.js";import"../../../../icons/arrow-down/index.js";import"../../../../icons/arrow-narrow-left/index.js";import"../../../../icons/arrow-narrow-right/index.js";import"../../../../icons/arrow-up/index.js";import"../../../../icons/bitcoin/index.js";import"../../../../icons/bot-circle/index.js";import"../../../../icons/bothub-agg/index.js";import"../../../../icons/business-colored/index.js";import"../../../../icons/check-circle/index.js";import"../../../../icons/close/index.js";import"../../../../icons/email-circle/index.js";import"../../../../icons/language/index.js";import"../../../../icons/lock-circle/index.js";import"../../../../icons/menu/index.js";import"../../../../icons/medium-circle/index.js";import"../../../../icons/tg-circle/index.js";import"../../../../icons/tg-colored/index.js";import"../../../../icons/youcassa/index.js";import"../../../../icons/dashboard/index.js";import"../../../../icons/user-profile/index.js";import"../../../../icons/logout/index.js";import"../../../../icons/habr-2/index.js";import"../../../../icons/arrow-2-down/index.js";import"../../../../icons/links/index.js";import"../../../../icons/free/index.js";import"../../../../icons/hotness/index.js";import"../../../../icons/checked/index.js";import"../../../../icons/ai/index.js";import"../../../../icons/bookmarks/index.js";import"../../../../icons/bookmarks-big/index.js";import"../../../../icons/chat/index.js";import"../../../../icons/chats/index.js";import"../../../../icons/coder/index.js";import"../../../../icons/copy/index.js";import"../../../../icons/edit/index.js";import"../../../../icons/presets-big/index.js";import"../../../../icons/referal/index.js";import"../../../../icons/restore/index.js";import"../../../../icons/tariff/index.js";import"../../../../icons/trash/index.js";import"../../../../icons/update/index.js";import"../../../../icons/menu-dot/index.js";import"../../../../icons/plus-2/index.js";import"../../../../icons/plus-1/index.js";import"../../../../icons/send/index.js";import"../../../../icons/settings/index.js";import"../../../../icons/habr/index.js";import"../../../../icons/check-small/index.js";import"../../../../icons/stop/index.js";import"../../../../icons/thumb-up/index.js";import"../../../../icons/thumb-down/index.js";import"../../../../icons/star/index.js";import"../../../../icons/info-big/index.js";import"../../../../icons/warning-big/index.js";import"../../../../icons/error-big/index.js";import"../../../../icons/success-big/index.js";import"../../../../icons/mj/index.js";import"../../../../icons/card/index.js";import"../../../../icons/arrow-narrow-up/index.js";import"../../../../icons/arrow-narrow-down/index.js";import"../../../../icons/filters/index.js";import"../../../../icons/info/index.js";import"../../../../icons/search-circle/index.js";import"../../../../icons/save/index.js";import"../../../../icons/light/index.js";import"../../../../icons/dark/index.js";import"../../../../icons/email-colored/index.js";import"../../../../icons/action-chat/index.js";import"../../../../icons/attach/index.js";import"../../../../icons/avatar-add/index.js";import"../../../../icons/brush/index.js";import"../../../../icons/calendar/index.js";import"../../../../icons/claude/index.js";import"../../../../icons/cookie/index.js";import"../../../../icons/dalle/index.js";import"../../../../icons/download-img/index.js";import"../../../../icons/error/index.js";import"../../../../icons/expand/index.js";import"../../../../icons/eye/index.js";import"../../../../icons/face/index.js";import"../../../../icons/gear/index.js";import"../../../../icons/gear-min/index.js";import"../../../../icons/generation/index.js";import"../../../../icons/gpt-3_5/index.js";import"../../../../icons/gpt-4/index.js";import"../../../../icons/imagine/index.js";import"../../../../icons/imagine-2/index.js";import"../../../../icons/loader/index.js";import"../../../../icons/loader-circular/index.js";import"../../../../icons/loader-circular-gradient/index.js";import"../../../../icons/loader-circular-gradient-2/index.js";import"../../../../icons/minus/index.js";import"../../../../icons/mj-white/index.js";import"../../../../icons/prompt/index.js";import"../../../../icons/rabbit/index.js";import"../../../../icons/ratio-1x1/index.js";import"../../../../icons/ratio-2x3/index.js";import"../../../../icons/ratio-3x2/index.js";import"../../../../icons/ratio-4x5/index.js";import"../../../../icons/ratio-4x7/index.js";import"../../../../icons/ratio-5x4/index.js";import"../../../../icons/ratio-7x4/index.js";import"../../../../icons/ratio-16x9/index.js";import"../../../../icons/ratio-9x16/index.js";import"../../../../icons/ratio-21x9/index.js";import"../../../../icons/ratio-9x21/index.js";import"../../../../icons/refferal-min/index.js";import"../../../../icons/square/index.js";import"../../../../icons/turtle/index.js";import"../../../../icons/upscale/index.js";import"../../../../icons/withdraw/index.js";import"../../../../icons/search-plus/index.js";import"../../../../icons/lightning/index.js";import"../../../../icons/blog-circle/index.js";import"../../../../icons/stripe/index.js";import"../../../../icons/corporate/index.js";import"../../../../icons/public/index.js";import"../../../../icons/private/index.js";import"../../../../icons/mistral/index.js";import"../../../../icons/gemini/index.js";import"../../../../icons/search-simple/index.js";import"../../../../icons/sad-robot/index.js";import"../../../../icons/model/index.js";import"../../../../icons/phone-colored/index.js";import"../../../../icons/questions/index.js";import"../../../../icons/pdf-big/index.js";import"../../../../icons/xls-big/index.js";import"../../../../icons/word-big/index.js";import"../../../../icons/txt-big/index.js";import"../../../../icons/pdf/index.js";import"../../../../icons/xls/index.js";import"../../../../icons/word/index.js";import"../../../../icons/txt/index.js";import"../../../../icons/bothub-logo-gradient/index.js";import"../../../../icons/telegram-logo-gradient/index.js";import"../../../../icons/decline-circle/index.js";import"../../../../icons/simple-gear-bg/index.js";import"../../../../icons/advanced-filter/index.js";import"../../../../icons/big-corporate/index.js";import"../../../../icons/big-mj/index.js";import"../../../../icons/big-models/index.js";import"../../../../icons/big-stats/index.js";import"../../../../icons/big-success/index.js";import"../../../../icons/big-users/index.js";import"../../../../icons/optional-presets/index.js";import"../../../../icons/wallet-withdraw/index.js";import"../../../../icons/big-presets/index.js";import"../../../../icons/big-favorite/index.js";import"../../../../icons/big-referal/index.js";import"../../../../icons/attach-file/index.js";import"../../../../icons/attach-file-big/index.js";import"../../../../icons/voice/index.js";import"../../../../icons/play-button/index.js";import"../../../../icons/pause-button/index.js";import"../../../../icons/text-read/index.js";import"../../../../icons/text-hide/index.js";import"../../../../icons/best-chat-bots/index.js";import"../../../../icons/upload/index.js";import"../../../../icons/enter/index.js";import"../../../../icons/discord/index.js";import"../../../../icons/discord-circle/index.js";import"../../../../icons/black-forest-labs/index.js";import"../../../../icons/flux/index.js";import"../../../../icons/stable-diffusion/index.js";import"../../../../icons/stability-ai/index.js";import"../../../../icons/article-generator/index.js";import"../../../../icons/success/index.js";import"../../../../icons/google/index.js";import"../../../../icons/yandex/index.js";import"../../../../icons/vk/index.js";import"../../../../icons/resend/index.js";import"../../../../icons/big-article/index.js";import"../../../../icons/add-chat/index.js";import"../../../../icons/add-group/index.js";import"../../../../icons/drag-dot/index.js";import"../../../../icons/add-folder/index.js";import"../../../../icons/temp-chat/index.js";import"../../../../icons/delete-chat/index.js";import"../../../../icons/sidebar-chat/index.js";import"../../../../icons/organization/index.js";import"../../../../icons/simple-gear/index.js";import"../../../../icons/text-bold/index.js";import"../../../../icons/text-italic/index.js";import"../../../../icons/text-underline/index.js";import"../../../../icons/text-strikethrough/index.js";import"../../../../icons/refresh/index.js";import"../../../../icons/copy-variants/index.js";import"../../../../icons/sort-ascending/index.js";import"../../../../icons/sort-descending/index.js";import"../../../../icons/quote/index.js";import"../../../../icons/url-circle/index.js";import"../../../../icons/show-ui/index.js";import"../../../../icons/hide-ui/index.js";import"../../../../icons/sort-user/index.js";import"../../../../icons/happy-robot/index.js";import"../../../../icons/happy-robot-gradient/index.js";import"../../../../icons/min-window/index.js";import"../../../../icons/max-window/index.js";import"../../../../icons/manage-chat/index.js";import"../../../../icons/analyze-urls/index.js";import"../../../../icons/web-search/index.js";import"../../../../icons/include-context/index.js";import"../../../../icons/queue/index.js";import"../../../../icons/sort-alphabet-ascending/index.js";import"../../../../icons/sort-alphabet-descending/index.js";import"../../../../icons/sort-date-ascending/index.js";import"../../../../icons/sort-date-descending/index.js";import"../../../../icons/cot-r1/index.js";import"../../../../icons/news/index.js";import"../../../../icons/volume/index.js";import"../../../../icons/flag-ru/index.js";import"../../../../icons/flag-kz/index.js";import"../../../../icons/print/index.js";import"../../../../icons/pc-icon-1/index.js";import"../../../../icons/pc-icon-2/index.js";import"../../../../icons/pc-icon-3/index.js";import"../../../../icons/star-unfilled/index.js";import"../../../../icons/image-generation/index.js";import"../../../../icons/speech-synthesys/index.js";import"../../../../icons/transcription/index.js";import"../../../../icons/text-rewrite/index.js";import"../../../../icons/code-generation/index.js";import"../../../../icons/essay-generation/index.js";import"../../../../icons/spelling/index.js";import"../../../../icons/text-generation/index.js";import"../../../../icons/traffic-analisys/index.js";import"../../../../icons/fav-profile/index.js";import"../../../../icons/exclamation/index.js";import"../../../../icons/article/index.js";import"../../../../icons/setchel/index.js";import"../../../../icons/assembly/index.js";import"../../../../icons/data-visualisation/index.js";import"../../../../icons/document-analisys/index.js";import"../../../../icons/problem-solvment/index.js";import"../../../../icons/setting-analisys/index.js";import"../../../../icons/translation/index.js";import{StarsIcon as z}from"../../../../icons/stars/index.js";import"../../../../icons/academy/index.js";import"../../../../icons/articles/index.js";import"../../../../icons/blog-post/index.js";import"../../../../icons/book/index.js";import"../../../../icons/bow-tie/index.js";import"../../../../icons/case-study/index.js";import"../../../../icons/comments/index.js";import"../../../../icons/guide/index.js";import"../../../../icons/marketing/index.js";import"../../../../icons/post/index.js";import"../../../../icons/report/index.js";import"../../../../icons/review/index.js";import"../../../../icons/scientific-article/index.js";import"../../../../icons/selling-text/index.js";import"../../../../icons/textbook/index.js";import"../../../../icons/wind/index.js";import"../../../../icons/grok/index.js";import"../../../../icons/deepseek/index.js";import"../../../../icons/grid-horizontal/index.js";import"../../../../icons/grid-vertical/index.js";import"../../../../icons/star-gradient/index.js";import"../../../../icons/qwen/index.js";import"../../../../icons/sidebar-toggle-left/index.js";import"../../../../icons/sidebar-toggle-right/index.js";import"../../../../icons/system/index.js";import"../../../../icons/selector/index.js";import"../../../../icons/video-camera/index.js";import"../../../../icons/music-note/index.js";import"../../../../icons/add-profile/index.js";import"../../../../icons/token-counter/index.js";import"../../../../icons/customer-support/index.js";import"../../../../icons/video-generation/index.js";import"../../../../icons/veo-model/index.js";import"../../../../icons/runway/index.js";import"../../../../icons/queue-select/index.js";import"../../../../icons/apple/index.js";import"../../../../icons/mail-colored/index.js";import"../../../../icons/shield/index.js";import{useTheme as $}from"../../../../theme/hook.js";import{TooltipConsumer as C}from"../../../tooltip/context.js";const O=M=>{var{value:L,data:q,size:E,disableSelect:T=!1,selectedColor:A,onOptionClick:P}=M,S=i(M,["value","data","size","disableSelect","selectedColor","onOptionClick"]);const D=$(),N=s((i=>{null==P||P(i)}),[P]);return o(t,Object.assign({$size:E},S,{children:q.map(((i,s)=>{var t,$,M,q,S,_,B,F,G,H,I,J,K,Q,R;if("string"==typeof i){let n;return n=!(!L||Array.isArray(L))&&("string"==typeof L?i===L:i===L.value),o(y,{$selected:n,$disabled:!1,$size:E,$selectedColor:A,onClick:N.bind(null,i),children:o(r,{children:o(w,{$selected:n,$size:E,children:i})})},s)}if("divider"===i.type)return o(d,{},null!==($=null!==(t=i.id)&&void 0!==t?t:i.value)&&void 0!==$?$:`divider-${s}`);if("label"===i.type)return o(c,{children:i.label},null!==(q=null!==(M=i.id)&&void 0!==M?M:i.value)&&void 0!==q?q:`label-${s}`);if("empty"===i.type&&i.label)return n(p,{$size:E,children:[o(g,{size:34,fill:D.colors.grayScale.gray1,children:null!==(S=i.icon)&&void 0!==S?S:o(f,{})}),o(m,{children:i.label})]},null!==(B=null!==(_=i.id)&&void 0!==_?_:i.value)&&void 0!==B?B:`empty-${s}`);if("radio"===i.type){const t=o=>{o.preventDefault(),N(i)},r=null!==(G=null!==(F=i.id)&&void 0!==F?F:i.value)&&void 0!==G?G:`radio-${s}`,d={$selected:i.selected,$disabled:i.disabled,onClick:t,children:n(e,{children:[n(l,{children:[i.label&&o(a,{$size:E,children:i.label}),o(v,{type:"radio",checked:null!==(H=i.selected)&&void 0!==H&&H,name:i.radioName,disabled:i.disabled,icon:i.disabled?i.end:void 0})]}),i.description&&o(x,{children:i.description})]})};return i.tooltip||i.label&&i.label.length>64?o(u,Object.assign({},i.tooltip,i.label&&i.label.length>64&&{placement:"top-left",label:i.label,disabled:!1},{children:o(C,{children:({handleTooltipMouseEnter:e,handleTooltipMouseLeave:s})=>n(j,Object.assign({},d,{onPointerDown:e,onPointerLeave:s,onMouseEnter:e,onMouseLeave:s,onClick:t,"data-test":i.label,children:[n(l,{children:[i.icon&&o(g,{size:"large"===E?24:16,children:i.icon}),i.label&&n(b,{children:[o(a,{$size:E,children:i.label}),i.best_model&&o(z,{size:18})]}),o(v,{type:"radio",checked:!!i.selected,name:i.radioName,disabled:i.disabled,icon:i.disabled?i.end:void 0})]}),i.description&&o(x,{children:i.description})]}))})}),r):o(j,Object.assign({},d),r)}if("collapse"===i.type&&i.data){const n={size:E,item:i,onClick:i.onClick,icon:i.disabled?i.end:void 0,children:o(O,{value:L,data:null!==(I=i.data)&&void 0!==I?I:[],size:E,disableSelect:T,onOptionClick:P,selectedColor:A})},e=null!==(K=null!==(J=i.id)&&void 0!==J?J:i.value)&&void 0!==K?K:`collapse-${s}`;return i.tooltip||i.label&&i.label.length>64?o(u,Object.assign({},i.tooltip,i.label&&i.label.length>64&&{placement:"top-left",label:i.label,disabled:!1},{children:o(C,{children:({handleTooltipMouseEnter:i,handleTooltipMouseLeave:e})=>o(h,Object.assign({},n,{onPointerDown:i,onPointerLeave:e,onMouseEnter:i,onMouseLeave:e}))})}),e):o(h,Object.assign({},n),e)}const U=!!i.disabled;let V;V=!(!L||Array.isArray(L))&&(("string"==typeof L?i.value===L:i.value===L.value)&&!T);const W=null!==(R=null!==(Q=i.id)&&void 0!==Q?Q:i.value)&&void 0!==R?R:s,X={item:i,selected:V,disabled:U,size:E,selectedColor:A,onClick:N.bind(null,i)};return i.tooltip||i.label&&i.label.length>64?o(u,Object.assign({},i.tooltip,i.label&&i.label.length>64&&{placement:"top-left",label:i.label,disabled:!1},{children:o(C,{children:({handleTooltipMouseEnter:i,handleTooltipMouseLeave:n})=>o(k,Object.assign({},X,{onMouseEnter:i,onMouseLeave:n}))})}),W):o(k,Object.assign({},X),W)}))}))};export{O as SelectFieldOptions};
@@ -5,5 +5,6 @@ export type SelectFieldOptionProps = {
5
5
  selected: boolean;
6
6
  disabled: boolean;
7
7
  size: SelectFieldSize;
8
+ selectedColor?: string;
8
9
  } & ComponentProps<'div'>;
9
- export declare const SelectFieldOption: ({ item, selected, disabled, size, ...rest }: SelectFieldOptionProps) => import("react/jsx-runtime").JSX.Element;
10
+ export declare const SelectFieldOption: ({ item, selected, disabled, size, selectedColor, ...rest }: SelectFieldOptionProps) => import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- import{__rest as e}from"tslib";import{jsxs as o,jsx as l,Fragment as r}from"react/jsx-runtime";import{IconProvider as t}from"../../../icon/context.js";import"../../../icon/styled.js";import"react";import"@react-spring/web";import"react-dom";import"../../../portal/styled.js";import"../../../tooltip/styled.js";import"../../../tooltip/arrow/styled.js";import"../../../../theme/index.js";import"../../../tooltip/context.js";import{SelectFieldOptionSide as i}from"../list/styled.js";import{SelectFieldOptionStyled as c,SelectFieldOptionText as s,SelectFieldOptionColor as d,SelectFieldColorOptionText as n}from"./styled.js";import{useTheme as a}from"../../../../theme/hook.js";const m=m=>{var{item:p,selected:b,disabled:h,size:j}=m,$=e(m,["item","selected","disabled","size"]);const g=a();return o(c,Object.assign({$selected:b,$disabled:h,$size:j,$backgroundHoverColor:p.backgroundHoverColor},$,{children:[o(i,{children:[p.icon&&l(t,{fill:g.colors.base.white,size:"large"===j?24:18,children:p.icon}),!p.color&&o(s,{$selected:b,$size:j,$bold:p.bold,children:[p.label&&o(r,{children:[p.label.slice(0,64),p.label.length>64&&"..."]}),!p.label&&p.value]}),p.color&&l(d,{$color:p.color===g.colors.accent.primary&&b?g.colors.accent.primaryLight:p.color}),p.color&&o(n,{$selected:b,children:[p.label&&o(r,{children:[p.label.slice(0,64),p.label.length>64&&"..."]}),!p.label&&p.value]})]}),p.end&&l(i,{children:l(t,{size:16,children:p.end})})]}))};export{m as SelectFieldOption};
1
+ import{__rest as e}from"tslib";import{jsxs as o,jsx as l,Fragment as r}from"react/jsx-runtime";import{IconProvider as t}from"../../../icon/context.js";import"../../../icon/styled.js";import"react";import"@react-spring/web";import"react-dom";import"../../../portal/styled.js";import"../../../tooltip/styled.js";import"../../../tooltip/arrow/styled.js";import"../../../../theme/index.js";import"../../../tooltip/context.js";import{SelectFieldOptionSide as i}from"../list/styled.js";import{SelectFieldOptionStyled as c,SelectFieldOptionText as s,SelectFieldOptionColor as d,SelectFieldColorOptionText as n}from"./styled.js";import{useTheme as a}from"../../../../theme/hook.js";const m=m=>{var{item:p,selected:b,disabled:h,size:j,selectedColor:$}=m,g=e(m,["item","selected","disabled","size","selectedColor"]);const y=a();return o(c,Object.assign({$selected:b,$disabled:h,$size:j,$backgroundHoverColor:p.backgroundHoverColor,$selectedColor:$},g,{children:[o(i,{children:[p.icon&&l(t,{fill:y.colors.base.white,size:"large"===j?24:18,children:p.icon}),!p.color&&o(s,{$selected:b,$size:j,$bold:p.bold,children:[p.label&&o(r,{children:[p.label.slice(0,64),p.label.length>64&&"..."]}),!p.label&&p.value]}),p.color&&l(d,{$color:p.color===y.colors.accent.primary&&b?y.colors.accent.primaryLight:p.color}),p.color&&o(n,{$selected:b,children:[p.label&&o(r,{children:[p.label.slice(0,64),p.label.length>64&&"..."]}),!p.label&&p.value]})]}),p.end&&l(i,{children:l(t,{size:16,children:p.end})})]}))};export{m as SelectFieldOption};
@@ -569,6 +569,7 @@ export interface SelectFieldOptionStyledProps {
569
569
  $selected: boolean;
570
570
  $disabled: boolean;
571
571
  $size: SelectFieldSize;
572
+ $selectedColor?: string;
572
573
  $backgroundHoverColor?: 'gradient' | 'primary';
573
574
  }
574
575
  export declare const SelectFieldOptionStyled: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, SelectFieldOptionStyledProps>>;
@@ -1,8 +1,8 @@
1
- import{styled as e,css as t}from"styled-components";import{SelectFieldOptionSide as o}from"../list/styled.js";import{Typography as r}from"../../../typography/index.js";const i=e(r).attrs((({$size:e})=>({variant:"small"===e?"input-sm":"md"===e?"button-sm":"body-m-semibold"}))).withConfig({displayName:"styled__SelectFieldOptionText",componentId:"sc-g6l3cy-0"})(["color:",";",""],(({theme:e,$selected:t})=>t?e.default.colors.base.white:e.colors.base.white),(({$bold:e})=>e&&t`
1
+ import{styled as e,css as t}from"styled-components";import{SelectFieldOptionSide as o}from"../list/styled.js";import{Typography as r}from"../../../typography/index.js";import"react";import"unified";import"remark-parse";import"remark-gfm";import"mdast-util-to-markdown";import{colorToRgba as i}from"../../../../utils/colors/colorToRgba.js";import"../../../../utils/colors/calculateGrayScale.js";import"../../../../utils/colors/calculateAccentColors.js";const s=e(r).attrs((({$size:e})=>({variant:"small"===e?"input-sm":"md"===e?"button-sm":"body-m-semibold"}))).withConfig({displayName:"styled__SelectFieldOptionText",componentId:"sc-g6l3cy-0"})(["color:",";",""],(({theme:e,$selected:t})=>t?e.default.colors.base.white:e.colors.base.white),(({$bold:e})=>e&&t`
2
2
  font-weight: 500;
3
- `)),n=e(r).attrs({variant:"input-sm"}).withConfig({displayName:"styled__SelectFieldColorOptionText",componentId:"sc-g6l3cy-1"})(["color:",";"],(({theme:e,$selected:t})=>t?e.default.colors.base.white:e.colors.base.white)),s=e.span.withConfig({displayName:"styled__SelectFieldOptionColor",componentId:"sc-g6l3cy-2"})(["display:inline-flex;flex-shrink:0;width:18px;height:18px;border-radius:4px;",""],(({$color:e})=>t`
3
+ `)),l=e(r).attrs({variant:"input-sm"}).withConfig({displayName:"styled__SelectFieldColorOptionText",componentId:"sc-g6l3cy-1"})(["color:",";"],(({theme:e,$selected:t})=>t?e.default.colors.base.white:e.colors.base.white)),a=e.span.withConfig({displayName:"styled__SelectFieldOptionColor",componentId:"sc-g6l3cy-2"})(["display:inline-flex;flex-shrink:0;width:18px;height:18px;border-radius:4px;",""],(({$color:e})=>t`
4
4
  background: ${e};
5
- `)),a=e.div.withConfig({displayName:"styled__SelectFieldOptionStyled",componentId:"sc-g6l3cy-3"})(["display:flex;justify-content:space-between;align-items:center;padding:",";border-radius:6px;gap:","px;&:active{background-color:"," !important;",",","{color:",";}svg[d='fill'] path,svg[d='all'] path{fill:"," !important;}svg[d='stroke'] path,svg[d='all'] path{stroke:"," !important;}transition:all 0.2s ease-out;}user-select:none;-moz-user-select:none;-webkit-user-select:none;",""],(({$size:e})=>{switch(e){case"small":return"8px";case"md":return"12px";case"large":return"8px 10px"}}),(({$size:e})=>{switch(e){case"small":case"large":return 8;case"md":return 10}}),(({theme:e})=>e.colors.accent.primary),i,n,(({theme:e})=>e.default.colors.base.white),(({theme:e})=>e.default.colors.base.white),(({theme:e})=>e.default.colors.base.white),(({theme:e,$selected:r,$disabled:i,$backgroundHoverColor:n})=>{if(i)return t`
5
+ `)),n=e.div.withConfig({displayName:"styled__SelectFieldOptionStyled",componentId:"sc-g6l3cy-3"})(["display:flex;justify-content:space-between;align-items:center;padding:",";border-radius:6px;gap:","px;&:active{background-color:"," !important;",",","{color:",";}svg[d='fill'] path,svg[d='all'] path{fill:"," !important;}svg[d='stroke'] path,svg[d='all'] path{stroke:"," !important;}transition:all 0.2s ease-out;}user-select:none;-moz-user-select:none;-webkit-user-select:none;",""],(({$size:e})=>{switch(e){case"small":return"8px";case"md":return"12px";case"large":return"8px 10px"}}),(({$size:e})=>{switch(e){case"small":case"large":return 8;case"md":return 10}}),(({theme:e})=>e.colors.accent.primary),s,l,(({theme:e})=>e.default.colors.base.white),(({theme:e})=>e.default.colors.base.white),(({theme:e})=>e.default.colors.base.white),(({theme:e,$selected:r,$disabled:s,$selectedColor:l,$backgroundHoverColor:a})=>{if(s)return t`
6
6
  cursor: not-allowed;
7
7
  &:hover {
8
8
  background: ${"light"===e.mode?"rgba(0, 0, 0, 0.05)":"rgba(255, 255, 255, 0.05)"};
@@ -10,7 +10,7 @@ import{styled as e,css as t}from"styled-components";import{SelectFieldOptionSide
10
10
  > ${o}:first-child {
11
11
  opacity: 0.5;
12
12
  }
13
- `;switch(n){case"gradient":return t`
13
+ `;switch(a){case"gradient":return t`
14
14
  cursor: pointer;
15
15
  position: relative;
16
16
  overflow: hidden;
@@ -22,11 +22,8 @@ import{styled as e,css as t}from"styled-components";import{SelectFieldOptionSide
22
22
  content: '';
23
23
  opacity: 0.2;
24
24
  border: inherit;
25
- left: 0;
26
- top: 0;
25
+ inset: 0;
27
26
  z-index: -1;
28
- width: 100%;
29
- height: 100%;
30
27
  position: absolute;
31
28
  }
32
29
  `;case"primary":return t`
@@ -37,19 +34,15 @@ import{styled as e,css as t}from"styled-components";import{SelectFieldOptionSide
37
34
  padding-top: 12px;
38
35
  padding-bottom: 12px;
39
36
  text-align: center;
40
- &:hover::before {
41
- background: ${e.colors.accent.primary};
42
- content: '';
43
- opacity: 0.2;
44
- border: inherit;
45
- left: 0;
46
- top: 0;
47
- z-index: -1;
48
- width: 100%;
49
- height: 100%;
50
- position: absolute;
37
+ &:hover {
38
+ background: ${i(e.colors.accent.primary,.2)};
51
39
  }
52
- `;default:return t`
53
- ${!r&&`\n cursor: pointer;\n &:hover {\n background: ${"light"===e.mode?"rgba(0, 0, 0, 0.05)":"rgba(255, 255, 255, 0.05)"};\n }\n `}
54
- ${r&&`\n background: ${e.colors.accent.primary};\n cursor: default;\n `}
55
- `}}));export{n as SelectFieldColorOptionText,s as SelectFieldOptionColor,a as SelectFieldOptionStyled,i as SelectFieldOptionText};
40
+ `;default:return r?t`
41
+ background: ${l||e.colors.accent.primary};
42
+ cursor: default;
43
+ `:t`
44
+ cursor: pointer;
45
+ &:hover {
46
+ background: ${"light"===e.mode?"rgba(0, 0, 0, 0.05)":"rgba(255, 255, 255, 0.05)"};
47
+ }
48
+ `}}));export{l as SelectFieldColorOptionText,a as SelectFieldOptionColor,n as SelectFieldOptionStyled,s as SelectFieldOptionText};
@@ -1 +1 @@
1
- import{styled as e,css as o}from"styled-components";const t=e.div.withConfig({displayName:"styled__SelectFieldGroupStyled",componentId:"sc-1pj9n7a-0"})(["flex:1;width:100%;position:relative;overflow:hidden;"]),i=e.div.withConfig({displayName:"styled__SelectFieldGroupContent",componentId:"sc-1pj9n7a-1"})(["width:100%;height:100%;padding-right:8px;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;will-change:transform;",""],(({$disableScrollbar:e,$size:t,$followContentHeight:i})=>!e&&o(["&::-webkit-scrollbar{width:4px;}&::-webkit-scrollbar-thumb{background:",";border-radius:2px;}&::-webkit-scrollbar-corner{display:none;}max-height:",";"],(({theme:e})=>e.colors.accent.primary),(()=>{if(i)return"100%";switch(t){case"small":case"md":return"186px";case"large":return"400px"}})))),n=e.div.withConfig({displayName:"styled__Shadow",componentId:"sc-1pj9n7a-2"})(["position:absolute;height:50px;z-index:1;transition:opacity 0.2s;opacity:",";pointer-events:none;",""],(({$show:e})=>e?1:0),(({$onTop:e=!1,theme:t})=>{const i="dark"===t.mode?t.colors.grayScale.gray4:t.colors.base.black;return o(e?["inset:-1px 8px auto 0;background:linear-gradient(0deg,","00 0%,"," 100%);"]:["inset:auto 8px -1px 0;background:linear-gradient(180deg,","00 0%,"," 100%);"],i,i)}));export{i as SelectFieldGroupContent,t as SelectFieldGroupStyled,n as Shadow};
1
+ import{styled as e,css as o}from"styled-components";const t=e.div.withConfig({displayName:"styled__SelectFieldGroupStyled",componentId:"sc-1pj9n7a-0"})(["flex:1;width:100%;position:relative;overflow:hidden;"]),i=e.div.withConfig({displayName:"styled__SelectFieldGroupContent",componentId:"sc-1pj9n7a-1"})(["width:100%;height:100%;padding-right:8px;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;",""],(({$disableScrollbar:e,$size:t,$followContentHeight:i})=>!e&&o(["&::-webkit-scrollbar{width:4px;}&::-webkit-scrollbar-thumb{background:",";border-radius:2px;}&::-webkit-scrollbar-corner{display:none;}max-height:",";"],(({theme:e})=>e.colors.accent.primary),(()=>{if(i)return"100%";switch(t){case"small":case"md":return"186px";case"large":return"400px"}})))),n=e.div.withConfig({displayName:"styled__Shadow",componentId:"sc-1pj9n7a-2"})(["position:absolute;height:50px;z-index:1;transition:opacity 0.2s;pointer-events:none;"," ",""],(({$show:e})=>!e&&o(["opacity:0;"])),(({$onTop:e=!1,theme:t})=>{const i="dark"===t.mode?t.colors.grayScale.gray4:t.colors.base.black;return o(e?["inset:-1px 8px auto 0;background:linear-gradient(0deg,","00 0%,"," 100%);"]:["inset:auto 8px -1px 0;background:linear-gradient(180deg,","00 0%,"," 100%);"],i,i)}));export{i as SelectFieldGroupContent,t as SelectFieldGroupStyled,n as Shadow};
@@ -0,0 +1,2 @@
1
+ import { SelectFieldData } from '../types';
2
+ export declare const filterData: (data: SelectFieldData, searchValue: string) => SelectFieldData;
@@ -0,0 +1 @@
1
+ import"react";import"unified";import"remark-parse";import"remark-gfm";import"mdast-util-to-markdown";import{hasSubstring as r}from"../../../utils/hasSubstring/index.js";import"../../../utils/colors/calculateGrayScale.js";import"../../../utils/colors/calculateAccentColors.js";const t=(t,e)=>t.filter((t=>{if(!e)return!0;if("string"==typeof t)return r(t,e);if(t.label){if(r(t.label,e))return!0;if("collapse"===t.type&&t.data){let i=!1;for(const o of t.data){if(i)break;"string"==typeof o&&(i=r(o,e)),"string"!=typeof o&&o.label&&(i=r(o.label,e))}return i}}return!1}));export{t as filterData};
@@ -0,0 +1,26 @@
1
+ import { ResetStyleStateType, SelectFieldData, SelectFieldOptionClickEventHandler, SelectFieldSize } from '../types';
2
+ import { ScrollableTabsProps } from '../../scrollable-tabs';
3
+ import { UseSelectFieldReturnType } from '..';
4
+ export type SelectModalGeneralProps = {
5
+ data?: SelectFieldData;
6
+ contentWidth?: number;
7
+ contentHeight?: number;
8
+ size?: SelectFieldSize;
9
+ disableSelect?: boolean;
10
+ disableScrollbar?: boolean;
11
+ before?: SelectFieldData;
12
+ after?: SelectFieldData;
13
+ tabs?: Omit<ScrollableTabsProps, 'variant' | 'component'>;
14
+ search?: boolean;
15
+ searchPlaceholder?: string;
16
+ resetStyleState?: ResetStyleStateType;
17
+ blur?: boolean;
18
+ modalWidth?: string;
19
+ openedModel?: string;
20
+ selectedColor?: string;
21
+ compactWidth?: boolean;
22
+ onOptionClick?: SelectFieldOptionClickEventHandler;
23
+ };
24
+ export type SelectModalProps = SelectModalGeneralProps & Omit<UseSelectFieldReturnType, 'disabled' | 'handleInputClick' | 'maxHeight' | 'triggerRef'>;
25
+ export declare const SelectModal: ({ isOpen, data, contentWidth, contentHeight, size, disableSelect, disableScrollbar, before, after, tabs, search, searchPlaceholder, resetStyleState, placement, selectModalRef, blur, x, y, width, isKeyboardOpen, value, multiple, modalWidth, openedModel, selectedColor, compactWidth, onOptionClick, handleClose, setValue }: SelectModalProps) => import("react/jsx-runtime").JSX.Element;
26
+ export * from './styled';
@@ -0,0 +1 @@
1
+ import{__rest as i}from"tslib";import{jsx as o,jsxs as s}from"react/jsx-runtime";import{useState as n,useRef as e,useCallback as t,useEffect as r}from"react";import{SelectModalStyled as c,SelectModalPositionWrapper as d,SelectModalContent as p,SelectModalGroups as m,SelectModalTabsContainer as x,SelectModalTabs as j,SelectModalSearch as a}from"./styled.js";import{Portal as l}from"../../portal/index.js";import{SelectFieldGroup as g}from"../select-field-group/index.js";import{SelectFieldOptions as b}from"../option/list/index.js";import"../option/collapse/styled.js";import"../../icon/styled.js";import"@react-spring/web";import"../../tooltip/styled.js";import"../../tooltip/arrow/styled.js";import"../../../theme/index.js";import"../../tooltip/context.js";import{filterData as u}from"./filterData.js";import"../../../icons/arrow-down/index.js";import"../../../icons/arrow-narrow-left/index.js";import"../../../icons/arrow-narrow-right/index.js";import"../../../icons/arrow-up/index.js";import"../../../icons/bitcoin/index.js";import"../../../icons/bot-circle/index.js";import"../../../icons/bothub-agg/index.js";import"../../../icons/business-colored/index.js";import"../../../icons/check-circle/index.js";import"../../../icons/close/index.js";import"../../../icons/email-circle/index.js";import"../../../icons/language/index.js";import"../../../icons/lock-circle/index.js";import"../../../icons/menu/index.js";import"../../../icons/medium-circle/index.js";import"../../../icons/tg-circle/index.js";import"../../../icons/tg-colored/index.js";import"../../../icons/youcassa/index.js";import"../../../icons/dashboard/index.js";import"../../../icons/user-profile/index.js";import"../../../icons/logout/index.js";import"../../../icons/habr-2/index.js";import"../../../icons/arrow-2-down/index.js";import"../../../icons/links/index.js";import"../../../icons/free/index.js";import"../../../icons/hotness/index.js";import"../../../icons/checked/index.js";import"../../../icons/ai/index.js";import"../../../icons/bookmarks/index.js";import"../../../icons/bookmarks-big/index.js";import"../../../icons/chat/index.js";import"../../../icons/chats/index.js";import"../../../icons/coder/index.js";import"../../../icons/copy/index.js";import"../../../icons/edit/index.js";import"../../../icons/presets-big/index.js";import"../../../icons/referal/index.js";import"../../../icons/restore/index.js";import"../../../icons/tariff/index.js";import"../../../icons/trash/index.js";import"../../../icons/update/index.js";import"../../../icons/menu-dot/index.js";import"../../../icons/plus-2/index.js";import"../../../icons/plus-1/index.js";import"../../../icons/send/index.js";import"../../../icons/settings/index.js";import"../../../icons/habr/index.js";import"../../../icons/check-small/index.js";import"../../../icons/stop/index.js";import"../../../icons/thumb-up/index.js";import"../../../icons/thumb-down/index.js";import"../../../icons/star/index.js";import"../../../icons/info-big/index.js";import"../../../icons/warning-big/index.js";import"../../../icons/error-big/index.js";import"../../../icons/success-big/index.js";import"../../../icons/mj/index.js";import"../../../icons/card/index.js";import"../../../icons/arrow-narrow-up/index.js";import"../../../icons/arrow-narrow-down/index.js";import"../../../icons/filters/index.js";import"../../../icons/info/index.js";import"../../../icons/search-circle/index.js";import"../../../icons/save/index.js";import"../../../icons/light/index.js";import"../../../icons/dark/index.js";import"../../../icons/email-colored/index.js";import"../../../icons/action-chat/index.js";import"../../../icons/attach/index.js";import"../../../icons/avatar-add/index.js";import"../../../icons/brush/index.js";import"../../../icons/calendar/index.js";import"../../../icons/claude/index.js";import"../../../icons/cookie/index.js";import"../../../icons/dalle/index.js";import"../../../icons/download-img/index.js";import"../../../icons/error/index.js";import"../../../icons/expand/index.js";import"../../../icons/eye/index.js";import"../../../icons/face/index.js";import"../../../icons/gear/index.js";import"../../../icons/gear-min/index.js";import"../../../icons/generation/index.js";import"../../../icons/gpt-3_5/index.js";import"../../../icons/gpt-4/index.js";import"../../../icons/imagine/index.js";import"../../../icons/imagine-2/index.js";import"../../../icons/loader/index.js";import"../../../icons/loader-circular/index.js";import"../../../icons/loader-circular-gradient/index.js";import"../../../icons/loader-circular-gradient-2/index.js";import"../../../icons/minus/index.js";import"../../../icons/mj-white/index.js";import"../../../icons/prompt/index.js";import"../../../icons/rabbit/index.js";import"../../../icons/ratio-1x1/index.js";import"../../../icons/ratio-2x3/index.js";import"../../../icons/ratio-3x2/index.js";import"../../../icons/ratio-4x5/index.js";import"../../../icons/ratio-4x7/index.js";import"../../../icons/ratio-5x4/index.js";import"../../../icons/ratio-7x4/index.js";import"../../../icons/ratio-16x9/index.js";import"../../../icons/ratio-9x16/index.js";import"../../../icons/ratio-21x9/index.js";import"../../../icons/ratio-9x21/index.js";import"../../../icons/refferal-min/index.js";import"../../../icons/search-data/index.js";import"../../../icons/square/index.js";import"../../../icons/turtle/index.js";import"../../../icons/upscale/index.js";import"../../../icons/withdraw/index.js";import"../../../icons/search-plus/index.js";import"../../../icons/lightning/index.js";import"../../../icons/blog-circle/index.js";import"../../../icons/stripe/index.js";import"../../../icons/corporate/index.js";import"../../../icons/public/index.js";import"../../../icons/private/index.js";import"../../../icons/mistral/index.js";import"../../../icons/gemini/index.js";import{SearchSimpleIcon as h}from"../../../icons/search-simple/index.js";import"../../../icons/sad-robot/index.js";import"../../../icons/model/index.js";import"../../../icons/phone-colored/index.js";import"../../../icons/questions/index.js";import"../../../icons/pdf-big/index.js";import"../../../icons/xls-big/index.js";import"../../../icons/word-big/index.js";import"../../../icons/txt-big/index.js";import"../../../icons/pdf/index.js";import"../../../icons/xls/index.js";import"../../../icons/word/index.js";import"../../../icons/txt/index.js";import"../../../icons/bothub-logo-gradient/index.js";import"../../../icons/telegram-logo-gradient/index.js";import"../../../icons/decline-circle/index.js";import"../../../icons/simple-gear-bg/index.js";import"../../../icons/advanced-filter/index.js";import"../../../icons/big-corporate/index.js";import"../../../icons/big-mj/index.js";import"../../../icons/big-models/index.js";import"../../../icons/big-stats/index.js";import"../../../icons/big-success/index.js";import"../../../icons/big-users/index.js";import"../../../icons/optional-presets/index.js";import"../../../icons/wallet-withdraw/index.js";import"../../../icons/big-presets/index.js";import"../../../icons/big-favorite/index.js";import"../../../icons/big-referal/index.js";import"../../../icons/attach-file/index.js";import"../../../icons/attach-file-big/index.js";import"../../../icons/voice/index.js";import"../../../icons/play-button/index.js";import"../../../icons/pause-button/index.js";import"../../../icons/text-read/index.js";import"../../../icons/text-hide/index.js";import"../../../icons/best-chat-bots/index.js";import"../../../icons/upload/index.js";import"../../../icons/enter/index.js";import"../../../icons/discord/index.js";import"../../../icons/discord-circle/index.js";import"../../../icons/black-forest-labs/index.js";import"../../../icons/flux/index.js";import"../../../icons/stable-diffusion/index.js";import"../../../icons/stability-ai/index.js";import"../../../icons/article-generator/index.js";import"../../../icons/success/index.js";import"../../../icons/google/index.js";import"../../../icons/yandex/index.js";import"../../../icons/vk/index.js";import"../../../icons/resend/index.js";import"../../../icons/big-article/index.js";import"../../../icons/add-chat/index.js";import"../../../icons/add-group/index.js";import"../../../icons/drag-dot/index.js";import"../../../icons/add-folder/index.js";import"../../../icons/temp-chat/index.js";import"../../../icons/delete-chat/index.js";import"../../../icons/sidebar-chat/index.js";import"../../../icons/organization/index.js";import"../../../icons/simple-gear/index.js";import"../../../icons/text-bold/index.js";import"../../../icons/text-italic/index.js";import"../../../icons/text-underline/index.js";import"../../../icons/text-strikethrough/index.js";import"../../../icons/refresh/index.js";import"../../../icons/copy-variants/index.js";import"../../../icons/sort-ascending/index.js";import"../../../icons/sort-descending/index.js";import"../../../icons/quote/index.js";import"../../../icons/url-circle/index.js";import"../../../icons/show-ui/index.js";import"../../../icons/hide-ui/index.js";import"../../../icons/sort-user/index.js";import"../../../icons/happy-robot/index.js";import"../../../icons/happy-robot-gradient/index.js";import"../../../icons/min-window/index.js";import"../../../icons/max-window/index.js";import"../../../icons/manage-chat/index.js";import"../../../icons/analyze-urls/index.js";import"../../../icons/web-search/index.js";import"../../../icons/include-context/index.js";import"../../../icons/queue/index.js";import"../../../icons/sort-alphabet-ascending/index.js";import"../../../icons/sort-alphabet-descending/index.js";import"../../../icons/sort-date-ascending/index.js";import"../../../icons/sort-date-descending/index.js";import"../../../icons/cot-r1/index.js";import"../../../icons/news/index.js";import"../../../icons/volume/index.js";import"../../../icons/flag-ru/index.js";import"../../../icons/flag-kz/index.js";import"../../../icons/print/index.js";import"../../../icons/pc-icon-1/index.js";import"../../../icons/pc-icon-2/index.js";import"../../../icons/pc-icon-3/index.js";import"../../../icons/star-unfilled/index.js";import"../../../icons/image-generation/index.js";import"../../../icons/speech-synthesys/index.js";import"../../../icons/transcription/index.js";import"../../../icons/text-rewrite/index.js";import"../../../icons/code-generation/index.js";import"../../../icons/essay-generation/index.js";import"../../../icons/spelling/index.js";import"../../../icons/text-generation/index.js";import"../../../icons/traffic-analisys/index.js";import"../../../icons/fav-profile/index.js";import"../../../icons/exclamation/index.js";import"../../../icons/article/index.js";import"../../../icons/setchel/index.js";import"../../../icons/assembly/index.js";import"../../../icons/data-visualisation/index.js";import"../../../icons/document-analisys/index.js";import"../../../icons/problem-solvment/index.js";import"../../../icons/setting-analisys/index.js";import"../../../icons/translation/index.js";import"../../../icons/stars/index.js";import"../../../icons/academy/index.js";import"../../../icons/articles/index.js";import"../../../icons/blog-post/index.js";import"../../../icons/book/index.js";import"../../../icons/bow-tie/index.js";import"../../../icons/case-study/index.js";import"../../../icons/comments/index.js";import"../../../icons/guide/index.js";import"../../../icons/marketing/index.js";import"../../../icons/post/index.js";import"../../../icons/report/index.js";import"../../../icons/review/index.js";import"../../../icons/scientific-article/index.js";import"../../../icons/selling-text/index.js";import"../../../icons/textbook/index.js";import"../../../icons/wind/index.js";import"../../../icons/grok/index.js";import"../../../icons/deepseek/index.js";import"../../../icons/grid-horizontal/index.js";import"../../../icons/grid-vertical/index.js";import"../../../icons/star-gradient/index.js";import"../../../icons/qwen/index.js";import"../../../icons/sidebar-toggle-left/index.js";import"../../../icons/sidebar-toggle-right/index.js";import"../../../icons/system/index.js";import"../../../icons/selector/index.js";import"../../../icons/video-camera/index.js";import"../../../icons/music-note/index.js";import"../../../icons/add-profile/index.js";import"../../../icons/token-counter/index.js";import"../../../icons/customer-support/index.js";import"../../../icons/video-generation/index.js";import"../../../icons/veo-model/index.js";import"../../../icons/runway/index.js";import"../../../icons/queue-select/index.js";import"../../../icons/apple/index.js";import"../../../icons/mail-colored/index.js";import"../../../icons/shield/index.js";const f=({isOpen:f,data:w=[],contentWidth:y,contentHeight:k,size:v="small",disableSelect:C=!1,disableScrollbar:$=!1,before:O,after:S,tabs:z,search:T,searchPlaceholder:q,resetStyleState:W,placement:H,selectModalRef:A,blur:M=!1,x:B,y:D,width:I,isKeyboardOpen:K,value:P,multiple:R,modalWidth:V,openedModel:_,selectedColor:E,compactWidth:F,onOptionClick:G,handleClose:J,setValue:L})=>{const[N,Q]=n([]),[U,X]=n(""),Y=e([0,0,0]),Z=(i,o)=>{Y.current=Y.current.map(((s,n)=>n===o?i:s))},ii=t((i=>{const{value:o}=i.currentTarget;X(o.trim())}),[X]),oi=t((i=>{var o;"object"==typeof i&&i.disabled||("object"==typeof i&&i.noSelect?null===(o=null==i?void 0:i.onClick)||void 0===o||o.call(i,i):(null==G||G(i),C||(R&&Array.isArray(P)?L([...new Set([...P,i])]):L(i)),J()))}),[P,L,R,G,C]);r((()=>{Q(_?[_]:[]),Y.current=[0,0,0],X("")}),[W,_]);const si=t((i=>{Y.current=[0,0,0],Q([]),z&&z.onClick&&z.onClick(i)}),[z]),ni=t((i=>Q((o=>o.includes(i)?o.filter((o=>o!==i)):[...o,i]))),[N]);return w=w.map((o=>{if("object"==typeof o&&"collapse"===o.type&&o.id&&!o.disabled){const{onClick:s}=o,n=i(o,["onClick"]),e=()=>{s&&s(o),o.id&&ni(o.id)},t=N.includes(o.id);return Object.assign(Object.assign(Object.assign({},n),t&&{open:t}),{onClick:e})}return o})),o(l,{children:o(c,{$isOpen:f,$contentWidth:y,ref:A,style:Object.assign(Object.assign(Object.assign(Object.assign({},0!==B&&Object.assign(Object.assign({},"top-right"!==H&&{left:B}),"top-right"===H&&Object.assign(Object.assign({},void 0===y&&{left:`calc(${B}px - ${I})`}),"number"==typeof y&&{left:`calc(${B}px - ${y>I?`calc(var(--bothub-scale, 1) * ${y}px)`:`${I}px`})`}))),0!==D&&{top:D}),void 0===y&&{width:I}),"number"==typeof y&&{width:y>I?`calc(var(--bothub-scale, 1) * ${y}px)`:I}),children:o(d,{$blur:M,$placement:H,$width:V,$compactWidth:F,style:{height:k&&`calc(var(--bothub-scale, 1) * ${k}px)`},children:o(p,{children:s(m,{$size:v,children:[!!z&&o(x,{children:o(j,Object.assign({},z,{onClick:si}))}),T&&o(a,{startIcon:o(h,{}),placeholder:q,value:U,onChange:ii,onClick:()=>{K.current=!0},onBlur:()=>setTimeout((()=>{K.current=!1}),500)}),O&&o(g,{scrollTop:Y.current[0],onScrollTopChange:i=>Z(i,0),$size:v,$disableScrollbar:$,$followContentHeight:!!k,children:o(b,{value:P,data:u(O,U),size:v,disableSelect:C,onOptionClick:oi,selectedColor:E})}),o(g,{scrollTop:Y.current[1],onScrollTopChange:i=>Z(i,1),$size:v,$disableScrollbar:$,$followContentHeight:!!k,children:o(b,{value:P,data:u(w,U),size:v,disableSelect:C,onOptionClick:oi,selectedColor:E})}),S&&o(g,{scrollTop:Y.current[2],onScrollTopChange:i=>Z(i,2),$size:v,$disableScrollbar:$,$followContentHeight:!!k,children:o(b,{value:P,data:u(S,U),size:v,disableSelect:C,onOptionClick:oi,selectedColor:E})})]})})})})})};export{f as SelectModal,p as SelectModalContent,m as SelectModalGroups,d as SelectModalPositionWrapper,a as SelectModalSearch,c as SelectModalStyled,j as SelectModalTabs,x as SelectModalTabsContainer};