@octanejs/shadcn 0.0.38 → 0.0.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/{LICENSE → LICENSE.upstream} +1 -1
  2. package/README.md +15 -11
  3. package/package.json +13 -7
  4. package/src/bases/base-ui/ui/accordion.tsrx +1 -1
  5. package/src/bases/base-ui/ui/alert-dialog.tsrx +1 -1
  6. package/src/bases/base-ui/ui/alert.tsrx +1 -1
  7. package/src/bases/base-ui/ui/aspect-ratio.tsrx +1 -1
  8. package/src/bases/base-ui/ui/avatar.tsrx +1 -1
  9. package/src/bases/base-ui/ui/badge.tsrx +1 -1
  10. package/src/bases/base-ui/ui/breadcrumb.tsrx +1 -1
  11. package/src/bases/base-ui/ui/button.tsrx +1 -1
  12. package/src/bases/base-ui/ui/card.tsrx +1 -1
  13. package/src/bases/base-ui/ui/checkbox.tsrx +1 -1
  14. package/src/bases/base-ui/ui/context-menu.tsrx +1 -1
  15. package/src/bases/base-ui/ui/dialog.tsrx +1 -1
  16. package/src/bases/base-ui/ui/dropdown-menu.tsrx +1 -1
  17. package/src/bases/base-ui/ui/empty.tsrx +1 -1
  18. package/src/bases/base-ui/ui/field.tsrx +1 -1
  19. package/src/bases/base-ui/ui/hover-card.tsrx +1 -1
  20. package/src/bases/base-ui/ui/input.tsrx +1 -1
  21. package/src/bases/base-ui/ui/item.tsrx +1 -1
  22. package/src/bases/base-ui/ui/kbd.tsrx +1 -1
  23. package/src/bases/base-ui/ui/label.tsrx +1 -1
  24. package/src/bases/base-ui/ui/menubar.tsrx +1 -1
  25. package/src/bases/base-ui/ui/native-select.tsrx +1 -1
  26. package/src/bases/base-ui/ui/navigation-menu.tsrx +137 -0
  27. package/src/bases/base-ui/ui/pagination.tsrx +1 -1
  28. package/src/bases/base-ui/ui/popover.tsrx +1 -1
  29. package/src/bases/base-ui/ui/progress.tsrx +1 -1
  30. package/src/bases/base-ui/ui/radio-group.tsrx +1 -1
  31. package/src/bases/base-ui/ui/scroll-area.tsrx +44 -0
  32. package/src/bases/base-ui/ui/select.tsrx +157 -0
  33. package/src/bases/base-ui/ui/separator.tsrx +1 -1
  34. package/src/bases/base-ui/ui/sheet.tsrx +1 -1
  35. package/src/bases/base-ui/ui/sidebar.tsrx +1 -1
  36. package/src/bases/base-ui/ui/skeleton.tsrx +1 -1
  37. package/src/bases/base-ui/ui/slider.tsrx +1 -1
  38. package/src/bases/base-ui/ui/spinner.tsrx +1 -1
  39. package/src/bases/base-ui/ui/switch.tsrx +1 -1
  40. package/src/bases/base-ui/ui/table.tsrx +1 -1
  41. package/src/bases/base-ui/ui/tabs.tsrx +1 -1
  42. package/src/bases/base-ui/ui/textarea.tsrx +1 -1
  43. package/src/bases/base-ui/ui/toggle-group.tsrx +1 -1
  44. package/src/bases/base-ui/ui/toggle.tsrx +1 -1
  45. package/src/bases/base-ui/ui/tooltip.tsrx +1 -1
  46. package/src/bases/radix/ui/accordion.tsrx +1 -1
  47. package/src/bases/radix/ui/alert-dialog.tsrx +1 -1
  48. package/src/bases/radix/ui/alert.tsrx +1 -1
  49. package/src/bases/radix/ui/avatar.tsrx +1 -1
  50. package/src/bases/radix/ui/badge.tsrx +1 -1
  51. package/src/bases/radix/ui/breadcrumb.tsrx +1 -1
  52. package/src/bases/radix/ui/button.tsrx +1 -1
  53. package/src/bases/radix/ui/card.tsrx +1 -1
  54. package/src/bases/radix/ui/checkbox.tsrx +1 -1
  55. package/src/bases/radix/ui/context-menu.tsrx +1 -1
  56. package/src/bases/radix/ui/dialog.tsrx +1 -1
  57. package/src/bases/radix/ui/dropdown-menu.tsrx +1 -1
  58. package/src/bases/radix/ui/empty.tsrx +1 -1
  59. package/src/bases/radix/ui/field.tsrx +1 -1
  60. package/src/bases/radix/ui/hover-card.tsrx +1 -1
  61. package/src/bases/radix/ui/input.tsrx +1 -1
  62. package/src/bases/radix/ui/item.tsrx +1 -1
  63. package/src/bases/radix/ui/kbd.tsrx +1 -1
  64. package/src/bases/radix/ui/label.tsrx +1 -1
  65. package/src/bases/radix/ui/menubar.tsrx +1 -1
  66. package/src/bases/radix/ui/native-select.tsrx +1 -1
  67. package/src/bases/radix/ui/navigation-menu.tsrx +1 -1
  68. package/src/bases/radix/ui/pagination.tsrx +1 -1
  69. package/src/bases/radix/ui/popover.tsrx +1 -1
  70. package/src/bases/radix/ui/progress.tsrx +1 -1
  71. package/src/bases/radix/ui/radio-group.tsrx +1 -1
  72. package/src/bases/radix/ui/scroll-area.tsrx +1 -1
  73. package/src/bases/radix/ui/select.tsrx +1 -1
  74. package/src/bases/radix/ui/separator.tsrx +1 -1
  75. package/src/bases/radix/ui/sheet.tsrx +1 -1
  76. package/src/bases/radix/ui/sidebar.tsrx +1 -1
  77. package/src/bases/radix/ui/skeleton.tsrx +1 -1
  78. package/src/bases/radix/ui/slider.tsrx +1 -1
  79. package/src/bases/radix/ui/spinner.tsrx +1 -1
  80. package/src/bases/radix/ui/switch.tsrx +1 -1
  81. package/src/bases/radix/ui/table.tsrx +1 -1
  82. package/src/bases/radix/ui/tabs.tsrx +1 -1
  83. package/src/bases/radix/ui/textarea.tsrx +1 -1
  84. package/src/bases/radix/ui/toggle-group.tsrx +1 -1
  85. package/src/bases/radix/ui/toggle.tsrx +1 -1
  86. package/src/bases/radix/ui/tooltip.tsrx +1 -1
  87. package/src/bases/react-aria/ui/accordion.tsrx +1 -1
  88. package/src/bases/react-aria/ui/alert-dialog.tsrx +1 -1
  89. package/src/bases/react-aria/ui/alert.tsrx +1 -1
  90. package/src/bases/react-aria/ui/aspect-ratio.tsrx +1 -1
  91. package/src/bases/react-aria/ui/avatar.tsrx +1 -1
  92. package/src/bases/react-aria/ui/badge.tsrx +1 -1
  93. package/src/bases/react-aria/ui/breadcrumb.tsrx +1 -1
  94. package/src/bases/react-aria/ui/button.tsrx +1 -1
  95. package/src/bases/react-aria/ui/card.tsrx +1 -1
  96. package/src/bases/react-aria/ui/checkbox.tsrx +1 -1
  97. package/src/bases/react-aria/ui/dialog.tsrx +1 -1
  98. package/src/bases/react-aria/ui/empty.tsrx +1 -1
  99. package/src/bases/react-aria/ui/field.tsrx +1 -1
  100. package/src/bases/react-aria/ui/input.tsrx +1 -1
  101. package/src/bases/react-aria/ui/item.tsrx +1 -1
  102. package/src/bases/react-aria/ui/kbd.tsrx +1 -1
  103. package/src/bases/react-aria/ui/label.tsrx +1 -1
  104. package/src/bases/react-aria/ui/native-select.tsrx +1 -1
  105. package/src/bases/react-aria/ui/pagination.tsrx +1 -1
  106. package/src/bases/react-aria/ui/popover.tsrx +1 -1
  107. package/src/bases/react-aria/ui/radio-group.tsrx +1 -1
  108. package/src/bases/react-aria/ui/scroll-area.tsrx +1 -1
  109. package/src/bases/react-aria/ui/separator.tsrx +1 -1
  110. package/src/bases/react-aria/ui/sheet.tsrx +1 -1
  111. package/src/bases/react-aria/ui/skeleton.tsrx +1 -1
  112. package/src/bases/react-aria/ui/slider.tsrx +1 -1
  113. package/src/bases/react-aria/ui/spinner.tsrx +1 -1
  114. package/src/bases/react-aria/ui/switch.tsrx +1 -1
  115. package/src/bases/react-aria/ui/table.tsrx +1 -1
  116. package/src/bases/react-aria/ui/tabs.tsrx +1 -1
  117. package/src/bases/react-aria/ui/textarea.tsrx +1 -1
  118. package/src/bases/react-aria/ui/toggle.tsrx +1 -1
  119. package/src/lib/utils.ts +1 -8
