neba 1.19.0 → 1.20.0

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.
@@ -1 +1 @@
1
- "use client";import{jsx as e,jsxs as n}from"react/jsx-runtime";import*as t from"react";import{useMergedRef as r}from"../../internal/refs.js";import{beginPointerDrag as o,drawnScale as i}from"../../internal/drag.js";import{useLayoutEffectOnClient as a}from"../../internal/layout-effect.js";import{observeResize as l}from"../../internal/observe.js";import{cx as s,lengthUnit as c,toPixels as u,transitionClasses as f}from"../../internal/styles.js";import{useStyleDefaults as m}from"../../internal/defaults.js";import{panesMessages as d,useMessages as p}from"../../internal/i18n.js";const h="1 1 0%",g=/*@__PURE__*/t.createContext({flex:h}),x={xs:"basis-1",sm:"basis-1.5",md:"basis-2",lg:"basis-2.5",xl:"basis-3"},v={xs:4,sm:6,md:8,lg:10,xl:12};function b(e,n,t){if(null!=e)return"number"==typeof e?n*e/100:u(e,{percentOf:n,relativeTo:t})}function z(e,n,t){const r=e.map(e=>b(e.defaultSize,n,t)),o=r.reduce((e,n)=>e+(n??0),0),i=r.filter(e=>void 0===e).length,a=i>0?Math.max(0,n-o)/i:0,l=r.map(e=>Math.max(0,e??a)),s=l.reduce((e,n)=>e+n,0);return s<=0?l.map(()=>1/Math.max(1,l.length)):l.map(e=>e/s)}function y(e,n){return`calc((100% - ${n}px) * ${e.toFixed(6)})`}function w(e){if("string"!=typeof e)return!1;const n=c(e);return void 0!==n&&"%"!==n}function S(e,n){if(w(e))return`0 1 ${e}`;const t="number"==typeof e?e/100:"string"==typeof e?u(e,{percentOf:1}):void 0;return void 0===t?h:`0 1 ${y(Math.max(0,t),n)}`}export const Panes=/*@__PURE__*/t.forwardRef(function Panes(c,u){const{orientation:h="horizontal",resizable:$=!0,color:j="primary",size:M="md",onResize:R,onResizeEnd:A,handleLabel:E,locale:N,className:P,style:k,children:C,...D}=m(c,["size","locale"]),I=t.Children.toArray(C).filter(t.isValidElement),L=I.length,T=p(d,N),F=t.useId(),H=e=>I[e]?.props.id??`${F}-pane-${e}`,O=t.useRef(null),W=r(O,u),X=I.map(e=>e.props),Y=t.useRef([]);Y.current=X;const _="horizontal"===h,K=v[M]*Math.max(0,L-1),[U,V]=t.useState(null),q=(U&&U.length===L?U:null)??(X.some(e=>w(e.defaultSize))?null:z(X,100,null)),B=t.useRef(null);function G(e){const n=O.current,t=B.current;if(!$||!n||!t||void 0===t[e+1])return null;const r=(_?n.offsetWidth:n.offsetHeight)-K;if(r<=0)return null;const o=Y.current[e],i=Y.current[e+1],a=t[e]*r,l=a+t[e+1]*r,s=Math.max(b(o?.minSize,r,n)??0,l-(b(i?.maxSize,r,n)??l)),c=Math.min(b(o?.maxSize,r,n)??l,l-(b(i?.minSize,r,n)??0));return c<s?null:{root:n,current:t,extent:r,start:a,pair:l,resize(n){const o=Math.min(c,Math.max(s,a+n)),i=[...t];return i[e]=o/r,i[e+1]=(l-o)/r,V(i),R?.(i.map(e=>100*e)),i}}}t.useEffect(()=>{B.current=q}),a(()=>{const e=O.current;if(!e)return;const n=()=>{const n=(_?e.offsetWidth:e.offsetHeight)-K;n<=0||V(t=>t&&t.length===L?t:z(Y.current,n,e))};return n(),l(e,n)},[L,_,K]);const J=t.useRef(null);t.useEffect(()=>()=>J.current?.(),[]);const Q=s("group/handle relative z-1 flex shrink-0 grow-0 items-center justify-center",x[M],f,"focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:outline-offset-0",$?s(_?"cursor-col-resize":"cursor-row-resize","neba-hit","touch-none","hover:bg-(--n-soft) data-[dragging]:bg-(--n-soft)"):"");return e("div",{ref:W,className:s("flex h-full w-full",_?"flex-row":"flex-col","min-h-0 min-w-0",P),style:{"--n-accent":`var(--neba-${j}-accent)`,"--n-soft":`var(--neba-${j}-soft)`,"--n-ring":`var(--neba-${j}-ring)`,...k},...D,children:I.map((r,a)=>n(t.Fragment,{children:[a>0?e("div",{role:"separator","aria-label":"function"==typeof E?E(a-1):E??T.handle,"aria-controls":`${H(a-1)} ${H(a)}`,"aria-orientation":_?"vertical":"horizontal","aria-valuenow":q?Math.round(100*q[a-1]):void 0,"aria-valuemin":0,"aria-valuemax":100,"aria-disabled":!$||void 0,tabIndex:$?0:-1,className:Q,onPointerDown:e=>{0===e.button&&function(e,n){const t=G(e);if(!t)return;const r=n.currentTarget,a=_?n.clientX:n.clientY,l=_&&"rtl"===getComputedStyle(t.root).direction?-1:1,s=i(t.root)[_?"x":"y"];let c=t.current;J.current=o({target:r,pointerId:n.pointerId,onMove:e=>{const n=_?e.clientX:e.clientY;c=t.resize((n-a)/s*l)},onEnd:()=>{J.current=null,A?.(c.map(e=>100*e))}})}(a-1,e)},onKeyDown:e=>{const n=_&&"rtl"===getComputedStyle(e.currentTarget).direction,t=_?n?"ArrowRight":"ArrowLeft":"ArrowUp",r=_?n?"ArrowLeft":"ArrowRight":"ArrowDown";e.key!==t&&e.key!==r||(e.preventDefault(),function(e,n){const t=G(e);if(!t)return;const r=t.resize(n);A?.(r.map(e=>100*e))}(a-1,e.key===r?16:-16))},children:e("span",{"aria-hidden":"true",className:s("pointer-events-none bg-(--neba-border)",f,_?"h-full w-px":"h-px w-full",$?"group-hover/handle:bg-(--n-accent) group-focus-visible/handle:bg-(--n-accent) group-data-[dragging]/handle:bg-(--n-accent)":"")})}):null,e(g.Provider,{value:{flex:q?`0 0 ${y(q[a],K)}`:S(r.props.defaultSize,K)},children:void 0===r.props.id?t.cloneElement(r,{id:H(a)}):r})]},r.key??a))})});export const Pane=/*@__PURE__*/t.forwardRef(function Pane({defaultSize:n,minSize:r,maxSize:o,className:i,style:a,children:l,...c},u){const{flex:f}=t.useContext(g);return e("div",{ref:u,className:s("relative min-h-0 min-w-0 overflow-auto",i),style:{flex:f,...a},...c,children:l})});
1
+ "use client";import{jsx as e,jsxs as n}from"react/jsx-runtime";import*as t from"react";import{useMergedRef as r}from"../../internal/refs.js";import{beginPointerDrag as o,drawnScale as i}from"../../internal/drag.js";import{useLayoutEffectOnClient as a}from"../../internal/layout-effect.js";import{observeResize as l}from"../../internal/observe.js";import{cx as s,lengthUnit as c,toPixels as u,transitionClasses as f}from"../../internal/styles.js";import{useStyleDefaults as m}from"../../internal/defaults.js";import{panesMessages as d,useMessages as p}from"../../internal/i18n.js";const h="1 1 0%",g=/*@__PURE__*/t.createContext({flex:h}),x={xs:"basis-1",sm:"basis-1.5",md:"basis-2",lg:"basis-2.5",xl:"basis-3"},v={xs:4,sm:6,md:8,lg:10,xl:12};function b(e,n,t){if(null!=e)return"number"==typeof e?n*e/100:u(e,{percentOf:n,relativeTo:t})}function z(e,n,t){const r=e.map(e=>b(e.defaultSize,n,t)),o=r.reduce((e,n)=>e+(n??0),0),i=r.filter(e=>void 0===e).length,a=i>0?Math.max(0,n-o)/i:0,l=r.map(e=>Math.max(0,e??a)),s=l.reduce((e,n)=>e+n,0);return s<=0?l.map(()=>1/Math.max(1,l.length)):l.map(e=>e/s)}function y(e,n){return`calc((100% - ${n}px) * ${e.toFixed(6)})`}function w(e){if("string"!=typeof e)return!1;const n=c(e);return void 0!==n&&"%"!==n}function S(e,n){if(w(e))return`0 1 ${e}`;const t="number"==typeof e?e/100:"string"==typeof e?u(e,{percentOf:1}):void 0;return void 0===t?h:`0 1 ${y(Math.max(0,t),n)}`}export const Panes=/*@__PURE__*/t.forwardRef(function Panes(c,u){const{orientation:h="horizontal",resizable:$=!0,color:j="primary",size:M="md",onResize:R,onResizeEnd:A,handleLabel:E,locale:N,className:P,style:k,children:C,...D}=m(c,["size","locale"]),I=t.Children.toArray(C).filter(t.isValidElement),L=I.length,T=p(d,N),F=t.useId(),H=e=>I[e]?.props.id??`${F}-pane-${e}`,O=t.useRef(null),W=r(O,u),X=I.map(e=>e.props),Y=t.useRef([]);Y.current=X;const _="horizontal"===h,K=v[M]*Math.max(0,L-1),[U,V]=t.useState(null),q=(U&&U.length===L?U:null)??(X.some(e=>w(e.defaultSize))?null:z(X,100,null)),B=t.useRef(null);function G(e){const n=O.current,t=B.current;if(!$||!n||!t||void 0===t[e+1])return null;const r=(_?n.offsetWidth:n.offsetHeight)-K;if(r<=0)return null;const o=Y.current[e],i=Y.current[e+1],a=t[e]*r,l=a+t[e+1]*r,s=Math.max(b(o?.minSize,r,n)??0,l-(b(i?.maxSize,r,n)??l)),c=Math.min(b(o?.maxSize,r,n)??l,l-(b(i?.minSize,r,n)??0));return c<s?null:{root:n,current:t,extent:r,start:a,pair:l,resize(n){const o=Math.min(c,Math.max(s,a+n)),i=[...t];return i[e]=o/r,i[e+1]=(l-o)/r,V(i),R?.(i.map(e=>100*e)),i}}}t.useEffect(()=>{B.current=q}),a(()=>{const e=O.current;if(!e)return;const n=()=>{const n=(_?e.offsetWidth:e.offsetHeight)-K;n<=0||V(t=>t&&t.length===L?t:z(Y.current,n,e))};return n(),l(e,n)},[L,_,K]);const J=t.useRef(null);t.useEffect(()=>()=>J.current?.(),[]);const Q=s("group/handle relative z-1 flex shrink-0 grow-0 items-center justify-center",x[M],f,"focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:outline-offset-[-2px]",$?s(_?"cursor-col-resize":"cursor-row-resize","neba-hit","touch-none","hover:bg-(--n-soft) data-[dragging]:bg-(--n-soft)"):"");return e("div",{ref:W,className:s("flex h-full w-full",_?"flex-row":"flex-col","min-h-0 min-w-0",P),style:{"--n-accent":`var(--neba-${j}-accent)`,"--n-soft":`var(--neba-${j}-soft)`,"--n-ring":`var(--neba-${j}-ring)`,...k},...D,children:I.map((r,a)=>n(t.Fragment,{children:[a>0?e("div",{role:"separator","aria-label":"function"==typeof E?E(a-1):E??T.handle,"aria-controls":`${H(a-1)} ${H(a)}`,"aria-orientation":_?"vertical":"horizontal","aria-valuenow":q?Math.round(100*q[a-1]):void 0,"aria-valuemin":0,"aria-valuemax":100,"aria-disabled":!$||void 0,tabIndex:$?0:-1,className:Q,onPointerDown:e=>{0===e.button&&function(e,n){const t=G(e);if(!t)return;const r=n.currentTarget,a=_?n.clientX:n.clientY,l=_&&"rtl"===getComputedStyle(t.root).direction?-1:1,s=i(t.root)[_?"x":"y"];let c=t.current;J.current=o({target:r,pointerId:n.pointerId,onMove:e=>{const n=_?e.clientX:e.clientY;c=t.resize((n-a)/s*l)},onEnd:()=>{J.current=null,A?.(c.map(e=>100*e))}})}(a-1,e)},onKeyDown:e=>{const n=_&&"rtl"===getComputedStyle(e.currentTarget).direction,t=_?n?"ArrowRight":"ArrowLeft":"ArrowUp",r=_?n?"ArrowLeft":"ArrowRight":"ArrowDown";e.key!==t&&e.key!==r||(e.preventDefault(),function(e,n){const t=G(e);if(!t)return;const r=t.resize(n);A?.(r.map(e=>100*e))}(a-1,e.key===r?16:-16))},children:e("span",{"aria-hidden":"true",className:s("pointer-events-none bg-(--neba-border)",f,_?"h-full w-px":"h-px w-full",$?"group-hover/handle:bg-(--n-accent) group-focus-visible/handle:bg-(--n-accent) group-data-[dragging]/handle:bg-(--n-accent)":"")})}):null,e(g.Provider,{value:{flex:q?`0 0 ${y(q[a],K)}`:S(r.props.defaultSize,K)},children:void 0===r.props.id?t.cloneElement(r,{id:H(a)}):r})]},r.key??a))})});export const Pane=/*@__PURE__*/t.forwardRef(function Pane({defaultSize:n,minSize:r,maxSize:o,className:i,style:a,children:l,...c},u){const{flex:f}=t.useContext(g);return e("div",{ref:u,className:s("relative min-h-0 min-w-0 overflow-auto",i),style:{flex:f,...a},...c,children:l})});
@@ -1 +1 @@
1
- "use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import*as n from"react";import{useMergedRef as r}from"../../internal/refs.js";import{IconButton as o}from"../icon-button/IconButton.js";import{drawnScale as l}from"../../internal/drag.js";import{spacingValue as i}from"../../internal/grid.js";import{scrollMessages as s,useMessages as a}from"../../internal/i18n.js";import{ChevronIcon as c}from"../../internal/icons.js";import{useLayoutEffectOnClient as u}from"../../internal/layout-effect.js";import{queryMatches as d,reducedMotionQuery as p}from"../../internal/media.js";import{observeResize as m}from"../../internal/observe.js";import{cx as f}from"../../internal/styles.js";import{bindAxisWheelWhileOverflowing as g}from"../../internal/wheel.js";import{useStyleDefaults as v}from"../../internal/defaults.js";const b={xs:"p-1",sm:"p-1.5",md:"p-2",lg:"p-3",xl:"p-4"},h={xs:"gap-1",sm:"gap-1.5",md:"gap-2",lg:"gap-3",xl:"gap-4"};export const ScrollZone=/*@__PURE__*/n.forwardRef(function ScrollZone(y,w){const{orientation:x="horizontal",lines:k=1,spacing:E=2,buttons:L="auto",buttonPlacement:j="inline",mode:C="item",step:R=1,speed:S=900,snap:P=!1,drag:T=!0,wheel:F=!1,scrollbar:A=!1,variant:M="solid",size:N="md",color:B="primary",density:D="default",locale:W,label:z,previousLabel:H,nextLabel:I,scrollerRef:$,onScroll:q,className:X,style:Y,children:Z,..._}=v(y,["size","density","variant","locale"]),K=a(s,W),V="horizontal"===x,G=Math.max(1,Math.round(k)),J=Math.max(1,Math.round(R)),O=n.useRef(null),Q=n.useRef(null),U=r(O,$),[ee,te]=n.useState(null),[ne,re]=n.useState(null),oe=n.useRef(null),le=n.useCallback(()=>{const e=O.current;if(!e)return;oe.current?.check();const t=V?e.clientWidth:e.clientHeight,n=V?e.scrollWidth:e.scrollHeight,r=Math.abs(V?e.scrollLeft:e.scrollTop),o=t+function(e,t){const n=e.parentElement;if(!n||!e.previousElementSibling?.hasAttribute("data-held"))return 0;const r=getComputedStyle(n),o=t?n.clientWidth-parseFloat(r.paddingLeft)-parseFloat(r.paddingRight):n.clientHeight-parseFloat(r.paddingTop)-parseFloat(r.paddingBottom);return Math.max(0,o-(t?e.offsetWidth:e.offsetHeight))}(e,V);te(e=>{const t=r>1,l=n-o-r>1;return e?.back===t&&e.forward===l?e:{back:t,forward:l}})},[V]);u(()=>{const e=O.current,t=Q.current;if(!e)return;le();const n=[m(e,le),t?m(t,le):null];return()=>{for(const e of n)e?.()}},[le]);const ie=n.useCallback(()=>{const e=O.current;return e&&V&&"rtl"===getComputedStyle(e).direction?-1:1},[V]),se=n.useCallback((e,t)=>{const n=O.current;if(!n)return;const r=t?d(p)?"auto":"smooth":"auto";n.scrollBy(V?{left:e,behavior:r}:{top:e,behavior:r})},[V]),ae=n.useCallback(()=>{const e=O.current,t=Q.current;if(!e||!t)return[];const n=V&&"rtl"===getComputedStyle(e).direction,r=V?n?"right":"left":"top",o=n?-1:1,l=e.getBoundingClientRect()[r],i=[];for(const e of Array.from(t.children)){const t=Math.round((e.getBoundingClientRect()[r]-l)*o);i.includes(t)||i.push(t)}return i.sort((e,t)=>e-t)},[V]),ce=n.useCallback((e,t=C)=>{const n=O.current;if(!n)return;const r=ie(),o=V?n.clientWidth:n.clientHeight;if("page"===t)return void se(o*(e?1:-1)*r,!0);const l=ae(),i=l.filter(e=>e>1),s=l.filter(e=>e<-1),a=e?i[J-1]:s[s.length-J];se(void 0!==a?a*r:o*(e?1:-1)*r,!0)},[ie,V,ae,J,C,se]),ue=n.useRef(null);n.useEffect(()=>()=>ue.current?.(),[]);const de=n.useCallback((e,t)=>{if(ue.current)return;const n=ie(),r=performance.now();let o=r,l=0;const i=t=>{const r=t-o;o=t,se(S*r/1e3*(e?1:-1)*n,!1),l=requestAnimationFrame(i)};l=requestAnimationFrame(i);const s=()=>{cancelAnimationFrame(l),ue.current=null,window.removeEventListener(t,s),window.removeEventListener("pointercancel",s),window.removeEventListener("blur",s),performance.now()-r<140&&ce(e,"item")};ue.current=s,window.addEventListener(t,s),window.addEventListener("pointercancel",s),window.addEventListener("blur",s)},[ce,ie,se,S]),pe=n.useRef(null);function me(e){return"hold"!==C?{onClick:()=>ce(e)}:{onPointerDown:t=>{0===t.button&&de(e,"pointerup")},onKeyDown:t=>{"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),de(e,"keyup"))}}}n.useEffect(()=>()=>pe.current?.(),[]),n.useEffect(()=>{const e=O.current;if(!e||!F||!V)return;const t=g(e);return oe.current=t,()=>{t.stop(),oe.current=null}},[V,F]);const fe="inline"===j,ge=ee?.back??!1,ve=ee?.forward??!1,be=null===ee&&fe&&"auto"===L,he="none"!==L&&("always"===L||be||ge||ve);function ye(t){const n=t?ve:ge,r=t?"forward":"back";if("auto"===L&&!n&&!fe&&ne!==r)return e("span",{});const l=V?t?"-rotate-90 rtl:rotate-90":"rotate-90 rtl:-rotate-90":t?"":"rotate-180",i=e(o,{variant:M,size:N,color:B,density:D,elevation:1,label:t?I??K.next:H??K.previous,disabled:!n,focusableWhenDisabled:!0,onFocus:()=>re(r),onBlur:()=>re(e=>e===r?null:e),className:"pointer-events-auto",icon:e("span",{className:f("flex items-center",l),children:e(c,{})}),...me(t)});return fe?e("span",{"data-held":be?"":void 0,className:"flex shrink-0 items-center justify-center",style:be?{visibility:"hidden"}:void 0,children:i}):i}return t("div",{ref:w,className:f("relative flex min-w-0",fe&&V?"flex-row items-stretch":"flex-col",fe?h[N]:"",X),style:{"--n-ring":`var(--neba-${B}-ring)`,...Y},..._,children:[he&&fe?ye(!1):null,e("div",{ref:U,tabIndex:ge||ve?0:-1,role:"group","aria-label":z??K.label,className:f("min-h-0 min-w-0 grow",V?"overflow-x-auto overflow-y-hidden":"overflow-y-auto overflow-x-hidden","overscroll-contain",P?V?"snap-x snap-mandatory":"snap-y snap-mandatory":"",A?"":"[scrollbar-width:none] [&::-webkit-scrollbar]:hidden",T&&(ge||ve)?"cursor-grab data-[dragging]:cursor-grabbing":"","focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:[outline-offset:-2px]"),onScroll:e=>{le(),q?.(e)},onPointerDown:function(e){if(!T||"touch"===e.pointerType||0!==e.button)return;pe.current?.();const t=e.currentTarget,n=e.clientX,r=e.clientY,o=t.scrollLeft,i=t.scrollTop,s=l(t);let a=!1;const c=document.body.style.getPropertyValue("-webkit-user-select"),u=e=>{if(0===e.buttons)return void d();const l=e.clientX-n,c=e.clientY-r;if(!a){if(Math.abs(V?l:c)<4)return;a=!0,t.setPointerCapture(e.pointerId),t.dataset.dragging="true",document.body.style.setProperty("-webkit-user-select","none"),P&&(t.style.scrollSnapType="none")}V?t.scrollLeft=o-l/s.x:t.scrollTop=i-c/s.y},d=()=>{pe.current=null,t.removeEventListener("pointermove",u),t.removeEventListener("pointerup",p),t.removeEventListener("pointercancel",d),delete t.dataset.dragging,t.style.removeProperty("scroll-snap-type"),c?document.body.style.setProperty("-webkit-user-select",c):document.body.style.removeProperty("-webkit-user-select")},p=()=>{const e=a;if(d(),!e)return;const n=e=>{e.stopPropagation(),e.preventDefault()};t.addEventListener("click",n,{capture:!0,once:!0}),window.setTimeout(()=>t.removeEventListener("click",n,!0),0)};pe.current=d,t.addEventListener("pointermove",u),t.addEventListener("pointerup",p),t.addEventListener("pointercancel",d)},children:e("div",{ref:Q,className:f(P?"[&>*]:snap-start":""),style:{display:"grid",gap:i(E),gridAutoFlow:V?"column":"row",...V?{width:"max-content",gridTemplateRows:`repeat(${G}, auto)`,gridAutoColumns:"max-content"}:{gridTemplateColumns:`repeat(${G}, minmax(0, 1fr))`,gridAutoRows:"max-content"}},children:Z})}),he&&fe?ye(!0):null,he&&!fe?t("div",{className:f("pointer-events-none absolute inset-0 flex justify-between",V?"items-center":"flex-col items-center",b[N]),children:[ye(!1),ye(!0)]}):null]})});
1
+ "use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import*as n from"react";import{useMergedRef as r}from"../../internal/refs.js";import{IconButton as o}from"../icon-button/IconButton.js";import{drawnScale as l}from"../../internal/drag.js";import{spacingValue as i}from"../../internal/grid.js";import{scrollMessages as s,useMessages as a}from"../../internal/i18n.js";import{ChevronIcon as c}from"../../internal/icons.js";import{useLayoutEffectOnClient as u}from"../../internal/layout-effect.js";import{queryMatches as d,reducedMotionQuery as p}from"../../internal/media.js";import{observeResize as m}from"../../internal/observe.js";import{cx as f}from"../../internal/styles.js";import{bindAxisWheelWhileOverflowing as g}from"../../internal/wheel.js";import{useStyleDefaults as v}from"../../internal/defaults.js";const b={xs:"p-1",sm:"p-1.5",md:"p-2",lg:"p-3",xl:"p-4"},h={xs:"gap-1",sm:"gap-1.5",md:"gap-2",lg:"gap-3",xl:"gap-4"};export const ScrollZone=/*@__PURE__*/n.forwardRef(function ScrollZone(y,w){const{orientation:x="horizontal",lines:k=1,spacing:E=2,buttons:L="auto",buttonPlacement:j="inline",mode:C="item",step:R=1,speed:S=900,snap:P=!1,drag:T=!0,wheel:F=!1,scrollbar:A=!1,variant:M="solid",size:N="md",color:B="primary",density:D="default",locale:W,label:z,previousLabel:H,nextLabel:I,scrollerRef:$,onScroll:q,className:X,style:Y,children:Z,..._}=v(y,["size","density","variant","locale"]),K=a(s,W),V="horizontal"===x,G=Math.max(1,Math.round(k)),J=Math.max(1,Math.round(R)),O=n.useRef(null),Q=n.useRef(null),U=r(O,$),[ee,te]=n.useState(null),[ne,re]=n.useState(null),oe=n.useRef(null),le=n.useCallback(()=>{const e=O.current;if(!e)return;oe.current?.check();const t=V?e.clientWidth:e.clientHeight,n=V?e.scrollWidth:e.scrollHeight,r=Math.abs(V?e.scrollLeft:e.scrollTop),o=t+function(e,t){const n=e.parentElement;if(!n||!e.previousElementSibling?.hasAttribute("data-held"))return 0;const r=getComputedStyle(n),o=t?n.clientWidth-parseFloat(r.paddingLeft)-parseFloat(r.paddingRight):n.clientHeight-parseFloat(r.paddingTop)-parseFloat(r.paddingBottom);return Math.max(0,o-(t?e.offsetWidth:e.offsetHeight))}(e,V);te(e=>{const t=r>1,l=n-o-r>1;return e?.back===t&&e.forward===l?e:{back:t,forward:l}})},[V]);u(()=>{const e=O.current,t=Q.current;if(!e)return;le();const n=[m(e,le),t?m(t,le):null];return()=>{for(const e of n)e?.()}},[le]);const ie=n.useCallback(()=>{const e=O.current;return e&&V&&"rtl"===getComputedStyle(e).direction?-1:1},[V]),se=n.useCallback((e,t)=>{const n=O.current;if(!n)return;const r=t?d(p)?"auto":"smooth":"auto";n.scrollBy(V?{left:e,behavior:r}:{top:e,behavior:r})},[V]),ae=n.useCallback(()=>{const e=O.current,t=Q.current;if(!e||!t)return[];const n=V&&"rtl"===getComputedStyle(e).direction,r=V?n?"right":"left":"top",o=n?-1:1,l=e.getBoundingClientRect()[r],i=[];for(const e of Array.from(t.children)){const t=Math.round((e.getBoundingClientRect()[r]-l)*o);i.includes(t)||i.push(t)}return i.sort((e,t)=>e-t)},[V]),ce=n.useCallback((e,t=C)=>{const n=O.current;if(!n)return;const r=ie(),o=V?n.clientWidth:n.clientHeight;if("page"===t)return void se(o*(e?1:-1)*r,!0);const l=ae(),i=l.filter(e=>e>1),s=l.filter(e=>e<-1),a=e?i[J-1]:s[s.length-J];se(void 0!==a?a*r:o*(e?1:-1)*r,!0)},[ie,V,ae,J,C,se]),ue=n.useRef(null);n.useEffect(()=>()=>ue.current?.(),[]);const de=n.useCallback((e,t)=>{if(ue.current)return;const n=ie(),r=performance.now();let o=r,l=0;const i=t=>{const r=t-o;o=t,se(S*r/1e3*(e?1:-1)*n,!1),l=requestAnimationFrame(i)};l=requestAnimationFrame(i);const s=()=>{cancelAnimationFrame(l),ue.current=null,window.removeEventListener(t,s),window.removeEventListener("pointercancel",s),window.removeEventListener("blur",s),performance.now()-r<140&&ce(e,"item")};ue.current=s,window.addEventListener(t,s),window.addEventListener("pointercancel",s),window.addEventListener("blur",s)},[ce,ie,se,S]),pe=n.useRef(null);function me(e){return"hold"!==C?{onClick:()=>ce(e)}:{onPointerDown:t=>{0===t.button&&de(e,"pointerup")},onKeyDown:t=>{"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),de(e,"keyup"))}}}n.useEffect(()=>()=>pe.current?.(),[]),n.useEffect(()=>{const e=O.current;if(!e||!F||!V)return;const t=g(e);return oe.current=t,()=>{t.stop(),oe.current=null}},[V,F]);const fe="inline"===j,ge=ee?.back??!1,ve=ee?.forward??!1,be=null===ee&&fe&&"auto"===L,he="none"!==L&&("always"===L||be||ge||ve);function ye(t){const n=t?ve:ge,r=t?"forward":"back";if("auto"===L&&!n&&!fe&&ne!==r)return e("span",{});const l=V?t?"-rotate-90 rtl:rotate-90":"rotate-90 rtl:-rotate-90":t?"":"rotate-180",i=e(o,{variant:M,size:N,color:B,density:D,elevation:1,label:t?I??K.next:H??K.previous,disabled:!n,focusableWhenDisabled:!0,onFocus:()=>re(r),onBlur:()=>re(e=>e===r?null:e),className:"pointer-events-auto",icon:e("span",{className:f("flex items-center",l),children:e(c,{})}),...me(t)});return fe?e("span",{"data-held":be?"":void 0,className:"flex shrink-0 items-center justify-center",style:be?{visibility:"hidden"}:void 0,children:i}):i}return t("div",{ref:w,className:f("relative flex min-w-0",fe&&V?"flex-row items-stretch":"flex-col",fe?h[N]:"",X),style:{"--n-ring":`var(--neba-${B}-ring)`,...Y},..._,children:[he&&fe?ye(!1):null,e("div",{ref:U,tabIndex:ge||ve?0:-1,role:"group","aria-label":z??K.label,className:f("min-h-0 min-w-0 grow",V?"overflow-x-auto overflow-y-hidden py-1 -my-1":"overflow-y-auto overflow-x-hidden",P?"":V?"scroll-px-1":"scroll-py-1","overscroll-contain",P?V?"snap-x snap-mandatory":"snap-y snap-mandatory":"",A?"":"[scrollbar-width:none] [&::-webkit-scrollbar]:hidden",T&&(ge||ve)?"cursor-grab data-[dragging]:cursor-grabbing":"","focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:[outline-offset:-2px]"),onScroll:e=>{le(),q?.(e)},onPointerDown:function(e){if(!T||"touch"===e.pointerType||0!==e.button)return;pe.current?.();const t=e.currentTarget,n=e.clientX,r=e.clientY,o=t.scrollLeft,i=t.scrollTop,s=l(t);let a=!1;const c=document.body.style.getPropertyValue("-webkit-user-select"),u=e=>{if(0===e.buttons)return void d();const l=e.clientX-n,c=e.clientY-r;if(!a){if(Math.abs(V?l:c)<4)return;a=!0,t.setPointerCapture(e.pointerId),t.dataset.dragging="true",document.body.style.setProperty("-webkit-user-select","none"),P&&(t.style.scrollSnapType="none")}V?t.scrollLeft=o-l/s.x:t.scrollTop=i-c/s.y},d=()=>{pe.current=null,t.removeEventListener("pointermove",u),t.removeEventListener("pointerup",p),t.removeEventListener("pointercancel",d),delete t.dataset.dragging,t.style.removeProperty("scroll-snap-type"),c?document.body.style.setProperty("-webkit-user-select",c):document.body.style.removeProperty("-webkit-user-select")},p=()=>{const e=a;if(d(),!e)return;const n=e=>{e.stopPropagation(),e.preventDefault()};t.addEventListener("click",n,{capture:!0,once:!0}),window.setTimeout(()=>t.removeEventListener("click",n,!0),0)};pe.current=d,t.addEventListener("pointermove",u),t.addEventListener("pointerup",p),t.addEventListener("pointercancel",d)},children:e("div",{ref:Q,className:f(P?"[&>*]:snap-start":""),style:{display:"grid",gap:i(E),gridAutoFlow:V?"column":"row",...V?{width:"max-content",gridTemplateRows:`repeat(${G}, auto)`,gridAutoColumns:"max-content"}:{gridTemplateColumns:`repeat(${G}, minmax(0, 1fr))`,gridAutoRows:"max-content"}},children:Z})}),he&&fe?ye(!0):null,he&&!fe?t("div",{className:f("pointer-events-none absolute inset-0 flex justify-between",V?"items-center":"flex-col items-center",b[N]),children:[ye(!1),ye(!0)]}):null]})});
@@ -1 +1 @@
1
- "use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import*as r from"react";import{boxPaddingXClasses as n,boxPaddingYClasses as o}from"../box/Box.js";import{beginPointerDrag as a,drawnScale as s}from"../../internal/drag.js";import{useMergedRef as l}from"../../internal/refs.js";import{layoutMessages as i,useMessages as c}from"../../internal/i18n.js";import{drawerChunk as u,drawerSide as d,expandedOnlyClasses as f,PageLayoutContext as p,SidebarSideContext as b,useCollapsed as m}from"../../internal/page-layout.js";import{cx as h,surfaceClasses as v,surfaceSlots as g,toLength as w,toPixels as y,transitionClasses as x}from"../../internal/styles.js";import{useStyleDefaults as S}from"../../internal/defaults.js";const R={xs:"11rem",sm:"13rem",md:"16rem",lg:"18rem",xl:"21rem"},j={solid:v+" text-(--neba-fg) bg-(--n-panel-press) [box-shadow:var(--n-elev),var(--neba-plate-solid)]",outline:v+" text-(--neba-fg) bg-(--n-panel) [box-shadow:var(--n-elev),var(--neba-plate-glass)]",text:"text-(--neba-fg) bg-transparent"},z=r.lazy(()=>u.load());export const Sidebar=/*@__PURE__*/r.forwardRef(function Sidebar(v,E){const M=r.useContext(p),{side:k,width:N,minWidth:A=160,maxWidth:B=480,resizable:C=!1,onResize:O,onResizeEnd:W,collapseBelow:D,open:L,defaultOpen:P=!1,onOpenChange:T,keepMounted:I=!1,sticky:$,title:_,variant:X="outline",size:K="md",color:V="primary",density:q="default",elevation:F=0,divider:G=!0,padded:H=!0,label:J,locale:Q,className:U,style:Y,children:Z,...ee}=S(v,["size","density","variant","locale"],{locale:M.locale}),te=r.useContext(b),re=k??te??"start",ne=Q??M.locale,oe=c(i,ne),ae=D??(M.present?M.collapseBelow:"none"),se=m(ae),le=$??M.present;r.useEffect(()=>{"production"!==process.env.NODE_ENV&&M.present&&void 0!==D&&D!==M.collapseBelow&&console.warn(`Neba: a Sidebar collapses below "${D}" and its PageLayout below "${M.collapseBelow}". A SidebarTrigger follows the layout, so between the two widths the drawer has nothing to open it. Set collapseBelow on the PageLayout instead.`)},[M.present,M.collapseBelow,D]);const[ie,ce]=r.useState(P),ue=void 0!==L,de=ue?L:M.present?M.open[re]:ie,fe=e=>{ue||(M.present?M.setOpen(re,e):ce(e)),T?.(e)},pe=r.useRef(de),be=r.useRef(fe),me=r.useRef(se);r.useEffect(()=>{pe.current=de,be.current=fe}),r.useEffect(()=>{me.current&&!se&&pe.current&&be.current(!1),me.current=se},[se]),r.useEffect(()=>{se&&u.load().catch(()=>{})},[se]);const he=r.useMemo(()=>se?d(re):null,[se,re,de]),ve=w(N)??R[K],ge=r.useRef(null),we=l(ge,E),ye=r.useRef(null);r.useEffect(()=>()=>ye.current?.(),[]);const xe=r.useRef(null),Se=(e,t,r)=>null==t?r:"number"==typeof t?t:y(t,{percentOf:"undefined"==typeof window?0:window.innerWidth,relativeTo:e})??r,Re=(e,t)=>{const r=xe.current;r&&(r.setAttribute("aria-valuenow",String(Math.round(t))),r.setAttribute("aria-valuemin",String(Math.round(Se(e,A,160)))),r.setAttribute("aria-valuemax",String(Math.round(Se(e,B,480)))))};r.useEffect(()=>{const e=ge.current;C&&e&&Re(e,e.offsetWidth)},[C,A,B,ve,se]);const je=e=>{const t=ge.current;if(!t)return e;const r=Math.min(Se(t,B,480),Math.max(Se(t,A,160),Math.round(e)));return t.style.setProperty("--n-sidebar-w",`${r}px`),Re(t,r),r},ze=e("div",{className:h("min-h-0 flex-1 overflow-y-auto overscroll-contain",H?h(n[q][K],o[q][K]):""),children:Z});return he?e(r.Suspense,{fallback:null,children:e(z,{ref:we,side:he,mode:"overlay",open:de,onOpenChange:fe,keepMounted:I,title:_,size:K,color:V,density:q,locale:ne,closeLabel:oe.closeSidebar,extent:void 0===N?void 0:ve,"aria-label":_?void 0:J??oe.sidebar,className:U,style:Y,...ee,children:Z})}):t("aside",{ref:we,"aria-label":J??oe.sidebar,className:h("relative flex min-w-0 shrink-0 flex-col","w-(--n-sidebar-w)",j[X],G?h("start"===re?"border-e":"border-s","[border-color:var(--n-line)]"):"","content"===M.scroll?"h-full":le?h("self-start","sticky [top:var(--n-layout-header,0px)]","[height:calc(100dvh-var(--n-layout-header,0px)-var(--n-layout-footer,0px))]"):"",f[ae],x,U),style:{...g(V,F),"--n-sidebar-w":ve,...Y},...ee,children:[ze,C?e("div",{ref:xe,role:"separator","aria-orientation":"vertical","aria-label":oe.resizeSidebar,tabIndex:0,className:h("neba-hit absolute inset-y-0 z-1 w-2 cursor-col-resize touch-none","start"===re?"end-0 -me-1":"start-0 -ms-1","bg-transparent hover:bg-(--n-soft) data-[dragging]:bg-(--n-soft)",x,"focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:outline-offset-0"),onPointerDown:e=>{const t=ge.current;if(!t||0!==e.button)return;const r=e.currentTarget,n=e.clientX,o=t.offsetWidth,l=s(t).x,i="rtl"===getComputedStyle(t).direction,c="start"===re===i?-1:1;let u=o;ye.current=a({target:r,pointerId:e.pointerId,onMove:e=>{u=je(o+(e.clientX-n)/l*c),O?.(u)},onEnd:()=>{ye.current=null,W?.(u)}})},onKeyDown:e=>{if("ArrowLeft"!==e.key&&"ArrowRight"!==e.key)return;e.preventDefault();const t="rtl"===getComputedStyle(e.currentTarget).direction,r="start"===re===t?-1:1;(e=>{const t=ge.current;if(!t)return;const r=je(t.offsetWidth+e);O?.(r),W?.(r)})(("ArrowRight"===e.key?16:-16)*r)}}):null]})});
1
+ "use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import*as r from"react";import{boxPaddingXClasses as n,boxPaddingYClasses as o}from"../box/Box.js";import{beginPointerDrag as a,drawnScale as s}from"../../internal/drag.js";import{useMergedRef as l}from"../../internal/refs.js";import{layoutMessages as i,useMessages as c}from"../../internal/i18n.js";import{drawerChunk as u,drawerSide as d,expandedOnlyClasses as f,PageLayoutContext as p,SidebarSideContext as b,useCollapsed as m}from"../../internal/page-layout.js";import{cx as h,surfaceClasses as v,surfaceSlots as g,toLength as w,toPixels as x,transitionClasses as y}from"../../internal/styles.js";import{useStyleDefaults as S}from"../../internal/defaults.js";const R={xs:"11rem",sm:"13rem",md:"16rem",lg:"18rem",xl:"21rem"},j={solid:v+" text-(--neba-fg) bg-(--n-panel-press) [box-shadow:var(--n-elev),var(--neba-plate-solid)]",outline:v+" text-(--neba-fg) bg-(--n-panel) [box-shadow:var(--n-elev),var(--neba-plate-glass)]",text:"text-(--neba-fg) bg-transparent"},z=r.lazy(()=>u.load());export const Sidebar=/*@__PURE__*/r.forwardRef(function Sidebar(v,E){const M=r.useContext(p),{side:k,width:N,minWidth:A=160,maxWidth:B=480,resizable:C=!1,onResize:O,onResizeEnd:W,collapseBelow:D,open:L,defaultOpen:P=!1,onOpenChange:T,keepMounted:I=!1,sticky:$,title:_,variant:X="outline",size:K="md",color:V="primary",density:q="default",elevation:F=0,divider:G=!0,padded:H=!0,label:J,locale:Q,className:U,style:Y,children:Z,...ee}=S(v,["size","density","variant","locale"],{locale:M.locale}),te=r.useContext(b),re=k??te??"start",ne=Q??M.locale,oe=c(i,ne),ae=D??(M.present?M.collapseBelow:"none"),se=m(ae),le=$??M.present;r.useEffect(()=>{"production"!==process.env.NODE_ENV&&M.present&&void 0!==D&&D!==M.collapseBelow&&console.warn(`Neba: a Sidebar collapses below "${D}" and its PageLayout below "${M.collapseBelow}". A SidebarTrigger follows the layout, so between the two widths the drawer has nothing to open it. Set collapseBelow on the PageLayout instead.`)},[M.present,M.collapseBelow,D]);const[ie,ce]=r.useState(P),ue=void 0!==L,de=ue?L:M.present?M.open[re]:ie,fe=e=>{ue||(M.present?M.setOpen(re,e):ce(e)),T?.(e)},pe=r.useRef(de),be=r.useRef(fe),me=r.useRef(se);r.useEffect(()=>{pe.current=de,be.current=fe}),r.useEffect(()=>{me.current&&!se&&pe.current&&be.current(!1),me.current=se},[se]),r.useEffect(()=>{se&&u.load().catch(()=>{})},[se]);const he=r.useMemo(()=>se?d(re):null,[se,re,de]),ve=w(N)??R[K],ge=r.useRef(null),we=l(ge,E),xe=r.useRef(null);r.useEffect(()=>()=>xe.current?.(),[]);const ye=r.useRef(null),Se=(e,t,r)=>null==t?r:"number"==typeof t?t:x(t,{percentOf:"undefined"==typeof window?0:window.innerWidth,relativeTo:e})??r,Re=(e,t)=>{const r=ye.current;r&&(r.setAttribute("aria-valuenow",String(Math.round(t))),r.setAttribute("aria-valuemin",String(Math.round(Se(e,A,160)))),r.setAttribute("aria-valuemax",String(Math.round(Se(e,B,480)))))};r.useEffect(()=>{const e=ge.current;C&&e&&Re(e,e.offsetWidth)},[C,A,B,ve,se]);const je=e=>{const t=ge.current;if(!t)return e;const r=Math.min(Se(t,B,480),Math.max(Se(t,A,160),Math.round(e)));return t.style.setProperty("--n-sidebar-w",`${r}px`),Re(t,r),r},ze=e("div",{className:h("min-h-0 flex-1 overflow-y-auto overscroll-contain",H?h(n[q][K],o[q][K]):""),children:Z});return he?e(r.Suspense,{fallback:null,children:e(z,{ref:we,side:he,mode:"overlay",open:de,onOpenChange:fe,keepMounted:I,title:_,size:K,color:V,density:q,locale:ne,closeLabel:oe.closeSidebar,extent:void 0===N?void 0:ve,"aria-label":_?void 0:J??oe.sidebar,className:U,style:Y,...ee,children:Z})}):t("aside",{ref:we,"aria-label":J??oe.sidebar,className:h("relative flex min-w-0 shrink-0 flex-col","w-(--n-sidebar-w)",j[X],G?h("start"===re?"border-e":"border-s","[border-color:var(--n-line)]"):"","content"===M.scroll?"h-full":le?h("self-start","sticky [top:var(--n-layout-header,0px)]","[height:calc(100dvh-var(--n-layout-header,0px)-var(--n-layout-footer,0px))]"):"",f[ae],y,U),style:{...g(V,F),"--n-sidebar-w":ve,...Y},...ee,children:[ze,C?e("div",{ref:ye,role:"separator","aria-orientation":"vertical","aria-label":oe.resizeSidebar,tabIndex:0,className:h("neba-hit absolute inset-y-0 z-1 w-2 cursor-col-resize touch-none","start"===re?"end-0 -me-1":"start-0 -ms-1","bg-transparent hover:bg-(--n-soft) data-[dragging]:bg-(--n-soft)",y,"focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:outline-offset-[-2px]"),onPointerDown:e=>{const t=ge.current;if(!t||0!==e.button)return;const r=e.currentTarget,n=e.clientX,o=t.offsetWidth,l=s(t).x,i="rtl"===getComputedStyle(t).direction,c="start"===re===i?-1:1;let u=o;xe.current=a({target:r,pointerId:e.pointerId,onMove:e=>{u=je(o+(e.clientX-n)/l*c),O?.(u)},onEnd:()=>{xe.current=null,W?.(u)}})},onKeyDown:e=>{if("ArrowLeft"!==e.key&&"ArrowRight"!==e.key)return;e.preventDefault();const t="rtl"===getComputedStyle(e.currentTarget).direction,r="start"===re===t?-1:1;(e=>{const t=ge.current;if(!t)return;const r=je(t.offsetWidth+e);O?.(r),W?.(r)})(("ArrowRight"===e.key?16:-16)*r)}}):null]})});
@@ -255,9 +255,10 @@ export declare const sheetTitleHeadingClasses: string;
255
255
  *
