@tenerife.music/ui 1.1.1 → 1.2.1

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.
@@ -184,12 +184,13 @@ declare const BUTTON_TOKENS: {
184
184
  /**
185
185
  * Icon size within buttons by button size
186
186
  * Scales proportionally with button size for visual balance
187
+ * Contains full SVG selector classes for direct use in CVA
187
188
  */
188
189
  readonly iconSize: {
189
- readonly sm: "size-3.5";
190
- readonly md: "size-4";
191
- readonly lg: "size-5";
192
- readonly icon: "size-4";
190
+ readonly sm: "[&_svg]:w-3.5 [&_svg]:h-3.5";
191
+ readonly md: "[&_svg]:w-4 [&_svg]:h-4";
192
+ readonly lg: "[&_svg]:w-5 [&_svg]:h-5";
193
+ readonly icon: "[&_svg]:w-4 [&_svg]:h-4";
193
194
  };
194
195
  /**
195
196
  * Width tokens
@@ -184,12 +184,13 @@ declare const BUTTON_TOKENS: {
184
184
  /**
185
185
  * Icon size within buttons by button size
186
186
  * Scales proportionally with button size for visual balance
187
+ * Contains full SVG selector classes for direct use in CVA
187
188
  */
188
189
  readonly iconSize: {
189
- readonly sm: "size-3.5";
190
- readonly md: "size-4";
191
- readonly lg: "size-5";
192
- readonly icon: "size-4";
190
+ readonly sm: "[&_svg]:w-3.5 [&_svg]:h-3.5";
191
+ readonly md: "[&_svg]:w-4 [&_svg]:h-4";
192
+ readonly lg: "[&_svg]:w-5 [&_svg]:h-5";
193
+ readonly icon: "[&_svg]:w-4 [&_svg]:h-4";
193
194
  };
194
195
  /**
195
196
  * Width tokens
package/dist/index.cjs CHANGED
@@ -859,15 +859,16 @@ var BUTTON_TOKENS = {
859
859
  /**
860
860
  * Icon size within buttons by button size
861
861
  * Scales proportionally with button size for visual balance
862
+ * Contains full SVG selector classes for direct use in CVA
862
863
  */
863
864
  iconSize: {
864
- sm: "size-3.5",
865
+ sm: "[&_svg]:w-3.5 [&_svg]:h-3.5",
865
866
  // 14px (0.875rem) - smaller icon for small buttons
866
- md: "size-4",
867
+ md: "[&_svg]:w-4 [&_svg]:h-4",
867
868
  // 16px (1rem) - medium icon for medium buttons
868
- lg: "size-5",
869
+ lg: "[&_svg]:w-5 [&_svg]:h-5",
869
870
  // 20px (1.25rem) - larger icon for large buttons
870
- icon: "size-4"
871
+ icon: "[&_svg]:w-4 [&_svg]:h-4"
871
872
  // 16px (1rem) - medium icon for icon-only buttons
872
873
  },
873
874
  /**
@@ -5109,42 +5110,28 @@ var LINK_TOKENS = {
5109
5110
  * Maps to Tailwind height utilities
5110
5111
  */
5111
5112
  height: {
5112
- xs: "h-7",
5113
5113
  // 28px (1.75rem)
5114
5114
  sm: "h-8",
5115
5115
  // 32px (2rem)
5116
5116
  md: "h-9",
5117
5117
  // 36px (2.25rem)
5118
- lg: "h-10",
5119
- // 40px (2.5rem)
5120
- xl: "h-11"
5121
- // 44px (2.75rem)
5122
- },
5118
+ lg: "h-10"},
5123
5119
  /**
5124
5120
  * Link padding by size
5125
5121
  * Horizontal and vertical padding values
5126
5122
  */
5127
5123
  padding: {
5128
5124
  horizontal: {
5129
- xs: "px-xs",
5130
5125
  // 4px (0.25rem) - maps to semanticSpacing.xs
5131
5126
  sm: "px-sm",
5132
5127
  // 8px (0.5rem) - maps to semanticSpacing.sm
5133
5128
  md: "px-md",
5134
5129
  // 16px (1rem) - maps to semanticSpacing.md
5135
- lg: "px-lg",
5136
- // 24px (1.5rem) - maps to semanticSpacing.lg
5137
- xl: "px-xl"
5138
- // 32px (2rem) - maps to semanticSpacing.xl
5139
- },
5130
+ lg: "px-lg"},
5140
5131
  vertical: {
5141
5132
  xs: "py-xs",
5142
5133
  // 4px (0.25rem) - maps to semanticSpacing.xs
5143
- sm: "py-sm",
5144
- // 8px (0.5rem) - maps to semanticSpacing.sm
5145
- md: "py-md"
5146
- // 16px (1rem) - maps to semanticSpacing.md
5147
- }
5134
+ sm: "py-sm"}
5148
5135
  },
