@roastcodes/ttdash 6.2.0 → 6.2.2

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 (70) hide show
  1. package/dist/assets/AnimatedBarFill-Da354-1y.js +1 -0
  2. package/dist/assets/AnomalyDetection-D06kgR_V.js +1 -0
  3. package/dist/assets/{AutoImportModal-C8gA0_mL.js → AutoImportModal-CuzbrUVc.js} +3 -3
  4. package/dist/assets/CacheROI-fJ1paHaT.js +1 -0
  5. package/dist/assets/ChartCard-CS4Kbe6r.js +2 -0
  6. package/dist/assets/ChartLegend-Vzg_GmF-.js +1 -0
  7. package/dist/assets/CorrelationAnalysis-DX-ZQKVJ.js +1 -0
  8. package/dist/assets/CostByModelOverTime-BRo1PCRo.js +1 -0
  9. package/dist/assets/CostByWeekday-BJwEWkmF.js +1 -0
  10. package/dist/assets/CostForecast-BxICbpzM.js +1 -0
  11. package/dist/assets/CumulativeCost-BdlOTRDX.js +1 -0
  12. package/dist/assets/CustomTooltip-CEd8U-a3.js +1 -0
  13. package/dist/assets/DistributionAnalysis-Cw8bRtt9.js +1 -0
  14. package/dist/assets/DrillDownModal-BT2rFk_U.js +1 -0
  15. package/dist/assets/HelpPanel-Ct4CbfBg.js +1 -0
  16. package/dist/assets/InfoButton-CyA48Vlx.js +1 -0
  17. package/dist/assets/InfoHeading-CFbl45C9.js +1 -0
  18. package/dist/assets/MetricCard-CLFpH1l1.js +1 -0
  19. package/dist/assets/ModelEfficiency-CO7sQQnT.js +1 -0
  20. package/dist/assets/ModelMix-C4P2SpQZ.js +1 -0
  21. package/dist/assets/PeriodComparison-BogfA2IN.js +1 -0
  22. package/dist/assets/ProviderEfficiency-CY4HJ7Fy.js +1 -0
  23. package/dist/assets/ProviderLimitsSection-BcCrH2XG.js +1 -0
  24. package/dist/assets/RecentDays-K0Uzk7UU.js +1 -0
  25. package/dist/assets/RequestCacheHitRateByModel-8ip50S7V.js +1 -0
  26. package/dist/assets/RequestQuality-ByYXyzn8.js +1 -0
  27. package/dist/assets/RequestsOverTime-B4yB-x_5.js +1 -0
  28. package/dist/assets/SettingsModal-Badl8kHp.js +1 -0
  29. package/dist/assets/TokenEfficiency-Bhdj4v75.js +1 -0
  30. package/dist/assets/TokenTypes-CaVA8FXP.js +1 -0
  31. package/dist/assets/TokensOverTime-BA7W_OfG.js +1 -0
  32. package/dist/assets/app-settings-EFIYxqQU.js +1 -0
  33. package/dist/assets/button-olcuyddH.js +1 -0
  34. package/dist/assets/calculations-BJw_4KdI.js +1 -0
  35. package/dist/assets/card-CskYMXga.js +1 -0
  36. package/dist/assets/chart-theme-BdE8bEiN.js +1 -0
  37. package/dist/assets/constants-DOCA3QtR.js +1 -0
  38. package/dist/assets/dialog-D4LfH66U.js +1 -0
  39. package/dist/assets/formatted-value-DuGw8WPX.js +1 -0
  40. package/dist/assets/formatters-BzLLk0br.js +1 -0
  41. package/dist/assets/help-content-Cuf5l3_6.js +1 -0
  42. package/dist/assets/i18n-D1WJ4-W9.js +1 -0
  43. package/dist/assets/index-8kk0H-lQ.css +2 -0
  44. package/dist/assets/index-D6_2fCBR.js +3 -0
  45. package/dist/assets/model-utils-BIvGAFGz.js +1 -0
  46. package/dist/assets/motion-vendor-BNFhNARW.js +9 -0
  47. package/dist/assets/provider-limits-BgKrr7k7.js +1 -0
  48. package/dist/assets/section-header-KpKzq-Qa.js +1 -0
  49. package/dist/assets/ui-vendor-DOI7LsxH.js +45 -0
  50. package/dist/assets/useTranslation-JH30oWEP.js +1 -0
  51. package/dist/index.html +27 -8
  52. package/package.json +15 -5
  53. package/server/report/index.js +13 -11
  54. package/server.js +281 -56
  55. package/shared/dashboard-domain.d.ts +12 -0
  56. package/shared/dashboard-domain.js +79 -0
  57. package/shared/dashboard-types.d.ts +4 -0
  58. package/shared/model-colors.d.ts +7 -0
  59. package/shared/model-colors.js +27 -0
  60. package/src/locales/de/common.json +51 -5
  61. package/src/locales/en/common.json +51 -4
  62. package/dist/assets/CustomTooltip-CdIOw3Ep.js +0 -1
  63. package/dist/assets/DrillDownModal-d6hcut-I.js +0 -1
  64. package/dist/assets/button-B26tLVFw.js +0 -1
  65. package/dist/assets/dialog-CA-ZSHjK.js +0 -1
  66. package/dist/assets/index-BkGSNAne.css +0 -2
  67. package/dist/assets/index-CMtAn7c8.js +0 -4
  68. package/dist/assets/motion-vendor-BXI2L__C.js +0 -1
  69. package/dist/assets/ui-vendor-BGjRFQGY.js +0 -45
  70. /package/dist/assets/{icons-vendor-z59La6A4.js → icons-vendor-CIvT_-Pb.js} +0 -0