256
256
  * So those three write their type through `[&.neba-heading]`, which compiles to
257
257
  * two classes, and carry `neba-heading` to close the selector. It is the same
258
- * guard `neba-link` and `neba-typography` write, without the floor they drop
259
- * to for a property a caller sets (`internal/overrides.ts`): none of the three
260
- * headings takes a caller's `className`, so the host is all it holds off.
258
+ * guard `neba-link` and `neba-typography` write. A Drawer's title is the one of
259
+ * the three that takes a caller's class, `classNames.title`, so it drops to
260
+ * `headingTitleFloorClasses` below for the size and the leading when that class
261
+ * sets either (`internal/overrides.ts`).
261
262
  *
262
263
  * This is a second spelling of one ladder, which is normally the thing to avoid.
263
264
  * It is checked rather than trusted — `test/package/resolution.test.ts` asserts
@@ -265,6 +266,12 @@ export declare const sheetTitleHeadingClasses: string;
265
266
  * two cannot drift.
266
267
  */
267
268
  export declare const headingTitleClasses: Record<NebaSize, string>;
269
+ /**
270
+ * The same ladder at zero specificity: the floor a heading's size and leading
271
+ * drop to when a caller's class sets either, so that class wins. The resolution
272
+ * test holds it to `sheetTitleClasses` the same way.
273
+ */
274
+ export declare const headingTitleFloorClasses: Record<NebaSize, string>;
268
275
  /**
269
276
  * Body copy: the control type scale with the leading opened up, because a
270
277
  * label is one line and a body is a paragraph.
@@ -274,6 +281,27 @@ export declare const sheetBodyClasses: Record<NebaSize, string>;
274
281
  export declare const sheetHeaderGapClasses: Record<NebaSize, string>;
275
282
  /** Between a sheet's sections, when there are no dividers to separate them. */
