1import{s as e}from"./rolldown-runtime.js";import{t}from"./react.js";import{t as n}from"./use-id.js";import{t as r}from"./use-uncontrolled.js";import{f as i,r as a,x as o}from"./Box.js";import{i as s}from"./MantineThemeProvider.js";import{a as c,i as l,n as u,r as d,t as f}from"./Combobox.js";import{t as p}from"./use-resolved-styles-api.js";import{t as ee}from"./ScrollArea.js";import{t as m}from"./InputBase.js";import{t as h}from"./CheckIcon.js";var g=e(t(),1);function _(e){let t=(0,g.useRef)(void 0);return(0,g.useEffect)(()=>{t.current=e},[e]),t.current}function v(e){return typeof e==`string`?{value:e,label:e}:typeof e==`object`&&`value`in e&&!(`label`in e)?{value:e.value,label:`${e.value}`,disabled:e.disabled}:typeof e==`object`&&`group`in e?{group:e.group,items:e.items.map(e=>v(e))}:typeof e==`number`||typeof e==`bigint`||typeof e==`boolean`?{value:e,label:`${e}`}:e}function y(e){return e?e.map(e=>v(e)):[]}function b(e){return e.reduce((e,t)=>`group`in t?{...e,...b(t.items)}:(e[`${t.value}`]=t,e),{})}function x(e){return`group`in e}function S({options:e,search:t,limit:n}){let r=t.trim().toLowerCase(),i=[];for(let a=0;a<e.length;a+=1){let o=e[a];if(i.length===n)return i;x(o)&&i.push({group:o.group,items:S({options:o.items,search:t,limit:n-i.length})}),x(o)||o.label.toLowerCase().includes(r)&&i.push(o)}return i}function C(e){if(e.length===0)return!0;for(let t of e)if(!(`group`in t)||t.items.length>0)return!1;return!0}function w(e,t=new Set){if(Array.isArray(e))for(let n of e)if(x(n))w(n.items,t);else{if(n.value===void 0)throw Error(`[@mantine/core] Each option must have value property`);if(t.has(n.value))throw Error(`[@mantine/core] Duplicate options are not supported. Option with value "${n.value}" was provided more than once`);t.add(n.value)}}var T=s();function E(e,t){return Array.isArray(e)?e.includes(t):e===t}function D({data:e,withCheckIcon:t,withAlignedLabels:n,value:r,checkIconPosition:i,unstyled:a,renderOption:s}){if(!x(e)){let c=E(r,e.value),u=t&&(c?(0,T.jsx)(h,{className:l.optionsDropdownCheckIcon}):n?(0,T.jsx)(`div`,{className:l.optionsDropdownCheckPlaceholder}):null),d=(0,T.jsxs)(T.Fragment,{children:[i===`left`&&u,(0,T.jsx)(`span`,{children:e.label}),i===`right`&&u]});return(0,T.jsx)(f.Option,{value:e.value,disabled:e.disabled,className:o({[l.optionsDropdownOption]:!a}),"data-reverse":i===`right`||void 0,"data-checked":c||void 0,"aria-selected":c,active:c,children:typeof s==`function`?s({option:e,checked:c}):d})}let c=e.items.map(e=>(0,T.jsx)(D,{data:e,value:r,unstyled:a,withCheckIcon:t,withAlignedLabels:n,checkIconPosition:i,renderOption:s},`${e.value}`));return(0,T.jsx)(f.Group,{label:e.group,children:c})}function O({data:e,hidden:t,hiddenWhenEmpty:n,filter:r,search:i,limit:a,maxDropdownHeight:o,floatingHeight:s,withScrollArea:c=!0,filterOptions:l=!0,withCheckIcon:u=!1,withAlignedLabels:p=!1,value:m,checkIconPosition:h,nothingFoundMessage:g,unstyled:_,labelId:v,renderOption:y,scrollAreaProps:b,"aria-label":E}){let O=d();w(e);let k=typeof i==`string`?(r||S)({options:e,search:l?i:``,limit:a??1/0}):e,A=C(k),j=k.map((e,t)=>(0,T.jsx)(D,{data:e,withCheckIcon:u,withAlignedLabels:p,value:m,checkIconPosition:h,unstyled:_,renderOption:y},x(e)?`group-${typeof e.group==`string`?e.group:t}`:`${e.value}`));return(0,T.jsx)(f.Dropdown,{hidden:t||n&&A,"data-composed":!0,children:(0,T.jsxs)(f.Options,{labelledBy:v,"aria-label":E,children:[c?(0,T.jsx)(ee.Autosize,{mah:(s??O.floatingHeight)===`viewport`?`var(--combobox-floating-options-max-height)`:o??220,type:`scroll`,scrollbarSize:`var(--combobox-padding)`,offsetScrollbars:`y`,...b,children:j}):j,A&&g&&(0,T.jsx)(f.Empty,{children:g})]})})}function k(e){let t=e.currentTarget;return c(t).activeElement!==t}function A(e,t){let n=t.trim().toLowerCase();if(n===``)return;let r=Object.values(e).filter(e=>!e.disabled&&e.label.trim().toLowerCase()===n);return r.length===1?r[0]:void 0}var j={size:`sm`,withCheckIcon:!0,allowDeselect:!0,checkIconPosition:`left`,openOnFocus:!0},M=a(e=>{let t=i([`Input`,`InputWrapper`,`Select`],j,e),{classNames:a,styles:o,unstyled:s,vars:c,dropdownOpened:l,defaultDropdownOpened:d,onDropdownClose:ee,onDropdownOpen:h,onFocus:v,onBlur:x,onClick:S,onChange:C,data:w,value:E,defaultValue:D,selectFirstOptionOnChange:M,selectFirstOptionOnDropdownOpen:te,onOptionSubmit:ne,comboboxProps:re,readOnly:N,disabled:P,filter:ie,limit:ae,withScrollArea:oe,maxDropdownHeight:se,floatingHeight:ce,size:F,searchable:I,rightSection:le,checkIconPosition:ue,withCheckIcon:de,withAlignedLabels:fe,nothingFoundMessage:L,name:pe,form:me,searchValue:he,defaultSearchValue:ge,onSearchChange:_e,allowDeselect:ve,error:R,rightSectionPointerEvents:ye,id:be,clearable:xe,clearSectionMode:Se,clearButtonProps:Ce,hiddenInputProps:we,renderOption:Te,onClear:Ee,autoComplete:De,scrollAreaProps:Oe,__defaultRightSection:ke,__clearSection:Ae,__clearable:je,chevronColor:Me,autoSelectOnBlur:z,openOnFocus:Ne,attributes:B,...V}=t,H=(0,g.useMemo)(()=>y(w),[w]),U=(0,g.useRef)({}),W=(0,g.useMemo)(()=>b(H),[H]),G=n(be),[K,q,J]=r({value:E,defaultValue:D,finalValue:null,onChange:C}),Y=K==null?void 0:`${K}`in W?W[`${K}`]:U.current[`${K}`],Pe=_(Y),[X,Fe,Ie]=r({value:he,defaultValue:ge,finalValue:Y?Y.label:``,onChange:_e}),Z=u({opened:l,defaultOpened:d,onDropdownOpen:()=>{h?.(),te?Z.selectFirstOption():Z.updateSelectedOptionIndex(`active`,{scrollIntoView:!0})},onDropdownClose:()=>{ee?.(),setTimeout(Z.resetSelectedOption,0)}}),Q=e=>{Fe(e),Z.resetSelectedOption()},{resolvedClassNames:Le,resolvedStyles:$}=p({props:t,styles:o,classNames:a});(0,g.useEffect)(()=>{M&&Z.selectFirstOption()},[M,X]),(0,g.useEffect)(()=>{E===null&&Q(``),E!=null&&Y&&(Pe?.value!==Y.value||Pe?.label!==Y.label)&&Q(Y.label)},[E,Y]),(0,g.useEffect)(()=>{!J&&!Ie&&Q(K==null?``:`${K}`in W?W[`${K}`]?.label:U.current[`${K}`]?.label||``)},[W,K]),(0,g.useEffect)(()=>{K&&`${K}`in W&&(U.current[`${K}`]=W[`${K}`])},[W,K]);let Re=(0,T.jsx)(f.ClearButton,{...Ce,onClear:()=>{q(null,null),Q(``),Ee?.()}}),ze=xe&&K!=null&&!P&&!N;return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsxs)(f,{store:Z,__staticSelector:`
1Select`,classNames:Le,styles:$,unstyled:s,readOnly:N,size:F,attributes:B,floatingHeight:ce,keepMounted:z,onOptionSubmit:e=>{ne?.(e);let t=ve&&`${W[e].value}`==`${K}`?null:W[e],n=t?t.value:null;n!==K&&q(n,t),!J&&Q(n==null?``:t?.label||``),Z.closeDropdown()},...re,children:[(0,T.jsx)(f.Target,{targetType:I?`input`:`button`,autoComplete:De,withExpandedAttribute:!0,children:(0,T.jsx)(m,{id:G,__defaultRightSection:(0,T.jsx)(f.Chevron,{size:F,error:R,unstyled:s,color:Me}),__clearSection:Re,__clearable:ze,__clearSectionMode:Se,rightSection:le,rightSectionPointerEvents:ye||`none`,...V,size:F,__staticSelector:`Select`,disabled:P,readOnly:N||!I,value:X,onChange:e=>{if(k(e)){if(!N){let t=A(W,e.currentTarget.value);t&&`${t.value}`!=`${K}`&&(q(t.value,t),!J&&Q(t.label))}return}Q(e.currentTarget.value),Z.openDropdown(),M&&Z.selectFirstOption()},onFocus:e=>{Ne&&I&&Z.openDropdown(),v?.(e)},onBlur:e=>{z&&Z.clickSelectedOption(),I&&Z.closeDropdown();let t=K!=null&&(`${K}`in W?W[`${K}`]:U.current[`${K}`]);Q(t&&t.label||``),x?.(e)},onClick:e=>{I?Z.openDropdown():Z.toggleDropdown(),S?.(e)},classNames:Le,styles:$,unstyled:s,pointer:!I,error:R,attributes:B})}),(0,T.jsx)(O,{data:H,hidden:N||P,filter:ie,search:X,limit:ae,hiddenWhenEmpty:!L,withScrollArea:oe,maxDropdownHeight:se,filterOptions:!!I&&Y?.label!==X,value:K,checkIconPosition:ue,withCheckIcon:de,withAlignedLabels:fe,nothingFoundMessage:L,unstyled:s,labelId:V.label?`${G}-label`:void 0,"aria-label":V.label?void 0:V[`aria-label`],renderOption:Te,scrollAreaProps:Oe})]}),(0,T.jsx)(f.HiddenInput,{value:K,name:pe,form:me,disabled:P,...we})]})});M.classes={...m.classes,...f.classes},M.displayName=`@mantine/core/Select`;export{x as a,O as i,A as n,b as o,k as r,y as s,M as t}; 2//# sourceMappingURL=Select.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.