@@ -0,0 +1,45 @@
1
+ import{a as e}from"./rolldown-runtime-COnpUsM8.js";import{C as t,w as n}from"./charts-vendor-CiBqdKXh.js";import{a as r,c as i,i as a,l as o,n as s,o as c,r as l,s as u,t as d}from"./react-vendor-0R1rd57Z.js";import{o as f}from"./motion-vendor-BNFhNARW.js";var p=e(n(),1);typeof window<`u`&&window.document&&window.document.createElement;function m(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),n===!1||!r.defaultPrevented)return t?.(r)}}function h(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}function g(...e){return t=>{let n=!1,r=e.map(e=>{let r=h(e,t);return!n&&typeof r==`function`&&(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];typeof n==`function`?n():h(e[t],null)}}}}function _(...e){return p.useCallback(g(...e),e)}var v=f();function y(e,t){let n=p.createContext(t),r=e=>{let{children:t,...r}=e,i=p.useMemo(()=>r,Object.values(r));return(0,v.jsx)(n.Provider,{value:i,children:t})};r.displayName=e+`Provider`;function i(r){let i=p.useContext(n);if(i)return i;if(t!==void 0)return t;throw Error(`\`${r}\` must be used within \`${e}\``)}return[r,i]}function b(e,t=[]){let n=[];function r(t,r){let i=p.createContext(r),a=n.length;n=[...n,r];let o=t=>{let{scope:n,children:r,...o}=t,s=n?.[e]?.[a]||i,c=p.useMemo(()=>o,Object.values(o));return(0,v.jsx)(s.Provider,{value:c,children:r})};o.displayName=t+`Provider`;function s(n,o){let s=o?.[e]?.[a]||i,c=p.useContext(s);if(c)return c;if(r!==void 0)return r;throw Error(`\`${n}\` must be used within \`${t}\``)}return[o,s]}let i=()=>{let t=n.map(e=>p.createContext(e));return function(n){let r=n?.[e]||t;return p.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])}};return i.scopeName=e,[r,x(i,...t)]}function x(...e){let t=e[0];if(e.length===1)return t;let n=()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let i=n(e)[`__scope${r}`];return{...t,...i}},{});return p.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])}};return n.scopeName=t.scopeName,n}var S=e(t(),1);function C(e){let t=w(e),n=p.forwardRef((e,n)=>{let{children:r,...i}=e,a=p.Children.toArray(r),o=a.find(E);if(o){let e=o.props.children,r=a.map(t=>t===o?p.Children.count(e)>1?p.Children.only(null):p.isValidElement(e)?e.props.children:null:t);return(0,v.jsx)(t,{...i,ref:n,children:p.isValidElement(e)?p.cloneElement(e,void 0,r):null})}return(0,v.jsx)(t,{...i,ref:n,children:r})});return n.displayName=`${e}.Slot`,n}function w(e){let t=p.forwardRef((e,t)=>{let{children:n,...r}=e;if(p.isValidElement(n)){let e=O(n),i=D(r,n.props);return n.type!==p.Fragment&&(i.ref=t?g(t,e):e),p.cloneElement(n,i)}return p.Children.count(n)>1?p.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var T=Symbol(`radix.slottable`);function E(e){return p.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===T}function D(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function O(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var k=[`a`,`button`,`div`,`form`,`h2`,`h3`,`img`,`input`,`label`,`li`,`nav`,`ol`,`p`,`select`,`span`,`svg`,`ul`].reduce((e,t)=>{let n=C(`Primitive.${t}`),r=p.forwardRef((e,r)=>{let{asChild:i,...a}=e,o=i?n:t;return typeof window<`u`&&(window[Symbol.for(`radix-ui`)]=!0),(0,v.jsx)(o,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function A(e,t){e&&S.flushSync(()=>e.dispatchEvent(t))}function j(e){let t=p.useRef(e);return p.useEffect(()=>{t.current=e}),p.useMemo(()=>(...e)=>t.current?.(...e),[])}function M(e,t=globalThis?.document){let n=j(e);p.useEffect(()=>{let e=e=>{e.key===`Escape`&&n(e)};return t.addEventListener(`keydown`,e,{capture:!0}),()=>t.removeEventListener(`keydown`,e,{capture:!0})},[n,t])}var N=`DismissableLayer`,P=`dismissableLayer.update`,F=`dismissableLayer.pointerDownOutside`,I=`dismissableLayer.focusOutside`,L,R=p.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),z=p.forwardRef((e,t)=>{let{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:i,onFocusOutside:a,onInteractOutside:o,onDismiss:s,...c}=e,l=p.useContext(R),[u,d]=p.useState(null),f=u?.ownerDocument??globalThis?.document,[,h]=p.useState({}),g=_(t,e=>d(e)),y=Array.from(l.layers),[b]=[...l.layersWithOutsidePointerEventsDisabled].slice(-1),x=y.indexOf(b),S=u?y.indexOf(u):-1,C=l.layersWithOutsidePointerEventsDisabled.size>0,w=S>=x,T=te(e=>{let t=e.target,n=[...l.branches].some(e=>e.contains(t));!w||n||(i?.(e),o?.(e),e.defaultPrevented||s?.())},f),E=ne(e=>{let t=e.target;[...l.branches].some(e=>e.contains(t))||(a?.(e),o?.(e),e.defaultPrevented||s?.())},f);return M(e=>{S===l.layers.size-1&&(r?.(e),!e.defaultPrevented&&s&&(e.preventDefault(),s()))},f),p.useEffect(()=>{if(u)return n&&(l.layersWithOutsidePointerEventsDisabled.size===0&&(L=f.body.style.pointerEvents,f.body.style.pointerEvents=`none`),l.layersWithOutsidePointerEventsDisabled.add(u)),l.layers.add(u),re(),()=>{n&&l.layersWithOutsidePointerEventsDisabled.size===1&&(f.body.style.pointerEvents=L)}},[u,f,n,l]),p.useEffect(()=>()=>{u&&(l.layers.delete(u),l.layersWithOutsidePointerEventsDisabled.delete(u),re())},[u,l]),p.useEffect(()=>{let e=()=>h({});return document.addEventListener(P,e),()=>document.removeEventListener(P,e)},[]),(0,v.jsx)(k.div,{...c,ref:g,style:{pointerEvents:C?w?`auto`:`none`:void 0,...e.style},onFocusCapture:m(e.onFocusCapture,E.onFocusCapture),onBlurCapture:m(e.onBlurCapture,E.onBlurCapture),onPointerDownCapture:m(e.onPointerDownCapture,T.onPointerDownCapture)})});z.displayName=N;var B=`DismissableLayerBranch`,ee=p.forwardRef((e,t)=>{let n=p.useContext(R),r=p.useRef(null),i=_(t,r);return p.useEffect(()=>{let e=r.current;if(e)return n.branches.add(e),()=>{n.branches.delete(e)}},[n.branches]),(0,v.jsx)(k.div,{...e,ref:i})});ee.displayName=B;function te(e,t=globalThis?.document){let n=j(e),r=p.useRef(!1),i=p.useRef(()=>{});return p.useEffect(()=>{let e=e=>{if(e.target&&!r.current){let r=function(){ie(F,n,a,{discrete:!0})},a={originalEvent:e};e.pointerType===`touch`?(t.removeEventListener(`click`,i.current),i.current=r,t.addEventListener(`click`,i.current,{once:!0})):r()}else t.removeEventListener(`click`,i.current);r.current=!1},a=window.setTimeout(()=>{t.addEventListener(`pointerdown`,e)},0);return()=>{window.clearTimeout(a),t.removeEventListener(`pointerdown`,e),t.removeEventListener(`click`,i.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function ne(e,t=globalThis?.document){let n=j(e),r=p.useRef(!1);return p.useEffect(()=>{let e=e=>{e.target&&!r.current&&ie(I,n,{originalEvent:e},{discrete:!1})};return t.addEventListener(`focusin`,e),()=>t.removeEventListener(`focusin`,e)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function re(){let e=new CustomEvent(P);document.dispatchEvent(e)}function ie(e,t,n,{discrete:r}){let i=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?A(i,a):i.dispatchEvent(a)}var V=globalThis?.document?p.useLayoutEffect:()=>{},ae=p.useId||(()=>void 0),oe=0;function H(e){let[t,n]=p.useState(ae());return V(()=>{e||n(e=>e??String(oe++))},[e]),e||(t?`radix-${t}`:``)}var se=`Arrow`,ce=p.forwardRef((e,t)=>{let{children:n,width:r=10,height:i=5,...a}=e;return(0,v.jsx)(k.svg,{...a,ref:t,width:r,height:i,viewBox:`0 0 30 10`,preserveAspectRatio:`none`,children:e.asChild?n:(0,v.jsx)(`polygon`,{points:`0,0 30,0 15,10`})})});ce.displayName=se;var le=ce;function ue(e){let[t,n]=p.useState(void 0);return V(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{if(!Array.isArray(t)||!t.length)return;let r=t[0],i,a;if(`borderBoxSize`in r){let e=r.borderBoxSize,t=Array.isArray(e)?e[0]:e;i=t.inlineSize,a=t.blockSize}else i=e.offsetWidth,a=e.offsetHeight;n({width:i,height:a})});return t.observe(e,{box:`border-box`}),()=>t.unobserve(e)}else n(void 0)},[e]),t}var de=`Popper`,[fe,pe]=b(de),[me,he]=fe(de),ge=e=>{let{__scopePopper:t,children:n}=e,[r,i]=p.useState(null);return(0,v.jsx)(me,{scope:t,anchor:r,onAnchorChange:i,children:n})};ge.displayName=de;var _e=`PopperAnchor`,ve=p.forwardRef((e,t)=>{let{__scopePopper:n,virtualRef:r,...i}=e,a=he(_e,n),o=p.useRef(null),s=_(t,o),c=p.useRef(null);return p.useEffect(()=>{let e=c.current;c.current=r?.current||o.current,e!==c.current&&a.onAnchorChange(c.current)}),r?null:(0,v.jsx)(k.div,{...i,ref:s})});ve.displayName=_e;var ye=`PopperContent`,[be,xe]=fe(ye),Se=p.forwardRef((e,t)=>{let{__scopePopper:n,side:f=`bottom`,sideOffset:m=0,align:h=`center`,alignOffset:g=0,arrowPadding:y=0,avoidCollisions:b=!0,collisionBoundary:x=[],collisionPadding:S=0,sticky:C=`partial`,hideWhenDetached:w=!1,updatePositionStrategy:T=`optimized`,onPlaced:E,...D}=e,O=he(ye,n),[A,M]=p.useState(null),N=_(t,e=>M(e)),[P,F]=p.useState(null),I=ue(P),L=I?.width??0,R=I?.height??0,z=f+(h===`center`?``:`-`+h),B=typeof S==`number`?S:{top:0,right:0,bottom:0,left:0,...S},ee=Array.isArray(x)?x:[x],te=ee.length>0,ne={padding:B,boundary:ee.filter(Ee),altBoundary:te},{refs:re,floatingStyles:ie,placement:ae,isPositioned:oe,middlewareData:H}=i({strategy:`fixed`,placement:z,whileElementsMounted:(...e)=>o(...e,{animationFrame:T===`always`}),elements:{reference:O.anchor},middleware:[r({mainAxis:m+R,alignmentAxis:g}),b&&c({mainAxis:!0,crossAxis:!1,limiter:C===`partial`?a():void 0,...ne}),b&&s({...ne}),u({...ne,apply:({elements:e,rects:t,availableWidth:n,availableHeight:r})=>{let{width:i,height:a}=t.reference,o=e.floating.style;o.setProperty(`--radix-popper-available-width`,`${n}px`),o.setProperty(`--radix-popper-available-height`,`${r}px`),o.setProperty(`--radix-popper-anchor-width`,`${i}px`),o.setProperty(`--radix-popper-anchor-height`,`${a}px`)}}),P&&d({element:P,padding:y}),De({arrowWidth:L,arrowHeight:R}),w&&l({strategy:`referenceHidden`,...ne})]}),[se,ce]=Oe(ae),le=j(E);V(()=>{oe&&le?.()},[oe,le]);let de=H.arrow?.x,fe=H.arrow?.y,pe=H.arrow?.centerOffset!==0,[me,ge]=p.useState();return V(()=>{A&&ge(window.getComputedStyle(A).zIndex)},[A]),(0,v.jsx)(`div`,{ref:re.setFloating,"data-radix-popper-content-wrapper":``,style:{...ie,transform:oe?ie.transform:`translate(0, -200%)`,minWidth:`max-content`,zIndex:me,"--radix-popper-transform-origin":[H.transformOrigin?.x,H.transformOrigin?.y].join(` `),...H.hide?.referenceHidden&&{visibility:`hidden`,pointerEvents:`none`}},dir:e.dir,children:(0,v.jsx)(be,{scope:n,placedSide:se,onArrowChange:F,arrowX:de,arrowY:fe,shouldHideArrow:pe,children:(0,v.jsx)(k.div,{"data-side":se,"data-align":ce,...D,ref:N,style:{...D.style,animation:oe?void 0:`none`}})})})});Se.displayName=ye;var Ce=`PopperArrow`,we={top:`bottom`,right:`left`,bottom:`top`,left:`right`},Te=p.forwardRef(function(e,t){let{__scopePopper:n,...r}=e,i=xe(Ce,n),a=we[i.placedSide];return(0,v.jsx)(`span`,{ref:i.onArrowChange,style:{position:`absolute`,left:i.arrowX,top:i.arrowY,[a]:0,transformOrigin:{top:``,right:`0 0`,bottom:`center 0`,left:`100% 0`}[i.placedSide],transform:{top:`translateY(100%)`,right:`translateY(50%) rotate(90deg) translateX(-50%)`,bottom:`rotate(180deg)`,left:`translateY(50%) rotate(-90deg) translateX(50%)`}[i.placedSide],visibility:i.shouldHideArrow?`hidden`:void 0},children:(0,v.jsx)(le,{...r,ref:t,style:{...r.style,display:`block`}})})});Te.displayName=Ce;function Ee(e){return e!==null}var De=e=>({name:`transformOrigin`,options:e,fn(t){let{placement:n,rects:r,middlewareData:i}=t,a=i.arrow?.centerOffset!==0,o=a?0:e.arrowWidth,s=a?0:e.arrowHeight,[c,l]=Oe(n),u={start:`0%`,center:`50%`,end:`100%`}[l],d=(i.arrow?.x??0)+o/2,f=(i.arrow?.y??0)+s/2,p=``,m=``;return c===`bottom`?(p=a?u:`${d}px`,m=`${-s}px`):c===`top`?(p=a?u:`${d}px`,m=`${r.floating.height+s}px`):c===`right`?(p=`${-s}px`,m=a?u:`${f}px`):c===`left`&&(p=`${r.floating.width+s}px`,m=a?u:`${f}px`),{data:{x:p,y:m}}}});function Oe(e){let[t,n=`center`]=e.split(`-`);return[t,n]}var ke=ge,Ae=ve,je=Se,Me=Te,Ne=`Portal`,Pe=p.forwardRef((e,t)=>{let{container:n,...r}=e,[i,a]=p.useState(!1);V(()=>a(!0),[]);let o=n||i&&globalThis?.document?.body;return o?S.createPortal((0,v.jsx)(k.div,{...r,ref:t}),o):null});Pe.displayName=Ne;function Fe(e,t){return p.useReducer((e,n)=>t[e][n]??e,e)}var Ie=e=>{let{present:t,children:n}=e,r=Le(t),i=typeof n==`function`?n({present:r.isPresent}):p.Children.only(n),a=_(r.ref,ze(i));return typeof n==`function`||r.isPresent?p.cloneElement(i,{ref:a}):null};Ie.displayName=`Presence`;function Le(e){let[t,n]=p.useState(),r=p.useRef(null),i=p.useRef(e),a=p.useRef(`none`),[o,s]=Fe(e?`mounted`:`unmounted`,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}});return p.useEffect(()=>{let e=Re(r.current);a.current=o===`mounted`?e:`none`},[o]),V(()=>{let t=r.current,n=i.current;if(n!==e){let r=a.current,o=Re(t);e?s(`MOUNT`):o===`none`||t?.display===`none`?s(`UNMOUNT`):s(n&&r!==o?`ANIMATION_OUT`:`UNMOUNT`),i.current=e}},[e,s]),V(()=>{if(t){let e,n=t.ownerDocument.defaultView??window,o=a=>{let o=Re(r.current).includes(CSS.escape(a.animationName));if(a.target===t&&o&&(s(`ANIMATION_END`),!i.current)){let r=t.style.animationFillMode;t.style.animationFillMode=`forwards`,e=n.setTimeout(()=>{t.style.animationFillMode===`forwards`&&(t.style.animationFillMode=r)})}},c=e=>{e.target===t&&(a.current=Re(r.current))};return t.addEventListener(`animationstart`,c),t.addEventListener(`animationcancel`,o),t.addEventListener(`animationend`,o),()=>{n.clearTimeout(e),t.removeEventListener(`animationstart`,c),t.removeEventListener(`animationcancel`,o),t.removeEventListener(`animationend`,o)}}else s(`ANIMATION_END`)},[t,s]),{isPresent:[`mounted`,`unmountSuspended`].includes(o),ref:p.useCallback(e=>{r.current=e?getComputedStyle(e):null,n(e)},[])}}function Re(e){return e?.animationName||`none`}function ze(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Be=Symbol(`radix.slottable`);function Ve(e){let t=({children:e})=>(0,v.jsx)(v.Fragment,{children:e});return t.displayName=`${e}.Slottable`,t.__radixId=Be,t}var He=p.useInsertionEffect||V;function Ue({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){let[i,a,o]=We({defaultProp:t,onChange:n}),s=e!==void 0,c=s?e:i;{let t=p.useRef(e!==void 0);p.useEffect(()=>{let e=t.current;e!==s&&console.warn(`${r} is changing from ${e?`controlled`:`uncontrolled`} to ${s?`controlled`:`uncontrolled`}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),t.current=s},[s,r])}return[c,p.useCallback(t=>{if(s){let n=Ge(t)?t(e):t;n!==e&&o.current?.(n)}else a(t)},[s,e,a,o])]}function We({defaultProp:e,onChange:t}){let[n,r]=p.useState(e),i=p.useRef(n),a=p.useRef(t);return He(()=>{a.current=t},[t]),p.useEffect(()=>{i.current!==n&&(a.current?.(n),i.current=n)},[n,i]),[n,r,a]}function Ge(e){return typeof e==`function`}var Ke=Object.freeze({position:`absolute`,border:0,width:1,height:1,padding:0,margin:-1,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,wordWrap:`normal`}),qe=`VisuallyHidden`,Je=p.forwardRef((e,t)=>(0,v.jsx)(k.span,{...e,ref:t,style:{...Ke,...e.style}}));Je.displayName=qe;var Ye=Je,[Xe,Ze]=b(`Tooltip`,[pe]),Qe=pe(),$e=`TooltipProvider`,et=700,tt=`tooltip.open`,[nt,rt]=Xe($e),it=e=>{let{__scopeTooltip:t,delayDuration:n=et,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:a}=e,o=p.useRef(!0),s=p.useRef(!1),c=p.useRef(0);return p.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,v.jsx)(nt,{scope:t,isOpenDelayedRef:o,delayDuration:n,onOpen:p.useCallback(()=>{window.clearTimeout(c.current),o.current=!1},[]),onClose:p.useCallback(()=>{window.clearTimeout(c.current),c.current=window.setTimeout(()=>o.current=!0,r)},[r]),isPointerInTransitRef:s,onPointerInTransitChange:p.useCallback(e=>{s.current=e},[]),disableHoverableContent:i,children:a})};it.displayName=$e;var at=`Tooltip`,[ot,st]=Xe(at),ct=e=>{let{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:a,disableHoverableContent:o,delayDuration:s}=e,c=rt(at,e.__scopeTooltip),l=Qe(t),[u,d]=p.useState(null),f=H(),m=p.useRef(0),h=o??c.disableHoverableContent,g=s??c.delayDuration,_=p.useRef(!1),[y,b]=Ue({prop:r,defaultProp:i??!1,onChange:e=>{e?(c.onOpen(),document.dispatchEvent(new CustomEvent(tt))):c.onClose(),a?.(e)},caller:at}),x=p.useMemo(()=>y?_.current?`delayed-open`:`instant-open`:`closed`,[y]),S=p.useCallback(()=>{window.clearTimeout(m.current),m.current=0,_.current=!1,b(!0)},[b]),C=p.useCallback(()=>{window.clearTimeout(m.current),m.current=0,b(!1)},[b]),w=p.useCallback(()=>{window.clearTimeout(m.current),m.current=window.setTimeout(()=>{_.current=!0,b(!0),m.current=0},g)},[g,b]);return p.useEffect(()=>()=>{m.current&&=(window.clearTimeout(m.current),0)},[]),(0,v.jsx)(ke,{...l,children:(0,v.jsx)(ot,{scope:t,contentId:f,open:y,stateAttribute:x,trigger:u,onTriggerChange:d,onTriggerEnter:p.useCallback(()=>{c.isOpenDelayedRef.current?w():S()},[c.isOpenDelayedRef,w,S]),onTriggerLeave:p.useCallback(()=>{h?C():(window.clearTimeout(m.current),m.current=0)},[C,h]),onOpen:S,onClose:C,disableHoverableContent:h,children:n})})};ct.displayName=at;var lt=`TooltipTrigger`,ut=p.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,i=st(lt,n),a=rt(lt,n),o=Qe(n),s=_(t,p.useRef(null),i.onTriggerChange),c=p.useRef(!1),l=p.useRef(!1),u=p.useCallback(()=>c.current=!1,[]);return p.useEffect(()=>()=>document.removeEventListener(`pointerup`,u),[u]),(0,v.jsx)(Ae,{asChild:!0,...o,children:(0,v.jsx)(k.button,{"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute,...r,ref:s,onPointerMove:m(e.onPointerMove,e=>{e.pointerType!==`touch`&&!l.current&&!a.isPointerInTransitRef.current&&(i.onTriggerEnter(),l.current=!0)}),onPointerLeave:m(e.onPointerLeave,()=>{i.onTriggerLeave(),l.current=!1}),onPointerDown:m(e.onPointerDown,()=>{i.open&&i.onClose(),c.current=!0,document.addEventListener(`pointerup`,u,{once:!0})}),onFocus:m(e.onFocus,()=>{c.current||i.onOpen()}),onBlur:m(e.onBlur,i.onClose),onClick:m(e.onClick,i.onClose)})})});ut.displayName=lt;var dt=`TooltipPortal`,[ft,pt]=Xe(dt,{forceMount:void 0}),mt=e=>{let{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,a=st(dt,t);return(0,v.jsx)(ft,{scope:t,forceMount:n,children:(0,v.jsx)(Ie,{present:n||a.open,children:(0,v.jsx)(Pe,{asChild:!0,container:i,children:r})})})};mt.displayName=dt;var ht=`TooltipContent`,gt=p.forwardRef((e,t)=>{let n=pt(ht,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i=`top`,...a}=e,o=st(ht,e.__scopeTooltip);return(0,v.jsx)(Ie,{present:r||o.open,children:o.disableHoverableContent?(0,v.jsx)(xt,{side:i,...a,ref:t}):(0,v.jsx)(_t,{side:i,...a,ref:t})})}),_t=p.forwardRef((e,t)=>{let n=st(ht,e.__scopeTooltip),r=rt(ht,e.__scopeTooltip),i=p.useRef(null),a=_(t,i),[o,s]=p.useState(null),{trigger:c,onClose:l}=n,u=i.current,{onPointerInTransitChange:d}=r,f=p.useCallback(()=>{s(null),d(!1)},[d]),m=p.useCallback((e,t)=>{let n=e.currentTarget,r={x:e.clientX,y:e.clientY},i=Tt(r,wt(r,n.getBoundingClientRect())),a=Et(t.getBoundingClientRect());s(Ot([...i,...a])),d(!0)},[d]);return p.useEffect(()=>()=>f(),[f]),p.useEffect(()=>{if(c&&u){let e=e=>m(e,u),t=e=>m(e,c);return c.addEventListener(`pointerleave`,e),u.addEventListener(`pointerleave`,t),()=>{c.removeEventListener(`pointerleave`,e),u.removeEventListener(`pointerleave`,t)}}},[c,u,m,f]),p.useEffect(()=>{if(o){let e=e=>{let t=e.target,n={x:e.clientX,y:e.clientY},r=c?.contains(t)||u?.contains(t),i=!Dt(n,o);r?f():i&&(f(),l())};return document.addEventListener(`pointermove`,e),()=>document.removeEventListener(`pointermove`,e)}},[c,u,o,l,f]),(0,v.jsx)(xt,{...e,ref:a})}),[vt,yt]=Xe(at,{isInside:!1}),bt=Ve(`TooltipContent`),xt=p.forwardRef((e,t)=>{let{__scopeTooltip:n,children:r,"aria-label":i,onEscapeKeyDown:a,onPointerDownOutside:o,...s}=e,c=st(ht,n),l=Qe(n),{onClose:u}=c;return p.useEffect(()=>(document.addEventListener(tt,u),()=>document.removeEventListener(tt,u)),[u]),p.useEffect(()=>{if(c.trigger){let e=e=>{e.target?.contains(c.trigger)&&u()};return window.addEventListener(`scroll`,e,{capture:!0}),()=>window.removeEventListener(`scroll`,e,{capture:!0})}},[c.trigger,u]),(0,v.jsx)(z,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:u,children:(0,v.jsxs)(je,{"data-state":c.stateAttribute,...l,...s,ref:t,style:{...s.style,"--radix-tooltip-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-tooltip-content-available-width":`var(--radix-popper-available-width)`,"--radix-tooltip-content-available-height":`var(--radix-popper-available-height)`,"--radix-tooltip-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-tooltip-trigger-height":`var(--radix-popper-anchor-height)`},children:[(0,v.jsx)(bt,{children:r}),(0,v.jsx)(vt,{scope:n,isInside:!0,children:(0,v.jsx)(Ye,{id:c.contentId,role:`tooltip`,children:i||r})})]})})});gt.displayName=ht;var St=`TooltipArrow`,Ct=p.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,i=Qe(n);return yt(St,n).isInside?null:(0,v.jsx)(Me,{...i,...r,ref:t})});Ct.displayName=St;function wt(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}function Tt(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function Et(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function Dt(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}function Ot(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),kt(t)}function kt(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t[t.length-1],n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n[n.length-1],t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var At=it,jt=ct,Mt=ut,Nt=gt,Pt=Symbol.for(`react.lazy`),Ft=p.use;function It(e){return typeof e==`object`&&!!e&&`then`in e}function Lt(e){return typeof e==`object`&&!!e&&`$$typeof`in e&&e.$$typeof===Pt&&`_payload`in e&&It(e._payload)}function Rt(e){let t=Bt(e),n=p.forwardRef((e,n)=>{let{children:r,...i}=e;Lt(r)&&typeof Ft==`function`&&(r=Ft(r._payload));let a=p.Children.toArray(r),o=a.find(Ht);if(o){let e=o.props.children,r=a.map(t=>t===o?p.Children.count(e)>1?p.Children.only(null):p.isValidElement(e)?e.props.children:null:t);return(0,v.jsx)(t,{...i,ref:n,children:p.isValidElement(e)?p.cloneElement(e,void 0,r):null})}return(0,v.jsx)(t,{...i,ref:n,children:r})});return n.displayName=`${e}.Slot`,n}var zt=Rt(`Slot`);function Bt(e){let t=p.forwardRef((e,t)=>{let{children:n,...r}=e;if(Lt(n)&&typeof Ft==`function`&&(n=Ft(n._payload)),p.isValidElement(n)){let e=Wt(n),i=Ut(r,n.props);return n.type!==p.Fragment&&(i.ref=t?g(t,e):e),p.cloneElement(n,i)}return p.Children.count(n)>1?p.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Vt=Symbol(`radix.slottable`);function Ht(e){return p.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===Vt}function Ut(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function Wt(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function Gt(e,[t,n]){return Math.min(n,Math.max(t,e))}function Kt(e){let t=qt(e),n=p.forwardRef((e,n)=>{let{children:r,...i}=e,a=p.Children.toArray(r),o=a.find(Yt);if(o){let e=o.props.children,r=a.map(t=>t===o?p.Children.count(e)>1?p.Children.only(null):p.isValidElement(e)?e.props.children:null:t);return(0,v.jsx)(t,{...i,ref:n,children:p.isValidElement(e)?p.cloneElement(e,void 0,r):null})}return(0,v.jsx)(t,{...i,ref:n,children:r})});return n.displayName=`${e}.Slot`,n}function qt(e){let t=p.forwardRef((e,t)=>{let{children:n,...r}=e;if(p.isValidElement(n)){let e=Zt(n),i=Xt(r,n.props);return n.type!==p.Fragment&&(i.ref=t?g(t,e):e),p.cloneElement(n,i)}return p.Children.count(n)>1?p.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Jt=Symbol(`radix.slottable`);function Yt(e){return p.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===Jt}function Xt(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function Zt(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function Qt(e){let t=e+`CollectionProvider`,[n,r]=b(t),[i,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),o=e=>{let{scope:t,children:n}=e,r=p.useRef(null),a=p.useRef(new Map).current;return(0,v.jsx)(i,{scope:t,itemMap:a,collectionRef:r,children:n})};o.displayName=t;let s=e+`CollectionSlot`,c=Kt(s),l=p.forwardRef((e,t)=>{let{scope:n,children:r}=e;return(0,v.jsx)(c,{ref:_(t,a(s,n).collectionRef),children:r})});l.displayName=s;let u=e+`CollectionItemSlot`,d=`data-radix-collection-item`,f=Kt(u),m=p.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,o=p.useRef(null),s=_(t,o),c=a(u,n);return p.useEffect(()=>(c.itemMap.set(o,{ref:o,...i}),()=>void c.itemMap.delete(o))),(0,v.jsx)(f,{[d]:``,ref:s,children:r})});m.displayName=u;function h(t){let n=a(e+`CollectionConsumer`,t);return p.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${d}]`));return Array.from(n.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[n.collectionRef,n.itemMap])}return[{Provider:o,Slot:l,ItemSlot:m},h,r]}var $t=p.createContext(void 0);function en(e){let t=p.useContext($t);return e||t||`ltr`}var tn=0;function nn(){p.useEffect(()=>{let e=document.querySelectorAll(`[data-radix-focus-guard]`);return document.body.insertAdjacentElement(`afterbegin`,e[0]??rn()),document.body.insertAdjacentElement(`beforeend`,e[1]??rn()),tn++,()=>{tn===1&&document.querySelectorAll(`[data-radix-focus-guard]`).forEach(e=>e.remove()),tn--}},[])}function rn(){let e=document.createElement(`span`);return e.setAttribute(`data-radix-focus-guard`,``),e.tabIndex=0,e.style.outline=`none`,e.style.opacity=`0`,e.style.position=`fixed`,e.style.pointerEvents=`none`,e}var an=`focusScope.autoFocusOnMount`,on=`focusScope.autoFocusOnUnmount`,sn={bubbles:!1,cancelable:!0},cn=`FocusScope`,ln=p.forwardRef((e,t)=>{let{loop:n=!1,trapped:r=!1,onMountAutoFocus:i,onUnmountAutoFocus:a,...o}=e,[s,c]=p.useState(null),l=j(i),u=j(a),d=p.useRef(null),f=_(t,e=>c(e)),m=p.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;p.useEffect(()=>{if(r){let e=function(e){if(m.paused||!s)return;let t=e.target;s.contains(t)?d.current=t:U(d.current,{select:!0})},t=function(e){if(m.paused||!s)return;let t=e.relatedTarget;t!==null&&(s.contains(t)||U(d.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&U(s)};document.addEventListener(`focusin`,e),document.addEventListener(`focusout`,t);let r=new MutationObserver(n);return s&&r.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener(`focusin`,e),document.removeEventListener(`focusout`,t),r.disconnect()}}},[r,s,m.paused]),p.useEffect(()=>{if(s){gn.add(m);let e=document.activeElement;if(!s.contains(e)){let t=new CustomEvent(an,sn);s.addEventListener(an,l),s.dispatchEvent(t),t.defaultPrevented||(un(yn(fn(s)),{select:!0}),document.activeElement===e&&U(s))}return()=>{s.removeEventListener(an,l),setTimeout(()=>{let t=new CustomEvent(on,sn);s.addEventListener(on,u),s.dispatchEvent(t),t.defaultPrevented||U(e??document.body,{select:!0}),s.removeEventListener(on,u),gn.remove(m)},0)}}},[s,l,u,m]);let h=p.useCallback(e=>{if(!n&&!r||m.paused)return;let t=e.key===`Tab`&&!e.altKey&&!e.ctrlKey&&!e.metaKey,i=document.activeElement;if(t&&i){let t=e.currentTarget,[r,a]=dn(t);r&&a?!e.shiftKey&&i===a?(e.preventDefault(),n&&U(r,{select:!0})):e.shiftKey&&i===r&&(e.preventDefault(),n&&U(a,{select:!0})):i===t&&e.preventDefault()}},[n,r,m.paused]);return(0,v.jsx)(k.div,{tabIndex:-1,...o,ref:f,onKeyDown:h})});ln.displayName=cn;function un(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(U(r,{select:t}),document.activeElement!==n)return}function dn(e){let t=fn(e);return[pn(t,e),pn(t.reverse(),e)]}function fn(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function pn(e,t){for(let n of e)if(!mn(n,{upTo:t}))return n}function mn(e,{upTo:t}){if(getComputedStyle(e).visibility===`hidden`)return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display===`none`)return!0;e=e.parentElement}return!1}function hn(e){return e instanceof HTMLInputElement&&`select`in e}function U(e,{select:t=!1}={}){if(e&&e.focus){let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&hn(e)&&t&&e.select()}}var gn=_n();function _n(){let e=[];return{add(t){let n=e[0];t!==n&&n?.pause(),e=vn(e,t),e.unshift(t)},remove(t){e=vn(e,t),e[0]?.resume()}}}function vn(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function yn(e){return e.filter(e=>e.tagName!==`A`)}function bn(e){let t=xn(e),n=p.forwardRef((e,n)=>{let{children:r,...i}=e,a=p.Children.toArray(r),o=a.find(Cn);if(o){let e=o.props.children,r=a.map(t=>t===o?p.Children.count(e)>1?p.Children.only(null):p.isValidElement(e)?e.props.children:null:t);return(0,v.jsx)(t,{...i,ref:n,children:p.isValidElement(e)?p.cloneElement(e,void 0,r):null})}return(0,v.jsx)(t,{...i,ref:n,children:r})});return n.displayName=`${e}.Slot`,n}function xn(e){let t=p.forwardRef((e,t)=>{let{children:n,...r}=e;if(p.isValidElement(n)){let e=Tn(n),i=wn(r,n.props);return n.type!==p.Fragment&&(i.ref=t?g(t,e):e),p.cloneElement(n,i)}return p.Children.count(n)>1?p.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Sn=Symbol(`radix.slottable`);function Cn(e){return p.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===Sn}function wn(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function Tn(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function En(e){let t=p.useRef({value:e,previous:e});return p.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}var Dn=function(e){return typeof document>`u`?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},On=new WeakMap,kn=new WeakMap,An={},jn=0,Mn=function(e){return e&&(e.host||Mn(e.parentNode))},Nn=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=Mn(t);return n&&e.contains(n)?n:(console.error(`aria-hidden`,t,`in not contained inside`,e,`. Doing nothing`),null)}).filter(function(e){return!!e})},Pn=function(e,t,n,r){var i=Nn(t,Array.isArray(e)?e:[e]);An[n]||(An[n]=new WeakMap);var a=An[n],o=[],s=new Set,c=new Set(i),l=function(e){!e||s.has(e)||(s.add(e),l(e.parentNode))};i.forEach(l);var u=function(e){!e||c.has(e)||Array.prototype.forEach.call(e.children,function(e){if(s.has(e))u(e);else try{var t=e.getAttribute(r),i=t!==null&&t!==`false`,c=(On.get(e)||0)+1,l=(a.get(e)||0)+1;On.set(e,c),a.set(e,l),o.push(e),c===1&&i&&kn.set(e,!0),l===1&&e.setAttribute(n,`true`),i||e.setAttribute(r,`true`)}catch(t){console.error(`aria-hidden: cannot operate on `,e,t)}})};return u(t),s.clear(),jn++,function(){o.forEach(function(e){var t=On.get(e)-1,i=a.get(e)-1;On.set(e,t),a.set(e,i),t||(kn.has(e)||e.removeAttribute(r),kn.delete(e)),i||e.removeAttribute(n)}),jn--,jn||(On=new WeakMap,On=new WeakMap,kn=new WeakMap,An={})}},Fn=function(e,t,n){n===void 0&&(n=`data-aria-hidden`);var r=Array.from(Array.isArray(e)?e:[e]),i=t||Dn(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll(`[aria-live], script`))),Pn(r,i,n,`aria-hidden`)):function(){return null}},W=function(){return W=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},W.apply(this,arguments)};function In(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n}function Ln(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||=Array.prototype.slice.call(t,0,r),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))}var Rn=`right-scroll-bar-position`,zn=`width-before-scroll-bar`,Bn=`with-scroll-bars-hidden`,Vn=`--removed-body-scroll-bar-size`;function Hn(e,t){return typeof e==`function`?e(t):e&&(e.current=t),e}function Un(e,t){var n=(0,p.useState)(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(e){var t=n.value;t!==e&&(n.value=e,n.callback(e,t))}}}})[0];return n.callback=t,n.facade}var Wn=typeof window<`u`?p.useLayoutEffect:p.useEffect,Gn=new WeakMap;function Kn(e,t){var n=Un(t||null,function(t){return e.forEach(function(e){return Hn(e,t)})});return Wn(function(){var t=Gn.get(n);if(t){var r=new Set(t),i=new Set(e),a=n.current;r.forEach(function(e){i.has(e)||Hn(e,null)}),i.forEach(function(e){r.has(e)||Hn(e,a)})}Gn.set(n,e)},[e]),n}function qn(e){return e}function Jn(e,t){t===void 0&&(t=qn);var n=[],r=!1;return{read:function(){if(r)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(e){var i=t(e,r);return n.push(i),function(){n=n.filter(function(e){return e!==i})}},assignSyncMedium:function(e){for(r=!0;n.length;){var t=n;n=[],t.forEach(e)}n={push:function(t){return e(t)},filter:function(){return n}}},assignMedium:function(e){r=!0;var t=[];if(n.length){var i=n;n=[],i.forEach(e),t=n}var a=function(){var n=t;t=[],n.forEach(e)},o=function(){return Promise.resolve().then(a)};o(),n={push:function(e){t.push(e),o()},filter:function(e){return t=t.filter(e),n}}}}}function Yn(e){e===void 0&&(e={});var t=Jn(null);return t.options=W({async:!0,ssr:!1},e),t}var Xn=function(e){var t=e.sideCar,n=In(e,[`sideCar`]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw Error(`Sidecar medium not found`);return p.createElement(r,W({},n))};Xn.isSideCarExport=!0;function Zn(e,t){return e.useMedium(t),Xn}var Qn=Yn(),$n=function(){},er=p.forwardRef(function(e,t){var n=p.useRef(null),r=p.useState({onScrollCapture:$n,onWheelCapture:$n,onTouchMoveCapture:$n}),i=r[0],a=r[1],o=e.forwardProps,s=e.children,c=e.className,l=e.removeScrollBar,u=e.enabled,d=e.shards,f=e.sideCar,m=e.noRelative,h=e.noIsolation,g=e.inert,_=e.allowPinchZoom,v=e.as,y=v===void 0?`div`:v,b=e.gapMode,x=In(e,[`forwardProps`,`children`,`className`,`removeScrollBar`,`enabled`,`shards`,`sideCar`,`noRelative`,`noIsolation`,`inert`,`allowPinchZoom`,`as`,`gapMode`]),S=f,C=Kn([n,t]),w=W(W({},x),i);return p.createElement(p.Fragment,null,u&&p.createElement(S,{sideCar:Qn,removeScrollBar:l,shards:d,noRelative:m,noIsolation:h,inert:g,setCallbacks:a,allowPinchZoom:!!_,lockRef:n,gapMode:b}),o?p.cloneElement(p.Children.only(s),W(W({},w),{ref:C})):p.createElement(y,W({},w,{className:c,ref:C}),s))});er.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},er.classNames={fullWidth:zn,zeroRight:Rn};var tr,nr=function(){if(tr)return tr;if(typeof __webpack_nonce__<`u`)return __webpack_nonce__};function rr(){if(!document)return null;var e=document.createElement(`style`);e.type=`text/css`;var t=nr();return t&&e.setAttribute(`nonce`,t),e}function ir(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function ar(e){(document.head||document.getElementsByTagName(`head`)[0]).appendChild(e)}var or=function(){var e=0,t=null;return{add:function(n){e==0&&(t=rr())&&(ir(t,n),ar(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},sr=function(){var e=or();return function(t,n){p.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},cr=function(){var e=sr();return function(t){var n=t.styles,r=t.dynamic;return e(n,r),null}},lr={left:0,top:0,right:0,gap:0},ur=function(e){return parseInt(e||``,10)||0},dr=function(e){var t=window.getComputedStyle(document.body),n=t[e===`padding`?`paddingLeft`:`marginLeft`],r=t[e===`padding`?`paddingTop`:`marginTop`],i=t[e===`padding`?`paddingRight`:`marginRight`];return[ur(n),ur(r),ur(i)]},fr=function(e){if(e===void 0&&(e=`margin`),typeof window>`u`)return lr;var t=dr(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},pr=cr(),mr=`data-scroll-locked`,hr=function(e,t,n,r){var i=e.left,a=e.top,o=e.right,s=e.gap;return n===void 0&&(n=`margin`),`
2
+ .${Bn} {
3
+ overflow: hidden ${r};
4
+ padding-right: ${s}px ${r};
5
+ }
6
+ body[${mr}] {
7
+ overflow: hidden ${r};
8
+ overscroll-behavior: contain;
9
+ ${[t&&`position: relative ${r};`,n===`margin`&&`
10
+ padding-left: ${i}px;
11
+ padding-top: ${a}px;
12
+ padding-right: ${o}px;
13
+ margin-left:0;
14
+ margin-top:0;
15
+ margin-right: ${s}px ${r};
16
+ `,n===`padding`&&`padding-right: ${s}px ${r};`].filter(Boolean).join(``)}
17
+ }
18
+
19
+ .${Rn} {
20
+ right: ${s}px ${r};
21
+ }
22
+
23
+ .${zn} {
24
+ margin-right: ${s}px ${r};
25
+ }
26
+
27
+ .${Rn} .${Rn} {
28
+ right: 0 ${r};
29
+ }
30
+
31
+ .${zn} .${zn} {
32
+ margin-right: 0 ${r};
33
+ }
34
+
35
+ body[${mr}] {
36
+ ${Vn}: ${s}px;
37
+ }
38
+ `},gr=function(){var e=parseInt(document.body.getAttribute(`data-scroll-locked`)||`0`,10);return isFinite(e)?e:0},_r=function(){p.useEffect(function(){return document.body.setAttribute(mr,(gr()+1).toString()),function(){var e=gr()-1;e<=0?document.body.removeAttribute(mr):document.body.setAttribute(mr,e.toString())}},[])},vr=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,i=r===void 0?`margin`:r;_r();var a=p.useMemo(function(){return fr(i)},[i]);return p.createElement(pr,{styles:hr(a,!t,i,n?``:`!important`)})},yr=!1;if(typeof window<`u`)try{var br=Object.defineProperty({},`passive`,{get:function(){return yr=!0,!0}});window.addEventListener(`test`,br,br),window.removeEventListener(`test`,br,br)}catch{yr=!1}var xr=yr?{passive:!1}:!1,Sr=function(e){return e.tagName===`TEXTAREA`},Cr=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!==`hidden`&&!(n.overflowY===n.overflowX&&!Sr(e)&&n[t]===`visible`)},wr=function(e){return Cr(e,`overflowY`)},Tr=function(e){return Cr(e,`overflowX`)},Er=function(e,t){var n=t.ownerDocument,r=t;do{if(typeof ShadowRoot<`u`&&r instanceof ShadowRoot&&(r=r.host),kr(e,r)){var i=Ar(e,r);if(i[1]>i[2])return!0}r=r.parentNode}while(r&&r!==n.body);return!1},Dr=function(e){return[e.scrollTop,e.scrollHeight,e.clientHeight]},Or=function(e){return[e.scrollLeft,e.scrollWidth,e.clientWidth]},kr=function(e,t){return e===`v`?wr(t):Tr(t)},Ar=function(e,t){return e===`v`?Dr(t):Or(t)},jr=function(e,t){return e===`h`&&t===`rtl`?-1:1},Mr=function(e,t,n,r,i){var a=jr(e,window.getComputedStyle(t).direction),o=a*r,s=n.target,c=t.contains(s),l=!1,u=o>0,d=0,f=0;do{if(!s)break;var p=Ar(e,s),m=p[0],h=p[1]-p[2]-a*m;(m||h)&&kr(e,s)&&(d+=h,f+=m);var g=s.parentNode;s=g&&g.nodeType===Node.DOCUMENT_FRAGMENT_NODE?g.host:g}while(!c&&s!==document.body||c&&(t.contains(s)||t===s));return(u&&(i&&Math.abs(d)<1||!i&&o>d)||!u&&(i&&Math.abs(f)<1||!i&&-o>f))&&(l=!0),l},Nr=function(e){return`changedTouches`in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Pr=function(e){return[e.deltaX,e.deltaY]},Fr=function(e){return e&&`current`in e?e.current:e},Ir=function(e,t){return e[0]===t[0]&&e[1]===t[1]},Lr=function(e){return`
39
+ .block-interactivity-${e} {pointer-events: none;}
40
+ .allow-interactivity-${e} {pointer-events: all;}
41
+ `},Rr=0,zr=[];function Br(e){var t=p.useRef([]),n=p.useRef([0,0]),r=p.useRef(),i=p.useState(Rr++)[0],a=p.useState(cr)[0],o=p.useRef(e);p.useEffect(function(){o.current=e},[e]),p.useEffect(function(){if(e.inert){document.body.classList.add(`block-interactivity-${i}`);var t=Ln([e.lockRef.current],(e.shards||[]).map(Fr),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add(`allow-interactivity-${i}`)}),function(){document.body.classList.remove(`block-interactivity-${i}`),t.forEach(function(e){return e.classList.remove(`allow-interactivity-${i}`)})}}},[e.inert,e.lockRef.current,e.shards]);var s=p.useCallback(function(e,t){if(`touches`in e&&e.touches.length===2||e.type===`wheel`&&e.ctrlKey)return!o.current.allowPinchZoom;var i=Nr(e),a=n.current,s=`deltaX`in e?e.deltaX:a[0]-i[0],c=`deltaY`in e?e.deltaY:a[1]-i[1],l,u=e.target,d=Math.abs(s)>Math.abs(c)?`h`:`v`;if(`touches`in e&&d===`h`&&u.type===`range`)return!1;var f=window.getSelection(),p=f&&f.anchorNode;if(p&&(p===u||p.contains(u)))return!1;var m=Er(d,u);if(!m)return!0;if(m?l=d:(l=d===`v`?`h`:`v`,m=Er(d,u)),!m)return!1;if(!r.current&&`changedTouches`in e&&(s||c)&&(r.current=l),!l)return!0;var h=r.current||l;return Mr(h,t,e,h===`h`?s:c,!0)},[]),c=p.useCallback(function(e){var n=e;if(!(!zr.length||zr[zr.length-1]!==a)){var r=`deltaY`in n?Pr(n):Nr(n),i=t.current.filter(function(e){return e.name===n.type&&(e.target===n.target||n.target===e.shadowParent)&&Ir(e.delta,r)})[0];if(i&&i.should){n.cancelable&&n.preventDefault();return}if(!i){var c=(o.current.shards||[]).map(Fr).filter(Boolean).filter(function(e){return e.contains(n.target)});(c.length>0?s(n,c[0]):!o.current.noIsolation)&&n.cancelable&&n.preventDefault()}}},[]),l=p.useCallback(function(e,n,r,i){var a={name:e,delta:n,target:r,should:i,shadowParent:Vr(r)};t.current.push(a),setTimeout(function(){t.current=t.current.filter(function(e){return e!==a})},1)},[]),u=p.useCallback(function(e){n.current=Nr(e),r.current=void 0},[]),d=p.useCallback(function(t){l(t.type,Pr(t),t.target,s(t,e.lockRef.current))},[]),f=p.useCallback(function(t){l(t.type,Nr(t),t.target,s(t,e.lockRef.current))},[]);p.useEffect(function(){return zr.push(a),e.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:f}),document.addEventListener(`wheel`,c,xr),document.addEventListener(`touchmove`,c,xr),document.addEventListener(`touchstart`,u,xr),function(){zr=zr.filter(function(e){return e!==a}),document.removeEventListener(`wheel`,c,xr),document.removeEventListener(`touchmove`,c,xr),document.removeEventListener(`touchstart`,u,xr)}},[]);var m=e.removeScrollBar,h=e.inert;return p.createElement(p.Fragment,null,h?p.createElement(a,{styles:Lr(i)}):null,m?p.createElement(vr,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function Vr(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}var Hr=Zn(Qn,Br),Ur=p.forwardRef(function(e,t){return p.createElement(er,W({},e,{ref:t,sideCar:Hr}))});Ur.classNames=er.classNames;var Wr=[` `,`Enter`,`ArrowUp`,`ArrowDown`],Gr=[` `,`Enter`],G=`Select`,[Kr,qr,Jr]=Qt(G),[Yr,Xr]=b(G,[Jr,pe]),Zr=pe(),[Qr,K]=Yr(G),[$r,ei]=Yr(G),ti=e=>{let{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:a,value:o,defaultValue:s,onValueChange:c,dir:l,name:u,autoComplete:d,disabled:f,required:m,form:h}=e,g=Zr(t),[_,y]=p.useState(null),[b,x]=p.useState(null),[S,C]=p.useState(!1),w=en(l),[T,E]=Ue({prop:r,defaultProp:i??!1,onChange:a,caller:G}),[D,O]=Ue({prop:o,defaultProp:s,onChange:c,caller:G}),k=p.useRef(null),A=_?h||!!_.closest(`form`):!0,[j,M]=p.useState(new Set),N=Array.from(j).map(e=>e.props.value).join(`;`);return(0,v.jsx)(ke,{...g,children:(0,v.jsxs)(Qr,{required:m,scope:t,trigger:_,onTriggerChange:y,valueNode:b,onValueNodeChange:x,valueNodeHasChildren:S,onValueNodeHasChildrenChange:C,contentId:H(),value:D,onValueChange:O,open:T,onOpenChange:E,dir:w,triggerPointerDownPosRef:k,disabled:f,children:[(0,v.jsx)(Kr.Provider,{scope:t,children:(0,v.jsx)($r,{scope:e.__scopeSelect,onNativeOptionAdd:p.useCallback(e=>{M(t=>new Set(t).add(e))},[]),onNativeOptionRemove:p.useCallback(e=>{M(t=>{let n=new Set(t);return n.delete(e),n})},[]),children:n})}),A?(0,v.jsxs)(qi,{"aria-hidden":!0,required:m,tabIndex:-1,name:u,autoComplete:d,value:D,onChange:e=>O(e.target.value),disabled:f,form:h,children:[D===void 0?(0,v.jsx)(`option`,{value:``}):null,Array.from(j)]},N):null]})})};ti.displayName=G;var ni=`SelectTrigger`,ri=p.forwardRef((e,t)=>{let{__scopeSelect:n,disabled:r=!1,...i}=e,a=Zr(n),o=K(ni,n),s=o.disabled||r,c=_(t,o.onTriggerChange),l=qr(n),u=p.useRef(`touch`),[d,f,h]=Yi(e=>{let t=l().filter(e=>!e.disabled),n=Xi(t,e,t.find(e=>e.value===o.value));n!==void 0&&o.onValueChange(n.value)}),g=e=>{s||(o.onOpenChange(!0),h()),e&&(o.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,v.jsx)(Ae,{asChild:!0,...a,children:(0,v.jsx)(k.button,{type:`button`,role:`combobox`,"aria-controls":o.contentId,"aria-expanded":o.open,"aria-required":o.required,"aria-autocomplete":`none`,dir:o.dir,"data-state":o.open?`open`:`closed`,disabled:s,"data-disabled":s?``:void 0,"data-placeholder":Ji(o.value)?``:void 0,...i,ref:c,onClick:m(i.onClick,e=>{e.currentTarget.focus(),u.current!==`mouse`&&g(e)}),onPointerDown:m(i.onPointerDown,e=>{u.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(g(e),e.preventDefault())}),onKeyDown:m(i.onKeyDown,e=>{let t=d.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&f(e.key),!(t&&e.key===` `)&&Wr.includes(e.key)&&(g(),e.preventDefault())})})})});ri.displayName=ni;var ii=`SelectValue`,ai=p.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:i,children:a,placeholder:o=``,...s}=e,c=K(ii,n),{onValueNodeHasChildrenChange:l}=c,u=a!==void 0,d=_(t,c.onValueNodeChange);return V(()=>{l(u)},[l,u]),(0,v.jsx)(k.span,{...s,ref:d,style:{pointerEvents:`none`},children:Ji(c.value)?(0,v.jsx)(v.Fragment,{children:o}):a})});ai.displayName=ii;var oi=`SelectIcon`,si=p.forwardRef((e,t)=>{let{__scopeSelect:n,children:r,...i}=e;return(0,v.jsx)(k.span,{"aria-hidden":!0,...i,ref:t,children:r||`▼`})});si.displayName=oi;var ci=`SelectPortal`,li=e=>(0,v.jsx)(Pe,{asChild:!0,...e});li.displayName=ci;var q=`SelectContent`,ui=p.forwardRef((e,t)=>{let n=K(q,e.__scopeSelect),[r,i]=p.useState();if(V(()=>{i(new DocumentFragment)},[]),!n.open){let t=r;return t?S.createPortal((0,v.jsx)(di,{scope:e.__scopeSelect,children:(0,v.jsx)(Kr.Slot,{scope:e.__scopeSelect,children:(0,v.jsx)(`div`,{children:e.children})})}),t):null}return(0,v.jsx)(mi,{...e,ref:t})});ui.displayName=q;var J=10,[di,Y]=Yr(q),fi=`SelectContentImpl`,pi=bn(`SelectContent.RemoveScroll`),mi=p.forwardRef((e,t)=>{let{__scopeSelect:n,position:r=`item-aligned`,onCloseAutoFocus:i,onEscapeKeyDown:a,onPointerDownOutside:o,side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:h,sticky:g,hideWhenDetached:y,avoidCollisions:b,...x}=e,S=K(q,n),[C,w]=p.useState(null),[T,E]=p.useState(null),D=_(t,e=>w(e)),[O,k]=p.useState(null),[A,j]=p.useState(null),M=qr(n),[N,P]=p.useState(!1),F=p.useRef(!1);p.useEffect(()=>{if(C)return Fn(C)},[C]),nn();let I=p.useCallback(e=>{let[t,...n]=M().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&T&&(T.scrollTop=0),n===r&&T&&(T.scrollTop=T.scrollHeight),n?.focus(),document.activeElement!==i))return},[M,T]),L=p.useCallback(()=>I([O,C]),[I,O,C]);p.useEffect(()=>{N&&L()},[N,L]);let{onOpenChange:R,triggerPointerDownPosRef:B}=S;p.useEffect(()=>{if(C){let e={x:0,y:0},t=t=>{e={x:Math.abs(Math.round(t.pageX)-(B.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(B.current?.y??0))}},n=n=>{e.x<=10&&e.y<=10?n.preventDefault():C.contains(n.target)||R(!1),document.removeEventListener(`pointermove`,t),B.current=null};return B.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[C,R,B]),p.useEffect(()=>{let e=()=>R(!1);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[R]);let[ee,te]=Yi(e=>{let t=M().filter(e=>!e.disabled),n=Xi(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current.focus())}),ne=p.useCallback((e,t,n)=>{let r=!F.current&&!n;(S.value!==void 0&&S.value===t||r)&&(k(e),r&&(F.current=!0))},[S.value]),re=p.useCallback(()=>C?.focus(),[C]),ie=p.useCallback((e,t,n)=>{let r=!F.current&&!n;(S.value!==void 0&&S.value===t||r)&&j(e)},[S.value]),V=r===`popper`?vi:gi,ae=V===vi?{side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:h,sticky:g,hideWhenDetached:y,avoidCollisions:b}:{};return(0,v.jsx)(di,{scope:n,content:C,viewport:T,onViewportChange:E,itemRefCallback:ne,selectedItem:O,onItemLeave:re,itemTextRefCallback:ie,focusSelectedItem:L,selectedItemText:A,position:r,isPositioned:N,searchRef:ee,children:(0,v.jsx)(Ur,{as:pi,allowPinchZoom:!0,children:(0,v.jsx)(ln,{asChild:!0,trapped:S.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:m(i,e=>{S.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,v.jsx)(z,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>S.onOpenChange(!1),children:(0,v.jsx)(V,{role:`listbox`,id:S.contentId,"data-state":S.open?`open`:`closed`,dir:S.dir,onContextMenu:e=>e.preventDefault(),...x,...ae,onPlaced:()=>P(!0),ref:D,style:{display:`flex`,flexDirection:`column`,outline:`none`,...x.style},onKeyDown:m(x.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&te(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=M().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>I(t)),e.preventDefault()}})})})})})})});mi.displayName=fi;var hi=`SelectItemAlignedPosition`,gi=p.forwardRef((e,t)=>{let{__scopeSelect:n,onPlaced:r,...i}=e,a=K(q,n),o=Y(q,n),[s,c]=p.useState(null),[l,u]=p.useState(null),d=_(t,e=>u(e)),f=qr(n),m=p.useRef(!1),h=p.useRef(!0),{viewport:g,selectedItem:y,selectedItemText:b,focusSelectedItem:x}=o,S=p.useCallback(()=>{if(a.trigger&&a.valueNode&&s&&l&&g&&y&&b){let e=a.trigger.getBoundingClientRect(),t=l.getBoundingClientRect(),n=a.valueNode.getBoundingClientRect(),i=b.getBoundingClientRect();if(a.dir!==`rtl`){let r=i.left-t.left,a=n.left-r,o=e.left-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-J,d=Gt(a,[J,Math.max(J,u-l)]);s.style.minWidth=c+`px`,s.style.left=d+`px`}else{let r=t.right-i.right,a=window.innerWidth-n.right-r,o=window.innerWidth-e.right-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-J,d=Gt(a,[J,Math.max(J,u-l)]);s.style.minWidth=c+`px`,s.style.right=d+`px`}let o=f(),c=window.innerHeight-J*2,u=g.scrollHeight,d=window.getComputedStyle(l),p=parseInt(d.borderTopWidth,10),h=parseInt(d.paddingTop,10),_=parseInt(d.borderBottomWidth,10),v=parseInt(d.paddingBottom,10),x=p+h+u+v+_,S=Math.min(y.offsetHeight*5,x),C=window.getComputedStyle(g),w=parseInt(C.paddingTop,10),T=parseInt(C.paddingBottom,10),E=e.top+e.height/2-J,D=c-E,O=y.offsetHeight/2,k=y.offsetTop+O,A=p+h+k,j=x-A;if(A<=E){let e=o.length>0&&y===o[o.length-1].ref.current;s.style.bottom=`0px`;let t=l.clientHeight-g.offsetTop-g.offsetHeight,n=A+Math.max(D,O+(e?T:0)+t+_);s.style.height=n+`px`}else{let e=o.length>0&&y===o[0].ref.current;s.style.top=`0px`;let t=Math.max(E,p+g.offsetTop+(e?w:0)+O)+j;s.style.height=t+`px`,g.scrollTop=A-E+g.offsetTop}s.style.margin=`${J}px 0`,s.style.minHeight=S+`px`,s.style.maxHeight=c+`px`,r?.(),requestAnimationFrame(()=>m.current=!0)}},[f,a.trigger,a.valueNode,s,l,g,y,b,a.dir,r]);V(()=>S(),[S]);let[C,w]=p.useState();return V(()=>{l&&w(window.getComputedStyle(l).zIndex)},[l]),(0,v.jsx)(yi,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:m,onScrollButtonChange:p.useCallback(e=>{e&&h.current===!0&&(S(),x?.(),h.current=!1)},[S,x]),children:(0,v.jsx)(`div`,{ref:c,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:C},children:(0,v.jsx)(k.div,{...i,ref:d,style:{boxSizing:`border-box`,maxHeight:`100%`,...i.style}})})})});gi.displayName=hi;var _i=`SelectPopperPosition`,vi=p.forwardRef((e,t)=>{let{__scopeSelect:n,align:r=`start`,collisionPadding:i=J,...a}=e,o=Zr(n);return(0,v.jsx)(je,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.style,"--radix-select-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-select-content-available-width":`var(--radix-popper-available-width)`,"--radix-select-content-available-height":`var(--radix-popper-available-height)`,"--radix-select-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-select-trigger-height":`var(--radix-popper-anchor-height)`}})});vi.displayName=_i;var[yi,bi]=Yr(q,{}),xi=`SelectViewport`,Si=p.forwardRef((e,t)=>{let{__scopeSelect:n,nonce:r,...i}=e,a=Y(xi,n),o=bi(xi,n),s=_(t,a.onViewportChange),c=p.useRef(0);return(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`},nonce:r}),(0,v.jsx)(Kr.Slot,{scope:n,children:(0,v.jsx)(k.div,{"data-radix-select-viewport":``,role:`presentation`,...i,ref:s,style:{position:`relative`,flex:1,overflow:`hidden auto`,...i.style},onScroll:m(i.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=o;if(r?.current&&n){let e=Math.abs(c.current-t.scrollTop);if(e>0){let r=window.innerHeight-J*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o<r){let i=o+e,a=Math.min(r,i),s=i-a;n.style.height=a+`px`,n.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,n.style.justifyContent=`flex-end`)}}}c.current=t.scrollTop})})})]})});Si.displayName=xi;var Ci=`SelectGroup`,[wi,Ti]=Yr(Ci),Ei=p.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=H();return(0,v.jsx)(wi,{scope:n,id:i,children:(0,v.jsx)(k.div,{role:`group`,"aria-labelledby":i,...r,ref:t})})});Ei.displayName=Ci;var Di=`SelectLabel`,Oi=p.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=Ti(Di,n);return(0,v.jsx)(k.div,{id:i.id,...r,ref:t})});Oi.displayName=Di;var ki=`SelectItem`,[Ai,ji]=Yr(ki),Mi=p.forwardRef((e,t)=>{let{__scopeSelect:n,value:r,disabled:i=!1,textValue:a,...o}=e,s=K(ki,n),c=Y(ki,n),l=s.value===r,[u,d]=p.useState(a??``),[f,h]=p.useState(!1),g=_(t,e=>c.itemRefCallback?.(e,r,i)),y=H(),b=p.useRef(`touch`),x=()=>{i||(s.onValueChange(r),s.onOpenChange(!1))};if(r===``)throw Error(`A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.`);return(0,v.jsx)(Ai,{scope:n,value:r,disabled:i,textId:y,isSelected:l,onItemTextChange:p.useCallback(e=>{d(t=>t||(e?.textContent??``).trim())},[]),children:(0,v.jsx)(Kr.ItemSlot,{scope:n,value:r,disabled:i,textValue:u,children:(0,v.jsx)(k.div,{role:`option`,"aria-labelledby":y,"data-highlighted":f?``:void 0,"aria-selected":l&&f,"data-state":l?`checked`:`unchecked`,"aria-disabled":i||void 0,"data-disabled":i?``:void 0,tabIndex:i?void 0:-1,...o,ref:g,onFocus:m(o.onFocus,()=>h(!0)),onBlur:m(o.onBlur,()=>h(!1)),onClick:m(o.onClick,()=>{b.current!==`mouse`&&x()}),onPointerUp:m(o.onPointerUp,()=>{b.current===`mouse`&&x()}),onPointerDown:m(o.onPointerDown,e=>{b.current=e.pointerType}),onPointerMove:m(o.onPointerMove,e=>{b.current=e.pointerType,i?c.onItemLeave?.():b.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:m(o.onPointerLeave,e=>{e.currentTarget===document.activeElement&&c.onItemLeave?.()}),onKeyDown:m(o.onKeyDown,e=>{c.searchRef?.current!==``&&e.key===` `||(Gr.includes(e.key)&&x(),e.key===` `&&e.preventDefault())})})})})});Mi.displayName=ki;var Ni=`SelectItemText`,Pi=p.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:i,...a}=e,o=K(Ni,n),s=Y(Ni,n),c=ji(Ni,n),l=ei(Ni,n),[u,d]=p.useState(null),f=_(t,e=>d(e),c.onItemTextChange,e=>s.itemTextRefCallback?.(e,c.value,c.disabled)),m=u?.textContent,h=p.useMemo(()=>(0,v.jsx)(`option`,{value:c.value,disabled:c.disabled,children:m},c.value),[c.disabled,c.value,m]),{onNativeOptionAdd:g,onNativeOptionRemove:y}=l;return V(()=>(g(h),()=>y(h)),[g,y,h]),(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(k.span,{id:c.textId,...a,ref:f}),c.isSelected&&o.valueNode&&!o.valueNodeHasChildren?S.createPortal(a.children,o.valueNode):null]})});Pi.displayName=Ni;var Fi=`SelectItemIndicator`,Ii=p.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return ji(Fi,n).isSelected?(0,v.jsx)(k.span,{"aria-hidden":!0,...r,ref:t}):null});Ii.displayName=Fi;var Li=`SelectScrollUpButton`,Ri=p.forwardRef((e,t)=>{let n=Y(Li,e.__scopeSelect),r=bi(Li,e.__scopeSelect),[i,a]=p.useState(!1),o=_(t,r.onScrollButtonChange);return V(()=>{if(n.viewport&&n.isPositioned){let e=function(){a(t.scrollTop>0)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,v.jsx)(Vi,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop-=t.offsetHeight)}}):null});Ri.displayName=Li;var zi=`SelectScrollDownButton`,Bi=p.forwardRef((e,t)=>{let n=Y(zi,e.__scopeSelect),r=bi(zi,e.__scopeSelect),[i,a]=p.useState(!1),o=_(t,r.onScrollButtonChange);return V(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight;a(Math.ceil(t.scrollTop)<e)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,v.jsx)(Vi,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop+=t.offsetHeight)}}):null});Bi.displayName=zi;var Vi=p.forwardRef((e,t)=>{let{__scopeSelect:n,onAutoScroll:r,...i}=e,a=Y(`SelectScrollButton`,n),o=p.useRef(null),s=qr(n),c=p.useCallback(()=>{o.current!==null&&(window.clearInterval(o.current),o.current=null)},[]);return p.useEffect(()=>()=>c(),[c]),V(()=>{s().find(e=>e.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:`nearest`})},[s]),(0,v.jsx)(k.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:m(i.onPointerDown,()=>{o.current===null&&(o.current=window.setInterval(r,50))}),onPointerMove:m(i.onPointerMove,()=>{a.onItemLeave?.(),o.current===null&&(o.current=window.setInterval(r,50))}),onPointerLeave:m(i.onPointerLeave,()=>{c()})})}),Hi=`SelectSeparator`,Ui=p.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return(0,v.jsx)(k.div,{"aria-hidden":!0,...r,ref:t})});Ui.displayName=Hi;var Wi=`SelectArrow`,Gi=p.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=Zr(n),a=K(Wi,n),o=Y(Wi,n);return a.open&&o.position===`popper`?(0,v.jsx)(Me,{...i,...r,ref:t}):null});Gi.displayName=Wi;var Ki=`SelectBubbleInput`,qi=p.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{let i=p.useRef(null),a=_(r,i),o=En(t);return p.useEffect(()=>{let e=i.current;if(!e)return;let n=window.HTMLSelectElement.prototype,r=Object.getOwnPropertyDescriptor(n,`value`).set;if(o!==t&&r){let n=new Event(`change`,{bubbles:!0});r.call(e,t),e.dispatchEvent(n)}},[o,t]),(0,v.jsx)(k.select,{...n,style:{...Ke,...n.style},ref:a,defaultValue:t})});qi.displayName=Ki;function Ji(e){return e===``||e===void 0}function Yi(e){let t=j(e),n=p.useRef(``),r=p.useRef(0),i=p.useCallback(e=>{let i=n.current+e;t(i),(function e(t){n.current=t,window.clearTimeout(r.current),t!==``&&(r.current=window.setTimeout(()=>e(``),1e3))})(i)},[t]),a=p.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return p.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}function Xi(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=Zi(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}function Zi(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var Qi=ti,$i=ri,ea=ai,ta=si,na=li,ra=ui,ia=Si,aa=Mi,oa=Pi,sa=1,ca=.9,la=.8,ua=.17,da=.1,fa=.999,pa=.9999,ma=.99,ha=/[\\\/_+.#"@\[\(\{&]/,ga=/[\\\/_+.#"@\[\(\{&]/g,_a=/[\s-]/,va=/[\s-]/g;function ya(e,t,n,r,i,a,o){if(a===t.length)return i===e.length?sa:ma;var s=`${i},${a}`;if(o[s]!==void 0)return o[s];for(var c=r.charAt(a),l=n.indexOf(c,i),u=0,d,f,p,m;l>=0;)d=ya(e,t,n,r,l+1,a+1,o),d>u&&(l===i?d*=sa:ha.test(e.charAt(l-1))?(d*=la,p=e.slice(i,l-1).match(ga),p&&i>0&&(d*=fa**+p.length)):_a.test(e.charAt(l-1))?(d*=ca,m=e.slice(i,l-1).match(va),m&&i>0&&(d*=fa**+m.length)):(d*=ua,i>0&&(d*=fa**+(l-i))),e.charAt(l)!==t.charAt(a)&&(d*=pa)),(d<da&&n.charAt(l-1)===r.charAt(a+1)||r.charAt(a+1)===r.charAt(a)&&n.charAt(l-1)!==r.charAt(a))&&(f=ya(e,t,n,r,l+1,a+2,o),f*da>d&&(d=f*da)),d>u&&(u=d),l=n.indexOf(c,l+1);return o[s]=u,u}function ba(e){return e.toLowerCase().replace(va,` `)}function xa(e,t,n){return e=n&&n.length>0?`${e+` `+n.join(` `)}`:e,ya(e,t,ba(e),ba(t),0,0,{})}function Sa(e){let t=Ca(e),n=p.forwardRef((e,n)=>{let{children:r,...i}=e,a=p.Children.toArray(r),o=a.find(Ta);if(o){let e=o.props.children,r=a.map(t=>t===o?p.Children.count(e)>1?p.Children.only(null):p.isValidElement(e)?e.props.children:null:t);return(0,v.jsx)(t,{...i,ref:n,children:p.isValidElement(e)?p.cloneElement(e,void 0,r):null})}return(0,v.jsx)(t,{...i,ref:n,children:r})});return n.displayName=`${e}.Slot`,n}function Ca(e){let t=p.forwardRef((e,t)=>{let{children:n,...r}=e;if(p.isValidElement(n)){let e=Da(n),i=Ea(r,n.props);return n.type!==p.Fragment&&(i.ref=t?g(t,e):e),p.cloneElement(n,i)}return p.Children.count(n)>1?p.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var wa=Symbol(`radix.slottable`);function Ta(e){return p.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===wa}function Ea(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function Da(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Oa=`Dialog`,[ka,Aa]=b(Oa),[ja,X]=ka(Oa),Ma=e=>{let{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:o=!0}=e,s=p.useRef(null),c=p.useRef(null),[l,u]=Ue({prop:r,defaultProp:i??!1,onChange:a,caller:Oa});return(0,v.jsx)(ja,{scope:t,triggerRef:s,contentRef:c,contentId:H(),titleId:H(),descriptionId:H(),open:l,onOpenChange:u,onOpenToggle:p.useCallback(()=>u(e=>!e),[u]),modal:o,children:n})};Ma.displayName=Oa;var Na=`DialogTrigger`,Pa=p.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=X(Na,n),a=_(t,i.triggerRef);return(0,v.jsx)(k.button,{type:`button`,"aria-haspopup":`dialog`,"aria-expanded":i.open,"aria-controls":i.contentId,"data-state":$a(i.open),...r,ref:a,onClick:m(e.onClick,i.onOpenToggle)})});Pa.displayName=Na;var Fa=`DialogPortal`,[Ia,La]=ka(Fa,{forceMount:void 0}),Ra=e=>{let{__scopeDialog:t,forceMount:n,children:r,container:i}=e,a=X(Fa,t);return(0,v.jsx)(Ia,{scope:t,forceMount:n,children:p.Children.map(r,e=>(0,v.jsx)(Ie,{present:n||a.open,children:(0,v.jsx)(Pe,{asChild:!0,container:i,children:e})}))})};Ra.displayName=Fa;var za=`DialogOverlay`,Ba=p.forwardRef((e,t)=>{let n=La(za,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=X(za,e.__scopeDialog);return a.modal?(0,v.jsx)(Ie,{present:r||a.open,children:(0,v.jsx)(Ha,{...i,ref:t})}):null});Ba.displayName=za;var Va=Sa(`DialogOverlay.RemoveScroll`),Ha=p.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=X(za,n);return(0,v.jsx)(Ur,{as:Va,allowPinchZoom:!0,shards:[i.contentRef],children:(0,v.jsx)(k.div,{"data-state":$a(i.open),...r,ref:t,style:{pointerEvents:`auto`,...r.style}})})}),Z=`DialogContent`,Ua=p.forwardRef((e,t)=>{let n=La(Z,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=X(Z,e.__scopeDialog);return(0,v.jsx)(Ie,{present:r||a.open,children:a.modal?(0,v.jsx)(Wa,{...i,ref:t}):(0,v.jsx)(Ga,{...i,ref:t})})});Ua.displayName=Z;var Wa=p.forwardRef((e,t)=>{let n=X(Z,e.__scopeDialog),r=p.useRef(null),i=_(t,n.contentRef,r);return p.useEffect(()=>{let e=r.current;if(e)return Fn(e)},[]),(0,v.jsx)(Ka,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:m(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:m(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;(t.button===2||n)&&e.preventDefault()}),onFocusOutside:m(e.onFocusOutside,e=>e.preventDefault())})}),Ga=p.forwardRef((e,t)=>{let n=X(Z,e.__scopeDialog),r=p.useRef(!1),i=p.useRef(!1);return(0,v.jsx)(Ka,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})}),Ka=p.forwardRef((e,t)=>{let{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,...o}=e,s=X(Z,n),c=p.useRef(null),l=_(t,c);return nn(),(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(ln,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,v.jsx)(z,{role:`dialog`,id:s.contentId,"aria-describedby":s.descriptionId,"aria-labelledby":s.titleId,"data-state":$a(s.open),...o,ref:l,onDismiss:()=>s.onOpenChange(!1)})}),(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(ro,{titleId:s.titleId}),(0,v.jsx)(ao,{contentRef:c,descriptionId:s.descriptionId})]})]})}),qa=`DialogTitle`,Ja=p.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=X(qa,n);return(0,v.jsx)(k.h2,{id:i.titleId,...r,ref:t})});Ja.displayName=qa;var Ya=`DialogDescription`,Xa=p.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=X(Ya,n);return(0,v.jsx)(k.p,{id:i.descriptionId,...r,ref:t})});Xa.displayName=Ya;var Za=`DialogClose`,Qa=p.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=X(Za,n);return(0,v.jsx)(k.button,{type:`button`,...r,ref:t,onClick:m(e.onClick,()=>i.onOpenChange(!1))})});Qa.displayName=Za;function $a(e){return e?`open`:`closed`}var eo=`DialogTitleWarning`,[to,no]=y(eo,{contentName:Z,titleName:qa,docsSlug:`dialog`}),ro=({titleId:e})=>{let t=no(eo),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.
42
+
43
+ If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
44
+
45
+ For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return p.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},io=`DialogDescriptionWarning`,ao=({contentRef:e,descriptionId:t})=>{let n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${no(io).contentName}}.`;return p.useEffect(()=>{let r=e.current?.getAttribute(`aria-describedby`);t&&r&&(document.getElementById(t)||console.warn(n))},[n,e,t]),null},oo=Ma,so=Pa,co=Ra,lo=Ba,uo=Ua,fo=Ja,po=Xa,mo=Qa,ho=`[cmdk-group=""]`,go=`[cmdk-group-items=""]`,_o=`[cmdk-group-heading=""]`,vo=`[cmdk-item=""]`,yo=`${vo}:not([aria-disabled="true"])`,bo=`cmdk-item-select`,xo=`data-value`,So=(e,t,n)=>xa(e,t,n),Co=p.createContext(void 0),wo=()=>p.useContext(Co),To=p.createContext(void 0),Eo=()=>p.useContext(To),Do=p.createContext(void 0),Oo=p.forwardRef((e,t)=>{let n=Vo(()=>({search:``,value:e.value??e.defaultValue??``,selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}})),r=Vo(()=>new Set),i=Vo(()=>new Map),a=Vo(()=>new Map),o=Vo(()=>new Set),s=Bo(e),{label:c,children:l,value:u,onValueChange:d,filter:f,shouldFilter:m,loop:h,disablePointerSelection:g=!1,vimBindings:_=!0,...v}=e,y=H(),b=H(),x=H(),S=p.useRef(null),C=Uo();Q(()=>{if(u!==void 0){let e=u.trim();n.current.value=e,w.emit()}},[u]),Q(()=>{C(6,j)},[]);let w=p.useMemo(()=>({subscribe:e=>(o.current.add(e),()=>o.current.delete(e)),snapshot:()=>n.current,setState:(e,t,r)=>{var i,a,o;if(!Object.is(n.current[e],t)){if(n.current[e]=t,e===`search`)A(),D(),C(1,O);else if(e===`value`){if(document.activeElement.hasAttribute(`cmdk-input`)||document.activeElement.hasAttribute(`cmdk-root`)){let e=document.getElementById(x);e?e.focus():(i=document.getElementById(y))==null||i.focus()}if(C(7,()=>{n.current.selectedItemId=M()?.id,w.emit()}),r||C(5,j),s.current?.value!==void 0){let e=t??``;(o=(a=s.current).onValueChange)==null||o.call(a,e);return}}w.emit()}},emit:()=>{o.current.forEach(e=>e())}}),[]),T=p.useMemo(()=>({value:(e,t,r)=>{t!==a.current.get(e)?.value&&(a.current.set(e,{value:t,keywords:r}),n.current.filtered.items.set(e,E(t,r)),C(2,()=>{D(),w.emit()}))},item:(e,t)=>(r.current.add(e),t&&(i.current.has(t)?i.current.get(t).add(e):i.current.set(t,new Set([e]))),C(3,()=>{A(),D(),n.current.value||O(),w.emit()}),()=>{a.current.delete(e),r.current.delete(e),n.current.filtered.items.delete(e);let t=M();C(4,()=>{A(),t?.getAttribute(`id`)===e&&O(),w.emit()})}),group:e=>(i.current.has(e)||i.current.set(e,new Set),()=>{a.current.delete(e),i.current.delete(e)}),filter:()=>s.current.shouldFilter,label:c||e[`aria-label`],getDisablePointerSelection:()=>s.current.disablePointerSelection,listId:y,inputId:x,labelId:b,listInnerRef:S}),[]);function E(e,t){let r=s.current?.filter??So;return e?r(e,n.current.search,t):0}function D(){if(!n.current.search||s.current.shouldFilter===!1)return;let e=n.current.filtered.items,t=[];n.current.filtered.groups.forEach(n=>{let r=i.current.get(n),a=0;r.forEach(t=>{let n=e.get(t);a=Math.max(n,a)}),t.push([n,a])});let r=S.current;N().sort((t,n)=>{let r=t.getAttribute(`id`),i=n.getAttribute(`id`);return(e.get(i)??0)-(e.get(r)??0)}).forEach(e=>{let t=e.closest(go);t?t.appendChild(e.parentElement===t?e:e.closest(`${go} > *`)):r.appendChild(e.parentElement===r?e:e.closest(`${go} > *`))}),t.sort((e,t)=>t[1]-e[1]).forEach(e=>{let t=S.current?.querySelector(`${ho}[${xo}="${encodeURIComponent(e[0])}"]`);t?.parentElement.appendChild(t)})}function O(){let e=N().find(e=>e.getAttribute(`aria-disabled`)!==`true`)?.getAttribute(xo);w.setState(`value`,e||void 0)}function A(){if(!n.current.search||s.current.shouldFilter===!1){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let e=0;for(let t of r.current){let r=E(a.current.get(t)?.value??``,a.current.get(t)?.keywords??[]);n.current.filtered.items.set(t,r),r>0&&e++}for(let[e,t]of i.current)for(let r of t)if(n.current.filtered.items.get(r)>0){n.current.filtered.groups.add(e);break}n.current.filtered.count=e}function j(){var e;let t=M();t&&(t.parentElement?.firstChild===t&&((e=t.closest(ho)?.querySelector(_o))==null||e.scrollIntoView({block:`nearest`})),t.scrollIntoView({block:`nearest`}))}function M(){return S.current?.querySelector(`${vo}[aria-selected="true"]`)}function N(){return Array.from(S.current?.querySelectorAll(yo)||[])}function P(e){let t=N()[e];t&&w.setState(`value`,t.getAttribute(xo))}function F(e){var t;let n=M(),r=N(),i=r.findIndex(e=>e===n),a=r[i+e];(t=s.current)!=null&&t.loop&&(a=i+e<0?r[r.length-1]:i+e===r.length?r[0]:r[i+e]),a&&w.setState(`value`,a.getAttribute(xo))}function I(e){let t=M()?.closest(ho),n;for(;t&&!n;)t=e>0?Ro(t,ho):zo(t,ho),n=t?.querySelector(yo);n?w.setState(`value`,n.getAttribute(xo)):F(e)}let L=()=>P(N().length-1),R=e=>{e.preventDefault(),e.metaKey?L():e.altKey?I(1):F(1)},z=e=>{e.preventDefault(),e.metaKey?P(0):e.altKey?I(-1):F(-1)};return p.createElement(k.div,{ref:t,tabIndex:-1,...v,"cmdk-root":``,onKeyDown:e=>{var t;(t=v.onKeyDown)==null||t.call(v,e);let n=e.nativeEvent.isComposing||e.keyCode===229;if(!(e.defaultPrevented||n))switch(e.key){case`n`:case`j`:_&&e.ctrlKey&&R(e);break;case`ArrowDown`:R(e);break;case`p`:case`k`:_&&e.ctrlKey&&z(e);break;case`ArrowUp`:z(e);break;case`Home`:e.preventDefault(),P(0);break;case`End`:e.preventDefault(),L();break;case`Enter`:{e.preventDefault();let t=M();if(t){let e=new Event(bo);t.dispatchEvent(e)}}}}},p.createElement(`label`,{"cmdk-label":``,htmlFor:T.inputId,id:T.labelId,style:Ko},c),Go(e,e=>p.createElement(To.Provider,{value:w},p.createElement(Co.Provider,{value:T},e))))}),ko=p.forwardRef((e,t)=>{let n=H(),r=p.useRef(null),i=p.useContext(Do),a=wo(),o=Bo(e),s=o.current?.forceMount??i?.forceMount;Q(()=>{if(!s)return a.item(n,i?.id)},[s]);let c=Ho(n,r,[e.value,e.children,r],e.keywords),l=Eo(),u=$(e=>e.value&&e.value===c.current),d=$(e=>s||a.filter()===!1?!0:e.search?e.filtered.items.get(n)>0:!0);p.useEffect(()=>{let t=r.current;if(!(!t||e.disabled))return t.addEventListener(bo,f),()=>t.removeEventListener(bo,f)},[d,e.onSelect,e.disabled]);function f(){var e,t;m(),(t=(e=o.current).onSelect)==null||t.call(e,c.current)}function m(){l.setState(`value`,c.current,!0)}if(!d)return null;let{disabled:h,value:_,onSelect:v,forceMount:y,keywords:b,...x}=e;return p.createElement(k.div,{ref:g(r,t),...x,id:n,"cmdk-item":``,role:`option`,"aria-disabled":!!h,"aria-selected":!!u,"data-disabled":!!h,"data-selected":!!u,onPointerMove:h||a.getDisablePointerSelection()?void 0:m,onClick:h?void 0:f},e.children)}),Ao=p.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:i,...a}=e,o=H(),s=p.useRef(null),c=p.useRef(null),l=H(),u=wo(),d=$(e=>i||u.filter()===!1?!0:e.search?e.filtered.groups.has(o):!0);Q(()=>u.group(o),[]),Ho(o,s,[e.value,e.heading,c]);let f=p.useMemo(()=>({id:o,forceMount:i}),[i]);return p.createElement(k.div,{ref:g(s,t),...a,"cmdk-group":``,role:`presentation`,hidden:d?void 0:!0},n&&p.createElement(`div`,{ref:c,"cmdk-group-heading":``,"aria-hidden":!0,id:l},n),Go(e,e=>p.createElement(`div`,{"cmdk-group-items":``,role:`group`,"aria-labelledby":n?l:void 0},p.createElement(Do.Provider,{value:f},e))))}),jo=p.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,i=p.useRef(null),a=$(e=>!e.search);return!n&&!a?null:p.createElement(k.div,{ref:g(i,t),...r,"cmdk-separator":``,role:`separator`})}),Mo=p.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,i=e.value!=null,a=Eo(),o=$(e=>e.search),s=$(e=>e.selectedItemId),c=wo();return p.useEffect(()=>{e.value!=null&&a.setState(`search`,e.value)},[e.value]),p.createElement(k.input,{ref:t,...r,"cmdk-input":``,autoComplete:`off`,autoCorrect:`off`,spellCheck:!1,"aria-autocomplete":`list`,role:`combobox`,"aria-expanded":!0,"aria-controls":c.listId,"aria-labelledby":c.labelId,"aria-activedescendant":s,id:c.inputId,type:`text`,value:i?e.value:o,onChange:e=>{i||a.setState(`search`,e.target.value),n?.(e.target.value)}})}),No=p.forwardRef((e,t)=>{let{children:n,label:r=`Suggestions`,...i}=e,a=p.useRef(null),o=p.useRef(null),s=$(e=>e.selectedItemId),c=wo();return p.useEffect(()=>{if(o.current&&a.current){let e=o.current,t=a.current,n,r=new ResizeObserver(()=>{n=requestAnimationFrame(()=>{let n=e.offsetHeight;t.style.setProperty(`--cmdk-list-height`,n.toFixed(1)+`px`)})});return r.observe(e),()=>{cancelAnimationFrame(n),r.unobserve(e)}}},[]),p.createElement(k.div,{ref:g(a,t),...i,"cmdk-list":``,role:`listbox`,tabIndex:-1,"aria-activedescendant":s,"aria-label":r,id:c.listId},Go(e,e=>p.createElement(`div`,{ref:g(o,c.listInnerRef),"cmdk-list-sizer":``},e)))}),Po=p.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:i,contentClassName:a,container:o,...s}=e;return p.createElement(oo,{open:n,onOpenChange:r},p.createElement(co,{container:o},p.createElement(lo,{"cmdk-overlay":``,className:i}),p.createElement(uo,{"aria-label":e.label,"cmdk-dialog":``,className:a},p.createElement(Oo,{ref:t,...s}))))}),Fo=p.forwardRef((e,t)=>$(e=>e.filtered.count===0)?p.createElement(k.div,{ref:t,...e,"cmdk-empty":``,role:`presentation`}):null),Io=p.forwardRef((e,t)=>{let{progress:n,children:r,label:i=`Loading...`,...a}=e;return p.createElement(k.div,{ref:t,...a,"cmdk-loading":``,role:`progressbar`,"aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":i},Go(e,e=>p.createElement(`div`,{"aria-hidden":!0},e)))}),Lo=Object.assign(Oo,{List:No,Item:ko,Input:Mo,Group:Ao,Separator:jo,Dialog:Po,Empty:Fo,Loading:Io});function Ro(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function zo(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function Bo(e){let t=p.useRef(e);return Q(()=>{t.current=e}),t}var Q=typeof window>`u`?p.useEffect:p.useLayoutEffect;function Vo(e){let t=p.useRef();return t.current===void 0&&(t.current=e()),t}function $(e){let t=Eo(),n=()=>e(t.snapshot());return p.useSyncExternalStore(t.subscribe,n,n)}function Ho(e,t,n,r=[]){let i=p.useRef(),a=wo();return Q(()=>{var o;let s=(()=>{for(let e of n){if(typeof e==`string`)return e.trim();if(typeof e==`object`&&`current`in e)return e.current?e.current.textContent?.trim():i.current}})(),c=r.map(e=>e.trim());a.value(e,s,c),(o=t.current)==null||o.setAttribute(xo,s),i.current=s}),i}var Uo=()=>{let[e,t]=p.useState(),n=Vo(()=>new Map);return Q(()=>{n.current.forEach(e=>e()),n.current=new Map},[e]),(e,r)=>{n.current.set(e,r),t({})}};function Wo(e){let t=e.type;return typeof t==`function`?t(e.props):`render`in t?t.render(e.props):e}function Go({asChild:e,children:t},n){return e&&p.isValidElement(t)?p.cloneElement(Wo(t),{ref:t.ref},n(t.props.children)):n(t)}var Ko={position:`absolute`,width:`1px`,height:`1px`,padding:`0`,margin:`-1px`,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,borderWidth:`0`};export{Mt as C,jt as S,ea as _,lo as a,Nt as b,fo as c,ta as d,aa as f,$i as g,Qi as h,po as i,so as l,na as m,mo as n,co as o,oa as p,uo as r,oo as s,Lo as t,ra as u,ia as v,At as x,zt as y};
@@ -0,0 +1 @@
1
+ import{a as e}from"./rolldown-runtime-COnpUsM8.js";import{S as t,w as n,x as r}from"./charts-vendor-CiBqdKXh.js";import{n as i}from"./motion-vendor-BNFhNARW.js";var a=(e,t)=>{let n=Array(e.length+t.length);for(let t=0;t<e.length;t++)n[t]=e[t];for(let r=0;r<t.length;r++)n[e.length+r]=t[r];return n},o=(e,t)=>({classGroupId:e,validator:t}),s=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),c=`-`,l=[],u=`arbitrary..`,d=e=>{let t=m(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:e=>{if(e.startsWith(`[`)&&e.endsWith(`]`))return p(e);let n=e.split(c);return f(n,+(n[0]===``&&n.length>1),t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=r[e],i=n[e];return t?i?a(i,t):t:i||l}return n[e]||l}}},f=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;let r=e[t],i=n.nextPart.get(r);if(i){let n=f(e,t+1,i);if(n)return n}let a=n.validators;if(a===null)return;let o=t===0?e.join(c):e.slice(t).join(c),s=a.length;for(let e=0;e<s;e++){let t=a[e];if(t.validator(o))return t.classGroupId}},p=e=>e.slice(1,-1).indexOf(`:`)===-1?void 0:(()=>{let t=e.slice(1,-1),n=t.indexOf(`:`),r=t.slice(0,n);return r?u+r:void 0})(),m=e=>{let{theme:t,classGroups:n}=e;return h(n,t)},h=(e,t)=>{let n=s();for(let r in e){let i=e[r];g(i,n,r,t)}return n},g=(e,t,n,r)=>{let i=e.length;for(let a=0;a<i;a++){let i=e[a];_(i,t,n,r)}},_=(e,t,n,r)=>{if(typeof e==`string`){v(e,t,n);return}if(typeof e==`function`){y(e,t,n,r);return}b(e,t,n,r)},v=(e,t,n)=>{let r=e===``?t:x(t,e);r.classGroupId=n},y=(e,t,n,r)=>{if(S(e)){g(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(o(n,e))},b=(e,t,n,r)=>{let i=Object.entries(e),a=i.length;for(let e=0;e<a;e++){let[a,o]=i[e];g(o,x(t,a),n,r)}},x=(e,t)=>{let n=e,r=t.split(c),i=r.length;for(let e=0;e<i;e++){let t=r[e],i=n.nextPart.get(t);i||(i=s(),n.nextPart.set(t,i)),n=i}return n},S=e=>`isThemeGetter`in e&&e.isThemeGetter===!0,C=e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null),i=(i,a)=>{n[i]=a,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(e){let t=n[e];if(t!==void 0)return t;if((t=r[e])!==void 0)return i(e,t),t},set(e,t){e in n?n[e]=t:i(e,t)}}},w=`!`,T=`:`,ee=[],te=(e,t,n,r,i)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:i}),E=e=>{let{prefix:t,experimentalParseClassName:n}=e,r=e=>{let t=[],n=0,r=0,i=0,a,o=e.length;for(let s=0;s<o;s++){let o=e[s];if(n===0&&r===0){if(o===T){t.push(e.slice(i,s)),i=s+1;continue}if(o===`/`){a=s;continue}}o===`[`?n++:o===`]`?n--:o===`(`?r++:o===`)`&&r--}let s=t.length===0?e:e.slice(i),c=s,l=!1;s.endsWith(w)?(c=s.slice(0,-1),l=!0):s.startsWith(w)&&(c=s.slice(1),l=!0);let u=a&&a>i?a-i:void 0;return te(t,l,c,u)};if(t){let e=t+T,n=r;r=t=>t.startsWith(e)?n(t.slice(e.length)):te(ee,!1,t,void 0,!0)}if(n){let e=r;r=t=>n({className:t,parseClassName:e})}return r},ne=e=>{let t=new Map;return e.orderSensitiveModifiers.forEach((e,n)=>{t.set(e,1e6+n)}),e=>{let n=[],r=[];for(let i=0;i<e.length;i++){let a=e[i],o=a[0]===`[`,s=t.has(a);o||s?(r.length>0&&(r.sort(),n.push(...r),r=[]),n.push(a)):r.push(a)}return r.length>0&&(r.sort(),n.push(...r)),n}},D=e=>({cache:C(e.cacheSize),parseClassName:E(e),sortModifiers:ne(e),...d(e)}),O=/\s+/,k=(e,t)=>{let{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i,sortModifiers:a}=t,o=[],s=e.trim().split(O),c=``;for(let e=s.length-1;e>=0;--e){let t=s[e],{isExternal:l,modifiers:u,hasImportantModifier:d,baseClassName:f,maybePostfixModifierPosition:p}=n(t);if(l){c=t+(c.length>0?` `+c:c);continue}let m=!!p,h=r(m?f.substring(0,p):f);if(!h){if(!m){c=t+(c.length>0?` `+c:c);continue}if(h=r(f),!h){c=t+(c.length>0?` `+c:c);continue}m=!1}let g=u.length===0?``:u.length===1?u[0]:a(u).join(`:`),_=d?g+w:g,v=_+h;if(o.indexOf(v)>-1)continue;o.push(v);let y=i(h,m);for(let e=0;e<y.length;++e){let t=y[e];o.push(_+t)}c=t+(c.length>0?` `+c:c)}return c},A=(...e)=>{let t=0,n,r,i=``;for(;t<e.length;)(n=e[t++])&&(r=j(n))&&(i&&(i+=` `),i+=r);return i},j=e=>{if(typeof e==`string`)return e;let t,n=``;for(let r=0;r<e.length;r++)e[r]&&(t=j(e[r]))&&(n&&(n+=` `),n+=t);return n},M=(e,...t)=>{let n,r,i,a,o=o=>(n=D(t.reduce((e,t)=>t(e),e())),r=n.cache.get,i=n.cache.set,a=s,s(o)),s=e=>{let t=r(e);if(t)return t;let a=k(e,n);return i(e,a),a};return a=o,(...e)=>a(A(...e))},N=[],P=e=>{let t=t=>t[e]||N;return t.isThemeGetter=!0,t},re=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,ie=/^\((?:(\w[\w-]*):)?(.+)\)$/i,ae=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,oe=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,F=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,I=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,L=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,se=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,R=e=>ae.test(e),z=e=>!!e&&!Number.isNaN(Number(e)),B=e=>!!e&&Number.isInteger(Number(e)),ce=e=>e.endsWith(`%`)&&z(e.slice(0,-1)),V=e=>oe.test(e),le=()=>!0,H=e=>F.test(e)&&!I.test(e),U=()=>!1,W=e=>L.test(e),G=e=>se.test(e),ue=e=>!K(e)&&!J(e),de=e=>X(e,Ee,U),K=e=>re.test(e),q=e=>X(e,De,H),fe=e=>X(e,Oe,z),pe=e=>X(e,Ae,le),me=e=>X(e,ke,U),he=e=>X(e,we,U),ge=e=>X(e,Te,G),_e=e=>X(e,je,W),J=e=>ie.test(e),Y=e=>Z(e,De),ve=e=>Z(e,ke),ye=e=>Z(e,we),be=e=>Z(e,Ee),xe=e=>Z(e,Te),Se=e=>Z(e,je,!0),Ce=e=>Z(e,Ae,!0),X=(e,t,n)=>{let r=re.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},Z=(e,t,n=!1)=>{let r=ie.exec(e);return r?r[1]?t(r[1]):n:!1},we=e=>e===`position`||e===`percentage`,Te=e=>e===`image`||e===`url`,Ee=e=>e===`length`||e===`size`||e===`bg-size`,De=e=>e===`length`,Oe=e=>e===`number`,ke=e=>e===`family-name`,Ae=e=>e===`number`||e===`weight`,je=e=>e===`shadow`,Me=M(()=>{let e=P(`color`),t=P(`font`),n=P(`text`),r=P(`font-weight`),i=P(`tracking`),a=P(`leading`),o=P(`breakpoint`),s=P(`container`),c=P(`spacing`),l=P(`radius`),u=P(`shadow`),d=P(`inset-shadow`),f=P(`text-shadow`),p=P(`drop-shadow`),m=P(`blur`),h=P(`perspective`),g=P(`aspect`),_=P(`ease`),v=P(`animate`),y=()=>[`auto`,`avoid`,`all`,`avoid-page`,`page`,`left`,`right`,`column`],b=()=>[`center`,`top`,`bottom`,`left`,`right`,`top-left`,`left-top`,`top-right`,`right-top`,`bottom-right`,`right-bottom`,`bottom-left`,`left-bottom`],x=()=>[...b(),J,K],S=()=>[`auto`,`hidden`,`clip`,`visible`,`scroll`],C=()=>[`auto`,`contain`,`none`],w=()=>[J,K,c],T=()=>[R,`full`,`auto`,...w()],ee=()=>[B,`none`,`subgrid`,J,K],te=()=>[`auto`,{span:[`full`,B,J,K]},B,J,K],E=()=>[B,`auto`,J,K],ne=()=>[`auto`,`min`,`max`,`fr`,J,K],D=()=>[`start`,`end`,`center`,`between`,`around`,`evenly`,`stretch`,`baseline`,`center-safe`,`end-safe`],O=()=>[`start`,`end`,`center`,`stretch`,`center-safe`,`end-safe`],k=()=>[`auto`,...w()],A=()=>[R,`auto`,`full`,`dvw`,`dvh`,`lvw`,`lvh`,`svw`,`svh`,`min`,`max`,`fit`,...w()],j=()=>[R,`screen`,`full`,`dvw`,`lvw`,`svw`,`min`,`max`,`fit`,...w()],M=()=>[R,`screen`,`full`,`lh`,`dvh`,`lvh`,`svh`,`min`,`max`,`fit`,...w()],N=()=>[e,J,K],re=()=>[...b(),ye,he,{position:[J,K]}],ie=()=>[`no-repeat`,{repeat:[``,`x`,`y`,`space`,`round`]}],ae=()=>[`auto`,`cover`,`contain`,be,de,{size:[J,K]}],oe=()=>[ce,Y,q],F=()=>[``,`none`,`full`,l,J,K],I=()=>[``,z,Y,q],L=()=>[`solid`,`dashed`,`dotted`,`double`],se=()=>[`normal`,`multiply`,`screen`,`overlay`,`darken`,`lighten`,`color-dodge`,`color-burn`,`hard-light`,`soft-light`,`difference`,`exclusion`,`hue`,`saturation`,`color`,`luminosity`],H=()=>[z,ce,ye,he],U=()=>[``,`none`,m,J,K],W=()=>[`none`,z,J,K],G=()=>[`none`,z,J,K],X=()=>[z,J,K],Z=()=>[R,`full`,...w()];return{cacheSize:500,theme:{animate:[`spin`,`ping`,`pulse`,`bounce`],aspect:[`video`],blur:[V],breakpoint:[V],color:[le],container:[V],"drop-shadow":[V],ease:[`in`,`out`,`in-out`],font:[ue],"font-weight":[`thin`,`extralight`,`light`,`normal`,`medium`,`semibold`,`bold`,`extrabold`,`black`],"inset-shadow":[V],leading:[`none`,`tight`,`snug`,`normal`,`relaxed`,`loose`],perspective:[`dramatic`,`near`,`normal`,`midrange`,`distant`,`none`],radius:[V],shadow:[V],spacing:[`px`,z],text:[V],"text-shadow":[V],tracking:[`tighter`,`tight`,`normal`,`wide`,`wider`,`widest`]},classGroups:{aspect:[{aspect:[`auto`,`square`,R,K,J,g]}],container:[`container`],columns:[{columns:[z,K,J,s]}],"break-after":[{"break-after":y()}],"break-before":[{"break-before":y()}],"break-inside":[{"break-inside":[`auto`,`avoid`,`avoid-page`,`avoid-column`]}],"box-decoration":[{"box-decoration":[`slice`,`clone`]}],box:[{box:[`border`,`content`]}],display:[`block`,`inline-block`,`inline`,`flex`,`inline-flex`,`table`,`inline-table`,`table-caption`,`table-cell`,`table-column`,`table-column-group`,`table-footer-group`,`table-header-group`,`table-row-group`,`table-row`,`flow-root`,`grid`,`inline-grid`,`contents`,`list-item`,`hidden`],sr:[`sr-only`,`not-sr-only`],float:[{float:[`right`,`left`,`none`,`start`,`end`]}],clear:[{clear:[`left`,`right`,`both`,`none`,`start`,`end`]}],isolation:[`isolate`,`isolation-auto`],"object-fit":[{object:[`contain`,`cover`,`fill`,`none`,`scale-down`]}],"object-position":[{object:x()}],overflow:[{overflow:S()}],"overflow-x":[{"overflow-x":S()}],"overflow-y":[{"overflow-y":S()}],overscroll:[{overscroll:C()}],"overscroll-x":[{"overscroll-x":C()}],"overscroll-y":[{"overscroll-y":C()}],position:[`static`,`fixed`,`absolute`,`relative`,`sticky`],inset:[{inset:T()}],"inset-x":[{"inset-x":T()}],"inset-y":[{"inset-y":T()}],start:[{"inset-s":T(),start:T()}],end:[{"inset-e":T(),end:T()}],"inset-bs":[{"inset-bs":T()}],"inset-be":[{"inset-be":T()}],top:[{top:T()}],right:[{right:T()}],bottom:[{bottom:T()}],left:[{left:T()}],visibility:[`visible`,`invisible`,`collapse`],z:[{z:[B,`auto`,J,K]}],basis:[{basis:[R,`full`,`auto`,s,...w()]}],"flex-direction":[{flex:[`row`,`row-reverse`,`col`,`col-reverse`]}],"flex-wrap":[{flex:[`nowrap`,`wrap`,`wrap-reverse`]}],flex:[{flex:[z,R,`auto`,`initial`,`none`,K]}],grow:[{grow:[``,z,J,K]}],shrink:[{shrink:[``,z,J,K]}],order:[{order:[B,`first`,`last`,`none`,J,K]}],"grid-cols":[{"grid-cols":ee()}],"col-start-end":[{col:te()}],"col-start":[{"col-start":E()}],"col-end":[{"col-end":E()}],"grid-rows":[{"grid-rows":ee()}],"row-start-end":[{row:te()}],"row-start":[{"row-start":E()}],"row-end":[{"row-end":E()}],"grid-flow":[{"grid-flow":[`row`,`col`,`dense`,`row-dense`,`col-dense`]}],"auto-cols":[{"auto-cols":ne()}],"auto-rows":[{"auto-rows":ne()}],gap:[{gap:w()}],"gap-x":[{"gap-x":w()}],"gap-y":[{"gap-y":w()}],"justify-content":[{justify:[...D(),`normal`]}],"justify-items":[{"justify-items":[...O(),`normal`]}],"justify-self":[{"justify-self":[`auto`,...O()]}],"align-content":[{content:[`normal`,...D()]}],"align-items":[{items:[...O(),{baseline:[``,`last`]}]}],"align-self":[{self:[`auto`,...O(),{baseline:[``,`last`]}]}],"place-content":[{"place-content":D()}],"place-items":[{"place-items":[...O(),`baseline`]}],"place-self":[{"place-self":[`auto`,...O()]}],p:[{p:w()}],px:[{px:w()}],py:[{py:w()}],ps:[{ps:w()}],pe:[{pe:w()}],pbs:[{pbs:w()}],pbe:[{pbe:w()}],pt:[{pt:w()}],pr:[{pr:w()}],pb:[{pb:w()}],pl:[{pl:w()}],m:[{m:k()}],mx:[{mx:k()}],my:[{my:k()}],ms:[{ms:k()}],me:[{me:k()}],mbs:[{mbs:k()}],mbe:[{mbe:k()}],mt:[{mt:k()}],mr:[{mr:k()}],mb:[{mb:k()}],ml:[{ml:k()}],"space-x":[{"space-x":w()}],"space-x-reverse":[`space-x-reverse`],"space-y":[{"space-y":w()}],"space-y-reverse":[`space-y-reverse`],size:[{size:A()}],"inline-size":[{inline:[`auto`,...j()]}],"min-inline-size":[{"min-inline":[`auto`,...j()]}],"max-inline-size":[{"max-inline":[`none`,...j()]}],"block-size":[{block:[`auto`,...M()]}],"min-block-size":[{"min-block":[`auto`,...M()]}],"max-block-size":[{"max-block":[`none`,...M()]}],w:[{w:[s,`screen`,...A()]}],"min-w":[{"min-w":[s,`screen`,`none`,...A()]}],"max-w":[{"max-w":[s,`screen`,`none`,`prose`,{screen:[o]},...A()]}],h:[{h:[`screen`,`lh`,...A()]}],"min-h":[{"min-h":[`screen`,`lh`,`none`,...A()]}],"max-h":[{"max-h":[`screen`,`lh`,...A()]}],"font-size":[{text:[`base`,n,Y,q]}],"font-smoothing":[`antialiased`,`subpixel-antialiased`],"font-style":[`italic`,`not-italic`],"font-weight":[{font:[r,Ce,pe]}],"font-stretch":[{"font-stretch":[`ultra-condensed`,`extra-condensed`,`condensed`,`semi-condensed`,`normal`,`semi-expanded`,`expanded`,`extra-expanded`,`ultra-expanded`,ce,K]}],"font-family":[{font:[ve,me,t]}],"font-features":[{"font-features":[K]}],"fvn-normal":[`normal-nums`],"fvn-ordinal":[`ordinal`],"fvn-slashed-zero":[`slashed-zero`],"fvn-figure":[`lining-nums`,`oldstyle-nums`],"fvn-spacing":[`proportional-nums`,`tabular-nums`],"fvn-fraction":[`diagonal-fractions`,`stacked-fractions`],tracking:[{tracking:[i,J,K]}],"line-clamp":[{"line-clamp":[z,`none`,J,fe]}],leading:[{leading:[a,...w()]}],"list-image":[{"list-image":[`none`,J,K]}],"list-style-position":[{list:[`inside`,`outside`]}],"list-style-type":[{list:[`disc`,`decimal`,`none`,J,K]}],"text-alignment":[{text:[`left`,`center`,`right`,`justify`,`start`,`end`]}],"placeholder-color":[{placeholder:N()}],"text-color":[{text:N()}],"text-decoration":[`underline`,`overline`,`line-through`,`no-underline`],"text-decoration-style":[{decoration:[...L(),`wavy`]}],"text-decoration-thickness":[{decoration:[z,`from-font`,`auto`,J,q]}],"text-decoration-color":[{decoration:N()}],"underline-offset":[{"underline-offset":[z,`auto`,J,K]}],"text-transform":[`uppercase`,`lowercase`,`capitalize`,`normal-case`],"text-overflow":[`truncate`,`text-ellipsis`,`text-clip`],"text-wrap":[{text:[`wrap`,`nowrap`,`balance`,`pretty`]}],indent:[{indent:w()}],"vertical-align":[{align:[`baseline`,`top`,`middle`,`bottom`,`text-top`,`text-bottom`,`sub`,`super`,J,K]}],whitespace:[{whitespace:[`normal`,`nowrap`,`pre`,`pre-line`,`pre-wrap`,`break-spaces`]}],break:[{break:[`normal`,`words`,`all`,`keep`]}],wrap:[{wrap:[`break-word`,`anywhere`,`normal`]}],hyphens:[{hyphens:[`none`,`manual`,`auto`]}],content:[{content:[`none`,J,K]}],"bg-attachment":[{bg:[`fixed`,`local`,`scroll`]}],"bg-clip":[{"bg-clip":[`border`,`padding`,`content`,`text`]}],"bg-origin":[{"bg-origin":[`border`,`padding`,`content`]}],"bg-position":[{bg:re()}],"bg-repeat":[{bg:ie()}],"bg-size":[{bg:ae()}],"bg-image":[{bg:[`none`,{linear:[{to:[`t`,`tr`,`r`,`br`,`b`,`bl`,`l`,`tl`]},B,J,K],radial:[``,J,K],conic:[B,J,K]},xe,ge]}],"bg-color":[{bg:N()}],"gradient-from-pos":[{from:oe()}],"gradient-via-pos":[{via:oe()}],"gradient-to-pos":[{to:oe()}],"gradient-from":[{from:N()}],"gradient-via":[{via:N()}],"gradient-to":[{to:N()}],rounded:[{rounded:F()}],"rounded-s":[{"rounded-s":F()}],"rounded-e":[{"rounded-e":F()}],"rounded-t":[{"rounded-t":F()}],"rounded-r":[{"rounded-r":F()}],"rounded-b":[{"rounded-b":F()}],"rounded-l":[{"rounded-l":F()}],"rounded-ss":[{"rounded-ss":F()}],"rounded-se":[{"rounded-se":F()}],"rounded-ee":[{"rounded-ee":F()}],"rounded-es":[{"rounded-es":F()}],"rounded-tl":[{"rounded-tl":F()}],"rounded-tr":[{"rounded-tr":F()}],"rounded-br":[{"rounded-br":F()}],"rounded-bl":[{"rounded-bl":F()}],"border-w":[{border:I()}],"border-w-x":[{"border-x":I()}],"border-w-y":[{"border-y":I()}],"border-w-s":[{"border-s":I()}],"border-w-e":[{"border-e":I()}],"border-w-bs":[{"border-bs":I()}],"border-w-be":[{"border-be":I()}],"border-w-t":[{"border-t":I()}],"border-w-r":[{"border-r":I()}],"border-w-b":[{"border-b":I()}],"border-w-l":[{"border-l":I()}],"divide-x":[{"divide-x":I()}],"divide-x-reverse":[`divide-x-reverse`],"divide-y":[{"divide-y":I()}],"divide-y-reverse":[`divide-y-reverse`],"border-style":[{border:[...L(),`hidden`,`none`]}],"divide-style":[{divide:[...L(),`hidden`,`none`]}],"border-color":[{border:N()}],"border-color-x":[{"border-x":N()}],"border-color-y":[{"border-y":N()}],"border-color-s":[{"border-s":N()}],"border-color-e":[{"border-e":N()}],"border-color-bs":[{"border-bs":N()}],"border-color-be":[{"border-be":N()}],"border-color-t":[{"border-t":N()}],"border-color-r":[{"border-r":N()}],"border-color-b":[{"border-b":N()}],"border-color-l":[{"border-l":N()}],"divide-color":[{divide:N()}],"outline-style":[{outline:[...L(),`none`,`hidden`]}],"outline-offset":[{"outline-offset":[z,J,K]}],"outline-w":[{outline:[``,z,Y,q]}],"outline-color":[{outline:N()}],shadow:[{shadow:[``,`none`,u,Se,_e]}],"shadow-color":[{shadow:N()}],"inset-shadow":[{"inset-shadow":[`none`,d,Se,_e]}],"inset-shadow-color":[{"inset-shadow":N()}],"ring-w":[{ring:I()}],"ring-w-inset":[`ring-inset`],"ring-color":[{ring:N()}],"ring-offset-w":[{"ring-offset":[z,q]}],"ring-offset-color":[{"ring-offset":N()}],"inset-ring-w":[{"inset-ring":I()}],"inset-ring-color":[{"inset-ring":N()}],"text-shadow":[{"text-shadow":[`none`,f,Se,_e]}],"text-shadow-color":[{"text-shadow":N()}],opacity:[{opacity:[z,J,K]}],"mix-blend":[{"mix-blend":[...se(),`plus-darker`,`plus-lighter`]}],"bg-blend":[{"bg-blend":se()}],"mask-clip":[{"mask-clip":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]},`mask-no-clip`],"mask-composite":[{mask:[`add`,`subtract`,`intersect`,`exclude`]}],"mask-image-linear-pos":[{"mask-linear":[z]}],"mask-image-linear-from-pos":[{"mask-linear-from":H()}],"mask-image-linear-to-pos":[{"mask-linear-to":H()}],"mask-image-linear-from-color":[{"mask-linear-from":N()}],"mask-image-linear-to-color":[{"mask-linear-to":N()}],"mask-image-t-from-pos":[{"mask-t-from":H()}],"mask-image-t-to-pos":[{"mask-t-to":H()}],"mask-image-t-from-color":[{"mask-t-from":N()}],"mask-image-t-to-color":[{"mask-t-to":N()}],"mask-image-r-from-pos":[{"mask-r-from":H()}],"mask-image-r-to-pos":[{"mask-r-to":H()}],"mask-image-r-from-color":[{"mask-r-from":N()}],"mask-image-r-to-color":[{"mask-r-to":N()}],"mask-image-b-from-pos":[{"mask-b-from":H()}],"mask-image-b-to-pos":[{"mask-b-to":H()}],"mask-image-b-from-color":[{"mask-b-from":N()}],"mask-image-b-to-color":[{"mask-b-to":N()}],"mask-image-l-from-pos":[{"mask-l-from":H()}],"mask-image-l-to-pos":[{"mask-l-to":H()}],"mask-image-l-from-color":[{"mask-l-from":N()}],"mask-image-l-to-color":[{"mask-l-to":N()}],"mask-image-x-from-pos":[{"mask-x-from":H()}],"mask-image-x-to-pos":[{"mask-x-to":H()}],"mask-image-x-from-color":[{"mask-x-from":N()}],"mask-image-x-to-color":[{"mask-x-to":N()}],"mask-image-y-from-pos":[{"mask-y-from":H()}],"mask-image-y-to-pos":[{"mask-y-to":H()}],"mask-image-y-from-color":[{"mask-y-from":N()}],"mask-image-y-to-color":[{"mask-y-to":N()}],"mask-image-radial":[{"mask-radial":[J,K]}],"mask-image-radial-from-pos":[{"mask-radial-from":H()}],"mask-image-radial-to-pos":[{"mask-radial-to":H()}],"mask-image-radial-from-color":[{"mask-radial-from":N()}],"mask-image-radial-to-color":[{"mask-radial-to":N()}],"mask-image-radial-shape":[{"mask-radial":[`circle`,`ellipse`]}],"mask-image-radial-size":[{"mask-radial":[{closest:[`side`,`corner`],farthest:[`side`,`corner`]}]}],"mask-image-radial-pos":[{"mask-radial-at":b()}],"mask-image-conic-pos":[{"mask-conic":[z]}],"mask-image-conic-from-pos":[{"mask-conic-from":H()}],"mask-image-conic-to-pos":[{"mask-conic-to":H()}],"mask-image-conic-from-color":[{"mask-conic-from":N()}],"mask-image-conic-to-color":[{"mask-conic-to":N()}],"mask-mode":[{mask:[`alpha`,`luminance`,`match`]}],"mask-origin":[{"mask-origin":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]}],"mask-position":[{mask:re()}],"mask-repeat":[{mask:ie()}],"mask-size":[{mask:ae()}],"mask-type":[{"mask-type":[`alpha`,`luminance`]}],"mask-image":[{mask:[`none`,J,K]}],filter:[{filter:[``,`none`,J,K]}],blur:[{blur:U()}],brightness:[{brightness:[z,J,K]}],contrast:[{contrast:[z,J,K]}],"drop-shadow":[{"drop-shadow":[``,`none`,p,Se,_e]}],"drop-shadow-color":[{"drop-shadow":N()}],grayscale:[{grayscale:[``,z,J,K]}],"hue-rotate":[{"hue-rotate":[z,J,K]}],invert:[{invert:[``,z,J,K]}],saturate:[{saturate:[z,J,K]}],sepia:[{sepia:[``,z,J,K]}],"backdrop-filter":[{"backdrop-filter":[``,`none`,J,K]}],"backdrop-blur":[{"backdrop-blur":U()}],"backdrop-brightness":[{"backdrop-brightness":[z,J,K]}],"backdrop-contrast":[{"backdrop-contrast":[z,J,K]}],"backdrop-grayscale":[{"backdrop-grayscale":[``,z,J,K]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[z,J,K]}],"backdrop-invert":[{"backdrop-invert":[``,z,J,K]}],"backdrop-opacity":[{"backdrop-opacity":[z,J,K]}],"backdrop-saturate":[{"backdrop-saturate":[z,J,K]}],"backdrop-sepia":[{"backdrop-sepia":[``,z,J,K]}],"border-collapse":[{border:[`collapse`,`separate`]}],"border-spacing":[{"border-spacing":w()}],"border-spacing-x":[{"border-spacing-x":w()}],"border-spacing-y":[{"border-spacing-y":w()}],"table-layout":[{table:[`auto`,`fixed`]}],caption:[{caption:[`top`,`bottom`]}],transition:[{transition:[``,`all`,`colors`,`opacity`,`shadow`,`transform`,`none`,J,K]}],"transition-behavior":[{transition:[`normal`,`discrete`]}],duration:[{duration:[z,`initial`,J,K]}],ease:[{ease:[`linear`,`initial`,_,J,K]}],delay:[{delay:[z,J,K]}],animate:[{animate:[`none`,v,J,K]}],backface:[{backface:[`hidden`,`visible`]}],perspective:[{perspective:[h,J,K]}],"perspective-origin":[{"perspective-origin":x()}],rotate:[{rotate:W()}],"rotate-x":[{"rotate-x":W()}],"rotate-y":[{"rotate-y":W()}],"rotate-z":[{"rotate-z":W()}],scale:[{scale:G()}],"scale-x":[{"scale-x":G()}],"scale-y":[{"scale-y":G()}],"scale-z":[{"scale-z":G()}],"scale-3d":[`scale-3d`],skew:[{skew:X()}],"skew-x":[{"skew-x":X()}],"skew-y":[{"skew-y":X()}],transform:[{transform:[J,K,``,`none`,`gpu`,`cpu`]}],"transform-origin":[{origin:x()}],"transform-style":[{transform:[`3d`,`flat`]}],translate:[{translate:Z()}],"translate-x":[{"translate-x":Z()}],"translate-y":[{"translate-y":Z()}],"translate-z":[{"translate-z":Z()}],"translate-none":[`translate-none`],accent:[{accent:N()}],appearance:[{appearance:[`none`,`auto`]}],"caret-color":[{caret:N()}],"color-scheme":[{scheme:[`normal`,`dark`,`light`,`light-dark`,`only-dark`,`only-light`]}],cursor:[{cursor:[`auto`,`default`,`pointer`,`wait`,`text`,`move`,`help`,`not-allowed`,`none`,`context-menu`,`progress`,`cell`,`crosshair`,`vertical-text`,`alias`,`copy`,`no-drop`,`grab`,`grabbing`,`all-scroll`,`col-resize`,`row-resize`,`n-resize`,`e-resize`,`s-resize`,`w-resize`,`ne-resize`,`nw-resize`,`se-resize`,`sw-resize`,`ew-resize`,`ns-resize`,`nesw-resize`,`nwse-resize`,`zoom-in`,`zoom-out`,J,K]}],"field-sizing":[{"field-sizing":[`fixed`,`content`]}],"pointer-events":[{"pointer-events":[`auto`,`none`]}],resize:[{resize:[`none`,``,`y`,`x`]}],"scroll-behavior":[{scroll:[`auto`,`smooth`]}],"scroll-m":[{"scroll-m":w()}],"scroll-mx":[{"scroll-mx":w()}],"scroll-my":[{"scroll-my":w()}],"scroll-ms":[{"scroll-ms":w()}],"scroll-me":[{"scroll-me":w()}],"scroll-mbs":[{"scroll-mbs":w()}],"scroll-mbe":[{"scroll-mbe":w()}],"scroll-mt":[{"scroll-mt":w()}],"scroll-mr":[{"scroll-mr":w()}],"scroll-mb":[{"scroll-mb":w()}],"scroll-ml":[{"scroll-ml":w()}],"scroll-p":[{"scroll-p":w()}],"scroll-px":[{"scroll-px":w()}],"scroll-py":[{"scroll-py":w()}],"scroll-ps":[{"scroll-ps":w()}],"scroll-pe":[{"scroll-pe":w()}],"scroll-pbs":[{"scroll-pbs":w()}],"scroll-pbe":[{"scroll-pbe":w()}],"scroll-pt":[{"scroll-pt":w()}],"scroll-pr":[{"scroll-pr":w()}],"scroll-pb":[{"scroll-pb":w()}],"scroll-pl":[{"scroll-pl":w()}],"snap-align":[{snap:[`start`,`end`,`center`,`align-none`]}],"snap-stop":[{snap:[`normal`,`always`]}],"snap-type":[{snap:[`none`,`x`,`y`,`both`]}],"snap-strictness":[{snap:[`mandatory`,`proximity`]}],touch:[{touch:[`auto`,`none`,`manipulation`]}],"touch-x":[{"touch-pan":[`x`,`left`,`right`]}],"touch-y":[{"touch-pan":[`y`,`up`,`down`]}],"touch-pz":[`touch-pinch-zoom`],select:[{select:[`none`,`text`,`all`,`auto`]}],"will-change":[{"will-change":[`auto`,`scroll`,`contents`,`transform`,J,K]}],fill:[{fill:[`none`,...N()]}],"stroke-w":[{stroke:[z,Y,q,fe]}],stroke:[{stroke:[`none`,...N()]}],"forced-color-adjust":[{"forced-color-adjust":[`auto`,`none`]}]},conflictingClassGroups:{overflow:[`overflow-x`,`overflow-y`],overscroll:[`overscroll-x`,`overscroll-y`],inset:[`inset-x`,`inset-y`,`inset-bs`,`inset-be`,`start`,`end`,`top`,`right`,`bottom`,`left`],"inset-x":[`right`,`left`],"inset-y":[`top`,`bottom`],flex:[`basis`,`grow`,`shrink`],gap:[`gap-x`,`gap-y`],p:[`px`,`py`,`ps`,`pe`,`pbs`,`pbe`,`pt`,`pr`,`pb`,`pl`],px:[`pr`,`pl`],py:[`pt`,`pb`],m:[`mx`,`my`,`ms`,`me`,`mbs`,`mbe`,`mt`,`mr`,`mb`,`ml`],mx:[`mr`,`ml`],my:[`mt`,`mb`],size:[`w`,`h`],"font-size":[`leading`],"fvn-normal":[`fvn-ordinal`,`fvn-slashed-zero`,`fvn-figure`,`fvn-spacing`,`fvn-fraction`],"fvn-ordinal":[`fvn-normal`],"fvn-slashed-zero":[`fvn-normal`],"fvn-figure":[`fvn-normal`],"fvn-spacing":[`fvn-normal`],"fvn-fraction":[`fvn-normal`],"line-clamp":[`display`,`overflow`],rounded:[`rounded-s`,`rounded-e`,`rounded-t`,`rounded-r`,`rounded-b`,`rounded-l`,`rounded-ss`,`rounded-se`,`rounded-ee`,`rounded-es`,`rounded-tl`,`rounded-tr`,`rounded-br`,`rounded-bl`],"rounded-s":[`rounded-ss`,`rounded-es`],"rounded-e":[`rounded-se`,`rounded-ee`],"rounded-t":[`rounded-tl`,`rounded-tr`],"rounded-r":[`rounded-tr`,`rounded-br`],"rounded-b":[`rounded-br`,`rounded-bl`],"rounded-l":[`rounded-tl`,`rounded-bl`],"border-spacing":[`border-spacing-x`,`border-spacing-y`],"border-w":[`border-w-x`,`border-w-y`,`border-w-s`,`border-w-e`,`border-w-bs`,`border-w-be`,`border-w-t`,`border-w-r`,`border-w-b`,`border-w-l`],"border-w-x":[`border-w-r`,`border-w-l`],"border-w-y":[`border-w-t`,`border-w-b`],"border-color":[`border-color-x`,`border-color-y`,`border-color-s`,`border-color-e`,`border-color-bs`,`border-color-be`,`border-color-t`,`border-color-r`,`border-color-b`,`border-color-l`],"border-color-x":[`border-color-r`,`border-color-l`],"border-color-y":[`border-color-t`,`border-color-b`],translate:[`translate-x`,`translate-y`,`translate-none`],"translate-none":[`translate`,`translate-x`,`translate-y`,`translate-z`],"scroll-m":[`scroll-mx`,`scroll-my`,`scroll-ms`,`scroll-me`,`scroll-mbs`,`scroll-mbe`,`scroll-mt`,`scroll-mr`,`scroll-mb`,`scroll-ml`],"scroll-mx":[`scroll-mr`,`scroll-ml`],"scroll-my":[`scroll-mt`,`scroll-mb`],"scroll-p":[`scroll-px`,`scroll-py`,`scroll-ps`,`scroll-pe`,`scroll-pbs`,`scroll-pbe`,`scroll-pt`,`scroll-pr`,`scroll-pb`,`scroll-pl`],"scroll-px":[`scroll-pr`,`scroll-pl`],"scroll-py":[`scroll-pt`,`scroll-pb`],touch:[`touch-x`,`touch-y`,`touch-pz`],"touch-x":[`touch`],"touch-y":[`touch`],"touch-pz":[`touch`]},conflictingClassGroupModifiers:{"font-size":[`leading`]},orderSensitiveModifiers:[`*`,`**`,`after`,`backdrop`,`before`,`details-content`,`file`,`first-letter`,`first-line`,`marker`,`placeholder`,`selection`]}});function Ne(...e){return Me(t(e))}function Pe(){return!!i()}function Fe(e,t){return e?``:t}var Q=e(n()),Ie=(e,t,n,r)=>{let i=[n,{code:t,...r||{}}];if(e?.services?.logger?.forward)return e.services.logger.forward(i,`warn`,`react-i18next::`,!0);$(i[0])&&(i[0]=`react-i18next:: ${i[0]}`),e?.services?.logger?.warn?e.services.logger.warn(...i):console?.warn&&console.warn(...i)},Le={},Re=(e,t,n,r)=>{$(n)&&Le[n]||($(n)&&(Le[n]=new Date),Ie(e,t,n,r))},ze=(e,t)=>()=>{if(e.isInitialized)t();else{let n=()=>{setTimeout(()=>{e.off(`initialized`,n)},0),t()};e.on(`initialized`,n)}},Be=(e,t,n)=>{e.loadNamespaces(t,ze(e,n))},Ve=(e,t,n,r)=>{if($(n)&&(n=[n]),e.options.preload&&e.options.preload.indexOf(t)>-1)return Be(e,n,r);n.forEach(t=>{e.options.ns.indexOf(t)<0&&e.options.ns.push(t)}),e.loadLanguages(t,ze(e,r))},He=(e,t,n={})=>!t.languages||!t.languages.length?(Re(t,`NO_LANGUAGES`,`i18n.languages were undefined or empty`,{languages:t.languages}),!0):t.hasLoadedNamespace(e,{lng:n.lng,precheck:(t,r)=>{if(n.bindI18n&&n.bindI18n.indexOf(`languageChanging`)>-1&&t.services.backendConnector.backend&&t.isLanguageChangingTo&&!r(t.isLanguageChangingTo,e))return!1}}),$=e=>typeof e==`string`,Ue=e=>typeof e==`object`&&!!e,We=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,Ge={"&amp;":`&`,"&#38;":`&`,"&lt;":`<`,"&#60;":`<`,"&gt;":`>`,"&#62;":`>`,"&apos;":`'`,"&#39;":`'`,"&quot;":`"`,"&#34;":`"`,"&nbsp;":` `,"&#160;":` `,"&copy;":`©`,"&#169;":`©`,"&reg;":`®`,"&#174;":`®`,"&hellip;":`…`,"&#8230;":`…`,"&#x2F;":`/`,"&#47;":`/`},Ke=e=>Ge[e],qe={bindI18n:`languageChanged`,bindI18nStore:``,transEmptyNodeValue:``,transSupportBasicHtmlNodes:!0,transWrapTextNodes:``,transKeepBasicHtmlNodesFor:[`br`,`strong`,`i`,`p`],useSuspense:!0,unescape:e=>e.replace(We,Ke),transDefaultProps:void 0},Je=(e={})=>{qe={...qe,...e}},Ye=()=>qe,Xe,Ze=e=>{Xe=e},Qe=()=>Xe,$e={type:`3rdParty`,init(e){Je(e.options.react),Ze(e)}},et=(0,Q.createContext)(),tt=class{constructor(){this.usedNamespaces={}}addUsedNamespaces(e){e.forEach(e=>{this.usedNamespaces[e]||(this.usedNamespaces[e]=!0)})}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}},nt=r(),rt={t:(e,t)=>{if($(t))return t;if(Ue(t)&&$(t.defaultValue))return t.defaultValue;if(typeof e==`function`)return``;if(Array.isArray(e)){let t=e[e.length-1];return typeof t==`function`?``:t}return e},ready:!1},it=()=>()=>{},at=(e,t={})=>{let{i18n:n}=t,{i18n:r,defaultNS:i}=(0,Q.useContext)(et)||{},a=n||r||Qe();a&&!a.reportNamespaces&&(a.reportNamespaces=new tt),a||Re(a,`NO_I18NEXT_INSTANCE`,`useTranslation: You will need to pass in an i18next instance by using initReactI18next`);let o=(0,Q.useMemo)(()=>({...Ye(),...a?.options?.react,...t}),[a,t]),{useSuspense:s,keyPrefix:c}=o,l=e||i||a?.options?.defaultNS,u=$(l)?[l]:l||[`translation`],d=(0,Q.useMemo)(()=>u,u);a?.reportNamespaces?.addUsedNamespaces?.(d);let f=(0,Q.useRef)(0),p=(0,Q.useCallback)(e=>{if(!a)return it;let{bindI18n:t,bindI18nStore:n}=o,r=()=>{f.current+=1,e()};return t&&a.on(t,r),n&&a.store.on(n,r),()=>{t&&t.split(` `).forEach(e=>a.off(e,r)),n&&n.split(` `).forEach(e=>a.store.off(e,r))}},[a,o]),m=(0,Q.useRef)(),h=(0,Q.useCallback)(()=>{if(!a)return rt;let e=!!(a.isInitialized||a.initializedStoreOnce)&&d.every(e=>He(e,a,o)),n=t.lng||a.language,r=f.current,i=m.current;if(i&&i.ready===e&&i.lng===n&&i.keyPrefix===c&&i.revision===r)return i;let s={t:a.getFixedT(n,o.nsMode===`fallback`?d:d[0],c),ready:e,lng:n,keyPrefix:c,revision:r};return m.current=s,s},[a,d,c,o,t.lng]),[g,_]=(0,Q.useState)(0),{t:v,ready:y}=(0,nt.useSyncExternalStore)(p,h,h);(0,Q.useEffect)(()=>{if(a&&!y&&!s){let e=()=>_(e=>e+1);t.lng?Ve(a,t.lng,d,e):Be(a,d,e)}},[a,t.lng,d,y,s,g]);let b=a||{},x=(0,Q.useRef)(null),S=(0,Q.useRef)(),C=e=>{let t=Object.getOwnPropertyDescriptors(e);t.__original&&delete t.__original;let n=Object.create(Object.getPrototypeOf(e),t);if(!Object.prototype.hasOwnProperty.call(n,`__original`))try{Object.defineProperty(n,`__original`,{value:e,writable:!1,enumerable:!1,configurable:!1})}catch{}return n},w=(0,Q.useMemo)(()=>{let e=b,t=e?.language,n=e;e&&(x.current&&x.current.__original===e&&S.current===t?n=x.current:(n=C(e),x.current=n,S.current=t));let r=!y&&!s?(...e)=>(Re(a,`USE_T_BEFORE_READY`,`useTranslation: t was called before ready. When using useSuspense: false, make sure to check the ready flag before using t.`),v(...e)):v,i=[r,n,y];return i.t=r,i.i18n=n,i.ready=y,i},[v,b,y,b.resolvedLanguage,b.language,b.languages]);if(a&&s&&!y)throw new Promise(e=>{let n=()=>e();t.lng?Ve(a,t.lng,d,n):Be(a,d,n)});return w};export{Ne as a,Pe as i,$e as n,Fe as r,at as t};
package/dist/index.html CHANGED
@@ -8,17 +8,36 @@
8
8
  <link rel="icon" type="image/png" sizes="256x256" href="/favicon.png" />
