@rovula/ui 0.1.1 → 0.1.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.
Files changed (80) hide show
  1. package/dist/cjs/bundle.css +358 -73
  2. package/dist/cjs/bundle.js +1564 -1570
  3. package/dist/cjs/bundle.js.map +1 -1
  4. package/dist/cjs/types/components/ActionButton/ActionButton.d.ts +4 -2
  5. package/dist/cjs/types/components/ActionButton/ActionButton.stories.d.ts +30 -8
  6. package/dist/cjs/types/components/ActionButton/ActionButton.styles.d.ts +2 -1
  7. package/dist/cjs/types/components/Avatar/Avatar.styles.d.ts +1 -1
  8. package/dist/cjs/types/components/Button/Button.d.ts +4 -2
  9. package/dist/cjs/types/components/Button/Button.styles.d.ts +2 -1
  10. package/dist/cjs/types/components/Button/Buttons.stories.d.ts +71 -6
  11. package/dist/cjs/types/components/Checkbox/Checkbox.stories.d.ts +13 -9
  12. package/dist/cjs/types/components/Dropdown/Dropdown.stories.d.ts +1 -0
  13. package/dist/cjs/types/components/InputFilter/InputFilter.stories.d.ts +1 -0
  14. package/dist/cjs/types/components/MaskedTextInput/MaskedTextInput.d.ts +1 -0
  15. package/dist/cjs/types/components/MaskedTextInput/MaskedTextInput.stories.d.ts +2 -0
  16. package/dist/cjs/types/components/PasswordInput/PasswordInput.stories.d.ts +1 -0
  17. package/dist/cjs/types/components/RadioGroup/RadioGroup.stories.d.ts +10 -7
  18. package/dist/cjs/types/components/Search/Search.stories.d.ts +1 -0
  19. package/dist/cjs/types/components/TextInput/TextInput.d.ts +2 -0
  20. package/dist/cjs/types/components/TextInput/TextInput.stories.d.ts +10 -0
  21. package/dist/cjs/types/components/TextInput/TextInput.styles.d.ts +15 -0
  22. package/dist/components/ActionButton/ActionButton.js +2 -1
  23. package/dist/components/ActionButton/ActionButton.stories.js +40 -7
  24. package/dist/components/ActionButton/ActionButton.styles.js +77 -17
  25. package/dist/components/Button/Button.js +9 -2
  26. package/dist/components/Button/Button.styles.js +51 -14
  27. package/dist/components/Button/Buttons.stories.js +55 -0
  28. package/dist/components/Checkbox/Checkbox.js +6 -7
  29. package/dist/components/Checkbox/Checkbox.stories.js +23 -1
  30. package/dist/components/InputFilter/InputFilter.js +1 -1
  31. package/dist/components/InputFilter/InputFilter.styles.js +1 -1
  32. package/dist/components/PasswordInput/PasswordInput.js +2 -2
  33. package/dist/components/RadioGroup/RadioGroup.js +1 -1
  34. package/dist/components/RadioGroup/RadioGroup.stories.js +16 -1
  35. package/dist/components/TextArea/TextArea.styles.js +1 -1
  36. package/dist/components/TextInput/TextInput.js +33 -24
  37. package/dist/components/TextInput/TextInput.stories.js +14 -2
  38. package/dist/components/TextInput/TextInput.styles.js +25 -10
  39. package/dist/esm/bundle.css +358 -73
  40. package/dist/esm/bundle.js +1564 -1570
  41. package/dist/esm/bundle.js.map +1 -1
  42. package/dist/esm/types/components/ActionButton/ActionButton.d.ts +4 -2
  43. package/dist/esm/types/components/ActionButton/ActionButton.stories.d.ts +30 -8
  44. package/dist/esm/types/components/ActionButton/ActionButton.styles.d.ts +2 -1
  45. package/dist/esm/types/components/Avatar/Avatar.styles.d.ts +1 -1
  46. package/dist/esm/types/components/Button/Button.d.ts +4 -2
  47. package/dist/esm/types/components/Button/Button.styles.d.ts +2 -1
  48. package/dist/esm/types/components/Button/Buttons.stories.d.ts +71 -6
  49. package/dist/esm/types/components/Checkbox/Checkbox.stories.d.ts +13 -9
  50. package/dist/esm/types/components/Dropdown/Dropdown.stories.d.ts +1 -0
  51. package/dist/esm/types/components/InputFilter/InputFilter.stories.d.ts +1 -0
  52. package/dist/esm/types/components/MaskedTextInput/MaskedTextInput.d.ts +1 -0
  53. package/dist/esm/types/components/MaskedTextInput/MaskedTextInput.stories.d.ts +2 -0
  54. package/dist/esm/types/components/PasswordInput/PasswordInput.stories.d.ts +1 -0
  55. package/dist/esm/types/components/RadioGroup/RadioGroup.stories.d.ts +10 -7
  56. package/dist/esm/types/components/Search/Search.stories.d.ts +1 -0
  57. package/dist/esm/types/components/TextInput/TextInput.d.ts +2 -0
  58. package/dist/esm/types/components/TextInput/TextInput.stories.d.ts +10 -0
  59. package/dist/esm/types/components/TextInput/TextInput.styles.d.ts +15 -0
  60. package/dist/index.d.ts +9 -3
  61. package/dist/src/theme/global.css +453 -84
  62. package/package.json +1 -1
  63. package/src/components/ActionButton/ActionButton.stories.tsx +105 -149
  64. package/src/components/ActionButton/ActionButton.styles.ts +78 -18
  65. package/src/components/ActionButton/ActionButton.tsx +7 -2
  66. package/src/components/Button/Button.styles.ts +51 -14
  67. package/src/components/Button/Button.tsx +11 -2
  68. package/src/components/Button/Buttons.stories.tsx +235 -0
  69. package/src/components/Checkbox/Checkbox.stories.tsx +50 -4
  70. package/src/components/Checkbox/Checkbox.tsx +12 -8
  71. package/src/components/InputFilter/InputFilter.styles.ts +2 -2
  72. package/src/components/InputFilter/InputFilter.tsx +21 -24
  73. package/src/components/PasswordInput/PasswordInput.tsx +2 -2
  74. package/src/components/RadioGroup/RadioGroup.stories.tsx +43 -4
  75. package/src/components/RadioGroup/RadioGroup.tsx +1 -1
  76. package/src/components/TextArea/TextArea.styles.ts +1 -1
  77. package/src/components/TextInput/TextInput.stories.tsx +60 -2
  78. package/src/components/TextInput/TextInput.styles.ts +36 -19
  79. package/src/components/TextInput/TextInput.tsx +83 -55
  80. package/src/theme/themes/variable.css +1 -1
