@tribepad/themis 1.9.2 → 1.9.4

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/CHANGELOG.md CHANGED
@@ -5,6 +5,16 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.9.4] - 2026-06-29
9
+
10
+ ### Fixed
11
+ - **`RatingScale` endpoint labels no longer drift to opposite edges for `stars`/`buttons`.** The scale row laid `lowLabel · rating · highLabel` in a `flex … gap-2` and gave the rating wrapper `flex-1`. That is correct for the continuous `slider` (it should fill the row), but for the discrete `stars`/`buttons` styles the icons clump to the left of the stretched wrapper while `highLabel` is pushed to the far right — a large empty gap between the scale and the high-end label. `flex-1` is now applied only for `slider`; `stars`/`buttons` size to content so both endpoint labels sit next to the scale. Layout-only fix — no API changes.
12
+
13
+ ## [1.9.3] - 2026-06-29
14
+
15
+ ### Fixed
16
+ - **`Modal` now actually scrolls tall content inside `Modal.Body`.** 1.9.0 capped the centred box at `85vh` and gave `Modal.Body` `flex-1 overflow-y-auto`, but those flex/height classes lived on `AriaModal` while the regions (`Header`/`Tabs`/`Body`/`Footer`) are children of the intervening `AriaDialog` — which carried only `outline-none`. With no flex parent, `Modal.Body`'s `flex-1` had no effect, the dialog grew to full content height, and `AriaModal`'s `overflow-hidden` clipped the overflow with no scrollbar. The dialog wrapper now gets `flex flex-1 min-h-0 flex-col`, so it fills the capped box and becomes the flex column the regions need — `Modal.Body` scrolls while the header, tab strip, and footer stay pinned. Affected every modal taller than 85vh (tabbed or not). Layout-only fix — no API changes.
17
+
8
18
  ## [1.9.2] - 2026-06-27
9
19
 
