@cleen/ui-core 0.1.23 → 0.1.24
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 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -154,6 +154,8 @@ declare const useCleenOverlays: zustand.UseBoundStore<Omit<zustand.StoreApi<UseC
|
|
|
154
154
|
};
|
|
155
155
|
}>;
|
|
156
156
|
|
|
157
|
+
declare const CLEEN_IGNORE_OUTSIDE_CLICK = "data-cleen-ignore-outside-click";
|
|
158
|
+
|
|
157
159
|
interface ComponentClassnames<T extends {
|
|
158
160
|
classNames?: {
|
|
159
161
|
[key: string]: string | object;
|
|
@@ -254,4 +256,4 @@ declare const formatFileSize: (bytes?: number) => string;
|
|
|
254
256
|
declare const formatAudioTime: (seconds: number) => string;
|
|
255
257
|
declare const getCreatedDate: (date: string) => string;
|
|
256
258
|
|
|
257
|
-
export { type ArrayElement, ColorHelpers, type ColorVar, type ComponentClassnames, type ComponentStyles, type HintedString, type PartialDeep, type Position, applyDefaults, calculateOptimalPosition, calculatePositionValues, cn, encodeWav, formatAudioTime, formatFileSize, getCreatedDate, getRandomImageUrl, trimBlob, useAnimateNumber, useBodyScrollLock, useCleenColors, useCleenOverlays, useControlled, useDebounce, useDisclosure, useForm, useOutsideClick, usePaginationState, usePositionClose, useValidation, useWidthDynamicResize };
|
|
259
|
+
export { type ArrayElement, CLEEN_IGNORE_OUTSIDE_CLICK, ColorHelpers, type ColorVar, type ComponentClassnames, type ComponentStyles, type HintedString, type PartialDeep, type Position, applyDefaults, calculateOptimalPosition, calculatePositionValues, cn, encodeWav, formatAudioTime, formatFileSize, getCreatedDate, getRandomImageUrl, trimBlob, useAnimateNumber, useBodyScrollLock, useCleenColors, useCleenOverlays, useControlled, useDebounce, useDisclosure, useForm, useOutsideClick, usePaginationState, usePositionClose, useValidation, useWidthDynamicResize };
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useEffect as U,useState as L}from"react";var V=e=>1-(1-e)*(1-e),fe=({targetNumber:e,defaultNumber:n=0,duration:o=1e3,disabled:t=!1,easeOut:r=!0})=>{let[s,i]=L(n);return U(()=>{if(t)return;let a=null,l=c=>{a||(a=c);let u=c-a,f=Math.min(u/o,1);r&&(f=V(f));let m=f*e;i(m),m<e&&requestAnimationFrame(l)};requestAnimationFrame(l)},[e,o,t,r]),t?e:s};import{useEffect as D}from"react";var b=0,g=null,R=()=>{if(typeof window>"u")return;let{body:e,documentElement:n}=document;if(!(!e||!n)){if(b===0){let o=window.innerWidth-n.clientWidth;g={bodyOverflow:e.style.overflow,bodyPaddingRight:e.style.paddingRight,bodyTouchAction:e.style.touchAction,htmlOverflow:n.style.overflow,htmlOverscrollBehavior:n.style.overscrollBehavior},e.style.overflow="hidden",e.style.touchAction="none",n.style.overflow="hidden",n.style.overscrollBehavior="none",o>0&&(e.style.paddingRight=`${o}px`)}b+=1}},$=()=>{if(typeof window>"u"||b===0||(b-=1,b>0))return;let{body:e,documentElement:n}=document;if(!e||!n||!g){g=null;return}e.style.overflow=g.bodyOverflow,e.style.paddingRight=g.bodyPaddingRight,e.style.touchAction=g.bodyTouchAction,n.style.overflow=g.htmlOverflow,n.style.overscrollBehavior=g.htmlOverscrollBehavior,g=null},he=e=>{D(()=>{if(e)return R(),()=>{$()}},[e])};import{useEffect as z,useState as W}from"react";var be=({value:e,defaultValue:n,onChange:o})=>{let t=e!==void 0,[r,s]=W(n),i=t?e:r,a=l=>{t||s(l),o?.(l)};return z(()=>{t||s(e??n??void 0)},[e,n,t]),{value:i,isControlled:t,handleChange:a}};import{useEffect as j,useState as F}from"react";var Ce=(e,n)=>{let[o,t]=F(e);return j(()=>{let r=setTimeout(()=>{t(e)},n);return()=>{clearTimeout(r)}},[e,n]),o};import{useState as I}from"react";var Te=e=>{let[n,o]=I(!1),t=e?.value!==void 0?e.value:n;return{isOpen:t,open:()=>{o(!0),e?.setValue?.(!0)},close:()=>{o(!1),e?.setValue?.(!1)},toggle:()=>{o(a=>!a),e?.setValue?.(!t)}}};import{useEffect as N,useMemo as H,useState as q}from"react";var ke=({defaultValue:e,resetOnDefaultValueChange:n=!0})=>{let[o,t]=q(e),r=()=>t(e),s=(a,l)=>{t(c=>({...c,[a]:l}))},i=H(()=>JSON.stringify(o)!==JSON.stringify(e),[o,e]);return N(()=>{e&&n&&t(e)},[e,n]),{form:o,isDirty:i,setForm:t,setField:s,reset:r}};import{useEffect as G}from"react";function Be({refs:e,handler:n,enabled:o=!0}){G(()=>{if(!o)return;let t=r=>{e.some(i=>{let a=i.current;return a?a.contains(r.target):!1})||setTimeout(()=>n(r),0)};return document.addEventListener("mousedown",t),document.addEventListener("touchstart",t),()=>{document.removeEventListener("mousedown",t),document.removeEventListener("touchstart",t)}},[e,n,o])}import{useState as T}from"react";function Le(e={}){let{initialPage:n=1,initialPageSize:o=10}=e,[t,r]=T(n),[s,i]=T(o);return{page:t,setPage:r,pageSize:s,setPageSize:i,handleNextPage:u=>r(u),handlePreviousPage:u=>r(u),handlePageChange:u=>r(u)}}var S=(e,n,o)=>{let t={width:window.innerWidth,height:window.innerHeight},r=o;if(o==="left"||o==="right"){let l=o==="left",c=n.left,u=t.width-n.right;return l&&c<e.width&&u>e.width?"right":!l&&u<e.width&&c>e.width?"left":r}let s=o.startsWith("bottom"),i=t.height-n.bottom,a=n.top;if(s&&i<e.height&&a>e.height?r=o.replace("bottom","top"):!s&&o.startsWith("top")&&a<e.height&&i>e.height&&(r=o.replace("top","bottom")),o.includes("-")){let l=o.endsWith("left"),c=t.width-n.right,u=n.left;l&&c<e.width&&u>e.width?r=r.replace("left","right"):!l&&c<e.width&&u>e.width&&(r=r.replace("right","left"))}return r},O=(e,n,o,t)=>{if(!n)return{top:0,left:0};let r=window.scrollY,s=window.scrollX,i=t||0,a=0;o.startsWith("bottom")?a=n.bottom+r+i:o.startsWith("top")?a=n.top+r-(e?.height||0)-i:a=n.top+r+n.height/2-(e?.height||0)/2;let l=0;return o==="left"?l=n.left+s-(e?.width||0)-i:o==="right"?l=n.right+s+i:o.endsWith("left")||o==="bottom"||o==="top"?l=n.left+s:o.endsWith("right")&&(l=n.right+s-(e?.width||0)),(o==="bottom"||o==="top")&&(l=n.left+s+n.width/2-(e?.width||0)/2),{top:a,left:l}};import{useCallback as K,useEffect as k,useState as y}from"react";var ze=({triggerRef:e,targetRef:n,position:o="bottom-left",offset:t=8,isOpen:r})=>{let[s,i]=y(!1),[a,l]=y({top:0,left:0}),[c,u]=y(o),f=K(()=>{if(!e.current||!n.current)return;let m=n.current.getBoundingClientRect(),d=e.current.getBoundingClientRect(),p=S(m,d,o),w=O(m,d,p,t);u(h=>h===p?h:p),l(h=>h.top===w.top&&h.left===w.left?h:w)},[e,n,o,t]);return k(()=>{i(r)},[r]),k(()=>{if(!r){u(o),l({top:0,left:0});return}let m=null,d=()=>{m===null&&(m=window.requestAnimationFrame(()=>{m=null,f()}))},p=new ResizeObserver(()=>{d()});return e.current&&p.observe(e.current),n.current&&p.observe(n.current),window.addEventListener("resize",d),window.addEventListener("scroll",d,!0),window.visualViewport&&(window.visualViewport.addEventListener("resize",d),window.visualViewport.addEventListener("scroll",d)),f(),d(),()=>{m!==null&&window.cancelAnimationFrame(m),p.disconnect(),window.removeEventListener("resize",d),window.removeEventListener("scroll",d,!0),window.visualViewport&&(window.visualViewport.removeEventListener("resize",d),window.visualViewport.removeEventListener("scroll",d))}},[r,o,f,e,n]),{positionStyles:a,optimalPosition:c,isMounted:s}};import{useCallback as v,useState as X}from"react";var Fe=e=>{let[n,o]=X(e),t=v((i,a)=>{o(l=>(l[i]=a,{...l}))},[]),r=v(()=>{o(e)},[e]),s=v(i=>{o(a=>(delete a[i],{...a}))},[]);return{errors:n,setError:t,setErrors:o,clearError:s,clearErrors:r}};import{useEffect as J}from"react";var He=({ref:e,skip:n},o)=>{J(()=>{let t=e.current;if(!t||n)return;let r=t.offsetWidth;t.style.width=`${r}px`,requestAnimationFrame(()=>{t.style.width="auto";let s=t.offsetWidth;t.style.width=`${r}px`,t.offsetHeight,t.style.width=`${s}px`;let i=()=>{t&&(t.style.width="auto"),t?.removeEventListener("transitionend",i)};t.addEventListener("transitionend",i)})},o)};import{create as Y}from"zustand";import{persist as Q}from"zustand/middleware";var A="--cleen-",Z=["white","black","gray","pink","purple","indigo","blue","primary","success","warning","error","brand","sidebar","background"],Xe=Y()(Q((e,n)=>({colors:{},getColors:()=>{let o=n().colors;return Z.reduce((t,r)=>(o[r]?t[r]=o[r]:t[r]=getComputedStyle(document.documentElement).getPropertyValue(`${A}${r}`),t),{})},getColor:o=>{let t=n().colors;return t[o]?t[o]:getComputedStyle(document.documentElement).getPropertyValue(`${A}${o}`)},setColors:o=>Object.entries(o).map(([t,r])=>e(s=>({colors:{...s.colors,[t]:r}}))),setColor:(o,t)=>{e(r=>({colors:{...r.colors,[o]:t}}))},resetColors:()=>{e({colors:{}})},resetColor:o=>{let t=n().colors;delete t[o],e({colors:t})}}),{name:"cleen-colors"}));import{create as _}from"zustand";import{persist as ee}from"zustand/middleware";var Ze=_()(ee(e=>({overlays:[],addOverlay:n=>{e(o=>({overlays:[...o.overlays,n]}))},removeOverlay:n=>{e(o=>({overlays:o.overlays.filter(t=>t!==n)}))},clearOverlays:()=>{e({overlays:[]})}}),{name:"cleen-overlays"}));var te=e=>{let{numberOfChannels:n,sampleRate:o,length:t}=e,r=16,s=n*r/8,i=o*s,a=t*s,l=new ArrayBuffer(44+a),c=new DataView(l),u=(m,d)=>{for(let p=0;p<d.length;p++)c.setUint8(m+p,d.charCodeAt(p))};u(0,"RIFF"),c.setUint32(4,36+a,!0),u(8,"WAVE"),u(12,"fmt "),c.setUint32(16,16,!0),c.setUint16(20,1,!0),c.setUint16(22,n,!0),c.setUint32(24,o,!0),c.setUint32(28,i,!0),c.setUint16(32,s,!0),c.setUint16(34,r,!0),u(36,"data"),c.setUint32(40,a,!0);let f=44;for(let m=0;m<t;m++)for(let d=0;d<n;d++){let p=Math.max(-1,Math.min(1,e.getChannelData(d)[m]));c.setInt16(f,p<0?p*32768:p*32767,!0),f+=2}return new Blob([l],{type:"audio/wav"})},et=async(e,n,o)=>{let t=new AudioContext,r=await t.decodeAudioData(await e.arrayBuffer());await t.close();let{sampleRate:s,numberOfChannels:i}=r,a=Math.round(n*s),l=Math.round(o*s),c=l-a,u=new AudioContext().createBuffer(i,c,s);for(let f=0;f<i;f++)u.copyToChannel(r.getChannelData(f).subarray(a,l),f);return te(u)};import oe from"clsx";import{createTailwindMerge as ne,getDefaultConfig as re}from"tailwind-merge";var se=()=>({...re(),prefix:"cleen-"}),ie=ne(se),rt=(...e)=>ie(oe(e));import{darken as ae,getLuminance as E,lighten as le,parseToRgba as C,toHex as ce,toRgba as B}from"color2k";var M=class e{static deltaE(n,o){let t=e.rgb2lab(n),r=e.rgb2lab(o),s=t[0]-r[0],i=t[1]-r[1],a=t[2]-r[2],l=Math.sqrt(t[1]*t[1]+t[2]*t[2]),c=Math.sqrt(r[1]*r[1]+r[2]*r[2]),u=l-c,f=i*i+a*a-u*u;f=f<0?0:Math.sqrt(f);let m=1+.045*l,d=1+.015*l,p=s/1,w=u/m,h=f/d,x=p*p+w*w+h*h;return x<0?0:Math.sqrt(x)}static rgb2lab(n){let o=n[0]/255,t=n[1]/255,r=n[2]/255,s,i,a;return o=o>.04045?Math.pow((o+.055)/1.055,2.4):o/12.92,t=t>.04045?Math.pow((t+.055)/1.055,2.4):t/12.92,r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92,s=(o*.4124+t*.3576+r*.1805)/.95047,i=(o*.2126+t*.7152+r*.0722)/1,a=(o*.0193+t*.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(n,o,t=24){return e.deltaE(C(n),C(o))<t}static adjustColorForContrast(n,o=.25){let t=ce(n),r=n;try{if((t.match(/^#f{2,}e{0,2}$/i)||E(t)>.98)&&(t="#ffffff"),E(t)>.6){let s=ae(t,o);r=B(s)}else{let s=le(t,o);r=B(s)}return r}catch{return"rgba(var(--cleen-white)"}}static getComputedColor(n){if(!n?.includes("var("))return n;let o=n.match(/var\((--[^,)]+)/)?.[1];if(o&&typeof window<"u"){let t=getComputedStyle(document.documentElement).getPropertyValue(o).trim();return t?`rgb(${t})`:void 0}}static getComputedRgb(n){if(!n)return;if(!n?.includes("var(")){let[t,r,s]=C(n);return`${t}, ${r}, ${s}`}let o=n.match(/var\((--[^,)]+)/)?.[1];if(o&&typeof window<"u")return getComputedStyle(document.documentElement).getPropertyValue(o).trim()}static trasparentize(n,o=0){return`color-mix(in srgb, ${n} ${(1-o)*100}%, transparent)`}};var ue="https://picsum.photos",lt=e=>{let{width:n,height:o,grayscale:t,blur:r,seed:s}=e,i=ue;s&&(i+=`/seed/${encodeURIComponent(s)}`),i+=`/${n}/${o||n}`;let a=new URLSearchParams;t&&a.append("grayscale",""),r&&a.append("blur",r.toString()),s&&a.append("seed",s);let l=a.toString();return l&&(i+=`?${l}`),i};function P(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.prototype.toString.call(e)==="[object Object]"}function ut(e,n){let o=(r,s)=>{if(s===void 0)return t(r);if(P(r)&&P(s)){let i={};return new Set([...Object.keys(r),...Object.keys(s)]).forEach(l=>{let c=r[l],u=s[l];i[l]=o(c,u)}),i}return Array.isArray(r)||Array.isArray(s)?t(s===void 0?r:s):t(s!==void 0?s:r)},t=r=>{if(r!==void 0){if(r===null)return null;if(Array.isArray(r))return r.map(s=>t(s));if(P(r)){let s={};return Object.keys(r).forEach(i=>{s[i]=t(r[i])}),s}return r}};return o(e,n)}var ft=e=>{if(e===0||!e)return"0 B";let n=1024,o=["B","KB","MB","GB","TB"],t=Math.floor(Math.log(e)/Math.log(n));return Math.round(e/Math.pow(n,t))+" "+o[t]},mt=e=>{let n=Math.floor(e/60),o=Math.floor(e%60);return`${String(n).padStart(2,"0")}:${String(o).padStart(2,"0")}`},pt=e=>{let n=new Date(e),t=Math.abs(new Date().getTime()-n.getTime());return`Created ${Math.ceil(t/(1e3*60*60*24))} days ago`};export{M as ColorHelpers,ut as applyDefaults,S as calculateOptimalPosition,O as calculatePositionValues,rt as cn,te as encodeWav,mt as formatAudioTime,ft as formatFileSize,pt as getCreatedDate,lt as getRandomImageUrl,et as trimBlob,fe as useAnimateNumber,he as useBodyScrollLock,Xe as useCleenColors,Ze as useCleenOverlays,be as useControlled,Ce as useDebounce,Te as useDisclosure,ke as useForm,Be as useOutsideClick,Le as usePaginationState,ze as usePositionClose,Fe as useValidation,He as useWidthDynamicResize};
|
|
1
|
+
import{useEffect as U,useState as D}from"react";var V=e=>1-(1-e)*(1-e),me=({targetNumber:e,defaultNumber:n=0,duration:o=1e3,disabled:t=!1,easeOut:r=!0})=>{let[s,i]=D(n);return U(()=>{if(t)return;let a=null,l=c=>{a||(a=c);let u=c-a,f=Math.min(u/o,1);r&&(f=V(f));let m=f*e;i(m),m<e&&requestAnimationFrame(l)};requestAnimationFrame(l)},[e,o,t,r]),t?e:s};import{useEffect as R}from"react";var b=0,g=null,$=()=>{if(typeof window>"u")return;let{body:e,documentElement:n}=document;if(!(!e||!n)){if(b===0){let o=window.innerWidth-n.clientWidth;g={bodyOverflow:e.style.overflow,bodyPaddingRight:e.style.paddingRight,bodyTouchAction:e.style.touchAction,htmlOverflow:n.style.overflow,htmlOverscrollBehavior:n.style.overscrollBehavior},e.style.overflow="hidden",e.style.touchAction="none",n.style.overflow="hidden",n.style.overscrollBehavior="none",o>0&&(e.style.paddingRight=`${o}px`)}b+=1}},z=()=>{if(typeof window>"u"||b===0||(b-=1,b>0))return;let{body:e,documentElement:n}=document;if(!e||!n||!g){g=null;return}e.style.overflow=g.bodyOverflow,e.style.paddingRight=g.bodyPaddingRight,e.style.touchAction=g.bodyTouchAction,n.style.overflow=g.htmlOverflow,n.style.overscrollBehavior=g.htmlOverscrollBehavior,g=null},ge=e=>{R(()=>{if(e)return $(),()=>{z()}},[e])};import{useEffect as I,useState as W}from"react";var ye=({value:e,defaultValue:n,onChange:o})=>{let t=e!==void 0,[r,s]=W(n),i=t?e:r,a=l=>{t||s(l),o?.(l)};return I(()=>{t||s(e??n??void 0)},[e,n,t]),{value:i,isControlled:t,handleChange:a}};import{useEffect as j,useState as N}from"react";var Pe=(e,n)=>{let[o,t]=N(e);return j(()=>{let r=setTimeout(()=>{t(e)},n);return()=>{clearTimeout(r)}},[e,n]),o};import{useState as F}from"react";var Se=e=>{let[n,o]=F(!1),t=e?.value!==void 0?e.value:n;return{isOpen:t,open:()=>{o(!0),e?.setValue?.(!0)},close:()=>{o(!1),e?.setValue?.(!1)},toggle:()=>{o(a=>!a),e?.setValue?.(!t)}}};import{useEffect as H,useMemo as G,useState as q}from"react";var ke=({defaultValue:e,resetOnDefaultValueChange:n=!0})=>{let[o,t]=q(e),r=()=>t(e),s=(a,l)=>{t(c=>({...c,[a]:l}))},i=G(()=>JSON.stringify(o)!==JSON.stringify(e),[o,e]);return H(()=>{e&&n&&t(e)},[e,n]),{form:o,isDirty:i,setForm:t,setField:s,reset:r}};var T="data-cleen-ignore-outside-click";import{useEffect as K}from"react";function Ue({refs:e,handler:n,enabled:o=!0}){K(()=>{if(!o)return;let t=r=>{let s=e.some(a=>{let l=a.current;return l?l.contains(r.target):!1}),i=r.target.closest(`[${T}]`);s||i||setTimeout(()=>n(r),0)};return document.addEventListener("mousedown",t),document.addEventListener("touchstart",t),()=>{document.removeEventListener("mousedown",t),document.removeEventListener("touchstart",t)}},[e,n,o])}import{useState as S}from"react";function Re(e={}){let{initialPage:n=1,initialPageSize:o=10}=e,[t,r]=S(n),[s,i]=S(o);return{page:t,setPage:r,pageSize:s,setPageSize:i,handleNextPage:u=>r(u),handlePreviousPage:u=>r(u),handlePageChange:u=>r(u)}}var O=(e,n,o)=>{let t={width:window.innerWidth,height:window.innerHeight},r=o;if(o==="left"||o==="right"){let l=o==="left",c=n.left,u=t.width-n.right;return l&&c<e.width&&u>e.width?"right":!l&&u<e.width&&c>e.width?"left":r}let s=o.startsWith("bottom"),i=t.height-n.bottom,a=n.top;if(s&&i<e.height&&a>e.height?r=o.replace("bottom","top"):!s&&o.startsWith("top")&&a<e.height&&i>e.height&&(r=o.replace("top","bottom")),o.includes("-")){let l=o.endsWith("left"),c=t.width-n.right,u=n.left;l&&c<e.width&&u>e.width?r=r.replace("left","right"):!l&&c<e.width&&u>e.width&&(r=r.replace("right","left"))}return r},E=(e,n,o,t)=>{if(!n)return{top:0,left:0};let r=window.scrollY,s=window.scrollX,i=t||0,a=0;o.startsWith("bottom")?a=n.bottom+r+i:o.startsWith("top")?a=n.top+r-(e?.height||0)-i:a=n.top+r+n.height/2-(e?.height||0)/2;let l=0;return o==="left"?l=n.left+s-(e?.width||0)-i:o==="right"?l=n.right+s+i:o.endsWith("left")||o==="bottom"||o==="top"?l=n.left+s:o.endsWith("right")&&(l=n.right+s-(e?.width||0)),(o==="bottom"||o==="top")&&(l=n.left+s+n.width/2-(e?.width||0)/2),{top:a,left:l}};import{useCallback as _,useEffect as k,useState as y}from"react";var je=({triggerRef:e,targetRef:n,position:o="bottom-left",offset:t=8,isOpen:r})=>{let[s,i]=y(!1),[a,l]=y({top:0,left:0}),[c,u]=y(o),f=_(()=>{if(!e.current||!n.current)return;let m=n.current.getBoundingClientRect(),d=e.current.getBoundingClientRect(),p=O(m,d,o),w=E(m,d,p,t);u(h=>h===p?h:p),l(h=>h.top===w.top&&h.left===w.left?h:w)},[e,n,o,t]);return k(()=>{i(r)},[r]),k(()=>{if(!r){u(o),l({top:0,left:0});return}let m=null,d=()=>{m===null&&(m=window.requestAnimationFrame(()=>{m=null,f()}))},p=new ResizeObserver(()=>{d()});return e.current&&p.observe(e.current),n.current&&p.observe(n.current),window.addEventListener("resize",d),window.addEventListener("scroll",d,!0),window.visualViewport&&(window.visualViewport.addEventListener("resize",d),window.visualViewport.addEventListener("scroll",d)),f(),d(),()=>{m!==null&&window.cancelAnimationFrame(m),p.disconnect(),window.removeEventListener("resize",d),window.removeEventListener("scroll",d,!0),window.visualViewport&&(window.visualViewport.removeEventListener("resize",d),window.visualViewport.removeEventListener("scroll",d))}},[r,o,f,e,n]),{positionStyles:a,optimalPosition:c,isMounted:s}};import{useCallback as C,useState as X}from"react";var He=e=>{let[n,o]=X(e),t=C((i,a)=>{o(l=>(l[i]=a,{...l}))},[]),r=C(()=>{o(e)},[e]),s=C(i=>{o(a=>(delete a[i],{...a}))},[]);return{errors:n,setError:t,setErrors:o,clearError:s,clearErrors:r}};import{useEffect as J}from"react";var Ke=({ref:e,skip:n},o)=>{J(()=>{let t=e.current;if(!t||n)return;let r=t.offsetWidth;t.style.width=`${r}px`,requestAnimationFrame(()=>{t.style.width="auto";let s=t.offsetWidth;t.style.width=`${r}px`,t.offsetHeight,t.style.width=`${s}px`;let i=()=>{t&&(t.style.width="auto"),t?.removeEventListener("transitionend",i)};t.addEventListener("transitionend",i)})},o)};import{create as Y}from"zustand";import{persist as Q}from"zustand/middleware";var A="--cleen-",Z=["white","black","gray","pink","purple","indigo","blue","primary","success","warning","error","brand","sidebar","background"],Ye=Y()(Q((e,n)=>({colors:{},getColors:()=>{let o=n().colors;return Z.reduce((t,r)=>(o[r]?t[r]=o[r]:t[r]=getComputedStyle(document.documentElement).getPropertyValue(`${A}${r}`),t),{})},getColor:o=>{let t=n().colors;return t[o]?t[o]:getComputedStyle(document.documentElement).getPropertyValue(`${A}${o}`)},setColors:o=>Object.entries(o).map(([t,r])=>e(s=>({colors:{...s.colors,[t]:r}}))),setColor:(o,t)=>{e(r=>({colors:{...r.colors,[o]:t}}))},resetColors:()=>{e({colors:{}})},resetColor:o=>{let t=n().colors;delete t[o],e({colors:t})}}),{name:"cleen-colors"}));import{create as ee}from"zustand";import{persist as te}from"zustand/middleware";var tt=ee()(te(e=>({overlays:[],addOverlay:n=>{e(o=>({overlays:[...o.overlays,n]}))},removeOverlay:n=>{e(o=>({overlays:o.overlays.filter(t=>t!==n)}))},clearOverlays:()=>{e({overlays:[]})}}),{name:"cleen-overlays"}));var oe=e=>{let{numberOfChannels:n,sampleRate:o,length:t}=e,r=16,s=n*r/8,i=o*s,a=t*s,l=new ArrayBuffer(44+a),c=new DataView(l),u=(m,d)=>{for(let p=0;p<d.length;p++)c.setUint8(m+p,d.charCodeAt(p))};u(0,"RIFF"),c.setUint32(4,36+a,!0),u(8,"WAVE"),u(12,"fmt "),c.setUint32(16,16,!0),c.setUint16(20,1,!0),c.setUint16(22,n,!0),c.setUint32(24,o,!0),c.setUint32(28,i,!0),c.setUint16(32,s,!0),c.setUint16(34,r,!0),u(36,"data"),c.setUint32(40,a,!0);let f=44;for(let m=0;m<t;m++)for(let d=0;d<n;d++){let p=Math.max(-1,Math.min(1,e.getChannelData(d)[m]));c.setInt16(f,p<0?p*32768:p*32767,!0),f+=2}return new Blob([l],{type:"audio/wav"})},nt=async(e,n,o)=>{let t=new AudioContext,r=await t.decodeAudioData(await e.arrayBuffer());await t.close();let{sampleRate:s,numberOfChannels:i}=r,a=Math.round(n*s),l=Math.round(o*s),c=l-a,u=new AudioContext().createBuffer(i,c,s);for(let f=0;f<i;f++)u.copyToChannel(r.getChannelData(f).subarray(a,l),f);return oe(u)};import ne from"clsx";import{createTailwindMerge as re,getDefaultConfig as se}from"tailwind-merge";var ie=()=>({...se(),prefix:"cleen-"}),ae=re(ie),at=(...e)=>ae(ne(e));import{darken as le,getLuminance as M,lighten as ce,parseToRgba as v,toHex as ue,toRgba as B}from"color2k";var L=class e{static deltaE(n,o){let t=e.rgb2lab(n),r=e.rgb2lab(o),s=t[0]-r[0],i=t[1]-r[1],a=t[2]-r[2],l=Math.sqrt(t[1]*t[1]+t[2]*t[2]),c=Math.sqrt(r[1]*r[1]+r[2]*r[2]),u=l-c,f=i*i+a*a-u*u;f=f<0?0:Math.sqrt(f);let m=1+.045*l,d=1+.015*l,p=s/1,w=u/m,h=f/d,x=p*p+w*w+h*h;return x<0?0:Math.sqrt(x)}static rgb2lab(n){let o=n[0]/255,t=n[1]/255,r=n[2]/255,s,i,a;return o=o>.04045?Math.pow((o+.055)/1.055,2.4):o/12.92,t=t>.04045?Math.pow((t+.055)/1.055,2.4):t/12.92,r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92,s=(o*.4124+t*.3576+r*.1805)/.95047,i=(o*.2126+t*.7152+r*.0722)/1,a=(o*.0193+t*.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(n,o,t=24){return e.deltaE(v(n),v(o))<t}static adjustColorForContrast(n,o=.25){let t=ue(n),r=n;try{if((t.match(/^#f{2,}e{0,2}$/i)||M(t)>.98)&&(t="#ffffff"),M(t)>.6){let s=le(t,o);r=B(s)}else{let s=ce(t,o);r=B(s)}return r}catch{return"rgba(var(--cleen-white)"}}static getComputedColor(n){if(!n?.includes("var("))return n;let o=n.match(/var\((--[^,)]+)/)?.[1];if(o&&typeof window<"u"){let t=getComputedStyle(document.documentElement).getPropertyValue(o).trim();return t?`rgb(${t})`:void 0}}static getComputedRgb(n){if(!n)return;if(!n?.includes("var(")){let[t,r,s]=v(n);return`${t}, ${r}, ${s}`}let o=n.match(/var\((--[^,)]+)/)?.[1];if(o&&typeof window<"u")return getComputedStyle(document.documentElement).getPropertyValue(o).trim()}static trasparentize(n,o=0){return`color-mix(in srgb, ${n} ${(1-o)*100}%, transparent)`}};var de="https://picsum.photos",dt=e=>{let{width:n,height:o,grayscale:t,blur:r,seed:s}=e,i=de;s&&(i+=`/seed/${encodeURIComponent(s)}`),i+=`/${n}/${o||n}`;let a=new URLSearchParams;t&&a.append("grayscale",""),r&&a.append("blur",r.toString()),s&&a.append("seed",s);let l=a.toString();return l&&(i+=`?${l}`),i};function P(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.prototype.toString.call(e)==="[object Object]"}function mt(e,n){let o=(r,s)=>{if(s===void 0)return t(r);if(P(r)&&P(s)){let i={};return new Set([...Object.keys(r),...Object.keys(s)]).forEach(l=>{let c=r[l],u=s[l];i[l]=o(c,u)}),i}return Array.isArray(r)||Array.isArray(s)?t(s===void 0?r:s):t(s!==void 0?s:r)},t=r=>{if(r!==void 0){if(r===null)return null;if(Array.isArray(r))return r.map(s=>t(s));if(P(r)){let s={};return Object.keys(r).forEach(i=>{s[i]=t(r[i])}),s}return r}};return o(e,n)}var ht=e=>{if(e===0||!e)return"0 B";let n=1024,o=["B","KB","MB","GB","TB"],t=Math.floor(Math.log(e)/Math.log(n));return Math.round(e/Math.pow(n,t))+" "+o[t]},gt=e=>{let n=Math.floor(e/60),o=Math.floor(e%60);return`${String(n).padStart(2,"0")}:${String(o).padStart(2,"0")}`},wt=e=>{let n=new Date(e),t=Math.abs(new Date().getTime()-n.getTime());return`Created ${Math.ceil(t/(1e3*60*60*24))} days ago`};export{T as CLEEN_IGNORE_OUTSIDE_CLICK,L as ColorHelpers,mt as applyDefaults,O as calculateOptimalPosition,E as calculatePositionValues,at as cn,oe as encodeWav,gt as formatAudioTime,ht as formatFileSize,wt as getCreatedDate,dt as getRandomImageUrl,nt as trimBlob,me as useAnimateNumber,ge as useBodyScrollLock,Ye as useCleenColors,tt as useCleenOverlays,ye as useControlled,Pe as useDebounce,Se as useDisclosure,ke as useForm,Ue as useOutsideClick,Re as usePaginationState,je as usePositionClose,He as useValidation,Ke as useWidthDynamicResize};
|