9
9
  <link rel="shortcut icon" href="/favicon.png" />
10
10
  <link rel="apple-touch-icon" href="/favicon.png" />
11
- <script type="module" crossorigin src="/assets/index-CMtAn7c8.js"></script>
11
+ <script type="module" crossorigin src="/assets/index-D6_2fCBR.js"></script>
12
12
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-COnpUsM8.js">
13
13
  <link rel="modulepreload" crossorigin href="/assets/charts-vendor-CiBqdKXh.js">
14
14
  <link rel="modulepreload" crossorigin href="/assets/react-vendor-0R1rd57Z.js">
15
- <link rel="modulepreload" crossorigin href="/assets/motion-vendor-BXI2L__C.js">
16
- <link rel="modulepreload" crossorigin href="/assets/ui-vendor-BGjRFQGY.js">
17
- <link rel="modulepreload" crossorigin href="/assets/icons-vendor-z59La6A4.js">
18
- <link rel="modulepreload" crossorigin href="/assets/dialog-CA-ZSHjK.js">
19
- <link rel="modulepreload" crossorigin href="/assets/button-B26tLVFw.js">
20
- <link rel="modulepreload" crossorigin href="/assets/CustomTooltip-CdIOw3Ep.js">
21
- <link rel="stylesheet" crossorigin href="/assets/index-BkGSNAne.css">
15
+ <link rel="modulepreload" crossorigin href="/assets/motion-vendor-BNFhNARW.js">
16
+ <link rel="modulepreload" crossorigin href="/assets/ui-vendor-DOI7LsxH.js">
17
+ <link rel="modulepreload" crossorigin href="/assets/useTranslation-JH30oWEP.js">
18
+ <link rel="modulepreload" crossorigin href="/assets/button-olcuyddH.js">
19
+ <link rel="modulepreload" crossorigin href="/assets/i18n-D1WJ4-W9.js">
20
+ <link rel="modulepreload" crossorigin href="/assets/icons-vendor-CIvT_-Pb.js">
21
+ <link rel="modulepreload" crossorigin href="/assets/model-utils-BIvGAFGz.js">
22
+ <link rel="modulepreload" crossorigin href="/assets/provider-limits-BgKrr7k7.js">
23
+ <link rel="modulepreload" crossorigin href="/assets/app-settings-EFIYxqQU.js">
24
+ <link rel="modulepreload" crossorigin href="/assets/card-CskYMXga.js">
25
+ <link rel="modulepreload" crossorigin href="/assets/formatters-BzLLk0br.js">
26
+ <link rel="modulepreload" crossorigin href="/assets/InfoButton-CyA48Vlx.js">
27
+ <link rel="modulepreload" crossorigin href="/assets/MetricCard-CLFpH1l1.js">
28
+ <link rel="modulepreload" crossorigin href="/assets/chart-theme-BdE8bEiN.js">
29
+ <link rel="modulepreload" crossorigin href="/assets/dialog-D4LfH66U.js">
30
+ <link rel="modulepreload" crossorigin href="/assets/ChartCard-CS4Kbe6r.js">
31
+ <link rel="modulepreload" crossorigin href="/assets/ChartLegend-Vzg_GmF-.js">
32
+ <link rel="modulepreload" crossorigin href="/assets/CustomTooltip-CEd8U-a3.js">
33
+ <link rel="modulepreload" crossorigin href="/assets/AnimatedBarFill-Da354-1y.js">
34
+ <link rel="modulepreload" crossorigin href="/assets/InfoHeading-CFbl45C9.js">
35
+ <link rel="modulepreload" crossorigin href="/assets/formatted-value-DuGw8WPX.js">
36
+ <link rel="modulepreload" crossorigin href="/assets/section-header-KpKzq-Qa.js">
37
+ <link rel="modulepreload" crossorigin href="/assets/calculations-BJw_4KdI.js">
38
+ <link rel="modulepreload" crossorigin href="/assets/constants-DOCA3QtR.js">
39
+ <link rel="modulepreload" crossorigin href="/assets/help-content-Cuf5l3_6.js">
40
+ <link rel="stylesheet" crossorigin href="/assets/index-8kk0H-lQ.css">
22
41
  </head>