10
20
  ### Fixed
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- 'use strict';var react=require('react'),reactAriaComponents=require('react-aria-components'),lucideReact=require('lucide-react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),classVarianceAuthority=require('class-variance-authority'),jsxRuntime=require('react/jsx-runtime'),zod=require('zod');function c(...e){return tailwindMerge.twMerge(clsx.clsx(e))}function Zt(e){if(!(e instanceof Element))return false;let t=e;for(let r=0;t&&r<100;r++){let i=t.tagName?.toLowerCase()??"";if(i.startsWith("grammarly-")||i.startsWith("lt-")||t.hasAttribute("data-grammarly-shadow-root"))return true;if(t.parentElement)t=t.parentElement;else {let d=t.getRootNode();t=d instanceof ShadowRoot?d.host:null;}}let o=e;for(;o&&!o.tagName.includes("-");)o=o.parentElement;if(!o)return false;let n=o.parentElement;return n===document.body||n===document.documentElement}function ot(e){return t=>!Zt(t)&&(e?.(t)??true)}function at(e){let t=react.useCallback(r=>{let i=window.matchMedia(e);return i.addEventListener("change",r),()=>i.removeEventListener("change",r)},[e]),o=react.useCallback(()=>window.matchMedia(e).matches,[e]),n=react.useCallback(()=>false,[]);return react.useSyncExternalStore(t,o,n)}var nt=["data-[entering]:animate-in","data-[entering]:fade-in-0","data-[entering]:zoom-in-95","data-[entering]:duration-200","data-[entering]:ease-out"],rt=["data-[exiting]:animate-out","data-[exiting]:fade-out-0","data-[exiting]:zoom-out-95","data-[exiting]:duration-150","data-[exiting]:ease-in"],it=["data-[entering]:animate-in","data-[entering]:fade-in-0","data-[entering]:slide-in-from-bottom-4","data-[entering]:duration-200","data-[entering]:ease-out"],st=["data-[exiting]:animate-out","data-[exiting]:fade-out-0","data-[exiting]:slide-out-to-bottom-4","data-[exiting]:duration-150","data-[exiting]:ease-in"],lt=["data-[entering]:animate-in","data-[entering]:slide-in-from-left","data-[entering]:duration-200","data-[entering]:ease-out"],dt=["data-[exiting]:animate-out","data-[exiting]:slide-out-to-left","data-[exiting]:duration-150","data-[exiting]:ease-in"],ct=["data-[entering]:animate-in","data-[entering]:slide-in-from-right","data-[entering]:duration-200","data-[entering]:ease-out"],ut=["data-[exiting]:animate-out","data-[exiting]:slide-out-to-right","data-[exiting]:duration-150","data-[exiting]:ease-in"],pt=["data-[entering]:animate-in","data-[entering]:slide-in-from-top","data-[entering]:duration-200","data-[entering]:ease-out"],mt=["data-[exiting]:animate-out","data-[exiting]:slide-out-to-top","data-[exiting]:duration-150","data-[exiting]:ease-in"],ft=["data-[entering]:animate-in","data-[entering]:slide-in-from-bottom","data-[entering]:duration-200","data-[entering]:ease-out"],gt=["data-[exiting]:animate-out","data-[exiting]:slide-out-to-bottom","data-[exiting]:duration-150","data-[exiting]:ease-in"],L=["data-[entering]:animate-in","data-[entering]:fade-in-0","data-[entering]:duration-200"],P=["data-[exiting]:animate-out","data-[exiting]:fade-out-0","data-[exiting]:duration-150"],R=["motion-reduce:transition-none","motion-reduce:animate-none"];var xt=classVarianceAuthority.cva(["relative","bg-[var(--content-background)]","text-[var(--content-foreground)]","rounded-lg","flex","flex-col","overflow-hidden","w-full","outline-none","mx-4","sm:mx-0",...R],{variants:{size:{sm:"max-w-sm max-h-[85vh]",md:"max-w-md max-h-[85vh]",lg:"max-w-lg max-h-[85vh]",xl:"max-w-2xl max-h-[85vh]",full:"max-w-full min-h-screen max-h-none rounded-none"},animation:{"fade-zoom":[...nt,...rt],fade:["data-[entering]:animate-in","data-[entering]:fade-in-0","data-[entering]:duration-200","data-[entering]:ease-out","data-[exiting]:animate-out","data-[exiting]:fade-out-0","data-[exiting]:duration-150","data-[exiting]:ease-in"],slide:[...it,...st],none:""}},defaultVariants:{size:"md",animation:"fade-zoom"}}),vt=classVarianceAuthority.cva(["fixed","inset-0","z-50","flex","bg-black/50","backdrop-blur-sm",...R],{variants:{animation:{"fade-zoom":[...L,...P],fade:[...L,...P],slide:[...L,...P],none:""},position:{center:"items-center justify-center",left:"items-stretch justify-start",right:"items-stretch justify-end",top:"items-start justify-center",bottom:"items-end justify-center"}},defaultVariants:{animation:"fade-zoom",position:"center"}}),j=classVarianceAuthority.cva(["relative","bg-[var(--content-background)]","text-[var(--content-foreground)]","flex","flex-col","overflow-hidden","outline-none",...R],{variants:{position:{left:"h-full border-r border-[var(--border)] rounded-r-lg",right:"h-full border-l border-[var(--border)] rounded-l-lg",top:"w-full border-b border-[var(--border)] rounded-b-lg",bottom:"w-full border-t border-[var(--border)] rounded-t-lg"},size:{sm:"",md:"",lg:"",xl:"",full:""}},compoundVariants:[{position:["left","right"],size:"sm",class:"w-[300px] max-w-[90vw]"},{position:["left","right"],size:"md",class:"w-[400px] max-w-[90vw]"},{position:["left","right"],size:"lg",class:"w-[500px] max-w-[90vw]"},{position:["left","right"],size:"xl",class:"w-[600px] max-w-[90vw]"},{position:["left","right"],size:"full",class:"w-screen"},{position:["top","bottom"],size:"sm",class:"h-[200px] max-h-[90vh]"},{position:["top","bottom"],size:"md",class:"h-[320px] max-h-[90vh]"},{position:["top","bottom"],size:"lg",class:"h-[440px] max-h-[90vh]"},{position:["top","bottom"],size:"xl",class:"h-[560px] max-h-[90vh]"},{position:["top","bottom"],size:"full",class:"h-screen"}],defaultVariants:{position:"right",size:"md"}}),bt={left:[...lt,...dt],right:[...ct,...ut],top:[...pt,...mt],bottom:[...ft,...gt]},ht=classVarianceAuthority.cva(["px-6","py-4","flex-1","min-h-0","overflow-y-auto"]),Et=classVarianceAuthority.cva(["[&_[role=tablist]]:flex","[&_[role=tablist]]:w-full","[&_[role=tablist]]:px-2"]);var X=react.createContext(void 0);function Mt({children:e,defaultOpen:t,isOpen:o,onOpenChange:n,role:r="dialog"}){let i=react.Children.toArray(e);if(process.env.NODE_ENV!=="production"&&!i.some(u=>react.isValidElement(u)&&(u.type===M||u.type.displayName==="ModalContent")))throw new Error("Modal requires a Modal.Content as a child");let d=i.find(a=>react.isValidElement(a)&&(a.type===T||a.type.displayName==="ModalTrigger")),f=i.find(a=>react.isValidElement(a)&&(a.type===M||a.type.displayName==="ModalContent"));if(!d)return jsxRuntime.jsx(X.Provider,{value:{role:r},children:jsxRuntime.jsx(reactAriaComponents.DialogTrigger,{defaultOpen:t,isOpen:o,onOpenChange:n,children:f})});let g=d,x=react.isValidElement(g)?g.props.children:null;return jsxRuntime.jsx(X.Provider,{value:{role:r},children:jsxRuntime.jsxs(reactAriaComponents.DialogTrigger,{defaultOpen:t,isOpen:o,onOpenChange:n,children:[x,f]})})}Mt.displayName="Modal";function T({children:e}){return e}T.displayName="ModalTrigger";function M({children:e,size:t="md",animation:o="fade-zoom",position:n="center",mobileBreakpoint:r=768,animationDuration:i=250,isDismissable:d=true,isKeyboardDismissDisabled:h=false,shouldCloseOnInteractOutside:f,showClose:g=true,className:x}){let u=react.useContext(X)?.role??"dialog",E=n!=="center",_=at(`(max-width: ${r-1}px)`),v=E&&_?"bottom":n,I=vt({animation:o,position:v}),O;if(E){let p=v,C=_?c(j({position:"bottom",size:t}),"h-auto max-h-[85vh]"):j({position:p,size:t}),F=o==="none"?void 0:bt[p];O=c(C,F,x);}else O=c(xt({size:t,animation:o}),x);return jsxRuntime.jsx(reactAriaComponents.ModalOverlay,{isDismissable:d,isKeyboardDismissDisabled:h,shouldCloseOnInteractOutside:ot(f),className:I,children:jsxRuntime.jsx(reactAriaComponents.Modal,{className:O,style:{transitionDuration:`${i}ms`},children:jsxRuntime.jsx(reactAriaComponents.Dialog,{role:u,className:"outline-none",children:({close:p})=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[g&&jsxRuntime.jsx(reactAriaComponents.Button,{onPress:p,className:"absolute right-0 top-0 flex items-center justify-center rounded-sm opacity-70 ring-offset-[var(--content-background)] transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-[var(--ring)] focus:ring-offset-2 disabled:pointer-events-none min-h-[44px] min-w-[44px]","aria-label":"Close modal",children:jsxRuntime.jsx(lucideReact.X,{className:"h-4 w-4","aria-hidden":"true"})}),e]})})})})}M.displayName="ModalContent";function yt(e){return null}yt.displayName="ModalOverlay";function w({children:e,className:t}){return jsxRuntime.jsx("div",{className:c("flex flex-col space-y-1.5 px-6 pt-6 pb-4 pr-12 text-center sm:text-left",t),children:e})}w.displayName="ModalHeader";function B({children:e,as:t="h2",className:o}){return jsxRuntime.jsx(reactAriaComponents.Heading,{slot:"title",level:parseInt(t[1]??"2"),className:c("text-lg font-semibold leading-none tracking-tight",o),children:e})}B.displayName="ModalTitle";function z({children:e,className:t}){return jsxRuntime.jsx("p",{slot:"description",className:c("text-sm text-[var(--menu-muted)]",t),children:e})}z.displayName="ModalDescription";function At({children:e,className:t}){return jsxRuntime.jsx("div",{className:c(Et(),t),children:e})}At.displayName="ModalTabs";function Dt({children:e,className:t}){return jsxRuntime.jsx("div",{className:c(ht(),t),children:e})}Dt.displayName="ModalBody";function G({children:e,className:t}){return jsxRuntime.jsx("div",{className:c("flex flex-col-reverse sm:flex-row sm:justify-end gap-2 px-6 pb-6 pt-4",t),children:e})}G.displayName="ModalFooter";function S({children:e}){let t=react.useContext(reactAriaComponents.OverlayTriggerStateContext);if(!t)throw new Error("Modal.Close must be used inside Modal.Content");if(!react.isValidElement(e))throw new Error("Modal.Close requires a valid React element as a child");let o=e,n=()=>{t.close();},r=o.props?.onPress;return react.cloneElement(o,{onPress:r?()=>{r(),n();}:n})}S.displayName="ModalClose";var Tt=Object.assign(Mt,{Trigger:T,Content:M,Overlay:yt,Header:w,Title:B,Description:z,Tabs:At,Body:Dt,Footer:G,Close:S});var It=classVarianceAuthority.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}}),Ct=classVarianceAuthority.cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-normal ring-offset-background motion-safe:transition-transform motion-safe:duration-200 motion-safe:[transition-timing-function:cubic-bezier(0.34,1.56,0.64,1)] motion-reduce:transition-none [&_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)] hover:-translate-y-1",destructive:"bg-[var(--destructive-background)] text-[var(--destructive-foreground)] hover:bg-[var(--destructive-background-hover,var(--destructive-background))] motion-safe:hover:btn-warn-shake",outline:"border border-[var(--input-border)] bg-[var(--page-background)] hover:bg-[var(--input-border)]",secondary:"bg-[var(--secondary)] text-[var(--secondary-foreground)] hover:bg-[var(--secondary-hover,var(--secondary))]",ghost:"hover:bg-[var(--accent)] hover:text-[var(--accent-foreground)]",link:"text-[var(--text-link)] underline underline-offset-4 hover:bg-[var(--accent)] hover: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-6 text-base",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)] hover:!bg-[var(--paywall)]/90 !cursor-not-allowed !border-transparent",false:""}},defaultVariants:{variant:"default",visualSize:"default",paywall:false}});var Z="data-[pressed]:scale-[0.97]";var H="hc:data-[hovered]:outline hc:data-[hovered]:outline-2 hc:data-[hovered]:outline-foreground",U="hc:data-[pressed]:outline hc:data-[pressed]:outline-2 hc:data-[pressed]:outline-offset-1 hc:data-[pressed]:outline-foreground";var Rt=react.createContext(null);Rt.displayName="ButtonGroupContext";function wt(){return react.useContext(Rt)}var Bt=react.createContext(null);Bt.displayName="ButtonGroupItemContext";function zt(){return react.useContext(Bt)}classVarianceAuthority.cva("inline-flex items-center gap-0",{variants:{orientation:{horizontal:"flex-row",vertical:"flex-col w-full"}},defaultVariants:{orientation:"horizontal"}});var Gt=classVarianceAuthority.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"}});classVarianceAuthority.cva("bg-[var(--border)]",{variants:{orientation:{horizontal:"w-px h-6 mx-1",vertical:"h-px w-full my-1"}},defaultVariants:{orientation:"horizontal"}});var k=react.memo(react.forwardRef(({className:e,buttonVisualClassName:t,variant:o,size:n,visualSize:r,fullWidth:i,loading:d=false,loadingText:h="Loading...",shortcut:f,children:g,isDisabled:x,paywall:a=false,paywallRedirect:u,paywallDescription:E,onPress:_,...v},I)=>{let O=react.useId(),p=wt(),C=zt(),F=o??p?.variant??"default",$t=n??p?.size,Yt=x??p?.isDisabled??false,tt=p?.orientation==="vertical",et=i||tt,Wt=C?Gt({orientation:p?.orientation??"horizontal",position:C.position}):"",$=r??$t??"default";return process.env.NODE_ENV!=="production"&&($==="dot"||$==="icon")&&!v["aria-label"]&&!g&&console.warn('[Button] visualSize="dot" or "icon" requires aria-label when no visible text is provided (WCAG 1.1.1)'),jsxRuntime.jsx(reactAriaComponents.Button,{ref:I,isDisabled:Yt||d||void 0,"aria-disabled":a?true:void 0,"aria-describedby":a?O:void 0,onPress:V=>{if(a){u&&window.open(u,"_blank","noopener,noreferrer");return}_?.(V);},className:c(It({fullWidth:et,inVerticalGroup:tt}),e),...v,children:V=>jsxRuntime.jsxs("span",{className:c(Ct({variant:F,visualSize:$,paywall:a,fullWidth:et}),Wt,t,Z,"",H,U),"data-pressed":V.isPressed||void 0,children:[d&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(lucideReact.Loader2,{className:"motion-safe:animate-spin","aria-hidden":"true"}),jsxRuntime.jsx("span",{className:"sr-only","aria-live":"polite",children:h})]}),!d&&g,a&&jsxRuntime.jsx(lucideReact.Zap,{"data-testid":"zap-icon","aria-hidden":"true",className:"ml-1"}),a&&jsxRuntime.jsxs("span",{id:O,className:"sr-only",children:["Premium feature: ",E||"Upgrade required to access this feature"]}),V.isFocusVisible&&f&&jsxRuntime.jsx("kbd",{className:"ml-auto hidden text-xs opacity-60 lg:inline",children:f})]})})}));k.displayName="Button";var J=classVarianceAuthority.cva("border border-[var(--border)]",{variants:{variant:{default:"",destructive:"border-[var(--destructive-background)]"}},defaultVariants:{variant:"default"}});function Ht({trigger:e,isOpen:t,defaultOpen:o=false,onOpenChange:n,title:r,description:i,children:d,variant:h="default",size:f="md",cancelLabel:g="Cancel",cancelIcon:x,actionLabel:a,actionIcon:u,actionVariant:E="destructive",onAction:_,className:v}){return jsxRuntime.jsxs(Tt,{role:"alertdialog",isOpen:t,defaultOpen:o,onOpenChange:n,children:[jsxRuntime.jsx(T,{children:e}),jsxRuntime.jsxs(M,{size:f,isDismissable:false,isKeyboardDismissDisabled:true,showClose:false,animation:"fade-zoom",animationDuration:250,className:J({variant:h})+(v?` ${v}`:""),children:[jsxRuntime.jsxs(w,{children:[jsxRuntime.jsx(B,{as:"h2",children:r}),i&&jsxRuntime.jsx(z,{children:i})]}),d,jsxRuntime.jsxs(G,{children:[jsxRuntime.jsx(S,{children:jsxRuntime.jsxs(k,{variant:"secondary",children:[x&&jsxRuntime.jsx("span",{className:"mr-2","aria-hidden":"true",children:x}),g]})}),jsxRuntime.jsx(S,{children:jsxRuntime.jsxs(k,{variant:E,onPress:_,children:[u&&jsxRuntime.jsx("span",{className:"mr-2","aria-hidden":"true",children:u}),a]})})]})]})]})}Ht.displayName="AlertDialog";var Ut=zod.z.object({className:zod.z.string().optional(),children:zod.z.any().optional(),id:zod.z.string().optional(),"aria-label":zod.z.string().optional(),"aria-labelledby":zod.z.string().optional(),"aria-describedby":zod.z.string().optional(),"aria-live":zod.z.enum(["off","polite","assertive"]).optional(),"aria-hidden":zod.z.boolean().optional(),"data-testid":zod.z.string().optional()});var kt=zod.z.enum(["default","destructive"]),Ft=zod.z.enum(["sm","md","lg"]),ve=Ut.extend({trigger:zod.z.custom(),isOpen:zod.z.boolean().optional(),defaultOpen:zod.z.boolean().optional().default(false),onOpenChange:zod.z.custom().optional(),title:zod.z.string(),description:zod.z.string().optional(),children:zod.z.custom().optional(),variant:kt.optional().default("default"),size:Ft.optional().default("md"),cancelLabel:zod.z.string().optional().default("Cancel"),cancelIcon:zod.z.custom().optional(),actionLabel:zod.z.string(),actionIcon:zod.z.custom().optional(),actionVariant:zod.z.enum(["default","destructive"]).optional().default("destructive"),onAction:zod.z.custom().optional()});exports.AlertDialog=Ht;exports.AlertDialogPropsSchema=ve;exports.AlertDialogSizeSchema=Ft;exports.AlertDialogVariantSchema=kt;exports.alertDialogContentVariants=J;//# sourceMappingURL=index.js.map
2
+ 'use strict';var react=require('react'),reactAriaComponents=require('react-aria-components'),lucideReact=require('lucide-react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),classVarianceAuthority=require('class-variance-authority'),jsxRuntime=require('react/jsx-runtime'),zod=require('zod');function c(...e){return tailwindMerge.twMerge(clsx.clsx(e))}function Zt(e){if(!(e instanceof Element))return false;let t=e;for(let r=0;t&&r<100;r++){let i=t.tagName?.toLowerCase()??"";if(i.startsWith("grammarly-")||i.startsWith("lt-")||t.hasAttribute("data-grammarly-shadow-root"))return true;if(t.parentElement)t=t.parentElement;else {let d=t.getRootNode();t=d instanceof ShadowRoot?d.host:null;}}let o=e;for(;o&&!o.tagName.includes("-");)o=o.parentElement;if(!o)return false;let n=o.parentElement;return n===document.body||n===document.documentElement}function ot(e){return t=>!Zt(t)&&(e?.(t)??true)}function at(e){let t=react.useCallback(r=>{let i=window.matchMedia(e);return i.addEventListener("change",r),()=>i.removeEventListener("change",r)},[e]),o=react.useCallback(()=>window.matchMedia(e).matches,[e]),n=react.useCallback(()=>false,[]);return react.useSyncExternalStore(t,o,n)}var nt=["data-[entering]:animate-in","data-[entering]:fade-in-0","data-[entering]:zoom-in-95","data-[entering]:duration-200","data-[entering]:ease-out"],rt=["data-[exiting]:animate-out","data-[exiting]:fade-out-0","data-[exiting]:zoom-out-95","data-[exiting]:duration-150","data-[exiting]:ease-in"],it=["data-[entering]:animate-in","data-[entering]:fade-in-0","data-[entering]:slide-in-from-bottom-4","data-[entering]:duration-200","data-[entering]:ease-out"],st=["data-[exiting]:animate-out","data-[exiting]:fade-out-0","data-[exiting]:slide-out-to-bottom-4","data-[exiting]:duration-150","data-[exiting]:ease-in"],lt=["data-[entering]:animate-in","data-[entering]:slide-in-from-left","data-[entering]:duration-200","data-[entering]:ease-out"],dt=["data-[exiting]:animate-out","data-[exiting]:slide-out-to-left","data-[exiting]:duration-150","data-[exiting]:ease-in"],ct=["data-[entering]:animate-in","data-[entering]:slide-in-from-right","data-[entering]:duration-200","data-[entering]:ease-out"],ut=["data-[exiting]:animate-out","data-[exiting]:slide-out-to-right","data-[exiting]:duration-150","data-[exiting]:ease-in"],pt=["data-[entering]:animate-in","data-[entering]:slide-in-from-top","data-[entering]:duration-200","data-[entering]:ease-out"],mt=["data-[exiting]:animate-out","data-[exiting]:slide-out-to-top","data-[exiting]:duration-150","data-[exiting]:ease-in"],ft=["data-[entering]:animate-in","data-[entering]:slide-in-from-bottom","data-[entering]:duration-200","data-[entering]:ease-out"],gt=["data-[exiting]:animate-out","data-[exiting]:slide-out-to-bottom","data-[exiting]:duration-150","data-[exiting]:ease-in"],L=["data-[entering]:animate-in","data-[entering]:fade-in-0","data-[entering]:duration-200"],P=["data-[exiting]:animate-out","data-[exiting]:fade-out-0","data-[exiting]:duration-150"],R=["motion-reduce:transition-none","motion-reduce:animate-none"];var xt=classVarianceAuthority.cva(["relative","bg-[var(--content-background)]","text-[var(--content-foreground)]","rounded-lg","flex","flex-col","overflow-hidden","w-full","outline-none","mx-4","sm:mx-0",...R],{variants:{size:{sm:"max-w-sm max-h-[85vh]",md:"max-w-md max-h-[85vh]",lg:"max-w-lg max-h-[85vh]",xl:"max-w-2xl max-h-[85vh]",full:"max-w-full min-h-screen max-h-none rounded-none"},animation:{"fade-zoom":[...nt,...rt],fade:["data-[entering]:animate-in","data-[entering]:fade-in-0","data-[entering]:duration-200","data-[entering]:ease-out","data-[exiting]:animate-out","data-[exiting]:fade-out-0","data-[exiting]:duration-150","data-[exiting]:ease-in"],slide:[...it,...st],none:""}},defaultVariants:{size:"md",animation:"fade-zoom"}}),vt=classVarianceAuthority.cva(["fixed","inset-0","z-50","flex","bg-black/50","backdrop-blur-sm",...R],{variants:{animation:{"fade-zoom":[...L,...P],fade:[...L,...P],slide:[...L,...P],none:""},position:{center:"items-center justify-center",left:"items-stretch justify-start",right:"items-stretch justify-end",top:"items-start justify-center",bottom:"items-end justify-center"}},defaultVariants:{animation:"fade-zoom",position:"center"}}),j=classVarianceAuthority.cva(["relative","bg-[var(--content-background)]","text-[var(--content-foreground)]","flex","flex-col","overflow-hidden","outline-none",...R],{variants:{position:{left:"h-full border-r border-[var(--border)] rounded-r-lg",right:"h-full border-l border-[var(--border)] rounded-l-lg",top:"w-full border-b border-[var(--border)] rounded-b-lg",bottom:"w-full border-t border-[var(--border)] rounded-t-lg"},size:{sm:"",md:"",lg:"",xl:"",full:""}},compoundVariants:[{position:["left","right"],size:"sm",class:"w-[300px] max-w-[90vw]"},{position:["left","right"],size:"md",class:"w-[400px] max-w-[90vw]"},{position:["left","right"],size:"lg",class:"w-[500px] max-w-[90vw]"},{position:["left","right"],size:"xl",class:"w-[600px] max-w-[90vw]"},{position:["left","right"],size:"full",class:"w-screen"},{position:["top","bottom"],size:"sm",class:"h-[200px] max-h-[90vh]"},{position:["top","bottom"],size:"md",class:"h-[320px] max-h-[90vh]"},{position:["top","bottom"],size:"lg",class:"h-[440px] max-h-[90vh]"},{position:["top","bottom"],size:"xl",class:"h-[560px] max-h-[90vh]"},{position:["top","bottom"],size:"full",class:"h-screen"}],defaultVariants:{position:"right",size:"md"}}),bt={left:[...lt,...dt],right:[...ct,...ut],top:[...pt,...mt],bottom:[...ft,...gt]},ht=classVarianceAuthority.cva(["px-6","py-4","flex-1","min-h-0","overflow-y-auto"]),Et=classVarianceAuthority.cva(["[&_[role=tablist]]:flex","[&_[role=tablist]]:w-full","[&_[role=tablist]]:px-2"]);var X=react.createContext(void 0);function Mt({children:e,defaultOpen:t,isOpen:o,onOpenChange:n,role:r="dialog"}){let i=react.Children.toArray(e);if(process.env.NODE_ENV!=="production"&&!i.some(u=>react.isValidElement(u)&&(u.type===M||u.type.displayName==="ModalContent")))throw new Error("Modal requires a Modal.Content as a child");let d=i.find(a=>react.isValidElement(a)&&(a.type===T||a.type.displayName==="ModalTrigger")),f=i.find(a=>react.isValidElement(a)&&(a.type===M||a.type.displayName==="ModalContent"));if(!d)return jsxRuntime.jsx(X.Provider,{value:{role:r},children:jsxRuntime.jsx(reactAriaComponents.DialogTrigger,{defaultOpen:t,isOpen:o,onOpenChange:n,children:f})});let g=d,x=react.isValidElement(g)?g.props.children:null;return jsxRuntime.jsx(X.Provider,{value:{role:r},children:jsxRuntime.jsxs(reactAriaComponents.DialogTrigger,{defaultOpen:t,isOpen:o,onOpenChange:n,children:[x,f]})})}Mt.displayName="Modal";function T({children:e}){return e}T.displayName="ModalTrigger";function M({children:e,size:t="md",animation:o="fade-zoom",position:n="center",mobileBreakpoint:r=768,animationDuration:i=250,isDismissable:d=true,isKeyboardDismissDisabled:h=false,shouldCloseOnInteractOutside:f,showClose:g=true,className:x}){let u=react.useContext(X)?.role??"dialog",E=n!=="center",_=at(`(max-width: ${r-1}px)`),v=E&&_?"bottom":n,I=vt({animation:o,position:v}),O;if(E){let p=v,C=_?c(j({position:"bottom",size:t}),"h-auto max-h-[85vh]"):j({position:p,size:t}),F=o==="none"?void 0:bt[p];O=c(C,F,x);}else O=c(xt({size:t,animation:o}),x);return jsxRuntime.jsx(reactAriaComponents.ModalOverlay,{isDismissable:d,isKeyboardDismissDisabled:h,shouldCloseOnInteractOutside:ot(f),className:I,children:jsxRuntime.jsx(reactAriaComponents.Modal,{className:O,style:{transitionDuration:`${i}ms`},children:jsxRuntime.jsx(reactAriaComponents.Dialog,{role:u,className:"flex flex-1 min-h-0 flex-col outline-none",children:({close:p})=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[g&&jsxRuntime.jsx(reactAriaComponents.Button,{onPress:p,className:"absolute right-0 top-0 flex items-center justify-center rounded-sm opacity-70 ring-offset-[var(--content-background)] transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-[var(--ring)] focus:ring-offset-2 disabled:pointer-events-none min-h-[44px] min-w-[44px]","aria-label":"Close modal",children:jsxRuntime.jsx(lucideReact.X,{className:"h-4 w-4","aria-hidden":"true"})}),e]})})})})}M.displayName="ModalContent";function yt(e){return null}yt.displayName="ModalOverlay";function w({children:e,className:t}){return jsxRuntime.jsx("div",{className:c("flex flex-col space-y-1.5 px-6 pt-6 pb-4 pr-12 text-center sm:text-left",t),children:e})}w.displayName="ModalHeader";function B({children:e,as:t="h2",className:o}){return jsxRuntime.jsx(reactAriaComponents.Heading,{slot:"title",level:parseInt(t[1]??"2"),className:c("text-lg font-semibold leading-none tracking-tight",o),children:e})}B.displayName="ModalTitle";function z({children:e,className:t}){return jsxRuntime.jsx("p",{slot:"description",className:c("text-sm text-[var(--menu-muted)]",t),children:e})}z.displayName="ModalDescription";function At({children:e,className:t}){return jsxRuntime.jsx("div",{className:c(Et(),t),children:e})}At.displayName="ModalTabs";function Dt({children:e,className:t}){return jsxRuntime.jsx("div",{className:c(ht(),t),children:e})}Dt.displayName="ModalBody";function G({children:e,className:t}){return jsxRuntime.jsx("div",{className:c("flex flex-col-reverse sm:flex-row sm:justify-end gap-2 px-6 pb-6 pt-4",t),children:e})}G.displayName="ModalFooter";function S({children:e}){let t=react.useContext(reactAriaComponents.OverlayTriggerStateContext);if(!t)throw new Error("Modal.Close must be used inside Modal.Content");if(!react.isValidElement(e))throw new Error("Modal.Close requires a valid React element as a child");let o=e,n=()=>{t.close();},r=o.props?.onPress;return react.cloneElement(o,{onPress:r?()=>{r(),n();}:n})}S.displayName="ModalClose";var Tt=Object.assign(Mt,{Trigger:T,Content:M,Overlay:yt,Header:w,Title:B,Description:z,Tabs:At,Body:Dt,Footer:G,Close:S});var It=classVarianceAuthority.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}}),Ct=classVarianceAuthority.cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-normal ring-offset-background motion-safe:transition-transform motion-safe:duration-200 motion-safe:[transition-timing-function:cubic-bezier(0.34,1.56,0.64,1)] motion-reduce:transition-none [&_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)] hover:-translate-y-1",destructive:"bg-[var(--destructive-background)] text-[var(--destructive-foreground)] hover:bg-[var(--destructive-background-hover,var(--destructive-background))] motion-safe:hover:btn-warn-shake",outline:"border border-[var(--input-border)] bg-[var(--page-background)] hover:bg-[var(--input-border)]",secondary:"bg-[var(--secondary)] text-[var(--secondary-foreground)] hover:bg-[var(--secondary-hover,var(--secondary))]",ghost:"hover:bg-[var(--accent)] hover:text-[var(--accent-foreground)]",link:"text-[var(--text-link)] underline underline-offset-4 hover:bg-[var(--accent)] hover: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-6 text-base",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)] hover:!bg-[var(--paywall)]/90 !cursor-not-allowed !border-transparent",false:""}},defaultVariants:{variant:"default",visualSize:"default",paywall:false}});var Z="data-[pressed]:scale-[0.97]";var H="hc:data-[hovered]:outline hc:data-[hovered]:outline-2 hc:data-[hovered]:outline-foreground",U="hc:data-[pressed]:outline hc:data-[pressed]:outline-2 hc:data-[pressed]:outline-offset-1 hc:data-[pressed]:outline-foreground";var Rt=react.createContext(null);Rt.displayName="ButtonGroupContext";function wt(){return react.useContext(Rt)}var Bt=react.createContext(null);Bt.displayName="ButtonGroupItemContext";function zt(){return react.useContext(Bt)}classVarianceAuthority.cva("inline-flex items-center gap-0",{variants:{orientation:{horizontal:"flex-row",vertical:"flex-col w-full"}},defaultVariants:{orientation:"horizontal"}});var Gt=classVarianceAuthority.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"}});classVarianceAuthority.cva("bg-[var(--border)]",{variants:{orientation:{horizontal:"w-px h-6 mx-1",vertical:"h-px w-full my-1"}},defaultVariants:{orientation:"horizontal"}});var k=react.memo(react.forwardRef(({className:e,buttonVisualClassName:t,variant:o,size:n,visualSize:r,fullWidth:i,loading:d=false,loadingText:h="Loading...",shortcut:f,children:g,isDisabled:x,paywall:a=false,paywallRedirect:u,paywallDescription:E,onPress:_,...v},I)=>{let O=react.useId(),p=wt(),C=zt(),F=o??p?.variant??"default",$t=n??p?.size,Yt=x??p?.isDisabled??false,tt=p?.orientation==="vertical",et=i||tt,Wt=C?Gt({orientation:p?.orientation??"horizontal",position:C.position}):"",$=r??$t??"default";return process.env.NODE_ENV!=="production"&&($==="dot"||$==="icon")&&!v["aria-label"]&&!g&&console.warn('[Button] visualSize="dot" or "icon" requires aria-label when no visible text is provided (WCAG 1.1.1)'),jsxRuntime.jsx(reactAriaComponents.Button,{ref:I,isDisabled:Yt||d||void 0,"aria-disabled":a?true:void 0,"aria-describedby":a?O:void 0,onPress:V=>{if(a){u&&window.open(u,"_blank","noopener,noreferrer");return}_?.(V);},className:c(It({fullWidth:et,inVerticalGroup:tt}),e),...v,children:V=>jsxRuntime.jsxs("span",{className:c(Ct({variant:F,visualSize:$,paywall:a,fullWidth:et}),Wt,t,Z,"",H,U),"data-pressed":V.isPressed||void 0,children:[d&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(lucideReact.Loader2,{className:"motion-safe:animate-spin","aria-hidden":"true"}),jsxRuntime.jsx("span",{className:"sr-only","aria-live":"polite",children:h})]}),!d&&g,a&&jsxRuntime.jsx(lucideReact.Zap,{"data-testid":"zap-icon","aria-hidden":"true",className:"ml-1"}),a&&jsxRuntime.jsxs("span",{id:O,className:"sr-only",children:["Premium feature: ",E||"Upgrade required to access this feature"]}),V.isFocusVisible&&f&&jsxRuntime.jsx("kbd",{className:"ml-auto hidden text-xs opacity-60 lg:inline",children:f})]})})}));k.displayName="Button";var J=classVarianceAuthority.cva("border border-[var(--border)]",{variants:{variant:{default:"",destructive:"border-[var(--destructive-background)]"}},defaultVariants:{variant:"default"}});function Ht({trigger:e,isOpen:t,defaultOpen:o=false,onOpenChange:n,title:r,description:i,children:d,variant:h="default",size:f="md",cancelLabel:g="Cancel",cancelIcon:x,actionLabel:a,actionIcon:u,actionVariant:E="destructive",onAction:_,className:v}){return jsxRuntime.jsxs(Tt,{role:"alertdialog",isOpen:t,defaultOpen:o,onOpenChange:n,children:[jsxRuntime.jsx(T,{children:e}),jsxRuntime.jsxs(M,{size:f,isDismissable:false,isKeyboardDismissDisabled:true,showClose:false,animation:"fade-zoom",animationDuration:250,className:J({variant:h})+(v?` ${v}`:""),children:[jsxRuntime.jsxs(w,{children:[jsxRuntime.jsx(B,{as:"h2",children:r}),i&&jsxRuntime.jsx(z,{children:i})]}),d,jsxRuntime.jsxs(G,{children:[jsxRuntime.jsx(S,{children:jsxRuntime.jsxs(k,{variant:"secondary",children:[x&&jsxRuntime.jsx("span",{className:"mr-2","aria-hidden":"true",children:x}),g]})}),jsxRuntime.jsx(S,{children:jsxRuntime.jsxs(k,{variant:E,onPress:_,children:[u&&jsxRuntime.jsx("span",{className:"mr-2","aria-hidden":"true",children:u}),a]})})]})]})]})}Ht.displayName="AlertDialog";var Ut=zod.z.object({className:zod.z.string().optional(),children:zod.z.any().optional(),id:zod.z.string().optional(),"aria-label":zod.z.string().optional(),"aria-labelledby":zod.z.string().optional(),"aria-describedby":zod.z.string().optional(),"aria-live":zod.z.enum(["off","polite","assertive"]).optional(),"aria-hidden":zod.z.boolean().optional(),"data-testid":zod.z.string().optional()});var kt=zod.z.enum(["default","destructive"]),Ft=zod.z.enum(["sm","md","lg"]),ve=Ut.extend({trigger:zod.z.custom(),isOpen:zod.z.boolean().optional(),defaultOpen:zod.z.boolean().optional().default(false),onOpenChange:zod.z.custom().optional(),title:zod.z.string(),description:zod.z.string().optional(),children:zod.z.custom().optional(),variant:kt.optional().default("default"),size:Ft.optional().default("md"),cancelLabel:zod.z.string().optional().default("Cancel"),cancelIcon:zod.z.custom().optional(),actionLabel:zod.z.string(),actionIcon:zod.z.custom().optional(),actionVariant:zod.z.enum(["default","destructive"]).optional().default("destructive"),onAction:zod.z.custom().optional()});exports.AlertDialog=Ht;exports.AlertDialogPropsSchema=ve;exports.AlertDialogSizeSchema=Ft;exports.AlertDialogVariantSchema=kt;exports.alertDialogContentVariants=J;//# sourceMappingURL=index.js.map
3
3
  //# sourceMappingURL=index.js.map