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