@alkimi.org/ui-kit 0.13.1 → 0.13.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/COMPONENTS.md +1 -1
  2. package/dist/{chunk-QOEM7ZRV.mjs → chunk-CXU655N7.mjs} +2 -2
  3. package/dist/{chunk-4DRIPZWE.mjs → chunk-GI7CX63V.mjs} +2 -2
  4. package/dist/{chunk-53P3PXF7.js → chunk-JFGDGMTA.js} +2 -2
  5. package/dist/chunk-JFGDGMTA.js.map +1 -0
  6. package/dist/chunk-NU2US7UW.mjs +3 -0
  7. package/dist/chunk-NU2US7UW.mjs.map +1 -0
  8. package/dist/{chunk-RUEPYIWM.mjs → chunk-O5KQEJGL.mjs} +2 -2
  9. package/dist/{chunk-RUEPYIWM.mjs.map → chunk-O5KQEJGL.mjs.map} +1 -1
  10. package/dist/{chunk-SPGHRCUD.js → chunk-S6HVCOPV.js} +2 -2
  11. package/dist/{chunk-SPGHRCUD.js.map → chunk-S6HVCOPV.js.map} +1 -1
  12. package/dist/chunk-WKRZIVSX.js +3 -0
  13. package/dist/{chunk-VBPIXXIA.js.map → chunk-WKRZIVSX.js.map} +1 -1
  14. package/dist/{chunk-UW73WIQU.js → chunk-Z56XUN4K.js} +2 -2
  15. package/dist/{chunk-UW73WIQU.js.map → chunk-Z56XUN4K.js.map} +1 -1
  16. package/dist/components/combobox.js +1 -1
  17. package/dist/components/combobox.mjs +1 -1
  18. package/dist/components/command.js +1 -1
  19. package/dist/components/command.mjs +1 -1
  20. package/dist/components/dialog.js +1 -1
  21. package/dist/components/dialog.mjs +1 -1
  22. package/dist/components/tabs.js +1 -1
  23. package/dist/components/tabs.mjs +1 -1
  24. package/dist/index.css +1 -1
  25. package/dist/index.css.map +1 -1
  26. package/dist/index.js +1 -1
  27. package/dist/index.mjs +1 -1
  28. package/dist/styles.css +1 -1
  29. package/dist/styles.css.map +1 -1
  30. package/package.json +1 -1
  31. package/dist/chunk-53P3PXF7.js.map +0 -1
  32. package/dist/chunk-VBPIXXIA.js +0 -3
  33. package/dist/chunk-WZ5F5VT3.mjs +0 -3
  34. package/dist/chunk-WZ5F5VT3.mjs.map +0 -1
  35. /package/dist/{chunk-QOEM7ZRV.mjs.map → chunk-CXU655N7.mjs.map} +0 -0
  36. /package/dist/{chunk-4DRIPZWE.mjs.map → chunk-GI7CX63V.mjs.map} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alkimi.org/ui-kit",
3
- "version": "0.13.1",
3
+ "version": "0.13.3",
4
4
  "packageManager": "pnpm@10.26.0",
5
5
  "description": "A React component library built with shadcn/ui and Tailwind CSS",
