@zentauri-ui/zentauri-components 1.6.2 → 1.6.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.
package/README.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # @zentauri-ui/zentauri-components
2
2
 
3
+ [![npm version](https://img.shields.io/npm/v/@zentauri-ui/zentauri-components)](https://www.npmjs.com/package/@zentauri-ui/zentauri-components)
4
+ [![npm downloads](https://img.shields.io/npm/dm/@zentauri-ui/zentauri-components)](https://www.npmjs.com/package/@zentauri-ui/zentauri-components)
5
+
3
6
  A React UI kit for building product interfaces with Tailwind CSS. Components are implemented in TypeScript, ship with declaration files, and are bundled as ESM and CommonJS for broad bundler compatibility.
4
7
 
5
8
  ## Overview
@@ -8,6 +11,78 @@ The library targets **React 18+** apps that use **Tailwind CSS v4** (or an equiv
8
11
 
9
12
  Published artifacts live under `dist/`. Imports use **per-entry subpaths**: `@zentauri-ui/zentauri-components/ui/<area>` for static UI, `@zentauri-ui/zentauri-components/ui/<area>/animated` where a motion bundle exists, `@zentauri-ui/zentauri-components/charts/<type>` for Recharts-powered chart primitives, and `@zentauri-ui/zentauri-components/hooks/<entry>` for React hooks (and shared helpers under `hooks/utils`). Base UI entries do **not** re-export animated components; motion lives on its own entry so optional `framer-motion` usage stays tree-shakeable and chunk-friendly. Each entry resolves to its own ESM (`.mjs`), CJS (`.js`), and types (`.d.ts`) so bundlers pull only what you import. Most apps rely on Tailwind scanning the package sources (see installation); a separate CSS import is not required for that setup.
10
13
 
14
+ ## Package status and test coverage
15
+
16
+ | Metric | Result |
17
+ | ----------- | ---------------- |
18
+ | Test files | 54 passed (54) |
19
+ | Tests | 336 passed (336) |
20
+
21
+ | Area | Test files | Tests |
22
+ | --------------------------- | ---------- | ----- |
23
+ | Components and UI utilities | 26 | 242 |
24
+ | React hooks | 26 | 85 |
25
+ | CLI and import rewriting | 2 | 9 |
26
+
27
+ ### Per-suite snapshot
28
+
29
+ | Suite | Tests |
30
+ | ----------------------------------------------------------------------- | ----: |
31
+ | `src/ui/dynamic-stepper/dynamic-stepper.test.tsx` | 8 |
32
+ | `src/ui/select/select.test.tsx` | 6 |
33
+ | `src/ui/modal/modal.test.tsx` | 9 |
34
+ | `src/ui/drawer/drawer.test.tsx` | 7 |
35
+ | `cli/cli.integration.test.ts` | 4 |
36
+ | `src/ui/buttons/button.test.tsx` | 40 |
37
+ | `src/ui/inputs/input.test.tsx` | 40 |
38
+ | `src/ui/card/card.test.tsx` | 7 |
39
+ | `src/ui/tooltip/tooltip.test.tsx` | 4 |
40
+ | `src/ui/dropdown/dropdown.test.tsx` | 6 |
41
+ | `src/hooks/useFocusManagement/useFocusManagement.test.tsx` | 3 |
42
+ | `src/ui/progress/progress.test.tsx` | 8 |
43
+ | `src/ui/accordion/accordion.test.tsx` | 7 |
44
+ | `src/ui/toast/toast.test.tsx` | 5 |
45
+ | `src/ui/pagination/pagination.test.tsx` | 15 |
46
+ | `src/ui/tabs/tabs.test.tsx` | 3 |
47
+ | `src/ui/stepper/stepper.test.tsx` | 12 |
48
+ | `src/ui/toggle/toggle.test.tsx` | 5 |
49
+ | `src/ui/slider/slider.test.tsx` | 9 |
50
+ | `src/ui/typography/typography.test.tsx` | 7 |
51
+ | `src/ui/alert/alert.test.tsx` | 11 |
52
+ | `src/ui/badge/badge.test.tsx` | 6 |
53
+ | `src/hooks/useClipboard/useClipboard.test.ts` | 6 |
54
+ | `src/hooks/useLocalStorage/useLocalStorage.test.ts` | 6 |
55
+ | `src/hooks/useDisclosure/useDisclosure.test.ts` | 5 |
56
+ | `src/ui/avatar/avatar.test.tsx` | 4 |
57
+ | `src/ui/file-upload/file-upload.test.tsx` | 4 |
58
+ | `src/ui/spinner/animated/spinner.test.tsx` | 8 |
59
+ | `src/hooks/useDynamicStepper/useDynamicStepper.test.ts` | 7 |
60
+ | `src/hooks/useClickOutside/useClickOutside.test.tsx` | 3 |
61
+ | `src/hooks/useControllableState/useControllableState.test.ts` | 4 |
62
+ | `src/ui/breadcrumb/breadcrumb.test.tsx` | 4 |
63
+ | `src/hooks/useThrottledCallback/useThrottledCallback.test.ts` | 4 |
64
+ | `src/hooks/useToggle/useToggle.test.ts` | 4 |
65
+ | `src/hooks/usePagination/usePagination.test.ts` | 10 |
66
+ | `src/hooks/useSessionStorage/useSessionStorage.test.ts` | 3 |
67
+ | `src/hooks/usePrefersColorScheme/usePrefersColorScheme.test.ts` | 1 |
68
+ | `src/hooks/useIsMounted/useIsMounted.test.ts` | 3 |
69
+ | `src/hooks/useDebouncedValue/useDebouncedValue.test.ts` | 4 |
70
+ | `src/hooks/useHover/useHover.test.ts` | 2 |
71
+ | `src/hooks/useIntersectionObserver/useIntersectionObserver.test.ts` | 2 |
72
+ | `src/hooks/usePageVisibility/usePageVisibility.test.ts` | 1 |
73
+ | `src/hooks/useResizeObserver/useResizeObserver.test.ts` | 2 |
74
+ | `src/hooks/useNetworkStatus/useNetworkStatus.test.ts` | 2 |
75
+ | `src/hooks/useMediaQuery/useMediaQuery.test.ts` | 2 |
76
+ | `src/hooks/useDocumentTitle/useDocumentTitle.test.ts` | 3 |
77
+ | `src/hooks/usePrefersReducedMotion/usePrefersReducedMotion.test.ts` | 1 |
78
+ | `src/hooks/useBodyScrollLock/useBodyScrollLock.test.ts` | 4 |
79
+ | `src/hooks/useWindowSize/useWindowSize.test.ts` | 1 |
80
+ | `src/hooks/useInView/useInView.test.ts` | 1 |
81
+ | `src/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.test.ts` | 1 |
82
+ | `cli/rewrite-imports.test.ts` | 5 |
83
+ | `src/ui/search/filter-search-suggestions.test.ts` | 6 |
84
+ | `src/ui/search/search-suggestion-utils.test.ts` | 1 |
85
+
11
86
  ## Package exports
12
87
 
13
88
  | Subpath | Description |
@@ -5,7 +5,7 @@ var classVarianceAuthority = require('class-variance-authority');
5
5
  var react = require('react');
6
6
  var jsxRuntime = require('react/jsx-runtime');
7
7
 
8
- var tabsListVariants = classVarianceAuthority.cva("flex items-center gap-1", {
8
+ var tabsListVariants = classVarianceAuthority.cva("flex flex-wrap items-center gap-1", {
9
9
  variants: {
10
10
  variant: {
11
11
  default: "bg-transparent",
@@ -269,5 +269,5 @@ exports.TabsTrigger = TabsTrigger;
269
269
  exports.tabsListVariants = tabsListVariants;
270
270
  exports.tabsTriggerVariants = tabsTriggerVariants;
271
271
  exports.useTabs = useTabs;
272
- //# sourceMappingURL=chunk-3Z73M5TW.js.map
273
- //# sourceMappingURL=chunk-3Z73M5TW.js.map
272
+ //# sourceMappingURL=chunk-CXNDE4VC.js.map
273
+ //# sourceMappingURL=chunk-CXNDE4VC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ui/tabs/variants.ts","../src/ui/tabs/tabs-base.tsx"],"names":["cva","createContext","useContext","useState","useId","useRef","jsx","cn"],"mappings":"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","file":"chunk-CXNDE4VC.js","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const tabsListVariants = cva(\"flex flex-wrap items-center gap-1\", {\n variants: {\n variant: {\n default: \"bg-transparent\",\n underline: \"border-b-2 border-transparent\",\n pills: \"rounded-md\",\n },\n size: {\n sm: \"text-sm p-1\",\n md: \"text-base p-1.5\",\n lg: \"text-lg p-2\",\n },\n orientation: {\n horizontal: \"flex-row\",\n vertical: \"flex-col\",\n },\n },\n defaultVariants: {\n size: \"md\",\n orientation: \"horizontal\",\n variant: \"pills\",\n },\n});\n\nexport const tabsTriggerVariants = cva(\n \"px-3 py-1.5 rounded-md transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\",\n {\n variants: {\n appearance: {\n default: \"bg-transparent text-slate-900 dark:text-slate-50\",\n sky: \"bg-sky-300 text-sky-900 dark:bg-sky-900 dark:text-sky-200 data-[state=active]:bg-sky-900 dark:data-[state=active]:bg-sky-700 data-[state=active]:text-sky-50 dark:data-[state=active]:text-sky-100\",\n rose: \"bg-rose-300 text-rose-900 dark:bg-rose-900 dark:text-rose-200 data-[state=active]:bg-rose-900 dark:data-[state=active]:bg-rose-700 data-[state=active]:text-rose-50 dark:data-[state=active]:text-rose-100\",\n purple:\n \"bg-purple-300 text-purple-900 dark:bg-purple-900 dark:text-purple-200 data-[state=active]:bg-purple-900 dark:data-[state=active]:bg-purple-700 data-[state=active]:text-purple-50 dark:data-[state=active]:text-purple-100\",\n pink: \"bg-pink-300 text-pink-900 dark:bg-pink-900 dark:text-pink-200 data-[state=active]:bg-pink-900 dark:data-[state=active]:bg-pink-700 data-[state=active]:text-pink-50 dark:data-[state=active]:text-pink-100\",\n orange:\n \"bg-orange-300 text-orange-900 dark:bg-orange-900 dark:text-orange-200 data-[state=active]:bg-orange-900 dark:data-[state=active]:bg-orange-700 data-[state=active]:text-orange-50 dark:data-[state=active]:text-orange-100\",\n yellow:\n \"bg-yellow-300 text-yellow-900 dark:bg-yellow-900 dark:text-yellow-200 data-[state=active]:bg-yellow-900 dark:data-[state=active]:bg-yellow-700 data-[state=active]:text-yellow-50 dark:data-[state=active]:text-yellow-100\",\n teal: \"bg-teal-300 text-teal-900 dark:bg-teal-900 dark:text-teal-200 data-[state=active]:bg-teal-900 dark:data-[state=active]:bg-teal-700 data-[state=active]:text-teal-50 dark:data-[state=active]:text-teal-100\",\n indigo:\n \"bg-indigo-300 text-indigo-900 dark:bg-indigo-900 dark:text-indigo-200 data-[state=active]:bg-indigo-900 dark:data-[state=active]:bg-indigo-700 data-[state=active]:text-indigo-50 dark:data-[state=active]:text-indigo-100\",\n emerald:\n \"bg-emerald-300 text-emerald-900 dark:bg-emerald-900 dark:text-emerald-200 data-[state=active]:bg-emerald-900 dark:data-[state=active]:bg-emerald-700 data-[state=active]:text-emerald-50 dark:data-[state=active]:text-emerald-100\",\n gray: \"bg-gray-300 text-gray-900 dark:bg-gray-900 dark:text-gray-200 data-[state=active]:bg-gray-900 dark:data-[state=active]:bg-gray-700 data-[state=active]:text-gray-50 dark:data-[state=active]:text-gray-100\",\n \"gradient-blue\":\n \"bg-linear-to-r from-blue-800 dark:from-blue-800 to-purple-800 dark:to-purple-800 text-blue-100 dark:text-blue-50 data-[state=active]:from-blue-600 dark:data-[state=active]:from-blue-600 data-[state=active]:to-purple-600 dark:data-[state=active]:to-purple-600 data-[state=active]:text-blue-100 dark:data-[state=active]:text-blue-100\",\n \"gradient-green\":\n \"bg-linear-to-r from-green-800 dark:from-green-800 to-lime-800 dark:to-lime-800 text-green-100 dark:text-green-50 data-[state=active]:from-green-600 dark:data-[state=active]:from-green-600 data-[state=active]:to-lime-600 dark:data-[state=active]:to-lime-600 data-[state=active]:text-green-100 dark:data-[state=active]:text-green-100\",\n \"gradient-red\":\n \"bg-linear-to-r from-red-800 dark:from-red-800 to-pink-800 dark:to-pink-800 text-red-100 dark:text-red-50 data-[state=active]:from-red-600 dark:data-[state=active]:from-red-600 data-[state=active]:to-pink-600 dark:data-[state=active]:to-pink-600 data-[state=active]:text-red-100 dark:data-[state=active]:text-red-100\",\n \"gradient-yellow\":\n \"bg-linear-to-r from-yellow-800 dark:from-yellow-800 to-orange-800 dark:to-orange-800 text-yellow-100 dark:text-yellow-50 data-[state=active]:from-yellow-600 dark:data-[state=active]:from-yellow-600 data-[state=active]:to-orange-600 dark:data-[state=active]:to-orange-600 data-[state=active]:text-yellow-100 dark:data-[state=active]:text-yellow-100\",\n \"gradient-purple\":\n \"bg-linear-to-r from-purple-800 dark:from-purple-800 to-pink-800 dark:to-pink-800 text-purple-100 dark:text-purple-50 data-[state=active]:from-purple-600 dark:data-[state=active]:from-purple-600 data-[state=active]:to-pink-600 dark:data-[state=active]:to-pink-600 data-[state=active]:text-purple-100 dark:data-[state=active]:text-purple-100\",\n \"gradient-teal\":\n \"bg-linear-to-r from-teal-800 dark:from-teal-800 to-cyan-800 dark:to-cyan-800 text-teal-100 dark:text-teal-50 data-[state=active]:from-teal-600 dark:data-[state=active]:from-teal-600 data-[state=active]:to-cyan-600 dark:data-[state=active]:to-cyan-600 data-[state=active]:text-teal-100 dark:data-[state=active]:text-teal-100\",\n \"gradient-indigo\":\n \"bg-linear-to-r from-indigo-800 dark:from-indigo-800 to-purple-800 dark:to-purple-800 text-indigo-100 dark:text-indigo-50 data-[state=active]:from-indigo-600 dark:data-[state=active]:from-indigo-600 data-[state=active]:to-purple-600 dark:data-[state=active]:to-purple-600 data-[state=active]:text-indigo-100 dark:data-[state=active]:text-indigo-100\",\n \"gradient-pink\":\n \"bg-linear-to-r from-pink-800 dark:from-pink-800 to-rose-800 dark:to-rose-800 text-pink-100 dark:text-pink-50 data-[state=active]:from-pink-600 dark:data-[state=active]:from-pink-600 data-[state=active]:to-rose-600 dark:data-[state=active]:to-rose-600 data-[state=active]:text-pink-100 dark:data-[state=active]:text-pink-100\",\n \"gradient-orange\":\n \"bg-linear-to-r from-orange-800 dark:from-orange-800 to-red-800 dark:to-red-800 text-orange-100 dark:text-orange-50 data-[state=active]:from-orange-600 dark:data-[state=active]:from-orange-600 data-[state=active]:to-red-600 dark:data-[state=active]:to-red-600 data-[state=active]:text-orange-100 dark:data-[state=active]:text-orange-100\",\n },\n variant: {\n default: \"data-[state=active]:bg-background\",\n underline:\n \"border-b-2 border-transparent data-[state=active]:border-current rounded-none\",\n pills: \"\",\n },\n size: {\n sm: \"px-2 py-1\",\n md: \"px-3 py-1.5\",\n lg: \"px-4 py-2\",\n },\n },\n defaultVariants: {\n appearance: \"default\",\n variant: \"pills\",\n size: \"md\",\n },\n },\n);\n","\"use client\";\n\nimport {\n createContext,\n KeyboardEvent,\n useContext,\n useId,\n useRef,\n useState,\n} from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport {\n TabsContentProps,\n TabsListProps,\n TabsProps,\n TabsTriggerProps,\n TabsValue,\n TabsContextType,\n} from \"./types\";\nimport { tabsListVariants, tabsTriggerVariants } from \"./variants\";\n\nexport const TabsContext = createContext<TabsContextType | null>(null);\n\nexport const useTabs = () => {\n const ctx = useContext(TabsContext);\n if (!ctx) throw new Error(\"Tabs components must be used within Tabs\");\n return ctx;\n};\n\nexport function Tabs({\n value,\n defaultValue,\n onValueChange,\n orientation = \"horizontal\",\n variant,\n size,\n appearance,\n children,\n className,\n}: TabsProps) {\n const [internalValue, setInternalValue] = useState(defaultValue);\n const idPrefix = useId();\n const listRef = useRef<HTMLDivElement | null>(null);\n\n const isControlled = value !== undefined;\n const currentValue = isControlled ? value : internalValue;\n\n const setValue = (val: string) => {\n if (!isControlled) setInternalValue(val);\n onValueChange?.(val);\n };\n\n const tabTriggerId = (tabValue: TabsValue) =>\n `${idPrefix}zentauri-tab-${tabValue}`;\n const tabPanelId = (tabValue: TabsValue) =>\n `${idPrefix}zentauri-panel-${tabValue}`;\n\n return (\n <TabsContext.Provider\n value={{\n value: currentValue,\n setValue,\n listRef,\n orientation,\n size,\n variant,\n appearance,\n tabTriggerId,\n tabPanelId,\n }}\n >\n <div data-slot=\"tabs\" className={cn(\"w-full\", className)}>\n {children}\n </div>\n </TabsContext.Provider>\n );\n}\n\nexport function TabsList({ children, className, ...props }: TabsListProps) {\n const { orientation, size, listRef } = useTabs();\n\n return (\n <div\n ref={listRef}\n role=\"tablist\"\n aria-orientation={orientation}\n className={cn(tabsListVariants({ orientation, size }), className)}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nexport function TabsTrigger({\n value,\n children,\n disabled,\n className,\n ...props\n}: TabsTriggerProps) {\n const {\n value: activeValue,\n setValue,\n listRef,\n orientation,\n tabTriggerId,\n tabPanelId,\n size,\n appearance,\n variant,\n } = useTabs();\n\n const isActive = activeValue === value;\n\n const handleKeyDown = (e: KeyboardEvent<HTMLButtonElement>) => {\n const list = listRef.current;\n const triggers =\n list === null\n ? []\n : Array.from(list.querySelectorAll<HTMLButtonElement>('[role=\"tab\"]'));\n\n const nextKeys =\n orientation === \"vertical\" ? [\"ArrowDown\"] : [\"ArrowRight\"];\n const prevKeys = orientation === \"vertical\" ? [\"ArrowUp\"] : [\"ArrowLeft\"];\n\n const index = triggers.findIndex((el) => el === e.currentTarget);\n if (index === -1) {\n return;\n }\n\n const findEnabledIndex = (\n start: number,\n direction: 1 | -1,\n ): number | undefined => {\n const n = triggers.length;\n if (n === 0) {\n return undefined;\n }\n let i = start;\n for (let step = 0; step < n; step += 1) {\n i = (i + direction + n) % n;\n if (triggers[i]?.disabled !== true) {\n return i;\n }\n }\n return undefined;\n };\n\n const focusAt = (i: number) => {\n const target = triggers[i];\n if (target !== undefined && target.disabled !== true) {\n target.focus();\n }\n };\n\n const isNext = nextKeys.includes(e.key);\n const isPrev = prevKeys.includes(e.key);\n\n if (isNext) {\n e.preventDefault();\n const nextIdx = findEnabledIndex(index, 1);\n if (nextIdx !== undefined) {\n focusAt(nextIdx);\n }\n return;\n }\n\n if (isPrev) {\n e.preventDefault();\n const prevIdx = findEnabledIndex(index, -1);\n if (prevIdx !== undefined) {\n focusAt(prevIdx);\n }\n return;\n }\n\n if (e.key === \"Home\") {\n e.preventDefault();\n const firstEnabledIndex = triggers.findIndex((btn) => !btn.disabled);\n if (firstEnabledIndex !== -1) {\n triggers[firstEnabledIndex]?.focus();\n }\n return;\n }\n\n if (e.key === \"End\") {\n e.preventDefault();\n for (let i = triggers.length - 1; i >= 0; i -= 1) {\n if (!triggers[i]?.disabled) {\n triggers[i]?.focus();\n break;\n }\n }\n }\n };\n\n return (\n <button\n id={tabTriggerId(value)}\n type=\"button\"\n role=\"tab\"\n data-state={isActive ? \"active\" : \"inactive\"}\n aria-selected={isActive}\n aria-controls={tabPanelId(value)}\n disabled={disabled}\n tabIndex={activeValue === undefined ? undefined : isActive ? 0 : -1}\n onClick={() => setValue(value)}\n onKeyDown={handleKeyDown}\n className={cn(\n tabsTriggerVariants({ size, appearance, variant }),\n className,\n \"cursor-pointer\",\n )}\n {...props}\n >\n {children}\n </button>\n );\n}\n\nexport function TabsContent({\n value,\n children,\n className,\n as: Wrapper = \"div\",\n ...props\n}: TabsContentProps) {\n const { value: activeValue, tabTriggerId, tabPanelId } = useTabs();\n\n if (activeValue !== value) return null;\n\n return (\n <Wrapper\n id={tabPanelId(value)}\n role=\"tabpanel\"\n aria-labelledby={tabTriggerId(value)}\n className={cn(\"mt-2\", className)}\n {...props}\n >\n {children}\n </Wrapper>\n );\n}\n"]}
@@ -3,7 +3,7 @@ import { cva } from 'class-variance-authority';
3
3
  import { createContext, useContext, useState, useId, useRef } from 'react';
4
4
  import { jsx } from 'react/jsx-runtime';
5
5
 
6
- var tabsListVariants = cva("flex items-center gap-1", {
6
+ var tabsListVariants = cva("flex flex-wrap items-center gap-1", {
7
7
  variants: {
8
8
  variant: {
9
9
  default: "bg-transparent",
@@ -260,5 +260,5 @@ function TabsContent({
260
260
  }
261
261
 
262
262
  export { Tabs, TabsContent, TabsContext, TabsList, TabsTrigger, tabsListVariants, tabsTriggerVariants, useTabs };
263
- //# sourceMappingURL=chunk-LPL6NJ5Q.mjs.map
264
- //# sourceMappingURL=chunk-LPL6NJ5Q.mjs.map
263
+ //# sourceMappingURL=chunk-OZ4SFJ3S.mjs.map
264
+ //# sourceMappingURL=chunk-OZ4SFJ3S.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ui/tabs/variants.ts","../src/ui/tabs/tabs-base.tsx"],"names":[],"mappings":"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","file":"chunk-OZ4SFJ3S.mjs","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const tabsListVariants = cva(\"flex flex-wrap items-center gap-1\", {\n variants: {\n variant: {\n default: \"bg-transparent\",\n underline: \"border-b-2 border-transparent\",\n pills: \"rounded-md\",\n },\n size: {\n sm: \"text-sm p-1\",\n md: \"text-base p-1.5\",\n lg: \"text-lg p-2\",\n },\n orientation: {\n horizontal: \"flex-row\",\n vertical: \"flex-col\",\n },\n },\n defaultVariants: {\n size: \"md\",\n orientation: \"horizontal\",\n variant: \"pills\",\n },\n});\n\nexport const tabsTriggerVariants = cva(\n \"px-3 py-1.5 rounded-md transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\",\n {\n variants: {\n appearance: {\n default: \"bg-transparent text-slate-900 dark:text-slate-50\",\n sky: \"bg-sky-300 text-sky-900 dark:bg-sky-900 dark:text-sky-200 data-[state=active]:bg-sky-900 dark:data-[state=active]:bg-sky-700 data-[state=active]:text-sky-50 dark:data-[state=active]:text-sky-100\",\n rose: \"bg-rose-300 text-rose-900 dark:bg-rose-900 dark:text-rose-200 data-[state=active]:bg-rose-900 dark:data-[state=active]:bg-rose-700 data-[state=active]:text-rose-50 dark:data-[state=active]:text-rose-100\",\n purple:\n \"bg-purple-300 text-purple-900 dark:bg-purple-900 dark:text-purple-200 data-[state=active]:bg-purple-900 dark:data-[state=active]:bg-purple-700 data-[state=active]:text-purple-50 dark:data-[state=active]:text-purple-100\",\n pink: \"bg-pink-300 text-pink-900 dark:bg-pink-900 dark:text-pink-200 data-[state=active]:bg-pink-900 dark:data-[state=active]:bg-pink-700 data-[state=active]:text-pink-50 dark:data-[state=active]:text-pink-100\",\n orange:\n \"bg-orange-300 text-orange-900 dark:bg-orange-900 dark:text-orange-200 data-[state=active]:bg-orange-900 dark:data-[state=active]:bg-orange-700 data-[state=active]:text-orange-50 dark:data-[state=active]:text-orange-100\",\n yellow:\n \"bg-yellow-300 text-yellow-900 dark:bg-yellow-900 dark:text-yellow-200 data-[state=active]:bg-yellow-900 dark:data-[state=active]:bg-yellow-700 data-[state=active]:text-yellow-50 dark:data-[state=active]:text-yellow-100\",\n teal: \"bg-teal-300 text-teal-900 dark:bg-teal-900 dark:text-teal-200 data-[state=active]:bg-teal-900 dark:data-[state=active]:bg-teal-700 data-[state=active]:text-teal-50 dark:data-[state=active]:text-teal-100\",\n indigo:\n \"bg-indigo-300 text-indigo-900 dark:bg-indigo-900 dark:text-indigo-200 data-[state=active]:bg-indigo-900 dark:data-[state=active]:bg-indigo-700 data-[state=active]:text-indigo-50 dark:data-[state=active]:text-indigo-100\",\n emerald:\n \"bg-emerald-300 text-emerald-900 dark:bg-emerald-900 dark:text-emerald-200 data-[state=active]:bg-emerald-900 dark:data-[state=active]:bg-emerald-700 data-[state=active]:text-emerald-50 dark:data-[state=active]:text-emerald-100\",\n gray: \"bg-gray-300 text-gray-900 dark:bg-gray-900 dark:text-gray-200 data-[state=active]:bg-gray-900 dark:data-[state=active]:bg-gray-700 data-[state=active]:text-gray-50 dark:data-[state=active]:text-gray-100\",\n \"gradient-blue\":\n \"bg-linear-to-r from-blue-800 dark:from-blue-800 to-purple-800 dark:to-purple-800 text-blue-100 dark:text-blue-50 data-[state=active]:from-blue-600 dark:data-[state=active]:from-blue-600 data-[state=active]:to-purple-600 dark:data-[state=active]:to-purple-600 data-[state=active]:text-blue-100 dark:data-[state=active]:text-blue-100\",\n \"gradient-green\":\n \"bg-linear-to-r from-green-800 dark:from-green-800 to-lime-800 dark:to-lime-800 text-green-100 dark:text-green-50 data-[state=active]:from-green-600 dark:data-[state=active]:from-green-600 data-[state=active]:to-lime-600 dark:data-[state=active]:to-lime-600 data-[state=active]:text-green-100 dark:data-[state=active]:text-green-100\",\n \"gradient-red\":\n \"bg-linear-to-r from-red-800 dark:from-red-800 to-pink-800 dark:to-pink-800 text-red-100 dark:text-red-50 data-[state=active]:from-red-600 dark:data-[state=active]:from-red-600 data-[state=active]:to-pink-600 dark:data-[state=active]:to-pink-600 data-[state=active]:text-red-100 dark:data-[state=active]:text-red-100\",\n \"gradient-yellow\":\n \"bg-linear-to-r from-yellow-800 dark:from-yellow-800 to-orange-800 dark:to-orange-800 text-yellow-100 dark:text-yellow-50 data-[state=active]:from-yellow-600 dark:data-[state=active]:from-yellow-600 data-[state=active]:to-orange-600 dark:data-[state=active]:to-orange-600 data-[state=active]:text-yellow-100 dark:data-[state=active]:text-yellow-100\",\n \"gradient-purple\":\n \"bg-linear-to-r from-purple-800 dark:from-purple-800 to-pink-800 dark:to-pink-800 text-purple-100 dark:text-purple-50 data-[state=active]:from-purple-600 dark:data-[state=active]:from-purple-600 data-[state=active]:to-pink-600 dark:data-[state=active]:to-pink-600 data-[state=active]:text-purple-100 dark:data-[state=active]:text-purple-100\",\n \"gradient-teal\":\n \"bg-linear-to-r from-teal-800 dark:from-teal-800 to-cyan-800 dark:to-cyan-800 text-teal-100 dark:text-teal-50 data-[state=active]:from-teal-600 dark:data-[state=active]:from-teal-600 data-[state=active]:to-cyan-600 dark:data-[state=active]:to-cyan-600 data-[state=active]:text-teal-100 dark:data-[state=active]:text-teal-100\",\n \"gradient-indigo\":\n \"bg-linear-to-r from-indigo-800 dark:from-indigo-800 to-purple-800 dark:to-purple-800 text-indigo-100 dark:text-indigo-50 data-[state=active]:from-indigo-600 dark:data-[state=active]:from-indigo-600 data-[state=active]:to-purple-600 dark:data-[state=active]:to-purple-600 data-[state=active]:text-indigo-100 dark:data-[state=active]:text-indigo-100\",\n \"gradient-pink\":\n \"bg-linear-to-r from-pink-800 dark:from-pink-800 to-rose-800 dark:to-rose-800 text-pink-100 dark:text-pink-50 data-[state=active]:from-pink-600 dark:data-[state=active]:from-pink-600 data-[state=active]:to-rose-600 dark:data-[state=active]:to-rose-600 data-[state=active]:text-pink-100 dark:data-[state=active]:text-pink-100\",\n \"gradient-orange\":\n \"bg-linear-to-r from-orange-800 dark:from-orange-800 to-red-800 dark:to-red-800 text-orange-100 dark:text-orange-50 data-[state=active]:from-orange-600 dark:data-[state=active]:from-orange-600 data-[state=active]:to-red-600 dark:data-[state=active]:to-red-600 data-[state=active]:text-orange-100 dark:data-[state=active]:text-orange-100\",\n },\n variant: {\n default: \"data-[state=active]:bg-background\",\n underline:\n \"border-b-2 border-transparent data-[state=active]:border-current rounded-none\",\n pills: \"\",\n },\n size: {\n sm: \"px-2 py-1\",\n md: \"px-3 py-1.5\",\n lg: \"px-4 py-2\",\n },\n },\n defaultVariants: {\n appearance: \"default\",\n variant: \"pills\",\n size: \"md\",\n },\n },\n);\n","\"use client\";\n\nimport {\n createContext,\n KeyboardEvent,\n useContext,\n useId,\n useRef,\n useState,\n} from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport {\n TabsContentProps,\n TabsListProps,\n TabsProps,\n TabsTriggerProps,\n TabsValue,\n TabsContextType,\n} from \"./types\";\nimport { tabsListVariants, tabsTriggerVariants } from \"./variants\";\n\nexport const TabsContext = createContext<TabsContextType | null>(null);\n\nexport const useTabs = () => {\n const ctx = useContext(TabsContext);\n if (!ctx) throw new Error(\"Tabs components must be used within Tabs\");\n return ctx;\n};\n\nexport function Tabs({\n value,\n defaultValue,\n onValueChange,\n orientation = \"horizontal\",\n variant,\n size,\n appearance,\n children,\n className,\n}: TabsProps) {\n const [internalValue, setInternalValue] = useState(defaultValue);\n const idPrefix = useId();\n const listRef = useRef<HTMLDivElement | null>(null);\n\n const isControlled = value !== undefined;\n const currentValue = isControlled ? value : internalValue;\n\n const setValue = (val: string) => {\n if (!isControlled) setInternalValue(val);\n onValueChange?.(val);\n };\n\n const tabTriggerId = (tabValue: TabsValue) =>\n `${idPrefix}zentauri-tab-${tabValue}`;\n const tabPanelId = (tabValue: TabsValue) =>\n `${idPrefix}zentauri-panel-${tabValue}`;\n\n return (\n <TabsContext.Provider\n value={{\n value: currentValue,\n setValue,\n listRef,\n orientation,\n size,\n variant,\n appearance,\n tabTriggerId,\n tabPanelId,\n }}\n >\n <div data-slot=\"tabs\" className={cn(\"w-full\", className)}>\n {children}\n </div>\n </TabsContext.Provider>\n );\n}\n\nexport function TabsList({ children, className, ...props }: TabsListProps) {\n const { orientation, size, listRef } = useTabs();\n\n return (\n <div\n ref={listRef}\n role=\"tablist\"\n aria-orientation={orientation}\n className={cn(tabsListVariants({ orientation, size }), className)}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nexport function TabsTrigger({\n value,\n children,\n disabled,\n className,\n ...props\n}: TabsTriggerProps) {\n const {\n value: activeValue,\n setValue,\n listRef,\n orientation,\n tabTriggerId,\n tabPanelId,\n size,\n appearance,\n variant,\n } = useTabs();\n\n const isActive = activeValue === value;\n\n const handleKeyDown = (e: KeyboardEvent<HTMLButtonElement>) => {\n const list = listRef.current;\n const triggers =\n list === null\n ? []\n : Array.from(list.querySelectorAll<HTMLButtonElement>('[role=\"tab\"]'));\n\n const nextKeys =\n orientation === \"vertical\" ? [\"ArrowDown\"] : [\"ArrowRight\"];\n const prevKeys = orientation === \"vertical\" ? [\"ArrowUp\"] : [\"ArrowLeft\"];\n\n const index = triggers.findIndex((el) => el === e.currentTarget);\n if (index === -1) {\n return;\n }\n\n const findEnabledIndex = (\n start: number,\n direction: 1 | -1,\n ): number | undefined => {\n const n = triggers.length;\n if (n === 0) {\n return undefined;\n }\n let i = start;\n for (let step = 0; step < n; step += 1) {\n i = (i + direction + n) % n;\n if (triggers[i]?.disabled !== true) {\n return i;\n }\n }\n return undefined;\n };\n\n const focusAt = (i: number) => {\n const target = triggers[i];\n if (target !== undefined && target.disabled !== true) {\n target.focus();\n }\n };\n\n const isNext = nextKeys.includes(e.key);\n const isPrev = prevKeys.includes(e.key);\n\n if (isNext) {\n e.preventDefault();\n const nextIdx = findEnabledIndex(index, 1);\n if (nextIdx !== undefined) {\n focusAt(nextIdx);\n }\n return;\n }\n\n if (isPrev) {\n e.preventDefault();\n const prevIdx = findEnabledIndex(index, -1);\n if (prevIdx !== undefined) {\n focusAt(prevIdx);\n }\n return;\n }\n\n if (e.key === \"Home\") {\n e.preventDefault();\n const firstEnabledIndex = triggers.findIndex((btn) => !btn.disabled);\n if (firstEnabledIndex !== -1) {\n triggers[firstEnabledIndex]?.focus();\n }\n return;\n }\n\n if (e.key === \"End\") {\n e.preventDefault();\n for (let i = triggers.length - 1; i >= 0; i -= 1) {\n if (!triggers[i]?.disabled) {\n triggers[i]?.focus();\n break;\n }\n }\n }\n };\n\n return (\n <button\n id={tabTriggerId(value)}\n type=\"button\"\n role=\"tab\"\n data-state={isActive ? \"active\" : \"inactive\"}\n aria-selected={isActive}\n aria-controls={tabPanelId(value)}\n disabled={disabled}\n tabIndex={activeValue === undefined ? undefined : isActive ? 0 : -1}\n onClick={() => setValue(value)}\n onKeyDown={handleKeyDown}\n className={cn(\n tabsTriggerVariants({ size, appearance, variant }),\n className,\n \"cursor-pointer\",\n )}\n {...props}\n >\n {children}\n </button>\n );\n}\n\nexport function TabsContent({\n value,\n children,\n className,\n as: Wrapper = \"div\",\n ...props\n}: TabsContentProps) {\n const { value: activeValue, tabTriggerId, tabPanelId } = useTabs();\n\n if (activeValue !== value) return null;\n\n return (\n <Wrapper\n id={tabPanelId(value)}\n role=\"tabpanel\"\n aria-labelledby={tabTriggerId(value)}\n className={cn(\"mt-2\", className)}\n {...props}\n >\n {children}\n </Wrapper>\n );\n}\n"]}
@@ -118,7 +118,7 @@ function DividerBase({
118
118
  "aria-orientation": orientation === "vertical" ? "vertical" : "horizontal",
119
119
  className: chunkZS5756ZC_js.cn(
120
120
  dividerToneVariants({ appearance }),
121
- orientation === "horizontal" ? "flex w-full min-h-px flex-row items-stretch" : "flex h-full min-h-8 w-auto min-w-0 flex-col items-stretch self-stretch",
121
+ orientation === "horizontal" ? "flex w-full min-h-px flex-row items-stretch" : "flex h-full min-h-8 w-auto min-w-0 items-stretch self-stretch",
122
122
  className
123
123
  ),
124
124
  ...rest,
@@ -171,5 +171,5 @@ exports.dividerLabelVariants = dividerLabelVariants;
171
171
  exports.dividerLineVariants = dividerLineVariants;
172
172
  exports.dividerToneVariants = dividerToneVariants;
173
173
  exports.dividerVariants = dividerVariants;
174
- //# sourceMappingURL=chunk-3OXIZ4ZO.js.map
175
- //# sourceMappingURL=chunk-3OXIZ4ZO.js.map
174
+ //# sourceMappingURL=chunk-QWC2QBRJ.js.map
175
+ //# sourceMappingURL=chunk-QWC2QBRJ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ui/divider/variants.ts","../src/ui/divider/divider-base.tsx"],"names":["cva","jsx","cn","jsxs"],"mappings":";;;;;;AAEA,IAAM,WAAA,GAAc;AAAA,EAClB,OAAA,EAAS,oCAAA;AAAA,EACT,KAAA,EAAO,oCAAA;AAAA,EACP,OAAA,EAAS,kCAAA;AAAA,EACT,WAAA,EAAa,kCAAA;AAAA,EACb,KAAA,EAAO,oCAAA;AAAA,EACP,GAAA,EAAK,gCAAA;AAAA,EACL,IAAA,EAAM,kCAAA;AAAA,EACN,MAAA,EAAQ,sCAAA;AAAA,EACR,IAAA,EAAM,kCAAA;AAAA,EACN,MAAA,EAAQ,sCAAA;AAAA,EACR,MAAA,EAAQ,sCAAA;AAAA,EACR,IAAA,EAAM,kCAAA;AAAA,EACN,MAAA,EAAQ,sCAAA;AAAA,EACR,OAAA,EAAS,wCAAA;AAAA,EACT,IAAA,EAAM,kCAAA;AAAA,EACN,KAAA,EAAO,oCAAA;AAAA,EACP,MAAA,EAAQ,sCAAA;AAAA,EACR,eAAA,EAAiB,kCAAA;AAAA,EACjB,gBAAA,EAAkB,oCAAA;AAAA,EAClB,cAAA,EAAgB,gCAAA;AAAA,EAChB,iBAAA,EAAmB,sCAAA;AAAA,EACnB,iBAAA,EAAmB,sCAAA;AAAA,EACnB,eAAA,EAAiB,kCAAA;AAAA,EACjB,iBAAA,EAAmB,sCAAA;AAAA,EACnB,eAAA,EAAiB,kCAAA;AAAA,EACjB,iBAAA,EAAmB;AACrB,CAAA;AAEO,IAAM,mBAAA,GAAsBA,2BAAI,EAAA,EAAI;AAAA,EACzC,QAAA,EAAU;AAAA,IACR,UAAA,EAAY;AAAA,GACd;AAAA,EACA,eAAA,EAAiB,EAAE,UAAA,EAAY,SAAA;AACjC,CAAC;AAEM,IAAM,eAAA,GAAkBA,2BAAI,gCAAA,EAAkC;AAAA,EACnE,QAAA,EAAU;AAAA,IACR,UAAA,EAAY,WAAA;AAAA,IACZ,WAAA,EAAa;AAAA,MACX,UAAA,EAAY,iBAAA;AAAA,MACZ,QAAA,EAAU;AAAA,KACZ;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,EAAA;AAAA,MACJ,EAAA,EAAI,EAAA;AAAA,MACJ,EAAA,EAAI;AAAA;AACN,GACF;AAAA,EACA,gBAAA,EAAkB;AAAA,IAChB,EAAE,WAAA,EAAa,YAAA,EAAc,IAAA,EAAM,IAAA,EAAM,OAAO,UAAA,EAAW;AAAA,IAC3D,EAAE,WAAA,EAAa,YAAA,EAAc,IAAA,EAAM,IAAA,EAAM,OAAO,aAAA,EAAc;AAAA,IAC9D,EAAE,WAAA,EAAa,YAAA,EAAc,IAAA,EAAM,IAAA,EAAM,OAAO,aAAA,EAAc;AAAA,IAC9D,EAAE,WAAA,EAAa,UAAA,EAAY,IAAA,EAAM,IAAA,EAAM,OAAO,UAAA,EAAW;AAAA,IACzD,EAAE,WAAA,EAAa,UAAA,EAAY,IAAA,EAAM,IAAA,EAAM,OAAO,aAAA,EAAc;AAAA,IAC5D,EAAE,WAAA,EAAa,UAAA,EAAY,IAAA,EAAM,IAAA,EAAM,OAAO,aAAA;AAAc,GAC9D;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,UAAA,EAAY,SAAA;AAAA,IACZ,WAAA,EAAa,YAAA;AAAA,IACb,IAAA,EAAM;AAAA;AAEV,CAAC;AAEM,IAAM,mBAAA,GAAsBA,0BAAA;AAAA,EACjC,gDAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,WAAA,EAAa;AAAA,QACX,UAAA,EAAY,MAAA;AAAA,QACZ,QAAA,EAAU;AAAA,OACZ;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,EAAA;AAAA,QACJ,EAAA,EAAI,EAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,gBAAA,EAAkB;AAAA,MAChB,EAAE,WAAA,EAAa,YAAA,EAAc,IAAA,EAAM,IAAA,EAAM,OAAO,MAAA,EAAO;AAAA,MACvD,EAAE,WAAA,EAAa,YAAA,EAAc,IAAA,EAAM,IAAA,EAAM,OAAO,OAAA,EAAQ;AAAA,MACxD,EAAE,WAAA,EAAa,YAAA,EAAc,IAAA,EAAM,IAAA,EAAM,OAAO,KAAA,EAAM;AAAA,MACtD,EAAE,WAAA,EAAa,UAAA,EAAY,IAAA,EAAM,IAAA,EAAM,OAAO,MAAA,EAAO;AAAA,MACrD,EAAE,WAAA,EAAa,UAAA,EAAY,IAAA,EAAM,IAAA,EAAM,OAAO,OAAA,EAAQ;AAAA,MACtD,EAAE,WAAA,EAAa,UAAA,EAAY,IAAA,EAAM,IAAA,EAAM,OAAO,KAAA;AAAM,KACtD;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,WAAA,EAAa,YAAA;AAAA,MACb,IAAA,EAAM;AAAA;AACR;AAEJ;AAEO,IAAM,oBAAA,GAAuBA,0BAAA;AAAA,EAClC;AACF;ACrFO,SAAS,WAAA,CAAY;AAAA,EAC1B,SAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAA;AAAA,EACA,IAAI,OAAA,GAAU,KAAA;AAAA,EACd,GAAG;AACL,CAAA,EAAqB;AACnB,EAAA,MAAM,OAAO,KAAA,IAAS,QAAA;AAEtB,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,uBACEC,cAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAA,EAAU,SAAA;AAAA,QACV,IAAA,EAAK,WAAA;AAAA,QACL,kBAAA,EACE,WAAA,KAAgB,UAAA,GAAa,UAAA,GAAa,YAAA;AAAA,QAE5C,SAAA,EAAWC,mBAAA;AAAA,UACT,mBAAA,CAAoB,EAAE,UAAA,EAAY,CAAA;AAAA,UAClC,WAAA,KAAgB,eACZ,6CAAA,GACA,wEAAA;AAAA,UACJ;AAAA,SACF;AAAA,QACC,GAAG,IAAA;AAAA,QAEJ,QAAA,kBAAAD,cAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,WAAWC,mBAAA,CAAG,mBAAA,CAAoB,EAAE,WAAA,EAAa,IAAA,EAAM,CAAC,CAAA;AAAA,YACxD,aAAA,EAAW;AAAA;AAAA;AACb;AAAA,KACF;AAAA,EAEJ;AAEA,EAAA,uBACEC,eAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,SAAA;AAAA,MACV,IAAA,EAAK,WAAA;AAAA,MACL,kBAAA,EAAkB,WAAA,KAAgB,UAAA,GAAa,UAAA,GAAa,YAAA;AAAA,MAC5D,SAAA,EAAWD,mBAAA;AAAA,QACT,eAAA,CAAgB,EAAE,UAAA,EAAY,WAAA,EAAa,MAAM,CAAA;AAAA,QACjD;AAAA,OACF;AAAA,MACC,GAAG,IAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAD,cAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,WAAWC,mBAAA,CAAG,mBAAA,CAAoB,EAAE,WAAA,EAAa,IAAA,EAAM,CAAC,CAAA;AAAA,YACxD,aAAA,EAAW;AAAA;AAAA,SACb;AAAA,uCACC,MAAA,EAAA,EAAK,WAAA,EAAU,iBAAgB,SAAA,EAAW,oBAAA,IACxC,QAAA,EAAA,IAAA,EACH,CAAA;AAAA,wBACAD,cAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,WAAWC,mBAAA,CAAG,mBAAA,CAAoB,EAAE,WAAA,EAAa,IAAA,EAAM,CAAC,CAAA;AAAA,YACxD,aAAA,EAAW;AAAA;AAAA;AACb;AAAA;AAAA,GACF;AAEJ;AAEA,WAAA,CAAY,WAAA,GAAc,SAAA","file":"chunk-3OXIZ4ZO.js","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nconst APPEARANCES = {\n default: \"text-slate-700 dark:text-slate-200\",\n muted: \"text-slate-500 dark:text-slate-500\",\n primary: \"text-cyan-700 dark:text-cyan-300\",\n destructive: \"text-rose-600 dark:text-rose-400\",\n ghost: \"text-slate-400 dark:text-slate-600\",\n sky: \"text-sky-600 dark:text-sky-400\",\n rose: \"text-rose-600 dark:text-rose-400\",\n purple: \"text-purple-600 dark:text-purple-400\",\n pink: \"text-pink-600 dark:text-pink-400\",\n orange: \"text-orange-600 dark:text-orange-400\",\n yellow: \"text-yellow-600 dark:text-yellow-400\",\n teal: \"text-teal-600 dark:text-teal-400\",\n indigo: \"text-indigo-600 dark:text-indigo-400\",\n emerald: \"text-emerald-600 dark:text-emerald-400\",\n gray: \"text-gray-600 dark:text-gray-400\",\n amber: \"text-amber-600 dark:text-amber-400\",\n violet: \"text-violet-600 dark:text-violet-400\",\n \"gradient-blue\": \"text-blue-600 dark:text-blue-400\",\n \"gradient-green\": \"text-green-600 dark:text-green-400\",\n \"gradient-red\": \"text-red-600 dark:text-red-400\",\n \"gradient-yellow\": \"text-yellow-600 dark:text-yellow-400\",\n \"gradient-purple\": \"text-purple-600 dark:text-purple-400\",\n \"gradient-teal\": \"text-teal-600 dark:text-teal-400\",\n \"gradient-indigo\": \"text-indigo-600 dark:text-indigo-400\",\n \"gradient-pink\": \"text-pink-600 dark:text-pink-400\",\n \"gradient-orange\": \"text-orange-600 dark:text-orange-400\",\n};\n\nexport const dividerToneVariants = cva(\"\", {\n variants: {\n appearance: APPEARANCES,\n },\n defaultVariants: { appearance: \"default\" },\n});\n\nexport const dividerVariants = cva(\"flex w-full items-center gap-3\", {\n variants: {\n appearance: APPEARANCES,\n orientation: {\n horizontal: \"w-full flex-row\",\n vertical: \"h-full min-h-[2rem] w-auto flex-col self-stretch\",\n },\n size: {\n sm: \"\",\n md: \"\",\n lg: \"\",\n },\n },\n compoundVariants: [\n { orientation: \"horizontal\", size: \"sm\", class: \"min-h-px\" },\n { orientation: \"horizontal\", size: \"md\", class: \"min-h-[2px]\" },\n { orientation: \"horizontal\", size: \"lg\", class: \"min-h-[3px]\" },\n { orientation: \"vertical\", size: \"sm\", class: \"min-w-px\" },\n { orientation: \"vertical\", size: \"md\", class: \"min-w-[2px]\" },\n { orientation: \"vertical\", size: \"lg\", class: \"min-w-[3px]\" },\n ],\n defaultVariants: {\n appearance: \"default\",\n orientation: \"horizontal\",\n size: \"md\",\n },\n});\n\nexport const dividerLineVariants = cva(\n \"shrink grow rounded-full bg-current opacity-80\",\n {\n variants: {\n orientation: {\n horizontal: \"h-px\",\n vertical: \"w-px flex-1\",\n },\n size: {\n sm: \"\",\n md: \"\",\n lg: \"\",\n },\n },\n compoundVariants: [\n { orientation: \"horizontal\", size: \"sm\", class: \"h-px\" },\n { orientation: \"horizontal\", size: \"md\", class: \"h-0.5\" },\n { orientation: \"horizontal\", size: \"lg\", class: \"h-1\" },\n { orientation: \"vertical\", size: \"sm\", class: \"w-px\" },\n { orientation: \"vertical\", size: \"md\", class: \"w-0.5\" },\n { orientation: \"vertical\", size: \"lg\", class: \"w-1\" },\n ],\n defaultVariants: {\n orientation: \"horizontal\",\n size: \"md\",\n },\n },\n);\n\nexport const dividerLabelVariants = cva(\n \"shrink-0 text-xs font-medium uppercase tracking-wide text-current\",\n);\n","\"use client\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type { DividerBaseProps } from \"./types\";\nimport {\n dividerLabelVariants,\n dividerLineVariants,\n dividerToneVariants,\n dividerVariants,\n} from \"./variants\";\n\nexport function DividerBase({\n className,\n appearance,\n orientation,\n size,\n label,\n children,\n ref,\n as: Wrapper = \"div\",\n ...rest\n}: DividerBaseProps) {\n const slot = label ?? children;\n\n if (!slot) {\n return (\n <Wrapper\n ref={ref}\n data-slot=\"divider\"\n role=\"separator\"\n aria-orientation={\n orientation === \"vertical\" ? \"vertical\" : \"horizontal\"\n }\n className={cn(\n dividerToneVariants({ appearance }),\n orientation === \"horizontal\"\n ? \"flex w-full min-h-px flex-row items-stretch\"\n : \"flex h-full min-h-8 w-auto min-w-0 flex-col items-stretch self-stretch\",\n className,\n )}\n {...rest}\n >\n <span\n className={cn(dividerLineVariants({ orientation, size }))}\n aria-hidden\n />\n </Wrapper>\n );\n }\n\n return (\n <Wrapper\n ref={ref}\n data-slot=\"divider\"\n role=\"separator\"\n aria-orientation={orientation === \"vertical\" ? \"vertical\" : \"horizontal\"}\n className={cn(\n dividerVariants({ appearance, orientation, size }),\n className,\n )}\n {...rest}\n >\n <span\n className={cn(dividerLineVariants({ orientation, size }))}\n aria-hidden\n />\n <span data-slot=\"divider-label\" className={dividerLabelVariants()}>\n {slot}\n </span>\n <span\n className={cn(dividerLineVariants({ orientation, size }))}\n aria-hidden\n />\n </Wrapper>\n );\n}\n\nDividerBase.displayName = \"Divider\";\n"]}
1
+ {"version":3,"sources":["../src/ui/divider/variants.ts","../src/ui/divider/divider-base.tsx"],"names":["cva","jsx","cn","jsxs"],"mappings":"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","file":"chunk-QWC2QBRJ.js","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nconst APPEARANCES = {\n default: \"text-slate-700 dark:text-slate-200\",\n muted: \"text-slate-500 dark:text-slate-500\",\n primary: \"text-cyan-700 dark:text-cyan-300\",\n destructive: \"text-rose-600 dark:text-rose-400\",\n ghost: \"text-slate-400 dark:text-slate-600\",\n sky: \"text-sky-600 dark:text-sky-400\",\n rose: \"text-rose-600 dark:text-rose-400\",\n purple: \"text-purple-600 dark:text-purple-400\",\n pink: \"text-pink-600 dark:text-pink-400\",\n orange: \"text-orange-600 dark:text-orange-400\",\n yellow: \"text-yellow-600 dark:text-yellow-400\",\n teal: \"text-teal-600 dark:text-teal-400\",\n indigo: \"text-indigo-600 dark:text-indigo-400\",\n emerald: \"text-emerald-600 dark:text-emerald-400\",\n gray: \"text-gray-600 dark:text-gray-400\",\n amber: \"text-amber-600 dark:text-amber-400\",\n violet: \"text-violet-600 dark:text-violet-400\",\n \"gradient-blue\": \"text-blue-600 dark:text-blue-400\",\n \"gradient-green\": \"text-green-600 dark:text-green-400\",\n \"gradient-red\": \"text-red-600 dark:text-red-400\",\n \"gradient-yellow\": \"text-yellow-600 dark:text-yellow-400\",\n \"gradient-purple\": \"text-purple-600 dark:text-purple-400\",\n \"gradient-teal\": \"text-teal-600 dark:text-teal-400\",\n \"gradient-indigo\": \"text-indigo-600 dark:text-indigo-400\",\n \"gradient-pink\": \"text-pink-600 dark:text-pink-400\",\n \"gradient-orange\": \"text-orange-600 dark:text-orange-400\",\n};\n\nexport const dividerToneVariants = cva(\"\", {\n variants: {\n appearance: APPEARANCES,\n },\n defaultVariants: { appearance: \"default\" },\n});\n\nexport const dividerVariants = cva(\"flex w-full items-center gap-3\", {\n variants: {\n appearance: APPEARANCES,\n orientation: {\n horizontal: \"w-full flex-row\",\n vertical: \"h-full min-h-[2rem] w-auto flex-col self-stretch\",\n },\n size: {\n sm: \"\",\n md: \"\",\n lg: \"\",\n },\n },\n compoundVariants: [\n { orientation: \"horizontal\", size: \"sm\", class: \"min-h-px\" },\n { orientation: \"horizontal\", size: \"md\", class: \"min-h-[2px]\" },\n { orientation: \"horizontal\", size: \"lg\", class: \"min-h-[3px]\" },\n { orientation: \"vertical\", size: \"sm\", class: \"min-w-px\" },\n { orientation: \"vertical\", size: \"md\", class: \"min-w-[2px]\" },\n { orientation: \"vertical\", size: \"lg\", class: \"min-w-[3px]\" },\n ],\n defaultVariants: {\n appearance: \"default\",\n orientation: \"horizontal\",\n size: \"md\",\n },\n});\n\nexport const dividerLineVariants = cva(\n \"shrink grow rounded-full bg-current opacity-80\",\n {\n variants: {\n orientation: {\n horizontal: \"h-px\",\n vertical: \"w-px flex-1\",\n },\n size: {\n sm: \"\",\n md: \"\",\n lg: \"\",\n },\n },\n compoundVariants: [\n { orientation: \"horizontal\", size: \"sm\", class: \"h-px\" },\n { orientation: \"horizontal\", size: \"md\", class: \"h-0.5\" },\n { orientation: \"horizontal\", size: \"lg\", class: \"h-1\" },\n { orientation: \"vertical\", size: \"sm\", class: \"w-px\" },\n { orientation: \"vertical\", size: \"md\", class: \"w-0.5\" },\n { orientation: \"vertical\", size: \"lg\", class: \"w-1\" },\n ],\n defaultVariants: {\n orientation: \"horizontal\",\n size: \"md\",\n },\n },\n);\n\nexport const dividerLabelVariants = cva(\n \"shrink-0 text-xs font-medium uppercase tracking-wide text-current\",\n);\n","\"use client\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type { DividerBaseProps } from \"./types\";\nimport {\n dividerLabelVariants,\n dividerLineVariants,\n dividerToneVariants,\n dividerVariants,\n} from \"./variants\";\n\nexport function DividerBase({\n className,\n appearance,\n orientation,\n size,\n label,\n children,\n ref,\n as: Wrapper = \"div\",\n ...rest\n}: DividerBaseProps) {\n const slot = label ?? children;\n\n if (!slot) {\n return (\n <Wrapper\n ref={ref}\n data-slot=\"divider\"\n role=\"separator\"\n aria-orientation={\n orientation === \"vertical\" ? \"vertical\" : \"horizontal\"\n }\n className={cn(\n dividerToneVariants({ appearance }),\n orientation === \"horizontal\"\n ? \"flex w-full min-h-px flex-row items-stretch\"\n : \"flex h-full min-h-8 w-auto min-w-0 items-stretch self-stretch\",\n className,\n )}\n {...rest}\n >\n <span\n className={cn(dividerLineVariants({ orientation, size }))}\n aria-hidden\n />\n </Wrapper>\n );\n }\n\n return (\n <Wrapper\n ref={ref}\n data-slot=\"divider\"\n role=\"separator\"\n aria-orientation={orientation === \"vertical\" ? \"vertical\" : \"horizontal\"}\n className={cn(\n dividerVariants({ appearance, orientation, size }),\n className,\n )}\n {...rest}\n >\n <span\n className={cn(dividerLineVariants({ orientation, size }))}\n aria-hidden\n />\n <span data-slot=\"divider-label\" className={dividerLabelVariants()}>\n {slot}\n </span>\n <span\n className={cn(dividerLineVariants({ orientation, size }))}\n aria-hidden\n />\n </Wrapper>\n );\n}\n\nDividerBase.displayName = \"Divider\";\n"]}
@@ -116,7 +116,7 @@ function DividerBase({
116
116
  "aria-orientation": orientation === "vertical" ? "vertical" : "horizontal",
117
117
  className: cn(
118
118
  dividerToneVariants({ appearance }),
119
- orientation === "horizontal" ? "flex w-full min-h-px flex-row items-stretch" : "flex h-full min-h-8 w-auto min-w-0 flex-col items-stretch self-stretch",
119
+ orientation === "horizontal" ? "flex w-full min-h-px flex-row items-stretch" : "flex h-full min-h-8 w-auto min-w-0 items-stretch self-stretch",
120
120
  className
121
121
  ),
122
122
  ...rest,
@@ -165,5 +165,5 @@ function DividerBase({
165
165
  DividerBase.displayName = "Divider";
166
166
 
167
167
  export { DividerBase, dividerLabelVariants, dividerLineVariants, dividerToneVariants, dividerVariants };
168
- //# sourceMappingURL=chunk-J5QJEKY2.mjs.map
169
- //# sourceMappingURL=chunk-J5QJEKY2.mjs.map
168
+ //# sourceMappingURL=chunk-V3XNH7Y4.mjs.map
169
+ //# sourceMappingURL=chunk-V3XNH7Y4.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ui/divider/variants.ts","../src/ui/divider/divider-base.tsx"],"names":[],"mappings":";;;;AAEA,IAAM,WAAA,GAAc;AAAA,EAClB,OAAA,EAAS,oCAAA;AAAA,EACT,KAAA,EAAO,oCAAA;AAAA,EACP,OAAA,EAAS,kCAAA;AAAA,EACT,WAAA,EAAa,kCAAA;AAAA,EACb,KAAA,EAAO,oCAAA;AAAA,EACP,GAAA,EAAK,gCAAA;AAAA,EACL,IAAA,EAAM,kCAAA;AAAA,EACN,MAAA,EAAQ,sCAAA;AAAA,EACR,IAAA,EAAM,kCAAA;AAAA,EACN,MAAA,EAAQ,sCAAA;AAAA,EACR,MAAA,EAAQ,sCAAA;AAAA,EACR,IAAA,EAAM,kCAAA;AAAA,EACN,MAAA,EAAQ,sCAAA;AAAA,EACR,OAAA,EAAS,wCAAA;AAAA,EACT,IAAA,EAAM,kCAAA;AAAA,EACN,KAAA,EAAO,oCAAA;AAAA,EACP,MAAA,EAAQ,sCAAA;AAAA,EACR,eAAA,EAAiB,kCAAA;AAAA,EACjB,gBAAA,EAAkB,oCAAA;AAAA,EAClB,cAAA,EAAgB,gCAAA;AAAA,EAChB,iBAAA,EAAmB,sCAAA;AAAA,EACnB,iBAAA,EAAmB,sCAAA;AAAA,EACnB,eAAA,EAAiB,kCAAA;AAAA,EACjB,iBAAA,EAAmB,sCAAA;AAAA,EACnB,eAAA,EAAiB,kCAAA;AAAA,EACjB,iBAAA,EAAmB;AACrB,CAAA;AAEO,IAAM,mBAAA,GAAsB,IAAI,EAAA,EAAI;AAAA,EACzC,QAAA,EAAU;AAAA,IACR,UAAA,EAAY;AAAA,GACd;AAAA,EACA,eAAA,EAAiB,EAAE,UAAA,EAAY,SAAA;AACjC,CAAC;AAEM,IAAM,eAAA,GAAkB,IAAI,gCAAA,EAAkC;AAAA,EACnE,QAAA,EAAU;AAAA,IACR,UAAA,EAAY,WAAA;AAAA,IACZ,WAAA,EAAa;AAAA,MACX,UAAA,EAAY,iBAAA;AAAA,MACZ,QAAA,EAAU;AAAA,KACZ;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,EAAA;AAAA,MACJ,EAAA,EAAI,EAAA;AAAA,MACJ,EAAA,EAAI;AAAA;AACN,GACF;AAAA,EACA,gBAAA,EAAkB;AAAA,IAChB,EAAE,WAAA,EAAa,YAAA,EAAc,IAAA,EAAM,IAAA,EAAM,OAAO,UAAA,EAAW;AAAA,IAC3D,EAAE,WAAA,EAAa,YAAA,EAAc,IAAA,EAAM,IAAA,EAAM,OAAO,aAAA,EAAc;AAAA,IAC9D,EAAE,WAAA,EAAa,YAAA,EAAc,IAAA,EAAM,IAAA,EAAM,OAAO,aAAA,EAAc;AAAA,IAC9D,EAAE,WAAA,EAAa,UAAA,EAAY,IAAA,EAAM,IAAA,EAAM,OAAO,UAAA,EAAW;AAAA,IACzD,EAAE,WAAA,EAAa,UAAA,EAAY,IAAA,EAAM,IAAA,EAAM,OAAO,aAAA,EAAc;AAAA,IAC5D,EAAE,WAAA,EAAa,UAAA,EAAY,IAAA,EAAM,IAAA,EAAM,OAAO,aAAA;AAAc,GAC9D;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,UAAA,EAAY,SAAA;AAAA,IACZ,WAAA,EAAa,YAAA;AAAA,IACb,IAAA,EAAM;AAAA;AAEV,CAAC;AAEM,IAAM,mBAAA,GAAsB,GAAA;AAAA,EACjC,gDAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,WAAA,EAAa;AAAA,QACX,UAAA,EAAY,MAAA;AAAA,QACZ,QAAA,EAAU;AAAA,OACZ;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,EAAA;AAAA,QACJ,EAAA,EAAI,EAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,gBAAA,EAAkB;AAAA,MAChB,EAAE,WAAA,EAAa,YAAA,EAAc,IAAA,EAAM,IAAA,EAAM,OAAO,MAAA,EAAO;AAAA,MACvD,EAAE,WAAA,EAAa,YAAA,EAAc,IAAA,EAAM,IAAA,EAAM,OAAO,OAAA,EAAQ;AAAA,MACxD,EAAE,WAAA,EAAa,YAAA,EAAc,IAAA,EAAM,IAAA,EAAM,OAAO,KAAA,EAAM;AAAA,MACtD,EAAE,WAAA,EAAa,UAAA,EAAY,IAAA,EAAM,IAAA,EAAM,OAAO,MAAA,EAAO;AAAA,MACrD,EAAE,WAAA,EAAa,UAAA,EAAY,IAAA,EAAM,IAAA,EAAM,OAAO,OAAA,EAAQ;AAAA,MACtD,EAAE,WAAA,EAAa,UAAA,EAAY,IAAA,EAAM,IAAA,EAAM,OAAO,KAAA;AAAM,KACtD;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,WAAA,EAAa,YAAA;AAAA,MACb,IAAA,EAAM;AAAA;AACR;AAEJ;AAEO,IAAM,oBAAA,GAAuB,GAAA;AAAA,EAClC;AACF;ACrFO,SAAS,WAAA,CAAY;AAAA,EAC1B,SAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAA;AAAA,EACA,IAAI,OAAA,GAAU,KAAA;AAAA,EACd,GAAG;AACL,CAAA,EAAqB;AACnB,EAAA,MAAM,OAAO,KAAA,IAAS,QAAA;AAEtB,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,uBACE,GAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAA,EAAU,SAAA;AAAA,QACV,IAAA,EAAK,WAAA;AAAA,QACL,kBAAA,EACE,WAAA,KAAgB,UAAA,GAAa,UAAA,GAAa,YAAA;AAAA,QAE5C,SAAA,EAAW,EAAA;AAAA,UACT,mBAAA,CAAoB,EAAE,UAAA,EAAY,CAAA;AAAA,UAClC,WAAA,KAAgB,eACZ,6CAAA,GACA,wEAAA;AAAA,UACJ;AAAA,SACF;AAAA,QACC,GAAG,IAAA;AAAA,QAEJ,QAAA,kBAAA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,WAAW,EAAA,CAAG,mBAAA,CAAoB,EAAE,WAAA,EAAa,IAAA,EAAM,CAAC,CAAA;AAAA,YACxD,aAAA,EAAW;AAAA;AAAA;AACb;AAAA,KACF;AAAA,EAEJ;AAEA,EAAA,uBACE,IAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,SAAA;AAAA,MACV,IAAA,EAAK,WAAA;AAAA,MACL,kBAAA,EAAkB,WAAA,KAAgB,UAAA,GAAa,UAAA,GAAa,YAAA;AAAA,MAC5D,SAAA,EAAW,EAAA;AAAA,QACT,eAAA,CAAgB,EAAE,UAAA,EAAY,WAAA,EAAa,MAAM,CAAA;AAAA,QACjD;AAAA,OACF;AAAA,MACC,GAAG,IAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,WAAW,EAAA,CAAG,mBAAA,CAAoB,EAAE,WAAA,EAAa,IAAA,EAAM,CAAC,CAAA;AAAA,YACxD,aAAA,EAAW;AAAA;AAAA,SACb;AAAA,4BACC,MAAA,EAAA,EAAK,WAAA,EAAU,iBAAgB,SAAA,EAAW,oBAAA,IACxC,QAAA,EAAA,IAAA,EACH,CAAA;AAAA,wBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,WAAW,EAAA,CAAG,mBAAA,CAAoB,EAAE,WAAA,EAAa,IAAA,EAAM,CAAC,CAAA;AAAA,YACxD,aAAA,EAAW;AAAA;AAAA;AACb;AAAA;AAAA,GACF;AAEJ;AAEA,WAAA,CAAY,WAAA,GAAc,SAAA","file":"chunk-J5QJEKY2.mjs","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nconst APPEARANCES = {\n default: \"text-slate-700 dark:text-slate-200\",\n muted: \"text-slate-500 dark:text-slate-500\",\n primary: \"text-cyan-700 dark:text-cyan-300\",\n destructive: \"text-rose-600 dark:text-rose-400\",\n ghost: \"text-slate-400 dark:text-slate-600\",\n sky: \"text-sky-600 dark:text-sky-400\",\n rose: \"text-rose-600 dark:text-rose-400\",\n purple: \"text-purple-600 dark:text-purple-400\",\n pink: \"text-pink-600 dark:text-pink-400\",\n orange: \"text-orange-600 dark:text-orange-400\",\n yellow: \"text-yellow-600 dark:text-yellow-400\",\n teal: \"text-teal-600 dark:text-teal-400\",\n indigo: \"text-indigo-600 dark:text-indigo-400\",\n emerald: \"text-emerald-600 dark:text-emerald-400\",\n gray: \"text-gray-600 dark:text-gray-400\",\n amber: \"text-amber-600 dark:text-amber-400\",\n violet: \"text-violet-600 dark:text-violet-400\",\n \"gradient-blue\": \"text-blue-600 dark:text-blue-400\",\n \"gradient-green\": \"text-green-600 dark:text-green-400\",\n \"gradient-red\": \"text-red-600 dark:text-red-400\",\n \"gradient-yellow\": \"text-yellow-600 dark:text-yellow-400\",\n \"gradient-purple\": \"text-purple-600 dark:text-purple-400\",\n \"gradient-teal\": \"text-teal-600 dark:text-teal-400\",\n \"gradient-indigo\": \"text-indigo-600 dark:text-indigo-400\",\n \"gradient-pink\": \"text-pink-600 dark:text-pink-400\",\n \"gradient-orange\": \"text-orange-600 dark:text-orange-400\",\n};\n\nexport const dividerToneVariants = cva(\"\", {\n variants: {\n appearance: APPEARANCES,\n },\n defaultVariants: { appearance: \"default\" },\n});\n\nexport const dividerVariants = cva(\"flex w-full items-center gap-3\", {\n variants: {\n appearance: APPEARANCES,\n orientation: {\n horizontal: \"w-full flex-row\",\n vertical: \"h-full min-h-[2rem] w-auto flex-col self-stretch\",\n },\n size: {\n sm: \"\",\n md: \"\",\n lg: \"\",\n },\n },\n compoundVariants: [\n { orientation: \"horizontal\", size: \"sm\", class: \"min-h-px\" },\n { orientation: \"horizontal\", size: \"md\", class: \"min-h-[2px]\" },\n { orientation: \"horizontal\", size: \"lg\", class: \"min-h-[3px]\" },\n { orientation: \"vertical\", size: \"sm\", class: \"min-w-px\" },\n { orientation: \"vertical\", size: \"md\", class: \"min-w-[2px]\" },\n { orientation: \"vertical\", size: \"lg\", class: \"min-w-[3px]\" },\n ],\n defaultVariants: {\n appearance: \"default\",\n orientation: \"horizontal\",\n size: \"md\",\n },\n});\n\nexport const dividerLineVariants = cva(\n \"shrink grow rounded-full bg-current opacity-80\",\n {\n variants: {\n orientation: {\n horizontal: \"h-px\",\n vertical: \"w-px flex-1\",\n },\n size: {\n sm: \"\",\n md: \"\",\n lg: \"\",\n },\n },\n compoundVariants: [\n { orientation: \"horizontal\", size: \"sm\", class: \"h-px\" },\n { orientation: \"horizontal\", size: \"md\", class: \"h-0.5\" },\n { orientation: \"horizontal\", size: \"lg\", class: \"h-1\" },\n { orientation: \"vertical\", size: \"sm\", class: \"w-px\" },\n { orientation: \"vertical\", size: \"md\", class: \"w-0.5\" },\n { orientation: \"vertical\", size: \"lg\", class: \"w-1\" },\n ],\n defaultVariants: {\n orientation: \"horizontal\",\n size: \"md\",\n },\n },\n);\n\nexport const dividerLabelVariants = cva(\n \"shrink-0 text-xs font-medium uppercase tracking-wide text-current\",\n);\n","\"use client\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type { DividerBaseProps } from \"./types\";\nimport {\n dividerLabelVariants,\n dividerLineVariants,\n dividerToneVariants,\n dividerVariants,\n} from \"./variants\";\n\nexport function DividerBase({\n className,\n appearance,\n orientation,\n size,\n label,\n children,\n ref,\n as: Wrapper = \"div\",\n ...rest\n}: DividerBaseProps) {\n const slot = label ?? children;\n\n if (!slot) {\n return (\n <Wrapper\n ref={ref}\n data-slot=\"divider\"\n role=\"separator\"\n aria-orientation={\n orientation === \"vertical\" ? \"vertical\" : \"horizontal\"\n }\n className={cn(\n dividerToneVariants({ appearance }),\n orientation === \"horizontal\"\n ? \"flex w-full min-h-px flex-row items-stretch\"\n : \"flex h-full min-h-8 w-auto min-w-0 flex-col items-stretch self-stretch\",\n className,\n )}\n {...rest}\n >\n <span\n className={cn(dividerLineVariants({ orientation, size }))}\n aria-hidden\n />\n </Wrapper>\n );\n }\n\n return (\n <Wrapper\n ref={ref}\n data-slot=\"divider\"\n role=\"separator\"\n aria-orientation={orientation === \"vertical\" ? \"vertical\" : \"horizontal\"}\n className={cn(\n dividerVariants({ appearance, orientation, size }),\n className,\n )}\n {...rest}\n >\n <span\n className={cn(dividerLineVariants({ orientation, size }))}\n aria-hidden\n />\n <span data-slot=\"divider-label\" className={dividerLabelVariants()}>\n {slot}\n </span>\n <span\n className={cn(dividerLineVariants({ orientation, size }))}\n aria-hidden\n />\n </Wrapper>\n );\n}\n\nDividerBase.displayName = \"Divider\";\n"]}
1
+ {"version":3,"sources":["../src/ui/divider/variants.ts","../src/ui/divider/divider-base.tsx"],"names":[],"mappings":"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","file":"chunk-V3XNH7Y4.mjs","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nconst APPEARANCES = {\n default: \"text-slate-700 dark:text-slate-200\",\n muted: \"text-slate-500 dark:text-slate-500\",\n primary: \"text-cyan-700 dark:text-cyan-300\",\n destructive: \"text-rose-600 dark:text-rose-400\",\n ghost: \"text-slate-400 dark:text-slate-600\",\n sky: \"text-sky-600 dark:text-sky-400\",\n rose: \"text-rose-600 dark:text-rose-400\",\n purple: \"text-purple-600 dark:text-purple-400\",\n pink: \"text-pink-600 dark:text-pink-400\",\n orange: \"text-orange-600 dark:text-orange-400\",\n yellow: \"text-yellow-600 dark:text-yellow-400\",\n teal: \"text-teal-600 dark:text-teal-400\",\n indigo: \"text-indigo-600 dark:text-indigo-400\",\n emerald: \"text-emerald-600 dark:text-emerald-400\",\n gray: \"text-gray-600 dark:text-gray-400\",\n amber: \"text-amber-600 dark:text-amber-400\",\n violet: \"text-violet-600 dark:text-violet-400\",\n \"gradient-blue\": \"text-blue-600 dark:text-blue-400\",\n \"gradient-green\": \"text-green-600 dark:text-green-400\",\n \"gradient-red\": \"text-red-600 dark:text-red-400\",\n \"gradient-yellow\": \"text-yellow-600 dark:text-yellow-400\",\n \"gradient-purple\": \"text-purple-600 dark:text-purple-400\",\n \"gradient-teal\": \"text-teal-600 dark:text-teal-400\",\n \"gradient-indigo\": \"text-indigo-600 dark:text-indigo-400\",\n \"gradient-pink\": \"text-pink-600 dark:text-pink-400\",\n \"gradient-orange\": \"text-orange-600 dark:text-orange-400\",\n};\n\nexport const dividerToneVariants = cva(\"\", {\n variants: {\n appearance: APPEARANCES,\n },\n defaultVariants: { appearance: \"default\" },\n});\n\nexport const dividerVariants = cva(\"flex w-full items-center gap-3\", {\n variants: {\n appearance: APPEARANCES,\n orientation: {\n horizontal: \"w-full flex-row\",\n vertical: \"h-full min-h-[2rem] w-auto flex-col self-stretch\",\n },\n size: {\n sm: \"\",\n md: \"\",\n lg: \"\",\n },\n },\n compoundVariants: [\n { orientation: \"horizontal\", size: \"sm\", class: \"min-h-px\" },\n { orientation: \"horizontal\", size: \"md\", class: \"min-h-[2px]\" },\n { orientation: \"horizontal\", size: \"lg\", class: \"min-h-[3px]\" },\n { orientation: \"vertical\", size: \"sm\", class: \"min-w-px\" },\n { orientation: \"vertical\", size: \"md\", class: \"min-w-[2px]\" },\n { orientation: \"vertical\", size: \"lg\", class: \"min-w-[3px]\" },\n ],\n defaultVariants: {\n appearance: \"default\",\n orientation: \"horizontal\",\n size: \"md\",\n },\n});\n\nexport const dividerLineVariants = cva(\n \"shrink grow rounded-full bg-current opacity-80\",\n {\n variants: {\n orientation: {\n horizontal: \"h-px\",\n vertical: \"w-px flex-1\",\n },\n size: {\n sm: \"\",\n md: \"\",\n lg: \"\",\n },\n },\n compoundVariants: [\n { orientation: \"horizontal\", size: \"sm\", class: \"h-px\" },\n { orientation: \"horizontal\", size: \"md\", class: \"h-0.5\" },\n { orientation: \"horizontal\", size: \"lg\", class: \"h-1\" },\n { orientation: \"vertical\", size: \"sm\", class: \"w-px\" },\n { orientation: \"vertical\", size: \"md\", class: \"w-0.5\" },\n { orientation: \"vertical\", size: \"lg\", class: \"w-1\" },\n ],\n defaultVariants: {\n orientation: \"horizontal\",\n size: \"md\",\n },\n },\n);\n\nexport const dividerLabelVariants = cva(\n \"shrink-0 text-xs font-medium uppercase tracking-wide text-current\",\n);\n","\"use client\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type { DividerBaseProps } from \"./types\";\nimport {\n dividerLabelVariants,\n dividerLineVariants,\n dividerToneVariants,\n dividerVariants,\n} from \"./variants\";\n\nexport function DividerBase({\n className,\n appearance,\n orientation,\n size,\n label,\n children,\n ref,\n as: Wrapper = \"div\",\n ...rest\n}: DividerBaseProps) {\n const slot = label ?? children;\n\n if (!slot) {\n return (\n <Wrapper\n ref={ref}\n data-slot=\"divider\"\n role=\"separator\"\n aria-orientation={\n orientation === \"vertical\" ? \"vertical\" : \"horizontal\"\n }\n className={cn(\n dividerToneVariants({ appearance }),\n orientation === \"horizontal\"\n ? \"flex w-full min-h-px flex-row items-stretch\"\n : \"flex h-full min-h-8 w-auto min-w-0 items-stretch self-stretch\",\n className,\n )}\n {...rest}\n >\n <span\n className={cn(dividerLineVariants({ orientation, size }))}\n aria-hidden\n />\n </Wrapper>\n );\n }\n\n return (\n <Wrapper\n ref={ref}\n data-slot=\"divider\"\n role=\"separator\"\n aria-orientation={orientation === \"vertical\" ? \"vertical\" : \"horizontal\"}\n className={cn(\n dividerVariants({ appearance, orientation, size }),\n className,\n )}\n {...rest}\n >\n <span\n className={cn(dividerLineVariants({ orientation, size }))}\n aria-hidden\n />\n <span data-slot=\"divider-label\" className={dividerLabelVariants()}>\n {slot}\n </span>\n <span\n className={cn(dividerLineVariants({ orientation, size }))}\n aria-hidden\n />\n </Wrapper>\n );\n}\n\nDividerBase.displayName = \"Divider\";\n"]}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunk3OXIZ4ZO_js = require('../../chunk-3OXIZ4ZO.js');
4
+ var chunkQWC2QBRJ_js = require('../../chunk-QWC2QBRJ.js');
5
5
  require('../../chunk-ZS5756ZC.js');
6
6
  var framerMotion = require('framer-motion');
7
7
  var jsxRuntime = require('react/jsx-runtime');
@@ -24,7 +24,7 @@ var DividerAnimated = (props) => {
24
24
  const { animation = "none", ...rest } = props;
25
25
  const motionProps = dividerAnimationPresets[animation];
26
26
  return /* @__PURE__ */ jsxRuntime.jsx(
27
- chunk3OXIZ4ZO_js.DividerBase,
27
+ chunkQWC2QBRJ_js.DividerBase,
28
28
  {
29
29
  ...props,
30
30
  as: framerMotion.motion.div,
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { DividerBase } from '../../chunk-J5QJEKY2.mjs';
2
+ import { DividerBase } from '../../chunk-V3XNH7Y4.mjs';
3
3
  import '../../chunk-4D54YOL6.mjs';
4
4
  import { motion } from 'framer-motion';
5
5
  import { jsx } from 'react/jsx-runtime';
@@ -1,30 +1,30 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunk3OXIZ4ZO_js = require('../chunk-3OXIZ4ZO.js');
4
+ var chunkQWC2QBRJ_js = require('../chunk-QWC2QBRJ.js');
5
5
  require('../chunk-ZS5756ZC.js');
6
6
  var jsxRuntime = require('react/jsx-runtime');
7
7
 
8
8
  function Divider(props) {
9
- return /* @__PURE__ */ jsxRuntime.jsx(chunk3OXIZ4ZO_js.DividerBase, { ...props });
9
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkQWC2QBRJ_js.DividerBase, { ...props });
10
10
  }
11
11
  Divider.displayName = "Divider";
12
12
 
13
13
  Object.defineProperty(exports, "dividerLabelVariants", {
14
14
  enumerable: true,
15
- get: function () { return chunk3OXIZ4ZO_js.dividerLabelVariants; }
15
+ get: function () { return chunkQWC2QBRJ_js.dividerLabelVariants; }
16
16
  });
17
17
  Object.defineProperty(exports, "dividerLineVariants", {
18
18
  enumerable: true,
19
- get: function () { return chunk3OXIZ4ZO_js.dividerLineVariants; }
19
+ get: function () { return chunkQWC2QBRJ_js.dividerLineVariants; }
20
20
  });
21
21
  Object.defineProperty(exports, "dividerToneVariants", {
22
22
  enumerable: true,
23
- get: function () { return chunk3OXIZ4ZO_js.dividerToneVariants; }
23
+ get: function () { return chunkQWC2QBRJ_js.dividerToneVariants; }
24
24
  });
25
25
  Object.defineProperty(exports, "dividerVariants", {
26
26
  enumerable: true,
27
- get: function () { return chunk3OXIZ4ZO_js.dividerVariants; }
27
+ get: function () { return chunkQWC2QBRJ_js.dividerVariants; }
28
28
  });
29
29
  exports.Divider = Divider;
30
30
  //# sourceMappingURL=divider.js.map
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { DividerBase } from '../chunk-J5QJEKY2.mjs';
3
- export { dividerLabelVariants, dividerLineVariants, dividerToneVariants, dividerVariants } from '../chunk-J5QJEKY2.mjs';
2
+ import { DividerBase } from '../chunk-V3XNH7Y4.mjs';
3
+ export { dividerLabelVariants, dividerLineVariants, dividerToneVariants, dividerVariants } from '../chunk-V3XNH7Y4.mjs';
4
4
  import '../chunk-4D54YOL6.mjs';
5
5
  import { jsx } from 'react/jsx-runtime';
6
6
 
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunk3Z73M5TW_js = require('../../chunk-3Z73M5TW.js');
4
+ var chunkCXNDE4VC_js = require('../../chunk-CXNDE4VC.js');
5
5
  var chunkZS5756ZC_js = require('../../chunk-ZS5756ZC.js');
6
6
  var framerMotion = require('framer-motion');
7
7
  var jsxRuntime = require('react/jsx-runtime');
@@ -54,7 +54,7 @@ function TabsContentAnimated({
54
54
  orientation,
55
55
  tabTriggerId,
56
56
  tabPanelId
57
- } = chunk3Z73M5TW_js.useTabs();
57
+ } = chunkCXNDE4VC_js.useTabs();
58
58
  const prefersReducedMotion2 = framerMotion.useReducedMotion();
59
59
  if (activeValue !== value) return null;
60
60
  const motionProps = getTabsContentMotionProps(
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { useTabs } from '../../chunk-LPL6NJ5Q.mjs';
2
+ import { useTabs } from '../../chunk-OZ4SFJ3S.mjs';
3
3
  import { cn } from '../../chunk-4D54YOL6.mjs';
4
4
  import { useReducedMotion, motion } from 'framer-motion';
5
5
  import { jsx } from 'react/jsx-runtime';
package/dist/ui/tabs.js CHANGED
@@ -1,42 +1,42 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunk3Z73M5TW_js = require('../chunk-3Z73M5TW.js');
4
+ var chunkCXNDE4VC_js = require('../chunk-CXNDE4VC.js');
5
5
  require('../chunk-ZS5756ZC.js');
6
6
 
7
7
 
8
8
 
9
9
  Object.defineProperty(exports, "Tabs", {
10
10
  enumerable: true,
11
- get: function () { return chunk3Z73M5TW_js.Tabs; }
11
+ get: function () { return chunkCXNDE4VC_js.Tabs; }
12
12
  });
13
13
  Object.defineProperty(exports, "TabsContent", {
14
14
  enumerable: true,
15
- get: function () { return chunk3Z73M5TW_js.TabsContent; }
15
+ get: function () { return chunkCXNDE4VC_js.TabsContent; }
16
16
  });
17
17
  Object.defineProperty(exports, "TabsContext", {
18
18
  enumerable: true,
19
- get: function () { return chunk3Z73M5TW_js.TabsContext; }
19
+ get: function () { return chunkCXNDE4VC_js.TabsContext; }
20
20
  });
21
21
  Object.defineProperty(exports, "TabsList", {
22
22
  enumerable: true,
23
- get: function () { return chunk3Z73M5TW_js.TabsList; }
23
+ get: function () { return chunkCXNDE4VC_js.TabsList; }
24
24
  });
25
25
  Object.defineProperty(exports, "TabsTrigger", {
26
26
  enumerable: true,
27
- get: function () { return chunk3Z73M5TW_js.TabsTrigger; }
27
+ get: function () { return chunkCXNDE4VC_js.TabsTrigger; }
28
28
  });
29
29
  Object.defineProperty(exports, "tabsListVariants", {
30
30
  enumerable: true,
31
- get: function () { return chunk3Z73M5TW_js.tabsListVariants; }
31
+ get: function () { return chunkCXNDE4VC_js.tabsListVariants; }
32
32
  });
33
33
  Object.defineProperty(exports, "tabsTriggerVariants", {
34
34
  enumerable: true,
35
- get: function () { return chunk3Z73M5TW_js.tabsTriggerVariants; }
35
+ get: function () { return chunkCXNDE4VC_js.tabsTriggerVariants; }
36
36
  });
37
37
  Object.defineProperty(exports, "useTabs", {
38
38
  enumerable: true,
39
- get: function () { return chunk3Z73M5TW_js.useTabs; }
39
+ get: function () { return chunkCXNDE4VC_js.useTabs; }
40
40
  });
41
41
  //# sourceMappingURL=tabs.js.map
42
42
  //# sourceMappingURL=tabs.js.map
package/dist/ui/tabs.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- export { Tabs, TabsContent, TabsContext, TabsList, TabsTrigger, tabsListVariants, tabsTriggerVariants, useTabs } from '../chunk-LPL6NJ5Q.mjs';
2
+ export { Tabs, TabsContent, TabsContext, TabsList, TabsTrigger, tabsListVariants, tabsTriggerVariants, useTabs } from '../chunk-OZ4SFJ3S.mjs';
3
3
  import '../chunk-4D54YOL6.mjs';
4
4
  //# sourceMappingURL=tabs.mjs.map
5
5
  //# sourceMappingURL=tabs.mjs.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zentauri-ui/zentauri-components",
3
- "version": "1.6.2",
3
+ "version": "1.6.3",
4
4
  "description": "React + Tailwind UI kit with charts, ESM/CJS builds, per-entry exports, and a zentauri-components / zentauri-ui CLI to vendor UI or hook source into your app",
5
5
  "license": "MIT",
6
6
  "files": [
@@ -36,7 +36,7 @@ export function DividerBase({
36
36
  dividerToneVariants({ appearance }),
37
37
  orientation === "horizontal"
38
38
  ? "flex w-full min-h-px flex-row items-stretch"
39
- : "flex h-full min-h-8 w-auto min-w-0 flex-col items-stretch self-stretch",
39
+ : "flex h-full min-h-8 w-auto min-w-0 items-stretch self-stretch",
40
40
  className,
41
41
  )}
42
42
  {...rest}
@@ -1,6 +1,6 @@
1
1
  import { cva } from "class-variance-authority";
2
2
 
3
- export const tabsListVariants = cva("flex items-center gap-1", {
3
+ export const tabsListVariants = cva("flex flex-wrap items-center gap-1", {
4
4
  variants: {
5
5
  variant: {
6
6
  default: "bg-transparent",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/ui/tabs/variants.ts","../src/ui/tabs/tabs-base.tsx"],"names":["cva","createContext","useContext","useState","useId","useRef","jsx","cn"],"mappings":"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","file":"chunk-3Z73M5TW.js","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const tabsListVariants = cva(\"flex items-center gap-1\", {\n variants: {\n variant: {\n default: \"bg-transparent\",\n underline: \"border-b-2 border-transparent\",\n pills: \"rounded-md\",\n },\n size: {\n sm: \"text-sm p-1\",\n md: \"text-base p-1.5\",\n lg: \"text-lg p-2\",\n },\n orientation: {\n horizontal: \"flex-row\",\n vertical: \"flex-col\",\n },\n },\n defaultVariants: {\n size: \"md\",\n orientation: \"horizontal\",\n variant: \"pills\",\n },\n});\n\nexport const tabsTriggerVariants = cva(\n \"px-3 py-1.5 rounded-md transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\",\n {\n variants: {\n appearance: {\n default: \"bg-transparent text-slate-900 dark:text-slate-50\",\n sky: \"bg-sky-300 text-sky-900 dark:bg-sky-900 dark:text-sky-200 data-[state=active]:bg-sky-900 dark:data-[state=active]:bg-sky-700 data-[state=active]:text-sky-50 dark:data-[state=active]:text-sky-100\",\n rose: \"bg-rose-300 text-rose-900 dark:bg-rose-900 dark:text-rose-200 data-[state=active]:bg-rose-900 dark:data-[state=active]:bg-rose-700 data-[state=active]:text-rose-50 dark:data-[state=active]:text-rose-100\",\n purple:\n \"bg-purple-300 text-purple-900 dark:bg-purple-900 dark:text-purple-200 data-[state=active]:bg-purple-900 dark:data-[state=active]:bg-purple-700 data-[state=active]:text-purple-50 dark:data-[state=active]:text-purple-100\",\n pink: \"bg-pink-300 text-pink-900 dark:bg-pink-900 dark:text-pink-200 data-[state=active]:bg-pink-900 dark:data-[state=active]:bg-pink-700 data-[state=active]:text-pink-50 dark:data-[state=active]:text-pink-100\",\n orange:\n \"bg-orange-300 text-orange-900 dark:bg-orange-900 dark:text-orange-200 data-[state=active]:bg-orange-900 dark:data-[state=active]:bg-orange-700 data-[state=active]:text-orange-50 dark:data-[state=active]:text-orange-100\",\n yellow:\n \"bg-yellow-300 text-yellow-900 dark:bg-yellow-900 dark:text-yellow-200 data-[state=active]:bg-yellow-900 dark:data-[state=active]:bg-yellow-700 data-[state=active]:text-yellow-50 dark:data-[state=active]:text-yellow-100\",\n teal: \"bg-teal-300 text-teal-900 dark:bg-teal-900 dark:text-teal-200 data-[state=active]:bg-teal-900 dark:data-[state=active]:bg-teal-700 data-[state=active]:text-teal-50 dark:data-[state=active]:text-teal-100\",\n indigo:\n \"bg-indigo-300 text-indigo-900 dark:bg-indigo-900 dark:text-indigo-200 data-[state=active]:bg-indigo-900 dark:data-[state=active]:bg-indigo-700 data-[state=active]:text-indigo-50 dark:data-[state=active]:text-indigo-100\",\n emerald:\n \"bg-emerald-300 text-emerald-900 dark:bg-emerald-900 dark:text-emerald-200 data-[state=active]:bg-emerald-900 dark:data-[state=active]:bg-emerald-700 data-[state=active]:text-emerald-50 dark:data-[state=active]:text-emerald-100\",\n gray: \"bg-gray-300 text-gray-900 dark:bg-gray-900 dark:text-gray-200 data-[state=active]:bg-gray-900 dark:data-[state=active]:bg-gray-700 data-[state=active]:text-gray-50 dark:data-[state=active]:text-gray-100\",\n \"gradient-blue\":\n \"bg-linear-to-r from-blue-800 dark:from-blue-800 to-purple-800 dark:to-purple-800 text-blue-100 dark:text-blue-50 data-[state=active]:from-blue-600 dark:data-[state=active]:from-blue-600 data-[state=active]:to-purple-600 dark:data-[state=active]:to-purple-600 data-[state=active]:text-blue-100 dark:data-[state=active]:text-blue-100\",\n \"gradient-green\":\n \"bg-linear-to-r from-green-800 dark:from-green-800 to-lime-800 dark:to-lime-800 text-green-100 dark:text-green-50 data-[state=active]:from-green-600 dark:data-[state=active]:from-green-600 data-[state=active]:to-lime-600 dark:data-[state=active]:to-lime-600 data-[state=active]:text-green-100 dark:data-[state=active]:text-green-100\",\n \"gradient-red\":\n \"bg-linear-to-r from-red-800 dark:from-red-800 to-pink-800 dark:to-pink-800 text-red-100 dark:text-red-50 data-[state=active]:from-red-600 dark:data-[state=active]:from-red-600 data-[state=active]:to-pink-600 dark:data-[state=active]:to-pink-600 data-[state=active]:text-red-100 dark:data-[state=active]:text-red-100\",\n \"gradient-yellow\":\n \"bg-linear-to-r from-yellow-800 dark:from-yellow-800 to-orange-800 dark:to-orange-800 text-yellow-100 dark:text-yellow-50 data-[state=active]:from-yellow-600 dark:data-[state=active]:from-yellow-600 data-[state=active]:to-orange-600 dark:data-[state=active]:to-orange-600 data-[state=active]:text-yellow-100 dark:data-[state=active]:text-yellow-100\",\n \"gradient-purple\":\n \"bg-linear-to-r from-purple-800 dark:from-purple-800 to-pink-800 dark:to-pink-800 text-purple-100 dark:text-purple-50 data-[state=active]:from-purple-600 dark:data-[state=active]:from-purple-600 data-[state=active]:to-pink-600 dark:data-[state=active]:to-pink-600 data-[state=active]:text-purple-100 dark:data-[state=active]:text-purple-100\",\n \"gradient-teal\":\n \"bg-linear-to-r from-teal-800 dark:from-teal-800 to-cyan-800 dark:to-cyan-800 text-teal-100 dark:text-teal-50 data-[state=active]:from-teal-600 dark:data-[state=active]:from-teal-600 data-[state=active]:to-cyan-600 dark:data-[state=active]:to-cyan-600 data-[state=active]:text-teal-100 dark:data-[state=active]:text-teal-100\",\n \"gradient-indigo\":\n \"bg-linear-to-r from-indigo-800 dark:from-indigo-800 to-purple-800 dark:to-purple-800 text-indigo-100 dark:text-indigo-50 data-[state=active]:from-indigo-600 dark:data-[state=active]:from-indigo-600 data-[state=active]:to-purple-600 dark:data-[state=active]:to-purple-600 data-[state=active]:text-indigo-100 dark:data-[state=active]:text-indigo-100\",\n \"gradient-pink\":\n \"bg-linear-to-r from-pink-800 dark:from-pink-800 to-rose-800 dark:to-rose-800 text-pink-100 dark:text-pink-50 data-[state=active]:from-pink-600 dark:data-[state=active]:from-pink-600 data-[state=active]:to-rose-600 dark:data-[state=active]:to-rose-600 data-[state=active]:text-pink-100 dark:data-[state=active]:text-pink-100\",\n \"gradient-orange\":\n \"bg-linear-to-r from-orange-800 dark:from-orange-800 to-red-800 dark:to-red-800 text-orange-100 dark:text-orange-50 data-[state=active]:from-orange-600 dark:data-[state=active]:from-orange-600 data-[state=active]:to-red-600 dark:data-[state=active]:to-red-600 data-[state=active]:text-orange-100 dark:data-[state=active]:text-orange-100\",\n },\n variant: {\n default: \"data-[state=active]:bg-background\",\n underline:\n \"border-b-2 border-transparent data-[state=active]:border-current rounded-none\",\n pills: \"\",\n },\n size: {\n sm: \"px-2 py-1\",\n md: \"px-3 py-1.5\",\n lg: \"px-4 py-2\",\n },\n },\n defaultVariants: {\n appearance: \"default\",\n variant: \"pills\",\n size: \"md\",\n },\n },\n);\n","\"use client\";\n\nimport {\n createContext,\n KeyboardEvent,\n useContext,\n useId,\n useRef,\n useState,\n} from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport {\n TabsContentProps,\n TabsListProps,\n TabsProps,\n TabsTriggerProps,\n TabsValue,\n TabsContextType,\n} from \"./types\";\nimport { tabsListVariants, tabsTriggerVariants } from \"./variants\";\n\nexport const TabsContext = createContext<TabsContextType | null>(null);\n\nexport const useTabs = () => {\n const ctx = useContext(TabsContext);\n if (!ctx) throw new Error(\"Tabs components must be used within Tabs\");\n return ctx;\n};\n\nexport function Tabs({\n value,\n defaultValue,\n onValueChange,\n orientation = \"horizontal\",\n variant,\n size,\n appearance,\n children,\n className,\n}: TabsProps) {\n const [internalValue, setInternalValue] = useState(defaultValue);\n const idPrefix = useId();\n const listRef = useRef<HTMLDivElement | null>(null);\n\n const isControlled = value !== undefined;\n const currentValue = isControlled ? value : internalValue;\n\n const setValue = (val: string) => {\n if (!isControlled) setInternalValue(val);\n onValueChange?.(val);\n };\n\n const tabTriggerId = (tabValue: TabsValue) =>\n `${idPrefix}zentauri-tab-${tabValue}`;\n const tabPanelId = (tabValue: TabsValue) =>\n `${idPrefix}zentauri-panel-${tabValue}`;\n\n return (\n <TabsContext.Provider\n value={{\n value: currentValue,\n setValue,\n listRef,\n orientation,\n size,\n variant,\n appearance,\n tabTriggerId,\n tabPanelId,\n }}\n >\n <div data-slot=\"tabs\" className={cn(\"w-full\", className)}>\n {children}\n </div>\n </TabsContext.Provider>\n );\n}\n\nexport function TabsList({ children, className, ...props }: TabsListProps) {\n const { orientation, size, listRef } = useTabs();\n\n return (\n <div\n ref={listRef}\n role=\"tablist\"\n aria-orientation={orientation}\n className={cn(tabsListVariants({ orientation, size }), className)}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nexport function TabsTrigger({\n value,\n children,\n disabled,\n className,\n ...props\n}: TabsTriggerProps) {\n const {\n value: activeValue,\n setValue,\n listRef,\n orientation,\n tabTriggerId,\n tabPanelId,\n size,\n appearance,\n variant,\n } = useTabs();\n\n const isActive = activeValue === value;\n\n const handleKeyDown = (e: KeyboardEvent<HTMLButtonElement>) => {\n const list = listRef.current;\n const triggers =\n list === null\n ? []\n : Array.from(list.querySelectorAll<HTMLButtonElement>('[role=\"tab\"]'));\n\n const nextKeys =\n orientation === \"vertical\" ? [\"ArrowDown\"] : [\"ArrowRight\"];\n const prevKeys = orientation === \"vertical\" ? [\"ArrowUp\"] : [\"ArrowLeft\"];\n\n const index = triggers.findIndex((el) => el === e.currentTarget);\n if (index === -1) {\n return;\n }\n\n const findEnabledIndex = (\n start: number,\n direction: 1 | -1,\n ): number | undefined => {\n const n = triggers.length;\n if (n === 0) {\n return undefined;\n }\n let i = start;\n for (let step = 0; step < n; step += 1) {\n i = (i + direction + n) % n;\n if (triggers[i]?.disabled !== true) {\n return i;\n }\n }\n return undefined;\n };\n\n const focusAt = (i: number) => {\n const target = triggers[i];\n if (target !== undefined && target.disabled !== true) {\n target.focus();\n }\n };\n\n const isNext = nextKeys.includes(e.key);\n const isPrev = prevKeys.includes(e.key);\n\n if (isNext) {\n e.preventDefault();\n const nextIdx = findEnabledIndex(index, 1);\n if (nextIdx !== undefined) {\n focusAt(nextIdx);\n }\n return;\n }\n\n if (isPrev) {\n e.preventDefault();\n const prevIdx = findEnabledIndex(index, -1);\n if (prevIdx !== undefined) {\n focusAt(prevIdx);\n }\n return;\n }\n\n if (e.key === \"Home\") {\n e.preventDefault();\n const firstEnabledIndex = triggers.findIndex((btn) => !btn.disabled);\n if (firstEnabledIndex !== -1) {\n triggers[firstEnabledIndex]?.focus();\n }\n return;\n }\n\n if (e.key === \"End\") {\n e.preventDefault();\n for (let i = triggers.length - 1; i >= 0; i -= 1) {\n if (!triggers[i]?.disabled) {\n triggers[i]?.focus();\n break;\n }\n }\n }\n };\n\n return (\n <button\n id={tabTriggerId(value)}\n type=\"button\"\n role=\"tab\"\n data-state={isActive ? \"active\" : \"inactive\"}\n aria-selected={isActive}\n aria-controls={tabPanelId(value)}\n disabled={disabled}\n tabIndex={activeValue === undefined ? undefined : isActive ? 0 : -1}\n onClick={() => setValue(value)}\n onKeyDown={handleKeyDown}\n className={cn(\n tabsTriggerVariants({ size, appearance, variant }),\n className,\n \"cursor-pointer\",\n )}\n {...props}\n >\n {children}\n </button>\n );\n}\n\nexport function TabsContent({\n value,\n children,\n className,\n as: Wrapper = \"div\",\n ...props\n}: TabsContentProps) {\n const { value: activeValue, tabTriggerId, tabPanelId } = useTabs();\n\n if (activeValue !== value) return null;\n\n return (\n <Wrapper\n id={tabPanelId(value)}\n role=\"tabpanel\"\n aria-labelledby={tabTriggerId(value)}\n className={cn(\"mt-2\", className)}\n {...props}\n >\n {children}\n </Wrapper>\n );\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/ui/tabs/variants.ts","../src/ui/tabs/tabs-base.tsx"],"names":[],"mappings":"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","file":"chunk-LPL6NJ5Q.mjs","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const tabsListVariants = cva(\"flex items-center gap-1\", {\n variants: {\n variant: {\n default: \"bg-transparent\",\n underline: \"border-b-2 border-transparent\",\n pills: \"rounded-md\",\n },\n size: {\n sm: \"text-sm p-1\",\n md: \"text-base p-1.5\",\n lg: \"text-lg p-2\",\n },\n orientation: {\n horizontal: \"flex-row\",\n vertical: \"flex-col\",\n },\n },\n defaultVariants: {\n size: \"md\",\n orientation: \"horizontal\",\n variant: \"pills\",\n },\n});\n\nexport const tabsTriggerVariants = cva(\n \"px-3 py-1.5 rounded-md transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\",\n {\n variants: {\n appearance: {\n default: \"bg-transparent text-slate-900 dark:text-slate-50\",\n sky: \"bg-sky-300 text-sky-900 dark:bg-sky-900 dark:text-sky-200 data-[state=active]:bg-sky-900 dark:data-[state=active]:bg-sky-700 data-[state=active]:text-sky-50 dark:data-[state=active]:text-sky-100\",\n rose: \"bg-rose-300 text-rose-900 dark:bg-rose-900 dark:text-rose-200 data-[state=active]:bg-rose-900 dark:data-[state=active]:bg-rose-700 data-[state=active]:text-rose-50 dark:data-[state=active]:text-rose-100\",\n purple:\n \"bg-purple-300 text-purple-900 dark:bg-purple-900 dark:text-purple-200 data-[state=active]:bg-purple-900 dark:data-[state=active]:bg-purple-700 data-[state=active]:text-purple-50 dark:data-[state=active]:text-purple-100\",\n pink: \"bg-pink-300 text-pink-900 dark:bg-pink-900 dark:text-pink-200 data-[state=active]:bg-pink-900 dark:data-[state=active]:bg-pink-700 data-[state=active]:text-pink-50 dark:data-[state=active]:text-pink-100\",\n orange:\n \"bg-orange-300 text-orange-900 dark:bg-orange-900 dark:text-orange-200 data-[state=active]:bg-orange-900 dark:data-[state=active]:bg-orange-700 data-[state=active]:text-orange-50 dark:data-[state=active]:text-orange-100\",\n yellow:\n \"bg-yellow-300 text-yellow-900 dark:bg-yellow-900 dark:text-yellow-200 data-[state=active]:bg-yellow-900 dark:data-[state=active]:bg-yellow-700 data-[state=active]:text-yellow-50 dark:data-[state=active]:text-yellow-100\",\n teal: \"bg-teal-300 text-teal-900 dark:bg-teal-900 dark:text-teal-200 data-[state=active]:bg-teal-900 dark:data-[state=active]:bg-teal-700 data-[state=active]:text-teal-50 dark:data-[state=active]:text-teal-100\",\n indigo:\n \"bg-indigo-300 text-indigo-900 dark:bg-indigo-900 dark:text-indigo-200 data-[state=active]:bg-indigo-900 dark:data-[state=active]:bg-indigo-700 data-[state=active]:text-indigo-50 dark:data-[state=active]:text-indigo-100\",\n emerald:\n \"bg-emerald-300 text-emerald-900 dark:bg-emerald-900 dark:text-emerald-200 data-[state=active]:bg-emerald-900 dark:data-[state=active]:bg-emerald-700 data-[state=active]:text-emerald-50 dark:data-[state=active]:text-emerald-100\",\n gray: \"bg-gray-300 text-gray-900 dark:bg-gray-900 dark:text-gray-200 data-[state=active]:bg-gray-900 dark:data-[state=active]:bg-gray-700 data-[state=active]:text-gray-50 dark:data-[state=active]:text-gray-100\",\n \"gradient-blue\":\n \"bg-linear-to-r from-blue-800 dark:from-blue-800 to-purple-800 dark:to-purple-800 text-blue-100 dark:text-blue-50 data-[state=active]:from-blue-600 dark:data-[state=active]:from-blue-600 data-[state=active]:to-purple-600 dark:data-[state=active]:to-purple-600 data-[state=active]:text-blue-100 dark:data-[state=active]:text-blue-100\",\n \"gradient-green\":\n \"bg-linear-to-r from-green-800 dark:from-green-800 to-lime-800 dark:to-lime-800 text-green-100 dark:text-green-50 data-[state=active]:from-green-600 dark:data-[state=active]:from-green-600 data-[state=active]:to-lime-600 dark:data-[state=active]:to-lime-600 data-[state=active]:text-green-100 dark:data-[state=active]:text-green-100\",\n \"gradient-red\":\n \"bg-linear-to-r from-red-800 dark:from-red-800 to-pink-800 dark:to-pink-800 text-red-100 dark:text-red-50 data-[state=active]:from-red-600 dark:data-[state=active]:from-red-600 data-[state=active]:to-pink-600 dark:data-[state=active]:to-pink-600 data-[state=active]:text-red-100 dark:data-[state=active]:text-red-100\",\n \"gradient-yellow\":\n \"bg-linear-to-r from-yellow-800 dark:from-yellow-800 to-orange-800 dark:to-orange-800 text-yellow-100 dark:text-yellow-50 data-[state=active]:from-yellow-600 dark:data-[state=active]:from-yellow-600 data-[state=active]:to-orange-600 dark:data-[state=active]:to-orange-600 data-[state=active]:text-yellow-100 dark:data-[state=active]:text-yellow-100\",\n \"gradient-purple\":\n \"bg-linear-to-r from-purple-800 dark:from-purple-800 to-pink-800 dark:to-pink-800 text-purple-100 dark:text-purple-50 data-[state=active]:from-purple-600 dark:data-[state=active]:from-purple-600 data-[state=active]:to-pink-600 dark:data-[state=active]:to-pink-600 data-[state=active]:text-purple-100 dark:data-[state=active]:text-purple-100\",\n \"gradient-teal\":\n \"bg-linear-to-r from-teal-800 dark:from-teal-800 to-cyan-800 dark:to-cyan-800 text-teal-100 dark:text-teal-50 data-[state=active]:from-teal-600 dark:data-[state=active]:from-teal-600 data-[state=active]:to-cyan-600 dark:data-[state=active]:to-cyan-600 data-[state=active]:text-teal-100 dark:data-[state=active]:text-teal-100\",\n \"gradient-indigo\":\n \"bg-linear-to-r from-indigo-800 dark:from-indigo-800 to-purple-800 dark:to-purple-800 text-indigo-100 dark:text-indigo-50 data-[state=active]:from-indigo-600 dark:data-[state=active]:from-indigo-600 data-[state=active]:to-purple-600 dark:data-[state=active]:to-purple-600 data-[state=active]:text-indigo-100 dark:data-[state=active]:text-indigo-100\",\n \"gradient-pink\":\n \"bg-linear-to-r from-pink-800 dark:from-pink-800 to-rose-800 dark:to-rose-800 text-pink-100 dark:text-pink-50 data-[state=active]:from-pink-600 dark:data-[state=active]:from-pink-600 data-[state=active]:to-rose-600 dark:data-[state=active]:to-rose-600 data-[state=active]:text-pink-100 dark:data-[state=active]:text-pink-100\",\n \"gradient-orange\":\n \"bg-linear-to-r from-orange-800 dark:from-orange-800 to-red-800 dark:to-red-800 text-orange-100 dark:text-orange-50 data-[state=active]:from-orange-600 dark:data-[state=active]:from-orange-600 data-[state=active]:to-red-600 dark:data-[state=active]:to-red-600 data-[state=active]:text-orange-100 dark:data-[state=active]:text-orange-100\",\n },\n variant: {\n default: \"data-[state=active]:bg-background\",\n underline:\n \"border-b-2 border-transparent data-[state=active]:border-current rounded-none\",\n pills: \"\",\n },\n size: {\n sm: \"px-2 py-1\",\n md: \"px-3 py-1.5\",\n lg: \"px-4 py-2\",\n },\n },\n defaultVariants: {\n appearance: \"default\",\n variant: \"pills\",\n size: \"md\",\n },\n },\n);\n","\"use client\";\n\nimport {\n createContext,\n KeyboardEvent,\n useContext,\n useId,\n useRef,\n useState,\n} from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport {\n TabsContentProps,\n TabsListProps,\n TabsProps,\n TabsTriggerProps,\n TabsValue,\n TabsContextType,\n} from \"./types\";\nimport { tabsListVariants, tabsTriggerVariants } from \"./variants\";\n\nexport const TabsContext = createContext<TabsContextType | null>(null);\n\nexport const useTabs = () => {\n const ctx = useContext(TabsContext);\n if (!ctx) throw new Error(\"Tabs components must be used within Tabs\");\n return ctx;\n};\n\nexport function Tabs({\n value,\n defaultValue,\n onValueChange,\n orientation = \"horizontal\",\n variant,\n size,\n appearance,\n children,\n className,\n}: TabsProps) {\n const [internalValue, setInternalValue] = useState(defaultValue);\n const idPrefix = useId();\n const listRef = useRef<HTMLDivElement | null>(null);\n\n const isControlled = value !== undefined;\n const currentValue = isControlled ? value : internalValue;\n\n const setValue = (val: string) => {\n if (!isControlled) setInternalValue(val);\n onValueChange?.(val);\n };\n\n const tabTriggerId = (tabValue: TabsValue) =>\n `${idPrefix}zentauri-tab-${tabValue}`;\n const tabPanelId = (tabValue: TabsValue) =>\n `${idPrefix}zentauri-panel-${tabValue}`;\n\n return (\n <TabsContext.Provider\n value={{\n value: currentValue,\n setValue,\n listRef,\n orientation,\n size,\n variant,\n appearance,\n tabTriggerId,\n tabPanelId,\n }}\n >\n <div data-slot=\"tabs\" className={cn(\"w-full\", className)}>\n {children}\n </div>\n </TabsContext.Provider>\n );\n}\n\nexport function TabsList({ children, className, ...props }: TabsListProps) {\n const { orientation, size, listRef } = useTabs();\n\n return (\n <div\n ref={listRef}\n role=\"tablist\"\n aria-orientation={orientation}\n className={cn(tabsListVariants({ orientation, size }), className)}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nexport function TabsTrigger({\n value,\n children,\n disabled,\n className,\n ...props\n}: TabsTriggerProps) {\n const {\n value: activeValue,\n setValue,\n listRef,\n orientation,\n tabTriggerId,\n tabPanelId,\n size,\n appearance,\n variant,\n } = useTabs();\n\n const isActive = activeValue === value;\n\n const handleKeyDown = (e: KeyboardEvent<HTMLButtonElement>) => {\n const list = listRef.current;\n const triggers =\n list === null\n ? []\n : Array.from(list.querySelectorAll<HTMLButtonElement>('[role=\"tab\"]'));\n\n const nextKeys =\n orientation === \"vertical\" ? [\"ArrowDown\"] : [\"ArrowRight\"];\n const prevKeys = orientation === \"vertical\" ? [\"ArrowUp\"] : [\"ArrowLeft\"];\n\n const index = triggers.findIndex((el) => el === e.currentTarget);\n if (index === -1) {\n return;\n }\n\n const findEnabledIndex = (\n start: number,\n direction: 1 | -1,\n ): number | undefined => {\n const n = triggers.length;\n if (n === 0) {\n return undefined;\n }\n let i = start;\n for (let step = 0; step < n; step += 1) {\n i = (i + direction + n) % n;\n if (triggers[i]?.disabled !== true) {\n return i;\n }\n }\n return undefined;\n };\n\n const focusAt = (i: number) => {\n const target = triggers[i];\n if (target !== undefined && target.disabled !== true) {\n target.focus();\n }\n };\n\n const isNext = nextKeys.includes(e.key);\n const isPrev = prevKeys.includes(e.key);\n\n if (isNext) {\n e.preventDefault();\n const nextIdx = findEnabledIndex(index, 1);\n if (nextIdx !== undefined) {\n focusAt(nextIdx);\n }\n return;\n }\n\n if (isPrev) {\n e.preventDefault();\n const prevIdx = findEnabledIndex(index, -1);\n if (prevIdx !== undefined) {\n focusAt(prevIdx);\n }\n return;\n }\n\n if (e.key === \"Home\") {\n e.preventDefault();\n const firstEnabledIndex = triggers.findIndex((btn) => !btn.disabled);\n if (firstEnabledIndex !== -1) {\n triggers[firstEnabledIndex]?.focus();\n }\n return;\n }\n\n if (e.key === \"End\") {\n e.preventDefault();\n for (let i = triggers.length - 1; i >= 0; i -= 1) {\n if (!triggers[i]?.disabled) {\n triggers[i]?.focus();\n break;\n }\n }\n }\n };\n\n return (\n <button\n id={tabTriggerId(value)}\n type=\"button\"\n role=\"tab\"\n data-state={isActive ? \"active\" : \"inactive\"}\n aria-selected={isActive}\n aria-controls={tabPanelId(value)}\n disabled={disabled}\n tabIndex={activeValue === undefined ? undefined : isActive ? 0 : -1}\n onClick={() => setValue(value)}\n onKeyDown={handleKeyDown}\n className={cn(\n tabsTriggerVariants({ size, appearance, variant }),\n className,\n \"cursor-pointer\",\n )}\n {...props}\n >\n {children}\n </button>\n );\n}\n\nexport function TabsContent({\n value,\n children,\n className,\n as: Wrapper = \"div\",\n ...props\n}: TabsContentProps) {\n const { value: activeValue, tabTriggerId, tabPanelId } = useTabs();\n\n if (activeValue !== value) return null;\n\n return (\n <Wrapper\n id={tabPanelId(value)}\n role=\"tabpanel\"\n aria-labelledby={tabTriggerId(value)}\n className={cn(\"mt-2\", className)}\n {...props}\n >\n {children}\n </Wrapper>\n );\n}\n"]}