@@ -11,11 +11,11 @@ var __rest = (this && this.__rest) || function (s, e) {
11
11
  };
12
12
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
13
  import { forwardRef, useCallback, useImperativeHandle, useMemo, useRef, } from "react";
14
- import { helperTextVariant, iconSearchWrapperVariant, iconVariant, iconWrapperVariant, inputVariant, labelVariant, sectionIconWrapperVariant, } from "./TextInput.styles";
15
- import { XCircleIcon, ExclamationCircleIcon, MagnifyingGlassIcon, } from "@heroicons/react/16/solid";
14
+ import { helperTextVariant, iconActionVariant, inlineEndIconWrapperVariant, inlineStartIconWrapperVariant, inputVariant, labelVariant, segmentedIconWrapperVariant, } from "./TextInput.styles";
15
+ import { CircleAlert, CircleX, Search, } from "lucide-react";
16
16
  import { cn } from "@/utils/cn";
17
17
  export const TextInput = forwardRef((_a, ref) => {
18
- var { id, label, size = "md", rounded = "normal", variant = "outline", type = "text", iconMode = "solid", helperText, errorMessage, fullwidth = true, disabled = false, error = false, required = true, isFloatingLabel = true, keepCloseIconOnValue = false, hasClearIcon = true, hasSearchIcon = false, startIcon, endIcon, labelClassName, onClickStartIcon, onClickEndIcon, renderStartIcon, renderEndIcon, classes } = _a, props = __rest(_a, ["id", "label", "size", "rounded", "variant", "type", "iconMode", "helperText", "errorMessage", "fullwidth", "disabled", "error", "required", "isFloatingLabel", "keepCloseIconOnValue", "hasClearIcon", "hasSearchIcon", "startIcon", "endIcon", "labelClassName", "onClickStartIcon", "onClickEndIcon", "renderStartIcon", "renderEndIcon", "classes"]);
18
+ var { id, label, size = "md", rounded = "normal", variant = "outline", type = "text", iconMode = "solid", helperText, errorMessage, fullwidth = true, disabled = false, error = false, required = true, isFloatingLabel = true, keepCloseIconOnValue = false, keepFooterSpace = true, hasClearIcon = true, hasSearchIcon = false, startIcon, endIcon, labelClassName, onClickStartIcon, onClickEndIcon, renderStartIcon, renderEndIcon, classes } = _a, props = __rest(_a, ["id", "label", "size", "rounded", "variant", "type", "iconMode", "helperText", "errorMessage", "fullwidth", "disabled", "error", "required", "isFloatingLabel", "keepCloseIconOnValue", "keepFooterSpace", "hasClearIcon", "hasSearchIcon", "startIcon", "endIcon", "labelClassName", "onClickStartIcon", "onClickEndIcon", "renderStartIcon", "renderEndIcon", "classes"]);
19
19
  const inputRef = useRef(null);
20
20
  const _id = id || `${type}-${label}-input`;
21
21
  const hasLeftSectionIcon = !!startIcon || !!renderStartIcon;
@@ -40,18 +40,24 @@ export const TextInput = forwardRef((_a, ref) => {
40
40
  hasLeftSectionIcon: iconMode === "solid" ? hasLeftSectionIcon : false,
41
41
  isFloatingLabel,
42
42
  });
43
- const helperTextClassname = helperTextVariant({ size, error, disabled });
44
- const iconWrapperClassname = iconWrapperVariant({ size });
45
- const iconSearchWrapperClassname = iconSearchWrapperVariant({ size });
46
- const iconClassname = iconVariant({ size });
43
+ const helperTextClassname = helperTextVariant({
44
+ size,
45
+ error,
46
+ disabled,
47
+ });
48
+ const inlineEndIconWrapperClassname = inlineEndIconWrapperVariant({ size });
49
+ const inlineStartIconWrapperClassname = inlineStartIconWrapperVariant({
50
+ size,
51
+ });
52
+ const iconActionClassname = iconActionVariant({ size });
47
53
  // TODO wait for clearify aboutm start,end, search and clearIcon with iconMode
48
- const startIconWrapperClassname = sectionIconWrapperVariant({
54
+ const startSegmentIconWrapperClassname = segmentedIconWrapperVariant({
49
55
  size,
50
56
  rounded,
51
57
  error,
52
58
  position: "start",
53
59
  });
54
- const endIconWrapperClassname = sectionIconWrapperVariant({
60
+ const endSegmentIconWrapperClassname = segmentedIconWrapperVariant({
55
61
  size,
56
62
  rounded,
57
63
  error,
@@ -87,19 +93,19 @@ export const TextInput = forwardRef((_a, ref) => {
87
93
  if (!hasLeftSectionIcon)
88
94
  return;
89
95
  if (renderStartIcon) {
90
- return (_jsx("div", { className: cn(iconSearchWrapperClassname, "flex", classes === null || classes === void 0 ? void 0 : classes.iconSearchWrapper), children: renderStartIcon() }));
96
+ return (_jsx("div", { className: cn(inlineStartIconWrapperClassname, "flex", classes === null || classes === void 0 ? void 0 : classes.iconSearchWrapper), children: renderStartIcon() }));
91
97
  }
92
98
  if (iconMode === "flat") {
93
- return (_jsx("div", { className: cn(iconSearchWrapperClassname, classes === null || classes === void 0 ? void 0 : classes.iconSearchWrapper), children: _jsx("div", { className: cn(iconClassname, classes === null || classes === void 0 ? void 0 : classes.icon), onClick: handleOnClickLeftSectionIcon, children: startIcon }) }));
99
+ return (_jsx("div", { className: cn(inlineStartIconWrapperClassname, classes === null || classes === void 0 ? void 0 : classes.iconSearchWrapper), children: _jsx("div", { className: cn(iconActionClassname, classes === null || classes === void 0 ? void 0 : classes.icon), onClick: handleOnClickLeftSectionIcon, children: startIcon }) }));
94
100
  }
95
- return (_jsx("div", { className: cn(startIconWrapperClassname, classes === null || classes === void 0 ? void 0 : classes.startIconWrapper), onClick: handleOnClickLeftSectionIcon, children: startIcon }));
101
+ return (_jsx("div", { className: cn(startSegmentIconWrapperClassname, classes === null || classes === void 0 ? void 0 : classes.startIconWrapper), onClick: handleOnClickLeftSectionIcon, children: startIcon }));
96
102
  }, [
97
103
  hasLeftSectionIcon,
98
104
  startIcon,
99
105
  iconMode,
100
- iconSearchWrapperClassname,
101
- startIconWrapperClassname,
102
- iconClassname,
106
+ inlineStartIconWrapperClassname,
107
+ startSegmentIconWrapperClassname,
108
+ iconActionClassname,
103
109
  renderStartIcon,
104
110
  handleOnClickLeftSectionIcon,
105
111
  ]);
@@ -107,26 +113,29 @@ export const TextInput = forwardRef((_a, ref) => {
107
113
  if (!hasRightSectionIcon)
108
114
  return;
109
115
  if (renderEndIcon) {
110
- return (_jsx("div", { className: cn(iconWrapperClassname, "flex", classes === null || classes === void 0 ? void 0 : classes.iconWrapper), children: renderEndIcon() }));
116
+ return (_jsx("div", { className: cn(inlineEndIconWrapperClassname, "flex", classes === null || classes === void 0 ? void 0 : classes.iconWrapper), children: renderEndIcon() }));
111
117
  }
112
118
  if (iconMode === "flat") {
113
- return (_jsx("div", { className: cn(iconWrapperClassname, "flex", classes === null || classes === void 0 ? void 0 : classes.iconWrapper), children: _jsx("div", { className: cn(iconClassname, classes === null || classes === void 0 ? void 0 : classes.icon), onClick: handleOnClickRightSectionIcon, children: endIcon }) }));
119
+ return (_jsx("div", { className: cn(inlineEndIconWrapperClassname, "flex", classes === null || classes === void 0 ? void 0 : classes.iconWrapper), children: _jsx("div", { className: cn(iconActionClassname, classes === null || classes === void 0 ? void 0 : classes.icon), onClick: handleOnClickRightSectionIcon, children: endIcon }) }));
114
120
  }
115
- return (_jsx("div", { className: cn(endIconWrapperClassname, classes === null || classes === void 0 ? void 0 : classes.endIconWrapper), onClick: handleOnClickRightSectionIcon, children: endIcon }));
121
+ return (_jsx("div", { className: cn(endSegmentIconWrapperClassname, classes === null || classes === void 0 ? void 0 : classes.endIconWrapper), onClick: handleOnClickRightSectionIcon, children: endIcon }));
116
122
  }, [
117
123
  hasRightSectionIcon,
118
124
  endIcon,
119
125
  iconMode,
120
- iconSearchWrapperClassname,
121
- endIconWrapperClassname,
122
- iconClassname,
126
+ inlineEndIconWrapperClassname,
127
+ endSegmentIconWrapperClassname,
128
+ iconActionClassname,
123
129
  renderEndIcon,
124
130
  handleOnClickRightSectionIcon,
125
131
  ]);
126
- return (_jsxs("div", { className: `inline-flex flex-col ${fullwidth ? "w-full" : ""}`, children: [_jsxs("div", { className: "relative", children: [hasSearchIcon && !hasLeftSectionIcon && (_jsx("div", { className: cn(iconSearchWrapperClassname, classes === null || classes === void 0 ? void 0 : classes.iconSearchWrapper), children: _jsx(MagnifyingGlassIcon, { className: cn(iconClassname, classes === null || classes === void 0 ? void 0 : classes.icon) }) })), _jsx("input", Object.assign({}, props, { placeholder: " ", ref: inputRef, type: type, id: _id, disabled: disabled, className: cn(inputClassname, props.className) })), startIconElement, hasClearIcon && !hasRightSectionIcon && (_jsx("div", { className: cn(iconWrapperClassname, classes === null || classes === void 0 ? void 0 : classes.iconWrapper), style: {
132
+ return (_jsxs("div", { className: `inline-flex flex-col ${fullwidth ? "w-full" : ""}`, children: [_jsxs("div", { className: "relative", children: [_jsx("input", Object.assign({}, props, { placeholder: " ", ref: inputRef, type: type, id: _id, disabled: disabled, className: cn(inputClassname, props.className) })), hasSearchIcon && !hasLeftSectionIcon && (_jsx("div", { className: cn(inlineStartIconWrapperClassname, classes === null || classes === void 0 ? void 0 : classes.iconSearchWrapper), children: _jsx(Search, { className: cn(iconActionClassname, classes === null || classes === void 0 ? void 0 : classes.icon) }) })), startIconElement, hasClearIcon && !hasRightSectionIcon && (_jsx("div", { className: cn(inlineEndIconWrapperClassname, classes === null || classes === void 0 ? void 0 : classes.iconWrapper), style: {
127
133
  display: keepCloseIconOnValue && props.value ? "flex" : undefined,
128
- }, children: _jsx(XCircleIcon, { type: "button", className: cn(iconClassname, classes === null || classes === void 0 ? void 0 : classes.icon), onMouseDown: handleClearInput }) })), endIconElement, _jsxs("label", { htmlFor: _id, className: cn(labelClassname), children: [label, " ", required && (_jsx("span", { className: cn("text-error", {
134
+ }, children: _jsx(CircleX, { className: cn(iconActionClassname,
135
+ // 'fill-none stroke-current',
136
+ // "fill-none stroke-input-default-text hover:stroke-input-filled-text active:stroke-input-filled-text",
137
+ classes === null || classes === void 0 ? void 0 : classes.icon), onMouseDown: handleClearInput }) })), endIconElement, _jsxs("label", { htmlFor: _id, className: cn(labelClassname), children: [label, " ", required && (_jsx("span", { className: cn("text-input-error", {
129
138
  "text-input-disable-text": disabled,
130
- }), children: "*" }))] })] }), (errorMessage || helperText) && (_jsxs("span", { className: helperTextClassname, children: [_jsx("span", { className: "h-full", children: _jsx(ExclamationCircleIcon, { width: 16, height: 16, className: error ? "fill-error" : "" }) }), errorMessage || helperText] }))] }));
139
+ }), children: "*" }))] })] }), (errorMessage || helperText || keepFooterSpace) && (_jsxs("span", { className: helperTextClassname, children: [(errorMessage || helperText) && (_jsx("span", { className: "h-full shrink-0", children: _jsx(CircleAlert, { width: 14, height: 14, className: cn("fill-none", error ? "stroke-input-error" : "stroke-input-filled-text") }) })), keepFooterSpace && !error && !helperText && (_jsx("span", { className: "block min-h-[14px]", "aria-hidden": true })), (error ? errorMessage : helperText) || ''] }))] }));
131
140
  });
132
141
  export default TextInput;
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useRef } from "react";
2
+ import { useRef, useState } from "react";
3
3
  import TextInput from "./TextInput";
4
4
  import { CalendarIcon } from "@heroicons/react/16/solid";
5
5
  import Icon from "../Icon/Icon";
@@ -13,7 +13,7 @@ const meta = {
13
13
  layout: "fullscreen",
14
14
  },
15
15
  decorators: [
16
- (Story) => (_jsx("div", { className: "p-5 flex w-full bg-[rgb(var(--base-bg-2))] ", children: _jsx(Story, {}) })),
16
+ (Story) => (_jsx("div", { className: "p-5 flex h-full w-full bg-[var(--base-color-popup)] ", children: _jsx(Story, {}) })),
17
17
  ],
18
18
  };
19
19
  export default meta;
@@ -76,3 +76,15 @@ export const CustomIcon = {
76
76
  hasClearIcon: true }))] }));