23
42
  <body>
24
43
  <div id="root"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@roastcodes/ttdash",
3
- "version": "6.2.0",
3
+ "version": "6.2.2",
4
4
  "description": "Local-first dashboard and CLI for toktrack usage data",
5
5
  "main": "server.js",
6
6
  "repository": {
@@ -21,6 +21,7 @@
21
21
  "format": "prettier . --write",
22
22
  "format:check": "prettier . --check",
23
23
  "lint": "eslint .",
24
+ "lint:docstrings": "eslint src server.js usage-normalizer.js shared --ext .ts,.tsx,.js,.d.ts",
24
25
  "lint:fix": "eslint . --fix",
25
26
  "preview": "vite preview",
26
27
  "start": "node server.js",
@@ -34,10 +35,10 @@
34
35
  "test:all": "npm run test:unit && npm run test:e2e",
35
36
  "docs:screenshots": "node scripts/capture-readme-screenshots.js",
36
37
  "pack:dry-run": "npm pack --dry-run",
37
- "verify": "npm run format:check && npm run lint && tsc --noEmit && npm run test:unit && npm run build:app && npm run verify:package",
38
+ "verify": "npm run format:check && npm run lint && npm run lint:docstrings && tsc --noEmit && npm run test:unit && npm run build:app && npm run verify:package",
38
39
  "verify:package": "node scripts/verify-package.js",
39
40
  "verify:registry-install": "node scripts/verify-registry-install.js",
40
- "verify:release": "npm run format:check && npm run lint && tsc --noEmit && npm run test:unit:coverage && npm run build:app && npm run verify:package",
41
+ "verify:release": "npm run format:check && npm run lint && npm run lint:docstrings && tsc --noEmit && npm run test:unit:coverage && npm run build:app && npm run verify:package",
41
42
  "prepare": "npm run build:app"
42
43
  },
