@televet/kibble-ui 5.0.24 → 5.0.25-beta.1

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.
@@ -1,2 +1,2 @@
1
- "use strict";const u=require("./jsx-runtime-BjDatQAs.js"),w=require("./icon.component-B1hr5lLa.js"),H=require("./notificationCounter.component-CBwi5vXa.js"),X=require("./heading.component-DnoZOXdz.js"),K=require("./create-slot-recipe-context-HXE1VazG.js"),b=require("react"),l=require("./use-locale-context-ym21RUxU.js"),y=require("./render-strategy-kPh1pd2U.js"),n=require("./index-CQURjLlA.js"),F=require("./index-Ts8g8jZd.js");function z(e,t){const[r,a]=b.useState(e);return b.useEffect(()=>{const o=setTimeout(()=>{a(e)},t);return()=>{clearTimeout(o)}},[e,t]),r}const[N,A]=l.createContext({name:"TabsContext",hookName:"useTabsContext",providerName:"<TabsProvider />"}),L=b.forwardRef((e,t)=>{const[r,a]=l.createSplitProps()(e,["value"]),o=A(),s=y.useRenderStrategyPropsContext(),i=F.usePresence({...s,present:z(o.value===e.value,0),immediate:!0}),d=n.mergeProps(o.getContentProps(r),i.getPresenceProps(),a);return u.jsxRuntimeExports.jsx(F.PresenceProvider,{value:i,children:i.unmounted?null:u.jsxRuntimeExports.jsx(l.ark.div,{...d,ref:l.composeRefs(i.ref,t)})})});L.displayName="TabContent";const O=b.forwardRef((e,t)=>{const r=A(),a=n.mergeProps(r.getIndicatorProps(),e);return u.jsxRuntimeExports.jsx(l.ark.div,{...a,ref:t})});O.displayName="TabIndicator";const $=b.forwardRef((e,t)=>{const r=A(),a=n.mergeProps(r.getListProps(),e);return u.jsxRuntimeExports.jsx(l.ark.div,{...a,ref:t})});$.displayName="TabList";const B=b.forwardRef((e,t)=>{const[r,a]=l.createSplitProps()(e,["disabled","value"]),o=A(),s=n.mergeProps(o.getTriggerProps(r),a);return u.jsxRuntimeExports.jsx(l.ark.button,{...s,ref:t})});B.displayName="TabTrigger";var Y=n.createAnatomy("tabs").parts("root","list","trigger","content","indicator"),R=Y.build(),G=e=>e.ids?.root??`tabs:${e.id}`,x=e=>e.ids?.list??`tabs:${e.id}:list`,I=(e,t)=>e.ids?.content??`tabs:${e.id}:content-${t}`,m=(e,t)=>e.ids?.trigger??`tabs:${e.id}:trigger-${t}`,k=e=>e.ids?.indicator??`tabs:${e.id}:indicator`,J=e=>e.getById(x(e)),Q=(e,t)=>e.getById(I(e,t)),V=(e,t)=>e.getById(m(e,t)),S=e=>e.getById(k(e)),P=e=>{const r=`[role=tab][data-ownedby='${CSS.escape(x(e))}']:not([disabled])`;return n.queryAll(J(e),r)},Z=e=>n.first(P(e)),ee=e=>n.last(P(e)),te=(e,t)=>n.nextById(P(e),m(e,t.value),t.loopFocus),ae=(e,t)=>n.prevById(P(e),m(e,t.value),t.loopFocus),D=e=>({left:e?.offsetLeft??0,top:e?.offsetTop??0,width:e?.offsetWidth??0,height:e?.offsetHeight??0}),re=(e,t)=>{const r=n.itemById(P(e),m(e,t));return U(D(r))},U=e=>({width:`${e.width}px`,height:`${e.height}px`,left:`${e.left}px`,top:`${e.top}px`});function se(e,t){const{state:r,send:a,context:o,prop:s,scope:i}=e,d=s("translations"),f=r.matches("focused"),h=s("orientation")==="vertical",C=s("orientation")==="horizontal",j=s("composite");function _(c){return{selected:o.get("value")===c.value,focused:o.get("focusedValue")===c.value,disabled:!!c.disabled}}return{value:o.get("value"),focusedValue:o.get("focusedValue"),setValue(c){a({type:"SET_VALUE",value:c})},clearValue(){a({type:"CLEAR_VALUE"})},setIndicatorRect(c){const g=m(i,c);a({type:"SET_INDICATOR_RECT",id:g})},syncTabIndex(){a({type:"SYNC_TAB_INDEX"})},selectNext(c){a({type:"TAB_FOCUS",value:c,src:"selectNext"}),a({type:"ARROW_NEXT",src:"selectNext"})},selectPrev(c){a({type:"TAB_FOCUS",value:c,src:"selectPrev"}),a({type:"ARROW_PREV",src:"selectPrev"})},focus(){const c=o.get("value");c&&V(i,c)?.focus()},getRootProps(){return t.element({...R.root.attrs,id:G(i),"data-orientation":s("orientation"),"data-focus":n.dataAttr(f),dir:s("dir")})},getListProps(){return t.element({...R.list.attrs,id:x(i),role:"tablist",dir:s("dir"),"data-focus":n.dataAttr(f),"aria-orientation":s("orientation"),"data-orientation":s("orientation"),"aria-label":d?.listLabel,onKeyDown(c){if(c.defaultPrevented||!n.isSelfTarget(c)||n.isComposingEvent(c))return;const g={ArrowDown(){C||a({type:"ARROW_NEXT",key:"ArrowDown"})},ArrowUp(){C||a({type:"ARROW_PREV",key:"ArrowUp"})},ArrowLeft(){h||a({type:"ARROW_PREV",key:"ArrowLeft"})},ArrowRight(){h||a({type:"ARROW_NEXT",key:"ArrowRight"})},Home(){a({type:"HOME"})},End(){a({type:"END"})}};let p=n.getEventKey(c,{dir:s("dir"),orientation:s("orientation")});const v=g[p];if(v){c.preventDefault(),v(c);return}}})},getTriggerState:_,getTriggerProps(c){const{value:g,disabled:p}=c,v=_(c);return t.button({...R.trigger.attrs,role:"tab",type:"button",disabled:p,dir:s("dir"),"data-orientation":s("orientation"),"data-disabled":n.dataAttr(p),"aria-disabled":p,"data-value":g,"aria-selected":v.selected,"data-selected":n.dataAttr(v.selected),"data-focus":n.dataAttr(v.focused),"aria-controls":v.selected?I(i,g):void 0,"data-ownedby":x(i),"data-ssr":n.dataAttr(o.get("ssr")),id:m(i,g),tabIndex:v.selected&&j?0:-1,onFocus(){a({type:"TAB_FOCUS",value:g})},onBlur(T){T.relatedTarget?.getAttribute("role")!=="tab"&&a({type:"TAB_BLUR"})},onClick(T){T.defaultPrevented||n.isOpeningInNewTab(T)||p||(n.isSafari()&&T.currentTarget.focus(),a({type:"TAB_CLICK",value:g}))}})},getContentProps(c){const{value:g}=c,p=o.get("value")===g;return t.element({...R.content.attrs,dir:s("dir"),id:I(i,g),tabIndex:j?0:-1,"aria-labelledby":m(i,g),role:"tabpanel","data-ownedby":x(i),"data-selected":n.dataAttr(p),"data-orientation":s("orientation"),hidden:!p})},getIndicatorProps(){const c=o.get("indicatorRect"),g=o.get("indicatorTransition");return t.element({id:k(i),...R.indicator.attrs,dir:s("dir"),"data-orientation":s("orientation"),style:{"--transition-property":"left, right, top, bottom, width, height","--left":c.left,"--top":c.top,"--width":c.width,"--height":c.height,position:"absolute",willChange:"var(--transition-property)",transitionProperty:"var(--transition-property)",transitionDuration:g?"var(--transition-duration, 150ms)":"0ms",transitionTimingFunction:"var(--transition-timing-function)",[C?"left":"top"]:C?"var(--left)":"var(--top)"}})}}}var{createMachine:oe}=n.setup(),ne=oe({props({props:e}){return{dir:"ltr",orientation:"horizontal",activationMode:"automatic",loopFocus:!0,composite:!0,navigate(t){n.clickIfLink(t.node)},defaultValue:null,...e}},initialState(){return"idle"},context({prop:e,bindable:t}){return{value:t(()=>({defaultValue:e("defaultValue"),value:e("value"),onChange(r){e("onValueChange")?.({value:r})}})),focusedValue:t(()=>({defaultValue:e("value")||e("defaultValue"),sync:!0,onChange(r){e("onFocusChange")?.({focusedValue:r})}})),ssr:t(()=>({defaultValue:!0})),indicatorTransition:t(()=>({defaultValue:!1})),indicatorRect:t(()=>({defaultValue:{left:"0px",top:"0px",width:"0px",height:"0px"}}))}},watch({context:e,prop:t,track:r,action:a}){r([()=>e.get("value")],()=>{a(["allowIndicatorTransition","syncIndicatorRect","syncTabIndex","navigateIfNeeded"])}),r([()=>t("dir"),()=>t("orientation")],()=>{a(["syncIndicatorRect"])})},on:{SET_VALUE:{actions:["setValue"]},CLEAR_VALUE:{actions:["clearValue"]},SET_INDICATOR_RECT:{actions:["setIndicatorRect"]},SYNC_TAB_INDEX:{actions:["syncTabIndex"]}},entry:["syncIndicatorRect","syncTabIndex","syncSsr"],exit:["cleanupObserver"],states:{idle:{on:{TAB_FOCUS:{target:"focused",actions:["setFocusedValue"]},TAB_CLICK:{target:"focused",actions:["setFocusedValue","setValue"]}}},focused:{on:{TAB_CLICK:{actions:["setFocusedValue","setValue"]},ARROW_PREV:[{guard:"selectOnFocus",actions:["focusPrevTab","selectFocusedTab"]},{actions:["focusPrevTab"]}],ARROW_NEXT:[{guard:"selectOnFocus",actions:["focusNextTab","selectFocusedTab"]},{actions:["focusNextTab"]}],HOME:[{guard:"selectOnFocus",actions:["focusFirstTab","selectFocusedTab"]},{actions:["focusFirstTab"]}],END:[{guard:"selectOnFocus",actions:["focusLastTab","selectFocusedTab"]},{actions:["focusLastTab"]}],TAB_FOCUS:{actions:["setFocusedValue"]},TAB_BLUR:{target:"idle",actions:["clearFocusedValue"]}}}},implementations:{guards:{selectOnFocus:({prop:e})=>e("activationMode")==="automatic"},actions:{selectFocusedTab({context:e,prop:t}){n.raf(()=>{const r=e.get("focusedValue");if(!r)return;const o=t("deselectable")&&e.get("value")===r?null:r;e.set("value",o)})},setFocusedValue({context:e,event:t,flush:r}){t.value!=null&&r(()=>{e.set("focusedValue",t.value)})},clearFocusedValue({context:e}){e.set("focusedValue",null)},setValue({context:e,event:t,prop:r}){const a=r("deselectable")&&e.get("value")===e.get("focusedValue");e.set("value",a?null:t.value)},clearValue({context:e}){e.set("value",null)},focusFirstTab({scope:e}){n.raf(()=>{Z(e)?.focus()})},focusLastTab({scope:e}){n.raf(()=>{ee(e)?.focus()})},focusNextTab({context:e,prop:t,scope:r,event:a}){const o=a.value??e.get("focusedValue");if(!o)return;const s=te(r,{value:o,loopFocus:t("loopFocus")});n.raf(()=>{t("composite")?s?.focus():s?.dataset.value!=null&&e.set("focusedValue",s.dataset.value)})},focusPrevTab({context:e,prop:t,scope:r,event:a}){const o=a.value??e.get("focusedValue");if(!o)return;const s=ae(r,{value:o,loopFocus:t("loopFocus")});n.raf(()=>{t("composite")?s?.focus():s?.dataset.value!=null&&e.set("focusedValue",s.dataset.value)})},syncTabIndex({context:e,scope:t}){n.raf(()=>{const r=e.get("value");if(!r)return;const a=Q(t,r);if(!a)return;n.getFocusables(a).length>0?a.removeAttribute("tabindex"):a.setAttribute("tabindex","0")})},cleanupObserver({refs:e}){const t=e.get("indicatorCleanup");t&&t()},allowIndicatorTransition({context:e}){e.set("indicatorTransition",!0)},setIndicatorRect({context:e,event:t,scope:r}){const a=t.id??e.get("value");if(!S(r))return;if(!a){e.set("indicatorTransition",!1);return}V(r,a)&&(e.set("indicatorRect",re(r,a)),n.nextTick(()=>{e.set("indicatorTransition",!1)}))},syncSsr({context:e}){e.set("ssr",!1)},syncIndicatorRect({context:e,refs:t,scope:r}){const a=t.get("indicatorCleanup");a&&a();const o=e.get("value");if(!o){e.set("indicatorTransition",!1);return}const s=V(r,o),i=S(r);if(!s||!i)return;const d=n.trackElementRect([s],{measure(f){return D(f)},onEntry({rects:f}){const[h]=f;e.set("indicatorRect",U(h))}});t.set("indicatorCleanup",d)},navigateIfNeeded({context:e,prop:t,scope:r}){const a=e.get("value");if(!a)return;const o=V(r,a);n.isAnchorElement(o)&&t("navigate")?.({value:a,node:o,href:o.href})}}}});l.createProps()(["activationMode","composite","deselectable","dir","getRootNode","id","ids","loopFocus","navigate","onFocusChange","onValueChange","orientation","translations","value","defaultValue"]);l.createProps()(["disabled","value"]);l.createProps()(["value"]);const ie=e=>{const t=b.useId(),{getRootNode:r}=l.useEnvironmentContext(),{dir:a}=l.useLocaleContext(),o={id:t,dir:a,getRootNode:r,...e},s=l.useMachine(ne,o);return se(s,l.normalizeProps)},q=b.forwardRef((e,t)=>{const[r,a]=y.splitRenderStrategyProps(e),[o,s]=l.createSplitProps()(a,["activationMode","composite","defaultValue","deselectable","id","ids","loopFocus","navigate","onFocusChange","onValueChange","orientation","translations","value"]),i=ie(o),d=n.mergeProps(i.getRootProps(),s);return u.jsxRuntimeExports.jsx(N,{value:i,children:u.jsxRuntimeExports.jsx(y.RenderStrategyPropsProvider,{value:r,children:u.jsxRuntimeExports.jsx(l.ark.div,{...d,ref:t})})})});q.displayName="TabsRoot";const W=b.forwardRef((e,t)=>{const[r,a]=y.splitRenderStrategyProps(e),[{value:o},s]=l.createSplitProps()(a,["value"]),i=n.mergeProps(o.getRootProps(),s);return u.jsxRuntimeExports.jsx(N,{value:o,children:u.jsxRuntimeExports.jsx(y.RenderStrategyPropsProvider,{value:r,children:u.jsxRuntimeExports.jsx(l.ark.div,{...i,ref:t})})})});W.displayName="TabsRootProvider";const{withProvider:M,withContext:E}=K.createSlotRecipeContext({key:"tabs"});M(W,"root",{forwardAsChild:!0});const ce=M(q,"root",{forwardAsChild:!0}),ue=E(B,"trigger",{forwardAsChild:!0}),le=E(L,"content",{forwardAsChild:!0});E("div","contentGroup");const de=E($,"list",{forwardAsChild:!0});E(O,"indicator",{forwardAsChild:!0});const ge={xs:"sm",sm:"md",md:"md",lg:"lg"},fe={xs:"xs",sm:"xs",md:"sm",lg:"md"},pe=({iconName:e,iconPosition:t="left",label:r,notificationCounterProps:a,showNotificationCounter:o,size:s="md",["data-testid"]:i="kibble-tab",...d})=>u.jsxRuntimeExports.jsxs(ue,{className:"Tab","data-testid":i,...d,children:[!!e&&t==="left"&&u.jsxRuntimeExports.jsx(w.Icon,{className:"Tab__Icon","data-testid":`${i}-icon-left`,name:e,size:s,variant:"default"}),u.jsxRuntimeExports.jsx(X.WrappedHeading,{as:"span",className:"Tab__Label","data-testid":`${i}-label`,size:fe[s],children:r}),!!e&&t==="right"&&u.jsxRuntimeExports.jsx(w.Icon,{className:"Tab__Icon","data-testid":`${i}-icon-right`,name:e,size:s}),o&&u.jsxRuntimeExports.jsx(H.NotificationCounter,{className:"Tab__NotificationCounter","data-testid":`${i}-notification-counter`,...a,size:ge[s]})]}),be=({align:e="start",onChange:t,size:r="md",tabs:a,tabsContent:o,["data-testid"]:s="kibble-tabs",...i})=>u.jsxRuntimeExports.jsxs(ce,{className:"Tabs","data-testid":s,justify:e||i.justify,size:r,onValueChange:({value:d})=>t?.(d),...i,children:[u.jsxRuntimeExports.jsx(de,{className:"Tabs__List","data-testid":`${s}-trigger-list`,children:a.map((d,f)=>u.jsxRuntimeExports.jsx(pe,{...d,"data-testid":`${s}-trigger-${d.value}`,size:r},`tab-${f}`))}),!!o&&o.map((d,f)=>u.jsxRuntimeExports.jsx(le,{"data-testid":`${s}-content-${a[f].value}`,...d},`${s}-tabContent-${f}`))]}),ve=["xs","sm","md","lg"],me=["left","right"];exports.Tabs=be;exports.tabIconPositions=me;exports.tabSizes=ve;
2
- //# sourceMappingURL=tab.types-B8hOk0uV.js.map
1
+ "use strict";const u=require("./jsx-runtime-BjDatQAs.js"),_=require("./icon.component-B1hr5lLa.js"),X=require("./notificationCounter.component-CBwi5vXa.js"),H=require("./heading.component-DnoZOXdz.js"),K=require("./create-slot-recipe-context-HXE1VazG.js"),v=require("react"),l=require("./use-locale-context-ym21RUxU.js"),P=require("./render-strategy-kPh1pd2U.js"),n=require("./index-CQURjLlA.js"),F=require("./index-Ts8g8jZd.js");function z(e,t){const[r,a]=v.useState(e);return v.useEffect(()=>{const o=setTimeout(()=>{a(e)},t);return()=>{clearTimeout(o)}},[e,t]),r}const[N,A]=l.createContext({name:"TabsContext",hookName:"useTabsContext",providerName:"<TabsProvider />"}),L=v.forwardRef((e,t)=>{const[r,a]=l.createSplitProps()(e,["value"]),o=A(),s=P.useRenderStrategyPropsContext(),i=F.usePresence({...s,present:z(o.value===e.value,0),immediate:!0}),f=n.mergeProps(o.getContentProps(r),i.getPresenceProps(),a);return u.jsxRuntimeExports.jsx(F.PresenceProvider,{value:i,children:i.unmounted?null:u.jsxRuntimeExports.jsx(l.ark.div,{...f,ref:l.composeRefs(i.ref,t)})})});L.displayName="TabContent";const O=v.forwardRef((e,t)=>{const r=A(),a=n.mergeProps(r.getIndicatorProps(),e);return u.jsxRuntimeExports.jsx(l.ark.div,{...a,ref:t})});O.displayName="TabIndicator";const $=v.forwardRef((e,t)=>{const r=A(),a=n.mergeProps(r.getListProps(),e);return u.jsxRuntimeExports.jsx(l.ark.div,{...a,ref:t})});$.displayName="TabList";const B=v.forwardRef((e,t)=>{const[r,a]=l.createSplitProps()(e,["disabled","value"]),o=A(),s=n.mergeProps(o.getTriggerProps(r),a);return u.jsxRuntimeExports.jsx(l.ark.button,{...s,ref:t})});B.displayName="TabTrigger";var Y=n.createAnatomy("tabs").parts("root","list","trigger","content","indicator"),x=Y.build(),G=e=>e.ids?.root??`tabs:${e.id}`,y=e=>e.ids?.list??`tabs:${e.id}:list`,I=(e,t)=>e.ids?.content??`tabs:${e.id}:content-${t}`,T=(e,t)=>e.ids?.trigger??`tabs:${e.id}:trigger-${t}`,k=e=>e.ids?.indicator??`tabs:${e.id}:indicator`,J=e=>e.getById(y(e)),Q=(e,t)=>e.getById(I(e,t)),V=(e,t)=>e.getById(T(e,t)),S=e=>e.getById(k(e)),E=e=>{const r=`[role=tab][data-ownedby='${CSS.escape(y(e))}']:not([disabled])`;return n.queryAll(J(e),r)},Z=e=>n.first(E(e)),ee=e=>n.last(E(e)),te=(e,t)=>n.nextById(E(e),T(e,t.value),t.loopFocus),ae=(e,t)=>n.prevById(E(e),T(e,t.value),t.loopFocus),D=e=>({left:e?.offsetLeft??0,top:e?.offsetTop??0,width:e?.offsetWidth??0,height:e?.offsetHeight??0}),re=(e,t)=>{const r=n.itemById(E(e),T(e,t));return U(D(r))},U=e=>({width:`${e.width}px`,height:`${e.height}px`,left:`${e.left}px`,top:`${e.top}px`});function se(e,t){const{state:r,send:a,context:o,prop:s,scope:i}=e,f=s("translations"),g=r.matches("focused"),p=s("orientation")==="vertical",C=s("orientation")==="horizontal",w=s("composite");function j(c){return{selected:o.get("value")===c.value,focused:o.get("focusedValue")===c.value,disabled:!!c.disabled}}return{value:o.get("value"),focusedValue:o.get("focusedValue"),setValue(c){a({type:"SET_VALUE",value:c})},clearValue(){a({type:"CLEAR_VALUE"})},setIndicatorRect(c){const d=T(i,c);a({type:"SET_INDICATOR_RECT",id:d})},syncTabIndex(){a({type:"SYNC_TAB_INDEX"})},selectNext(c){a({type:"TAB_FOCUS",value:c,src:"selectNext"}),a({type:"ARROW_NEXT",src:"selectNext"})},selectPrev(c){a({type:"TAB_FOCUS",value:c,src:"selectPrev"}),a({type:"ARROW_PREV",src:"selectPrev"})},focus(){const c=o.get("value");c&&V(i,c)?.focus()},getRootProps(){return t.element({...x.root.attrs,id:G(i),"data-orientation":s("orientation"),"data-focus":n.dataAttr(g),dir:s("dir")})},getListProps(){return t.element({...x.list.attrs,id:y(i),role:"tablist",dir:s("dir"),"data-focus":n.dataAttr(g),"aria-orientation":s("orientation"),"data-orientation":s("orientation"),"aria-label":f?.listLabel,onKeyDown(c){if(c.defaultPrevented||!n.isSelfTarget(c)||n.isComposingEvent(c))return;const d={ArrowDown(){C||a({type:"ARROW_NEXT",key:"ArrowDown"})},ArrowUp(){C||a({type:"ARROW_PREV",key:"ArrowUp"})},ArrowLeft(){p||a({type:"ARROW_PREV",key:"ArrowLeft"})},ArrowRight(){p||a({type:"ARROW_NEXT",key:"ArrowRight"})},Home(){a({type:"HOME"})},End(){a({type:"END"})}};let b=n.getEventKey(c,{dir:s("dir"),orientation:s("orientation")});const m=d[b];if(m){c.preventDefault(),m(c);return}}})},getTriggerState:j,getTriggerProps(c){const{value:d,disabled:b}=c,m=j(c);return t.button({...x.trigger.attrs,role:"tab",type:"button",disabled:b,dir:s("dir"),"data-orientation":s("orientation"),"data-disabled":n.dataAttr(b),"aria-disabled":b,"data-value":d,"aria-selected":m.selected,"data-selected":n.dataAttr(m.selected),"data-focus":n.dataAttr(m.focused),"aria-controls":m.selected?I(i,d):void 0,"data-ownedby":y(i),"data-ssr":n.dataAttr(o.get("ssr")),id:T(i,d),tabIndex:m.selected&&w?0:-1,onFocus(){a({type:"TAB_FOCUS",value:d})},onBlur(R){R.relatedTarget?.getAttribute("role")!=="tab"&&a({type:"TAB_BLUR"})},onClick(R){R.defaultPrevented||n.isOpeningInNewTab(R)||b||(n.isSafari()&&R.currentTarget.focus(),a({type:"TAB_CLICK",value:d}))}})},getContentProps(c){const{value:d}=c,b=o.get("value")===d;return t.element({...x.content.attrs,dir:s("dir"),id:I(i,d),tabIndex:w?0:-1,"aria-labelledby":T(i,d),role:"tabpanel","data-ownedby":y(i),"data-selected":n.dataAttr(b),"data-orientation":s("orientation"),hidden:!b})},getIndicatorProps(){const c=o.get("indicatorRect"),d=o.get("indicatorTransition");return t.element({id:k(i),...x.indicator.attrs,dir:s("dir"),"data-orientation":s("orientation"),style:{"--transition-property":"left, right, top, bottom, width, height","--left":c.left,"--top":c.top,"--width":c.width,"--height":c.height,position:"absolute",willChange:"var(--transition-property)",transitionProperty:"var(--transition-property)",transitionDuration:d?"var(--transition-duration, 150ms)":"0ms",transitionTimingFunction:"var(--transition-timing-function)",[C?"left":"top"]:C?"var(--left)":"var(--top)"}})}}}var{createMachine:oe}=n.setup(),ne=oe({props({props:e}){return{dir:"ltr",orientation:"horizontal",activationMode:"automatic",loopFocus:!0,composite:!0,navigate(t){n.clickIfLink(t.node)},defaultValue:null,...e}},initialState(){return"idle"},context({prop:e,bindable:t}){return{value:t(()=>({defaultValue:e("defaultValue"),value:e("value"),onChange(r){e("onValueChange")?.({value:r})}})),focusedValue:t(()=>({defaultValue:e("value")||e("defaultValue"),sync:!0,onChange(r){e("onFocusChange")?.({focusedValue:r})}})),ssr:t(()=>({defaultValue:!0})),indicatorTransition:t(()=>({defaultValue:!1})),indicatorRect:t(()=>({defaultValue:{left:"0px",top:"0px",width:"0px",height:"0px"}}))}},watch({context:e,prop:t,track:r,action:a}){r([()=>e.get("value")],()=>{a(["allowIndicatorTransition","syncIndicatorRect","syncTabIndex","navigateIfNeeded"])}),r([()=>t("dir"),()=>t("orientation")],()=>{a(["syncIndicatorRect"])})},on:{SET_VALUE:{actions:["setValue"]},CLEAR_VALUE:{actions:["clearValue"]},SET_INDICATOR_RECT:{actions:["setIndicatorRect"]},SYNC_TAB_INDEX:{actions:["syncTabIndex"]}},entry:["syncIndicatorRect","syncTabIndex","syncSsr"],exit:["cleanupObserver"],states:{idle:{on:{TAB_FOCUS:{target:"focused",actions:["setFocusedValue"]},TAB_CLICK:{target:"focused",actions:["setFocusedValue","setValue"]}}},focused:{on:{TAB_CLICK:{actions:["setFocusedValue","setValue"]},ARROW_PREV:[{guard:"selectOnFocus",actions:["focusPrevTab","selectFocusedTab"]},{actions:["focusPrevTab"]}],ARROW_NEXT:[{guard:"selectOnFocus",actions:["focusNextTab","selectFocusedTab"]},{actions:["focusNextTab"]}],HOME:[{guard:"selectOnFocus",actions:["focusFirstTab","selectFocusedTab"]},{actions:["focusFirstTab"]}],END:[{guard:"selectOnFocus",actions:["focusLastTab","selectFocusedTab"]},{actions:["focusLastTab"]}],TAB_FOCUS:{actions:["setFocusedValue"]},TAB_BLUR:{target:"idle",actions:["clearFocusedValue"]}}}},implementations:{guards:{selectOnFocus:({prop:e})=>e("activationMode")==="automatic"},actions:{selectFocusedTab({context:e,prop:t}){n.raf(()=>{const r=e.get("focusedValue");if(!r)return;const o=t("deselectable")&&e.get("value")===r?null:r;e.set("value",o)})},setFocusedValue({context:e,event:t,flush:r}){t.value!=null&&r(()=>{e.set("focusedValue",t.value)})},clearFocusedValue({context:e}){e.set("focusedValue",null)},setValue({context:e,event:t,prop:r}){const a=r("deselectable")&&e.get("value")===e.get("focusedValue");e.set("value",a?null:t.value)},clearValue({context:e}){e.set("value",null)},focusFirstTab({scope:e}){n.raf(()=>{Z(e)?.focus()})},focusLastTab({scope:e}){n.raf(()=>{ee(e)?.focus()})},focusNextTab({context:e,prop:t,scope:r,event:a}){const o=a.value??e.get("focusedValue");if(!o)return;const s=te(r,{value:o,loopFocus:t("loopFocus")});n.raf(()=>{t("composite")?s?.focus():s?.dataset.value!=null&&e.set("focusedValue",s.dataset.value)})},focusPrevTab({context:e,prop:t,scope:r,event:a}){const o=a.value??e.get("focusedValue");if(!o)return;const s=ae(r,{value:o,loopFocus:t("loopFocus")});n.raf(()=>{t("composite")?s?.focus():s?.dataset.value!=null&&e.set("focusedValue",s.dataset.value)})},syncTabIndex({context:e,scope:t}){n.raf(()=>{const r=e.get("value");if(!r)return;const a=Q(t,r);if(!a)return;n.getFocusables(a).length>0?a.removeAttribute("tabindex"):a.setAttribute("tabindex","0")})},cleanupObserver({refs:e}){const t=e.get("indicatorCleanup");t&&t()},allowIndicatorTransition({context:e}){e.set("indicatorTransition",!0)},setIndicatorRect({context:e,event:t,scope:r}){const a=t.id??e.get("value");if(!S(r))return;if(!a){e.set("indicatorTransition",!1);return}V(r,a)&&(e.set("indicatorRect",re(r,a)),n.nextTick(()=>{e.set("indicatorTransition",!1)}))},syncSsr({context:e}){e.set("ssr",!1)},syncIndicatorRect({context:e,refs:t,scope:r}){const a=t.get("indicatorCleanup");a&&a();const o=e.get("value");if(!o){e.set("indicatorTransition",!1);return}const s=V(r,o),i=S(r);if(!s||!i)return;const f=n.trackElementRect([s],{measure(g){return D(g)},onEntry({rects:g}){const[p]=g;e.set("indicatorRect",U(p))}});t.set("indicatorCleanup",f)},navigateIfNeeded({context:e,prop:t,scope:r}){const a=e.get("value");if(!a)return;const o=V(r,a);n.isAnchorElement(o)&&t("navigate")?.({value:a,node:o,href:o.href})}}}});l.createProps()(["activationMode","composite","deselectable","dir","getRootNode","id","ids","loopFocus","navigate","onFocusChange","onValueChange","orientation","translations","value","defaultValue"]);l.createProps()(["disabled","value"]);l.createProps()(["value"]);const ie=e=>{const t=v.useId(),{getRootNode:r}=l.useEnvironmentContext(),{dir:a}=l.useLocaleContext(),o={id:t,dir:a,getRootNode:r,...e},s=l.useMachine(ne,o);return se(s,l.normalizeProps)},W=v.forwardRef((e,t)=>{const[r,a]=P.splitRenderStrategyProps(e),[o,s]=l.createSplitProps()(a,["activationMode","composite","defaultValue","deselectable","id","ids","loopFocus","navigate","onFocusChange","onValueChange","orientation","translations","value"]),i=ie(o),f=n.mergeProps(i.getRootProps(),s);return u.jsxRuntimeExports.jsx(N,{value:i,children:u.jsxRuntimeExports.jsx(P.RenderStrategyPropsProvider,{value:r,children:u.jsxRuntimeExports.jsx(l.ark.div,{...f,ref:t})})})});W.displayName="TabsRoot";const q=v.forwardRef((e,t)=>{const[r,a]=P.splitRenderStrategyProps(e),[{value:o},s]=l.createSplitProps()(a,["value"]),i=n.mergeProps(o.getRootProps(),s);return u.jsxRuntimeExports.jsx(N,{value:o,children:u.jsxRuntimeExports.jsx(P.RenderStrategyPropsProvider,{value:r,children:u.jsxRuntimeExports.jsx(l.ark.div,{...i,ref:t})})})});q.displayName="TabsRootProvider";const{withProvider:M,withContext:h}=K.createSlotRecipeContext({key:"tabs"});M(q,"root",{forwardAsChild:!0});const ce=M(W,"root",{forwardAsChild:!0}),ue=h(B,"trigger",{forwardAsChild:!0}),le=h(L,"content",{forwardAsChild:!0});h("div","contentGroup");const de=h($,"list",{forwardAsChild:!0});h(O,"indicator",{forwardAsChild:!0});const ge={xs:"sm",sm:"md",md:"md",lg:"lg"},fe={xs:"xs",sm:"xs",md:"sm",lg:"md"},pe=({iconName:e,iconPosition:t="left",label:r,notificationCounterProps:a,showNotificationCounter:o,size:s="md",["data-testid"]:i="kibble-tab",...f})=>u.jsxRuntimeExports.jsxs(ue,{className:"Tab","data-testid":i,...f,children:[!!e&&t==="left"&&u.jsxRuntimeExports.jsx(_.Icon,{className:"Tab__Icon","data-testid":`${i}-icon-left`,name:e,size:s,variant:"default"}),u.jsxRuntimeExports.jsx(H.WrappedHeading,{as:"span",className:"Tab__Label","data-testid":`${i}-label`,size:fe[s],children:r}),!!e&&t==="right"&&u.jsxRuntimeExports.jsx(_.Icon,{className:"Tab__Icon","data-testid":`${i}-icon-right`,name:e,size:s}),o&&u.jsxRuntimeExports.jsx(X.NotificationCounter,{className:"Tab__NotificationCounter","data-testid":`${i}-notification-counter`,...a,size:ge[s]})]}),be=({align:e="start",onChange:t,scrollable:r=!1,size:a="md",tabs:o,tabsContent:s,["data-testid"]:i="kibble-tabs",...f})=>u.jsxRuntimeExports.jsxs(ce,{className:"Tabs","data-testid":i,justify:e||f.justify,size:a,onValueChange:({value:g})=>t?.(g),...f,children:[u.jsxRuntimeExports.jsx(de,{className:"Tabs__List","data-testid":`${i}-trigger-list`,...r&&{css:{overflowX:"auto",flexWrap:"nowrap",scrollbarWidth:"none"}},children:o.map((g,p)=>u.jsxRuntimeExports.jsx(pe,{...g,"data-testid":`${i}-trigger-${g.value}`,size:a},`tab-${p}`))}),!!s&&s.map((g,p)=>u.jsxRuntimeExports.jsx(le,{"data-testid":`${i}-content-${o[p].value}`,...g},`${i}-tabContent-${p}`))]}),ve=["xs","sm","md","lg"],me=["left","right"];exports.Tabs=be;exports.tabIconPositions=me;exports.tabSizes=ve;
2
+ //# sourceMappingURL=tab.types-BTbceOSr.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tab.types-B8hOk0uV.js","sources":["../../node_modules/@ark-ui/react/dist/utils/use-debounce.js","../../node_modules/@ark-ui/react/dist/components/tabs/use-tabs-context.js","../../node_modules/@ark-ui/react/dist/components/tabs/tab-content.js","../../node_modules/@ark-ui/react/dist/components/tabs/tab-indicator.js","../../node_modules/@ark-ui/react/dist/components/tabs/tab-list.js","../../node_modules/@ark-ui/react/dist/components/tabs/tab-trigger.js","../../node_modules/@zag-js/tabs/dist/index.mjs","../../node_modules/@ark-ui/react/dist/components/tabs/use-tabs.js","../../node_modules/@ark-ui/react/dist/components/tabs/tabs-root.js","../../node_modules/@ark-ui/react/dist/components/tabs/tabs-root-provider.js","../../node_modules/@chakra-ui/react/dist/esm/components/tabs/tabs.js","../../src/components/Tabs/components/Tab/tab.records.ts","../../src/components/Tabs/components/Tab/tab.component.tsx","../../src/components/Tabs/tabs.component.tsx","../../src/components/Tabs/components/Tab/tab.types.ts"],"sourcesContent":["'use client';\nimport { useState, useEffect } from 'react';\n\nfunction useDebounce(value, delay) {\n const [debouncedValue, setDebouncedValue] = useState(value);\n useEffect(() => {\n const timer = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n return () => {\n clearTimeout(timer);\n };\n }, [value, delay]);\n return debouncedValue;\n}\n\nexport { useDebounce };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [TabsProvider, useTabsContext] = createContext({\n name: \"TabsContext\",\n hookName: \"useTabsContext\",\n providerName: \"<TabsProvider />\"\n});\n\nexport { TabsProvider, useTabsContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { composeRefs } from '../../utils/compose-refs.js';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { useRenderStrategyPropsContext } from '../../utils/render-strategy.js';\nimport { useDebounce } from '../../utils/use-debounce.js';\nimport { ark } from '../factory.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { PresenceProvider } from '../presence/use-presence-context.js';\nimport { useTabsContext } from './use-tabs-context.js';\n\nconst TabContent = forwardRef((props, ref) => {\n const [contentProps, localProps] = createSplitProps()(props, [\"value\"]);\n const tabs = useTabsContext();\n const renderStrategyProps = useRenderStrategyPropsContext();\n const presence = usePresence({\n ...renderStrategyProps,\n present: useDebounce(tabs.value === props.value, 0),\n immediate: true\n });\n const mergedProps = mergeProps(tabs.getContentProps(contentProps), presence.getPresenceProps(), localProps);\n return /* @__PURE__ */ jsx(PresenceProvider, { value: presence, children: presence.unmounted ? null : /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref: composeRefs(presence.ref, ref) }) });\n});\nTabContent.displayName = \"TabContent\";\n\nexport { TabContent };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useTabsContext } from './use-tabs-context.js';\n\nconst TabIndicator = forwardRef((props, ref) => {\n const tabs = useTabsContext();\n const mergedProps = mergeProps(tabs.getIndicatorProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nTabIndicator.displayName = \"TabIndicator\";\n\nexport { TabIndicator };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useTabsContext } from './use-tabs-context.js';\n\nconst TabList = forwardRef((props, ref) => {\n const tabs = useTabsContext();\n const mergedProps = mergeProps(tabs.getListProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nTabList.displayName = \"TabList\";\n\nexport { TabList };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useTabsContext } from './use-tabs-context.js';\n\nconst TabTrigger = forwardRef((props, ref) => {\n const [tabProps, localProps] = createSplitProps()(props, [\"disabled\", \"value\"]);\n const tabs = useTabsContext();\n const mergedProps = mergeProps(tabs.getTriggerProps(tabProps), localProps);\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n});\nTabTrigger.displayName = \"TabTrigger\";\n\nexport { TabTrigger };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { isAnchorElement, trackElementRect, nextTick, raf, getFocusables, prevById, nextById, clickIfLink, itemById, queryAll, dataAttr, isOpeningInNewTab, isSafari, isSelfTarget, isComposingEvent, getEventKey } from '@zag-js/dom-query';\nimport { last, first, createSplitProps } from '@zag-js/utils';\nimport { setup } from '@zag-js/core';\nimport { createProps } from '@zag-js/types';\n\n// src/tabs.anatomy.ts\nvar anatomy = createAnatomy(\"tabs\").parts(\"root\", \"list\", \"trigger\", \"content\", \"indicator\");\nvar parts = anatomy.build();\nvar getRootId = (ctx) => ctx.ids?.root ?? `tabs:${ctx.id}`;\nvar getListId = (ctx) => ctx.ids?.list ?? `tabs:${ctx.id}:list`;\nvar getContentId = (ctx, id) => ctx.ids?.content ?? `tabs:${ctx.id}:content-${id}`;\nvar getTriggerId = (ctx, id) => ctx.ids?.trigger ?? `tabs:${ctx.id}:trigger-${id}`;\nvar getIndicatorId = (ctx) => ctx.ids?.indicator ?? `tabs:${ctx.id}:indicator`;\nvar getListEl = (ctx) => ctx.getById(getListId(ctx));\nvar getContentEl = (ctx, id) => ctx.getById(getContentId(ctx, id));\nvar getTriggerEl = (ctx, id) => ctx.getById(getTriggerId(ctx, id));\nvar getIndicatorEl = (ctx) => ctx.getById(getIndicatorId(ctx));\nvar getElements = (ctx) => {\n const ownerId = CSS.escape(getListId(ctx));\n const selector = `[role=tab][data-ownedby='${ownerId}']:not([disabled])`;\n return queryAll(getListEl(ctx), selector);\n};\nvar getFirstTriggerEl = (ctx) => first(getElements(ctx));\nvar getLastTriggerEl = (ctx) => last(getElements(ctx));\nvar getNextTriggerEl = (ctx, opts) => nextById(getElements(ctx), getTriggerId(ctx, opts.value), opts.loopFocus);\nvar getPrevTriggerEl = (ctx, opts) => prevById(getElements(ctx), getTriggerId(ctx, opts.value), opts.loopFocus);\nvar getOffsetRect = (el) => {\n return {\n left: el?.offsetLeft ?? 0,\n top: el?.offsetTop ?? 0,\n width: el?.offsetWidth ?? 0,\n height: el?.offsetHeight ?? 0\n };\n};\nvar getRectById = (ctx, id) => {\n const tab = itemById(getElements(ctx), getTriggerId(ctx, id));\n return resolveRect(getOffsetRect(tab));\n};\nvar resolveRect = (rect) => ({\n width: `${rect.width}px`,\n height: `${rect.height}px`,\n left: `${rect.left}px`,\n top: `${rect.top}px`\n});\n\n// src/tabs.connect.ts\nfunction connect(service, normalize) {\n const { state, send, context, prop, scope } = service;\n const translations = prop(\"translations\");\n const focused = state.matches(\"focused\");\n const isVertical = prop(\"orientation\") === \"vertical\";\n const isHorizontal = prop(\"orientation\") === \"horizontal\";\n const composite = prop(\"composite\");\n function getTriggerState(props2) {\n return {\n selected: context.get(\"value\") === props2.value,\n focused: context.get(\"focusedValue\") === props2.value,\n disabled: !!props2.disabled\n };\n }\n return {\n value: context.get(\"value\"),\n focusedValue: context.get(\"focusedValue\"),\n setValue(value) {\n send({ type: \"SET_VALUE\", value });\n },\n clearValue() {\n send({ type: \"CLEAR_VALUE\" });\n },\n setIndicatorRect(value) {\n const id = getTriggerId(scope, value);\n send({ type: \"SET_INDICATOR_RECT\", id });\n },\n syncTabIndex() {\n send({ type: \"SYNC_TAB_INDEX\" });\n },\n selectNext(fromValue) {\n send({ type: \"TAB_FOCUS\", value: fromValue, src: \"selectNext\" });\n send({ type: \"ARROW_NEXT\", src: \"selectNext\" });\n },\n selectPrev(fromValue) {\n send({ type: \"TAB_FOCUS\", value: fromValue, src: \"selectPrev\" });\n send({ type: \"ARROW_PREV\", src: \"selectPrev\" });\n },\n focus() {\n const value = context.get(\"value\");\n if (!value) return;\n getTriggerEl(scope, value)?.focus();\n },\n getRootProps() {\n return normalize.element({\n ...parts.root.attrs,\n id: getRootId(scope),\n \"data-orientation\": prop(\"orientation\"),\n \"data-focus\": dataAttr(focused),\n dir: prop(\"dir\")\n });\n },\n getListProps() {\n return normalize.element({\n ...parts.list.attrs,\n id: getListId(scope),\n role: \"tablist\",\n dir: prop(\"dir\"),\n \"data-focus\": dataAttr(focused),\n \"aria-orientation\": prop(\"orientation\"),\n \"data-orientation\": prop(\"orientation\"),\n \"aria-label\": translations?.listLabel,\n onKeyDown(event) {\n if (event.defaultPrevented) return;\n if (!isSelfTarget(event)) return;\n if (isComposingEvent(event)) return;\n const keyMap = {\n ArrowDown() {\n if (isHorizontal) return;\n send({ type: \"ARROW_NEXT\", key: \"ArrowDown\" });\n },\n ArrowUp() {\n if (isHorizontal) return;\n send({ type: \"ARROW_PREV\", key: \"ArrowUp\" });\n },\n ArrowLeft() {\n if (isVertical) return;\n send({ type: \"ARROW_PREV\", key: \"ArrowLeft\" });\n },\n ArrowRight() {\n if (isVertical) return;\n send({ type: \"ARROW_NEXT\", key: \"ArrowRight\" });\n },\n Home() {\n send({ type: \"HOME\" });\n },\n End() {\n send({ type: \"END\" });\n }\n };\n let key = getEventKey(event, {\n dir: prop(\"dir\"),\n orientation: prop(\"orientation\")\n });\n const exec = keyMap[key];\n if (exec) {\n event.preventDefault();\n exec(event);\n return;\n }\n }\n });\n },\n getTriggerState,\n getTriggerProps(props2) {\n const { value, disabled } = props2;\n const triggerState = getTriggerState(props2);\n return normalize.button({\n ...parts.trigger.attrs,\n role: \"tab\",\n type: \"button\",\n disabled,\n dir: prop(\"dir\"),\n \"data-orientation\": prop(\"orientation\"),\n \"data-disabled\": dataAttr(disabled),\n \"aria-disabled\": disabled,\n \"data-value\": value,\n \"aria-selected\": triggerState.selected,\n \"data-selected\": dataAttr(triggerState.selected),\n \"data-focus\": dataAttr(triggerState.focused),\n \"aria-controls\": triggerState.selected ? getContentId(scope, value) : void 0,\n \"data-ownedby\": getListId(scope),\n \"data-ssr\": dataAttr(context.get(\"ssr\")),\n id: getTriggerId(scope, value),\n tabIndex: triggerState.selected && composite ? 0 : -1,\n onFocus() {\n send({ type: \"TAB_FOCUS\", value });\n },\n onBlur(event) {\n const target = event.relatedTarget;\n if (target?.getAttribute(\"role\") !== \"tab\") {\n send({ type: \"TAB_BLUR\" });\n }\n },\n onClick(event) {\n if (event.defaultPrevented) return;\n if (isOpeningInNewTab(event)) return;\n if (disabled) return;\n if (isSafari()) {\n event.currentTarget.focus();\n }\n send({ type: \"TAB_CLICK\", value });\n }\n });\n },\n getContentProps(props2) {\n const { value } = props2;\n const selected = context.get(\"value\") === value;\n return normalize.element({\n ...parts.content.attrs,\n dir: prop(\"dir\"),\n id: getContentId(scope, value),\n tabIndex: composite ? 0 : -1,\n \"aria-labelledby\": getTriggerId(scope, value),\n role: \"tabpanel\",\n \"data-ownedby\": getListId(scope),\n \"data-selected\": dataAttr(selected),\n \"data-orientation\": prop(\"orientation\"),\n hidden: !selected\n });\n },\n getIndicatorProps() {\n const indicatorRect = context.get(\"indicatorRect\");\n const indicatorTransition = context.get(\"indicatorTransition\");\n return normalize.element({\n id: getIndicatorId(scope),\n ...parts.indicator.attrs,\n dir: prop(\"dir\"),\n \"data-orientation\": prop(\"orientation\"),\n style: {\n \"--transition-property\": \"left, right, top, bottom, width, height\",\n \"--left\": indicatorRect.left,\n \"--top\": indicatorRect.top,\n \"--width\": indicatorRect.width,\n \"--height\": indicatorRect.height,\n position: \"absolute\",\n willChange: \"var(--transition-property)\",\n transitionProperty: \"var(--transition-property)\",\n transitionDuration: indicatorTransition ? \"var(--transition-duration, 150ms)\" : \"0ms\",\n transitionTimingFunction: \"var(--transition-timing-function)\",\n [isHorizontal ? \"left\" : \"top\"]: isHorizontal ? \"var(--left)\" : \"var(--top)\"\n }\n });\n }\n };\n}\nvar { createMachine } = setup();\nvar machine = createMachine({\n props({ props: props2 }) {\n return {\n dir: \"ltr\",\n orientation: \"horizontal\",\n activationMode: \"automatic\",\n loopFocus: true,\n composite: true,\n navigate(details) {\n clickIfLink(details.node);\n },\n defaultValue: null,\n ...props2\n };\n },\n initialState() {\n return \"idle\";\n },\n context({ prop, bindable }) {\n return {\n value: bindable(() => ({\n defaultValue: prop(\"defaultValue\"),\n value: prop(\"value\"),\n onChange(value) {\n prop(\"onValueChange\")?.({ value });\n }\n })),\n focusedValue: bindable(() => ({\n defaultValue: prop(\"value\") || prop(\"defaultValue\"),\n sync: true,\n onChange(value) {\n prop(\"onFocusChange\")?.({ focusedValue: value });\n }\n })),\n ssr: bindable(() => ({ defaultValue: true })),\n indicatorTransition: bindable(() => ({ defaultValue: false })),\n indicatorRect: bindable(() => ({\n defaultValue: { left: \"0px\", top: \"0px\", width: \"0px\", height: \"0px\" }\n }))\n };\n },\n watch({ context, prop, track, action }) {\n track([() => context.get(\"value\")], () => {\n action([\"allowIndicatorTransition\", \"syncIndicatorRect\", \"syncTabIndex\", \"navigateIfNeeded\"]);\n });\n track([() => prop(\"dir\"), () => prop(\"orientation\")], () => {\n action([\"syncIndicatorRect\"]);\n });\n },\n on: {\n SET_VALUE: {\n actions: [\"setValue\"]\n },\n CLEAR_VALUE: {\n actions: [\"clearValue\"]\n },\n SET_INDICATOR_RECT: {\n actions: [\"setIndicatorRect\"]\n },\n SYNC_TAB_INDEX: {\n actions: [\"syncTabIndex\"]\n }\n },\n entry: [\"syncIndicatorRect\", \"syncTabIndex\", \"syncSsr\"],\n exit: [\"cleanupObserver\"],\n states: {\n idle: {\n on: {\n TAB_FOCUS: {\n target: \"focused\",\n actions: [\"setFocusedValue\"]\n },\n TAB_CLICK: {\n target: \"focused\",\n actions: [\"setFocusedValue\", \"setValue\"]\n }\n }\n },\n focused: {\n on: {\n TAB_CLICK: {\n actions: [\"setFocusedValue\", \"setValue\"]\n },\n ARROW_PREV: [\n {\n guard: \"selectOnFocus\",\n actions: [\"focusPrevTab\", \"selectFocusedTab\"]\n },\n {\n actions: [\"focusPrevTab\"]\n }\n ],\n ARROW_NEXT: [\n {\n guard: \"selectOnFocus\",\n actions: [\"focusNextTab\", \"selectFocusedTab\"]\n },\n {\n actions: [\"focusNextTab\"]\n }\n ],\n HOME: [\n {\n guard: \"selectOnFocus\",\n actions: [\"focusFirstTab\", \"selectFocusedTab\"]\n },\n {\n actions: [\"focusFirstTab\"]\n }\n ],\n END: [\n {\n guard: \"selectOnFocus\",\n actions: [\"focusLastTab\", \"selectFocusedTab\"]\n },\n {\n actions: [\"focusLastTab\"]\n }\n ],\n TAB_FOCUS: {\n actions: [\"setFocusedValue\"]\n },\n TAB_BLUR: {\n target: \"idle\",\n actions: [\"clearFocusedValue\"]\n }\n }\n }\n },\n implementations: {\n guards: {\n selectOnFocus: ({ prop }) => prop(\"activationMode\") === \"automatic\"\n },\n actions: {\n selectFocusedTab({ context, prop }) {\n raf(() => {\n const focusedValue = context.get(\"focusedValue\");\n if (!focusedValue) return;\n const nullable = prop(\"deselectable\") && context.get(\"value\") === focusedValue;\n const value = nullable ? null : focusedValue;\n context.set(\"value\", value);\n });\n },\n setFocusedValue({ context, event, flush }) {\n if (event.value == null) return;\n flush(() => {\n context.set(\"focusedValue\", event.value);\n });\n },\n clearFocusedValue({ context }) {\n context.set(\"focusedValue\", null);\n },\n setValue({ context, event, prop }) {\n const nullable = prop(\"deselectable\") && context.get(\"value\") === context.get(\"focusedValue\");\n context.set(\"value\", nullable ? null : event.value);\n },\n clearValue({ context }) {\n context.set(\"value\", null);\n },\n focusFirstTab({ scope }) {\n raf(() => {\n getFirstTriggerEl(scope)?.focus();\n });\n },\n focusLastTab({ scope }) {\n raf(() => {\n getLastTriggerEl(scope)?.focus();\n });\n },\n focusNextTab({ context, prop, scope, event }) {\n const focusedValue = event.value ?? context.get(\"focusedValue\");\n if (!focusedValue) return;\n const triggerEl = getNextTriggerEl(scope, {\n value: focusedValue,\n loopFocus: prop(\"loopFocus\")\n });\n raf(() => {\n if (prop(\"composite\")) {\n triggerEl?.focus();\n } else if (triggerEl?.dataset.value != null) {\n context.set(\"focusedValue\", triggerEl.dataset.value);\n }\n });\n },\n focusPrevTab({ context, prop, scope, event }) {\n const focusedValue = event.value ?? context.get(\"focusedValue\");\n if (!focusedValue) return;\n const triggerEl = getPrevTriggerEl(scope, {\n value: focusedValue,\n loopFocus: prop(\"loopFocus\")\n });\n raf(() => {\n if (prop(\"composite\")) {\n triggerEl?.focus();\n } else if (triggerEl?.dataset.value != null) {\n context.set(\"focusedValue\", triggerEl.dataset.value);\n }\n });\n },\n syncTabIndex({ context, scope }) {\n raf(() => {\n const value = context.get(\"value\");\n if (!value) return;\n const contentEl = getContentEl(scope, value);\n if (!contentEl) return;\n const focusables = getFocusables(contentEl);\n if (focusables.length > 0) {\n contentEl.removeAttribute(\"tabindex\");\n } else {\n contentEl.setAttribute(\"tabindex\", \"0\");\n }\n });\n },\n cleanupObserver({ refs }) {\n const cleanup = refs.get(\"indicatorCleanup\");\n if (cleanup) cleanup();\n },\n allowIndicatorTransition({ context }) {\n context.set(\"indicatorTransition\", true);\n },\n setIndicatorRect({ context, event, scope }) {\n const value = event.id ?? context.get(\"value\");\n const indicatorEl = getIndicatorEl(scope);\n if (!indicatorEl) return;\n if (!value) {\n context.set(\"indicatorTransition\", false);\n return;\n }\n const triggerEl = getTriggerEl(scope, value);\n if (!triggerEl) return;\n context.set(\"indicatorRect\", getRectById(scope, value));\n nextTick(() => {\n context.set(\"indicatorTransition\", false);\n });\n },\n syncSsr({ context }) {\n context.set(\"ssr\", false);\n },\n syncIndicatorRect({ context, refs, scope }) {\n const cleanup = refs.get(\"indicatorCleanup\");\n if (cleanup) cleanup();\n const value = context.get(\"value\");\n if (!value) {\n context.set(\"indicatorTransition\", false);\n return;\n }\n const triggerEl = getTriggerEl(scope, value);\n const indicatorEl = getIndicatorEl(scope);\n if (!triggerEl || !indicatorEl) return;\n const indicatorCleanup = trackElementRect([triggerEl], {\n measure(el) {\n return getOffsetRect(el);\n },\n onEntry({ rects }) {\n const [rect] = rects;\n context.set(\"indicatorRect\", resolveRect(rect));\n }\n });\n refs.set(\"indicatorCleanup\", indicatorCleanup);\n },\n navigateIfNeeded({ context, prop, scope }) {\n const value = context.get(\"value\");\n if (!value) return;\n const triggerEl = getTriggerEl(scope, value);\n if (isAnchorElement(triggerEl)) {\n prop(\"navigate\")?.({ value, node: triggerEl, href: triggerEl.href });\n }\n }\n }\n }\n});\nvar props = createProps()([\n \"activationMode\",\n \"composite\",\n \"deselectable\",\n \"dir\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"loopFocus\",\n \"navigate\",\n \"onFocusChange\",\n \"onValueChange\",\n \"orientation\",\n \"translations\",\n \"value\",\n \"defaultValue\"\n]);\nvar splitProps = createSplitProps(props);\nvar triggerProps = createProps()([\"disabled\", \"value\"]);\nvar splitTriggerProps = createSplitProps(triggerProps);\nvar contentProps = createProps()([\"value\"]);\nvar splitContentProps = createSplitProps(contentProps);\n\nexport { anatomy, connect, contentProps, machine, props, splitContentProps, splitProps, splitTriggerProps, triggerProps };\n","'use client';\nimport { useMachine, normalizeProps } from '@zag-js/react';\nimport * as tabs from '@zag-js/tabs';\nimport { useId } from 'react';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\nimport { useLocaleContext } from '../../providers/locale/use-locale-context.js';\n\nconst useTabs = (props) => {\n const id = useId();\n const { getRootNode } = useEnvironmentContext();\n const { dir } = useLocaleContext();\n const machineProps = {\n id,\n dir,\n getRootNode,\n ...props\n };\n const service = useMachine(tabs.machine, machineProps);\n return tabs.connect(service, normalizeProps);\n};\n\nexport { useTabs };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { splitRenderStrategyProps, RenderStrategyPropsProvider } from '../../utils/render-strategy.js';\nimport { ark } from '../factory.js';\nimport { useTabs } from './use-tabs.js';\nimport { TabsProvider } from './use-tabs-context.js';\n\nconst TabsRoot = forwardRef((props, ref) => {\n const [renderStrategyProps, tabsProps] = splitRenderStrategyProps(props);\n const [useTabsProps, localprops] = createSplitProps()(tabsProps, [\n \"activationMode\",\n \"composite\",\n \"defaultValue\",\n \"deselectable\",\n \"id\",\n \"ids\",\n \"loopFocus\",\n \"navigate\",\n \"onFocusChange\",\n \"onValueChange\",\n \"orientation\",\n \"translations\",\n \"value\"\n ]);\n const tabs = useTabs(useTabsProps);\n const mergedProps = mergeProps(tabs.getRootProps(), localprops);\n return /* @__PURE__ */ jsx(TabsProvider, { value: tabs, children: /* @__PURE__ */ jsx(RenderStrategyPropsProvider, { value: renderStrategyProps, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });\n});\nTabsRoot.displayName = \"TabsRoot\";\n\nexport { TabsRoot };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { splitRenderStrategyProps, RenderStrategyPropsProvider } from '../../utils/render-strategy.js';\nimport { ark } from '../factory.js';\nimport { TabsProvider } from './use-tabs-context.js';\n\nconst TabsRootProvider = forwardRef((props, ref) => {\n const [renderStrategyProps, tabsProps] = splitRenderStrategyProps(props);\n const [{ value: tabs }, localprops] = createSplitProps()(tabsProps, [\"value\"]);\n const mergedProps = mergeProps(tabs.getRootProps(), localprops);\n return /* @__PURE__ */ jsx(TabsProvider, { value: tabs, children: /* @__PURE__ */ jsx(RenderStrategyPropsProvider, { value: renderStrategyProps, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });\n});\nTabsRootProvider.displayName = \"TabsRootProvider\";\n\nexport { TabsRootProvider };\n","\"use strict\";\n\"use client\";\nimport { Tabs } from '@ark-ui/react/tabs';\nimport { createSlotRecipeContext } from '../../styled-system/create-slot-recipe-context.js';\n\nconst {\n withProvider,\n withContext,\n useStyles: useTabsStyles,\n PropsProvider\n} = createSlotRecipeContext({ key: \"tabs\" });\nconst TabsRootProvider = withProvider(Tabs.RootProvider, \"root\", { forwardAsChild: true });\nconst TabsRoot = withProvider(\n Tabs.Root,\n \"root\",\n { forwardAsChild: true }\n);\nconst TabsPropsProvider = PropsProvider;\nconst TabsTrigger = withContext(\n Tabs.Trigger,\n \"trigger\",\n { forwardAsChild: true }\n);\nconst TabsContent = withContext(\n Tabs.Content,\n \"content\",\n { forwardAsChild: true }\n);\nconst TabsContentGroup = withContext(\"div\", \"contentGroup\");\nconst TabsList = withContext(\n Tabs.List,\n \"list\",\n { forwardAsChild: true }\n);\nconst TabsIndicator = withContext(\n Tabs.Indicator,\n \"indicator\",\n { forwardAsChild: true }\n);\n\nexport { TabsContent, TabsContentGroup, TabsIndicator, TabsList, TabsPropsProvider, TabsRoot, TabsRootProvider, TabsTrigger, useTabsStyles };\n","import { TabSize } from './tab.types';\nimport { NotificationCounterSize } from 'components/NotificationCounter/notificationCounter.types';\nimport { HeadingSize } from 'components/Heading/heading.types';\n\nexport const tabNotificationCounterSize: Record<TabSize, NotificationCounterSize> = {\n xs: 'sm',\n sm: 'md',\n md: 'md',\n lg: 'lg',\n};\n\nexport const tabLabelSize: Record<TabSize, HeadingSize> = {\n xs: 'xs',\n sm: 'xs',\n md: 'sm',\n lg: 'md',\n};\n","import React from 'react';\nimport { Tabs } from '@chakra-ui/react/tabs';\nimport { Icon, IconName } from 'components/Icon';\nimport {\n NotificationCounter,\n NotificationCounterProps,\n} from 'components/NotificationCounter/notificationCounter.component';\nimport { TabIconPosition, TabSize } from './tab.types';\nimport { tabLabelSize, tabNotificationCounterSize } from './tab.records';\nimport { Heading } from 'components/Heading/heading.component';\n\nexport interface TabProps extends Tabs.TriggerProps {\n /** The name of the icon to be displayed. */\n iconName?: IconName;\n /** The position of the icon. */\n iconPosition?: TabIconPosition;\n /** The label of the tab. */\n label: string;\n /** Props to customize the notification counter. */\n notificationCounterProps?: Omit<NotificationCounterProps, 'size'>;\n /** Whether to show the notification counter to the right of the label or not. */\n showNotificationCounter?: boolean;\n /**\n * The size of the tab.\n * @default md\n */\n size?: TabSize;\n /** The value of the tab. */\n value: string;\n /** Data test id for the tab. */\n 'data-testid'?: string;\n}\n\nexport const Tab = ({\n iconName,\n iconPosition = 'left',\n label,\n notificationCounterProps,\n showNotificationCounter,\n size = 'md',\n ['data-testid']: dataTestId = 'kibble-tab',\n ...rest\n}: TabProps): React.JSX.Element => {\n return (\n <Tabs.Trigger className=\"Tab\" data-testid={dataTestId} {...rest}>\n {!!iconName && iconPosition === 'left' && (\n <Icon\n className=\"Tab__Icon\"\n data-testid={`${dataTestId}-icon-left`}\n name={iconName}\n size={size}\n variant=\"default\"\n />\n )}\n <Heading as=\"span\" className=\"Tab__Label\" data-testid={`${dataTestId}-label`} size={tabLabelSize[size]}>\n {label}\n </Heading>\n {!!iconName && iconPosition === 'right' && (\n <Icon className=\"Tab__Icon\" data-testid={`${dataTestId}-icon-right`} name={iconName} size={size} />\n )}\n {showNotificationCounter && (\n <NotificationCounter\n className=\"Tab__NotificationCounter\"\n data-testid={`${dataTestId}-notification-counter`}\n {...notificationCounterProps}\n size={tabNotificationCounterSize[size]}\n />\n )}\n </Tabs.Trigger>\n );\n};\n","import React from 'react';\nimport { Tabs as CTabs } from '@chakra-ui/react/tabs';\nimport { TabSize } from './components/Tab/tab.types';\nimport { Tab, TabProps } from './components/Tab/tab.component';\nimport { Alignment } from 'shared/types/alignment';\n\nexport interface TabsProps extends Omit<CTabs.RootProps, 'onChange' | 'variant'> {\n /** Alignment of the tabs. */\n align?: Alignment;\n /** Callback function when the tab changes. */\n onChange?: (value: string) => void;\n /**\n * Size of the tabs.\n * @default md\n */\n size?: TabSize;\n /** Array of tabs. Each tab should have a value prop. */\n tabs: TabProps[];\n /** Array of tab contents, each tab content should have a value prop that matches the value of their corresponding tab. */\n tabsContent?: CTabs.ContentProps[];\n /**\n * Data test id for the tabs.\n * @default kibble-tabs\n */\n 'data-testid'?: string;\n /** The current value of the tabs. */\n value?: string | null;\n}\n\nexport const Tabs = ({\n align = 'start',\n onChange,\n size = 'md',\n tabs,\n tabsContent,\n ['data-testid']: dataTestId = 'kibble-tabs',\n ...rest\n}: TabsProps): React.JSX.Element => {\n return (\n <CTabs.Root\n className=\"Tabs\"\n data-testid={dataTestId}\n justify={align || rest.justify}\n size={size}\n onValueChange={({ value }) => onChange?.(value)}\n {...rest}\n >\n <CTabs.List className=\"Tabs__List\" data-testid={`${dataTestId}-trigger-list`}>\n {tabs.map((tab, index) => (\n <Tab key={`tab-${index}`} {...tab} data-testid={`${dataTestId}-trigger-${tab.value}`} size={size} />\n ))}\n </CTabs.List>\n {!!tabsContent &&\n tabsContent.map((tabContent, index) => (\n <CTabs.Content\n key={`${dataTestId}-tabContent-${index}`}\n data-testid={`${dataTestId}-content-${tabs[index].value}`}\n {...tabContent}\n />\n ))}\n </CTabs.Root>\n );\n};\n","export const tabSizes = ['xs', 'sm', 'md', 'lg'] as const;\nexport type TabSize = (typeof tabSizes)[number];\n\nexport const tabIconPositions = ['left', 'right'] as const;\nexport type TabIconPosition = (typeof tabIconPositions)[number];\n"],"names":["useDebounce","value","delay","debouncedValue","setDebouncedValue","useState","useEffect","timer","TabsProvider","useTabsContext","createContext","TabContent","forwardRef","props","ref","contentProps","localProps","createSplitProps","tabs","renderStrategyProps","useRenderStrategyPropsContext","presence","usePresence","mergedProps","mergeProps","jsx","PresenceProvider","ark","composeRefs","TabIndicator","TabList","TabTrigger","tabProps","anatomy","createAnatomy","parts","getRootId","ctx","getListId","getContentId","id","getTriggerId","getIndicatorId","getListEl","getContentEl","getTriggerEl","getIndicatorEl","getElements","selector","queryAll","getFirstTriggerEl","first","getLastTriggerEl","last","getNextTriggerEl","opts","nextById","getPrevTriggerEl","prevById","getOffsetRect","el","getRectById","tab","itemById","resolveRect","rect","connect","service","normalize","state","send","context","prop","scope","translations","focused","isVertical","isHorizontal","composite","getTriggerState","props2","fromValue","dataAttr","event","isSelfTarget","isComposingEvent","keyMap","key","getEventKey","exec","disabled","triggerState","isOpeningInNewTab","isSafari","selected","indicatorRect","indicatorTransition","createMachine","setup","machine","details","clickIfLink","bindable","track","action","raf","focusedValue","flush","nullable","triggerEl","contentEl","getFocusables","refs","cleanup","nextTick","indicatorEl","indicatorCleanup","trackElementRect","rects","isAnchorElement","createProps","useTabs","useId","getRootNode","useEnvironmentContext","dir","useLocaleContext","machineProps","useMachine","tabs.machine","tabs.connect","normalizeProps","TabsRoot","tabsProps","splitRenderStrategyProps","useTabsProps","localprops","RenderStrategyPropsProvider","TabsRootProvider","withProvider","withContext","createSlotRecipeContext","Tabs.RootProvider","Tabs.Root","TabsTrigger","Tabs.Trigger","TabsContent","Tabs.Content","TabsList","Tabs.List","Tabs.Indicator","tabNotificationCounterSize","tabLabelSize","Tab","iconName","iconPosition","label","notificationCounterProps","showNotificationCounter","size","dataTestId","rest","jsxs","Icon","Heading","NotificationCounter","Tabs","align","onChange","tabsContent","CTabs.Root","CTabs.List","index","tabContent","CTabs.Content","tabSizes","tabIconPositions"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10]}
1
+ {"version":3,"file":"tab.types-BTbceOSr.js","sources":["../../node_modules/@ark-ui/react/dist/utils/use-debounce.js","../../node_modules/@ark-ui/react/dist/components/tabs/use-tabs-context.js","../../node_modules/@ark-ui/react/dist/components/tabs/tab-content.js","../../node_modules/@ark-ui/react/dist/components/tabs/tab-indicator.js","../../node_modules/@ark-ui/react/dist/components/tabs/tab-list.js","../../node_modules/@ark-ui/react/dist/components/tabs/tab-trigger.js","../../node_modules/@zag-js/tabs/dist/index.mjs","../../node_modules/@ark-ui/react/dist/components/tabs/use-tabs.js","../../node_modules/@ark-ui/react/dist/components/tabs/tabs-root.js","../../node_modules/@ark-ui/react/dist/components/tabs/tabs-root-provider.js","../../node_modules/@chakra-ui/react/dist/esm/components/tabs/tabs.js","../../src/components/Tabs/components/Tab/tab.records.ts","../../src/components/Tabs/components/Tab/tab.component.tsx","../../src/components/Tabs/tabs.component.tsx","../../src/components/Tabs/components/Tab/tab.types.ts"],"sourcesContent":["'use client';\nimport { useState, useEffect } from 'react';\n\nfunction useDebounce(value, delay) {\n const [debouncedValue, setDebouncedValue] = useState(value);\n useEffect(() => {\n const timer = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n return () => {\n clearTimeout(timer);\n };\n }, [value, delay]);\n return debouncedValue;\n}\n\nexport { useDebounce };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [TabsProvider, useTabsContext] = createContext({\n name: \"TabsContext\",\n hookName: \"useTabsContext\",\n providerName: \"<TabsProvider />\"\n});\n\nexport { TabsProvider, useTabsContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { composeRefs } from '../../utils/compose-refs.js';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { useRenderStrategyPropsContext } from '../../utils/render-strategy.js';\nimport { useDebounce } from '../../utils/use-debounce.js';\nimport { ark } from '../factory.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { PresenceProvider } from '../presence/use-presence-context.js';\nimport { useTabsContext } from './use-tabs-context.js';\n\nconst TabContent = forwardRef((props, ref) => {\n const [contentProps, localProps] = createSplitProps()(props, [\"value\"]);\n const tabs = useTabsContext();\n const renderStrategyProps = useRenderStrategyPropsContext();\n const presence = usePresence({\n ...renderStrategyProps,\n present: useDebounce(tabs.value === props.value, 0),\n immediate: true\n });\n const mergedProps = mergeProps(tabs.getContentProps(contentProps), presence.getPresenceProps(), localProps);\n return /* @__PURE__ */ jsx(PresenceProvider, { value: presence, children: presence.unmounted ? null : /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref: composeRefs(presence.ref, ref) }) });\n});\nTabContent.displayName = \"TabContent\";\n\nexport { TabContent };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useTabsContext } from './use-tabs-context.js';\n\nconst TabIndicator = forwardRef((props, ref) => {\n const tabs = useTabsContext();\n const mergedProps = mergeProps(tabs.getIndicatorProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nTabIndicator.displayName = \"TabIndicator\";\n\nexport { TabIndicator };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useTabsContext } from './use-tabs-context.js';\n\nconst TabList = forwardRef((props, ref) => {\n const tabs = useTabsContext();\n const mergedProps = mergeProps(tabs.getListProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nTabList.displayName = \"TabList\";\n\nexport { TabList };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useTabsContext } from './use-tabs-context.js';\n\nconst TabTrigger = forwardRef((props, ref) => {\n const [tabProps, localProps] = createSplitProps()(props, [\"disabled\", \"value\"]);\n const tabs = useTabsContext();\n const mergedProps = mergeProps(tabs.getTriggerProps(tabProps), localProps);\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n});\nTabTrigger.displayName = \"TabTrigger\";\n\nexport { TabTrigger };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { isAnchorElement, trackElementRect, nextTick, raf, getFocusables, prevById, nextById, clickIfLink, itemById, queryAll, dataAttr, isOpeningInNewTab, isSafari, isSelfTarget, isComposingEvent, getEventKey } from '@zag-js/dom-query';\nimport { last, first, createSplitProps } from '@zag-js/utils';\nimport { setup } from '@zag-js/core';\nimport { createProps } from '@zag-js/types';\n\n// src/tabs.anatomy.ts\nvar anatomy = createAnatomy(\"tabs\").parts(\"root\", \"list\", \"trigger\", \"content\", \"indicator\");\nvar parts = anatomy.build();\nvar getRootId = (ctx) => ctx.ids?.root ?? `tabs:${ctx.id}`;\nvar getListId = (ctx) => ctx.ids?.list ?? `tabs:${ctx.id}:list`;\nvar getContentId = (ctx, id) => ctx.ids?.content ?? `tabs:${ctx.id}:content-${id}`;\nvar getTriggerId = (ctx, id) => ctx.ids?.trigger ?? `tabs:${ctx.id}:trigger-${id}`;\nvar getIndicatorId = (ctx) => ctx.ids?.indicator ?? `tabs:${ctx.id}:indicator`;\nvar getListEl = (ctx) => ctx.getById(getListId(ctx));\nvar getContentEl = (ctx, id) => ctx.getById(getContentId(ctx, id));\nvar getTriggerEl = (ctx, id) => ctx.getById(getTriggerId(ctx, id));\nvar getIndicatorEl = (ctx) => ctx.getById(getIndicatorId(ctx));\nvar getElements = (ctx) => {\n const ownerId = CSS.escape(getListId(ctx));\n const selector = `[role=tab][data-ownedby='${ownerId}']:not([disabled])`;\n return queryAll(getListEl(ctx), selector);\n};\nvar getFirstTriggerEl = (ctx) => first(getElements(ctx));\nvar getLastTriggerEl = (ctx) => last(getElements(ctx));\nvar getNextTriggerEl = (ctx, opts) => nextById(getElements(ctx), getTriggerId(ctx, opts.value), opts.loopFocus);\nvar getPrevTriggerEl = (ctx, opts) => prevById(getElements(ctx), getTriggerId(ctx, opts.value), opts.loopFocus);\nvar getOffsetRect = (el) => {\n return {\n left: el?.offsetLeft ?? 0,\n top: el?.offsetTop ?? 0,\n width: el?.offsetWidth ?? 0,\n height: el?.offsetHeight ?? 0\n };\n};\nvar getRectById = (ctx, id) => {\n const tab = itemById(getElements(ctx), getTriggerId(ctx, id));\n return resolveRect(getOffsetRect(tab));\n};\nvar resolveRect = (rect) => ({\n width: `${rect.width}px`,\n height: `${rect.height}px`,\n left: `${rect.left}px`,\n top: `${rect.top}px`\n});\n\n// src/tabs.connect.ts\nfunction connect(service, normalize) {\n const { state, send, context, prop, scope } = service;\n const translations = prop(\"translations\");\n const focused = state.matches(\"focused\");\n const isVertical = prop(\"orientation\") === \"vertical\";\n const isHorizontal = prop(\"orientation\") === \"horizontal\";\n const composite = prop(\"composite\");\n function getTriggerState(props2) {\n return {\n selected: context.get(\"value\") === props2.value,\n focused: context.get(\"focusedValue\") === props2.value,\n disabled: !!props2.disabled\n };\n }\n return {\n value: context.get(\"value\"),\n focusedValue: context.get(\"focusedValue\"),\n setValue(value) {\n send({ type: \"SET_VALUE\", value });\n },\n clearValue() {\n send({ type: \"CLEAR_VALUE\" });\n },\n setIndicatorRect(value) {\n const id = getTriggerId(scope, value);\n send({ type: \"SET_INDICATOR_RECT\", id });\n },\n syncTabIndex() {\n send({ type: \"SYNC_TAB_INDEX\" });\n },\n selectNext(fromValue) {\n send({ type: \"TAB_FOCUS\", value: fromValue, src: \"selectNext\" });\n send({ type: \"ARROW_NEXT\", src: \"selectNext\" });\n },\n selectPrev(fromValue) {\n send({ type: \"TAB_FOCUS\", value: fromValue, src: \"selectPrev\" });\n send({ type: \"ARROW_PREV\", src: \"selectPrev\" });\n },\n focus() {\n const value = context.get(\"value\");\n if (!value) return;\n getTriggerEl(scope, value)?.focus();\n },\n getRootProps() {\n return normalize.element({\n ...parts.root.attrs,\n id: getRootId(scope),\n \"data-orientation\": prop(\"orientation\"),\n \"data-focus\": dataAttr(focused),\n dir: prop(\"dir\")\n });\n },\n getListProps() {\n return normalize.element({\n ...parts.list.attrs,\n id: getListId(scope),\n role: \"tablist\",\n dir: prop(\"dir\"),\n \"data-focus\": dataAttr(focused),\n \"aria-orientation\": prop(\"orientation\"),\n \"data-orientation\": prop(\"orientation\"),\n \"aria-label\": translations?.listLabel,\n onKeyDown(event) {\n if (event.defaultPrevented) return;\n if (!isSelfTarget(event)) return;\n if (isComposingEvent(event)) return;\n const keyMap = {\n ArrowDown() {\n if (isHorizontal) return;\n send({ type: \"ARROW_NEXT\", key: \"ArrowDown\" });\n },\n ArrowUp() {\n if (isHorizontal) return;\n send({ type: \"ARROW_PREV\", key: \"ArrowUp\" });\n },\n ArrowLeft() {\n if (isVertical) return;\n send({ type: \"ARROW_PREV\", key: \"ArrowLeft\" });\n },\n ArrowRight() {\n if (isVertical) return;\n send({ type: \"ARROW_NEXT\", key: \"ArrowRight\" });\n },\n Home() {\n send({ type: \"HOME\" });\n },\n End() {\n send({ type: \"END\" });\n }\n };\n let key = getEventKey(event, {\n dir: prop(\"dir\"),\n orientation: prop(\"orientation\")\n });\n const exec = keyMap[key];\n if (exec) {\n event.preventDefault();\n exec(event);\n return;\n }\n }\n });\n },\n getTriggerState,\n getTriggerProps(props2) {\n const { value, disabled } = props2;\n const triggerState = getTriggerState(props2);\n return normalize.button({\n ...parts.trigger.attrs,\n role: \"tab\",\n type: \"button\",\n disabled,\n dir: prop(\"dir\"),\n \"data-orientation\": prop(\"orientation\"),\n \"data-disabled\": dataAttr(disabled),\n \"aria-disabled\": disabled,\n \"data-value\": value,\n \"aria-selected\": triggerState.selected,\n \"data-selected\": dataAttr(triggerState.selected),\n \"data-focus\": dataAttr(triggerState.focused),\n \"aria-controls\": triggerState.selected ? getContentId(scope, value) : void 0,\n \"data-ownedby\": getListId(scope),\n \"data-ssr\": dataAttr(context.get(\"ssr\")),\n id: getTriggerId(scope, value),\n tabIndex: triggerState.selected && composite ? 0 : -1,\n onFocus() {\n send({ type: \"TAB_FOCUS\", value });\n },\n onBlur(event) {\n const target = event.relatedTarget;\n if (target?.getAttribute(\"role\") !== \"tab\") {\n send({ type: \"TAB_BLUR\" });\n }\n },\n onClick(event) {\n if (event.defaultPrevented) return;\n if (isOpeningInNewTab(event)) return;\n if (disabled) return;\n if (isSafari()) {\n event.currentTarget.focus();\n }\n send({ type: \"TAB_CLICK\", value });\n }\n });\n },\n getContentProps(props2) {\n const { value } = props2;\n const selected = context.get(\"value\") === value;\n return normalize.element({\n ...parts.content.attrs,\n dir: prop(\"dir\"),\n id: getContentId(scope, value),\n tabIndex: composite ? 0 : -1,\n \"aria-labelledby\": getTriggerId(scope, value),\n role: \"tabpanel\",\n \"data-ownedby\": getListId(scope),\n \"data-selected\": dataAttr(selected),\n \"data-orientation\": prop(\"orientation\"),\n hidden: !selected\n });\n },\n getIndicatorProps() {\n const indicatorRect = context.get(\"indicatorRect\");\n const indicatorTransition = context.get(\"indicatorTransition\");\n return normalize.element({\n id: getIndicatorId(scope),\n ...parts.indicator.attrs,\n dir: prop(\"dir\"),\n \"data-orientation\": prop(\"orientation\"),\n style: {\n \"--transition-property\": \"left, right, top, bottom, width, height\",\n \"--left\": indicatorRect.left,\n \"--top\": indicatorRect.top,\n \"--width\": indicatorRect.width,\n \"--height\": indicatorRect.height,\n position: \"absolute\",\n willChange: \"var(--transition-property)\",\n transitionProperty: \"var(--transition-property)\",\n transitionDuration: indicatorTransition ? \"var(--transition-duration, 150ms)\" : \"0ms\",\n transitionTimingFunction: \"var(--transition-timing-function)\",\n [isHorizontal ? \"left\" : \"top\"]: isHorizontal ? \"var(--left)\" : \"var(--top)\"\n }\n });\n }\n };\n}\nvar { createMachine } = setup();\nvar machine = createMachine({\n props({ props: props2 }) {\n return {\n dir: \"ltr\",\n orientation: \"horizontal\",\n activationMode: \"automatic\",\n loopFocus: true,\n composite: true,\n navigate(details) {\n clickIfLink(details.node);\n },\n defaultValue: null,\n ...props2\n };\n },\n initialState() {\n return \"idle\";\n },\n context({ prop, bindable }) {\n return {\n value: bindable(() => ({\n defaultValue: prop(\"defaultValue\"),\n value: prop(\"value\"),\n onChange(value) {\n prop(\"onValueChange\")?.({ value });\n }\n })),\n focusedValue: bindable(() => ({\n defaultValue: prop(\"value\") || prop(\"defaultValue\"),\n sync: true,\n onChange(value) {\n prop(\"onFocusChange\")?.({ focusedValue: value });\n }\n })),\n ssr: bindable(() => ({ defaultValue: true })),\n indicatorTransition: bindable(() => ({ defaultValue: false })),\n indicatorRect: bindable(() => ({\n defaultValue: { left: \"0px\", top: \"0px\", width: \"0px\", height: \"0px\" }\n }))\n };\n },\n watch({ context, prop, track, action }) {\n track([() => context.get(\"value\")], () => {\n action([\"allowIndicatorTransition\", \"syncIndicatorRect\", \"syncTabIndex\", \"navigateIfNeeded\"]);\n });\n track([() => prop(\"dir\"), () => prop(\"orientation\")], () => {\n action([\"syncIndicatorRect\"]);\n });\n },\n on: {\n SET_VALUE: {\n actions: [\"setValue\"]\n },\n CLEAR_VALUE: {\n actions: [\"clearValue\"]\n },\n SET_INDICATOR_RECT: {\n actions: [\"setIndicatorRect\"]\n },\n SYNC_TAB_INDEX: {\n actions: [\"syncTabIndex\"]\n }\n },\n entry: [\"syncIndicatorRect\", \"syncTabIndex\", \"syncSsr\"],\n exit: [\"cleanupObserver\"],\n states: {\n idle: {\n on: {\n TAB_FOCUS: {\n target: \"focused\",\n actions: [\"setFocusedValue\"]\n },\n TAB_CLICK: {\n target: \"focused\",\n actions: [\"setFocusedValue\", \"setValue\"]\n }\n }\n },\n focused: {\n on: {\n TAB_CLICK: {\n actions: [\"setFocusedValue\", \"setValue\"]\n },\n ARROW_PREV: [\n {\n guard: \"selectOnFocus\",\n actions: [\"focusPrevTab\", \"selectFocusedTab\"]\n },\n {\n actions: [\"focusPrevTab\"]\n }\n ],\n ARROW_NEXT: [\n {\n guard: \"selectOnFocus\",\n actions: [\"focusNextTab\", \"selectFocusedTab\"]\n },\n {\n actions: [\"focusNextTab\"]\n }\n ],\n HOME: [\n {\n guard: \"selectOnFocus\",\n actions: [\"focusFirstTab\", \"selectFocusedTab\"]\n },\n {\n actions: [\"focusFirstTab\"]\n }\n ],\n END: [\n {\n guard: \"selectOnFocus\",\n actions: [\"focusLastTab\", \"selectFocusedTab\"]\n },\n {\n actions: [\"focusLastTab\"]\n }\n ],\n TAB_FOCUS: {\n actions: [\"setFocusedValue\"]\n },\n TAB_BLUR: {\n target: \"idle\",\n actions: [\"clearFocusedValue\"]\n }\n }\n }\n },\n implementations: {\n guards: {\n selectOnFocus: ({ prop }) => prop(\"activationMode\") === \"automatic\"\n },\n actions: {\n selectFocusedTab({ context, prop }) {\n raf(() => {\n const focusedValue = context.get(\"focusedValue\");\n if (!focusedValue) return;\n const nullable = prop(\"deselectable\") && context.get(\"value\") === focusedValue;\n const value = nullable ? null : focusedValue;\n context.set(\"value\", value);\n });\n },\n setFocusedValue({ context, event, flush }) {\n if (event.value == null) return;\n flush(() => {\n context.set(\"focusedValue\", event.value);\n });\n },\n clearFocusedValue({ context }) {\n context.set(\"focusedValue\", null);\n },\n setValue({ context, event, prop }) {\n const nullable = prop(\"deselectable\") && context.get(\"value\") === context.get(\"focusedValue\");\n context.set(\"value\", nullable ? null : event.value);\n },\n clearValue({ context }) {\n context.set(\"value\", null);\n },\n focusFirstTab({ scope }) {\n raf(() => {\n getFirstTriggerEl(scope)?.focus();\n });\n },\n focusLastTab({ scope }) {\n raf(() => {\n getLastTriggerEl(scope)?.focus();\n });\n },\n focusNextTab({ context, prop, scope, event }) {\n const focusedValue = event.value ?? context.get(\"focusedValue\");\n if (!focusedValue) return;\n const triggerEl = getNextTriggerEl(scope, {\n value: focusedValue,\n loopFocus: prop(\"loopFocus\")\n });\n raf(() => {\n if (prop(\"composite\")) {\n triggerEl?.focus();\n } else if (triggerEl?.dataset.value != null) {\n context.set(\"focusedValue\", triggerEl.dataset.value);\n }\n });\n },\n focusPrevTab({ context, prop, scope, event }) {\n const focusedValue = event.value ?? context.get(\"focusedValue\");\n if (!focusedValue) return;\n const triggerEl = getPrevTriggerEl(scope, {\n value: focusedValue,\n loopFocus: prop(\"loopFocus\")\n });\n raf(() => {\n if (prop(\"composite\")) {\n triggerEl?.focus();\n } else if (triggerEl?.dataset.value != null) {\n context.set(\"focusedValue\", triggerEl.dataset.value);\n }\n });\n },\n syncTabIndex({ context, scope }) {\n raf(() => {\n const value = context.get(\"value\");\n if (!value) return;\n const contentEl = getContentEl(scope, value);\n if (!contentEl) return;\n const focusables = getFocusables(contentEl);\n if (focusables.length > 0) {\n contentEl.removeAttribute(\"tabindex\");\n } else {\n contentEl.setAttribute(\"tabindex\", \"0\");\n }\n });\n },\n cleanupObserver({ refs }) {\n const cleanup = refs.get(\"indicatorCleanup\");\n if (cleanup) cleanup();\n },\n allowIndicatorTransition({ context }) {\n context.set(\"indicatorTransition\", true);\n },\n setIndicatorRect({ context, event, scope }) {\n const value = event.id ?? context.get(\"value\");\n const indicatorEl = getIndicatorEl(scope);\n if (!indicatorEl) return;\n if (!value) {\n context.set(\"indicatorTransition\", false);\n return;\n }\n const triggerEl = getTriggerEl(scope, value);\n if (!triggerEl) return;\n context.set(\"indicatorRect\", getRectById(scope, value));\n nextTick(() => {\n context.set(\"indicatorTransition\", false);\n });\n },\n syncSsr({ context }) {\n context.set(\"ssr\", false);\n },\n syncIndicatorRect({ context, refs, scope }) {\n const cleanup = refs.get(\"indicatorCleanup\");\n if (cleanup) cleanup();\n const value = context.get(\"value\");\n if (!value) {\n context.set(\"indicatorTransition\", false);\n return;\n }\n const triggerEl = getTriggerEl(scope, value);\n const indicatorEl = getIndicatorEl(scope);\n if (!triggerEl || !indicatorEl) return;\n const indicatorCleanup = trackElementRect([triggerEl], {\n measure(el) {\n return getOffsetRect(el);\n },\n onEntry({ rects }) {\n const [rect] = rects;\n context.set(\"indicatorRect\", resolveRect(rect));\n }\n });\n refs.set(\"indicatorCleanup\", indicatorCleanup);\n },\n navigateIfNeeded({ context, prop, scope }) {\n const value = context.get(\"value\");\n if (!value) return;\n const triggerEl = getTriggerEl(scope, value);\n if (isAnchorElement(triggerEl)) {\n prop(\"navigate\")?.({ value, node: triggerEl, href: triggerEl.href });\n }\n }\n }\n }\n});\nvar props = createProps()([\n \"activationMode\",\n \"composite\",\n \"deselectable\",\n \"dir\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"loopFocus\",\n \"navigate\",\n \"onFocusChange\",\n \"onValueChange\",\n \"orientation\",\n \"translations\",\n \"value\",\n \"defaultValue\"\n]);\nvar splitProps = createSplitProps(props);\nvar triggerProps = createProps()([\"disabled\", \"value\"]);\nvar splitTriggerProps = createSplitProps(triggerProps);\nvar contentProps = createProps()([\"value\"]);\nvar splitContentProps = createSplitProps(contentProps);\n\nexport { anatomy, connect, contentProps, machine, props, splitContentProps, splitProps, splitTriggerProps, triggerProps };\n","'use client';\nimport { useMachine, normalizeProps } from '@zag-js/react';\nimport * as tabs from '@zag-js/tabs';\nimport { useId } from 'react';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\nimport { useLocaleContext } from '../../providers/locale/use-locale-context.js';\n\nconst useTabs = (props) => {\n const id = useId();\n const { getRootNode } = useEnvironmentContext();\n const { dir } = useLocaleContext();\n const machineProps = {\n id,\n dir,\n getRootNode,\n ...props\n };\n const service = useMachine(tabs.machine, machineProps);\n return tabs.connect(service, normalizeProps);\n};\n\nexport { useTabs };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { splitRenderStrategyProps, RenderStrategyPropsProvider } from '../../utils/render-strategy.js';\nimport { ark } from '../factory.js';\nimport { useTabs } from './use-tabs.js';\nimport { TabsProvider } from './use-tabs-context.js';\n\nconst TabsRoot = forwardRef((props, ref) => {\n const [renderStrategyProps, tabsProps] = splitRenderStrategyProps(props);\n const [useTabsProps, localprops] = createSplitProps()(tabsProps, [\n \"activationMode\",\n \"composite\",\n \"defaultValue\",\n \"deselectable\",\n \"id\",\n \"ids\",\n \"loopFocus\",\n \"navigate\",\n \"onFocusChange\",\n \"onValueChange\",\n \"orientation\",\n \"translations\",\n \"value\"\n ]);\n const tabs = useTabs(useTabsProps);\n const mergedProps = mergeProps(tabs.getRootProps(), localprops);\n return /* @__PURE__ */ jsx(TabsProvider, { value: tabs, children: /* @__PURE__ */ jsx(RenderStrategyPropsProvider, { value: renderStrategyProps, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });\n});\nTabsRoot.displayName = \"TabsRoot\";\n\nexport { TabsRoot };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { splitRenderStrategyProps, RenderStrategyPropsProvider } from '../../utils/render-strategy.js';\nimport { ark } from '../factory.js';\nimport { TabsProvider } from './use-tabs-context.js';\n\nconst TabsRootProvider = forwardRef((props, ref) => {\n const [renderStrategyProps, tabsProps] = splitRenderStrategyProps(props);\n const [{ value: tabs }, localprops] = createSplitProps()(tabsProps, [\"value\"]);\n const mergedProps = mergeProps(tabs.getRootProps(), localprops);\n return /* @__PURE__ */ jsx(TabsProvider, { value: tabs, children: /* @__PURE__ */ jsx(RenderStrategyPropsProvider, { value: renderStrategyProps, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });\n});\nTabsRootProvider.displayName = \"TabsRootProvider\";\n\nexport { TabsRootProvider };\n","\"use strict\";\n\"use client\";\nimport { Tabs } from '@ark-ui/react/tabs';\nimport { createSlotRecipeContext } from '../../styled-system/create-slot-recipe-context.js';\n\nconst {\n withProvider,\n withContext,\n useStyles: useTabsStyles,\n PropsProvider\n} = createSlotRecipeContext({ key: \"tabs\" });\nconst TabsRootProvider = withProvider(Tabs.RootProvider, \"root\", { forwardAsChild: true });\nconst TabsRoot = withProvider(\n Tabs.Root,\n \"root\",\n { forwardAsChild: true }\n);\nconst TabsPropsProvider = PropsProvider;\nconst TabsTrigger = withContext(\n Tabs.Trigger,\n \"trigger\",\n { forwardAsChild: true }\n);\nconst TabsContent = withContext(\n Tabs.Content,\n \"content\",\n { forwardAsChild: true }\n);\nconst TabsContentGroup = withContext(\"div\", \"contentGroup\");\nconst TabsList = withContext(\n Tabs.List,\n \"list\",\n { forwardAsChild: true }\n);\nconst TabsIndicator = withContext(\n Tabs.Indicator,\n \"indicator\",\n { forwardAsChild: true }\n);\n\nexport { TabsContent, TabsContentGroup, TabsIndicator, TabsList, TabsPropsProvider, TabsRoot, TabsRootProvider, TabsTrigger, useTabsStyles };\n","import { TabSize } from './tab.types';\nimport { NotificationCounterSize } from 'components/NotificationCounter/notificationCounter.types';\nimport { HeadingSize } from 'components/Heading/heading.types';\n\nexport const tabNotificationCounterSize: Record<TabSize, NotificationCounterSize> = {\n xs: 'sm',\n sm: 'md',\n md: 'md',\n lg: 'lg',\n};\n\nexport const tabLabelSize: Record<TabSize, HeadingSize> = {\n xs: 'xs',\n sm: 'xs',\n md: 'sm',\n lg: 'md',\n};\n","import React from 'react';\nimport { Tabs } from '@chakra-ui/react/tabs';\nimport { Icon, IconName } from 'components/Icon';\nimport {\n NotificationCounter,\n NotificationCounterProps,\n} from 'components/NotificationCounter/notificationCounter.component';\nimport { TabIconPosition, TabSize } from './tab.types';\nimport { tabLabelSize, tabNotificationCounterSize } from './tab.records';\nimport { Heading } from 'components/Heading/heading.component';\n\nexport interface TabProps extends Tabs.TriggerProps {\n /** The name of the icon to be displayed. */\n iconName?: IconName;\n /** The position of the icon. */\n iconPosition?: TabIconPosition;\n /** The label of the tab. */\n label: string;\n /** Props to customize the notification counter. */\n notificationCounterProps?: Omit<NotificationCounterProps, 'size'>;\n /** Whether to show the notification counter to the right of the label or not. */\n showNotificationCounter?: boolean;\n /**\n * The size of the tab.\n * @default md\n */\n size?: TabSize;\n /** The value of the tab. */\n value: string;\n /** Data test id for the tab. */\n 'data-testid'?: string;\n}\n\nexport const Tab = ({\n iconName,\n iconPosition = 'left',\n label,\n notificationCounterProps,\n showNotificationCounter,\n size = 'md',\n ['data-testid']: dataTestId = 'kibble-tab',\n ...rest\n}: TabProps): React.JSX.Element => {\n return (\n <Tabs.Trigger className=\"Tab\" data-testid={dataTestId} {...rest}>\n {!!iconName && iconPosition === 'left' && (\n <Icon\n className=\"Tab__Icon\"\n data-testid={`${dataTestId}-icon-left`}\n name={iconName}\n size={size}\n variant=\"default\"\n />\n )}\n <Heading as=\"span\" className=\"Tab__Label\" data-testid={`${dataTestId}-label`} size={tabLabelSize[size]}>\n {label}\n </Heading>\n {!!iconName && iconPosition === 'right' && (\n <Icon className=\"Tab__Icon\" data-testid={`${dataTestId}-icon-right`} name={iconName} size={size} />\n )}\n {showNotificationCounter && (\n <NotificationCounter\n className=\"Tab__NotificationCounter\"\n data-testid={`${dataTestId}-notification-counter`}\n {...notificationCounterProps}\n size={tabNotificationCounterSize[size]}\n />\n )}\n </Tabs.Trigger>\n );\n};\n","import React from 'react';\nimport { Tabs as CTabs } from '@chakra-ui/react/tabs';\nimport { TabSize } from './components/Tab/tab.types';\nimport { Tab, TabProps } from './components/Tab/tab.component';\nimport { Alignment } from 'shared/types/alignment';\n\nexport interface TabsProps extends Omit<CTabs.RootProps, 'onChange' | 'variant'> {\n /** Alignment of the tabs. */\n align?: Alignment;\n /** Callback function when the tab changes. */\n onChange?: (value: string) => void;\n /**\n * When true, the tab list scrolls horizontally instead of wrapping or overflowing.\n * @default false\n */\n scrollable?: boolean;\n /**\n * Size of the tabs.\n * @default md\n */\n size?: TabSize;\n /** Array of tabs. Each tab should have a value prop. */\n tabs: TabProps[];\n /** Array of tab contents, each tab content should have a value prop that matches the value of their corresponding tab. */\n tabsContent?: CTabs.ContentProps[];\n /**\n * Data test id for the tabs.\n * @default kibble-tabs\n */\n 'data-testid'?: string;\n /** The current value of the tabs. */\n value?: string | null;\n}\n\nexport const Tabs = ({\n align = 'start',\n onChange,\n scrollable = false,\n size = 'md',\n tabs,\n tabsContent,\n ['data-testid']: dataTestId = 'kibble-tabs',\n ...rest\n}: TabsProps): React.JSX.Element => {\n return (\n <CTabs.Root\n className=\"Tabs\"\n data-testid={dataTestId}\n justify={align || rest.justify}\n size={size}\n onValueChange={({ value }) => onChange?.(value)}\n {...rest}\n >\n <CTabs.List\n className=\"Tabs__List\"\n data-testid={`${dataTestId}-trigger-list`}\n {...(scrollable && {\n css: { overflowX: 'auto', flexWrap: 'nowrap', scrollbarWidth: 'none' },\n })}\n >\n {tabs.map((tab, index) => (\n <Tab key={`tab-${index}`} {...tab} data-testid={`${dataTestId}-trigger-${tab.value}`} size={size} />\n ))}\n </CTabs.List>\n {!!tabsContent &&\n tabsContent.map((tabContent, index) => (\n <CTabs.Content\n key={`${dataTestId}-tabContent-${index}`}\n data-testid={`${dataTestId}-content-${tabs[index].value}`}\n {...tabContent}\n />\n ))}\n </CTabs.Root>\n );\n};\n","export const tabSizes = ['xs', 'sm', 'md', 'lg'] as const;\nexport type TabSize = (typeof tabSizes)[number];\n\nexport const tabIconPositions = ['left', 'right'] as const;\nexport type TabIconPosition = (typeof tabIconPositions)[number];\n"],"names":["useDebounce","value","delay","debouncedValue","setDebouncedValue","useState","useEffect","timer","TabsProvider","useTabsContext","createContext","TabContent","forwardRef","props","ref","contentProps","localProps","createSplitProps","tabs","renderStrategyProps","useRenderStrategyPropsContext","presence","usePresence","mergedProps","mergeProps","jsx","PresenceProvider","ark","composeRefs","TabIndicator","TabList","TabTrigger","tabProps","anatomy","createAnatomy","parts","getRootId","ctx","getListId","getContentId","id","getTriggerId","getIndicatorId","getListEl","getContentEl","getTriggerEl","getIndicatorEl","getElements","selector","queryAll","getFirstTriggerEl","first","getLastTriggerEl","last","getNextTriggerEl","opts","nextById","getPrevTriggerEl","prevById","getOffsetRect","el","getRectById","tab","itemById","resolveRect","rect","connect","service","normalize","state","send","context","prop","scope","translations","focused","isVertical","isHorizontal","composite","getTriggerState","props2","fromValue","dataAttr","event","isSelfTarget","isComposingEvent","keyMap","key","getEventKey","exec","disabled","triggerState","isOpeningInNewTab","isSafari","selected","indicatorRect","indicatorTransition","createMachine","setup","machine","details","clickIfLink","bindable","track","action","raf","focusedValue","flush","nullable","triggerEl","contentEl","getFocusables","refs","cleanup","nextTick","indicatorEl","indicatorCleanup","trackElementRect","rects","isAnchorElement","createProps","useTabs","useId","getRootNode","useEnvironmentContext","dir","useLocaleContext","machineProps","useMachine","tabs.machine","tabs.connect","normalizeProps","TabsRoot","tabsProps","splitRenderStrategyProps","useTabsProps","localprops","RenderStrategyPropsProvider","TabsRootProvider","withProvider","withContext","createSlotRecipeContext","Tabs.RootProvider","Tabs.Root","TabsTrigger","Tabs.Trigger","TabsContent","Tabs.Content","TabsList","Tabs.List","Tabs.Indicator","tabNotificationCounterSize","tabLabelSize","Tab","iconName","iconPosition","label","notificationCounterProps","showNotificationCounter","size","dataTestId","rest","jsxs","Icon","Heading","NotificationCounter","Tabs","align","onChange","scrollable","tabsContent","CTabs.Root","CTabs.List","index","tabContent","CTabs.Content","tabSizes","tabIconPositions"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10]}