@purpurds/tabs 6.11.1 → 6.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/LICENSE.txt CHANGED
@@ -1,5 +1,5 @@
1
1
  Name: @purpurds/icon
2
- Version: 6.11.0
2
+ Version: 6.11.1
3
3
  License: AGPL-3.0-only
4
4
  Private: false
5
5
 
package/dist/tabs.cjs.js CHANGED
@@ -6,5 +6,5 @@
6
6
  Copyright (c) 2018 Jed Watson.
7
7
  Licensed under the MIT License (MIT), see
8
8
  http://jedwatson.github.io/classnames
9
- */var ue;function Ot(){return ue||(ue=1,function(e){(function(){var t={}.hasOwnProperty;function n(){for(var r="",i=0;i<arguments.length;i++){var c=arguments[i];c&&(r=s(r,o.call(this,c)))}return r}function o(r){if(typeof r=="string"||typeof r=="number")return this&&this[r]||r;if(typeof r!="object")return"";if(Array.isArray(r))return n.apply(this,r);if(r.toString!==Object.prototype.toString&&!r.toString.toString().includes("[native code]"))return r.toString();var i="";for(var c in r)t.call(r,c)&&r[c]&&(i=s(i,this&&this[c]||c));return i}function s(r,i){return i?r?r+" "+i:r+i:r}e.exports?(n.default=n,e.exports=n):window.classNames=n})()}(Y)),Y.exports}var Mt=Ot();const ne=At(Mt),Pt={"purpur-tab-content":"_purpur-tab-content_1ugbi_1","purpur-tab-content--force-mount":"_purpur-tab-content--force-mount_1ugbi_15"},jt=ne.bind(Pt),le="purpur-tab-content",Ft=y.forwardRef(({children:e,tabId:t,"data-testid":n,className:o,disableForceMount:s,...r},i)=>d.jsx(Et,{ref:i,className:jt([le,o,{[`${le}--force-mount`]:!s}]),"data-testid":n,value:t,forceMount:!s||void 0,...r,children:e})),$t=e=>!!e&&y.isValidElement(e)&&!!e.props.name&&!!e.props.tabId,Dt={"purpur-tab-header":"_purpur-tab-header_18g3c_1","purpur-tab-header--contained":"_purpur-tab-header--contained_18g3c_33","purpur-tab-header--contained-negative":"_purpur-tab-header--contained-negative_18g3c_33","purpur-tab-header--line":"_purpur-tab-header--line_18g3c_36","purpur-tab-header--line-negative":"_purpur-tab-header--line-negative_18g3c_48"},qt=ne.bind(Dt),de="purpur-tab-header",Lt=y.forwardRef(({index:e,tabId:t,variant:n,negative:o,onFocus:s,"data-testid":r,children:i},c)=>d.jsx(Tt,{id:`${t}-trigger`,className:qt([de,`${de}--${n}${o?"-negative":""}`]),value:t,"data-testid":r,"data-index":e,ref:c,onFocus:s,children:i})),Vt={"purpur-tabs__wrapper":"_purpur-tabs__wrapper_1dpqy_1","purpur-tabs__scroll-button":"_purpur-tabs__scroll-button_1dpqy_9","purpur-tabs__scroll-button--left":"_purpur-tabs__scroll-button--left_1dpqy_63","purpur-tabs__scroll-button--right":"_purpur-tabs__scroll-button--right_1dpqy_66","purpur-tabs__wrapper--scroll-end":"_purpur-tabs__wrapper--scroll-end_1dpqy_69","purpur-tabs__wrapper--scroll-start":"_purpur-tabs__wrapper--scroll-start_1dpqy_72","purpur-tabs--line":"_purpur-tabs--line_1dpqy_75","purpur-tabs--line-negative":"_purpur-tabs--line-negative_1dpqy_75","purpur-tabs__selected-border":"_purpur-tabs__selected-border_1dpqy_83","purpur-tabs--contained":"_purpur-tabs--contained_1dpqy_103","purpur-tabs__list":"_purpur-tabs__list_1dpqy_103","purpur-tabs--contained-negative":"_purpur-tabs--contained-negative_1dpqy_103","purpur-tabs__content-container":"_purpur-tabs__content-container_1dpqy_106","purpur-tabs--fullWidth":"_purpur-tabs--fullWidth_1dpqy_115"},Bt=["line","contained"],je=e=>new CustomEvent("tabChangeDetail",{detail:{value:e}}),P=ne.bind(Vt),S="purpur-tabs",Ut=(e,t)=>{var u;if(typeof(e==null?void 0:e.getBoundingClientRect)!="function"||typeof(t==null?void 0:t.scroll)!="function")return;const n=e.getBoundingClientRect(),o=t.getBoundingClientRect(),s=t.clientWidth,r=parseInt((u=getComputedStyle(t).borderLeftWidth)==null?void 0:u.split("px")[0],10),i=o.left+(isNaN(r)?0:r);let c;n.right>o.right&&(c=n.left+t.scrollLeft,c=c+n.width-s+s*.1,c=c-i),n.left<o.left&&(c=n.left+t.scrollLeft,c=c-s*.1,c=c-i),c!==void 0&&t.scroll({left:c,behavior:"smooth"})},Fe=({children:e,variant:t="line",negative:n=!1,fullWidth:o=!1,onChange:s,className:r,defaultValue:i,"data-testid":c,value:u,...l})=>{const[_,f]=y.useState({}),[b,h]=y.useState(0),[p,C]=y.useState(0),g=y.Children.toArray(e).filter($t),v=y.useRef(null),w=y.useRef(new Array(g.length)),A=200,N=t==="line",O=P([S,`${S}--${t}${n?"-negative":""}`,{[`${S}--fullWidth`]:o},r]),D=y.Children.map(g,({props:{tabId:m}})=>m),q=()=>{const m=D.findIndex(x=>x===i);return m>=0?m:0};y.useEffect(()=>{u&&L(g.findIndex(m=>m.props.tabId===u))},[g,u]);const[I,L]=y.useState(q);if(new Set(D).size!==D.length)throw new Error("tabId must be unique");const j=(m,x)=>x||c?`${x||c}-${m}`:void 0,M=()=>{if(!N)return;const m=w.current[I];h((m==null?void 0:m.offsetLeft)||0),C((m==null?void 0:m.getBoundingClientRect().width)||0)},W=m=>{N&&!u&&L(g.findIndex(x=>x.props.tabId===m)),s==null||s(je(m))},k=m=>{if(v!=null&&v.current){const{scrollLeft:x}=v.current,F=m==="left"?-200:A;v.current.scroll({left:x+F,behavior:"smooth"})}},K=({side:m})=>d.jsx("button",{className:P(`${S}__scroll-button`,`${S}__scroll-button--${m}`),onClick:()=>k(m),type:"button","aria-hidden":"true",tabIndex:-1,"data-testid":j("scroll-button"),children:d.jsx(fe,{svg:m==="left"?Xe:Je,size:"md"})});return y.useEffect(()=>(window.addEventListener("resize",M),()=>{window.removeEventListener("resize",M)}),[]),y.useEffect(()=>{M()},[I,o,g.length,t]),y.useEffect(()=>{const m=T=>{if(T.every(R=>R.isIntersecting)&&T.length===g.length){f({});return}T.forEach(R=>{const oe=Number(R.target.getAttribute("data-index")),$e=oe===0,De=oe===g.length-1;f(qe=>({...qe,...$e&&{[`${S}__wrapper--scroll-end`]:!R.isIntersecting},...De&&{[`${S}__wrapper--scroll-start`]:!R.isIntersecting}}))})},x=new IntersectionObserver(m,{threshold:[.99],root:v.current}),F=w.current;return F.forEach(T=>x.observe(T)),()=>{F.forEach(T=>x.unobserve(T))}},[g.length]),d.jsx(Nt,{defaultValue:i??g[0].props.tabId,onValueChange:W,"data-testid":c,className:O,value:u,...l,children:d.jsxs("div",{className:P(`${S}__container`),children:[d.jsxs("div",{className:P([`${S}__wrapper`,_]),children:[d.jsxs(Rt,{ref:m=>{v.current=m},className:P(`${S}__list`),children:[y.Children.map(g,(m,x)=>{const{name:F,tabId:T,"data-testid":re}=m.props;return d.jsx(Lt,{"data-testid":j("header",re),index:x,tabId:T,ref:R=>{R&&(w.current[x]=R)},onFocus:R=>{Ut(R.target,v.current)},variant:t,negative:n,children:F})}),N&&d.jsx("div",{className:P(`${S}__selected-border`),style:{width:p,transform:`translateX(${b}px)`},"data-testid":j("selected-border")})]}),d.jsx(K,{side:"left"}),d.jsx(K,{side:"right"})]}),d.jsx("div",{className:P(`${S}__content-container`),children:y.Children.map(g,m=>m)})]})})};Fe.Content=Ft;exports.Tabs=Fe;exports.createTabChangeDetailEvent=je;exports.tabsVariants=Bt;
9
+ */var ue;function Ot(){return ue||(ue=1,function(e){(function(){var t={}.hasOwnProperty;function n(){for(var r="",i=0;i<arguments.length;i++){var c=arguments[i];c&&(r=s(r,o.call(this,c)))}return r}function o(r){if(typeof r=="string"||typeof r=="number")return this&&this[r]||r;if(typeof r!="object")return"";if(Array.isArray(r))return n.apply(this,r);if(r.toString!==Object.prototype.toString&&!r.toString.toString().includes("[native code]"))return r.toString();var i="";for(var c in r)t.call(r,c)&&r[c]&&(i=s(i,this&&this[c]||c));return i}function s(r,i){return i?r?r+" "+i:r+i:r}e.exports?(n.default=n,e.exports=n):window.classNames=n})()}(Y)),Y.exports}var Mt=Ot();const ne=At(Mt),Pt={"purpur-tab-content":"_purpur-tab-content_1ugbi_1","purpur-tab-content--force-mount":"_purpur-tab-content--force-mount_1ugbi_15"},jt=ne.bind(Pt),le="purpur-tab-content",Ft=y.forwardRef(({children:e,tabId:t,"data-testid":n,className:o,disableForceMount:s,...r},i)=>d.jsx(Et,{ref:i,className:jt([le,o,{[`${le}--force-mount`]:!s}]),"data-testid":n,value:t,forceMount:!s||void 0,...r,children:e})),$t=e=>!!e&&y.isValidElement(e)&&!!e.props.name&&!!e.props.tabId,Dt={"purpur-tab-header":"_purpur-tab-header_18g3c_1","purpur-tab-header--contained":"_purpur-tab-header--contained_18g3c_33","purpur-tab-header--contained-negative":"_purpur-tab-header--contained-negative_18g3c_33","purpur-tab-header--line":"_purpur-tab-header--line_18g3c_36","purpur-tab-header--line-negative":"_purpur-tab-header--line-negative_18g3c_48"},qt=ne.bind(Dt),de="purpur-tab-header",Lt=y.forwardRef(({index:e,tabId:t,variant:n,negative:o,onFocus:s,"data-testid":r,children:i},c)=>d.jsx(Tt,{id:`${t}-trigger`,className:qt([de,`${de}--${n}${o?"-negative":""}`]),value:t,"data-testid":r,"data-index":e,ref:c,onFocus:s,children:i})),Vt={"purpur-tabs__wrapper":"_purpur-tabs__wrapper_1dpqy_1","purpur-tabs__scroll-button":"_purpur-tabs__scroll-button_1dpqy_9","purpur-tabs__scroll-button--left":"_purpur-tabs__scroll-button--left_1dpqy_63","purpur-tabs__scroll-button--right":"_purpur-tabs__scroll-button--right_1dpqy_66","purpur-tabs__wrapper--scroll-end":"_purpur-tabs__wrapper--scroll-end_1dpqy_69","purpur-tabs__wrapper--scroll-start":"_purpur-tabs__wrapper--scroll-start_1dpqy_72","purpur-tabs--line":"_purpur-tabs--line_1dpqy_75","purpur-tabs--line-negative":"_purpur-tabs--line-negative_1dpqy_75","purpur-tabs__selected-border":"_purpur-tabs__selected-border_1dpqy_83","purpur-tabs--contained":"_purpur-tabs--contained_1dpqy_103","purpur-tabs__list":"_purpur-tabs__list_1dpqy_103","purpur-tabs--contained-negative":"_purpur-tabs--contained-negative_1dpqy_103","purpur-tabs__content-container":"_purpur-tabs__content-container_1dpqy_106","purpur-tabs--fullWidth":"_purpur-tabs--fullWidth_1dpqy_115"},Bt=["line","contained"],je=e=>new CustomEvent("tabChangeDetail",{detail:{value:e}}),P=ne.bind(Vt),S="purpur-tabs",Ut=(e,t)=>{var u;if(typeof(e==null?void 0:e.getBoundingClientRect)!="function"||typeof(t==null?void 0:t.scroll)!="function")return;const n=e.getBoundingClientRect(),o=t.getBoundingClientRect(),s=t.clientWidth,r=parseInt((u=getComputedStyle(t).borderLeftWidth)==null?void 0:u.split("px")[0],10),i=o.left+(isNaN(r)?0:r);let c;n.right>o.right&&(c=n.left+t.scrollLeft,c=c+n.width-s+s*.1,c=c-i),n.left<o.left&&(c=n.left+t.scrollLeft,c=c-s*.1,c=c-i),c!==void 0&&t.scroll({left:c,behavior:"smooth"})},Fe=({children:e,variant:t="line",negative:n=!1,fullWidth:o=!1,onChange:s,className:r,defaultValue:i,"data-testid":c,value:u,...l})=>{const[_,f]=y.useState({}),[b,h]=y.useState(0),[p,C]=y.useState(0),g=y.Children.toArray(e).filter($t),v=y.useRef(null),w=y.useRef(new Array(g.length)),A=200,N=t==="line",O=P([S,`${S}--${t}${n?"-negative":""}`,{[`${S}--fullWidth`]:o},r]),D=y.Children.map(g,({props:{tabId:m}})=>m),q=()=>{const m=D.findIndex(x=>x===i);return m>=0?m:0};y.useEffect(()=>{u&&L(g.findIndex(m=>m.props.tabId===u))},[g,u]);const[I,L]=y.useState(q);if(new Set(D).size!==D.length)throw new Error("tabId must be unique");const j=(m,x)=>x||c?`${x||c}-${m}`:void 0,M=()=>{if(!N)return;const m=w.current[I];h((m==null?void 0:m.offsetLeft)||0),C((m==null?void 0:m.getBoundingClientRect().width)||0)},W=m=>{N&&!u&&L(g.findIndex(x=>x.props.tabId===m)),s==null||s(je(m))},k=m=>{if(v!=null&&v.current){const{scrollLeft:x}=v.current,F=m==="left"?-200:A;v.current.scroll({left:x+F,behavior:"smooth"})}},K=({side:m})=>d.jsx("button",{className:P(`${S}__scroll-button`,`${S}__scroll-button--${m}`),onClick:()=>k(m),type:"button","aria-hidden":"true",tabIndex:-1,"data-testid":j("scroll-button"),children:d.jsx(fe,{svg:m==="left"?Xe:Je,size:"md"})});return y.useEffect(()=>(window.addEventListener("resize",M),()=>{window.removeEventListener("resize",M)}),[I]),y.useEffect(()=>{M()},[I,o,g.length,t]),y.useEffect(()=>{const m=T=>{if(T.every(R=>R.isIntersecting)&&T.length===g.length){f({});return}T.forEach(R=>{const oe=Number(R.target.getAttribute("data-index")),$e=oe===0,De=oe===g.length-1;f(qe=>({...qe,...$e&&{[`${S}__wrapper--scroll-end`]:!R.isIntersecting},...De&&{[`${S}__wrapper--scroll-start`]:!R.isIntersecting}}))})},x=new IntersectionObserver(m,{threshold:[.99],root:v.current}),F=w.current;return F.forEach(T=>x.observe(T)),()=>{F.forEach(T=>x.unobserve(T))}},[g.length]),d.jsx(Nt,{defaultValue:i??g[0].props.tabId,onValueChange:W,"data-testid":c,className:O,value:u,...l,children:d.jsxs("div",{className:P(`${S}__container`),children:[d.jsxs("div",{className:P([`${S}__wrapper`,_]),children:[d.jsxs(Rt,{ref:m=>{v.current=m},className:P(`${S}__list`),children:[y.Children.map(g,(m,x)=>{const{name:F,tabId:T,"data-testid":re}=m.props;return d.jsx(Lt,{"data-testid":j("header",re),index:x,tabId:T,ref:R=>{R&&(w.current[x]=R)},onFocus:R=>{Ut(R.target,v.current)},variant:t,negative:n,children:F})}),N&&d.jsx("div",{className:P(`${S}__selected-border`),style:{width:p,transform:`translateX(${b}px)`},"data-testid":j("selected-border")})]}),d.jsx(K,{side:"left"}),d.jsx(K,{side:"right"})]}),d.jsx("div",{className:P(`${S}__content-container`),children:y.Children.map(g,m=>m)})]})})};Fe.Content=Ft;exports.Tabs=Fe;exports.createTabChangeDetailEvent=je;exports.tabsVariants=Bt;
10
10
  //# sourceMappingURL=tabs.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.cjs.js","sources":["../../icon/dist/icon.es.js","../../icon/dist/assets/chevron-left.es.js","../../icon/dist/assets/chevron-right.es.js","../../../common/temp/node_modules/.pnpm/@radix-ui+primitive@1.1.1/node_modules/@radix-ui/primitive/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-context@1.1.1_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-context/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-compose-refs@1.1.1_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-slot@1.1.2_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-slot/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-collection@1.1.2_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-collection/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-layout-effect@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-id@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-id/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-primitive@2.0.2_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-primitive/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-callback-ref@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-controllable-state@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-direction@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-direction/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-roving-focus@1.1.2_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-roving-focus/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-presence@1.1.2_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-presence/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-tabs@1.1.3_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-tabs/dist/index.mjs","../../../common/temp/node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/bind.js","../src/tab-content.tsx","../src/tab-header.tsx","../src/tabs.utils.ts","../src/tabs.tsx"],"sourcesContent":["import { jsx as a } from \"react/jsx-runtime\";\nfunction f(r) {\n return r && r.__esModule && Object.prototype.hasOwnProperty.call(r, \"default\") ? r.default : r;\n}\nvar c = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\nvar p;\nfunction m() {\n return p || (p = 1, function(r) {\n (function() {\n var e = {}.hasOwnProperty;\n function s() {\n for (var t = \"\", n = 0; n < arguments.length; n++) {\n var o = arguments[n];\n o && (t = i(t, u.call(this, o)));\n }\n return t;\n }\n function u(t) {\n if (typeof t == \"string\" || typeof t == \"number\")\n return this && this[t] || t;\n if (typeof t != \"object\")\n return \"\";\n if (Array.isArray(t))\n return s.apply(this, t);\n if (t.toString !== Object.prototype.toString && !t.toString.toString().includes(\"[native code]\"))\n return t.toString();\n var n = \"\";\n for (var o in t)\n e.call(t, o) && t[o] && (n = i(n, this && this[o] || o));\n return n;\n }\n function i(t, n) {\n return n ? t ? t + \" \" + n : t + n : t;\n }\n r.exports ? (s.default = s, r.exports = s) : window.classNames = s;\n })();\n }(c)), c.exports;\n}\nvar _ = m();\nconst d = /* @__PURE__ */ f(_), v = {\n \"purpur-icon\": \"_purpur-icon_8u1lq_1\",\n \"purpur-icon--xxs\": \"_purpur-icon--xxs_8u1lq_4\",\n \"purpur-icon--xs\": \"_purpur-icon--xs_8u1lq_8\",\n \"purpur-icon--sm\": \"_purpur-icon--sm_8u1lq_12\",\n \"purpur-icon--md\": \"_purpur-icon--md_8u1lq_16\",\n \"purpur-icon--lg\": \"_purpur-icon--lg_8u1lq_20\",\n \"purpur-icon--xl\": \"_purpur-icon--xl_8u1lq_24\"\n}, x = d.bind(v), l = \"purpur-icon\", w = [\"xxs\", \"xs\", \"sm\", \"md\", \"lg\", \"xl\"], g = \"md\", h = (r) => r.filter((e) => Object.keys(e).length >= 1).map((e) => `${e.name}=\"${e.value}\"`).join(\" \"), b = ({ content: r = \"\", title: e } = {}) => {\n const s = [\n { name: \"xmlns\", value: \"http://www.w3.org/2000/svg\" },\n { name: \"fill\", value: \"currentColor\" },\n { name: \"viewBox\", value: \"0 0 24 24\" },\n e ? { name: \"role\", value: \"img\" } : { name: \"aria-hidden\", value: \"true\" }\n ], u = e ? `<title>${e}</title>` : \"\";\n return `<svg ${h(s)}>${u}${r}</svg>`;\n}, S = (r) => r.replace(/<(\\/?)svg([^>]*)>/g, \"\").trim(), y = ({\n [\"data-testid\"]: r,\n svg: e,\n allyTitle: s,\n className: u,\n size: i = g,\n ...t\n}) => {\n const n = b({\n content: S(e.svg),\n title: s\n }), o = x(u, l, `${l}--${i}`);\n return /* @__PURE__ */ a(\n \"span\",\n {\n \"aria-label\": s,\n className: o,\n \"data-testid\": r,\n dangerouslySetInnerHTML: { __html: n },\n ...t\n }\n );\n};\ny.displayName = \"Icon\";\nexport {\n g as DEFAULT_SIZE,\n y as Icon,\n w as sizes\n};\n//# sourceMappingURL=icon.es.js.map\n","const e = {\n name: \"chevron-left\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M16.175 3.905a.9.9 0 0 1-.08 1.27L8.36 12l7.736 6.825a.9.9 0 0 1-1.191 1.35l-8.5-7.5a.9.9 0 0 1 0-1.35l8.5-7.5a.9.9 0 0 1 1.27.08Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"chevron-left\"],\n category: \"utility\"\n};\nexport {\n e as chevronLeft\n};\n//# sourceMappingURL=chevron-left.es.js.map\n","const e = {\n name: \"chevron-right\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M7.809 3.924a.9.9 0 0 0 .115 1.267L16.094 12l-8.17 6.809a.9.9 0 0 0 1.152 1.382l9-7.5a.9.9 0 0 0 0-1.382l-9-7.5a.9.9 0 0 0-1.267.115Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"chevron-right\"],\n category: \"utility\"\n};\nexport {\n e as chevronRight\n};\n//# sourceMappingURL=chevron-right.es.js.map\n","// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/context/src/createContext.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (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 };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\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 throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return 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 };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/compose-refs/src/composeRefs.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}\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}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/slot/src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n};\nfunction isSlottable(child) {\n return React.isValidElement(child) && child.type === Slottable;\n}\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 childPropValue(...args);\n slotPropValue(...args);\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}\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}\nvar Root = Slot;\nexport {\n Root,\n Slot,\n Slottable\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/collection/src/collection.tsx\nimport React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createCollection(name) {\n const PROVIDER_NAME = name + \"CollectionProvider\";\n const [createCollectionContext, createCollectionScope] = createContextScope(PROVIDER_NAME);\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(\n PROVIDER_NAME,\n { collectionRef: { current: null }, itemMap: /* @__PURE__ */ new Map() }\n );\n const CollectionProvider = (props) => {\n const { scope, children } = props;\n const ref = React.useRef(null);\n const itemMap = React.useRef(/* @__PURE__ */ new Map()).current;\n return /* @__PURE__ */ jsx(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children });\n };\n CollectionProvider.displayName = PROVIDER_NAME;\n const COLLECTION_SLOT_NAME = name + \"CollectionSlot\";\n const CollectionSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);\n return /* @__PURE__ */ jsx(Slot, { ref: composedRefs, children });\n }\n );\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n const ITEM_SLOT_NAME = name + \"CollectionItemSlot\";\n const ITEM_DATA_ATTR = \"data-radix-collection-item\";\n const CollectionItemSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n React.useEffect(() => {\n context.itemMap.set(ref, { ref, ...itemData });\n return () => void context.itemMap.delete(ref);\n });\n return /* @__PURE__ */ jsx(Slot, { ...{ [ITEM_DATA_ATTR]: \"\" }, ref: composedRefs, children });\n }\n );\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n function useCollection(scope) {\n const context = useCollectionContext(name + \"CollectionConsumer\", scope);\n const getItems = React.useCallback(() => {\n const collectionNode = context.collectionRef.current;\n if (!collectionNode) return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort(\n (a, b) => orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current)\n );\n return orderedItems;\n }, [context.collectionRef, context.itemMap]);\n return getItems;\n }\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n useCollection,\n createCollectionScope\n ];\n}\nexport {\n createCollection\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/useLayoutEffect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = Boolean(globalThis?.document) ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/id/src/id.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useReactId = React[\"useId\".toString()] || (() => void 0);\nvar count = 0;\nfunction useId(deterministicId) {\n const [id, setId] = React.useState(useReactId());\n useLayoutEffect(() => {\n if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n }, [deterministicId]);\n return deterministicId || (id ? `radix-${id}` : \"\");\n}\nexport {\n useId\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/primitive/src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } 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 \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((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}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-controllable-state/src/useControllableState.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n }\n}) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value2 !== prop) handleChange(value2);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const uncontrolledState = React.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n return uncontrolledState;\n}\nexport {\n useControllableState\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/direction/src/Direction.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DirectionContext = React.createContext(void 0);\nvar DirectionProvider = (props) => {\n const { dir, children } = props;\n return /* @__PURE__ */ jsx(DirectionContext.Provider, { value: dir, children });\n};\nfunction useDirection(localDir) {\n const globalDir = React.useContext(DirectionContext);\n return localDir || globalDir || \"ltr\";\n}\nvar Provider = DirectionProvider;\nexport {\n DirectionProvider,\n Provider,\n useDirection\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/roving-focus/src/roving-focus-group.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ENTRY_FOCUS = \"rovingFocusGroup.onEntryFocus\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar GROUP_NAME = \"RovingFocusGroup\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(GROUP_NAME);\nvar [createRovingFocusGroupContext, createRovingFocusGroupScope] = createContextScope(\n GROUP_NAME,\n [createCollectionScope]\n);\nvar [RovingFocusProvider, useRovingFocusContext] = createRovingFocusGroupContext(GROUP_NAME);\nvar RovingFocusGroup = React.forwardRef(\n (props, forwardedRef) => {\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(RovingFocusGroupImpl, { ...props, ref: forwardedRef }) }) });\n }\n);\nRovingFocusGroup.displayName = GROUP_NAME;\nvar RovingFocusGroupImpl = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n orientation,\n loop = false,\n dir,\n currentTabStopId: currentTabStopIdProp,\n defaultCurrentTabStopId,\n onCurrentTabStopIdChange,\n onEntryFocus,\n preventScrollOnEntryFocus = false,\n ...groupProps\n } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const direction = useDirection(dir);\n const [currentTabStopId = null, setCurrentTabStopId] = useControllableState({\n prop: currentTabStopIdProp,\n defaultProp: defaultCurrentTabStopId,\n onChange: onCurrentTabStopIdChange\n });\n const [isTabbingBackOut, setIsTabbingBackOut] = React.useState(false);\n const handleEntryFocus = useCallbackRef(onEntryFocus);\n const getItems = useCollection(__scopeRovingFocusGroup);\n const isClickFocusRef = React.useRef(false);\n const [focusableItemsCount, setFocusableItemsCount] = React.useState(0);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n node.addEventListener(ENTRY_FOCUS, handleEntryFocus);\n return () => node.removeEventListener(ENTRY_FOCUS, handleEntryFocus);\n }\n }, [handleEntryFocus]);\n return /* @__PURE__ */ jsx(\n RovingFocusProvider,\n {\n scope: __scopeRovingFocusGroup,\n orientation,\n dir: direction,\n loop,\n currentTabStopId,\n onItemFocus: React.useCallback(\n (tabStopId) => setCurrentTabStopId(tabStopId),\n [setCurrentTabStopId]\n ),\n onItemShiftTab: React.useCallback(() => setIsTabbingBackOut(true), []),\n onFocusableItemAdd: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount + 1),\n []\n ),\n onFocusableItemRemove: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount - 1),\n []\n ),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,\n \"data-orientation\": orientation,\n ...groupProps,\n ref: composedRefs,\n style: { outline: \"none\", ...props.style },\n onMouseDown: composeEventHandlers(props.onMouseDown, () => {\n isClickFocusRef.current = true;\n }),\n onFocus: composeEventHandlers(props.onFocus, (event) => {\n const isKeyboardFocus = !isClickFocusRef.current;\n if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {\n const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);\n event.currentTarget.dispatchEvent(entryFocusEvent);\n if (!entryFocusEvent.defaultPrevented) {\n const items = getItems().filter((item) => item.focusable);\n const activeItem = items.find((item) => item.active);\n const currentItem = items.find((item) => item.id === currentTabStopId);\n const candidateItems = [activeItem, currentItem, ...items].filter(\n Boolean\n );\n const candidateNodes = candidateItems.map((item) => item.ref.current);\n focusFirst(candidateNodes, preventScrollOnEntryFocus);\n }\n }\n isClickFocusRef.current = false;\n }),\n onBlur: composeEventHandlers(props.onBlur, () => setIsTabbingBackOut(false))\n }\n )\n }\n );\n});\nvar ITEM_NAME = \"RovingFocusGroupItem\";\nvar RovingFocusGroupItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n focusable = true,\n active = false,\n tabStopId,\n ...itemProps\n } = props;\n const autoId = useId();\n const id = tabStopId || autoId;\n const context = useRovingFocusContext(ITEM_NAME, __scopeRovingFocusGroup);\n const isCurrentTabStop = context.currentTabStopId === id;\n const getItems = useCollection(__scopeRovingFocusGroup);\n const { onFocusableItemAdd, onFocusableItemRemove } = context;\n React.useEffect(() => {\n if (focusable) {\n onFocusableItemAdd();\n return () => onFocusableItemRemove();\n }\n }, [focusable, onFocusableItemAdd, onFocusableItemRemove]);\n return /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeRovingFocusGroup,\n id,\n focusable,\n active,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n tabIndex: isCurrentTabStop ? 0 : -1,\n \"data-orientation\": context.orientation,\n ...itemProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!focusable) event.preventDefault();\n else context.onItemFocus(id);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => context.onItemFocus(id)),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Tab\" && event.shiftKey) {\n context.onItemShiftTab();\n return;\n }\n if (event.target !== event.currentTarget) return;\n const focusIntent = getFocusIntent(event, context.orientation, context.dir);\n if (focusIntent !== void 0) {\n if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey) return;\n event.preventDefault();\n const items = getItems().filter((item) => item.focusable);\n let candidateNodes = items.map((item) => item.ref.current);\n if (focusIntent === \"last\") candidateNodes.reverse();\n else if (focusIntent === \"prev\" || focusIntent === \"next\") {\n if (focusIntent === \"prev\") candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n }\n })\n }\n )\n }\n );\n }\n);\nRovingFocusGroupItem.displayName = ITEM_NAME;\nvar MAP_KEY_TO_FOCUS_INTENT = {\n ArrowLeft: \"prev\",\n ArrowUp: \"prev\",\n ArrowRight: \"next\",\n ArrowDown: \"next\",\n PageUp: \"first\",\n Home: \"first\",\n PageDown: \"last\",\n End: \"last\"\n};\nfunction getDirectionAwareKey(key, dir) {\n if (dir !== \"rtl\") return key;\n return key === \"ArrowLeft\" ? \"ArrowRight\" : key === \"ArrowRight\" ? \"ArrowLeft\" : key;\n}\nfunction getFocusIntent(event, orientation, dir) {\n const key = getDirectionAwareKey(event.key, dir);\n if (orientation === \"vertical\" && [\"ArrowLeft\", \"ArrowRight\"].includes(key)) return void 0;\n if (orientation === \"horizontal\" && [\"ArrowUp\", \"ArrowDown\"].includes(key)) return void 0;\n return MAP_KEY_TO_FOCUS_INTENT[key];\n}\nfunction focusFirst(candidates, preventScroll = false) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus({ preventScroll });\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nvar Root = RovingFocusGroup;\nvar Item = RovingFocusGroupItem;\nexport {\n Item,\n Root,\n RovingFocusGroup,\n RovingFocusGroupItem,\n createRovingFocusGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/presence/src/Presence.tsx\nimport * as React2 from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// packages/react/presence/src/useStateMachine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// packages/react/presence/src/Presence.tsx\nvar Presence = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef({});\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n if (node2) stylesRef.current = getComputedStyle(node2);\n setNode(node2);\n }, [])\n };\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\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}\nexport {\n Presence\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/tabs/src/tabs.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TABS_NAME = \"Tabs\";\nvar [createTabsContext, createTabsScope] = createContextScope(TABS_NAME, [\n createRovingFocusGroupScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [TabsProvider, useTabsContext] = createTabsContext(TABS_NAME);\nvar Tabs = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTabs,\n value: valueProp,\n onValueChange,\n defaultValue,\n orientation = \"horizontal\",\n dir,\n activationMode = \"automatic\",\n ...tabsProps\n } = props;\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue\n });\n return /* @__PURE__ */ jsx(\n TabsProvider,\n {\n scope: __scopeTabs,\n baseId: useId(),\n value,\n onValueChange: setValue,\n orientation,\n dir: direction,\n activationMode,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n dir: direction,\n \"data-orientation\": orientation,\n ...tabsProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabs.displayName = TABS_NAME;\nvar TAB_LIST_NAME = \"TabsList\";\nvar TabsList = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, loop = true, ...listProps } = props;\n const context = useTabsContext(TAB_LIST_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation: context.orientation,\n dir: context.dir,\n loop,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"tablist\",\n \"aria-orientation\": context.orientation,\n ...listProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabsList.displayName = TAB_LIST_NAME;\nvar TRIGGER_NAME = \"TabsTrigger\";\nvar TabsTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, disabled = false, ...triggerProps } = props;\n const context = useTabsContext(TRIGGER_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n active: isSelected,\n children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"tab\",\n \"aria-selected\": isSelected,\n \"aria-controls\": contentId,\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n id: triggerId,\n ...triggerProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onValueChange(value);\n } else {\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if ([\" \", \"Enter\"].includes(event.key)) context.onValueChange(value);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n const isAutomaticActivation = context.activationMode !== \"manual\";\n if (!isSelected && !disabled && isAutomaticActivation) {\n context.onValueChange(value);\n }\n })\n }\n )\n }\n );\n }\n);\nTabsTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"TabsContent\";\nvar TabsContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, forceMount, children, ...contentProps } = props;\n const context = useTabsContext(CONTENT_NAME, __scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n const isMountAnimationPreventedRef = React.useRef(isSelected);\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isSelected, children: ({ present }) => /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-orientation\": context.orientation,\n role: \"tabpanel\",\n \"aria-labelledby\": triggerId,\n hidden: !present,\n id: contentId,\n tabIndex: 0,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n animationDuration: isMountAnimationPreventedRef.current ? \"0s\" : void 0\n },\n children: present && children\n }\n ) });\n }\n);\nTabsContent.displayName = CONTENT_NAME;\nfunction makeTriggerId(baseId, value) {\n return `${baseId}-trigger-${value}`;\n}\nfunction makeContentId(baseId, value) {\n return `${baseId}-content-${value}`;\n}\nvar Root2 = Tabs;\nvar List = TabsList;\nvar Trigger = TabsTrigger;\nvar Content = TabsContent;\nexport {\n Content,\n List,\n Root2 as Root,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n Trigger,\n createTabsScope\n};\n//# sourceMappingURL=index.mjs.map\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue.call(this, arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn this && this[arg] || arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(this, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, this && this[key] || key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import React, {\n ComponentPropsWithoutRef,\n ForwardedRef,\n forwardRef,\n isValidElement,\n ReactElement,\n ReactNode,\n} from \"react\";\nimport { Content } from \"@radix-ui/react-tabs\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./tab-content.module.scss\";\n\nexport type TabContentProps = {\n /**\n * The text that will be displayed in the tab.\n * */\n name: string;\n /**\n * A unique ID that associates the tab with a content.\n * */\n tabId: string;\n /**\n * If true, the inactive tab content will not be rendered.\n */\n disableForceMount?: boolean;\n className?: string;\n \"data-testid\"?: string;\n};\n\nexport type TabContentPropsWithChildren = ComponentPropsWithoutRef<\"div\"> &\n TabContentProps & {\n children: ReactNode;\n };\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-tab-content\";\n\nexport const TabContent = forwardRef(\n (\n {\n children,\n tabId,\n \"data-testid\": dataTestId,\n className,\n disableForceMount,\n ...rest\n }: TabContentPropsWithChildren,\n ref: ForwardedRef<HTMLDivElement>\n ) => (\n <Content\n ref={ref}\n className={cx([\n rootClassName,\n className,\n { [`${rootClassName}--force-mount`]: !disableForceMount },\n ])}\n data-testid={dataTestId}\n value={tabId}\n forceMount={!disableForceMount || undefined}\n {...rest}\n >\n {children}\n </Content>\n )\n);\n\nexport const isTabContent = (\n child?: ReactNode\n): child is ReactElement<TabContentProps> =>\n !!child && isValidElement<TabContentProps>(child) && !!child.props.name && !!child.props.tabId;\n","import React, { FocusEventHandler, ForwardedRef, forwardRef, ReactNode } from \"react\";\nimport { Trigger } from \"@radix-ui/react-tabs\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./tab-header.module.scss\";\nimport { TabsVariant } from \"./tabs.utils\";\n\ntype TabHeaderProps = {\n \"data-testid\"?: string;\n index: number;\n tabId: string;\n variant: TabsVariant;\n negative?: boolean;\n onFocus: FocusEventHandler<HTMLButtonElement>;\n children: ReactNode;\n};\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-tab-header\";\n\nexport const TabHeader = forwardRef(\n <T extends HTMLButtonElement>(\n {\n index,\n tabId,\n variant,\n negative,\n onFocus,\n \"data-testid\": dataTestId,\n children,\n }: TabHeaderProps,\n ref: ForwardedRef<T>\n ) => (\n <Trigger\n id={`${tabId}-trigger`}\n className={cx([rootClassName, `${rootClassName}--${variant}${negative ? \"-negative\" : \"\"}`])}\n value={tabId}\n data-testid={dataTestId}\n data-index={index}\n ref={ref}\n onFocus={onFocus}\n >\n {children}\n </Trigger>\n )\n);\n","import { TabContent } from \"./tab-content\";\n\nexport type TabsCmp<P> = React.FunctionComponent<P> & {\n Content: typeof TabContent;\n};\n\nexport const tabsVariants = [\"line\", \"contained\"] as const;\n\nexport type TabsVariant = (typeof tabsVariants)[number];\n\nexport const createTabChangeDetailEvent = (value: string) =>\n new CustomEvent<TabChangeDetail>(\"tabChangeDetail\", { detail: { value } });\n\nexport type TabChangeDetail = { value: string };\n","import React, { Children, ReactElement, useEffect, useRef, useState } from \"react\";\nimport { Icon } from \"@purpurds/icon\";\nimport { chevronLeft } from \"@purpurds/icon/assets/chevron-left\";\nimport { chevronRight } from \"@purpurds/icon/assets/chevron-right\";\nimport { List, Root } from \"@radix-ui/react-tabs\";\nimport c from \"classnames/bind\";\n\nimport { isTabContent, TabContent } from \"./tab-content\";\nimport { TabHeader } from \"./tab-header\";\nimport styles from \"./tabs.module.scss\";\nimport { createTabChangeDetailEvent, TabChangeDetail, TabsCmp, TabsVariant } from \"./tabs.utils\";\n\ntype TabsProps = {\n children: Array<ReactElement<typeof TabContent>> | ReactElement<typeof TabContent>;\n variant?: TabsVariant;\n negative?: boolean;\n fullWidth?: boolean;\n /**\n * The controlled value of the tabs. Must be used in conjunction with onChange.\n */\n value?: string;\n /**\n * Event handler called when the value changes.\n * */\n onChange?: (event: CustomEvent<TabChangeDetail>) => void;\n defaultValue?: string;\n \"data-testid\"?: string;\n} & Pick<React.HTMLAttributes<HTMLDivElement>, \"style\" | \"className\">;\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-tabs\";\n\nconst scrollToTarget = (target: HTMLElement, tabList?: HTMLDivElement | null) => {\n /**\n * scroll may not be available in test runner, so check existence before\n * proceeding. We can't use scrollIntoView() because Safari doesn't support\n * it fully.\n */\n if (\n typeof target?.getBoundingClientRect !== \"function\" ||\n typeof tabList?.scroll !== \"function\"\n ) {\n return;\n }\n\n const targetRect = target.getBoundingClientRect();\n const wrapperRect = tabList.getBoundingClientRect();\n const wrapperWidth = tabList.clientWidth;\n const wrapperOffset = parseInt(getComputedStyle(tabList).borderLeftWidth?.split(\"px\")[0], 10);\n const offset = wrapperRect.left + (isNaN(wrapperOffset) ? 0 : wrapperOffset);\n let left;\n\n // Handle forward navigation\n if (targetRect.right > wrapperRect.right) {\n left = targetRect.left + tabList.scrollLeft;\n left = left + targetRect.width - wrapperWidth + wrapperWidth * 0.1;\n left = left - offset;\n }\n\n // Handle backwards navigation\n if (targetRect.left < wrapperRect.left) {\n left = targetRect.left + tabList.scrollLeft;\n left = left - wrapperWidth * 0.1;\n left = left - offset;\n }\n\n if (left !== undefined) {\n tabList.scroll({ left, behavior: \"smooth\" });\n }\n};\n\nexport const Tabs: TabsCmp<TabsProps> = ({\n children,\n variant = \"line\",\n negative = false,\n fullWidth = false,\n onChange,\n className,\n defaultValue,\n \"data-testid\": dataTestId,\n value,\n ...props\n}) => {\n const [scrollClasses, setScrollClasses] = useState<{ [key: string]: boolean }>({});\n const [selectedTriggerOffset, setSelectedTriggerOffset] = useState(0);\n const [selectedTriggerWidth, setSelectedTriggerWidth] = useState(0);\n const tabContentChildren = Children.toArray(children).filter(isTabContent);\n const tabList = useRef<HTMLDivElement>(null);\n const tabChildren = useRef<HTMLButtonElement[]>(new Array(tabContentChildren.length));\n const sideScrollAdjustmentSize = 200;\n const isLineVariant = variant === \"line\";\n\n const classNames = cx([\n rootClassName,\n `${rootClassName}--${variant}${negative ? \"-negative\" : \"\"}`,\n { [`${rootClassName}--fullWidth`]: fullWidth },\n className,\n ]);\n\n const tabIds = Children.map(tabContentChildren, ({ props: { tabId } }) => tabId);\n\n const getDefaultTabIndex = () => {\n const defaultIndex = tabIds.findIndex((tabIndex) => tabIndex === defaultValue);\n return defaultIndex >= 0 ? defaultIndex : 0;\n };\n\n useEffect(() => {\n if (value) {\n setActiveIndex(tabContentChildren.findIndex((child) => child.props.tabId === value));\n }\n }, [tabContentChildren, value]);\n\n const [activeIndex, setActiveIndex] = useState(getDefaultTabIndex);\n\n if (new Set(tabIds).size !== tabIds.length) {\n throw new Error(\"tabId must be unique\");\n }\n\n const getTestId = (name: string, id?: string) =>\n id || dataTestId ? `${id || dataTestId}-${name}` : undefined;\n\n const handleLinePosition = () => {\n if (!isLineVariant) {\n return;\n }\n\n const activeTabElement = tabChildren.current[activeIndex];\n\n setSelectedTriggerOffset(activeTabElement?.offsetLeft || 0);\n setSelectedTriggerWidth(activeTabElement?.getBoundingClientRect().width || 0);\n };\n\n const handleTabChange = (_value: string) => {\n if (isLineVariant && !value) {\n setActiveIndex(tabContentChildren.findIndex((child) => child.props.tabId === _value));\n }\n onChange?.(createTabChangeDetailEvent(_value));\n };\n\n const handleScrollButtonClick = (side: \"left\" | \"right\") => {\n if (tabList?.current) {\n const { scrollLeft } = tabList.current;\n const modifier = side === \"left\" ? -sideScrollAdjustmentSize : sideScrollAdjustmentSize;\n\n tabList.current.scroll({ left: scrollLeft + modifier, behavior: \"smooth\" });\n }\n };\n\n const ScrollButton = ({ side }: { side: \"left\" | \"right\" }) => (\n <button\n className={cx(`${rootClassName}__scroll-button`, `${rootClassName}__scroll-button--${side}`)}\n onClick={() => handleScrollButtonClick(side)}\n type=\"button\"\n aria-hidden=\"true\"\n tabIndex={-1}\n data-testid={getTestId(\"scroll-button\")}\n >\n <Icon svg={side === \"left\" ? chevronLeft : chevronRight} size=\"md\" />\n </button>\n );\n\n useEffect(() => {\n window.addEventListener(\"resize\", handleLinePosition);\n\n return () => {\n window.removeEventListener(\"resize\", handleLinePosition);\n };\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n handleLinePosition();\n }, [activeIndex, fullWidth, tabContentChildren.length, variant]); // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n const onIntersection = (entries: IntersectionObserverEntry[]): void => {\n const allEntriesVisible =\n entries.every((entry) => entry.isIntersecting) &&\n entries.length === tabContentChildren.length;\n\n if (allEntriesVisible) {\n setScrollClasses({});\n return;\n }\n\n entries.forEach((entry) => {\n const entryIndex = Number(entry.target.getAttribute(\"data-index\"));\n const isStartEntry = entryIndex === 0;\n const isLastEntry = entryIndex === tabContentChildren.length - 1;\n\n setScrollClasses((currentScrollClasses) => ({\n ...currentScrollClasses,\n ...(isStartEntry && {\n [`${rootClassName}__wrapper--scroll-end`]: !entry.isIntersecting,\n }),\n ...(isLastEntry && {\n [`${rootClassName}__wrapper--scroll-start`]: !entry.isIntersecting,\n }),\n }));\n });\n };\n\n const observer = new IntersectionObserver(onIntersection, {\n threshold: [0.99],\n root: tabList.current,\n });\n\n const currentTabChildren = tabChildren.current;\n\n currentTabChildren.forEach((el) => observer.observe(el));\n\n return () => {\n currentTabChildren.forEach((el) => observer.unobserve(el));\n };\n }, [tabContentChildren.length]);\n\n return (\n <Root\n defaultValue={defaultValue ?? tabContentChildren[0].props.tabId}\n onValueChange={handleTabChange}\n data-testid={dataTestId}\n className={classNames}\n value={value}\n {...props}\n >\n <div className={cx(`${rootClassName}__container`)}>\n <div className={cx([`${rootClassName}__wrapper`, scrollClasses])}>\n <List\n ref={(el) => {\n tabList.current = el;\n }}\n className={cx(`${rootClassName}__list`)}\n >\n {Children.map(tabContentChildren, (child, index) => {\n const { name, tabId, \"data-testid\": childDataTestId } = child.props;\n return (\n <TabHeader\n data-testid={getTestId(\"header\", childDataTestId)}\n index={index}\n tabId={tabId}\n ref={(el) => {\n if (el) {\n tabChildren.current[index] = el;\n }\n }}\n onFocus={(e) => {\n scrollToTarget(e.target as HTMLElement, tabList.current);\n }}\n variant={variant}\n negative={negative}\n >\n {name}\n </TabHeader>\n );\n })}\n {isLineVariant && (\n <div\n className={cx(`${rootClassName}__selected-border`)}\n style={{\n width: selectedTriggerWidth,\n transform: `translateX(${selectedTriggerOffset}px)`,\n }}\n data-testid={getTestId(\"selected-border\")}\n />\n )}\n </List>\n <ScrollButton side=\"left\" />\n <ScrollButton side=\"right\" />\n </div>\n <div className={cx(`${rootClassName}__content-container`)}>\n {Children.map(tabContentChildren, (child) => child)}\n </div>\n </div>\n </Root>\n );\n};\n\nTabs.Content = TabContent;\n\nexport * from \"./tabs.utils\";\n"],"names":["f","r","c","p","m","e","s","t","n","o","i","u","_","d","v","x","l","g","h","b","S","y","a","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","createContextScope","scopeName","createContextScopeDeps","defaultContexts","createContext3","rootComponentName","defaultContext","BaseContext","React","index","Provider","props","scope","children","context","Context","_a","value","jsx","useContext2","consumerName","createScope","scopeContexts","contexts","composeContextScopes","scopes","baseScope","scopeHooks","createScope2","overrideScopes","nextScopes","nextScopes2","useScope","currentScope","setRef","ref","composeRefs","refs","node","hasCleanup","cleanups","cleanup","useComposedRefs","Slot","forwardedRef","slotProps","childrenArray","slottable","isSlottable","newElement","newChildren","child","SlotClone","childrenRef","getElementRef","props2","mergeProps","Slottable","Fragment2","childProps","overrideProps","propName","slotPropValue","childPropValue","args","element","getter","mayWarn","_b","createCollection","name","PROVIDER_NAME","createCollectionContext","createCollectionScope","CollectionProviderImpl","useCollectionContext","CollectionProvider","itemMap","COLLECTION_SLOT_NAME","CollectionSlot","composedRefs","ITEM_SLOT_NAME","ITEM_DATA_ATTR","CollectionItemSlot","itemData","useCollection","collectionNode","orderedNodes","useLayoutEffect2","useReactId","count","useId","deterministicId","id","setId","useLayoutEffect","reactId","NODES","Primitive","primitive","Node","asChild","primitiveProps","Comp","useCallbackRef","callback","callbackRef","useControllableState","prop","defaultProp","onChange","uncontrolledProp","setUncontrolledProp","useUncontrolledState","isControlled","handleChange","setValue","nextValue","value2","uncontrolledState","prevValueRef","DirectionContext","useDirection","localDir","globalDir","ENTRY_FOCUS","EVENT_OPTIONS","GROUP_NAME","Collection","createRovingFocusGroupContext","createRovingFocusGroupScope","RovingFocusProvider","useRovingFocusContext","RovingFocusGroup","RovingFocusGroupImpl","__scopeRovingFocusGroup","orientation","loop","dir","currentTabStopIdProp","defaultCurrentTabStopId","onCurrentTabStopIdChange","onEntryFocus","preventScrollOnEntryFocus","groupProps","direction","currentTabStopId","setCurrentTabStopId","isTabbingBackOut","setIsTabbingBackOut","handleEntryFocus","getItems","isClickFocusRef","focusableItemsCount","setFocusableItemsCount","tabStopId","prevCount","isKeyboardFocus","entryFocusEvent","items","item","activeItem","currentItem","candidateNodes","focusFirst","ITEM_NAME","RovingFocusGroupItem","focusable","active","itemProps","autoId","isCurrentTabStop","onFocusableItemAdd","onFocusableItemRemove","focusIntent","getFocusIntent","currentIndex","wrapArray","MAP_KEY_TO_FOCUS_INTENT","getDirectionAwareKey","key","candidates","preventScroll","PREVIOUSLY_FOCUSED_ELEMENT","candidate","array","startIndex","Root","Item","useStateMachine","initialState","machine","state","Presence","present","presence","usePresence","React2","setNode","stylesRef","prevPresentRef","prevAnimationNameRef","send","currentAnimationName","getAnimationName","styles","wasPresent","prevAnimationName","timeoutId","ownerWindow","handleAnimationEnd","isCurrentAnimation","currentFillMode","handleAnimationStart","node2","TABS_NAME","createTabsContext","createTabsScope","useRovingFocusGroupScope","TabsProvider","useTabsContext","Tabs","__scopeTabs","valueProp","onValueChange","defaultValue","activationMode","tabsProps","TAB_LIST_NAME","TabsList","listProps","rovingFocusGroupScope","RovingFocusGroup.Root","TRIGGER_NAME","TabsTrigger","disabled","triggerProps","triggerId","makeTriggerId","contentId","makeContentId","isSelected","RovingFocusGroup.Item","isAutomaticActivation","CONTENT_NAME","TabsContent","forceMount","contentProps","isMountAnimationPreventedRef","rAF","baseId","Root2","List","Trigger","Content","hasOwn","classNames","classes","arg","appendClass","parseValue","newClass","module","cx","rootClassName","TabContent","forwardRef","tabId","dataTestId","className","disableForceMount","rest","isTabContent","isValidElement","TabHeader","variant","negative","onFocus","tabsVariants","createTabChangeDetailEvent","scrollToTarget","target","tabList","targetRect","wrapperRect","wrapperWidth","wrapperOffset","offset","left","fullWidth","scrollClasses","setScrollClasses","useState","selectedTriggerOffset","setSelectedTriggerOffset","selectedTriggerWidth","setSelectedTriggerWidth","tabContentChildren","Children","useRef","tabChildren","sideScrollAdjustmentSize","isLineVariant","tabIds","getDefaultTabIndex","defaultIndex","tabIndex","useEffect","setActiveIndex","activeIndex","getTestId","handleLinePosition","activeTabElement","handleTabChange","_value","handleScrollButtonClick","side","scrollLeft","modifier","ScrollButton","Icon","chevronLeft","chevronRight","onIntersection","entries","entry","entryIndex","isStartEntry","isLastEntry","currentScrollClasses","observer","currentTabChildren","el","jsxs","childDataTestId"],"mappings":"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","x_google_ignoreList":[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]}