43
44
  "files": [
@@ -87,26 +88,35 @@
87
88
  "cmdk": "^1.1.1",
88
89
  "eslint": "^9.39.4",
89
90
  "eslint-config-prettier": "^10.1.8",
91
+ "eslint-import-resolver-typescript": "^4.4.4",
92
+ "eslint-plugin-import-x": "^4.16.2",
93
+ "eslint-plugin-jest-dom": "^5.5.0",
94
+ "eslint-plugin-jsdoc": "^62.9.0",
95
+ "eslint-plugin-jsx-a11y": "^6.10.2",
96
+ "eslint-plugin-playwright": "^2.10.1",
97
+ "eslint-plugin-react": "^7.37.5",
90
98
  "eslint-plugin-react-hooks": "^7.0.1",
99
+ "eslint-plugin-testing-library": "^7.16.2",
91
100
  "framer-motion": "^12.6.5",
92
101
  "globals": "^17.5.0",
93
102
  "jsdom": "^29.0.2",
94
103
  "lucide-react": "^1.7.0",
95
104
  "prettier": "^3.8.2",
105
+ "prettier-plugin-tailwindcss": "^0.7.2",
96
106
  "react": "^19.2.4",
97
107
  "react-dom": "^19.2.4",
98
108
  "recharts": "^3.8.1",
99
109
  "tailwind-merge": "^3.0.2",
100
110
  "tailwindcss": "^4.1.3",
101
111
  "typescript": "^6.0.2",
102
- "typescript-eslint": "^8.58.1",
112
+ "typescript-eslint": "^8.58.2",
103
113
  "vite": "^8.0.8",
104
114
  "vitest": "^4.1.3"
105
115
  },