6
6
  "main": "./dist/index.js",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/Users/aktoriukas/Documents/Projects/alkimi/alkimi-ui-kit/dist/chunk-53P3PXF7.js","../src/components/dialog.tsx"],"names":["DialogContentContext","Dialog","children","controlledOpen","controlledOnOpenChange","props","internalOpen","setInternalOpen","isControlled","open","onOpenChange","newOpen","jsx","DialogTrigger","DialogPortal","DialogClose","DialogOverlay","className","ref","cn","DialogContent","showCloseButton","closeOnOverlayClick","isDesktop","useMediaQuery","context","jsxs","e","Button","X","DrawerPrimitive","DialogHeader","DialogFooter","DialogTitle","DialogDescription"],"mappings":"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","file":"/Users/aktoriukas/Documents/Projects/alkimi/alkimi-ui-kit/dist/chunk-53P3PXF7.js","sourcesContent":[null,"\"use client\"\n\nimport * as React from \"react\"\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\nimport { Drawer as DrawerPrimitive } from \"vaul\"\nimport { X } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"./button\"\nimport { useMediaQuery } from \"@/lib/use-media-query\"\n\ninterface DialogContentContextValue {\n open?: boolean\n onOpenChange?: (open: boolean) => void\n}\n\nconst DialogContentContext = React.createContext<DialogContentContextValue>({})\n\nconst Dialog = ({\n children,\n open: controlledOpen,\n onOpenChange: controlledOnOpenChange,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) => {\n // Use internal state when Dialog is uncontrolled\n const [internalOpen, setInternalOpen] = React.useState(false)\n\n const isControlled = controlledOpen !== undefined\n const open = isControlled ? controlledOpen : internalOpen\n const onOpenChange = isControlled\n ? controlledOnOpenChange\n : (newOpen: boolean) => {\n setInternalOpen(newOpen)\n }\n\n return (\n <DialogPrimitive.Root open={open} onOpenChange={onOpenChange} {...props}>\n <DialogContentContext.Provider value={{ open, onOpenChange }}>\n {children}\n </DialogContentContext.Provider>\n </DialogPrimitive.Root>\n )\n}\nDialog.displayName = \"Dialog\"\n\nconst DialogTrigger = DialogPrimitive.Trigger\n\nconst DialogPortal = DialogPrimitive.Portal\n\nconst DialogClose = DialogPrimitive.Close\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-background/80 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n />\n))\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean\n closeOnOverlayClick?: boolean\n }\n>(\n (\n {\n className,\n children,\n showCloseButton = true,\n closeOnOverlayClick = true,\n ...props\n },\n ref\n ) => {\n const isDesktop = useMediaQuery(\"md\")\n const context = React.useContext(DialogContentContext)\n\n if (!isDesktop) {\n // Mobile: Render as bottom drawer\n return (\n <DialogPortal>\n <DrawerPrimitive.Root\n open={context.open}\n onOpenChange={context.onOpenChange}\n dismissible={closeOnOverlayClick}\n >\n <DrawerPrimitive.Portal>\n <DrawerPrimitive.Overlay className=\"fixed inset-0 z-50 bg-background/80 backdrop-blur-sm\" />\n <DrawerPrimitive.Content\n ref={ref as any}\n className={cn(\n \"fixed inset-x-0 bottom-0 z-50 mt-24 flex flex-col rounded-t-3xl border border-border bg-background shadow-lg outline-none\",\n className\n )}\n aria-describedby={undefined}\n onPointerDownOutside={(e) => {\n if (!closeOnOverlayClick) {\n e.preventDefault()\n }\n }}\n onEscapeKeyDown={(e) => {\n if (!closeOnOverlayClick) {\n e.preventDefault()\n }\n }}\n {...props}\n >\n <div className=\"mx-auto mt-2 h-2 w-[100px] rounded-full bg-muted\" />\n {showCloseButton && (\n <Button\n variant=\"secondary\"\n size=\"icon\"\n onClick={() => context.onOpenChange?.(false)}\n className=\"absolute right-4 top-4 rounded-full transition-opacity hover:opacity-100 focus:outline-none\"\n >\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </Button>\n )}\n <div>{children}</div>\n </DrawerPrimitive.Content>\n </DrawerPrimitive.Portal>\n </DrawerPrimitive.Root>\n </DialogPortal>\n )\n }\n\n // Desktop: Render as centered dialog\n return (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-border bg-background shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 sm:rounded-3xl overflow-auto\",\n className\n )}\n onPointerDownOutside={(e) => {\n if (!closeOnOverlayClick) {\n e.preventDefault()\n }\n }}\n onEscapeKeyDown={(e) => {\n if (!closeOnOverlayClick) {\n e.preventDefault()\n }\n }}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close asChild>\n <Button\n variant=\"secondary\"\n size=\"icon\"\n className=\"absolute right-4 top-4 rounded-full transition-opacity hover:opacity-100 focus:outline-none disabled:pointer-events-none\"\n >\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </Button>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n )\n }\n)\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-left md:text-center\",\n className\n )}\n {...props}\n />\n)\nDialogHeader.displayName = \"DialogHeader\"\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n)\nDialogFooter.displayName = \"DialogFooter\"\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n))\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n}\n"]}