5149
5136
  /**
5150
5137
  * Layout tokens
@@ -5175,17 +5162,12 @@ var LINK_TOKENS = {
5175
5162
  * @see docs/architecture/TYPOGRAPHY_AUTHORITY_CONTRACT.md
5176
5163
  */
5177
5164
  fontSize: {
5178
- xs: "text-xs",
5179
5165
  // References fontSize.xs[0] from Typography Authority (~12px)
5180
5166
  sm: "text-xs",
5181
5167
  // References fontSize.xs[0] from Typography Authority (~12px)
5182
5168
  md: "text-sm",
5183
5169
  // References fontSize.sm[0] from Typography Authority (~14px)
5184
- lg: "text-sm",
5185
- // References fontSize.sm[0] from Typography Authority (~14px)
5186
- xl: "text-base"
5187
- // References fontSize.base[0] from Typography Authority (~16px)
5188
- },
5170
+ lg: "text-sm"},
5189
5171
  /**
5190
5172
  * Border radius for outline and ghost variants
5191
5173
  * References componentRadius from Radius Authority
@@ -5253,15 +5235,15 @@ var LINK_TOKENS = {
5253
5235
  // Underline on hover
5254
5236
  },
5255
5237
  secondary: {
5256
- text: "text-secondary-foreground",
5238
+ text: "text-secondary",
5257
5239
  // Secondary text using CSS var
5258
5240
  hover: "hover:underline"
5259
5241
  // Underline on hover
5260
5242
  },
5261
5243
  accent: {
5262
- text: "text-accent-foreground",
5263
- // Accent text using CSS var
5264
- hover: "hover:text-accent-foreground/80",
5244
+ text: "text-accent",
5245
+ // Accent text using CSS var (accent color, not accent-foreground)
5246
+ hover: "hover:text-accent/80",
5265
5247
  // Accent hover text
5266
5248
  underline: "hover:underline"
5267
5249
  // Underline on hover
@@ -6716,10 +6698,10 @@ var buttonVariants = tokenCVA({
6716
6698
  destructive: `${BUTTON_TOKENS.variant.destructive.background} ${BUTTON_TOKENS.variant.destructive.text} ${BUTTON_TOKENS.shadow.default} ${BUTTON_TOKENS.variant.destructive.hover} ${BUTTON_TOKENS.variant.destructive.active} ${BUTTON_TOKENS.variant.destructive.disabled.background} ${BUTTON_TOKENS.variant.destructive.disabled.text}`
6717
6699
  },
6718
6700
  size: {
6719
- sm: `${BUTTON_TOKENS.height.sm} ${BUTTON_TOKENS.radius} ${BUTTON_TOKENS.padding.horizontal.sm} ${BUTTON_TOKENS.padding.vertical.sm} ${BUTTON_TOKENS.fontSize.sm} ${BUTTON_TOKENS.gap.sm} [&_svg]:${BUTTON_TOKENS.iconSize.sm}`,
6720
- md: `${BUTTON_TOKENS.height.md} ${BUTTON_TOKENS.radius} ${BUTTON_TOKENS.padding.horizontal.md} ${BUTTON_TOKENS.padding.vertical.md} ${BUTTON_TOKENS.fontSize.md} ${BUTTON_TOKENS.gap.md} [&_svg]:${BUTTON_TOKENS.iconSize.md}`,
6721
- lg: `${BUTTON_TOKENS.height.lg} ${BUTTON_TOKENS.radius} ${BUTTON_TOKENS.padding.horizontal.lg} ${BUTTON_TOKENS.padding.vertical.md} ${BUTTON_TOKENS.fontSize.lg} ${BUTTON_TOKENS.gap.lg} [&_svg]:${BUTTON_TOKENS.iconSize.lg}`,
6722
- icon: `${BUTTON_TOKENS.height.icon} ${BUTTON_TOKENS.width.icon} [&_svg]:${BUTTON_TOKENS.iconSize.icon}`
6701
+ sm: `${BUTTON_TOKENS.height.sm} ${BUTTON_TOKENS.radius} ${BUTTON_TOKENS.padding.horizontal.sm} ${BUTTON_TOKENS.padding.vertical.sm} ${BUTTON_TOKENS.fontSize.sm} ${BUTTON_TOKENS.gap.sm} ${BUTTON_TOKENS.iconSize.sm}`,
6702
+ md: `${BUTTON_TOKENS.height.md} ${BUTTON_TOKENS.radius} ${BUTTON_TOKENS.padding.horizontal.md} ${BUTTON_TOKENS.padding.vertical.md} ${BUTTON_TOKENS.fontSize.md} ${BUTTON_TOKENS.gap.md} ${BUTTON_TOKENS.iconSize.md}`,
6703
+ lg: `${BUTTON_TOKENS.height.lg} ${BUTTON_TOKENS.radius} ${BUTTON_TOKENS.padding.horizontal.lg} ${BUTTON_TOKENS.padding.vertical.md} ${BUTTON_TOKENS.fontSize.lg} ${BUTTON_TOKENS.gap.lg} ${BUTTON_TOKENS.iconSize.lg}`,
6704
+ icon: `${BUTTON_TOKENS.height.icon} ${BUTTON_TOKENS.width.icon} ${BUTTON_TOKENS.iconSize.icon}`
6723
6705
  }
6724
6706
  },
6725
6707
  defaultVariants: {
@@ -6728,16 +6710,8 @@ var buttonVariants = tokenCVA({
6728
6710
  }
6729
6711
  });
6730
6712
  var Button = React49__namespace.forwardRef(
6731
- ({ className, variant, size, asChild = false, leftIcon, rightIcon, children, ...props }, ref) => {
6732
- const Comp = asChild ? reactSlot.Slot : "button";
6733
- const finalClassName = cn(buttonVariants({ variant, size, className }));
6734
- const iconSizeMap = {
6735
- "size-3.5": "[&_svg]:w-3.5 [&_svg]:h-3.5",
6736
- "size-4": "[&_svg]:w-4 [&_svg]:h-4",
6737
- "size-5": "[&_svg]:w-5 [&_svg]:h-5"
6738
- };
6739
- const iconSizeToken = size ? BUTTON_TOKENS.iconSize[size] : BUTTON_TOKENS.iconSize.md;
6740
- const iconSizeClass = iconSizeMap[iconSizeToken] || "[&_svg]:w-4 [&_svg]:h-4";
6713
+ ({ variant, size, asChild = false, leftIcon, rightIcon, children, ...props }, ref) => {
6714
+ const finalClassName = buttonVariants({ variant, size });
6741
6715
  if (typeof window !== "undefined" && variant === "primary") {
6742
6716
  const hasHoverClass = finalClassName.includes(
6743
6717
  "hover:bg-[hsl(var(--button-primary-hover-bg))]"
@@ -6768,28 +6742,33 @@ var Button = React49__namespace.forwardRef(
6768
6742
  }).catch(() => {
6769
6743
  });
6770
6744
  }
6745
+ if (asChild && (leftIcon || rightIcon)) {
6746
+ if (!React49__namespace.isValidElement(children)) {
6747
+ const Comp2 = "button";
6748
+ return /* @__PURE__ */ jsxRuntime.jsxs(Comp2, { className: finalClassName, ref, ...props, children: [
6749
+ leftIcon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none relative z-10 inline-flex items-center [&_svg]:text-current", children: leftIcon }),
6750
+ children,
6751
+ rightIcon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none relative z-10 inline-flex items-center [&_svg]:text-current", children: rightIcon })
6752
+ ] });
6753
+ }
6754
+ const iconWrapperClass = "pointer-events-none relative z-10 inline-flex items-center [&_svg]:text-current";
6755
+ const childProps = children.props;
6756
+ const clonedChild = React49__namespace.cloneElement(children, {
6757
+ className: cn(finalClassName, childProps.className),
6758
+ ...props,
6759
+ children: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
6760
+ leftIcon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: iconWrapperClass, children: leftIcon }),
6761
+ childProps.children,
6762
+ rightIcon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: iconWrapperClass, children: rightIcon })
6763
+ ] })
6764
+ });
6765
+ return /* @__PURE__ */ jsxRuntime.jsx(reactSlot.Slot, { ref, children: clonedChild });
6766
+ }
6767
+ const Comp = asChild ? reactSlot.Slot : "button";
6771
6768
  return /* @__PURE__ */ jsxRuntime.jsxs(Comp, { className: finalClassName, ref, ...props, children: [
6772
- leftIcon && /* @__PURE__ */ jsxRuntime.jsx(
6773
- "span",
6774
- {
6775
- className: cn(
6776
- "pointer-events-none relative z-10 inline-flex items-center [&_svg]:text-current",
6777
- iconSizeClass
6778
- ),
6779
- children: leftIcon
6780
- }
6781
- ),
6769
+ leftIcon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none relative z-10 inline-flex items-center [&_svg]:text-current", children: leftIcon }),
6782
6770
  children,
6783
- rightIcon && /* @__PURE__ */ jsxRuntime.jsx(
6784
- "span",
6785
- {
6786
- className: cn(
6787
- "pointer-events-none relative z-10 inline-flex items-center [&_svg]:text-current",
6788
- iconSizeClass
6789
- ),
6790
- children: rightIcon
6791
- }
6792
- )
6771
+ rightIcon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none relative z-10 inline-flex items-center [&_svg]:text-current", children: rightIcon })
6793
6772
  ] });
