@tribepad/themis 1.0.2 → 1.0.3
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/elements/Checkbox/index.js +1 -1
- package/dist/elements/Checkbox/index.js.map +1 -1
- package/dist/elements/Checkbox/index.mjs +1 -1
- package/dist/elements/Checkbox/index.mjs.map +1 -1
- package/dist/elements/CheckboxGroup/index.js +1 -1
- package/dist/elements/CheckboxGroup/index.js.map +1 -1
- package/dist/elements/CheckboxGroup/index.mjs +1 -1
- package/dist/elements/CheckboxGroup/index.mjs.map +1 -1
- package/dist/elements/DatePicker/index.js +1 -1
- package/dist/elements/DatePicker/index.js.map +1 -1
- package/dist/elements/DatePicker/index.mjs +1 -1
- package/dist/elements/DatePicker/index.mjs.map +1 -1
- package/dist/elements/FileField/index.js +1 -1
- package/dist/elements/FileField/index.js.map +1 -1
- package/dist/elements/FileField/index.mjs +1 -1
- package/dist/elements/FileField/index.mjs.map +1 -1
- package/dist/elements/NumberField/NumberField.variants.d.ts +1 -1
- package/dist/elements/NumberField/index.js +1 -1
- package/dist/elements/NumberField/index.js.map +1 -1
- package/dist/elements/NumberField/index.mjs +1 -1
- package/dist/elements/NumberField/index.mjs.map +1 -1
- package/dist/elements/OTPInput/index.js +1 -1
- package/dist/elements/OTPInput/index.js.map +1 -1
- package/dist/elements/OTPInput/index.mjs +1 -1
- package/dist/elements/OTPInput/index.mjs.map +1 -1
- package/dist/elements/Progress/index.js +1 -1
- package/dist/elements/Progress/index.js.map +1 -1
- package/dist/elements/Progress/index.mjs +1 -1
- package/dist/elements/Progress/index.mjs.map +1 -1
- package/dist/elements/RadioGroup/index.js +1 -1
- package/dist/elements/RadioGroup/index.js.map +1 -1
- package/dist/elements/RadioGroup/index.mjs +1 -1
- package/dist/elements/RadioGroup/index.mjs.map +1 -1
- package/dist/elements/Resizable/index.js +1 -1
- package/dist/elements/Resizable/index.js.map +1 -1
- package/dist/elements/Resizable/index.mjs +1 -1
- package/dist/elements/Resizable/index.mjs.map +1 -1
- package/dist/elements/Select/index.js +1 -1
- package/dist/elements/Select/index.js.map +1 -1
- package/dist/elements/Select/index.mjs +1 -1
- package/dist/elements/Select/index.mjs.map +1 -1
- package/dist/elements/Switch/index.js +1 -1
- package/dist/elements/Switch/index.js.map +1 -1
- package/dist/elements/Switch/index.mjs +1 -1
- package/dist/elements/Switch/index.mjs.map +1 -1
- package/dist/elements/Table/index.js +1 -1
- package/dist/elements/Table/index.js.map +1 -1
- package/dist/elements/Table/index.mjs +1 -1
- package/dist/elements/Table/index.mjs.map +1 -1
- package/dist/elements/Tabs/Tabs.d.ts +5 -3
- package/dist/elements/Tabs/Tabs.d.ts.map +1 -1
- package/dist/elements/Tabs/Tabs.types.d.ts +15 -0
- package/dist/elements/Tabs/Tabs.types.d.ts.map +1 -1
- package/dist/elements/Tabs/index.js +1 -1
- package/dist/elements/Tabs/index.js.map +1 -1
- package/dist/elements/Tabs/index.mjs +1 -1
- package/dist/elements/Tabs/index.mjs.map +1 -1
- package/dist/elements/TimeField/index.js +1 -1
- package/dist/elements/TimeField/index.js.map +1 -1
- package/dist/elements/TimeField/index.mjs +1 -1
- package/dist/elements/TimeField/index.mjs.map +1 -1
- package/dist/elements/index.js +1 -1
- package/dist/elements/index.js.map +1 -1
- package/dist/elements/index.mjs +1 -1
- package/dist/elements/index.mjs.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -2
- package/dist/index.mjs.map +1 -1
- package/dist/styles/index.js +1 -1
- package/dist/styles/index.js.map +1 -1
- package/dist/styles/index.mjs +1 -1
- package/dist/styles/index.mjs.map +1 -1
- package/dist/styles/shared-variants.d.ts +3 -3
- package/dist/styles/shared-variants.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/elements/AlertDialog/AlertDialog.stories.tsx +1 -1
- package/src/elements/CheckboxGroup/CheckboxGroup.stories.tsx +3 -3
- package/src/elements/Combobox/Combobox.stories.tsx +1 -1
- package/src/elements/FileField/FileField.stories.tsx +1 -1
- package/src/elements/Progress/Progress.stories.tsx +6 -1
- package/src/elements/RadioGroup/RadioGroup.stories.tsx +2 -2
- package/src/elements/Tabs/Tabs.stories.tsx +45 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {createContext,forwardRef,useImperativeHandle,useRef,useState,useEffect,memo,useId,useCallback,useContext}from'react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {z}from'zod';import {cva}from'class-variance-authority';import {Loader2,Zap,Minus,Plus,X as X$1,GripVertical,GripHorizontal}from'lucide-react';import {Button,NumberField,Label,Group,Input,Text,FieldError,DialogTrigger,Popover,Dialog}from'react-aria-components';function N(...p){return twMerge(clsx(p))}var ee=createContext(null);ee.displayName="ResizableContext";function W(){let p=useContext(ee);if(!p)throw new Error("useResizableContext must be used within a ResizablePanelGroup. Make sure ResizablePanel and ResizableHandle are children of ResizablePanelGroup.");return p}function Se({direction:p,groupLabel:o,sizes:f,onSizesChange:n}){let[l,e]=useState([]),[a,i]=useState([]),t=useRef(null),s=useRef(null),v=useRef(null),c=useRef(false),P=f!==void 0,R=P?f:l,h=useCallback(b=>{P?n?.(b):e(b);},[P,n]),E=useCallback((b,r)=>{i(g=>{let w=[...g];return w[b]=r,w});},[]),L=useCallback(b=>{i(r=>{let g=[...r];return delete g[b],g.filter(Boolean)});},[]);useEffect(()=>{if(P||c.current)return;let r=a.filter(Boolean).length;if(r<2)return;if(R.length<r||R.some(w=>w===void 0)){let w=[],d=100/r;for(let u=0;u<r;u++)w[u]=d;c.current=true,e(w);}},[a,R,P]),useEffect(()=>()=>{v.current&&clearTimeout(v.current),s.current&&(document.body.removeChild(s.current),s.current=null);},[]);let y=useCallback(b=>{if(!s.current){let r=document.createElement("div");r.setAttribute("aria-live","polite"),r.setAttribute("aria-atomic","true"),r.className="sr-only",r.style.cssText="position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;",document.body.appendChild(r),s.current=r;}s.current.textContent=b,v.current&&clearTimeout(v.current),v.current=setTimeout(()=>{s.current&&(s.current.textContent="");},1e3);},[]);return {direction:p,groupLabel:o,sizes:R,setSizes:h,panels:a,registerPanel:E,unregisterPanel:L,announce:y,containerRef:t}}var ye=forwardRef(function({direction:o,groupLabel:f,sizes:n,onSizesChange:l,className:e,children:a},i){let t=Se({direction:o,groupLabel:f,sizes:n,onSizesChange:l});return useImperativeHandle(i,()=>t.containerRef.current,[t.containerRef]),jsx(ee.Provider,{value:t,children:jsx("div",{ref:t.containerRef,role:"group","aria-label":`${f}, ${o}`,"data-direction":o,className:N("flex h-full w-full",o==="horizontal"?"flex-row":"flex-col",e),children:a})})});ye.displayName="ResizablePanelGroup";var U=10,$=90,te=300,Ee=z.object({label:z.string().min(1),sizes:z.array(z.number().min(0).max(100))}),lt=z.object({direction:z.enum(["horizontal","vertical"]),groupLabel:z.string().min(1),sizes:z.array(z.number().min(0).max(100)).optional(),onSizesChange:z.function().optional(),className:z.string().optional(),children:z.custom()}),ut=z.object({name:z.string().min(1),defaultSize:z.number().min(0).max(100).optional(),minSize:z.number().min(0).max(100).optional().default(U),maxSize:z.number().min(0).max(100).optional().default($),collapsible:z.boolean().optional().default(false),onCollapse:z.function().optional(),onExpand:z.function().optional(),onResize:z.function().optional(),className:z.string().optional(),children:z.custom()}),ct=z.object({withHandle:z.boolean().optional().default(true),presets:z.array(Ee).optional(),disabled:z.boolean().optional().default(false),className:z.string().optional()}),se=cva(["relative flex items-center justify-center","shrink-0","bg-transparent","transition-colors duration-150","focus-visible:outline-none focus-visible:ring-2","focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2","touch-none select-none"],{variants:{direction:{horizontal:["w-3 min-w-[12px]","cursor-col-resize","hover:bg-[var(--accent)]/50","before:absolute before:inset-y-0 before:-inset-x-4","before:min-w-[44px]"],vertical:["h-3 min-h-[12px]","cursor-row-resize","hover:bg-[var(--accent)]/50","before:absolute before:inset-x-0 before:-inset-y-4","before:min-h-[44px]"]},disabled:{true:"cursor-not-allowed opacity-50 pointer-events-none",false:""},isDragging:{true:"bg-[var(--accent)]",false:""}},defaultVariants:{direction:"horizontal",disabled:false,isDragging:false}}),le=cva(["flex items-center justify-center","rounded-full","bg-[var(--border)]","text-[var(--menu-muted)]"],{variants:{direction:{horizontal:"h-8 w-1",vertical:"h-1 w-8"}},defaultVariants:{direction:"horizontal"}});var Ve=forwardRef(function({name:o,defaultSize:f,minSize:n=U,maxSize:l=$,collapsible:e=false,onCollapse:a,onExpand:i,onResize:t,className:s,children:v},c){let{sizes:P,registerPanel:R,unregisterPanel:h,containerRef:E}=W(),L=useRef(null),[y,b]=useState(-1),r=useRef(null),g=useRef(false),w=useRef(-1);useEffect(()=>{let u=L.current,x=E.current;if(!u||!x)return;let V=x.querySelectorAll("[data-resizable-panel]"),T=-1;for(let F=0;F<V.length;F++)if(V[F]===u){T=F;break}if(T!==-1)return y!==T&&b(T),g.current||(g.current=true,w.current=T,R(T,{name:o,minSize:n,maxSize:l,collapsible:e})),()=>{g.current&&(h(w.current),g.current=false);}},[E,R,h,o,n,l,e,y]);let d=y>=0?P[y]??50:50;return useEffect(()=>{if(r.current===null){r.current=d;return}let u=r.current===0,x=d===0;!u&&x&&a?a():u&&!x&&i&&i(),t&&r.current!==d&&t(d),r.current=d;},[d,a,i,t]),jsx("div",{ref:u=>{L.current=u,typeof c=="function"?c(u):c&&(c.current=u);},role:"region","aria-label":o,"data-resizable-panel":"","data-panel-name":o,"data-panel-index":y,"data-collapsed":d===0,style:{flexBasis:`${d}%`,flexGrow:0,flexShrink:0,overflow:"hidden"},className:N("relative",s),children:v})});Ve.displayName="ResizablePanel";function Te(p,o,f){return Math.max(o,Math.min(f,p))}function Le(p,o,f,n,l){let e=[...p],a=o[f],i=o[n];if(!a||!i)return p;let t=p[f]??50,s=p[n]??50,v=t+l,c=s-l,P=a.collapsible?0:a.minSize,R=a.maxSize,h=i.collapsible?0:i.minSize,E=i.maxSize;return v=Te(v,P,R),c=t+s-v,c=Te(c,h,E),v=t+s-c,e[f]=v,e[n]=c,e}function De({direction:p,sizes:o,setSizes:f,panels:n,containerRef:l,leftPanelIndex:e,rightPanelIndex:a,disabled:i=false,announce:t,groupLabel:s,onOpenPopover:v}){let[c,P]=useState(false),R=useRef(null),h=useRef(null),E=useRef(0),L=useRef(false),y=useRef(n),b=useRef(o),r=useRef(f),g=useRef(()=>{}),w=useRef(()=>{});useEffect(()=>{y.current=n,b.current=o,r.current=f;},[n,o,f]);let d=useCallback(()=>{let S=l.current;return S?p==="horizontal"?S.offsetWidth:S.offsetHeight:0},[l,p]),u=useCallback(S=>{let C=d();return C===0?0:S/C*100},[d]),x=useCallback(S=>{g.current(S);},[]),V=useCallback(()=>{w.current();},[]),T=useCallback(S=>{if(!R.current||i)return;let I=(p==="horizontal"?S.clientX:S.clientY)-R.current.position,D=u(I),_=Le(R.current.sizes,y.current,e,a,D);r.current(_);},[p,i,e,u,a]),F=useCallback(()=>{if(h.current&&(clearTimeout(h.current),h.current=null),Date.now()-E.current<te&&!L.current&&v&&!i&&v(),c){P(false);let I=y.current[e],D=Math.round(b.current[e]??50);t&&I&&s&&t(`${I.name} in ${s} resized to ${D} percent`);}R.current=null,L.current=false,document.removeEventListener("pointermove",x),document.removeEventListener("pointerup",V),document.removeEventListener("pointercancel",V),document.body.style.cursor="",document.body.style.userSelect="";},[t,i,s,c,e,v,x,V]);useEffect(()=>{g.current=T,w.current=F;});let K=useCallback(S=>{if(i)return;S.preventDefault();let C=p==="horizontal"?S.clientX:S.clientY;E.current=Date.now(),L.current=false,R.current={position:C,sizes:[...o],containerSize:d()},h.current=setTimeout(()=>{L.current=true,P(true),document.body.style.cursor=p==="horizontal"?"col-resize":"row-resize",document.body.style.userSelect="none";},te),document.addEventListener("pointermove",x),document.addEventListener("pointerup",V),document.addEventListener("pointercancel",V),S.pointerType==="mouse"&&(h.current&&(clearTimeout(h.current),h.current=null),L.current=true,P(true),document.body.style.cursor=p==="horizontal"?"col-resize":"row-resize",document.body.style.userSelect="none");},[p,i,d,x,V,o]),G=useCallback(S=>{if(i)return;let C=S.shiftKey?10:1,I=0;switch(S.key){case "ArrowLeft":case "ArrowUp":I=-C;break;case "ArrowRight":case "ArrowDown":I=C;break;case "Home":{let D=n[e];D&&(I=(D.collapsible?0:D.minSize)-(o[e]??50));break}case "End":{let D=n[e];D&&(I=D.maxSize-(o[e]??50));break}case "Enter":case " ":S.preventDefault(),v?.();return;default:return}if(I!==0){S.preventDefault();let D=Le(o,n,e,a,I);f(D);let _=n[e],k=Math.round(D[e]??50);t&&_&&s&&t(`${_.name} in ${s} resized to ${k} percent`);}},[t,i,s,e,v,n,a,f,o]);return useEffect(()=>{let S=x,C=V;return ()=>{h.current&&clearTimeout(h.current),document.removeEventListener("pointermove",S),document.removeEventListener("pointerup",C),document.removeEventListener("pointercancel",C);}},[x,V]),{isDragging:c,handlePointerDown:K,handleKeyDown:G}}var ce=cva("inline-flex justify-center min-h-[44px] min-w-[44px] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50",{variants:{fullWidth:{true:"w-full",false:""},inVerticalGroup:{true:"items-stretch",false:"items-center"}},defaultVariants:{fullWidth:false,inVerticalGroup:false}}),de=cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 relative cursor-pointer",{variants:{variant:{default:"bg-[var(--primary-action)] text-[var(--primary-action-foreground)] shadow-md hover:bg-[var(--primary-action-hover)] data-[pressed]:bg-[var(--primary-action)]/80",destructive:"bg-[var(--destructive-background)] text-[var(--destructive-foreground)] shadow-md hover:bg-[var(--destructive-background)]/90 data-[pressed]:bg-[var(--destructive-background)]/80",outline:"border border-[var(--input-border)] bg-[var(--page-background)] hover:bg-[var(--input-border)] data-[pressed]:bg-[var(--input-border)]",secondary:"bg-[var(--secondary)] text-[var(--secondary-foreground)] shadow-md hover:bg-[var(--secondary)]/80 data-[pressed]:bg-[var(--secondary)]/70",ghost:"hover:bg-[var(--accent)] hover:text-[var(--accent-foreground)] data-[pressed]:bg-[var(--accent)]",link:"text-[var(--text-link)] underline-offset-4 hover:underline data-[pressed]:text-[var(--text-link-hover)]"},fullWidth:{true:"w-full",false:""},visualSize:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3 text-xs",lg:"h-11 rounded-md px-8",icon:"h-10 w-10",dot:"h-5 w-5 rounded-full p-0 min-h-0 min-w-0"},paywall:{true:"!bg-[var(--paywall)] !text-[var(--paywall-foreground)] !shadow-md hover:!bg-[var(--paywall)]/90 !cursor-not-allowed !border-transparent",false:""}},defaultVariants:{variant:"default",visualSize:"default",paywall:false}});var me="data-[pressed]:scale-[0.97]";var pe="data-[hovered]:shadow-md";var re="hc:data-[hovered]:outline hc:data-[hovered]:outline-2 hc:data-[hovered]:outline-foreground",oe="hc:data-[pressed]:outline hc:data-[pressed]:outline-2 hc:data-[pressed]:outline-offset-1 hc:data-[pressed]:outline-foreground";var _e=createContext(null);_e.displayName="ButtonGroupContext";function Me(){return useContext(_e)}var Fe=createContext(null);Fe.displayName="ButtonGroupItemContext";function Ge(){return useContext(Fe)}cva("inline-flex items-center gap-0",{variants:{orientation:{horizontal:"flex-row",vertical:"flex-col w-full"}},defaultVariants:{orientation:"horizontal"}});var Be=cva("",{variants:{orientation:{horizontal:"min-w-[44px]",vertical:"flex min-h-[44px]"},position:{first:"",middle:"",last:"",only:""}},compoundVariants:[{orientation:"horizontal",position:"first",className:"rounded-r-none border-r-0"},{orientation:"horizontal",position:"middle",className:"rounded-none border-r-0"},{orientation:"horizontal",position:"last",className:"rounded-l-none"},{orientation:"vertical",position:"first",className:"rounded-b-none border-b-0"},{orientation:"vertical",position:"middle",className:"rounded-none border-b-0"},{orientation:"vertical",position:"last",className:"rounded-t-none"}],defaultVariants:{orientation:"horizontal",position:"only"}});cva("bg-[var(--border)]",{variants:{orientation:{horizontal:"w-px h-6 mx-1",vertical:"h-px w-full my-1"}},defaultVariants:{orientation:"horizontal"}});var M=memo(forwardRef(({className:p,buttonVisualClassName:o,variant:f,size:n,visualSize:l,fullWidth:e,loading:a=false,loadingText:i="Loading...",shortcut:t,children:s,isDisabled:v,paywall:c=false,paywallRedirect:P,paywallDescription:R,onPress:h,...E},L)=>{let y=useId(),b=Me(),r=Ge(),g=f??b?.variant??"default",w=n??b?.size,d=v??b?.isDisabled??false,u=b?.orientation==="vertical",x=e||u,V=r?Be({orientation:b?.orientation??"horizontal",position:r.position}):"",T=l??w??"default";return process.env.NODE_ENV!=="production"&&(T==="dot"||T==="icon")&&!E["aria-label"]&&!s&&console.warn('[Button] visualSize="dot" or "icon" requires aria-label when no visible text is provided (WCAG 1.1.1)'),jsx(Button,{ref:L,isDisabled:d||a||void 0,"aria-disabled":c?true:void 0,"aria-describedby":c?y:void 0,onPress:G=>{if(c){P&&window.open(P,"_blank","noopener,noreferrer");return}h?.(G);},className:N(ce({fullWidth:x,inVerticalGroup:u}),p),...E,children:G=>jsxs("span",{className:N(de({variant:g,visualSize:T,paywall:c,fullWidth:x}),V,o,me,pe,re,oe),"data-pressed":G.isPressed||void 0,children:[a&&jsxs(Fragment,{children:[jsx(Loader2,{className:"motion-safe:animate-spin","aria-hidden":"true"}),jsx("span",{className:"sr-only","aria-live":"polite",children:i})]}),!a&&s,c&&jsx(Zap,{"data-testid":"zap-icon","aria-hidden":"true",className:"ml-1"}),c&&jsxs("span",{id:y,className:"sr-only",children:["Premium feature: ",R||"Upgrade required to access this feature"]}),G.isFocusVisible&&t&&jsx("kbd",{className:"ml-auto hidden text-xs opacity-60 lg:inline",children:t}),G.isPressed&&jsx("span",{className:"absolute inset-0 rounded-[inherit] bg-current opacity-10 motion-safe:animate-in motion-safe:zoom-in-95","aria-hidden":"true"})]})})}));M.displayName="Button";var Oe=4294967295,ke=0,Ue=-2147483647;z.object({value:z.number().nullable().optional(),defaultValue:z.number().optional(),minValue:z.number().optional(),maxValue:z.number().optional(),allowNegative:z.boolean().optional(),step:z.number().positive().optional(),formatOptions:z.custom().optional(),isDisabled:z.boolean().optional(),isReadOnly:z.boolean().optional(),isRequired:z.boolean().optional(),isInvalid:z.boolean().optional(),isWheelDisabled:z.boolean().optional(),validate:z.function().optional(),validationBehavior:z.enum(["native","aria"]).default("native"),label:z.string(),description:z.string().optional(),errorMessage:z.union([z.string(),z.function()]).optional(),stepperLayout:z.enum(["sides","stacked","hidden"]).default("sides"),incrementAriaLabel:z.string().optional(),decrementAriaLabel:z.string().optional(),name:z.string().optional(),size:z.enum(["sm","default","lg"]).default("default"),onChange:z.function().optional(),onFocus:z.function().optional(),onBlur:z.function().optional(),onFocusChange:z.function().optional(),className:z.string().optional(),autoFocus:z.boolean().optional()});var $e=cva(["inline-flex items-center rounded-md border","bg-[var(--content-background)] text-[var(--content-foreground)]","transition-colors duration-200","focus-within:ring-2 focus-within:ring-[var(--ring)] focus-within:ring-offset-2","data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50"],{variants:{size:{sm:"h-9 text-sm",default:"h-10 text-base",lg:"h-12 text-lg"},isInvalid:{true:"border-[var(--destructive)] focus-within:ring-[var(--destructive)]",false:"border-[var(--input)] hover:border-[var(--input)]/80"}},defaultVariants:{size:"default",isInvalid:false}}),je=cva(["flex-1 bg-transparent text-center tabular-nums","min-w-0","focus:outline-none","[appearance:textfield]","[&::-webkit-outer-spin-button]:appearance-none","[&::-webkit-inner-spin-button]:appearance-none"],{variants:{size:{sm:"px-2 text-sm",default:"px-3 text-base",lg:"px-4 text-lg"}},defaultVariants:{size:"default"}}),X=cva(["flex items-center justify-center","transition-colors duration-150","select-none","hover:bg-[var(--accent)] hover:text-[var(--accent-foreground)]","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]","focus-visible:ring-inset","active:bg-[var(--accent)]/80","disabled:pointer-events-none disabled:opacity-50"],{variants:{size:{sm:"min-w-8 min-h-8 text-sm",default:"min-w-10 min-h-10 text-base",lg:"min-w-12 min-h-12 text-lg"},position:{left:"rounded-l-md border-r border-[var(--input)]",right:"rounded-r-md border-l border-[var(--input)]",top:"rounded-tr-md border-b border-l border-[var(--input)] h-1/2",bottom:"rounded-br-md border-l border-[var(--input)] h-1/2"}},defaultVariants:{size:"default"}}),qe=cva(["block font-medium text-[var(--content-foreground)]","mb-1.5",'data-[required]:after:content-["*"] data-[required]:after:ml-0.5',"data-[required]:after:text-[var(--destructive)]"],{variants:{size:{sm:"text-sm",default:"text-sm",lg:"text-base"}},defaultVariants:{size:"default"}}),Ye=cva(["text-[var(--menu-muted)]","mt-1"],{variants:{size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{size:"default"}}),We=cva(["flex items-center gap-1","text-[var(--destructive)]","mt-1"],{variants:{size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{size:"default"}});var ae=forwardRef(({label:p,description:o,errorMessage:f,size:n="default",stepperLayout:l="sides",allowNegative:e=false,incrementAriaLabel:a,decrementAriaLabel:i,minValue:t,maxValue:s,className:v,isInvalid:c,isRequired:P,isDisabled:R,isReadOnly:h,...E},L)=>{let y=t??(e?Ue:ke),b=s??Oe,r=l!=="hidden"&&!h,g=l==="stacked";return jsxs(NumberField,{ref:L,className:N("group flex flex-col",v),minValue:y,maxValue:b,isInvalid:c,isRequired:P,isDisabled:R,isReadOnly:h,...E,children:[jsx(Label,{className:N(qe({size:n})),"data-required":P||void 0,children:p}),jsxs(Group,{className:N($e({size:n,isInvalid:c??false}),g&&"pr-0"),children:[r&&!g&&jsx(M,{slot:"decrement",variant:"ghost",className:"!min-h-0 !min-w-0",buttonVisualClassName:N(X({size:n,position:"left"})),"aria-label":i??"Decrease value",children:jsx(Minus,{className:"h-4 w-4","aria-hidden":"true"})}),jsx(Input,{className:N(je({size:n}))}),r&&g&&jsxs("div",{className:"flex flex-col h-full",children:[jsx(M,{slot:"increment",variant:"ghost",className:"!min-h-0 !min-w-0",buttonVisualClassName:N(X({size:n,position:"top"})),"aria-label":a??"Increase value",children:jsx(Plus,{className:"h-3 w-3","aria-hidden":"true"})}),jsx(M,{slot:"decrement",variant:"ghost",className:"!min-h-0 !min-w-0",buttonVisualClassName:N(X({size:n,position:"bottom"})),"aria-label":i??"Decrease value",children:jsx(Minus,{className:"h-3 w-3","aria-hidden":"true"})})]}),r&&!g&&jsx(M,{slot:"increment",variant:"ghost",className:"!min-h-0 !min-w-0",buttonVisualClassName:N(X({size:n,position:"right"})),"aria-label":a??"Increase value",children:jsx(Plus,{className:"h-4 w-4","aria-hidden":"true"})})]}),o&&jsx(Text,{slot:"description",className:N(Ye({size:n})),children:o}),jsx(FieldError,{className:N(We({size:n})),children:f})]})});ae.displayName="NumberField";var he=forwardRef(function({isOpen:o,onOpenChange:f,groupLabel:n,leftPanel:l,rightPanel:e,leftSize:a,rightSize:i,onSizesChange:t,presets:s,triggerRef:v,direction:c},P){let[R,h]=useState({left:a,right:i}),E=useRef(false);useEffect(()=>{o&&!E.current&&h({left:a,right:i}),E.current=o;},[o,a,i]);let L=useCallback(d=>{if(d===null)return;let u=Math.max(l.collapsible?0:l.minSize,Math.min(l.maxSize,d)),x=100-u,V=e.collapsible?0:e.minSize,T=e.maxSize;x<V||x>T||t(u,x);},[l,e,t]),y=useCallback(d=>{if(d===null)return;let u=Math.max(e.collapsible?0:e.minSize,Math.min(e.maxSize,d)),x=100-u,V=l.collapsible?0:l.minSize,T=l.maxSize;x<V||x>T||t(x,u);},[l,e,t]),b=useCallback(d=>{let u=d.sizes[0],x=d.sizes[1];u!==void 0&&x!==void 0&&t(u,x);},[t]),r=useCallback(()=>{t(R.left,R.right),f(false);},[t,f,R]),g=useCallback(()=>{f(false);},[f]);return o?jsxs(DialogTrigger,{isOpen:o,onOpenChange:f,children:[jsx(Button,{className:"sr-only",children:"Open resize controls"}),jsx(Popover,{triggerRef:v,placement:c==="horizontal"?"bottom":"right",offset:8,className:N("w-72","rounded-lg border border-[var(--border)]","bg-[var(--popover)] text-[var(--popover-foreground)]","shadow-lg","outline-none","animate-in fade-in-0 zoom-in-95","data-[exiting]:animate-out data-[exiting]:fade-out-0 data-[exiting]:zoom-out-95"),children:jsxs(Dialog,{className:"outline-none",children:[jsxs("div",{className:"flex items-center justify-between border-b border-[var(--border)] px-4 py-3",children:[jsxs("h3",{className:"text-sm font-medium",children:["Resize: ",n]}),jsx(Button,{onPress:g,className:N("inline-flex items-center justify-center rounded-md","min-h-[44px] min-w-[44px]","text-[var(--menu-muted)]","hover:bg-[var(--accent)] hover:text-[var(--accent-foreground)]","focus-visible:outline-none focus-visible:ring-2","focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2"),"aria-label":"Close",children:jsx(X$1,{className:"h-4 w-4"})})]}),jsxs("div",{className:"space-y-4 px-4 py-4",children:[jsx("div",{children:jsx(ae,{label:`${l.name} (%)`,value:Math.round(a),onChange:L,minValue:l.collapsible?0:l.minSize,maxValue:l.maxSize,step:1,stepperLayout:"sides"})}),jsx("div",{children:jsx(ae,{label:`${e.name} (%)`,value:Math.round(i),onChange:y,minValue:e.collapsible?0:e.minSize,maxValue:e.maxSize,step:1,stepperLayout:"sides"})}),s&&s.length>0&&jsxs("div",{className:"border-t border-[var(--border)] pt-4",children:[jsx("div",{className:"mb-2 text-xs font-medium text-[var(--menu-muted)]",children:"Presets"}),jsx("div",{className:"flex flex-wrap gap-2",children:s.map((d,u)=>jsx(M,{variant:"outline",size:"sm",onPress:()=>b(d),children:d.label},u))})]})]}),jsx("div",{className:"flex justify-end border-t border-[var(--border)] px-4 py-3",children:jsx(M,{variant:"ghost",size:"sm",onPress:r,children:"Cancel"})})]})})]}):null});he.displayName="ResizablePopover";var Qe=forwardRef(function({withHandle:o=true,presets:f,disabled:n=false,className:l},e){let{direction:a,groupLabel:i,sizes:t,setSizes:s,panels:v,announce:c,containerRef:P}=W(),R=useRef(null),h=e||R,[E,L]=useState(0);useEffect(()=>{let D=h.current,_=P.current;if(!D||!_)return;let k=_.querySelectorAll('[role="slider"]'),ze=0;k.forEach((et,tt)=>{et===D&&(ze=tt);}),L(ze);},[P,h]);let y=E,b=E+1,r=v[y],g=v[b],w=t[y]??50,d=t[b]??50,[u,x]=useState(false),V=useCallback((D,_)=>{let k=[...t];k[y]=D,k[b]=_,s(k);},[t,s,y,b]),{isDragging:T,handlePointerDown:F,handleKeyDown:K}=De({direction:a,sizes:t,setSizes:s,panels:v,containerRef:P,leftPanelIndex:y,rightPanelIndex:b,disabled:n,announce:c,groupLabel:i,onOpenPopover:()=>x(true)}),G=r&&g?`Resize handle between ${r.name} and ${g.name} in ${i}`:`Resize handle in ${i}`,S=a==="horizontal"?GripVertical:GripHorizontal,C=r??{name:"Panel 1",minSize:U,maxSize:$,collapsible:false},I=g??{name:"Panel 2",minSize:U,maxSize:$,collapsible:false};return jsxs(Fragment,{children:[jsx("div",{ref:h,role:"slider",tabIndex:n?-1:0,"aria-label":G,"aria-valuenow":Math.round(w),"aria-valuemin":r?.collapsible?0:r?.minSize??0,"aria-valuemax":r?.maxSize??100,"aria-orientation":a,"aria-disabled":n,"data-direction":a,"data-dragging":T,"data-disabled":n,onPointerDown:F,onKeyDown:K,className:N(se({direction:a,disabled:n,isDragging:T}),l),children:o&&jsx("div",{className:N(le({direction:a})),"aria-hidden":"true",children:jsx(S,{className:"h-4 w-4"})})}),jsx(he,{isOpen:u,onOpenChange:x,groupLabel:i,leftPanel:C,rightPanel:I,leftSize:w,rightSize:d,onSizesChange:V,presets:f,triggerRef:h,direction:a})]})});Qe.displayName="ResizableHandle";export{$ as DEFAULT_MAX_SIZE,U as DEFAULT_MIN_SIZE,te as LONG_PRESS_THRESHOLD,Qe as ResizableHandle,ct as ResizableHandlePropsSchema,Ve as ResizablePanel,ye as ResizablePanelGroup,lt as ResizablePanelGroupPropsSchema,ut as ResizablePanelPropsSchema,Ee as ResizePresetSchema,le as resizableGripVariants,se as resizableHandleVariants,W as useResizableContext};//# sourceMappingURL=index.mjs.map
|
|
2
|
+
import {createContext,forwardRef,useImperativeHandle,useRef,useState,useEffect,memo,useId,useCallback,useContext}from'react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {z}from'zod';import {cva}from'class-variance-authority';import {Loader2,Zap,Minus,Plus,X as X$1,GripVertical,GripHorizontal}from'lucide-react';import {Button,NumberField,Label,Group,Input,Text,FieldError,DialogTrigger,Popover,Dialog}from'react-aria-components';function N(...p){return twMerge(clsx(p))}var ee=createContext(null);ee.displayName="ResizableContext";function W(){let p=useContext(ee);if(!p)throw new Error("useResizableContext must be used within a ResizablePanelGroup. Make sure ResizablePanel and ResizableHandle are children of ResizablePanelGroup.");return p}function Se({direction:p,groupLabel:o,sizes:f,onSizesChange:n}){let[l,e]=useState([]),[a,i]=useState([]),t=useRef(null),s=useRef(null),v=useRef(null),c=useRef(false),P=f!==void 0,R=P?f:l,g=useCallback(b=>{P?n?.(b):e(b);},[P,n]),E=useCallback((b,r)=>{i(z=>{let w=[...z];return w[b]=r,w});},[]),L=useCallback(b=>{i(r=>{let z=[...r];return delete z[b],z.filter(Boolean)});},[]);useEffect(()=>{if(P||c.current)return;let r=a.filter(Boolean).length;if(r<2)return;if(R.length<r||R.some(w=>w===void 0)){let w=[],d=100/r;for(let u=0;u<r;u++)w[u]=d;c.current=true,e(w);}},[a,R,P]),useEffect(()=>()=>{v.current&&clearTimeout(v.current),s.current&&(document.body.removeChild(s.current),s.current=null);},[]);let y=useCallback(b=>{if(!s.current){let r=document.createElement("div");r.setAttribute("aria-live","polite"),r.setAttribute("aria-atomic","true"),r.className="sr-only",r.style.cssText="position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;",document.body.appendChild(r),s.current=r;}s.current.textContent=b,v.current&&clearTimeout(v.current),v.current=setTimeout(()=>{s.current&&(s.current.textContent="");},1e3);},[]);return {direction:p,groupLabel:o,sizes:R,setSizes:g,panels:a,registerPanel:E,unregisterPanel:L,announce:y,containerRef:t}}var ye=forwardRef(function({direction:o,groupLabel:f,sizes:n,onSizesChange:l,className:e,children:a},i){let t=Se({direction:o,groupLabel:f,sizes:n,onSizesChange:l});return useImperativeHandle(i,()=>t.containerRef.current,[t.containerRef]),jsx(ee.Provider,{value:t,children:jsx("div",{ref:t.containerRef,role:"group","aria-label":`${f}, ${o}`,"data-direction":o,className:N("flex h-full w-full",o==="horizontal"?"flex-row":"flex-col",e),children:a})})});ye.displayName="ResizablePanelGroup";var U=10,$=90,te=300,Ee=z.object({label:z.string().min(1),sizes:z.array(z.number().min(0).max(100))}),lt=z.object({direction:z.enum(["horizontal","vertical"]),groupLabel:z.string().min(1),sizes:z.array(z.number().min(0).max(100)).optional(),onSizesChange:z.function().optional(),className:z.string().optional(),children:z.custom()}),ut=z.object({name:z.string().min(1),defaultSize:z.number().min(0).max(100).optional(),minSize:z.number().min(0).max(100).optional().default(U),maxSize:z.number().min(0).max(100).optional().default($),collapsible:z.boolean().optional().default(false),onCollapse:z.function().optional(),onExpand:z.function().optional(),onResize:z.function().optional(),className:z.string().optional(),children:z.custom()}),ct=z.object({withHandle:z.boolean().optional().default(true),presets:z.array(Ee).optional(),disabled:z.boolean().optional().default(false),className:z.string().optional()}),se=cva(["relative flex items-center justify-center","shrink-0","bg-transparent","transition-colors duration-150","focus-visible:outline-none focus-visible:ring-2","focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2","touch-none select-none"],{variants:{direction:{horizontal:["w-3 min-w-[12px]","cursor-col-resize","hover:bg-[var(--accent)]/50","before:absolute before:inset-y-0 before:-inset-x-4","before:min-w-[44px]"],vertical:["h-3 min-h-[12px]","cursor-row-resize","hover:bg-[var(--accent)]/50","before:absolute before:inset-x-0 before:-inset-y-4","before:min-h-[44px]"]},disabled:{true:"cursor-not-allowed opacity-50 pointer-events-none",false:""},isDragging:{true:"bg-[var(--accent)]",false:""}},defaultVariants:{direction:"horizontal",disabled:false,isDragging:false}}),le=cva(["flex items-center justify-center","rounded-full","bg-[var(--border)]","text-[var(--menu-muted)]"],{variants:{direction:{horizontal:"h-8 w-1",vertical:"h-1 w-8"}},defaultVariants:{direction:"horizontal"}});var Ve=forwardRef(function({name:o,defaultSize:f,minSize:n=U,maxSize:l=$,collapsible:e=false,onCollapse:a,onExpand:i,onResize:t,className:s,children:v},c){let{sizes:P,registerPanel:R,unregisterPanel:g,containerRef:E}=W(),L=useRef(null),[y,b]=useState(-1),r=useRef(null),z=useRef(false),w=useRef(-1);useEffect(()=>{let u=L.current,x=E.current;if(!u||!x)return;let V=x.querySelectorAll("[data-resizable-panel]"),T=-1;for(let F=0;F<V.length;F++)if(V[F]===u){T=F;break}if(T!==-1)return y!==T&&b(T),z.current||(z.current=true,w.current=T,R(T,{name:o,minSize:n,maxSize:l,collapsible:e})),()=>{z.current&&(g(w.current),z.current=false);}},[E,R,g,o,n,l,e,y]);let d=y>=0?P[y]??50:50;return useEffect(()=>{if(r.current===null){r.current=d;return}let u=r.current===0,x=d===0;!u&&x&&a?a():u&&!x&&i&&i(),t&&r.current!==d&&t(d),r.current=d;},[d,a,i,t]),jsx("div",{ref:u=>{L.current=u,typeof c=="function"?c(u):c&&(c.current=u);},role:"region","aria-label":o,"data-resizable-panel":"","data-panel-name":o,"data-panel-index":y,"data-collapsed":d===0,style:{flexBasis:`${d}%`,flexGrow:0,flexShrink:0,overflow:"hidden"},className:N("relative",s),children:v})});Ve.displayName="ResizablePanel";function Te(p,o,f){return Math.max(o,Math.min(f,p))}function Le(p,o,f,n,l){let e=[...p],a=o[f],i=o[n];if(!a||!i)return p;let t=p[f]??50,s=p[n]??50,v=t+l,c=s-l,P=a.collapsible?0:a.minSize,R=a.maxSize,g=i.collapsible?0:i.minSize,E=i.maxSize;return v=Te(v,P,R),c=t+s-v,c=Te(c,g,E),v=t+s-c,e[f]=v,e[n]=c,e}function De({direction:p,sizes:o,setSizes:f,panels:n,containerRef:l,leftPanelIndex:e,rightPanelIndex:a,disabled:i=false,announce:t,groupLabel:s,onOpenPopover:v}){let[c,P]=useState(false),R=useRef(null),g=useRef(null),E=useRef(0),L=useRef(false),y=useRef(n),b=useRef(o),r=useRef(f),z=useRef(()=>{}),w=useRef(()=>{});useEffect(()=>{y.current=n,b.current=o,r.current=f;},[n,o,f]);let d=useCallback(()=>{let S=l.current;return S?p==="horizontal"?S.offsetWidth:S.offsetHeight:0},[l,p]),u=useCallback(S=>{let C=d();return C===0?0:S/C*100},[d]),x=useCallback(S=>{z.current(S);},[]),V=useCallback(()=>{w.current();},[]),T=useCallback(S=>{if(!R.current||i)return;let I=(p==="horizontal"?S.clientX:S.clientY)-R.current.position,D=u(I),_=Le(R.current.sizes,y.current,e,a,D);r.current(_);},[p,i,e,u,a]),F=useCallback(()=>{if(g.current&&(clearTimeout(g.current),g.current=null),Date.now()-E.current<te&&!L.current&&v&&!i&&v(),c){P(false);let I=y.current[e],D=Math.round(b.current[e]??50);t&&I&&s&&t(`${I.name} in ${s} resized to ${D} percent`);}R.current=null,L.current=false,document.removeEventListener("pointermove",x),document.removeEventListener("pointerup",V),document.removeEventListener("pointercancel",V),document.body.style.cursor="",document.body.style.userSelect="";},[t,i,s,c,e,v,x,V]);useEffect(()=>{z.current=T,w.current=F;});let K=useCallback(S=>{if(i)return;S.preventDefault();let C=p==="horizontal"?S.clientX:S.clientY;E.current=Date.now(),L.current=false,R.current={position:C,sizes:[...o],containerSize:d()},g.current=setTimeout(()=>{L.current=true,P(true),document.body.style.cursor=p==="horizontal"?"col-resize":"row-resize",document.body.style.userSelect="none";},te),document.addEventListener("pointermove",x),document.addEventListener("pointerup",V),document.addEventListener("pointercancel",V),S.pointerType==="mouse"&&(g.current&&(clearTimeout(g.current),g.current=null),L.current=true,P(true),document.body.style.cursor=p==="horizontal"?"col-resize":"row-resize",document.body.style.userSelect="none");},[p,i,d,x,V,o]),G=useCallback(S=>{if(i)return;let C=S.shiftKey?10:1,I=0;switch(S.key){case "ArrowLeft":case "ArrowUp":I=-C;break;case "ArrowRight":case "ArrowDown":I=C;break;case "Home":{let D=n[e];D&&(I=(D.collapsible?0:D.minSize)-(o[e]??50));break}case "End":{let D=n[e];D&&(I=D.maxSize-(o[e]??50));break}case "Enter":case " ":S.preventDefault(),v?.();return;default:return}if(I!==0){S.preventDefault();let D=Le(o,n,e,a,I);f(D);let _=n[e],k=Math.round(D[e]??50);t&&_&&s&&t(`${_.name} in ${s} resized to ${k} percent`);}},[t,i,s,e,v,n,a,f,o]);return useEffect(()=>{let S=x,C=V;return ()=>{g.current&&clearTimeout(g.current),document.removeEventListener("pointermove",S),document.removeEventListener("pointerup",C),document.removeEventListener("pointercancel",C);}},[x,V]),{isDragging:c,handlePointerDown:K,handleKeyDown:G}}var ce=cva("inline-flex justify-center min-h-[44px] min-w-[44px] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50",{variants:{fullWidth:{true:"w-full",false:""},inVerticalGroup:{true:"items-stretch",false:"items-center"}},defaultVariants:{fullWidth:false,inVerticalGroup:false}}),de=cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 relative cursor-pointer",{variants:{variant:{default:"bg-[var(--primary-action)] text-[var(--primary-action-foreground)] shadow-md hover:bg-[var(--primary-action-hover)] data-[pressed]:bg-[var(--primary-action)]/80",destructive:"bg-[var(--destructive-background)] text-[var(--destructive-foreground)] shadow-md hover:bg-[var(--destructive-background)]/90 data-[pressed]:bg-[var(--destructive-background)]/80",outline:"border border-[var(--input-border)] bg-[var(--page-background)] hover:bg-[var(--input-border)] data-[pressed]:bg-[var(--input-border)]",secondary:"bg-[var(--secondary)] text-[var(--secondary-foreground)] shadow-md hover:bg-[var(--secondary)]/80 data-[pressed]:bg-[var(--secondary)]/70",ghost:"hover:bg-[var(--accent)] hover:text-[var(--accent-foreground)] data-[pressed]:bg-[var(--accent)]",link:"text-[var(--text-link)] underline-offset-4 hover:underline data-[pressed]:text-[var(--text-link-hover)]"},fullWidth:{true:"w-full",false:""},visualSize:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3 text-xs",lg:"h-11 rounded-md px-8",icon:"h-10 w-10",dot:"h-5 w-5 rounded-full p-0 min-h-0 min-w-0"},paywall:{true:"!bg-[var(--paywall)] !text-[var(--paywall-foreground)] !shadow-md hover:!bg-[var(--paywall)]/90 !cursor-not-allowed !border-transparent",false:""}},defaultVariants:{variant:"default",visualSize:"default",paywall:false}});var me="data-[pressed]:scale-[0.97]";var pe="data-[hovered]:shadow-md";var re="hc:data-[hovered]:outline hc:data-[hovered]:outline-2 hc:data-[hovered]:outline-foreground",oe="hc:data-[pressed]:outline hc:data-[pressed]:outline-2 hc:data-[pressed]:outline-offset-1 hc:data-[pressed]:outline-foreground";var _e=createContext(null);_e.displayName="ButtonGroupContext";function Me(){return useContext(_e)}var Fe=createContext(null);Fe.displayName="ButtonGroupItemContext";function Ge(){return useContext(Fe)}cva("inline-flex items-center gap-0",{variants:{orientation:{horizontal:"flex-row",vertical:"flex-col w-full"}},defaultVariants:{orientation:"horizontal"}});var Be=cva("",{variants:{orientation:{horizontal:"min-w-[44px]",vertical:"flex min-h-[44px]"},position:{first:"",middle:"",last:"",only:""}},compoundVariants:[{orientation:"horizontal",position:"first",className:"rounded-r-none border-r-0"},{orientation:"horizontal",position:"middle",className:"rounded-none border-r-0"},{orientation:"horizontal",position:"last",className:"rounded-l-none"},{orientation:"vertical",position:"first",className:"rounded-b-none border-b-0"},{orientation:"vertical",position:"middle",className:"rounded-none border-b-0"},{orientation:"vertical",position:"last",className:"rounded-t-none"}],defaultVariants:{orientation:"horizontal",position:"only"}});cva("bg-[var(--border)]",{variants:{orientation:{horizontal:"w-px h-6 mx-1",vertical:"h-px w-full my-1"}},defaultVariants:{orientation:"horizontal"}});var M=memo(forwardRef(({className:p,buttonVisualClassName:o,variant:f,size:n,visualSize:l,fullWidth:e,loading:a=false,loadingText:i="Loading...",shortcut:t,children:s,isDisabled:v,paywall:c=false,paywallRedirect:P,paywallDescription:R,onPress:g,...E},L)=>{let y=useId(),b=Me(),r=Ge(),z=f??b?.variant??"default",w=n??b?.size,d=v??b?.isDisabled??false,u=b?.orientation==="vertical",x=e||u,V=r?Be({orientation:b?.orientation??"horizontal",position:r.position}):"",T=l??w??"default";return process.env.NODE_ENV!=="production"&&(T==="dot"||T==="icon")&&!E["aria-label"]&&!s&&console.warn('[Button] visualSize="dot" or "icon" requires aria-label when no visible text is provided (WCAG 1.1.1)'),jsx(Button,{ref:L,isDisabled:d||a||void 0,"aria-disabled":c?true:void 0,"aria-describedby":c?y:void 0,onPress:G=>{if(c){P&&window.open(P,"_blank","noopener,noreferrer");return}g?.(G);},className:N(ce({fullWidth:x,inVerticalGroup:u}),p),...E,children:G=>jsxs("span",{className:N(de({variant:z,visualSize:T,paywall:c,fullWidth:x}),V,o,me,pe,re,oe),"data-pressed":G.isPressed||void 0,children:[a&&jsxs(Fragment,{children:[jsx(Loader2,{className:"motion-safe:animate-spin","aria-hidden":"true"}),jsx("span",{className:"sr-only","aria-live":"polite",children:i})]}),!a&&s,c&&jsx(Zap,{"data-testid":"zap-icon","aria-hidden":"true",className:"ml-1"}),c&&jsxs("span",{id:y,className:"sr-only",children:["Premium feature: ",R||"Upgrade required to access this feature"]}),G.isFocusVisible&&t&&jsx("kbd",{className:"ml-auto hidden text-xs opacity-60 lg:inline",children:t}),G.isPressed&&jsx("span",{className:"absolute inset-0 rounded-[inherit] bg-current opacity-10 motion-safe:animate-in motion-safe:zoom-in-95","aria-hidden":"true"})]})})}));M.displayName="Button";var Oe=4294967295,ke=0,Ue=-2147483647;z.object({value:z.number().nullable().optional(),defaultValue:z.number().optional(),minValue:z.number().optional(),maxValue:z.number().optional(),allowNegative:z.boolean().optional(),step:z.number().positive().optional(),formatOptions:z.custom().optional(),isDisabled:z.boolean().optional(),isReadOnly:z.boolean().optional(),isRequired:z.boolean().optional(),isInvalid:z.boolean().optional(),isWheelDisabled:z.boolean().optional(),validate:z.function().optional(),validationBehavior:z.enum(["native","aria"]).default("native"),label:z.string(),description:z.string().optional(),errorMessage:z.union([z.string(),z.function()]).optional(),stepperLayout:z.enum(["sides","stacked","hidden"]).default("sides"),incrementAriaLabel:z.string().optional(),decrementAriaLabel:z.string().optional(),name:z.string().optional(),size:z.enum(["sm","default","lg"]).default("default"),onChange:z.function().optional(),onFocus:z.function().optional(),onBlur:z.function().optional(),onFocusChange:z.function().optional(),className:z.string().optional(),autoFocus:z.boolean().optional()});var $e=cva(["inline-flex items-center rounded-md border","bg-[var(--content-background)] text-[var(--content-foreground)]","transition-colors duration-200","focus-within:ring-2 focus-within:ring-[var(--ring)] focus-within:ring-offset-2","data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50"],{variants:{size:{sm:"h-9 text-sm",default:"h-10 text-base",lg:"h-12 text-lg"},isInvalid:{true:"border-[var(--destructive-background)] focus-within:ring-[var(--destructive-background)]",false:"border-[var(--input-border)] hover:border-[var(--input-border)]/80"}},defaultVariants:{size:"default",isInvalid:false}}),je=cva(["flex-1 bg-transparent text-center tabular-nums","min-w-0","focus:outline-none","[appearance:textfield]","[&::-webkit-outer-spin-button]:appearance-none","[&::-webkit-inner-spin-button]:appearance-none"],{variants:{size:{sm:"px-2 text-sm",default:"px-3 text-base",lg:"px-4 text-lg"}},defaultVariants:{size:"default"}}),X=cva(["flex items-center justify-center","transition-colors duration-150","select-none","hover:bg-[var(--accent)] hover:text-[var(--accent-foreground)]","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]","focus-visible:ring-inset","active:bg-[var(--accent)]/80","disabled:pointer-events-none disabled:opacity-50"],{variants:{size:{sm:"min-w-8 min-h-8 text-sm",default:"min-w-10 min-h-10 text-base",lg:"min-w-12 min-h-12 text-lg"},position:{left:"rounded-l-md border-r border-[var(--input-border)]",right:"rounded-r-md border-l border-[var(--input-border)]",top:"rounded-tr-md border-b border-l border-[var(--input-border)] h-1/2",bottom:"rounded-br-md border-l border-[var(--input-border)] h-1/2"}},defaultVariants:{size:"default"}}),qe=cva(["block font-medium text-[var(--content-foreground)]","mb-1.5",'data-[required]:after:content-["*"] data-[required]:after:ml-0.5',"data-[required]:after:text-[var(--destructive-background)]"],{variants:{size:{sm:"text-sm",default:"text-sm",lg:"text-base"}},defaultVariants:{size:"default"}}),Ye=cva(["text-[var(--menu-muted)]","mt-1"],{variants:{size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{size:"default"}}),We=cva(["flex items-center gap-1","text-[var(--destructive-background)]","mt-1"],{variants:{size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{size:"default"}});var ae=forwardRef(({label:p,description:o,errorMessage:f,size:n="default",stepperLayout:l="sides",allowNegative:e=false,incrementAriaLabel:a,decrementAriaLabel:i,minValue:t,maxValue:s,className:v,isInvalid:c,isRequired:P,isDisabled:R,isReadOnly:g,...E},L)=>{let y=t??(e?Ue:ke),b=s??Oe,r=l!=="hidden"&&!g,z=l==="stacked";return jsxs(NumberField,{ref:L,className:N("group flex flex-col",v),minValue:y,maxValue:b,isInvalid:c,isRequired:P,isDisabled:R,isReadOnly:g,...E,children:[jsx(Label,{className:N(qe({size:n})),"data-required":P||void 0,children:p}),jsxs(Group,{className:N($e({size:n,isInvalid:c??false}),z&&"pr-0"),children:[r&&!z&&jsx(M,{slot:"decrement",variant:"ghost",className:"!min-h-0 !min-w-0",buttonVisualClassName:N(X({size:n,position:"left"})),"aria-label":i??"Decrease value",children:jsx(Minus,{className:"h-4 w-4","aria-hidden":"true"})}),jsx(Input,{className:N(je({size:n}))}),r&&z&&jsxs("div",{className:"flex flex-col h-full",children:[jsx(M,{slot:"increment",variant:"ghost",className:"!min-h-0 !min-w-0",buttonVisualClassName:N(X({size:n,position:"top"})),"aria-label":a??"Increase value",children:jsx(Plus,{className:"h-3 w-3","aria-hidden":"true"})}),jsx(M,{slot:"decrement",variant:"ghost",className:"!min-h-0 !min-w-0",buttonVisualClassName:N(X({size:n,position:"bottom"})),"aria-label":i??"Decrease value",children:jsx(Minus,{className:"h-3 w-3","aria-hidden":"true"})})]}),r&&!z&&jsx(M,{slot:"increment",variant:"ghost",className:"!min-h-0 !min-w-0",buttonVisualClassName:N(X({size:n,position:"right"})),"aria-label":a??"Increase value",children:jsx(Plus,{className:"h-4 w-4","aria-hidden":"true"})})]}),o&&jsx(Text,{slot:"description",className:N(Ye({size:n})),children:o}),jsx(FieldError,{className:N(We({size:n})),children:f})]})});ae.displayName="NumberField";var ge=forwardRef(function({isOpen:o,onOpenChange:f,groupLabel:n,leftPanel:l,rightPanel:e,leftSize:a,rightSize:i,onSizesChange:t,presets:s,triggerRef:v,direction:c},P){let[R,g]=useState({left:a,right:i}),E=useRef(false);useEffect(()=>{o&&!E.current&&g({left:a,right:i}),E.current=o;},[o,a,i]);let L=useCallback(d=>{if(d===null)return;let u=Math.max(l.collapsible?0:l.minSize,Math.min(l.maxSize,d)),x=100-u,V=e.collapsible?0:e.minSize,T=e.maxSize;x<V||x>T||t(u,x);},[l,e,t]),y=useCallback(d=>{if(d===null)return;let u=Math.max(e.collapsible?0:e.minSize,Math.min(e.maxSize,d)),x=100-u,V=l.collapsible?0:l.minSize,T=l.maxSize;x<V||x>T||t(x,u);},[l,e,t]),b=useCallback(d=>{let u=d.sizes[0],x=d.sizes[1];u!==void 0&&x!==void 0&&t(u,x);},[t]),r=useCallback(()=>{t(R.left,R.right),f(false);},[t,f,R]),z=useCallback(()=>{f(false);},[f]);return o?jsxs(DialogTrigger,{isOpen:o,onOpenChange:f,children:[jsx(Button,{className:"sr-only",children:"Open resize controls"}),jsx(Popover,{triggerRef:v,placement:c==="horizontal"?"bottom":"right",offset:8,className:N("w-72","rounded-lg border border-[var(--border)]","bg-[var(--content-background)] text-[var(--content-foreground)]","shadow-lg","outline-none","animate-in fade-in-0 zoom-in-95","data-[exiting]:animate-out data-[exiting]:fade-out-0 data-[exiting]:zoom-out-95"),children:jsxs(Dialog,{className:"outline-none",children:[jsxs("div",{className:"flex items-center justify-between border-b border-[var(--border)] px-4 py-3",children:[jsxs("h3",{className:"text-sm font-medium",children:["Resize: ",n]}),jsx(Button,{onPress:z,className:N("inline-flex items-center justify-center rounded-md","min-h-[44px] min-w-[44px]","text-[var(--menu-muted)]","hover:bg-[var(--accent)] hover:text-[var(--accent-foreground)]","focus-visible:outline-none focus-visible:ring-2","focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2"),"aria-label":"Close",children:jsx(X$1,{className:"h-4 w-4"})})]}),jsxs("div",{className:"space-y-4 px-4 py-4",children:[jsx("div",{children:jsx(ae,{label:`${l.name} (%)`,value:Math.round(a),onChange:L,minValue:l.collapsible?0:l.minSize,maxValue:l.maxSize,step:1,stepperLayout:"sides"})}),jsx("div",{children:jsx(ae,{label:`${e.name} (%)`,value:Math.round(i),onChange:y,minValue:e.collapsible?0:e.minSize,maxValue:e.maxSize,step:1,stepperLayout:"sides"})}),s&&s.length>0&&jsxs("div",{className:"border-t border-[var(--border)] pt-4",children:[jsx("div",{className:"mb-2 text-xs font-medium text-[var(--menu-muted)]",children:"Presets"}),jsx("div",{className:"flex flex-wrap gap-2",children:s.map((d,u)=>jsx(M,{variant:"outline",size:"sm",onPress:()=>b(d),children:d.label},u))})]})]}),jsx("div",{className:"flex justify-end border-t border-[var(--border)] px-4 py-3",children:jsx(M,{variant:"ghost",size:"sm",onPress:r,children:"Cancel"})})]})})]}):null});ge.displayName="ResizablePopover";var Qe=forwardRef(function({withHandle:o=true,presets:f,disabled:n=false,className:l},e){let{direction:a,groupLabel:i,sizes:t,setSizes:s,panels:v,announce:c,containerRef:P}=W(),R=useRef(null),g=e||R,[E,L]=useState(0);useEffect(()=>{let D=g.current,_=P.current;if(!D||!_)return;let k=_.querySelectorAll('[role="slider"]'),he=0;k.forEach((et,tt)=>{et===D&&(he=tt);}),L(he);},[P,g]);let y=E,b=E+1,r=v[y],z=v[b],w=t[y]??50,d=t[b]??50,[u,x]=useState(false),V=useCallback((D,_)=>{let k=[...t];k[y]=D,k[b]=_,s(k);},[t,s,y,b]),{isDragging:T,handlePointerDown:F,handleKeyDown:K}=De({direction:a,sizes:t,setSizes:s,panels:v,containerRef:P,leftPanelIndex:y,rightPanelIndex:b,disabled:n,announce:c,groupLabel:i,onOpenPopover:()=>x(true)}),G=r&&z?`Resize handle between ${r.name} and ${z.name} in ${i}`:`Resize handle in ${i}`,S=a==="horizontal"?GripVertical:GripHorizontal,C=r??{name:"Panel 1",minSize:U,maxSize:$,collapsible:false},I=z??{name:"Panel 2",minSize:U,maxSize:$,collapsible:false};return jsxs(Fragment,{children:[jsx("div",{ref:g,role:"slider",tabIndex:n?-1:0,"aria-label":G,"aria-valuenow":Math.round(w),"aria-valuemin":r?.collapsible?0:r?.minSize??0,"aria-valuemax":r?.maxSize??100,"aria-orientation":a,"aria-disabled":n,"data-direction":a,"data-dragging":T,"data-disabled":n,onPointerDown:F,onKeyDown:K,className:N(se({direction:a,disabled:n,isDragging:T}),l),children:o&&jsx("div",{className:N(le({direction:a})),"aria-hidden":"true",children:jsx(S,{className:"h-4 w-4"})})}),jsx(ge,{isOpen:u,onOpenChange:x,groupLabel:i,leftPanel:C,rightPanel:I,leftSize:w,rightSize:d,onSizesChange:V,presets:f,triggerRef:g,direction:a})]})});Qe.displayName="ResizableHandle";export{$ as DEFAULT_MAX_SIZE,U as DEFAULT_MIN_SIZE,te as LONG_PRESS_THRESHOLD,Qe as ResizableHandle,ct as ResizableHandlePropsSchema,Ve as ResizablePanel,ye as ResizablePanelGroup,lt as ResizablePanelGroupPropsSchema,ut as ResizablePanelPropsSchema,Ee as ResizePresetSchema,le as resizableGripVariants,se as resizableHandleVariants,W as useResizableContext};//# sourceMappingURL=index.mjs.map
|
|
3
3
|
//# sourceMappingURL=index.mjs.map
|