@cleen/ui-core 0.1.105 → 0.1.107
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var xe={TOOLTIP:700,POPOVER:600,MENU:600,DROPDOWN:600,MODAL:500,DRAWER:500};import{useEffect as W,useState as $}from"react";var j=e=>1-(1-e)*(1-e),Me=({targetNumber:e,defaultNumber:o=0,duration:t=1e3,disabled:n=!1,easeOut:r=!0})=>{let[s,i]=$(o);return W(()=>{if(n)return;let a=null,l=c=>{a||(a=c);let d=c-a,f=Math.min(d/t,1);r&&(f=j(f));let w=f*e;i(w),w<e&&requestAnimationFrame(l)};requestAnimationFrame(l)},[e,t,n,r]),n?e:s};import{useEffect as G}from"react";var v=0,y=null,H=()=>{if(typeof window>"u")return;let{body:e,documentElement:o}=document;if(!(!e||!o)){if(v===0){let t=window.innerWidth-o.clientWidth;y={bodyOverflow:e.style.overflow,bodyPaddingRight:e.style.paddingRight,bodyTouchAction:e.style.touchAction,htmlOverflow:o.style.overflow,htmlOverscrollBehavior:o.style.overscrollBehavior},e.style.overflow="hidden",e.style.touchAction="none",o.style.overflow="hidden",o.style.overscrollBehavior="none",t>0&&(e.style.paddingRight=`${t}px`)}v+=1}},q=()=>{if(typeof window>"u"||v===0||(v-=1,v>0))return;let{body:e,documentElement:o}=document;if(!e||!o||!y){y=null;return}e.style.overflow=y.bodyOverflow,e.style.paddingRight=y.bodyPaddingRight,e.style.touchAction=y.bodyTouchAction,o.style.overflow=y.htmlOverflow,o.style.overscrollBehavior=y.htmlOverscrollBehavior,y=null},Le=e=>{G(()=>{if(e)return H(),()=>{q()}},[e])};import{useEffect as K,useState as _}from"react";var Fe=({value:e,defaultValue:o,onChange:t})=>{let n=e!==void 0,[r,s]=_(o),i=n?e:r,a=l=>{n||s(l),t?.(l)};return K(()=>{n||s(e??o??void 0)},[e,o,n]),{value:i,isControlled:n,handleChange:a}};import{useEffect as Q,useState as X}from"react";var Re=(e,o)=>{let[t,n]=X(e);return Q(()=>{let r=setTimeout(()=>{n(e)},o);return()=>{clearTimeout(r)}},[e,o]),t};import{useState as J}from"react";var ze=e=>{let[o,t]=J(!1),n=e?.value!==void 0?e.value:o;return{isOpen:n,open:()=>{t(!0),e?.setValue?.(!0)},close:()=>{t(!1),e?.setValue?.(!1)},toggle:()=>{t(a=>!a),e?.setValue?.(!n)}}};import{useCallback as T,useMemo as Y,useRef as Z,useState as ee}from"react";var te=(i=>(i.QUEUED="queued",i.UPLOADING="uploading",i.PAUSED="paused",i.DONE="done",i.ERROR="error",i.DELETING="deleting",i))(te||{}),ne=(e,o)=>{let t=e.status??"done",n=e.progress??(t==="done"?100:0);return{id:o,file:e.file??null,url:e.url??null,name:e.name,size:e.size,status:t,progress:n,retries:0,preExisting:!0}},je=({initialFiles:e=[],files:o,onFilesChange:t,onFileUpload:n,onFileRemove:r})=>{let s=Z(0),i=Y(()=>{let u=new Map;return e.forEach(p=>{let m="f"+ ++s.current;u.set(m,ne(p,m))}),u},[]),[a,l]=ee(i),c=typeof o<"u",d=c?o:a,f=T((u,p)=>{let m=h=>h.has(u)?new Map(h).set(u,{...h.get(u),...p}):h;c||l(m),t?.(m)},[c,t]),w=T(async u=>{f(u,{status:"deleting"}),await r?.(u);let p=m=>{let h=new Map(m);return h.delete(u),h};c||l(p),t?.(p)},[r,f,t,c]),g=T(u=>{let p=new Map,m=[];Array.from(u).forEach(b=>{let P="f"+ ++s.current;p.set(P,{id:P,file:b,url:URL.createObjectURL(b),name:b.name,size:b.size,status:"queued",progress:0,retries:0,preExisting:!1}),m.push(P)});let h=b=>new Map([...b,...p]);c||l(h),t?.(h),Array.from(p?.entries()||[]).forEach(([b,P])=>{f(b,{status:"uploading"}),n?.(P,E=>f(b,E)).then(E=>{if(E?.id&&E.id!==b){let N={...P,...E,status:"done"},A=z=>{let C=new Map(z);return C.delete(b),C.set(E.id,N),C};c||l(A),t?.(A)}f(b,{...E,url:E?.url??null,status:"done"})})})},[f,n,t,c]);return{files:d,addFiles:g,remove:w}};import{useEffect as oe,useMemo as re,useState as se}from"react";var qe=({defaultValue:e,resetOnDefaultValueChange:o=!0})=>{let[t,n]=se(e),r=()=>n(e),s=(a,l)=>{n(c=>({...c,[a]:l}))},i=re(()=>JSON.stringify(t)!==JSON.stringify(e),[t,e]);return oe(()=>{e&&o&&n(e)},[e,o]),{form:t,isDirty:i,setForm:n,setField:s,reset:r}};var k="data-cleen-ignore-outside-click";import{useEffect as ie}from"react";function Je({refs:e,handler:o,enabled:t=!0}){ie(()=>{if(!t)return;let n=r=>{let s=e.some(a=>{let l=a.current;return l?l.contains(r.target):!1}),i=r.target.closest(`[${k}]`);s||i||setTimeout(()=>o(r),0)};return document.addEventListener("mousedown",n),document.addEventListener("touchstart",n),()=>{document.removeEventListener("mousedown",n),document.removeEventListener("touchstart",n)}},[e,o,t])}import{useState as L}from"react";function et(e={}){let{initialPage:o=1,initialPageSize:t=10}=e,[n,r]=L(o),[s,i]=L(t);return{page:n,setPage:r,pageSize:s,setPageSize:i,handleNextPage:d=>r(d),handlePreviousPage:d=>r(d),handlePageChange:d=>r(d)}}var U=(e,o,t)=>{let n={width:window.innerWidth,height:window.innerHeight},r=t;if(t==="left"||t==="right"){let l=t==="left",c=o.left,d=n.width-o.right;return l&&c<e.width&&d>e.width?"right":!l&&d<e.width&&c>e.width?"left":r}let s=t.startsWith("bottom"),i=n.height-o.bottom,a=o.top;if(s&&i<e.height&&a>e.height?r=t.replace("bottom","top"):!s&&t.startsWith("top")&&a<e.height&&i>e.height&&(r=t.replace("top","bottom")),t.includes("-")){let l=t.endsWith("left"),c=n.width-o.right,d=o.left;l&&c<e.width&&d>e.width?r=r.replace("left","right"):!l&&c<e.width&&d>e.width&&(r=r.replace("right","left"))}return r},D=(e,o,t,n)=>{if(!o)return{top:0,left:0};let r=window.scrollY,s=window.scrollX,i=n||0,a=0;t.startsWith("bottom")?a=o.bottom+r+i:t.startsWith("top")?a=o.top+r-(e?.height||0)-i:a=o.top+r+o.height/2-(e?.height||0)/2;let l=0;return t==="left"?l=o.left+s-(e?.width||0)-i:t==="right"?l=o.right+s+i:t.endsWith("left")||t==="bottom"||t==="top"?l=o.left+s:t.endsWith("right")&&(l=o.right+s-(e?.width||0)),(t==="bottom"||t==="top")&&(l=o.left+s+o.width/2-(e?.width||0)/2),{top:a,left:l}};import{useCallback as ae,useEffect as F,useState as x}from"react";var st=({triggerRef:e,targetRef:o,position:t="bottom-left",offset:n=8,isOpen:r,extraUpdateTriggers:s=[]})=>{let[i,a]=x(!1),[l,c]=x({top:0,left:0}),[d,f]=x(t),w=ae(()=>{if(!e.current||!o.current)return;let g=o.current.getBoundingClientRect(),u=e.current.getBoundingClientRect(),p=U(g,u,t),m=D(g,u,p,n);f(h=>h===p?h:p),c(h=>h.top===m.top&&h.left===m.left?h:m)},[e,o,t,n]);return F(()=>{a(r)},[r]),F(()=>{if(!r){f(t),c({top:0,left:0});return}let g=null,u=()=>{g===null&&(g=window.requestAnimationFrame(()=>{g=null,w()}))},p=new ResizeObserver(()=>{u()});return e.current&&p.observe(e.current),o.current&&p.observe(o.current),window.addEventListener("resize",u),window.addEventListener("scroll",u,!0),s.forEach(m=>{window.addEventListener(m,u)}),window.visualViewport&&(window.visualViewport.addEventListener("resize",u),window.visualViewport.addEventListener("scroll",u),s.forEach(m=>{window.visualViewport?.addEventListener(m,u)})),w(),u(),()=>{g!==null&&window.cancelAnimationFrame(g),p.disconnect(),window.removeEventListener("resize",u),window.removeEventListener("scroll",u,!0),s.forEach(m=>{window.removeEventListener(m,u)}),window.visualViewport&&(window.visualViewport.removeEventListener("resize",u),window.visualViewport.removeEventListener("scroll",u),s.forEach(m=>{window.visualViewport?.removeEventListener(m,u)}))}},[r,t,w,e,o]),{positionStyles:l,optimalPosition:d,isMounted:i}};import{useCallback as O,useState as le}from"react";var lt=e=>{let[o,t]=le(e),n=O((i,a)=>{t(l=>(l[i]=a,{...l}))},[]),r=O(()=>{t(e)},[e]),s=O(i=>{t(a=>(delete a[i],{...a}))},[]);return{errors:o,setError:n,setErrors:t,clearError:s,clearErrors:r}};import{useEffect as ce}from"react";var dt=({ref:e,skip:o},t)=>{ce(()=>{let n=e.current;if(!n||o)return;let r=n.offsetWidth;n.style.width=`${r}px`,requestAnimationFrame(()=>{n.style.width="auto";let s=n.offsetWidth;n.style.width=`${r}px`,n.offsetHeight,n.style.width=`${s}px`;let i=()=>{n&&(n.style.width="auto"),n?.removeEventListener("transitionend",i)};n.addEventListener("transitionend",i)})},t)};import{create as ue}from"zustand";import{persist as de}from"zustand/middleware";var B="--cleen-",fe=["white","black","gray","pink","purple","indigo","blue","primary","success","warning","error","brand","sidebar","background"],ht=ue()(de((e,o)=>({colors:{},getColors:()=>{let t=o().colors;return fe.reduce((n,r)=>(t[r]?n[r]=t[r]:n[r]=getComputedStyle(document.documentElement).getPropertyValue(`${B}${r}`),n),{})},getColor:t=>{let n=o().colors;return n[t]?n[t]:getComputedStyle(document.documentElement).getPropertyValue(`${B}${t}`)},setColors:t=>Object.entries(t).map(([n,r])=>e(s=>({colors:{...s.colors,[n]:r}}))),setColor:(t,n)=>{e(r=>({colors:{...r.colors,[t]:n}}))},resetColors:()=>{e({colors:{}})},resetColor:t=>{let n=o().colors;delete n[t],e({colors:n})}}),{name:"cleen-colors"}));import{create as me}from"zustand";import{persist as pe}from"zustand/middleware";var yt=me()(pe(e=>({overlays:[],addOverlay:o=>{e(t=>({overlays:[...t.overlays,o]}))},removeOverlay:o=>{e(t=>({overlays:t.overlays.filter(n=>n!==o)}))},clearOverlays:()=>{e({overlays:[]})}}),{name:"cleen-overlays"}));var he=e=>{let{numberOfChannels:o,sampleRate:t,length:n}=e,r=16,s=o*r/8,i=t*s,a=n*s,l=new ArrayBuffer(44+a),c=new DataView(l),d=(w,g)=>{for(let u=0;u<g.length;u++)c.setUint8(w+u,g.charCodeAt(u))};d(0,"RIFF"),c.setUint32(4,36+a,!0),d(8,"WAVE"),d(12,"fmt "),c.setUint32(16,16,!0),c.setUint16(20,1,!0),c.setUint16(22,o,!0),c.setUint32(24,t,!0),c.setUint32(28,i,!0),c.setUint16(32,s,!0),c.setUint16(34,r,!0),d(36,"data"),c.setUint32(40,a,!0);let f=44;for(let w=0;w<n;w++)for(let g=0;g<o;g++){let u=Math.max(-1,Math.min(1,e.getChannelData(g)[w]));c.setInt16(f,u<0?u*32768:u*32767,!0),f+=2}return new Blob([l],{type:"audio/wav"})},Pt=async(e,o,t)=>{let n=new AudioContext,r=await n.decodeAudioData(await e.arrayBuffer());await n.close();let{sampleRate:s,numberOfChannels:i}=r,a=Math.round(o*s),l=Math.round(t*s),c=l-a,d=new AudioContext().createBuffer(i,c,s);for(let f=0;f<i;f++)d.copyToChannel(r.getChannelData(f).subarray(a,l),f);return he(d)};import ge from"clsx";import{createTailwindMerge as we,getDefaultConfig as be}from"tailwind-merge";var ye=()=>({...be(),prefix:"cleen-"}),Ee=we(ye),xt=(...e)=>Ee(ge(e));import{darken as Pe,getLuminance as V,lighten as ve,parseToRgba as S,toHex as Ce,toRgba as R}from"color2k";var I=class e{static deltaE(o,t){let n=e.rgb2lab(o),r=e.rgb2lab(t),s=n[0]-r[0],i=n[1]-r[1],a=n[2]-r[2],l=Math.sqrt(n[1]*n[1]+n[2]*n[2]),c=Math.sqrt(r[1]*r[1]+r[2]*r[2]),d=l-c,f=i*i+a*a-d*d;f=f<0?0:Math.sqrt(f);let w=1+.045*l,g=1+.015*l,u=s/1,p=d/w,m=f/g,h=u*u+p*p+m*m;return h<0?0:Math.sqrt(h)}static rgb2lab(o){let t=o[0]/255,n=o[1]/255,r=o[2]/255,s,i,a;return t=t>.04045?Math.pow((t+.055)/1.055,2.4):t/12.92,n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92,r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92,s=(t*.4124+n*.3576+r*.1805)/.95047,i=(t*.2126+n*.7152+r*.0722)/1,a=(t*.0193+n*.1192+r*.9505)/1.08883,s=s>.008856?Math.pow(s,1/3):7.787*s+16/116,i=i>.008856?Math.pow(i,1/3):7.787*i+16/116,a=a>.008856?Math.pow(a,1/3):7.787*a+16/116,[116*i-16,500*(s-i),200*(i-a)]}static isSimilar(o,t,n=24){return e.deltaE(S(o),S(t))<n}static adjustColorForContrast(o,t=.25){let n=Ce(o),r=o;try{if((n.match(/^#f{2,}e{0,2}$/i)||V(n)>.98)&&(n="#ffffff"),V(n)>.6){let s=Pe(n,t);r=R(s)}else{let s=ve(n,t);r=R(s)}return r}catch{return"rgba(var(--cleen-white)"}}static getComputedColor(o){if(!o?.includes("var("))return o;let t=o.match(/var\((--[^,)]+)/)?.[1];if(t&&typeof window<"u"){let n=getComputedStyle(document.documentElement).getPropertyValue(t).trim();return n?`rgb(${n})`:void 0}}static getComputedRgb(o){if(!o)return;if(!o?.includes("var(")){let[n,r,s]=S(o);return`${n}, ${r}, ${s}`}let t=o.match(/var\((--[^,)]+)/)?.[1];if(t&&typeof window<"u")return getComputedStyle(document.documentElement).getPropertyValue(t).trim()}static trasparentize(o,t=0){return`color-mix(in srgb, ${o} ${(1-t)*100}%, transparent)`}};var Te="https://picsum.photos",At=e=>{let{width:o,height:t,grayscale:n,blur:r,seed:s}=e,i=Te;s&&(i+=`/seed/${encodeURIComponent(s)}`),i+=`/${o}/${t||o}`;let a=new URLSearchParams;n&&a.append("grayscale",""),r&&a.append("blur",r.toString()),s&&a.append("seed",s);let l=a.toString();return l&&(i+=`?${l}`),i};function M(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.prototype.toString.call(e)==="[object Object]"}function Lt(e,o){let t=new WeakMap,n=s=>{if(s!==void 0){if(s===null)return null;if(Array.isArray(s)){if(t.has(s))return t.get(s);let i=[];return t.set(s,i),s.forEach(a=>{i.push(n(a))}),i}if(M(s)){if(t.has(s))return t.get(s);let i={};return t.set(s,i),Object.keys(s).forEach(a=>{i[a]=n(s[a])}),i}return s}},r=(s,i)=>{if(i===void 0)return n(s);if(M(s)&&M(i)){if(t.has(i))return t.get(i);let a={};return t.set(i,a),new Set([...Object.keys(s),...Object.keys(i)]).forEach(c=>{let d=s[c],f=i[c];a[c]=r(d,f)}),a}return Array.isArray(s)||Array.isArray(i)?n(i===void 0?s:i):n(i!==void 0?i:s)};return r(e,o)}var Dt=async(e,o)=>(await Promise.all([o,new Promise(n=>setTimeout(n,e))])).slice(0,-1),Ft=async(e,...o)=>(await Promise.all([...o,new Promise(n=>setTimeout(n,e))])).slice(0,-1);var Vt=e=>{if(e===0||!e)return"0 B";let o=1024,t=["B","KB","MB","GB","TB"],n=Math.floor(Math.log(e)/Math.log(o));return Math.round(e/Math.pow(o,n))+" "+t[n]},Rt=e=>{let o=Math.floor(e/60),t=Math.floor(e%60);return`${String(o).padStart(2,"0")}:${String(t).padStart(2,"0")}`},It=e=>{let o=new Date(e),n=Math.abs(new Date().getTime()-o.getTime());return`Created ${Math.ceil(n/(1e3*60*60*24))} days ago`};export{k as CLEEN_IGNORE_OUTSIDE_CLICK,I as ColorHelpers,te as FileEntryStatus,xe as ZIndex,Lt as applyDefaults,U as calculateOptimalPosition,D as calculatePositionValues,xt as cn,Dt as delay,Ft as delayAll,he as encodeWav,Rt as formatAudioTime,Vt as formatFileSize,It as getCreatedDate,At as getRandomImageUrl,Pt as trimBlob,Me as useAnimateNumber,Le as useBodyScrollLock,ht as useCleenColors,yt as useCleenOverlays,Fe as useControlled,Re as useDebounce,ze as useDisclosure,je as useFileUpload,qe as useForm,Je as useOutsideClick,et as usePaginationState,st as usePositionClose,lt as useValidation,dt as useWidthDynamicResize};
|
|
1
|
+
var Oe={TOOLTIP:700,POPOVER:600,MENU:600,DROPDOWN:600,MODAL:500,DRAWER:500};import{useEffect as $,useState as j}from"react";var G=e=>1-(1-e)*(1-e),Ae=({targetNumber:e,defaultNumber:o=0,duration:t=1e3,disabled:n=!1,easeOut:r=!0})=>{let[s,i]=j(o);return $(()=>{if(n)return;let a=null,l=c=>{a||(a=c);let d=c-a,f=Math.min(d/t,1);r&&(f=G(f));let w=f*e;i(w),w<e&&requestAnimationFrame(l)};requestAnimationFrame(l)},[e,t,n,r]),n?e:s};import{useEffect as H}from"react";var v=0,y=null,q=()=>{if(typeof window>"u")return;let{body:e,documentElement:o}=document;if(!(!e||!o)){if(v===0){let t=window.innerWidth-o.clientWidth;y={bodyOverflow:e.style.overflow,bodyPaddingRight:e.style.paddingRight,bodyTouchAction:e.style.touchAction,htmlOverflow:o.style.overflow,htmlOverscrollBehavior:o.style.overscrollBehavior},e.style.overflow="hidden",e.style.touchAction="none",o.style.overflow="hidden",o.style.overscrollBehavior="none",t>0&&(e.style.paddingRight=`${t}px`)}v+=1}},K=()=>{if(typeof window>"u"||v===0||(v-=1,v>0))return;let{body:e,documentElement:o}=document;if(!e||!o||!y){y=null;return}e.style.overflow=y.bodyOverflow,e.style.paddingRight=y.bodyPaddingRight,e.style.touchAction=y.bodyTouchAction,o.style.overflow=y.htmlOverflow,o.style.overscrollBehavior=y.htmlOverscrollBehavior,y=null},Ue=e=>{H(()=>{if(e)return q(),()=>{K()}},[e])};import{useEffect as _,useState as Q}from"react";var Be=({value:e,defaultValue:o,onChange:t})=>{let n=e!==void 0,[r,s]=Q(o),i=n?e:r,a=l=>{n||s(l),t?.(l)};return _(()=>{n||s(e??o??void 0)},[e,o,n]),{value:i,isControlled:n,handleChange:a}};import{useEffect as X,useState as J}from"react";var Ie=(e,o)=>{let[t,n]=J(e);return X(()=>{let r=setTimeout(()=>{n(e)},o);return()=>{clearTimeout(r)}},[e,o]),t};import{useCallback as T,useState as Y}from"react";var We=e=>{let[o,t]=Y(!1),n=e?.value!==void 0?e?.value:o,r=T(()=>{t(!0),e?.setValue?.(!0)},[e]),s=T(()=>{t(!1),e?.setValue?.(!1)},[e]),i=T(()=>{t(a=>!a),e?.setValue?.(!n)},[e,n]);return{isOpen:n,open:r,close:s,toggle:i}};import{useCallback as x,useMemo as Z,useRef as ee,useState as te}from"react";var ne=(i=>(i.QUEUED="queued",i.UPLOADING="uploading",i.PAUSED="paused",i.DONE="done",i.ERROR="error",i.DELETING="deleting",i))(ne||{}),oe=(e,o)=>{let t=e.status??"done",n=e.progress??(t==="done"?100:0);return{id:o,file:e.file??null,url:e.url??null,name:e.name,size:e.size,status:t,progress:n,retries:0,preExisting:!0}},Ge=({initialFiles:e=[],files:o,onFilesChange:t,onFileUpload:n,onFileRemove:r})=>{let s=ee(0),i=Z(()=>{let u=new Map;return e.forEach(p=>{let m="f"+ ++s.current;u.set(m,oe(p,m))}),u},[]),[a,l]=te(i),c=typeof o<"u",d=c?o:a,f=x((u,p)=>{let m=h=>h.has(u)?new Map(h).set(u,{...h.get(u),...p}):h;c||l(m),t?.(m)},[c,t]),w=x(async u=>{f(u,{status:"deleting"}),await r?.(u);let p=m=>{let h=new Map(m);return h.delete(u),h};c||l(p),t?.(p)},[r,f,t,c]),g=x(u=>{let p=new Map,m=[];Array.from(u).forEach(b=>{let P="f"+ ++s.current;p.set(P,{id:P,file:b,url:URL.createObjectURL(b),name:b.name,size:b.size,status:"queued",progress:0,retries:0,preExisting:!1}),m.push(P)});let h=b=>new Map([...b,...p]);c||l(h),t?.(h),Array.from(p?.entries()||[]).forEach(([b,P])=>{f(b,{status:"uploading"}),n?.(P,E=>f(b,E)).then(E=>{if(E?.id&&E.id!==b){let z={...P,...E,status:"done"},k=W=>{let C=new Map(W);return C.delete(b),C.set(E.id,z),C};c||l(k),t?.(k)}f(b,{...E,url:E?.url??null,status:"done"})})})},[f,n,t,c]);return{files:d,addFiles:g,remove:w}};import{useEffect as re,useMemo as se,useState as ie}from"react";var Ke=({defaultValue:e,resetOnDefaultValueChange:o=!0})=>{let[t,n]=ie(e),r=()=>n(e),s=(a,l)=>{n(c=>({...c,[a]:l}))},i=se(()=>JSON.stringify(t)!==JSON.stringify(e),[t,e]);return re(()=>{e&&o&&n(e)},[e,o]),{form:t,isDirty:i,setForm:n,setField:s,reset:r}};var L="data-cleen-ignore-outside-click";import{useEffect as ae}from"react";function Ye({refs:e,handler:o,enabled:t=!0}){ae(()=>{if(!t)return;let n=r=>{let s=e.some(a=>{let l=a.current;return l?l.contains(r.target):!1}),i=r.target.closest(`[${L}]`);s||i||setTimeout(()=>o(r),0)};return document.addEventListener("mousedown",n),document.addEventListener("touchstart",n),()=>{document.removeEventListener("mousedown",n),document.removeEventListener("touchstart",n)}},[e,o,t])}import{useState as U}from"react";function tt(e={}){let{initialPage:o=1,initialPageSize:t=10}=e,[n,r]=U(o),[s,i]=U(t);return{page:n,setPage:r,pageSize:s,setPageSize:i,handleNextPage:d=>r(d),handlePreviousPage:d=>r(d),handlePageChange:d=>r(d)}}var D=(e,o,t)=>{let n={width:window.innerWidth,height:window.innerHeight},r=t;if(t==="left"||t==="right"){let l=t==="left",c=o.left,d=n.width-o.right;return l&&c<e.width&&d>e.width?"right":!l&&d<e.width&&c>e.width?"left":r}let s=t.startsWith("bottom"),i=n.height-o.bottom,a=o.top;if(s&&i<e.height&&a>e.height?r=t.replace("bottom","top"):!s&&t.startsWith("top")&&a<e.height&&i>e.height&&(r=t.replace("top","bottom")),t.includes("-")){let l=t.endsWith("left"),c=n.width-o.right,d=o.left;l&&c<e.width&&d>e.width?r=r.replace("left","right"):!l&&c<e.width&&d>e.width&&(r=r.replace("right","left"))}return r},F=(e,o,t,n)=>{if(!o)return{top:0,left:0};let r=window.scrollY,s=window.scrollX,i=n||0,a=0;t.startsWith("bottom")?a=o.bottom+r+i:t.startsWith("top")?a=o.top+r-(e?.height||0)-i:a=o.top+r+o.height/2-(e?.height||0)/2;let l=0;return t==="left"?l=o.left+s-(e?.width||0)-i:t==="right"?l=o.right+s+i:t.endsWith("left")||t==="bottom"||t==="top"?l=o.left+s:t.endsWith("right")&&(l=o.right+s-(e?.width||0)),(t==="bottom"||t==="top")&&(l=o.left+s+o.width/2-(e?.width||0)/2),{top:a,left:l}};import{useCallback as le,useEffect as B,useState as O}from"react";var it=({triggerRef:e,targetRef:o,position:t="bottom-left",offset:n=8,isOpen:r,extraUpdateTriggers:s=[]})=>{let[i,a]=O(!1),[l,c]=O({top:0,left:0}),[d,f]=O(t),w=le(()=>{if(!e.current||!o.current)return;let g=o.current.getBoundingClientRect(),u=e.current.getBoundingClientRect(),p=D(g,u,t),m=F(g,u,p,n);f(h=>h===p?h:p),c(h=>h.top===m.top&&h.left===m.left?h:m)},[e,o,t,n]);return B(()=>{a(r)},[r]),B(()=>{if(!r){f(t),c({top:0,left:0});return}let g=null,u=()=>{g===null&&(g=window.requestAnimationFrame(()=>{g=null,w()}))},p=new ResizeObserver(()=>{u()});return e.current&&p.observe(e.current),o.current&&p.observe(o.current),window.addEventListener("resize",u),window.addEventListener("scroll",u,!0),s.forEach(m=>{window.addEventListener(m,u)}),window.visualViewport&&(window.visualViewport.addEventListener("resize",u),window.visualViewport.addEventListener("scroll",u),s.forEach(m=>{window.visualViewport?.addEventListener(m,u)})),w(),u(),()=>{g!==null&&window.cancelAnimationFrame(g),p.disconnect(),window.removeEventListener("resize",u),window.removeEventListener("scroll",u,!0),s.forEach(m=>{window.removeEventListener(m,u)}),window.visualViewport&&(window.visualViewport.removeEventListener("resize",u),window.visualViewport.removeEventListener("scroll",u),s.forEach(m=>{window.visualViewport?.removeEventListener(m,u)}))}},[r,t,w,e,o]),{positionStyles:l,optimalPosition:d,isMounted:i}};import{useCallback as S,useState as ce}from"react";var ct=e=>{let[o,t]=ce(e),n=S((i,a)=>{t(l=>(l[i]=a,{...l}))},[]),r=S(()=>{t(e)},[e]),s=S(i=>{t(a=>(delete a[i],{...a}))},[]);return{errors:o,setError:n,setErrors:t,clearError:s,clearErrors:r}};import{useEffect as ue}from"react";var ft=({ref:e,skip:o},t)=>{ue(()=>{let n=e.current;if(!n||o)return;let r=n.offsetWidth;n.style.width=`${r}px`,requestAnimationFrame(()=>{n.style.width="auto";let s=n.offsetWidth;n.style.width=`${r}px`,n.offsetHeight,n.style.width=`${s}px`;let i=()=>{n&&(n.style.width="auto"),n?.removeEventListener("transitionend",i)};n.addEventListener("transitionend",i)})},t)};import{create as de}from"zustand";import{persist as fe}from"zustand/middleware";var V="--cleen-",me=["white","black","gray","pink","purple","indigo","blue","primary","success","warning","error","brand","sidebar","background"],gt=de()(fe((e,o)=>({colors:{},getColors:()=>{let t=o().colors;return me.reduce((n,r)=>(t[r]?n[r]=t[r]:n[r]=getComputedStyle(document.documentElement).getPropertyValue(`${V}${r}`),n),{})},getColor:t=>{let n=o().colors;return n[t]?n[t]:getComputedStyle(document.documentElement).getPropertyValue(`${V}${t}`)},setColors:t=>Object.entries(t).map(([n,r])=>e(s=>({colors:{...s.colors,[n]:r}}))),setColor:(t,n)=>{e(r=>({colors:{...r.colors,[t]:n}}))},resetColors:()=>{e({colors:{}})},resetColor:t=>{let n=o().colors;delete n[t],e({colors:n})}}),{name:"cleen-colors"}));import{create as pe}from"zustand";import{persist as he}from"zustand/middleware";var Et=pe()(he(e=>({overlays:[],addOverlay:o=>{e(t=>({overlays:[...t.overlays,o]}))},removeOverlay:o=>{e(t=>({overlays:t.overlays.filter(n=>n!==o)}))},clearOverlays:()=>{e({overlays:[]})}}),{name:"cleen-overlays"}));var ge=e=>{let{numberOfChannels:o,sampleRate:t,length:n}=e,r=16,s=o*r/8,i=t*s,a=n*s,l=new ArrayBuffer(44+a),c=new DataView(l),d=(w,g)=>{for(let u=0;u<g.length;u++)c.setUint8(w+u,g.charCodeAt(u))};d(0,"RIFF"),c.setUint32(4,36+a,!0),d(8,"WAVE"),d(12,"fmt "),c.setUint32(16,16,!0),c.setUint16(20,1,!0),c.setUint16(22,o,!0),c.setUint32(24,t,!0),c.setUint32(28,i,!0),c.setUint16(32,s,!0),c.setUint16(34,r,!0),d(36,"data"),c.setUint32(40,a,!0);let f=44;for(let w=0;w<n;w++)for(let g=0;g<o;g++){let u=Math.max(-1,Math.min(1,e.getChannelData(g)[w]));c.setInt16(f,u<0?u*32768:u*32767,!0),f+=2}return new Blob([l],{type:"audio/wav"})},vt=async(e,o,t)=>{let n=new AudioContext,r=await n.decodeAudioData(await e.arrayBuffer());await n.close();let{sampleRate:s,numberOfChannels:i}=r,a=Math.round(o*s),l=Math.round(t*s),c=l-a,d=new AudioContext().createBuffer(i,c,s);for(let f=0;f<i;f++)d.copyToChannel(r.getChannelData(f).subarray(a,l),f);return ge(d)};import we from"clsx";import{createTailwindMerge as be,getDefaultConfig as ye}from"tailwind-merge";var Ee=()=>({...ye(),prefix:"cleen-"}),Pe=be(Ee),Ot=(...e)=>Pe(we(e));import{darken as ve,getLuminance as R,lighten as Ce,parseToRgba as M,toHex as Te,toRgba as I}from"color2k";var N=class e{static deltaE(o,t){let n=e.rgb2lab(o),r=e.rgb2lab(t),s=n[0]-r[0],i=n[1]-r[1],a=n[2]-r[2],l=Math.sqrt(n[1]*n[1]+n[2]*n[2]),c=Math.sqrt(r[1]*r[1]+r[2]*r[2]),d=l-c,f=i*i+a*a-d*d;f=f<0?0:Math.sqrt(f);let w=1+.045*l,g=1+.015*l,u=s/1,p=d/w,m=f/g,h=u*u+p*p+m*m;return h<0?0:Math.sqrt(h)}static rgb2lab(o){let t=o[0]/255,n=o[1]/255,r=o[2]/255,s,i,a;return t=t>.04045?Math.pow((t+.055)/1.055,2.4):t/12.92,n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92,r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92,s=(t*.4124+n*.3576+r*.1805)/.95047,i=(t*.2126+n*.7152+r*.0722)/1,a=(t*.0193+n*.1192+r*.9505)/1.08883,s=s>.008856?Math.pow(s,1/3):7.787*s+16/116,i=i>.008856?Math.pow(i,1/3):7.787*i+16/116,a=a>.008856?Math.pow(a,1/3):7.787*a+16/116,[116*i-16,500*(s-i),200*(i-a)]}static isSimilar(o,t,n=24){return e.deltaE(M(o),M(t))<n}static adjustColorForContrast(o,t=.25){let n=Te(o),r=o;try{if((n.match(/^#f{2,}e{0,2}$/i)||R(n)>.98)&&(n="#ffffff"),R(n)>.6){let s=ve(n,t);r=I(s)}else{let s=Ce(n,t);r=I(s)}return r}catch{return"rgba(var(--cleen-white)"}}static getComputedColor(o){if(!o?.includes("var("))return o;let t=o.match(/var\((--[^,)]+)/)?.[1];if(t&&typeof window<"u"){let n=getComputedStyle(document.documentElement).getPropertyValue(t).trim();return n?`rgb(${n})`:void 0}}static getComputedRgb(o){if(!o)return;if(!o?.includes("var(")){let[n,r,s]=M(o);return`${n}, ${r}, ${s}`}let t=o.match(/var\((--[^,)]+)/)?.[1];if(t&&typeof window<"u")return getComputedStyle(document.documentElement).getPropertyValue(t).trim()}static trasparentize(o,t=0){return`color-mix(in srgb, ${o} ${(1-t)*100}%, transparent)`}};var xe="https://picsum.photos",kt=e=>{let{width:o,height:t,grayscale:n,blur:r,seed:s}=e,i=xe;s&&(i+=`/seed/${encodeURIComponent(s)}`),i+=`/${o}/${t||o}`;let a=new URLSearchParams;n&&a.append("grayscale",""),r&&a.append("blur",r.toString()),s&&a.append("seed",s);let l=a.toString();return l&&(i+=`?${l}`),i};function A(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.prototype.toString.call(e)==="[object Object]"}function Ut(e,o){let t=new WeakMap,n=s=>{if(s!==void 0){if(s===null)return null;if(Array.isArray(s)){if(t.has(s))return t.get(s);let i=[];return t.set(s,i),s.forEach(a=>{i.push(n(a))}),i}if(A(s)){if(t.has(s))return t.get(s);let i={};return t.set(s,i),Object.keys(s).forEach(a=>{i[a]=n(s[a])}),i}return s}},r=(s,i)=>{if(i===void 0)return n(s);if(A(s)&&A(i)){if(t.has(i))return t.get(i);let a={};return t.set(i,a),new Set([...Object.keys(s),...Object.keys(i)]).forEach(c=>{let d=s[c],f=i[c];a[c]=r(d,f)}),a}return Array.isArray(s)||Array.isArray(i)?n(i===void 0?s:i):n(i!==void 0?i:s)};return r(e,o)}var Ft=async(e,o)=>(await Promise.all([o,new Promise(n=>setTimeout(n,e))])).slice(0,-1),Bt=async(e,...o)=>(await Promise.all([...o,new Promise(n=>setTimeout(n,e))])).slice(0,-1);var Rt=e=>{if(e===0||!e)return"0 B";let o=1024,t=["B","KB","MB","GB","TB"],n=Math.floor(Math.log(e)/Math.log(o));return Math.round(e/Math.pow(o,n))+" "+t[n]},It=e=>{let o=Math.floor(e/60),t=Math.floor(e%60);return`${String(o).padStart(2,"0")}:${String(t).padStart(2,"0")}`},Nt=e=>{let o=new Date(e),n=Math.abs(new Date().getTime()-o.getTime());return`Created ${Math.ceil(n/(1e3*60*60*24))} days ago`};export{L as CLEEN_IGNORE_OUTSIDE_CLICK,N as ColorHelpers,ne as FileEntryStatus,Oe as ZIndex,Ut as applyDefaults,D as calculateOptimalPosition,F as calculatePositionValues,Ot as cn,Ft as delay,Bt as delayAll,ge as encodeWav,It as formatAudioTime,Rt as formatFileSize,Nt as getCreatedDate,kt as getRandomImageUrl,vt as trimBlob,Ae as useAnimateNumber,Ue as useBodyScrollLock,gt as useCleenColors,Et as useCleenOverlays,Be as useControlled,Ie as useDebounce,We as useDisclosure,Ge as useFileUpload,Ke as useForm,Ye as useOutsideClick,tt as usePaginationState,it as usePositionClose,ct as useValidation,ft as useWidthDynamicResize};
|