6794
6773
  }
6795
6774
  );
@@ -6834,13 +6813,13 @@ var textVariants = classVarianceAuthority.cva("text-foreground", {
6834
6813
  }
6835
6814
  });
6836
6815
  var Text = React49__namespace.forwardRef(
6837
- ({ className, size, weight, muted, variant, ...props }, ref) => {
6816
+ ({ size, weight, muted, variant, ...props }, ref) => {
6838
6817
  const isMuted = muted !== void 0 ? muted : variant === "muted";
6839
6818
  return /* @__PURE__ */ jsxRuntime.jsx(
6840
6819
  "span",
6841
6820
  {
6842
6821
  ref,
6843
- className: cn(textVariants({ size, weight, muted: isMuted, variant }), className),
6822
+ className: textVariants({ size, weight, muted: isMuted, variant }),
6844
6823
  ...props
6845
6824
  }
6846
6825
  );
@@ -6881,16 +6860,6 @@ var Alert = React49__namespace.forwardRef(
6881
6860
  }
6882
6861
  );
6883
6862
  Alert.displayName = "Alert";
6884
- var LINK_VARIANTS = [
6885
- "primary",
6886
- "secondary",
6887
- "accent",
6888
- "outline",
6889
- "ghost",
6890
- "link",
6891
- "destructive"
6892
- ];
6893
- var LINK_SIZES = ["xs", "sm", "md", "lg", "xl"];
6894
6863
  var linkVariants = tokenCVA({
6895
6864
  base: `${LINK_TOKENS.layout} ${LINK_TOKENS.fontWeight} ${LINK_TOKENS.transition.colors} ${LINK_TOKENS.focus.outline} ${LINK_TOKENS.focus.ring} ${LINK_TOKENS.focus.offset} ${LINK_TOKENS.state.disabled.pointerEvents} ${LINK_TOKENS.state.disabled.opacity}`,
6896
6865
  variants: {
@@ -6904,11 +6873,9 @@ var linkVariants = tokenCVA({
6904
6873
  destructive: `${LINK_TOKENS.variant.destructive.text} ${LINK_TOKENS.variant.destructive.hover} ${LINK_TOKENS.underlineOffset} ${LINK_TOKENS.variant.destructive.underline}`
6905
6874
  },
6906
6875
  size: {
6907
- xs: `${LINK_TOKENS.height.xs} ${LINK_TOKENS.fontSize.xs} ${LINK_TOKENS.padding.horizontal.xs} ${LINK_TOKENS.padding.vertical.xs}`,
6908
6876
  sm: `${LINK_TOKENS.height.sm} ${LINK_TOKENS.fontSize.sm} ${LINK_TOKENS.padding.horizontal.sm} ${LINK_TOKENS.padding.vertical.xs}`,
6909
6877
  md: `${LINK_TOKENS.height.md} ${LINK_TOKENS.fontSize.md} ${LINK_TOKENS.padding.horizontal.md} ${LINK_TOKENS.padding.vertical.sm}`,
6910
- lg: `${LINK_TOKENS.height.lg} ${LINK_TOKENS.fontSize.lg} ${LINK_TOKENS.padding.horizontal.lg} ${LINK_TOKENS.padding.vertical.sm}`,
6911
- xl: `${LINK_TOKENS.height.xl} ${LINK_TOKENS.fontSize.xl} ${LINK_TOKENS.padding.horizontal.xl} ${LINK_TOKENS.padding.vertical.md}`
6878
+ lg: `${LINK_TOKENS.height.lg} ${LINK_TOKENS.fontSize.lg} ${LINK_TOKENS.padding.horizontal.lg} ${LINK_TOKENS.padding.vertical.sm}`
6912
6879
  }
6913
6880
  },
6914
6881
  defaultVariants: {
@@ -6917,13 +6884,38 @@ var linkVariants = tokenCVA({
6917
6884
  }
6918
6885
  });
6919
6886
  var Link = React49__namespace.forwardRef(
6920
- ({ className, variant, size, asChild = false, leftIcon, rightIcon, children, ...props }, ref) => {
6921
- const Comp = asChild ? reactSlot.Slot : "a";
6922
- return /* @__PURE__ */ jsxRuntime.jsxs(Comp, { className: cn(linkVariants({ variant, size, className })), ref, ...props, children: [
6923
- leftIcon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: LINK_TOKENS.iconWrapper, children: leftIcon }),
6924
- children,
6925
- rightIcon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: LINK_TOKENS.iconWrapper, children: rightIcon })
6926
- ] });
6887
+ ({ variant, size, leftIcon, rightIcon, children, disabled, onClick, href, tabIndex, ...props }, ref) => {
6888
+ const handleClick = React49__namespace.useCallback(
6889
+ (e) => {
6890
+ if (disabled) {
6891
+ e.preventDefault();
6892
+ e.stopPropagation();
6893
+ return;
6894
+ }
6895
+ onClick?.(e);
6896
+ },
6897
+ [disabled, onClick]
6898
+ );
6899
+ const finalClassName = linkVariants({ variant, size });
6900
+ const finalTabIndex = disabled ? tabIndex ?? -1 : tabIndex;
6901
+ const finalAriaDisabled = disabled ? true : void 0;
6902
+ return /* @__PURE__ */ jsxRuntime.jsxs(
6903
+ "a",
6904
+ {
6905
+ className: finalClassName,
6906
+ ref,
6907
+ href,
6908
+ tabIndex: finalTabIndex,
6909
+ "aria-disabled": finalAriaDisabled,
6910
+ onClick: handleClick,
6911
+ ...props,
6912
+ children: [
6913
+ leftIcon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: LINK_TOKENS.iconWrapper, children: leftIcon }),
6914
+ children,
6915
+ rightIcon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: LINK_TOKENS.iconWrapper, children: rightIcon })
6916
+ ]
6917
+ }
6918
+ );
6927
6919
  }