@@ -1,3 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }"use client";
2
- var _chunkFUYXCJOQjs = require('./chunk-FUYXCJOQ.js');var _reacttabs = require('@radix-ui/react-tabs'); var e = _interopRequireWildcard(_reacttabs);var _react = require('react');var _jsxruntime = require('react/jsx-runtime');var C=e.Root,y= exports.b =_react.forwardRef.call(void 0, ({className:r,...s},t)=>{let[l,d]=_react.useState.call(void 0, {left:0,width:0}),n=_react.useRef.call(void 0, null);_react.useEffect.call(void 0, ()=>{let i=()=>{if(!n.current)return;let f=n.current.querySelector('[data-state="active"]');if(f){let v=n.current.getBoundingClientRect(),m=f.getBoundingClientRect();d({left:m.left-v.left,width:m.width})}};i();let u=new MutationObserver(i);return n.current&&u.observe(n.current,{attributes:!0,attributeFilter:["data-state"],subtree:!0}),window.addEventListener("resize",i),()=>{u.disconnect(),window.removeEventListener("resize",i)}},[]);let b=_react.useCallback.call(void 0, i=>{n.current=i,typeof t=="function"?t(i):t&&(t.current=i)},[t]);return _jsxruntime.jsxs.call(void 0, e.List,{ref:b,className:_chunkFUYXCJOQjs.a.call(void 0, "relative inline-flex items-center justify-center rounded-4xl bg-muted p-1 gap-1 text-muted-foreground",r),...s,children:[_jsxruntime.jsx.call(void 0, "span",{className:"absolute h-[calc(100%-0.5rem)] rounded-4xl bg-background shadow-sm transition-all duration-200 ease-out",style:{left:`${l.left}px`,width:`${l.width}px`}}),s.children]})});y.displayName=e.List.displayName;var P=_react.forwardRef.call(void 0, ({className:r,...s},t)=>_jsxruntime.jsx.call(void 0, e.Trigger,{ref:t,className:_chunkFUYXCJOQjs.a.call(void 0, "cursor-pointer relative inline-flex items-center justify-center whitespace-nowrap data-[state=inactive]:not-disabled:hover:bg-secondary rounded-4xl px-3 py-1 text-sm font-medium ring-offset-background transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 active:opacity-50 disabled:cursor-not-allowed disabled:opacity-50 data-[state=active]:text-foreground z-10",r),...s}));P.displayName=e.Trigger.displayName;var w=_react.forwardRef.call(void 0, ({className:r,...s},t)=>_jsxruntime.jsx.call(void 0, e.Content,{ref:t,className:_chunkFUYXCJOQjs.a.call(void 0, "mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",r),...s}));w.displayName=e.Content.displayName;exports.a = C; exports.b = y; exports.c = P; exports.d = w;
3
- //# sourceMappingURL=chunk-VBPIXXIA.js.map
@@ -1,3 +0,0 @@
1
- "use client";
2
- import{a}from"./chunk-S5TKCF6T.mjs";import*as e from"@radix-ui/react-tabs";import{forwardRef as o,useCallback as p,useEffect as g,useRef as T,useState as R}from"react";import{jsx as c,jsxs as h}from"react/jsx-runtime";var C=e.Root,y=o(({className:r,...s},t)=>{let[l,d]=R({left:0,width:0}),n=T(null);g(()=>{let i=()=>{if(!n.current)return;let f=n.current.querySelector('[data-state="active"]');if(f){let v=n.current.getBoundingClientRect(),m=f.getBoundingClientRect();d({left:m.left-v.left,width:m.width})}};i();let u=new MutationObserver(i);return n.current&&u.observe(n.current,{attributes:!0,attributeFilter:["data-state"],subtree:!0}),window.addEventListener("resize",i),()=>{u.disconnect(),window.removeEventListener("resize",i)}},[]);let b=p(i=>{n.current=i,typeof t=="function"?t(i):t&&(t.current=i)},[t]);return h(e.List,{ref:b,className:a("relative inline-flex items-center justify-center rounded-4xl bg-muted p-1 gap-1 text-muted-foreground",r),...s,children:[c("span",{className:"absolute h-[calc(100%-0.5rem)] rounded-4xl bg-background shadow-sm transition-all duration-200 ease-out",style:{left:`${l.left}px`,width:`${l.width}px`}}),s.children]})});y.displayName=e.List.displayName;var P=o(({className:r,...s},t)=>c(e.Trigger,{ref:t,className:a("cursor-pointer relative inline-flex items-center justify-center whitespace-nowrap data-[state=inactive]:not-disabled:hover:bg-secondary rounded-4xl px-3 py-1 text-sm font-medium ring-offset-background transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 active:opacity-50 disabled:cursor-not-allowed disabled:opacity-50 data-[state=active]:text-foreground z-10",r),...s}));P.displayName=e.Trigger.displayName;var w=o(({className:r,...s},t)=>c(e.Content,{ref:t,className:a("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",r),...s}));w.displayName=e.Content.displayName;export{C as a,y as b,P as c,w as d};
3
- //# sourceMappingURL=chunk-WZ5F5VT3.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/tabs.tsx"],"sourcesContent":["import * as TabsPrimitive from \"@radix-ui/react-tabs\"\n\nimport { cn } from \"@/lib/utils\"\nimport { forwardRef, useCallback, useEffect, useRef, useState } from \"react\"\n\nconst Tabs = TabsPrimitive.Root\n\nconst TabsList = forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => {\n const [indicatorStyle, setIndicatorStyle] = useState({\n left: 0,\n width: 0,\n })\n const listRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n const updateIndicator = () => {\n if (!listRef.current) return\n\n const activeTab = listRef.current.querySelector(\n '[data-state=\"active\"]'\n ) as HTMLElement\n\n if (activeTab) {\n const listRect = listRef.current.getBoundingClientRect()\n const tabRect = activeTab.getBoundingClientRect()\n\n setIndicatorStyle({\n left: tabRect.left - listRect.left,\n width: tabRect.width,\n })\n }\n }\n\n updateIndicator()\n\n // Use MutationObserver to detect when data-state changes\n const observer = new MutationObserver(updateIndicator)\n\n if (listRef.current) {\n observer.observe(listRef.current, {\n attributes: true,\n attributeFilter: [\"data-state\"],\n subtree: true,\n })\n }\n\n // Also update on window resize\n window.addEventListener(\"resize\", updateIndicator)\n\n return () => {\n observer.disconnect()\n window.removeEventListener(\"resize\", updateIndicator)\n }\n }, [])\n\n // Combine refs\n const combinedRef = useCallback(\n (node: HTMLDivElement | null) => {\n ;(listRef as React.MutableRefObject<HTMLDivElement | null>).current = node\n\n if (typeof ref === \"function\") {\n ref(node)\n } else if (ref) {\n ;(ref as React.MutableRefObject<HTMLDivElement | null>).current = node\n }\n },\n [ref]\n )\n\n return (\n <TabsPrimitive.List\n ref={combinedRef}\n className={cn(\n \"relative inline-flex items-center justify-center rounded-4xl bg-muted p-1 gap-1 text-muted-foreground\",\n className\n )}\n {...props}\n >\n {/* Animated indicator */}\n <span\n className=\"absolute h-[calc(100%-0.5rem)] rounded-4xl bg-background shadow-sm transition-all duration-200 ease-out\"\n style={{\n left: `${indicatorStyle.left}px`,\n width: `${indicatorStyle.width}px`,\n }}\n />\n {props.children}\n </TabsPrimitive.List>\n )\n})\nTabsList.displayName = TabsPrimitive.List.displayName\n\nconst TabsTrigger = forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n \"cursor-pointer relative inline-flex items-center justify-center whitespace-nowrap data-[state=inactive]:not-disabled:hover:bg-secondary rounded-4xl px-3 py-1 text-sm font-medium ring-offset-background transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 active:opacity-50 disabled:cursor-not-allowed disabled:opacity-50 data-[state=active]:text-foreground z-10\",\n className\n )}\n {...props}\n />\n))\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName\n\nconst TabsContent = forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n \"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className\n )}\n {...props}\n />\n))\nTabsContent.displayName = TabsPrimitive.Content.displayName\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent }\n"],"mappings":";oCAAA,UAAYA,MAAmB,uBAG/B,OAAS,cAAAC,EAAY,eAAAC,EAAa,aAAAC,EAAW,UAAAC,EAAQ,YAAAC,MAAgB,QAsEjE,OASE,OAAAC,EATF,QAAAC,MAAA,oBApEJ,IAAMC,EAAqB,OAErBC,EAAWR,EAGf,CAAC,CAAE,UAAAS,EAAW,GAAGC,CAAM,EAAGC,IAAQ,CAClC,GAAM,CAACC,EAAgBC,CAAiB,EAAIT,EAAS,CACnD,KAAM,EACN,MAAO,CACT,CAAC,EACKU,EAAUX,EAAuB,IAAI,EAE3CD,EAAU,IAAM,CACd,IAAMa,EAAkB,IAAM,CAC5B,GAAI,CAACD,EAAQ,QAAS,OAEtB,IAAME,EAAYF,EAAQ,QAAQ,cAChC,uBACF,EAEA,GAAIE,EAAW,CACb,IAAMC,EAAWH,EAAQ,QAAQ,sBAAsB,EACjDI,EAAUF,EAAU,sBAAsB,EAEhDH,EAAkB,CAChB,KAAMK,EAAQ,KAAOD,EAAS,KAC9B,MAAOC,EAAQ,KACjB,CAAC,CACH,CACF,EAEAH,EAAgB,EAGhB,IAAMI,EAAW,IAAI,iBAAiBJ,CAAe,EAErD,OAAID,EAAQ,SACVK,EAAS,QAAQL,EAAQ,QAAS,CAChC,WAAY,GACZ,gBAAiB,CAAC,YAAY,EAC9B,QAAS,EACX,CAAC,EAIH,OAAO,iBAAiB,SAAUC,CAAe,EAE1C,IAAM,CACXI,EAAS,WAAW,EACpB,OAAO,oBAAoB,SAAUJ,CAAe,CACtD,CACF,EAAG,CAAC,CAAC,EAGL,IAAMK,EAAcnB,EACjBoB,GAAgC,CAC7BP,EAA0D,QAAUO,EAElE,OAAOV,GAAQ,WACjBA,EAAIU,CAAI,EACCV,IACPA,EAAsD,QAAUU,EAEtE,EACA,CAACV,CAAG,CACN,EAEA,OACEL,EAAe,OAAd,CACC,IAAKc,EACL,UAAWE,EACT,wGACAb,CACF,EACC,GAAGC,EAGJ,UAAAL,EAAC,QACC,UAAU,0GACV,MAAO,CACL,KAAM,GAAGO,EAAe,IAAI,KAC5B,MAAO,GAAGA,EAAe,KAAK,IAChC,EACF,EACCF,EAAM,UACT,CAEJ,CAAC,EACDF,EAAS,YAA4B,OAAK,YAE1C,IAAMe,EAAcvB,EAGlB,CAAC,CAAE,UAAAS,EAAW,GAAGC,CAAM,EAAGC,IAC1BN,EAAe,UAAd,CACC,IAAKM,EACL,UAAWW,EACT,ybACAb,CACF,EACC,GAAGC,EACN,CACD,EACDa,EAAY,YAA4B,UAAQ,YAEhD,IAAMC,EAAcxB,EAGlB,CAAC,CAAE,UAAAS,EAAW,GAAGC,CAAM,EAAGC,IAC1BN,EAAe,UAAd,CACC,IAAKM,EACL,UAAWW,EACT,kIACAb,CACF,EACC,GAAGC,EACN,CACD,EACDc,EAAY,YAA4B,UAAQ","names":["TabsPrimitive","forwardRef","useCallback","useEffect","useRef","useState","jsx","jsxs","Tabs","TabsList","className","props","ref","indicatorStyle","setIndicatorStyle","listRef","updateIndicator","activeTab","listRect","tabRect","observer","combinedRef","node","cn","TabsTrigger","TabsContent"]}