276
283
  export declare const sheetSectionGapClasses: Record<NebaSize, string>;
284
+ /**
285
+ * Room around the scrolling body of a Dialog and a Drawer, when there are no
286
+ * dividers, and the negative margin that hands it straight back, so nothing on
287
+ * the sheet moves.
288
+ *
289
+ * A scroll container clips at its padding box, and two things are drawn past
290
+ * the top of a field: its focus ring, 4px out, and a label floated onto its top
291
+ * edge, half that label's line box out. The bottom only ever needs the ring. The
292
+ * top is half of `floatLeadingValues` in `internal/notch.tsx`, at the same size,
293
+ * so a field the size of its sheet keeps its whole label — keep the two in step.
294
+ *
295
+ * Each step also fits inside `sheetSectionGapClasses` beside it, which is what
296
+ * the negative margin is taken back out of under a header. Past the gap, the
297
+ * body would lie over the header's last pixels and take their clicks.
298
+ *
299
+ * It is written on `padding-block` and `margin-block`, the properties `py-*` and
300
+ * `-my-*` set, so a caller's `py-*` in `classNames.body` competes with it on one
301
+ * property. Split into `pt-*` and `pb-*`, it sorts after every `py-*`, and a
302
+ * caller's `py-*` stops applying.
303
+ */
304
+ export declare const sheetScrollRoomClasses: Record<NebaSize, string>;
277
305
  /**
278
306
  * Between the options of a RadioGroup or a CheckboxGroup, when no `spacing`
279
307
  * says otherwise.
@@ -479,9 +507,9 @@ export declare const selectTriggerClasses: string;
479
507
  * names the measurement after the component that made it, so this is the whole
480
508
  * of what the two differ by.
481
509
  */
