pi-mega-compact 0.20.19 → 0.20.21

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 (100) hide show
  1. package/dist/config/vector-cortex-vc8c.js +31 -0
  2. package/dist/config/vector-cortex.js +5 -0
  3. package/dist/config.js +1 -1
  4. package/dist/extensions/dashboard-server/api-contracts/vector-cortex-platform.js +12 -0
  5. package/dist/extensions/dashboard-server/route-dispatch.js +6 -0
  6. package/dist/extensions/dashboard-server/routes-rag-settings-vector-cortex.js +2 -1
  7. package/dist/extensions/dashboard-server/routes-vector-cortex-platform.js +42 -0
  8. package/dist/src/config/vector-cortex-vc8c.js +31 -0
  9. package/dist/src/config/vector-cortex.js +5 -0
  10. package/dist/src/config.js +1 -1
  11. package/dist/src/vector-cortex/cache/_diagnostics-fixture.js +79 -5
  12. package/dist/src/vector-cortex/cache/diagnostics.js +17 -8
  13. package/dist/src/vector-cortex/controller/_adaptive-fixture.js +126 -0
  14. package/dist/src/vector-cortex/controller/policy.js +1 -1
  15. package/dist/src/vector-cortex/migrations/request-hash-v2-ops.js +23 -7
  16. package/dist/src/vector-cortex/platform/cross-read.js +98 -0
  17. package/dist/src/vector-cortex/platform/emit.js +54 -0
  18. package/dist/src/vector-cortex/platform/select.js +104 -0
  19. package/dist/src/vector-cortex/platform/types.js +57 -0
  20. package/dist/vector-cortex/cache/_diagnostics-fixture.js +79 -5
  21. package/dist/vector-cortex/cache/diagnostics.js +17 -8
  22. package/dist/vector-cortex/controller/_adaptive-fixture.js +126 -0
  23. package/dist/vector-cortex/controller/policy.js +1 -1
  24. package/dist/vector-cortex/migrations/request-hash-v2-ops.js +23 -7
  25. package/dist/vector-cortex/platform/cross-read.js +98 -0
  26. package/dist/vector-cortex/platform/emit.js +54 -0
  27. package/dist/vector-cortex/platform/select.js +104 -0
  28. package/dist/vector-cortex/platform/types.js +57 -0
  29. package/extensions/dashboard-client/dist/assets/{AreaChart-ujtGh2ez.js → AreaChart-BkfB-LSQ.js} +2 -2
  30. package/extensions/dashboard-client/dist/assets/{AreaChart-ujtGh2ez.js.map → AreaChart-BkfB-LSQ.js.map} +1 -1
  31. package/extensions/dashboard-client/dist/assets/{BarChart-DNZqvtqh.js → BarChart-Cs1kogko.js} +2 -2
  32. package/extensions/dashboard-client/dist/assets/{BarChart-DNZqvtqh.js.map → BarChart-Cs1kogko.js.map} +1 -1
  33. package/extensions/dashboard-client/dist/assets/{CacheTab-CeCIW1rD.js → CacheTab-BZgaguGr.js} +2 -2
  34. package/extensions/dashboard-client/dist/assets/{CacheTab-CeCIW1rD.js.map → CacheTab-BZgaguGr.js.map} +1 -1
  35. package/extensions/dashboard-client/dist/assets/{EventsTab-ChohmqJI.js → EventsTab-BFbkI_MO.js} +2 -2
  36. package/extensions/dashboard-client/dist/assets/{EventsTab-ChohmqJI.js.map → EventsTab-BFbkI_MO.js.map} +1 -1
  37. package/extensions/dashboard-client/dist/assets/{HealthTab-CKfAooiV.js → HealthTab-CvlOENCX.js} +2 -2
  38. package/extensions/dashboard-client/dist/assets/{HealthTab-CKfAooiV.js.map → HealthTab-CvlOENCX.js.map} +1 -1
  39. package/extensions/dashboard-client/dist/assets/{MaintenanceTab-D3DxHgM2.js → MaintenanceTab-CtBuz2qL.js} +2 -2
  40. package/extensions/dashboard-client/dist/assets/{MaintenanceTab-D3DxHgM2.js.map → MaintenanceTab-CtBuz2qL.js.map} +1 -1
  41. package/extensions/dashboard-client/dist/assets/{MemoryMapTab--c-0PBka.js → MemoryMapTab-K4775S4d.js} +2 -2
  42. package/extensions/dashboard-client/dist/assets/{MemoryMapTab--c-0PBka.js.map → MemoryMapTab-K4775S4d.js.map} +1 -1
  43. package/extensions/dashboard-client/dist/assets/{MetricsTab-9UaEB69R.js → MetricsTab-DVGcFInz.js} +2 -2
  44. package/extensions/dashboard-client/dist/assets/{MetricsTab-9UaEB69R.js.map → MetricsTab-DVGcFInz.js.map} +1 -1
  45. package/extensions/dashboard-client/dist/assets/{OverviewTab-89zNl1qx.js → OverviewTab-4LmW5ZCl.js} +2 -2
  46. package/extensions/dashboard-client/dist/assets/{OverviewTab-89zNl1qx.js.map → OverviewTab-4LmW5ZCl.js.map} +1 -1
  47. package/extensions/dashboard-client/dist/assets/{ReposTab-CkfNrdxF.js → ReposTab-StebchgQ.js} +2 -2
  48. package/extensions/dashboard-client/dist/assets/{ReposTab-CkfNrdxF.js.map → ReposTab-StebchgQ.js.map} +1 -1
  49. package/extensions/dashboard-client/dist/assets/{SessionsTab-DA7wqI05.js → SessionsTab-C3D_XAkX.js} +2 -2
  50. package/extensions/dashboard-client/dist/assets/{SessionsTab-DA7wqI05.js.map → SessionsTab-C3D_XAkX.js.map} +1 -1
  51. package/extensions/dashboard-client/dist/assets/{SetupTab-pG4xMI3P.js → SetupTab-BTBGyppF.js} +2 -2
  52. package/extensions/dashboard-client/dist/assets/{SetupTab-pG4xMI3P.js.map → SetupTab-BTBGyppF.js.map} +1 -1
  53. package/extensions/dashboard-client/dist/assets/{TimeSavedCard-DeQnzSkb.js → TimeSavedCard-CTPi_AAW.js} +2 -2
  54. package/extensions/dashboard-client/dist/assets/{TimeSavedCard-DeQnzSkb.js.map → TimeSavedCard-CTPi_AAW.js.map} +1 -1
  55. package/extensions/dashboard-client/dist/assets/{TurnsTab-B6ifHMbg.js → TurnsTab-DSOGcY5Q.js} +2 -2
  56. package/extensions/dashboard-client/dist/assets/{TurnsTab-B6ifHMbg.js.map → TurnsTab-DSOGcY5Q.js.map} +1 -1
  57. package/extensions/dashboard-client/dist/assets/VectorCortexTab-OMW8_RFf.js +2 -0
  58. package/extensions/dashboard-client/dist/assets/VectorCortexTab-OMW8_RFf.js.map +1 -0
  59. package/extensions/dashboard-client/dist/assets/{WikiTab-awMsQNBY.js → WikiTab-Db-qFDdg.js} +2 -2
  60. package/extensions/dashboard-client/dist/assets/{WikiTab-awMsQNBY.js.map → WikiTab-Db-qFDdg.js.map} +1 -1
  61. package/extensions/dashboard-client/dist/assets/{button-DCDwPy_j.js → button-BF4UgBAD.js} +2 -2
  62. package/extensions/dashboard-client/dist/assets/{button-DCDwPy_j.js.map → button-BF4UgBAD.js.map} +1 -1
  63. package/extensions/dashboard-client/dist/assets/{card-D3KAYtck.js → card-XmXoYQqB.js} +2 -2
  64. package/extensions/dashboard-client/dist/assets/{card-D3KAYtck.js.map → card-XmXoYQqB.js.map} +1 -1
  65. package/extensions/dashboard-client/dist/assets/{generateCategoricalChart-D_FHNog-.js → generateCategoricalChart-Be8hM1aU.js} +2 -2
  66. package/extensions/dashboard-client/dist/assets/{generateCategoricalChart-D_FHNog-.js.map → generateCategoricalChart-Be8hM1aU.js.map} +1 -1
  67. package/extensions/dashboard-client/dist/assets/{index-4MkLsevY.js → index-NXDgILxv.js} +3 -3
  68. package/extensions/dashboard-client/dist/assets/{index-4MkLsevY.js.map → index-NXDgILxv.js.map} +1 -1
  69. package/extensions/dashboard-client/dist/assets/{switch-Cc05xGtg.js → switch-kUZCrbia.js} +2 -2
  70. package/extensions/dashboard-client/dist/assets/{switch-Cc05xGtg.js.map → switch-kUZCrbia.js.map} +1 -1
  71. package/extensions/dashboard-client/dist/assets/{toggle--QUzWk-Y.js → toggle-DEe5mCwF.js} +2 -2
  72. package/extensions/dashboard-client/dist/assets/{toggle--QUzWk-Y.js.map → toggle-DEe5mCwF.js.map} +1 -1
  73. package/extensions/dashboard-client/dist/assets/{useSSE-DcAeX67m.js → useSSE-BlCyLqge.js} +2 -2
  74. package/extensions/dashboard-client/dist/assets/{useSSE-DcAeX67m.js.map → useSSE-BlCyLqge.js.map} +1 -1
  75. package/extensions/dashboard-client/dist/index.html +1 -1
  76. package/extensions/dashboard-client/src/api/vector-cortex.ts +9 -0
  77. package/extensions/dashboard-client/src/tabs/VectorCortexPlatformCard.tsx +42 -0
  78. package/extensions/dashboard-client/src/tabs/VectorCortexTab.tsx +2 -0
  79. package/extensions/dashboard-client/src/tabs/useVectorCortexPoll.ts +5 -0
  80. package/extensions/dashboard-client/src/types/vector-cortex-vc8.ts +19 -3
  81. package/extensions/dashboard-client/src/types/vector-cortex.ts +1 -1
  82. package/extensions/dashboard-server/api-contracts/vector-cortex-platform.ts +34 -0
  83. package/extensions/dashboard-server/route-dispatch.ts +6 -0
  84. package/extensions/dashboard-server/routes-rag-settings-vector-cortex.ts +7 -1
  85. package/extensions/dashboard-server/routes-vector-cortex-platform.ts +52 -0
  86. package/package.json +1 -1
  87. package/src/config/vector-cortex-vc8c.ts +33 -0
  88. package/src/config/vector-cortex.ts +6 -0
  89. package/src/config.ts +1 -0
  90. package/src/vector-cortex/cache/_diagnostics-fixture.ts +163 -5
  91. package/src/vector-cortex/cache/diagnostics.ts +18 -9
  92. package/src/vector-cortex/controller/_adaptive-fixture.ts +230 -0
  93. package/src/vector-cortex/controller/policy.ts +1 -1
  94. package/src/vector-cortex/migrations/request-hash-v2-ops.ts +21 -6
  95. package/src/vector-cortex/platform/cross-read.ts +122 -0
  96. package/src/vector-cortex/platform/emit.ts +77 -0
  97. package/src/vector-cortex/platform/select.ts +131 -0
  98. package/src/vector-cortex/platform/types.ts +169 -0
  99. package/extensions/dashboard-client/dist/assets/VectorCortexTab-DSz16qtM.js +0 -2
  100. package/extensions/dashboard-client/dist/assets/VectorCortexTab-DSz16qtM.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import{r as c,j as v,$ as O,a as we,n as q}from"./index-4MkLsevY.js";var Ee=Object.defineProperty,R=(e,t)=>Ee(e,"name",{value:t,configurable:!0}),Z=!!(typeof window<"u"&&window.document&&window.document.createElement);function B(e,t,{checkForDefaultPrevented:n=!0}={}){return R(function(r){if(e?.(r),n===!1||!r||!r.defaultPrevented)return t?.(r)},"handleEvent")}R(B,"composeEventHandlers");function Ce(e){if(!Z)throw new Error("Cannot access window outside of the DOM");return e?.ownerDocument?.defaultView??window}R(Ce,"getOwnerWindow");function N(e){if(!Z)throw new Error("Cannot access document outside of the DOM");return e?.ownerDocument??document}R(N,"getOwnerDocument");function J(e,t=!1){const{activeElement:n}=N(e);if(!n?.nodeName)return null;if(K(n)&&n.contentDocument)return J(n.contentDocument.body,t);if(t){const o=n.getAttribute("aria-activedescendant");if(o){const r=N(n).getElementById(o);if(r)return r}}return n}R(J,"getActiveElement");function K(e){return e.tagName==="IFRAME"}R(K,"isFrame");var _e=Object.defineProperty,M=(e,t)=>_e(e,"name",{value:t,configurable:!0});function A(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}M(A,"setRef");function Q(...e){return t=>{let n=!1;const o=e.map(r=>{const s=A(r,t);return!n&&typeof s=="function"&&(n=!0),s});if(n)return()=>{for(let r=0;r<o.length;r++){const s=o[r];typeof s=="function"?s():A(e[r],null)}}}}M(Q,"composeRefs");function T(...e){return c.useCallback(Q(...e),e)}M(T,"useComposedRefs");var ye=Object.defineProperty,w=(e,t)=>ye(e,"name",{value:t,configurable:!0});function xe(e,t){const n=c.createContext(t);n.displayName=e+"Context";const o=w(s=>{const{children:i,...u}=s,a=c.useMemo(()=>u,Object.values(u));return v.jsx(n.Provider,{value:a,children:i})},"Provider");o.displayName=e+"Provider";function r(s,i={}){const{optional:u=!1}=i,a=c.useContext(n);if(a)return a;if(t!==void 0)return t;if(!u)throw new Error(`\`${s}\` must be used within \`${e}\``)}return w(r,"useContext"),[o,r]}w(xe,"createContext");function ee(e,t=[]){let n=[];function o(s,i){const u=c.createContext(i);u.displayName=s+"Context";const a=n.length;n=[...n,i];const f=w(l=>{const{scope:m,children:d,...h}=l,S=m?.[e]?.[a]||u,b=c.useMemo(()=>h,Object.values(h));return v.jsx(S.Provider,{value:b,children:d})},"Provider");f.displayName=s+"Provider";function p(l,m,d={}){const{optional:h=!1}=d,S=m?.[e]?.[a]||u,b=c.useContext(S);if(b)return b;if(i!==void 0)return i;if(!h)throw new Error(`\`${l}\` must be used within \`${s}\``)}return w(p,"useContext"),[f,p]}w(o,"createContext");const r=w(()=>{const s=n.map(i=>c.createContext(i));return w(function(u){const a=u?.[e]||s;return c.useMemo(()=>({[`__scope${e}`]:{...u,[e]:a}}),[u,a])},"useScope")},"createScope");return r.scopeName=e,[o,te(r,...t)]}w(ee,"createContextScope");function te(...e){const t=e[0];if(e.length===1)return t;const n=w(()=>{const o=e.map(r=>({useScope:r(),scopeName:r.scopeName}));return w(function(s){const i=o.reduce((u,{useScope:a,scopeName:f})=>{const l=a(s)[`__scope${f}`];return{...u,...l}},{});return c.useMemo(()=>({[`__scope${t.scopeName}`]:i}),[i])},"useComposedScopes")},"createScope");return n.scopeName=t.scopeName,n}w(te,"composeContextScopes");var z=globalThis?.document?c.useLayoutEffect:()=>{},Pe=Object.defineProperty,Re=(e,t)=>Pe(e,"name",{value:t,configurable:!0}),Y=O[" useEffectEvent ".trim().toString()],G=O[" useInsertionEffect ".trim().toString()];function ne(e){if(typeof Y=="function")return Y(e);const t=c.useRef(()=>{throw new Error("Cannot call an event handler while rendering.")});return typeof G=="function"?G(()=>{t.current=e}):z(()=>{t.current=e}),c.useMemo(()=>(...n)=>t.current?.(...n),[])}Re(ne,"useEffectEvent");var ke=Object.defineProperty,k=(e,t)=>ke(e,"name",{value:t,configurable:!0}),$e=O[" useInsertionEffect ".trim().toString()]||z;function re({prop:e,defaultProp:t,onChange:n=k(()=>{},"onChange"),caller:o}){const[r,s,i]=oe({defaultProp:t,onChange:n}),u=e!==void 0,a=u?e:r,f=c.useCallback(p=>{if(u){const l=ce(p)?p(e):p;l!==e&&i.current?.(l)}else s(p)},[u,e,s,i]);return[a,f]}k(re,"useControllableState");function oe({defaultProp:e,onChange:t}){const[n,o]=c.useState(e),r=c.useRef(n),s=c.useRef(t);return $e(()=>{s.current=t},[t]),c.useEffect(()=>{r.current!==n&&(s.current?.(n),r.current=n)},[n,r]),[n,o,s]}k(oe,"useUncontrolledState");function ce(e){return typeof e=="function"}k(ce,"isFunction");var X=Symbol("RADIX:SYNC_STATE");function Ie(e,t,n,o){const{prop:r,defaultProp:s,onChange:i,caller:u}=t,a=r!==void 0,f=ne(i),p=[{...n,state:s}];o&&p.push(o);const[l,m]=c.useReducer((b,C)=>{if(C.type===X)return{...b,state:C.state};const _=e(b,C);return a&&!Object.is(_.state,b.state)&&f(_.state),_},...p),d=l.state,h=c.useRef(d);c.useEffect(()=>{h.current!==d&&(h.current=d,a||f(d))},[d,h,a]);const S=c.useMemo(()=>r!==void 0?{...l,state:r}:l,[l,r]);return c.useEffect(()=>{a&&!Object.is(r,l.state)&&m({type:X,state:r})},[r,l.state,a]),[S,m]}k(Ie,"useControllableStateReducer");var je=Object.defineProperty,Oe=(e,t)=>je(e,"name",{value:t,configurable:!0});function se(e){const[t,n]=c.useState(void 0);return z(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const o=new ResizeObserver(r=>{if(!Array.isArray(r)||!r.length)return;const s=r[0];let i,u;if("borderBoxSize"in s){const a=s.borderBoxSize,f=Array.isArray(a)?a[0]:a;i=f.inlineSize,u=f.blockSize}else i=e.offsetWidth,u=e.offsetHeight;n({width:i,height:u})});return o.observe(e,{box:"border-box"}),()=>o.unobserve(e)}else n(void 0)},[e]),t}Oe(se,"useSize");var Te=Object.defineProperty,E=(e,t)=>Te(e,"name",{value:t,configurable:!0});function ie(e){const t=c.forwardRef((n,o)=>{let{children:r,...s}=n,i=null,u=!1;const a=[];D(r)&&typeof j=="function"&&(r=j(r._payload)),c.Children.forEach(r,m=>{if(fe(m)){u=!0;const d=m;let h="child"in d.props?d.props.child:d.props.children;D(h)&&typeof j=="function"&&(h=j(h._payload)),i=Ae(d,h),a.push(i?.props?.children)}else a.push(m)}),i?i=c.cloneElement(i,void 0,a):!u&&c.Children.count(r)===1&&c.isValidElement(r)&&(i=r);const f=i?le(i):void 0,p=T(o,f);if(!i){if(r||r===0)throw new Error(u?Me(e):Be(e));return r}const l=ue(s,i.props??{});return i.type!==c.Fragment&&(l.ref=o?p:f),c.cloneElement(i,l)});return t.displayName=`${e}.Slot`,t}E(ie,"createSlot");var ae=Symbol.for("radix.slottable");function Ne(e){const t=E(n=>"child"in n?n.children(n.child):n.children,"Slottable");return t.displayName=`${e}.Slottable`,t.__radixId=ae,t}E(Ne,"createSlottable");var Ae=E((e,t)=>{if("child"in e.props){const n=e.props.child;return c.isValidElement(n)?c.cloneElement(n,void 0,e.props.children(n.props.children)):null}return c.isValidElement(t)?t:null},"getSlottableElementFromSlottable");function ue(e,t){const n={...t};for(const o in t){const r=e[o],s=t[o];/^on[A-Z]/.test(o)?r&&s?n[o]=(...u)=>{const a=s(...u);return r(...u),a}:r&&(n[o]=r):o==="style"?n[o]={...r,...s}:o==="className"&&(n[o]=[r,s].filter(Boolean).join(" "))}return{...e,...n}}E(ue,"mergeProps");function le(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)}E(le,"getElementRef");function fe(e){return c.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===ae}E(fe,"isSlottable");var De=Symbol.for("react.lazy");function D(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===De&&"_payload"in e&&de(e._payload)}E(D,"isLazyComponent");function de(e){return typeof e=="object"&&e!==null&&"then"in e}E(de,"isPromiseLike");var Be=E(e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,"createSlotError"),Me=E(e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,"createSlottableError"),j=O[" use ".trim().toString()],ze=Object.defineProperty,Fe=(e,t)=>ze(e,"name",{value:t,configurable:!0}),Le=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],F=Le.reduce((e,t)=>{const n=ie(`Primitive.${t}`),o=c.forwardRef((r,s)=>{const{asChild:i,...u}=r,a=i?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),v.jsx(a,{...u,ref:s})});return o.displayName=`Primitive.${t}`,{...e,[t]:o}},{});function He(e,t){e&&we.flushSync(()=>e.dispatchEvent(t))}Fe(He,"dispatchDiscreteCustomEvent");var Ue=Object.defineProperty,x=(e,t)=>Ue(e,"name",{value:t,configurable:!0}),L="Switch",[We,tt]=ee(L),[Ve,H]=We(L);function pe(e){const{__scopeSwitch:t,checked:n,children:o,defaultChecked:r,disabled:s,form:i,name:u,onCheckedChange:a,required:f,value:p="on",internal_do_not_use_render:l}=e,[m,d]=re({prop:n,defaultProp:r??!1,onChange:a,caller:L}),[h,S]=c.useState(null),[b,C]=c.useState(null),_=c.useRef(!1),[g,y]=c.useReducer(P=>P+1,0),$=h?!!i||!!h.closest("form"):!0,I={checked:m,setChecked:d,disabled:s,control:h,setControl:S,name:u,form:i,value:p,hasConsumerStoppedPropagationRef:_,userInteractionCount:g,onUserInteraction:y,required:f,defaultChecked:r,isFormControl:$,bubbleInput:b,setBubbleInput:C};return v.jsx(Ve,{scope:t,...I,children:me(l)?l(I):o})}x(pe,"SwitchProvider");var qe="SwitchTrigger",Ye=c.forwardRef(x(function({__scopeSwitch:t,onClick:n,...o},r){const{control:s,form:i,value:u,disabled:a,checked:f,required:p,setControl:l,setChecked:m,hasConsumerStoppedPropagationRef:d,onUserInteraction:h,isFormControl:S,bubbleInput:b}=H(qe,t),C=T(r,l),_=c.useRef(f);return c.useEffect(()=>{const g=i?s?.ownerDocument.getElementById(i):s?.form;if(g instanceof HTMLFormElement){const y=x(()=>m(_.current),"reset");return g.addEventListener("reset",y),()=>g.removeEventListener("reset",y)}},[s,i,m]),v.jsx(F.button,{type:"button",role:"switch","aria-checked":f,"aria-required":p,"data-state":U(f),"data-disabled":a?"":void 0,disabled:a,value:u,...o,ref:C,onClick:B(n,g=>{h(),m(y=>!y),b&&S&&(d.current=g.isPropagationStopped(),d.current||g.stopPropagation())})})},"SwitchTrigger")),he=c.forwardRef(x(function(t,n){const{__scopeSwitch:o,name:r,checked:s,defaultChecked:i,required:u,disabled:a,value:f,onCheckedChange:p,form:l,...m}=t;return v.jsx(pe,{__scopeSwitch:o,checked:s,defaultChecked:i,disabled:a,required:u,onCheckedChange:p,name:r,form:l,value:f,internal_do_not_use_render:({isFormControl:d})=>v.jsxs(v.Fragment,{children:[v.jsx(Ye,{...m,ref:n,__scopeSwitch:o}),d&&v.jsx(Je,{__scopeSwitch:o})]})})},"Switch")),Ge="SwitchThumb",Xe=c.forwardRef(x(function(t,n){const{__scopeSwitch:o,...r}=t,s=H(Ge,o);return v.jsx(F.span,{"data-state":U(s.checked),"data-disabled":s.disabled?"":void 0,...r,ref:n})},"SwitchThumb")),Ze="SwitchBubbleInput",Je=c.forwardRef(x(function({__scopeSwitch:t,onClick:n,...o},r){const{control:s,hasConsumerStoppedPropagationRef:i,userInteractionCount:u,checked:a,defaultChecked:f,required:p,disabled:l,name:m,value:d,form:h,bubbleInput:S,setBubbleInput:b}=H(Ze,t),C=T(r,b),_=se(s),g=c.useRef(!1),y=c.useRef(a),$=c.useRef(u);c.useEffect(()=>{const P=S;if(!P)return;const be=window.HTMLInputElement.prototype,W=Object.getOwnPropertyDescriptor(be,"checked").set,V=u!==$.current;$.current=u;const ve=y.current!==a;y.current=a;const Se=!(V&&i.current);if(ve&&W){g.current=!V;const ge=new Event("click",{bubbles:Se});W.call(P,a),P.dispatchEvent(ge),g.current=!1}},[S,a,i,u]);const I=c.useRef(a);return v.jsx(F.input,{type:"checkbox","aria-hidden":!0,defaultChecked:f??I.current,required:p,disabled:l,name:m,value:d,form:h,...o,tabIndex:-1,ref:C,onClick:B(n,P=>{g.current&&P.stopPropagation()}),style:{...o.style,..._,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})},"SwitchBubbleInput"));function me(e){return typeof e=="function"}x(me,"isFunction");function U(e){return e?"checked":"unchecked"}x(U,"getState");const Ke=c.forwardRef(({className:e,...t},n)=>v.jsx(he,{ref:n,className:q("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border border-border transition-colors data-[state=checked]:bg-primary data-[state=unchecked]:bg-bg-elevated focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/60 disabled:cursor-not-allowed disabled:opacity-50",e),...t,children:v.jsx(Xe,{className:q("pointer-events-none block h-4 w-4 rounded-full bg-foreground shadow-lg transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0.5")})}));Ke.displayName=he.displayName;export{Ke as S};
2
- //# sourceMappingURL=switch-Cc05xGtg.js.map
1
+ import{r as c,j as v,$ as O,a as we,n as q}from"./index-NXDgILxv.js";var Ee=Object.defineProperty,R=(e,t)=>Ee(e,"name",{value:t,configurable:!0}),Z=!!(typeof window<"u"&&window.document&&window.document.createElement);function B(e,t,{checkForDefaultPrevented:n=!0}={}){return R(function(r){if(e?.(r),n===!1||!r||!r.defaultPrevented)return t?.(r)},"handleEvent")}R(B,"composeEventHandlers");function Ce(e){if(!Z)throw new Error("Cannot access window outside of the DOM");return e?.ownerDocument?.defaultView??window}R(Ce,"getOwnerWindow");function N(e){if(!Z)throw new Error("Cannot access document outside of the DOM");return e?.ownerDocument??document}R(N,"getOwnerDocument");function J(e,t=!1){const{activeElement:n}=N(e);if(!n?.nodeName)return null;if(K(n)&&n.contentDocument)return J(n.contentDocument.body,t);if(t){const o=n.getAttribute("aria-activedescendant");if(o){const r=N(n).getElementById(o);if(r)return r}}return n}R(J,"getActiveElement");function K(e){return e.tagName==="IFRAME"}R(K,"isFrame");var _e=Object.defineProperty,M=(e,t)=>_e(e,"name",{value:t,configurable:!0});function A(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}M(A,"setRef");function Q(...e){return t=>{let n=!1;const o=e.map(r=>{const s=A(r,t);return!n&&typeof s=="function"&&(n=!0),s});if(n)return()=>{for(let r=0;r<o.length;r++){const s=o[r];typeof s=="function"?s():A(e[r],null)}}}}M(Q,"composeRefs");function T(...e){return c.useCallback(Q(...e),e)}M(T,"useComposedRefs");var ye=Object.defineProperty,w=(e,t)=>ye(e,"name",{value:t,configurable:!0});function xe(e,t){const n=c.createContext(t);n.displayName=e+"Context";const o=w(s=>{const{children:i,...u}=s,a=c.useMemo(()=>u,Object.values(u));return v.jsx(n.Provider,{value:a,children:i})},"Provider");o.displayName=e+"Provider";function r(s,i={}){const{optional:u=!1}=i,a=c.useContext(n);if(a)return a;if(t!==void 0)return t;if(!u)throw new Error(`\`${s}\` must be used within \`${e}\``)}return w(r,"useContext"),[o,r]}w(xe,"createContext");function ee(e,t=[]){let n=[];function o(s,i){const u=c.createContext(i);u.displayName=s+"Context";const a=n.length;n=[...n,i];const f=w(l=>{const{scope:m,children:d,...h}=l,S=m?.[e]?.[a]||u,b=c.useMemo(()=>h,Object.values(h));return v.jsx(S.Provider,{value:b,children:d})},"Provider");f.displayName=s+"Provider";function p(l,m,d={}){const{optional:h=!1}=d,S=m?.[e]?.[a]||u,b=c.useContext(S);if(b)return b;if(i!==void 0)return i;if(!h)throw new Error(`\`${l}\` must be used within \`${s}\``)}return w(p,"useContext"),[f,p]}w(o,"createContext");const r=w(()=>{const s=n.map(i=>c.createContext(i));return w(function(u){const a=u?.[e]||s;return c.useMemo(()=>({[`__scope${e}`]:{...u,[e]:a}}),[u,a])},"useScope")},"createScope");return r.scopeName=e,[o,te(r,...t)]}w(ee,"createContextScope");function te(...e){const t=e[0];if(e.length===1)return t;const n=w(()=>{const o=e.map(r=>({useScope:r(),scopeName:r.scopeName}));return w(function(s){const i=o.reduce((u,{useScope:a,scopeName:f})=>{const l=a(s)[`__scope${f}`];return{...u,...l}},{});return c.useMemo(()=>({[`__scope${t.scopeName}`]:i}),[i])},"useComposedScopes")},"createScope");return n.scopeName=t.scopeName,n}w(te,"composeContextScopes");var z=globalThis?.document?c.useLayoutEffect:()=>{},Pe=Object.defineProperty,Re=(e,t)=>Pe(e,"name",{value:t,configurable:!0}),Y=O[" useEffectEvent ".trim().toString()],G=O[" useInsertionEffect ".trim().toString()];function ne(e){if(typeof Y=="function")return Y(e);const t=c.useRef(()=>{throw new Error("Cannot call an event handler while rendering.")});return typeof G=="function"?G(()=>{t.current=e}):z(()=>{t.current=e}),c.useMemo(()=>(...n)=>t.current?.(...n),[])}Re(ne,"useEffectEvent");var ke=Object.defineProperty,k=(e,t)=>ke(e,"name",{value:t,configurable:!0}),$e=O[" useInsertionEffect ".trim().toString()]||z;function re({prop:e,defaultProp:t,onChange:n=k(()=>{},"onChange"),caller:o}){const[r,s,i]=oe({defaultProp:t,onChange:n}),u=e!==void 0,a=u?e:r,f=c.useCallback(p=>{if(u){const l=ce(p)?p(e):p;l!==e&&i.current?.(l)}else s(p)},[u,e,s,i]);return[a,f]}k(re,"useControllableState");function oe({defaultProp:e,onChange:t}){const[n,o]=c.useState(e),r=c.useRef(n),s=c.useRef(t);return $e(()=>{s.current=t},[t]),c.useEffect(()=>{r.current!==n&&(s.current?.(n),r.current=n)},[n,r]),[n,o,s]}k(oe,"useUncontrolledState");function ce(e){return typeof e=="function"}k(ce,"isFunction");var X=Symbol("RADIX:SYNC_STATE");function Ie(e,t,n,o){const{prop:r,defaultProp:s,onChange:i,caller:u}=t,a=r!==void 0,f=ne(i),p=[{...n,state:s}];o&&p.push(o);const[l,m]=c.useReducer((b,C)=>{if(C.type===X)return{...b,state:C.state};const _=e(b,C);return a&&!Object.is(_.state,b.state)&&f(_.state),_},...p),d=l.state,h=c.useRef(d);c.useEffect(()=>{h.current!==d&&(h.current=d,a||f(d))},[d,h,a]);const S=c.useMemo(()=>r!==void 0?{...l,state:r}:l,[l,r]);return c.useEffect(()=>{a&&!Object.is(r,l.state)&&m({type:X,state:r})},[r,l.state,a]),[S,m]}k(Ie,"useControllableStateReducer");var je=Object.defineProperty,Oe=(e,t)=>je(e,"name",{value:t,configurable:!0});function se(e){const[t,n]=c.useState(void 0);return z(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const o=new ResizeObserver(r=>{if(!Array.isArray(r)||!r.length)return;const s=r[0];let i,u;if("borderBoxSize"in s){const a=s.borderBoxSize,f=Array.isArray(a)?a[0]:a;i=f.inlineSize,u=f.blockSize}else i=e.offsetWidth,u=e.offsetHeight;n({width:i,height:u})});return o.observe(e,{box:"border-box"}),()=>o.unobserve(e)}else n(void 0)},[e]),t}Oe(se,"useSize");var Te=Object.defineProperty,E=(e,t)=>Te(e,"name",{value:t,configurable:!0});function ie(e){const t=c.forwardRef((n,o)=>{let{children:r,...s}=n,i=null,u=!1;const a=[];D(r)&&typeof j=="function"&&(r=j(r._payload)),c.Children.forEach(r,m=>{if(fe(m)){u=!0;const d=m;let h="child"in d.props?d.props.child:d.props.children;D(h)&&typeof j=="function"&&(h=j(h._payload)),i=Ae(d,h),a.push(i?.props?.children)}else a.push(m)}),i?i=c.cloneElement(i,void 0,a):!u&&c.Children.count(r)===1&&c.isValidElement(r)&&(i=r);const f=i?le(i):void 0,p=T(o,f);if(!i){if(r||r===0)throw new Error(u?Me(e):Be(e));return r}const l=ue(s,i.props??{});return i.type!==c.Fragment&&(l.ref=o?p:f),c.cloneElement(i,l)});return t.displayName=`${e}.Slot`,t}E(ie,"createSlot");var ae=Symbol.for("radix.slottable");function Ne(e){const t=E(n=>"child"in n?n.children(n.child):n.children,"Slottable");return t.displayName=`${e}.Slottable`,t.__radixId=ae,t}E(Ne,"createSlottable");var Ae=E((e,t)=>{if("child"in e.props){const n=e.props.child;return c.isValidElement(n)?c.cloneElement(n,void 0,e.props.children(n.props.children)):null}return c.isValidElement(t)?t:null},"getSlottableElementFromSlottable");function ue(e,t){const n={...t};for(const o in t){const r=e[o],s=t[o];/^on[A-Z]/.test(o)?r&&s?n[o]=(...u)=>{const a=s(...u);return r(...u),a}:r&&(n[o]=r):o==="style"?n[o]={...r,...s}:o==="className"&&(n[o]=[r,s].filter(Boolean).join(" "))}return{...e,...n}}E(ue,"mergeProps");function le(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)}E(le,"getElementRef");function fe(e){return c.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===ae}E(fe,"isSlottable");var De=Symbol.for("react.lazy");function D(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===De&&"_payload"in e&&de(e._payload)}E(D,"isLazyComponent");function de(e){return typeof e=="object"&&e!==null&&"then"in e}E(de,"isPromiseLike");var Be=E(e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,"createSlotError"),Me=E(e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,"createSlottableError"),j=O[" use ".trim().toString()],ze=Object.defineProperty,Fe=(e,t)=>ze(e,"name",{value:t,configurable:!0}),Le=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],F=Le.reduce((e,t)=>{const n=ie(`Primitive.${t}`),o=c.forwardRef((r,s)=>{const{asChild:i,...u}=r,a=i?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),v.jsx(a,{...u,ref:s})});return o.displayName=`Primitive.${t}`,{...e,[t]:o}},{});function He(e,t){e&&we.flushSync(()=>e.dispatchEvent(t))}Fe(He,"dispatchDiscreteCustomEvent");var Ue=Object.defineProperty,x=(e,t)=>Ue(e,"name",{value:t,configurable:!0}),L="Switch",[We,tt]=ee(L),[Ve,H]=We(L);function pe(e){const{__scopeSwitch:t,checked:n,children:o,defaultChecked:r,disabled:s,form:i,name:u,onCheckedChange:a,required:f,value:p="on",internal_do_not_use_render:l}=e,[m,d]=re({prop:n,defaultProp:r??!1,onChange:a,caller:L}),[h,S]=c.useState(null),[b,C]=c.useState(null),_=c.useRef(!1),[g,y]=c.useReducer(P=>P+1,0),$=h?!!i||!!h.closest("form"):!0,I={checked:m,setChecked:d,disabled:s,control:h,setControl:S,name:u,form:i,value:p,hasConsumerStoppedPropagationRef:_,userInteractionCount:g,onUserInteraction:y,required:f,defaultChecked:r,isFormControl:$,bubbleInput:b,setBubbleInput:C};return v.jsx(Ve,{scope:t,...I,children:me(l)?l(I):o})}x(pe,"SwitchProvider");var qe="SwitchTrigger",Ye=c.forwardRef(x(function({__scopeSwitch:t,onClick:n,...o},r){const{control:s,form:i,value:u,disabled:a,checked:f,required:p,setControl:l,setChecked:m,hasConsumerStoppedPropagationRef:d,onUserInteraction:h,isFormControl:S,bubbleInput:b}=H(qe,t),C=T(r,l),_=c.useRef(f);return c.useEffect(()=>{const g=i?s?.ownerDocument.getElementById(i):s?.form;if(g instanceof HTMLFormElement){const y=x(()=>m(_.current),"reset");return g.addEventListener("reset",y),()=>g.removeEventListener("reset",y)}},[s,i,m]),v.jsx(F.button,{type:"button",role:"switch","aria-checked":f,"aria-required":p,"data-state":U(f),"data-disabled":a?"":void 0,disabled:a,value:u,...o,ref:C,onClick:B(n,g=>{h(),m(y=>!y),b&&S&&(d.current=g.isPropagationStopped(),d.current||g.stopPropagation())})})},"SwitchTrigger")),he=c.forwardRef(x(function(t,n){const{__scopeSwitch:o,name:r,checked:s,defaultChecked:i,required:u,disabled:a,value:f,onCheckedChange:p,form:l,...m}=t;return v.jsx(pe,{__scopeSwitch:o,checked:s,defaultChecked:i,disabled:a,required:u,onCheckedChange:p,name:r,form:l,value:f,internal_do_not_use_render:({isFormControl:d})=>v.jsxs(v.Fragment,{children:[v.jsx(Ye,{...m,ref:n,__scopeSwitch:o}),d&&v.jsx(Je,{__scopeSwitch:o})]})})},"Switch")),Ge="SwitchThumb",Xe=c.forwardRef(x(function(t,n){const{__scopeSwitch:o,...r}=t,s=H(Ge,o);return v.jsx(F.span,{"data-state":U(s.checked),"data-disabled":s.disabled?"":void 0,...r,ref:n})},"SwitchThumb")),Ze="SwitchBubbleInput",Je=c.forwardRef(x(function({__scopeSwitch:t,onClick:n,...o},r){const{control:s,hasConsumerStoppedPropagationRef:i,userInteractionCount:u,checked:a,defaultChecked:f,required:p,disabled:l,name:m,value:d,form:h,bubbleInput:S,setBubbleInput:b}=H(Ze,t),C=T(r,b),_=se(s),g=c.useRef(!1),y=c.useRef(a),$=c.useRef(u);c.useEffect(()=>{const P=S;if(!P)return;const be=window.HTMLInputElement.prototype,W=Object.getOwnPropertyDescriptor(be,"checked").set,V=u!==$.current;$.current=u;const ve=y.current!==a;y.current=a;const Se=!(V&&i.current);if(ve&&W){g.current=!V;const ge=new Event("click",{bubbles:Se});W.call(P,a),P.dispatchEvent(ge),g.current=!1}},[S,a,i,u]);const I=c.useRef(a);return v.jsx(F.input,{type:"checkbox","aria-hidden":!0,defaultChecked:f??I.current,required:p,disabled:l,name:m,value:d,form:h,...o,tabIndex:-1,ref:C,onClick:B(n,P=>{g.current&&P.stopPropagation()}),style:{...o.style,..._,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})},"SwitchBubbleInput"));function me(e){return typeof e=="function"}x(me,"isFunction");function U(e){return e?"checked":"unchecked"}x(U,"getState");const Ke=c.forwardRef(({className:e,...t},n)=>v.jsx(he,{ref:n,className:q("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border border-border transition-colors data-[state=checked]:bg-primary data-[state=unchecked]:bg-bg-elevated focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/60 disabled:cursor-not-allowed disabled:opacity-50",e),...t,children:v.jsx(Xe,{className:q("pointer-events-none block h-4 w-4 rounded-full bg-foreground shadow-lg transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0.5")})}));Ke.displayName=he.displayName;export{Ke as S};
2
+ //# sourceMappingURL=switch-kUZCrbia.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"switch-Cc05xGtg.js","sources":["../../node_modules/@radix-ui/primitive/dist/index.mjs","../../node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../../node_modules/@radix-ui/react-context/dist/index.mjs","../../node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","../../node_modules/@radix-ui/react-use-effect-event/dist/index.mjs","../../node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","../../node_modules/@radix-ui/react-use-size/dist/index.mjs","../../node_modules/@radix-ui/react-slot/dist/index.mjs","../../node_modules/@radix-ui/react-primitive/dist/index.mjs","../../node_modules/@radix-ui/react-switch/dist/index.mjs","../../src/components/ui/switch.tsx"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/primitive.tsx\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return /* @__PURE__ */ __name(function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n }, \"handleEvent\");\n}\n__name(composeEventHandlers, \"composeEventHandlers\");\nfunction getOwnerWindow(element) {\n if (!canUseDOM) {\n throw new Error(\"Cannot access window outside of the DOM\");\n }\n return element?.ownerDocument?.defaultView ?? window;\n}\n__name(getOwnerWindow, \"getOwnerWindow\");\nfunction getOwnerDocument(element) {\n if (!canUseDOM) {\n throw new Error(\"Cannot access document outside of the DOM\");\n }\n return element?.ownerDocument ?? document;\n}\n__name(getOwnerDocument, \"getOwnerDocument\");\nfunction getActiveElement(node, activeDescendant = false) {\n const { activeElement } = getOwnerDocument(node);\n if (!activeElement?.nodeName) {\n return null;\n }\n if (isFrame(activeElement) && activeElement.contentDocument) {\n return getActiveElement(activeElement.contentDocument.body, activeDescendant);\n }\n if (activeDescendant) {\n const id = activeElement.getAttribute(\"aria-activedescendant\");\n if (id) {\n const element = getOwnerDocument(activeElement).getElementById(id);\n if (element) {\n return element;\n }\n }\n }\n return activeElement;\n}\n__name(getActiveElement, \"getActiveElement\");\nfunction isFrame(element) {\n return element.tagName === \"IFRAME\";\n}\n__name(isFrame, \"isFrame\");\nexport {\n canUseDOM,\n composeEventHandlers,\n getActiveElement,\n getOwnerDocument,\n getOwnerWindow,\n isFrame\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/compose-refs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\n__name(setRef, \"setRef\");\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\n__name(composeRefs, \"composeRefs\");\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\n__name(useComposedRefs, \"useComposedRefs\");\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/create-context.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\n// @__NO_SIDE_EFFECTS__\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n Context.displayName = rootComponentName + \"Context\";\n const Provider = /* @__PURE__ */ __name((props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n }, \"Provider\");\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, options = {}) {\n const { optional = false } = options;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n if (optional) return void 0;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n __name(useContext2, \"useContext\");\n return [Provider, useContext2];\n}\n__name(createContext2, \"createContext\");\n// @__NO_SIDE_EFFECTS__\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n BaseContext.displayName = rootComponentName + \"Context\";\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = /* @__PURE__ */ __name((props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n }, \"Provider\");\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope, options = {}) {\n const { optional = false } = options;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n if (optional) return void 0;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n __name(useContext2, \"useContext\");\n return [Provider, useContext2];\n }\n __name(createContext3, \"createContext\");\n const createScope = /* @__PURE__ */ __name(() => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return /* @__PURE__ */ __name(function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n }, \"useScope\");\n }, \"createScope\");\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\n__name(createContextScope, \"createContextScope\");\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = /* @__PURE__ */ __name(() => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return /* @__PURE__ */ __name(function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n }, \"useComposedScopes\");\n }, \"createScope\");\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\n__name(composeContextScopes, \"composeContextScopes\");\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// src/use-layout-effect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = globalThis?.document ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/use-effect-event.tsx\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport * as React from \"react\";\nvar useReactEffectEvent = React[\" useEffectEvent \".trim().toString()];\nvar useReactInsertionEffect = React[\" useInsertionEffect \".trim().toString()];\nfunction useEffectEvent(callback) {\n if (typeof useReactEffectEvent === \"function\") {\n return useReactEffectEvent(callback);\n }\n const ref = React.useRef(() => {\n throw new Error(\"Cannot call an event handler while rendering.\");\n });\n if (typeof useReactInsertionEffect === \"function\") {\n useReactInsertionEffect(() => {\n ref.current = callback;\n });\n } else {\n useLayoutEffect(() => {\n ref.current = callback;\n });\n }\n return React.useMemo(() => ((...args) => ref.current?.(...args)), []);\n}\n__name(useEffectEvent, \"useEffectEvent\");\nexport {\n useEffectEvent\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/use-controllable-state.tsx\nimport * as React from \"react\";\nimport { IS_DEVELOPMENT } from \"@radix-ui/primitive/is-development\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useInsertionEffect = React[\" useInsertionEffect \".trim().toString()] || useLayoutEffect;\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = /* @__PURE__ */ __name(() => {\n }, \"onChange\"),\n caller\n}) {\n const [uncontrolledProp, setUncontrolledProp, onChangeRef] = useUncontrolledState({\n defaultProp,\n onChange\n });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n if (IS_DEVELOPMENT) {\n const isControlledRef = React.useRef(prop !== void 0);\n React.useEffect(() => {\n const wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled) {\n const from = wasControlled ? \"controlled\" : \"uncontrolled\";\n const to = isControlled ? \"controlled\" : \"uncontrolled\";\n console.warn(\n `${caller} is changing from ${from} to ${to}. 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.`\n );\n }\n isControlledRef.current = isControlled;\n }, [isControlled, caller]);\n }\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue;\n if (value2 !== prop) {\n onChangeRef.current?.(value2);\n }\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, onChangeRef]\n );\n return [value, setValue];\n}\n__name(useControllableState, \"useControllableState\");\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const [value, setValue] = React.useState(defaultProp);\n const prevValueRef = React.useRef(value);\n const onChangeRef = React.useRef(onChange);\n useInsertionEffect(() => {\n onChangeRef.current = onChange;\n }, [onChange]);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n onChangeRef.current?.(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef]);\n return [value, setValue, onChangeRef];\n}\n__name(useUncontrolledState, \"useUncontrolledState\");\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n__name(isFunction, \"isFunction\");\n\n// src/use-controllable-state-reducer.tsx\nimport * as React2 from \"react\";\nimport { IS_DEVELOPMENT as IS_DEVELOPMENT2 } from \"@radix-ui/primitive/is-development\";\nimport { useEffectEvent } from \"@radix-ui/react-use-effect-event\";\nvar SYNC_STATE = Symbol(\"RADIX:SYNC_STATE\");\nfunction useControllableStateReducer(reducer, userArgs, initialArg, init) {\n const { prop: controlledState, defaultProp, onChange: onChangeProp, caller } = userArgs;\n const isControlled = controlledState !== void 0;\n const onChange = useEffectEvent(onChangeProp);\n if (IS_DEVELOPMENT2) {\n const isControlledRef = React2.useRef(controlledState !== void 0);\n React2.useEffect(() => {\n const wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled) {\n const from = wasControlled ? \"controlled\" : \"uncontrolled\";\n const to = isControlled ? \"controlled\" : \"uncontrolled\";\n console.warn(\n `${caller} is changing from ${from} to ${to}. 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.`\n );\n }\n isControlledRef.current = isControlled;\n }, [isControlled, caller]);\n }\n const args = [{ ...initialArg, state: defaultProp }];\n if (init) {\n args.push(init);\n }\n const [internalState, dispatch] = React2.useReducer(\n (state2, action) => {\n if (action.type === SYNC_STATE) {\n return { ...state2, state: action.state };\n }\n const next = reducer(state2, action);\n if (isControlled && !Object.is(next.state, state2.state)) {\n onChange(next.state);\n }\n return next;\n },\n ...args\n );\n const uncontrolledState = internalState.state;\n const prevValueRef = React2.useRef(uncontrolledState);\n React2.useEffect(() => {\n if (prevValueRef.current !== uncontrolledState) {\n prevValueRef.current = uncontrolledState;\n if (!isControlled) {\n onChange(uncontrolledState);\n }\n }\n }, [uncontrolledState, prevValueRef, isControlled]);\n const state = React2.useMemo(() => {\n const isControlled2 = controlledState !== void 0;\n if (isControlled2) {\n return { ...internalState, state: controlledState };\n }\n return internalState;\n }, [internalState, controlledState]);\n React2.useEffect(() => {\n if (isControlled && !Object.is(controlledState, internalState.state)) {\n dispatch({ type: SYNC_STATE, state: controlledState });\n }\n }, [controlledState, internalState.state, isControlled]);\n return [state, dispatch];\n}\n__name(useControllableStateReducer, \"useControllableStateReducer\");\nexport {\n useControllableState,\n useControllableStateReducer\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/use-size.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nfunction useSize(element) {\n const [size, setSize] = React.useState(void 0);\n useLayoutEffect(() => {\n if (element) {\n setSize({ width: element.offsetWidth, height: element.offsetHeight });\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n if (!entries.length) {\n return;\n }\n const entry = entries[0];\n let width;\n let height;\n if (\"borderBoxSize\" in entry) {\n const borderSizeEntry = entry[\"borderBoxSize\"];\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize[\"inlineSize\"];\n height = borderSize[\"blockSize\"];\n } else {\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({ width, height });\n });\n resizeObserver.observe(element, { box: \"border-box\" });\n return () => resizeObserver.unobserve(element);\n } else {\n setSize(void 0);\n }\n }, [element]);\n return size;\n}\n__name(useSize, \"useSize\");\nexport {\n useSize\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/slot.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\n// @__NO_SIDE_EFFECTS__\nfunction createSlot(ownerName) {\n const Slot2 = React.forwardRef((props, forwardedRef) => {\n let { children, ...slotProps } = props;\n let slottableElement = null;\n let hasSlottable = false;\n const newChildren = [];\n if (isLazyComponent(children) && typeof use === \"function\") {\n children = use(children._payload);\n }\n React.Children.forEach(children, (maybeSlottable) => {\n if (isSlottable(maybeSlottable)) {\n hasSlottable = true;\n const slottable = maybeSlottable;\n let child = \"child\" in slottable.props ? slottable.props.child : slottable.props.children;\n if (isLazyComponent(child) && typeof use === \"function\") {\n child = use(child._payload);\n }\n slottableElement = getSlottableElementFromSlottable(slottable, child);\n newChildren.push(slottableElement?.props?.children);\n } else {\n newChildren.push(maybeSlottable);\n }\n });\n if (slottableElement) {\n slottableElement = React.cloneElement(slottableElement, void 0, newChildren);\n } else if (\n // A `Slottable` was found but it didn't resolve to a single element (e.g.\n // it wrapped multiple elements, text, or a render-prop `child` that\n // wasn't an element). Don't fall back to treating the `Slottable` wrapper\n // itself as the slot target — throw a descriptive error below instead.\n !hasSlottable && React.Children.count(children) === 1 && React.isValidElement(children)\n ) {\n slottableElement = children;\n }\n const slottableElementRef = slottableElement ? getElementRef(slottableElement) : void 0;\n const composedRef = useComposedRefs(forwardedRef, slottableElementRef);\n if (!slottableElement) {\n if (children || children === 0) {\n throw new Error(\n hasSlottable ? createSlottableError(ownerName) : createSlotError(ownerName)\n );\n }\n return children;\n }\n const mergedProps = mergeProps(slotProps, slottableElement.props ?? {});\n if (slottableElement.type !== React.Fragment) {\n mergedProps.ref = forwardedRef ? composedRef : slottableElementRef;\n }\n return React.cloneElement(slottableElement, mergedProps);\n });\n Slot2.displayName = `${ownerName}.Slot`;\n return Slot2;\n}\n__name(createSlot, \"createSlot\");\nvar Slot = /* @__PURE__ */ createSlot(\"Slot\");\nvar SLOTTABLE_IDENTIFIER = Symbol.for(\"radix.slottable\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlottable(ownerName) {\n const Slottable2 = /* @__PURE__ */ __name((props) => \"child\" in props ? props.children(props.child) : props.children, \"Slottable\");\n Slottable2.displayName = `${ownerName}.Slottable`;\n Slottable2.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable2;\n}\n__name(createSlottable, \"createSlottable\");\nvar Slottable = /* @__PURE__ */ createSlottable(\"Slottable\");\nvar getSlottableElementFromSlottable = /* @__PURE__ */ __name((slottable, child) => {\n if (\"child\" in slottable.props) {\n const child2 = slottable.props.child;\n if (!React.isValidElement(child2)) return null;\n return React.cloneElement(child2, void 0, slottable.props.children(child2.props.children));\n }\n return React.isValidElement(child) ? child : null;\n}, \"getSlottableElementFromSlottable\");\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\n__name(mergeProps, \"mergeProps\");\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\n__name(getElementRef, \"getElementRef\");\nfunction isSlottable(child) {\n return React.isValidElement(child) && typeof child.type === \"function\" && \"__radixId\" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;\n}\n__name(isSlottable, \"isSlottable\");\nvar REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nfunction isLazyComponent(element) {\n return element != null && typeof element === \"object\" && \"$$typeof\" in element && element.$$typeof === REACT_LAZY_TYPE && \"_payload\" in element && isPromiseLike(element._payload);\n}\n__name(isLazyComponent, \"isLazyComponent\");\nfunction isPromiseLike(value) {\n return typeof value === \"object\" && value !== null && \"then\" in value;\n}\n__name(isPromiseLike, \"isPromiseLike\");\nvar createSlotError = /* @__PURE__ */ __name((ownerName) => {\n return `${ownerName} failed to slot onto its children. Expected a single React element child or \\`Slottable\\`.`;\n}, \"createSlotError\");\nvar createSlottableError = /* @__PURE__ */ __name((ownerName) => {\n return `${ownerName} failed to slot onto its \\`Slottable\\`. Expected \\`Slottable\\` to receive a single React element child.`;\n}, \"createSlottableError\");\nvar use = React[\" use \".trim().toString()];\nexport {\n Slot as Root,\n Slot,\n Slottable,\n createSlot,\n createSlottable\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"select\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\n__name(dispatchDiscreteCustomEvent, \"dispatchDiscreteCustomEvent\");\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/switch.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar SWITCH_NAME = \"Switch\";\nvar [createSwitchContext, createSwitchScope] = createContextScope(SWITCH_NAME);\nvar [SwitchProviderImpl, useSwitchContext] = createSwitchContext(SWITCH_NAME);\nfunction SwitchProvider(props) {\n const {\n __scopeSwitch,\n checked: checkedProp,\n children,\n defaultChecked,\n disabled,\n form,\n name,\n onCheckedChange,\n required,\n value = \"on\",\n // @ts-expect-error\n internal_do_not_use_render\n } = props;\n const [checked, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked ?? false,\n onChange: onCheckedChange,\n caller: SWITCH_NAME\n });\n const [control, setControl] = React.useState(null);\n const [bubbleInput, setBubbleInput] = React.useState(null);\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const [userInteractionCount, onUserInteraction] = React.useReducer(\n (count) => count + 1,\n 0\n );\n const isFormControl = control ? !!form || !!control.closest(\"form\") : (\n // We set this to true by default so that events bubble to forms without JS (SSR)\n true\n );\n const context = {\n checked,\n setChecked,\n disabled,\n control,\n setControl,\n name,\n form,\n value,\n hasConsumerStoppedPropagationRef,\n userInteractionCount,\n onUserInteraction,\n required,\n defaultChecked,\n isFormControl,\n bubbleInput,\n setBubbleInput\n };\n return /* @__PURE__ */ jsx(SwitchProviderImpl, { scope: __scopeSwitch, ...context, children: isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children });\n}\n__name(SwitchProvider, \"SwitchProvider\");\nvar TRIGGER_NAME = \"SwitchTrigger\";\nvar SwitchTrigger = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function SwitchTrigger2({ __scopeSwitch, onClick, ...switchProps }, forwardedRef) {\n const {\n control,\n form,\n value,\n disabled,\n checked,\n required,\n setControl,\n setChecked,\n hasConsumerStoppedPropagationRef,\n onUserInteraction,\n isFormControl,\n bubbleInput\n } = useSwitchContext(TRIGGER_NAME, __scopeSwitch);\n const composedRefs = useComposedRefs(forwardedRef, setControl);\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const associatedForm = form ? control?.ownerDocument.getElementById(form) : control?.form;\n if (associatedForm instanceof HTMLFormElement) {\n const reset = /* @__PURE__ */ __name(() => setChecked(initialCheckedStateRef.current), \"reset\");\n associatedForm.addEventListener(\"reset\", reset);\n return () => associatedForm.removeEventListener(\"reset\", reset);\n }\n }, [control, form, setChecked]);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"switch\",\n \"aria-checked\": checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...switchProps,\n ref: composedRefs,\n onClick: composeEventHandlers(onClick, (event) => {\n onUserInteraction();\n setChecked((prevChecked) => !prevChecked);\n if (bubbleInput && isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n );\n }, \"SwitchTrigger\")\n);\nvar Switch = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function Switch2(props, forwardedRef) {\n const {\n __scopeSwitch,\n name,\n checked,\n defaultChecked,\n required,\n disabled,\n value,\n onCheckedChange,\n form,\n ...switchProps\n } = props;\n return /* @__PURE__ */ jsx(\n SwitchProvider,\n {\n __scopeSwitch,\n checked,\n defaultChecked,\n disabled,\n required,\n onCheckedChange,\n name,\n form,\n value,\n internal_do_not_use_render: ({ isFormControl }) => /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n SwitchTrigger,\n {\n ...switchProps,\n ref: forwardedRef,\n __scopeSwitch\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n SwitchBubbleInput,\n {\n __scopeSwitch\n }\n )\n ] })\n }\n );\n }, \"Switch\")\n);\nvar THUMB_NAME = \"SwitchThumb\";\nvar SwitchThumb = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function SwitchThumb2(props, forwardedRef) {\n const { __scopeSwitch, ...thumbProps } = props;\n const context = useSwitchContext(THUMB_NAME, __scopeSwitch);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...thumbProps,\n ref: forwardedRef\n }\n );\n }, \"SwitchThumb\")\n);\nvar BUBBLE_INPUT_NAME = \"SwitchBubbleInput\";\nvar SwitchBubbleInput = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function SwitchBubbleInput2({ __scopeSwitch, onClick, ...props }, forwardedRef) {\n const {\n control,\n hasConsumerStoppedPropagationRef,\n userInteractionCount,\n checked,\n defaultChecked,\n required,\n disabled,\n name,\n value,\n form,\n bubbleInput,\n setBubbleInput\n } = useSwitchContext(BUBBLE_INPUT_NAME, __scopeSwitch);\n const composedRefs = useComposedRefs(forwardedRef, setBubbleInput);\n const controlSize = useSize(control);\n const shouldStopClickPropagationRef = React.useRef(false);\n const prevCheckedRef = React.useRef(checked);\n const prevUserInteractionCountRef = React.useRef(userInteractionCount);\n React.useEffect(() => {\n const input = bubbleInput;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n const isUserInteraction = userInteractionCount !== prevUserInteractionCountRef.current;\n prevUserInteractionCountRef.current = userInteractionCount;\n const checkedChanged = prevCheckedRef.current !== checked;\n prevCheckedRef.current = checked;\n const bubbles = !(isUserInteraction && hasConsumerStoppedPropagationRef.current);\n if (checkedChanged && setChecked) {\n shouldStopClickPropagationRef.current = !isUserInteraction;\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n shouldStopClickPropagationRef.current = false;\n }\n }, [bubbleInput, checked, hasConsumerStoppedPropagationRef, userInteractionCount]);\n const defaultCheckedRef = React.useRef(checked);\n return /* @__PURE__ */ jsx(\n Primitive.input,\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n required,\n disabled,\n name,\n value,\n form,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n onClick: composeEventHandlers(onClick, (event) => {\n if (shouldStopClickPropagationRef.current) {\n event.stopPropagation();\n }\n }),\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0,\n // We transform because the input is absolutely positioned but we have\n // rendered it **after** the button. This pulls it back to sit on top\n // of the button.\n transform: \"translateX(-100%)\"\n }\n }\n );\n }, \"SwitchBubbleInput\")\n);\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n__name(isFunction, \"isFunction\");\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\n__name(getState, \"getState\");\nexport {\n Switch as Root,\n Switch,\n SwitchThumb,\n SwitchThumb as Thumb,\n createSwitchScope,\n SwitchBubbleInput as unstable_BubbleInput,\n SwitchProvider as unstable_Provider,\n SwitchBubbleInput as unstable_SwitchBubbleInput,\n SwitchProvider as unstable_SwitchProvider,\n SwitchTrigger as unstable_SwitchTrigger,\n SwitchTrigger as unstable_Trigger\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\";\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\";\nimport { cn } from \"../../utils/cn\";\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n ref={ref}\n className={cn(\n \"peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border border-border transition-colors data-[state=checked]:bg-primary data-[state=unchecked]:bg-bg-elevated focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/60 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n \"pointer-events-none block h-4 w-4 rounded-full bg-foreground shadow-lg transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0.5\",\n )}\n />\n </SwitchPrimitives.Root>\n));\nSwitch.displayName = SwitchPrimitives.Root.displayName;\n\nexport { Switch };\n"],"names":["__defProp","__name","target","value","canUseDOM","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","getOwnerWindow","element","getOwnerDocument","getActiveElement","node","activeDescendant","activeElement","isFrame","id","setRef","ref","composeRefs","refs","hasCleanup","cleanups","cleanup","i","useComposedRefs","React.useCallback","createContext2","rootComponentName","defaultContext","Context","React.createContext","Provider","props","children","context","React.useMemo","jsx","useContext2","consumerName","options","optional","React.useContext","createContextScope","scopeName","createContextScopeDeps","defaultContexts","createContext3","BaseContext","index","scope","createScope","scopeContexts","contexts","composeContextScopes","scopes","baseScope","scopeHooks","createScope2","overrideScopes","nextScopes","nextScopes2","useScope","currentScope","useLayoutEffect2","React.useLayoutEffect","useReactEffectEvent","React","useReactInsertionEffect","useEffectEvent","callback","React.useRef","useLayoutEffect","args","useInsertionEffect","useControllableState","prop","defaultProp","onChange","caller","uncontrolledProp","setUncontrolledProp","onChangeRef","useUncontrolledState","isControlled","setValue","nextValue","value2","isFunction","React.useState","prevValueRef","React.useEffect","SYNC_STATE","useControllableStateReducer","reducer","userArgs","initialArg","init","controlledState","onChangeProp","internalState","dispatch","React2.useReducer","state2","action","next","uncontrolledState","React2.useRef","React2.useEffect","state","React2.useMemo","useSize","size","setSize","resizeObserver","entries","entry","width","height","borderSizeEntry","borderSize","createSlot","ownerName","Slot2","React.forwardRef","forwardedRef","slotProps","slottableElement","hasSlottable","newChildren","isLazyComponent","use","React.Children","maybeSlottable","isSlottable","slottable","child","getSlottableElementFromSlottable","React.cloneElement","React.isValidElement","slottableElementRef","getElementRef","composedRef","createSlottableError","createSlotError","mergedProps","mergeProps","React.Fragment","SLOTTABLE_IDENTIFIER","createSlottable","Slottable2","child2","childProps","overrideProps","propName","slotPropValue","childPropValue","result","getter","mayWarn","REACT_LAZY_TYPE","isPromiseLike","NODES","Primitive","primitive","Slot","Node","asChild","primitiveProps","Comp","dispatchDiscreteCustomEvent","ReactDOM.flushSync","SWITCH_NAME","createSwitchContext","createSwitchScope","SwitchProviderImpl","useSwitchContext","SwitchProvider","__scopeSwitch","checkedProp","defaultChecked","disabled","form","name","onCheckedChange","required","internal_do_not_use_render","checked","setChecked","control","setControl","bubbleInput","setBubbleInput","hasConsumerStoppedPropagationRef","userInteractionCount","onUserInteraction","React.useReducer","count","isFormControl","TRIGGER_NAME","SwitchTrigger","onClick","switchProps","composedRefs","initialCheckedStateRef","associatedForm","reset","getState","prevChecked","Switch","jsxs","Fragment","SwitchBubbleInput","THUMB_NAME","SwitchThumb","thumbProps","BUBBLE_INPUT_NAME","controlSize","shouldStopClickPropagationRef","prevCheckedRef","prevUserInteractionCountRef","input","inputProto","isUserInteraction","checkedChanged","bubbles","defaultCheckedRef","className","SwitchPrimitives.Root","cn","SwitchPrimitives.Thumb"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9]}
1
+ {"version":3,"file":"switch-kUZCrbia.js","sources":["../../node_modules/@radix-ui/primitive/dist/index.mjs","../../node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../../node_modules/@radix-ui/react-context/dist/index.mjs","../../node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","../../node_modules/@radix-ui/react-use-effect-event/dist/index.mjs","../../node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","../../node_modules/@radix-ui/react-use-size/dist/index.mjs","../../node_modules/@radix-ui/react-slot/dist/index.mjs","../../node_modules/@radix-ui/react-primitive/dist/index.mjs","../../node_modules/@radix-ui/react-switch/dist/index.mjs","../../src/components/ui/switch.tsx"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/primitive.tsx\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return /* @__PURE__ */ __name(function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n }, \"handleEvent\");\n}\n__name(composeEventHandlers, \"composeEventHandlers\");\nfunction getOwnerWindow(element) {\n if (!canUseDOM) {\n throw new Error(\"Cannot access window outside of the DOM\");\n }\n return element?.ownerDocument?.defaultView ?? window;\n}\n__name(getOwnerWindow, \"getOwnerWindow\");\nfunction getOwnerDocument(element) {\n if (!canUseDOM) {\n throw new Error(\"Cannot access document outside of the DOM\");\n }\n return element?.ownerDocument ?? document;\n}\n__name(getOwnerDocument, \"getOwnerDocument\");\nfunction getActiveElement(node, activeDescendant = false) {\n const { activeElement } = getOwnerDocument(node);\n if (!activeElement?.nodeName) {\n return null;\n }\n if (isFrame(activeElement) && activeElement.contentDocument) {\n return getActiveElement(activeElement.contentDocument.body, activeDescendant);\n }\n if (activeDescendant) {\n const id = activeElement.getAttribute(\"aria-activedescendant\");\n if (id) {\n const element = getOwnerDocument(activeElement).getElementById(id);\n if (element) {\n return element;\n }\n }\n }\n return activeElement;\n}\n__name(getActiveElement, \"getActiveElement\");\nfunction isFrame(element) {\n return element.tagName === \"IFRAME\";\n}\n__name(isFrame, \"isFrame\");\nexport {\n canUseDOM,\n composeEventHandlers,\n getActiveElement,\n getOwnerDocument,\n getOwnerWindow,\n isFrame\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/compose-refs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\n__name(setRef, \"setRef\");\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\n__name(composeRefs, \"composeRefs\");\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\n__name(useComposedRefs, \"useComposedRefs\");\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/create-context.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\n// @__NO_SIDE_EFFECTS__\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n Context.displayName = rootComponentName + \"Context\";\n const Provider = /* @__PURE__ */ __name((props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n }, \"Provider\");\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, options = {}) {\n const { optional = false } = options;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n if (optional) return void 0;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n __name(useContext2, \"useContext\");\n return [Provider, useContext2];\n}\n__name(createContext2, \"createContext\");\n// @__NO_SIDE_EFFECTS__\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n BaseContext.displayName = rootComponentName + \"Context\";\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = /* @__PURE__ */ __name((props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n }, \"Provider\");\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope, options = {}) {\n const { optional = false } = options;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n if (optional) return void 0;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n __name(useContext2, \"useContext\");\n return [Provider, useContext2];\n }\n __name(createContext3, \"createContext\");\n const createScope = /* @__PURE__ */ __name(() => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return /* @__PURE__ */ __name(function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n }, \"useScope\");\n }, \"createScope\");\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\n__name(createContextScope, \"createContextScope\");\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = /* @__PURE__ */ __name(() => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return /* @__PURE__ */ __name(function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n }, \"useComposedScopes\");\n }, \"createScope\");\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\n__name(composeContextScopes, \"composeContextScopes\");\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// src/use-layout-effect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = globalThis?.document ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/use-effect-event.tsx\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport * as React from \"react\";\nvar useReactEffectEvent = React[\" useEffectEvent \".trim().toString()];\nvar useReactInsertionEffect = React[\" useInsertionEffect \".trim().toString()];\nfunction useEffectEvent(callback) {\n if (typeof useReactEffectEvent === \"function\") {\n return useReactEffectEvent(callback);\n }\n const ref = React.useRef(() => {\n throw new Error(\"Cannot call an event handler while rendering.\");\n });\n if (typeof useReactInsertionEffect === \"function\") {\n useReactInsertionEffect(() => {\n ref.current = callback;\n });\n } else {\n useLayoutEffect(() => {\n ref.current = callback;\n });\n }\n return React.useMemo(() => ((...args) => ref.current?.(...args)), []);\n}\n__name(useEffectEvent, \"useEffectEvent\");\nexport {\n useEffectEvent\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/use-controllable-state.tsx\nimport * as React from \"react\";\nimport { IS_DEVELOPMENT } from \"@radix-ui/primitive/is-development\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useInsertionEffect = React[\" useInsertionEffect \".trim().toString()] || useLayoutEffect;\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = /* @__PURE__ */ __name(() => {\n }, \"onChange\"),\n caller\n}) {\n const [uncontrolledProp, setUncontrolledProp, onChangeRef] = useUncontrolledState({\n defaultProp,\n onChange\n });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n if (IS_DEVELOPMENT) {\n const isControlledRef = React.useRef(prop !== void 0);\n React.useEffect(() => {\n const wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled) {\n const from = wasControlled ? \"controlled\" : \"uncontrolled\";\n const to = isControlled ? \"controlled\" : \"uncontrolled\";\n console.warn(\n `${caller} is changing from ${from} to ${to}. 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.`\n );\n }\n isControlledRef.current = isControlled;\n }, [isControlled, caller]);\n }\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue;\n if (value2 !== prop) {\n onChangeRef.current?.(value2);\n }\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, onChangeRef]\n );\n return [value, setValue];\n}\n__name(useControllableState, \"useControllableState\");\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const [value, setValue] = React.useState(defaultProp);\n const prevValueRef = React.useRef(value);\n const onChangeRef = React.useRef(onChange);\n useInsertionEffect(() => {\n onChangeRef.current = onChange;\n }, [onChange]);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n onChangeRef.current?.(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef]);\n return [value, setValue, onChangeRef];\n}\n__name(useUncontrolledState, \"useUncontrolledState\");\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n__name(isFunction, \"isFunction\");\n\n// src/use-controllable-state-reducer.tsx\nimport * as React2 from \"react\";\nimport { IS_DEVELOPMENT as IS_DEVELOPMENT2 } from \"@radix-ui/primitive/is-development\";\nimport { useEffectEvent } from \"@radix-ui/react-use-effect-event\";\nvar SYNC_STATE = Symbol(\"RADIX:SYNC_STATE\");\nfunction useControllableStateReducer(reducer, userArgs, initialArg, init) {\n const { prop: controlledState, defaultProp, onChange: onChangeProp, caller } = userArgs;\n const isControlled = controlledState !== void 0;\n const onChange = useEffectEvent(onChangeProp);\n if (IS_DEVELOPMENT2) {\n const isControlledRef = React2.useRef(controlledState !== void 0);\n React2.useEffect(() => {\n const wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled) {\n const from = wasControlled ? \"controlled\" : \"uncontrolled\";\n const to = isControlled ? \"controlled\" : \"uncontrolled\";\n console.warn(\n `${caller} is changing from ${from} to ${to}. 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.`\n );\n }\n isControlledRef.current = isControlled;\n }, [isControlled, caller]);\n }\n const args = [{ ...initialArg, state: defaultProp }];\n if (init) {\n args.push(init);\n }\n const [internalState, dispatch] = React2.useReducer(\n (state2, action) => {\n if (action.type === SYNC_STATE) {\n return { ...state2, state: action.state };\n }\n const next = reducer(state2, action);\n if (isControlled && !Object.is(next.state, state2.state)) {\n onChange(next.state);\n }\n return next;\n },\n ...args\n );\n const uncontrolledState = internalState.state;\n const prevValueRef = React2.useRef(uncontrolledState);\n React2.useEffect(() => {\n if (prevValueRef.current !== uncontrolledState) {\n prevValueRef.current = uncontrolledState;\n if (!isControlled) {\n onChange(uncontrolledState);\n }\n }\n }, [uncontrolledState, prevValueRef, isControlled]);\n const state = React2.useMemo(() => {\n const isControlled2 = controlledState !== void 0;\n if (isControlled2) {\n return { ...internalState, state: controlledState };\n }\n return internalState;\n }, [internalState, controlledState]);\n React2.useEffect(() => {\n if (isControlled && !Object.is(controlledState, internalState.state)) {\n dispatch({ type: SYNC_STATE, state: controlledState });\n }\n }, [controlledState, internalState.state, isControlled]);\n return [state, dispatch];\n}\n__name(useControllableStateReducer, \"useControllableStateReducer\");\nexport {\n useControllableState,\n useControllableStateReducer\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/use-size.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nfunction useSize(element) {\n const [size, setSize] = React.useState(void 0);\n useLayoutEffect(() => {\n if (element) {\n setSize({ width: element.offsetWidth, height: element.offsetHeight });\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n if (!entries.length) {\n return;\n }\n const entry = entries[0];\n let width;\n let height;\n if (\"borderBoxSize\" in entry) {\n const borderSizeEntry = entry[\"borderBoxSize\"];\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize[\"inlineSize\"];\n height = borderSize[\"blockSize\"];\n } else {\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({ width, height });\n });\n resizeObserver.observe(element, { box: \"border-box\" });\n return () => resizeObserver.unobserve(element);\n } else {\n setSize(void 0);\n }\n }, [element]);\n return size;\n}\n__name(useSize, \"useSize\");\nexport {\n useSize\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/slot.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\n// @__NO_SIDE_EFFECTS__\nfunction createSlot(ownerName) {\n const Slot2 = React.forwardRef((props, forwardedRef) => {\n let { children, ...slotProps } = props;\n let slottableElement = null;\n let hasSlottable = false;\n const newChildren = [];\n if (isLazyComponent(children) && typeof use === \"function\") {\n children = use(children._payload);\n }\n React.Children.forEach(children, (maybeSlottable) => {\n if (isSlottable(maybeSlottable)) {\n hasSlottable = true;\n const slottable = maybeSlottable;\n let child = \"child\" in slottable.props ? slottable.props.child : slottable.props.children;\n if (isLazyComponent(child) && typeof use === \"function\") {\n child = use(child._payload);\n }\n slottableElement = getSlottableElementFromSlottable(slottable, child);\n newChildren.push(slottableElement?.props?.children);\n } else {\n newChildren.push(maybeSlottable);\n }\n });\n if (slottableElement) {\n slottableElement = React.cloneElement(slottableElement, void 0, newChildren);\n } else if (\n // A `Slottable` was found but it didn't resolve to a single element (e.g.\n // it wrapped multiple elements, text, or a render-prop `child` that\n // wasn't an element). Don't fall back to treating the `Slottable` wrapper\n // itself as the slot target — throw a descriptive error below instead.\n !hasSlottable && React.Children.count(children) === 1 && React.isValidElement(children)\n ) {\n slottableElement = children;\n }\n const slottableElementRef = slottableElement ? getElementRef(slottableElement) : void 0;\n const composedRef = useComposedRefs(forwardedRef, slottableElementRef);\n if (!slottableElement) {\n if (children || children === 0) {\n throw new Error(\n hasSlottable ? createSlottableError(ownerName) : createSlotError(ownerName)\n );\n }\n return children;\n }\n const mergedProps = mergeProps(slotProps, slottableElement.props ?? {});\n if (slottableElement.type !== React.Fragment) {\n mergedProps.ref = forwardedRef ? composedRef : slottableElementRef;\n }\n return React.cloneElement(slottableElement, mergedProps);\n });\n Slot2.displayName = `${ownerName}.Slot`;\n return Slot2;\n}\n__name(createSlot, \"createSlot\");\nvar Slot = /* @__PURE__ */ createSlot(\"Slot\");\nvar SLOTTABLE_IDENTIFIER = Symbol.for(\"radix.slottable\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlottable(ownerName) {\n const Slottable2 = /* @__PURE__ */ __name((props) => \"child\" in props ? props.children(props.child) : props.children, \"Slottable\");\n Slottable2.displayName = `${ownerName}.Slottable`;\n Slottable2.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable2;\n}\n__name(createSlottable, \"createSlottable\");\nvar Slottable = /* @__PURE__ */ createSlottable(\"Slottable\");\nvar getSlottableElementFromSlottable = /* @__PURE__ */ __name((slottable, child) => {\n if (\"child\" in slottable.props) {\n const child2 = slottable.props.child;\n if (!React.isValidElement(child2)) return null;\n return React.cloneElement(child2, void 0, slottable.props.children(child2.props.children));\n }\n return React.isValidElement(child) ? child : null;\n}, \"getSlottableElementFromSlottable\");\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\n__name(mergeProps, \"mergeProps\");\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\n__name(getElementRef, \"getElementRef\");\nfunction isSlottable(child) {\n return React.isValidElement(child) && typeof child.type === \"function\" && \"__radixId\" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;\n}\n__name(isSlottable, \"isSlottable\");\nvar REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nfunction isLazyComponent(element) {\n return element != null && typeof element === \"object\" && \"$$typeof\" in element && element.$$typeof === REACT_LAZY_TYPE && \"_payload\" in element && isPromiseLike(element._payload);\n}\n__name(isLazyComponent, \"isLazyComponent\");\nfunction isPromiseLike(value) {\n return typeof value === \"object\" && value !== null && \"then\" in value;\n}\n__name(isPromiseLike, \"isPromiseLike\");\nvar createSlotError = /* @__PURE__ */ __name((ownerName) => {\n return `${ownerName} failed to slot onto its children. Expected a single React element child or \\`Slottable\\`.`;\n}, \"createSlotError\");\nvar createSlottableError = /* @__PURE__ */ __name((ownerName) => {\n return `${ownerName} failed to slot onto its \\`Slottable\\`. Expected \\`Slottable\\` to receive a single React element child.`;\n}, \"createSlottableError\");\nvar use = React[\" use \".trim().toString()];\nexport {\n Slot as Root,\n Slot,\n Slottable,\n createSlot,\n createSlottable\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"select\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\n__name(dispatchDiscreteCustomEvent, \"dispatchDiscreteCustomEvent\");\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/switch.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar SWITCH_NAME = \"Switch\";\nvar [createSwitchContext, createSwitchScope] = createContextScope(SWITCH_NAME);\nvar [SwitchProviderImpl, useSwitchContext] = createSwitchContext(SWITCH_NAME);\nfunction SwitchProvider(props) {\n const {\n __scopeSwitch,\n checked: checkedProp,\n children,\n defaultChecked,\n disabled,\n form,\n name,\n onCheckedChange,\n required,\n value = \"on\",\n // @ts-expect-error\n internal_do_not_use_render\n } = props;\n const [checked, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked ?? false,\n onChange: onCheckedChange,\n caller: SWITCH_NAME\n });\n const [control, setControl] = React.useState(null);\n const [bubbleInput, setBubbleInput] = React.useState(null);\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const [userInteractionCount, onUserInteraction] = React.useReducer(\n (count) => count + 1,\n 0\n );\n const isFormControl = control ? !!form || !!control.closest(\"form\") : (\n // We set this to true by default so that events bubble to forms without JS (SSR)\n true\n );\n const context = {\n checked,\n setChecked,\n disabled,\n control,\n setControl,\n name,\n form,\n value,\n hasConsumerStoppedPropagationRef,\n userInteractionCount,\n onUserInteraction,\n required,\n defaultChecked,\n isFormControl,\n bubbleInput,\n setBubbleInput\n };\n return /* @__PURE__ */ jsx(SwitchProviderImpl, { scope: __scopeSwitch, ...context, children: isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children });\n}\n__name(SwitchProvider, \"SwitchProvider\");\nvar TRIGGER_NAME = \"SwitchTrigger\";\nvar SwitchTrigger = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function SwitchTrigger2({ __scopeSwitch, onClick, ...switchProps }, forwardedRef) {\n const {\n control,\n form,\n value,\n disabled,\n checked,\n required,\n setControl,\n setChecked,\n hasConsumerStoppedPropagationRef,\n onUserInteraction,\n isFormControl,\n bubbleInput\n } = useSwitchContext(TRIGGER_NAME, __scopeSwitch);\n const composedRefs = useComposedRefs(forwardedRef, setControl);\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const associatedForm = form ? control?.ownerDocument.getElementById(form) : control?.form;\n if (associatedForm instanceof HTMLFormElement) {\n const reset = /* @__PURE__ */ __name(() => setChecked(initialCheckedStateRef.current), \"reset\");\n associatedForm.addEventListener(\"reset\", reset);\n return () => associatedForm.removeEventListener(\"reset\", reset);\n }\n }, [control, form, setChecked]);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"switch\",\n \"aria-checked\": checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...switchProps,\n ref: composedRefs,\n onClick: composeEventHandlers(onClick, (event) => {\n onUserInteraction();\n setChecked((prevChecked) => !prevChecked);\n if (bubbleInput && isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n );\n }, \"SwitchTrigger\")\n);\nvar Switch = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function Switch2(props, forwardedRef) {\n const {\n __scopeSwitch,\n name,\n checked,\n defaultChecked,\n required,\n disabled,\n value,\n onCheckedChange,\n form,\n ...switchProps\n } = props;\n return /* @__PURE__ */ jsx(\n SwitchProvider,\n {\n __scopeSwitch,\n checked,\n defaultChecked,\n disabled,\n required,\n onCheckedChange,\n name,\n form,\n value,\n internal_do_not_use_render: ({ isFormControl }) => /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n SwitchTrigger,\n {\n ...switchProps,\n ref: forwardedRef,\n __scopeSwitch\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n SwitchBubbleInput,\n {\n __scopeSwitch\n }\n )\n ] })\n }\n );\n }, \"Switch\")\n);\nvar THUMB_NAME = \"SwitchThumb\";\nvar SwitchThumb = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function SwitchThumb2(props, forwardedRef) {\n const { __scopeSwitch, ...thumbProps } = props;\n const context = useSwitchContext(THUMB_NAME, __scopeSwitch);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...thumbProps,\n ref: forwardedRef\n }\n );\n }, \"SwitchThumb\")\n);\nvar BUBBLE_INPUT_NAME = \"SwitchBubbleInput\";\nvar SwitchBubbleInput = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function SwitchBubbleInput2({ __scopeSwitch, onClick, ...props }, forwardedRef) {\n const {\n control,\n hasConsumerStoppedPropagationRef,\n userInteractionCount,\n checked,\n defaultChecked,\n required,\n disabled,\n name,\n value,\n form,\n bubbleInput,\n setBubbleInput\n } = useSwitchContext(BUBBLE_INPUT_NAME, __scopeSwitch);\n const composedRefs = useComposedRefs(forwardedRef, setBubbleInput);\n const controlSize = useSize(control);\n const shouldStopClickPropagationRef = React.useRef(false);\n const prevCheckedRef = React.useRef(checked);\n const prevUserInteractionCountRef = React.useRef(userInteractionCount);\n React.useEffect(() => {\n const input = bubbleInput;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n const isUserInteraction = userInteractionCount !== prevUserInteractionCountRef.current;\n prevUserInteractionCountRef.current = userInteractionCount;\n const checkedChanged = prevCheckedRef.current !== checked;\n prevCheckedRef.current = checked;\n const bubbles = !(isUserInteraction && hasConsumerStoppedPropagationRef.current);\n if (checkedChanged && setChecked) {\n shouldStopClickPropagationRef.current = !isUserInteraction;\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n shouldStopClickPropagationRef.current = false;\n }\n }, [bubbleInput, checked, hasConsumerStoppedPropagationRef, userInteractionCount]);\n const defaultCheckedRef = React.useRef(checked);\n return /* @__PURE__ */ jsx(\n Primitive.input,\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n required,\n disabled,\n name,\n value,\n form,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n onClick: composeEventHandlers(onClick, (event) => {\n if (shouldStopClickPropagationRef.current) {\n event.stopPropagation();\n }\n }),\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0,\n // We transform because the input is absolutely positioned but we have\n // rendered it **after** the button. This pulls it back to sit on top\n // of the button.\n transform: \"translateX(-100%)\"\n }\n }\n );\n }, \"SwitchBubbleInput\")\n);\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n__name(isFunction, \"isFunction\");\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\n__name(getState, \"getState\");\nexport {\n Switch as Root,\n Switch,\n SwitchThumb,\n SwitchThumb as Thumb,\n createSwitchScope,\n SwitchBubbleInput as unstable_BubbleInput,\n SwitchProvider as unstable_Provider,\n SwitchBubbleInput as unstable_SwitchBubbleInput,\n SwitchProvider as unstable_SwitchProvider,\n SwitchTrigger as unstable_SwitchTrigger,\n SwitchTrigger as unstable_Trigger\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\";\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\";\nimport { cn } from \"../../utils/cn\";\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n ref={ref}\n className={cn(\n \"peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border border-border transition-colors data-[state=checked]:bg-primary data-[state=unchecked]:bg-bg-elevated focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/60 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n \"pointer-events-none block h-4 w-4 rounded-full bg-foreground shadow-lg transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0.5\",\n )}\n />\n </SwitchPrimitives.Root>\n));\nSwitch.displayName = SwitchPrimitives.Root.displayName;\n\nexport { Switch };\n"],"names":["__defProp","__name","target","value","canUseDOM","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","getOwnerWindow","element","getOwnerDocument","getActiveElement","node","activeDescendant","activeElement","isFrame","id","setRef","ref","composeRefs","refs","hasCleanup","cleanups","cleanup","i","useComposedRefs","React.useCallback","createContext2","rootComponentName","defaultContext","Context","React.createContext","Provider","props","children","context","React.useMemo","jsx","useContext2","consumerName","options","optional","React.useContext","createContextScope","scopeName","createContextScopeDeps","defaultContexts","createContext3","BaseContext","index","scope","createScope","scopeContexts","contexts","composeContextScopes","scopes","baseScope","scopeHooks","createScope2","overrideScopes","nextScopes","nextScopes2","useScope","currentScope","useLayoutEffect2","React.useLayoutEffect","useReactEffectEvent","React","useReactInsertionEffect","useEffectEvent","callback","React.useRef","useLayoutEffect","args","useInsertionEffect","useControllableState","prop","defaultProp","onChange","caller","uncontrolledProp","setUncontrolledProp","onChangeRef","useUncontrolledState","isControlled","setValue","nextValue","value2","isFunction","React.useState","prevValueRef","React.useEffect","SYNC_STATE","useControllableStateReducer","reducer","userArgs","initialArg","init","controlledState","onChangeProp","internalState","dispatch","React2.useReducer","state2","action","next","uncontrolledState","React2.useRef","React2.useEffect","state","React2.useMemo","useSize","size","setSize","resizeObserver","entries","entry","width","height","borderSizeEntry","borderSize","createSlot","ownerName","Slot2","React.forwardRef","forwardedRef","slotProps","slottableElement","hasSlottable","newChildren","isLazyComponent","use","React.Children","maybeSlottable","isSlottable","slottable","child","getSlottableElementFromSlottable","React.cloneElement","React.isValidElement","slottableElementRef","getElementRef","composedRef","createSlottableError","createSlotError","mergedProps","mergeProps","React.Fragment","SLOTTABLE_IDENTIFIER","createSlottable","Slottable2","child2","childProps","overrideProps","propName","slotPropValue","childPropValue","result","getter","mayWarn","REACT_LAZY_TYPE","isPromiseLike","NODES","Primitive","primitive","Slot","Node","asChild","primitiveProps","Comp","dispatchDiscreteCustomEvent","ReactDOM.flushSync","SWITCH_NAME","createSwitchContext","createSwitchScope","SwitchProviderImpl","useSwitchContext","SwitchProvider","__scopeSwitch","checkedProp","defaultChecked","disabled","form","name","onCheckedChange","required","internal_do_not_use_render","checked","setChecked","control","setControl","bubbleInput","setBubbleInput","hasConsumerStoppedPropagationRef","userInteractionCount","onUserInteraction","React.useReducer","count","isFormControl","TRIGGER_NAME","SwitchTrigger","onClick","switchProps","composedRefs","initialCheckedStateRef","associatedForm","reset","getState","prevChecked","Switch","jsxs","Fragment","SwitchBubbleInput","THUMB_NAME","SwitchThumb","thumbProps","BUBBLE_INPUT_NAME","controlSize","shouldStopClickPropagationRef","prevCheckedRef","prevUserInteractionCountRef","input","inputProto","isUserInteraction","checkedChanged","bubbles","defaultCheckedRef","className","SwitchPrimitives.Root","cn","SwitchPrimitives.Thumb"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9]}
@@ -1,2 +1,2 @@
1
- import{j as a,n as m}from"./index-4MkLsevY.js";function u({pressed:r,onPressedChange:t,className:e,onClick:n,...o}){return a.jsx("button",{type:"button","aria-pressed":r,onClick:i=>{n?.(i),t?.(!r)},className:m("inline-flex items-center justify-center rounded-md border px-3 py-1.5 text-sm font-medium transition-all",r?"border-primary/50 bg-primary/15 text-neon glow-primary":"border-border bg-transparent text-muted hover:text-foreground",e),...o})}export{u as T};
2
- //# sourceMappingURL=toggle--QUzWk-Y.js.map
1
+ import{j as a,n as m}from"./index-NXDgILxv.js";function u({pressed:r,onPressedChange:t,className:e,onClick:n,...o}){return a.jsx("button",{type:"button","aria-pressed":r,onClick:i=>{n?.(i),t?.(!r)},className:m("inline-flex items-center justify-center rounded-md border px-3 py-1.5 text-sm font-medium transition-all",r?"border-primary/50 bg-primary/15 text-neon glow-primary":"border-border bg-transparent text-muted hover:text-foreground",e),...o})}export{u as T};
2
+ //# sourceMappingURL=toggle-DEe5mCwF.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toggle--QUzWk-Y.js","sources":["../../src/components/ui/toggle.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface ToggleProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n pressed?: boolean;\n onPressedChange?: (pressed: boolean) => void;\n}\n\nexport function Toggle({ pressed, onPressedChange, className, onClick, ...props }: ToggleProps) {\n return (\n <button\n type=\"button\"\n aria-pressed={pressed}\n onClick={(e) => {\n onClick?.(e);\n onPressedChange?.(!pressed);\n }}\n className={cn(\n \"inline-flex items-center justify-center rounded-md border px-3 py-1.5 text-sm font-medium transition-all\",\n pressed\n ? \"border-primary/50 bg-primary/15 text-neon glow-primary\"\n : \"border-border bg-transparent text-muted hover:text-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n"],"names":["Toggle","pressed","onPressedChange","className","onClick","props","jsx","e","cn"],"mappings":"+CAQO,SAASA,EAAO,CAAE,QAAAC,EAAS,gBAAAC,EAAiB,UAAAC,EAAW,QAAAC,EAAS,GAAGC,GAAsB,CAC9F,OACEC,EAAAA,IAAC,SAAA,CACC,KAAK,SACL,eAAcL,EACd,QAAUM,GAAM,CACdH,IAAUG,CAAC,EACXL,IAAkB,CAACD,CAAO,CAC5B,EACA,UAAWO,EACT,2GACAP,EACI,yDACA,gEACJE,CAAA,EAED,GAAGE,CAAA,CAAA,CAGV"}
1
+ {"version":3,"file":"toggle-DEe5mCwF.js","sources":["../../src/components/ui/toggle.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface ToggleProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n pressed?: boolean;\n onPressedChange?: (pressed: boolean) => void;\n}\n\nexport function Toggle({ pressed, onPressedChange, className, onClick, ...props }: ToggleProps) {\n return (\n <button\n type=\"button\"\n aria-pressed={pressed}\n onClick={(e) => {\n onClick?.(e);\n onPressedChange?.(!pressed);\n }}\n className={cn(\n \"inline-flex items-center justify-center rounded-md border px-3 py-1.5 text-sm font-medium transition-all\",\n pressed\n ? \"border-primary/50 bg-primary/15 text-neon glow-primary\"\n : \"border-border bg-transparent text-muted hover:text-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n"],"names":["Toggle","pressed","onPressedChange","className","onClick","props","jsx","e","cn"],"mappings":"+CAQO,SAASA,EAAO,CAAE,QAAAC,EAAS,gBAAAC,EAAiB,UAAAC,EAAW,QAAAC,EAAS,GAAGC,GAAsB,CAC9F,OACEC,EAAAA,IAAC,SAAA,CACC,KAAK,SACL,eAAcL,EACd,QAAUM,GAAM,CACdH,IAAUG,CAAC,EACXL,IAAkB,CAACD,CAAO,CAC5B,EACA,UAAWO,EACT,2GACAP,EACI,yDACA,gEACJE,CAAA,EAED,GAAGE,CAAA,CAAA,CAGV"}
@@ -1,2 +1,2 @@
1
- import{r as e}from"./index-4MkLsevY.js";function R(i={}){const{maxEvents:c=500,maxReconnects:l=5}=i,[f,v]=e.useState([]),[E,n]=e.useState("connecting"),[S,p]=e.useState(0),[m,d]=e.useState(null),o=e.useRef(0),s=e.useRef(null),r=e.useCallback(()=>{s.current&&s.current.close(),n("connecting");const t=new EventSource("/api/events");s.current=t,t.onopen=()=>{n("connected"),o.current=0},t.onmessage=g=>{try{const x=JSON.parse(g.data);v(u=>{const a=[...u,x];return a.length>c?a.slice(-c):a}),p(u=>u+1),d(Date.now())}catch{}},t.onerror=()=>{t.close(),o.current<l?(o.current+=1,n("connecting"),setTimeout(r,1e3)):n("disconnected")}},[c,l]);return e.useEffect(()=>(r(),()=>{s.current?.close()}),[r]),{events:f,status:E,eventCount:S,lastEventAt:m}}export{R as u};
2
- //# sourceMappingURL=useSSE-DcAeX67m.js.map
1
+ import{r as e}from"./index-NXDgILxv.js";function R(i={}){const{maxEvents:c=500,maxReconnects:l=5}=i,[f,v]=e.useState([]),[E,n]=e.useState("connecting"),[S,p]=e.useState(0),[m,d]=e.useState(null),o=e.useRef(0),s=e.useRef(null),r=e.useCallback(()=>{s.current&&s.current.close(),n("connecting");const t=new EventSource("/api/events");s.current=t,t.onopen=()=>{n("connected"),o.current=0},t.onmessage=g=>{try{const x=JSON.parse(g.data);v(u=>{const a=[...u,x];return a.length>c?a.slice(-c):a}),p(u=>u+1),d(Date.now())}catch{}},t.onerror=()=>{t.close(),o.current<l?(o.current+=1,n("connecting"),setTimeout(r,1e3)):n("disconnected")}},[c,l]);return e.useEffect(()=>(r(),()=>{s.current?.close()}),[r]),{events:f,status:E,eventCount:S,lastEventAt:m}}export{R as u};
2
+ //# sourceMappingURL=useSSE-BlCyLqge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSSE-DcAeX67m.js","sources":["../../src/hooks/useSSE.ts"],"sourcesContent":["/**\n * dashboard-client/src/hooks/useSSE.ts — Server-Sent Events hook.\n *\n * Connects to /api/events, provides real-time event stream.\n * SPRINT-B1: basic connection. SPRINT-D1: reconnect with backoff.\n */\n\nimport { useState, useEffect, useRef, useCallback } from 'react';\nimport type { SseEvent } from '../../../dashboard-server/api-contracts';\n\nexport type SseStatus = 'connecting' | 'connected' | 'disconnected' | 'error';\n\nexport interface UseSSEResult {\n events: SseEvent[];\n status: SseStatus;\n eventCount: number;\n lastEventAt: number | null;\n}\n\nexport interface UseSSEOptions {\n /** Max events to keep in memory (ring buffer). */\n maxEvents?: number;\n /** Max reconnect attempts before giving up. */\n maxReconnects?: number;\n}\n\n// SPRINT-D1-REMAINING: exponential backoff (1s → 2s → 4s → max 30s).\n// SPRINT-D1-REMAINING: after 5 failures, set status='disconnected'.\n\nexport function useSSE(options: UseSSEOptions = {}): UseSSEResult {\n const { maxEvents = 500, maxReconnects = 5 } = options;\n const [events, setEvents] = useState<SseEvent[]>([]);\n const [status, setStatus] = useState<SseStatus>('connecting');\n const [eventCount, setEventCount] = useState(0);\n const [lastEventAt, setLastEventAt] = useState<number | null>(null);\n const reconnectCount = useRef(0);\n const sourceRef = useRef<EventSource | null>(null);\n\n const connect = useCallback(() => {\n if (sourceRef.current) {\n sourceRef.current.close();\n }\n setStatus('connecting');\n const source = new EventSource('/api/events');\n sourceRef.current = source;\n\n source.onopen = () => {\n setStatus('connected');\n reconnectCount.current = 0;\n };\n\n source.onmessage = (event) => {\n try {\n const parsed = JSON.parse(event.data) as SseEvent;\n setEvents(prev => {\n const next = [...prev, parsed];\n return next.length > maxEvents ? next.slice(-maxEvents) : next;\n });\n setEventCount(c => c + 1);\n setLastEventAt(Date.now());\n } catch {\n // non-fatal: skip malformed events\n }\n };\n\n source.onerror = () => {\n source.close();\n if (reconnectCount.current < maxReconnects) {\n reconnectCount.current += 1;\n setStatus('connecting');\n // SPRINT-D1: use exponential backoff instead of fixed delay\n setTimeout(connect, 1000);\n } else {\n setStatus('disconnected');\n }\n };\n }, [maxEvents, maxReconnects]);\n\n useEffect(() => {\n connect();\n return () => {\n sourceRef.current?.close();\n };\n }, [connect]);\n\n return { events, status, eventCount, lastEventAt };\n}\n"],"names":["useSSE","options","maxEvents","maxReconnects","events","setEvents","useState","status","setStatus","eventCount","setEventCount","lastEventAt","setLastEventAt","reconnectCount","useRef","sourceRef","connect","useCallback","source","event","parsed","prev","next","c","useEffect"],"mappings":"wCA6BO,SAASA,EAAOC,EAAyB,GAAkB,CAChE,KAAM,CAAE,UAAAC,EAAY,IAAK,cAAAC,EAAgB,GAAMF,EACzC,CAACG,EAAQC,CAAS,EAAIC,EAAAA,SAAqB,CAAA,CAAE,EAC7C,CAACC,EAAQC,CAAS,EAAIF,EAAAA,SAAoB,YAAY,EACtD,CAACG,EAAYC,CAAa,EAAIJ,EAAAA,SAAS,CAAC,EACxC,CAACK,EAAaC,CAAc,EAAIN,EAAAA,SAAwB,IAAI,EAC5DO,EAAiBC,EAAAA,OAAO,CAAC,EACzBC,EAAYD,EAAAA,OAA2B,IAAI,EAE3CE,EAAUC,EAAAA,YAAY,IAAM,CAC5BF,EAAU,SACZA,EAAU,QAAQ,MAAA,EAEpBP,EAAU,YAAY,EACtB,MAAMU,EAAS,IAAI,YAAY,aAAa,EAC5CH,EAAU,QAAUG,EAEpBA,EAAO,OAAS,IAAM,CACpBV,EAAU,WAAW,EACrBK,EAAe,QAAU,CAC3B,EAEAK,EAAO,UAAaC,GAAU,CAC5B,GAAI,CACF,MAAMC,EAAS,KAAK,MAAMD,EAAM,IAAI,EACpCd,EAAUgB,GAAQ,CAChB,MAAMC,EAAO,CAAC,GAAGD,EAAMD,CAAM,EAC7B,OAAOE,EAAK,OAASpB,EAAYoB,EAAK,MAAM,CAACpB,CAAS,EAAIoB,CAC5D,CAAC,EACDZ,EAAca,GAAKA,EAAI,CAAC,EACxBX,EAAe,KAAK,KAAK,CAC3B,MAAQ,CAER,CACF,EAEAM,EAAO,QAAU,IAAM,CACrBA,EAAO,MAAA,EACHL,EAAe,QAAUV,GAC3BU,EAAe,SAAW,EAC1BL,EAAU,YAAY,EAEtB,WAAWQ,EAAS,GAAI,GAExBR,EAAU,cAAc,CAE5B,CACF,EAAG,CAACN,EAAWC,CAAa,CAAC,EAE7BqB,OAAAA,EAAAA,UAAU,KACRR,EAAA,EACO,IAAM,CACXD,EAAU,SAAS,MAAA,CACrB,GACC,CAACC,CAAO,CAAC,EAEL,CAAE,OAAAZ,EAAQ,OAAAG,EAAQ,WAAAE,EAAY,YAAAE,CAAA,CACvC"}
1
+ {"version":3,"file":"useSSE-BlCyLqge.js","sources":["../../src/hooks/useSSE.ts"],"sourcesContent":["/**\n * dashboard-client/src/hooks/useSSE.ts — Server-Sent Events hook.\n *\n * Connects to /api/events, provides real-time event stream.\n * SPRINT-B1: basic connection. SPRINT-D1: reconnect with backoff.\n */\n\nimport { useState, useEffect, useRef, useCallback } from 'react';\nimport type { SseEvent } from '../../../dashboard-server/api-contracts';\n\nexport type SseStatus = 'connecting' | 'connected' | 'disconnected' | 'error';\n\nexport interface UseSSEResult {\n events: SseEvent[];\n status: SseStatus;\n eventCount: number;\n lastEventAt: number | null;\n}\n\nexport interface UseSSEOptions {\n /** Max events to keep in memory (ring buffer). */\n maxEvents?: number;\n /** Max reconnect attempts before giving up. */\n maxReconnects?: number;\n}\n\n// SPRINT-D1-REMAINING: exponential backoff (1s → 2s → 4s → max 30s).\n// SPRINT-D1-REMAINING: after 5 failures, set status='disconnected'.\n\nexport function useSSE(options: UseSSEOptions = {}): UseSSEResult {\n const { maxEvents = 500, maxReconnects = 5 } = options;\n const [events, setEvents] = useState<SseEvent[]>([]);\n const [status, setStatus] = useState<SseStatus>('connecting');\n const [eventCount, setEventCount] = useState(0);\n const [lastEventAt, setLastEventAt] = useState<number | null>(null);\n const reconnectCount = useRef(0);\n const sourceRef = useRef<EventSource | null>(null);\n\n const connect = useCallback(() => {\n if (sourceRef.current) {\n sourceRef.current.close();\n }\n setStatus('connecting');\n const source = new EventSource('/api/events');\n sourceRef.current = source;\n\n source.onopen = () => {\n setStatus('connected');\n reconnectCount.current = 0;\n };\n\n source.onmessage = (event) => {\n try {\n const parsed = JSON.parse(event.data) as SseEvent;\n setEvents(prev => {\n const next = [...prev, parsed];\n return next.length > maxEvents ? next.slice(-maxEvents) : next;\n });\n setEventCount(c => c + 1);\n setLastEventAt(Date.now());\n } catch {\n // non-fatal: skip malformed events\n }\n };\n\n source.onerror = () => {\n source.close();\n if (reconnectCount.current < maxReconnects) {\n reconnectCount.current += 1;\n setStatus('connecting');\n // SPRINT-D1: use exponential backoff instead of fixed delay\n setTimeout(connect, 1000);\n } else {\n setStatus('disconnected');\n }\n };\n }, [maxEvents, maxReconnects]);\n\n useEffect(() => {\n connect();\n return () => {\n sourceRef.current?.close();\n };\n }, [connect]);\n\n return { events, status, eventCount, lastEventAt };\n}\n"],"names":["useSSE","options","maxEvents","maxReconnects","events","setEvents","useState","status","setStatus","eventCount","setEventCount","lastEventAt","setLastEventAt","reconnectCount","useRef","sourceRef","connect","useCallback","source","event","parsed","prev","next","c","useEffect"],"mappings":"wCA6BO,SAASA,EAAOC,EAAyB,GAAkB,CAChE,KAAM,CAAE,UAAAC,EAAY,IAAK,cAAAC,EAAgB,GAAMF,EACzC,CAACG,EAAQC,CAAS,EAAIC,EAAAA,SAAqB,CAAA,CAAE,EAC7C,CAACC,EAAQC,CAAS,EAAIF,EAAAA,SAAoB,YAAY,EACtD,CAACG,EAAYC,CAAa,EAAIJ,EAAAA,SAAS,CAAC,EACxC,CAACK,EAAaC,CAAc,EAAIN,EAAAA,SAAwB,IAAI,EAC5DO,EAAiBC,EAAAA,OAAO,CAAC,EACzBC,EAAYD,EAAAA,OAA2B,IAAI,EAE3CE,EAAUC,EAAAA,YAAY,IAAM,CAC5BF,EAAU,SACZA,EAAU,QAAQ,MAAA,EAEpBP,EAAU,YAAY,EACtB,MAAMU,EAAS,IAAI,YAAY,aAAa,EAC5CH,EAAU,QAAUG,EAEpBA,EAAO,OAAS,IAAM,CACpBV,EAAU,WAAW,EACrBK,EAAe,QAAU,CAC3B,EAEAK,EAAO,UAAaC,GAAU,CAC5B,GAAI,CACF,MAAMC,EAAS,KAAK,MAAMD,EAAM,IAAI,EACpCd,EAAUgB,GAAQ,CAChB,MAAMC,EAAO,CAAC,GAAGD,EAAMD,CAAM,EAC7B,OAAOE,EAAK,OAASpB,EAAYoB,EAAK,MAAM,CAACpB,CAAS,EAAIoB,CAC5D,CAAC,EACDZ,EAAca,GAAKA,EAAI,CAAC,EACxBX,EAAe,KAAK,KAAK,CAC3B,MAAQ,CAER,CACF,EAEAM,EAAO,QAAU,IAAM,CACrBA,EAAO,MAAA,EACHL,EAAe,QAAUV,GAC3BU,EAAe,SAAW,EAC1BL,EAAU,YAAY,EAEtB,WAAWQ,EAAS,GAAI,GAExBR,EAAU,cAAc,CAE5B,CACF,EAAG,CAACN,EAAWC,CAAa,CAAC,EAE7BqB,OAAAA,EAAAA,UAAU,KACRR,EAAA,EACO,IAAM,CACXD,EAAU,SAAS,MAAA,CACrB,GACC,CAACC,CAAO,CAAC,EAEL,CAAE,OAAAZ,EAAQ,OAAAG,EAAQ,WAAAE,EAAY,YAAAE,CAAA,CACvC"}
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>mega-compact dashboard</title>
7
- <script type="module" crossorigin src="./assets/index-4MkLsevY.js"></script>
7
+ <script type="module" crossorigin src="./assets/index-NXDgILxv.js"></script>
8
8
  <link rel="stylesheet" crossorigin href="./assets/index-Difwoltx.css">
9
9
  </head>
10
10
  <body>
@@ -23,6 +23,7 @@ import type {
23
23
  VectorCortexDiagnosticsView,
24
24
  VectorCortexOutcomesView,
25
25
  VectorCortexPolicyView,
26
+ VectorCortexPlatformView,
26
27
  } from "../types/vector-cortex";
27
28
 
28
29
  export type {
@@ -45,6 +46,7 @@ export type {
45
46
  VectorCortexDiagnosticsView,
46
47
  VectorCortexOutcomesView,
47
48
  VectorCortexPolicyView,
49
+ VectorCortexPlatformView,
48
50
  };
49
51
 
50
52
  export async function fetchVectorCortexEvaluation(): Promise<VectorCortexEvaluationSummary> {
@@ -187,3 +189,10 @@ export async function fetchVectorCortexPolicy(): Promise<VectorCortexPolicyView>
187
189
  if (!r.ok) throw new Error(`vector-cortex policy: ${r.status}`);
188
190
  return r.json() as Promise<VectorCortexPolicyView>;
189
191
  }
192
+
193
+ /** Reader-only engine parity/selection aggregate view (VC8C). Counts + codes only. */
194
+ export async function fetchVectorCortexPlatform(): Promise<VectorCortexPlatformView> {
195
+ const r = await fetch("/api/vector-cortex/platform");
196
+ if (!r.ok) throw new Error(`vector-cortex platform: ${r.status}`);
197
+ return r.json() as Promise<VectorCortexPlatformView>;
198
+ }
@@ -0,0 +1,42 @@
1
+ import type React from "react";
2
+ import type { VectorCortexPlatformView } from "../api/vector-cortex";
3
+ import { Card, CardContent, CardHeader, CardTitle } from "../components/ui/card";
4
+ import { Badge } from "../components/ui/badge";
5
+ import { Metric } from "./VectorCortexMetric";
6
+
7
+ export function VectorCortexPlatformCard({ view }: { view: VectorCortexPlatformView | null }): React.ReactElement {
8
+ return (
9
+ <Card>
10
+ <CardHeader>
11
+ <div className="flex items-center justify-between">
12
+ <CardTitle>Canary Platform + Rust Parity (VC8C)</CardTitle>
13
+ {view?.enabled ? (
14
+ <Badge variant="success">ACTIVE</Badge>
15
+ ) : (
16
+ <Badge variant="danger">OFF</Badge>
17
+ )}
18
+ </div>
19
+ </CardHeader>
20
+ <CardContent>
21
+ {!view?.enabled ? (
22
+ <div className="vc-empty">Canary platform disabled (VC8C off) — no engine parity checks are reported, so the selection stays at the predecessor (mode C). The selector and cross-conformance runner arithmetic still run; only this reporting seam is suppressed.</div>
23
+ ) : (
24
+ <>
25
+ <div className="grid grid-cols-2 gap-4 md:grid-cols-4">
26
+ <Metric label="Mode" value={view.mode} />
27
+ <Metric label="Fixtures" value={String(view.fixtureCount)} />
28
+ <Metric label="Passed" value={String(view.passed)} />
29
+ <Metric label="Failed" value={String(view.failed)} />
30
+ <Metric label="External runner" value={view.externalRunnerConfigured ? "configured" : "none"} />
31
+ <Metric label="Last failure" value={view.lastFailure ?? "none"} />
32
+ <Metric label="Updated" value={view.updatedAt} />
33
+ </div>
34
+ <div className="mt-3 text-xs text-muted-foreground">
35
+ Reader-only canary selection and external Rust parity — aggregate counts and RUST_ codes only. The selector admits a qualified external Rust artifact only when ABI version, URL metadata, commit, Cargo.lock digest, and platform all match evidence; otherwise it demotes to TS reference (mode B) or legacy (mode C). The cross-conformance runner exchanges length-framed neutral records over a local stdin/stdout channel (no network). No artifact bytes, output bytes, or free-text ever reaches the client.
36
+ </div>
37
+ </>
38
+ )}
39
+ </CardContent>
40
+ </Card>
41
+ );
42
+ }
@@ -27,6 +27,7 @@ import { VectorCortexEconomicsCard } from "./VectorCortexEconomicsCard";
27
27
  import { VectorCortexDiagnosticsCard } from "./VectorCortexDiagnosticsCard";
28
28
  import { VectorCortexOutcomesCard } from "./VectorCortexOutcomesCard";
29
29
  import { VectorCortexPolicyCard } from "./VectorCortexPolicyCard";
30
+ import { VectorCortexPlatformCard } from "./VectorCortexPlatformCard";
30
31
  import {
31
32
  VectorCortexShardsCard,
32
33
  VectorCortexReconstructCard,
@@ -206,6 +207,7 @@ export default function VectorCortexTab(): React.ReactElement {
206
207
  <VectorCortexDiagnosticsCard view={poll.diagnostics} />
207
208
  <VectorCortexOutcomesCard view={poll.outcomes} />
208
209
  <VectorCortexPolicyCard view={poll.policy} />
210
+ <VectorCortexPlatformCard view={poll.platform} />
209
211
  <VectorCortexLedgerCard ledger={poll.ledger} />
210
212
  </div>
211
213
  );
@@ -21,6 +21,7 @@ import {
21
21
  fetchVectorCortexDiagnostics,
22
22
  fetchVectorCortexOutcomes,
23
23
  fetchVectorCortexPolicy,
24
+ fetchVectorCortexPlatform,
24
25
  fetchVectorCortexShards,
25
26
  fetchVectorCortexTopology,
26
27
  type VectorCortexEvaluationSummary,
@@ -39,6 +40,7 @@ import {
39
40
  type VectorCortexDiagnosticsView,
40
41
  type VectorCortexOutcomesView,
41
42
  type VectorCortexPolicyView,
43
+ type VectorCortexPlatformView,
42
44
  type VectorCortexShardsView,
43
45
  type VectorCortexTopologyView,
44
46
  } from "../api/vector-cortex";
@@ -64,6 +66,7 @@ export interface VectorCortexPollState {
64
66
  diagnostics: VectorCortexDiagnosticsView | null;
65
67
  outcomes: VectorCortexOutcomesView | null;
66
68
  policy: VectorCortexPolicyView | null;
69
+ platform: VectorCortexPlatformView | null;
67
70
  }
68
71
 
69
72
  export function useVectorCortexPoll(): [
@@ -91,6 +94,7 @@ export function useVectorCortexPoll(): [
91
94
  diagnostics: null,
92
95
  outcomes: null,
93
96
  policy: null,
97
+ platform: null,
94
98
  });
95
99
 
96
100
  const poll = useCallback(() => {
@@ -121,6 +125,7 @@ export function useVectorCortexPoll(): [
121
125
  fetchVectorCortexDiagnostics().then((diagnostics) => setState((p) => ({ ...p, diagnostics }))).catch(() => {});
122
126
  fetchVectorCortexOutcomes().then((outcomes) => setState((p) => ({ ...p, outcomes }))).catch(() => {});
123
127
  fetchVectorCortexPolicy().then((policy) => setState((p) => ({ ...p, policy }))).catch(() => {});
128
+ fetchVectorCortexPlatform().then((platform) => setState((p) => ({ ...p, platform }))).catch(() => {});
124
129
  }, []);
125
130
 
126
131
  useEffect(() => {
@@ -8,7 +8,7 @@
8
8
  */
9
9
 
10
10
  /**
11
- * Reader-only outcomes aggregate view (VC8A). Counts + OUT_* codes only —
11
+ * Reader-only outcomes aggregate view (VC8A). Counts + OUT_ codes only —
12
12
  * the outcome ledger carries metrics without payload, so no prompt bytes,
13
13
  * response text, free-text, or session content ever reaches the client.
14
14
  */
@@ -25,8 +25,8 @@ export interface VectorCortexOutcomesView {
25
25
  }
26
26
 
27
27
  /**
28
- * Reader-only shadow adaptive policy aggregate view (VC8B). Counts + POL_ and M7_
29
- * codes only — the policy engine carries no payload, so no prompt bytes,
28
+ * Reader-only shadow adaptive policy aggregate view (VC8B). Counts + POL_ and
29
+ * M7_ codes only — the policy engine carries no payload, so no prompt bytes,
30
30
  * session content, or free-text ever reaches the client.
31
31
  */
32
32
  export interface VectorCortexPolicyView {
@@ -40,3 +40,19 @@ export interface VectorCortexPolicyView {
40
40
  lastFailure: string | null;
41
41
  updatedAt: string;
42
42
  }
43
+
44
+ /**
45
+ * Reader-only engine parity/selection aggregate view (VC8C). Counts + RUST_
46
+ * codes only — the selector carries no payload, so no artifact bytes, output
47
+ * bytes, or free-text ever reaches the client.
48
+ */
49
+ export interface VectorCortexPlatformView {
50
+ enabled: boolean;
51
+ mode: "A" | "B" | "C";
52
+ fixtureCount: number;
53
+ passed: number;
54
+ failed: number;
55
+ externalRunnerConfigured: boolean;
56
+ lastFailure: string | null;
57
+ updatedAt: string;
58
+ }
@@ -262,4 +262,4 @@ export type {
262
262
  VectorCortexDiagnosticsView,
263
263
  } from "./vector-cortex-vc7.js";
264
264
 
265
- export type { VectorCortexOutcomesView, VectorCortexPolicyView } from "./vector-cortex-vc8.js";
265
+ export type { VectorCortexOutcomesView, VectorCortexPolicyView, VectorCortexPlatformView } from "./vector-cortex-vc8.js";