@cleen/ui-core 0.1.154 → 0.1.156
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 +1 -0
- package/dist/index.js +1 -1
- package/package.json +2 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export { NumericFormat, PatternFormat, removeNumericFormat, removePatternFormat, useNumericFormat, usePatternFormat } from 'react-number-format';
|
|
1
2
|
import * as react from 'react';
|
|
2
3
|
import { RefObject, CSSProperties } from 'react';
|
|
3
4
|
import * as zustand_middleware from 'zustand/middleware';
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
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};
|
|
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: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 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 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,Ot 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};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cleen/ui-core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.156",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"clsx": "^2.1.1",
|
|
28
28
|
"color2k": "^2.0.3",
|
|
29
|
+
"react-number-format": "^5.4.5",
|
|
29
30
|
"tailwind-merge": "^2.6.0",
|
|
30
31
|
"zustand": "^5.0.8"
|
|
31
32
|
},
|