106
116
  "dependencies": {
107
117
  "cross-spawn": "^7.0.6",
108
118
  "i18next": "^26.0.3",
109
- "react-i18next": "^17.0.2",
119
+ "react-i18next": "^17.0.3",
110
120
  "react-is": "^19.2.4"
111
121
  }
112
122
  }
@@ -1,4 +1,4 @@
1
- const fs = require('fs');
1
+ const fsPromises = require('fs/promises');
2
2
  const os = require('os');
3
3
  const path = require('path');
4
4
  const { spawn } = require('child_process');
@@ -14,8 +14,8 @@ function ensureTypstInstalled() {
14
14
  });
15
15
  }
16
16
 
17
- function writeTextFile(filePath, content) {
18
- fs.writeFileSync(filePath, content, 'utf8');
17
+ async function writeTextFile(filePath, content) {
18
+ await fsPromises.writeFile(filePath, content, 'utf8');
19
19
  }
20
20
 
21
21
  function compileTypst(workingDir, typPath, pdfPath) {
@@ -387,29 +387,31 @@ async function generatePdfReport(allDailyData, options = {}) {
387
387
  throw new Error('No data available for the report.');
388
388
  }
389
389
 
390
- const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'ttdash-report-'));
390
+ const tempDir = await fsPromises.mkdtemp(path.join(os.tmpdir(), 'ttdash-report-'));
391
391
  const typPath = path.join(tempDir, 'report.typ');