1
+ {"version":3,"file":"tabs.cjs.js","sources":["../../icon/dist/icon.es.js","../../icon/dist/assets/chevron-left.es.js","../../icon/dist/assets/chevron-right.es.js","../../../common/temp/node_modules/.pnpm/@radix-ui+primitive@1.1.1/node_modules/@radix-ui/primitive/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-context@1.1.1_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-context/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-compose-refs@1.1.1_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-slot@1.1.2_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-slot/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-collection@1.1.2_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-collection/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-layout-effect@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-id@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-id/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-primitive@2.0.2_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-primitive/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-callback-ref@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-controllable-state@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-direction@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-direction/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-roving-focus@1.1.2_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-roving-focus/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-presence@1.1.2_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-presence/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-tabs@1.1.3_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-tabs/dist/index.mjs","../../../common/temp/node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/bind.js","../src/tab-content.tsx","../src/tab-header.tsx","../src/tabs.utils.ts","../src/tabs.tsx"],"sourcesContent":["import { jsx as a } from \"react/jsx-runtime\";\nfunction f(r) {\n return r && r.__esModule && Object.prototype.hasOwnProperty.call(r, \"default\") ? r.default : r;\n}\nvar c = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\nvar p;\nfunction m() {\n return p || (p = 1, function(r) {\n (function() {\n var e = {}.hasOwnProperty;\n function s() {\n for (var t = \"\", n = 0; n < arguments.length; n++) {\n var o = arguments[n];\n o && (t = i(t, u.call(this, o)));\n }\n return t;\n }\n function u(t) {\n if (typeof t == \"string\" || typeof t == \"number\")\n return this && this[t] || t;\n if (typeof t != \"object\")\n return \"\";\n if (Array.isArray(t))\n return s.apply(this, t);\n if (t.toString !== Object.prototype.toString && !t.toString.toString().includes(\"[native code]\"))\n return t.toString();\n var n = \"\";\n for (var o in t)\n e.call(t, o) && t[o] && (n = i(n, this && this[o] || o));\n return n;\n }\n function i(t, n) {\n return n ? t ? t + \" \" + n : t + n : t;\n }\n r.exports ? (s.default = s, r.exports = s) : window.classNames = s;\n })();\n }(c)), c.exports;\n}\nvar _ = m();\nconst d = /* @__PURE__ */ f(_), v = {\n \"purpur-icon\": \"_purpur-icon_8u1lq_1\",\n \"purpur-icon--xxs\": \"_purpur-icon--xxs_8u1lq_4\",\n \"purpur-icon--xs\": \"_purpur-icon--xs_8u1lq_8\",\n \"purpur-icon--sm\": \"_purpur-icon--sm_8u1lq_12\",\n \"purpur-icon--md\": \"_purpur-icon--md_8u1lq_16\",\n \"purpur-icon--lg\": \"_purpur-icon--lg_8u1lq_20\",\n \"purpur-icon--xl\": \"_purpur-icon--xl_8u1lq_24\"\n}, x = d.bind(v), l = \"purpur-icon\", w = [\"xxs\", \"xs\", \"sm\", \"md\", \"lg\", \"xl\"], g = \"md\", h = (r) => r.filter((e) => Object.keys(e).length >= 1).map((e) => `${e.name}=\"${e.value}\"`).join(\" \"), b = ({ content: r = \"\", title: e } = {}) => {\n const s = [\n { name: \"xmlns\", value: \"http://www.w3.org/2000/svg\" },\n { name: \"fill\", value: \"currentColor\" },\n { name: \"viewBox\", value: \"0 0 24 24\" },\n e ? { name: \"role\", value: \"img\" } : { name: \"aria-hidden\", value: \"true\" }\n ], u = e ? `<title>${e}</title>` : \"\";\n return `<svg ${h(s)}>${u}${r}</svg>`;\n}, S = (r) => r.replace(/<(\\/?)svg([^>]*)>/g, \"\").trim(), y = ({\n [\"data-testid\"]: r,\n svg: e,\n allyTitle: s,\n className: u,\n size: i = g,\n ...t\n}) => {\n const n = b({\n content: S(e.svg),\n title: s\n }), o = x(u, l, `${l}--${i}`);\n return /* @__PURE__ */ a(\n \"span\",\n {\n \"aria-label\": s,\n className: o,\n \"data-testid\": r,\n dangerouslySetInnerHTML: { __html: n },\n ...t\n }\n );\n};\ny.displayName = \"Icon\";\nexport {\n g as DEFAULT_SIZE,\n y as Icon,\n w as sizes\n};\n//# sourceMappingURL=icon.es.js.map\n","const e = {\n name: \"chevron-left\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M16.175 3.905a.9.9 0 0 1-.08 1.27L8.36 12l7.736 6.825a.9.9 0 0 1-1.191 1.35l-8.5-7.5a.9.9 0 0 1 0-1.35l8.5-7.5a.9.9 0 0 1 1.27.08Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"chevron-left\"],\n category: \"utility\"\n};\nexport {\n e as chevronLeft\n};\n//# sourceMappingURL=chevron-left.es.js.map\n","const e = {\n name: \"chevron-right\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M7.809 3.924a.9.9 0 0 0 .115 1.267L16.094 12l-8.17 6.809a.9.9 0 0 0 1.152 1.382l9-7.5a.9.9 0 0 0 0-1.382l-9-7.5a.9.9 0 0 0-1.267.115Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"chevron-right\"],\n category: \"utility\"\n};\nexport {\n e as chevronRight\n};\n//# sourceMappingURL=chevron-right.es.js.map\n","// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/context/src/createContext.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (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 };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\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 throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return 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 };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/compose-refs/src/composeRefs.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}\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}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/slot/src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n};\nfunction isSlottable(child) {\n return React.isValidElement(child) && child.type === Slottable;\n}\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 childPropValue(...args);\n slotPropValue(...args);\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}\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}\nvar Root = Slot;\nexport {\n Root,\n Slot,\n Slottable\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/collection/src/collection.tsx\nimport React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createCollection(name) {\n const PROVIDER_NAME = name + \"CollectionProvider\";\n const [createCollectionContext, createCollectionScope] = createContextScope(PROVIDER_NAME);\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(\n PROVIDER_NAME,\n { collectionRef: { current: null }, itemMap: /* @__PURE__ */ new Map() }\n );\n const CollectionProvider = (props) => {\n const { scope, children } = props;\n const ref = React.useRef(null);\n const itemMap = React.useRef(/* @__PURE__ */ new Map()).current;\n return /* @__PURE__ */ jsx(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children });\n };\n CollectionProvider.displayName = PROVIDER_NAME;\n const COLLECTION_SLOT_NAME = name + \"CollectionSlot\";\n const CollectionSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);\n return /* @__PURE__ */ jsx(Slot, { ref: composedRefs, children });\n }\n );\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n const ITEM_SLOT_NAME = name + \"CollectionItemSlot\";\n const ITEM_DATA_ATTR = \"data-radix-collection-item\";\n const CollectionItemSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n React.useEffect(() => {\n context.itemMap.set(ref, { ref, ...itemData });\n return () => void context.itemMap.delete(ref);\n });\n return /* @__PURE__ */ jsx(Slot, { ...{ [ITEM_DATA_ATTR]: \"\" }, ref: composedRefs, children });\n }\n );\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n function useCollection(scope) {\n const context = useCollectionContext(name + \"CollectionConsumer\", scope);\n const getItems = React.useCallback(() => {\n const collectionNode = context.collectionRef.current;\n if (!collectionNode) return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort(\n (a, b) => orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current)\n );\n return orderedItems;\n }, [context.collectionRef, context.itemMap]);\n return getItems;\n }\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n useCollection,\n createCollectionScope\n ];\n}\nexport {\n createCollection\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/useLayoutEffect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = Boolean(globalThis?.document) ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/id/src/id.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useReactId = React[\"useId\".toString()] || (() => void 0);\nvar count = 0;\nfunction useId(deterministicId) {\n const [id, setId] = React.useState(useReactId());\n useLayoutEffect(() => {\n if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n }, [deterministicId]);\n return deterministicId || (id ? `radix-${id}` : \"\");\n}\nexport {\n useId\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/primitive/src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } 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 \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((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}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-controllable-state/src/useControllableState.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n }\n}) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value2 !== prop) handleChange(value2);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const uncontrolledState = React.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n return uncontrolledState;\n}\nexport {\n useControllableState\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/direction/src/Direction.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DirectionContext = React.createContext(void 0);\nvar DirectionProvider = (props) => {\n const { dir, children } = props;\n return /* @__PURE__ */ jsx(DirectionContext.Provider, { value: dir, children });\n};\nfunction useDirection(localDir) {\n const globalDir = React.useContext(DirectionContext);\n return localDir || globalDir || \"ltr\";\n}\nvar Provider = DirectionProvider;\nexport {\n DirectionProvider,\n Provider,\n useDirection\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/roving-focus/src/roving-focus-group.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ENTRY_FOCUS = \"rovingFocusGroup.onEntryFocus\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar GROUP_NAME = \"RovingFocusGroup\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(GROUP_NAME);\nvar [createRovingFocusGroupContext, createRovingFocusGroupScope] = createContextScope(\n GROUP_NAME,\n [createCollectionScope]\n);\nvar [RovingFocusProvider, useRovingFocusContext] = createRovingFocusGroupContext(GROUP_NAME);\nvar RovingFocusGroup = React.forwardRef(\n (props, forwardedRef) => {\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(RovingFocusGroupImpl, { ...props, ref: forwardedRef }) }) });\n }\n);\nRovingFocusGroup.displayName = GROUP_NAME;\nvar RovingFocusGroupImpl = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n orientation,\n loop = false,\n dir,\n currentTabStopId: currentTabStopIdProp,\n defaultCurrentTabStopId,\n onCurrentTabStopIdChange,\n onEntryFocus,\n preventScrollOnEntryFocus = false,\n ...groupProps\n } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const direction = useDirection(dir);\n const [currentTabStopId = null, setCurrentTabStopId] = useControllableState({\n prop: currentTabStopIdProp,\n defaultProp: defaultCurrentTabStopId,\n onChange: onCurrentTabStopIdChange\n });\n const [isTabbingBackOut, setIsTabbingBackOut] = React.useState(false);\n const handleEntryFocus = useCallbackRef(onEntryFocus);\n const getItems = useCollection(__scopeRovingFocusGroup);\n const isClickFocusRef = React.useRef(false);\n const [focusableItemsCount, setFocusableItemsCount] = React.useState(0);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n node.addEventListener(ENTRY_FOCUS, handleEntryFocus);\n return () => node.removeEventListener(ENTRY_FOCUS, handleEntryFocus);\n }\n }, [handleEntryFocus]);\n return /* @__PURE__ */ jsx(\n RovingFocusProvider,\n {\n scope: __scopeRovingFocusGroup,\n orientation,\n dir: direction,\n loop,\n currentTabStopId,\n onItemFocus: React.useCallback(\n (tabStopId) => setCurrentTabStopId(tabStopId),\n [setCurrentTabStopId]\n ),\n onItemShiftTab: React.useCallback(() => setIsTabbingBackOut(true), []),\n onFocusableItemAdd: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount + 1),\n []\n ),\n onFocusableItemRemove: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount - 1),\n []\n ),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,\n \"data-orientation\": orientation,\n ...groupProps,\n ref: composedRefs,\n style: { outline: \"none\", ...props.style },\n onMouseDown: composeEventHandlers(props.onMouseDown, () => {\n isClickFocusRef.current = true;\n }),\n onFocus: composeEventHandlers(props.onFocus, (event) => {\n const isKeyboardFocus = !isClickFocusRef.current;\n if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {\n const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);\n event.currentTarget.dispatchEvent(entryFocusEvent);\n if (!entryFocusEvent.defaultPrevented) {\n const items = getItems().filter((item) => item.focusable);\n const activeItem = items.find((item) => item.active);\n const currentItem = items.find((item) => item.id === currentTabStopId);\n const candidateItems = [activeItem, currentItem, ...items].filter(\n Boolean\n );\n const candidateNodes = candidateItems.map((item) => item.ref.current);\n focusFirst(candidateNodes, preventScrollOnEntryFocus);\n }\n }\n isClickFocusRef.current = false;\n }),\n onBlur: composeEventHandlers(props.onBlur, () => setIsTabbingBackOut(false))\n }\n )\n }\n );\n});\nvar ITEM_NAME = \"RovingFocusGroupItem\";\nvar RovingFocusGroupItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n focusable = true,\n active = false,\n tabStopId,\n ...itemProps\n } = props;\n const autoId = useId();\n const id = tabStopId || autoId;\n const context = useRovingFocusContext(ITEM_NAME, __scopeRovingFocusGroup);\n const isCurrentTabStop = context.currentTabStopId === id;\n const getItems = useCollection(__scopeRovingFocusGroup);\n const { onFocusableItemAdd, onFocusableItemRemove } = context;\n React.useEffect(() => {\n if (focusable) {\n onFocusableItemAdd();\n return () => onFocusableItemRemove();\n }\n }, [focusable, onFocusableItemAdd, onFocusableItemRemove]);\n return /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeRovingFocusGroup,\n id,\n focusable,\n active,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n tabIndex: isCurrentTabStop ? 0 : -1,\n \"data-orientation\": context.orientation,\n ...itemProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!focusable) event.preventDefault();\n else context.onItemFocus(id);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => context.onItemFocus(id)),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Tab\" && event.shiftKey) {\n context.onItemShiftTab();\n return;\n }\n if (event.target !== event.currentTarget) return;\n const focusIntent = getFocusIntent(event, context.orientation, context.dir);\n if (focusIntent !== void 0) {\n if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey) return;\n event.preventDefault();\n const items = getItems().filter((item) => item.focusable);\n let candidateNodes = items.map((item) => item.ref.current);\n if (focusIntent === \"last\") candidateNodes.reverse();\n else if (focusIntent === \"prev\" || focusIntent === \"next\") {\n if (focusIntent === \"prev\") candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n }\n })\n }\n )\n }\n );\n }\n);\nRovingFocusGroupItem.displayName = ITEM_NAME;\nvar MAP_KEY_TO_FOCUS_INTENT = {\n ArrowLeft: \"prev\",\n ArrowUp: \"prev\",\n ArrowRight: \"next\",\n ArrowDown: \"next\",\n PageUp: \"first\",\n Home: \"first\",\n PageDown: \"last\",\n End: \"last\"\n};\nfunction getDirectionAwareKey(key, dir) {\n if (dir !== \"rtl\") return key;\n return key === \"ArrowLeft\" ? \"ArrowRight\" : key === \"ArrowRight\" ? \"ArrowLeft\" : key;\n}\nfunction getFocusIntent(event, orientation, dir) {\n const key = getDirectionAwareKey(event.key, dir);\n if (orientation === \"vertical\" && [\"ArrowLeft\", \"ArrowRight\"].includes(key)) return void 0;\n if (orientation === \"horizontal\" && [\"ArrowUp\", \"ArrowDown\"].includes(key)) return void 0;\n return MAP_KEY_TO_FOCUS_INTENT[key];\n}\nfunction focusFirst(candidates, preventScroll = false) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus({ preventScroll });\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nvar Root = RovingFocusGroup;\nvar Item = RovingFocusGroupItem;\nexport {\n Item,\n Root,\n RovingFocusGroup,\n RovingFocusGroupItem,\n createRovingFocusGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/presence/src/Presence.tsx\nimport * as React2 from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// packages/react/presence/src/useStateMachine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// packages/react/presence/src/Presence.tsx\nvar Presence = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef({});\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n if (node2) stylesRef.current = getComputedStyle(node2);\n setNode(node2);\n }, [])\n };\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\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}\nexport {\n Presence\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/tabs/src/tabs.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TABS_NAME = \"Tabs\";\nvar [createTabsContext, createTabsScope] = createContextScope(TABS_NAME, [\n createRovingFocusGroupScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [TabsProvider, useTabsContext] = createTabsContext(TABS_NAME);\nvar Tabs = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTabs,\n value: valueProp,\n onValueChange,\n defaultValue,\n orientation = \"horizontal\",\n dir,\n activationMode = \"automatic\",\n ...tabsProps\n } = props;\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue\n });\n return /* @__PURE__ */ jsx(\n TabsProvider,\n {\n scope: __scopeTabs,\n baseId: useId(),\n value,\n onValueChange: setValue,\n orientation,\n dir: direction,\n activationMode,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n dir: direction,\n \"data-orientation\": orientation,\n ...tabsProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabs.displayName = TABS_NAME;\nvar TAB_LIST_NAME = \"TabsList\";\nvar TabsList = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, loop = true, ...listProps } = props;\n const context = useTabsContext(TAB_LIST_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation: context.orientation,\n dir: context.dir,\n loop,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"tablist\",\n \"aria-orientation\": context.orientation,\n ...listProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabsList.displayName = TAB_LIST_NAME;\nvar TRIGGER_NAME = \"TabsTrigger\";\nvar TabsTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, disabled = false, ...triggerProps } = props;\n const context = useTabsContext(TRIGGER_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n active: isSelected,\n children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"tab\",\n \"aria-selected\": isSelected,\n \"aria-controls\": contentId,\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n id: triggerId,\n ...triggerProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onValueChange(value);\n } else {\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if ([\" \", \"Enter\"].includes(event.key)) context.onValueChange(value);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n const isAutomaticActivation = context.activationMode !== \"manual\";\n if (!isSelected && !disabled && isAutomaticActivation) {\n context.onValueChange(value);\n }\n })\n }\n )\n }\n );\n }\n);\nTabsTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"TabsContent\";\nvar TabsContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, forceMount, children, ...contentProps } = props;\n const context = useTabsContext(CONTENT_NAME, __scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n const isMountAnimationPreventedRef = React.useRef(isSelected);\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isSelected, children: ({ present }) => /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-orientation\": context.orientation,\n role: \"tabpanel\",\n \"aria-labelledby\": triggerId,\n hidden: !present,\n id: contentId,\n tabIndex: 0,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n animationDuration: isMountAnimationPreventedRef.current ? \"0s\" : void 0\n },\n children: present && children\n }\n ) });\n }\n);\nTabsContent.displayName = CONTENT_NAME;\nfunction makeTriggerId(baseId, value) {\n return `${baseId}-trigger-${value}`;\n}\nfunction makeContentId(baseId, value) {\n return `${baseId}-content-${value}`;\n}\nvar Root2 = Tabs;\nvar List = TabsList;\nvar Trigger = TabsTrigger;\nvar Content = TabsContent;\nexport {\n Content,\n List,\n Root2 as Root,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n Trigger,\n createTabsScope\n};\n//# sourceMappingURL=index.mjs.map\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue.call(this, arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn this && this[arg] || arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(this, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, this && this[key] || key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import React, {\n ComponentPropsWithoutRef,\n ForwardedRef,\n forwardRef,\n isValidElement,\n ReactElement,\n ReactNode,\n} from \"react\";\nimport { Content } from \"@radix-ui/react-tabs\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./tab-content.module.scss\";\n\nexport type TabContentProps = {\n /**\n * The text that will be displayed in the tab.\n * */\n name: string;\n /**\n * A unique ID that associates the tab with a content.\n * */\n tabId: string;\n /**\n * If true, the inactive tab content will not be rendered.\n */\n disableForceMount?: boolean;\n className?: string;\n \"data-testid\"?: string;\n};\n\nexport type TabContentPropsWithChildren = ComponentPropsWithoutRef<\"div\"> &\n TabContentProps & {\n children: ReactNode;\n };\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-tab-content\";\n\nexport const TabContent = forwardRef(\n (\n {\n children,\n tabId,\n \"data-testid\": dataTestId,\n className,\n disableForceMount,\n ...rest\n }: TabContentPropsWithChildren,\n ref: ForwardedRef<HTMLDivElement>\n ) => (\n <Content\n ref={ref}\n className={cx([\n rootClassName,\n className,\n { [`${rootClassName}--force-mount`]: !disableForceMount },\n ])}\n data-testid={dataTestId}\n value={tabId}\n forceMount={!disableForceMount || undefined}\n {...rest}\n >\n {children}\n </Content>\n )\n);\n\nexport const isTabContent = (\n child?: ReactNode\n): child is ReactElement<TabContentProps> =>\n !!child && isValidElement<TabContentProps>(child) && !!child.props.name && !!child.props.tabId;\n","import React, { FocusEventHandler, ForwardedRef, forwardRef, ReactNode } from \"react\";\nimport { Trigger } from \"@radix-ui/react-tabs\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./tab-header.module.scss\";\nimport { TabsVariant } from \"./tabs.utils\";\n\ntype TabHeaderProps = {\n \"data-testid\"?: string;\n index: number;\n tabId: string;\n variant: TabsVariant;\n negative?: boolean;\n onFocus: FocusEventHandler<HTMLButtonElement>;\n children: ReactNode;\n};\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-tab-header\";\n\nexport const TabHeader = forwardRef(\n <T extends HTMLButtonElement>(\n {\n index,\n tabId,\n variant,\n negative,\n onFocus,\n \"data-testid\": dataTestId,\n children,\n }: TabHeaderProps,\n ref: ForwardedRef<T>\n ) => (\n <Trigger\n id={`${tabId}-trigger`}\n className={cx([rootClassName, `${rootClassName}--${variant}${negative ? \"-negative\" : \"\"}`])}\n value={tabId}\n data-testid={dataTestId}\n data-index={index}\n ref={ref}\n onFocus={onFocus}\n >\n {children}\n </Trigger>\n )\n);\n","import { TabContent } from \"./tab-content\";\n\nexport type TabsCmp<P> = React.FunctionComponent<P> & {\n Content: typeof TabContent;\n};\n\nexport const tabsVariants = [\"line\", \"contained\"] as const;\n\nexport type TabsVariant = (typeof tabsVariants)[number];\n\nexport const createTabChangeDetailEvent = (value: string) =>\n new CustomEvent<TabChangeDetail>(\"tabChangeDetail\", { detail: { value } });\n\nexport type TabChangeDetail = { value: string };\n","import React, { Children, ReactElement, useEffect, useRef, useState } from \"react\";\nimport { Icon } from \"@purpurds/icon\";\nimport { chevronLeft } from \"@purpurds/icon/assets/chevron-left\";\nimport { chevronRight } from \"@purpurds/icon/assets/chevron-right\";\nimport { List, Root } from \"@radix-ui/react-tabs\";\nimport c from \"classnames/bind\";\n\nimport { isTabContent, TabContent } from \"./tab-content\";\nimport { TabHeader } from \"./tab-header\";\nimport styles from \"./tabs.module.scss\";\nimport { createTabChangeDetailEvent, TabChangeDetail, TabsCmp, TabsVariant } from \"./tabs.utils\";\n\ntype TabsProps = {\n children: Array<ReactElement<typeof TabContent>> | ReactElement<typeof TabContent>;\n variant?: TabsVariant;\n negative?: boolean;\n fullWidth?: boolean;\n /**\n * The controlled value of the tabs. Must be used in conjunction with onChange.\n */\n value?: string;\n /**\n * Event handler called when the value changes.\n * */\n onChange?: (event: CustomEvent<TabChangeDetail>) => void;\n defaultValue?: string;\n \"data-testid\"?: string;\n} & Pick<React.HTMLAttributes<HTMLDivElement>, \"style\" | \"className\">;\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-tabs\";\n\nconst scrollToTarget = (target: HTMLElement, tabList?: HTMLDivElement | null) => {\n /**\n * scroll may not be available in test runner, so check existence before\n * proceeding. We can't use scrollIntoView() because Safari doesn't support\n * it fully.\n */\n if (\n typeof target?.getBoundingClientRect !== \"function\" ||\n typeof tabList?.scroll !== \"function\"\n ) {\n return;\n }\n\n const targetRect = target.getBoundingClientRect();\n const wrapperRect = tabList.getBoundingClientRect();\n const wrapperWidth = tabList.clientWidth;\n const wrapperOffset = parseInt(getComputedStyle(tabList).borderLeftWidth?.split(\"px\")[0], 10);\n const offset = wrapperRect.left + (isNaN(wrapperOffset) ? 0 : wrapperOffset);\n let left;\n\n // Handle forward navigation\n if (targetRect.right > wrapperRect.right) {\n left = targetRect.left + tabList.scrollLeft;\n left = left + targetRect.width - wrapperWidth + wrapperWidth * 0.1;\n left = left - offset;\n }\n\n // Handle backwards navigation\n if (targetRect.left < wrapperRect.left) {\n left = targetRect.left + tabList.scrollLeft;\n left = left - wrapperWidth * 0.1;\n left = left - offset;\n }\n\n if (left !== undefined) {\n tabList.scroll({ left, behavior: \"smooth\" });\n }\n};\n\nexport const Tabs: TabsCmp<TabsProps> = ({\n children,\n variant = \"line\",\n negative = false,\n fullWidth = false,\n onChange,\n className,\n defaultValue,\n \"data-testid\": dataTestId,\n value,\n ...props\n}) => {\n const [scrollClasses, setScrollClasses] = useState<{ [key: string]: boolean }>({});\n const [selectedTriggerOffset, setSelectedTriggerOffset] = useState(0);\n const [selectedTriggerWidth, setSelectedTriggerWidth] = useState(0);\n const tabContentChildren = Children.toArray(children).filter(isTabContent);\n const tabList = useRef<HTMLDivElement>(null);\n const tabChildren = useRef<HTMLButtonElement[]>(new Array(tabContentChildren.length));\n const sideScrollAdjustmentSize = 200;\n const isLineVariant = variant === \"line\";\n\n const classNames = cx([\n rootClassName,\n `${rootClassName}--${variant}${negative ? \"-negative\" : \"\"}`,\n { [`${rootClassName}--fullWidth`]: fullWidth },\n className,\n ]);\n\n const tabIds = Children.map(tabContentChildren, ({ props: { tabId } }) => tabId);\n\n const getDefaultTabIndex = () => {\n const defaultIndex = tabIds.findIndex((tabIndex) => tabIndex === defaultValue);\n return defaultIndex >= 0 ? defaultIndex : 0;\n };\n\n useEffect(() => {\n if (value) {\n setActiveIndex(tabContentChildren.findIndex((child) => child.props.tabId === value));\n }\n }, [tabContentChildren, value]);\n\n const [activeIndex, setActiveIndex] = useState(getDefaultTabIndex);\n\n if (new Set(tabIds).size !== tabIds.length) {\n throw new Error(\"tabId must be unique\");\n }\n\n const getTestId = (name: string, id?: string) =>\n id || dataTestId ? `${id || dataTestId}-${name}` : undefined;\n\n const handleLinePosition = () => {\n if (!isLineVariant) {\n return;\n }\n\n const activeTabElement = tabChildren.current[activeIndex];\n\n setSelectedTriggerOffset(activeTabElement?.offsetLeft || 0);\n setSelectedTriggerWidth(activeTabElement?.getBoundingClientRect().width || 0);\n };\n\n const handleTabChange = (_value: string) => {\n if (isLineVariant && !value) {\n setActiveIndex(tabContentChildren.findIndex((child) => child.props.tabId === _value));\n }\n onChange?.(createTabChangeDetailEvent(_value));\n };\n\n const handleScrollButtonClick = (side: \"left\" | \"right\") => {\n if (tabList?.current) {\n const { scrollLeft } = tabList.current;\n const modifier = side === \"left\" ? -sideScrollAdjustmentSize : sideScrollAdjustmentSize;\n\n tabList.current.scroll({ left: scrollLeft + modifier, behavior: \"smooth\" });\n }\n };\n\n const ScrollButton = ({ side }: { side: \"left\" | \"right\" }) => (\n <button\n className={cx(`${rootClassName}__scroll-button`, `${rootClassName}__scroll-button--${side}`)}\n onClick={() => handleScrollButtonClick(side)}\n type=\"button\"\n aria-hidden=\"true\"\n tabIndex={-1}\n data-testid={getTestId(\"scroll-button\")}\n >\n <Icon svg={side === \"left\" ? chevronLeft : chevronRight} size=\"md\" />\n </button>\n );\n\n useEffect(() => {\n window.addEventListener(\"resize\", handleLinePosition);\n\n return () => {\n window.removeEventListener(\"resize\", handleLinePosition);\n };\n }, [activeIndex]); // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n handleLinePosition();\n }, [activeIndex, fullWidth, tabContentChildren.length, variant]); // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n const onIntersection = (entries: IntersectionObserverEntry[]): void => {\n const allEntriesVisible =\n entries.every((entry) => entry.isIntersecting) &&\n entries.length === tabContentChildren.length;\n\n if (allEntriesVisible) {\n setScrollClasses({});\n return;\n }\n\n entries.forEach((entry) => {\n const entryIndex = Number(entry.target.getAttribute(\"data-index\"));\n const isStartEntry = entryIndex === 0;\n const isLastEntry = entryIndex === tabContentChildren.length - 1;\n\n setScrollClasses((currentScrollClasses) => ({\n ...currentScrollClasses,\n ...(isStartEntry && {\n [`${rootClassName}__wrapper--scroll-end`]: !entry.isIntersecting,\n }),\n ...(isLastEntry && {\n [`${rootClassName}__wrapper--scroll-start`]: !entry.isIntersecting,\n }),\n }));\n });\n };\n\n const observer = new IntersectionObserver(onIntersection, {\n threshold: [0.99],\n root: tabList.current,\n });\n\n const currentTabChildren = tabChildren.current;\n\n currentTabChildren.forEach((el) => observer.observe(el));\n\n return () => {\n currentTabChildren.forEach((el) => observer.unobserve(el));\n };\n }, [tabContentChildren.length]);\n\n return (\n <Root\n defaultValue={defaultValue ?? tabContentChildren[0].props.tabId}\n onValueChange={handleTabChange}\n data-testid={dataTestId}\n className={classNames}\n value={value}\n {...props}\n >\n <div className={cx(`${rootClassName}__container`)}>\n <div className={cx([`${rootClassName}__wrapper`, scrollClasses])}>\n <List\n ref={(el) => {\n tabList.current = el;\n }}\n className={cx(`${rootClassName}__list`)}\n >\n {Children.map(tabContentChildren, (child, index) => {\n const { name, tabId, \"data-testid\": childDataTestId } = child.props;\n return (\n <TabHeader\n data-testid={getTestId(\"header\", childDataTestId)}\n index={index}\n tabId={tabId}\n ref={(el) => {\n if (el) {\n tabChildren.current[index] = el;\n }\n }}\n onFocus={(e) => {\n scrollToTarget(e.target as HTMLElement, tabList.current);\n }}\n variant={variant}\n negative={negative}\n >\n {name}\n </TabHeader>\n );\n })}\n {isLineVariant && (\n <div\n className={cx(`${rootClassName}__selected-border`)}\n style={{\n width: selectedTriggerWidth,\n transform: `translateX(${selectedTriggerOffset}px)`,\n }}\n data-testid={getTestId(\"selected-border\")}\n />\n )}\n </List>\n <ScrollButton side=\"left\" />\n <ScrollButton side=\"right\" />\n </div>\n <div className={cx(`${rootClassName}__content-container`)}>\n {Children.map(tabContentChildren, (child) => child)}\n </div>\n </div>\n </Root>\n );\n};\n\nTabs.Content = TabContent;\n\nexport * from \"./tabs.utils\";\n"],"names":["f","r","c","p","m","e","s","t","n","o","i","u","_","d","v","x","l","g","h","b","S","y","a","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","createContextScope","scopeName","createContextScopeDeps","defaultContexts","createContext3","rootComponentName","defaultContext","BaseContext","React","index","Provider","props","scope","children","context","Context","_a","value","jsx","useContext2","consumerName","createScope","scopeContexts","contexts","composeContextScopes","scopes","baseScope","scopeHooks","createScope2","overrideScopes","nextScopes","nextScopes2","useScope","currentScope","setRef","ref","composeRefs","refs","node","hasCleanup","cleanups","cleanup","useComposedRefs","Slot","forwardedRef","slotProps","childrenArray","slottable","isSlottable","newElement","newChildren","child","SlotClone","childrenRef","getElementRef","props2","mergeProps","Slottable","Fragment2","childProps","overrideProps","propName","slotPropValue","childPropValue","args","element","getter","mayWarn","_b","createCollection","name","PROVIDER_NAME","createCollectionContext","createCollectionScope","CollectionProviderImpl","useCollectionContext","CollectionProvider","itemMap","COLLECTION_SLOT_NAME","CollectionSlot","composedRefs","ITEM_SLOT_NAME","ITEM_DATA_ATTR","CollectionItemSlot","itemData","useCollection","collectionNode","orderedNodes","useLayoutEffect2","useReactId","count","useId","deterministicId","id","setId","useLayoutEffect","reactId","NODES","Primitive","primitive","Node","asChild","primitiveProps","Comp","useCallbackRef","callback","callbackRef","useControllableState","prop","defaultProp","onChange","uncontrolledProp","setUncontrolledProp","useUncontrolledState","isControlled","handleChange","setValue","nextValue","value2","uncontrolledState","prevValueRef","DirectionContext","useDirection","localDir","globalDir","ENTRY_FOCUS","EVENT_OPTIONS","GROUP_NAME","Collection","createRovingFocusGroupContext","createRovingFocusGroupScope","RovingFocusProvider","useRovingFocusContext","RovingFocusGroup","RovingFocusGroupImpl","__scopeRovingFocusGroup","orientation","loop","dir","currentTabStopIdProp","defaultCurrentTabStopId","onCurrentTabStopIdChange","onEntryFocus","preventScrollOnEntryFocus","groupProps","direction","currentTabStopId","setCurrentTabStopId","isTabbingBackOut","setIsTabbingBackOut","handleEntryFocus","getItems","isClickFocusRef","focusableItemsCount","setFocusableItemsCount","tabStopId","prevCount","isKeyboardFocus","entryFocusEvent","items","item","activeItem","currentItem","candidateNodes","focusFirst","ITEM_NAME","RovingFocusGroupItem","focusable","active","itemProps","autoId","isCurrentTabStop","onFocusableItemAdd","onFocusableItemRemove","focusIntent","getFocusIntent","currentIndex","wrapArray","MAP_KEY_TO_FOCUS_INTENT","getDirectionAwareKey","key","candidates","preventScroll","PREVIOUSLY_FOCUSED_ELEMENT","candidate","array","startIndex","Root","Item","useStateMachine","initialState","machine","state","Presence","present","presence","usePresence","React2","setNode","stylesRef","prevPresentRef","prevAnimationNameRef","send","currentAnimationName","getAnimationName","styles","wasPresent","prevAnimationName","timeoutId","ownerWindow","handleAnimationEnd","isCurrentAnimation","currentFillMode","handleAnimationStart","node2","TABS_NAME","createTabsContext","createTabsScope","useRovingFocusGroupScope","TabsProvider","useTabsContext","Tabs","__scopeTabs","valueProp","onValueChange","defaultValue","activationMode","tabsProps","TAB_LIST_NAME","TabsList","listProps","rovingFocusGroupScope","RovingFocusGroup.Root","TRIGGER_NAME","TabsTrigger","disabled","triggerProps","triggerId","makeTriggerId","contentId","makeContentId","isSelected","RovingFocusGroup.Item","isAutomaticActivation","CONTENT_NAME","TabsContent","forceMount","contentProps","isMountAnimationPreventedRef","rAF","baseId","Root2","List","Trigger","Content","hasOwn","classNames","classes","arg","appendClass","parseValue","newClass","module","cx","rootClassName","TabContent","forwardRef","tabId","dataTestId","className","disableForceMount","rest","isTabContent","isValidElement","TabHeader","variant","negative","onFocus","tabsVariants","createTabChangeDetailEvent","scrollToTarget","target","tabList","targetRect","wrapperRect","wrapperWidth","wrapperOffset","offset","left","fullWidth","scrollClasses","setScrollClasses","useState","selectedTriggerOffset","setSelectedTriggerOffset","selectedTriggerWidth","setSelectedTriggerWidth","tabContentChildren","Children","useRef","tabChildren","sideScrollAdjustmentSize","isLineVariant","tabIds","getDefaultTabIndex","defaultIndex","tabIndex","useEffect","setActiveIndex","activeIndex","getTestId","handleLinePosition","activeTabElement","handleTabChange","_value","handleScrollButtonClick","side","scrollLeft","modifier","ScrollButton","Icon","chevronLeft","chevronRight","onIntersection","entries","entry","entryIndex","isStartEntry","isLastEntry","currentScrollClasses","observer","currentTabChildren","el","jsxs","childDataTestId"],"mappings":"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","x_google_ignoreList":[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]}
package/dist/tabs.es.js CHANGED
@@ -869,7 +869,7 @@ const ie = /* @__PURE__ */ $t(qt), Lt = {
869
869
  );
