@tribepad/themis 1.9.3 → 1.9.5

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.
Files changed (133) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/elements/AlertDialog/index.js +1 -1
  3. package/dist/elements/AlertDialog/index.js.map +1 -1
  4. package/dist/elements/AlertDialog/index.mjs +1 -1
  5. package/dist/elements/AlertDialog/index.mjs.map +1 -1
  6. package/dist/elements/Breadcrumbs/index.js +1 -1
  7. package/dist/elements/Breadcrumbs/index.js.map +1 -1
  8. package/dist/elements/Breadcrumbs/index.mjs +1 -1
  9. package/dist/elements/Breadcrumbs/index.mjs.map +1 -1
  10. package/dist/elements/Button/index.js +1 -1
  11. package/dist/elements/Button/index.js.map +1 -1
  12. package/dist/elements/Button/index.mjs +1 -1
  13. package/dist/elements/Button/index.mjs.map +1 -1
  14. package/dist/elements/Card/index.js +1 -1
  15. package/dist/elements/Card/index.js.map +1 -1
  16. package/dist/elements/Card/index.mjs +1 -1
  17. package/dist/elements/Card/index.mjs.map +1 -1
  18. package/dist/elements/Carousel/Carousel.d.ts +8 -1
  19. package/dist/elements/Carousel/Carousel.d.ts.map +1 -1
  20. package/dist/elements/Carousel/LazyCarousel.d.ts +1 -1
  21. package/dist/elements/Carousel/LazyCarousel.d.ts.map +1 -1
  22. package/dist/elements/Carousel/index.js +1 -1
  23. package/dist/elements/Carousel/index.js.map +1 -1
  24. package/dist/elements/Carousel/index.mjs +1 -1
  25. package/dist/elements/Carousel/index.mjs.map +1 -1
  26. package/dist/elements/ChatInterface/ChatLiveRegions.d.ts +2 -2
  27. package/dist/elements/ChatInterface/ChatLiveRegions.d.ts.map +1 -1
  28. package/dist/elements/ChatInterface/ChatMessageBubble.d.ts +1 -1
  29. package/dist/elements/ChatInterface/ChatMessageBubble.d.ts.map +1 -1
  30. package/dist/elements/ChatInterface/ChatThinkingDisplay.d.ts +2 -2
  31. package/dist/elements/ChatInterface/ChatThinkingDisplay.d.ts.map +1 -1
  32. package/dist/elements/ChatInterface/ChatTypingIndicator.d.ts +2 -2
  33. package/dist/elements/ChatInterface/ChatTypingIndicator.d.ts.map +1 -1
  34. package/dist/elements/ChatInterface/index.js +1 -1
  35. package/dist/elements/ChatInterface/index.js.map +1 -1
  36. package/dist/elements/ChatInterface/index.mjs +1 -1
  37. package/dist/elements/ChatInterface/index.mjs.map +1 -1
  38. package/dist/elements/FeatureIcon/FeatureIcon.d.ts +3 -0
  39. package/dist/elements/FeatureIcon/FeatureIcon.d.ts.map +1 -0
  40. package/dist/elements/FeatureIcon/FeatureIcon.styles.d.ts +17 -0
  41. package/dist/elements/FeatureIcon/FeatureIcon.styles.d.ts.map +1 -0
  42. package/dist/elements/FeatureIcon/FeatureIcon.types.d.ts +137 -0
  43. package/dist/elements/FeatureIcon/FeatureIcon.types.d.ts.map +1 -0
  44. package/dist/elements/FeatureIcon/index.d.ts +25 -0
  45. package/dist/elements/FeatureIcon/index.d.ts.map +1 -0
  46. package/dist/elements/FeatureIcon/index.js +3 -0
  47. package/dist/elements/FeatureIcon/index.js.map +1 -0
  48. package/dist/elements/FeatureIcon/index.mjs +3 -0
  49. package/dist/elements/FeatureIcon/index.mjs.map +1 -0
  50. package/dist/elements/FileField/index.js +1 -1
  51. package/dist/elements/FileField/index.js.map +1 -1
  52. package/dist/elements/FileField/index.mjs +1 -1
  53. package/dist/elements/FileField/index.mjs.map +1 -1
  54. package/dist/elements/Filters/index.js +1 -1
  55. package/dist/elements/Filters/index.js.map +1 -1
  56. package/dist/elements/Filters/index.mjs +1 -1
  57. package/dist/elements/Filters/index.mjs.map +1 -1
  58. package/dist/elements/Modal/Modal.styles.d.ts +2 -2
  59. package/dist/elements/Modal/Modal.types.d.ts +2 -2
  60. package/dist/elements/NumberField/index.js +1 -1
  61. package/dist/elements/NumberField/index.js.map +1 -1
  62. package/dist/elements/NumberField/index.mjs +1 -1
  63. package/dist/elements/NumberField/index.mjs.map +1 -1
  64. package/dist/elements/PageTitle/index.js +1 -1
  65. package/dist/elements/PageTitle/index.js.map +1 -1
  66. package/dist/elements/PageTitle/index.mjs +1 -1
  67. package/dist/elements/PageTitle/index.mjs.map +1 -1
  68. package/dist/elements/Pagination/index.js +1 -1
  69. package/dist/elements/Pagination/index.js.map +1 -1
  70. package/dist/elements/Pagination/index.mjs +1 -1
  71. package/dist/elements/Pagination/index.mjs.map +1 -1
  72. package/dist/elements/Panel/Panel.d.ts +1 -1
  73. package/dist/elements/Panel/Panel.types.d.ts +2 -2
  74. package/dist/elements/PasswordField/index.js +1 -1
  75. package/dist/elements/PasswordField/index.js.map +1 -1
  76. package/dist/elements/PasswordField/index.mjs +1 -1
  77. package/dist/elements/PasswordField/index.mjs.map +1 -1
  78. package/dist/elements/RatingScale/RatingScale.d.ts.map +1 -1
  79. package/dist/elements/RatingScale/index.js +1 -1
  80. package/dist/elements/RatingScale/index.js.map +1 -1
  81. package/dist/elements/RatingScale/index.mjs +1 -1
  82. package/dist/elements/RatingScale/index.mjs.map +1 -1
  83. package/dist/elements/Resizable/index.js +1 -1
  84. package/dist/elements/Resizable/index.js.map +1 -1
  85. package/dist/elements/Resizable/index.mjs +1 -1
  86. package/dist/elements/Resizable/index.mjs.map +1 -1
  87. package/dist/elements/SearchField/index.js +1 -1
  88. package/dist/elements/SearchField/index.js.map +1 -1
  89. package/dist/elements/SearchField/index.mjs +1 -1
  90. package/dist/elements/SearchField/index.mjs.map +1 -1
  91. package/dist/elements/Select/Select.d.ts +3 -3
  92. package/dist/elements/Select/Select.d.ts.map +1 -1
  93. package/dist/elements/Sidebar/Sidebar.styles.d.ts +1 -1
  94. package/dist/elements/Sidebar/Sidebar.styles.d.ts.map +1 -1
  95. package/dist/elements/Sidebar/Sidebar.types.d.ts +2 -2
  96. package/dist/elements/Sidebar/SidebarRail.d.ts.map +1 -1
  97. package/dist/elements/Sidebar/index.js +1 -1
  98. package/dist/elements/Sidebar/index.js.map +1 -1
  99. package/dist/elements/Sidebar/index.mjs +1 -1
  100. package/dist/elements/Sidebar/index.mjs.map +1 -1
  101. package/dist/elements/Table/index.js +1 -1
  102. package/dist/elements/Table/index.js.map +1 -1
  103. package/dist/elements/Table/index.mjs +1 -1
  104. package/dist/elements/Table/index.mjs.map +1 -1
  105. package/dist/elements/TextField/index.js +1 -1
  106. package/dist/elements/TextField/index.js.map +1 -1
  107. package/dist/elements/TextField/index.mjs +1 -1
  108. package/dist/elements/TextField/index.mjs.map +1 -1
  109. package/dist/elements/Timeline/index.js +1 -1
  110. package/dist/elements/Timeline/index.js.map +1 -1
  111. package/dist/elements/Timeline/index.mjs +1 -1
  112. package/dist/elements/Timeline/index.mjs.map +1 -1
  113. package/dist/elements/Toast/index.js +1 -1
  114. package/dist/elements/Toast/index.js.map +1 -1
  115. package/dist/elements/Toast/index.mjs +1 -1
  116. package/dist/elements/Toast/index.mjs.map +1 -1
  117. package/dist/elements/Wizard/index.js +1 -1
  118. package/dist/elements/Wizard/index.js.map +1 -1
  119. package/dist/elements/Wizard/index.mjs +1 -1
  120. package/dist/elements/Wizard/index.mjs.map +1 -1
  121. package/dist/elements/index.d.ts +2 -0
  122. package/dist/elements/index.d.ts.map +1 -1
  123. package/dist/elements/index.js +1 -1
  124. package/dist/elements/index.js.map +1 -1
  125. package/dist/elements/index.mjs +1 -1
  126. package/dist/elements/index.mjs.map +1 -1
  127. package/dist/index.js +2 -2
  128. package/dist/index.js.map +1 -1
  129. package/dist/index.mjs +2 -2
  130. package/dist/index.mjs.map +1 -1
  131. package/dist/styles/animations.css +15 -0
  132. package/package.json +16 -14
  133. package/src/elements/FeatureIcon/FeatureIcon.stories.tsx +164 -0
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- 'use strict';var react=require('react'),reactAria=require('react-aria'),lucideReact=require('lucide-react'),reactAriaComponents=require('react-aria-components'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),classVarianceAuthority=require('class-variance-authority'),jsxRuntime=require('react/jsx-runtime'),zod=require('zod');function f(...e){return tailwindMerge.twMerge(clsx.clsx(e))}var te="data-[focus-visible]:ring-2 data-[focus-visible]:ring-[var(--themis-ring)] data-[focus-visible]:ring-offset-2",be="data-[pressed]:scale-[0.97]";var Z="hc:data-[focus-visible]:outline hc:data-[focus-visible]:outline-4 hc:data-[focus-visible]:outline-offset-2 hc:data-[focus-visible]:outline-foreground",re="hc:data-[hovered]:outline hc:data-[hovered]:outline-2 hc:data-[hovered]:outline-foreground",ae="hc:data-[pressed]:outline hc:data-[pressed]:outline-2 hc:data-[pressed]:outline-offset-1 hc:data-[pressed]:outline-foreground",Ze="disabled:pointer-events-none disabled:opacity-50",kt=`${te} ${be} ${Z} ${re} ${ae}`;var Ke={sm:"text-xs",default:"text-sm",lg:"text-base"};var Ie={sm:"h-9",default:"h-10",lg:"h-11"},D={sm:`${Ie.sm} px-2 text-xs`,default:`${Ie.default} px-3 text-sm`,lg:`${Ie.lg} px-4 text-base`},K="min-h-[44px] flex items-center";var Qe=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}}),Je=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 Dt=react.createContext(null);Dt.displayName="ButtonGroupContext";function Bt(){return react.useContext(Dt)}var Gt=react.createContext(null);Gt.displayName="ButtonGroupItemContext";function Mt(){return react.useContext(Gt)}classVarianceAuthority.cva("inline-flex items-center gap-0",{variants:{orientation:{horizontal:"flex-row",vertical:"flex-col w-full"}},defaultVariants:{orientation:"horizontal"}});var Ht=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 _=react.memo(react.forwardRef(({className:e,buttonVisualClassName:t,variant:r,size:a,visualSize:o,fullWidth:s,loading:d=false,loadingText:i="Loading...",shortcut:u,children:p,isDisabled:m,paywall:l=false,paywallRedirect:n,paywallDescription:c,onPress:b,...v},C)=>{let h=react.useId(),E=Bt(),y=Mt(),x=r??E?.variant??"default",V=a??E?.size,w=m??E?.isDisabled??false,T=E?.orientation==="vertical",I=s||T,M=y?Ht({orientation:E?.orientation??"horizontal",position:y.position}):"",k=o??V??"default";return process.env.NODE_ENV!=="production"&&(k==="dot"||k==="icon")&&!v["aria-label"]&&!p&&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:C,isDisabled:w||d||void 0,"aria-disabled":l?true:void 0,"aria-describedby":l?h:void 0,onPress:g=>{if(l){n&&window.open(n,"_blank","noopener,noreferrer");return}b?.(g);},className:f(Qe({fullWidth:I,inVerticalGroup:T}),e),...v,children:g=>jsxRuntime.jsxs("span",{className:f(Je({variant:x,visualSize:k,paywall:l,fullWidth:I}),M,t,be,"",re,ae),"data-pressed":g.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:i})]}),!d&&p,l&&jsxRuntime.jsx(lucideReact.Zap,{"data-testid":"zap-icon","aria-hidden":"true",className:"ml-1"}),l&&jsxRuntime.jsxs("span",{id:h,className:"sr-only",children:["Premium feature: ",c||"Upgrade required to access this feature"]}),g.isFocusVisible&&u&&jsxRuntime.jsx("kbd",{className:"ml-auto hidden text-xs opacity-60 lg:inline",children:u})]})})}));_.displayName="Button";var zt=()=>jsxRuntime.jsxs("svg",{"data-testid":"password-toggle-icon-show",width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[jsxRuntime.jsx("path",{d:"M1 8s3-5 7-5 7 5 7 5-3 5-7 5-7-5-7-5z"}),jsxRuntime.jsx("circle",{cx:"8",cy:"8",r:"2"})]}),Ut=()=>jsxRuntime.jsxs("svg",{"data-testid":"password-toggle-icon-hide",width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[jsxRuntime.jsx("path",{d:"M10.5 5.5l-5 5"}),jsxRuntime.jsx("path",{d:"M1 8s3-5 7-5c1.5 0 2.8.6 4 1.5M15 8s-1.5 2.5-4 4"}),jsxRuntime.jsx("path",{d:"M3 13l2-2m7-7l2-2"}),jsxRuntime.jsx("circle",{cx:"8",cy:"8",r:"2"})]});var at=classVarianceAuthority.cva("flex w-full rounded-md border bg-[var(--content-background)] px-3 py-2 text-sm ring-offset-[var(--content-background)] file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-[var(--content-foreground)] placeholder:text-[var(--menu-muted)] transition-all duration-200",{variants:{size:{sm:`${D.sm} py-1`,default:`${D.default} py-2`,lg:`${D.lg} py-3`},state:{default:"border-[var(--input-border)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2",error:"border-[var(--destructive-background)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--destructive-background)] focus-visible:ring-offset-2",success:"border-[var(--success-background)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--success-ring)] focus-visible:ring-offset-2",disabled:"cursor-not-allowed opacity-50",readonly:"cursor-default bg-[var(--content-background)] opacity-70"}},defaultVariants:{size:"default",state:"default"}}),ot=classVarianceAuthority.cva("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",{variants:{state:{default:"text-[var(--content-foreground)]",disabled:"opacity-50 cursor-not-allowed"}},defaultVariants:{state:"default"}}),nt=classVarianceAuthority.cva("text-sm text-[var(--content-foreground)]"),Wt=classVarianceAuthority.cva("text-sm text-[var(--destructive-background)] font-medium"),it=classVarianceAuthority.cva("text-sm text-[var(--success-foreground)] font-medium");function Yt({expandOnFocus:e,collapsedWidth:t,value:r,defaultValue:a,userOnFocus:o,userOnBlur:s}){let[d,i]=react.useState(false),u=react.useCallback(l=>{e&&i(true),o?.(l);},[e,o]),p=react.useCallback(l=>{e&&l.target.value===""&&i(false),s?.(l);},[e,s]),m=react.useMemo(()=>e?d||(r!==void 0?r!=="":a!==void 0&&a!=="")?"100%":t:void 0,[e,d,r,a,t]);return {handleFocus:u,handleBlur:p,inputWidth:m}}function qt({disableCopyPaste:e}){let[t,r]=react.useState(false),[a,o]=react.useState("");react.useEffect(()=>{e&&typeof process<"u"&&process.env.NODE_ENV==="development"&&console.warn("[TextField] Copy/paste prevention should only be used for security-critical fields like password confirmation. This feature can break assistive technology workflows and password managers.");},[e]);let s=react.useCallback(d=>{e&&(d.preventDefault(),r(true),o("Pasting is not allowed in this field. Please type your entry."),setTimeout(()=>{r(false),o("");},250));},[e]);return {isShaking:t,screenReaderMessage:a,handlePaste:s}}function Xt({type:e,showPasswordToggle:t}){let[r,a]=react.useState(false),o=react.useCallback(()=>{a(d=>!d);},[]),s=react.useMemo(()=>e==="password"&&t&&r?"text":e,[e,t,r]);return {showPassword:r,actualType:s,handlePasswordToggle:o}}var wa=react.forwardRef(({className:e,state:t="default",children:r,...a},o)=>jsxRuntime.jsx(reactAriaComponents.Label,{ref:o,className:f(ot({state:t}),e),...a,children:r}));wa.displayName="TextFieldLabel";var ka=react.forwardRef(({className:e,size:t="default",state:r="default",...a},o)=>jsxRuntime.jsx(reactAriaComponents.Input,{ref:o,className:f(at({size:t,state:r}),Ze,e),...a}));ka.displayName="TextFieldInput";var La=react.forwardRef(({className:e,children:t,...r},a)=>jsxRuntime.jsx(reactAriaComponents.Text,{ref:a,slot:"description",className:f(nt(),e),...r,children:t}));La.displayName="TextFieldDescription";var Jt=react.forwardRef(({className:e,children:t,...r},a)=>jsxRuntime.jsx(reactAriaComponents.FieldError,{ref:a,...r,className:f(Wt(),e),children:t}));Jt.displayName="TextFieldError";var _a=react.forwardRef(({className:e,children:t,...r},a)=>jsxRuntime.jsx(reactAriaComponents.Text,{ref:a,slot:"description",className:f(it(),e),...r,children:t}));_a.displayName="TextFieldSuccess";var lt=react.forwardRef(({className:e,size:t="default",label:r,labelHint:a,description:o,errorMessage:s,successMessage:d,type:i="text",isRequired:u=false,isReadOnly:p=false,isDisabled:m=false,isInvalid:l=false,isValid:n=false,id:c,autoComplete:b,disableCopyPaste:v=false,pattern:C,patternDescription:h,expandOnFocus:E=false,collapsedWidth:y="200px",prefix:x,suffix:V,prefixSize:w=16,suffixSize:T=16,showPasswordToggle:I,isIconHidden:M=false,onSubmit:k,onClear:P,value:O,defaultValue:g,onFocus:R,onBlur:N,...G},Ye)=>{let Re=react.useId(),aa=react.useId(),oa=c||aa,{handleFocus:na,handleBlur:ia,inputWidth:sa}=Yt({expandOnFocus:E,collapsedWidth:y,value:O,defaultValue:g,userOnFocus:R,userOnBlur:N}),{isShaking:la,screenReaderMessage:Rt,handlePaste:da}=qt({disableCopyPaste:v}),{showPassword:qe,actualType:ca,handlePasswordToggle:Tt}=Xt({type:i,showPasswordToggle:I}),W=i==="search",[ua,It]=react.useState(g??""),fe=O!==void 0,Y=fe?O:ua,pa=react.useCallback(L=>{fe||It(L),G.onChange?.(L);},[fe,G]),Te=react.useCallback(()=>{fe||It(""),G.onChange?.(""),P?.();},[fe,G,P]),ma=react.useCallback(L=>{L.key==="Enter"&&k&&k(Y),L.key==="Escape"&&Y&&(L.preventDefault(),Te());},[Y,k,Te]),fa=react.useMemo(()=>m?"disabled":p?"readonly":l?"error":n?"success":"default",[m,p,l,n]),ba=react.useMemo(()=>m?"disabled":"default",[m]),Pt=react.useMemo(()=>o&&h?`${o} ${h}`:o||h,[o,h]),ee=react.useMemo(()=>W&&!M&&!x?jsxRuntime.jsx(lucideReact.Search,{className:t==="sm"?"h-3.5 w-3.5":t==="lg"?"h-5 w-5":"h-4 w-4"}):x,[W,M,x,t]),Ft=react.useMemo(()=>{let L={left:12,right:12};if(ee){let Xe=typeof ee=="string"?ee.length*8+16:w+16;L.left=Xe;}if(i==="password"&&I)L.right=32;else if(W&&Y)L.right=44;else if(V){let Xe=typeof V=="string"?V.length*8+16:T+16;L.right=Xe;}return L},[ee,x,V,w,T,i,I,W,Y]),At=react.useMemo(()=>i==="password"&&I?jsxRuntime.jsx(_,{variant:"ghost",visualSize:"icon",onPress:Tt,"aria-label":qe?"Hide password":"Show password",className:"!min-h-0 !min-w-0 h-8 w-8",children:qe?jsxRuntime.jsx(Ut,{}):jsxRuntime.jsx(zt,{})}):W&&Y?jsxRuntime.jsx(_,{variant:"ghost",visualSize:"icon",onPress:Te,"aria-label":"Clear search",className:"!min-h-0 !min-w-0 h-8 w-8",children:jsxRuntime.jsx(lucideReact.X,{className:t==="sm"?"h-3 w-3":t==="lg"?"h-5 w-5":"h-4 w-4"})}):V,[i,I,qe,V,Tt,W,Y,t,Te]),wt=i==="password"&&I||W&&!!Y;return jsxRuntime.jsxs(reactAriaComponents.TextField,{ref:Ye,className:f("flex flex-col gap-1.5",e),isRequired:u,isReadOnly:p,isDisabled:m,isInvalid:l,value:W?Y:O,defaultValue:W?void 0:g,onChange:W?pa:void 0,...G,children:[r&&jsxRuntime.jsxs(reactAriaComponents.Label,{className:f(ot({state:ba}),a&&"flex items-baseline justify-between"),children:[jsxRuntime.jsxs("span",{children:[r,u&&jsxRuntime.jsx("span",{className:"ml-1 text-[var(--destructive-background)]","aria-hidden":"true",children:jsxRuntime.jsx("strong",{children:"*"})})]}),a&&jsxRuntime.jsx("span",{className:"text-xs font-normal text-[var(--muted-foreground)]",children:a})]}),Pt&&jsxRuntime.jsx(reactAriaComponents.Text,{slot:"description",className:f(nt()),children:Pt}),jsxRuntime.jsxs("div",{className:f(K,"relative cursor-text motion-safe:transition-colors motion-safe:duration-200"),style:{width:sa},onClick:L=>{L.target===L.currentTarget&&L.currentTarget.querySelector("input")?.focus();},children:[ee&&jsxRuntime.jsx("div",{"data-testid":"textfield-prefix",className:"absolute left-3 flex items-center justify-center pointer-events-none text-[var(--content-foreground)]","aria-hidden":"true",children:ee}),jsxRuntime.jsx(reactAriaComponents.Input,{type:ca,id:oa,className:f(at({size:t,state:fa}),Ze,la&&"shake"),style:{width:"100%",paddingLeft:`${Ft.left}px`,paddingRight:`${Ft.right}px`},autoComplete:b,pattern:C,onPaste:da,onFocus:na,onBlur:ia,onKeyDown:W?ma:void 0,"aria-required":u?"true":void 0,"aria-readonly":p?"true":void 0,"aria-errormessage":l&&s?Re:void 0}),At&&jsxRuntime.jsx("div",{"data-testid":"textfield-suffix",className:f("absolute right-3 flex items-center justify-center text-[var(--content-foreground)]",wt?"":"pointer-events-none"),"aria-hidden":wt?void 0:"true",children:At})]}),n&&d&&!l&&jsxRuntime.jsx(reactAriaComponents.Text,{slot:"description",className:f(it()),children:d}),l&&s&&jsxRuntime.jsx(Jt,{id:Re,children:s}),Rt&&jsxRuntime.jsx("div",{className:"sr-only",role:"status","aria-live":"polite","aria-atomic":"true",children:Rt})]})});lt.displayName="TextField";var ke=react.forwardRef(({label:e,description:t,errorMessage:r,"aria-label":a,"aria-labelledby":o,...s},d)=>(process.env.NODE_ENV!=="production"&&!e&&!a&&!o&&console.warn("[SearchField] Either label, aria-label, or aria-labelledby is required for accessibility (WCAG 1.1.1)"),jsxRuntime.jsx(lt,{ref:d,type:"search",label:e,description:r?void 0:t,errorMessage:r,isInvalid:!!r,"aria-label":e?void 0:a,"aria-labelledby":o,...s})));ke.displayName="SearchField";function er(e,t){return !(e===false||t)}var tr="(prefers-reduced-motion: reduce)";function Ma(){return typeof window>"u"?false:window.matchMedia(tr).matches}function rr(){let[e,t]=react.useState(Ma);return react.useEffect(()=>{let r=window.matchMedia(tr);t(r.matches);let a=o=>{t(o.matches);};return r.addEventListener("change",a),()=>r.removeEventListener("change",a)},[]),e}var ve;function ja(){return ve!==void 0?Promise.resolve(ve):import('motion').then(e=>(ve=e.animate,ve)).catch(()=>(ve=null,null))}var Ya={stiffness:500,damping:30},or=classVarianceAuthority.cva("inline-flex shrink-0 cursor-pointer items-center justify-center min-h-[44px] min-w-[44px] disabled:cursor-not-allowed disabled:opacity-50 data-[readonly]:cursor-default",{variants:{},defaultVariants:{}}),nr=classVarianceAuthority.cva("relative inline-flex shrink-0 items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2 focus-visible:ring-offset-background",{variants:{variant:{default:"bg-[var(--border)] data-[selected]:bg-[var(--primary)]",destructive:"bg-[var(--border)] data-[selected]:bg-[var(--destructive-background)]"},size:{sm:"h-6 w-10",default:"h-7 w-12",lg:"h-8 w-14"}},defaultVariants:{variant:"default",size:"default"}}),ir=classVarianceAuthority.cva("pointer-events-none absolute left-0.5 rounded-full bg-[var(--content-background)] ring-0",{variants:{size:{sm:"h-4 w-4",default:"h-5 w-5",lg:"h-6 w-6"},animated:{false:"transition-transform data-[selected]:translate-x-full",true:""}},defaultVariants:{size:"default",animated:false}}),_e=react.memo(react.forwardRef(({className:e,variant:t,size:r,label:a,description:o,isDisabled:s,isReadOnly:d,animated:i,springConfig:u=Ya,onChange:p,...m},l)=>{let n=rr(),c=er(i,n),b=react.useRef(null),v=react.useRef(false),C=react.useRef(null),h=react.useRef(null);react.useEffect(()=>{c&&ja().then(x=>{if(x&&(C.current=x,v.current=true,b.current)){let V=b.current.hasAttribute("data-selected");b.current.style.transform=V?"translateX(100%)":"translateX(0)";}});},[c]);let E=react.useCallback(x=>{p?.(x),c&&v.current&&C.current&&b.current&&(h.current?.stop(),h.current=C.current(b.current,{x:x?"100%":"0%"},{type:"spring",stiffness:u.stiffness,damping:u.damping}));},[c,u.stiffness,u.damping,p]),y=c;return jsxRuntime.jsx(reactAriaComponents.Switch,{ref:l,isDisabled:s,isReadOnly:d,onChange:E,className:x=>f("group relative inline-flex items-center gap-2",s&&"cursor-not-allowed opacity-50",e),...m,children:x=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("div",{className:f(or()),"data-selected":x.isSelected||void 0,"data-readonly":d||void 0,children:jsxRuntime.jsx("div",{className:f(nr({variant:t,size:r}),kt),"data-selected":x.isSelected||void 0,children:jsxRuntime.jsx("div",{ref:b,className:f(ir({size:r,animated:y})),"data-selected":x.isSelected||void 0})})}),(a||o)&&jsxRuntime.jsxs("div",{className:"flex flex-col",children:[a&&jsxRuntime.jsx("span",{className:"text-sm font-medium text-[var(--content-foreground)]",children:a}),o&&jsxRuntime.jsx("span",{className:"text-xs text-[var(--menu-muted)]",children:o})]})]})})}));_e.displayName="Switch";var sr=react.createContext({variant:"default",size:"default",isInvalid:false}),oo=classVarianceAuthority.cva("flex",{variants:{orientation:{vertical:"flex-col gap-2",horizontal:"flex-row flex-wrap gap-2"}},defaultVariants:{orientation:"vertical"}}),no=classVarianceAuthority.cva(["relative flex items-center gap-3 rounded-md border cursor-pointer","transition-colors duration-200","rtl:flex-row-reverse",te,Z].join(" "),{variants:{variant:{default:["border-[var(--border)]","data-[hovered]:bg-[var(--accent)]/10","data-[selected]:border-[var(--primary)]","data-[selected]:bg-[var(--primary)]/10"].join(" "),destructive:["border-[var(--border)]","data-[hovered]:bg-[var(--destructive-background)]/10","data-[selected]:border-[var(--destructive-background)]","data-[selected]:bg-[var(--destructive-background)]/10"].join(" ")},size:{sm:"min-h-[44px] py-2 px-3 text-sm",default:"min-h-[48px] py-3 px-4 text-sm",lg:"min-h-[56px] py-4 px-5 text-base"},isDisabled:{true:"opacity-50 cursor-not-allowed",false:""},isInvalid:{true:"border-[var(--destructive-background)]",false:""}},defaultVariants:{variant:"default",size:"default",isDisabled:false,isInvalid:false}}),io=classVarianceAuthority.cva("flex-shrink-0 rounded-full border-2 flex items-center justify-center transition-colors duration-200",{variants:{variant:{default:["border-[var(--border)]","data-[selected]:border-[var(--primary)]"].join(" "),destructive:["border-[var(--border)]","data-[selected]:border-[var(--destructive-background)]"].join(" ")},size:{sm:"h-4 w-4",default:"h-5 w-5",lg:"h-6 w-6"}},defaultVariants:{variant:"default",size:"default"}}),so=classVarianceAuthority.cva(["rounded-full transition-transform duration-200","[transition-timing-function:cubic-bezier(0.34,1.56,0.64,1)]","motion-reduce:transition-none","scale-0 data-[selected]:scale-100"].join(" "),{variants:{variant:{default:"bg-[var(--primary)]",destructive:"bg-[var(--destructive-background)]"},size:{sm:"h-2 w-2",default:"h-2.5 w-2.5",lg:"h-3 w-3"}},defaultVariants:{variant:"default",size:"default"}});function lr({children:e,className:t}){return jsxRuntime.jsx("span",{className:f("font-medium text-[var(--content-foreground)]",t),children:e})}lr.displayName="Radio.Label";function dr({children:e,className:t}){return jsxRuntime.jsx("span",{className:f("text-sm text-[var(--menu-muted)]",t),children:e})}dr.displayName="Radio.Description";function lo({value:e,isDisabled:t,children:r,className:a}){let{variant:o,size:s,isInvalid:d}=react.useContext(sr);return jsxRuntime.jsx(reactAriaComponents.Radio,{value:e,isDisabled:t,className:i=>f(no({variant:o,size:s,isDisabled:i.isDisabled,isInvalid:d}),a),children:i=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("div",{className:io({variant:o,size:s}),"data-selected":i.isSelected||void 0,children:jsxRuntime.jsx("div",{className:so({variant:o,size:s}),"data-selected":i.isSelected||void 0})}),jsxRuntime.jsx("div",{className:"flex-1 flex flex-col",children:r})]})})}var le=Object.assign(lo,{Label:lr,Description:dr});le.displayName="Radio";var he=react.forwardRef(function(t,r){let{label:a,description:o,errorMessage:s,value:d,defaultValue:i,isDisabled:u=false,isReadOnly:p=false,isRequired:m=false,isInvalid:l=false,orientation:n="vertical",variant:c="default",size:b="default",name:v,onChange:C,onFocusChange:h,className:E,children:y,id:x,"aria-label":V,"aria-labelledby":w,"aria-describedby":T,"data-testid":I,...M}=t,k=react.useId(),P=x??k,O=`${P}-label`,g=`${P}-description`,R=`${P}-error`,N=[];T&&N.push(T),o&&N.push(g),l&&s&&N.push(R);let G=N.length>0?N.join(" "):void 0;return jsxRuntime.jsx(sr.Provider,{value:{variant:c,size:b,isInvalid:l},children:jsxRuntime.jsxs(reactAriaComponents.RadioGroup,{ref:r,id:P,name:v,value:d??void 0,defaultValue:i??void 0,isDisabled:u,isReadOnly:p,isRequired:m,isInvalid:l,orientation:n,onChange:C,onFocusChange:h,"aria-label":V,"aria-labelledby":a?O:w,"aria-describedby":G,"data-testid":I,"data-orientation":n,className:f("flex flex-col gap-1.5",E),...M,children:[a&&jsxRuntime.jsxs(reactAriaComponents.Label,{id:O,className:"text-sm font-medium text-[var(--content-foreground)]",children:[a,m&&jsxRuntime.jsx("span",{className:"ml-1 text-[var(--destructive-background)]","aria-hidden":"true",children:"*"})]}),o&&jsxRuntime.jsx(reactAriaComponents.Text,{id:g,slot:"description",className:"text-sm text-[var(--menu-muted)]",children:o}),jsxRuntime.jsx("div",{className:oo({orientation:n}),children:y}),l&&s&&jsxRuntime.jsx(reactAriaComponents.FieldError,{id:R,className:"text-sm text-[var(--destructive-background)]",children:jsxRuntime.jsx("span",{role:"alert",children:s})})]})})});he.displayName="RadioGroup";var ur=react.createContext({variant:"default",size:"default",isInvalid:false,isDisabled:false,isReadOnly:false}),pr=classVarianceAuthority.cva("flex",{variants:{orientation:{vertical:"flex-col gap-2",horizontal:"flex-row flex-wrap gap-2"}},defaultVariants:{orientation:"vertical"}}),mr=classVarianceAuthority.cva(["relative flex items-center gap-3 rounded-md border cursor-pointer","transition-colors duration-200","rtl:flex-row-reverse",te,Z].join(" "),{variants:{variant:{default:["border-[var(--border)]","data-[hovered]:bg-[var(--accent)]/10","data-[selected]:border-[var(--primary)]","data-[selected]:bg-[var(--primary)]/10"].join(" "),destructive:["border-[var(--border)]","data-[hovered]:bg-[var(--destructive-background)]/10","data-[selected]:border-[var(--destructive-background)]","data-[selected]:bg-[var(--destructive-background)]/10"].join(" ")},size:{sm:"min-h-[44px] py-2 px-3 text-sm",default:"min-h-[48px] py-3 px-4 text-sm",lg:"min-h-[56px] py-4 px-5 text-base"},isDisabled:{true:"opacity-50 cursor-not-allowed",false:""},isReadOnly:{true:"cursor-default",false:""},isInvalid:{true:"border-[var(--destructive-background)]",false:""}},defaultVariants:{variant:"default",size:"default",isDisabled:false,isReadOnly:false,isInvalid:false}}),fr=classVarianceAuthority.cva("flex-shrink-0 rounded-sm border-2 flex items-center justify-center transition-colors duration-200",{variants:{variant:{default:["border-[var(--border)]","data-[selected]:border-[var(--primary)]","data-[selected]:bg-[var(--primary)]"].join(" "),destructive:["border-[var(--border)]","data-[selected]:border-[var(--destructive-background)]","data-[selected]:bg-[var(--destructive-background)]"].join(" ")},size:{sm:"h-4 w-4",default:"h-5 w-5",lg:"h-6 w-6"}},defaultVariants:{variant:"default",size:"default"}}),br=classVarianceAuthority.cva(["transition-transform duration-200","[transition-timing-function:cubic-bezier(0.34,1.56,0.64,1)]","motion-reduce:transition-none","scale-0 data-[selected]:scale-100"].join(" "),{variants:{variant:{default:"text-[var(--primary-foreground)]",destructive:"text-[var(--destructive-foreground)]"},size:{sm:"h-3 w-3",default:"h-3.5 w-3.5",lg:"h-4 w-4"}},defaultVariants:{variant:"default",size:"default"}});function xr({className:e,...t}){return jsxRuntime.jsx("svg",{className:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:3,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",...t,children:jsxRuntime.jsx("polyline",{points:"20 6 9 17 4 12"})})}function gr({children:e,className:t}){return jsxRuntime.jsx("span",{className:f("font-medium text-[var(--content-foreground)]",t),children:e})}gr.displayName="Checkbox.Label";function vr({children:e,className:t}){return jsxRuntime.jsx("span",{className:f("text-sm text-[var(--menu-muted)]",t),children:e})}vr.displayName="Checkbox.Description";function Co({value:e,isDisabled:t,children:r,className:a,selectedIcon:o}){let{variant:s,size:d,isInvalid:i,isDisabled:u,isReadOnly:p}=react.useContext(ur),m=t||u,l=n=>{let c=f(br({variant:s,size:d})),b=n||void 0;if(o){if(react.isValidElement(o)){let v=o;return react.cloneElement(v,{className:f(c,v.props.className),"data-selected":b})}return jsxRuntime.jsx("span",{className:c,"data-selected":b,children:o})}return jsxRuntime.jsx(xr,{className:c,"data-selected":b})};return jsxRuntime.jsx(reactAriaComponents.Checkbox,{value:e,isDisabled:m,className:n=>f(mr({variant:s,size:d,isDisabled:n.isDisabled,isReadOnly:p,isInvalid:i}),a),children:n=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("div",{className:fr({variant:s,size:d}),"data-selected":n.isSelected||void 0,children:l(n.isSelected)}),jsxRuntime.jsx("div",{className:"flex-1 flex flex-col",children:r})]})})}var Be=Object.assign(Co,{Label:gr,Description:vr});Be.displayName="Checkbox";function cr(e,t){if(!e)return e;let r=[...new Set(e)];return process.env.NODE_ENV!=="production"&&r.length!==e.length&&console.warn(`[${t}] Received duplicate values in value/defaultValue prop. Original: [${e.join(", ")}], Deduplicated: [${r.join(", ")}]. Duplicate values are automatically removed.`),r}var Ge=react.forwardRef(function(t,r){let{label:a,description:o,errorMessage:s,value:d,defaultValue:i,isDisabled:u=false,isReadOnly:p=false,isRequired:m=false,isInvalid:l=false,orientation:n="vertical",variant:c="default",size:b="default",name:v,onChange:C,onFocusChange:h,className:E,children:y,id:x,"aria-label":V,"aria-labelledby":w,"aria-describedby":T,"data-testid":I,...M}=t,k=react.useId(),P=x??k,O=`${P}-label`,g=`${P}-description`,R=`${P}-error`,N=[];T&&N.push(T),o&&N.push(g),l&&s&&N.push(R);let G=N.length>0?N.join(" "):void 0,Ye=cr(d,"CheckboxGroup"),Re=cr(i,"CheckboxGroup");return jsxRuntime.jsx(ur.Provider,{value:{variant:c,size:b,isInvalid:l,isDisabled:u,isReadOnly:p},children:jsxRuntime.jsxs(reactAriaComponents.CheckboxGroup,{ref:r,id:P,name:v,value:Ye,defaultValue:Re,isDisabled:u,isReadOnly:p,isRequired:m,isInvalid:l,onChange:C,onFocusChange:h,"aria-label":V,"aria-labelledby":a?O:w,"aria-describedby":G,"aria-orientation":n,"aria-required":m||void 0,"aria-invalid":l||void 0,"data-testid":I,className:f("flex flex-col gap-1.5",E),...M,children:[a&&jsxRuntime.jsxs(reactAriaComponents.Label,{id:O,className:"text-sm font-medium text-[var(--content-foreground)]",children:[a,m&&jsxRuntime.jsx("span",{className:"ml-1 text-[var(--destructive-background)]","aria-hidden":"true",children:"*"})]}),o&&jsxRuntime.jsx(reactAriaComponents.Text,{id:g,slot:"description",className:"text-sm text-[var(--menu-muted)]",children:o}),jsxRuntime.jsx("div",{className:pr({orientation:n}),children:y}),l&&s&&jsxRuntime.jsx(reactAriaComponents.FieldError,{id:R,className:"text-sm text-[var(--destructive-background)]",children:jsxRuntime.jsx("span",{role:"alert",children:s})})]})})});Ge.displayName="CheckboxGroup";function No(e){if(!(e instanceof Element))return false;let t=e;for(let o=0;t&&o<100;o++){let s=t.tagName?.toLowerCase()??"";if(s.startsWith("grammarly-")||s.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 r=e;for(;r&&!r.tagName.includes("-");)r=r.parentElement;if(!r)return false;let a=r.parentElement;return a===document.body||a===document.documentElement}function de(e){return t=>!No(t)&&(e?.(t)??true)}var hr=classVarianceAuthority.cva("group flex flex-col gap-1.5 w-full",{variants:{size:{sm:"",default:"",lg:""}},defaultVariants:{size:"default"}}),Sr=classVarianceAuthority.cva("text-[var(--text-primary)] font-medium",{variants:{size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{size:"default"}}),yr=classVarianceAuthority.cva(["flex-1 bg-transparent outline-none","placeholder:text-[var(--muted-foreground)]","disabled:cursor-not-allowed"],{variants:{size:Ke},defaultVariants:{size:"default"}}),Cr=classVarianceAuthority.cva(["flex items-center w-full rounded-md border","bg-[var(--input-background)] text-[var(--content-foreground)]","border-[var(--input-border)]","transition-colors duration-[var(--transition-fast)]","focus-within:ring-2 focus-within:ring-[var(--ring)] focus-within:ring-offset-[var(--ring-offset)]","data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50","data-[invalid]:border-[var(--destructive-background)]"],{variants:{size:{sm:`${D.sm} gap-1`,default:`${D.default} gap-2`,lg:`${D.lg} gap-2`}},defaultVariants:{size:"default"}}),Er=classVarianceAuthority.cva(["flex items-center justify-end shrink-0","text-[var(--muted-foreground)]","hover:text-[var(--text-primary)]","transition-colors","focus:outline-none"],{variants:{size:{sm:"h-4 w-4 min-h-[44px] min-w-[44px]",default:"h-5 w-5 min-h-[44px] min-w-[44px]",lg:"h-6 w-6 min-h-[44px] min-w-[44px]"}},defaultVariants:{size:"default"}}),Nr=classVarianceAuthority.cva(["w-[var(--trigger-width)] overflow-auto","rounded-md border border-[var(--border)]","bg-[var(--content-background)] text-[var(--content-foreground)]","data-[entering]:motion-safe:animate-in data-[entering]:motion-safe:fade-in-0","data-[exiting]:motion-safe:animate-out data-[exiting]:motion-safe:fade-out-0"]),Vr=classVarianceAuthority.cva("p-1 outline-none max-h-[300px] overflow-auto"),Rr=classVarianceAuthority.cva(["flex items-center gap-2 w-full rounded-sm px-2 py-1.5","text-[var(--content-foreground)]","cursor-pointer outline-none","data-[focused]:bg-[var(--accent-background)] data-[focused]:text-[var(--accent-foreground)]","data-[selected]:font-medium","data-[disabled]:opacity-50 data-[disabled]:cursor-not-allowed"],{variants:{size:{sm:"text-xs min-h-[44px]",default:"text-sm min-h-[44px]",lg:"text-base min-h-[44px]"}},defaultVariants:{size:"default"}});classVarianceAuthority.cva("pt-1");classVarianceAuthority.cva("px-2 py-1.5 text-xs font-semibold text-[var(--muted-foreground)]");var Pr=classVarianceAuthority.cva("text-[var(--muted-foreground)]",{variants:{size:{sm:"text-xs",default:"text-xs",lg:"text-sm"}},defaultVariants:{size:"default"}}),Fr=classVarianceAuthority.cva("text-[var(--destructive-background)]",{variants:{size:{sm:"text-xs",default:"text-xs",lg:"text-sm"}},defaultVariants:{size:"default"}});var Me=react.forwardRef(({className:e,size:t="default",label:r,description:a,errorMessage:o,isRequired:s,isDisabled:d,isReadOnly:i,placeholder:u,name:p,allowsCustomValue:m=false,menuTrigger:l="input",defaultInputValue:n,inputValue:c,defaultSelectedKey:b,selectedKey:v,onInputChange:C,onSelectionChange:h,children:E,"aria-label":y,"aria-labelledby":x,"data-testid":V,...w},T)=>(process.env.NODE_ENV!=="production"&&!r&&!y&&!x&&console.warn("[Combobox] Either label, aria-label, or aria-labelledby is required for accessibility (WCAG 1.1.1)"),jsxRuntime.jsxs(reactAriaComponents.ComboBox,{ref:T,className:f(hr({size:t}),e),isRequired:s,isDisabled:d,isReadOnly:i,name:p,allowsCustomValue:m,menuTrigger:l,defaultInputValue:n,inputValue:c,defaultSelectedKey:b,selectedKey:v,onInputChange:C,onSelectionChange:h,"aria-label":r?void 0:y,"aria-labelledby":x,"data-testid":V,...w,children:[r&&jsxRuntime.jsxs(reactAriaComponents.Label,{className:Sr({size:t}),children:[r,s&&jsxRuntime.jsx("span",{className:"text-[var(--destructive-background)] ml-1","aria-hidden":"true",children:"*"})]}),jsxRuntime.jsxs("div",{className:f(K,Cr({size:t})),children:[jsxRuntime.jsx(reactAriaComponents.Input,{className:yr({size:t}),placeholder:u}),jsxRuntime.jsx(reactAriaComponents.Button,{className:Er({size:t}),children:jsxRuntime.jsx(lucideReact.ChevronsUpDown,{className:"h-4 w-4",strokeWidth:1.5,"aria-hidden":"true"})})]}),a&&!o&&jsxRuntime.jsx(reactAriaComponents.Text,{slot:"description",className:Pr({size:t}),children:a}),o&&jsxRuntime.jsx(reactAriaComponents.Text,{slot:"errorMessage",className:Fr({size:t}),children:o}),jsxRuntime.jsx(reactAriaComponents.Popover,{shouldCloseOnInteractOutside:de(),className:Nr(),children:jsxRuntime.jsx(reactAriaComponents.ListBox,{className:Vr(),children:E})})]})));Me.displayName="Combobox";function ye({children:e,className:t,textValue:r,...a}){let o=r||(typeof e=="string"?e:void 0);return jsxRuntime.jsx(reactAriaComponents.ListBoxItem,{className:f(Rr({size:"default"}),t),textValue:o,...a,children:({isSelected:s})=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("span",{className:"flex-1",children:e}),s&&jsxRuntime.jsx(lucideReact.Check,{className:"h-4 w-4 shrink-0 text-[var(--primary)]","aria-hidden":"true"})]})})}ye.displayName="ComboboxItem";var kr=classVarianceAuthority.cva(["flex","w-full","items-center","justify-between","gap-2","rounded-md","border","bg-[var(--content-background)]","text-[var(--content-foreground)]","transition-colors","duration-200","outline-none","focus-visible:ring-2","focus-visible:ring-[var(--ring)]","focus-visible:ring-offset-2","hover:bg-[var(--accent)]/10","disabled:cursor-not-allowed","disabled:opacity-50","data-[loading=true]:cursor-wait","truncate"],{variants:{size:{sm:`${D.sm} pr-1`,default:`${D.default} pr-1.5`,lg:`${D.lg} pr-2`},isInvalid:{true:"border-[var(--destructive-background)]",false:"border-[var(--input-border)] hover:border-[var(--input-border)]/80"}},defaultVariants:{size:"default",isInvalid:false}}),Lr=classVarianceAuthority.cva(["relative","flex","w-full","cursor-pointer","select-none","items-center","rounded-sm","outline-none","transition-colors","pl-8","pr-2","hover:bg-[var(--accent)]","hover:text-[var(--accent-foreground)]","focus:bg-[var(--accent)]","focus:text-[var(--accent-foreground)]","data-[selected=true]:bg-[var(--accent)]","data-[selected=true]:text-[var(--accent-foreground)]","data-[disabled=true]:pointer-events-none","data-[disabled=true]:opacity-50","data-[disabled=true]:text-[var(--menu-muted)]"],{variants:{size:{sm:`${D.sm} py-1`,default:`${D.default} py-2`,lg:`${D.lg} py-3`}},defaultVariants:{size:"default"}}),_r=classVarianceAuthority.cva(["z-50","w-[--trigger-width]","rounded-md","border","border-[var(--menu-border)]","bg-[var(--menu-background)]","text-[var(--menu-foreground)]","outline-none","overflow-auto","data-[entering]:animate-in","data-[entering]:fade-in-0","data-[entering]:zoom-in-95","data-[exiting]:animate-out","data-[exiting]:fade-out-0","data-[exiting]:zoom-out-95"],{variants:{size:{sm:"max-h-[200px] p-1",default:"max-h-[300px] p-1",lg:"max-h-[400px] p-1"}},defaultVariants:{size:"default"}}),Or=classVarianceAuthority.cva(["px-2","py-1.5","text-xs","font-semibold","text-[var(--menu-muted)]","uppercase","tracking-wider"],{variants:{size:{sm:"px-2 py-1 text-[10px]",default:"px-2 py-1 text-xs",lg:"px-2 py-1.5 text-xs"}},defaultVariants:{size:"default"}}),Dr=classVarianceAuthority.cva(["flex","items-center","gap-1.5","text-sm","font-medium","text-[var(--destructive-background)]","mt-1"],{variants:{size:{sm:"text-xs mt-1",default:"text-sm mt-1",lg:"text-base mt-1"}},defaultVariants:{size:"default"}});var en=Array.from({length:3}).map((e,t)=>jsxRuntime.jsx("div",{className:"h-11 px-4 py-2",children:jsxRuntime.jsx("div",{className:"h-4 bg-[var(--accent-background)] rounded animate-pulse"})},`skeleton-${t}`));function Hr({ariaSelectProps:e,triggerContent:t,triggerRef:r,label:a,description:o,isRequired:s,isDisabled:d,isLoading:i,errorMessage:u,size:p,emptyStateMessage:m,childCount:l,children:n}){let c=react.useId(),b=react.useId(),v=react.useId(),C=!!u,{className:h,...E}=e;return jsxRuntime.jsxs(reactAriaComponents.Select,{...E,className:f("flex flex-col gap-1.5",h),isInvalid:C,children:[jsxRuntime.jsxs(reactAriaComponents.Label,{id:c,className:"text-sm font-medium text-[var(--content-foreground)]",children:[a,s&&jsxRuntime.jsx("span",{className:"text-[var(--destructive-background)] ml-1",children:"*"})]}),o&&jsxRuntime.jsx(reactAriaComponents.Text,{id:b,slot:"description",className:"text-sm text-[var(--menu-muted)]",children:o}),jsxRuntime.jsx("div",{className:K,children:jsxRuntime.jsxs(reactAriaComponents.Button,{ref:r,className:kr({size:p,isInvalid:C}),"aria-labelledby":c,"aria-describedby":o?b:u?v:void 0,"data-loading":i,...s&&{"aria-required":"true"},...i&&{"aria-busy":"true"},...(d||i)&&{"aria-disabled":"true"},children:[t,i?jsxRuntime.jsx(lucideReact.Loader2,{className:"ml-auto h-4 w-4 shrink-0 animate-spin text-[var(--menu-muted)]","aria-hidden":"true"}):jsxRuntime.jsx(lucideReact.ChevronDown,{className:"ml-auto h-4 w-4 shrink-0 text-[var(--menu-muted)]","aria-hidden":"true"})]})}),jsxRuntime.jsx(reactAriaComponents.FieldError,{id:v,className:Dr({size:p}),children:({validationErrors:y})=>{let x=u||y.join(" ");return x?jsxRuntime.jsx(jsxRuntime.Fragment,{children:x}):null}}),jsxRuntime.jsx(reactAriaComponents.Popover,{shouldCloseOnInteractOutside:de(),className:_r({size:p}),children:jsxRuntime.jsxs(reactAriaComponents.ListBox,{className:"outline-none",children:[i&&l>0&&en,!i&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[n,l===0&&jsxRuntime.jsx(reactAriaComponents.ListBoxItem,{id:"__empty__",textValue:"empty",isDisabled:true,className:"py-6 text-center text-sm text-[var(--menu-muted)] cursor-default pointer-events-none",children:jsxRuntime.jsx("span",{role:"status",children:m||"No options available"})})]})]})})]})}var zr=react.forwardRef(({label:e,placeholder:t,description:r,value:a,defaultValue:o,isOpen:s,isDisabled:d=false,isRequired:i=false,disabledKeys:u,validate:p,validationBehavior:m="aria",errorMessage:l,isLoading:n=false,emptyStateMessage:c,name:b,size:v="default",onChange:C,onOpenChange:h,className:E,children:y,...x},V)=>{let w=react.Children.count(y);return w>1e3&&console.warn("Select has >1000 items. Consider using Autocomplete component for better performance."),jsxRuntime.jsx(Hr,{ariaSelectProps:{value:a,defaultValue:o,onChange:T=>{C&&C(T);},placeholder:t,disabledKeys:u,isOpen:s,onOpenChange:h,isDisabled:d||n,isRequired:i,name:b,validate:p,validationBehavior:m,className:E,...x},triggerContent:jsxRuntime.jsx(reactAriaComponents.SelectValue,{className:"flex-1 text-left truncate"}),triggerRef:V,label:e,description:r,isRequired:i,isDisabled:d,isLoading:n,errorMessage:l,size:v,emptyStateMessage:c,childCount:w,children:y})});zr.displayName="Select";var Ur=react.forwardRef(({label:e,placeholder:t,description:r,value:a,defaultValue:o,selectionMode:s="multiple",isOpen:d,isDisabled:i=false,isRequired:u=false,disabledKeys:p,validate:m,validationBehavior:l="aria",errorMessage:n,isLoading:c=false,emptyStateMessage:b,name:v,size:C="default",onChange:h,onOpenChange:E,className:y,children:x,...V},w)=>{let T=react.Children.count(x);T>1e3&&console.warn("Select has >1000 items. Consider using Autocomplete component for better performance.");let I=react.useMemo(()=>{let k=new Map,P=O=>{react.Children.forEach(O,g=>{if(react.isValidElement(g)){let R=g;if(R.type===He||R.props?.value){let N=R.props.value,G=R.props.children;N&&typeof G=="string"&&k.set(N,G);}R.props?.children&&P(R.props.children);}});};return P(x),k},[x]),M=react.useMemo(()=>!a||!Array.isArray(a)||a.length===0?t||"":a.length<=2?a.map(P=>I.get(P)||P).join(", "):`${a.length} items selected`,[a,I,t]);return jsxRuntime.jsx(Hr,{ariaSelectProps:{value:a,defaultValue:o,onChange:k=>{h&&h(k);},selectionMode:"multiple",disabledKeys:p,isOpen:d,onOpenChange:E,isDisabled:i||c,isRequired:u,name:v,validate:m,validationBehavior:l,className:y,...V},triggerContent:jsxRuntime.jsx("span",{className:"flex-1 text-left truncate",children:M}),triggerRef:w,label:e,description:r,isRequired:u,isDisabled:i,isLoading:c,errorMessage:n,size:C,emptyStateMessage:b,childCount:T,children:x})});Ur.displayName="MultiSelect";var He=react.memo(function({children:t,textValue:r,value:a,isDisabled:o=false,className:s,...d}){if(!r&&typeof t!="string"){let i="Select.Item with custom children requires textValue prop for accessibility";if(process.env.NODE_ENV==="development")throw new Error(i);console.warn(i);}return jsxRuntime.jsx(reactAriaComponents.ListBoxItem,{id:a,textValue:r||(typeof t=="string"?t:void 0),className:`${Lr({size:"default"})} ${s||""}`,isDisabled:o,...d,children:({isSelected:i,selectionMode:u,isDisabled:p})=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[u==="multiple"?jsxRuntime.jsx(lucideReact.CheckSquare,{className:`absolute left-2 h-4 w-4 ${i?"visible":"invisible"}`,"aria-hidden":"true"}):i&&jsxRuntime.jsx(lucideReact.Check,{className:"absolute left-2 h-4 w-4","aria-hidden":"true"}),jsxRuntime.jsx("span",{className:p?"text-[var(--menu-muted)]":"",children:t})]})})});He.displayName="SelectItem";function bt({children:e,className:t,...r}){return jsxRuntime.jsx(reactAriaComponents.ListBoxSection,{className:`border-t border-[var(--border)] first:border-t-0 ${t||""}`,...r,children:e})}bt.displayName="SelectSection";function xt({children:e,className:t,...r}){return jsxRuntime.jsx(reactAriaComponents.Header,{className:`${Or({size:"default"})} ${t||""}`,...r,children:e})}xt.displayName="SelectHeader";var Ee=Object.assign(zr,{Item:He,Section:bt,Header:xt});Object.assign(Ur,{Item:He,Section:bt,Header:xt});var Wr=classVarianceAuthority.cva(["relative inline-flex items-center 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-[var(--page-background)]","disabled:pointer-events-none","disabled:opacity-50"],{variants:{},defaultVariants:{}}),jr=classVarianceAuthority.cva(["inline-flex items-center justify-center","gap-1","rounded-full","font-medium","whitespace-nowrap","transition-colors"],{variants:{variant:{primary:["bg-[var(--primary-action)]","text-[var(--primary-action-foreground)]","hover:bg-[var(--primary-action)]/90","data-[pressed]:bg-[var(--primary-action)]/80"],accent:["bg-[var(--accent-background)]","text-[var(--accent-foreground)]","hover:bg-[var(--accent-background)]/90","data-[pressed]:bg-[var(--accent-background)]/80"],destructive:["bg-[var(--destructive-background)]","text-[var(--destructive-foreground)]","hover:bg-[var(--destructive-background)]/90","data-[pressed]:bg-[var(--destructive-background)]/80"],content:["bg-[var(--accent-background)]","text-[var(--accent-foreground)]","hover:bg-[var(--accent-background)]/90","data-[pressed]:bg-[var(--accent-background)]/80"]},size:{sm:"h-5 px-2 text-xs",default:"h-6 px-2.5 text-xs",lg:"h-7 px-3 text-sm"}},defaultVariants:{variant:"primary",size:"default"}});var nn={sm:"[&_svg]:h-2.5 [&_svg]:w-2.5",default:"[&_svg]:h-3 [&_svg]:w-3",lg:"[&_svg]:h-3.5 [&_svg]:w-3.5"},ue=react.memo(react.forwardRef(({className:e,variant:t="primary",size:r="default",children:a,icon:o,iconPosition:s="start",count:d,onPress:i,isDisabled:u,id:p,"aria-label":m,"aria-labelledby":l,"aria-describedby":n,"data-testid":c,...b},v)=>{let C=f(jr({variant:t,size:r}),nn[r],e),x=[!!o,d!==void 0,!!a].filter(Boolean).length>1,V=()=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[o&&s==="start"&&jsxRuntime.jsx("span",{className:"shrink-0","aria-hidden":"true",children:o}),a&&(x?jsxRuntime.jsx("span",{children:a}):a),d!==void 0&&jsxRuntime.jsx("span",{className:"font-mono tabular-nums",children:d}),o&&s==="end"&&jsxRuntime.jsx("span",{className:"shrink-0","aria-hidden":"true",children:o})]});return i?jsxRuntime.jsx(reactAriaComponents.Button,{ref:v,isDisabled:u,onPress:i,className:Wr(),id:p,"aria-label":m,"aria-labelledby":l,"aria-describedby":n,"data-testid":c,...b,children:w=>jsxRuntime.jsx("span",{className:f(C,be,"",re,ae),"data-pressed":w.isPressed||void 0,children:V()})}):jsxRuntime.jsx("span",{ref:v,className:C,id:p,"aria-label":m,"aria-labelledby":l,"aria-describedby":n,"data-testid":c,...b,children:V()})}));ue.displayName="Badge";var gt=classVarianceAuthority.cva(["flex flex-wrap items-center gap-2"]),Ne=classVarianceAuthority.cva(["inline-flex items-center gap-2"]),vt=classVarianceAuthority.cva(["min-w-[14rem] max-w-[20rem] rounded-md border border-[var(--border)]","bg-[var(--content-background)] p-2 shadow-md","motion-safe:data-[entering]:animate-in motion-safe:data-[entering]:fade-in-0","motion-safe:data-[exiting]:animate-out motion-safe:data-[exiting]:fade-out-0"]),ht=classVarianceAuthority.cva(["flex items-center justify-between gap-2 px-1 pb-2 mb-1","border-b border-[var(--border)]"]),St=classVarianceAuthority.cva(["flex items-center gap-2"],{variants:{scrollable:{true:"flex-nowrap overflow-x-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden [&>*]:flex-none",false:"flex-wrap"}},defaultVariants:{scrollable:false}}),Yr=classVarianceAuthority.cva(["fixed inset-0 z-[80] bg-[rgb(23_23_23_/_0.42)]","motion-safe:data-[entering]:animate-in motion-safe:data-[entering]:fade-in-0","motion-safe:data-[exiting]:animate-out motion-safe:data-[exiting]:fade-out-0"]),qr=classVarianceAuthority.cva(["fixed inset-x-0 bottom-0 z-[81] flex max-h-[88vh] flex-col","rounded-t-3xl border-t border-[var(--border)] bg-[var(--content-background)]","motion-safe:data-[entering]:animate-in motion-safe:data-[entering]:slide-in-from-bottom","motion-safe:data-[exiting]:animate-out motion-safe:data-[exiting]:slide-out-to-bottom"]),Xr=classVarianceAuthority.cva(["flex items-center justify-between gap-2 px-5 py-3 border-b border-[var(--border)] flex-none"]),Zr=classVarianceAuthority.cva(["flex flex-col gap-5 overflow-auto p-5 flex-1","[&>*]:w-full"]),Kr=classVarianceAuthority.cva(["flex items-center justify-between gap-3 px-5 pt-3 flex-none","pb-[calc(0.75rem+env(safe-area-inset-bottom))] border-t border-[var(--border)]"]),Qr=classVarianceAuthority.cva(["mx-auto mt-2.5 mb-0.5 h-1.5 w-10 flex-none rounded-full bg-[var(--border)]"]),dn=classVarianceAuthority.cva(["inline-flex items-center gap-1.5 min-h-[44px] px-3 rounded-full","border border-[var(--border)] bg-[var(--accent-background)]","text-sm text-[var(--content-foreground)]","hover:bg-[var(--accent)] motion-safe:transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2","cursor-pointer"]);function Ve({label:e,badge:t,isActive:r=false,children:a,doneLabel:o,align:s="start",className:d}){let i=t!=null&&t!=="";return jsxRuntime.jsxs(reactAriaComponents.DialogTrigger,{children:[jsxRuntime.jsxs(_,{variant:r?"secondary":"outline",className:f(Ne(),d),children:[jsxRuntime.jsx("span",{children:e}),i&&jsxRuntime.jsx(ue,{size:"sm",children:String(t)}),jsxRuntime.jsx(lucideReact.ChevronDown,{"aria-hidden":"true",className:"h-4 w-4 opacity-60"})]}),jsxRuntime.jsx(reactAriaComponents.Popover,{isNonModal:true,shouldCloseOnInteractOutside:de(),placement:s==="end"?"bottom end":"bottom start",className:vt(),children:jsxRuntime.jsx(reactAriaComponents.Dialog,{"aria-label":e,className:"outline-none",children:({close:u})=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[o&&jsxRuntime.jsxs("div",{className:ht(),children:[jsxRuntime.jsx("span",{className:"text-xs font-bold uppercase tracking-wide text-[var(--menu-muted)]",children:e}),jsxRuntime.jsx(_,{variant:"link",onPress:u,children:o})]}),typeof a=="function"?a(u):a]})})})]})}function vn(e,t){typeof e=="function"?e(t):e&&(e.current=t);}var $e=react.forwardRef(({chips:e,onRemove:t,onClearAll:r,clearAllLabel:a,removeChipLabel:o,scrollable:s=false,"aria-label":d="Active filters",className:i,"data-testid":u="applied-filters"},p)=>{let m=react.useRef(null);if(e.length===0)return null;let l='button,a[href],input,select,textarea,[tabindex]:not([tabindex="-1"])',n=(c,b)=>{let v=m.current;if(e.length<=1&&v){let h=v.previousElementSibling;((h?.matches(l)?h:h?.querySelector(l))??v).focus(),t(c);return}t(c),requestAnimationFrame(()=>{let h=m.current;if(!h)return;let E=h.querySelectorAll("[data-chip]");E.length>0?E[Math.min(b,E.length-1)]?.focus():h.focus();});};return jsxRuntime.jsxs("div",{ref:c=>{m.current=c,vn(p,c);},role:"region","aria-label":d,tabIndex:-1,className:f(St({scrollable:s}),"outline-none",i),"data-testid":u,children:[e.map((c,b)=>jsxRuntime.jsxs(_,{variant:"outline","data-chip":true,"aria-label":o(`${c.group?`${c.group} `:""}${c.label}`),onPress:()=>n(c,b),children:[c.group&&jsxRuntime.jsx("span",{className:"text-xs font-bold uppercase tracking-wide opacity-60",children:c.group}),jsxRuntime.jsx("span",{className:"font-semibold",children:c.label}),jsxRuntime.jsx(lucideReact.X,{"aria-hidden":"true",className:"h-3.5 w-3.5 opacity-60"})]},c.id)),e.length>1&&jsxRuntime.jsx(_,{variant:"link",onPress:()=>{r(),requestAnimationFrame(()=>m.current?.focus());},children:a})]})});$e.displayName="AppliedFilters";var We=react.createContext(null);function j(e){let t=react.useContext(We);if(!t)throw new Error(`<${e}> must be rendered inside <Filters>.`);return t}var ta=react.forwardRef(({values:e,onChange:t,labels:r,narrow:a=false,children:o,"aria-label":s="Filters",className:d,"data-testid":i="filters"},u)=>{let p=react.useRef(new Map),[m,l]=react.useState(0),n=react.useRef(e);n.current=e;let c=react.useCallback((g,R)=>{t({...n.current,[g]:R});},[t]),b=react.useCallback(g=>t(g),[t]),v=react.useCallback((g,R)=>{R?p.current.set(g,R):p.current.delete(g),l(N=>N+1);},[]),C=react.useMemo(()=>({values:e,narrow:a,setValue:c,replaceValues:b,labels:r,registry:p,registryVersion:m,syncControl:v}),[e,a,c,b,r,m,v]),h=react.useMemo(()=>{let g=0;for(let[R,N]of p.current)N.isActive(e[R])&&(g+=1);return g},[e,m]),E=()=>{let g={...n.current};for(let[R,N]of p.current)g[R]=N.clearedValue;b(g);},[y,x]=react.useState(false),V=react.useRef(null),w=react.useRef(null),T=react.useRef(null),I=react.useCallback(()=>{x(false),requestAnimationFrame(()=>V.current?.focus());},[]);react.useEffect(()=>{if(!y)return;w.current?.querySelector('button,a[href],input,select,textarea,[tabindex]:not([tabindex="-1"])')?.focus();},[y]),react.useEffect(()=>{if(!y)return;let g=N=>{let G=N.target;T.current&&T.current.contains(G)&&I();},R=N=>{N.key==="Escape"&&(N.preventDefault(),I());};return document.addEventListener("pointerdown",g,true),document.addEventListener("keydown",R),()=>{document.removeEventListener("pointerdown",g,true),document.removeEventListener("keydown",R);}},[y,I]);let M=react.Children.toArray(o),k=g=>react.isValidElement(g)&&g.type===ra,P=M.filter(k),O=M.filter(g=>!k(g));return a?jsxRuntime.jsx(We.Provider,{value:C,children:jsxRuntime.jsxs("div",{ref:u,role:"region","aria-label":s,className:f("flex flex-col gap-3",d),"data-testid":i,children:[jsxRuntime.jsx("div",{children:jsxRuntime.jsxs(_,{ref:V,variant:"outline",className:Ne(),"aria-haspopup":"dialog","aria-expanded":y,onPress:()=>x(true),children:[jsxRuntime.jsx(lucideReact.SlidersHorizontal,{"aria-hidden":"true",className:"h-4 w-4"}),jsxRuntime.jsx("span",{children:r.filtersButton??s}),h>0&&jsxRuntime.jsx(ue,{size:"sm",children:String(h)})]})}),y&&jsxRuntime.jsx("div",{ref:T,className:Yr(),"aria-hidden":"true"}),jsxRuntime.jsx(reactAria.FocusScope,{contain:y,restoreFocus:true,children:jsxRuntime.jsxs("div",{ref:w,role:"dialog","aria-modal":y||void 0,"aria-label":s,className:y?qr():"hidden",children:[jsxRuntime.jsx("span",{className:Qr(),"aria-hidden":"true"}),jsxRuntime.jsxs("div",{className:Xr(),children:[jsxRuntime.jsx("span",{className:"text-lg font-semibold",children:r.filtersButton??s}),jsxRuntime.jsx(_,{variant:"ghost",visualSize:"icon","aria-label":r.close??"Close",onPress:I,children:jsxRuntime.jsx(lucideReact.X,{"aria-hidden":"true"})})]}),jsxRuntime.jsx("div",{className:Zr(),children:O}),jsxRuntime.jsxs("div",{className:Kr(),children:[jsxRuntime.jsx(_,{variant:"link",onPress:E,children:r.clearAll??r.clear}),jsxRuntime.jsx(_,{variant:"default",onPress:I,children:r.done})]})]})}),P]})}):jsxRuntime.jsx(We.Provider,{value:C,children:jsxRuntime.jsxs("div",{ref:u,role:"region","aria-label":s,className:f("flex flex-col gap-3",d),"data-testid":i,children:[jsxRuntime.jsx("div",{className:gt(),children:O}),P]})})});ta.displayName="Filters";function me(e,t){let{syncControl:r}=j("Filter control");react.useEffect(()=>(r(e,t),()=>r(e,null)),[e,t,r]);}function Et(e){return e.map(t=>`${t.value}\0${t.label}`).join("")}function Nt(e,t){return e.find(r=>r.value===t)?.label??t}function Tn({name:e,label:t,placeholder:r,chipGroup:a,className:o}){let{values:s,setValue:d}=j("FilterSearch"),i=typeof s[e]=="string"?s[e]:"",u=react.useMemo(()=>({name:e,clearedValue:"",isActive:p=>typeof p=="string"&&p.trim()!=="",toChips:p=>typeof p=="string"&&p.trim()!==""?[{id:e,key:e,label:`\u201C${p}\u201D`,group:a??t}]:[]}),[e,t,a]);return me(e,u),jsxRuntime.jsx(ke,{"aria-label":t,placeholder:r,value:i,onChange:p=>d(e,p),onClear:()=>d(e,""),className:f("min-w-[14rem]",o)})}function In({name:e,label:t,className:r}){let{values:a,setValue:o}=j("FilterToggle"),s=a[e]===true,d=react.useMemo(()=>({name:e,clearedValue:false,isActive:i=>i===true,toChips:i=>i===true?[{id:e,key:e,label:t}]:[]}),[e,t]);return me(e,d),jsxRuntime.jsx(_e,{label:t,isSelected:s,onChange:i=>o(e,!!i),className:r})}var yt="__all__";function Pn({name:e,label:t,options:r,allLabel:a,className:o}){let{values:s,setValue:d,narrow:i}=j("FilterSelect"),u=typeof s[e]=="string"?s[e]:"",p=Et(r),m=react.useMemo(()=>({name:e,clearedValue:"",isActive:l=>typeof l=="string"&&l!=="",toChips:l=>typeof l=="string"&&l!==""?[{id:e,key:e,label:Nt(r,l),group:t}]:[]}),[e,t,p]);return me(e,m),i?jsxRuntime.jsxs(Ee,{label:t,value:u===""?yt:u,onChange:l=>{let n=Array.isArray(l)?l[0]:l;d(e,!n||n===yt?"":n);},className:o,children:[jsxRuntime.jsx(Ee.Item,{value:yt,children:a??"All"}),r.map(l=>jsxRuntime.jsx(Ee.Item,{value:l.value,children:l.label},l.value))]}):jsxRuntime.jsx(Ve,{label:t,isActive:u!=="",className:o,children:l=>jsxRuntime.jsxs(he,{"aria-label":t,value:u,onChange:n=>{d(e,n),l();},children:[jsxRuntime.jsx(le,{value:"",children:a??"All"}),r.map(n=>jsxRuntime.jsx(le,{value:n.value,children:n.label},n.value))]})})}function Fn({name:e,label:t,presets:r,className:a}){let{values:o,setValue:s,narrow:d}=j("FilterWithin"),i=r[0]?.value??"",u=typeof o[e]=="string"?o[e]:i,p=Et(r),m=react.useMemo(()=>({name:e,clearedValue:i,isActive:n=>typeof n=="string"&&n!==i,toChips:n=>typeof n=="string"&&n!==i?[{id:e,key:e,label:Nt(r,n),group:t}]:[]}),[e,t,i,p]);me(e,m);let l=n=>jsxRuntime.jsx(he,{label:d?t:void 0,"aria-label":d?void 0:t,value:u,onChange:c=>{s(e,c),n?.();},className:d?a:void 0,children:r.map(c=>jsxRuntime.jsx(le,{value:c.value,children:c.label},c.value))});return d?l():jsxRuntime.jsx(Ve,{label:t,isActive:u!==i,className:a,children:n=>l(n)})}function An({name:e,label:t,options:r,className:a}){let{values:o,setValue:s,labels:d,narrow:i}=j("FilterMulti"),u=Array.isArray(o[e])?o[e]:[],p=Et(r),m=react.useMemo(()=>({name:e,clearedValue:[],isActive:n=>Array.isArray(n)&&n.length>0,toChips:n=>Array.isArray(n)?n.map(c=>({id:`${e}:${c}`,key:e,optionValue:c,label:Nt(r,c),group:t})):[]}),[e,t,p]);me(e,m);let l=jsxRuntime.jsx(Ge,{label:i?t:void 0,"aria-label":i?void 0:t,value:u,onChange:n=>s(e,n),className:i?a:void 0,children:r.map(n=>jsxRuntime.jsx(Be,{value:n.value,children:n.label},n.value))});return i?l:jsxRuntime.jsxs(Ve,{label:t,badge:u.length||null,isActive:u.length>0,doneLabel:d.done,className:a,children:[l,u.length>0&&jsxRuntime.jsx("div",{className:"pt-1",children:jsxRuntime.jsx(_,{variant:"link",onPress:()=>s(e,[]),children:d.clear})})]})}function wn({name:e,label:t,options:r,onSearch:a,isLoading:o,placeholder:s,className:d}){let{values:i,setValue:u}=j("FilterCombobox"),p=typeof i[e]=="string"?i[e]:"",m=react.useRef(new Map);for(let n of r)m.current.set(n.value,n.label);let l=react.useMemo(()=>({name:e,clearedValue:"",isActive:n=>typeof n=="string"&&n!=="",toChips:n=>typeof n=="string"&&n!==""?[{id:e,key:e,label:m.current.get(n)??n,group:t}]:[]}),[e,t]);return me(e,l),jsxRuntime.jsx(Me,{"aria-label":t,placeholder:s,selectedKey:p||null,onSelectionChange:n=>u(e,n==null?"":String(n)),onInputChange:a,className:f("min-w-[14rem]",d),children:r.length===0&&o?jsxRuntime.jsx(ye,{id:"__loading",isDisabled:true,children:"Loading\u2026"}):r.map(n=>jsxRuntime.jsx(ye,{id:n.value,children:n.label},n.value))})}function ra({clearAllLabel:e,removeChipLabel:t,"aria-label":r,className:a,"data-testid":o}){let{values:s,setValue:d,replaceValues:i,registry:u,narrow:p}=j("FilterChips"),m=[];for(let[c,b]of u.current)m.push(...b.toChips(s[c]));return jsxRuntime.jsx($e,{chips:m,onRemove:c=>{if(c.optionValue!==void 0){let b=s[c.key],v=Array.isArray(b)?b:[];d(c.key,v.filter(C=>C!==c.optionValue));}else {let b=u.current.get(c.key);d(c.key,b?b.clearedValue:"");}},onClearAll:()=>{let c={...s};for(let[b,v]of u.current)c[b]=v.clearedValue;i(c);},clearAllLabel:e,removeChipLabel:t,scrollable:p,"aria-label":r,className:a,"data-testid":o})}var kn=zod.z.object({value:zod.z.string(),label:zod.z.string()});exports.AppliedFilters=$e;exports.FilterChips=ra;exports.FilterCombobox=wn;exports.FilterMulti=An;exports.FilterOptionSchema=kn;exports.FilterPopover=Ve;exports.FilterSearch=Tn;exports.FilterSelect=Pn;exports.FilterToggle=In;exports.FilterWithin=Fn;exports.Filters=ta;exports.appliedFiltersVariants=St;exports.filterChipVariants=dn;exports.filterPillVariants=Ne;exports.filterPopoverHeaderVariants=ht;exports.filterPopoverVariants=vt;exports.filtersBarVariants=gt;exports.useFiltersContext=j;//# sourceMappingURL=index.js.map
2
+ 'use strict';var react=require('react'),reactAria=require('react-aria'),lucideReact=require('lucide-react'),reactAriaComponents=require('react-aria-components'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),classVarianceAuthority=require('class-variance-authority'),jsxRuntime=require('react/jsx-runtime'),zod=require('zod');function f(...e){return tailwindMerge.twMerge(clsx.clsx(e))}var te="data-[focus-visible]:ring-2 data-[focus-visible]:ring-[var(--themis-ring)] data-[focus-visible]:ring-offset-2",be="data-[pressed]:scale-[0.97]";var Z="hc:data-[focus-visible]:outline hc:data-[focus-visible]:outline-4 hc:data-[focus-visible]:outline-offset-2 hc:data-[focus-visible]:outline-foreground",re="hc:data-[hovered]:outline hc:data-[hovered]:outline-2 hc:data-[hovered]:outline-foreground",ae="hc:data-[pressed]:outline hc:data-[pressed]:outline-2 hc:data-[pressed]:outline-offset-1 hc:data-[pressed]:outline-foreground",Ze="disabled:pointer-events-none disabled:opacity-50",kt=`${te} ${be} ${Z} ${re} ${ae}`;var Ke={sm:"text-xs",default:"text-sm",lg:"text-base"};var Ie={sm:"h-9",default:"h-10",lg:"h-11"},D={sm:`${Ie.sm} px-2 text-xs`,default:`${Ie.default} px-3 text-sm`,lg:`${Ie.lg} px-4 text-base`},K="min-h-[44px] flex items-center";var Qe=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}}),Je=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(--content-background)] hover:bg-[var(--accent-background)]/50",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 Dt=react.createContext(null);Dt.displayName="ButtonGroupContext";function Bt(){return react.useContext(Dt)}var Gt=react.createContext(null);Gt.displayName="ButtonGroupItemContext";function Mt(){return react.useContext(Gt)}classVarianceAuthority.cva("inline-flex items-center gap-0",{variants:{orientation:{horizontal:"flex-row",vertical:"flex-col w-full"}},defaultVariants:{orientation:"horizontal"}});var Ht=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 _=react.memo(react.forwardRef(({className:e,buttonVisualClassName:t,variant:r,size:a,visualSize:o,fullWidth:s,loading:d=false,loadingText:i="Loading...",shortcut:u,children:p,isDisabled:m,paywall:l=false,paywallRedirect:n,paywallDescription:c,onPress:b,...v},C)=>{let h=react.useId(),E=Bt(),y=Mt(),x=r??E?.variant??"default",V=a??E?.size,w=m??E?.isDisabled??false,T=E?.orientation==="vertical",I=s||T,M=y?Ht({orientation:E?.orientation??"horizontal",position:y.position}):"",k=o??V??"default";return process.env.NODE_ENV!=="production"&&(k==="dot"||k==="icon")&&!v["aria-label"]&&!p&&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:C,isDisabled:w||d||void 0,"aria-disabled":l?true:void 0,"aria-describedby":l?h:void 0,onPress:g=>{if(l){n&&window.open(n,"_blank","noopener,noreferrer");return}b?.(g);},className:f(Qe({fullWidth:I,inVerticalGroup:T}),e),...v,children:g=>jsxRuntime.jsxs("span",{className:f(Je({variant:x,visualSize:k,paywall:l,fullWidth:I}),M,t,be,"",re,ae),"data-pressed":g.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:i})]}),!d&&p,l&&jsxRuntime.jsx(lucideReact.Zap,{"data-testid":"zap-icon","aria-hidden":"true",className:"ml-1"}),l&&jsxRuntime.jsxs("span",{id:h,className:"sr-only",children:["Premium feature: ",c||"Upgrade required to access this feature"]}),g.isFocusVisible&&u&&jsxRuntime.jsx("kbd",{className:"ml-auto hidden text-xs opacity-60 lg:inline",children:u})]})})}));_.displayName="Button";var zt=()=>jsxRuntime.jsxs("svg",{"data-testid":"password-toggle-icon-show",width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[jsxRuntime.jsx("path",{d:"M1 8s3-5 7-5 7 5 7 5-3 5-7 5-7-5-7-5z"}),jsxRuntime.jsx("circle",{cx:"8",cy:"8",r:"2"})]}),Ut=()=>jsxRuntime.jsxs("svg",{"data-testid":"password-toggle-icon-hide",width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[jsxRuntime.jsx("path",{d:"M10.5 5.5l-5 5"}),jsxRuntime.jsx("path",{d:"M1 8s3-5 7-5c1.5 0 2.8.6 4 1.5M15 8s-1.5 2.5-4 4"}),jsxRuntime.jsx("path",{d:"M3 13l2-2m7-7l2-2"}),jsxRuntime.jsx("circle",{cx:"8",cy:"8",r:"2"})]});var at=classVarianceAuthority.cva("flex w-full rounded-md border bg-[var(--content-background)] px-3 py-2 text-sm ring-offset-[var(--content-background)] file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-[var(--content-foreground)] placeholder:text-[var(--menu-muted)] transition-all duration-200",{variants:{size:{sm:`${D.sm} py-1`,default:`${D.default} py-2`,lg:`${D.lg} py-3`},state:{default:"border-[var(--input-border)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2",error:"border-[var(--destructive-background)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--destructive-background)] focus-visible:ring-offset-2",success:"border-[var(--success-background)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--success-ring)] focus-visible:ring-offset-2",disabled:"cursor-not-allowed opacity-50",readonly:"cursor-default bg-[var(--content-background)] opacity-70"}},defaultVariants:{size:"default",state:"default"}}),ot=classVarianceAuthority.cva("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",{variants:{state:{default:"text-[var(--content-foreground)]",disabled:"opacity-50 cursor-not-allowed"}},defaultVariants:{state:"default"}}),nt=classVarianceAuthority.cva("text-sm text-[var(--content-foreground)]"),Wt=classVarianceAuthority.cva("text-sm text-[var(--destructive-background)] font-medium"),it=classVarianceAuthority.cva("text-sm text-[var(--success-foreground)] font-medium");function Yt({expandOnFocus:e,collapsedWidth:t,value:r,defaultValue:a,userOnFocus:o,userOnBlur:s}){let[d,i]=react.useState(false),u=react.useCallback(l=>{e&&i(true),o?.(l);},[e,o]),p=react.useCallback(l=>{e&&l.target.value===""&&i(false),s?.(l);},[e,s]),m=react.useMemo(()=>e?d||(r!==void 0?r!=="":a!==void 0&&a!=="")?"100%":t:void 0,[e,d,r,a,t]);return {handleFocus:u,handleBlur:p,inputWidth:m}}function qt({disableCopyPaste:e}){let[t,r]=react.useState(false),[a,o]=react.useState("");react.useEffect(()=>{e&&typeof process<"u"&&process.env.NODE_ENV==="development"&&console.warn("[TextField] Copy/paste prevention should only be used for security-critical fields like password confirmation. This feature can break assistive technology workflows and password managers.");},[e]);let s=react.useCallback(d=>{e&&(d.preventDefault(),r(true),o("Pasting is not allowed in this field. Please type your entry."),setTimeout(()=>{r(false),o("");},250));},[e]);return {isShaking:t,screenReaderMessage:a,handlePaste:s}}function Xt({type:e,showPasswordToggle:t}){let[r,a]=react.useState(false),o=react.useCallback(()=>{a(d=>!d);},[]),s=react.useMemo(()=>e==="password"&&t&&r?"text":e,[e,t,r]);return {showPassword:r,actualType:s,handlePasswordToggle:o}}var wa=react.forwardRef(({className:e,state:t="default",children:r,...a},o)=>jsxRuntime.jsx(reactAriaComponents.Label,{ref:o,className:f(ot({state:t}),e),...a,children:r}));wa.displayName="TextFieldLabel";var ka=react.forwardRef(({className:e,size:t="default",state:r="default",...a},o)=>jsxRuntime.jsx(reactAriaComponents.Input,{ref:o,className:f(at({size:t,state:r}),Ze,e),...a}));ka.displayName="TextFieldInput";var La=react.forwardRef(({className:e,children:t,...r},a)=>jsxRuntime.jsx(reactAriaComponents.Text,{ref:a,slot:"description",className:f(nt(),e),...r,children:t}));La.displayName="TextFieldDescription";var Jt=react.forwardRef(({className:e,children:t,...r},a)=>jsxRuntime.jsx(reactAriaComponents.FieldError,{ref:a,...r,className:f(Wt(),e),children:t}));Jt.displayName="TextFieldError";var _a=react.forwardRef(({className:e,children:t,...r},a)=>jsxRuntime.jsx(reactAriaComponents.Text,{ref:a,slot:"description",className:f(it(),e),...r,children:t}));_a.displayName="TextFieldSuccess";var lt=react.forwardRef(({className:e,size:t="default",label:r,labelHint:a,description:o,errorMessage:s,successMessage:d,type:i="text",isRequired:u=false,isReadOnly:p=false,isDisabled:m=false,isInvalid:l=false,isValid:n=false,id:c,autoComplete:b,disableCopyPaste:v=false,pattern:C,patternDescription:h,expandOnFocus:E=false,collapsedWidth:y="200px",prefix:x,suffix:V,prefixSize:w=16,suffixSize:T=16,showPasswordToggle:I,isIconHidden:M=false,onSubmit:k,onClear:P,value:O,defaultValue:g,onFocus:R,onBlur:N,...G},Ye)=>{let Re=react.useId(),aa=react.useId(),oa=c||aa,{handleFocus:na,handleBlur:ia,inputWidth:sa}=Yt({expandOnFocus:E,collapsedWidth:y,value:O,defaultValue:g,userOnFocus:R,userOnBlur:N}),{isShaking:la,screenReaderMessage:Rt,handlePaste:da}=qt({disableCopyPaste:v}),{showPassword:qe,actualType:ca,handlePasswordToggle:Tt}=Xt({type:i,showPasswordToggle:I}),W=i==="search",[ua,It]=react.useState(g??""),fe=O!==void 0,Y=fe?O:ua,pa=react.useCallback(L=>{fe||It(L),G.onChange?.(L);},[fe,G]),Te=react.useCallback(()=>{fe||It(""),G.onChange?.(""),P?.();},[fe,G,P]),ma=react.useCallback(L=>{L.key==="Enter"&&k&&k(Y),L.key==="Escape"&&Y&&(L.preventDefault(),Te());},[Y,k,Te]),fa=react.useMemo(()=>m?"disabled":p?"readonly":l?"error":n?"success":"default",[m,p,l,n]),ba=react.useMemo(()=>m?"disabled":"default",[m]),Pt=react.useMemo(()=>o&&h?`${o} ${h}`:o||h,[o,h]),ee=react.useMemo(()=>W&&!M&&!x?jsxRuntime.jsx(lucideReact.Search,{className:t==="sm"?"h-3.5 w-3.5":t==="lg"?"h-5 w-5":"h-4 w-4"}):x,[W,M,x,t]),Ft=react.useMemo(()=>{let L={left:12,right:12};if(ee){let Xe=typeof ee=="string"?ee.length*8+16:w+16;L.left=Xe;}if(i==="password"&&I)L.right=32;else if(W&&Y)L.right=44;else if(V){let Xe=typeof V=="string"?V.length*8+16:T+16;L.right=Xe;}return L},[ee,x,V,w,T,i,I,W,Y]),At=react.useMemo(()=>i==="password"&&I?jsxRuntime.jsx(_,{variant:"ghost",visualSize:"icon",onPress:Tt,"aria-label":qe?"Hide password":"Show password",className:"!min-h-0 !min-w-0 h-8 w-8",children:qe?jsxRuntime.jsx(Ut,{}):jsxRuntime.jsx(zt,{})}):W&&Y?jsxRuntime.jsx(_,{variant:"ghost",visualSize:"icon",onPress:Te,"aria-label":"Clear search",className:"!min-h-0 !min-w-0 h-8 w-8",children:jsxRuntime.jsx(lucideReact.X,{className:t==="sm"?"h-3 w-3":t==="lg"?"h-5 w-5":"h-4 w-4"})}):V,[i,I,qe,V,Tt,W,Y,t,Te]),wt=i==="password"&&I||W&&!!Y;return jsxRuntime.jsxs(reactAriaComponents.TextField,{ref:Ye,className:f("flex flex-col gap-1.5",e),isRequired:u,isReadOnly:p,isDisabled:m,isInvalid:l,value:W?Y:O,defaultValue:W?void 0:g,onChange:W?pa:void 0,...G,children:[r&&jsxRuntime.jsxs(reactAriaComponents.Label,{className:f(ot({state:ba}),a&&"flex items-baseline justify-between"),children:[jsxRuntime.jsxs("span",{children:[r,u&&jsxRuntime.jsx("span",{className:"ml-1 text-[var(--destructive-background)]","aria-hidden":"true",children:jsxRuntime.jsx("strong",{children:"*"})})]}),a&&jsxRuntime.jsx("span",{className:"text-xs font-normal text-[var(--muted-foreground)]",children:a})]}),Pt&&jsxRuntime.jsx(reactAriaComponents.Text,{slot:"description",className:f(nt()),children:Pt}),jsxRuntime.jsxs("div",{className:f(K,"relative cursor-text motion-safe:transition-colors motion-safe:duration-200"),style:{width:sa},onClick:L=>{L.target===L.currentTarget&&L.currentTarget.querySelector("input")?.focus();},children:[ee&&jsxRuntime.jsx("div",{"data-testid":"textfield-prefix",className:"absolute left-3 flex items-center justify-center pointer-events-none text-[var(--content-foreground)]","aria-hidden":"true",children:ee}),jsxRuntime.jsx(reactAriaComponents.Input,{type:ca,id:oa,className:f(at({size:t,state:fa}),Ze,la&&"shake"),style:{width:"100%",paddingLeft:`${Ft.left}px`,paddingRight:`${Ft.right}px`},autoComplete:b,pattern:C,onPaste:da,onFocus:na,onBlur:ia,onKeyDown:W?ma:void 0,"aria-required":u?"true":void 0,"aria-readonly":p?"true":void 0,"aria-errormessage":l&&s?Re:void 0}),At&&jsxRuntime.jsx("div",{"data-testid":"textfield-suffix",className:f("absolute right-3 flex items-center justify-center text-[var(--content-foreground)]",wt?"":"pointer-events-none"),"aria-hidden":wt?void 0:"true",children:At})]}),n&&d&&!l&&jsxRuntime.jsx(reactAriaComponents.Text,{slot:"description",className:f(it()),children:d}),l&&s&&jsxRuntime.jsx(Jt,{id:Re,children:s}),Rt&&jsxRuntime.jsx("div",{className:"sr-only",role:"status","aria-live":"polite","aria-atomic":"true",children:Rt})]})});lt.displayName="TextField";var ke=react.forwardRef(({label:e,description:t,errorMessage:r,"aria-label":a,"aria-labelledby":o,...s},d)=>(process.env.NODE_ENV!=="production"&&!e&&!a&&!o&&console.warn("[SearchField] Either label, aria-label, or aria-labelledby is required for accessibility (WCAG 1.1.1)"),jsxRuntime.jsx(lt,{ref:d,type:"search",label:e,description:r?void 0:t,errorMessage:r,isInvalid:!!r,"aria-label":e?void 0:a,"aria-labelledby":o,...s})));ke.displayName="SearchField";function er(e,t){return !(e===false||t)}var tr="(prefers-reduced-motion: reduce)";function Ma(){return typeof window>"u"?false:window.matchMedia(tr).matches}function rr(){let[e,t]=react.useState(Ma);return react.useEffect(()=>{let r=window.matchMedia(tr);t(r.matches);let a=o=>{t(o.matches);};return r.addEventListener("change",a),()=>r.removeEventListener("change",a)},[]),e}var ve;function ja(){return ve!==void 0?Promise.resolve(ve):import('motion').then(e=>(ve=e.animate,ve)).catch(()=>(ve=null,null))}var Ya={stiffness:500,damping:30},or=classVarianceAuthority.cva("inline-flex shrink-0 cursor-pointer items-center justify-center min-h-[44px] min-w-[44px] disabled:cursor-not-allowed disabled:opacity-50 data-[readonly]:cursor-default",{variants:{},defaultVariants:{}}),nr=classVarianceAuthority.cva("relative inline-flex shrink-0 items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2 focus-visible:ring-offset-background",{variants:{variant:{default:"bg-[var(--border)] data-[selected]:bg-[var(--primary)]",destructive:"bg-[var(--border)] data-[selected]:bg-[var(--destructive-background)]"},size:{sm:"h-6 w-10",default:"h-7 w-12",lg:"h-8 w-14"}},defaultVariants:{variant:"default",size:"default"}}),ir=classVarianceAuthority.cva("pointer-events-none absolute left-0.5 rounded-full bg-[var(--content-background)] ring-0",{variants:{size:{sm:"h-4 w-4",default:"h-5 w-5",lg:"h-6 w-6"},animated:{false:"transition-transform data-[selected]:translate-x-full",true:""}},defaultVariants:{size:"default",animated:false}}),_e=react.memo(react.forwardRef(({className:e,variant:t,size:r,label:a,description:o,isDisabled:s,isReadOnly:d,animated:i,springConfig:u=Ya,onChange:p,...m},l)=>{let n=rr(),c=er(i,n),b=react.useRef(null),v=react.useRef(false),C=react.useRef(null),h=react.useRef(null);react.useEffect(()=>{c&&ja().then(x=>{if(x&&(C.current=x,v.current=true,b.current)){let V=b.current.hasAttribute("data-selected");b.current.style.transform=V?"translateX(100%)":"translateX(0)";}});},[c]);let E=react.useCallback(x=>{p?.(x),c&&v.current&&C.current&&b.current&&(h.current?.stop(),h.current=C.current(b.current,{x:x?"100%":"0%"},{type:"spring",stiffness:u.stiffness,damping:u.damping}));},[c,u.stiffness,u.damping,p]),y=c;return jsxRuntime.jsx(reactAriaComponents.Switch,{ref:l,isDisabled:s,isReadOnly:d,onChange:E,className:x=>f("group relative inline-flex items-center gap-2",s&&"cursor-not-allowed opacity-50",e),...m,children:x=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("div",{className:f(or()),"data-selected":x.isSelected||void 0,"data-readonly":d||void 0,children:jsxRuntime.jsx("div",{className:f(nr({variant:t,size:r}),kt),"data-selected":x.isSelected||void 0,children:jsxRuntime.jsx("div",{ref:b,className:f(ir({size:r,animated:y})),"data-selected":x.isSelected||void 0})})}),(a||o)&&jsxRuntime.jsxs("div",{className:"flex flex-col",children:[a&&jsxRuntime.jsx("span",{className:"text-sm font-medium text-[var(--content-foreground)]",children:a}),o&&jsxRuntime.jsx("span",{className:"text-xs text-[var(--menu-muted)]",children:o})]})]})})}));_e.displayName="Switch";var sr=react.createContext({variant:"default",size:"default",isInvalid:false}),oo=classVarianceAuthority.cva("flex",{variants:{orientation:{vertical:"flex-col gap-2",horizontal:"flex-row flex-wrap gap-2"}},defaultVariants:{orientation:"vertical"}}),no=classVarianceAuthority.cva(["relative flex items-center gap-3 rounded-md border cursor-pointer","transition-colors duration-200","rtl:flex-row-reverse",te,Z].join(" "),{variants:{variant:{default:["border-[var(--border)]","data-[hovered]:bg-[var(--accent)]/10","data-[selected]:border-[var(--primary)]","data-[selected]:bg-[var(--primary)]/10"].join(" "),destructive:["border-[var(--border)]","data-[hovered]:bg-[var(--destructive-background)]/10","data-[selected]:border-[var(--destructive-background)]","data-[selected]:bg-[var(--destructive-background)]/10"].join(" ")},size:{sm:"min-h-[44px] py-2 px-3 text-sm",default:"min-h-[48px] py-3 px-4 text-sm",lg:"min-h-[56px] py-4 px-5 text-base"},isDisabled:{true:"opacity-50 cursor-not-allowed",false:""},isInvalid:{true:"border-[var(--destructive-background)]",false:""}},defaultVariants:{variant:"default",size:"default",isDisabled:false,isInvalid:false}}),io=classVarianceAuthority.cva("flex-shrink-0 rounded-full border-2 flex items-center justify-center transition-colors duration-200",{variants:{variant:{default:["border-[var(--border)]","data-[selected]:border-[var(--primary)]"].join(" "),destructive:["border-[var(--border)]","data-[selected]:border-[var(--destructive-background)]"].join(" ")},size:{sm:"h-4 w-4",default:"h-5 w-5",lg:"h-6 w-6"}},defaultVariants:{variant:"default",size:"default"}}),so=classVarianceAuthority.cva(["rounded-full transition-transform duration-200","[transition-timing-function:cubic-bezier(0.34,1.56,0.64,1)]","motion-reduce:transition-none","scale-0 data-[selected]:scale-100"].join(" "),{variants:{variant:{default:"bg-[var(--primary)]",destructive:"bg-[var(--destructive-background)]"},size:{sm:"h-2 w-2",default:"h-2.5 w-2.5",lg:"h-3 w-3"}},defaultVariants:{variant:"default",size:"default"}});function lr({children:e,className:t}){return jsxRuntime.jsx("span",{className:f("font-medium text-[var(--content-foreground)]",t),children:e})}lr.displayName="Radio.Label";function dr({children:e,className:t}){return jsxRuntime.jsx("span",{className:f("text-sm text-[var(--menu-muted)]",t),children:e})}dr.displayName="Radio.Description";function lo({value:e,isDisabled:t,children:r,className:a}){let{variant:o,size:s,isInvalid:d}=react.useContext(sr);return jsxRuntime.jsx(reactAriaComponents.Radio,{value:e,isDisabled:t,className:i=>f(no({variant:o,size:s,isDisabled:i.isDisabled,isInvalid:d}),a),children:i=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("div",{className:io({variant:o,size:s}),"data-selected":i.isSelected||void 0,children:jsxRuntime.jsx("div",{className:so({variant:o,size:s}),"data-selected":i.isSelected||void 0})}),jsxRuntime.jsx("div",{className:"flex-1 flex flex-col",children:r})]})})}var le=Object.assign(lo,{Label:lr,Description:dr});le.displayName="Radio";var he=react.forwardRef(function(t,r){let{label:a,description:o,errorMessage:s,value:d,defaultValue:i,isDisabled:u=false,isReadOnly:p=false,isRequired:m=false,isInvalid:l=false,orientation:n="vertical",variant:c="default",size:b="default",name:v,onChange:C,onFocusChange:h,className:E,children:y,id:x,"aria-label":V,"aria-labelledby":w,"aria-describedby":T,"data-testid":I,...M}=t,k=react.useId(),P=x??k,O=`${P}-label`,g=`${P}-description`,R=`${P}-error`,N=[];T&&N.push(T),o&&N.push(g),l&&s&&N.push(R);let G=N.length>0?N.join(" "):void 0;return jsxRuntime.jsx(sr.Provider,{value:{variant:c,size:b,isInvalid:l},children:jsxRuntime.jsxs(reactAriaComponents.RadioGroup,{ref:r,id:P,name:v,value:d??void 0,defaultValue:i??void 0,isDisabled:u,isReadOnly:p,isRequired:m,isInvalid:l,orientation:n,onChange:C,onFocusChange:h,"aria-label":V,"aria-labelledby":a?O:w,"aria-describedby":G,"data-testid":I,"data-orientation":n,className:f("flex flex-col gap-1.5",E),...M,children:[a&&jsxRuntime.jsxs(reactAriaComponents.Label,{id:O,className:"text-sm font-medium text-[var(--content-foreground)]",children:[a,m&&jsxRuntime.jsx("span",{className:"ml-1 text-[var(--destructive-background)]","aria-hidden":"true",children:"*"})]}),o&&jsxRuntime.jsx(reactAriaComponents.Text,{id:g,slot:"description",className:"text-sm text-[var(--menu-muted)]",children:o}),jsxRuntime.jsx("div",{className:oo({orientation:n}),children:y}),l&&s&&jsxRuntime.jsx(reactAriaComponents.FieldError,{id:R,className:"text-sm text-[var(--destructive-background)]",children:jsxRuntime.jsx("span",{role:"alert",children:s})})]})})});he.displayName="RadioGroup";var ur=react.createContext({variant:"default",size:"default",isInvalid:false,isDisabled:false,isReadOnly:false}),pr=classVarianceAuthority.cva("flex",{variants:{orientation:{vertical:"flex-col gap-2",horizontal:"flex-row flex-wrap gap-2"}},defaultVariants:{orientation:"vertical"}}),mr=classVarianceAuthority.cva(["relative flex items-center gap-3 rounded-md border cursor-pointer","transition-colors duration-200","rtl:flex-row-reverse",te,Z].join(" "),{variants:{variant:{default:["border-[var(--border)]","data-[hovered]:bg-[var(--accent)]/10","data-[selected]:border-[var(--primary)]","data-[selected]:bg-[var(--primary)]/10"].join(" "),destructive:["border-[var(--border)]","data-[hovered]:bg-[var(--destructive-background)]/10","data-[selected]:border-[var(--destructive-background)]","data-[selected]:bg-[var(--destructive-background)]/10"].join(" ")},size:{sm:"min-h-[44px] py-2 px-3 text-sm",default:"min-h-[48px] py-3 px-4 text-sm",lg:"min-h-[56px] py-4 px-5 text-base"},isDisabled:{true:"opacity-50 cursor-not-allowed",false:""},isReadOnly:{true:"cursor-default",false:""},isInvalid:{true:"border-[var(--destructive-background)]",false:""}},defaultVariants:{variant:"default",size:"default",isDisabled:false,isReadOnly:false,isInvalid:false}}),fr=classVarianceAuthority.cva("flex-shrink-0 rounded-sm border-2 flex items-center justify-center transition-colors duration-200",{variants:{variant:{default:["border-[var(--border)]","data-[selected]:border-[var(--primary)]","data-[selected]:bg-[var(--primary)]"].join(" "),destructive:["border-[var(--border)]","data-[selected]:border-[var(--destructive-background)]","data-[selected]:bg-[var(--destructive-background)]"].join(" ")},size:{sm:"h-4 w-4",default:"h-5 w-5",lg:"h-6 w-6"}},defaultVariants:{variant:"default",size:"default"}}),br=classVarianceAuthority.cva(["transition-transform duration-200","[transition-timing-function:cubic-bezier(0.34,1.56,0.64,1)]","motion-reduce:transition-none","scale-0 data-[selected]:scale-100"].join(" "),{variants:{variant:{default:"text-[var(--primary-foreground)]",destructive:"text-[var(--destructive-foreground)]"},size:{sm:"h-3 w-3",default:"h-3.5 w-3.5",lg:"h-4 w-4"}},defaultVariants:{variant:"default",size:"default"}});function xr({className:e,...t}){return jsxRuntime.jsx("svg",{className:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:3,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",...t,children:jsxRuntime.jsx("polyline",{points:"20 6 9 17 4 12"})})}function gr({children:e,className:t}){return jsxRuntime.jsx("span",{className:f("font-medium text-[var(--content-foreground)]",t),children:e})}gr.displayName="Checkbox.Label";function vr({children:e,className:t}){return jsxRuntime.jsx("span",{className:f("text-sm text-[var(--menu-muted)]",t),children:e})}vr.displayName="Checkbox.Description";function Co({value:e,isDisabled:t,children:r,className:a,selectedIcon:o}){let{variant:s,size:d,isInvalid:i,isDisabled:u,isReadOnly:p}=react.useContext(ur),m=t||u,l=n=>{let c=f(br({variant:s,size:d})),b=n||void 0;if(o){if(react.isValidElement(o)){let v=o;return react.cloneElement(v,{className:f(c,v.props.className),"data-selected":b})}return jsxRuntime.jsx("span",{className:c,"data-selected":b,children:o})}return jsxRuntime.jsx(xr,{className:c,"data-selected":b})};return jsxRuntime.jsx(reactAriaComponents.Checkbox,{value:e,isDisabled:m,className:n=>f(mr({variant:s,size:d,isDisabled:n.isDisabled,isReadOnly:p,isInvalid:i}),a),children:n=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("div",{className:fr({variant:s,size:d}),"data-selected":n.isSelected||void 0,children:l(n.isSelected)}),jsxRuntime.jsx("div",{className:"flex-1 flex flex-col",children:r})]})})}var Be=Object.assign(Co,{Label:gr,Description:vr});Be.displayName="Checkbox";function cr(e,t){if(!e)return e;let r=[...new Set(e)];return process.env.NODE_ENV!=="production"&&r.length!==e.length&&console.warn(`[${t}] Received duplicate values in value/defaultValue prop. Original: [${e.join(", ")}], Deduplicated: [${r.join(", ")}]. Duplicate values are automatically removed.`),r}var Ge=react.forwardRef(function(t,r){let{label:a,description:o,errorMessage:s,value:d,defaultValue:i,isDisabled:u=false,isReadOnly:p=false,isRequired:m=false,isInvalid:l=false,orientation:n="vertical",variant:c="default",size:b="default",name:v,onChange:C,onFocusChange:h,className:E,children:y,id:x,"aria-label":V,"aria-labelledby":w,"aria-describedby":T,"data-testid":I,...M}=t,k=react.useId(),P=x??k,O=`${P}-label`,g=`${P}-description`,R=`${P}-error`,N=[];T&&N.push(T),o&&N.push(g),l&&s&&N.push(R);let G=N.length>0?N.join(" "):void 0,Ye=cr(d,"CheckboxGroup"),Re=cr(i,"CheckboxGroup");return jsxRuntime.jsx(ur.Provider,{value:{variant:c,size:b,isInvalid:l,isDisabled:u,isReadOnly:p},children:jsxRuntime.jsxs(reactAriaComponents.CheckboxGroup,{ref:r,id:P,name:v,value:Ye,defaultValue:Re,isDisabled:u,isReadOnly:p,isRequired:m,isInvalid:l,onChange:C,onFocusChange:h,"aria-label":V,"aria-labelledby":a?O:w,"aria-describedby":G,"aria-orientation":n,"aria-required":m||void 0,"aria-invalid":l||void 0,"data-testid":I,className:f("flex flex-col gap-1.5",E),...M,children:[a&&jsxRuntime.jsxs(reactAriaComponents.Label,{id:O,className:"text-sm font-medium text-[var(--content-foreground)]",children:[a,m&&jsxRuntime.jsx("span",{className:"ml-1 text-[var(--destructive-background)]","aria-hidden":"true",children:"*"})]}),o&&jsxRuntime.jsx(reactAriaComponents.Text,{id:g,slot:"description",className:"text-sm text-[var(--menu-muted)]",children:o}),jsxRuntime.jsx("div",{className:pr({orientation:n}),children:y}),l&&s&&jsxRuntime.jsx(reactAriaComponents.FieldError,{id:R,className:"text-sm text-[var(--destructive-background)]",children:jsxRuntime.jsx("span",{role:"alert",children:s})})]})})});Ge.displayName="CheckboxGroup";function No(e){if(!(e instanceof Element))return false;let t=e;for(let o=0;t&&o<100;o++){let s=t.tagName?.toLowerCase()??"";if(s.startsWith("grammarly-")||s.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 r=e;for(;r&&!r.tagName.includes("-");)r=r.parentElement;if(!r)return false;let a=r.parentElement;return a===document.body||a===document.documentElement}function de(e){return t=>!No(t)&&(e?.(t)??true)}var hr=classVarianceAuthority.cva("group flex flex-col gap-1.5 w-full",{variants:{size:{sm:"",default:"",lg:""}},defaultVariants:{size:"default"}}),Sr=classVarianceAuthority.cva("text-[var(--text-primary)] font-medium",{variants:{size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{size:"default"}}),yr=classVarianceAuthority.cva(["flex-1 bg-transparent outline-none","placeholder:text-[var(--muted-foreground)]","disabled:cursor-not-allowed"],{variants:{size:Ke},defaultVariants:{size:"default"}}),Cr=classVarianceAuthority.cva(["flex items-center w-full rounded-md border","bg-[var(--input-background)] text-[var(--content-foreground)]","border-[var(--input-border)]","transition-colors duration-[var(--transition-fast)]","focus-within:ring-2 focus-within:ring-[var(--ring)] focus-within:ring-offset-[var(--ring-offset)]","data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50","data-[invalid]:border-[var(--destructive-background)]"],{variants:{size:{sm:`${D.sm} gap-1`,default:`${D.default} gap-2`,lg:`${D.lg} gap-2`}},defaultVariants:{size:"default"}}),Er=classVarianceAuthority.cva(["flex items-center justify-end shrink-0","text-[var(--muted-foreground)]","hover:text-[var(--text-primary)]","transition-colors","focus:outline-none"],{variants:{size:{sm:"h-4 w-4 min-h-[44px] min-w-[44px]",default:"h-5 w-5 min-h-[44px] min-w-[44px]",lg:"h-6 w-6 min-h-[44px] min-w-[44px]"}},defaultVariants:{size:"default"}}),Nr=classVarianceAuthority.cva(["w-[var(--trigger-width)] overflow-auto","rounded-md border border-[var(--border)]","bg-[var(--content-background)] text-[var(--content-foreground)]","data-[entering]:motion-safe:animate-in data-[entering]:motion-safe:fade-in-0","data-[exiting]:motion-safe:animate-out data-[exiting]:motion-safe:fade-out-0"]),Vr=classVarianceAuthority.cva("p-1 outline-none max-h-[300px] overflow-auto"),Rr=classVarianceAuthority.cva(["flex items-center gap-2 w-full rounded-sm px-2 py-1.5","text-[var(--content-foreground)]","cursor-pointer outline-none","data-[focused]:bg-[var(--accent-background)] data-[focused]:text-[var(--accent-foreground)]","data-[selected]:font-medium","data-[disabled]:opacity-50 data-[disabled]:cursor-not-allowed"],{variants:{size:{sm:"text-xs min-h-[44px]",default:"text-sm min-h-[44px]",lg:"text-base min-h-[44px]"}},defaultVariants:{size:"default"}});classVarianceAuthority.cva("pt-1");classVarianceAuthority.cva("px-2 py-1.5 text-xs font-semibold text-[var(--muted-foreground)]");var Pr=classVarianceAuthority.cva("text-[var(--muted-foreground)]",{variants:{size:{sm:"text-xs",default:"text-xs",lg:"text-sm"}},defaultVariants:{size:"default"}}),Fr=classVarianceAuthority.cva("text-[var(--destructive-background)]",{variants:{size:{sm:"text-xs",default:"text-xs",lg:"text-sm"}},defaultVariants:{size:"default"}});var Me=react.forwardRef(({className:e,size:t="default",label:r,description:a,errorMessage:o,isRequired:s,isDisabled:d,isReadOnly:i,placeholder:u,name:p,allowsCustomValue:m=false,menuTrigger:l="input",defaultInputValue:n,inputValue:c,defaultSelectedKey:b,selectedKey:v,onInputChange:C,onSelectionChange:h,children:E,"aria-label":y,"aria-labelledby":x,"data-testid":V,...w},T)=>(process.env.NODE_ENV!=="production"&&!r&&!y&&!x&&console.warn("[Combobox] Either label, aria-label, or aria-labelledby is required for accessibility (WCAG 1.1.1)"),jsxRuntime.jsxs(reactAriaComponents.ComboBox,{ref:T,className:f(hr({size:t}),e),isRequired:s,isDisabled:d,isReadOnly:i,name:p,allowsCustomValue:m,menuTrigger:l,defaultInputValue:n,inputValue:c,defaultSelectedKey:b,selectedKey:v,onInputChange:C,onSelectionChange:h,"aria-label":r?void 0:y,"aria-labelledby":x,"data-testid":V,...w,children:[r&&jsxRuntime.jsxs(reactAriaComponents.Label,{className:Sr({size:t}),children:[r,s&&jsxRuntime.jsx("span",{className:"text-[var(--destructive-background)] ml-1","aria-hidden":"true",children:"*"})]}),jsxRuntime.jsxs("div",{className:f(K,Cr({size:t})),children:[jsxRuntime.jsx(reactAriaComponents.Input,{className:yr({size:t}),placeholder:u}),jsxRuntime.jsx(reactAriaComponents.Button,{className:Er({size:t}),children:jsxRuntime.jsx(lucideReact.ChevronsUpDown,{className:"h-4 w-4",strokeWidth:1.5,"aria-hidden":"true"})})]}),a&&!o&&jsxRuntime.jsx(reactAriaComponents.Text,{slot:"description",className:Pr({size:t}),children:a}),o&&jsxRuntime.jsx(reactAriaComponents.Text,{slot:"errorMessage",className:Fr({size:t}),children:o}),jsxRuntime.jsx(reactAriaComponents.Popover,{shouldCloseOnInteractOutside:de(),className:Nr(),children:jsxRuntime.jsx(reactAriaComponents.ListBox,{className:Vr(),children:E})})]})));Me.displayName="Combobox";function ye({children:e,className:t,textValue:r,...a}){let o=r||(typeof e=="string"?e:void 0);return jsxRuntime.jsx(reactAriaComponents.ListBoxItem,{className:f(Rr({size:"default"}),t),textValue:o,...a,children:({isSelected:s})=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("span",{className:"flex-1",children:e}),s&&jsxRuntime.jsx(lucideReact.Check,{className:"h-4 w-4 shrink-0 text-[var(--primary)]","aria-hidden":"true"})]})})}ye.displayName="ComboboxItem";var kr=classVarianceAuthority.cva(["flex","w-full","items-center","justify-between","gap-2","rounded-md","border","bg-[var(--content-background)]","text-[var(--content-foreground)]","transition-colors","duration-200","outline-none","focus-visible:ring-2","focus-visible:ring-[var(--ring)]","focus-visible:ring-offset-2","hover:bg-[var(--accent)]/10","disabled:cursor-not-allowed","disabled:opacity-50","data-[loading=true]:cursor-wait","truncate"],{variants:{size:{sm:`${D.sm} pr-1`,default:`${D.default} pr-1.5`,lg:`${D.lg} pr-2`},isInvalid:{true:"border-[var(--destructive-background)]",false:"border-[var(--input-border)] hover:border-[var(--input-border)]/80"}},defaultVariants:{size:"default",isInvalid:false}}),Lr=classVarianceAuthority.cva(["relative","flex","w-full","cursor-pointer","select-none","items-center","rounded-sm","outline-none","transition-colors","pl-8","pr-2","hover:bg-[var(--accent)]","hover:text-[var(--accent-foreground)]","focus:bg-[var(--accent)]","focus:text-[var(--accent-foreground)]","data-[selected=true]:bg-[var(--accent)]","data-[selected=true]:text-[var(--accent-foreground)]","data-[disabled=true]:pointer-events-none","data-[disabled=true]:opacity-50","data-[disabled=true]:text-[var(--menu-muted)]"],{variants:{size:{sm:`${D.sm} py-1`,default:`${D.default} py-2`,lg:`${D.lg} py-3`}},defaultVariants:{size:"default"}}),_r=classVarianceAuthority.cva(["z-50","w-[--trigger-width]","rounded-md","border","border-[var(--menu-border)]","bg-[var(--menu-background)]","text-[var(--menu-foreground)]","outline-none","overflow-auto","data-[entering]:animate-in","data-[entering]:fade-in-0","data-[entering]:zoom-in-95","data-[exiting]:animate-out","data-[exiting]:fade-out-0","data-[exiting]:zoom-out-95"],{variants:{size:{sm:"max-h-[200px] p-1",default:"max-h-[300px] p-1",lg:"max-h-[400px] p-1"}},defaultVariants:{size:"default"}}),Or=classVarianceAuthority.cva(["px-2","py-1.5","text-xs","font-semibold","text-[var(--menu-muted)]","uppercase","tracking-wider"],{variants:{size:{sm:"px-2 py-1 text-[10px]",default:"px-2 py-1 text-xs",lg:"px-2 py-1.5 text-xs"}},defaultVariants:{size:"default"}}),Dr=classVarianceAuthority.cva(["flex","items-center","gap-1.5","text-sm","font-medium","text-[var(--destructive-background)]","mt-1"],{variants:{size:{sm:"text-xs mt-1",default:"text-sm mt-1",lg:"text-base mt-1"}},defaultVariants:{size:"default"}});var en=Array.from({length:3}).map((e,t)=>jsxRuntime.jsx("div",{className:"h-11 px-4 py-2",children:jsxRuntime.jsx("div",{className:"h-4 bg-[var(--accent-background)] rounded animate-pulse"})},`skeleton-${t}`));function Hr({ariaSelectProps:e,triggerContent:t,triggerRef:r,label:a,description:o,isRequired:s,isDisabled:d,isLoading:i,errorMessage:u,size:p,emptyStateMessage:m,childCount:l,children:n}){let c=react.useId(),b=react.useId(),v=react.useId(),C=!!u,{className:h,...E}=e;return jsxRuntime.jsxs(reactAriaComponents.Select,{...E,className:f("flex flex-col gap-1.5",h),isInvalid:C,children:[jsxRuntime.jsxs(reactAriaComponents.Label,{id:c,className:"text-sm font-medium text-[var(--content-foreground)]",children:[a,s&&jsxRuntime.jsx("span",{className:"text-[var(--destructive-background)] ml-1",children:"*"})]}),o&&jsxRuntime.jsx(reactAriaComponents.Text,{id:b,slot:"description",className:"text-sm text-[var(--menu-muted)]",children:o}),jsxRuntime.jsx("div",{className:K,children:jsxRuntime.jsxs(reactAriaComponents.Button,{ref:r,className:kr({size:p,isInvalid:C}),"aria-labelledby":c,"aria-describedby":o?b:u?v:void 0,"data-loading":i,...s&&{"aria-required":"true"},...i&&{"aria-busy":"true"},...(d||i)&&{"aria-disabled":"true"},children:[t,i?jsxRuntime.jsx(lucideReact.Loader2,{className:"ml-auto h-4 w-4 shrink-0 animate-spin text-[var(--menu-muted)]","aria-hidden":"true"}):jsxRuntime.jsx(lucideReact.ChevronDown,{className:"ml-auto h-4 w-4 shrink-0 text-[var(--menu-muted)]","aria-hidden":"true"})]})}),jsxRuntime.jsx(reactAriaComponents.FieldError,{id:v,className:Dr({size:p}),children:({validationErrors:y})=>{let x=u||y.join(" ");return x?jsxRuntime.jsx(jsxRuntime.Fragment,{children:x}):null}}),jsxRuntime.jsx(reactAriaComponents.Popover,{shouldCloseOnInteractOutside:de(),className:_r({size:p}),children:jsxRuntime.jsxs(reactAriaComponents.ListBox,{className:"outline-none",children:[i&&l>0&&en,!i&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[n,l===0&&jsxRuntime.jsx(reactAriaComponents.ListBoxItem,{id:"__empty__",textValue:"empty",isDisabled:true,className:"py-6 text-center text-sm text-[var(--menu-muted)] cursor-default pointer-events-none",children:jsxRuntime.jsx("span",{role:"status",children:m||"No options available"})})]})]})})]})}var zr=react.forwardRef(({label:e,placeholder:t,description:r,value:a,defaultValue:o,isOpen:s,isDisabled:d=false,isRequired:i=false,disabledKeys:u,validate:p,validationBehavior:m="aria",errorMessage:l,isLoading:n=false,emptyStateMessage:c,name:b,size:v="default",onChange:C,onOpenChange:h,className:E,children:y,...x},V)=>{let w=react.Children.count(y);return w>1e3&&console.warn("Select has >1000 items. Consider using Autocomplete component for better performance."),jsxRuntime.jsx(Hr,{ariaSelectProps:{value:a,defaultValue:o,onChange:T=>{C&&C(T);},placeholder:t,disabledKeys:u,isOpen:s,onOpenChange:h,isDisabled:d||n,isRequired:i,name:b,validate:p,validationBehavior:m,className:E,...x},triggerContent:jsxRuntime.jsx(reactAriaComponents.SelectValue,{className:"flex-1 text-left truncate"}),triggerRef:V,label:e,description:r,isRequired:i,isDisabled:d,isLoading:n,errorMessage:l,size:v,emptyStateMessage:c,childCount:w,children:y})});zr.displayName="Select";var Ur=react.forwardRef(({label:e,placeholder:t,description:r,value:a,defaultValue:o,selectionMode:s="multiple",isOpen:d,isDisabled:i=false,isRequired:u=false,disabledKeys:p,validate:m,validationBehavior:l="aria",errorMessage:n,isLoading:c=false,emptyStateMessage:b,name:v,size:C="default",onChange:h,onOpenChange:E,className:y,children:x,...V},w)=>{let T=react.Children.count(x);T>1e3&&console.warn("Select has >1000 items. Consider using Autocomplete component for better performance.");let I=react.useMemo(()=>{let k=new Map,P=O=>{react.Children.forEach(O,g=>{if(react.isValidElement(g)){let R=g;if(R.type===He||R.props?.value){let N=R.props.value,G=R.props.children;N&&typeof G=="string"&&k.set(N,G);}R.props?.children&&P(R.props.children);}});};return P(x),k},[x]),M=react.useMemo(()=>!a||!Array.isArray(a)||a.length===0?t||"":a.length<=2?a.map(P=>I.get(P)||P).join(", "):`${a.length} items selected`,[a,I,t]);return jsxRuntime.jsx(Hr,{ariaSelectProps:{value:a,defaultValue:o,onChange:k=>{h&&h(k);},selectionMode:"multiple",disabledKeys:p,isOpen:d,onOpenChange:E,isDisabled:i||c,isRequired:u,name:v,validate:m,validationBehavior:l,className:y,...V},triggerContent:jsxRuntime.jsx("span",{className:"flex-1 text-left truncate",children:M}),triggerRef:w,label:e,description:r,isRequired:u,isDisabled:i,isLoading:c,errorMessage:n,size:C,emptyStateMessage:b,childCount:T,children:x})});Ur.displayName="MultiSelect";var He=react.memo(function({children:t,textValue:r,value:a,isDisabled:o=false,className:s,...d}){if(!r&&typeof t!="string"){let i="Select.Item with custom children requires textValue prop for accessibility";if(process.env.NODE_ENV==="development")throw new Error(i);console.warn(i);}return jsxRuntime.jsx(reactAriaComponents.ListBoxItem,{id:a,textValue:r||(typeof t=="string"?t:void 0),className:`${Lr({size:"default"})} ${s||""}`,isDisabled:o,...d,children:({isSelected:i,selectionMode:u,isDisabled:p})=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[u==="multiple"?jsxRuntime.jsx(lucideReact.CheckSquare,{className:`absolute left-2 h-4 w-4 ${i?"visible":"invisible"}`,"aria-hidden":"true"}):i&&jsxRuntime.jsx(lucideReact.Check,{className:"absolute left-2 h-4 w-4","aria-hidden":"true"}),jsxRuntime.jsx("span",{className:p?"text-[var(--menu-muted)]":"",children:t})]})})});He.displayName="SelectItem";function bt({children:e,className:t,...r}){return jsxRuntime.jsx(reactAriaComponents.ListBoxSection,{className:`border-t border-[var(--border)] first:border-t-0 ${t||""}`,...r,children:e})}bt.displayName="SelectSection";function xt({children:e,className:t,...r}){return jsxRuntime.jsx(reactAriaComponents.Header,{className:`${Or({size:"default"})} ${t||""}`,...r,children:e})}xt.displayName="SelectHeader";var Ee=Object.assign(zr,{Item:He,Section:bt,Header:xt});Object.assign(Ur,{Item:He,Section:bt,Header:xt});var Wr=classVarianceAuthority.cva(["relative inline-flex items-center 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-[var(--page-background)]","disabled:pointer-events-none","disabled:opacity-50"],{variants:{},defaultVariants:{}}),jr=classVarianceAuthority.cva(["inline-flex items-center justify-center","gap-1","rounded-full","font-medium","whitespace-nowrap","transition-colors"],{variants:{variant:{primary:["bg-[var(--primary-action)]","text-[var(--primary-action-foreground)]","hover:bg-[var(--primary-action)]/90","data-[pressed]:bg-[var(--primary-action)]/80"],accent:["bg-[var(--accent-background)]","text-[var(--accent-foreground)]","hover:bg-[var(--accent-background)]/90","data-[pressed]:bg-[var(--accent-background)]/80"],destructive:["bg-[var(--destructive-background)]","text-[var(--destructive-foreground)]","hover:bg-[var(--destructive-background)]/90","data-[pressed]:bg-[var(--destructive-background)]/80"],content:["bg-[var(--accent-background)]","text-[var(--accent-foreground)]","hover:bg-[var(--accent-background)]/90","data-[pressed]:bg-[var(--accent-background)]/80"]},size:{sm:"h-5 px-2 text-xs",default:"h-6 px-2.5 text-xs",lg:"h-7 px-3 text-sm"}},defaultVariants:{variant:"primary",size:"default"}});var nn={sm:"[&_svg]:h-2.5 [&_svg]:w-2.5",default:"[&_svg]:h-3 [&_svg]:w-3",lg:"[&_svg]:h-3.5 [&_svg]:w-3.5"},ue=react.memo(react.forwardRef(({className:e,variant:t="primary",size:r="default",children:a,icon:o,iconPosition:s="start",count:d,onPress:i,isDisabled:u,id:p,"aria-label":m,"aria-labelledby":l,"aria-describedby":n,"data-testid":c,...b},v)=>{let C=f(jr({variant:t,size:r}),nn[r],e),x=[!!o,d!==void 0,!!a].filter(Boolean).length>1,V=()=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[o&&s==="start"&&jsxRuntime.jsx("span",{className:"shrink-0","aria-hidden":"true",children:o}),a&&(x?jsxRuntime.jsx("span",{children:a}):a),d!==void 0&&jsxRuntime.jsx("span",{className:"font-mono tabular-nums",children:d}),o&&s==="end"&&jsxRuntime.jsx("span",{className:"shrink-0","aria-hidden":"true",children:o})]});return i?jsxRuntime.jsx(reactAriaComponents.Button,{ref:v,isDisabled:u,onPress:i,className:Wr(),id:p,"aria-label":m,"aria-labelledby":l,"aria-describedby":n,"data-testid":c,...b,children:w=>jsxRuntime.jsx("span",{className:f(C,be,"",re,ae),"data-pressed":w.isPressed||void 0,children:V()})}):jsxRuntime.jsx("span",{ref:v,className:C,id:p,"aria-label":m,"aria-labelledby":l,"aria-describedby":n,"data-testid":c,...b,children:V()})}));ue.displayName="Badge";var gt=classVarianceAuthority.cva(["flex flex-wrap items-center gap-2"]),Ne=classVarianceAuthority.cva(["inline-flex items-center gap-2"]),vt=classVarianceAuthority.cva(["min-w-[14rem] max-w-[20rem] rounded-md border border-[var(--border)]","bg-[var(--content-background)] p-2 shadow-md","motion-safe:data-[entering]:animate-in motion-safe:data-[entering]:fade-in-0","motion-safe:data-[exiting]:animate-out motion-safe:data-[exiting]:fade-out-0"]),ht=classVarianceAuthority.cva(["flex items-center justify-between gap-2 px-1 pb-2 mb-1","border-b border-[var(--border)]"]),St=classVarianceAuthority.cva(["flex items-center gap-2"],{variants:{scrollable:{true:"flex-nowrap overflow-x-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden [&>*]:flex-none",false:"flex-wrap"}},defaultVariants:{scrollable:false}}),Yr=classVarianceAuthority.cva(["fixed inset-0 z-[80] bg-[rgb(23_23_23_/_0.42)]","motion-safe:data-[entering]:animate-in motion-safe:data-[entering]:fade-in-0","motion-safe:data-[exiting]:animate-out motion-safe:data-[exiting]:fade-out-0"]),qr=classVarianceAuthority.cva(["fixed inset-x-0 bottom-0 z-[81] flex max-h-[88vh] flex-col","rounded-t-3xl border-t border-[var(--border)] bg-[var(--content-background)]","motion-safe:data-[entering]:animate-in motion-safe:data-[entering]:slide-in-from-bottom","motion-safe:data-[exiting]:animate-out motion-safe:data-[exiting]:slide-out-to-bottom"]),Xr=classVarianceAuthority.cva(["flex items-center justify-between gap-2 px-5 py-3 border-b border-[var(--border)] flex-none"]),Zr=classVarianceAuthority.cva(["flex flex-col gap-5 overflow-auto p-5 flex-1","[&>*]:w-full"]),Kr=classVarianceAuthority.cva(["flex items-center justify-between gap-3 px-5 pt-3 flex-none","pb-[calc(0.75rem+env(safe-area-inset-bottom))] border-t border-[var(--border)]"]),Qr=classVarianceAuthority.cva(["mx-auto mt-2.5 mb-0.5 h-1.5 w-10 flex-none rounded-full bg-[var(--border)]"]),dn=classVarianceAuthority.cva(["inline-flex items-center gap-1.5 min-h-[44px] px-3 rounded-full","border border-[var(--border)] bg-[var(--accent-background)]","text-sm text-[var(--content-foreground)]","hover:bg-[var(--accent)] motion-safe:transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2","cursor-pointer"]);function Ve({label:e,badge:t,isActive:r=false,children:a,doneLabel:o,align:s="start",className:d}){let i=t!=null&&t!=="";return jsxRuntime.jsxs(reactAriaComponents.DialogTrigger,{children:[jsxRuntime.jsxs(_,{variant:r?"secondary":"outline",className:f(Ne(),d),children:[jsxRuntime.jsx("span",{children:e}),i&&jsxRuntime.jsx(ue,{size:"sm",children:String(t)}),jsxRuntime.jsx(lucideReact.ChevronDown,{"aria-hidden":"true",className:"h-4 w-4 opacity-60"})]}),jsxRuntime.jsx(reactAriaComponents.Popover,{isNonModal:true,shouldCloseOnInteractOutside:de(),placement:s==="end"?"bottom end":"bottom start",className:vt(),children:jsxRuntime.jsx(reactAriaComponents.Dialog,{"aria-label":e,className:"outline-none",children:({close:u})=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[o&&jsxRuntime.jsxs("div",{className:ht(),children:[jsxRuntime.jsx("span",{className:"text-xs font-bold uppercase tracking-wide text-[var(--menu-muted)]",children:e}),jsxRuntime.jsx(_,{variant:"link",onPress:u,children:o})]}),typeof a=="function"?a(u):a]})})})]})}function vn(e,t){typeof e=="function"?e(t):e&&(e.current=t);}var $e=react.forwardRef(({chips:e,onRemove:t,onClearAll:r,clearAllLabel:a,removeChipLabel:o,scrollable:s=false,"aria-label":d="Active filters",className:i,"data-testid":u="applied-filters"},p)=>{let m=react.useRef(null);if(e.length===0)return null;let l='button,a[href],input,select,textarea,[tabindex]:not([tabindex="-1"])',n=(c,b)=>{let v=m.current;if(e.length<=1&&v){let h=v.previousElementSibling;((h?.matches(l)?h:h?.querySelector(l))??v).focus(),t(c);return}t(c),requestAnimationFrame(()=>{let h=m.current;if(!h)return;let E=h.querySelectorAll("[data-chip]");E.length>0?E[Math.min(b,E.length-1)]?.focus():h.focus();});};return jsxRuntime.jsxs("div",{ref:c=>{m.current=c,vn(p,c);},role:"region","aria-label":d,tabIndex:-1,className:f(St({scrollable:s}),"outline-none",i),"data-testid":u,children:[e.map((c,b)=>jsxRuntime.jsxs(_,{variant:"outline","data-chip":true,"aria-label":o(`${c.group?`${c.group} `:""}${c.label}`),onPress:()=>n(c,b),children:[c.group&&jsxRuntime.jsx("span",{className:"text-xs font-bold uppercase tracking-wide opacity-60",children:c.group}),jsxRuntime.jsx("span",{className:"font-semibold",children:c.label}),jsxRuntime.jsx(lucideReact.X,{"aria-hidden":"true",className:"h-3.5 w-3.5 opacity-60"})]},c.id)),e.length>1&&jsxRuntime.jsx(_,{variant:"link",onPress:()=>{r(),requestAnimationFrame(()=>m.current?.focus());},children:a})]})});$e.displayName="AppliedFilters";var We=react.createContext(null);function j(e){let t=react.useContext(We);if(!t)throw new Error(`<${e}> must be rendered inside <Filters>.`);return t}var ta=react.forwardRef(({values:e,onChange:t,labels:r,narrow:a=false,children:o,"aria-label":s="Filters",className:d,"data-testid":i="filters"},u)=>{let p=react.useRef(new Map),[m,l]=react.useState(0),n=react.useRef(e);n.current=e;let c=react.useCallback((g,R)=>{t({...n.current,[g]:R});},[t]),b=react.useCallback(g=>t(g),[t]),v=react.useCallback((g,R)=>{R?p.current.set(g,R):p.current.delete(g),l(N=>N+1);},[]),C=react.useMemo(()=>({values:e,narrow:a,setValue:c,replaceValues:b,labels:r,registry:p,registryVersion:m,syncControl:v}),[e,a,c,b,r,m,v]),h=react.useMemo(()=>{let g=0;for(let[R,N]of p.current)N.isActive(e[R])&&(g+=1);return g},[e,m]),E=()=>{let g={...n.current};for(let[R,N]of p.current)g[R]=N.clearedValue;b(g);},[y,x]=react.useState(false),V=react.useRef(null),w=react.useRef(null),T=react.useRef(null),I=react.useCallback(()=>{x(false),requestAnimationFrame(()=>V.current?.focus());},[]);react.useEffect(()=>{if(!y)return;w.current?.querySelector('button,a[href],input,select,textarea,[tabindex]:not([tabindex="-1"])')?.focus();},[y]),react.useEffect(()=>{if(!y)return;let g=N=>{let G=N.target;T.current&&T.current.contains(G)&&I();},R=N=>{N.key==="Escape"&&(N.preventDefault(),I());};return document.addEventListener("pointerdown",g,true),document.addEventListener("keydown",R),()=>{document.removeEventListener("pointerdown",g,true),document.removeEventListener("keydown",R);}},[y,I]);let M=react.Children.toArray(o),k=g=>react.isValidElement(g)&&g.type===ra,P=M.filter(k),O=M.filter(g=>!k(g));return a?jsxRuntime.jsx(We.Provider,{value:C,children:jsxRuntime.jsxs("div",{ref:u,role:"region","aria-label":s,className:f("flex flex-col gap-3",d),"data-testid":i,children:[jsxRuntime.jsx("div",{children:jsxRuntime.jsxs(_,{ref:V,variant:"outline",className:Ne(),"aria-haspopup":"dialog","aria-expanded":y,onPress:()=>x(true),children:[jsxRuntime.jsx(lucideReact.SlidersHorizontal,{"aria-hidden":"true",className:"h-4 w-4"}),jsxRuntime.jsx("span",{children:r.filtersButton??s}),h>0&&jsxRuntime.jsx(ue,{size:"sm",children:String(h)})]})}),y&&jsxRuntime.jsx("div",{ref:T,className:Yr(),"aria-hidden":"true"}),jsxRuntime.jsx(reactAria.FocusScope,{contain:y,restoreFocus:true,children:jsxRuntime.jsxs("div",{ref:w,role:"dialog","aria-modal":y||void 0,"aria-label":s,className:y?qr():"hidden",children:[jsxRuntime.jsx("span",{className:Qr(),"aria-hidden":"true"}),jsxRuntime.jsxs("div",{className:Xr(),children:[jsxRuntime.jsx("span",{className:"text-lg font-semibold",children:r.filtersButton??s}),jsxRuntime.jsx(_,{variant:"ghost",visualSize:"icon","aria-label":r.close??"Close",onPress:I,children:jsxRuntime.jsx(lucideReact.X,{"aria-hidden":"true"})})]}),jsxRuntime.jsx("div",{className:Zr(),children:O}),jsxRuntime.jsxs("div",{className:Kr(),children:[jsxRuntime.jsx(_,{variant:"link",onPress:E,children:r.clearAll??r.clear}),jsxRuntime.jsx(_,{variant:"default",onPress:I,children:r.done})]})]})}),P]})}):jsxRuntime.jsx(We.Provider,{value:C,children:jsxRuntime.jsxs("div",{ref:u,role:"region","aria-label":s,className:f("flex flex-col gap-3",d),"data-testid":i,children:[jsxRuntime.jsx("div",{className:gt(),children:O}),P]})})});ta.displayName="Filters";function me(e,t){let{syncControl:r}=j("Filter control");react.useEffect(()=>(r(e,t),()=>r(e,null)),[e,t,r]);}function Et(e){return e.map(t=>`${t.value}\0${t.label}`).join("")}function Nt(e,t){return e.find(r=>r.value===t)?.label??t}function Tn({name:e,label:t,placeholder:r,chipGroup:a,className:o}){let{values:s,setValue:d}=j("FilterSearch"),i=typeof s[e]=="string"?s[e]:"",u=react.useMemo(()=>({name:e,clearedValue:"",isActive:p=>typeof p=="string"&&p.trim()!=="",toChips:p=>typeof p=="string"&&p.trim()!==""?[{id:e,key:e,label:`\u201C${p}\u201D`,group:a??t}]:[]}),[e,t,a]);return me(e,u),jsxRuntime.jsx(ke,{"aria-label":t,placeholder:r,value:i,onChange:p=>d(e,p),onClear:()=>d(e,""),className:f("min-w-[14rem]",o)})}function In({name:e,label:t,className:r}){let{values:a,setValue:o}=j("FilterToggle"),s=a[e]===true,d=react.useMemo(()=>({name:e,clearedValue:false,isActive:i=>i===true,toChips:i=>i===true?[{id:e,key:e,label:t}]:[]}),[e,t]);return me(e,d),jsxRuntime.jsx(_e,{label:t,isSelected:s,onChange:i=>o(e,!!i),className:r})}var yt="__all__";function Pn({name:e,label:t,options:r,allLabel:a,className:o}){let{values:s,setValue:d,narrow:i}=j("FilterSelect"),u=typeof s[e]=="string"?s[e]:"",p=Et(r),m=react.useMemo(()=>({name:e,clearedValue:"",isActive:l=>typeof l=="string"&&l!=="",toChips:l=>typeof l=="string"&&l!==""?[{id:e,key:e,label:Nt(r,l),group:t}]:[]}),[e,t,p]);return me(e,m),i?jsxRuntime.jsxs(Ee,{label:t,value:u===""?yt:u,onChange:l=>{let n=Array.isArray(l)?l[0]:l;d(e,!n||n===yt?"":n);},className:o,children:[jsxRuntime.jsx(Ee.Item,{value:yt,children:a??"All"}),r.map(l=>jsxRuntime.jsx(Ee.Item,{value:l.value,children:l.label},l.value))]}):jsxRuntime.jsx(Ve,{label:t,isActive:u!=="",className:o,children:l=>jsxRuntime.jsxs(he,{"aria-label":t,value:u,onChange:n=>{d(e,n),l();},children:[jsxRuntime.jsx(le,{value:"",children:a??"All"}),r.map(n=>jsxRuntime.jsx(le,{value:n.value,children:n.label},n.value))]})})}function Fn({name:e,label:t,presets:r,className:a}){let{values:o,setValue:s,narrow:d}=j("FilterWithin"),i=r[0]?.value??"",u=typeof o[e]=="string"?o[e]:i,p=Et(r),m=react.useMemo(()=>({name:e,clearedValue:i,isActive:n=>typeof n=="string"&&n!==i,toChips:n=>typeof n=="string"&&n!==i?[{id:e,key:e,label:Nt(r,n),group:t}]:[]}),[e,t,i,p]);me(e,m);let l=n=>jsxRuntime.jsx(he,{label:d?t:void 0,"aria-label":d?void 0:t,value:u,onChange:c=>{s(e,c),n?.();},className:d?a:void 0,children:r.map(c=>jsxRuntime.jsx(le,{value:c.value,children:c.label},c.value))});return d?l():jsxRuntime.jsx(Ve,{label:t,isActive:u!==i,className:a,children:n=>l(n)})}function An({name:e,label:t,options:r,className:a}){let{values:o,setValue:s,labels:d,narrow:i}=j("FilterMulti"),u=Array.isArray(o[e])?o[e]:[],p=Et(r),m=react.useMemo(()=>({name:e,clearedValue:[],isActive:n=>Array.isArray(n)&&n.length>0,toChips:n=>Array.isArray(n)?n.map(c=>({id:`${e}:${c}`,key:e,optionValue:c,label:Nt(r,c),group:t})):[]}),[e,t,p]);me(e,m);let l=jsxRuntime.jsx(Ge,{label:i?t:void 0,"aria-label":i?void 0:t,value:u,onChange:n=>s(e,n),className:i?a:void 0,children:r.map(n=>jsxRuntime.jsx(Be,{value:n.value,children:n.label},n.value))});return i?l:jsxRuntime.jsxs(Ve,{label:t,badge:u.length||null,isActive:u.length>0,doneLabel:d.done,className:a,children:[l,u.length>0&&jsxRuntime.jsx("div",{className:"pt-1",children:jsxRuntime.jsx(_,{variant:"link",onPress:()=>s(e,[]),children:d.clear})})]})}function wn({name:e,label:t,options:r,onSearch:a,isLoading:o,placeholder:s,className:d}){let{values:i,setValue:u}=j("FilterCombobox"),p=typeof i[e]=="string"?i[e]:"",m=react.useRef(new Map);for(let n of r)m.current.set(n.value,n.label);let l=react.useMemo(()=>({name:e,clearedValue:"",isActive:n=>typeof n=="string"&&n!=="",toChips:n=>typeof n=="string"&&n!==""?[{id:e,key:e,label:m.current.get(n)??n,group:t}]:[]}),[e,t]);return me(e,l),jsxRuntime.jsx(Me,{"aria-label":t,placeholder:s,selectedKey:p||null,onSelectionChange:n=>u(e,n==null?"":String(n)),onInputChange:a,className:f("min-w-[14rem]",d),children:r.length===0&&o?jsxRuntime.jsx(ye,{id:"__loading",isDisabled:true,children:"Loading\u2026"}):r.map(n=>jsxRuntime.jsx(ye,{id:n.value,children:n.label},n.value))})}function ra({clearAllLabel:e,removeChipLabel:t,"aria-label":r,className:a,"data-testid":o}){let{values:s,setValue:d,replaceValues:i,registry:u,narrow:p}=j("FilterChips"),m=[];for(let[c,b]of u.current)m.push(...b.toChips(s[c]));return jsxRuntime.jsx($e,{chips:m,onRemove:c=>{if(c.optionValue!==void 0){let b=s[c.key],v=Array.isArray(b)?b:[];d(c.key,v.filter(C=>C!==c.optionValue));}else {let b=u.current.get(c.key);d(c.key,b?b.clearedValue:"");}},onClearAll:()=>{let c={...s};for(let[b,v]of u.current)c[b]=v.clearedValue;i(c);},clearAllLabel:e,removeChipLabel:t,scrollable:p,"aria-label":r,className:a,"data-testid":o})}var kn=zod.z.object({value:zod.z.string(),label:zod.z.string()});exports.AppliedFilters=$e;exports.FilterChips=ra;exports.FilterCombobox=wn;exports.FilterMulti=An;exports.FilterOptionSchema=kn;exports.FilterPopover=Ve;exports.FilterSearch=Tn;exports.FilterSelect=Pn;exports.FilterToggle=In;exports.FilterWithin=Fn;exports.Filters=ta;exports.appliedFiltersVariants=St;exports.filterChipVariants=dn;exports.filterPillVariants=Ne;exports.filterPopoverHeaderVariants=ht;exports.filterPopoverVariants=vt;exports.filtersBarVariants=gt;exports.useFiltersContext=j;//# sourceMappingURL=index.js.map
3
3
  //# sourceMappingURL=index.js.map