6928
6920
  );
6929
6921
  Link.displayName = "Link";
@@ -7043,17 +7035,9 @@ var headingVariants = classVarianceAuthority.cva("font-display text-foreground",
7043
7035
  }
7044
7036
  });
7045
7037
  var Heading = React49__namespace.forwardRef(
7046
- ({ className, level = 1, weight, muted, as, children, ...props }, ref) => {
7038
+ ({ level = 1, weight, muted, as, children, ...props }, ref) => {
7047
7039
  const Component = as || `h${level}`;
7048
- return /* @__PURE__ */ jsxRuntime.jsx(
7049
- Component,
7050
- {
7051
- ref,
7052
- className: cn(headingVariants({ level, weight, muted }), className),
7053
- ...props,
7054
- children
7055
- }
7056
- );
7040
+ return /* @__PURE__ */ jsxRuntime.jsx(Component, { ref, className: headingVariants({ level, weight, muted }), ...props, children });
7057
7041
  }
7058
7042
  );
7059
7043
  Heading.displayName = "Heading";
@@ -8033,7 +8017,6 @@ var checkboxVariants = classVarianceAuthority.cva(
8033
8017
  );
8034
8018
  var Checkbox = React49__namespace.forwardRef(
8035
8019
  ({
8036
- className,
8037
8020
  variant,
8038
8021
  size,
8039
8022
  state,
@@ -8095,10 +8078,7 @@ var Checkbox = React49__namespace.forwardRef(
8095
8078
  },
8096
8079
  [isDisabled, isControlled, checked, onCheckedChange, onKeyDown]
8097
8080
  );
8098
- const checkboxClasses = cn(
8099
- checkboxVariants({ variant, size, state: effectiveState }),
8100
- className
8101
- );
8081
+ const checkboxClasses = checkboxVariants({ variant, size, state: effectiveState });
8102
8082
  const iconSize = size ? CHECKBOX_TOKENS.icon.size[size] : CHECKBOX_TOKENS.icon.size.md;
8103
8083
  const renderIcon = () => {
8104
8084
  if (indeterminate) {
@@ -8756,10 +8736,13 @@ var labelVariants = classVarianceAuthority.cva(
8756
8736
  `${TEXT_TOKENS.fontSize.sm} ${TEXT_TOKENS.fontWeight.medium} ${TEXT_TOKENS.lineHeight.none} peer-disabled:cursor-not-allowed peer-disabled:opacity-70`
8757
8737
  );
8758
8738
  var Label2 = React49__namespace.forwardRef(
8759
- ({ className, required, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(LabelPrimitive__namespace.Root, { ref, className: cn(labelVariants(), className), ...props, children: [
8760
- children,
8761
- required && /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(FORM_TOKENS.label.requiredMark, "ml-xs"), children: "*" })
8762
- ] })
8739
+ ({ required, children, ...props }, ref) => (
8740
+ // className and style are forbidden from public API - only CVA output is used
8741
+ /* @__PURE__ */ jsxRuntime.jsxs(LabelPrimitive__namespace.Root, { ref, className: labelVariants(), ...props, children: [
8742
+ children,
8743
+ required && /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(FORM_TOKENS.label.requiredMark, "ml-xs"), children: "*" })
8744
+ ] })
8745
+ )
8763
8746
  );
8764
8747
  Label2.displayName = LabelPrimitive__namespace.Root.displayName;
8765
8748
  var Field = React49__namespace.forwardRef(
@@ -8768,11 +8751,9 @@ var Field = React49__namespace.forwardRef(
8768
8751
  }
8769
8752
  );
8770
8753
  Field.displayName = "Field";
8771
- var FieldLabel = React49__namespace.forwardRef(
8772
- ({ className, ...props }, ref) => {
8773
- return /* @__PURE__ */ jsxRuntime.jsx(Label2, { ref, className, ...props });
8774
- }
8775
- );
8754
+ var FieldLabel = React49__namespace.forwardRef((props, ref) => {
8755
+ return /* @__PURE__ */ jsxRuntime.jsx(Label2, { ref, ...props });
8756
+ });
8776
8757
  FieldLabel.displayName = "FieldLabel";
8777
8758
  var FieldControl = React49__namespace.forwardRef(
8778
8759
  ({ className, children, ...props }, ref) => {
@@ -8780,17 +8761,13 @@ var FieldControl = React49__namespace.forwardRef(
8780
8761
  }
8781
8762
  );
8782
8763
  FieldControl.displayName = "FieldControl";
8783
- var FieldDescription = React49__namespace.forwardRef(
8784
- ({ className, ...props }, ref) => {
8785
- return /* @__PURE__ */ jsxRuntime.jsx(Text, { ref, size: "sm", muted: true, className: cn(className), ...props });
8786
- }
8787
- );
8764
+ var FieldDescription = React49__namespace.forwardRef((props, ref) => {
8765
+ return /* @__PURE__ */ jsxRuntime.jsx(Text, { ref, size: "sm", muted: true, ...props });
8766
+ });
8788
8767
  FieldDescription.displayName = "FieldDescription";
8789
- var FieldError = React49__namespace.forwardRef(
8790
- ({ className, ...props }, ref) => {
8791
- return /* @__PURE__ */ jsxRuntime.jsx(Text, { ref, size: "sm", className: cn("text-destructive", className), ...props });
8792
- }
8793
- );
8768
+ var FieldError = React49__namespace.forwardRef((props, ref) => {
8769
+ return /* @__PURE__ */ jsxRuntime.jsx(Text, { ref, size: "sm", variant: "destructive", ...props });
8770
+ });
8794
8771
  FieldError.displayName = "FieldError";
8795
8772
  var FieldRoot = Field;
8796
8773
  FieldRoot.Label = FieldLabel;
@@ -8836,7 +8813,6 @@ var inputVariants = classVarianceAuthority.cva(
8836
8813
  );
8837
8814
  var Input = React49__namespace.forwardRef(
8838
8815
  ({
8839
- className,
8840
8816
  type = "text",
8841
8817
  variant,
8842
8818
  size,
@@ -8866,8 +8842,7 @@ var Input = React49__namespace.forwardRef(
8866
8842
  inputVariants({ variant: baseVariant, size: baseSize, state, fullWidth }),
8867
8843
  // Add padding for icons if present
8868
8844
  iconLeft && INPUT_TOKENS.icon.paddingLeft,
8869
- iconRight && INPUT_TOKENS.icon.paddingRight,
8870
- className
8845
+ iconRight && INPUT_TOKENS.icon.paddingRight
8871
8846
  );
8872
8847
  if (iconLeft || iconRight) {
8873
8848
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("relative", fullWidth !== false && INPUT_TOKENS.width.full), children: [
@@ -9017,7 +8992,6 @@ var RadioGroup = React49__namespace.forwardRef(
9017
8992
  RadioGroup.displayName = "RadioGroup";
9018
8993
  var Radio = React49__namespace.forwardRef(
9019
8994
  ({
9020
- className,
9021
8995
  variant,
9022
8996
  size,
9023
8997
  state,
@@ -9151,10 +9125,7 @@ var Radio = React49__namespace.forwardRef(
9151
9125
  onKeyDown
9152
9126
  ]
9153
9127
  );
9154
- const radioClasses = cn(
9155
- radioVariants({ variant, size: effectiveSize, state: effectiveState }),
9156
- className
9157
- );
9128
+ const radioClasses = radioVariants({ variant, size: effectiveSize, state: effectiveState });
9158
9129
  const dotSize = RADIO_TOKENS.dot.size[effectiveSize];
9159
9130
  const renderDot = () => {
9160
9131
  if (!finalChecked) return null;
@@ -9239,7 +9210,6 @@ var textareaVariants = classVarianceAuthority.cva(
9239
9210
  );
9240
9211
  var Textarea = React49__namespace.forwardRef(
9241
9212
  ({
9242
- className,
9243
9213
  variant,
9244
9214
  size,
9245
9215
  state,
@@ -9264,7 +9234,7 @@ var Textarea = React49__namespace.forwardRef(
9264
9234
  }
9265
9235
  return void 0;
9266
9236
  });
9267
- const textareaClasses = cn(textareaVariants({ variant, size, state, fullWidth }), className);
9237
+ const textareaClasses = textareaVariants({ variant, size, state, fullWidth });
9268
9238
  const currentValue = value ?? defaultValue ?? "";
9269
9239
  const currentLength = typeof currentValue === "string" ? currentValue.length : 0;
9270
9240
  const shouldShowCounter = showCharacterCount && maxLength !== void 0;
@@ -9441,20 +9411,8 @@ var DialogHeader = React49__namespace.forwardRef(
9441
9411
  );
9442
9412
  DialogHeader.displayName = "DialogHeader";
9443
9413
  var DialogTitle = React49__namespace.forwardRef(
9444
- ({ titleId, className, children, ...props }, ref) => {
9445
- return /* @__PURE__ */ jsxRuntime.jsx(
9446
- Heading,
9447
- {
9448
- ref,
9449
- as: "h2",
9450
- level: 4,
9451
- weight: "semibold",
9452
- id: titleId,
9453
- className: cn(className),
9454
- ...props,
9455
- children
9456
- }
9457
- );
9414
+ ({ titleId, children, ...props }, ref) => {
9415
+ return /* @__PURE__ */ jsxRuntime.jsx(Heading, { ref, as: "h2", level: 4, weight: "semibold", id: titleId, ...props, children });
9458
9416
  }
9459
9417
  );
9460
9418
  DialogTitle.displayName = "DialogTitle";
@@ -10519,7 +10477,7 @@ function useNotificationCenterContext() {
10519
10477
  }
10520
10478
  return context;
10521
10479
  }
10522
- var NotificationCenterDismissAll = React49__namespace.forwardRef(({ confirm = false, confirmMessage = "Clear all notifications?", className, ...props }, ref) => {
10480
+ var NotificationCenterDismissAll = React49__namespace.forwardRef(({ confirm = false, confirmMessage = "Clear all notifications?", ...props }, ref) => {
10523
10481
  const { clearAll, getAll } = useNotificationCenterContext();
10524
10482
  const notifications = getAll();
10525
10483
  const handleClick = () => {
@@ -10543,7 +10501,6 @@ var NotificationCenterDismissAll = React49__namespace.forwardRef(({ confirm = fa
10543
10501
  size: "sm",
10544
10502
  onClick: handleClick,
10545
10503
  "aria-label": "Clear all notifications",
10546
- className,
10547
10504
  ...props,
10548
10505
  children: "Clear all"
10549
10506
  }
@@ -10572,7 +10529,6 @@ var NotificationCenterGroupHeader = React49__namespace.forwardRef(
10572
10529
  onClick: onToggleCollapse,
10573
10530
  "aria-label": collapsed ? "Expand group" : "Collapse group",
10574
10531
  "aria-expanded": !collapsed,
10575
- className: "h-6 w-6",
10576
10532
  children: collapsed ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "h-4 w-4" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronUp, { className: "h-4 w-4" })
10577
10533
  }
10578
10534
  )
@@ -10666,7 +10622,6 @@ var NotificationCenterItem = React49__namespace.forwardRef(
10666
10622
  e.stopPropagation();
10667
10623
  notification.action?.onClick();
10668
10624
  },
10669
- className: "h-7 px-xs text-xs",
10670
10625
  children: notification.action.label
10671
10626
  }
10672
10627
  ) })
@@ -10678,7 +10633,6 @@ var NotificationCenterItem = React49__namespace.forwardRef(
10678
10633
  size: "icon",
10679
10634
  onClick: handleDismiss,
10680
10635
  "aria-label": "Dismiss notification",
10681
- className: "absolute right-xs top-xs h-6 w-6 opacity-0 transition-opacity hover:text-foreground focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-1 group-hover:opacity-100",
10682
10636
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" })
10683
10637
  }
10684
10638
  )
@@ -10976,7 +10930,6 @@ var NotificationCenterPanel = React49__namespace.forwardRef(
10976
10930
  size: "icon",
10977
10931
  onClick: onClose,
10978
10932
  "aria-label": "Close notifications",
10979
- className: "h-8 w-8",
10980
10933
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" })
10981
10934
  }
10982
10935
  )
@@ -11020,10 +10973,10 @@ var NotificationCenterPanel = React49__namespace.forwardRef(
11020
10973
  }
11021
10974
  );
11022
10975
  NotificationCenterPanel.displayName = "NotificationCenter.Panel";
11023
- var NotificationCenterTrigger = React49__namespace.forwardRef(({ onClick, showBadge = true, className, ...props }, ref) => {
10976
+ var NotificationCenterTrigger = React49__namespace.forwardRef(({ onClick, showBadge = true, ...props }, ref) => {
11024
10977
  const { getUnreadCount } = useNotificationCenterContext();
11025
10978
  const unreadCount = getUnreadCount();
11026
- return /* @__PURE__ */ jsxRuntime.jsxs(
10979
+ return /* @__PURE__ */ jsxRuntime.jsx(
11027
10980
  Button,
11028
10981
  {
11029
10982
  ref,
@@ -11031,9 +10984,8 @@ var NotificationCenterTrigger = React49__namespace.forwardRef(({ onClick, showBa
11031
10984
  size: "icon",
11032
10985
  onClick,
11033
10986
  "aria-label": `Open notifications${unreadCount > 0 ? ` (${unreadCount} unread)` : ""}`,
11034
- className: cn("relative", className),
11035
10987
  ...props,
11036
- children: [
10988
+ children: /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "relative", children: [
11037
10989
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Bell, { className: "h-5 w-5" }),
11038
10990
  showBadge && unreadCount > 0 && /* @__PURE__ */ jsxRuntime.jsx(
11039
10991
  "span",
@@ -11045,7 +10997,7 @@ var NotificationCenterTrigger = React49__namespace.forwardRef(({ onClick, showBa
11045
10997
  children: unreadCount > 99 ? "99+" : unreadCount
11046
10998
  }
11047
10999
  )
11048
- ]
11000
+ ] })
11049
11001
  }
11050
11002
  );
11051
11003
  });
@@ -11873,18 +11825,7 @@ var BreadcrumbsRoot = React49__namespace.forwardRef(
11873
11825
  disabled: item.disabled,
11874
11826
  children: [
11875
11827
  index > 0 && /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbsSeparator, { children: separator || defaultSeparator }),
11876
- item.href && !isLast && !item.disabled ? /* @__PURE__ */ jsxRuntime.jsx(
11877
- "a",
11878
- {
11879
- href: item.href,
11880
- className: cn(
11881
- NAVIGATION_TOKENS.states.default.text,
11882
- NAVIGATION_TOKENS.states.hover.text,
11883
- MOTION_TOKENS.transition.colors
11884
- ),
11885
- children: item.label
11886
- }
11887
- ) : /* @__PURE__ */ jsxRuntime.jsx(
11828
+ item.href && !isLast && !item.disabled ? /* @__PURE__ */ jsxRuntime.jsx(Link, { href: item.href, variant: "link", children: item.label }) : /* @__PURE__ */ jsxRuntime.jsx(
11888
11829
  "span",
11889
11830
  {
11890
11831
  className: cn(
@@ -12878,8 +12819,6 @@ exports.IconSearch = IconSearch;
12878
12819
  exports.IconSuccess = IconSuccess;
12879
12820
  exports.IconWarning = IconWarning;
12880
12821
  exports.Input = Input;
12881
- exports.LINK_SIZES = LINK_SIZES;
12882
- exports.LINK_VARIANTS = LINK_VARIANTS;
12883
12822
  exports.Label = Label2;
12884
12823
  exports.Link = Link;
12885
12824
  exports.MENU_TOKENS = MENU_TOKENS;
@@ -12965,7 +12904,6 @@ exports.animations = animations;
12965
12904
  exports.badgeVariants = badgeVariants;
12966
12905
  exports.baseColors = baseColors;
12967
12906
  exports.borderRadius = borderRadius;
12968
- exports.buttonVariants = buttonVariants;
12969
12907
  exports.chartColors = chartColors;
12970
12908
  exports.checkboxVariants = checkboxVariants;
12971
12909
  exports.colorCSSVariables = colorCSSVariables;