{"version":3,"sources":["../../src/tabs/Tabs.tsx","../../src/tabs/TabsContext.tsx","../../src/tabs/TabsRoot.styles.ts","../../src/tabs/TabsContent.tsx","../../src/tabs/TabsContent.styles.ts","../../src/tabs/TabsList.tsx","../../src/tabs/TabsList.styles.ts","../../src/tabs/useResizeObserver.ts","../../src/tabs/TabsTrigger.tsx","../../src/tabs/TabsTrigger.styles.ts","../../src/tabs/index.ts"],"sourcesContent":["import { Tabs as RadixTabs } from 'radix-ui'\nimport { type PropsWithChildren, Ref } from 'react'\n\nimport { TabsContext } from './TabsContext'\nimport { rootStyles } from './TabsRoot.styles'\nimport type { TabsTriggerVariantsProps } from './TabsTrigger.styles'\n\nexport interface TabsProps\n  extends Omit<RadixTabs.TabsProps, 'activationMode'>,\n    PropsWithChildren<TabsTriggerVariantsProps> {\n  /**\n   * Change the component to the HTML tag or custom component of the only child. This will merge the original component props with the props of the supplied element/component and change the underlying DOM node.\n   * @default false\n   */\n  asChild?: boolean\n  /**\n   * Whether to keep inactive tabs content in the DOM.\n   * @default false\n   */\n  forceMount?: boolean\n  ref?: Ref<HTMLDivElement>\n}\n\n/**\n * @deprecated\n */\nexport type TabsRootProps = TabsProps\n\nexport const Tabs = ({\n  intent = 'basic',\n  size = 'md',\n  /**\n   * Default Radix Primitive values\n   * see https://www.radix-ui.com/docs/primitives/components/tabs#root\n   */\n  asChild = false,\n  forceMount = false,\n  orientation = 'horizontal',\n  children,\n  className,\n  ref,\n  ...rest\n}: TabsProps) => {\n  return (\n    <TabsContext.Provider\n      value={{\n        intent,\n        size,\n        orientation,\n        forceMount,\n      }}\n    >\n      <RadixTabs.Root\n        ref={ref}\n        asChild={asChild}\n        orientation={orientation}\n        className={rootStyles({ className })}\n        data-spark-component=\"tabs\"\n        activationMode=\"automatic\"\n        {...rest}\n      >\n        {children}\n      </RadixTabs.Root>\n    </TabsContext.Provider>\n  )\n}\n\nTabs.displayName = 'Tabs'\n","import { Tabs as RadixTabs } from 'radix-ui'\nimport { createContext, useContext } from 'react'\n\nimport type { TabsTriggerVariantsProps } from './TabsTrigger.styles'\n\nexport type TabsContextInterface = TabsTriggerVariantsProps &\n  Pick<RadixTabs.TabsProps, 'orientation'> & { forceMount?: boolean }\n\nexport const TabsContext = createContext<TabsContextInterface>({} as TabsContextInterface)\n\nexport const useTabsContext = () => {\n  const context = useContext(TabsContext)\n\n  if (!context) {\n    throw Error('useTabsContext must be used within a TabsContext Provider')\n  }\n\n  return context\n}\n","import { cva } from 'class-variance-authority'\n\nexport const rootStyles = cva([\n  'flex',\n  'data-[orientation=horizontal]:flex-col',\n  'data-[orientation=vertical]:flex-row',\n  'max-w-full',\n])\n","import { Tabs as RadixTabs } from 'radix-ui'\nimport { type PropsWithChildren, Ref } from 'react'\n\nimport { contentStyles } from './TabsContent.styles'\nimport { useTabsContext } from './TabsContext'\n\nexport interface TabsContentProps\n  extends PropsWithChildren<Omit<RadixTabs.TabsContentProps, 'forceMount'>> {\n  /**\n   * A unique value that associates the content with a trigger.\n   */\n  value: string\n  /**\n   * Change the component to the HTML tag or custom component of the only child. This will merge the original component props with the props of the supplied element/component and change the underlying DOM node.\n   * @default false\n   */\n  asChild?: boolean\n  /**\n   * Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries.\n   */\n  forceMount?: true\n  ref?: Ref<HTMLDivElement>\n}\n\nexport const TabsContent = ({\n  /**\n   * Default Radix Primitive values\n   * see https://www.radix-ui.com/docs/primitives/components/tabs#content\n   */\n  children,\n  asChild = false,\n  className,\n  ref,\n  ...rest\n}: TabsContentProps) => {\n  const { forceMount } = useTabsContext()\n\n  return (\n    <RadixTabs.Content\n      data-spark-component=\"tabs-content\"\n      ref={ref}\n      forceMount={forceMount || rest.forceMount}\n      className={contentStyles({ className, forceMount })}\n      asChild={asChild}\n      {...rest}\n    >\n      {children}\n    </RadixTabs.Content>\n  )\n}\n\nTabsContent.displayName = 'Tabs.Content'\n","import { cva } from 'class-variance-authority'\n\nexport const contentStyles = cva(['w-full p-lg', 'focus-visible:u-outline-inset'], {\n  variants: {\n    forceMount: {\n      true: 'data-[state=inactive]:hidden',\n      false: '',\n    },\n  },\n})\n","/* eslint-disable max-lines-per-function */\nimport { ArrowVerticalLeft } from '@spark-ui/icons/ArrowVerticalLeft'\nimport { ArrowVerticalRight } from '@spark-ui/icons/ArrowVerticalRight'\nimport { Tabs as RadixTabs } from 'radix-ui'\nimport { type ReactElement, Ref, useEffect, useRef, useState } from 'react'\n\nimport { Button } from '../button'\nimport { Icon } from '../icon'\nimport { useTabsContext } from './TabsContext'\nimport { listStyles, navigationArrowStyles, wrapperStyles } from './TabsList.styles'\nimport { useResizeObserver } from './useResizeObserver'\n\nexport interface TabsListProps extends Omit<RadixTabs.TabsListProps, 'children'> {\n  /**\n   * Change the component to the HTML tag or custom component of the only child. This will merge the original component props with the props of the supplied element/component and change the underlying DOM node.\n   * @default false\n   */\n  asChild?: boolean\n  /**\n   * When true, keyboard navigation will loop from last tab to first, and vice versa.\n   * @default false\n   */\n  loop?: boolean\n  children: ReactElement[] | ReactElement\n  ref?: Ref<HTMLDivElement>\n}\n\ntype ArrowState = 'visible' | 'hidden' | 'disabled'\n\nexport const TabsList = ({\n  /**\n   * Default Radix Primitive values\n   * see https://www.radix-ui.com/docs/primitives/components/tabs#list\n   */\n  asChild = false,\n  loop = false,\n  children,\n  className,\n  ref,\n  ...rest\n}: TabsListProps) => {\n  const wrapperRef = useRef<HTMLDivElement>(null)\n  const innerRef = useRef(null)\n  const listRef = ref || innerRef\n  const { orientation } = useTabsContext()\n\n  const { width } = useResizeObserver(wrapperRef)\n\n  const [arrows, setArrows] = useState<Record<'prev' | 'next', ArrowState>>({\n    prev: 'hidden',\n    next: 'hidden',\n  })\n\n  useEffect(() => {\n    /**\n     * Show/hide arrows\n     */\n    if (typeof listRef === 'function' || !listRef.current) {\n      return\n    }\n\n    if (orientation !== 'horizontal') {\n      setArrows({ prev: 'hidden', next: 'hidden' })\n    } else {\n      setArrows({\n        prev: listRef.current.scrollWidth > listRef.current.clientWidth ? 'visible' : 'hidden',\n        next: listRef.current.scrollWidth > listRef.current.clientWidth ? 'visible' : 'hidden',\n      })\n    }\n  }, [orientation, listRef, width])\n\n  useEffect(() => {\n    /**\n     * Enable/disable arrows\n     */\n    if (typeof listRef === 'function' || !listRef.current || arrows.prev === 'hidden' || loop) {\n      return\n    }\n\n    const toggleArrowsVisibility = (target: HTMLDivElement) => {\n      setArrows({\n        prev: target.scrollLeft > 0 ? 'visible' : 'disabled',\n        next: target.scrollLeft + target.clientWidth < target.scrollWidth ? 'visible' : 'disabled',\n      })\n    }\n\n    const currentList = listRef.current\n\n    toggleArrowsVisibility(currentList)\n\n    currentList.addEventListener('scroll', ({ target }) =>\n      toggleArrowsVisibility(target as HTMLDivElement)\n    )\n\n    return () =>\n      currentList.removeEventListener('scroll', ({ target }) =>\n        toggleArrowsVisibility(target as HTMLDivElement)\n      )\n  }, [listRef, arrows.prev, loop])\n\n  const handlePrevClick = () => {\n    if (typeof listRef === 'function' || !listRef.current) {\n      return\n    }\n\n    const shouldLoopForward = loop && listRef.current.scrollLeft <= 0\n\n    listRef.current.scrollTo({\n      left: shouldLoopForward\n        ? listRef.current.scrollLeft + listRef.current.scrollWidth - listRef.current.clientWidth\n        : listRef.current.scrollLeft - listRef.current.clientWidth,\n      behavior: 'smooth',\n    })\n  }\n\n  const handleNextClick = () => {\n    if (typeof listRef === 'function' || !listRef.current) {\n      return\n    }\n\n    const shouldLoopBackward =\n      loop &&\n      listRef.current.scrollLeft + listRef.current.clientWidth >= listRef.current.scrollWidth\n\n    listRef.current.scrollTo({\n      left: shouldLoopBackward ? 0 : listRef.current.scrollLeft + listRef.current.clientWidth,\n      behavior: 'smooth',\n    })\n  }\n\n  return (\n    <div className={wrapperStyles({ className })} ref={wrapperRef}>\n      {arrows.prev !== 'hidden' && (\n        <Button\n          shape=\"square\"\n          intent=\"surface\"\n          size=\"sm\"\n          className={navigationArrowStyles()}\n          onClick={handlePrevClick}\n          disabled={arrows.prev === 'disabled'}\n          aria-label=\"Scroll left\"\n        >\n          <Icon>\n            <ArrowVerticalLeft />\n          </Icon>\n        </Button>\n      )}\n\n      <RadixTabs.List\n        data-spark-component=\"tabs-list\"\n        ref={listRef}\n        className={listStyles()}\n        asChild={asChild}\n        loop={loop}\n        {...rest}\n      >\n        {children}\n      </RadixTabs.List>\n\n      {arrows.next !== 'hidden' && (\n        <Button\n          shape=\"square\"\n          intent=\"surface\"\n          size=\"sm\"\n          className={navigationArrowStyles()}\n          onClick={handleNextClick}\n          disabled={arrows.next === 'disabled'}\n          aria-label=\"Scroll right\"\n        >\n          <Icon>\n            <ArrowVerticalRight />\n          </Icon>\n        </Button>\n      )}\n    </div>\n  )\n}\n\nTabsList.displayName = 'Tabs.List'\n","import { cva } from 'class-variance-authority'\n\nexport const wrapperStyles = cva(['relative flex'])\n\nexport const listStyles = cva([\n  'flex w-full',\n  'data-[orientation=horizontal]:flex-row',\n  'data-[orientation=vertical]:flex-col',\n  'overflow-y-hidden u-no-scrollbar data-[orientation=vertical]:overflow-x-hidden',\n  'after:flex after:shrink after:grow after:border-outline',\n  'data-[orientation=horizontal]:after:border-b-sm',\n  'data-[orientation=vertical]:after:border-r-sm',\n])\n\nexport const navigationArrowStyles = cva([\n  'h-auto! flex-none',\n  'border-b-sm border-outline',\n  'outline-hidden',\n  'focus-visible:border-none focus-visible:bg-surface-hovered focus-visible:u-outline-inset!',\n])\n","import { type RefObject, useEffect, useRef, useState } from 'react'\n\ninterface Size {\n  width?: number\n  height?: number\n}\n\ntype ResizeCallback = (entry?: ResizeObserverEntry) => void\n\nexport const useResizeObserver = <T extends HTMLElement>(\n  target: RefObject<T | null> | T | null,\n  onResize?: ResizeCallback\n): Size => {\n  const [size, setSize] = useState<Size>({ width: undefined, height: undefined })\n  const resizeObserverRef = useRef<ResizeObserver>(null)\n  const resizeCallbackRef = useRef<ResizeCallback | undefined>(onResize)\n\n  useEffect(() => {\n    resizeCallbackRef.current = onResize\n  }, [onResize])\n\n  useEffect(() => {\n    const targetElm = target && 'current' in target ? target.current : target\n    if (!targetElm || resizeObserverRef.current) {\n      return\n    }\n\n    resizeObserverRef.current = new ResizeObserver(([entry]) => {\n      const { inlineSize: width, blockSize: height } = entry?.borderBoxSize?.[0] ?? {}\n      resizeCallbackRef.current?.(entry)\n\n      setSize({ width, height })\n    })\n\n    resizeObserverRef.current.observe(targetElm as unknown as HTMLElement)\n\n    return () => {\n      resizeObserverRef.current &&\n        resizeObserverRef.current.unobserve(targetElm as unknown as HTMLElement)\n    }\n  }, [target, resizeObserverRef, resizeCallbackRef])\n\n  return size\n}\n","import { Tabs as RadixTabs } from 'radix-ui'\nimport { type FocusEvent, Ref } from 'react'\n\nimport { useTabsContext } from './TabsContext'\nimport { triggerVariants } from './TabsTrigger.styles'\n\nexport interface TabsTriggerProps extends RadixTabs.TabsTriggerProps {\n  /**\n   * A unique value that associates the trigger with a content.\n   */\n  value: string\n  /**\n   * Change the component to the HTML tag or custom component of the only child. This will merge the original component props with the props of the supplied element/component and change the underlying DOM node.\n   * @default false\n   */\n  asChild?: boolean\n  /**\n   * When true, prevents the user from interacting with the tab.\n   * @default false\n   */\n  disabled?: boolean\n  ref?: Ref<HTMLButtonElement>\n}\n\nexport const TabsTrigger = ({\n  /**\n   * Default Radix Primitive values\n   * see https://www.radix-ui.com/docs/primitives/components/tabs#trigger\n   */\n  asChild = false,\n  value,\n  disabled = false,\n  children,\n  className,\n  ref,\n  ...rest\n}: TabsTriggerProps) => {\n  const { intent, size } = useTabsContext()\n\n  const scrollToFocusedElement = ({ target }: FocusEvent<HTMLButtonElement>) =>\n    target.scrollIntoView({\n      behavior: 'smooth',\n      block: 'nearest',\n      inline: 'nearest',\n    })\n\n  return (\n    <RadixTabs.Trigger\n      data-spark-component=\"tabs-trigger\"\n      ref={ref}\n      className={triggerVariants({ intent, size, className })}\n      asChild={asChild}\n      disabled={disabled}\n      value={value}\n      onFocus={scrollToFocusedElement}\n      {...rest}\n    >\n      {children}\n    </RadixTabs.Trigger>\n  )\n}\n\nTabsTrigger.displayName = 'Tabs.Trigger'\n","import { makeVariants } from '@spark-ui/internal-utils'\nimport { cva, VariantProps } from 'class-variance-authority'\n\nexport const triggerVariants = cva(\n  [\n    'px-md',\n    'relative flex flex-none items-center',\n    'border-outline',\n    'hover:not-disabled:bg-surface-hovered',\n    'after:absolute',\n    'data-[state=inactive]:not-disabled:cursor-pointer',\n    'data-[orientation=horizontal]:border-b-sm data-[orientation=horizontal]:after:inset-x-0 data-[orientation=horizontal]:after:bottom-[-1px] data-[orientation=horizontal]:after:h-sz-2',\n    'data-[orientation=vertical]:border-r-sm data-[orientation=vertical]:after:inset-y-0 data-[orientation=vertical]:after:right-[-1px] data-[orientation=vertical]:after:w-sz-2',\n    'focus-visible:border-none focus-visible:bg-surface-hovered focus-visible:u-outline-inset',\n    'disabled:cursor-not-allowed disabled:opacity-dim-3',\n    'gap-md [&>*:first-child]:ml-md [&>*:last-child]:mr-md',\n    '[&>svg:last-child:first-child]:mx-auto',\n  ],\n  {\n    variants: {\n      /**\n       * Change the color scheme of the tabs\n       * @default basic\n       */\n      intent: makeVariants<'intent', ['main', 'support', 'basic']>({\n        main: ['data-[state=active]:text-main data-[state=active]:after:bg-main'],\n        support: ['data-[state=active]:text-support data-[state=active]:after:bg-support'],\n        basic: ['data-[state=active]:text-basic data-[state=active]:after:bg-basic'],\n      }),\n      /**\n       * Change the size of the tabs\n       * @default md\n       */\n      size: {\n        xs: ['h-sz-32 min-w-sz-32 text-caption'],\n        sm: ['h-sz-36 min-w-sz-36 text-body-2'],\n        md: ['h-sz-40 min-w-sz-40 text-body-1'],\n      },\n    },\n    defaultVariants: {\n      intent: 'basic',\n      size: 'md',\n    },\n  }\n)\n\nexport type TabsTriggerVariantsProps = VariantProps<typeof triggerVariants>\n","import { Tabs as Root } from './Tabs'\nimport { TabsContent as Content } from './TabsContent'\nimport { TabsList as List } from './TabsList'\nimport { TabsTrigger as Trigger } from './TabsTrigger'\n\nexport const Tabs: typeof Root & {\n  List: typeof List\n  Trigger: typeof Trigger\n  Content: typeof Content\n} = Object.assign(Root, {\n  List,\n  Trigger,\n  Content,\n})\n\nTabs.displayName = 'Tabs'\nList.displayName = 'Tabs.List'\nTrigger.displayName = 'Tabs.Trigger'\nContent.displayName = 'Tabs.Content'\n\nexport { type TabsContentProps } from './TabsContent'\nexport { type TabsListProps } from './TabsList'\nexport { type TabsProps, type TabsRootProps } from './Tabs'\nexport { type TabsTriggerProps } from './TabsTrigger'\n"],"mappings":"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","names":["RadixTabs","cva","jsx","RadixTabs","RadixTabs","useEffect","useRef","useState","cva","jsx","useRef","useState","useEffect","RadixTabs","RadixTabs","cva","jsx","RadixTabs","Tabs"]}