77
77
  },
78
78
  };
79
+ const KeepFooterSpaceDemo = () => {
80
+ const [hasError, setHasError] = useState(false);
81
+ return (_jsxs("div", { className: "flex flex-col gap-8 w-full max-w-md", children: [_jsxs("p", { className: "text-sm text-text-grey-dark", children: ["Use ", _jsx("code", { children: "keepFooterSpace" }), " to always reserve space for the footer/helper area, preventing layout shift when an error or helper text is shown or hidden."] }), _jsxs("div", { className: "flex flex-col gap-4", children: [_jsxs("label", { className: "flex items-center gap-2 cursor-pointer", children: [_jsx("input", { type: "checkbox", checked: hasError, onChange: (e) => setHasError(e.target.checked) }), "Show error message"] }), _jsxs("div", { className: "flex flex-col", children: [_jsxs("div", { children: [_jsx("h4", { className: "text-sm font-medium mb-2 text-text-grey-dark", children: "With keepFooterSpace (layout stays stable)" }), _jsx(TextInput, { id: "with-keep", label: "Email", keepFooterSpace: true, error: hasError, errorMessage: hasError ? "Please enter a valid email address" : undefined })] }), _jsxs("div", { children: [_jsx("h4", { className: "text-sm font-medium mb-2 text-text-grey-dark", children: "Without keepFooterSpace (layout shifts when error appears)" }), _jsx(TextInput, { id: "no-keep", label: "Email", error: hasError, errorMessage: hasError ? "Please enter a valid email address" : undefined })] }), _jsx("div", {})] })] })] }));
82
+ };
83
+ export const KeepFooterSpace = {
84
+ args: {
85
+ label: "Email",
86
+ fullwidth: true,
87
+ keepFooterSpace: true,
88
+ },
89
+ render: () => _jsx(KeepFooterSpaceDemo, {}),
90
+ };
@@ -35,7 +35,7 @@ export const inputVariant = cva([
35
35
  ],
36
36
  },