482
- export declare const collapsiblePanelClasses = "h-(--collapsible-panel-height) overflow-hidden [transition:height_var(--neba-duration)_var(--neba-ease)] motion-reduce:[transition-duration:0ms] data-[starting-style]:h-0 data-[ending-style]:h-0";
510
+ export declare const collapsiblePanelClasses = "h-(--collapsible-panel-height) overflow-hidden [transition:height_var(--neba-duration)_var(--neba-ease)] motion-reduce:[transition-duration:0ms] data-[starting-style]:h-0 data-[ending-style]:h-0 pt-[0.5625rem] -mt-[0.5625rem] pointer-events-none [&>*]:pointer-events-auto";
483
511
  /** And an **Accordion** section, which measures itself under its own name. */
484
- export declare const accordionPanelClasses = "h-(--accordion-panel-height) overflow-hidden [transition:height_var(--neba-duration)_var(--neba-ease)] motion-reduce:[transition-duration:0ms] data-[starting-style]:h-0 data-[ending-style]:h-0";
512
+ export declare const accordionPanelClasses = "h-(--accordion-panel-height) overflow-hidden [transition:height_var(--neba-duration)_var(--neba-ease)] motion-reduce:[transition-duration:0ms] data-[starting-style]:h-0 data-[ending-style]:h-0 pt-[0.5625rem] -mt-[0.5625rem] pointer-events-none [&>*]:pointer-events-auto";
485
513
  /**
486
514
  * The trigger of one of those panels, named so the chevron inside it can read
487
515
  * its state. Base UI writes `data-panel-open` on the trigger and on nothing
@@ -1 +1 @@
1
- export const radiusClasses={xs:"rounded-(--neba-radius-xs)",sm:"rounded-(--neba-radius-sm)",md:"rounded-(--neba-radius-md)",lg:"rounded-(--neba-radius-lg)",xl:"rounded-(--neba-radius-xl)"};export const controlHeightClasses={xs:"h-5.5",sm:"h-6.5",md:"h-8",lg:"h-10",xl:"h-12"};export const fieldHeightClasses={xs:"min-h-5.5",sm:"min-h-6.5",md:"min-h-8",lg:"min-h-10",xl:"min-h-12"};export const controlHeightValues={xs:"1.375rem",sm:"1.625rem",md:"2rem",lg:"2.5rem",xl:"3rem"};export const measureWidths={xs:"30rem",sm:"40rem",md:"48rem",lg:"64rem",xl:"80rem"};export function measureValue(e){return"number"==typeof e?`${e}px`:measureWidths[e]??e}export const controlSquareClasses={xs:"w-5.5",sm:"w-6.5",md:"w-8",lg:"w-10",xl:"w-12"};export const controlTextClasses={xs:"text-[0.6875rem]",sm:"text-[0.75rem]",md:"text-[0.8125rem]",lg:"text-[0.9375rem]",xl:"text-[1.0625rem]"};export const controlTextLeadingClasses={xs:"text-[0.6875rem]/[0.875rem]",sm:"text-[0.75rem]/[1rem]",md:"text-[0.8125rem]/[1.25rem]",lg:"text-[0.9375rem]/[1.375rem]",xl:"text-[1.0625rem]/[1.625rem]"};export const metaTextClasses={xs:"text-[0.625rem]",sm:"text-[0.6875rem]",md:"text-[0.75rem]",lg:"text-[0.8125rem]",xl:"text-[0.875rem]"};export const metaTextValues={xs:"0.625rem",sm:"0.6875rem",md:"0.75rem",lg:"0.8125rem",xl:"0.875rem"};export const paddingXClasses={default:{xs:"px-2.5",sm:"px-3",md:"px-4",lg:"px-5",xl:"px-6"},compact:{xs:"px-1.5",sm:"px-2",md:"px-2.5",lg:"px-3",xl:"px-4"}};export const iconSizeClasses={xs:"size-3.5",sm:"size-4",md:"size-5",lg:"size-6",xl:"size-7"};export const tickSizeClasses={xs:"size-3.5",sm:"size-4",md:"size-4.5",lg:"size-5",xl:"size-6"};export const tickRadiusClasses={xs:"rounded-[0.25rem]",sm:"rounded-[0.3125rem]",md:"rounded-[0.375rem]",lg:"rounded-[0.4375rem]",xl:"rounded-[0.5rem]"};export const tickDotClasses={xs:"size-1.5",sm:"size-1.5",md:"size-2",lg:"size-2",xl:"size-2.5"};export const tickRowLeadingClasses="leading-[1.4]";export const hitAreaClasses="neba-hit";export const paddingXValues={default:{xs:"0.625rem",sm:"0.75rem",md:"1rem",lg:"1.25rem",xl:"1.5rem"},compact:{xs:"0.375rem",sm:"0.5rem",md:"0.625rem",lg:"0.75rem",xl:"1rem"}};export const gapClasses={xs:"gap-1",sm:"gap-1.5",md:"gap-1.5",lg:"gap-2",xl:"gap-2.5"};export const stackGapClasses={xs:"gap-1",sm:"gap-1",md:"gap-1.5",lg:"gap-1.5",xl:"gap-2"};export const sheetTitleClasses={xs:"text-[0.75rem]/[1rem]",sm:"text-[0.8125rem]/[1.125rem]",md:"text-[0.9375rem]/[1.25rem]",lg:"text-[1.0625rem]/[1.5rem]",xl:"text-[1.25rem]/[1.75rem]"};export const sheetTitleHeadingClasses="neba-title [&.neba-title_:where(h1,h2,h3,h4,h5,h6):not([class])]:[font:inherit] [&.neba-title_:where(h1,h2,h3,h4,h5,h6):not([class])]:m-0 [:where(&)_:where(h1,h2,h3,h4,h5,h6)]:[font:inherit] [:where(&)_:where(h1,h2,h3,h4,h5,h6)]:m-0";export const headingTitleClasses={xs:"[&.neba-heading]:text-[0.75rem]/[1rem]",sm:"[&.neba-heading]:text-[0.8125rem]/[1.125rem]",md:"[&.neba-heading]:text-[0.9375rem]/[1.25rem]",lg:"[&.neba-heading]:text-[1.0625rem]/[1.5rem]",xl:"[&.neba-heading]:text-[1.25rem]/[1.75rem]"};export const sheetBodyClasses={xs:"text-[0.6875rem]/[1rem]",sm:"text-[0.75rem]/[1.125rem]",md:"text-[0.8125rem]/[1.375rem]",lg:"text-[0.9375rem]/[1.5rem]",xl:"text-[1.0625rem]/[1.75rem]"};export const sheetHeaderGapClasses={xs:"gap-0.5",sm:"gap-0.5",md:"gap-1",lg:"gap-1",xl:"gap-1.5"};export const sheetSectionGapClasses={xs:"gap-1.5",sm:"gap-2",md:"gap-3",lg:"gap-3.5",xl:"gap-4"};export const optionGapClasses={vertical:sheetSectionGapClasses,horizontal:{xs:"gap-x-5 gap-y-1.5",sm:"gap-x-5 gap-y-2",md:"gap-x-5 gap-y-3",lg:"gap-x-5 gap-y-3.5",xl:"gap-x-5 gap-y-4"}};export const surfaceClasses="[background-image:var(--neba-grain),var(--neba-sheen)] [background-blend-mode:overlay,normal] [backdrop-filter:var(--neba-blur)]";export const ringRestClasses="[outline:0_solid_transparent]";export const transitionClasses=`${ringRestClasses} [transition-property:background-color,border-color,box-shadow,color,outline-color] [transition-duration:var(--neba-duration-fill),var(--neba-duration),var(--neba-duration),var(--neba-duration),var(--neba-duration)] [transition-timing-function:var(--neba-ease)]`;export const pressTransitionClasses="active:[transition-duration:0ms]";export const popupFadeStateClasses="data-[starting-style]:opacity-0 data-[ending-style]:opacity-0";export const popupFadeClasses="[transition:opacity_var(--neba-duration)_var(--neba-ease)] "+popupFadeStateClasses;export const focusRingClasses=`${ringRestClasses} outline-offset-2 focus-visible:[outline:2px_solid_var(--n-ring)]`;export const insetRingClasses=`${ringRestClasses} outline-offset-[-2px] focus-visible:[outline:2px_solid_var(--n-ring)]`;export const focusWithinRingClasses=`${ringRestClasses} outline-offset-2 has-[:focus-visible]:[outline:2px_solid_var(--n-ring)] supports-[not_selector(:has(*))]:focus-within:[outline:2px_solid_var(--n-ring)]`;export const fieldRingClasses=`${ringRestClasses} outline-offset-0 has-[:focus-visible]:[outline:2px_solid_var(--n-ring)]`;export const fieldFocusTransitionClasses="focus-within:[transition-duration:var(--neba-duration)]";export function clampClasses(e){return e>1?"line-clamp-(--n-lines)":"truncate"}export function clampSlot(e){return void 0!==e&&e>1?{"--n-lines":Math.floor(e)}:void 0}export const iconClasses="[&_svg]:pointer-events-none [&_svg]:size-[1.2em] [&_svg]:shrink-0";export const selectTriggerClasses=`group relative flex w-full cursor-pointer items-center select-none [-webkit-tap-highlight-color:transparent] [touch-action:manipulation] ${transitionClasses} ${fieldFocusTransitionClasses} ${iconClasses}`;const e="[transition:height_var(--neba-duration)_var(--neba-ease)] motion-reduce:[transition-duration:0ms] data-[starting-style]:h-0 data-[ending-style]:h-0";export const collapsiblePanelClasses=`h-(--collapsible-panel-height) overflow-hidden ${e}`;export const accordionPanelClasses=`h-(--accordion-panel-height) overflow-hidden ${e}`;export const disclosureTriggerClasses="group/disclosure";export const disclosureChevronClasses="flex h-[1lh] shrink-0 items-center [transition:rotate_var(--neba-duration)_var(--neba-ease)] group-data-[panel-open]/disclosure:rotate-180";export const preformattedClasses="m-0 overflow-auto rounded-(--neba-radius-sm) bg-(--neba-groove) p-2 font-mono text-[0.9em]/[1.5] whitespace-pre";export const srOnlyClasses="absolute size-px overflow-hidden whitespace-nowrap [clip-path:inset(50%)]";export function controlSlots(e,s,t){const n="solid"===t;return{"--n-fill":`var(--neba-${e}-fill)`,"--n-fill-hover":`var(--neba-${e}-fill-hover)`,"--n-fill-active":`var(--neba-${e}-fill-active)`,"--n-on-solid":`var(--neba-${e}-on-solid)`,"--n-accent":`var(--neba-${e}-accent)`,"--n-soft":`var(--neba-${e}-soft)`,"--n-soft-hover":`var(--neba-${e}-soft-hover)`,"--n-soft-press":`var(--neba-${e}-soft-press)`,"--n-on-tint":`var(--neba-${e}-on-tint)`,"--n-panel":`var(--neba-${e}-panel)`,"--n-panel-hover":`var(--neba-${e}-panel-hover)`,"--n-panel-press":`var(--neba-${e}-panel-press)`,"--n-line":`var(--neba-${e}-line)`,"--n-line-hover":`var(--neba-${e}-line-hover)`,"--n-ring":`var(--neba-${e}-ring)`,"--n-glow":n?"var(--neba-glow-on-fill)":`var(--neba-${e}-soft)`,"--n-flash":n?"var(--neba-flash-on-fill)":`var(--neba-${e}-soft-press)`,"--n-elev":`var(--neba-shadow-${s})`,"--n-elev-hover":`var(--neba-shadow-${Math.min(s+1,4)})`,"--n-elev-press":`var(--neba-shadow-${Math.max(s-1,0)})`}}export function surfaceSlots(e,s){return{"--n-accent":`var(--neba-${e}-accent)`,"--n-soft":`var(--neba-${e}-soft)`,"--n-soft-hover":`var(--neba-${e}-soft-hover)`,"--n-soft-press":`var(--neba-${e}-soft-press)`,"--n-on-tint":`var(--neba-${e}-on-tint)`,"--n-panel":"var(--neba-panel)","--n-panel-hover":"var(--neba-panel-hover)","--n-panel-press":"var(--neba-panel-press)","--n-line":`var(--neba-${e}-line)`,"--n-line-hover":`var(--neba-${e}-line-hover)`,"--n-ring":`var(--neba-${e}-ring)`,"--n-elev":`var(--neba-shadow-${s})`}}export const tintPlateClasses="neba-tint-plate";export const disabledClasses={solid:"cursor-not-allowed bg-(--neba-disabled-bg) text-(--neba-disabled-fg) shadow-none",outline:"cursor-not-allowed border bg-transparent text-(--neba-disabled-fg) [border-color:var(--neba-disabled-border)] shadow-none",text:"cursor-not-allowed bg-transparent text-(--neba-disabled-fg) shadow-none"};export const fieldRestClasses={solid:`${surfaceClasses} text-(--neba-fg) bg-(--n-panel-hover) [box-shadow:var(--n-elev),var(--neba-plate-solid)] hover:bg-(--n-panel-press) focus-within:bg-(--n-panel-press)`,outline:`${surfaceClasses} border text-(--neba-fg) bg-(--n-panel) [border-color:var(--n-line)] [box-shadow:var(--n-elev),var(--neba-plate-glass)] hover:bg-(--n-panel-hover) hover:[border-color:var(--n-line-hover)] focus-within:bg-(--n-panel-hover) focus-within:[border-color:var(--n-ring)] focus-within:hover:[border-color:var(--n-ring)]`,text:"text-(--neba-fg) bg-transparent hover:bg-(--n-soft) focus-within:bg-(--n-soft-hover) focus-within:hover:bg-(--n-soft-hover)"};export const fieldReadOnlyClasses={solid:`${surfaceClasses} text-(--neba-fg) bg-(--n-panel-hover) [box-shadow:var(--neba-plate-solid)] [filter:saturate(0.55)]`,outline:`${surfaceClasses} border text-(--neba-fg) bg-(--n-panel) [border-color:var(--n-line)] [box-shadow:var(--neba-plate-glass)] [filter:saturate(0.55)]`,text:"text-(--neba-fg) bg-transparent [filter:saturate(0.55)]"};export const readOnlyFilterClasses="[filter:saturate(0.55)]";export const fieldSheetClasses={solid:`${surfaceClasses} text-(--neba-fg) bg-(--n-panel-hover) [box-shadow:var(--n-elev)] hover:bg-(--n-panel-press) focus-within:bg-(--n-panel-press)`,outline:`${surfaceClasses} border [border-color:transparent] text-(--neba-fg) bg-(--n-panel) [box-shadow:var(--n-elev)] hover:bg-(--n-panel-hover) focus-within:bg-(--n-panel-hover)`,text:fieldRestClasses.text};export const fieldSheetReadOnlyClasses={solid:`${surfaceClasses} text-(--neba-fg) bg-(--n-panel-hover)`,outline:`${surfaceClasses} border [border-color:transparent] text-(--neba-fg) bg-(--n-panel)`,text:"text-(--neba-fg) bg-transparent"};export const fieldSheetDisabledClasses={solid:disabledClasses.solid,outline:"cursor-not-allowed border bg-transparent text-(--neba-disabled-fg) [border-color:transparent] shadow-none",text:disabledClasses.text};export const citationMarkClasses="inline-flex shrink-0 items-center justify-center rounded-[0.3em] min-w-[1.5em] px-[0.35em] py-[0.05em] bg-(--n-soft) text-[0.8em]/[1.6] font-semibold text-(--n-on-tint) tabular-nums";export const chipRemoveClasses="relative ms-0.5 inline-flex shrink-0 items-center justify-center rounded-full size-[1.15em] cursor-pointer opacity-70 neba-hit [transition:opacity_var(--neba-duration)_var(--neba-ease)] hover:opacity-100 focus-visible:opacity-100 focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:outline-offset-1 disabled:cursor-not-allowed";export const sheetCloseClasses="relative flex size-[1.6em] shrink-0 cursor-pointer items-center justify-center rounded-full text-(--neba-muted-fg) neba-hit [&_svg]:size-[1.1em] [&_svg]:shrink-0 [transition:background-color_var(--neba-duration)_var(--neba-ease),color_var(--neba-duration)_var(--neba-ease)] hover:bg-(--n-soft) hover:text-(--neba-fg) focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:outline-offset-2";export function hasContent(e){return null!=e&&!1!==e&&""!==e}export function toLength(e){if(null!=e)return"number"==typeof e?`${e}px`:e}const s=/^\s*(-?[\d.]+)\s*(px|rem|em|%)\s*$/;export function lengthUnit(e){const t=s.exec(e);if(t&&!Number.isNaN(Number(t[1])))return t[2]}export function toPixels(e,n){const r=s.exec(e);if(!r)return;const a=Number(r[1]);if(!Number.isNaN(a))switch(r[2]){case"px":return a;case"%":return n.percentOf*a/100;case"em":return a*t(n.relativeTo);default:return a*t("undefined"==typeof document?null:document.documentElement)}}function t(e){return e&&"undefined"!=typeof getComputedStyle&&parseFloat(getComputedStyle(e).fontSize)||16}export function cx(...e){return e.filter(Boolean).join(" ")}
1
+ export const radiusClasses={xs:"rounded-(--neba-radius-xs)",sm:"rounded-(--neba-radius-sm)",md:"rounded-(--neba-radius-md)",lg:"rounded-(--neba-radius-lg)",xl:"rounded-(--neba-radius-xl)"};export const controlHeightClasses={xs:"h-5.5",sm:"h-6.5",md:"h-8",lg:"h-10",xl:"h-12"};export const fieldHeightClasses={xs:"min-h-5.5",sm:"min-h-6.5",md:"min-h-8",lg:"min-h-10",xl:"min-h-12"};export const controlHeightValues={xs:"1.375rem",sm:"1.625rem",md:"2rem",lg:"2.5rem",xl:"3rem"};export const measureWidths={xs:"30rem",sm:"40rem",md:"48rem",lg:"64rem",xl:"80rem"};export function measureValue(e){return"number"==typeof e?`${e}px`:measureWidths[e]??e}export const controlSquareClasses={xs:"w-5.5",sm:"w-6.5",md:"w-8",lg:"w-10",xl:"w-12"};export const controlTextClasses={xs:"text-[0.6875rem]",sm:"text-[0.75rem]",md:"text-[0.8125rem]",lg:"text-[0.9375rem]",xl:"text-[1.0625rem]"};export const controlTextLeadingClasses={xs:"text-[0.6875rem]/[0.875rem]",sm:"text-[0.75rem]/[1rem]",md:"text-[0.8125rem]/[1.25rem]",lg:"text-[0.9375rem]/[1.375rem]",xl:"text-[1.0625rem]/[1.625rem]"};export const metaTextClasses={xs:"text-[0.625rem]",sm:"text-[0.6875rem]",md:"text-[0.75rem]",lg:"text-[0.8125rem]",xl:"text-[0.875rem]"};export const metaTextValues={xs:"0.625rem",sm:"0.6875rem",md:"0.75rem",lg:"0.8125rem",xl:"0.875rem"};export const paddingXClasses={default:{xs:"px-2.5",sm:"px-3",md:"px-4",lg:"px-5",xl:"px-6"},compact:{xs:"px-1.5",sm:"px-2",md:"px-2.5",lg:"px-3",xl:"px-4"}};export const iconSizeClasses={xs:"size-3.5",sm:"size-4",md:"size-5",lg:"size-6",xl:"size-7"};export const tickSizeClasses={xs:"size-3.5",sm:"size-4",md:"size-4.5",lg:"size-5",xl:"size-6"};export const tickRadiusClasses={xs:"rounded-[0.25rem]",sm:"rounded-[0.3125rem]",md:"rounded-[0.375rem]",lg:"rounded-[0.4375rem]",xl:"rounded-[0.5rem]"};export const tickDotClasses={xs:"size-1.5",sm:"size-1.5",md:"size-2",lg:"size-2",xl:"size-2.5"};export const tickRowLeadingClasses="leading-[1.4]";export const hitAreaClasses="neba-hit";export const paddingXValues={default:{xs:"0.625rem",sm:"0.75rem",md:"1rem",lg:"1.25rem",xl:"1.5rem"},compact:{xs:"0.375rem",sm:"0.5rem",md:"0.625rem",lg:"0.75rem",xl:"1rem"}};export const gapClasses={xs:"gap-1",sm:"gap-1.5",md:"gap-1.5",lg:"gap-2",xl:"gap-2.5"};export const stackGapClasses={xs:"gap-1",sm:"gap-1",md:"gap-1.5",lg:"gap-1.5",xl:"gap-2"};export const sheetTitleClasses={xs:"text-[0.75rem]/[1rem]",sm:"text-[0.8125rem]/[1.125rem]",md:"text-[0.9375rem]/[1.25rem]",lg:"text-[1.0625rem]/[1.5rem]",xl:"text-[1.25rem]/[1.75rem]"};export const sheetTitleHeadingClasses="neba-title [&.neba-title_:where(h1,h2,h3,h4,h5,h6):not([class])]:[font:inherit] [&.neba-title_:where(h1,h2,h3,h4,h5,h6):not([class])]:m-0 [:where(&)_:where(h1,h2,h3,h4,h5,h6)]:[font:inherit] [:where(&)_:where(h1,h2,h3,h4,h5,h6)]:m-0";export const headingTitleClasses={xs:"[&.neba-heading]:text-[0.75rem]/[1rem]",sm:"[&.neba-heading]:text-[0.8125rem]/[1.125rem]",md:"[&.neba-heading]:text-[0.9375rem]/[1.25rem]",lg:"[&.neba-heading]:text-[1.0625rem]/[1.5rem]",xl:"[&.neba-heading]:text-[1.25rem]/[1.75rem]"};export const headingTitleFloorClasses={xs:"[:where(&)]:text-[0.75rem]/[1rem]",sm:"[:where(&)]:text-[0.8125rem]/[1.125rem]",md:"[:where(&)]:text-[0.9375rem]/[1.25rem]",lg:"[:where(&)]:text-[1.0625rem]/[1.5rem]",xl:"[:where(&)]:text-[1.25rem]/[1.75rem]"};export const sheetBodyClasses={xs:"text-[0.6875rem]/[1rem]",sm:"text-[0.75rem]/[1.125rem]",md:"text-[0.8125rem]/[1.375rem]",lg:"text-[0.9375rem]/[1.5rem]",xl:"text-[1.0625rem]/[1.75rem]"};export const sheetHeaderGapClasses={xs:"gap-0.5",sm:"gap-0.5",md:"gap-1",lg:"gap-1",xl:"gap-1.5"};export const sheetSectionGapClasses={xs:"gap-1.5",sm:"gap-2",md:"gap-3",lg:"gap-3.5",xl:"gap-4"};export const sheetScrollRoomClasses={xs:"[padding-block:0.375rem_0.25rem] [margin-block:-0.375rem_-0.25rem]",sm:"[padding-block:0.4375rem_0.25rem] [margin-block:-0.4375rem_-0.25rem]",md:"[padding-block:0.5rem_0.25rem] [margin-block:-0.5rem_-0.25rem]",lg:"[padding-block:0.5rem_0.25rem] [margin-block:-0.5rem_-0.25rem]",xl:"[padding-block:0.5625rem_0.25rem] [margin-block:-0.5625rem_-0.25rem]"};export const optionGapClasses={vertical:sheetSectionGapClasses,horizontal:{xs:"gap-x-5 gap-y-1.5",sm:"gap-x-5 gap-y-2",md:"gap-x-5 gap-y-3",lg:"gap-x-5 gap-y-3.5",xl:"gap-x-5 gap-y-4"}};export const surfaceClasses="[background-image:var(--neba-grain),var(--neba-sheen)] [background-blend-mode:overlay,normal] [backdrop-filter:var(--neba-blur)]";export const ringRestClasses="[outline:0_solid_transparent]";export const transitionClasses=`${ringRestClasses} [transition-property:background-color,border-color,box-shadow,color,outline-color] [transition-duration:var(--neba-duration-fill),var(--neba-duration),var(--neba-duration),var(--neba-duration),var(--neba-duration)] [transition-timing-function:var(--neba-ease)]`;export const pressTransitionClasses="active:[transition-duration:0ms]";export const popupFadeStateClasses="data-[starting-style]:opacity-0 data-[ending-style]:opacity-0";export const popupFadeClasses="[transition:opacity_var(--neba-duration)_var(--neba-ease)] "+popupFadeStateClasses;export const focusRingClasses=`${ringRestClasses} outline-offset-2 focus-visible:[outline:2px_solid_var(--n-ring)]`;export const insetRingClasses=`${ringRestClasses} outline-offset-[-2px] focus-visible:[outline:2px_solid_var(--n-ring)]`;export const focusWithinRingClasses=`${ringRestClasses} outline-offset-2 has-[:focus-visible]:[outline:2px_solid_var(--n-ring)] supports-[not_selector(:has(*))]:focus-within:[outline:2px_solid_var(--n-ring)]`;export const fieldRingClasses=`${ringRestClasses} outline-offset-0 has-[:focus-visible]:[outline:2px_solid_var(--n-ring)]`;export const fieldFocusTransitionClasses="focus-within:[transition-duration:var(--neba-duration)]";export function clampClasses(e){return e>1?"line-clamp-(--n-lines)":"truncate"}export function clampSlot(e){return void 0!==e&&e>1?{"--n-lines":Math.floor(e)}:void 0}export const iconClasses="[&_svg]:pointer-events-none [&_svg]:size-[1.2em] [&_svg]:shrink-0";export const selectTriggerClasses=`group relative flex w-full cursor-pointer items-center select-none [-webkit-tap-highlight-color:transparent] [touch-action:manipulation] ${transitionClasses} ${fieldFocusTransitionClasses} ${iconClasses}`;const e="[transition:height_var(--neba-duration)_var(--neba-ease)] motion-reduce:[transition-duration:0ms] data-[starting-style]:h-0 data-[ending-style]:h-0",s="pt-[0.5625rem] -mt-[0.5625rem] pointer-events-none [&>*]:pointer-events-auto";export const collapsiblePanelClasses=`h-(--collapsible-panel-height) overflow-hidden ${e} ${s}`;export const accordionPanelClasses=`h-(--accordion-panel-height) overflow-hidden ${e} ${s}`;export const disclosureTriggerClasses="group/disclosure";export const disclosureChevronClasses="flex h-[1lh] shrink-0 items-center [transition:rotate_var(--neba-duration)_var(--neba-ease)] group-data-[panel-open]/disclosure:rotate-180";export const preformattedClasses="m-0 overflow-auto rounded-(--neba-radius-sm) bg-(--neba-groove) p-2 font-mono text-[0.9em]/[1.5] whitespace-pre";export const srOnlyClasses="absolute size-px overflow-hidden whitespace-nowrap [clip-path:inset(50%)]";export function controlSlots(e,s,t){const n="solid"===t;return{"--n-fill":`var(--neba-${e}-fill)`,"--n-fill-hover":`var(--neba-${e}-fill-hover)`,"--n-fill-active":`var(--neba-${e}-fill-active)`,"--n-on-solid":`var(--neba-${e}-on-solid)`,"--n-accent":`var(--neba-${e}-accent)`,"--n-soft":`var(--neba-${e}-soft)`,"--n-soft-hover":`var(--neba-${e}-soft-hover)`,"--n-soft-press":`var(--neba-${e}-soft-press)`,"--n-on-tint":`var(--neba-${e}-on-tint)`,"--n-panel":`var(--neba-${e}-panel)`,"--n-panel-hover":`var(--neba-${e}-panel-hover)`,"--n-panel-press":`var(--neba-${e}-panel-press)`,"--n-line":`var(--neba-${e}-line)`,"--n-line-hover":`var(--neba-${e}-line-hover)`,"--n-ring":`var(--neba-${e}-ring)`,"--n-glow":n?"var(--neba-glow-on-fill)":`var(--neba-${e}-soft)`,"--n-flash":n?"var(--neba-flash-on-fill)":`var(--neba-${e}-soft-press)`,"--n-elev":`var(--neba-shadow-${s})`,"--n-elev-hover":`var(--neba-shadow-${Math.min(s+1,4)})`,"--n-elev-press":`var(--neba-shadow-${Math.max(s-1,0)})`}}export function surfaceSlots(e,s){return{"--n-accent":`var(--neba-${e}-accent)`,"--n-soft":`var(--neba-${e}-soft)`,"--n-soft-hover":`var(--neba-${e}-soft-hover)`,"--n-soft-press":`var(--neba-${e}-soft-press)`,"--n-on-tint":`var(--neba-${e}-on-tint)`,"--n-panel":"var(--neba-panel)","--n-panel-hover":"var(--neba-panel-hover)","--n-panel-press":"var(--neba-panel-press)","--n-line":`var(--neba-${e}-line)`,"--n-line-hover":`var(--neba-${e}-line-hover)`,"--n-ring":`var(--neba-${e}-ring)`,"--n-elev":`var(--neba-shadow-${s})`}}export const tintPlateClasses="neba-tint-plate";export const disabledClasses={solid:"cursor-not-allowed bg-(--neba-disabled-bg) text-(--neba-disabled-fg) shadow-none",outline:"cursor-not-allowed border bg-transparent text-(--neba-disabled-fg) [border-color:var(--neba-disabled-border)] shadow-none",text:"cursor-not-allowed bg-transparent text-(--neba-disabled-fg) shadow-none"};export const fieldRestClasses={solid:`${surfaceClasses} text-(--neba-fg) bg-(--n-panel-hover) [box-shadow:var(--n-elev),var(--neba-plate-solid)] hover:bg-(--n-panel-press) focus-within:bg-(--n-panel-press)`,outline:`${surfaceClasses} border text-(--neba-fg) bg-(--n-panel) [border-color:var(--n-line)] [box-shadow:var(--n-elev),var(--neba-plate-glass)] hover:bg-(--n-panel-hover) hover:[border-color:var(--n-line-hover)] focus-within:bg-(--n-panel-hover) focus-within:[border-color:var(--n-ring)] focus-within:hover:[border-color:var(--n-ring)]`,text:"text-(--neba-fg) bg-transparent hover:bg-(--n-soft) focus-within:bg-(--n-soft-hover) focus-within:hover:bg-(--n-soft-hover)"};export const fieldReadOnlyClasses={solid:`${surfaceClasses} text-(--neba-fg) bg-(--n-panel-hover) [box-shadow:var(--neba-plate-solid)] [filter:saturate(0.55)]`,outline:`${surfaceClasses} border text-(--neba-fg) bg-(--n-panel) [border-color:var(--n-line)] [box-shadow:var(--neba-plate-glass)] [filter:saturate(0.55)]`,text:"text-(--neba-fg) bg-transparent [filter:saturate(0.55)]"};export const readOnlyFilterClasses="[filter:saturate(0.55)]";export const fieldSheetClasses={solid:`${surfaceClasses} text-(--neba-fg) bg-(--n-panel-hover) [box-shadow:var(--n-elev)] hover:bg-(--n-panel-press) focus-within:bg-(--n-panel-press)`,outline:`${surfaceClasses} border [border-color:transparent] text-(--neba-fg) bg-(--n-panel) [box-shadow:var(--n-elev)] hover:bg-(--n-panel-hover) focus-within:bg-(--n-panel-hover)`,text:fieldRestClasses.text};export const fieldSheetReadOnlyClasses={solid:`${surfaceClasses} text-(--neba-fg) bg-(--n-panel-hover)`,outline:`${surfaceClasses} border [border-color:transparent] text-(--neba-fg) bg-(--n-panel)`,text:"text-(--neba-fg) bg-transparent"};export const fieldSheetDisabledClasses={solid:disabledClasses.solid,outline:"cursor-not-allowed border bg-transparent text-(--neba-disabled-fg) [border-color:transparent] shadow-none",text:disabledClasses.text};export const citationMarkClasses="inline-flex shrink-0 items-center justify-center rounded-[0.3em] min-w-[1.5em] px-[0.35em] py-[0.05em] bg-(--n-soft) text-[0.8em]/[1.6] font-semibold text-(--n-on-tint) tabular-nums";export const chipRemoveClasses="relative ms-0.5 inline-flex shrink-0 items-center justify-center rounded-full size-[1.15em] cursor-pointer opacity-70 neba-hit [transition:opacity_var(--neba-duration)_var(--neba-ease)] hover:opacity-100 focus-visible:opacity-100 focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:outline-offset-1 disabled:cursor-not-allowed";export const sheetCloseClasses="relative flex size-[1.6em] shrink-0 cursor-pointer items-center justify-center rounded-full text-(--neba-muted-fg) neba-hit [&_svg]:size-[1.1em] [&_svg]:shrink-0 [transition:background-color_var(--neba-duration)_var(--neba-ease),color_var(--neba-duration)_var(--neba-ease)] hover:bg-(--n-soft) hover:text-(--neba-fg) focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:outline-offset-2";export function hasContent(e){return null!=e&&!1!==e&&""!==e}export function toLength(e){if(null!=e)return"number"==typeof e?`${e}px`:e}const t=/^\s*(-?[\d.]+)\s*(px|rem|em|%)\s*$/;export function lengthUnit(e){const s=t.exec(e);if(s&&!Number.isNaN(Number(s[1])))return s[2]}export function toPixels(e,s){const r=t.exec(e);if(!r)return;const a=Number(r[1]);if(!Number.isNaN(a))switch(r[2]){case"px":return a;case"%":return s.percentOf*a/100;case"em":return a*n(s.relativeTo);default:return a*n("undefined"==typeof document?null:document.documentElement)}}function n(e){return e&&"undefined"!=typeof getComputedStyle&&parseFloat(getComputedStyle(e).fontSize)||16}export function cx(...e){return e.filter(Boolean).join(" ")}