870
870
  return j(() => (window.addEventListener("resize", M), () => {
871
871
  window.removeEventListener("resize", M);
872
- }), []), j(() => {
872
+ }), [I]), j(() => {
873
873
  M();
874
874
  }, [I, o, b.length, t]), j(() => {
875
875
  const p = (T) => {
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.es.js","sources":["../../icon/dist/icon.es.js","../../icon/dist/assets/chevron-left.es.js","../../icon/dist/assets/chevron-right.es.js","../../../common/temp/node_modules/.pnpm/@radix-ui+primitive@1.1.1/node_modules/@radix-ui/primitive/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-context@1.1.1_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-context/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-compose-refs@1.1.1_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-slot@1.1.2_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-slot/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-collection@1.1.2_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-collection/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-layout-effect@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-id@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-id/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-primitive@2.0.2_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-primitive/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-callback-ref@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-controllable-state@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-direction@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-direction/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-roving-focus@1.1.2_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-roving-focus/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-presence@1.1.2_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-presence/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-tabs@1.1.3_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-tabs/dist/index.mjs","../../../common/temp/node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/bind.js","../src/tab-content.tsx","../src/tab-header.tsx","../src/tabs.utils.ts","../src/tabs.tsx"],"sourcesContent":["import { jsx as a } from \"react/jsx-runtime\";\nfunction f(r) {\n return r && r.__esModule && Object.prototype.hasOwnProperty.call(r, \"default\") ? r.default : r;\n}\nvar c = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\nvar p;\nfunction m() {\n return p || (p = 1, function(r) {\n (function() {\n var e = {}.hasOwnProperty;\n function s() {\n for (var t = \"\", n = 0; n < arguments.length; n++) {\n var o = arguments[n];\n o && (t = i(t, u.call(this, o)));\n }\n return t;\n }\n function u(t) {\n if (typeof t == \"string\" || typeof t == \"number\")\n return this && this[t] || t;\n if (typeof t != \"object\")\n return \"\";\n if (Array.isArray(t))\n return s.apply(this, t);\n if (t.toString !== Object.prototype.toString && !t.toString.toString().includes(\"[native code]\"))\n return t.toString();\n var n = \"\";\n for (var o in t)\n e.call(t, o) && t[o] && (n = i(n, this && this[o] || o));\n return n;\n }\n function i(t, n) {\n return n ? t ? t + \" \" + n : t + n : t;\n }\n r.exports ? (s.default = s, r.exports = s) : window.classNames = s;\n })();\n }(c)), c.exports;\n}\nvar _ = m();\nconst d = /* @__PURE__ */ f(_), v = {\n \"purpur-icon\": \"_purpur-icon_8u1lq_1\",\n \"purpur-icon--xxs\": \"_purpur-icon--xxs_8u1lq_4\",\n \"purpur-icon--xs\": \"_purpur-icon--xs_8u1lq_8\",\n \"purpur-icon--sm\": \"_purpur-icon--sm_8u1lq_12\",\n \"purpur-icon--md\": \"_purpur-icon--md_8u1lq_16\",\n \"purpur-icon--lg\": \"_purpur-icon--lg_8u1lq_20\",\n \"purpur-icon--xl\": \"_purpur-icon--xl_8u1lq_24\"\n}, x = d.bind(v), l = \"purpur-icon\", w = [\"xxs\", \"xs\", \"sm\", \"md\", \"lg\", \"xl\"], g = \"md\", h = (r) => r.filter((e) => Object.keys(e).length >= 1).map((e) => `${e.name}=\"${e.value}\"`).join(\" \"), b = ({ content: r = \"\", title: e } = {}) => {\n const s = [\n { name: \"xmlns\", value: \"http://www.w3.org/2000/svg\" },\n { name: \"fill\", value: \"currentColor\" },\n { name: \"viewBox\", value: \"0 0 24 24\" },\n e ? { name: \"role\", value: \"img\" } : { name: \"aria-hidden\", value: \"true\" }\n ], u = e ? `<title>${e}</title>` : \"\";\n return `<svg ${h(s)}>${u}${r}</svg>`;\n}, S = (r) => r.replace(/<(\\/?)svg([^>]*)>/g, \"\").trim(), y = ({\n [\"data-testid\"]: r,\n svg: e,\n allyTitle: s,\n className: u,\n size: i = g,\n ...t\n}) => {\n const n = b({\n content: S(e.svg),\n title: s\n }), o = x(u, l, `${l}--${i}`);\n return /* @__PURE__ */ a(\n \"span\",\n {\n \"aria-label\": s,\n className: o,\n \"data-testid\": r,\n dangerouslySetInnerHTML: { __html: n },\n ...t\n }\n );\n};\ny.displayName = \"Icon\";\nexport {\n g as DEFAULT_SIZE,\n y as Icon,\n w as sizes\n};\n//# sourceMappingURL=icon.es.js.map\n","const e = {\n name: \"chevron-left\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M16.175 3.905a.9.9 0 0 1-.08 1.27L8.36 12l7.736 6.825a.9.9 0 0 1-1.191 1.35l-8.5-7.5a.9.9 0 0 1 0-1.35l8.5-7.5a.9.9 0 0 1 1.27.08Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"chevron-left\"],\n category: \"utility\"\n};\nexport {\n e as chevronLeft\n};\n//# sourceMappingURL=chevron-left.es.js.map\n","const e = {\n name: \"chevron-right\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M7.809 3.924a.9.9 0 0 0 .115 1.267L16.094 12l-8.17 6.809a.9.9 0 0 0 1.152 1.382l9-7.5a.9.9 0 0 0 0-1.382l-9-7.5a.9.9 0 0 0-1.267.115Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"chevron-right\"],\n category: \"utility\"\n};\nexport {\n e as chevronRight\n};\n//# sourceMappingURL=chevron-right.es.js.map\n","// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/context/src/createContext.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (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 };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\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 throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return 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 };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/compose-refs/src/composeRefs.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}\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}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/slot/src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n};\nfunction isSlottable(child) {\n return React.isValidElement(child) && child.type === Slottable;\n}\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 childPropValue(...args);\n slotPropValue(...args);\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}\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}\nvar Root = Slot;\nexport {\n Root,\n Slot,\n Slottable\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/collection/src/collection.tsx\nimport React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createCollection(name) {\n const PROVIDER_NAME = name + \"CollectionProvider\";\n const [createCollectionContext, createCollectionScope] = createContextScope(PROVIDER_NAME);\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(\n PROVIDER_NAME,\n { collectionRef: { current: null }, itemMap: /* @__PURE__ */ new Map() }\n );\n const CollectionProvider = (props) => {\n const { scope, children } = props;\n const ref = React.useRef(null);\n const itemMap = React.useRef(/* @__PURE__ */ new Map()).current;\n return /* @__PURE__ */ jsx(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children });\n };\n CollectionProvider.displayName = PROVIDER_NAME;\n const COLLECTION_SLOT_NAME = name + \"CollectionSlot\";\n const CollectionSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);\n return /* @__PURE__ */ jsx(Slot, { ref: composedRefs, children });\n }\n );\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n const ITEM_SLOT_NAME = name + \"CollectionItemSlot\";\n const ITEM_DATA_ATTR = \"data-radix-collection-item\";\n const CollectionItemSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n React.useEffect(() => {\n context.itemMap.set(ref, { ref, ...itemData });\n return () => void context.itemMap.delete(ref);\n });\n return /* @__PURE__ */ jsx(Slot, { ...{ [ITEM_DATA_ATTR]: \"\" }, ref: composedRefs, children });\n }\n );\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n function useCollection(scope) {\n const context = useCollectionContext(name + \"CollectionConsumer\", scope);\n const getItems = React.useCallback(() => {\n const collectionNode = context.collectionRef.current;\n if (!collectionNode) return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort(\n (a, b) => orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current)\n );\n return orderedItems;\n }, [context.collectionRef, context.itemMap]);\n return getItems;\n }\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n useCollection,\n createCollectionScope\n ];\n}\nexport {\n createCollection\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/useLayoutEffect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = Boolean(globalThis?.document) ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/id/src/id.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useReactId = React[\"useId\".toString()] || (() => void 0);\nvar count = 0;\nfunction useId(deterministicId) {\n const [id, setId] = React.useState(useReactId());\n useLayoutEffect(() => {\n if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n }, [deterministicId]);\n return deterministicId || (id ? `radix-${id}` : \"\");\n}\nexport {\n useId\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/primitive/src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } 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 \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((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}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-controllable-state/src/useControllableState.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n }\n}) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value2 !== prop) handleChange(value2);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const uncontrolledState = React.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n return uncontrolledState;\n}\nexport {\n useControllableState\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/direction/src/Direction.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DirectionContext = React.createContext(void 0);\nvar DirectionProvider = (props) => {\n const { dir, children } = props;\n return /* @__PURE__ */ jsx(DirectionContext.Provider, { value: dir, children });\n};\nfunction useDirection(localDir) {\n const globalDir = React.useContext(DirectionContext);\n return localDir || globalDir || \"ltr\";\n}\nvar Provider = DirectionProvider;\nexport {\n DirectionProvider,\n Provider,\n useDirection\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/roving-focus/src/roving-focus-group.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ENTRY_FOCUS = \"rovingFocusGroup.onEntryFocus\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar GROUP_NAME = \"RovingFocusGroup\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(GROUP_NAME);\nvar [createRovingFocusGroupContext, createRovingFocusGroupScope] = createContextScope(\n GROUP_NAME,\n [createCollectionScope]\n);\nvar [RovingFocusProvider, useRovingFocusContext] = createRovingFocusGroupContext(GROUP_NAME);\nvar RovingFocusGroup = React.forwardRef(\n (props, forwardedRef) => {\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(RovingFocusGroupImpl, { ...props, ref: forwardedRef }) }) });\n }\n);\nRovingFocusGroup.displayName = GROUP_NAME;\nvar RovingFocusGroupImpl = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n orientation,\n loop = false,\n dir,\n currentTabStopId: currentTabStopIdProp,\n defaultCurrentTabStopId,\n onCurrentTabStopIdChange,\n onEntryFocus,\n preventScrollOnEntryFocus = false,\n ...groupProps\n } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const direction = useDirection(dir);\n const [currentTabStopId = null, setCurrentTabStopId] = useControllableState({\n prop: currentTabStopIdProp,\n defaultProp: defaultCurrentTabStopId,\n onChange: onCurrentTabStopIdChange\n });\n const [isTabbingBackOut, setIsTabbingBackOut] = React.useState(false);\n const handleEntryFocus = useCallbackRef(onEntryFocus);\n const getItems = useCollection(__scopeRovingFocusGroup);\n const isClickFocusRef = React.useRef(false);\n const [focusableItemsCount, setFocusableItemsCount] = React.useState(0);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n node.addEventListener(ENTRY_FOCUS, handleEntryFocus);\n return () => node.removeEventListener(ENTRY_FOCUS, handleEntryFocus);\n }\n }, [handleEntryFocus]);\n return /* @__PURE__ */ jsx(\n RovingFocusProvider,\n {\n scope: __scopeRovingFocusGroup,\n orientation,\n dir: direction,\n loop,\n currentTabStopId,\n onItemFocus: React.useCallback(\n (tabStopId) => setCurrentTabStopId(tabStopId),\n [setCurrentTabStopId]\n ),\n onItemShiftTab: React.useCallback(() => setIsTabbingBackOut(true), []),\n onFocusableItemAdd: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount + 1),\n []\n ),\n onFocusableItemRemove: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount - 1),\n []\n ),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,\n \"data-orientation\": orientation,\n ...groupProps,\n ref: composedRefs,\n style: { outline: \"none\", ...props.style },\n onMouseDown: composeEventHandlers(props.onMouseDown, () => {\n isClickFocusRef.current = true;\n }),\n onFocus: composeEventHandlers(props.onFocus, (event) => {\n const isKeyboardFocus = !isClickFocusRef.current;\n if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {\n const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);\n event.currentTarget.dispatchEvent(entryFocusEvent);\n if (!entryFocusEvent.defaultPrevented) {\n const items = getItems().filter((item) => item.focusable);\n const activeItem = items.find((item) => item.active);\n const currentItem = items.find((item) => item.id === currentTabStopId);\n const candidateItems = [activeItem, currentItem, ...items].filter(\n Boolean\n );\n const candidateNodes = candidateItems.map((item) => item.ref.current);\n focusFirst(candidateNodes, preventScrollOnEntryFocus);\n }\n }\n isClickFocusRef.current = false;\n }),\n onBlur: composeEventHandlers(props.onBlur, () => setIsTabbingBackOut(false))\n }\n )\n }\n );\n});\nvar ITEM_NAME = \"RovingFocusGroupItem\";\nvar RovingFocusGroupItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n focusable = true,\n active = false,\n tabStopId,\n ...itemProps\n } = props;\n const autoId = useId();\n const id = tabStopId || autoId;\n const context = useRovingFocusContext(ITEM_NAME, __scopeRovingFocusGroup);\n const isCurrentTabStop = context.currentTabStopId === id;\n const getItems = useCollection(__scopeRovingFocusGroup);\n const { onFocusableItemAdd, onFocusableItemRemove } = context;\n React.useEffect(() => {\n if (focusable) {\n onFocusableItemAdd();\n return () => onFocusableItemRemove();\n }\n }, [focusable, onFocusableItemAdd, onFocusableItemRemove]);\n return /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeRovingFocusGroup,\n id,\n focusable,\n active,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n tabIndex: isCurrentTabStop ? 0 : -1,\n \"data-orientation\": context.orientation,\n ...itemProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!focusable) event.preventDefault();\n else context.onItemFocus(id);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => context.onItemFocus(id)),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Tab\" && event.shiftKey) {\n context.onItemShiftTab();\n return;\n }\n if (event.target !== event.currentTarget) return;\n const focusIntent = getFocusIntent(event, context.orientation, context.dir);\n if (focusIntent !== void 0) {\n if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey) return;\n event.preventDefault();\n const items = getItems().filter((item) => item.focusable);\n let candidateNodes = items.map((item) => item.ref.current);\n if (focusIntent === \"last\") candidateNodes.reverse();\n else if (focusIntent === \"prev\" || focusIntent === \"next\") {\n if (focusIntent === \"prev\") candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n }\n })\n }\n )\n }\n );\n }\n);\nRovingFocusGroupItem.displayName = ITEM_NAME;\nvar MAP_KEY_TO_FOCUS_INTENT = {\n ArrowLeft: \"prev\",\n ArrowUp: \"prev\",\n ArrowRight: \"next\",\n ArrowDown: \"next\",\n PageUp: \"first\",\n Home: \"first\",\n PageDown: \"last\",\n End: \"last\"\n};\nfunction getDirectionAwareKey(key, dir) {\n if (dir !== \"rtl\") return key;\n return key === \"ArrowLeft\" ? \"ArrowRight\" : key === \"ArrowRight\" ? \"ArrowLeft\" : key;\n}\nfunction getFocusIntent(event, orientation, dir) {\n const key = getDirectionAwareKey(event.key, dir);\n if (orientation === \"vertical\" && [\"ArrowLeft\", \"ArrowRight\"].includes(key)) return void 0;\n if (orientation === \"horizontal\" && [\"ArrowUp\", \"ArrowDown\"].includes(key)) return void 0;\n return MAP_KEY_TO_FOCUS_INTENT[key];\n}\nfunction focusFirst(candidates, preventScroll = false) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus({ preventScroll });\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nvar Root = RovingFocusGroup;\nvar Item = RovingFocusGroupItem;\nexport {\n Item,\n Root,\n RovingFocusGroup,\n RovingFocusGroupItem,\n createRovingFocusGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/presence/src/Presence.tsx\nimport * as React2 from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// packages/react/presence/src/useStateMachine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// packages/react/presence/src/Presence.tsx\nvar Presence = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef({});\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n if (node2) stylesRef.current = getComputedStyle(node2);\n setNode(node2);\n }, [])\n };\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\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}\nexport {\n Presence\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/tabs/src/tabs.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TABS_NAME = \"Tabs\";\nvar [createTabsContext, createTabsScope] = createContextScope(TABS_NAME, [\n createRovingFocusGroupScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [TabsProvider, useTabsContext] = createTabsContext(TABS_NAME);\nvar Tabs = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTabs,\n value: valueProp,\n onValueChange,\n defaultValue,\n orientation = \"horizontal\",\n dir,\n activationMode = \"automatic\",\n ...tabsProps\n } = props;\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue\n });\n return /* @__PURE__ */ jsx(\n TabsProvider,\n {\n scope: __scopeTabs,\n baseId: useId(),\n value,\n onValueChange: setValue,\n orientation,\n dir: direction,\n activationMode,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n dir: direction,\n \"data-orientation\": orientation,\n ...tabsProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabs.displayName = TABS_NAME;\nvar TAB_LIST_NAME = \"TabsList\";\nvar TabsList = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, loop = true, ...listProps } = props;\n const context = useTabsContext(TAB_LIST_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation: context.orientation,\n dir: context.dir,\n loop,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"tablist\",\n \"aria-orientation\": context.orientation,\n ...listProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabsList.displayName = TAB_LIST_NAME;\nvar TRIGGER_NAME = \"TabsTrigger\";\nvar TabsTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, disabled = false, ...triggerProps } = props;\n const context = useTabsContext(TRIGGER_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n active: isSelected,\n children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"tab\",\n \"aria-selected\": isSelected,\n \"aria-controls\": contentId,\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n id: triggerId,\n ...triggerProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onValueChange(value);\n } else {\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if ([\" \", \"Enter\"].includes(event.key)) context.onValueChange(value);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n const isAutomaticActivation = context.activationMode !== \"manual\";\n if (!isSelected && !disabled && isAutomaticActivation) {\n context.onValueChange(value);\n }\n })\n }\n )\n }\n );\n }\n);\nTabsTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"TabsContent\";\nvar TabsContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, forceMount, children, ...contentProps } = props;\n const context = useTabsContext(CONTENT_NAME, __scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n const isMountAnimationPreventedRef = React.useRef(isSelected);\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isSelected, children: ({ present }) => /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-orientation\": context.orientation,\n role: \"tabpanel\",\n \"aria-labelledby\": triggerId,\n hidden: !present,\n id: contentId,\n tabIndex: 0,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n animationDuration: isMountAnimationPreventedRef.current ? \"0s\" : void 0\n },\n children: present && children\n }\n ) });\n }\n);\nTabsContent.displayName = CONTENT_NAME;\nfunction makeTriggerId(baseId, value) {\n return `${baseId}-trigger-${value}`;\n}\nfunction makeContentId(baseId, value) {\n return `${baseId}-content-${value}`;\n}\nvar Root2 = Tabs;\nvar List = TabsList;\nvar Trigger = TabsTrigger;\nvar Content = TabsContent;\nexport {\n Content,\n List,\n Root2 as Root,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n Trigger,\n createTabsScope\n};\n//# sourceMappingURL=index.mjs.map\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue.call(this, arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn this && this[arg] || arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(this, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, this && this[key] || key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import React, {\n ComponentPropsWithoutRef,\n ForwardedRef,\n forwardRef,\n isValidElement,\n ReactElement,\n ReactNode,\n} from \"react\";\nimport { Content } from \"@radix-ui/react-tabs\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./tab-content.module.scss\";\n\nexport type TabContentProps = {\n /**\n * The text that will be displayed in the tab.\n * */\n name: string;\n /**\n * A unique ID that associates the tab with a content.\n * */\n tabId: string;\n /**\n * If true, the inactive tab content will not be rendered.\n */\n disableForceMount?: boolean;\n className?: string;\n \"data-testid\"?: string;\n};\n\nexport type TabContentPropsWithChildren = ComponentPropsWithoutRef<\"div\"> &\n TabContentProps & {\n children: ReactNode;\n };\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-tab-content\";\n\nexport const TabContent = forwardRef(\n (\n {\n children,\n tabId,\n \"data-testid\": dataTestId,\n className,\n disableForceMount,\n ...rest\n }: TabContentPropsWithChildren,\n ref: ForwardedRef<HTMLDivElement>\n ) => (\n <Content\n ref={ref}\n className={cx([\n rootClassName,\n className,\n { [`${rootClassName}--force-mount`]: !disableForceMount },\n ])}\n data-testid={dataTestId}\n value={tabId}\n forceMount={!disableForceMount || undefined}\n {...rest}\n >\n {children}\n </Content>\n )\n);\n\nexport const isTabContent = (\n child?: ReactNode\n): child is ReactElement<TabContentProps> =>\n !!child && isValidElement<TabContentProps>(child) && !!child.props.name && !!child.props.tabId;\n","import React, { FocusEventHandler, ForwardedRef, forwardRef, ReactNode } from \"react\";\nimport { Trigger } from \"@radix-ui/react-tabs\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./tab-header.module.scss\";\nimport { TabsVariant } from \"./tabs.utils\";\n\ntype TabHeaderProps = {\n \"data-testid\"?: string;\n index: number;\n tabId: string;\n variant: TabsVariant;\n negative?: boolean;\n onFocus: FocusEventHandler<HTMLButtonElement>;\n children: ReactNode;\n};\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-tab-header\";\n\nexport const TabHeader = forwardRef(\n <T extends HTMLButtonElement>(\n {\n index,\n tabId,\n variant,\n negative,\n onFocus,\n \"data-testid\": dataTestId,\n children,\n }: TabHeaderProps,\n ref: ForwardedRef<T>\n ) => (\n <Trigger\n id={`${tabId}-trigger`}\n className={cx([rootClassName, `${rootClassName}--${variant}${negative ? \"-negative\" : \"\"}`])}\n value={tabId}\n data-testid={dataTestId}\n data-index={index}\n ref={ref}\n onFocus={onFocus}\n >\n {children}\n </Trigger>\n )\n);\n","import { TabContent } from \"./tab-content\";\n\nexport type TabsCmp<P> = React.FunctionComponent<P> & {\n Content: typeof TabContent;\n};\n\nexport const tabsVariants = [\"line\", \"contained\"] as const;\n\nexport type TabsVariant = (typeof tabsVariants)[number];\n\nexport const createTabChangeDetailEvent = (value: string) =>\n new CustomEvent<TabChangeDetail>(\"tabChangeDetail\", { detail: { value } });\n\nexport type TabChangeDetail = { value: string };\n","import React, { Children, ReactElement, useEffect, useRef, useState } from \"react\";\nimport { Icon } from \"@purpurds/icon\";\nimport { chevronLeft } from \"@purpurds/icon/assets/chevron-left\";\nimport { chevronRight } from \"@purpurds/icon/assets/chevron-right\";\nimport { List, Root } from \"@radix-ui/react-tabs\";\nimport c from \"classnames/bind\";\n\nimport { isTabContent, TabContent } from \"./tab-content\";\nimport { TabHeader } from \"./tab-header\";\nimport styles from \"./tabs.module.scss\";\nimport { createTabChangeDetailEvent, TabChangeDetail, TabsCmp, TabsVariant } from \"./tabs.utils\";\n\ntype TabsProps = {\n children: Array<ReactElement<typeof TabContent>> | ReactElement<typeof TabContent>;\n variant?: TabsVariant;\n negative?: boolean;\n fullWidth?: boolean;\n /**\n * The controlled value of the tabs. Must be used in conjunction with onChange.\n */\n value?: string;\n /**\n * Event handler called when the value changes.\n * */\n onChange?: (event: CustomEvent<TabChangeDetail>) => void;\n defaultValue?: string;\n \"data-testid\"?: string;\n} & Pick<React.HTMLAttributes<HTMLDivElement>, \"style\" | \"className\">;\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-tabs\";\n\nconst scrollToTarget = (target: HTMLElement, tabList?: HTMLDivElement | null) => {\n /**\n * scroll may not be available in test runner, so check existence before\n * proceeding. We can't use scrollIntoView() because Safari doesn't support\n * it fully.\n */\n if (\n typeof target?.getBoundingClientRect !== \"function\" ||\n typeof tabList?.scroll !== \"function\"\n ) {\n return;\n }\n\n const targetRect = target.getBoundingClientRect();\n const wrapperRect = tabList.getBoundingClientRect();\n const wrapperWidth = tabList.clientWidth;\n const wrapperOffset = parseInt(getComputedStyle(tabList).borderLeftWidth?.split(\"px\")[0], 10);\n const offset = wrapperRect.left + (isNaN(wrapperOffset) ? 0 : wrapperOffset);\n let left;\n\n // Handle forward navigation\n if (targetRect.right > wrapperRect.right) {\n left = targetRect.left + tabList.scrollLeft;\n left = left + targetRect.width - wrapperWidth + wrapperWidth * 0.1;\n left = left - offset;\n }\n\n // Handle backwards navigation\n if (targetRect.left < wrapperRect.left) {\n left = targetRect.left + tabList.scrollLeft;\n left = left - wrapperWidth * 0.1;\n left = left - offset;\n }\n\n if (left !== undefined) {\n tabList.scroll({ left, behavior: \"smooth\" });\n }\n};\n\nexport const Tabs: TabsCmp<TabsProps> = ({\n children,\n variant = \"line\",\n negative = false,\n fullWidth = false,\n onChange,\n className,\n defaultValue,\n \"data-testid\": dataTestId,\n value,\n ...props\n}) => {\n const [scrollClasses, setScrollClasses] = useState<{ [key: string]: boolean }>({});\n const [selectedTriggerOffset, setSelectedTriggerOffset] = useState(0);\n const [selectedTriggerWidth, setSelectedTriggerWidth] = useState(0);\n const tabContentChildren = Children.toArray(children).filter(isTabContent);\n const tabList = useRef<HTMLDivElement>(null);\n const tabChildren = useRef<HTMLButtonElement[]>(new Array(tabContentChildren.length));\n const sideScrollAdjustmentSize = 200;\n const isLineVariant = variant === \"line\";\n\n const classNames = cx([\n rootClassName,\n `${rootClassName}--${variant}${negative ? \"-negative\" : \"\"}`,\n { [`${rootClassName}--fullWidth`]: fullWidth },\n className,\n ]);\n\n const tabIds = Children.map(tabContentChildren, ({ props: { tabId } }) => tabId);\n\n const getDefaultTabIndex = () => {\n const defaultIndex = tabIds.findIndex((tabIndex) => tabIndex === defaultValue);\n return defaultIndex >= 0 ? defaultIndex : 0;\n };\n\n useEffect(() => {\n if (value) {\n setActiveIndex(tabContentChildren.findIndex((child) => child.props.tabId === value));\n }\n }, [tabContentChildren, value]);\n\n const [activeIndex, setActiveIndex] = useState(getDefaultTabIndex);\n\n if (new Set(tabIds).size !== tabIds.length) {\n throw new Error(\"tabId must be unique\");\n }\n\n const getTestId = (name: string, id?: string) =>\n id || dataTestId ? `${id || dataTestId}-${name}` : undefined;\n\n const handleLinePosition = () => {\n if (!isLineVariant) {\n return;\n }\n\n const activeTabElement = tabChildren.current[activeIndex];\n\n setSelectedTriggerOffset(activeTabElement?.offsetLeft || 0);\n setSelectedTriggerWidth(activeTabElement?.getBoundingClientRect().width || 0);\n };\n\n const handleTabChange = (_value: string) => {\n if (isLineVariant && !value) {\n setActiveIndex(tabContentChildren.findIndex((child) => child.props.tabId === _value));\n }\n onChange?.(createTabChangeDetailEvent(_value));\n };\n\n const handleScrollButtonClick = (side: \"left\" | \"right\") => {\n if (tabList?.current) {\n const { scrollLeft } = tabList.current;\n const modifier = side === \"left\" ? -sideScrollAdjustmentSize : sideScrollAdjustmentSize;\n\n tabList.current.scroll({ left: scrollLeft + modifier, behavior: \"smooth\" });\n }\n };\n\n const ScrollButton = ({ side }: { side: \"left\" | \"right\" }) => (\n <button\n className={cx(`${rootClassName}__scroll-button`, `${rootClassName}__scroll-button--${side}`)}\n onClick={() => handleScrollButtonClick(side)}\n type=\"button\"\n aria-hidden=\"true\"\n tabIndex={-1}\n data-testid={getTestId(\"scroll-button\")}\n >\n <Icon svg={side === \"left\" ? chevronLeft : chevronRight} size=\"md\" />\n </button>\n );\n\n useEffect(() => {\n window.addEventListener(\"resize\", handleLinePosition);\n\n return () => {\n window.removeEventListener(\"resize\", handleLinePosition);\n };\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n handleLinePosition();\n }, [activeIndex, fullWidth, tabContentChildren.length, variant]); // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n const onIntersection = (entries: IntersectionObserverEntry[]): void => {\n const allEntriesVisible =\n entries.every((entry) => entry.isIntersecting) &&\n entries.length === tabContentChildren.length;\n\n if (allEntriesVisible) {\n setScrollClasses({});\n return;\n }\n\n entries.forEach((entry) => {\n const entryIndex = Number(entry.target.getAttribute(\"data-index\"));\n const isStartEntry = entryIndex === 0;\n const isLastEntry = entryIndex === tabContentChildren.length - 1;\n\n setScrollClasses((currentScrollClasses) => ({\n ...currentScrollClasses,\n ...(isStartEntry && {\n [`${rootClassName}__wrapper--scroll-end`]: !entry.isIntersecting,\n }),\n ...(isLastEntry && {\n [`${rootClassName}__wrapper--scroll-start`]: !entry.isIntersecting,\n }),\n }));\n });\n };\n\n const observer = new IntersectionObserver(onIntersection, {\n threshold: [0.99],\n root: tabList.current,\n });\n\n const currentTabChildren = tabChildren.current;\n\n currentTabChildren.forEach((el) => observer.observe(el));\n\n return () => {\n currentTabChildren.forEach((el) => observer.unobserve(el));\n };\n }, [tabContentChildren.length]);\n\n return (\n <Root\n defaultValue={defaultValue ?? tabContentChildren[0].props.tabId}\n onValueChange={handleTabChange}\n data-testid={dataTestId}\n className={classNames}\n value={value}\n {...props}\n >\n <div className={cx(`${rootClassName}__container`)}>\n <div className={cx([`${rootClassName}__wrapper`, scrollClasses])}>\n <List\n ref={(el) => {\n tabList.current = el;\n }}\n className={cx(`${rootClassName}__list`)}\n >\n {Children.map(tabContentChildren, (child, index) => {\n const { name, tabId, \"data-testid\": childDataTestId } = child.props;\n return (\n <TabHeader\n data-testid={getTestId(\"header\", childDataTestId)}\n index={index}\n tabId={tabId}\n ref={(el) => {\n if (el) {\n tabChildren.current[index] = el;\n }\n }}\n onFocus={(e) => {\n scrollToTarget(e.target as HTMLElement, tabList.current);\n }}\n variant={variant}\n negative={negative}\n >\n {name}\n </TabHeader>\n );\n })}\n {isLineVariant && (\n <div\n className={cx(`${rootClassName}__selected-border`)}\n style={{\n width: selectedTriggerWidth,\n transform: `translateX(${selectedTriggerOffset}px)`,\n }}\n data-testid={getTestId(\"selected-border\")}\n />\n )}\n </List>\n <ScrollButton side=\"left\" />\n <ScrollButton side=\"right\" />\n </div>\n <div className={cx(`${rootClassName}__content-container`)}>\n {Children.map(tabContentChildren, (child) => child)}\n </div>\n </div>\n </Root>\n );\n};\n\nTabs.Content = TabContent;\n\nexport * from \"./tabs.utils\";\n"],"names":["f","r","c","p","m","e","s","t","n","o","i","u","_","d","v","x","l","g","h","b","S","y","a","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","createContextScope","scopeName","createContextScopeDeps","defaultContexts","createContext3","rootComponentName","defaultContext","BaseContext","React","index","Provider","props","scope","children","context","Context","_a","value","jsx","useContext2","consumerName","createScope","scopeContexts","contexts","composeContextScopes","scopes","baseScope","scopeHooks","createScope2","overrideScopes","nextScopes","nextScopes2","useScope","currentScope","setRef","ref","composeRefs","refs","node","hasCleanup","cleanups","cleanup","useComposedRefs","Slot","forwardedRef","slotProps","childrenArray","slottable","isSlottable","newElement","newChildren","child","SlotClone","childrenRef","getElementRef","props2","mergeProps","Slottable","Fragment2","childProps","overrideProps","propName","slotPropValue","childPropValue","args","element","getter","mayWarn","_b","createCollection","name","PROVIDER_NAME","createCollectionContext","createCollectionScope","CollectionProviderImpl","useCollectionContext","CollectionProvider","itemMap","COLLECTION_SLOT_NAME","CollectionSlot","composedRefs","ITEM_SLOT_NAME","ITEM_DATA_ATTR","CollectionItemSlot","itemData","useCollection","collectionNode","orderedNodes","useLayoutEffect2","useReactId","count","useId","deterministicId","id","setId","useLayoutEffect","reactId","NODES","Primitive","primitive","Node","asChild","primitiveProps","Comp","useCallbackRef","callback","callbackRef","useControllableState","prop","defaultProp","onChange","uncontrolledProp","setUncontrolledProp","useUncontrolledState","isControlled","handleChange","setValue","nextValue","value2","uncontrolledState","prevValueRef","DirectionContext","useDirection","localDir","globalDir","ENTRY_FOCUS","EVENT_OPTIONS","GROUP_NAME","Collection","createRovingFocusGroupContext","createRovingFocusGroupScope","RovingFocusProvider","useRovingFocusContext","RovingFocusGroup","RovingFocusGroupImpl","__scopeRovingFocusGroup","orientation","loop","dir","currentTabStopIdProp","defaultCurrentTabStopId","onCurrentTabStopIdChange","onEntryFocus","preventScrollOnEntryFocus","groupProps","direction","currentTabStopId","setCurrentTabStopId","isTabbingBackOut","setIsTabbingBackOut","handleEntryFocus","getItems","isClickFocusRef","focusableItemsCount","setFocusableItemsCount","tabStopId","prevCount","isKeyboardFocus","entryFocusEvent","items","item","activeItem","currentItem","candidateNodes","focusFirst","ITEM_NAME","RovingFocusGroupItem","focusable","active","itemProps","autoId","isCurrentTabStop","onFocusableItemAdd","onFocusableItemRemove","focusIntent","getFocusIntent","currentIndex","wrapArray","MAP_KEY_TO_FOCUS_INTENT","getDirectionAwareKey","key","candidates","preventScroll","PREVIOUSLY_FOCUSED_ELEMENT","candidate","array","startIndex","Root","Item","useStateMachine","initialState","machine","state","Presence","present","presence","usePresence","React2","setNode","stylesRef","prevPresentRef","prevAnimationNameRef","send","currentAnimationName","getAnimationName","styles","wasPresent","prevAnimationName","timeoutId","ownerWindow","handleAnimationEnd","isCurrentAnimation","currentFillMode","handleAnimationStart","node2","TABS_NAME","createTabsContext","createTabsScope","useRovingFocusGroupScope","TabsProvider","useTabsContext","Tabs","__scopeTabs","valueProp","onValueChange","defaultValue","activationMode","tabsProps","TAB_LIST_NAME","TabsList","listProps","rovingFocusGroupScope","RovingFocusGroup.Root","TRIGGER_NAME","TabsTrigger","disabled","triggerProps","triggerId","makeTriggerId","contentId","makeContentId","isSelected","RovingFocusGroup.Item","isAutomaticActivation","CONTENT_NAME","TabsContent","forceMount","contentProps","isMountAnimationPreventedRef","rAF","baseId","Root2","List","Trigger","Content","hasOwn","classNames","classes","arg","appendClass","parseValue","newClass","module","cx","rootClassName","TabContent","forwardRef","tabId","dataTestId","className","disableForceMount","rest","isTabContent","isValidElement","TabHeader","variant","negative","onFocus","tabsVariants","createTabChangeDetailEvent","scrollToTarget","target","tabList","targetRect","wrapperRect","wrapperWidth","wrapperOffset","offset","left","fullWidth","scrollClasses","setScrollClasses","useState","selectedTriggerOffset","setSelectedTriggerOffset","selectedTriggerWidth","setSelectedTriggerWidth","tabContentChildren","Children","useRef","tabChildren","sideScrollAdjustmentSize","isLineVariant","tabIds","getDefaultTabIndex","defaultIndex","tabIndex","useEffect","setActiveIndex","activeIndex","getTestId","handleLinePosition","activeTabElement","handleTabChange","_value","handleScrollButtonClick","side","scrollLeft","modifier","ScrollButton","Icon","chevronLeft","chevronRight","onIntersection","entries","entry","entryIndex","isStartEntry","isLastEntry","currentScrollClasses","observer","currentTabChildren","el","jsxs","childDataTestId"],"mappings":";;;;AACA,SAASA,GAAEC,GAAG;AACZ,SAAOA,KAAKA,EAAE,cAAc,OAAO,UAAU,eAAe,KAAKA,GAAG,SAAS,IAAIA,EAAE,UAAUA;AAC/F;AACA,IAAIC,KAAI,EAAE,SAAS,GAAI;AACvB;AAAA;AAAA;AAAA;AAAA;AAKA,IAAIC;AACJ,SAASC,KAAI;AACX,SAAOD,OAAMA,KAAI,GAAG,SAASF,GAAG;AAC9B,KAAC,WAAW;AACV,UAAII,IAAI,CAAA,EAAG;AACX,eAASC,IAAI;AACX,iBAASC,IAAI,IAAIC,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AACjD,cAAIC,IAAI,UAAUD,CAAC;AACnB,UAAAC,MAAMF,IAAIG,EAAEH,GAAGI,EAAE,KAAK,MAAMF,CAAC,CAAC;AAAA,QACxC;AACQ,eAAOF;AAAA,MACf;AACM,eAASI,EAAEJ,GAAG;AACZ,YAAI,OAAOA,KAAK,YAAY,OAAOA,KAAK;AACtC,iBAAO,QAAQ,KAAKA,CAAC,KAAKA;AAC5B,YAAI,OAAOA,KAAK;AACd,iBAAO;AACT,YAAI,MAAM,QAAQA,CAAC;AACjB,iBAAOD,EAAE,MAAM,MAAMC,CAAC;AACxB,YAAIA,EAAE,aAAa,OAAO,UAAU,YAAY,CAACA,EAAE,SAAS,WAAW,SAAS,eAAe;AAC7F,iBAAOA,EAAE,SAAU;AACrB,YAAIC,IAAI;AACR,iBAASC,KAAKF;AACZ,UAAAF,EAAE,KAAKE,GAAGE,CAAC,KAAKF,EAAEE,CAAC,MAAMD,IAAIE,EAAEF,GAAG,QAAQ,KAAKC,CAAC,KAAKA,CAAC;AACxD,eAAOD;AAAA,MACf;AACM,eAASE,EAAEH,GAAGC,GAAG;AACf,eAAOA,IAAID,IAAIA,IAAI,MAAMC,IAAID,IAAIC,IAAID;AAAA,MAC7C;AACM,MAAAN,EAAE,WAAWK,EAAE,UAAUA,GAAGL,EAAE,UAAUK,KAAK,OAAO,aAAaA;AAAA,IACvE,GAAQ;AAAA,EACR,EAAIJ,EAAC,IAAIA,GAAE;AACX;AACA,IAAIU,KAAIR,GAAG;AACN,MAACS,KAAoB,gBAAAb,GAAEY,EAAC,GAAGE,KAAI;AAAA,EAClC,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,mBAAmB;AACrB,GAAGC,KAAIF,GAAE,KAAKC,EAAC,GAAGE,KAAI,eAA0DC,KAAI,MAAMC,KAAI,CAACjB,MAAMA,EAAE,OAAO,CAACI,MAAM,OAAO,KAAKA,CAAC,EAAE,UAAU,CAAC,EAAE,IAAI,CAACA,MAAM,GAAGA,EAAE,IAAI,KAAKA,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,GAAGc,KAAI,CAAC,EAAE,SAASlB,IAAI,IAAI,OAAOI,EAAG,IAAG,OAAO;AAC3O,QAAMC,IAAI;AAAA,IACR,EAAE,MAAM,SAAS,OAAO,6BAA8B;AAAA,IACtD,EAAE,MAAM,QAAQ,OAAO,eAAgB;AAAA,IACvC,EAAE,MAAM,WAAW,OAAO,YAAa;AAAA,IACvCD,IAAI,EAAE,MAAM,QAAQ,OAAO,MAAO,IAAG,EAAE,MAAM,eAAe,OAAO,OAAM;AAAA,EAC7E,GAAKM,IAAIN,IAAI,UAAUA,CAAC,aAAa;AACnC,SAAO,QAAQa,GAAEZ,CAAC,CAAC,IAAIK,CAAC,GAAGV,CAAC;AAC9B,GAAGmB,KAAI,CAACnB,MAAMA,EAAE,QAAQ,sBAAsB,EAAE,EAAE,QAAQoB,KAAI,CAAC;AAAA,EAC7D,CAAC,gBAAgBpB;AAAA,EACjB,KAAKI;AAAA,EACL,WAAWC;AAAA,EACX,WAAWK;AAAA,EACX,MAAMD,IAAIO;AAAA,EACV,GAAGV;AACL,MAAM;AACJ,QAAMC,IAAIW,GAAE;AAAA,IACV,SAASC,GAAEf,EAAE,GAAG;AAAA,IAChB,OAAOC;AAAA,EACX,CAAG,GAAGG,IAAIM,GAAEJ,GAAGK,IAAG,GAAGA,EAAC,KAAKN,CAAC,EAAE;AAC5B,SAAuBY,gBAAAA;AAAAA,IACrB;AAAA,IACA;AAAA,MACE,cAAchB;AAAA,MACd,WAAWG;AAAA,MACX,eAAeR;AAAA,MACf,yBAAyB,EAAE,QAAQO,EAAG;AAAA,MACtC,GAAGD;AAAA,IACT;AAAA,EACG;AACH;AACAc,GAAE,cAAc;ACnFhB,MAAMhB,KAAI;AAAA,EACR,MAAM;AAAA,EACN,KAAK;AAAA,EACL,UAAU,CAAC,cAAc;AAAA,EACzB,UAAU;AACZ,GCLMA,KAAI;AAAA,EACR,MAAM;AAAA,EACN,KAAK;AAAA,EACL,UAAU,CAAC,eAAe;AAAA,EAC1B,UAAU;AACZ;ACJA,SAASkB,EAAqBC,GAAsBC,GAAiB,EAAE,0BAAAC,IAA2B,GAAM,IAAG,IAAI;AAC7G,SAAO,SAAqBC,GAAO;AAEjC,QADAH,KAAA,QAAAA,EAAuBG,IACnBD,MAA6B,MAAS,CAACC,EAAM;AAC/C,aAAOF,KAAA,gBAAAA,EAAkBE;AAAA,EAE5B;AACH;ACWA,SAASC,GAAmBC,GAAWC,IAAyB,IAAI;AAClE,MAAIC,IAAkB,CAAE;AACxB,WAASC,EAAeC,GAAmBC,GAAgB;AACzD,UAAMC,IAAcC,EAAM,cAAcF,CAAc,GAChDG,IAAQN,EAAgB;AAC9B,IAAAA,IAAkB,CAAC,GAAGA,GAAiBG,CAAc;AACrD,UAAMI,IAAW,CAACC,MAAU;;AAC1B,YAAM,EAAE,OAAAC,GAAO,UAAAC,GAAU,GAAGC,EAAS,IAAGH,GAClCI,MAAUC,IAAAJ,KAAA,gBAAAA,EAAQX,OAAR,gBAAAe,EAAqBP,OAAUF,GACzCU,IAAQT,EAAM,QAAQ,MAAMM,GAAS,OAAO,OAAOA,CAAO,CAAC;AACjE,aAAuB,gBAAAI,EAAIH,EAAQ,UAAU,EAAE,OAAAE,GAAO,UAAAJ,EAAQ,CAAE;AAAA,IACjE;AACD,IAAAH,EAAS,cAAcL,IAAoB;AAC3C,aAASc,EAAYC,GAAcR,GAAO;;AACxC,YAAMG,MAAUC,IAAAJ,KAAA,gBAAAA,EAAQX,OAAR,gBAAAe,EAAqBP,OAAUF,GACzCO,IAAUN,EAAM,WAAWO,CAAO;AACxC,UAAID,EAAS,QAAOA;AACpB,UAAIR,MAAmB,OAAQ,QAAOA;AACtC,YAAM,IAAI,MAAM,KAAKc,CAAY,4BAA4Bf,CAAiB,IAAI;AAAA,IACxF;AACI,WAAO,CAACK,GAAUS,CAAW;AAAA,EACjC;AACE,QAAME,IAAc,MAAM;AACxB,UAAMC,IAAgBnB,EAAgB,IAAI,CAACG,MAClCE,EAAM,cAAcF,CAAc,CAC1C;AACD,WAAO,SAAkBM,GAAO;AAC9B,YAAMW,KAAWX,KAAA,gBAAAA,EAAQX,OAAcqB;AACvC,aAAOd,EAAM;AAAA,QACX,OAAO,EAAE,CAAC,UAAUP,CAAS,EAAE,GAAG,EAAE,GAAGW,GAAO,CAACX,CAAS,GAAGsB,EAAQ;QACnE,CAACX,GAAOW,CAAQ;AAAA,MACjB;AAAA,IACF;AAAA,EACF;AACD,SAAAF,EAAY,YAAYpB,GACjB,CAACG,GAAgBoB,GAAqBH,GAAa,GAAGnB,CAAsB,CAAC;AACtF;AACA,SAASsB,MAAwBC,GAAQ;AACvC,QAAMC,IAAYD,EAAO,CAAC;AAC1B,MAAIA,EAAO,WAAW,EAAG,QAAOC;AAChC,QAAML,IAAc,MAAM;AACxB,UAAMM,IAAaF,EAAO,IAAI,CAACG,OAAkB;AAAA,MAC/C,UAAUA,EAAc;AAAA,MACxB,WAAWA,EAAa;AAAA,IAC9B,EAAM;AACF,WAAO,SAA2BC,GAAgB;AAChD,YAAMC,IAAaH,EAAW,OAAO,CAACI,GAAa,EAAE,UAAAC,GAAU,WAAA/B,QAAgB;AAE7E,cAAMgC,IADaD,EAASH,CAAc,EACV,UAAU5B,CAAS,EAAE;AACrD,eAAO,EAAE,GAAG8B,GAAa,GAAGE,EAAc;AAAA,MAC3C,GAAE,EAAE;AACL,aAAOzB,EAAM,QAAQ,OAAO,EAAE,CAAC,UAAUkB,EAAU,SAAS,EAAE,GAAGI,EAAU,IAAK,CAACA,CAAU,CAAC;AAAA,IAC7F;AAAA,EACF;AACD,SAAAT,EAAY,YAAYK,EAAU,WAC3BL;AACT;ACzEA,SAASa,GAAOC,GAAKlB,GAAO;AAC1B,MAAI,OAAOkB,KAAQ;AACjB,WAAOA,EAAIlB,CAAK;AACX,EAAIkB,KAAQ,SACjBA,EAAI,UAAUlB;AAElB;AACA,SAASmB,MAAeC,GAAM;AAC5B,SAAO,CAACC,MAAS;AACf,QAAIC,IAAa;AACjB,UAAMC,IAAWH,EAAK,IAAI,CAACF,MAAQ;AACjC,YAAMM,IAAUP,GAAOC,GAAKG,CAAI;AAChC,aAAI,CAACC,KAAc,OAAOE,KAAW,eACnCF,IAAa,KAERE;AAAA,IACb,CAAK;AACD,QAAIF;AACF,aAAO,MAAM;AACX,iBAASzD,IAAI,GAAGA,IAAI0D,EAAS,QAAQ1D,KAAK;AACxC,gBAAM2D,IAAUD,EAAS1D,CAAC;AAC1B,UAAI,OAAO2D,KAAW,aACpBA,EAAS,IAETP,GAAOG,EAAKvD,CAAC,GAAG,IAAI;AAAA,QAEhC;AAAA,MACO;AAAA,EAEJ;AACH;AACA,SAAS4D,KAAmBL,GAAM;AAChC,SAAO7B,EAAM,YAAY4B,GAAY,GAAGC,CAAI,GAAGA,CAAI;AACrD;AC/BA,IAAIM,IAAOnC,EAAM,WAAW,CAACG,GAAOiC,MAAiB;AACnD,QAAM,EAAE,UAAA/B,GAAU,GAAGgC,EAAS,IAAKlC,GAC7BmC,IAAgBtC,EAAM,SAAS,QAAQK,CAAQ,GAC/CkC,IAAYD,EAAc,KAAKE,EAAW;AAChD,MAAID,GAAW;AACb,UAAME,IAAaF,EAAU,MAAM,UAC7BG,IAAcJ,EAAc,IAAI,CAACK,MACjCA,MAAUJ,IACRvC,EAAM,SAAS,MAAMyC,CAAU,IAAI,IAAUzC,EAAM,SAAS,KAAK,IAAI,IAClEA,EAAM,eAAeyC,CAAU,IAAIA,EAAW,MAAM,WAAW,OAE/DE,CAEV;AACD,WAAuB,gBAAAjC,EAAIkC,GAAW,EAAE,GAAGP,GAAW,KAAKD,GAAc,UAAUpC,EAAM,eAAeyC,CAAU,IAAIzC,EAAM,aAAayC,GAAY,QAAQC,CAAW,IAAI,MAAM;AAAA,EACtL;AACE,SAAuB,gBAAAhC,EAAIkC,GAAW,EAAE,GAAGP,GAAW,KAAKD,GAAc,UAAA/B,GAAU;AACrF,CAAC;AACD8B,EAAK,cAAc;AACnB,IAAIS,IAAY5C,EAAM,WAAW,CAACG,GAAOiC,MAAiB;AACxD,QAAM,EAAE,UAAA/B,GAAU,GAAGgC,EAAS,IAAKlC;AACnC,MAAIH,EAAM,eAAeK,CAAQ,GAAG;AAClC,UAAMwC,IAAcC,GAAczC,CAAQ,GACpC0C,IAASC,GAAWX,GAAWhC,EAAS,KAAK;AACnD,WAAIA,EAAS,SAASL,EAAM,aAC1B+C,EAAO,MAAMX,IAAeR,GAAYQ,GAAcS,CAAW,IAAIA,IAEhE7C,EAAM,aAAaK,GAAU0C,CAAM;AAAA,EAC9C;AACE,SAAO/C,EAAM,SAAS,MAAMK,CAAQ,IAAI,IAAIL,EAAM,SAAS,KAAK,IAAI,IAAI;AAC1E,CAAC;AACD4C,EAAU,cAAc;AACxB,IAAIK,KAAY,CAAC,EAAE,UAAA5C,QACM,gBAAAK,EAAIwC,IAAW,EAAE,UAAA7C,GAAU;AAEpD,SAASmC,GAAYG,GAAO;AAC1B,SAAO3C,EAAM,eAAe2C,CAAK,KAAKA,EAAM,SAASM;AACvD;AACA,SAASD,GAAWX,GAAWc,GAAY;AACzC,QAAMC,IAAgB,EAAE,GAAGD,EAAY;AACvC,aAAWE,KAAYF,GAAY;AACjC,UAAMG,IAAgBjB,EAAUgB,CAAQ,GAClCE,IAAiBJ,EAAWE,CAAQ;AAE1C,IADkB,WAAW,KAAKA,CAAQ,IAEpCC,KAAiBC,IACnBH,EAAcC,CAAQ,IAAI,IAAIG,MAAS;AACrC,MAAAD,EAAe,GAAGC,CAAI,GACtBF,EAAc,GAAGE,CAAI;AAAA,IACtB,IACQF,MACTF,EAAcC,CAAQ,IAAIC,KAEnBD,MAAa,UACtBD,EAAcC,CAAQ,IAAI,EAAE,GAAGC,GAAe,GAAGC,EAAgB,IACxDF,MAAa,gBACtBD,EAAcC,CAAQ,IAAI,CAACC,GAAeC,CAAc,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,EAExF;AACE,SAAO,EAAE,GAAGlB,GAAW,GAAGe,EAAe;AAC3C;AACA,SAASN,GAAcW,GAAS;;AAC9B,MAAIC,KAASlD,IAAA,OAAO,yBAAyBiD,EAAQ,OAAO,KAAK,MAApD,gBAAAjD,EAAuD,KAChEmD,IAAUD,KAAU,oBAAoBA,KAAUA,EAAO;AAC7D,SAAIC,IACKF,EAAQ,OAEjBC,KAASE,IAAA,OAAO,yBAAyBH,GAAS,KAAK,MAA9C,gBAAAG,EAAiD,KAC1DD,IAAUD,KAAU,oBAAoBA,KAAUA,EAAO,gBACrDC,IACKF,EAAQ,MAAM,MAEhBA,EAAQ,MAAM,OAAOA,EAAQ;AACtC;ACrEA,SAASI,GAAiBC,GAAM;AAC9B,QAAMC,IAAgBD,IAAO,sBACvB,CAACE,GAAyBC,CAAqB,IAAIzE,GAAmBuE,CAAa,GACnF,CAACG,GAAwBC,CAAoB,IAAIH;AAAA,IACrDD;AAAA,IACA,EAAE,eAAe,EAAE,SAAS,KAAI,GAAI,SAAyB,oBAAI,IAAK,EAAA;AAAA,EACvE,GACKK,IAAqB,CAACjE,MAAU;AACpC,UAAM,EAAE,OAAAC,GAAO,UAAAC,EAAQ,IAAKF,GACtBwB,IAAM3B,EAAM,OAAO,IAAI,GACvBqE,IAAUrE,EAAM,OAAuB,oBAAI,IAAG,CAAE,EAAE;AACxD,WAAuB,gBAAAU,EAAIwD,GAAwB,EAAE,OAAA9D,GAAO,SAAAiE,GAAS,eAAe1C,GAAK,UAAAtB,GAAU;AAAA,EACpG;AACD,EAAA+D,EAAmB,cAAcL;AACjC,QAAMO,IAAuBR,IAAO,kBAC9BS,IAAiBvE,EAAM;AAAA,IAC3B,CAACG,GAAOiC,MAAiB;AACvB,YAAM,EAAE,OAAAhC,GAAO,UAAAC,EAAQ,IAAKF,GACtBG,IAAU6D,EAAqBG,GAAsBlE,CAAK,GAC1DoE,IAAetC,EAAgBE,GAAc9B,EAAQ,aAAa;AACxE,aAAuB,gBAAAI,EAAIyB,GAAM,EAAE,KAAKqC,GAAc,UAAAnE,EAAQ,CAAE;AAAA,IACtE;AAAA,EACG;AACD,EAAAkE,EAAe,cAAcD;AAC7B,QAAMG,IAAiBX,IAAO,sBACxBY,IAAiB,8BACjBC,IAAqB3E,EAAM;AAAA,IAC/B,CAACG,GAAOiC,MAAiB;AACvB,YAAM,EAAE,OAAAhC,GAAO,UAAAC,GAAU,GAAGuE,EAAU,IAAGzE,GACnCwB,IAAM3B,EAAM,OAAO,IAAI,GACvBwE,IAAetC,EAAgBE,GAAcT,CAAG,GAChDrB,IAAU6D,EAAqBM,GAAgBrE,CAAK;AAC1DJ,aAAAA,EAAM,UAAU,OACdM,EAAQ,QAAQ,IAAIqB,GAAK,EAAE,KAAAA,GAAK,GAAGiD,GAAU,GACtC,MAAM,KAAKtE,EAAQ,QAAQ,OAAOqB,CAAG,EAC7C,GACsB,gBAAAjB,EAAIyB,GAAM,EAAO,CAACuC,CAAc,GAAG,IAAM,KAAKF,GAAc,UAAAnE,GAAU;AAAA,IACnG;AAAA,EACG;AACD,EAAAsE,EAAmB,cAAcF;AACjC,WAASI,EAAczE,GAAO;AAC5B,UAAME,IAAU6D,EAAqBL,IAAO,sBAAsB1D,CAAK;AAWvE,WAViBJ,EAAM,YAAY,MAAM;AACvC,YAAM8E,IAAiBxE,EAAQ,cAAc;AAC7C,UAAI,CAACwE,EAAgB,QAAO,CAAE;AAC9B,YAAMC,IAAe,MAAM,KAAKD,EAAe,iBAAiB,IAAIJ,CAAc,GAAG,CAAC;AAKtF,aAJc,MAAM,KAAKpE,EAAQ,QAAQ,QAAQ,EACtB;AAAA,QACzB,CAACpB,GAAGH,MAAMgG,EAAa,QAAQ7F,EAAE,IAAI,OAAO,IAAI6F,EAAa,QAAQhG,EAAE,IAAI,OAAO;AAAA,MACnF;AAAA,IAEF,GAAE,CAACuB,EAAQ,eAAeA,EAAQ,OAAO,CAAC;AAAA,EAE/C;AACE,SAAO;AAAA,IACL,EAAE,UAAU8D,GAAoB,MAAMG,GAAgB,UAAUI,EAAoB;AAAA,IACpFE;AAAA,IACAZ;AAAA,EACD;AACH;ACjEA,IAAIe,KAA2B,iCAAY,WAAYhF,EAAM,kBAAkB,MAAM;AACrF,GCAIiF,KAAajF,EAAM,UAAwB,MAAM;AAAA,IACjDkF,KAAQ;AACZ,SAASC,GAAMC,GAAiB;AAC9B,QAAM,CAACC,GAAIC,CAAK,IAAItF,EAAM,SAASiF,IAAY;AAC/CM,SAAAA,GAAgB,MAAM;AACE,IAAAD,EAAM,CAACE,MAAYA,KAAW,OAAON,IAAO,CAAC;AAAA,EACvE,GAAK,CAACE,CAAe,CAAC,GACOC,IAAK,SAASA,CAAE,KAAK;AAClD;ACNA,IAAII,KAAQ;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GACIC,IAAYD,GAAM,OAAO,CAACE,GAAW7D,MAAS;AAChD,QAAM8D,IAAO5F,EAAM,WAAW,CAACG,GAAOiC,MAAiB;AACrD,UAAM,EAAE,SAAAyD,GAAS,GAAGC,EAAc,IAAK3F,GACjC4F,IAAOF,IAAU1D,IAAOL;AAC9B,WAAI,OAAO,SAAW,QACpB,OAAO,OAAO,IAAI,UAAU,CAAC,IAAI,KAEZ,gBAAApB,EAAIqF,GAAM,EAAE,GAAGD,GAAgB,KAAK1D,GAAc;AAAA,EAC7E,CAAG;AACD,SAAAwD,EAAK,cAAc,aAAa9D,CAAI,IAC7B,EAAE,GAAG6D,GAAW,CAAC7D,CAAI,GAAG8D,EAAM;AACvC,GAAG,EAAE;AChCL,SAASI,GAAeC,GAAU;AAChC,QAAMC,IAAclG,EAAM,OAAOiG,CAAQ;AACzC,SAAAjG,EAAM,UAAU,MAAM;AACpB,IAAAkG,EAAY,UAAUD;AAAA,EAC1B,CAAG,GACMjG,EAAM,QAAQ,MAAM,IAAIwD;;AAAS,YAAAhD,IAAA0F,EAAY,YAAZ,gBAAA1F,EAAA,KAAA0F,GAAsB,GAAG1C;AAAA,KAAO,EAAE;AAC5E;ACLA,SAAS2C,GAAqB;AAAA,EAC5B,MAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC,IAAW,MAAM;AAAA,EACnB;AACA,GAAG;AACD,QAAM,CAACC,GAAkBC,CAAmB,IAAIC,GAAqB,EAAE,aAAAJ,GAAa,UAAAC,GAAU,GACxFI,IAAeN,MAAS,QACxB3F,IAAQiG,IAAeN,IAAOG,GAC9BI,IAAeX,GAAeM,CAAQ,GACtCM,IAAW5G,EAAM;AAAA,IACrB,CAAC6G,MAAc;AACb,UAAIH,GAAc;AAEhB,cAAMI,IAAS,OAAOD,KAAc,aADrBA,EACyCT,CAAI,IAAIS;AAChE,QAAIC,MAAWV,KAAMO,EAAaG,CAAM;AAAA,MAChD;AACQ,QAAAN,EAAoBK,CAAS;AAAA,IAEhC;AAAA,IACD,CAACH,GAAcN,GAAMI,GAAqBG,CAAY;AAAA,EACvD;AACD,SAAO,CAAClG,GAAOmG,CAAQ;AACzB;AACA,SAASH,GAAqB;AAAA,EAC5B,aAAAJ;AAAA,EACA,UAAAC;AACF,GAAG;AACD,QAAMS,IAAoB/G,EAAM,SAASqG,CAAW,GAC9C,CAAC5F,CAAK,IAAIsG,GACVC,IAAehH,EAAM,OAAOS,CAAK,GACjCkG,IAAeX,GAAeM,CAAQ;AAC5C,SAAAtG,EAAM,UAAU,MAAM;AACpB,IAAIgH,EAAa,YAAYvG,MAC3BkG,EAAalG,CAAK,GAClBuG,EAAa,UAAUvG;AAAA,EAE1B,GAAE,CAACA,GAAOuG,GAAcL,CAAY,CAAC,GAC/BI;AACT;ACvCA,IAAIE,KAAmBjH,EAAM,cAAc,MAAM;AAKjD,SAASkH,GAAaC,GAAU;AAC9B,QAAMC,IAAYpH,EAAM,WAAWiH,EAAgB;AACnD,SAAOE,KAAYC,KAAa;AAClC;ACGA,IAAIC,IAAc,iCACdC,KAAgB,EAAE,SAAS,IAAO,YAAY,GAAM,GACpDC,IAAa,oBACb,CAACC,IAAY3C,IAAeZ,EAAqB,IAAIJ,GAAiB0D,CAAU,GAChF,CAACE,IAA+BC,EAA2B,IAAIlI;AAAA,EACjE+H;AAAA,EACA,CAACtD,EAAqB;AACxB,GACI,CAAC0D,IAAqBC,EAAqB,IAAIH,GAA8BF,CAAU,GACvFM,KAAmB7H,EAAM;AAAA,EAC3B,CAACG,GAAOiC,MACiB,gBAAA1B,EAAI8G,GAAW,UAAU,EAAE,OAAOrH,EAAM,yBAAyB,UAA0B,gBAAAO,EAAI8G,GAAW,MAAM,EAAE,OAAOrH,EAAM,yBAAyB,UAA0B,gBAAAO,EAAIoH,IAAsB,EAAE,GAAG3H,GAAO,KAAKiC,GAAc,EAAC,CAAE,EAAC,CAAE;AAE5Q;AACAyF,GAAiB,cAAcN;AAC/B,IAAIO,KAAuB9H,EAAM,WAAW,CAACG,GAAOiC,MAAiB;AACnE,QAAM;AAAA,IACJ,yBAAA2F;AAAA,IACA,aAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,KAAAC;AAAA,IACA,kBAAkBC;AAAA,IAClB,yBAAAC;AAAA,IACA,0BAAAC;AAAA,IACA,cAAAC;AAAA,IACA,2BAAAC,IAA4B;AAAA,IAC5B,GAAGC;AAAA,EACP,IAAMrI,GACEwB,IAAM3B,EAAM,OAAO,IAAI,GACvBwE,IAAetC,EAAgBE,GAAcT,CAAG,GAChD8G,IAAYvB,GAAagB,CAAG,GAC5B,CAACQ,IAAmB,MAAMC,CAAmB,IAAIxC,GAAqB;AAAA,IAC1E,MAAMgC;AAAA,IACN,aAAaC;AAAA,IACb,UAAUC;AAAA,EACd,CAAG,GACK,CAACO,GAAkBC,CAAmB,IAAI7I,EAAM,SAAS,EAAK,GAC9D8I,IAAmB9C,GAAesC,CAAY,GAC9CS,IAAWlE,GAAckD,CAAuB,GAChDiB,IAAkBhJ,EAAM,OAAO,EAAK,GACpC,CAACiJ,GAAqBC,CAAsB,IAAIlJ,EAAM,SAAS,CAAC;AACtE,SAAAA,EAAM,UAAU,MAAM;AACpB,UAAM8B,IAAOH,EAAI;AACjB,QAAIG;AACF,aAAAA,EAAK,iBAAiBuF,GAAayB,CAAgB,GAC5C,MAAMhH,EAAK,oBAAoBuF,GAAayB,CAAgB;AAAA,EAEzE,GAAK,CAACA,CAAgB,CAAC,GACE,gBAAApI;AAAA,IACrBiH;AAAA,IACA;AAAA,MACE,OAAOI;AAAA,MACP,aAAAC;AAAA,MACA,KAAKS;AAAA,MACL,MAAAR;AAAA,MACA,kBAAAS;AAAA,MACA,aAAa1I,EAAM;AAAA,QACjB,CAACmJ,MAAcR,EAAoBQ,CAAS;AAAA,QAC5C,CAACR,CAAmB;AAAA,MACrB;AAAA,MACD,gBAAgB3I,EAAM,YAAY,MAAM6I,EAAoB,EAAI,GAAG,EAAE;AAAA,MACrE,oBAAoB7I,EAAM;AAAA,QACxB,MAAMkJ,EAAuB,CAACE,MAAcA,IAAY,CAAC;AAAA,QACzD,CAAA;AAAA,MACD;AAAA,MACD,uBAAuBpJ,EAAM;AAAA,QAC3B,MAAMkJ,EAAuB,CAACE,MAAcA,IAAY,CAAC;AAAA,QACzD,CAAA;AAAA,MACD;AAAA,MACD,UAA0B,gBAAA1I;AAAA,QACxBgF,EAAU;AAAA,QACV;AAAA,UACE,UAAUkD,KAAoBK,MAAwB,IAAI,KAAK;AAAA,UAC/D,oBAAoBjB;AAAA,UACpB,GAAGQ;AAAA,UACH,KAAKhE;AAAA,UACL,OAAO,EAAE,SAAS,QAAQ,GAAGrE,EAAM,MAAO;AAAA,UAC1C,aAAahB,EAAqBgB,EAAM,aAAa,MAAM;AACzD,YAAA6I,EAAgB,UAAU;AAAA,UACtC,CAAW;AAAA,UACD,SAAS7J,EAAqBgB,EAAM,SAAS,CAACZ,MAAU;AACtD,kBAAM8J,IAAkB,CAACL,EAAgB;AACzC,gBAAIzJ,EAAM,WAAWA,EAAM,iBAAiB8J,KAAmB,CAACT,GAAkB;AAChF,oBAAMU,IAAkB,IAAI,YAAYjC,GAAaC,EAAa;AAElE,kBADA/H,EAAM,cAAc,cAAc+J,CAAe,GAC7C,CAACA,EAAgB,kBAAkB;AACrC,sBAAMC,IAAQR,IAAW,OAAO,CAACS,MAASA,EAAK,SAAS,GAClDC,IAAaF,EAAM,KAAK,CAACC,MAASA,EAAK,MAAM,GAC7CE,IAAcH,EAAM,KAAK,CAACC,MAASA,EAAK,OAAOd,CAAgB,GAI/DiB,IAHiB,CAACF,GAAYC,GAAa,GAAGH,CAAK,EAAE;AAAA,kBACzD;AAAA,gBACD,EACqC,IAAI,CAACC,MAASA,EAAK,IAAI,OAAO;AACpE,gBAAAI,GAAWD,GAAgBpB,CAAyB;AAAA,cACpE;AAAA,YACA;AACY,YAAAS,EAAgB,UAAU;AAAA,UACtC,CAAW;AAAA,UACD,QAAQ7J,EAAqBgB,EAAM,QAAQ,MAAM0I,EAAoB,EAAK,CAAC;AAAA,QACrF;AAAA,MACA;AAAA,IACA;AAAA,EACG;AACH,CAAC,GACGgB,KAAY,wBACZC,KAAuB9J,EAAM;AAAA,EAC/B,CAACG,GAAOiC,MAAiB;AACvB,UAAM;AAAA,MACJ,yBAAA2F;AAAA,MACA,WAAAgC,IAAY;AAAA,MACZ,QAAAC,IAAS;AAAA,MACT,WAAAb;AAAA,MACA,GAAGc;AAAA,IACT,IAAQ9J,GACE+J,IAAS/E,GAAO,GAChBE,IAAK8D,KAAae,GAClB5J,IAAUsH,GAAsBiC,IAAW9B,CAAuB,GAClEoC,IAAmB7J,EAAQ,qBAAqB+E,GAChD0D,IAAWlE,GAAckD,CAAuB,GAChD,EAAE,oBAAAqC,GAAoB,uBAAAC,EAAqB,IAAK/J;AACtD,WAAAN,EAAM,UAAU,MAAM;AACpB,UAAI+J;AACF,eAAAK,EAAoB,GACb,MAAMC,EAAuB;AAAA,IAEvC,GAAE,CAACN,GAAWK,GAAoBC,CAAqB,CAAC,GAClC,gBAAA3J;AAAA,MACrB8G,GAAW;AAAA,MACX;AAAA,QACE,OAAOO;AAAA,QACP,IAAA1C;AAAA,QACA,WAAA0E;AAAA,QACA,QAAAC;AAAA,QACA,UAA0B,gBAAAtJ;AAAA,UACxBgF,EAAU;AAAA,UACV;AAAA,YACE,UAAUyE,IAAmB,IAAI;AAAA,YACjC,oBAAoB7J,EAAQ;AAAA,YAC5B,GAAG2J;AAAA,YACH,KAAK7H;AAAA,YACL,aAAajD,EAAqBgB,EAAM,aAAa,CAACZ,MAAU;AAC9D,cAAKwK,IACAzJ,EAAQ,YAAY+E,CAAE,IADX9F,EAAM,eAAgB;AAAA,YAEpD,CAAa;AAAA,YACD,SAASJ,EAAqBgB,EAAM,SAAS,MAAMG,EAAQ,YAAY+E,CAAE,CAAC;AAAA,YAC1E,WAAWlG,EAAqBgB,EAAM,WAAW,CAACZ,MAAU;AAC1D,kBAAIA,EAAM,QAAQ,SAASA,EAAM,UAAU;AACzC,gBAAAe,EAAQ,eAAgB;AACxB;AAAA,cAChB;AACc,kBAAIf,EAAM,WAAWA,EAAM,cAAe;AAC1C,oBAAM+K,IAAcC,GAAehL,GAAOe,EAAQ,aAAaA,EAAQ,GAAG;AAC1E,kBAAIgK,MAAgB,QAAQ;AAC1B,oBAAI/K,EAAM,WAAWA,EAAM,WAAWA,EAAM,UAAUA,EAAM,SAAU;AACtE,gBAAAA,EAAM,eAAgB;AAEtB,oBAAIoK,IADUZ,IAAW,OAAO,CAACS,MAASA,EAAK,SAAS,EAC7B,IAAI,CAACA,MAASA,EAAK,IAAI,OAAO;AACzD,oBAAIc,MAAgB,OAAQ,CAAAX,EAAe,QAAS;AAAA,yBAC3CW,MAAgB,UAAUA,MAAgB,QAAQ;AACzD,kBAAIA,MAAgB,UAAQX,EAAe,QAAS;AACpD,wBAAMa,IAAeb,EAAe,QAAQpK,EAAM,aAAa;AAC/D,kBAAAoK,IAAiBrJ,EAAQ,OAAOmK,GAAUd,GAAgBa,IAAe,CAAC,IAAIb,EAAe,MAAMa,IAAe,CAAC;AAAA,gBACrI;AACgB,2BAAW,MAAMZ,GAAWD,CAAc,CAAC;AAAA,cAC3D;AAAA,YACa,CAAA;AAAA,UACb;AAAA,QACA;AAAA,MACA;AAAA,IACK;AAAA,EACL;AACA;AACAG,GAAqB,cAAcD;AACnC,IAAIa,KAA0B;AAAA,EAC5B,WAAW;AAAA,EACX,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,UAAU;AAAA,EACV,KAAK;AACP;AACA,SAASC,GAAqBC,GAAK1C,GAAK;AACtC,SAAIA,MAAQ,QAAc0C,IACnBA,MAAQ,cAAc,eAAeA,MAAQ,eAAe,cAAcA;AACnF;AACA,SAASL,GAAehL,GAAOyI,GAAaE,GAAK;AAC/C,QAAM0C,IAAMD,GAAqBpL,EAAM,KAAK2I,CAAG;AAC/C,MAAI,EAAAF,MAAgB,cAAc,CAAC,aAAa,YAAY,EAAE,SAAS4C,CAAG,MACtE,EAAA5C,MAAgB,gBAAgB,CAAC,WAAW,WAAW,EAAE,SAAS4C,CAAG;AACzE,WAAOF,GAAwBE,CAAG;AACpC;AACA,SAAShB,GAAWiB,GAAYC,IAAgB,IAAO;AACrD,QAAMC,IAA6B,SAAS;AAC5C,aAAWC,KAAaH;AAGtB,QAFIG,MAAcD,MAClBC,EAAU,MAAM,EAAE,eAAAF,GAAe,GAC7B,SAAS,kBAAkBC,GAA4B;AAE/D;AACA,SAASN,GAAUQ,GAAOC,GAAY;AACpC,SAAOD,EAAM,IAAI,CAACzM,GAAGyB,MAAUgL,GAAOC,IAAajL,KAASgL,EAAM,MAAM,CAAC;AAC3E;AACA,IAAIE,KAAOtD,IACPuD,KAAOtB;AClNX,SAASuB,GAAgBC,GAAcC,GAAS;AAC9C,SAAOvL,EAAM,WAAW,CAACwL,GAAOjM,MACZgM,EAAQC,CAAK,EAAEjM,CAAK,KAClBiM,GACnBF,CAAY;AACjB;AAGA,IAAIG,KAAW,CAACtL,MAAU;AACxB,QAAM,EAAE,SAAAuL,GAAS,UAAArL,EAAQ,IAAKF,GACxBwL,IAAWC,GAAYF,CAAO,GAC9B/I,IAAQ,OAAOtC,KAAa,aAAaA,EAAS,EAAE,SAASsL,EAAS,UAAW,CAAA,IAAIE,EAAO,SAAS,KAAKxL,CAAQ,GAClHsB,IAAMO,EAAgByJ,EAAS,KAAK7I,GAAcH,CAAK,CAAC;AAE9D,SADmB,OAAOtC,KAAa,cAClBsL,EAAS,YAAYE,EAAO,aAAalJ,GAAO,EAAE,KAAAhB,EAAK,CAAA,IAAI;AAClF;AACA8J,GAAS,cAAc;AACvB,SAASG,GAAYF,GAAS;AAC5B,QAAM,CAAC5J,GAAMgK,CAAO,IAAID,EAAO,SAAU,GACnCE,IAAYF,EAAO,OAAO,EAAE,GAC5BG,IAAiBH,EAAO,OAAOH,CAAO,GACtCO,IAAuBJ,EAAO,OAAO,MAAM,GAC3CP,IAAeI,IAAU,YAAY,aACrC,CAACF,GAAOU,CAAI,IAAIb,GAAgBC,GAAc;AAAA,IAClD,SAAS;AAAA,MACP,SAAS;AAAA,MACT,eAAe;AAAA,IAChB;AAAA,IACD,kBAAkB;AAAA,MAChB,OAAO;AAAA,MACP,eAAe;AAAA,IAChB;AAAA,IACD,WAAW;AAAA,MACT,OAAO;AAAA,IACb;AAAA,EACA,CAAG;AACDO,SAAAA,EAAO,UAAU,MAAM;AACrB,UAAMM,IAAuBC,EAAiBL,EAAU,OAAO;AAC/D,IAAAE,EAAqB,UAAUT,MAAU,YAAYW,IAAuB;AAAA,EAChF,GAAK,CAACX,CAAK,CAAC,GACVjG,GAAgB,MAAM;AACpB,UAAM8G,IAASN,EAAU,SACnBO,IAAaN,EAAe;AAElC,QAD0BM,MAAeZ,GAClB;AACrB,YAAMa,IAAoBN,EAAqB,SACzCE,IAAuBC,EAAiBC,CAAM;AACpD,MAAIX,IACFQ,EAAK,OAAO,IACHC,MAAyB,WAAUE,KAAA,gBAAAA,EAAQ,aAAY,SAChEH,EAAK,SAAS,IAIZA,EADEI,KADgBC,MAAsBJ,IAEnC,kBAEA,SAFe,GAKxBH,EAAe,UAAUN;AAAA,IAC/B;AAAA,EACA,GAAK,CAACA,GAASQ,CAAI,CAAC,GAClB3G,GAAgB,MAAM;AACpB,QAAIzD,GAAM;AACR,UAAI0K;AACJ,YAAMC,IAAc3K,EAAK,cAAc,eAAe,QAChD4K,IAAqB,CAACnN,MAAU;AAEpC,cAAMoN,IADuBP,EAAiBL,EAAU,OAAO,EACf,SAASxM,EAAM,aAAa;AAC5E,YAAIA,EAAM,WAAWuC,KAAQ6K,MAC3BT,EAAK,eAAe,GAChB,CAACF,EAAe,UAAS;AAC3B,gBAAMY,IAAkB9K,EAAK,MAAM;AACnC,UAAAA,EAAK,MAAM,oBAAoB,YAC/B0K,IAAYC,EAAY,WAAW,MAAM;AACvC,YAAI3K,EAAK,MAAM,sBAAsB,eACnCA,EAAK,MAAM,oBAAoB8K;AAAA,UAE/C,CAAa;AAAA,QACb;AAAA,MAEO,GACKC,IAAuB,CAACtN,MAAU;AACtC,QAAIA,EAAM,WAAWuC,MACnBmK,EAAqB,UAAUG,EAAiBL,EAAU,OAAO;AAAA,MAEpE;AACD,aAAAjK,EAAK,iBAAiB,kBAAkB+K,CAAoB,GAC5D/K,EAAK,iBAAiB,mBAAmB4K,CAAkB,GAC3D5K,EAAK,iBAAiB,gBAAgB4K,CAAkB,GACjD,MAAM;AACX,QAAAD,EAAY,aAAaD,CAAS,GAClC1K,EAAK,oBAAoB,kBAAkB+K,CAAoB,GAC/D/K,EAAK,oBAAoB,mBAAmB4K,CAAkB,GAC9D5K,EAAK,oBAAoB,gBAAgB4K,CAAkB;AAAA,MAC5D;AAAA,IACP;AACM,MAAAR,EAAK,eAAe;AAAA,EAE1B,GAAK,CAACpK,GAAMoK,CAAI,CAAC,GACR;AAAA,IACL,WAAW,CAAC,WAAW,kBAAkB,EAAE,SAASV,CAAK;AAAA,IACzD,KAAKK,EAAO,YAAY,CAACiB,MAAU;AACjC,MAAIA,MAAOf,EAAU,UAAU,iBAAiBe,CAAK,IACrDhB,EAAQgB,CAAK;AAAA,IACnB,GAAO,CAAE,CAAA;AAAA,EACN;AACH;AACA,SAASV,EAAiBC,GAAQ;AAChC,UAAOA,KAAA,gBAAAA,EAAQ,kBAAiB;AAClC;AACA,SAASvJ,GAAcW,GAAS;;AAC9B,MAAIC,KAASlD,IAAA,OAAO,yBAAyBiD,EAAQ,OAAO,KAAK,MAApD,gBAAAjD,EAAuD,KAChEmD,IAAUD,KAAU,oBAAoBA,KAAUA,EAAO;AAC7D,SAAIC,IACKF,EAAQ,OAEjBC,KAASE,IAAA,OAAO,yBAAyBH,GAAS,KAAK,MAA9C,gBAAAG,EAAiD,KAC1DD,IAAUD,KAAU,oBAAoBA,KAAUA,EAAO,gBACrDC,IACKF,EAAQ,MAAM,MAEhBA,EAAQ,MAAM,OAAOA,EAAQ;AACtC;ACtHA,IAAIsJ,KAAY,QACZ,CAACC,IAAmBC,EAAe,IAAIzN,GAAmBuN,IAAW;AAAA,EACvErF;AACF,CAAC,GACGwF,KAA2BxF,GAA6B,GACxD,CAACyF,IAAcC,EAAc,IAAIJ,GAAkBD,EAAS,GAC5DM,KAAOrN,EAAM;AAAA,EACf,CAACG,GAAOiC,MAAiB;AACvB,UAAM;AAAA,MACJ,aAAAkL;AAAA,MACA,OAAOC;AAAA,MACP,eAAAC;AAAA,MACA,cAAAC;AAAA,MACA,aAAAzF,IAAc;AAAA,MACd,KAAAE;AAAA,MACA,gBAAAwF,IAAiB;AAAA,MACjB,GAAGC;AAAA,IACT,IAAQxN,GACEsI,IAAYvB,GAAagB,CAAG,GAC5B,CAACzH,GAAOmG,CAAQ,IAAIT,GAAqB;AAAA,MAC7C,MAAMoH;AAAA,MACN,UAAUC;AAAA,MACV,aAAaC;AAAA,IACnB,CAAK;AACD,WAAuB,gBAAA/M;AAAA,MACrByM;AAAA,MACA;AAAA,QACE,OAAOG;AAAA,QACP,QAAQnI,GAAO;AAAA,QACf,OAAA1E;AAAA,QACA,eAAemG;AAAA,QACf,aAAAoB;AAAA,QACA,KAAKS;AAAA,QACL,gBAAAiF;AAAA,QACA,UAA0B,gBAAAhN;AAAA,UACxBgF,EAAU;AAAA,UACV;AAAA,YACE,KAAK+C;AAAA,YACL,oBAAoBT;AAAA,YACpB,GAAG2F;AAAA,YACH,KAAKvL;AAAA,UACjB;AAAA,QACA;AAAA,MACA;AAAA,IACK;AAAA,EACL;AACA;AACAiL,GAAK,cAAcN;AACnB,IAAIa,KAAgB,YAChBC,KAAW7N,EAAM;AAAA,EACnB,CAACG,GAAOiC,MAAiB;AACvB,UAAM,EAAE,aAAAkL,GAAa,MAAArF,IAAO,IAAM,GAAG6F,EAAW,IAAG3N,GAC7CG,IAAU8M,GAAeQ,IAAeN,CAAW,GACnDS,IAAwBb,GAAyBI,CAAW;AAClE,WAAuB,gBAAA5M;AAAA,MACrBsN;AAAAA,MACA;AAAA,QACE,SAAS;AAAA,QACT,GAAGD;AAAA,QACH,aAAazN,EAAQ;AAAA,QACrB,KAAKA,EAAQ;AAAA,QACb,MAAA2H;AAAA,QACA,UAA0B,gBAAAvH;AAAA,UACxBgF,EAAU;AAAA,UACV;AAAA,YACE,MAAM;AAAA,YACN,oBAAoBpF,EAAQ;AAAA,YAC5B,GAAGwN;AAAA,YACH,KAAK1L;AAAA,UACjB;AAAA,QACA;AAAA,MACA;AAAA,IACK;AAAA,EACL;AACA;AACAyL,GAAS,cAAcD;AACvB,IAAIK,KAAe,eACfC,KAAclO,EAAM;AAAA,EACtB,CAACG,GAAOiC,MAAiB;AACvB,UAAM,EAAE,aAAAkL,GAAa,OAAA7M,GAAO,UAAA0N,IAAW,IAAO,GAAGC,EAAY,IAAKjO,GAC5DG,IAAU8M,GAAea,IAAcX,CAAW,GAClDS,IAAwBb,GAAyBI,CAAW,GAC5De,IAAYC,GAAchO,EAAQ,QAAQG,CAAK,GAC/C8N,IAAYC,GAAclO,EAAQ,QAAQG,CAAK,GAC/CgO,IAAahO,MAAUH,EAAQ;AACrC,WAAuB,gBAAAI;AAAA,MACrBgO;AAAAA,MACA;AAAA,QACE,SAAS;AAAA,QACT,GAAGX;AAAA,QACH,WAAW,CAACI;AAAA,QACZ,QAAQM;AAAA,QACR,UAA0B,gBAAA/N;AAAA,UACxBgF,EAAU;AAAA,UACV;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,YACN,iBAAiB+I;AAAA,YACjB,iBAAiBF;AAAA,YACjB,cAAcE,IAAa,WAAW;AAAA,YACtC,iBAAiBN,IAAW,KAAK;AAAA,YACjC,UAAAA;AAAA,YACA,IAAIE;AAAA,YACJ,GAAGD;AAAA,YACH,KAAKhM;AAAA,YACL,aAAajD,EAAqBgB,EAAM,aAAa,CAACZ,MAAU;AAC9D,cAAI,CAAC4O,KAAY5O,EAAM,WAAW,KAAKA,EAAM,YAAY,KACvDe,EAAQ,cAAcG,CAAK,IAE3BlB,EAAM,eAAgB;AAAA,YAEtC,CAAa;AAAA,YACD,WAAWJ,EAAqBgB,EAAM,WAAW,CAACZ,MAAU;AAC1D,cAAI,CAAC,KAAK,OAAO,EAAE,SAASA,EAAM,GAAG,KAAGe,EAAQ,cAAcG,CAAK;AAAA,YACjF,CAAa;AAAA,YACD,SAAStB,EAAqBgB,EAAM,SAAS,MAAM;AACjD,oBAAMwO,IAAwBrO,EAAQ,mBAAmB;AACzD,cAAI,CAACmO,KAAc,CAACN,KAAYQ,KAC9BrO,EAAQ,cAAcG,CAAK;AAAA,YAE9B,CAAA;AAAA,UACb;AAAA,QACA;AAAA,MACA;AAAA,IACK;AAAA,EACL;AACA;AACAyN,GAAY,cAAcD;AAC1B,IAAIW,KAAe,eACfC,KAAc7O,EAAM;AAAA,EACtB,CAACG,GAAOiC,MAAiB;AACvB,UAAM,EAAE,aAAAkL,GAAa,OAAA7M,GAAO,YAAAqO,GAAY,UAAAzO,GAAU,GAAG0O,EAAY,IAAK5O,GAChEG,IAAU8M,GAAewB,IAActB,CAAW,GAClDe,IAAYC,GAAchO,EAAQ,QAAQG,CAAK,GAC/C8N,IAAYC,GAAclO,EAAQ,QAAQG,CAAK,GAC/CgO,IAAahO,MAAUH,EAAQ,OAC/B0O,IAA+BhP,EAAM,OAAOyO,CAAU;AAC5D,WAAAzO,EAAM,UAAU,MAAM;AACpB,YAAMiP,IAAM,sBAAsB,MAAMD,EAA6B,UAAU,EAAK;AACpF,aAAO,MAAM,qBAAqBC,CAAG;AAAA,IACtC,GAAE,EAAE,GACkB,gBAAAvO,EAAI+K,IAAU,EAAE,SAASqD,KAAcL,GAAY,UAAU,CAAC,EAAE,SAAA/C,EAAO,MAAuB,gBAAAhL;AAAA,MACnHgF,EAAU;AAAA,MACV;AAAA,QACE,cAAc+I,IAAa,WAAW;AAAA,QACtC,oBAAoBnO,EAAQ;AAAA,QAC5B,MAAM;AAAA,QACN,mBAAmB+N;AAAA,QACnB,QAAQ,CAAC3C;AAAA,QACT,IAAI6C;AAAA,QACJ,UAAU;AAAA,QACV,GAAGQ;AAAA,QACH,KAAK3M;AAAA,QACL,OAAO;AAAA,UACL,GAAGjC,EAAM;AAAA,UACT,mBAAmB6O,EAA6B,UAAU,OAAO;AAAA,QAClE;AAAA,QACD,UAAUtD,KAAWrL;AAAA,MAC7B;AAAA,IACA,GAAO;AAAA,EACP;AACA;AACAwO,GAAY,cAAcD;AAC1B,SAASN,GAAcY,GAAQzO,GAAO;AACpC,SAAO,GAAGyO,CAAM,YAAYzO,CAAK;AACnC;AACA,SAAS+N,GAAcU,GAAQzO,GAAO;AACpC,SAAO,GAAGyO,CAAM,YAAYzO,CAAK;AACnC;AACA,IAAI0O,KAAQ9B,IACR+B,KAAOvB,IACPwB,KAAUnB,IACVoB,KAAUT;;;;;;;;;;;;;ACnLd,KAAC,WAAY;AAGZ,UAAIU,IAAS,CAAA,EAAG;AAEhB,eAASC,IAAc;AAGtB,iBAFIC,IAAU,IAEL,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAC1C,cAAIC,IAAM,UAAU,CAAC;AACrB,UAAIA,MACHD,IAAUE,EAAYF,GAASG,EAAW,KAAK,MAAMF,CAAG,CAAC;AAAA,QAE7D;AAEE,eAAOD;AAAA,MACT;AAEC,eAASG,EAAYF,GAAK;AACzB,YAAI,OAAOA,KAAQ,YAAY,OAAOA,KAAQ;AAC7C,iBAAO,QAAQ,KAAKA,CAAG,KAAKA;AAG7B,YAAI,OAAOA,KAAQ;AAClB,iBAAO;AAGR,YAAI,MAAM,QAAQA,CAAG;AACpB,iBAAOF,EAAW,MAAM,MAAME,CAAG;AAGlC,YAAIA,EAAI,aAAa,OAAO,UAAU,YAAY,CAACA,EAAI,SAAS,SAAQ,EAAG,SAAS,eAAe;AAClG,iBAAOA,EAAI,SAAU;AAGtB,YAAID,IAAU;AAEd,iBAAS7E,KAAO8E;AACf,UAAIH,EAAO,KAAKG,GAAK9E,CAAG,KAAK8E,EAAI9E,CAAG,MACnC6E,IAAUE,EAAYF,GAAS,QAAQ,KAAK7E,CAAG,KAAKA,CAAG;AAIzD,eAAO6E;AAAA,MACT;AAEC,eAASE,EAAalP,GAAOoP,GAAU;AACtC,eAAKA,IAIDpP,IACIA,IAAQ,MAAMoP,IAGfpP,IAAQoP,IAPPpP;AAAA,MAQV;AAEC,MAAqCqP,EAAO,WAC3CN,EAAW,UAAUA,GACrBM,YAAiBN,KAOjB,OAAO,aAAaA;AAAA,IAEtB;;;;;;;GCzCMO,KAAKjS,GAAE,KAAKuO,EAAM,GAClB2D,KAAgB,sBAETC,KAAaC;AAAA,EACxB,CACE;AAAA,IACE,UAAA7P;AAAA,IACA,OAAA8P;AAAA,IACA,eAAeC;AAAA,IACf,WAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,GAAGC;AAAA,KAEL5O,MAEA,gBAAAjB;AAAA,IAAC4O;AAAA,IAAA;AAAA,MACC,KAAA3N;AAAA,MACA,WAAWoO,GAAG;AAAA,QACZC;AAAAA,QACAK;AAAA,QACA,EAAE,CAAC,GAAGL,EAAa,eAAe,GAAG,CAACM,EAAkB;AAAA,MAAA,CACzD;AAAA,MACD,eAAaF;AAAA,MACb,OAAOD;AAAA,MACP,YAAY,CAACG,KAAqB;AAAA,MACjC,GAAGC;AAAA,MAEH,UAAAlQ;AAAA,IAAA;AAAA,EAAA;AAGP,GAEamQ,KAAe,CAC1B7N,MAEA,CAAC,CAACA,KAAS8N,GAAgC9N,CAAK,KAAK,CAAC,CAACA,EAAM,MAAM,QAAQ,CAAC,CAACA,EAAM,MAAM;;;;;;GCrDrFoN,KAAKjS,GAAE,KAAKuO,EAAM,GAClB2D,KAAgB,qBAETU,KAAYR;AAAA,EACvB,CACE;AAAA,IACE,OAAAjQ;AAAA,IACA,OAAAkQ;AAAA,IACA,SAAAQ;AAAA,IACA,UAAAC;AAAA,IACA,SAAAC;AAAA,IACA,eAAeT;AAAA,IACf,UAAA/P;AAAA,KAEFsB,MAEA,gBAAAjB;AAAA,IAAC2O;AAAA,IAAA;AAAA,MACC,IAAI,GAAGc,CAAK;AAAA,MACZ,WAAWJ,GAAG,CAACC,IAAe,GAAGA,EAAa,KAAKW,CAAO,GAAGC,IAAW,cAAc,EAAE,EAAE,CAAC;AAAA,MAC3F,OAAOT;AAAA,MACP,eAAaC;AAAA,MACb,cAAYnQ;AAAA,MACZ,KAAA0B;AAAA,MACA,SAAAkP;AAAA,MAEC,UAAAxQ;AAAA,IAAA;AAAA,EAAA;AAGP;;;;;;;;;;;;;;;GCvCayQ,KAAe,CAAC,QAAQ,WAAW,GAInCC,KAA6B,CAACtQ,MACzC,IAAI,YAA6B,mBAAmB,EAAE,QAAQ,EAAE,OAAAA,IAAS,CAAA,GCkBrEsP,IAAKjS,GAAE,KAAKuO,EAAM,GAClB2D,IAAgB,eAEhBgB,KAAiB,CAACC,GAAqBC,MAAoC;;AAM/E,MACE,QAAOD,KAAA,gBAAAA,EAAQ,0BAA0B,cACzC,QAAOC,KAAA,gBAAAA,EAAS,WAAW;AAE3B;AAGI,QAAAC,IAAaF,EAAO,sBAAsB,GAC1CG,IAAcF,EAAQ,sBAAsB,GAC5CG,IAAeH,EAAQ,aACvBI,IAAgB,UAAS9Q,IAAA,iBAAiB0Q,CAAO,EAAE,oBAA1B,gBAAA1Q,EAA2C,MAAM,MAAM,IAAI,EAAE,GACtF+Q,IAASH,EAAY,QAAQ,MAAME,CAAa,IAAI,IAAIA;AAC1D,MAAAE;AAGA,EAAAL,EAAW,QAAQC,EAAY,UAC1BI,IAAAL,EAAW,OAAOD,EAAQ,YACjCM,IAAOA,IAAOL,EAAW,QAAQE,IAAeA,IAAe,KAC/DG,IAAOA,IAAOD,IAIZJ,EAAW,OAAOC,EAAY,SACzBI,IAAAL,EAAW,OAAOD,EAAQ,YACjCM,IAAOA,IAAOH,IAAe,KAC7BG,IAAOA,IAAOD,IAGZC,MAAS,UACXN,EAAQ,OAAO,EAAE,MAAAM,GAAM,UAAU,UAAU;AAE/C,GAEanE,KAA2B,CAAC;AAAA,EACvC,UAAAhN;AAAA,EACA,SAAAsQ,IAAU;AAAA,EACV,UAAAC,IAAW;AAAA,EACX,WAAAa,IAAY;AAAA,EACZ,UAAAnL;AAAA,EACA,WAAA+J;AAAA,EACA,cAAA5C;AAAA,EACA,eAAe2C;AAAA,EACf,OAAA3P;AAAA,EACA,GAAGN;AACL,MAAM;AACJ,QAAM,CAACuR,GAAeC,CAAgB,IAAIC,EAAqC,CAAA,CAAE,GAC3E,CAACC,GAAuBC,CAAwB,IAAIF,EAAS,CAAC,GAC9D,CAACG,GAAsBC,CAAuB,IAAIJ,EAAS,CAAC,GAC5DK,IAAqBC,EAAS,QAAQ7R,CAAQ,EAAE,OAAOmQ,EAAY,GACnEU,IAAUiB,GAAuB,IAAI,GACrCC,IAAcD,GAA4B,IAAI,MAAMF,EAAmB,MAAM,CAAC,GAC9EI,IAA2B,KAC3BC,IAAgB3B,MAAY,QAE5BnB,IAAaO,EAAG;AAAA,IACpBC;AAAA,IACA,GAAGA,CAAa,KAAKW,CAAO,GAAGC,IAAW,cAAc,EAAE;AAAA,IAC1D,EAAE,CAAC,GAAGZ,CAAa,aAAa,GAAGyB,EAAU;AAAA,IAC7CpB;AAAA,EAAA,CACD,GAEKkC,IAASL,EAAS,IAAID,GAAoB,CAAC,EAAE,OAAO,EAAE,OAAA9B,IAAQ,MAAMA,CAAK,GAEzEqC,IAAqB,MAAM;AAC/B,UAAMC,IAAeF,EAAO,UAAU,CAACG,MAAaA,MAAajF,CAAY;AACtE,WAAAgF,KAAgB,IAAIA,IAAe;AAAA,EAC5C;AAEA,EAAAE,EAAU,MAAM;AACd,IAAIlS,KACamS,EAAAX,EAAmB,UAAU,CAACtP,MAAUA,EAAM,MAAM,UAAUlC,CAAK,CAAC;AAAA,EACrF,GACC,CAACwR,GAAoBxR,CAAK,CAAC;AAE9B,QAAM,CAACoS,GAAaD,CAAc,IAAIhB,EAASY,CAAkB;AAEjE,MAAI,IAAI,IAAID,CAAM,EAAE,SAASA,EAAO;AAC5B,UAAA,IAAI,MAAM,sBAAsB;AAGlC,QAAAO,IAAY,CAAChP,GAAcuB,MAC/BA,KAAM+K,IAAa,GAAG/K,KAAM+K,CAAU,IAAItM,CAAI,KAAK,QAE/CiP,IAAqB,MAAM;AAC/B,QAAI,CAACT;AACH;AAGI,UAAAU,IAAmBZ,EAAY,QAAQS,CAAW;AAE/B,IAAAf,GAAAkB,KAAA,gBAAAA,EAAkB,eAAc,CAAC,GAC1DhB,GAAwBgB,KAAA,gBAAAA,EAAkB,wBAAwB,UAAS,CAAC;AAAA,EAC9E,GAEMC,IAAkB,CAACC,MAAmB;AACtC,IAAAZ,KAAiB,CAAC7R,KACLmS,EAAAX,EAAmB,UAAU,CAACtP,MAAUA,EAAM,MAAM,UAAUuQ,CAAM,CAAC,GAE3E5M,KAAA,QAAAA,EAAAyK,GAA2BmC,CAAM;AAAA,EAC9C,GAEMC,IAA0B,CAACC,MAA2B;AAC1D,QAAIlC,KAAA,QAAAA,EAAS,SAAS;AACd,YAAA,EAAE,YAAAmC,MAAenC,EAAQ,SACzBoC,IAAWF,MAAS,SAAS,OAA4Bf;AAEvD,MAAAnB,EAAA,QAAQ,OAAO,EAAE,MAAMmC,IAAaC,GAAU,UAAU,UAAU;AAAA,IAAA;AAAA,EAE9E,GAEMC,IAAe,CAAC,EAAE,MAAAH,EAAA,MACtB,gBAAA1S;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWqP,EAAG,GAAGC,CAAa,mBAAmB,GAAGA,CAAa,oBAAoBoD,CAAI,EAAE;AAAA,MAC3F,SAAS,MAAMD,EAAwBC,CAAI;AAAA,MAC3C,MAAK;AAAA,MACL,eAAY;AAAA,MACZ,UAAU;AAAA,MACV,eAAaN,EAAU,eAAe;AAAA,MAEtC,UAAA,gBAAApS,EAAC8S,MAAK,KAAKJ,MAAS,SAASK,KAAcC,IAAc,MAAK,KAAK,CAAA;AAAA,IAAA;AAAA,EACrE;AAGF,SAAAf,EAAU,OACD,OAAA,iBAAiB,UAAUI,CAAkB,GAE7C,MAAM;AACJ,WAAA,oBAAoB,UAAUA,CAAkB;AAAA,EACzD,IACC,EAAE,GAELJ,EAAU,MAAM;AACK,IAAAI,EAAA;AAAA,EAAA,GAClB,CAACF,GAAapB,GAAWQ,EAAmB,QAAQtB,CAAO,CAAC,GAE/DgC,EAAU,MAAM;AACR,UAAAgB,IAAiB,CAACC,MAA+C;AAKrE,UAHEA,EAAQ,MAAM,CAACC,MAAUA,EAAM,cAAc,KAC7CD,EAAQ,WAAW3B,EAAmB,QAEjB;AACrB,QAAAN,EAAiB,CAAA,CAAE;AACnB;AAAA,MAAA;AAGM,MAAAiC,EAAA,QAAQ,CAACC,MAAU;AACzB,cAAMC,KAAa,OAAOD,EAAM,OAAO,aAAa,YAAY,CAAC,GAC3DE,KAAeD,OAAe,GAC9BE,KAAcF,OAAe7B,EAAmB,SAAS;AAE/D,QAAAN,EAAiB,CAACsC,QAA0B;AAAA,UAC1C,GAAGA;AAAA,UACH,GAAIF,MAAgB;AAAA,YAClB,CAAC,GAAG/D,CAAa,uBAAuB,GAAG,CAAC6D,EAAM;AAAA,UACpD;AAAA,UACA,GAAIG,MAAe;AAAA,YACjB,CAAC,GAAGhE,CAAa,yBAAyB,GAAG,CAAC6D,EAAM;AAAA,UAAA;AAAA,QACtD,EACA;AAAA,MAAA,CACH;AAAA,IACH,GAEMK,IAAW,IAAI,qBAAqBP,GAAgB;AAAA,MACxD,WAAW,CAAC,IAAI;AAAA,MAChB,MAAMzC,EAAQ;AAAA,IAAA,CACf,GAEKiD,IAAqB/B,EAAY;AAEvC,WAAA+B,EAAmB,QAAQ,CAACC,MAAOF,EAAS,QAAQE,CAAE,CAAC,GAEhD,MAAM;AACX,MAAAD,EAAmB,QAAQ,CAACC,MAAOF,EAAS,UAAUE,CAAE,CAAC;AAAA,IAC3D;AAAA,EAAA,GACC,CAACnC,EAAmB,MAAM,CAAC,GAG5B,gBAAAvR;AAAA,IAACyK;AAAAA,IAAA;AAAA,MACC,cAAcsC,KAAgBwE,EAAmB,CAAC,EAAE,MAAM;AAAA,MAC1D,eAAegB;AAAA,MACf,eAAa7C;AAAA,MACb,WAAWZ;AAAA,MACX,OAAA/O;AAAA,MACC,GAAGN;AAAA,MAEJ,4BAAC,OAAI,EAAA,WAAW4P,EAAG,GAAGC,CAAa,aAAa,GAC9C,UAAA;AAAA,QAAC,gBAAAqE,EAAA,OAAA,EAAI,WAAWtE,EAAG,CAAC,GAAGC,CAAa,aAAa0B,CAAa,CAAC,GAC7D,UAAA;AAAA,UAAA,gBAAA2C;AAAA,YAACjF;AAAA,YAAA;AAAA,cACC,KAAK,CAACgF,MAAO;AACX,gBAAAlD,EAAQ,UAAUkD;AAAA,cACpB;AAAA,cACA,WAAWrE,EAAG,GAAGC,CAAa,QAAQ;AAAA,cAErC,UAAA;AAAA,gBAAAkC,EAAS,IAAID,GAAoB,CAACtP,GAAO1C,MAAU;AAClD,wBAAM,EAAE,MAAA6D,GAAM,OAAAqM,GAAO,eAAemE,GAAA,IAAoB3R,EAAM;AAE5D,yBAAA,gBAAAjC;AAAA,oBAACgQ;AAAA,oBAAA;AAAA,sBACC,eAAaoC,EAAU,UAAUwB,EAAe;AAAA,sBAChD,OAAArU;AAAA,sBACA,OAAAkQ;AAAA,sBACA,KAAK,CAACiE,MAAO;AACX,wBAAIA,MACUhC,EAAA,QAAQnS,CAAK,IAAImU;AAAA,sBAEjC;AAAA,sBACA,SAAS,CAACnW,MAAM;AACC,wBAAA+S,GAAA/S,EAAE,QAAuBiT,EAAQ,OAAO;AAAA,sBACzD;AAAA,sBACA,SAAAP;AAAA,sBACA,UAAAC;AAAA,sBAEC,UAAA9M;AAAA,oBAAA;AAAA,kBACH;AAAA,gBAAA,CAEH;AAAA,gBACAwO,KACC,gBAAA5R;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,WAAWqP,EAAG,GAAGC,CAAa,mBAAmB;AAAA,oBACjD,OAAO;AAAA,sBACL,OAAO+B;AAAA,sBACP,WAAW,cAAcF,CAAqB;AAAA,oBAChD;AAAA,oBACA,eAAaiB,EAAU,iBAAiB;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAC1C;AAAA,YAAA;AAAA,UAEJ;AAAA,UACA,gBAAApS,EAAC6S,GAAa,EAAA,MAAK,OAAO,CAAA;AAAA,UAC1B,gBAAA7S,EAAC6S,GAAa,EAAA,MAAK,QAAQ,CAAA;AAAA,QAAA,GAC7B;AAAA,QACC,gBAAA7S,EAAA,OAAA,EAAI,WAAWqP,EAAG,GAAGC,CAAa,qBAAqB,GACrD,UAAAkC,EAAS,IAAID,GAAoB,CAACtP,MAAUA,CAAK,EACpD,CAAA;AAAA,MAAA,EACF,CAAA;AAAA,IAAA;AAAA,EACF;AAEJ;AAEA0K,GAAK,UAAU4C;","x_google_ignoreList":[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]}
1
+ {"version":3,"file":"tabs.es.js","sources":["../../icon/dist/icon.es.js","../../icon/dist/assets/chevron-left.es.js","../../icon/dist/assets/chevron-right.es.js","../../../common/temp/node_modules/.pnpm/@radix-ui+primitive@1.1.1/node_modules/@radix-ui/primitive/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-context@1.1.1_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-context/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-compose-refs@1.1.1_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-slot@1.1.2_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-slot/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-collection@1.1.2_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-collection/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-layout-effect@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-id@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-id/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-primitive@2.0.2_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-primitive/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-callback-ref@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-controllable-state@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-direction@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-direction/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-roving-focus@1.1.2_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-roving-focus/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-presence@1.1.2_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-presence/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-tabs@1.1.3_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-tabs/dist/index.mjs","../../../common/temp/node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/bind.js","../src/tab-content.tsx","../src/tab-header.tsx","../src/tabs.utils.ts","../src/tabs.tsx"],"sourcesContent":["import { jsx as a } from \"react/jsx-runtime\";\nfunction f(r) {\n return r && r.__esModule && Object.prototype.hasOwnProperty.call(r, \"default\") ? r.default : r;\n}\nvar c = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\nvar p;\nfunction m() {\n return p || (p = 1, function(r) {\n (function() {\n var e = {}.hasOwnProperty;\n function s() {\n for (var t = \"\", n = 0; n < arguments.length; n++) {\n var o = arguments[n];\n o && (t = i(t, u.call(this, o)));\n }\n return t;\n }\n function u(t) {\n if (typeof t == \"string\" || typeof t == \"number\")\n return this && this[t] || t;\n if (typeof t != \"object\")\n return \"\";\n if (Array.isArray(t))\n return s.apply(this, t);\n if (t.toString !== Object.prototype.toString && !t.toString.toString().includes(\"[native code]\"))\n return t.toString();\n var n = \"\";\n for (var o in t)\n e.call(t, o) && t[o] && (n = i(n, this && this[o] || o));\n return n;\n }\n function i(t, n) {\n return n ? t ? t + \" \" + n : t + n : t;\n }\n r.exports ? (s.default = s, r.exports = s) : window.classNames = s;\n })();\n }(c)), c.exports;\n}\nvar _ = m();\nconst d = /* @__PURE__ */ f(_), v = {\n \"purpur-icon\": \"_purpur-icon_8u1lq_1\",\n \"purpur-icon--xxs\": \"_purpur-icon--xxs_8u1lq_4\",\n \"purpur-icon--xs\": \"_purpur-icon--xs_8u1lq_8\",\n \"purpur-icon--sm\": \"_purpur-icon--sm_8u1lq_12\",\n \"purpur-icon--md\": \"_purpur-icon--md_8u1lq_16\",\n \"purpur-icon--lg\": \"_purpur-icon--lg_8u1lq_20\",\n \"purpur-icon--xl\": \"_purpur-icon--xl_8u1lq_24\"\n}, x = d.bind(v), l = \"purpur-icon\", w = [\"xxs\", \"xs\", \"sm\", \"md\", \"lg\", \"xl\"], g = \"md\", h = (r) => r.filter((e) => Object.keys(e).length >= 1).map((e) => `${e.name}=\"${e.value}\"`).join(\" \"), b = ({ content: r = \"\", title: e } = {}) => {\n const s = [\n { name: \"xmlns\", value: \"http://www.w3.org/2000/svg\" },\n { name: \"fill\", value: \"currentColor\" },\n { name: \"viewBox\", value: \"0 0 24 24\" },\n e ? { name: \"role\", value: \"img\" } : { name: \"aria-hidden\", value: \"true\" }\n ], u = e ? `<title>${e}</title>` : \"\";\n return `<svg ${h(s)}>${u}${r}</svg>`;\n}, S = (r) => r.replace(/<(\\/?)svg([^>]*)>/g, \"\").trim(), y = ({\n [\"data-testid\"]: r,\n svg: e,\n allyTitle: s,\n className: u,\n size: i = g,\n ...t\n}) => {\n const n = b({\n content: S(e.svg),\n title: s\n }), o = x(u, l, `${l}--${i}`);\n return /* @__PURE__ */ a(\n \"span\",\n {\n \"aria-label\": s,\n className: o,\n \"data-testid\": r,\n dangerouslySetInnerHTML: { __html: n },\n ...t\n }\n );\n};\ny.displayName = \"Icon\";\nexport {\n g as DEFAULT_SIZE,\n y as Icon,\n w as sizes\n};\n//# sourceMappingURL=icon.es.js.map\n","const e = {\n name: \"chevron-left\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M16.175 3.905a.9.9 0 0 1-.08 1.27L8.36 12l7.736 6.825a.9.9 0 0 1-1.191 1.35l-8.5-7.5a.9.9 0 0 1 0-1.35l8.5-7.5a.9.9 0 0 1 1.27.08Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"chevron-left\"],\n category: \"utility\"\n};\nexport {\n e as chevronLeft\n};\n//# sourceMappingURL=chevron-left.es.js.map\n","const e = {\n name: \"chevron-right\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M7.809 3.924a.9.9 0 0 0 .115 1.267L16.094 12l-8.17 6.809a.9.9 0 0 0 1.152 1.382l9-7.5a.9.9 0 0 0 0-1.382l-9-7.5a.9.9 0 0 0-1.267.115Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"chevron-right\"],\n category: \"utility\"\n};\nexport {\n e as chevronRight\n};\n//# sourceMappingURL=chevron-right.es.js.map\n","// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/context/src/createContext.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (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 };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\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 throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return 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 };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/compose-refs/src/composeRefs.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}\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}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/slot/src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n};\nfunction isSlottable(child) {\n return React.isValidElement(child) && child.type === Slottable;\n}\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 childPropValue(...args);\n slotPropValue(...args);\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}\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}\nvar Root = Slot;\nexport {\n Root,\n Slot,\n Slottable\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/collection/src/collection.tsx\nimport React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createCollection(name) {\n const PROVIDER_NAME = name + \"CollectionProvider\";\n const [createCollectionContext, createCollectionScope] = createContextScope(PROVIDER_NAME);\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(\n PROVIDER_NAME,\n { collectionRef: { current: null }, itemMap: /* @__PURE__ */ new Map() }\n );\n const CollectionProvider = (props) => {\n const { scope, children } = props;\n const ref = React.useRef(null);\n const itemMap = React.useRef(/* @__PURE__ */ new Map()).current;\n return /* @__PURE__ */ jsx(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children });\n };\n CollectionProvider.displayName = PROVIDER_NAME;\n const COLLECTION_SLOT_NAME = name + \"CollectionSlot\";\n const CollectionSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);\n return /* @__PURE__ */ jsx(Slot, { ref: composedRefs, children });\n }\n );\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n const ITEM_SLOT_NAME = name + \"CollectionItemSlot\";\n const ITEM_DATA_ATTR = \"data-radix-collection-item\";\n const CollectionItemSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n React.useEffect(() => {\n context.itemMap.set(ref, { ref, ...itemData });\n return () => void context.itemMap.delete(ref);\n });\n return /* @__PURE__ */ jsx(Slot, { ...{ [ITEM_DATA_ATTR]: \"\" }, ref: composedRefs, children });\n }\n );\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n function useCollection(scope) {\n const context = useCollectionContext(name + \"CollectionConsumer\", scope);\n const getItems = React.useCallback(() => {\n const collectionNode = context.collectionRef.current;\n if (!collectionNode) return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort(\n (a, b) => orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current)\n );\n return orderedItems;\n }, [context.collectionRef, context.itemMap]);\n return getItems;\n }\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n useCollection,\n createCollectionScope\n ];\n}\nexport {\n createCollection\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/useLayoutEffect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = Boolean(globalThis?.document) ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/id/src/id.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useReactId = React[\"useId\".toString()] || (() => void 0);\nvar count = 0;\nfunction useId(deterministicId) {\n const [id, setId] = React.useState(useReactId());\n useLayoutEffect(() => {\n if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n }, [deterministicId]);\n return deterministicId || (id ? `radix-${id}` : \"\");\n}\nexport {\n useId\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/primitive/src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } 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 \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((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}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-controllable-state/src/useControllableState.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n }\n}) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value2 !== prop) handleChange(value2);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const uncontrolledState = React.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n return uncontrolledState;\n}\nexport {\n useControllableState\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/direction/src/Direction.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DirectionContext = React.createContext(void 0);\nvar DirectionProvider = (props) => {\n const { dir, children } = props;\n return /* @__PURE__ */ jsx(DirectionContext.Provider, { value: dir, children });\n};\nfunction useDirection(localDir) {\n const globalDir = React.useContext(DirectionContext);\n return localDir || globalDir || \"ltr\";\n}\nvar Provider = DirectionProvider;\nexport {\n DirectionProvider,\n Provider,\n useDirection\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/roving-focus/src/roving-focus-group.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ENTRY_FOCUS = \"rovingFocusGroup.onEntryFocus\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar GROUP_NAME = \"RovingFocusGroup\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(GROUP_NAME);\nvar [createRovingFocusGroupContext, createRovingFocusGroupScope] = createContextScope(\n GROUP_NAME,\n [createCollectionScope]\n);\nvar [RovingFocusProvider, useRovingFocusContext] = createRovingFocusGroupContext(GROUP_NAME);\nvar RovingFocusGroup = React.forwardRef(\n (props, forwardedRef) => {\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(RovingFocusGroupImpl, { ...props, ref: forwardedRef }) }) });\n }\n);\nRovingFocusGroup.displayName = GROUP_NAME;\nvar RovingFocusGroupImpl = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n orientation,\n loop = false,\n dir,\n currentTabStopId: currentTabStopIdProp,\n defaultCurrentTabStopId,\n onCurrentTabStopIdChange,\n onEntryFocus,\n preventScrollOnEntryFocus = false,\n ...groupProps\n } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const direction = useDirection(dir);\n const [currentTabStopId = null, setCurrentTabStopId] = useControllableState({\n prop: currentTabStopIdProp,\n defaultProp: defaultCurrentTabStopId,\n onChange: onCurrentTabStopIdChange\n });\n const [isTabbingBackOut, setIsTabbingBackOut] = React.useState(false);\n const handleEntryFocus = useCallbackRef(onEntryFocus);\n const getItems = useCollection(__scopeRovingFocusGroup);\n const isClickFocusRef = React.useRef(false);\n const [focusableItemsCount, setFocusableItemsCount] = React.useState(0);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n node.addEventListener(ENTRY_FOCUS, handleEntryFocus);\n return () => node.removeEventListener(ENTRY_FOCUS, handleEntryFocus);\n }\n }, [handleEntryFocus]);\n return /* @__PURE__ */ jsx(\n RovingFocusProvider,\n {\n scope: __scopeRovingFocusGroup,\n orientation,\n dir: direction,\n loop,\n currentTabStopId,\n onItemFocus: React.useCallback(\n (tabStopId) => setCurrentTabStopId(tabStopId),\n [setCurrentTabStopId]\n ),\n onItemShiftTab: React.useCallback(() => setIsTabbingBackOut(true), []),\n onFocusableItemAdd: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount + 1),\n []\n ),\n onFocusableItemRemove: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount - 1),\n []\n ),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,\n \"data-orientation\": orientation,\n ...groupProps,\n ref: composedRefs,\n style: { outline: \"none\", ...props.style },\n onMouseDown: composeEventHandlers(props.onMouseDown, () => {\n isClickFocusRef.current = true;\n }),\n onFocus: composeEventHandlers(props.onFocus, (event) => {\n const isKeyboardFocus = !isClickFocusRef.current;\n if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {\n const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);\n event.currentTarget.dispatchEvent(entryFocusEvent);\n if (!entryFocusEvent.defaultPrevented) {\n const items = getItems().filter((item) => item.focusable);\n const activeItem = items.find((item) => item.active);\n const currentItem = items.find((item) => item.id === currentTabStopId);\n const candidateItems = [activeItem, currentItem, ...items].filter(\n Boolean\n );\n const candidateNodes = candidateItems.map((item) => item.ref.current);\n focusFirst(candidateNodes, preventScrollOnEntryFocus);\n }\n }\n isClickFocusRef.current = false;\n }),\n onBlur: composeEventHandlers(props.onBlur, () => setIsTabbingBackOut(false))\n }\n )\n }\n );\n});\nvar ITEM_NAME = \"RovingFocusGroupItem\";\nvar RovingFocusGroupItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n focusable = true,\n active = false,\n tabStopId,\n ...itemProps\n } = props;\n const autoId = useId();\n const id = tabStopId || autoId;\n const context = useRovingFocusContext(ITEM_NAME, __scopeRovingFocusGroup);\n const isCurrentTabStop = context.currentTabStopId === id;\n const getItems = useCollection(__scopeRovingFocusGroup);\n const { onFocusableItemAdd, onFocusableItemRemove } = context;\n React.useEffect(() => {\n if (focusable) {\n onFocusableItemAdd();\n return () => onFocusableItemRemove();\n }\n }, [focusable, onFocusableItemAdd, onFocusableItemRemove]);\n return /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeRovingFocusGroup,\n id,\n focusable,\n active,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n tabIndex: isCurrentTabStop ? 0 : -1,\n \"data-orientation\": context.orientation,\n ...itemProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!focusable) event.preventDefault();\n else context.onItemFocus(id);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => context.onItemFocus(id)),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Tab\" && event.shiftKey) {\n context.onItemShiftTab();\n return;\n }\n if (event.target !== event.currentTarget) return;\n const focusIntent = getFocusIntent(event, context.orientation, context.dir);\n if (focusIntent !== void 0) {\n if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey) return;\n event.preventDefault();\n const items = getItems().filter((item) => item.focusable);\n let candidateNodes = items.map((item) => item.ref.current);\n if (focusIntent === \"last\") candidateNodes.reverse();\n else if (focusIntent === \"prev\" || focusIntent === \"next\") {\n if (focusIntent === \"prev\") candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n }\n })\n }\n )\n }\n );\n }\n);\nRovingFocusGroupItem.displayName = ITEM_NAME;\nvar MAP_KEY_TO_FOCUS_INTENT = {\n ArrowLeft: \"prev\",\n ArrowUp: \"prev\",\n ArrowRight: \"next\",\n ArrowDown: \"next\",\n PageUp: \"first\",\n Home: \"first\",\n PageDown: \"last\",\n End: \"last\"\n};\nfunction getDirectionAwareKey(key, dir) {\n if (dir !== \"rtl\") return key;\n return key === \"ArrowLeft\" ? \"ArrowRight\" : key === \"ArrowRight\" ? \"ArrowLeft\" : key;\n}\nfunction getFocusIntent(event, orientation, dir) {\n const key = getDirectionAwareKey(event.key, dir);\n if (orientation === \"vertical\" && [\"ArrowLeft\", \"ArrowRight\"].includes(key)) return void 0;\n if (orientation === \"horizontal\" && [\"ArrowUp\", \"ArrowDown\"].includes(key)) return void 0;\n return MAP_KEY_TO_FOCUS_INTENT[key];\n}\nfunction focusFirst(candidates, preventScroll = false) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus({ preventScroll });\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nvar Root = RovingFocusGroup;\nvar Item = RovingFocusGroupItem;\nexport {\n Item,\n Root,\n RovingFocusGroup,\n RovingFocusGroupItem,\n createRovingFocusGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/presence/src/Presence.tsx\nimport * as React2 from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// packages/react/presence/src/useStateMachine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// packages/react/presence/src/Presence.tsx\nvar Presence = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef({});\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n if (node2) stylesRef.current = getComputedStyle(node2);\n setNode(node2);\n }, [])\n };\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\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}\nexport {\n Presence\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/tabs/src/tabs.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TABS_NAME = \"Tabs\";\nvar [createTabsContext, createTabsScope] = createContextScope(TABS_NAME, [\n createRovingFocusGroupScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [TabsProvider, useTabsContext] = createTabsContext(TABS_NAME);\nvar Tabs = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTabs,\n value: valueProp,\n onValueChange,\n defaultValue,\n orientation = \"horizontal\",\n dir,\n activationMode = \"automatic\",\n ...tabsProps\n } = props;\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue\n });\n return /* @__PURE__ */ jsx(\n TabsProvider,\n {\n scope: __scopeTabs,\n baseId: useId(),\n value,\n onValueChange: setValue,\n orientation,\n dir: direction,\n activationMode,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n dir: direction,\n \"data-orientation\": orientation,\n ...tabsProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabs.displayName = TABS_NAME;\nvar TAB_LIST_NAME = \"TabsList\";\nvar TabsList = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, loop = true, ...listProps } = props;\n const context = useTabsContext(TAB_LIST_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation: context.orientation,\n dir: context.dir,\n loop,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"tablist\",\n \"aria-orientation\": context.orientation,\n ...listProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabsList.displayName = TAB_LIST_NAME;\nvar TRIGGER_NAME = \"TabsTrigger\";\nvar TabsTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, disabled = false, ...triggerProps } = props;\n const context = useTabsContext(TRIGGER_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n active: isSelected,\n children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"tab\",\n \"aria-selected\": isSelected,\n \"aria-controls\": contentId,\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n id: triggerId,\n ...triggerProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onValueChange(value);\n } else {\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if ([\" \", \"Enter\"].includes(event.key)) context.onValueChange(value);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n const isAutomaticActivation = context.activationMode !== \"manual\";\n if (!isSelected && !disabled && isAutomaticActivation) {\n context.onValueChange(value);\n }\n })\n }\n )\n }\n );\n }\n);\nTabsTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"TabsContent\";\nvar TabsContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, forceMount, children, ...contentProps } = props;\n const context = useTabsContext(CONTENT_NAME, __scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n const isMountAnimationPreventedRef = React.useRef(isSelected);\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isSelected, children: ({ present }) => /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-orientation\": context.orientation,\n role: \"tabpanel\",\n \"aria-labelledby\": triggerId,\n hidden: !present,\n id: contentId,\n tabIndex: 0,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n animationDuration: isMountAnimationPreventedRef.current ? \"0s\" : void 0\n },\n children: present && children\n }\n ) });\n }\n);\nTabsContent.displayName = CONTENT_NAME;\nfunction makeTriggerId(baseId, value) {\n return `${baseId}-trigger-${value}`;\n}\nfunction makeContentId(baseId, value) {\n return `${baseId}-content-${value}`;\n}\nvar Root2 = Tabs;\nvar List = TabsList;\nvar Trigger = TabsTrigger;\nvar Content = TabsContent;\nexport {\n Content,\n List,\n Root2 as Root,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n Trigger,\n createTabsScope\n};\n//# sourceMappingURL=index.mjs.map\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue.call(this, arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn this && this[arg] || arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(this, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, this && this[key] || key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import React, {\n ComponentPropsWithoutRef,\n ForwardedRef,\n forwardRef,\n isValidElement,\n ReactElement,\n ReactNode,\n} from \"react\";\nimport { Content } from \"@radix-ui/react-tabs\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./tab-content.module.scss\";\n\nexport type TabContentProps = {\n /**\n * The text that will be displayed in the tab.\n * */\n name: string;\n /**\n * A unique ID that associates the tab with a content.\n * */\n tabId: string;\n /**\n * If true, the inactive tab content will not be rendered.\n */\n disableForceMount?: boolean;\n className?: string;\n \"data-testid\"?: string;\n};\n\nexport type TabContentPropsWithChildren = ComponentPropsWithoutRef<\"div\"> &\n TabContentProps & {\n children: ReactNode;\n };\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-tab-content\";\n\nexport const TabContent = forwardRef(\n (\n {\n children,\n tabId,\n \"data-testid\": dataTestId,\n className,\n disableForceMount,\n ...rest\n }: TabContentPropsWithChildren,\n ref: ForwardedRef<HTMLDivElement>\n ) => (\n <Content\n ref={ref}\n className={cx([\n rootClassName,\n className,\n { [`${rootClassName}--force-mount`]: !disableForceMount },\n ])}\n data-testid={dataTestId}\n value={tabId}\n forceMount={!disableForceMount || undefined}\n {...rest}\n >\n {children}\n </Content>\n )\n);\n\nexport const isTabContent = (\n child?: ReactNode\n): child is ReactElement<TabContentProps> =>\n !!child && isValidElement<TabContentProps>(child) && !!child.props.name && !!child.props.tabId;\n","import React, { FocusEventHandler, ForwardedRef, forwardRef, ReactNode } from \"react\";\nimport { Trigger } from \"@radix-ui/react-tabs\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./tab-header.module.scss\";\nimport { TabsVariant } from \"./tabs.utils\";\n\ntype TabHeaderProps = {\n \"data-testid\"?: string;\n index: number;\n tabId: string;\n variant: TabsVariant;\n negative?: boolean;\n onFocus: FocusEventHandler<HTMLButtonElement>;\n children: ReactNode;\n};\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-tab-header\";\n\nexport const TabHeader = forwardRef(\n <T extends HTMLButtonElement>(\n {\n index,\n tabId,\n variant,\n negative,\n onFocus,\n \"data-testid\": dataTestId,\n children,\n }: TabHeaderProps,\n ref: ForwardedRef<T>\n ) => (\n <Trigger\n id={`${tabId}-trigger`}\n className={cx([rootClassName, `${rootClassName}--${variant}${negative ? \"-negative\" : \"\"}`])}\n value={tabId}\n data-testid={dataTestId}\n data-index={index}\n ref={ref}\n onFocus={onFocus}\n >\n {children}\n </Trigger>\n )\n);\n","import { TabContent } from \"./tab-content\";\n\nexport type TabsCmp<P> = React.FunctionComponent<P> & {\n Content: typeof TabContent;\n};\n\nexport const tabsVariants = [\"line\", \"contained\"] as const;\n\nexport type TabsVariant = (typeof tabsVariants)[number];\n\nexport const createTabChangeDetailEvent = (value: string) =>\n new CustomEvent<TabChangeDetail>(\"tabChangeDetail\", { detail: { value } });\n\nexport type TabChangeDetail = { value: string };\n","import React, { Children, ReactElement, useEffect, useRef, useState } from \"react\";\nimport { Icon } from \"@purpurds/icon\";\nimport { chevronLeft } from \"@purpurds/icon/assets/chevron-left\";\nimport { chevronRight } from \"@purpurds/icon/assets/chevron-right\";\nimport { List, Root } from \"@radix-ui/react-tabs\";\nimport c from \"classnames/bind\";\n\nimport { isTabContent, TabContent } from \"./tab-content\";\nimport { TabHeader } from \"./tab-header\";\nimport styles from \"./tabs.module.scss\";\nimport { createTabChangeDetailEvent, TabChangeDetail, TabsCmp, TabsVariant } from \"./tabs.utils\";\n\ntype TabsProps = {\n children: Array<ReactElement<typeof TabContent>> | ReactElement<typeof TabContent>;\n variant?: TabsVariant;\n negative?: boolean;\n fullWidth?: boolean;\n /**\n * The controlled value of the tabs. Must be used in conjunction with onChange.\n */\n value?: string;\n /**\n * Event handler called when the value changes.\n * */\n onChange?: (event: CustomEvent<TabChangeDetail>) => void;\n defaultValue?: string;\n \"data-testid\"?: string;\n} & Pick<React.HTMLAttributes<HTMLDivElement>, \"style\" | \"className\">;\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-tabs\";\n\nconst scrollToTarget = (target: HTMLElement, tabList?: HTMLDivElement | null) => {\n /**\n * scroll may not be available in test runner, so check existence before\n * proceeding. We can't use scrollIntoView() because Safari doesn't support\n * it fully.\n */\n if (\n typeof target?.getBoundingClientRect !== \"function\" ||\n typeof tabList?.scroll !== \"function\"\n ) {\n return;\n }\n\n const targetRect = target.getBoundingClientRect();\n const wrapperRect = tabList.getBoundingClientRect();\n const wrapperWidth = tabList.clientWidth;\n const wrapperOffset = parseInt(getComputedStyle(tabList).borderLeftWidth?.split(\"px\")[0], 10);\n const offset = wrapperRect.left + (isNaN(wrapperOffset) ? 0 : wrapperOffset);\n let left;\n\n // Handle forward navigation\n if (targetRect.right > wrapperRect.right) {\n left = targetRect.left + tabList.scrollLeft;\n left = left + targetRect.width - wrapperWidth + wrapperWidth * 0.1;\n left = left - offset;\n }\n\n // Handle backwards navigation\n if (targetRect.left < wrapperRect.left) {\n left = targetRect.left + tabList.scrollLeft;\n left = left - wrapperWidth * 0.1;\n left = left - offset;\n }\n\n if (left !== undefined) {\n tabList.scroll({ left, behavior: \"smooth\" });\n }\n};\n\nexport const Tabs: TabsCmp<TabsProps> = ({\n children,\n variant = \"line\",\n negative = false,\n fullWidth = false,\n onChange,\n className,\n defaultValue,\n \"data-testid\": dataTestId,\n value,\n ...props\n}) => {\n const [scrollClasses, setScrollClasses] = useState<{ [key: string]: boolean }>({});\n const [selectedTriggerOffset, setSelectedTriggerOffset] = useState(0);\n const [selectedTriggerWidth, setSelectedTriggerWidth] = useState(0);\n const tabContentChildren = Children.toArray(children).filter(isTabContent);\n const tabList = useRef<HTMLDivElement>(null);\n const tabChildren = useRef<HTMLButtonElement[]>(new Array(tabContentChildren.length));\n const sideScrollAdjustmentSize = 200;\n const isLineVariant = variant === \"line\";\n\n const classNames = cx([\n rootClassName,\n `${rootClassName}--${variant}${negative ? \"-negative\" : \"\"}`,\n { [`${rootClassName}--fullWidth`]: fullWidth },\n className,\n ]);\n\n const tabIds = Children.map(tabContentChildren, ({ props: { tabId } }) => tabId);\n\n const getDefaultTabIndex = () => {\n const defaultIndex = tabIds.findIndex((tabIndex) => tabIndex === defaultValue);\n return defaultIndex >= 0 ? defaultIndex : 0;\n };\n\n useEffect(() => {\n if (value) {\n setActiveIndex(tabContentChildren.findIndex((child) => child.props.tabId === value));\n }\n }, [tabContentChildren, value]);\n\n const [activeIndex, setActiveIndex] = useState(getDefaultTabIndex);\n\n if (new Set(tabIds).size !== tabIds.length) {\n throw new Error(\"tabId must be unique\");\n }\n\n const getTestId = (name: string, id?: string) =>\n id || dataTestId ? `${id || dataTestId}-${name}` : undefined;\n\n const handleLinePosition = () => {\n if (!isLineVariant) {\n return;\n }\n\n const activeTabElement = tabChildren.current[activeIndex];\n\n setSelectedTriggerOffset(activeTabElement?.offsetLeft || 0);\n setSelectedTriggerWidth(activeTabElement?.getBoundingClientRect().width || 0);\n };\n\n const handleTabChange = (_value: string) => {\n if (isLineVariant && !value) {\n setActiveIndex(tabContentChildren.findIndex((child) => child.props.tabId === _value));\n }\n onChange?.(createTabChangeDetailEvent(_value));\n };\n\n const handleScrollButtonClick = (side: \"left\" | \"right\") => {\n if (tabList?.current) {\n const { scrollLeft } = tabList.current;\n const modifier = side === \"left\" ? -sideScrollAdjustmentSize : sideScrollAdjustmentSize;\n\n tabList.current.scroll({ left: scrollLeft + modifier, behavior: \"smooth\" });\n }\n };\n\n const ScrollButton = ({ side }: { side: \"left\" | \"right\" }) => (\n <button\n className={cx(`${rootClassName}__scroll-button`, `${rootClassName}__scroll-button--${side}`)}\n onClick={() => handleScrollButtonClick(side)}\n type=\"button\"\n aria-hidden=\"true\"\n tabIndex={-1}\n data-testid={getTestId(\"scroll-button\")}\n >\n <Icon svg={side === \"left\" ? chevronLeft : chevronRight} size=\"md\" />\n </button>\n );\n\n useEffect(() => {\n window.addEventListener(\"resize\", handleLinePosition);\n\n return () => {\n window.removeEventListener(\"resize\", handleLinePosition);\n };\n }, [activeIndex]); // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n handleLinePosition();\n }, [activeIndex, fullWidth, tabContentChildren.length, variant]); // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n const onIntersection = (entries: IntersectionObserverEntry[]): void => {\n const allEntriesVisible =\n entries.every((entry) => entry.isIntersecting) &&\n entries.length === tabContentChildren.length;\n\n if (allEntriesVisible) {\n setScrollClasses({});\n return;\n }\n\n entries.forEach((entry) => {\n const entryIndex = Number(entry.target.getAttribute(\"data-index\"));\n const isStartEntry = entryIndex === 0;\n const isLastEntry = entryIndex === tabContentChildren.length - 1;\n\n setScrollClasses((currentScrollClasses) => ({\n ...currentScrollClasses,\n ...(isStartEntry && {\n [`${rootClassName}__wrapper--scroll-end`]: !entry.isIntersecting,\n }),\n ...(isLastEntry && {\n [`${rootClassName}__wrapper--scroll-start`]: !entry.isIntersecting,\n }),\n }));\n });\n };\n\n const observer = new IntersectionObserver(onIntersection, {\n threshold: [0.99],\n root: tabList.current,\n });\n\n const currentTabChildren = tabChildren.current;\n\n currentTabChildren.forEach((el) => observer.observe(el));\n\n return () => {\n currentTabChildren.forEach((el) => observer.unobserve(el));\n };\n }, [tabContentChildren.length]);\n\n return (\n <Root\n defaultValue={defaultValue ?? tabContentChildren[0].props.tabId}\n onValueChange={handleTabChange}\n data-testid={dataTestId}\n className={classNames}\n value={value}\n {...props}\n >\n <div className={cx(`${rootClassName}__container`)}>\n <div className={cx([`${rootClassName}__wrapper`, scrollClasses])}>\n <List\n ref={(el) => {\n tabList.current = el;\n }}\n className={cx(`${rootClassName}__list`)}\n >\n {Children.map(tabContentChildren, (child, index) => {\n const { name, tabId, \"data-testid\": childDataTestId } = child.props;\n return (\n <TabHeader\n data-testid={getTestId(\"header\", childDataTestId)}\n index={index}\n tabId={tabId}\n ref={(el) => {\n if (el) {\n tabChildren.current[index] = el;\n }\n }}\n onFocus={(e) => {\n scrollToTarget(e.target as HTMLElement, tabList.current);\n }}\n variant={variant}\n negative={negative}\n >\n {name}\n </TabHeader>\n );\n })}\n {isLineVariant && (\n <div\n className={cx(`${rootClassName}__selected-border`)}\n style={{\n width: selectedTriggerWidth,\n transform: `translateX(${selectedTriggerOffset}px)`,\n }}\n data-testid={getTestId(\"selected-border\")}\n />\n )}\n </List>\n <ScrollButton side=\"left\" />\n <ScrollButton side=\"right\" />\n </div>\n <div className={cx(`${rootClassName}__content-container`)}>\n {Children.map(tabContentChildren, (child) => child)}\n </div>\n </div>\n </Root>\n );\n};\n\nTabs.Content = TabContent;\n\nexport * from \"./tabs.utils\";\n"],"names":["f","r","c","p","m","e","s","t","n","o","i","u","_","d","v","x","l","g","h","b","S","y","a","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","createContextScope","scopeName","createContextScopeDeps","defaultContexts","createContext3","rootComponentName","defaultContext","BaseContext","React","index","Provider","props","scope","children","context","Context","_a","value","jsx","useContext2","consumerName","createScope","scopeContexts","contexts","composeContextScopes","scopes","baseScope","scopeHooks","createScope2","overrideScopes","nextScopes","nextScopes2","useScope","currentScope","setRef","ref","composeRefs","refs","node","hasCleanup","cleanups","cleanup","useComposedRefs","Slot","forwardedRef","slotProps","childrenArray","slottable","isSlottable","newElement","newChildren","child","SlotClone","childrenRef","getElementRef","props2","mergeProps","Slottable","Fragment2","childProps","overrideProps","propName","slotPropValue","childPropValue","args","element","getter","mayWarn","_b","createCollection","name","PROVIDER_NAME","createCollectionContext","createCollectionScope","CollectionProviderImpl","useCollectionContext","CollectionProvider","itemMap","COLLECTION_SLOT_NAME","CollectionSlot","composedRefs","ITEM_SLOT_NAME","ITEM_DATA_ATTR","CollectionItemSlot","itemData","useCollection","collectionNode","orderedNodes","useLayoutEffect2","useReactId","count","useId","deterministicId","id","setId","useLayoutEffect","reactId","NODES","Primitive","primitive","Node","asChild","primitiveProps","Comp","useCallbackRef","callback","callbackRef","useControllableState","prop","defaultProp","onChange","uncontrolledProp","setUncontrolledProp","useUncontrolledState","isControlled","handleChange","setValue","nextValue","value2","uncontrolledState","prevValueRef","DirectionContext","useDirection","localDir","globalDir","ENTRY_FOCUS","EVENT_OPTIONS","GROUP_NAME","Collection","createRovingFocusGroupContext","createRovingFocusGroupScope","RovingFocusProvider","useRovingFocusContext","RovingFocusGroup","RovingFocusGroupImpl","__scopeRovingFocusGroup","orientation","loop","dir","currentTabStopIdProp","defaultCurrentTabStopId","onCurrentTabStopIdChange","onEntryFocus","preventScrollOnEntryFocus","groupProps","direction","currentTabStopId","setCurrentTabStopId","isTabbingBackOut","setIsTabbingBackOut","handleEntryFocus","getItems","isClickFocusRef","focusableItemsCount","setFocusableItemsCount","tabStopId","prevCount","isKeyboardFocus","entryFocusEvent","items","item","activeItem","currentItem","candidateNodes","focusFirst","ITEM_NAME","RovingFocusGroupItem","focusable","active","itemProps","autoId","isCurrentTabStop","onFocusableItemAdd","onFocusableItemRemove","focusIntent","getFocusIntent","currentIndex","wrapArray","MAP_KEY_TO_FOCUS_INTENT","getDirectionAwareKey","key","candidates","preventScroll","PREVIOUSLY_FOCUSED_ELEMENT","candidate","array","startIndex","Root","Item","useStateMachine","initialState","machine","state","Presence","present","presence","usePresence","React2","setNode","stylesRef","prevPresentRef","prevAnimationNameRef","send","currentAnimationName","getAnimationName","styles","wasPresent","prevAnimationName","timeoutId","ownerWindow","handleAnimationEnd","isCurrentAnimation","currentFillMode","handleAnimationStart","node2","TABS_NAME","createTabsContext","createTabsScope","useRovingFocusGroupScope","TabsProvider","useTabsContext","Tabs","__scopeTabs","valueProp","onValueChange","defaultValue","activationMode","tabsProps","TAB_LIST_NAME","TabsList","listProps","rovingFocusGroupScope","RovingFocusGroup.Root","TRIGGER_NAME","TabsTrigger","disabled","triggerProps","triggerId","makeTriggerId","contentId","makeContentId","isSelected","RovingFocusGroup.Item","isAutomaticActivation","CONTENT_NAME","TabsContent","forceMount","contentProps","isMountAnimationPreventedRef","rAF","baseId","Root2","List","Trigger","Content","hasOwn","classNames","classes","arg","appendClass","parseValue","newClass","module","cx","rootClassName","TabContent","forwardRef","tabId","dataTestId","className","disableForceMount","rest","isTabContent","isValidElement","TabHeader","variant","negative","onFocus","tabsVariants","createTabChangeDetailEvent","scrollToTarget","target","tabList","targetRect","wrapperRect","wrapperWidth","wrapperOffset","offset","left","fullWidth","scrollClasses","setScrollClasses","useState","selectedTriggerOffset","setSelectedTriggerOffset","selectedTriggerWidth","setSelectedTriggerWidth","tabContentChildren","Children","useRef","tabChildren","sideScrollAdjustmentSize","isLineVariant","tabIds","getDefaultTabIndex","defaultIndex","tabIndex","useEffect","setActiveIndex","activeIndex","getTestId","handleLinePosition","activeTabElement","handleTabChange","_value","handleScrollButtonClick","side","scrollLeft","modifier","ScrollButton","Icon","chevronLeft","chevronRight","onIntersection","entries","entry","entryIndex","isStartEntry","isLastEntry","currentScrollClasses","observer","currentTabChildren","el","jsxs","childDataTestId"],"mappings":"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","x_google_ignoreList":[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@purpurds/tabs",
3
- "version": "6.11.1",
3
+ "version": "6.12.0",
4
4
  "license": "AGPL-3.0-only",
5
5
  "main": "./dist/tabs.cjs.js",
6
6
  "types": "./dist/tabs.d.ts",
@@ -17,9 +17,9 @@
17
17
  "dependencies": {
18
18
  "classnames": "~2.5.0",
19
19
  "@radix-ui/react-tabs": "~1.1.3",
20
- "@purpurds/tokens": "6.11.1",
21
- "@purpurds/icon": "6.11.1",
22
- "@purpurds/paragraph": "6.11.1"
20
+ "@purpurds/tokens": "6.12.0",
21
+ "@purpurds/paragraph": "6.12.0",
22
+ "@purpurds/icon": "6.12.0"
23
23
  },
24
24
  "devDependencies": {
25
25
  "eslint": "9.24.0",
@@ -40,7 +40,7 @@
40
40
  "typescript": "^5.6.3",
41
41
  "vite": "^6.2.1",
42
42
  "vitest": "^3.1.2",
43
- "@purpurds/button": "6.11.1",
43
+ "@purpurds/button": "6.12.0",
44
44
  "@purpurds/component-rig": "1.0.0"
45
45
  },
46
46
  "peerDependencies": {
package/src/tabs.tsx CHANGED
@@ -165,7 +165,7 @@ export const Tabs: TabsCmp<TabsProps> = ({
165
165
  return () => {
166
166
  window.removeEventListener("resize", handleLinePosition);
167
167
  };
168
- }, []); // eslint-disable-line react-hooks/exhaustive-deps
168
+ }, [activeIndex]); // eslint-disable-line react-hooks/exhaustive-deps
169
169
 
170
170
  useEffect(() => {
171
171
  handleLinePosition();