@@ -3,7 +3,7 @@
3
3
  // @octanejs/radix; pure template JSX.
4
4
  import { Switch as SwitchPrimitive } from '@octanejs/radix';
5
5
 
6
- import { cn } from '../../../lib/utils';
6
+ import { cn } from 'cn';
7
7
 
8
8
  export interface SwitchProps extends Record<string, unknown> {
9
9
  className?: string;
@@ -2,7 +2,7 @@
2
2
  // apps/v4/registry/bases/radix/ui/table.tsx (the `"use client"` directive is
3
3
  // dropped — octane has no RSC axis). Table renders inside the upstream
4
4
  // table-container wrapper div.
5
- import { cn } from '../../../lib/utils';
5
+ import { cn } from 'cn';
6
6
 
7
7
  // Multi-host family (div/table/thead/tbody/tr/th/td/caption): no single host
8
8
  // prop table applies, so the shared alias stays structural.
@@ -4,7 +4,7 @@
4
4
  import { cva, type VariantProps } from 'class-variance-authority';
5
5
  import { Tabs as TabsPrimitive } from '@octanejs/radix';
6
6
 
7
- import { cn } from '../../../lib/utils';
7
+ import { cn } from 'cn';
8
8
 
9
9
  type Props = { className?: string } & Record<string, unknown>;
10
10
 
@@ -3,7 +3,7 @@
3
3
  //
4
4
  // Octane divergence (shadcn-native-input-events): per-keystroke handling is the native `onInput` event, not
5
5
  // a synthetic `onChange`; native `change` keeps its commit-on-blur meaning.
6
- import { cn } from '../../../lib/utils';
6
+ import { cn } from 'cn';
7
7
  import type { HostProps } from '../../../lib/types';
8
8
 
9
9
  export interface TextareaProps extends HostProps<'textarea'> {}
@@ -10,7 +10,7 @@ import { createContext, createElement, useContext, type OctaneNode } from 'octan
10
10
  import { type VariantProps } from 'class-variance-authority';
11
11
  import { ToggleGroup as ToggleGroupPrimitive } from '@octanejs/radix';
12
12
 
13
- import { cn } from '../../../lib/utils';
13
+ import { cn } from 'cn';
14
14
  import { toggleVariants } from './toggle.tsrx';
15
15
 
16
16
  const ToggleGroupContext = createContext<
@@ -4,7 +4,7 @@
4
4
  import { cva, type VariantProps } from 'class-variance-authority';
5
5
  import { Toggle as TogglePrimitive } from '@octanejs/radix';
6
6
 
7
- import { cn } from '../../../lib/utils';
7
+ import { cn } from 'cn';
8
8
 
9
9
  export const toggleVariants = cva(
10
10
  'inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-[color,box-shadow] outline-none hover:bg-muted hover:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\'size-\'])]:size-4',
@@ -10,7 +10,7 @@
10
10
  import { createElement, type OctaneNode } from 'octane';
11
11
  import { Tooltip as TooltipPrimitive } from '@octanejs/radix';
12
12
 
13
- import { cn } from '../../../lib/utils';
13
+ import { cn } from 'cn';
14
14
 
15
15
  export interface TooltipProviderProps extends Record<string, unknown> {
16
16
  delayDuration?: number;
@@ -11,7 +11,7 @@ import {
11
11
  type DisclosureProps,
12
12
  } from '@octanejs/aria/components';
13
13
 
14
- import { cn } from '../../../lib/utils';
14
+ import { cn } from 'cn';
15
15
  import { ChevronDownIcon, ChevronUpIcon } from '@octanejs/lucide';
16
16
 
17
17
  export function Accordion({ className, ...props }: DisclosureGroupProps) {
@@ -14,7 +14,7 @@ import {
14
14
  } from '@octanejs/aria/components';
15
15
  import type { HeadingProps } from '@octanejs/aria/components';
16
16
 
17
- import { cn } from '../../../lib/utils';
17
+ import { cn } from 'cn';
18
18
  import type { HostProps } from '../../../lib/types';
19
19
  import { Button } from './button.tsrx';
20
20
 
@@ -1,6 +1,6 @@
1
1
  import { cva, type VariantProps } from 'class-variance-authority';
2
2
 
3
- import { cn } from '../../../lib/utils';
3
+ import { cn } from 'cn';
4
4
  import type { HostProps } from '../../../lib/types';
5
5
 
6
6
  const alertVariants = cva(
@@ -1,4 +1,4 @@
1
- import { cn } from '../../../lib/utils';
1
+ import { cn } from 'cn';
2
2
  import type { HostProps } from '../../../lib/types';
3
3
 
4
4
  export function AspectRatio({ ratio, className, ...props }: HostProps<'div'> & { ratio: number }) {
@@ -1,6 +1,6 @@
1
1
  import { useState } from 'octane';
2
2
 
3
- import { cn } from '../../../lib/utils';
3
+ import { cn } from 'cn';
4
4
  import type { HostProps } from '../../../lib/types';
5
5
 
6
6
  export function Avatar({ className, size = 'default', ...props }: HostProps<'div'> & {
@@ -1,7 +1,7 @@
1
1
  import { type OctaneNode } from 'octane';
2
2
  import { cva, type VariantProps } from 'class-variance-authority';
3
3
 
4
- import { cn } from '../../../lib/utils';
4
+ import { cn } from 'cn';
5
5
  import type { HostProps } from '../../../lib/types';
6
6
 
7
7
  export const badgeVariants = cva(
@@ -15,7 +15,7 @@ import {
15
15
  type LinkProps,
16
16
  } from '@octanejs/aria/components';
17
17
 
18
- import { cn } from '../../../lib/utils';
18
+ import { cn } from 'cn';
19
19
  import type { HostProps } from '../../../lib/types';
20
20
  import { ChevronRightIcon, MoreHorizontalIcon } from '@octanejs/lucide';
21
21
 
@@ -19,7 +19,7 @@ import type {
19
19
  LinkProps as LinkPrimitiveProps,
20
20
  } from '@octanejs/aria/components';
21
21
 
22
- import { cn } from '../../../lib/utils';
22
+ import { cn } from 'cn';
23
23
 
24
24
  export const buttonVariants = cva(
25
25
  'group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\'size-\'])]:size-4',
@@ -1,4 +1,4 @@
1
- import { cn } from '../../../lib/utils';
1
+ import { cn } from 'cn';
2
2
  import type { HostProps } from '../../../lib/types';
3
3
 
4
4
  export function Card({ className, size = 'default', ...props }: HostProps<'div'> & {
@@ -11,7 +11,7 @@ import {
11
11
  type CheckboxRenderProps,
12
12
  } from '@octanejs/aria/components';
13
13
 
14
- import { cn } from '../../../lib/utils';
14
+ import { cn } from 'cn';
15
15
  import { CheckIcon } from '@octanejs/lucide';
16
16
 
17
17
  export function Checkbox({ className, children, ...props }: CheckboxProps) {
@@ -10,7 +10,7 @@ import {
10
10
  type ModalOverlayProps as ModalOverlayPrimitiveProps,
11
11
  } from '@octanejs/aria/components';
12
12
 
13
- import { cn } from '../../../lib/utils';
13
+ import { cn } from 'cn';
14
14
  import type { HostProps } from '../../../lib/types';
15
15
  import { Button } from './button.tsrx';
16
16
  import { XIcon } from '@octanejs/lucide';
@@ -1,6 +1,6 @@
1
1
  import { cva, type VariantProps } from 'class-variance-authority';
2
2
 
3
- import { cn } from '../../../lib/utils';
3
+ import { cn } from 'cn';
4
4
  import type { HostProps } from '../../../lib/types';
5
5
 
6
6
  export function Empty({ className, ...props }: HostProps<'div'>) {
@@ -1,7 +1,7 @@
1
1
  import { type OctaneNode, useMemo } from 'octane';
2
2
  import { cva, type VariantProps } from 'class-variance-authority';
3
3
 
4
- import { cn } from '../../../lib/utils';
4
+ import { cn } from 'cn';
5
5
  import type { HostProps } from '../../../lib/types';
6
6
  import { Label } from './label.tsrx';
7
7
  import { Separator } from './separator.tsrx';
@@ -8,7 +8,7 @@
8
8
  import { composeRenderProps, Input as InputPrimitive } from '@octanejs/aria/components';
9
9
  import type { InputProps as InputPrimitiveProps } from '@octanejs/aria/components';
10
10
 
11
- import { cn } from '../../../lib/utils';
11
+ import { cn } from 'cn';
12
12
 
13
13
  export interface InputProps extends InputPrimitiveProps {}
14
14
 
@@ -1,7 +1,7 @@
1
1
  import { cva, type VariantProps } from 'class-variance-authority';
2
2
  import { Link as LinkPrimitive, type LinkProps } from '@octanejs/aria/components';
3
3
 
4
- import { cn } from '../../../lib/utils';
4
+ import { cn } from 'cn';
5
5
  import type { HostProps } from '../../../lib/types';
6
6
  import { Separator } from './separator.tsrx';
7
7
 
@@ -5,7 +5,7 @@
5
5
  // utilities-inlined flavor, matching the Radix base.
6
6
  import { Keyboard as KbdPrimitive } from '@octanejs/aria/components';
7
7
 
8
- import { cn } from '../../../lib/utils';
8
+ import { cn } from 'cn';
9
9
  import type { HostProps } from '../../../lib/types';
10
10
 
11
11
  export interface KbdProps extends HostProps<'kbd'> {}
@@ -1,6 +1,6 @@
1
1
  import { LabelContext, Label as LabelPrimitive, type LabelProps } from '@octanejs/aria/components';
2
2
 
3
- import { cn } from '../../../lib/utils';
3
+ import { cn } from 'cn';
4
4
 
5
5
  export function Label({ className, htmlFor, slot, ...props }: LabelProps) {
6
6
  const label = <LabelPrimitive
@@ -1,4 +1,4 @@
1
- import { cn } from '../../../lib/utils';
1
+ import { cn } from 'cn';
2
2
  import type { HostProps } from '../../../lib/types';
3
3
  import { ChevronDownIcon } from '@octanejs/lucide';
4
4
 
@@ -1,4 +1,4 @@
1
- import { cn } from '../../../lib/utils';
1
+ import { cn } from 'cn';
2
2
  import type { HostProps } from '../../../lib/types';
3
3
  import { LinkButton } from './button.tsrx';
4
4
  import { ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon } from '@octanejs/lucide';
@@ -7,7 +7,7 @@ import {
7
7
  } from '@octanejs/aria/components';
8
8
  import type { HeadingProps } from '@octanejs/aria/components';
9
9
 
10
- import { cn } from '../../../lib/utils';
10
+ import { cn } from 'cn';
11
11
  import type { HostProps } from '../../../lib/types';
12
12
 
13
13
  export function PopoverTrigger({ children, ...props }: DialogTriggerProps) {
@@ -13,7 +13,7 @@ import {
13
13
  type RadioProps,
14
14
  } from '@octanejs/aria/components';
15
15
 
16
- import { cn } from '../../../lib/utils';
16
+ import { cn } from 'cn';
17
17
 
18
18
  export function RadioGroup({ className, ...props }: RadioGroupProps) {
19
19
  return <RadioGroupPrimitive
@@ -1,4 +1,4 @@
1
- import { cn } from '../../../lib/utils';
1
+ import { cn } from 'cn';
2
2
  import type { HostProps } from '../../../lib/types';
3
3
 
4
4
  export function ScrollArea({ className, children, ...props }: HostProps<'div'>) {
@@ -8,7 +8,7 @@
8
8
  // reason. The non-conditional utilities stay in step with the Radix base.
9
9
  import { Separator as SeparatorPrimitive } from '@octanejs/aria/components';
10
10
 
11
- import { cn } from '../../../lib/utils';
11
+ import { cn } from 'cn';
12
12
 
13
13
  export interface SeparatorProps extends Record<string, unknown> {
14
14
  className?: string;
@@ -14,7 +14,7 @@ import {
14
14
  } from '@octanejs/aria/components';
15
15
  import type { HeadingProps } from '@octanejs/aria/components';
16
16
 
17
- import { cn } from '../../../lib/utils';
17
+ import { cn } from 'cn';
18
18
  import type { HostProps } from '../../../lib/types';
19
19
  import { Button } from './button.tsrx';
20
20
  import { XIcon } from '@octanejs/lucide';
@@ -1,4 +1,4 @@
1
- import { cn } from '../../../lib/utils';
1
+ import { cn } from 'cn';
2
2
  import type { HostProps } from '../../../lib/types';
3
3
 
4
4
  export function Skeleton({ className, ...props }: HostProps<'div'>) {
@@ -11,7 +11,7 @@ import {
11
11
  type SliderRenderProps,
12
12
  } from '@octanejs/aria/components';
13
13
 
14
- import { cn } from '../../../lib/utils';
14
+ import { cn } from 'cn';
15
15
 
16
16
  type SliderValue = number | number[];
17
17
  type SliderProps<T extends SliderValue = SliderValue> =
@@ -11,7 +11,7 @@
11
11
  // SVG attribute types do not describe them.
12
12
  import { Loader2Icon } from '@octanejs/lucide';
13
13
 
14
- import { cn } from '../../../lib/utils';
14
+ import { cn } from 'cn';
15
15
 
16
16
  export interface SpinnerProps extends Record<string, unknown> {
17
17
  className?: string;
@@ -11,7 +11,7 @@ import {
11
11
  type SwitchRenderProps,
12
12
  } from '@octanejs/aria/components';
13
13
 
14
- import { cn } from '../../../lib/utils';
14
+ import { cn } from 'cn';
15
15
 
16
16
  export function Switch({ className, size = 'default', children, ...props }: SwitchPrimitiveProps & {
17
17
  size?: 'sm' | 'default';
@@ -19,7 +19,7 @@ import {
19
19
  type TableProps,
20
20
  } from '@octanejs/aria/components';
21
21
 
22
- import { cn } from '../../../lib/utils';
22
+ import { cn } from 'cn';
23
23
  import type { HostProps } from '../../../lib/types';
24
24
 
25
25
  export function Table({ className, ...props }: TableProps) {
@@ -7,7 +7,7 @@ import {
7
7
  } from '@octanejs/aria/components';
8
8
  import type { TabPanelProps, TabProps, TabsProps } from '@octanejs/aria/components';
9
9
 
10
- import { cn } from '../../../lib/utils';
10
+ import { cn } from 'cn';
11
11
 
12
12
  export function Tabs({ className, ...props }: TabsProps) {
13
13
  return <TabsPrimitive
@@ -7,7 +7,7 @@
7
7
  import { composeRenderProps, TextArea as TextareaPrimitive } from '@octanejs/aria/components';
8
8
  import type { TextAreaProps as TextareaPrimitiveProps } from '@octanejs/aria/components';
9
9
 
10
- import { cn } from '../../../lib/utils';
10
+ import { cn } from 'cn';
11
11
 
12
12
  export interface TextareaProps extends TextareaPrimitiveProps {}
13
13
 
@@ -1,7 +1,7 @@
1
1
  import { cva, type VariantProps } from 'class-variance-authority';
2
2
  import { ToggleButton as TogglePrimitive, type ToggleButtonProps } from '@octanejs/aria/components';
3
3
 
4
- import { cn } from '../../../lib/utils';
4
+ import { cn } from 'cn';
5
5
 
6
6
  export const toggleVariants = cva(
7
7
  'group/toggle inline-flex items-center justify-center gap-1 rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none hover:bg-muted hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 aria-pressed:bg-muted data-[state=on]:bg-muted dark:aria-invalid:ring-destructive/40 data-selected:bg-muted [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\'size-\'])]:size-4',
package/src/lib/utils.ts CHANGED
@@ -1,8 +1 @@
1
- // Ported from shadcn-ui/ui@4baadbc6517070ae8f8feb2c97037adc2b305544
2
- // apps/v4/registry/bases/radix/lib/utils.ts — unchanged (framework-free).
3
- import { clsx, type ClassValue } from 'clsx';
4
- import { twMerge } from 'tailwind-merge';
5
-
6
- export function cn(...inputs: ClassValue[]) {
7
- return twMerge(clsx(inputs));
8
- }
1
+ export { cn } from 'cn';