@infinityfx/fluid 1.4.12 → 1.4.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{jsx as e,jsxs as r}from"react/jsx-runtime";import{useRef as o,useState as t,useLayoutEffect as n,useMemo as i,Children as a,isValidElement as s,cloneElement as c}from"react";import l from"../../layout/popover/index.js";import d from"../../layout/scrollarea.js";import m from"../../input/field.js";import{Animatable as u}from"@infinityfx/lively";import{combineClasses as f,combineRefs as p,classes as h,getFocusable as g}from"../../../core/utils.js";import{createStyles as x}from"../../../core/style.js";import{usePopover as v}from"../../layout/popover/root.js";import{Icon as y}from"../../../core/icons.js";import"../../../context/fluid.js";import b from"../../../hooks/use-debounce.js";const _=x("combobox.content",{".container:not(.modal)":{background:"var(--f-clr-fg-100)",border:"solid 1px var(--f-clr-fg-200)",borderRadius:"calc(.25em + var(--f-radius-sml))",boxShadow:"var(--f-shadow-med)",minWidth:"min(100vw, 10em)",width:"100%"},".container.round":{borderRadius:"1.4em"},".s__xsm":{fontSize:"var(--f-font-size-xxs)"},".s__sml":{fontSize:"var(--f-font-size-xsm)"},".s__med":{fontSize:"var(--f-font-size-sml)"},".s__lrg":{fontSize:"var(--f-font-size-med)"},".content":{maxHeight:"9.5em"},".modal .content":{maxHeight:"50vh"},".message":{position:"relative",padding:".5em",width:"100%",textAlign:"center",color:"var(--f-clr-grey-500)",lineHeight:1.25},".container .field":{margin:".25em",marginBottom:0},".container .field__content":{paddingBlock:".5em"}});function w({children:x,cc:w={},round:j,size:z="med",autoFocus:k=!0,searchable:M=!1,placeholder:S="Search..",emptyMessage:C="Nothing found",virtualItemHeight:F=0,...H}){const N=f(_,w),{opened:A,trigger:D,content:T,isModal:K}=v(),L=o(0),R=o({list:[],index:k?0:-1}),[B,U]=t(""),[I,V]=t({start:0,end:1/0}),W=b((e=>{$(0),U(e)}),200);function $(e){if(!F||!T.current)return V({start:0,end:1/0});const r=Math.ceil(T.current.offsetHeight/F),o=Math.floor(r/2),t=o+Math.floor(e/(F*o))*o,n=Math.max(0,t-r),i=n+2*r;I.end!==i&&V({start:n,end:i})}n((()=>{A&&$(0)}),[A]);const q=i((()=>(L.current=0,a.map(x,(e=>{const r=s(e)&&("value"in e.props?e:e.props.children);if(!s(r)||!("value"in r.props))return e;if(!((""+r.props.value).toLowerCase()||"").includes(B))return null;const o=L.current++,t=o+(M?1:0);return o<I.start||o>I.end?null:c(e,{round:j,ref:p((e=>{R.current.list[t]=e}),e.props.ref),onFocus:e=>{R.current.index=t,H.onFocus?.(e)},autoFocus:t==R.current.index})})))),[x,I,B]);return e(l.Content,{children:e(u,{id:"combobox-options-outer",animate:{opacity:[0,.2,1],scale:[.9,1],duration:.2},triggers:[{on:"mount"},{on:"unmount",reverse:!0}],children:r("div",{...H,role:"listbox",className:h(N.container,N[`s__${z}`],j&&N.round,K&&N.modal,H.className),onKeyDown:e=>{if(H.onKeyDown?.(e),"Tab"!==e.key&&"ArrowDown"!==e.key&&"ArrowUp"!==e.key)return;const{index:r,list:o}=R.current,t="ArrowUp"===e.key||e.shiftKey?Math.max(r-1,-1):Math.min(r+1,o.length-1),n=t<0?g(D.current,!1):o[R.current.index=t];n?n.focus():R.current.index=0,(n||"Tab"!==e.key)&&e.preventDefault()},children:[M&&e(m,{round:j,size:z,variant:"minimal",placeholder:S,icon:e(y,{type:"search"}),inputRef:e=>R.current.list[0]=e,autoFocus:0==R.current.index,onFocus:()=>R.current.index=0,defaultValue:B,onChange:e=>W(e.target.value.toLowerCase()),cc:{...w,field:N.field,content:N.field__content}}),e(d,{className:N.content,onScroll:e=>$(e.currentTarget.scrollTop),children:r("div",{style:{padding:".25em",minHeight:F?F*L.current:void 0},children:[e("div",{style:{height:F*I.start}}),e(u,{id:"combobox-options-inner",inherit:!0,cachable:[],animate:{opacity:[0,1],scale:[.95,1],duration:.2},staggerLimit:4,stagger:.05,children:(!F||I.end!==1/0)&&q}),!L.current&&e("div",{className:N.message,children:C})]})})]})})})}w.displayName="Combobox.Content";export{w as default};
2
+ import{jsx as e,jsxs as r}from"react/jsx-runtime";import{useRef as o,useState as t,useLayoutEffect as n,useMemo as i,Children as a,isValidElement as s,cloneElement as c}from"react";import l from"../../layout/popover/index.js";import d from"../../layout/scrollarea.js";import m from"../../input/field.js";import{Animatable as u}from"@infinityfx/lively";import{combineClasses as f,combineRefs as p,classes as h,getFocusable as g}from"../../../core/utils.js";import{createStyles as x}from"../../../core/style.js";import{usePopover as v}from"../../layout/popover/root.js";import{Icon as y}from"../../../core/icons.js";import"../../../context/fluid.js";import b from"../../../hooks/use-debounce.js";const _=x("combobox.content",{".container:not(.modal)":{background:"var(--f-clr-fg-100)",border:"solid 1px var(--f-clr-fg-200)",borderRadius:"calc(.25em + var(--f-radius-sml))",boxShadow:"var(--f-shadow-med)",minWidth:"min(100vw, 10em)",width:"100%"},".container.round":{borderRadius:"1.4em"},".s__xsm":{fontSize:"var(--f-font-size-xxs)"},".s__sml":{fontSize:"var(--f-font-size-xsm)"},".s__med":{fontSize:"var(--f-font-size-sml)"},".s__lrg":{fontSize:"var(--f-font-size-med)"},".content":{maxHeight:"9.5em"},".modal .content":{maxHeight:"50vh"},".message":{position:"relative",padding:".5em",width:"100%",textAlign:"center",color:"var(--f-clr-grey-500)",lineHeight:1.25},".container .field":{margin:".25em",marginBottom:0},".container .field__content":{paddingBlock:".5em"}});function w({children:x,cc:w={},round:j,size:z="med",autoFocus:k=!0,searchable:M=!1,placeholder:S="Search..",emptyMessage:C="Nothing found",virtualItemHeight:F=0,...H}){const N=f(_,w),{opened:A,trigger:B,content:D,isModal:T}=v(),K=o(0),L=o({list:[],index:k?0:-1}),[R,U]=t(""),[I,V]=t({start:0,end:1/0}),W=b((e=>{$(0),U(e)}),200);function $(e){if(!F||!D.current)return V({start:0,end:1/0});const r=Math.ceil(D.current.offsetHeight/F),o=Math.floor(r/2),t=o+Math.floor(e/(F*o))*o,n=Math.max(0,t-r),i=n+2*r;I.end!==i&&V({start:n,end:i})}n((()=>{A&&$(0)}),[A]);const q=i((()=>(K.current=0,a.map(x,(e=>{const r=s(e)&&("value"in e.props?e:e.props.children);if(!s(r)||!("value"in r.props))return e;if(!((""+r.props.value).toLowerCase()||"").includes(R))return null;const o=K.current++,t=o+(M?1:0);return o<I.start||o>I.end?null:c(e,{round:j,ref:p((e=>{L.current.list[t]=e}),e.props.ref),onFocus:e=>{L.current.index=t,H.onFocus?.(e)},autoFocus:t==L.current.index})})))),[x,I,R]);return e(l.Content,{children:e(u,{id:"combobox-options-outer",animate:{opacity:[0,.2,1],scale:[.9,1],duration:.2},triggers:[{on:"mount"},{on:"unmount",reverse:!0}],children:r("div",{...H,role:"listbox",className:h(N.container,N[`s__${z}`],j&&N.round,T&&N.modal,H.className),onBlur:e=>{H.onBlur?.(e),L.current.index=-1},onKeyDown:e=>{if(H.onKeyDown?.(e),"Tab"!==e.key&&"ArrowDown"!==e.key&&"ArrowUp"!==e.key)return;const{index:r,list:o}=L.current,t="ArrowUp"===e.key||e.shiftKey?Math.max(r-1,-1):Math.min(r+1,o.length-1),n=t<0?g(B.current,!1):o[L.current.index=t];n?n.focus():L.current.index=0,(n||"Tab"!==e.key)&&e.preventDefault()},children:[M&&e(m,{round:j,size:z,variant:"minimal",placeholder:S,icon:e(y,{type:"search"}),inputRef:e=>L.current.list[0]=e,autoFocus:0==L.current.index,onFocus:()=>L.current.index=0,defaultValue:R,onChange:e=>W(e.target.value.toLowerCase()),cc:{...w,field:N.field,content:N.field__content}}),e(d,{className:N.content,onScroll:e=>$(e.currentTarget.scrollTop),children:r("div",{style:{padding:".25em",minHeight:F?F*K.current:void 0},children:[e("div",{style:{height:F*I.start}}),e(u,{id:"combobox-options-inner",inherit:!0,cachable:[],animate:{opacity:[0,1],scale:[.95,1],duration:.2},staggerLimit:4,stagger:.05,children:(!F||I.end!==1/0)&&q}),!K.current&&e("div",{className:N.message,children:C})]})})]})})})}w.displayName="Combobox.Content";export{w as default};
3
3
  //# sourceMappingURL=content.js.map
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{jsxs as r,jsx as e}from"react/jsx-runtime";import{useState as o,useMemo as a}from"react";import{combineClasses as l,classes as t}from"../../core/utils.js";import i from"../../hooks/use-input-props.js";import{createStyles as n}from"../../core/style.js";const d=n("field",{".input":{border:"none",background:"none",outline:"none",color:"var(--f-clr-text-100)",width:0,flexGrow:1},".input::placeholder":{color:"var(--f-clr-grey-300)"},".field":{backgroundColor:"var(--f-clr-fg-100)",borderRadius:"var(--f-radius-sml)",color:"var(--f-clr-grey-200)",transition:"background-color .2s, border-color .2s, color .2s, outline-color .2s",display:"flex",alignItems:"center",overflow:"hidden",outline:"solid 3px transparent",minWidth:"min(var(--width, 100vw), 12em)"},".v__default":{border:"solid 1px var(--f-clr-fg-200)"},".v__minimal":{backgroundColor:"var(--f-clr-fg-100)"},".content":{display:"flex",alignItems:"center",gap:"var(--f-spacing-xsm)",padding:".675em",flexGrow:1},".v__default:focus-within":{borderColor:"var(--f-clr-primary-100)",color:"var(--f-clr-primary-100)",outlineColor:"var(--f-clr-primary-500)"},".v__minimal:focus-within":{backgroundColor:"var(--f-clr-fg-200)"},'.field[data-error="true"]':{borderColor:"var(--f-clr-error-100)"},'.field[data-error="true"]:focus-within':{outlineColor:"var(--f-clr-error-400)"},'.field[data-error="true"] .content':{color:"var(--f-clr-error-200)"},'.field[data-error="true"] .input':{color:"var(--f-clr-error-200)"},'.field[data-disabled="true"]':{backgroundColor:"var(--f-clr-grey-100)",borderColor:"var(--f-clr-grey-200)"},'.field[data-disabled="true"] .input':{color:"var(--f-clr-grey-500)"},".s__xsm":{fontSize:"var(--f-font-size-xxs)"},".s__sml":{fontSize:"var(--f-font-size-xsm)"},".s__med":{fontSize:"var(--f-font-size-sml)"},".s__lrg":{fontSize:"var(--f-font-size-med)"},".field.round":{borderRadius:"calc(1.4em + 1px)"}});function f({cc:n={},round:f=!1,size:s="med",variant:c="default",error:u,icon:v,left:m,right:p,onEnter:g,inputRef:b,shape:_,defaultValue:h,...x}){const y=l(d,n),[w,C]=i(x),[k,z]=void 0!==x.value?[x.value]:o(h||""),j=a((()=>_?.split("").map((r=>/0/.test(r)?/[0-9]/:/\*/.test(r)?/\w/:r))||[]),[_]);return r("div",{...C,className:t(y.field,y[`s__${s}`],y[`v__${c}`],f&&y.round,x.className),"data-error":!!u,"data-disabled":x.disabled,"data-fb":"default"===c?"true":void 0,children:[m,r("label",{className:y.content,children:[v,e("input",{...w,ref:b,value:k,onChange:r=>{let e=r.target.value.split(""),o="",a=0;for(let l=0,t=0;l<e.length;l++){const i=e[l],n=j[t];if(!n){0===t&&(o=r.target.value,a=o.length);break}if("string"==typeof n)o+=n,n===i&&l===t||l--;else{if(!n.test(i))break;o+=i,a=o.length}t++}r.target.value=o.slice(0,a),z?.(r.target.value),x.onChange?.(r)},className:y.input,"aria-invalid":!!u,onKeyDown:r=>{"Enter"===r.key&&g?.()}})]}),p]})}export{f as default};
2
+ import{jsxs as r,jsx as e}from"react/jsx-runtime";import{useState as o,useMemo as a}from"react";import{combineClasses as l,classes as t}from"../../core/utils.js";import i from"../../hooks/use-input-props.js";import{createStyles as n}from"../../core/style.js";const d=n("field",{".input":{border:"none",background:"none",outline:"none",color:"var(--f-clr-text-100)",width:0,flexGrow:1},".input::placeholder":{color:"var(--f-clr-grey-300)"},".field":{borderRadius:"var(--f-radius-sml)",color:"var(--f-clr-grey-200)",transition:"background-color .2s, border-color .2s, color .2s, outline-color .2s",display:"flex",alignItems:"center",overflow:"hidden",outline:"solid 3px transparent",minWidth:"min(var(--width, 100vw), 12em)"},".v__default":{backgroundColor:"var(--f-clr-fg-100)",border:"solid 1px var(--f-clr-fg-200)"},".v__minimal":{backgroundColor:"var(--f-clr-fg-100)"},".content":{display:"flex",alignItems:"center",gap:"var(--f-spacing-xsm)",padding:".675em",flexGrow:1},".v__default:focus-within":{borderColor:"var(--f-clr-primary-100)",color:"var(--f-clr-primary-100)",outlineColor:"var(--f-clr-primary-500)"},".v__minimal:focus-within":{backgroundColor:"var(--f-clr-fg-200)"},'.field[data-error="true"]':{borderColor:"var(--f-clr-error-100)"},'.field[data-error="true"]:focus-within':{outlineColor:"var(--f-clr-error-400)"},'.field[data-error="true"] .content':{color:"var(--f-clr-error-200)"},'.field[data-error="true"] .input':{color:"var(--f-clr-error-200)"},'.field[data-disabled="true"]':{backgroundColor:"var(--f-clr-grey-100)",borderColor:"var(--f-clr-grey-200)"},'.field[data-disabled="true"] .input':{color:"var(--f-clr-grey-500)"},".s__xsm":{fontSize:"var(--f-font-size-xxs)"},".s__sml":{fontSize:"var(--f-font-size-xsm)"},".s__med":{fontSize:"var(--f-font-size-sml)"},".s__lrg":{fontSize:"var(--f-font-size-med)"},".field.round":{borderRadius:"calc(1.4em + 1px)"}});function f({cc:n={},round:f=!1,size:s="med",variant:c="default",error:u,icon:v,left:m,right:p,onEnter:g,inputRef:b,shape:_,defaultValue:h,...x}){const y=l(d,n),[w,C]=i(x),[k,z]=void 0!==x.value?[x.value]:o(h||""),j=a((()=>_?.split("").map((r=>/0/.test(r)?/[0-9]/:/\*/.test(r)?/\w/:r))||[]),[_]);return r("div",{...C,className:t(y.field,y[`s__${s}`],y[`v__${c}`],f&&y.round,x.className),"data-error":!!u,"data-disabled":x.disabled,"data-fb":"default"===c?"true":void 0,children:[m,r("label",{className:y.content,children:[v,e("input",{...w,ref:b,value:k,onChange:r=>{let e=r.target.value.split(""),o="",a=0;for(let l=0,t=0;l<e.length;l++){const i=e[l],n=j[t];if(!n){0===t&&(o=r.target.value,a=o.length);break}if("string"==typeof n)o+=n,n===i&&l===t||l--;else{if(!n.test(i))break;o+=i,a=o.length}t++}r.target.value=o.slice(0,a),z?.(r.target.value),x.onChange?.(r)},className:y.input,"aria-invalid":!!u,onKeyDown:r=>{"Enter"===r.key&&g?.()}})]}),p]})}export{f as default};
3
3
  //# sourceMappingURL=field.js.map
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{jsxs as r,jsx as e}from"react/jsx-runtime";import{useState as o,useRef as a}from"react";import l from"./button.js";import i from"../../hooks/use-input-props.js";import{combineClasses as t,classes as n,combineRefs as d}from"../../core/utils.js";import{createStyles as c}from"../../core/style.js";import{Icon as s}from"../../core/icons.js";const f=c("file-field",{".input":{position:"absolute",opacity:0},".placeholder":{color:"var(--f-clr-text-100)",userSelect:"none",flexGrow:1,background:"none",border:"none",width:0,pointerEvents:"none"},".field":{backgroundColor:"var(--f-clr-fg-100)",borderRadius:"var(--f-radius-sml)",color:"var(--f-clr-grey-200)",transition:"background-color .2s, border-color .2s, color .2s, outline-color .2s",display:"flex",alignItems:"center",overflow:"hidden",outline:"solid 3px transparent",minWidth:"min(var(--width, 100vw), 12em)"},".v__default":{border:"solid 1px var(--f-clr-fg-200)"},".v__minimal":{backgroundColor:"var(--f-clr-fg-100)"},".content":{display:"flex",alignItems:"center",gap:"var(--f-spacing-xsm)",padding:".675em",flexGrow:1},".v__default:focus-within":{borderColor:"var(--f-clr-primary-100)",color:"var(--f-clr-primary-100)",outlineColor:"var(--f-clr-primary-500)"},".v__minimal:focus-within":{backgroundColor:"var(--f-clr-fg-200)"},'.field[data-error="true"]':{borderColor:"var(--f-clr-error-100)"},'.field[data-error="true"]:focus-within':{outlineColor:"var(--f-clr-error-400)"},'.field[data-error="true"] .content':{color:"var(--f-clr-error-200)"},'.field[data-error="true"] .placeholder':{color:"var(--f-clr-error-200)"},'.field[data-disabled="true"]':{backgroundColor:"var(--f-clr-grey-100)",borderColor:"var(--f-clr-grey-200)"},'.field[data-disabled="true"] .placeholder':{color:"var(--f-clr-grey-500)"},".s__xsm":{fontSize:"var(--f-font-size-xxs)"},".s__sml":{fontSize:"var(--f-font-size-xsm)"},".s__med":{fontSize:"var(--f-font-size-sml)"},".s__lrg":{fontSize:"var(--f-font-size-med)"},".field.round":{borderRadius:"calc(1.4em + 1px)"},".button":{marginRight:".25em"}});function u({cc:c={},size:u="med",variant:m="default",round:p,icon:b,error:v,loading:g=!1,inputRef:h,..._}){const y=t(f,c),[x,C]=o([]),z=a(null),[k,w]=i(_);return r("label",{...w,className:n(y.field,y[`s__${u}`],y[`v__${m}`],p&&y.round,_.className),"data-error":!!v,"data-disabled":_.disabled,"data-fb":"default"===m?"true":void 0,children:[r("div",{className:y.content,children:[b,e("input",{...k,ref:d(z,h),type:"file",className:y.input,disabled:_.disabled||g,"aria-invalid":!!v,onChange:r=>{C?.(Array.from(r.target.files||[])),_.onChange?.(r)}}),e("input",{readOnly:!0,role:"none",tabIndex:-1,className:y.placeholder,placeholder:k.placeholder,value:x.map((r=>r.name))})]}),e(l,{compact:!0,"aria-label":k["aria-label"],"aria-labelledby":k["aria-labelledby"],disabled:_.disabled,round:p,size:u,loading:g,cc:{...c,button:y.button},onClick:()=>z.current?.click(),children:e(s,{type:"upload"})})]})}export{u as default};
2
+ import{jsxs as r,jsx as e}from"react/jsx-runtime";import{useState as o,useRef as a}from"react";import l from"./button.js";import i from"../../hooks/use-input-props.js";import{combineClasses as t,classes as n,combineRefs as d}from"../../core/utils.js";import{createStyles as c}from"../../core/style.js";import{Icon as s}from"../../core/icons.js";const f=c("file-field",{".input":{position:"absolute",opacity:0},".placeholder":{color:"var(--f-clr-text-100)",userSelect:"none",flexGrow:1,background:"none",border:"none",width:0,pointerEvents:"none"},".field":{borderRadius:"var(--f-radius-sml)",color:"var(--f-clr-grey-200)",transition:"background-color .2s, border-color .2s, color .2s, outline-color .2s",display:"flex",alignItems:"center",overflow:"hidden",outline:"solid 3px transparent",minWidth:"min(var(--width, 100vw), 12em)"},".v__default":{backgroundColor:"var(--f-clr-fg-100)",border:"solid 1px var(--f-clr-fg-200)"},".v__minimal":{backgroundColor:"var(--f-clr-fg-100)"},".content":{display:"flex",alignItems:"center",gap:"var(--f-spacing-xsm)",padding:".675em",flexGrow:1},".v__default:focus-within":{borderColor:"var(--f-clr-primary-100)",color:"var(--f-clr-primary-100)",outlineColor:"var(--f-clr-primary-500)"},".v__minimal:focus-within":{backgroundColor:"var(--f-clr-fg-200)"},'.field[data-error="true"]':{borderColor:"var(--f-clr-error-100)"},'.field[data-error="true"]:focus-within':{outlineColor:"var(--f-clr-error-400)"},'.field[data-error="true"] .content':{color:"var(--f-clr-error-200)"},'.field[data-error="true"] .placeholder':{color:"var(--f-clr-error-200)"},'.field[data-disabled="true"]':{backgroundColor:"var(--f-clr-grey-100)",borderColor:"var(--f-clr-grey-200)"},'.field[data-disabled="true"] .placeholder':{color:"var(--f-clr-grey-500)"},".s__xsm":{fontSize:"var(--f-font-size-xxs)"},".s__sml":{fontSize:"var(--f-font-size-xsm)"},".s__med":{fontSize:"var(--f-font-size-sml)"},".s__lrg":{fontSize:"var(--f-font-size-med)"},".field.round":{borderRadius:"calc(1.4em + 1px)"},".button":{marginRight:".25em"}});function u({cc:c={},size:u="med",variant:m="default",round:p,icon:b,error:v,loading:g=!1,inputRef:h,..._}){const y=t(f,c),[x,C]=o([]),z=a(null),[k,w]=i(_);return r("label",{...w,className:n(y.field,y[`s__${u}`],y[`v__${m}`],p&&y.round,_.className),"data-error":!!v,"data-disabled":_.disabled,"data-fb":"default"===m?"true":void 0,children:[r("div",{className:y.content,children:[b,e("input",{...k,ref:d(z,h),type:"file",className:y.input,disabled:_.disabled||g,"aria-invalid":!!v,onChange:r=>{C?.(Array.from(r.target.files||[])),_.onChange?.(r)}}),e("input",{readOnly:!0,role:"none",tabIndex:-1,className:y.placeholder,placeholder:k.placeholder,value:x.map((r=>r.name))})]}),e(l,{compact:!0,"aria-label":k["aria-label"],"aria-labelledby":k["aria-labelledby"],disabled:_.disabled,round:p,size:u,loading:g,cc:{...c,button:y.button},onClick:()=>z.current?.click(),children:e(s,{type:"upload"})})]})}export{u as default};
3
3
  //# sourceMappingURL=file-field.js.map
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{jsxs as r,jsx as e,Fragment as a}from"react/jsx-runtime";import{useId as l,useRef as o,useState as i,useEffect as t}from"react";import n from"./button.js";import{combineClasses as d,classes as c,combineRefs as s}from"../../core/utils.js";import f from"../display/badge.js";import u from"../display/combobox/index.js";import m from"../../hooks/use-input-props.js";import{createStyles as p}from"../../core/style.js";import{Icon as b}from"../../core/icons.js";const g=p("select",{".field":{backgroundColor:"var(--f-clr-fg-100)",borderRadius:"var(--f-radius-sml)",color:"var(--f-clr-grey-200)",transition:"background-color .2s, border-color .2s, color .2s, outline-color .2s",display:"flex",alignItems:"center",minWidth:"min(var(--width, 100vw), 12em)",outline:"solid 3px transparent"},".v__default":{border:"solid 1px var(--f-clr-fg-200)"},".v__minimal":{backgroundColor:"var(--f-clr-fg-100)"},".v__default:focus-within":{borderColor:"var(--f-clr-primary-100)",color:"var(--f-clr-primary-100)",outlineColor:"var(--f-clr-primary-500)"},".v__minimal:focus-within":{backgroundColor:"var(--f-clr-fg-200)"},'.field[data-error="true"]':{borderColor:"var(--f-clr-error-100)",color:"var(--f-clr-error-200)"},'.field[data-error="true"]:focus-within':{outlineColor:"var(--f-clr-error-400)"},'.field[data-error="true"] .content':{color:"var(--f-clr-error-200)"},'.field[data-disabled="true"]':{backgroundColor:"var(--f-clr-grey-100)",borderColor:"var(--f-clr-grey-200)"},'.field[data-disabled="true"] .content':{color:"var(--f-clr-grey-500)"},".content__wrapper":{padding:".675em",display:"flex",alignItems:"center",gap:"var(--f-spacing-xsm)",overflow:"hidden",flexGrow:1},".content__wrapper > *:not(.content)":{flexShrink:0},".content":{position:"relative",display:"flex",alignItems:"center",gap:"var(--f-spacing-xsm)",flexGrow:1,overflow:"hidden",color:"var(--f-clr-text-100)",minHeight:"1.375em"},".content > *":{flexShrink:0},".placeholder":{color:"var(--f-clr-grey-300)"},".input":{position:"absolute",opacity:0,width:0},".s__xsm":{fontSize:"var(--f-font-size-xxs)"},".s__sml":{fontSize:"var(--f-font-size-xsm)"},".s__med":{fontSize:"var(--f-font-size-sml)"},".s__lrg":{fontSize:"var(--f-font-size-med)"},".field.round":{borderRadius:"calc(1.4em + 1px)"},".field .badge":{backgroundColor:"var(--f-clr-fg-200)"},'.field[data-error="true"] .badge':{backgroundColor:"var(--f-clr-error-400)"},'.field[data-disabled="true"] .badge':{backgroundColor:"var(--f-clr-grey-200)"},".icon":{display:"flex",marginLeft:"auto"}});function v({cc:p={},options:v,multiple:h=!1,searchable:y,limit:_,emptyMessage:x="Nothing found",placeholder:C,value:k,defaultValue:w,onChange:z,readOnly:S,error:j,icon:N,size:I="med",variant:R="default",contentSize:O,round:H,inputRef:A,mobileContainer:G,virtualItemHeight:M,...$}){const L=d(g,p),T=l(),V=o(null),W=o(null),[q,B]=m($),[D,E]=void 0!==k?[k,z]:i(w||(h?[]:"")),F=Array.isArray(D);return t((()=>{h!==F&&E?.(h?D?[D]:[]:D[0])}),[h,F]),r(u.Root,{ref:W,stretch:!0,mobileContainer:G,children:[e(u.Trigger,{disabled:$.disabled||S,children:r("div",{...B,"aria-haspopup":"listbox",className:c(L.field,L[`s__${I}`],L[`v__${R}`],H&&L.round,$.className),"data-error":!!j,"data-disabled":$.disabled,"data-fb":"default"===R?"true":void 0,children:[r("div",{className:L.content__wrapper,children:[N,r("div",{className:L.content,children:[(F?!D.length:null==D||""===D)&&e("div",{className:L.placeholder,id:T,children:C}),F?D.length<3?D.map(((r,a)=>e(f,{round:H,cc:{badge:L.badge},children:r},a))):r(a,{children:[e(f,{round:H,cc:{badge:L.badge},children:D[0]}),r(f,{round:H,cc:{badge:L.badge},children:["+",D.length-1," more"]})]}):v.find((r=>r.value===D))?.label]}),e("input",{"aria-labelledby":C?T:void 0,...q,ref:s(A,V),readOnly:!0,className:L.input,value:D?.toString(),"aria-invalid":!!j})]}),e(n,{compact:!0,"aria-label":q["aria-label"],"aria-labelledby":q["aria-labelledby"],round:H,size:I,disabled:$.disabled||S,variant:"minimal",style:{marginRight:".2em"},children:e(b,{type:"expand"})})]})}),e(u.Content,{round:H,size:O,"aria-multiselectable":h,searchable:y,emptyMessage:x,virtualItemHeight:M,children:v.map((({label:a,value:l,key:o,disabled:i})=>{const t=F?D.includes(l):D===l;return r(u.Option,{value:o||""+a,disabled:i,"aria-selected":t,onSelect:()=>{if(F){const r=D.slice(),e=r.indexOf(l);e<0?(!_||r.length<_)&&r.push(l):r.splice(e,1),E?.(r)}else W.current?.close(),V.current?.focus(),E?.(l)},children:[a,t&&e("div",{className:L.icon,children:e(b,{type:"check"})})]},""+l)}))})]})}export{v as default};
2
+ import{jsxs as r,jsx as e,Fragment as a}from"react/jsx-runtime";import{useId as l,useRef as o,useState as i,useEffect as t}from"react";import n from"./button.js";import{combineClasses as d,classes as c,combineRefs as s}from"../../core/utils.js";import f from"../display/badge.js";import u from"../display/combobox/index.js";import m from"../../hooks/use-input-props.js";import{createStyles as p}from"../../core/style.js";import{Icon as b}from"../../core/icons.js";const g=p("select",{".field":{borderRadius:"var(--f-radius-sml)",color:"var(--f-clr-grey-200)",transition:"background-color .2s, border-color .2s, color .2s, outline-color .2s",display:"flex",alignItems:"center",minWidth:"min(var(--width, 100vw), 12em)",outline:"solid 3px transparent"},".v__default":{backgroundColor:"var(--f-clr-fg-100)",border:"solid 1px var(--f-clr-fg-200)"},".v__minimal":{backgroundColor:"var(--f-clr-fg-100)"},".v__default:focus-within":{borderColor:"var(--f-clr-primary-100)",color:"var(--f-clr-primary-100)",outlineColor:"var(--f-clr-primary-500)"},".v__minimal:focus-within":{backgroundColor:"var(--f-clr-fg-200)"},'.field[data-error="true"]':{borderColor:"var(--f-clr-error-100)",color:"var(--f-clr-error-200)"},'.field[data-error="true"]:focus-within':{outlineColor:"var(--f-clr-error-400)"},'.field[data-error="true"] .content':{color:"var(--f-clr-error-200)"},'.field[data-disabled="true"]':{backgroundColor:"var(--f-clr-grey-100)",borderColor:"var(--f-clr-grey-200)"},'.field[data-disabled="true"] .content':{color:"var(--f-clr-grey-500)"},".content__wrapper":{padding:".675em",display:"flex",alignItems:"center",gap:"var(--f-spacing-xsm)",overflow:"hidden",flexGrow:1},".content__wrapper > *:not(.content)":{flexShrink:0},".content":{position:"relative",display:"flex",alignItems:"center",gap:"var(--f-spacing-xsm)",flexGrow:1,overflow:"hidden",color:"var(--f-clr-text-100)",minHeight:"1.375em"},".content > *":{flexShrink:0},".placeholder":{color:"var(--f-clr-grey-300)"},".input":{position:"absolute",opacity:0,width:0},".s__xsm":{fontSize:"var(--f-font-size-xxs)"},".s__sml":{fontSize:"var(--f-font-size-xsm)"},".s__med":{fontSize:"var(--f-font-size-sml)"},".s__lrg":{fontSize:"var(--f-font-size-med)"},".field.round":{borderRadius:"calc(1.4em + 1px)"},".field .badge":{backgroundColor:"var(--f-clr-fg-200)"},'.field[data-error="true"] .badge':{backgroundColor:"var(--f-clr-error-400)"},'.field[data-disabled="true"] .badge':{backgroundColor:"var(--f-clr-grey-200)"},".icon":{display:"flex",marginLeft:"auto"}});function v({cc:p={},options:v,multiple:h=!1,searchable:y,limit:_,emptyMessage:x="Nothing found",placeholder:C,value:k,defaultValue:w,onChange:z,readOnly:S,error:j,icon:N,size:I="med",variant:R="default",contentSize:O,round:H,inputRef:A,mobileContainer:G,virtualItemHeight:M,...$}){const L=d(g,p),T=l(),V=o(null),W=o(null),[q,B]=m($),[D,E]=void 0!==k?[k,z]:i(w||(h?[]:"")),F=Array.isArray(D);return t((()=>{h!==F&&E?.(h?D?[D]:[]:D[0])}),[h,F]),r(u.Root,{ref:W,stretch:!0,mobileContainer:G,children:[e(u.Trigger,{disabled:$.disabled||S,children:r("div",{...B,"aria-haspopup":"listbox",className:c(L.field,L[`s__${I}`],L[`v__${R}`],H&&L.round,$.className),"data-error":!!j,"data-disabled":$.disabled,"data-fb":"default"===R?"true":void 0,children:[r("div",{className:L.content__wrapper,children:[N,r("div",{className:L.content,children:[(F?!D.length:null==D||""===D)&&e("div",{className:L.placeholder,id:T,children:C}),F?D.length<3?D.map(((r,a)=>e(f,{round:H,cc:{badge:L.badge},children:r},a))):r(a,{children:[e(f,{round:H,cc:{badge:L.badge},children:D[0]}),r(f,{round:H,cc:{badge:L.badge},children:["+",D.length-1," more"]})]}):v.find((r=>r.value===D))?.label]}),e("input",{"aria-labelledby":C?T:void 0,...q,ref:s(A,V),readOnly:!0,className:L.input,value:D?.toString(),"aria-invalid":!!j})]}),e(n,{compact:!0,"aria-label":q["aria-label"],"aria-labelledby":q["aria-labelledby"],round:H,size:I,disabled:$.disabled||S,variant:"minimal",style:{marginRight:".2em"},children:e(b,{type:"expand"})})]})}),e(u.Content,{round:H,size:O,"aria-multiselectable":h,searchable:y,emptyMessage:x,virtualItemHeight:M,children:v.map((({label:a,value:l,key:o,disabled:i})=>{const t=F?D.includes(l):D===l;return r(u.Option,{value:o||""+a,disabled:i,"aria-selected":t,onSelect:()=>{if(F){const r=D.slice(),e=r.indexOf(l);e<0?(!_||r.length<_)&&r.push(l):r.splice(e,1),E?.(r)}else W.current?.close(),V.current?.focus(),E?.(l)},children:[a,t&&e("div",{className:L.icon,children:e(b,{type:"check"})})]},""+l)}))})]})}export{v as default};
3
3
  //# sourceMappingURL=select.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@infinityfx/fluid",
3
- "version": "1.4.12",
3
+ "version": "1.4.13",
4
4
  "type": "module",
5
5
  "description": "React UI library, using zero-runtime CSS-in-JS.",
6
6
  "main": "dist/index.js",