37
37
  error: {
38
- true: "ring-input-error focus:ring-input-error",
38
+ true: "ring-input-error hover:ring-input-error focus:ring-input-error",
39
39
  },
40
40
  hasClearIcon: {
41
41
  true: "",
@@ -131,7 +131,7 @@ export const inputVariant = cva([
131
131
  });
132
132
  export const labelVariant = cva([
133
133
  "absolute block duration-450 transition-all px-[2px] text-input-default-text",
134
- "peer-focus:text-input-filled-text peer-focus:bg-input-label-bg", // TODO bg
134
+ "peer-focus:text-input-default-text peer-focus:bg-input-label-bg", // TODO bg
135
135
  ], {
136
136
  variants: {
137
137
  size: {
@@ -329,7 +329,7 @@ export const labelVariant = cva([
329
329
  isFloatingLabel: true,
330
330
  },
331
331
  });
332
- export const helperTextVariant = cva(["text-small1 flex flex-row items-center gap-1"], {
332
+ export const helperTextVariant = cva(["typography-small1 flex flex-row items-center gap-1"], {
333
333
  variants: {
334
334
  size: {
335
335
  sm: "mt-1",
@@ -350,8 +350,17 @@ export const helperTextVariant = cva(["text-small1 flex flex-row items-center ga
350
350
  error: false,
351
351
  },
352
352
  });
353
- export const iconWrapperVariant = cva([
353
+ const iconInteractiveColorStateClasses = [
354
+ "fill-input-default-text",
355
+ "peer-hover:fill-input-filled-text peer-focus:fill-input-filled-text peer-active:fill-input-filled-text",
356
+ "peer-disabled:fill-input-disable-stroke",
357
+ "[&_svg]:text-input-default-text",
358
+ "peer-hover:[&_svg]:text-input-filled-text peer-focus:[&_svg]:text-input-filled-text peer-active:[&_svg]:text-input-filled-text",
359
+ "peer-disabled:[&_svg]:text-input-disable-stroke",
360
+ ];
361
+ export const inlineEndIconWrapperVariant = cva([
354
362
  "absolute inset-y-0 right-0 items-center justify-center hidden peer-focus:flex",
363
+ ...iconInteractiveColorStateClasses,
355
364
  ], {
356
365
  variants: {
357
366
  size: {
@@ -364,7 +373,10 @@ export const iconWrapperVariant = cva([
364
373
  size: "md",
365
374
  },
366
375
  });
367
- export const iconSearchWrapperVariant = cva(["absolute inset-y-0 left-0 items-center justify-center flex"], {
376
+ export const inlineStartIconWrapperVariant = cva([
377
+ "absolute inset-y-0 left-0 items-center justify-center flex",
378
+ ...iconInteractiveColorStateClasses,
379
+ ], {
368
380
  variants: {
369
381
  size: {
370
382
  sm: "ml-2",
@@ -376,9 +388,7 @@ export const iconSearchWrapperVariant = cva(["absolute inset-y-0 left-0 items-ce
376
388
  size: "md",
377
389
  },
378
390
  });
379
- export const iconVariant = cva([
380
- "cursor-pointer z-50 fill-input-active-stroke hover:fill-input-default-text",
381
- ], {
391
+ export const iconActionVariant = cva(["cursor-pointer z-50"], {
382
392
  variants: {
383
393
  size: {
384
394
  sm: "size-3",
@@ -390,10 +400,10 @@ export const iconVariant = cva([
390
400
  size: "md",
391
401
  },
392
402
  });
393
- export const sectionIconWrapperVariant = cva([
403
+ export const segmentedIconWrapperVariant = cva([
394
404
  "cursor-pointer",
395
405
  "absolute items-center justify-center flex",
396
- "fill-input-default-text peer-hover:fill-input-filled-text peer-focus:fill-input-filled-text peer-disabled:fill-input-disable-stroke",
406
+ ...iconInteractiveColorStateClasses,
397
407
  ], {
398
408
  variants: {
399
409
  size: {
@@ -471,3 +481,8 @@ export const sectionIconWrapperVariant = cva([
471
481
  position: "end",
472
482
  },
473
483
  });
484
+ // Backward-compatible aliases (can be removed in a future major version)
485
+ export const iconWrapperVariant = inlineEndIconWrapperVariant;
486
+ export const iconSearchWrapperVariant = inlineStartIconWrapperVariant;
487
+ export const iconVariant = iconActionVariant;
488
+ export const sectionIconWrapperVariant = segmentedIconWrapperVariant;