dgz-ui 1.4.7 → 1.4.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/breadcrumb/index.cjs.js +1 -1
- package/dist/breadcrumb/index.es.js +1 -1
- package/dist/carousel/index.cjs.js.map +1 -1
- package/dist/carousel/index.es.js.map +1 -1
- package/dist/chunks/alert-dialog-CI_hZyxN.es.js.map +1 -1
- package/dist/chunks/alert-dialog-CYT3LDhH.cjs.js.map +1 -1
- package/dist/chunks/{breadcrumb-RLwumNZG.cjs.js → breadcrumb-BoUD4-AY.cjs.js} +2 -2
- package/dist/chunks/breadcrumb-BoUD4-AY.cjs.js.map +1 -0
- package/dist/chunks/{breadcrumb-D-Wgwp2Z.es.js → breadcrumb-CRK9Ctmz.es.js} +6 -6
- package/dist/chunks/breadcrumb-CRK9Ctmz.es.js.map +1 -0
- package/dist/chunks/card-B87RYuvO.es.js.map +1 -1
- package/dist/chunks/card-Dokrjefn.cjs.js.map +1 -1
- package/dist/chunks/collapsible-CBOSWBKB.cjs.js.map +1 -1
- package/dist/chunks/collapsible-Ddd6kxXS.es.js.map +1 -1
- package/dist/chunks/dialog-B3q0NLcE.es.js.map +1 -1
- package/dist/chunks/dialog-OejLEg29.cjs.js.map +1 -1
- package/dist/chunks/dropdown-menu-BNURsvIJ.cjs.js.map +1 -1
- package/dist/chunks/dropdown-menu-CJTcrFP2.es.js.map +1 -1
- package/dist/chunks/pagination-CLm98Oot.es.js.map +1 -1
- package/dist/chunks/pagination-DsZd3LTv.cjs.js.map +1 -1
- package/dist/chunks/popover-ChtTV2vy.es.js.map +1 -1
- package/dist/chunks/popover-cRDGBSyg.cjs.js.map +1 -1
- package/dist/chunks/scroll-area-sLp4wPce.cjs.js.map +1 -1
- package/dist/chunks/scroll-area-x2hiTYmL.es.js.map +1 -1
- package/dist/chunks/separator-DndNTVv8.es.js.map +1 -1
- package/dist/chunks/separator-uzP1VAwc.cjs.js.map +1 -1
- package/dist/chunks/skeleton-DV_2OytH.es.js.map +1 -1
- package/dist/chunks/skeleton-ZHnXbbz7.cjs.js.map +1 -1
- package/dist/chunks/table-C-g7CjMt.cjs.js.map +1 -1
- package/dist/chunks/table-QbNlEa1M.es.js.map +1 -1
- package/dist/chunks/tabs-BNEY7wMF.cjs.js.map +1 -1
- package/dist/chunks/tabs-DUuliV4A.es.js.map +1 -1
- package/dist/chunks/textarea-C2I19p_j.cjs.js.map +1 -1
- package/dist/chunks/textarea-D9gE4ALW.es.js.map +1 -1
- package/dist/chunks/timepicker-Ba47st2A.cjs.js.map +1 -1
- package/dist/chunks/timepicker-tBjjq8Ap.es.js.map +1 -1
- package/dist/chunks/tooltip-DD-snel0.cjs.js.map +1 -1
- package/dist/chunks/tooltip-DHg9332v.es.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +1 -1
- package/dist/progress/index.cjs.js.map +1 -1
- package/dist/progress/index.es.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/types/stories/Button.d.ts +15 -0
- package/dist/types/stories/Button.d.ts.map +1 -0
- package/dist/types/stories/Button.stories.d.ts +24 -0
- package/dist/types/stories/Button.stories.d.ts.map +1 -0
- package/dist/types/stories/Header.d.ts +12 -0
- package/dist/types/stories/Header.d.ts.map +1 -0
- package/dist/types/stories/Header.stories.d.ts +19 -0
- package/dist/types/stories/Header.stories.d.ts.map +1 -0
- package/dist/types/stories/Page.d.ts +3 -0
- package/dist/types/stories/Page.d.ts.map +1 -0
- package/dist/types/stories/Page.stories.d.ts +13 -0
- package/dist/types/stories/Page.stories.d.ts.map +1 -0
- package/dist/types/types/element-data.type.d.ts +4 -0
- package/dist/types/types/element-data.type.d.ts.map +1 -1
- package/dist/types/ui/alert-dialog/alert-dialog.d.ts +8 -0
- package/dist/types/ui/alert-dialog/alert-dialog.d.ts.map +1 -1
- package/dist/types/ui/breadcrumb/breadcrumb.d.ts +6 -4
- package/dist/types/ui/breadcrumb/breadcrumb.d.ts.map +1 -1
- package/dist/types/ui/calendar/datepicker.d.ts +1 -1
- package/dist/types/ui/calendar/timepicker.d.ts +5 -2
- package/dist/types/ui/calendar/timepicker.d.ts.map +1 -1
- package/dist/types/ui/card/card.d.ts +8 -0
- package/dist/types/ui/card/card.d.ts.map +1 -1
- package/dist/types/ui/carousel/carousel.d.ts +53 -0
- package/dist/types/ui/carousel/carousel.d.ts.map +1 -1
- package/dist/types/ui/collapsible/collapsible.d.ts +3 -0
- package/dist/types/ui/collapsible/collapsible.d.ts.map +1 -1
- package/dist/types/ui/dialog/dialog.d.ts +19 -0
- package/dist/types/ui/dialog/dialog.d.ts.map +1 -1
- package/dist/types/ui/dropdown/dropdown-menu.d.ts +18 -0
- package/dist/types/ui/dropdown/dropdown-menu.d.ts.map +1 -1
- package/dist/types/ui/form/checkbox.d.ts +3 -1
- package/dist/types/ui/form/checkbox.d.ts.map +1 -1
- package/dist/types/ui/form/input.d.ts +13 -0
- package/dist/types/ui/form/input.d.ts.map +1 -1
- package/dist/types/ui/form/label.d.ts +1 -1
- package/dist/types/ui/form/radio-group.d.ts +2 -1
- package/dist/types/ui/form/radio-group.d.ts.map +1 -1
- package/dist/types/ui/form/select.d.ts +43 -0
- package/dist/types/ui/form/select.d.ts.map +1 -1
- package/dist/types/ui/form/switch.d.ts +3 -1
- package/dist/types/ui/form/switch.d.ts.map +1 -1
- package/dist/types/ui/form/textarea.d.ts +1 -0
- package/dist/types/ui/form/textarea.d.ts.map +1 -1
- package/dist/types/ui/pagination/pagination.d.ts +7 -7
- package/dist/types/ui/popover/popover.d.ts +3 -1
- package/dist/types/ui/popover/popover.d.ts.map +1 -1
- package/dist/types/ui/progress/progress.d.ts +1 -1
- package/dist/types/ui/scroll-area/scroll-area.d.ts +2 -2
- package/dist/types/ui/separator/separator.d.ts +1 -1
- package/dist/types/ui/skeleton/skeleton.d.ts +1 -0
- package/dist/types/ui/skeleton/skeleton.d.ts.map +1 -1
- package/dist/types/ui/tab/tabs.d.ts +3 -1
- package/dist/types/ui/tab/tabs.d.ts.map +1 -1
- package/dist/types/ui/table/table.d.ts +8 -0
- package/dist/types/ui/table/table.d.ts.map +1 -1
- package/dist/types/ui/tooltip/tooltip.d.ts +1 -0
- package/dist/types/ui/tooltip/tooltip.d.ts.map +1 -1
- package/package.json +17 -3
- package/dist/chunks/breadcrumb-D-Wgwp2Z.es.js.map +0 -1
- package/dist/chunks/breadcrumb-RLwumNZG.cjs.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs-DUuliV4A.es.js","sources":["../../node_modules/@radix-ui/react-tabs/dist/index.mjs","../../src/ui/tab/tabs.tsx"],"sourcesContent":["\"use client\";\n\n// src/tabs.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TABS_NAME = \"Tabs\";\nvar [createTabsContext, createTabsScope] = createContextScope(TABS_NAME, [\n createRovingFocusGroupScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [TabsProvider, useTabsContext] = createTabsContext(TABS_NAME);\nvar Tabs = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTabs,\n value: valueProp,\n onValueChange,\n defaultValue,\n orientation = \"horizontal\",\n dir,\n activationMode = \"automatic\",\n ...tabsProps\n } = props;\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue ?? \"\",\n caller: TABS_NAME\n });\n return /* @__PURE__ */ jsx(\n TabsProvider,\n {\n scope: __scopeTabs,\n baseId: useId(),\n value,\n onValueChange: setValue,\n orientation,\n dir: direction,\n activationMode,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n dir: direction,\n \"data-orientation\": orientation,\n ...tabsProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabs.displayName = TABS_NAME;\nvar TAB_LIST_NAME = \"TabsList\";\nvar TabsList = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, loop = true, ...listProps } = props;\n const context = useTabsContext(TAB_LIST_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation: context.orientation,\n dir: context.dir,\n loop,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"tablist\",\n \"aria-orientation\": context.orientation,\n ...listProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabsList.displayName = TAB_LIST_NAME;\nvar TRIGGER_NAME = \"TabsTrigger\";\nvar TabsTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, disabled = false, ...triggerProps } = props;\n const context = useTabsContext(TRIGGER_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n active: isSelected,\n children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"tab\",\n \"aria-selected\": isSelected,\n \"aria-controls\": contentId,\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n id: triggerId,\n ...triggerProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onValueChange(value);\n } else {\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if ([\" \", \"Enter\"].includes(event.key)) context.onValueChange(value);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n const isAutomaticActivation = context.activationMode !== \"manual\";\n if (!isSelected && !disabled && isAutomaticActivation) {\n context.onValueChange(value);\n }\n })\n }\n )\n }\n );\n }\n);\nTabsTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"TabsContent\";\nvar TabsContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, forceMount, children, ...contentProps } = props;\n const context = useTabsContext(CONTENT_NAME, __scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n const isMountAnimationPreventedRef = React.useRef(isSelected);\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isSelected, children: ({ present }) => /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-orientation\": context.orientation,\n role: \"tabpanel\",\n \"aria-labelledby\": triggerId,\n hidden: !present,\n id: contentId,\n tabIndex: 0,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n animationDuration: isMountAnimationPreventedRef.current ? \"0s\" : void 0\n },\n children: present && children\n }\n ) });\n }\n);\nTabsContent.displayName = CONTENT_NAME;\nfunction makeTriggerId(baseId, value) {\n return `${baseId}-trigger-${value}`;\n}\nfunction makeContentId(baseId, value) {\n return `${baseId}-content-${value}`;\n}\nvar Root2 = Tabs;\nvar List = TabsList;\nvar Trigger = TabsTrigger;\nvar Content = TabsContent;\nexport {\n Content,\n List,\n Root2 as Root,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n Trigger,\n createTabsScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as TabsPrimitive from '@radix-ui/react-tabs';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { ChevronLeft, ChevronRight } from 'lucide-react';\nimport {\n type ComponentPropsWithoutRef,\n type ElementRef,\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport { cn } from '../../lib';\nimport { Button } from '../button';\n\n/**\n * Tabs root component from Radix UI.\n * Combines with TabsList, TabsTrigger, and TabsContent to build tabbed interfaces.\n */\nconst Tabs = TabsPrimitive.Root;\n\nconst tabsListVariants = cva(\n 'inline-flex items-center justify-center gap-1 p-1 text-secondary',\n {\n variants: {\n type: {\n default: '',\n segmented: 'bg-item-tertiary [&>button]:data-[state=active]:shadow-sm',\n line: \"[&>button]:data-[state=active]:after:absolute [&>button]:data-[state=active]:after:-bottom-1.5 [&>button]:data-[state=active]:after:content-[''] [&>button]:data-[state=active]:after:w-full [&>button]:data-[state=active]:after:h-0.5 [&>button]:data-[state=active]:after:bg-primary\",\n },\n variant: {\n default: '[&>button]:data-[state=active]:bg-background',\n soft: '[&>button]:data-[state=active]:bg-item-tertiary [&>button]:data-[state=active]:border [&>button]:data-[state=active]:border-alpha-strong',\n },\n rounded: {\n default: 'rounded-md [&>button]:rounded-md',\n pill: 'rounded-full [&>button]:rounded-full',\n },\n },\n defaultVariants: {\n type: 'default',\n variant: 'default',\n rounded: 'default',\n },\n }\n);\n\n/**\n * Props for TabsList component.\n * Extends Radix Tabs.List props and supports visual variants and behavior flags.\n *\n * @property {'default'|'segmented'|'line'} [type] - Visual style of the list.\n * @property {'default'|'soft'} [variant] - Coloring variant.\n * @property {'default'|'pill'} [rounded] - Border radius style.\n * @property {true} [full] - If provided, makes the list expand to full width.\n * @property {true} [scrollable] - Enables horizontal scroll with navigation buttons.\n * @property {string} [scrollButtonClassName] - Additional classes for scroll buttons.\n */\nexport interface TabsListProps\n extends ComponentPropsWithoutRef<typeof TabsPrimitive.List>,\n VariantProps<typeof tabsListVariants> {\n full?: true;\n scrollable?: true;\n scrollButtonClassName?: string;\n}\n\n/**\n * Displays a list of tab triggers with optional segmented, line, and scrollable variants.\n * When scrollable, left/right buttons appear when content overflows.\n *\n * @component\n */\nconst TabsList = forwardRef<\n ElementRef<typeof TabsPrimitive.List>,\n TabsListProps\n>(\n (\n {\n className,\n rounded,\n variant,\n type,\n full,\n scrollable,\n scrollButtonClassName,\n ...props\n },\n ref\n ) => {\n const scrollContainerRef = useRef<HTMLDivElement>(null);\n const [showLeftButton, setShowLeftButton] = useState(false);\n const [showRightButton, setShowRightButton] = useState(false);\n\n const checkScrollButtons = useCallback(() => {\n if (scrollContainerRef.current && scrollable) {\n const { scrollLeft, scrollWidth, clientWidth } =\n scrollContainerRef.current;\n setShowLeftButton(scrollLeft > 0);\n setShowRightButton(scrollLeft < scrollWidth - clientWidth - 1);\n }\n }, [scrollable]);\n\n useEffect(() => {\n if (scrollable) {\n checkScrollButtons();\n const handleResize = () => checkScrollButtons();\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }\n }, [checkScrollButtons, scrollable]);\n\n const scrollLeft = () => {\n if (scrollContainerRef.current) {\n scrollContainerRef.current.scrollBy({ left: -200, behavior: 'smooth' });\n }\n };\n\n const scrollRight = () => {\n if (scrollContainerRef.current) {\n scrollContainerRef.current.scrollBy({ left: 200, behavior: 'smooth' });\n }\n };\n\n if (scrollable) {\n return (\n <div className=\"relative flex items-center\">\n {/* Left Scroll Button */}\n {showLeftButton && (\n <Button\n type=\"button\"\n size={'icon'}\n variant=\"secondary\"\n onClick={scrollLeft}\n className={cn(\n 'absolute left-0 z-10 h-full w-6',\n scrollButtonClassName\n )}\n aria-label=\"Scroll left\"\n >\n <ChevronLeft className=\"text-secondary h-4 w-4\" />\n </Button>\n )}\n\n {/* Scrollable Container */}\n <div\n ref={scrollContainerRef}\n className=\"scrollbar-hide overflow-x-auto scroll-smooth\"\n style={{\n scrollbarWidth: 'none',\n msOverflowStyle: 'none',\n paddingLeft: showLeftButton ? '32px' : '0',\n paddingRight: showRightButton ? '32px' : '0',\n }}\n onScroll={checkScrollButtons}\n >\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n full && '!flex',\n 'min-w-max',\n tabsListVariants({ rounded, variant, type, className })\n )}\n {...props}\n />\n </div>\n\n {/* Right Scroll Button */}\n {showRightButton && (\n <Button\n type=\"button\"\n size={'icon'}\n variant=\"secondary\"\n onClick={scrollRight}\n className={cn(\n 'absolute right-0 z-10 h-full w-6',\n scrollButtonClassName\n )}\n aria-label=\"Scroll right\"\n >\n <ChevronRight className=\"text-secondary size-4\" />\n </Button>\n )}\n\n <style>{`\n .scrollbar-hide::-webkit-scrollbar {\n display: none;\n }\n `}</style>\n </div>\n );\n }\n\n return (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n full && '!flex',\n tabsListVariants({ rounded, variant, type, className })\n )}\n {...props}\n />\n );\n }\n);\nTabsList.displayName = TabsPrimitive.List.displayName;\n\n/**\n * A single tab trigger/button.\n * Forwards refs to Radix Tabs.Trigger.\n */\nconst TabsTrigger = forwardRef<\n ElementRef<typeof TabsPrimitive.Trigger>,\n ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n 'text-body-xs-medium relative box-border inline-flex h-7 flex-1 cursor-pointer items-center justify-center px-3 py-1 whitespace-nowrap transition-all outline-none disabled:pointer-events-none disabled:opacity-50',\n 'data-[state=inactive]:hover:!bg-item-tertiary-hover data-[state=inactive]:hover:text-primary',\n 'data-[state=active]:text-primary',\n className\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\n/**\n * Content panel associated with a TabsTrigger.\n * Forwards refs to Radix Tabs.Content.\n */\nconst TabsContent = forwardRef<\n ElementRef<typeof TabsPrimitive.Content>,\n ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n 'ring-offset-background focus-visible:ring-ring mt-2 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none',\n className\n )}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsContent, TabsList, TabsTrigger };\n"],"names":["TABS_NAME","createTabsContext","createContextScope","createRovingFocusGroupScope","useRovingFocusGroupScope","TabsProvider","useTabsContext","Tabs","React","props","forwardedRef","__scopeTabs","valueProp","onValueChange","defaultValue","orientation","dir","activationMode","tabsProps","direction","useDirection","value","setValue","useControllableState","jsx","useId","Primitive","TAB_LIST_NAME","TabsList","loop","listProps","context","rovingFocusGroupScope","RovingFocusGroup.Root","TRIGGER_NAME","TabsTrigger","disabled","triggerProps","triggerId","makeTriggerId","contentId","makeContentId","isSelected","RovingFocusGroup.Item","composeEventHandlers","event","isAutomaticActivation","CONTENT_NAME","TabsContent","forceMount","children","contentProps","isMountAnimationPreventedRef","rAF","Presence","present","baseId","Root2","List","Trigger","Content","TabsPrimitive.Root","tabsListVariants","cva","forwardRef","className","rounded","variant","type","full","scrollable","scrollButtonClassName","ref","scrollContainerRef","useRef","showLeftButton","setShowLeftButton","useState","showRightButton","setShowRightButton","checkScrollButtons","useCallback","scrollLeft","scrollWidth","clientWidth","useEffect","handleResize","scrollRight","jsxs","Button","cn","ChevronLeft","TabsPrimitive.List","ChevronRight","TabsPrimitive.Trigger","TabsPrimitive.Content"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"tabs-DUuliV4A.es.js","sources":["../../node_modules/@radix-ui/react-tabs/dist/index.mjs","../../src/ui/tab/tabs.tsx"],"sourcesContent":["\"use client\";\n\n// src/tabs.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TABS_NAME = \"Tabs\";\nvar [createTabsContext, createTabsScope] = createContextScope(TABS_NAME, [\n createRovingFocusGroupScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [TabsProvider, useTabsContext] = createTabsContext(TABS_NAME);\nvar Tabs = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTabs,\n value: valueProp,\n onValueChange,\n defaultValue,\n orientation = \"horizontal\",\n dir,\n activationMode = \"automatic\",\n ...tabsProps\n } = props;\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue ?? \"\",\n caller: TABS_NAME\n });\n return /* @__PURE__ */ jsx(\n TabsProvider,\n {\n scope: __scopeTabs,\n baseId: useId(),\n value,\n onValueChange: setValue,\n orientation,\n dir: direction,\n activationMode,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n dir: direction,\n \"data-orientation\": orientation,\n ...tabsProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabs.displayName = TABS_NAME;\nvar TAB_LIST_NAME = \"TabsList\";\nvar TabsList = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, loop = true, ...listProps } = props;\n const context = useTabsContext(TAB_LIST_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation: context.orientation,\n dir: context.dir,\n loop,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"tablist\",\n \"aria-orientation\": context.orientation,\n ...listProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabsList.displayName = TAB_LIST_NAME;\nvar TRIGGER_NAME = \"TabsTrigger\";\nvar TabsTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, disabled = false, ...triggerProps } = props;\n const context = useTabsContext(TRIGGER_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n active: isSelected,\n children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"tab\",\n \"aria-selected\": isSelected,\n \"aria-controls\": contentId,\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n id: triggerId,\n ...triggerProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onValueChange(value);\n } else {\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if ([\" \", \"Enter\"].includes(event.key)) context.onValueChange(value);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n const isAutomaticActivation = context.activationMode !== \"manual\";\n if (!isSelected && !disabled && isAutomaticActivation) {\n context.onValueChange(value);\n }\n })\n }\n )\n }\n );\n }\n);\nTabsTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"TabsContent\";\nvar TabsContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, forceMount, children, ...contentProps } = props;\n const context = useTabsContext(CONTENT_NAME, __scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n const isMountAnimationPreventedRef = React.useRef(isSelected);\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isSelected, children: ({ present }) => /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-orientation\": context.orientation,\n role: \"tabpanel\",\n \"aria-labelledby\": triggerId,\n hidden: !present,\n id: contentId,\n tabIndex: 0,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n animationDuration: isMountAnimationPreventedRef.current ? \"0s\" : void 0\n },\n children: present && children\n }\n ) });\n }\n);\nTabsContent.displayName = CONTENT_NAME;\nfunction makeTriggerId(baseId, value) {\n return `${baseId}-trigger-${value}`;\n}\nfunction makeContentId(baseId, value) {\n return `${baseId}-content-${value}`;\n}\nvar Root2 = Tabs;\nvar List = TabsList;\nvar Trigger = TabsTrigger;\nvar Content = TabsContent;\nexport {\n Content,\n List,\n Root2 as Root,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n Trigger,\n createTabsScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as TabsPrimitive from '@radix-ui/react-tabs';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { ChevronLeft, ChevronRight } from 'lucide-react';\nimport {\n type ComponentPropsWithoutRef,\n type ElementRef,\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport { cn } from '../../lib';\nimport { Button } from '../button';\n\n/**\n * Tabs root component from Radix UI.\n * Combines with TabsList, TabsTrigger, and TabsContent to build tabbed interfaces.\n */\nconst Tabs = TabsPrimitive.Root;\n\nconst tabsListVariants = cva(\n 'inline-flex items-center justify-center gap-1 p-1 text-secondary',\n {\n variants: {\n type: {\n default: '',\n segmented: 'bg-item-tertiary [&>button]:data-[state=active]:shadow-sm',\n line: \"[&>button]:data-[state=active]:after:absolute [&>button]:data-[state=active]:after:-bottom-1.5 [&>button]:data-[state=active]:after:content-[''] [&>button]:data-[state=active]:after:w-full [&>button]:data-[state=active]:after:h-0.5 [&>button]:data-[state=active]:after:bg-primary\",\n },\n variant: {\n default: '[&>button]:data-[state=active]:bg-background',\n soft: '[&>button]:data-[state=active]:bg-item-tertiary [&>button]:data-[state=active]:border [&>button]:data-[state=active]:border-alpha-strong',\n },\n rounded: {\n default: 'rounded-md [&>button]:rounded-md',\n pill: 'rounded-full [&>button]:rounded-full',\n },\n },\n defaultVariants: {\n type: 'default',\n variant: 'default',\n rounded: 'default',\n },\n }\n);\n\n/**\n * Props for TabsList component.\n * Extends Radix Tabs.List props and supports visual variants and behavior flags.\n *\n * @property {'default'|'segmented'|'line'} [type] - Visual style of the list.\n * @property {'default'|'soft'} [variant] - Coloring variant.\n * @property {'default'|'pill'} [rounded] - Border radius style.\n * @property {true} [full] - If provided, makes the list expand to full width.\n * @property {true} [scrollable] - Enables horizontal scroll with navigation buttons.\n * @property {string} [scrollButtonClassName] - Additional classes for scroll buttons.\n */\nexport interface TabsListProps\n extends ComponentPropsWithoutRef<typeof TabsPrimitive.List>,\n VariantProps<typeof tabsListVariants> {\n full?: true;\n scrollable?: true;\n scrollButtonClassName?: string;\n}\n\n/**\n * Displays a list of tab triggers with optional segmented, line, and scrollable variants.\n * When scrollable, left/right buttons appear when content overflows.\n * @returns {JSX.Element} The rendered TabsList component.\n * @component\n */\nconst TabsList = forwardRef<\n ElementRef<typeof TabsPrimitive.List>,\n TabsListProps\n>(\n (\n {\n className,\n rounded,\n variant,\n type,\n full,\n scrollable,\n scrollButtonClassName,\n ...props\n },\n ref\n ) => {\n const scrollContainerRef = useRef<HTMLDivElement>(null);\n const [showLeftButton, setShowLeftButton] = useState(false);\n const [showRightButton, setShowRightButton] = useState(false);\n\n const checkScrollButtons = useCallback(() => {\n if (scrollContainerRef.current && scrollable) {\n const { scrollLeft, scrollWidth, clientWidth } =\n scrollContainerRef.current;\n setShowLeftButton(scrollLeft > 0);\n setShowRightButton(scrollLeft < scrollWidth - clientWidth - 1);\n }\n }, [scrollable]);\n\n useEffect(() => {\n if (scrollable) {\n checkScrollButtons();\n const handleResize = () => checkScrollButtons();\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }\n }, [checkScrollButtons, scrollable]);\n\n const scrollLeft = () => {\n if (scrollContainerRef.current) {\n scrollContainerRef.current.scrollBy({ left: -200, behavior: 'smooth' });\n }\n };\n\n const scrollRight = () => {\n if (scrollContainerRef.current) {\n scrollContainerRef.current.scrollBy({ left: 200, behavior: 'smooth' });\n }\n };\n\n if (scrollable) {\n return (\n <div className=\"relative flex items-center\">\n {/* Left Scroll Button */}\n {showLeftButton && (\n <Button\n type=\"button\"\n size={'icon'}\n variant=\"secondary\"\n onClick={scrollLeft}\n className={cn(\n 'absolute left-0 z-10 h-full w-6',\n scrollButtonClassName\n )}\n aria-label=\"Scroll left\"\n >\n <ChevronLeft className=\"text-secondary h-4 w-4\" />\n </Button>\n )}\n\n {/* Scrollable Container */}\n <div\n ref={scrollContainerRef}\n className=\"scrollbar-hide overflow-x-auto scroll-smooth\"\n style={{\n scrollbarWidth: 'none',\n msOverflowStyle: 'none',\n paddingLeft: showLeftButton ? '32px' : '0',\n paddingRight: showRightButton ? '32px' : '0',\n }}\n onScroll={checkScrollButtons}\n >\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n full && '!flex',\n 'min-w-max',\n tabsListVariants({ rounded, variant, type, className })\n )}\n {...props}\n />\n </div>\n\n {/* Right Scroll Button */}\n {showRightButton && (\n <Button\n type=\"button\"\n size={'icon'}\n variant=\"secondary\"\n onClick={scrollRight}\n className={cn(\n 'absolute right-0 z-10 h-full w-6',\n scrollButtonClassName\n )}\n aria-label=\"Scroll right\"\n >\n <ChevronRight className=\"text-secondary size-4\" />\n </Button>\n )}\n\n <style>{`\n .scrollbar-hide::-webkit-scrollbar {\n display: none;\n }\n `}</style>\n </div>\n );\n }\n\n return (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n full && '!flex',\n tabsListVariants({ rounded, variant, type, className })\n )}\n {...props}\n />\n );\n }\n);\nTabsList.displayName = TabsPrimitive.List.displayName;\n\n/**\n * A single tab trigger/button.\n * Forwards refs to Radix Tabs.Trigger.\n * @returns {JSX.Element} The rendered TabsTrigger component.\n */\nconst TabsTrigger = forwardRef<\n ElementRef<typeof TabsPrimitive.Trigger>,\n ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n 'text-body-xs-medium relative box-border inline-flex h-7 flex-1 cursor-pointer items-center justify-center px-3 py-1 whitespace-nowrap transition-all outline-none disabled:pointer-events-none disabled:opacity-50',\n 'data-[state=inactive]:hover:!bg-item-tertiary-hover data-[state=inactive]:hover:text-primary',\n 'data-[state=active]:text-primary',\n className\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\n/**\n * Content panel associated with a TabsTrigger.\n * Forwards refs to Radix Tabs.Content.\n * @returns {JSX.Element} The rendered TabsContent component.\n */\nconst TabsContent = forwardRef<\n ElementRef<typeof TabsPrimitive.Content>,\n ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n 'ring-offset-background focus-visible:ring-ring mt-2 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none',\n className\n )}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsContent, TabsList, TabsTrigger };\n"],"names":["TABS_NAME","createTabsContext","createContextScope","createRovingFocusGroupScope","useRovingFocusGroupScope","TabsProvider","useTabsContext","Tabs","React","props","forwardedRef","__scopeTabs","valueProp","onValueChange","defaultValue","orientation","dir","activationMode","tabsProps","direction","useDirection","value","setValue","useControllableState","jsx","useId","Primitive","TAB_LIST_NAME","TabsList","loop","listProps","context","rovingFocusGroupScope","RovingFocusGroup.Root","TRIGGER_NAME","TabsTrigger","disabled","triggerProps","triggerId","makeTriggerId","contentId","makeContentId","isSelected","RovingFocusGroup.Item","composeEventHandlers","event","isAutomaticActivation","CONTENT_NAME","TabsContent","forceMount","children","contentProps","isMountAnimationPreventedRef","rAF","Presence","present","baseId","Root2","List","Trigger","Content","TabsPrimitive.Root","tabsListVariants","cva","forwardRef","className","rounded","variant","type","full","scrollable","scrollButtonClassName","ref","scrollContainerRef","useRef","showLeftButton","setShowLeftButton","useState","showRightButton","setShowRightButton","checkScrollButtons","useCallback","scrollLeft","scrollWidth","clientWidth","useEffect","handleResize","scrollRight","jsxs","Button","cn","ChevronLeft","TabsPrimitive.List","ChevronRight","TabsPrimitive.Trigger","TabsPrimitive.Content"],"mappings":"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","x_google_ignoreList":[0]}
|