392
392
  const pdfPath = path.join(tempDir, 'report.pdf');
393
393
  const jsonPath = path.join(tempDir, 'report.json');
394
394
 
395
395
  try {
396
- writeTextFile(typPath, buildTemplate());
397
- writeTextFile(jsonPath, JSON.stringify(reportData, null, 2));
396
+ await writeTextFile(typPath, buildTemplate());
397
+ await writeTextFile(jsonPath, JSON.stringify(reportData, null, 2));
398
398
 
399
399
  const charts = createChartAssets(reportData);
400
- for (const [filename, content] of Object.entries(charts)) {
401
- writeTextFile(path.join(tempDir, filename), content);
402
- }
400
+ await Promise.all(
401
+ Object.entries(charts).map(([filename, content]) =>
402
+ writeTextFile(path.join(tempDir, filename), content),
403
+ ),
404
+ );
403
405
 
404
406
  await compileTypst(tempDir, typPath, pdfPath);
405
407
 
406
408
  return {
407
- buffer: fs.readFileSync(pdfPath),
409
+ buffer: await fsPromises.readFile(pdfPath),
408
410
  filename: `ttdash-report-${new Date().toISOString().slice(0, 10)}.pdf`,
409
411
  reportData,
410
412
  };
411
413
  } finally {
412
- fs.rmSync(tempDir, { recursive: true, force: true });
414
+ await fsPromises.rm(tempDir, { recursive: true, force: true });
413
415
  }
414
416
  }
415
417