@cleen/ui-core 0.1.109 → 0.1.111
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 +6 -2
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -288,12 +288,16 @@ type PartialDeep<T> = T extends (...args: unknown[]) => unknown ? T : T extends
|
|
|
288
288
|
*/
|
|
289
289
|
declare function applyDefaults<T>(defaults: T, values?: PartialDeep<T>): T;
|
|
290
290
|
|
|
291
|
-
|
|
291
|
+
/**
|
|
292
|
+
* Calculates the optimal tooltip position based on available viewport space.
|
|
293
|
+
*/
|
|
294
|
+
declare const calculateOptimalPosition: (overlayRect: DOMRect, triggerRect: DOMRect, preferredPosition: Position, offset?: number) => Position;
|
|
292
295
|
declare const calculatePositionValues: (overlayRect: DOMRect, triggerRect: DOMRect, position: Position, offset?: number) => {
|
|
293
296
|
top: number;
|
|
294
297
|
left: number;
|
|
295
298
|
};
|
|
296
299
|
|
|
300
|
+
declare const wait: (ms: number) => Promise<unknown>;
|
|
297
301
|
declare const delay: <T>(ms: number, promise: Promise<T> | T) => Promise<T>;
|
|
298
302
|
declare const delayAll: <T>(ms: number, ...promises: (Promise<T> | T)[]) => Promise<T[]>;
|
|
299
303
|
|
|
@@ -301,4 +305,4 @@ declare const formatFileSize: (bytes?: number) => string;
|
|
|
301
305
|
declare const formatAudioTime: (seconds: number) => string;
|
|
302
306
|
declare const getCreatedDate: (date: string) => string;
|
|
303
307
|
|
|
304
|
-
export { type ArrayElement, CLEEN_IGNORE_OUTSIDE_CLICK, ColorHelpers, type ColorVar, type ComponentClassnames, type ComponentStyles, type FileEntry, FileEntryStatus, type HintedString, type PartialDeep, type Position, ZIndex, applyDefaults, calculateOptimalPosition, calculatePositionValues, cn, delay, delayAll, encodeWav, formatAudioTime, formatFileSize, getCreatedDate, getRandomImageUrl, trimBlob, useAnimateNumber, useBodyScrollLock, useCleenColors, useCleenOverlays, useControlled, useDebounce, useDisclosure, useFileUpload, useForm, useOutsideClick, usePaginationState, usePositionClose, useValidation, useWidthDynamicResize };
|
|
308
|
+
export { type ArrayElement, CLEEN_IGNORE_OUTSIDE_CLICK, ColorHelpers, type ColorVar, type ComponentClassnames, type ComponentStyles, type FileEntry, FileEntryStatus, type HintedString, type PartialDeep, type Position, ZIndex, applyDefaults, calculateOptimalPosition, calculatePositionValues, cn, delay, delayAll, encodeWav, formatAudioTime, formatFileSize, getCreatedDate, getRandomImageUrl, trimBlob, useAnimateNumber, useBodyScrollLock, useCleenColors, useCleenOverlays, useControlled, useDebounce, useDisclosure, useFileUpload, useForm, useOutsideClick, usePaginationState, usePositionClose, useValidation, useWidthDynamicResize, wait };
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
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};
|
|
1
|
+
var ke={TOOLTIP: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 Ne=({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 O,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,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=O((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=O(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=O(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,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 S}from"react";var dt=({triggerRef:e,targetRef:r,position:t="bottom-left",offset:n=8,isOpen:s,extraUpdateTriggers:o=[]})=>{let[i,l]=S(!1),[a,u]=S({top:0,left:0}),[f,d]=S(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 Ot=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 Oe=()=>({...Te(),prefix:"cleen-"}),Se=Ce(Oe),kt=(...e)=>Se(ve(e));import{darken as xe,getLuminance as z,lighten as Ae,parseToRgba as A,toHex as Me,toRgba as I}from"color2k";var N=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=I(o)}else{let o=Ae(n,t);s=I(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 It=e=>new Promise(r=>setTimeout(r,e)),Nt=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,N as ColorHelpers,re as FileEntryStatus,ke as ZIndex,Rt as applyDefaults,F as calculateOptimalPosition,V as calculatePositionValues,kt as cn,Nt as delay,Gt as delayAll,Ee as encodeWav,jt as formatAudioTime,Ht as formatFileSize,Wt as getCreatedDate,Vt as getRandomImageUrl,xt as trimBlob,Fe as useAnimateNumber,Re as useBodyScrollLock,Et as useCleenColors,Ot as useCleenOverlays,Ne as useControlled,He as useDebounce,qe as useDisclosure,Qe as useFileUpload,Ye as useForm,rt as useOutsideClick,it as usePaginationState,dt as usePositionClose,pt as useValidation,bt as useWidthDynamicResize,It as wait};
|